Mercurial > repos > goeckslab > vitessce_spatial
changeset 4:068da7f7cd83 draft default tip
planemo upload for repository https://github.com/goeckslab/tools-mti/tree/main/tools/vitessce commit bc4c0bb6784a55399241f99a29b176541a164a18
author | goeckslab |
---|---|
date | Thu, 20 Feb 2025 19:47:16 +0000 |
parents | 7cc457aa78b1 |
children | |
files | gate_finder.py index.html main_macros.xml static/css/2.f290e260.chunk.css static/css/2.f290e260.chunk.css.map static/css/main.a53cc462.chunk.css static/css/main.a53cc462.chunk.css.map static/js/2.eb2fd6ea.chunk.js static/js/2.eb2fd6ea.chunk.js.LICENSE.txt static/js/2.eb2fd6ea.chunk.js.map static/js/main.303f671d.chunk.js static/js/main.303f671d.chunk.js.map static/js/runtime-main.784d90f4.js static/js/runtime-main.784d90f4.js.map static/media/complement.c220ca8c.svg static/media/intersection.b0003109.svg static/media/menu.bc56e94a.svg static/media/near_me.2a308adc.svg static/media/selection_lasso.00e80a33.svg static/media/selection_rectangle.aa477261.svg static/media/union.de5168c6.svg test-data/cropped_reactive_core.ome.tiff test-data/cropped_tutorial_data_pheno.h5ad test-data/tutorial_vitessce.html test-data/vitessce_image.ome.tiff test-data/vitessce_mask.tiff test-data/vitessce_test.h5ad vitessce_spatial.py vitessce_spatial.xml |
diffstat | 29 files changed, 295 insertions(+), 429 deletions(-) [+] |
line wrap: on
line diff
--- a/gate_finder.py Thu May 30 17:24:44 2024 +0000 +++ b/gate_finder.py Thu Feb 20 19:47:16 2025 +0000 @@ -1,6 +1,7 @@ import argparse import json import warnings +from os.path import isdir, join from pathlib import Path import numpy as np @@ -15,13 +16,17 @@ OmeTiffWrapper, VitessceConfig, ) +from vitessce.data_utils import ( + optimize_adata, + VAR_CHUNK_SIZE, +) # Generate binarized phenotype for a gate def get_gate_phenotype(g, d): dd = d.copy() dd = np.where(dd < g, 0, dd) - np.warnings.filterwarnings('ignore') + warnings.filterwarnings('ignore') dd = np.where(dd >= g, 1, dd) return dd @@ -48,7 +53,7 @@ return get_gate_phenotype(gate, np.ravel(data_norm)) -def main(inputs, output, image, anndata, masks=None): +def main(inputs, output, image, anndata, offsets=None, masks=None): """ Parameter --------- @@ -104,39 +109,88 @@ adata.obs['GMM_auto'] = get_gmm_phenotype(marker_values) gate_names.append('GMM_auto') - adata.obsm['XY_coordinate'] = adata.obs[[x_coordinate, y_coordinate]].values + adata.obsm['spatial'] = adata.obs[[x_coordinate, y_coordinate]].values - vc = VitessceConfig(name=None, description=None) + # initialize vitessce config and add OME-TIFF image + vc = VitessceConfig(schema_version="1.0.17", name=None, description=None) dataset = vc.add_dataset() - image_wrappers = [OmeTiffWrapper(img_path=image, name='OMETIFF')] + image_wrappers = [OmeTiffWrapper(img_path=image, offsets_path=offsets, name='OMETIFF')] if masks: image_wrappers.append( OmeTiffWrapper(img_path=masks, name='MASKS', is_bitmask=True) ) dataset.add_object(MultiImageWrapper(image_wrappers)) + # write anndata out as zarr hierarchy + zarr_filepath = join("data", "adata.zarr") + if not isdir(zarr_filepath): + adata = optimize_adata( + adata, + obs_cols=gate_names, + obsm_keys=['spatial'], + optimize_X=True + ) + adata.write_zarr( + zarr_filepath, + chunks=[adata.shape[0], VAR_CHUNK_SIZE] + ) + + # add anndata zarr to vitessce config dataset.add_object( AnnDataWrapper( - adata, - spatial_centroid_obsm='XY_coordinate', - cell_set_obs=gate_names, - cell_set_obs_names=[obj[0].upper() + obj[1:] for obj in gate_names], - expression_matrix="X" + adata_path=zarr_filepath, + obs_feature_matrix_path="X", # FIXME: provide rep options + obs_set_paths=['obs/' + x for x in gate_names], + obs_set_names=gate_names, + obs_locations_path='spatial' ) ) - spatial = vc.add_view(dataset, cm.SPATIAL) - cellsets = vc.add_view(dataset, cm.CELL_SETS) - status = vc.add_view(dataset, cm.STATUS) - lc = vc.add_view(dataset, cm.LAYER_CONTROLLER) - genes = vc.add_view(dataset, cm.GENES) - cell_set_sizes = vc.add_view(dataset, cm.CELL_SET_SIZES) - cell_set_expression = vc.add_view(dataset, cm.CELL_SET_EXPRESSION) + + # add views + spatial = vc.add_view( + view_type=cm.SPATIAL, + dataset=dataset, + w=6, + h=12) + + cellsets = vc.add_view( + view_type=cm.OBS_SETS, + dataset=dataset, + w=3, + h=6) + + lc = vc.add_view( + view_type=cm.LAYER_CONTROLLER, + dataset=dataset, + w=3, + h=9) + genes = vc.add_view( + view_type=cm.FEATURE_LIST, + dataset=dataset, + w=3, + h=3) + + cell_set_sizes = vc.add_view( + view_type=cm.OBS_SET_SIZES, + dataset=dataset, + w=3, + h=3) + + cell_set_expression = vc.add_view( + view_type=cm.OBS_SET_FEATURE_VALUE_DISTRIBUTION, + dataset=dataset, + w=3, + h=3) + + # define the dashboard layout vc.layout( - (status / genes / cell_set_expression) - | (cellsets / cell_set_sizes / lc) + (cellsets / genes / cell_set_expression) + | (cell_set_sizes / lc) | (spatial) ) + + # export config file config_dict = vc.export(to='files', base_url='http://localhost', out_dir=output) with open(Path(output).joinpath('config.json'), 'w') as f: @@ -149,8 +203,9 @@ aparser.add_argument("-e", "--output", dest="output", required=True) aparser.add_argument("-g", "--image", dest="image", required=True) aparser.add_argument("-a", "--anndata", dest="anndata", required=True) + aparser.add_argument("-f", "--offsets", dest="offsets", required=False) aparser.add_argument("-m", "--masks", dest="masks", required=False) args = aparser.parse_args() - main(args.inputs, args.output, args.image, args.anndata, args.masks) + main(args.inputs, args.output, args.image, args.anndata, args.offsets, args.masks)
--- a/index.html Thu May 30 17:24:44 2024 +0000 +++ b/index.html Thu Feb 20 19:47:16 2025 +0000 @@ -1,39 +1,64 @@ -<!doctype html> -<html lang="en"> - <head> - <meta charset="utf-8"> - <style> - body,html{height:100%} - body{ - font-family:-apple-system,'Helvetica Neue',Arial,sans-serif;display:flex;flex-direction:column} - #full-app{flex:1} - #full-app .vitessce-container{ - height:max(100%,100vh);width:100%;overflow:hidden} - #full-app #small-app .vitessce-container{height:600px} - </style> - <title>Vitessce</title> - <link href="./static/css/2.f290e260.chunk.css" rel="stylesheet"> - <link href="./static/css/main.a53cc462.chunk.css" rel="stylesheet"> - </head> - <body> - <div id="full-app"> - <div class="container-fluid"> - <div class="row p-2"> - <div class="col col-full"> - <h1>Vitessce is loading...</h1> - <div style="width:1000px"> - <div id="small-app"> - </div> - </div> - </div> - </div> - </div> +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8" /> + <title>Vitessce</title> + </head> + <body style="background-color:#666666"> + <div id="root"></div> + <noscript> + <div> + This Galaxy visualization uses JavaScript -- to view this an admin must allow the tool to execute JS in it's HTML output </div> - <noscript>You need to enable JavaScript to run this app.</noscript> - <script> - !function(e){function t(t){for(var n,i,l=t[0],f=t[1],a=t[2],p=0,s=[];p<l.length;p++)i=l[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(c&&c(t);s.length;)s.shift()();return u.push.apply(u,a||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,l=1;l<r.length;l++){var f=r[l];0!==o[f]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="./";var l=this.webpackJsonpvitessce=this.webpackJsonpvitessce||[],f=l.push.bind(l);l.push=t,l=l.slice();for(var a=0;a<l.length;a++)t(l[a]);var c=f;r()}([]) - </script> - <script src="./static/js/2.eb2fd6ea.chunk.js"></script> - <script src="./static/js/main.303f671d.chunk.js"></script> - </body> -</html> \ No newline at end of file + </noscript> + <script type="importmap"> + { + "imports": { + "react": "https://esm.sh/react@18.2.0?dev", + "react-dom": "https://esm.sh/react-dom@18.2.0?dev", + "react-dom/client": "https://esm.sh/react-dom@18.2.0/client?dev", + "vitessce": "https://unpkg.com/vitessce@3.5.1" + } + } + </script> + <script type="module"> + import React from 'react'; + import { createRoot } from 'react-dom/client'; + import { Vitessce } from 'vitessce'; + import { config } from './config.js'; + + console.log('here be url: '+window.location.href); + var current_url = window.location.href.replace(new RegExp('\/[^\/]*$'), ''); + console.log(current_url); + function rewriteURL(input) { + for (let k in input) { + if (typeof input[k] === 'string' || input[k] instanceof String) { + input[k] = input[k].replace('http://localhost', current_url) + } + else { + input[k] = rewriteURL(input[k]) + } + } + return input; + }; + var fixed_conf = {...config}; + fixed_conf = rewriteURL(fixed_conf); + console.log('conf fixed:'); + console.log(fixed_conf); + function MyApp() { + return React.createElement( + Vitessce, + { + height: 1000, + theme: 'dark', + config: fixed_conf, + } + ); + } + + const container = document.getElementById('root'); + const root = createRoot(container); + root.render(React.createElement(MyApp)); + </script> + </body> +</html>
--- a/main_macros.xml Thu May 30 17:24:44 2024 +0000 +++ b/main_macros.xml Thu Feb 20 19:47:16 2025 +0000 @@ -1,11 +1,11 @@ <macros> - <token name="@TOOL_VERSION@">1.0.4</token> - <token name="@VERSION_SUFFIX@">5</token> - <token name="@PROFILE@">20.01</token> + <token name="@TOOL_VERSION@">3.5.1</token> + <token name="@VERSION_SUFFIX@">0</token> + <token name="@PROFILE@">22.01</token> <xml name="vitessce_requirements"> <requirements> - <container type="docker">quay.io/goeckslab/vitessce:@TOOL_VERSION@v3</container> + <container type="docker">quay.io/goeckslab/vitessce:@TOOL_VERSION@</container> </requirements> </xml> @@ -23,11 +23,11 @@ mkdir -p '${output.files_path}/A/0' && ln -sf '$image' '${output.files_path}/A/0/image01.ome.tiff' && #if $masks - info=\$(showinf -nopix -nometa -noflat '${output.files_path}/A/0/image01.ome.tiff') && - echo '>showinf -nopix -nometa -noflat \$image' && + info=\$(showinf -nopix -nometa -noflat -no-upgrade '${output.files_path}/A/0/image01.ome.tiff') && + echo '>showinf -nopix -nometa -noflat -no-upgrade \$image' && echo "\$info\n" && - masks_info=\$(showinf -nopix -nometa -noflat '$masks') && - echo '>showinf -nopix -nometa -noflat \$masks' && + masks_info=\$(showinf -nopix -nometa -noflat -no-upgrade '$masks') && + echo '>showinf -nopix -nometa -noflat -no-upgrade \$masks' && echo "\$masks_info\n" && masks_n_resolutions=\$(echo "\$masks_info" | grep '^\s*Resolutions\s*=' -m1 | cut -d'=' -f2 | xargs) && if [ -z \$masks_n_resolutions ]; then @@ -51,14 +51,14 @@ fi; fi; fi; - tile_info=\$(showinf -nopix -nometa -noflat '${output.files_path}/A/0/image01.ome.tiff' | grep '^\s*Tile\ssize\s*=' -m1); + tile_info=\$(showinf -nopix -nometa -noflat -no-upgrade '${output.files_path}/A/0/image01.ome.tiff' | grep '^\s*Tile\ssize\s*=' -m1); tile_x=\$(echo "\$tile_info" | cut -d' ' -f4); tile_y=\$(echo "\$tile_info" | cut -d' ' -f6); - convert_cmd="bfconvert -pyramid-resolutions \$n_resolutions -pyramid-scale \$pyramid_scale -noflat -tilex \$tile_x -tiley \$tile_y '$masks' '${output.files_path}/A/0/masks01.ome.tiff'"; + convert_cmd="bfconvert -no-upgrade -pyramid-resolutions \$n_resolutions -pyramid-scale \$pyramid_scale -noflat -tilex \$tile_x -tiley \$tile_y '$masks' '${output.files_path}/A/0/masks01.ome.tiff'"; echo "\n>\$convert_cmd"; eval \$convert_cmd; - masks_info_new=\$(showinf -nopix -nometa -noflat '${output.files_path}/A/0/masks01.ome.tiff'); - echo "\n>showinf -nopix -nometa -noflat '${output.files_path}/A/0/masks01.ome.tiff'"; + masks_info_new=\$(showinf -nopix -nometa -noflat -no-upgrade '${output.files_path}/A/0/masks01.ome.tiff'); + echo "\n>showinf -nopix -nometa -noflat -no-upgrade '${output.files_path}/A/0/masks01.ome.tiff'"; echo "\$masks_info_new\n"; else ln -sf '$masks' '${output.files_path}/A/0/masks01.ome.tiff'; @@ -68,6 +68,7 @@ --inputs '$inputs' --output '${output.files_path}' --image '${output.files_path}/A/0/image01.ome.tiff' + --offsets '$image.metadata.offsets' #if $masks --masks '${output.files_path}/A/0/masks01.ome.tiff' #end if @@ -75,9 +76,9 @@ --anndata '$anndata' #end if && - cp -R '$__tool_directory__/static' '${output.files_path}' && cp '$__tool_directory__/index.html' '$output'; - + echo "export var config = \$(cat ${output.files_path}/config.json)" >> '${output.files_path}/config.js'; + cat '${output.files_path}/config.json' >> '$vitessce_config'; ]]> </command> </xml>
--- a/static/css/2.f290e260.chunk.css Thu May 30 17:24:44 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top}.react-grid-item.cssTransforms{transition-property:transform}.react-grid-item.resizing{z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZ6IiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+");background-position:100% 100%;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-e,.react-resizable-handle-w{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)} -/*# sourceMappingURL=2.f290e260.chunk.css.map */ \ No newline at end of file
--- a/static/css/2.f290e260.chunk.css.map Thu May 30 17:24:44 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"sources":["styles.css"],"names":[],"mappings":"AAAA,mBACE,iBAAkB,CAClB,0BACF,CACA,iBACE,uBAA0B,CAC1B,4BACF,CACA,+BACE,6BACF,CACA,0BACE,SAAU,CACV,wBACF,CAEA,0CACE,eAAgB,CAChB,SAAU,CACV,qBACF,CAEA,0BACE,iBACF,CAEA,wCACE,cAAe,CACf,UAAY,CACZ,uBAA0B,CAC1B,SAAU,CACV,wBAAyB,CAEzB,oBAAqB,CACrB,mBAAoB,CACpB,gBACF,CAEA,yCACE,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,QAAS,CACT,OAAQ,CACR,gBACF,CAEA,+CACE,UAAW,CACX,iBAAkB,CAClB,SAAU,CACV,UAAW,CACX,SAAU,CACV,UAAW,CACX,qCAA0C,CAC1C,sCACF,CAEA,8CACE,YACF,CA5DA,iBACE,iBACF,CACA,wBACE,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,2BAA4B,CAC5B,6BAA8B,CAC9B,qBAAsB,CACtB,0PAAuY,CACvY,6BAAiC,CACjC,mBACF,CACA,2BACE,QAAS,CACT,MAAO,CACP,gBAAiB,CACjB,uBACF,CACA,2BACE,QAAS,CACT,OAAQ,CACR,gBACF,CACA,2BACE,KAAM,CACN,MAAO,CACP,gBAAiB,CACjB,wBACF,CACA,2BACE,KAAM,CACN,OAAQ,CACR,gBAAiB,CACjB,wBACF,CACA,oDAEE,OAAQ,CACR,gBAAiB,CACjB,gBACF,CACA,0BACE,MAAO,CACP,wBACF,CACA,0BACE,OAAQ,CACR,wBACF,CACA,oDAEE,QAAS,CACT,iBAAkB,CAClB,gBACF,CACA,0BACE,KAAM,CACN,wBACF,CACA,0BACE,QAAS,CACT,uBACF","file":"2.f290e260.chunk.css","sourcesContent":[".react-resizable {\n position: relative;\n}\n.react-resizable-handle {\n position: absolute;\n width: 20px;\n height: 20px;\n background-repeat: no-repeat;\n background-origin: content-box;\n box-sizing: border-box;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+');\n background-position: bottom right;\n padding: 0 3px 3px 0;\n}\n.react-resizable-handle-sw {\n bottom: 0;\n left: 0;\n cursor: sw-resize;\n transform: rotate(90deg);\n}\n.react-resizable-handle-se {\n bottom: 0;\n right: 0;\n cursor: se-resize;\n}\n.react-resizable-handle-nw {\n top: 0;\n left: 0;\n cursor: nw-resize;\n transform: rotate(180deg);\n}\n.react-resizable-handle-ne {\n top: 0;\n right: 0;\n cursor: ne-resize;\n transform: rotate(270deg);\n}\n.react-resizable-handle-w,\n.react-resizable-handle-e {\n top: 50%;\n margin-top: -10px;\n cursor: ew-resize;\n}\n.react-resizable-handle-w {\n left: 0;\n transform: rotate(135deg);\n}\n.react-resizable-handle-e {\n right: 0;\n transform: rotate(315deg);\n}\n.react-resizable-handle-n,\n.react-resizable-handle-s {\n left: 50%;\n margin-left: -10px;\n cursor: ns-resize;\n}\n.react-resizable-handle-n {\n top: 0;\n transform: rotate(225deg);\n}\n.react-resizable-handle-s {\n bottom: 0;\n transform: rotate(45deg);\n}"]} \ No newline at end of file
--- a/static/css/main.a53cc462.chunk.css Thu May 30 17:24:44 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -.react-draggable-transparent-selection .react-grid-item{-webkit-user-select:none!important;-moz-user-select:none!important;-o-user-select:none!important;-ms-user-select:none!important;user-select:none!important}body{margin:0;text-align:left}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto;box-sizing:border-box}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-2OwvL{position:fixed;background-color:hsla(0,0%,100%,.95);border:1px solid rgba(0,0,0,.1);border-radius:3px;font-size:12px;cursor:default;padding:3px;box-shadow:0 0 3px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.05)}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-dark-2PO31{color:#ccc;background-color:rgba(68,68,68,.97)}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-icon-I4kiw{display:inline-block;margin-right:3px;vertical-align:middle}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-icon-I4kiw>svg{width:30px;height:20px}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-item-1HeVv{padding:2px;white-space:nowrap;border-radius:2px;transition:background .15s ease,color .15s ease}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-item-1HeVv:hover{background:#337ab7;color:#fff}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-hr-3yapb{margin-top:5px;margin-bottom:5px;border:0;border-top:1px solid rgba(0,0,0,.1)}.vitessce-container .higlass-wrapper .ContextMenu-module_play-icon-R4pIO{width:12px;height:12px;position:absolute;right:5px}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-span-8EUfZ{margin-right:20px;vertical-align:middle;display:inline-block;line-height:normal;white-space:nowrap}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-thumbnail-2vHLD{margin-right:10px;border:1px solid #888}.vitessce-container .higlass-wrapper .ContextMenu-module_context-menu-thumbnail-inline-1iOcg{display:inline-block;margin-right:10px;vertical-align:middle}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-2zDf3,.vitessce-container .higlass-wrapper .TrackControl-module_track-control-vertical-2McB_{position:absolute;z-index:1;display:flex;background:hsla(0,0%,100%,.75);right:2px;top:2px;border-radius:2.5px;box-shadow:0 0 0 1px rgba(0,0,0,.05),0 0 3px 0 rgba(0,0,0,.1);opacity:0;transition:opacity .15s ease,background .15s ease,box-shadow .15s ease}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-dark-fP2uZ,.vitessce-container .higlass-wrapper .TrackControl-module_track-control-dark-fP2uZ .TrackControl-module_track-control-active-2JD9i{background:rgba(40,40,40,.85)}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-vertical-2McB_{flex-direction:column-reverse}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-left-zHd9W{left:2px;right:auto}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-active-2JD9i,.vitessce-container .higlass-wrapper .TrackControl-module_track-control-vertical-active-1QCKn{opacity:1;z-index:1}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-active-2JD9i:hover,.vitessce-container .higlass-wrapper .TrackControl-module_track-control-vertical-active-1QCKn:hover{background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 3px 0 rgba(0,0,0,.2)}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-dark-fP2uZ.TrackControl-module_track-control-active-2JD9i:hover{background:rgba(34,34,34,.95)}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-padding-right-2p6Lp{right:80px}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-button-2fdIb{width:20px;height:20px;padding:4px;cursor:pointer;opacity:.66;transition:background .15s ease,color .15s ease,opacity .15s ease}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-button-2fdIb:hover{color:#fff;background:#337ab7;opacity:1}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-button-2fdIb:first-child{border-radius:2.5px 0 0 2.5px}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-button-2fdIb:last-child{border-radius:0 2.5px 2.5px 0}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-dark-fP2uZ .TrackControl-module_track-control-button-2fdIb{color:#ccc}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-dark-fP2uZ .TrackControl-module_track-control-button-2fdIb:hover{color:#fff;background:#337ab7;opacity:1}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-button-vertical-1s22z:first-child{border-radius:0 0 2.5px 2.5px}.vitessce-container .higlass-wrapper .TrackControl-module_track-control-button-vertical-1s22z:last-child{border-radius:2.5px 2.5px 0 0}.vitessce-container .higlass-wrapper .CenterTrack-module_center-track-3ptRW{position:relative;background:transparent}.vitessce-container .higlass-wrapper .CenterTrack-module_center-track-container-2ELhp{position:absolute;z-index:1}.vitessce-container .higlass-wrapper .Track-module_track-range-selection-1yrDf{position:absolute;z-index:-1;opacity:0;transition:opacity .15s ease}.vitessce-container .higlass-wrapper .Track-module_track-range-selection-active-1oljJ{z-index:1;opacity:1}.vitessce-container .higlass-wrapper .Track-module_track-range-selection-group-inactive-YNRM4{display:none}.vitessce-container .higlass-wrapper .Track-module_track-range-selection-group-brush-selection-2VYDl{outline:2px solid rgba(0,0,0,.33);fill:#000;fill-opacity:.1}.vitessce-container .higlass-wrapper .DragListeningDiv-module_drag-listening-div-active-3wpRk{z-index:10;box-shadow:inset 0 0 3px 0 red}.vitessce-container .higlass-wrapper .GalleryTracks-module_gallery-tracks-3tsUO{position:relative;top:0;left:0;width:100%;height:100%}.vitessce-container .higlass-wrapper .GalleryTracks-module_gallery-track-eGKoq{position:absolute;box-sizing:border-box;top:0;right:0;bottom:0;left:0}.vitessce-container .higlass-wrapper .GalleryTracks-module_gallery-invisible-track-1hMJp,.vitessce-container .higlass-wrapper .GalleryTracks-module_gallery-sub-track-z1HEh{position:absolute}.vitessce-container .higlass-wrapper .TiledPlot-module_tiled-plot-uFHiB{position:relative;flex:1 1;overflow:hidden}.vitessce-container .higlass-wrapper .TiledPlot-module_horizontalList-1c1P8{display:flex;width:600px;height:300px;white-space:nowrap}.vitessce-container .higlass-wrapper .TiledPlot-module_list-24zgV{width:400px;height:600px;overflow:hidden;-webkit-overflow-scrolling:touch}.vitessce-container .higlass-wrapper .TiledPlot-module_stylizedList-Mt4JL{position:relative;z-index:0;background-color:#f3f3f3;outline:none}.vitessce-container .higlass-wrapper .TiledPlot-module_stylizedItem-2bQBK{position:relative;display:flex;align-items:center;width:100%;background-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#333;font-weight:400}.vitessce-container .higlass-wrapper .TiledPlot-module_stylizedHelper-3IVEu{box-shadow:0 5px 5px -5px rgba(0,0,0,.2),0 -5px 5px -5px rgba(0,0,0,.2);background-color:hsla(0,0%,100%,.8);cursor:row-resize}.vitessce-container .higlass-wrapper .TiledPlot-module_stylizedHelper-3IVEu.TiledPlot-module_horizontalItem-2-ZjU{cursor:col-resize}.vitessce-container .higlass-wrapper .TiledPlot-module_horizontalItem-2-ZjU{display:flex;flex-shrink:0;align-items:center;justify-content:center}.vitessce-container .higlass-wrapper .TiledPlot-module_resizable-track-2oLT9{width:100%;height:100%}.vitessce-container .higlass-wrapper path.TiledPlot-module_domain-qYw6K{stroke-width:0px}.vitessce-container .higlass-wrapper .TrackRenderer-module_track-renderer-3TM7n{position:relative}.vitessce-container .higlass-wrapper .TrackRenderer-module_track-renderer-element-2i16D,.vitessce-container .higlass-wrapper .TrackRenderer-module_track-renderer-events-3tVM2{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.vitessce-container .higlass-wrapper .TrackRenderer-module_track-renderer-events-3tVM2{z-index:1}.vitessce-container .higlass-wrapper .Button-module_button-3YXsQ{display:flex;align-items:center;box-sizing:border-box;padding:.5em;color:#000;font-size:1em;line-height:1em;border:0;border-radius:2.5px;background:#fff;box-shadow:0 0 0 1px #ccc;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;-webkit-appearance:none}.vitessce-container .higlass-wrapper .Button-module_button-3YXsQ:hover{background:#f2f2f2;box-shadow:0 0 0 1px #ccc}.vitessce-container .higlass-wrapper .Button-module_button-3YXsQ:focus{box-shadow:0 0 0 2px #0089ff}.vitessce-container .higlass-wrapper .Button-module_button-3YXsQ:active{transform:scale(.9)}.vitessce-container .higlass-wrapper .Button-module_button-3YXsQ:active,.vitessce-container .higlass-wrapper .Button-module_button-3YXsQ:focus,.vitessce-container .higlass-wrapper .Button-module_button-3YXsQ:hover{cursor:pointer;outline:none}.vitessce-container .higlass-wrapper .Button-module_button-shortcut-1zMAn{padding:.1em 5px;color:#999;font-size:.8em;transition:color .15s ease}.vitessce-container .higlass-wrapper .Cross-module_cross-3WYME{position:relative;width:1em;height:1em}.vitessce-container .higlass-wrapper .Cross-module_cross-3WYME:after,.vitessce-container .higlass-wrapper .Cross-module_cross-3WYME:before{content:"";display:block;position:absolute;top:50%;left:0;width:1em;height:1px;background:#000;transform-origin:center}.vitessce-container .higlass-wrapper .Cross-module_cross-3WYME:before{transform:translateY(-50%) rotate(45deg)}.vitessce-container .higlass-wrapper .Cross-module_cross-3WYME:after{transform:translateY(-50%) rotate(-45deg)}.vitessce-container .higlass-wrapper .Modal-module_modal-background-3vDy1{position:absolute;z-index:1000;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.666);-webkit-animation:Modal-module_fade-in-3Nm-O .2s ease 1;animation:Modal-module_fade-in-3Nm-O .2s ease 1;transition:opacity .2s ease}.vitessce-container .higlass-wrapper .Modal-module_modal-hide-3huBg{opacity:0}.vitessce-container .higlass-wrapper .Modal-module_modal-wrap-1HWNn{position:absolute;top:20px;right:20px;bottom:20px;left:20px}.vitessce-container .higlass-wrapper .Modal-module_modal-window-1XZAq{position:relative;width:100%;max-width:640px;max-height:100%;margin-left:auto;margin-right:auto;color:#000;border-radius:5px;background:#fff;-webkit-animation:Modal-module_fade-scale-in-11Dkx .2s ease 1;animation:Modal-module_fade-scale-in-11Dkx .2s ease 1}.vitessce-container .higlass-wrapper .Modal-module_modal-window-max-height-CZYCl{height:100%}.vitessce-container .higlass-wrapper .Modal-module_modal-content-2xb_x{padding:10px}@-webkit-keyframes Modal-module_fade-in-3Nm-O{0%{opacity:0}to{opacity:1}}@keyframes Modal-module_fade-in-3Nm-O{0%{opacity:0}to{opacity:1}}@-webkit-keyframes Modal-module_fade-scale-in-11Dkx{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes Modal-module_fade-scale-in-11Dkx{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.vitessce-container .higlass-wrapper .Dialog-module_dialog-header-2mk2M{position:relative;z-index:2;display:flex;justify-content:space-between;margin:0 -10px 10px;padding:0 10px 10px;border-bottom:1px solid #ccc}.vitessce-container .higlass-wrapper .Dialog-module_dialog-header-2mk2M h3{margin:0;padding:0;font-size:20px;line-height:1em}.vitessce-container .higlass-wrapper .Dialog-module_dialog-header-2mk2M button{font-size:10px}.vitessce-container .higlass-wrapper .Dialog-module_dialog-main-max-height-1EAb2{position:absolute;z-index:1;top:40px;right:0;bottom:50px;left:0;padding:10px;overflow:auto}.vitessce-container .higlass-wrapper .Dialog-module_dialog-footer-1BnEv,.vitessce-container .higlass-wrapper .Dialog-module_dialog-footer-max-height-KjDek{display:flex;justify-content:space-between;margin:10px -10px 0;padding:10px 10px 0;border-top:1px solid #ccc}.vitessce-container .higlass-wrapper .Dialog-module_dialog-footer-1BnEv button,.vitessce-container .higlass-wrapper .Dialog-module_dialog-footer-max-height-KjDek button{font-size:14px}.vitessce-container .higlass-wrapper .Dialog-module_dialog-footer-max-height-KjDek{position:absolute;z-index:2;left:10px;right:10px;bottom:10px}.vitessce-container .higlass-wrapper .tileset-finder-label{font-weight:700}.vitessce-container .higlass-wrapper .tileset-finder-search-box{margin-left:10px}.vitessce-container .higlass-wrapper .tileset-finder-search-bar{display:flex;margin-left:5px;justify-content:space-between;align-items:center}.vitessce-container .higlass-wrapper .tileset-finder-checkbox-tree{margin:5px;padding:3px;border:1px solid #aaa;border-radius:5px}.vitessce-container .higlass-wrapper .react-checkbox-tree{display:flex;flex-direction:row;font-size:14px}.vitessce-container .higlass-wrapper .react-checkbox-tree>ol{flex:1 1 auto}.vitessce-container .higlass-wrapper .react-checkbox-tree ol{margin:0;padding-left:0;list-style-type:none}.vitessce-container .higlass-wrapper .react-checkbox-tree ol ol{padding-left:24px}.vitessce-container .higlass-wrapper .react-checkbox-tree button{line-height:normal;color:inherit}.vitessce-container .higlass-wrapper .react-checkbox-tree button:focus{outline:none}.vitessce-container .higlass-wrapper .react-checkbox-tree button:disabled{cursor:not-allowed}.vitessce-container .higlass-wrapper .react-checkbox-tree .rct-bare-label{cursor:default}.vitessce-container .higlass-wrapper .react-checkbox-tree label{margin-bottom:0;cursor:pointer;font-weight:400}.vitessce-container .higlass-wrapper .react-checkbox-tree label:hover{background:rgba(51,51,204,.1)}.vitessce-container .higlass-wrapper .react-checkbox-tree label:active{background:rgba(51,51,204,.15)}.vitessce-container .higlass-wrapper .react-checkbox-tree:not(.rct-native-display) input{display:none}.vitessce-container .higlass-wrapper .react-checkbox-tree.rct-native-display input{margin:0 5px}.vitessce-container .higlass-wrapper .react-checkbox-tree .rct-icon{font-family:FontAwesome;font-style:normal}.vitessce-container .higlass-wrapper .rct-disabled>.rct-text>label{opacity:.75;cursor:not-allowed}.vitessce-container .higlass-wrapper .rct-disabled>.rct-text>label:active,.vitessce-container .higlass-wrapper .rct-disabled>.rct-text>label:hover{background:transparent}.vitessce-container .higlass-wrapper .rct-text{display:flex;align-items:center}.vitessce-container .higlass-wrapper .rct-options{flex:0 0 auto;margin-left:.5rem;text-align:right}.vitessce-container .higlass-wrapper .rct-option{opacity:.75;border:0;background:none;cursor:pointer;padding:0 4px;font-size:18px}.vitessce-container .higlass-wrapper .rct-option:hover{opacity:1}.vitessce-container .higlass-wrapper .rct-option+.rct-option{margin-left:2px}.vitessce-container .higlass-wrapper .rct-checkbox,.vitessce-container .higlass-wrapper .rct-collapse,.vitessce-container .higlass-wrapper .rct-node-icon{padding:0 5px}.vitessce-container .higlass-wrapper .rct-checkbox *,.vitessce-container .higlass-wrapper .rct-collapse *,.vitessce-container .higlass-wrapper .rct-node-icon *{display:inline-block;margin:0;width:14px}.vitessce-container .higlass-wrapper .rct-collapse{border:0;background:none;line-height:normal;color:inherit;font-size:12px}.vitessce-container .higlass-wrapper .rct-collapse.rct-collapse-btn{cursor:pointer}.vitessce-container .higlass-wrapper .rct-collapse>.rct-icon-expand-close{opacity:.5}.vitessce-container .higlass-wrapper .rct-collapse>.rct-icon-expand-close:hover{opacity:1}.vitessce-container .higlass-wrapper .rct-native-display .rct-checkbox{display:none}.vitessce-container .higlass-wrapper .rct-node-clickable{cursor:pointer}.vitessce-container .higlass-wrapper .rct-node-clickable:hover{background:rgba(51,51,204,.1)}.vitessce-container .higlass-wrapper .rct-node-clickable:focus{outline:0;background:rgba(51,51,204,.2)}.vitessce-container .higlass-wrapper .rct-node-icon{color:#33c}.vitessce-container .higlass-wrapper .rct-title{padding:0 5px}.vitessce-container .higlass-wrapper .rct-icon-expand-close:before{content:""}.vitessce-container .higlass-wrapper .rct-icon-expand-open:before{content:""}.vitessce-container .higlass-wrapper .rct-icon-uncheck:before{content:""}.vitessce-container .higlass-wrapper .rct-icon-check:before{content:""}.vitessce-container .higlass-wrapper .rct-icon-half-check:before{opacity:.5;content:""}.vitessce-container .higlass-wrapper .rct-icon-leaf:before{content:""}.vitessce-container .higlass-wrapper .rct-icon-parent-open:before{content:""}.vitessce-container .higlass-wrapper .rct-icon-parent-close:before{content:""}.vitessce-container .higlass-wrapper .rct-icon-expand-all:before{content:""}.vitessce-container .higlass-wrapper .rct-icon-collapse-all:before{content:""}.vitessce-container .higlass-wrapper .plot-type-selected{background-color:rgba(0,0,255,.3)}.vitessce-container .higlass-wrapper .plot-type-container{overflow-y:scroll;padding:3px;max-height:15vh}.vitessce-container .higlass-wrapper .plot-type-container,.vitessce-container .higlass-wrapper .plot-type-container-empty{margin:5px;border:1px solid #aaa;border-radius:5px}.vitessce-container .higlass-wrapper .plot-type-container-empty{padding:3px 8px;background-color:#e8e8e8}.vitessce-container .higlass-wrapper .plot-type-item{cursor:pointer}.vitessce-container .higlass-wrapper .plot-type-item:not(.plot-type-selected):hover{background-color:rgba(51,51,204,.1)}.vitessce-container .higlass-wrapper .track-thumbnail{width:30px;height:20px;display:inline-block;margin-right:10;vertical-align:middle}.vitessce-container .higlass-wrapper .track-thumbnail>svg{width:20px;height:20px}.vitessce-container .higlass-wrapper .AddTrackDialog-module_collapse-toggle-icon-1Of5_:before{font-family:Glyphicons Halflings;content:"";float:left;padding-right:3px}.vitessce-container .higlass-wrapper .AddTrackDialog-module_collapse-toggle-icon-1Of5_.AddTrackDialog-module_collapsed-1ifB1:before{content:""}.vitessce-container .higlass-wrapper .AddTrackDialog-module_modal-title-1Atka{font-family:Roboto;font-weight:700}.vitessce-container .higlass-wrapper .AddTrackDialog-module_modal-container-14d_4{position:relative}.vitessce-container .higlass-wrapper .AddTrackDialog-module_modal-container-14d_4 .AddTrackDialog-module_modal-backdrop-ZrVQg,.vitessce-container .higlass-wrapper .AddTrackDialog-module_modal-container-14d_4 .AddTrackDialog-module_modal-bZqLI{position:absolute}.vitessce-container .higlass-wrapper .AddTrackDialog-module_modal-dialog-3bKDk{position:relative;display:table;overflow-y:auto;overflow-x:auto;width:600px;min-width:300px;margin:auto}.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-right-handle-o7UYG,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-right-handle-oUk0R{border-right:solid #000;border-top:solid #000}.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-left-handle-FO7d4,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-left-handle-R5Zui{border-left:solid #000;border-top:solid #000}.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp,.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP{position:absolute;opacity:0;transition:transform .15s ease,opacity .15s ease}.vitessce-container .higlass-wrapper .DraggableDiv-module_draggable-div-2eWml{background-color:transparent;box-sizing:border-box}.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-grabber-2mVDE{width:10px;height:4px;border-top:1px solid #000;border-bottom:1px solid #000;margin:4px 7px}.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-grabber-1mtC0{width:4px;height:10px;border-left:1px solid #000;border-right:1px solid #000;margin:7px 4px}.vitessce-container .higlass-wrapper .DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_bottom-draggable-handle-3olLp,.vitessce-container .higlass-wrapper .DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_left-draggable-handle-2gpow,.vitessce-container .higlass-wrapper .DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_right-draggable-handle-2Sriq,.vitessce-container .higlass-wrapper .DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_top-draggable-handle-3W5bP{opacity:.5;background:hsla(0,0%,100%,.75);box-shadow:0 0 3px 1px hsla(0,0%,100%,.75);border-radius:3px}.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp:active,.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp:hover,.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow:active,.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow:hover,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq:active,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq:hover,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP:active,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP:hover{opacity:1!important;transform:scale(2)}.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE{box-shadow:0 0 3px 1px #0089ff;background:#0089ff}.vitessce-container .higlass-wrapper .DraggableDiv-module_bottom-draggable-handle-3olLp,.vitessce-container .higlass-wrapper .DraggableDiv-module_top-draggable-handle-3W5bP{height:12px;cursor:row-resize}.vitessce-container .higlass-wrapper .DraggableDiv-module_left-draggable-handle-2gpow,.vitessce-container .higlass-wrapper .DraggableDiv-module_right-draggable-handle-2Sriq{width:12px;cursor:col-resize}.vitessce-container .higlass-wrapper .HorizontalTiledPlot-module_horizontal-tiled-plot-3EK65,.vitessce-container .higlass-wrapper .VerticalTiledPlot-module_vertical-tiled-plot-R3sb7{position:relative}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-focus-23by2,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-SYccr{position:relative;display:flex;align-items:stretch;height:100%;margin-bottom:0;font-size:13.71429px;transition:box-shadow .15s ease,font-size .15s ease}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-focus-23by2{box-shadow:0 0 0 1px #337ab7,0 0 3px 1px #337ab7}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-1_0ZU{position:relative;box-sizing:border-box;width:100%;height:100%;padding:3px;color:#666;font-size:inherit;line-height:24px;border:0;border-radius:3px 0 0 3px;background:transparent}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-1_0ZU:focus{outline:none;color:#000}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-dark-EML2e .GenomePositionSearchBox-module_genome-position-search-bar-1_0ZU:focus{color:#e5e5e5}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk{display:block;height:100%;padding:0 8px!important;color:#999;border:0!important;border-radius:0!important;background:transparent;transition:background .15s ease,color .15s ease}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ:active,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ:focus,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ:hover,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk:active,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk:focus,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk:hover{color:#fff;background:#337ab7}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-icon-14AEk,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z{display:flex;align-items:center;transition:color .15s ease}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-icon-14AEk:first-child,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z:first-child{margin-left:6px;margin-right:2px}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-icon-14AEk span,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z span{display:block;margin-top:-2px}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z{color:#337ab7}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-bar-suggestions-SrIoU{position:fixed;border-radius:3px;box-shadow:0 0 3px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.05);background-color:hsla(0,0%,100%,.95);border:1px solid rgba(0,0,0,.1);padding:2px 0;font-size:90%;overflow:auto;max-height:50%}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_btn-2bTUd{display:inline-block;margin-bottom:0;font-size:13.71429px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_btn-sm-2Ltms{font-size:12px;line-height:1.5;border-radius:3px}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_btn-default-2pap4{color:#666;background-color:#fff;border-color:#ccc}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_btn-default-2pap4:hover{color:#000;background:#ccc}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_btn-default-2pap4:active,.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_btn-default-2pap4:focus{color:#fff;border-color:#000;background:#000}.vitessce-container .higlass-wrapper .GenomePositionSearchBox-module_genome-position-search-SYccr .GenomePositionSearchBox-module_btn-2bTUd{border-radius:0 3px 3px 0}.vitessce-container .higlass-wrapper .ExportLinkDialog-module_export-link-dialog-wrapper-ldYlL{display:flex}.vitessce-container .higlass-wrapper .ExportLinkDialog-module_export-link-dialog-wrapper-ldYlL input{flex-grow:1}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-table-RHODc{border-collapse:collapse;margin:5px;color:#666}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-table-dark-_B9fu{color:#ccc}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-other-lIGbb{outline:none}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-top-center-2Dw4e{min-width:80px;min-height:20px;text-align:center;outline:none;border-top:1px solid #999;border-left:1px solid #999;border-right:1px solid #999;border-radius:2px 2px 0 0}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-top-center-2Dw4e:hover{color:#fff;background-color:#337ab7}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-middle-left-2ycaN{min-width:40px;text-align:center;outline:none;border-top:1px solid #999;border-left:1px solid #999;border-bottom:1px solid #999;border-radius:2px 0 0 2px}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-middle-left-2ycaN:hover{background-color:#337ab7;color:#fff}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-middle-right-Qqjnn{min-width:40px;text-align:center;outline:none;border-top:1px solid #999;border-right:1px solid #999;border-bottom:1px solid #999;border-radius:0 2px 2px 0}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-middle-right-Qqjnn:hover{background-color:#337ab7;color:#fff}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-middle-middle-2YFZd{text-align:center;outline:none;border:1px solid #999}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-middle-middle-2YFZd:hover{background-color:#337ab7;color:#fff}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-bottom-middle-3ityE{min-height:20px;text-align:center;outline:none;border-left:1px solid #999;border-right:1px solid #999;border-bottom:1px solid #999;border-radius:0 0 2px 2px}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-bottom-middle-3ityE:hover{background-color:#337ab7;color:#fff}.vitessce-container .higlass-wrapper .AddTrackPositionMenu-module_add-track-position-span-2hbwE{margin:5px}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-3XnZx,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-focus-3akkN,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-squeazed-GHIVd{position:relative;display:flex;justify-content:space-between;height:24px;margin-top:4px;margin-bottom:4px;color:#999;font-size:12px;line-height:24px;vertical-align:middle;border:0;border-radius:3px;background:#e5e5e5;transition:height .15s ease,margin .15s ease}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-dark-97tZt{background:#222}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-focus-3akkN{height:32px;margin-top:0;margin-bottom:0}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-id-3YURk{padding-left:3px}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-id-3YURk:before{content:"ID:";font-weight:700;padding-right:5px}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-left-Qj9Sm{display:flex;flex-grow:1}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-grabber-3jrIz,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z{display:flex;align-items:center;justify-content:center;width:24px;height:100%;cursor:move;border-radius:3px 0 0 3px;transition:background .15s ease}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-grabber-3jrIz:hover,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z:hover{background:#999}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-grabber-3jrIz:hover div,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z:hover div{background:#fff}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-grabber-3jrIz div,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z div{width:1px;height:50%;margin:1px;background:#999;transition:background .15s ease}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-dark-97tZt .ViewHeader-module_multitrack-header-grabber-3jrIz div{background:#666}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z{width:19.2px}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-search-1X_3_{position:relative;flex-grow:1;height:100%;margin-right:12px}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-search-1X_3_:after{position:absolute;top:3px;bottom:3px;right:-12px;display:block;content:"";width:1px;margin:0 6px;background:#ccc}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-dark-97tZt .ViewHeader-module_multitrack-header-search-1X_3_:after{background:#666}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-3XnZx>nav,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-nav-list-2nvcu{display:flex}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-icon-16QKZ,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-icon-squeazed-25lkF{width:24px;height:100%;padding:6px;transition:background .15s ease,color .15s ease}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-icon-16QKZ:active,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-icon-16QKZ:focus,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-icon-16QKZ:hover,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-icon-squeazed-25lkF:active,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-icon-squeazed-25lkF:focus,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-icon-squeazed-25lkF:hover{color:#fff;background:#337ab7}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-icon-16QKZ:last-child,.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-icon-squeazed-25lkF:last-child{border-radius:0 3px 3px 0}.vitessce-container .higlass-wrapper .ViewHeader-module_mouse-tool-selection-1pg2m{color:#fff;border-radius:3px 0 0 3px;background:#337ab7}.vitessce-container .higlass-wrapper .ViewHeader-module_multitrack-header-icon-squeazed-25lkF{width:20px 5;padding-left:3px;padding-right:3px}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-editor-header-2nTtX{margin:-10px -10px 0;padding:10px;display:flex;justify-content:space-between;background:#f2f2f2}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-editor-header-2nTtX button{display:flex;align-items:center;font-size:14px;background:#f2f2f2}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-editor-header-2nTtX button:hover{background:#e5e5e5}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-editor-header-2nTtX button:hover span{color:#666}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-editor-2HAFN{position:absolute;top:50px;right:0;bottom:0;left:0;margin:1px 0 0;padding:0;overflow:auto;font-size:12.5px;height:calc(100% - 80px)}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-log-1mYmL{position:absolute;right:0;bottom:0;left:0;margin:1px 0 0;padding:0;min-height:30px;background:#f2f2f2;transition:height .15s ease}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-log-header-3EbEM{background:#f2f2f2;border-top:1px solid #ccc;border-bottom:1px solid #ccc;padding-left:10px;height:30px;display:flex;align-items:center;cursor:pointer;position:sticky;position:-webkit-sticky;top:0}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-log-msg-2-CJZ{background:#f2f2f2;overflow:auto;height:calc(100% - 30px)}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-log-msg-2-CJZ td,.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-log-msg-2-CJZ tr{outline:none;vertical-align:top}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_title-3nLH_{font-weight:700;padding-left:8px;padding-top:8px;width:100px}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_Warning-_sgiB{color:orange}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_Success-nclFo{color:green}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_Error-3enaC{color:red}.vitessce-container .higlass-wrapper .ViewConfigEditor-module_view-config-log-msg-2-CJZ pre{background:#fff;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.vitessce-container .higlass-wrapper .HiGlass-module_higlass-1NHR2{position:relative}.vitessce-container .higlass-wrapper .HiGlass-module_higlass-dark-theme-2visd{background:#000}.vitessce-container .higlass-wrapper .HiGlass-module_higlass-container-overflow-zNXnY,.vitessce-container .higlass-wrapper .HiGlass-module_higlass-scroll-container-overflow-2FS0w,.vitessce-container .higlass-wrapper .HiGlass-module_higlass-scroll-container-scroll-2lAU4{position:absolute;top:0;right:0;bottom:0;left:0}.vitessce-container .higlass-wrapper .HiGlass-module_higlass-scroll-container-overflow-2FS0w{overflow:hidden}.vitessce-container .higlass-wrapper .HiGlass-module_higlass-scroll-container-scroll-2lAU4{overflow-x:hidden;overflow-y:auto}.vitessce-container .higlass-wrapper .HiGlass-module_higlass-canvas-_mP9r{position:absolute;width:100%;height:100%}.vitessce-container .higlass-wrapper .HiGlass-module_higlass-drawing-surface-3aQQo{position:relative}.vitessce-container .higlass-wrapper .HiGlass-module_higlass-svg-JJZbf{position:absolute;width:100%;height:100%;left:0;top:0;pointer-events:none}.vitessce-container .higlass-wrapper .HiGlass-module_tiled-area-22H1L{display:flex;flex-direction:column}.vitessce-container .higlass-wrapper .HiGlass-module_track-mouseover-menu-1AoaP{position:fixed;z-index:1;margin:17px 0 0 9px;padding:0 .25rem;max-width:50vw;word-wrap:break-word;font-size:.8em;pointer-events:none;background:#fff;border-radius:.25rem;box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 3px 0 rgba(0,0,0,.075),0 0 7px 0 rgba(0,0,0,.05)}.vitessce-container .higlass-wrapper .higlass .react-grid-layout{position:relative;transition:height .2s ease}.vitessce-container .higlass-wrapper .higlass .react-grid-item{transition:all .2s ease;transition-property:left,top}.vitessce-container .higlass-wrapper .higlass .react-grid-item.cssTransforms{transition-property:transform}.vitessce-container .higlass-wrapper .higlass .react-grid-item.resizing{z-index:1;will-change:width,height}.vitessce-container .higlass-wrapper .higlass .react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.vitessce-container .higlass-wrapper .higlass .react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.vitessce-container .higlass-wrapper .higlass .react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;bottom:0;right:0;cursor:se-resize}.vitessce-container .higlass-wrapper .higlass .react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.vitessce-container .higlass-wrapper .higlass .react-resizable{position:relative}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZ6IiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+");background-position:100% 100%;padding:0 3px 3px 0}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-e,.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-w{top:50%;margin-top:-10px;cursor:ew-resize}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-w{left:0;transform:rotate(135deg)}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-e{right:0;transform:rotate(315deg)}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-n,.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-n{top:0;transform:rotate(225deg)}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.vitessce-container .higlass-wrapper .higlass code[class*=language-],.vitessce-container .higlass-wrapper .higlass pre[class*=language-]{color:#393a34;font-family:Consolas,Bitstream Vera Sans Mono,Courier New,Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.95em;line-height:1.2em;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.vitessce-container .higlass-wrapper .higlass code[class*=language-]::selection,.vitessce-container .higlass-wrapper .higlass code[class*=language-] ::selection,.vitessce-container .higlass-wrapper .higlass pre[class*=language-]::selection,.vitessce-container .higlass-wrapper .higlass pre[class*=language-] ::selection{background:#b3d4fc}.vitessce-container .higlass-wrapper .higlass pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border:1px solid #ddd;background-color:#fff}.vitessce-container .higlass-wrapper .higlass :not(pre)>code[class*=language-]{padding:1px .2em;background:#f8f8f8;border:1px solid #ddd}.vitessce-container .higlass-wrapper .higlass .token.cdata,.vitessce-container .higlass-wrapper .higlass .token.comment,.vitessce-container .higlass-wrapper .higlass .token.doctype,.vitessce-container .higlass-wrapper .higlass .token.prolog{color:#998;font-style:italic}.vitessce-container .higlass-wrapper .higlass .token.namespace{opacity:.7}.vitessce-container .higlass-wrapper .higlass .token.attr-value,.vitessce-container .higlass-wrapper .higlass .token.string{color:#e3116c}.vitessce-container .higlass-wrapper .higlass .token.operator,.vitessce-container .higlass-wrapper .higlass .token.punctuation{color:#393a34}.vitessce-container .higlass-wrapper .higlass .token.boolean,.vitessce-container .higlass-wrapper .higlass .token.constant,.vitessce-container .higlass-wrapper .higlass .token.entity,.vitessce-container .higlass-wrapper .higlass .token.inserted,.vitessce-container .higlass-wrapper .higlass .token.number,.vitessce-container .higlass-wrapper .higlass .token.property,.vitessce-container .higlass-wrapper .higlass .token.regex,.vitessce-container .higlass-wrapper .higlass .token.symbol,.vitessce-container .higlass-wrapper .higlass .token.url,.vitessce-container .higlass-wrapper .higlass .token.variable{color:#36acaa}.vitessce-container .higlass-wrapper .higlass .language-autohotkey .token.selector,.vitessce-container .higlass-wrapper .higlass .token.atrule,.vitessce-container .higlass-wrapper .higlass .token.attr-name,.vitessce-container .higlass-wrapper .higlass .token.keyword{color:#00a4db}.vitessce-container .higlass-wrapper .higlass .language-autohotkey .token.tag,.vitessce-container .higlass-wrapper .higlass .token.deleted,.vitessce-container .higlass-wrapper .higlass .token.function{color:#9a050f}.vitessce-container .higlass-wrapper .higlass .language-autohotkey .token.keyword,.vitessce-container .higlass-wrapper .higlass .token.selector,.vitessce-container .higlass-wrapper .higlass .token.tag{color:#00009f}.vitessce-container .higlass-wrapper .higlass .token.bold,.vitessce-container .higlass-wrapper .higlass .token.function,.vitessce-container .higlass-wrapper .higlass .token.important{font-weight:700}.vitessce-container .higlass-wrapper .higlass .token.italic{font-style:italic}.vitessce-container .higlass-wrapper .higlass *{box-sizing:border-box}.vitessce-container .higlass-wrapper .higlass .react-resizable-handle{z-index:1}.vitessce-container .higlass-wrapper table.table-track-options{border-collapse:collapse;margin-left:auto;margin-right:auto}.vitessce-container .higlass-wrapper td.td-track-options{border:1px solid #fff;outline:none;padding:3px;position:relative;font-family:Roboto,sans-serif;font-size:14px;color:#666}.vitessce-container .higlass-wrapper .cell-label{position:absolute;left:0;top:0;margin-left:5px;color:#777}.vitessce-container .higlass-wrapper .modal-dialog{position:relative;display:table;overflow-y:auto;overflow-x:auto;width:auto;min-width:300px;margin:auto}.vitessce-container{position:relative}.vitessce-container *,.vitessce-container :after,.vitessce-container :before{box-sizing:border-box}.vitessce-container div{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;text-align:left}.vitessce-container article,.vitessce-container aside,.vitessce-container figcaption,.vitessce-container figure,.vitessce-container footer,.vitessce-container header,.vitessce-container hgroup,.vitessce-container main,.vitessce-container nav,.vitessce-container section{display:block}.vitessce-container h1,.vitessce-container h2,.vitessce-container h3,.vitessce-container h4,.vitessce-container h5,.vitessce-container h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.vitessce-container p{margin-top:0;margin-bottom:1rem}.vitessce-container dl,.vitessce-container ol,.vitessce-container ul{margin-top:0;margin-bottom:0}.vitessce-container b,.vitessce-container strong{font-weight:bolder}.vitessce-container small{font-size:80%}.vitessce-container a{color:#007bff;text-decoration:none;background-color:transparent}.vitessce-container a:hover{color:#0056b3;text-decoration:underline}.vitessce-container a:not([href]),.vitessce-container a:not([href]):hover{color:inherit;text-decoration:none}.vitessce-container img{vertical-align:middle;border-style:none}.vitessce-container svg{overflow:hidden}.vitessce-container table{border-collapse:collapse}.vitessce-container th{text-align:inherit}.vitessce-container button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.vitessce-container button,.vitessce-container input,.vitessce-container optgroup,.vitessce-container select,.vitessce-container textarea{font-family:inherit;font-size:inherit;line-height:inherit}.vitessce-container button,.vitessce-container input{overflow:visible}.vitessce-container button,.vitessce-container select{text-transform:none}.vitessce-container select{word-wrap:normal}.vitessce-container [type=button],.vitessce-container [type=reset],.vitessce-container [type=submit],.vitessce-container button{-webkit-appearance:button}.vitessce-container [type=button]:not(:disabled),.vitessce-container [type=reset]:not(:disabled),.vitessce-container [type=submit]:not(:disabled),.vitessce-container button:not(:disabled){cursor:pointer}.vitessce-container [type=button]::-moz-focus-inner,.vitessce-container [type=reset]::-moz-focus-inner,.vitessce-container [type=submit]::-moz-focus-inner,.vitessce-container button::-moz-focus-inner{padding:0;border-style:none}.vitessce-container input[type=checkbox],.vitessce-container input[type=radio]{box-sizing:border-box;padding:0}.vitessce-container [hidden]{display:none!important}.vitessce-container h1{font-size:2.5rem}.vitessce-container h2{font-size:2rem}.vitessce-container h3{font-size:1.75rem}.vitessce-container h4{font-size:1.5rem}.vitessce-container h5{font-size:1.25rem}.vitessce-container h6{font-size:1rem}.vitessce-container .container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.vitessce-container .row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.vitessce-container .col{flex-basis:0;flex-grow:1;max-width:100%;position:relative;width:100%;padding-right:15px;padding-left:15px}.vitessce-container .d-flex{display:flex!important}.vitessce-container .card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.vitessce-container .card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.vitessce-container .card-header+.list-group .list-group-item:first-child{border-top:0}.vitessce-container .card-body{flex:1 1 auto;min-height:1px;padding:.75rem}.vitessce-container .list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.vitessce-container .list-group-item-action{width:100%;color:#495057;text-align:inherit}.vitessce-container .list-group-item-action:focus,.vitessce-container .list-group-item-action:hover{z-index:1;text-decoration:none}.vitessce-container .list-group-item{position:relative;display:block;padding:.75rem 1.25rem;border:1px solid rgba(0,0,0,.125)}.vitessce-container .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.vitessce-container .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.vitessce-container .list-group-item.disabled,.vitessce-container .list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.vitessce-container .list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.vitessce-container .list-group-item+.list-group-item{border-top-width:0}.vitessce-container .list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.vitessce-container .flex-column{flex-direction:column!important}.vitessce-container .align-items-start{align-items:flex-start!important}.vitessce-container .input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.vitessce-container .input-group>.form-control,.vitessce-container .input-group>.form-control-plaintext{position:relative;flex:1 1;min-width:0;margin-bottom:0}.vitessce-container .input-group>.custom-file+.form-control,.vitessce-container .input-group>.custom-select+.form-control,.vitessce-container .input-group>.form-control+.form-control,.vitessce-container .input-group>.form-control-plaintext+.form-control{margin-left:-1px}.vitessce-container .input-group>.form-control:focus{z-index:3}.vitessce-container .input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.vitessce-container .input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.vitessce-container .input-group-append,.vitessce-container .input-group-prepend{display:flex}.vitessce-container .input-group-append .btn,.vitessce-container .input-group-prepend .btn{position:relative;z-index:2}.vitessce-container .input-group-append .btn:focus,.vitessce-container .input-group-prepend .btn:focus{z-index:3}.vitessce-container .input-group-append .btn+.btn,.vitessce-container .input-group-prepend .btn+.btn{margin-left:-1px}.vitessce-container .input-group-prepend{margin-right:-1px}.vitessce-container .input-group-append{margin-left:-1px}.vitessce-container .input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.vitessce-container .input-group-lg>.form-control,.vitessce-container .input-group-lg>.input-group-append>.btn,.vitessce-container .input-group-lg>.input-group-prepend>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.vitessce-container .input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.vitessce-container .input-group-sm>.form-control,.vitessce-container .input-group-sm>.input-group-append>.btn,.vitessce-container .input-group-sm>.input-group-prepend>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.vitessce-container .input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.vitessce-container .input-group>.input-group-append:not(:last-child)>.btn,.vitessce-container .input-group>.input-group-prepend>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.vitessce-container .input-group>.input-group-append>.btn,.vitessce-container .input-group>.input-group-prepend:first-child>.btn:not(:first-child),.vitessce-container .input-group>.input-group-prepend:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.vitessce-container .mt-auto,.vitessce-container .my-auto{margin-top:auto!important}.vitessce-container .mb-auto,.vitessce-container .my-auto{margin-bottom:auto!important}.vitessce-container .mt-0,.vitessce-container .my-0{margin-top:0!important}.vitessce-container .mb-0,.vitessce-container .my-0{margin-bottom:0!important}.vitessce-container .mt-1,.vitessce-container .my-1{margin-top:.25rem!important}.vitessce-container .mb-1,.vitessce-container .my-1{margin-bottom:.25rem!important}.vitessce-container .mt-2,.vitessce-container .my-2{margin-top:.5rem!important}.vitessce-container .mb-2,.vitessce-container .my-2{margin-bottom:.5rem!important}.vitessce-container .mt-3,.vitessce-container .my-3{margin-top:1rem!important}.vitessce-container .mb-3,.vitessce-container .my-3{margin-bottom:1rem!important}.vitessce-container .ml-auto,.vitessce-container .mx-auto{margin-left:auto!important}.vitessce-container .mr-auto,.vitessce-container .mx-auto{margin-right:auto!important}.vitessce-container .ml-0,.vitessce-container .mx-0{margin-left:0!important}.vitessce-container .mr-0,.vitessce-container .mx-0{margin-right:0!important}.vitessce-container .ml-1,.vitessce-container .mx-1{margin-left:.25rem!important}.vitessce-container .mr-1,.vitessce-container .mx-1{margin-right:.25rem!important}.vitessce-container .ml-2,.vitessce-container .mx-2{margin-left:.5rem!important}.vitessce-container .mr-2,.vitessce-container .mx-2{margin-right:.5rem!important}.vitessce-container .ml-3,.vitessce-container .mx-3{margin-left:1rem!important}.vitessce-container .mr-3,.vitessce-container .mx-3{margin-right:1rem!important}.vitessce-container .pt-0,.vitessce-container .py-0{padding-top:0!important}.vitessce-container .pb-0,.vitessce-container .py-0{padding-bottom:0!important}.vitessce-container .pt-1,.vitessce-container .py-1{padding-top:.25rem!important}.vitessce-container .pb-1,.vitessce-container .py-1{padding-bottom:.25rem!important}.vitessce-container .pt-2,.vitessce-container .py-2{padding-top:.5rem!important}.vitessce-container .pb-2,.vitessce-container .py-2{padding-bottom:.5rem!important}.vitessce-container .pt-3,.vitessce-container .py-3{padding-top:1rem!important}.vitessce-container .pb-3,.vitessce-container .py-3{padding-bottom:1rem!important}.vitessce-container .pl-0,.vitessce-container .px-0{padding-left:0!important}.vitessce-container .pr-0,.vitessce-container .px-0{padding-right:0!important}.vitessce-container .pl-1,.vitessce-container .px-1{padding-left:.25rem!important}.vitessce-container .pr-1,.vitessce-container .px-1{padding-right:.25rem!important}.vitessce-container .pr-2,.vitessce-container .px-2{padding-right:.5rem!important}.vitessce-container .pl-3,.vitessce-container .px-3{padding-left:1rem!important}.vitessce-container .pr-3,.vitessce-container .px-3{padding-right:1rem!important}.vitessce-container .form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.vitessce-container .form-control{transition:none}}.vitessce-container .form-control::-ms-expand{background-color:transparent;border:0}.vitessce-container .form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.vitessce-container .form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.vitessce-container .form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.vitessce-container .form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.vitessce-container .form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.vitessce-container .form-control::placeholder{color:#6c757d;opacity:1}.vitessce-container .form-control:disabled,.vitessce-container .form-control[readonly]{background-color:#e9ecef;opacity:1}.vitessce-container select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.vitessce-container .btn .badge{position:relative;top:-1px}.vitessce-container .btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.vitessce-container .btn{transition:none}}.vitessce-container .btn:hover{color:#212529;text-decoration:none}.vitessce-container .btn.focus,.vitessce-container .btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.vitessce-container .btn.disabled,.vitessce-container .btn:disabled{opacity:.65}.vitessce-container .btn-outline-secondary{color:#6c757d;border-color:#6c757d}.vitessce-container .btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.vitessce-container .btn-outline-secondary.focus,.vitessce-container .btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.vitessce-container .btn-outline-secondary.disabled,.vitessce-container .btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.vitessce-container .btn-outline-secondary:not(:disabled):not(.disabled).active,.vitessce-container .btn-outline-secondary:not(:disabled):not(.disabled):active,.vitessce-container .show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.vitessce-container .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.vitessce-container .btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.vitessce-container .show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.vitessce-container .modal-open{overflow:hidden}.vitessce-container .modal-open .modal{overflow-x:hidden;overflow-y:auto}.vitessce-container .modal{position:absolute;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0}.vitessce-container .modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.vitessce-container .modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media(prefers-reduced-motion:reduce){.vitessce-container .modal.fade .modal-dialog{transition:none}}.vitessce-container .modal.show .modal-dialog{transform:none}.vitessce-container .modal.modal-static .modal-dialog{transform:scale(1.02)}.vitessce-container .modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.vitessce-container .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.vitessce-container .modal-dialog-scrollable .modal-footer,.vitessce-container .modal-dialog-scrollable .modal-header{flex-shrink:0}.vitessce-container .modal-dialog-scrollable .modal-body{overflow-y:auto}.vitessce-container .modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.vitessce-container .modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:""}.vitessce-container .modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.vitessce-container .modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.vitessce-container .modal-dialog-centered.modal-dialog-scrollable:before{content:none}.vitessce-container .modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.vitessce-container .modal-backdrop{position:absolute;top:0;left:0;z-index:1040;width:100%;height:100%;background-color:#000}.vitessce-container .modal-backdrop.fade{opacity:0}.vitessce-container .modal-backdrop.show{opacity:.5}.vitessce-container .modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.vitessce-container .modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.vitessce-container .modal-title{margin-bottom:0;line-height:1.5}.vitessce-container .modal-body{position:relative;flex:1 1 auto;padding:1rem}.vitessce-container .modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.vitessce-container .modal-footer>*{margin:.25rem}.vitessce-container .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width:576px){.vitessce-container .modal-dialog{max-width:500px;margin:1.75rem auto}.vitessce-container .modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.vitessce-container .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.vitessce-container .modal-dialog-centered{min-height:calc(100% - 3.5rem)}.vitessce-container .modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.vitessce-container .modal-sm{max-width:300px}}@media(min-width:992px){.vitessce-container .modal-lg,.vitessce-container .modal-xl{max-width:800px}}@media(min-width:1200px){.vitessce-container .modal-xl{max-width:1140px}}.vitessce-container .card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-clip:border-box;border-radius:.25rem}.vitessce-container .alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.vitessce-container .alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.vitessce-container .justify-content-between{justify-content:space-between!important}.vitessce-container .align-items-baseline{align-items:baseline!important}.vitessce-container .pl-2,.vitessce-container .px-2{padding-left:.5rem!important}.vitessce-container .align-items-end{align-items:flex-end!important}.vitessce-container.vitessce-theme-dark.welcome-container{overflow:visible}.vitessce-container.vitessce-theme-dark.welcome-container .react-grid-layout,.vitessce-container.vitessce-theme-dark.welcome-container .warning-layout{position:relative}.vitessce-container.vitessce-theme-dark.welcome-container .row>div>.card{margin:1rem 0}.vitessce-container.vitessce-theme-dark .welcome-beta-header{background-color:#93e5c3;padding:1rem}.vitessce-container.vitessce-theme-dark .welcome-beta-header p{margin:0;color:#222}.vitessce-container.vitessce-theme-dark .welcome-beta-header p a{color:#000;text-decoration:underline;font-weight:600}.vitessce-container.vitessce-theme-dark .react-grid-layout,.vitessce-container.vitessce-theme-dark .warning-layout{background-color:#333;height:auto;position:absolute;width:100%}.vitessce-container.vitessce-theme-dark .warning-layout{height:100vh}.vitessce-container.vitessce-theme-dark .warning-layout .card{margin-left:.5rem}.vitessce-container.vitessce-theme-dark .loading-indicator-backdrop{position:absolute;top:0;left:0;z-index:1040;width:100%;height:100%;border-radius:.25rem;background-color:rgba(0,0,0,.5)}.vitessce-container.vitessce-theme-dark .loading-indicator-backdrop .loading-indicator-container{display:grid;place-items:center;position:absolute;width:100%;height:100%}.vitessce-container.vitessce-theme-dark .react-grid-item{flex-direction:column!important;display:flex!important;padding-right:10px}.vitessce-container.vitessce-theme-dark .d-flex{flex-shrink:0}.vitessce-container.vitessce-theme-dark .title{color:#d3d3d3;overflow-x:hidden;display:flex;flex-direction:row;flex-shrink:0}.vitessce-container.vitessce-theme-dark .title .title-left{flex-shrink:1;text-overflow:ellipsis;white-space:nowrap}.vitessce-container.vitessce-theme-dark .title .title-info{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:80%;opacity:.8;padding:0 .25rem;justify-content:center;line-height:25px;flex-shrink:1;text-align:right}.vitessce-container.vitessce-theme-dark .title .title-buttons{display:flex;flex-direction:row;flex-grow:1;flex-shrink:0;justify-content:right}.vitessce-container.vitessce-theme-dark .title .title-buttons div{display:inline-block}.vitessce-container.vitessce-theme-dark .card{border:1px solid rgba(0,0,0,.125)}.vitessce-container.vitessce-theme-dark .bg-black{background-color:#000;color:#fff}.vitessce-container.vitessce-theme-dark .bg-black a{color:#fff}.vitessce-container.vitessce-theme-dark .bg-primary{background-color:#222;color:#d3d3d3}.vitessce-container.vitessce-theme-dark .bg-primary a{color:#9bb7d6}.vitessce-container.vitessce-theme-dark .bg-secondary{background-color:#000;color:#d3d3d3}.vitessce-container.vitessce-theme-dark .scroll{overflow-y:auto}.vitessce-container.vitessce-theme-dark .description details,.vitessce-container.vitessce-theme-dark .description p,.vitessce-container.vitessce-theme-dark .description table,.vitessce-container.vitessce-theme-dark .details{font-size:80%;opacity:.8}.vitessce-container.vitessce-theme-dark .description details{margin-bottom:6px}.vitessce-container.vitessce-theme-dark .description summary{border-bottom:1px solid #3c3c3c;cursor:pointer}.vitessce-container.vitessce-theme-dark .description .metadata-container{padding-left:14px}.vitessce-container.vitessce-theme-dark .description .metadata-container table{width:100%}.vitessce-container.vitessce-theme-dark .description .metadata-container table td,.vitessce-container.vitessce-theme-dark .description .metadata-container table th{outline:none;padding:2px;max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:50%}.vitessce-container.vitessce-theme-dark .description .metadata-container table tr:nth-child(2n){background-color:#2f2f2f}.vitessce-container.vitessce-theme-dark .coll-full,.vitessce-container.vitessce-theme-dark .welcome-col-left,.vitessce-container.vitessce-theme-dark .welcome-col-right{position:relative;width:100%;padding-right:15px;padding-left:15px}.vitessce-container.vitessce-theme-dark .col-full{flex:0 0 100%;max-width:100%}.vitessce-container.vitessce-theme-dark .welcome-col-left{flex:0 0 50%;max-width:50%}.vitessce-container.vitessce-theme-dark .welcome-col-left .list-group-item{background-color:#000}.vitessce-container.vitessce-theme-dark .welcome-col-left .input-group input{background-color:#d3d3d3}.vitessce-container.vitessce-theme-dark .welcome-col-left a{color:#fff}.vitessce-container.vitessce-theme-dark .welcome-col-right{flex:0 0 50%;max-width:50%}.vitessce-container.vitessce-theme-dark .welcome-col-right .info-paragraph{margin-bottom:0!important}.vitessce-container.vitessce-theme-dark .welcome-col-right .info-section-text{margin-top:.5rem}.vitessce-container.vitessce-theme-dark .welcome-col-right a{color:#fff}.vitessce-container.vitessce-theme-dark .btn.icon{padding:0;height:2em;width:2em;background-color:#fff}.vitessce-container.vitessce-theme-dark .btn.icon>svg{vertical-align:middle}.vitessce-container.vitessce-theme-dark .roll-up{height:2em;overflow:hidden;background-color:#fff}.vitessce-container.vitessce-theme-dark .roll-up:hover{-webkit-animation-name:roll-up;animation-name:roll-up;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes roll-up{0%{height:2em}to{height:100%}}.vitessce-container.vitessce-theme-dark .tool{position:absolute;display:inline;z-index:1000;opacity:.65;color:#000}.vitessce-container.vitessce-theme-dark .tool:hover{opacity:.9}.vitessce-container.vitessce-theme-dark .radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;width:1em;height:1em;padding:6px!important;background-clip:content-box;border:2px solid #d3d3d3;background-color:#d3d3d3;border-radius:50%}.vitessce-container.vitessce-theme-dark .radio:checked{background-clip:unset}.vitessce-container.vitessce-theme-dark .layer-controller-container>div:first-child{margin-top:0!important}.vitessce-container.vitessce-theme-dark .channel-container{width:100%;display:flex;position:relative}.vitessce-container.vitessce-theme-dark .channel-set-color{display:flex;position:relative;top:5px;width:16px;height:16px;margin-right:24px;cursor:pointer;outline:medium none currentColor;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.vitessce-container.vitessce-theme-dark .channel-checked{display:flex;position:relative;margin-right:10px}.vitessce-container.vitessce-theme-dark .add-image-layer{color:#c6c6c6;border:1px dashed #c6c6c6}.vitessce-container.vitessce-theme-dark pre{color:#d3d3d3}.vitessce-container.vitessce-theme-dark .cell-emphasis-crosshair{z-index:50;position:absolute;pointer-events:none;box-sizing:border-box;background-color:#d3d3d3}.vitessce-container.vitessce-theme-dark .help-tooltip.rc-tooltip{z-index:1060;display:block;max-width:250px;visibility:visible;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;list-style:none;position:absolute}.vitessce-container.vitessce-theme-dark .help-tooltip.rc-tooltip-hidden{display:none}.vitessce-container.vitessce-theme-dark .help-tooltip.rc-tooltip .rc-tooltip-inner{border-radius:2px;box-shadow:0 3px 6px -4px hsla(0,0%,39.2%,.12),0 6px 16px 0 hsla(0,0%,39.2%,.08),0 9px 28px 8px hsla(0,0%,39.2%,.05)}.vitessce-container.vitessce-theme-dark .help-tooltip.rc-tooltip-placement-top{padding-top:8px}.vitessce-container.vitessce-theme-dark .help-tooltip.rc-tooltip-placement-right{padding-left:8px}.vitessce-container.vitessce-theme-dark .help-tooltip.rc-tooltip-placement-bottom{padding-top:8px}.vitessce-container.vitessce-theme-dark .help-tooltip.rc-tooltip-placement-left{padding-right:8px}.vitessce-container.vitessce-theme-dark .help-tooltip.rc-tooltip .rc-tooltip-inner{font-size:10px;min-width:30px;padding:6px 8px;color:#fff;text-align:left;text-decoration:none;word-wrap:break-word;background-color:rgba(0,0,0,.9)}.vitessce-container.vitessce-theme-dark .help-tooltip.rc-tooltip .rc-tooltip-arrow{display:none}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip{top:0;left:0;z-index:1030;font-weight:400;white-space:normal;text-align:left;cursor:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;list-style:none;position:absolute}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip:after{position:absolute;background:hsla(0,0%,100%,.01);content:""}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip-hidden{display:none}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner{border-radius:2px;box-shadow:0 3px 6px -4px hsla(0,0%,39.2%,.12),0 6px 16px 0 hsla(0,0%,39.2%,.08),0 9px 28px 8px hsla(0,0%,39.2%,.05)}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip-placement-top{padding-bottom:10px}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip-placement-right{padding-left:10px}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip-placement-bottom{padding-top:10px}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip-placement-left{padding-right:10px}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-content{padding:0}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner{box-sizing:border-box;background-color:#fff;background-clip:padding-box}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list{list-style-type:none;padding:0;margin-bottom:0}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list dl,.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list ol,.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list ul{margin-top:0;margin-bottom:1rem}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list li button{border:0;padding:4px 16px;cursor:pointer;width:100%;background-color:transparent;border-radius:2px}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list li button span.small{font-size:11px}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list li button:hover{background-color:#ededed}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list li:not(:last-child){border-bottom:1px solid grey}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list button{-webkit-appearance:button;text-transform:none;overflow:visible;margin:0;font-family:inherit;font-size:14px;line-height:inherit;border-radius:0}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner .popover-menu-color+.popover-menu-list{border-top:1px solid grey}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .popover-menu-color.twitter-picker{box-shadow:none!important;margin:0 auto}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .popover-menu-color.twitter-picker>div:nth-child(3){padding:6px!important;transform:translate(2px)}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .popover-menu-color.twitter-picker>div>div:first-of-type{font-size:12px;width:20px!important}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .popover-menu-color.twitter-picker input{width:60px!important;font-size:12px}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .popover-menu-color.twitter-picker>div>span>div{width:18px!important;height:18px!important}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-inner-content{padding:12px 16px;color:rgba(0,0,0,.65)}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip .rc-tooltip-arrow{position:absolute;display:block;width:8px;height:8px;background:transparent;border-style:solid;border-width:4px;transform:rotate(45deg)}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip.rc-tooltip-placement-top>.rc-tooltip-content>.rc-tooltip-arrow{bottom:6px;border-color:transparent #fff #fff transparent;box-shadow:3px 3px 7px rgba(0,0,0,.07);left:50%;transform:translateX(-50%) rotate(45deg)}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip.rc-tooltip-placement-right>.rc-tooltip-content>.rc-tooltip-arrow{left:6px;border-color:transparent transparent #fff #fff;box-shadow:-3px 3px 7px rgba(0,0,0,.07);top:50%;transform:translateY(-50%) rotate(45deg)}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip.rc-tooltip-placement-bottom>.rc-tooltip-content>.rc-tooltip-arrow{top:6px;border-color:#fff transparent transparent #fff;box-shadow:-2px -2px 5px rgba(0,0,0,.06);left:50%;transform:translateX(-50%) rotate(45deg)}.vitessce-container.vitessce-theme-dark .popover.rc-tooltip.rc-tooltip-placement-left>.rc-tooltip-content>.rc-tooltip-arrow{right:6px;border-color:#fff #fff transparent transparent;box-shadow:3px -3px 7px rgba(0,0,0,.07);top:50%;transform:translateY(-50%) rotate(45deg)}.vitessce-container.vitessce-theme-dark .sets-manager{position:relative;width:100%;display:block;height:auto}.vitessce-container.vitessce-theme-dark .sets-manager .set-operation-buttons{background-color:#d3d3d3;border-radius:4px;padding:2px;display:inline-block;position:absolute;bottom:1.75rem;right:.25rem;box-shadow:-2px -2px 5px rgba(0,0,0,.06)}.vitessce-container.vitessce-theme-dark .sets-manager .set-operation-buttons button{border:0;background-color:transparent;color:#626262}.vitessce-container.vitessce-theme-dark .sets-manager .set-operation-buttons button[disabled]{pointer-events:none}.vitessce-container.vitessce-theme-dark .sets-manager .set-operation-buttons button[disabled] svg{fill:silver}.vitessce-container.vitessce-theme-dark .sets-manager .set-operation-buttons button svg{fill:#555;vertical-align:top;height:20px;margin-top:1px}.vitessce-container.vitessce-theme-dark .sets-manager .set-operation-buttons button:hover,.vitessce-container.vitessce-theme-dark .sets-manager .set-operation-buttons button:hover path{color:#2f2f2f;fill:#2f2f2f}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree{position:relative;top:0;left:0;width:100%;height:auto;display:block;padding-right:17px;box-sizing:content-box}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .plus-button{border:0;background-color:transparent;color:#e0e0e0;padding:0;font-size:18px;margin-bottom:2rem}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree{padding-left:0;margin:0;border:1px solid transparent}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .node-menu-icon{fill:grey;cursor:pointer;height:14px;position:relative;vertical-align:top;width:32px;top:5.5px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .node-menu-icon:hover{fill:#9a9a9a}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .node-size-label{font-size:12px;color:#adadad}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .level-buttons-container{height:20px;width:100%;position:relative;padding-left:4px;left:0}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .level-buttons-container .level-buttons input.level-radio-button{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;padding:5px;background-clip:content-box;border:2px solid #ededed;background-color:#ededed;border-radius:6px;position:relative;top:3px;left:0;float:left;margin-right:10px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .level-buttons-container .level-buttons input.level-radio-button.checked,.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .level-buttons-container .level-buttons input.level-radio-button:checked{background-clip:unset}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .level-0-treenode>.rc-tree-switcher i svg path{fill:#e0e0e0}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-focused:not(.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-active-focused){border-color:#0ff}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode{margin:0;padding:0;line-height:24px;white-space:nowrap;list-style:none;outline:0}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button,.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input{padding:0;margin:0}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button{height:24px;line-height:24px;border:1px solid transparent;color:#e0e0e0;background:transparent;background-color:transparent;vertical-align:top;font-size:14px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input{display:block;height:26px;box-sizing:border-box}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input .title-input{font-size:14px;height:24px;line-height:24px;width:calc(100% - 60px);margin-right:10px;background-color:#d3d3d3;color:#000;border-radius:4px;outline:none;padding:4px 0 4px 4px;border:1px solid #d3d3d3}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input .title-input:focus{border:1px solid #9bb7d6}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input .title-save-button{background-color:#555;border:1px solid #555;color:#d3d3d3;border-radius:3px;width:50px;height:24px;line-height:20px;font-size:13px;vertical-align:top;margin:0;padding:0}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input .title-save-button:hover{background-color:#626262;border:1px solid #626262}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .draggable{color:#333;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;-khtml-user-drag:element;-webkit-user-drag:element;border:2px solid transparent}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode.drag-over>.draggable{color:#fff;background-color:#316ac5;border:2px solid #316ac5;opacity:.8}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode.drag-over-gap-top>.draggable{border-top:2px solid #00f}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode.drag-over-gap-bottom>.draggable{border-bottom:2px solid #00f}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode.filter-node>.rc-tree-node-content-wrapper{color:#a60000!important;font-weight:700!important}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode ul{margin:0;padding-left:35px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .rc-tree-node-content-wrapper{width:calc(100% - 20px);display:inline-block;margin:0;padding:0;text-decoration:none;vertical-align:top;cursor:pointer;position:relative}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .rc-tree-node-content-wrapper>span{position:relative;width:100%;display:inline-block}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .rc-tree-node-content-wrapper>span .title-button{position:relative;max-width:calc(100% - 45px);overflow:hidden;text-overflow:ellipsis}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .rc-tree-node-content-wrapper>span .node-menu-icon{position:relative;left:0}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox,.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-switcher{display:inline-block;margin-top:4px;margin-right:6px;vertical-align:middle;background-color:transparent;background-repeat:no-repeat;background-attachment:scroll;border:0;outline:none;cursor:pointer}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-switcher svg{width:15px;height:15px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-switcher.rc-tree-switcher-noop{cursor:auto}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-switcher.rc-tree-switcher_close{transform:rotate(-90deg)}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox{width:13px;height:13px;border:2px solid grey;border-radius:3px;position:relative;left:0;margin:0 10px 0 3px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox-checked{background-color:grey}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox-indeterminate{background-position:-14px -28px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox-disabled{background-position:0 -56px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox.rc-tree-checkbox-checked.rc-tree-checkbox-disabled{background-position:-14px -56px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled{position:relative;background:#ccc;border-radius:3px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled:after{position:absolute;top:5px;left:3px;width:5px;height:0;border:2px solid #fff;border-top:0;border-left:0;transform:scale(1);content:" "}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree:not(.rc-tree-show-line) .rc-tree-treenode .rc-tree-switcher-noop{background:none}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree.rc-tree-show-line .rc-tree-treenode:not(:last-child)>.rc-tree-switcher-noop{background-position:-56px -18px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree.rc-tree-show-line .rc-tree-treenode:last-child>.rc-tree-switcher-noop{background-position:-56px -36px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-child-tree{display:none}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-child-tree-open{display:block}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-treenode-disabled>a,.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-treenode-disabled>a span,.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-treenode-disabled>span:not(.rc-tree-switcher){color:#767676;cursor:not-allowed}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-treenode-active{background:rgba(0,0,0,.1)}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-node-selected{background-color:#ffe6b0;border:1px solid #ffb951;opacity:.8}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-icon__open{margin-right:2px;vertical-align:top;background-position:-110px -16px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-icon__close{margin-right:2px;vertical-align:top;background-position:-110px 0}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-icon__docu{margin-right:2px;vertical-align:top;background-position:-110px -32px}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-icon__customize{margin-right:2px;vertical-align:top}.vitessce-container.vitessce-theme-dark .sets-manager .sets-manager-tree .rc-tree-indent-unit{display:inline-block;padding-left:18px}.vitessce-container.vitessce-theme-dark .vitessce-tooltip .ant-tooltip-content .ant-tooltip-inner{font-size:12px;background-color:rgba(0,0,0,.95)}.vitessce-container.vitessce-theme-dark .selectable-table{flex:1 1 auto;outline:none}.vitessce-container.vitessce-theme-dark .selectable-table .table-row{display:flex;flex-direction:row;border-bottom:1px solid #444}.vitessce-container.vitessce-theme-dark .selectable-table .table-item{cursor:pointer}.vitessce-container.vitessce-theme-dark .selectable-table .table-item:not(.row-checked):hover{background-color:#2b2b2b}.vitessce-container.vitessce-theme-dark .selectable-table .table-item.row-checked{background-color:#444}.vitessce-container.vitessce-theme-dark .selectable-table .table-item .hidden-input-column{display:none}.vitessce-container.vitessce-theme-dark .selectable-table .table-item .table-cell{padding:0 4px}.vitessce-container.vitessce-theme-dark .selectable-table .table-item .input-container{width:1em}.vitessce-container.vitessce-theme-dark .selectable-table .table-item .input-container label{display:block;margin:0;cursor:pointer}.vitessce-container.vitessce-theme-dark .selectable-table .table-item .input-container input{cursor:pointer}.vitessce-container.vitessce-theme-dark .selectable-table .table-item .input-container input.checkbox,.vitessce-container.vitessce-theme-dark .selectable-table .table-item .input-container input.radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;width:1em;height:1em;margin:.3em .5em 0;padding:6px!important;background-clip:content-box;border:2px solid #d3d3d3;background-color:#d3d3d3}.vitessce-container.vitessce-theme-dark .selectable-table .table-item .input-container input.checkbox:checked,.vitessce-container.vitessce-theme-dark .selectable-table .table-item .input-container input.radio:checked{background-clip:unset}.vitessce-container.vitessce-theme-dark .selectable-table .table-item .input-container input.radio{border-radius:50%}.vitessce-container.vitessce-theme-dark .selectable-table .table-item .input-container input.checkbox{border-radius:2px}.vitessce-container.vitessce-theme-dark .higlass-title-wrapper{height:calc(100% - 20px)}.vitessce-container.vitessce-theme-dark .higlass-title-wrapper .card-body{width:inherit;height:inherit;padding:5px;background-color:#000}.vitessce-container.vitessce-theme-dark .higlass-title-wrapper .card-body .higlass-lazy-wrapper{width:inherit;height:inherit}.vitessce-container.vitessce-theme-dark .higlass-title-wrapper .card-body .higlass-wrapper-parent{display:block;position:relative;box-sizing:border-box;font-size:12px;color:#333;overflow:hidden}.vitessce-container.vitessce-theme-dark .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper{width:inherit;height:inherit;position:relative;display:block;text-align:left;box-sizing:border-box}.vitessce-container.vitessce-theme-dark .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass{width:100%;height:100%}.vitessce-container.vitessce-theme-dark .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass .react-grid-layout{background-color:transparent!important}.vitessce-container.vitessce-theme-dark .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass nav{display:flex}.vitessce-container.vitessce-theme-dark .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass input{font-size:12px}.vitessce-container.vitessce-theme-dark .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass .btn{color:#999;font-size:12px}.vitessce-container.vitessce-theme-dark .vega-container{display:flex;flex:1 1 auto;overflow:hidden}.vitessce-container.vitessce-theme-dark .heatmap{width:100%;left:0;position:absolute;padding-right:inherit;padding-left:inherit}.vitessce-container.vitessce-theme-dark .heatmap-container{position:absolute;top:1.25rem;left:1.25rem;width:calc(100% - 2.5rem);height:calc(100% - 2.5rem)}.vitessce-container.vitessce-theme-dark .search-bar{margin-bottom:.25rem;border:0;padding:2px;border-radius:2px}.vitessce-container.vitessce-theme-light.welcome-container{overflow:visible}.vitessce-container.vitessce-theme-light.welcome-container .react-grid-layout,.vitessce-container.vitessce-theme-light.welcome-container .warning-layout{position:relative}.vitessce-container.vitessce-theme-light.welcome-container .row>div>.card{margin:1rem 0}.vitessce-container.vitessce-theme-light .welcome-beta-header{background-color:#93e5c3;padding:1rem}.vitessce-container.vitessce-theme-light .welcome-beta-header p{margin:0;color:#222}.vitessce-container.vitessce-theme-light .welcome-beta-header p a{color:#000;text-decoration:underline;font-weight:600}.vitessce-container.vitessce-theme-light .react-grid-layout,.vitessce-container.vitessce-theme-light .warning-layout{background-color:#fff;height:auto;position:absolute;width:100%}.vitessce-container.vitessce-theme-light .warning-layout{height:100vh}.vitessce-container.vitessce-theme-light .warning-layout .card{margin-left:.5rem}.vitessce-container.vitessce-theme-light .loading-indicator-backdrop{position:absolute;top:0;left:0;z-index:1040;width:100%;height:100%;border-radius:.25rem;background-color:rgba(0,0,0,.5)}.vitessce-container.vitessce-theme-light .loading-indicator-backdrop .loading-indicator-container{display:grid;place-items:center;position:absolute;width:100%;height:100%}.vitessce-container.vitessce-theme-light .react-grid-item{flex-direction:column!important;display:flex!important;padding-right:10px}.vitessce-container.vitessce-theme-light .d-flex{flex-shrink:0}.vitessce-container.vitessce-theme-light .title{color:#333;overflow-x:hidden;display:flex;flex-direction:row;flex-shrink:0}.vitessce-container.vitessce-theme-light .title .title-left{flex-shrink:1;text-overflow:ellipsis;white-space:nowrap}.vitessce-container.vitessce-theme-light .title .title-info{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:80%;opacity:.8;padding:0 .25rem;justify-content:center;line-height:25px;flex-shrink:1;text-align:right}.vitessce-container.vitessce-theme-light .title .title-buttons{display:flex;flex-direction:row;flex-grow:1;flex-shrink:0;justify-content:right}.vitessce-container.vitessce-theme-light .title .title-buttons div{display:inline-block}.vitessce-container.vitessce-theme-light .card{border:1px solid hsla(0,0%,94.5%,.125)}.vitessce-container.vitessce-theme-light .bg-black{background-color:#000;color:#fff}.vitessce-container.vitessce-theme-light .bg-black a{color:#fff}.vitessce-container.vitessce-theme-light .bg-primary{background-color:#f1f1f1;color:#333}.vitessce-container.vitessce-theme-light .bg-primary a{color:#0074d9}.vitessce-container.vitessce-theme-light .bg-secondary{background-color:#f1f1f1;color:#222}.vitessce-container.vitessce-theme-light .scroll{overflow-y:auto}.vitessce-container.vitessce-theme-light .description details,.vitessce-container.vitessce-theme-light .description p,.vitessce-container.vitessce-theme-light .description table,.vitessce-container.vitessce-theme-light .details{font-size:80%;opacity:.8}.vitessce-container.vitessce-theme-light .description details{margin-bottom:6px}.vitessce-container.vitessce-theme-light .description summary{border-bottom:1px solid #fff;cursor:pointer}.vitessce-container.vitessce-theme-light .description .metadata-container{padding-left:14px}.vitessce-container.vitessce-theme-light .description .metadata-container table{width:100%}.vitessce-container.vitessce-theme-light .description .metadata-container table td,.vitessce-container.vitessce-theme-light .description .metadata-container table th{outline:none;padding:2px;max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:50%}.vitessce-container.vitessce-theme-light .description .metadata-container table tr:nth-child(2n){background-color:#fefefe}.vitessce-container.vitessce-theme-light .coll-full,.vitessce-container.vitessce-theme-light .welcome-col-left,.vitessce-container.vitessce-theme-light .welcome-col-right{position:relative;width:100%;padding-right:15px;padding-left:15px}.vitessce-container.vitessce-theme-light .col-full{flex:0 0 100%;max-width:100%}.vitessce-container.vitessce-theme-light .welcome-col-left{flex:0 0 50%;max-width:50%}.vitessce-container.vitessce-theme-light .welcome-col-left .input-group input,.vitessce-container.vitessce-theme-light .welcome-col-left .list-group-item{background-color:#fff}.vitessce-container.vitessce-theme-light .welcome-col-left a{color:#fff}.vitessce-container.vitessce-theme-light .welcome-col-right{flex:0 0 50%;max-width:50%}.vitessce-container.vitessce-theme-light .welcome-col-right .info-paragraph{margin-bottom:0!important}.vitessce-container.vitessce-theme-light .welcome-col-right .info-section-text{margin-top:.5rem}.vitessce-container.vitessce-theme-light .welcome-col-right a{color:#fff}.vitessce-container.vitessce-theme-light .btn.icon{padding:0;height:2em;width:2em;background-color:#fff}.vitessce-container.vitessce-theme-light .btn.icon>svg{vertical-align:middle}.vitessce-container.vitessce-theme-light .roll-up{height:2em;overflow:hidden;background-color:#fff}.vitessce-container.vitessce-theme-light .roll-up:hover{-webkit-animation-name:roll-up;animation-name:roll-up;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@keyframes roll-up{0%{height:2em}to{height:100%}}.vitessce-container.vitessce-theme-light .tool{position:absolute;display:inline;z-index:1000;opacity:.65;color:#000}.vitessce-container.vitessce-theme-light .tool:hover{opacity:.9}.vitessce-container.vitessce-theme-light .radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;width:1em;height:1em;padding:6px!important;background-clip:content-box;border:2px solid #d3d3d3;background-color:#d3d3d3;border-radius:50%}.vitessce-container.vitessce-theme-light .radio:checked{background-clip:unset}.vitessce-container.vitessce-theme-light .layer-controller-container>div:first-child{margin-top:0!important}.vitessce-container.vitessce-theme-light .channel-container{width:100%;display:flex;position:relative}.vitessce-container.vitessce-theme-light .channel-set-color{display:flex;position:relative;top:5px;width:16px;height:16px;margin-right:24px;cursor:pointer;outline:medium none currentColor;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.vitessce-container.vitessce-theme-light .channel-checked{display:flex;position:relative;margin-right:10px}.vitessce-container.vitessce-theme-light .add-image-layer{color:#262626;border:1px dashed #262626}.vitessce-container.vitessce-theme-light pre{color:#333}.vitessce-container.vitessce-theme-light .cell-emphasis-crosshair{z-index:50;position:absolute;pointer-events:none;box-sizing:border-box;background-color:#222}.vitessce-container.vitessce-theme-light .help-tooltip.rc-tooltip{z-index:1060;display:block;max-width:250px;visibility:visible;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;list-style:none;position:absolute}.vitessce-container.vitessce-theme-light .help-tooltip.rc-tooltip-hidden{display:none}.vitessce-container.vitessce-theme-light .help-tooltip.rc-tooltip .rc-tooltip-inner{border-radius:2px;box-shadow:0 3px 6px -4px hsla(0,0%,39.2%,.12),0 6px 16px 0 hsla(0,0%,39.2%,.08),0 9px 28px 8px hsla(0,0%,39.2%,.05)}.vitessce-container.vitessce-theme-light .help-tooltip.rc-tooltip-placement-top{padding-top:8px}.vitessce-container.vitessce-theme-light .help-tooltip.rc-tooltip-placement-right{padding-left:8px}.vitessce-container.vitessce-theme-light .help-tooltip.rc-tooltip-placement-bottom{padding-top:8px}.vitessce-container.vitessce-theme-light .help-tooltip.rc-tooltip-placement-left{padding-right:8px}.vitessce-container.vitessce-theme-light .help-tooltip.rc-tooltip .rc-tooltip-inner{font-size:10px;min-width:30px;padding:6px 8px;color:#fff;text-align:left;text-decoration:none;word-wrap:break-word;background-color:rgba(0,0,0,.9)}.vitessce-container.vitessce-theme-light .help-tooltip.rc-tooltip .rc-tooltip-arrow{display:none}.vitessce-container.vitessce-theme-light .popover.rc-tooltip{top:0;left:0;z-index:1030;font-weight:400;white-space:normal;text-align:left;cursor:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;list-style:none;position:absolute}.vitessce-container.vitessce-theme-light .popover.rc-tooltip:after{position:absolute;background:hsla(0,0%,100%,.01);content:""}.vitessce-container.vitessce-theme-light .popover.rc-tooltip-hidden{display:none}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner{border-radius:2px;box-shadow:0 3px 6px -4px hsla(0,0%,39.2%,.12),0 6px 16px 0 hsla(0,0%,39.2%,.08),0 9px 28px 8px hsla(0,0%,39.2%,.05)}.vitessce-container.vitessce-theme-light .popover.rc-tooltip-placement-top{padding-bottom:10px}.vitessce-container.vitessce-theme-light .popover.rc-tooltip-placement-right{padding-left:10px}.vitessce-container.vitessce-theme-light .popover.rc-tooltip-placement-bottom{padding-top:10px}.vitessce-container.vitessce-theme-light .popover.rc-tooltip-placement-left{padding-right:10px}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-content{padding:0}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner{box-sizing:border-box;background-color:#fff;background-clip:padding-box}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list{list-style-type:none;padding:0;margin-bottom:0}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list dl,.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list ol,.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list ul{margin-top:0;margin-bottom:1rem}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list li button{border:0;padding:4px 16px;cursor:pointer;width:100%;background-color:transparent;border-radius:2px}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list li button span.small{font-size:11px}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list li button:hover{background-color:#ededed}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list li:not(:last-child){border-bottom:1px solid grey}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner .popover-menu-list button{-webkit-appearance:button;text-transform:none;overflow:visible;margin:0;font-family:inherit;font-size:14px;line-height:inherit;border-radius:0}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner .popover-menu-color+.popover-menu-list{border-top:1px solid grey}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .popover-menu-color.twitter-picker{box-shadow:none!important;margin:0 auto}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .popover-menu-color.twitter-picker>div:nth-child(3){padding:6px!important;transform:translate(2px)}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .popover-menu-color.twitter-picker>div>div:first-of-type{font-size:12px;width:20px!important}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .popover-menu-color.twitter-picker input{width:60px!important;font-size:12px}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .popover-menu-color.twitter-picker>div>span>div{width:18px!important;height:18px!important}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-inner-content{padding:12px 16px;color:rgba(0,0,0,.65)}.vitessce-container.vitessce-theme-light .popover.rc-tooltip .rc-tooltip-arrow{position:absolute;display:block;width:8px;height:8px;background:transparent;border-style:solid;border-width:4px;transform:rotate(45deg)}.vitessce-container.vitessce-theme-light .popover.rc-tooltip.rc-tooltip-placement-top>.rc-tooltip-content>.rc-tooltip-arrow{bottom:6px;border-color:transparent #fff #fff transparent;box-shadow:3px 3px 7px rgba(0,0,0,.07);left:50%;transform:translateX(-50%) rotate(45deg)}.vitessce-container.vitessce-theme-light .popover.rc-tooltip.rc-tooltip-placement-right>.rc-tooltip-content>.rc-tooltip-arrow{left:6px;border-color:transparent transparent #fff #fff;box-shadow:-3px 3px 7px rgba(0,0,0,.07);top:50%;transform:translateY(-50%) rotate(45deg)}.vitessce-container.vitessce-theme-light .popover.rc-tooltip.rc-tooltip-placement-bottom>.rc-tooltip-content>.rc-tooltip-arrow{top:6px;border-color:#fff transparent transparent #fff;box-shadow:-2px -2px 5px rgba(0,0,0,.06);left:50%;transform:translateX(-50%) rotate(45deg)}.vitessce-container.vitessce-theme-light .popover.rc-tooltip.rc-tooltip-placement-left>.rc-tooltip-content>.rc-tooltip-arrow{right:6px;border-color:#fff #fff transparent transparent;box-shadow:3px -3px 7px rgba(0,0,0,.07);top:50%;transform:translateY(-50%) rotate(45deg)}.vitessce-container.vitessce-theme-light .sets-manager{position:relative;width:100%;display:block;height:auto}.vitessce-container.vitessce-theme-light .sets-manager .set-operation-buttons{background-color:#d3d3d3;border-radius:4px;padding:2px;display:inline-block;position:absolute;bottom:1.75rem;right:.25rem;box-shadow:-2px -2px 5px rgba(0,0,0,.06)}.vitessce-container.vitessce-theme-light .sets-manager .set-operation-buttons button{border:0;background-color:transparent;color:#626262}.vitessce-container.vitessce-theme-light .sets-manager .set-operation-buttons button[disabled]{pointer-events:none}.vitessce-container.vitessce-theme-light .sets-manager .set-operation-buttons button[disabled] svg{fill:silver}.vitessce-container.vitessce-theme-light .sets-manager .set-operation-buttons button svg{fill:#555;vertical-align:top;height:20px;margin-top:1px}.vitessce-container.vitessce-theme-light .sets-manager .set-operation-buttons button:hover,.vitessce-container.vitessce-theme-light .sets-manager .set-operation-buttons button:hover path{color:#2f2f2f;fill:#2f2f2f}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree{position:relative;top:0;left:0;width:100%;height:auto;display:block;padding-right:17px;box-sizing:content-box}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .plus-button{border:0;background-color:transparent;color:#404040;padding:0;font-size:18px;margin-bottom:2rem}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree{padding-left:0;margin:0;border:1px solid transparent}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .node-menu-icon{fill:grey;cursor:pointer;height:14px;position:relative;vertical-align:top;width:32px;top:5.5px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .node-menu-icon:hover{fill:#9a9a9a}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .node-size-label{font-size:12px;color:#0d0d0d}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .level-buttons-container{height:20px;width:100%;position:relative;padding-left:4px;left:0}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .level-buttons-container .level-buttons input.level-radio-button{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;padding:5px;background-clip:content-box;border:2px solid #4d4d4d;background-color:#4d4d4d;border-radius:6px;position:relative;top:3px;left:0;float:left;margin-right:10px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .level-buttons-container .level-buttons input.level-radio-button.checked,.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .level-buttons-container .level-buttons input.level-radio-button:checked{background-clip:unset}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .level-0-treenode>.rc-tree-switcher i svg path{fill:#404040}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-focused:not(.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-active-focused){border-color:#0ff}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode{margin:0;padding:0;line-height:24px;white-space:nowrap;list-style:none;outline:0}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button,.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input{padding:0;margin:0}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button{height:24px;line-height:24px;border:1px solid transparent;color:#404040;background:transparent;background-color:transparent;vertical-align:top;font-size:14px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input{display:block;height:26px;box-sizing:border-box}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input .title-input{font-size:14px;height:24px;line-height:24px;width:calc(100% - 60px);margin-right:10px;background-color:#d3d3d3;color:#000;border-radius:4px;outline:none;padding:4px 0 4px 4px;border:1px solid #d3d3d3}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input .title-input:focus{border:1px solid #0074d9}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input .title-save-button{background-color:#555;border:1px solid #555;color:#d3d3d3;border-radius:3px;width:50px;height:24px;line-height:20px;font-size:13px;vertical-align:top;margin:0;padding:0}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .title-button-with-input .title-save-button:hover{background-color:#626262;border:1px solid #626262}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .draggable{color:#333;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;-khtml-user-drag:element;-webkit-user-drag:element;border:2px solid transparent}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode.drag-over>.draggable{color:#fff;background-color:#316ac5;border:2px solid #316ac5;opacity:.8}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode.drag-over-gap-top>.draggable{border-top:2px solid #00f}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode.drag-over-gap-bottom>.draggable{border-bottom:2px solid #00f}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode.filter-node>.rc-tree-node-content-wrapper{color:#a60000!important;font-weight:700!important}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode ul{margin:0;padding-left:35px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .rc-tree-node-content-wrapper{width:calc(100% - 20px);display:inline-block;margin:0;padding:0;text-decoration:none;vertical-align:top;cursor:pointer;position:relative}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .rc-tree-node-content-wrapper>span{position:relative;width:100%;display:inline-block}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .rc-tree-node-content-wrapper>span .title-button{position:relative;max-width:calc(100% - 45px);overflow:hidden;text-overflow:ellipsis}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode .rc-tree-node-content-wrapper>span .node-menu-icon{position:relative;left:0}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox,.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-switcher{display:inline-block;margin-top:4px;margin-right:6px;vertical-align:middle;background-color:transparent;background-repeat:no-repeat;background-attachment:scroll;border:0;outline:none;cursor:pointer}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-switcher svg{width:15px;height:15px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-switcher.rc-tree-switcher-noop{cursor:auto}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-switcher.rc-tree-switcher_close{transform:rotate(-90deg)}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox{width:13px;height:13px;border:2px solid grey;border-radius:3px;position:relative;left:0;margin:0 10px 0 3px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox-checked{background-color:grey}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox-indeterminate{background-position:-14px -28px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox-disabled{background-position:0 -56px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox.rc-tree-checkbox-checked.rc-tree-checkbox-disabled{background-position:-14px -56px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled{position:relative;background:#ccc;border-radius:3px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree .rc-tree-treenode span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled:after{position:absolute;top:5px;left:3px;width:5px;height:0;border:2px solid #fff;border-top:0;border-left:0;transform:scale(1);content:" "}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree:not(.rc-tree-show-line) .rc-tree-treenode .rc-tree-switcher-noop{background:none}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree.rc-tree-show-line .rc-tree-treenode:not(:last-child)>.rc-tree-switcher-noop{background-position:-56px -18px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree.rc-tree-show-line .rc-tree-treenode:last-child>.rc-tree-switcher-noop{background-position:-56px -36px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-child-tree{display:none}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-child-tree-open{display:block}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-treenode-disabled>a,.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-treenode-disabled>a span,.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-treenode-disabled>span:not(.rc-tree-switcher){color:#767676;cursor:not-allowed}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-treenode-active{background:rgba(0,0,0,.1)}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-node-selected{background-color:#ffe6b0;border:1px solid #ffb951;opacity:.8}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-icon__open{margin-right:2px;vertical-align:top;background-position:-110px -16px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-icon__close{margin-right:2px;vertical-align:top;background-position:-110px 0}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-icon__docu{margin-right:2px;vertical-align:top;background-position:-110px -32px}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-icon__customize{margin-right:2px;vertical-align:top}.vitessce-container.vitessce-theme-light .sets-manager .sets-manager-tree .rc-tree-indent-unit{display:inline-block;padding-left:18px}.vitessce-container.vitessce-theme-light .vitessce-tooltip .ant-tooltip-content .ant-tooltip-inner{font-size:12px;background-color:rgba(0,0,0,.95)}.vitessce-container.vitessce-theme-light .selectable-table{flex:1 1 auto;outline:none}.vitessce-container.vitessce-theme-light .selectable-table .table-row{display:flex;flex-direction:row;border-bottom:1px solid silver}.vitessce-container.vitessce-theme-light .selectable-table .table-item{cursor:pointer}.vitessce-container.vitessce-theme-light .selectable-table .table-item:not(.row-checked):hover{background-color:#dadada}.vitessce-container.vitessce-theme-light .selectable-table .table-item.row-checked{background-color:silver}.vitessce-container.vitessce-theme-light .selectable-table .table-item .hidden-input-column{display:none}.vitessce-container.vitessce-theme-light .selectable-table .table-item .table-cell{padding:0 4px}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container{width:1em}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container label{display:block;margin:0;cursor:pointer}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input{cursor:pointer}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.checkbox,.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;width:1em;height:1em;margin:.3em .5em 0;padding:6px!important;background-clip:content-box;border:2px solid #d3d3d3;background-color:#d3d3d3}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.checkbox:checked,.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.radio:checked{background-clip:unset}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.radio{border-radius:50%}.vitessce-container.vitessce-theme-light .selectable-table .table-item .input-container input.checkbox{border-radius:2px}.vitessce-container.vitessce-theme-light .higlass-title-wrapper{height:calc(100% - 20px)}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body{width:inherit;height:inherit;padding:5px;background-color:#f1f1f1}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-lazy-wrapper{width:inherit;height:inherit}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent{display:block;position:relative;box-sizing:border-box;font-size:12px;color:#333;overflow:hidden}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper{width:inherit;height:inherit;position:relative;display:block;text-align:left;box-sizing:border-box}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass{width:100%;height:100%}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass .react-grid-layout{background-color:transparent!important}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass nav{display:flex}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass input{font-size:12px}.vitessce-container.vitessce-theme-light .higlass-title-wrapper .card-body .higlass-wrapper-parent .higlass-wrapper .higlass .btn{color:#999;font-size:12px}.vitessce-container.vitessce-theme-light .vega-container{display:flex;flex:1 1 auto;overflow:hidden}.vitessce-container.vitessce-theme-light .heatmap{width:100%;left:0;position:absolute;padding-right:inherit;padding-left:inherit}.vitessce-container.vitessce-theme-light .heatmap-container{position:absolute;top:1.25rem;left:1.25rem;width:calc(100% - 2.5rem);height:calc(100% - 2.5rem)}.vitessce-container.vitessce-theme-light .search-bar{margin-bottom:.25rem;border:0;padding:2px;border-radius:2px} -/*# sourceMappingURL=main.a53cc462.chunk.css.map */ \ No newline at end of file
--- a/static/css/main.a53cc462.chunk.css.map Thu May 30 17:24:44 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"sources":["index.scss","_app.scss","../../node_modules/higlass/dist/hglib.css","_bootstrap-minimal.scss","_controls.scss","_channels.scss","_error.scss","_plot-tooltips.scss","_help-tooltips.scss","_sets-manager.scss","_selectable-table.scss","_higlass.scss","_vega.scss","_heatmap.scss","_genes.scss"],"names":[],"mappings":"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","file":"main.a53cc462.chunk.css","sourcesContent":["@import 'colors';\n\n@import 'app';\n@import 'bootstrap-minimal';\n@import 'channels';\n@import 'controls';\n@import 'error';\n@import 'plot-tooltips';\n@import 'help-tooltips';\n@import 'sets-manager';\n@import 'selectable-table';\n@import 'higlass';\n@import 'vega';\n@import 'heatmap';\n@import 'genes';\n\n@mixin vitessce-themable($theme-name, $theme-colors) {\n @include app($theme-name, $theme-colors);\n @include controls($theme-name, $theme-colors);\n @include channels($theme-name, $theme-colors);\n @include error($theme-name, $theme-colors);\n @include plot-tooltips($theme-name, $theme-colors);\n @include help-tooltips($theme-name, $theme-colors);\n @include popover($theme-name, $theme-colors);\n @include sets-manager($theme-name, $theme-colors);\n @include selectable-table($theme-name, $theme-colors);\n @include higlass($theme-name, $theme-colors);\n @include vega($theme-name, $theme-colors);\n @include heatmap($theme-name, $theme-colors);\n @include genes($theme-name, $theme-colors);\n}\n\n.vitessce-container {\n @include bootstrap-minimal;\n position: relative; // So please-wait can be positioned absolutely.\n \n &.vitessce-theme-dark {\n @include vitessce-themable(\"dark\", $colors-dark);\n }\n &.vitessce-theme-light {\n @include vitessce-themable(\"light\", $colors-light);\n }\n}","@import 'colors';\n\n@mixin app($theme-name, $theme-colors) {\n\n &.welcome-container {\n overflow: visible;\n .react-grid-layout, .warning-layout {\n position: relative;\n }\n .row > div > .card {\n margin: 1rem 0;\n }\n }\n\n .welcome-beta-header {\n background-color: #93e5c3;\n padding: 1rem;\n p {\n margin: 0;\n color: #222222;\n a {\n color: #000;\n text-decoration: underline;\n font-weight: 600;\n }\n }\n }\n\n .react-grid-layout, .warning-layout {\n background-color: map-get($theme-colors, \"grid-layout-background\");\n height: auto;\n position: absolute;\n width: 100%;\n }\n\n .warning-layout {\n height: 100vh;\n .card {\n margin-left: 0.5rem;\n }\n }\n\n .loading-indicator-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100%;\n height: 100%;\n border-radius: 0.25rem;\n background-color: rgba(0, 0, 0, 0.5);\n\n .loading-indicator-container {\n display: grid;\n place-items: center;\n position: absolute;\n width: 100%;\n height: 100%;\n }\n }\n \n\n /* Flex grid items */\n .react-grid-item {\n /* emulate bootstrap .flex-column: */\n -webkit-box-orient: vertical!important;\n -webkit-box-direction: normal!important;\n -ms-flex-direction: column!important;\n flex-direction: column!important;\n\n /* emulate bootstrap .d-flex: */\n display: -webkit-box!important;\n display: -ms-flexbox!important;\n display: flex!important;\n\n /* So the resize handle position looks correct: */\n padding-right: 10px;\n }\n\n /* Fix grid title rendering on Safari 12.0.\n Inspired by https://stackoverflow.com/questions/32689686/overlapping-css-flexbox-items-in-safari */\n .d-flex {\n flex-shrink: 0;\n }\n\n /* Tool styles */\n .title {\n color: map-get($theme-colors, \"primary-foreground\");\n overflow-x: hidden;\n display: flex;\n flex-direction: row;\n flex-shrink: 0;\n .title-left {\n flex-shrink: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .title-info {\n width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n font-size: 80%;\n opacity: .8;\n padding: 0 0.25rem;\n justify-content: center;\n line-height: 25px;\n flex-shrink: 1;\n text-align: right;\n }\n .title-buttons {\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n flex-shrink: 0;\n justify-content: right;\n div {\n display: inline-block;\n }\n }\n \n }\n\n .card {\n border: 1px solid map-get($theme-colors, \"card-border\");\n }\n\n .bg-black {\n background-color: map-get($global-colors, \"black\");\n color: map-get($global-colors, \"white\");\n a {\n color: map-get($global-colors, \"white\");\n }\n }\n\n .bg-primary {\n background-color: map-get($theme-colors, \"primary-background\");\n color: map-get($theme-colors, \"primary-foreground\");\n a {\n color: map-get($theme-colors, \"primary-foreground-active\");\n }\n }\n\n .bg-secondary {\n background-color: map-get($theme-colors, \"secondary-background\");\n color: map-get($theme-colors, \"secondary-foreground\");\n }\n\n .scroll {\n overflow-y: auto;\n }\n\n .details {\n font-size: 80%;\n opacity: 0.8;\n }\n\n .description {\n p, details, table {\n font-size: 80%;\n opacity: 0.8;\n }\n details {\n margin-bottom: 6px;\n }\n summary {\n border-bottom: 1px solid lighten(map-get($theme-colors, \"primary-background\"), 10%);\n cursor: pointer;\n }\n .metadata-container {\n padding-left: 14px;\n table {\n width: 100%;\n td, th {\n outline: none;\n padding: 2px 2px;\n max-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 50%;\n }\n tr:nth-child(even) {\n background-color: lighten(map-get($theme-colors, \"primary-background\"), 5%);\n }\n }\n }\n }\n\n .coll-full, .welcome-col-left, .welcome-col-right {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n }\n\n .col-full {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .welcome-col-left {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n\n .list-group-item {\n background-color: map-get($theme-colors, \"primary-background-highlight\");\n }\n\n .input-group input {\n background-color: map-get($theme-colors, \"primary-background-input\");\n }\n a {\n color: #ffffff;\n }\n }\n \n\n .welcome-col-right {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n .info-paragraph {\n margin-bottom: 0 !important;\n }\n .info-section-text {\n margin-top: 0.5rem\n }\n a {\n color: #ffffff;\n }\n }\n \n}\n\n.react-draggable-transparent-selection .react-grid-item {\n /* These styles prevent text selection during resize drag interactions.\n The react-draggable-transparent-selection class is added to the body \n element during resizing and removed after resizing has finished.\n Not part of mixin because acts outside of .vitessce-container. */\n -webkit-user-select: none !important;\n -khtml-user-select: none !important;\n -moz-user-select: none !important;\n -o-user-select: none !important;\n user-select: none !important;\n}\n\n\nbody {\n margin: 0;\n text-align: left;\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n box-sizing: border-box;\n}",".ContextMenu-module_context-menu-2OwvL{position:fixed;background-color:hsla(0,0%,100%,.95);border:1px solid rgba(0,0,0,.1);border-radius:3px;font-size:12px;cursor:default;padding:3px;-webkit-box-shadow:0 0 3px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.05);box-shadow:0 0 3px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.05)}.ContextMenu-module_context-menu-dark-2PO31{color:#ccc;background-color:rgba(68,68,68,.97)}.ContextMenu-module_context-menu-icon-I4kiw{display:inline-block;margin-right:3px;vertical-align:middle}.ContextMenu-module_context-menu-icon-I4kiw>svg{width:30px;height:20px}.ContextMenu-module_context-menu-item-1HeVv{padding:2px;white-space:nowrap;border-radius:2px;-webkit-transition:background .15s ease,color .15s ease;-o-transition:background .15s ease,color .15s ease;transition:background .15s ease,color .15s ease}.ContextMenu-module_context-menu-item-1HeVv:hover{background:#337ab7;color:#fff}.ContextMenu-module_context-menu-hr-3yapb{margin-top:5px;margin-bottom:5px;border:0;border-top:1px solid rgba(0,0,0,.1)}.ContextMenu-module_play-icon-R4pIO{width:12px;height:12px;position:absolute;right:5px}.ContextMenu-module_context-menu-span-8EUfZ{margin-right:20px;vertical-align:middle;display:inline-block;line-height:normal;white-space:nowrap}.ContextMenu-module_context-menu-thumbnail-2vHLD{margin-right:10px;border:1px solid #888}.ContextMenu-module_context-menu-thumbnail-inline-1iOcg{display:inline-block;margin-right:10px;vertical-align:middle}.TrackControl-module_track-control-2zDf3,.TrackControl-module_track-control-vertical-2McB_{position:absolute;z-index:1;display:-ms-flexbox;display:flex;background:hsla(0,0%,100%,.75);right:2px;top:2px;border-radius:2.5px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05),0 0 3px 0 rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.05),0 0 3px 0 rgba(0,0,0,.1);opacity:0;-webkit-transition:opacity .15s ease,background .15s ease,-webkit-box-shadow .15s ease;transition:opacity .15s ease,background .15s ease,-webkit-box-shadow .15s ease;-o-transition:opacity .15s ease,background .15s ease,box-shadow .15s ease;transition:opacity .15s ease,background .15s ease,box-shadow .15s ease;transition:opacity .15s ease,background .15s ease,box-shadow .15s ease,-webkit-box-shadow .15s ease}.TrackControl-module_track-control-dark-fP2uZ,.TrackControl-module_track-control-dark-fP2uZ .TrackControl-module_track-control-active-2JD9i{background:rgba(40,40,40,.85)}.TrackControl-module_track-control-vertical-2McB_{-ms-flex-direction:column-reverse;flex-direction:column-reverse}.TrackControl-module_track-control-left-zHd9W{left:2px;right:auto}.TrackControl-module_track-control-active-2JD9i,.TrackControl-module_track-control-vertical-active-1QCKn{opacity:1;z-index:1}.TrackControl-module_track-control-active-2JD9i:hover,.TrackControl-module_track-control-vertical-active-1QCKn:hover{background:#fff;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 3px 0 rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 3px 0 rgba(0,0,0,.2)}.TrackControl-module_track-control-dark-fP2uZ.TrackControl-module_track-control-active-2JD9i:hover{background:rgba(34,34,34,.95)}.TrackControl-module_track-control-padding-right-2p6Lp{right:80px}.TrackControl-module_track-control-button-2fdIb{width:20px;height:20px;padding:4px;cursor:pointer;opacity:.66;-webkit-transition:background .15s ease,color .15s ease,opacity .15s ease;-o-transition:background .15s ease,color .15s ease,opacity .15s ease;transition:background .15s ease,color .15s ease,opacity .15s ease}.TrackControl-module_track-control-button-2fdIb:hover{color:#fff;background:#337ab7;opacity:1}.TrackControl-module_track-control-button-2fdIb:first-child{border-radius:2.5px 0 0 2.5px}.TrackControl-module_track-control-button-2fdIb:last-child{border-radius:0 2.5px 2.5px 0}.TrackControl-module_track-control-dark-fP2uZ .TrackControl-module_track-control-button-2fdIb{color:#ccc}.TrackControl-module_track-control-dark-fP2uZ .TrackControl-module_track-control-button-2fdIb:hover{color:#fff;background:#337ab7;opacity:1}.TrackControl-module_track-control-button-vertical-1s22z:first-child{border-radius:0 0 2.5px 2.5px}.TrackControl-module_track-control-button-vertical-1s22z:last-child{border-radius:2.5px 2.5px 0 0}.CenterTrack-module_center-track-3ptRW{position:relative;background:transparent}.CenterTrack-module_center-track-container-2ELhp{position:absolute;z-index:1}.Track-module_track-range-selection-1yrDf{position:absolute;z-index:-1;opacity:0;-webkit-transition:opacity .15s ease;-o-transition:opacity .15s ease;transition:opacity .15s ease}.Track-module_track-range-selection-active-1oljJ{z-index:1;opacity:1}.Track-module_track-range-selection-group-inactive-YNRM4{display:none}.Track-module_track-range-selection-group-brush-selection-2VYDl{outline:2px solid rgba(0,0,0,.33);fill:#000;fill-opacity:.1}.DragListeningDiv-module_drag-listening-div-active-3wpRk{z-index:10;-webkit-box-shadow:inset 0 0 3px 0 red;box-shadow:inset 0 0 3px 0 red}.GalleryTracks-module_gallery-tracks-3tsUO{position:relative;top:0;left:0;width:100%;height:100%}.GalleryTracks-module_gallery-track-eGKoq{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;top:0;right:0;bottom:0;left:0}.GalleryTracks-module_gallery-invisible-track-1hMJp,.GalleryTracks-module_gallery-sub-track-z1HEh{position:absolute}.TiledPlot-module_tiled-plot-uFHiB{position:relative;-ms-flex:1 1;flex:1 1;overflow:hidden}.TiledPlot-module_horizontalList-1c1P8{display:-ms-flexbox;display:flex;width:600px;height:300px;white-space:nowrap}.TiledPlot-module_list-24zgV{width:400px;height:600px;overflow:hidden;-webkit-overflow-scrolling:touch}.TiledPlot-module_stylizedList-Mt4JL{position:relative;z-index:0;background-color:#f3f3f3;outline:none}.TiledPlot-module_stylizedItem-2bQBK{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;background-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#333;font-weight:400}.TiledPlot-module_stylizedHelper-3IVEu{-webkit-box-shadow:0 5px 5px -5px rgba(0,0,0,.2),0 -5px 5px -5px rgba(0,0,0,.2);box-shadow:0 5px 5px -5px rgba(0,0,0,.2),0 -5px 5px -5px rgba(0,0,0,.2);background-color:hsla(0,0%,100%,.8);cursor:row-resize}.TiledPlot-module_stylizedHelper-3IVEu.TiledPlot-module_horizontalItem-2-ZjU{cursor:col-resize}.TiledPlot-module_horizontalItem-2-ZjU{display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.TiledPlot-module_resizable-track-2oLT9{width:100%;height:100%}path.TiledPlot-module_domain-qYw6K{stroke-width:0px}.TrackRenderer-module_track-renderer-3TM7n{position:relative}.TrackRenderer-module_track-renderer-element-2i16D,.TrackRenderer-module_track-renderer-events-3tVM2{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.TrackRenderer-module_track-renderer-events-3tVM2{z-index:1}.Button-module_button-3YXsQ{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:.5em;color:#000;font-size:1em;line-height:1em;border:0;border-radius:2.5px;background:#fff;-webkit-box-shadow:0 0 0 1px #ccc;box-shadow:0 0 0 1px #ccc;-webkit-transition:background .15s ease,-webkit-transform .15s ease,-webkit-box-shadow .15s ease;transition:background .15s ease,-webkit-transform .15s ease,-webkit-box-shadow .15s ease;-o-transition:transform .15s ease,box-shadow .15s ease,background .15s ease;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,-webkit-transform .15s ease,-webkit-box-shadow .15s ease;-webkit-appearance:none}.Button-module_button-3YXsQ:hover{background:#f2f2f2;-webkit-box-shadow:0 0 0 1px #ccc;box-shadow:0 0 0 1px #ccc}.Button-module_button-3YXsQ:focus{-webkit-box-shadow:0 0 0 2px #0089ff;box-shadow:0 0 0 2px #0089ff}.Button-module_button-3YXsQ:active{-webkit-transform:scale(.9);-ms-transform:scale(.9);transform:scale(.9)}.Button-module_button-3YXsQ:active,.Button-module_button-3YXsQ:focus,.Button-module_button-3YXsQ:hover{cursor:pointer;outline:none}.Button-module_button-shortcut-1zMAn{padding:.1em 5px;color:#999;font-size:.8em;-webkit-transition:color .15s ease;-o-transition:color .15s ease;transition:color .15s ease}.Cross-module_cross-3WYME{position:relative;width:1em;height:1em}.Cross-module_cross-3WYME:after,.Cross-module_cross-3WYME:before{content:\"\";display:block;position:absolute;top:50%;left:0;width:1em;height:1px;background:#000;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center}.Cross-module_cross-3WYME:before{-webkit-transform:translateY(-50%) rotate(45deg);-ms-transform:translateY(-50%) rotate(45deg);transform:translateY(-50%) rotate(45deg)}.Cross-module_cross-3WYME:after{-webkit-transform:translateY(-50%) rotate(-45deg);-ms-transform:translateY(-50%) rotate(-45deg);transform:translateY(-50%) rotate(-45deg)}.Modal-module_modal-background-3vDy1{position:absolute;z-index:1000;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.666);-webkit-animation:Modal-module_fade-in-3Nm-O .2s ease 1;animation:Modal-module_fade-in-3Nm-O .2s ease 1;-webkit-transition:opacity .2s ease;-o-transition:opacity .2s ease;transition:opacity .2s ease}.Modal-module_modal-hide-3huBg{opacity:0}.Modal-module_modal-wrap-1HWNn{position:absolute;top:20px;right:20px;bottom:20px;left:20px}.Modal-module_modal-window-1XZAq{position:relative;width:100%;max-width:640px;max-height:100%;margin-left:auto;margin-right:auto;color:#000;border-radius:5px;background:#fff;-webkit-animation:Modal-module_fade-scale-in-11Dkx .2s ease 1;animation:Modal-module_fade-scale-in-11Dkx .2s ease 1}.Modal-module_modal-window-max-height-CZYCl{height:100%}.Modal-module_modal-content-2xb_x{padding:10px}@-webkit-keyframes Modal-module_fade-in-3Nm-O{0%{opacity:0}to{opacity:1}}@keyframes Modal-module_fade-in-3Nm-O{0%{opacity:0}to{opacity:1}}@-webkit-keyframes Modal-module_fade-scale-in-11Dkx{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes Modal-module_fade-scale-in-11Dkx{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.Dialog-module_dialog-header-2mk2M{position:relative;z-index:2;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;margin:0 -10px 10px;padding:0 10px 10px;border-bottom:1px solid #ccc}.Dialog-module_dialog-header-2mk2M h3{margin:0;padding:0;font-size:20px;line-height:1em}.Dialog-module_dialog-header-2mk2M button{font-size:10px}.Dialog-module_dialog-main-max-height-1EAb2{position:absolute;z-index:1;top:40px;right:0;bottom:50px;left:0;padding:10px;overflow:auto}.Dialog-module_dialog-footer-1BnEv,.Dialog-module_dialog-footer-max-height-KjDek{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;margin:10px -10px 0;padding:10px 10px 0;border-top:1px solid #ccc}.Dialog-module_dialog-footer-1BnEv button,.Dialog-module_dialog-footer-max-height-KjDek button{font-size:14px}.Dialog-module_dialog-footer-max-height-KjDek{position:absolute;z-index:2;left:10px;right:10px;bottom:10px}.tileset-finder-label{font-weight:700}.tileset-finder-search-box{margin-left:10px}.tileset-finder-search-bar{display:-ms-flexbox;display:flex;margin-left:5px;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}.tileset-finder-checkbox-tree{margin:5px;padding:3px;border:1px solid #aaa;border-radius:5px}.react-checkbox-tree{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;font-size:14px}.react-checkbox-tree>ol{-ms-flex:1 1 auto;flex:1 1 auto}.react-checkbox-tree ol{margin:0;padding-left:0;list-style-type:none}.react-checkbox-tree ol ol{padding-left:24px}.react-checkbox-tree button{line-height:normal;color:inherit}.react-checkbox-tree button:focus{outline:none}.react-checkbox-tree button:disabled{cursor:not-allowed}.react-checkbox-tree .rct-bare-label{cursor:default}.react-checkbox-tree label{margin-bottom:0;cursor:pointer;font-weight:400}.react-checkbox-tree label:hover{background:rgba(51,51,204,.1)}.react-checkbox-tree label:active{background:rgba(51,51,204,.15)}.react-checkbox-tree:not(.rct-native-display) input{display:none}.react-checkbox-tree.rct-native-display input{margin:0 5px}.react-checkbox-tree .rct-icon{font-family:FontAwesome;font-style:normal}.rct-disabled>.rct-text>label{opacity:.75;cursor:not-allowed}.rct-disabled>.rct-text>label:active,.rct-disabled>.rct-text>label:hover{background:transparent}.rct-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.rct-options{-ms-flex:0 0 auto;flex:0 0 auto;margin-left:.5rem;text-align:right}.rct-option{opacity:.75;border:0;background:none;cursor:pointer;padding:0 4px;font-size:18px}.rct-option:hover{opacity:1}.rct-option+.rct-option{margin-left:2px}.rct-checkbox,.rct-collapse,.rct-node-icon{padding:0 5px}.rct-checkbox *,.rct-collapse *,.rct-node-icon *{display:inline-block;margin:0;width:14px}.rct-collapse{border:0;background:none;line-height:normal;color:inherit;font-size:12px}.rct-collapse.rct-collapse-btn{cursor:pointer}.rct-collapse>.rct-icon-expand-close{opacity:.5}.rct-collapse>.rct-icon-expand-close:hover{opacity:1}.rct-native-display .rct-checkbox{display:none}.rct-node-clickable{cursor:pointer}.rct-node-clickable:hover{background:rgba(51,51,204,.1)}.rct-node-clickable:focus{outline:0;background:rgba(51,51,204,.2)}.rct-node-icon{color:#33c}.rct-title{padding:0 5px}.rct-icon-expand-close:before{content:\"\\f054\"}.rct-icon-expand-open:before{content:\"\\f078\"}.rct-icon-uncheck:before{content:\"\\f096\"}.rct-icon-check:before{content:\"\\f046\"}.rct-icon-half-check:before{opacity:.5;content:\"\\f046\"}.rct-icon-leaf:before{content:\"\\f016\"}.rct-icon-parent-open:before{content:\"\\f115\"}.rct-icon-parent-close:before{content:\"\\f114\"}.rct-icon-expand-all:before{content:\"\\f0fe\"}.rct-icon-collapse-all:before{content:\"\\f146\"}.plot-type-selected{background-color:rgba(0,0,255,.3)}.plot-type-container{overflow-y:scroll;padding:3px;max-height:15vh}.plot-type-container,.plot-type-container-empty{margin:5px;border:1px solid #aaa;border-radius:5px}.plot-type-container-empty{padding:3px 8px;background-color:#e8e8e8}.plot-type-item{cursor:pointer}.plot-type-item:not(.plot-type-selected):hover{background-color:rgba(51,51,204,.1)}.track-thumbnail{width:30px;height:20px;display:inline-block;margin-right:10;vertical-align:middle}.track-thumbnail>svg{width:20px;height:20px}.AddTrackDialog-module_collapse-toggle-icon-1Of5_:before{font-family:Glyphicons Halflings;content:\"\\E159\";float:left;padding-right:3px}.AddTrackDialog-module_collapse-toggle-icon-1Of5_.AddTrackDialog-module_collapsed-1ifB1:before{content:\"\\E158\"}.AddTrackDialog-module_modal-title-1Atka{font-family:Roboto;font-weight:700}.AddTrackDialog-module_modal-container-14d_4{position:relative}.AddTrackDialog-module_modal-container-14d_4 .AddTrackDialog-module_modal-backdrop-ZrVQg,.AddTrackDialog-module_modal-container-14d_4 .AddTrackDialog-module_modal-bZqLI{position:absolute}.AddTrackDialog-module_modal-dialog-3bKDk{position:relative;display:table;overflow-y:auto;overflow-x:auto;width:600px;min-width:300px;margin:auto}.DraggableDiv-module_bottom-right-handle-o7UYG,.DraggableDiv-module_top-right-handle-oUk0R{border-right:solid #000;border-top:solid #000}.DraggableDiv-module_bottom-left-handle-FO7d4,.DraggableDiv-module_top-left-handle-R5Zui{border-left:solid #000;border-top:solid #000}.DraggableDiv-module_bottom-draggable-handle-3olLp,.DraggableDiv-module_left-draggable-handle-2gpow,.DraggableDiv-module_right-draggable-handle-2Sriq,.DraggableDiv-module_top-draggable-handle-3W5bP{position:absolute;opacity:0;-webkit-transition:opacity .15s ease,-webkit-transform .15s ease;transition:opacity .15s ease,-webkit-transform .15s ease;-o-transition:transform .15s ease,opacity .15s ease;transition:transform .15s ease,opacity .15s ease;transition:transform .15s ease,opacity .15s ease,-webkit-transform .15s ease}.DraggableDiv-module_draggable-div-2eWml{background-color:transparent;-webkit-box-sizing:border-box;box-sizing:border-box}.DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_top-draggable-handle-grabber-2mVDE{width:10px;height:4px;border-top:1px solid #000;border-bottom:1px solid #000}.DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_top-draggable-handle-grabber-2mVDE{margin:4px 7px}.DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_right-draggable-handle-grabber-1mtC0{width:4px;height:10px;border-left:1px solid #000;border-right:1px solid #000}.DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_right-draggable-handle-grabber-1mtC0{margin:7px 4px}.DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_bottom-draggable-handle-3olLp,.DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_left-draggable-handle-2gpow,.DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_right-draggable-handle-2Sriq,.DraggableDiv-module_draggable-div-2eWml:hover .DraggableDiv-module_top-draggable-handle-3W5bP{opacity:.5;background:hsla(0,0%,100%,.75);-webkit-box-shadow:0 0 3px 1px hsla(0,0%,100%,.75);box-shadow:0 0 3px 1px hsla(0,0%,100%,.75);border-radius:3px}.DraggableDiv-module_bottom-draggable-handle-3olLp:active,.DraggableDiv-module_bottom-draggable-handle-3olLp:hover,.DraggableDiv-module_left-draggable-handle-2gpow:active,.DraggableDiv-module_left-draggable-handle-2gpow:hover,.DraggableDiv-module_right-draggable-handle-2Sriq:active,.DraggableDiv-module_right-draggable-handle-2Sriq:hover,.DraggableDiv-module_top-draggable-handle-3W5bP:active,.DraggableDiv-module_top-draggable-handle-3W5bP:hover{opacity:1!important;-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_bottom-draggable-handle-3olLp:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_bottom-draggable-handle-3olLp:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_left-draggable-handle-2gpow:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_left-draggable-handle-2gpow:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_right-draggable-handle-2Sriq:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_right-draggable-handle-2Sriq:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_top-draggable-handle-3W5bP:active .DraggableDiv-module_top-draggable-handle-grabber-2mVDE,.DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_bottom-draggable-handle-grabber-GN1_k,.DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_left-draggable-handle-grabber-1Pqhc,.DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_right-draggable-handle-grabber-1mtC0,.DraggableDiv-module_top-draggable-handle-3W5bP:hover .DraggableDiv-module_top-draggable-handle-grabber-2mVDE{-webkit-box-shadow:0 0 3px 1px #0089ff;box-shadow:0 0 3px 1px #0089ff;background:#0089ff}.DraggableDiv-module_bottom-draggable-handle-3olLp,.DraggableDiv-module_top-draggable-handle-3W5bP{height:12px;cursor:row-resize}.DraggableDiv-module_left-draggable-handle-2gpow,.DraggableDiv-module_right-draggable-handle-2Sriq{width:12px;cursor:col-resize}.HorizontalTiledPlot-module_horizontal-tiled-plot-3EK65,.VerticalTiledPlot-module_vertical-tiled-plot-R3sb7{position:relative}.GenomePositionSearchBox-module_genome-position-search-focus-23by2,.GenomePositionSearchBox-module_genome-position-search-SYccr{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;height:100%;margin-bottom:0;font-size:13.71429px;-webkit-transition:font-size .15s ease,-webkit-box-shadow .15s ease;transition:font-size .15s ease,-webkit-box-shadow .15s ease;-o-transition:box-shadow .15s ease,font-size .15s ease;transition:box-shadow .15s ease,font-size .15s ease;transition:box-shadow .15s ease,font-size .15s ease,-webkit-box-shadow .15s ease}.GenomePositionSearchBox-module_genome-position-search-focus-23by2{-webkit-box-shadow:0 0 0 1px #337ab7,0 0 3px 1px #337ab7;box-shadow:0 0 0 1px #337ab7,0 0 3px 1px #337ab7}.GenomePositionSearchBox-module_genome-position-search-bar-1_0ZU{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;padding:3px;color:#666;font-size:inherit;line-height:24px;border:0;border-radius:3px 0 0 3px;background:transparent}.GenomePositionSearchBox-module_genome-position-search-bar-1_0ZU:focus{outline:none;color:#000}.GenomePositionSearchBox-module_genome-position-search-dark-EML2e .GenomePositionSearchBox-module_genome-position-search-bar-1_0ZU:focus{color:#e5e5e5}.GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ,.GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk{display:block;height:100%;padding:0 8px!important;color:#999;border:0!important;border-radius:0!important;background:transparent;-webkit-transition:background .15s ease,color .15s ease;-o-transition:background .15s ease,color .15s ease;transition:background .15s ease,color .15s ease}.GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ:active,.GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ:focus,.GenomePositionSearchBox-module_genome-position-search-bar-button-33SWJ:hover,.GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk,.GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk:active,.GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk:focus,.GenomePositionSearchBox-module_genome-position-search-bar-button-focus-1IhAk:hover{color:#fff;background:#337ab7}.GenomePositionSearchBox-module_genome-position-search-bar-icon-14AEk,.GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:color .15s ease;-o-transition:color .15s ease;transition:color .15s ease}.GenomePositionSearchBox-module_genome-position-search-bar-icon-14AEk:first-child,.GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z:first-child{margin-left:6px;margin-right:2px}.GenomePositionSearchBox-module_genome-position-search-bar-icon-14AEk span,.GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z span{display:block;margin-top:-2px}.GenomePositionSearchBox-module_genome-position-search-bar-icon-focus-1Ay7Z{color:#337ab7}.GenomePositionSearchBox-module_genome-position-search-bar-suggestions-SrIoU{position:fixed;border-radius:3px;-webkit-box-shadow:0 0 3px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.05);box-shadow:0 0 3px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.05);background-color:hsla(0,0%,100%,.95);border:1px solid rgba(0,0,0,.1);padding:2px 0;font-size:90%;overflow:auto;max-height:50%}.GenomePositionSearchBox-module_btn-2bTUd{display:inline-block;margin-bottom:0;font-size:13.71429px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.GenomePositionSearchBox-module_btn-sm-2Ltms{font-size:12px;line-height:1.5;border-radius:3px}.GenomePositionSearchBox-module_btn-default-2pap4{color:#666;background-color:#fff;border-color:#ccc}.GenomePositionSearchBox-module_btn-default-2pap4:hover{color:#000;background:#ccc}.GenomePositionSearchBox-module_btn-default-2pap4:active,.GenomePositionSearchBox-module_btn-default-2pap4:focus{color:#fff;border-color:#000;background:#000}.GenomePositionSearchBox-module_genome-position-search-SYccr .GenomePositionSearchBox-module_btn-2bTUd{border-radius:0 3px 3px 0}.ExportLinkDialog-module_export-link-dialog-wrapper-ldYlL{display:-ms-flexbox;display:flex}.ExportLinkDialog-module_export-link-dialog-wrapper-ldYlL input{-ms-flex-positive:1;flex-grow:1}.AddTrackPositionMenu-module_add-track-position-table-RHODc{border-collapse:collapse;margin:5px;color:#666}.AddTrackPositionMenu-module_add-track-position-table-dark-_B9fu{color:#ccc}.AddTrackPositionMenu-module_add-track-position-other-lIGbb{outline:none}.AddTrackPositionMenu-module_add-track-position-top-center-2Dw4e{min-width:80px;min-height:20px;text-align:center;outline:none;border-top:1px solid #999;border-left:1px solid #999;border-right:1px solid #999;border-radius:2px 2px 0 0}.AddTrackPositionMenu-module_add-track-position-top-center-2Dw4e:hover{color:#fff;background-color:#337ab7}.AddTrackPositionMenu-module_add-track-position-middle-left-2ycaN{min-width:40px;text-align:center;outline:none;border-top:1px solid #999;border-left:1px solid #999;border-bottom:1px solid #999;border-radius:2px 0 0 2px}.AddTrackPositionMenu-module_add-track-position-middle-left-2ycaN:hover{background-color:#337ab7;color:#fff}.AddTrackPositionMenu-module_add-track-position-middle-right-Qqjnn{min-width:40px;text-align:center;outline:none;border-top:1px solid #999;border-right:1px solid #999;border-bottom:1px solid #999;border-radius:0 2px 2px 0}.AddTrackPositionMenu-module_add-track-position-middle-right-Qqjnn:hover{background-color:#337ab7;color:#fff}.AddTrackPositionMenu-module_add-track-position-middle-middle-2YFZd{text-align:center;outline:none;border:1px solid #999}.AddTrackPositionMenu-module_add-track-position-middle-middle-2YFZd:hover{background-color:#337ab7;color:#fff}.AddTrackPositionMenu-module_add-track-position-bottom-middle-3ityE{min-height:20px;text-align:center;outline:none;border-left:1px solid #999;border-right:1px solid #999;border-bottom:1px solid #999;border-radius:0 0 2px 2px}.AddTrackPositionMenu-module_add-track-position-bottom-middle-3ityE:hover{background-color:#337ab7;color:#fff}.AddTrackPositionMenu-module_add-track-position-span-2hbwE{margin:5px}.ViewHeader-module_multitrack-header-3XnZx,.ViewHeader-module_multitrack-header-focus-3akkN,.ViewHeader-module_multitrack-header-squeazed-GHIVd{position:relative;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;height:24px;margin-top:4px;margin-bottom:4px;color:#999;font-size:12px;line-height:24px;vertical-align:middle;border:0;border-radius:3px;background:#e5e5e5;-webkit-transition:height .15s ease,margin .15s ease;-o-transition:height .15s ease,margin .15s ease;transition:height .15s ease,margin .15s ease}.ViewHeader-module_multitrack-header-dark-97tZt{background:#222}.ViewHeader-module_multitrack-header-focus-3akkN{height:32px;margin-top:0;margin-bottom:0}.ViewHeader-module_multitrack-header-id-3YURk{padding-left:3px}.ViewHeader-module_multitrack-header-id-3YURk:before{content:\"ID:\";font-weight:700;padding-right:5px}.ViewHeader-module_multitrack-header-left-Qj9Sm{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1}.ViewHeader-module_multitrack-header-grabber-3jrIz,.ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:24px;height:100%;cursor:move;border-radius:3px 0 0 3px;-webkit-transition:background .15s ease;-o-transition:background .15s ease;transition:background .15s ease}.ViewHeader-module_multitrack-header-grabber-3jrIz:hover,.ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z:hover{background:#999}.ViewHeader-module_multitrack-header-grabber-3jrIz:hover div,.ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z:hover div{background:#fff}.ViewHeader-module_multitrack-header-grabber-3jrIz div,.ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z div{width:1px;height:50%;margin:1px;background:#999;-webkit-transition:background .15s ease;-o-transition:background .15s ease;transition:background .15s ease}.ViewHeader-module_multitrack-header-dark-97tZt .ViewHeader-module_multitrack-header-grabber-3jrIz div{background:#666}.ViewHeader-module_multitrack-header-grabber-squeazed-dU45Z{width:19.2px}.ViewHeader-module_multitrack-header-search-1X_3_{position:relative;-ms-flex-positive:1;flex-grow:1;height:100%;margin-right:12px}.ViewHeader-module_multitrack-header-search-1X_3_:after{position:absolute;top:3px;bottom:3px;right:-12px;display:block;content:\"\";width:1px;margin:0 6px;background:#ccc}.ViewHeader-module_multitrack-header-dark-97tZt .ViewHeader-module_multitrack-header-search-1X_3_:after{background:#666}.ViewHeader-module_multitrack-header-3XnZx>nav,.ViewHeader-module_multitrack-header-nav-list-2nvcu{display:-ms-flexbox;display:flex}.ViewHeader-module_multitrack-header-icon-16QKZ,.ViewHeader-module_multitrack-header-icon-squeazed-25lkF{width:24px;height:100%;padding:6px;-webkit-transition:background .15s ease,color .15s ease;-o-transition:background .15s ease,color .15s ease;transition:background .15s ease,color .15s ease}.ViewHeader-module_multitrack-header-icon-16QKZ:active,.ViewHeader-module_multitrack-header-icon-16QKZ:focus,.ViewHeader-module_multitrack-header-icon-16QKZ:hover,.ViewHeader-module_multitrack-header-icon-squeazed-25lkF:active,.ViewHeader-module_multitrack-header-icon-squeazed-25lkF:focus,.ViewHeader-module_multitrack-header-icon-squeazed-25lkF:hover{color:#fff;background:#337ab7}.ViewHeader-module_multitrack-header-icon-16QKZ:last-child,.ViewHeader-module_multitrack-header-icon-squeazed-25lkF:last-child{border-radius:0 3px 3px 0}.ViewHeader-module_mouse-tool-selection-1pg2m{color:#fff;border-radius:3px 0 0 3px;background:#337ab7}.ViewHeader-module_multitrack-header-icon-squeazed-25lkF{width:20px 5;padding-left:3px;padding-right:3px}.ViewConfigEditor-module_view-config-editor-header-2nTtX{margin:-10px -10px 0;padding:10px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;background:#f2f2f2}.ViewConfigEditor-module_view-config-editor-header-2nTtX button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:14px;background:#f2f2f2}.ViewConfigEditor-module_view-config-editor-header-2nTtX button:hover{background:#e5e5e5}.ViewConfigEditor-module_view-config-editor-header-2nTtX button:hover span{color:#666}.ViewConfigEditor-module_view-config-editor-2HAFN{position:absolute;top:50px;right:0;bottom:0;left:0;margin:1px 0 0;padding:0;overflow:auto;font-size:12.5px;height:calc(100% - 80px)}.ViewConfigEditor-module_view-config-log-1mYmL{position:absolute;right:0;bottom:0;left:0;margin:1px 0 0;padding:0;min-height:30px;background:#f2f2f2;-webkit-transition:height .15s ease;-o-transition:height .15s ease;transition:height .15s ease}.ViewConfigEditor-module_view-config-log-header-3EbEM{background:#f2f2f2;border-top:1px solid #ccc;border-bottom:1px solid #ccc;padding-left:10px;height:30px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;cursor:pointer;position:sticky;position:-webkit-sticky;top:0}.ViewConfigEditor-module_view-config-log-msg-2-CJZ{background:#f2f2f2;overflow:auto;height:calc(100% - 30px)}.ViewConfigEditor-module_view-config-log-msg-2-CJZ td,.ViewConfigEditor-module_view-config-log-msg-2-CJZ tr{outline:none;vertical-align:top}.ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_title-3nLH_{font-weight:700;padding-left:8px;padding-top:8px;width:100px}.ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_Warning-_sgiB{color:orange}.ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_Success-nclFo{color:green}.ViewConfigEditor-module_view-config-log-msg-2-CJZ .ViewConfigEditor-module_Error-3enaC{color:red}.ViewConfigEditor-module_view-config-log-msg-2-CJZ pre{background:#fff;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.HiGlass-module_higlass-1NHR2{position:relative}.HiGlass-module_higlass-dark-theme-2visd{background:#000}.HiGlass-module_higlass-container-overflow-zNXnY,.HiGlass-module_higlass-scroll-container-overflow-2FS0w,.HiGlass-module_higlass-scroll-container-scroll-2lAU4{position:absolute;top:0;right:0;bottom:0;left:0}.HiGlass-module_higlass-scroll-container-overflow-2FS0w{overflow:hidden}.HiGlass-module_higlass-scroll-container-scroll-2lAU4{overflow-x:hidden;overflow-y:auto}.HiGlass-module_higlass-canvas-_mP9r{position:absolute;width:100%;height:100%}.HiGlass-module_higlass-drawing-surface-3aQQo{position:relative}.HiGlass-module_higlass-svg-JJZbf{position:absolute;width:100%;height:100%;left:0;top:0;pointer-events:none}.HiGlass-module_tiled-area-22H1L{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.HiGlass-module_track-mouseover-menu-1AoaP{position:fixed;z-index:1;margin:17px 0 0 9px;padding:0 .25rem;max-width:50vw;word-wrap:break-word;font-size:.8em;pointer-events:none;background:#fff;border-radius:.25rem;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 3px 0 rgba(0,0,0,.075),0 0 7px 0 rgba(0,0,0,.05);box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 3px 0 rgba(0,0,0,.075),0 0 7px 0 rgba(0,0,0,.05)}.higlass .react-grid-layout{position:relative;-webkit-transition:height .2s ease;-o-transition:height .2s ease;transition:height .2s ease}.higlass .react-grid-item{-webkit-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease;-webkit-transition-property:left,top;-o-transition-property:left,top;transition-property:left,top}.higlass .react-grid-item.cssTransforms{-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;-o-transition-property:transform;transition-property:transform;transition-property:transform,-webkit-transform}.higlass .react-grid-item.resizing{z-index:1;will-change:width,height}.higlass .react-grid-item.react-draggable-dragging{-webkit-transition:none;-o-transition:none;transition:none;z-index:3;will-change:transform}.higlass .react-grid-item.react-grid-placeholder{background:red;opacity:.2;-webkit-transition-duration:.1s;-o-transition-duration:.1s;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.higlass .react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;bottom:0;right:0;cursor:se-resize}.higlass .react-grid-item>.react-resizable-handle:after{content:\"\";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.higlass .react-resizable{position:relative}.higlass .react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;-webkit-box-sizing:border-box;box-sizing:border-box;background-image:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZ6IiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+\");background-position:100% 100%;padding:0 3px 3px 0}.higlass .react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.higlass .react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.higlass .react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.higlass .react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.higlass .react-resizable-handle-e,.higlass .react-resizable-handle-w{top:50%;margin-top:-10px;cursor:ew-resize}.higlass .react-resizable-handle-w{left:0;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}.higlass .react-resizable-handle-e{right:0;-webkit-transform:rotate(315deg);-ms-transform:rotate(315deg);transform:rotate(315deg)}.higlass .react-resizable-handle-n,.higlass .react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.higlass .react-resizable-handle-n{top:0;-webkit-transform:rotate(225deg);-ms-transform:rotate(225deg);transform:rotate(225deg)}.higlass .react-resizable-handle-s{bottom:0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.higlass code[class*=language-],.higlass pre[class*=language-]{color:#393a34;font-family:Consolas,Bitstream Vera Sans Mono,Courier New,Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.95em;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.higlass code[class*=language-]::-moz-selection,.higlass code[class*=language-] ::-moz-selection,.higlass pre[class*=language-]::-moz-selection,.higlass pre[class*=language-] ::-moz-selection{background:#b3d4fc}.higlass code[class*=language-]::selection,.higlass code[class*=language-] ::selection,.higlass pre[class*=language-]::selection,.higlass pre[class*=language-] ::selection{background:#b3d4fc}.higlass pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border:1px solid #ddd;background-color:#fff}.higlass :not(pre)>code[class*=language-]{padding:1px .2em;background:#f8f8f8;border:1px solid #ddd}.higlass .token.cdata,.higlass .token.comment,.higlass .token.doctype,.higlass .token.prolog{color:#998;font-style:italic}.higlass .token.namespace{opacity:.7}.higlass .token.attr-value,.higlass .token.string{color:#e3116c}.higlass .token.operator,.higlass .token.punctuation{color:#393a34}.higlass .token.boolean,.higlass .token.constant,.higlass .token.entity,.higlass .token.inserted,.higlass .token.number,.higlass .token.property,.higlass .token.regex,.higlass .token.symbol,.higlass .token.url,.higlass .token.variable{color:#36acaa}.higlass .language-autohotkey .token.selector,.higlass .token.atrule,.higlass .token.attr-name,.higlass .token.keyword{color:#00a4db}.higlass .language-autohotkey .token.tag,.higlass .token.deleted,.higlass .token.function{color:#9a050f}.higlass .language-autohotkey .token.keyword,.higlass .token.selector,.higlass .token.tag{color:#00009f}.higlass .token.bold,.higlass .token.function,.higlass .token.important{font-weight:700}.higlass .token.italic{font-style:italic}.higlass *{-webkit-box-sizing:border-box;box-sizing:border-box}.higlass .react-resizable-handle{z-index:1}table.table-track-options{border-collapse:collapse;margin-left:auto;margin-right:auto}td.td-track-options{border:1px solid #fff;outline:none;padding:3px;position:relative;font-family:Roboto,sans-serif;font-size:14px;color:#666}.cell-label{position:absolute;left:0;top:0;margin-left:5px;color:#777}.modal-dialog{position:relative;display:table;overflow-y:auto;overflow-x:auto;width:auto;min-width:300px;margin:auto}","@mixin bootstrap-minimal {\n /* This contains only those Bootstrap (v4)\n styles that are required by Vitessce. */\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n div {\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n }\n\n article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n }\n\n\n\n h1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n\n font-weight: 500;\n line-height: 1.2;\n }\n\n p {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n\n b,\n strong {\n font-weight: bolder;\n }\n\n small {\n font-size: 80%;\n }\n\n\n a {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n }\n\n a:hover {\n color: #0056b3;\n text-decoration: underline;\n }\n\n a:not([href]) {\n color: inherit;\n text-decoration: none;\n }\n\n a:not([href]):hover {\n color: inherit;\n text-decoration: none;\n }\n\n img {\n vertical-align: middle;\n border-style: none;\n }\n\n svg {\n overflow: hidden;\n }\n\n table {\n border-collapse: collapse;\n }\n\n\n th {\n text-align: inherit;\n }\n\n button:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n }\n\n input,\n button,\n select,\n optgroup,\n textarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n button,\n input {\n overflow: visible;\n }\n\n button,\n select {\n text-transform: none;\n }\n\n select {\n word-wrap: normal;\n }\n\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button;\n }\n\n button:not(:disabled),\n [type=\"button\"]:not(:disabled),\n [type=\"reset\"]:not(:disabled),\n [type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n }\n\n button::-moz-focus-inner,\n [type=\"button\"]::-moz-focus-inner,\n [type=\"reset\"]::-moz-focus-inner,\n [type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n }\n\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n }\n\n\n [hidden] {\n display: none !important;\n }\n\n h1 {\n font-size: 2.5rem;\n }\n\n h2 {\n font-size: 2rem;\n }\n\n h3 {\n font-size: 1.75rem;\n }\n\n h4 {\n font-size: 1.5rem;\n }\n\n h5 {\n font-size: 1.25rem;\n }\n\n h6 {\n font-size: 1rem;\n }\n\n .container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n }\n\n .row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n\n .col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n }\n\n .d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n\n .card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n\n .card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n\n .card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n }\n\n .card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-height: 1px;\n padding: 0.75rem;\n }\n\n .list-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n }\n\n .list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n }\n\n .list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n text-decoration: none;\n }\n\n .list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n border: 1px solid rgba(0, 0, 0, 0.125);\n }\n\n .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n\n .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n\n .list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n }\n\n .list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n }\n\n .list-group-item + .list-group-item {\n border-top-width: 0;\n }\n\n .list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n }\n\n .flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n\n .align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n\n\n .input-group {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n }\n\n .input-group > .form-control,\n .input-group > .form-control-plaintext {\n position: relative;\n -ms-flex: 1 1 0%;\n flex: 1 1 0%;\n min-width: 0;\n margin-bottom: 0;\n }\n\n .input-group > .form-control + .form-control,\n .input-group > .form-control-plaintext + .form-control,\n .input-group > .custom-select + .form-control,\n .input-group > .custom-file + .form-control {\n margin-left: -1px;\n }\n\n .input-group > .form-control:focus {\n z-index: 3;\n }\n\n .input-group > .form-control:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .input-group > .form-control:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n\n .input-group-prepend,\n .input-group-append {\n display: -ms-flexbox;\n display: flex;\n }\n\n .input-group-prepend .btn,\n .input-group-append .btn {\n position: relative;\n z-index: 2;\n }\n\n .input-group-prepend .btn:focus,\n .input-group-append .btn:focus {\n z-index: 3;\n }\n\n .input-group-prepend .btn + .btn,\n .input-group-append .btn + .btn {\n margin-left: -1px;\n }\n\n .input-group-prepend {\n margin-right: -1px;\n }\n\n .input-group-append {\n margin-left: -1px;\n }\n\n .input-group-lg > .form-control:not(textarea) {\n height: calc(1.5em + 1rem + 2px);\n }\n\n .input-group-lg > .form-control,\n .input-group-lg > .input-group-prepend > .btn,\n .input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n }\n\n .input-group-sm > .form-control:not(textarea) {\n height: calc(1.5em + 0.5rem + 2px);\n }\n\n .input-group-sm > .form-control,\n .input-group-sm > .input-group-prepend > .btn,\n .input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n }\n\n\n .input-group > .input-group-prepend > .btn,\n .input-group > .input-group-append:not(:last-child) > .btn,\n .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .input-group > .input-group-append > .btn,\n .input-group > .input-group-prepend:not(:first-child) > .btn,\n .input-group > .input-group-prepend:first-child > .btn:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n /* Margin Y */\n .my-auto, .mt-auto {\n margin-top: auto !important;\n }\n\n .my-auto, .mb-auto {\n margin-bottom: auto !important;\n }\n\n .my-0, .mt-0 {\n margin-top: 0 !important;\n }\n\n .my-0, .mb-0 {\n margin-bottom: 0 !important;\n }\n\n .my-1, .mt-1 {\n margin-top: 0.25rem !important;\n }\n\n .my-1, .mb-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .my-2, .mt-2 {\n margin-top: 0.5rem !important;\n }\n\n .my-2, .mb-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .my-3, .mt-3 {\n margin-top: 1rem !important;\n }\n\n .my-3, .mb-3 {\n margin-bottom: 1rem !important;\n }\n\n /* Margin X */\n .mx-auto, .ml-auto {\n margin-left: auto !important;\n }\n\n .mx-auto, .mr-auto {\n margin-right: auto !important;\n }\n\n .mx-0, .ml-0 {\n margin-left: 0 !important;\n }\n\n .mx-0, .mr-0 {\n margin-right: 0 !important;\n }\n\n .mx-1, .ml-1 {\n margin-left: 0.25rem !important;\n }\n\n .mx-1, .mr-1 {\n margin-right: 0.25rem !important;\n }\n\n .mx-2, .ml-2 {\n margin-left: 0.5rem !important;\n }\n\n .mx-2, .mr-2 {\n margin-right: 0.5rem !important;\n }\n\n .mx-3, .ml-3 {\n margin-left: 1rem !important;\n }\n\n .mx-3, .mr-3 {\n margin-right: 1rem !important;\n }\n\n /* Padding Y */\n .py-0, .pt-0 {\n padding-top: 0 !important;\n }\n\n .py-0, .pb-0 {\n padding-bottom: 0 !important;\n }\n\n .py-1, .pt-1 {\n padding-top: 0.25rem !important;\n }\n\n .py-1, .pb-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .py-2, .pt-2 {\n padding-top: 0.5rem !important;\n }\n\n .py-2, .pb-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .py-3, .pt-3 {\n padding-top: 1rem !important;\n }\n\n .py-3, .pb-3 {\n padding-bottom: 1rem !important;\n }\n\n /* Padding X */\n .px-0, .pl-0 {\n padding-left: 0 !important;\n }\n\n .px-0, .pr-0 {\n padding-right: 0 !important;\n }\n\n .px-1, .pl-1 {\n padding-left: 0.25rem !important;\n }\n\n .px-1, .pr-1 {\n padding-right: 0.25rem !important;\n }\n\n .px-2, .pl-2 {\n padding-left: 0.5rem !important;\n }\n\n .px-2, .pr-2 {\n padding-right: 0.5rem !important;\n }\n\n .px-3, .pl-3 {\n padding-left: 1rem !important;\n }\n\n .px-3, .pr-3 {\n padding-right: 1rem !important;\n }\n\n\n .form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n }\n\n .form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n .form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n }\n\n .form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n }\n\n .form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n }\n\n .form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n }\n\n .form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n }\n\n .form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n }\n\n .form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n }\n\n .form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n }\n\n select.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n }\n\n .btn .badge {\n position: relative;\n top: -1px;\n }\n\n .btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n }\n\n\n .btn:hover {\n color: #212529;\n text-decoration: none;\n }\n\n .btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n }\n\n .btn.disabled, .btn:disabled {\n opacity: 0.65;\n }\n\n\n .btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n }\n\n .btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n }\n\n .btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n }\n\n .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n }\n\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n .show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n }\n\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n }\n\n\n .modal-open {\n overflow: hidden;\n }\n\n .modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .modal {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1050;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n }\n\n .modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n }\n\n .modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n }\n\n .modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n }\n\n .modal.modal-static .modal-dialog {\n -webkit-transform: scale(1.02);\n transform: scale(1.02);\n }\n\n .modal-dialog-scrollable {\n display: -ms-flexbox;\n display: flex;\n max-height: calc(100% - 1rem);\n }\n\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n }\n\n .modal-dialog-scrollable .modal-header,\n .modal-dialog-scrollable .modal-footer {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n }\n\n .modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n }\n\n .modal-dialog-centered {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - 1rem);\n }\n\n .modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n }\n\n .modal-dialog-centered.modal-dialog-scrollable {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n height: 100%;\n }\n\n .modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n }\n\n .modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n }\n\n .modal-content {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n }\n\n .modal-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100%;\n height: 100%;\n background-color: #000;\n }\n\n .modal-backdrop.fade {\n opacity: 0;\n }\n\n .modal-backdrop.show {\n opacity: 0.5;\n }\n\n .modal-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n }\n\n .modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n }\n\n .modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n }\n\n .modal-body {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n }\n\n .modal-footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n }\n\n .modal-footer > * {\n margin: 0.25rem;\n }\n\n .modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n }\n\n @media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n }\n\n @media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n }\n\n @media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n }\n\n\n\n\n .card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-clip: border-box;\n border-radius: 0.25rem;\n }\n\n\n .alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n }\n\n\n .alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n }\n\n\n .justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n\n .align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n\n .pl-2,\n .px-2 {\n padding-left: 0.5rem !important;\n }\n\n .align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n}\n","/* Spatial and t-SNE controls */\n@mixin controls($theme-name, $theme-colors) {\n .btn.icon {\n padding: 0;\n height: 2em;\n width: 2em;\n background-color: white;\n > svg {\n vertical-align: middle;\n }\n }\n .roll-up {\n height: 2em; /* Matches .btn.icon */\n overflow: hidden;\n background-color: white;\n &:hover {\n animation-name: roll-up;\n animation-duration: 0.5s;\n animation-fill-mode: forwards;\n }\n }\n @keyframes roll-up {\n 0% { height: 2em; }\n 100% { height: 100%; }\n }\n .tool {\n position: absolute;\n display: inline;\n z-index: 1000;\n opacity: .65;\n color: black;\n &:hover {\n opacity: .90;\n }\n }\n\n .radio {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n /* create custom radiobutton appearance */\n display: inline-block;\n width: 1em;\n height: 1em;\n padding: 6px !important; /* TODO: Only need \"important\" to override Bootstrap. */\n /* background-color only for content */\n background-clip: content-box;\n border: 2px solid lightgrey;\n background-color: lightgrey;\n border-radius: 50%;\n\n &:checked {\n background-clip: unset;\n }\n }\n}\n","\n@mixin channels($theme-name, $theme-colors) {\n $box-size: 16px;\n\n .layer-controller-container {\n & > div:first-child {\n margin-top: 0 !important;\n }\n }\n\n .channel-container {\n width: 100%;\n display: flex;\n position: relative;\n }\n\n .channel-set-color {\n display: flex;\n position: relative;\n top: 5px;\n width: $box-size;\n height: $box-size;\n margin-right: 24px;\n cursor: pointer;\n outline: currentColor none medium;\n border-radius: 3px;\n box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset;\n }\n\n .channel-checked {\n display: flex;\n position: relative;\n margin-right: 10px;\n }\n\n .add-image-layer {\n color: darken(map-get($theme-colors, \"primary-foreground\"), 5%);\n border: 1px dashed darken(map-get($theme-colors, \"primary-foreground\"), 5%);\n }\n\n}\n","\n/* In error message */\n@mixin error($theme-name, $theme-colors) {\n pre {\n color: map-get($theme-colors, \"primary-foreground\");\n }\n}\n","/* Tooltips for plot hover events. */\n@mixin plot-tooltips($theme-name, $theme-colors) {\n .cell-emphasis-crosshair {\n z-index: 50;\n position: absolute;\n pointer-events: none;\n box-sizing: border-box;\n background-color: map-get($theme-colors, \"secondary-foreground\");\n }\n\n}\n","\n/*\n Tooltips and popovers for showing help info to the user.\n Some styles here (for .rc-tooltip and descendants) have been adapted from the ant-design tooltip and popover styles:\n https://github.com/ant-design/ant-design/blob/34c2fad6368cce0d3e1959613d092274f567582a/components/tooltip/style/index.less\n https://github.com/ant-design/ant-design/blob/34c2fad6368cce0d3e1959613d092274f567582a/components/popover/style/index.less\n */\n@mixin help-tooltip-popover-common($theme-name, $theme-colors) {\n\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n list-style: none;\n position: absolute;\n\n &-hidden {\n display: none;\n }\n\n .rc-tooltip-inner {\n border-radius: 2px;\n -webkit-box-shadow: 0 3px 6px -4px rgba(100, 100, 100, 0.12), 0 6px 16px 0 rgba(100, 100, 100, 0.08), 0 9px 28px 8px rgba(100, 100, 100, 0.05);\n box-shadow: 0 3px 6px -4px rgba(100, 100, 100, 0.12), 0 6px 16px 0 rgba(100, 100, 100, 0.08), 0 9px 28px 8px rgba(100, 100, 100, 0.05);\n }\n \n}\n\n@mixin help-tooltips($theme-name, $theme-colors) {\n .help-tooltip {\n &.rc-tooltip {\n z-index: 1060;\n display: block;\n max-width: 250px;\n visibility: visible;\n\n @include help-tooltip-popover-common($theme-name, $theme-colors);\n\n &-placement-top {\n padding-top: 8px;\n }\n &-placement-right {\n padding-left: 8px;\n }\n &-placement-bottom {\n padding-top: 8px;\n }\n &-placement-left {\n padding-right: 8px;\n }\n .rc-tooltip-inner {\n font-size: 10px;\n min-width: 30px;\n padding: 6px 8px;\n color: #fff;\n text-align: left;\n text-decoration: none;\n word-wrap: break-word;\n background-color: rgba(0, 0, 0, 0.9);\n \n }\n .rc-tooltip-arrow {\n display: none;\n }\n }\n }\n}\n\n@mixin popover($theme-name, $theme-colors) {\n\n .popover {\n &.rc-tooltip {\n top: 0;\n left: 0;\n z-index: 1030;\n font-weight: normal;\n white-space: normal;\n text-align: left;\n cursor: auto;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n\n &::after {\n position: absolute;\n background: rgba(255, 255, 255, 0.01);\n content: '';\n }\n\n @include help-tooltip-popover-common($theme-name, $theme-colors);\n\n &-placement-top {\n padding-bottom: 10px;\n }\n &-placement-right {\n padding-left: 10px;\n }\n &-placement-bottom {\n padding-top: 10px;\n }\n &-placement-left {\n padding-right: 10px;\n }\n\n .rc-tooltip-content {\n padding: 0;\n }\n\n .rc-tooltip-inner {\n box-sizing: border-box;\n background-color: map-get($global-colors, \"white\");\n background-clip: padding-box;\n\n .popover-menu-list {\n list-style-type: none;\n padding: 0;\n margin-bottom: 0;\n dl, ol, ul {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n li {\n button {\n border: 0;\n padding: 4px 16px;\n cursor: pointer;\n width: 100%;\n background-color: transparent;\n border-radius: 2px;\n\n span.small {\n font-size: 11px;\n }\n\n &:hover {\n background-color: lighten(map-get($global-colors, \"gray-light\"), 10%);\n }\n }\n &:not(:last-child) {\n border-bottom: 1px solid map-get($global-colors, \"gray-mid\");\n }\n }\n\n button {\n -webkit-appearance: button;\n text-transform: none;\n overflow: visible;\n margin: 0;\n font-family: inherit;\n font-size: 14px;\n line-height: inherit;\n border-radius: 0;\n }\n }\n\n .popover-menu-color + .popover-menu-list {\n border-top: 1px solid map-get($global-colors, \"gray-mid\");\n }\n }\n\n .popover-menu-color.twitter-picker {\n box-shadow: none !important;\n margin: 0 auto;\n /* Sets margins around color picker and centers */\n > div:nth-child(3) {\n padding: 6px !important;\n transform: translate(2px, 0);\n }\n > div > div:nth-of-type(1) {\n font-size: 12px;\n width: 20px !important;\n }\n input {\n width: 60px !important;\n font-size: 12px;\n }\n /* Sets smaller color squares */\n > div > span > div {\n width: 18px !important;\n height: 18px !important;\n }\n }\n\n .rc-tooltip-inner-content {\n padding: 12px 16px;\n color: rgba(0, 0, 0, 0.65);\n }\n\n .rc-tooltip-arrow {\n position: absolute;\n display: block;\n width: 8px;\n height: 8px;\n background: transparent;\n border-style: solid;\n border-width: 4px;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n\n &.rc-tooltip-placement-top > .rc-tooltip-content > .rc-tooltip-arrow {\n bottom: 6px;\n border-top-color: transparent;\n border-right-color: #fff;\n border-bottom-color: #fff;\n border-left-color: transparent;\n -webkit-box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n left: 50%;\n -webkit-transform: translateX(-50%) rotate(45deg);\n transform: translateX(-50%) rotate(45deg);\n }\n\n\n &.rc-tooltip-placement-right > .rc-tooltip-content > .rc-tooltip-arrow {\n left: 6px;\n border-top-color: transparent;\n border-right-color: transparent;\n border-bottom-color: #fff;\n border-left-color: #fff;\n -webkit-box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);\n box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);\n top: 50%;\n -webkit-transform: translateY(-50%) rotate(45deg);\n transform: translateY(-50%) rotate(45deg);\n }\n\n\n &.rc-tooltip-placement-bottom > .rc-tooltip-content > .rc-tooltip-arrow {\n top: 6px;\n border-top-color: #fff;\n border-right-color: transparent;\n border-bottom-color: transparent;\n border-left-color: #fff;\n -webkit-box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);\n box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);\n left: 50%;\n -webkit-transform: translateX(-50%) rotate(45deg);\n transform: translateX(-50%) rotate(45deg);\n }\n \n &.rc-tooltip-placement-left > .rc-tooltip-content > .rc-tooltip-arrow {\n right: 6px;\n border-top-color: #fff;\n border-right-color: #fff;\n border-bottom-color: transparent;\n border-left-color: transparent;\n -webkit-box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);\n box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);\n top: 50%;\n -webkit-transform: translateY(-50%) rotate(45deg);\n transform: translateY(-50%) rotate(45deg);\n }\n }\n }\n}","@import 'colors';\n\n/*\n Some styles here (for .rc-tree and descendants) have been adapted from the ant-design tree styles:\n https://github.com/ant-design/ant-design/blob/34c2fad6368cce0d3e1959613d092274f567582a/components/tree/style/index.less\n */\n@mixin sets-manager($theme-name, $theme-colors) {\n\n $node-height: 32 !default;\n .sets-manager {\n position: relative;\n width: 100%;\n display: block;\n height: auto;\n .set-operation-buttons {\n background-color: map-get($global-colors, \"gray-light\");\n border-radius: 4px;\n padding: 2px;\n display: inline-block;\n position: absolute;\n bottom: 1.75rem;\n right: 0.25rem;\n -webkit-box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);\n box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06);\n button {\n border: 0;\n background-color: transparent;\n color: lighten(map-get($global-colors, \"gray-dark\"), 5%);\n\n &[disabled] {\n pointer-events: none;\n svg {\n fill: silver;\n }\n }\n \n svg {\n fill: map-get($global-colors, \"gray-dark\");\n vertical-align: top;\n height: 20px;\n margin-top: 1px;\n }\n\n &:hover, &:hover path {\n color: darken(map-get($global-colors, \"gray-dark\"), 15%);\n fill: darken(map-get($global-colors, \"gray-dark\"), 15%);\n }\n }\n }\n \n .sets-manager-tree {\n position: relative;\n top: 0;\n left: 0;\n width: 100%;\n height: auto;\n display: block;\n padding-right: 17px; /* Increase/decrease this value for cross-browser compatibility */\n box-sizing: content-box; /* So the width will be 100% + 17px */\n \n .plus-button {\n border: 0;\n background-color: transparent;\n color: lighten(map-get($theme-colors, \"primary-foreground\"), 5%);\n padding: 0;\n font-size: 18px;\n margin-bottom: 2rem;\n }\n \n .rc-tree {\n padding-left: 0;\n margin: 0;\n border: 1px solid transparent;\n\n .node-menu-icon {\n fill: map-get($global-colors, \"gray-mid\");\n cursor: pointer;\n height: 14px;\n position: relative;\n vertical-align: top;\n width: #{$node-height}px;\n top: 5.5px;\n\n &:hover {\n fill: lighten(map-get($global-colors, \"gray-mid\"), 10%);\n }\n }\n .node-size-label {\n font-size: 12px;\n color: darken(map-get($theme-colors, \"primary-foreground\"), 15%);\n }\n\n .level-buttons-container {\n height: 20px;\n width: 100%;\n position: relative;\n padding-left: 4px;\n left: 0;\n\n .level-buttons {\n\n input.level-radio-button {\n cursor: pointer;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n /* create custom radiobutton appearance */\n width: 12px;\n height: 12px;\n padding: 5px;\n /* background-color only for content */\n background-clip: content-box;\n border: 2px solid lighten(map-get($theme-colors, \"primary-foreground\"), 10%);\n background-color: lighten(map-get($theme-colors, \"primary-foreground\"), 10%);\n border-radius: 6px;\n position: relative;\n top: 3px;\n left: 0px;\n float: left;\n margin-right: 10px;\n\n &:checked, &.checked {\n background-clip: unset;\n }\n }\n }\n }\n\n .level-0-treenode > .rc-tree-switcher i svg {\n path {\n fill: lighten(map-get($theme-colors, \"primary-foreground\"), 5%);\n }\n }\n\n &-focused:not(&-active-focused) {\n border-color: cyan;\n }\n \n .rc-tree-treenode {\n margin: 0;\n padding: 0;\n line-height: #{$node-height - 8}px;\n white-space: nowrap;\n list-style: none;\n outline: 0;\n\n .title-button, .title-button-with-input {\n padding: 0;\n margin: 0;\n }\n\n .title-button {\n height: #{$node-height - 8}px;\n line-height: #{$node-height - 8}px;\n border: 1px solid transparent;\n color: lighten(map-get($theme-colors, \"primary-foreground\"), 5%);\n background: transparent;\n background-color: transparent;\n vertical-align: top;\n font-size: 14px;\n }\n\n .title-button-with-input {\n display: block;\n height: #{$node-height - 6}px;\n box-sizing: border-box;\n .title-input {\n font-size: 14px;\n height: #{$node-height - 8}px;\n line-height: #{$node-height - 8}px;\n width: calc(100% - 60px);\n margin-right: 10px;\n background-color: map-get($global-colors, \"gray-light\");\n color: map-get($global-colors, \"black\");\n border-radius: 4px;\n outline: none;\n padding: 4px 0px 4px 4px;\n border: 1px solid map-get($global-colors, \"gray-light\");\n &:focus {\n border: 1px solid map-get($theme-colors, \"primary-foreground-active\");\n }\n }\n \n .title-save-button {\n background-color: map-get($global-colors, \"gray-dark\");\n border: 1px solid map-get($global-colors, \"gray-dark\");\n color: map-get($global-colors, \"gray-light\");\n border-radius: 3px;\n width: 50px;\n height: #{$node-height - 8}px;\n line-height: 20px;\n font-size: 13px;\n vertical-align: top;\n margin: 0;\n padding: 0;\n \n &:hover {\n background-color: lighten(map-get($global-colors, \"gray-dark\"), 5%);\n border: 1px solid lighten(map-get($global-colors, \"gray-dark\"), 5%);\n }\n }\n }\n\n .draggable {\n color: #333;\n -moz-user-select: none;\n -khtml-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n /* Required to make elements draggable in old WebKit */\n -khtml-user-drag: element;\n -webkit-user-drag: element;\n border: 2px transparent solid;\n }\n &.drag-over {\n > .draggable {\n color: white;\n background-color: #316ac5;\n border: 2px #316ac5 solid;\n opacity: 0.8;\n }\n }\n &.drag-over-gap-top {\n > .draggable {\n border-top: 2px blue solid;\n }\n }\n &.drag-over-gap-bottom {\n > .draggable {\n border-bottom: 2px blue solid;\n }\n }\n &.filter-node {\n > .rc-tree-node-content-wrapper {\n color: #a60000 !important;\n font-weight: bold !important;\n }\n }\n ul {\n margin: 0;\n padding-left: 35px;\n }\n .rc-tree-node-content-wrapper {\n width: calc(100% - 20px);\n display: inline-block;\n margin: 0;\n padding: 0;\n text-decoration: none;\n vertical-align: top;\n cursor: pointer;\n position: relative;\n & > span {\n position: relative;\n width: 100%;\n display: inline-block;\n\n .title-button {\n position: relative;\n /* To accomodate the checkbox and node menu button. */\n max-width: calc(100% - 45px);\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .node-menu-icon {\n position: relative;\n left: 0;\n }\n }\n }\n span {\n &.rc-tree-switcher,\n &.rc-tree-checkbox {\n display: inline-block;\n margin-top: 4px;\n margin-right: 6px;\n vertical-align: middle;\n background-color: transparent;\n \n background-repeat: no-repeat;\n background-attachment: scroll;\n border: 0 none;\n outline: none;\n cursor: pointer;\n \n }\n\n &.rc-tree-switcher {\n svg {\n width: 15px;\n height: 15px;\n }\n &.rc-tree-switcher-noop {\n cursor: auto;\n }\n\n &.rc-tree-switcher_close {\n -webkit-transform: rotate(-90deg);\n -ms-transform: rotate(-90deg);\n transform: rotate(-90deg);\n }\n }\n &.rc-tree-checkbox {\n width: 13px;\n height: 13px;\n margin: 0 3px;\n border: 2px solid map-get($global-colors, \"gray-mid\");\n border-radius: 3px;\n position: relative;\n left: 0;\n margin-right: 10px;\n &-checked {\n background-color: map-get($global-colors, \"gray-mid\");\n }\n &-indeterminate {\n background-position: -14px -28px;\n }\n &-disabled {\n background-position: 0 -56px;\n }\n &.rc-tree-checkbox-checked.rc-tree-checkbox-disabled {\n background-position: -14px -56px;\n }\n &.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled {\n position: relative;\n background: #ccc;\n border-radius: 3px;\n &::after {\n position: absolute;\n top: 5px;\n left: 3px;\n width: 5px;\n height: 0;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n -webkit-transform: scale(1);\n transform: scale(1);\n content: ' ';\n }\n }\n }\n }\n }\n &:not(.rc-tree-show-line) {\n .rc-tree-treenode {\n .rc-tree-switcher-noop {\n background: none;\n }\n }\n }\n &.rc-tree-show-line {\n .rc-tree-treenode:not(:last-child) {\n > .rc-tree-switcher-noop {\n background-position: -56px -18px;\n }\n }\n .rc-tree-treenode:last-child {\n > .rc-tree-switcher-noop {\n background-position: -56px -36px;\n }\n }\n }\n &-child-tree {\n display: none;\n &-open {\n display: block;\n }\n }\n &-treenode-disabled {\n > span:not(.rc-tree-switcher),\n > a,\n > a span {\n color: #767676;\n cursor: not-allowed;\n }\n }\n &-treenode-active {\n background: rgba(0, 0, 0, 0.1);\n \n // .rc-tree-node-content-wrapper {\n // background: rgba(0, 0, 0, 0.1);\n // }\n }\n &-node-selected {\n background-color: #ffe6b0;\n border: 1px #ffb951 solid;\n opacity: 0.8;\n }\n &-icon__open {\n margin-right: 2px;\n vertical-align: top;\n background-position: -110px -16px;\n }\n &-icon__close {\n margin-right: 2px;\n vertical-align: top;\n background-position: -110px 0;\n }\n &-icon__docu {\n margin-right: 2px;\n vertical-align: top;\n background-position: -110px -32px;\n }\n &-icon__customize {\n margin-right: 2px;\n vertical-align: top;\n }\n &-indent-unit {\n display: inline-block;\n padding-left: 18px;\n }\n }\n\n \n }\n }\n\n .vitessce-tooltip {\n .ant-tooltip-content .ant-tooltip-inner {\n font-size: 12px;\n background-color: rgba(0, 0, 0, 0.95);\n }\n }\n\n}","@import 'colors';\n\n@mixin selectable-table($theme-name, $theme-colors) {\n .selectable-table {\n flex: 1 1 auto;\n outline : none;\n .table-row {\n display: flex;\n flex-direction: row;\n border-bottom: 1px solid map-get($theme-colors, \"secondary-background-dim\");\n }\n .table-item {\n cursor: pointer;\n &:not(.row-checked):hover {\n @if $theme-name == dark {\n background-color: darken(map-get($theme-colors, \"secondary-background-dim\"), 10%);\n } @else {\n background-color: lighten(map-get($theme-colors, \"secondary-background-dim\"), 10%);\n }\n }\n &.row-checked {\n background-color: map-get($theme-colors, \"secondary-background-dim\");\n }\n .hidden-input-column {\n display: none;\n }\n .table-cell {\n padding: 0 4px;\n }\n .input-container {\n width: 1em;\n label {\n display: block;\n margin: 0;\n cursor: pointer;\n }\n input {\n cursor: pointer;\n &.radio, &.checkbox {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n /* create custom radiobutton appearance */\n display: inline-block;\n width: 1em;\n height: 1em;\n margin: 0.3em 0.5em 0.0em 0.5em;\n padding: 6px !important; /* TODO: Only need \"important\" to override Bootstrap. */\n /* background-color only for content */\n background-clip: content-box;\n border: 2px solid map-get($global-colors, \"gray-light\");\n background-color: map-get($global-colors, \"gray-light\");\n \n &:checked {\n background-clip: unset;\n }\n }\n &.radio {\n border-radius: 50%;\n }\n &.checkbox {\n border-radius: 2px;\n }\n }\n }\n } \n }\n}\n ","\n.vitessce-container .higlass-wrapper {\n // https://sass-lang.com/documentation/at-rules/import#nesting\n // https://sass-lang.com/documentation/at-rules/import#importing-css\n @import \"../../node_modules/higlass/dist/hglib\";\n}\n@mixin higlass($theme-name, $theme-colors) {\n\n .higlass-title-wrapper {\n height: calc(100% - 20px);\n .card-body {\n width: inherit;\n height: inherit;\n padding: 5px;\n background-color: map-get($theme-colors, \"secondary-background\");\n .higlass-lazy-wrapper {\n width: inherit;\n height: inherit;\n }\n .higlass-wrapper-parent {\n display: block;\n position: relative;\n box-sizing: border-box;\n font-size: 12px;\n color: #333;\n overflow: hidden;\n .higlass-wrapper {\n width: inherit;\n height: inherit;\n position: relative;\n display: block;\n text-align: left;\n box-sizing: border-box;\n .higlass {\n width: 100%;\n height: 100%;\n .react-grid-layout {\n background-color: transparent !important;\n }\n nav {\n display: flex;\n }\n input {\n font-size: 12px;\n }\n .btn {\n color: #999;\n font-size: 12px;\n }\n }\n }\n }\n }\n }\n \n}\n","@mixin vega($theme-name, $theme-colors) {\n .vega-container {\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n }\n}","/*\nSee https://github.com/vitessce/vitessce/issues/368 for why this css needs to exist and https://github.com/vitessce/vitessce/pull/607 for a longer explanation.\nThe absolute positioning gives us the control we need to force the canvas elements to \"fill\" the container - this was not happening in Safari with the bootstrap css.\n*/\n@mixin heatmap($theme-name, $theme-colors) {\n .heatmap {\n width: 100%;\n left: 0;\n position: absolute;\n padding-right: inherit;\n padding-left: inherit;\n }\n\n .heatmap-container {\n position: absolute;\n top: 1.25rem; // Corresponds to the padding on .vitessce-container .card-body\n left: 1.25rem; // Corresponds to the padding on .vitessce-container .card-body\n width: calc(100% - 2.5rem);\n height: calc(100% - 2.5rem);\n }\n}","@mixin genes($theme-name, $theme-colors) {\n .search-bar {\n margin-bottom: .25rem;\n border: 0;\n padding: 2px;\n border-radius: 2px;\n }\n}\n"]} \ No newline at end of file
--- a/static/js/2.eb2fd6ea.chunk.js Thu May 30 17:24:44 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -/*! For license information please see 2.eb2fd6ea.chunk.js.LICENSE.txt */ -(this.webpackJsonpvitessce=this.webpackJsonpvitessce||[]).push([[2],[function(e,t,A){"use strict";e.exports=A(750)},function(e,t,A){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}A.d(t,"a",(function(){return n}))},function(e,t,A){e.exports=A(853)},function(e,t,A){"use strict";function n(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function r(e,t,A){return t&&n(e.prototype,t),A&&n(e,A),e}A.d(t,"a",(function(){return r}))},function(e,t,A){"use strict";function n(e,t,A){return e.fields=t||[],e.fname=A,e}function r(e){return null==e?null:e.fname}function i(e){return null==e?null:e.fields}function o(e){return 1===e.length?a(e[0]):s(e)}A.d(t,"a",(function(){return v})),A.d(t,"b",(function(){return E})),A.d(t,"c",(function(){return y})),A.d(t,"d",(function(){return p})),A.d(t,"e",(function(){return Q})),A.d(t,"f",(function(){return n})),A.d(t,"g",(function(){return i})),A.d(t,"h",(function(){return r})),A.d(t,"i",(function(){return X})),A.d(t,"j",(function(){return ee})),A.d(t,"k",(function(){return q})),A.d(t,"l",(function(){return $})),A.d(t,"m",(function(){return re})),A.d(t,"n",(function(){return ie})),A.d(t,"o",(function(){return g})),A.d(t,"p",(function(){return oe})),A.d(t,"q",(function(){return ae})),A.d(t,"r",(function(){return se})),A.d(t,"s",(function(){return d})),A.d(t,"t",(function(){return le})),A.d(t,"u",(function(){return u})),A.d(t,"v",(function(){return Ie})),A.d(t,"w",(function(){return ce})),A.d(t,"x",(function(){return l})),A.d(t,"y",(function(){return I})),A.d(t,"z",(function(){return Ce})),A.d(t,"A",(function(){return he})),A.d(t,"B",(function(){return b})),A.d(t,"C",(function(){return fe})),A.d(t,"D",(function(){return de})),A.d(t,"E",(function(){return z})),A.d(t,"F",(function(){return Be})),A.d(t,"G",(function(){return pe})),A.d(t,"H",(function(){return w})),A.d(t,"I",(function(){return Ee})),A.d(t,"J",(function(){return Qe})),A.d(t,"K",(function(){return ye})),A.d(t,"L",(function(){return ve})),A.d(t,"M",(function(){return m})),A.d(t,"N",(function(){return me})),A.d(t,"O",(function(){return be})),A.d(t,"P",(function(){return F})),A.d(t,"Q",(function(){return h})),A.d(t,"R",(function(){return Se})),A.d(t,"S",(function(){return L})),A.d(t,"T",(function(){return T})),A.d(t,"U",(function(){return Z})),A.d(t,"V",(function(){return H})),A.d(t,"W",(function(){return G})),A.d(t,"X",(function(){return K})),A.d(t,"Y",(function(){return we})),A.d(t,"Z",(function(){return Fe})),A.d(t,"ab",(function(){return c})),A.d(t,"bb",(function(){return Re})),A.d(t,"cb",(function(){return De})),A.d(t,"db",(function(){return ke})),A.d(t,"eb",(function(){return k})),A.d(t,"fb",(function(){return Ne})),A.d(t,"gb",(function(){return xe})),A.d(t,"hb",(function(){return Ue})),A.d(t,"ib",(function(){return f})),A.d(t,"jb",(function(){return W})),A.d(t,"kb",(function(){return _e})),A.d(t,"lb",(function(){return R})),A.d(t,"mb",(function(){return C})),A.d(t,"nb",(function(){return J})),A.d(t,"ob",(function(){return j})),A.d(t,"pb",(function(){return P})),A.d(t,"qb",(function(){return V}));var a=function(e){return function(t){return t[e]}},s=function(e){var t=e.length;return function(A){for(var n=0;n<t;++n)A=A[e[n]];return A}};function g(e){throw Error(e)}function c(e){var t,A,n,r=[],i=e.length,o=null,a=0,s="";function c(){r.push(s+e.substring(t,A)),s="",t=A+1}for(e+="",t=A=0;A<i;++A)if("\\"===(n=e[A]))s+=e.substring(t,A),s+=e.substring(++A,++A),t=A;else if(n===o)c(),o=null,a=-1;else{if(o)continue;t===a&&'"'===n||t===a&&"'"===n?(t=A+1,o=n):"."!==n||a?"["===n?(A>t&&c(),a=t=A+1):"]"===n&&(a||g("Access path missing open bracket: "+e),a>0&&c(),a=0,t=A+1):A>t?c():t=A+1}return a&&g("Access path missing closing bracket: "+e),o&&g("Access path missing closing quote: "+e),A>t&&(A++,c()),r}function u(e,t,A){var r=c(e);return e=1===r.length?r[0]:e,n((A&&A.get||o)(r),[e],t||e)}var l=u("id"),I=n((function(e){return e}),[],"identity"),C=n((function(){return 0}),[],"zero"),h=n((function(){return 1}),[],"one"),f=n((function(){return!0}),[],"true"),d=n((function(){return!1}),[],"false");function B(e,t,A){var n=[t].concat([].slice.call(A));console[e].apply(console,n)}var p=0,E=1,Q=2,y=3,v=4;function m(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:B,n=e||p;return{level:function(e){return arguments.length?(n=+e,this):n},error:function(){return n>=E&&A(t||"error","ERROR",arguments),this},warn:function(){return n>=Q&&A(t||"warn","WARN",arguments),this},info:function(){return n>=y&&A(t||"log","INFO",arguments),this},debug:function(){return n>=v&&A(t||"log","DEBUG",arguments),this}}}var b=Array.isArray;function w(e){return e===Object(e)}var S=function(e){return"__proto__"!==e};function F(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];return t.reduce((function(e,t){for(var A in t)if("signals"===A)e.signals=D(e.signals,t.signals);else{var n="legend"===A?{layout:1}:"style"===A||null;R(e,A,t[A],n)}return e}),{})}function R(e,t,A,n){var r,i;if(S(t))if(w(A)&&!b(A))for(r in i=w(e[t])?e[t]:e[t]={},A)n&&(!0===n||n[r])?R(i,r,A[r]):S(r)&&(i[r]=A[r]);else e[t]=A}function D(e,t){if(null==e)return t;var A={},n=[];function r(e){A[e.name]||(A[e.name]=1,n.push(e))}return t.forEach(r),e.forEach(r),n}function G(e){return e[e.length-1]}function k(e){return null==e||""===e?null:+e}var x=function(e){return function(t){return e*Math.exp(t)}},N=function(e){return function(t){return Math.log(e*t)}},U=function(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}},_=function(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}},M=function(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}};function O(e,t,A,n){var r=A(e[0]),i=A(G(e)),o=(i-r)*t;return[n(r-o),n(i-o)]}function L(e,t){return O(e,t,k,I)}function T(e,t){var A=Math.sign(e[0]);return O(e,t,N(A),x(A))}function Z(e,t,A){return O(e,t,M(A),M(1/A))}function H(e,t,A){return O(e,t,U(A),_(A))}function Y(e,t,A,n,r){var i=n(e[0]),o=n(G(e)),a=null!=t?n(t):(i+o)/2;return[r(a+(i-a)*A),r(a+(o-a)*A)]}function J(e,t,A){return Y(e,t,A,k,I)}function j(e,t,A){var n=Math.sign(e[0]);return Y(e,t,A,N(n),x(n))}function P(e,t,A,n){return Y(e,t,A,M(n),M(1/n))}function V(e,t,A,n){return Y(e,t,A,U(n),_(n))}function K(e){return 1+~~(new Date(e).getMonth()/3)}function W(e){return 1+~~(new Date(e).getUTCMonth()/3)}function X(e){return null!=e?b(e)?e:[e]:[]}function q(e,t,A){var n,r=e[0],i=e[1];return i<r&&(n=i,i=r,r=n),(n=i-r)>=A-t?[t,A]:[r=Math.min(Math.max(r,t),A-n),r+n]}function z(e){return"function"===typeof e}function $(e,t,A){A=A||{},t=X(t)||[];var r=[],o=[],a={},s=A.comparator||te;return X(e).forEach((function(e,n){null!=e&&(r.push("descending"===t[n]?-1:1),o.push(e=z(e)?e:u(e,null,A)),(i(e)||[]).forEach((function(e){return a[e]=1})))})),0===o.length?null:n(s(o,r),Object.keys(a))}var ee=function(e,t){return(e<t||null==e)&&null!=t?-1:(e>t||null==t)&&null!=e?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0)},te=function(e,t){return 1===e.length?Ae(e[0],t[0]):ne(e,t,e.length)},Ae=function(e,t){return function(A,n){return ee(e(A),e(n))*t}},ne=function(e,t,A){return t.push(0),function(n,r){for(var i,o=0,a=-1;0===o&&++a<A;)i=e[a],o=ee(i(n),i(r));return o*t[a]}};function re(e){return z(e)?e:function(){return e}}function ie(e,t){var A;return function(n){A&&clearTimeout(A),A=setTimeout((function(){return t(n),A=null}),e)}}function oe(e){for(var t,A,n=1,r=arguments.length;n<r;++n)for(A in t=arguments[n])e[A]=t[A];return e}function ae(e,t){var A,n,r,i,o=0;if(e&&(A=e.length))if(null==t){for(n=e[o];o<A&&(null==n||n!==n);n=e[++o]);for(r=i=n;o<A;++o)null!=(n=e[o])&&(n<r&&(r=n),n>i&&(i=n))}else{for(n=t(e[o]);o<A&&(null==n||n!==n);n=t(e[++o]));for(r=i=n;o<A;++o)null!=(n=t(e[o]))&&(n<r&&(r=n),n>i&&(i=n))}return[r,i]}function se(e,t){var A,n,r,i,o,a=e.length,s=-1;if(null==t){for(;++s<a;)if(null!=(n=e[s])&&n>=n){A=r=n;break}if(s===a)return[-1,-1];for(i=o=s;++s<a;)null!=(n=e[s])&&(A>n&&(A=n,i=s),r<n&&(r=n,o=s))}else{for(;++s<a;)if(null!=(n=t(e[s],s,e))&&n>=n){A=r=n;break}if(s===a)return[-1,-1];for(i=o=s;++s<a;)null!=(n=t(e[s],s,e))&&(A>n&&(A=n,i=s),r<n&&(r=n,o=s))}return[i,o]}var ge=Object.prototype.hasOwnProperty;function ce(e,t){return ge.call(e,t)}var ue={};function le(e){var t,A={};function n(e){return ce(A,e)&&A[e]!==ue}var r={size:0,empty:0,object:A,has:n,get:function(e){return n(e)?A[e]:void 0},set:function(e,t){return n(e)||(++r.size,A[e]===ue&&--r.empty),A[e]=t,this},delete:function(e){return n(e)&&(--r.size,++r.empty,A[e]=ue),this},clear:function(){r.size=r.empty=0,r.object=A={}},test:function(e){return arguments.length?(t=e,r):t},clean:function(){var e={},n=0;for(var i in A){var o=A[i];o===ue||t&&t(o)||(e[i]=o,++n)}r.size=n,r.empty=0,r.object=A=e}};return e&&Object.keys(e).forEach((function(t){r.set(t,e[t])})),r}function Ie(e,t,A,n,r,i){if(!A&&0!==A)return i;var o,a=+A,s=e[0],g=G(e);g<s&&(o=s,s=g,g=o),o=Math.abs(t-s);var c=Math.abs(g-t);return o<c&&o<=a?n:c<=a?r:i}function Ce(e,t,A){var n=e.prototype=Object.create(t.prototype);return Object.defineProperty(n,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),oe(n,A)}function he(e,t,A,n){var r,i=t[0],o=t[t.length-1];return i>o&&(r=i,i=o,o=r),n=void 0===n||n,((A=void 0===A||A)?i<=e:i<e)&&(n?e<=o:e<o)}function fe(e){return"boolean"===typeof e}function de(e){return"[object Date]"===Object.prototype.toString.call(e)}function Be(e){return e&&z(e[Symbol.iterator])}function pe(e){return"number"===typeof e}function Ee(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function Qe(e){return"string"===typeof e}function ye(e,t,A){e&&(e=t?X(e).map((function(e){return e.replace(/\\(.)/g,"$1")})):X(e));var r,i=e&&e.length,a=A&&A.get||o,s=function(e){return a(t?[e]:c(e))};if(i)if(1===i){var g=s(e[0]);r=function(e){return""+g(e)}}else{var u=e.map(s);r=function(e){for(var t=""+u[0](e),A=0;++A<i;)t+="|"+u[A](e);return t}}else r=function(){return""};return n(r,e,"key")}function ve(e,t){var A=e[0],n=G(e),r=+t;return r?1===r?n:A+r*(n-A):A}function me(e){var t,A,n;e=+e||1e4;var r=function(){t={},A={},n=0},i=function(r,i){return++n>e&&(A=t,t={},n=1),t[r]=i};return r(),{clear:r,has:function(e){return ce(t,e)||ce(A,e)},get:function(e){return ce(t,e)?t[e]:ce(A,e)?i(e,A[e]):void 0},set:function(e,A){return ce(t,e)?t[e]=A:i(e,A)}}}function be(e,t,A,n){var r=t.length,i=A.length;if(!i)return t;if(!r)return A;for(var o=n||new t.constructor(r+i),a=0,s=0,g=0;a<r&&s<i;++g)o[g]=e(t[a],A[s])>0?A[s++]:t[a++];for(;a<r;++a,++g)o[g]=t[a];for(;s<i;++s,++g)o[g]=A[s];return o}function we(e,t){for(var A="";--t>=0;)A+=e;return A}function Se(e,t,A,n){var r=A||" ",i=e+"",o=t-i.length;return o<=0?i:"left"===n?we(r,o)+i:"center"===n?we(r,~~(o/2))+i+we(r,Math.ceil(o/2)):i+we(r,o)}function Fe(e){return e&&G(e)-e[0]||0}function Re(e){return b(e)?"["+e.map(Re)+"]":w(e)||Qe(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function De(e){return null==e||""===e?null:!(!e||"false"===e||"0"===e)&&!!e}var Ge=function(e){return pe(e)||de(e)?e:Date.parse(e)};function ke(e,t){return t=t||Ge,null==e||""===e?null:t(e)}function xe(e){return null==e||""===e?null:e+""}function Ne(e){for(var t={},A=e.length,n=0;n<A;++n)t[e[n]]=!0;return t}function Ue(e,t,A,n){var r=null!=n?n:"\u2026",i=e+"",o=i.length,a=Math.max(0,t-r.length);return o<=t?i:"left"===A?r+i.slice(o-a):"center"===A?i.slice(0,Math.ceil(a/2))+r+i.slice(o-~~(a/2)):i.slice(0,a)+r}function _e(e,t,A){if(e)if(t)for(var n=e.length,r=0;r<n;++r){var i=t(e[r]);i&&A(i,r,e)}else e.forEach(A)}},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(203);function r(e){if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=Object(n.a)(e))){var t=0,A=function(){};return{s:A,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:A}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,i,o=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(a)throw i}}}}},function(e,t,A){"use strict";A.d(t,"a",(function(){return i}));var n=A(2);function r(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function i(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?r(Object(A),!0).forEach((function(t){Object(n.a)(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):r(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}},function(e,t,A){"use strict";var n=A(393);var r=A(203),i=A(394);function o(e,t){return Object(n.a)(e)||function(e,t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e)){var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}}(e,t)||Object(r.a)(e,t)||Object(i.a)()}A.d(t,"a",(function(){return o}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(271);function r(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Object(n.a)(e,t)}},function(e,t,A){"use strict";var n=A(16),r=A(403);function i(e){return(i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=A(24);function a(e,t){return!t||"object"!==i(t)&&"function"!==typeof t?Object(o.a)(e):t}function s(e){return function(){var t,A=Object(n.a)(e);if(Object(r.a)()){var i=Object(n.a)(this).constructor;t=Reflect.construct(A,arguments,i)}else t=A.apply(this,arguments);return a(this,t)}}A.d(t,"a",(function(){return s}))},function(e,t,A){"use strict";var n=A(320);var r=A(395),i=A(203);function o(e){return function(e){if(Array.isArray(e))return Object(n.a)(e)}(e)||Object(r.a)(e)||Object(i.a)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}A.d(t,"a",(function(){return o}))},function(e,t,A){"use strict";function n(e,t,A,n,r,i,o){try{var a=e[i](o),s=a.value}catch(g){return void A(g)}a.done?t(s):Promise.resolve(s).then(n,r)}function r(e){return function(){var t=this,A=arguments;return new Promise((function(r,i){var o=e.apply(t,A);function a(e){n(o,r,i,a,s,"next",e)}function s(e){n(o,r,i,a,s,"throw",e)}a(void 0)}))}}A.d(t,"a",(function(){return r}))},function(e,t,A){e.exports=A(798)()},function(e,t,A){"use strict";function n(){return(n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e}).apply(this,arguments)}A.d(t,"a",(function(){return n}))},function(e,t){e.exports=function(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}},function(e,t,A){"use strict";function n(e){return(n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";var n=A(16);function r(e,t,A){return(r="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=Object(n.a)(e)););return e}(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(A):i.value}})(e,t,A||e)}A.d(t,"a",(function(){return r}))},function(e,t,A){"use strict";var n=new(A(1163).a)({id:"luma.gl"}),r=A(72),i=(A(572),A(196)),o=A(159),a=A(62),s=A(85);function g(e){var t=e.luma;if(e.canvas&&t){var A=t.canvasSizeInfo.clientWidth;return A?e.drawingBufferWidth/A:1}return 1}function c(e,t){var A=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=g(e),r=e.drawingBufferWidth,i=e.drawingBufferHeight;return l(t,n,r,i,A)}function u(e){var t="undefined"===typeof window?1:window.devicePixelRatio||1;return Number.isFinite(e)?e<=0?1:e:e?t:1}function l(e,t,A,n,r){var i,o=I(e[0],t,A),a=C(e[1],t,n,r),s=I(e[0]+1,t,A),g=s===A-1?s:s-1;return s=C(e[1]+1,t,n,r),r?(i=a,a=s=0===s?s:s+1):i=s===n-1?s:s-1,{x:o,y:a,width:Math.max(g-o+1,1),height:Math.max(i-a+1,1)}}function I(e,t,A){return Math.min(Math.round(e*t),A-1)}function C(e,t,A,n){return n?Math.max(0,A-1-Math.round(e*t)):Math.min(Math.round(e*t),A-1)}var h=Object(a.isBrowser)(),f=h&&"undefined"!==typeof document,d={webgl2:!0,webgl1:!0,throwOnError:!0,manageState:!0,canvas:null,debug:!1,width:800,height:600};function B(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(s.a)(h,"createGLContext only available in the browser.\nCreate your own headless context or use 'createHeadlessContext' from @luma.gl/test-utils");var t,A=e=Object.assign({},d,e),n=A.width,r=A.height;function i(t){if(e.throwOnError)throw new Error(t);return console.error(t),null}e.onError=i;var o=e,a=o.canvas,g=y({canvas:a,width:n,height:r,onError:i});return(t=Q(g,e))?(v(t=p(t,e)),t):null}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||e._instrumented)return e;e._version=e._version||m(e),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{};var A=t=Object.assign({},d,t),r=A.manageState,i=A.debug;return r&&Object(o.c)(e,{copyState:!1,log:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];return n.log.apply(n,[1].concat(t))()}}),h&&i&&(a.global.makeDebugContext?(e=a.global.makeDebugContext(e,t),n.level=Math.max(n.level,1)):n.warn('WebGL debug mode not activated. import "@luma.gl/debug" to enable.')()),e._instrumented=!0,e}function E(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e.canvas){var A=u(t.useDevicePixels);b(e,A,t)}else{var n=e.getExtension("STACKGL_resize_drawingbuffer");n&&"width"in t&&"height"in t&&n.resize(t.width,t.height)}}function Q(e,t){var A=t.onError,n=null,r=function(e){return n=e.statusMessage||n};e.addEventListener("webglcontextcreationerror",r,!1);var i=t.webgl1,o=void 0===i||i,a=t.webgl2,s=void 0===a||a,g=null;return s&&(g=(g=g||e.getContext("webgl2",t))||e.getContext("experimental-webgl2",t)),o&&(g=(g=g||e.getContext("webgl",t))||e.getContext("experimental-webgl",t)),e.removeEventListener("webglcontextcreationerror",r,!1),g?(t.onContextLost&&e.addEventListener("webglcontextlost",t.onContextLost,!1),t.onContextRestored&&e.addEventListener("webglcontextrestored",t.onContextRestored,!1),g):A("Failed to create ".concat(s&&!o?"WebGL2":"WebGL"," context: ").concat(n||"Unknown error"))}function y(e){var t,A=e.canvas,n=e.width,r=void 0===n?800:n,i=e.height,o=void 0===i?600:i,a=e.onError;"string"===typeof A?(f&&"complete"===document.readyState||a("createGLContext called on canvas '".concat(A,"' before page was loaded")),t=document.getElementById(A)):A?t=A:((t=document.createElement("canvas")).id="lumagl-canvas",t.style.width=Number.isFinite(r)?"".concat(r,"px"):"100%",t.style.height=Number.isFinite(o)?"".concat(o,"px"):"100%",document.body.insertBefore(t,document.body.firstChild));return t}function v(e){var t=Object(r.e)(e)?"WebGL2":"WebGL1",A=function(e){var t=e.getParameter(7936),A=e.getParameter(7937),n=e.getExtension("WEBGL_debug_renderer_info");return{vendor:n&&e.getParameter(n.UNMASKED_VENDOR_WEBGL||7936)||t,renderer:n&&e.getParameter(n.UNMASKED_RENDERER_WEBGL||7937)||A,vendorMasked:t,rendererMasked:A,version:e.getParameter(7938),shadingLanguageVersion:e.getParameter(35724)}}(e),i=A?"(".concat(A.vendor,",").concat(A.renderer,")"):"",o=e.debug?" debug":"";n.info(1,"".concat(t).concat(o," context ").concat(i))()}function m(e){return"undefined"!==typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext?2:1}function b(e,t,A){var r="width"in A?A.width:e.canvas.clientWidth,i="height"in A?A.height:e.canvas.clientHeight;r&&i||(n.log(1,"Canvas clientWidth/clientHeight is 0")(),t=1,r=e.canvas.width||1,i=e.canvas.height||1),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{};var o=e.luma.canvasSizeInfo;if(o.clientWidth!==r||o.clientHeight!==i||o.devicePixelRatio!==t){var a=t,s=Math.floor(r*a),g=Math.floor(i*a);e.canvas.width=s,e.canvas.height=g,e.drawingBufferWidth===s&&e.drawingBufferHeight===g||(n.warn("Device pixel ratio clamped")(),a=Math.min(e.drawingBufferWidth/r,e.drawingBufferHeight/i),e.canvas.width=Math.floor(r*a),e.canvas.height=Math.floor(i*a)),Object.assign(e.luma.canvasSizeInfo,{clientWidth:r,clientHeight:i,devicePixelRatio:t})}}A.d(t,"k",(function(){return n})),A.d(t,"i",(function(){return r.d})),A.d(t,"j",(function(){return r.e})),A.d(t,"g",(function(){return r.c})),A.d(t,"b",(function(){return r.b})),A.d(t,"a",(function(){return r.a})),A.d(t,"f",(function(){return i.a})),A.d(t,"n",(function(){return i.c})),A.d(t,"l",(function(){return i.b})),A.d(t,"o",(function(){return i.d})),A.d(t,"c",(function(){return B})),A.d(t,"m",(function(){return E})),A.d(t,"h",(function(){return p})),A.d(t,"e",(function(){return g})),A.d(t,"d",(function(){return c}))},function(e,t,A){"use strict";function n(e){var t,A,r="";if("string"===typeof e||"number"===typeof e)r+=e;else if("object"===typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(A=n(e[t]))&&(r&&(r+=" "),r+=A);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}t.a=function(){for(var e,t,A=0,r="";A<arguments.length;)(e=arguments[A++])&&(t=n(e))&&(r&&(r+=" "),r+=t);return r}},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(204);function r(e,t){if(null==e)return{};var A,r,i=Object(n.a)(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)A=o[r],t.indexOf(A)>=0||Object.prototype.propertyIsEnumerable.call(e,A)&&(i[A]=e[A])}return i}},function(e,t,A){"use strict";A.r(t),t.default={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,FUNC_ADD:32774,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,BLEND_COLOR:32773,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,VENDOR:7936,RENDERER:7937,VERSION:7938,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,BROWSER_DEFAULT_WEBGL:37444,STATIC_DRAW:35044,STREAM_DRAW:35040,DYNAMIC_DRAW:35048,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,CULL_FACE:2884,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,BLEND:3042,DEPTH_TEST:2929,DITHER:3024,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,SCISSOR_TEST:3089,STENCIL_TEST:2960,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CONTEXT_LOST_WEBGL:37442,CW:2304,CCW:2305,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,COMPILE_STATUS:35713,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_ATTRIBUTES:35721,ACTIVE_UNIFORMS:35718,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,ALWAYS:519,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,GEQUAL:518,NOTEQUAL:517,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,TEXTURE_WIDTH:4096,TEXTURE_HEIGHT:4097,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,MAX_3D_TEXTURE_SIZE:32883,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,MAX_TEXTURE_LOD_BIAS:34045,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,RASTERIZER_DISCARD:35977,VERTEX_ARRAY_BINDING:34229,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,MAX_ELEMENT_INDEX:36203,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,RGB9_E5:35901,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,RGB10_A2UI:36975,TEXTURE_IMMUTABLE_FORMAT:37167,TEXTURE_IMMUTABLE_LEVELS:33503,UNSIGNED_INT_2_10_10_10_REV:33640,UNSIGNED_INT_10F_11F_11F_REV:35899,UNSIGNED_INT_5_9_9_9_REV:35902,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,UNSIGNED_INT_24_8:34042,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,INT_2_10_10_10_REV:36255,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,MAX_SAMPLES:36183,SAMPLER_BINDING:35097,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,UNSIGNED_NORMALIZED:35863,SIGNED_NORMALIZED:36764,VERTEX_ATTRIB_ARRAY_INTEGER:35069,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,DEPTH24_STENCIL8:35056,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,COLOR:6144,DEPTH:6145,STENCIL:6146,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,INVALID_INDEX:4294967295,TIMEOUT_IGNORED:-1,MAX_CLIENT_WAIT_TIMEOUT_WEBGL:37447,VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE:35070,UNMASKED_VENDOR_WEBGL:37445,UNMASKED_RENDERER_WEBGL:37446,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047,TEXTURE_MAX_ANISOTROPY_EXT:34046,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_RGBA8_ETC2_EAC:37493,COMPRESSED_SRGB8_ETC2:37494,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37495,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37496,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37497,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGB_ATC_WEBGL:35986,COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL:35986,COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL:34798,UNSIGNED_INT_24_8_WEBGL:34042,HALF_FLOAT_OES:36193,RGBA32F_EXT:34836,RGB32F_EXT:34837,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT:33297,UNSIGNED_NORMALIZED_EXT:35863,MIN_EXT:32775,MAX_EXT:32776,SRGB_EXT:35904,SRGB_ALPHA_EXT:35906,SRGB8_ALPHA8_EXT:35907,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT:33296,FRAGMENT_SHADER_DERIVATIVE_HINT_OES:35723,COLOR_ATTACHMENT0_WEBGL:36064,COLOR_ATTACHMENT1_WEBGL:36065,COLOR_ATTACHMENT2_WEBGL:36066,COLOR_ATTACHMENT3_WEBGL:36067,COLOR_ATTACHMENT4_WEBGL:36068,COLOR_ATTACHMENT5_WEBGL:36069,COLOR_ATTACHMENT6_WEBGL:36070,COLOR_ATTACHMENT7_WEBGL:36071,COLOR_ATTACHMENT8_WEBGL:36072,COLOR_ATTACHMENT9_WEBGL:36073,COLOR_ATTACHMENT10_WEBGL:36074,COLOR_ATTACHMENT11_WEBGL:36075,COLOR_ATTACHMENT12_WEBGL:36076,COLOR_ATTACHMENT13_WEBGL:36077,COLOR_ATTACHMENT14_WEBGL:36078,COLOR_ATTACHMENT15_WEBGL:36079,DRAW_BUFFER0_WEBGL:34853,DRAW_BUFFER1_WEBGL:34854,DRAW_BUFFER2_WEBGL:34855,DRAW_BUFFER3_WEBGL:34856,DRAW_BUFFER4_WEBGL:34857,DRAW_BUFFER5_WEBGL:34858,DRAW_BUFFER6_WEBGL:34859,DRAW_BUFFER7_WEBGL:34860,DRAW_BUFFER8_WEBGL:34861,DRAW_BUFFER9_WEBGL:34862,DRAW_BUFFER10_WEBGL:34863,DRAW_BUFFER11_WEBGL:34864,DRAW_BUFFER12_WEBGL:34865,DRAW_BUFFER13_WEBGL:34866,DRAW_BUFFER14_WEBGL:34867,DRAW_BUFFER15_WEBGL:34868,MAX_COLOR_ATTACHMENTS_WEBGL:36063,MAX_DRAW_BUFFERS_WEBGL:34852,VERTEX_ARRAY_BINDING_OES:34229,QUERY_COUNTER_BITS_EXT:34916,CURRENT_QUERY_EXT:34917,QUERY_RESULT_EXT:34918,QUERY_RESULT_AVAILABLE_EXT:34919,TIME_ELAPSED_EXT:35007,TIMESTAMP_EXT:36392,GPU_DISJOINT_EXT:36795}},function(e,t,A){"use strict";A.r(t);var n=A(156);A.d(t,"Vector2",(function(){return n.g})),A.d(t,"Vector3",(function(){return n.h})),A.d(t,"Vector4",(function(){return n.i})),A.d(t,"Matrix3",(function(){return n.b})),A.d(t,"Matrix4",(function(){return n.c})),A.d(t,"Quaternion",(function(){return n.e})),A.d(t,"config",(function(){return n.u})),A.d(t,"configure",(function(){return n.v})),A.d(t,"formatValue",(function(){return n.A})),A.d(t,"isArray",(function(){return n.B})),A.d(t,"clone",(function(){return n.t})),A.d(t,"equals",(function(){return n.y})),A.d(t,"exactEquals",(function(){return n.z})),A.d(t,"toRadians",(function(){return n.H})),A.d(t,"toDegrees",(function(){return n.G})),A.d(t,"radians",(function(){return n.D})),A.d(t,"degrees",(function(){return n.x})),A.d(t,"sin",(function(){return n.E})),A.d(t,"cos",(function(){return n.w})),A.d(t,"tan",(function(){return n.F})),A.d(t,"asin",(function(){return n.o})),A.d(t,"acos",(function(){return n.n})),A.d(t,"atan",(function(){return n.q})),A.d(t,"clamp",(function(){return n.s})),A.d(t,"lerp",(function(){return n.C})),A.d(t,"withEpsilon",(function(){return n.I})),A.d(t,"checkNumber",(function(){return n.r})),A.d(t,"_MathUtils",(function(){return n.k})),A.d(t,"SphericalCoordinates",(function(){return n.f})),A.d(t,"Pose",(function(){return n.d})),A.d(t,"Euler",(function(){return n.a})),A.d(t,"assert",(function(){return n.p})),A.d(t,"_SphericalCoordinates",(function(){return n.m})),A.d(t,"_Pose",(function(){return n.l})),A.d(t,"_Euler",(function(){return n.j}))},function(e,t,A){"use strict";function n(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(e,t){if(!e)throw new Error(t||"luma.gl: assertion failed.")}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"p",(function(){return r})),A.d(t,"e",(function(){return i})),A.d(t,"a",(function(){return o})),A.d(t,"g",(function(){return a})),A.d(t,"o",(function(){return s})),A.d(t,"n",(function(){return g})),A.d(t,"j",(function(){return c})),A.d(t,"k",(function(){return u})),A.d(t,"l",(function(){return l})),A.d(t,"m",(function(){return I})),A.d(t,"d",(function(){return C})),A.d(t,"b",(function(){return h})),A.d(t,"c",(function(){return f})),A.d(t,"i",(function(){return d})),A.d(t,"h",(function(){return B})),A.d(t,"f",(function(){return p}));var n=A(31);function r(e,t){if(e===t){var A=t[1],n=t[2],r=t[3],i=t[6],o=t[7],a=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=A,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=i,e[11]=t[14],e[12]=r,e[13]=o,e[14]=a}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function i(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=t[4],a=t[5],s=t[6],g=t[7],c=t[8],u=t[9],l=t[10],I=t[11],C=t[12],h=t[13],f=t[14],d=t[15],B=A*a-n*o,p=A*s-r*o,E=A*g-i*o,Q=n*s-r*a,y=n*g-i*a,v=r*g-i*s,m=c*h-u*C,b=c*f-l*C,w=c*d-I*C,S=u*f-l*h,F=u*d-I*h,R=l*d-I*f,D=B*R-p*F+E*S+Q*w-y*b+v*m;return D?(D=1/D,e[0]=(a*R-s*F+g*S)*D,e[1]=(r*F-n*R-i*S)*D,e[2]=(h*v-f*y+d*Q)*D,e[3]=(l*y-u*v-I*Q)*D,e[4]=(s*w-o*R-g*b)*D,e[5]=(A*R-r*w+i*b)*D,e[6]=(f*E-C*v-d*p)*D,e[7]=(c*v-l*E+I*p)*D,e[8]=(o*F-a*w+g*m)*D,e[9]=(n*w-A*F-i*m)*D,e[10]=(C*y-h*E+d*B)*D,e[11]=(u*E-c*y-I*B)*D,e[12]=(a*b-o*S-s*m)*D,e[13]=(A*S-n*b+r*m)*D,e[14]=(h*p-C*Q-f*B)*D,e[15]=(c*Q-u*p+l*B)*D,e):null}function o(e){var t=e[0],A=e[1],n=e[2],r=e[3],i=e[4],o=e[5],a=e[6],s=e[7],g=e[8],c=e[9],u=e[10],l=e[11],I=e[12],C=e[13],h=e[14],f=e[15];return(t*o-A*i)*(u*f-l*h)-(t*a-n*i)*(c*f-l*C)+(t*s-r*i)*(c*h-u*C)+(A*a-n*o)*(g*f-l*I)-(A*s-r*o)*(g*h-u*I)+(n*s-r*a)*(g*C-c*I)}function a(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=t[9],I=t[10],C=t[11],h=t[12],f=t[13],d=t[14],B=t[15],p=A[0],E=A[1],Q=A[2],y=A[3];return e[0]=p*n+E*a+Q*u+y*h,e[1]=p*r+E*s+Q*l+y*f,e[2]=p*i+E*g+Q*I+y*d,e[3]=p*o+E*c+Q*C+y*B,p=A[4],E=A[5],Q=A[6],y=A[7],e[4]=p*n+E*a+Q*u+y*h,e[5]=p*r+E*s+Q*l+y*f,e[6]=p*i+E*g+Q*I+y*d,e[7]=p*o+E*c+Q*C+y*B,p=A[8],E=A[9],Q=A[10],y=A[11],e[8]=p*n+E*a+Q*u+y*h,e[9]=p*r+E*s+Q*l+y*f,e[10]=p*i+E*g+Q*I+y*d,e[11]=p*o+E*c+Q*C+y*B,p=A[12],E=A[13],Q=A[14],y=A[15],e[12]=p*n+E*a+Q*u+y*h,e[13]=p*r+E*s+Q*l+y*f,e[14]=p*i+E*g+Q*I+y*d,e[15]=p*o+E*c+Q*C+y*B,e}function s(e,t,A){var n,r,i,o,a,s,g,c,u,l,I,C,h=A[0],f=A[1],d=A[2];return t===e?(e[12]=t[0]*h+t[4]*f+t[8]*d+t[12],e[13]=t[1]*h+t[5]*f+t[9]*d+t[13],e[14]=t[2]*h+t[6]*f+t[10]*d+t[14],e[15]=t[3]*h+t[7]*f+t[11]*d+t[15]):(n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=t[9],I=t[10],C=t[11],e[0]=n,e[1]=r,e[2]=i,e[3]=o,e[4]=a,e[5]=s,e[6]=g,e[7]=c,e[8]=u,e[9]=l,e[10]=I,e[11]=C,e[12]=n*h+a*f+u*d+t[12],e[13]=r*h+s*f+l*d+t[13],e[14]=i*h+g*f+I*d+t[14],e[15]=o*h+c*f+C*d+t[15]),e}function g(e,t,A){var n=A[0],r=A[1],i=A[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function c(e,t,A,r){var i,o,a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w,S,F,R=r[0],D=r[1],G=r[2],k=Math.hypot(R,D,G);return k<n.b?null:(R*=k=1/k,D*=k,G*=k,i=Math.sin(A),a=1-(o=Math.cos(A)),s=t[0],g=t[1],c=t[2],u=t[3],l=t[4],I=t[5],C=t[6],h=t[7],f=t[8],d=t[9],B=t[10],p=t[11],E=R*R*a+o,Q=D*R*a+G*i,y=G*R*a-D*i,v=R*D*a-G*i,m=D*D*a+o,b=G*D*a+R*i,w=R*G*a+D*i,S=D*G*a-R*i,F=G*G*a+o,e[0]=s*E+l*Q+f*y,e[1]=g*E+I*Q+d*y,e[2]=c*E+C*Q+B*y,e[3]=u*E+h*Q+p*y,e[4]=s*v+l*m+f*b,e[5]=g*v+I*m+d*b,e[6]=c*v+C*m+B*b,e[7]=u*v+h*m+p*b,e[8]=s*w+l*S+f*F,e[9]=g*w+I*S+d*F,e[10]=c*w+C*S+B*F,e[11]=u*w+h*S+p*F,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function u(e,t,A){var n=Math.sin(A),r=Math.cos(A),i=t[4],o=t[5],a=t[6],s=t[7],g=t[8],c=t[9],u=t[10],l=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*r+g*n,e[5]=o*r+c*n,e[6]=a*r+u*n,e[7]=s*r+l*n,e[8]=g*r-i*n,e[9]=c*r-o*n,e[10]=u*r-a*n,e[11]=l*r-s*n,e}function l(e,t,A){var n=Math.sin(A),r=Math.cos(A),i=t[0],o=t[1],a=t[2],s=t[3],g=t[8],c=t[9],u=t[10],l=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*r-g*n,e[1]=o*r-c*n,e[2]=a*r-u*n,e[3]=s*r-l*n,e[8]=i*n+g*r,e[9]=o*n+c*r,e[10]=a*n+u*r,e[11]=s*n+l*r,e}function I(e,t,A){var n=Math.sin(A),r=Math.cos(A),i=t[0],o=t[1],a=t[2],s=t[3],g=t[4],c=t[5],u=t[6],l=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*r+g*n,e[1]=o*r+c*n,e[2]=a*r+u*n,e[3]=s*r+l*n,e[4]=g*r-i*n,e[5]=c*r-o*n,e[6]=u*r-a*n,e[7]=l*r-s*n,e}function C(e,t){var A=t[0],n=t[1],r=t[2],i=t[4],o=t[5],a=t[6],s=t[8],g=t[9],c=t[10];return e[0]=Math.hypot(A,n,r),e[1]=Math.hypot(i,o,a),e[2]=Math.hypot(s,g,c),e}function h(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=A+A,a=n+n,s=r+r,g=A*o,c=n*o,u=n*a,l=r*o,I=r*a,C=r*s,h=i*o,f=i*a,d=i*s;return e[0]=1-u-C,e[1]=c+d,e[2]=l-f,e[3]=0,e[4]=c-d,e[5]=1-g-C,e[6]=I+h,e[7]=0,e[8]=l+f,e[9]=I-h,e[10]=1-g-u,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function f(e,t,A,n,r,i,o){var a=1/(A-t),s=1/(r-n),g=1/(i-o);return e[0]=2*i*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*i*s,e[6]=0,e[7]=0,e[8]=(A+t)*a,e[9]=(r+n)*s,e[10]=(o+i)*g,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*i*2*g,e[15]=0,e}function d(e,t,A,n,r){var i,o=1/Math.tan(t/2);return e[0]=o/A,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=r&&r!==1/0?(i=1/(n-r),e[10]=(r+n)*i,e[14]=2*r*n*i):(e[10]=-1,e[14]=-2*n),e}function B(e,t,A,n,r,i,o){var a=1/(t-A),s=1/(n-r),g=1/(i-o);return e[0]=-2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*g,e[11]=0,e[12]=(t+A)*a,e[13]=(r+n)*s,e[14]=(o+i)*g,e[15]=1,e}function p(e,t,A,r){var i,o,a,s,g,c,u,l,I,C,h=t[0],f=t[1],d=t[2],B=r[0],p=r[1],E=r[2],Q=A[0],y=A[1],v=A[2];return Math.abs(h-Q)<n.b&&Math.abs(f-y)<n.b&&Math.abs(d-v)<n.b?function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}(e):(u=h-Q,l=f-y,I=d-v,i=p*(I*=C=1/Math.hypot(u,l,I))-E*(l*=C),o=E*(u*=C)-B*I,a=B*l-p*u,(C=Math.hypot(i,o,a))?(i*=C=1/C,o*=C,a*=C):(i=0,o=0,a=0),s=l*a-I*o,g=I*i-u*a,c=u*o-l*i,(C=Math.hypot(s,g,c))?(s*=C=1/C,g*=C,c*=C):(s=0,g=0,c=0),e[0]=i,e[1]=s,e[2]=u,e[3]=0,e[4]=o,e[5]=g,e[6]=l,e[7]=0,e[8]=a,e[9]=c,e[10]=I,e[11]=0,e[12]=-(i*h+o*f+a*d),e[13]=-(s*h+g*f+c*d),e[14]=-(u*h+l*f+I*d),e[15]=1,e)}},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=A.n(i),a=(A(13),A(413)),s=A.n(a),g=A(1164),c=A(1250),u=A(532),l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(A){var i=t.defaultTheme,a=t.withTheme,l=void 0!==a&&a,I=t.name,C=Object(r.a)(t,["defaultTheme","withTheme","name"]);var h=I,f=Object(g.a)(e,Object(n.a)({defaultTheme:i,Component:A,name:I||A.displayName,classNamePrefix:h},C)),d=o.a.forwardRef((function(e,t){e.classes;var a,s=e.innerRef,g=Object(r.a)(e,["classes","innerRef"]),C=f(Object(n.a)({},A.defaultProps,e)),h=g;return("string"===typeof I||l)&&(a=Object(u.a)()||i,I&&(h=Object(c.a)({theme:a,name:I,props:g})),l&&!h.theme&&(h.theme=a)),o.a.createElement(A,Object(n.a)({ref:s||t,classes:C},h))}));return s()(d,A),d}},I=A(205);t.a=function(e,t){return l(e,Object(n.a)({defaultTheme:I.a},t))}},function(e,t,A){"use strict";A.d(t,"b",(function(){return r})),A.d(t,"g",(function(){return i})),A.d(t,"e",(function(){return o})),A.d(t,"i",(function(){return a})),A.d(t,"d",(function(){return s})),A.d(t,"c",(function(){return g})),A.d(t,"h",(function(){return c})),A.d(t,"p",(function(){return u})),A.d(t,"o",(function(){return l})),A.d(t,"q",(function(){return I})),A.d(t,"j",(function(){return C})),A.d(t,"k",(function(){return h})),A.d(t,"l",(function(){return f})),A.d(t,"a",(function(){return d})),A.d(t,"n",(function(){return B})),A.d(t,"f",(function(){return p})),A.d(t,"m",(function(){return E}));var n=A(31);function r(){var e=new n.a(3);return n.a!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function i(e){var t=e[0],A=e[1],n=e[2];return Math.hypot(t,A,n)}function o(e,t,A){var r=new n.a(3);return r[0]=e,r[1]=t,r[2]=A,r}function a(e,t){var A=t[0],n=t[1],r=t[2],i=A*A+n*n+r*r;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function s(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function g(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[0],a=A[1],s=A[2];return e[0]=r*s-i*a,e[1]=i*o-n*s,e[2]=n*a-r*o,e}function c(e,t,A,n){var r=t[0],i=t[1],o=t[2];return e[0]=r+n*(A[0]-r),e[1]=i+n*(A[1]-i),e[2]=o+n*(A[2]-o),e}function u(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[3]*n+A[7]*r+A[11]*i+A[15];return o=o||1,e[0]=(A[0]*n+A[4]*r+A[8]*i+A[12])/o,e[1]=(A[1]*n+A[5]*r+A[9]*i+A[13])/o,e[2]=(A[2]*n+A[6]*r+A[10]*i+A[14])/o,e}function l(e,t,A){var n=t[0],r=t[1],i=t[2];return e[0]=n*A[0]+r*A[3]+i*A[6],e[1]=n*A[1]+r*A[4]+i*A[7],e[2]=n*A[2]+r*A[5]+i*A[8],e}function I(e,t,A){var n=A[0],r=A[1],i=A[2],o=A[3],a=t[0],s=t[1],g=t[2],c=r*g-i*s,u=i*a-n*g,l=n*s-r*a,I=r*l-i*u,C=i*c-n*l,h=n*u-r*c,f=2*o;return c*=f,u*=f,l*=f,I*=2,C*=2,h*=2,e[0]=a+c+I,e[1]=s+u+C,e[2]=g+l+h,e}function C(e,t,A,n){var r=[],i=[];return r[0]=t[0]-A[0],r[1]=t[1]-A[1],r[2]=t[2]-A[2],i[0]=r[0],i[1]=r[1]*Math.cos(n)-r[2]*Math.sin(n),i[2]=r[1]*Math.sin(n)+r[2]*Math.cos(n),e[0]=i[0]+A[0],e[1]=i[1]+A[1],e[2]=i[2]+A[2],e}function h(e,t,A,n){var r=[],i=[];return r[0]=t[0]-A[0],r[1]=t[1]-A[1],r[2]=t[2]-A[2],i[0]=r[2]*Math.sin(n)+r[0]*Math.cos(n),i[1]=r[1],i[2]=r[2]*Math.cos(n)-r[0]*Math.sin(n),e[0]=i[0]+A[0],e[1]=i[1]+A[1],e[2]=i[2]+A[2],e}function f(e,t,A,n){var r=[],i=[];return r[0]=t[0]-A[0],r[1]=t[1]-A[1],r[2]=t[2]-A[2],i[0]=r[0]*Math.cos(n)-r[1]*Math.sin(n),i[1]=r[0]*Math.sin(n)+r[1]*Math.cos(n),i[2]=r[2],e[0]=i[0]+A[0],e[1]=i[1]+A[1],e[2]=i[2]+A[2],e}function d(e,t){var A=e[0],n=e[1],r=e[2],i=t[0],o=t[1],a=t[2],g=Math.sqrt(A*A+n*n+r*r)*Math.sqrt(i*i+o*o+a*a),c=g&&s(e,t)/g;return Math.acos(Math.min(Math.max(c,-1),1))}var B=function(e,t,A){return e[0]=t[0]-A[0],e[1]=t[1]-A[1],e[2]=t[2]-A[2],e},p=i,E=function(e){var t=e[0],A=e[1],n=e[2];return t*t+A*A+n*n};!function(){var e=r()}()},function(e,t,A){"use strict";A.d(t,"b",(function(){return n})),A.d(t,"a",(function(){return r})),A.d(t,"c",(function(){return i}));var n=1e-6,r="undefined"!==typeof Float32Array?Float32Array:Array,i=Math.random;Math.PI;Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)})},function(e,t,A){"use strict";A.d(t,"b",(function(){return n})),A.d(t,"a",(function(){return r})),A.d(t,"c",(function(){return i}));var n=1e-6,r="undefined"!==typeof Float32Array?Float32Array:Array,i=Math.random;Math.PI;Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)})},function(e,t,A){"use strict";A.d(t,"f",(function(){return s})),A.d(t,"g",(function(){return g})),A.d(t,"l",(function(){return u})),A.d(t,"m",(function(){return l})),A.d(t,"e",(function(){return I})),A.d(t,"s",(function(){return h})),A.d(t,"r",(function(){return f})),A.d(t,"o",(function(){return d})),A.d(t,"i",(function(){return B})),A.d(t,"p",(function(){return p})),A.d(t,"h",(function(){return E})),A.d(t,"q",(function(){return Q})),A.d(t,"b",(function(){return y})),A.d(t,"a",(function(){return v})),A.d(t,"c",(function(){return m})),A.d(t,"d",(function(){return b})),A.d(t,"n",(function(){return w})),A.d(t,"j",(function(){return S})),A.d(t,"k",(function(){return F})),A.d(t,"t",(function(){return R}));var n=A(91),r=A(11),i=A(97),o=1/Math.PI*180,a=1/180*Math.PI,s={};function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in e)Object(i.a)(t in s),s[t]=e[t];return s}function c(e){return Math.round(e/s.EPSILON)*s.EPSILON}function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.precision,n=void 0===A?s.precision||4:A;return e=c(e),"".concat(parseFloat(e.toPrecision(n)))}function l(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function I(e){return e.clone?e.clone():Object(n.a)(Array,Object(r.a)(e))}function C(e,t,A){if(l(e)){A=A||((r=e).clone?r.clone():new Array(r.length));for(var n=0;n<A.length&&n<e.length;++n)A[n]=t(e[n],n,A);return A}var r;return t(e)}function h(e){return d(e)}function f(e){return B(e)}function d(e,t){return C(e,(function(e){return e*a}),t)}function B(e,t){return C(e,(function(e){return e*o}),t)}function p(e){return C(e,(function(e){return Math.sin(e)}))}function E(e){return C(e,(function(e){return Math.cos(e)}))}function Q(e){return C(e,(function(e){return Math.tan(e)}))}function y(e){return C(e,(function(e){return Math.asin(e)}))}function v(e){return C(e,(function(e){return Math.acos(e)}))}function m(e){return C(e,(function(e){return Math.atan(e)}))}function b(e,t,A){return C(e,(function(e){return Math.max(t,Math.min(A,e))}))}function w(e,t,A){return l(e)?e.map((function(e,n){return w(e,t[n],A)})):A*t+(1-A)*e}function S(e,t,A){var n=s.EPSILON;A&&(s.EPSILON=A);try{if(e===t)return!0;if(l(e)&&l(t)){if(e.length!==t.length)return!1;for(var r=0;r<e.length;++r)if(!S(e[r],t[r]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):!(!Number.isFinite(e)||!Number.isFinite(t))&&Math.abs(e-t)<=s.EPSILON*Math.max(1,Math.abs(e),Math.abs(t))}finally{s.EPSILON=n}}function F(e,t){if(e===t)return!0;if(e&&"object"===typeof e&&t&&"object"===typeof t){if(e.constructor!==t.constructor)return!1;if(e.exactEquals)return e.exactEquals(t)}if(l(e)&&l(t)){if(e.length!==t.length)return!1;for(var A=0;A<e.length;++A)if(!F(e[A],t[A]))return!1;return!0}return!1}function R(e,t){var A,n=s.EPSILON;s.EPSILON=e;try{A=t()}finally{s.EPSILON=n}return A}s.EPSILON=1e-12,s.debug=!1,s.precision=4,s.printTypes=!1,s.printDegrees=!1,s.printRowMajor=!0},function(e,t,A){"use strict";A.d(t,"a",(function(){return i})),A.d(t,"b",(function(){return o})),A.d(t,"c",(function(){return s}));var n=A(32);function r(e,t){if(e.length!==t)return!1;for(var A=0;A<e.length;++A)if(!Number.isFinite(e[A]))return!1;return!0}function i(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(e));return e}function o(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(n.f.debug&&!r(e,t))throw new Error("math.gl: ".concat(A," some fields set to invalid numbers'"));return e}var a={};function s(e,t){a[e]||(a[e]=!0,console.warn("".concat(e," has been removed in version ").concat(t,", see upgrade guide for more information")))}},function(e,t,A){"use strict";A.d(t,"f",(function(){return s})),A.d(t,"p",(function(){return g})),A.d(t,"j",(function(){return c})),A.d(t,"k",(function(){return u})),A.d(t,"l",(function(){return l})),A.d(t,"m",(function(){return I})),A.d(t,"b",(function(){return C})),A.d(t,"q",(function(){return h})),A.d(t,"g",(function(){return f})),A.d(t,"c",(function(){return d})),A.d(t,"e",(function(){return B})),A.d(t,"a",(function(){return p})),A.d(t,"o",(function(){return E})),A.d(t,"d",(function(){return Q})),A.d(t,"i",(function(){return y})),A.d(t,"h",(function(){return v})),A.d(t,"r",(function(){return m})),A.d(t,"n",(function(){return w}));var n=A(31),r=A(58),i=A(29),o=A(56);function a(){var e=new n.a(4);return n.a!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function s(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function g(e,t,A){A*=.5;var n=Math.sin(A);return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=Math.cos(A),e}function c(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3],a=A[0],s=A[1],g=A[2],c=A[3];return e[0]=n*c+o*a+r*g-i*s,e[1]=r*c+o*s+i*a-n*g,e[2]=i*c+o*g+n*s-r*a,e[3]=o*c-n*a-r*s-i*g,e}function u(e,t,A){A*=.5;var n=t[0],r=t[1],i=t[2],o=t[3],a=Math.sin(A),s=Math.cos(A);return e[0]=n*s+o*a,e[1]=r*s+i*a,e[2]=i*s-r*a,e[3]=o*s-n*a,e}function l(e,t,A){A*=.5;var n=t[0],r=t[1],i=t[2],o=t[3],a=Math.sin(A),s=Math.cos(A);return e[0]=n*s-i*a,e[1]=r*s+o*a,e[2]=i*s+n*a,e[3]=o*s-r*a,e}function I(e,t,A){A*=.5;var n=t[0],r=t[1],i=t[2],o=t[3],a=Math.sin(A),s=Math.cos(A);return e[0]=n*s+r*a,e[1]=r*s-n*a,e[2]=i*s+o*a,e[3]=o*s-i*a,e}function C(e,t){var A=t[0],n=t[1],r=t[2];return e[0]=A,e[1]=n,e[2]=r,e[3]=Math.sqrt(Math.abs(1-A*A-n*n-r*r)),e}function h(e,t,A,r){var i,o,a,s,g,c=t[0],u=t[1],l=t[2],I=t[3],C=A[0],h=A[1],f=A[2],d=A[3];return(o=c*C+u*h+l*f+I*d)<0&&(o=-o,C=-C,h=-h,f=-f,d=-d),1-o>n.b?(i=Math.acos(o),a=Math.sin(i),s=Math.sin((1-r)*i)/a,g=Math.sin(r*i)/a):(s=1-r,g=r),e[0]=s*c+g*C,e[1]=s*u+g*h,e[2]=s*l+g*f,e[3]=s*I+g*d,e}function f(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=A*A+n*n+r*r+i*i,a=o?1/o:0;return e[0]=-A*a,e[1]=-n*a,e[2]=-r*a,e[3]=i*a,e}function d(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function B(e,t){var A,n=t[0]+t[4]+t[8];if(n>0)A=Math.sqrt(n+1),e[3]=.5*A,A=.5/A,e[0]=(t[5]-t[7])*A,e[1]=(t[6]-t[2])*A,e[2]=(t[1]-t[3])*A;else{var r=0;t[4]>t[0]&&(r=1),t[8]>t[3*r+r]&&(r=2);var i=(r+1)%3,o=(r+2)%3;A=Math.sqrt(t[3*r+r]-t[3*i+i]-t[3*o+o]+1),e[r]=.5*A,A=.5/A,e[3]=(t[3*i+o]-t[3*o+i])*A,e[i]=(t[3*i+r]+t[3*r+i])*A,e[o]=(t[3*o+r]+t[3*r+o])*A}return e}o.b,o.g,o.c,o.l;var p=o.a,E=o.k,Q=o.d,y=o.i,v=o.h,m=o.m,b=o.j,w=(o.f,o.e,function(){var e=i.b(),t=i.e(1,0,0),A=i.e(0,1,0);return function(n,r,o){var a=i.d(r,o);return a<-.999999?(i.c(e,t,r),i.f(e)<1e-6&&i.c(e,A,r),i.i(e,e),g(n,e,Math.PI),n):a>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(i.c(e,r,o),n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=1+a,b(n,n))}}());(function(){var e=a(),t=a()})(),function(){var e=r.a()}()},function(e,t,A){"use strict";A.r(t);var n=A(36),r=A(318),i=A(383),o=A(222),a=A(7),s=A(1),g=A(4),c=A(324),u=[255,255,255],l=[0,0,1],I=[0,0,1],C=0,h=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(s.a)(this,e);var A=t.color,n=void 0===A?u:A,r=t.intensity,i=void 0===r?1:r,o=t.position,g=void 0===o?I:o;this.id=t.id||"point-".concat(C++),this.color=n,this.intensity=i,this.type="point",this.position=g,this.attenuation=f(t),this.projectedLight=Object(a.a)({},this)}return Object(g.a)(e,[{key:"getProjectedLight",value:function(e){var t=e.layer,A=this.projectedLight,r=t.context.viewport,i=t.props,o=i.coordinateSystem,a=i.coordinateOrigin,s=Object(c.b)(this.position,{viewport:r,coordinateSystem:o,coordinateOrigin:a,fromCoordinateSystem:r.isGeospatial?n.a.LNGLAT:n.a.CARTESIAN,fromCoordinateOrigin:[0,0,0]});return A.color=this.color,A.intensity=this.intensity,A.position=s,A}}]),e}();function f(e){return"attenuation"in e?e.attenuation:"intensity"in e?[0,0,e.intensity]:l}var d=A(9),B=A(10),p=A(274),E=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(){return Object(s.a)(this,A),t.apply(this,arguments)}return Object(g.a)(A,[{key:"getProjectedLight",value:function(e){var t=e.layer,A=this.projectedLight,n=t.context.viewport,r=t.props,i=r.coordinateSystem,o=r.coordinateOrigin,a=r.modelMatrix,s=Object(p.b)({viewport:n,modelMatrix:a,coordinateSystem:i,coordinateOrigin:o}).project_uCameraPosition;return A.color=this.color,A.intensity=this.intensity,A.position=s,A}}]),A}(h),Q=A(8),y=A(83),v=Math.PI/180,m=23.4397*v;function b(e,t,A){var n=v*-A,r=v*t,i=function(e){return function(e){return e/864e5-.5+2440588}(e)-2451545}(e),o=function(e){var t=function(e){var t=e,A=v*(1.9148*Math.sin(t)+.02*Math.sin(2*t)+3e-4*Math.sin(3*t));return t+A+102.9372*v+Math.PI}((A=e,v*(357.5291+.98560028*A)));var A;return{declination:F(t,0),rightAscension:S(t,0)}}(i),a=function(e,t){return v*(280.147+360.9856235*e)-t}(i,n)-o.rightAscension;return{azimuth:R(a,r,o.declination),altitude:D(a,r,o.declination)}}function w(e,t,A){var n=b(e,t,A),r=n.azimuth,i=n.altitude;return[Math.sin(r)*Math.cos(i),Math.cos(r)*Math.cos(i),-Math.sin(i)]}function S(e,t){var A=e;return Math.atan2(Math.sin(A)*Math.cos(m)-Math.tan(t)*Math.sin(m),Math.cos(A))}function F(e,t){var A=e;return Math.asin(Math.sin(t)*Math.cos(m)+Math.cos(t)*Math.sin(m)*Math.sin(A))}function R(e,t,A){var n=e,r=t,i=A;return Math.atan2(Math.sin(n),Math.cos(n)*Math.sin(r)-Math.tan(i)*Math.cos(r))}function D(e,t,A){var n=e,r=t,i=A;return Math.asin(Math.sin(r)*Math.sin(i)+Math.cos(r)*Math.cos(i)*Math.cos(n))}var G=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(e){var n,r=e.timestamp,i=Object(y.a)(e,["timestamp"]);return Object(s.a)(this,A),(n=t.call(this,i)).timestamp=r,n}return Object(g.a)(A,[{key:"getProjectedLight",value:function(e){var t=e.layer.context.viewport;if(t.resolution>0){var A=w(this.timestamp,0,0),n=Object(Q.a)(A,3),r=n[0],i=n[1],o=n[2];this.direction=[r,-o,i]}else{var a=t.latitude,s=t.longitude;this.direction=w(this.timestamp,a,s)}return this}}]),A}(o.a),k=A(6),x=A(198),N=A(1257),U=A(18),_=A(428),M=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(s.a)(this,A),n=t.call(this,e,r);var i=r.module,o=r.fs,a=r.id;return n.model=new N.a(e,{id:a,fs:o,modules:[i]}),n}return Object(g.a)(A,[{key:"render",value:function(e){var t=this,A=this.gl;Object(U.n)(A,{viewport:[0,0,A.drawingBufferWidth,A.drawingBufferHeight]}),Object(U.o)(A,{framebuffer:e.outputBuffer,clearColor:[0,0,0,0]},(function(){return t._renderPass(A,e)}))}},{key:"delete",value:function(){this.model.delete(),this.model=null}},{key:"_renderPass",value:function(e,t){var A=t.inputBuffer;t.outputBuffer;Object(_.a)(e,{color:!0}),this.model.draw({moduleSettings:this.props.moduleSettings,uniforms:{texture:A,texSize:[A.width,A.height]},parameters:{depthWrite:!1,depthTest:!1}})}}]),A}(A(410).a),O=A(531),L=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(s.a)(this,A),(n=t.call(this,r)).id="".concat(e.name,"-pass"),Object(O.b)(e),n.module=e,n}return Object(g.a)(A,[{key:"postRender",value:function(e,t){this.passes||(this.passes=function(e,t,A,n){if(t.filter||t.sampler){var r=H(t);return[new M(e,{id:A,module:t,fs:r,moduleSettings:n})]}return(t.passes||[]).map((function(r,i){var o=H(t,r),a="".concat(A,"-").concat(i);return new M(e,{id:a,module:t,fs:o,moduleSettings:n})}))}(e,this.module,this.id,this.props));for(var A=t.target,n=t.inputBuffer,r=t.swapBuffer,i=0;i<this.passes.length;i++){A&&i===this.passes.length-1&&(r=A),this.passes[i].render({inputBuffer:n,outputBuffer:r});var o=r;r=n,n=o}return n}},{key:"cleanup",value:function(){if(this.passes){var e,t=Object(k.a)(this.passes);try{for(t.s();!(e=t.n()).done;){e.value.delete()}}catch(A){t.e(A)}finally{t.f()}this.passes=null}}}]),A}(x.a);var T=function(e){return"uniform sampler2D texture;\nuniform vec2 texSize;\n\nvarying vec2 position;\nvarying vec2 coordinate;\nvarying vec2 uv;\n\nvoid main() {\n vec2 texCoord = coordinate;\n\n gl_FragColor = texture2D(texture, texCoord);\n gl_FragColor = ".concat(e,"(gl_FragColor, texSize, texCoord);\n}\n")},Z=function(e){return"uniform sampler2D texture;\nuniform vec2 texSize;\n\nvarying vec2 position;\nvarying vec2 coordinate;\nvarying vec2 uv;\n\nvoid main() {\n vec2 texCoord = coordinate;\n\n gl_FragColor = ".concat(e,"(texture, texSize, texCoord);\n}\n")};function H(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(t.filter){var A="string"===typeof t.filter?t.filter:"".concat(e.name,"_filterColor");return T(A)}if(t.sampler){var n="string"===typeof t.sampler?t.sampler:"".concat(e.name,"_sampleColor");return Z(n)}return null}var Y=A(199),J=A(644),j=A(390),P=A(385),V=A(384),K=A(511),W=A(392),X=A(96),q=A(263),z=A(23),$=A(29),ee=A(56),te=Math.PI/180,Ae=180/Math.PI;function ne(){var e=Math.PI/180*256;return{unitsPerMeter:[256/6370972,256/6370972,256/6370972],unitsPerMeter2:[0,0,0],metersPerUnit:[24886.609375,24886.609375,24886.609375],unitsPerDegree:[e,e,256/6370972],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/e,1/e,24886.609375]}}var re=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(s.a)(this,A);var r=n.latitude,i=void 0===r?0:r,o=n.longitude,g=void 0===o?0:o,c=n.zoom,u=void 0===c?11:c,l=n.nearZMultiplier,I=void 0===l?.1:l,C=n.farZMultiplier,h=void 0===C?2:C,f=n.resolution,d=void 0===f?10:f,B=n.width,p=n.height,E=n.altitude,Q=void 0===E?1.5:E;B=B||1,p=p||1,Q=Math.max(.75,Q);var y=(new z.Matrix4).lookAt({eye:[0,-Q,0],up:[0,0,1]}),v=Math.pow(2,u);y.rotateX(i*te),y.rotateZ(-g*te),y.scale(v/p);var m=Math.atan(.5/Q),b=512*v/p;return(e=t.call(this,Object(a.a)({},n,{width:B,height:p,viewMatrix:y,longitude:g,latitude:i,zoom:u,fovyRadians:2*m,aspect:B/p,focalDistance:Q,near:I,far:Math.min(2,1/b+1)*Q*h}))).resolution=d,e.distanceScales=ne(),e}return Object(g.a)(A,[{key:"getDistanceScales",value:function(){return this.distanceScales}},{key:"getBounds",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={targetZ:e.z||0},A=this.unproject([0,this.height/2],t),n=this.unproject([this.width/2,0],t),r=this.unproject([this.width,this.height/2],t),i=this.unproject([this.width/2,this.height],t);return r[0]<this.longitude&&(r[0]+=360),A[0]>this.longitude&&(A[0]-=360),[Math.min(A[0],r[0],n[0],i[0]),Math.min(A[1],r[1],n[1],i[1]),Math.max(A[0],r[0],n[0],i[0]),Math.max(A[1],r[1],n[1],i[1])]}},{key:"unproject",value:function(e){var t,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=A.topLeft,r=void 0===n||n,i=A.targetZ,o=Object(Q.a)(e,3),a=o[0],s=o[1],g=o[2],c=r?s:this.height-s,u=this.pixelUnprojectionMatrix;if(Number.isFinite(g))t=ie(u,[a,c,g,1]);else{var l=ie(u,[a,c,-1,1]),I=ie(u,[a,c,1,1]),C=256*((i||0)/6370972+1),h=$.m($.n([],l,I)),f=$.m(l),d=$.m(I),B=(4*f*d-Math.pow(h-f-d,2))/16,p=4*B/h,E=Math.sqrt(f-p),y=Math.sqrt(Math.max(0,C*C-p)),v=(E-y)/Math.sqrt(h);t=$.h([],l,I,v)}var m=this.unprojectPosition(t),b=Object(Q.a)(m,3),w=b[0],S=b[1],F=b[2];return Number.isFinite(g)?[w,S,F]:Number.isFinite(i)?[w,S,i]:[w,S]}},{key:"projectPosition",value:function(e){var t=Object(Q.a)(e,3),A=t[0],n=t[1],r=t[2],i=void 0===r?0:r,o=A*te,a=n*te,s=Math.cos(a),g=256*(i/6370972+1);return[Math.sin(o)*s*g,-Math.cos(o)*s*g,Math.sin(a)*g]}},{key:"unprojectPosition",value:function(e){var t=Object(Q.a)(e,3),A=t[0],n=t[1],r=t[2],i=$.f(e),o=Math.asin(r/i);return[Math.atan2(A,-n)*Ae,o*Ae,6370972*(i/256-1)]}},{key:"projectFlat",value:function(e){return e}},{key:"unprojectFlat",value:function(e){return e}},{key:"panByPosition",value:function(e,t){var A=this.unproject(t);return{longitude:e[0]-A[0]+this.longitude,latitude:e[1]-A[1]+this.latitude}}},{key:"projectionMode",get:function(){return n.c.GLOBE}}]),A}(X.a);function ie(e,t){var A=ee.n([],t,e);return ee.k(A,A,1/A[3]),A}var oe=A(576),ae=A(223),se=A(575),ge=A(655),ce=A(276),ue=A(134),le=A(381),Ie=A(42),Ce=A(133),he=A(275),fe=A(84),de={position:[0,0,0],pitch:0,bearing:0,maxPitch:90,minPitch:-90},Be=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(e){var n,r=e.width,i=e.height,o=e.position,a=void 0===o?de.position:o,g=e.bearing,c=void 0===g?de.bearing:g,u=e.pitch,l=void 0===u?de.pitch:u,I=e.longitude,C=e.latitude,h=e.maxPitch,f=void 0===h?de.maxPitch:h,d=e.minPitch,B=void 0===d?de.minPitch:d,p=e.startRotatePos,E=e.startBearing,Q=e.startPitch,y=e.startZoomPosition,v=e.startZoom;return Object(s.a)(this,A),(n=t.call(this,{width:r,height:i,position:a,bearing:c,pitch:l,longitude:I,latitude:C,maxPitch:f,minPitch:B}))._state={startRotatePos:p,startBearing:E,startPitch:Q,startZoomPosition:y,startZoom:v},n}return Object(g.a)(A,[{key:"getDirection",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new z._SphericalCoordinates({bearing:this._viewportProps.bearing,pitch:e?90:90+this._viewportProps.pitch}),A=t.toVector3().normalize();return A}},{key:"panStart",value:function(){return this}},{key:"pan",value:function(){return this}},{key:"panEnd",value:function(){return this}},{key:"rotateStart",value:function(e){var t=e.pos;return this._getUpdatedState({startRotatePos:t,startBearing:this._viewportProps.bearing,startPitch:this._viewportProps.pitch})}},{key:"rotate",value:function(e){var t,A=e.pos,n=e.deltaAngleX,r=void 0===n?0:n,i=e.deltaAngleY,o=void 0===i?0:i,a=this._state,s=a.startRotatePos,g=a.startBearing,c=a.startPitch,u=this._viewportProps,l=u.width,I=u.height;if(!s||!Number.isFinite(g)||!Number.isFinite(c))return this;A?t={bearing:g-180*((A[0]-s[0])/l),pitch:c-90*((A[1]-s[1])/I)}:t={bearing:g-r,pitch:c-o};return this._getUpdatedState(t)}},{key:"rotateEnd",value:function(){return this._getUpdatedState({startRotatePos:null,startBearing:null,startPitch:null})}},{key:"zoomStart",value:function(){return this._getUpdatedState({startZoomPosition:this._viewportProps.position,startZoom:this._viewportProps.zoom})}},{key:"zoom",value:function(e){var t=e.scale,A=this._state.startZoomPosition;A||(A=this._viewportProps.position);var n=this.getDirection();return this._move(n,20*Math.log2(t),A)}},{key:"zoomEnd",value:function(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}},{key:"moveLeft",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20,t=this.getDirection(!0);return this._move(t.rotateZ({radians:Math.PI/2}),e)}},{key:"moveRight",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20,t=this.getDirection(!0);return this._move(t.rotateZ({radians:-Math.PI/2}),e)}},{key:"moveUp",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20,t=this.getDirection(!0);return this._move(t,e)}},{key:"moveDown",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20,t=this.getDirection(!0);return this._move(t.negate(),e)}},{key:"rotateLeft",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;return this._getUpdatedState({bearing:this._viewportProps.bearing-e})}},{key:"rotateRight",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;return this._getUpdatedState({bearing:this._viewportProps.bearing+e})}},{key:"rotateUp",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({pitch:this._viewportProps.pitch+e})}},{key:"rotateDown",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({pitch:this._viewportProps.pitch-e})}},{key:"zoomIn",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2;return this.zoom({scale:e})}},{key:"zoomOut",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2;return this.zoom({scale:1/e})}},{key:"shortestPathFrom",value:function(e){var t=e.getViewportProps(),A=Object(a.a)({},this._viewportProps),n=A.bearing,r=A.longitude;return Math.abs(n-t.bearing)>180&&(A.bearing=n<0?n+360:n-360),Math.abs(r-t.longitude)>180&&(A.longitude=r<0?r+360:r-360),A}},{key:"_move",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._viewportProps.position,n=e.scale(t);return this._getUpdatedState({position:new z.Vector3(A).add(n)})}},{key:"_getUpdatedState",value:function(e){return new A(Object(a.a)({},this._viewportProps,{},this._state,{},e))}},{key:"_applyConstraints",value:function(e){var t=e.pitch,A=e.maxPitch,n=e.minPitch,r=e.longitude,i=e.bearing;return e.pitch=Object(z.clamp)(t,n,A),(r<-180||r>180)&&(e.longitude=Object(fe.e)(r+180,360)-180),(i<-180||i>180)&&(e.bearing=Object(fe.e)(i+180,360)-180),e}}]),A}(he.a),pe=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(e){return Object(s.a)(this,A),t.call(this,Be,e)}return Object(g.a)(A,[{key:"linearTransitionProps",get:function(){return["position","pitch","bearing"]}}]),A}(Ce.a);var Ee=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(e){Object(s.a)(this,A);var n=e.modelMatrix,r=void 0===n?null:n,i=e.bearing,o=void 0===i?0:i,g=e.pitch,c=void 0===g?0:g,u=e.up,l=void 0===u?[0,0,1]:u,I=function(e){var t=e.bearing,A=e.pitch;return new z._SphericalCoordinates({bearing:t,pitch:A}).toVector3().normalize()}({bearing:o,pitch:-90===c?1e-4:90+c}),C=r?r.transformDirection(I):I,h=Object(Ie.j)(e),f=Math.pow(2,h),d=(new z.Matrix4).lookAt({eye:[0,0,0],center:C,up:l}).scale(f);return t.call(this,Object(a.a)({},e,{zoom:h,viewMatrix:d}))}return A}(X.a),Qe=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(e){return Object(s.a)(this,A),t.call(this,Object(a.a)({},e,{type:Ee}))}return Object(g.a)(A,[{key:"controller",get:function(){return this._getControllerProps({type:pe})}}]),A}(ue.a);Qe.displayName="FirstPersonView";var ye=A(582),ve=A(581),me=A(16),be=A(17),we=A(266),Se=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(){return Object(s.a)(this,A),t.apply(this,arguments)}return Object(g.a)(A,[{key:"_applyConstraints",value:function(e){var t=e.maxZoom,A=e.minZoom,n=e.zoom;e.zoom=Object(z.clamp)(n,A,t);var r=e.longitude,i=e.latitude;return(r<-180||r>180)&&(e.longitude=Object(fe.e)(r+180,360)-180),e.latitude=Object(z.clamp)(i,-89,89),e}}]),A}(we.a),Fe=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(e){return Object(s.a)(this,A),e.dragMode=e.dragMode||"pan",t.call(this,Se,e)}return Object(g.a)(A,[{key:"setProps",value:function(e){Object(be.a)(Object(me.a)(A.prototype),"setProps",this).call(this,e),this.dragRotate=!1,this.touchRotate=!1}},{key:"linearTransitionProps",get:function(){return["longitude","latitude","zoom"]}}]),A}(Ce.a),Re=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(e){return Object(s.a)(this,A),t.call(this,Object(a.a)({},e,{type:re}))}return Object(g.a)(A,[{key:"controller",get:function(){return this._getControllerProps({type:Fe})}}]),A}(ue.a);Re.displayName="GlobeView";var De=A(264),Ge=A(380),ke=A(579),xe=A(315),Ne=A(265),Ue=A(316),_e=["bearing","pitch"],Me={speed:1.2,curve:1.414},Oe=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(s.a)(this,A),(e=t.call(this,{compare:["longitude","latitude","zoom","bearing","pitch"],extract:["width","height","longitude","latitude","zoom","bearing","pitch"],required:["width","height","latitude","longitude","zoom"]})).props=Object(a.a)({},Me,{},n),e}return Object(g.a)(A,[{key:"interpolateProps",value:function(e,t,A){var n,r=Object(Ie.e)(e,t,A,this.props),i=Object(k.a)(_e);try{for(i.s();!(n=i.n()).done;){var o=n.value;r[o]=Object(z.lerp)(e[o]||0,t[o]||0,A)}}catch(a){i.e(a)}finally{i.f()}return r}},{key:"getDuration",value:function(e,t){var A=t.transitionDuration;return"auto"===A&&(A=Object(Ie.i)(e,t,this.props)),A}}]),A}(Ne.a),Le=A(41),Te=A(116),Ze=A(577),He=A(147),Ye=A(379),Je=A(173),je=A(378),Pe=A(313);A.d(t,"COORDINATE_SYSTEM",(function(){return n.a})),A.d(t,"UNIT",(function(){return n.d})),A.d(t,"LightingEffect",(function(){return r.a})),A.d(t,"AmbientLight",(function(){return i.a})),A.d(t,"DirectionalLight",(function(){return o.a})),A.d(t,"PointLight",(function(){return h})),A.d(t,"_CameraLight",(function(){return E})),A.d(t,"_SunLight",(function(){return G})),A.d(t,"PostProcessEffect",(function(){return L})),A.d(t,"_LayersPass",(function(){return Y.a})),A.d(t,"Deck",(function(){return J.a})),A.d(t,"LayerManager",(function(){return j.a})),A.d(t,"AttributeManager",(function(){return P.a})),A.d(t,"Layer",(function(){return V.a})),A.d(t,"CompositeLayer",(function(){return K.a})),A.d(t,"DeckRenderer",(function(){return W.a})),A.d(t,"Viewport",(function(){return X.a})),A.d(t,"WebMercatorViewport",(function(){return q.a})),A.d(t,"_GlobeViewport",(function(){return re})),A.d(t,"picking",(function(){return oe.a})),A.d(t,"project",(function(){return ae.a})),A.d(t,"project32",(function(){return se.a})),A.d(t,"gouraudLighting",(function(){return ge.a})),A.d(t,"phongLighting",(function(){return ge.b})),A.d(t,"shadow",(function(){return ce.a})),A.d(t,"View",(function(){return ue.a})),A.d(t,"MapView",(function(){return le.a})),A.d(t,"FirstPersonView",(function(){return Qe})),A.d(t,"OrbitView",(function(){return ye.a})),A.d(t,"OrthographicView",(function(){return ve.a})),A.d(t,"_GlobeView",(function(){return Re})),A.d(t,"Controller",(function(){return Ce.a})),A.d(t,"MapController",(function(){return we.b})),A.d(t,"_GlobeController",(function(){return Fe})),A.d(t,"FirstPersonController",(function(){return pe})),A.d(t,"OrbitController",(function(){return De.b})),A.d(t,"OrthographicController",(function(){return Ge.a})),A.d(t,"Effect",(function(){return x.a})),A.d(t,"LayerExtension",(function(){return ke.a})),A.d(t,"TRANSITION_EVENTS",(function(){return xe.a})),A.d(t,"TransitionInterpolator",(function(){return Ne.a})),A.d(t,"LinearInterpolator",(function(){return Ue.a})),A.d(t,"FlyToInterpolator",(function(){return Oe})),A.d(t,"log",(function(){return Le.a})),A.d(t,"createIterable",(function(){return Te.a})),A.d(t,"fp64LowPart",(function(){return fe.b})),A.d(t,"Tesselator",(function(){return Ze.a})),A.d(t,"_fillArray",(function(){return He.a})),A.d(t,"_flatten",(function(){return He.b})),A.d(t,"_count",(function(){return Ye.a})),A.d(t,"_memoize",(function(){return Je.a})),A.d(t,"_mergeShaders",(function(){return je.a})),A.d(t,"_compareProps",(function(){return Pe.a}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return r})),A.d(t,"c",(function(){return i})),A.d(t,"d",(function(){return o})),A.d(t,"b",(function(){return a}));var n=A(41),r={DEFAULT:-1,LNGLAT:1,METER_OFFSETS:2,LNGLAT_OFFSETS:3,CARTESIAN:0};Object.defineProperty(r,"IDENTITY",{get:function(){return n.a.deprecated("COORDINATE_SYSTEM.IDENTITY","COORDINATE_SYSTEM.CARTESIAN")()||0}});var i={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0},o={common:0,meters:1,pixels:2},a={click:{handler:"onClick"},panstart:{handler:"onDragStart"},panmove:{handler:"onDrag"},panend:{handler:"onDragEnd"}}},,function(e,t,A){var n=A(444);e.exports=function(e,t){return n(e,t)}},function(e,t,A){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}}(),e.exports=A(749)},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(717);function r(e){if("string"!==typeof e)throw new Error(Object(n.a)(7));return e.charAt(0).toUpperCase()+e.slice(1)}},function(e,t,A){"use strict";var n=A(1163);t.a=new n.a({id:"deck"})},function(e,t,A){"use strict";var n=A(11),r=A(8),i=A(1),o=A(4),a=1e-6,s="undefined"!==typeof Float32Array?Float32Array:Array;Math.random;Math.PI;Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});!function(){var e=function(){var e=new s(4);return s!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}()}();function g(e,t){var A,n,r,i=function(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3];return e[0]=A[0]*n+A[4]*r+A[8]*i+A[12]*o,e[1]=A[1]*n+A[5]*r+A[9]*i+A[13]*o,e[2]=A[2]*n+A[6]*r+A[10]*i+A[14]*o,e[3]=A[3]*n+A[7]*r+A[11]*i+A[15]*o,e}([],t,e);return A=i,n=i,r=1/i[3],A[0]=n[0]*r,A[1]=n[1]*r,A[2]=n[2]*r,A[3]=n[3]*r,i}function c(e,t){var A=e%t;return A<0?t+A:A}function u(e,t,A){return A*t+(1-A)*e}var l=Math.log2||function(e){return Math.log(e)*Math.LOG2E};function I(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=t[9],I=t[10],C=t[11],h=t[12],f=t[13],d=t[14],B=t[15],p=A[0],E=A[1],Q=A[2],y=A[3];return e[0]=p*n+E*a+Q*u+y*h,e[1]=p*r+E*s+Q*l+y*f,e[2]=p*i+E*g+Q*I+y*d,e[3]=p*o+E*c+Q*C+y*B,p=A[4],E=A[5],Q=A[6],y=A[7],e[4]=p*n+E*a+Q*u+y*h,e[5]=p*r+E*s+Q*l+y*f,e[6]=p*i+E*g+Q*I+y*d,e[7]=p*o+E*c+Q*C+y*B,p=A[8],E=A[9],Q=A[10],y=A[11],e[8]=p*n+E*a+Q*u+y*h,e[9]=p*r+E*s+Q*l+y*f,e[10]=p*i+E*g+Q*I+y*d,e[11]=p*o+E*c+Q*C+y*B,p=A[12],E=A[13],Q=A[14],y=A[15],e[12]=p*n+E*a+Q*u+y*h,e[13]=p*r+E*s+Q*l+y*f,e[14]=p*i+E*g+Q*I+y*d,e[15]=p*o+E*c+Q*C+y*B,e}function C(e,t,A){var n,r,i,o,a,s,g,c,u,l,I,C,h=A[0],f=A[1],d=A[2];return t===e?(e[12]=t[0]*h+t[4]*f+t[8]*d+t[12],e[13]=t[1]*h+t[5]*f+t[9]*d+t[13],e[14]=t[2]*h+t[6]*f+t[10]*d+t[14],e[15]=t[3]*h+t[7]*f+t[11]*d+t[15]):(n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=t[9],I=t[10],C=t[11],e[0]=n,e[1]=r,e[2]=i,e[3]=o,e[4]=a,e[5]=s,e[6]=g,e[7]=c,e[8]=u,e[9]=l,e[10]=I,e[11]=C,e[12]=n*h+a*f+u*d+t[12],e[13]=r*h+s*f+l*d+t[13],e[14]=i*h+g*f+I*d+t[14],e[15]=o*h+c*f+C*d+t[15]),e}function h(e,t,A){var n=A[0],r=A[1],i=A[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function f(e,t){var A=e[0],n=e[1],r=e[2],i=e[3],o=e[4],s=e[5],g=e[6],c=e[7],u=e[8],l=e[9],I=e[10],C=e[11],h=e[12],f=e[13],d=e[14],B=e[15],p=t[0],E=t[1],Q=t[2],y=t[3],v=t[4],m=t[5],b=t[6],w=t[7],S=t[8],F=t[9],R=t[10],D=t[11],G=t[12],k=t[13],x=t[14],N=t[15];return Math.abs(A-p)<=a*Math.max(1,Math.abs(A),Math.abs(p))&&Math.abs(n-E)<=a*Math.max(1,Math.abs(n),Math.abs(E))&&Math.abs(r-Q)<=a*Math.max(1,Math.abs(r),Math.abs(Q))&&Math.abs(i-y)<=a*Math.max(1,Math.abs(i),Math.abs(y))&&Math.abs(o-v)<=a*Math.max(1,Math.abs(o),Math.abs(v))&&Math.abs(s-m)<=a*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(g-b)<=a*Math.max(1,Math.abs(g),Math.abs(b))&&Math.abs(c-w)<=a*Math.max(1,Math.abs(c),Math.abs(w))&&Math.abs(u-S)<=a*Math.max(1,Math.abs(u),Math.abs(S))&&Math.abs(l-F)<=a*Math.max(1,Math.abs(l),Math.abs(F))&&Math.abs(I-R)<=a*Math.max(1,Math.abs(I),Math.abs(R))&&Math.abs(C-D)<=a*Math.max(1,Math.abs(C),Math.abs(D))&&Math.abs(h-G)<=a*Math.max(1,Math.abs(h),Math.abs(G))&&Math.abs(f-k)<=a*Math.max(1,Math.abs(f),Math.abs(k))&&Math.abs(d-x)<=a*Math.max(1,Math.abs(d),Math.abs(x))&&Math.abs(B-N)<=a*Math.max(1,Math.abs(B),Math.abs(N))}function d(e,t,A){return e[0]=t[0]+A[0],e[1]=t[1]+A[1],e}function B(e,t,A){return e[0]=t[0]*A,e[1]=t[1]*A,e}function p(e){var t=e[0],A=e[1];return Math.hypot(t,A)}function E(e,t,A,n){var r=t[0],i=t[1];return e[0]=r+n*(A[0]-r),e[1]=i+n*(A[1]-i),e}var Q=function(e,t,A){return e[0]=t[0]-A[0],e[1]=t[1]-A[1],e};!function(){var e=function(){var e=new s(2);return s!=Float32Array&&(e[0]=0,e[1]=0),e}()}();function y(e,t,A){return e[0]=t[0]+A[0],e[1]=t[1]+A[1],e[2]=t[2]+A[2],e}var v=function(e,t,A){return e[0]=t[0]*A[0],e[1]=t[1]*A[1],e[2]=t[2]*A[2],e};!function(){var e=function(){var e=new s(3);return s!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}()}();function m(e,t){if(!e)throw new Error(t||"@math.gl/web-mercator: assertion failed.")}var b=Math.PI,w=b/4,S=b/180,F=180/b;function R(e){return Math.pow(2,e)}function D(e){return l(e)}function G(e){var t=Object(r.a)(e,2),A=t[0],n=t[1];m(Number.isFinite(A)),m(Number.isFinite(n)&&n>=-90&&n<=90,"invalid latitude");var i=n*S;return[512*(A*S+b)/(2*b),512*(b+Math.log(Math.tan(w+.5*i)))/(2*b)]}function k(e){var t=Object(r.a)(e,2),A=t[0],n=t[1],i=A/512*(2*b)-b,o=2*(Math.atan(Math.exp(n/512*(2*b)-b))-w);return[i*F,o*F]}function x(e){var t=e.latitude;return m(Number.isFinite(t)),D(4003e4*Math.cos(t*S))-9}function N(e){var t=e.latitude,A=e.longitude,n=e.highPrecision,r=void 0!==n&&n;m(Number.isFinite(t)&&Number.isFinite(A));var i={},o=Math.cos(t*S),a=512/360/o,s=512/4003e4/o;if(i.unitsPerMeter=[s,s,s],i.metersPerUnit=[1/s,1/s,1/s],i.unitsPerDegree=[512/360,a,s],i.degreesPerUnit=[.703125,1/a,1/s],r){var g=S*Math.tan(t*S)/o,c=512/360*g/2,u=512/4003e4*g,l=u/a*s;i.unitsPerDegree2=[0,c,u],i.unitsPerMeter2=[l,0,l]}return i}function U(e,t){var A=Object(r.a)(e,3),n=A[0],i=A[1],o=A[2],a=Object(r.a)(t,3),s=a[0],g=a[1],c=a[2],u=N({longitude:n,latitude:i,highPrecision:!0}),l=u.unitsPerMeter,I=u.unitsPerMeter2,C=G(e);C[0]+=s*(l[0]+I[0]*g),C[1]+=g*(l[1]+I[1]*g);var h=k(C),f=(o||0)+(c||0);return Number.isFinite(o)||Number.isFinite(c)?[h[0],h[1],f]:h}function _(e){var t,A,n=e.height,r=e.pitch,i=e.bearing,o=e.altitude,a=e.scale,s=e.center,g=void 0===s?null:s,c=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];return C(c,c,[0,0,-o]),function(e,t,A){var n=Math.sin(A),r=Math.cos(A),i=t[4],o=t[5],a=t[6],s=t[7],g=t[8],c=t[9],u=t[10],l=t[11];t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*r+g*n,e[5]=o*r+c*n,e[6]=a*r+u*n,e[7]=s*r+l*n,e[8]=g*r-i*n,e[9]=c*r-o*n,e[10]=u*r-a*n,e[11]=l*r-s*n}(c,c,-r*S),function(e,t,A){var n=Math.sin(A),r=Math.cos(A),i=t[0],o=t[1],a=t[2],s=t[3],g=t[4],c=t[5],u=t[6],l=t[7];t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*r+g*n,e[1]=o*r+c*n,e[2]=a*r+u*n,e[3]=s*r+l*n,e[4]=g*r-i*n,e[5]=c*r-o*n,e[6]=u*r-a*n,e[7]=l*r-s*n}(c,c,i*S),h(c,c,[a/=n,a,a]),g&&C(c,c,((t=[])[0]=-(A=g)[0],t[1]=-A[1],t[2]=-A[2],t)),c}function M(e){var t=e.width,A=e.height,n=e.fovy,r=void 0===n?L(1.5):n,i=e.altitude,o=e.pitch,a=void 0===o?0:o,s=e.nearZMultiplier,g=void 0===s?1:s,c=e.farZMultiplier,u=void 0===c?1:c;void 0!==i&&(r=L(i));var l=.5*r*S,I=T(r),C=a*S,h=Math.sin(l)*I/Math.sin(Math.min(Math.max(Math.PI/2-C-l,.01),Math.PI-.01));return{fov:2*l,aspect:t/A,focalDistance:I,near:g,far:(Math.sin(C)*h+I)*u}}function O(e){var t=e.width,A=e.height,n=e.pitch,r=M({width:t,height:A,altitude:e.altitude,fovy:e.fovy,pitch:n,nearZMultiplier:e.nearZMultiplier,farZMultiplier:e.farZMultiplier});return function(e,t,A,n,r){var i,o=1/Math.tan(t/2);return e[0]=o/A,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=r&&r!==1/0?(i=1/(n-r),e[10]=(r+n)*i,e[14]=2*r*n*i):(e[10]=-1,e[14]=-2*n),e}([],r.fov,r.aspect,r.near,r.far)}function L(e){return 2*Math.atan(.5/e)*F}function T(e){return.5/Math.tan(.5*e*S)}function Z(e,t){var A=Object(r.a)(e,3),n=A[0],i=A[1],o=A[2],a=void 0===o?0:o;return m(Number.isFinite(n)&&Number.isFinite(i)&&Number.isFinite(a)),g(t,[n,i,a,1])}function H(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=Object(r.a)(e,3),i=n[0],o=n[1],a=n[2];if(m(Number.isFinite(i)&&Number.isFinite(o),"invalid pixel coordinate"),Number.isFinite(a)){var s=g(t,[i,o,a,1]);return s}var c=g(t,[i,o,0,1]),u=g(t,[i,o,1,1]),l=c[2],I=u[2],C=l===I?0:((A||0)-l)/(I-l);return E([],c,u,C)}function Y(e){var t=e.width,A=e.height,n=e.bounds,i=e.minExtent,o=void 0===i?0:i,a=e.maxZoom,s=void 0===a?24:a,g=e.padding,c=void 0===g?0:g,u=e.offset,I=void 0===u?[0,0]:u,C=Object(r.a)(n,2),h=Object(r.a)(C[0],2),f=h[0],d=h[1],B=Object(r.a)(C[1],2),p=B[0],E=B[1];if(Number.isFinite(c)){c={top:c,bottom:c,left:c,right:c}}else m(Number.isFinite(c.top)&&Number.isFinite(c.bottom)&&Number.isFinite(c.left)&&Number.isFinite(c.right));var Q=new V({width:t,height:A,longitude:0,latitude:0,zoom:0}),y=Q.project([f,E]),v=Q.project([p,d]),b=[Math.max(Math.abs(v[0]-y[0]),o),Math.max(Math.abs(v[1]-y[1]),o)],w=[t-c.left-c.right-2*Math.abs(I[0]),A-c.top-c.bottom-2*Math.abs(I[1])];m(w[0]>0&&w[1]>0);var S=w[0]/b[0],F=w[1]/b[1],R=(c.right-c.left)/2/S,D=(c.bottom-c.top)/2/F,G=[(v[0]+y[0])/2+R,(v[1]+y[1])/2+D],k=Q.unproject(G),x=Math.min(s,Q.zoom+l(Math.abs(Math.min(S,F))));return m(Number.isFinite(x)),{longitude:k[0],latitude:k[1],zoom:x}}var J=Math.PI/180;function j(e){var t,A,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.width,i=e.height,o=e.unproject,a={targetZ:n},s=o([0,i],a),g=o([r,i],a),c=e.fovy?.5*e.fovy*J:Math.atan(.5/e.altitude),u=(90-e.pitch)*J;return c>u-.01?(t=P(e,0,n),A=P(e,r,n)):(t=o([0,0],a),A=o([r,0],a)),[s,g,A,t]}function P(e,t,A){var n=e.pixelUnprojectionMatrix,r=g(n,[t,0,1,1]),i=g(n,[t,e.height,1,1]),o=k(E([],r,i,(A*e.distanceScales.unitsPerMeter[2]-r[2])/(i[2]-r[2])));return o[2]=A,o}var V=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{width:1,height:1},A=t.width,n=t.height,r=t.latitude,o=void 0===r?0:r,a=t.longitude,s=void 0===a?0:a,g=t.zoom,c=void 0===g?0:g,u=t.pitch,l=void 0===u?0:u,I=t.bearing,C=void 0===I?0:I,h=t.altitude,f=void 0===h?null:h,d=t.fovy,B=void 0===d?null:d,p=t.position,E=void 0===p?null:p,Q=t.nearZMultiplier,m=void 0===Q?.02:Q,b=t.farZMultiplier,w=void 0===b?1.01:b;Object(i.a)(this,e),A=A||1,n=n||1,null===B&&null===f?B=L(f=1.5):null===B?B=L(f):null===f&&(f=T(B));var S=R(c);f=Math.max(.75,f);var F=N({longitude:s,latitude:o}),D=G([s,o]);D[2]=0,E&&y(D,D,v([],E,F.unitsPerMeter)),this.projectionMatrix=O({width:A,height:n,pitch:l,fovy:B,nearZMultiplier:m,farZMultiplier:w}),this.viewMatrix=_({height:n,scale:S,center:D,pitch:l,bearing:C,altitude:f}),this.width=A,this.height=n,this.scale=S,this.latitude=o,this.longitude=s,this.zoom=c,this.pitch=l,this.bearing=C,this.altitude=f,this.fovy=B,this.center=D,this.meterOffset=E||[0,0,0],this.distanceScales=F,this._initMatrices(),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),Object.freeze(this)}return Object(o.a)(e,[{key:"_initMatrices",value:function(){var e=this.width,t=this.height,A=this.projectionMatrix,n=this.viewMatrix,r=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];I(r,r,A),I(r,r,n),this.viewProjectionMatrix=r;var i=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];h(i,i,[e/2,-t/2,1]),C(i,i,[1,-1,0]),I(i,i,r);var o=function(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=t[4],a=t[5],s=t[6],g=t[7],c=t[8],u=t[9],l=t[10],I=t[11],C=t[12],h=t[13],f=t[14],d=t[15],B=A*a-n*o,p=A*s-r*o,E=A*g-i*o,Q=n*s-r*a,y=n*g-i*a,v=r*g-i*s,m=c*h-u*C,b=c*f-l*C,w=c*d-I*C,S=u*f-l*h,F=u*d-I*h,R=l*d-I*f,D=B*R-p*F+E*S+Q*w-y*b+v*m;return D?(D=1/D,e[0]=(a*R-s*F+g*S)*D,e[1]=(r*F-n*R-i*S)*D,e[2]=(h*v-f*y+d*Q)*D,e[3]=(l*y-u*v-I*Q)*D,e[4]=(s*w-o*R-g*b)*D,e[5]=(A*R-r*w+i*b)*D,e[6]=(f*E-C*v-d*p)*D,e[7]=(c*v-l*E+I*p)*D,e[8]=(o*F-a*w+g*m)*D,e[9]=(n*w-A*F-i*m)*D,e[10]=(C*y-h*E+d*B)*D,e[11]=(u*E-c*y-I*B)*D,e[12]=(a*b-o*S-s*m)*D,e[13]=(A*S-n*b+r*m)*D,e[14]=(h*p-C*Q-f*B)*D,e[15]=(c*Q-u*p+l*B)*D,e):null}([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],i);if(!o)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=i,this.pixelUnprojectionMatrix=o}},{key:"equals",value:function(t){return t instanceof e&&(t.width===this.width&&t.height===this.height&&f(t.projectionMatrix,this.projectionMatrix)&&f(t.viewMatrix,this.viewMatrix))}},{key:"project",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.topLeft,n=void 0===A||A,i=this.projectPosition(e),o=Z(i,this.pixelProjectionMatrix),a=Object(r.a)(o,2),s=a[0],g=a[1],c=n?g:this.height-g;return 2===e.length?[s,c]:[s,c,o[2]]}},{key:"unproject",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.topLeft,n=void 0===A||A,i=t.targetZ,o=void 0===i?void 0:i,a=Object(r.a)(e,3),s=a[0],g=a[1],c=a[2],u=n?g:this.height-g,l=o&&o*this.distanceScales.unitsPerMeter[2],I=H([s,u,c],this.pixelUnprojectionMatrix,l),C=this.unprojectPosition(I),h=Object(r.a)(C,3),f=h[0],d=h[1],B=h[2];return Number.isFinite(c)?[f,d,B]:Number.isFinite(o)?[f,d,o]:[f,d]}},{key:"projectPosition",value:function(e){var t=G(e),A=Object(r.a)(t,2);return[A[0],A[1],(e[2]||0)*this.distanceScales.unitsPerMeter[2]]}},{key:"unprojectPosition",value:function(e){var t=k(e),A=Object(r.a)(t,2);return[A[0],A[1],(e[2]||0)*this.distanceScales.metersPerUnit[2]]}},{key:"projectFlat",value:function(e){return G(e)}},{key:"unprojectFlat",value:function(e){return k(e)}},{key:"getMapCenterByLngLatPosition",value:function(e){var t,A,n=e.lngLat,r=H(e.pos,this.pixelUnprojectionMatrix),i=d([],G(n),((t=[])[0]=-(A=r)[0],t[1]=-A[1],t));return k(d([],this.center,i))}},{key:"getLocationAtPoint",value:function(e){var t=e.lngLat,A=e.pos;return this.getMapCenterByLngLatPosition({lngLat:t,pos:A})}},{key:"fitBounds",value:function(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.width,r=this.height,i=Y(Object.assign({width:n,height:r,bounds:t},A)),o=i.longitude,a=i.latitude,s=i.zoom;return new e({width:n,height:r,longitude:o,latitude:a,zoom:s})}},{key:"getBounds",value:function(e){var t=this.getBoundingRegion(e),A=Math.min.apply(Math,Object(n.a)(t.map((function(e){return e[0]})))),r=Math.max.apply(Math,Object(n.a)(t.map((function(e){return e[0]}))));return[[A,Math.min.apply(Math,Object(n.a)(t.map((function(e){return e[1]}))))],[r,Math.max.apply(Math,Object(n.a)(t.map((function(e){return e[1]}))))]]}},{key:"getBoundingRegion",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return j(this,e.z||0)}}]),e}();function K(e){var t=e.width,A=e.height,n=e.longitude,r=e.latitude,i=e.zoom,o=e.pitch,a=void 0===o?0:o,s=e.bearing,g=void 0===s?0:s;(n<-180||n>180)&&(n=c(n+180,360)-180),(g<-180||g>180)&&(g=c(g+180,360)-180);var u=l(A/512);if(i<=u)i=u,r=0;else{var I=A/2/Math.pow(2,i),C=k([0,I])[1];if(r<C)r=C;else{var h=k([0,512-I])[1];r>h&&(r=h)}}return{width:t,height:A,longitude:n,latitude:r,zoom:i,pitch:a,bearing:g}}var W=A(6),X=["longitude","latitude","zoom"],q={curve:1.414,speed:1.2};function z(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r={},i=ee(e,t,n),o=i.startZoom,a=i.startCenterXY,s=i.uDelta,g=i.w0,c=i.u1,l=i.S,I=i.rho,C=i.rho2,h=i.r0;if(c<.01){var f,p=Object(W.a)(X);try{for(p.s();!(f=p.n()).done;){var E=f.value,Q=e[E],y=t[E];r[E]=u(Q,y,A)}}catch(G){p.e(G)}finally{p.f()}return r}var v=A*l,m=Math.cosh(h)/Math.cosh(h+I*v),b=g*((Math.cosh(h)*Math.tanh(h+I*v)-Math.sinh(h))/C)/c,w=1/m,S=o+D(w),F=B([],s,b);d(F,F,a);var R=k(F);return r.longitude=R[0],r.latitude=R[1],r.zoom=S,r}function $(e,t){var A,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n=Object.assign({},q,n),i=r.screenSpeed,o=r.speed,a=r.maxDuration,s=ee(e,t,n),g=s.S,c=s.rho,u=1e3*g;return A=Number.isFinite(i)?u/(i/c):u/o,Number.isFinite(a)&&A>a?0:A}function ee(e,t,A){var n=(A=Object.assign({},q,A)).curve,r=e.zoom,i=[e.longitude,e.latitude],o=R(r),a=t.zoom,s=[t.longitude,t.latitude],g=R(a-r),c=G(i),u=G(s),l=Q([],u,c),I=Math.max(e.width,e.height),C=I/g,h=p(l)*o,f=Math.max(h,.01),d=n*n,B=(C*C-I*I+d*d*f*f)/(2*I*d*f),E=(C*C-I*I-d*d*f*f)/(2*C*d*f),y=Math.log(Math.sqrt(B*B+1)-B),v=Math.log(Math.sqrt(E*E+1)-E);return{startZoom:r,startCenterXY:c,uDelta:l,w0:I,u1:h,S:(v-y)/n,rho:n,rho2:d,r0:y,r1:v}}A.d(t,"a",(function(){return V})),A.d(t,"g",(function(){return j})),A.d(t,"d",(function(){return Y})),A.d(t,"o",(function(){return K})),A.d(t,"e",(function(){return z})),A.d(t,"i",(function(){return $})),A.d(t,"n",(function(){return G})),A.d(t,"r",(function(){return k})),A.d(t,"s",(function(){return Z})),A.d(t,"p",(function(){return H})),A.d(t,"t",(function(){return R})),A.d(t,"q",(function(){return D})),A.d(t,"c",(function(){return L})),A.d(t,"f",(function(){return T})),A.d(t,"j",(function(){return x})),A.d(t,"h",(function(){return N})),A.d(t,"b",(function(){return U})),A.d(t,"m",(function(){return _})),A.d(t,"k",(function(){return O})),A.d(t,"l",(function(){return M}))},function(e,t,A){"use strict";A.r(t);var n=A(18),r=A(330),i=A(427),o=A(718),a=A(80),s=A(1288),g=A(161),c=A(238),u=A(232),l=A(664),I=A(428),C=A(530),h=A(663),f=A(665),d=A(1246),B=A(1293),p=A(422),E=A(1289),Q=A(528),y=A(1247),v=A(135),m=A(1257),b=A(7),w=A(1),S=A(9),F=A(10),R=A(108),D={x:[2,0,1],y:[0,1,2],z:[1,2,0]},G=function(e){Object(S.a)(A,e);var t=Object(F.a)(A);function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(w.a)(this,A);var n=e.id,r=void 0===n?Object(R.c)("truncated-code-geometry"):n,i=k(e),o=i.indices,a=i.attributes;return t.call(this,Object(b.a)({},e,{id:r,indices:o,attributes:Object(b.a)({},a,{},e.attributes)}))}return A}(v.a);function k(e){for(var t=e.bottomRadius,A=void 0===t?0:t,n=e.topRadius,r=void 0===n?0:n,i=e.height,o=void 0===i?1:i,a=e.nradial,s=void 0===a?10:a,g=e.nvertical,c=void 0===g?10:g,u=e.verticalAxis,l=void 0===u?"y":u,I=e.topCap,C=void 0!==I&&I,h=e.bottomCap,f=void 0!==h&&h,d=(C?2:0)+(f?2:0),B=(s+1)*(c+1+d),p=Math.atan2(A-r,o),E=Math.sin,Q=Math.cos,y=Math.PI,v=Q(p),m=E(p),b=C?-2:0,w=c+(f?2:0),S=s+1,F=new Uint16Array(s*(c+d)*6),R=D[l],G=new Float32Array(3*B),k=new Float32Array(3*B),x=new Float32Array(2*B),N=0,U=0,_=b;_<=w;_++){var M=_/c,O=o*M,L=void 0;_<0?(O=0,M=1,L=A):_>c?(O=o,M=1,L=r):L=A+_/c*(r-A),-2!==_&&_!==c+2||(L=0,M=0),O-=o/2;for(var T=0;T<S;T++){var Z=E(T*y*2/s),H=Q(T*y*2/s);G[N+R[0]]=Z*L,G[N+R[1]]=O,G[N+R[2]]=H*L,k[N+R[0]]=_<0||_>c?0:Z*v,k[N+R[1]]=_<0?-1:_>c?1:m,k[N+R[2]]=_<0||_>c?0:H*v,x[U+0]=T/s,x[U+1]=M,U+=2,N+=3}}for(var Y=0;Y<c+d;Y++)for(var J=0;J<s;J++){var j=6*(Y*s+J);F[j+0]=S*(Y+0)+0+J,F[j+1]=S*(Y+0)+1+J,F[j+2]=S*(Y+1)+1+J,F[j+3]=S*(Y+0)+0+J,F[j+4]=S*(Y+1)+1+J,F[j+5]=S*(Y+1)+0+J}return{indices:F,attributes:{POSITION:{size:3,value:G},NORMAL:{size:3,value:k},TEXCOORD_0:{size:2,value:x}}}}var x=function(e){Object(S.a)(A,e);var t=Object(F.a)(A);function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(w.a)(this,A);var n=e.id,r=void 0===n?Object(R.c)("cone-geometry"):n,i=e.radius,o=void 0===i?1:i,a=e.cap,s=void 0===a||a;return t.call(this,Object(b.a)({},e,{id:r,topRadius:0,topCap:Boolean(s),bottomCap:Boolean(s),bottomRadius:o}))}return A}(G),N=A(1256),U=function(e){Object(S.a)(A,e);var t=Object(F.a)(A);function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(w.a)(this,A);var n=e.id,r=void 0===n?Object(R.c)("cylinder-geometry"):n,i=e.radius,o=void 0===i?1:i;return t.call(this,Object(b.a)({},e,{id:r,bottomRadius:o,topRadius:o}))}return A}(G),_=A(221),M=[-1,0,0,0,1,0,0,0,-1,0,0,1,0,-1,0,1,0,0],O=[3,4,5,3,5,1,3,1,0,3,0,4,4,0,2,4,2,5,2,0,1,5,2,1],L=function(e){Object(S.a)(A,e);var t=Object(F.a)(A);function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(w.a)(this,A);var n=e.id,r=void 0===n?Object(R.c)("ico-sphere-geometry"):n,i=T(e),o=i.indices,a=i.attributes;return t.call(this,Object(b.a)({},e,{id:r,indices:o,attributes:Object(b.a)({},a,{},e.attributes)}))}return A}(v.a);function T(e){var t=e.iterations,A=void 0===t?0:t,n=Math.PI,r=2*n,i=[].concat(M),o=[].concat(O);i.push(),o.push();for(var a=function(){var e={};return function(t,A){var n=(t*=3)>(A*=3)?t:A,r="".concat(t<A?t:A,"|").concat(n);if(r in e)return e[r];var o=i[t],a=i[t+1],s=i[t+2],g=(o+i[A])/2,c=(a+i[A+1])/2,u=(s+i[A+2])/2,l=Math.sqrt(g*g+c*c+u*u);return g/=l,c/=l,u/=l,i.push(g,c,u),e[r]=i.length/3-1}}(),s=0;s<A;s++){for(var g=[],c=0;c<o.length;c+=3){var u=a(o[c+0],o[c+1]),l=a(o[c+1],o[c+2]),I=a(o[c+2],o[c+0]);g.push(I,o[c+0],u,u,o[c+1],l,l,o[c+2],I,u,l,I)}o=g}for(var C=new Array(i.length),h=new Array(i.length/3*2),f=o.length-3;f>=0;f-=3){var d=o[f+0],B=o[f+1],p=o[f+2],E=3*d,Q=3*B,y=3*p,v=2*d,m=2*B,b=2*p,w=i[E+0],S=i[E+1],F=i[E+2],R=Math.acos(F/Math.sqrt(w*w+S*S+F*F))/n,D=1-(Math.atan2(S,w)+n)/r,G=i[Q+0],k=i[Q+1],x=i[Q+2],N=Math.acos(x/Math.sqrt(G*G+k*k+x*x))/n,U=1-(Math.atan2(k,G)+n)/r,L=i[y+0],T=i[y+1],Z=i[y+2],H=Math.acos(Z/Math.sqrt(L*L+T*T+Z*Z))/n,Y=1-(Math.atan2(T,L)+n)/r,J=[L-G,T-k,Z-x],j=[w-G,S-k,F-x],P=new _.a(J).cross(j).normalize(),V=void 0;(0===D||0===U||0===Y)&&(0===D||D>.5)&&(0===U||U>.5)&&(0===Y||Y>.5)&&(i.push(i[E+0],i[E+1],i[E+2]),V=i.length/3-1,o.push(V),h[2*V+0]=1,h[2*V+1]=R,C[3*V+0]=P.x,C[3*V+1]=P.y,C[3*V+2]=P.z,i.push(i[Q+0],i[Q+1],i[Q+2]),V=i.length/3-1,o.push(V),h[2*V+0]=1,h[2*V+1]=N,C[3*V+0]=P.x,C[3*V+1]=P.y,C[3*V+2]=P.z,i.push(i[y+0],i[y+1],i[y+2]),V=i.length/3-1,o.push(V),h[2*V+0]=1,h[2*V+1]=H,C[3*V+0]=P.x,C[3*V+1]=P.y,C[3*V+2]=P.z),C[E+0]=C[Q+0]=C[y+0]=P.x,C[E+1]=C[Q+1]=C[y+1]=P.y,C[E+2]=C[Q+2]=C[y+2]=P.z,h[v+0]=D,h[v+1]=R,h[m+0]=U,h[m+1]=N,h[b+0]=Y,h[b+1]=H}return{indices:{size:1,value:new Uint16Array(o)},attributes:{POSITION:{size:3,value:new Float32Array(i)},NORMAL:{size:3,value:new Float32Array(C)},TEXCOORD_0:{size:2,value:new Float32Array(h)}}}}var Z=function(e){Object(S.a)(A,e);var t=Object(F.a)(A);function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(w.a)(this,A);var n=e.id,r=void 0===n?Object(R.c)("plane-geometry"):n,i=H(e),o=i.indices,a=i.attributes;return t.call(this,Object(b.a)({},e,{id:r,indices:o,attributes:Object(b.a)({},a,{},e.attributes)}))}return A}(v.a);function H(e){var t=e.type,A=void 0===t?"x,y":t,n=e.offset,r=void 0===n?0:n,i=e.flipCull,o=void 0!==i&&i,a=e.unpack,s=void 0!==a&&a,g=A.split(","),c=e["".concat(g[0],"len")]||1,u=e["".concat(g[1],"len")]||1,l=e["n".concat(g[0])]||1,I=e["n".concat(g[1])]||1,C=(l+1)*(I+1),h=new Float32Array(3*C),f=new Float32Array(3*C),d=new Float32Array(2*C);o&&(c=-c);for(var B=0,p=0,E=0;E<=I;E++)for(var Q=0;Q<=l;Q++){var y=Q/l,v=E/I;switch(d[B+0]=o?1-y:y,d[B+1]=v,A){case"x,y":h[p+0]=c*y-.5*c,h[p+1]=u*v-.5*u,h[p+2]=r,f[p+0]=0,f[p+1]=0,f[p+2]=o?1:-1;break;case"x,z":h[p+0]=c*y-.5*c,h[p+1]=r,h[p+2]=u*v-.5*u,f[p+0]=0,f[p+1]=o?1:-1,f[p+2]=0;break;case"y,z":h[p+0]=r,h[p+1]=c*y-.5*c,h[p+2]=u*v-.5*u,f[p+0]=o?1:-1,f[p+1]=0,f[p+2]=0;break;default:throw new Error("PlaneGeometry: unknown type")}B+=2,p+=3}for(var m=l+1,b=new Uint16Array(l*I*6),w=0;w<I;w++)for(var S=0;S<l;S++){var F=6*(w*l+S);b[F+0]=(w+0)*m+S,b[F+1]=(w+1)*m+S,b[F+2]=(w+0)*m+S+1,b[F+3]=(w+1)*m+S,b[F+4]=(w+1)*m+S+1,b[F+5]=(w+0)*m+S+1}var R={indices:{size:1,value:b},attributes:{POSITION:{size:3,value:h},NORMAL:{size:3,value:f},TEXCOORD_0:{size:2,value:d}}};return s?function(e){var t=e.indices,A=e.attributes;if(!t)return e;var n=t.value.length,r={};for(var i in A){var o=A[i],a=o.constant,s=o.value,g=o.size;if(!a&&g){for(var c=new s.constructor(n*g),u=0;u<n;++u)for(var l=t.value[u],I=0;I<g;I++)c[u*g+I]=s[l*g+I];r[i]={size:g,value:c}}}return{attributes:Object.assign({},A,r)}}(R):R}var Y=function(e){Object(S.a)(A,e);var t=Object(F.a)(A);function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(w.a)(this,A);var n=e.id,r=void 0===n?Object(R.c)("sphere-geometry"):n,i=J(e),o=i.indices,a=i.attributes;return t.call(this,Object(b.a)({},e,{id:r,indices:o,attributes:Object(b.a)({},a,{},e.attributes)}))}return A}(v.a);function J(e){var t=e.nlat,A=void 0===t?10:t,n=e.nlong,r=void 0===n?10:n,i=e.radius,o=void 0===i?1:i,a=Math.PI-0,s=2*Math.PI-0,g=(A+1)*(r+1);if("number"===typeof o){var c=o;o=function(e,t,A,n,r){return c}}for(var u=new Float32Array(3*g),l=new Float32Array(3*g),I=new Float32Array(2*g),C=new(g>65535?Uint32Array:Uint16Array)(A*r*6),h=0;h<=A;h++)for(var f=0;f<=r;f++){var d=f/r,B=h/A,p=f+h*(r+1),E=2*p,Q=3*p,y=s*d,v=a*B,m=Math.sin(y),b=Math.cos(y),w=Math.sin(v),S=b*w,F=Math.cos(v),R=m*w,D=o(S,F,R,d,B);u[Q+0]=D*S,u[Q+1]=D*F,u[Q+2]=D*R,l[Q+0]=S,l[Q+1]=F,l[Q+2]=R,I[E+0]=d,I[E+1]=1-B}for(var G=r+1,k=0;k<r;k++)for(var x=0;x<A;x++){var N=6*(k*A+x);C[N+0]=x*G+k,C[N+1]=x*G+k+1,C[N+2]=(x+1)*G+k,C[N+3]=(x+1)*G+k,C[N+4]=x*G+k+1,C[N+5]=(x+1)*G+k+1}return{indices:{size:1,value:C},attributes:{POSITION:{size:3,value:u},NORMAL:{size:3,value:l},TEXCOORD_0:{size:2,value:I}}}}var j=A(531),P=A(1245);function V(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=Math.fround(e),r=e-n;return t[A]=n,t[A+1]=r,t}function K(e){return e-Math.fround(e)}function W(e){for(var t=new Float32Array(32),A=0;A<4;++A)for(var n=0;n<4;++n){var r=4*A+n;V(e[4*n+A],t,2*r)}return t}var X={ONE:1};var q={name:"fp64",vs:"const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);\nconst vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);\nconst vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);\nconst vec2 TWO_PI_FP64 = vec2(6.2831854820251465, -1.7484556025237907e-7);\nconst vec2 PI_2_FP64 = vec2(1.5707963705062866, -4.371139006309477e-8);\nconst vec2 PI_4_FP64 = vec2(0.7853981852531433, -2.1855695031547384e-8);\nconst vec2 PI_16_FP64 = vec2(0.19634954631328583, -5.463923757886846e-9);\nconst vec2 PI_16_2_FP64 = vec2(0.39269909262657166, -1.0927847515773692e-8);\nconst vec2 PI_16_3_FP64 = vec2(0.5890486240386963, -1.4906100798128818e-9);\nconst vec2 PI_180_FP64 = vec2(0.01745329238474369, 1.3519960498364902e-10);\n\nconst vec2 SIN_TABLE_0_FP64 = vec2(0.19509032368659973, -1.6704714833615242e-9);\nconst vec2 SIN_TABLE_1_FP64 = vec2(0.3826834261417389, 6.22335089017767e-9);\nconst vec2 SIN_TABLE_2_FP64 = vec2(0.5555702447891235, -1.1769521357507529e-8);\nconst vec2 SIN_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617041793133e-8);\n\nconst vec2 COS_TABLE_0_FP64 = vec2(0.9807852506637573, 2.9739473106360492e-8);\nconst vec2 COS_TABLE_1_FP64 = vec2(0.9238795042037964, 2.8307490351764386e-8);\nconst vec2 COS_TABLE_2_FP64 = vec2(0.8314695954322815, 1.6870263741530778e-8);\nconst vec2 COS_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617152815436e-8);\n\nconst vec2 INVERSE_FACTORIAL_3_FP64 = vec2(1.666666716337204e-01, -4.967053879312289e-09);\nconst vec2 INVERSE_FACTORIAL_4_FP64 = vec2(4.16666679084301e-02, -1.2417634698280722e-09);\nconst vec2 INVERSE_FACTORIAL_5_FP64 = vec2(8.333333767950535e-03, -4.34617203337595e-10);\nconst vec2 INVERSE_FACTORIAL_6_FP64 = vec2(1.3888889225199819e-03, -3.3631094437103215e-11);\nconst vec2 INVERSE_FACTORIAL_7_FP64 = vec2(1.9841270113829523e-04, -2.725596874933456e-12);\nconst vec2 INVERSE_FACTORIAL_8_FP64 = vec2(2.4801587642286904e-05, -3.406996025904184e-13);\nconst vec2 INVERSE_FACTORIAL_9_FP64 = vec2(2.75573188446287533e-06, 3.7935713937038186e-14);\nconst vec2 INVERSE_FACTORIAL_10_FP64 = vec2(2.755731998149713e-07, -7.575112367869873e-15);\n\nfloat nint(float d) {\n if (d == floor(d)) return d;\n return floor(d + 0.5);\n}\n\nvec2 nint_fp64(vec2 a) {\n float hi = nint(a.x);\n float lo;\n vec2 tmp;\n if (hi == a.x) {\n lo = nint(a.y);\n tmp = quickTwoSum(hi, lo);\n } else {\n lo = 0.0;\n if (abs(hi - a.x) == 0.5 && a.y < 0.0) {\n hi -= 1.0;\n }\n tmp = vec2(hi, lo);\n }\n return tmp;\n}\n\nvec2 exp_fp64(vec2 a) {\n\n const int k_power = 4;\n const float k = 16.0;\n\n const float inv_k = 1.0 / k;\n\n if (a.x <= -88.0) return vec2(0.0, 0.0);\n if (a.x >= 88.0) return vec2(1.0 / 0.0, 1.0 / 0.0);\n if (a.x == 0.0 && a.y == 0.0) return vec2(1.0, 0.0);\n if (a.x == 1.0 && a.y == 0.0) return E_FP64;\n\n float m = floor(a.x / LOG2_FP64.x + 0.5);\n vec2 r = sub_fp64(a, mul_fp64(LOG2_FP64, vec2(m, 0.0))) * inv_k;\n vec2 s, t, p;\n\n p = mul_fp64(r, r);\n s = sum_fp64(r, p * 0.5);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_3_FP64);\n\n s = sum_fp64(s, t);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_4_FP64);\n\n s = sum_fp64(s, t);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_5_FP64);\n\n\n\n\n\n\n s = sum_fp64(s, t);\n for (int i = 0; i < k_power; i++) {\n s = sum_fp64(s * 2.0, mul_fp64(s, s));\n }\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n s = sum_fp64(s, vec2(ONE, 0.0));\n#else\n s = sum_fp64(s, vec2(1.0, 0.0));\n#endif\n\n return s * pow(2.0, m);\n}\n\nvec2 log_fp64(vec2 a)\n{\n if (a.x == 1.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x <= 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n vec2 x = vec2(log(a.x), 0.0);\n vec2 s;\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n s = vec2(ONE, 0.0);\n#else\n s = vec2(1.0, 0.0);\n#endif\n\n x = sub_fp64(sum_fp64(x, mul_fp64(a, exp_fp64(-x))), s);\n return x;\n}\n\nvec2 sin_taylor_fp64(vec2 a) {\n vec2 r, s, t, x;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n\n x = -mul_fp64(a, a);\n s = a;\n r = a;\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_3_FP64);\n s = sum_fp64(s, t);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_5_FP64);\n s = sum_fp64(s, t);\n\n\n\n\n\n\n return s;\n}\n\nvec2 cos_taylor_fp64(vec2 a) {\n vec2 r, s, t, x;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(1.0, 0.0);\n }\n\n x = -mul_fp64(a, a);\n r = x;\n s = sum_fp64(vec2(1.0, 0.0), r * 0.5);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_4_FP64);\n s = sum_fp64(s, t);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_6_FP64);\n s = sum_fp64(s, t);\n\n\n\n\n\n\n return s;\n}\n\nvoid sincos_taylor_fp64(vec2 a, out vec2 sin_t, out vec2 cos_t) {\n if (a.x == 0.0 && a.y == 0.0) {\n sin_t = vec2(0.0, 0.0);\n cos_t = vec2(1.0, 0.0);\n }\n\n sin_t = sin_taylor_fp64(a);\n cos_t = sqrt_fp64(sub_fp64(vec2(1.0, 0.0), mul_fp64(sin_t, sin_t)));\n}\n\nvec2 sin_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n\n if (k == 0) {\n if (j == 0) {\n return sin_taylor_fp64(t);\n } else if (j == 1) {\n return cos_taylor_fp64(t);\n } else if (j == -1) {\n return -cos_taylor_fp64(t);\n } else {\n return -sin_taylor_fp64(t);\n }\n }\n\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n\n vec2 sin_t, cos_t;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n\n\n vec2 result = vec2(0.0, 0.0);\n if (j == 0) {\n if (k > 0) {\n result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n }\n } else if (j == 1) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n } else if (j == -1) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n } else {\n result = -sum_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n }\n } else {\n if (k > 0) {\n result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));\n }\n }\n\n return result;\n}\n\nvec2 cos_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(1.0, 0.0);\n }\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n\n if (k == 0) {\n if (j == 0) {\n return cos_taylor_fp64(t);\n } else if (j == 1) {\n return -sin_taylor_fp64(t);\n } else if (j == -1) {\n return sin_taylor_fp64(t);\n } else {\n return -cos_taylor_fp64(t);\n }\n }\n\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n\n vec2 sin_t, cos_t;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n vec2 result = vec2(0.0, 0.0);\n if (j == 0) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n } else if (j == 1) {\n if (k > 0) {\n result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));\n }\n } else if (j == -1) {\n if (k > 0) {\n result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n }\n } else {\n if (k > 0) {\n result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n } else {\n result = -sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n }\n\n return result;\n}\n\nvec2 tan_fp64(vec2 a) {\n vec2 sin_a;\n vec2 cos_a;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n vec2 sin_t, cos_t;\n vec2 s, c;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n if (k == 0) {\n s = sin_t;\n c = cos_t;\n } else {\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n if (k > 0) {\n s = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n c = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n s = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n c = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n }\n\n if (j == 0) {\n sin_a = s;\n cos_a = c;\n } else if (j == 1) {\n sin_a = c;\n cos_a = -s;\n } else if (j == -1) {\n sin_a = -c;\n cos_a = s;\n } else {\n sin_a = -s;\n cos_a = -c;\n }\n return div_fp64(sin_a, cos_a);\n}\n\nvec2 radians_fp64(vec2 degree) {\n return mul_fp64(degree, PI_180_FP64);\n}\n\nvec2 mix_fp64(vec2 a, vec2 b, float x) {\n vec2 range = sub_fp64(b, a);\n return sum_fp64(a, mul_fp64(range, vec2(x, 0.0)));\n}\n\nvoid vec2_sum_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = sum_fp64(a[0], b[0]);\n out_val[1] = sum_fp64(a[1], b[1]);\n}\n\nvoid vec2_sub_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = sub_fp64(a[0], b[0]);\n out_val[1] = sub_fp64(a[1], b[1]);\n}\n\nvoid vec2_mul_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = mul_fp64(a[0], b[0]);\n out_val[1] = mul_fp64(a[1], b[1]);\n}\n\nvoid vec2_div_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = div_fp64(a[0], b[0]);\n out_val[1] = div_fp64(a[1], b[1]);\n}\n\nvoid vec2_mix_fp64(vec2 x[2], vec2 y[2], float a, out vec2 out_val[2]) {\n vec2 range[2];\n vec2_sub_fp64(y, x, range);\n vec2 portion[2];\n portion[0] = range[0] * a;\n portion[1] = range[1] * a;\n vec2_sum_fp64(x, portion, out_val);\n}\n\nvec2 vec2_length_fp64(vec2 x[2]) {\n return sqrt_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])));\n}\n\nvoid vec2_normalize_fp64(vec2 x[2], out vec2 out_val[2]) {\n vec2 length = vec2_length_fp64(x);\n vec2 length_vec2[2];\n length_vec2[0] = length;\n length_vec2[1] = length;\n\n vec2_div_fp64(x, length_vec2, out_val);\n}\n\nvec2 vec2_distance_fp64(vec2 x[2], vec2 y[2]) {\n vec2 diff[2];\n vec2_sub_fp64(x, y, diff);\n return vec2_length_fp64(diff);\n}\n\nvec2 vec2_dot_fp64(vec2 a[2], vec2 b[2]) {\n vec2 v[2];\n\n v[0] = mul_fp64(a[0], b[0]);\n v[1] = mul_fp64(a[1], b[1]);\n\n return sum_fp64(v[0], v[1]);\n}\nvoid vec3_sub_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {\n for (int i = 0; i < 3; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvoid vec3_sum_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {\n for (int i = 0; i < 3; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvec2 vec3_length_fp64(vec2 x[3]) {\n return sqrt_fp64(sum_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])),\n mul_fp64(x[2], x[2])));\n}\n\nvec2 vec3_distance_fp64(vec2 x[3], vec2 y[3]) {\n vec2 diff[3];\n vec3_sub_fp64(x, y, diff);\n return vec3_length_fp64(diff);\n}\nvoid vec4_fp64(vec4 a, out vec2 out_val[4]) {\n out_val[0].x = a[0];\n out_val[0].y = 0.0;\n\n out_val[1].x = a[1];\n out_val[1].y = 0.0;\n\n out_val[2].x = a[2];\n out_val[2].y = 0.0;\n\n out_val[3].x = a[3];\n out_val[3].y = 0.0;\n}\n\nvoid vec4_scalar_mul_fp64(vec2 a[4], vec2 b, out vec2 out_val[4]) {\n out_val[0] = mul_fp64(a[0], b);\n out_val[1] = mul_fp64(a[1], b);\n out_val[2] = mul_fp64(a[2], b);\n out_val[3] = mul_fp64(a[3], b);\n}\n\nvoid vec4_sum_fp64(vec2 a[4], vec2 b[4], out vec2 out_val[4]) {\n for (int i = 0; i < 4; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvoid vec4_dot_fp64(vec2 a[4], vec2 b[4], out vec2 out_val) {\n vec2 v[4];\n\n v[0] = mul_fp64(a[0], b[0]);\n v[1] = mul_fp64(a[1], b[1]);\n v[2] = mul_fp64(a[2], b[2]);\n v[3] = mul_fp64(a[3], b[3]);\n\n out_val = sum_fp64(sum_fp64(v[0], v[1]), sum_fp64(v[2], v[3]));\n}\n\nvoid mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {\n vec2 tmp[4];\n\n for (int i = 0; i < 4; i++)\n {\n for (int j = 0; j < 4; j++)\n {\n tmp[j] = b[j + i * 4];\n }\n vec4_dot_fp64(a, tmp, out_val[i]);\n }\n}\n",fs:null,dependencies:[{name:"fp64-arithmetic",vs:"uniform float ONE;\nvec2 split(float a) {\n const float SPLIT = 4097.0;\n float t = a * SPLIT;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float a_hi = t * ONE - (t - a);\n float a_lo = a * ONE - a_hi;\n#else\n float a_hi = t - (t - a);\n float a_lo = a - a_hi;\n#endif\n return vec2(a_hi, a_lo);\n}\nvec2 split2(vec2 a) {\n vec2 b = split(a.x);\n b.y += a.y;\n return b;\n}\nvec2 quickTwoSum(float a, float b) {\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float sum = (a + b) * ONE;\n float err = b - (sum - a) * ONE;\n#else\n float sum = a + b;\n float err = b - (sum - a);\n#endif\n return vec2(sum, err);\n}\nvec2 twoSum(float a, float b) {\n float s = (a + b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);\n#else\n float v = s - a;\n float err = (a - (s - v)) + (b - v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSub(float a, float b) {\n float s = (a - b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);\n#else\n float v = s - a;\n float err = (a - (s - v)) - (b + v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSqr(float a) {\n float prod = a * a;\n vec2 a_fp64 = split(a);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *\n a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;\n#else\n float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;\n#endif\n return vec2(prod, err);\n}\n\nvec2 twoProd(float a, float b) {\n float prod = a * b;\n vec2 a_fp64 = split(a);\n vec2 b_fp64 = split(b);\n float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +\n a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;\n return vec2(prod, err);\n}\n\nvec2 sum_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSum(a.x, b.x);\n t = twoSum(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 sub_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSub(a.x, b.x);\n t = twoSub(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 mul_fp64(vec2 a, vec2 b) {\n vec2 prod = twoProd(a.x, b.x);\n prod.y += a.x * b.y;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n prod.y += a.y * b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n return prod;\n}\n\nvec2 div_fp64(vec2 a, vec2 b) {\n float xn = 1.0 / b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n vec2 yn = mul_fp64(a, vec2(xn, 0));\n#else\n vec2 yn = a * xn;\n#endif\n float diff = (sub_fp64(a, mul_fp64(b, yn))).x;\n vec2 prod = twoProd(xn, diff);\n return sum_fp64(yn, prod);\n}\n\nvec2 sqrt_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n\n float x = 1.0 / sqrt(a.x);\n float yn = a.x * x;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n vec2 yn_sqr = twoSqr(yn) * ONE;\n#else\n vec2 yn_sqr = twoSqr(yn);\n#endif\n float diff = sub_fp64(a, yn_sqr).x;\n vec2 prod = twoProd(x * 0.5, diff);\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n return sum_fp64(split(yn), prod);\n#else\n return sum_fp64(vec2(yn, 0.0), prod);\n#endif\n}\n",fs:null,getUniforms:function(){return X},fp64ify:V,fp64LowPart:K,fp64ifyMatrix4:W}],fp64ify:V,fp64LowPart:K,fp64ifyMatrix4:W},z=A(286),$=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],ee={modelMatrix:$,viewMatrix:$,projectionMatrix:$,cameraPositionWorld:[0,0,0]};var te="varying vec4 project_vPositionWorld;\nvarying vec3 project_vNormalWorld;\n\nvec4 project_getPosition_World() {\n return project_vPositionWorld;\n}\n\nvec3 project_getNormal_World() {\n return project_vNormalWorld;\n}\n",Ae={name:"project",getUniforms:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ee,t=(arguments.length>1&&void 0!==arguments[1]&&arguments[1],{});return void 0!==e.modelMatrix&&(t.modelMatrix=e.modelMatrix),void 0!==e.viewMatrix&&(t.viewMatrix=e.viewMatrix),void 0!==e.projectionMatrix&&(t.projectionMatrix=e.projectionMatrix),void 0!==e.cameraPositionWorld&&(t.cameraPositionWorld=e.cameraPositionWorld),void 0===e.projectionMatrix&&void 0===e.viewMatrix||(t.viewProjectionMatrix=new z.a(e.projectionMatrix).multiplyRight(e.viewMatrix)),t},vs:"".concat(te,"\nuniform mat4 modelMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewProjectionMatrix;\nuniform vec3 cameraPositionWorld;\n\nstruct World {\n vec3 position;\n vec3 normal;\n};\n\nWorld world;\n\nvoid project_setPosition(vec4 position) {\n project_vPositionWorld = position;\n}\n\nvoid project_setNormal(vec3 normal) {\n project_vNormalWorld = normal;\n}\n\nvoid project_setPositionAndNormal_World(vec3 position, vec3 normal) {\n world.position = position;\n world.normal = normal;\n}\n\nvoid project_setPositionAndNormal_Model(vec3 position, vec3 normal) {\n world.position = (modelMatrix * vec4(position, 1.)).xyz;\n world.normal = mat3(modelMatrix) * normal;\n}\n\nvec4 project_model_to_clipspace(vec4 position) {\n return viewProjectionMatrix * modelMatrix * position;\n}\n\nvec4 project_model_to_clipspace(vec3 position) {\n return viewProjectionMatrix * modelMatrix * vec4(position, 1.);\n}\n\nvec4 project_world_to_clipspace(vec3 position) {\n return viewProjectionMatrix * vec4(position, 1.);\n}\n\nvec4 project_view_to_clipspace(vec3 position) {\n return projectionMatrix * vec4(position, 1.);\n}\n\nvec4 project_to_clipspace(vec3 position) {\n return viewProjectionMatrix * vec4(position, 1.);\n}\n"),fs:"\n".concat(te)},ne={lightDirection:new Float32Array([1,1,2])};var re={name:"dirlight",vs:null,fs:"uniform vec3 dirlight_uLightDirection;\nvec4 dirlight_filterColor(vec4 color) {\n vec3 normal = project_getNormal_World();\n float d = abs(dot(normalize(normal), normalize(dirlight_uLightDirection)));\n return vec4(color.rgb * d, color.a);\n}\n",getUniforms:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ne,t={};return e.lightDirection&&(t.dirlight_uLightDirection=e.lightDirection),t},dependencies:[Ae]},ie=A(1158),oe=A(655),ae=A(1295),se=A(26);A.d(t,"createGLContext",(function(){return n.c})),A.d(t,"instrumentGLContext",(function(){return n.h})),A.d(t,"isWebGL",(function(){return n.i})),A.d(t,"isWebGL2",(function(){return n.j})),A.d(t,"getParameters",(function(){return n.f})),A.d(t,"setParameters",(function(){return n.n})),A.d(t,"withParameters",(function(){return n.o})),A.d(t,"resetParameters",(function(){return n.l})),A.d(t,"cssToDeviceRatio",(function(){return n.e})),A.d(t,"cssToDevicePixels",(function(){return n.d})),A.d(t,"lumaStats",(function(){return r.a})),A.d(t,"FEATURES",(function(){return i.a})),A.d(t,"hasFeature",(function(){return o.b})),A.d(t,"hasFeatures",(function(){return o.c})),A.d(t,"Buffer",(function(){return a.a})),A.d(t,"Program",(function(){return s.a})),A.d(t,"Framebuffer",(function(){return g.a})),A.d(t,"Renderbuffer",(function(){return c.a})),A.d(t,"Texture2D",(function(){return u.a})),A.d(t,"TextureCube",(function(){return l.a})),A.d(t,"clear",(function(){return I.a})),A.d(t,"readPixelsToArray",(function(){return C.c})),A.d(t,"readPixelsToBuffer",(function(){return C.d})),A.d(t,"cloneTextureFrom",(function(){return h.a})),A.d(t,"copyToTexture",(function(){return C.b})),A.d(t,"Texture3D",(function(){return f.a})),A.d(t,"TransformFeedback",(function(){return d.a})),A.d(t,"AnimationLoop",(function(){return B.a})),A.d(t,"Model",(function(){return p.a})),A.d(t,"Transform",(function(){return E.a})),A.d(t,"ProgramManager",(function(){return Q.a})),A.d(t,"Timeline",(function(){return y.a})),A.d(t,"Geometry",(function(){return v.a})),A.d(t,"ClipSpace",(function(){return m.a})),A.d(t,"ConeGeometry",(function(){return x})),A.d(t,"CubeGeometry",(function(){return N.a})),A.d(t,"CylinderGeometry",(function(){return U})),A.d(t,"IcoSphereGeometry",(function(){return L})),A.d(t,"PlaneGeometry",(function(){return Z})),A.d(t,"SphereGeometry",(function(){return Y})),A.d(t,"TruncatedConeGeometry",(function(){return G})),A.d(t,"normalizeShaderModule",(function(){return j.b})),A.d(t,"fp32",(function(){return P.a})),A.d(t,"fp64",(function(){return q})),A.d(t,"project",(function(){return Ae})),A.d(t,"dirlight",(function(){return re})),A.d(t,"picking",(function(){return ie.a})),A.d(t,"gouraudLighting",(function(){return oe.a})),A.d(t,"phongLighting",(function(){return oe.b})),A.d(t,"pbr",(function(){return ae.a})),A.d(t,"log",(function(){return n.k})),A.d(t,"assert",(function(){return se.a})),A.d(t,"uid",(function(){return R.c}))},,function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,A){"use strict";var n=A(2),r=A(5),i=new Date,o=new Date;function a(e,t,A,n){function r(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return r.floor=function(t){return e(t=new Date(+t)),t},r.ceil=function(A){return e(A=new Date(A-1)),t(A,1),e(A),A},r.round=function(e){var t=r(e),A=r.ceil(e);return e-t<A-e?t:A},r.offset=function(e,A){return t(e=new Date(+e),null==A?1:Math.floor(A)),e},r.range=function(A,n,i){var o,a=[];if(A=r.ceil(A),i=null==i?1:Math.floor(i),!(A<n)||!(i>0))return a;do{a.push(o=new Date(+A)),t(A,i),e(A)}while(o<A&&A<n);return a},r.filter=function(A){return a((function(t){if(t>=t)for(;e(t),!A(t);)t.setTime(t-1)}),(function(e,n){if(e>=e)if(n<0)for(;++n<=0;)for(;t(e,-1),!A(e););else for(;--n>=0;)for(;t(e,1),!A(e););}))},A&&(r.count=function(t,n){return i.setTime(+t),o.setTime(+n),e(i),e(o),Math.floor(A(i,o))},r.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?r.filter(n?function(t){return n(t)%e===0}:function(t){return r.count(0,t)%e===0}):r:null}),r}var s=a((function(e){return e.setHours(0,0,0,0)}),(function(e,t){return e.setDate(e.getDate()+t)}),(function(e,t){return(t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5}),(function(e){return e.getDate()-1})),g=s;s.range;function c(e){return a((function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/6048e5}))}var u=c(0),l=c(1),I=c(2),C=c(3),h=c(4),f=c(5),d=c(6),B=(u.range,l.range,I.range,C.range,h.range,f.range,d.range,a((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/864e5}),(function(e){return e.getUTCDate()-1}))),p=B;B.range;function E(e){return a((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/6048e5}))}var Q=E(0),y=E(1),v=E(2),m=E(3),b=E(4),w=E(5),S=E(6),F=(Q.range,y.range,v.range,m.range,b.range,w.range,S.range,a((function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()})));F.every=function(e){return isFinite(e=Math.floor(e))&&e>0?a((function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,A){t.setFullYear(t.getFullYear()+A*e)})):null};var R=F,D=(F.range,a((function(e){e.setDate(1),e.setHours(0,0,0,0)}),(function(e,t){e.setMonth(e.getMonth()+t)}),(function(e,t){return t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())}),(function(e){return e.getMonth()}))),G=D,k=(D.range,a((function(e){e.setTime(e-e.getMilliseconds()-1e3*e.getSeconds()-6e4*e.getMinutes())}),(function(e,t){e.setTime(+e+36e5*t)}),(function(e,t){return(t-e)/36e5}),(function(e){return e.getHours()}))),x=k,N=(k.range,a((function(e){e.setTime(e-e.getMilliseconds()-1e3*e.getSeconds())}),(function(e,t){e.setTime(+e+6e4*t)}),(function(e,t){return(t-e)/6e4}),(function(e){return e.getMinutes()}))),U=N,_=(N.range,a((function(e){e.setTime(e-e.getMilliseconds())}),(function(e,t){e.setTime(+e+1e3*t)}),(function(e,t){return(t-e)/1e3}),(function(e){return e.getUTCSeconds()}))),M=_,O=(_.range,a((function(){}),(function(e,t){e.setTime(+e+t)}),(function(e,t){return t-e})));O.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?a((function(t){t.setTime(Math.floor(t/e)*e)}),(function(t,A){t.setTime(+t+A*e)}),(function(t,A){return(A-t)/e})):O:null};var L=O,T=(O.range,a((function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()})));T.every=function(e){return isFinite(e=Math.floor(e))&&e>0?a((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,A){t.setUTCFullYear(t.getUTCFullYear()+A*e)})):null};var Z=T,H=(T.range,a((function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCMonth(e.getUTCMonth()+t)}),(function(e,t){return t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return e.getUTCMonth()}))),Y=H,J=(H.range,a((function(e){e.setUTCMinutes(0,0,0)}),(function(e,t){e.setTime(+e+36e5*t)}),(function(e,t){return(t-e)/36e5}),(function(e){return e.getUTCHours()}))),j=J,P=(J.range,a((function(e){e.setUTCSeconds(0,0)}),(function(e,t){e.setTime(+e+6e4*t)}),(function(e,t){return(t-e)/6e4}),(function(e){return e.getUTCMinutes()}))),V=P,K=(P.range,function(e){var t=e,A=e;function n(e,t,n,r){for(null==n&&(n=0),null==r&&(r=e.length);n<r;){var i=n+r>>>1;A(e[i],t)<0?n=i+1:r=i}return n}return 1===e.length&&(t=function(t,A){return e(t)-A},A=function(e){return function(t,A){return(n=e(t))<(r=A)?-1:n>r?1:n>=r?0:NaN;var n,r}}(e)),{left:n,center:function(e,A,r,i){null==r&&(r=0),null==i&&(i=e.length);var o=n(e,A,r,i-1);return o>r&&t(e[o-1],A)>-t(e[o],A)?o-1:o},right:function(e,t,n,r){for(null==n&&(n=0),null==r&&(r=e.length);n<r;){var i=n+r>>>1;A(e[i],t)>0?r=i:n=i+1}return n}}});var W,X,q,z,$,ee,te,Ae=Math.sqrt(50),ne=Math.sqrt(10),re=Math.sqrt(2);function ie(e,t,A){var n=Math.abs(t-e)/Math.max(0,A),r=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),i=n/r;return i>=Ae?r*=10:i>=ne?r*=5:i>=re&&(r*=2),t<e?-r:r}A.d(t,"a",(function(){return ce})),A.d(t,"b",(function(){return ue})),A.d(t,"c",(function(){return le})),A.d(t,"d",(function(){return Ie})),A.d(t,"e",(function(){return fe})),A.d(t,"f",(function(){return Ce})),A.d(t,"g",(function(){return se})),A.d(t,"h",(function(){return ae})),A.d(t,"i",(function(){return he})),A.d(t,"j",(function(){return de})),A.d(t,"k",(function(){return ge})),A.d(t,"l",(function(){return oe})),A.d(t,"m",(function(){return me})),A.d(t,"n",(function(){return st})),A.d(t,"o",(function(){return Te})),A.d(t,"p",(function(){return Pe})),A.d(t,"q",(function(){return We})),A.d(t,"r",(function(){return ze})),A.d(t,"s",(function(){return Qe})),A.d(t,"t",(function(){return pe})),A.d(t,"u",(function(){return Ye})),A.d(t,"v",(function(){return Ve})),A.d(t,"w",(function(){return Xe})),A.d(t,"x",(function(){return $e})),A.d(t,"y",(function(){return De})),A.d(t,"z",(function(){return Ge})),A.d(t,"A",(function(){return be}));var oe="year",ae="quarter",se="month",ge="week",ce="date",ue="day",le="dayofyear",Ie="hours",Ce="minutes",he="seconds",fe="milliseconds",de=[oe,ae,se,ge,ce,ue,le,Ie,Ce,he,fe],Be=de.reduce((function(e,t,A){return e[t]=1+A,e}),{});function pe(e){var t=Object(r.i)(e).slice(),A={};return t.length||Object(r.o)("Missing time unit."),t.forEach((function(e){Object(r.w)(Be,e)?A[e]=1:Object(r.o)("Invalid time unit: ".concat(e,"."))})),(A[ge]||A[ue]?1:0)+(A[ae]||A[se]||A[ce]?1:0)+(A[le]?1:0)>1&&Object(r.o)("Incompatible time units: ".concat(e)),t.sort((function(e,t){return Be[e]-Be[t]})),t}var Ee=(W={},Object(n.a)(W,oe,"%Y "),Object(n.a)(W,ae,"Q%q "),Object(n.a)(W,se,"%b "),Object(n.a)(W,ce,"%d "),Object(n.a)(W,ge,"W%U "),Object(n.a)(W,ue,"%a "),Object(n.a)(W,le,"%j "),Object(n.a)(W,Ie,"%H:00"),Object(n.a)(W,Ce,"00:%M"),Object(n.a)(W,he,":%S"),Object(n.a)(W,fe,".%L"),Object(n.a)(W,"".concat(oe,"-").concat(se),"%Y-%m "),Object(n.a)(W,"".concat(oe,"-").concat(se,"-").concat(ce),"%Y-%m-%d "),Object(n.a)(W,"".concat(Ie,"-").concat(Ce),"%H:%M"),W);function Qe(e,t){var A,n,i=Object(r.p)({},Ee,t),o=pe(e),a=o.length,s="",g=0;for(g=0;g<a;)for(A=o.length;A>g;--A)if(null!=i[n=o.slice(g,A).join("-")]){s+=i[n],g=A;break}return s.trim()}var ye=new Date;function ve(e){return ye.setFullYear(e),ye.setMonth(0),ye.setDate(1),ye.setHours(0,0,0,0),ye}function me(e){return we(new Date(e))}function be(e){return Se(new Date(e))}function we(e){return g.count(ve(e.getFullYear())-1,e)}function Se(e){return u.count(ve(e.getFullYear())-1,e)}function Fe(e){return ve(e).getDay()}function Re(e,t,A,n,r,i,o){if(0<=e&&e<100){var a=new Date(-1,t,A,n,r,i,o);return a.setFullYear(e),a}return new Date(e,t,A,n,r,i,o)}function De(e){return ke(new Date(e))}function Ge(e){return xe(new Date(e))}function ke(e){var t=Date.UTC(e.getUTCFullYear(),0,1);return p.count(t-1,e)}function xe(e){var t=Date.UTC(e.getUTCFullYear(),0,1);return Q.count(t-1,e)}function Ne(e){return ye.setTime(Date.UTC(e,0,1)),ye.getUTCDay()}function Ue(e,t,A,n,r,i,o){if(0<=e&&e<100){var a=new Date(Date.UTC(-1,t,A,n,r,i,o));return a.setUTCFullYear(A.y),a}return new Date(Date.UTC(e,t,A,n,r,i,o))}function _e(e,t,A,n,i){var o=t||1,a=Object(r.W)(e),s=function(e,t,r){return function(e,t,A,n){var r=A<=1?e:n?function(t,r){return n+A*Math.floor((e(t,r)-n)/A)}:function(t,n){return A*Math.floor(e(t,n)/A)};return t?function(e,A){return t(r(e,A),A)}:r}(A[r=r||e],n[r],e===a&&o,t)},g=new Date,c=Object(r.fb)(e),u=c[oe]?s(oe):Object(r.m)(2012),l=c[se]?s(se):c[ae]?s(ae):r.mb,I=c[ge]&&c[ue]?s(ue,1,ge+ue):c[ge]?s(ge,1):c[ue]?s(ue,1):c[ce]?s(ce,1):c[le]?s(le,1):r.Q,C=c[Ie]?s(Ie):r.mb,h=c[Ce]?s(Ce):r.mb,f=c[he]?s(he):r.mb,d=c[fe]?s(fe):r.mb;return function(e){g.setTime(+e);var t=u(g);return i(t,l(g),I(g,t),C(g),h(g),f(g),d(g))}}function Me(e,t,A){return t+7*e-(A+6)%7}var Oe=(X={},Object(n.a)(X,oe,(function(e){return e.getFullYear()})),Object(n.a)(X,ae,(function(e){return Math.floor(e.getMonth()/3)})),Object(n.a)(X,se,(function(e){return e.getMonth()})),Object(n.a)(X,ce,(function(e){return e.getDate()})),Object(n.a)(X,Ie,(function(e){return e.getHours()})),Object(n.a)(X,Ce,(function(e){return e.getMinutes()})),Object(n.a)(X,he,(function(e){return e.getSeconds()})),Object(n.a)(X,fe,(function(e){return e.getMilliseconds()})),Object(n.a)(X,le,(function(e){return we(e)})),Object(n.a)(X,ge,(function(e){return Se(e)})),Object(n.a)(X,ge+ue,(function(e,t){return Me(Se(e),e.getDay(),Fe(t))})),Object(n.a)(X,ue,(function(e,t){return Me(1,e.getDay(),Fe(t))})),X),Le=(q={},Object(n.a)(q,ae,(function(e){return 3*e})),Object(n.a)(q,ge,(function(e,t){return Me(e,0,Fe(t))})),q);function Te(e,t){return _e(e,t||1,Oe,Le,Re)}var Ze=(z={},Object(n.a)(z,oe,(function(e){return e.getUTCFullYear()})),Object(n.a)(z,ae,(function(e){return Math.floor(e.getUTCMonth()/3)})),Object(n.a)(z,se,(function(e){return e.getUTCMonth()})),Object(n.a)(z,ce,(function(e){return e.getUTCDate()})),Object(n.a)(z,Ie,(function(e){return e.getUTCHours()})),Object(n.a)(z,Ce,(function(e){return e.getUTCMinutes()})),Object(n.a)(z,he,(function(e){return e.getUTCSeconds()})),Object(n.a)(z,fe,(function(e){return e.getUTCMilliseconds()})),Object(n.a)(z,le,(function(e){return ke(e)})),Object(n.a)(z,ge,(function(e){return xe(e)})),Object(n.a)(z,ue,(function(e,t){return Me(1,e.getUTCDay(),Ne(t))})),Object(n.a)(z,ge+ue,(function(e,t){return Me(xe(e),e.getUTCDay(),Ne(t))})),z),He=($={},Object(n.a)($,ae,(function(e){return 3*e})),Object(n.a)($,ge,(function(e,t){return Me(e,0,Ne(t))})),$);function Ye(e,t){return _e(e,t||1,Ze,He,Ue)}var Je=(ee={},Object(n.a)(ee,oe,R),Object(n.a)(ee,ae,G.every(3)),Object(n.a)(ee,se,G),Object(n.a)(ee,ge,u),Object(n.a)(ee,ce,g),Object(n.a)(ee,ue,g),Object(n.a)(ee,le,g),Object(n.a)(ee,Ie,x),Object(n.a)(ee,Ce,U),Object(n.a)(ee,he,M),Object(n.a)(ee,fe,L),ee),je=(te={},Object(n.a)(te,oe,Z),Object(n.a)(te,ae,Y.every(3)),Object(n.a)(te,se,Y),Object(n.a)(te,ge,Q),Object(n.a)(te,ce,p),Object(n.a)(te,ue,p),Object(n.a)(te,le,p),Object(n.a)(te,Ie,j),Object(n.a)(te,Ce,V),Object(n.a)(te,he,M),Object(n.a)(te,fe,L),te);function Pe(e){return Je[e]}function Ve(e){return je[e]}function Ke(e,t,A){return e?e.offset(t,A):void 0}function We(e,t,A){return Ke(Pe(e),t,A)}function Xe(e,t,A){return Ke(Ve(e),t,A)}function qe(e,t,A,n){return e?e.range(t,A,n):void 0}function ze(e,t,A,n){return qe(Pe(e),t,A,n)}function $e(e,t,A,n){return qe(Ve(e),t,A,n)}var et=[oe,se,ce,Ie,Ce,he,fe],tt=et.slice(0,-1),At=tt.slice(0,-1),nt=At.slice(0,-1),rt=nt.slice(0,-1),it=[oe,se],ot=[oe],at=[[tt,1,1e3],[tt,5,5e3],[tt,15,15e3],[tt,30,3e4],[At,1,6e4],[At,5,3e5],[At,15,9e5],[At,30,18e5],[nt,1,36e5],[nt,3,108e5],[nt,6,216e5],[nt,12,432e5],[rt,1,864e5],[[oe,ge],1,6048e5],[it,1,2592e6],[it,3,7776e6],[ot,1,31536e6]];function st(e){var t,A,n=e.extent,i=e.maxbins||40,o=Math.abs(Object(r.Z)(n))/i,a=K((function(e){return e[2]})).right(at,o);return a===at.length?(t=ot,A=ie(n[0]/31536e6,n[1]/31536e6,i)):a?(t=(a=at[o/at[a-1][2]<at[a][2]/o?a-1:a])[0],A=a[1]):(t=et,A=Math.max(ie(n[0],n[1],i),1)),{units:t,step:A}}},function(e,t,A){"use strict";(function(e,n){A.d(t,"a",(function(){return k})),A.d(t,"b",(function(){return nt})),A.d(t,"c",(function(){return D})),A.d(t,"d",(function(){return E})),A.d(t,"e",(function(){return ft})),A.d(t,"f",(function(){return Et})),A.d(t,"g",(function(){return M}));var r=A(7),i=A(73),o=A(8),a=A(11),s=A(4),g=A(3),c=A.n(g),u=A(6),l=A(1),I=A(24),C=A(9),h=A(10),f=A(54),d=A(12),B=c.a.mark(K),p=new Map;function E(e,t){p.set(e,t)}function Q(e){return y.apply(this,arguments)}function y(){return(y=Object(d.a)(c.a.mark((function e(t){var A;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(p.has(t.id)){e.next=2;break}throw new Error("Compression codec ".concat(t.id," is not supported by Zarr.js yet."));case 2:return e.next=4,p.get(t.id)();case 4:return A=e.sent,e.abrupt("return",A.fromConfig(t));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function v(e){return new Proxy(e,{set:function(e,t,A,n){return e.setItem(t,A)},get:function(e,t,A){return e.getItem(t)},deleteProperty:function(e,t){return e.deleteItem(t)},has:function(e,t){return e.containsItem(t)}})}function m(e){return"object"===typeof(t=e)&&null!==t&&"__zarr__"in t&&"KeyError"===e.__zarr__;var t}var b=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,"path ".concat(e," contains an array"))).__zarr__="ContainsArrayError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error)),w=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,"path ".concat(e," contains a group"))).__zarr__="ContainsGroupError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error)),S=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,"array not found at path ".concat(e))).__zarr__="ArrayNotFoundError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error)),F=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,"ground not found at path ".concat(e))).__zarr__="GroupNotFoundError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error)),R=(Error,function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,e)).__zarr__="PermissionError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error))),D=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,"key ".concat(e," not present"))).__zarr__="KeyError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error)),G=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e,n){var r;return Object(l.a)(this,A),(r=t.call(this,"too many indices for array; expected ".concat(n.length,", got ").concat(e.length))).__zarr__="TooManyIndicesError",Object.setPrototypeOf(Object(I.a)(r),A.prototype),r}return A}(Object(f.a)(RangeError)),k=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,e)).__zarr__="BoundsCheckError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(RangeError)),x=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e,n,r,i){var o;return Object(l.a)(this,A),(o=t.call(this,"slice arguments slice(".concat(e,", ").concat(n,", ").concat(r,") invalid: ").concat(i))).__zarr__="InvalidSliceError",Object.setPrototypeOf(Object(I.a)(o),A.prototype),o}return A}(Object(f.a)(RangeError)),N=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(){var e;return Object(l.a)(this,A),(e=t.call(this,"Negative step size is not supported when indexing.")).__zarr__="NegativeStepError",Object.setPrototypeOf(Object(I.a)(e),A.prototype),e}return A}(Object(f.a)(Error)),U=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,e)).__zarr__="ValueError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error)),_=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,e)).__zarr__="HTTPError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error));function M(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(void 0===e)throw new x(e,t,A,"The first argument must not be undefined");if("string"===typeof e&&":"!==e||"string"===typeof t&&":"!==t)throw new x(e,t,A,'Arguments can only be integers, ":" or null');return void 0===t&&(t=e,e=null),{start:":"===e?null:e,stop:":"===t?null:t,step:A,_slice:!0}}function O(e,t){var A,n,r;r=null===e.step?1:e.step,null===e.start?A=r<0?Number.MAX_SAFE_INTEGER:0:(A=e.start)<0&&(A+=t),null===e.stop?n=r<0?-Number.MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER:(n=e.stop)<0&&(n+=t);var i=function(e,t,A,n){if(e<0?(e+=n)<0&&(e=A<0?-1:0):e>=n&&(e=A<0?n-1:n),t<0?(t+=n)<0&&(t=A<0?-1:0):t>=n&&(t=A<0?n-1:n),A<0){if(t<e)return[e,t,A,Math.floor((e-t-1)/-A+1)]}else if(e<t)return[e,t,A,Math.floor((t-e-1)/A+1)];return[e,t,A,0]}(A,n,r,t);if(A=i[0],n=i[1],r=i[2],t=i[3],0===r)throw new Error("Step size 0 is invalid");return[A,n,r,t]}function L(e){return Array.isArray(e)?e:[e]}function T(e,t){for(var A=[],n=[],r=0;r<e.length;r++){var i=e[r];if("number"===typeof i)A.push(i);else{var o=O(i,t[r]),a=o[3];n.push(a),A.push(o)}}return[A,n]}function Z(e,t){var A=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e=H(e,t);for(var n=0;n<e.length;n++){var r=e[n];if("number"===typeof r)e[n]=A?M(r,r+1,1):Y(r,t[n]);else{if(J(r))throw new TypeError("Integer array selections are not supported (yet)");":"!==r&&null!==r||(e[n]=M(null,null,1))}}return e}function H(e,t){e=L(e);for(var A=-1,n=0,r=0;r<e.length;r++)"..."===e[r]&&(A=r,n+=1);if(n>1)throw new RangeError("an index can only have a single ellipsis ('...')");if(1===n){var i=A,o=e.length-(i+1),a=e.length-1;if(a>=t.length)e=e.filter((function(e){return"..."!==e}));else{var s=t.length-a,g=e.slice(0,i).concat(new Array(s).fill(null));o>0&&(g=g.concat(e.slice(e.length-o))),e=g}}if(e.length<t.length){var c=t.length-e.length;e=e.concat(new Array(c).fill(null))}return function(e,t){if(e.length>t.length)throw new G(e,t)}(e,t),e}function Y(e,t){if(e<0&&(e=t+e),e>=t||e<0)throw new k("index out of bounds for dimension with length ".concat(t));return e}function J(e){if(!Array.isArray(e))return!1;var t,A=Object(u.a)(e);try{for(A.s();!(t=A.n()).done;){if("number"!==typeof t.value)return!1}}catch(n){A.e(n)}finally{A.f()}return!0}function j(e){return null!==e&&!0===e._slice}function P(e){return j(e)&&(null===e.step||1===e.step)}function V(e){e=L(e);for(var t=0;t<e.length;t++){var A=e[t];if(!J(A)&&!P(A)&&"..."!==A)return!1}return!0}function K(){var e,t,A,n,r,i,o=arguments;return c.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:for(e=o.length,t=new Array(e),A=0;A<e;A++)t[A]=o[A];if(0!==t.length){a.next=3;break}return a.abrupt("return");case 3:n=t.map((function(e){return e()})),r=n.map((function(e){return e.next()})),i=0;case 6:if(!r[i].done){a.next=13;break}if(n[i]=t[i](),r[i]=n[i].next(),!(++i>=n.length)){a.next=11;break}return a.abrupt("return");case 11:a.next=16;break;case 13:return a.next=15,r.map((function(e){return e.value}));case 15:i=0;case 16:r[i]=n[i].next();case 17:a.next=6;break;case 19:case"end":return a.stop()}}),B)}var W=function(){function e(t,A){Object(l.a)(this,e),t=Z(t,A.shape),this.dimIndexers=[];for(var n=A.shape,r=0;r<n.length;r++){var i=t[r],o=n[r],a=A.chunks[r];if(null===i&&(i=M(null)),"number"===typeof i)this.dimIndexers.push(new X(i,o,a));else{if(!j(i))throw new RangeError("Unspported selection item for basic indexing; expected integer or slice, got ".concat(i));this.dimIndexers.push(new q(i,o,a))}}this.shape=[];var s,g=Object(u.a)(this.dimIndexers);try{for(g.s();!(s=g.n()).done;){var c=s.value;c instanceof q&&this.shape.push(c.numItems)}}catch(I){g.e(I)}finally{g.f()}this.dropAxes=null}return Object(s.a)(e,[{key:"iter",value:c.a.mark((function e(){var t,A,n,r,i,o,s,g,l,I,C;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=this.dimIndexers.map((function(e){return function(){return e.iter()}})),A=K.apply(void 0,Object(a.a)(t)),n=Object(u.a)(A),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=16;break}i=r.value,o=[],s=[],g=[],l=Object(u.a)(i);try{for(l.s();!(I=l.n()).done;)C=I.value,o.push(C.dimChunkIndex),s.push(C.dimChunkSelection),null!==C.dimOutSelection&&g.push(C.dimOutSelection)}catch(c){l.e(c)}finally{l.f()}return e.next=14,{chunkCoords:o,chunkSelection:s,outSelection:g};case 14:e.next=5;break;case 16:e.next=21;break;case 18:e.prev=18,e.t0=e.catch(3),n.e(e.t0);case 21:return e.prev=21,n.f(),e.finish(21);case 24:case"end":return e.stop()}}),e,this,[[3,18,21,24]])}))}]),e}(),X=function(){function e(t,A,n){Object(l.a)(this,e),t=Y(t,A),this.dimSelection=t,this.dimLength=A,this.dimChunkLength=n,this.numItems=1}return Object(s.a)(e,[{key:"iter",value:c.a.mark((function e(){var t,A,n;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=Math.floor(this.dimSelection/this.dimChunkLength),A=t*this.dimChunkLength,n=this.dimSelection-A,null,e.next=6,{dimChunkIndex:t,dimChunkSelection:n,dimOutSelection:null};case 6:case"end":return e.stop()}}),e,this)}))}]),e}(),q=function(){function e(t,A,n){Object(l.a)(this,e);var r=O(t,A),i=Object(o.a)(r,3),a=i[0],s=i[1],g=i[2];if(this.start=a,this.stop=s,this.step=g,this.step<1)throw new N;this.dimLength=A,this.dimChunkLength=n,this.numItems=Math.max(0,Math.ceil((this.stop-this.start)/this.step)),this.numChunks=Math.ceil(this.dimLength/this.dimChunkLength)}return Object(s.a)(e,[{key:"iter",value:c.a.mark((function e(){var t,A,n,r,i,o,a,s,g,u,l,I,C;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=Math.floor(this.start/this.dimChunkLength),A=Math.ceil(this.stop/this.dimChunkLength),n=t;case 3:if(!(n<A)){e.next=20;break}return r=n*this.dimChunkLength,i=Math.min(this.dimLength,(n+1)*this.dimChunkLength),o=i-r,a=void 0,s=void 0,g=void 0,this.start<r?(a=0,(u=(r-this.start)%this.step)>0&&(a+=this.step-u),g=Math.ceil((r-this.start)/this.step)):(a=this.start-r,g=0),s=this.stop>i?o:this.stop-r,l=M(a,s,this.step),I=Math.ceil((s-a)/this.step),C=M(g,g+I),e.next=17,{dimChunkIndex:n,dimChunkSelection:l,dimOutSelection:C};case 17:n++,e.next=3;break;case 20:case"end":return e.stop()}}),e,this)}))}]),e}(),z="undefined"!==typeof e&&e.versions&&e.versions.node;function $(e){if(null===e)return"";for(e instanceof String&&(e=e.valueOf()),e=e.replace(/\\/g,"/");e.length>0&&"/"===e[0];)e=e.slice(1);for(;e.length>0&&"/"===e[e.length-1];)e=e.slice(0,e.length-1);var t,A=(e=e.replace(/\/\/+/g,"/")).split("/"),n=Object(u.a)(A);try{for(n.s();!(t=n.n()).done;){var r=t.value;if("."===r||".."===r)throw Error("path containing '.' or '..' segment not allowed")}}catch(i){n.e(i)}finally{n.f()}return e}function ee(e){return"number"===typeof e&&(e=[e]),e.map((function(e){return Math.floor(e)}))}function te(e,t){if(null===e||!0===e)throw new Error("Chunk guessing is not supported yet");return!1===e?t:("number"===typeof e&&(e=[e]),e.length<t.length&&(e=e.concat(t.slice(e.length))),e.map((function(e,A){return-1===e||null===e?t[A]:Math.floor(e)})))}function Ae(e){return e=e.toUpperCase()}function ne(e,t){if(null===e)return!0;Array.isArray(e)||(e=[e]);for(var A=0;A<Math.min(e.length,t.length);A++){var n=e[A];if(null!==n){if(j(n)){var r=n,i=1===r.step||null===r.step;if(null===r.start&&null===r.stop&&i)continue;if(r.stop-r.start===t[A]&&i)continue;return!1}return!1}}return!0}function re(e,t){if(e.length!==t.length)return!1;for(var A=0;A<e.length;A++)if(e[A]!==t[A])return!1;return!0}function ie(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];return t.map((function(e,t){return 0===t?e.trim().replace(/[\/]*$/g,""):e.trim().replace(/(^[\/]*|[\/]*$)/g,"")})).filter((function(e){return e.length})).join("/")}function oe(e){var t=e.BYTES_PER_ELEMENT;if(1!==t){if(z){var A=n.from(e.buffer,e.byteOffset,e.length*t);return 2===t&&A.swap16(),4===t&&A.swap32(),void(8===t&&A.swap64())}for(var r,i=new Uint8Array(e.buffer,e.byteOffset,e.length*t),o=t/2,a=t-1,s=0;s<i.length;s+=t)for(var g=0;g<o;g++)r=i[s+g],i[s+g]=i[s+a-g],i[s+a-g]=r}}function ae(e){var t=e.slice();return oe(t),t}function se(e){return ge.apply(this,arguments)}function ge(){return(ge=Object(d.a)(c.a.mark((function e(t){var A,n,r,i=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=$(A=i.length>1&&void 0!==i[1]?i[1]:null),n=le(A),r=n+".zarray",e.abrupt("return",t.containsItem(r));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ce(e){return ue.apply(this,arguments)}function ue(){return(ue=Object(d.a)(c.a.mark((function e(t){var A,n,r,i=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=$(A=i.length>1&&void 0!==i[1]?i[1]:null),n=le(A),r=n+".zgroup",e.abrupt("return",t.containsItem(r));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function le(e){return e.length>0?e+"/":""}function Ie(e,t,A,n){return Ce.apply(this,arguments)}function Ce(){return(Ce=Object(d.a)(c.a.mark((function e(t,A,n,r){var i,o,a,s,g;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==A.length){e.next=2;break}return e.abrupt("return");case 2:i=A.split("/"),o="",a=Object(u.a)(i.slice(0,i.length-1)),e.prev=5,a.s();case 7:if((s=a.n()).done){e.next=25;break}return g=s.value,o+=g,e.next=12,se(t,o);case 12:if(!e.sent){e.next=17;break}return e.next=15,he(t,o,r);case 15:e.next=22;break;case 17:return e.next=19,ce(t,o);case 19:if(e.sent){e.next=22;break}return e.next=22,he(t,o);case 22:o+="/";case 23:e.next=7;break;case 25:e.next=30;break;case 27:e.prev=27,e.t0=e.catch(5),a.e(e.t0);case 30:return e.prev=30,a.f(),e.finish(30);case 33:case"end":return e.stop()}}),e,null,[[5,27,30,33]])})))).apply(this,arguments)}function he(e){return fe.apply(this,arguments)}function fe(){return(fe=Object(d.a)(c.a.mark((function e(t){var A,n,r,i,o=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=o.length>1&&void 0!==o[1]?o[1]:null,n=o.length>2&&void 0!==o[2]&&o[2],A=$(A),!n){e.next=7;break}throw Error("Group overwriting not implemented yet :(");case 7:return e.next=9,se(t,A);case 9:if(!e.sent){e.next=13;break}throw new b(A);case 13:return e.next=15,ce(t,A);case 15:if(!e.sent){e.next=17;break}throw new w(A);case 17:return r={zarr_format:2},i=le(A)+".zgroup",e.next=21,t.setItem(i,JSON.stringify(r));case 21:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function de(e){return Be.apply(this,arguments)}function Be(){return(Be=Object(d.a)(c.a.mark((function e(t){var A,n,r,i=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=i.length>1&&void 0!==i[1]?i[1]:null,n=i.length>2&&void 0!==i[2]?i[2]:null,r=i.length>3&&void 0!==i[3]&&i[3],A=$(A),e.next=6,Ie(t,A,n,r);case 6:return e.next=8,he(t,A,r);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function pe(e,t,A,n,r,i,o,a,s,g,c,u){return Ee.apply(this,arguments)}function Ee(){return(Ee=Object(d.a)(c.a.mark((function e(t,A,n,r,i,o,a,s,g,u,l,I){var C,h,f;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!g){e.next=4;break}throw Error("Array overwriting not implemented yet :(");case 4:return e.next=6,se(t,i);case 6:if(!e.sent){e.next=10;break}throw new b(i);case 10:return e.next=12,ce(t,i);case 12:if(!e.sent){e.next=14;break}throw new w(i);case 14:if(r=r,A=ee(A),n=te(n,A),s=Ae(s),a=a,!(null!==l&&l.length>0)){e.next=21;break}throw Error("Filters are not supported yet");case 21:return C=a,"number"===typeof a&&(Number.isNaN(a)&&(C="NaN"),Number.POSITIVE_INFINITY===a&&(C="Infinity"),Number.NEGATIVE_INFINITY===a&&(C="-Infinity")),h={zarr_format:2,shape:A,chunks:n,dtype:r,fill_value:C,order:s,compressor:o,filters:l=null},I&&(h.dimension_separator=I),f=le(i)+".zarray",e.next=29,t.setItem(f,JSON.stringify(h));case 29:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Qe(e,t,A,n){return ye.apply(this,arguments)}function ye(){return(ye=Object(d.a)(c.a.mark((function e(t,A,n,r){var i,o,a,s,g,u,l,I,C=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=C.length>4&&void 0!==C[4]?C[4]:null,o=C.length>5&&void 0!==C[5]?C[5]:null,a=C.length>6&&void 0!==C[6]?C[6]:null,s=C.length>7&&void 0!==C[7]?C[7]:"C",g=C.length>8&&void 0!==C[8]&&C[8],u=C.length>9&&void 0!==C[9]?C[9]:null,l=C.length>10&&void 0!==C[10]?C[10]:null,I=C.length>11?C[11]:void 0,i=$(i),e.next=11,Ie(t,i,u,g);case 11:return e.next=13,pe(t,A,n,r,i,o,a,s,g,u,l,I);case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ve(e){if("string"!==typeof e){if(z&&n.isBuffer(e))return JSON.parse(e.toString());if(e instanceof ArrayBuffer){var t=new TextDecoder,A=new Uint8Array(e);return JSON.parse(t.decode(A))}return e}return JSON.parse(e)}var me=function(){function e(t,A,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];Object(l.a)(this,e),this.store=t,this.key=A,this.readOnly=n,this.cache=r,this.cachedValue=null}return Object(s.a)(e,[{key:"asObject",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.cache||null===this.cachedValue){e.next=2;break}return e.abrupt("return",this.cachedValue);case 2:return e.next=4,this.getNoSync();case 4:return t=e.sent,this.cache&&(this.cachedValue=t),e.abrupt("return",t);case 7:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"getNoSync",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.store.getItem(this.key);case 3:return t=e.sent,e.abrupt("return",ve(t));case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",{});case 10:case"end":return e.stop()}}),e,this,[[0,7]])})));return function(){return e.apply(this,arguments)}}()},{key:"setNoSync",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getNoSync();case 2:return(n=e.sent)[t]=A,e.next=6,this.putNoSync(n);case 6:return e.abrupt("return",!0);case 7:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"putNoSync",value:function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.store.setItem(this.key,JSON.stringify(t));case 2:this.cache&&(this.cachedValue=t);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"delNoSync",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getNoSync();case 2:return delete(A=e.sent)[t],e.next=6,this.putNoSync(A);case 6:return e.abrupt("return",!0);case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"put",value:function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.readOnly){e.next=2;break}throw new R("attributes are read-only");case 2:return e.abrupt("return",this.putNoSync(t));case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"setItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.readOnly){e.next=2;break}throw new R("attributes are read-only");case 2:return e.abrupt("return",this.setNoSync(t,A));case 3:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"getItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.asObject();case 2:return e.t0=t,e.abrupt("return",e.sent[e.t0]);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"deleteItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.readOnly){e.next=2;break}throw new R("attributes are read-only");case 2:return e.abrupt("return",this.delNoSync(t));case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"containsItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.asObject();case 2:return e.t0=t,e.t1=e.sent[e.t0],e.t2=void 0,e.abrupt("return",e.t1!==e.t2);case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"proxy",value:function(){return v(this)}}]),e}(),be={"|b":Int8Array,"|B":Uint8Array,"|u1":Uint8Array,"|i1":Int8Array,"<b":Int8Array,"<B":Uint8Array,"<u1":Uint8Array,"<i1":Int8Array,"<u2":Uint16Array,"<i2":Int16Array,"<u4":Uint32Array,"<i4":Int32Array,"<f4":Float32Array,"<f8":Float64Array,">b":Int8Array,">B":Uint8Array,">u1":Uint8Array,">i1":Int8Array,">u2":Uint16Array,">i2":Int16Array,">u4":Uint32Array,">i4":Int32Array,">f4":Float32Array,">f8":Float64Array};function we(e){var t=be[e];if(!t)throw Error("Dtype not recognized or not supported in zarr.js, got ".concat(e,"."));return t}function Se(e){if(e instanceof Uint8Array)return"|u1";if(e instanceof Int8Array)return"|i1";if(e instanceof Uint16Array)return"<u2";if(e instanceof Int16Array)return"<i2";if(e instanceof Uint32Array)return"<u4";if(e instanceof Int32Array)return"<i4";if(e instanceof Float32Array)return"<f4";if(e instanceof Float64Array)return"<f8";throw new U("Mapping for TypedArray to Dtypestring not known")}function Fe(e){return void 0!==e.byteLength?e.constructor:Fe(e[0])}function Re(e,t,A){var n=T(Z(A,t),t),r=Object(o.a)(n,2),i=r[0],a=r[1];return[function e(t,A,n){var r=n[0];if("number"===typeof r)return 1===A.length?t[r]:e(t[r],A.slice(1),n.slice(1));var i=Object(o.a)(r,4),a=i[0],s=i[1],g=i[2],c=i[3];if(0===c)return new(Fe(t))(0);if(1===A.length){if(1===g)return t.slice(a,s);for(var u=new t.constructor(c),l=0;l<c;l++)u[l]=t[a+l*g];return u}for(var I=new Array(c),C=0;C<c;C++)I[C]=e(t[a+C*g],A.slice(1),n.slice(1));if(c>0&&"number"===typeof I[0]){var h=t[0].constructor;I=h.from(I)}return I}(e,t,i),a]}function De(e,t,A,n){var r=T(Z(n,A,!0),A),i=Object(o.a)(r,2),a=i[0];i[1];ke(e,t,A,a)}function Ge(e,t,A,n,r){var i=T(Z(r,A,!1),A),a=Object(o.a)(i,2),s=a[0],g=a[1];if(JSON.stringify(g)!==JSON.stringify(n))throw new U("Shape mismatch in target and source NestedArray: ".concat(g," and ").concat(n));!function e(t,A,n,r){var i=r[0];if("number"===typeof A)return void ke(t,A,n,r.map((function(e){return"number"===typeof e?[e,e+1,1,1]:e})));if("number"===typeof i)return void e(t[i],A,n.slice(1),r.slice(1));var a=Object(o.a)(i,4),s=a[0],g=(a[1],a[2]),c=a[3];if(1===n.length){if(1===g)t.set(A,s);else for(var u=0;u<c;u++)t[s+u*g]=A[u];return}for(var l=0;l<c;l++)e(t[s+l*g],A[l],n.slice(1),r.slice(1))}(e,t,A,s)}function ke(e,t,A,n){var r=n[0],i=Object(o.a)(r,4),a=i[0],s=i[1],g=i[2],c=i[3];if(1!==A.length)for(var u=0;u<c;u++)ke(e[a+u*g],t,A.slice(1),n.slice(1));else if(1===g)e.fill(t,a,s);else for(var l=0;l<c;l++)e[a+l*g]=t}function xe(e,t,A){void 0===A&&(A=Fe(e));var n=new A(t.reduce((function(e,t){return e*t}),1));return function e(t,A,n,r){if(1===A.length)return void n.set(t,r);if(2===A.length){for(var i=0;i<A[0];i++)n.set(t[i],r+A[1]*i);return t}for(var o=A.slice(1),a=o.reduce((function(e,t){return e*t}),1),s=0;s<A[0];s++)e(t[s],o,n,r+a*s);return t}(e,t,n,0),n}var Ne=function(){function e(t,A,r){Object(l.a)(this,e);var i=null!==t&&!!t.BYTES_PER_ELEMENT;if(void 0===A){if(!i)throw new U("Shape argument is required unless you pass in a TypedArray");A=[t.length]}if(void 0===r){if(!i)throw new U("Dtype argument is required unless you pass in a TypedArray");r=Se(t)}if(A=ee(A),this.shape=A,this.dtype=r,i&&1!==A.length&&(t=t.buffer),0===this.shape.length)this.data=new(we(r))(1);else if(z&&n.isBuffer(t)||t instanceof ArrayBuffer||null===t||t.toString().startsWith("[object ArrayBuffer]")){var o=A.reduce((function(e,t){return e*t}),1);null===t&&(t=new ArrayBuffer(o*parseInt(r[r.length-1],10)));var a=t.byteLength/parseInt(r[r.length-1],10);if(o!==a)throw new Error("Buffer has ".concat(a," of dtype ").concat(r,", shape is too large or small ").concat(A," (flat=").concat(o,")"));var s=we(r);this.data=function e(t,A,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(1===n.length)return new A(t.slice(r,r+n[0]*A.BYTES_PER_ELEMENT));var i=new Array(n[0]);if(2===n.length){for(var o=0;o<n[0];o++)i[o]=new A(t.slice(r+n[1]*o*A.BYTES_PER_ELEMENT,r+n[1]*(o+1)*A.BYTES_PER_ELEMENT));return i}for(var a=n.slice(1),s=a.reduce((function(e,t){return e*t}),1),g=0;g<n[0];g++)i[g]=e(t,A,a,r+s*g*A.BYTES_PER_ELEMENT);return i}(t,s,A)}else this.data=t}return Object(s.a)(e,[{key:"get",value:function(t){var A=Re(this.data,this.shape,t),n=Object(o.a)(A,2),r=n[0],i=n[1];return 0===i.length?r:new e(r,i,this.dtype)}},{key:"set",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;null===e&&(e=[M(null)]),"number"===typeof t?0===this.shape.length?this.data[0]=t:De(this.data,t,this.shape,e):Ge(this.data,t.data,this.shape,t.shape,e)}},{key:"flatten",value:function(){return 1===this.shape.length?this.data:xe(this.data,this.shape,we(this.dtype))}}],[{key:"arange",value:function(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"<i4",n=we(A),r=Ue([t],n);return new e(r,[t],A)}}]),e}();function Ue(e,t){var A=e.reduce((function(e,t){return e*t}),1),n=new t(A);return n.set(Object(a.a)(Array(A).keys())),n}function _e(e,t,A,n,r){var a=T(Z(n,A,!0),A);!function e(t,A,n,r){var a=Object(i.a)(r),s=a[0],g=a.slice(1),c=Object(i.a)(n),u=c[0],l=c.slice(1),I=Object(o.a)(s,4),C=I[0],h=(I[1],I[2]),f=I[3];if(1===n.length){if(1===h&&1===u)A.fill(t,C,C+f);else for(var d=0;d<f;d++)A[u*(C+h*d)]=t;return}for(var B=0;B<f;B++)e(t,A.subarray(u*(C+h*B)),l,g)}(r,e,t,Object(o.a)(a,1)[0])}function Me(e,t,A,n,r,a,s){var g=T(Z(n,A,!1),A),c=Object(o.a)(g,2),u=c[0],l=c[1];if(JSON.stringify(l)!==JSON.stringify(s))throw new U("Shape mismatch in target and source RawArray: ".concat(l," and ").concat(s));!function e(t,A,n,r,a){if(0===n.length)return void t.set(r);var s=Object(i.a)(n),g=s[0],c=s.slice(1),u=Object(i.a)(A),l=u[0],I=u.slice(1);if("number"===typeof g)return void e(t.subarray(g*l),I,c,r,a);var C=Object(i.a)(a),h=C[0],f=C.slice(1),d=Object(o.a)(g,4),B=d[0],p=(d[1],d[2]),E=d[3];if(1===A.length){if(1===p&&1===l&&1===h)t.set(r.subarray(0,E),B);else for(var Q=0;Q<E;Q++)t[l*(B+p*Q)]=r[h*Q];return}for(var y=0;y<E;y++)e(t.subarray(l*(B+y*p)),I,c,r.subarray(h*y),f)}(e,t,u,r,a)}function Oe(e,t,A,n,r,a,s,g){var c=T(Z(n,A,!0),A),u=Object(o.a)(c,1)[0],l=T(Z(g,s,!1),s);!function e(t,A,n,r,a,s){if(0===s.length)return void t.set(r.subarray(0,t.length));var g=Object(i.a)(n),c=g[0],u=g.slice(1),l=Object(i.a)(s),I=l[0],C=l.slice(1),h=Object(i.a)(A),f=h[0],d=h.slice(1),B=Object(i.a)(a),p=B[0],E=B.slice(1);if("number"===typeof I)return void e(t,A,n,r.subarray(p*I),E,C);var Q=Object(o.a)(c,4),y=Q[0],v=(Q[1],Q[2]),m=Q[3],b=Object(o.a)(I,4),w=b[0],S=(b[1],b[2]);b[3];if(1===A.length&&1===a.length){if(1===v&&1===f&&1===S&&1===p)t.set(r.subarray(w,w+m),y);else for(var F=0;F<m;F++)t[f*(y+v*F)]=r[p*(w+S*F)];return}for(var R=0;R<m;R++)e(t.subarray(f*(y+R*v)),d,u,r.subarray(p*(w+R*S)),E,C)}(e,t,u,r,a,Object(o.a)(l,1)[0])}var Le=function(){function e(t,A,r,i){Object(l.a)(this,e);var o=null!==t&&!!t.BYTES_PER_ELEMENT;if(void 0===A){if(!o)throw new U("Shape argument is required unless you pass in a TypedArray");A=[t.length]}if(A=ee(A),void 0===r){if(!o)throw new U("Dtype argument is required unless you pass in a TypedArray");r=Se(t)}if(void 0===i&&(i=function(e){for(var t=e.length,A=Array(t),n=1,r=t-1;r>=0;r--)A[r]=n,n*=e[r];return A}(A)),this.shape=A,this.dtype=r,this.strides=i,o&&1!==A.length&&(t=t.buffer),0===this.shape.length)this.data=new(we(r))(1);else if(z&&n.isBuffer(t)||t instanceof ArrayBuffer||null===t||t.toString().startsWith("[object ArrayBuffer]")){var a=A.reduce((function(e,t){return e*t}),1);null===t&&(t=new ArrayBuffer(a*parseInt(r[r.length-1],10)));var s=t.byteLength/parseInt(r[r.length-1],10);if(a!==s)throw new Error("Buffer has ".concat(s," of dtype ").concat(r,", shape is too large or small ").concat(A," (flat=").concat(a,")"));var g=we(r);this.data=new g(t)}else this.data=t}return Object(s.a)(e,[{key:"set",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,A=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0;null===t&&(t=[M(null)]),"number"===typeof A?0===this.shape.length?this.data[0]=A:_e(this.data,this.strides,this.shape,t,A):A instanceof e&&n?Oe(this.data,this.strides,this.shape,t,A.data,A.strides,A.shape,n):Me(this.data,this.strides,this.shape,t,A.data,A.strides,A.shape)}}]),e}();var Te=function(e){var t={exports:{}};return e(t,t.exports),t.exports}((function(e){var t=Object.prototype.hasOwnProperty,A="~";function n(){}function r(e,t,A){this.fn=e,this.context=t,this.once=A||!1}function i(e,t,n,i,o){if("function"!==typeof n)throw new TypeError("The listener must be a function");var a=new r(n,i||e,o),s=A?A+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],a]:e._events[s].push(a):(e._events[s]=a,e._eventsCount++),e}function o(e,t){0===--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(A=!1)),a.prototype.eventNames=function(){var e,n,r=[];if(0===this._eventsCount)return r;for(n in e=this._events)t.call(e,n)&&r.push(A?n.slice(1):n);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(e)):r},a.prototype.listeners=function(e){var t=A?A+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,i=n.length,o=new Array(i);r<i;r++)o[r]=n[r].fn;return o},a.prototype.listenerCount=function(e){var t=A?A+e:e,n=this._events[t];return n?n.fn?1:n.length:0},a.prototype.emit=function(e,t,n,r,i,o){var a=A?A+e:e;if(!this._events[a])return!1;var s,g,c=this._events[a],u=arguments.length;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,r),!0;case 5:return c.fn.call(c.context,t,n,r,i),!0;case 6:return c.fn.call(c.context,t,n,r,i,o),!0}for(g=1,s=new Array(u-1);g<u;g++)s[g-1]=arguments[g];c.fn.apply(c.context,s)}else{var l,I=c.length;for(g=0;g<I;g++)switch(c[g].once&&this.removeListener(e,c[g].fn,void 0,!0),u){case 1:c[g].fn.call(c[g].context);break;case 2:c[g].fn.call(c[g].context,t);break;case 3:c[g].fn.call(c[g].context,t,n);break;case 4:c[g].fn.call(c[g].context,t,n,r);break;default:if(!s)for(l=1,s=new Array(u-1);l<u;l++)s[l-1]=arguments[l];c[g].fn.apply(c[g].context,s)}}return!0},a.prototype.on=function(e,t,A){return i(this,e,t,A,!1)},a.prototype.once=function(e,t,A){return i(this,e,t,A,!0)},a.prototype.removeListener=function(e,t,n,r){var i=A?A+e:e;if(!this._events[i])return this;if(!t)return o(this,i),this;var a=this._events[i];if(a.fn)a.fn!==t||r&&!a.once||n&&a.context!==n||o(this,i);else{for(var s=0,g=[],c=a.length;s<c;s++)(a[s].fn!==t||r&&!a[s].once||n&&a[s].context!==n)&&g.push(a[s]);g.length?this._events[i]=1===g.length?g[0]:g:o(this,i)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=A?A+e:e,this._events[t]&&o(this,t)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=A,a.EventEmitter=a,e.exports=a})),Ze=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,e)).name="TimeoutError",n}return A}(Object(f.a)(Error)),He=function(e,t,A){return new Promise((function(n,r){if("number"!==typeof t||t<0)throw new TypeError("Expected `milliseconds` to be a positive number");if(t!==1/0){var i=setTimeout((function(){if("function"!==typeof A){var i="string"===typeof A?A:"Promise timed out after ".concat(t," milliseconds"),o=A instanceof Error?A:new Ze(i);"function"===typeof e.cancel&&e.cancel(),r(o)}else try{n(A())}catch(a){r(a)}}),t);!function(e,t){t=t||function(){},e.then((function(e){return new Promise((function(e){e(t())})).then((function(){return e}))}),(function(e){return new Promise((function(e){e(t())})).then((function(){throw e}))}))}(e.then(n,r),(function(){clearTimeout(i)}))}else n(e)}))},Ye=He,Je=He,je=Ze;Ye.default=Je,Ye.TimeoutError=je;var Pe,Ve=function(e,t,A){for(var n=0,r=e.length;r>0;){var i=r/2|0,o=n+i;A(e[o],t)<=0?(n=++o,r-=i+1):r=i}return n},Ke=Object.defineProperty({default:Ve},"__esModule",{value:!0}),We=function(){function e(){Object(l.a)(this,e),this._queue=[]}return Object(s.a)(e,[{key:"enqueue",value:function(e,t){var A={priority:(t=Object.assign({priority:0},t)).priority,run:e};if(this.size&&this._queue[this.size-1].priority>=t.priority)this._queue.push(A);else{var n=Ke.default(this._queue,A,(function(e,t){return t.priority-e.priority}));this._queue.splice(n,0,A)}}},{key:"dequeue",value:function(){var e=this._queue.shift();return e&&e.run}},{key:"size",get:function(){return this._queue.length}}]),e}(),Xe=Object.defineProperty({default:We},"__esModule",{value:!0}),qe=function(){},ze=new Ye.default.TimeoutError,$e=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;if(Object(l.a)(this,A),(n=t.call(this))._intervalCount=0,n._intervalEnd=0,n._pendingCount=0,n._resolveEmpty=qe,n._resolveIdle=qe,!("number"===typeof(e=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:Xe.default},e)).intervalCap&&e.intervalCap>=1))throw new TypeError("Expected `intervalCap` to be a number from 1 and up, got `".concat(e.intervalCap,"` (").concat(typeof e.intervalCap,")"));if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError("Expected `interval` to be a finite number >= 0, got `".concat(e.interval,"` (").concat(typeof e.interval,")"));return n._carryoverConcurrencyCount=e.carryoverConcurrencyCount,n._isIntervalIgnored=e.intervalCap===1/0||0===e.interval,n._intervalCap=e.intervalCap,n._interval=e.interval,n._queue=new e.queueClass,n._queueClass=e.queueClass,n.concurrency=e.concurrency,n._timeout=e.timeout,n._throwOnTimeout=!0===e.throwOnTimeout,n._isPaused=!1===e.autoStart,n}return Object(s.a)(A,[{key:"_next",value:function(){this._pendingCount--,this._tryToStartAnother()}},{key:"_resolvePromises",value:function(){this._resolveEmpty(),this._resolveEmpty=qe,0===this._pendingCount&&(this._resolveIdle(),this._resolveIdle=qe)}},{key:"_onResumeInterval",value:function(){this._onInterval(),this._initializeIntervalIfNeeded(),this._timeoutId=void 0}},{key:"_isIntervalPaused",value:function(){var e=this,t=Date.now();if(void 0===this._intervalId){var A=this._intervalEnd-t;if(!(A<0))return void 0===this._timeoutId&&(this._timeoutId=setTimeout((function(){e._onResumeInterval()}),A)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}},{key:"_tryToStartAnother",value:function(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){var e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother)return this.emit("active"),this._queue.dequeue()(),e&&this._initializeIntervalIfNeeded(),!0}return!1}},{key:"_initializeIntervalIfNeeded",value:function(){var e=this;this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval((function(){e._onInterval()}),this._interval),this._intervalEnd=Date.now()+this._interval)}},{key:"_onInterval",value:function(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}},{key:"_processQueue",value:function(){for(;this._tryToStartAnother(););}},{key:"add",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A,n=this,r=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=r.length>1&&void 0!==r[1]?r[1]:{},e.abrupt("return",new Promise((function(e,r){var i=function(){var i=Object(d.a)(c.a.mark((function i(){var o;return c.a.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return n._pendingCount++,n._intervalCount++,i.prev=2,o=void 0===n._timeout&&void 0===A.timeout?t():Ye.default(Promise.resolve(t()),void 0===A.timeout?n._timeout:A.timeout,(function(){(void 0===A.throwOnTimeout?n._throwOnTimeout:A.throwOnTimeout)&&r(ze)})),i.t0=e,i.next=7,o;case 7:i.t1=i.sent,(0,i.t0)(i.t1),i.next=14;break;case 11:i.prev=11,i.t2=i.catch(2),r(i.t2);case 14:n._next();case 15:case"end":return i.stop()}}),i,null,[[2,11]])})));return function(){return i.apply(this,arguments)}}();n._queue.enqueue(i,A),n._tryToStartAnother()})));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},{key:"addAll",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n=this;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t.map(function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",n.add(t,A));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())));case 1:case"end":return e.stop()}}),e)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"start",value:function(){return this._isPaused?(this._isPaused=!1,this._processQueue(),this):this}},{key:"pause",value:function(){this._isPaused=!0}},{key:"clear",value:function(){this._queue=new this._queueClass}},{key:"onEmpty",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t=this;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==this._queue.size){e.next=2;break}return e.abrupt("return");case 2:return e.abrupt("return",new Promise((function(e){var A=t._resolveEmpty;t._resolveEmpty=function(){A(),e()}})));case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"onIdle",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t=this;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==this._pendingCount||0!==this._queue.size){e.next=2;break}return e.abrupt("return");case 2:return e.abrupt("return",new Promise((function(e){var A=t._resolveIdle;t._resolveIdle=function(){A(),e()}})));case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"_doesIntervalAllowAnother",get:function(){return this._isIntervalIgnored||this._intervalCount<this._intervalCap}},{key:"_doesConcurrentAllowAnother",get:function(){return this._pendingCount<this._concurrency}},{key:"concurrency",get:function(){return this._concurrency},set:function(e){if(!("number"===typeof e&&e>=1))throw new TypeError("Expected `concurrency` to be a number from 1 and up, got `".concat(e,"` (").concat(typeof e,")"));this._concurrency=e,this._processQueue()}},{key:"size",get:function(){return this._queue.size}},{key:"pending",get:function(){return this._pendingCount}},{key:"isPaused",get:function(){return this._isPaused}},{key:"timeout",set:function(e){this._timeout=e},get:function(){return this._timeout}}]),A}(Te),et=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],a=!(arguments.length>6&&void 0!==arguments[6])||arguments[6];Object(l.a)(this,e),this.store=t,this._chunkStore=i,this.path=$(A),this.keyPrefix=le(this.path),this.readOnly=r,this.cacheMetadata=o,this.cacheAttrs=a,this.meta=n,null!==this.meta.compressor?this.compressor=Q(this.meta.compressor):this.compressor=null;var s=this.keyPrefix+".zattrs";this.attrs=new me(this.store,s,this.readOnly,a)}return Object(s.a)(e,[{key:"reloadMetadata",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t,A;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.keyPrefix+".zarray",A=this.store.getItem(t),e.t0=ve,e.next=5,A;case 5:return e.t1=e.sent,this.meta=(0,e.t0)(e.t1),e.abrupt("return",this.meta);case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"refreshMetadata",value:function(){var e=Object(d.a)(c.a.mark((function e(){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.cacheMetadata){e.next=3;break}return e.next=3,this.reloadMetadata();case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"get",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getBasicSelection(e,!1,t)}},{key:"getRaw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getBasicSelection(e,!0,t)}},{key:"getBasicSelection",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A,n,r,i,o,a=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=a.length>1&&void 0!==a[1]&&a[1],n=a.length>2&&void 0!==a[2]?a[2]:{},r=n.concurrencyLimit,i=void 0===r?10:r,o=n.progressCallback,this.cacheMetadata){e.next=5;break}return e.next=5,this.reloadMetadata();case 5:if(this.shape!==[]){e.next=9;break}throw new Error("Shape [] indexing is not supported yet");case 9:return e.abrupt("return",this.getBasicSelectionND(t,A,i,o));case 10:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"getBasicSelectionND",value:function(e,t,A,n){var r=new W(e,this);return this.getSelection(r,t,A,n)}},{key:"getSelection",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n,r){var i,o,a,s,g,l,I,C,h,f,B,p,E=this;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=this.dtype,o=t.shape,a=t.shape.reduce((function(e,t){return e*t}),1),!A||a!==this.chunkSize){e.next=12;break}if(s=t.iter(),!1!==(g=s.next()).done||!0!==s.next().done){e.next=12;break}return l=g.value,e.next=10,this.decodeDirectToRawArray(l,o,a);case 10:return I=e.sent,e.abrupt("return",I);case 12:if(C=A?new Le(null,o,i):new Ne(null,o,i),0!==a){e.next=15;break}return e.abrupt("return",C);case 15:if(h=new $e({concurrency:n}),r)!function(){var e,A=0,n=0,i=Object(u.a)(t.iter());try{for(i.s();!(e=i.n()).done;){e.value;n+=1}}catch(g){i.e(g)}finally{i.f()}r({progress:0,queueSize:n});var o,a=Object(u.a)(t.iter());try{var s=function(){var e=o.value;Object(d.a)(c.a.mark((function i(){return c.a.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,h.add((function(){return E.chunkGetItem(e.chunkCoords,e.chunkSelection,C,e.outSelection,t.dropAxes)}));case 2:r({progress:A+=1,queueSize:n});case 4:case"end":return i.stop()}}),i)})))()};for(a.s();!(o=a.n()).done;)s()}catch(g){a.e(g)}finally{a.f()}}();else{f=Object(u.a)(t.iter());try{for(p=function(){var e=B.value;h.add((function(){return E.chunkGetItem(e.chunkCoords,e.chunkSelection,C,e.outSelection,t.dropAxes)}))},f.s();!(B=f.n()).done;)p()}catch(Q){f.e(Q)}finally{f.f()}}return e.next=19,h.onIdle();case 19:if(0!==C.shape.length){e.next=21;break}return e.abrupt("return",C.data[0]);case 21:return e.abrupt("return",C);case 22:case"end":return e.stop()}}),e,this)})));return function(t,A,n,r){return e.apply(this,arguments)}}()},{key:"chunkGetItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n,r,i){var o,a,s,g,u;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.length===this._chunkDataShape.length){e.next=2;break}throw new U("Inconsistent shapes: chunkCoordsLength: ".concat(t.length,", cDataShapeLength: ").concat(this.chunkDataShape.length));case 2:return o=this.chunkKey(t),e.prev=3,e.next=6,this.chunkStore.getItem(o);case 6:return a=e.sent,e.next=9,this.decodeChunk(a);case 9:if(s=e.sent,!(n instanceof Ne)){e.next=21;break}if(!V(r)||!ne(A,this.chunks)||this.meta.filters){e.next=14;break}return n.set(r,this.toNestedArray(s)),e.abrupt("return");case 14:if(g=this.toNestedArray(s),u=g.get(A),null===i){e.next=18;break}throw new Error("Drop axes is not supported yet");case 18:n.set(r,u),e.next=22;break;case 21:n.set(r,this.chunkBufferToRawArray(s),A);case 22:e.next=31;break;case 24:if(e.prev=24,e.t0=e.catch(3),!m(e.t0)){e.next=30;break}null!==this.fillValue&&n.set(r,this.fillValue),e.next=31;break;case 30:throw e.t0;case 31:case"end":return e.stop()}}),e,this,[[3,24]])})));return function(t,A,n,r,i){return e.apply(this,arguments)}}()},{key:"getRawChunk",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n,r,i,o,a,s;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.length===this.shape.length){e.next=2;break}throw new Error("Chunk coordinates ".concat(t.join(".")," do not correspond to shape ").concat(this.shape,"."));case 2:for(e.prev=2,n=0;n<t.length;n++)r=Math.ceil(this.shape[n]/this.chunks[n]),t[n]=Y(t[n],r);e.next=13;break;case 6:if(e.prev=6,e.t0=e.catch(2),!(e.t0 instanceof k)){e.next=12;break}throw new k("index ".concat(t.join(".")," is out of bounds for shape: ").concat(this.shape," and chunks ").concat(this.chunks));case 12:throw e.t0;case 13:return i=this.chunkKey(t),o=this.chunkStore.getItem(i,null===A||void 0===A?void 0:A.storeOptions),e.t1=this,e.next=18,o;case 18:return e.t2=e.sent,e.next=21,e.t1.decodeChunk.call(e.t1,e.t2);case 21:return a=e.sent,s=this.chunks.filter((function(e){return 1!==e})),e.abrupt("return",new Le(a,s,this.dtype));case 24:case"end":return e.stop()}}),e,this,[[2,6]])})));return function(t,A){return e.apply(this,arguments)}}()},{key:"chunkKey",value:function(e){var t,A=null!==(t=this.meta.dimension_separator)&&void 0!==t?t:".";return this.keyPrefix+e.join(A)}},{key:"ensureByteArray",value:function(e){return"string"===typeof e?new Uint8Array(n.from(e).buffer):new Uint8Array(e)}},{key:"toTypedArray",value:function(e){return new(we(this.dtype))(e)}},{key:"toNestedArray",value:function(e){var t=this.ensureByteArray(e).buffer;return new Ne(t,this.chunks,this.dtype)}},{key:"decodeChunk",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=this.ensureByteArray(t),null===this.compressor){e.next=7;break}return e.next=4,this.compressor;case 4:return e.next=6,e.sent.decode(A);case 6:A=e.sent;case 7:return this.dtype.includes(">")&&oe(this.toTypedArray(A.buffer)),e.abrupt("return",A.buffer);case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"chunkBufferToRawArray",value:function(e){return new Le(e,this.chunks,this.dtype)}},{key:"decodeDirectToRawArray",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n){var r,i,o,a;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.chunkCoords,i=this.chunkKey(r),e.prev=2,e.next=5,this.chunkStore.getItem(i);case 5:return o=e.sent,e.t0=Le,e.next=9,this.decodeChunk(o);case 9:return e.t1=e.sent,e.t2=A,e.t3=this.dtype,e.abrupt("return",new e.t0(e.t1,e.t2,e.t3));case 15:if(e.prev=15,e.t4=e.catch(2),!m(e.t4)){e.next=22;break}return a=new(we(this.dtype))(n),e.abrupt("return",new Le(a.fill(this.fillValue),A));case 22:throw e.t4;case 23:case"end":return e.stop()}}),e,this,[[2,15]])})));return function(t,A,n){return e.apply(this,arguments)}}()},{key:"set",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t,A,n,r=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:null,A=r.length>1?r[1]:void 0,n=r.length>2&&void 0!==r[2]?r[2]:{},e.next=5,this.setBasicSelection(t,A,n);case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"setBasicSelection",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n,r,i,o,a=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=a.length>2&&void 0!==a[2]?a[2]:{},r=n.concurrencyLimit,i=void 0===r?10:r,o=n.progressCallback,!this.readOnly){e.next=3;break}throw new R("Object is read only");case 3:if(this.cacheMetadata){e.next=6;break}return e.next=6,this.reloadMetadata();case 6:if(this.shape!==[]){e.next=10;break}throw new Error("Shape [] indexing is not supported yet");case 10:return e.next=12,this.setBasicSelectionND(t,A,i,o);case 12:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"setBasicSelectionND",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n,r){var i;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new W(t,this),e.next=3,this.setSelection(i,A,n,r);case 3:case"end":return e.stop()}}),e,this)})));return function(t,A,n,r){return e.apply(this,arguments)}}()},{key:"getChunkValue",value:function(e,t,A,n){var r;if(n===[])r=A;else if("number"===typeof A)r=A;else if(r=A.get(e.outSelection),null!==t.dropAxes)throw new Error("Handling drop axes not supported yet");return r}},{key:"setSelection",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n,r){var i,o,a,s,g,l=this;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((i=t.shape)!==[]){e.next=5;break}e.next=15;break;case 5:if("number"!==typeof A){e.next=9;break}e.next=15;break;case 9:if(!(A instanceof Ne)){e.next=14;break}if(re(A.shape,i)){e.next=12;break}throw new U("Shape mismatch in source NestedArray and set selection: ".concat(A.shape," and ").concat(i));case 12:e.next=15;break;case 14:throw new Error("Unknown data type for setting :(");case 15:if(o=new $e({concurrency:n}),r)!function(){var e,n=0,a=Object(u.a)(t.iter());try{for(a.s();!(e=a.n()).done;){e.value;n+=1}}catch(h){a.e(h)}finally{a.f()}var s=0;r({progress:0,queueSize:n});var g,I=Object(u.a)(t.iter());try{var C=function(){var e=g.value,a=l.getChunkValue(e,t,A,i);Object(d.a)(c.a.mark((function t(){return c.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,o.add((function(){return l.chunkSetItem(e.chunkCoords,e.chunkSelection,a)}));case 2:r({progress:s+=1,queueSize:n});case 4:case"end":return t.stop()}}),t)})))()};for(I.s();!(g=I.n()).done;)C()}catch(h){I.e(h)}finally{I.f()}}();else{a=Object(u.a)(t.iter());try{for(g=function(){var e=s.value,n=l.getChunkValue(e,t,A,i);o.add((function(){return l.chunkSetItem(e.chunkCoords,e.chunkSelection,n)}))},a.s();!(s=a.n()).done;)g()}catch(I){a.e(I)}finally{a.f()}}return e.next=19,o.onIdle();case 19:case"end":return e.stop()}}),e)})));return function(t,A,n,r){return e.apply(this,arguments)}}()},{key:"chunkSetItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n){var r,i,o,a,s,g,u,l,I;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.chunkKey(t),i=null,o=we(this.dtype),a=this.chunkSize,!ne(A,this.chunks)){e.next=8;break}"number"===typeof n?(i=new o(a)).fill(n):i=n.flatten(),e.next=29;break;case 8:return e.prev=8,e.next=11,this.chunkStore.getItem(r);case 11:return g=e.sent,e.next=14,this.decodeChunk(g);case 14:u=e.sent,s=this.toTypedArray(u),e.next=26;break;case 18:if(e.prev=18,e.t0=e.catch(8),!m(e.t0)){e.next=25;break}s=new o(a),null!==this.fillValue&&s.fill(this.fillValue),e.next=26;break;case 25:throw e.t0;case 26:(l=new Ne(s,this.chunks,this.dtype)).set(A,n),i=l.flatten();case 29:return e.next=31,this.encodeChunk(i);case 31:I=e.sent,this.chunkStore.setItem(r,I);case 33:case"end":return e.stop()}}),e,this,[[8,18]])})));return function(t,A,n){return e.apply(this,arguments)}}()},{key:"encodeChunk",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A,n;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.dtype.includes(">")&&(t=ae(t)),null===this.compressor){e.next=9;break}return A=new Uint8Array(t.buffer),e.next=5,this.compressor;case 5:return e.next=7,e.sent.encode(A);case 7:return n=e.sent,e.abrupt("return",n.buffer);case 9:return e.abrupt("return",t.buffer);case 10:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"chunkStore",get:function(){return this._chunkStore?this._chunkStore:this.store}},{key:"name",get:function(){return this.path.length>0?"/"!==this.path[0]?"/"+this.path:this.path:null}},{key:"basename",get:function(){var e=this.name;if(null===e)return null;var t=e.split("/");return t[t.length-1]}},{key:"shape",get:function(){return this.meta.shape}},{key:"chunks",get:function(){return this.meta.chunks}},{key:"chunkSize",get:function(){return this.chunks.reduce((function(e,t){return e*t}),1)}},{key:"dtype",get:function(){return this.meta.dtype}},{key:"fillValue",get:function(){var e=this.meta.fill_value;return"NaN"===e?NaN:"Infinity"===e?1/0:"-Infinity"===e?-1/0:this.meta.fill_value}},{key:"nDims",get:function(){return this.meta.shape.length}},{key:"size",get:function(){return this.meta.shape.reduce((function(e,t){return e*t}),1)}},{key:"length",get:function(){return this.shape[0]}},{key:"_chunkDataShape",get:function(){if(this.shape===[])return[1];for(var e=[],t=0;t<this.shape.length;t++)e[t]=Math.ceil(this.shape[t]/this.chunks[t]);return e}},{key:"chunkDataShape",get:function(){return this._chunkDataShape}},{key:"numChunks",get:function(){return this.chunkDataShape.reduce((function(e,t){return e*t}),1)}}],[{key:"create",value:function(){var t=Object(d.a)(c.a.mark((function t(A){var n,r,i,o,a,s,g=arguments;return c.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=g.length>1&&void 0!==g[1]?g[1]:null,r=g.length>2&&void 0!==g[2]&&g[2],i=g.length>3&&void 0!==g[3]?g[3]:null,o=!(g.length>4&&void 0!==g[4])||g[4],a=!(g.length>5&&void 0!==g[5])||g[5],t.next=7,this.loadMetadataForConstructor(A,n);case 7:return s=t.sent,t.abrupt("return",new e(A,n,s,r,i,o,a));case 9:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"loadMetadataForConstructor",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n,r;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,A=$(A),n=le(A),e.next=5,t.getItem(n+".zarray");case 5:return r=e.sent,e.abrupt("return",ve(r));case 9:return e.prev=9,e.t0=e.catch(0),e.next=13,ce(t,A);case 13:if(!e.sent){e.next=15;break}throw new w(null!==A&&void 0!==A?A:"");case 15:throw new Error("Failed to load metadata for ZarrArray:"+e.t0.toString());case 16:case"end":return e.stop()}}),e,null,[[0,9]])})));return function(t,A){return e.apply(this,arguments)}}()}]),e}(),tt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(l.a)(this,e),this.root=t}return Object(s.a)(e,[{key:"proxy",value:function(){return v(this)}},{key:"getParent",value:function(e){var t,A=this.root,n=e.split("/"),r=Object(u.a)(n.slice(0,n.length-1));try{for(r.s();!(t=r.n()).done;){if(!(A=A[t.value]))throw Error(e)}}catch(i){r.e(i)}finally{r.f()}return[A,n[n.length-1]]}},{key:"requireParent",value:function(e){var t,A=this.root,n=e.split("/"),r=Object(u.a)(n.slice(0,n.length-1));try{for(r.s();!(t=r.n()).done;){var i=t.value;void 0===A[i]&&(A[i]={}),A=A[i]}}catch(o){r.e(o)}finally{r.f()}return[A,n[n.length-1]]}},{key:"getItem",value:function(e){var t=this.getParent(e),A=Object(o.a)(t,2),n=A[0][A[1]];if(void 0===n)throw new D(e);return n}},{key:"setItem",value:function(e,t){var A=this.requireParent(e),n=Object(o.a)(A,2);return n[0][n[1]]=t,!0}},{key:"deleteItem",value:function(e){var t=this.getParent(e),A=Object(o.a)(t,2);return delete A[0][A[1]]}},{key:"containsItem",value:function(e){try{return void 0!==this.getItem(e)}catch(t){return!1}}},{key:"keys",value:function(){throw new Error("Method not implemented.")}}]),e}();!function(e){e.HEAD="HEAD",e.GET="GET",e.PUT="PUT"}(Pe||(Pe={}));var At=[Pe.HEAD,Pe.GET,Pe.PUT],nt=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(l.a)(this,e),this.url=t;var n=A.fetchOptions,r=void 0===n?{}:n,i=A.supportedMethods,o=void 0===i?At:i;this.fetchOptions=r,this.supportedMethods=new Set(o)}return Object(s.a)(e,[{key:"keys",value:function(){throw new Error("Method not implemented.")}},{key:"getItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var i,o;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=ie(this.url,t),e.next=3,fetch(i,Object(r.a)({},this.fetchOptions,{},A));case 3:if(404!==(o=e.sent).status){e.next=8;break}throw new D(t);case 8:if(200===o.status){e.next=10;break}throw new _(String(o.status));case 10:if(!z){e.next=18;break}return e.t0=n,e.next=14,o.arrayBuffer();case 14:return e.t1=e.sent,e.abrupt("return",e.t0.from.call(e.t0,e.t1));case 18:return e.abrupt("return",o.arrayBuffer());case 19:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"setItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n,i;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.supportedMethods.has(Pe.PUT)){e.next=2;break}throw new Error("HTTP PUT no a supported method for store.");case 2:return n=ie(this.url,t),"string"===typeof A&&(A=(new TextEncoder).encode(A).buffer),e.next=6,fetch(n,Object(r.a)({},this.fetchOptions,{method:Pe.PUT,body:A}));case 6:return i=e.sent,e.abrupt("return","2"===i.status.toString()[0]);case 8:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"deleteItem",value:function(e){throw new Error("Method not implemented.")}},{key:"containsItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A,n,i;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=ie(this.url,t),n=this.supportedMethods.has(Pe.HEAD)?Pe.HEAD:Pe.GET,e.next=4,fetch(A,Object(r.a)({},this.fetchOptions,{method:n}));case 4:return i=e.sent,e.abrupt("return",200===i.status);case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()}]),e}();function rt(e){return it.apply(this,arguments)}function it(){return(it=Object(d.a)(c.a.mark((function e(t){var A,n,r,i,o,a,s,g,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w,S;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=t.shape,n=t.chunks,r=void 0===n||n,i=t.dtype,o=void 0===i?"<i4":i,a=t.compressor,s=void 0===a?null:a,g=t.fillValue,u=void 0===g?null:g,l=t.order,I=void 0===l?"C":l,C=t.store,h=t.overwrite,f=void 0!==h&&h,d=t.path,B=t.chunkStore,p=t.filters,E=t.cacheMetadata,Q=void 0===E||E,y=t.cacheAttrs,v=void 0===y||y,m=t.readOnly,b=void 0!==m&&m,w=t.dimensionSeparator,C=Bt(C),e.next=4,Qe(C,A,r,o,d,s,u,I,f,B,p,w);case 4:return e.next=6,et.create(C,d,b,B,Q,v);case 6:return S=e.sent,e.abrupt("return",S);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ot(e){return at.apply(this,arguments)}function at(){return(at=Object(d.a)(c.a.mark((function e(t){var A,n=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(A=n.length>1&&void 0!==n[1]?n[1]:{}).fillValue=null,e.abrupt("return",rt(Object(r.a)({shape:t},A)));case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function st(e){return gt.apply(this,arguments)}function gt(){return(gt=Object(d.a)(c.a.mark((function e(t){var A,n=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(A=n.length>1&&void 0!==n[1]?n[1]:{}).fillValue=0,e.abrupt("return",rt(Object(r.a)({shape:t},A)));case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ct(e){return ut.apply(this,arguments)}function ut(){return(ut=Object(d.a)(c.a.mark((function e(t){var A,n=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(A=n.length>1&&void 0!==n[1]?n[1]:{}).fillValue=1,e.abrupt("return",rt(Object(r.a)({shape:t},A)));case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function lt(e,t){return It.apply(this,arguments)}function It(){return(It=Object(d.a)(c.a.mark((function e(t,A){var n,i=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(n=i.length>2&&void 0!==i[2]?i[2]:{}).fillValue=A,e.abrupt("return",rt(Object(r.a)({shape:t},n)));case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ct(e){return ht.apply(this,arguments)}function ht(){return(ht=Object(d.a)(c.a.mark((function e(t){var A,n,i,o,a=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=a.length>1&&void 0!==a[1]?a[1]:{},n=null,t instanceof Ne?(n=t.shape,A.dtype=void 0===A.dtype?t.dtype:A.dtype):n=t.byteLength,i=void 0!==A.readOnly&&A.readOnly,A.readOnly=!1,e.next=7,rt(Object(r.a)({shape:n},A));case 7:return o=e.sent,e.next=10,o.set(null,t);case 10:return o.readOnly=i,e.abrupt("return",o);case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ft(){return dt.apply(this,arguments)}function dt(){return(dt=Object(d.a)(c.a.mark((function e(){var t,A,n,r,i,o,a,s,g,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,F,R,D,G,k=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=k.length>0&&void 0!==k[0]?k[0]:{},A=t.shape,n=t.mode,r=void 0===n?"a":n,i=t.chunks,o=void 0===i||i,a=t.dtype,s=void 0===a?"<i4":a,g=t.compressor,u=void 0===g?null:g,l=t.fillValue,I=void 0===l?null:l,C=t.order,h=void 0===C?"C":C,f=t.store,d=t.overwrite,B=void 0!==d&&d,p=t.path,E=void 0===p?null:p,Q=t.chunkStore,y=t.filters,v=t.cacheMetadata,m=void 0===v||v,F=t.cacheAttrs,R=void 0===F||F,D=t.dimensionSeparator,f=Bt(f),void 0===Q&&(Q=Bt(f)),E=$(E),"r"!==r&&"r+"!==r){e.next=15;break}return e.next=7,se(f,E);case 7:if(e.sent){e.next=13;break}return e.next=10,ce(f,E);case 10:if(!e.sent){e.next=12;break}throw new w(E);case 12:throw new S(E);case 13:e.next=56;break;case 15:if("w"!==r){e.next=22;break}if(void 0!==A){e.next=18;break}throw new U("Shape can not be undefined when creating a new array");case 18:return e.next=20,Qe(f,A,o,s,E,u,I,h,B,Q,y,D);case 20:e.next=56;break;case 22:if("a"!==r){e.next=36;break}return e.next=25,se(f,E);case 25:if(e.sent){e.next=34;break}return e.next=28,ce(f,E);case 28:if(!e.sent){e.next=30;break}throw new w(E);case 30:if(void 0!==A){e.next=32;break}throw new U("Shape can not be undefined when creating a new array");case 32:return e.next=34,Qe(f,A,o,s,E,u,I,h,B,Q,y,D);case 34:e.next=56;break;case 36:if("w-"!==r&&"x"!==r){e.next=55;break}return e.next=39,se(f,E);case 39:if(!e.sent){e.next=43;break}throw new b(E);case 43:return e.next=45,ce(f,E);case 45:if(!e.sent){e.next=49;break}throw new w(E);case 49:if(void 0!==A){e.next=51;break}throw new U("Shape can not be undefined when creating a new array");case 51:return e.next=53,Qe(f,A,o,s,E,u,I,h,B,Q,y,D);case 53:e.next=56;break;case 55:throw new U("Invalid mode argument: ".concat(r));case 56:return G="r"===r,e.abrupt("return",et.create(f,E,G,Q,m,R));case 58:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Bt(e){return void 0===e?new tt:"string"===typeof e?new nt(e):e}var pt=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];Object(l.a)(this,e),this.store=t,this._chunkStore=i,this.path=$(A),this.keyPrefix=le(this.path),this.readOnly=r,this.meta=n;var a=this.keyPrefix+".zattrs";this.attrs=new me(this.store,a,this.readOnly,o)}return Object(s.a)(e,[{key:"itemPath",value:function(e){var t="string"===typeof e&&e.length>0&&"/"===e[0],A=$(e);return!t&&this.path.length>0?this.keyPrefix+A:A}},{key:"createGroup",value:function(){var t=Object(d.a)(c.a.mark((function t(A){var n,r,i=arguments;return c.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=i.length>1&&void 0!==i[1]&&i[1],!this.readOnly){t.next=3;break}throw new R("group is read only");case 3:return r=this.itemPath(A),t.next=6,de(this.store,r,this._chunkStore,n);case 6:return t.abrupt("return",e.create(this.store,r,this.readOnly,this._chunkStore,this.attrs.cache));case 7:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"requireGroup",value:function(){var t=Object(d.a)(c.a.mark((function t(A){var n,r,i=arguments;return c.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=i.length>1&&void 0!==i[1]&&i[1],!this.readOnly){t.next=3;break}throw new R("group is read only");case 3:return r=this.itemPath(A),t.next=6,ce(this.store,r);case 6:if(t.sent){t.next=9;break}return t.next=9,de(this.store,r,this._chunkStore,n);case 9:return t.abrupt("return",e.create(this.store,r,this.readOnly,this._chunkStore,this.attrs.cache));case 10:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"getOptsForArrayCreation",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=this.itemPath(e);return t.path=A,void 0===t.cacheAttrs&&(t.cacheAttrs=this.attrs.cache),t.store=this.store,t.chunkStore=this.chunkStore,t}},{key:"array",value:function(e,t,A,n){if(this.readOnly)throw new R("group is read only");return(A=this.getOptsForArrayCreation(e,A)).overwrite=void 0===n?A.overwrite:n,Ct(t,A)}},{key:"empty",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(this.readOnly)throw new R("group is read only");return ot(t,A=this.getOptsForArrayCreation(e,A))}},{key:"zeros",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(this.readOnly)throw new R("group is read only");return st(t,A=this.getOptsForArrayCreation(e,A))}},{key:"ones",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(this.readOnly)throw new R("group is read only");return ct(t,A=this.getOptsForArrayCreation(e,A))}},{key:"full",value:function(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(this.readOnly)throw new R("group is read only");return lt(t,A,n=this.getOptsForArrayCreation(e,n))}},{key:"createDataset",value:function(e,t,A,n){if(this.readOnly)throw new R("group is read only");var i;if(n=this.getOptsForArrayCreation(e,n),void 0===A){if(void 0===t)throw new U("Shape must be set if no data is passed to CreateDataset");i=rt(Object(r.a)({shape:t},n))}else i=Ct(A,n);return i}},{key:"getItem",value:function(){var t=Object(d.a)(c.a.mark((function t(A){var n;return c.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=this.itemPath(A),t.next=3,se(this.store,n);case 3:if(!t.sent){t.next=7;break}return t.abrupt("return",et.create(this.store,n,this.readOnly,this.chunkStore,void 0,this.attrs.cache));case 7:return t.next=9,ce(this.store,n);case 9:if(!t.sent){t.next=11;break}return t.abrupt("return",e.create(this.store,n,this.readOnly,this._chunkStore,this.attrs.cache));case 11:throw new D(A);case 12:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"setItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.array(t,A,{},!0);case 2:return e.abrupt("return",!0);case 3:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"deleteItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.readOnly){e.next=2;break}throw new R("group is read only");case 2:throw new Error("Method not implemented.");case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"containsItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=this.itemPath(t),e.next=3,se(this.store,A);case 3:if(e.t0=e.sent,e.t0){e.next=6;break}e.t0=ce(this.store,A);case 6:return e.abrupt("return",e.t0);case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"proxy",value:function(){return v(this)}},{key:"name",get:function(){return this.path.length>0?"/"!==this.path[0]?"/"+this.path:this.path:"/"}},{key:"basename",get:function(){var e=this.name.split("/");return e[e.length-1]}},{key:"chunkStore",get:function(){return this._chunkStore?this._chunkStore:this.store}}],[{key:"create",value:function(){var t=Object(d.a)(c.a.mark((function t(A){var n,r,i,o,a,s=arguments;return c.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=s.length>1&&void 0!==s[1]?s[1]:null,r=s.length>2&&void 0!==s[2]&&s[2],i=s.length>3&&void 0!==s[3]?s[3]:null,o=!(s.length>4&&void 0!==s[4])||s[4],t.next=6,this.loadMetadataForConstructor(A,n);case 6:return a=t.sent,t.abrupt("return",new e(A,n,a,r,i,o));case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"loadMetadataForConstructor",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n,r;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=$(A),n=le(A),e.prev=2,e.next=5,t.getItem(n+".zgroup");case 5:return r=e.sent,e.abrupt("return",ve(r));case 9:return e.prev=9,e.t0=e.catch(2),e.next=13,se(t,A);case 13:if(!e.sent){e.next=15;break}throw new b(A);case 15:throw new F(A);case 16:case"end":return e.stop()}}),e,null,[[2,9]])})));return function(t,A){return e.apply(this,arguments)}}()}]),e}();function Et(e){return Qt.apply(this,arguments)}function Qt(){return(Qt=Object(d.a)(c.a.mark((function e(t){var A,n,r,i,o,a=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=a.length>1&&void 0!==a[1]?a[1]:null,n=a.length>2&&void 0!==a[2]?a[2]:"a",r=a.length>3?a[3]:void 0,i=!(a.length>4&&void 0!==a[4])||a[4],t=Bt(t),void 0!==r&&(r=Bt(t)),A=$(A),"r"!==n&&"r+"!==n){e.next=18;break}return e.next=10,ce(t,A);case 10:if(e.sent){e.next=16;break}return e.next=13,se(t,A);case 13:if(!e.sent){e.next=15;break}throw new b(A);case 15:throw new F(A);case 16:e.next=53;break;case 18:if("w"!==n){e.next=23;break}return e.next=21,de(t,A,r,!0);case 21:e.next=53;break;case 23:if("a"!==n){e.next=35;break}return e.next=26,ce(t,A);case 26:if(e.sent){e.next=33;break}return e.next=29,se(t,A);case 29:if(!e.sent){e.next=31;break}throw new b(A);case 31:return e.next=33,de(t,A,r);case 33:e.next=53;break;case 35:if("w-"!==n&&"x"!==n){e.next=52;break}return e.next=38,se(t,A);case 38:if(!e.sent){e.next=42;break}throw new b(A);case 42:return e.next=44,ce(t,A);case 44:if(!e.sent){e.next=48;break}throw new w(A);case 48:return e.next=50,de(t,A,r);case 50:e.next=53;break;case 52:throw new U("Invalid mode argument: ".concat(n));case 53:return o="r"===n,e.abrupt("return",pt.create(t,A,o,r,i));case 55:case"end":return e.stop()}}),e)})))).apply(this,arguments)}}).call(this,A(90),A(188).Buffer)},function(e,t,A){"use strict";(function(e,n){A.d(t,"a",(function(){return qe})),A.d(t,"b",(function(){return E})),A.d(t,"c",(function(){return ze})),A.d(t,"d",(function(){return _}));var r=A(7),i=A(73),o=A(8),a=A(11),s=A(4),g=A(3),c=A.n(g),u=A(6),l=A(1),I=A(24),C=A(9),h=A(10),f=A(54),d=A(12),B=c.a.mark(V),p=new Map;function E(e,t){p.set(e,t)}function Q(e){return y.apply(this,arguments)}function y(){return(y=Object(d.a)(c.a.mark((function e(t){var A;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(p.has(t.id)){e.next=2;break}throw new Error("Compression codec ".concat(t.id," is not supported by Zarr.js yet."));case 2:return e.next=4,p.get(t.id)();case 4:return A=e.sent,e.abrupt("return",A.fromConfig(t));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function v(e){return new Proxy(e,{set:function(e,t,A,n){return e.setItem(t,A)},get:function(e,t,A){return e.getItem(t)},deleteProperty:function(e,t){return e.deleteItem(t)},has:function(e,t){return e.containsItem(t)}})}function m(e){return"object"===typeof(t=e)&&null!==t&&"__zarr__"in t&&"KeyError"===e.__zarr__;var t}var b=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,"path ".concat(e," contains an array"))).__zarr__="ContainsArrayError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error)),w=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,"path ".concat(e," contains a group"))).__zarr__="ContainsGroupError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error)),S=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,"array not found at path ".concat(e))).__zarr__="ArrayNotFoundError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error)),F=(Error,Error,function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,e)).__zarr__="PermissionError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error))),R=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,"key ".concat(e," not present"))).__zarr__="KeyError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error)),D=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e,n){var r;return Object(l.a)(this,A),(r=t.call(this,"too many indices for array; expected ".concat(n.length,", got ").concat(e.length))).__zarr__="TooManyIndicesError",Object.setPrototypeOf(Object(I.a)(r),A.prototype),r}return A}(Object(f.a)(RangeError)),G=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,e)).__zarr__="BoundsCheckError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(RangeError)),k=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e,n,r,i){var o;return Object(l.a)(this,A),(o=t.call(this,"slice arguments slice(".concat(e,", ").concat(n,", ").concat(r,") invalid: ").concat(i))).__zarr__="InvalidSliceError",Object.setPrototypeOf(Object(I.a)(o),A.prototype),o}return A}(Object(f.a)(RangeError)),x=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(){var e;return Object(l.a)(this,A),(e=t.call(this,"Negative step size is not supported when indexing.")).__zarr__="NegativeStepError",Object.setPrototypeOf(Object(I.a)(e),A.prototype),e}return A}(Object(f.a)(Error)),N=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,e)).__zarr__="ValueError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error)),U=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,e)).__zarr__="HTTPError",Object.setPrototypeOf(Object(I.a)(n),A.prototype),n}return A}(Object(f.a)(Error));function _(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(void 0===e)throw new k(e,t,A,"The first argument must not be undefined");if("string"===typeof e&&":"!==e||"string"===typeof t&&":"!==t)throw new k(e,t,A,'Arguments can only be integers, ":" or null');return void 0===t&&(t=e,e=null),{start:":"===e?null:e,stop:":"===t?null:t,step:A,_slice:!0}}function M(e,t){var A,n,r;r=null===e.step?1:e.step,null===e.start?A=r<0?Number.MAX_SAFE_INTEGER:0:(A=e.start)<0&&(A+=t),null===e.stop?n=r<0?-Number.MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER:(n=e.stop)<0&&(n+=t);var i=function(e,t,A,n){if(e<0?(e+=n)<0&&(e=A<0?-1:0):e>=n&&(e=A<0?n-1:n),t<0?(t+=n)<0&&(t=A<0?-1:0):t>=n&&(t=A<0?n-1:n),A<0){if(t<e)return[e,t,A,Math.floor((e-t-1)/-A+1)]}else if(e<t)return[e,t,A,Math.floor((t-e-1)/A+1)];return[e,t,A,0]}(A,n,r,t);if(A=i[0],n=i[1],r=i[2],t=i[3],0===r)throw new Error("Step size 0 is invalid");return[A,n,r,t]}function O(e){return Array.isArray(e)?e:[e]}function L(e,t){for(var A=[],n=[],r=0;r<e.length;r++){var i=e[r];if("number"===typeof i)A.push(i);else{var o=M(i,t[r]),a=o[3];n.push(a),A.push(o)}}return[A,n]}function T(e,t){var A=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e=Z(e,t);for(var n=0;n<e.length;n++){var r=e[n];if("number"===typeof r)e[n]=A?_(r,r+1,1):H(r,t[n]);else{if(Y(r))throw new TypeError("Integer array selections are not supported (yet)");":"!==r&&null!==r||(e[n]=_(null,null,1))}}return e}function Z(e,t){e=O(e);for(var A=-1,n=0,r=0;r<e.length;r++)"..."===e[r]&&(A=r,n+=1);if(n>1)throw new RangeError("an index can only have a single ellipsis ('...')");if(1===n){var i=A,o=e.length-(i+1),a=e.length-1;if(a>=t.length)e=e.filter((function(e){return"..."!==e}));else{var s=t.length-a,g=e.slice(0,i).concat(new Array(s).fill(null));o>0&&(g=g.concat(e.slice(e.length-o))),e=g}}if(e.length<t.length){var c=t.length-e.length;e=e.concat(new Array(c).fill(null))}return function(e,t){if(e.length>t.length)throw new D(e,t)}(e,t),e}function H(e,t){if(e<0&&(e=t+e),e>=t||e<0)throw new G("index out of bounds for dimension with length ".concat(t));return e}function Y(e){if(!Array.isArray(e))return!1;var t,A=Object(u.a)(e);try{for(A.s();!(t=A.n()).done;){if("number"!==typeof t.value)return!1}}catch(n){A.e(n)}finally{A.f()}return!0}function J(e){return null!==e&&!0===e._slice}function j(e){return J(e)&&(null===e.step||1===e.step)}function P(e){e=O(e);for(var t=0;t<e.length;t++){var A=e[t];if(!Y(A)&&!j(A)&&"..."!==A)return!1}return!0}function V(){var e,t,A,n,r,i,o=arguments;return c.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:for(e=o.length,t=new Array(e),A=0;A<e;A++)t[A]=o[A];if(0!==t.length){a.next=3;break}return a.abrupt("return");case 3:n=t.map((function(e){return e()})),r=n.map((function(e){return e.next()})),i=0;case 6:if(!r[i].done){a.next=13;break}if(n[i]=t[i](),r[i]=n[i].next(),!(++i>=n.length)){a.next=11;break}return a.abrupt("return");case 11:a.next=16;break;case 13:return a.next=15,r.map((function(e){return e.value}));case 15:i=0;case 16:r[i]=n[i].next();case 17:a.next=6;break;case 19:case"end":return a.stop()}}),B)}var K=function(){function e(t,A){Object(l.a)(this,e),t=T(t,A.shape),this.dimIndexers=[];for(var n=A.shape,r=0;r<n.length;r++){var i=t[r],o=n[r],a=A.chunks[r];if(null===i&&(i=_(null)),"number"===typeof i)this.dimIndexers.push(new W(i,o,a));else{if(!J(i))throw new RangeError("Unspported selection item for basic indexing; expected integer or slice, got ".concat(i));this.dimIndexers.push(new X(i,o,a))}}this.shape=[];var s,g=Object(u.a)(this.dimIndexers);try{for(g.s();!(s=g.n()).done;){var c=s.value;c instanceof X&&this.shape.push(c.numItems)}}catch(I){g.e(I)}finally{g.f()}this.dropAxes=null}return Object(s.a)(e,[{key:"iter",value:c.a.mark((function e(){var t,A,n,r,i,o,s,g,l,I,C;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=this.dimIndexers.map((function(e){return function(){return e.iter()}})),A=V.apply(void 0,Object(a.a)(t)),n=Object(u.a)(A),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=16;break}i=r.value,o=[],s=[],g=[],l=Object(u.a)(i);try{for(l.s();!(I=l.n()).done;)C=I.value,o.push(C.dimChunkIndex),s.push(C.dimChunkSelection),null!==C.dimOutSelection&&g.push(C.dimOutSelection)}catch(c){l.e(c)}finally{l.f()}return e.next=14,{chunkCoords:o,chunkSelection:s,outSelection:g};case 14:e.next=5;break;case 16:e.next=21;break;case 18:e.prev=18,e.t0=e.catch(3),n.e(e.t0);case 21:return e.prev=21,n.f(),e.finish(21);case 24:case"end":return e.stop()}}),e,this,[[3,18,21,24]])}))}]),e}(),W=function(){function e(t,A,n){Object(l.a)(this,e),t=H(t,A),this.dimSelection=t,this.dimLength=A,this.dimChunkLength=n,this.numItems=1}return Object(s.a)(e,[{key:"iter",value:c.a.mark((function e(){var t,A,n;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=Math.floor(this.dimSelection/this.dimChunkLength),A=t*this.dimChunkLength,n=this.dimSelection-A,null,e.next=6,{dimChunkIndex:t,dimChunkSelection:n,dimOutSelection:null};case 6:case"end":return e.stop()}}),e,this)}))}]),e}(),X=function(){function e(t,A,n){Object(l.a)(this,e);var r=M(t,A),i=Object(o.a)(r,3),a=i[0],s=i[1],g=i[2];if(this.start=a,this.stop=s,this.step=g,this.step<1)throw new x;this.dimLength=A,this.dimChunkLength=n,this.numItems=Math.max(0,Math.ceil((this.stop-this.start)/this.step)),this.numChunks=Math.ceil(this.dimLength/this.dimChunkLength)}return Object(s.a)(e,[{key:"iter",value:c.a.mark((function e(){var t,A,n,r,i,o,a,s,g,u,l,I,C;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=Math.floor(this.start/this.dimChunkLength),A=Math.ceil(this.stop/this.dimChunkLength),n=t;case 3:if(!(n<A)){e.next=20;break}return r=n*this.dimChunkLength,i=Math.min(this.dimLength,(n+1)*this.dimChunkLength),o=i-r,a=void 0,s=void 0,g=void 0,this.start<r?(a=0,(u=(r-this.start)%this.step)>0&&(a+=this.step-u),g=Math.ceil((r-this.start)/this.step)):(a=this.start-r,g=0),s=this.stop>i?o:this.stop-r,l=_(a,s,this.step),I=Math.ceil((s-a)/this.step),C=_(g,g+I),e.next=17,{dimChunkIndex:n,dimChunkSelection:l,dimOutSelection:C};case 17:n++,e.next=3;break;case 20:case"end":return e.stop()}}),e,this)}))}]),e}(),q="undefined"!==typeof e&&e.versions&&e.versions.node;function z(e){if(null===e)return"";for(e instanceof String&&(e=e.valueOf()),e=e.replace(/\\/g,"/");e.length>0&&"/"===e[0];)e=e.slice(1);for(;e.length>0&&"/"===e[e.length-1];)e=e.slice(0,e.length-1);var t,A=(e=e.replace(/\/\/+/g,"/")).split("/"),n=Object(u.a)(A);try{for(n.s();!(t=n.n()).done;){var r=t.value;if("."===r||".."===r)throw Error("path containing '.' or '..' segment not allowed")}}catch(i){n.e(i)}finally{n.f()}return e}function $(e){return"number"===typeof e&&(e=[e]),e.map((function(e){return Math.floor(e)}))}function ee(e,t){if(null===e||!0===e)throw new Error("Chunk guessing is not supported yet");return!1===e?t:("number"===typeof e&&(e=[e]),e.length<t.length&&(e=e.concat(t.slice(e.length))),e.map((function(e,A){return-1===e||null===e?t[A]:Math.floor(e)})))}function te(e){return e=e.toUpperCase()}function Ae(e,t){if(null===e)return!0;Array.isArray(e)||(e=[e]);for(var A=0;A<Math.min(e.length,t.length);A++){var n=e[A];if(null!==n){if(J(n)){var r=n,i=1===r.step||null===r.step;if(null===r.start&&null===r.stop&&i)continue;if(r.stop-r.start===t[A]&&i)continue;return!1}return!1}}return!0}function ne(e,t){if(e.length!==t.length)return!1;for(var A=0;A<e.length;A++)if(e[A]!==t[A])return!1;return!0}function re(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];return t.map((function(e,t){return 0===t?e.trim().replace(/[\/]*$/g,""):e.trim().replace(/(^[\/]*|[\/]*$)/g,"")})).filter((function(e){return e.length})).join("/")}function ie(e){var t=e.BYTES_PER_ELEMENT;if(1!==t){if(q){var A=n.from(e.buffer,e.byteOffset,e.length*t);return 2===t&&A.swap16(),4===t&&A.swap32(),void(8===t&&A.swap64())}for(var r,i=new Uint8Array(e.buffer,e.byteOffset,e.length*t),o=t/2,a=t-1,s=0;s<i.length;s+=t)for(var g=0;g<o;g++)r=i[s+g],i[s+g]=i[s+a-g],i[s+a-g]=r}}function oe(e){var t=e.slice();return ie(t),t}function ae(e){return se.apply(this,arguments)}function se(){return(se=Object(d.a)(c.a.mark((function e(t){var A,n,r,i=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=z(A=i.length>1&&void 0!==i[1]?i[1]:null),n=ue(A),r=n+".zarray",e.abrupt("return",t.containsItem(r));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ge(e){return ce.apply(this,arguments)}function ce(){return(ce=Object(d.a)(c.a.mark((function e(t){var A,n,r,i=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=z(A=i.length>1&&void 0!==i[1]?i[1]:null),n=ue(A),r=n+".zgroup",e.abrupt("return",t.containsItem(r));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ue(e){return e.length>0?e+"/":""}function le(e,t,A,n){return Ie.apply(this,arguments)}function Ie(){return(Ie=Object(d.a)(c.a.mark((function e(t,A,n,r){var i,o,a,s,g;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==A.length){e.next=2;break}return e.abrupt("return");case 2:i=A.split("/"),o="",a=Object(u.a)(i.slice(0,i.length-1)),e.prev=5,a.s();case 7:if((s=a.n()).done){e.next=25;break}return g=s.value,o+=g,e.next=12,ae(t,o);case 12:if(!e.sent){e.next=17;break}return e.next=15,Ce(t,o,r);case 15:e.next=22;break;case 17:return e.next=19,ge(t,o);case 19:if(e.sent){e.next=22;break}return e.next=22,Ce(t,o);case 22:o+="/";case 23:e.next=7;break;case 25:e.next=30;break;case 27:e.prev=27,e.t0=e.catch(5),a.e(e.t0);case 30:return e.prev=30,a.f(),e.finish(30);case 33:case"end":return e.stop()}}),e,null,[[5,27,30,33]])})))).apply(this,arguments)}function Ce(e){return he.apply(this,arguments)}function he(){return(he=Object(d.a)(c.a.mark((function e(t){var A,n,r,i,o=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=o.length>1&&void 0!==o[1]?o[1]:null,n=o.length>2&&void 0!==o[2]&&o[2],A=z(A),!n){e.next=7;break}throw Error("Group overwriting not implemented yet :(");case 7:return e.next=9,ae(t,A);case 9:if(!e.sent){e.next=13;break}throw new b(A);case 13:return e.next=15,ge(t,A);case 15:if(!e.sent){e.next=17;break}throw new w(A);case 17:return r={zarr_format:2},i=ue(A)+".zgroup",e.next=21,t.setItem(i,JSON.stringify(r));case 21:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function fe(e,t,A,n,r,i,o,a,s,g,c){return de.apply(this,arguments)}function de(){return(de=Object(d.a)(c.a.mark((function e(t,A,n,r,i,o,a,s,g,u,l){var I,C,h;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!g){e.next=4;break}throw Error("Array overwriting not implemented yet :(");case 4:return e.next=6,ae(t,i);case 6:if(!e.sent){e.next=10;break}throw new b(i);case 10:return e.next=12,ge(t,i);case 12:if(!e.sent){e.next=14;break}throw new w(i);case 14:if(r=r,A=$(A),n=ee(n,A),s=te(s),a=a,!(null!==l&&l.length>0)){e.next=21;break}throw Error("Filters are not supported yet");case 21:return I=a,"number"===typeof a&&(Number.isNaN(a)&&(I="NaN"),Number.POSITIVE_INFINITY===a&&(I="Infinity"),Number.NEGATIVE_INFINITY===a&&(I="-Infinity")),C={zarr_format:2,shape:A,chunks:n,dtype:r,fill_value:I,order:s,compressor:o,filters:l=null},h=ue(i)+".zarray",e.next=28,t.setItem(h,JSON.stringify(C));case 28:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Be(e,t,A,n){return pe.apply(this,arguments)}function pe(){return(pe=Object(d.a)(c.a.mark((function e(t,A,n,r){var i,o,a,s,g,u,l,I=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=I.length>4&&void 0!==I[4]?I[4]:null,o=I.length>5&&void 0!==I[5]?I[5]:null,a=I.length>6&&void 0!==I[6]?I[6]:null,s=I.length>7&&void 0!==I[7]?I[7]:"C",g=I.length>8&&void 0!==I[8]&&I[8],u=I.length>9&&void 0!==I[9]?I[9]:null,l=I.length>10&&void 0!==I[10]?I[10]:null,i=z(i),e.next=10,le(t,i,u,g);case 10:return e.next=12,fe(t,A,n,r,i,o,a,s,g,u,l);case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ee(e){if("string"!==typeof e){if(q&&n.isBuffer(e))return JSON.parse(e.toString());if(e instanceof ArrayBuffer){var t=new TextDecoder,A=new Uint8Array(e);return JSON.parse(t.decode(A))}return e}return JSON.parse(e)}var Qe=function(){function e(t,A,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];Object(l.a)(this,e),this.store=t,this.key=A,this.readOnly=n,this.cache=r,this.cachedValue=null}return Object(s.a)(e,[{key:"asObject",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.cache||null===this.cachedValue){e.next=2;break}return e.abrupt("return",this.cachedValue);case 2:return e.next=4,this.getNoSync();case 4:return t=e.sent,this.cache&&(this.cachedValue=t),e.abrupt("return",t);case 7:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"getNoSync",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.store.getItem(this.key);case 3:return t=e.sent,e.abrupt("return",Ee(t));case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",{});case 10:case"end":return e.stop()}}),e,this,[[0,7]])})));return function(){return e.apply(this,arguments)}}()},{key:"setNoSync",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getNoSync();case 2:return(n=e.sent)[t]=A,e.next=6,this.putNoSync(n);case 6:return e.abrupt("return",!0);case 7:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"putNoSync",value:function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.store.setItem(this.key,JSON.stringify(t));case 2:this.cache&&(this.cachedValue=t);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"delNoSync",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getNoSync();case 2:return delete(A=e.sent)[t],e.next=6,this.putNoSync(A);case 6:return e.abrupt("return",!0);case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"put",value:function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.readOnly){e.next=2;break}throw new F("attributes are read-only");case 2:return e.abrupt("return",this.putNoSync(t));case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"setItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.readOnly){e.next=2;break}throw new F("attributes are read-only");case 2:return e.abrupt("return",this.setNoSync(t,A));case 3:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"getItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.asObject();case 2:return e.t0=t,e.abrupt("return",e.sent[e.t0]);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"deleteItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.readOnly){e.next=2;break}throw new F("attributes are read-only");case 2:return e.abrupt("return",this.delNoSync(t));case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"containsItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.asObject();case 2:return e.t0=t,e.t1=e.sent[e.t0],e.t2=void 0,e.abrupt("return",e.t1!==e.t2);case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"proxy",value:function(){return v(this)}}]),e}(),ye={"|b":Int8Array,"|B":Uint8Array,"|u1":Uint8Array,"|i1":Int8Array,"<b":Int8Array,"<B":Uint8Array,"<u1":Uint8Array,"<i1":Int8Array,"<u2":Uint16Array,"<i2":Int16Array,"<u4":Uint32Array,"<i4":Int32Array,"<f4":Float32Array,"<f8":Float64Array,">b":Int8Array,">B":Uint8Array,">u1":Uint8Array,">i1":Int8Array,">u2":Uint16Array,">i2":Int16Array,">u4":Uint32Array,">i4":Int32Array,">f4":Float32Array,">f8":Float64Array};function ve(e){if(e instanceof Uint8Array)return"|u1";if(e instanceof Int8Array)return"|i1";if(e instanceof Uint16Array)return"<u2";if(e instanceof Int16Array)return"<i2";if(e instanceof Uint32Array)return"<u4";if(e instanceof Int32Array)return"<i4";if(e instanceof Float32Array)return"<f4";if(e instanceof Float64Array)return"<f8";throw new N("Mapping for TypedArray to Dtypestring not known")}function me(e){return void 0!==e.byteLength?e.constructor:me(e[0])}function be(e,t,A){var n=L(T(A,t),t),r=Object(o.a)(n,2),i=r[0],a=r[1];return[function e(t,A,n){var r=n[0];if("number"===typeof r)return 1===A.length?t[r]:e(t[r],A.slice(1),n.slice(1));var i=Object(o.a)(r,4),a=i[0],s=i[1],g=i[2],c=i[3];if(0===c)return new(me(t))(0);if(1===A.length){if(1===g)return t.slice(a,s);for(var u=new t.constructor(c),l=0;l<c;l++)u[l]=t[a+l*g];return u}for(var I=new Array(c),C=0;C<c;C++)I[C]=e(t[a+C*g],A.slice(1),n.slice(1));if(c>0&&"number"===typeof I[0]){var h=t[0].constructor;I=h.from(I)}return I}(e,t,i),a]}function we(e,t,A,n){var r=L(T(n,A,!0),A),i=Object(o.a)(r,2),a=i[0];i[1];Fe(e,t,A,a)}function Se(e,t,A,n,r){var i=L(T(r,A,!1),A),a=Object(o.a)(i,2),s=a[0],g=a[1];if(JSON.stringify(g)!==JSON.stringify(n))throw new N("Shape mismatch in target and source NestedArray: ".concat(g," and ").concat(n));!function e(t,A,n,r){var i=r[0];if("number"===typeof A)return void Fe(t,A,n,r.map((function(e){return"number"===typeof e?[e,e+1,1,1]:e})));if("number"===typeof i)return void e(t[i],A,n.slice(1),r.slice(1));var a=Object(o.a)(i,4),s=a[0],g=(a[1],a[2]),c=a[3];if(1===n.length){if(1===g)t.set(A,s);else for(var u=0;u<c;u++)t[s+u*g]=A[u];return}for(var l=0;l<c;l++)e(t[s+l*g],A[l],n.slice(1),r.slice(1))}(e,t,A,s)}function Fe(e,t,A,n){var r=n[0],i=Object(o.a)(r,4),a=i[0],s=i[1],g=i[2],c=i[3];if(1!==A.length)for(var u=0;u<c;u++)Fe(e[a+u*g],t,A.slice(1),n.slice(1));else if(1===g)e.fill(t,a,s);else for(var l=0;l<c;l++)e[a+l*g]=t}function Re(e,t,A){void 0===A&&(A=me(e));var n=new A(t.reduce((function(e,t){return e*t}),1));return function e(t,A,n,r){if(1===A.length)return void n.set(t,r);if(2===A.length){for(var i=0;i<A[0];i++)n.set(t[i],r+A[1]*i);return t}for(var o=A.slice(1),a=o.reduce((function(e,t){return e*t}),1),s=0;s<A[0];s++)e(t[s],o,n,r+a*s);return t}(e,t,n,0),n}var De=function(){function e(t,A,r){Object(l.a)(this,e);var i=null!==t&&!!t.BYTES_PER_ELEMENT;if(void 0===A){if(!i)throw new N("Shape argument is required unless you pass in a TypedArray");A=[t.length]}if(void 0===r){if(!i)throw new N("Dtype argument is required unless you pass in a TypedArray");r=ve(t)}if(A=$(A),this.shape=A,this.dtype=r,i&&1!==A.length&&(t=t.buffer),0===this.shape.length)this.data=new ye[r](1);else if(q&&n.isBuffer(t)||t instanceof ArrayBuffer||null===t||t.toString().startsWith("[object ArrayBuffer]")){var o=A.reduce((function(e,t){return e*t}),1);null===t&&(t=new ArrayBuffer(o*parseInt(r[r.length-1],10)));var a=t.byteLength/parseInt(r[r.length-1],10);if(o!==a)throw new Error("Buffer has ".concat(a," of dtype ").concat(r,", shape is too large or small ").concat(A," (flat=").concat(o,")"));var s=ye[r];this.data=function e(t,A,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(1===n.length)return new A(t.slice(r,r+n[0]*A.BYTES_PER_ELEMENT));var i=new Array(n[0]);if(2===n.length){for(var o=0;o<n[0];o++)i[o]=new A(t.slice(r+n[1]*o*A.BYTES_PER_ELEMENT,r+n[1]*(o+1)*A.BYTES_PER_ELEMENT));return i}for(var a=n.slice(1),s=a.reduce((function(e,t){return e*t}),1),g=0;g<n[0];g++)i[g]=e(t,A,a,r+s*g*A.BYTES_PER_ELEMENT);return i}(t,s,A)}else this.data=t}return Object(s.a)(e,[{key:"get",value:function(t){var A=be(this.data,this.shape,t),n=Object(o.a)(A,2),r=n[0],i=n[1];return 0===i.length?r:new e(r,i,this.dtype)}},{key:"set",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;null===e&&(e=[_(null)]),"number"===typeof t?0===this.shape.length?this.data[0]=t:we(this.data,t,this.shape,e):Se(this.data,t.data,this.shape,t.shape,e)}},{key:"flatten",value:function(){return 1===this.shape.length?this.data:Re(this.data,this.shape,ye[this.dtype])}}],[{key:"arange",value:function(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"<i4",n=ye[A],r=Ge([t],n);return new e(r,[t],A)}}]),e}();function Ge(e,t){var A=e.reduce((function(e,t){return e*t}),1),n=new t(A);return n.set(Object(a.a)(Array(A).keys())),n}function ke(e,t,A,n,r){var a=L(T(n,A,!0),A);!function e(t,A,n,r){var a=Object(i.a)(r),s=a[0],g=a.slice(1),c=Object(i.a)(n),u=c[0],l=c.slice(1),I=Object(o.a)(s,4),C=I[0],h=(I[1],I[2]),f=I[3];if(1===n.length){if(1===h&&1===u)A.fill(t,C,C+f);else for(var d=0;d<f;d++)A[u*(C+h*d)]=t;return}for(var B=0;B<f;B++)e(t,A.subarray(u*(C+h*B)),l,g)}(r,e,t,Object(o.a)(a,1)[0])}function xe(e,t,A,n,r,a,s){var g=L(T(n,A,!1),A),c=Object(o.a)(g,2),u=c[0],l=c[1];if(JSON.stringify(l)!==JSON.stringify(s))throw new N("Shape mismatch in target and source RawArray: ".concat(l," and ").concat(s));!function e(t,A,n,r,a){if(0===n.length)return void t.set(r);var s=Object(i.a)(n),g=s[0],c=s.slice(1),u=Object(i.a)(A),l=u[0],I=u.slice(1);if("number"===typeof g)return void e(t.subarray(g*l),I,c,r,a);var C=Object(i.a)(a),h=C[0],f=C.slice(1),d=Object(o.a)(g,4),B=d[0],p=(d[1],d[2]),E=d[3];if(1===A.length){if(1===p&&1===l&&1===h)t.set(r.subarray(0,E),B);else for(var Q=0;Q<E;Q++)t[l*(B+p*Q)]=r[h*Q];return}for(var y=0;y<E;y++)e(t.subarray(l*(B+y*p)),I,c,r.subarray(h*y),f)}(e,t,u,r,a)}function Ne(e,t,A,n,r,a,s,g){var c=L(T(n,A,!0),A),u=Object(o.a)(c,1)[0],l=L(T(g,s,!1),s);!function e(t,A,n,r,a,s){if(0===s.length)return void t.set(r.subarray(0,t.length));var g=Object(i.a)(n),c=g[0],u=g.slice(1),l=Object(i.a)(s),I=l[0],C=l.slice(1),h=Object(i.a)(A),f=h[0],d=h.slice(1),B=Object(i.a)(a),p=B[0],E=B.slice(1);if("number"===typeof I)return void e(t,A,n,r.subarray(p*I),E,C);var Q=Object(o.a)(c,4),y=Q[0],v=(Q[1],Q[2]),m=Q[3],b=Object(o.a)(I,4),w=b[0],S=(b[1],b[2]);b[3];if(1===A.length&&1===a.length){if(1===v&&1===f&&1===S&&1===p)t.set(r.subarray(w,w+m),y);else for(var F=0;F<m;F++)t[f*(y+v*F)]=r[p*(w+S*F)];return}for(var R=0;R<m;R++)e(t.subarray(f*(y+R*v)),d,u,r.subarray(p*(w+R*S)),E,C)}(e,t,u,r,a,Object(o.a)(l,1)[0])}var Ue=function(){function e(t,A,r,i){Object(l.a)(this,e);var o=null!==t&&!!t.BYTES_PER_ELEMENT;if(void 0===A){if(!o)throw new N("Shape argument is required unless you pass in a TypedArray");A=[t.length]}if(A=$(A),void 0===r){if(!o)throw new N("Dtype argument is required unless you pass in a TypedArray");r=ve(t)}if(void 0===i&&(i=function(e){for(var t=e.length,A=Array(t),n=1,r=t-1;r>=0;r--)A[r]=n,n*=e[r];return A}(A)),this.shape=A,this.dtype=r,this.strides=i,o&&1!==A.length&&(t=t.buffer),0===this.shape.length)this.data=new ye[r](1);else if(q&&n.isBuffer(t)||t instanceof ArrayBuffer||null===t||t.toString().startsWith("[object ArrayBuffer]")){var a=A.reduce((function(e,t){return e*t}),1);null===t&&(t=new ArrayBuffer(a*parseInt(r[r.length-1],10)));var s=t.byteLength/parseInt(r[r.length-1],10);if(a!==s)throw new Error("Buffer has ".concat(s," of dtype ").concat(r,", shape is too large or small ").concat(A," (flat=").concat(a,")"));var g=ye[r];this.data=new g(t)}else this.data=t}return Object(s.a)(e,[{key:"set",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,A=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0;null===t&&(t=[_(null)]),"number"===typeof A?0===this.shape.length?this.data[0]=A:ke(this.data,this.strides,this.shape,t,A):A instanceof e&&n?Ne(this.data,this.strides,this.shape,t,A.data,A.strides,A.shape,n):xe(this.data,this.strides,this.shape,t,A.data,A.strides,A.shape)}}]),e}();function _e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Me(e,t){return e(t={exports:{}},t.exports),t.exports}var Oe=Me((function(e){var t=Object.prototype.hasOwnProperty,A="~";function n(){}function r(e,t,A){this.fn=e,this.context=t,this.once=A||!1}function i(e,t,n,i,o){if("function"!==typeof n)throw new TypeError("The listener must be a function");var a=new r(n,i||e,o),s=A?A+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],a]:e._events[s].push(a):(e._events[s]=a,e._eventsCount++),e}function o(e,t){0===--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(A=!1)),a.prototype.eventNames=function(){var e,n,r=[];if(0===this._eventsCount)return r;for(n in e=this._events)t.call(e,n)&&r.push(A?n.slice(1):n);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(e)):r},a.prototype.listeners=function(e){var t=A?A+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,i=n.length,o=new Array(i);r<i;r++)o[r]=n[r].fn;return o},a.prototype.listenerCount=function(e){var t=A?A+e:e,n=this._events[t];return n?n.fn?1:n.length:0},a.prototype.emit=function(e,t,n,r,i,o){var a=A?A+e:e;if(!this._events[a])return!1;var s,g,c=this._events[a],u=arguments.length;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,r),!0;case 5:return c.fn.call(c.context,t,n,r,i),!0;case 6:return c.fn.call(c.context,t,n,r,i,o),!0}for(g=1,s=new Array(u-1);g<u;g++)s[g-1]=arguments[g];c.fn.apply(c.context,s)}else{var l,I=c.length;for(g=0;g<I;g++)switch(c[g].once&&this.removeListener(e,c[g].fn,void 0,!0),u){case 1:c[g].fn.call(c[g].context);break;case 2:c[g].fn.call(c[g].context,t);break;case 3:c[g].fn.call(c[g].context,t,n);break;case 4:c[g].fn.call(c[g].context,t,n,r);break;default:if(!s)for(l=1,s=new Array(u-1);l<u;l++)s[l-1]=arguments[l];c[g].fn.apply(c[g].context,s)}}return!0},a.prototype.on=function(e,t,A){return i(this,e,t,A,!1)},a.prototype.once=function(e,t,A){return i(this,e,t,A,!0)},a.prototype.removeListener=function(e,t,n,r){var i=A?A+e:e;if(!this._events[i])return this;if(!t)return o(this,i),this;var a=this._events[i];if(a.fn)a.fn!==t||r&&!a.once||n&&a.context!==n||o(this,i);else{for(var s=0,g=[],c=a.length;s<c;s++)(a[s].fn!==t||r&&!a[s].once||n&&a[s].context!==n)&&g.push(a[s]);g.length?this._events[i]=1===g.length?g[0]:g:o(this,i)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=A?A+e:e,this._events[t]&&o(this,t)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=A,a.EventEmitter=a,e.exports=a})),Le=function(e){Object(C.a)(A,e);var t=Object(h.a)(A);function A(e){var n;return Object(l.a)(this,A),(n=t.call(this,e)).name="TimeoutError",n}return A}(Object(f.a)(Error)),Te=function(e,t,A){return new Promise((function(n,r){if("number"!==typeof t||t<0)throw new TypeError("Expected `milliseconds` to be a positive number");if(t!==1/0){var i=setTimeout((function(){if("function"!==typeof A){var i="string"===typeof A?A:"Promise timed out after ".concat(t," milliseconds"),o=A instanceof Error?A:new Le(i);"function"===typeof e.cancel&&e.cancel(),r(o)}else try{n(A())}catch(a){r(a)}}),t);!function(e,t){t=t||function(){},e.then((function(e){return new Promise((function(e){e(t())})).then((function(){return e}))}),(function(e){return new Promise((function(e){e(t())})).then((function(){throw e}))}))}(e.then(n,r),(function(){clearTimeout(i)}))}else n(e)}))},Ze=Te,He=Te,Ye=Le;Ze.default=He,Ze.TimeoutError=Ye;var Je=Me((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,A){for(var n=0,r=e.length;r>0;){var i=r/2|0,o=n+i;A(e[o],t)<=0?(n=++o,r-=i+1):r=i}return n}}));_e(Je);var je=Me((function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var A=function(){function e(){Object(l.a)(this,e),this._queue=[]}return Object(s.a)(e,[{key:"enqueue",value:function(e,t){var A={priority:(t=Object.assign({priority:0},t)).priority,run:e};if(this.size&&this._queue[this.size-1].priority>=t.priority)this._queue.push(A);else{var n=Je.default(this._queue,A,(function(e,t){return t.priority-e.priority}));this._queue.splice(n,0,A)}}},{key:"dequeue",value:function(){var e=this._queue.shift();return e&&e.run}},{key:"size",get:function(){return this._queue.length}}]),e}();t.default=A}));_e(je);var Pe,Ve=_e(Me((function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var A=function(){},n=new Ze.default.TimeoutError,r=function(e){Object(C.a)(r,e);var t=Object(h.a)(r);function r(e){var n;if(Object(l.a)(this,r),(n=t.call(this))._intervalCount=0,n._intervalEnd=0,n._pendingCount=0,n._resolveEmpty=A,n._resolveIdle=A,!("number"===typeof(e=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:je.default},e)).intervalCap&&e.intervalCap>=1))throw new TypeError("Expected `intervalCap` to be a number from 1 and up, got `".concat(e.intervalCap,"` (").concat(typeof e.intervalCap,")"));if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError("Expected `interval` to be a finite number >= 0, got `".concat(e.interval,"` (").concat(typeof e.interval,")"));return n._carryoverConcurrencyCount=e.carryoverConcurrencyCount,n._isIntervalIgnored=e.intervalCap===1/0||0===e.interval,n._intervalCap=e.intervalCap,n._interval=e.interval,n._queue=new e.queueClass,n._queueClass=e.queueClass,n.concurrency=e.concurrency,n._timeout=e.timeout,n._throwOnTimeout=!0===e.throwOnTimeout,n._isPaused=!1===e.autoStart,n}return Object(s.a)(r,[{key:"_next",value:function(){this._pendingCount--,this._tryToStartAnother()}},{key:"_resolvePromises",value:function(){this._resolveEmpty(),this._resolveEmpty=A,0===this._pendingCount&&(this._resolveIdle(),this._resolveIdle=A)}},{key:"_onResumeInterval",value:function(){this._onInterval(),this._initializeIntervalIfNeeded(),this._timeoutId=void 0}},{key:"_isIntervalPaused",value:function(){var e=this,t=Date.now();if(void 0===this._intervalId){var A=this._intervalEnd-t;if(!(A<0))return void 0===this._timeoutId&&(this._timeoutId=setTimeout((function(){e._onResumeInterval()}),A)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}},{key:"_tryToStartAnother",value:function(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){var e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother)return this.emit("active"),this._queue.dequeue()(),e&&this._initializeIntervalIfNeeded(),!0}return!1}},{key:"_initializeIntervalIfNeeded",value:function(){var e=this;this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval((function(){e._onInterval()}),this._interval),this._intervalEnd=Date.now()+this._interval)}},{key:"_onInterval",value:function(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}},{key:"_processQueue",value:function(){for(;this._tryToStartAnother(););}},{key:"add",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A,r=this,i=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=i.length>1&&void 0!==i[1]?i[1]:{},e.abrupt("return",new Promise((function(e,i){var o=function(){var o=Object(d.a)(c.a.mark((function o(){var a;return c.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return r._pendingCount++,r._intervalCount++,o.prev=2,a=void 0===r._timeout&&void 0===A.timeout?t():Ze.default(Promise.resolve(t()),void 0===A.timeout?r._timeout:A.timeout,(function(){(void 0===A.throwOnTimeout?r._throwOnTimeout:A.throwOnTimeout)&&i(n)})),o.t0=e,o.next=7,a;case 7:o.t1=o.sent,(0,o.t0)(o.t1),o.next=14;break;case 11:o.prev=11,o.t2=o.catch(2),i(o.t2);case 14:r._next();case 15:case"end":return o.stop()}}),o,null,[[2,11]])})));return function(){return o.apply(this,arguments)}}();r._queue.enqueue(o,A),r._tryToStartAnother()})));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},{key:"addAll",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n=this;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t.map(function(){var e=Object(d.a)(c.a.mark((function e(t){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",n.add(t,A));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())));case 1:case"end":return e.stop()}}),e)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"start",value:function(){return this._isPaused?(this._isPaused=!1,this._processQueue(),this):this}},{key:"pause",value:function(){this._isPaused=!0}},{key:"clear",value:function(){this._queue=new this._queueClass}},{key:"onEmpty",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t=this;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==this._queue.size){e.next=2;break}return e.abrupt("return");case 2:return e.abrupt("return",new Promise((function(e){var A=t._resolveEmpty;t._resolveEmpty=function(){A(),e()}})));case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"onIdle",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t=this;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==this._pendingCount||0!==this._queue.size){e.next=2;break}return e.abrupt("return");case 2:return e.abrupt("return",new Promise((function(e){var A=t._resolveIdle;t._resolveIdle=function(){A(),e()}})));case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"_doesIntervalAllowAnother",get:function(){return this._isIntervalIgnored||this._intervalCount<this._intervalCap}},{key:"_doesConcurrentAllowAnother",get:function(){return this._pendingCount<this._concurrency}},{key:"concurrency",get:function(){return this._concurrency},set:function(e){if(!("number"===typeof e&&e>=1))throw new TypeError("Expected `concurrency` to be a number from 1 and up, got `".concat(e,"` (").concat(typeof e,")"));this._concurrency=e,this._processQueue()}},{key:"size",get:function(){return this._queue.size}},{key:"pending",get:function(){return this._pendingCount}},{key:"isPaused",get:function(){return this._isPaused}},{key:"timeout",set:function(e){this._timeout=e},get:function(){return this._timeout}}]),r}(Oe);t.default=r}))),Ke=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],a=!(arguments.length>6&&void 0!==arguments[6])||arguments[6];Object(l.a)(this,e),this.store=t,this._chunkStore=i,this.path=z(A),this.keyPrefix=ue(this.path),this.readOnly=r,this.cacheMetadata=o,this.cacheAttrs=a,this.meta=n,null!==this.meta.compressor?this.compressor=Q(this.meta.compressor):this.compressor=null;var s=this.keyPrefix+".zattrs";this.attrs=new Qe(this.store,s,this.readOnly,a)}return Object(s.a)(e,[{key:"reloadMetadata",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t,A;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.keyPrefix+".zarray",A=this.store.getItem(t),e.t0=Ee,e.next=5,A;case 5:return e.t1=e.sent,this.meta=(0,e.t0)(e.t1),e.abrupt("return",this.meta);case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"refreshMetadata",value:function(){var e=Object(d.a)(c.a.mark((function e(){return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.cacheMetadata){e.next=3;break}return e.next=3,this.reloadMetadata();case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"get",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getBasicSelection(e,!1,t)}},{key:"getRaw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getBasicSelection(e,!0,t)}},{key:"getBasicSelection",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A,n,r,i,o,a=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=a.length>1&&void 0!==a[1]&&a[1],n=a.length>2&&void 0!==a[2]?a[2]:{},r=n.concurrencyLimit,i=void 0===r?10:r,o=n.progressCallback,this.cacheMetadata){e.next=5;break}return e.next=5,this.reloadMetadata();case 5:if(this.shape!==[]){e.next=9;break}throw new Error("Shape [] indexing is not supported yet");case 9:return e.abrupt("return",this.getBasicSelectionND(t,A,i,o));case 10:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"getBasicSelectionND",value:function(e,t,A,n){var r=new K(e,this);return this.getSelection(r,t,A,n)}},{key:"getSelection",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n,r){var i,o,a,s,g,l,I,C,h,f,B,p,E=this;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=this.dtype,o=t.shape,a=t.shape.reduce((function(e,t){return e*t}),1),!A||a!==this.chunkSize){e.next=12;break}if(s=t.iter(),!1!==(g=s.next()).done||!0!==s.next().done){e.next=12;break}return l=g.value,e.next=10,this.decodeDirectToRawArray(l,o,a);case 10:return I=e.sent,e.abrupt("return",I);case 12:if(C=A?new Ue(null,o,i):new De(null,o,i),0!==a){e.next=15;break}return e.abrupt("return",C);case 15:if(h=new Ve({concurrency:n}),r)!function(){var e,A=0,n=0,i=Object(u.a)(t.iter());try{for(i.s();!(e=i.n()).done;){e.value;n+=1}}catch(g){i.e(g)}finally{i.f()}r({progress:0,queueSize:n});var o,a=Object(u.a)(t.iter());try{var s=function(){var e=o.value;Object(d.a)(c.a.mark((function i(){return c.a.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,h.add((function(){return E.chunkGetItem(e.chunkCoords,e.chunkSelection,C,e.outSelection,t.dropAxes)}));case 2:r({progress:A+=1,queueSize:n});case 4:case"end":return i.stop()}}),i)})))()};for(a.s();!(o=a.n()).done;)s()}catch(g){a.e(g)}finally{a.f()}}();else{f=Object(u.a)(t.iter());try{for(p=function(){var e=B.value;h.add((function(){return E.chunkGetItem(e.chunkCoords,e.chunkSelection,C,e.outSelection,t.dropAxes)}))},f.s();!(B=f.n()).done;)p()}catch(Q){f.e(Q)}finally{f.f()}}return e.next=19,h.onIdle();case 19:if(0!==C.shape.length){e.next=21;break}return e.abrupt("return",C.data[0]);case 21:return e.abrupt("return",C);case 22:case"end":return e.stop()}}),e,this)})));return function(t,A,n,r){return e.apply(this,arguments)}}()},{key:"chunkGetItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n,r,i){var o,a,s,g,u;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.length===this._chunkDataShape.length){e.next=2;break}throw new N("Inconsistent shapes: chunkCoordsLength: ".concat(t.length,", cDataShapeLength: ").concat(this.chunkDataShape.length));case 2:return o=this.chunkKey(t),e.prev=3,e.next=6,this.chunkStore.getItem(o);case 6:return a=e.sent,e.next=9,this.decodeChunk(a);case 9:if(s=e.sent,!(n instanceof De)){e.next=21;break}if(!P(r)||!Ae(A,this.chunks)||this.meta.filters){e.next=14;break}return n.set(r,this.toNestedArray(s)),e.abrupt("return");case 14:if(g=this.toNestedArray(s),u=g.get(A),null===i){e.next=18;break}throw new Error("Drop axes is not supported yet");case 18:n.set(r,u),e.next=22;break;case 21:n.set(r,this.chunkBufferToRawArray(s),A);case 22:e.next=31;break;case 24:if(e.prev=24,e.t0=e.catch(3),!m(e.t0)){e.next=30;break}null!==this.fillValue&&n.set(r,this.fillValue),e.next=31;break;case 30:throw e.t0;case 31:case"end":return e.stop()}}),e,this,[[3,24]])})));return function(t,A,n,r,i){return e.apply(this,arguments)}}()},{key:"getRawChunk",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n,r,i,o,a,s;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.length===this.shape.length){e.next=2;break}throw new Error("Chunk coordinates ".concat(t.join(".")," do not correspond to shape ").concat(this.shape,"."));case 2:for(e.prev=2,n=0;n<t.length;n++)r=Math.ceil(this.shape[n]/this.chunks[n]),t[n]=H(t[n],r);e.next=13;break;case 6:if(e.prev=6,e.t0=e.catch(2),!(e.t0 instanceof G)){e.next=12;break}throw new G("index ".concat(t.join(".")," is out of bounds for shape: ").concat(this.shape," and chunks ").concat(this.chunks));case 12:throw e.t0;case 13:return i=this.chunkKey(t),o=this.chunkStore.getItem(i,null===A||void 0===A?void 0:A.storeOptions),e.t1=this,e.next=18,o;case 18:return e.t2=e.sent,e.next=21,e.t1.decodeChunk.call(e.t1,e.t2);case 21:return a=e.sent,s=this.chunks.filter((function(e){return 1!==e})),e.abrupt("return",new Ue(a,s,this.dtype));case 24:case"end":return e.stop()}}),e,this,[[2,6]])})));return function(t,A){return e.apply(this,arguments)}}()},{key:"chunkKey",value:function(e){return this.keyPrefix+e.join(".")}},{key:"ensureByteArray",value:function(e){return"string"===typeof e?new Uint8Array(n.from(e).buffer):new Uint8Array(e)}},{key:"toTypedArray",value:function(e){return new ye[this.dtype](e)}},{key:"toNestedArray",value:function(e){var t=this.ensureByteArray(e).buffer;return new De(t,this.chunks,this.dtype)}},{key:"decodeChunk",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=this.ensureByteArray(t),null===this.compressor){e.next=7;break}return e.next=4,this.compressor;case 4:return e.next=6,e.sent.decode(A);case 6:A=e.sent;case 7:return this.dtype.includes(">")&&ie(this.toTypedArray(A.buffer)),e.abrupt("return",A.buffer);case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"chunkBufferToRawArray",value:function(e){return new Ue(e,this.chunks,this.dtype)}},{key:"decodeDirectToRawArray",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n){var r,i,o,a;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.chunkCoords,i=this.chunkKey(r),e.prev=2,e.next=5,this.chunkStore.getItem(i);case 5:return o=e.sent,e.t0=Ue,e.next=9,this.decodeChunk(o);case 9:return e.t1=e.sent,e.t2=A,e.t3=this.dtype,e.abrupt("return",new e.t0(e.t1,e.t2,e.t3));case 15:if(e.prev=15,e.t4=e.catch(2),!m(e.t4)){e.next=22;break}return a=new ye[this.dtype](n),e.abrupt("return",new Ue(a.fill(this.fillValue),A));case 22:throw e.t4;case 23:case"end":return e.stop()}}),e,this,[[2,15]])})));return function(t,A,n){return e.apply(this,arguments)}}()},{key:"set",value:function(){var e=Object(d.a)(c.a.mark((function e(){var t,A,n,r=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:null,A=r.length>1?r[1]:void 0,n=r.length>2&&void 0!==r[2]?r[2]:{},e.next=5,this.setBasicSelection(t,A,n);case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"setBasicSelection",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n,r,i,o,a=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=a.length>2&&void 0!==a[2]?a[2]:{},r=n.concurrencyLimit,i=void 0===r?10:r,o=n.progressCallback,!this.readOnly){e.next=3;break}throw new F("Object is read only");case 3:if(this.cacheMetadata){e.next=6;break}return e.next=6,this.reloadMetadata();case 6:if(this.shape!==[]){e.next=10;break}throw new Error("Shape [] indexing is not supported yet");case 10:return e.next=12,this.setBasicSelectionND(t,A,i,o);case 12:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"setBasicSelectionND",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n,r){var i;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=new K(t,this),e.next=3,this.setSelection(i,A,n,r);case 3:case"end":return e.stop()}}),e,this)})));return function(t,A,n,r){return e.apply(this,arguments)}}()},{key:"getChunkValue",value:function(e,t,A,n){var r;if(n===[])r=A;else if("number"===typeof A)r=A;else if(r=A.get(e.outSelection),null!==t.dropAxes)throw new Error("Handling drop axes not supported yet");return r}},{key:"setSelection",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n,r){var i,o,a,s,g,l=this;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((i=t.shape)!==[]){e.next=5;break}e.next=15;break;case 5:if("number"!==typeof A){e.next=9;break}e.next=15;break;case 9:if(!(A instanceof De)){e.next=14;break}if(ne(A.shape,i)){e.next=12;break}throw new N("Shape mismatch in source NestedArray and set selection: ".concat(A.shape," and ").concat(i));case 12:e.next=15;break;case 14:throw new Error("Unknown data type for setting :(");case 15:if(o=new Ve({concurrency:n}),r)!function(){var e,n=0,a=Object(u.a)(t.iter());try{for(a.s();!(e=a.n()).done;){e.value;n+=1}}catch(h){a.e(h)}finally{a.f()}var s=0;r({progress:0,queueSize:n});var g,I=Object(u.a)(t.iter());try{var C=function(){var e=g.value,a=l.getChunkValue(e,t,A,i);Object(d.a)(c.a.mark((function t(){return c.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,o.add((function(){return l.chunkSetItem(e.chunkCoords,e.chunkSelection,a)}));case 2:r({progress:s+=1,queueSize:n});case 4:case"end":return t.stop()}}),t)})))()};for(I.s();!(g=I.n()).done;)C()}catch(h){I.e(h)}finally{I.f()}}();else{a=Object(u.a)(t.iter());try{for(g=function(){var e=s.value,n=l.getChunkValue(e,t,A,i);o.add((function(){return l.chunkSetItem(e.chunkCoords,e.chunkSelection,n)}))},a.s();!(s=a.n()).done;)g()}catch(I){a.e(I)}finally{a.f()}}return e.next=19,o.onIdle();case 19:case"end":return e.stop()}}),e)})));return function(t,A,n,r){return e.apply(this,arguments)}}()},{key:"chunkSetItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A,n){var r,i,o,a,s,g,u,l,I;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.chunkKey(t),i=null,o=ye[this.dtype],a=this.chunkSize,!Ae(A,this.chunks)){e.next=8;break}"number"===typeof n?(i=new o(a)).fill(n):i=n.flatten(),e.next=29;break;case 8:return e.prev=8,e.next=11,this.chunkStore.getItem(r);case 11:return g=e.sent,e.next=14,this.decodeChunk(g);case 14:u=e.sent,s=this.toTypedArray(u),e.next=26;break;case 18:if(e.prev=18,e.t0=e.catch(8),!m(e.t0)){e.next=25;break}s=new o(a),null!==this.fillValue&&s.fill(this.fillValue),e.next=26;break;case 25:throw e.t0;case 26:(l=new De(s,this.chunks,this.dtype)).set(A,n),i=l.flatten();case 29:return e.next=31,this.encodeChunk(i);case 31:I=e.sent,this.chunkStore.setItem(r,I);case 33:case"end":return e.stop()}}),e,this,[[8,18]])})));return function(t,A,n){return e.apply(this,arguments)}}()},{key:"encodeChunk",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A,n;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.dtype.includes(">")&&(t=oe(t)),null===this.compressor){e.next=9;break}return A=new Uint8Array(t.buffer),e.next=5,this.compressor;case 5:return e.next=7,e.sent.encode(A);case 7:return n=e.sent,e.abrupt("return",n.buffer);case 9:return e.abrupt("return",t.buffer);case 10:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"chunkStore",get:function(){return this._chunkStore?this._chunkStore:this.store}},{key:"name",get:function(){return this.path.length>0?"/"!==this.path[0]?"/"+this.path:this.path:null}},{key:"basename",get:function(){var e=this.name;if(null===e)return null;var t=e.split("/");return t[t.length-1]}},{key:"shape",get:function(){return this.meta.shape}},{key:"chunks",get:function(){return this.meta.chunks}},{key:"chunkSize",get:function(){return this.chunks.reduce((function(e,t){return e*t}),1)}},{key:"dtype",get:function(){return this.meta.dtype}},{key:"fillValue",get:function(){var e=this.meta.fill_value;return"NaN"===e?NaN:"Infinity"===e?1/0:"-Infinity"===e?-1/0:this.meta.fill_value}},{key:"nDims",get:function(){return this.meta.shape.length}},{key:"size",get:function(){return this.meta.shape.reduce((function(e,t){return e*t}),1)}},{key:"length",get:function(){return this.shape[0]}},{key:"_chunkDataShape",get:function(){if(this.shape===[])return[1];for(var e=[],t=0;t<this.shape.length;t++)e[t]=Math.ceil(this.shape[t]/this.chunks[t]);return e}},{key:"chunkDataShape",get:function(){return this._chunkDataShape}},{key:"numChunks",get:function(){return this.chunkDataShape.reduce((function(e,t){return e*t}),1)}}],[{key:"create",value:function(){var t=Object(d.a)(c.a.mark((function t(A){var n,r,i,o,a,s,g=arguments;return c.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=g.length>1&&void 0!==g[1]?g[1]:null,r=g.length>2&&void 0!==g[2]&&g[2],i=g.length>3&&void 0!==g[3]?g[3]:null,o=!(g.length>4&&void 0!==g[4])||g[4],a=!(g.length>5&&void 0!==g[5])||g[5],t.next=7,this.loadMetadataForConstructor(A,n);case 7:return s=t.sent,t.abrupt("return",new e(A,n,s,r,i,o,a));case 9:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"loadMetadataForConstructor",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n,r;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,A=z(A),n=ue(A),e.next=5,t.getItem(n+".zarray");case 5:return r=e.sent,e.abrupt("return",Ee(r));case 9:return e.prev=9,e.t0=e.catch(0),e.next=13,ge(t,A);case 13:if(!e.sent){e.next=15;break}throw new w(null!==A&&void 0!==A?A:"");case 15:throw new Error("Failed to load metadata for ZarrArray:"+e.t0.toString());case 16:case"end":return e.stop()}}),e,null,[[0,9]])})));return function(t,A){return e.apply(this,arguments)}}()}]),e}(),We=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(l.a)(this,e),this.root=t}return Object(s.a)(e,[{key:"proxy",value:function(){return v(this)}},{key:"getParent",value:function(e){var t,A=this.root,n=e.split("/"),r=Object(u.a)(n.slice(0,n.length-1));try{for(r.s();!(t=r.n()).done;){if(!(A=A[t.value]))throw Error(e)}}catch(i){r.e(i)}finally{r.f()}return[A,n[n.length-1]]}},{key:"requireParent",value:function(e){var t,A=this.root,n=e.split("/"),r=Object(u.a)(n.slice(0,n.length-1));try{for(r.s();!(t=r.n()).done;){var i=t.value;void 0===A[i]&&(A[i]={}),A=A[i]}}catch(o){r.e(o)}finally{r.f()}return[A,n[n.length-1]]}},{key:"getItem",value:function(e){var t=this.getParent(e),A=Object(o.a)(t,2),n=A[0][A[1]];if(void 0===n)throw new R(e);return n}},{key:"setItem",value:function(e,t){var A=this.requireParent(e),n=Object(o.a)(A,2);return n[0][n[1]]=t,!0}},{key:"deleteItem",value:function(e){var t=this.getParent(e),A=Object(o.a)(t,2);return delete A[0][A[1]]}},{key:"containsItem",value:function(e){try{return void 0!==this.getItem(e)}catch(t){return!1}}},{key:"keys",value:function(){throw new Error("Method not implemented.")}}]),e}();!function(e){e.HEAD="HEAD",e.GET="GET",e.PUT="PUT"}(Pe||(Pe={}));var Xe=[Pe.HEAD,Pe.GET,Pe.PUT],qe=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(l.a)(this,e),this.url=t;var n=A.fetchOptions,r=void 0===n?{}:n,i=A.supportedMethods,o=void 0===i?Xe:i;this.fetchOptions=r,this.supportedMethods=new Set(o)}return Object(s.a)(e,[{key:"keys",value:function(){throw new Error("Method not implemented.")}},{key:"getItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var i,o;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=re(this.url,t),e.next=3,fetch(i,Object(r.a)({},this.fetchOptions,{},A));case 3:if(404!==(o=e.sent).status){e.next=8;break}throw new R(t);case 8:if(200===o.status){e.next=10;break}throw new U(String(o.status));case 10:if(!q){e.next=18;break}return e.t0=n,e.next=14,o.arrayBuffer();case 14:return e.t1=e.sent,e.abrupt("return",e.t0.from.call(e.t0,e.t1));case 18:return e.abrupt("return",o.arrayBuffer());case 19:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"setItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t,A){var n,i;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.supportedMethods.has(Pe.PUT)){e.next=2;break}throw new Error("HTTP PUT no a supported method for store.");case 2:return n=re(this.url,t),"string"===typeof A&&(A=(new TextEncoder).encode(A).buffer),e.next=6,fetch(n,Object(r.a)({},this.fetchOptions,{method:Pe.PUT,body:A}));case 6:return i=e.sent,e.abrupt("return","2"===i.status.toString()[0]);case 8:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"deleteItem",value:function(e){throw new Error("Method not implemented.")}},{key:"containsItem",value:function(){var e=Object(d.a)(c.a.mark((function e(t){var A,n,i;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=re(this.url,t),n=this.supportedMethods.has(Pe.HEAD)?Pe.HEAD:Pe.GET,e.next=4,fetch(A,Object(r.a)({},this.fetchOptions,{method:n}));case 4:return i=e.sent,e.abrupt("return",200===i.status);case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()}]),e}();function ze(){return $e.apply(this,arguments)}function $e(){return($e=Object(d.a)(c.a.mark((function e(){var t,A,n,r,i,o,a,s,g,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,F,R,D,G=arguments;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=G.length>0&&void 0!==G[0]?G[0]:{},A=t.shape,n=t.mode,r=void 0===n?"a":n,i=t.chunks,o=void 0===i||i,a=t.dtype,s=void 0===a?"<i4":a,g=t.compressor,u=void 0===g?null:g,l=t.fillValue,I=void 0===l?null:l,C=t.order,h=void 0===C?"C":C,f=t.store,d=t.overwrite,B=void 0!==d&&d,p=t.path,E=void 0===p?null:p,Q=t.chunkStore,y=t.filters,v=t.cacheMetadata,m=void 0===v||v,F=t.cacheAttrs,R=void 0===F||F,f=et(f),void 0===Q&&(Q=et(f)),E=z(E),"r"!==r&&"r+"!==r){e.next=15;break}return e.next=7,ae(f,E);case 7:if(e.sent){e.next=13;break}return e.next=10,ge(f,E);case 10:if(!e.sent){e.next=12;break}throw new w(E);case 12:throw new S(E);case 13:e.next=56;break;case 15:if("w"!==r){e.next=22;break}if(void 0!==A){e.next=18;break}throw new N("Shape can not be undefined when creating a new array");case 18:return e.next=20,Be(f,A,o,s,E,u,I,h,B,Q,y);case 20:e.next=56;break;case 22:if("a"!==r){e.next=36;break}return e.next=25,ae(f,E);case 25:if(e.sent){e.next=34;break}return e.next=28,ge(f,E);case 28:if(!e.sent){e.next=30;break}throw new w(E);case 30:if(void 0!==A){e.next=32;break}throw new N("Shape can not be undefined when creating a new array");case 32:return e.next=34,Be(f,A,o,s,E,u,I,h,B,Q,y);case 34:e.next=56;break;case 36:if("w-"!==r&&"x"!==r){e.next=55;break}return e.next=39,ae(f,E);case 39:if(!e.sent){e.next=43;break}throw new b(E);case 43:return e.next=45,ge(f,E);case 45:if(!e.sent){e.next=49;break}throw new w(E);case 49:if(void 0!==A){e.next=51;break}throw new N("Shape can not be undefined when creating a new array");case 51:return e.next=53,Be(f,A,o,s,E,u,I,h,B,Q,y);case 53:e.next=56;break;case 55:throw new N("Invalid mode argument: ".concat(r));case 56:return D="r"===r,e.abrupt("return",Ke.create(f,E,D,Q,m,R));case 58:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function et(e){return void 0===e?new We:"string"===typeof e?new qe(e):e}}).call(this,A(90),A(188).Buffer)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReactCSS=t.loop=t.handleActive=t.handleHover=t.hover=void 0;var n=g(A(966)),r=g(A(988)),i=g(A(989)),o=g(A(990)),a=g(A(991)),s=g(A(992));function g(e){return e&&e.__esModule?e:{default:e}}t.hover=o.default,t.handleHover=o.default,t.handleActive=a.default,t.loop=s.default;var c=t.ReactCSS=function(e){for(var t=arguments.length,A=Array(t>1?t-1:0),o=1;o<t;o++)A[o-1]=arguments[o];var a=(0,n.default)(A),s=(0,r.default)(e,a);return(0,i.default)(s)};t.default=c},function(e,t){function A(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,t,n){return t&&A(e.prototype,t),n&&A(e,n),e}},function(e,t,A){"use strict";A.d(t,"a",(function(){return i}));var n=A(0),r=A(136);function i(e,t){return n.useMemo((function(){return null==e&&null==t?null:function(A){Object(r.a)(e,A),Object(r.a)(t,A)}}),[e,t])}},function(e,t,A){"use strict";A.d(t,"p",(function(){return l})),A.d(t,"b",(function(){return I})),A.d(t,"a",(function(){return C})),A.d(t,"o",(function(){return h})),A.d(t,"l",(function(){return f})),A.d(t,"k",(function(){return B})),A.d(t,"m",(function(){return Q})),A.d(t,"j",(function(){return y})),A.d(t,"c",(function(){return v})),A.d(t,"d",(function(){return m})),A.d(t,"g",(function(){return S})),A.d(t,"h",(function(){return F})),A.d(t,"n",(function(){return R})),A.d(t,"e",(function(){return D})),A.d(t,"f",(function(){return G})),A.d(t,"i",(function(){return k}));var n=A(416),r=A.n(n),i=A(0),o=A.n(i),a=A(229),s=A(237),g=A.n(s),c=A(317),u=!1;function l(){u||(u=!0,g()(!1,"Tree only accept TreeNode as children."))}function I(e,t){var A=e.slice(),n=A.indexOf(t);return n>=0&&A.splice(n,1),A}function C(e,t){var A=e.slice();return-1===A.indexOf(t)&&A.push(t),A}function h(e){return e.split("-")}function f(e,t){return e+"-"+t}function d(e){return e&&e.type&&e.type.isTreeNode}function B(e){return Object(a.a)(e).filter(d)}function p(e){var t=e.props||{},A=t.disabled,n=t.disableCheckbox;return!(!A&&!n)}function E(e,t){!function A(n,r,o){var a=n?n.props.children:e,s=n?f(o.pos,r):0,g=B(a);if(n){var c={node:n,index:r,pos:s,key:n.key||s,parentPos:o.node?o.pos:null};t(c)}i.Children.forEach(g,(function(e,t){A(e,t,{node:n,pos:s})}))}(null)}function Q(e,t){var A=Object(a.a)(e).map(t);return 1===A.length?A[0]:A}function y(e,t){var A=t.props,n=A.eventKey,r=A.pos,i=[];return E(e,(function(e){var t=e.key;i.push(t)})),i.push(n||r),i}function v(e,t){var A=e.clientY,n=t.selectHandle.getBoundingClientRect(),r=n.top,i=n.bottom,o=n.height,a=Math.max(.25*o,2);return A<=r+a?-1:A>=i-a?1:0}function m(e,t){if(e)return t.multiple?e.slice():e.length?[e[0]]:e}function b(e){return e?e.map((function(e){return String(e)})):e}var w=function(e){return e};function S(e,t){if(!e)return[];var A=(t||{}).processProps,n=void 0===A?w:A;return(Array.isArray(e)?e:[e]).map((function(e){var A=e.children,i=r()(e,["children"]),a=S(A,t);return o.a.createElement(c.a,n(i),a)}))}function F(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.initWrapper,n=t.processEntity,r=t.onProcessFinished,i={},o={},a={posEntities:i,keyEntities:o};return A&&(a=A(a)||a),E(e,(function(e){var t=e.node,A=e.index,r=e.pos,s=e.key,g=e.parentPos,c={node:t,index:A,key:s,pos:r};i[r]=c,o[s]=c,c.parent=i[g],c.parent&&(c.parent.children=c.parent.children||[],c.parent.children.push(c)),n&&n(c,a)})),r&&r(a),a}function R(e){if(!e)return null;var t=void 0;if(Array.isArray(e))t={checkedKeys:e,halfCheckedKeys:void 0};else{if("object"!==typeof e)return g()(!1,"`checkedKeys` is not an array or an object"),null;t={checkedKeys:e.checked||void 0,halfCheckedKeys:e.halfChecked||void 0}}return t.checkedKeys=b(t.checkedKeys),t.halfCheckedKeys=b(t.halfCheckedKeys),t}function D(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r={},i={};function o(e){if(r[e]!==t){var n=A[e];if(n){var a=n.children,s=n.parent;if(!p(n.node)){var g=!0,c=!1;(a||[]).filter((function(e){return!p(e.node)})).forEach((function(e){var t=e.key,A=r[t],n=i[t];(A||n)&&(c=!0),A||(g=!1)})),r[e]=!!t&&g,i[e]=c,s&&o(s.key)}}}}function a(e){if(r[e]!==t){var n=A[e];if(n){var i=n.children;p(n.node)||(r[e]=t,(i||[]).forEach((function(e){a(e.key)})))}}}function s(e){var n=A[e];if(n){var i=n.children,s=n.parent,c=n.node;r[e]=t,p(c)||((i||[]).filter((function(e){return!p(e.node)})).forEach((function(e){a(e.key)})),s&&o(s.key))}else g()(!1,"'"+e+"' does not exist in the tree.")}(n.checkedKeys||[]).forEach((function(e){r[e]=!0})),(n.halfCheckedKeys||[]).forEach((function(e){i[e]=!0})),(e||[]).forEach((function(e){s(e)}));var c=[],u=[];return Object.keys(r).forEach((function(e){r[e]&&c.push(e)})),Object.keys(i).forEach((function(e){!r[e]&&i[e]&&u.push(e)})),{checkedKeys:c,halfCheckedKeys:u}}function G(e,t){var A={};return(e||[]).forEach((function(e){!function e(n){if(!A[n]){var r=t[n];if(r){A[n]=!0;var i=r.parent;p(r.node)||i&&e(i.key)}}}(e)})),Object.keys(A)}function k(e){return Object.keys(e).reduce((function(t,A){return"data-"!==A.substr(0,5)&&"aria-"!==A.substr(0,5)||(t[A]=e[A]),t}),{})}},function(e,t,A){"use strict";var n=A(6),r=A(24),i=A(3),o=A.n(i),a=A(12),s=A(8),g=A(2),c=A(83),u=A(1),l=A(4),I=A(16),C=A(17),h=A(9),f=A(10),d=A(7),B=A(11),p=A(36),E=A(575),Q=A(576),y=A(384),v=A(511),m=A(579),b=A(581),w=A(133),S=(A(582),A(23)),F=A(22),R=A(224),D=A(18),G=A(422),k=A(135),x=A(232),N=A(665),U=A(528),_=A(718),M=A(427),O=A(648),L=A(580),T=A(649),Z=A(386);function H(e,t,A,n,r){!function e(t,A,n,r,i){for(;r>n;){if(r-n>600){var o=r-n+1,a=A-n+1,s=Math.log(o),g=.5*Math.exp(2*s/3),c=.5*Math.sqrt(s*g*(o-g)/o)*(a-o/2<0?-1:1),u=Math.max(n,Math.floor(A-a*g/o+c)),l=Math.min(r,Math.floor(A+(o-a)*g/o+c));e(t,A,u,l,i)}var I=t[A],C=n,h=r;for(Y(t,n,A),i(t[r],I)>0&&Y(t,n,r);C<h;){for(Y(t,C,h),C++,h--;i(t[C],I)<0;)C++;for(;i(t[h],I)>0;)h--}0===i(t[n],I)?Y(t,n,h):(h++,Y(t,h,r)),h<=A&&(n=h+1),A<=h&&(r=h-1)}}(e,t,A||0,n||e.length-1,r||J)}function Y(e,t,A){var n=e[t];e[t]=e[A],e[A]=n}function J(e,t){return e<t?-1:e>t?1:0}var j=A(81),P=A(0),V=A(1290),K=A(146),W=A.n(K),X=A(292),q=A(54);function z(e){return e instanceof DataView}for(var $=new ArrayBuffer(4),ee=new Float32Array($),te=new Uint32Array($),Ae=new Uint32Array(512),ne=new Uint32Array(512),re=0;re<256;++re){var ie=re-127;ie<-27?(Ae[0|re]=0,Ae[256|re]=32768,ne[0|re]=24,ne[256|re]=24):ie<-14?(Ae[0|re]=1024>>-ie-14,Ae[256|re]=1024>>-ie-14|32768,ne[0|re]=-ie-1,ne[256|re]=-ie-1):ie<=15?(Ae[0|re]=ie+15<<10,Ae[256|re]=ie+15<<10|32768,ne[0|re]=13,ne[256|re]=13):ie<128?(Ae[0|re]=31744,Ae[256|re]=64512,ne[0|re]=24,ne[256|re]=24):(Ae[0|re]=31744,Ae[256|re]=64512,ne[0|re]=13,ne[256|re]=13)}var oe=new Uint32Array(2048),ae=new Uint32Array(64),se=new Uint32Array(64);oe[0]=0;for(var ge=1;ge<1024;++ge){for(var ce=ge<<13,ue=0;0===(8388608&ce);)ue-=8388608,ce<<=1;ce&=-8388609,ue+=947912704,oe[ge]=ce|ue}for(var le=1024;le<2048;++le)oe[le]=939524096+(le-1024<<13);ae[0]=0;for(var Ie=1;Ie<31;++Ie)ae[Ie]=Ie<<23;ae[31]=1199570944,ae[32]=2147483648;for(var Ce=33;Ce<63;++Ce)ae[Ce]=2147483648+(Ce-32<<23);ae[63]=3347054592,se[0]=0;for(var he=1;he<64;++he)se[he]=32===he?0:1024;function fe(e){var t=e>>10;return te[0]=oe[se[t]+(1023&e)]+ae[t],ee[0]}function de(e,t){if(!z(e))throw new TypeError("First argument to getFloat16 function must be a DataView");for(var A=arguments.length,n=new Array(A>2?A-2:0),r=2;r<A;r++)n[r-2]=arguments[r];return fe(e.getUint16.apply(e,[t].concat(n)))}function Be(e,t){var A=(t=t||{}).pos||0,n=!!t.keepComments,r=!!t.keepWhitespace,i="<".charCodeAt(0),o=">".charCodeAt(0),a="-".charCodeAt(0),s="/".charCodeAt(0),g="!".charCodeAt(0),c="'".charCodeAt(0),u='"'.charCodeAt(0),l="[".charCodeAt(0),I="]".charCodeAt(0);function C(t){for(var c=[];e[A];)if(e.charCodeAt(A)==i){if(e.charCodeAt(A+1)===s){var u=A+2;if(A=e.indexOf(">",A),-1==e.substring(u,A).indexOf(t)){var C=e.substring(0,A).split("\n");throw new Error("Unexpected close tag\nLine: "+(C.length-1)+"\nColumn: "+(C[C.length-1].length+1)+"\nChar: "+e[A])}return A+1&&(A+=1),c}if(e.charCodeAt(A+1)===g){if(e.charCodeAt(A+2)==a){for(var f=A;-1!==A&&(e.charCodeAt(A)!==o||e.charCodeAt(A-1)!=a||e.charCodeAt(A-2)!=a||-1==A);)A=e.indexOf(">",A+1);-1===A&&(A=e.length),n&&c.push(e.substring(f,A+1))}else{if(e.charCodeAt(A+2)===l&&e.charCodeAt(A+8)===l&&"cdata"===e.substr(A+3,5).toLowerCase()){var d=e.indexOf("]]>",A);-1==d?(c.push(e.substr(A+9)),A=e.length):(c.push(e.substring(A+9,d)),A=d+3);continue}var E=A+1;A+=2;for(var Q=!1;(e.charCodeAt(A)!==o||!0===Q)&&e[A];)e.charCodeAt(A)===l?Q=!0:!0===Q&&e.charCodeAt(A)===I&&(Q=!1),A++;c.push(e.substring(E,A))}A++;continue}var y=p();c.push(y),"?"===y.tagName[0]&&(c.push.apply(c,Object(B.a)(y.children)),y.children=[])}else{var v=h();if(r)v.length>0&&c.push(v);else{var m=v.trim();m.length>0&&c.push(m)}A++}return c}function h(){var t=A;return-2===(A=e.indexOf("<",A)-1)&&(A=e.length),e.slice(t,A+1)}function f(){for(var t=A;-1==="\r\n\t>/= ".indexOf(e[A])&&e[A];)A++;return e.slice(t,A)}var d=t.noChildNodes||["img","br","input","meta","link","hr"];function p(){A++;for(var t=f(),n={},r=[];e.charCodeAt(A)!==o&&e[A];){var i=e.charCodeAt(A);if(i>64&&i<91||i>96&&i<123){for(var a=f(),g=e.charCodeAt(A);g&&g!==c&&g!==u&&!(g>64&&g<91||g>96&&g<123)&&g!==o;)A++,g=e.charCodeAt(A);if(g===c||g===u){var l=E();if(-1===A)return{tagName:t,attributes:n,children:r}}else l=null,A--;n[a]=l}A++}if(e.charCodeAt(A-1)!==s)if("script"==t){var I=A+1;A=e.indexOf("<\/script>",A),r=[e.slice(I,A)],A+=9}else if("style"==t){I=A+1;A=e.indexOf("</style>",A),r=[e.slice(I,A)],A+=8}else-1===d.indexOf(t)?(A++,r=C(t)):A++;else A++;return{tagName:t,attributes:n,children:r}}function E(){var t=e[A],n=A+1;return A=e.indexOf(t,n),e.slice(n,A)}function Q(){var A=new RegExp("\\s"+t.attrName+"\\s*=['\"]"+t.attrValue+"['\"]").exec(e);return A?A.index:-1}var y=null;if(void 0!==t.attrValue){t.attrName=t.attrName||"id";for(y=[];-1!==(A=Q());)-1!==(A=e.lastIndexOf("<",A))&&y.push(p()),e=e.substr(A),A=0}else y=t.parseNode?p():C("");return t.filter&&(y=function e(t,A){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=[];return t.forEach((function(t,o){if("object"===typeof t&&A(t,o,n,r)&&i.push(t),t.children){var a=e(t.children,A,n+1,(r?r+".":"")+o+"."+t.tagName);i=i.concat(a)}})),i}(y,t.filter)),t.simplify?function e(t){var A={};if(!t.length)return"";if(1===t.length&&"string"==typeof t[0])return t[0];for(var n in t.forEach((function(t){if("object"===typeof t){A[t.tagName]||(A[t.tagName]=[]);var n=e(t.children);A[t.tagName].push(n),Object.keys(t.attributes).length&&"string"!==typeof n&&(n._attributes=t.attributes)}})),A)1==A[n].length&&(A[n]=A[n][0]);return A}(Array.isArray(y)?y:[y]):(t.setPos&&(y.pos=A),y)}var pe={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},Ee={};for(var Qe in pe)pe.hasOwnProperty(Qe)&&(Ee[pe[Qe]]=parseInt(Qe,10));var ye=[Ee.BitsPerSample,Ee.ExtraSamples,Ee.SampleFormat,Ee.StripByteCounts,Ee.StripOffsets,Ee.StripRowCounts,Ee.TileByteCounts,Ee.TileOffsets,Ee.SubIFDs],ve={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},me={};for(var be in ve)ve.hasOwnProperty(be)&&(me[ve[be]]=parseInt(be,10));var we=0,Se=1,Fe=2,Re=3,De=5,Ge=6,ke=8,xe=0,Ne=1,Ue=0,_e=1,Me={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},Oe={};for(var Le in Me)Me.hasOwnProperty(Le)&&(Oe[Me[Le]]=parseInt(Le,10));function Te(e,t){for(var A,n=e.width,r=e.height,i=new Uint8Array(n*r*3),o=0,a=0;o<e.length;++o,a+=3)A=256-e[o]/t*256,i[a]=A,i[a+1]=A,i[a+2]=A;return i}function Ze(e,t){for(var A,n=e.width,r=e.height,i=new Uint8Array(n*r*3),o=0,a=0;o<e.length;++o,a+=3)A=e[o]/t*256,i[a]=A,i[a+1]=A,i[a+2]=A;return i}function He(e,t){for(var A=e.width,n=e.height,r=new Uint8Array(A*n*3),i=t.length/3,o=t.length/3*2,a=0,s=0;a<e.length;++a,s+=3){var g=e[a];r[s]=t[g]/65536*256,r[s+1]=t[g+i]/65536*256,r[s+2]=t[g+o]/65536*256}return r}function Ye(e){for(var t=e.width,A=e.height,n=new Uint8Array(t*A*3),r=0,i=0;r<e.length;r+=4,i+=3){var o=e[r],a=e[r+1],s=e[r+2],g=e[r+3];n[i]=(255-o)/256*255*((255-g)/256),n[i+1]=(255-a)/256*255*((255-g)/256),n[i+2]=(255-s)/256*255*((255-g)/256)}return n}function Je(e){for(var t=e.width,A=e.height,n=new Uint8ClampedArray(t*A*3),r=0,i=0;r<e.length;r+=3,i+=3){var o=e[r],a=e[r+1],s=e[r+2];n[i]=o+1.402*(s-128),n[i+1]=o-.34414*(a-128)-.71414*(s-128),n[i+2]=o+1.772*(a-128)}return n}function je(e){for(var t=e.width,A=e.height,n=new Uint8Array(t*A*3),r=0,i=0;r<e.length;r+=3,i+=3){var o=(e[r+0]+16)/116,a=(e[r+1]<<24>>24)/500+o,s=o-(e[r+2]<<24>>24)/200,g=void 0,c=void 0,u=void 0;c=-.9689*(a=.95047*(a*a*a>.008856?a*a*a:(a-16/116)/7.787))+1.8758*(o=1*(o*o*o>.008856?o*o*o:(o-16/116)/7.787))+.0415*(s=1.08883*(s*s*s>.008856?s*s*s:(s-16/116)/7.787)),u=.0557*a+-.204*o+1.057*s,g=(g=3.2406*a+-1.5372*o+-.4986*s)>.0031308?1.055*Math.pow(g,1/2.4)-.055:12.92*g,c=c>.0031308?1.055*Math.pow(c,1/2.4)-.055:12.92*c,u=u>.0031308?1.055*Math.pow(u,1/2.4)-.055:12.92*u,n[i]=255*Math.max(0,Math.min(1,g)),n[i+1]=255*Math.max(0,Math.min(1,c)),n[i+2]=255*Math.max(0,Math.min(1,u))}return n}function Pe(e,t){var A=e.length-t,n=0;do{for(var r=t;r>0;r--)e[n+t]+=e[n],n++;A-=t}while(A>0)}function Ve(e,t,A){for(var n=0,r=e.length,i=r/A;r>t;){for(var o=t;o>0;--o)e[n+t]+=e[n],++n;r-=t}for(var a=e.slice(),s=0;s<i;++s)for(var g=0;g<A;++g)e[A*s+g]=a[(A-g-1)*i+s]}function Ke(e,t,A,n,r,i){if(!t||1===t)return e;for(var o=0;o<r.length;++o){if(r[o]%8!==0)throw new Error("When decoding with predictor, only multiple of 8 bits are supported.");if(r[o]!==r[0])throw new Error("When decoding with predictor, all samples must have the same size.")}for(var a=r[0]/8,s=2===i?1:r.length,g=0;g<n&&!(g*s*A*a>=e.byteLength);++g){var c=void 0;if(2===t){switch(r[0]){case 8:c=new Uint8Array(e,g*s*A*a,s*A*a);break;case 16:c=new Uint16Array(e,g*s*A*a,s*A*a/2);break;case 32:c=new Uint32Array(e,g*s*A*a,s*A*a/4);break;default:throw new Error("Predictor 2 not allowed with ".concat(r[0]," bits per sample."))}Pe(c,s)}else 3===t&&Ve(c=new Uint8Array(e,g*s*A*a,s*A*a),s,a)}return e}var We,Xe=function(){function e(){Object(u.a)(this,e)}return Object(l.a)(e,[{key:"decode",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A){var n,r,i,a,s;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.decodeBlock(A);case 2:if(n=e.sent,1===(r=t.Predictor||1)){e.next=9;break}return i=!t.StripOffsets,a=i?t.TileWidth:t.ImageWidth,s=i?t.TileLength:t.RowsPerStrip||t.ImageLength,e.abrupt("return",Ke(n,r,a,s,t.BitsPerSample,t.PlanarConfiguration));case 9:return e.abrupt("return",n);case 10:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()}]),e}(),qe=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"decodeBlock",value:function(e){return e}}]),A}(Xe),ze=null;function $e(){return null!==ze&&ze.buffer===We.memory.buffer||(ze=new Uint8Array(We.memory.buffer)),ze}var et=0,tt=null;function At(){return null!==tt&&tt.buffer===We.memory.buffer||(tt=new Int32Array(We.memory.buffer)),tt}function nt(e){return rt.apply(this,arguments)}function rt(){return(rt=Object(a.a)(o.a.mark((function e(t){var A,n,r;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===t&&(t="".replace(/\.js$/,"_bg.wasm")),("string"==typeof t||"function"==typeof Request&&t instanceof Request||"function"==typeof URL&&t instanceof URL)&&(t=fetch(t)),e.t0=function(){var e=Object(a.a)(o.a.mark((function e(t,A){var n,r;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!("function"==typeof Response&&t instanceof Response)){e.next=19;break}if("function"!=typeof WebAssembly.instantiateStreaming){e.next=13;break}return e.prev=2,e.next=5,WebAssembly.instantiateStreaming(t,A);case 5:return e.abrupt("return",e.sent);case 8:if(e.prev=8,e.t0=e.catch(2),"application/wasm"!=t.headers.get("Content-Type")){e.next=12;break}throw e.t0;case 12:console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",e.t0);case 13:return e.next=15,t.arrayBuffer();case 15:return n=e.sent,e.next=18,WebAssembly.instantiate(n,A);case 18:return e.abrupt("return",e.sent);case 19:return e.next=21,WebAssembly.instantiate(t,A);case 21:return r=e.sent,e.abrupt("return",r instanceof WebAssembly.Instance?{instance:r,module:t}:r);case 23:case"end":return e.stop()}}),e,null,[[2,8]])})));return function(t,A){return e.apply(this,arguments)}}(),e.next=5,t;case 5:return e.t1=e.sent,e.t2={},e.next=9,(0,e.t0)(e.t1,e.t2);case 9:return A=e.sent,n=A.instance,r=A.module,e.abrupt("return",(We=n.exports,nt.__wbindgen_wasm_module=r,We));case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var it=Object.freeze({__proto__:null,decompress:function(e,t){try{var A=We.__wbindgen_add_to_stack_pointer(-16),n=function(e,t){var A=t(1*e.length);return $e().set(e,A/1),et=e.length,A}(e,We.__wbindgen_malloc),r=et;We.decompress(A,n,r,t);var i=At()[A/4+0],o=At()[A/4+1],a=(s=i,g=o,$e().subarray(s/1,s/1+g)).slice();return We.__wbindgen_free(i,1*o),a}finally{We.__wbindgen_add_to_stack_pointer(16)}var s,g},default:nt}),ot=[62,0,0,0,63,52,53,54,55,56,57,58,59,60,61,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,0,0,0,0,0,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];function at(e){return ot[e-43]}var st,gt=function(e){for(var t,A=e.endsWith("==")?2:e.endsWith("=")?1:0,n=e.length,r=new Uint8Array(n/4*3),i=0,o=0;i<n;i+=4,o+=3)t=at(e.charCodeAt(i))<<18|at(e.charCodeAt(i+1))<<12|at(e.charCodeAt(i+2))<<6|at(e.charCodeAt(i+3)),r[o]=t>>16,r[o+1]=t>>8&255,r[o+2]=255&t;return r.subarray(0,r.length-A)}("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NwMAIANBEGokAA8LIARBCEHYhcAAEDcACyACQQhByIXAABA3AAuqAgEDfyMAQYABayIEJAACQAJAAn8CQCABKAIAIgNBEHFFBEAgACgCACECIANBIHENASACrSABEBUMAgsgACgCACECQQAhAANAIAAgBGpB/wBqIAJBD3EiA0EwciADQdcAaiADQQpJGzoAACAAQX9qIQAgAkEEdiICDQALIABBgAFqIgJBgQFPDQIgAUGkjsAAQQIgACAEakGAAWpBACAAaxAIDAELQQAhAANAIAAgBGpB/wBqIAJBD3EiA0EwciADQTdqIANBCkkbOgAAIABBf2ohACACQQR2IgINAAsgAEGAAWoiAkGBAU8NAiABQaSOwABBAiAAIARqQYABakEAIABrEAgLIARBgAFqJAAPCyACQYABQZSOwAAQOQALIAJBgAFBlI7AABA5AAuxAgEEfyMAQUBqIgIkACABKAIEIgNFBEAgAUEEaiEDIAEoAgAhBCACQQA2AiAgAkIBNwMYIAIgAkEYajYCJCACQThqIARBEGopAgA3AwAgAkEwaiAEQQhqKQIANwMAIAIgBCkCADcDKCACQSRqQdiJwAAgAkEoahAJGiACQRBqIgQgAigCIDYCACACIAIpAxg3AwgCQCABKAIEIgVFDQAgAUEIaigCAEUNACAFEAQLIAMgAikDCDcCACADQQhqIAQoAgA2AgAgAygCACEDCyABQQE2AgQgAUEMaigCACEEIAFBCGoiASgCACEFIAFCADcCAEEMQQQQWSIBRQRAQQxBBBBjAAsgASAENgIIIAEgBTYCBCABIAM2AgAgAEGQi8AANgIEIAAgATYCACACQUBrJAAL/AEBAn8jAEEQayICJAAgACgCACACQQA2AgwCfwJAAkAgAUGAAU8EQCABQYAQSQ0BIAJBDGohACABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAIgAToADCACQQxqIQBBAQwCCyACIAFBP3FBgAFyOgANIAIgAUEGdkHAAXI6AAwgAkEMaiEAQQIMAQsgAiABQT9xQYABcjoADyACIAFBEnZB8AFyOgAMIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADUEECyEBIAAgARALIAJBEGokAAv5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QSxqQQI2AgAgAUE8akEhNgIAIAFCAjcCHCABQayMwAA2AhggAUEdNgI0IAEgAUEwajYCKCABIAFBEGo2AjggASABQQhqNgIwIAFBGGpB8IDAABBRAAtxAQN/IwBBIGsiAiQAAkAgACABEBkNACABQRxqKAIAIQMgASgCGCACQRxqQQA2AgAgAkHwi8AANgIYIAJCATcCDCACQfSLwAA2AgggAyACQQhqEAkNACAAQQRqIAEQGSACQSBqJAAPCyACQSBqJABBAQswAQF/AkACQEGAwABBAhBZIgENAQwAC0GAwABBAhBjAAsgACABNgIAIABBgCA2AgQLewECfwJAAkAgACgCBCIBBEAgACgCDCICIAFPDQEgACgCACIBIAJqIAEtAAA6AAAgAEEANgIIIAAgACgCDEEBajYCDCAAKAIERQ0CIAAoAgAtAAAPC0EAQQBBiIbAABA2AAsgAiABQZiGwAAQNgALQQBBAEGohsAAEDYAC2gBAn8gACAALQBGIgFBAWoiAjoACiAAQQEgAUEPcXRBAmoiATsBQCAAQX8gAkEPcXRBf3M7AQggAEEYaigCACABQf//A3EiAU8EQCAAIAE2AhgLIABBJGooAgAgAU8EQCAAIAE2AiQLC1ABAX8gAEEUaigCACIBRSABQQJ0RXJFBEAgACgCEBAECyAAQSBqKAIAIgFFIAFBAXRFckUEQCAAKAIcEAQLIABBLGooAgAEQCAAKAIoEAQLC2wBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEcNgIAIANCAjcCDCADQYCNwAA2AgggA0EcNgIkIAMgA0EgajYCGCADIAM2AiggAyADQQRqNgIgIANBCGogAhBRAAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBHDYCACADQgI3AgwgA0HMkcAANgIIIANBHDYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIAIQUQALbAEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQRw2AgAgA0ICNwIMIANBgJLAADYCCCADQRw2AiQgAyADQSBqNgIYIAMgA0EEajYCKCADIAM2AiAgA0EIaiACEFEAC2wBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEcNgIAIANCAjcCDCADQayRwAA2AgggA0EcNgIkIAMgA0EgajYCGCADIANBBGo2AiggAyADNgIgIANBCGogAhBRAAtcAQF/IwBBEGsiAyQAAkAgACgCBCABayACTwRAIANBADYCAAwBCyADIAAgASACEBYgAygCAEEBRw0AIANBCGooAgAiAARAIAMoAgQgABBjAAsQXQALIANBEGokAAtaAQF/IwBBEGsiAiQAAkAgACgCBCABa0EBTwRAIAJBADYCAAwBCyACIAAgARAeIAIoAgBBAUcNACACQQhqKAIAIgAEQCACKAIEIAAQYwALEF0ACyACQRBqJAALWgEBfyMAQRBrIgIkAAJAIAAoAgQgAWtBAU8EQCACQQA2AgAMAQsgAiAAIAEQHSACKAIAQQFHDQAgAkEIaigCACIABEAgAigCBCAAEGMACxBdAAsgAkEQaiQAC1kBAX8jAEEgayICJAAgAiAAKAIANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpB2InAACACQQhqEAkgAkEgaiQAC0YAAkBBCCACSQRAAn9BCCACSQRAIAIgAxAQDAELIAMQAAsiAg0BQQAPCyAAIAMQCg8LIAIgACADIAEgASADSxsQSyAAEAQLWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHwj8AAIAJBCGoQCSACQSBqJAALWQACQAJAAkAgAUF/SgRAAkAgAgRAIAENAQwECyABRQ0DIAFBARBZIgINBAwCCyABEEciAkUNAQwDCxBdAAsgAUEBEGMAC0EBIQILIAAgATYCBCAAIAI2AgALVgEBfyMAQSBrIgIkACACIAA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHwj8AAIAJBCGoQCSACQSBqJAALWQEDfwJAIAEoAgwiAiABKAIIIgNPBEAgASgCBCIEIAJJDQEgASgCACEBIAAgAiADazYCBCAAIAEgA2o2AgAPCyADIAJB2IbAABA4AAsgAiAEQdiGwAAQNwALVQEBfyAAQRBqIAAt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");function ct(e,t){return ut.apply(this,arguments)}function ut(){return(ut=Object(a.a)(o.a.mark((function e(t,A){var n;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.t0=st,e.t0){e.next=5;break}return e.next=4,Object(a.a)(o.a.mark((function e(){return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,nt(gt);case 2:return e.abrupt("return",it);case 3:case"end":return e.stop()}}),e)})))();case 4:st=e.sent;case 5:if(0!==(n=st.decompress(t,A)).length){e.next=8;break}throw Error("Failed to decode with LZW decoder.");case 8:return e.abrupt("return",n);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var lt=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(e){var n;Object(u.a)(this,A),n=t.call(this);var r=e.TileWidth||e.ImageWidth,i=e.TileLength||e.ImageLength,o=e.BitsPerSample[0]/8;return n.maxUncompressedSize=r*i*o,n}return Object(l.a)(A,[{key:"decodeBlock",value:function(){var e=Object(a.a)(o.a.mark((function e(t){var A,n;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=new Uint8Array(t),e.next=3,ct(A,this.maxUncompressedSize);case 3:return n=e.sent,e.abrupt("return",n.buffer);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()}]),A}(Xe),It=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);function Ct(e,t){for(var A=0,n=[],r=16;r>0&&!e[r-1];)--r;n.push({children:[],index:0});for(var i,o=n[0],a=0;a<r;a++){for(var s=0;s<e[a];s++){for((o=n.pop()).children[o.index]=t[A];o.index>0;)o=n.pop();for(o.index++,n.push(o);n.length<=a;)n.push(i={children:[],index:0}),o.children[o.index]=i.children,o=i;A++}a+1<r&&(n.push(i={children:[],index:0}),o.children[o.index]=i.children,o=i)}return n[0].children}function ht(e,t,A,n,r,i,o,a,s){var g=A.mcusPerLine,c=A.progressive,u=t,l=t,I=0,C=0;function h(){if(C>0)return C--,I>>C&1;if(255===(I=e[l++])){var t=e[l++];if(t)throw new Error("unexpected marker: ".concat((I<<8|t).toString(16)))}return C=7,I>>>7}function f(e){for(var t,A=e;null!==(t=h());){if("number"===typeof(A=A[t]))return A;if("object"!==typeof A)throw new Error("invalid huffman sequence")}return null}function d(e){for(var t=e,A=0;t>0;){var n=h();if(null===n)return;A=A<<1|n,--t}return A}function B(e){var t=d(e);return t>=1<<e-1?t:t+(-1<<e)+1}var p=0;var E,Q=0;function y(e,t,A,n,r){var i=A%g,o=(A/g|0)*e.v+n,a=i*e.h+r;t(e,e.blocks[o][a])}function v(e,t,A){var n=A/e.blocksPerLine|0,r=A%e.blocksPerLine;t(e,e.blocks[n][r])}var m,b,w,S,F,R,D=n.length;R=c?0===i?0===a?function(e,t){var A=f(e.huffmanTableDC),n=0===A?0:B(A)<<s;e.pred+=n,t[0]=e.pred}:function(e,t){t[0]|=h()<<s}:0===a?function(e,t){if(p>0)p--;else for(var A=i,n=o;A<=n;){var r=f(e.huffmanTableAC),a=15&r,g=r>>4;if(0===a){if(g<15){p=d(g)+(1<<g)-1;break}A+=16}else{t[It[A+=g]]=B(a)*(1<<s),A++}}}:function(e,t){for(var A=i,n=o,r=0;A<=n;){var a=It[A],g=t[a]<0?-1:1;switch(Q){case 0:var c=f(e.huffmanTableAC),u=15&c;if(r=c>>4,0===u)r<15?(p=d(r)+(1<<r),Q=4):(r=16,Q=1);else{if(1!==u)throw new Error("invalid ACn encoding");E=B(u),Q=r?2:3}continue;case 1:case 2:t[a]?t[a]+=(h()<<s)*g:0===--r&&(Q=2===Q?3:0);break;case 3:t[a]?t[a]+=(h()<<s)*g:(t[a]=E<<s,Q=0);break;case 4:t[a]&&(t[a]+=(h()<<s)*g)}A++}4===Q&&0===--p&&(Q=0)}:function(e,t){var A=f(e.huffmanTableDC),n=0===A?0:B(A);e.pred+=n,t[0]=e.pred;for(var r=1;r<64;){var i=f(e.huffmanTableAC),o=15&i,a=i>>4;if(0===o){if(a<15)break;r+=16}else{t[It[r+=a]]=B(o),r++}}};var G,k,x=0;k=1===D?n[0].blocksPerLine*n[0].blocksPerColumn:g*A.mcusPerColumn;for(var N=r||k;x<k;){for(b=0;b<D;b++)n[b].pred=0;if(p=0,1===D)for(m=n[0],F=0;F<N;F++)v(m,R,x),x++;else for(F=0;F<N;F++){for(b=0;b<D;b++){var U=m=n[b],_=U.h,M=U.v;for(w=0;w<M;w++)for(S=0;S<_;S++)y(m,R,x,w,S)}if(++x===k)break}if(C=0,(G=e[l]<<8|e[l+1])<65280)throw new Error("marker was not found");if(!(G>=65488&&G<=65495))break;l+=2}return l-u}function ft(e,t){var A=[],n=t.blocksPerLine,r=t.blocksPerColumn,i=n<<3,o=new Int32Array(64),a=new Uint8Array(64);function s(e,A,n){var r,i,o,a,s,g,c,u,l,I,C=t.quantizationTable,h=n;for(I=0;I<64;I++)h[I]=e[I]*C[I];for(I=0;I<8;++I){var f=8*I;0!==h[1+f]||0!==h[2+f]||0!==h[3+f]||0!==h[4+f]||0!==h[5+f]||0!==h[6+f]||0!==h[7+f]?(r=5793*h[0+f]+128>>8,i=5793*h[4+f]+128>>8,o=h[2+f],a=h[6+f],s=2896*(h[1+f]-h[7+f])+128>>8,u=2896*(h[1+f]+h[7+f])+128>>8,g=h[3+f]<<4,l=r-i+1>>1,r=r+i+1>>1,i=l,l=3784*o+1567*a+128>>8,o=1567*o-3784*a+128>>8,a=l,l=s-(c=h[5+f]<<4)+1>>1,s=s+c+1>>1,c=l,l=u+g+1>>1,g=u-g+1>>1,u=l,l=r-a+1>>1,r=r+a+1>>1,a=l,l=i-o+1>>1,i=i+o+1>>1,o=l,l=2276*s+3406*u+2048>>12,s=3406*s-2276*u+2048>>12,u=l,l=799*g+4017*c+2048>>12,g=4017*g-799*c+2048>>12,c=l,h[0+f]=r+u,h[7+f]=r-u,h[1+f]=i+c,h[6+f]=i-c,h[2+f]=o+g,h[5+f]=o-g,h[3+f]=a+s,h[4+f]=a-s):(l=5793*h[0+f]+512>>10,h[0+f]=l,h[1+f]=l,h[2+f]=l,h[3+f]=l,h[4+f]=l,h[5+f]=l,h[6+f]=l,h[7+f]=l)}for(I=0;I<8;++I){var d=I;0!==h[8+d]||0!==h[16+d]||0!==h[24+d]||0!==h[32+d]||0!==h[40+d]||0!==h[48+d]||0!==h[56+d]?(r=5793*h[0+d]+2048>>12,i=5793*h[32+d]+2048>>12,o=h[16+d],a=h[48+d],s=2896*(h[8+d]-h[56+d])+2048>>12,u=2896*(h[8+d]+h[56+d])+2048>>12,g=h[24+d],l=r-i+1>>1,r=r+i+1>>1,i=l,l=3784*o+1567*a+2048>>12,o=1567*o-3784*a+2048>>12,a=l,l=s-(c=h[40+d])+1>>1,s=s+c+1>>1,c=l,l=u+g+1>>1,g=u-g+1>>1,u=l,l=r-a+1>>1,r=r+a+1>>1,a=l,l=i-o+1>>1,i=i+o+1>>1,o=l,l=2276*s+3406*u+2048>>12,s=3406*s-2276*u+2048>>12,u=l,l=799*g+4017*c+2048>>12,g=4017*g-799*c+2048>>12,c=l,h[0+d]=r+u,h[56+d]=r-u,h[8+d]=i+c,h[48+d]=i-c,h[16+d]=o+g,h[40+d]=o-g,h[24+d]=a+s,h[32+d]=a-s):(l=5793*n[I+0]+8192>>14,h[0+d]=l,h[8+d]=l,h[16+d]=l,h[24+d]=l,h[32+d]=l,h[40+d]=l,h[48+d]=l,h[56+d]=l)}for(I=0;I<64;++I){var B=128+(h[I]+8>>4);A[I]=B<0?0:B>255?255:B}}for(var g=0;g<r;g++){for(var c=g<<3,u=0;u<8;u++)A.push(new Uint8Array(i));for(var l=0;l<n;l++){s(t.blocks[g][l],a,o);for(var I=0,C=l<<3,h=0;h<8;h++)for(var f=A[c+h],d=0;d<8;d++)f[C+d]=a[I++]}}return A}var dt=function(){function e(){Object(u.a)(this,e),this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}return Object(l.a)(e,[{key:"resetFrames",value:function(){this.frames=[]}},{key:"parse",value:function(e){var t=0;function A(){var A=e[t]<<8|e[t+1];return t+=2,A}function n(){var n=A(),r=e.subarray(t,t+n-2);return t+=r.length,r}function r(e){var t,A,n=0,r=0;for(A in e.components)e.components.hasOwnProperty(A)&&(n<(t=e.components[A]).h&&(n=t.h),r<t.v&&(r=t.v));var i=Math.ceil(e.samplesPerLine/8/n),o=Math.ceil(e.scanLines/8/r);for(A in e.components)if(e.components.hasOwnProperty(A)){t=e.components[A];for(var a=Math.ceil(Math.ceil(e.samplesPerLine/8)*t.h/n),s=Math.ceil(Math.ceil(e.scanLines/8)*t.v/r),g=i*t.h,c=o*t.v,u=[],l=0;l<c;l++){for(var I=[],C=0;C<g;C++)I.push(new Int32Array(64));u.push(I)}t.blocksPerLine=a,t.blocksPerColumn=s,t.blocks=u}e.maxH=n,e.maxV=r,e.mcusPerLine=i,e.mcusPerColumn=o}var i=A();if(65496!==i)throw new Error("SOI not found");for(i=A();65497!==i;){switch(i){case 65280:break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var o=n();65504===i&&74===o[0]&&70===o[1]&&73===o[2]&&70===o[3]&&0===o[4]&&(this.jfif={version:{major:o[5],minor:o[6]},densityUnits:o[7],xDensity:o[8]<<8|o[9],yDensity:o[10]<<8|o[11],thumbWidth:o[12],thumbHeight:o[13],thumbData:o.subarray(14,14+3*o[12]*o[13])}),65518===i&&65===o[0]&&100===o[1]&&111===o[2]&&98===o[3]&&101===o[4]&&0===o[5]&&(this.adobe={version:o[6],flags0:o[7]<<8|o[8],flags1:o[9]<<8|o[10],transformCode:o[11]});break;case 65499:for(var a=A()+t-2;t<a;){var s=e[t++],g=new Int32Array(64);if(s>>4===0)for(var c=0;c<64;c++){g[It[c]]=e[t++]}else{if(s>>4!==1)throw new Error("DQT: invalid table spec");for(var u=0;u<64;u++){g[It[u]]=A()}}this.quantizationTables[15&s]=g}break;case 65472:case 65473:case 65474:A();for(var l={extended:65473===i,progressive:65474===i,precision:e[t++],scanLines:A(),samplesPerLine:A(),components:{},componentsOrder:[]},I=e[t++],C=void 0,h=0;h<I;h++){C=e[t];var f=e[t+1]>>4,d=15&e[t+1],B=e[t+2];l.componentsOrder.push(C),l.components[C]={h:f,v:d,quantizationIdx:B},t+=3}r(l),this.frames.push(l);break;case 65476:for(var p=A(),E=2;E<p;){for(var Q=e[t++],y=new Uint8Array(16),v=0,m=0;m<16;m++,t++)y[m]=e[t],v+=y[m];for(var b=new Uint8Array(v),w=0;w<v;w++,t++)b[w]=e[t];E+=17+v,Q>>4===0?this.huffmanTablesDC[15&Q]=Ct(y,b):this.huffmanTablesAC[15&Q]=Ct(y,b)}break;case 65501:A(),this.resetInterval=A();break;case 65498:A();for(var S=e[t++],F=[],R=this.frames[0],D=0;D<S;D++){var G=R.components[e[t++]],k=e[t++];G.huffmanTableDC=this.huffmanTablesDC[k>>4],G.huffmanTableAC=this.huffmanTablesAC[15&k],F.push(G)}var x=e[t++],N=e[t++],U=e[t++],_=ht(e,t,R,F,this.resetInterval,x,N,U>>4,15&U);t+=_;break;case 65535:255!==e[t]&&t--;break;default:if(255===e[t-3]&&e[t-2]>=192&&e[t-2]<=254){t-=3;break}throw new Error("unknown JPEG marker ".concat(i.toString(16)))}i=A()}}},{key:"getResult",value:function(){var e=this.frames;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(var t=0;t<this.frames.length;t++)for(var A=this.frames[t].components,n=0,r=Object.keys(A);n<r.length;n++){var i=r[n];A[i].quantizationTable=this.quantizationTables[A[i].quantizationIdx],delete A[i].quantizationIdx}for(var o=e[0],a=o.components,s=o.componentsOrder,g=[],c=o.samplesPerLine,u=o.scanLines,l=0;l<s.length;l++){var I=a[s[l]];g.push({lines:ft(0,I),scaleX:I.h/o.maxH,scaleY:I.v/o.maxV})}for(var C=new Uint8Array(c*u*g.length),h=0,f=0;f<u;++f)for(var d=0;d<c;++d)for(var B=0;B<g.length;++B){var p=g[B];C[h]=p.lines[0|f*p.scaleY][0|d*p.scaleX],++h}return C}}]),e}(),Bt=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(e){var n;return Object(u.a)(this,A),(n=t.call(this)).reader=new dt,e.JPEGTables&&n.reader.parse(e.JPEGTables),n}return Object(l.a)(A,[{key:"decodeBlock",value:function(e){return this.reader.resetFrames(),this.reader.parse(new Uint8Array(e)),this.reader.getResult().buffer}}]),A}(Xe);function pt(e){for(var t=e.length;--t>=0;)e[t]=0}var Et=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Qt=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),yt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),vt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),mt=new Array(576);pt(mt);var bt=new Array(60);pt(bt);var wt=new Array(512);pt(wt);var St=new Array(256);pt(St);var Ft=new Array(29);pt(Ft);var Rt,Dt,Gt,kt=new Array(30);function xt(e,t,A,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=A,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}function Nt(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}pt(kt);var Ut=function(e){return e<256?wt[e]:wt[256+(e>>>7)]},_t=function(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Mt=function(e,t,A){e.bi_valid>16-A?(e.bi_buf|=t<<e.bi_valid&65535,_t(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=A-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=A)},Ot=function(e,t,A){Mt(e,A[2*t],A[2*t+1])},Lt=function(e,t){var A=0;do{A|=1&e,e>>>=1,A<<=1}while(--t>0);return A>>>1},Tt=function(e,t,A){var n,r,i=new Array(16),o=0;for(n=1;n<=15;n++)i[n]=o=o+A[n-1]<<1;for(r=0;r<=t;r++){var a=e[2*r+1];0!==a&&(e[2*r]=Lt(i[a]++,a))}},Zt=function(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},Ht=function(e){e.bi_valid>8?_t(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Yt=function(e,t,A,n){var r=2*t,i=2*A;return e[r]<e[i]||e[r]===e[i]&&n[t]<=n[A]},Jt=function(e,t,A){for(var n=e.heap[A],r=A<<1;r<=e.heap_len&&(r<e.heap_len&&Yt(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!Yt(t,n,e.heap[r],e.depth));)e.heap[A]=e.heap[r],A=r,r<<=1;e.heap[A]=n},jt=function(e,t,A){var n,r,i,o,a=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*a]<<8|e.pending_buf[e.d_buf+2*a+1],r=e.pending_buf[e.l_buf+a],a++,0===n?Ot(e,r,t):(i=St[r],Ot(e,i+256+1,t),0!==(o=Et[i])&&(r-=Ft[i],Mt(e,r,o)),n--,i=Ut(n),Ot(e,i,A),0!==(o=Qt[i])&&(n-=kt[i],Mt(e,n,o)))}while(a<e.last_lit);Ot(e,256,t)},Pt=function(e,t){var A,n,r,i=t.dyn_tree,o=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.elems,g=-1;for(e.heap_len=0,e.heap_max=573,A=0;A<s;A++)0!==i[2*A]?(e.heap[++e.heap_len]=g=A,e.depth[A]=0):i[2*A+1]=0;for(;e.heap_len<2;)i[2*(r=e.heap[++e.heap_len]=g<2?++g:0)]=1,e.depth[r]=0,e.opt_len--,a&&(e.static_len-=o[2*r+1]);for(t.max_code=g,A=e.heap_len>>1;A>=1;A--)Jt(e,i,A);r=s;do{A=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Jt(e,i,1),n=e.heap[1],e.heap[--e.heap_max]=A,e.heap[--e.heap_max]=n,i[2*r]=i[2*A]+i[2*n],e.depth[r]=(e.depth[A]>=e.depth[n]?e.depth[A]:e.depth[n])+1,i[2*A+1]=i[2*n+1]=r,e.heap[1]=r++,Jt(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var A,n,r,i,o,a,s=t.dyn_tree,g=t.max_code,c=t.stat_desc.static_tree,u=t.stat_desc.has_stree,l=t.stat_desc.extra_bits,I=t.stat_desc.extra_base,C=t.stat_desc.max_length,h=0;for(i=0;i<=15;i++)e.bl_count[i]=0;for(s[2*e.heap[e.heap_max]+1]=0,A=e.heap_max+1;A<573;A++)(i=s[2*s[2*(n=e.heap[A])+1]+1]+1)>C&&(i=C,h++),s[2*n+1]=i,n>g||(e.bl_count[i]++,o=0,n>=I&&(o=l[n-I]),a=s[2*n],e.opt_len+=a*(i+o),u&&(e.static_len+=a*(c[2*n+1]+o)));if(0!==h){do{for(i=C-1;0===e.bl_count[i];)i--;e.bl_count[i]--,e.bl_count[i+1]+=2,e.bl_count[C]--,h-=2}while(h>0);for(i=C;0!==i;i--)for(n=e.bl_count[i];0!==n;)(r=e.heap[--A])>g||(s[2*r+1]!==i&&(e.opt_len+=(i-s[2*r+1])*s[2*r],s[2*r+1]=i),n--)}}(e,t),Tt(i,g,e.bl_count)},Vt=function(e,t,A){var n,r,i=-1,o=t[1],a=0,s=7,g=4;for(0===o&&(s=138,g=3),t[2*(A+1)+1]=65535,n=0;n<=A;n++)r=o,o=t[2*(n+1)+1],++a<s&&r===o||(a<g?e.bl_tree[2*r]+=a:0!==r?(r!==i&&e.bl_tree[2*r]++,e.bl_tree[32]++):a<=10?e.bl_tree[34]++:e.bl_tree[36]++,a=0,i=r,0===o?(s=138,g=3):r===o?(s=6,g=3):(s=7,g=4))},Kt=function(e,t,A){var n,r,i=-1,o=t[1],a=0,s=7,g=4;for(0===o&&(s=138,g=3),n=0;n<=A;n++)if(r=o,o=t[2*(n+1)+1],!(++a<s&&r===o)){if(a<g)do{Ot(e,r,e.bl_tree)}while(0!==--a);else 0!==r?(r!==i&&(Ot(e,r,e.bl_tree),a--),Ot(e,16,e.bl_tree),Mt(e,a-3,2)):a<=10?(Ot(e,17,e.bl_tree),Mt(e,a-3,3)):(Ot(e,18,e.bl_tree),Mt(e,a-11,7));a=0,i=r,0===o?(s=138,g=3):r===o?(s=6,g=3):(s=7,g=4)}},Wt=!1,Xt=function(e,t,A,n){Mt(e,0+(n?1:0),3),function(e,t,A,n){Ht(e),n&&(_t(e,A),_t(e,~A)),e.pending_buf.set(e.window.subarray(t,t+A),e.pending),e.pending+=A}(e,t,A,!0)},qt={_tr_init:function(e){Wt||(!function(){var e,t,A,n,r,i=new Array(16);for(A=0,n=0;n<28;n++)for(Ft[n]=A,e=0;e<1<<Et[n];e++)St[A++]=n;for(St[A-1]=n,r=0,n=0;n<16;n++)for(kt[n]=r,e=0;e<1<<Qt[n];e++)wt[r++]=n;for(r>>=7;n<30;n++)for(kt[n]=r<<7,e=0;e<1<<Qt[n]-7;e++)wt[256+r++]=n;for(t=0;t<=15;t++)i[t]=0;for(e=0;e<=143;)mt[2*e+1]=8,e++,i[8]++;for(;e<=255;)mt[2*e+1]=9,e++,i[9]++;for(;e<=279;)mt[2*e+1]=7,e++,i[7]++;for(;e<=287;)mt[2*e+1]=8,e++,i[8]++;for(Tt(mt,287,i),e=0;e<30;e++)bt[2*e+1]=5,bt[2*e]=Lt(e,5);Rt=new xt(mt,Et,257,286,15),Dt=new xt(bt,Qt,0,30,15),Gt=new xt(new Array(0),yt,0,19,7)}(),Wt=!0),e.l_desc=new Nt(e.dyn_ltree,Rt),e.d_desc=new Nt(e.dyn_dtree,Dt),e.bl_desc=new Nt(e.bl_tree,Gt),e.bi_buf=0,e.bi_valid=0,Zt(e)},_tr_stored_block:Xt,_tr_flush_block:function(e,t,A,n){var r,i,o=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,A=4093624447;for(t=0;t<=31;t++,A>>>=1)if(1&A&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),Pt(e,e.l_desc),Pt(e,e.d_desc),o=function(e){var t;for(Vt(e,e.dyn_ltree,e.l_desc.max_code),Vt(e,e.dyn_dtree,e.d_desc.max_code),Pt(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*vt[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),r=e.opt_len+3+7>>>3,(i=e.static_len+3+7>>>3)<=r&&(r=i)):r=i=A+5,A+4<=r&&-1!==t?Xt(e,t,A,n):4===e.strategy||i===r?(Mt(e,2+(n?1:0),3),jt(e,mt,bt)):(Mt(e,4+(n?1:0),3),function(e,t,A,n){var r;for(Mt(e,t-257,5),Mt(e,A-1,5),Mt(e,n-4,4),r=0;r<n;r++)Mt(e,e.bl_tree[2*vt[r]+1],3);Kt(e,e.dyn_ltree,t-1),Kt(e,e.dyn_dtree,A-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),jt(e,e.dyn_ltree,e.dyn_dtree)),Zt(e),n&&Ht(e)},_tr_tally:function(e,t,A){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&A,e.last_lit++,0===t?e.dyn_ltree[2*A]++:(e.matches++,t--,e.dyn_ltree[2*(St[A]+256+1)]++,e.dyn_dtree[2*Ut(t)]++),e.last_lit===e.lit_bufsize-1},_tr_align:function(e){Mt(e,2,3),Ot(e,256,mt),function(e){16===e.bi_valid?(_t(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},zt=function(e,t,A,n){for(var r=65535&e|0,i=e>>>16&65535|0,o=0;0!==A;){A-=o=A>2e3?2e3:A;do{i=i+(r=r+t[n++]|0)|0}while(--o);r%=65521,i%=65521}return r|i<<16|0},$t=new Uint32Array(function(){for(var e,t=[],A=0;A<256;A++){e=A;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[A]=e}return t}()),eA=function(e,t,A,n){var r=$t,i=n+A;e^=-1;for(var o=n;o<i;o++)e=e>>>8^r[255&(e^t[o])];return-1^e},tA={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},AA={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},nA=qt._tr_init,rA=qt._tr_stored_block,iA=qt._tr_flush_block,oA=qt._tr_tally,aA=qt._tr_align,sA=AA.Z_NO_FLUSH,gA=AA.Z_PARTIAL_FLUSH,cA=AA.Z_FULL_FLUSH,uA=AA.Z_FINISH,lA=AA.Z_BLOCK,IA=AA.Z_OK,CA=AA.Z_STREAM_END,hA=AA.Z_STREAM_ERROR,fA=AA.Z_DATA_ERROR,dA=AA.Z_BUF_ERROR,BA=AA.Z_DEFAULT_COMPRESSION,pA=AA.Z_FILTERED,EA=AA.Z_HUFFMAN_ONLY,QA=AA.Z_RLE,yA=AA.Z_FIXED,vA=AA.Z_DEFAULT_STRATEGY,mA=AA.Z_UNKNOWN,bA=AA.Z_DEFLATED,wA=function(e,t){return e.msg=tA[t],t},SA=function(e){return(e<<1)-(e>4?9:0)},FA=function(e){for(var t=e.length;--t>=0;)e[t]=0},RA=function(e,t,A){return(t<<e.hash_shift^A)&e.hash_mask},DA=function(e){var t=e.state,A=t.pending;A>e.avail_out&&(A=e.avail_out),0!==A&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+A),e.next_out),e.next_out+=A,t.pending_out+=A,e.total_out+=A,e.avail_out-=A,t.pending-=A,0===t.pending&&(t.pending_out=0))},GA=function(e,t){iA(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,DA(e.strm)},kA=function(e,t){e.pending_buf[e.pending++]=t},xA=function(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},NA=function(e,t,A,n){var r=e.avail_in;return r>n&&(r=n),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),A),1===e.state.wrap?e.adler=zt(e.adler,t,r,A):2===e.state.wrap&&(e.adler=eA(e.adler,t,r,A)),e.next_in+=r,e.total_in+=r,r)},UA=function(e,t){var A,n,r=e.max_chain_length,i=e.strstart,o=e.prev_length,a=e.nice_match,s=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,g=e.window,c=e.w_mask,u=e.prev,l=e.strstart+258,I=g[i+o-1],C=g[i+o];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(g[(A=t)+o]===C&&g[A+o-1]===I&&g[A]===g[i]&&g[++A]===g[i+1]){i+=2,A++;do{}while(g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&i<l);if(n=258-(l-i),i=l-258,n>o){if(e.match_start=t,o=n,n>=a)break;I=g[i+o-1],C=g[i+o]}}}while((t=u[t&c])>s&&0!==--r);return o<=e.lookahead?o:e.lookahead},_A=function(e){var t,A,n,r,i,o=e.w_size;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=o+(o-262)){e.window.set(e.window.subarray(o,o+o),0),e.match_start-=o,e.strstart-=o,e.block_start-=o,t=A=e.hash_size;do{n=e.head[--t],e.head[t]=n>=o?n-o:0}while(--A);t=A=o;do{n=e.prev[--t],e.prev[t]=n>=o?n-o:0}while(--A);r+=o}if(0===e.strm.avail_in)break;if(A=NA(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=A,e.lookahead+e.insert>=3)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=RA(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=RA(e,e.ins_h,e.window[i+3-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},MA=function(e,t){for(var A,n;;){if(e.lookahead<262){if(_A(e),e.lookahead<262&&t===sA)return 1;if(0===e.lookahead)break}if(A=0,e.lookahead>=3&&(e.ins_h=RA(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==A&&e.strstart-A<=e.w_size-262&&(e.match_length=UA(e,A)),e.match_length>=3)if(n=oA(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=RA(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!==--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=RA(e,e.ins_h,e.window[e.strstart+1]);else n=oA(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(GA(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===uA?(GA(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(GA(e,!1),0===e.strm.avail_out)?1:2},OA=function(e,t){for(var A,n,r;;){if(e.lookahead<262){if(_A(e),e.lookahead<262&&t===sA)return 1;if(0===e.lookahead)break}if(A=0,e.lookahead>=3&&(e.ins_h=RA(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==A&&e.prev_length<e.max_lazy_match&&e.strstart-A<=e.w_size-262&&(e.match_length=UA(e,A),e.match_length<=5&&(e.strategy===pA||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,n=oA(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=RA(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!==--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(GA(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((n=oA(e,0,e.window[e.strstart-1]))&&GA(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=oA(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===uA?(GA(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(GA(e,!1),0===e.strm.avail_out)?1:2};function LA(e,t,A,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=A,this.max_chain=n,this.func=r}var TA=[new LA(0,0,0,0,(function(e,t){var A=65535;for(A>e.pending_buf_size-5&&(A=e.pending_buf_size-5);;){if(e.lookahead<=1){if(_A(e),0===e.lookahead&&t===sA)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+A;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,GA(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(GA(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===uA?(GA(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(GA(e,!1),e.strm.avail_out),1)})),new LA(4,4,8,4,MA),new LA(4,5,16,8,MA),new LA(4,6,32,32,MA),new LA(4,4,16,16,OA),new LA(8,16,32,32,OA),new LA(8,16,128,128,OA),new LA(8,32,128,256,OA),new LA(32,128,258,1024,OA),new LA(32,258,258,4096,OA)];function ZA(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=bA,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),FA(this.dyn_ltree),FA(this.dyn_dtree),FA(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),FA(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),FA(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var HA=function(e){if(!e||!e.state)return wA(e,hA);e.total_in=e.total_out=0,e.data_type=mA;var t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=sA,nA(t),IA},YA=function(e){var t,A=HA(e);return A===IA&&((t=e.state).window_size=2*t.w_size,FA(t.head),t.max_lazy_match=TA[t.level].max_lazy,t.good_match=TA[t.level].good_length,t.nice_match=TA[t.level].nice_length,t.max_chain_length=TA[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),A},JA=function(e,t,A,n,r,i){if(!e)return hA;var o=1;if(t===BA&&(t=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),r<1||r>9||A!==bA||n<8||n>15||t<0||t>9||i<0||i>yA)return wA(e,hA);8===n&&(n=9);var a=new ZA;return e.state=a,a.strm=e,a.wrap=o,a.gzhead=null,a.w_bits=n,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=r+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+3-1)/3),a.window=new Uint8Array(2*a.w_size),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<r+6,a.pending_buf_size=4*a.lit_bufsize,a.pending_buf=new Uint8Array(a.pending_buf_size),a.d_buf=1*a.lit_bufsize,a.l_buf=3*a.lit_bufsize,a.level=t,a.strategy=i,a.method=A,YA(e)},jA={deflateInit:function(e,t){return JA(e,t,bA,15,8,vA)},deflateInit2:JA,deflateReset:YA,deflateResetKeep:HA,deflateSetHeader:function(e,t){return e&&e.state?2!==e.state.wrap?hA:(e.state.gzhead=t,IA):hA},deflate:function(e,t){var A,n;if(!e||!e.state||t>lA||t<0)return e?wA(e,hA):hA;var r=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===r.status&&t!==uA)return wA(e,0===e.avail_out?dA:hA);r.strm=e;var i=r.last_flush;if(r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,kA(r,31),kA(r,139),kA(r,8),r.gzhead?(kA(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),kA(r,255&r.gzhead.time),kA(r,r.gzhead.time>>8&255),kA(r,r.gzhead.time>>16&255),kA(r,r.gzhead.time>>24&255),kA(r,9===r.level?2:r.strategy>=EA||r.level<2?4:0),kA(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(kA(r,255&r.gzhead.extra.length),kA(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=eA(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(kA(r,0),kA(r,0),kA(r,0),kA(r,0),kA(r,0),kA(r,9===r.level?2:r.strategy>=EA||r.level<2?4:0),kA(r,3),r.status=113);else{var o=bA+(r.w_bits-8<<4)<<8;o|=(r.strategy>=EA||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(o|=32),o+=31-o%31,r.status=113,xA(r,o),0!==r.strstart&&(xA(r,e.adler>>>16),xA(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(A=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>A&&(e.adler=eA(e.adler,r.pending_buf,r.pending-A,A)),DA(e),A=r.pending,r.pending!==r.pending_buf_size));)kA(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>A&&(e.adler=eA(e.adler,r.pending_buf,r.pending-A,A)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){A=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>A&&(e.adler=eA(e.adler,r.pending_buf,r.pending-A,A)),DA(e),A=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,kA(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>A&&(e.adler=eA(e.adler,r.pending_buf,r.pending-A,A)),0===n&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){A=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>A&&(e.adler=eA(e.adler,r.pending_buf,r.pending-A,A)),DA(e),A=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,kA(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>A&&(e.adler=eA(e.adler,r.pending_buf,r.pending-A,A)),0===n&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&DA(e),r.pending+2<=r.pending_buf_size&&(kA(r,255&e.adler),kA(r,e.adler>>8&255),e.adler=0,r.status=113)):r.status=113),0!==r.pending){if(DA(e),0===e.avail_out)return r.last_flush=-1,IA}else if(0===e.avail_in&&SA(t)<=SA(i)&&t!==uA)return wA(e,dA);if(666===r.status&&0!==e.avail_in)return wA(e,dA);if(0!==e.avail_in||0!==r.lookahead||t!==sA&&666!==r.status){var a=r.strategy===EA?function(e,t){for(var A;;){if(0===e.lookahead&&(_A(e),0===e.lookahead)){if(t===sA)return 1;break}if(e.match_length=0,A=oA(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,A&&(GA(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===uA?(GA(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(GA(e,!1),0===e.strm.avail_out)?1:2}(r,t):r.strategy===QA?function(e,t){for(var A,n,r,i,o=e.window;;){if(e.lookahead<=258){if(_A(e),e.lookahead<=258&&t===sA)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=o[r=e.strstart-1])===o[++r]&&n===o[++r]&&n===o[++r]){i=e.strstart+258;do{}while(n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&r<i);e.match_length=258-(i-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(A=oA(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(A=oA(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),A&&(GA(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===uA?(GA(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(GA(e,!1),0===e.strm.avail_out)?1:2}(r,t):TA[r.level].func(r,t);if(3!==a&&4!==a||(r.status=666),1===a||3===a)return 0===e.avail_out&&(r.last_flush=-1),IA;if(2===a&&(t===gA?aA(r):t!==lA&&(rA(r,0,0,!1),t===cA&&(FA(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),DA(e),0===e.avail_out))return r.last_flush=-1,IA}return t!==uA?IA:r.wrap<=0?CA:(2===r.wrap?(kA(r,255&e.adler),kA(r,e.adler>>8&255),kA(r,e.adler>>16&255),kA(r,e.adler>>24&255),kA(r,255&e.total_in),kA(r,e.total_in>>8&255),kA(r,e.total_in>>16&255),kA(r,e.total_in>>24&255)):(xA(r,e.adler>>>16),xA(r,65535&e.adler)),DA(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?IA:CA)},deflateEnd:function(e){if(!e||!e.state)return hA;var t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?wA(e,hA):(e.state=null,113===t?wA(e,fA):IA)},deflateSetDictionary:function(e,t){var A=t.length;if(!e||!e.state)return hA;var n=e.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return hA;if(1===r&&(e.adler=zt(e.adler,t,A,0)),n.wrap=0,A>=n.w_size){0===r&&(FA(n.head),n.strstart=0,n.block_start=0,n.insert=0);var i=new Uint8Array(n.w_size);i.set(t.subarray(A-n.w_size,A),0),t=i,A=n.w_size}var o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=A,e.next_in=0,e.input=t,_A(n);n.lookahead>=3;){var g=n.strstart,c=n.lookahead-2;do{n.ins_h=RA(n,n.ins_h,n.window[g+3-1]),n.prev[g&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=g,g++}while(--c);n.strstart=g,n.lookahead=2,_A(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,n.wrap=r,IA},deflateInfo:"pako deflate (from Nodeca project)"},PA=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},VA=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var A=t.shift();if(A){if("object"!==typeof A)throw new TypeError(A+"must be non-object");for(var n in A)PA(A,n)&&(e[n]=A[n])}}return e},KA=function(e){for(var t=0,A=0,n=e.length;A<n;A++)t+=e[A].length;for(var r=new Uint8Array(t),i=0,o=0,a=e.length;i<a;i++){var s=e[i];r.set(s,o),o+=s.length}return r},WA=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(aa){WA=!1}for(var XA=new Uint8Array(256),qA=0;qA<256;qA++)XA[qA]=qA>=252?6:qA>=248?5:qA>=240?4:qA>=224?3:qA>=192?2:1;XA[254]=XA[254]=1;var zA=function(e){if("function"===typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);var t,A,n,r,i,o=e.length,a=0;for(r=0;r<o;r++)55296===(64512&(A=e.charCodeAt(r)))&&r+1<o&&56320===(64512&(n=e.charCodeAt(r+1)))&&(A=65536+(A-55296<<10)+(n-56320),r++),a+=A<128?1:A<2048?2:A<65536?3:4;for(t=new Uint8Array(a),i=0,r=0;i<a;r++)55296===(64512&(A=e.charCodeAt(r)))&&r+1<o&&56320===(64512&(n=e.charCodeAt(r+1)))&&(A=65536+(A-55296<<10)+(n-56320),r++),A<128?t[i++]=A:A<2048?(t[i++]=192|A>>>6,t[i++]=128|63&A):A<65536?(t[i++]=224|A>>>12,t[i++]=128|A>>>6&63,t[i++]=128|63&A):(t[i++]=240|A>>>18,t[i++]=128|A>>>12&63,t[i++]=128|A>>>6&63,t[i++]=128|63&A);return t},$A=function(e,t){var A,n,r=t||e.length;if("function"===typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));var i=new Array(2*r);for(n=0,A=0;A<r;){var o=e[A++];if(o<128)i[n++]=o;else{var a=XA[o];if(a>4)i[n++]=65533,A+=a-1;else{for(o&=2===a?31:3===a?15:7;a>1&&A<r;)o=o<<6|63&e[A++],a--;a>1?i[n++]=65533:o<65536?i[n++]=o:(o-=65536,i[n++]=55296|o>>10&1023,i[n++]=56320|1023&o)}}}return function(e,t){if(t<65534&&e.subarray&&WA)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));for(var A="",n=0;n<t;n++)A+=String.fromCharCode(e[n]);return A}(i,n)},en=function(e,t){(t=t||e.length)>e.length&&(t=e.length);for(var A=t-1;A>=0&&128===(192&e[A]);)A--;return A<0||0===A?t:A+XA[e[A]]>t?A:t};var tn=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},An=Object.prototype.toString,nn=AA.Z_NO_FLUSH,rn=AA.Z_SYNC_FLUSH,on=AA.Z_FULL_FLUSH,an=AA.Z_FINISH,sn=AA.Z_OK,gn=AA.Z_STREAM_END,cn=AA.Z_DEFAULT_COMPRESSION,un=AA.Z_DEFAULT_STRATEGY,ln=AA.Z_DEFLATED;function In(e){this.options=VA({level:cn,method:ln,chunkSize:16384,windowBits:15,memLevel:8,strategy:un},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new tn,this.strm.avail_out=0;var A=jA.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(A!==sn)throw new Error(tA[A]);if(t.header&&jA.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n="string"===typeof t.dictionary?zA(t.dictionary):"[object ArrayBuffer]"===An.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(A=jA.deflateSetDictionary(this.strm,n))!==sn)throw new Error(tA[A]);this._dict_set=!0}}In.prototype.push=function(e,t){var A,n,r=this.strm,i=this.options.chunkSize;if(this.ended)return!1;for(n=t===~~t?t:!0===t?an:nn,"string"===typeof e?r.input=zA(e):"[object ArrayBuffer]"===An.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;)if(0===r.avail_out&&(r.output=new Uint8Array(i),r.next_out=0,r.avail_out=i),(n===rn||n===on)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if((A=jA.deflate(r,n))===gn)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),A=jA.deflateEnd(this.strm),this.onEnd(A),this.ended=!0,A===sn;if(0!==r.avail_out){if(n>0&&r.next_out>0)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else if(0===r.avail_in)break}else this.onData(r.output)}return!0},In.prototype.onData=function(e){this.chunks.push(e)},In.prototype.onEnd=function(e){e===sn&&(this.result=KA(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Cn=function(e,t){var A,n,r,i,o,a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w=e.state;A=e.next_in,m=e.input,n=A+(e.avail_in-5),r=e.next_out,b=e.output,i=r-(t-e.avail_out),o=r+(e.avail_out-257),a=w.dmax,s=w.wsize,g=w.whave,c=w.wnext,u=w.window,l=w.hold,I=w.bits,C=w.lencode,h=w.distcode,f=(1<<w.lenbits)-1,d=(1<<w.distbits)-1;e:do{I<15&&(l+=m[A++]<<I,I+=8,l+=m[A++]<<I,I+=8),B=C[l&f];t:for(;;){if(l>>>=p=B>>>24,I-=p,0===(p=B>>>16&255))b[r++]=65535&B;else{if(!(16&p)){if(0===(64&p)){B=C[(65535&B)+(l&(1<<p)-1)];continue t}if(32&p){w.mode=12;break e}e.msg="invalid literal/length code",w.mode=30;break e}E=65535&B,(p&=15)&&(I<p&&(l+=m[A++]<<I,I+=8),E+=l&(1<<p)-1,l>>>=p,I-=p),I<15&&(l+=m[A++]<<I,I+=8,l+=m[A++]<<I,I+=8),B=h[l&d];A:for(;;){if(l>>>=p=B>>>24,I-=p,!(16&(p=B>>>16&255))){if(0===(64&p)){B=h[(65535&B)+(l&(1<<p)-1)];continue A}e.msg="invalid distance code",w.mode=30;break e}if(Q=65535&B,I<(p&=15)&&(l+=m[A++]<<I,(I+=8)<p&&(l+=m[A++]<<I,I+=8)),(Q+=l&(1<<p)-1)>a){e.msg="invalid distance too far back",w.mode=30;break e}if(l>>>=p,I-=p,Q>(p=r-i)){if((p=Q-p)>g&&w.sane){e.msg="invalid distance too far back",w.mode=30;break e}if(y=0,v=u,0===c){if(y+=s-p,p<E){E-=p;do{b[r++]=u[y++]}while(--p);y=r-Q,v=b}}else if(c<p){if(y+=s+c-p,(p-=c)<E){E-=p;do{b[r++]=u[y++]}while(--p);if(y=0,c<E){E-=p=c;do{b[r++]=u[y++]}while(--p);y=r-Q,v=b}}}else if(y+=c-p,p<E){E-=p;do{b[r++]=u[y++]}while(--p);y=r-Q,v=b}for(;E>2;)b[r++]=v[y++],b[r++]=v[y++],b[r++]=v[y++],E-=3;E&&(b[r++]=v[y++],E>1&&(b[r++]=v[y++]))}else{y=r-Q;do{b[r++]=b[y++],b[r++]=b[y++],b[r++]=b[y++],E-=3}while(E>2);E&&(b[r++]=b[y++],E>1&&(b[r++]=b[y++]))}break}}break}}while(A<n&&r<o);A-=E=I>>3,l&=(1<<(I-=E<<3))-1,e.next_in=A,e.next_out=r,e.avail_in=A<n?n-A+5:5-(A-n),e.avail_out=r<o?o-r+257:257-(r-o),w.hold=l,w.bits=I},hn=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),fn=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),dn=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Bn=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),pn=function(e,t,A,n,r,i,o,a){var s,g,c,u,l,I,C,h,f,d=a.bits,B=0,p=0,E=0,Q=0,y=0,v=0,m=0,b=0,w=0,S=0,F=null,R=0,D=new Uint16Array(16),G=new Uint16Array(16),k=null,x=0;for(B=0;B<=15;B++)D[B]=0;for(p=0;p<n;p++)D[t[A+p]]++;for(y=d,Q=15;Q>=1&&0===D[Q];Q--);if(y>Q&&(y=Q),0===Q)return r[i++]=20971520,r[i++]=20971520,a.bits=1,0;for(E=1;E<Q&&0===D[E];E++);for(y<E&&(y=E),b=1,B=1;B<=15;B++)if(b<<=1,(b-=D[B])<0)return-1;if(b>0&&(0===e||1!==Q))return-1;for(G[1]=0,B=1;B<15;B++)G[B+1]=G[B]+D[B];for(p=0;p<n;p++)0!==t[A+p]&&(o[G[t[A+p]]++]=p);if(0===e?(F=k=o,I=19):1===e?(F=hn,R-=257,k=fn,x-=257,I=256):(F=dn,k=Bn,I=-1),S=0,p=0,B=E,l=i,v=y,m=0,c=-1,u=(w=1<<y)-1,1===e&&w>852||2===e&&w>592)return 1;for(;;){C=B-m,o[p]<I?(h=0,f=o[p]):o[p]>I?(h=k[x+o[p]],f=F[R+o[p]]):(h=96,f=0),s=1<<B-m,E=g=1<<v;do{r[l+(S>>m)+(g-=s)]=C<<24|h<<16|f|0}while(0!==g);for(s=1<<B-1;S&s;)s>>=1;if(0!==s?(S&=s-1,S+=s):S=0,p++,0===--D[B]){if(B===Q)break;B=t[A+o[p]]}if(B>y&&(S&u)!==c){for(0===m&&(m=y),l+=E,b=1<<(v=B-m);v+m<Q&&!((b-=D[v+m])<=0);)v++,b<<=1;if(w+=1<<v,1===e&&w>852||2===e&&w>592)return 1;r[c=S&u]=y<<24|v<<16|l-i|0}}return 0!==S&&(r[l+S]=B-m<<24|64<<16|0),a.bits=y,0},En=AA.Z_FINISH,Qn=AA.Z_BLOCK,yn=AA.Z_TREES,vn=AA.Z_OK,mn=AA.Z_STREAM_END,bn=AA.Z_NEED_DICT,wn=AA.Z_STREAM_ERROR,Sn=AA.Z_DATA_ERROR,Fn=AA.Z_MEM_ERROR,Rn=AA.Z_BUF_ERROR,Dn=AA.Z_DEFLATED,Gn=function(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)};function kn(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var xn,Nn,Un=function(e){if(!e||!e.state)return wn;var t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,vn},_n=function(e){if(!e||!e.state)return wn;var t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Un(e)},Mn=function(e,t){var A;if(!e||!e.state)return wn;var n=e.state;return t<0?(A=0,t=-t):(A=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?wn:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=A,n.wbits=t,_n(e))},On=function(e,t){if(!e)return wn;var A=new kn;e.state=A,A.window=null;var n=Mn(e,t);return n!==vn&&(e.state=null),n},Ln=!0,Tn=function(e){if(Ln){xn=new Int32Array(512),Nn=new Int32Array(32);for(var t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(pn(1,e.lens,0,288,xn,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;pn(2,e.lens,0,32,Nn,0,e.work,{bits:5}),Ln=!1}e.lencode=xn,e.lenbits=9,e.distcode=Nn,e.distbits=5},Zn=function(e,t,A,n){var r,i=e.state;return null===i.window&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=new Uint8Array(i.wsize)),n>=i.wsize?(i.window.set(t.subarray(A-i.wsize,A),0),i.wnext=0,i.whave=i.wsize):((r=i.wsize-i.wnext)>n&&(r=n),i.window.set(t.subarray(A-n,A-n+r),i.wnext),(n-=r)?(i.window.set(t.subarray(A-n,A),0),i.wnext=n,i.whave=i.wsize):(i.wnext+=r,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=r))),0},Hn={inflateReset:_n,inflateReset2:Mn,inflateResetKeep:Un,inflateInit:function(e){return On(e,15)},inflateInit2:On,inflate:function(e,t){var A,n,r,i,o,a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w=0,S=new Uint8Array(4),F=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return wn;12===(A=e.state).mode&&(A.mode=13),o=e.next_out,r=e.output,s=e.avail_out,i=e.next_in,n=e.input,a=e.avail_in,g=A.hold,c=A.bits,u=a,l=s,v=vn;e:for(;;)switch(A.mode){case 1:if(0===A.wrap){A.mode=13;break}for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(2&A.wrap&&35615===g){A.check=0,S[0]=255&g,S[1]=g>>>8&255,A.check=eA(A.check,S,2,0),g=0,c=0,A.mode=2;break}if(A.flags=0,A.head&&(A.head.done=!1),!(1&A.wrap)||(((255&g)<<8)+(g>>8))%31){e.msg="incorrect header check",A.mode=30;break}if((15&g)!==Dn){e.msg="unknown compression method",A.mode=30;break}if(c-=4,y=8+(15&(g>>>=4)),0===A.wbits)A.wbits=y;else if(y>A.wbits){e.msg="invalid window size",A.mode=30;break}A.dmax=1<<A.wbits,e.adler=A.check=1,A.mode=512&g?10:12,g=0,c=0;break;case 2:for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(A.flags=g,(255&A.flags)!==Dn){e.msg="unknown compression method",A.mode=30;break}if(57344&A.flags){e.msg="unknown header flags set",A.mode=30;break}A.head&&(A.head.text=g>>8&1),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,A.check=eA(A.check,S,2,0)),g=0,c=0,A.mode=3;case 3:for(;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.head&&(A.head.time=g),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,S[2]=g>>>16&255,S[3]=g>>>24&255,A.check=eA(A.check,S,4,0)),g=0,c=0,A.mode=4;case 4:for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.head&&(A.head.xflags=255&g,A.head.os=g>>8),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,A.check=eA(A.check,S,2,0)),g=0,c=0,A.mode=5;case 5:if(1024&A.flags){for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.length=g,A.head&&(A.head.extra_len=g),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,A.check=eA(A.check,S,2,0)),g=0,c=0}else A.head&&(A.head.extra=null);A.mode=6;case 6:if(1024&A.flags&&((I=A.length)>a&&(I=a),I&&(A.head&&(y=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Uint8Array(A.head.extra_len)),A.head.extra.set(n.subarray(i,i+I),y)),512&A.flags&&(A.check=eA(A.check,n,I,i)),a-=I,i+=I,A.length-=I),A.length))break e;A.length=0,A.mode=7;case 7:if(2048&A.flags){if(0===a)break e;I=0;do{y=n[i+I++],A.head&&y&&A.length<65536&&(A.head.name+=String.fromCharCode(y))}while(y&&I<a);if(512&A.flags&&(A.check=eA(A.check,n,I,i)),a-=I,i+=I,y)break e}else A.head&&(A.head.name=null);A.length=0,A.mode=8;case 8:if(4096&A.flags){if(0===a)break e;I=0;do{y=n[i+I++],A.head&&y&&A.length<65536&&(A.head.comment+=String.fromCharCode(y))}while(y&&I<a);if(512&A.flags&&(A.check=eA(A.check,n,I,i)),a-=I,i+=I,y)break e}else A.head&&(A.head.comment=null);A.mode=9;case 9:if(512&A.flags){for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(g!==(65535&A.check)){e.msg="header crc mismatch",A.mode=30;break}g=0,c=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),e.adler=A.check=0,A.mode=12;break;case 10:for(;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}e.adler=A.check=Gn(g),g=0,c=0,A.mode=11;case 11:if(0===A.havedict)return e.next_out=o,e.avail_out=s,e.next_in=i,e.avail_in=a,A.hold=g,A.bits=c,bn;e.adler=A.check=1,A.mode=12;case 12:if(t===Qn||t===yn)break e;case 13:if(A.last){g>>>=7&c,c-=7&c,A.mode=27;break}for(;c<3;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}switch(A.last=1&g,c-=1,3&(g>>>=1)){case 0:A.mode=14;break;case 1:if(Tn(A),A.mode=20,t===yn){g>>>=2,c-=2;break e}break;case 2:A.mode=17;break;case 3:e.msg="invalid block type",A.mode=30}g>>>=2,c-=2;break;case 14:for(g>>>=7&c,c-=7&c;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if((65535&g)!==(g>>>16^65535)){e.msg="invalid stored block lengths",A.mode=30;break}if(A.length=65535&g,g=0,c=0,A.mode=15,t===yn)break e;case 15:A.mode=16;case 16:if(I=A.length){if(I>a&&(I=a),I>s&&(I=s),0===I)break e;r.set(n.subarray(i,i+I),o),a-=I,i+=I,s-=I,o+=I,A.length-=I;break}A.mode=12;break;case 17:for(;c<14;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(A.nlen=257+(31&g),g>>>=5,c-=5,A.ndist=1+(31&g),g>>>=5,c-=5,A.ncode=4+(15&g),g>>>=4,c-=4,A.nlen>286||A.ndist>30){e.msg="too many length or distance symbols",A.mode=30;break}A.have=0,A.mode=18;case 18:for(;A.have<A.ncode;){for(;c<3;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.lens[F[A.have++]]=7&g,g>>>=3,c-=3}for(;A.have<19;)A.lens[F[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,m={bits:A.lenbits},v=pn(0,A.lens,0,19,A.lencode,0,A.work,m),A.lenbits=m.bits,v){e.msg="invalid code lengths set",A.mode=30;break}A.have=0,A.mode=19;case 19:for(;A.have<A.nlen+A.ndist;){for(;d=(w=A.lencode[g&(1<<A.lenbits)-1])>>>16&255,B=65535&w,!((f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(B<16)g>>>=f,c-=f,A.lens[A.have++]=B;else{if(16===B){for(b=f+2;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(g>>>=f,c-=f,0===A.have){e.msg="invalid bit length repeat",A.mode=30;break}y=A.lens[A.have-1],I=3+(3&g),g>>>=2,c-=2}else if(17===B){for(b=f+3;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}c-=f,y=0,I=3+(7&(g>>>=f)),g>>>=3,c-=3}else{for(b=f+7;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}c-=f,y=0,I=11+(127&(g>>>=f)),g>>>=7,c-=7}if(A.have+I>A.nlen+A.ndist){e.msg="invalid bit length repeat",A.mode=30;break}for(;I--;)A.lens[A.have++]=y}}if(30===A.mode)break;if(0===A.lens[256]){e.msg="invalid code -- missing end-of-block",A.mode=30;break}if(A.lenbits=9,m={bits:A.lenbits},v=pn(1,A.lens,0,A.nlen,A.lencode,0,A.work,m),A.lenbits=m.bits,v){e.msg="invalid literal/lengths set",A.mode=30;break}if(A.distbits=6,A.distcode=A.distdyn,m={bits:A.distbits},v=pn(2,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,m),A.distbits=m.bits,v){e.msg="invalid distances set",A.mode=30;break}if(A.mode=20,t===yn)break e;case 20:A.mode=21;case 21:if(a>=6&&s>=258){e.next_out=o,e.avail_out=s,e.next_in=i,e.avail_in=a,A.hold=g,A.bits=c,Cn(e,l),o=e.next_out,r=e.output,s=e.avail_out,i=e.next_in,n=e.input,a=e.avail_in,g=A.hold,c=A.bits,12===A.mode&&(A.back=-1);break}for(A.back=0;d=(w=A.lencode[g&(1<<A.lenbits)-1])>>>16&255,B=65535&w,!((f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(d&&0===(240&d)){for(p=f,E=d,Q=B;d=(w=A.lencode[Q+((g&(1<<p+E)-1)>>p)])>>>16&255,B=65535&w,!(p+(f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}g>>>=p,c-=p,A.back+=p}if(g>>>=f,c-=f,A.back+=f,A.length=B,0===d){A.mode=26;break}if(32&d){A.back=-1,A.mode=12;break}if(64&d){e.msg="invalid literal/length code",A.mode=30;break}A.extra=15&d,A.mode=22;case 22:if(A.extra){for(b=A.extra;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.length+=g&(1<<A.extra)-1,g>>>=A.extra,c-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=23;case 23:for(;d=(w=A.distcode[g&(1<<A.distbits)-1])>>>16&255,B=65535&w,!((f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(0===(240&d)){for(p=f,E=d,Q=B;d=(w=A.distcode[Q+((g&(1<<p+E)-1)>>p)])>>>16&255,B=65535&w,!(p+(f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}g>>>=p,c-=p,A.back+=p}if(g>>>=f,c-=f,A.back+=f,64&d){e.msg="invalid distance code",A.mode=30;break}A.offset=B,A.extra=15&d,A.mode=24;case 24:if(A.extra){for(b=A.extra;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.offset+=g&(1<<A.extra)-1,g>>>=A.extra,c-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){e.msg="invalid distance too far back",A.mode=30;break}A.mode=25;case 25:if(0===s)break e;if(I=l-s,A.offset>I){if((I=A.offset-I)>A.whave&&A.sane){e.msg="invalid distance too far back",A.mode=30;break}I>A.wnext?(I-=A.wnext,C=A.wsize-I):C=A.wnext-I,I>A.length&&(I=A.length),h=A.window}else h=r,C=o-A.offset,I=A.length;I>s&&(I=s),s-=I,A.length-=I;do{r[o++]=h[C++]}while(--I);0===A.length&&(A.mode=21);break;case 26:if(0===s)break e;r[o++]=A.length,s--,A.mode=21;break;case 27:if(A.wrap){for(;c<32;){if(0===a)break e;a--,g|=n[i++]<<c,c+=8}if(l-=s,e.total_out+=l,A.total+=l,l&&(e.adler=A.check=A.flags?eA(A.check,r,l,o-l):zt(A.check,r,l,o-l)),l=s,(A.flags?g:Gn(g))!==A.check){e.msg="incorrect data check",A.mode=30;break}g=0,c=0}A.mode=28;case 28:if(A.wrap&&A.flags){for(;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(g!==(4294967295&A.total)){e.msg="incorrect length check",A.mode=30;break}g=0,c=0}A.mode=29;case 29:v=mn;break e;case 30:v=Sn;break e;case 31:return Fn;case 32:default:return wn}return e.next_out=o,e.avail_out=s,e.next_in=i,e.avail_in=a,A.hold=g,A.bits=c,(A.wsize||l!==e.avail_out&&A.mode<30&&(A.mode<27||t!==En))&&Zn(e,e.output,e.next_out,l-e.avail_out),u-=e.avail_in,l-=e.avail_out,e.total_in+=u,e.total_out+=l,A.total+=l,A.wrap&&l&&(e.adler=A.check=A.flags?eA(A.check,r,l,e.next_out-l):zt(A.check,r,l,e.next_out-l)),e.data_type=A.bits+(A.last?64:0)+(12===A.mode?128:0)+(20===A.mode||15===A.mode?256:0),(0===u&&0===l||t===En)&&v===vn&&(v=Rn),v},inflateEnd:function(e){if(!e||!e.state)return wn;var t=e.state;return t.window&&(t.window=null),e.state=null,vn},inflateGetHeader:function(e,t){if(!e||!e.state)return wn;var A=e.state;return 0===(2&A.wrap)?wn:(A.head=t,t.done=!1,vn)},inflateSetDictionary:function(e,t){var A,n=t.length;return e&&e.state?0!==(A=e.state).wrap&&11!==A.mode?wn:11===A.mode&&zt(1,t,n,0)!==A.check?Sn:Zn(e,t,n,n)?(A.mode=31,Fn):(A.havedict=1,vn):wn},inflateInfo:"pako inflate (from Nodeca project)"};var Yn=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1},Jn=Object.prototype.toString,jn=AA.Z_NO_FLUSH,Pn=AA.Z_FINISH,Vn=AA.Z_OK,Kn=AA.Z_STREAM_END,Wn=AA.Z_NEED_DICT,Xn=AA.Z_STREAM_ERROR,qn=AA.Z_DATA_ERROR,zn=AA.Z_MEM_ERROR;function $n(e){this.options=VA({chunkSize:65536,windowBits:15,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0===(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new tn,this.strm.avail_out=0;var A=Hn.inflateInit2(this.strm,t.windowBits);if(A!==Vn)throw new Error(tA[A]);if(this.header=new Yn,Hn.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"===typeof t.dictionary?t.dictionary=zA(t.dictionary):"[object ArrayBuffer]"===Jn.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(A=Hn.inflateSetDictionary(this.strm,t.dictionary))!==Vn))throw new Error(tA[A])}function er(e,t){var A=new $n(t);if(A.push(e),A.err)throw A.msg||tA[A.err];return A.result}$n.prototype.push=function(e,t){var A,n,r,i=this.strm,o=this.options.chunkSize,a=this.options.dictionary;if(this.ended)return!1;for(n=t===~~t?t:!0===t?Pn:jn,"[object ArrayBuffer]"===Jn.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(o),i.next_out=0,i.avail_out=o),(A=Hn.inflate(i,n))===Wn&&a&&((A=Hn.inflateSetDictionary(i,a))===Vn?A=Hn.inflate(i,n):A===qn&&(A=Wn));i.avail_in>0&&A===Kn&&i.state.wrap>0&&0!==e[i.next_in];)Hn.inflateReset(i),A=Hn.inflate(i,n);switch(A){case Xn:case qn:case Wn:case zn:return this.onEnd(A),this.ended=!0,!1}if(r=i.avail_out,i.next_out&&(0===i.avail_out||A===Kn))if("string"===this.options.to){var s=en(i.output,i.next_out),g=i.next_out-s,c=$A(i.output,s);i.next_out=g,i.avail_out=o-g,g&&i.output.set(i.output.subarray(s,s+g),0),this.onData(c)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(A!==Vn||0!==r){if(A===Kn)return A=Hn.inflateEnd(this.strm),this.onEnd(A),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},$n.prototype.onData=function(e){this.chunks.push(e)},$n.prototype.onEnd=function(e){e===Vn&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=KA(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var tr={Inflate:$n,inflate:er,inflateRaw:function(e,t){return(t=t||{}).raw=!0,er(e,t)},ungzip:er,constants:AA},Ar=tr.inflate,nr=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"decodeBlock",value:function(e){return Ar(new Uint8Array(e)).buffer}}]),A}(Xe),rr=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"decodeBlock",value:function(e){for(var t=new DataView(e),A=[],n=0;n<e.byteLength;++n){var r=t.getInt8(n);if(r<0){var i=t.getUint8(n+1);r=-r;for(var o=0;o<=r;++o)A.push(i);n+=1}else{for(var a=0;a<=r;++a)A.push(t.getUint8(n+a+1));n+=r+1}}return new Uint8Array(A).buffer}}]),A}(Xe),ir=A(669),or=A.n(ir),ar=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(e){var n;return Object(u.a)(this,A),(n=t.call(this)).planarConfiguration="undefined"!==typeof e.PlanarConfiguration?e.PlanarConfiguration:1,n.samplesPerPixel="undefined"!==typeof e.SamplesPerPixel?e.SamplesPerPixel:1,n.addCompression=e.LercParameters[Ne],n}return Object(l.a)(A,[{key:"interleavePixels",value:function(e){for(var t=new e.constructor(e.length),A=e.length/this.samplesPerPixel,n=0;n<A;n++)for(var r=0;r<this.samplesPerPixel;r++)t[n*this.samplesPerPixel+r]=e[n+r*A];return t}},{key:"decodeBlock",value:function(e){switch(this.addCompression){case Ue:break;case _e:e=Ar(new Uint8Array(e)).buffer;break;default:throw new Error("Unsupported LERC additional compression method identifier: ".concat(this.addCompression))}var t=or.a.decode(e).pixels[0];return(1===this.planarConfiguration?this.interleavePixels(t):t).buffer}}]),A}(Xe);function sr(e){switch(e.Compression){case void 0:case 1:return new qe;case 5:return new lt(e);case 6:throw new Error("old style JPEG compression is not supported.");case 7:return new Bt(e);case 8:case 32946:return new nr;case 32773:return new rr;case 34887:return new ar(e);default:throw new Error("Unknown compression method identifier: ".concat(e.Compression))}}function gr(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return new(Object.getPrototypeOf(e).constructor)(t*A*n)}function cr(e,t,A,n,r){var i=t/n,o=A/r;return e.map((function(e){for(var a=gr(e,n,r),s=0;s<r;++s)for(var g=Math.min(Math.round(o*s),A-1),c=0;c<n;++c){var u=Math.min(Math.round(i*c),t-1),l=e[g*t+u];a[s*n+c]=l}return a}))}function ur(e,t,A){return(1-A)*e+A*t}function lr(e,t,A,n,r){var i=t/n,o=A/r;return e.map((function(e){for(var a=gr(e,n,r),s=0;s<r;++s)for(var g=o*s,c=Math.floor(g),u=Math.min(Math.ceil(g),A-1),l=0;l<n;++l){var I=i*l,C=I%1,h=Math.floor(I),f=Math.min(Math.ceil(I),t-1),d=e[c*t+h],B=e[c*t+f],p=e[u*t+h],E=e[u*t+f],Q=ur(ur(d,B,C),ur(p,E,C),g%1);a[s*n+l]=Q}return a}))}function Ir(e,t,A,n,r){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"nearest";switch(i.toLowerCase()){case"nearest":return cr(e,t,A,n,r);case"bilinear":case"linear":return lr(e,t,A,n,r);default:throw new Error("Unsupported resampling method: '".concat(i,"'"))}}function Cr(e,t,A,n,r,i){for(var o=t/n,a=A/r,s=gr(e,n,r,i),g=0;g<r;++g)for(var c=Math.min(Math.round(a*g),A-1),u=0;u<n;++u)for(var l=Math.min(Math.round(o*u),t-1),I=0;I<i;++I){var C=e[c*t*i+l*i+I];s[g*n*i+u*i+I]=C}return s}function hr(e,t,A,n,r,i){for(var o=t/n,a=A/r,s=gr(e,n,r,i),g=0;g<r;++g)for(var c=a*g,u=Math.floor(c),l=Math.min(Math.ceil(c),A-1),I=0;I<n;++I)for(var C=o*I,h=C%1,f=Math.floor(C),d=Math.min(Math.ceil(C),t-1),B=0;B<i;++B){var p=e[u*t*i+f*i+B],E=e[u*t*i+d*i+B],Q=e[l*t*i+f*i+B],y=e[l*t*i+d*i+B],v=ur(ur(p,E,h),ur(Q,y,h),c%1);s[g*n*i+I*i+B]=v}return s}function fr(e,t,A,n,r,i){var o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"nearest";switch(o.toLowerCase()){case"nearest":return Cr(e,t,A,n,r,i);case"bilinear":case"linear":return hr(e,t,A,n,r,i);default:throw new Error("Unsupported resampling method: '".concat(o,"'"))}}function dr(e,t,A){for(var n=0,r=t;r<A;++r)n+=e[r];return n}function Br(e,t,A){switch(e){case 1:if(t<=8)return new Uint8Array(A);if(t<=16)return new Uint16Array(A);if(t<=32)return new Uint32Array(A);break;case 2:if(8===t)return new Int8Array(A);if(16===t)return new Int16Array(A);if(32===t)return new Int32Array(A);break;case 3:switch(t){case 16:case 32:return new Float32Array(A);case 64:return new Float64Array(A)}}throw Error("Unsupported data format/bitsPerSample")}function pr(e,t){return(1!==e&&2!==e||!(t<=32)||t%8!==0)&&(3!==e||16!==t&&32!==t&&64!==t)}function Er(e,t,A,n,r,i,o){var a=new DataView(e),s=2===A?1:n,g=Br(t,r,2===A?o*i:o*i*n),c=parseInt("1".repeat(r),2);if(1===t){var u=i*(1===A?n*r:r);0!==(7&u)&&(u=u+7&-8);for(var l=0;l<o;++l)for(var I=l*u,C=0;C<i;++C)for(var h=I+C*s*r,f=0;f<s;++f){var d=h+f*r,B=(l*i+C)*s+f,p=Math.floor(d/8),E=d%8;if(E+r<=8)g[B]=a.getUint8(p)>>8-r-E&c;else if(E+r<=16)g[B]=a.getUint16(p)>>16-r-E&c;else if(E+r<=24){var Q=a.getUint16(p)<<8|a.getUint8(p+2);g[B]=Q>>24-r-E&c}else g[B]=a.getUint32(p)>>32-r-E&c}}return g.buffer}var Qr=function(){function e(t,A,n,r,i,o){Object(u.a)(this,e),this.fileDirectory=t,this.geoKeys=A,this.dataView=n,this.littleEndian=r,this.tiles=i?{}:null,this.isTiled=!t.StripOffsets;var a=t.PlanarConfiguration;if(this.planarConfiguration="undefined"===typeof a?1:a,1!==this.planarConfiguration&&2!==this.planarConfiguration)throw new Error("Invalid planar configuration.");this.source=o}return Object(l.a)(e,[{key:"getFileDirectory",value:function(){return this.fileDirectory}},{key:"getGeoKeys",value:function(){return this.geoKeys}},{key:"getWidth",value:function(){return this.fileDirectory.ImageWidth}},{key:"getHeight",value:function(){return this.fileDirectory.ImageLength}},{key:"getSamplesPerPixel",value:function(){return"undefined"!==typeof this.fileDirectory.SamplesPerPixel?this.fileDirectory.SamplesPerPixel:1}},{key:"getTileWidth",value:function(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}},{key:"getTileHeight",value:function(){return this.isTiled?this.fileDirectory.TileLength:"undefined"!==typeof this.fileDirectory.RowsPerStrip?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}},{key:"getBlockWidth",value:function(){return this.getTileWidth()}},{key:"getBlockHeight",value:function(e){return this.isTiled||(e+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-e*this.getTileHeight()}},{key:"getBytesPerPixel",value:function(){for(var e=0,t=0;t<this.fileDirectory.BitsPerSample.length;++t)e+=this.getSampleByteSize(t);return e}},{key:"getSampleByteSize",value:function(e){if(e>=this.fileDirectory.BitsPerSample.length)throw new RangeError("Sample index ".concat(e," is out of range."));return Math.ceil(this.fileDirectory.BitsPerSample[e]/8)}},{key:"getReaderForSample",value:function(e){var t=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1,A=this.fileDirectory.BitsPerSample[e];switch(t){case 1:if(A<=8)return DataView.prototype.getUint8;if(A<=16)return DataView.prototype.getUint16;if(A<=32)return DataView.prototype.getUint32;break;case 2:if(A<=8)return DataView.prototype.getInt8;if(A<=16)return DataView.prototype.getInt16;if(A<=32)return DataView.prototype.getInt32;break;case 3:switch(A){case 16:return function(e,t){return de(this,e,t)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}},{key:"getSampleFormat",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1}},{key:"getBitsPerSample",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.fileDirectory.BitsPerSample[e]}},{key:"getArrayForSample",value:function(e,t){return Br(this.getSampleFormat(e),this.getBitsPerSample(e),t)}},{key:"getTileOrStrip",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A,n,r,i){var s,g,c,u,l,I,C,h,f=this;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=Math.ceil(this.getWidth()/this.getTileWidth()),g=Math.ceil(this.getHeight()/this.getTileHeight()),u=this.tiles,1===this.planarConfiguration?c=A*s+t:2===this.planarConfiguration&&(c=n*s*g+A*s+t),this.isTiled?(l=this.fileDirectory.TileOffsets[c],I=this.fileDirectory.TileByteCounts[c]):(l=this.fileDirectory.StripOffsets[c],I=this.fileDirectory.StripByteCounts[c]),e.next=7,this.source.fetch([{offset:l,length:I}],i);case 7:return C=e.sent[0],null!==u&&u[c]?h=u[c]:(h=Object(a.a)(o.a.mark((function e(){var t,n,i;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.decode(f.fileDirectory,C);case 2:return t=e.sent,n=f.getSampleFormat(),i=f.getBitsPerSample(),pr(n,i)&&(t=Er(t,n,f.planarConfiguration,f.getSamplesPerPixel(),i,f.getTileWidth(),f.getBlockHeight(A))),e.abrupt("return",t);case 7:case"end":return e.stop()}}),e)})))(),null!==u&&(u[c]=h)),e.t0=t,e.t1=A,e.t2=n,e.next=14,h;case 14:return e.t3=e.sent,e.abrupt("return",{x:e.t0,y:e.t1,sample:e.t2,data:e.t3});case 16:case"end":return e.stop()}}),e,this)})));return function(t,A,n,r,i){return e.apply(this,arguments)}}()},{key:"_readRaster",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A,n,r,i,a,s,g,c){var u,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w,S,F,R=this;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(u=this.getTileWidth(),l=this.getTileHeight(),I=Math.max(Math.floor(t[0]/u),0),C=Math.min(Math.ceil(t[2]/u),Math.ceil(this.getWidth()/this.getTileWidth())),h=Math.max(Math.floor(t[1]/l),0),f=Math.min(Math.ceil(t[3]/l),Math.ceil(this.getHeight()/this.getTileHeight())),d=t[2]-t[0],B=this.getBytesPerPixel(),p=[],E=[],Q=0;Q<A.length;++Q)1===this.planarConfiguration?p.push(dr(this.fileDirectory.BitsPerSample,0,A[Q])/8):p.push(0),E.push(this.getReaderForSample(A[Q]));for(y=[],v=this.littleEndian,m=h;m<f;++m)for(b=I;b<C;++b)for(w=function(e){var o=e,a=A[e];2===R.planarConfiguration&&(B=R.getSampleByteSize(e));var s=R.getTileOrStrip(b,m,a,i,c).then((function(e){for(var i=e.data,a=new DataView(i),s=R.getBlockHeight(e.y),g=e.y*l,c=e.x*u,I=g+s,C=(e.x+1)*u,h=E[o],f=Math.min(s,s-(I-t[3])),Q=Math.min(u,u-(C-t[2])),y=Math.max(0,t[1]-g);y<f;++y)for(var m=Math.max(0,t[0]-c);m<Q;++m){var b=(y*u+m)*B,w=h.call(a,b+p[o],v),S=void 0;r?(S=(y+g-t[1])*d*A.length+(m+c-t[0])*A.length+o,n[S]=w):(S=(y+g-t[1])*d+m+c-t[0],n[o][S]=w)}}));y.push(s)},S=0;S<A.length;++S)w(S);return e.next=16,Promise.all(y);case 16:if(!(a&&t[2]-t[0]!==a||s&&t[3]-t[1]!==s)){e.next=21;break}return(F=r?fr(n,t[2]-t[0],t[3]-t[1],a,s,A.length,g):Ir(n,t[2]-t[0],t[3]-t[1],a,s,g)).width=a,F.height=s,e.abrupt("return",F);case 21:return n.width=a||t[2]-t[0],n.height=s||t[3]-t[1],e.abrupt("return",n);case 24:case"end":return e.stop()}}),e,this)})));return function(t,A,n,r,i,o,a,s,g){return e.apply(this,arguments)}}()},{key:"readRasters",value:function(){var e=Object(a.a)(o.a.mark((function e(){var t,A,n,r,i,a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w,S,F=arguments;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=F.length>0&&void 0!==F[0]?F[0]:{},A=t.window,n=t.samples,r=void 0===n?[]:n,i=t.interleave,a=t.pool,s=void 0===a?null:a,g=t.width,c=t.height,u=t.resampleMethod,l=t.fillValue,I=t.signal,!((C=A||[0,0,this.getWidth(),this.getHeight()])[0]>C[2]||C[1]>C[3])){e.next=4;break}throw new Error("Invalid subsets");case 4:if(h=C[2]-C[0],f=C[3]-C[1],d=h*f,B=this.getSamplesPerPixel(),r&&r.length){e.next=12;break}for(p=0;p<B;++p)r.push(p);e.next=19;break;case 12:E=0;case 13:if(!(E<r.length)){e.next=19;break}if(!(r[E]>=B)){e.next=16;break}return e.abrupt("return",Promise.reject(new RangeError("Invalid sample index '".concat(r[E],"'."))));case 16:++E,e.next=13;break;case 19:if(i)y=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,v=Math.max.apply(null,this.fileDirectory.BitsPerSample),Q=Br(y,v,d*r.length),l&&Q.fill(l);else for(Q=[],m=0;m<r.length;++m)b=this.getArrayForSample(r[m],d),Array.isArray(l)&&m<l.length?b.fill(l[m]):l&&!Array.isArray(l)&&b.fill(l),Q.push(b);return w=s||sr(this.fileDirectory),e.next=23,this._readRaster(C,r,Q,i,w,g,c,u,I);case 23:return S=e.sent,e.abrupt("return",S);case 25:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"readRGB",value:function(){var e=Object(a.a)(o.a.mark((function e(){var t,A,n,r,i,a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y=arguments;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=y.length>0&&void 0!==y[0]?y[0]:{},A=t.window,n=t.pool,r=void 0===n?null:n,i=t.width,a=t.height,s=t.resampleMethod,g=t.enableAlpha,c=void 0!==g&&g,u=t.signal,!((l=A||[0,0,this.getWidth(),this.getHeight()])[0]>l[2]||l[1]>l[3])){e.next=4;break}throw new Error("Invalid subsets");case 4:if((I=this.fileDirectory.PhotometricInterpretation)!==Fe){e.next=9;break}if(C=[0,1,2],this.fileDirectory.ExtraSamples!==xe&&c)for(C=[],h=0;h<this.fileDirectory.BitsPerSample.length;h+=1)C.push(h);return e.abrupt("return",this.readRasters({window:A,interleave:!0,samples:C,pool:r,width:i,height:a,resampleMethod:s,signal:u}));case 9:e.t0=I,e.next=e.t0===we||e.t0===Se||e.t0===Re?12:e.t0===De?14:e.t0===Ge||e.t0===ke?16:18;break;case 12:return f=[0],e.abrupt("break",19);case 14:return f=[0,1,2,3],e.abrupt("break",19);case 16:return f=[0,1,2],e.abrupt("break",19);case 18:throw new Error("Invalid or unsupported photometric interpretation.");case 19:return d={window:l,interleave:!0,samples:f,pool:r,width:i,height:a,resampleMethod:s,signal:u},B=this.fileDirectory,e.next=23,this.readRasters(d);case 23:p=e.sent,E=Math.pow(2,this.fileDirectory.BitsPerSample[0]),e.t1=I,e.next=e.t1===we?28:e.t1===Se?30:e.t1===Re?32:e.t1===De?34:e.t1===Ge?36:e.t1===ke?38:40;break;case 28:return Q=Te(p,E),e.abrupt("break",41);case 30:return Q=Ze(p,E),e.abrupt("break",41);case 32:return Q=He(p,B.ColorMap),e.abrupt("break",41);case 34:return Q=Ye(p),e.abrupt("break",41);case 36:return Q=Je(p),e.abrupt("break",41);case 38:return Q=je(p),e.abrupt("break",41);case 40:throw new Error("Unsupported photometric interpretation.");case 41:return Q.width=p.width,Q.height=p.height,e.abrupt("return",Q);case 44:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"getTiePoints",value:function(){if(!this.fileDirectory.ModelTiepoint)return[];for(var e=[],t=0;t<this.fileDirectory.ModelTiepoint.length;t+=6)e.push({i:this.fileDirectory.ModelTiepoint[t],j:this.fileDirectory.ModelTiepoint[t+1],k:this.fileDirectory.ModelTiepoint[t+2],x:this.fileDirectory.ModelTiepoint[t+3],y:this.fileDirectory.ModelTiepoint[t+4],z:this.fileDirectory.ModelTiepoint[t+5]});return e}},{key:"getGDALMetadata",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t={};if(!this.fileDirectory.GDAL_METADATA)return null;var A=this.fileDirectory.GDAL_METADATA,n=Be(A.substring(0,A.length-1));if(!n[0].tagName)throw new Error("Failed to parse GDAL metadata XML.");var r=n[0];if("GDALMetadata"!==r.tagName)throw new Error("Unexpected GDAL metadata XML tag.");var i=r.children.filter((function(e){return"Item"===e.tagName}));null!==e&&(i=i.filter((function(t){return Number(t.attributes.sample)===e})));for(var o=0;o<i.length;++o){var a=i[o];t[a.attributes.name]=a.children[0]}return t}},{key:"getGDALNoData",value:function(){if(!this.fileDirectory.GDAL_NODATA)return null;var e=this.fileDirectory.GDAL_NODATA;return Number(e.substring(0,e.length-1))}},{key:"getOrigin",value:function(){var e=this.fileDirectory.ModelTiepoint,t=this.fileDirectory.ModelTransformation;if(e&&6===e.length)return[e[3],e[4],e[5]];if(t)return[t[3],t[7],t[11]];throw new Error("The image does not have an affine transformation.")}},{key:"getResolution",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.fileDirectory.ModelPixelScale,A=this.fileDirectory.ModelTransformation;if(t)return[t[0],-t[1],t[2]];if(A)return[A[0],A[5],A[10]];if(e){var n=e.getResolution(),r=Object(s.a)(n,3),i=r[0],o=r[1],a=r[2];return[i*e.getWidth()/this.getWidth(),o*e.getHeight()/this.getHeight(),a*e.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}},{key:"pixelIsArea",value:function(){return 1===this.geoKeys.GTRasterTypeGeoKey}},{key:"getBoundingBox",value:function(){var e=this.getOrigin(),t=this.getResolution(),A=e[0],n=e[1],r=A+t[0]*this.getWidth(),i=n+t[1]*this.getHeight();return[Math.min(A,r),Math.min(n,i),Math.max(A,r),Math.max(n,i)]}}]),e}(),yr=function(){function e(t){Object(u.a)(this,e),this._dataView=new DataView(t)}return Object(l.a)(e,[{key:"getUint64",value:function(e,t){var A,n=this.getUint32(e,t),r=this.getUint32(e+4,t);if(t){if(A=n+Math.pow(2,32)*r,!Number.isSafeInteger(A))throw new Error("".concat(A," exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues"));return A}if(A=Math.pow(2,32)*n+r,!Number.isSafeInteger(A))throw new Error("".concat(A," exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues"));return A}},{key:"getInt64",value:function(e,t){for(var A=0,n=(128&this._dataView.getUint8(e+(t?7:0)))>0,r=!0,i=0;i<8;i++){var o=this._dataView.getUint8(e+(t?i:7-i));n&&(r?0!==o&&(o=255&~(o-1),r=!1):o=255&~o),A+=o*Math.pow(256,i)}return n&&(A=-A),A}},{key:"getUint8",value:function(e,t){return this._dataView.getUint8(e,t)}},{key:"getInt8",value:function(e,t){return this._dataView.getInt8(e,t)}},{key:"getUint16",value:function(e,t){return this._dataView.getUint16(e,t)}},{key:"getInt16",value:function(e,t){return this._dataView.getInt16(e,t)}},{key:"getUint32",value:function(e,t){return this._dataView.getUint32(e,t)}},{key:"getInt32",value:function(e,t){return this._dataView.getInt32(e,t)}},{key:"getFloat16",value:function(e,t){return de(this._dataView,t)}},{key:"getFloat32",value:function(e,t){return this._dataView.getFloat32(e,t)}},{key:"getFloat64",value:function(e,t){return this._dataView.getFloat64(e,t)}},{key:"buffer",get:function(){return this._dataView.buffer}}]),e}(),vr=function(){function e(t,A,n,r){Object(u.a)(this,e),this._dataView=new DataView(t),this._sliceOffset=A,this._littleEndian=n,this._bigTiff=r}return Object(l.a)(e,[{key:"covers",value:function(e,t){return this.sliceOffset<=e&&this.sliceTop>=e+t}},{key:"readUint8",value:function(e){return this._dataView.getUint8(e-this._sliceOffset,this._littleEndian)}},{key:"readInt8",value:function(e){return this._dataView.getInt8(e-this._sliceOffset,this._littleEndian)}},{key:"readUint16",value:function(e){return this._dataView.getUint16(e-this._sliceOffset,this._littleEndian)}},{key:"readInt16",value:function(e){return this._dataView.getInt16(e-this._sliceOffset,this._littleEndian)}},{key:"readUint32",value:function(e){return this._dataView.getUint32(e-this._sliceOffset,this._littleEndian)}},{key:"readInt32",value:function(e){return this._dataView.getInt32(e-this._sliceOffset,this._littleEndian)}},{key:"readFloat32",value:function(e){return this._dataView.getFloat32(e-this._sliceOffset,this._littleEndian)}},{key:"readFloat64",value:function(e){return this._dataView.getFloat64(e-this._sliceOffset,this._littleEndian)}},{key:"readUint64",value:function(e){var t,A=this.readUint32(e),n=this.readUint32(e+4);if(this._littleEndian){if(t=A+Math.pow(2,32)*n,!Number.isSafeInteger(t))throw new Error("".concat(t," exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues"));return t}if(t=Math.pow(2,32)*A+n,!Number.isSafeInteger(t))throw new Error("".concat(t," exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues"));return t}},{key:"readInt64",value:function(e){for(var t=0,A=(128&this._dataView.getUint8(e+(this._littleEndian?7:0)))>0,n=!0,r=0;r<8;r++){var i=this._dataView.getUint8(e+(this._littleEndian?r:7-r));A&&(n?0!==i&&(i=255&~(i-1),n=!1):i=255&~i),t+=i*Math.pow(256,r)}return A&&(t=-t),t}},{key:"readOffset",value:function(e){return this._bigTiff?this.readUint64(e):this.readUint32(e)}},{key:"sliceOffset",get:function(){return this._sliceOffset}},{key:"sliceTop",get:function(){return this._sliceOffset+this.buffer.byteLength}},{key:"littleEndian",get:function(){return this._littleEndian}},{key:"bigTiff",get:function(){return this._bigTiff}},{key:"buffer",get:function(){return this._dataView.buffer}}]),e}(),mr=A(73);function br(e){if("undefined"!==typeof Object.fromEntries)return Object.fromEntries(e);var t,A={},r=Object(n.a)(e);try{for(r.s();!(t=r.n()).done;){var i=Object(s.a)(t.value,2),o=i[0],a=i[1];A[o.toLowerCase()]=a}}catch(g){r.e(g)}finally{r.f()}return A}function wr(e){return br(e.split("\r\n").map((function(e){var t=e.split(":").map((function(e){return e.trim()}));return t[0]=t[0].toLowerCase(),t})))}function Sr(e){var t=e.split(";").map((function(e){return e.trim()})),A=Object(mr.a)(t);return{type:A[0],params:br(A.slice(1).map((function(e){return e.split("=")})))}}function Fr(e){var t,A,n;if(e){var r=e.match(/bytes (\d+)-(\d+)\/(\d+)/),i=Object(s.a)(r,4);t=i[1],A=i[2],n=i[3],t=parseInt(t,10),A=parseInt(A,10),n=parseInt(n,10)}return{start:t,end:A,total:n}}function Rr(e,t){for(var A=null,n=new TextDecoder("ascii"),r=[],i="--".concat(t),o="".concat(i,"--"),a=0;a<10;++a){n.decode(new Uint8Array(e,a,i.length))===i&&(A=a)}if(null===A)throw new Error("Could not find initial boundary");for(;A<e.byteLength;){var s=n.decode(new Uint8Array(e,A,Math.min(i.length+1024,e.byteLength-A)));if(0===s.length||s.startsWith(o))break;if(!s.startsWith(i))throw new Error("Part does not start with boundary");var g=s.substr(i.length+2);if(0===g.length)break;var c=g.indexOf("\r\n\r\n"),u=wr(g.substr(0,c)),l=Fr(u["content-range"]),I=l.start,C=l.end,h=l.total,f=A+i.length+c+"\r\n\r\n".length,d=parseInt(C,10)+1-parseInt(I,10);r.push({headers:u,data:e.slice(f,f+d),offset:I,length:d,fileSize:h}),A=f+d+4}return r}var Dr=A(164),Gr=A(670),kr=A.n(Gr),xr=A(57),Nr=function(){function e(t,A){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Object(u.a)(this,e),this.offset=t,this.length=A,this.data=n}return Object(l.a)(e,[{key:"top",get:function(){return this.offset+this.length}}]),e}(),Ur=function e(t,A,n){Object(u.a)(this,e),this.offset=t,this.length=A,this.blockIds=n},_r=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.blockSize,o=void 0===i?65536:i,a=r.cacheSize,s=void 0===a?100:a;return Object(u.a)(this,A),(n=t.call(this)).source=e,n.blockSize=o,n.blockCache=new kr.a({max:s}),n.blockRequests=new Map,n.blockIdsToFetch=new Set,n.abortedBlockIds=new Set,n}return Object(l.a)(A,[{key:"fetch",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A){var r,i,a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w,S,F,R,D,G=this;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=[],i=[],a=[],s=Object(n.a)(t);try{for(s.s();!(g=s.n()).done;)for(c=g.value,u=c.offset,l=c.length,I=u+l,null!==(C=this.fileSize)&&(I=Math.min(I,C)),h=Math.floor(u/this.blockSize)*this.blockSize,f=h;f<I;f+=this.blockSize)d=Math.floor(f/this.blockSize),this.blockCache.has(d)||this.blockRequests.has(d)||(this.blockIdsToFetch.add(d),i.push(d)),this.blockRequests.has(d)&&r.push(this.blockRequests.get(d)),a.push(d)}catch(o){s.e(o)}finally{s.f()}return e.next=7,Object(xr.h)();case 7:for(this.fetchBlocks(A),B=[],p=0,E=i;p<E.length;p++)Q=E[p],this.blockRequests.has(Q)&&B.push(this.blockRequests.get(Q));return e.next=12,Promise.allSettled(r.values());case 12:return e.next=14,Promise.allSettled(B.values());case 14:if(y=[],(v=a.filter((function(e){return G.abortedBlockIds.has(e)||!G.blockCache.has(e)}))).forEach((function(e){return G.blockIdsToFetch.add(e)})),!(v.length>0&&A)||A.aborted){e.next=40;break}this.fetchBlocks(null),m=Object(n.a)(v),e.prev=20,m.s();case 22:if((b=m.n()).done){e.next=30;break}if(w=b.value,S=this.blockRequests.get(w)){e.next=27;break}throw new Error("Block ".concat(w," is not in the block requests"));case 27:y.push(S);case 28:e.next=22;break;case 30:e.next=35;break;case 32:e.prev=32,e.t0=e.catch(20),m.e(e.t0);case 35:return e.prev=35,m.f(),e.finish(35);case 38:return e.next=40,Promise.allSettled(Array.from(y.values()));case 40:if(!A||!A.aborted){e.next=42;break}throw new xr.a("Request was aborted");case 42:if(F=a.map((function(e){return G.blockCache.get(e)})),!(R=F.filter((function(e){return!e}))).length){e.next=46;break}throw new xr.b(R,"Request failed");case 46:return D=new Map(Object(xr.i)(a,F)),e.abrupt("return",this.readSliceData(t,D));case 48:case"end":return e.stop()}}),e,this,[[20,32,35,38]])})));return function(t,A){return e.apply(this,arguments)}}()},{key:"fetchBlocks",value:function(e){var t=this;this.blockIdsToFetch.size>0&&function(){for(var A=t.groupBlocks(t.blockIdsToFetch),r=t.source.fetch(A,e),i=function(i){var s,g=A[i],c=Object(n.a)(g.blockIds);try{var u=function(){var A=s.value;t.blockRequests.set(A,Object(a.a)(o.a.mark((function n(){var a,s,g,c,u,l;return o.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,r;case 3:n.t0=i,a=n.sent[n.t0],s=A*t.blockSize,g=s-a.offset,c=Math.min(g+t.blockSize,a.data.byteLength),u=a.data.slice(g,c),l=new Nr(s,u.byteLength,u,A),t.blockCache.set(A,l),t.abortedBlockIds.delete(A),n.next=23;break;case 14:if(n.prev=14,n.t1=n.catch(0),"AbortError"!==n.t1.name){n.next=22;break}n.t1.signal=e,t.blockCache.del(A),t.abortedBlockIds.add(A),n.next=23;break;case 22:throw n.t1;case 23:return n.prev=23,t.blockRequests.delete(A),n.finish(23);case 26:case"end":return n.stop()}}),n,null,[[0,14,23,26]])})))())};for(c.s();!(s=c.n()).done;)u()}catch(l){c.e(l)}finally{c.f()}},s=0;s<A.length;++s)i(s);t.blockIdsToFetch.clear()}()}},{key:"groupBlocks",value:function(e){var t=Array.from(e).sort((function(e,t){return e-t}));if(0===t.length)return[];var A,r=[],i=null,o=[],a=Object(n.a)(t);try{for(a.s();!(A=a.n()).done;){var s=A.value;null===i||i+1===s?(r.push(s),i=s):(o.push(new Ur(r[0]*this.blockSize,r.length*this.blockSize,r)),r=[s],i=s)}}catch(g){a.e(g)}finally{a.f()}return o.push(new Ur(r[0]*this.blockSize,r.length*this.blockSize,r)),o}},{key:"readSliceData",value:function(e,t){var A=this;return e.map((function(e){for(var n=e.offset+e.length,r=Math.floor(e.offset/A.blockSize),i=Math.floor((e.offset+e.length)/A.blockSize),o=new ArrayBuffer(e.length),a=new Uint8Array(o),s=r;s<=i;++s){var g=t.get(s),c=g.offset-e.offset,u=0,l=0,I=void 0;c<0?u=-c:c>0&&(l=c),I=g.top-n<0?g.length-u:n-g.offset-u;var C=new Uint8Array(g.data,u,I);a.set(C,l)}return o}))}},{key:"fileSize",get:function(){return this.source.fileSize}}]),A}(Dr.a),Mr=A(181),Or=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(e){var n;return Object(u.a)(this,A),(n=t.call(this)).response=e,n}return Object(l.a)(A,[{key:"getHeader",value:function(e){return this.response.headers.get(e)}},{key:"getData",value:function(){var e=Object(a.a)(o.a.mark((function e(){var t;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.response.arrayBuffer){e.next=6;break}return e.next=3,this.response.arrayBuffer();case 3:e.t0=e.sent,e.next=9;break;case 6:return e.next=8,this.response.buffer();case 8:e.t0=e.sent.buffer;case 9:return t=e.t0,e.abrupt("return",t);case 11:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"status",get:function(){return this.response.status}}]),A}(Mr.b),Lr=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(e,n){var r;return Object(u.a)(this,A),(r=t.call(this,e)).credentials=n,r}return Object(l.a)(A,[{key:"request",value:function(){var e=Object(a.a)(o.a.mark((function e(){var t,A,n,r,i,a=arguments;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=a.length>0&&void 0!==a[0]?a[0]:{},A=t.headers,n=t.credentials,r=t.signal,e.next=3,fetch(this.url,{headers:A,credentials:n,signal:r});case 3:return i=e.sent,e.abrupt("return",new Or(i));case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()}]),A}(Mr.a),Tr=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(e,n){var r;return Object(u.a)(this,A),(r=t.call(this)).xhr=e,r.data=n,r}return Object(l.a)(A,[{key:"getHeader",value:function(e){return this.xhr.getResponseHeader(e)}},{key:"getData",value:function(){var e=Object(a.a)(o.a.mark((function e(){return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.data);case 1:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"status",get:function(){return this.xhr.status}}]),A}(Mr.b),Zr=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"constructRequest",value:function(e,t){var A=this;return new Promise((function(n,r){var i=new XMLHttpRequest;i.open("GET",A.url),i.responseType="arraybuffer";for(var o=0,a=Object.entries(e);o<a.length;o++){var g=Object(s.a)(a[o],2),c=g[0],u=g[1];i.setRequestHeader(c,u)}i.onload=function(){var e=i.response;n(new Tr(i,e))},i.onerror=r,i.onabort=function(){return r(new xr.a("Request aborted"))},i.send(),t&&(t.aborted&&i.abort(),t.addEventListener("abort",(function(){return i.abort()})))}))}},{key:"request",value:function(){var e=Object(a.a)(o.a.mark((function e(){var t,A,n,r,i=arguments;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=i.length>0&&void 0!==i[0]?i[0]:{},A=t.headers,n=t.signal,e.next=3,this.constructRequest(A,n);case 3:return r=e.sent,e.abrupt("return",r);case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()}]),A}(Mr.a),Hr=A(671),Yr=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(e,n,r,i){var o;return Object(u.a)(this,A),(o=t.call(this)).client=e,o.headers=n,o.maxRanges=r,o.allowFullFile=i,o._fileSize=null,o}return Object(l.a)(A,[{key:"fetch",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A){var n=this;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(this.maxRanges>=t.length)){e.next=4;break}return e.abrupt("return",this.fetchSlices(t,A));case 4:this.maxRanges>0&&t.length;case 5:return e.next=7,Promise.all(t.map((function(e){return n.fetchSlice(e,A)})));case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"fetchSlices",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A){var n,r,i,a,s,g,c,u,l,I,C,h,f,B=this;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.client.request({headers:Object(d.a)({},this.headers,{Range:"bytes=".concat(t.map((function(e){var t=e.offset,A=e.length;return"".concat(t,"-").concat(t+A)})).join(","))}),signal:A});case 2:if((n=e.sent).ok){e.next=7;break}throw new Error("Error fetching data.");case 7:if(206!==n.status){e.next=32;break}if(r=Sr(n.getHeader("content-type")),i=r.type,a=r.params,"multipart/byteranges"!==i){e.next=18;break}return e.t0=Rr,e.next=13,n.getData();case 13:return e.t1=e.sent,e.t2=a.boundary,s=(0,e.t0)(e.t1,e.t2),this._fileSize=s[0].fileSize||null,e.abrupt("return",s);case 18:return e.next=20,n.getData();case 20:if(g=e.sent,c=Fr(n.getHeader("content-range")),u=c.start,l=c.end,I=c.total,this._fileSize=I||null,C=[{data:g,offset:u,length:l-u}],!(t.length>1)){e.next=29;break}return e.next=27,Promise.all(t.slice(1).map((function(e){return B.fetchSlice(e,A)})));case 27:return h=e.sent,e.abrupt("return",C.concat(h));case 29:return e.abrupt("return",C);case 32:if(this.allowFullFile){e.next=34;break}throw new Error("Server responded with full file");case 34:return e.next=36,n.getData();case 36:return f=e.sent,this._fileSize=f.byteLength,e.abrupt("return",[{data:f,offset:0,length:f.byteLength}]);case 39:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"fetchSlice",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A){var n,r,i,a,s,g,c;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.offset,r=t.length,e.next=3,this.client.request({headers:Object(d.a)({},this.headers,{Range:"bytes=".concat(n,"-").concat(n+r)}),signal:A});case 3:if((i=e.sent).ok){e.next=8;break}throw new Error("Error fetching data.");case 8:if(206!==i.status){e.next=17;break}return e.next=11,i.getData();case 11:return a=e.sent,s=Fr(i.getHeader("content-range")),g=s.total,this._fileSize=g||null,e.abrupt("return",{data:a,offset:n,length:r});case 17:if(this.allowFullFile){e.next=19;break}throw new Error("Server responded with full file");case 19:return e.next=21,i.getData();case 21:return c=e.sent,this._fileSize=c.byteLength,e.abrupt("return",{data:c,offset:0,length:c.byteLength});case 24:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"fileSize",get:function(){return this._fileSize}}]),A}(Dr.a);function Jr(e,t){var A=t.blockSize,n=t.cacheSize;return null===A?e:new _r(e,{blockSize:A,cacheSize:n})}function jr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.headers,n=void 0===A?{}:A,r=t.credentials,i=t.maxRanges,o=void 0===i?0:i,a=t.allowFullFile,s=void 0!==a&&a,g=Object(c.a)(t,["headers","credentials","maxRanges","allowFullFile"]),u=new Lr(e,r),l=new Yr(u,n,o,s);return Jr(l,g)}function Pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.headers,n=void 0===A?{}:A,r=t.maxRanges,i=void 0===r?0:r,o=t.allowFullFile,a=void 0!==o&&o,s=Object(c.a)(t,["headers","maxRanges","allowFullFile"]),g=new Zr(e),u=new Yr(g,n,i,a);return Jr(u,s)}function Vr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.headers,n=void 0===A?{}:A,r=t.maxRanges,i=void 0===r?0:r,o=t.allowFullFile,a=void 0!==o&&o,s=Object(c.a)(t,["headers","maxRanges","allowFullFile"]),g=new Hr.a(e),u=new Yr(g,n,i,a);return Jr(u,s)}function Kr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.forceXHR,n=void 0!==A&&A,r=Object(c.a)(t,["forceXHR"]);return"function"!==typeof fetch||n?"undefined"!==typeof XMLHttpRequest?Pr(e,r):Vr(e,r):jr(e,r)}Dr.a;var Wr=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(e){var n;return Object(u.a)(this,A),(n=t.call(this)).file=e,n}return Object(l.a)(A,[{key:"fetchSlice",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A){var n=this;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,r){var i=n.file.slice(t.offset,t.offset+t.length),o=new FileReader;o.onload=function(t){return e(t.target.result)},o.onerror=r,o.onabort=r,o.readAsArrayBuffer(i),A&&A.addEventListener("abort",(function(){return o.abort()}))})));case 1:case"end":return e.stop()}}),e)})));return function(t,A){return e.apply(this,arguments)}}()}]),A}(Dr.a);function Xr(e){return new Wr(e)}A(675);var qr=Object(xr.f)(pe),zr=Object(xr.f)(Me),$r={};Object(xr.c)($r,qr),Object(xr.c)($r,zr);Object(xr.f)(ve);var ei={nextZero:function(e,t){for(var A=t;0!==e[A];)A++;return A},readUshort:function(e,t){return e[t]<<8|e[t+1]},readShort:function(e,t){var A=ei.ui8;return A[0]=e[t+1],A[1]=e[t+0],ei.i16[0]},readInt:function(e,t){var A=ei.ui8;return A[0]=e[t+3],A[1]=e[t+2],A[2]=e[t+1],A[3]=e[t+0],ei.i32[0]},readUint:function(e,t){var A=ei.ui8;return A[0]=e[t+3],A[1]=e[t+2],A[2]=e[t+1],A[3]=e[t+0],ei.ui32[0]},readASCII:function(e,t,A){return A.map((function(A){return String.fromCharCode(e[t+A])})).join("")},readFloat:function(e,t){var A=ei.ui8;return Object(xr.g)(4,(function(n){A[n]=e[t+3-n]})),ei.fl32[0]},readDouble:function(e,t){var A=ei.ui8;return Object(xr.g)(8,(function(n){A[n]=e[t+7-n]})),ei.fl64[0]},writeUshort:function(e,t,A){e[t]=A>>8&255,e[t+1]=255&A},writeUint:function(e,t,A){e[t]=A>>24&255,e[t+1]=A>>16&255,e[t+2]=A>>8&255,e[t+3]=A>>0&255},writeASCII:function(e,t,A){Object(xr.g)(A.length,(function(n){e[t+n]=A.charCodeAt(n)}))},ui8:new Uint8Array(8)};ei.fl64=new Float64Array(ei.ui8.buffer),ei.writeDouble=function(e,t,A){ei.fl64[0]=A,Object(xr.g)(8,(function(A){e[t+A]=ei.ui8[7-A]}))};function ti(e){switch(e){case me.BYTE:case me.ASCII:case me.SBYTE:case me.UNDEFINED:return 1;case me.SHORT:case me.SSHORT:return 2;case me.LONG:case me.SLONG:case me.FLOAT:case me.IFD:return 4;case me.RATIONAL:case me.SRATIONAL:case me.DOUBLE:case me.LONG8:case me.SLONG8:case me.IFD8:return 8;default:throw new RangeError("Invalid field type: ".concat(e))}}function Ai(e){var t=e.GeoKeyDirectory;if(!t)return null;for(var A={},n=4;n<=4*t[3];n+=4){var r=Me[t[n]],i=t[n+1]?pe[t[n+1]]:null,o=t[n+2],a=t[n+3],s=null;if(i){if("undefined"===typeof(s=e[i])||null===s)throw new Error("Could not get value of geoKey '".concat(r,"'."));"string"===typeof s?s=s.substring(a,a+o-1):s.subarray&&(s=s.subarray(a,a+o),1===o&&(s=s[0]))}else s=a;A[r]=s}return A}function ni(e,t,A,n){var r=null,i=null,o=ti(t);switch(t){case me.BYTE:case me.ASCII:case me.UNDEFINED:r=new Uint8Array(A),i=e.readUint8;break;case me.SBYTE:r=new Int8Array(A),i=e.readInt8;break;case me.SHORT:r=new Uint16Array(A),i=e.readUint16;break;case me.SSHORT:r=new Int16Array(A),i=e.readInt16;break;case me.LONG:case me.IFD:r=new Uint32Array(A),i=e.readUint32;break;case me.SLONG:r=new Int32Array(A),i=e.readInt32;break;case me.LONG8:case me.IFD8:r=new Array(A),i=e.readUint64;break;case me.SLONG8:r=new Array(A),i=e.readInt64;break;case me.RATIONAL:r=new Uint32Array(2*A),i=e.readUint32;break;case me.SRATIONAL:r=new Int32Array(2*A),i=e.readInt32;break;case me.FLOAT:r=new Float32Array(A),i=e.readFloat32;break;case me.DOUBLE:r=new Float64Array(A),i=e.readFloat64;break;default:throw new RangeError("Invalid field type: ".concat(t))}if(t!==me.RATIONAL&&t!==me.SRATIONAL)for(var a=0;a<A;++a)r[a]=i.call(e,n+a*o);else for(var s=0;s<A;s+=2)r[s]=i.call(e,n+s*o),r[s+1]=i.call(e,n+(s*o+4));return t===me.ASCII?new TextDecoder("utf-8").decode(r):r}var ri=function e(t,A,n){Object(u.a)(this,e),this.fileDirectory=t,this.geoKeyDirectory=A,this.nextIFDByteOffset=n},ii=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(e){var n;return Object(u.a)(this,A),(n=t.call(this,"No image at index ".concat(e))).index=e,n}return A}(Object(q.a)(Error)),oi=function(){function e(){Object(u.a)(this,e)}return Object(l.a)(e,[{key:"readRasters",value:function(){var e=Object(a.a)(o.a.mark((function e(){var t,A,n,r,i,a,g,c,u,l,I,C,h,f,B,p,E,Q,y,v,m,b,w,S,F,R,D,G,k,x,N,U,_,M,O,L,T,Z,H,Y=arguments;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=Y.length>0&&void 0!==Y[0]?Y[0]:{},A=t.window,n=t.width,r=t.height,i=t.resX,a=t.resY,g=t.bbox,e.next=5,this.getImage();case 5:return c=e.sent,u=c,e.next=9,this.getImageCount();case 9:if(l=e.sent,I=c.getBoundingBox(),!A||!g){e.next=13;break}throw new Error('Both "bbox" and "window" passed.');case 13:if(!n&&!r){e.next=24;break}if(A&&(C=c.getOrigin(),h=Object(s.a)(C,2),f=h[0],B=h[1],p=c.getResolution(),E=Object(s.a)(p,2),Q=E[0],y=E[1],g=[f+A[0]*Q,B+A[1]*y,f+A[2]*Q,B+A[3]*y]),v=g||I,!n){e.next=20;break}if(!i){e.next=19;break}throw new Error("Both width and resX passed");case 19:i=(v[2]-v[0])/n;case 20:if(!r){e.next=24;break}if(!a){e.next=23;break}throw new Error("Both width and resY passed");case 23:a=(v[3]-v[1])/r;case 24:if(!i&&!a){e.next=48;break}m=[],b=0;case 27:if(!(b<l)){e.next=36;break}return e.next=30,this.getImage(b);case 30:w=e.sent,S=w.fileDirectory,F=S.SubfileType,R=S.NewSubfileType,(0===b||2===F||1&R)&&m.push(w);case 33:++b,e.next=27;break;case 36:m.sort((function(e,t){return e.getWidth()-t.getWidth()})),D=0;case 38:if(!(D<m.length)){e.next=48;break}if(G=m[D],k=(I[2]-I[0])/G.getWidth(),x=(I[3]-I[1])/G.getHeight(),u=G,!(i&&i>k||a&&a>x)){e.next=45;break}return e.abrupt("break",48);case 45:++D,e.next=38;break;case 48:return N=A,g&&(U=c.getOrigin(),_=Object(s.a)(U,2),M=_[0],O=_[1],L=u.getResolution(c),T=Object(s.a)(L,2),Z=T[0],H=T[1],N=[Math.round((g[0]-M)/Z),Math.round((g[1]-O)/H),Math.round((g[2]-M)/Z),Math.round((g[3]-O)/H)],N=[Math.min(N[0],N[2]),Math.min(N[1],N[3]),Math.max(N[0],N[2]),Math.max(N[1],N[3])]),e.abrupt("return",u.readRasters(Object(d.a)({},t,{window:N})));case 51:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()}]),e}(),ai=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(e,n,r,i){var o,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return Object(u.a)(this,A),(o=t.call(this)).source=e,o.littleEndian=n,o.bigTiff=r,o.firstIFDOffset=i,o.cache=a.cache||!1,o.ifdRequests=[],o.ghostValues=null,o}return Object(l.a)(A,[{key:"getSlice",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A){var n;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.bigTiff?4048:1024,e.t0=vr,e.next=4,this.source.fetch([{offset:t,length:"undefined"!==typeof A?A:n}]);case 4:return e.t1=e.sent[0],e.t2=t,e.t3=this.littleEndian,e.t4=this.bigTiff,e.abrupt("return",new e.t0(e.t1,e.t2,e.t3,e.t4));case 9:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"parseFileDirectoryAt",value:function(){var e=Object(a.a)(o.a.mark((function e(t){var A,n,r,i,a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=this.bigTiff?20:12,n=this.bigTiff?8:2,e.next=4,this.getSlice(t);case 4:if(r=e.sent,i=this.bigTiff?r.readUint64(t):r.readUint16(t),a=i*A+(this.bigTiff?16:6),r.covers(t,a)){e.next=11;break}return e.next=10,this.getSlice(t,a);case 10:r=e.sent;case 11:s={},g=t+(this.bigTiff?8:2),c=0;case 14:if(!(c<i)){e.next=41;break}if(u=r.readUint16(g),l=r.readUint16(g+2),I=this.bigTiff?r.readUint64(g+4):r.readUint32(g+4),C=void 0,h=void 0,f=ti(l),d=g+(this.bigTiff?12:8),!(f*I<=(this.bigTiff?8:4))){e.next=26;break}C=ni(r,l,I,d),e.next=36;break;case 26:if(B=r.readOffset(d),p=ti(l)*I,!r.covers(B,p)){e.next=32;break}C=ni(r,l,I,B),e.next=36;break;case 32:return e.next=34,this.getSlice(B,p);case 34:E=e.sent,C=ni(E,l,I,B);case 36:h=1===I&&-1===ye.indexOf(u)&&l!==me.RATIONAL&&l!==me.SRATIONAL?C[0]:C,s[pe[u]]=h;case 38:g+=A,++c,e.next=14;break;case 41:return Q=Ai(s),y=r.readOffset(t+n+A*i),e.abrupt("return",new ri(s,Q,y));case 44:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"requestIFD",value:function(){var e=Object(a.a)(o.a.mark((function e(t){var A=this;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.ifdRequests[t]){e.next=4;break}return e.abrupt("return",this.ifdRequests[t]);case 4:if(0!==t){e.next=9;break}return this.ifdRequests[t]=this.parseFileDirectoryAt(this.firstIFDOffset),e.abrupt("return",this.ifdRequests[t]);case 9:if(this.ifdRequests[t-1]){e.next=19;break}e.prev=10,this.ifdRequests[t-1]=this.requestIFD(t-1),e.next=19;break;case 14:if(e.prev=14,e.t0=e.catch(10),!(e.t0 instanceof ii)){e.next=18;break}throw new ii(t);case 18:throw e.t0;case 19:return this.ifdRequests[t]=Object(a.a)(o.a.mark((function e(){var n;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,A.ifdRequests[t-1];case 2:if(0!==(n=e.sent).nextIFDByteOffset){e.next=5;break}throw new ii(t);case 5:return e.abrupt("return",A.parseFileDirectoryAt(n.nextIFDByteOffset));case 6:case"end":return e.stop()}}),e)})))(),e.abrupt("return",this.ifdRequests[t]);case 21:case"end":return e.stop()}}),e,this,[[10,14]])})));return function(t){return e.apply(this,arguments)}}()},{key:"getImage",value:function(){var e=Object(a.a)(o.a.mark((function e(){var t,A,n=arguments;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:0,e.next=3,this.requestIFD(t);case 3:return A=e.sent,e.abrupt("return",new Qr(A.fileDirectory,A.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source));case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"getImageCount",value:function(){var e=Object(a.a)(o.a.mark((function e(){var t,A;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=0,A=!0;case 2:if(!A){e.next=18;break}return e.prev=3,e.next=6,this.requestIFD(t);case 6:++t,e.next=16;break;case 9:if(e.prev=9,e.t0=e.catch(3),!(e.t0 instanceof ii)){e.next=15;break}A=!1,e.next=16;break;case 15:throw e.t0;case 16:e.next=2;break;case 18:return e.abrupt("return",t);case 19:case"end":return e.stop()}}),e,this,[[3,9]])})));return function(){return e.apply(this,arguments)}}()},{key:"getGhostValues",value:function(){var e=Object(a.a)(o.a.mark((function e(){var t,A,n,r,i,a,g,c,u=this;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.bigTiff?16:8,!this.ghostValues){e.next=3;break}return e.abrupt("return",this.ghostValues);case 3:return n=(A="GDAL_STRUCTURAL_METADATA_SIZE=").length+100,e.next=7,this.getSlice(t,n);case 7:if(r=e.sent,A!==ni(r,me.ASCII,A.length,t)){e.next=19;break}if(i=ni(r,me.ASCII,n,t),a=i.split("\n")[0],!((g=Number(a.split("=")[1].split(" ")[0])+a.length)>n)){e.next=16;break}return e.next=15,this.getSlice(t,g);case 15:r=e.sent;case 16:c=ni(r,me.ASCII,g,t),this.ghostValues={},c.split("\n").filter((function(e){return e.length>0})).map((function(e){return e.split("=")})).forEach((function(e){var t=Object(s.a)(e,2),A=t[0],n=t[1];u.ghostValues[A]=n}));case 19:return e.abrupt("return",this.ghostValues);case 20:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"close",value:function(){return"function"===typeof this.source.close&&this.source.close()}}],[{key:"fromSource",value:function(){var e=Object(a.a)(o.a.mark((function e(t,n,r){var i,a,s,g,c,u,l;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fetch([{offset:0,length:1024}],r);case 2:if(i=e.sent[0],a=new yr(i),18761!==(s=a.getUint16(0,0))){e.next=9;break}g=!0,e.next=14;break;case 9:if(19789!==s){e.next=13;break}g=!1,e.next=14;break;case 13:throw new TypeError("Invalid byte order value.");case 14:if(42!==(c=a.getUint16(2,g))){e.next=19;break}u=!1,e.next=27;break;case 19:if(43!==c){e.next=26;break}if(u=!0,8===a.getUint16(4,g)){e.next=24;break}throw new Error("Unsupported offset byte-size.");case 24:e.next=27;break;case 26:throw new TypeError("Invalid magic number.");case 27:return l=u?a.getUint64(8,g):a.getUint32(4,g),e.abrupt("return",new A(t,g,u,l,n));case 29:case"end":return e.stop()}}),e)})));return function(t,A,n){return e.apply(this,arguments)}}()}]),A}(oi);function si(e){return gi.apply(this,arguments)}function gi(){return(gi=Object(a.a)(o.a.mark((function e(t){var A,n,r=arguments;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=r.length>1&&void 0!==r[1]?r[1]:{},n=r.length>2?r[2]:void 0,e.abrupt("return",ai.fromSource(Kr(t,A),n));case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ci(e,t){return ui.apply(this,arguments)}function ui(){return(ui=Object(a.a)(o.a.mark((function e(t,A){return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",ai.fromSource(Xr(t),A));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var li,Ii,Ci,hi,fi=A(661),di=A.n(fi),Bi=A(71);A.d(t,"a",(function(){return oo})),A.d(t,"b",(function(){return no})),A.d(t,"c",(function(){return mi})),A.d(t,"d",(function(){return so})),A.d(t,"e",(function(){return vi})),A.d(t,"f",(function(){return co})),A.d(t,"g",(function(){return pi})),A.d(t,"h",(function(){return fo})),A.d(t,"i",(function(){return Fo})),A.d(t,"j",(function(){return Ni})),A.d(t,"k",(function(){return Aa})),A.d(t,"l",(function(){return Li})),A.d(t,"m",(function(){return ho})),A.d(t,"n",(function(){return Xo})),A.d(t,"o",(function(){return ia}));var pi,Ei,Qi={name:"channel-intensity-module",defines:{SAMPLER_TYPE:"usampler2D",COLORMAP_FUNCTION:""},fs:"#define GLSLIFY 1\nfloat apply_contrast_limits(float intensity,vec2 contrastLimits){return max(0.,(intensity-contrastLimits[0])/max(0.0005,(contrastLimits[1]-contrastLimits[0])));}"},yi=[0,0,0],vi=6,mi={Uint8:{format:F.default.R8UI,dataFormat:F.default.RED_INTEGER,type:F.default.UNSIGNED_BYTE,max:Math.pow(2,8)-1,sampler:"usampler2D"},Uint16:{format:F.default.R16UI,dataFormat:F.default.RED_INTEGER,type:F.default.UNSIGNED_SHORT,max:Math.pow(2,16)-1,sampler:"usampler2D"},Uint32:{format:F.default.R32UI,dataFormat:F.default.RED_INTEGER,type:F.default.UNSIGNED_INT,max:Math.pow(2,32)-1,sampler:"usampler2D"},Float32:{format:F.default.R32F,dataFormat:F.default.RED,type:F.default.FLOAT,max:3.4*Math.pow(10,38),sampler:"sampler2D"},Int8:{format:F.default.R8I,dataFormat:F.default.RED_INTEGER,type:F.default.BYTE,max:Math.pow(2,7)-1,sampler:"isampler2D"},Int16:{format:F.default.R16I,dataFormat:F.default.RED_INTEGER,type:F.default.SHORT,max:Math.pow(2,15)-1,sampler:"isampler2D"},Int32:{format:F.default.R32I,dataFormat:F.default.RED_INTEGER,type:F.default.INT,max:Math.pow(2,31)-1,sampler:"isampler2D"},Float64:{format:F.default.R32F,dataFormat:F.default.RED,type:F.default.FLOAT,max:3.4*Math.pow(10,38),sampler:"sampler2D",cast:function(e){return new Float32Array(e)}}},bi=["jet","hsv","hot","cool","spring","summer","autumn","winter","bone","copper","greys","yignbu","greens","yiorrd","bluered","rdbu","picnic","rainbow","portland","blackbody","earth","electric","alpha","viridis","inferno","magma","plasma","warm","rainbow-soft","bathymetry","cdom","chlorophyll","density","freesurface-blue","freesurface-red","oxygen","par","phase","salinity","temperature","turbidity","velocity-blue","velocity-green","cubehelix"];function wi(e,t,A){for(var n=0;n<A;n+=1)e.push(t);return e}function Si(e){var t=mi[e];if(!t){var A=Object.keys(mi);throw Error("Dtype not supported, got ".concat(e,". Must be one of ").concat(A,"."))}return t}function Fi(e){var t=e.contrastLimits,A=void 0===t?[]:t,n=e.channelsVisible,r=e.domain,i=e.dtype,o=r&&r[1]||Si(i).max,a=A.map((function(e,t){return n[t]?e:[o,o]})),s=vi-a.length;if(s<0)throw Error("".concat(a.lengths," channels passed in, but only 6 are allowed."));return wi(a,[o,o],s).reduce((function(e,t){return e.concat(t)}),[])}function Ri(e){var t,A,n=null!==(t=null===e||void 0===e||null===(A=e.meta)||void 0===A?void 0:A.physicalSizes)&&void 0!==t?t:{},r=n.x,i=n.y,o=n.z;if((null===r||void 0===r?void 0:r.size)&&(null===i||void 0===i?void 0:i.size)&&(null===o||void 0===o?void 0:o.size)){var a=Math.min(o.size,r.size,i.size),s=[r.size/a,i.size/a,o.size/a];return(new S.Matrix4).scale(s)}return(new S.Matrix4).identity()}(Ei=pi||(pi={})).MAX_INTENSITY_PROJECTION="Maximum Intensity Projection",Ei.MIN_INTENSITY_PROJECTION="Minimum Intensity Projection",Ei.ADDITIVE="Additive";var Di={fs:"#define SHADER_NAME xr-layer-fragment-shader\nprecision highp float;precision highp int;precision highp SAMPLER_TYPE;\n#define GLSLIFY 1\nuniform SAMPLER_TYPE channel0;uniform SAMPLER_TYPE channel1;uniform SAMPLER_TYPE channel2;uniform SAMPLER_TYPE channel3;uniform SAMPLER_TYPE channel4;uniform SAMPLER_TYPE channel5;in vec2 vTexCoord;uniform vec2 contrastLimits[6];void main(){float intensity0=float(texture(channel0,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity0,contrastLimits[0],0);float intensity1=float(texture(channel1,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity1,contrastLimits[1],1);float intensity2=float(texture(channel2,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity2,contrastLimits[2],2);float intensity3=float(texture(channel3,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity3,contrastLimits[3],3);float intensity4=float(texture(channel4,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity4,contrastLimits[4],4);float intensity5=float(texture(channel5,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity5,contrastLimits[5],5);DECKGL_MUTATE_COLOR(gl_FragColor,intensity0,intensity1,intensity2,intensity3,intensity4,intensity5,vTexCoord);geometry.uv=vTexCoord;DECKGL_FILTER_COLOR(gl_FragColor,geometry);}",vs:"#define GLSLIFY 1\n#define SHADER_NAME xr-layer-vertex-shader\nattribute vec2 texCoords;attribute vec3 positions;attribute vec3 positions64Low;attribute vec3 instancePickingColors;varying vec2 vTexCoord;void main(void){geometry.worldPosition=positions;geometry.uv=texCoords;geometry.pickingColor=instancePickingColors;gl_Position=project_position_to_clipspace(positions,positions64Low,vec3(0.),geometry.position);DECKGL_FILTER_GL_POSITION(gl_Position,geometry);vTexCoord=texCoords;vec4 color=vec4(0.);DECKGL_FILTER_COLOR(color,geometry);}"};function Gi(e,t){var A=Object(_.b)(e,M.a.TEXTURE_FLOAT),n=Object(_.b)(e,M.a.TEXTURE_FILTER_LINEAR_FLOAT);if(!A)throw new Error("WebGL1 context does not support floating point textures. Unable to display raster data.");return n||t!==F.default.LINEAR?t:(console.warn("LINEAR filtering not supported in WebGL1 context. Falling back to NEAREST."),F.default.NEAREST)}function ki(e,t,A){if(!Object(D.j)(t))return{format:F.default.LUMINANCE,dataFormat:F.default.LUMINANCE,type:F.default.FLOAT,sampler:"sampler2D",shaderModule:Di,filter:Gi(t,A),cast:function(e){return new Float32Array(e)}};var n=A===F.default.LINEAR,r=Object(d.a)({},Di);r.fs="#version 300 es\n".concat(r.fs),r.vs="#version 300 es\n".concat(r.vs);var i=Si(n?"Float32":e);return Object(d.a)({},i,{shaderModule:r,filter:A,cast:n?function(e){return new Float32Array(e)}:function(e){return e}})}var xi={pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:p.a.CARTESIAN,channelData:{type:"object",value:{},compare:!0},bounds:{type:"array",value:[0,0,1,1],compare:!0},contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},dtype:{type:"string",value:"Uint16",compare:!0},interpolation:{type:"number",value:F.default.NEAREST,compare:!0}},Ni=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"getShaders",value:function(){var e=this.props,t=e.dtype,n=e.interpolation,r=ki(t,this.context.gl,n),i=r.shaderModule,o=r.sampler,a=this._isHookDefinedByExtensions("fs:DECKGL_PROCESS_INTENSITY"),s=Object(d.a)({},Qi,{inject:{}});return a||(s.inject["fs:DECKGL_PROCESS_INTENSITY"]="\n intensity = apply_contrast_limits(intensity, contrastLimits);\n "),Object(C.a)(Object(I.a)(A.prototype),"getShaders",this).call(this,Object(d.a)({},i,{defines:{SAMPLER_TYPE:o},modules:[E.a,Q.a,s]}))}},{key:"_isHookDefinedByExtensions",value:function(e){var t=this.props.extensions;return null===t||void 0===t?void 0:t.some((function(t){var A=t.getShaders(),n=A.inject,r=void 0===n?{}:n,i=A.modules,o=void 0===i?[]:i,a=r[e],s=o.some((function(t){return null===t||void 0===t?void 0:t.inject[e]}));return a||s}))}},{key:"initializeState",value:function(){var e=this.context.gl;e.pixelStorei(F.default.UNPACK_ALIGNMENT,1),e.pixelStorei(F.default.PACK_ALIGNMENT,1),this.getAttributeManager().add({positions:{size:3,type:F.default.DOUBLE,fp64:this.use64bitPositions(),update:this.calculatePositions,noAlloc:!0}}),this.setState({numInstances:1,positions:new Float64Array(12)});var t=U.a.getDefaultProgramManager(e),A="fs:DECKGL_MUTATE_COLOR(inout vec4 rgba, float intensity0, float intensity1, float intensity2, float intensity3, float intensity4, float intensity5, vec2 vTexCoord)",n="fs:DECKGL_PROCESS_INTENSITY(inout float intensity, vec2 contrastLimits, int channelIndex)";t._hookFunctions.includes(A)||t.addShaderHook(A),t._hookFunctions.includes(n)||t.addShaderHook(n)}},{key:"finalizeState",value:function(){Object(C.a)(Object(I.a)(A.prototype),"finalizeState",this).call(this),this.state.textures&&Object.values(this.state.textures).forEach((function(e){return e&&e.delete()}))}},{key:"updateState",value:function(e){var t,n,r=e.props,i=e.oldProps,o=e.changeFlags,a=Object(c.a)(e,["props","oldProps","changeFlags"]);if(Object(C.a)(Object(I.a)(A.prototype),"updateState",this).call(this,Object(d.a)({props:r,oldProps:i,changeFlags:o},a)),o.extensionsChanged||r.interpolation!==i.interpolation){var s=this.context.gl;this.state.model&&this.state.model.delete(),this.setState({model:this._getModel(s)}),this.getAttributeManager().invalidateAll()}(r.channelData!==i.channelData&&(null===(t=r.channelData)||void 0===t?void 0:t.data)!==(null===(n=i.channelData)||void 0===n?void 0:n.data)||r.interpolation!==i.interpolation)&&this.loadChannelTextures(r.channelData);var g=this.getAttributeManager();r.bounds!==i.bounds&&g.invalidate("positions")}},{key:"_getModel",value:function(e){return e?new G.a(e,Object(d.a)({},this.getShaders(),{id:this.props.id,geometry:new k.a({drawMode:F.default.TRIANGLE_FAN,vertexCount:4,attributes:{texCoords:new Float32Array([0,1,0,0,1,0,1,1])}}),isInstanced:!1})):null}},{key:"calculatePositions",value:function(e){var t=this.state.positions,A=this.props.bounds;t[0]=A[0],t[1]=A[1],t[2]=0,t[3]=A[0],t[4]=A[3],t[5]=0,t[6]=A[2],t[7]=A[3],t[8]=0,t[9]=A[2],t[10]=A[1],t[11]=0,e.value=t}},{key:"draw",value:function(e){var t=e.uniforms,A=this.state,n=A.textures,r=A.model;if(n&&r){var i=this.props,o=i.contrastLimits,a=i.domain,s=i.dtype,g=i.channelsVisible,c=Object.values(n).filter((function(e){return e})).length,u=Fi({contrastLimits:o.slice(0,c),channelsVisible:g.slice(0,c),domain:a,dtype:s});r.setUniforms(Object(d.a)({},t,{contrastLimits:u},n)).draw()}}},{key:"loadChannelTextures",value:function(e){var t=this,A={channel0:null,channel1:null,channel2:null,channel3:null,channel4:null,channel5:null};this.state.textures&&Object.values(this.state.textures).forEach((function(e){return e&&e.delete()})),e&&Object.keys(e).length>0&&e.data&&(e.data.forEach((function(n,r){A["channel".concat(r)]=t.dataToTexture(n,e.width,e.height)}),this),this.setState({textures:A}))}},{key:"dataToTexture",value:function(e,t,A){var n,r,i,o=this.props.interpolation,a=ki(this.props.dtype,this.context.gl,o);return new x.a(this.context.gl,{width:t,height:A,data:null!==(n=null===(r=a.cast)||void 0===r?void 0:r.call(a,e))&&void 0!==n?n:e,mipmaps:!1,parameters:(i={},Object(g.a)(i,F.default.TEXTURE_MIN_FILTER,a.filter),Object(g.a)(i,F.default.TEXTURE_MAG_FILTER,a.filter),Object(g.a)(i,F.default.TEXTURE_WRAP_S,F.default.CLAMP_TO_EDGE),Object(g.a)(i,F.default.TEXTURE_WRAP_T,F.default.CLAMP_TO_EDGE),i),format:a.format,dataFormat:a.dataFormat,type:a.type})}}]),A}(y.a);Ni.layerName="XRLayer",Ni.defaultProps=xi;var Ui={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},_i=Object(d.a)({},O.a.defaultProps,{pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:p.a.CARTESIAN}),Mi=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"_getModel",value:function(e){var t=this.props,A=function(e,t){var A=t?"true":"false",n="vec3(".concat((t||[0,0,0]).map((function(e){return String(e/255)})).join(","),")");switch(e){case Ui.RGB:return"color[3] = (".concat(A," && (color.rgb == ").concat(n,")) ? 0.0 : color.a;");case Ui.WhiteIsZero:return" float value = 1.0 - (color.r / 256.0);\n color = vec4(value, value, value, (".concat(A," && vec3(value, value, value) == ").concat(n,") ? 0.0 : color.a);\n ");case Ui.BlackIsZero:return" float value = (color.r / 256.0);\n color = vec4(value, value, value, (".concat(A," && vec3(value, value, value) == ").concat(n,") ? 0.0 : color.a);\n ");case Ui.YCbCr:return" float y = color[0];\n float cb = color[1];\n float cr = color[2];\n color[0] = (y + (1.40200 * (cr - .5)));\n color[1] = (y - (0.34414 * (cb - .5)) - (0.71414 * (cr - .5)));\n color[2] = (y + (1.77200 * (cb - .5)));\n color[3] = (".concat(A," && distance(color.rgb, ").concat(n,") < 0.01) ? 0.0 : color.a;\n ");default:return console.error("Unsupported photometric interpretation or none provided. No transformation will be done to image data"),""}}(t.photometricInterpretation,t.transparentColorInHook);return e?new G.a(e,Object(d.a)({},this.getShaders(),{id:this.props.id,geometry:new k.a({drawMode:F.default.TRIANGLES,vertexCount:6}),isInstanced:!1,inject:{"fs:DECKGL_FILTER_COLOR":A}})):null}}]),A}(O.a),Oi=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"initializeState",value:function(e){var t=this.context.gl;t.pixelStorei(F.default.UNPACK_ALIGNMENT,1),t.pixelStorei(F.default.PACK_ALIGNMENT,1),Object(C.a)(Object(I.a)(A.prototype),"initializeState",this).call(this,e)}},{key:"renderLayers",value:function(){var e=this.props,t=e.photometricInterpretation,A=e.transparentColor,n=function(e){switch(e){case Ui.RGB:return[0,0,0,0];case Ui.WhiteIsZero:return[255,255,255,0];case Ui.BlackIsZero:return[0,0,0,0];case Ui.YCbCr:return[16,128,128,0];default:return console.error("Unsupported photometric interpretation or none provided. No transformation will be done to image data"),[0,0,0,0]}}(t);return new Mi(this.props,{transparentColor:n,transparentColorInHook:A,id:"".concat(this.props.id,"-wrapped")})}}]),A}(v.a);function Li(e){for(var t=e.length,A=1/0,n=-1/0,r=0;t--;)e[t]<A&&(A=e[t]),e[t]>n&&(n=e[t]),r+=e[t];var i=r/e.length;t=e.length;for(var o=0;t--;)o+=Math.pow(e[t]-i,2);var a=Math.pow(o/e.length,.5),s=Math.floor(e.length/2),g=Math.floor(e.length/4),c=3*Math.floor(e.length/4);H(e,s);var u=e[s];H(e,g,0,s);var l=e[g];H(e,c,s,e.length-1);var I=e[c],C=e.filter((function(e){return e>0})),h=Math.floor(.9995*C.length),f=Math.floor(5e-4*C.length);return H(C,h),H(C,f,0,h),{mean:i,sd:a,q1:l,q3:I,median:u,domain:[A,n],contrastLimits:[C[f]||0,C[h]||0]}}function Ti(e){return Array.isArray(e)?e:[e]}function Zi(e){if(!Number.isInteger(e))throw Error("Not an integer.");var t=new ArrayBuffer(4);new DataView(t).setInt32(0,e,!1);var A=new Uint8Array(t);return Array.from(A)}function Hi(e){var t=e[e.length-1];return 3===t||4===t}function Yi(e){return e.toLowerCase().split("").reverse()}function Ji(e){var t=new Map(e.map((function(e,t){return[e,t]})));if(t.size!==e.length)throw Error("Labels must be unique, found duplicated label.");return function(e){var A=t.get(e);if(void 0===A)throw Error("Invalid dimension.");return A}}function ji(e){var t=Hi(e.shape),A=e.shape.slice(t?-3:-2),n=Object(s.a)(A,2);return{height:n[0],width:n[1]}}function Pi(e){return Math.pow(2,Math.floor(Math.log2(e)))}Oi.layerName="BitmapLayer",Oi.PHOTOMETRIC_INTERPRETATIONS=Ui,Oi.defaultProps=Object(d.a)({},_i,{image:{type:"object",value:{},compare:!0},transparentColor:{type:"array",value:[0,0,0],compare:!0},photometricInterpretation:{type:"number",value:2,compare:!0}}),Mi.defaultProps=_i,Mi.layerName="BitmapLayerWrapper";var Vi={pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:p.a.CARTESIAN,contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},renderSubLayers:{type:"function",value:function(e){var t=e.tile,A=t.bbox,n=A.left,r=A.top,i=A.right,o=A.bottom,a=t.x,s=t.y,g=t.z,c=e.data,u=e.id,l=e.loader,I=e.maxZoom;if([n,o,i,r].some((function(e){return e<0}))||!c)return null;var C=l[0],h=ji(C),f=h.height,d=h.width,B=[n,c.height<C.tileSize?f:o,c.width<C.tileSize?d:i,r];if(Hi(C.shape)){var p=C.meta.photometricInterpretation;return new Oi(e,{image:c,photometricInterpretation:void 0===p?2:p,bounds:B,id:"tile-sub-layer-".concat(B,"-").concat(u),tileId:{x:a,y:s,z:g}})}return new Ni(e,{channelData:c,bounds:B,id:"tile-sub-layer-".concat(B,"-").concat(u),tileId:{x:a,y:s,z:g},interpolation:g===I?F.default.NEAREST:F.default.LINEAR})},compare:!1},dtype:{type:"string",value:"Uint16",compare:!0},domain:{type:"array",value:[],compare:!0},viewportId:{type:"string",value:"",compare:!0},interpolation:{type:"number",value:null,compare:!0}},Ki=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"_updateTileset",value:function(){this.props.viewportId||Object(C.a)(Object(I.a)(A.prototype),"_updateTileset",this).call(this),(this.props.viewportId&&this.context.viewport.id===this.props.viewportId||!this.state.tileset._viewport)&&Object(C.a)(Object(I.a)(A.prototype),"_updateTileset",this).call(this)}}]),A}(R.a);Ki.layerName="MultiscaleImageLayerBase",Ki.defaultProps=Vi;var Wi={name:"lens-module",fs:"#define GLSLIFY 1\nuniform float majorLensAxis;uniform float minorLensAxis;uniform vec2 lensCenter;uniform bool lensEnabled;uniform int lensSelection;uniform vec3 lensBorderColor;uniform float lensBorderRadius;uniform vec3 colors[6];bool frag_in_lens_bounds(vec2 vTexCoord){return pow((lensCenter.x-vTexCoord.x)/majorLensAxis,2.)+pow((lensCenter.y-vTexCoord.y)/minorLensAxis,2.)<(1.-lensBorderRadius);}bool frag_on_lens_bounds(vec2 vTexCoord){float ellipseDistance=pow((lensCenter.x-vTexCoord.x)/majorLensAxis,2.)+pow((lensCenter.y-vTexCoord.y)/minorLensAxis,2.);return ellipseDistance<=1.&&ellipseDistance>=(1.-lensBorderRadius);}float get_use_color_float(vec2 vTexCoord,int channelIndex){bool isFragInLensBounds=frag_in_lens_bounds(vTexCoord);bool inLensAndUseLens=lensEnabled&&isFragInLensBounds;return float(int((inLensAndUseLens&&channelIndex==lensSelection)||(!inLensAndUseLens)));}void mutate_color(inout vec3 rgb,float intensity0,float intensity1,float intensity2,float intensity3,float intensity4,float intensity5,vec2 vTexCoord){float useColorValue=0.;useColorValue=get_use_color_float(vTexCoord,0);rgb+=max(0.,min(1.,intensity0))*max(vec3(colors[0]),(1.-useColorValue)*vec3(1.,1.,1.));useColorValue=get_use_color_float(vTexCoord,1);rgb+=max(0.,min(1.,intensity1))*max(vec3(colors[1]),(1.-useColorValue)*vec3(1.,1.,1.));useColorValue=get_use_color_float(vTexCoord,2);rgb+=max(0.,min(1.,intensity2))*max(vec3(colors[2]),(1.-useColorValue)*vec3(1.,1.,1.));useColorValue=get_use_color_float(vTexCoord,3);rgb+=max(0.,min(1.,intensity3))*max(vec3(colors[3]),(1.-useColorValue)*vec3(1.,1.,1.));useColorValue=get_use_color_float(vTexCoord,4);rgb+=max(0.,min(1.,intensity4))*max(vec3(colors[4]),(1.-useColorValue)*vec3(1.,1.,1.));useColorValue=get_use_color_float(vTexCoord,5);rgb+=max(0.,min(1.,intensity5))*max(vec3(colors[5]),(1.-useColorValue)*vec3(1.,1.,1.));}",inject:{"fs:DECKGL_MUTATE_COLOR":"\n vec3 rgb = rgba.rgb;\n mutate_color(rgb, intensity0, intensity1, intensity2, intensity3, intensity4, intensity5, vTexCoord);\n rgba = vec4(rgb, 1.);\n ","fs:#main-end":"\n bool isFragOnLensBounds = frag_on_lens_bounds(vTexCoord);\n gl_FragColor = (lensEnabled && isFragOnLensBounds) ? vec4(lensBorderColor, 1.) : gl_FragColor;\n "}},Xi=[[0,0,255],[0,255,0],[255,0,255],[255,255,0],[255,128,0],[0,255,255],[255,255,255],[255,0,0]];function qi(e){if(e>Xi.length)throw new Error("Too many colors");return Xi.slice(0,e)}function zi(e){var t=e.colors,A=e.channelsVisible,n=t.map((function(e,t){return A[t]?e.map((function(e){return e/255})):yi})),r=vi-n.length;return wi(n,yi,r).reduce((function(e,t){return e.concat(t)}),[])}var $i={lensEnabled:{type:"boolean",value:!1,compare:!0},lensSelection:{type:"number",value:0,compare:!0},lensRadius:{type:"number",value:100,compare:!0},lensBorderColor:{type:"array",value:[255,255,255],compare:!0},lensBorderRadius:{type:"number",value:.02,compare:!0},colors:{type:"array",value:null,compare:!0}},eo=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"getShaders",value:function(){return Object(d.a)({},Object(C.a)(Object(I.a)(A.prototype),"getShaders",this).call(this),{modules:[Wi]})}},{key:"initializeState",value:function(){var e=this,t=this.getCurrentLayer();if(!t.isComposite){var A=function(){var A=t.props.viewportId,n=e.props.lensRadius,r=void 0===n?$i.lensRadius.value:n;if(A){var i=t.context.mousePosition,o=t.context.deck.viewManager.views.filter((function(e){return e.id===A}))[0],a=t.context.deck.viewManager.viewState[A],s=o.makeViewport(Object(d.a)({},a,{viewState:a}));if(i&&s.containsPixel(i)){var g={x:i.x-s.x,y:i.y-s.y},c=[[g.x-r,g.y],[g.x,g.y+r],[g.x+r,g.y],[g.x,g.y-r]].map((function(e,t){return s.unproject(e)[t%2]}));t.setState({unprojectLensBounds:c})}else t.setState({unprojectLensBounds:[0,0,0,0]})}else t.setState({unprojectLensBounds:[0,0,0,0]})};this.context.deck&&this.context.deck.eventManager.on({pointermove:A,pointerleave:A,wheel:A}),this.setState({onMouseMove:A,unprojectLensBounds:[0,0,0,0]})}}},{key:"draw",value:function(){var e,t=this.state.unprojectLensBounds,A=void 0===t?[0,0,0,0]:t,n=this.props,r=n.bounds,i=n.lensEnabled,o=void 0===i?$i.lensEnabled.value:i,a=n.lensSelection,g=void 0===a?$i.lensSelection.value:a,c=n.lensBorderColor,u=void 0===c?$i.lensBorderColor.value:c,l=n.lensBorderRadius,I=void 0===l?$i.lensBorderRadius.value:l,C=n.colors,h=n.channelsVisible,f=Object(s.a)(A,4),d=f[0],B=f[1],p=f[2],E=f[3],Q=Object(s.a)(r,4),y=Q[0],v=Q[1],m=Q[2],b=Q[3],w=(d-y)/(m-y),S=(B-b)/(v-b),F=(p-y)/(m-y),R=(E-b)/(v-b),D={majorLensAxis:(F-w)/2,minorLensAxis:(S-R)/2,lensCenter:[(F+w)/2,(S+R)/2],lensEnabled:o,lensSelection:g,lensBorderColor:u,lensBorderRadius:I,colors:zi({channelsVisible:h||this.selections.map((function(){return!0})),colors:C||qi(this.props.selections.length)})};null===(e=this.state.model)||void 0===e||e.setUniforms(D)}},{key:"finalizeState",value:function(){var e,t,A;this.context.deck&&this.context.deck.eventManager.off({pointermove:null===(e=this.state)||void 0===e?void 0:e.onMouseMove,pointerleave:null===(t=this.state)||void 0===t?void 0:t.onMouseMove,wheel:null===(A=this.state)||void 0===A?void 0:A.onMouseMove})}}]),A}(m.a);eo.extensionName="LensExtension",eo.defaultProps=$i;var to={name:"color-palette-module",fs:"#define GLSLIFY 1\nvec4 apply_transparent_color_1540259130(vec3 color,vec3 transparentColor,bool useTransparentColor,float opacity){return vec4(color,(color==transparentColor&&useTransparentColor)? 0. : opacity);}uniform vec3 transparentColor;uniform bool useTransparentColor;uniform float opacity;uniform vec3 colors[6];void mutate_color(inout vec3 rgb,float intensity0,float intensity1,float intensity2,float intensity3,float intensity4,float intensity5){rgb+=max(0.0,min(1.0,intensity0))*vec3(colors[0]);rgb+=max(0.0,min(1.0,intensity1))*vec3(colors[1]);rgb+=max(0.0,min(1.0,intensity2))*vec3(colors[2]);rgb+=max(0.0,min(1.0,intensity3))*vec3(colors[3]);rgb+=max(0.0,min(1.0,intensity4))*vec3(colors[4]);rgb+=max(0.0,min(1.0,intensity5))*vec3(colors[5]);}vec4 apply_opacity(vec3 rgb){return vec4(apply_transparent_color_1540259130(rgb,transparentColor,useTransparentColor,opacity));}",inject:{"fs:DECKGL_MUTATE_COLOR":"\n vec3 rgb = rgba.rgb;\n mutate_color(rgb, intensity0, intensity1, intensity2, intensity3, intensity4, intensity5);\n rgba = apply_opacity(rgb);\n "}},Ao={colors:{type:"array",value:null,compare:!0},opacity:{type:"number",value:1,compare:!0},transparentColor:{type:"array",value:null,compare:!0},useTransparentColor:{type:"boolean",value:!1,compare:!0}},no=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"getShaders",value:function(){return Object(d.a)({},Object(C.a)(Object(I.a)(A.prototype),"getShaders",this).call(this),{modules:[to]})}},{key:"draw",value:function(){var e,t=this.props,A=t.colors,n=t.channelsVisible,r=t.opacity,i=void 0===r?Ao.opacity.value:r,o=t.transparentColor,a=void 0===o?Ao.transparentColor.value:o,s=t.useTransparentColor,g=void 0===s?Ao.useTransparentColor.value:s,c={colors:zi({channelsVisible:n||this.selections.map((function(){return!0})),colors:A||qi(this.props.selections.length)}),opacity:i,transparentColor:(a||[0,0,0]).map((function(e){return e/255})),useTransparentColor:Boolean(g)};null===(e=this.state.model)||void 0===e||e.setUniforms(c)}}]),A}(m.a);no.extensionName="ColorPaletteExtension",no.defaultProps=Ao;var ro={name:"additive-colormap",fs:"#define GLSLIFY 1\nvec4 jet(float x_17){const float e0=0.0;const vec4 v0=vec4(0,0,0.5137254901960784,1);const float e1=0.125;const vec4 v1=vec4(0,0.23529411764705882,0.6666666666666666,1);const float e2=0.375;const vec4 v2=vec4(0.0196078431372549,1,1,1);const float e3=0.625;const vec4 v3=vec4(1,1,0,1);const float e4=0.875;const vec4 v4=vec4(0.9803921568627451,0,0,1);const float e5=1.0;const vec4 v5=vec4(0.5019607843137255,0,0,1);float a0=smoothstep(e0,e1,x_17);float a1=smoothstep(e1,e2,x_17);float a2=smoothstep(e2,e3,x_17);float a3=smoothstep(e3,e4,x_17);float a4=smoothstep(e4,e5,x_17);return max(mix(v0,v1,a0)*step(e0,x_17)*step(x_17,e1),max(mix(v1,v2,a1)*step(e1,x_17)*step(x_17,e2),max(mix(v2,v3,a2)*step(e2,x_17)*step(x_17,e3),max(mix(v3,v4,a3)*step(e3,x_17)*step(x_17,e4),mix(v4,v5,a4)*step(e4,x_17)*step(x_17,e5)))));}vec4 hsv(float x_18){const float e0=0.0;const vec4 v0=vec4(1,0,0,1);const float e1=0.169;const vec4 v1=vec4(0.9921568627450981,1,0.00784313725490196,1);const float e2=0.173;const vec4 v2=vec4(0.9686274509803922,1,0.00784313725490196,1);const float e3=0.337;const vec4 v3=vec4(0,0.9882352941176471,0.01568627450980392,1);const float e4=0.341;const vec4 v4=vec4(0,0.9882352941176471,0.0392156862745098,1);const float e5=0.506;const vec4 v5=vec4(0.00392156862745098,0.9764705882352941,1,1);const float e6=0.671;const vec4 v6=vec4(0.00784313725490196,0,0.9921568627450981,1);const float e7=0.675;const vec4 v7=vec4(0.03137254901960784,0,0.9921568627450981,1);const float e8=0.839;const vec4 v8=vec4(1,0,0.984313725490196,1);const float e9=0.843;const vec4 v9=vec4(1,0,0.9607843137254902,1);const float e10=1.0;const vec4 v10=vec4(1,0,0.023529411764705882,1);float a0=smoothstep(e0,e1,x_18);float a1=smoothstep(e1,e2,x_18);float a2=smoothstep(e2,e3,x_18);float a3=smoothstep(e3,e4,x_18);float a4=smoothstep(e4,e5,x_18);float a5=smoothstep(e5,e6,x_18);float a6=smoothstep(e6,e7,x_18);float a7=smoothstep(e7,e8,x_18);float a8=smoothstep(e8,e9,x_18);float a9=smoothstep(e9,e10,x_18);return max(mix(v0,v1,a0)*step(e0,x_18)*step(x_18,e1),max(mix(v1,v2,a1)*step(e1,x_18)*step(x_18,e2),max(mix(v2,v3,a2)*step(e2,x_18)*step(x_18,e3),max(mix(v3,v4,a3)*step(e3,x_18)*step(x_18,e4),max(mix(v4,v5,a4)*step(e4,x_18)*step(x_18,e5),max(mix(v5,v6,a5)*step(e5,x_18)*step(x_18,e6),max(mix(v6,v7,a6)*step(e6,x_18)*step(x_18,e7),max(mix(v7,v8,a7)*step(e7,x_18)*step(x_18,e8),max(mix(v8,v9,a8)*step(e8,x_18)*step(x_18,e9),mix(v9,v10,a9)*step(e9,x_18)*step(x_18,e10))))))))));}vec4 hot(float x_13){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.3;const vec4 v1=vec4(0.9019607843137255,0,0,1);const float e2=0.6;const vec4 v2=vec4(1,0.8235294117647058,0,1);const float e3=1.0;const vec4 v3=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_13);float a1=smoothstep(e1,e2,x_13);float a2=smoothstep(e2,e3,x_13);return max(mix(v0,v1,a0)*step(e0,x_13)*step(x_13,e1),max(mix(v1,v2,a1)*step(e1,x_13)*step(x_13,e2),mix(v2,v3,a2)*step(e2,x_13)*step(x_13,e3)));}vec4 cool(float x_24){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.13;const vec4 v1=vec4(0.4549019607843137,0,0.8549019607843137,1);const float e2=0.25;const vec4 v2=vec4(0.3843137254901961,0.2901960784313726,0.9294117647058824,1);const float e3=0.38;const vec4 v3=vec4(0.26666666666666666,0.5725490196078431,0.9058823529411765,1);const float e4=0.5;const vec4 v4=vec4(0,0.8,0.7725490196078432,1);const float e5=0.63;const vec4 v5=vec4(0,0.9686274509803922,0.5725490196078431,1);const float e6=0.75;const vec4 v6=vec4(0,1,0.34509803921568627,1);const float e7=0.88;const vec4 v7=vec4(0.1568627450980392,1,0.03137254901960784,1);const float e8=1.0;const vec4 v8=vec4(0.5764705882352941,1,0,1);float a0=smoothstep(e0,e1,x_24);float a1=smoothstep(e1,e2,x_24);float a2=smoothstep(e2,e3,x_24);float a3=smoothstep(e3,e4,x_24);float a4=smoothstep(e4,e5,x_24);float a5=smoothstep(e5,e6,x_24);float a6=smoothstep(e6,e7,x_24);float a7=smoothstep(e7,e8,x_24);return max(mix(v0,v1,a0)*step(e0,x_24)*step(x_24,e1),max(mix(v1,v2,a1)*step(e1,x_24)*step(x_24,e2),max(mix(v2,v3,a2)*step(e2,x_24)*step(x_24,e3),max(mix(v3,v4,a3)*step(e3,x_24)*step(x_24,e4),max(mix(v4,v5,a4)*step(e4,x_24)*step(x_24,e5),max(mix(v5,v6,a5)*step(e5,x_24)*step(x_24,e6),max(mix(v6,v7,a6)*step(e6,x_24)*step(x_24,e7),mix(v7,v8,a7)*step(e7,x_24)*step(x_24,e8))))))));}vec4 spring(float x_5){const float e0=0.0;const vec4 v0=vec4(1,0,1,1);const float e1=1.0;const vec4 v1=vec4(1,1,0,1);float a0=smoothstep(e0,e1,x_5);return mix(v0,v1,a0)*step(e0,x_5)*step(x_5,e1);}vec4 summer(float x_12){const float e0=0.0;const vec4 v0=vec4(0,0.5019607843137255,0.4,1);const float e1=1.0;const vec4 v1=vec4(1,1,0.4,1);float a0=smoothstep(e0,e1,x_12);return mix(v0,v1,a0)*step(e0,x_12)*step(x_12,e1);}vec4 autumn(float x_25){const float e0=0.0;const vec4 v0=vec4(1,0,0,1);const float e1=1.0;const vec4 v1=vec4(1,1,0,1);float a0=smoothstep(e0,e1,x_25);return mix(v0,v1,a0)*step(e0,x_25)*step(x_25,e1);}vec4 winter(float x_16){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=1.0;const vec4 v1=vec4(0,1,0.5019607843137255,1);float a0=smoothstep(e0,e1,x_16);return mix(v0,v1,a0)*step(e0,x_16)*step(x_16,e1);}vec4 bone(float x_15){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.376;const vec4 v1=vec4(0.32941176470588235,0.32941176470588235,0.4549019607843137,1);const float e2=0.753;const vec4 v2=vec4(0.6627450980392157,0.7843137254901961,0.7843137254901961,1);const float e3=1.0;const vec4 v3=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_15);float a1=smoothstep(e1,e2,x_15);float a2=smoothstep(e2,e3,x_15);return max(mix(v0,v1,a0)*step(e0,x_15)*step(x_15,e1),max(mix(v1,v2,a1)*step(e1,x_15)*step(x_15,e2),mix(v2,v3,a2)*step(e2,x_15)*step(x_15,e3)));}vec4 copper(float x_10){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.804;const vec4 v1=vec4(1,0.6274509803921569,0.4,1);const float e2=1.0;const vec4 v2=vec4(1,0.7803921568627451,0.4980392156862745,1);float a0=smoothstep(e0,e1,x_10);float a1=smoothstep(e1,e2,x_10);return max(mix(v0,v1,a0)*step(e0,x_10)*step(x_10,e1),mix(v1,v2,a1)*step(e1,x_10)*step(x_10,e2));}vec4 greys(float x_4){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=1.0;const vec4 v1=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_4);return mix(v0,v1,a0)*step(e0,x_4)*step(x_4,e1);}vec4 yignbu(float x_32){const float e0=0.0;const vec4 v0=vec4(0.03137254901960784,0.11372549019607843,0.34509803921568627,1);const float e1=0.125;const vec4 v1=vec4(0.1450980392156863,0.20392156862745098,0.5803921568627451,1);const float e2=0.25;const vec4 v2=vec4(0.13333333333333333,0.3686274509803922,0.6588235294117647,1);const float e3=0.375;const vec4 v3=vec4(0.11372549019607843,0.5686274509803921,0.7529411764705882,1);const float e4=0.5;const vec4 v4=vec4(0.2549019607843137,0.7137254901960784,0.7686274509803922,1);const float e5=0.625;const vec4 v5=vec4(0.4980392156862745,0.803921568627451,0.7333333333333333,1);const float e6=0.75;const vec4 v6=vec4(0.7803921568627451,0.9137254901960784,0.7058823529411765,1);const float e7=0.875;const vec4 v7=vec4(0.9294117647058824,0.9725490196078431,0.8509803921568627,1);const float e8=1.0;const vec4 v8=vec4(1,1,0.8509803921568627,1);float a0=smoothstep(e0,e1,x_32);float a1=smoothstep(e1,e2,x_32);float a2=smoothstep(e2,e3,x_32);float a3=smoothstep(e3,e4,x_32);float a4=smoothstep(e4,e5,x_32);float a5=smoothstep(e5,e6,x_32);float a6=smoothstep(e6,e7,x_32);float a7=smoothstep(e7,e8,x_32);return max(mix(v0,v1,a0)*step(e0,x_32)*step(x_32,e1),max(mix(v1,v2,a1)*step(e1,x_32)*step(x_32,e2),max(mix(v2,v3,a2)*step(e2,x_32)*step(x_32,e3),max(mix(v3,v4,a3)*step(e3,x_32)*step(x_32,e4),max(mix(v4,v5,a4)*step(e4,x_32)*step(x_32,e5),max(mix(v5,v6,a5)*step(e5,x_32)*step(x_32,e6),max(mix(v6,v7,a6)*step(e6,x_32)*step(x_32,e7),mix(v7,v8,a7)*step(e7,x_32)*step(x_32,e8))))))));}vec4 greens(float x_34){const float e0=0.0;const vec4 v0=vec4(0,0.26666666666666666,0.10588235294117647,1);const float e1=0.125;const vec4 v1=vec4(0,0.42745098039215684,0.17254901960784313,1);const float e2=0.25;const vec4 v2=vec4(0.13725490196078433,0.5450980392156862,0.27058823529411763,1);const float e3=0.375;const vec4 v3=vec4(0.2549019607843137,0.6705882352941176,0.36470588235294116,1);const float e4=0.5;const vec4 v4=vec4(0.4549019607843137,0.7686274509803922,0.4627450980392157,1);const float e5=0.625;const vec4 v5=vec4(0.6313725490196078,0.8509803921568627,0.6078431372549019,1);const float e6=0.75;const vec4 v6=vec4(0.7803921568627451,0.9137254901960784,0.7529411764705882,1);const float e7=0.875;const vec4 v7=vec4(0.8980392156862745,0.9607843137254902,0.8784313725490196,1);const float e8=1.0;const vec4 v8=vec4(0.9686274509803922,0.9882352941176471,0.9607843137254902,1);float a0=smoothstep(e0,e1,x_34);float a1=smoothstep(e1,e2,x_34);float a2=smoothstep(e2,e3,x_34);float a3=smoothstep(e3,e4,x_34);float a4=smoothstep(e4,e5,x_34);float a5=smoothstep(e5,e6,x_34);float a6=smoothstep(e6,e7,x_34);float a7=smoothstep(e7,e8,x_34);return max(mix(v0,v1,a0)*step(e0,x_34)*step(x_34,e1),max(mix(v1,v2,a1)*step(e1,x_34)*step(x_34,e2),max(mix(v2,v3,a2)*step(e2,x_34)*step(x_34,e3),max(mix(v3,v4,a3)*step(e3,x_34)*step(x_34,e4),max(mix(v4,v5,a4)*step(e4,x_34)*step(x_34,e5),max(mix(v5,v6,a5)*step(e5,x_34)*step(x_34,e6),max(mix(v6,v7,a6)*step(e6,x_34)*step(x_34,e7),mix(v7,v8,a7)*step(e7,x_34)*step(x_34,e8))))))));}vec4 yiorrd(float x_41){const float e0=0.0;const vec4 v0=vec4(0.5019607843137255,0,0.14901960784313725,1);const float e1=0.125;const vec4 v1=vec4(0.7411764705882353,0,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.8901960784313725,0.10196078431372549,0.10980392156862745,1);const float e3=0.375;const vec4 v3=vec4(0.9882352941176471,0.3058823529411765,0.16470588235294117,1);const float e4=0.5;const vec4 v4=vec4(0.9921568627450981,0.5529411764705883,0.23529411764705882,1);const float e5=0.625;const vec4 v5=vec4(0.996078431372549,0.6980392156862745,0.2980392156862745,1);const float e6=0.75;const vec4 v6=vec4(0.996078431372549,0.8509803921568627,0.4627450980392157,1);const float e7=0.875;const vec4 v7=vec4(1,0.9294117647058824,0.6274509803921569,1);const float e8=1.0;const vec4 v8=vec4(1,1,0.8,1);float a0=smoothstep(e0,e1,x_41);float a1=smoothstep(e1,e2,x_41);float a2=smoothstep(e2,e3,x_41);float a3=smoothstep(e3,e4,x_41);float a4=smoothstep(e4,e5,x_41);float a5=smoothstep(e5,e6,x_41);float a6=smoothstep(e6,e7,x_41);float a7=smoothstep(e7,e8,x_41);return max(mix(v0,v1,a0)*step(e0,x_41)*step(x_41,e1),max(mix(v1,v2,a1)*step(e1,x_41)*step(x_41,e2),max(mix(v2,v3,a2)*step(e2,x_41)*step(x_41,e3),max(mix(v3,v4,a3)*step(e3,x_41)*step(x_41,e4),max(mix(v4,v5,a4)*step(e4,x_41)*step(x_41,e5),max(mix(v5,v6,a5)*step(e5,x_41)*step(x_41,e6),max(mix(v6,v7,a6)*step(e6,x_41)*step(x_41,e7),mix(v7,v8,a7)*step(e7,x_41)*step(x_41,e8))))))));}vec4 bluered(float x_23){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=1.0;const vec4 v1=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_23);return mix(v0,v1,a0)*step(e0,x_23)*step(x_23,e1);}vec4 rdbu(float x_1){const float e0=0.0;const vec4 v0=vec4(0.0196078431372549,0.0392156862745098,0.6745098039215687,1);const float e1=0.35;const vec4 v1=vec4(0.41568627450980394,0.5372549019607843,0.9686274509803922,1);const float e2=0.5;const vec4 v2=vec4(0.7450980392156863,0.7450980392156863,0.7450980392156863,1);const float e3=0.6;const vec4 v3=vec4(0.8627450980392157,0.6666666666666666,0.5176470588235295,1);const float e4=0.7;const vec4 v4=vec4(0.9019607843137255,0.5686274509803921,0.35294117647058826,1);const float e5=1.0;const vec4 v5=vec4(0.6980392156862745,0.0392156862745098,0.10980392156862745,1);float a0=smoothstep(e0,e1,x_1);float a1=smoothstep(e1,e2,x_1);float a2=smoothstep(e2,e3,x_1);float a3=smoothstep(e3,e4,x_1);float a4=smoothstep(e4,e5,x_1);return max(mix(v0,v1,a0)*step(e0,x_1)*step(x_1,e1),max(mix(v1,v2,a1)*step(e1,x_1)*step(x_1,e2),max(mix(v2,v3,a2)*step(e2,x_1)*step(x_1,e3),max(mix(v3,v4,a3)*step(e3,x_1)*step(x_1,e4),mix(v4,v5,a4)*step(e4,x_1)*step(x_1,e5)))));}vec4 picnic(float x_42){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=0.1;const vec4 v1=vec4(0.2,0.6,1,1);const float e2=0.2;const vec4 v2=vec4(0.4,0.8,1,1);const float e3=0.3;const vec4 v3=vec4(0.6,0.8,1,1);const float e4=0.4;const vec4 v4=vec4(0.8,0.8,1,1);const float e5=0.5;const vec4 v5=vec4(1,1,1,1);const float e6=0.6;const vec4 v6=vec4(1,0.8,1,1);const float e7=0.7;const vec4 v7=vec4(1,0.6,1,1);const float e8=0.8;const vec4 v8=vec4(1,0.4,0.8,1);const float e9=0.9;const vec4 v9=vec4(1,0.4,0.4,1);const float e10=1.0;const vec4 v10=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_42);float a1=smoothstep(e1,e2,x_42);float a2=smoothstep(e2,e3,x_42);float a3=smoothstep(e3,e4,x_42);float a4=smoothstep(e4,e5,x_42);float a5=smoothstep(e5,e6,x_42);float a6=smoothstep(e6,e7,x_42);float a7=smoothstep(e7,e8,x_42);float a8=smoothstep(e8,e9,x_42);float a9=smoothstep(e9,e10,x_42);return max(mix(v0,v1,a0)*step(e0,x_42)*step(x_42,e1),max(mix(v1,v2,a1)*step(e1,x_42)*step(x_42,e2),max(mix(v2,v3,a2)*step(e2,x_42)*step(x_42,e3),max(mix(v3,v4,a3)*step(e3,x_42)*step(x_42,e4),max(mix(v4,v5,a4)*step(e4,x_42)*step(x_42,e5),max(mix(v5,v6,a5)*step(e5,x_42)*step(x_42,e6),max(mix(v6,v7,a6)*step(e6,x_42)*step(x_42,e7),max(mix(v7,v8,a7)*step(e7,x_42)*step(x_42,e8),max(mix(v8,v9,a8)*step(e8,x_42)*step(x_42,e9),mix(v9,v10,a9)*step(e9,x_42)*step(x_42,e10))))))))));}vec4 rainbow(float x_31){const float e0=0.0;const vec4 v0=vec4(0.5882352941176471,0,0.35294117647058826,1);const float e1=0.125;const vec4 v1=vec4(0,0,0.7843137254901961,1);const float e2=0.25;const vec4 v2=vec4(0,0.09803921568627451,1,1);const float e3=0.375;const vec4 v3=vec4(0,0.596078431372549,1,1);const float e4=0.5;const vec4 v4=vec4(0.17254901960784313,1,0.5882352941176471,1);const float e5=0.625;const vec4 v5=vec4(0.592156862745098,1,0,1);const float e6=0.75;const vec4 v6=vec4(1,0.9176470588235294,0,1);const float e7=0.875;const vec4 v7=vec4(1,0.43529411764705883,0,1);const float e8=1.0;const vec4 v8=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_31);float a1=smoothstep(e1,e2,x_31);float a2=smoothstep(e2,e3,x_31);float a3=smoothstep(e3,e4,x_31);float a4=smoothstep(e4,e5,x_31);float a5=smoothstep(e5,e6,x_31);float a6=smoothstep(e6,e7,x_31);float a7=smoothstep(e7,e8,x_31);return max(mix(v0,v1,a0)*step(e0,x_31)*step(x_31,e1),max(mix(v1,v2,a1)*step(e1,x_31)*step(x_31,e2),max(mix(v2,v3,a2)*step(e2,x_31)*step(x_31,e3),max(mix(v3,v4,a3)*step(e3,x_31)*step(x_31,e4),max(mix(v4,v5,a4)*step(e4,x_31)*step(x_31,e5),max(mix(v5,v6,a5)*step(e5,x_31)*step(x_31,e6),max(mix(v6,v7,a6)*step(e6,x_31)*step(x_31,e7),mix(v7,v8,a7)*step(e7,x_31)*step(x_31,e8))))))));}vec4 portland(float x_21){const float e0=0.0;const vec4 v0=vec4(0.047058823529411764,0.2,0.5137254901960784,1);const float e1=0.25;const vec4 v1=vec4(0.0392156862745098,0.5333333333333333,0.7294117647058823,1);const float e2=0.5;const vec4 v2=vec4(0.9490196078431372,0.8274509803921568,0.2196078431372549,1);const float e3=0.75;const vec4 v3=vec4(0.9490196078431372,0.5607843137254902,0.2196078431372549,1);const float e4=1.0;const vec4 v4=vec4(0.8509803921568627,0.11764705882352941,0.11764705882352941,1);float a0=smoothstep(e0,e1,x_21);float a1=smoothstep(e1,e2,x_21);float a2=smoothstep(e2,e3,x_21);float a3=smoothstep(e3,e4,x_21);return max(mix(v0,v1,a0)*step(e0,x_21)*step(x_21,e1),max(mix(v1,v2,a1)*step(e1,x_21)*step(x_21,e2),max(mix(v2,v3,a2)*step(e2,x_21)*step(x_21,e3),mix(v3,v4,a3)*step(e3,x_21)*step(x_21,e4))));}vec4 blackbody(float x_38){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.2;const vec4 v1=vec4(0.9019607843137255,0,0,1);const float e2=0.4;const vec4 v2=vec4(0.9019607843137255,0.8235294117647058,0,1);const float e3=0.7;const vec4 v3=vec4(1,1,1,1);const float e4=1.0;const vec4 v4=vec4(0.6274509803921569,0.7843137254901961,1,1);float a0=smoothstep(e0,e1,x_38);float a1=smoothstep(e1,e2,x_38);float a2=smoothstep(e2,e3,x_38);float a3=smoothstep(e3,e4,x_38);return max(mix(v0,v1,a0)*step(e0,x_38)*step(x_38,e1),max(mix(v1,v2,a1)*step(e1,x_38)*step(x_38,e2),max(mix(v2,v3,a2)*step(e2,x_38)*step(x_38,e3),mix(v3,v4,a3)*step(e3,x_38)*step(x_38,e4))));}vec4 earth(float x_29){const float e0=0.0;const vec4 v0=vec4(0,0,0.5098039215686274,1);const float e1=0.1;const vec4 v1=vec4(0,0.7058823529411765,0.7058823529411765,1);const float e2=0.2;const vec4 v2=vec4(0.1568627450980392,0.8235294117647058,0.1568627450980392,1);const float e3=0.4;const vec4 v3=vec4(0.9019607843137255,0.9019607843137255,0.19607843137254902,1);const float e4=0.6;const vec4 v4=vec4(0.47058823529411764,0.27450980392156865,0.0784313725490196,1);const float e5=1.0;const vec4 v5=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_29);float a1=smoothstep(e1,e2,x_29);float a2=smoothstep(e2,e3,x_29);float a3=smoothstep(e3,e4,x_29);float a4=smoothstep(e4,e5,x_29);return max(mix(v0,v1,a0)*step(e0,x_29)*step(x_29,e1),max(mix(v1,v2,a1)*step(e1,x_29)*step(x_29,e2),max(mix(v2,v3,a2)*step(e2,x_29)*step(x_29,e3),max(mix(v3,v4,a3)*step(e3,x_29)*step(x_29,e4),mix(v4,v5,a4)*step(e4,x_29)*step(x_29,e5)))));}vec4 electric(float x_9){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.15;const vec4 v1=vec4(0.11764705882352941,0,0.39215686274509803,1);const float e2=0.4;const vec4 v2=vec4(0.47058823529411764,0,0.39215686274509803,1);const float e3=0.6;const vec4 v3=vec4(0.6274509803921569,0.35294117647058826,0,1);const float e4=0.8;const vec4 v4=vec4(0.9019607843137255,0.7843137254901961,0,1);const float e5=1.0;const vec4 v5=vec4(1,0.9803921568627451,0.8627450980392157,1);float a0=smoothstep(e0,e1,x_9);float a1=smoothstep(e1,e2,x_9);float a2=smoothstep(e2,e3,x_9);float a3=smoothstep(e3,e4,x_9);float a4=smoothstep(e4,e5,x_9);return max(mix(v0,v1,a0)*step(e0,x_9)*step(x_9,e1),max(mix(v1,v2,a1)*step(e1,x_9)*step(x_9,e2),max(mix(v2,v3,a2)*step(e2,x_9)*step(x_9,e3),max(mix(v3,v4,a3)*step(e3,x_9)*step(x_9,e4),mix(v4,v5,a4)*step(e4,x_9)*step(x_9,e5)))));}vec4 alpha(float x_0){const float e0=0.0;const vec4 v0=vec4(1,1,1,0);const float e1=1.0;const vec4 v1=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_0);return mix(v0,v1,a0)*step(e0,x_0)*step(x_0,e1);}vec4 viridis(float x_22){const float e0=0.0;const vec4 v0=vec4(0.26666666666666666,0.00392156862745098,0.32941176470588235,1);const float e1=0.13;const vec4 v1=vec4(0.2784313725490196,0.17254901960784313,0.47843137254901963,1);const float e2=0.25;const vec4 v2=vec4(0.23137254901960785,0.3176470588235294,0.5450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.17254901960784313,0.44313725490196076,0.5568627450980392,1);const float e4=0.5;const vec4 v4=vec4(0.12941176470588237,0.5647058823529412,0.5529411764705883,1);const float e5=0.63;const vec4 v5=vec4(0.15294117647058825,0.6784313725490196,0.5058823529411764,1);const float e6=0.75;const vec4 v6=vec4(0.3607843137254902,0.7843137254901961,0.38823529411764707,1);const float e7=0.88;const vec4 v7=vec4(0.6666666666666666,0.8627450980392157,0.19607843137254902,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.9058823529411765,0.1450980392156863,1);float a0=smoothstep(e0,e1,x_22);float a1=smoothstep(e1,e2,x_22);float a2=smoothstep(e2,e3,x_22);float a3=smoothstep(e3,e4,x_22);float a4=smoothstep(e4,e5,x_22);float a5=smoothstep(e5,e6,x_22);float a6=smoothstep(e6,e7,x_22);float a7=smoothstep(e7,e8,x_22);return max(mix(v0,v1,a0)*step(e0,x_22)*step(x_22,e1),max(mix(v1,v2,a1)*step(e1,x_22)*step(x_22,e2),max(mix(v2,v3,a2)*step(e2,x_22)*step(x_22,e3),max(mix(v3,v4,a3)*step(e3,x_22)*step(x_22,e4),max(mix(v4,v5,a4)*step(e4,x_22)*step(x_22,e5),max(mix(v5,v6,a5)*step(e5,x_22)*step(x_22,e6),max(mix(v6,v7,a6)*step(e6,x_22)*step(x_22,e7),mix(v7,v8,a7)*step(e7,x_22)*step(x_22,e8))))))));}vec4 inferno(float x_30){const float e0=0.0;const vec4 v0=vec4(0,0,0.01568627450980392,1);const float e1=0.13;const vec4 v1=vec4(0.12156862745098039,0.047058823529411764,0.2823529411764706,1);const float e2=0.25;const vec4 v2=vec4(0.3333333333333333,0.058823529411764705,0.42745098039215684,1);const float e3=0.38;const vec4 v3=vec4(0.5333333333333333,0.13333333333333333,0.41568627450980394,1);const float e4=0.5;const vec4 v4=vec4(0.7294117647058823,0.21176470588235294,0.3333333333333333,1);const float e5=0.63;const vec4 v5=vec4(0.8901960784313725,0.34901960784313724,0.2,1);const float e6=0.75;const vec4 v6=vec4(0.9764705882352941,0.5490196078431373,0.0392156862745098,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.788235294117647,0.19607843137254902,1);const float e8=1.0;const vec4 v8=vec4(0.9882352941176471,1,0.6431372549019608,1);float a0=smoothstep(e0,e1,x_30);float a1=smoothstep(e1,e2,x_30);float a2=smoothstep(e2,e3,x_30);float a3=smoothstep(e3,e4,x_30);float a4=smoothstep(e4,e5,x_30);float a5=smoothstep(e5,e6,x_30);float a6=smoothstep(e6,e7,x_30);float a7=smoothstep(e7,e8,x_30);return max(mix(v0,v1,a0)*step(e0,x_30)*step(x_30,e1),max(mix(v1,v2,a1)*step(e1,x_30)*step(x_30,e2),max(mix(v2,v3,a2)*step(e2,x_30)*step(x_30,e3),max(mix(v3,v4,a3)*step(e3,x_30)*step(x_30,e4),max(mix(v4,v5,a4)*step(e4,x_30)*step(x_30,e5),max(mix(v5,v6,a5)*step(e5,x_30)*step(x_30,e6),max(mix(v6,v7,a6)*step(e6,x_30)*step(x_30,e7),mix(v7,v8,a7)*step(e7,x_30)*step(x_30,e8))))))));}vec4 magma(float x_33){const float e0=0.0;const vec4 v0=vec4(0,0,0.01568627450980392,1);const float e1=0.13;const vec4 v1=vec4(0.10980392156862745,0.06274509803921569,0.26666666666666666,1);const float e2=0.25;const vec4 v2=vec4(0.30980392156862746,0.07058823529411765,0.4823529411764706,1);const float e3=0.38;const vec4 v3=vec4(0.5058823529411764,0.1450980392156863,0.5058823529411764,1);const float e4=0.5;const vec4 v4=vec4(0.7098039215686275,0.21176470588235294,0.47843137254901963,1);const float e5=0.63;const vec4 v5=vec4(0.8980392156862745,0.3137254901960784,0.39215686274509803,1);const float e6=0.75;const vec4 v6=vec4(0.984313725490196,0.5294117647058824,0.3803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.996078431372549,0.7607843137254902,0.5294117647058824,1);const float e8=1.0;const vec4 v8=vec4(0.9882352941176471,0.9921568627450981,0.7490196078431373,1);float a0=smoothstep(e0,e1,x_33);float a1=smoothstep(e1,e2,x_33);float a2=smoothstep(e2,e3,x_33);float a3=smoothstep(e3,e4,x_33);float a4=smoothstep(e4,e5,x_33);float a5=smoothstep(e5,e6,x_33);float a6=smoothstep(e6,e7,x_33);float a7=smoothstep(e7,e8,x_33);return max(mix(v0,v1,a0)*step(e0,x_33)*step(x_33,e1),max(mix(v1,v2,a1)*step(e1,x_33)*step(x_33,e2),max(mix(v2,v3,a2)*step(e2,x_33)*step(x_33,e3),max(mix(v3,v4,a3)*step(e3,x_33)*step(x_33,e4),max(mix(v4,v5,a4)*step(e4,x_33)*step(x_33,e5),max(mix(v5,v6,a5)*step(e5,x_33)*step(x_33,e6),max(mix(v6,v7,a6)*step(e6,x_33)*step(x_33,e7),mix(v7,v8,a7)*step(e7,x_33)*step(x_33,e8))))))));}vec4 plasma(float x_3){const float e0=0.0;const vec4 v0=vec4(0.050980392156862744,0.03137254901960784,0.5294117647058824,1);const float e1=0.13;const vec4 v1=vec4(0.29411764705882354,0.011764705882352941,0.6313725490196078,1);const float e2=0.25;const vec4 v2=vec4(0.49019607843137253,0.011764705882352941,0.6588235294117647,1);const float e3=0.38;const vec4 v3=vec4(0.6588235294117647,0.13333333333333333,0.5882352941176471,1);const float e4=0.5;const vec4 v4=vec4(0.796078431372549,0.27450980392156865,0.4745098039215686,1);const float e5=0.63;const vec4 v5=vec4(0.8980392156862745,0.4196078431372549,0.36470588235294116,1);const float e6=0.75;const vec4 v6=vec4(0.9725490196078431,0.5803921568627451,0.2549019607843137,1);const float e7=0.88;const vec4 v7=vec4(0.9921568627450981,0.7647058823529411,0.1568627450980392,1);const float e8=1.0;const vec4 v8=vec4(0.9411764705882353,0.9764705882352941,0.12941176470588237,1);float a0=smoothstep(e0,e1,x_3);float a1=smoothstep(e1,e2,x_3);float a2=smoothstep(e2,e3,x_3);float a3=smoothstep(e3,e4,x_3);float a4=smoothstep(e4,e5,x_3);float a5=smoothstep(e5,e6,x_3);float a6=smoothstep(e6,e7,x_3);float a7=smoothstep(e7,e8,x_3);return max(mix(v0,v1,a0)*step(e0,x_3)*step(x_3,e1),max(mix(v1,v2,a1)*step(e1,x_3)*step(x_3,e2),max(mix(v2,v3,a2)*step(e2,x_3)*step(x_3,e3),max(mix(v3,v4,a3)*step(e3,x_3)*step(x_3,e4),max(mix(v4,v5,a4)*step(e4,x_3)*step(x_3,e5),max(mix(v5,v6,a5)*step(e5,x_3)*step(x_3,e6),max(mix(v6,v7,a6)*step(e6,x_3)*step(x_3,e7),mix(v7,v8,a7)*step(e7,x_3)*step(x_3,e8))))))));}vec4 warm(float x_43){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.13;const vec4 v1=vec4(0.6745098039215687,0,0.7333333333333333,1);const float e2=0.25;const vec4 v2=vec4(0.8588235294117647,0,0.6666666666666666,1);const float e3=0.38;const vec4 v3=vec4(1,0,0.5098039215686274,1);const float e4=0.5;const vec4 v4=vec4(1,0.24705882352941178,0.2901960784313726,1);const float e5=0.63;const vec4 v5=vec4(1,0.4823529411764706,0,1);const float e6=0.75;const vec4 v6=vec4(0.9176470588235294,0.6901960784313725,0,1);const float e7=0.88;const vec4 v7=vec4(0.7450980392156863,0.8941176470588236,0,1);const float e8=1.0;const vec4 v8=vec4(0.5764705882352941,1,0,1);float a0=smoothstep(e0,e1,x_43);float a1=smoothstep(e1,e2,x_43);float a2=smoothstep(e2,e3,x_43);float a3=smoothstep(e3,e4,x_43);float a4=smoothstep(e4,e5,x_43);float a5=smoothstep(e5,e6,x_43);float a6=smoothstep(e6,e7,x_43);float a7=smoothstep(e7,e8,x_43);return max(mix(v0,v1,a0)*step(e0,x_43)*step(x_43,e1),max(mix(v1,v2,a1)*step(e1,x_43)*step(x_43,e2),max(mix(v2,v3,a2)*step(e2,x_43)*step(x_43,e3),max(mix(v3,v4,a3)*step(e3,x_43)*step(x_43,e4),max(mix(v4,v5,a4)*step(e4,x_43)*step(x_43,e5),max(mix(v5,v6,a5)*step(e5,x_43)*step(x_43,e6),max(mix(v6,v7,a6)*step(e6,x_43)*step(x_43,e7),mix(v7,v8,a7)*step(e7,x_43)*step(x_43,e8))))))));}vec4 rainbow_soft_1310269270(float x_14){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.1;const vec4 v1=vec4(0.7803921568627451,0,0.7058823529411765,1);const float e2=0.2;const vec4 v2=vec4(1,0,0.4745098039215686,1);const float e3=0.3;const vec4 v3=vec4(1,0.4235294117647059,0,1);const float e4=0.4;const vec4 v4=vec4(0.8705882352941177,0.7607843137254902,0,1);const float e5=0.5;const vec4 v5=vec4(0.5882352941176471,1,0,1);const float e6=0.6;const vec4 v6=vec4(0,1,0.21568627450980393,1);const float e7=0.7;const vec4 v7=vec4(0,0.9647058823529412,0.5882352941176471,1);const float e8=0.8;const vec4 v8=vec4(0.19607843137254902,0.6549019607843137,0.8705882352941177,1);const float e9=0.9;const vec4 v9=vec4(0.403921568627451,0.2,0.9215686274509803,1);const float e10=1.0;const vec4 v10=vec4(0.48627450980392156,0,0.7294117647058823,1);float a0=smoothstep(e0,e1,x_14);float a1=smoothstep(e1,e2,x_14);float a2=smoothstep(e2,e3,x_14);float a3=smoothstep(e3,e4,x_14);float a4=smoothstep(e4,e5,x_14);float a5=smoothstep(e5,e6,x_14);float a6=smoothstep(e6,e7,x_14);float a7=smoothstep(e7,e8,x_14);float a8=smoothstep(e8,e9,x_14);float a9=smoothstep(e9,e10,x_14);return max(mix(v0,v1,a0)*step(e0,x_14)*step(x_14,e1),max(mix(v1,v2,a1)*step(e1,x_14)*step(x_14,e2),max(mix(v2,v3,a2)*step(e2,x_14)*step(x_14,e3),max(mix(v3,v4,a3)*step(e3,x_14)*step(x_14,e4),max(mix(v4,v5,a4)*step(e4,x_14)*step(x_14,e5),max(mix(v5,v6,a5)*step(e5,x_14)*step(x_14,e6),max(mix(v6,v7,a6)*step(e6,x_14)*step(x_14,e7),max(mix(v7,v8,a7)*step(e7,x_14)*step(x_14,e8),max(mix(v8,v9,a8)*step(e8,x_14)*step(x_14,e9),mix(v9,v10,a9)*step(e9,x_14)*step(x_14,e10))))))))));}vec4 bathymetry(float x_36){const float e0=0.0;const vec4 v0=vec4(0.1568627450980392,0.10196078431372549,0.17254901960784313,1);const float e1=0.13;const vec4 v1=vec4(0.23137254901960785,0.19215686274509805,0.35294117647058826,1);const float e2=0.25;const vec4 v2=vec4(0.25098039215686274,0.2980392156862745,0.5450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.24705882352941178,0.43137254901960786,0.592156862745098,1);const float e4=0.5;const vec4 v4=vec4(0.2823529411764706,0.5568627450980392,0.6196078431372549,1);const float e5=0.63;const vec4 v5=vec4(0.3333333333333333,0.6823529411764706,0.6392156862745098,1);const float e6=0.75;const vec4 v6=vec4(0.47058823529411764,0.807843137254902,0.6392156862745098,1);const float e7=0.88;const vec4 v7=vec4(0.7333333333333333,0.9019607843137255,0.6745098039215687,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.996078431372549,0.8,1);float a0=smoothstep(e0,e1,x_36);float a1=smoothstep(e1,e2,x_36);float a2=smoothstep(e2,e3,x_36);float a3=smoothstep(e3,e4,x_36);float a4=smoothstep(e4,e5,x_36);float a5=smoothstep(e5,e6,x_36);float a6=smoothstep(e6,e7,x_36);float a7=smoothstep(e7,e8,x_36);return max(mix(v0,v1,a0)*step(e0,x_36)*step(x_36,e1),max(mix(v1,v2,a1)*step(e1,x_36)*step(x_36,e2),max(mix(v2,v3,a2)*step(e2,x_36)*step(x_36,e3),max(mix(v3,v4,a3)*step(e3,x_36)*step(x_36,e4),max(mix(v4,v5,a4)*step(e4,x_36)*step(x_36,e5),max(mix(v5,v6,a5)*step(e5,x_36)*step(x_36,e6),max(mix(v6,v7,a6)*step(e6,x_36)*step(x_36,e7),mix(v7,v8,a7)*step(e7,x_36)*step(x_36,e8))))))));}vec4 cdom(float x_7){const float e0=0.0;const vec4 v0=vec4(0.1843137254901961,0.058823529411764705,0.24313725490196078,1);const float e1=0.13;const vec4 v1=vec4(0.3411764705882353,0.09019607843137255,0.33725490196078434,1);const float e2=0.25;const vec4 v2=vec4(0.5098039215686274,0.10980392156862745,0.38823529411764707,1);const float e3=0.38;const vec4 v3=vec4(0.6705882352941176,0.1607843137254902,0.3764705882352941,1);const float e4=0.5;const vec4 v4=vec4(0.807843137254902,0.2627450980392157,0.33725490196078434,1);const float e5=0.63;const vec4 v5=vec4(0.9019607843137255,0.41568627450980394,0.32941176470588235,1);const float e6=0.75;const vec4 v6=vec4(0.9490196078431372,0.5843137254901961,0.403921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.7568627450980392,0.5294117647058824,1);const float e8=1.0;const vec4 v8=vec4(0.996078431372549,0.9294117647058824,0.6901960784313725,1);float a0=smoothstep(e0,e1,x_7);float a1=smoothstep(e1,e2,x_7);float a2=smoothstep(e2,e3,x_7);float a3=smoothstep(e3,e4,x_7);float a4=smoothstep(e4,e5,x_7);float a5=smoothstep(e5,e6,x_7);float a6=smoothstep(e6,e7,x_7);float a7=smoothstep(e7,e8,x_7);return max(mix(v0,v1,a0)*step(e0,x_7)*step(x_7,e1),max(mix(v1,v2,a1)*step(e1,x_7)*step(x_7,e2),max(mix(v2,v3,a2)*step(e2,x_7)*step(x_7,e3),max(mix(v3,v4,a3)*step(e3,x_7)*step(x_7,e4),max(mix(v4,v5,a4)*step(e4,x_7)*step(x_7,e5),max(mix(v5,v6,a5)*step(e5,x_7)*step(x_7,e6),max(mix(v6,v7,a6)*step(e6,x_7)*step(x_7,e7),mix(v7,v8,a7)*step(e7,x_7)*step(x_7,e8))))))));}vec4 chlorophyll(float x_6){const float e0=0.0;const vec4 v0=vec4(0.07058823529411765,0.1411764705882353,0.0784313725490196,1);const float e1=0.13;const vec4 v1=vec4(0.09803921568627451,0.24705882352941178,0.1607843137254902,1);const float e2=0.25;const vec4 v2=vec4(0.09411764705882353,0.3568627450980392,0.23137254901960785,1);const float e3=0.38;const vec4 v3=vec4(0.050980392156862744,0.4666666666666667,0.2823529411764706,1);const float e4=0.5;const vec4 v4=vec4(0.07058823529411765,0.5803921568627451,0.3137254901960784,1);const float e5=0.63;const vec4 v5=vec4(0.3137254901960784,0.6784313725490196,0.34901960784313724,1);const float e6=0.75;const vec4 v6=vec4(0.5176470588235295,0.7686274509803922,0.47843137254901963,1);const float e7=0.88;const vec4 v7=vec4(0.6862745098039216,0.8666666666666667,0.6352941176470588,1);const float e8=1.0;const vec4 v8=vec4(0.8431372549019608,0.9764705882352941,0.8156862745098039,1);float a0=smoothstep(e0,e1,x_6);float a1=smoothstep(e1,e2,x_6);float a2=smoothstep(e2,e3,x_6);float a3=smoothstep(e3,e4,x_6);float a4=smoothstep(e4,e5,x_6);float a5=smoothstep(e5,e6,x_6);float a6=smoothstep(e6,e7,x_6);float a7=smoothstep(e7,e8,x_6);return max(mix(v0,v1,a0)*step(e0,x_6)*step(x_6,e1),max(mix(v1,v2,a1)*step(e1,x_6)*step(x_6,e2),max(mix(v2,v3,a2)*step(e2,x_6)*step(x_6,e3),max(mix(v3,v4,a3)*step(e3,x_6)*step(x_6,e4),max(mix(v4,v5,a4)*step(e4,x_6)*step(x_6,e5),max(mix(v5,v6,a5)*step(e5,x_6)*step(x_6,e6),max(mix(v6,v7,a6)*step(e6,x_6)*step(x_6,e7),mix(v7,v8,a7)*step(e7,x_6)*step(x_6,e8))))))));}vec4 density(float x_19){const float e0=0.0;const vec4 v0=vec4(0.21176470588235294,0.054901960784313725,0.1411764705882353,1);const float e1=0.13;const vec4 v1=vec4(0.34901960784313724,0.09019607843137255,0.3137254901960784,1);const float e2=0.25;const vec4 v2=vec4(0.43137254901960786,0.17647058823529413,0.5176470588235295,1);const float e3=0.38;const vec4 v3=vec4(0.47058823529411764,0.30196078431372547,0.6980392156862745,1);const float e4=0.5;const vec4 v4=vec4(0.47058823529411764,0.44313725490196076,0.8352941176470589,1);const float e5=0.63;const vec4 v5=vec4(0.45098039215686275,0.592156862745098,0.8941176470588236,1);const float e6=0.75;const vec4 v6=vec4(0.5254901960784314,0.7254901960784313,0.8901960784313725,1);const float e7=0.88;const vec4 v7=vec4(0.6941176470588235,0.8392156862745098,0.8901960784313725,1);const float e8=1.0;const vec4 v8=vec4(0.9019607843137255,0.9450980392156862,0.9450980392156862,1);float a0=smoothstep(e0,e1,x_19);float a1=smoothstep(e1,e2,x_19);float a2=smoothstep(e2,e3,x_19);float a3=smoothstep(e3,e4,x_19);float a4=smoothstep(e4,e5,x_19);float a5=smoothstep(e5,e6,x_19);float a6=smoothstep(e6,e7,x_19);float a7=smoothstep(e7,e8,x_19);return max(mix(v0,v1,a0)*step(e0,x_19)*step(x_19,e1),max(mix(v1,v2,a1)*step(e1,x_19)*step(x_19,e2),max(mix(v2,v3,a2)*step(e2,x_19)*step(x_19,e3),max(mix(v3,v4,a3)*step(e3,x_19)*step(x_19,e4),max(mix(v4,v5,a4)*step(e4,x_19)*step(x_19,e5),max(mix(v5,v6,a5)*step(e5,x_19)*step(x_19,e6),max(mix(v6,v7,a6)*step(e6,x_19)*step(x_19,e7),mix(v7,v8,a7)*step(e7,x_19)*step(x_19,e8))))))));}vec4 freesurface_blue_3154355989(float x_35){const float e0=0.0;const vec4 v0=vec4(0.11764705882352941,0.01568627450980392,0.43137254901960786,1);const float e1=0.13;const vec4 v1=vec4(0.1843137254901961,0.054901960784313725,0.6901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.1607843137254902,0.17647058823529413,0.9254901960784314,1);const float e3=0.38;const vec4 v3=vec4(0.09803921568627451,0.38823529411764707,0.8313725490196079,1);const float e4=0.5;const vec4 v4=vec4(0.26666666666666666,0.5137254901960784,0.7843137254901961,1);const float e5=0.63;const vec4 v5=vec4(0.4470588235294118,0.611764705882353,0.7725490196078432,1);const float e6=0.75;const vec4 v6=vec4(0.615686274509804,0.7098039215686275,0.796078431372549,1);const float e7=0.88;const vec4 v7=vec4(0.7843137254901961,0.8156862745098039,0.8470588235294118,1);const float e8=1.0;const vec4 v8=vec4(0.9450980392156862,0.9294117647058824,0.9254901960784314,1);float a0=smoothstep(e0,e1,x_35);float a1=smoothstep(e1,e2,x_35);float a2=smoothstep(e2,e3,x_35);float a3=smoothstep(e3,e4,x_35);float a4=smoothstep(e4,e5,x_35);float a5=smoothstep(e5,e6,x_35);float a6=smoothstep(e6,e7,x_35);float a7=smoothstep(e7,e8,x_35);return max(mix(v0,v1,a0)*step(e0,x_35)*step(x_35,e1),max(mix(v1,v2,a1)*step(e1,x_35)*step(x_35,e2),max(mix(v2,v3,a2)*step(e2,x_35)*step(x_35,e3),max(mix(v3,v4,a3)*step(e3,x_35)*step(x_35,e4),max(mix(v4,v5,a4)*step(e4,x_35)*step(x_35,e5),max(mix(v5,v6,a5)*step(e5,x_35)*step(x_35,e6),max(mix(v6,v7,a6)*step(e6,x_35)*step(x_35,e7),mix(v7,v8,a7)*step(e7,x_35)*step(x_35,e8))))))));}vec4 freesurface_red_1679163293(float x_20){const float e0=0.0;const vec4 v0=vec4(0.23529411764705882,0.03529411764705882,0.07058823529411765,1);const float e1=0.13;const vec4 v1=vec4(0.39215686274509803,0.06666666666666667,0.10588235294117647,1);const float e2=0.25;const vec4 v2=vec4(0.5568627450980392,0.0784313725490196,0.11372549019607843,1);const float e3=0.38;const vec4 v3=vec4(0.6941176470588235,0.16862745098039217,0.10588235294117647,1);const float e4=0.5;const vec4 v4=vec4(0.7529411764705882,0.3411764705882353,0.24705882352941178,1);const float e5=0.63;const vec4 v5=vec4(0.803921568627451,0.49019607843137253,0.4117647058823529,1);const float e6=0.75;const vec4 v6=vec4(0.8470588235294118,0.6352941176470588,0.5803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.8901960784313725,0.7803921568627451,0.7568627450980392,1);const float e8=1.0;const vec4 v8=vec4(0.9450980392156862,0.9294117647058824,0.9254901960784314,1);float a0=smoothstep(e0,e1,x_20);float a1=smoothstep(e1,e2,x_20);float a2=smoothstep(e2,e3,x_20);float a3=smoothstep(e3,e4,x_20);float a4=smoothstep(e4,e5,x_20);float a5=smoothstep(e5,e6,x_20);float a6=smoothstep(e6,e7,x_20);float a7=smoothstep(e7,e8,x_20);return max(mix(v0,v1,a0)*step(e0,x_20)*step(x_20,e1),max(mix(v1,v2,a1)*step(e1,x_20)*step(x_20,e2),max(mix(v2,v3,a2)*step(e2,x_20)*step(x_20,e3),max(mix(v3,v4,a3)*step(e3,x_20)*step(x_20,e4),max(mix(v4,v5,a4)*step(e4,x_20)*step(x_20,e5),max(mix(v5,v6,a5)*step(e5,x_20)*step(x_20,e6),max(mix(v6,v7,a6)*step(e6,x_20)*step(x_20,e7),mix(v7,v8,a7)*step(e7,x_20)*step(x_20,e8))))))));}vec4 oxygen(float x_11){const float e0=0.0;const vec4 v0=vec4(0.25098039215686274,0.0196078431372549,0.0196078431372549,1);const float e1=0.13;const vec4 v1=vec4(0.41568627450980394,0.023529411764705882,0.058823529411764705,1);const float e2=0.25;const vec4 v2=vec4(0.5647058823529412,0.10196078431372549,0.027450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.6588235294117647,0.25098039215686274,0.011764705882352941,1);const float e4=0.5;const vec4 v4=vec4(0.7372549019607844,0.39215686274509803,0.01568627450980392,1);const float e5=0.63;const vec4 v5=vec4(0.807843137254902,0.5333333333333333,0.043137254901960784,1);const float e6=0.75;const vec4 v6=vec4(0.8627450980392157,0.6823529411764706,0.09803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.9058823529411765,0.8431372549019608,0.17254901960784313,1);const float e8=1.0;const vec4 v8=vec4(0.9725490196078431,0.996078431372549,0.4117647058823529,1);float a0=smoothstep(e0,e1,x_11);float a1=smoothstep(e1,e2,x_11);float a2=smoothstep(e2,e3,x_11);float a3=smoothstep(e3,e4,x_11);float a4=smoothstep(e4,e5,x_11);float a5=smoothstep(e5,e6,x_11);float a6=smoothstep(e6,e7,x_11);float a7=smoothstep(e7,e8,x_11);return max(mix(v0,v1,a0)*step(e0,x_11)*step(x_11,e1),max(mix(v1,v2,a1)*step(e1,x_11)*step(x_11,e2),max(mix(v2,v3,a2)*step(e2,x_11)*step(x_11,e3),max(mix(v3,v4,a3)*step(e3,x_11)*step(x_11,e4),max(mix(v4,v5,a4)*step(e4,x_11)*step(x_11,e5),max(mix(v5,v6,a5)*step(e5,x_11)*step(x_11,e6),max(mix(v6,v7,a6)*step(e6,x_11)*step(x_11,e7),mix(v7,v8,a7)*step(e7,x_11)*step(x_11,e8))))))));}vec4 par(float x_28){const float e0=0.0;const vec4 v0=vec4(0.2,0.0784313725490196,0.09411764705882353,1);const float e1=0.13;const vec4 v1=vec4(0.35294117647058826,0.12549019607843137,0.13725490196078433,1);const float e2=0.25;const vec4 v2=vec4(0.5058823529411764,0.17254901960784313,0.13333333333333333,1);const float e3=0.38;const vec4 v3=vec4(0.6235294117647059,0.26666666666666666,0.09803921568627451,1);const float e4=0.5;const vec4 v4=vec4(0.7137254901960784,0.38823529411764707,0.07450980392156863,1);const float e5=0.63;const vec4 v5=vec4(0.7803921568627451,0.5254901960784314,0.08627450980392157,1);const float e6=0.75;const vec4 v6=vec4(0.8313725490196079,0.6705882352941176,0.13725490196078433,1);const float e7=0.88;const vec4 v7=vec4(0.8666666666666667,0.8235294117647058,0.21176470588235294,1);const float e8=1.0;const vec4 v8=vec4(0.8823529411764706,0.9921568627450981,0.29411764705882354,1);float a0=smoothstep(e0,e1,x_28);float a1=smoothstep(e1,e2,x_28);float a2=smoothstep(e2,e3,x_28);float a3=smoothstep(e3,e4,x_28);float a4=smoothstep(e4,e5,x_28);float a5=smoothstep(e5,e6,x_28);float a6=smoothstep(e6,e7,x_28);float a7=smoothstep(e7,e8,x_28);return max(mix(v0,v1,a0)*step(e0,x_28)*step(x_28,e1),max(mix(v1,v2,a1)*step(e1,x_28)*step(x_28,e2),max(mix(v2,v3,a2)*step(e2,x_28)*step(x_28,e3),max(mix(v3,v4,a3)*step(e3,x_28)*step(x_28,e4),max(mix(v4,v5,a4)*step(e4,x_28)*step(x_28,e5),max(mix(v5,v6,a5)*step(e5,x_28)*step(x_28,e6),max(mix(v6,v7,a6)*step(e6,x_28)*step(x_28,e7),mix(v7,v8,a7)*step(e7,x_28)*step(x_28,e8))))))));}vec4 phase(float x_39){const float e0=0.0;const vec4 v0=vec4(0.5686274509803921,0.4117647058823529,0.07058823529411765,1);const float e1=0.13;const vec4 v1=vec4(0.7215686274509804,0.2784313725490196,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.7294117647058823,0.22745098039215686,0.45098039215686275,1);const float e3=0.38;const vec4 v3=vec4(0.6274509803921569,0.2784313725490196,0.7254901960784313,1);const float e4=0.5;const vec4 v4=vec4(0.43137254901960786,0.3803921568627451,0.8549019607843137,1);const float e5=0.63;const vec4 v5=vec4(0.19607843137254902,0.4823529411764706,0.6431372549019608,1);const float e6=0.75;const vec4 v6=vec4(0.12156862745098039,0.5137254901960784,0.43137254901960786,1);const float e7=0.88;const vec4 v7=vec4(0.30196078431372547,0.5058823529411764,0.13333333333333333,1);const float e8=1.0;const vec4 v8=vec4(0.5686274509803921,0.4117647058823529,0.07058823529411765,1);float a0=smoothstep(e0,e1,x_39);float a1=smoothstep(e1,e2,x_39);float a2=smoothstep(e2,e3,x_39);float a3=smoothstep(e3,e4,x_39);float a4=smoothstep(e4,e5,x_39);float a5=smoothstep(e5,e6,x_39);float a6=smoothstep(e6,e7,x_39);float a7=smoothstep(e7,e8,x_39);return max(mix(v0,v1,a0)*step(e0,x_39)*step(x_39,e1),max(mix(v1,v2,a1)*step(e1,x_39)*step(x_39,e2),max(mix(v2,v3,a2)*step(e2,x_39)*step(x_39,e3),max(mix(v3,v4,a3)*step(e3,x_39)*step(x_39,e4),max(mix(v4,v5,a4)*step(e4,x_39)*step(x_39,e5),max(mix(v5,v6,a5)*step(e5,x_39)*step(x_39,e6),max(mix(v6,v7,a6)*step(e6,x_39)*step(x_39,e7),mix(v7,v8,a7)*step(e7,x_39)*step(x_39,e8))))))));}vec4 salinity(float x_26){const float e0=0.0;const vec4 v0=vec4(0.16470588235294117,0.09411764705882353,0.4235294117647059,1);const float e1=0.13;const vec4 v1=vec4(0.12941176470588237,0.19607843137254902,0.6352941176470588,1);const float e2=0.25;const vec4 v2=vec4(0.058823529411764705,0.35294117647058826,0.5686274509803921,1);const float e3=0.38;const vec4 v3=vec4(0.1568627450980392,0.4627450980392157,0.5372549019607843,1);const float e4=0.5;const vec4 v4=vec4(0.23137254901960785,0.5725490196078431,0.5294117647058824,1);const float e5=0.63;const vec4 v5=vec4(0.30980392156862746,0.6862745098039216,0.49411764705882355,1);const float e6=0.75;const vec4 v6=vec4(0.47058823529411764,0.796078431372549,0.40784313725490196,1);const float e7=0.88;const vec4 v7=vec4(0.7568627450980392,0.8666666666666667,0.39215686274509803,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.9372549019607843,0.6039215686274509,1);float a0=smoothstep(e0,e1,x_26);float a1=smoothstep(e1,e2,x_26);float a2=smoothstep(e2,e3,x_26);float a3=smoothstep(e3,e4,x_26);float a4=smoothstep(e4,e5,x_26);float a5=smoothstep(e5,e6,x_26);float a6=smoothstep(e6,e7,x_26);float a7=smoothstep(e7,e8,x_26);return max(mix(v0,v1,a0)*step(e0,x_26)*step(x_26,e1),max(mix(v1,v2,a1)*step(e1,x_26)*step(x_26,e2),max(mix(v2,v3,a2)*step(e2,x_26)*step(x_26,e3),max(mix(v3,v4,a3)*step(e3,x_26)*step(x_26,e4),max(mix(v4,v5,a4)*step(e4,x_26)*step(x_26,e5),max(mix(v5,v6,a5)*step(e5,x_26)*step(x_26,e6),max(mix(v6,v7,a6)*step(e6,x_26)*step(x_26,e7),mix(v7,v8,a7)*step(e7,x_26)*step(x_26,e8))))))));}vec4 temperature(float x_8){const float e0=0.0;const vec4 v0=vec4(0.01568627450980392,0.13725490196078433,0.2,1);const float e1=0.13;const vec4 v1=vec4(0.09019607843137255,0.2,0.47843137254901963,1);const float e2=0.25;const vec4 v2=vec4(0.3333333333333333,0.23137254901960785,0.615686274509804,1);const float e3=0.38;const vec4 v3=vec4(0.5058823529411764,0.30980392156862746,0.5607843137254902,1);const float e4=0.5;const vec4 v4=vec4(0.6862745098039216,0.37254901960784315,0.5098039215686274,1);const float e5=0.63;const vec4 v5=vec4(0.8705882352941177,0.4392156862745098,0.396078431372549,1);const float e6=0.75;const vec4 v6=vec4(0.9764705882352941,0.5725490196078431,0.25882352941176473,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.7686274509803922,0.2549019607843137,1);const float e8=1.0;const vec4 v8=vec4(0.9098039215686274,0.9803921568627451,0.3568627450980392,1);float a0=smoothstep(e0,e1,x_8);float a1=smoothstep(e1,e2,x_8);float a2=smoothstep(e2,e3,x_8);float a3=smoothstep(e3,e4,x_8);float a4=smoothstep(e4,e5,x_8);float a5=smoothstep(e5,e6,x_8);float a6=smoothstep(e6,e7,x_8);float a7=smoothstep(e7,e8,x_8);return max(mix(v0,v1,a0)*step(e0,x_8)*step(x_8,e1),max(mix(v1,v2,a1)*step(e1,x_8)*step(x_8,e2),max(mix(v2,v3,a2)*step(e2,x_8)*step(x_8,e3),max(mix(v3,v4,a3)*step(e3,x_8)*step(x_8,e4),max(mix(v4,v5,a4)*step(e4,x_8)*step(x_8,e5),max(mix(v5,v6,a5)*step(e5,x_8)*step(x_8,e6),max(mix(v6,v7,a6)*step(e6,x_8)*step(x_8,e7),mix(v7,v8,a7)*step(e7,x_8)*step(x_8,e8))))))));}vec4 turbidity(float x_40){const float e0=0.0;const vec4 v0=vec4(0.13333333333333333,0.12156862745098039,0.10588235294117647,1);const float e1=0.13;const vec4 v1=vec4(0.2549019607843137,0.19607843137254902,0.1607843137254902,1);const float e2=0.25;const vec4 v2=vec4(0.3843137254901961,0.27058823529411763,0.20392156862745098,1);const float e3=0.38;const vec4 v3=vec4(0.5137254901960784,0.34901960784313724,0.2235294117647059,1);const float e4=0.5;const vec4 v4=vec4(0.6313725490196078,0.4392156862745098,0.23137254901960785,1);const float e5=0.63;const vec4 v5=vec4(0.7254901960784313,0.5490196078431373,0.25882352941176473,1);const float e6=0.75;const vec4 v6=vec4(0.792156862745098,0.6823529411764706,0.34509803921568627,1);const float e7=0.88;const vec4 v7=vec4(0.8470588235294118,0.8196078431372549,0.49411764705882355,1);const float e8=1.0;const vec4 v8=vec4(0.9137254901960784,0.9647058823529412,0.6705882352941176,1);float a0=smoothstep(e0,e1,x_40);float a1=smoothstep(e1,e2,x_40);float a2=smoothstep(e2,e3,x_40);float a3=smoothstep(e3,e4,x_40);float a4=smoothstep(e4,e5,x_40);float a5=smoothstep(e5,e6,x_40);float a6=smoothstep(e6,e7,x_40);float a7=smoothstep(e7,e8,x_40);return max(mix(v0,v1,a0)*step(e0,x_40)*step(x_40,e1),max(mix(v1,v2,a1)*step(e1,x_40)*step(x_40,e2),max(mix(v2,v3,a2)*step(e2,x_40)*step(x_40,e3),max(mix(v3,v4,a3)*step(e3,x_40)*step(x_40,e4),max(mix(v4,v5,a4)*step(e4,x_40)*step(x_40,e5),max(mix(v5,v6,a5)*step(e5,x_40)*step(x_40,e6),max(mix(v6,v7,a6)*step(e6,x_40)*step(x_40,e7),mix(v7,v8,a7)*step(e7,x_40)*step(x_40,e8))))))));}vec4 velocity_blue_297387650(float x_2){const float e0=0.0;const vec4 v0=vec4(0.06666666666666667,0.12549019607843137,0.25098039215686274,1);const float e1=0.13;const vec4 v1=vec4(0.13725490196078433,0.20392156862745098,0.4549019607843137,1);const float e2=0.25;const vec4 v2=vec4(0.11372549019607843,0.3176470588235294,0.611764705882353,1);const float e3=0.38;const vec4 v3=vec4(0.12156862745098039,0.44313725490196076,0.6352941176470588,1);const float e4=0.5;const vec4 v4=vec4(0.19607843137254902,0.5647058823529412,0.6627450980392157,1);const float e5=0.63;const vec4 v5=vec4(0.3411764705882353,0.6784313725490196,0.6901960784313725,1);const float e6=0.75;const vec4 v6=vec4(0.5843137254901961,0.7686274509803922,0.7411764705882353,1);const float e7=0.88;const vec4 v7=vec4(0.796078431372549,0.8666666666666667,0.8274509803921568,1);const float e8=1.0;const vec4 v8=vec4(0.996078431372549,0.984313725490196,0.9019607843137255,1);float a0=smoothstep(e0,e1,x_2);float a1=smoothstep(e1,e2,x_2);float a2=smoothstep(e2,e3,x_2);float a3=smoothstep(e3,e4,x_2);float a4=smoothstep(e4,e5,x_2);float a5=smoothstep(e5,e6,x_2);float a6=smoothstep(e6,e7,x_2);float a7=smoothstep(e7,e8,x_2);return max(mix(v0,v1,a0)*step(e0,x_2)*step(x_2,e1),max(mix(v1,v2,a1)*step(e1,x_2)*step(x_2,e2),max(mix(v2,v3,a2)*step(e2,x_2)*step(x_2,e3),max(mix(v3,v4,a3)*step(e3,x_2)*step(x_2,e4),max(mix(v4,v5,a4)*step(e4,x_2)*step(x_2,e5),max(mix(v5,v6,a5)*step(e5,x_2)*step(x_2,e6),max(mix(v6,v7,a6)*step(e6,x_2)*step(x_2,e7),mix(v7,v8,a7)*step(e7,x_2)*step(x_2,e8))))))));}vec4 velocity_green_2558432129(float x_27){const float e0=0.0;const vec4 v0=vec4(0.09019607843137255,0.13725490196078433,0.07450980392156863,1);const float e1=0.13;const vec4 v1=vec4(0.09411764705882353,0.25098039215686274,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.043137254901960784,0.37254901960784315,0.17647058823529413,1);const float e3=0.38;const vec4 v3=vec4(0.15294117647058825,0.4823529411764706,0.13725490196078433,1);const float e4=0.5;const vec4 v4=vec4(0.37254901960784315,0.5725490196078431,0.047058823529411764,1);const float e5=0.63;const vec4 v5=vec4(0.596078431372549,0.6470588235294118,0.07058823529411765,1);const float e6=0.75;const vec4 v6=vec4(0.788235294117647,0.7294117647058823,0.27058823529411763,1);const float e7=0.88;const vec4 v7=vec4(0.9137254901960784,0.8470588235294118,0.5372549019607843,1);const float e8=1.0;const vec4 v8=vec4(1,0.9921568627450981,0.803921568627451,1);float a0=smoothstep(e0,e1,x_27);float a1=smoothstep(e1,e2,x_27);float a2=smoothstep(e2,e3,x_27);float a3=smoothstep(e3,e4,x_27);float a4=smoothstep(e4,e5,x_27);float a5=smoothstep(e5,e6,x_27);float a6=smoothstep(e6,e7,x_27);float a7=smoothstep(e7,e8,x_27);return max(mix(v0,v1,a0)*step(e0,x_27)*step(x_27,e1),max(mix(v1,v2,a1)*step(e1,x_27)*step(x_27,e2),max(mix(v2,v3,a2)*step(e2,x_27)*step(x_27,e3),max(mix(v3,v4,a3)*step(e3,x_27)*step(x_27,e4),max(mix(v4,v5,a4)*step(e4,x_27)*step(x_27,e5),max(mix(v5,v6,a5)*step(e5,x_27)*step(x_27,e6),max(mix(v6,v7,a6)*step(e6,x_27)*step(x_27,e7),mix(v7,v8,a7)*step(e7,x_27)*step(x_27,e8))))))));}vec4 cubehelix(float x_37){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.07;const vec4 v1=vec4(0.08627450980392157,0.0196078431372549,0.23137254901960785,1);const float e2=0.13;const vec4 v2=vec4(0.23529411764705882,0.01568627450980392,0.4117647058823529,1);const float e3=0.2;const vec4 v3=vec4(0.42745098039215684,0.00392156862745098,0.5294117647058824,1);const float e4=0.27;const vec4 v4=vec4(0.6313725490196078,0,0.5764705882352941,1);const float e5=0.33;const vec4 v5=vec4(0.8235294117647058,0.00784313725490196,0.5568627450980392,1);const float e6=0.4;const vec4 v6=vec4(0.984313725490196,0.043137254901960784,0.4823529411764706,1);const float e7=0.47;const vec4 v7=vec4(1,0.11372549019607843,0.3803921568627451,1);const float e8=0.53;const vec4 v8=vec4(1,0.21176470588235294,0.27058823529411763,1);const float e9=0.6;const vec4 v9=vec4(1,0.3333333333333333,0.1803921568627451,1);const float e10=0.67;const vec4 v10=vec4(1,0.47058823529411764,0.13333333333333333,1);const float e11=0.73;const vec4 v11=vec4(1,0.615686274509804,0.1450980392156863,1);const float e12=0.8;const vec4 v12=vec4(0.9450980392156862,0.7490196078431373,0.2235294117647059,1);const float e13=0.87;const vec4 v13=vec4(0.8784313725490196,0.8627450980392157,0.36470588235294116,1);const float e14=0.93;const vec4 v14=vec4(0.8549019607843137,0.9450980392156862,0.5568627450980392,1);const float e15=1.0;const vec4 v15=vec4(0.8901960784313725,0.9921568627450981,0.7764705882352941,1);float a0=smoothstep(e0,e1,x_37);float a1=smoothstep(e1,e2,x_37);float a2=smoothstep(e2,e3,x_37);float a3=smoothstep(e3,e4,x_37);float a4=smoothstep(e4,e5,x_37);float a5=smoothstep(e5,e6,x_37);float a6=smoothstep(e6,e7,x_37);float a7=smoothstep(e7,e8,x_37);float a8=smoothstep(e8,e9,x_37);float a9=smoothstep(e9,e10,x_37);float a10=smoothstep(e10,e11,x_37);float a11=smoothstep(e11,e12,x_37);float a12=smoothstep(e12,e13,x_37);float a13=smoothstep(e13,e14,x_37);float a14=smoothstep(e14,e15,x_37);return max(mix(v0,v1,a0)*step(e0,x_37)*step(x_37,e1),max(mix(v1,v2,a1)*step(e1,x_37)*step(x_37,e2),max(mix(v2,v3,a2)*step(e2,x_37)*step(x_37,e3),max(mix(v3,v4,a3)*step(e3,x_37)*step(x_37,e4),max(mix(v4,v5,a4)*step(e4,x_37)*step(x_37,e5),max(mix(v5,v6,a5)*step(e5,x_37)*step(x_37,e6),max(mix(v6,v7,a6)*step(e6,x_37)*step(x_37,e7),max(mix(v7,v8,a7)*step(e7,x_37)*step(x_37,e8),max(mix(v8,v9,a8)*step(e8,x_37)*step(x_37,e9),max(mix(v9,v10,a9)*step(e9,x_37)*step(x_37,e10),max(mix(v10,v11,a10)*step(e10,x_37)*step(x_37,e11),max(mix(v11,v12,a11)*step(e11,x_37)*step(x_37,e12),max(mix(v12,v13,a12)*step(e12,x_37)*step(x_37,e13),max(mix(v13,v14,a13)*step(e13,x_37)*step(x_37,e14),mix(v14,v15,a14)*step(e14,x_37)*step(x_37,e15)))))))))))))));}vec4 apply_transparent_color_452471729(vec3 color,vec3 transparentColor,bool useTransparentColor,float opacity){return vec4(color,(color==transparentColor&&useTransparentColor)? 0. : opacity);}uniform float opacity;uniform bool useTransparentColor;vec4 colormap(float intensity){return vec4(apply_transparent_color_452471729(COLORMAP_FUNCTION(min(1.,intensity)).xyz,COLORMAP_FUNCTION(0.).xyz,useTransparentColor,opacity));}",inject:{"fs:DECKGL_MUTATE_COLOR":"\n float intensityCombo = 0.;\n intensityCombo += max(0.,intensity0);\n intensityCombo += max(0.,intensity1);\n intensityCombo += max(0.,intensity2);\n intensityCombo += max(0.,intensity3);\n intensityCombo += max(0.,intensity4);\n intensityCombo += max(0.,intensity5);\n rgba = colormap(intensityCombo);\n"}},io={colormap:{type:"string",value:"viridis",compare:!0},opacity:{type:"number",value:1,compare:!0},useTransparentColor:{type:"boolean",value:!1,compare:!0}},oo=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"getShaders",value:function(){var e;return{defines:{COLORMAP_FUNCTION:(null===this||void 0===this||null===(e=this.props)||void 0===e?void 0:e.colormap)||io.colormap.value},modules:[ro]}}},{key:"updateState",value:function(e){var t=e.props,n=e.oldProps,r=e.changeFlags,i=Object(c.a)(e,["props","oldProps","changeFlags"]);if(Object(C.a)(Object(I.a)(A.prototype),"updateState",this).call(this,Object(d.a)({props:t,oldProps:n,changeFlags:r},i)),t.colormap!==n.colormap){var o=this.context.gl;this.state.model&&(this.state.model.delete(),this.setState({model:this._getModel(o)}))}}},{key:"draw",value:function(){var e,t=this.props,A=t.useTransparentColor,n=void 0===A?io.useTransparentColor.value:A,r=t.opacity,i={opacity:void 0===r?io.opacity.value:r,useTransparentColor:n};null===(e=this.state.model)||void 0===e||e.setUniforms(i)}}]),A}(m.a);oo.extensionName="AdditiveColormapExtension",oo.defaultProps=io;var ao={pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:p.a.CARTESIAN,contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},selections:{type:"array",value:[],compare:!0},domain:{type:"array",value:[],compare:!0},viewportId:{type:"string",value:"",compare:!0},loader:{type:"object",value:{getRaster:function(){var e=Object(a.a)(o.a.mark((function e(){return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{data:[],height:0,width:0});case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),dtype:"Uint16"},compare:!0},onClick:{type:"function",value:null,compare:!0},onViewportLoad:{type:"function",value:null,compare:!0},interpolation:{type:"number",value:F.default.NEAREST,compare:!0},extensions:{type:"array",value:[new no],compare:!0}},so=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"finalizeState",value:function(){this.state.abortController.abort()}},{key:"updateState",value:function(e){var t=this,A=e.props,n=e.oldProps,r=A.loader!==n.loader,i=A.selections!==n.selections;if(r||i){var o=this.props,a=o.loader,s=o.selections,g=void 0===s?[]:s,c=o.onViewportLoad,u=new AbortController;this.setState({abortController:u});var l=u.signal,I=g.map((function(e){return a.getRaster({selection:e,signal:l})}));Promise.all(I).then((function(e){var A={data:e.map((function(e){return e.data})),width:e[0].width,height:e[0].height};Hi(a.shape)&&(A.data=A.data[0],A.data.length===A.width*A.height*3&&(A.format=F.default.RGB,A.dataFormat=F.default.RGB)),c&&c(A),t.setState(Object(d.a)({},A))})).catch((function(e){if("__vivSignalAborted"!==e)throw e}))}}},{key:"getPickingInfo",value:function(e){var t=e.info,A=e.sourceLayer;return t.sourceLayer=A,t.tile=A.props.tile,t}},{key:"renderLayers",value:function(){var e=this.props,t=e.loader,A=e.id,n=t.dtype,r=this.state,i=r.width,o=r.height,a=r.data;if(!i||!o)return null;var s=[0,o,i,0];if(Hi(t.shape)){var g=t.meta.photometricInterpretation,c=void 0===g?2:g;return new Oi(this.props,{image:this.state,photometricInterpretation:c,bounds:s,id:"image-sub-layer-".concat(s,"-").concat(A)})}return new Ni(this.props,{channelData:{data:a,height:o,width:i},bounds:s,id:"image-sub-layer-".concat(s,"-").concat(A),dtype:n})}}]),A}(v.a);so.layerName="ImageLayer",so.defaultProps=ao;var go={pickable:{type:"boolean",value:!0,compare:!0},onHover:{type:"function",value:null,compare:!1},contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},domain:{type:"array",value:[],compare:!0},viewportId:{type:"string",value:"",compare:!0},maxRequests:{type:"number",value:10,compare:!0},onClick:{type:"function",value:null,compare:!0},refinementStrategy:{type:"string",value:null,compare:!0},excludeBackground:{type:"boolean",value:!1,compare:!0},extensions:{type:"array",value:[new no],compare:!0}},co=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"renderLayers",value:function(){var e=this.props,t=e.loader,A=e.selections,n=e.opacity,r=e.viewportId,i=e.onTileError,s=e.onHover,g=e.id,c=e.onClick,u=e.modelMatrix,l=e.excludeBackground,I=e.refinementStrategy,C=t[0],h=C.tileSize,f=C.dtype,d=function(){var e=Object(a.a)(o.a.mark((function e(n){var r,i,a,s,g,c,u,l;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.x,i=n.y,a=n.z,s=n.signal,A&&0!==A.length){e.next=3;break}return e.abrupt("return",null);case 3:return g=Math.round(-a),c=function(e){var A={x:r,y:i,selection:e,signal:s};return t[g].getTile(A)},e.prev=5,e.next=8,Promise.all(A.map(c));case 8:if(u=e.sent,l={data:u.map((function(e){return e.data})),width:u[0].width,height:u[0].height},!Hi(t[g].shape)){e.next=14;break}return l.data=l.data[0],l.data.length===l.width*l.height*3&&(l.format=F.default.RGB,l.dataFormat=F.default.RGB),e.abrupt("return",l);case 14:return e.abrupt("return",l);case 17:if(e.prev=17,e.t0=e.catch(5),"__vivSignalAborted"!==e.t0){e.next=21;break}return e.abrupt("return",null);case 21:throw e.t0;case 22:case"end":return e.stop()}}),e,null,[[5,17]])})));return function(t){return e.apply(this,arguments)}}(),B=ji(t[0]),p=B.height,E=B.width,Q=new Ki(this.props,{id:"Tiled-Image-".concat(g),getTileData:d,dtype:f,tileSize:h,zoomOffset:Math.round(Math.log2(u?u.getScale()[0]:1)),extent:[0,0,E,p],minZoom:Math.round(-(t.length-1)),maxZoom:0,refinementStrategy:I||(1===n?"best-available":"no-overlap"),updateTriggers:{getTileData:[t,A]},onTileError:i||t[0].onTileError}),y=t[t.length-1],v="function"===typeof y.getRaster,m=u?u.clone():new S.Matrix4;return[v&&!l&&new so(this.props,{id:"Background-Image-".concat(g),loader:y,modelMatrix:m.scale(Math.pow(2,t.length-1)),visible:!r||this.context.viewport.id===r,onHover:s,onClick:c,interpolation:F.default.LINEAR,onViewportLoad:null}),Q]}}]),A}(v.a);co.layerName="MultiscaleImageLayer",co.defaultProps=go;var uo={pickable:{type:"boolean",value:!0,compare:!0},loader:{type:"object",value:{getRaster:function(){var e=Object(a.a)(o.a.mark((function e(){return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{data:[],height:0,width:0});case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),getRasterSize:function(){return{height:0,width:0}},dtype:"<u2"},compare:!0},id:{type:"string",value:"",compare:!0},boundingBox:{type:"array",value:[[0,0],[0,1],[1,1],[1,0]],compare:!0},boundingBoxColor:{type:"array",value:[255,0,0],compare:!0},boundingBoxOutlineWidth:{type:"number",value:1,compare:!0},viewportOutlineColor:{type:"array",value:[255,190,0],compare:!0},viewportOutlineWidth:{type:"number",value:2,compare:!0},overviewScale:{type:"number",value:1,compare:!0},zoom:{type:"number",value:1,compare:!0}},lo=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"renderLayers",value:function(){var e=this.props,t=e.loader,A=e.id,n=e.zoom,r=e.boundingBox,i=e.boundingBoxColor,o=e.boundingBoxOutlineWidth,a=e.viewportOutlineColor,s=e.viewportOutlineWidth,g=e.overviewScale,c=ji(t[0]),u=c.width,l=c.height,I=t.length-1,C=t[I];return[new so(this.props,{id:"viewport-".concat(A),modelMatrix:(new S.Matrix4).scale(Math.pow(2,I)*g),loader:C}),new L.a({id:"bounding-box-overview-".concat(A),coordinateSystem:p.a.CARTESIAN,data:[r],getPolygon:function(e){return e},filled:!1,stroked:!0,getLineColor:i,getLineWidth:o*Math.pow(2,n)}),new L.a({id:"viewport-outline-".concat(A),coordinateSystem:p.a.CARTESIAN,data:[[[0,0],[u*g,0],[u*g,l*g],[0,l*g]]],getPolygon:function(e){return e},filled:!1,stroked:!0,getLineColor:a,getLineWidth:s*Math.pow(2,n)})]}}]),A}(v.a);function Io(e){return"-#".concat(e,"#")}function Co(e){var t=(new b.a).makeViewport({viewState:e,height:e.height,width:e.width});return[t.unproject([0,0]),t.unproject([t.width,0]),t.unproject([t.width,t.height]),t.unproject([0,t.height])]}function ho(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=arguments.length>4?arguments[4]:void 0,i=Array.isArray(e)?e[0]:e,o=ji(i),a=o.width,s=o.height,g=i.shape[i.labels.indexOf("z")],c=Math.log2(Math.min(t.width/a,t.height/s))-A,u=Ri(i),l={target:(r||new S.Matrix4).transformPoint((n?u:new S.Matrix4).transformPoint([a/2,s/2,n?g/2:0])),zoom:c};return l}lo.layerName="OverviewLayer",lo.defaultProps=uo;var fo=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"renderLayers",value:function(){var e,t=this.props,A=t.id,n=t.unit,r=t.size,i=t.position,o=t.viewState,a=t.length,g=Co(o),c=o.zoom,u=.05*(g[2][0]-g[0][0]),l=Math.max(Math.pow(2,1.5-c),.007*(g[2][1]-g[0][1])),I=u*r,C=function(e,t,A){var n=e[2][0]-e[0][0];switch(t){case"bottom-right":return[e[2][1]-(e[2][1]-e[0][1])*A,e[2][0]-n*A];case"top-right":return[(e[2][1]-e[0][1])*A,e[2][0]-n*A];case"top-left":return[(e[2][1]-e[0][1])*A,n*A];case"bottom-left":return[e[2][1]-(e[2][1]-e[0][1])*A,n*A];default:throw new Error("Position ".concat(t," not found"))}}(g,i,a),h=Object(s.a)(C,2),f=h[0],d=h[1];return[new T.a({id:"scale-bar-length-".concat(A),coordinateSystem:p.a.CARTESIAN,data:[[[d,f],[d+u,f]]],getSourcePosition:function(e){return e[0]},getTargetPosition:function(e){return e[1]},getWidth:2,getColor:[220,220,220]}),new T.a({id:"scale-bar-height-left-".concat(A),coordinateSystem:p.a.CARTESIAN,data:[[[d,f-l],[d,f+l]]],getSourcePosition:function(e){return e[0]},getTargetPosition:function(e){return e[1]},getWidth:2,getColor:[220,220,220]}),new T.a({id:"scale-bar-height-right-".concat(A),coordinateSystem:p.a.CARTESIAN,data:[[[d+u,f-l],[d+u,f+l]]],getSourcePosition:function(e){return e[0]},getTargetPosition:function(e){return e[1]},getWidth:2,getColor:[220,220,220]}),new Z.a({id:"units-label-layer-".concat(A),coordinateSystem:p.a.CARTESIAN,data:[{text:String(I).slice(0,5).replace(/\.$/,"")+n,position:[d+.5*u,f+4*l]}],getColor:[220,220,220,255],getSize:12,fontFamily:"-apple-system, 'Helvetica Neue', Arial, sans-serif",sizeUnits:"meters",sizeScale:Math.pow(2,-c),characterSet:[].concat(Object(B.a)(n.split("")),Object(B.a)((e=10,Object(B.a)(Array(e).keys())).map((function(e){return String(e)}))),["."])})]}}]),A}(v.a);fo.layerName="ScaleBarLayer",fo.defaultProps={pickable:{type:"boolean",value:!0,compare:!0},viewState:{type:"object",value:{zoom:0,target:[0,0,0]},compare:!0},unit:{type:"string",value:"",compare:!0},size:{type:"number",value:1,compare:!0},position:{type:"string",value:"bottom-right",compare:!0},length:{type:"number",value:.085,compare:!0}};var Bo={name:"channel-intensity-module",fs:"#define GLSLIFY 1\nvec4 jet(float x_17){const float e0=0.0;const vec4 v0=vec4(0,0,0.5137254901960784,1);const float e1=0.125;const vec4 v1=vec4(0,0.23529411764705882,0.6666666666666666,1);const float e2=0.375;const vec4 v2=vec4(0.0196078431372549,1,1,1);const float e3=0.625;const vec4 v3=vec4(1,1,0,1);const float e4=0.875;const vec4 v4=vec4(0.9803921568627451,0,0,1);const float e5=1.0;const vec4 v5=vec4(0.5019607843137255,0,0,1);float a0=smoothstep(e0,e1,x_17);float a1=smoothstep(e1,e2,x_17);float a2=smoothstep(e2,e3,x_17);float a3=smoothstep(e3,e4,x_17);float a4=smoothstep(e4,e5,x_17);return max(mix(v0,v1,a0)*step(e0,x_17)*step(x_17,e1),max(mix(v1,v2,a1)*step(e1,x_17)*step(x_17,e2),max(mix(v2,v3,a2)*step(e2,x_17)*step(x_17,e3),max(mix(v3,v4,a3)*step(e3,x_17)*step(x_17,e4),mix(v4,v5,a4)*step(e4,x_17)*step(x_17,e5)))));}vec4 hsv(float x_18){const float e0=0.0;const vec4 v0=vec4(1,0,0,1);const float e1=0.169;const vec4 v1=vec4(0.9921568627450981,1,0.00784313725490196,1);const float e2=0.173;const vec4 v2=vec4(0.9686274509803922,1,0.00784313725490196,1);const float e3=0.337;const vec4 v3=vec4(0,0.9882352941176471,0.01568627450980392,1);const float e4=0.341;const vec4 v4=vec4(0,0.9882352941176471,0.0392156862745098,1);const float e5=0.506;const vec4 v5=vec4(0.00392156862745098,0.9764705882352941,1,1);const float e6=0.671;const vec4 v6=vec4(0.00784313725490196,0,0.9921568627450981,1);const float e7=0.675;const vec4 v7=vec4(0.03137254901960784,0,0.9921568627450981,1);const float e8=0.839;const vec4 v8=vec4(1,0,0.984313725490196,1);const float e9=0.843;const vec4 v9=vec4(1,0,0.9607843137254902,1);const float e10=1.0;const vec4 v10=vec4(1,0,0.023529411764705882,1);float a0=smoothstep(e0,e1,x_18);float a1=smoothstep(e1,e2,x_18);float a2=smoothstep(e2,e3,x_18);float a3=smoothstep(e3,e4,x_18);float a4=smoothstep(e4,e5,x_18);float a5=smoothstep(e5,e6,x_18);float a6=smoothstep(e6,e7,x_18);float a7=smoothstep(e7,e8,x_18);float a8=smoothstep(e8,e9,x_18);float a9=smoothstep(e9,e10,x_18);return max(mix(v0,v1,a0)*step(e0,x_18)*step(x_18,e1),max(mix(v1,v2,a1)*step(e1,x_18)*step(x_18,e2),max(mix(v2,v3,a2)*step(e2,x_18)*step(x_18,e3),max(mix(v3,v4,a3)*step(e3,x_18)*step(x_18,e4),max(mix(v4,v5,a4)*step(e4,x_18)*step(x_18,e5),max(mix(v5,v6,a5)*step(e5,x_18)*step(x_18,e6),max(mix(v6,v7,a6)*step(e6,x_18)*step(x_18,e7),max(mix(v7,v8,a7)*step(e7,x_18)*step(x_18,e8),max(mix(v8,v9,a8)*step(e8,x_18)*step(x_18,e9),mix(v9,v10,a9)*step(e9,x_18)*step(x_18,e10))))))))));}vec4 hot(float x_13){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.3;const vec4 v1=vec4(0.9019607843137255,0,0,1);const float e2=0.6;const vec4 v2=vec4(1,0.8235294117647058,0,1);const float e3=1.0;const vec4 v3=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_13);float a1=smoothstep(e1,e2,x_13);float a2=smoothstep(e2,e3,x_13);return max(mix(v0,v1,a0)*step(e0,x_13)*step(x_13,e1),max(mix(v1,v2,a1)*step(e1,x_13)*step(x_13,e2),mix(v2,v3,a2)*step(e2,x_13)*step(x_13,e3)));}vec4 cool(float x_24){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.13;const vec4 v1=vec4(0.4549019607843137,0,0.8549019607843137,1);const float e2=0.25;const vec4 v2=vec4(0.3843137254901961,0.2901960784313726,0.9294117647058824,1);const float e3=0.38;const vec4 v3=vec4(0.26666666666666666,0.5725490196078431,0.9058823529411765,1);const float e4=0.5;const vec4 v4=vec4(0,0.8,0.7725490196078432,1);const float e5=0.63;const vec4 v5=vec4(0,0.9686274509803922,0.5725490196078431,1);const float e6=0.75;const vec4 v6=vec4(0,1,0.34509803921568627,1);const float e7=0.88;const vec4 v7=vec4(0.1568627450980392,1,0.03137254901960784,1);const float e8=1.0;const vec4 v8=vec4(0.5764705882352941,1,0,1);float a0=smoothstep(e0,e1,x_24);float a1=smoothstep(e1,e2,x_24);float a2=smoothstep(e2,e3,x_24);float a3=smoothstep(e3,e4,x_24);float a4=smoothstep(e4,e5,x_24);float a5=smoothstep(e5,e6,x_24);float a6=smoothstep(e6,e7,x_24);float a7=smoothstep(e7,e8,x_24);return max(mix(v0,v1,a0)*step(e0,x_24)*step(x_24,e1),max(mix(v1,v2,a1)*step(e1,x_24)*step(x_24,e2),max(mix(v2,v3,a2)*step(e2,x_24)*step(x_24,e3),max(mix(v3,v4,a3)*step(e3,x_24)*step(x_24,e4),max(mix(v4,v5,a4)*step(e4,x_24)*step(x_24,e5),max(mix(v5,v6,a5)*step(e5,x_24)*step(x_24,e6),max(mix(v6,v7,a6)*step(e6,x_24)*step(x_24,e7),mix(v7,v8,a7)*step(e7,x_24)*step(x_24,e8))))))));}vec4 spring(float x_5){const float e0=0.0;const vec4 v0=vec4(1,0,1,1);const float e1=1.0;const vec4 v1=vec4(1,1,0,1);float a0=smoothstep(e0,e1,x_5);return mix(v0,v1,a0)*step(e0,x_5)*step(x_5,e1);}vec4 summer(float x_12){const float e0=0.0;const vec4 v0=vec4(0,0.5019607843137255,0.4,1);const float e1=1.0;const vec4 v1=vec4(1,1,0.4,1);float a0=smoothstep(e0,e1,x_12);return mix(v0,v1,a0)*step(e0,x_12)*step(x_12,e1);}vec4 autumn(float x_25){const float e0=0.0;const vec4 v0=vec4(1,0,0,1);const float e1=1.0;const vec4 v1=vec4(1,1,0,1);float a0=smoothstep(e0,e1,x_25);return mix(v0,v1,a0)*step(e0,x_25)*step(x_25,e1);}vec4 winter(float x_16){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=1.0;const vec4 v1=vec4(0,1,0.5019607843137255,1);float a0=smoothstep(e0,e1,x_16);return mix(v0,v1,a0)*step(e0,x_16)*step(x_16,e1);}vec4 bone(float x_15){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.376;const vec4 v1=vec4(0.32941176470588235,0.32941176470588235,0.4549019607843137,1);const float e2=0.753;const vec4 v2=vec4(0.6627450980392157,0.7843137254901961,0.7843137254901961,1);const float e3=1.0;const vec4 v3=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_15);float a1=smoothstep(e1,e2,x_15);float a2=smoothstep(e2,e3,x_15);return max(mix(v0,v1,a0)*step(e0,x_15)*step(x_15,e1),max(mix(v1,v2,a1)*step(e1,x_15)*step(x_15,e2),mix(v2,v3,a2)*step(e2,x_15)*step(x_15,e3)));}vec4 copper(float x_10){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.804;const vec4 v1=vec4(1,0.6274509803921569,0.4,1);const float e2=1.0;const vec4 v2=vec4(1,0.7803921568627451,0.4980392156862745,1);float a0=smoothstep(e0,e1,x_10);float a1=smoothstep(e1,e2,x_10);return max(mix(v0,v1,a0)*step(e0,x_10)*step(x_10,e1),mix(v1,v2,a1)*step(e1,x_10)*step(x_10,e2));}vec4 greys(float x_4){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=1.0;const vec4 v1=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_4);return mix(v0,v1,a0)*step(e0,x_4)*step(x_4,e1);}vec4 yignbu(float x_32){const float e0=0.0;const vec4 v0=vec4(0.03137254901960784,0.11372549019607843,0.34509803921568627,1);const float e1=0.125;const vec4 v1=vec4(0.1450980392156863,0.20392156862745098,0.5803921568627451,1);const float e2=0.25;const vec4 v2=vec4(0.13333333333333333,0.3686274509803922,0.6588235294117647,1);const float e3=0.375;const vec4 v3=vec4(0.11372549019607843,0.5686274509803921,0.7529411764705882,1);const float e4=0.5;const vec4 v4=vec4(0.2549019607843137,0.7137254901960784,0.7686274509803922,1);const float e5=0.625;const vec4 v5=vec4(0.4980392156862745,0.803921568627451,0.7333333333333333,1);const float e6=0.75;const vec4 v6=vec4(0.7803921568627451,0.9137254901960784,0.7058823529411765,1);const float e7=0.875;const vec4 v7=vec4(0.9294117647058824,0.9725490196078431,0.8509803921568627,1);const float e8=1.0;const vec4 v8=vec4(1,1,0.8509803921568627,1);float a0=smoothstep(e0,e1,x_32);float a1=smoothstep(e1,e2,x_32);float a2=smoothstep(e2,e3,x_32);float a3=smoothstep(e3,e4,x_32);float a4=smoothstep(e4,e5,x_32);float a5=smoothstep(e5,e6,x_32);float a6=smoothstep(e6,e7,x_32);float a7=smoothstep(e7,e8,x_32);return max(mix(v0,v1,a0)*step(e0,x_32)*step(x_32,e1),max(mix(v1,v2,a1)*step(e1,x_32)*step(x_32,e2),max(mix(v2,v3,a2)*step(e2,x_32)*step(x_32,e3),max(mix(v3,v4,a3)*step(e3,x_32)*step(x_32,e4),max(mix(v4,v5,a4)*step(e4,x_32)*step(x_32,e5),max(mix(v5,v6,a5)*step(e5,x_32)*step(x_32,e6),max(mix(v6,v7,a6)*step(e6,x_32)*step(x_32,e7),mix(v7,v8,a7)*step(e7,x_32)*step(x_32,e8))))))));}vec4 greens(float x_34){const float e0=0.0;const vec4 v0=vec4(0,0.26666666666666666,0.10588235294117647,1);const float e1=0.125;const vec4 v1=vec4(0,0.42745098039215684,0.17254901960784313,1);const float e2=0.25;const vec4 v2=vec4(0.13725490196078433,0.5450980392156862,0.27058823529411763,1);const float e3=0.375;const vec4 v3=vec4(0.2549019607843137,0.6705882352941176,0.36470588235294116,1);const float e4=0.5;const vec4 v4=vec4(0.4549019607843137,0.7686274509803922,0.4627450980392157,1);const float e5=0.625;const vec4 v5=vec4(0.6313725490196078,0.8509803921568627,0.6078431372549019,1);const float e6=0.75;const vec4 v6=vec4(0.7803921568627451,0.9137254901960784,0.7529411764705882,1);const float e7=0.875;const vec4 v7=vec4(0.8980392156862745,0.9607843137254902,0.8784313725490196,1);const float e8=1.0;const vec4 v8=vec4(0.9686274509803922,0.9882352941176471,0.9607843137254902,1);float a0=smoothstep(e0,e1,x_34);float a1=smoothstep(e1,e2,x_34);float a2=smoothstep(e2,e3,x_34);float a3=smoothstep(e3,e4,x_34);float a4=smoothstep(e4,e5,x_34);float a5=smoothstep(e5,e6,x_34);float a6=smoothstep(e6,e7,x_34);float a7=smoothstep(e7,e8,x_34);return max(mix(v0,v1,a0)*step(e0,x_34)*step(x_34,e1),max(mix(v1,v2,a1)*step(e1,x_34)*step(x_34,e2),max(mix(v2,v3,a2)*step(e2,x_34)*step(x_34,e3),max(mix(v3,v4,a3)*step(e3,x_34)*step(x_34,e4),max(mix(v4,v5,a4)*step(e4,x_34)*step(x_34,e5),max(mix(v5,v6,a5)*step(e5,x_34)*step(x_34,e6),max(mix(v6,v7,a6)*step(e6,x_34)*step(x_34,e7),mix(v7,v8,a7)*step(e7,x_34)*step(x_34,e8))))))));}vec4 yiorrd(float x_41){const float e0=0.0;const vec4 v0=vec4(0.5019607843137255,0,0.14901960784313725,1);const float e1=0.125;const vec4 v1=vec4(0.7411764705882353,0,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.8901960784313725,0.10196078431372549,0.10980392156862745,1);const float e3=0.375;const vec4 v3=vec4(0.9882352941176471,0.3058823529411765,0.16470588235294117,1);const float e4=0.5;const vec4 v4=vec4(0.9921568627450981,0.5529411764705883,0.23529411764705882,1);const float e5=0.625;const vec4 v5=vec4(0.996078431372549,0.6980392156862745,0.2980392156862745,1);const float e6=0.75;const vec4 v6=vec4(0.996078431372549,0.8509803921568627,0.4627450980392157,1);const float e7=0.875;const vec4 v7=vec4(1,0.9294117647058824,0.6274509803921569,1);const float e8=1.0;const vec4 v8=vec4(1,1,0.8,1);float a0=smoothstep(e0,e1,x_41);float a1=smoothstep(e1,e2,x_41);float a2=smoothstep(e2,e3,x_41);float a3=smoothstep(e3,e4,x_41);float a4=smoothstep(e4,e5,x_41);float a5=smoothstep(e5,e6,x_41);float a6=smoothstep(e6,e7,x_41);float a7=smoothstep(e7,e8,x_41);return max(mix(v0,v1,a0)*step(e0,x_41)*step(x_41,e1),max(mix(v1,v2,a1)*step(e1,x_41)*step(x_41,e2),max(mix(v2,v3,a2)*step(e2,x_41)*step(x_41,e3),max(mix(v3,v4,a3)*step(e3,x_41)*step(x_41,e4),max(mix(v4,v5,a4)*step(e4,x_41)*step(x_41,e5),max(mix(v5,v6,a5)*step(e5,x_41)*step(x_41,e6),max(mix(v6,v7,a6)*step(e6,x_41)*step(x_41,e7),mix(v7,v8,a7)*step(e7,x_41)*step(x_41,e8))))))));}vec4 bluered(float x_23){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=1.0;const vec4 v1=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_23);return mix(v0,v1,a0)*step(e0,x_23)*step(x_23,e1);}vec4 rdbu(float x_1){const float e0=0.0;const vec4 v0=vec4(0.0196078431372549,0.0392156862745098,0.6745098039215687,1);const float e1=0.35;const vec4 v1=vec4(0.41568627450980394,0.5372549019607843,0.9686274509803922,1);const float e2=0.5;const vec4 v2=vec4(0.7450980392156863,0.7450980392156863,0.7450980392156863,1);const float e3=0.6;const vec4 v3=vec4(0.8627450980392157,0.6666666666666666,0.5176470588235295,1);const float e4=0.7;const vec4 v4=vec4(0.9019607843137255,0.5686274509803921,0.35294117647058826,1);const float e5=1.0;const vec4 v5=vec4(0.6980392156862745,0.0392156862745098,0.10980392156862745,1);float a0=smoothstep(e0,e1,x_1);float a1=smoothstep(e1,e2,x_1);float a2=smoothstep(e2,e3,x_1);float a3=smoothstep(e3,e4,x_1);float a4=smoothstep(e4,e5,x_1);return max(mix(v0,v1,a0)*step(e0,x_1)*step(x_1,e1),max(mix(v1,v2,a1)*step(e1,x_1)*step(x_1,e2),max(mix(v2,v3,a2)*step(e2,x_1)*step(x_1,e3),max(mix(v3,v4,a3)*step(e3,x_1)*step(x_1,e4),mix(v4,v5,a4)*step(e4,x_1)*step(x_1,e5)))));}vec4 picnic(float x_42){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=0.1;const vec4 v1=vec4(0.2,0.6,1,1);const float e2=0.2;const vec4 v2=vec4(0.4,0.8,1,1);const float e3=0.3;const vec4 v3=vec4(0.6,0.8,1,1);const float e4=0.4;const vec4 v4=vec4(0.8,0.8,1,1);const float e5=0.5;const vec4 v5=vec4(1,1,1,1);const float e6=0.6;const vec4 v6=vec4(1,0.8,1,1);const float e7=0.7;const vec4 v7=vec4(1,0.6,1,1);const float e8=0.8;const vec4 v8=vec4(1,0.4,0.8,1);const float e9=0.9;const vec4 v9=vec4(1,0.4,0.4,1);const float e10=1.0;const vec4 v10=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_42);float a1=smoothstep(e1,e2,x_42);float a2=smoothstep(e2,e3,x_42);float a3=smoothstep(e3,e4,x_42);float a4=smoothstep(e4,e5,x_42);float a5=smoothstep(e5,e6,x_42);float a6=smoothstep(e6,e7,x_42);float a7=smoothstep(e7,e8,x_42);float a8=smoothstep(e8,e9,x_42);float a9=smoothstep(e9,e10,x_42);return max(mix(v0,v1,a0)*step(e0,x_42)*step(x_42,e1),max(mix(v1,v2,a1)*step(e1,x_42)*step(x_42,e2),max(mix(v2,v3,a2)*step(e2,x_42)*step(x_42,e3),max(mix(v3,v4,a3)*step(e3,x_42)*step(x_42,e4),max(mix(v4,v5,a4)*step(e4,x_42)*step(x_42,e5),max(mix(v5,v6,a5)*step(e5,x_42)*step(x_42,e6),max(mix(v6,v7,a6)*step(e6,x_42)*step(x_42,e7),max(mix(v7,v8,a7)*step(e7,x_42)*step(x_42,e8),max(mix(v8,v9,a8)*step(e8,x_42)*step(x_42,e9),mix(v9,v10,a9)*step(e9,x_42)*step(x_42,e10))))))))));}vec4 rainbow(float x_31){const float e0=0.0;const vec4 v0=vec4(0.5882352941176471,0,0.35294117647058826,1);const float e1=0.125;const vec4 v1=vec4(0,0,0.7843137254901961,1);const float e2=0.25;const vec4 v2=vec4(0,0.09803921568627451,1,1);const float e3=0.375;const vec4 v3=vec4(0,0.596078431372549,1,1);const float e4=0.5;const vec4 v4=vec4(0.17254901960784313,1,0.5882352941176471,1);const float e5=0.625;const vec4 v5=vec4(0.592156862745098,1,0,1);const float e6=0.75;const vec4 v6=vec4(1,0.9176470588235294,0,1);const float e7=0.875;const vec4 v7=vec4(1,0.43529411764705883,0,1);const float e8=1.0;const vec4 v8=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_31);float a1=smoothstep(e1,e2,x_31);float a2=smoothstep(e2,e3,x_31);float a3=smoothstep(e3,e4,x_31);float a4=smoothstep(e4,e5,x_31);float a5=smoothstep(e5,e6,x_31);float a6=smoothstep(e6,e7,x_31);float a7=smoothstep(e7,e8,x_31);return max(mix(v0,v1,a0)*step(e0,x_31)*step(x_31,e1),max(mix(v1,v2,a1)*step(e1,x_31)*step(x_31,e2),max(mix(v2,v3,a2)*step(e2,x_31)*step(x_31,e3),max(mix(v3,v4,a3)*step(e3,x_31)*step(x_31,e4),max(mix(v4,v5,a4)*step(e4,x_31)*step(x_31,e5),max(mix(v5,v6,a5)*step(e5,x_31)*step(x_31,e6),max(mix(v6,v7,a6)*step(e6,x_31)*step(x_31,e7),mix(v7,v8,a7)*step(e7,x_31)*step(x_31,e8))))))));}vec4 portland(float x_21){const float e0=0.0;const vec4 v0=vec4(0.047058823529411764,0.2,0.5137254901960784,1);const float e1=0.25;const vec4 v1=vec4(0.0392156862745098,0.5333333333333333,0.7294117647058823,1);const float e2=0.5;const vec4 v2=vec4(0.9490196078431372,0.8274509803921568,0.2196078431372549,1);const float e3=0.75;const vec4 v3=vec4(0.9490196078431372,0.5607843137254902,0.2196078431372549,1);const float e4=1.0;const vec4 v4=vec4(0.8509803921568627,0.11764705882352941,0.11764705882352941,1);float a0=smoothstep(e0,e1,x_21);float a1=smoothstep(e1,e2,x_21);float a2=smoothstep(e2,e3,x_21);float a3=smoothstep(e3,e4,x_21);return max(mix(v0,v1,a0)*step(e0,x_21)*step(x_21,e1),max(mix(v1,v2,a1)*step(e1,x_21)*step(x_21,e2),max(mix(v2,v3,a2)*step(e2,x_21)*step(x_21,e3),mix(v3,v4,a3)*step(e3,x_21)*step(x_21,e4))));}vec4 blackbody(float x_38){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.2;const vec4 v1=vec4(0.9019607843137255,0,0,1);const float e2=0.4;const vec4 v2=vec4(0.9019607843137255,0.8235294117647058,0,1);const float e3=0.7;const vec4 v3=vec4(1,1,1,1);const float e4=1.0;const vec4 v4=vec4(0.6274509803921569,0.7843137254901961,1,1);float a0=smoothstep(e0,e1,x_38);float a1=smoothstep(e1,e2,x_38);float a2=smoothstep(e2,e3,x_38);float a3=smoothstep(e3,e4,x_38);return max(mix(v0,v1,a0)*step(e0,x_38)*step(x_38,e1),max(mix(v1,v2,a1)*step(e1,x_38)*step(x_38,e2),max(mix(v2,v3,a2)*step(e2,x_38)*step(x_38,e3),mix(v3,v4,a3)*step(e3,x_38)*step(x_38,e4))));}vec4 earth(float x_29){const float e0=0.0;const vec4 v0=vec4(0,0,0.5098039215686274,1);const float e1=0.1;const vec4 v1=vec4(0,0.7058823529411765,0.7058823529411765,1);const float e2=0.2;const vec4 v2=vec4(0.1568627450980392,0.8235294117647058,0.1568627450980392,1);const float e3=0.4;const vec4 v3=vec4(0.9019607843137255,0.9019607843137255,0.19607843137254902,1);const float e4=0.6;const vec4 v4=vec4(0.47058823529411764,0.27450980392156865,0.0784313725490196,1);const float e5=1.0;const vec4 v5=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_29);float a1=smoothstep(e1,e2,x_29);float a2=smoothstep(e2,e3,x_29);float a3=smoothstep(e3,e4,x_29);float a4=smoothstep(e4,e5,x_29);return max(mix(v0,v1,a0)*step(e0,x_29)*step(x_29,e1),max(mix(v1,v2,a1)*step(e1,x_29)*step(x_29,e2),max(mix(v2,v3,a2)*step(e2,x_29)*step(x_29,e3),max(mix(v3,v4,a3)*step(e3,x_29)*step(x_29,e4),mix(v4,v5,a4)*step(e4,x_29)*step(x_29,e5)))));}vec4 electric(float x_9){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.15;const vec4 v1=vec4(0.11764705882352941,0,0.39215686274509803,1);const float e2=0.4;const vec4 v2=vec4(0.47058823529411764,0,0.39215686274509803,1);const float e3=0.6;const vec4 v3=vec4(0.6274509803921569,0.35294117647058826,0,1);const float e4=0.8;const vec4 v4=vec4(0.9019607843137255,0.7843137254901961,0,1);const float e5=1.0;const vec4 v5=vec4(1,0.9803921568627451,0.8627450980392157,1);float a0=smoothstep(e0,e1,x_9);float a1=smoothstep(e1,e2,x_9);float a2=smoothstep(e2,e3,x_9);float a3=smoothstep(e3,e4,x_9);float a4=smoothstep(e4,e5,x_9);return max(mix(v0,v1,a0)*step(e0,x_9)*step(x_9,e1),max(mix(v1,v2,a1)*step(e1,x_9)*step(x_9,e2),max(mix(v2,v3,a2)*step(e2,x_9)*step(x_9,e3),max(mix(v3,v4,a3)*step(e3,x_9)*step(x_9,e4),mix(v4,v5,a4)*step(e4,x_9)*step(x_9,e5)))));}vec4 alpha(float x_0){const float e0=0.0;const vec4 v0=vec4(1,1,1,0);const float e1=1.0;const vec4 v1=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_0);return mix(v0,v1,a0)*step(e0,x_0)*step(x_0,e1);}vec4 viridis(float x_22){const float e0=0.0;const vec4 v0=vec4(0.26666666666666666,0.00392156862745098,0.32941176470588235,1);const float e1=0.13;const vec4 v1=vec4(0.2784313725490196,0.17254901960784313,0.47843137254901963,1);const float e2=0.25;const vec4 v2=vec4(0.23137254901960785,0.3176470588235294,0.5450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.17254901960784313,0.44313725490196076,0.5568627450980392,1);const float e4=0.5;const vec4 v4=vec4(0.12941176470588237,0.5647058823529412,0.5529411764705883,1);const float e5=0.63;const vec4 v5=vec4(0.15294117647058825,0.6784313725490196,0.5058823529411764,1);const float e6=0.75;const vec4 v6=vec4(0.3607843137254902,0.7843137254901961,0.38823529411764707,1);const float e7=0.88;const vec4 v7=vec4(0.6666666666666666,0.8627450980392157,0.19607843137254902,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.9058823529411765,0.1450980392156863,1);float a0=smoothstep(e0,e1,x_22);float a1=smoothstep(e1,e2,x_22);float a2=smoothstep(e2,e3,x_22);float a3=smoothstep(e3,e4,x_22);float a4=smoothstep(e4,e5,x_22);float a5=smoothstep(e5,e6,x_22);float a6=smoothstep(e6,e7,x_22);float a7=smoothstep(e7,e8,x_22);return max(mix(v0,v1,a0)*step(e0,x_22)*step(x_22,e1),max(mix(v1,v2,a1)*step(e1,x_22)*step(x_22,e2),max(mix(v2,v3,a2)*step(e2,x_22)*step(x_22,e3),max(mix(v3,v4,a3)*step(e3,x_22)*step(x_22,e4),max(mix(v4,v5,a4)*step(e4,x_22)*step(x_22,e5),max(mix(v5,v6,a5)*step(e5,x_22)*step(x_22,e6),max(mix(v6,v7,a6)*step(e6,x_22)*step(x_22,e7),mix(v7,v8,a7)*step(e7,x_22)*step(x_22,e8))))))));}vec4 inferno(float x_30){const float e0=0.0;const vec4 v0=vec4(0,0,0.01568627450980392,1);const float e1=0.13;const vec4 v1=vec4(0.12156862745098039,0.047058823529411764,0.2823529411764706,1);const float e2=0.25;const vec4 v2=vec4(0.3333333333333333,0.058823529411764705,0.42745098039215684,1);const float e3=0.38;const vec4 v3=vec4(0.5333333333333333,0.13333333333333333,0.41568627450980394,1);const float e4=0.5;const vec4 v4=vec4(0.7294117647058823,0.21176470588235294,0.3333333333333333,1);const float e5=0.63;const vec4 v5=vec4(0.8901960784313725,0.34901960784313724,0.2,1);const float e6=0.75;const vec4 v6=vec4(0.9764705882352941,0.5490196078431373,0.0392156862745098,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.788235294117647,0.19607843137254902,1);const float e8=1.0;const vec4 v8=vec4(0.9882352941176471,1,0.6431372549019608,1);float a0=smoothstep(e0,e1,x_30);float a1=smoothstep(e1,e2,x_30);float a2=smoothstep(e2,e3,x_30);float a3=smoothstep(e3,e4,x_30);float a4=smoothstep(e4,e5,x_30);float a5=smoothstep(e5,e6,x_30);float a6=smoothstep(e6,e7,x_30);float a7=smoothstep(e7,e8,x_30);return max(mix(v0,v1,a0)*step(e0,x_30)*step(x_30,e1),max(mix(v1,v2,a1)*step(e1,x_30)*step(x_30,e2),max(mix(v2,v3,a2)*step(e2,x_30)*step(x_30,e3),max(mix(v3,v4,a3)*step(e3,x_30)*step(x_30,e4),max(mix(v4,v5,a4)*step(e4,x_30)*step(x_30,e5),max(mix(v5,v6,a5)*step(e5,x_30)*step(x_30,e6),max(mix(v6,v7,a6)*step(e6,x_30)*step(x_30,e7),mix(v7,v8,a7)*step(e7,x_30)*step(x_30,e8))))))));}vec4 magma(float x_33){const float e0=0.0;const vec4 v0=vec4(0,0,0.01568627450980392,1);const float e1=0.13;const vec4 v1=vec4(0.10980392156862745,0.06274509803921569,0.26666666666666666,1);const float e2=0.25;const vec4 v2=vec4(0.30980392156862746,0.07058823529411765,0.4823529411764706,1);const float e3=0.38;const vec4 v3=vec4(0.5058823529411764,0.1450980392156863,0.5058823529411764,1);const float e4=0.5;const vec4 v4=vec4(0.7098039215686275,0.21176470588235294,0.47843137254901963,1);const float e5=0.63;const vec4 v5=vec4(0.8980392156862745,0.3137254901960784,0.39215686274509803,1);const float e6=0.75;const vec4 v6=vec4(0.984313725490196,0.5294117647058824,0.3803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.996078431372549,0.7607843137254902,0.5294117647058824,1);const float e8=1.0;const vec4 v8=vec4(0.9882352941176471,0.9921568627450981,0.7490196078431373,1);float a0=smoothstep(e0,e1,x_33);float a1=smoothstep(e1,e2,x_33);float a2=smoothstep(e2,e3,x_33);float a3=smoothstep(e3,e4,x_33);float a4=smoothstep(e4,e5,x_33);float a5=smoothstep(e5,e6,x_33);float a6=smoothstep(e6,e7,x_33);float a7=smoothstep(e7,e8,x_33);return max(mix(v0,v1,a0)*step(e0,x_33)*step(x_33,e1),max(mix(v1,v2,a1)*step(e1,x_33)*step(x_33,e2),max(mix(v2,v3,a2)*step(e2,x_33)*step(x_33,e3),max(mix(v3,v4,a3)*step(e3,x_33)*step(x_33,e4),max(mix(v4,v5,a4)*step(e4,x_33)*step(x_33,e5),max(mix(v5,v6,a5)*step(e5,x_33)*step(x_33,e6),max(mix(v6,v7,a6)*step(e6,x_33)*step(x_33,e7),mix(v7,v8,a7)*step(e7,x_33)*step(x_33,e8))))))));}vec4 plasma(float x_3){const float e0=0.0;const vec4 v0=vec4(0.050980392156862744,0.03137254901960784,0.5294117647058824,1);const float e1=0.13;const vec4 v1=vec4(0.29411764705882354,0.011764705882352941,0.6313725490196078,1);const float e2=0.25;const vec4 v2=vec4(0.49019607843137253,0.011764705882352941,0.6588235294117647,1);const float e3=0.38;const vec4 v3=vec4(0.6588235294117647,0.13333333333333333,0.5882352941176471,1);const float e4=0.5;const vec4 v4=vec4(0.796078431372549,0.27450980392156865,0.4745098039215686,1);const float e5=0.63;const vec4 v5=vec4(0.8980392156862745,0.4196078431372549,0.36470588235294116,1);const float e6=0.75;const vec4 v6=vec4(0.9725490196078431,0.5803921568627451,0.2549019607843137,1);const float e7=0.88;const vec4 v7=vec4(0.9921568627450981,0.7647058823529411,0.1568627450980392,1);const float e8=1.0;const vec4 v8=vec4(0.9411764705882353,0.9764705882352941,0.12941176470588237,1);float a0=smoothstep(e0,e1,x_3);float a1=smoothstep(e1,e2,x_3);float a2=smoothstep(e2,e3,x_3);float a3=smoothstep(e3,e4,x_3);float a4=smoothstep(e4,e5,x_3);float a5=smoothstep(e5,e6,x_3);float a6=smoothstep(e6,e7,x_3);float a7=smoothstep(e7,e8,x_3);return max(mix(v0,v1,a0)*step(e0,x_3)*step(x_3,e1),max(mix(v1,v2,a1)*step(e1,x_3)*step(x_3,e2),max(mix(v2,v3,a2)*step(e2,x_3)*step(x_3,e3),max(mix(v3,v4,a3)*step(e3,x_3)*step(x_3,e4),max(mix(v4,v5,a4)*step(e4,x_3)*step(x_3,e5),max(mix(v5,v6,a5)*step(e5,x_3)*step(x_3,e6),max(mix(v6,v7,a6)*step(e6,x_3)*step(x_3,e7),mix(v7,v8,a7)*step(e7,x_3)*step(x_3,e8))))))));}vec4 warm(float x_43){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.13;const vec4 v1=vec4(0.6745098039215687,0,0.7333333333333333,1);const float e2=0.25;const vec4 v2=vec4(0.8588235294117647,0,0.6666666666666666,1);const float e3=0.38;const vec4 v3=vec4(1,0,0.5098039215686274,1);const float e4=0.5;const vec4 v4=vec4(1,0.24705882352941178,0.2901960784313726,1);const float e5=0.63;const vec4 v5=vec4(1,0.4823529411764706,0,1);const float e6=0.75;const vec4 v6=vec4(0.9176470588235294,0.6901960784313725,0,1);const float e7=0.88;const vec4 v7=vec4(0.7450980392156863,0.8941176470588236,0,1);const float e8=1.0;const vec4 v8=vec4(0.5764705882352941,1,0,1);float a0=smoothstep(e0,e1,x_43);float a1=smoothstep(e1,e2,x_43);float a2=smoothstep(e2,e3,x_43);float a3=smoothstep(e3,e4,x_43);float a4=smoothstep(e4,e5,x_43);float a5=smoothstep(e5,e6,x_43);float a6=smoothstep(e6,e7,x_43);float a7=smoothstep(e7,e8,x_43);return max(mix(v0,v1,a0)*step(e0,x_43)*step(x_43,e1),max(mix(v1,v2,a1)*step(e1,x_43)*step(x_43,e2),max(mix(v2,v3,a2)*step(e2,x_43)*step(x_43,e3),max(mix(v3,v4,a3)*step(e3,x_43)*step(x_43,e4),max(mix(v4,v5,a4)*step(e4,x_43)*step(x_43,e5),max(mix(v5,v6,a5)*step(e5,x_43)*step(x_43,e6),max(mix(v6,v7,a6)*step(e6,x_43)*step(x_43,e7),mix(v7,v8,a7)*step(e7,x_43)*step(x_43,e8))))))));}vec4 rainbow_soft_1310269270(float x_14){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.1;const vec4 v1=vec4(0.7803921568627451,0,0.7058823529411765,1);const float e2=0.2;const vec4 v2=vec4(1,0,0.4745098039215686,1);const float e3=0.3;const vec4 v3=vec4(1,0.4235294117647059,0,1);const float e4=0.4;const vec4 v4=vec4(0.8705882352941177,0.7607843137254902,0,1);const float e5=0.5;const vec4 v5=vec4(0.5882352941176471,1,0,1);const float e6=0.6;const vec4 v6=vec4(0,1,0.21568627450980393,1);const float e7=0.7;const vec4 v7=vec4(0,0.9647058823529412,0.5882352941176471,1);const float e8=0.8;const vec4 v8=vec4(0.19607843137254902,0.6549019607843137,0.8705882352941177,1);const float e9=0.9;const vec4 v9=vec4(0.403921568627451,0.2,0.9215686274509803,1);const float e10=1.0;const vec4 v10=vec4(0.48627450980392156,0,0.7294117647058823,1);float a0=smoothstep(e0,e1,x_14);float a1=smoothstep(e1,e2,x_14);float a2=smoothstep(e2,e3,x_14);float a3=smoothstep(e3,e4,x_14);float a4=smoothstep(e4,e5,x_14);float a5=smoothstep(e5,e6,x_14);float a6=smoothstep(e6,e7,x_14);float a7=smoothstep(e7,e8,x_14);float a8=smoothstep(e8,e9,x_14);float a9=smoothstep(e9,e10,x_14);return max(mix(v0,v1,a0)*step(e0,x_14)*step(x_14,e1),max(mix(v1,v2,a1)*step(e1,x_14)*step(x_14,e2),max(mix(v2,v3,a2)*step(e2,x_14)*step(x_14,e3),max(mix(v3,v4,a3)*step(e3,x_14)*step(x_14,e4),max(mix(v4,v5,a4)*step(e4,x_14)*step(x_14,e5),max(mix(v5,v6,a5)*step(e5,x_14)*step(x_14,e6),max(mix(v6,v7,a6)*step(e6,x_14)*step(x_14,e7),max(mix(v7,v8,a7)*step(e7,x_14)*step(x_14,e8),max(mix(v8,v9,a8)*step(e8,x_14)*step(x_14,e9),mix(v9,v10,a9)*step(e9,x_14)*step(x_14,e10))))))))));}vec4 bathymetry(float x_36){const float e0=0.0;const vec4 v0=vec4(0.1568627450980392,0.10196078431372549,0.17254901960784313,1);const float e1=0.13;const vec4 v1=vec4(0.23137254901960785,0.19215686274509805,0.35294117647058826,1);const float e2=0.25;const vec4 v2=vec4(0.25098039215686274,0.2980392156862745,0.5450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.24705882352941178,0.43137254901960786,0.592156862745098,1);const float e4=0.5;const vec4 v4=vec4(0.2823529411764706,0.5568627450980392,0.6196078431372549,1);const float e5=0.63;const vec4 v5=vec4(0.3333333333333333,0.6823529411764706,0.6392156862745098,1);const float e6=0.75;const vec4 v6=vec4(0.47058823529411764,0.807843137254902,0.6392156862745098,1);const float e7=0.88;const vec4 v7=vec4(0.7333333333333333,0.9019607843137255,0.6745098039215687,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.996078431372549,0.8,1);float a0=smoothstep(e0,e1,x_36);float a1=smoothstep(e1,e2,x_36);float a2=smoothstep(e2,e3,x_36);float a3=smoothstep(e3,e4,x_36);float a4=smoothstep(e4,e5,x_36);float a5=smoothstep(e5,e6,x_36);float a6=smoothstep(e6,e7,x_36);float a7=smoothstep(e7,e8,x_36);return max(mix(v0,v1,a0)*step(e0,x_36)*step(x_36,e1),max(mix(v1,v2,a1)*step(e1,x_36)*step(x_36,e2),max(mix(v2,v3,a2)*step(e2,x_36)*step(x_36,e3),max(mix(v3,v4,a3)*step(e3,x_36)*step(x_36,e4),max(mix(v4,v5,a4)*step(e4,x_36)*step(x_36,e5),max(mix(v5,v6,a5)*step(e5,x_36)*step(x_36,e6),max(mix(v6,v7,a6)*step(e6,x_36)*step(x_36,e7),mix(v7,v8,a7)*step(e7,x_36)*step(x_36,e8))))))));}vec4 cdom(float x_7){const float e0=0.0;const vec4 v0=vec4(0.1843137254901961,0.058823529411764705,0.24313725490196078,1);const float e1=0.13;const vec4 v1=vec4(0.3411764705882353,0.09019607843137255,0.33725490196078434,1);const float e2=0.25;const vec4 v2=vec4(0.5098039215686274,0.10980392156862745,0.38823529411764707,1);const float e3=0.38;const vec4 v3=vec4(0.6705882352941176,0.1607843137254902,0.3764705882352941,1);const float e4=0.5;const vec4 v4=vec4(0.807843137254902,0.2627450980392157,0.33725490196078434,1);const float e5=0.63;const vec4 v5=vec4(0.9019607843137255,0.41568627450980394,0.32941176470588235,1);const float e6=0.75;const vec4 v6=vec4(0.9490196078431372,0.5843137254901961,0.403921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.7568627450980392,0.5294117647058824,1);const float e8=1.0;const vec4 v8=vec4(0.996078431372549,0.9294117647058824,0.6901960784313725,1);float a0=smoothstep(e0,e1,x_7);float a1=smoothstep(e1,e2,x_7);float a2=smoothstep(e2,e3,x_7);float a3=smoothstep(e3,e4,x_7);float a4=smoothstep(e4,e5,x_7);float a5=smoothstep(e5,e6,x_7);float a6=smoothstep(e6,e7,x_7);float a7=smoothstep(e7,e8,x_7);return max(mix(v0,v1,a0)*step(e0,x_7)*step(x_7,e1),max(mix(v1,v2,a1)*step(e1,x_7)*step(x_7,e2),max(mix(v2,v3,a2)*step(e2,x_7)*step(x_7,e3),max(mix(v3,v4,a3)*step(e3,x_7)*step(x_7,e4),max(mix(v4,v5,a4)*step(e4,x_7)*step(x_7,e5),max(mix(v5,v6,a5)*step(e5,x_7)*step(x_7,e6),max(mix(v6,v7,a6)*step(e6,x_7)*step(x_7,e7),mix(v7,v8,a7)*step(e7,x_7)*step(x_7,e8))))))));}vec4 chlorophyll(float x_6){const float e0=0.0;const vec4 v0=vec4(0.07058823529411765,0.1411764705882353,0.0784313725490196,1);const float e1=0.13;const vec4 v1=vec4(0.09803921568627451,0.24705882352941178,0.1607843137254902,1);const float e2=0.25;const vec4 v2=vec4(0.09411764705882353,0.3568627450980392,0.23137254901960785,1);const float e3=0.38;const vec4 v3=vec4(0.050980392156862744,0.4666666666666667,0.2823529411764706,1);const float e4=0.5;const vec4 v4=vec4(0.07058823529411765,0.5803921568627451,0.3137254901960784,1);const float e5=0.63;const vec4 v5=vec4(0.3137254901960784,0.6784313725490196,0.34901960784313724,1);const float e6=0.75;const vec4 v6=vec4(0.5176470588235295,0.7686274509803922,0.47843137254901963,1);const float e7=0.88;const vec4 v7=vec4(0.6862745098039216,0.8666666666666667,0.6352941176470588,1);const float e8=1.0;const vec4 v8=vec4(0.8431372549019608,0.9764705882352941,0.8156862745098039,1);float a0=smoothstep(e0,e1,x_6);float a1=smoothstep(e1,e2,x_6);float a2=smoothstep(e2,e3,x_6);float a3=smoothstep(e3,e4,x_6);float a4=smoothstep(e4,e5,x_6);float a5=smoothstep(e5,e6,x_6);float a6=smoothstep(e6,e7,x_6);float a7=smoothstep(e7,e8,x_6);return max(mix(v0,v1,a0)*step(e0,x_6)*step(x_6,e1),max(mix(v1,v2,a1)*step(e1,x_6)*step(x_6,e2),max(mix(v2,v3,a2)*step(e2,x_6)*step(x_6,e3),max(mix(v3,v4,a3)*step(e3,x_6)*step(x_6,e4),max(mix(v4,v5,a4)*step(e4,x_6)*step(x_6,e5),max(mix(v5,v6,a5)*step(e5,x_6)*step(x_6,e6),max(mix(v6,v7,a6)*step(e6,x_6)*step(x_6,e7),mix(v7,v8,a7)*step(e7,x_6)*step(x_6,e8))))))));}vec4 density(float x_19){const float e0=0.0;const vec4 v0=vec4(0.21176470588235294,0.054901960784313725,0.1411764705882353,1);const float e1=0.13;const vec4 v1=vec4(0.34901960784313724,0.09019607843137255,0.3137254901960784,1);const float e2=0.25;const vec4 v2=vec4(0.43137254901960786,0.17647058823529413,0.5176470588235295,1);const float e3=0.38;const vec4 v3=vec4(0.47058823529411764,0.30196078431372547,0.6980392156862745,1);const float e4=0.5;const vec4 v4=vec4(0.47058823529411764,0.44313725490196076,0.8352941176470589,1);const float e5=0.63;const vec4 v5=vec4(0.45098039215686275,0.592156862745098,0.8941176470588236,1);const float e6=0.75;const vec4 v6=vec4(0.5254901960784314,0.7254901960784313,0.8901960784313725,1);const float e7=0.88;const vec4 v7=vec4(0.6941176470588235,0.8392156862745098,0.8901960784313725,1);const float e8=1.0;const vec4 v8=vec4(0.9019607843137255,0.9450980392156862,0.9450980392156862,1);float a0=smoothstep(e0,e1,x_19);float a1=smoothstep(e1,e2,x_19);float a2=smoothstep(e2,e3,x_19);float a3=smoothstep(e3,e4,x_19);float a4=smoothstep(e4,e5,x_19);float a5=smoothstep(e5,e6,x_19);float a6=smoothstep(e6,e7,x_19);float a7=smoothstep(e7,e8,x_19);return max(mix(v0,v1,a0)*step(e0,x_19)*step(x_19,e1),max(mix(v1,v2,a1)*step(e1,x_19)*step(x_19,e2),max(mix(v2,v3,a2)*step(e2,x_19)*step(x_19,e3),max(mix(v3,v4,a3)*step(e3,x_19)*step(x_19,e4),max(mix(v4,v5,a4)*step(e4,x_19)*step(x_19,e5),max(mix(v5,v6,a5)*step(e5,x_19)*step(x_19,e6),max(mix(v6,v7,a6)*step(e6,x_19)*step(x_19,e7),mix(v7,v8,a7)*step(e7,x_19)*step(x_19,e8))))))));}vec4 freesurface_blue_3154355989(float x_35){const float e0=0.0;const vec4 v0=vec4(0.11764705882352941,0.01568627450980392,0.43137254901960786,1);const float e1=0.13;const vec4 v1=vec4(0.1843137254901961,0.054901960784313725,0.6901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.1607843137254902,0.17647058823529413,0.9254901960784314,1);const float e3=0.38;const vec4 v3=vec4(0.09803921568627451,0.38823529411764707,0.8313725490196079,1);const float e4=0.5;const vec4 v4=vec4(0.26666666666666666,0.5137254901960784,0.7843137254901961,1);const float e5=0.63;const vec4 v5=vec4(0.4470588235294118,0.611764705882353,0.7725490196078432,1);const float e6=0.75;const vec4 v6=vec4(0.615686274509804,0.7098039215686275,0.796078431372549,1);const float e7=0.88;const vec4 v7=vec4(0.7843137254901961,0.8156862745098039,0.8470588235294118,1);const float e8=1.0;const vec4 v8=vec4(0.9450980392156862,0.9294117647058824,0.9254901960784314,1);float a0=smoothstep(e0,e1,x_35);float a1=smoothstep(e1,e2,x_35);float a2=smoothstep(e2,e3,x_35);float a3=smoothstep(e3,e4,x_35);float a4=smoothstep(e4,e5,x_35);float a5=smoothstep(e5,e6,x_35);float a6=smoothstep(e6,e7,x_35);float a7=smoothstep(e7,e8,x_35);return max(mix(v0,v1,a0)*step(e0,x_35)*step(x_35,e1),max(mix(v1,v2,a1)*step(e1,x_35)*step(x_35,e2),max(mix(v2,v3,a2)*step(e2,x_35)*step(x_35,e3),max(mix(v3,v4,a3)*step(e3,x_35)*step(x_35,e4),max(mix(v4,v5,a4)*step(e4,x_35)*step(x_35,e5),max(mix(v5,v6,a5)*step(e5,x_35)*step(x_35,e6),max(mix(v6,v7,a6)*step(e6,x_35)*step(x_35,e7),mix(v7,v8,a7)*step(e7,x_35)*step(x_35,e8))))))));}vec4 freesurface_red_1679163293(float x_20){const float e0=0.0;const vec4 v0=vec4(0.23529411764705882,0.03529411764705882,0.07058823529411765,1);const float e1=0.13;const vec4 v1=vec4(0.39215686274509803,0.06666666666666667,0.10588235294117647,1);const float e2=0.25;const vec4 v2=vec4(0.5568627450980392,0.0784313725490196,0.11372549019607843,1);const float e3=0.38;const vec4 v3=vec4(0.6941176470588235,0.16862745098039217,0.10588235294117647,1);const float e4=0.5;const vec4 v4=vec4(0.7529411764705882,0.3411764705882353,0.24705882352941178,1);const float e5=0.63;const vec4 v5=vec4(0.803921568627451,0.49019607843137253,0.4117647058823529,1);const float e6=0.75;const vec4 v6=vec4(0.8470588235294118,0.6352941176470588,0.5803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.8901960784313725,0.7803921568627451,0.7568627450980392,1);const float e8=1.0;const vec4 v8=vec4(0.9450980392156862,0.9294117647058824,0.9254901960784314,1);float a0=smoothstep(e0,e1,x_20);float a1=smoothstep(e1,e2,x_20);float a2=smoothstep(e2,e3,x_20);float a3=smoothstep(e3,e4,x_20);float a4=smoothstep(e4,e5,x_20);float a5=smoothstep(e5,e6,x_20);float a6=smoothstep(e6,e7,x_20);float a7=smoothstep(e7,e8,x_20);return max(mix(v0,v1,a0)*step(e0,x_20)*step(x_20,e1),max(mix(v1,v2,a1)*step(e1,x_20)*step(x_20,e2),max(mix(v2,v3,a2)*step(e2,x_20)*step(x_20,e3),max(mix(v3,v4,a3)*step(e3,x_20)*step(x_20,e4),max(mix(v4,v5,a4)*step(e4,x_20)*step(x_20,e5),max(mix(v5,v6,a5)*step(e5,x_20)*step(x_20,e6),max(mix(v6,v7,a6)*step(e6,x_20)*step(x_20,e7),mix(v7,v8,a7)*step(e7,x_20)*step(x_20,e8))))))));}vec4 oxygen(float x_11){const float e0=0.0;const vec4 v0=vec4(0.25098039215686274,0.0196078431372549,0.0196078431372549,1);const float e1=0.13;const vec4 v1=vec4(0.41568627450980394,0.023529411764705882,0.058823529411764705,1);const float e2=0.25;const vec4 v2=vec4(0.5647058823529412,0.10196078431372549,0.027450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.6588235294117647,0.25098039215686274,0.011764705882352941,1);const float e4=0.5;const vec4 v4=vec4(0.7372549019607844,0.39215686274509803,0.01568627450980392,1);const float e5=0.63;const vec4 v5=vec4(0.807843137254902,0.5333333333333333,0.043137254901960784,1);const float e6=0.75;const vec4 v6=vec4(0.8627450980392157,0.6823529411764706,0.09803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.9058823529411765,0.8431372549019608,0.17254901960784313,1);const float e8=1.0;const vec4 v8=vec4(0.9725490196078431,0.996078431372549,0.4117647058823529,1);float a0=smoothstep(e0,e1,x_11);float a1=smoothstep(e1,e2,x_11);float a2=smoothstep(e2,e3,x_11);float a3=smoothstep(e3,e4,x_11);float a4=smoothstep(e4,e5,x_11);float a5=smoothstep(e5,e6,x_11);float a6=smoothstep(e6,e7,x_11);float a7=smoothstep(e7,e8,x_11);return max(mix(v0,v1,a0)*step(e0,x_11)*step(x_11,e1),max(mix(v1,v2,a1)*step(e1,x_11)*step(x_11,e2),max(mix(v2,v3,a2)*step(e2,x_11)*step(x_11,e3),max(mix(v3,v4,a3)*step(e3,x_11)*step(x_11,e4),max(mix(v4,v5,a4)*step(e4,x_11)*step(x_11,e5),max(mix(v5,v6,a5)*step(e5,x_11)*step(x_11,e6),max(mix(v6,v7,a6)*step(e6,x_11)*step(x_11,e7),mix(v7,v8,a7)*step(e7,x_11)*step(x_11,e8))))))));}vec4 par(float x_28){const float e0=0.0;const vec4 v0=vec4(0.2,0.0784313725490196,0.09411764705882353,1);const float e1=0.13;const vec4 v1=vec4(0.35294117647058826,0.12549019607843137,0.13725490196078433,1);const float e2=0.25;const vec4 v2=vec4(0.5058823529411764,0.17254901960784313,0.13333333333333333,1);const float e3=0.38;const vec4 v3=vec4(0.6235294117647059,0.26666666666666666,0.09803921568627451,1);const float e4=0.5;const vec4 v4=vec4(0.7137254901960784,0.38823529411764707,0.07450980392156863,1);const float e5=0.63;const vec4 v5=vec4(0.7803921568627451,0.5254901960784314,0.08627450980392157,1);const float e6=0.75;const vec4 v6=vec4(0.8313725490196079,0.6705882352941176,0.13725490196078433,1);const float e7=0.88;const vec4 v7=vec4(0.8666666666666667,0.8235294117647058,0.21176470588235294,1);const float e8=1.0;const vec4 v8=vec4(0.8823529411764706,0.9921568627450981,0.29411764705882354,1);float a0=smoothstep(e0,e1,x_28);float a1=smoothstep(e1,e2,x_28);float a2=smoothstep(e2,e3,x_28);float a3=smoothstep(e3,e4,x_28);float a4=smoothstep(e4,e5,x_28);float a5=smoothstep(e5,e6,x_28);float a6=smoothstep(e6,e7,x_28);float a7=smoothstep(e7,e8,x_28);return max(mix(v0,v1,a0)*step(e0,x_28)*step(x_28,e1),max(mix(v1,v2,a1)*step(e1,x_28)*step(x_28,e2),max(mix(v2,v3,a2)*step(e2,x_28)*step(x_28,e3),max(mix(v3,v4,a3)*step(e3,x_28)*step(x_28,e4),max(mix(v4,v5,a4)*step(e4,x_28)*step(x_28,e5),max(mix(v5,v6,a5)*step(e5,x_28)*step(x_28,e6),max(mix(v6,v7,a6)*step(e6,x_28)*step(x_28,e7),mix(v7,v8,a7)*step(e7,x_28)*step(x_28,e8))))))));}vec4 phase(float x_39){const float e0=0.0;const vec4 v0=vec4(0.5686274509803921,0.4117647058823529,0.07058823529411765,1);const float e1=0.13;const vec4 v1=vec4(0.7215686274509804,0.2784313725490196,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.7294117647058823,0.22745098039215686,0.45098039215686275,1);const float e3=0.38;const vec4 v3=vec4(0.6274509803921569,0.2784313725490196,0.7254901960784313,1);const float e4=0.5;const vec4 v4=vec4(0.43137254901960786,0.3803921568627451,0.8549019607843137,1);const float e5=0.63;const vec4 v5=vec4(0.19607843137254902,0.4823529411764706,0.6431372549019608,1);const float e6=0.75;const vec4 v6=vec4(0.12156862745098039,0.5137254901960784,0.43137254901960786,1);const float e7=0.88;const vec4 v7=vec4(0.30196078431372547,0.5058823529411764,0.13333333333333333,1);const float e8=1.0;const vec4 v8=vec4(0.5686274509803921,0.4117647058823529,0.07058823529411765,1);float a0=smoothstep(e0,e1,x_39);float a1=smoothstep(e1,e2,x_39);float a2=smoothstep(e2,e3,x_39);float a3=smoothstep(e3,e4,x_39);float a4=smoothstep(e4,e5,x_39);float a5=smoothstep(e5,e6,x_39);float a6=smoothstep(e6,e7,x_39);float a7=smoothstep(e7,e8,x_39);return max(mix(v0,v1,a0)*step(e0,x_39)*step(x_39,e1),max(mix(v1,v2,a1)*step(e1,x_39)*step(x_39,e2),max(mix(v2,v3,a2)*step(e2,x_39)*step(x_39,e3),max(mix(v3,v4,a3)*step(e3,x_39)*step(x_39,e4),max(mix(v4,v5,a4)*step(e4,x_39)*step(x_39,e5),max(mix(v5,v6,a5)*step(e5,x_39)*step(x_39,e6),max(mix(v6,v7,a6)*step(e6,x_39)*step(x_39,e7),mix(v7,v8,a7)*step(e7,x_39)*step(x_39,e8))))))));}vec4 salinity(float x_26){const float e0=0.0;const vec4 v0=vec4(0.16470588235294117,0.09411764705882353,0.4235294117647059,1);const float e1=0.13;const vec4 v1=vec4(0.12941176470588237,0.19607843137254902,0.6352941176470588,1);const float e2=0.25;const vec4 v2=vec4(0.058823529411764705,0.35294117647058826,0.5686274509803921,1);const float e3=0.38;const vec4 v3=vec4(0.1568627450980392,0.4627450980392157,0.5372549019607843,1);const float e4=0.5;const vec4 v4=vec4(0.23137254901960785,0.5725490196078431,0.5294117647058824,1);const float e5=0.63;const vec4 v5=vec4(0.30980392156862746,0.6862745098039216,0.49411764705882355,1);const float e6=0.75;const vec4 v6=vec4(0.47058823529411764,0.796078431372549,0.40784313725490196,1);const float e7=0.88;const vec4 v7=vec4(0.7568627450980392,0.8666666666666667,0.39215686274509803,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.9372549019607843,0.6039215686274509,1);float a0=smoothstep(e0,e1,x_26);float a1=smoothstep(e1,e2,x_26);float a2=smoothstep(e2,e3,x_26);float a3=smoothstep(e3,e4,x_26);float a4=smoothstep(e4,e5,x_26);float a5=smoothstep(e5,e6,x_26);float a6=smoothstep(e6,e7,x_26);float a7=smoothstep(e7,e8,x_26);return max(mix(v0,v1,a0)*step(e0,x_26)*step(x_26,e1),max(mix(v1,v2,a1)*step(e1,x_26)*step(x_26,e2),max(mix(v2,v3,a2)*step(e2,x_26)*step(x_26,e3),max(mix(v3,v4,a3)*step(e3,x_26)*step(x_26,e4),max(mix(v4,v5,a4)*step(e4,x_26)*step(x_26,e5),max(mix(v5,v6,a5)*step(e5,x_26)*step(x_26,e6),max(mix(v6,v7,a6)*step(e6,x_26)*step(x_26,e7),mix(v7,v8,a7)*step(e7,x_26)*step(x_26,e8))))))));}vec4 temperature(float x_8){const float e0=0.0;const vec4 v0=vec4(0.01568627450980392,0.13725490196078433,0.2,1);const float e1=0.13;const vec4 v1=vec4(0.09019607843137255,0.2,0.47843137254901963,1);const float e2=0.25;const vec4 v2=vec4(0.3333333333333333,0.23137254901960785,0.615686274509804,1);const float e3=0.38;const vec4 v3=vec4(0.5058823529411764,0.30980392156862746,0.5607843137254902,1);const float e4=0.5;const vec4 v4=vec4(0.6862745098039216,0.37254901960784315,0.5098039215686274,1);const float e5=0.63;const vec4 v5=vec4(0.8705882352941177,0.4392156862745098,0.396078431372549,1);const float e6=0.75;const vec4 v6=vec4(0.9764705882352941,0.5725490196078431,0.25882352941176473,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.7686274509803922,0.2549019607843137,1);const float e8=1.0;const vec4 v8=vec4(0.9098039215686274,0.9803921568627451,0.3568627450980392,1);float a0=smoothstep(e0,e1,x_8);float a1=smoothstep(e1,e2,x_8);float a2=smoothstep(e2,e3,x_8);float a3=smoothstep(e3,e4,x_8);float a4=smoothstep(e4,e5,x_8);float a5=smoothstep(e5,e6,x_8);float a6=smoothstep(e6,e7,x_8);float a7=smoothstep(e7,e8,x_8);return max(mix(v0,v1,a0)*step(e0,x_8)*step(x_8,e1),max(mix(v1,v2,a1)*step(e1,x_8)*step(x_8,e2),max(mix(v2,v3,a2)*step(e2,x_8)*step(x_8,e3),max(mix(v3,v4,a3)*step(e3,x_8)*step(x_8,e4),max(mix(v4,v5,a4)*step(e4,x_8)*step(x_8,e5),max(mix(v5,v6,a5)*step(e5,x_8)*step(x_8,e6),max(mix(v6,v7,a6)*step(e6,x_8)*step(x_8,e7),mix(v7,v8,a7)*step(e7,x_8)*step(x_8,e8))))))));}vec4 turbidity(float x_40){const float e0=0.0;const vec4 v0=vec4(0.13333333333333333,0.12156862745098039,0.10588235294117647,1);const float e1=0.13;const vec4 v1=vec4(0.2549019607843137,0.19607843137254902,0.1607843137254902,1);const float e2=0.25;const vec4 v2=vec4(0.3843137254901961,0.27058823529411763,0.20392156862745098,1);const float e3=0.38;const vec4 v3=vec4(0.5137254901960784,0.34901960784313724,0.2235294117647059,1);const float e4=0.5;const vec4 v4=vec4(0.6313725490196078,0.4392156862745098,0.23137254901960785,1);const float e5=0.63;const vec4 v5=vec4(0.7254901960784313,0.5490196078431373,0.25882352941176473,1);const float e6=0.75;const vec4 v6=vec4(0.792156862745098,0.6823529411764706,0.34509803921568627,1);const float e7=0.88;const vec4 v7=vec4(0.8470588235294118,0.8196078431372549,0.49411764705882355,1);const float e8=1.0;const vec4 v8=vec4(0.9137254901960784,0.9647058823529412,0.6705882352941176,1);float a0=smoothstep(e0,e1,x_40);float a1=smoothstep(e1,e2,x_40);float a2=smoothstep(e2,e3,x_40);float a3=smoothstep(e3,e4,x_40);float a4=smoothstep(e4,e5,x_40);float a5=smoothstep(e5,e6,x_40);float a6=smoothstep(e6,e7,x_40);float a7=smoothstep(e7,e8,x_40);return max(mix(v0,v1,a0)*step(e0,x_40)*step(x_40,e1),max(mix(v1,v2,a1)*step(e1,x_40)*step(x_40,e2),max(mix(v2,v3,a2)*step(e2,x_40)*step(x_40,e3),max(mix(v3,v4,a3)*step(e3,x_40)*step(x_40,e4),max(mix(v4,v5,a4)*step(e4,x_40)*step(x_40,e5),max(mix(v5,v6,a5)*step(e5,x_40)*step(x_40,e6),max(mix(v6,v7,a6)*step(e6,x_40)*step(x_40,e7),mix(v7,v8,a7)*step(e7,x_40)*step(x_40,e8))))))));}vec4 velocity_blue_297387650(float x_2){const float e0=0.0;const vec4 v0=vec4(0.06666666666666667,0.12549019607843137,0.25098039215686274,1);const float e1=0.13;const vec4 v1=vec4(0.13725490196078433,0.20392156862745098,0.4549019607843137,1);const float e2=0.25;const vec4 v2=vec4(0.11372549019607843,0.3176470588235294,0.611764705882353,1);const float e3=0.38;const vec4 v3=vec4(0.12156862745098039,0.44313725490196076,0.6352941176470588,1);const float e4=0.5;const vec4 v4=vec4(0.19607843137254902,0.5647058823529412,0.6627450980392157,1);const float e5=0.63;const vec4 v5=vec4(0.3411764705882353,0.6784313725490196,0.6901960784313725,1);const float e6=0.75;const vec4 v6=vec4(0.5843137254901961,0.7686274509803922,0.7411764705882353,1);const float e7=0.88;const vec4 v7=vec4(0.796078431372549,0.8666666666666667,0.8274509803921568,1);const float e8=1.0;const vec4 v8=vec4(0.996078431372549,0.984313725490196,0.9019607843137255,1);float a0=smoothstep(e0,e1,x_2);float a1=smoothstep(e1,e2,x_2);float a2=smoothstep(e2,e3,x_2);float a3=smoothstep(e3,e4,x_2);float a4=smoothstep(e4,e5,x_2);float a5=smoothstep(e5,e6,x_2);float a6=smoothstep(e6,e7,x_2);float a7=smoothstep(e7,e8,x_2);return max(mix(v0,v1,a0)*step(e0,x_2)*step(x_2,e1),max(mix(v1,v2,a1)*step(e1,x_2)*step(x_2,e2),max(mix(v2,v3,a2)*step(e2,x_2)*step(x_2,e3),max(mix(v3,v4,a3)*step(e3,x_2)*step(x_2,e4),max(mix(v4,v5,a4)*step(e4,x_2)*step(x_2,e5),max(mix(v5,v6,a5)*step(e5,x_2)*step(x_2,e6),max(mix(v6,v7,a6)*step(e6,x_2)*step(x_2,e7),mix(v7,v8,a7)*step(e7,x_2)*step(x_2,e8))))))));}vec4 velocity_green_2558432129(float x_27){const float e0=0.0;const vec4 v0=vec4(0.09019607843137255,0.13725490196078433,0.07450980392156863,1);const float e1=0.13;const vec4 v1=vec4(0.09411764705882353,0.25098039215686274,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.043137254901960784,0.37254901960784315,0.17647058823529413,1);const float e3=0.38;const vec4 v3=vec4(0.15294117647058825,0.4823529411764706,0.13725490196078433,1);const float e4=0.5;const vec4 v4=vec4(0.37254901960784315,0.5725490196078431,0.047058823529411764,1);const float e5=0.63;const vec4 v5=vec4(0.596078431372549,0.6470588235294118,0.07058823529411765,1);const float e6=0.75;const vec4 v6=vec4(0.788235294117647,0.7294117647058823,0.27058823529411763,1);const float e7=0.88;const vec4 v7=vec4(0.9137254901960784,0.8470588235294118,0.5372549019607843,1);const float e8=1.0;const vec4 v8=vec4(1,0.9921568627450981,0.803921568627451,1);float a0=smoothstep(e0,e1,x_27);float a1=smoothstep(e1,e2,x_27);float a2=smoothstep(e2,e3,x_27);float a3=smoothstep(e3,e4,x_27);float a4=smoothstep(e4,e5,x_27);float a5=smoothstep(e5,e6,x_27);float a6=smoothstep(e6,e7,x_27);float a7=smoothstep(e7,e8,x_27);return max(mix(v0,v1,a0)*step(e0,x_27)*step(x_27,e1),max(mix(v1,v2,a1)*step(e1,x_27)*step(x_27,e2),max(mix(v2,v3,a2)*step(e2,x_27)*step(x_27,e3),max(mix(v3,v4,a3)*step(e3,x_27)*step(x_27,e4),max(mix(v4,v5,a4)*step(e4,x_27)*step(x_27,e5),max(mix(v5,v6,a5)*step(e5,x_27)*step(x_27,e6),max(mix(v6,v7,a6)*step(e6,x_27)*step(x_27,e7),mix(v7,v8,a7)*step(e7,x_27)*step(x_27,e8))))))));}vec4 cubehelix(float x_37){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.07;const vec4 v1=vec4(0.08627450980392157,0.0196078431372549,0.23137254901960785,1);const float e2=0.13;const vec4 v2=vec4(0.23529411764705882,0.01568627450980392,0.4117647058823529,1);const float e3=0.2;const vec4 v3=vec4(0.42745098039215684,0.00392156862745098,0.5294117647058824,1);const float e4=0.27;const vec4 v4=vec4(0.6313725490196078,0,0.5764705882352941,1);const float e5=0.33;const vec4 v5=vec4(0.8235294117647058,0.00784313725490196,0.5568627450980392,1);const float e6=0.4;const vec4 v6=vec4(0.984313725490196,0.043137254901960784,0.4823529411764706,1);const float e7=0.47;const vec4 v7=vec4(1,0.11372549019607843,0.3803921568627451,1);const float e8=0.53;const vec4 v8=vec4(1,0.21176470588235294,0.27058823529411763,1);const float e9=0.6;const vec4 v9=vec4(1,0.3333333333333333,0.1803921568627451,1);const float e10=0.67;const vec4 v10=vec4(1,0.47058823529411764,0.13333333333333333,1);const float e11=0.73;const vec4 v11=vec4(1,0.615686274509804,0.1450980392156863,1);const float e12=0.8;const vec4 v12=vec4(0.9450980392156862,0.7490196078431373,0.2235294117647059,1);const float e13=0.87;const vec4 v13=vec4(0.8784313725490196,0.8627450980392157,0.36470588235294116,1);const float e14=0.93;const vec4 v14=vec4(0.8549019607843137,0.9450980392156862,0.5568627450980392,1);const float e15=1.0;const vec4 v15=vec4(0.8901960784313725,0.9921568627450981,0.7764705882352941,1);float a0=smoothstep(e0,e1,x_37);float a1=smoothstep(e1,e2,x_37);float a2=smoothstep(e2,e3,x_37);float a3=smoothstep(e3,e4,x_37);float a4=smoothstep(e4,e5,x_37);float a5=smoothstep(e5,e6,x_37);float a6=smoothstep(e6,e7,x_37);float a7=smoothstep(e7,e8,x_37);float a8=smoothstep(e8,e9,x_37);float a9=smoothstep(e9,e10,x_37);float a10=smoothstep(e10,e11,x_37);float a11=smoothstep(e11,e12,x_37);float a12=smoothstep(e12,e13,x_37);float a13=smoothstep(e13,e14,x_37);float a14=smoothstep(e14,e15,x_37);return max(mix(v0,v1,a0)*step(e0,x_37)*step(x_37,e1),max(mix(v1,v2,a1)*step(e1,x_37)*step(x_37,e2),max(mix(v2,v3,a2)*step(e2,x_37)*step(x_37,e3),max(mix(v3,v4,a3)*step(e3,x_37)*step(x_37,e4),max(mix(v4,v5,a4)*step(e4,x_37)*step(x_37,e5),max(mix(v5,v6,a5)*step(e5,x_37)*step(x_37,e6),max(mix(v6,v7,a6)*step(e6,x_37)*step(x_37,e7),max(mix(v7,v8,a7)*step(e7,x_37)*step(x_37,e8),max(mix(v8,v9,a8)*step(e8,x_37)*step(x_37,e9),max(mix(v9,v10,a9)*step(e9,x_37)*step(x_37,e10),max(mix(v10,v11,a10)*step(e10,x_37)*step(x_37,e11),max(mix(v11,v12,a11)*step(e11,x_37)*step(x_37,e12),max(mix(v12,v13,a12)*step(e12,x_37)*step(x_37,e13),max(mix(v13,v14,a13)*step(e13,x_37)*step(x_37,e14),mix(v14,v15,a14)*step(e14,x_37)*step(x_37,e15)))))))))))))));}float apply_contrast_limits(float intensity,vec2 contrastLimits){float contrastLimitsAppliedToIntensity=(intensity-contrastLimits[0])/max(0.0005,(contrastLimits[1]-contrastLimits[0]));return max(0.,contrastLimitsAppliedToIntensity);}vec4 colormap(float intensity,float opacity){return vec4(COLORMAP_FUNCTION(min(1.,intensity)).xyz,opacity);}"},po=(li={},Object(g.a)(li,pi.MAX_INTENSITY_PROJECTION,{_BEFORE_RENDER:" float maxVals[6] = float[6](-1.0, -1.0, -1.0, -1.0, -1.0, -1.0);\n ",_RENDER:" \n float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n\n for(int i = 0; i < 6; i++) {\n if(intensityArray[i] > maxVals[i]) {\n maxVals[i] = intensityArray[i];\n }\n }\n ",_AFTER_RENDER:" vec3 rgbCombo = vec3(0.0);\n for(int i = 0; i < 6; i++) {\n rgbCombo += max(0.0, min(1.0, maxVals[i])) * vec3(colors[i]);\n }\n color = vec4(rgbCombo, 1.0);\n "}),Object(g.a)(li,pi.MIN_INTENSITY_PROJECTION,{_BEFORE_RENDER:" float minVals[6] = float[6](1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0.);\n ",_RENDER:" \n float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n\n for(int i = 0; i < 6; i++) {\n if(intensityArray[i] < minVals[i]) {\n minVals[i] = intensityArray[i];\n }\n }\n ",_AFTER_RENDER:" vec3 rgbCombo = vec3(0.0);\n for(int i = 0; i < 6; i++) {\n rgbCombo += max(0.0, min(1.0, minVals[i])) * vec3(colors[i]);\n }\n color = vec4(rgbCombo, 1.0);\n "}),Object(g.a)(li,pi.ADDITIVE,{_BEFORE_RENDER:"",_RENDER:" vec3 rgbCombo = vec3(0.0);\n vec3 hsvCombo = vec3(0.0);\n float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n float total = 0.0;\n for(int i = 0; i < 6; i++) {\n float intensityValue = intensityArray[i];\n rgbCombo += max(0.0, min(1.0, intensityValue)) * colors[i];\n total += intensityValue;\n }\n // Do not go past 1 in opacity.\n total = min(total, 1.0);\n vec4 val_color = vec4(rgbCombo, total);\n // Opacity correction\n val_color.a = 1.0 - pow(1.0 - val_color.a, 1.0);\n color.rgb += (1.0 - color.a) * val_color.a * val_color.rgb;\n color.a += (1.0 - color.a) * val_color.a;\n if (color.a >= 0.95) {\n break;\n }\n ",_AFTER_RENDER:""}),li),Eo=(Ii={},Object(g.a)(Ii,pi.MAX_INTENSITY_PROJECTION,{_BEFORE_RENDER:" float maxVals[6] = float[6](-1.0, -1.0, -1.0, -1.0, -1.0, -1.0);\n ",_RENDER:" \n float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n\n for(int i = 0; i < 6; i++) {\n if(intensityArray[i] > maxVals[i]) {\n maxVals[i] = intensityArray[i];\n }\n }\n ",_AFTER_RENDER:" float total = 0.0;\n for(int i = 0; i < 6; i++) {\n total += maxVals[i];\n }\n // Do not go past 1 in opacity/colormap value.\n total = min(total, 1.0);\n color = colormap(total, total);\n "}),Object(g.a)(Ii,pi.MIN_INTENSITY_PROJECTION,{_BEFORE_RENDER:" float minVals[6] = float[6](1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0.);\n ",_RENDER:" \n float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n\n for(int i = 0; i < 6; i++) {\n if(intensityArray[i] < minVals[i]) {\n minVals[i] = intensityArray[i];\n }\n }\n ",_AFTER_RENDER:" float total = 0.0;\n for(int i = 0; i < 6; i++) {\n total += minVals[i];\n }\n // Do not go past 1 in opacity/colormap value.\n total = min(total, 1.0);\n color = colormap(total, total);\n "}),Object(g.a)(Ii,pi.ADDITIVE,{_BEFORE_RENDER:"",_RENDER:" float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n\t\tfloat total = 0.0;\n\n\t\tfor(int i = 0; i < 6; i++) {\n\t\t\ttotal += intensityArray[i];\n\t\t}\n\t\t// Do not go past 1 in opacity/colormap value.\n\t\ttotal = min(total, 1.0);\n\n\t\tvec4 val_color = colormap(total, total);\n\n\t\t// Opacity correction\n\t\tval_color.a = 1.0 - pow(1.0 - val_color.a, 1.0);\n\t\tcolor.rgb += (1.0 - color.a) * val_color.a * val_color.rgb;\n\t\tcolor.a += (1.0 - color.a) * val_color.a;\n\t\tif (color.a >= 0.95) {\n\t\t\tbreak;\n\t\t}\n p += ray_dir * dt;\n ",_AFTER_RENDER:""}),Ii),Qo=[1,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,0,0,0,1,1,0,1,0,0,1,1,1,1,0,1,0,0,1,1,0,0,0,0,0],yo={pickable:!1,coordinateSystem:p.a.CARTESIAN,channelData:{type:"object",value:{},compare:!0},colors:{type:"array",value:[],compare:!0},contrastLimits:{type:"array",value:[],compare:!0},dtype:{type:"string",value:"Uint8",compare:!0},colormap:{type:"string",value:"",compare:!0},xSlice:{type:"array",value:null,compare:!0},ySlice:{type:"array",value:null,compare:!0},zSlice:{type:"array",value:null,compare:!0},clippingPlanes:{type:"array",value:[],compare:!0},renderingMode:{type:"string",value:pi.ADDITIVE,compare:!0},resolutionMatrix:{type:"object",value:new S.Matrix4,compare:!0}};function vo(){var e=Si("Float32");return Object(d.a)({},e,{sampler:e.sampler.replace("2D","3D"),cast:function(e){return new Float32Array(e)}})}var mo=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"initializeState",value:function(){var e=this.context.gl;e.pixelStorei(F.default.UNPACK_ALIGNMENT,1),e.pixelStorei(F.default.PACK_ALIGNMENT,1);var t=U.a.getDefaultProgramManager(e),A="fs:DECKGL_PROCESS_INTENSITY(inout float intensity, vec2 contrastLimits, int channelIndex)";t._hookFunctions.includes(A)||t.addShaderHook(A)}},{key:"_isHookDefinedByExtensions",value:function(e){var t=this.props.extensions;return null===t||void 0===t?void 0:t.some((function(t){var A=t.getShaders(),n=A.inject,r=void 0===n?{}:n,i=A.modules,o=void 0===i?[]:i,a=r[e],s=o.some((function(t){return null===t||void 0===t?void 0:t.inject[e]}));return a||s}))}},{key:"getShaders",value:function(){var e=this.props,t=e.colormap,n=e.renderingMode,r=e.clippingPlanes,i=vo().sampler,o=t?Eo[n]:po[n],a=o._BEFORE_RENDER,s=o._RENDER,g=o._AFTER_RENDER,c=function(e){var t=bi.filter((function(t){return t!==(e||"viridis")})).map((function(e){return e.replace(/-/g,"_")})),A=new RegExp("vec4 (".concat(t.join("(_([0-9]*))?|"),")\\(float x_[0-9]+\\){([^}]+)}"),"g");return Object(d.a)({},Bo,{fs:Bo.fs.replace(A,""),defines:{COLORMAP_FUNCTION:e||"viridis"}})}(t),u=this._isHookDefinedByExtensions("fs:DECKGL_PROCESS_INTENSITY"),l=Object(d.a)({},c,{inject:{}});return u||(l.inject["fs:DECKGL_PROCESS_INTENSITY"]="\n intensity = apply_contrast_limits(intensity, contrastLimits);\n "),Object(C.a)(Object(I.a)(A.prototype),"getShaders",this).call(this,{vs:'#version 300 es\n#define GLSLIFY 1\n#define SHADER_NAME xr-layer-vertex-shader\nin vec3 positions;uniform vec3 eye_pos;uniform mat4 proj;uniform mat4 model;uniform mat4 view;uniform mat4 scale;uniform mat4 resolution;out vec3 vray_dir;flat out vec3 transformed_eye;void main(){gl_Position=proj*view*model*scale*resolution*vec4(positions,1.);/*This first diagram is a skewed volume(i.e a "shear" model matrix applied)top down with the eye marked as #,all in world space^___|__\\|\\\\|\\|____|||\n#\nThis next diagram shows the volume after the inverse model matrix has placed it back in model coordinates,but the eye still in world space.^___|___|||||||__|__||||\n#\nFinally,we apply the inverse model matrix transformation to the eye as well to bring it too into world space.Notice that the ray here matches the "voxels" through which the first ray also passes,as desired.^____/__|/||/||/____|///\n#\n*/transformed_eye=(inverse(resolution)*inverse(scale)*inverse(model)*(vec4(eye_pos,1.))).xyz;vray_dir=positions-transformed_eye;}',fs:"#version 300 es\nprecision highp int;precision highp float;precision highp SAMPLER_TYPE;\n#define GLSLIFY 1\nuniform highp SAMPLER_TYPE volume0;uniform highp SAMPLER_TYPE volume1;uniform highp SAMPLER_TYPE volume2;uniform highp SAMPLER_TYPE volume3;uniform highp SAMPLER_TYPE volume4;uniform highp SAMPLER_TYPE volume5;uniform vec3 scaledDimensions;uniform mat4 scale;uniform vec3 normals[NUM_PLANES];uniform float distances[NUM_PLANES];uniform vec3 colors[6];uniform vec2 xSlice;uniform vec2 ySlice;uniform vec2 zSlice;uniform vec2 contrastLimits[6];in vec3 vray_dir;flat in vec3 transformed_eye;out vec4 color;vec2 intersect_box(vec3 orig,vec3 dir){vec3 box_min=vec3(xSlice[0],ySlice[0],zSlice[0]);vec3 box_max=vec3(xSlice[1],ySlice[1],zSlice[1]);vec3 inv_dir=1./dir;vec3 tmin_tmp=(box_min-orig)*inv_dir;vec3 tmax_tmp=(box_max-orig)*inv_dir;vec3 tmin=min(tmin_tmp,tmax_tmp);vec3 tmax=max(tmin_tmp,tmax_tmp);float t0=max(tmin.x,max(tmin.y,tmin.z));float t1=min(tmax.x,min(tmax.y,tmax.z));vec2 val=vec2(t0,t1);return val;}float linear_to_srgb(float x){if(x<=0.0031308f){return 12.92f*x;}return 1.055f*pow(x,1.f/2.4f)-0.055f;}float wang_hash(int seed){seed=(seed ^ 61)^(seed>>16);seed*=9;seed=seed ^(seed>>4);seed*=0x27d4eb2d;seed=seed ^(seed>>15);return float(seed % 2147483647)/float(2147483647);}void main(void){vec3 ray_dir=normalize(vray_dir);vec2 t_hit=intersect_box(transformed_eye,ray_dir);if(t_hit.x>t_hit.y){discard;}t_hit.x=max(t_hit.x,0.);vec3 dt_vec=1./(scale*vec4(abs(ray_dir),1.)).xyz;float dt=1.*min(dt_vec.x,min(dt_vec.y,dt_vec.z));float offset=wang_hash(int(gl_FragCoord.x+640.*gl_FragCoord.y));vec3 p=transformed_eye+(t_hit.x+offset*dt)*ray_dir;_BEFORE_RENDERfor(float t=t_hit.x;t<t_hit.y;t+=dt){float canShow=1.;for(int i=0;i<NUM_PLANES;i+=1){canShow*=max(0.,sign(dot(normals[i],p)+distances[i]));}float canShowXCoordinate=max(p.x-0.,0.)*max(1.-p.x,0.);float canShowYCoordinate=max(p.y-0.,0.)*max(1.-p.y,0.);float canShowZCoordinate=max(p.z-0.,0.)*max(1.-p.z,0.);float canShowCoordinate=float(ceil(canShowXCoordinate*canShowYCoordinate*canShowZCoordinate));canShow=canShowCoordinate*canShow;float intensityValue0=float(texture(volume0,p).r);DECKGL_PROCESS_INTENSITY(intensityValue0,contrastLimits[0],0);intensityValue0=canShow*intensityValue0;float intensityValue1=float(texture(volume1,p).r);DECKGL_PROCESS_INTENSITY(intensityValue1,contrastLimits[1],1);intensityValue1=canShow*intensityValue1;float intensityValue2=float(texture(volume2,p).r);DECKGL_PROCESS_INTENSITY(intensityValue2,contrastLimits[2],2);intensityValue2=canShow*intensityValue2;float intensityValue3=float(texture(volume3,p).r);DECKGL_PROCESS_INTENSITY(intensityValue3,contrastLimits[3],3);intensityValue3=canShow*intensityValue3;float intensityValue4=float(texture(volume4,p).r);DECKGL_PROCESS_INTENSITY(intensityValue4,contrastLimits[4],4);intensityValue4=canShow*intensityValue4;float intensityValue5=float(texture(volume5,p).r);DECKGL_PROCESS_INTENSITY(intensityValue5,contrastLimits[5],5);intensityValue5=canShow*intensityValue5;_RENDERp+=ray_dir*dt;}_AFTER_RENDERcolor.r=linear_to_srgb(color.r);color.g=linear_to_srgb(color.g);color.b=linear_to_srgb(color.b);}".replace("_BEFORE_RENDER",a).replace("_RENDER",s).replace("_AFTER_RENDER",g),defines:{SAMPLER_TYPE:i,COLORMAP_FUNCTION:t||"viridis",NUM_PLANES:String(r.length||1)},modules:[l]})}},{key:"finalizeState",value:function(){Object(C.a)(Object(I.a)(A.prototype),"finalizeState",this).call(this),this.state.textures&&Object.values(this.state.textures).forEach((function(e){return e&&e.delete()}))}},{key:"updateState",value:function(e){var t,A,n=e.props,r=e.oldProps;if(e.changeFlags.extensionsChanged||n.colormap!==r.colormap||n.renderingMode!==r.renderingMode||n.clippingPlanes.length!==r.clippingPlanes.length){var i=this.context.gl;this.state.model&&this.state.model.delete(),this.setState({model:this._getModel(i)})}n.channelData&&(null===n||void 0===n||null===(t=n.channelData)||void 0===t?void 0:t.data)!==(null===r||void 0===r||null===(A=r.channelData)||void 0===A?void 0:A.data)&&this.loadTexture(n.channelData)}},{key:"_getModel",value:function(e){return e?new G.a(e,Object(d.a)({},this.getShaders(),{geometry:new k.a({drawMode:e.TRIANGLE_STRIP,attributes:{positions:new Float32Array(Qo)}})})):null}},{key:"draw",value:function(e){var t=e.uniforms,A=this.state,n=A.textures,r=A.model,i=A.scaleMatrix,o=this.props,a=o.contrastLimits,s=o.colors,g=o.xSlice,c=o.ySlice,u=o.zSlice,l=o.modelMatrix,I=o.channelsVisible,C=o.domain,h=o.dtype,f=o.clippingPlanes,B=o.resolutionMatrix,p=this.context.viewport,E=p.viewMatrix,Q=p.viewMatrixInverse,y=p.projectionMatrix;if(n&&r&&i){var v=Fi({contrastLimits:a,channelsVisible:I,domain:C,dtype:h}),m=zi({colors:s,channelsVisible:I}),b=i.clone().invert(),w=B.clone().invert(),F=wi(f.map((function(e){return e.clone().transform(b).transform(w)})),new j.e([1,0,0]),f.length||1),R=F.map((function(e){return e.normal})).flat(),D=F.map((function(e){return e.distance}));r.setUniforms(Object(d.a)({},t,{},n,{contrastLimits:v,colors:m,xSlice:new Float32Array(g?g.map((function(e){return e/i[0]/B[0]})):[0,1]),ySlice:new Float32Array(c?c.map((function(e){return e/i[5]/B[5]})):[0,1]),zSlice:new Float32Array(u?u.map((function(e){return e/i[10]/B[10]})):[0,1]),eye_pos:new Float32Array([Q[12],Q[13],Q[14]]),view:E,proj:y,scale:i,resolution:B,model:l||new S.Matrix4,normals:R,distances:D})).draw()}}},{key:"loadTexture",value:function(e){var t=this,A={volume0:null,volume1:null,volume2:null,volume3:null,volume4:null,volume5:null};if(this.state.textures&&Object.values(this.state.textures).forEach((function(e){return e&&e.delete()})),e&&Object.keys(e).length>0&&e.data){var n=e.height,r=e.width,i=e.depth;e.data.forEach((function(e,o){A["volume".concat(o)]=t.dataToTexture(e,r,n,i)}),this),this.setState({textures:A,scaleMatrix:(new S.Matrix4).scale(this.props.physicalSizeScalingMatrix.transformPoint([r,n,i]))})}}},{key:"dataToTexture",value:function(e,t,A,n){var r,i,o,a=vo();return new N.a(this.context.gl,{width:t,height:A,depth:n,data:null!==(r=null===(i=a.cast)||void 0===i?void 0:i.call(a,e))&&void 0!==r?r:e,format:a.dataFormat,dataFormat:a.format,type:a.type,mipmaps:!1,parameters:(o={},Object(g.a)(o,F.default.TEXTURE_MIN_FILTER,F.default.LINEAR),Object(g.a)(o,F.default.TEXTURE_MAG_FILTER,F.default.LINEAR),Object(g.a)(o,F.default.TEXTURE_WRAP_S,F.default.CLAMP_TO_EDGE),Object(g.a)(o,F.default.TEXTURE_WRAP_T,F.default.CLAMP_TO_EDGE),Object(g.a)(o,F.default.TEXTURE_WRAP_R,F.default.CLAMP_TO_EDGE),o)})}}]),A}(y.a);function bo(){return(bo=Object(a.a)(o.a.mark((function e(t){var A,n,r,i,s,g,c,u,l,I,C,h,f,B,p,E,Q,y,v;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=t.source,n=t.selection,r=t.onUpdate,i=void 0===r?function(){}:r,s=t.downsampleDepth,g=void 0===s?1:s,c=t.signal,u=A.shape,l=A.labels,I=A.dtype,C=ji(A),h=C.height,f=C.width,B=u[l.indexOf("z")],p=Math.max(1,Math.floor(B/g)),E=h*f,Q="".concat(I,"Array"),y=globalThis[Q],v=new y(E*p),e.next=11,Promise.all(new Array(p).fill(0).map(function(){var e=Object(a.a)(o.a.mark((function e(t,r){var a,s,u,l,I,C;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=Object(d.a)({},n,{z:r*g}),e.next=3,A.getRaster({selection:a,signal:c});case 3:for(s=e.sent,u=s.data,l=0,i();l<E;)I=r*E+(E-l-1),C=(f-l-1)%f+f*Math.floor(l/f),v[I]=u[C],l+=1;i();case 9:case"end":return e.stop()}}),e)})));return function(t,A){return e.apply(this,arguments)}}()));case 11:return e.abrupt("return",{data:v,height:h,width:f,depth:p});case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}mo.layerName="XR3DLayer",mo.defaultProps=yo;var wo=function(e,t,A){return new Z.a({id:"text-".concat(A),coordinateSystem:p.a.CARTESIAN,data:[{text:e,position:t.position}],getColor:[220,220,220,255],getSize:25,sizeUnits:"meters",sizeScale:Math.pow(2,-t.zoom),fontFamily:"Helvetica"})},So={pickable:!1,coordinateSystem:p.a.CARTESIAN,contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},colors:{type:"array",value:[],compare:!0},colormap:{type:"string",value:"",compare:!0},selections:{type:"array",value:[],compare:!0},resolution:{type:"number",value:0,compare:!0},domain:{type:"array",value:[],compare:!0},loader:{type:"object",value:[{getRaster:function(){var e=Object(a.a)(o.a.mark((function e(){return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{data:[],height:0,width:0});case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),dtype:"Uint16",shape:[1],labels:["z"]}],compare:!0},xSlice:{type:"array",value:null,compare:!0},ySlice:{type:"array",value:null,compare:!0},zSlice:{type:"array",value:null,compare:!0},clippingPlanes:{type:"array",value:[],compare:!0},renderingMode:{type:"string",value:pi.MAX_INTENSITY_PROJECTION,compare:!0},onUpdate:{type:"function",value:function(){},compare:!0},useProgressIndicator:{type:"boolean",value:!0,compare:!0},useWebGL1Warning:{type:"boolean",value:!0,compare:!0}},Fo=function(e){Object(h.a)(A,e);var t=Object(f.a)(A);function A(){return Object(u.a)(this,A),t.apply(this,arguments)}return Object(l.a)(A,[{key:"clearState",value:function(){this.setState({height:null,width:null,depth:null,data:null,physicalSizeScalingMatrix:null,resolutionMatrix:null,progress:0,abortController:null})}},{key:"finalizeState",value:function(){this.state.abortController.abort()}},{key:"updateState",value:function(e){var t=this,A=e.oldProps,n=e.props,r=n.loader!==A.loader,i=n.resolution!==A.resolution,o=n.selections!==A.selections;if(i&&this.clearState(),r||o||i){var a=this.props,s=a.loader,g=a.selections,c=void 0===g?[]:g,u=a.resolution,l=a.onViewportLoad,I=s[u],C=0,h=(I.shape[I.labels.indexOf("z")]>>u)*c.length,f=function(){C+=.5/h,t.props.onUpdate&&t.props.onUpdate({progress:C}),t.setState({progress:C})},B=new AbortController;this.setState({abortController:B});var p=B.signal,E=c.map((function(e){return function(e){return bo.apply(this,arguments)}({selection:e,source:I,onUpdate:f,downsampleDepth:Math.pow(2,u),signal:p})})),Q=Ri(s[u]);Promise.all(E).then((function(e){l&&l(e);var A={data:e.map((function(e){return e.data})),width:e[0].width,height:e[0].height,depth:e[0].depth};t.setState(Object(d.a)({},A,{physicalSizeScalingMatrix:Q,resolutionMatrix:(new S.Matrix4).scale(Math.pow(2,u))}))}))}}},{key:"renderLayers",value:function(){var e,t=this.props,A=t.loader,n=t.id,r=t.resolution,i=t.useProgressIndicator,o=t.useWebGL1Warning,a=A[r].dtype,s=this.state,c=s.data,u=s.width,l=s.height,I=s.depth,C=s.progress,h=s.physicalSizeScalingMatrix,f=s.resolutionMatrix,d=this.context.gl;if(!Object(D.j)(d)&&o){var B=this.context.viewport;return wo(["Volume rendering is only available on browsers that support WebGL2. If you","are using Safari, you can turn on WebGL2 by navigating in the top menubar","to check Develop > Experimental Features > WebGL 2.0 and then refreshing","the page."].join("\n"),B,n)}if((!u||!l)&&i){var p=this.context.viewport;return wo("Loading Volume ".concat(String(100*(C||0)).slice(0,5),"%..."),p,n)}return new mo(this.props,{channelData:{data:c,width:u,height:l,depth:I},id:"XR3DLayer-".concat(0,"-",l,"-").concat(u,"-",0,"-").concat(r,"-").concat(n),physicalSizeScalingMatrix:h,parameters:(e={},Object(g.a)(e,F.default.CULL_FACE,!0),Object(g.a)(e,F.default.CULL_FACE_MODE,F.default.FRONT),Object(g.a)(e,F.default.DEPTH_TEST,!1),Object(g.a)(e,"blendFunc",[F.default.SRC_ALPHA,F.default.ONE]),Object(g.a)(e,"blend",!0),e),resolutionMatrix:f,dtype:a})}}]),A}(v.a);Fo.layerName="VolumeLayer",Fo.defaultProps=So;var Ro="/Users/ilangold/Projects/Gehlenborg/viv/src/viewers/VivViewer.jsx",Do=(P.PureComponent,function e(){Object(u.a)(this,e)}),Go=(w.a,"".concat("__viv","-offsets"));function ko(e){(function(e,t){return e[t]})(e,Go)||console.warn("GeoTIFF source is missing offsets proxy.")}function xo(e,t){return new Proxy(e,{get:function(e,A){return"getImage"===A?function(A){if(!(A in e.ifdRequests)&&A in t){var n=t[A];e.ifdRequests[A]=e.parseFileDirectoryAt(n)}return e.getImage(A)}:A===Go||Reflect.get(e,A)}})}var No="KGZ1bmN0aW9uICgpIHsKICAndXNlIHN0cmljdCc7CgogIGZ1bmN0aW9uIGRlY29kZVJvd0FjYyhyb3csIHN0cmlkZSkgewogICAgbGV0IGxlbmd0aCA9IHJvdy5sZW5ndGggLSBzdHJpZGU7CiAgICBsZXQgb2Zmc2V0ID0gMDsKICAgIGRvIHsKICAgICAgZm9yIChsZXQgaSA9IHN0cmlkZTsgaSA+IDA7IGktLSkgewogICAgICAgIHJvd1tvZmZzZXQgKyBzdHJpZGVdICs9IHJvd1tvZmZzZXRdOwogICAgICAgIG9mZnNldCsrOwogICAgICB9CgogICAgICBsZW5ndGggLT0gc3RyaWRlOwogICAgfSB3aGlsZSAobGVuZ3RoID4gMCk7CiAgfQoKICBmdW5jdGlvbiBkZWNvZGVSb3dGbG9hdGluZ1BvaW50KHJvdywgc3RyaWRlLCBieXRlc1BlclNhbXBsZSkgewogICAgbGV0IGluZGV4ID0gMDsKICAgIGxldCBjb3VudCA9IHJvdy5sZW5ndGg7CiAgICBjb25zdCB3YyA9IGNvdW50IC8gYnl0ZXNQZXJTYW1wbGU7CgogICAgd2hpbGUgKGNvdW50ID4gc3RyaWRlKSB7CiAgICAgIGZvciAobGV0IGkgPSBzdHJpZGU7IGkgPiAwOyAtLWkpIHsKICAgICAgICByb3dbaW5kZXggKyBzdHJpZGVdICs9IHJvd1tpbmRleF07CiAgICAgICAgKytpbmRleDsKICAgICAgfQogICAgICBjb3VudCAtPSBzdHJpZGU7CiAgICB9CgogICAgY29uc3QgY29weSA9IHJvdy5zbGljZSgpOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3YzsgKytpKSB7CiAgICAgIGZvciAobGV0IGIgPSAwOyBiIDwgYnl0ZXNQZXJTYW1wbGU7ICsrYikgewogICAgICAgIHJvd1soYnl0ZXNQZXJTYW1wbGUgKiBpKSArIGJdID0gY29weVsoKGJ5dGVzUGVyU2FtcGxlIC0gYiAtIDEpICogd2MpICsgaV07CiAgICAgIH0KICAgIH0KICB9CgogIGZ1bmN0aW9uIGFwcGx5UHJlZGljdG9yKGJsb2NrLCBwcmVkaWN0b3IsIHdpZHRoLCBoZWlnaHQsIGJpdHNQZXJTYW1wbGUsCiAgICBwbGFuYXJDb25maWd1cmF0aW9uKSB7CiAgICBpZiAoIXByZWRpY3RvciB8fCBwcmVkaWN0b3IgPT09IDEpIHsKICAgICAgcmV0dXJuIGJsb2NrOwogICAgfQoKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYml0c1BlclNhbXBsZS5sZW5ndGg7ICsraSkgewogICAgICBpZiAoYml0c1BlclNhbXBsZVtpXSAlIDggIT09IDApIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1doZW4gZGVjb2Rpbmcgd2l0aCBwcmVkaWN0b3IsIG9ubHkgbXVsdGlwbGUgb2YgOCBiaXRzIGFyZSBzdXBwb3J0ZWQuJyk7CiAgICAgIH0KICAgICAgaWYgKGJpdHNQZXJTYW1wbGVbaV0gIT09IGJpdHNQZXJTYW1wbGVbMF0pIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1doZW4gZGVjb2Rpbmcgd2l0aCBwcmVkaWN0b3IsIGFsbCBzYW1wbGVzIG11c3QgaGF2ZSB0aGUgc2FtZSBzaXplLicpOwogICAgICB9CiAgICB9CgogICAgY29uc3QgYnl0ZXNQZXJTYW1wbGUgPSBiaXRzUGVyU2FtcGxlWzBdIC8gODsKICAgIGNvbnN0IHN0cmlkZSA9IHBsYW5hckNvbmZpZ3VyYXRpb24gPT09IDIgPyAxIDogYml0c1BlclNhbXBsZS5sZW5ndGg7CgogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWlnaHQ7ICsraSkgewogICAgICAvLyBMYXN0IHN0cmlwIHdpbGwgYmUgdHJ1bmNhdGVkIGlmIGhlaWdodCAlIHN0cmlwSGVpZ2h0ICE9IDAKICAgICAgaWYgKGkgKiBzdHJpZGUgKiB3aWR0aCAqIGJ5dGVzUGVyU2FtcGxlID49IGJsb2NrLmJ5dGVMZW5ndGgpIHsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBsZXQgcm93OwogICAgICBpZiAocHJlZGljdG9yID09PSAyKSB7IC8vIGhvcml6b250YWwgcHJlZGljdGlvbgogICAgICAgIHN3aXRjaCAoYml0c1BlclNhbXBsZVswXSkgewogICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICByb3cgPSBuZXcgVWludDhBcnJheSgKICAgICAgICAgICAgICBibG9jaywgaSAqIHN0cmlkZSAqIHdpZHRoICogYnl0ZXNQZXJTYW1wbGUsIHN0cmlkZSAqIHdpZHRoICogYnl0ZXNQZXJTYW1wbGUsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgcm93ID0gbmV3IFVpbnQxNkFycmF5KAogICAgICAgICAgICAgIGJsb2NrLCBpICogc3RyaWRlICogd2lkdGggKiBieXRlc1BlclNhbXBsZSwgc3RyaWRlICogd2lkdGggKiBieXRlc1BlclNhbXBsZSAvIDIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzMjoKICAgICAgICAgICAgcm93ID0gbmV3IFVpbnQzMkFycmF5KAogICAgICAgICAgICAgIGJsb2NrLCBpICogc3RyaWRlICogd2lkdGggKiBieXRlc1BlclNhbXBsZSwgc3RyaWRlICogd2lkdGggKiBieXRlc1BlclNhbXBsZSAvIDQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcmVkaWN0b3IgMiBub3QgYWxsb3dlZCB3aXRoICR7Yml0c1BlclNhbXBsZVswXX0gYml0cyBwZXIgc2FtcGxlLmApOwogICAgICAgIH0KICAgICAgICBkZWNvZGVSb3dBY2Mocm93LCBzdHJpZGUpOwogICAgICB9IGVsc2UgaWYgKHByZWRpY3RvciA9PT0gMykgeyAvLyBob3Jpem9udGFsIGZsb2F0aW5nIHBvaW50CiAgICAgICAgcm93ID0gbmV3IFVpbnQ4QXJyYXkoCiAgICAgICAgICBibG9jaywgaSAqIHN0cmlkZSAqIHdpZHRoICogYnl0ZXNQZXJTYW1wbGUsIHN0cmlkZSAqIHdpZHRoICogYnl0ZXNQZXJTYW1wbGUsCiAgICAgICAgKTsKICAgICAgICBkZWNvZGVSb3dGbG9hdGluZ1BvaW50KHJvdywgc3RyaWRlLCBieXRlc1BlclNhbXBsZSk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBibG9jazsKICB9CgogIGNsYXNzIEJhc2VEZWNvZGVyIHsKICAgIGFzeW5jIGRlY29kZShmaWxlRGlyZWN0b3J5LCBidWZmZXIpIHsKICAgICAgY29uc3QgZGVjb2RlZCA9IGF3YWl0IHRoaXMuZGVjb2RlQmxvY2soYnVmZmVyKTsKICAgICAgY29uc3QgcHJlZGljdG9yID0gZmlsZURpcmVjdG9yeS5QcmVkaWN0b3IgfHwgMTsKICAgICAgaWYgKHByZWRpY3RvciAhPT0gMSkgewogICAgICAgIGNvbnN0IGlzVGlsZWQgPSAhZmlsZURpcmVjdG9yeS5TdHJpcE9mZnNldHM7CiAgICAgICAgY29uc3QgdGlsZVdpZHRoID0gaXNUaWxlZCA/IGZpbGVEaXJlY3RvcnkuVGlsZVdpZHRoIDogZmlsZURpcmVjdG9yeS5JbWFnZVdpZHRoOwogICAgICAgIGNvbnN0IHRpbGVIZWlnaHQgPSBpc1RpbGVkID8gZmlsZURpcmVjdG9yeS5UaWxlTGVuZ3RoIDogKAogICAgICAgICAgZmlsZURpcmVjdG9yeS5Sb3dzUGVyU3RyaXAgfHwgZmlsZURpcmVjdG9yeS5JbWFnZUxlbmd0aAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIGFwcGx5UHJlZGljdG9yKAogICAgICAgICAgZGVjb2RlZCwgcHJlZGljdG9yLCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQsIGZpbGVEaXJlY3RvcnkuQml0c1BlclNhbXBsZSwKICAgICAgICAgIGZpbGVEaXJlY3RvcnkuUGxhbmFyQ29uZmlndXJhdGlvbiwKICAgICAgICApOwogICAgICB9CiAgICAgIHJldHVybiBkZWNvZGVkOwogICAgfQogIH0KCiAgY2xhc3MgUmF3RGVjb2RlciBleHRlbmRzIEJhc2VEZWNvZGVyIHsKICAgIGRlY29kZUJsb2NrKGJ1ZmZlcikgewogICAgICByZXR1cm4gYnVmZmVyOwogICAgfQogIH0KCiAgbGV0IEEsST1udWxsO2Z1bmN0aW9uIGcoKXtyZXR1cm4gbnVsbCE9PUkmJkkuYnVmZmVyPT09QS5tZW1vcnkuYnVmZmVyfHwoST1uZXcgVWludDhBcnJheShBLm1lbW9yeS5idWZmZXIpKSxJfWxldCBCPTA7bGV0IFE9bnVsbDtmdW5jdGlvbiBDKCl7cmV0dXJuIG51bGwhPT1RJiZRLmJ1ZmZlcj09PUEubWVtb3J5LmJ1ZmZlcnx8KFE9bmV3IEludDMyQXJyYXkoQS5tZW1vcnkuYnVmZmVyKSksUX1hc3luYyBmdW5jdGlvbiBFKEkpe3ZvaWQgMD09PUkmJihJPSIiLnJlcGxhY2UoL1wuanMkLywiX2JnLndhc20iKSk7KCJzdHJpbmciPT10eXBlb2YgSXx8ImZ1bmN0aW9uIj09dHlwZW9mIFJlcXVlc3QmJkkgaW5zdGFuY2VvZiBSZXF1ZXN0fHwiZnVuY3Rpb24iPT10eXBlb2YgVVJMJiZJIGluc3RhbmNlb2YgVVJMKSYmKEk9ZmV0Y2goSSkpO2NvbnN0e2luc3RhbmNlOmcsbW9kdWxlOkJ9PWF3YWl0IGFzeW5jIGZ1bmN0aW9uKEEsSSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFJlc3BvbnNlJiZBIGluc3RhbmNlb2YgUmVzcG9uc2Upe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyl0cnl7cmV0dXJuIGF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKEEsSSl9Y2F0Y2goSSl7aWYoImFwcGxpY2F0aW9uL3dhc20iPT1BLmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKSl0aHJvdyBJO2NvbnNvbGUud2FybigiYFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nYCBmYWlsZWQgYmVjYXVzZSB5b3VyIHNlcnZlciBkb2VzIG5vdCBzZXJ2ZSB3YXNtIHdpdGggYGFwcGxpY2F0aW9uL3dhc21gIE1JTUUgdHlwZS4gRmFsbGluZyBiYWNrIHRvIGBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZWAgd2hpY2ggaXMgc2xvd2VyLiBPcmlnaW5hbCBlcnJvcjpcbiIsSSk7fWNvbnN0IGc9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3JldHVybiBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShnLEkpfXtjb25zdCBnPWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEEsSSk7cmV0dXJuIGcgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5JbnN0YW5jZT97aW5zdGFuY2U6Zyxtb2R1bGU6QX06Z319KGF3YWl0IEkse30pO3JldHVybiBBPWcuZXhwb3J0cyxFLl9fd2JpbmRnZW5fd2FzbV9tb2R1bGU9QixBfXZhciBEPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGRlY29tcHJlc3M6ZnVuY3Rpb24oSSxRKXt0cnl7Y29uc3QgRj1BLl9fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIoLTE2KTt2YXIgRT1mdW5jdGlvbihBLEkpe2NvbnN0IFE9SSgxKkEubGVuZ3RoKTtyZXR1cm4gZygpLnNldChBLFEvMSksQj1BLmxlbmd0aCxRfShJLEEuX193YmluZGdlbl9tYWxsb2MpLEQ9QjtBLmRlY29tcHJlc3MoRixFLEQsUSk7dmFyIGk9QygpW0YvNCswXSx3PUMoKVtGLzQrMV0sRz0obz1pLE49dyxnKCkuc3ViYXJyYXkoby8xLG8vMStOKSkuc2xpY2UoKTtyZXR1cm4gQS5fX3diaW5kZ2VuX2ZyZWUoaSwxKncpLEd9ZmluYWxseXtBLl9fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIoMTYpO312YXIgbyxOO30sZGVmYXVsdDpFfSk7Y29uc3QgaT1bNjIsMCwwLDAsNjMsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsMCwwLDAsMCwwLDAsMCwwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDAsMCwwLDAsMCwwLDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxXTtmdW5jdGlvbiB3KEEpe3JldHVybiBpW0EtNDNdfWNvbnN0IEc9ZnVuY3Rpb24oQSl7bGV0IEksZz1BLmVuZHNXaXRoKCI9PSIpPzI6QS5lbmRzV2l0aCgiPSIpPzE6MCxCPUEubGVuZ3RoLFE9bmV3IFVpbnQ4QXJyYXkoQi80KjMpO2ZvcihsZXQgZz0wLEM9MDtnPEI7Zys9NCxDKz0zKUk9dyhBLmNoYXJDb2RlQXQoZykpPDwxOHx3KEEuY2hhckNvZGVBdChnKzEpKTw8MTJ8dyhBLmNoYXJDb2RlQXQoZysyKSk8PDZ8dyhBLmNoYXJDb2RlQXQoZyszKSksUVtDXT1JPj4xNixRW0MrMV09ST4+OCYyNTUsUVtDKzJdPTI1NSZJO3JldHVybiBRLnN1YmFycmF5KDAsUS5sZW5ndGgtZyl9KCJBR0Z6YlFFQUFBQUJXUTVnQW45L0FYOWdBMzkvZndGL1lBSi9md0JnQVg4QVlBTi9mMzhBWUFGL0FYOWdCSDkvZjM4QVlBUi9mMzkvQVg5Z0JuOS9mMzkvZndCZ0FYOEJmbUFBQUdBRmYzOS9mMzhBWUFWL2YzOS9md0YvWUFKK2Z3Ri9BMjFzQlFnSUN3TUJBZ1VNQVFBQkFBSUFCUUFDQWdZR0RRWURBZ0FDQUFBRUJBUUNBZ1lHQUFZQkJnSUhBd1FEQkFRREF3QURCUU1EQkFRRUJBUUNBZ0FIQUFRQUFnTUJBZ2NGQkFJREFRVUNBZ0lEQWdJREF3Y0NBUUFBQkFJQUNnQUFBUUFGQWdBREJRa0pDUU1DQkFVQmNBRXJLd1VEQVFBUkJna0Jmd0ZCZ0lEQUFBc0hYd1VHYldWdGIzSjVBZ0FLWkdWamIyMXdjbVZ6Y3dBbkgxOWZkMkpwYm1SblpXNWZZV1JrWDNSdlgzTjBZV05yWDNCdmFXNTBaWElBWWhGZlgzZGlhVzVrWjJWdVgyMWhiR3h2WXdCTUQxOWZkMkpwYm1SblpXNWZabkpsWlFCV0NUQUJBRUVCQ3lwcUpEVUNabVZETlFGbVpVTmhhMnBYREQxcFZCb2hTVnRUYUdkZlhERU9YbGhxYVFzY1FXQWJQMlFLc3VnQmJOTXFBZ2gvQVg0Q1FBSkFBa0FDUUNBQVFmVUJUd1JBSUFCQnpmOTdUdzBDSUFCQkMyb2lBRUY0Y1NFR1FaQ253QUFvQWdBaUNFVU5BVUVBSUFacklRUUNRQUpBQW45QkFDQUFRUWgySWdCRkRRQWFRUjhnQmtILy8vOEhTdzBBR2lBR1FRWWdBR2NpQUd0QkgzRjJRUUZ4SUFCQkFYUnJRVDVxQ3lJSFFRSjBRWnlwd0FCcUtBSUFJZ0FFUUNBR1FRQkJHU0FIUVFGMmEwRWZjU0FIUVI5R0czUWhBZ05BQWtBZ0FFRUVhaWdDQUVGNGNTSUZJQVpKRFFBZ0JTQUdheUlGSUFSUERRQWdBQ0VESUFVaUJBMEFRUUFoQkF3REN5QUFRUlJxS0FJQUlnVWdBU0FGSUFBZ0FrRWRka0VFY1dwQkVHb29BZ0FpQUVjYklBRWdCUnNoQVNBQ1FRRjBJUUlnQUEwQUN5QUJCRUFnQVNFQURBSUxJQU1OQWd0QkFDRURRUUlnQjBFZmNYUWlBRUVBSUFCcmNpQUljU0lBUlEwRElBQkJBQ0FBYTNGb1FRSjBRWnlwd0FCcUtBSUFJZ0JGRFFNTEEwQWdBQ0FESUFCQkJHb29BZ0JCZUhFaUFpQUdUeUFDSUFacklnSWdCRWx4SWdFYklRTWdBaUFFSUFFYklRUWdBQ2dDRUNJQ0JIOGdBZ1VnQUVFVWFpZ0NBQXNpQUEwQUN5QURSUTBDQzBHY3FzQUFLQUlBSWdBZ0JrOUJBQ0FFSUFBZ0JtdFBHdzBCSUFNb0FoZ2hCd0pBQWtBZ0F5QURLQUlNSWdGR0JFQWdBMEVVUVJBZ0EwRVVhaUlDS0FJQUlnRWJhaWdDQUNJQURRRkJBQ0VCREFJTElBTW9BZ2dpQUNBQk5nSU1JQUVnQURZQ0NBd0JDeUFDSUFOQkVHb2dBUnNoQWdOQUlBSWhCU0FBSWdGQkZHb2lBaWdDQUNJQVJRUkFJQUZCRUdvaEFpQUJLQUlRSVFBTElBQU5BQXNnQlVFQU5nSUFDd0pBSUFkRkRRQUNRQ0FESUFNb0FoeEJBblJCbktuQUFHb2lBQ2dDQUVjRVFDQUhRUkJCRkNBSEtBSVFJQU5HRzJvZ0FUWUNBQ0FCUlEwQ0RBRUxJQUFnQVRZQ0FDQUJEUUJCa0tmQUFFR1FwOEFBS0FJQVFYNGdBeWdDSEhkeE5nSUFEQUVMSUFFZ0J6WUNHQ0FES0FJUUlnQUVRQ0FCSUFBMkFoQWdBQ0FCTmdJWUN5QURRUlJxS0FJQUlnQkZEUUFnQVVFVWFpQUFOZ0lBSUFBZ0FUWUNHQXNDUUNBRVFSQlBCRUFnQXlBR1FRTnlOZ0lFSUFNZ0Jtb2lCU0FFUVFGeU5nSUVJQVFnQldvZ0JEWUNBQ0FFUVlBQ1R3UkFJQVZDQURjQ0VDQUZBbjlCQUNBRVFRaDJJZ0JGRFFBYVFSOGdCRUgvLy84SFN3MEFHaUFFUVFZZ0FHY2lBR3RCSDNGMlFRRnhJQUJCQVhSclFUNXFDeUlBTmdJY0lBQkJBblJCbktuQUFHb2hBZ0pBQWtBQ1FBSkFRWkNud0FBb0FnQWlBVUVCSUFCQkgzRjBJZ1p4QkVBZ0FpZ0NBQ0lDUVFScUtBSUFRWGh4SUFSSERRRWdBaUVBREFJTFFaQ253QUFnQVNBR2NqWUNBQ0FDSUFVMkFnQU1Bd3NnQkVFQVFSa2dBRUVCZG10QkgzRWdBRUVmUmh0MElRRURRQ0FDSUFGQkhYWkJCSEZxUVJCcUlnWW9BZ0FpQUVVTkFpQUJRUUYwSVFFZ0FDRUNJQUJCQkdvb0FnQkJlSEVnQkVjTkFBc0xJQUFvQWdnaUFpQUZOZ0lNSUFBZ0JUWUNDQ0FGUVFBMkFoZ2dCU0FBTmdJTUlBVWdBallDQ0F3RUN5QUdJQVUyQWdBTElBVWdBallDR0NBRklBVTJBZ3dnQlNBRk5nSUlEQUlMSUFSQkEzWWlBa0VEZEVHVXA4QUFhaUVBQW45QmpLZkFBQ2dDQUNJQlFRRWdBblFpQW5FRVFDQUFLQUlJREFFTFFZeW53QUFnQVNBQ2NqWUNBQ0FBQ3lFQ0lBQWdCVFlDQ0NBQ0lBVTJBZ3dnQlNBQU5nSU1JQVVnQWpZQ0NBd0JDeUFESUFRZ0Jtb2lBRUVEY2pZQ0JDQUFJQU5xSWdBZ0FDZ0NCRUVCY2pZQ0JBc2dBMEVJYWc4TEFrQUNRRUdNcDhBQUtBSUFJZ0ZCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1pCQTNZaUFIWWlBa0VEY1VVRVFDQUdRWnlxd0FBb0FnQk5EUU1nQWcwQlFaQ253QUFvQWdBaUFFVU5BeUFBUVFBZ0FHdHhhRUVDZEVHY3FjQUFhaWdDQUNJQlFRUnFLQUlBUVhoeElBWnJJUVFnQVNFQ0EwQWdBU2dDRUNJQVJRUkFJQUZCRkdvb0FnQWlBRVVOQkFzZ0FFRUVhaWdDQUVGNGNTQUdheUlCSUFRZ0FTQUVTU0lCR3lFRUlBQWdBaUFCR3lFQ0lBQWhBUXdBQ3dBTEFrQWdBa0YvYzBFQmNTQUFhaUlBUVFOMFFZeW53QUJxSWdOQkVHb29BZ0FpQWtFSWFpSUZLQUlBSWdRZ0EwRUlhaUlEUndSQUlBUWdBellDRENBRElBUTJBZ2dNQVF0QmpLZkFBQ0FCUVg0Z0FIZHhOZ0lBQ3lBQ0lBQkJBM1FpQUVFRGNqWUNCQ0FBSUFKcUlnQWdBQ2dDQkVFQmNqWUNCQ0FGRHdzQ1FFRUNJQUIwSWdSQkFDQUVhM0lnQWlBQWRIRWlBRUVBSUFCcmNXZ2lBa0VEZEVHTXA4QUFhaUlEUVJCcUtBSUFJZ0JCQ0dvaUJTZ0NBQ0lFSUFOQkNHb2lBMGNFUUNBRUlBTTJBZ3dnQXlBRU5nSUlEQUVMUVl5bndBQWdBVUYrSUFKM2NUWUNBQXNnQUNBR1FRTnlOZ0lFSUFBZ0Jtb2lBeUFDUVFOMElnSWdCbXNpQVVFQmNqWUNCQ0FBSUFKcUlBRTJBZ0JCbktyQUFDZ0NBQ0lBQkVBZ0FFRURkaUlFUVFOMFFaU253QUJxSVFCQnBLckFBQ2dDQUNFQ0FuOUJqS2ZBQUNnQ0FDSUdRUUVnQkVFZmNYUWlCSEVFUUNBQUtBSUlEQUVMUVl5bndBQWdCQ0FHY2pZQ0FDQUFDeUVFSUFBZ0FqWUNDQ0FFSUFJMkFnd2dBaUFBTmdJTUlBSWdCRFlDQ0F0QnBLckFBQ0FETmdJQVFaeXF3QUFnQVRZQ0FDQUZEd3NnQWlnQ0dDRUhBa0FDUUNBQ0lBSW9BZ3dpQVVZRVFDQUNRUlJCRUNBQ1FSUnFJZ0VvQWdBaUF4dHFLQUlBSWdBTkFVRUFJUUVNQWdzZ0FpZ0NDQ0lBSUFFMkFnd2dBU0FBTmdJSURBRUxJQUVnQWtFUWFpQURHeUVEQTBBZ0F5RUZJQUFpQVVFVWFpSURLQUlBSWdCRkJFQWdBVUVRYWlFRElBRW9BaEFoQUFzZ0FBMEFDeUFGUVFBMkFnQUxJQWRGRFFNZ0FpQUNLQUljUVFKMFFaeXB3QUJxSWdBb0FnQkhCRUFnQjBFUVFSUWdCeWdDRUNBQ1JodHFJQUUyQWdBZ0FVVU5CQXdEQ3lBQUlBRTJBZ0FnQVEwQ1FaQ253QUJCa0tmQUFDZ0NBRUYrSUFJb0FoeDNjVFlDQUF3REN3SkFBa0FDUUFKQUFrQkJuS3JBQUNnQ0FDSUFJQVpKQkVCQm9LckFBQ2dDQUNJQUlBWkxEUU5CQUNFQ0lBWkJyNEFFYWlJQVFSQjJRQUFpQVVGL1JnMEdJQUZCRUhRaUJVVU5Ca0dzcXNBQUlBQkJnSUI4Y1NJRVFheXF3QUFvQWdCcUlnQTJBZ0JCc0tyQUFFR3dxc0FBS0FJQUlnRWdBQ0FCSUFCTEd6WUNBRUdvcXNBQUtBSUFJZ05GRFFGQnRLckFBQ0VBQTBBZ0FDZ0NBQ0lCSUFBb0FnUWlCMm9nQlVZTkF5QUFLQUlJSWdBTkFBc01CQXRCcEtyQUFDZ0NBQ0VDQW44Z0FDQUdheUlCUVE5TkJFQkJwS3JBQUVFQU5nSUFRWnlxd0FCQkFEWUNBQ0FDSUFCQkEzSTJBZ1FnQUNBQ2FpSUJRUVJxSVFBZ0FTZ0NCRUVCY2d3QkMwR2Nxc0FBSUFFMkFnQkJwS3JBQUNBQ0lBWnFJZ1EyQWdBZ0JDQUJRUUZ5TmdJRUlBQWdBbW9nQVRZQ0FDQUNRUVJxSVFBZ0JrRURjZ3NoQVNBQUlBRTJBZ0FnQWtFSWFnOExRY2lxd0FBb0FnQWlBRUVBSUFBZ0JVMGJSUVJBUWNpcXdBQWdCVFlDQUF0QnpLckFBRUgvSHpZQ0FFRzBxc0FBSUFVMkFnQkJ3S3JBQUVFQU5nSUFRYmlxd0FBZ0JEWUNBRUdncDhBQVFaU253QUEyQWdCQnFLZkFBRUdjcDhBQU5nSUFRWnlud0FCQmxLZkFBRFlDQUVHd3A4QUFRYVNud0FBMkFnQkJwS2ZBQUVHY3A4QUFOZ0lBUWJpbndBQkJyS2ZBQURZQ0FFR3NwOEFBUWFTbndBQTJBZ0JCd0tmQUFFRzBwOEFBTmdJQVFiU253QUJCcktmQUFEWUNBRUhJcDhBQVFieW53QUEyQWdCQnZLZkFBRUcwcDhBQU5nSUFRZENud0FCQnhLZkFBRFlDQUVIRXA4QUFRYnlud0FBMkFnQkIyS2ZBQUVITXA4QUFOZ0lBUWN5bndBQkJ4S2ZBQURZQ0FFSGdwOEFBUWRTbndBQTJBZ0JCMUtmQUFFSE1wOEFBTmdJQVFkeW53QUJCMUtmQUFEWUNBRUhvcDhBQVFkeW53QUEyQWdCQjVLZkFBRUhjcDhBQU5nSUFRZkNud0FCQjVLZkFBRFlDQUVIc3A4QUFRZVNud0FBMkFnQkIrS2ZBQUVIc3A4QUFOZ0lBUWZTbndBQkI3S2ZBQURZQ0FFR0FxTUFBUWZTbndBQTJBZ0JCL0tmQUFFSDBwOEFBTmdJQVFZaW93QUJCL0tmQUFEWUNBRUdFcU1BQVFmeW53QUEyQWdCQmtLakFBRUdFcU1BQU5nSUFRWXlvd0FCQmhLakFBRFlDQUVHWXFNQUFRWXlvd0FBMkFnQkJsS2pBQUVHTXFNQUFOZ0lBUWFDb3dBQkJsS2pBQURZQ0FFR29xTUFBUVp5b3dBQTJBZ0JCbktqQUFFR1VxTUFBTmdJQVFiQ293QUJCcEtqQUFEWUNBRUdrcU1BQVFaeW93QUEyQWdCQnVLakFBRUdzcU1BQU5nSUFRYXlvd0FCQnBLakFBRFlDQUVIQXFNQUFRYlNvd0FBMkFnQkJ0S2pBQUVHc3FNQUFOZ0lBUWNpb3dBQkJ2S2pBQURZQ0FFRzhxTUFBUWJTb3dBQTJBZ0JCMEtqQUFFSEVxTUFBTmdJQVFjU293QUJCdktqQUFEWUNBRUhZcU1BQVFjeW93QUEyQWdCQnpLakFBRUhFcU1BQU5nSUFRZUNvd0FCQjFLakFBRFlDQUVIVXFNQUFRY3lvd0FBMkFnQkI2S2pBQUVIY3FNQUFOZ0lBUWR5b3dBQkIxS2pBQURZQ0FFSHdxTUFBUWVTb3dBQTJBZ0JCNUtqQUFFSGNxTUFBTmdJQVFmaW93QUJCN0tqQUFEWUNBRUhzcU1BQVFlU293QUEyQWdCQmdLbkFBRUgwcU1BQU5nSUFRZlNvd0FCQjdLakFBRFlDQUVHSXFjQUFRZnlvd0FBMkFnQkIvS2pBQUVIMHFNQUFOZ0lBUVpDcHdBQkJoS25BQURZQ0FFR0VxY0FBUWZ5b3dBQTJBZ0JCbUtuQUFFR01xY0FBTmdJQVFZeXB3QUJCaEtuQUFEWUNBRUdvcXNBQUlBVTJBZ0JCbEtuQUFFR01xY0FBTmdJQVFhQ3F3QUFnQkVGWWFpSUFOZ0lBSUFVZ0FFRUJjallDQkNBQUlBVnFRU2cyQWdSQnhLckFBRUdBZ0lBQk5nSUFEQU1MSUFCQkRHb29BZ0FnQlNBRFRYSWdBU0FEUzNJTkFTQUFJQVFnQjJvMkFnUkJxS3JBQUVHb3FzQUFLQUlBSWdCQkQycEJlSEVpQVVGNGFqWUNBRUdncXNBQVFhQ3F3QUFvQWdBZ0JHb2lCQ0FBSUFGcmFrRUlhaUlETmdJQUlBRkJmR29nQTBFQmNqWUNBQ0FBSUFScVFTZzJBZ1JCeEtyQUFFR0FnSUFCTmdJQURBSUxRYUNxd0FBZ0FDQUdheUlDTmdJQVFhaXF3QUJCcUtyQUFDZ0NBQ0lBSUFacUlnRTJBZ0FnQVNBQ1FRRnlOZ0lFSUFBZ0JrRURjallDQkNBQVFRaHFJUUlNQWd0QnlLckFBRUhJcXNBQUtBSUFJZ0FnQlNBQUlBVkpHellDQUNBRUlBVnFJUUZCdEtyQUFDRUFBa0FEUUNBQklBQW9BZ0JIQkVBZ0FDZ0NDQ0lBRFFFTUFnc0xJQUJCREdvb0FnQU5BQ0FBSUFVMkFnQWdBQ0FBS0FJRUlBUnFOZ0lFSUFVZ0JrRURjallDQkNBRklBWnFJUUFnQVNBRmF5QUdheUVHQWtBQ1FDQUJRYWlxd0FBb0FnQkhCRUJCcEtyQUFDZ0NBQ0FCUmcwQklBRkJCR29vQWdBaUFrRURjVUVCUmdSQUlBRWdBa0Y0Y1NJQ0VCRWdBaUFHYWlFR0lBRWdBbW9oQVFzZ0FTQUJLQUlFUVg1eE5nSUVJQUFnQmtFQmNqWUNCQ0FBSUFacUlBWTJBZ0FnQmtHQUFrOEVRQ0FBUWdBM0FoQWdBQUovUVFBZ0JrRUlkaUlDUlEwQUdrRWZJQVpCLy8vL0Iwc05BQm9nQmtFR0lBSm5JZ0pyUVI5eGRrRUJjU0FDUVFGMGEwRSthZ3NpQVRZQ0hDQUJRUUowUVp5cHdBQnFJUUlDUUFKQUFrQUNRRUdRcDhBQUtBSUFJZ1JCQVNBQlFSOXhkQ0lEY1FSQUlBSW9BZ0FpQWtFRWFpZ0NBRUY0Y1NBR1J3MEJJQUloQkF3Q0MwR1FwOEFBSUFNZ0JISTJBZ0FnQWlBQU5nSUFEQU1MSUFaQkFFRVpJQUZCQVhaclFSOXhJQUZCSDBZYmRDRUJBMEFnQWlBQlFSMTJRUVJ4YWtFUWFpSURLQUlBSWdSRkRRSWdBVUVCZENFQklBUWlBa0VFYWlnQ0FFRjRjU0FHUncwQUN3c2dCQ2dDQ0NJQ0lBQTJBZ3dnQkNBQU5nSUlJQUJCQURZQ0dDQUFJQVEyQWd3Z0FDQUNOZ0lJREFVTElBTWdBRFlDQUFzZ0FDQUNOZ0lZSUFBZ0FEWUNEQ0FBSUFBMkFnZ01Bd3NnQmtFRGRpSUJRUU4wUVpTbndBQnFJUUlDZjBHTXA4QUFLQUlBSWdSQkFTQUJkQ0lCY1FSQUlBSW9BZ2dNQVF0QmpLZkFBQ0FCSUFSeU5nSUFJQUlMSVFFZ0FpQUFOZ0lJSUFFZ0FEWUNEQ0FBSUFJMkFnd2dBQ0FCTmdJSURBSUxRYWlxd0FBZ0FEWUNBRUdncXNBQVFhQ3F3QUFvQWdBZ0Jtb2lBallDQUNBQUlBSkJBWEkyQWdRTUFRdEJwS3JBQUNBQU5nSUFRWnlxd0FCQm5LckFBQ2dDQUNBR2FpSUNOZ0lBSUFBZ0FrRUJjallDQkNBQUlBSnFJQUkyQWdBTElBVkJDR29QQzBHMHFzQUFJUUFEUUFKQUlBQW9BZ0FpQVNBRFRRUkFJQUVnQUNnQ0JHb2lCeUFEU3cwQkN5QUFLQUlJSVFBTUFRc0xRYWlxd0FBZ0JUWUNBRUdncXNBQUlBUkJXR29pQURZQ0FDQUZJQUJCQVhJMkFnUWdBQ0FGYWtFb05nSUVRY1Nxd0FCQmdJQ0FBVFlDQUNBRElBZEJZR3BCZUhGQmVHb2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUkJ0S3JBQUNrQ0FDRUpJQUZCRUdwQnZLckFBQ2tDQURjQ0FDQUJJQWszQWdoQndLckFBRUVBTmdJQVFiaXF3QUFnQkRZQ0FFRzBxc0FBSUFVMkFnQkJ2S3JBQUNBQlFRaHFOZ0lBSUFGQkhHb2hBQU5BSUFCQkJ6WUNBQ0FISUFCQkJHb2lBRXNOQUFzZ0FTQURSZzBBSUFFZ0FTZ0NCRUYrY1RZQ0JDQURJQUVnQTJzaUJVRUJjallDQkNBQklBVTJBZ0FnQlVHQUFrOEVRQ0FEUWdBM0FoQWdBMEVjYWdKL1FRQWdCVUVJZGlJQVJRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRUdJQUJuSWdCclFSOXhka0VCY1NBQVFRRjBhMEUrYWdzaUFEWUNBQ0FBUVFKMFFaeXB3QUJxSVFFQ1FBSkFBa0FDUUVHUXA4QUFLQUlBSWdSQkFTQUFRUjl4ZENJSGNRUkFJQUVvQWdBaUJFRUVhaWdDQUVGNGNTQUZSdzBCSUFRaEFBd0NDMEdRcDhBQUlBUWdCM0kyQWdBZ0FTQUROZ0lBSUFOQkdHb2dBVFlDQUF3REN5QUZRUUJCR1NBQVFRRjJhMEVmY1NBQVFSOUdHM1FoQVFOQUlBUWdBVUVkZGtFRWNXcEJFR29pQnlnQ0FDSUFSUTBDSUFGQkFYUWhBU0FBSVFRZ0FFRUVhaWdDQUVGNGNTQUZSdzBBQ3dzZ0FDZ0NDQ0lCSUFNMkFnd2dBQ0FETmdJSUlBTkJHR3BCQURZQ0FDQURJQUEyQWd3Z0F5QUJOZ0lJREFNTElBY2dBellDQUNBRFFSaHFJQVEyQWdBTElBTWdBellDRENBRElBTTJBZ2dNQVFzZ0JVRURkaUlCUVFOMFFaU253QUJxSVFBQ2YwR01wOEFBS0FJQUlnUkJBU0FCZENJQmNRUkFJQUFvQWdnTUFRdEJqS2ZBQUNBQklBUnlOZ0lBSUFBTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlDMEdncXNBQUtBSUFJZ0FnQmswTkFFR2dxc0FBSUFBZ0Jtc2lBallDQUVHb3FzQUFRYWlxd0FBb0FnQWlBQ0FHYWlJQk5nSUFJQUVnQWtFQmNqWUNCQ0FBSUFaQkEzSTJBZ1FnQUVFSWFnOExJQUlQQ3lBQklBYzJBaGdnQWlnQ0VDSUFCRUFnQVNBQU5nSVFJQUFnQVRZQ0dBc2dBa0VVYWlnQ0FDSUFSUTBBSUFGQkZHb2dBRFlDQUNBQUlBRTJBaGdMQWtBZ0JFRVFUd1JBSUFJZ0JrRURjallDQkNBQ0lBWnFJZ01nQkVFQmNqWUNCQ0FESUFScUlBUTJBZ0JCbktyQUFDZ0NBQ0lBQkVBZ0FFRURkaUlGUVFOMFFaU253QUJxSVFCQnBLckFBQ2dDQUNFQkFuOUJqS2ZBQUNnQ0FDSUdRUUVnQlVFZmNYUWlCWEVFUUNBQUtBSUlEQUVMUVl5bndBQWdCU0FHY2pZQ0FDQUFDeUVGSUFBZ0FUWUNDQ0FGSUFFMkFnd2dBU0FBTmdJTUlBRWdCVFlDQ0F0QnBLckFBQ0FETmdJQVFaeXF3QUFnQkRZQ0FBd0JDeUFDSUFRZ0Jtb2lBRUVEY2pZQ0JDQUFJQUpxSWdBZ0FDZ0NCRUVCY2pZQ0JBc2dBa0VJYWd2aEVBSVNmd0orSXdCQmdBRnJJZ1lrQUNBR0lBTTJBaXdnQmlBQ05nSW9Ba0FDZndKQUFrQUNRQUpBSUFFdEFFZEZCRUFnQVNrRE9DRVlJQUZDQURjRE9BSi9JQmhDLy84RGcxQkZCRUFnR0VJd2lLY2hFU0FZUWhDSXB5RU1JQmhDSUlpbkRBRUxJQVpCSUdvZ0FTQUdRU2hxRUNzZ0JpOEJJRVVFUUVFQklRME1CZ3RCQXlFTklBWXZBU0lpRENJQ0lBRXZBVUJQRFFVZ0FpQUJMd0ZDUmcwQ0lBRXZBVVFnREVILy93TnhSZzBESUFGQkdHb29BZ0JGRFFVZ0FVRW9haUFCUVJCcUlnY2dEQkFtR2lBQktBSVlJZ0lnREVILy93TnhJZ3BORFFRZ0J5Z0NBQ0FLUVFKMGFpSUNMUUFDSVJFZ0FpOEJBQXNoRXlBR1FSaHFJQUZCS0dvUVFpQUdLQUlZSVFJQ1FDQUdLQUljSWdjZ0JVMEVRQ0FIRFFGQkFTRVNRUUVoRFNBRklRZEJBUXdIQ3lBRlJRUkFRUUVoRFVFQUlRZEJBUXdIQ3lBRUlBSWdCUkJMR2lBQlFUQnFJZ0lnQWlnQ0FDQUZhallDQUVHSWc4QUFJUVJCQUNFTlFRQWhCMEVCREFZTElBUWdBaUFIRUVzZ0FVRXdhaUlDSUFJb0FnQWdCMm8yQWdBZ0Iyb2hCQ0FGSUFkcklRZEJBQ0VOUVFFTUJRc2dBRUVDT2dBSUlBQkNBRGNDQUF3RkN5QUJJQUV0QUVZaUIwRUJhaUlDT2dBS0lBRkJBU0FIUVE5eGRFRUNhanNCUUNBQlFYOGdBa0VQY1hSQmYzTTdBUWdnQVVFUWFpQUhFQTFCQUNFTVFRQWhEU0FGSVFkQkFBd0RDeUFCUVFFNkFFZEJBaUVOREFFTElBb2dBa0hvaHNBQUVEWUFDMEVBSVF3Z0JTRUhRUUFMSVFJZ0JrRTRha0VBTmdJQUlBWkNBRGNETUNBR1FjZ0Fha0VBTmdJQUlBWkNBRGNEUUNBR1Fmd0Fha0VBTmdJQUlBWkI5QUJxUVFBMkFnQWdCa0hzQUdwQkFEWUNBQ0FHUWVRQWFrRUFOZ0lBSUFaQjNBQnFRUUEyQWdBZ0JrSFlpY0FBTmdKNElBWkIySW5BQURZQ2NDQUdRZGlKd0FBMkFtZ2dCa0hZaWNBQU5nSmdJQVpCMkluQUFEWUNXQ0FHUVFBMkFsUWdCa0hZaWNBQU5nSlFBa0FDZndKQUlBSkZEUUFnQVVFUWFpRVVJQUZCS0dvaEZTQUdRY2dBYWlFWElBWkJQbW9oRmdKQUFrQUNRQUpBQWtBQ1FBSkFBa0FEUUFKQUFrQWdCdzBBSUFaQkVHb2dGUkJDSUFZb0FoUkZEUUJCQUNFSERBRUxJQUVnQmtFb2FoQVlRUUFoQ3lBWElSQkJBQ0VPQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQTBBZ0FTMEFDeUlDSUFFdEFBb2lDRWtOQVNBQklBSWdDR3M2QUFzZ0JrRXdhaUFMYWlJS0lBRXZBUWdpQWlBQktRTUFJQWl0aVNJWXAzRTdBUUFnQVNBWUlBS3RRbitGUW9DQWZJU0ROd01BSUE0RVFDQU9RWDlxUVFWTERRVWdCeUFMSUJacUx3RUFJZ0pKRFFZZ0VDQUVOZ0lBSUJCQkJHb2dBallDQUNBSElBSnJJUWNnQWlBRWFpRUVDeUFCTHdGQUlnSWdEbXBCLy84RGNTQUJMd0VJSUFFdEFFaHJRZi8vQTNGR0RRSWdDaThCQUNJS0lBRXZBVUpHSUFvZ0FrOXlEUUlnQ2lBQkx3RkVSZzBDSUFFb0FpUWlBaUFLVFEwR0lBY2dBU2dDSENBS1FRRjBhaThCQUNJQ1NRMENJQTVCQVdvaERpQUxJQlpxUVFKcUlBSTdBUUFnRUVFSWFpRVFJQXRCQW1vaUMwRU1SdzBBQzBFR0lRNUJCU0VRSUFZdkFUb2hDQXdIQ3lBT0RRRkJBU0FOSUJJYklRME1DQXNnRGtFQmFpRU9DeUFPUVFkUERRTWdCa0V3YWlBT1FYOXFJaEJCQVhScUx3RUFJUWdnRUEwRUlBd2hDZ3dGQ3lBT1FYOXFRUVpCbUlUQUFCQTJBQXRCNklIQUFFRWpRZmlDd0FBUVNBQUxJQW9nQWtHb2hNQUFFRFlBQ3lBT1FRWkJ1SVRBQUJBM0FBc2dCa0hRQUdvaEFpQUdRVEJxSVFzRFFDQUdRUWhxSUJRZ0ZDQUxMd0VBSWdvZ0FpZ0NBQ0FDUVFScUtBSUFFQ2tnREJBaklBWXRBQW9oRVNBR0x3RUlJUk1nQVNBQkx3RkFRUUZxT3dGQUlBdEJBbW9oQ3lBQ1FRaHFJUUlnQ2lFTUlCQkJmMm9pRUEwQUN5QU9RUU4wSUFacVFVQnJJZ0lvQWdRaENTQUNRUUEyQWdRZ0FpZ0NBQ0VQSUFKQmlJUEFBRFlDQUFzZ0NDSU1JQUV2QVVKR0RRTUNRQ0FCTHdGRUlBaEhCRUFnQ0NBQkx3RkFJZ0pORFFGQkF5RU5RUUFNRFFzZ0FVRUJPZ0JIUVFJaERVRUFEQXdMQW44Z0J3Si9Ba0FDUUNBQ0lBaEhCRUFnQVNnQ0pDSUNJQWhMRFFFZ0NDQUNRZGlFd0FBUU5nQUxJQUVvQWlRaUFpQUtRZi8vQTNFaUNFME5DQ0FISUFFb0Fod2dDRUVCZEdvdkFRQkJBV3BCLy84RGNTSUNUdzBCSUE4RVFDQUJLQUlzSWdJZ0NVa05DaUFCS0FJb0lBOGdDUkJMR2lBQklBazJBakFnQVNBSk5nSTBDMEVBSVE4Z0ZSQXpJUXRCQVF3REN5QUhJQUVvQWh3Z0NFRUJkR292QVFBaUFra0VRRUVBSVE4Z0ZTQVVJQXdRSmlFTFFRRU1Bd3NnRkNBTUlBUWdBaEFwSVFzZ0Fnd0JDeUFQUlFSQUlBRW9BaXdpQ0NBQktBSTBJZ2xKRFFrZ0ZTZ0NBQ0VQQ3lBSlJRMEVJQWtnQWtzTkNTQVBMUUFBSVFzZ0JDQVBJQWtRU3lBQ0lBbEdEUW9nQ1dvZ0N6b0FBQ0FDQ3lJSmF5RUhJQWtnQkNJUGFpRUVRUUFMSUFFb0FoaEIveDlOQkVBZ0JpQVVJQXNnQ2hBaklBRXZBVUFoRUNBR0xRQUNJUkVnQmk4QkFDRVRBa0FnQVMwQUNpSUlRUXRMRFFBZ0VDQUJMd0VJSWdvZ0FTMEFTR3RCLy84RGNVY05BQ0FCSUFoQkFXbzZBQW9nQVNBS1FRRjBRUUZ5T3dFSUN5QUJJQkJCQVdvN0FVQUxRUUFoRWtVTkFRc0xRZ0VoR1NBUFJRMEtJQUVvQWl3aUFpQUpTUTBISUFFb0FpZ2dEeUFKRUVzYUlBRWdDVFlDTUNBQklBazJBalFNQ2d0QkFFRUFRWWlGd0FBUU5nQUxJQUVRTkF3R0N5QUlJQUpCeUlUQUFCQTJBQXNnQ1NBQ1FlaUV3QUFRTndBTElBa2dDRUg0aE1BQUVEY0FDeUFKSUFKQm1JWEFBQkEzQUF0QkFFRUFRYWlGd0FBUU5nQUxJQWtnQWtHNGhjQUFFRGNBQzBFQUN5RU1RUUFoRTBFQUlSRUxJQUFnQlNBSGF6WUNCQ0FBSUFNZ0JpZ0NMQ0lDYXpZQ0FDQUFRUUFnRFNBRElBSkxHeUFOSUExQkFVWWJPZ0FJSUFFZ0RLMUMvLzhEZzBJUWhpQVpoQ0FUclVMLy93T0RRaUNHaENBUnJVTC9BWU5DTUlhRU53TTRDeUFHUVlBQmFpUUFDOVlRQWhGL0FuNGpBRUdBQVdzaUJpUUFJQVlnQXpZQ0xDQUdJQUkyQWlnQ1FBSi9Ba0FDUUFKQUFrQWdBUzBBUjBVRVFDQUJLUU00SVJjZ0FVSUFOd000QW44Z0YwTC8vd09EVUVVRVFDQVhRakNJcHlFUklCZENFSWluSVF3Z0YwSWdpS2NNQVFzZ0JrRWdhaUFCSUFaQktHb1FMaUFHTHdFZ1JRUkFRUUVoRFF3R0MwRURJUTBnQmk4QklpSU1JZ0lnQVM4QlFFOE5CU0FDSUFFdkFVSkdEUUlnQVM4QlJDQU1RZi8vQTNGR0RRTWdBVUVZYWlnQ0FFVU5CU0FCUVNocUlBRkJFR29pQnlBTUVDWWFJQUVvQWhnaUFpQU1RZi8vQTNFaUNVME5CQ0FIS0FJQUlBbEJBblJxSWdJdEFBSWhFU0FDTHdFQUN5RVNJQVpCR0dvZ0FVRW9haEJDSUFZb0FoZ2hBZ0pBSUFZb0Fod2lCeUFGVFFSQUlBY05BVUVCSVFoQkFTRU5JQVVoQjBFQkRBY0xJQVZGQkVCQkFTRU5RUUFoQjBFQkRBY0xJQVFnQWlBRkVFc2FJQUZCTUdvaUFpQUNLQUlBSUFWcU5nSUFRWWlEd0FBaEJFRUFJUTFCQUNFSFFRRU1CZ3NnQkNBQ0lBY1FTeUFCUVRCcUlnSWdBaWdDQUNBSGFqWUNBQ0FIYWlFRUlBVWdCMnNoQjBFQUlRMUJBUXdGQ3lBQVFRSTZBQWdnQUVJQU53SUFEQVVMSUFFZ0FTMEFSaUlIUVFGcUlnSTZBQW9nQVVFQklBZEJEM0YwUVFKcU93RkFJQUZCZnlBQ1FROXhkRUYvY3pzQkNDQUJRUkJxSUFjUURVRUFJUXhCQUNFTklBVWhCMEVBREFNTElBRkJBVG9BUjBFQ0lRME1BUXNnQ1NBQ1FlaUd3QUFRTmdBTFFRQWhEQ0FGSVFkQkFBc2hBaUFHUVRocVFRQTJBZ0FnQmtJQU53TXdJQVpCeUFCcVFRQTJBZ0FnQmtJQU53TkFJQVpCL0FCcVFRQTJBZ0FnQmtIMEFHcEJBRFlDQUNBR1Fld0Fha0VBTmdJQUlBWkI1QUJxUVFBMkFnQWdCa0hjQUdwQkFEWUNBQ0FHUWRpSndBQTJBbmdnQmtIWWljQUFOZ0p3SUFaQjJJbkFBRFlDYUNBR1FkaUp3QUEyQW1BZ0JrSFlpY0FBTmdKWUlBWkJBRFlDVkNBR1FkaUp3QUEyQWxBQ1FBSi9Ba0FnQWtVTkFDQUJRUkJxSVJNZ0FVRW9haUVVSUFaQnlBQnFJUllnQmtFK2FpRVZBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBTkFBa0FDUUNBSERRQWdCa0VRYWlBVUVFSWdCaWdDRkVVTkFFRUFJUWNNQVFzZ0FTQUdRU2hxRUNCQkFDRUxJQlloRUVFQUlRNENRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQURRQ0FCTFFBTElnSWdBUzBBQ2lJSlNRMEJJQUVnQWlBSmF6b0FDeUFCSUFFcEF3QWlGeUFKclVJL2c0ZzNBd0FnQmtFd2FpQUxhaUlKSUFFdkFRZ2dGNmR4T3dFQUlBNEVRQ0FPUVg5cVFRVkxEUVVnQnlBTElCVnFMd0VBSWdKSkRRWWdFQ0FFTmdJQUlCQkJCR29nQWpZQ0FDQUhJQUpySVFjZ0FpQUVhaUVFQ3lBQkx3RkFJZ0lnRG1wQi8vOERjU0FCTHdFSUlBRXRBRWhyUWYvL0EzRkdEUUlnQ1M4QkFDSUpJQUV2QVVKR0lBa2dBazl5RFFJZ0NTQUJMd0ZFUmcwQ0lBRW9BaVFpQWlBSlRRMEdJQWNnQVNnQ0hDQUpRUUYwYWk4QkFDSUNTUTBDSUE1QkFXb2hEaUFMSUJWcVFRSnFJQUk3QVFBZ0VFRUlhaUVRSUF0QkFtb2lDMEVNUncwQUMwRUdJUTVCQlNFUUlBWXZBVG9oQ0F3SEN5QU9EUUZCQVNBTklBZ2JJUTBNQ0FzZ0RrRUJhaUVPQ3lBT1FRZFBEUU1nQmtFd2FpQU9RWDlxSWhCQkFYUnFMd0VBSVFnZ0VBMEVJQXdoQ1F3RkN5QU9RWDlxUVFaQm1JVEFBQkEyQUF0QjZJSEFBRUVqUWZpQ3dBQVFTQUFMSUFrZ0FrR29oTUFBRURZQUN5QU9RUVpCdUlUQUFCQTNBQXNnQmtIUUFHb2hBaUFHUVRCcUlRc0RRQ0FHUVFocUlCTWdFeUFMTHdFQUlna2dBaWdDQUNBQ1FRUnFLQUlBRUNrZ0RCQWpJQVl0QUFvaEVTQUdMd0VJSVJJZ0FTQUJMd0ZBUVFGcU93RkFJQXRCQW1vaEN5QUNRUWhxSVFJZ0NTRU1JQkJCZjJvaUVBMEFDeUFPUVFOMElBWnFRVUJySWdJb0FnUWhDaUFDUVFBMkFnUWdBaWdDQUNFUElBSkJpSVBBQURZQ0FBc2dDQ0lNSUFFdkFVSkdEUU1DUUNBQkx3RkVJQWhIQkVBZ0NDQUJMd0ZBSWdKTkRRRkJBeUVOUVFBTURRc2dBVUVCT2dCSFFRSWhEVUVBREF3TEFuOGdCd0ovQWtBQ1FDQUNJQWhIQkVBZ0FTZ0NKQ0lDSUFoTERRRWdDQ0FDUWRpRXdBQVFOZ0FMSUFFb0FpUWlBaUFKUWYvL0EzRWlDRTBOQ0NBSElBRW9BaHdnQ0VFQmRHb3ZBUUJCQVdwQi8vOERjU0lDVHcwQklBOEVRQ0FCS0FJc0lnSWdDa2tOQ2lBQktBSW9JQThnQ2hCTEdpQUJJQW8yQWpBZ0FTQUtOZ0kwQzBFQUlROGdGQkF6SVF0QkFRd0RDeUFISUFFb0Fod2dDRUVCZEdvdkFRQWlBa2tFUUVFQUlROGdGQ0FUSUF3UUppRUxRUUVNQXdzZ0V5QU1JQVFnQWhBcElRc2dBZ3dCQ3lBUFJRUkFJQUVvQWl3aUNDQUJLQUkwSWdwSkRRa2dGQ2dDQUNFUEN5QUtSUTBFSUFvZ0Frc05DU0FQTFFBQUlRc2dCQ0FQSUFvUVN5QUNJQXBHRFFvZ0Ntb2dDem9BQUNBQ0N5SUtheUVISUFvZ0JDSVBhaUVFUVFBTElBRW9BaGhCL3g5TkJFQWdCaUFUSUFzZ0NSQWpJQUV2QVVBaEVDQUdMUUFDSVJFZ0JpOEJBQ0VTQWtBZ0FTMEFDaUlJUVF0TERRQWdFQ0FCTHdFSUlna2dBUzBBU0d0Qi8vOERjVWNOQUNBQklBaEJBV282QUFvZ0FTQUpRUUYwUVFGeU93RUlDeUFCSUJCQkFXbzdBVUFMUVFBaENFVU5BUXNMUWdFaEdDQVBSUTBLSUFFb0Fpd2lBaUFLU1EwSElBRW9BaWdnRHlBS0VFc2FJQUVnQ2pZQ01DQUJJQW8yQWpRTUNndEJBRUVBUVlpRndBQVFOZ0FMSUFFUU5Bd0dDeUFJSUFKQnlJVEFBQkEyQUFzZ0NpQUNRZWlFd0FBUU53QUxJQW9nQ0VINGhNQUFFRGNBQ3lBS0lBSkJtSVhBQUJBM0FBdEJBRUVBUWFpRndBQVFOZ0FMSUFvZ0FrRzRoY0FBRURjQUMwRUFDeUVNUVFBaEVrRUFJUkVMSUFBZ0JTQUhhellDQkNBQUlBTWdCaWdDTENJQ2F6WUNBQ0FBUVFBZ0RTQURJQUpMR3lBTklBMUJBVVliT2dBSUlBRWdESzFDLy84RGcwSVFoaUFZaENBU3JVTC8vd09EUWlDR2hDQVJyVUwvQVlOQ01JYUVOd000Q3lBR1FZQUJhaVFBQzZvSUFRWi9Jd0JCOEFCcklnVWtBQ0FGSUFNMkFnd2dCU0FDTmdJSVFRRWhCeUFCSVFZQ1FDQUJRWUVDU1EwQVFRQWdBV3NoQ1VHQUFpRUlBMEFDUUNBSUlBRlBEUUJCQUNFSElBQWdDR29zQUFCQnYzOU1EUUFnQ0NFR0RBSUxJQWhCZjJvaEJrRUFJUWNnQ0VFQlJnMEJJQWdnQ1dvZ0JpRUlRUUZIRFFBTEN5QUZJQVkyQWhRZ0JTQUFOZ0lRSUFWQkFFRUZJQWNiTmdJY0lBVkI4SXZBQUVIQWtzQUFJQWNiTmdJWUFrQUNmd0pBQWtBZ0FpQUJTeUlISUFNZ0FVdHlSUVJBSUFJZ0Ewc05BUUpBSUFKRklBRWdBa1p5UlFSQUlBRWdBazBOQVNBQUlBSnFMQUFBUVVCSURRRUxJQU1oQWdzZ0JTQUNOZ0lnSUFKQkFDQUJJQUpIRzBVRVFDQUNJUWNNQXdzZ0FVRUJhaUVEQTBBQ1FDQUNJQUZQRFFBZ0FDQUNhaXdBQUVGQVNBMEFJQUloQnlBRlFTUnFEQVVMSUFKQmYyb2hCeUFDUVFGR0RRTWdBaUFEUmlBSElRSkZEUUFMREFJTElBVWdBaUFESUFjYk5nSW9JQVZCeEFCcVFRTTJBZ0FnQlVIY0FHcEJIVFlDQUNBRlFkUUFha0VkTmdJQUlBVkNBemNDTkNBRlFlaVN3QUEyQWpBZ0JVRWNOZ0pNSUFVZ0JVSElBR28yQWtBZ0JTQUZRUmhxTmdKWUlBVWdCVUVRYWpZQ1VDQUZJQVZCS0dvMkFrZ01Bd3NnQlVIa0FHcEJIVFlDQUNBRlFkd0Fha0VkTmdJQUlBVkIxQUJxUVJ3MkFnQWdCVUhFQUdwQkJEWUNBQ0FGUWdRM0FqUWdCVUdrazhBQU5nSXdJQVZCSERZQ1RDQUZJQVZCeUFCcU5nSkFJQVVnQlVFWWFqWUNZQ0FGSUFWQkVHbzJBbGdnQlNBRlFReHFOZ0pRSUFVZ0JVRUlhallDU0F3Q0N5QUZRU1JxQ3lFSUFrQWdBU0FIUmcwQVFRRWhBd0pBQWtBQ1FDQUFJQWRxSWdZc0FBQWlBa0YvVEFSQVFRQWhBeUFBSUFGcUlnRWhBQ0FCSUFaQkFXcEhCRUFnQmkwQUFVRS9jU0VESUFaQkFtb2hBQXNnQWtFZmNTRUpJQUpCL3dGeFFkOEJTdzBCSUFNZ0NVRUdkSEloQWd3Q0N5QUZJQUpCL3dGeE5nSWtJQVZCS0dvaEFRd0NDMEVBSVFvZ0FTRUdJQUFnQVVjRVFDQUFMUUFBUVQ5eElRb2dBRUVCYWlFR0N5QUtJQU5CQm5SeUlRQWdBa0gvQVhGQjhBRkpCRUFnQUNBSlFReDBjaUVDREFFTFFRQWhBaUFCSUFaSEJIOGdCaTBBQUVFL2NRVkJBQXNnQ1VFU2RFR0FnUEFBY1NBQVFRWjBjbklpQWtHQWdNUUFSZzBDQ3lBRklBSTJBaVJCQVNFRElBVkJLR29oQVNBQ1FZQUJTUTBBUVFJaEF5QUNRWUFRU1EwQVFRTkJCQ0FDUVlDQUJFa2JJUU1MSUFVZ0J6WUNLQ0FGSUFNZ0IybzJBaXdnQlVIRUFHcEJCVFlDQUNBRlFld0Fha0VkTmdJQUlBVkI1QUJxUVIwMkFnQWdCVUhjQUdwQkhqWUNBQ0FGUWRRQWFrRWZOZ0lBSUFWQ0JUY0NOQ0FGUWZpVHdBQTJBakFnQlNBQk5nSllJQVVnQ0RZQ1VDQUZRUncyQWt3Z0JTQUZRY2dBYWpZQ1FDQUZJQVZCR0dvMkFtZ2dCU0FGUVJCcU5nSmdJQVVnQlVFZ2FqWUNTQXdCQzBIOGk4QUFRU3NnQkJCSUFBc2dCVUV3YWlBRUVGRUFDOUlJQVFWL0lBQkJlR29pQVNBQVFYeHFLQUlBSWdOQmVIRWlBR29oQWdKQUFrQWdBMEVCY1EwQUlBTkJBM0ZGRFFFZ0FTZ0NBQ0lESUFCcUlRQWdBU0FEYXlJQlFhU3F3QUFvQWdCR0JFQWdBaWdDQkVFRGNVRURSdzBCUVp5cXdBQWdBRFlDQUNBQ0lBSW9BZ1JCZm5FMkFnUWdBU0FBUVFGeU5nSUVJQUFnQVdvZ0FEWUNBQThMSUFFZ0F4QVJDd0pBSUFKQkJHb2lCQ2dDQUNJRFFRSnhCRUFnQkNBRFFYNXhOZ0lBSUFFZ0FFRUJjallDQkNBQUlBRnFJQUEyQWdBTUFRc0NRQ0FDUWFpcXdBQW9BZ0JIQkVCQnBLckFBQ2dDQUNBQ1JnMEJJQUlnQTBGNGNTSUNFQkVnQVNBQUlBSnFJZ0JCQVhJMkFnUWdBQ0FCYWlBQU5nSUFJQUZCcEtyQUFDZ0NBRWNOQWtHY3FzQUFJQUEyQWdBUEMwR29xc0FBSUFFMkFnQkJvS3JBQUVHZ3FzQUFLQUlBSUFCcUlnQTJBZ0FnQVNBQVFRRnlOZ0lFUWFTcXdBQW9BZ0FnQVVZRVFFR2Nxc0FBUVFBMkFnQkJwS3JBQUVFQU5nSUFDMEhFcXNBQUtBSUFJZ0lnQUU4TkFrR29xc0FBS0FJQUlnQkZEUUlDUUVHZ3FzQUFLQUlBSWdOQktVa05BRUcwcXNBQUlRRURRQ0FCS0FJQUlnUWdBRTBFUUNBRUlBRW9BZ1JxSUFCTERRSUxJQUVvQWdnaUFRMEFDd3RCektyQUFBSi9RZjhmUWJ5cXdBQW9BZ0FpQUVVTkFCcEJBQ0VCQTBBZ0FVRUJhaUVCSUFBb0FnZ2lBQTBBQ3lBQlFmOGZJQUZCL3g5TEd3czJBZ0FnQXlBQ1RRMENRY1Nxd0FCQmZ6WUNBQThMUWFTcXdBQWdBVFlDQUVHY3FzQUFRWnlxd0FBb0FnQWdBR29pQURZQ0FDQUJJQUJCQVhJMkFnUWdBQ0FCYWlBQU5nSUFEd3RCektyQUFBSi9Ba0FnQUVHQUFrOEVRQ0FCUWdBM0FoQWdBVUVjYWdKL1FRQWdBRUVJZGlJQ1JRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FFRUdJQUpuSWdKclFSOXhka0VCY1NBQ1FRRjBhMEUrYWdzaUF6WUNBQ0FEUVFKMFFaeXB3QUJxSVFJQ1FBSkFBa0FDUUFKQVFaQ253QUFvQWdBaUJFRUJJQU5CSDNGMElnVnhCRUFnQWlnQ0FDSUNRUVJxS0FJQVFYaHhJQUJIRFFFZ0FpRUREQUlMUVpDbndBQWdCQ0FGY2pZQ0FDQUNJQUUyQWdBTUF3c2dBRUVBUVJrZ0EwRUJkbXRCSDNFZ0EwRWZSaHQwSVFRRFFDQUNJQVJCSFhaQkJIRnFRUkJxSWdVb0FnQWlBMFVOQWlBRVFRRjBJUVFnQXlJQ1FRUnFLQUlBUVhoeElBQkhEUUFMQ3lBREtBSUlJZ0FnQVRZQ0RDQURJQUUyQWdnZ0FVRVlha0VBTmdJQUlBRWdBellDRENBQklBQTJBZ2dNQWdzZ0JTQUJOZ0lBQ3lBQlFSaHFJQUkyQWdBZ0FTQUJOZ0lNSUFFZ0FUWUNDQXRCektyQUFFSE1xc0FBS0FJQVFYOXFJZ0EyQWdBZ0FBMERRYnlxd0FBb0FnQWlBQTBCUWY4ZkRBSUxJQUJCQTNZaUFrRURkRUdVcDhBQWFpRUFBbjlCaktmQUFDZ0NBQ0lEUVFFZ0FuUWlBbkVFUUNBQUtBSUlEQUVMUVl5bndBQWdBaUFEY2pZQ0FDQUFDeUVDSUFBZ0FUWUNDQ0FDSUFFMkFnd2dBU0FBTmdJTUlBRWdBallDQ0E4TFFRQWhBUU5BSUFGQkFXb2hBU0FBS0FJSUlnQU5BQXNnQVVIL0h5QUJRZjhmU3hzTE5nSUFDd3VXQndFS2Z5QUFLQUlRSVFNQ1FBSkFBa0FnQUNnQ0NDSU1RUUZIQkVBZ0EwRUJSZzBCREFNTElBTkJBVWNOQVFzZ0FTQUNhaUVEQWtBQ1FDQUFRUlJxS0FJQUlnaEZCRUFnQVNFRURBRUxJQUVoQkFOQUlBTWdCQ0lIUmcwQ0lBZEJBV29oQkFKQUlBY3NBQUFpQmtGL1NnMEFJQVpCL3dGeElRa0NmeUFESUFSR0JFQkJBQ0VLSUFNTUFRc2dCeTBBQVVFL2NTRUtJQWRCQW1vaUJBc2hCaUFKUWVBQlNRMEFBbjhnQXlBR1JnUkFRUUFoQ3lBRERBRUxJQVl0QUFCQlAzRWhDeUFHUVFGcUlnUUxJUVlnQ1VId0FVa05BQ0FESUFaR0JIOUJBQVVnQmtFQmFpRUVJQVl0QUFCQlAzRUxJQWxCRW5SQmdJRHdBSEVnQ2tFTWRISWdDMEVHZEhKeVFZQ0F4QUJHRFFNTElBUWdCMnNnQldvaEJTQUlRWDlxSWdnTkFBc0xJQU1nQkVZTkFBSkFJQVFzQUFBaUIwRi9TZzBBQW44Z0F5QUVRUUZxUmdSQUlBTWhDRUVBREFFTElBUkJBbW9oQ0NBRUxRQUJRVDl4UVFaMEN5QUhRZjhCY1VIZ0FVa05BQUovSUFNZ0NFWUVRQ0FESVFaQkFBd0JDeUFJUVFGcUlRWWdDQzBBQUVFL2NRc2dCMEgvQVhGQjhBRkpEUUFnQjBIL0FYRWhCM0loQkNBRElBWkdCSDlCQUFVZ0JpMEFBRUUvY1FzZ0IwRVNkRUdBZ1BBQWNTQUVRUVowY25KQmdJREVBRVlOQVFzQ1FDQUZSU0FDSUFWR2NrVUVRRUVBSVFNZ0JTQUNUdzBCSUFFZ0JXb3NBQUJCUUVnTkFRc2dBU0VEQ3lBRklBSWdBeHNoQWlBRElBRWdBeHNoQVFzZ0RFRUJSZzBBREFFTEFrQWdBZ1JBUVFBaEJDQUNJUVVnQVNFREEwQWdCQ0FETFFBQVFjQUJjVUdBQVVacUlRUWdBMEVCYWlFRElBVkJmMm9pQlEwQUN5QUNJQVJySUFBb0Fnd2lCazhOQWtFQUlRUWdBaUVGSUFFaEF3TkFJQVFnQXkwQUFFSEFBWEZCZ0FGR2FpRUVJQU5CQVdvaEF5QUZRWDlxSWdVTkFBc01BUXRCQUNFRUlBQW9BZ3dpQmcwQURBRUxRUUFoQXlBRUlBSnJJQVpxSWdRaEJRSkFBa0FDUUVFQUlBQXRBQ0FpQmlBR1FRTkdHMEVEY1VFQmF3NERBUUFCQWdzZ0JFRUJkaUVESUFSQkFXcEJBWFloQlF3QkMwRUFJUVVnQkNFREN5QURRUUZxSVFNQ1FBTkFJQU5CZjJvaUF3UkFJQUFvQWhnZ0FDZ0NCQ0FBS0FJY0tBSVFFUUFBUlEwQkRBSUxDeUFBS0FJRUlRUWdBQ2dDR0NBQklBSWdBQ2dDSENnQ0RCRUJBQTBBSUFWQkFXb2hBeUFBS0FJY0lRRWdBQ2dDR0NFQUEwQWdBMEYvYWlJRFJRUkFRUUFQQ3lBQUlBUWdBU2dDRUJFQUFFVU5BQXNMUVFFUEN5QUFLQUlZSUFFZ0FpQUFRUnhxS0FJQUtBSU1FUUVBQzdzR0FRUi9JQUFnQVdvaEFnSkFBa0FnQUVFRWFpZ0NBQ0lEUVFGeERRQWdBMEVEY1VVTkFTQUFLQUlBSWdNZ0FXb2hBU0FBSUFOcklnQkJwS3JBQUNnQ0FFWUVRQ0FDS0FJRVFRTnhRUU5IRFFGQm5LckFBQ0FCTmdJQUlBSWdBaWdDQkVGK2NUWUNCQ0FBSUFGQkFYSTJBZ1FnQWlBQk5nSUFEd3NnQUNBREVCRUxBa0FnQWtFRWFpZ0NBQ0lEUVFKeEJFQWdBa0VFYWlBRFFYNXhOZ0lBSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBTUFRc0NRQ0FDUWFpcXdBQW9BZ0JIQkVCQnBLckFBQ2dDQUNBQ1JnMEJJQUlnQTBGNGNTSUNFQkVnQUNBQklBSnFJZ0ZCQVhJMkFnUWdBQ0FCYWlBQk5nSUFJQUJCcEtyQUFDZ0NBRWNOQWtHY3FzQUFJQUUyQWdBUEMwR29xc0FBSUFBMkFnQkJvS3JBQUVHZ3FzQUFLQUlBSUFGcUlnRTJBZ0FnQUNBQlFRRnlOZ0lFSUFCQnBLckFBQ2dDQUVjTkFrR2Nxc0FBUVFBMkFnQkJwS3JBQUVFQU5nSUFEd3RCcEtyQUFDQUFOZ0lBUVp5cXdBQkJuS3JBQUNnQ0FDQUJhaUlCTmdJQUlBQWdBVUVCY2pZQ0JDQUFJQUZxSUFFMkFnQVBDeUFCUVlBQ1R3UkFJQUJDQURjQ0VDQUFRUnhxQW45QkFDQUJRUWgySWdKRkRRQWFRUjhnQVVILy8vOEhTdzBBR2lBQlFRWWdBbWNpQW10QkgzRjJRUUZ4SUFKQkFYUnJRVDVxQ3lJRE5nSUFJQU5CQW5SQm5LbkFBR29oQWdKQUFrQUNRQUpBUVpDbndBQW9BZ0FpQkVFQklBTkJIM0YwSWdWeEJFQWdBaWdDQUNJQ1FRUnFLQUlBUVhoeElBRkhEUUVnQWlFRERBSUxRWkNud0FBZ0JDQUZjallDQUNBQ0lBQTJBZ0FNQXdzZ0FVRUFRUmtnQTBFQmRtdEJIM0VnQTBFZlJodDBJUVFEUUNBQ0lBUkJIWFpCQkhGcVFSQnFJZ1VvQWdBaUEwVU5BaUFFUVFGMElRUWdBeUlDUVFScUtBSUFRWGh4SUFGSERRQUxDeUFES0FJSUlnRWdBRFlDRENBRElBQTJBZ2dnQUVFWWFrRUFOZ0lBSUFBZ0F6WUNEQ0FBSUFFMkFnZ1BDeUFGSUFBMkFnQUxJQUJCR0dvZ0FqWUNBQ0FBSUFBMkFnd2dBQ0FBTmdJSUR3c2dBVUVEZGlJQ1FRTjBRWlNud0FCcUlRRUNmMEdNcDhBQUtBSUFJZ05CQVNBQ2RDSUNjUVJBSUFFb0FnZ01BUXRCaktmQUFDQUNJQU55TmdJQUlBRUxJUUlnQVNBQU5nSUlJQUlnQURZQ0RDQUFJQUUyQWd3Z0FDQUNOZ0lJQ3d1cUJnRUhmd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBRUdBZ0FSUEJFQWdBRUdBZ0FoSkRRRWdBRUcxMlhOcVFiWGJLMGtnQUVIaWkzUnFRZUlMU1hJZ0FFR2ZxSFJxUVo4WVNTQUFRZDdpZEdwQkRrbHljaUFBUWY3Ly93QnhRWjd3Q2tZZ0FFR2lzblZxUVNKSmNpQUFRY3VSZFdwQkMwbHljZzBDSUFCQjhJTTRTUThMSUFCQmdQNERjVUVJZGlFR1FlaVV3QUFoQVNBQVFmOEJjU0VIQTBBQ1FDQUJRUUpxSVFVZ0FpQUJMUUFCSWdScUlRTWdCaUFCTFFBQUlnRkhCRUFnQVNBR1N3MEJJQU1oQWlBRklnRkJ1cFhBQUVjTkFnd0JDeUFESUFKSkRRUWdBMEdpQWtzTkJTQUNRYnFWd0FCcUlRRUNRQU5BSUFSRkRRRWdCRUYvYWlFRUlBRXRBQUFnQVVFQmFpRUJJQWRIRFFBTFFRQWhCQXdFQ3lBRElRSWdCU0lCUWJxVndBQkhEUUVMQ3lBQVFmLy9BM0VoQTBIY2w4QUFJUUZCQVNFRUEwQWdBVUVCYWlFQUFuOGdBQ0FCTFFBQUlnSkJHSFJCR0hVaUJVRUFUZzBBR2lBQVFaR2F3QUJHRFFZZ0FTMEFBU0FGUWY4QWNVRUlkSEloQWlBQlFRSnFDeUVCSUFNZ0Ftc2lBMEVBU0EwQ0lBUkJBWE1oQkNBQlFaR2F3QUJIRFFBTERBRUxJQUJCZ1A0RGNVRUlkaUVHUVpHYXdBQWhBU0FBUWY4QmNTRUhBMEFDUUNBQlFRSnFJUVVnQWlBQkxRQUJJZ1JxSVFNZ0JpQUJMUUFBSWdGSEJFQWdBU0FHU3cwQklBTWhBaUFGSWdGQjNackFBRWNOQWd3QkN5QURJQUpKRFFZZ0EwR3ZBVXNOQnlBQ1FkMmF3QUJxSVFFQ1FBTkFJQVJGRFFFZ0JFRi9haUVFSUFFdEFBQWdBVUVCYWlFQklBZEhEUUFMUVFBaEJBd0RDeUFESVFJZ0JTSUJRZDJhd0FCSERRRUxDeUFBUWYvL0EzRWhBMEdNbk1BQUlRRkJBU0VFQTBBZ0FVRUJhaUVBQW44Z0FDQUJMUUFBSWdKQkdIUkJHSFVpQlVFQVRnMEFHaUFBUWErZndBQkdEUWdnQVMwQUFTQUZRZjhBY1VFSWRISWhBaUFCUVFKcUN5RUJJQU1nQW1zaUEwRUFTQTBCSUFSQkFYTWhCQ0FCUWErZndBQkhEUUFMQ3lBRVFRRnhEd3NnQWlBRFFjaVV3QUFRT0FBTElBTkJvZ0pCeUpUQUFCQTNBQXRCL0l2QUFFRXJRZGlVd0FBUVNBQUxJQUlnQTBISWxNQUFFRGdBQ3lBRFFhOEJRY2lVd0FBUU53QUxRZnlMd0FCQkswSFlsTUFBRUVnQUM3RUZBUWQvUVN0QmdJREVBQ0FBS0FJQUlnbEJBWEVpQlJzaENpQUVJQVZxSVFnQ1FDQUpRUVJ4UlFSQVFRQWhBUXdCQ3lBQ0JFQWdBaUVHSUFFaEJRTkFJQWNnQlMwQUFFSEFBWEZCZ0FGR2FpRUhJQVZCQVdvaEJTQUdRWDlxSWdZTkFBc0xJQUlnQ0dvZ0Iyc2hDQXNDUUFKQUlBQW9BZ2hCQVVjRVFDQUFJQW9nQVNBQ0VFWU5BUXdDQ3lBQVFReHFLQUlBSWdZZ0NFMEVRQ0FBSUFvZ0FTQUNFRVlOQVF3Q0N3SkFBa0FDUUFKQUlBbEJDSEVFUUNBQUtBSUVJUWtnQUVFd05nSUVJQUF0QUNBaEN5QUFRUUU2QUNBZ0FDQUtJQUVnQWhCR0RRVkJBQ0VGSUFZZ0NHc2lBU0VDUVFFZ0FDMEFJQ0lHSUFaQkEwWWJRUU54UVFGckRnTUNBUUlEQzBFQUlRVWdCaUFJYXlJR0lRZ0NRQUpBQWtCQkFTQUFMUUFnSWdjZ0IwRURSaHRCQTNGQkFXc09Bd0VBQVFJTElBWkJBWFloQlNBR1FRRnFRUUYySVFnTUFRdEJBQ0VJSUFZaEJRc2dCVUVCYWlFRkEwQWdCVUYvYWlJRlJRMEVJQUFvQWhnZ0FDZ0NCQ0FBS0FJY0tBSVFFUUFBUlEwQUMwRUJEd3NnQVVFQmRpRUZJQUZCQVdwQkFYWWhBZ3dCQzBFQUlRSWdBU0VGQ3lBRlFRRnFJUVVDUUFOQUlBVkJmMm9pQlVVTkFTQUFLQUlZSUFBb0FnUWdBQ2dDSENnQ0VCRUFBRVVOQUF0QkFROExJQUFvQWdRaEFTQUFLQUlZSUFNZ0JDQUFLQUljS0FJTUVRRUFEUUVnQWtFQmFpRUhJQUFvQWh3aEFpQUFLQUlZSVFNRFFDQUhRWDlxSWdjRVFDQURJQUVnQWlnQ0VCRUFBRVVOQVF3REN3c2dBQ0FMT2dBZ0lBQWdDVFlDQkVFQUR3c2dBQ2dDQkNFRklBQWdDaUFCSUFJUVJnMEFJQUFvQWhnZ0F5QUVJQUFvQWh3b0Fnd1JBUUFOQUNBSVFRRnFJUWNnQUNnQ0hDRUJJQUFvQWhnaEFBTkFJQWRCZjJvaUIwVUVRRUVBRHdzZ0FDQUZJQUVvQWhBUkFBQkZEUUFMQzBFQkR3c2dBQ2dDR0NBRElBUWdBRUVjYWlnQ0FDZ0NEQkVCQUF2MEJRRUtmeU1BUVRCcklnTWtBQ0FEUVNScUlBRTJBZ0FnQTBFRE9nQW9JQU5DZ0lDQWdJQUVOd01JSUFNZ0FEWUNJQ0FEUVFBMkFoZ2dBMEVBTmdJUUFuOENRQUpBQWtBZ0FpZ0NDQ0lFQkVBZ0FpZ0NBQ0VHSUFJb0FnUWlDQ0FDUVF4cUtBSUFJZ1VnQlNBSVN4c2lCVVVOQVNBQUlBWW9BZ0FnQmlnQ0JDQUJLQUlNRVFFQURRTWdCa0VNYWlFQUlBSW9BaFFoQnlBQ0tBSVFJUW9nQlNFSkEwQWdBeUFFUVJ4cUxRQUFPZ0FvSUFNZ0JFRUVhaWtDQUVJZ2lUY0RDQ0FFUVJocUtBSUFJUUpCQUNFTFFRQWhBUUpBQWtBQ1FDQUVRUlJxS0FJQVFRRnJEZ0lBQWdFTElBSWdCMDhFUUNBQ0lBZEJ0SkRBQUJBMkFBc2dBa0VEZENBS2FpSU1LQUlFUVNCSERRRWdEQ2dDQUNnQ0FDRUNDMEVCSVFFTElBTWdBallDRkNBRElBRTJBaEFnQkVFUWFpZ0NBQ0VDQWtBQ1FBSkFJQVJCREdvb0FnQkJBV3NPQWdBQ0FRc2dBaUFIVHdSQUlBSWdCMEcwa01BQUVEWUFDeUFDUVFOMElBcHFJZ0VvQWdSQklFY05BU0FCS0FJQUtBSUFJUUlMUVFFaEN3c2dBeUFDTmdJY0lBTWdDellDR0NBRUtBSUFJZ0VnQjBrRVFDQUtJQUZCQTNScUlnRW9BZ0FnQTBFSWFpQUJLQUlFRVFBQURRVWdDVUYvYWlJSlJRMEVJQVJCSUdvaEJDQUFRWHhxSVFFZ0FDZ0NBQ0VDSUFCQkNHb2hBQ0FES0FJZ0lBRW9BZ0FnQWlBREtBSWtLQUlNRVFFQVJRMEJEQVVMQ3lBQklBZEJwSkRBQUJBMkFBc2dBaWdDQUNFR0lBSW9BZ1FpQ0NBQ1FSUnFLQUlBSWdVZ0JTQUlTeHNpQlVVTkFDQUNLQUlRSVFRZ0FDQUdLQUlBSUFZb0FnUWdBU2dDREJFQkFBMENJQVpCREdvaEFDQUZJUUlEUUNBRUtBSUFJQU5CQ0dvZ0JFRUVhaWdDQUJFQUFBMERJQUpCZjJvaUFrVU5BaUFFUVFocUlRUWdBRUY4YWlFQklBQW9BZ0FoQ1NBQVFRaHFJUUFnQXlnQ0lDQUJLQUlBSUFrZ0F5Z0NKQ2dDREJFQkFFVU5BQXNNQWd0QkFDRUZDeUFJSUFWTEJFQWdBeWdDSUNBR0lBVkJBM1JxSWdBb0FnQWdBQ2dDQkNBREtBSWtLQUlNRVFFQURRRUxRUUFNQVF0QkFRc2dBMEV3YWlRQUM0MEZBUWQvQWtBZ0FVSE0vM3RMRFFCQkVDQUJRUXRxUVhoeElBRkJDMGtiSVFJZ0FFRjhhaUlGS0FJQUlnWkJlSEVoQXdKQUFrQUNRQUpBQWtBQ1FDQUdRUU54QkVBZ0FFRjRhaUlISUFOcUlRZ2dBeUFDVHcwQlFhaXF3QUFvQWdBZ0NFWU5Ba0drcXNBQUtBSUFJQWhHRFFNZ0NFRUVhaWdDQUNJR1FRSnhEUVlnQmtGNGNTSUdJQU5xSWdNZ0FrOE5CQXdHQ3lBQ1FZQUNTU0FESUFKQkJISkpjaUFESUFKclFZR0FDRTl5RFFVTUJBc2dBeUFDYXlJQlFSQkpEUU1nQlNBQ0lBWkJBWEZ5UVFKeU5nSUFJQUlnQjJvaUJDQUJRUU55TmdJRUlBZ2dDQ2dDQkVFQmNqWUNCQ0FFSUFFUUJnd0RDMEdncXNBQUtBSUFJQU5xSWdNZ0FrME5BeUFGSUFJZ0JrRUJjWEpCQW5JMkFnQWdBaUFIYWlJQklBTWdBbXNpQkVFQmNqWUNCRUdncXNBQUlBUTJBZ0JCcUtyQUFDQUJOZ0lBREFJTFFaeXF3QUFvQWdBZ0Eyb2lBeUFDU1EwQ0FrQWdBeUFDYXlJQlFROU5CRUFnQlNBR1FRRnhJQU55UVFKeU5nSUFJQU1nQjJvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQVF3QkN5QUZJQUlnQmtFQmNYSkJBbkkyQWdBZ0FpQUhhaUlFSUFGQkFYSTJBZ1FnQXlBSGFpSUNJQUUyQWdBZ0FpQUNLQUlFUVg1eE5nSUVDMEdrcXNBQUlBUTJBZ0JCbktyQUFDQUJOZ0lBREFFTElBZ2dCaEFSSUFNZ0Ftc2lBVUVRVHdSQUlBVWdBaUFGS0FJQVFRRnhja0VDY2pZQ0FDQUNJQWRxSWdRZ0FVRURjallDQkNBRElBZHFJZ0lnQWlnQ0JFRUJjallDQkNBRUlBRVFCZ3dCQ3lBRklBTWdCU2dDQUVFQmNYSkJBbkkyQWdBZ0F5QUhhaUlCSUFFb0FnUkJBWEkyQWdRTElBQWhCQXdCQ3lBQkVBQWlBa1VOQUNBQ0lBQWdBVUY4UVhnZ0JTZ0NBQ0lFUVFOeEd5QUVRWGh4YWlJRUlBUWdBVXNiRUVzZ0FCQUVEd3NnQkF2MEJBRUpmeU1BUVRCcklnUWtBQUpBQW44Z0FnUkFJQVJCS0dvaENRTkFBa0FnQUNnQ0NDMEFBRVVOQUNBQUtBSUFRY2lOd0FCQkJDQUFLQUlFS0FJTUVRRUFSUTBBUVFFTUF3c2dCRUVLTmdJb0lBUkNpb0NBZ0JBM0F5QWdCQ0FDTmdJY1FRQWhCU0FFUVFBMkFoZ2dCQ0FDTmdJVUlBUWdBVFlDRUVFQklRY2dBU0VHSUFJaUF5RUlBbjhDUUFKQUEwQWdCU0FHYWlFR0lBUWdCMnBCSjJvdEFBQWhDZ0pBQWtBQ1FDQURRUWROQkVBZ0EwVU5BU0FJSUFWcklRdEJBQ0VEQTBBZ0F5QUdhaTBBQUNBS1JnMEVJQXNnQTBFQmFpSURSdzBBQ3d3QkN5QUVRUWhxSUFvZ0JpQURFQlFnQkNnQ0NFRUJSZzBCSUFRb0Fod2hDQXNnQkNBSU5nSVlEQVFMSUFRb0Fnd2hBeUFFS0FJa0lRY2dCQ2dDR0NFRkN5QUVJQU1nQldwQkFXb2lCVFlDR0FKQUFrQWdCU0FIU1FSQUlBUW9BaFFoQXd3QkN5QUVLQUlVSWdNZ0JVa05BQ0FIUVFWUERRTWdCU0FIYXlJR0lBUW9BaEJxSWdnZ0NVWU5BU0FJSUFrZ0J4QkVSUTBCQ3lBRUtBSWNJZ2dnQlVrZ0F5QUlTWElOQXlBSUlBVnJJUU1nQkNnQ0VDRUdEQUVMQ3lBQUtBSUlRUUU2QUFBZ0JrRUJhZ3dDQ3lBSFFRUkJzSkxBQUJBM0FBc2dBQ2dDQ0VFQU9nQUFJQUlMSVFNZ0FDZ0NCQ0VHSUFBb0FnQWhCUUpBQWtBZ0EwVWdBaUFEUm5KRkJFQWdBaUFEU3dSQUlBRWdBMm9pQnl3QUFFRy9mMG9OQWdzZ0FTQUNRUUFnQTBITWpjQUFFQU1BQ3lBRklBRWdBeUFHS0FJTUVRRUFSUTBCUVFFTUJBdEJBU0FGSUFFZ0F5QUdLQUlNRVFFQURRTWFJQWNzQUFCQnYzOU1EUVFMSUFFZ0Eyb2hBU0FDSUFOcklnSU5BQXNMUVFBTElBUkJNR29rQUE4TElBRWdBaUFESUFKQjNJM0FBQkFEQUF1NkF3RUVmeU1BUVJCcklnSWtBQ0FBS0FJQUlRUUNRQUpBQWtBQ2Z3SkFBa0FnQVVHQUFVOEVRQ0FDUVFBMkFnd2dBVUdBRUVrTkFTQUNRUXhxSVFBZ0FVR0FnQVJKQkVBZ0FpQUJRVDl4UVlBQmNqb0FEaUFDSUFGQkRIWkI0QUZ5T2dBTUlBSWdBVUVHZGtFL2NVR0FBWEk2QUExQkF5RUJEQVlMSUFJZ0FVRS9jVUdBQVhJNkFBOGdBaUFCUVJKMlFmQUJjam9BRENBQ0lBRkJCblpCUDNGQmdBRnlPZ0FPSUFJZ0FVRU1ka0UvY1VHQUFYSTZBQTFCQkNFQkRBVUxJQVFvQWdnaUFDQUVRUVJxS0FJQVJ3UkFJQVFvQWdBaEJRd0VDd0pBSUFCQkFXb2lBeUFBU1EwQUlBQkJBWFFpQlNBRElBVWdBMHNiSWdOQkNDQURRUWhMR3lFRElBQUVRQ0FEUVFCSURRRWdCQ2dDQUNJRlJRMERJQVVnQUVFQklBTVFWUXdFQ3lBRFFRQk9EUUlMRUYwQUN5QUNJQUZCUDNGQmdBRnlPZ0FOSUFJZ0FVRUdka0hBQVhJNkFBd2dBa0VNYWlFQVFRSWhBUXdEQ3lBRFFRRVFXUXNpQlFSQUlBUWdCVFlDQUNBRVFRUnFJQU0yQWdBZ0JDZ0NDQ0VBREFFTElBTkJBUkJqQUFzZ0FDQUZhaUFCT2dBQUlBUWdCQ2dDQ0VFQmFqWUNDQXdCQ3lBRUlBQWdBQ0FCYWhBZkN5QUNRUkJxSkFCQkFBdTBBd0VFZnlBQVFRQTJBZ2dnQUVFVWFrRUFOZ0lBSUFGQkQzRWhCQ0FBUVF4cUlRSkJBQ0VCQTBBZ0FDZ0NCQ0FCUmdSQUlBQWdBUkE4SUFBb0FnZ2hBUXNnQUNnQ0FDQUJRUUowYWlJQklBTTZBQUlnQVVFQU93RUFJQUFnQUNnQ0NFRUJhallDQ0NBQUtBSVVJZ0VnQUNnQ0VFWUVRQ0FDSUFFUU95QUFLQUlVSVFFTElBQW9BZ3dnQVVFQmRHcEJBVHNCQUNBQUlBQW9BaFJCQVdvMkFoUWdBQ2dDQ0NFQklBTkJBV29pQlNFRElBVkIvLzhEY1NBRWRrVU5BQXNnQUNnQ0JDQUJSZ1JBSUFBZ0FSQThJQUFvQWdnaEFRc2dBQ2dDQUNBQlFRSjBhaUlCUVFBNkFBSWdBVUVBT3dFQUlBQWdBQ2dDQ0VFQmFqWUNDQ0FBS0FJVUlnRWdBQ2dDRUVZRVFDQUNJQUVRT3lBQUtBSVVJUUVMSUFBb0Fnd2dBVUVCZEdwQkFEc0JBQ0FBSUFBb0FoUkJBV28yQWhRZ0FDZ0NDQ0lCSUFBb0FnUkdCRUFnQUNBQkVEd2dBQ2dDQ0NFQkN5QUFLQUlBSUFGQkFuUnFJZ0ZCQURvQUFpQUJRUUE3QVFBZ0FDQUFLQUlJUVFGcU5nSUlJQUFvQWhRaUFTQUFLQUlRUmdSQUlBSWdBUkE3SUFBb0FoUWhBUXNnQUNnQ0RDQUJRUUYwYWtFQU93RUFJQUFnQUNnQ0ZFRUJhallDRkF2K0F3SURmd0YrSUFFb0FoaEJKeUFCUVJ4cUtBSUFLQUlRRVFBQVJRUkFRZlFBSVFOQkFpRUNBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlBRUYzYWc0ZkJRRURBd0FEQXdNREF3TURBd01EQXdNREF3TURBd01EQXdRREF3TURCQUlMUWZJQUlRTU1CQXRCN2dBaEF3d0RDeUFBUWR3QVJnMEJDd0ovQW40Q1FDQUFFQTlGQkVBZ0FCQUhSUTBCUVFFTUF3c2dBRUVCY21kQkFuWkJCM090UW9DQWdJRFFBSVFNQVFzZ0FFRUJjbWRCQW5aQkIzT3RRb0NBZ0lEUUFJUUxJUVZCQXdzaEFpQUFJUU1NQVFzZ0FDRURDd05BSUFJaEJFSGNBQ0VBUVFFaEFnSkFBbjRDUUFKQUFrQUNRQ0FFUVFGckRnTUJCUUFDQ3dKQUFrQUNRQUpBSUFWQ0lJaW5RZjhCY1VFQmF3NEZBd0lCQUFZRkMwSDFBQ0VBSUFWQy8vLy8vNDlnZzBLQWdJQ0FNSVFNQmd0Qit3QWhBQ0FGUXYvLy8vK1BZSU5DZ0lDQWdDQ0VEQVVMUVRCQjF3QWdBeUFGcHlJRVFRSjBRUnh4ZGtFUGNTSUFRUXBKR3lBQWFpRUFJQVZDZjN4Qy8vLy8vdytESUFWQ2dJQ0FnSENEaENBRURRUWFJQVZDLy8vLy80OWdnMEtBZ0lDQUVJUU1CQXRCL1FBaEFDQUZRdi8vLy8rUFlJTU1Bd3RCQUNFQ0lBTWhBQXdEQ3lBQktBSVlRU2NnQVNnQ0hDZ0NFQkVBQUE4TElBVkMvLy8vLzQ5Z2cwS0FnSUNBd0FDRUN5RUZRUU1oQWdzZ0FTZ0NHQ0FBSUFFb0Fod29BaEFSQUFCRkRRQUxDMEVCQzZBREFRVi9Ba0FDUUVFQVFROGdBRUdrbWdSSkd5SUJJQUZCQ0dvaUFTQUJRUUowUVppZ3dBQnFLQUlBUVF0MElBQkJDM1FpQWtzYklnRWdBVUVFYWlJQklBRkJBblJCbUtEQUFHb29BZ0JCQzNRZ0Frc2JJZ0VnQVVFQ2FpSUJJQUZCQW5SQm1LREFBR29vQWdCQkMzUWdBa3NiSWdFZ0FVRUJhaUlCSUFGQkFuUkJtS0RBQUdvb0FnQkJDM1FnQWtzYklnTkJBblJCbUtEQUFHb29BZ0JCQzNRaUFTQUNSaUFCSUFKSmFpQURhaUlDUVI1TkJFQkJzUVVoQkNBQ1FSNUhCRUFnQWtFQ2RFR2NvTUFBYWlnQ0FFRVZkaUVFQzBFQUlRRWdBa0YvYWlJRElBSk5CRUFnQTBFZlR3MERJQU5CQW5SQm1LREFBR29vQWdCQi8vLy9BSEVoQVFzQ1FDQUVJQUpCQW5SQm1LREFBR29vQWdCQkZYWWlBMEVCYWtZTkFDQUFJQUZySVFJZ0EwR3hCU0FEUWJFRlN4c2hCU0FFUVg5cUlRRkJBQ0VBQTBBZ0F5QUZSZzBESUFBZ0EwR1VvY0FBYWkwQUFHb2lBQ0FDU3cwQklBRWdBMEVCYWlJRFJ3MEFDeUFCSVFNTElBTkJBWEVQQ3lBQ1FSOUIySi9BQUJBMkFBc2dCVUd4QlVIb244QUFFRFlBQ3lBRFFSOUIrSi9BQUJBMkFBdm9BZ0VGZndKQVFjMy9leUFBUVJBZ0FFRVFTeHNpQUdzZ0FVME5BQ0FBUVJBZ0FVRUxha0Y0Y1NBQlFRdEpHeUlFYWtFTWFoQUFJZ0pGRFFBZ0FrRjRhaUVCQWtBZ0FFRi9haUlESUFKeFJRUkFJQUVoQUF3QkN5QUNRWHhxSWdVb0FnQWlCa0Y0Y1NBQ0lBTnFRUUFnQUd0eFFYaHFJZ0lnQUNBQ2FpQUNJQUZyUVJCTEd5SUFJQUZySWdKcklRTWdCa0VEY1FSQUlBQWdBeUFBS0FJRVFRRnhja0VDY2pZQ0JDQUFJQU5xSWdNZ0F5Z0NCRUVCY2pZQ0JDQUZJQUlnQlNnQ0FFRUJjWEpCQW5JMkFnQWdBQ0FBS0FJRVFRRnlOZ0lFSUFFZ0FoQUdEQUVMSUFFb0FnQWhBU0FBSUFNMkFnUWdBQ0FCSUFKcU5nSUFDd0pBSUFCQkJHb29BZ0FpQVVFRGNVVU5BQ0FCUVhoeElnSWdCRUVRYWswTkFDQUFRUVJxSUFRZ0FVRUJjWEpCQW5JMkFnQWdBQ0FFYWlJQklBSWdCR3NpQkVFRGNqWUNCQ0FBSUFKcUlnSWdBaWdDQkVFQmNqWUNCQ0FCSUFRUUJnc2dBRUVJYWlFREN5QURDNFVEQVFSL0FrQUNRQ0FCUVlBQ1R3UkFJQUJCR0dvb0FnQWhCQUpBQWtBZ0FDQUFLQUlNSWdKR0JFQWdBRUVVUVJBZ0FFRVVhaUlDS0FJQUlnTWJhaWdDQUNJQkRRRkJBQ0VDREFJTElBQW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0JDeUFDSUFCQkVHb2dBeHNoQXdOQUlBTWhCU0FCSWdKQkZHb2lBeWdDQUNJQlJRUkFJQUpCRUdvaEF5QUNLQUlRSVFFTElBRU5BQXNnQlVFQU5nSUFDeUFFUlEwQ0lBQWdBRUVjYWlnQ0FFRUNkRUdjcWNBQWFpSUJLQUlBUndSQUlBUkJFRUVVSUFRb0FoQWdBRVliYWlBQ05nSUFJQUpGRFFNTUFnc2dBU0FDTmdJQUlBSU5BVUdRcDhBQVFaQ253QUFvQWdCQmZpQUFLQUljZDNFMkFnQVBDeUFBUVF4cUtBSUFJZ0lnQUVFSWFpZ0NBQ0lBUndSQUlBQWdBallDRENBQ0lBQTJBZ2dQQzBHTXA4QUFRWXlud0FBb0FnQkJmaUFCUVFOMmQzRTJBZ0FNQVFzZ0FpQUVOZ0lZSUFBb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQUJCRkdvb0FnQWlBRVVOQUNBQ1FSUnFJQUEyQWdBZ0FDQUNOZ0lZQ3d1akF3SUVmd0orSXdCQlFHb2lBaVFBUVFFaEJBSkFJQUF0QUFRTkFDQUFMUUFGSVFVZ0FDZ0NBQ0lETFFBQVFRUnhSUVJBSUFNb0FoaEI4WTNBQUVIempjQUFJQVViUVFKQkF5QUZHeUFEUVJ4cUtBSUFLQUlNRVFFQURRRWdBQ2dDQUNJREtBSVlRYzZtd0FCQkJ5QURRUnhxS0FJQUtBSU1FUUVBRFFFZ0FDZ0NBQ0lES0FJWVFhZU13QUJCQWlBRFFSeHFLQUlBS0FJTUVRRUFEUUVnQVNBQUtBSUFRWlNnd0FBb0FnQVJBQUFoQkF3QkN5QUZSUVJBSUFNb0FoaEI3STNBQUVFRElBTkJIR29vQWdBb0Fnd1JBUUFOQVNBQUtBSUFJUU1MSUFKQkFUb0FGeUFDUVRScVFiQ053QUEyQWdBZ0FpQURLUUlZTndNSUlBSWdBa0VYYWpZQ0VDQURLUUlJSVFZZ0F5a0NFQ0VISUFJZ0F5MEFJRG9BT0NBQ0lBYzNBeWdnQWlBR053TWdJQUlnQXlrQ0FEY0RHQ0FDSUFKQkNHbzJBakFnQWtFSWFrSE9wc0FBUVFjUUN3MEFJQUpCQ0dwQnA0ekFBRUVDRUFzTkFDQUJJQUpCR0dwQmxLREFBQ2dDQUJFQUFBMEFJQUlvQWpCQjc0M0FBRUVDSUFJb0FqUW9BZ3dSQVFBaEJBc2dBRUVCT2dBRklBQWdCRG9BQkNBQ1FVQnJKQUFMNWdJQ0JuOEJmaU1BUVRCcklnUWtBQ0FFUVJCcUVDb2dCQ0FFS0FJVUlnVTJBaHdnQkNBRUtBSVFJZ1kyQWhnZ0JFRUlhaUFEUVFBUVFDQUVLUU1JSVFvZ0FFRUFOZ0lJSUFBZ0NqY0NBQUpBQWtBZ0F3UkFRUUFoQmtFQUlRVURRQ0FBSUFWQmdDQVFPaUFBSUFNZ0FDZ0NCQ0lISUFjZ0Ewc2JFRThnQmlBQ1N3MENJQUFvQWdBaENDQUFLQUlJSWdjZ0JVa05BeUFFUVNCcUlBUkJHR29pQ1NnQ0FDQUJJQVpxSUFJZ0Jtc2dCU0FJYWlBSElBVnJJQWtvQWdRb0Fnd1JDQUFnQkNnQ0pDQUZhaUVISUFRb0FpQWhDQ0FBS0FJSUlnVWdCMDhFUUNBQUtBSUFHaUFBSUFjMkFnZ2dCeUVGQ3lBRUxRQW9RUUpIQkVBZ0JpQUlhaUVHSUFVZ0Ewa05BUXNMSUFRb0FoZ2hCaUFFS0FJY0lRVUxJQVlnQlNnQ0FCRURBQ0FFS0FJY0lnQW9BZ2dhSUFRb0FoZ2hBU0FBS0FJRUJFQWdBUkFFQ3lBRVFUQnFKQUFQQ3lBR0lBSkJ5SUhBQUJBNUFBc2dCU0FIUWRpQndBQVFPUUFMMkFJQkJYOENRQUpBQWtBQ1FBSkFJQUpCQTJwQmZIRWdBbXNpQkVVTkFDQURJQVFnQkNBRFN4c2lCVVVOQUVFQUlRUWdBVUgvQVhFaEJnSkFBMEFnQWlBRWFpMEFBQ0FHUmcwQklBVWdCRUVCYWlJRVJ3MEFDeUFGSUFOQmVHb2lCRTBOQWd3REMwRUJJUWNNQXdzZ0EwRjRhaUVFUVFBaEJRc2dBVUgvQVhGQmdZS0VDR3doQmdOQUlBSWdCV29pQjBFRWFpZ0NBQ0FHY3lJSVFYOXpJQWhCLy8zN2QycHhJQWNvQWdBZ0JuTWlCMEYvY3lBSFFmLzkrM2RxY1hKQmdJR0NoSGh4UlFSQUlBVkJDR29pQlNBRVRRMEJDd3NnQlNBRFN3MENDMEVBSVFZQ2YwRUFJQU1nQlVZTkFCb2dBaUFGYWlFQ0lBTWdCV3NoQmtFQUlRUWdBVUgvQVhFaEFRSkFBMEFnQWlBRWFpMEFBQ0FCUmcwQklBWWdCRUVCYWlJRVJ3MEFDMEVBREFFTElBUWhCa0VCQ3lFSElBVWdCbW9oQkFzZ0FDQUVOZ0lFSUFBZ0J6WUNBQThMSUFVZ0EwSG9rTUFBRURrQUM3NENBZ1YvQVg0akFFRXdheUlFSkFCQkp5RUNBa0FnQUVLUXpnQlVCRUFnQUNFSERBRUxBMEFnQkVFSmFpQUNhaUlEUVh4cUlBQWdBRUtRemdDQUlnZENrTTRBZm4ybklnVkIvLzhEY1VIa0FHNGlCa0VCZEVHbWpzQUFhaThBQURzQUFDQURRWDVxSUFVZ0JrSGtBR3hyUWYvL0EzRkJBWFJCcG83QUFHb3ZBQUE3QUFBZ0FrRjhhaUVDSUFCQy84SFhMMVlnQnlFQURRQUxDeUFIcHlJRFFlTUFTZ1JBSUFKQmZtb2lBaUFFUVFscWFpQUhweUlESUFOQi8vOERjVUhrQUc0aUEwSGtBR3hyUWYvL0EzRkJBWFJCcG83QUFHb3ZBQUE3QUFBTEFrQWdBMEVLVGdSQUlBSkJmbW9pQWlBRVFRbHFhaUFEUVFGMFFhYU93QUJxTHdBQU93QUFEQUVMSUFKQmYyb2lBaUFFUVFscWFpQURRVEJxT2dBQUN5QUJRZkNMd0FCQkFDQUVRUWxxSUFKcVFTY2dBbXNRQ0NBRVFUQnFKQUFMb3dJQ0JIOEJmaU1BUVVCcUlnUWtBQUpBQWtBQ1FDQUNJQU5xSWdNZ0FrOEVRQ0FCS0FJRUlRVWdCRUVZYWtLQmdJQ0FFRGNEQUNBRUtBSWNJZ0pCZjJvaUJpQUVLQUlZYWtFQUlBSnJJZ2R4clNBRlFRRjBJZ1VnQXlBRklBTkxHeUlEUVFnZ0EwRUlTeHV0ZmlJSVFpQ0lweUFDUlhJTkFTQUNhVUVCUmdSQUlBaW5JQVpxSUFkeElRTU1Bd3NnQkVFd2FoQXdBQXNnQkVFSWFpQURRUUFRV2lBQUlBUXBBd2czQWdSQkFTRUNEQUlMUVFBaEFnc2dCRUV3YWlBQkVFMGdCRUVnYWlBRElBSWdCRUV3YWhBbFFRRWhBaUFFUVNocUtBSUFJUU1nQkNnQ0pDRUZJQVFvQWlCQkFVY0VRQ0FCSUFVZ0F4QmFRUUFoQWd3QkN5QUVRUkJxSUFVZ0F4QmFJQUFnQkNrREVEY0NCQXNnQUNBQ05nSUFJQVJCUUdza0FBdXVBZ0VJZnlNQVFUQnJJZ0VrQUVHQUlDRUNJQUZCR0dvUUx5QUJLQUljSVFRZ0FTZ0NHQ0VGSUFGQkVHb1FNaUFCS0FJVUlRWWdBU2dDRUNFSElBRkJDR3BCZ0NCQkFSQkFJQUZCZ0NBMkFpZ2dBU0FCS0FJTUlnZzJBaVFnQVNBQktBSUlJZ00yQWlBZ0NFR0JJRThFUUNBQlFTQnFRWUFnRUVVZ0FTZ0NJQ0VESUFFb0FpZ2hBZ3NnQUVFQU93QkhJQUJCQURzQk9DQUFJQU0yQWlnZ0FDQUZOZ0lRSUFCQkNEb0FSaUFBUVFBNkFBc2dBRUlBTndNQUlBQkJNR3BDQURjREFDQUFRU3hxSUFJMkFnQWdBRUVrYWtFQU5nSUFJQUJCSUdvZ0JqWUNBQ0FBUVJ4cUlBYzJBZ0FnQUVFWWFrRUFOZ0lBSUFCQkZHb2dCRFlDQUNBQVFRazZBQW9nQUVHQUFqc0JRaUFBUVlFQ093RkVJQUJCZ2dJN0FVQWdBRUgvQXpzQkNDQUJRVEJxSkFBTHh3SUNCWDhCZmlNQVFSQnJJZ01rQUNBQUxRQUxJUUlnQTBJQU53TUlJQUVvQWdBaEJRSkFBa0FnQUFKL0lBRW9BZ1FpQkVIQUFDQUNheUlHUWZnQmNVRURkaUlDU1FSQUlBUkJDVThOQWlBRFFRaHFJQVVnQkJCTEdpQUJRUUEyQWdRZ0FVR0lnOEFBTmdJQUlBUkJBM1FNQVFzZ0JrSC9BWEZCeUFCUERRSWdBMEVJYWlBRklBSVFTeG9nQVNBRUlBSnJOZ0lFSUFFZ0FpQUZhallDQUNBR1FmZ0JjUXNnQUMwQUN5SUJham9BQ3lBQUlBQXBBd0FnQXlrRENDSUhRamlHSUFkQ0tJWkNnSUNBZ0lDQXdQOEFnNFFnQjBJWWhrS0FnSUNBZ09BL2d5QUhRZ2lHUW9DQWdJRHdINE9FaENBSFFnaUlRb0NBZ1BnUGd5QUhRaGlJUW9DQS9BZURoQ0FIUWlpSVFvRCtBNE1nQjBJNGlJU0VoQ0FCUVQ5eHJZaUVOd01BSUFOQkVHb2tBQThMSUFSQkNFSFloY0FBRURjQUN5QUNRUWhCeUlYQUFCQTNBQXVxQWdFRGZ5TUFRWUFCYXlJRUpBQUNRQUpBQW44Q1FDQUJLQUlBSWdOQkVIRkZCRUFnQUNnQ0FDRUNJQU5CSUhFTkFTQUNyU0FCRUJVTUFnc2dBQ2dDQUNFQ1FRQWhBQU5BSUFBZ0JHcEIvd0JxSUFKQkQzRWlBMEV3Y2lBRFFkY0FhaUFEUVFwSkd6b0FBQ0FBUVg5cUlRQWdBa0VFZGlJQ0RRQUxJQUJCZ0FGcUlnSkJnUUZQRFFJZ0FVR2tqc0FBUVFJZ0FDQUVha0dBQVdwQkFDQUFheEFJREFFTFFRQWhBQU5BSUFBZ0JHcEIvd0JxSUFKQkQzRWlBMEV3Y2lBRFFUZHFJQU5CQ2trYk9nQUFJQUJCZjJvaEFDQUNRUVIySWdJTkFBc2dBRUdBQVdvaUFrR0JBVThOQWlBQlFhU093QUJCQWlBQUlBUnFRWUFCYWtFQUlBQnJFQWdMSUFSQmdBRnFKQUFQQ3lBQ1FZQUJRWlNPd0FBUU9RQUxJQUpCZ0FGQmxJN0FBQkE1QUF1eEFnRUVmeU1BUVVCcUlnSWtBQ0FCS0FJRUlnTkZCRUFnQVVFRWFpRURJQUVvQWdBaEJDQUNRUUEyQWlBZ0FrSUJOd01ZSUFJZ0FrRVlhallDSkNBQ1FUaHFJQVJCRUdvcEFnQTNBd0FnQWtFd2FpQUVRUWhxS1FJQU53TUFJQUlnQkNrQ0FEY0RLQ0FDUVNScVFkaUp3QUFnQWtFb2FoQUpHaUFDUVJCcUlnUWdBaWdDSURZQ0FDQUNJQUlwQXhnM0F3Z0NRQ0FCS0FJRUlnVkZEUUFnQVVFSWFpZ0NBRVVOQUNBRkVBUUxJQU1nQWlrRENEY0NBQ0FEUVFocUlBUW9BZ0EyQWdBZ0F5Z0NBQ0VEQ3lBQlFRRTJBZ1FnQVVFTWFpZ0NBQ0VFSUFGQkNHb2lBU2dDQUNFRklBRkNBRGNDQUVFTVFRUVFXU0lCUlFSQVFReEJCQkJqQUFzZ0FTQUVOZ0lJSUFFZ0JUWUNCQ0FCSUFNMkFnQWdBRUdRaThBQU5nSUVJQUFnQVRZQ0FDQUNRVUJySkFBTC9BRUJBbjhqQUVFUWF5SUNKQUFnQUNnQ0FDQUNRUUEyQWd3Q2Z3SkFBa0FnQVVHQUFVOEVRQ0FCUVlBUVNRMEJJQUpCREdvaEFDQUJRWUNBQkU4TkFpQUNJQUZCUDNGQmdBRnlPZ0FPSUFJZ0FVRU1ka0hnQVhJNkFBd2dBaUFCUVFaMlFUOXhRWUFCY2pvQURVRUREQU1MSUFJZ0FUb0FEQ0FDUVF4cUlRQkJBUXdDQ3lBQ0lBRkJQM0ZCZ0FGeU9nQU5JQUlnQVVFR2RrSEFBWEk2QUF3Z0FrRU1haUVBUVFJTUFRc2dBaUFCUVQ5eFFZQUJjam9BRHlBQ0lBRkJFblpCOEFGeU9nQU1JQUlnQVVFR2RrRS9jVUdBQVhJNkFBNGdBaUFCUVF4MlFUOXhRWUFCY2pvQURVRUVDeUVCSUFBZ0FSQUxJQUpCRUdva0FBdjVBUUVDZnlNQVFSQnJJZ0lrQUNBQ1FRQTJBZ3dDZndKQUFrQWdBVUdBQVU4RVFDQUJRWUFRU1EwQklBSkJER29oQXlBQlFZQ0FCRThOQWlBQ0lBRkJQM0ZCZ0FGeU9nQU9JQUlnQVVFTWRrSGdBWEk2QUF3Z0FpQUJRUVoyUVQ5eFFZQUJjam9BRFVFRERBTUxJQUlnQVRvQURDQUNRUXhxSVFOQkFRd0NDeUFDSUFGQlAzRkJnQUZ5T2dBTklBSWdBVUVHZGtIQUFYSTZBQXdnQWtFTWFpRURRUUlNQVFzZ0FpQUJRVDl4UVlBQmNqb0FEeUFDSUFGQkVuWkI4QUZ5T2dBTUlBSWdBVUVHZGtFL2NVR0FBWEk2QUE0Z0FpQUJRUXgyUVQ5eFFZQUJjam9BRFVFRUN5RUJJQUFnQXlBQkVBc2dBa0VRYWlRQUMvd0JBUU4vSXdCQklHc2lCQ1FBQWtBZ0FrRUJhaUlESUFKUEJFQWdBU2dDQkNJQ1FRRjBJZ1VnQXlBRklBTkxHeUlEUVFRZ0EwRUVTeHNpQTBILy8vLy9BM0VnQTBaQkFYUWhCU0FEUVFKMElRTUNRQ0FDQkVBZ0JFRVlha0VDTmdJQUlBUWdBa0VDZERZQ0ZDQUVJQUVvQWdBMkFoQU1BUXNnQkVFQU5nSVFDeUFFSUFNZ0JTQUVRUkJxRUNWQkFTRUNJQVJCQ0dvb0FnQWhBeUFFS0FJRUlRVWdCQ2dDQUVFQlJ3UkFJQUVnQlRZQ0FDQUJJQU5CQW5ZMkFnUkJBQ0VDREFJTElBQWdCVFlDQkNBQVFRaHFJQU0yQWdBTUFRc2dBQ0FETmdJRUlBQkJDR3BCQURZQ0FFRUJJUUlMSUFBZ0FqWUNBQ0FFUVNCcUpBQUw4QUVCQkg4akFFRWdheUlFSkFBQ1FDQUNRUUZxSWdNZ0FrOEVRQ0FCS0FJRUlnVkJBWFFpQWlBRElBSWdBMHNiSWdOQkJDQURRUVJMR3lJRElBTnFJZ1lnQTA5QkFYUWhBd0pBSUFVRVFDQUVRUmhxUVFJMkFnQWdCQ0FDTmdJVUlBUWdBU2dDQURZQ0VBd0JDeUFFUVFBMkFoQUxJQVFnQmlBRElBUkJFR29RSlVFQklRSWdCRUVJYWlnQ0FDRURJQVFvQWdRaEJTQUVLQUlBUVFGSEJFQWdBU0FGTmdJQUlBRWdBMEVCZGpZQ0JFRUFJUUlNQWdzZ0FDQUZOZ0lFSUFCQkNHb2dBellDQUF3QkN5QUFJQU0yQWdRZ0FFRUlha0VBTmdJQVFRRWhBZ3NnQUNBQ05nSUFJQVJCSUdva0FBdlpBUUVEZndKQUlBQkJCR29vQWdBaUJDQUFRUWhxS0FJQUlnTnJJQUlnQVdzaUJVOEVRQ0FBS0FJQUlRUU1BUXNDZndKQUFrQWdBeUFGYWlJQ0lBTkpEUUFnQkVFQmRDSURJQUlnQXlBQ1N4c2lBa0VJSUFKQkNFc2JJUUlnQkFSQUlBSkJBRWdOQVNBQUtBSUFJZ05GRFFJZ0F5QUVRUUVnQWhCVkRBTUxJQUpCQUU0TkFRc1FYUUFMSUFKQkFSQlpDeUlFQkVBZ0FDQUVOZ0lBSUFCQkJHb2dBallDQUNBQVFRaHFLQUlBSVFNTUFRc2dBa0VCRUdNQUN5QURJQVJxSUFFZ0JSQkxHaUFBUVFocUlnQWdBQ2dDQUNBRmFqWUNBQXZvQVFFRmZ5TUFRUkJySWdNa0FDQUFMUUFMSVFJZ0EwSUFOd01JSUFFb0FnQWhCUUpBQWtBZ0FBSi9JQUVvQWdRaUJFSEFBQ0FDYXlJR1FmZ0JjVUVEZGlJQ1NRUkFJQVJCQ1U4TkFpQURRUWhxSUFVZ0JCQkxHaUFCUVFBMkFnUWdBVUdJZzhBQU5nSUFJQVJCQTNRTUFRc2dCa0gvQVhGQnlBQlBEUUlnQTBFSWFpQUZJQUlRU3hvZ0FTQUVJQUpyTmdJRUlBRWdBaUFGYWpZQ0FDQUdRZmdCY1FzZ0FDMEFDeUlCYWpvQUN5QUFJQUFwQXdBZ0F5a0RDQ0FCUVQ5eHJZYUVOd01BSUFOQkVHb2tBQThMSUFSQkNFSDRoY0FBRURjQUN5QUNRUWhCNklYQUFCQTNBQXZjQVFFRWZ5TUFRVUJxSWdJa0FDQUJRUVJxSVFRZ0FTZ0NCRVVFUUNBQktBSUFJUU1nQWtFQU5nSWdJQUpDQVRjREdDQUNJQUpCR0dvMkFpUWdBa0U0YWlBRFFSQnFLUUlBTndNQUlBSkJNR29nQTBFSWFpa0NBRGNEQUNBQ0lBTXBBZ0EzQXlnZ0FrRWtha0hZaWNBQUlBSkJLR29RQ1JvZ0FrRVFhaUlESUFJb0FpQTJBZ0FnQWlBQ0tRTVlOd01JQWtBZ0FTZ0NCQ0lGUlEwQUlBRkJDR29vQWdCRkRRQWdCUkFFQ3lBRUlBSXBBd2czQWdBZ0JFRUlhaUFES0FJQU5nSUFDeUFBUVpDTHdBQTJBZ1FnQUNBRU5nSUFJQUpCUUdza0FBdVlBZ0VDZnlNQVFTQnJJZ1FrQUVFQklRVkJpS2ZBQUVHSXA4QUFLQUlBUVFGcU5nSUFBa0FDUUFKQVFkQ3F3QUFvQWdCQkFVY0VRRUhRcXNBQVFvR0FnSUFRTndNQURBRUxRZFNxd0FCQjFLckFBQ2dDQUVFQmFpSUZOZ0lBSUFWQkFrc05BUXNnQkNBRE5nSWNJQVFnQWpZQ0dDQUVRZkNKd0FBMkFoUWdCRUh3aWNBQU5nSVFRZnltd0FBb0FnQWlBa0YvVEEwQVFmeW13QUFnQWtFQmFpSUNOZ0lBUWZ5bXdBQkJoS2ZBQUNnQ0FDSURCSDlCZ0tmQUFDZ0NBQ0FFUVFocUlBQWdBU2dDRUJFQ0FDQUVJQVFwQXdnM0F4QWdCRUVRYWlBREtBSU1FUUlBUWZ5bXdBQW9BZ0FGSUFJTFFYOXFOZ0lBSUFWQkFVME5BUXNBQ3lNQVFSQnJJZ0lrQUNBQ0lBRTJBZ3dnQWlBQU5nSUlBQXZNQVFFQ2Z5QUJRUlJxS0FJQUlnVWdBMEgvL3dOeElnUkxCRUFnQVNnQ0RDQUVRUUYwYWk4QkFDRUZJQUVvQWdnaUJDQUJLQUlFUmdSQUlBRWdCQkE4SUFFb0FnZ2hCQXNnQVNnQ0FDQUVRUUowYWlJRUlBSTZBQUlnQkNBRE93RUFJQUVnQVNnQ0NFRUJhallDQ0NBQktBSVVJZ1FnQVVFUWFpZ0NBRVlFUUNBQlFReHFJQVFRT3lBQktBSVVJUVFMSUFFb0Fnd2dCRUVCZEdvZ0JVRUJhanNCQUNBQklBRW9BaFJCQVdvMkFoUWdBQ0FDT2dBQ0lBQWdBenNCQUE4TElBUWdCVUg0aHNBQUVEWUFDOFFCQVFKL0l3QkJFR3NpQWlRQUlBSWdBYTFDZ0lDQWdCQkNBQ0FCS0FJWVFjV213QUJCQ1NBQlFSeHFLQUlBS0FJTUVRRUFHNFEzQXdBZ0FpQUFOZ0lNSUFJZ0FrRU1haEFTSUFJdEFBUWhBU0FDTFFBRkJFQWdBVUgvQVhFaEFDQUNBbjlCQVNBQURRQWFJQUlvQWdBaUFFRWNhaWdDQUNnQ0RDRUJJQUFvQWhnaEF5QUFMUUFBUVFSeFJRUkFJQU5COTQzQUFFRUNJQUVSQVFBTUFRc2dBMEgyamNBQVFRRWdBUkVCQUFzaUFUb0FCQXNnQWtFUWFpUUFJQUZCL3dGeFFRQkhDNm9CQVFKL0FrQUNRQUpBSUFJRVFFRUJJUVFnQVVFQVRnMEJEQUlMSUFBZ0FUWUNCRUVCSVFRTUFRc0NRQUpBQWtBQ1FBSkFJQU1vQWdBaUJVVUVRQ0FCUlEwQkRBTUxJQU1vQWdRaUF3MEJJQUVOQWdzZ0FpRUREQU1MSUFVZ0F5QUNJQUVRVlNJRFJRMEJEQUlMSUFFZ0FoQlpJZ01OQVFzZ0FDQUJOZ0lFSUFJaEFRd0NDeUFBSUFNMkFnUkJBQ0VFREFFTFFRQWhBUXNnQUNBRU5nSUFJQUJCQ0dvZ0FUWUNBQXVmQVFFRGZ5QUFRZ0EzQWdnQ1FDQUJRUlJxS0FJQUlnUWdBa0gvL3dOeElnTkxCRUFnQVNnQ0RDQURRUUYwYWk4QkFDRURJQUFvQWdRaEJDQUFRUUEyQWdRZ0FDZ0NBQ0VGSUFCQkFUWUNBQ0FFSUFOSkRRRWdBU0FDSUFVZ0F4QXBJQUFvQWdRRVFDQUFLQUlBRUFRTElBQWdBellDRENBQUlBUTJBZ1FnQUNBRk5nSUFEd3NnQXlBRVFiaUd3QUFRTmdBTElBTWdCRUhJaHNBQUVEY0FDNGNCQVFKL0l3QkJNR3NpQkNRQUlBUkJJR29pQlNBQ05nSUlJQVVnQWpZQ0JDQUZJQUUyQWdBZ0JFRUlhaUFFUVNCcUVFNGdCRUVRYWlBRUtBSUlJZ0VnQkNnQ0RDSUNJQU1RRXlBQ0JFQWdBUkFFQ3lBRVFTaHFJQVJCR0dvb0FnQTJBZ0FnQkNBRUtRTVFOd01nSUFRZ0JFRWdhaEJPSUFBZ0JDa0RBRGNEQUNBRVFUQnFKQUFMZ2dFQkJuOGpBRUVRYXlJREpBQWdBQ0FBS0FJSUlBRVFPaUFBS0FJQUlRVWdBQ2dDQ0NFQ0lBTkJDR3BCQVNBQkVGb2dBaUFGYWlFRUlBTW9BZ3dpQmlBREtBSUlJZ2RMQkVBZ0JDQUdJQWRyRUZJZ0JTQUNJQVpxSUFkcklnSnFJUVFMSUFBZ0FRUi9JQVJCQURvQUFDQUNRUUZxQlNBQ0N6WUNDQ0FEUVJCcUpBQUxqZ0VCQTM4Z0FDZ0NDQ0lFSUFGQi8vOERjU0lGU3dSQUlBTUVRQ0FBS0FJQUlRUWdBa0YvYWlFRklBRWhBQU5BSUFRZ0FFSC8vd054UVFKMGFpSUdMd0VBSVFBZ0F5QUZhaUFHTFFBQ09nQUFJQUFnQVNBQUlBRkIvLzhEY1VrYklRQWdBMEYvYWlJRERRQUxJQUl0QUFBUEMwRUFRUUJCbUlmQUFCQTJBQXNnQlVFQmFpQUVRWWlId0FBUU53QUxhQUVDZnlNQVFkQUFheUlDSkFBakFFRXdheUlCSkFBZ0FVRUlPZ0FQSUFGQk1Hb2tBQ0FDRUJkQjBBQkJDQkJaSWdFRVFDQUJJQUpCMEFBUVN4b2dBVUVCT2dCSUlBQkJwSVBBQURZQ0JDQUFJQUUyQWdBZ0FrSFFBR29rQUE4TFFkQUFRUWdRWXdBTGdBRUNBbjhCZmlBQkxRQUxJZ1FnQVMwQUNpSURTUVJBSUFFZ0FoQVlJQUV0QUFzaEJDQUJMUUFLSVFNTElBUWdBMEgvQVhGSkJIOUJBQVVnQVNBRUlBTnJPZ0FMSUFFZ0FTa0RBQ0FEcllraUJTQUJMd0VJSWdHdFFuK0ZRb0NBZklTRE53TUFJQUVnQmFkeElRTkJBUXNoQVNBQUlBTTdBUUlnQUNBQk93RUFDNklCQVFOL0l3QkJFR3NpQVNRQUlBQW9BZ0FpQWtFVWFpZ0NBQ0VEQWtBQ2Z3SkFBa0FnQWlnQ0JBNENBQUVEQ3lBRERRSkJBQ0VDUWZDSndBQU1BUXNnQXcwQklBSW9BZ0FpQXlnQ0JDRUNJQU1vQWdBTElRTWdBU0FDTmdJRUlBRWdBellDQUNBQlFmeUt3QUFnQUNnQ0JDZ0NDQ0FBS0FJSUVDSUFDeUFCUVFBMkFnUWdBU0FDTmdJQUlBRkI2SXJBQUNBQUtBSUVLQUlJSUFBb0FnZ1FJZ0FMZ1FFQkEzOGdBU2dDQkNJRElBSlBCRUFDUUNBRFJRMEFJQUVvQWdBaEJBSkFBa0FnQWtVRVFFRUJJUU1nQkJBRURBRUxJQVFnQTBFQklBSVFWU0lEUlEwQkN5QUJJQUkyQWdRZ0FTQUROZ0lBREFFTElBQWdBallDQkNBQVFRaHFRUUUyQWdCQkFTRUZDeUFBSUFVMkFnQVBDMEdVaU1BQVFTUkJ1SWpBQUJCSUFBdDFBZ0ovQVg0Z0FTMEFDeUlFSUFFdEFBb2lBMGtFUUNBQklBSVFJQ0FCTFFBTElRUWdBUzBBQ2lFREN5QUVJQU5CL3dGeFNRUi9RUUFGSUFFZ0JDQURhem9BQ3lBQklBRXBBd0FpQlNBRHJVSS9nNGczQXdBZ0FTOEJDQ0FGcDNFaEEwRUJDeUVCSUFBZ0F6c0JBaUFBSUFFN0FRQUxNQUVCZndKQUFrQkJnSUFCUVFJUVdTSUJEUUVNQUF0QmdJQUJRUUlRWXdBTElBQWdBVFlDQUNBQVFZQWdOZ0lFQzRZQkFRRi9Jd0JCUUdvaUFTUUFJQUZCS3pZQ0RDQUJRWUNCd0FBMkFnZ2dBVUdzZ2NBQU5nSVVJQUVnQURZQ0VDQUJRU3hxUVFJMkFnQWdBVUU4YWtFaE5nSUFJQUZDQWpjQ0hDQUJRYXlNd0FBMkFoZ2dBVUVkTmdJMElBRWdBVUV3YWpZQ0tDQUJJQUZCRUdvMkFqZ2dBU0FCUVFocU5nSXdJQUZCR0dwQjhJREFBQkJSQUF0eEFRTi9Jd0JCSUdzaUFpUUFBa0FnQUNBQkVCa05BQ0FCUVJ4cUtBSUFJUU1nQVNnQ0dDQUNRUnhxUVFBMkFnQWdBa0h3aThBQU5nSVlJQUpDQVRjQ0RDQUNRZlNMd0FBMkFnZ2dBeUFDUVFocUVBa05BQ0FBUVFScUlBRVFHU0FDUVNCcUpBQVBDeUFDUVNCcUpBQkJBUXN3QVFGL0FrQUNRRUdBd0FCQkFoQlpJZ0VOQVF3QUMwR0F3QUJCQWhCakFBc2dBQ0FCTmdJQUlBQkJnQ0EyQWdRTGV3RUNmd0pBQWtBZ0FDZ0NCQ0lCQkVBZ0FDZ0NEQ0lDSUFGUERRRWdBQ2dDQUNJQklBSnFJQUV0QUFBNkFBQWdBRUVBTmdJSUlBQWdBQ2dDREVFQmFqWUNEQ0FBS0FJRVJRMENJQUFvQWdBdEFBQVBDMEVBUVFCQmlJYkFBQkEyQUFzZ0FpQUJRWmlHd0FBUU5nQUxRUUJCQUVHb2hzQUFFRFlBQzJnQkFuOGdBQ0FBTFFCR0lnRkJBV29pQWpvQUNpQUFRUUVnQVVFUGNYUkJBbW9pQVRzQlFDQUFRWDhnQWtFUGNYUkJmM003QVFnZ0FFRVlhaWdDQUNBQlFmLy9BM0VpQVU4RVFDQUFJQUUyQWhnTElBQkJKR29vQWdBZ0FVOEVRQ0FBSUFFMkFpUUxDMUFCQVg4Z0FFRVVhaWdDQUNJQlJTQUJRUUowUlhKRkJFQWdBQ2dDRUJBRUN5QUFRU0JxS0FJQUlnRkZJQUZCQVhSRmNrVUVRQ0FBS0FJY0VBUUxJQUJCTEdvb0FnQUVRQ0FBS0FJb0VBUUxDMndCQVg4akFFRXdheUlESkFBZ0F5QUJOZ0lFSUFNZ0FEWUNBQ0FEUVJ4cVFRSTJBZ0FnQTBFc2FrRWNOZ0lBSUFOQ0FqY0NEQ0FEUVlDTndBQTJBZ2dnQTBFY05nSWtJQU1nQTBFZ2FqWUNHQ0FESUFNMkFpZ2dBeUFEUVFScU5nSWdJQU5CQ0dvZ0FoQlJBQXRzQVFGL0l3QkJNR3NpQXlRQUlBTWdBVFlDQkNBRElBQTJBZ0FnQTBFY2FrRUNOZ0lBSUFOQkxHcEJIRFlDQUNBRFFnSTNBZ3dnQTBITWtjQUFOZ0lJSUFOQkhEWUNKQ0FESUFOQklHbzJBaGdnQXlBRFFRUnFOZ0lvSUFNZ0F6WUNJQ0FEUVFocUlBSVFVUUFMYkFFQmZ5TUFRVEJySWdNa0FDQURJQUUyQWdRZ0F5QUFOZ0lBSUFOQkhHcEJBallDQUNBRFFTeHFRUncyQWdBZ0EwSUNOd0lNSUFOQmdKTEFBRFlDQ0NBRFFSdzJBaVFnQXlBRFFTQnFOZ0lZSUFNZ0EwRUVhallDS0NBRElBTTJBaUFnQTBFSWFpQUNFRkVBQzJ3QkFYOGpBRUV3YXlJREpBQWdBeUFCTmdJRUlBTWdBRFlDQUNBRFFSeHFRUUkyQWdBZ0EwRXNha0VjTmdJQUlBTkNBamNDRENBRFFheVJ3QUEyQWdnZ0EwRWNOZ0lrSUFNZ0EwRWdhallDR0NBRElBTkJCR28yQWlnZ0F5QUROZ0lnSUFOQkNHb2dBaEJSQUF0Y0FRRi9Jd0JCRUdzaUF5UUFBa0FnQUNnQ0JDQUJheUFDVHdSQUlBTkJBRFlDQUF3QkN5QURJQUFnQVNBQ0VCWWdBeWdDQUVFQlJ3MEFJQU5CQ0dvb0FnQWlBQVJBSUFNb0FnUWdBQkJqQUFzUVhRQUxJQU5CRUdva0FBdGFBUUYvSXdCQkVHc2lBaVFBQWtBZ0FDZ0NCQ0FCYTBFQlR3UkFJQUpCQURZQ0FBd0JDeUFDSUFBZ0FSQWVJQUlvQWdCQkFVY05BQ0FDUVFocUtBSUFJZ0FFUUNBQ0tBSUVJQUFRWXdBTEVGMEFDeUFDUVJCcUpBQUxXZ0VCZnlNQVFSQnJJZ0lrQUFKQUlBQW9BZ1FnQVd0QkFVOEVRQ0FDUVFBMkFnQU1BUXNnQWlBQUlBRVFIU0FDS0FJQVFRRkhEUUFnQWtFSWFpZ0NBQ0lBQkVBZ0FpZ0NCQ0FBRUdNQUN4QmRBQXNnQWtFUWFpUUFDMWtCQVg4akFFRWdheUlDSkFBZ0FpQUFLQUlBTmdJRUlBSkJHR29nQVVFUWFpa0NBRGNEQUNBQ1FSQnFJQUZCQ0dvcEFnQTNBd0FnQWlBQktRSUFOd01JSUFKQkJHcEIySW5BQUNBQ1FRaHFFQWtnQWtFZ2FpUUFDMFlBQWtCQkNDQUNTUVJBQW45QkNDQUNTUVJBSUFJZ0F4QVFEQUVMSUFNUUFBc2lBZzBCUVFBUEN5QUFJQU1RQ2c4TElBSWdBQ0FESUFFZ0FTQURTeHNRU3lBQUVBUUxXUUVCZnlNQVFTQnJJZ0lrQUNBQ0lBQW9BZ0EyQWdRZ0FrRVlhaUFCUVJCcUtRSUFOd01BSUFKQkVHb2dBVUVJYWlrQ0FEY0RBQ0FDSUFFcEFnQTNBd2dnQWtFRWFrSHdqOEFBSUFKQkNHb1FDU0FDUVNCcUpBQUxXUUFDUUFKQUFrQWdBVUYvU2dSQUFrQWdBZ1JBSUFFTkFRd0VDeUFCUlEwRElBRkJBUkJaSWdJTkJBd0NDeUFCRUVjaUFrVU5BUXdEQ3hCZEFBc2dBVUVCRUdNQUMwRUJJUUlMSUFBZ0FUWUNCQ0FBSUFJMkFnQUxWZ0VCZnlNQVFTQnJJZ0lrQUNBQ0lBQTJBZ1FnQWtFWWFpQUJRUkJxS1FJQU53TUFJQUpCRUdvZ0FVRUlhaWtDQURjREFDQUNJQUVwQWdBM0F3Z2dBa0VFYWtId2o4QUFJQUpCQ0dvUUNTQUNRU0JxSkFBTFdRRURmd0pBSUFFb0Fnd2lBaUFCS0FJSUlnTlBCRUFnQVNnQ0JDSUVJQUpKRFFFZ0FTZ0NBQ0VCSUFBZ0FpQURhellDQkNBQUlBRWdBMm8yQWdBUEN5QURJQUpCMkliQUFCQTRBQXNnQWlBRVFkaUd3QUFRTndBTFZRRUJmeUFBUVJCcUlBQXRBRVlRRFNBQVFRQTZBRWNnQUVFQU93RTRJQUJCTUdwQ0FEY0RBQ0FBUVFBNkFBc2dBRUlBTndNQUlBQWdBQzBBUmtFQmFpSUJPZ0FLSUFCQmZ5QUJRUTl4ZEVGL2N6c0JDQXREQVFOL0FrQWdBa1VOQUFOQUlBQXRBQUFpQkNBQkxRQUFJZ1ZHQkVBZ0FFRUJhaUVBSUFGQkFXb2hBU0FDUVg5cUlnSU5BUXdDQ3dzZ0JDQUZheUVEQ3lBREMwVUJBWDhqQUVFUWF5SUNKQUFnQWlBQUlBRVFMUUpBSUFJb0FnQkJBVVlFUUNBQ1FRaHFLQUlBSWdCRkRRRWdBaWdDQkNBQUVHTUFDeUFDUVJCcUpBQVBDeEJkQUF0S0FBSi9JQUZCZ0lERUFFY0VRRUVCSUFBb0FoZ2dBU0FBUVJ4cUtBSUFLQUlRRVFBQURRRWFDeUFDUlFSQVFRQVBDeUFBS0FJWUlBSWdBeUFBUVJ4cUtBSUFLQUlNRVFFQUN3c21BUUYvQWtBZ0FCQUFJZ0ZGRFFBZ0FVRjhhaTBBQUVFRGNVVU5BQ0FCSUFBUVVnc2dBUXRIQVFGL0l3QkJJR3NpQXlRQUlBTkJGR3BCQURZQ0FDQURRZkNMd0FBMkFoQWdBMElCTndJRUlBTWdBVFlDSENBRElBQTJBaGdnQXlBRFFSaHFOZ0lBSUFNZ0FoQlJBQXRFQVFKL0lBRW9BZ1FoQWlBQktBSUFJUU5CQ0VFRUVGa2lBVVVFUUVFSVFRUVFZd0FMSUFFZ0FqWUNCQ0FCSUFNMkFnQWdBRUdnaThBQU5nSUVJQUFnQVRZQ0FBdGJBUU4vSXdCQkVHc2lBU1FBSUFBb0Fnd2lBa1VFUUVHQWlzQUFRU3RCeUlyQUFCQklBQXNnQUNnQ0NDSURSUVJBUVlDS3dBQkJLMEhZaXNBQUVFZ0FDeUFCSUFJMkFnZ2dBU0FBTmdJRUlBRWdBellDQUNBQkVGQUFDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQUJRUUZxSVFFZ0EwRUJhaUVESUFKQmYyb2lBZzBBQ3dzZ0FBc3NBQUpBSUFCQmZFMEVRQ0FBUlFSQVFRUWhBQXdDQ3lBQUlBQkJmVWxCQW5RUVdTSUFEUUVMQUFzZ0FBc3hBUUYvSUFFb0FnUWlBZ1JBSUFBZ0FqWUNCQ0FBUVFocVFRRTJBZ0FnQUNBQktBSUFOZ0lBRHdzZ0FFRUFOZ0lBQ3pFQkFYOGdBQ0FCS0FJRUlBRW9BZ2dpQWtzRWZ5QUJJQUlRUlNBQktBSUlCU0FDQ3pZQ0JDQUFJQUVvQWdBMkFnQUxLQUVCZnlBQUtBSUlJZ0lnQVU4RVFDQUFLQUlBR2lBQUlBRTJBZ2dQQ3lBQUlBRWdBbXNRS0Fzc0FRRi9Jd0JCRUdzaUFTUUFJQUZCQ0dvZ0FFRUlhaWdDQURZQ0FDQUJJQUFwQWdBM0F3QWdBUkFzQUFzMEFRRi9Jd0JCRUdzaUFpUUFJQUlnQVRZQ0RDQUNJQUEyQWdnZ0FrRzhqTUFBTmdJRUlBSkI4SXZBQURZQ0FDQUNFRW9BQ3lFQUlBRUVRQU5BSUFCQkFEb0FBQ0FBUVFGcUlRQWdBVUYvYWlJQkRRQUxDd3NnQVFGL0FrQWdBQ2dDQUNJQlJRMEFJQUJCQkdvb0FnQkZEUUFnQVJBRUN3c2dBUUYvQWtBZ0FDZ0NCQ0lCUlEwQUlBQkJDR29vQWdCRkRRQWdBUkFFQ3dzTUFDQUFJQUVnQWlBREVENExDd0FnQVFSQUlBQVFCQXNMRWdBZ0FDZ0NBQ0FCSUFFZ0Ftb1FIMEVBQ3hRQUlBQW9BZ0FnQVNBQUtBSUVLQUlNRVFBQUN4a0FBbjlCQ0NBQlNRUkFJQUVnQUJBUURBRUxJQUFRQUFzTEVBQWdBQ0FDTmdJRUlBQWdBVFlDQUFzVEFDQUFRYUNMd0FBMkFnUWdBQ0FCTmdJQUN4QUFJQUVnQUNnQ0FDQUFLQUlFRUFVTEVRQkJ6SXZBQUVFUlFlQ0x3QUFRU0FBTERnQWdBQ2dDQUJvRFFBd0FDd0FMQ3dBZ0FEVUNBQ0FCRUJVTERRQWdBQ2dDQUNBQklBSVFDd3NMQUNBQU1RQUFJQUVRRlFzTEFDQUFJd0JxSkFBakFBc1pBQ0FBSUFGQitLYkFBQ2dDQUNJQVFRNGdBQnNSQWdBQUN3MEFJQUZCeEpEQUFFRUNFQVVMQ1FBZ0FFRUFPZ0JIQ3djQUlBQXRBRWNMRFFCQzlQbWU1dTZqcXZuK0FBc05BRUwzdU83NnFzelY3dVVBQ3d3QVF1blFvdHZNb3VxN1Jnc0RBQUVMQXdBQkN3dmZKZ0VBUVlDQXdBQUwxU1l2VlhObGNuTXZabTA0TVRNdkxuSjFjM1IxY0M5MGIyOXNZMmhoYVc1ekwzTjBZV0pzWlMxNE9EWmZOalF0WVhCd2JHVXRaR0Z5ZDJsdUwyeHBZaTl5ZFhOMGJHbGlMM055WXk5eWRYTjBMMnhwWW5KaGNua3ZZMjl5WlM5emNtTXZZV3hzYjJNdmJHRjViM1YwTG5KekFBQVFBSEFBQUFBTEFRQUFPUUFBQUdOaGJHeGxaQ0JnVW1WemRXeDBPanAxYm5keVlYQW9LV0FnYjI0Z1lXNGdZRVZ5Y21BZ2RtRnNkV1VBQVFBQUFBQUFBQUFCQUFBQUFnQUFBSE55WXk5c2FXSXVjbk1BQUx3QUVBQUtBQUFBR3dBQUFBNEFBQUM4QUJBQUNnQUFBQndBQUFBU0FBQUFZWE56WlhKMGFXOXVJR1poYVd4bFpEb2diV2xrSUR3OUlITmxiR1l1YkdWdUtDa3ZWWE5sY25NdlptMDRNVE12TG5KMWMzUjFjQzkwYjI5c1kyaGhhVzV6TDNOMFlXSnNaUzE0T0RaZk5qUXRZWEJ3YkdVdFpHRnlkMmx1TDJ4cFlpOXlkWE4wYkdsaUwzTnlZeTl5ZFhOMEwyeHBZbkpoY25rdlkyOXlaUzl6Y21NdmMyeHBZMlV2Ylc5a0xuSnpDd0VRQUcwQUFBRDlCQUFBQ1FBQUFBTUFBQUJRQUFBQUNBQUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBVUFBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFMMVZ6WlhKekwyWnRPREV6THk1allYSm5ieTl5WldkcGMzUnllUzl6Y21NdloybDBhSFZpTG1OdmJTMHhaV05qTmpJNU9XUmlPV1ZqT0RJekwzZGxaWHBzTFRBdU1TNDBMM055WXk5a1pXTnZaR1V1Y25NQUFNQUJFQUJXQUFBQVdnSUFBQjhBQUFEQUFSQUFWZ0FBQUcwQ0FBQWJBQUFBd0FFUUFGWUFBQUNDQWdBQUpnQUFBTUFCRUFCV0FBQUFxd0lBQUJFQUFBREFBUkFBVmdBQUFLMENBQUFSQUFBQXdBRVFBRllBQUFDNUFnQUFHUUFBQU1BQkVBQldBQUFBelFJQUFDSUFBQURBQVJBQVZnQUFBTThDQUFBYkFBQUF3QUVRQUZZQUFBRFFBZ0FBRlFBQUFNQUJFQUJXQUFBQTBRSUFBQlVBQUFEQUFSQUFWZ0FBQVBvQ0FBQU5BQUFBd0FFUUFGWUFBQUJGQXdBQUVRQUFBTUFCRUFCV0FBQUFTd01BQUJFQUFBREFBUkFBVmdBQUFJb0RBQUFSQUFBQXdBRVFBRllBQUFDUUF3QUFFUUFBQU1BQkVBQldBQUFBdkFNQUFDY0FBQURBQVJBQVZnQUFBTHdEQUFBSkFBQUF3QUVRQUZZQUFBQy9Bd0FBQ1FBQUFNQUJFQUJXQUFBQXhnTUFBQlVBQUFEQUFSQUFWZ0FBQU1rREFBQVlBQUFBd0FFUUFGWUFBQURTQXdBQUNnQUFBTUFCRUFCV0FBQUErQU1BQUFvQUFBREFBUkFBVmdBQUFBVUVBQUFWQUFBQXdBRVFBRllBQUFBTkJBQUFGZ0FBQU1BQkVBQldBQUFBR0FRQUFBa0FBQUF2VlhObGNuTXZabTA0TVRNdkxuSjFjM1IxY0M5MGIyOXNZMmhoYVc1ekwzTjBZV0pzWlMxNE9EWmZOalF0WVhCd2JHVXRaR0Z5ZDJsdUwyeHBZaTl5ZFhOMGJHbGlMM055WXk5eWRYTjBMMnhwWW5KaGNua3ZZV3hzYjJNdmMzSmpMM0poZDE5MlpXTXVjbk5VY21sbFpDQjBieUJ6YUhKcGJtc2dkRzhnWVNCc1lYSm5aWElnWTJGd1lXTnBkSG1vQXhBQWJBQUFBTVVCQUFBSkFBQUFUV0Y0YVcxMWJTQmpiMlJsSUhOcGVtVWdNVElnY21WeGRXbHlaV1FzSUdkdmRDQUFTQVFRQUNNQUFBQXZWWE5sY25NdlptMDRNVE12TG1OaGNtZHZMM0psWjJsemRISjVMM055WXk5bmFYUm9kV0l1WTI5dExURmxZMk0yTWprNVpHSTVaV000TWpNdmQyVmxlbXd0TUM0eExqUXZjM0pqTDJ4cFlpNXljd0IwQkJBQVV3QUFBRTBBQUFBRkFBQUFEd0FBQUFRQUFBQUVBQUFBRUFBQUFCRUFBQUFTQUFBQUR3QUFBQUFBQUFBQkFBQUFFd0FBQUdOaGJHeGxaQ0JnVDNCMGFXOXVPanAxYm5keVlYQW9LV0FnYjI0Z1lTQmdUbTl1WldBZ2RtRnNkV1ZzYVdKeVlYSjVMM04wWkM5emNtTXZjR0Z1YVdOcmFXNW5Mbkp6QUNzRkVBQWNBQUFBN1FFQUFCOEFBQUFyQlJBQUhBQUFBTzRCQUFBZUFBQUFGQUFBQUJBQUFBQUVBQUFBRlFBQUFCWUFBQUFQQUFBQUNBQUFBQVFBQUFBWEFBQUFHQUFBQUJrQUFBQU1BQUFBQkFBQUFCb0FBQUFQQUFBQUNBQUFBQVFBQUFBYkFBQUFiR2xpY21GeWVTOWhiR3h2WXk5emNtTXZjbUYzWDNabFl5NXljMk5oY0dGamFYUjVJRzkyWlhKbWJHOTNBQUFBc0FVUUFCd0FBQUFlQWdBQUJRQUFBR0F1TGdEeEJSQUFBZ0FBQUdOaGJHeGxaQ0JnVDNCMGFXOXVPanAxYm5keVlYQW9LV0FnYjI0Z1lTQmdUbTl1WldBZ2RtRnNkV1U2SUFBQUFQQUZFQUFBQUFBQUp3WVFBQUlBQUFBaUFBQUFBQUFBQUFFQUFBQWpBQUFBYVc1a1pYZ2diM1YwSUc5bUlHSnZkVzVrY3pvZ2RHaGxJR3hsYmlCcGN5QWdZblYwSUhSb1pTQnBibVJsZUNCcGN5QUFBRXdHRUFBZ0FBQUFiQVlRQUJJQUFBQnNhV0p5WVhKNUwyTnZjbVV2YzNKakwyWnRkQzlpZFdsc1pHVnljeTV5Y3lJQUFBQU1BQUFBQkFBQUFDUUFBQUFsQUFBQUpnQUFBQ0FnSUNDUUJoQUFJQUFBQURJQUFBQWhBQUFBa0FZUUFDQUFBQUF6QUFBQUVnQUFBQ0I3Q2l3S0xDQWdleUI5SUgxc2FXSnlZWEo1TDJOdmNtVXZjM0pqTDJadGRDOXVkVzB1Y25QNUJoQUFHd0FBQUdVQUFBQVVBQUFBTUhnd01EQXhNREl3TXpBME1EVXdOakEzTURnd09URXdNVEV4TWpFek1UUXhOVEUyTVRjeE9ERTVNakF5TVRJeU1qTXlOREkxTWpZeU56STRNamt6TURNeE16SXpNek0wTXpVek5qTTNNemd6T1RRd05ERTBNalF6TkRRME5UUTJORGMwT0RRNU5UQTFNVFV5TlRNMU5EVTFOVFkxTnpVNE5UazJNRFl4TmpJMk16WTBOalUyTmpZM05qZzJPVGN3TnpFM01qY3pOelEzTlRjMk56YzNPRGM1T0RBNE1UZ3lPRE00TkRnMU9EWTROemc0T0RrNU1Ea3hPVEk1TXprME9UVTVOamszT1RnNU9RQUFJZ0FBQUFRQUFBQUVBQUFBSndBQUFDZ0FBQUFwQUFBQWJHbGljbUZ5ZVM5amIzSmxMM055WXk5bWJYUXZiVzlrTG5KekFBZ0lFQUFiQUFBQVZRUUFBQkVBQUFBSUNCQUFHd0FBQUY4RUFBQWtBQUFBS0Nsc2FXSnlZWEo1TDJOdmNtVXZjM0pqTDNOc2FXTmxMMjFsYldOb2NpNXljd0FBUmdnUUFDQUFBQUJhQUFBQUJRQUFBSEpoYm1kbElITjBZWEowSUdsdVpHVjRJQ0J2ZFhRZ2IyWWdjbUZ1WjJVZ1ptOXlJSE5zYVdObElHOW1JR3hsYm1kMGFDQjRDQkFBRWdBQUFJb0lFQUFpQUFBQWNtRnVaMlVnWlc1a0lHbHVaR1Y0SUx3SUVBQVFBQUFBaWdnUUFDSUFBQUJ6YkdsalpTQnBibVJsZUNCemRHRnlkSE1nWVhRZ0lHSjFkQ0JsYm1SeklHRjBJQURjQ0JBQUZnQUFBUElJRUFBTkFBQUFiR2xpY21GeWVTOWpiM0psTDNOeVl5OXpkSEl2Y0dGMGRHVnliaTV5Y3dBUUNSQUFId0FBQUxBQkFBQW1BQUFBV3k0dUxsMWllWFJsSUdsdVpHVjRJQ0JwY3lCdmRYUWdiMllnWW05MWJtUnpJRzltSUdBQUFFVUpFQUFMQUFBQVVBa1FBQllBQUFEd0JSQUFBUUFBQUdKbFoybHVJRHc5SUdWdVpDQW9JRHc5SUNrZ2QyaGxiaUJ6YkdsamFXNW5JR0FBQUlBSkVBQU9BQUFBamdrUUFBUUFBQUNTQ1JBQUVBQUFBUEFGRUFBQkFBQUFJR2x6SUc1dmRDQmhJR05vWVhJZ1ltOTFibVJoY25rN0lHbDBJR2x6SUdsdWMybGtaU0FnS0dKNWRHVnpJQ2tnYjJZZ1lFVUpFQUFMQUFBQXhBa1FBQ1lBQUFEcUNSQUFDQUFBQVBJSkVBQUdBQUFBOEFVUUFBRUFBQUJzYVdKeVlYSjVMMk52Y21VdmMzSmpMM1Z1YVdOdlpHVXZjSEpwYm5SaFlteGxMbkp6QUFBQUlBb1FBQ1VBQUFBS0FBQUFIQUFBQUNBS0VBQWxBQUFBR2dBQUFEWUFBQUFBQVFNRkJRWUdBd2NHQ0FnSkVRb2NDeGtNRkEwUURnMFBCQkFERWhJVENSWUJGd1VZQWhrREdnY2NBaDBCSHhZZ0F5c0RMQUl0Q3k0Qk1BTXhBaklCcHdLcEFxb0Vxd2o2QXZzRi9RVCtBLzhKclhoNWk0MmlNRmRZaTR5UUhCM2REZzlMVFB2OExpOC9YRjFmdGVLRWpZNlJrcW14dXJ2RnhzbkszdVRsL3dBRUVSSXBNVFEzT2pzOVNVcGRoSTZTcWJHMHVydkd5czdQNU9VQUJBME9FUklwTVRRNk8wVkdTVXBlWkdXRWtadWR5YzdQRFJFcFJVbFhaR1dOa2FtMHVydkZ5ZC9rNWZBTkVVVkpaR1dBaExLOHZyL1YxL0R4ZzRXTHBLYSt2OFhIenMvYTIwaVl2YzNHenM5SlRrOVhXVjVmaVk2UHNiYTN2OEhHeDljUkZoZGJYUGIzL3YrQURXMXgzdDhPRHg5dWJ4d2RYMzErcnErN3ZQb1dGeDRmUmtkT1QxaGFYRjUrZjdYRjFOWGM4UEgxY25PUGRIV1dMMThtTGkrbnI3ZS94OC9YMzVwQWw1Z3dqeC9Bd2M3L1RrOWFXd2NJRHhBbkwrN3ZibTgzUFQ5Q1JaQ1IvdjlUWjNYSXlkRFIyTm5uL3Y4QUlGOGlndDhFZ2tRSUd3UUdFWUdzRG9Dck5TZ0xnT0FER1FnQkJDOEVOQVFIQXdFSEJnY1JDbEFQRWdkVkJ3TUVIQW9KQXdnREJ3TUNBd01EREFRRkF3c0dBUTRWQlRvREVRY0dCUkFIVndjQ0J4VU5VQVJEQXkwREFRUVJCZzhNT2dRZEpWOGdiUVJxSllESUJZS3dBeG9HZ3YwRFdRY1ZDeGNKRkF3VURHb0dDZ1lhQmxrSEt3VkdDaXdFREFRQkF6RUxMQVFhQmdzRGdLd0dDZ1loUDB3RUxRTjBDRHdERHdNOEJ6Z0lLd1dDL3hFWUNDOFJMUU1nRUNFUGdJd0VncGNaQ3hXSWxBVXZCVHNIQWc0WUNZQ3pMWFFNZ05ZYURBV0Evd1dBM3d6dURRT0VqUU0zQ1lGY0ZJQzRDSURMS2pnRENnWTRDRVlJREFaMEN4NERXZ1JaQ1lDREdCd0tGZ2xNQklDS0JxdWtEQmNFTWFFRWdkb21Cd3dGQllDbEVZRnRFSGdvS2daTUJJQ05CSUMrQXhzRER3MEFCZ0VCQXdFRUFnZ0lDUUlLQlFzQ0RnUVFBUkVDRWdVVEVSUUJGUUlYQWhrTkhBVWRDQ1FCYWdOckFyd0MwUUxVRE5VSjFnTFhBdG9CNEFYaEF1Z0M3aUR3QlBnQytRTDZBdnNCRENjN1BrNVBqNTZlbndZSENUWTlQbGJ6ME5FRUZCZzJOMVpYZjZxdXI3MDE0QktIaVk2ZUJBME9FUklwTVRRNlJVWkpTazVQWkdWY3RyY2JIQWNJQ2dzVUZ6WTVPcWlwMk5rSk41Q1JxQWNLT3o1bWFZK1NiMS91NzFwaW1wc25LRldkb0tHanBLZW9yYnE4eEFZTERCVWRPajlGVWFhbnpNMmdCeGthSWlVK1A4WEdCQ0FqSlNZb016ZzZTRXBNVUZOVlZsaGFYRjVnWTJWbWEzTjRmWCtLcEtxdnNNRFFycTk1ekc1dmsxNGlld1VEQkMwRFpnTUJMeTZBZ2gwRE1ROGNCQ1FKSGdVckJVUUVEaXFBcWdZa0JDUUVLQWcwQ3dHQWtJRTNDUllLQ0lDWU9RTmpDQWt3RmdVaEF4c0ZBVUE0QkVzRkx3UUtCd2tIUUNBbkJBd0pOZ002QlJvSEJBd0hVRWszTXcwekJ5NElDb0VtVWs0b0NDcFdIQlFYQ1U0RUhnOUREaGtIQ2daSUNDY0pkUXMvUVNvR093VUtCbEVHQVFVUUF3V0FpMkllU0FnS2dLWmVJa1VMQ2dZTkV6a0hDallzQkJDQXdEeGtVd3hJQ1FwR1JSdElDRk1kT1lFSFJnb2RBMGRKTndNT0NBb0dPUWNLZ1RZWmdMY0JEeklOZzV0bWRRdUF4SXE4aEMrUDBZSkhvYm1DT1FjcUJBSmdKZ3BHQ2lnRkU0S3dXMlZMQkRrSEVVQUZDd0lPbC9nSWhOWXFDYUwzZ1I4eEF4RUVDSUdNaVFSckJRMERDUWNRazJDQTlncHpDRzRYUm9DYUZBeFhDUm1BaDRGSEE0VkNEeFdGVUN1QTFTMERHZ1FDZ1hBNkJRR0ZBSURYS1V3RUNnUUNneEZFVEQyQXdqd0dBUVJWQlJzMEFvRU9MQVJrREZZS2dLNDRIUTBzQkFrSEFnNEdnSnFEMkFnTkF3MERkQXhaQnd3VURBUTRDQW9HS0FnaVRvRlVEQlVEQXdVSENSa0hCd2tERFFjcGdNc2xDb1FHYkdsaWNtRnllUzlqYjNKbEwzTnlZeTkxYm1samIyUmxMM1Z1YVdOdlpHVmZaR0YwWVM1eWN3Q3ZEeEFBS0FBQUFFc0FBQUFvQUFBQXJ3OFFBQ2dBQUFCWEFBQUFGZ0FBQUs4UEVBQW9BQUFBVWdBQUFENEFBQUFpQUFBQUJBQUFBQVFBQUFBcUFBQUFBQU1BQUlNRUlBQ1JCV0FBWFJPZ0FCSVhvQjRNSU9BZTd5d2dLeW93b0N0dnBtQXNBcWpnTEI3NzRDMEEvcUExbnYvZ05mMEJZVFlCQ3FFMkpBMWhONnNPNFRndkdDRTVNQnhoUnZNZW9VcndhbUZPVDIraFRwMjhJVTlsMGVGUEFOb2hVQURnNFZFdzRXRlQ3T0toVk5EbzRWUWdBQzVWOEFHL1ZRQndBQWNBTFFFQkFRSUJBZ0VCU0Fzd0ZSQUJaUWNDQmdJQ0FRUWpBUjRiV3dzNkNRa0JHQVFCQ1FFREFRVXJBM2NQQVNBM0FRRUJCQWdFQVFNSENnSWRBVG9CQVFFQ0JBZ0JDUUVLQWhvQkFnSTVBUVFDQkFJQ0F3TUJIZ0lEQVFzQ09RRUVCUUVDQkFFVUFoWUdBUUU2QVFFQ0FRUUlBUWNEQ2dJZUFUc0JBUUVNQVFrQktBRURBVGtEQlFNQkJBY0NDd0lkQVRvQkFnRUNBUU1CQlFJSEFnc0NIQUk1QWdFQkFnUUlBUWtCQ2dJZEFVZ0JCQUVDQXdFQkNBRlJBUUlIREFoaUFRSUpDd1pLQWhzQkFRRUJBVGNPQVFVQkFnVUxBU1FKQVdZRUFRWUJBZ0lDR1FJRUF4QUVEUUVDQWdZQkR3RUFBd0FESFFNZEFoNENRQUlCQndnQkFnc0pBUzBEZHdJaUFYWURCQUlKQVFZRDJ3SUNBVG9CQVFjQkFRRUJBZ2dHQ2dJQk1CRS9CREFIQVFFRkFTZ0pEQUlnQkFJQ0FRTTRBUUVDQXdFQkF6b0lBZ0tZQXdFTkFRY0VBUVlCQXdMR09nRUZBQUhESVFBRGpRRmdJQUFHYVFJQUJBRUtJQUpRQWdBQkF3RUVBUmtDQlFHWEFob1NEUUVtQ0JrTExnTXdBUUlFQWdJbkFVTUdBZ0lDQWd3QkNBRXZBVE1CQVFNQ0FnVUNBUUVxQWdnQjdnRUNBUVFCQUFFQUVCQVFBQUlBQWVJQmxRVUFBd0VDQlFRb0F3UUJwUUlBQkFBQ21RdXdBVFlQT0FNeEJBSUNSUU1rQlFFSVBnRU1BalFKQ2dRQ0FWOERBZ0VCQWdZQm9BRURDQlVDT1FJQkFRRUJGZ0VPQndNRnd3Z0NBd0VCRndGUkFRSUdBUUVDQVFFQ0FRTHJBUUlFQmdJQkFoc0NWUWdDQVFFQ2FnRUJBUUlHQVFGbEF3SUVBUVVBQ1FFQzlRRUtBZ0VCQkFHUUJBSUNCQUVnQ2lnR0FnUUlBUWtHQWdNdURRRUNBQWNCQmdFQlVoWUNCd0VDQVFKNkJnTUJBUUlCQndFQlNBSURBUUVCQUFJQUJUc0hBQUUvQkZFQkFBSUFBUUVEQkFVSUNBSUhIZ1NVQXdBM0JESUlBUTRCRmdVQkR3QUhBUkVDQndFQ0FRVUFCd0FFQUFkdEJ3QmdnUEFBVEdGNWIzVjBSWEp5Y0hKcGRtRjBaUUI3Q1hCeWIyUjFZMlZ5Y3dJSWJHRnVaM1ZoWjJVQkJGSjFjM1FBREhCeWIyTmxjM05sWkMxaWVRTUZjblZ6ZEdNZE1TNDBPUzR3SUNobE1UZzROR0U0WlRNZ01qQXlNQzB4TWkweU9Ta0dkMkZzY25WekJqQXVNVGd1TUF4M1lYTnRMV0pwYm1SblpXNFNNQzR5TGpjd0lDaGlOak0xTldNeU56QXAiKTtsZXQgbzthc3luYyBmdW5jdGlvbiBOKEEsSSl7b3x8KG89YXdhaXQoYXN5bmMoKT0+KGF3YWl0IEUoRyksRCkpKCkpO2NvbnN0IGc9by5kZWNvbXByZXNzKEEsSSk7aWYoMD09PWcubGVuZ3RoKXRocm93IEVycm9yKCJGYWlsZWQgdG8gZGVjb2RlIHdpdGggTFpXIGRlY29kZXIuIik7cmV0dXJuIGd9CgogIGNsYXNzIExaV0RlY29kZXIgZXh0ZW5kcyBCYXNlRGVjb2RlciB7CiAgICBjb25zdHJ1Y3RvcihmaWxlRGlyZWN0b3J5KSB7CiAgICAgIHN1cGVyKCk7CiAgICAgIGNvbnN0IHdpZHRoID0gZmlsZURpcmVjdG9yeS5UaWxlV2lkdGggfHwgZmlsZURpcmVjdG9yeS5JbWFnZVdpZHRoOwogICAgICBjb25zdCBoZWlnaHQgPSBmaWxlRGlyZWN0b3J5LlRpbGVMZW5ndGggfHwgZmlsZURpcmVjdG9yeS5JbWFnZUxlbmd0aDsKICAgICAgY29uc3QgbmJ5dGVzID0gZmlsZURpcmVjdG9yeS5CaXRzUGVyU2FtcGxlWzBdIC8gODsKICAgICAgdGhpcy5tYXhVbmNvbXByZXNzZWRTaXplID0gd2lkdGggKiBoZWlnaHQgKiBuYnl0ZXM7CiAgICB9CgogICAgYXN5bmMgZGVjb2RlQmxvY2soYnVmZmVyKSB7CiAgICAgIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKICAgICAgY29uc3QgZGVjb2RlZCA9IGF3YWl0IE4oYnl0ZXMsIHRoaXMubWF4VW5jb21wcmVzc2VkU2l6ZSk7CiAgICAgIHJldHVybiBkZWNvZGVkLmJ1ZmZlcjsKICAgIH0KICB9CgogIC8qIC0qLSB0YWItd2lkdGg6IDI7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotIC8KICAvKiB2aW06IHNldCBzaGlmdHdpZHRoPTIgdGFic3RvcD0yIGF1dG9pbmRlbnQgY2luZGVudCBleHBhbmR0YWI6ICovCiAgLyoKICAgICBDb3B5cmlnaHQgMjAxMSBub3RtYXN0ZXJ5ZXQKICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAqLwoKICAvLyAtIFRoZSBKUEVHIHNwZWNpZmljYXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBJVFUgQ0NJVFQgUmVjb21tZW5kYXRpb24gVC44MQogIC8vICAgKHd3dy53My5vcmcvR3JhcGhpY3MvSlBFRy9pdHUtdDgxLnBkZikKICAvLyAtIFRoZSBKRklGIHNwZWNpZmljYXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBKUEVHIEZpbGUgSW50ZXJjaGFuZ2UgRm9ybWF0CiAgLy8gICAod3d3LnczLm9yZy9HcmFwaGljcy9KUEVHL2pmaWYzLnBkZikKICAvLyAtIFRoZSBBZG9iZSBBcHBsaWNhdGlvbi1TcGVjaWZpYyBKUEVHIG1hcmtlcnMgaW4gdGhlIFN1cHBvcnRpbmcgdGhlIERDVCBGaWx0ZXJzCiAgLy8gICBpbiBQb3N0U2NyaXB0IExldmVsIDIsIFRlY2huaWNhbCBOb3RlICM1MTE2CiAgLy8gICAocGFydG5lcnMuYWRvYmUuY29tL3B1YmxpYy9kZXZlbG9wZXIvZW4vcHMvc2RrLzUxMTYuRENUX0ZpbHRlci5wZGYpCgoKICBjb25zdCBkY3RaaWdaYWcgPSBuZXcgSW50MzJBcnJheShbCiAgICAwLAogICAgMSwgOCwKICAgIDE2LCA5LCAyLAogICAgMywgMTAsIDE3LCAyNCwKICAgIDMyLCAyNSwgMTgsIDExLCA0LAogICAgNSwgMTIsIDE5LCAyNiwgMzMsIDQwLAogICAgNDgsIDQxLCAzNCwgMjcsIDIwLCAxMywgNiwKICAgIDcsIDE0LCAyMSwgMjgsIDM1LCA0MiwgNDksIDU2LAogICAgNTcsIDUwLCA0MywgMzYsIDI5LCAyMiwgMTUsCiAgICAyMywgMzAsIDM3LCA0NCwgNTEsIDU4LAogICAgNTksIDUyLCA0NSwgMzgsIDMxLAogICAgMzksIDQ2LCA1MywgNjAsCiAgICA2MSwgNTQsIDQ3LAogICAgNTUsIDYyLAogICAgNjMsCiAgXSk7CgogIGNvbnN0IGRjdENvczEgPSA0MDE3OyAvLyBjb3MocGkvMTYpCiAgY29uc3QgZGN0U2luMSA9IDc5OTsgLy8gc2luKHBpLzE2KQogIGNvbnN0IGRjdENvczMgPSAzNDA2OyAvLyBjb3MoMypwaS8xNikKICBjb25zdCBkY3RTaW4zID0gMjI3NjsgLy8gc2luKDMqcGkvMTYpCiAgY29uc3QgZGN0Q29zNiA9IDE1Njc7IC8vIGNvcyg2KnBpLzE2KQogIGNvbnN0IGRjdFNpbjYgPSAzNzg0OyAvLyBzaW4oNipwaS8xNikKICBjb25zdCBkY3RTcXJ0MiA9IDU3OTM7IC8vIHNxcnQoMikKICBjb25zdCBkY3RTcXJ0MWQyID0gMjg5NjsvLyBzcXJ0KDIpIC8gMgoKICBmdW5jdGlvbiBidWlsZEh1ZmZtYW5UYWJsZShjb2RlTGVuZ3RocywgdmFsdWVzKSB7CiAgICBsZXQgayA9IDA7CiAgICBjb25zdCBjb2RlID0gW107CiAgICBsZXQgbGVuZ3RoID0gMTY7CiAgICB3aGlsZSAobGVuZ3RoID4gMCAmJiAhY29kZUxlbmd0aHNbbGVuZ3RoIC0gMV0pIHsKICAgICAgLS1sZW5ndGg7CiAgICB9CiAgICBjb2RlLnB1c2goeyBjaGlsZHJlbjogW10sIGluZGV4OiAwIH0pOwoKICAgIGxldCBwID0gY29kZVswXTsKICAgIGxldCBxOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvZGVMZW5ndGhzW2ldOyBqKyspIHsKICAgICAgICBwID0gY29kZS5wb3AoKTsKICAgICAgICBwLmNoaWxkcmVuW3AuaW5kZXhdID0gdmFsdWVzW2tdOwogICAgICAgIHdoaWxlIChwLmluZGV4ID4gMCkgewogICAgICAgICAgcCA9IGNvZGUucG9wKCk7CiAgICAgICAgfQogICAgICAgIHAuaW5kZXgrKzsKICAgICAgICBjb2RlLnB1c2gocCk7CiAgICAgICAgd2hpbGUgKGNvZGUubGVuZ3RoIDw9IGkpIHsKICAgICAgICAgIGNvZGUucHVzaChxID0geyBjaGlsZHJlbjogW10sIGluZGV4OiAwIH0pOwogICAgICAgICAgcC5jaGlsZHJlbltwLmluZGV4XSA9IHEuY2hpbGRyZW47CiAgICAgICAgICBwID0gcTsKICAgICAgICB9CiAgICAgICAgaysrOwogICAgICB9CiAgICAgIGlmIChpICsgMSA8IGxlbmd0aCkgewogICAgICAgIC8vIHAgaGVyZSBwb2ludHMgdG8gbGFzdCBjb2RlCiAgICAgICAgY29kZS5wdXNoKHEgPSB7IGNoaWxkcmVuOiBbXSwgaW5kZXg6IDAgfSk7CiAgICAgICAgcC5jaGlsZHJlbltwLmluZGV4XSA9IHEuY2hpbGRyZW47CiAgICAgICAgcCA9IHE7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBjb2RlWzBdLmNoaWxkcmVuOwogIH0KCiAgZnVuY3Rpb24gZGVjb2RlU2NhbihkYXRhLCBpbml0aWFsT2Zmc2V0LAogICAgZnJhbWUsIGNvbXBvbmVudHMsIHJlc2V0SW50ZXJ2YWwsCiAgICBzcGVjdHJhbFN0YXJ0LCBzcGVjdHJhbEVuZCwKICAgIHN1Y2Nlc3NpdmVQcmV2LCBzdWNjZXNzaXZlKSB7CiAgICBjb25zdCB7IG1jdXNQZXJMaW5lLCBwcm9ncmVzc2l2ZSB9ID0gZnJhbWU7CgogICAgY29uc3Qgc3RhcnRPZmZzZXQgPSBpbml0aWFsT2Zmc2V0OwogICAgbGV0IG9mZnNldCA9IGluaXRpYWxPZmZzZXQ7CiAgICBsZXQgYml0c0RhdGEgPSAwOwogICAgbGV0IGJpdHNDb3VudCA9IDA7CiAgICBmdW5jdGlvbiByZWFkQml0KCkgewogICAgICBpZiAoYml0c0NvdW50ID4gMCkgewogICAgICAgIGJpdHNDb3VudC0tOwogICAgICAgIHJldHVybiAoYml0c0RhdGEgPj4gYml0c0NvdW50KSAmIDE7CiAgICAgIH0KICAgICAgYml0c0RhdGEgPSBkYXRhW29mZnNldCsrXTsKICAgICAgaWYgKGJpdHNEYXRhID09PSAweEZGKSB7CiAgICAgICAgY29uc3QgbmV4dEJ5dGUgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICBpZiAobmV4dEJ5dGUpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBtYXJrZXI6ICR7KChiaXRzRGF0YSA8PCA4KSB8IG5leHRCeXRlKS50b1N0cmluZygxNil9YCk7CiAgICAgICAgfQogICAgICAgIC8vIHVuc3R1ZmYgMAogICAgICB9CiAgICAgIGJpdHNDb3VudCA9IDc7CiAgICAgIHJldHVybiBiaXRzRGF0YSA+Pj4gNzsKICAgIH0KICAgIGZ1bmN0aW9uIGRlY29kZUh1ZmZtYW4odHJlZSkgewogICAgICBsZXQgbm9kZSA9IHRyZWU7CiAgICAgIGxldCBiaXQ7CiAgICAgIHdoaWxlICgoYml0ID0gcmVhZEJpdCgpKSAhPT0gbnVsbCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbmQtYXNzaWduCiAgICAgICAgbm9kZSA9IG5vZGVbYml0XTsKICAgICAgICBpZiAodHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7CiAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiBub2RlICE9PSAnb2JqZWN0JykgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGh1ZmZtYW4gc2VxdWVuY2UnKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICBmdW5jdGlvbiByZWNlaXZlKGluaXRpYWxMZW5ndGgpIHsKICAgICAgbGV0IGxlbmd0aCA9IGluaXRpYWxMZW5ndGg7CiAgICAgIGxldCBuID0gMDsKICAgICAgd2hpbGUgKGxlbmd0aCA+IDApIHsKICAgICAgICBjb25zdCBiaXQgPSByZWFkQml0KCk7CiAgICAgICAgaWYgKGJpdCA9PT0gbnVsbCkgewogICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgICB9CiAgICAgICAgbiA9IChuIDw8IDEpIHwgYml0OwogICAgICAgIC0tbGVuZ3RoOwogICAgICB9CiAgICAgIHJldHVybiBuOwogICAgfQogICAgZnVuY3Rpb24gcmVjZWl2ZUFuZEV4dGVuZChsZW5ndGgpIHsKICAgICAgY29uc3QgbiA9IHJlY2VpdmUobGVuZ3RoKTsKICAgICAgaWYgKG4gPj0gMSA8PCAobGVuZ3RoIC0gMSkpIHsKICAgICAgICByZXR1cm4gbjsKICAgICAgfQogICAgICByZXR1cm4gbiArICgtMSA8PCBsZW5ndGgpICsgMTsKICAgIH0KICAgIGZ1bmN0aW9uIGRlY29kZUJhc2VsaW5lKGNvbXBvbmVudCwgenopIHsKICAgICAgY29uc3QgdCA9IGRlY29kZUh1ZmZtYW4oY29tcG9uZW50Lmh1ZmZtYW5UYWJsZURDKTsKICAgICAgY29uc3QgZGlmZiA9IHQgPT09IDAgPyAwIDogcmVjZWl2ZUFuZEV4dGVuZCh0KTsKICAgICAgY29tcG9uZW50LnByZWQgKz0gZGlmZjsKICAgICAgenpbMF0gPSBjb21wb25lbnQucHJlZDsKICAgICAgbGV0IGsgPSAxOwogICAgICB3aGlsZSAoayA8IDY0KSB7CiAgICAgICAgY29uc3QgcnMgPSBkZWNvZGVIdWZmbWFuKGNvbXBvbmVudC5odWZmbWFuVGFibGVBQyk7CiAgICAgICAgY29uc3QgcyA9IHJzICYgMTU7CiAgICAgICAgY29uc3QgciA9IHJzID4+IDQ7CiAgICAgICAgaWYgKHMgPT09IDApIHsKICAgICAgICAgIGlmIChyIDwgMTUpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBrICs9IDE2OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBrICs9IHI7CiAgICAgICAgICBjb25zdCB6ID0gZGN0WmlnWmFnW2tdOwogICAgICAgICAgenpbel0gPSByZWNlaXZlQW5kRXh0ZW5kKHMpOwogICAgICAgICAgaysrOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gZGVjb2RlRENGaXJzdChjb21wb25lbnQsIHp6KSB7CiAgICAgIGNvbnN0IHQgPSBkZWNvZGVIdWZmbWFuKGNvbXBvbmVudC5odWZmbWFuVGFibGVEQyk7CiAgICAgIGNvbnN0IGRpZmYgPSB0ID09PSAwID8gMCA6IChyZWNlaXZlQW5kRXh0ZW5kKHQpIDw8IHN1Y2Nlc3NpdmUpOwogICAgICBjb21wb25lbnQucHJlZCArPSBkaWZmOwogICAgICB6elswXSA9IGNvbXBvbmVudC5wcmVkOwogICAgfQogICAgZnVuY3Rpb24gZGVjb2RlRENTdWNjZXNzaXZlKGNvbXBvbmVudCwgenopIHsKICAgICAgenpbMF0gfD0gcmVhZEJpdCgpIDw8IHN1Y2Nlc3NpdmU7CiAgICB9CiAgICBsZXQgZW9icnVuID0gMDsKICAgIGZ1bmN0aW9uIGRlY29kZUFDRmlyc3QoY29tcG9uZW50LCB6eikgewogICAgICBpZiAoZW9icnVuID4gMCkgewogICAgICAgIGVvYnJ1bi0tOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBsZXQgayA9IHNwZWN0cmFsU3RhcnQ7CiAgICAgIGNvbnN0IGUgPSBzcGVjdHJhbEVuZDsKICAgICAgd2hpbGUgKGsgPD0gZSkgewogICAgICAgIGNvbnN0IHJzID0gZGVjb2RlSHVmZm1hbihjb21wb25lbnQuaHVmZm1hblRhYmxlQUMpOwogICAgICAgIGNvbnN0IHMgPSBycyAmIDE1OwogICAgICAgIGNvbnN0IHIgPSBycyA+PiA0OwogICAgICAgIGlmIChzID09PSAwKSB7CiAgICAgICAgICBpZiAociA8IDE1KSB7CiAgICAgICAgICAgIGVvYnJ1biA9IHJlY2VpdmUocikgKyAoMSA8PCByKSAtIDE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgayArPSAxNjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgayArPSByOwogICAgICAgICAgY29uc3QgeiA9IGRjdFppZ1phZ1trXTsKICAgICAgICAgIHp6W3pdID0gcmVjZWl2ZUFuZEV4dGVuZChzKSAqICgxIDw8IHN1Y2Nlc3NpdmUpOwogICAgICAgICAgaysrOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgbGV0IHN1Y2Nlc3NpdmVBQ1N0YXRlID0gMDsKICAgIGxldCBzdWNjZXNzaXZlQUNOZXh0VmFsdWU7CiAgICBmdW5jdGlvbiBkZWNvZGVBQ1N1Y2Nlc3NpdmUoY29tcG9uZW50LCB6eikgewogICAgICBsZXQgayA9IHNwZWN0cmFsU3RhcnQ7CiAgICAgIGNvbnN0IGUgPSBzcGVjdHJhbEVuZDsKICAgICAgbGV0IHIgPSAwOwogICAgICB3aGlsZSAoayA8PSBlKSB7CiAgICAgICAgY29uc3QgeiA9IGRjdFppZ1phZ1trXTsKICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSB6elt6XSA8IDAgPyAtMSA6IDE7CiAgICAgICAgc3dpdGNoIChzdWNjZXNzaXZlQUNTdGF0ZSkgewogICAgICAgICAgY2FzZSAwOiB7IC8vIGluaXRpYWwgc3RhdGUKICAgICAgICAgICAgY29uc3QgcnMgPSBkZWNvZGVIdWZmbWFuKGNvbXBvbmVudC5odWZmbWFuVGFibGVBQyk7CiAgICAgICAgICAgIGNvbnN0IHMgPSBycyAmIDE1OwogICAgICAgICAgICByID0gcnMgPj4gNDsKICAgICAgICAgICAgaWYgKHMgPT09IDApIHsKICAgICAgICAgICAgICBpZiAociA8IDE1KSB7CiAgICAgICAgICAgICAgICBlb2JydW4gPSByZWNlaXZlKHIpICsgKDEgPDwgcik7CiAgICAgICAgICAgICAgICBzdWNjZXNzaXZlQUNTdGF0ZSA9IDQ7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHIgPSAxNjsKICAgICAgICAgICAgICAgIHN1Y2Nlc3NpdmVBQ1N0YXRlID0gMTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgaWYgKHMgIT09IDEpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBBQ24gZW5jb2RpbmcnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgc3VjY2Vzc2l2ZUFDTmV4dFZhbHVlID0gcmVjZWl2ZUFuZEV4dGVuZChzKTsKICAgICAgICAgICAgICBzdWNjZXNzaXZlQUNTdGF0ZSA9IHIgPyAyIDogMzsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250aW51ZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250aW51ZQogICAgICAgICAgfQogICAgICAgICAgY2FzZSAxOiAvLyBza2lwcGluZyByIHplcm8gaXRlbXMKICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgaWYgKHp6W3pdKSB7CiAgICAgICAgICAgICAgenpbel0gKz0gKHJlYWRCaXQoKSA8PCBzdWNjZXNzaXZlKSAqIGRpcmVjdGlvbjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByLS07CiAgICAgICAgICAgICAgaWYgKHIgPT09IDApIHsKICAgICAgICAgICAgICAgIHN1Y2Nlc3NpdmVBQ1N0YXRlID0gc3VjY2Vzc2l2ZUFDU3RhdGUgPT09IDIgPyAzIDogMDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDM6IC8vIHNldCB2YWx1ZSBmb3IgYSB6ZXJvIGl0ZW0KICAgICAgICAgICAgaWYgKHp6W3pdKSB7CiAgICAgICAgICAgICAgenpbel0gKz0gKHJlYWRCaXQoKSA8PCBzdWNjZXNzaXZlKSAqIGRpcmVjdGlvbjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB6elt6XSA9IHN1Y2Nlc3NpdmVBQ05leHRWYWx1ZSA8PCBzdWNjZXNzaXZlOwogICAgICAgICAgICAgIHN1Y2Nlc3NpdmVBQ1N0YXRlID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNDogLy8gZW9iCiAgICAgICAgICAgIGlmICh6elt6XSkgewogICAgICAgICAgICAgIHp6W3pdICs9IChyZWFkQml0KCkgPDwgc3VjY2Vzc2l2ZSkgKiBkaXJlY3Rpb247CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGsrKzsKICAgICAgfQogICAgICBpZiAoc3VjY2Vzc2l2ZUFDU3RhdGUgPT09IDQpIHsKICAgICAgICBlb2JydW4tLTsKICAgICAgICBpZiAoZW9icnVuID09PSAwKSB7CiAgICAgICAgICBzdWNjZXNzaXZlQUNTdGF0ZSA9IDA7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBkZWNvZGVNY3UoY29tcG9uZW50LCBkZWNvZGVGdW5jdGlvbiwgbWN1LCByb3csIGNvbCkgewogICAgICBjb25zdCBtY3VSb3cgPSAobWN1IC8gbWN1c1BlckxpbmUpIHwgMDsKICAgICAgY29uc3QgbWN1Q29sID0gbWN1ICUgbWN1c1BlckxpbmU7CiAgICAgIGNvbnN0IGJsb2NrUm93ID0gKG1jdVJvdyAqIGNvbXBvbmVudC52KSArIHJvdzsKICAgICAgY29uc3QgYmxvY2tDb2wgPSAobWN1Q29sICogY29tcG9uZW50LmgpICsgY29sOwogICAgICBkZWNvZGVGdW5jdGlvbihjb21wb25lbnQsIGNvbXBvbmVudC5ibG9ja3NbYmxvY2tSb3ddW2Jsb2NrQ29sXSk7CiAgICB9CiAgICBmdW5jdGlvbiBkZWNvZGVCbG9jayhjb21wb25lbnQsIGRlY29kZUZ1bmN0aW9uLCBtY3UpIHsKICAgICAgY29uc3QgYmxvY2tSb3cgPSAobWN1IC8gY29tcG9uZW50LmJsb2Nrc1BlckxpbmUpIHwgMDsKICAgICAgY29uc3QgYmxvY2tDb2wgPSBtY3UgJSBjb21wb25lbnQuYmxvY2tzUGVyTGluZTsKICAgICAgZGVjb2RlRnVuY3Rpb24oY29tcG9uZW50LCBjb21wb25lbnQuYmxvY2tzW2Jsb2NrUm93XVtibG9ja0NvbF0pOwogICAgfQoKICAgIGNvbnN0IGNvbXBvbmVudHNMZW5ndGggPSBjb21wb25lbnRzLmxlbmd0aDsKICAgIGxldCBjb21wb25lbnQ7CiAgICBsZXQgaTsKICAgIGxldCBqOwogICAgbGV0IGs7CiAgICBsZXQgbjsKICAgIGxldCBkZWNvZGVGbjsKICAgIGlmIChwcm9ncmVzc2l2ZSkgewogICAgICBpZiAoc3BlY3RyYWxTdGFydCA9PT0gMCkgewogICAgICAgIGRlY29kZUZuID0gc3VjY2Vzc2l2ZVByZXYgPT09IDAgPyBkZWNvZGVEQ0ZpcnN0IDogZGVjb2RlRENTdWNjZXNzaXZlOwogICAgICB9IGVsc2UgewogICAgICAgIGRlY29kZUZuID0gc3VjY2Vzc2l2ZVByZXYgPT09IDAgPyBkZWNvZGVBQ0ZpcnN0IDogZGVjb2RlQUNTdWNjZXNzaXZlOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBkZWNvZGVGbiA9IGRlY29kZUJhc2VsaW5lOwogICAgfQoKICAgIGxldCBtY3UgPSAwOwogICAgbGV0IG1hcmtlcjsKICAgIGxldCBtY3VFeHBlY3RlZDsKICAgIGlmIChjb21wb25lbnRzTGVuZ3RoID09PSAxKSB7CiAgICAgIG1jdUV4cGVjdGVkID0gY29tcG9uZW50c1swXS5ibG9ja3NQZXJMaW5lICogY29tcG9uZW50c1swXS5ibG9ja3NQZXJDb2x1bW47CiAgICB9IGVsc2UgewogICAgICBtY3VFeHBlY3RlZCA9IG1jdXNQZXJMaW5lICogZnJhbWUubWN1c1BlckNvbHVtbjsKICAgIH0KCiAgICBjb25zdCB1c2VkUmVzZXRJbnRlcnZhbCA9IHJlc2V0SW50ZXJ2YWwgfHwgbWN1RXhwZWN0ZWQ7CgogICAgd2hpbGUgKG1jdSA8IG1jdUV4cGVjdGVkKSB7CiAgICAgIC8vIHJlc2V0IGludGVydmFsIHN0dWZmCiAgICAgIGZvciAoaSA9IDA7IGkgPCBjb21wb25lbnRzTGVuZ3RoOyBpKyspIHsKICAgICAgICBjb21wb25lbnRzW2ldLnByZWQgPSAwOwogICAgICB9CiAgICAgIGVvYnJ1biA9IDA7CgogICAgICBpZiAoY29tcG9uZW50c0xlbmd0aCA9PT0gMSkgewogICAgICAgIGNvbXBvbmVudCA9IGNvbXBvbmVudHNbMF07CiAgICAgICAgZm9yIChuID0gMDsgbiA8IHVzZWRSZXNldEludGVydmFsOyBuKyspIHsKICAgICAgICAgIGRlY29kZUJsb2NrKGNvbXBvbmVudCwgZGVjb2RlRm4sIG1jdSk7CiAgICAgICAgICBtY3UrKzsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChuID0gMDsgbiA8IHVzZWRSZXNldEludGVydmFsOyBuKyspIHsKICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb21wb25lbnRzTGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgY29tcG9uZW50ID0gY29tcG9uZW50c1tpXTsKICAgICAgICAgICAgY29uc3QgeyBoLCB2IH0gPSBjb21wb25lbnQ7CiAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCB2OyBqKyspIHsKICAgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgaDsgaysrKSB7CiAgICAgICAgICAgICAgICBkZWNvZGVNY3UoY29tcG9uZW50LCBkZWNvZGVGbiwgbWN1LCBqLCBrKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIG1jdSsrOwoKICAgICAgICAgIC8vIElmIHdlJ3ZlIHJlYWNoZWQgb3VyIGV4cGVjdGVkIE1DVSdzLCBzdG9wIGRlY29kaW5nCiAgICAgICAgICBpZiAobWN1ID09PSBtY3VFeHBlY3RlZCkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIGZpbmQgbWFya2VyCiAgICAgIGJpdHNDb3VudCA9IDA7CiAgICAgIG1hcmtlciA9IChkYXRhW29mZnNldF0gPDwgOCkgfCBkYXRhW29mZnNldCArIDFdOwogICAgICBpZiAobWFya2VyIDwgMHhGRjAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYXJrZXIgd2FzIG5vdCBmb3VuZCcpOwogICAgICB9CgogICAgICBpZiAobWFya2VyID49IDB4RkZEMCAmJiBtYXJrZXIgPD0gMHhGRkQ3KSB7IC8vIFJTVHgKICAgICAgICBvZmZzZXQgKz0gMjsKICAgICAgfSBlbHNlIHsKICAgICAgICBicmVhazsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBvZmZzZXQgLSBzdGFydE9mZnNldDsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkQ29tcG9uZW50RGF0YShmcmFtZSwgY29tcG9uZW50KSB7CiAgICBjb25zdCBsaW5lcyA9IFtdOwogICAgY29uc3QgeyBibG9ja3NQZXJMaW5lLCBibG9ja3NQZXJDb2x1bW4gfSA9IGNvbXBvbmVudDsKICAgIGNvbnN0IHNhbXBsZXNQZXJMaW5lID0gYmxvY2tzUGVyTGluZSA8PCAzOwogICAgY29uc3QgUiA9IG5ldyBJbnQzMkFycmF5KDY0KTsKICAgIGNvbnN0IHIgPSBuZXcgVWludDhBcnJheSg2NCk7CgogICAgLy8gQSBwb3J0IG9mIHBvcHBsZXIncyBJRENUIG1ldGhvZCB3aGljaCBpbiB0dXJuIGlzIHRha2VuIGZyb206CiAgICAvLyAgIENocmlzdG9waCBMb2VmZmxlciwgQWRyaWFhbiBMaWd0ZW5iZXJnLCBHZW9yZ2UgUy4gTW9zY2h5dHosCiAgICAvLyAgICJQcmFjdGljYWwgRmFzdCAxLUQgRENUIEFsZ29yaXRobXMgd2l0aCAxMSBNdWx0aXBsaWNhdGlvbnMiLAogICAgLy8gICBJRUVFIEludGwuIENvbmYuIG9uIEFjb3VzdGljcywgU3BlZWNoICYgU2lnbmFsIFByb2Nlc3NpbmcsIDE5ODksCiAgICAvLyAgIDk4OC05OTEuCiAgICBmdW5jdGlvbiBxdWFudGl6ZUFuZEludmVyc2UoenosIGRhdGFPdXQsIGRhdGFJbikgewogICAgICBjb25zdCBxdCA9IGNvbXBvbmVudC5xdWFudGl6YXRpb25UYWJsZTsKICAgICAgbGV0IHYwOwogICAgICBsZXQgdjE7CiAgICAgIGxldCB2MjsKICAgICAgbGV0IHYzOwogICAgICBsZXQgdjQ7CiAgICAgIGxldCB2NTsKICAgICAgbGV0IHY2OwogICAgICBsZXQgdjc7CiAgICAgIGxldCB0OwogICAgICBjb25zdCBwID0gZGF0YUluOwogICAgICBsZXQgaTsKCiAgICAgIC8vIGRlcXVhbnQKICAgICAgZm9yIChpID0gMDsgaSA8IDY0OyBpKyspIHsKICAgICAgICBwW2ldID0genpbaV0gKiBxdFtpXTsKICAgICAgfQoKICAgICAgLy8gaW52ZXJzZSBEQ1Qgb24gcm93cwogICAgICBmb3IgKGkgPSAwOyBpIDwgODsgKytpKSB7CiAgICAgICAgY29uc3Qgcm93ID0gOCAqIGk7CgogICAgICAgIC8vIGNoZWNrIGZvciBhbGwtemVybyBBQyBjb2VmZmljaWVudHMKICAgICAgICBpZiAocFsxICsgcm93XSA9PT0gMCAmJiBwWzIgKyByb3ddID09PSAwICYmIHBbMyArIHJvd10gPT09IDAKICAgICAgICAgICYmIHBbNCArIHJvd10gPT09IDAgJiYgcFs1ICsgcm93XSA9PT0gMCAmJiBwWzYgKyByb3ddID09PSAwCiAgICAgICAgICAmJiBwWzcgKyByb3ddID09PSAwKSB7CiAgICAgICAgICB0ID0gKChkY3RTcXJ0MiAqIHBbMCArIHJvd10pICsgNTEyKSA+PiAxMDsKICAgICAgICAgIHBbMCArIHJvd10gPSB0OwogICAgICAgICAgcFsxICsgcm93XSA9IHQ7CiAgICAgICAgICBwWzIgKyByb3ddID0gdDsKICAgICAgICAgIHBbMyArIHJvd10gPSB0OwogICAgICAgICAgcFs0ICsgcm93XSA9IHQ7CiAgICAgICAgICBwWzUgKyByb3ddID0gdDsKICAgICAgICAgIHBbNiArIHJvd10gPSB0OwogICAgICAgICAgcFs3ICsgcm93XSA9IHQ7CiAgICAgICAgICBjb250aW51ZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250aW51ZQogICAgICAgIH0KCiAgICAgICAgLy8gc3RhZ2UgNAogICAgICAgIHYwID0gKChkY3RTcXJ0MiAqIHBbMCArIHJvd10pICsgMTI4KSA+PiA4OwogICAgICAgIHYxID0gKChkY3RTcXJ0MiAqIHBbNCArIHJvd10pICsgMTI4KSA+PiA4OwogICAgICAgIHYyID0gcFsyICsgcm93XTsKICAgICAgICB2MyA9IHBbNiArIHJvd107CiAgICAgICAgdjQgPSAoKGRjdFNxcnQxZDIgKiAocFsxICsgcm93XSAtIHBbNyArIHJvd10pKSArIDEyOCkgPj4gODsKICAgICAgICB2NyA9ICgoZGN0U3FydDFkMiAqIChwWzEgKyByb3ddICsgcFs3ICsgcm93XSkpICsgMTI4KSA+PiA4OwogICAgICAgIHY1ID0gcFszICsgcm93XSA8PCA0OwogICAgICAgIHY2ID0gcFs1ICsgcm93XSA8PCA0OwoKICAgICAgICAvLyBzdGFnZSAzCiAgICAgICAgdCA9ICh2MCAtIHYxICsgMSkgPj4gMTsKICAgICAgICB2MCA9ICh2MCArIHYxICsgMSkgPj4gMTsKICAgICAgICB2MSA9IHQ7CiAgICAgICAgdCA9ICgodjIgKiBkY3RTaW42KSArICh2MyAqIGRjdENvczYpICsgMTI4KSA+PiA4OwogICAgICAgIHYyID0gKCh2MiAqIGRjdENvczYpIC0gKHYzICogZGN0U2luNikgKyAxMjgpID4+IDg7CiAgICAgICAgdjMgPSB0OwogICAgICAgIHQgPSAodjQgLSB2NiArIDEpID4+IDE7CiAgICAgICAgdjQgPSAodjQgKyB2NiArIDEpID4+IDE7CiAgICAgICAgdjYgPSB0OwogICAgICAgIHQgPSAodjcgKyB2NSArIDEpID4+IDE7CiAgICAgICAgdjUgPSAodjcgLSB2NSArIDEpID4+IDE7CiAgICAgICAgdjcgPSB0OwoKICAgICAgICAvLyBzdGFnZSAyCiAgICAgICAgdCA9ICh2MCAtIHYzICsgMSkgPj4gMTsKICAgICAgICB2MCA9ICh2MCArIHYzICsgMSkgPj4gMTsKICAgICAgICB2MyA9IHQ7CiAgICAgICAgdCA9ICh2MSAtIHYyICsgMSkgPj4gMTsKICAgICAgICB2MSA9ICh2MSArIHYyICsgMSkgPj4gMTsKICAgICAgICB2MiA9IHQ7CiAgICAgICAgdCA9ICgodjQgKiBkY3RTaW4zKSArICh2NyAqIGRjdENvczMpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjQgPSAoKHY0ICogZGN0Q29zMykgLSAodjcgKiBkY3RTaW4zKSArIDIwNDgpID4+IDEyOwogICAgICAgIHY3ID0gdDsKICAgICAgICB0ID0gKCh2NSAqIGRjdFNpbjEpICsgKHY2ICogZGN0Q29zMSkgKyAyMDQ4KSA+PiAxMjsKICAgICAgICB2NSA9ICgodjUgKiBkY3RDb3MxKSAtICh2NiAqIGRjdFNpbjEpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjYgPSB0OwoKICAgICAgICAvLyBzdGFnZSAxCiAgICAgICAgcFswICsgcm93XSA9IHYwICsgdjc7CiAgICAgICAgcFs3ICsgcm93XSA9IHYwIC0gdjc7CiAgICAgICAgcFsxICsgcm93XSA9IHYxICsgdjY7CiAgICAgICAgcFs2ICsgcm93XSA9IHYxIC0gdjY7CiAgICAgICAgcFsyICsgcm93XSA9IHYyICsgdjU7CiAgICAgICAgcFs1ICsgcm93XSA9IHYyIC0gdjU7CiAgICAgICAgcFszICsgcm93XSA9IHYzICsgdjQ7CiAgICAgICAgcFs0ICsgcm93XSA9IHYzIC0gdjQ7CiAgICAgIH0KCiAgICAgIC8vIGludmVyc2UgRENUIG9uIGNvbHVtbnMKICAgICAgZm9yIChpID0gMDsgaSA8IDg7ICsraSkgewogICAgICAgIGNvbnN0IGNvbCA9IGk7CgogICAgICAgIC8vIGNoZWNrIGZvciBhbGwtemVybyBBQyBjb2VmZmljaWVudHMKICAgICAgICBpZiAocFsoMSAqIDgpICsgY29sXSA9PT0gMCAmJiBwWygyICogOCkgKyBjb2xdID09PSAwICYmIHBbKDMgKiA4KSArIGNvbF0gPT09IDAKICAgICAgICAgICYmIHBbKDQgKiA4KSArIGNvbF0gPT09IDAgJiYgcFsoNSAqIDgpICsgY29sXSA9PT0gMCAmJiBwWyg2ICogOCkgKyBjb2xdID09PSAwCiAgICAgICAgICAmJiBwWyg3ICogOCkgKyBjb2xdID09PSAwKSB7CiAgICAgICAgICB0ID0gKChkY3RTcXJ0MiAqIGRhdGFJbltpICsgMF0pICsgODE5MikgPj4gMTQ7CiAgICAgICAgICBwWygwICogOCkgKyBjb2xdID0gdDsKICAgICAgICAgIHBbKDEgKiA4KSArIGNvbF0gPSB0OwogICAgICAgICAgcFsoMiAqIDgpICsgY29sXSA9IHQ7CiAgICAgICAgICBwWygzICogOCkgKyBjb2xdID0gdDsKICAgICAgICAgIHBbKDQgKiA4KSArIGNvbF0gPSB0OwogICAgICAgICAgcFsoNSAqIDgpICsgY29sXSA9IHQ7CiAgICAgICAgICBwWyg2ICogOCkgKyBjb2xdID0gdDsKICAgICAgICAgIHBbKDcgKiA4KSArIGNvbF0gPSB0OwogICAgICAgICAgY29udGludWU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29udGludWUKICAgICAgICB9CgogICAgICAgIC8vIHN0YWdlIDQKICAgICAgICB2MCA9ICgoZGN0U3FydDIgKiBwWygwICogOCkgKyBjb2xdKSArIDIwNDgpID4+IDEyOwogICAgICAgIHYxID0gKChkY3RTcXJ0MiAqIHBbKDQgKiA4KSArIGNvbF0pICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjIgPSBwWygyICogOCkgKyBjb2xdOwogICAgICAgIHYzID0gcFsoNiAqIDgpICsgY29sXTsKICAgICAgICB2NCA9ICgoZGN0U3FydDFkMiAqIChwWygxICogOCkgKyBjb2xdIC0gcFsoNyAqIDgpICsgY29sXSkpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjcgPSAoKGRjdFNxcnQxZDIgKiAocFsoMSAqIDgpICsgY29sXSArIHBbKDcgKiA4KSArIGNvbF0pKSArIDIwNDgpID4+IDEyOwogICAgICAgIHY1ID0gcFsoMyAqIDgpICsgY29sXTsKICAgICAgICB2NiA9IHBbKDUgKiA4KSArIGNvbF07CgogICAgICAgIC8vIHN0YWdlIDMKICAgICAgICB0ID0gKHYwIC0gdjEgKyAxKSA+PiAxOwogICAgICAgIHYwID0gKHYwICsgdjEgKyAxKSA+PiAxOwogICAgICAgIHYxID0gdDsKICAgICAgICB0ID0gKCh2MiAqIGRjdFNpbjYpICsgKHYzICogZGN0Q29zNikgKyAyMDQ4KSA+PiAxMjsKICAgICAgICB2MiA9ICgodjIgKiBkY3RDb3M2KSAtICh2MyAqIGRjdFNpbjYpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjMgPSB0OwogICAgICAgIHQgPSAodjQgLSB2NiArIDEpID4+IDE7CiAgICAgICAgdjQgPSAodjQgKyB2NiArIDEpID4+IDE7CiAgICAgICAgdjYgPSB0OwogICAgICAgIHQgPSAodjcgKyB2NSArIDEpID4+IDE7CiAgICAgICAgdjUgPSAodjcgLSB2NSArIDEpID4+IDE7CiAgICAgICAgdjcgPSB0OwoKICAgICAgICAvLyBzdGFnZSAyCiAgICAgICAgdCA9ICh2MCAtIHYzICsgMSkgPj4gMTsKICAgICAgICB2MCA9ICh2MCArIHYzICsgMSkgPj4gMTsKICAgICAgICB2MyA9IHQ7CiAgICAgICAgdCA9ICh2MSAtIHYyICsgMSkgPj4gMTsKICAgICAgICB2MSA9ICh2MSArIHYyICsgMSkgPj4gMTsKICAgICAgICB2MiA9IHQ7CiAgICAgICAgdCA9ICgodjQgKiBkY3RTaW4zKSArICh2NyAqIGRjdENvczMpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjQgPSAoKHY0ICogZGN0Q29zMykgLSAodjcgKiBkY3RTaW4zKSArIDIwNDgpID4+IDEyOwogICAgICAgIHY3ID0gdDsKICAgICAgICB0ID0gKCh2NSAqIGRjdFNpbjEpICsgKHY2ICogZGN0Q29zMSkgKyAyMDQ4KSA+PiAxMjsKICAgICAgICB2NSA9ICgodjUgKiBkY3RDb3MxKSAtICh2NiAqIGRjdFNpbjEpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjYgPSB0OwoKICAgICAgICAvLyBzdGFnZSAxCiAgICAgICAgcFsoMCAqIDgpICsgY29sXSA9IHYwICsgdjc7CiAgICAgICAgcFsoNyAqIDgpICsgY29sXSA9IHYwIC0gdjc7CiAgICAgICAgcFsoMSAqIDgpICsgY29sXSA9IHYxICsgdjY7CiAgICAgICAgcFsoNiAqIDgpICsgY29sXSA9IHYxIC0gdjY7CiAgICAgICAgcFsoMiAqIDgpICsgY29sXSA9IHYyICsgdjU7CiAgICAgICAgcFsoNSAqIDgpICsgY29sXSA9IHYyIC0gdjU7CiAgICAgICAgcFsoMyAqIDgpICsgY29sXSA9IHYzICsgdjQ7CiAgICAgICAgcFsoNCAqIDgpICsgY29sXSA9IHYzIC0gdjQ7CiAgICAgIH0KCiAgICAgIC8vIGNvbnZlcnQgdG8gOC1iaXQgaW50ZWdlcnMKICAgICAgZm9yIChpID0gMDsgaSA8IDY0OyArK2kpIHsKICAgICAgICBjb25zdCBzYW1wbGUgPSAxMjggKyAoKHBbaV0gKyA4KSA+PiA0KTsKICAgICAgICBpZiAoc2FtcGxlIDwgMCkgewogICAgICAgICAgZGF0YU91dFtpXSA9IDA7CiAgICAgICAgfSBlbHNlIGlmIChzYW1wbGUgPiAwWEZGKSB7CiAgICAgICAgICBkYXRhT3V0W2ldID0gMHhGRjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZGF0YU91dFtpXSA9IHNhbXBsZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICBmb3IgKGxldCBibG9ja1JvdyA9IDA7IGJsb2NrUm93IDwgYmxvY2tzUGVyQ29sdW1uOyBibG9ja1JvdysrKSB7CiAgICAgIGNvbnN0IHNjYW5MaW5lID0gYmxvY2tSb3cgPDwgMzsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHsKICAgICAgICBsaW5lcy5wdXNoKG5ldyBVaW50OEFycmF5KHNhbXBsZXNQZXJMaW5lKSk7CiAgICAgIH0KICAgICAgZm9yIChsZXQgYmxvY2tDb2wgPSAwOyBibG9ja0NvbCA8IGJsb2Nrc1BlckxpbmU7IGJsb2NrQ29sKyspIHsKICAgICAgICBxdWFudGl6ZUFuZEludmVyc2UoY29tcG9uZW50LmJsb2Nrc1tibG9ja1Jvd11bYmxvY2tDb2xdLCByLCBSKTsKCiAgICAgICAgbGV0IG9mZnNldCA9IDA7CiAgICAgICAgY29uc3Qgc2FtcGxlID0gYmxvY2tDb2wgPDwgMzsKICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDg7IGorKykgewogICAgICAgICAgY29uc3QgbGluZSA9IGxpbmVzW3NjYW5MaW5lICsgal07CiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDg7IGkrKykgewogICAgICAgICAgICBsaW5lW3NhbXBsZSArIGldID0gcltvZmZzZXQrK107CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gbGluZXM7CiAgfQoKICBjbGFzcyBKcGVnU3RyZWFtUmVhZGVyIHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICB0aGlzLmpmaWYgPSBudWxsOwogICAgICB0aGlzLmFkb2JlID0gbnVsbDsKCiAgICAgIHRoaXMucXVhbnRpemF0aW9uVGFibGVzID0gW107CiAgICAgIHRoaXMuaHVmZm1hblRhYmxlc0FDID0gW107CiAgICAgIHRoaXMuaHVmZm1hblRhYmxlc0RDID0gW107CiAgICAgIHRoaXMucmVzZXRGcmFtZXMoKTsKICAgIH0KCiAgICByZXNldEZyYW1lcygpIHsKICAgICAgdGhpcy5mcmFtZXMgPSBbXTsKICAgIH0KCiAgICBwYXJzZShkYXRhKSB7CiAgICAgIGxldCBvZmZzZXQgPSAwOwogICAgICAvLyBjb25zdCB7IGxlbmd0aCB9ID0gZGF0YTsKICAgICAgZnVuY3Rpb24gcmVhZFVpbnQxNigpIHsKICAgICAgICBjb25zdCB2YWx1ZSA9IChkYXRhW29mZnNldF0gPDwgOCkgfCBkYXRhW29mZnNldCArIDFdOwogICAgICAgIG9mZnNldCArPSAyOwogICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZWFkRGF0YUJsb2NrKCkgewogICAgICAgIGNvbnN0IGxlbmd0aCA9IHJlYWRVaW50MTYoKTsKICAgICAgICBjb25zdCBhcnJheSA9IGRhdGEuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBsZW5ndGggLSAyKTsKICAgICAgICBvZmZzZXQgKz0gYXJyYXkubGVuZ3RoOwogICAgICAgIHJldHVybiBhcnJheTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwcmVwYXJlQ29tcG9uZW50cyhmcmFtZSkgewogICAgICAgIGxldCBtYXhIID0gMDsKICAgICAgICBsZXQgbWF4ViA9IDA7CiAgICAgICAgbGV0IGNvbXBvbmVudDsKICAgICAgICBsZXQgY29tcG9uZW50SWQ7CiAgICAgICAgZm9yIChjb21wb25lbnRJZCBpbiBmcmFtZS5jb21wb25lbnRzKSB7CiAgICAgICAgICBpZiAoZnJhbWUuY29tcG9uZW50cy5oYXNPd25Qcm9wZXJ0eShjb21wb25lbnRJZCkpIHsKICAgICAgICAgICAgY29tcG9uZW50ID0gZnJhbWUuY29tcG9uZW50c1tjb21wb25lbnRJZF07CiAgICAgICAgICAgIGlmIChtYXhIIDwgY29tcG9uZW50LmgpIHsKICAgICAgICAgICAgICBtYXhIID0gY29tcG9uZW50Lmg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKG1heFYgPCBjb21wb25lbnQudikgewogICAgICAgICAgICAgIG1heFYgPSBjb21wb25lbnQudjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCBtY3VzUGVyTGluZSA9IE1hdGguY2VpbChmcmFtZS5zYW1wbGVzUGVyTGluZSAvIDggLyBtYXhIKTsKICAgICAgICBjb25zdCBtY3VzUGVyQ29sdW1uID0gTWF0aC5jZWlsKGZyYW1lLnNjYW5MaW5lcyAvIDggLyBtYXhWKTsKICAgICAgICBmb3IgKGNvbXBvbmVudElkIGluIGZyYW1lLmNvbXBvbmVudHMpIHsKICAgICAgICAgIGlmIChmcmFtZS5jb21wb25lbnRzLmhhc093blByb3BlcnR5KGNvbXBvbmVudElkKSkgewogICAgICAgICAgICBjb21wb25lbnQgPSBmcmFtZS5jb21wb25lbnRzW2NvbXBvbmVudElkXTsKICAgICAgICAgICAgY29uc3QgYmxvY2tzUGVyTGluZSA9IE1hdGguY2VpbChNYXRoLmNlaWwoZnJhbWUuc2FtcGxlc1BlckxpbmUgLyA4KSAqIGNvbXBvbmVudC5oIC8gbWF4SCk7CiAgICAgICAgICAgIGNvbnN0IGJsb2Nrc1BlckNvbHVtbiA9IE1hdGguY2VpbChNYXRoLmNlaWwoZnJhbWUuc2NhbkxpbmVzIC8gOCkgKiBjb21wb25lbnQudiAvIG1heFYpOwogICAgICAgICAgICBjb25zdCBibG9ja3NQZXJMaW5lRm9yTWN1ID0gbWN1c1BlckxpbmUgKiBjb21wb25lbnQuaDsKICAgICAgICAgICAgY29uc3QgYmxvY2tzUGVyQ29sdW1uRm9yTWN1ID0gbWN1c1BlckNvbHVtbiAqIGNvbXBvbmVudC52OwogICAgICAgICAgICBjb25zdCBibG9ja3MgPSBbXTsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBibG9ja3NQZXJDb2x1bW5Gb3JNY3U7IGkrKykgewogICAgICAgICAgICAgIGNvbnN0IHJvdyA9IFtdOwogICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgYmxvY2tzUGVyTGluZUZvck1jdTsgaisrKSB7CiAgICAgICAgICAgICAgICByb3cucHVzaChuZXcgSW50MzJBcnJheSg2NCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBibG9ja3MucHVzaChyb3cpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbXBvbmVudC5ibG9ja3NQZXJMaW5lID0gYmxvY2tzUGVyTGluZTsKICAgICAgICAgICAgY29tcG9uZW50LmJsb2Nrc1BlckNvbHVtbiA9IGJsb2Nrc1BlckNvbHVtbjsKICAgICAgICAgICAgY29tcG9uZW50LmJsb2NrcyA9IGJsb2NrczsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnJhbWUubWF4SCA9IG1heEg7CiAgICAgICAgZnJhbWUubWF4ViA9IG1heFY7CiAgICAgICAgZnJhbWUubWN1c1BlckxpbmUgPSBtY3VzUGVyTGluZTsKICAgICAgICBmcmFtZS5tY3VzUGVyQ29sdW1uID0gbWN1c1BlckNvbHVtbjsKICAgICAgfQoKICAgICAgbGV0IGZpbGVNYXJrZXIgPSByZWFkVWludDE2KCk7CiAgICAgIGlmIChmaWxlTWFya2VyICE9PSAweEZGRDgpIHsgLy8gU09JIChTdGFydCBvZiBJbWFnZSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NPSSBub3QgZm91bmQnKTsKICAgICAgfQoKICAgICAgZmlsZU1hcmtlciA9IHJlYWRVaW50MTYoKTsKICAgICAgd2hpbGUgKGZpbGVNYXJrZXIgIT09IDB4RkZEOSkgeyAvLyBFT0kgKEVuZCBvZiBpbWFnZSkKICAgICAgICBzd2l0Y2ggKGZpbGVNYXJrZXIpIHsKICAgICAgICAgIGNhc2UgMHhGRjAwOiBicmVhazsKICAgICAgICAgIGNhc2UgMHhGRkUwOiAvLyBBUFAwIChBcHBsaWNhdGlvbiBTcGVjaWZpYykKICAgICAgICAgIGNhc2UgMHhGRkUxOiAvLyBBUFAxCiAgICAgICAgICBjYXNlIDB4RkZFMjogLy8gQVBQMgogICAgICAgICAgY2FzZSAweEZGRTM6IC8vIEFQUDMKICAgICAgICAgIGNhc2UgMHhGRkU0OiAvLyBBUFA0CiAgICAgICAgICBjYXNlIDB4RkZFNTogLy8gQVBQNQogICAgICAgICAgY2FzZSAweEZGRTY6IC8vIEFQUDYKICAgICAgICAgIGNhc2UgMHhGRkU3OiAvLyBBUFA3CiAgICAgICAgICBjYXNlIDB4RkZFODogLy8gQVBQOAogICAgICAgICAgY2FzZSAweEZGRTk6IC8vIEFQUDkKICAgICAgICAgIGNhc2UgMHhGRkVBOiAvLyBBUFAxMAogICAgICAgICAgY2FzZSAweEZGRUI6IC8vIEFQUDExCiAgICAgICAgICBjYXNlIDB4RkZFQzogLy8gQVBQMTIKICAgICAgICAgIGNhc2UgMHhGRkVEOiAvLyBBUFAxMwogICAgICAgICAgY2FzZSAweEZGRUU6IC8vIEFQUDE0CiAgICAgICAgICBjYXNlIDB4RkZFRjogLy8gQVBQMTUKICAgICAgICAgIGNhc2UgMHhGRkZFOiB7IC8vIENPTSAoQ29tbWVudCkKICAgICAgICAgICAgY29uc3QgYXBwRGF0YSA9IHJlYWREYXRhQmxvY2soKTsKCiAgICAgICAgICAgIGlmIChmaWxlTWFya2VyID09PSAweEZGRTApIHsKICAgICAgICAgICAgICBpZiAoYXBwRGF0YVswXSA9PT0gMHg0QSAmJiBhcHBEYXRhWzFdID09PSAweDQ2ICYmIGFwcERhdGFbMl0gPT09IDB4NDkKICAgICAgICAgICAgICAgICYmIGFwcERhdGFbM10gPT09IDB4NDYgJiYgYXBwRGF0YVs0XSA9PT0gMCkgeyAvLyAnSkZJRlx4MDAnCiAgICAgICAgICAgICAgICB0aGlzLmpmaWYgPSB7CiAgICAgICAgICAgICAgICAgIHZlcnNpb246IHsgbWFqb3I6IGFwcERhdGFbNV0sIG1pbm9yOiBhcHBEYXRhWzZdIH0sCiAgICAgICAgICAgICAgICAgIGRlbnNpdHlVbml0czogYXBwRGF0YVs3XSwKICAgICAgICAgICAgICAgICAgeERlbnNpdHk6IChhcHBEYXRhWzhdIDw8IDgpIHwgYXBwRGF0YVs5XSwKICAgICAgICAgICAgICAgICAgeURlbnNpdHk6IChhcHBEYXRhWzEwXSA8PCA4KSB8IGFwcERhdGFbMTFdLAogICAgICAgICAgICAgICAgICB0aHVtYldpZHRoOiBhcHBEYXRhWzEyXSwKICAgICAgICAgICAgICAgICAgdGh1bWJIZWlnaHQ6IGFwcERhdGFbMTNdLAogICAgICAgICAgICAgICAgICB0aHVtYkRhdGE6IGFwcERhdGEuc3ViYXJyYXkoMTQsIDE0ICsgKDMgKiBhcHBEYXRhWzEyXSAqIGFwcERhdGFbMTNdKSksCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBUT0RPIEFQUDEgLSBFeGlmCiAgICAgICAgICAgIGlmIChmaWxlTWFya2VyID09PSAweEZGRUUpIHsKICAgICAgICAgICAgICBpZiAoYXBwRGF0YVswXSA9PT0gMHg0MSAmJiBhcHBEYXRhWzFdID09PSAweDY0ICYmIGFwcERhdGFbMl0gPT09IDB4NkYKICAgICAgICAgICAgICAgICYmIGFwcERhdGFbM10gPT09IDB4NjIgJiYgYXBwRGF0YVs0XSA9PT0gMHg2NSAmJiBhcHBEYXRhWzVdID09PSAwKSB7IC8vICdBZG9iZVx4MDAnCiAgICAgICAgICAgICAgICB0aGlzLmFkb2JlID0gewogICAgICAgICAgICAgICAgICB2ZXJzaW9uOiBhcHBEYXRhWzZdLAogICAgICAgICAgICAgICAgICBmbGFnczA6IChhcHBEYXRhWzddIDw8IDgpIHwgYXBwRGF0YVs4XSwKICAgICAgICAgICAgICAgICAgZmxhZ3MxOiAoYXBwRGF0YVs5XSA8PCA4KSB8IGFwcERhdGFbMTBdLAogICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1Db2RlOiBhcHBEYXRhWzExXSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQoKICAgICAgICAgIGNhc2UgMHhGRkRCOiB7IC8vIERRVCAoRGVmaW5lIFF1YW50aXphdGlvbiBUYWJsZXMpCiAgICAgICAgICAgIGNvbnN0IHF1YW50aXphdGlvblRhYmxlc0xlbmd0aCA9IHJlYWRVaW50MTYoKTsKICAgICAgICAgICAgY29uc3QgcXVhbnRpemF0aW9uVGFibGVzRW5kID0gcXVhbnRpemF0aW9uVGFibGVzTGVuZ3RoICsgb2Zmc2V0IC0gMjsKICAgICAgICAgICAgd2hpbGUgKG9mZnNldCA8IHF1YW50aXphdGlvblRhYmxlc0VuZCkgewogICAgICAgICAgICAgIGNvbnN0IHF1YW50aXphdGlvblRhYmxlU3BlYyA9IGRhdGFbb2Zmc2V0KytdOwogICAgICAgICAgICAgIGNvbnN0IHRhYmxlRGF0YSA9IG5ldyBJbnQzMkFycmF5KDY0KTsKICAgICAgICAgICAgICBpZiAoKHF1YW50aXphdGlvblRhYmxlU3BlYyA+PiA0KSA9PT0gMCkgeyAvLyA4IGJpdCB2YWx1ZXMKICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgNjQ7IGorKykgewogICAgICAgICAgICAgICAgICBjb25zdCB6ID0gZGN0WmlnWmFnW2pdOwogICAgICAgICAgICAgICAgICB0YWJsZURhdGFbel0gPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGVsc2UgaWYgKChxdWFudGl6YXRpb25UYWJsZVNwZWMgPj4gNCkgPT09IDEpIHsgLy8gMTYgYml0CiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDY0OyBqKyspIHsKICAgICAgICAgICAgICAgICAgY29uc3QgeiA9IGRjdFppZ1phZ1tqXTsKICAgICAgICAgICAgICAgICAgdGFibGVEYXRhW3pdID0gcmVhZFVpbnQxNigpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RRVDogaW52YWxpZCB0YWJsZSBzcGVjJyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRoaXMucXVhbnRpemF0aW9uVGFibGVzW3F1YW50aXphdGlvblRhYmxlU3BlYyAmIDE1XSA9IHRhYmxlRGF0YTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KCiAgICAgICAgICBjYXNlIDB4RkZDMDogLy8gU09GMCAoU3RhcnQgb2YgRnJhbWUsIEJhc2VsaW5lIERDVCkKICAgICAgICAgIGNhc2UgMHhGRkMxOiAvLyBTT0YxIChTdGFydCBvZiBGcmFtZSwgRXh0ZW5kZWQgRENUKQogICAgICAgICAgY2FzZSAweEZGQzI6IHsgLy8gU09GMiAoU3RhcnQgb2YgRnJhbWUsIFByb2dyZXNzaXZlIERDVCkKICAgICAgICAgICAgcmVhZFVpbnQxNigpOyAvLyBza2lwIGRhdGEgbGVuZ3RoCiAgICAgICAgICAgIGNvbnN0IGZyYW1lID0gewogICAgICAgICAgICAgIGV4dGVuZGVkOiAoZmlsZU1hcmtlciA9PT0gMHhGRkMxKSwKICAgICAgICAgICAgICBwcm9ncmVzc2l2ZTogKGZpbGVNYXJrZXIgPT09IDB4RkZDMiksCiAgICAgICAgICAgICAgcHJlY2lzaW9uOiBkYXRhW29mZnNldCsrXSwKICAgICAgICAgICAgICBzY2FuTGluZXM6IHJlYWRVaW50MTYoKSwKICAgICAgICAgICAgICBzYW1wbGVzUGVyTGluZTogcmVhZFVpbnQxNigpLAogICAgICAgICAgICAgIGNvbXBvbmVudHM6IHt9LAogICAgICAgICAgICAgIGNvbXBvbmVudHNPcmRlcjogW10sCiAgICAgICAgICAgIH07CgogICAgICAgICAgICBjb25zdCBjb21wb25lbnRzQ291bnQgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgbGV0IGNvbXBvbmVudElkOwogICAgICAgICAgICAvLyBsZXQgbWF4SCA9IDA7CiAgICAgICAgICAgIC8vIGxldCBtYXhWID0gMDsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21wb25lbnRzQ291bnQ7IGkrKykgewogICAgICAgICAgICAgIGNvbXBvbmVudElkID0gZGF0YVtvZmZzZXRdOwogICAgICAgICAgICAgIGNvbnN0IGggPSBkYXRhW29mZnNldCArIDFdID4+IDQ7CiAgICAgICAgICAgICAgY29uc3QgdiA9IGRhdGFbb2Zmc2V0ICsgMV0gJiAxNTsKICAgICAgICAgICAgICBjb25zdCBxSWQgPSBkYXRhW29mZnNldCArIDJdOwogICAgICAgICAgICAgIGZyYW1lLmNvbXBvbmVudHNPcmRlci5wdXNoKGNvbXBvbmVudElkKTsKICAgICAgICAgICAgICBmcmFtZS5jb21wb25lbnRzW2NvbXBvbmVudElkXSA9IHsKICAgICAgICAgICAgICAgIGgsCiAgICAgICAgICAgICAgICB2LAogICAgICAgICAgICAgICAgcXVhbnRpemF0aW9uSWR4OiBxSWQsCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBvZmZzZXQgKz0gMzsKICAgICAgICAgICAgfQogICAgICAgICAgICBwcmVwYXJlQ29tcG9uZW50cyhmcmFtZSk7CiAgICAgICAgICAgIHRoaXMuZnJhbWVzLnB1c2goZnJhbWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KCiAgICAgICAgICBjYXNlIDB4RkZDNDogeyAvLyBESFQgKERlZmluZSBIdWZmbWFuIFRhYmxlcykKICAgICAgICAgICAgY29uc3QgaHVmZm1hbkxlbmd0aCA9IHJlYWRVaW50MTYoKTsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPCBodWZmbWFuTGVuZ3RoOykgewogICAgICAgICAgICAgIGNvbnN0IGh1ZmZtYW5UYWJsZVNwZWMgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgICBjb25zdCBjb2RlTGVuZ3RocyA9IG5ldyBVaW50OEFycmF5KDE2KTsKICAgICAgICAgICAgICBsZXQgY29kZUxlbmd0aFN1bSA9IDA7CiAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCAxNjsgaisrLCBvZmZzZXQrKykgewogICAgICAgICAgICAgICAgY29kZUxlbmd0aHNbal0gPSBkYXRhW29mZnNldF07CiAgICAgICAgICAgICAgICBjb2RlTGVuZ3RoU3VtICs9IGNvZGVMZW5ndGhzW2pdOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb25zdCBodWZmbWFuVmFsdWVzID0gbmV3IFVpbnQ4QXJyYXkoY29kZUxlbmd0aFN1bSk7CiAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjb2RlTGVuZ3RoU3VtOyBqKyssIG9mZnNldCsrKSB7CiAgICAgICAgICAgICAgICBodWZmbWFuVmFsdWVzW2pdID0gZGF0YVtvZmZzZXRdOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpICs9IDE3ICsgY29kZUxlbmd0aFN1bTsKCiAgICAgICAgICAgICAgaWYgKChodWZmbWFuVGFibGVTcGVjID4+IDQpID09PSAwKSB7CiAgICAgICAgICAgICAgICB0aGlzLmh1ZmZtYW5UYWJsZXNEQ1todWZmbWFuVGFibGVTcGVjICYgMTVdID0gYnVpbGRIdWZmbWFuVGFibGUoCiAgICAgICAgICAgICAgICAgIGNvZGVMZW5ndGhzLCBodWZmbWFuVmFsdWVzLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5odWZmbWFuVGFibGVzQUNbaHVmZm1hblRhYmxlU3BlYyAmIDE1XSA9IGJ1aWxkSHVmZm1hblRhYmxlKAogICAgICAgICAgICAgICAgICBjb2RlTGVuZ3RocywgaHVmZm1hblZhbHVlcywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQoKICAgICAgICAgIGNhc2UgMHhGRkREOiAvLyBEUkkgKERlZmluZSBSZXN0YXJ0IEludGVydmFsKQogICAgICAgICAgICByZWFkVWludDE2KCk7IC8vIHNraXAgZGF0YSBsZW5ndGgKICAgICAgICAgICAgdGhpcy5yZXNldEludGVydmFsID0gcmVhZFVpbnQxNigpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICBjYXNlIDB4RkZEQTogeyAvLyBTT1MgKFN0YXJ0IG9mIFNjYW4pCiAgICAgICAgICAgIHJlYWRVaW50MTYoKTsgLy8gc2tpcCBsZW5ndGgKICAgICAgICAgICAgY29uc3Qgc2VsZWN0b3JzQ291bnQgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IFtdOwogICAgICAgICAgICBjb25zdCBmcmFtZSA9IHRoaXMuZnJhbWVzWzBdOwogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdG9yc0NvdW50OyBpKyspIHsKICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBmcmFtZS5jb21wb25lbnRzW2RhdGFbb2Zmc2V0KytdXTsKICAgICAgICAgICAgICBjb25zdCB0YWJsZVNwZWMgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgICBjb21wb25lbnQuaHVmZm1hblRhYmxlREMgPSB0aGlzLmh1ZmZtYW5UYWJsZXNEQ1t0YWJsZVNwZWMgPj4gNF07CiAgICAgICAgICAgICAgY29tcG9uZW50Lmh1ZmZtYW5UYWJsZUFDID0gdGhpcy5odWZmbWFuVGFibGVzQUNbdGFibGVTcGVjICYgMTVdOwogICAgICAgICAgICAgIGNvbXBvbmVudHMucHVzaChjb21wb25lbnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHNwZWN0cmFsU3RhcnQgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgY29uc3Qgc3BlY3RyYWxFbmQgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgY29uc3Qgc3VjY2Vzc2l2ZUFwcHJveGltYXRpb24gPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkID0gZGVjb2RlU2NhbihkYXRhLCBvZmZzZXQsCiAgICAgICAgICAgICAgZnJhbWUsIGNvbXBvbmVudHMsIHRoaXMucmVzZXRJbnRlcnZhbCwKICAgICAgICAgICAgICBzcGVjdHJhbFN0YXJ0LCBzcGVjdHJhbEVuZCwKICAgICAgICAgICAgICBzdWNjZXNzaXZlQXBwcm94aW1hdGlvbiA+PiA0LCBzdWNjZXNzaXZlQXBwcm94aW1hdGlvbiAmIDE1KTsKICAgICAgICAgICAgb2Zmc2V0ICs9IHByb2Nlc3NlZDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CgogICAgICAgICAgY2FzZSAweEZGRkY6IC8vIEZpbGwgYnl0ZXMKICAgICAgICAgICAgaWYgKGRhdGFbb2Zmc2V0XSAhPT0gMHhGRikgeyAvLyBBdm9pZCBza2lwcGluZyBhIHZhbGlkIG1hcmtlci4KICAgICAgICAgICAgICBvZmZzZXQtLTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZiAoZGF0YVtvZmZzZXQgLSAzXSA9PT0gMHhGRgogICAgICAgICAgICAgICYmIGRhdGFbb2Zmc2V0IC0gMl0gPj0gMHhDMCAmJiBkYXRhW29mZnNldCAtIDJdIDw9IDB4RkUpIHsKICAgICAgICAgICAgICAvLyBjb3VsZCBiZSBpbmNvcnJlY3QgZW5jb2RpbmcgLS0gbGFzdCAweEZGIGJ5dGUgb2YgdGhlIHByZXZpb3VzCiAgICAgICAgICAgICAgLy8gYmxvY2sgd2FzIGVhdGVuIGJ5IHRoZSBlbmNvZGVyCiAgICAgICAgICAgICAgb2Zmc2V0IC09IDM7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIEpQRUcgbWFya2VyICR7ZmlsZU1hcmtlci50b1N0cmluZygxNil9YCk7CiAgICAgICAgfQogICAgICAgIGZpbGVNYXJrZXIgPSByZWFkVWludDE2KCk7CiAgICAgIH0KICAgIH0KCiAgICBnZXRSZXN1bHQoKSB7CiAgICAgIGNvbnN0IHsgZnJhbWVzIH0gPSB0aGlzOwogICAgICBpZiAodGhpcy5mcmFtZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBmcmFtZXMgd2VyZSBkZWNvZGVkJyk7CiAgICAgIH0gZWxzZSBpZiAodGhpcy5mcmFtZXMubGVuZ3RoID4gMSkgewogICAgICAgIGNvbnNvbGUud2FybignbW9yZSB0aGFuIG9uZSBmcmFtZSBpcyBub3Qgc3VwcG9ydGVkJyk7CiAgICAgIH0KCiAgICAgIC8vIHNldCBlYWNoIGZyYW1lJ3MgY29tcG9uZW50cyBxdWFudGl6YXRpb24gdGFibGUKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZyYW1lcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNvbnN0IGNwID0gdGhpcy5mcmFtZXNbaV0uY29tcG9uZW50czsKICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMoY3ApKSB7CiAgICAgICAgICBjcFtqXS5xdWFudGl6YXRpb25UYWJsZSA9IHRoaXMucXVhbnRpemF0aW9uVGFibGVzW2NwW2pdLnF1YW50aXphdGlvbklkeF07CiAgICAgICAgICBkZWxldGUgY3Bbal0ucXVhbnRpemF0aW9uSWR4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgY29uc3QgZnJhbWUgPSBmcmFtZXNbMF07CiAgICAgIGNvbnN0IHsgY29tcG9uZW50cywgY29tcG9uZW50c09yZGVyIH0gPSBmcmFtZTsKICAgICAgY29uc3Qgb3V0Q29tcG9uZW50cyA9IFtdOwogICAgICBjb25zdCB3aWR0aCA9IGZyYW1lLnNhbXBsZXNQZXJMaW5lOwogICAgICBjb25zdCBoZWlnaHQgPSBmcmFtZS5zY2FuTGluZXM7CgogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbXBvbmVudHNPcmRlci5sZW5ndGg7IGkrKykgewogICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGNvbXBvbmVudHNbY29tcG9uZW50c09yZGVyW2ldXTsKICAgICAgICBvdXRDb21wb25lbnRzLnB1c2goewogICAgICAgICAgbGluZXM6IGJ1aWxkQ29tcG9uZW50RGF0YShmcmFtZSwgY29tcG9uZW50KSwKICAgICAgICAgIHNjYWxlWDogY29tcG9uZW50LmggLyBmcmFtZS5tYXhILAogICAgICAgICAgc2NhbGVZOiBjb21wb25lbnQudiAvIGZyYW1lLm1heFYsCiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIGNvbnN0IG91dCA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogb3V0Q29tcG9uZW50cy5sZW5ndGgpOwogICAgICBsZXQgb2kgPSAwOwogICAgICBmb3IgKGxldCB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KSB7CiAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCB3aWR0aDsgKyt4KSB7CiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG91dENvbXBvbmVudHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gb3V0Q29tcG9uZW50c1tpXTsKICAgICAgICAgICAgb3V0W29pXSA9IGNvbXBvbmVudC5saW5lc1swIHwgeSAqIGNvbXBvbmVudC5zY2FsZVldWzAgfCB4ICogY29tcG9uZW50LnNjYWxlWF07CiAgICAgICAgICAgICsrb2k7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBvdXQ7CiAgICB9CiAgfQoKICBjbGFzcyBKcGVnRGVjb2RlciBleHRlbmRzIEJhc2VEZWNvZGVyIHsKICAgIGNvbnN0cnVjdG9yKGZpbGVEaXJlY3RvcnkpIHsKICAgICAgc3VwZXIoKTsKICAgICAgdGhpcy5yZWFkZXIgPSBuZXcgSnBlZ1N0cmVhbVJlYWRlcigpOwogICAgICBpZiAoZmlsZURpcmVjdG9yeS5KUEVHVGFibGVzKSB7CiAgICAgICAgdGhpcy5yZWFkZXIucGFyc2UoZmlsZURpcmVjdG9yeS5KUEVHVGFibGVzKTsKICAgICAgfQogICAgfQoKICAgIGRlY29kZUJsb2NrKGJ1ZmZlcikgewogICAgICB0aGlzLnJlYWRlci5yZXNldEZyYW1lcygpOwogICAgICB0aGlzLnJlYWRlci5wYXJzZShuZXcgVWludDhBcnJheShidWZmZXIpKTsKICAgICAgcmV0dXJuIHRoaXMucmVhZGVyLmdldFJlc3VsdCgpLmJ1ZmZlcjsKICAgIH0KICB9CgogIC8qISBwYWtvIDIuMC40IGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2EvcGFrbyBAbGljZW5zZSAoTUlUIEFORCBabGliKSAqLwogIC8vIChDKSAxOTk1LTIwMTMgSmVhbi1sb3VwIEdhaWxseSBhbmQgTWFyayBBZGxlcgogIC8vIChDKSAyMDE0LTIwMTcgVml0YWx5IFB1enJpbiBhbmQgQW5kcmV5IFR1cGl0c2luCiAgLy8KICAvLyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAogIC8vIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogIC8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAgLy8KICAvLyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAvLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0CiAgLy8gZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgogIC8vCiAgLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKICAvLyAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgLy8gICBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291bGQgYmUKICAvLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCiAgLy8gMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCBhbmQgbXVzdCBub3QgYmUKICAvLyAgIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KICAvLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKICAvKiBlc2xpbnQtZGlzYWJsZSBzcGFjZS11bmFyeS1vcHMgKi8KCiAgLyogUHVibGljIGNvbnN0YW50cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCiAgLy9jb25zdCBaX0ZJTFRFUkVEICAgICAgICAgID0gMTsKICAvL2NvbnN0IFpfSFVGRk1BTl9PTkxZICAgICAgPSAyOwogIC8vY29uc3QgWl9STEUgICAgICAgICAgICAgICA9IDM7CiAgY29uc3QgWl9GSVhFRCQxICAgICAgICAgICAgICAgPSA0OwogIC8vY29uc3QgWl9ERUZBVUxUX1NUUkFURUdZICA9IDA7CgogIC8qIFBvc3NpYmxlIHZhbHVlcyBvZiB0aGUgZGF0YV90eXBlIGZpZWxkICh0aG91Z2ggc2VlIGluZmxhdGUoKSkgKi8KICBjb25zdCBaX0JJTkFSWSAgICAgICAgICAgICAgPSAwOwogIGNvbnN0IFpfVEVYVCAgICAgICAgICAgICAgICA9IDE7CiAgLy9jb25zdCBaX0FTQ0lJICAgICAgICAgICAgID0gMTsgLy8gPSBaX1RFWFQKICBjb25zdCBaX1VOS05PV04kMSAgICAgICAgICAgICA9IDI7CgogIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgoKICBmdW5jdGlvbiB6ZXJvJDEoYnVmKSB7IGxldCBsZW4gPSBidWYubGVuZ3RoOyB3aGlsZSAoLS1sZW4gPj0gMCkgeyBidWZbbGVuXSA9IDA7IH0gfQoKICAvLyBGcm9tIHp1dGlsLmgKCiAgY29uc3QgU1RPUkVEX0JMT0NLID0gMDsKICBjb25zdCBTVEFUSUNfVFJFRVMgPSAxOwogIGNvbnN0IERZTl9UUkVFUyAgICA9IDI7CiAgLyogVGhlIHRocmVlIGtpbmRzIG9mIGJsb2NrIHR5cGUgKi8KCiAgY29uc3QgTUlOX01BVENIJDEgICAgPSAzOwogIGNvbnN0IE1BWF9NQVRDSCQxICAgID0gMjU4OwogIC8qIFRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIG1hdGNoIGxlbmd0aHMgKi8KCiAgLy8gRnJvbSBkZWZsYXRlLmgKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBJbnRlcm5hbCBjb21wcmVzc2lvbiBzdGF0ZS4KICAgKi8KCiAgY29uc3QgTEVOR1RIX0NPREVTJDEgID0gMjk7CiAgLyogbnVtYmVyIG9mIGxlbmd0aCBjb2Rlcywgbm90IGNvdW50aW5nIHRoZSBzcGVjaWFsIEVORF9CTE9DSyBjb2RlICovCgogIGNvbnN0IExJVEVSQUxTJDEgICAgICA9IDI1NjsKICAvKiBudW1iZXIgb2YgbGl0ZXJhbCBieXRlcyAwLi4yNTUgKi8KCiAgY29uc3QgTF9DT0RFUyQxICAgICAgID0gTElURVJBTFMkMSArIDEgKyBMRU5HVEhfQ09ERVMkMTsKICAvKiBudW1iZXIgb2YgTGl0ZXJhbCBvciBMZW5ndGggY29kZXMsIGluY2x1ZGluZyB0aGUgRU5EX0JMT0NLIGNvZGUgKi8KCiAgY29uc3QgRF9DT0RFUyQxICAgICAgID0gMzA7CiAgLyogbnVtYmVyIG9mIGRpc3RhbmNlIGNvZGVzICovCgogIGNvbnN0IEJMX0NPREVTJDEgICAgICA9IDE5OwogIC8qIG51bWJlciBvZiBjb2RlcyB1c2VkIHRvIHRyYW5zZmVyIHRoZSBiaXQgbGVuZ3RocyAqLwoKICBjb25zdCBIRUFQX1NJWkUkMSAgICAgPSAyICogTF9DT0RFUyQxICsgMTsKICAvKiBtYXhpbXVtIGhlYXAgc2l6ZSAqLwoKICBjb25zdCBNQVhfQklUUyQxICAgICAgPSAxNTsKICAvKiBBbGwgY29kZXMgbXVzdCBub3QgZXhjZWVkIE1BWF9CSVRTIGJpdHMgKi8KCiAgY29uc3QgQnVmX3NpemUgICAgICA9IDE2OwogIC8qIHNpemUgb2YgYml0IGJ1ZmZlciBpbiBiaV9idWYgKi8KCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIENvbnN0YW50cwogICAqLwoKICBjb25zdCBNQVhfQkxfQklUUyA9IDc7CiAgLyogQml0IGxlbmd0aCBjb2RlcyBtdXN0IG5vdCBleGNlZWQgTUFYX0JMX0JJVFMgYml0cyAqLwoKICBjb25zdCBFTkRfQkxPQ0sgICA9IDI1NjsKICAvKiBlbmQgb2YgYmxvY2sgbGl0ZXJhbCBjb2RlICovCgogIGNvbnN0IFJFUF8zXzYgICAgID0gMTY7CiAgLyogcmVwZWF0IHByZXZpb3VzIGJpdCBsZW5ndGggMy02IHRpbWVzICgyIGJpdHMgb2YgcmVwZWF0IGNvdW50KSAqLwoKICBjb25zdCBSRVBaXzNfMTAgICA9IDE3OwogIC8qIHJlcGVhdCBhIHplcm8gbGVuZ3RoIDMtMTAgdGltZXMgICgzIGJpdHMgb2YgcmVwZWF0IGNvdW50KSAqLwoKICBjb25zdCBSRVBaXzExXzEzOCA9IDE4OwogIC8qIHJlcGVhdCBhIHplcm8gbGVuZ3RoIDExLTEzOCB0aW1lcyAgKDcgYml0cyBvZiByZXBlYXQgY291bnQpICovCgogIC8qIGVzbGludC1kaXNhYmxlIGNvbW1hLXNwYWNpbmcsYXJyYXktYnJhY2tldC1zcGFjaW5nICovCiAgY29uc3QgZXh0cmFfbGJpdHMgPSAgIC8qIGV4dHJhIGJpdHMgZm9yIGVhY2ggbGVuZ3RoIGNvZGUgKi8KICAgIG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDBdKTsKCiAgY29uc3QgZXh0cmFfZGJpdHMgPSAgIC8qIGV4dHJhIGJpdHMgZm9yIGVhY2ggZGlzdGFuY2UgY29kZSAqLwogICAgbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTNdKTsKCiAgY29uc3QgZXh0cmFfYmxiaXRzID0gIC8qIGV4dHJhIGJpdHMgZm9yIGVhY2ggYml0IGxlbmd0aCBjb2RlICovCiAgICBuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDMsN10pOwoKICBjb25zdCBibF9vcmRlciA9CiAgICBuZXcgVWludDhBcnJheShbMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0pOwogIC8qIGVzbGludC1lbmFibGUgY29tbWEtc3BhY2luZyxhcnJheS1icmFja2V0LXNwYWNpbmcgKi8KCiAgLyogVGhlIGxlbmd0aHMgb2YgdGhlIGJpdCBsZW5ndGggY29kZXMgYXJlIHNlbnQgaW4gb3JkZXIgb2YgZGVjcmVhc2luZwogICAqIHByb2JhYmlsaXR5LCB0byBhdm9pZCB0cmFuc21pdHRpbmcgdGhlIGxlbmd0aHMgZm9yIHVudXNlZCBiaXQgbGVuZ3RoIGNvZGVzLgogICAqLwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBMb2NhbCBkYXRhLiBUaGVzZSBhcmUgaW5pdGlhbGl6ZWQgb25seSBvbmNlLgogICAqLwoKICAvLyBXZSBwcmUtZmlsbCBhcnJheXMgd2l0aCAwIHRvIGF2b2lkIHVuaW5pdGlhbGl6ZWQgZ2FwcwoKICBjb25zdCBESVNUX0NPREVfTEVOID0gNTEyOyAvKiBzZWUgZGVmaW5pdGlvbiBvZiBhcnJheSBkaXN0X2NvZGUgYmVsb3cgKi8KCiAgLy8gISEhISBVc2UgZmxhdCBhcnJheSBpbnN0ZWFkIG9mIHN0cnVjdHVyZSwgRnJlcSA9IGkqMiwgTGVuID0gaSoyKzEKICBjb25zdCBzdGF0aWNfbHRyZWUgID0gbmV3IEFycmF5KChMX0NPREVTJDEgKyAyKSAqIDIpOwogIHplcm8kMShzdGF0aWNfbHRyZWUpOwogIC8qIFRoZSBzdGF0aWMgbGl0ZXJhbCB0cmVlLiBTaW5jZSB0aGUgYml0IGxlbmd0aHMgYXJlIGltcG9zZWQsIHRoZXJlIGlzIG5vCiAgICogbmVlZCBmb3IgdGhlIExfQ09ERVMgZXh0cmEgY29kZXMgdXNlZCBkdXJpbmcgaGVhcCBjb25zdHJ1Y3Rpb24uIEhvd2V2ZXIKICAgKiBUaGUgY29kZXMgMjg2IGFuZCAyODcgYXJlIG5lZWRlZCB0byBidWlsZCBhIGNhbm9uaWNhbCB0cmVlIChzZWUgX3RyX2luaXQKICAgKiBiZWxvdykuCiAgICovCgogIGNvbnN0IHN0YXRpY19kdHJlZSAgPSBuZXcgQXJyYXkoRF9DT0RFUyQxICogMik7CiAgemVybyQxKHN0YXRpY19kdHJlZSk7CiAgLyogVGhlIHN0YXRpYyBkaXN0YW5jZSB0cmVlLiAoQWN0dWFsbHkgYSB0cml2aWFsIHRyZWUgc2luY2UgYWxsIGNvZGVzIHVzZQogICAqIDUgYml0cy4pCiAgICovCgogIGNvbnN0IF9kaXN0X2NvZGUgICAgPSBuZXcgQXJyYXkoRElTVF9DT0RFX0xFTik7CiAgemVybyQxKF9kaXN0X2NvZGUpOwogIC8qIERpc3RhbmNlIGNvZGVzLiBUaGUgZmlyc3QgMjU2IHZhbHVlcyBjb3JyZXNwb25kIHRvIHRoZSBkaXN0YW5jZXMKICAgKiAzIC4uIDI1OCwgdGhlIGxhc3QgMjU2IHZhbHVlcyBjb3JyZXNwb25kIHRvIHRoZSB0b3AgOCBiaXRzIG9mCiAgICogdGhlIDE1IGJpdCBkaXN0YW5jZXMuCiAgICovCgogIGNvbnN0IF9sZW5ndGhfY29kZSAgPSBuZXcgQXJyYXkoTUFYX01BVENIJDEgLSBNSU5fTUFUQ0gkMSArIDEpOwogIHplcm8kMShfbGVuZ3RoX2NvZGUpOwogIC8qIGxlbmd0aCBjb2RlIGZvciBlYWNoIG5vcm1hbGl6ZWQgbWF0Y2ggbGVuZ3RoICgwID09IE1JTl9NQVRDSCkgKi8KCiAgY29uc3QgYmFzZV9sZW5ndGggICA9IG5ldyBBcnJheShMRU5HVEhfQ09ERVMkMSk7CiAgemVybyQxKGJhc2VfbGVuZ3RoKTsKICAvKiBGaXJzdCBub3JtYWxpemVkIGxlbmd0aCBmb3IgZWFjaCBjb2RlICgwID0gTUlOX01BVENIKSAqLwoKICBjb25zdCBiYXNlX2Rpc3QgICAgID0gbmV3IEFycmF5KERfQ09ERVMkMSk7CiAgemVybyQxKGJhc2VfZGlzdCk7CiAgLyogRmlyc3Qgbm9ybWFsaXplZCBkaXN0YW5jZSBmb3IgZWFjaCBjb2RlICgwID0gZGlzdGFuY2Ugb2YgMSkgKi8KCgogIGZ1bmN0aW9uIFN0YXRpY1RyZWVEZXNjKHN0YXRpY190cmVlLCBleHRyYV9iaXRzLCBleHRyYV9iYXNlLCBlbGVtcywgbWF4X2xlbmd0aCkgewoKICAgIHRoaXMuc3RhdGljX3RyZWUgID0gc3RhdGljX3RyZWU7ICAvKiBzdGF0aWMgdHJlZSBvciBOVUxMICovCiAgICB0aGlzLmV4dHJhX2JpdHMgICA9IGV4dHJhX2JpdHM7ICAgLyogZXh0cmEgYml0cyBmb3IgZWFjaCBjb2RlIG9yIE5VTEwgKi8KICAgIHRoaXMuZXh0cmFfYmFzZSAgID0gZXh0cmFfYmFzZTsgICAvKiBiYXNlIGluZGV4IGZvciBleHRyYV9iaXRzICovCiAgICB0aGlzLmVsZW1zICAgICAgICA9IGVsZW1zOyAgICAgICAgLyogbWF4IG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgdHJlZSAqLwogICAgdGhpcy5tYXhfbGVuZ3RoICAgPSBtYXhfbGVuZ3RoOyAgIC8qIG1heCBiaXQgbGVuZ3RoIGZvciB0aGUgY29kZXMgKi8KCiAgICAvLyBzaG93IGlmIGBzdGF0aWNfdHJlZWAgaGFzIGRhdGEgb3IgZHVtbXkgLSBuZWVkZWQgZm9yIG1vbm9tb3JwaGljIG9iamVjdHMKICAgIHRoaXMuaGFzX3N0cmVlICAgID0gc3RhdGljX3RyZWUgJiYgc3RhdGljX3RyZWUubGVuZ3RoOwogIH0KCgogIGxldCBzdGF0aWNfbF9kZXNjOwogIGxldCBzdGF0aWNfZF9kZXNjOwogIGxldCBzdGF0aWNfYmxfZGVzYzsKCgogIGZ1bmN0aW9uIFRyZWVEZXNjKGR5bl90cmVlLCBzdGF0X2Rlc2MpIHsKICAgIHRoaXMuZHluX3RyZWUgPSBkeW5fdHJlZTsgICAgIC8qIHRoZSBkeW5hbWljIHRyZWUgKi8KICAgIHRoaXMubWF4X2NvZGUgPSAwOyAgICAgICAgICAgIC8qIGxhcmdlc3QgY29kZSB3aXRoIG5vbiB6ZXJvIGZyZXF1ZW5jeSAqLwogICAgdGhpcy5zdGF0X2Rlc2MgPSBzdGF0X2Rlc2M7ICAgLyogdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGljIHRyZWUgKi8KICB9CgoKCiAgY29uc3QgZF9jb2RlID0gKGRpc3QpID0+IHsKCiAgICByZXR1cm4gZGlzdCA8IDI1NiA/IF9kaXN0X2NvZGVbZGlzdF0gOiBfZGlzdF9jb2RlWzI1NiArIChkaXN0ID4+PiA3KV07CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIE91dHB1dCBhIHNob3J0IExTQiBmaXJzdCBvbiB0aGUgc3RyZWFtLgogICAqIElOIGFzc2VydGlvbjogdGhlcmUgaXMgZW5vdWdoIHJvb20gaW4gcGVuZGluZ0J1Zi4KICAgKi8KICBjb25zdCBwdXRfc2hvcnQgPSAocywgdykgPT4gewogIC8vICAgIHB1dF9ieXRlKHMsICh1Y2gpKCh3KSAmIDB4ZmYpKTsKICAvLyAgICBwdXRfYnl0ZShzLCAodWNoKSgodXNoKSh3KSA+PiA4KSk7CiAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9ICh3KSAmIDB4ZmY7CiAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9ICh3ID4+PiA4KSAmIDB4ZmY7CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIFNlbmQgYSB2YWx1ZSBvbiBhIGdpdmVuIG51bWJlciBvZiBiaXRzLgogICAqIElOIGFzc2VydGlvbjogbGVuZ3RoIDw9IDE2IGFuZCB2YWx1ZSBmaXRzIGluIGxlbmd0aCBiaXRzLgogICAqLwogIGNvbnN0IHNlbmRfYml0cyA9IChzLCB2YWx1ZSwgbGVuZ3RoKSA9PiB7CgogICAgaWYgKHMuYmlfdmFsaWQgPiAoQnVmX3NpemUgLSBsZW5ndGgpKSB7CiAgICAgIHMuYmlfYnVmIHw9ICh2YWx1ZSA8PCBzLmJpX3ZhbGlkKSAmIDB4ZmZmZjsKICAgICAgcHV0X3Nob3J0KHMsIHMuYmlfYnVmKTsKICAgICAgcy5iaV9idWYgPSB2YWx1ZSA+PiAoQnVmX3NpemUgLSBzLmJpX3ZhbGlkKTsKICAgICAgcy5iaV92YWxpZCArPSBsZW5ndGggLSBCdWZfc2l6ZTsKICAgIH0gZWxzZSB7CiAgICAgIHMuYmlfYnVmIHw9ICh2YWx1ZSA8PCBzLmJpX3ZhbGlkKSAmIDB4ZmZmZjsKICAgICAgcy5iaV92YWxpZCArPSBsZW5ndGg7CiAgICB9CiAgfTsKCgogIGNvbnN0IHNlbmRfY29kZSA9IChzLCBjLCB0cmVlKSA9PiB7CgogICAgc2VuZF9iaXRzKHMsIHRyZWVbYyAqIDJdLyouQ29kZSovLCB0cmVlW2MgKiAyICsgMV0vKi5MZW4qLyk7CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIFJldmVyc2UgdGhlIGZpcnN0IGxlbiBiaXRzIG9mIGEgY29kZSwgdXNpbmcgc3RyYWlnaHRmb3J3YXJkIGNvZGUgKGEgZmFzdGVyCiAgICogbWV0aG9kIHdvdWxkIHVzZSBhIHRhYmxlKQogICAqIElOIGFzc2VydGlvbjogMSA8PSBsZW4gPD0gMTUKICAgKi8KICBjb25zdCBiaV9yZXZlcnNlID0gKGNvZGUsIGxlbikgPT4gewoKICAgIGxldCByZXMgPSAwOwogICAgZG8gewogICAgICByZXMgfD0gY29kZSAmIDE7CiAgICAgIGNvZGUgPj4+PSAxOwogICAgICByZXMgPDw9IDE7CiAgICB9IHdoaWxlICgtLWxlbiA+IDApOwogICAgcmV0dXJuIHJlcyA+Pj4gMTsKICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogRmx1c2ggdGhlIGJpdCBidWZmZXIsIGtlZXBpbmcgYXQgbW9zdCA3IGJpdHMgaW4gaXQuCiAgICovCiAgY29uc3QgYmlfZmx1c2ggPSAocykgPT4gewoKICAgIGlmIChzLmJpX3ZhbGlkID09PSAxNikgewogICAgICBwdXRfc2hvcnQocywgcy5iaV9idWYpOwogICAgICBzLmJpX2J1ZiA9IDA7CiAgICAgIHMuYmlfdmFsaWQgPSAwOwoKICAgIH0gZWxzZSBpZiAocy5iaV92YWxpZCA+PSA4KSB7CiAgICAgIHMucGVuZGluZ19idWZbcy5wZW5kaW5nKytdID0gcy5iaV9idWYgJiAweGZmOwogICAgICBzLmJpX2J1ZiA+Pj0gODsKICAgICAgcy5iaV92YWxpZCAtPSA4OwogICAgfQogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBDb21wdXRlIHRoZSBvcHRpbWFsIGJpdCBsZW5ndGhzIGZvciBhIHRyZWUgYW5kIHVwZGF0ZSB0aGUgdG90YWwgYml0IGxlbmd0aAogICAqIGZvciB0aGUgY3VycmVudCBibG9jay4KICAgKiBJTiBhc3NlcnRpb246IHRoZSBmaWVsZHMgZnJlcSBhbmQgZGFkIGFyZSBzZXQsIGhlYXBbaGVhcF9tYXhdIGFuZAogICAqICAgIGFib3ZlIGFyZSB0aGUgdHJlZSBub2RlcyBzb3J0ZWQgYnkgaW5jcmVhc2luZyBmcmVxdWVuY3kuCiAgICogT1VUIGFzc2VydGlvbnM6IHRoZSBmaWVsZCBsZW4gaXMgc2V0IHRvIHRoZSBvcHRpbWFsIGJpdCBsZW5ndGgsIHRoZQogICAqICAgICBhcnJheSBibF9jb3VudCBjb250YWlucyB0aGUgZnJlcXVlbmNpZXMgZm9yIGVhY2ggYml0IGxlbmd0aC4KICAgKiAgICAgVGhlIGxlbmd0aCBvcHRfbGVuIGlzIHVwZGF0ZWQ7IHN0YXRpY19sZW4gaXMgYWxzbyB1cGRhdGVkIGlmIHN0cmVlIGlzCiAgICogICAgIG5vdCBudWxsLgogICAqLwogIGNvbnN0IGdlbl9iaXRsZW4gPSAocywgZGVzYykgPT4KICAvLyAgICBkZWZsYXRlX3N0YXRlICpzOwogIC8vICAgIHRyZWVfZGVzYyAqZGVzYzsgICAgLyogdGhlIHRyZWUgZGVzY3JpcHRvciAqLwogIHsKICAgIGNvbnN0IHRyZWUgICAgICAgICAgICA9IGRlc2MuZHluX3RyZWU7CiAgICBjb25zdCBtYXhfY29kZSAgICAgICAgPSBkZXNjLm1heF9jb2RlOwogICAgY29uc3Qgc3RyZWUgICAgICAgICAgID0gZGVzYy5zdGF0X2Rlc2Muc3RhdGljX3RyZWU7CiAgICBjb25zdCBoYXNfc3RyZWUgICAgICAgPSBkZXNjLnN0YXRfZGVzYy5oYXNfc3RyZWU7CiAgICBjb25zdCBleHRyYSAgICAgICAgICAgPSBkZXNjLnN0YXRfZGVzYy5leHRyYV9iaXRzOwogICAgY29uc3QgYmFzZSAgICAgICAgICAgID0gZGVzYy5zdGF0X2Rlc2MuZXh0cmFfYmFzZTsKICAgIGNvbnN0IG1heF9sZW5ndGggICAgICA9IGRlc2Muc3RhdF9kZXNjLm1heF9sZW5ndGg7CiAgICBsZXQgaDsgICAgICAgICAgICAgIC8qIGhlYXAgaW5kZXggKi8KICAgIGxldCBuLCBtOyAgICAgICAgICAgLyogaXRlcmF0ZSBvdmVyIHRoZSB0cmVlIGVsZW1lbnRzICovCiAgICBsZXQgYml0czsgICAgICAgICAgIC8qIGJpdCBsZW5ndGggKi8KICAgIGxldCB4Yml0czsgICAgICAgICAgLyogZXh0cmEgYml0cyAqLwogICAgbGV0IGY7ICAgICAgICAgICAgICAvKiBmcmVxdWVuY3kgKi8KICAgIGxldCBvdmVyZmxvdyA9IDA7ICAgLyogbnVtYmVyIG9mIGVsZW1lbnRzIHdpdGggYml0IGxlbmd0aCB0b28gbGFyZ2UgKi8KCiAgICBmb3IgKGJpdHMgPSAwOyBiaXRzIDw9IE1BWF9CSVRTJDE7IGJpdHMrKykgewogICAgICBzLmJsX2NvdW50W2JpdHNdID0gMDsKICAgIH0KCiAgICAvKiBJbiBhIGZpcnN0IHBhc3MsIGNvbXB1dGUgdGhlIG9wdGltYWwgYml0IGxlbmd0aHMgKHdoaWNoIG1heQogICAgICogb3ZlcmZsb3cgaW4gdGhlIGNhc2Ugb2YgdGhlIGJpdCBsZW5ndGggdHJlZSkuCiAgICAgKi8KICAgIHRyZWVbcy5oZWFwW3MuaGVhcF9tYXhdICogMiArIDFdLyouTGVuKi8gPSAwOyAvKiByb290IG9mIHRoZSBoZWFwICovCgogICAgZm9yIChoID0gcy5oZWFwX21heCArIDE7IGggPCBIRUFQX1NJWkUkMTsgaCsrKSB7CiAgICAgIG4gPSBzLmhlYXBbaF07CiAgICAgIGJpdHMgPSB0cmVlW3RyZWVbbiAqIDIgKyAxXS8qLkRhZCovICogMiArIDFdLyouTGVuKi8gKyAxOwogICAgICBpZiAoYml0cyA+IG1heF9sZW5ndGgpIHsKICAgICAgICBiaXRzID0gbWF4X2xlbmd0aDsKICAgICAgICBvdmVyZmxvdysrOwogICAgICB9CiAgICAgIHRyZWVbbiAqIDIgKyAxXS8qLkxlbiovID0gYml0czsKICAgICAgLyogV2Ugb3ZlcndyaXRlIHRyZWVbbl0uRGFkIHdoaWNoIGlzIG5vIGxvbmdlciBuZWVkZWQgKi8KCiAgICAgIGlmIChuID4gbWF4X2NvZGUpIHsgY29udGludWU7IH0gLyogbm90IGEgbGVhZiBub2RlICovCgogICAgICBzLmJsX2NvdW50W2JpdHNdKys7CiAgICAgIHhiaXRzID0gMDsKICAgICAgaWYgKG4gPj0gYmFzZSkgewogICAgICAgIHhiaXRzID0gZXh0cmFbbiAtIGJhc2VdOwogICAgICB9CiAgICAgIGYgPSB0cmVlW24gKiAyXS8qLkZyZXEqLzsKICAgICAgcy5vcHRfbGVuICs9IGYgKiAoYml0cyArIHhiaXRzKTsKICAgICAgaWYgKGhhc19zdHJlZSkgewogICAgICAgIHMuc3RhdGljX2xlbiArPSBmICogKHN0cmVlW24gKiAyICsgMV0vKi5MZW4qLyArIHhiaXRzKTsKICAgICAgfQogICAgfQogICAgaWYgKG92ZXJmbG93ID09PSAwKSB7IHJldHVybjsgfQoKICAgIC8vIFRyYWNlKChzdGRlcnIsIlxuYml0IGxlbmd0aCBvdmVyZmxvd1xuIikpOwogICAgLyogVGhpcyBoYXBwZW5zIGZvciBleGFtcGxlIG9uIG9iajIgYW5kIHBpYyBvZiB0aGUgQ2FsZ2FyeSBjb3JwdXMgKi8KCiAgICAvKiBGaW5kIHRoZSBmaXJzdCBiaXQgbGVuZ3RoIHdoaWNoIGNvdWxkIGluY3JlYXNlOiAqLwogICAgZG8gewogICAgICBiaXRzID0gbWF4X2xlbmd0aCAtIDE7CiAgICAgIHdoaWxlIChzLmJsX2NvdW50W2JpdHNdID09PSAwKSB7IGJpdHMtLTsgfQogICAgICBzLmJsX2NvdW50W2JpdHNdLS07ICAgICAgLyogbW92ZSBvbmUgbGVhZiBkb3duIHRoZSB0cmVlICovCiAgICAgIHMuYmxfY291bnRbYml0cyArIDFdICs9IDI7IC8qIG1vdmUgb25lIG92ZXJmbG93IGl0ZW0gYXMgaXRzIGJyb3RoZXIgKi8KICAgICAgcy5ibF9jb3VudFttYXhfbGVuZ3RoXS0tOwogICAgICAvKiBUaGUgYnJvdGhlciBvZiB0aGUgb3ZlcmZsb3cgaXRlbSBhbHNvIG1vdmVzIG9uZSBzdGVwIHVwLAogICAgICAgKiBidXQgdGhpcyBkb2VzIG5vdCBhZmZlY3QgYmxfY291bnRbbWF4X2xlbmd0aF0KICAgICAgICovCiAgICAgIG92ZXJmbG93IC09IDI7CiAgICB9IHdoaWxlIChvdmVyZmxvdyA+IDApOwoKICAgIC8qIE5vdyByZWNvbXB1dGUgYWxsIGJpdCBsZW5ndGhzLCBzY2FubmluZyBpbiBpbmNyZWFzaW5nIGZyZXF1ZW5jeS4KICAgICAqIGggaXMgc3RpbGwgZXF1YWwgdG8gSEVBUF9TSVpFLiAoSXQgaXMgc2ltcGxlciB0byByZWNvbnN0cnVjdCBhbGwKICAgICAqIGxlbmd0aHMgaW5zdGVhZCBvZiBmaXhpbmcgb25seSB0aGUgd3Jvbmcgb25lcy4gVGhpcyBpZGVhIGlzIHRha2VuCiAgICAgKiBmcm9tICdhcicgd3JpdHRlbiBieSBIYXJ1aGlrbyBPa3VtdXJhLikKICAgICAqLwogICAgZm9yIChiaXRzID0gbWF4X2xlbmd0aDsgYml0cyAhPT0gMDsgYml0cy0tKSB7CiAgICAgIG4gPSBzLmJsX2NvdW50W2JpdHNdOwogICAgICB3aGlsZSAobiAhPT0gMCkgewogICAgICAgIG0gPSBzLmhlYXBbLS1oXTsKICAgICAgICBpZiAobSA+IG1heF9jb2RlKSB7IGNvbnRpbnVlOyB9CiAgICAgICAgaWYgKHRyZWVbbSAqIDIgKyAxXS8qLkxlbiovICE9PSBiaXRzKSB7CiAgICAgICAgICAvLyBUcmFjZSgoc3RkZXJyLCJjb2RlICVkIGJpdHMgJWQtPiVkXG4iLCBtLCB0cmVlW21dLkxlbiwgYml0cykpOwogICAgICAgICAgcy5vcHRfbGVuICs9IChiaXRzIC0gdHJlZVttICogMiArIDFdLyouTGVuKi8pICogdHJlZVttICogMl0vKi5GcmVxKi87CiAgICAgICAgICB0cmVlW20gKiAyICsgMV0vKi5MZW4qLyA9IGJpdHM7CiAgICAgICAgfQogICAgICAgIG4tLTsKICAgICAgfQogICAgfQogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBHZW5lcmF0ZSB0aGUgY29kZXMgZm9yIGEgZ2l2ZW4gdHJlZSBhbmQgYml0IGNvdW50cyAod2hpY2ggbmVlZCBub3QgYmUKICAgKiBvcHRpbWFsKS4KICAgKiBJTiBhc3NlcnRpb246IHRoZSBhcnJheSBibF9jb3VudCBjb250YWlucyB0aGUgYml0IGxlbmd0aCBzdGF0aXN0aWNzIGZvcgogICAqIHRoZSBnaXZlbiB0cmVlIGFuZCB0aGUgZmllbGQgbGVuIGlzIHNldCBmb3IgYWxsIHRyZWUgZWxlbWVudHMuCiAgICogT1VUIGFzc2VydGlvbjogdGhlIGZpZWxkIGNvZGUgaXMgc2V0IGZvciBhbGwgdHJlZSBlbGVtZW50cyBvZiBub24KICAgKiAgICAgemVybyBjb2RlIGxlbmd0aC4KICAgKi8KICBjb25zdCBnZW5fY29kZXMgPSAodHJlZSwgbWF4X2NvZGUsIGJsX2NvdW50KSA9PgogIC8vICAgIGN0X2RhdGEgKnRyZWU7ICAgICAgICAgICAgIC8qIHRoZSB0cmVlIHRvIGRlY29yYXRlICovCiAgLy8gICAgaW50IG1heF9jb2RlOyAgICAgICAgICAgICAgLyogbGFyZ2VzdCBjb2RlIHdpdGggbm9uIHplcm8gZnJlcXVlbmN5ICovCiAgLy8gICAgdXNoZiAqYmxfY291bnQ7ICAgICAgICAgICAgLyogbnVtYmVyIG9mIGNvZGVzIGF0IGVhY2ggYml0IGxlbmd0aCAqLwogIHsKICAgIGNvbnN0IG5leHRfY29kZSA9IG5ldyBBcnJheShNQVhfQklUUyQxICsgMSk7IC8qIG5leHQgY29kZSB2YWx1ZSBmb3IgZWFjaCBiaXQgbGVuZ3RoICovCiAgICBsZXQgY29kZSA9IDA7ICAgICAgICAgICAgICAvKiBydW5uaW5nIGNvZGUgdmFsdWUgKi8KICAgIGxldCBiaXRzOyAgICAgICAgICAgICAgICAgIC8qIGJpdCBpbmRleCAqLwogICAgbGV0IG47ICAgICAgICAgICAgICAgICAgICAgLyogY29kZSBpbmRleCAqLwoKICAgIC8qIFRoZSBkaXN0cmlidXRpb24gY291bnRzIGFyZSBmaXJzdCB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjb2RlIHZhbHVlcwogICAgICogd2l0aG91dCBiaXQgcmV2ZXJzYWwuCiAgICAgKi8KICAgIGZvciAoYml0cyA9IDE7IGJpdHMgPD0gTUFYX0JJVFMkMTsgYml0cysrKSB7CiAgICAgIG5leHRfY29kZVtiaXRzXSA9IGNvZGUgPSAoY29kZSArIGJsX2NvdW50W2JpdHMgLSAxXSkgPDwgMTsKICAgIH0KICAgIC8qIENoZWNrIHRoYXQgdGhlIGJpdCBjb3VudHMgaW4gYmxfY291bnQgYXJlIGNvbnNpc3RlbnQuIFRoZSBsYXN0IGNvZGUKICAgICAqIG11c3QgYmUgYWxsIG9uZXMuCiAgICAgKi8KICAgIC8vQXNzZXJ0IChjb2RlICsgYmxfY291bnRbTUFYX0JJVFNdLTEgPT0gKDE8PE1BWF9CSVRTKS0xLAogICAgLy8gICAgICAgICJpbmNvbnNpc3RlbnQgYml0IGNvdW50cyIpOwogICAgLy9UcmFjZXYoKHN0ZGVyciwiXG5nZW5fY29kZXM6IG1heF9jb2RlICVkICIsIG1heF9jb2RlKSk7CgogICAgZm9yIChuID0gMDsgIG4gPD0gbWF4X2NvZGU7IG4rKykgewogICAgICBsZXQgbGVuID0gdHJlZVtuICogMiArIDFdLyouTGVuKi87CiAgICAgIGlmIChsZW4gPT09IDApIHsgY29udGludWU7IH0KICAgICAgLyogTm93IHJldmVyc2UgdGhlIGJpdHMgKi8KICAgICAgdHJlZVtuICogMl0vKi5Db2RlKi8gPSBiaV9yZXZlcnNlKG5leHRfY29kZVtsZW5dKyssIGxlbik7CgogICAgICAvL1RyYWNlY3YodHJlZSAhPSBzdGF0aWNfbHRyZWUsIChzdGRlcnIsIlxubiAlM2QgJWMgbCAlMmQgYyAlNHggKCV4KSAiLAogICAgICAvLyAgICAgbiwgKGlzZ3JhcGgobikgPyBuIDogJyAnKSwgbGVuLCB0cmVlW25dLkNvZGUsIG5leHRfY29kZVtsZW5dLTEpKTsKICAgIH0KICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogSW5pdGlhbGl6ZSB0aGUgdmFyaW91cyAnY29uc3RhbnQnIHRhYmxlcy4KICAgKi8KICBjb25zdCB0cl9zdGF0aWNfaW5pdCA9ICgpID0+IHsKCiAgICBsZXQgbjsgICAgICAgIC8qIGl0ZXJhdGVzIG92ZXIgdHJlZSBlbGVtZW50cyAqLwogICAgbGV0IGJpdHM7ICAgICAvKiBiaXQgY291bnRlciAqLwogICAgbGV0IGxlbmd0aDsgICAvKiBsZW5ndGggdmFsdWUgKi8KICAgIGxldCBjb2RlOyAgICAgLyogY29kZSB2YWx1ZSAqLwogICAgbGV0IGRpc3Q7ICAgICAvKiBkaXN0YW5jZSBpbmRleCAqLwogICAgY29uc3QgYmxfY291bnQgPSBuZXcgQXJyYXkoTUFYX0JJVFMkMSArIDEpOwogICAgLyogbnVtYmVyIG9mIGNvZGVzIGF0IGVhY2ggYml0IGxlbmd0aCBmb3IgYW4gb3B0aW1hbCB0cmVlICovCgogICAgLy8gZG8gY2hlY2sgaW4gX3RyX2luaXQoKQogICAgLy9pZiAoc3RhdGljX2luaXRfZG9uZSkgcmV0dXJuOwoKICAgIC8qIEZvciBzb21lIGVtYmVkZGVkIHRhcmdldHMsIGdsb2JhbCB2YXJpYWJsZXMgYXJlIG5vdCBpbml0aWFsaXplZDogKi8KICAvKiNpZmRlZiBOT19JTklUX0dMT0JBTF9QT0lOVEVSUwogICAgc3RhdGljX2xfZGVzYy5zdGF0aWNfdHJlZSA9IHN0YXRpY19sdHJlZTsKICAgIHN0YXRpY19sX2Rlc2MuZXh0cmFfYml0cyA9IGV4dHJhX2xiaXRzOwogICAgc3RhdGljX2RfZGVzYy5zdGF0aWNfdHJlZSA9IHN0YXRpY19kdHJlZTsKICAgIHN0YXRpY19kX2Rlc2MuZXh0cmFfYml0cyA9IGV4dHJhX2RiaXRzOwogICAgc3RhdGljX2JsX2Rlc2MuZXh0cmFfYml0cyA9IGV4dHJhX2JsYml0czsKICAjZW5kaWYqLwoKICAgIC8qIEluaXRpYWxpemUgdGhlIG1hcHBpbmcgbGVuZ3RoICgwLi4yNTUpIC0+IGxlbmd0aCBjb2RlICgwLi4yOCkgKi8KICAgIGxlbmd0aCA9IDA7CiAgICBmb3IgKGNvZGUgPSAwOyBjb2RlIDwgTEVOR1RIX0NPREVTJDEgLSAxOyBjb2RlKyspIHsKICAgICAgYmFzZV9sZW5ndGhbY29kZV0gPSBsZW5ndGg7CiAgICAgIGZvciAobiA9IDA7IG4gPCAoMSA8PCBleHRyYV9sYml0c1tjb2RlXSk7IG4rKykgewogICAgICAgIF9sZW5ndGhfY29kZVtsZW5ndGgrK10gPSBjb2RlOwogICAgICB9CiAgICB9CiAgICAvL0Fzc2VydCAobGVuZ3RoID09IDI1NiwgInRyX3N0YXRpY19pbml0OiBsZW5ndGggIT0gMjU2Iik7CiAgICAvKiBOb3RlIHRoYXQgdGhlIGxlbmd0aCAyNTUgKG1hdGNoIGxlbmd0aCAyNTgpIGNhbiBiZSByZXByZXNlbnRlZAogICAgICogaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBjb2RlIDI4NCArIDUgYml0cyBvciBjb2RlIDI4NSwgc28gd2UKICAgICAqIG92ZXJ3cml0ZSBsZW5ndGhfY29kZVsyNTVdIHRvIHVzZSB0aGUgYmVzdCBlbmNvZGluZzoKICAgICAqLwogICAgX2xlbmd0aF9jb2RlW2xlbmd0aCAtIDFdID0gY29kZTsKCiAgICAvKiBJbml0aWFsaXplIHRoZSBtYXBwaW5nIGRpc3QgKDAuLjMySykgLT4gZGlzdCBjb2RlICgwLi4yOSkgKi8KICAgIGRpc3QgPSAwOwogICAgZm9yIChjb2RlID0gMDsgY29kZSA8IDE2OyBjb2RlKyspIHsKICAgICAgYmFzZV9kaXN0W2NvZGVdID0gZGlzdDsKICAgICAgZm9yIChuID0gMDsgbiA8ICgxIDw8IGV4dHJhX2RiaXRzW2NvZGVdKTsgbisrKSB7CiAgICAgICAgX2Rpc3RfY29kZVtkaXN0KytdID0gY29kZTsKICAgICAgfQogICAgfQogICAgLy9Bc3NlcnQgKGRpc3QgPT0gMjU2LCAidHJfc3RhdGljX2luaXQ6IGRpc3QgIT0gMjU2Iik7CiAgICBkaXN0ID4+PSA3OyAvKiBmcm9tIG5vdyBvbiwgYWxsIGRpc3RhbmNlcyBhcmUgZGl2aWRlZCBieSAxMjggKi8KICAgIGZvciAoOyBjb2RlIDwgRF9DT0RFUyQxOyBjb2RlKyspIHsKICAgICAgYmFzZV9kaXN0W2NvZGVdID0gZGlzdCA8PCA3OwogICAgICBmb3IgKG4gPSAwOyBuIDwgKDEgPDwgKGV4dHJhX2RiaXRzW2NvZGVdIC0gNykpOyBuKyspIHsKICAgICAgICBfZGlzdF9jb2RlWzI1NiArIGRpc3QrK10gPSBjb2RlOwogICAgICB9CiAgICB9CiAgICAvL0Fzc2VydCAoZGlzdCA9PSAyNTYsICJ0cl9zdGF0aWNfaW5pdDogMjU2K2Rpc3QgIT0gNTEyIik7CgogICAgLyogQ29uc3RydWN0IHRoZSBjb2RlcyBvZiB0aGUgc3RhdGljIGxpdGVyYWwgdHJlZSAqLwogICAgZm9yIChiaXRzID0gMDsgYml0cyA8PSBNQVhfQklUUyQxOyBiaXRzKyspIHsKICAgICAgYmxfY291bnRbYml0c10gPSAwOwogICAgfQoKICAgIG4gPSAwOwogICAgd2hpbGUgKG4gPD0gMTQzKSB7CiAgICAgIHN0YXRpY19sdHJlZVtuICogMiArIDFdLyouTGVuKi8gPSA4OwogICAgICBuKys7CiAgICAgIGJsX2NvdW50WzhdKys7CiAgICB9CiAgICB3aGlsZSAobiA8PSAyNTUpIHsKICAgICAgc3RhdGljX2x0cmVlW24gKiAyICsgMV0vKi5MZW4qLyA9IDk7CiAgICAgIG4rKzsKICAgICAgYmxfY291bnRbOV0rKzsKICAgIH0KICAgIHdoaWxlIChuIDw9IDI3OSkgewogICAgICBzdGF0aWNfbHRyZWVbbiAqIDIgKyAxXS8qLkxlbiovID0gNzsKICAgICAgbisrOwogICAgICBibF9jb3VudFs3XSsrOwogICAgfQogICAgd2hpbGUgKG4gPD0gMjg3KSB7CiAgICAgIHN0YXRpY19sdHJlZVtuICogMiArIDFdLyouTGVuKi8gPSA4OwogICAgICBuKys7CiAgICAgIGJsX2NvdW50WzhdKys7CiAgICB9CiAgICAvKiBDb2RlcyAyODYgYW5kIDI4NyBkbyBub3QgZXhpc3QsIGJ1dCB3ZSBtdXN0IGluY2x1ZGUgdGhlbSBpbiB0aGUKICAgICAqIHRyZWUgY29uc3RydWN0aW9uIHRvIGdldCBhIGNhbm9uaWNhbCBIdWZmbWFuIHRyZWUgKGxvbmdlc3QgY29kZQogICAgICogYWxsIG9uZXMpCiAgICAgKi8KICAgIGdlbl9jb2RlcyhzdGF0aWNfbHRyZWUsIExfQ09ERVMkMSArIDEsIGJsX2NvdW50KTsKCiAgICAvKiBUaGUgc3RhdGljIGRpc3RhbmNlIHRyZWUgaXMgdHJpdmlhbDogKi8KICAgIGZvciAobiA9IDA7IG4gPCBEX0NPREVTJDE7IG4rKykgewogICAgICBzdGF0aWNfZHRyZWVbbiAqIDIgKyAxXS8qLkxlbiovID0gNTsKICAgICAgc3RhdGljX2R0cmVlW24gKiAyXS8qLkNvZGUqLyA9IGJpX3JldmVyc2UobiwgNSk7CiAgICB9CgogICAgLy8gTm93IGRhdGEgcmVhZHkgYW5kIHdlIGNhbiBpbml0IHN0YXRpYyB0cmVlcwogICAgc3RhdGljX2xfZGVzYyA9IG5ldyBTdGF0aWNUcmVlRGVzYyhzdGF0aWNfbHRyZWUsIGV4dHJhX2xiaXRzLCBMSVRFUkFMUyQxICsgMSwgTF9DT0RFUyQxLCBNQVhfQklUUyQxKTsKICAgIHN0YXRpY19kX2Rlc2MgPSBuZXcgU3RhdGljVHJlZURlc2Moc3RhdGljX2R0cmVlLCBleHRyYV9kYml0cywgMCwgICAgICAgICAgRF9DT0RFUyQxLCBNQVhfQklUUyQxKTsKICAgIHN0YXRpY19ibF9kZXNjID0gbmV3IFN0YXRpY1RyZWVEZXNjKG5ldyBBcnJheSgwKSwgZXh0cmFfYmxiaXRzLCAwLCAgICAgICAgIEJMX0NPREVTJDEsIE1BWF9CTF9CSVRTKTsKCiAgICAvL3N0YXRpY19pbml0X2RvbmUgPSB0cnVlOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBJbml0aWFsaXplIGEgbmV3IGJsb2NrLgogICAqLwogIGNvbnN0IGluaXRfYmxvY2sgPSAocykgPT4gewoKICAgIGxldCBuOyAvKiBpdGVyYXRlcyBvdmVyIHRyZWUgZWxlbWVudHMgKi8KCiAgICAvKiBJbml0aWFsaXplIHRoZSB0cmVlcy4gKi8KICAgIGZvciAobiA9IDA7IG4gPCBMX0NPREVTJDE7ICBuKyspIHsgcy5keW5fbHRyZWVbbiAqIDJdLyouRnJlcSovID0gMDsgfQogICAgZm9yIChuID0gMDsgbiA8IERfQ09ERVMkMTsgIG4rKykgeyBzLmR5bl9kdHJlZVtuICogMl0vKi5GcmVxKi8gPSAwOyB9CiAgICBmb3IgKG4gPSAwOyBuIDwgQkxfQ09ERVMkMTsgbisrKSB7IHMuYmxfdHJlZVtuICogMl0vKi5GcmVxKi8gPSAwOyB9CgogICAgcy5keW5fbHRyZWVbRU5EX0JMT0NLICogMl0vKi5GcmVxKi8gPSAxOwogICAgcy5vcHRfbGVuID0gcy5zdGF0aWNfbGVuID0gMDsKICAgIHMubGFzdF9saXQgPSBzLm1hdGNoZXMgPSAwOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBGbHVzaCB0aGUgYml0IGJ1ZmZlciBhbmQgYWxpZ24gdGhlIG91dHB1dCBvbiBhIGJ5dGUgYm91bmRhcnkKICAgKi8KICBjb25zdCBiaV93aW5kdXAgPSAocykgPT4KICB7CiAgICBpZiAocy5iaV92YWxpZCA+IDgpIHsKICAgICAgcHV0X3Nob3J0KHMsIHMuYmlfYnVmKTsKICAgIH0gZWxzZSBpZiAocy5iaV92YWxpZCA+IDApIHsKICAgICAgLy9wdXRfYnl0ZShzLCAoQnl0ZSlzLT5iaV9idWYpOwogICAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9IHMuYmlfYnVmOwogICAgfQogICAgcy5iaV9idWYgPSAwOwogICAgcy5iaV92YWxpZCA9IDA7CiAgfTsKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogQ29weSBhIHN0b3JlZCBibG9jaywgc3RvcmluZyBmaXJzdCB0aGUgbGVuZ3RoIGFuZCBpdHMKICAgKiBvbmUncyBjb21wbGVtZW50IGlmIHJlcXVlc3RlZC4KICAgKi8KICBjb25zdCBjb3B5X2Jsb2NrID0gKHMsIGJ1ZiwgbGVuLCBoZWFkZXIpID0+CiAgLy9EZWZsYXRlU3RhdGUgKnM7CiAgLy9jaGFyZiAgICAqYnVmOyAgICAvKiB0aGUgaW5wdXQgZGF0YSAqLwogIC8vdW5zaWduZWQgbGVuOyAgICAgLyogaXRzIGxlbmd0aCAqLwogIC8vaW50ICAgICAgaGVhZGVyOyAgLyogdHJ1ZSBpZiBibG9jayBoZWFkZXIgbXVzdCBiZSB3cml0dGVuICovCiAgewogICAgYmlfd2luZHVwKHMpOyAgICAgICAgLyogYWxpZ24gb24gYnl0ZSBib3VuZGFyeSAqLwoKICAgIGlmIChoZWFkZXIpIHsKICAgICAgcHV0X3Nob3J0KHMsIGxlbik7CiAgICAgIHB1dF9zaG9ydChzLCB+bGVuKTsKICAgIH0KICAvLyAgd2hpbGUgKGxlbi0tKSB7CiAgLy8gICAgcHV0X2J5dGUocywgKmJ1ZisrKTsKICAvLyAgfQogICAgcy5wZW5kaW5nX2J1Zi5zZXQocy53aW5kb3cuc3ViYXJyYXkoYnVmLCBidWYgKyBsZW4pLCBzLnBlbmRpbmcpOwogICAgcy5wZW5kaW5nICs9IGxlbjsKICB9OwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBDb21wYXJlcyB0byBzdWJ0cmVlcywgdXNpbmcgdGhlIHRyZWUgZGVwdGggYXMgdGllIGJyZWFrZXIgd2hlbgogICAqIHRoZSBzdWJ0cmVlcyBoYXZlIGVxdWFsIGZyZXF1ZW5jeS4gVGhpcyBtaW5pbWl6ZXMgdGhlIHdvcnN0IGNhc2UgbGVuZ3RoLgogICAqLwogIGNvbnN0IHNtYWxsZXIgPSAodHJlZSwgbiwgbSwgZGVwdGgpID0+IHsKCiAgICBjb25zdCBfbjIgPSBuICogMjsKICAgIGNvbnN0IF9tMiA9IG0gKiAyOwogICAgcmV0dXJuICh0cmVlW19uMl0vKi5GcmVxKi8gPCB0cmVlW19tMl0vKi5GcmVxKi8gfHwKICAgICAgICAgICAodHJlZVtfbjJdLyouRnJlcSovID09PSB0cmVlW19tMl0vKi5GcmVxKi8gJiYgZGVwdGhbbl0gPD0gZGVwdGhbbV0pKTsKICB9OwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBSZXN0b3JlIHRoZSBoZWFwIHByb3BlcnR5IGJ5IG1vdmluZyBkb3duIHRoZSB0cmVlIHN0YXJ0aW5nIGF0IG5vZGUgaywKICAgKiBleGNoYW5naW5nIGEgbm9kZSB3aXRoIHRoZSBzbWFsbGVzdCBvZiBpdHMgdHdvIHNvbnMgaWYgbmVjZXNzYXJ5LCBzdG9wcGluZwogICAqIHdoZW4gdGhlIGhlYXAgcHJvcGVydHkgaXMgcmUtZXN0YWJsaXNoZWQgKGVhY2ggZmF0aGVyIHNtYWxsZXIgdGhhbiBpdHMKICAgKiB0d28gc29ucykuCiAgICovCiAgY29uc3QgcHFkb3duaGVhcCA9IChzLCB0cmVlLCBrKSA9PgogIC8vICAgIGRlZmxhdGVfc3RhdGUgKnM7CiAgLy8gICAgY3RfZGF0YSAqdHJlZTsgIC8qIHRoZSB0cmVlIHRvIHJlc3RvcmUgKi8KICAvLyAgICBpbnQgazsgICAgICAgICAgICAgICAvKiBub2RlIHRvIG1vdmUgZG93biAqLwogIHsKICAgIGNvbnN0IHYgPSBzLmhlYXBba107CiAgICBsZXQgaiA9IGsgPDwgMTsgIC8qIGxlZnQgc29uIG9mIGsgKi8KICAgIHdoaWxlIChqIDw9IHMuaGVhcF9sZW4pIHsKICAgICAgLyogU2V0IGogdG8gdGhlIHNtYWxsZXN0IG9mIHRoZSB0d28gc29uczogKi8KICAgICAgaWYgKGogPCBzLmhlYXBfbGVuICYmCiAgICAgICAgc21hbGxlcih0cmVlLCBzLmhlYXBbaiArIDFdLCBzLmhlYXBbal0sIHMuZGVwdGgpKSB7CiAgICAgICAgaisrOwogICAgICB9CiAgICAgIC8qIEV4aXQgaWYgdiBpcyBzbWFsbGVyIHRoYW4gYm90aCBzb25zICovCiAgICAgIGlmIChzbWFsbGVyKHRyZWUsIHYsIHMuaGVhcFtqXSwgcy5kZXB0aCkpIHsgYnJlYWs7IH0KCiAgICAgIC8qIEV4Y2hhbmdlIHYgd2l0aCB0aGUgc21hbGxlc3Qgc29uICovCiAgICAgIHMuaGVhcFtrXSA9IHMuaGVhcFtqXTsKICAgICAgayA9IGo7CgogICAgICAvKiBBbmQgY29udGludWUgZG93biB0aGUgdHJlZSwgc2V0dGluZyBqIHRvIHRoZSBsZWZ0IHNvbiBvZiBrICovCiAgICAgIGogPDw9IDE7CiAgICB9CiAgICBzLmhlYXBba10gPSB2OwogIH07CgoKICAvLyBpbmxpbmVkIG1hbnVhbGx5CiAgLy8gY29uc3QgU01BTExFU1QgPSAxOwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBTZW5kIHRoZSBibG9jayBkYXRhIGNvbXByZXNzZWQgdXNpbmcgdGhlIGdpdmVuIEh1ZmZtYW4gdHJlZXMKICAgKi8KICBjb25zdCBjb21wcmVzc19ibG9jayA9IChzLCBsdHJlZSwgZHRyZWUpID0+CiAgLy8gICAgZGVmbGF0ZV9zdGF0ZSAqczsKICAvLyAgICBjb25zdCBjdF9kYXRhICpsdHJlZTsgLyogbGl0ZXJhbCB0cmVlICovCiAgLy8gICAgY29uc3QgY3RfZGF0YSAqZHRyZWU7IC8qIGRpc3RhbmNlIHRyZWUgKi8KICB7CiAgICBsZXQgZGlzdDsgICAgICAgICAgIC8qIGRpc3RhbmNlIG9mIG1hdGNoZWQgc3RyaW5nICovCiAgICBsZXQgbGM7ICAgICAgICAgICAgIC8qIG1hdGNoIGxlbmd0aCBvciB1bm1hdGNoZWQgY2hhciAoaWYgZGlzdCA9PSAwKSAqLwogICAgbGV0IGx4ID0gMDsgICAgICAgICAvKiBydW5uaW5nIGluZGV4IGluIGxfYnVmICovCiAgICBsZXQgY29kZTsgICAgICAgICAgIC8qIHRoZSBjb2RlIHRvIHNlbmQgKi8KICAgIGxldCBleHRyYTsgICAgICAgICAgLyogbnVtYmVyIG9mIGV4dHJhIGJpdHMgdG8gc2VuZCAqLwoKICAgIGlmIChzLmxhc3RfbGl0ICE9PSAwKSB7CiAgICAgIGRvIHsKICAgICAgICBkaXN0ID0gKHMucGVuZGluZ19idWZbcy5kX2J1ZiArIGx4ICogMl0gPDwgOCkgfCAocy5wZW5kaW5nX2J1ZltzLmRfYnVmICsgbHggKiAyICsgMV0pOwogICAgICAgIGxjID0gcy5wZW5kaW5nX2J1ZltzLmxfYnVmICsgbHhdOwogICAgICAgIGx4Kys7CgogICAgICAgIGlmIChkaXN0ID09PSAwKSB7CiAgICAgICAgICBzZW5kX2NvZGUocywgbGMsIGx0cmVlKTsgLyogc2VuZCBhIGxpdGVyYWwgYnl0ZSAqLwogICAgICAgICAgLy9UcmFjZWN2KGlzZ3JhcGgobGMpLCAoc3RkZXJyLCIgJyVjJyAiLCBsYykpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvKiBIZXJlLCBsYyBpcyB0aGUgbWF0Y2ggbGVuZ3RoIC0gTUlOX01BVENIICovCiAgICAgICAgICBjb2RlID0gX2xlbmd0aF9jb2RlW2xjXTsKICAgICAgICAgIHNlbmRfY29kZShzLCBjb2RlICsgTElURVJBTFMkMSArIDEsIGx0cmVlKTsgLyogc2VuZCB0aGUgbGVuZ3RoIGNvZGUgKi8KICAgICAgICAgIGV4dHJhID0gZXh0cmFfbGJpdHNbY29kZV07CiAgICAgICAgICBpZiAoZXh0cmEgIT09IDApIHsKICAgICAgICAgICAgbGMgLT0gYmFzZV9sZW5ndGhbY29kZV07CiAgICAgICAgICAgIHNlbmRfYml0cyhzLCBsYywgZXh0cmEpOyAgICAgICAvKiBzZW5kIHRoZSBleHRyYSBsZW5ndGggYml0cyAqLwogICAgICAgICAgfQogICAgICAgICAgZGlzdC0tOyAvKiBkaXN0IGlzIG5vdyB0aGUgbWF0Y2ggZGlzdGFuY2UgLSAxICovCiAgICAgICAgICBjb2RlID0gZF9jb2RlKGRpc3QpOwogICAgICAgICAgLy9Bc3NlcnQgKGNvZGUgPCBEX0NPREVTLCAiYmFkIGRfY29kZSIpOwoKICAgICAgICAgIHNlbmRfY29kZShzLCBjb2RlLCBkdHJlZSk7ICAgICAgIC8qIHNlbmQgdGhlIGRpc3RhbmNlIGNvZGUgKi8KICAgICAgICAgIGV4dHJhID0gZXh0cmFfZGJpdHNbY29kZV07CiAgICAgICAgICBpZiAoZXh0cmEgIT09IDApIHsKICAgICAgICAgICAgZGlzdCAtPSBiYXNlX2Rpc3RbY29kZV07CiAgICAgICAgICAgIHNlbmRfYml0cyhzLCBkaXN0LCBleHRyYSk7ICAgLyogc2VuZCB0aGUgZXh0cmEgZGlzdGFuY2UgYml0cyAqLwogICAgICAgICAgfQogICAgICAgIH0gLyogbGl0ZXJhbCBvciBtYXRjaCBwYWlyID8gKi8KCiAgICAgICAgLyogQ2hlY2sgdGhhdCB0aGUgb3ZlcmxheSBiZXR3ZWVuIHBlbmRpbmdfYnVmIGFuZCBkX2J1ZitsX2J1ZiBpcyBvazogKi8KICAgICAgICAvL0Fzc2VydCgodUludCkocy0+cGVuZGluZykgPCBzLT5saXRfYnVmc2l6ZSArIDIqbHgsCiAgICAgICAgLy8gICAgICAgInBlbmRpbmdCdWYgb3ZlcmZsb3ciKTsKCiAgICAgIH0gd2hpbGUgKGx4IDwgcy5sYXN0X2xpdCk7CiAgICB9CgogICAgc2VuZF9jb2RlKHMsIEVORF9CTE9DSywgbHRyZWUpOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBDb25zdHJ1Y3Qgb25lIEh1ZmZtYW4gdHJlZSBhbmQgYXNzaWducyB0aGUgY29kZSBiaXQgc3RyaW5ncyBhbmQgbGVuZ3Rocy4KICAgKiBVcGRhdGUgdGhlIHRvdGFsIGJpdCBsZW5ndGggZm9yIHRoZSBjdXJyZW50IGJsb2NrLgogICAqIElOIGFzc2VydGlvbjogdGhlIGZpZWxkIGZyZXEgaXMgc2V0IGZvciBhbGwgdHJlZSBlbGVtZW50cy4KICAgKiBPVVQgYXNzZXJ0aW9uczogdGhlIGZpZWxkcyBsZW4gYW5kIGNvZGUgYXJlIHNldCB0byB0aGUgb3B0aW1hbCBiaXQgbGVuZ3RoCiAgICogICAgIGFuZCBjb3JyZXNwb25kaW5nIGNvZGUuIFRoZSBsZW5ndGggb3B0X2xlbiBpcyB1cGRhdGVkOyBzdGF0aWNfbGVuIGlzCiAgICogICAgIGFsc28gdXBkYXRlZCBpZiBzdHJlZSBpcyBub3QgbnVsbC4gVGhlIGZpZWxkIG1heF9jb2RlIGlzIHNldC4KICAgKi8KICBjb25zdCBidWlsZF90cmVlID0gKHMsIGRlc2MpID0+CiAgLy8gICAgZGVmbGF0ZV9zdGF0ZSAqczsKICAvLyAgICB0cmVlX2Rlc2MgKmRlc2M7IC8qIHRoZSB0cmVlIGRlc2NyaXB0b3IgKi8KICB7CiAgICBjb25zdCB0cmVlICAgICA9IGRlc2MuZHluX3RyZWU7CiAgICBjb25zdCBzdHJlZSAgICA9IGRlc2Muc3RhdF9kZXNjLnN0YXRpY190cmVlOwogICAgY29uc3QgaGFzX3N0cmVlID0gZGVzYy5zdGF0X2Rlc2MuaGFzX3N0cmVlOwogICAgY29uc3QgZWxlbXMgICAgPSBkZXNjLnN0YXRfZGVzYy5lbGVtczsKICAgIGxldCBuLCBtOyAgICAgICAgICAvKiBpdGVyYXRlIG92ZXIgaGVhcCBlbGVtZW50cyAqLwogICAgbGV0IG1heF9jb2RlID0gLTE7IC8qIGxhcmdlc3QgY29kZSB3aXRoIG5vbiB6ZXJvIGZyZXF1ZW5jeSAqLwogICAgbGV0IG5vZGU7ICAgICAgICAgIC8qIG5ldyBub2RlIGJlaW5nIGNyZWF0ZWQgKi8KCiAgICAvKiBDb25zdHJ1Y3QgdGhlIGluaXRpYWwgaGVhcCwgd2l0aCBsZWFzdCBmcmVxdWVudCBlbGVtZW50IGluCiAgICAgKiBoZWFwW1NNQUxMRVNUXS4gVGhlIHNvbnMgb2YgaGVhcFtuXSBhcmUgaGVhcFsyKm5dIGFuZCBoZWFwWzIqbisxXS4KICAgICAqIGhlYXBbMF0gaXMgbm90IHVzZWQuCiAgICAgKi8KICAgIHMuaGVhcF9sZW4gPSAwOwogICAgcy5oZWFwX21heCA9IEhFQVBfU0laRSQxOwoKICAgIGZvciAobiA9IDA7IG4gPCBlbGVtczsgbisrKSB7CiAgICAgIGlmICh0cmVlW24gKiAyXS8qLkZyZXEqLyAhPT0gMCkgewogICAgICAgIHMuaGVhcFsrK3MuaGVhcF9sZW5dID0gbWF4X2NvZGUgPSBuOwogICAgICAgIHMuZGVwdGhbbl0gPSAwOwoKICAgICAgfSBlbHNlIHsKICAgICAgICB0cmVlW24gKiAyICsgMV0vKi5MZW4qLyA9IDA7CiAgICAgIH0KICAgIH0KCiAgICAvKiBUaGUgcGt6aXAgZm9ybWF0IHJlcXVpcmVzIHRoYXQgYXQgbGVhc3Qgb25lIGRpc3RhbmNlIGNvZGUgZXhpc3RzLAogICAgICogYW5kIHRoYXQgYXQgbGVhc3Qgb25lIGJpdCBzaG91bGQgYmUgc2VudCBldmVuIGlmIHRoZXJlIGlzIG9ubHkgb25lCiAgICAgKiBwb3NzaWJsZSBjb2RlLiBTbyB0byBhdm9pZCBzcGVjaWFsIGNoZWNrcyBsYXRlciBvbiB3ZSBmb3JjZSBhdCBsZWFzdAogICAgICogdHdvIGNvZGVzIG9mIG5vbiB6ZXJvIGZyZXF1ZW5jeS4KICAgICAqLwogICAgd2hpbGUgKHMuaGVhcF9sZW4gPCAyKSB7CiAgICAgIG5vZGUgPSBzLmhlYXBbKytzLmhlYXBfbGVuXSA9IChtYXhfY29kZSA8IDIgPyArK21heF9jb2RlIDogMCk7CiAgICAgIHRyZWVbbm9kZSAqIDJdLyouRnJlcSovID0gMTsKICAgICAgcy5kZXB0aFtub2RlXSA9IDA7CiAgICAgIHMub3B0X2xlbi0tOwoKICAgICAgaWYgKGhhc19zdHJlZSkgewogICAgICAgIHMuc3RhdGljX2xlbiAtPSBzdHJlZVtub2RlICogMiArIDFdLyouTGVuKi87CiAgICAgIH0KICAgICAgLyogbm9kZSBpcyAwIG9yIDEgc28gaXQgZG9lcyBub3QgaGF2ZSBleHRyYSBiaXRzICovCiAgICB9CiAgICBkZXNjLm1heF9jb2RlID0gbWF4X2NvZGU7CgogICAgLyogVGhlIGVsZW1lbnRzIGhlYXBbaGVhcF9sZW4vMisxIC4uIGhlYXBfbGVuXSBhcmUgbGVhdmVzIG9mIHRoZSB0cmVlLAogICAgICogZXN0YWJsaXNoIHN1Yi1oZWFwcyBvZiBpbmNyZWFzaW5nIGxlbmd0aHM6CiAgICAgKi8KICAgIGZvciAobiA9IChzLmhlYXBfbGVuID4+IDEvKmludCAvMiovKTsgbiA+PSAxOyBuLS0pIHsgcHFkb3duaGVhcChzLCB0cmVlLCBuKTsgfQoKICAgIC8qIENvbnN0cnVjdCB0aGUgSHVmZm1hbiB0cmVlIGJ5IHJlcGVhdGVkbHkgY29tYmluaW5nIHRoZSBsZWFzdCB0d28KICAgICAqIGZyZXF1ZW50IG5vZGVzLgogICAgICovCiAgICBub2RlID0gZWxlbXM7ICAgICAgICAgICAgICAvKiBuZXh0IGludGVybmFsIG5vZGUgb2YgdGhlIHRyZWUgKi8KICAgIGRvIHsKICAgICAgLy9wcXJlbW92ZShzLCB0cmVlLCBuKTsgIC8qIG4gPSBub2RlIG9mIGxlYXN0IGZyZXF1ZW5jeSAqLwogICAgICAvKioqIHBxcmVtb3ZlICoqKi8KICAgICAgbiA9IHMuaGVhcFsxLypTTUFMTEVTVCovXTsKICAgICAgcy5oZWFwWzEvKlNNQUxMRVNUKi9dID0gcy5oZWFwW3MuaGVhcF9sZW4tLV07CiAgICAgIHBxZG93bmhlYXAocywgdHJlZSwgMS8qU01BTExFU1QqLyk7CiAgICAgIC8qKiovCgogICAgICBtID0gcy5oZWFwWzEvKlNNQUxMRVNUKi9dOyAvKiBtID0gbm9kZSBvZiBuZXh0IGxlYXN0IGZyZXF1ZW5jeSAqLwoKICAgICAgcy5oZWFwWy0tcy5oZWFwX21heF0gPSBuOyAvKiBrZWVwIHRoZSBub2RlcyBzb3J0ZWQgYnkgZnJlcXVlbmN5ICovCiAgICAgIHMuaGVhcFstLXMuaGVhcF9tYXhdID0gbTsKCiAgICAgIC8qIENyZWF0ZSBhIG5ldyBub2RlIGZhdGhlciBvZiBuIGFuZCBtICovCiAgICAgIHRyZWVbbm9kZSAqIDJdLyouRnJlcSovID0gdHJlZVtuICogMl0vKi5GcmVxKi8gKyB0cmVlW20gKiAyXS8qLkZyZXEqLzsKICAgICAgcy5kZXB0aFtub2RlXSA9IChzLmRlcHRoW25dID49IHMuZGVwdGhbbV0gPyBzLmRlcHRoW25dIDogcy5kZXB0aFttXSkgKyAxOwogICAgICB0cmVlW24gKiAyICsgMV0vKi5EYWQqLyA9IHRyZWVbbSAqIDIgKyAxXS8qLkRhZCovID0gbm9kZTsKCiAgICAgIC8qIGFuZCBpbnNlcnQgdGhlIG5ldyBub2RlIGluIHRoZSBoZWFwICovCiAgICAgIHMuaGVhcFsxLypTTUFMTEVTVCovXSA9IG5vZGUrKzsKICAgICAgcHFkb3duaGVhcChzLCB0cmVlLCAxLypTTUFMTEVTVCovKTsKCiAgICB9IHdoaWxlIChzLmhlYXBfbGVuID49IDIpOwoKICAgIHMuaGVhcFstLXMuaGVhcF9tYXhdID0gcy5oZWFwWzEvKlNNQUxMRVNUKi9dOwoKICAgIC8qIEF0IHRoaXMgcG9pbnQsIHRoZSBmaWVsZHMgZnJlcSBhbmQgZGFkIGFyZSBzZXQuIFdlIGNhbiBub3cKICAgICAqIGdlbmVyYXRlIHRoZSBiaXQgbGVuZ3Rocy4KICAgICAqLwogICAgZ2VuX2JpdGxlbihzLCBkZXNjKTsKCiAgICAvKiBUaGUgZmllbGQgbGVuIGlzIG5vdyBzZXQsIHdlIGNhbiBnZW5lcmF0ZSB0aGUgYml0IGNvZGVzICovCiAgICBnZW5fY29kZXModHJlZSwgbWF4X2NvZGUsIHMuYmxfY291bnQpOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBTY2FuIGEgbGl0ZXJhbCBvciBkaXN0YW5jZSB0cmVlIHRvIGRldGVybWluZSB0aGUgZnJlcXVlbmNpZXMgb2YgdGhlIGNvZGVzCiAgICogaW4gdGhlIGJpdCBsZW5ndGggdHJlZS4KICAgKi8KICBjb25zdCBzY2FuX3RyZWUgPSAocywgdHJlZSwgbWF4X2NvZGUpID0+CiAgLy8gICAgZGVmbGF0ZV9zdGF0ZSAqczsKICAvLyAgICBjdF9kYXRhICp0cmVlOyAgIC8qIHRoZSB0cmVlIHRvIGJlIHNjYW5uZWQgKi8KICAvLyAgICBpbnQgbWF4X2NvZGU7ICAgIC8qIGFuZCBpdHMgbGFyZ2VzdCBjb2RlIG9mIG5vbiB6ZXJvIGZyZXF1ZW5jeSAqLwogIHsKICAgIGxldCBuOyAgICAgICAgICAgICAgICAgICAgIC8qIGl0ZXJhdGVzIG92ZXIgYWxsIHRyZWUgZWxlbWVudHMgKi8KICAgIGxldCBwcmV2bGVuID0gLTE7ICAgICAgICAgIC8qIGxhc3QgZW1pdHRlZCBsZW5ndGggKi8KICAgIGxldCBjdXJsZW47ICAgICAgICAgICAgICAgIC8qIGxlbmd0aCBvZiBjdXJyZW50IGNvZGUgKi8KCiAgICBsZXQgbmV4dGxlbiA9IHRyZWVbMCAqIDIgKyAxXS8qLkxlbiovOyAvKiBsZW5ndGggb2YgbmV4dCBjb2RlICovCgogICAgbGV0IGNvdW50ID0gMDsgICAgICAgICAgICAgLyogcmVwZWF0IGNvdW50IG9mIHRoZSBjdXJyZW50IGNvZGUgKi8KICAgIGxldCBtYXhfY291bnQgPSA3OyAgICAgICAgIC8qIG1heCByZXBlYXQgY291bnQgKi8KICAgIGxldCBtaW5fY291bnQgPSA0OyAgICAgICAgIC8qIG1pbiByZXBlYXQgY291bnQgKi8KCiAgICBpZiAobmV4dGxlbiA9PT0gMCkgewogICAgICBtYXhfY291bnQgPSAxMzg7CiAgICAgIG1pbl9jb3VudCA9IDM7CiAgICB9CiAgICB0cmVlWyhtYXhfY29kZSArIDEpICogMiArIDFdLyouTGVuKi8gPSAweGZmZmY7IC8qIGd1YXJkICovCgogICAgZm9yIChuID0gMDsgbiA8PSBtYXhfY29kZTsgbisrKSB7CiAgICAgIGN1cmxlbiA9IG5leHRsZW47CiAgICAgIG5leHRsZW4gPSB0cmVlWyhuICsgMSkgKiAyICsgMV0vKi5MZW4qLzsKCiAgICAgIGlmICgrK2NvdW50IDwgbWF4X2NvdW50ICYmIGN1cmxlbiA9PT0gbmV4dGxlbikgewogICAgICAgIGNvbnRpbnVlOwoKICAgICAgfSBlbHNlIGlmIChjb3VudCA8IG1pbl9jb3VudCkgewogICAgICAgIHMuYmxfdHJlZVtjdXJsZW4gKiAyXS8qLkZyZXEqLyArPSBjb3VudDsKCiAgICAgIH0gZWxzZSBpZiAoY3VybGVuICE9PSAwKSB7CgogICAgICAgIGlmIChjdXJsZW4gIT09IHByZXZsZW4pIHsgcy5ibF90cmVlW2N1cmxlbiAqIDJdLyouRnJlcSovKys7IH0KICAgICAgICBzLmJsX3RyZWVbUkVQXzNfNiAqIDJdLyouRnJlcSovKys7CgogICAgICB9IGVsc2UgaWYgKGNvdW50IDw9IDEwKSB7CiAgICAgICAgcy5ibF90cmVlW1JFUFpfM18xMCAqIDJdLyouRnJlcSovKys7CgogICAgICB9IGVsc2UgewogICAgICAgIHMuYmxfdHJlZVtSRVBaXzExXzEzOCAqIDJdLyouRnJlcSovKys7CiAgICAgIH0KCiAgICAgIGNvdW50ID0gMDsKICAgICAgcHJldmxlbiA9IGN1cmxlbjsKCiAgICAgIGlmIChuZXh0bGVuID09PSAwKSB7CiAgICAgICAgbWF4X2NvdW50ID0gMTM4OwogICAgICAgIG1pbl9jb3VudCA9IDM7CgogICAgICB9IGVsc2UgaWYgKGN1cmxlbiA9PT0gbmV4dGxlbikgewogICAgICAgIG1heF9jb3VudCA9IDY7CiAgICAgICAgbWluX2NvdW50ID0gMzsKCiAgICAgIH0gZWxzZSB7CiAgICAgICAgbWF4X2NvdW50ID0gNzsKICAgICAgICBtaW5fY291bnQgPSA0OwogICAgICB9CiAgICB9CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIFNlbmQgYSBsaXRlcmFsIG9yIGRpc3RhbmNlIHRyZWUgaW4gY29tcHJlc3NlZCBmb3JtLCB1c2luZyB0aGUgY29kZXMgaW4KICAgKiBibF90cmVlLgogICAqLwogIGNvbnN0IHNlbmRfdHJlZSA9IChzLCB0cmVlLCBtYXhfY29kZSkgPT4KICAvLyAgICBkZWZsYXRlX3N0YXRlICpzOwogIC8vICAgIGN0X2RhdGEgKnRyZWU7IC8qIHRoZSB0cmVlIHRvIGJlIHNjYW5uZWQgKi8KICAvLyAgICBpbnQgbWF4X2NvZGU7ICAgICAgIC8qIGFuZCBpdHMgbGFyZ2VzdCBjb2RlIG9mIG5vbiB6ZXJvIGZyZXF1ZW5jeSAqLwogIHsKICAgIGxldCBuOyAgICAgICAgICAgICAgICAgICAgIC8qIGl0ZXJhdGVzIG92ZXIgYWxsIHRyZWUgZWxlbWVudHMgKi8KICAgIGxldCBwcmV2bGVuID0gLTE7ICAgICAgICAgIC8qIGxhc3QgZW1pdHRlZCBsZW5ndGggKi8KICAgIGxldCBjdXJsZW47ICAgICAgICAgICAgICAgIC8qIGxlbmd0aCBvZiBjdXJyZW50IGNvZGUgKi8KCiAgICBsZXQgbmV4dGxlbiA9IHRyZWVbMCAqIDIgKyAxXS8qLkxlbiovOyAvKiBsZW5ndGggb2YgbmV4dCBjb2RlICovCgogICAgbGV0IGNvdW50ID0gMDsgICAgICAgICAgICAgLyogcmVwZWF0IGNvdW50IG9mIHRoZSBjdXJyZW50IGNvZGUgKi8KICAgIGxldCBtYXhfY291bnQgPSA3OyAgICAgICAgIC8qIG1heCByZXBlYXQgY291bnQgKi8KICAgIGxldCBtaW5fY291bnQgPSA0OyAgICAgICAgIC8qIG1pbiByZXBlYXQgY291bnQgKi8KCiAgICAvKiB0cmVlW21heF9jb2RlKzFdLkxlbiA9IC0xOyAqLyAgLyogZ3VhcmQgYWxyZWFkeSBzZXQgKi8KICAgIGlmIChuZXh0bGVuID09PSAwKSB7CiAgICAgIG1heF9jb3VudCA9IDEzODsKICAgICAgbWluX2NvdW50ID0gMzsKICAgIH0KCiAgICBmb3IgKG4gPSAwOyBuIDw9IG1heF9jb2RlOyBuKyspIHsKICAgICAgY3VybGVuID0gbmV4dGxlbjsKICAgICAgbmV4dGxlbiA9IHRyZWVbKG4gKyAxKSAqIDIgKyAxXS8qLkxlbiovOwoKICAgICAgaWYgKCsrY291bnQgPCBtYXhfY291bnQgJiYgY3VybGVuID09PSBuZXh0bGVuKSB7CiAgICAgICAgY29udGludWU7CgogICAgICB9IGVsc2UgaWYgKGNvdW50IDwgbWluX2NvdW50KSB7CiAgICAgICAgZG8geyBzZW5kX2NvZGUocywgY3VybGVuLCBzLmJsX3RyZWUpOyB9IHdoaWxlICgtLWNvdW50ICE9PSAwKTsKCiAgICAgIH0gZWxzZSBpZiAoY3VybGVuICE9PSAwKSB7CiAgICAgICAgaWYgKGN1cmxlbiAhPT0gcHJldmxlbikgewogICAgICAgICAgc2VuZF9jb2RlKHMsIGN1cmxlbiwgcy5ibF90cmVlKTsKICAgICAgICAgIGNvdW50LS07CiAgICAgICAgfQogICAgICAgIC8vQXNzZXJ0KGNvdW50ID49IDMgJiYgY291bnQgPD0gNiwgIiAzXzY/Iik7CiAgICAgICAgc2VuZF9jb2RlKHMsIFJFUF8zXzYsIHMuYmxfdHJlZSk7CiAgICAgICAgc2VuZF9iaXRzKHMsIGNvdW50IC0gMywgMik7CgogICAgICB9IGVsc2UgaWYgKGNvdW50IDw9IDEwKSB7CiAgICAgICAgc2VuZF9jb2RlKHMsIFJFUFpfM18xMCwgcy5ibF90cmVlKTsKICAgICAgICBzZW5kX2JpdHMocywgY291bnQgLSAzLCAzKTsKCiAgICAgIH0gZWxzZSB7CiAgICAgICAgc2VuZF9jb2RlKHMsIFJFUFpfMTFfMTM4LCBzLmJsX3RyZWUpOwogICAgICAgIHNlbmRfYml0cyhzLCBjb3VudCAtIDExLCA3KTsKICAgICAgfQoKICAgICAgY291bnQgPSAwOwogICAgICBwcmV2bGVuID0gY3VybGVuOwogICAgICBpZiAobmV4dGxlbiA9PT0gMCkgewogICAgICAgIG1heF9jb3VudCA9IDEzODsKICAgICAgICBtaW5fY291bnQgPSAzOwoKICAgICAgfSBlbHNlIGlmIChjdXJsZW4gPT09IG5leHRsZW4pIHsKICAgICAgICBtYXhfY291bnQgPSA2OwogICAgICAgIG1pbl9jb3VudCA9IDM7CgogICAgICB9IGVsc2UgewogICAgICAgIG1heF9jb3VudCA9IDc7CiAgICAgICAgbWluX2NvdW50ID0gNDsKICAgICAgfQogICAgfQogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBDb25zdHJ1Y3QgdGhlIEh1ZmZtYW4gdHJlZSBmb3IgdGhlIGJpdCBsZW5ndGhzIGFuZCByZXR1cm4gdGhlIGluZGV4IGluCiAgICogYmxfb3JkZXIgb2YgdGhlIGxhc3QgYml0IGxlbmd0aCBjb2RlIHRvIHNlbmQuCiAgICovCiAgY29uc3QgYnVpbGRfYmxfdHJlZSA9IChzKSA9PiB7CgogICAgbGV0IG1heF9ibGluZGV4OyAgLyogaW5kZXggb2YgbGFzdCBiaXQgbGVuZ3RoIGNvZGUgb2Ygbm9uIHplcm8gZnJlcSAqLwoKICAgIC8qIERldGVybWluZSB0aGUgYml0IGxlbmd0aCBmcmVxdWVuY2llcyBmb3IgbGl0ZXJhbCBhbmQgZGlzdGFuY2UgdHJlZXMgKi8KICAgIHNjYW5fdHJlZShzLCBzLmR5bl9sdHJlZSwgcy5sX2Rlc2MubWF4X2NvZGUpOwogICAgc2Nhbl90cmVlKHMsIHMuZHluX2R0cmVlLCBzLmRfZGVzYy5tYXhfY29kZSk7CgogICAgLyogQnVpbGQgdGhlIGJpdCBsZW5ndGggdHJlZTogKi8KICAgIGJ1aWxkX3RyZWUocywgcy5ibF9kZXNjKTsKICAgIC8qIG9wdF9sZW4gbm93IGluY2x1ZGVzIHRoZSBsZW5ndGggb2YgdGhlIHRyZWUgcmVwcmVzZW50YXRpb25zLCBleGNlcHQKICAgICAqIHRoZSBsZW5ndGhzIG9mIHRoZSBiaXQgbGVuZ3RocyBjb2RlcyBhbmQgdGhlIDUrNSs0IGJpdHMgZm9yIHRoZSBjb3VudHMuCiAgICAgKi8KCiAgICAvKiBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBiaXQgbGVuZ3RoIGNvZGVzIHRvIHNlbmQuIFRoZSBwa3ppcCBmb3JtYXQKICAgICAqIHJlcXVpcmVzIHRoYXQgYXQgbGVhc3QgNCBiaXQgbGVuZ3RoIGNvZGVzIGJlIHNlbnQuIChhcHBub3RlLnR4dCBzYXlzCiAgICAgKiAzIGJ1dCB0aGUgYWN0dWFsIHZhbHVlIHVzZWQgaXMgNC4pCiAgICAgKi8KICAgIGZvciAobWF4X2JsaW5kZXggPSBCTF9DT0RFUyQxIC0gMTsgbWF4X2JsaW5kZXggPj0gMzsgbWF4X2JsaW5kZXgtLSkgewogICAgICBpZiAocy5ibF90cmVlW2JsX29yZGVyW21heF9ibGluZGV4XSAqIDIgKyAxXS8qLkxlbiovICE9PSAwKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIC8qIFVwZGF0ZSBvcHRfbGVuIHRvIGluY2x1ZGUgdGhlIGJpdCBsZW5ndGggdHJlZSBhbmQgY291bnRzICovCiAgICBzLm9wdF9sZW4gKz0gMyAqIChtYXhfYmxpbmRleCArIDEpICsgNSArIDUgKyA0OwogICAgLy9UcmFjZXYoKHN0ZGVyciwgIlxuZHluIHRyZWVzOiBkeW4gJWxkLCBzdGF0ICVsZCIsCiAgICAvLyAgICAgICAgcy0+b3B0X2xlbiwgcy0+c3RhdGljX2xlbikpOwoKICAgIHJldHVybiBtYXhfYmxpbmRleDsKICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogU2VuZCB0aGUgaGVhZGVyIGZvciBhIGJsb2NrIHVzaW5nIGR5bmFtaWMgSHVmZm1hbiB0cmVlczogdGhlIGNvdW50cywgdGhlCiAgICogbGVuZ3RocyBvZiB0aGUgYml0IGxlbmd0aCBjb2RlcywgdGhlIGxpdGVyYWwgdHJlZSBhbmQgdGhlIGRpc3RhbmNlIHRyZWUuCiAgICogSU4gYXNzZXJ0aW9uOiBsY29kZXMgPj0gMjU3LCBkY29kZXMgPj0gMSwgYmxjb2RlcyA+PSA0LgogICAqLwogIGNvbnN0IHNlbmRfYWxsX3RyZWVzID0gKHMsIGxjb2RlcywgZGNvZGVzLCBibGNvZGVzKSA9PgogIC8vICAgIGRlZmxhdGVfc3RhdGUgKnM7CiAgLy8gICAgaW50IGxjb2RlcywgZGNvZGVzLCBibGNvZGVzOyAvKiBudW1iZXIgb2YgY29kZXMgZm9yIGVhY2ggdHJlZSAqLwogIHsKICAgIGxldCByYW5rOyAgICAgICAgICAgICAgICAgICAgLyogaW5kZXggaW4gYmxfb3JkZXIgKi8KCiAgICAvL0Fzc2VydCAobGNvZGVzID49IDI1NyAmJiBkY29kZXMgPj0gMSAmJiBibGNvZGVzID49IDQsICJub3QgZW5vdWdoIGNvZGVzIik7CiAgICAvL0Fzc2VydCAobGNvZGVzIDw9IExfQ09ERVMgJiYgZGNvZGVzIDw9IERfQ09ERVMgJiYgYmxjb2RlcyA8PSBCTF9DT0RFUywKICAgIC8vICAgICAgICAidG9vIG1hbnkgY29kZXMiKTsKICAgIC8vVHJhY2V2KChzdGRlcnIsICJcbmJsIGNvdW50czogIikpOwogICAgc2VuZF9iaXRzKHMsIGxjb2RlcyAtIDI1NywgNSk7IC8qIG5vdCArMjU1IGFzIHN0YXRlZCBpbiBhcHBub3RlLnR4dCAqLwogICAgc2VuZF9iaXRzKHMsIGRjb2RlcyAtIDEsICAgNSk7CiAgICBzZW5kX2JpdHMocywgYmxjb2RlcyAtIDQsICA0KTsgLyogbm90IC0zIGFzIHN0YXRlZCBpbiBhcHBub3RlLnR4dCAqLwogICAgZm9yIChyYW5rID0gMDsgcmFuayA8IGJsY29kZXM7IHJhbmsrKykgewogICAgICAvL1RyYWNldigoc3RkZXJyLCAiXG5ibCBjb2RlICUyZCAiLCBibF9vcmRlcltyYW5rXSkpOwogICAgICBzZW5kX2JpdHMocywgcy5ibF90cmVlW2JsX29yZGVyW3JhbmtdICogMiArIDFdLyouTGVuKi8sIDMpOwogICAgfQogICAgLy9UcmFjZXYoKHN0ZGVyciwgIlxuYmwgdHJlZTogc2VudCAlbGQiLCBzLT5iaXRzX3NlbnQpKTsKCiAgICBzZW5kX3RyZWUocywgcy5keW5fbHRyZWUsIGxjb2RlcyAtIDEpOyAvKiBsaXRlcmFsIHRyZWUgKi8KICAgIC8vVHJhY2V2KChzdGRlcnIsICJcbmxpdCB0cmVlOiBzZW50ICVsZCIsIHMtPmJpdHNfc2VudCkpOwoKICAgIHNlbmRfdHJlZShzLCBzLmR5bl9kdHJlZSwgZGNvZGVzIC0gMSk7IC8qIGRpc3RhbmNlIHRyZWUgKi8KICAgIC8vVHJhY2V2KChzdGRlcnIsICJcbmRpc3QgdHJlZTogc2VudCAlbGQiLCBzLT5iaXRzX3NlbnQpKTsKICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogQ2hlY2sgaWYgdGhlIGRhdGEgdHlwZSBpcyBURVhUIG9yIEJJTkFSWSwgdXNpbmcgdGhlIGZvbGxvd2luZyBhbGdvcml0aG06CiAgICogLSBURVhUIGlmIHRoZSB0d28gY29uZGl0aW9ucyBiZWxvdyBhcmUgc2F0aXNmaWVkOgogICAqICAgIGEpIFRoZXJlIGFyZSBubyBub24tcG9ydGFibGUgY29udHJvbCBjaGFyYWN0ZXJzIGJlbG9uZ2luZyB0byB0aGUKICAgKiAgICAgICAiYmxhY2sgbGlzdCIgKDAuLjYsIDE0Li4yNSwgMjguLjMxKS4KICAgKiAgICBiKSBUaGVyZSBpcyBhdCBsZWFzdCBvbmUgcHJpbnRhYmxlIGNoYXJhY3RlciBiZWxvbmdpbmcgdG8gdGhlCiAgICogICAgICAgIndoaXRlIGxpc3QiICg5IHtUQUJ9LCAxMCB7TEZ9LCAxMyB7Q1J9LCAzMi4uMjU1KS4KICAgKiAtIEJJTkFSWSBvdGhlcndpc2UuCiAgICogLSBUaGUgZm9sbG93aW5nIHBhcnRpYWxseS1wb3J0YWJsZSBjb250cm9sIGNoYXJhY3RlcnMgZm9ybSBhCiAgICogICAiZ3JheSBsaXN0IiB0aGF0IGlzIGlnbm9yZWQgaW4gdGhpcyBkZXRlY3Rpb24gYWxnb3JpdGhtOgogICAqICAgKDcge0JFTH0sIDgge0JTfSwgMTEge1ZUfSwgMTIge0ZGfSwgMjYge1NVQn0sIDI3IHtFU0N9KS4KICAgKiBJTiBhc3NlcnRpb246IHRoZSBmaWVsZHMgRnJlcSBvZiBkeW5fbHRyZWUgYXJlIHNldC4KICAgKi8KICBjb25zdCBkZXRlY3RfZGF0YV90eXBlID0gKHMpID0+IHsKICAgIC8qIGJsYWNrX21hc2sgaXMgdGhlIGJpdCBtYXNrIG9mIGJsYWNrLWxpc3RlZCBieXRlcwogICAgICogc2V0IGJpdHMgMC4uNiwgMTQuLjI1LCBhbmQgMjguLjMxCiAgICAgKiAweGYzZmZjMDdmID0gYmluYXJ5IDExMTEwMDExMTExMTExMTExMTAwMDAwMDAxMTExMTExCiAgICAgKi8KICAgIGxldCBibGFja19tYXNrID0gMHhmM2ZmYzA3ZjsKICAgIGxldCBuOwoKICAgIC8qIENoZWNrIGZvciBub24tdGV4dHVhbCAoImJsYWNrLWxpc3RlZCIpIGJ5dGVzLiAqLwogICAgZm9yIChuID0gMDsgbiA8PSAzMTsgbisrLCBibGFja19tYXNrID4+Pj0gMSkgewogICAgICBpZiAoKGJsYWNrX21hc2sgJiAxKSAmJiAocy5keW5fbHRyZWVbbiAqIDJdLyouRnJlcSovICE9PSAwKSkgewogICAgICAgIHJldHVybiBaX0JJTkFSWTsKICAgICAgfQogICAgfQoKICAgIC8qIENoZWNrIGZvciB0ZXh0dWFsICgid2hpdGUtbGlzdGVkIikgYnl0ZXMuICovCiAgICBpZiAocy5keW5fbHRyZWVbOSAqIDJdLyouRnJlcSovICE9PSAwIHx8IHMuZHluX2x0cmVlWzEwICogMl0vKi5GcmVxKi8gIT09IDAgfHwKICAgICAgICBzLmR5bl9sdHJlZVsxMyAqIDJdLyouRnJlcSovICE9PSAwKSB7CiAgICAgIHJldHVybiBaX1RFWFQ7CiAgICB9CiAgICBmb3IgKG4gPSAzMjsgbiA8IExJVEVSQUxTJDE7IG4rKykgewogICAgICBpZiAocy5keW5fbHRyZWVbbiAqIDJdLyouRnJlcSovICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIFpfVEVYVDsKICAgICAgfQogICAgfQoKICAgIC8qIFRoZXJlIGFyZSBubyAiYmxhY2stbGlzdGVkIiBvciAid2hpdGUtbGlzdGVkIiBieXRlczoKICAgICAqIHRoaXMgc3RyZWFtIGVpdGhlciBpcyBlbXB0eSBvciBoYXMgdG9sZXJhdGVkICgiZ3JheS1saXN0ZWQiKSBieXRlcyBvbmx5LgogICAgICovCiAgICByZXR1cm4gWl9CSU5BUlk7CiAgfTsKCgogIGxldCBzdGF0aWNfaW5pdF9kb25lID0gZmFsc2U7CgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIEluaXRpYWxpemUgdGhlIHRyZWUgZGF0YSBzdHJ1Y3R1cmVzIGZvciBhIG5ldyB6bGliIHN0cmVhbS4KICAgKi8KICBjb25zdCBfdHJfaW5pdCQxID0gKHMpID0+CiAgewoKICAgIGlmICghc3RhdGljX2luaXRfZG9uZSkgewogICAgICB0cl9zdGF0aWNfaW5pdCgpOwogICAgICBzdGF0aWNfaW5pdF9kb25lID0gdHJ1ZTsKICAgIH0KCiAgICBzLmxfZGVzYyAgPSBuZXcgVHJlZURlc2Mocy5keW5fbHRyZWUsIHN0YXRpY19sX2Rlc2MpOwogICAgcy5kX2Rlc2MgID0gbmV3IFRyZWVEZXNjKHMuZHluX2R0cmVlLCBzdGF0aWNfZF9kZXNjKTsKICAgIHMuYmxfZGVzYyA9IG5ldyBUcmVlRGVzYyhzLmJsX3RyZWUsIHN0YXRpY19ibF9kZXNjKTsKCiAgICBzLmJpX2J1ZiA9IDA7CiAgICBzLmJpX3ZhbGlkID0gMDsKCiAgICAvKiBJbml0aWFsaXplIHRoZSBmaXJzdCBibG9jayBvZiB0aGUgZmlyc3QgZmlsZTogKi8KICAgIGluaXRfYmxvY2socyk7CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIFNlbmQgYSBzdG9yZWQgYmxvY2sKICAgKi8KICBjb25zdCBfdHJfc3RvcmVkX2Jsb2NrJDEgPSAocywgYnVmLCBzdG9yZWRfbGVuLCBsYXN0KSA9PgogIC8vRGVmbGF0ZVN0YXRlICpzOwogIC8vY2hhcmYgKmJ1ZjsgICAgICAgLyogaW5wdXQgYmxvY2sgKi8KICAvL3VsZyBzdG9yZWRfbGVuOyAgIC8qIGxlbmd0aCBvZiBpbnB1dCBibG9jayAqLwogIC8vaW50IGxhc3Q7ICAgICAgICAgLyogb25lIGlmIHRoaXMgaXMgdGhlIGxhc3QgYmxvY2sgZm9yIGEgZmlsZSAqLwogIHsKICAgIHNlbmRfYml0cyhzLCAoU1RPUkVEX0JMT0NLIDw8IDEpICsgKGxhc3QgPyAxIDogMCksIDMpOyAgICAvKiBzZW5kIGJsb2NrIHR5cGUgKi8KICAgIGNvcHlfYmxvY2socywgYnVmLCBzdG9yZWRfbGVuLCB0cnVlKTsgLyogd2l0aCBoZWFkZXIgKi8KICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogU2VuZCBvbmUgZW1wdHkgc3RhdGljIGJsb2NrIHRvIGdpdmUgZW5vdWdoIGxvb2thaGVhZCBmb3IgaW5mbGF0ZS4KICAgKiBUaGlzIHRha2VzIDEwIGJpdHMsIG9mIHdoaWNoIDcgbWF5IHJlbWFpbiBpbiB0aGUgYml0IGJ1ZmZlci4KICAgKi8KICBjb25zdCBfdHJfYWxpZ24kMSA9IChzKSA9PiB7CiAgICBzZW5kX2JpdHMocywgU1RBVElDX1RSRUVTIDw8IDEsIDMpOwogICAgc2VuZF9jb2RlKHMsIEVORF9CTE9DSywgc3RhdGljX2x0cmVlKTsKICAgIGJpX2ZsdXNoKHMpOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBEZXRlcm1pbmUgdGhlIGJlc3QgZW5jb2RpbmcgZm9yIHRoZSBjdXJyZW50IGJsb2NrOiBkeW5hbWljIHRyZWVzLCBzdGF0aWMKICAgKiB0cmVlcyBvciBzdG9yZSwgYW5kIG91dHB1dCB0aGUgZW5jb2RlZCBibG9jayB0byB0aGUgemlwIGZpbGUuCiAgICovCiAgY29uc3QgX3RyX2ZsdXNoX2Jsb2NrJDEgPSAocywgYnVmLCBzdG9yZWRfbGVuLCBsYXN0KSA9PgogIC8vRGVmbGF0ZVN0YXRlICpzOwogIC8vY2hhcmYgKmJ1ZjsgICAgICAgLyogaW5wdXQgYmxvY2ssIG9yIE5VTEwgaWYgdG9vIG9sZCAqLwogIC8vdWxnIHN0b3JlZF9sZW47ICAgLyogbGVuZ3RoIG9mIGlucHV0IGJsb2NrICovCiAgLy9pbnQgbGFzdDsgICAgICAgICAvKiBvbmUgaWYgdGhpcyBpcyB0aGUgbGFzdCBibG9jayBmb3IgYSBmaWxlICovCiAgewogICAgbGV0IG9wdF9sZW5iLCBzdGF0aWNfbGVuYjsgIC8qIG9wdF9sZW4gYW5kIHN0YXRpY19sZW4gaW4gYnl0ZXMgKi8KICAgIGxldCBtYXhfYmxpbmRleCA9IDA7ICAgICAgICAvKiBpbmRleCBvZiBsYXN0IGJpdCBsZW5ndGggY29kZSBvZiBub24gemVybyBmcmVxICovCgogICAgLyogQnVpbGQgdGhlIEh1ZmZtYW4gdHJlZXMgdW5sZXNzIGEgc3RvcmVkIGJsb2NrIGlzIGZvcmNlZCAqLwogICAgaWYgKHMubGV2ZWwgPiAwKSB7CgogICAgICAvKiBDaGVjayBpZiB0aGUgZmlsZSBpcyBiaW5hcnkgb3IgdGV4dCAqLwogICAgICBpZiAocy5zdHJtLmRhdGFfdHlwZSA9PT0gWl9VTktOT1dOJDEpIHsKICAgICAgICBzLnN0cm0uZGF0YV90eXBlID0gZGV0ZWN0X2RhdGFfdHlwZShzKTsKICAgICAgfQoKICAgICAgLyogQ29uc3RydWN0IHRoZSBsaXRlcmFsIGFuZCBkaXN0YW5jZSB0cmVlcyAqLwogICAgICBidWlsZF90cmVlKHMsIHMubF9kZXNjKTsKICAgICAgLy8gVHJhY2V2KChzdGRlcnIsICJcbmxpdCBkYXRhOiBkeW4gJWxkLCBzdGF0ICVsZCIsIHMtPm9wdF9sZW4sCiAgICAgIC8vICAgICAgICBzLT5zdGF0aWNfbGVuKSk7CgogICAgICBidWlsZF90cmVlKHMsIHMuZF9kZXNjKTsKICAgICAgLy8gVHJhY2V2KChzdGRlcnIsICJcbmRpc3QgZGF0YTogZHluICVsZCwgc3RhdCAlbGQiLCBzLT5vcHRfbGVuLAogICAgICAvLyAgICAgICAgcy0+c3RhdGljX2xlbikpOwogICAgICAvKiBBdCB0aGlzIHBvaW50LCBvcHRfbGVuIGFuZCBzdGF0aWNfbGVuIGFyZSB0aGUgdG90YWwgYml0IGxlbmd0aHMgb2YKICAgICAgICogdGhlIGNvbXByZXNzZWQgYmxvY2sgZGF0YSwgZXhjbHVkaW5nIHRoZSB0cmVlIHJlcHJlc2VudGF0aW9ucy4KICAgICAgICovCgogICAgICAvKiBCdWlsZCB0aGUgYml0IGxlbmd0aCB0cmVlIGZvciB0aGUgYWJvdmUgdHdvIHRyZWVzLCBhbmQgZ2V0IHRoZSBpbmRleAogICAgICAgKiBpbiBibF9vcmRlciBvZiB0aGUgbGFzdCBiaXQgbGVuZ3RoIGNvZGUgdG8gc2VuZC4KICAgICAgICovCiAgICAgIG1heF9ibGluZGV4ID0gYnVpbGRfYmxfdHJlZShzKTsKCiAgICAgIC8qIERldGVybWluZSB0aGUgYmVzdCBlbmNvZGluZy4gQ29tcHV0ZSB0aGUgYmxvY2sgbGVuZ3RocyBpbiBieXRlcy4gKi8KICAgICAgb3B0X2xlbmIgPSAocy5vcHRfbGVuICsgMyArIDcpID4+PiAzOwogICAgICBzdGF0aWNfbGVuYiA9IChzLnN0YXRpY19sZW4gKyAzICsgNykgPj4+IDM7CgogICAgICAvLyBUcmFjZXYoKHN0ZGVyciwgIlxub3B0ICVsdSglbHUpIHN0YXQgJWx1KCVsdSkgc3RvcmVkICVsdSBsaXQgJXUgIiwKICAgICAgLy8gICAgICAgIG9wdF9sZW5iLCBzLT5vcHRfbGVuLCBzdGF0aWNfbGVuYiwgcy0+c3RhdGljX2xlbiwgc3RvcmVkX2xlbiwKICAgICAgLy8gICAgICAgIHMtPmxhc3RfbGl0KSk7CgogICAgICBpZiAoc3RhdGljX2xlbmIgPD0gb3B0X2xlbmIpIHsgb3B0X2xlbmIgPSBzdGF0aWNfbGVuYjsgfQoKICAgIH0gZWxzZSB7CiAgICAgIC8vIEFzc2VydChidWYgIT0gKGNoYXIqKTAsICJsb3N0IGJ1ZiIpOwogICAgICBvcHRfbGVuYiA9IHN0YXRpY19sZW5iID0gc3RvcmVkX2xlbiArIDU7IC8qIGZvcmNlIGEgc3RvcmVkIGJsb2NrICovCiAgICB9CgogICAgaWYgKChzdG9yZWRfbGVuICsgNCA8PSBvcHRfbGVuYikgJiYgKGJ1ZiAhPT0gLTEpKSB7CiAgICAgIC8qIDQ6IHR3byB3b3JkcyBmb3IgdGhlIGxlbmd0aHMgKi8KCiAgICAgIC8qIFRoZSB0ZXN0IGJ1ZiAhPSBOVUxMIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIExJVF9CVUZTSVpFID4gV1NJWkUuCiAgICAgICAqIE90aGVyd2lzZSB3ZSBjYW4ndCBoYXZlIHByb2Nlc3NlZCBtb3JlIHRoYW4gV1NJWkUgaW5wdXQgYnl0ZXMgc2luY2UKICAgICAgICogdGhlIGxhc3QgYmxvY2sgZmx1c2gsIGJlY2F1c2UgY29tcHJlc3Npb24gd291bGQgaGF2ZSBiZWVuCiAgICAgICAqIHN1Y2Nlc3NmdWwuIElmIExJVF9CVUZTSVpFIDw9IFdTSVpFLCBpdCBpcyBuZXZlciB0b28gbGF0ZSB0bwogICAgICAgKiB0cmFuc2Zvcm0gYSBibG9jayBpbnRvIGEgc3RvcmVkIGJsb2NrLgogICAgICAgKi8KICAgICAgX3RyX3N0b3JlZF9ibG9jayQxKHMsIGJ1Ziwgc3RvcmVkX2xlbiwgbGFzdCk7CgogICAgfSBlbHNlIGlmIChzLnN0cmF0ZWd5ID09PSBaX0ZJWEVEJDEgfHwgc3RhdGljX2xlbmIgPT09IG9wdF9sZW5iKSB7CgogICAgICBzZW5kX2JpdHMocywgKFNUQVRJQ19UUkVFUyA8PCAxKSArIChsYXN0ID8gMSA6IDApLCAzKTsKICAgICAgY29tcHJlc3NfYmxvY2socywgc3RhdGljX2x0cmVlLCBzdGF0aWNfZHRyZWUpOwoKICAgIH0gZWxzZSB7CiAgICAgIHNlbmRfYml0cyhzLCAoRFlOX1RSRUVTIDw8IDEpICsgKGxhc3QgPyAxIDogMCksIDMpOwogICAgICBzZW5kX2FsbF90cmVlcyhzLCBzLmxfZGVzYy5tYXhfY29kZSArIDEsIHMuZF9kZXNjLm1heF9jb2RlICsgMSwgbWF4X2JsaW5kZXggKyAxKTsKICAgICAgY29tcHJlc3NfYmxvY2socywgcy5keW5fbHRyZWUsIHMuZHluX2R0cmVlKTsKICAgIH0KICAgIC8vIEFzc2VydCAocy0+Y29tcHJlc3NlZF9sZW4gPT0gcy0+Yml0c19zZW50LCAiYmFkIGNvbXByZXNzZWQgc2l6ZSIpOwogICAgLyogVGhlIGFib3ZlIGNoZWNrIGlzIG1hZGUgbW9kIDJeMzIsIGZvciBmaWxlcyBsYXJnZXIgdGhhbiA1MTIgTUIKICAgICAqIGFuZCB1TG9uZyBpbXBsZW1lbnRlZCBvbiAzMiBiaXRzLgogICAgICovCiAgICBpbml0X2Jsb2NrKHMpOwoKICAgIGlmIChsYXN0KSB7CiAgICAgIGJpX3dpbmR1cChzKTsKICAgIH0KICAgIC8vIFRyYWNldigoc3RkZXJyLCJcbmNvbXBybGVuICVsdSglbHUpICIsIHMtPmNvbXByZXNzZWRfbGVuPj4zLAogICAgLy8gICAgICAgcy0+Y29tcHJlc3NlZF9sZW4tNypsYXN0KSk7CiAgfTsKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogU2F2ZSB0aGUgbWF0Y2ggaW5mbyBhbmQgdGFsbHkgdGhlIGZyZXF1ZW5jeSBjb3VudHMuIFJldHVybiB0cnVlIGlmCiAgICogdGhlIGN1cnJlbnQgYmxvY2sgbXVzdCBiZSBmbHVzaGVkLgogICAqLwogIGNvbnN0IF90cl90YWxseSQxID0gKHMsIGRpc3QsIGxjKSA9PgogIC8vICAgIGRlZmxhdGVfc3RhdGUgKnM7CiAgLy8gICAgdW5zaWduZWQgZGlzdDsgIC8qIGRpc3RhbmNlIG9mIG1hdGNoZWQgc3RyaW5nICovCiAgLy8gICAgdW5zaWduZWQgbGM7ICAgIC8qIG1hdGNoIGxlbmd0aC1NSU5fTUFUQ0ggb3IgdW5tYXRjaGVkIGNoYXIgKGlmIGRpc3Q9PTApICovCiAgewogICAgLy9sZXQgb3V0X2xlbmd0aCwgaW5fbGVuZ3RoLCBkY29kZTsKCiAgICBzLnBlbmRpbmdfYnVmW3MuZF9idWYgKyBzLmxhc3RfbGl0ICogMl0gICAgID0gKGRpc3QgPj4+IDgpICYgMHhmZjsKICAgIHMucGVuZGluZ19idWZbcy5kX2J1ZiArIHMubGFzdF9saXQgKiAyICsgMV0gPSBkaXN0ICYgMHhmZjsKCiAgICBzLnBlbmRpbmdfYnVmW3MubF9idWYgKyBzLmxhc3RfbGl0XSA9IGxjICYgMHhmZjsKICAgIHMubGFzdF9saXQrKzsKCiAgICBpZiAoZGlzdCA9PT0gMCkgewogICAgICAvKiBsYyBpcyB0aGUgdW5tYXRjaGVkIGNoYXIgKi8KICAgICAgcy5keW5fbHRyZWVbbGMgKiAyXS8qLkZyZXEqLysrOwogICAgfSBlbHNlIHsKICAgICAgcy5tYXRjaGVzKys7CiAgICAgIC8qIEhlcmUsIGxjIGlzIHRoZSBtYXRjaCBsZW5ndGggLSBNSU5fTUFUQ0ggKi8KICAgICAgZGlzdC0tOyAgICAgICAgICAgICAvKiBkaXN0ID0gbWF0Y2ggZGlzdGFuY2UgLSAxICovCiAgICAgIC8vQXNzZXJ0KCh1c2gpZGlzdCA8ICh1c2gpTUFYX0RJU1QocykgJiYKICAgICAgLy8gICAgICAgKHVzaClsYyA8PSAodXNoKShNQVhfTUFUQ0gtTUlOX01BVENIKSAmJgogICAgICAvLyAgICAgICAodXNoKWRfY29kZShkaXN0KSA8ICh1c2gpRF9DT0RFUywgICJfdHJfdGFsbHk6IGJhZCBtYXRjaCIpOwoKICAgICAgcy5keW5fbHRyZWVbKF9sZW5ndGhfY29kZVtsY10gKyBMSVRFUkFMUyQxICsgMSkgKiAyXS8qLkZyZXEqLysrOwogICAgICBzLmR5bl9kdHJlZVtkX2NvZGUoZGlzdCkgKiAyXS8qLkZyZXEqLysrOwogICAgfQoKICAvLyAoISkgVGhpcyBibG9jayBpcyBkaXNhYmxlZCBpbiB6bGliIGRlZmF1bHRzLAogIC8vIGRvbid0IGVuYWJsZSBpdCBmb3IgYmluYXJ5IGNvbXBhdGliaWxpdHkKCiAgLy8jaWZkZWYgVFJVTkNBVEVfQkxPQ0sKICAvLyAgLyogVHJ5IHRvIGd1ZXNzIGlmIGl0IGlzIHByb2ZpdGFibGUgdG8gc3RvcCB0aGUgY3VycmVudCBibG9jayBoZXJlICovCiAgLy8gIGlmICgocy5sYXN0X2xpdCAmIDB4MWZmZikgPT09IDAgJiYgcy5sZXZlbCA+IDIpIHsKICAvLyAgICAvKiBDb21wdXRlIGFuIHVwcGVyIGJvdW5kIGZvciB0aGUgY29tcHJlc3NlZCBsZW5ndGggKi8KICAvLyAgICBvdXRfbGVuZ3RoID0gcy5sYXN0X2xpdCo4OwogIC8vICAgIGluX2xlbmd0aCA9IHMuc3Ryc3RhcnQgLSBzLmJsb2NrX3N0YXJ0OwogIC8vCiAgLy8gICAgZm9yIChkY29kZSA9IDA7IGRjb2RlIDwgRF9DT0RFUzsgZGNvZGUrKykgewogIC8vICAgICAgb3V0X2xlbmd0aCArPSBzLmR5bl9kdHJlZVtkY29kZSoyXS8qLkZyZXEqLyAqICg1ICsgZXh0cmFfZGJpdHNbZGNvZGVdKTsKICAvLyAgICB9CiAgLy8gICAgb3V0X2xlbmd0aCA+Pj49IDM7CiAgLy8gICAgLy9UcmFjZXYoKHN0ZGVyciwiXG5sYXN0X2xpdCAldSwgaW4gJWxkLCBvdXQgfiVsZCglbGQlJSkgIiwKICAvLyAgICAvLyAgICAgICBzLT5sYXN0X2xpdCwgaW5fbGVuZ3RoLCBvdXRfbGVuZ3RoLAogIC8vICAgIC8vICAgICAgIDEwMEwgLSBvdXRfbGVuZ3RoKjEwMEwvaW5fbGVuZ3RoKSk7CiAgLy8gICAgaWYgKHMubWF0Y2hlcyA8IChzLmxhc3RfbGl0Pj4xKS8qaW50IC8yKi8gJiYgb3V0X2xlbmd0aCA8IChpbl9sZW5ndGg+PjEpLyppbnQgLzIqLykgewogIC8vICAgICAgcmV0dXJuIHRydWU7CiAgLy8gICAgfQogIC8vICB9CiAgLy8jZW5kaWYKCiAgICByZXR1cm4gKHMubGFzdF9saXQgPT09IHMubGl0X2J1ZnNpemUgLSAxKTsKICAgIC8qIFdlIGF2b2lkIGVxdWFsaXR5IHdpdGggbGl0X2J1ZnNpemUgYmVjYXVzZSBvZiB3cmFwYXJvdW5kIGF0IDY0SwogICAgICogb24gMTYgYml0IG1hY2hpbmVzIGFuZCBiZWNhdXNlIHN0b3JlZCBibG9ja3MgYXJlIHJlc3RyaWN0ZWQgdG8KICAgICAqIDY0Sy0xIGJ5dGVzLgogICAgICovCiAgfTsKCiAgdmFyIF90cl9pbml0XzEgID0gX3RyX2luaXQkMTsKICB2YXIgX3RyX3N0b3JlZF9ibG9ja18xID0gX3RyX3N0b3JlZF9ibG9jayQxOwogIHZhciBfdHJfZmx1c2hfYmxvY2tfMSAgPSBfdHJfZmx1c2hfYmxvY2skMTsKICB2YXIgX3RyX3RhbGx5XzEgPSBfdHJfdGFsbHkkMTsKICB2YXIgX3RyX2FsaWduXzEgPSBfdHJfYWxpZ24kMTsKCiAgdmFyIHRyZWVzID0gewogIAlfdHJfaW5pdDogX3RyX2luaXRfMSwKICAJX3RyX3N0b3JlZF9ibG9jazogX3RyX3N0b3JlZF9ibG9ja18xLAogIAlfdHJfZmx1c2hfYmxvY2s6IF90cl9mbHVzaF9ibG9ja18xLAogIAlfdHJfdGFsbHk6IF90cl90YWxseV8xLAogIAlfdHJfYWxpZ246IF90cl9hbGlnbl8xCiAgfTsKCiAgLy8gTm90ZTogYWRsZXIzMiB0YWtlcyAxMiUgZm9yIGxldmVsIDAgYW5kIDIlIGZvciBsZXZlbCA2LgogIC8vIEl0IGlzbid0IHdvcnRoIGl0IHRvIG1ha2UgYWRkaXRpb25hbCBvcHRpbWl6YXRpb25zIGFzIGluIG9yaWdpbmFsLgogIC8vIFNtYWxsIHNpemUgaXMgcHJlZmVyYWJsZS4KCiAgLy8gKEMpIDE5OTUtMjAxMyBKZWFuLWxvdXAgR2FpbGx5IGFuZCBNYXJrIEFkbGVyCiAgLy8gKEMpIDIwMTQtMjAxNyBWaXRhbHkgUHV6cmluIGFuZCBBbmRyZXkgVHVwaXRzaW4KICAvLwogIC8vIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkCiAgLy8gd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCiAgLy8gYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KICAvLwogIC8vIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAogIC8vIGluY2x1ZGluZyBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucywgYW5kIHRvIGFsdGVyIGl0IGFuZCByZWRpc3RyaWJ1dGUgaXQKICAvLyBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6CiAgLy8KICAvLyAxLiBUaGUgb3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUgbWlzcmVwcmVzZW50ZWQ7IHlvdSBtdXN0IG5vdAogIC8vICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKICAvLyAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQogIC8vICAgYXBwcmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4KICAvLyAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQogIC8vICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgogIC8vIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCgogIGNvbnN0IGFkbGVyMzIgPSAoYWRsZXIsIGJ1ZiwgbGVuLCBwb3MpID0+IHsKICAgIGxldCBzMSA9IChhZGxlciAmIDB4ZmZmZikgfDAsCiAgICAgICAgczIgPSAoKGFkbGVyID4+PiAxNikgJiAweGZmZmYpIHwwLAogICAgICAgIG4gPSAwOwoKICAgIHdoaWxlIChsZW4gIT09IDApIHsKICAgICAgLy8gU2V0IGxpbWl0IH4gdHdpY2UgbGVzcyB0aGFuIDU1NTIsIHRvIGtlZXAKICAgICAgLy8gczIgaW4gMzEtYml0cywgYmVjYXVzZSB3ZSBmb3JjZSBzaWduZWQgaW50cy4KICAgICAgLy8gaW4gb3RoZXIgY2FzZSAlPSB3aWxsIGZhaWwuCiAgICAgIG4gPSBsZW4gPiAyMDAwID8gMjAwMCA6IGxlbjsKICAgICAgbGVuIC09IG47CgogICAgICBkbyB7CiAgICAgICAgczEgPSAoczEgKyBidWZbcG9zKytdKSB8MDsKICAgICAgICBzMiA9IChzMiArIHMxKSB8MDsKICAgICAgfSB3aGlsZSAoLS1uKTsKCiAgICAgIHMxICU9IDY1NTIxOwogICAgICBzMiAlPSA2NTUyMTsKICAgIH0KCiAgICByZXR1cm4gKHMxIHwgKHMyIDw8IDE2KSkgfDA7CiAgfTsKCgogIHZhciBhZGxlcjMyXzEgPSBhZGxlcjMyOwoKICAvLyBOb3RlOiB3ZSBjYW4ndCBnZXQgc2lnbmlmaWNhbnQgc3BlZWQgYm9vc3QgaGVyZS4KICAvLyBTbyB3cml0ZSBjb2RlIHRvIG1pbmltaXplIHNpemUgLSBubyBwcmVnZW5lcmF0ZWQgdGFibGVzCiAgLy8gYW5kIGFycmF5IHRvb2xzIGRlcGVuZGVuY2llcy4KCiAgLy8gKEMpIDE5OTUtMjAxMyBKZWFuLWxvdXAgR2FpbGx5IGFuZCBNYXJrIEFkbGVyCiAgLy8gKEMpIDIwMTQtMjAxNyBWaXRhbHkgUHV6cmluIGFuZCBBbmRyZXkgVHVwaXRzaW4KICAvLwogIC8vIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkCiAgLy8gd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCiAgLy8gYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KICAvLwogIC8vIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAogIC8vIGluY2x1ZGluZyBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucywgYW5kIHRvIGFsdGVyIGl0IGFuZCByZWRpc3RyaWJ1dGUgaXQKICAvLyBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6CiAgLy8KICAvLyAxLiBUaGUgb3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUgbWlzcmVwcmVzZW50ZWQ7IHlvdSBtdXN0IG5vdAogIC8vICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKICAvLyAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQogIC8vICAgYXBwcmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4KICAvLyAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQogIC8vICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgogIC8vIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCgogIC8vIFVzZSBvcmRpbmFyeSBhcnJheSwgc2luY2UgdW50eXBlZCBtYWtlcyBubyBib29zdCBoZXJlCiAgY29uc3QgbWFrZVRhYmxlID0gKCkgPT4gewogICAgbGV0IGMsIHRhYmxlID0gW107CgogICAgZm9yICh2YXIgbiA9IDA7IG4gPCAyNTY7IG4rKykgewogICAgICBjID0gbjsKICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCA4OyBrKyspIHsKICAgICAgICBjID0gKChjICYgMSkgPyAoMHhFREI4ODMyMCBeIChjID4+PiAxKSkgOiAoYyA+Pj4gMSkpOwogICAgICB9CiAgICAgIHRhYmxlW25dID0gYzsKICAgIH0KCiAgICByZXR1cm4gdGFibGU7CiAgfTsKCiAgLy8gQ3JlYXRlIHRhYmxlIG9uIGxvYWQuIEp1c3QgMjU1IHNpZ25lZCBsb25ncy4gTm90IGEgcHJvYmxlbS4KICBjb25zdCBjcmNUYWJsZSA9IG5ldyBVaW50MzJBcnJheShtYWtlVGFibGUoKSk7CgoKICBjb25zdCBjcmMzMiA9IChjcmMsIGJ1ZiwgbGVuLCBwb3MpID0+IHsKICAgIGNvbnN0IHQgPSBjcmNUYWJsZTsKICAgIGNvbnN0IGVuZCA9IHBvcyArIGxlbjsKCiAgICBjcmMgXj0gLTE7CgogICAgZm9yIChsZXQgaSA9IHBvczsgaSA8IGVuZDsgaSsrKSB7CiAgICAgIGNyYyA9IChjcmMgPj4+IDgpIF4gdFsoY3JjIF4gYnVmW2ldKSAmIDB4RkZdOwogICAgfQoKICAgIHJldHVybiAoY3JjIF4gKC0xKSk7IC8vID4+PiAwOwogIH07CgoKICB2YXIgY3JjMzJfMSA9IGNyYzMyOwoKICAvLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAvLyAoQykgMjAxNC0yMDE3IFZpdGFseSBQdXpyaW4gYW5kIEFuZHJleSBUdXBpdHNpbgogIC8vCiAgLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAvLyB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKICAvLyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogIC8vCiAgLy8gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCiAgLy8gaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogIC8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKICAvLwogIC8vIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQogIC8vICAgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpbiB0aGUgcHJvZHVjdCBkb2N1bWVudGF0aW9uIHdvdWxkIGJlCiAgLy8gICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogIC8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCiAgLy8gICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgLy8gMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KCiAgdmFyIG1lc3NhZ2VzID0gewogICAgMjogICAgICAnbmVlZCBkaWN0aW9uYXJ5JywgICAgIC8qIFpfTkVFRF9ESUNUICAgICAgIDIgICovCiAgICAxOiAgICAgICdzdHJlYW0gZW5kJywgICAgICAgICAgLyogWl9TVFJFQU1fRU5EICAgICAgMSAgKi8KICAgIDA6ICAgICAgJycsICAgICAgICAgICAgICAgICAgICAvKiBaX09LICAgICAgICAgICAgICAwICAqLwogICAgJy0xJzogICAnZmlsZSBlcnJvcicsICAgICAgICAgIC8qIFpfRVJSTk8gICAgICAgICAoLTEpICovCiAgICAnLTInOiAgICdzdHJlYW0gZXJyb3InLCAgICAgICAgLyogWl9TVFJFQU1fRVJST1IgICgtMikgKi8KICAgICctMyc6ICAgJ2RhdGEgZXJyb3InLCAgICAgICAgICAvKiBaX0RBVEFfRVJST1IgICAgKC0zKSAqLwogICAgJy00JzogICAnaW5zdWZmaWNpZW50IG1lbW9yeScsIC8qIFpfTUVNX0VSUk9SICAgICAoLTQpICovCiAgICAnLTUnOiAgICdidWZmZXIgZXJyb3InLCAgICAgICAgLyogWl9CVUZfRVJST1IgICAgICgtNSkgKi8KICAgICctNic6ICAgJ2luY29tcGF0aWJsZSB2ZXJzaW9uJyAvKiBaX1ZFUlNJT05fRVJST1IgKC02KSAqLwogIH07CgogIC8vIChDKSAxOTk1LTIwMTMgSmVhbi1sb3VwIEdhaWxseSBhbmQgTWFyayBBZGxlcgogIC8vIChDKSAyMDE0LTIwMTcgVml0YWx5IFB1enJpbiBhbmQgQW5kcmV5IFR1cGl0c2luCiAgLy8KICAvLyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAogIC8vIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogIC8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAgLy8KICAvLyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAvLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0CiAgLy8gZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgogIC8vCiAgLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKICAvLyAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgLy8gICBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291bGQgYmUKICAvLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCiAgLy8gMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCBhbmQgbXVzdCBub3QgYmUKICAvLyAgIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KICAvLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKICB2YXIgY29uc3RhbnRzJDIgPSB7CgogICAgLyogQWxsb3dlZCBmbHVzaCB2YWx1ZXM7IHNlZSBkZWZsYXRlKCkgYW5kIGluZmxhdGUoKSBiZWxvdyBmb3IgZGV0YWlscyAqLwogICAgWl9OT19GTFVTSDogICAgICAgICAwLAogICAgWl9QQVJUSUFMX0ZMVVNIOiAgICAxLAogICAgWl9TWU5DX0ZMVVNIOiAgICAgICAyLAogICAgWl9GVUxMX0ZMVVNIOiAgICAgICAzLAogICAgWl9GSU5JU0g6ICAgICAgICAgICA0LAogICAgWl9CTE9DSzogICAgICAgICAgICA1LAogICAgWl9UUkVFUzogICAgICAgICAgICA2LAoKICAgIC8qIFJldHVybiBjb2RlcyBmb3IgdGhlIGNvbXByZXNzaW9uL2RlY29tcHJlc3Npb24gZnVuY3Rpb25zLiBOZWdhdGl2ZSB2YWx1ZXMKICAgICogYXJlIGVycm9ycywgcG9zaXRpdmUgdmFsdWVzIGFyZSB1c2VkIGZvciBzcGVjaWFsIGJ1dCBub3JtYWwgZXZlbnRzLgogICAgKi8KICAgIFpfT0s6ICAgICAgICAgICAgICAgMCwKICAgIFpfU1RSRUFNX0VORDogICAgICAgMSwKICAgIFpfTkVFRF9ESUNUOiAgICAgICAgMiwKICAgIFpfRVJSTk86ICAgICAgICAgICAtMSwKICAgIFpfU1RSRUFNX0VSUk9SOiAgICAtMiwKICAgIFpfREFUQV9FUlJPUjogICAgICAtMywKICAgIFpfTUVNX0VSUk9SOiAgICAgICAtNCwKICAgIFpfQlVGX0VSUk9SOiAgICAgICAtNSwKICAgIC8vWl9WRVJTSU9OX0VSUk9SOiAtNiwKCiAgICAvKiBjb21wcmVzc2lvbiBsZXZlbHMgKi8KICAgIFpfTk9fQ09NUFJFU1NJT046ICAgICAgICAgMCwKICAgIFpfQkVTVF9TUEVFRDogICAgICAgICAgICAgMSwKICAgIFpfQkVTVF9DT01QUkVTU0lPTjogICAgICAgOSwKICAgIFpfREVGQVVMVF9DT01QUkVTU0lPTjogICAtMSwKCgogICAgWl9GSUxURVJFRDogICAgICAgICAgICAgICAxLAogICAgWl9IVUZGTUFOX09OTFk6ICAgICAgICAgICAyLAogICAgWl9STEU6ICAgICAgICAgICAgICAgICAgICAzLAogICAgWl9GSVhFRDogICAgICAgICAgICAgICAgICA0LAogICAgWl9ERUZBVUxUX1NUUkFURUdZOiAgICAgICAwLAoKICAgIC8qIFBvc3NpYmxlIHZhbHVlcyBvZiB0aGUgZGF0YV90eXBlIGZpZWxkICh0aG91Z2ggc2VlIGluZmxhdGUoKSkgKi8KICAgIFpfQklOQVJZOiAgICAgICAgICAgICAgICAgMCwKICAgIFpfVEVYVDogICAgICAgICAgICAgICAgICAgMSwKICAgIC8vWl9BU0NJSTogICAgICAgICAgICAgICAgMSwgLy8gPSBaX1RFWFQgKGRlcHJlY2F0ZWQpCiAgICBaX1VOS05PV046ICAgICAgICAgICAgICAgIDIsCgogICAgLyogVGhlIGRlZmxhdGUgY29tcHJlc3Npb24gbWV0aG9kICovCiAgICBaX0RFRkxBVEVEOiAgICAgICAgICAgICAgIDgKICAgIC8vWl9OVUxMOiAgICAgICAgICAgICAgICAgbnVsbCAvLyBVc2UgLTEgb3IgbnVsbCBpbmxpbmUsIGRlcGVuZGluZyBvbiB2YXIgdHlwZQogIH07CgogIC8vIChDKSAxOTk1LTIwMTMgSmVhbi1sb3VwIEdhaWxseSBhbmQgTWFyayBBZGxlcgogIC8vIChDKSAyMDE0LTIwMTcgVml0YWx5IFB1enJpbiBhbmQgQW5kcmV5IFR1cGl0c2luCiAgLy8KICAvLyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAogIC8vIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogIC8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAgLy8KICAvLyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAvLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0CiAgLy8gZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgogIC8vCiAgLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKICAvLyAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgLy8gICBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291bGQgYmUKICAvLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCiAgLy8gMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCBhbmQgbXVzdCBub3QgYmUKICAvLyAgIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KICAvLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKICBjb25zdCB7IF90cl9pbml0LCBfdHJfc3RvcmVkX2Jsb2NrLCBfdHJfZmx1c2hfYmxvY2ssIF90cl90YWxseSwgX3RyX2FsaWduIH0gPSB0cmVlczsKCgoKCiAgLyogUHVibGljIGNvbnN0YW50cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKICBjb25zdCB7CiAgICBaX05PX0ZMVVNIOiBaX05PX0ZMVVNIJDIsIFpfUEFSVElBTF9GTFVTSCwgWl9GVUxMX0ZMVVNIOiBaX0ZVTExfRkxVU0gkMSwgWl9GSU5JU0g6IFpfRklOSVNIJDMsIFpfQkxPQ0s6IFpfQkxPQ0skMSwKICAgIFpfT0s6IFpfT0skMywgWl9TVFJFQU1fRU5EOiBaX1NUUkVBTV9FTkQkMywgWl9TVFJFQU1fRVJST1I6IFpfU1RSRUFNX0VSUk9SJDIsIFpfREFUQV9FUlJPUjogWl9EQVRBX0VSUk9SJDIsIFpfQlVGX0VSUk9SOiBaX0JVRl9FUlJPUiQxLAogICAgWl9ERUZBVUxUX0NPTVBSRVNTSU9OOiBaX0RFRkFVTFRfQ09NUFJFU1NJT04kMSwKICAgIFpfRklMVEVSRUQsIFpfSFVGRk1BTl9PTkxZLCBaX1JMRSwgWl9GSVhFRCwgWl9ERUZBVUxUX1NUUkFURUdZOiBaX0RFRkFVTFRfU1RSQVRFR1kkMSwKICAgIFpfVU5LTk9XTiwKICAgIFpfREVGTEFURUQ6IFpfREVGTEFURUQkMgogIH0gPSBjb25zdGFudHMkMjsKCiAgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCgogIGNvbnN0IE1BWF9NRU1fTEVWRUwgPSA5OwogIC8qIE1heGltdW0gdmFsdWUgZm9yIG1lbUxldmVsIGluIGRlZmxhdGVJbml0MiAqLwogIGNvbnN0IE1BWF9XQklUUyQxID0gMTU7CiAgLyogMzJLIExaNzcgd2luZG93ICovCiAgY29uc3QgREVGX01FTV9MRVZFTCA9IDg7CgoKICBjb25zdCBMRU5HVEhfQ09ERVMgID0gMjk7CiAgLyogbnVtYmVyIG9mIGxlbmd0aCBjb2Rlcywgbm90IGNvdW50aW5nIHRoZSBzcGVjaWFsIEVORF9CTE9DSyBjb2RlICovCiAgY29uc3QgTElURVJBTFMgICAgICA9IDI1NjsKICAvKiBudW1iZXIgb2YgbGl0ZXJhbCBieXRlcyAwLi4yNTUgKi8KICBjb25zdCBMX0NPREVTICAgICAgID0gTElURVJBTFMgKyAxICsgTEVOR1RIX0NPREVTOwogIC8qIG51bWJlciBvZiBMaXRlcmFsIG9yIExlbmd0aCBjb2RlcywgaW5jbHVkaW5nIHRoZSBFTkRfQkxPQ0sgY29kZSAqLwogIGNvbnN0IERfQ09ERVMgICAgICAgPSAzMDsKICAvKiBudW1iZXIgb2YgZGlzdGFuY2UgY29kZXMgKi8KICBjb25zdCBCTF9DT0RFUyAgICAgID0gMTk7CiAgLyogbnVtYmVyIG9mIGNvZGVzIHVzZWQgdG8gdHJhbnNmZXIgdGhlIGJpdCBsZW5ndGhzICovCiAgY29uc3QgSEVBUF9TSVpFICAgICA9IDIgKiBMX0NPREVTICsgMTsKICAvKiBtYXhpbXVtIGhlYXAgc2l6ZSAqLwogIGNvbnN0IE1BWF9CSVRTICA9IDE1OwogIC8qIEFsbCBjb2RlcyBtdXN0IG5vdCBleGNlZWQgTUFYX0JJVFMgYml0cyAqLwoKICBjb25zdCBNSU5fTUFUQ0ggPSAzOwogIGNvbnN0IE1BWF9NQVRDSCA9IDI1ODsKICBjb25zdCBNSU5fTE9PS0FIRUFEID0gKE1BWF9NQVRDSCArIE1JTl9NQVRDSCArIDEpOwoKICBjb25zdCBQUkVTRVRfRElDVCA9IDB4MjA7CgogIGNvbnN0IElOSVRfU1RBVEUgPSA0MjsKICBjb25zdCBFWFRSQV9TVEFURSA9IDY5OwogIGNvbnN0IE5BTUVfU1RBVEUgPSA3MzsKICBjb25zdCBDT01NRU5UX1NUQVRFID0gOTE7CiAgY29uc3QgSENSQ19TVEFURSA9IDEwMzsKICBjb25zdCBCVVNZX1NUQVRFID0gMTEzOwogIGNvbnN0IEZJTklTSF9TVEFURSA9IDY2NjsKCiAgY29uc3QgQlNfTkVFRF9NT1JFICAgICAgPSAxOyAvKiBibG9jayBub3QgY29tcGxldGVkLCBuZWVkIG1vcmUgaW5wdXQgb3IgbW9yZSBvdXRwdXQgKi8KICBjb25zdCBCU19CTE9DS19ET05FICAgICA9IDI7IC8qIGJsb2NrIGZsdXNoIHBlcmZvcm1lZCAqLwogIGNvbnN0IEJTX0ZJTklTSF9TVEFSVEVEID0gMzsgLyogZmluaXNoIHN0YXJ0ZWQsIG5lZWQgb25seSBtb3JlIG91dHB1dCBhdCBuZXh0IGRlZmxhdGUgKi8KICBjb25zdCBCU19GSU5JU0hfRE9ORSAgICA9IDQ7IC8qIGZpbmlzaCBkb25lLCBhY2NlcHQgbm8gbW9yZSBpbnB1dCBvciBvdXRwdXQgKi8KCiAgY29uc3QgT1NfQ09ERSA9IDB4MDM7IC8vIFVuaXggOikgLiBEb24ndCBkZXRlY3QsIHVzZSB0aGlzIGRlZmF1bHQuCgogIGNvbnN0IGVyciA9IChzdHJtLCBlcnJvckNvZGUpID0+IHsKICAgIHN0cm0ubXNnID0gbWVzc2FnZXNbZXJyb3JDb2RlXTsKICAgIHJldHVybiBlcnJvckNvZGU7CiAgfTsKCiAgY29uc3QgcmFuayA9IChmKSA9PiB7CiAgICByZXR1cm4gKChmKSA8PCAxKSAtICgoZikgPiA0ID8gOSA6IDApOwogIH07CgogIGNvbnN0IHplcm8gPSAoYnVmKSA9PiB7CiAgICBsZXQgbGVuID0gYnVmLmxlbmd0aDsgd2hpbGUgKC0tbGVuID49IDApIHsgYnVmW2xlbl0gPSAwOyB9CiAgfTsKCgogIC8qIGVzbGludC1kaXNhYmxlIG5ldy1jYXAgKi8KICBsZXQgSEFTSF9aTElCID0gKHMsIHByZXYsIGRhdGEpID0+ICgocHJldiA8PCBzLmhhc2hfc2hpZnQpIF4gZGF0YSkgJiBzLmhhc2hfbWFzazsKICAvLyBUaGlzIGhhc2ggY2F1c2VzIGxlc3MgY29sbGlzaW9ucywgaHR0cHM6Ly9naXRodWIuY29tL25vZGVjYS9wYWtvL2lzc3Vlcy8xMzUKICAvLyBCdXQgYnJlYWtzIGJpbmFyeSBjb21wYXRpYmlsaXR5CiAgLy9sZXQgSEFTSF9GQVNUID0gKHMsIHByZXYsIGRhdGEpID0+ICgocHJldiA8PCA4KSArIChwcmV2ID4+IDgpICsgKGRhdGEgPDwgNCkpICYgcy5oYXNoX21hc2s7CiAgbGV0IEhBU0ggPSBIQVNIX1pMSUI7CgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBGbHVzaCBhcyBtdWNoIHBlbmRpbmcgb3V0cHV0IGFzIHBvc3NpYmxlLiBBbGwgZGVmbGF0ZSgpIG91dHB1dCBnb2VzCiAgICogdGhyb3VnaCB0aGlzIGZ1bmN0aW9uIHNvIHNvbWUgYXBwbGljYXRpb25zIG1heSB3aXNoIHRvIG1vZGlmeSBpdAogICAqIHRvIGF2b2lkIGFsbG9jYXRpbmcgYSBsYXJnZSBzdHJtLT5vdXRwdXQgYnVmZmVyIGFuZCBjb3B5aW5nIGludG8gaXQuCiAgICogKFNlZSBhbHNvIHJlYWRfYnVmKCkpLgogICAqLwogIGNvbnN0IGZsdXNoX3BlbmRpbmcgPSAoc3RybSkgPT4gewogICAgY29uc3QgcyA9IHN0cm0uc3RhdGU7CgogICAgLy9fdHJfZmx1c2hfYml0cyhzKTsKICAgIGxldCBsZW4gPSBzLnBlbmRpbmc7CiAgICBpZiAobGVuID4gc3RybS5hdmFpbF9vdXQpIHsKICAgICAgbGVuID0gc3RybS5hdmFpbF9vdXQ7CiAgICB9CiAgICBpZiAobGVuID09PSAwKSB7IHJldHVybjsgfQoKICAgIHN0cm0ub3V0cHV0LnNldChzLnBlbmRpbmdfYnVmLnN1YmFycmF5KHMucGVuZGluZ19vdXQsIHMucGVuZGluZ19vdXQgKyBsZW4pLCBzdHJtLm5leHRfb3V0KTsKICAgIHN0cm0ubmV4dF9vdXQgKz0gbGVuOwogICAgcy5wZW5kaW5nX291dCArPSBsZW47CiAgICBzdHJtLnRvdGFsX291dCArPSBsZW47CiAgICBzdHJtLmF2YWlsX291dCAtPSBsZW47CiAgICBzLnBlbmRpbmcgLT0gbGVuOwogICAgaWYgKHMucGVuZGluZyA9PT0gMCkgewogICAgICBzLnBlbmRpbmdfb3V0ID0gMDsKICAgIH0KICB9OwoKCiAgY29uc3QgZmx1c2hfYmxvY2tfb25seSA9IChzLCBsYXN0KSA9PiB7CiAgICBfdHJfZmx1c2hfYmxvY2socywgKHMuYmxvY2tfc3RhcnQgPj0gMCA/IHMuYmxvY2tfc3RhcnQgOiAtMSksIHMuc3Ryc3RhcnQgLSBzLmJsb2NrX3N0YXJ0LCBsYXN0KTsKICAgIHMuYmxvY2tfc3RhcnQgPSBzLnN0cnN0YXJ0OwogICAgZmx1c2hfcGVuZGluZyhzLnN0cm0pOwogIH07CgoKICBjb25zdCBwdXRfYnl0ZSA9IChzLCBiKSA9PiB7CiAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9IGI7CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBQdXQgYSBzaG9ydCBpbiB0aGUgcGVuZGluZyBidWZmZXIuIFRoZSAxNi1iaXQgdmFsdWUgaXMgcHV0IGluIE1TQiBvcmRlci4KICAgKiBJTiBhc3NlcnRpb246IHRoZSBzdHJlYW0gc3RhdGUgaXMgY29ycmVjdCBhbmQgdGhlcmUgaXMgZW5vdWdoIHJvb20gaW4KICAgKiBwZW5kaW5nX2J1Zi4KICAgKi8KICBjb25zdCBwdXRTaG9ydE1TQiA9IChzLCBiKSA9PiB7CgogICAgLy8gIHB1dF9ieXRlKHMsIChCeXRlKShiID4+IDgpKTsKICAvLyAgcHV0X2J5dGUocywgKEJ5dGUpKGIgJiAweGZmKSk7CiAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9IChiID4+PiA4KSAmIDB4ZmY7CiAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9IGIgJiAweGZmOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBSZWFkIGEgbmV3IGJ1ZmZlciBmcm9tIHRoZSBjdXJyZW50IGlucHV0IHN0cmVhbSwgdXBkYXRlIHRoZSBhZGxlcjMyCiAgICogYW5kIHRvdGFsIG51bWJlciBvZiBieXRlcyByZWFkLiAgQWxsIGRlZmxhdGUoKSBpbnB1dCBnb2VzIHRocm91Z2gKICAgKiB0aGlzIGZ1bmN0aW9uIHNvIHNvbWUgYXBwbGljYXRpb25zIG1heSB3aXNoIHRvIG1vZGlmeSBpdCB0byBhdm9pZAogICAqIGFsbG9jYXRpbmcgYSBsYXJnZSBzdHJtLT5pbnB1dCBidWZmZXIgYW5kIGNvcHlpbmcgZnJvbSBpdC4KICAgKiAoU2VlIGFsc28gZmx1c2hfcGVuZGluZygpKS4KICAgKi8KICBjb25zdCByZWFkX2J1ZiA9IChzdHJtLCBidWYsIHN0YXJ0LCBzaXplKSA9PiB7CgogICAgbGV0IGxlbiA9IHN0cm0uYXZhaWxfaW47CgogICAgaWYgKGxlbiA+IHNpemUpIHsgbGVuID0gc2l6ZTsgfQogICAgaWYgKGxlbiA9PT0gMCkgeyByZXR1cm4gMDsgfQoKICAgIHN0cm0uYXZhaWxfaW4gLT0gbGVuOwoKICAgIC8vIHptZW1jcHkoYnVmLCBzdHJtLT5uZXh0X2luLCBsZW4pOwogICAgYnVmLnNldChzdHJtLmlucHV0LnN1YmFycmF5KHN0cm0ubmV4dF9pbiwgc3RybS5uZXh0X2luICsgbGVuKSwgc3RhcnQpOwogICAgaWYgKHN0cm0uc3RhdGUud3JhcCA9PT0gMSkgewogICAgICBzdHJtLmFkbGVyID0gYWRsZXIzMl8xKHN0cm0uYWRsZXIsIGJ1ZiwgbGVuLCBzdGFydCk7CiAgICB9CgogICAgZWxzZSBpZiAoc3RybS5zdGF0ZS53cmFwID09PSAyKSB7CiAgICAgIHN0cm0uYWRsZXIgPSBjcmMzMl8xKHN0cm0uYWRsZXIsIGJ1ZiwgbGVuLCBzdGFydCk7CiAgICB9CgogICAgc3RybS5uZXh0X2luICs9IGxlbjsKICAgIHN0cm0udG90YWxfaW4gKz0gbGVuOwoKICAgIHJldHVybiBsZW47CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIFNldCBtYXRjaF9zdGFydCB0byB0aGUgbG9uZ2VzdCBtYXRjaCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gc3RyaW5nIGFuZAogICAqIHJldHVybiBpdHMgbGVuZ3RoLiBNYXRjaGVzIHNob3J0ZXIgb3IgZXF1YWwgdG8gcHJldl9sZW5ndGggYXJlIGRpc2NhcmRlZCwKICAgKiBpbiB3aGljaCBjYXNlIHRoZSByZXN1bHQgaXMgZXF1YWwgdG8gcHJldl9sZW5ndGggYW5kIG1hdGNoX3N0YXJ0IGlzCiAgICogZ2FyYmFnZS4KICAgKiBJTiBhc3NlcnRpb25zOiBjdXJfbWF0Y2ggaXMgdGhlIGhlYWQgb2YgdGhlIGhhc2ggY2hhaW4gZm9yIHRoZSBjdXJyZW50CiAgICogICBzdHJpbmcgKHN0cnN0YXJ0KSBhbmQgaXRzIGRpc3RhbmNlIGlzIDw9IE1BWF9ESVNULCBhbmQgcHJldl9sZW5ndGggPj0gMQogICAqIE9VVCBhc3NlcnRpb246IHRoZSBtYXRjaCBsZW5ndGggaXMgbm90IGdyZWF0ZXIgdGhhbiBzLT5sb29rYWhlYWQuCiAgICovCiAgY29uc3QgbG9uZ2VzdF9tYXRjaCA9IChzLCBjdXJfbWF0Y2gpID0+IHsKCiAgICBsZXQgY2hhaW5fbGVuZ3RoID0gcy5tYXhfY2hhaW5fbGVuZ3RoOyAgICAgIC8qIG1heCBoYXNoIGNoYWluIGxlbmd0aCAqLwogICAgbGV0IHNjYW4gPSBzLnN0cnN0YXJ0OyAvKiBjdXJyZW50IHN0cmluZyAqLwogICAgbGV0IG1hdGNoOyAgICAgICAgICAgICAgICAgICAgICAgLyogbWF0Y2hlZCBzdHJpbmcgKi8KICAgIGxldCBsZW47ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbGVuZ3RoIG9mIGN1cnJlbnQgbWF0Y2ggKi8KICAgIGxldCBiZXN0X2xlbiA9IHMucHJldl9sZW5ndGg7ICAgICAgICAgICAgICAvKiBiZXN0IG1hdGNoIGxlbmd0aCBzbyBmYXIgKi8KICAgIGxldCBuaWNlX21hdGNoID0gcy5uaWNlX21hdGNoOyAgICAgICAgICAgICAvKiBzdG9wIGlmIG1hdGNoIGxvbmcgZW5vdWdoICovCiAgICBjb25zdCBsaW1pdCA9IChzLnN0cnN0YXJ0ID4gKHMud19zaXplIC0gTUlOX0xPT0tBSEVBRCkpID8KICAgICAgICBzLnN0cnN0YXJ0IC0gKHMud19zaXplIC0gTUlOX0xPT0tBSEVBRCkgOiAwLypOSUwqLzsKCiAgICBjb25zdCBfd2luID0gcy53aW5kb3c7IC8vIHNob3J0Y3V0CgogICAgY29uc3Qgd21hc2sgPSBzLndfbWFzazsKICAgIGNvbnN0IHByZXYgID0gcy5wcmV2OwoKICAgIC8qIFN0b3Agd2hlbiBjdXJfbWF0Y2ggYmVjb21lcyA8PSBsaW1pdC4gVG8gc2ltcGxpZnkgdGhlIGNvZGUsCiAgICAgKiB3ZSBwcmV2ZW50IG1hdGNoZXMgd2l0aCB0aGUgc3RyaW5nIG9mIHdpbmRvdyBpbmRleCAwLgogICAgICovCgogICAgY29uc3Qgc3RyZW5kID0gcy5zdHJzdGFydCArIE1BWF9NQVRDSDsKICAgIGxldCBzY2FuX2VuZDEgID0gX3dpbltzY2FuICsgYmVzdF9sZW4gLSAxXTsKICAgIGxldCBzY2FuX2VuZCAgID0gX3dpbltzY2FuICsgYmVzdF9sZW5dOwoKICAgIC8qIFRoZSBjb2RlIGlzIG9wdGltaXplZCBmb3IgSEFTSF9CSVRTID49IDggYW5kIE1BWF9NQVRDSC0yIG11bHRpcGxlIG9mIDE2LgogICAgICogSXQgaXMgZWFzeSB0byBnZXQgcmlkIG9mIHRoaXMgb3B0aW1pemF0aW9uIGlmIG5lY2Vzc2FyeS4KICAgICAqLwogICAgLy8gQXNzZXJ0KHMtPmhhc2hfYml0cyA+PSA4ICYmIE1BWF9NQVRDSCA9PSAyNTgsICJDb2RlIHRvbyBjbGV2ZXIiKTsKCiAgICAvKiBEbyBub3Qgd2FzdGUgdG9vIG11Y2ggdGltZSBpZiB3ZSBhbHJlYWR5IGhhdmUgYSBnb29kIG1hdGNoOiAqLwogICAgaWYgKHMucHJldl9sZW5ndGggPj0gcy5nb29kX21hdGNoKSB7CiAgICAgIGNoYWluX2xlbmd0aCA+Pj0gMjsKICAgIH0KICAgIC8qIERvIG5vdCBsb29rIGZvciBtYXRjaGVzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBpbnB1dC4gVGhpcyBpcyBuZWNlc3NhcnkKICAgICAqIHRvIG1ha2UgZGVmbGF0ZSBkZXRlcm1pbmlzdGljLgogICAgICovCiAgICBpZiAobmljZV9tYXRjaCA+IHMubG9va2FoZWFkKSB7IG5pY2VfbWF0Y2ggPSBzLmxvb2thaGVhZDsgfQoKICAgIC8vIEFzc2VydCgodWxnKXMtPnN0cnN0YXJ0IDw9IHMtPndpbmRvd19zaXplLU1JTl9MT09LQUhFQUQsICJuZWVkIGxvb2thaGVhZCIpOwoKICAgIGRvIHsKICAgICAgLy8gQXNzZXJ0KGN1cl9tYXRjaCA8IHMtPnN0cnN0YXJ0LCAibm8gZnV0dXJlIik7CiAgICAgIG1hdGNoID0gY3VyX21hdGNoOwoKICAgICAgLyogU2tpcCB0byBuZXh0IG1hdGNoIGlmIHRoZSBtYXRjaCBsZW5ndGggY2Fubm90IGluY3JlYXNlCiAgICAgICAqIG9yIGlmIHRoZSBtYXRjaCBsZW5ndGggaXMgbGVzcyB0aGFuIDIuICBOb3RlIHRoYXQgdGhlIGNoZWNrcyBiZWxvdwogICAgICAgKiBmb3IgaW5zdWZmaWNpZW50IGxvb2thaGVhZCBvbmx5IG9jY3VyIG9jY2FzaW9uYWxseSBmb3IgcGVyZm9ybWFuY2UKICAgICAgICogcmVhc29ucy4gIFRoZXJlZm9yZSB1bmluaXRpYWxpemVkIG1lbW9yeSB3aWxsIGJlIGFjY2Vzc2VkLCBhbmQKICAgICAgICogY29uZGl0aW9uYWwganVtcHMgd2lsbCBiZSBtYWRlIHRoYXQgZGVwZW5kIG9uIHRob3NlIHZhbHVlcy4KICAgICAgICogSG93ZXZlciB0aGUgbGVuZ3RoIG9mIHRoZSBtYXRjaCBpcyBsaW1pdGVkIHRvIHRoZSBsb29rYWhlYWQsIHNvCiAgICAgICAqIHRoZSBvdXRwdXQgb2YgZGVmbGF0ZSBpcyBub3QgYWZmZWN0ZWQgYnkgdGhlIHVuaW5pdGlhbGl6ZWQgdmFsdWVzLgogICAgICAgKi8KCiAgICAgIGlmIChfd2luW21hdGNoICsgYmVzdF9sZW5dICAgICAhPT0gc2Nhbl9lbmQgIHx8CiAgICAgICAgICBfd2luW21hdGNoICsgYmVzdF9sZW4gLSAxXSAhPT0gc2Nhbl9lbmQxIHx8CiAgICAgICAgICBfd2luW21hdGNoXSAgICAgICAgICAgICAgICAhPT0gX3dpbltzY2FuXSB8fAogICAgICAgICAgX3dpblsrK21hdGNoXSAgICAgICAgICAgICAgIT09IF93aW5bc2NhbiArIDFdKSB7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIC8qIFRoZSBjaGVjayBhdCBiZXN0X2xlbi0xIGNhbiBiZSByZW1vdmVkIGJlY2F1c2UgaXQgd2lsbCBiZSBtYWRlCiAgICAgICAqIGFnYWluIGxhdGVyLiAoVGhpcyBoZXVyaXN0aWMgaXMgbm90IGFsd2F5cyBhIHdpbi4pCiAgICAgICAqIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY29tcGFyZSBzY2FuWzJdIGFuZCBtYXRjaFsyXSBzaW5jZSB0aGV5CiAgICAgICAqIGFyZSBhbHdheXMgZXF1YWwgd2hlbiB0aGUgb3RoZXIgYnl0ZXMgbWF0Y2gsIGdpdmVuIHRoYXQKICAgICAgICogdGhlIGhhc2gga2V5cyBhcmUgZXF1YWwgYW5kIHRoYXQgSEFTSF9CSVRTID49IDguCiAgICAgICAqLwogICAgICBzY2FuICs9IDI7CiAgICAgIG1hdGNoKys7CiAgICAgIC8vIEFzc2VydCgqc2NhbiA9PSAqbWF0Y2gsICJtYXRjaFsyXT8iKTsKCiAgICAgIC8qIFdlIGNoZWNrIGZvciBpbnN1ZmZpY2llbnQgbG9va2FoZWFkIG9ubHkgZXZlcnkgOHRoIGNvbXBhcmlzb247CiAgICAgICAqIHRoZSAyNTZ0aCBjaGVjayB3aWxsIGJlIG1hZGUgYXQgc3Ryc3RhcnQrMjU4LgogICAgICAgKi8KICAgICAgZG8gewogICAgICAgIC8qanNoaW50IG5vZW1wdHk6ZmFsc2UqLwogICAgICB9IHdoaWxlIChfd2luWysrc2Nhbl0gPT09IF93aW5bKyttYXRjaF0gJiYgX3dpblsrK3NjYW5dID09PSBfd2luWysrbWF0Y2hdICYmCiAgICAgICAgICAgICAgIF93aW5bKytzY2FuXSA9PT0gX3dpblsrK21hdGNoXSAmJiBfd2luWysrc2Nhbl0gPT09IF93aW5bKyttYXRjaF0gJiYKICAgICAgICAgICAgICAgX3dpblsrK3NjYW5dID09PSBfd2luWysrbWF0Y2hdICYmIF93aW5bKytzY2FuXSA9PT0gX3dpblsrK21hdGNoXSAmJgogICAgICAgICAgICAgICBfd2luWysrc2Nhbl0gPT09IF93aW5bKyttYXRjaF0gJiYgX3dpblsrK3NjYW5dID09PSBfd2luWysrbWF0Y2hdICYmCiAgICAgICAgICAgICAgIHNjYW4gPCBzdHJlbmQpOwoKICAgICAgLy8gQXNzZXJ0KHNjYW4gPD0gcy0+d2luZG93Kyh1bnNpZ25lZCkocy0+d2luZG93X3NpemUtMSksICJ3aWxkIHNjYW4iKTsKCiAgICAgIGxlbiA9IE1BWF9NQVRDSCAtIChzdHJlbmQgLSBzY2FuKTsKICAgICAgc2NhbiA9IHN0cmVuZCAtIE1BWF9NQVRDSDsKCiAgICAgIGlmIChsZW4gPiBiZXN0X2xlbikgewogICAgICAgIHMubWF0Y2hfc3RhcnQgPSBjdXJfbWF0Y2g7CiAgICAgICAgYmVzdF9sZW4gPSBsZW47CiAgICAgICAgaWYgKGxlbiA+PSBuaWNlX21hdGNoKSB7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgc2Nhbl9lbmQxICA9IF93aW5bc2NhbiArIGJlc3RfbGVuIC0gMV07CiAgICAgICAgc2Nhbl9lbmQgICA9IF93aW5bc2NhbiArIGJlc3RfbGVuXTsKICAgICAgfQogICAgfSB3aGlsZSAoKGN1cl9tYXRjaCA9IHByZXZbY3VyX21hdGNoICYgd21hc2tdKSA+IGxpbWl0ICYmIC0tY2hhaW5fbGVuZ3RoICE9PSAwKTsKCiAgICBpZiAoYmVzdF9sZW4gPD0gcy5sb29rYWhlYWQpIHsKICAgICAgcmV0dXJuIGJlc3RfbGVuOwogICAgfQogICAgcmV0dXJuIHMubG9va2FoZWFkOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBGaWxsIHRoZSB3aW5kb3cgd2hlbiB0aGUgbG9va2FoZWFkIGJlY29tZXMgaW5zdWZmaWNpZW50LgogICAqIFVwZGF0ZXMgc3Ryc3RhcnQgYW5kIGxvb2thaGVhZC4KICAgKgogICAqIElOIGFzc2VydGlvbjogbG9va2FoZWFkIDwgTUlOX0xPT0tBSEVBRAogICAqIE9VVCBhc3NlcnRpb25zOiBzdHJzdGFydCA8PSB3aW5kb3dfc2l6ZS1NSU5fTE9PS0FIRUFECiAgICogICAgQXQgbGVhc3Qgb25lIGJ5dGUgaGFzIGJlZW4gcmVhZCwgb3IgYXZhaWxfaW4gPT0gMDsgcmVhZHMgYXJlCiAgICogICAgcGVyZm9ybWVkIGZvciBhdCBsZWFzdCB0d28gYnl0ZXMgKHJlcXVpcmVkIGZvciB0aGUgemlwIHRyYW5zbGF0ZV9lb2wKICAgKiAgICBvcHRpb24gLS0gbm90IHN1cHBvcnRlZCBoZXJlKS4KICAgKi8KICBjb25zdCBmaWxsX3dpbmRvdyA9IChzKSA9PiB7CgogICAgY29uc3QgX3dfc2l6ZSA9IHMud19zaXplOwogICAgbGV0IHAsIG4sIG0sIG1vcmUsIHN0cjsKCiAgICAvL0Fzc2VydChzLT5sb29rYWhlYWQgPCBNSU5fTE9PS0FIRUFELCAiYWxyZWFkeSBlbm91Z2ggbG9va2FoZWFkIik7CgogICAgZG8gewogICAgICBtb3JlID0gcy53aW5kb3dfc2l6ZSAtIHMubG9va2FoZWFkIC0gcy5zdHJzdGFydDsKCiAgICAgIC8vIEpTIGludHMgaGF2ZSAzMiBiaXQsIGJsb2NrIGJlbG93IG5vdCBuZWVkZWQKICAgICAgLyogRGVhbCB3aXRoICFAIyQlIDY0SyBsaW1pdDogKi8KICAgICAgLy9pZiAoc2l6ZW9mKGludCkgPD0gMikgewogICAgICAvLyAgICBpZiAobW9yZSA9PSAwICYmIHMtPnN0cnN0YXJ0ID09IDAgJiYgcy0+bG9va2FoZWFkID09IDApIHsKICAgICAgLy8gICAgICAgIG1vcmUgPSB3c2l6ZTsKICAgICAgLy8KICAgICAgLy8gIH0gZWxzZSBpZiAobW9yZSA9PSAodW5zaWduZWQpKC0xKSkgewogICAgICAvLyAgICAgICAgLyogVmVyeSB1bmxpa2VseSwgYnV0IHBvc3NpYmxlIG9uIDE2IGJpdCBtYWNoaW5lIGlmCiAgICAgIC8vICAgICAgICAgKiBzdHJzdGFydCA9PSAwICYmIGxvb2thaGVhZCA9PSAxIChpbnB1dCBkb25lIGEgYnl0ZSBhdCB0aW1lKQogICAgICAvLyAgICAgICAgICovCiAgICAgIC8vICAgICAgICBtb3JlLS07CiAgICAgIC8vICAgIH0KICAgICAgLy99CgoKICAgICAgLyogSWYgdGhlIHdpbmRvdyBpcyBhbG1vc3QgZnVsbCBhbmQgdGhlcmUgaXMgaW5zdWZmaWNpZW50IGxvb2thaGVhZCwKICAgICAgICogbW92ZSB0aGUgdXBwZXIgaGFsZiB0byB0aGUgbG93ZXIgb25lIHRvIG1ha2Ugcm9vbSBpbiB0aGUgdXBwZXIgaGFsZi4KICAgICAgICovCiAgICAgIGlmIChzLnN0cnN0YXJ0ID49IF93X3NpemUgKyAoX3dfc2l6ZSAtIE1JTl9MT09LQUhFQUQpKSB7CgogICAgICAgIHMud2luZG93LnNldChzLndpbmRvdy5zdWJhcnJheShfd19zaXplLCBfd19zaXplICsgX3dfc2l6ZSksIDApOwogICAgICAgIHMubWF0Y2hfc3RhcnQgLT0gX3dfc2l6ZTsKICAgICAgICBzLnN0cnN0YXJ0IC09IF93X3NpemU7CiAgICAgICAgLyogd2Ugbm93IGhhdmUgc3Ryc3RhcnQgPj0gTUFYX0RJU1QgKi8KICAgICAgICBzLmJsb2NrX3N0YXJ0IC09IF93X3NpemU7CgogICAgICAgIC8qIFNsaWRlIHRoZSBoYXNoIHRhYmxlIChjb3VsZCBiZSBhdm9pZGVkIHdpdGggMzIgYml0IHZhbHVlcwogICAgICAgICBhdCB0aGUgZXhwZW5zZSBvZiBtZW1vcnkgdXNhZ2UpLiBXZSBzbGlkZSBldmVuIHdoZW4gbGV2ZWwgPT0gMAogICAgICAgICB0byBrZWVwIHRoZSBoYXNoIHRhYmxlIGNvbnNpc3RlbnQgaWYgd2Ugc3dpdGNoIGJhY2sgdG8gbGV2ZWwgPiAwCiAgICAgICAgIGxhdGVyLiAoVXNpbmcgbGV2ZWwgMCBwZXJtYW5lbnRseSBpcyBub3QgYW4gb3B0aW1hbCB1c2FnZSBvZgogICAgICAgICB6bGliLCBzbyB3ZSBkb24ndCBjYXJlIGFib3V0IHRoaXMgcGF0aG9sb2dpY2FsIGNhc2UuKQogICAgICAgICAqLwoKICAgICAgICBuID0gcy5oYXNoX3NpemU7CiAgICAgICAgcCA9IG47CgogICAgICAgIGRvIHsKICAgICAgICAgIG0gPSBzLmhlYWRbLS1wXTsKICAgICAgICAgIHMuaGVhZFtwXSA9IChtID49IF93X3NpemUgPyBtIC0gX3dfc2l6ZSA6IDApOwogICAgICAgIH0gd2hpbGUgKC0tbik7CgogICAgICAgIG4gPSBfd19zaXplOwogICAgICAgIHAgPSBuOwoKICAgICAgICBkbyB7CiAgICAgICAgICBtID0gcy5wcmV2Wy0tcF07CiAgICAgICAgICBzLnByZXZbcF0gPSAobSA+PSBfd19zaXplID8gbSAtIF93X3NpemUgOiAwKTsKICAgICAgICAgIC8qIElmIG4gaXMgbm90IG9uIGFueSBoYXNoIGNoYWluLCBwcmV2W25dIGlzIGdhcmJhZ2UgYnV0CiAgICAgICAgICAgKiBpdHMgdmFsdWUgd2lsbCBuZXZlciBiZSB1c2VkLgogICAgICAgICAgICovCiAgICAgICAgfSB3aGlsZSAoLS1uKTsKCiAgICAgICAgbW9yZSArPSBfd19zaXplOwogICAgICB9CiAgICAgIGlmIChzLnN0cm0uYXZhaWxfaW4gPT09IDApIHsKICAgICAgICBicmVhazsKICAgICAgfQoKICAgICAgLyogSWYgdGhlcmUgd2FzIG5vIHNsaWRpbmc6CiAgICAgICAqICAgIHN0cnN0YXJ0IDw9IFdTSVpFK01BWF9ESVNULTEgJiYgbG9va2FoZWFkIDw9IE1JTl9MT09LQUhFQUQgLSAxICYmCiAgICAgICAqICAgIG1vcmUgPT0gd2luZG93X3NpemUgLSBsb29rYWhlYWQgLSBzdHJzdGFydAogICAgICAgKiA9PiBtb3JlID49IHdpbmRvd19zaXplIC0gKE1JTl9MT09LQUhFQUQtMSArIFdTSVpFICsgTUFYX0RJU1QtMSkKICAgICAgICogPT4gbW9yZSA+PSB3aW5kb3dfc2l6ZSAtIDIqV1NJWkUgKyAyCiAgICAgICAqIEluIHRoZSBCSUdfTUVNIG9yIE1NQVAgY2FzZSAobm90IHlldCBzdXBwb3J0ZWQpLAogICAgICAgKiAgIHdpbmRvd19zaXplID09IGlucHV0X3NpemUgKyBNSU5fTE9PS0FIRUFEICAmJgogICAgICAgKiAgIHN0cnN0YXJ0ICsgcy0+bG9va2FoZWFkIDw9IGlucHV0X3NpemUgPT4gbW9yZSA+PSBNSU5fTE9PS0FIRUFELgogICAgICAgKiBPdGhlcndpc2UsIHdpbmRvd19zaXplID09IDIqV1NJWkUgc28gbW9yZSA+PSAyLgogICAgICAgKiBJZiB0aGVyZSB3YXMgc2xpZGluZywgbW9yZSA+PSBXU0laRS4gU28gaW4gYWxsIGNhc2VzLCBtb3JlID49IDIuCiAgICAgICAqLwogICAgICAvL0Fzc2VydChtb3JlID49IDIsICJtb3JlIDwgMiIpOwogICAgICBuID0gcmVhZF9idWYocy5zdHJtLCBzLndpbmRvdywgcy5zdHJzdGFydCArIHMubG9va2FoZWFkLCBtb3JlKTsKICAgICAgcy5sb29rYWhlYWQgKz0gbjsKCiAgICAgIC8qIEluaXRpYWxpemUgdGhlIGhhc2ggdmFsdWUgbm93IHRoYXQgd2UgaGF2ZSBzb21lIGlucHV0OiAqLwogICAgICBpZiAocy5sb29rYWhlYWQgKyBzLmluc2VydCA+PSBNSU5fTUFUQ0gpIHsKICAgICAgICBzdHIgPSBzLnN0cnN0YXJ0IC0gcy5pbnNlcnQ7CiAgICAgICAgcy5pbnNfaCA9IHMud2luZG93W3N0cl07CgogICAgICAgIC8qIFVQREFURV9IQVNIKHMsIHMtPmluc19oLCBzLT53aW5kb3dbc3RyICsgMV0pOyAqLwogICAgICAgIHMuaW5zX2ggPSBIQVNIKHMsIHMuaW5zX2gsIHMud2luZG93W3N0ciArIDFdKTsKICAvLyNpZiBNSU5fTUFUQ0ggIT0gMwogIC8vICAgICAgICBDYWxsIHVwZGF0ZV9oYXNoKCkgTUlOX01BVENILTMgbW9yZSB0aW1lcwogIC8vI2VuZGlmCiAgICAgICAgd2hpbGUgKHMuaW5zZXJ0KSB7CiAgICAgICAgICAvKiBVUERBVEVfSEFTSChzLCBzLT5pbnNfaCwgcy0+d2luZG93W3N0ciArIE1JTl9NQVRDSC0xXSk7ICovCiAgICAgICAgICBzLmluc19oID0gSEFTSChzLCBzLmluc19oLCBzLndpbmRvd1tzdHIgKyBNSU5fTUFUQ0ggLSAxXSk7CgogICAgICAgICAgcy5wcmV2W3N0ciAmIHMud19tYXNrXSA9IHMuaGVhZFtzLmluc19oXTsKICAgICAgICAgIHMuaGVhZFtzLmluc19oXSA9IHN0cjsKICAgICAgICAgIHN0cisrOwogICAgICAgICAgcy5pbnNlcnQtLTsKICAgICAgICAgIGlmIChzLmxvb2thaGVhZCArIHMuaW5zZXJ0IDwgTUlOX01BVENIKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICAvKiBJZiB0aGUgd2hvbGUgaW5wdXQgaGFzIGxlc3MgdGhhbiBNSU5fTUFUQ0ggYnl0ZXMsIGluc19oIGlzIGdhcmJhZ2UsCiAgICAgICAqIGJ1dCB0aGlzIGlzIG5vdCBpbXBvcnRhbnQgc2luY2Ugb25seSBsaXRlcmFsIGJ5dGVzIHdpbGwgYmUgZW1pdHRlZC4KICAgICAgICovCgogICAgfSB3aGlsZSAocy5sb29rYWhlYWQgPCBNSU5fTE9PS0FIRUFEICYmIHMuc3RybS5hdmFpbF9pbiAhPT0gMCk7CgogICAgLyogSWYgdGhlIFdJTl9JTklUIGJ5dGVzIGFmdGVyIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgZGF0YSBoYXZlIG5ldmVyIGJlZW4KICAgICAqIHdyaXR0ZW4sIHRoZW4gemVybyB0aG9zZSBieXRlcyBpbiBvcmRlciB0byBhdm9pZCBtZW1vcnkgY2hlY2sgcmVwb3J0cyBvZgogICAgICogdGhlIHVzZSBvZiB1bmluaXRpYWxpemVkIChvciB1bmluaXRpYWxpc2VkIGFzIEp1bGlhbiB3cml0ZXMpIGJ5dGVzIGJ5CiAgICAgKiB0aGUgbG9uZ2VzdCBtYXRjaCByb3V0aW5lcy4gIFVwZGF0ZSB0aGUgaGlnaCB3YXRlciBtYXJrIGZvciB0aGUgbmV4dAogICAgICogdGltZSB0aHJvdWdoIGhlcmUuICBXSU5fSU5JVCBpcyBzZXQgdG8gTUFYX01BVENIIHNpbmNlIHRoZSBsb25nZXN0IG1hdGNoCiAgICAgKiByb3V0aW5lcyBhbGxvdyBzY2FubmluZyB0byBzdHJzdGFydCArIE1BWF9NQVRDSCwgaWdub3JpbmcgbG9va2FoZWFkLgogICAgICovCiAgLy8gIGlmIChzLmhpZ2hfd2F0ZXIgPCBzLndpbmRvd19zaXplKSB7CiAgLy8gICAgY29uc3QgY3VyciA9IHMuc3Ryc3RhcnQgKyBzLmxvb2thaGVhZDsKICAvLyAgICBsZXQgaW5pdCA9IDA7CiAgLy8KICAvLyAgICBpZiAocy5oaWdoX3dhdGVyIDwgY3VycikgewogIC8vICAgICAgLyogUHJldmlvdXMgaGlnaCB3YXRlciBtYXJrIGJlbG93IGN1cnJlbnQgZGF0YSAtLSB6ZXJvIFdJTl9JTklUCiAgLy8gICAgICAgKiBieXRlcyBvciB1cCB0byBlbmQgb2Ygd2luZG93LCB3aGljaGV2ZXIgaXMgbGVzcy4KICAvLyAgICAgICAqLwogIC8vICAgICAgaW5pdCA9IHMud2luZG93X3NpemUgLSBjdXJyOwogIC8vICAgICAgaWYgKGluaXQgPiBXSU5fSU5JVCkKICAvLyAgICAgICAgaW5pdCA9IFdJTl9JTklUOwogIC8vICAgICAgem1lbXplcm8ocy0+d2luZG93ICsgY3VyciwgKHVuc2lnbmVkKWluaXQpOwogIC8vICAgICAgcy0+aGlnaF93YXRlciA9IGN1cnIgKyBpbml0OwogIC8vICAgIH0KICAvLyAgICBlbHNlIGlmIChzLT5oaWdoX3dhdGVyIDwgKHVsZyljdXJyICsgV0lOX0lOSVQpIHsKICAvLyAgICAgIC8qIEhpZ2ggd2F0ZXIgbWFyayBhdCBvciBhYm92ZSBjdXJyZW50IGRhdGEsIGJ1dCBiZWxvdyBjdXJyZW50IGRhdGEKICAvLyAgICAgICAqIHBsdXMgV0lOX0lOSVQgLS0gemVybyBvdXQgdG8gY3VycmVudCBkYXRhIHBsdXMgV0lOX0lOSVQsIG9yIHVwCiAgLy8gICAgICAgKiB0byBlbmQgb2Ygd2luZG93LCB3aGljaGV2ZXIgaXMgbGVzcy4KICAvLyAgICAgICAqLwogIC8vICAgICAgaW5pdCA9ICh1bGcpY3VyciArIFdJTl9JTklUIC0gcy0+aGlnaF93YXRlcjsKICAvLyAgICAgIGlmIChpbml0ID4gcy0+d2luZG93X3NpemUgLSBzLT5oaWdoX3dhdGVyKQogIC8vICAgICAgICBpbml0ID0gcy0+d2luZG93X3NpemUgLSBzLT5oaWdoX3dhdGVyOwogIC8vICAgICAgem1lbXplcm8ocy0+d2luZG93ICsgcy0+aGlnaF93YXRlciwgKHVuc2lnbmVkKWluaXQpOwogIC8vICAgICAgcy0+aGlnaF93YXRlciArPSBpbml0OwogIC8vICAgIH0KICAvLyAgfQogIC8vCiAgLy8gIEFzc2VydCgodWxnKXMtPnN0cnN0YXJ0IDw9IHMtPndpbmRvd19zaXplIC0gTUlOX0xPT0tBSEVBRCwKICAvLyAgICAibm90IGVub3VnaCByb29tIGZvciBzZWFyY2giKTsKICB9OwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBDb3B5IHdpdGhvdXQgY29tcHJlc3Npb24gYXMgbXVjaCBhcyBwb3NzaWJsZSBmcm9tIHRoZSBpbnB1dCBzdHJlYW0sIHJldHVybgogICAqIHRoZSBjdXJyZW50IGJsb2NrIHN0YXRlLgogICAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgaW5zZXJ0IG5ldyBzdHJpbmdzIGluIHRoZSBkaWN0aW9uYXJ5IHNpbmNlCiAgICogdW5jb21wcmVzc2libGUgZGF0YSBpcyBwcm9iYWJseSBub3QgdXNlZnVsLiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQKICAgKiBvbmx5IGZvciB0aGUgbGV2ZWw9MCBjb21wcmVzc2lvbiBvcHRpb24uCiAgICogTk9URTogdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgb3B0aW1pemVkIHRvIGF2b2lkIGV4dHJhIGNvcHlpbmcgZnJvbQogICAqIHdpbmRvdyB0byBwZW5kaW5nX2J1Zi4KICAgKi8KICBjb25zdCBkZWZsYXRlX3N0b3JlZCA9IChzLCBmbHVzaCkgPT4gewoKICAgIC8qIFN0b3JlZCBibG9ja3MgYXJlIGxpbWl0ZWQgdG8gMHhmZmZmIGJ5dGVzLCBwZW5kaW5nX2J1ZiBpcyBsaW1pdGVkCiAgICAgKiB0byBwZW5kaW5nX2J1Zl9zaXplLCBhbmQgZWFjaCBzdG9yZWQgYmxvY2sgaGFzIGEgNSBieXRlIGhlYWRlcjoKICAgICAqLwogICAgbGV0IG1heF9ibG9ja19zaXplID0gMHhmZmZmOwoKICAgIGlmIChtYXhfYmxvY2tfc2l6ZSA+IHMucGVuZGluZ19idWZfc2l6ZSAtIDUpIHsKICAgICAgbWF4X2Jsb2NrX3NpemUgPSBzLnBlbmRpbmdfYnVmX3NpemUgLSA1OwogICAgfQoKICAgIC8qIENvcHkgYXMgbXVjaCBhcyBwb3NzaWJsZSBmcm9tIGlucHV0IHRvIG91dHB1dDogKi8KICAgIGZvciAoOzspIHsKICAgICAgLyogRmlsbCB0aGUgd2luZG93IGFzIG11Y2ggYXMgcG9zc2libGU6ICovCiAgICAgIGlmIChzLmxvb2thaGVhZCA8PSAxKSB7CgogICAgICAgIC8vQXNzZXJ0KHMtPnN0cnN0YXJ0IDwgcy0+d19zaXplK01BWF9ESVNUKHMpIHx8CiAgICAgICAgLy8gIHMtPmJsb2NrX3N0YXJ0ID49IChsb25nKXMtPndfc2l6ZSwgInNsaWRlIHRvbyBsYXRlIik7CiAgLy8gICAgICBpZiAoIShzLnN0cnN0YXJ0IDwgcy53X3NpemUgKyAocy53X3NpemUgLSBNSU5fTE9PS0FIRUFEKSB8fAogIC8vICAgICAgICBzLmJsb2NrX3N0YXJ0ID49IHMud19zaXplKSkgewogIC8vICAgICAgICB0aHJvdyAgbmV3IEVycm9yKCJzbGlkZSB0b28gbGF0ZSIpOwogIC8vICAgICAgfQoKICAgICAgICBmaWxsX3dpbmRvdyhzKTsKICAgICAgICBpZiAocy5sb29rYWhlYWQgPT09IDAgJiYgZmx1c2ggPT09IFpfTk9fRkxVU0gkMikgewogICAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgICB9CgogICAgICAgIGlmIChzLmxvb2thaGVhZCA9PT0gMCkgewogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIC8qIGZsdXNoIHRoZSBjdXJyZW50IGJsb2NrICovCiAgICAgIH0KICAgICAgLy9Bc3NlcnQocy0+YmxvY2tfc3RhcnQgPj0gMEwsICJibG9jayBnb25lIik7CiAgLy8gICAgaWYgKHMuYmxvY2tfc3RhcnQgPCAwKSB0aHJvdyBuZXcgRXJyb3IoImJsb2NrIGdvbmUiKTsKCiAgICAgIHMuc3Ryc3RhcnQgKz0gcy5sb29rYWhlYWQ7CiAgICAgIHMubG9va2FoZWFkID0gMDsKCiAgICAgIC8qIEVtaXQgYSBzdG9yZWQgYmxvY2sgaWYgcGVuZGluZ19idWYgd2lsbCBiZSBmdWxsOiAqLwogICAgICBjb25zdCBtYXhfc3RhcnQgPSBzLmJsb2NrX3N0YXJ0ICsgbWF4X2Jsb2NrX3NpemU7CgogICAgICBpZiAocy5zdHJzdGFydCA9PT0gMCB8fCBzLnN0cnN0YXJ0ID49IG1heF9zdGFydCkgewogICAgICAgIC8qIHN0cnN0YXJ0ID09IDAgaXMgcG9zc2libGUgd2hlbiB3cmFwYXJvdW5kIG9uIDE2LWJpdCBtYWNoaW5lICovCiAgICAgICAgcy5sb29rYWhlYWQgPSBzLnN0cnN0YXJ0IC0gbWF4X3N0YXJ0OwogICAgICAgIHMuc3Ryc3RhcnQgPSBtYXhfc3RhcnQ7CiAgICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICAgIH0KICAgICAgICAvKioqLwoKCiAgICAgIH0KICAgICAgLyogRmx1c2ggaWYgd2UgbWF5IGhhdmUgdG8gc2xpZGUsIG90aGVyd2lzZSBibG9ja19zdGFydCBtYXkgYmVjb21lCiAgICAgICAqIG5lZ2F0aXZlIGFuZCB0aGUgZGF0YSB3aWxsIGJlIGdvbmU6CiAgICAgICAqLwogICAgICBpZiAocy5zdHJzdGFydCAtIHMuYmxvY2tfc3RhcnQgPj0gKHMud19zaXplIC0gTUlOX0xPT0tBSEVBRCkpIHsKICAgICAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDApOyAqKiovCiAgICAgICAgZmx1c2hfYmxvY2tfb25seShzLCBmYWxzZSk7CiAgICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgICAgfQogICAgICAgIC8qKiovCiAgICAgIH0KICAgIH0KCiAgICBzLmluc2VydCA9IDA7CgogICAgaWYgKGZsdXNoID09PSBaX0ZJTklTSCQzKSB7CiAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMSk7ICoqKi8KICAgICAgZmx1c2hfYmxvY2tfb25seShzLCB0cnVlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfRklOSVNIX1NUQVJURUQ7CiAgICAgIH0KICAgICAgLyoqKi8KICAgICAgcmV0dXJuIEJTX0ZJTklTSF9ET05FOwogICAgfQoKICAgIGlmIChzLnN0cnN0YXJ0ID4gcy5ibG9ja19zdGFydCkgewogICAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDApOyAqKiovCiAgICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgIH0KICAgICAgLyoqKi8KICAgIH0KCiAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogIH07CgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIENvbXByZXNzIGFzIG11Y2ggYXMgcG9zc2libGUgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLCByZXR1cm4gdGhlIGN1cnJlbnQKICAgKiBibG9jayBzdGF0ZS4KICAgKiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHBlcmZvcm0gbGF6eSBldmFsdWF0aW9uIG9mIG1hdGNoZXMgYW5kIGluc2VydHMKICAgKiBuZXcgc3RyaW5ncyBpbiB0aGUgZGljdGlvbmFyeSBvbmx5IGZvciB1bm1hdGNoZWQgc3RyaW5ncyBvciBmb3Igc2hvcnQKICAgKiBtYXRjaGVzLiBJdCBpcyB1c2VkIG9ubHkgZm9yIHRoZSBmYXN0IGNvbXByZXNzaW9uIG9wdGlvbnMuCiAgICovCiAgY29uc3QgZGVmbGF0ZV9mYXN0ID0gKHMsIGZsdXNoKSA9PiB7CgogICAgbGV0IGhhc2hfaGVhZDsgICAgICAgIC8qIGhlYWQgb2YgdGhlIGhhc2ggY2hhaW4gKi8KICAgIGxldCBiZmx1c2g7ICAgICAgICAgICAvKiBzZXQgaWYgY3VycmVudCBibG9jayBtdXN0IGJlIGZsdXNoZWQgKi8KCiAgICBmb3IgKDs7KSB7CiAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGFsd2F5cyBoYXZlIGVub3VnaCBsb29rYWhlYWQsIGV4Y2VwdAogICAgICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCBmaWxlLiBXZSBuZWVkIE1BWF9NQVRDSCBieXRlcwogICAgICAgKiBmb3IgdGhlIG5leHQgbWF0Y2gsIHBsdXMgTUlOX01BVENIIGJ5dGVzIHRvIGluc2VydCB0aGUKICAgICAgICogc3RyaW5nIGZvbGxvd2luZyB0aGUgbmV4dCBtYXRjaC4KICAgICAgICovCiAgICAgIGlmIChzLmxvb2thaGVhZCA8IE1JTl9MT09LQUhFQUQpIHsKICAgICAgICBmaWxsX3dpbmRvdyhzKTsKICAgICAgICBpZiAocy5sb29rYWhlYWQgPCBNSU5fTE9PS0FIRUFEICYmIGZsdXNoID09PSBaX05PX0ZMVVNIJDIpIHsKICAgICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgICAgfQogICAgICAgIGlmIChzLmxvb2thaGVhZCA9PT0gMCkgewogICAgICAgICAgYnJlYWs7IC8qIGZsdXNoIHRoZSBjdXJyZW50IGJsb2NrICovCiAgICAgICAgfQogICAgICB9CgogICAgICAvKiBJbnNlcnQgdGhlIHN0cmluZyB3aW5kb3dbc3Ryc3RhcnQgLi4gc3Ryc3RhcnQrMl0gaW4gdGhlCiAgICAgICAqIGRpY3Rpb25hcnksIGFuZCBzZXQgaGFzaF9oZWFkIHRvIHRoZSBoZWFkIG9mIHRoZSBoYXNoIGNoYWluOgogICAgICAgKi8KICAgICAgaGFzaF9oZWFkID0gMC8qTklMKi87CiAgICAgIGlmIChzLmxvb2thaGVhZCA+PSBNSU5fTUFUQ0gpIHsKICAgICAgICAvKioqIElOU0VSVF9TVFJJTkcocywgcy5zdHJzdGFydCwgaGFzaF9oZWFkKTsgKioqLwogICAgICAgIHMuaW5zX2ggPSBIQVNIKHMsIHMuaW5zX2gsIHMud2luZG93W3Muc3Ryc3RhcnQgKyBNSU5fTUFUQ0ggLSAxXSk7CiAgICAgICAgaGFzaF9oZWFkID0gcy5wcmV2W3Muc3Ryc3RhcnQgJiBzLndfbWFza10gPSBzLmhlYWRbcy5pbnNfaF07CiAgICAgICAgcy5oZWFkW3MuaW5zX2hdID0gcy5zdHJzdGFydDsKICAgICAgICAvKioqLwogICAgICB9CgogICAgICAvKiBGaW5kIHRoZSBsb25nZXN0IG1hdGNoLCBkaXNjYXJkaW5nIHRob3NlIDw9IHByZXZfbGVuZ3RoLgogICAgICAgKiBBdCB0aGlzIHBvaW50IHdlIGhhdmUgYWx3YXlzIG1hdGNoX2xlbmd0aCA8IE1JTl9NQVRDSAogICAgICAgKi8KICAgICAgaWYgKGhhc2hfaGVhZCAhPT0gMC8qTklMKi8gJiYgKChzLnN0cnN0YXJ0IC0gaGFzaF9oZWFkKSA8PSAocy53X3NpemUgLSBNSU5fTE9PS0FIRUFEKSkpIHsKICAgICAgICAvKiBUbyBzaW1wbGlmeSB0aGUgY29kZSwgd2UgcHJldmVudCBtYXRjaGVzIHdpdGggdGhlIHN0cmluZwogICAgICAgICAqIG9mIHdpbmRvdyBpbmRleCAwIChpbiBwYXJ0aWN1bGFyIHdlIGhhdmUgdG8gYXZvaWQgYSBtYXRjaAogICAgICAgICAqIG9mIHRoZSBzdHJpbmcgd2l0aCBpdHNlbGYgYXQgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCBmaWxlKS4KICAgICAgICAgKi8KICAgICAgICBzLm1hdGNoX2xlbmd0aCA9IGxvbmdlc3RfbWF0Y2gocywgaGFzaF9oZWFkKTsKICAgICAgICAvKiBsb25nZXN0X21hdGNoKCkgc2V0cyBtYXRjaF9zdGFydCAqLwogICAgICB9CiAgICAgIGlmIChzLm1hdGNoX2xlbmd0aCA+PSBNSU5fTUFUQ0gpIHsKICAgICAgICAvLyBjaGVja19tYXRjaChzLCBzLnN0cnN0YXJ0LCBzLm1hdGNoX3N0YXJ0LCBzLm1hdGNoX2xlbmd0aCk7IC8vIGZvciBkZWJ1ZyBvbmx5CgogICAgICAgIC8qKiogX3RyX3RhbGx5X2Rpc3Qocywgcy5zdHJzdGFydCAtIHMubWF0Y2hfc3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgcy5tYXRjaF9sZW5ndGggLSBNSU5fTUFUQ0gsIGJmbHVzaCk7ICoqKi8KICAgICAgICBiZmx1c2ggPSBfdHJfdGFsbHkocywgcy5zdHJzdGFydCAtIHMubWF0Y2hfc3RhcnQsIHMubWF0Y2hfbGVuZ3RoIC0gTUlOX01BVENIKTsKCiAgICAgICAgcy5sb29rYWhlYWQgLT0gcy5tYXRjaF9sZW5ndGg7CgogICAgICAgIC8qIEluc2VydCBuZXcgc3RyaW5ncyBpbiB0aGUgaGFzaCB0YWJsZSBvbmx5IGlmIHRoZSBtYXRjaCBsZW5ndGgKICAgICAgICAgKiBpcyBub3QgdG9vIGxhcmdlLiBUaGlzIHNhdmVzIHRpbWUgYnV0IGRlZ3JhZGVzIGNvbXByZXNzaW9uLgogICAgICAgICAqLwogICAgICAgIGlmIChzLm1hdGNoX2xlbmd0aCA8PSBzLm1heF9sYXp5X21hdGNoLyptYXhfaW5zZXJ0X2xlbmd0aCovICYmIHMubG9va2FoZWFkID49IE1JTl9NQVRDSCkgewogICAgICAgICAgcy5tYXRjaF9sZW5ndGgtLTsgLyogc3RyaW5nIGF0IHN0cnN0YXJ0IGFscmVhZHkgaW4gdGFibGUgKi8KICAgICAgICAgIGRvIHsKICAgICAgICAgICAgcy5zdHJzdGFydCsrOwogICAgICAgICAgICAvKioqIElOU0VSVF9TVFJJTkcocywgcy5zdHJzdGFydCwgaGFzaF9oZWFkKTsgKioqLwogICAgICAgICAgICBzLmluc19oID0gSEFTSChzLCBzLmluc19oLCBzLndpbmRvd1tzLnN0cnN0YXJ0ICsgTUlOX01BVENIIC0gMV0pOwogICAgICAgICAgICBoYXNoX2hlYWQgPSBzLnByZXZbcy5zdHJzdGFydCAmIHMud19tYXNrXSA9IHMuaGVhZFtzLmluc19oXTsKICAgICAgICAgICAgcy5oZWFkW3MuaW5zX2hdID0gcy5zdHJzdGFydDsKICAgICAgICAgICAgLyoqKi8KICAgICAgICAgICAgLyogc3Ryc3RhcnQgbmV2ZXIgZXhjZWVkcyBXU0laRS1NQVhfTUFUQ0gsIHNvIHRoZXJlIGFyZQogICAgICAgICAgICAgKiBhbHdheXMgTUlOX01BVENIIGJ5dGVzIGFoZWFkLgogICAgICAgICAgICAgKi8KICAgICAgICAgIH0gd2hpbGUgKC0tcy5tYXRjaF9sZW5ndGggIT09IDApOwogICAgICAgICAgcy5zdHJzdGFydCsrOwogICAgICAgIH0gZWxzZQogICAgICAgIHsKICAgICAgICAgIHMuc3Ryc3RhcnQgKz0gcy5tYXRjaF9sZW5ndGg7CiAgICAgICAgICBzLm1hdGNoX2xlbmd0aCA9IDA7CiAgICAgICAgICBzLmluc19oID0gcy53aW5kb3dbcy5zdHJzdGFydF07CiAgICAgICAgICAvKiBVUERBVEVfSEFTSChzLCBzLmluc19oLCBzLndpbmRvd1tzLnN0cnN0YXJ0KzFdKTsgKi8KICAgICAgICAgIHMuaW5zX2ggPSBIQVNIKHMsIHMuaW5zX2gsIHMud2luZG93W3Muc3Ryc3RhcnQgKyAxXSk7CgogIC8vI2lmIE1JTl9NQVRDSCAhPSAzCiAgLy8gICAgICAgICAgICAgICAgQ2FsbCBVUERBVEVfSEFTSCgpIE1JTl9NQVRDSC0zIG1vcmUgdGltZXMKICAvLyNlbmRpZgogICAgICAgICAgLyogSWYgbG9va2FoZWFkIDwgTUlOX01BVENILCBpbnNfaCBpcyBnYXJiYWdlLCBidXQgaXQgZG9lcyBub3QKICAgICAgICAgICAqIG1hdHRlciBzaW5jZSBpdCB3aWxsIGJlIHJlY29tcHV0ZWQgYXQgbmV4dCBkZWZsYXRlIGNhbGwuCiAgICAgICAgICAgKi8KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLyogTm8gbWF0Y2gsIG91dHB1dCBhIGxpdGVyYWwgYnl0ZSAqLwogICAgICAgIC8vVHJhY2V2digoc3RkZXJyLCIlYyIsIHMud2luZG93W3Muc3Ryc3RhcnRdKSk7CiAgICAgICAgLyoqKiBfdHJfdGFsbHlfbGl0KHMsIHMud2luZG93W3Muc3Ryc3RhcnRdLCBiZmx1c2gpOyAqKiovCiAgICAgICAgYmZsdXNoID0gX3RyX3RhbGx5KHMsIDAsIHMud2luZG93W3Muc3Ryc3RhcnRdKTsKCiAgICAgICAgcy5sb29rYWhlYWQtLTsKICAgICAgICBzLnN0cnN0YXJ0Kys7CiAgICAgIH0KICAgICAgaWYgKGJmbHVzaCkgewogICAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMCk7ICoqKi8KICAgICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgICB9CiAgICAgICAgLyoqKi8KICAgICAgfQogICAgfQogICAgcy5pbnNlcnQgPSAoKHMuc3Ryc3RhcnQgPCAoTUlOX01BVENIIC0gMSkpID8gcy5zdHJzdGFydCA6IE1JTl9NQVRDSCAtIDEpOwogICAgaWYgKGZsdXNoID09PSBaX0ZJTklTSCQzKSB7CiAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMSk7ICoqKi8KICAgICAgZmx1c2hfYmxvY2tfb25seShzLCB0cnVlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfRklOSVNIX1NUQVJURUQ7CiAgICAgIH0KICAgICAgLyoqKi8KICAgICAgcmV0dXJuIEJTX0ZJTklTSF9ET05FOwogICAgfQogICAgaWYgKHMubGFzdF9saXQpIHsKICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICB9CiAgICAgIC8qKiovCiAgICB9CiAgICByZXR1cm4gQlNfQkxPQ0tfRE9ORTsKICB9OwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBTYW1lIGFzIGFib3ZlLCBidXQgYWNoaWV2ZXMgYmV0dGVyIGNvbXByZXNzaW9uLiBXZSB1c2UgYSBsYXp5CiAgICogZXZhbHVhdGlvbiBmb3IgbWF0Y2hlczogYSBtYXRjaCBpcyBmaW5hbGx5IGFkb3B0ZWQgb25seSBpZiB0aGVyZSBpcwogICAqIG5vIGJldHRlciBtYXRjaCBhdCB0aGUgbmV4dCB3aW5kb3cgcG9zaXRpb24uCiAgICovCiAgY29uc3QgZGVmbGF0ZV9zbG93ID0gKHMsIGZsdXNoKSA9PiB7CgogICAgbGV0IGhhc2hfaGVhZDsgICAgICAgICAgLyogaGVhZCBvZiBoYXNoIGNoYWluICovCiAgICBsZXQgYmZsdXNoOyAgICAgICAgICAgICAgLyogc2V0IGlmIGN1cnJlbnQgYmxvY2sgbXVzdCBiZSBmbHVzaGVkICovCgogICAgbGV0IG1heF9pbnNlcnQ7CgogICAgLyogUHJvY2VzcyB0aGUgaW5wdXQgYmxvY2suICovCiAgICBmb3IgKDs7KSB7CiAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGFsd2F5cyBoYXZlIGVub3VnaCBsb29rYWhlYWQsIGV4Y2VwdAogICAgICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCBmaWxlLiBXZSBuZWVkIE1BWF9NQVRDSCBieXRlcwogICAgICAgKiBmb3IgdGhlIG5leHQgbWF0Y2gsIHBsdXMgTUlOX01BVENIIGJ5dGVzIHRvIGluc2VydCB0aGUKICAgICAgICogc3RyaW5nIGZvbGxvd2luZyB0aGUgbmV4dCBtYXRjaC4KICAgICAgICovCiAgICAgIGlmIChzLmxvb2thaGVhZCA8IE1JTl9MT09LQUhFQUQpIHsKICAgICAgICBmaWxsX3dpbmRvdyhzKTsKICAgICAgICBpZiAocy5sb29rYWhlYWQgPCBNSU5fTE9PS0FIRUFEICYmIGZsdXNoID09PSBaX05PX0ZMVVNIJDIpIHsKICAgICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgICAgfQogICAgICAgIGlmIChzLmxvb2thaGVhZCA9PT0gMCkgeyBicmVhazsgfSAvKiBmbHVzaCB0aGUgY3VycmVudCBibG9jayAqLwogICAgICB9CgogICAgICAvKiBJbnNlcnQgdGhlIHN0cmluZyB3aW5kb3dbc3Ryc3RhcnQgLi4gc3Ryc3RhcnQrMl0gaW4gdGhlCiAgICAgICAqIGRpY3Rpb25hcnksIGFuZCBzZXQgaGFzaF9oZWFkIHRvIHRoZSBoZWFkIG9mIHRoZSBoYXNoIGNoYWluOgogICAgICAgKi8KICAgICAgaGFzaF9oZWFkID0gMC8qTklMKi87CiAgICAgIGlmIChzLmxvb2thaGVhZCA+PSBNSU5fTUFUQ0gpIHsKICAgICAgICAvKioqIElOU0VSVF9TVFJJTkcocywgcy5zdHJzdGFydCwgaGFzaF9oZWFkKTsgKioqLwogICAgICAgIHMuaW5zX2ggPSBIQVNIKHMsIHMuaW5zX2gsIHMud2luZG93W3Muc3Ryc3RhcnQgKyBNSU5fTUFUQ0ggLSAxXSk7CiAgICAgICAgaGFzaF9oZWFkID0gcy5wcmV2W3Muc3Ryc3RhcnQgJiBzLndfbWFza10gPSBzLmhlYWRbcy5pbnNfaF07CiAgICAgICAgcy5oZWFkW3MuaW5zX2hdID0gcy5zdHJzdGFydDsKICAgICAgICAvKioqLwogICAgICB9CgogICAgICAvKiBGaW5kIHRoZSBsb25nZXN0IG1hdGNoLCBkaXNjYXJkaW5nIHRob3NlIDw9IHByZXZfbGVuZ3RoLgogICAgICAgKi8KICAgICAgcy5wcmV2X2xlbmd0aCA9IHMubWF0Y2hfbGVuZ3RoOwogICAgICBzLnByZXZfbWF0Y2ggPSBzLm1hdGNoX3N0YXJ0OwogICAgICBzLm1hdGNoX2xlbmd0aCA9IE1JTl9NQVRDSCAtIDE7CgogICAgICBpZiAoaGFzaF9oZWFkICE9PSAwLypOSUwqLyAmJiBzLnByZXZfbGVuZ3RoIDwgcy5tYXhfbGF6eV9tYXRjaCAmJgogICAgICAgICAgcy5zdHJzdGFydCAtIGhhc2hfaGVhZCA8PSAocy53X3NpemUgLSBNSU5fTE9PS0FIRUFEKS8qTUFYX0RJU1QocykqLykgewogICAgICAgIC8qIFRvIHNpbXBsaWZ5IHRoZSBjb2RlLCB3ZSBwcmV2ZW50IG1hdGNoZXMgd2l0aCB0aGUgc3RyaW5nCiAgICAgICAgICogb2Ygd2luZG93IGluZGV4IDAgKGluIHBhcnRpY3VsYXIgd2UgaGF2ZSB0byBhdm9pZCBhIG1hdGNoCiAgICAgICAgICogb2YgdGhlIHN0cmluZyB3aXRoIGl0c2VsZiBhdCB0aGUgc3RhcnQgb2YgdGhlIGlucHV0IGZpbGUpLgogICAgICAgICAqLwogICAgICAgIHMubWF0Y2hfbGVuZ3RoID0gbG9uZ2VzdF9tYXRjaChzLCBoYXNoX2hlYWQpOwogICAgICAgIC8qIGxvbmdlc3RfbWF0Y2goKSBzZXRzIG1hdGNoX3N0YXJ0ICovCgogICAgICAgIGlmIChzLm1hdGNoX2xlbmd0aCA8PSA1ICYmCiAgICAgICAgICAgKHMuc3RyYXRlZ3kgPT09IFpfRklMVEVSRUQgfHwgKHMubWF0Y2hfbGVuZ3RoID09PSBNSU5fTUFUQ0ggJiYgcy5zdHJzdGFydCAtIHMubWF0Y2hfc3RhcnQgPiA0MDk2LypUT09fRkFSKi8pKSkgewoKICAgICAgICAgIC8qIElmIHByZXZfbWF0Y2ggaXMgYWxzbyBNSU5fTUFUQ0gsIG1hdGNoX3N0YXJ0IGlzIGdhcmJhZ2UKICAgICAgICAgICAqIGJ1dCB3ZSB3aWxsIGlnbm9yZSB0aGUgY3VycmVudCBtYXRjaCBhbnl3YXkuCiAgICAgICAgICAgKi8KICAgICAgICAgIHMubWF0Y2hfbGVuZ3RoID0gTUlOX01BVENIIC0gMTsKICAgICAgICB9CiAgICAgIH0KICAgICAgLyogSWYgdGhlcmUgd2FzIGEgbWF0Y2ggYXQgdGhlIHByZXZpb3VzIHN0ZXAgYW5kIHRoZSBjdXJyZW50CiAgICAgICAqIG1hdGNoIGlzIG5vdCBiZXR0ZXIsIG91dHB1dCB0aGUgcHJldmlvdXMgbWF0Y2g6CiAgICAgICAqLwogICAgICBpZiAocy5wcmV2X2xlbmd0aCA+PSBNSU5fTUFUQ0ggJiYgcy5tYXRjaF9sZW5ndGggPD0gcy5wcmV2X2xlbmd0aCkgewogICAgICAgIG1heF9pbnNlcnQgPSBzLnN0cnN0YXJ0ICsgcy5sb29rYWhlYWQgLSBNSU5fTUFUQ0g7CiAgICAgICAgLyogRG8gbm90IGluc2VydCBzdHJpbmdzIGluIGhhc2ggdGFibGUgYmV5b25kIHRoaXMuICovCgogICAgICAgIC8vY2hlY2tfbWF0Y2gocywgcy5zdHJzdGFydC0xLCBzLnByZXZfbWF0Y2gsIHMucHJldl9sZW5ndGgpOwoKICAgICAgICAvKioqX3RyX3RhbGx5X2Rpc3Qocywgcy5zdHJzdGFydCAtIDEgLSBzLnByZXZfbWF0Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgcy5wcmV2X2xlbmd0aCAtIE1JTl9NQVRDSCwgYmZsdXNoKTsqKiovCiAgICAgICAgYmZsdXNoID0gX3RyX3RhbGx5KHMsIHMuc3Ryc3RhcnQgLSAxIC0gcy5wcmV2X21hdGNoLCBzLnByZXZfbGVuZ3RoIC0gTUlOX01BVENIKTsKICAgICAgICAvKiBJbnNlcnQgaW4gaGFzaCB0YWJsZSBhbGwgc3RyaW5ncyB1cCB0byB0aGUgZW5kIG9mIHRoZSBtYXRjaC4KICAgICAgICAgKiBzdHJzdGFydC0xIGFuZCBzdHJzdGFydCBhcmUgYWxyZWFkeSBpbnNlcnRlZC4gSWYgdGhlcmUgaXMgbm90CiAgICAgICAgICogZW5vdWdoIGxvb2thaGVhZCwgdGhlIGxhc3QgdHdvIHN0cmluZ3MgYXJlIG5vdCBpbnNlcnRlZCBpbgogICAgICAgICAqIHRoZSBoYXNoIHRhYmxlLgogICAgICAgICAqLwogICAgICAgIHMubG9va2FoZWFkIC09IHMucHJldl9sZW5ndGggLSAxOwogICAgICAgIHMucHJldl9sZW5ndGggLT0gMjsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoKytzLnN0cnN0YXJ0IDw9IG1heF9pbnNlcnQpIHsKICAgICAgICAgICAgLyoqKiBJTlNFUlRfU1RSSU5HKHMsIHMuc3Ryc3RhcnQsIGhhc2hfaGVhZCk7ICoqKi8KICAgICAgICAgICAgcy5pbnNfaCA9IEhBU0gocywgcy5pbnNfaCwgcy53aW5kb3dbcy5zdHJzdGFydCArIE1JTl9NQVRDSCAtIDFdKTsKICAgICAgICAgICAgaGFzaF9oZWFkID0gcy5wcmV2W3Muc3Ryc3RhcnQgJiBzLndfbWFza10gPSBzLmhlYWRbcy5pbnNfaF07CiAgICAgICAgICAgIHMuaGVhZFtzLmluc19oXSA9IHMuc3Ryc3RhcnQ7CiAgICAgICAgICAgIC8qKiovCiAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoLS1zLnByZXZfbGVuZ3RoICE9PSAwKTsKICAgICAgICBzLm1hdGNoX2F2YWlsYWJsZSA9IDA7CiAgICAgICAgcy5tYXRjaF9sZW5ndGggPSBNSU5fTUFUQ0ggLSAxOwogICAgICAgIHMuc3Ryc3RhcnQrKzsKCiAgICAgICAgaWYgKGJmbHVzaCkgewogICAgICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICAgICAgZmx1c2hfYmxvY2tfb25seShzLCBmYWxzZSk7CiAgICAgICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICAgICAgfQogICAgICAgICAgLyoqKi8KICAgICAgICB9CgogICAgICB9IGVsc2UgaWYgKHMubWF0Y2hfYXZhaWxhYmxlKSB7CiAgICAgICAgLyogSWYgdGhlcmUgd2FzIG5vIG1hdGNoIGF0IHRoZSBwcmV2aW91cyBwb3NpdGlvbiwgb3V0cHV0IGEKICAgICAgICAgKiBzaW5nbGUgbGl0ZXJhbC4gSWYgdGhlcmUgd2FzIGEgbWF0Y2ggYnV0IHRoZSBjdXJyZW50IG1hdGNoCiAgICAgICAgICogaXMgbG9uZ2VyLCB0cnVuY2F0ZSB0aGUgcHJldmlvdXMgbWF0Y2ggdG8gYSBzaW5nbGUgbGl0ZXJhbC4KICAgICAgICAgKi8KICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwiJWMiLCBzLT53aW5kb3dbcy0+c3Ryc3RhcnQtMV0pKTsKICAgICAgICAvKioqIF90cl90YWxseV9saXQocywgcy53aW5kb3dbcy5zdHJzdGFydC0xXSwgYmZsdXNoKTsgKioqLwogICAgICAgIGJmbHVzaCA9IF90cl90YWxseShzLCAwLCBzLndpbmRvd1tzLnN0cnN0YXJ0IC0gMV0pOwoKICAgICAgICBpZiAoYmZsdXNoKSB7CiAgICAgICAgICAvKioqIEZMVVNIX0JMT0NLX09OTFkocywgMCkgKioqLwogICAgICAgICAgZmx1c2hfYmxvY2tfb25seShzLCBmYWxzZSk7CiAgICAgICAgICAvKioqLwogICAgICAgIH0KICAgICAgICBzLnN0cnN0YXJ0Kys7CiAgICAgICAgcy5sb29rYWhlYWQtLTsKICAgICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLyogVGhlcmUgaXMgbm8gcHJldmlvdXMgbWF0Y2ggdG8gY29tcGFyZSB3aXRoLCB3YWl0IGZvcgogICAgICAgICAqIHRoZSBuZXh0IHN0ZXAgdG8gZGVjaWRlLgogICAgICAgICAqLwogICAgICAgIHMubWF0Y2hfYXZhaWxhYmxlID0gMTsKICAgICAgICBzLnN0cnN0YXJ0Kys7CiAgICAgICAgcy5sb29rYWhlYWQtLTsKICAgICAgfQogICAgfQogICAgLy9Bc3NlcnQgKGZsdXNoICE9IFpfTk9fRkxVU0gsICJubyBmbHVzaD8iKTsKICAgIGlmIChzLm1hdGNoX2F2YWlsYWJsZSkgewogICAgICAvL1RyYWNldnYoKHN0ZGVyciwiJWMiLCBzLT53aW5kb3dbcy0+c3Ryc3RhcnQtMV0pKTsKICAgICAgLyoqKiBfdHJfdGFsbHlfbGl0KHMsIHMud2luZG93W3Muc3Ryc3RhcnQtMV0sIGJmbHVzaCk7ICoqKi8KICAgICAgYmZsdXNoID0gX3RyX3RhbGx5KHMsIDAsIHMud2luZG93W3Muc3Ryc3RhcnQgLSAxXSk7CgogICAgICBzLm1hdGNoX2F2YWlsYWJsZSA9IDA7CiAgICB9CiAgICBzLmluc2VydCA9IHMuc3Ryc3RhcnQgPCBNSU5fTUFUQ0ggLSAxID8gcy5zdHJzdGFydCA6IE1JTl9NQVRDSCAtIDE7CiAgICBpZiAoZmx1c2ggPT09IFpfRklOSVNIJDMpIHsKICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAxKTsgKioqLwogICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIHRydWUpOwogICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHJldHVybiBCU19GSU5JU0hfU1RBUlRFRDsKICAgICAgfQogICAgICAvKioqLwogICAgICByZXR1cm4gQlNfRklOSVNIX0RPTkU7CiAgICB9CiAgICBpZiAocy5sYXN0X2xpdCkgewogICAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDApOyAqKiovCiAgICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgIH0KICAgICAgLyoqKi8KICAgIH0KCiAgICByZXR1cm4gQlNfQkxPQ0tfRE9ORTsKICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogRm9yIFpfUkxFLCBzaW1wbHkgbG9vayBmb3IgcnVucyBvZiBieXRlcywgZ2VuZXJhdGUgbWF0Y2hlcyBvbmx5IG9mIGRpc3RhbmNlCiAgICogb25lLiAgRG8gbm90IG1haW50YWluIGEgaGFzaCB0YWJsZS4gIChJdCB3aWxsIGJlIHJlZ2VuZXJhdGVkIGlmIHRoaXMgcnVuIG9mCiAgICogZGVmbGF0ZSBzd2l0Y2hlcyBhd2F5IGZyb20gWl9STEUuKQogICAqLwogIGNvbnN0IGRlZmxhdGVfcmxlID0gKHMsIGZsdXNoKSA9PiB7CgogICAgbGV0IGJmbHVzaDsgICAgICAgICAgICAvKiBzZXQgaWYgY3VycmVudCBibG9jayBtdXN0IGJlIGZsdXNoZWQgKi8KICAgIGxldCBwcmV2OyAgICAgICAgICAgICAgLyogYnl0ZSBhdCBkaXN0YW5jZSBvbmUgdG8gbWF0Y2ggKi8KICAgIGxldCBzY2FuLCBzdHJlbmQ7ICAgICAgLyogc2NhbiBnb2VzIHVwIHRvIHN0cmVuZCBmb3IgbGVuZ3RoIG9mIHJ1biAqLwoKICAgIGNvbnN0IF93aW4gPSBzLndpbmRvdzsKCiAgICBmb3IgKDs7KSB7CiAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGFsd2F5cyBoYXZlIGVub3VnaCBsb29rYWhlYWQsIGV4Y2VwdAogICAgICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCBmaWxlLiBXZSBuZWVkIE1BWF9NQVRDSCBieXRlcwogICAgICAgKiBmb3IgdGhlIGxvbmdlc3QgcnVuLCBwbHVzIG9uZSBmb3IgdGhlIHVucm9sbGVkIGxvb3AuCiAgICAgICAqLwogICAgICBpZiAocy5sb29rYWhlYWQgPD0gTUFYX01BVENIKSB7CiAgICAgICAgZmlsbF93aW5kb3cocyk7CiAgICAgICAgaWYgKHMubG9va2FoZWFkIDw9IE1BWF9NQVRDSCAmJiBmbHVzaCA9PT0gWl9OT19GTFVTSCQyKSB7CiAgICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICAgIH0KICAgICAgICBpZiAocy5sb29rYWhlYWQgPT09IDApIHsgYnJlYWs7IH0gLyogZmx1c2ggdGhlIGN1cnJlbnQgYmxvY2sgKi8KICAgICAgfQoKICAgICAgLyogU2VlIGhvdyBtYW55IHRpbWVzIHRoZSBwcmV2aW91cyBieXRlIHJlcGVhdHMgKi8KICAgICAgcy5tYXRjaF9sZW5ndGggPSAwOwogICAgICBpZiAocy5sb29rYWhlYWQgPj0gTUlOX01BVENIICYmIHMuc3Ryc3RhcnQgPiAwKSB7CiAgICAgICAgc2NhbiA9IHMuc3Ryc3RhcnQgLSAxOwogICAgICAgIHByZXYgPSBfd2luW3NjYW5dOwogICAgICAgIGlmIChwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmIHByZXYgPT09IF93aW5bKytzY2FuXSkgewogICAgICAgICAgc3RyZW5kID0gcy5zdHJzdGFydCArIE1BWF9NQVRDSDsKICAgICAgICAgIGRvIHsKICAgICAgICAgICAgLypqc2hpbnQgbm9lbXB0eTpmYWxzZSovCiAgICAgICAgICB9IHdoaWxlIChwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmCiAgICAgICAgICAgICAgICAgICBwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmCiAgICAgICAgICAgICAgICAgICBwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmCiAgICAgICAgICAgICAgICAgICBwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmCiAgICAgICAgICAgICAgICAgICBzY2FuIDwgc3RyZW5kKTsKICAgICAgICAgIHMubWF0Y2hfbGVuZ3RoID0gTUFYX01BVENIIC0gKHN0cmVuZCAtIHNjYW4pOwogICAgICAgICAgaWYgKHMubWF0Y2hfbGVuZ3RoID4gcy5sb29rYWhlYWQpIHsKICAgICAgICAgICAgcy5tYXRjaF9sZW5ndGggPSBzLmxvb2thaGVhZDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy9Bc3NlcnQoc2NhbiA8PSBzLT53aW5kb3crKHVJbnQpKHMtPndpbmRvd19zaXplLTEpLCAid2lsZCBzY2FuIik7CiAgICAgIH0KCiAgICAgIC8qIEVtaXQgbWF0Y2ggaWYgaGF2ZSBydW4gb2YgTUlOX01BVENIIG9yIGxvbmdlciwgZWxzZSBlbWl0IGxpdGVyYWwgKi8KICAgICAgaWYgKHMubWF0Y2hfbGVuZ3RoID49IE1JTl9NQVRDSCkgewogICAgICAgIC8vY2hlY2tfbWF0Y2gocywgcy5zdHJzdGFydCwgcy5zdHJzdGFydCAtIDEsIHMubWF0Y2hfbGVuZ3RoKTsKCiAgICAgICAgLyoqKiBfdHJfdGFsbHlfZGlzdChzLCAxLCBzLm1hdGNoX2xlbmd0aCAtIE1JTl9NQVRDSCwgYmZsdXNoKTsgKioqLwogICAgICAgIGJmbHVzaCA9IF90cl90YWxseShzLCAxLCBzLm1hdGNoX2xlbmd0aCAtIE1JTl9NQVRDSCk7CgogICAgICAgIHMubG9va2FoZWFkIC09IHMubWF0Y2hfbGVuZ3RoOwogICAgICAgIHMuc3Ryc3RhcnQgKz0gcy5tYXRjaF9sZW5ndGg7CiAgICAgICAgcy5tYXRjaF9sZW5ndGggPSAwOwogICAgICB9IGVsc2UgewogICAgICAgIC8qIE5vIG1hdGNoLCBvdXRwdXQgYSBsaXRlcmFsIGJ5dGUgKi8KICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwiJWMiLCBzLT53aW5kb3dbcy0+c3Ryc3RhcnRdKSk7CiAgICAgICAgLyoqKiBfdHJfdGFsbHlfbGl0KHMsIHMud2luZG93W3Muc3Ryc3RhcnRdLCBiZmx1c2gpOyAqKiovCiAgICAgICAgYmZsdXNoID0gX3RyX3RhbGx5KHMsIDAsIHMud2luZG93W3Muc3Ryc3RhcnRdKTsKCiAgICAgICAgcy5sb29rYWhlYWQtLTsKICAgICAgICBzLnN0cnN0YXJ0Kys7CiAgICAgIH0KICAgICAgaWYgKGJmbHVzaCkgewogICAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMCk7ICoqKi8KICAgICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgICB9CiAgICAgICAgLyoqKi8KICAgICAgfQogICAgfQogICAgcy5pbnNlcnQgPSAwOwogICAgaWYgKGZsdXNoID09PSBaX0ZJTklTSCQzKSB7CiAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMSk7ICoqKi8KICAgICAgZmx1c2hfYmxvY2tfb25seShzLCB0cnVlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfRklOSVNIX1NUQVJURUQ7CiAgICAgIH0KICAgICAgLyoqKi8KICAgICAgcmV0dXJuIEJTX0ZJTklTSF9ET05FOwogICAgfQogICAgaWYgKHMubGFzdF9saXQpIHsKICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICB9CiAgICAgIC8qKiovCiAgICB9CiAgICByZXR1cm4gQlNfQkxPQ0tfRE9ORTsKICB9OwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBGb3IgWl9IVUZGTUFOX09OTFksIGRvIG5vdCBsb29rIGZvciBtYXRjaGVzLiAgRG8gbm90IG1haW50YWluIGEgaGFzaCB0YWJsZS4KICAgKiAoSXQgd2lsbCBiZSByZWdlbmVyYXRlZCBpZiB0aGlzIHJ1biBvZiBkZWZsYXRlIHN3aXRjaGVzIGF3YXkgZnJvbSBIdWZmbWFuLikKICAgKi8KICBjb25zdCBkZWZsYXRlX2h1ZmYgPSAocywgZmx1c2gpID0+IHsKCiAgICBsZXQgYmZsdXNoOyAgICAgICAgICAgICAvKiBzZXQgaWYgY3VycmVudCBibG9jayBtdXN0IGJlIGZsdXNoZWQgKi8KCiAgICBmb3IgKDs7KSB7CiAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGhhdmUgYSBsaXRlcmFsIHRvIHdyaXRlLiAqLwogICAgICBpZiAocy5sb29rYWhlYWQgPT09IDApIHsKICAgICAgICBmaWxsX3dpbmRvdyhzKTsKICAgICAgICBpZiAocy5sb29rYWhlYWQgPT09IDApIHsKICAgICAgICAgIGlmIChmbHVzaCA9PT0gWl9OT19GTFVTSCQyKSB7CiAgICAgICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsgICAgICAvKiBmbHVzaCB0aGUgY3VycmVudCBibG9jayAqLwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogT3V0cHV0IGEgbGl0ZXJhbCBieXRlICovCiAgICAgIHMubWF0Y2hfbGVuZ3RoID0gMDsKICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsIiVjIiwgcy0+d2luZG93W3MtPnN0cnN0YXJ0XSkpOwogICAgICAvKioqIF90cl90YWxseV9saXQocywgcy53aW5kb3dbcy5zdHJzdGFydF0sIGJmbHVzaCk7ICoqKi8KICAgICAgYmZsdXNoID0gX3RyX3RhbGx5KHMsIDAsIHMud2luZG93W3Muc3Ryc3RhcnRdKTsKICAgICAgcy5sb29rYWhlYWQtLTsKICAgICAgcy5zdHJzdGFydCsrOwogICAgICBpZiAoYmZsdXNoKSB7CiAgICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICAgIH0KICAgICAgICAvKioqLwogICAgICB9CiAgICB9CiAgICBzLmluc2VydCA9IDA7CiAgICBpZiAoZmx1c2ggPT09IFpfRklOSVNIJDMpIHsKICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAxKTsgKioqLwogICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIHRydWUpOwogICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHJldHVybiBCU19GSU5JU0hfU1RBUlRFRDsKICAgICAgfQogICAgICAvKioqLwogICAgICByZXR1cm4gQlNfRklOSVNIX0RPTkU7CiAgICB9CiAgICBpZiAocy5sYXN0X2xpdCkgewogICAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDApOyAqKiovCiAgICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgIH0KICAgICAgLyoqKi8KICAgIH0KICAgIHJldHVybiBCU19CTE9DS19ET05FOwogIH07CgogIC8qIFZhbHVlcyBmb3IgbWF4X2xhenlfbWF0Y2gsIGdvb2RfbWF0Y2ggYW5kIG1heF9jaGFpbl9sZW5ndGgsIGRlcGVuZGluZyBvbgogICAqIHRoZSBkZXNpcmVkIHBhY2sgbGV2ZWwgKDAuLjkpLiBUaGUgdmFsdWVzIGdpdmVuIGJlbG93IGhhdmUgYmVlbiB0dW5lZCB0bwogICAqIGV4Y2x1ZGUgd29yc3QgY2FzZSBwZXJmb3JtYW5jZSBmb3IgcGF0aG9sb2dpY2FsIGZpbGVzLiBCZXR0ZXIgdmFsdWVzIG1heSBiZQogICAqIGZvdW5kIGZvciBzcGVjaWZpYyBmaWxlcy4KICAgKi8KICBmdW5jdGlvbiBDb25maWcoZ29vZF9sZW5ndGgsIG1heF9sYXp5LCBuaWNlX2xlbmd0aCwgbWF4X2NoYWluLCBmdW5jKSB7CgogICAgdGhpcy5nb29kX2xlbmd0aCA9IGdvb2RfbGVuZ3RoOwogICAgdGhpcy5tYXhfbGF6eSA9IG1heF9sYXp5OwogICAgdGhpcy5uaWNlX2xlbmd0aCA9IG5pY2VfbGVuZ3RoOwogICAgdGhpcy5tYXhfY2hhaW4gPSBtYXhfY2hhaW47CiAgICB0aGlzLmZ1bmMgPSBmdW5jOwogIH0KCiAgY29uc3QgY29uZmlndXJhdGlvbl90YWJsZSA9IFsKICAgIC8qICAgICAgZ29vZCBsYXp5IG5pY2UgY2hhaW4gKi8KICAgIG5ldyBDb25maWcoMCwgMCwgMCwgMCwgZGVmbGF0ZV9zdG9yZWQpLCAgICAgICAgICAvKiAwIHN0b3JlIG9ubHkgKi8KICAgIG5ldyBDb25maWcoNCwgNCwgOCwgNCwgZGVmbGF0ZV9mYXN0KSwgICAgICAgICAgICAvKiAxIG1heCBzcGVlZCwgbm8gbGF6eSBtYXRjaGVzICovCiAgICBuZXcgQ29uZmlnKDQsIDUsIDE2LCA4LCBkZWZsYXRlX2Zhc3QpLCAgICAgICAgICAgLyogMiAqLwogICAgbmV3IENvbmZpZyg0LCA2LCAzMiwgMzIsIGRlZmxhdGVfZmFzdCksICAgICAgICAgIC8qIDMgKi8KCiAgICBuZXcgQ29uZmlnKDQsIDQsIDE2LCAxNiwgZGVmbGF0ZV9zbG93KSwgICAgICAgICAgLyogNCBsYXp5IG1hdGNoZXMgKi8KICAgIG5ldyBDb25maWcoOCwgMTYsIDMyLCAzMiwgZGVmbGF0ZV9zbG93KSwgICAgICAgICAvKiA1ICovCiAgICBuZXcgQ29uZmlnKDgsIDE2LCAxMjgsIDEyOCwgZGVmbGF0ZV9zbG93KSwgICAgICAgLyogNiAqLwogICAgbmV3IENvbmZpZyg4LCAzMiwgMTI4LCAyNTYsIGRlZmxhdGVfc2xvdyksICAgICAgIC8qIDcgKi8KICAgIG5ldyBDb25maWcoMzIsIDEyOCwgMjU4LCAxMDI0LCBkZWZsYXRlX3Nsb3cpLCAgICAvKiA4ICovCiAgICBuZXcgQ29uZmlnKDMyLCAyNTgsIDI1OCwgNDA5NiwgZGVmbGF0ZV9zbG93KSAgICAgLyogOSBtYXggY29tcHJlc3Npb24gKi8KICBdOwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogSW5pdGlhbGl6ZSB0aGUgImxvbmdlc3QgbWF0Y2giIHJvdXRpbmVzIGZvciBhIG5ldyB6bGliIHN0cmVhbQogICAqLwogIGNvbnN0IGxtX2luaXQgPSAocykgPT4gewoKICAgIHMud2luZG93X3NpemUgPSAyICogcy53X3NpemU7CgogICAgLyoqKiBDTEVBUl9IQVNIKHMpOyAqKiovCiAgICB6ZXJvKHMuaGVhZCk7IC8vIEZpbGwgd2l0aCBOSUwgKD0gMCk7CgogICAgLyogU2V0IHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyczoKICAgICAqLwogICAgcy5tYXhfbGF6eV9tYXRjaCA9IGNvbmZpZ3VyYXRpb25fdGFibGVbcy5sZXZlbF0ubWF4X2xhenk7CiAgICBzLmdvb2RfbWF0Y2ggPSBjb25maWd1cmF0aW9uX3RhYmxlW3MubGV2ZWxdLmdvb2RfbGVuZ3RoOwogICAgcy5uaWNlX21hdGNoID0gY29uZmlndXJhdGlvbl90YWJsZVtzLmxldmVsXS5uaWNlX2xlbmd0aDsKICAgIHMubWF4X2NoYWluX2xlbmd0aCA9IGNvbmZpZ3VyYXRpb25fdGFibGVbcy5sZXZlbF0ubWF4X2NoYWluOwoKICAgIHMuc3Ryc3RhcnQgPSAwOwogICAgcy5ibG9ja19zdGFydCA9IDA7CiAgICBzLmxvb2thaGVhZCA9IDA7CiAgICBzLmluc2VydCA9IDA7CiAgICBzLm1hdGNoX2xlbmd0aCA9IHMucHJldl9sZW5ndGggPSBNSU5fTUFUQ0ggLSAxOwogICAgcy5tYXRjaF9hdmFpbGFibGUgPSAwOwogICAgcy5pbnNfaCA9IDA7CiAgfTsKCgogIGZ1bmN0aW9uIERlZmxhdGVTdGF0ZSgpIHsKICAgIHRoaXMuc3RybSA9IG51bGw7ICAgICAgICAgICAgLyogcG9pbnRlciBiYWNrIHRvIHRoaXMgemxpYiBzdHJlYW0gKi8KICAgIHRoaXMuc3RhdHVzID0gMDsgICAgICAgICAgICAvKiBhcyB0aGUgbmFtZSBpbXBsaWVzICovCiAgICB0aGlzLnBlbmRpbmdfYnVmID0gbnVsbDsgICAgICAvKiBvdXRwdXQgc3RpbGwgcGVuZGluZyAqLwogICAgdGhpcy5wZW5kaW5nX2J1Zl9zaXplID0gMDsgIC8qIHNpemUgb2YgcGVuZGluZ19idWYgKi8KICAgIHRoaXMucGVuZGluZ19vdXQgPSAwOyAgICAgICAvKiBuZXh0IHBlbmRpbmcgYnl0ZSB0byBvdXRwdXQgdG8gdGhlIHN0cmVhbSAqLwogICAgdGhpcy5wZW5kaW5nID0gMDsgICAgICAgICAgIC8qIG5iIG9mIGJ5dGVzIGluIHRoZSBwZW5kaW5nIGJ1ZmZlciAqLwogICAgdGhpcy53cmFwID0gMDsgICAgICAgICAgICAgIC8qIGJpdCAwIHRydWUgZm9yIHpsaWIsIGJpdCAxIHRydWUgZm9yIGd6aXAgKi8KICAgIHRoaXMuZ3poZWFkID0gbnVsbDsgICAgICAgICAvKiBnemlwIGhlYWRlciBpbmZvcm1hdGlvbiB0byB3cml0ZSAqLwogICAgdGhpcy5nemluZGV4ID0gMDsgICAgICAgICAgIC8qIHdoZXJlIGluIGV4dHJhLCBuYW1lLCBvciBjb21tZW50ICovCiAgICB0aGlzLm1ldGhvZCA9IFpfREVGTEFURUQkMjsgLyogY2FuIG9ubHkgYmUgREVGTEFURUQgKi8KICAgIHRoaXMubGFzdF9mbHVzaCA9IC0xOyAgIC8qIHZhbHVlIG9mIGZsdXNoIHBhcmFtIGZvciBwcmV2aW91cyBkZWZsYXRlIGNhbGwgKi8KCiAgICB0aGlzLndfc2l6ZSA9IDA7ICAvKiBMWjc3IHdpbmRvdyBzaXplICgzMksgYnkgZGVmYXVsdCkgKi8KICAgIHRoaXMud19iaXRzID0gMDsgIC8qIGxvZzIod19zaXplKSAgKDguLjE2KSAqLwogICAgdGhpcy53X21hc2sgPSAwOyAgLyogd19zaXplIC0gMSAqLwoKICAgIHRoaXMud2luZG93ID0gbnVsbDsKICAgIC8qIFNsaWRpbmcgd2luZG93LiBJbnB1dCBieXRlcyBhcmUgcmVhZCBpbnRvIHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgd2luZG93LAogICAgICogYW5kIG1vdmUgdG8gdGhlIGZpcnN0IGhhbGYgbGF0ZXIgdG8ga2VlcCBhIGRpY3Rpb25hcnkgb2YgYXQgbGVhc3Qgd1NpemUKICAgICAqIGJ5dGVzLiBXaXRoIHRoaXMgb3JnYW5pemF0aW9uLCBtYXRjaGVzIGFyZSBsaW1pdGVkIHRvIGEgZGlzdGFuY2Ugb2YKICAgICAqIHdTaXplLU1BWF9NQVRDSCBieXRlcywgYnV0IHRoaXMgZW5zdXJlcyB0aGF0IElPIGlzIGFsd2F5cwogICAgICogcGVyZm9ybWVkIHdpdGggYSBsZW5ndGggbXVsdGlwbGUgb2YgdGhlIGJsb2NrIHNpemUuCiAgICAgKi8KCiAgICB0aGlzLndpbmRvd19zaXplID0gMDsKICAgIC8qIEFjdHVhbCBzaXplIG9mIHdpbmRvdzogMip3U2l6ZSwgZXhjZXB0IHdoZW4gdGhlIHVzZXIgaW5wdXQgYnVmZmVyCiAgICAgKiBpcyBkaXJlY3RseSB1c2VkIGFzIHNsaWRpbmcgd2luZG93LgogICAgICovCgogICAgdGhpcy5wcmV2ID0gbnVsbDsKICAgIC8qIExpbmsgdG8gb2xkZXIgc3RyaW5nIHdpdGggc2FtZSBoYXNoIGluZGV4LiBUbyBsaW1pdCB0aGUgc2l6ZSBvZiB0aGlzCiAgICAgKiBhcnJheSB0byA2NEssIHRoaXMgbGluayBpcyBtYWludGFpbmVkIG9ubHkgZm9yIHRoZSBsYXN0IDMySyBzdHJpbmdzLgogICAgICogQW4gaW5kZXggaW4gdGhpcyBhcnJheSBpcyB0aHVzIGEgd2luZG93IGluZGV4IG1vZHVsbyAzMksuCiAgICAgKi8KCiAgICB0aGlzLmhlYWQgPSBudWxsOyAgIC8qIEhlYWRzIG9mIHRoZSBoYXNoIGNoYWlucyBvciBOSUwuICovCgogICAgdGhpcy5pbnNfaCA9IDA7ICAgICAgIC8qIGhhc2ggaW5kZXggb2Ygc3RyaW5nIHRvIGJlIGluc2VydGVkICovCiAgICB0aGlzLmhhc2hfc2l6ZSA9IDA7ICAgLyogbnVtYmVyIG9mIGVsZW1lbnRzIGluIGhhc2ggdGFibGUgKi8KICAgIHRoaXMuaGFzaF9iaXRzID0gMDsgICAvKiBsb2cyKGhhc2hfc2l6ZSkgKi8KICAgIHRoaXMuaGFzaF9tYXNrID0gMDsgICAvKiBoYXNoX3NpemUtMSAqLwoKICAgIHRoaXMuaGFzaF9zaGlmdCA9IDA7CiAgICAvKiBOdW1iZXIgb2YgYml0cyBieSB3aGljaCBpbnNfaCBtdXN0IGJlIHNoaWZ0ZWQgYXQgZWFjaCBpbnB1dAogICAgICogc3RlcC4gSXQgbXVzdCBiZSBzdWNoIHRoYXQgYWZ0ZXIgTUlOX01BVENIIHN0ZXBzLCB0aGUgb2xkZXN0CiAgICAgKiBieXRlIG5vIGxvbmdlciB0YWtlcyBwYXJ0IGluIHRoZSBoYXNoIGtleSwgdGhhdCBpczoKICAgICAqICAgaGFzaF9zaGlmdCAqIE1JTl9NQVRDSCA+PSBoYXNoX2JpdHMKICAgICAqLwoKICAgIHRoaXMuYmxvY2tfc3RhcnQgPSAwOwogICAgLyogV2luZG93IHBvc2l0aW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgb3V0cHV0IGJsb2NrLiBHZXRzCiAgICAgKiBuZWdhdGl2ZSB3aGVuIHRoZSB3aW5kb3cgaXMgbW92ZWQgYmFja3dhcmRzLgogICAgICovCgogICAgdGhpcy5tYXRjaF9sZW5ndGggPSAwOyAgICAgIC8qIGxlbmd0aCBvZiBiZXN0IG1hdGNoICovCiAgICB0aGlzLnByZXZfbWF0Y2ggPSAwOyAgICAgICAgLyogcHJldmlvdXMgbWF0Y2ggKi8KICAgIHRoaXMubWF0Y2hfYXZhaWxhYmxlID0gMDsgICAvKiBzZXQgaWYgcHJldmlvdXMgbWF0Y2ggZXhpc3RzICovCiAgICB0aGlzLnN0cnN0YXJ0ID0gMDsgICAgICAgICAgLyogc3RhcnQgb2Ygc3RyaW5nIHRvIGluc2VydCAqLwogICAgdGhpcy5tYXRjaF9zdGFydCA9IDA7ICAgICAgIC8qIHN0YXJ0IG9mIG1hdGNoaW5nIHN0cmluZyAqLwogICAgdGhpcy5sb29rYWhlYWQgPSAwOyAgICAgICAgIC8qIG51bWJlciBvZiB2YWxpZCBieXRlcyBhaGVhZCBpbiB3aW5kb3cgKi8KCiAgICB0aGlzLnByZXZfbGVuZ3RoID0gMDsKICAgIC8qIExlbmd0aCBvZiB0aGUgYmVzdCBtYXRjaCBhdCBwcmV2aW91cyBzdGVwLiBNYXRjaGVzIG5vdCBncmVhdGVyIHRoYW4gdGhpcwogICAgICogYXJlIGRpc2NhcmRlZC4gVGhpcyBpcyB1c2VkIGluIHRoZSBsYXp5IG1hdGNoIGV2YWx1YXRpb24uCiAgICAgKi8KCiAgICB0aGlzLm1heF9jaGFpbl9sZW5ndGggPSAwOwogICAgLyogVG8gc3BlZWQgdXAgZGVmbGF0aW9uLCBoYXNoIGNoYWlucyBhcmUgbmV2ZXIgc2VhcmNoZWQgYmV5b25kIHRoaXMKICAgICAqIGxlbmd0aC4gIEEgaGlnaGVyIGxpbWl0IGltcHJvdmVzIGNvbXByZXNzaW9uIHJhdGlvIGJ1dCBkZWdyYWRlcyB0aGUKICAgICAqIHNwZWVkLgogICAgICovCgogICAgdGhpcy5tYXhfbGF6eV9tYXRjaCA9IDA7CiAgICAvKiBBdHRlbXB0IHRvIGZpbmQgYSBiZXR0ZXIgbWF0Y2ggb25seSB3aGVuIHRoZSBjdXJyZW50IG1hdGNoIGlzIHN0cmljdGx5CiAgICAgKiBzbWFsbGVyIHRoYW4gdGhpcyB2YWx1ZS4gVGhpcyBtZWNoYW5pc20gaXMgdXNlZCBvbmx5IGZvciBjb21wcmVzc2lvbgogICAgICogbGV2ZWxzID49IDQuCiAgICAgKi8KICAgIC8vIFRoYXQncyBhbGlhcyB0byBtYXhfbGF6eV9tYXRjaCwgZG9uJ3QgdXNlIGRpcmVjdGx5CiAgICAvL3RoaXMubWF4X2luc2VydF9sZW5ndGggPSAwOwogICAgLyogSW5zZXJ0IG5ldyBzdHJpbmdzIGluIHRoZSBoYXNoIHRhYmxlIG9ubHkgaWYgdGhlIG1hdGNoIGxlbmd0aCBpcyBub3QKICAgICAqIGdyZWF0ZXIgdGhhbiB0aGlzIGxlbmd0aC4gVGhpcyBzYXZlcyB0aW1lIGJ1dCBkZWdyYWRlcyBjb21wcmVzc2lvbi4KICAgICAqIG1heF9pbnNlcnRfbGVuZ3RoIGlzIHVzZWQgb25seSBmb3IgY29tcHJlc3Npb24gbGV2ZWxzIDw9IDMuCiAgICAgKi8KCiAgICB0aGlzLmxldmVsID0gMDsgICAgIC8qIGNvbXByZXNzaW9uIGxldmVsICgxLi45KSAqLwogICAgdGhpcy5zdHJhdGVneSA9IDA7ICAvKiBmYXZvciBvciBmb3JjZSBIdWZmbWFuIGNvZGluZyovCgogICAgdGhpcy5nb29kX21hdGNoID0gMDsKICAgIC8qIFVzZSBhIGZhc3RlciBzZWFyY2ggd2hlbiB0aGUgcHJldmlvdXMgbWF0Y2ggaXMgbG9uZ2VyIHRoYW4gdGhpcyAqLwoKICAgIHRoaXMubmljZV9tYXRjaCA9IDA7IC8qIFN0b3Agc2VhcmNoaW5nIHdoZW4gY3VycmVudCBtYXRjaCBleGNlZWRzIHRoaXMgKi8KCiAgICAgICAgICAgICAgICAvKiB1c2VkIGJ5IHRyZWVzLmM6ICovCgogICAgLyogRGlkbid0IHVzZSBjdF9kYXRhIHR5cGVkZWYgYmVsb3cgdG8gc3VwcHJlc3MgY29tcGlsZXIgd2FybmluZyAqLwoKICAgIC8vIHN0cnVjdCBjdF9kYXRhX3MgZHluX2x0cmVlW0hFQVBfU0laRV07ICAgLyogbGl0ZXJhbCBhbmQgbGVuZ3RoIHRyZWUgKi8KICAgIC8vIHN0cnVjdCBjdF9kYXRhX3MgZHluX2R0cmVlWzIqRF9DT0RFUysxXTsgLyogZGlzdGFuY2UgdHJlZSAqLwogICAgLy8gc3RydWN0IGN0X2RhdGFfcyBibF90cmVlWzIqQkxfQ09ERVMrMV07ICAvKiBIdWZmbWFuIHRyZWUgZm9yIGJpdCBsZW5ndGhzICovCgogICAgLy8gVXNlIGZsYXQgYXJyYXkgb2YgRE9VQkxFIHNpemUsIHdpdGggaW50ZXJsZWF2ZWQgZmF0YSwKICAgIC8vIGJlY2F1c2UgSlMgZG9lcyBub3Qgc3VwcG9ydCBlZmZlY3RpdmUKICAgIHRoaXMuZHluX2x0cmVlICA9IG5ldyBVaW50MTZBcnJheShIRUFQX1NJWkUgKiAyKTsKICAgIHRoaXMuZHluX2R0cmVlICA9IG5ldyBVaW50MTZBcnJheSgoMiAqIERfQ09ERVMgKyAxKSAqIDIpOwogICAgdGhpcy5ibF90cmVlICAgID0gbmV3IFVpbnQxNkFycmF5KCgyICogQkxfQ09ERVMgKyAxKSAqIDIpOwogICAgemVybyh0aGlzLmR5bl9sdHJlZSk7CiAgICB6ZXJvKHRoaXMuZHluX2R0cmVlKTsKICAgIHplcm8odGhpcy5ibF90cmVlKTsKCiAgICB0aGlzLmxfZGVzYyAgID0gbnVsbDsgICAgICAgICAvKiBkZXNjLiBmb3IgbGl0ZXJhbCB0cmVlICovCiAgICB0aGlzLmRfZGVzYyAgID0gbnVsbDsgICAgICAgICAvKiBkZXNjLiBmb3IgZGlzdGFuY2UgdHJlZSAqLwogICAgdGhpcy5ibF9kZXNjICA9IG51bGw7ICAgICAgICAgLyogZGVzYy4gZm9yIGJpdCBsZW5ndGggdHJlZSAqLwoKICAgIC8vdXNoIGJsX2NvdW50W01BWF9CSVRTKzFdOwogICAgdGhpcy5ibF9jb3VudCA9IG5ldyBVaW50MTZBcnJheShNQVhfQklUUyArIDEpOwogICAgLyogbnVtYmVyIG9mIGNvZGVzIGF0IGVhY2ggYml0IGxlbmd0aCBmb3IgYW4gb3B0aW1hbCB0cmVlICovCgogICAgLy9pbnQgaGVhcFsyKkxfQ09ERVMrMV07ICAgICAgLyogaGVhcCB1c2VkIHRvIGJ1aWxkIHRoZSBIdWZmbWFuIHRyZWVzICovCiAgICB0aGlzLmhlYXAgPSBuZXcgVWludDE2QXJyYXkoMiAqIExfQ09ERVMgKyAxKTsgIC8qIGhlYXAgdXNlZCB0byBidWlsZCB0aGUgSHVmZm1hbiB0cmVlcyAqLwogICAgemVybyh0aGlzLmhlYXApOwoKICAgIHRoaXMuaGVhcF9sZW4gPSAwOyAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgaGVhcCAqLwogICAgdGhpcy5oZWFwX21heCA9IDA7ICAgICAgICAgICAgICAgLyogZWxlbWVudCBvZiBsYXJnZXN0IGZyZXF1ZW5jeSAqLwogICAgLyogVGhlIHNvbnMgb2YgaGVhcFtuXSBhcmUgaGVhcFsyKm5dIGFuZCBoZWFwWzIqbisxXS4gaGVhcFswXSBpcyBub3QgdXNlZC4KICAgICAqIFRoZSBzYW1lIGhlYXAgYXJyYXkgaXMgdXNlZCB0byBidWlsZCBhbGwgdHJlZXMuCiAgICAgKi8KCiAgICB0aGlzLmRlcHRoID0gbmV3IFVpbnQxNkFycmF5KDIgKiBMX0NPREVTICsgMSk7IC8vdWNoIGRlcHRoWzIqTF9DT0RFUysxXTsKICAgIHplcm8odGhpcy5kZXB0aCk7CiAgICAvKiBEZXB0aCBvZiBlYWNoIHN1YnRyZWUgdXNlZCBhcyB0aWUgYnJlYWtlciBmb3IgdHJlZXMgb2YgZXF1YWwgZnJlcXVlbmN5CiAgICAgKi8KCiAgICB0aGlzLmxfYnVmID0gMDsgICAgICAgICAgLyogYnVmZmVyIGluZGV4IGZvciBsaXRlcmFscyBvciBsZW5ndGhzICovCgogICAgdGhpcy5saXRfYnVmc2l6ZSA9IDA7CiAgICAvKiBTaXplIG9mIG1hdGNoIGJ1ZmZlciBmb3IgbGl0ZXJhbHMvbGVuZ3Rocy4gIFRoZXJlIGFyZSA0IHJlYXNvbnMgZm9yCiAgICAgKiBsaW1pdGluZyBsaXRfYnVmc2l6ZSB0byA2NEs6CiAgICAgKiAgIC0gZnJlcXVlbmNpZXMgY2FuIGJlIGtlcHQgaW4gMTYgYml0IGNvdW50ZXJzCiAgICAgKiAgIC0gaWYgY29tcHJlc3Npb24gaXMgbm90IHN1Y2Nlc3NmdWwgZm9yIHRoZSBmaXJzdCBibG9jaywgYWxsIGlucHV0CiAgICAgKiAgICAgZGF0YSBpcyBzdGlsbCBpbiB0aGUgd2luZG93IHNvIHdlIGNhbiBzdGlsbCBlbWl0IGEgc3RvcmVkIGJsb2NrIGV2ZW4KICAgICAqICAgICB3aGVuIGlucHV0IGNvbWVzIGZyb20gc3RhbmRhcmQgaW5wdXQuICAoVGhpcyBjYW4gYWxzbyBiZSBkb25lIGZvcgogICAgICogICAgIGFsbCBibG9ja3MgaWYgbGl0X2J1ZnNpemUgaXMgbm90IGdyZWF0ZXIgdGhhbiAzMksuKQogICAgICogICAtIGlmIGNvbXByZXNzaW9uIGlzIG5vdCBzdWNjZXNzZnVsIGZvciBhIGZpbGUgc21hbGxlciB0aGFuIDY0Sywgd2UgY2FuCiAgICAgKiAgICAgZXZlbiBlbWl0IGEgc3RvcmVkIGZpbGUgaW5zdGVhZCBvZiBhIHN0b3JlZCBibG9jayAoc2F2aW5nIDUgYnl0ZXMpLgogICAgICogICAgIFRoaXMgaXMgYXBwbGljYWJsZSBvbmx5IGZvciB6aXAgKG5vdCBnemlwIG9yIHpsaWIpLgogICAgICogICAtIGNyZWF0aW5nIG5ldyBIdWZmbWFuIHRyZWVzIGxlc3MgZnJlcXVlbnRseSBtYXkgbm90IHByb3ZpZGUgZmFzdAogICAgICogICAgIGFkYXB0YXRpb24gdG8gY2hhbmdlcyBpbiB0aGUgaW5wdXQgZGF0YSBzdGF0aXN0aWNzLiAoVGFrZSBmb3IKICAgICAqICAgICBleGFtcGxlIGEgYmluYXJ5IGZpbGUgd2l0aCBwb29ybHkgY29tcHJlc3NpYmxlIGNvZGUgZm9sbG93ZWQgYnkKICAgICAqICAgICBhIGhpZ2hseSBjb21wcmVzc2libGUgc3RyaW5nIHRhYmxlLikgU21hbGxlciBidWZmZXIgc2l6ZXMgZ2l2ZQogICAgICogICAgIGZhc3QgYWRhcHRhdGlvbiBidXQgaGF2ZSBvZiBjb3Vyc2UgdGhlIG92ZXJoZWFkIG9mIHRyYW5zbWl0dGluZwogICAgICogICAgIHRyZWVzIG1vcmUgZnJlcXVlbnRseS4KICAgICAqICAgLSBJIGNhbid0IGNvdW50IGFib3ZlIDQKICAgICAqLwoKICAgIHRoaXMubGFzdF9saXQgPSAwOyAgICAgIC8qIHJ1bm5pbmcgaW5kZXggaW4gbF9idWYgKi8KCiAgICB0aGlzLmRfYnVmID0gMDsKICAgIC8qIEJ1ZmZlciBpbmRleCBmb3IgZGlzdGFuY2VzLiBUbyBzaW1wbGlmeSB0aGUgY29kZSwgZF9idWYgYW5kIGxfYnVmIGhhdmUKICAgICAqIHRoZSBzYW1lIG51bWJlciBvZiBlbGVtZW50cy4gVG8gdXNlIGRpZmZlcmVudCBsZW5ndGhzLCBhbiBleHRyYSBmbGFnCiAgICAgKiBhcnJheSB3b3VsZCBiZSBuZWNlc3NhcnkuCiAgICAgKi8KCiAgICB0aGlzLm9wdF9sZW4gPSAwOyAgICAgICAvKiBiaXQgbGVuZ3RoIG9mIGN1cnJlbnQgYmxvY2sgd2l0aCBvcHRpbWFsIHRyZWVzICovCiAgICB0aGlzLnN0YXRpY19sZW4gPSAwOyAgICAvKiBiaXQgbGVuZ3RoIG9mIGN1cnJlbnQgYmxvY2sgd2l0aCBzdGF0aWMgdHJlZXMgKi8KICAgIHRoaXMubWF0Y2hlcyA9IDA7ICAgICAgIC8qIG51bWJlciBvZiBzdHJpbmcgbWF0Y2hlcyBpbiBjdXJyZW50IGJsb2NrICovCiAgICB0aGlzLmluc2VydCA9IDA7ICAgICAgICAvKiBieXRlcyBhdCBlbmQgb2Ygd2luZG93IGxlZnQgdG8gaW5zZXJ0ICovCgoKICAgIHRoaXMuYmlfYnVmID0gMDsKICAgIC8qIE91dHB1dCBidWZmZXIuIGJpdHMgYXJlIGluc2VydGVkIHN0YXJ0aW5nIGF0IHRoZSBib3R0b20gKGxlYXN0CiAgICAgKiBzaWduaWZpY2FudCBiaXRzKS4KICAgICAqLwogICAgdGhpcy5iaV92YWxpZCA9IDA7CiAgICAvKiBOdW1iZXIgb2YgdmFsaWQgYml0cyBpbiBiaV9idWYuICBBbGwgYml0cyBhYm92ZSB0aGUgbGFzdCB2YWxpZCBiaXQKICAgICAqIGFyZSBhbHdheXMgemVyby4KICAgICAqLwoKICAgIC8vIFVzZWQgZm9yIHdpbmRvdyBtZW1vcnkgaW5pdC4gV2Ugc2FmZWx5IGlnbm9yZSBpdCBmb3IgSlMuIFRoYXQgbWFrZXMKICAgIC8vIHNlbnNlIG9ubHkgZm9yIHBvaW50ZXJzIGFuZCBtZW1vcnkgY2hlY2sgdG9vbHMuCiAgICAvL3RoaXMuaGlnaF93YXRlciA9IDA7CiAgICAvKiBIaWdoIHdhdGVyIG1hcmsgb2Zmc2V0IGluIHdpbmRvdyBmb3IgaW5pdGlhbGl6ZWQgYnl0ZXMgLS0gYnl0ZXMgYWJvdmUKICAgICAqIHRoaXMgYXJlIHNldCB0byB6ZXJvIGluIG9yZGVyIHRvIGF2b2lkIG1lbW9yeSBjaGVjayB3YXJuaW5ncyB3aGVuCiAgICAgKiBsb25nZXN0IG1hdGNoIHJvdXRpbmVzIGFjY2VzcyBieXRlcyBwYXN0IHRoZSBpbnB1dC4gIFRoaXMgaXMgdGhlbgogICAgICogdXBkYXRlZCB0byB0aGUgbmV3IGhpZ2ggd2F0ZXIgbWFyay4KICAgICAqLwogIH0KCgogIGNvbnN0IGRlZmxhdGVSZXNldEtlZXAgPSAoc3RybSkgPT4gewoKICAgIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSkgewogICAgICByZXR1cm4gZXJyKHN0cm0sIFpfU1RSRUFNX0VSUk9SJDIpOwogICAgfQoKICAgIHN0cm0udG90YWxfaW4gPSBzdHJtLnRvdGFsX291dCA9IDA7CiAgICBzdHJtLmRhdGFfdHlwZSA9IFpfVU5LTk9XTjsKCiAgICBjb25zdCBzID0gc3RybS5zdGF0ZTsKICAgIHMucGVuZGluZyA9IDA7CiAgICBzLnBlbmRpbmdfb3V0ID0gMDsKCiAgICBpZiAocy53cmFwIDwgMCkgewogICAgICBzLndyYXAgPSAtcy53cmFwOwogICAgICAvKiB3YXMgbWFkZSBuZWdhdGl2ZSBieSBkZWZsYXRlKC4uLiwgWl9GSU5JU0gpOyAqLwogICAgfQogICAgcy5zdGF0dXMgPSAocy53cmFwID8gSU5JVF9TVEFURSA6IEJVU1lfU1RBVEUpOwogICAgc3RybS5hZGxlciA9IChzLndyYXAgPT09IDIpID8KICAgICAgMCAgLy8gY3JjMzIoMCwgWl9OVUxMLCAwKQogICAgOgogICAgICAxOyAvLyBhZGxlcjMyKDAsIFpfTlVMTCwgMCkKICAgIHMubGFzdF9mbHVzaCA9IFpfTk9fRkxVU0gkMjsKICAgIF90cl9pbml0KHMpOwogICAgcmV0dXJuIFpfT0skMzsKICB9OwoKCiAgY29uc3QgZGVmbGF0ZVJlc2V0ID0gKHN0cm0pID0+IHsKCiAgICBjb25zdCByZXQgPSBkZWZsYXRlUmVzZXRLZWVwKHN0cm0pOwogICAgaWYgKHJldCA9PT0gWl9PSyQzKSB7CiAgICAgIGxtX2luaXQoc3RybS5zdGF0ZSk7CiAgICB9CiAgICByZXR1cm4gcmV0OwogIH07CgoKICBjb25zdCBkZWZsYXRlU2V0SGVhZGVyID0gKHN0cm0sIGhlYWQpID0+IHsKCiAgICBpZiAoIXN0cm0gfHwgIXN0cm0uc3RhdGUpIHsgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDI7IH0KICAgIGlmIChzdHJtLnN0YXRlLndyYXAgIT09IDIpIHsgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDI7IH0KICAgIHN0cm0uc3RhdGUuZ3poZWFkID0gaGVhZDsKICAgIHJldHVybiBaX09LJDM7CiAgfTsKCgogIGNvbnN0IGRlZmxhdGVJbml0MiA9IChzdHJtLCBsZXZlbCwgbWV0aG9kLCB3aW5kb3dCaXRzLCBtZW1MZXZlbCwgc3RyYXRlZ3kpID0+IHsKCiAgICBpZiAoIXN0cm0pIHsgLy8gPT09IFpfTlVMTAogICAgICByZXR1cm4gWl9TVFJFQU1fRVJST1IkMjsKICAgIH0KICAgIGxldCB3cmFwID0gMTsKCiAgICBpZiAobGV2ZWwgPT09IFpfREVGQVVMVF9DT01QUkVTU0lPTiQxKSB7CiAgICAgIGxldmVsID0gNjsKICAgIH0KCiAgICBpZiAod2luZG93Qml0cyA8IDApIHsgLyogc3VwcHJlc3MgemxpYiB3cmFwcGVyICovCiAgICAgIHdyYXAgPSAwOwogICAgICB3aW5kb3dCaXRzID0gLXdpbmRvd0JpdHM7CiAgICB9CgogICAgZWxzZSBpZiAod2luZG93Qml0cyA+IDE1KSB7CiAgICAgIHdyYXAgPSAyOyAgICAgICAgICAgLyogd3JpdGUgZ3ppcCB3cmFwcGVyIGluc3RlYWQgKi8KICAgICAgd2luZG93Qml0cyAtPSAxNjsKICAgIH0KCgogICAgaWYgKG1lbUxldmVsIDwgMSB8fCBtZW1MZXZlbCA+IE1BWF9NRU1fTEVWRUwgfHwgbWV0aG9kICE9PSBaX0RFRkxBVEVEJDIgfHwKICAgICAgd2luZG93Qml0cyA8IDggfHwgd2luZG93Qml0cyA+IDE1IHx8IGxldmVsIDwgMCB8fCBsZXZlbCA+IDkgfHwKICAgICAgc3RyYXRlZ3kgPCAwIHx8IHN0cmF0ZWd5ID4gWl9GSVhFRCkgewogICAgICByZXR1cm4gZXJyKHN0cm0sIFpfU1RSRUFNX0VSUk9SJDIpOwogICAgfQoKCiAgICBpZiAod2luZG93Qml0cyA9PT0gOCkgewogICAgICB3aW5kb3dCaXRzID0gOTsKICAgIH0KICAgIC8qIHVudGlsIDI1Ni1ieXRlIHdpbmRvdyBidWcgZml4ZWQgKi8KCiAgICBjb25zdCBzID0gbmV3IERlZmxhdGVTdGF0ZSgpOwoKICAgIHN0cm0uc3RhdGUgPSBzOwogICAgcy5zdHJtID0gc3RybTsKCiAgICBzLndyYXAgPSB3cmFwOwogICAgcy5nemhlYWQgPSBudWxsOwogICAgcy53X2JpdHMgPSB3aW5kb3dCaXRzOwogICAgcy53X3NpemUgPSAxIDw8IHMud19iaXRzOwogICAgcy53X21hc2sgPSBzLndfc2l6ZSAtIDE7CgogICAgcy5oYXNoX2JpdHMgPSBtZW1MZXZlbCArIDc7CiAgICBzLmhhc2hfc2l6ZSA9IDEgPDwgcy5oYXNoX2JpdHM7CiAgICBzLmhhc2hfbWFzayA9IHMuaGFzaF9zaXplIC0gMTsKICAgIHMuaGFzaF9zaGlmdCA9IH5+KChzLmhhc2hfYml0cyArIE1JTl9NQVRDSCAtIDEpIC8gTUlOX01BVENIKTsKCiAgICBzLndpbmRvdyA9IG5ldyBVaW50OEFycmF5KHMud19zaXplICogMik7CiAgICBzLmhlYWQgPSBuZXcgVWludDE2QXJyYXkocy5oYXNoX3NpemUpOwogICAgcy5wcmV2ID0gbmV3IFVpbnQxNkFycmF5KHMud19zaXplKTsKCiAgICAvLyBEb24ndCBuZWVkIG1lbSBpbml0IG1hZ2ljIGZvciBKUy4KICAgIC8vcy5oaWdoX3dhdGVyID0gMDsgIC8qIG5vdGhpbmcgd3JpdHRlbiB0byBzLT53aW5kb3cgeWV0ICovCgogICAgcy5saXRfYnVmc2l6ZSA9IDEgPDwgKG1lbUxldmVsICsgNik7IC8qIDE2SyBlbGVtZW50cyBieSBkZWZhdWx0ICovCgogICAgcy5wZW5kaW5nX2J1Zl9zaXplID0gcy5saXRfYnVmc2l6ZSAqIDQ7CgogICAgLy9vdmVybGF5ID0gKHVzaGYgKikgWkFMTE9DKHN0cm0sIHMtPmxpdF9idWZzaXplLCBzaXplb2YodXNoKSsyKTsKICAgIC8vcy0+cGVuZGluZ19idWYgPSAodWNoZiAqKSBvdmVybGF5OwogICAgcy5wZW5kaW5nX2J1ZiA9IG5ldyBVaW50OEFycmF5KHMucGVuZGluZ19idWZfc2l6ZSk7CgogICAgLy8gSXQgaXMgb2Zmc2V0IGZyb20gYHMucGVuZGluZ19idWZgIChzaXplIGlzIGBzLmxpdF9idWZzaXplICogMmApCiAgICAvL3MtPmRfYnVmID0gb3ZlcmxheSArIHMtPmxpdF9idWZzaXplL3NpemVvZih1c2gpOwogICAgcy5kX2J1ZiA9IDEgKiBzLmxpdF9idWZzaXplOwoKICAgIC8vcy0+bF9idWYgPSBzLT5wZW5kaW5nX2J1ZiArICgxK3NpemVvZih1c2gpKSpzLT5saXRfYnVmc2l6ZTsKICAgIHMubF9idWYgPSAoMSArIDIpICogcy5saXRfYnVmc2l6ZTsKCiAgICBzLmxldmVsID0gbGV2ZWw7CiAgICBzLnN0cmF0ZWd5ID0gc3RyYXRlZ3k7CiAgICBzLm1ldGhvZCA9IG1ldGhvZDsKCiAgICByZXR1cm4gZGVmbGF0ZVJlc2V0KHN0cm0pOwogIH07CgogIGNvbnN0IGRlZmxhdGVJbml0ID0gKHN0cm0sIGxldmVsKSA9PiB7CgogICAgcmV0dXJuIGRlZmxhdGVJbml0MihzdHJtLCBsZXZlbCwgWl9ERUZMQVRFRCQyLCBNQVhfV0JJVFMkMSwgREVGX01FTV9MRVZFTCwgWl9ERUZBVUxUX1NUUkFURUdZJDEpOwogIH07CgoKICBjb25zdCBkZWZsYXRlJDIgPSAoc3RybSwgZmx1c2gpID0+IHsKCiAgICBsZXQgYmVnLCB2YWw7IC8vIGZvciBnemlwIGhlYWRlciB3cml0ZSBvbmx5CgogICAgaWYgKCFzdHJtIHx8ICFzdHJtLnN0YXRlIHx8CiAgICAgIGZsdXNoID4gWl9CTE9DSyQxIHx8IGZsdXNoIDwgMCkgewogICAgICByZXR1cm4gc3RybSA/IGVycihzdHJtLCBaX1NUUkVBTV9FUlJPUiQyKSA6IFpfU1RSRUFNX0VSUk9SJDI7CiAgICB9CgogICAgY29uc3QgcyA9IHN0cm0uc3RhdGU7CgogICAgaWYgKCFzdHJtLm91dHB1dCB8fAogICAgICAgICghc3RybS5pbnB1dCAmJiBzdHJtLmF2YWlsX2luICE9PSAwKSB8fAogICAgICAgIChzLnN0YXR1cyA9PT0gRklOSVNIX1NUQVRFICYmIGZsdXNoICE9PSBaX0ZJTklTSCQzKSkgewogICAgICByZXR1cm4gZXJyKHN0cm0sIChzdHJtLmF2YWlsX291dCA9PT0gMCkgPyBaX0JVRl9FUlJPUiQxIDogWl9TVFJFQU1fRVJST1IkMik7CiAgICB9CgogICAgcy5zdHJtID0gc3RybTsgLyoganVzdCBpbiBjYXNlICovCiAgICBjb25zdCBvbGRfZmx1c2ggPSBzLmxhc3RfZmx1c2g7CiAgICBzLmxhc3RfZmx1c2ggPSBmbHVzaDsKCiAgICAvKiBXcml0ZSB0aGUgaGVhZGVyICovCiAgICBpZiAocy5zdGF0dXMgPT09IElOSVRfU1RBVEUpIHsKCiAgICAgIGlmIChzLndyYXAgPT09IDIpIHsgLy8gR1pJUCBoZWFkZXIKICAgICAgICBzdHJtLmFkbGVyID0gMDsgIC8vY3JjMzIoMEwsIFpfTlVMTCwgMCk7CiAgICAgICAgcHV0X2J5dGUocywgMzEpOwogICAgICAgIHB1dF9ieXRlKHMsIDEzOSk7CiAgICAgICAgcHV0X2J5dGUocywgOCk7CiAgICAgICAgaWYgKCFzLmd6aGVhZCkgeyAvLyBzLT5nemhlYWQgPT0gWl9OVUxMCiAgICAgICAgICBwdXRfYnl0ZShzLCAwKTsKICAgICAgICAgIHB1dF9ieXRlKHMsIDApOwogICAgICAgICAgcHV0X2J5dGUocywgMCk7CiAgICAgICAgICBwdXRfYnl0ZShzLCAwKTsKICAgICAgICAgIHB1dF9ieXRlKHMsIDApOwogICAgICAgICAgcHV0X2J5dGUocywgcy5sZXZlbCA9PT0gOSA/IDIgOgogICAgICAgICAgICAgICAgICAgICAgKHMuc3RyYXRlZ3kgPj0gWl9IVUZGTUFOX09OTFkgfHwgcy5sZXZlbCA8IDIgPwogICAgICAgICAgICAgICAgICAgICAgIDQgOiAwKSk7CiAgICAgICAgICBwdXRfYnl0ZShzLCBPU19DT0RFKTsKICAgICAgICAgIHMuc3RhdHVzID0gQlVTWV9TVEFURTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBwdXRfYnl0ZShzLCAocy5nemhlYWQudGV4dCA/IDEgOiAwKSArCiAgICAgICAgICAgICAgICAgICAgICAocy5nemhlYWQuaGNyYyA/IDIgOiAwKSArCiAgICAgICAgICAgICAgICAgICAgICAoIXMuZ3poZWFkLmV4dHJhID8gMCA6IDQpICsKICAgICAgICAgICAgICAgICAgICAgICghcy5nemhlYWQubmFtZSA/IDAgOiA4KSArCiAgICAgICAgICAgICAgICAgICAgICAoIXMuZ3poZWFkLmNvbW1lbnQgPyAwIDogMTYpCiAgICAgICAgICApOwogICAgICAgICAgcHV0X2J5dGUocywgcy5nemhlYWQudGltZSAmIDB4ZmYpOwogICAgICAgICAgcHV0X2J5dGUocywgKHMuZ3poZWFkLnRpbWUgPj4gOCkgJiAweGZmKTsKICAgICAgICAgIHB1dF9ieXRlKHMsIChzLmd6aGVhZC50aW1lID4+IDE2KSAmIDB4ZmYpOwogICAgICAgICAgcHV0X2J5dGUocywgKHMuZ3poZWFkLnRpbWUgPj4gMjQpICYgMHhmZik7CiAgICAgICAgICBwdXRfYnl0ZShzLCBzLmxldmVsID09PSA5ID8gMiA6CiAgICAgICAgICAgICAgICAgICAgICAocy5zdHJhdGVneSA+PSBaX0hVRkZNQU5fT05MWSB8fCBzLmxldmVsIDwgMiA/CiAgICAgICAgICAgICAgICAgICAgICAgNCA6IDApKTsKICAgICAgICAgIHB1dF9ieXRlKHMsIHMuZ3poZWFkLm9zICYgMHhmZik7CiAgICAgICAgICBpZiAocy5nemhlYWQuZXh0cmEgJiYgcy5nemhlYWQuZXh0cmEubGVuZ3RoKSB7CiAgICAgICAgICAgIHB1dF9ieXRlKHMsIHMuZ3poZWFkLmV4dHJhLmxlbmd0aCAmIDB4ZmYpOwogICAgICAgICAgICBwdXRfYnl0ZShzLCAocy5nemhlYWQuZXh0cmEubGVuZ3RoID4+IDgpICYgMHhmZik7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocy5nemhlYWQuaGNyYykgewogICAgICAgICAgICBzdHJtLmFkbGVyID0gY3JjMzJfMShzdHJtLmFkbGVyLCBzLnBlbmRpbmdfYnVmLCBzLnBlbmRpbmcsIDApOwogICAgICAgICAgfQogICAgICAgICAgcy5nemluZGV4ID0gMDsKICAgICAgICAgIHMuc3RhdHVzID0gRVhUUkFfU1RBVEU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UgLy8gREVGTEFURSBoZWFkZXIKICAgICAgewogICAgICAgIGxldCBoZWFkZXIgPSAoWl9ERUZMQVRFRCQyICsgKChzLndfYml0cyAtIDgpIDw8IDQpKSA8PCA4OwogICAgICAgIGxldCBsZXZlbF9mbGFncyA9IC0xOwoKICAgICAgICBpZiAocy5zdHJhdGVneSA+PSBaX0hVRkZNQU5fT05MWSB8fCBzLmxldmVsIDwgMikgewogICAgICAgICAgbGV2ZWxfZmxhZ3MgPSAwOwogICAgICAgIH0gZWxzZSBpZiAocy5sZXZlbCA8IDYpIHsKICAgICAgICAgIGxldmVsX2ZsYWdzID0gMTsKICAgICAgICB9IGVsc2UgaWYgKHMubGV2ZWwgPT09IDYpIHsKICAgICAgICAgIGxldmVsX2ZsYWdzID0gMjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbGV2ZWxfZmxhZ3MgPSAzOwogICAgICAgIH0KICAgICAgICBoZWFkZXIgfD0gKGxldmVsX2ZsYWdzIDw8IDYpOwogICAgICAgIGlmIChzLnN0cnN0YXJ0ICE9PSAwKSB7IGhlYWRlciB8PSBQUkVTRVRfRElDVDsgfQogICAgICAgIGhlYWRlciArPSAzMSAtIChoZWFkZXIgJSAzMSk7CgogICAgICAgIHMuc3RhdHVzID0gQlVTWV9TVEFURTsKICAgICAgICBwdXRTaG9ydE1TQihzLCBoZWFkZXIpOwoKICAgICAgICAvKiBTYXZlIHRoZSBhZGxlcjMyIG9mIHRoZSBwcmVzZXQgZGljdGlvbmFyeTogKi8KICAgICAgICBpZiAocy5zdHJzdGFydCAhPT0gMCkgewogICAgICAgICAgcHV0U2hvcnRNU0Iocywgc3RybS5hZGxlciA+Pj4gMTYpOwogICAgICAgICAgcHV0U2hvcnRNU0Iocywgc3RybS5hZGxlciAmIDB4ZmZmZik7CiAgICAgICAgfQogICAgICAgIHN0cm0uYWRsZXIgPSAxOyAvLyBhZGxlcjMyKDBMLCBaX05VTEwsIDApOwogICAgICB9CiAgICB9CgogIC8vI2lmZGVmIEdaSVAKICAgIGlmIChzLnN0YXR1cyA9PT0gRVhUUkFfU1RBVEUpIHsKICAgICAgaWYgKHMuZ3poZWFkLmV4dHJhLyogIT0gWl9OVUxMKi8pIHsKICAgICAgICBiZWcgPSBzLnBlbmRpbmc7ICAvKiBzdGFydCBvZiBieXRlcyB0byB1cGRhdGUgY3JjICovCgogICAgICAgIHdoaWxlIChzLmd6aW5kZXggPCAocy5nemhlYWQuZXh0cmEubGVuZ3RoICYgMHhmZmZmKSkgewogICAgICAgICAgaWYgKHMucGVuZGluZyA9PT0gcy5wZW5kaW5nX2J1Zl9zaXplKSB7CiAgICAgICAgICAgIGlmIChzLmd6aGVhZC5oY3JjICYmIHMucGVuZGluZyA+IGJlZykgewogICAgICAgICAgICAgIHN0cm0uYWRsZXIgPSBjcmMzMl8xKHN0cm0uYWRsZXIsIHMucGVuZGluZ19idWYsIHMucGVuZGluZyAtIGJlZywgYmVnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmbHVzaF9wZW5kaW5nKHN0cm0pOwogICAgICAgICAgICBiZWcgPSBzLnBlbmRpbmc7CiAgICAgICAgICAgIGlmIChzLnBlbmRpbmcgPT09IHMucGVuZGluZ19idWZfc2l6ZSkgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBwdXRfYnl0ZShzLCBzLmd6aGVhZC5leHRyYVtzLmd6aW5kZXhdICYgMHhmZik7CiAgICAgICAgICBzLmd6aW5kZXgrKzsKICAgICAgICB9CiAgICAgICAgaWYgKHMuZ3poZWFkLmhjcmMgJiYgcy5wZW5kaW5nID4gYmVnKSB7CiAgICAgICAgICBzdHJtLmFkbGVyID0gY3JjMzJfMShzdHJtLmFkbGVyLCBzLnBlbmRpbmdfYnVmLCBzLnBlbmRpbmcgLSBiZWcsIGJlZyk7CiAgICAgICAgfQogICAgICAgIGlmIChzLmd6aW5kZXggPT09IHMuZ3poZWFkLmV4dHJhLmxlbmd0aCkgewogICAgICAgICAgcy5nemluZGV4ID0gMDsKICAgICAgICAgIHMuc3RhdHVzID0gTkFNRV9TVEFURTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgcy5zdGF0dXMgPSBOQU1FX1NUQVRFOwogICAgICB9CiAgICB9CiAgICBpZiAocy5zdGF0dXMgPT09IE5BTUVfU1RBVEUpIHsKICAgICAgaWYgKHMuZ3poZWFkLm5hbWUvKiAhPSBaX05VTEwqLykgewogICAgICAgIGJlZyA9IHMucGVuZGluZzsgIC8qIHN0YXJ0IG9mIGJ5dGVzIHRvIHVwZGF0ZSBjcmMgKi8KICAgICAgICAvL2ludCB2YWw7CgogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChzLnBlbmRpbmcgPT09IHMucGVuZGluZ19idWZfc2l6ZSkgewogICAgICAgICAgICBpZiAocy5nemhlYWQuaGNyYyAmJiBzLnBlbmRpbmcgPiBiZWcpIHsKICAgICAgICAgICAgICBzdHJtLmFkbGVyID0gY3JjMzJfMShzdHJtLmFkbGVyLCBzLnBlbmRpbmdfYnVmLCBzLnBlbmRpbmcgLSBiZWcsIGJlZyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZmx1c2hfcGVuZGluZyhzdHJtKTsKICAgICAgICAgICAgYmVnID0gcy5wZW5kaW5nOwogICAgICAgICAgICBpZiAocy5wZW5kaW5nID09PSBzLnBlbmRpbmdfYnVmX3NpemUpIHsKICAgICAgICAgICAgICB2YWwgPSAxOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICAvLyBKUyBzcGVjaWZpYzogbGl0dGxlIG1hZ2ljIHRvIGFkZCB6ZXJvIHRlcm1pbmF0b3IgdG8gZW5kIG9mIHN0cmluZwogICAgICAgICAgaWYgKHMuZ3ppbmRleCA8IHMuZ3poZWFkLm5hbWUubGVuZ3RoKSB7CiAgICAgICAgICAgIHZhbCA9IHMuZ3poZWFkLm5hbWUuY2hhckNvZGVBdChzLmd6aW5kZXgrKykgJiAweGZmOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFsID0gMDsKICAgICAgICAgIH0KICAgICAgICAgIHB1dF9ieXRlKHMsIHZhbCk7CiAgICAgICAgfSB3aGlsZSAodmFsICE9PSAwKTsKCiAgICAgICAgaWYgKHMuZ3poZWFkLmhjcmMgJiYgcy5wZW5kaW5nID4gYmVnKSB7CiAgICAgICAgICBzdHJtLmFkbGVyID0gY3JjMzJfMShzdHJtLmFkbGVyLCBzLnBlbmRpbmdfYnVmLCBzLnBlbmRpbmcgLSBiZWcsIGJlZyk7CiAgICAgICAgfQogICAgICAgIGlmICh2YWwgPT09IDApIHsKICAgICAgICAgIHMuZ3ppbmRleCA9IDA7CiAgICAgICAgICBzLnN0YXR1cyA9IENPTU1FTlRfU1RBVEU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHMuc3RhdHVzID0gQ09NTUVOVF9TVEFURTsKICAgICAgfQogICAgfQogICAgaWYgKHMuc3RhdHVzID09PSBDT01NRU5UX1NUQVRFKSB7CiAgICAgIGlmIChzLmd6aGVhZC5jb21tZW50LyogIT0gWl9OVUxMKi8pIHsKICAgICAgICBiZWcgPSBzLnBlbmRpbmc7ICAvKiBzdGFydCBvZiBieXRlcyB0byB1cGRhdGUgY3JjICovCiAgICAgICAgLy9pbnQgdmFsOwoKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAocy5wZW5kaW5nID09PSBzLnBlbmRpbmdfYnVmX3NpemUpIHsKICAgICAgICAgICAgaWYgKHMuZ3poZWFkLmhjcmMgJiYgcy5wZW5kaW5nID4gYmVnKSB7CiAgICAgICAgICAgICAgc3RybS5hZGxlciA9IGNyYzMyXzEoc3RybS5hZGxlciwgcy5wZW5kaW5nX2J1Ziwgcy5wZW5kaW5nIC0gYmVnLCBiZWcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZsdXNoX3BlbmRpbmcoc3RybSk7CiAgICAgICAgICAgIGJlZyA9IHMucGVuZGluZzsKICAgICAgICAgICAgaWYgKHMucGVuZGluZyA9PT0gcy5wZW5kaW5nX2J1Zl9zaXplKSB7CiAgICAgICAgICAgICAgdmFsID0gMTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgLy8gSlMgc3BlY2lmaWM6IGxpdHRsZSBtYWdpYyB0byBhZGQgemVybyB0ZXJtaW5hdG9yIHRvIGVuZCBvZiBzdHJpbmcKICAgICAgICAgIGlmIChzLmd6aW5kZXggPCBzLmd6aGVhZC5jb21tZW50Lmxlbmd0aCkgewogICAgICAgICAgICB2YWwgPSBzLmd6aGVhZC5jb21tZW50LmNoYXJDb2RlQXQocy5nemluZGV4KyspICYgMHhmZjsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZhbCA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICBwdXRfYnl0ZShzLCB2YWwpOwogICAgICAgIH0gd2hpbGUgKHZhbCAhPT0gMCk7CgogICAgICAgIGlmIChzLmd6aGVhZC5oY3JjICYmIHMucGVuZGluZyA+IGJlZykgewogICAgICAgICAgc3RybS5hZGxlciA9IGNyYzMyXzEoc3RybS5hZGxlciwgcy5wZW5kaW5nX2J1Ziwgcy5wZW5kaW5nIC0gYmVnLCBiZWcpOwogICAgICAgIH0KICAgICAgICBpZiAodmFsID09PSAwKSB7CiAgICAgICAgICBzLnN0YXR1cyA9IEhDUkNfU1RBVEU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHMuc3RhdHVzID0gSENSQ19TVEFURTsKICAgICAgfQogICAgfQogICAgaWYgKHMuc3RhdHVzID09PSBIQ1JDX1NUQVRFKSB7CiAgICAgIGlmIChzLmd6aGVhZC5oY3JjKSB7CiAgICAgICAgaWYgKHMucGVuZGluZyArIDIgPiBzLnBlbmRpbmdfYnVmX3NpemUpIHsKICAgICAgICAgIGZsdXNoX3BlbmRpbmcoc3RybSk7CiAgICAgICAgfQogICAgICAgIGlmIChzLnBlbmRpbmcgKyAyIDw9IHMucGVuZGluZ19idWZfc2l6ZSkgewogICAgICAgICAgcHV0X2J5dGUocywgc3RybS5hZGxlciAmIDB4ZmYpOwogICAgICAgICAgcHV0X2J5dGUocywgKHN0cm0uYWRsZXIgPj4gOCkgJiAweGZmKTsKICAgICAgICAgIHN0cm0uYWRsZXIgPSAwOyAvL2NyYzMyKDBMLCBaX05VTEwsIDApOwogICAgICAgICAgcy5zdGF0dXMgPSBCVVNZX1NUQVRFOwogICAgICAgIH0KICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICBzLnN0YXR1cyA9IEJVU1lfU1RBVEU7CiAgICAgIH0KICAgIH0KICAvLyNlbmRpZgoKICAgIC8qIEZsdXNoIGFzIG11Y2ggcGVuZGluZyBvdXRwdXQgYXMgcG9zc2libGUgKi8KICAgIGlmIChzLnBlbmRpbmcgIT09IDApIHsKICAgICAgZmx1c2hfcGVuZGluZyhzdHJtKTsKICAgICAgaWYgKHN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgLyogU2luY2UgYXZhaWxfb3V0IGlzIDAsIGRlZmxhdGUgd2lsbCBiZSBjYWxsZWQgYWdhaW4gd2l0aAogICAgICAgICAqIG1vcmUgb3V0cHV0IHNwYWNlLCBidXQgcG9zc2libHkgd2l0aCBib3RoIHBlbmRpbmcgYW5kCiAgICAgICAgICogYXZhaWxfaW4gZXF1YWwgdG8gemVyby4gVGhlcmUgd29uJ3QgYmUgYW55dGhpbmcgdG8gZG8sCiAgICAgICAgICogYnV0IHRoaXMgaXMgbm90IGFuIGVycm9yIHNpdHVhdGlvbiBzbyBtYWtlIHN1cmUgd2UKICAgICAgICAgKiByZXR1cm4gT0sgaW5zdGVhZCBvZiBCVUZfRVJST1IgYXQgbmV4dCBjYWxsIG9mIGRlZmxhdGU6CiAgICAgICAgICovCiAgICAgICAgcy5sYXN0X2ZsdXNoID0gLTE7CiAgICAgICAgcmV0dXJuIFpfT0skMzsKICAgICAgfQoKICAgICAgLyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWV0aGluZyB0byBkbyBhbmQgYXZvaWQgZHVwbGljYXRlIGNvbnNlY3V0aXZlCiAgICAgICAqIGZsdXNoZXMuIEZvciByZXBlYXRlZCBhbmQgdXNlbGVzcyBjYWxscyB3aXRoIFpfRklOSVNILCB3ZSBrZWVwCiAgICAgICAqIHJldHVybmluZyBaX1NUUkVBTV9FTkQgaW5zdGVhZCBvZiBaX0JVRl9FUlJPUi4KICAgICAgICovCiAgICB9IGVsc2UgaWYgKHN0cm0uYXZhaWxfaW4gPT09IDAgJiYgcmFuayhmbHVzaCkgPD0gcmFuayhvbGRfZmx1c2gpICYmCiAgICAgIGZsdXNoICE9PSBaX0ZJTklTSCQzKSB7CiAgICAgIHJldHVybiBlcnIoc3RybSwgWl9CVUZfRVJST1IkMSk7CiAgICB9CgogICAgLyogVXNlciBtdXN0IG5vdCBwcm92aWRlIG1vcmUgaW5wdXQgYWZ0ZXIgdGhlIGZpcnN0IEZJTklTSDogKi8KICAgIGlmIChzLnN0YXR1cyA9PT0gRklOSVNIX1NUQVRFICYmIHN0cm0uYXZhaWxfaW4gIT09IDApIHsKICAgICAgcmV0dXJuIGVycihzdHJtLCBaX0JVRl9FUlJPUiQxKTsKICAgIH0KCiAgICAvKiBTdGFydCBhIG5ldyBibG9jayBvciBjb250aW51ZSB0aGUgY3VycmVudCBvbmUuCiAgICAgKi8KICAgIGlmIChzdHJtLmF2YWlsX2luICE9PSAwIHx8IHMubG9va2FoZWFkICE9PSAwIHx8CiAgICAgIChmbHVzaCAhPT0gWl9OT19GTFVTSCQyICYmIHMuc3RhdHVzICE9PSBGSU5JU0hfU1RBVEUpKSB7CiAgICAgIGxldCBic3RhdGUgPSAocy5zdHJhdGVneSA9PT0gWl9IVUZGTUFOX09OTFkpID8gZGVmbGF0ZV9odWZmKHMsIGZsdXNoKSA6CiAgICAgICAgKHMuc3RyYXRlZ3kgPT09IFpfUkxFID8gZGVmbGF0ZV9ybGUocywgZmx1c2gpIDoKICAgICAgICAgIGNvbmZpZ3VyYXRpb25fdGFibGVbcy5sZXZlbF0uZnVuYyhzLCBmbHVzaCkpOwoKICAgICAgaWYgKGJzdGF0ZSA9PT0gQlNfRklOSVNIX1NUQVJURUQgfHwgYnN0YXRlID09PSBCU19GSU5JU0hfRE9ORSkgewogICAgICAgIHMuc3RhdHVzID0gRklOSVNIX1NUQVRFOwogICAgICB9CiAgICAgIGlmIChic3RhdGUgPT09IEJTX05FRURfTU9SRSB8fCBic3RhdGUgPT09IEJTX0ZJTklTSF9TVEFSVEVEKSB7CiAgICAgICAgaWYgKHN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgICBzLmxhc3RfZmx1c2ggPSAtMTsKICAgICAgICAgIC8qIGF2b2lkIEJVRl9FUlJPUiBuZXh0IGNhbGwsIHNlZSBhYm92ZSAqLwogICAgICAgIH0KICAgICAgICByZXR1cm4gWl9PSyQzOwogICAgICAgIC8qIElmIGZsdXNoICE9IFpfTk9fRkxVU0ggJiYgYXZhaWxfb3V0ID09IDAsIHRoZSBuZXh0IGNhbGwKICAgICAgICAgKiBvZiBkZWZsYXRlIHNob3VsZCB1c2UgdGhlIHNhbWUgZmx1c2ggcGFyYW1ldGVyIHRvIG1ha2Ugc3VyZQogICAgICAgICAqIHRoYXQgdGhlIGZsdXNoIGlzIGNvbXBsZXRlLiBTbyB3ZSBkb24ndCBoYXZlIHRvIG91dHB1dCBhbgogICAgICAgICAqIGVtcHR5IGJsb2NrIGhlcmUsIHRoaXMgd2lsbCBiZSBkb25lIGF0IG5leHQgY2FsbC4gVGhpcyBhbHNvCiAgICAgICAgICogZW5zdXJlcyB0aGF0IGZvciBhIHZlcnkgc21hbGwgb3V0cHV0IGJ1ZmZlciwgd2UgZW1pdCBhdCBtb3N0CiAgICAgICAgICogb25lIGVtcHR5IGJsb2NrLgogICAgICAgICAqLwogICAgICB9CiAgICAgIGlmIChic3RhdGUgPT09IEJTX0JMT0NLX0RPTkUpIHsKICAgICAgICBpZiAoZmx1c2ggPT09IFpfUEFSVElBTF9GTFVTSCkgewogICAgICAgICAgX3RyX2FsaWduKHMpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChmbHVzaCAhPT0gWl9CTE9DSyQxKSB7IC8qIEZVTExfRkxVU0ggb3IgU1lOQ19GTFVTSCAqLwoKICAgICAgICAgIF90cl9zdG9yZWRfYmxvY2socywgMCwgMCwgZmFsc2UpOwogICAgICAgICAgLyogRm9yIGEgZnVsbCBmbHVzaCwgdGhpcyBlbXB0eSBibG9jayB3aWxsIGJlIHJlY29nbml6ZWQKICAgICAgICAgICAqIGFzIGEgc3BlY2lhbCBtYXJrZXIgYnkgaW5mbGF0ZV9zeW5jKCkuCiAgICAgICAgICAgKi8KICAgICAgICAgIGlmIChmbHVzaCA9PT0gWl9GVUxMX0ZMVVNIJDEpIHsKICAgICAgICAgICAgLyoqKiBDTEVBUl9IQVNIKHMpOyAqKiovICAgICAgICAgICAgIC8qIGZvcmdldCBoaXN0b3J5ICovCiAgICAgICAgICAgIHplcm8ocy5oZWFkKTsgLy8gRmlsbCB3aXRoIE5JTCAoPSAwKTsKCiAgICAgICAgICAgIGlmIChzLmxvb2thaGVhZCA9PT0gMCkgewogICAgICAgICAgICAgIHMuc3Ryc3RhcnQgPSAwOwogICAgICAgICAgICAgIHMuYmxvY2tfc3RhcnQgPSAwOwogICAgICAgICAgICAgIHMuaW5zZXJ0ID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmbHVzaF9wZW5kaW5nKHN0cm0pOwogICAgICAgIGlmIChzdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgICAgcy5sYXN0X2ZsdXNoID0gLTE7IC8qIGF2b2lkIEJVRl9FUlJPUiBhdCBuZXh0IGNhbGwsIHNlZSBhYm92ZSAqLwogICAgICAgICAgcmV0dXJuIFpfT0skMzsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIC8vQXNzZXJ0KHN0cm0tPmF2YWlsX291dCA+IDAsICJidWcyIik7CiAgICAvL2lmIChzdHJtLmF2YWlsX291dCA8PSAwKSB7IHRocm93IG5ldyBFcnJvcigiYnVnMiIpO30KCiAgICBpZiAoZmx1c2ggIT09IFpfRklOSVNIJDMpIHsgcmV0dXJuIFpfT0skMzsgfQogICAgaWYgKHMud3JhcCA8PSAwKSB7IHJldHVybiBaX1NUUkVBTV9FTkQkMzsgfQoKICAgIC8qIFdyaXRlIHRoZSB0cmFpbGVyICovCiAgICBpZiAocy53cmFwID09PSAyKSB7CiAgICAgIHB1dF9ieXRlKHMsIHN0cm0uYWRsZXIgJiAweGZmKTsKICAgICAgcHV0X2J5dGUocywgKHN0cm0uYWRsZXIgPj4gOCkgJiAweGZmKTsKICAgICAgcHV0X2J5dGUocywgKHN0cm0uYWRsZXIgPj4gMTYpICYgMHhmZik7CiAgICAgIHB1dF9ieXRlKHMsIChzdHJtLmFkbGVyID4+IDI0KSAmIDB4ZmYpOwogICAgICBwdXRfYnl0ZShzLCBzdHJtLnRvdGFsX2luICYgMHhmZik7CiAgICAgIHB1dF9ieXRlKHMsIChzdHJtLnRvdGFsX2luID4+IDgpICYgMHhmZik7CiAgICAgIHB1dF9ieXRlKHMsIChzdHJtLnRvdGFsX2luID4+IDE2KSAmIDB4ZmYpOwogICAgICBwdXRfYnl0ZShzLCAoc3RybS50b3RhbF9pbiA+PiAyNCkgJiAweGZmKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgcHV0U2hvcnRNU0Iocywgc3RybS5hZGxlciA+Pj4gMTYpOwogICAgICBwdXRTaG9ydE1TQihzLCBzdHJtLmFkbGVyICYgMHhmZmZmKTsKICAgIH0KCiAgICBmbHVzaF9wZW5kaW5nKHN0cm0pOwogICAgLyogSWYgYXZhaWxfb3V0IGlzIHplcm8sIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGNhbGwgZGVmbGF0ZSBhZ2FpbgogICAgICogdG8gZmx1c2ggdGhlIHJlc3QuCiAgICAgKi8KICAgIGlmIChzLndyYXAgPiAwKSB7IHMud3JhcCA9IC1zLndyYXA7IH0KICAgIC8qIHdyaXRlIHRoZSB0cmFpbGVyIG9ubHkgb25jZSEgKi8KICAgIHJldHVybiBzLnBlbmRpbmcgIT09IDAgPyBaX09LJDMgOiBaX1NUUkVBTV9FTkQkMzsKICB9OwoKCiAgY29uc3QgZGVmbGF0ZUVuZCA9IChzdHJtKSA9PiB7CgogICAgaWYgKCFzdHJtLyo9PSBaX05VTEwqLyB8fCAhc3RybS5zdGF0ZS8qPT0gWl9OVUxMKi8pIHsKICAgICAgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDI7CiAgICB9CgogICAgY29uc3Qgc3RhdHVzID0gc3RybS5zdGF0ZS5zdGF0dXM7CiAgICBpZiAoc3RhdHVzICE9PSBJTklUX1NUQVRFICYmCiAgICAgIHN0YXR1cyAhPT0gRVhUUkFfU1RBVEUgJiYKICAgICAgc3RhdHVzICE9PSBOQU1FX1NUQVRFICYmCiAgICAgIHN0YXR1cyAhPT0gQ09NTUVOVF9TVEFURSAmJgogICAgICBzdGF0dXMgIT09IEhDUkNfU1RBVEUgJiYKICAgICAgc3RhdHVzICE9PSBCVVNZX1NUQVRFICYmCiAgICAgIHN0YXR1cyAhPT0gRklOSVNIX1NUQVRFCiAgICApIHsKICAgICAgcmV0dXJuIGVycihzdHJtLCBaX1NUUkVBTV9FUlJPUiQyKTsKICAgIH0KCiAgICBzdHJtLnN0YXRlID0gbnVsbDsKCiAgICByZXR1cm4gc3RhdHVzID09PSBCVVNZX1NUQVRFID8gZXJyKHN0cm0sIFpfREFUQV9FUlJPUiQyKSA6IFpfT0skMzsKICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIEluaXRpYWxpemVzIHRoZSBjb21wcmVzc2lvbiBkaWN0aW9uYXJ5IGZyb20gdGhlIGdpdmVuIGJ5dGUKICAgKiBzZXF1ZW5jZSB3aXRob3V0IHByb2R1Y2luZyBhbnkgY29tcHJlc3NlZCBvdXRwdXQuCiAgICovCiAgY29uc3QgZGVmbGF0ZVNldERpY3Rpb25hcnkgPSAoc3RybSwgZGljdGlvbmFyeSkgPT4gewoKICAgIGxldCBkaWN0TGVuZ3RoID0gZGljdGlvbmFyeS5sZW5ndGg7CgogICAgaWYgKCFzdHJtLyo9PSBaX05VTEwqLyB8fCAhc3RybS5zdGF0ZS8qPT0gWl9OVUxMKi8pIHsKICAgICAgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDI7CiAgICB9CgogICAgY29uc3QgcyA9IHN0cm0uc3RhdGU7CiAgICBjb25zdCB3cmFwID0gcy53cmFwOwoKICAgIGlmICh3cmFwID09PSAyIHx8ICh3cmFwID09PSAxICYmIHMuc3RhdHVzICE9PSBJTklUX1NUQVRFKSB8fCBzLmxvb2thaGVhZCkgewogICAgICByZXR1cm4gWl9TVFJFQU1fRVJST1IkMjsKICAgIH0KCiAgICAvKiB3aGVuIHVzaW5nIHpsaWIgd3JhcHBlcnMsIGNvbXB1dGUgQWRsZXItMzIgZm9yIHByb3ZpZGVkIGRpY3Rpb25hcnkgKi8KICAgIGlmICh3cmFwID09PSAxKSB7CiAgICAgIC8qIGFkbGVyMzIoc3RybS0+YWRsZXIsIGRpY3Rpb25hcnksIGRpY3RMZW5ndGgpOyAqLwogICAgICBzdHJtLmFkbGVyID0gYWRsZXIzMl8xKHN0cm0uYWRsZXIsIGRpY3Rpb25hcnksIGRpY3RMZW5ndGgsIDApOwogICAgfQoKICAgIHMud3JhcCA9IDA7ICAgLyogYXZvaWQgY29tcHV0aW5nIEFkbGVyLTMyIGluIHJlYWRfYnVmICovCgogICAgLyogaWYgZGljdGlvbmFyeSB3b3VsZCBmaWxsIHdpbmRvdywganVzdCByZXBsYWNlIHRoZSBoaXN0b3J5ICovCiAgICBpZiAoZGljdExlbmd0aCA+PSBzLndfc2l6ZSkgewogICAgICBpZiAod3JhcCA9PT0gMCkgeyAgICAgICAgICAgIC8qIGFscmVhZHkgZW1wdHkgb3RoZXJ3aXNlICovCiAgICAgICAgLyoqKiBDTEVBUl9IQVNIKHMpOyAqKiovCiAgICAgICAgemVybyhzLmhlYWQpOyAvLyBGaWxsIHdpdGggTklMICg9IDApOwogICAgICAgIHMuc3Ryc3RhcnQgPSAwOwogICAgICAgIHMuYmxvY2tfc3RhcnQgPSAwOwogICAgICAgIHMuaW5zZXJ0ID0gMDsKICAgICAgfQogICAgICAvKiB1c2UgdGhlIHRhaWwgKi8KICAgICAgLy8gZGljdGlvbmFyeSA9IGRpY3Rpb25hcnkuc2xpY2UoZGljdExlbmd0aCAtIHMud19zaXplKTsKICAgICAgbGV0IHRtcERpY3QgPSBuZXcgVWludDhBcnJheShzLndfc2l6ZSk7CiAgICAgIHRtcERpY3Quc2V0KGRpY3Rpb25hcnkuc3ViYXJyYXkoZGljdExlbmd0aCAtIHMud19zaXplLCBkaWN0TGVuZ3RoKSwgMCk7CiAgICAgIGRpY3Rpb25hcnkgPSB0bXBEaWN0OwogICAgICBkaWN0TGVuZ3RoID0gcy53X3NpemU7CiAgICB9CiAgICAvKiBpbnNlcnQgZGljdGlvbmFyeSBpbnRvIHdpbmRvdyBhbmQgaGFzaCAqLwogICAgY29uc3QgYXZhaWwgPSBzdHJtLmF2YWlsX2luOwogICAgY29uc3QgbmV4dCA9IHN0cm0ubmV4dF9pbjsKICAgIGNvbnN0IGlucHV0ID0gc3RybS5pbnB1dDsKICAgIHN0cm0uYXZhaWxfaW4gPSBkaWN0TGVuZ3RoOwogICAgc3RybS5uZXh0X2luID0gMDsKICAgIHN0cm0uaW5wdXQgPSBkaWN0aW9uYXJ5OwogICAgZmlsbF93aW5kb3cocyk7CiAgICB3aGlsZSAocy5sb29rYWhlYWQgPj0gTUlOX01BVENIKSB7CiAgICAgIGxldCBzdHIgPSBzLnN0cnN0YXJ0OwogICAgICBsZXQgbiA9IHMubG9va2FoZWFkIC0gKE1JTl9NQVRDSCAtIDEpOwogICAgICBkbyB7CiAgICAgICAgLyogVVBEQVRFX0hBU0gocywgcy0+aW5zX2gsIHMtPndpbmRvd1tzdHIgKyBNSU5fTUFUQ0gtMV0pOyAqLwogICAgICAgIHMuaW5zX2ggPSBIQVNIKHMsIHMuaW5zX2gsIHMud2luZG93W3N0ciArIE1JTl9NQVRDSCAtIDFdKTsKCiAgICAgICAgcy5wcmV2W3N0ciAmIHMud19tYXNrXSA9IHMuaGVhZFtzLmluc19oXTsKCiAgICAgICAgcy5oZWFkW3MuaW5zX2hdID0gc3RyOwogICAgICAgIHN0cisrOwogICAgICB9IHdoaWxlICgtLW4pOwogICAgICBzLnN0cnN0YXJ0ID0gc3RyOwogICAgICBzLmxvb2thaGVhZCA9IE1JTl9NQVRDSCAtIDE7CiAgICAgIGZpbGxfd2luZG93KHMpOwogICAgfQogICAgcy5zdHJzdGFydCArPSBzLmxvb2thaGVhZDsKICAgIHMuYmxvY2tfc3RhcnQgPSBzLnN0cnN0YXJ0OwogICAgcy5pbnNlcnQgPSBzLmxvb2thaGVhZDsKICAgIHMubG9va2FoZWFkID0gMDsKICAgIHMubWF0Y2hfbGVuZ3RoID0gcy5wcmV2X2xlbmd0aCA9IE1JTl9NQVRDSCAtIDE7CiAgICBzLm1hdGNoX2F2YWlsYWJsZSA9IDA7CiAgICBzdHJtLm5leHRfaW4gPSBuZXh0OwogICAgc3RybS5pbnB1dCA9IGlucHV0OwogICAgc3RybS5hdmFpbF9pbiA9IGF2YWlsOwogICAgcy53cmFwID0gd3JhcDsKICAgIHJldHVybiBaX09LJDM7CiAgfTsKCgogIHZhciBkZWZsYXRlSW5pdF8xID0gZGVmbGF0ZUluaXQ7CiAgdmFyIGRlZmxhdGVJbml0Ml8xID0gZGVmbGF0ZUluaXQyOwogIHZhciBkZWZsYXRlUmVzZXRfMSA9IGRlZmxhdGVSZXNldDsKICB2YXIgZGVmbGF0ZVJlc2V0S2VlcF8xID0gZGVmbGF0ZVJlc2V0S2VlcDsKICB2YXIgZGVmbGF0ZVNldEhlYWRlcl8xID0gZGVmbGF0ZVNldEhlYWRlcjsKICB2YXIgZGVmbGF0ZV8yJDEgPSBkZWZsYXRlJDI7CiAgdmFyIGRlZmxhdGVFbmRfMSA9IGRlZmxhdGVFbmQ7CiAgdmFyIGRlZmxhdGVTZXREaWN0aW9uYXJ5XzEgPSBkZWZsYXRlU2V0RGljdGlvbmFyeTsKICB2YXIgZGVmbGF0ZUluZm8gPSAncGFrbyBkZWZsYXRlIChmcm9tIE5vZGVjYSBwcm9qZWN0KSc7CgogIC8qIE5vdCBpbXBsZW1lbnRlZAogIG1vZHVsZS5leHBvcnRzLmRlZmxhdGVCb3VuZCA9IGRlZmxhdGVCb3VuZDsKICBtb2R1bGUuZXhwb3J0cy5kZWZsYXRlQ29weSA9IGRlZmxhdGVDb3B5OwogIG1vZHVsZS5leHBvcnRzLmRlZmxhdGVQYXJhbXMgPSBkZWZsYXRlUGFyYW1zOwogIG1vZHVsZS5leHBvcnRzLmRlZmxhdGVQZW5kaW5nID0gZGVmbGF0ZVBlbmRpbmc7CiAgbW9kdWxlLmV4cG9ydHMuZGVmbGF0ZVByaW1lID0gZGVmbGF0ZVByaW1lOwogIG1vZHVsZS5leHBvcnRzLmRlZmxhdGVUdW5lID0gZGVmbGF0ZVR1bmU7CiAgKi8KCiAgdmFyIGRlZmxhdGVfMSQyID0gewogIAlkZWZsYXRlSW5pdDogZGVmbGF0ZUluaXRfMSwKICAJZGVmbGF0ZUluaXQyOiBkZWZsYXRlSW5pdDJfMSwKICAJZGVmbGF0ZVJlc2V0OiBkZWZsYXRlUmVzZXRfMSwKICAJZGVmbGF0ZVJlc2V0S2VlcDogZGVmbGF0ZVJlc2V0S2VlcF8xLAogIAlkZWZsYXRlU2V0SGVhZGVyOiBkZWZsYXRlU2V0SGVhZGVyXzEsCiAgCWRlZmxhdGU6IGRlZmxhdGVfMiQxLAogIAlkZWZsYXRlRW5kOiBkZWZsYXRlRW5kXzEsCiAgCWRlZmxhdGVTZXREaWN0aW9uYXJ5OiBkZWZsYXRlU2V0RGljdGlvbmFyeV8xLAogIAlkZWZsYXRlSW5mbzogZGVmbGF0ZUluZm8KICB9OwoKICBjb25zdCBfaGFzID0gKG9iaiwga2V5KSA9PiB7CiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KTsKICB9OwoKICB2YXIgYXNzaWduID0gZnVuY3Rpb24gKG9iaiAvKmZyb20xLCBmcm9tMiwgZnJvbTMsIC4uLiovKSB7CiAgICBjb25zdCBzb3VyY2VzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTsKICAgIHdoaWxlIChzb3VyY2VzLmxlbmd0aCkgewogICAgICBjb25zdCBzb3VyY2UgPSBzb3VyY2VzLnNoaWZ0KCk7CiAgICAgIGlmICghc291cmNlKSB7IGNvbnRpbnVlOyB9CgogICAgICBpZiAodHlwZW9mIHNvdXJjZSAhPT0gJ29iamVjdCcpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHNvdXJjZSArICdtdXN0IGJlIG5vbi1vYmplY3QnKTsKICAgICAgfQoKICAgICAgZm9yIChjb25zdCBwIGluIHNvdXJjZSkgewogICAgICAgIGlmIChfaGFzKHNvdXJjZSwgcCkpIHsKICAgICAgICAgIG9ialtwXSA9IHNvdXJjZVtwXTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gb2JqOwogIH07CgoKICAvLyBKb2luIGFycmF5IG9mIGNodW5rcyB0byBzaW5nbGUgYXJyYXkuCiAgdmFyIGZsYXR0ZW5DaHVua3MgPSAoY2h1bmtzKSA9PiB7CiAgICAvLyBjYWxjdWxhdGUgZGF0YSBsZW5ndGgKICAgIGxldCBsZW4gPSAwOwoKICAgIGZvciAobGV0IGkgPSAwLCBsID0gY2h1bmtzLmxlbmd0aDsgaSA8IGw7IGkrKykgewogICAgICBsZW4gKz0gY2h1bmtzW2ldLmxlbmd0aDsKICAgIH0KCiAgICAvLyBqb2luIGNodW5rcwogICAgY29uc3QgcmVzdWx0ID0gbmV3IFVpbnQ4QXJyYXkobGVuKTsKCiAgICBmb3IgKGxldCBpID0gMCwgcG9zID0gMCwgbCA9IGNodW5rcy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAgICAgbGV0IGNodW5rID0gY2h1bmtzW2ldOwogICAgICByZXN1bHQuc2V0KGNodW5rLCBwb3MpOwogICAgICBwb3MgKz0gY2h1bmsubGVuZ3RoOwogICAgfQoKICAgIHJldHVybiByZXN1bHQ7CiAgfTsKCiAgdmFyIGNvbW1vbiA9IHsKICAJYXNzaWduOiBhc3NpZ24sCiAgCWZsYXR0ZW5DaHVua3M6IGZsYXR0ZW5DaHVua3MKICB9OwoKICAvLyBTdHJpbmcgZW5jb2RlL2RlY29kZSBoZWxwZXJzCgoKICAvLyBRdWljayBjaGVjayBpZiB3ZSBjYW4gdXNlIGZhc3QgYXJyYXkgdG8gYmluIHN0cmluZyBjb252ZXJzaW9uCiAgLy8KICAvLyAtIGFwcGx5KEFycmF5KSBjYW4gZmFpbCBvbiBBbmRyb2lkIDIuMgogIC8vIC0gYXBwbHkoVWludDhBcnJheSkgY2FuIGZhaWwgb24gaU9TIDUuMSBTYWZhcmkKICAvLwogIGxldCBTVFJfQVBQTFlfVUlBX09LID0gdHJ1ZTsKCiAgdHJ5IHsgU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDhBcnJheSgxKSk7IH0gY2F0Y2ggKF9fKSB7IFNUUl9BUFBMWV9VSUFfT0sgPSBmYWxzZTsgfQoKCiAgLy8gVGFibGUgd2l0aCB1dGY4IGxlbmd0aHMgKGNhbGN1bGF0ZWQgYnkgZmlyc3QgYnl0ZSBvZiBzZXF1ZW5jZSkKICAvLyBOb3RlLCB0aGF0IDUgJiA2LWJ5dGUgdmFsdWVzIGFuZCBzb21lIDQtYnl0ZSB2YWx1ZXMgY2FuIG5vdCBiZSByZXByZXNlbnRlZCBpbiBKUywKICAvLyBiZWNhdXNlIG1heCBwb3NzaWJsZSBjb2RlcG9pbnQgaXMgMHgxMGZmZmYKICBjb25zdCBfdXRmOGxlbiA9IG5ldyBVaW50OEFycmF5KDI1Nik7CiAgZm9yIChsZXQgcSA9IDA7IHEgPCAyNTY7IHErKykgewogICAgX3V0ZjhsZW5bcV0gPSAocSA+PSAyNTIgPyA2IDogcSA+PSAyNDggPyA1IDogcSA+PSAyNDAgPyA0IDogcSA+PSAyMjQgPyAzIDogcSA+PSAxOTIgPyAyIDogMSk7CiAgfQogIF91dGY4bGVuWzI1NF0gPSBfdXRmOGxlblsyNTRdID0gMTsgLy8gSW52YWxpZCBzZXF1ZW5jZSBzdGFydAoKCiAgLy8gY29udmVydCBzdHJpbmcgdG8gYXJyYXkgKHR5cGVkLCB3aGVuIHBvc3NpYmxlKQogIHZhciBzdHJpbmcyYnVmID0gKHN0cikgPT4gewogICAgaWYgKHR5cGVvZiBUZXh0RW5jb2RlciA9PT0gJ2Z1bmN0aW9uJyAmJiBUZXh0RW5jb2Rlci5wcm90b3R5cGUuZW5jb2RlKSB7CiAgICAgIHJldHVybiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoc3RyKTsKICAgIH0KCiAgICBsZXQgYnVmLCBjLCBjMiwgbV9wb3MsIGksIHN0cl9sZW4gPSBzdHIubGVuZ3RoLCBidWZfbGVuID0gMDsKCiAgICAvLyBjb3VudCBiaW5hcnkgc2l6ZQogICAgZm9yIChtX3BvcyA9IDA7IG1fcG9zIDwgc3RyX2xlbjsgbV9wb3MrKykgewogICAgICBjID0gc3RyLmNoYXJDb2RlQXQobV9wb3MpOwogICAgICBpZiAoKGMgJiAweGZjMDApID09PSAweGQ4MDAgJiYgKG1fcG9zICsgMSA8IHN0cl9sZW4pKSB7CiAgICAgICAgYzIgPSBzdHIuY2hhckNvZGVBdChtX3BvcyArIDEpOwogICAgICAgIGlmICgoYzIgJiAweGZjMDApID09PSAweGRjMDApIHsKICAgICAgICAgIGMgPSAweDEwMDAwICsgKChjIC0gMHhkODAwKSA8PCAxMCkgKyAoYzIgLSAweGRjMDApOwogICAgICAgICAgbV9wb3MrKzsKICAgICAgICB9CiAgICAgIH0KICAgICAgYnVmX2xlbiArPSBjIDwgMHg4MCA/IDEgOiBjIDwgMHg4MDAgPyAyIDogYyA8IDB4MTAwMDAgPyAzIDogNDsKICAgIH0KCiAgICAvLyBhbGxvY2F0ZSBidWZmZXIKICAgIGJ1ZiA9IG5ldyBVaW50OEFycmF5KGJ1Zl9sZW4pOwoKICAgIC8vIGNvbnZlcnQKICAgIGZvciAoaSA9IDAsIG1fcG9zID0gMDsgaSA8IGJ1Zl9sZW47IG1fcG9zKyspIHsKICAgICAgYyA9IHN0ci5jaGFyQ29kZUF0KG1fcG9zKTsKICAgICAgaWYgKChjICYgMHhmYzAwKSA9PT0gMHhkODAwICYmIChtX3BvcyArIDEgPCBzdHJfbGVuKSkgewogICAgICAgIGMyID0gc3RyLmNoYXJDb2RlQXQobV9wb3MgKyAxKTsKICAgICAgICBpZiAoKGMyICYgMHhmYzAwKSA9PT0gMHhkYzAwKSB7CiAgICAgICAgICBjID0gMHgxMDAwMCArICgoYyAtIDB4ZDgwMCkgPDwgMTApICsgKGMyIC0gMHhkYzAwKTsKICAgICAgICAgIG1fcG9zKys7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChjIDwgMHg4MCkgewogICAgICAgIC8qIG9uZSBieXRlICovCiAgICAgICAgYnVmW2krK10gPSBjOwogICAgICB9IGVsc2UgaWYgKGMgPCAweDgwMCkgewogICAgICAgIC8qIHR3byBieXRlcyAqLwogICAgICAgIGJ1ZltpKytdID0gMHhDMCB8IChjID4+PiA2KTsKICAgICAgICBidWZbaSsrXSA9IDB4ODAgfCAoYyAmIDB4M2YpOwogICAgICB9IGVsc2UgaWYgKGMgPCAweDEwMDAwKSB7CiAgICAgICAgLyogdGhyZWUgYnl0ZXMgKi8KICAgICAgICBidWZbaSsrXSA9IDB4RTAgfCAoYyA+Pj4gMTIpOwogICAgICAgIGJ1ZltpKytdID0gMHg4MCB8IChjID4+PiA2ICYgMHgzZik7CiAgICAgICAgYnVmW2krK10gPSAweDgwIHwgKGMgJiAweDNmKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAvKiBmb3VyIGJ5dGVzICovCiAgICAgICAgYnVmW2krK10gPSAweGYwIHwgKGMgPj4+IDE4KTsKICAgICAgICBidWZbaSsrXSA9IDB4ODAgfCAoYyA+Pj4gMTIgJiAweDNmKTsKICAgICAgICBidWZbaSsrXSA9IDB4ODAgfCAoYyA+Pj4gNiAmIDB4M2YpOwogICAgICAgIGJ1ZltpKytdID0gMHg4MCB8IChjICYgMHgzZik7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gYnVmOwogIH07CgogIC8vIEhlbHBlcgogIGNvbnN0IGJ1ZjJiaW5zdHJpbmcgPSAoYnVmLCBsZW4pID0+IHsKICAgIC8vIE9uIENocm9tZSwgdGhlIGFyZ3VtZW50cyBpbiBhIGZ1bmN0aW9uIGNhbGwgdGhhdCBhcmUgYWxsb3dlZCBpcyBgNjU1MzRgLgogICAgLy8gSWYgdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGlzIHNtYWxsZXIgdGhhbiB0aGF0LCB3ZSBjYW4gdXNlIHRoaXMgb3B0aW1pemF0aW9uLAogICAgLy8gb3RoZXJ3aXNlIHdlIHdpbGwgdGFrZSBhIHNsb3dlciBwYXRoLgogICAgaWYgKGxlbiA8IDY1NTM0KSB7CiAgICAgIGlmIChidWYuc3ViYXJyYXkgJiYgU1RSX0FQUExZX1VJQV9PSykgewogICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGJ1Zi5sZW5ndGggPT09IGxlbiA/IGJ1ZiA6IGJ1Zi5zdWJhcnJheSgwLCBsZW4pKTsKICAgICAgfQogICAgfQoKICAgIGxldCByZXN1bHQgPSAnJzsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgcmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKTsKICAgIH0KICAgIHJldHVybiByZXN1bHQ7CiAgfTsKCgogIC8vIGNvbnZlcnQgYXJyYXkgdG8gc3RyaW5nCiAgdmFyIGJ1ZjJzdHJpbmcgPSAoYnVmLCBtYXgpID0+IHsKICAgIGNvbnN0IGxlbiA9IG1heCB8fCBidWYubGVuZ3RoOwoKICAgIGlmICh0eXBlb2YgVGV4dERlY29kZXIgPT09ICdmdW5jdGlvbicgJiYgVGV4dERlY29kZXIucHJvdG90eXBlLmRlY29kZSkgewogICAgICByZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGJ1Zi5zdWJhcnJheSgwLCBtYXgpKTsKICAgIH0KCiAgICBsZXQgaSwgb3V0OwoKICAgIC8vIFJlc2VydmUgbWF4IHBvc3NpYmxlIGxlbmd0aCAoMiB3b3JkcyBwZXIgY2hhcikKICAgIC8vIE5COiBieSB1bmtub3duIHJlYXNvbnMsIEFycmF5IGlzIHNpZ25pZmljYW50bHkgZmFzdGVyIGZvcgogICAgLy8gICAgIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkgdGhhbiBVaW50MTZBcnJheS4KICAgIGNvbnN0IHV0ZjE2YnVmID0gbmV3IEFycmF5KGxlbiAqIDIpOwoKICAgIGZvciAob3V0ID0gMCwgaSA9IDA7IGkgPCBsZW47KSB7CiAgICAgIGxldCBjID0gYnVmW2krK107CiAgICAgIC8vIHF1aWNrIHByb2Nlc3MgYXNjaWkKICAgICAgaWYgKGMgPCAweDgwKSB7IHV0ZjE2YnVmW291dCsrXSA9IGM7IGNvbnRpbnVlOyB9CgogICAgICBsZXQgY19sZW4gPSBfdXRmOGxlbltjXTsKICAgICAgLy8gc2tpcCA1ICYgNiBieXRlIGNvZGVzCiAgICAgIGlmIChjX2xlbiA+IDQpIHsgdXRmMTZidWZbb3V0KytdID0gMHhmZmZkOyBpICs9IGNfbGVuIC0gMTsgY29udGludWU7IH0KCiAgICAgIC8vIGFwcGx5IG1hc2sgb24gZmlyc3QgYnl0ZQogICAgICBjICY9IGNfbGVuID09PSAyID8gMHgxZiA6IGNfbGVuID09PSAzID8gMHgwZiA6IDB4MDc7CiAgICAgIC8vIGpvaW4gdGhlIHJlc3QKICAgICAgd2hpbGUgKGNfbGVuID4gMSAmJiBpIDwgbGVuKSB7CiAgICAgICAgYyA9IChjIDw8IDYpIHwgKGJ1ZltpKytdICYgMHgzZik7CiAgICAgICAgY19sZW4tLTsKICAgICAgfQoKICAgICAgLy8gdGVybWluYXRlZCBieSBlbmQgb2Ygc3RyaW5nPwogICAgICBpZiAoY19sZW4gPiAxKSB7IHV0ZjE2YnVmW291dCsrXSA9IDB4ZmZmZDsgY29udGludWU7IH0KCiAgICAgIGlmIChjIDwgMHgxMDAwMCkgewogICAgICAgIHV0ZjE2YnVmW291dCsrXSA9IGM7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgYyAtPSAweDEwMDAwOwogICAgICAgIHV0ZjE2YnVmW291dCsrXSA9IDB4ZDgwMCB8ICgoYyA+PiAxMCkgJiAweDNmZik7CiAgICAgICAgdXRmMTZidWZbb3V0KytdID0gMHhkYzAwIHwgKGMgJiAweDNmZik7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gYnVmMmJpbnN0cmluZyh1dGYxNmJ1Ziwgb3V0KTsKICB9OwoKCiAgLy8gQ2FsY3VsYXRlIG1heCBwb3NzaWJsZSBwb3NpdGlvbiBpbiB1dGY4IGJ1ZmZlciwKICAvLyB0aGF0IHdpbGwgbm90IGJyZWFrIHNlcXVlbmNlLiBJZiB0aGF0J3Mgbm90IHBvc3NpYmxlCiAgLy8gLSAodmVyeSBzbWFsbCBsaW1pdHMpIHJldHVybiBtYXggc2l6ZSBhcyBpcy4KICAvLwogIC8vIGJ1ZltdIC0gdXRmOCBieXRlcyBhcnJheQogIC8vIG1heCAgIC0gbGVuZ3RoIGxpbWl0IChtYW5kYXRvcnkpOwogIHZhciB1dGY4Ym9yZGVyID0gKGJ1ZiwgbWF4KSA9PiB7CgogICAgbWF4ID0gbWF4IHx8IGJ1Zi5sZW5ndGg7CiAgICBpZiAobWF4ID4gYnVmLmxlbmd0aCkgeyBtYXggPSBidWYubGVuZ3RoOyB9CgogICAgLy8gZ28gYmFjayBmcm9tIGxhc3QgcG9zaXRpb24sIHVudGlsIHN0YXJ0IG9mIHNlcXVlbmNlIGZvdW5kCiAgICBsZXQgcG9zID0gbWF4IC0gMTsKICAgIHdoaWxlIChwb3MgPj0gMCAmJiAoYnVmW3Bvc10gJiAweEMwKSA9PT0gMHg4MCkgeyBwb3MtLTsgfQoKICAgIC8vIFZlcnkgc21hbGwgYW5kIGJyb2tlbiBzZXF1ZW5jZSwKICAgIC8vIHJldHVybiBtYXgsIGJlY2F1c2Ugd2Ugc2hvdWxkIHJldHVybiBzb21ldGhpbmcgYW55d2F5LgogICAgaWYgKHBvcyA8IDApIHsgcmV0dXJuIG1heDsgfQoKICAgIC8vIElmIHdlIGNhbWUgdG8gc3RhcnQgb2YgYnVmZmVyIC0gdGhhdCBtZWFucyBidWZmZXIgaXMgdG9vIHNtYWxsLAogICAgLy8gcmV0dXJuIG1heCB0b28uCiAgICBpZiAocG9zID09PSAwKSB7IHJldHVybiBtYXg7IH0KCiAgICByZXR1cm4gKHBvcyArIF91dGY4bGVuW2J1Zltwb3NdXSA+IG1heCkgPyBwb3MgOiBtYXg7CiAgfTsKCiAgdmFyIHN0cmluZ3MgPSB7CiAgCXN0cmluZzJidWY6IHN0cmluZzJidWYsCiAgCWJ1ZjJzdHJpbmc6IGJ1ZjJzdHJpbmcsCiAgCXV0Zjhib3JkZXI6IHV0Zjhib3JkZXIKICB9OwoKICAvLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAvLyAoQykgMjAxNC0yMDE3IFZpdGFseSBQdXpyaW4gYW5kIEFuZHJleSBUdXBpdHNpbgogIC8vCiAgLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAvLyB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKICAvLyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogIC8vCiAgLy8gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCiAgLy8gaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogIC8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKICAvLwogIC8vIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQogIC8vICAgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpbiB0aGUgcHJvZHVjdCBkb2N1bWVudGF0aW9uIHdvdWxkIGJlCiAgLy8gICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogIC8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCiAgLy8gICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgLy8gMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KCiAgZnVuY3Rpb24gWlN0cmVhbSgpIHsKICAgIC8qIG5leHQgaW5wdXQgYnl0ZSAqLwogICAgdGhpcy5pbnB1dCA9IG51bGw7IC8vIEpTIHNwZWNpZmljLCBiZWNhdXNlIHdlIGhhdmUgbm8gcG9pbnRlcnMKICAgIHRoaXMubmV4dF9pbiA9IDA7CiAgICAvKiBudW1iZXIgb2YgYnl0ZXMgYXZhaWxhYmxlIGF0IGlucHV0ICovCiAgICB0aGlzLmF2YWlsX2luID0gMDsKICAgIC8qIHRvdGFsIG51bWJlciBvZiBpbnB1dCBieXRlcyByZWFkIHNvIGZhciAqLwogICAgdGhpcy50b3RhbF9pbiA9IDA7CiAgICAvKiBuZXh0IG91dHB1dCBieXRlIHNob3VsZCBiZSBwdXQgdGhlcmUgKi8KICAgIHRoaXMub3V0cHV0ID0gbnVsbDsgLy8gSlMgc3BlY2lmaWMsIGJlY2F1c2Ugd2UgaGF2ZSBubyBwb2ludGVycwogICAgdGhpcy5uZXh0X291dCA9IDA7CiAgICAvKiByZW1haW5pbmcgZnJlZSBzcGFjZSBhdCBvdXRwdXQgKi8KICAgIHRoaXMuYXZhaWxfb3V0ID0gMDsKICAgIC8qIHRvdGFsIG51bWJlciBvZiBieXRlcyBvdXRwdXQgc28gZmFyICovCiAgICB0aGlzLnRvdGFsX291dCA9IDA7CiAgICAvKiBsYXN0IGVycm9yIG1lc3NhZ2UsIE5VTEwgaWYgbm8gZXJyb3IgKi8KICAgIHRoaXMubXNnID0gJycvKlpfTlVMTCovOwogICAgLyogbm90IHZpc2libGUgYnkgYXBwbGljYXRpb25zICovCiAgICB0aGlzLnN0YXRlID0gbnVsbDsKICAgIC8qIGJlc3QgZ3Vlc3MgYWJvdXQgdGhlIGRhdGEgdHlwZTogYmluYXJ5IG9yIHRleHQgKi8KICAgIHRoaXMuZGF0YV90eXBlID0gMi8qWl9VTktOT1dOKi87CiAgICAvKiBhZGxlcjMyIHZhbHVlIG9mIHRoZSB1bmNvbXByZXNzZWQgZGF0YSAqLwogICAgdGhpcy5hZGxlciA9IDA7CiAgfQoKICB2YXIgenN0cmVhbSA9IFpTdHJlYW07CgogIGNvbnN0IHRvU3RyaW5nJDEgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwoKICAvKiBQdWJsaWMgY29uc3RhbnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgogIGNvbnN0IHsKICAgIFpfTk9fRkxVU0g6IFpfTk9fRkxVU0gkMSwgWl9TWU5DX0ZMVVNILCBaX0ZVTExfRkxVU0gsIFpfRklOSVNIOiBaX0ZJTklTSCQyLAogICAgWl9PSzogWl9PSyQyLCBaX1NUUkVBTV9FTkQ6IFpfU1RSRUFNX0VORCQyLAogICAgWl9ERUZBVUxUX0NPTVBSRVNTSU9OLAogICAgWl9ERUZBVUxUX1NUUkFURUdZLAogICAgWl9ERUZMQVRFRDogWl9ERUZMQVRFRCQxCiAgfSA9IGNvbnN0YW50cyQyOwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCiAgLyoqCiAgICogY2xhc3MgRGVmbGF0ZQogICAqCiAgICogR2VuZXJpYyBKUy1zdHlsZSB3cmFwcGVyIGZvciB6bGliIGNhbGxzLiBJZiB5b3UgZG9uJ3QgbmVlZAogICAqIHN0cmVhbWluZyBiZWhhdmlvdXIgLSB1c2UgbW9yZSBzaW1wbGUgZnVuY3Rpb25zOiBbW2RlZmxhdGVdXSwKICAgKiBbW2RlZmxhdGVSYXddXSBhbmQgW1tnemlwXV0uCiAgICoqLwoKICAvKiBpbnRlcm5hbAogICAqIERlZmxhdGUuY2h1bmtzIC0+IEFycmF5CiAgICoKICAgKiBDaHVua3Mgb2Ygb3V0cHV0IGRhdGEsIGlmIFtbRGVmbGF0ZSNvbkRhdGFdXSBub3Qgb3ZlcnJpZGRlbi4KICAgKiovCgogIC8qKgogICAqIERlZmxhdGUucmVzdWx0IC0+IFVpbnQ4QXJyYXkKICAgKgogICAqIENvbXByZXNzZWQgcmVzdWx0LCBnZW5lcmF0ZWQgYnkgZGVmYXVsdCBbW0RlZmxhdGUjb25EYXRhXV0KICAgKiBhbmQgW1tEZWZsYXRlI29uRW5kXV0gaGFuZGxlcnMuIEZpbGxlZCBhZnRlciB5b3UgcHVzaCBsYXN0IGNodW5rCiAgICogKGNhbGwgW1tEZWZsYXRlI3B1c2hdXSB3aXRoIGBaX0ZJTklTSGAgLyBgdHJ1ZWAgcGFyYW0pLgogICAqKi8KCiAgLyoqCiAgICogRGVmbGF0ZS5lcnIgLT4gTnVtYmVyCiAgICoKICAgKiBFcnJvciBjb2RlIGFmdGVyIGRlZmxhdGUgZmluaXNoZWQuIDAgKFpfT0spIG9uIHN1Y2Nlc3MuCiAgICogWW91IHdpbGwgbm90IG5lZWQgaXQgaW4gcmVhbCBsaWZlLCBiZWNhdXNlIGRlZmxhdGUgZXJyb3JzCiAgICogYXJlIHBvc3NpYmxlIG9ubHkgb24gd3Jvbmcgb3B0aW9ucyBvciBiYWQgYG9uRGF0YWAgLyBgb25FbmRgCiAgICogY3VzdG9tIGhhbmRsZXJzLgogICAqKi8KCiAgLyoqCiAgICogRGVmbGF0ZS5tc2cgLT4gU3RyaW5nCiAgICoKICAgKiBFcnJvciBtZXNzYWdlLCBpZiBbW0RlZmxhdGUuZXJyXV0gIT0gMAogICAqKi8KCgogIC8qKgogICAqIG5ldyBEZWZsYXRlKG9wdGlvbnMpCiAgICogLSBvcHRpb25zIChPYmplY3QpOiB6bGliIGRlZmxhdGUgb3B0aW9ucy4KICAgKgogICAqIENyZWF0ZXMgbmV3IGRlZmxhdG9yIGluc3RhbmNlIHdpdGggc3BlY2lmaWVkIHBhcmFtcy4gVGhyb3dzIGV4Y2VwdGlvbgogICAqIG9uIGJhZCBwYXJhbXMuIFN1cHBvcnRlZCBvcHRpb25zOgogICAqCiAgICogLSBgbGV2ZWxgCiAgICogLSBgd2luZG93Qml0c2AKICAgKiAtIGBtZW1MZXZlbGAKICAgKiAtIGBzdHJhdGVneWAKICAgKiAtIGBkaWN0aW9uYXJ5YAogICAqCiAgICogW2h0dHA6Ly96bGliLm5ldC9tYW51YWwuaHRtbCNBZHZhbmNlZF0oaHR0cDovL3psaWIubmV0L21hbnVhbC5odG1sI0FkdmFuY2VkKQogICAqIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZXNlLgogICAqCiAgICogQWRkaXRpb25hbCBvcHRpb25zLCBmb3IgaW50ZXJuYWwgbmVlZHM6CiAgICoKICAgKiAtIGBjaHVua1NpemVgIC0gc2l6ZSBvZiBnZW5lcmF0ZWQgZGF0YSBjaHVua3MgKDE2SyBieSBkZWZhdWx0KQogICAqIC0gYHJhd2AgKEJvb2xlYW4pIC0gZG8gcmF3IGRlZmxhdGUKICAgKiAtIGBnemlwYCAoQm9vbGVhbikgLSBjcmVhdGUgZ3ppcCB3cmFwcGVyCiAgICogLSBgaGVhZGVyYCAoT2JqZWN0KSAtIGN1c3RvbSBoZWFkZXIgZm9yIGd6aXAKICAgKiAgIC0gYHRleHRgIChCb29sZWFuKSAtIHRydWUgaWYgY29tcHJlc3NlZCBkYXRhIGJlbGlldmVkIHRvIGJlIHRleHQKICAgKiAgIC0gYHRpbWVgIChOdW1iZXIpIC0gbW9kaWZpY2F0aW9uIHRpbWUsIHVuaXggdGltZXN0YW1wCiAgICogICAtIGBvc2AgKE51bWJlcikgLSBvcGVyYXRpb24gc3lzdGVtIGNvZGUKICAgKiAgIC0gYGV4dHJhYCAoQXJyYXkpIC0gYXJyYXkgb2YgYnl0ZXMgd2l0aCBleHRyYSBkYXRhIChtYXggNjU1MzYpCiAgICogICAtIGBuYW1lYCAoU3RyaW5nKSAtIGZpbGUgbmFtZSAoYmluYXJ5IHN0cmluZykKICAgKiAgIC0gYGNvbW1lbnRgIChTdHJpbmcpIC0gY29tbWVudCAoYmluYXJ5IHN0cmluZykKICAgKiAgIC0gYGhjcmNgIChCb29sZWFuKSAtIHRydWUgaWYgaGVhZGVyIGNyYyBzaG91bGQgYmUgYWRkZWQKICAgKgogICAqICMjIyMjIEV4YW1wbGU6CiAgICoKICAgKiBgYGBqYXZhc2NyaXB0CiAgICogY29uc3QgcGFrbyA9IHJlcXVpcmUoJ3Bha28nKQogICAqICAgLCBjaHVuazEgPSBuZXcgVWludDhBcnJheShbMSwyLDMsNCw1LDYsNyw4LDldKQogICAqICAgLCBjaHVuazIgPSBuZXcgVWludDhBcnJheShbMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTldKTsKICAgKgogICAqIGNvbnN0IGRlZmxhdGUgPSBuZXcgcGFrby5EZWZsYXRlKHsgbGV2ZWw6IDN9KTsKICAgKgogICAqIGRlZmxhdGUucHVzaChjaHVuazEsIGZhbHNlKTsKICAgKiBkZWZsYXRlLnB1c2goY2h1bmsyLCB0cnVlKTsgIC8vIHRydWUgLT4gbGFzdCBjaHVuawogICAqCiAgICogaWYgKGRlZmxhdGUuZXJyKSB7IHRocm93IG5ldyBFcnJvcihkZWZsYXRlLmVycik7IH0KICAgKgogICAqIGNvbnNvbGUubG9nKGRlZmxhdGUucmVzdWx0KTsKICAgKiBgYGAKICAgKiovCiAgZnVuY3Rpb24gRGVmbGF0ZSQxKG9wdGlvbnMpIHsKICAgIHRoaXMub3B0aW9ucyA9IGNvbW1vbi5hc3NpZ24oewogICAgICBsZXZlbDogWl9ERUZBVUxUX0NPTVBSRVNTSU9OLAogICAgICBtZXRob2Q6IFpfREVGTEFURUQkMSwKICAgICAgY2h1bmtTaXplOiAxNjM4NCwKICAgICAgd2luZG93Qml0czogMTUsCiAgICAgIG1lbUxldmVsOiA4LAogICAgICBzdHJhdGVneTogWl9ERUZBVUxUX1NUUkFURUdZCiAgICB9LCBvcHRpb25zIHx8IHt9KTsKCiAgICBsZXQgb3B0ID0gdGhpcy5vcHRpb25zOwoKICAgIGlmIChvcHQucmF3ICYmIChvcHQud2luZG93Qml0cyA+IDApKSB7CiAgICAgIG9wdC53aW5kb3dCaXRzID0gLW9wdC53aW5kb3dCaXRzOwogICAgfQoKICAgIGVsc2UgaWYgKG9wdC5nemlwICYmIChvcHQud2luZG93Qml0cyA+IDApICYmIChvcHQud2luZG93Qml0cyA8IDE2KSkgewogICAgICBvcHQud2luZG93Qml0cyArPSAxNjsKICAgIH0KCiAgICB0aGlzLmVyciAgICA9IDA7ICAgICAgLy8gZXJyb3IgY29kZSwgaWYgaGFwcGVucyAoMCA9IFpfT0spCiAgICB0aGlzLm1zZyAgICA9ICcnOyAgICAgLy8gZXJyb3IgbWVzc2FnZQogICAgdGhpcy5lbmRlZCAgPSBmYWxzZTsgIC8vIHVzZWQgdG8gYXZvaWQgbXVsdGlwbGUgb25FbmQoKSBjYWxscwogICAgdGhpcy5jaHVua3MgPSBbXTsgICAgIC8vIGNodW5rcyBvZiBjb21wcmVzc2VkIGRhdGEKCiAgICB0aGlzLnN0cm0gPSBuZXcgenN0cmVhbSgpOwogICAgdGhpcy5zdHJtLmF2YWlsX291dCA9IDA7CgogICAgbGV0IHN0YXR1cyA9IGRlZmxhdGVfMSQyLmRlZmxhdGVJbml0MigKICAgICAgdGhpcy5zdHJtLAogICAgICBvcHQubGV2ZWwsCiAgICAgIG9wdC5tZXRob2QsCiAgICAgIG9wdC53aW5kb3dCaXRzLAogICAgICBvcHQubWVtTGV2ZWwsCiAgICAgIG9wdC5zdHJhdGVneQogICAgKTsKCiAgICBpZiAoc3RhdHVzICE9PSBaX09LJDIpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2VzW3N0YXR1c10pOwogICAgfQoKICAgIGlmIChvcHQuaGVhZGVyKSB7CiAgICAgIGRlZmxhdGVfMSQyLmRlZmxhdGVTZXRIZWFkZXIodGhpcy5zdHJtLCBvcHQuaGVhZGVyKTsKICAgIH0KCiAgICBpZiAob3B0LmRpY3Rpb25hcnkpIHsKICAgICAgbGV0IGRpY3Q7CiAgICAgIC8vIENvbnZlcnQgZGF0YSBpZiBuZWVkZWQKICAgICAgaWYgKHR5cGVvZiBvcHQuZGljdGlvbmFyeSA9PT0gJ3N0cmluZycpIHsKICAgICAgICAvLyBJZiB3ZSBuZWVkIHRvIGNvbXByZXNzIHRleHQsIGNoYW5nZSBlbmNvZGluZyB0byB1dGY4LgogICAgICAgIGRpY3QgPSBzdHJpbmdzLnN0cmluZzJidWYob3B0LmRpY3Rpb25hcnkpOwogICAgICB9IGVsc2UgaWYgKHRvU3RyaW5nJDEuY2FsbChvcHQuZGljdGlvbmFyeSkgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXScpIHsKICAgICAgICBkaWN0ID0gbmV3IFVpbnQ4QXJyYXkob3B0LmRpY3Rpb25hcnkpOwogICAgICB9IGVsc2UgewogICAgICAgIGRpY3QgPSBvcHQuZGljdGlvbmFyeTsKICAgICAgfQoKICAgICAgc3RhdHVzID0gZGVmbGF0ZV8xJDIuZGVmbGF0ZVNldERpY3Rpb25hcnkodGhpcy5zdHJtLCBkaWN0KTsKCiAgICAgIGlmIChzdGF0dXMgIT09IFpfT0skMikgewogICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlc1tzdGF0dXNdKTsKICAgICAgfQoKICAgICAgdGhpcy5fZGljdF9zZXQgPSB0cnVlOwogICAgfQogIH0KCiAgLyoqCiAgICogRGVmbGF0ZSNwdXNoKGRhdGFbLCBmbHVzaF9tb2RlXSkgLT4gQm9vbGVhbgogICAqIC0gZGF0YSAoVWludDhBcnJheXxBcnJheUJ1ZmZlcnxTdHJpbmcpOiBpbnB1dCBkYXRhLiBTdHJpbmdzIHdpbGwgYmUKICAgKiAgIGNvbnZlcnRlZCB0byB1dGY4IGJ5dGUgc2VxdWVuY2UuCiAgICogLSBmbHVzaF9tb2RlIChOdW1iZXJ8Qm9vbGVhbik6IDAuLjYgZm9yIGNvcnJlc3BvbmRpbmcgWl9OT19GTFVTSC4uWl9UUkVFIG1vZGVzLgogICAqICAgU2VlIGNvbnN0YW50cy4gU2tpcHBlZCBvciBgZmFsc2VgIG1lYW5zIFpfTk9fRkxVU0gsIGB0cnVlYCBtZWFucyBaX0ZJTklTSC4KICAgKgogICAqIFNlbmRzIGlucHV0IGRhdGEgdG8gZGVmbGF0ZSBwaXBlLCBnZW5lcmF0aW5nIFtbRGVmbGF0ZSNvbkRhdGFdXSBjYWxscyB3aXRoCiAgICogbmV3IGNvbXByZXNzZWQgY2h1bmtzLiBSZXR1cm5zIGB0cnVlYCBvbiBzdWNjZXNzLiBUaGUgbGFzdCBkYXRhIGJsb2NrIG11c3QKICAgKiBoYXZlIGBmbHVzaF9tb2RlYCBaX0ZJTklTSCAob3IgYHRydWVgKS4gVGhhdCB3aWxsIGZsdXNoIGludGVybmFsIHBlbmRpbmcKICAgKiBidWZmZXJzIGFuZCBjYWxsIFtbRGVmbGF0ZSNvbkVuZF1dLgogICAqCiAgICogT24gZmFpbCBjYWxsIFtbRGVmbGF0ZSNvbkVuZF1dIHdpdGggZXJyb3IgY29kZSBhbmQgcmV0dXJuIGZhbHNlLgogICAqCiAgICogIyMjIyMgRXhhbXBsZQogICAqCiAgICogYGBgamF2YXNjcmlwdAogICAqIHB1c2goY2h1bmssIGZhbHNlKTsgLy8gcHVzaCBvbmUgb2YgZGF0YSBjaHVua3MKICAgKiAuLi4KICAgKiBwdXNoKGNodW5rLCB0cnVlKTsgIC8vIHB1c2ggbGFzdCBjaHVuawogICAqIGBgYAogICAqKi8KICBEZWZsYXRlJDEucHJvdG90eXBlLnB1c2ggPSBmdW5jdGlvbiAoZGF0YSwgZmx1c2hfbW9kZSkgewogICAgY29uc3Qgc3RybSA9IHRoaXMuc3RybTsKICAgIGNvbnN0IGNodW5rU2l6ZSA9IHRoaXMub3B0aW9ucy5jaHVua1NpemU7CiAgICBsZXQgc3RhdHVzLCBfZmx1c2hfbW9kZTsKCiAgICBpZiAodGhpcy5lbmRlZCkgeyByZXR1cm4gZmFsc2U7IH0KCiAgICBpZiAoZmx1c2hfbW9kZSA9PT0gfn5mbHVzaF9tb2RlKSBfZmx1c2hfbW9kZSA9IGZsdXNoX21vZGU7CiAgICBlbHNlIF9mbHVzaF9tb2RlID0gZmx1c2hfbW9kZSA9PT0gdHJ1ZSA/IFpfRklOSVNIJDIgOiBaX05PX0ZMVVNIJDE7CgogICAgLy8gQ29udmVydCBkYXRhIGlmIG5lZWRlZAogICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykgewogICAgICAvLyBJZiB3ZSBuZWVkIHRvIGNvbXByZXNzIHRleHQsIGNoYW5nZSBlbmNvZGluZyB0byB1dGY4LgogICAgICBzdHJtLmlucHV0ID0gc3RyaW5ncy5zdHJpbmcyYnVmKGRhdGEpOwogICAgfSBlbHNlIGlmICh0b1N0cmluZyQxLmNhbGwoZGF0YSkgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXScpIHsKICAgICAgc3RybS5pbnB1dCA9IG5ldyBVaW50OEFycmF5KGRhdGEpOwogICAgfSBlbHNlIHsKICAgICAgc3RybS5pbnB1dCA9IGRhdGE7CiAgICB9CgogICAgc3RybS5uZXh0X2luID0gMDsKICAgIHN0cm0uYXZhaWxfaW4gPSBzdHJtLmlucHV0Lmxlbmd0aDsKCiAgICBmb3IgKDs7KSB7CiAgICAgIGlmIChzdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHN0cm0ub3V0cHV0ID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmtTaXplKTsKICAgICAgICBzdHJtLm5leHRfb3V0ID0gMDsKICAgICAgICBzdHJtLmF2YWlsX291dCA9IGNodW5rU2l6ZTsKICAgICAgfQoKICAgICAgLy8gTWFrZSBzdXJlIGF2YWlsX291dCA+IDYgdG8gYXZvaWQgcmVwZWF0aW5nIG1hcmtlcnMKICAgICAgaWYgKChfZmx1c2hfbW9kZSA9PT0gWl9TWU5DX0ZMVVNIIHx8IF9mbHVzaF9tb2RlID09PSBaX0ZVTExfRkxVU0gpICYmIHN0cm0uYXZhaWxfb3V0IDw9IDYpIHsKICAgICAgICB0aGlzLm9uRGF0YShzdHJtLm91dHB1dC5zdWJhcnJheSgwLCBzdHJtLm5leHRfb3V0KSk7CiAgICAgICAgc3RybS5hdmFpbF9vdXQgPSAwOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9CgogICAgICBzdGF0dXMgPSBkZWZsYXRlXzEkMi5kZWZsYXRlKHN0cm0sIF9mbHVzaF9tb2RlKTsKCiAgICAgIC8vIEVuZGVkID0+IGZsdXNoIGFuZCBmaW5pc2gKICAgICAgaWYgKHN0YXR1cyA9PT0gWl9TVFJFQU1fRU5EJDIpIHsKICAgICAgICBpZiAoc3RybS5uZXh0X291dCA+IDApIHsKICAgICAgICAgIHRoaXMub25EYXRhKHN0cm0ub3V0cHV0LnN1YmFycmF5KDAsIHN0cm0ubmV4dF9vdXQpKTsKICAgICAgICB9CiAgICAgICAgc3RhdHVzID0gZGVmbGF0ZV8xJDIuZGVmbGF0ZUVuZCh0aGlzLnN0cm0pOwogICAgICAgIHRoaXMub25FbmQoc3RhdHVzKTsKICAgICAgICB0aGlzLmVuZGVkID0gdHJ1ZTsKICAgICAgICByZXR1cm4gc3RhdHVzID09PSBaX09LJDI7CiAgICAgIH0KCiAgICAgIC8vIEZsdXNoIGlmIG91dCBidWZmZXIgZnVsbAogICAgICBpZiAoc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICB0aGlzLm9uRGF0YShzdHJtLm91dHB1dCk7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIC8vIEZsdXNoIGlmIHJlcXVlc3RlZCBhbmQgaGFzIGRhdGEKICAgICAgaWYgKF9mbHVzaF9tb2RlID4gMCAmJiBzdHJtLm5leHRfb3V0ID4gMCkgewogICAgICAgIHRoaXMub25EYXRhKHN0cm0ub3V0cHV0LnN1YmFycmF5KDAsIHN0cm0ubmV4dF9vdXQpKTsKICAgICAgICBzdHJtLmF2YWlsX291dCA9IDA7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIGlmIChzdHJtLmF2YWlsX2luID09PSAwKSBicmVhazsKICAgIH0KCiAgICByZXR1cm4gdHJ1ZTsKICB9OwoKCiAgLyoqCiAgICogRGVmbGF0ZSNvbkRhdGEoY2h1bmspIC0+IFZvaWQKICAgKiAtIGNodW5rIChVaW50OEFycmF5KTogb3V0cHV0IGRhdGEuCiAgICoKICAgKiBCeSBkZWZhdWx0LCBzdG9yZXMgZGF0YSBibG9ja3MgaW4gYGNodW5rc1tdYCBwcm9wZXJ0eSBhbmQgZ2x1ZQogICAqIHRob3NlIGluIGBvbkVuZGAuIE92ZXJyaWRlIHRoaXMgaGFuZGxlciwgaWYgeW91IG5lZWQgYW5vdGhlciBiZWhhdmlvdXIuCiAgICoqLwogIERlZmxhdGUkMS5wcm90b3R5cGUub25EYXRhID0gZnVuY3Rpb24gKGNodW5rKSB7CiAgICB0aGlzLmNodW5rcy5wdXNoKGNodW5rKTsKICB9OwoKCiAgLyoqCiAgICogRGVmbGF0ZSNvbkVuZChzdGF0dXMpIC0+IFZvaWQKICAgKiAtIHN0YXR1cyAoTnVtYmVyKTogZGVmbGF0ZSBzdGF0dXMuIDAgKFpfT0spIG9uIHN1Y2Nlc3MsCiAgICogICBvdGhlciBpZiBub3QuCiAgICoKICAgKiBDYWxsZWQgb25jZSBhZnRlciB5b3UgdGVsbCBkZWZsYXRlIHRoYXQgdGhlIGlucHV0IHN0cmVhbSBpcwogICAqIGNvbXBsZXRlIChaX0ZJTklTSCkuIEJ5IGRlZmF1bHQgLSBqb2luIGNvbGxlY3RlZCBjaHVua3MsCiAgICogZnJlZSBtZW1vcnkgYW5kIGZpbGwgYHJlc3VsdHNgIC8gYGVycmAgcHJvcGVydGllcy4KICAgKiovCiAgRGVmbGF0ZSQxLnByb3RvdHlwZS5vbkVuZCA9IGZ1bmN0aW9uIChzdGF0dXMpIHsKICAgIC8vIE9uIHN1Y2Nlc3MgLSBqb2luCiAgICBpZiAoc3RhdHVzID09PSBaX09LJDIpIHsKICAgICAgdGhpcy5yZXN1bHQgPSBjb21tb24uZmxhdHRlbkNodW5rcyh0aGlzLmNodW5rcyk7CiAgICB9CiAgICB0aGlzLmNodW5rcyA9IFtdOwogICAgdGhpcy5lcnIgPSBzdGF0dXM7CiAgICB0aGlzLm1zZyA9IHRoaXMuc3RybS5tc2c7CiAgfTsKCiAgLy8gKEMpIDE5OTUtMjAxMyBKZWFuLWxvdXAgR2FpbGx5IGFuZCBNYXJrIEFkbGVyCiAgLy8gKEMpIDIwMTQtMjAxNyBWaXRhbHkgUHV6cmluIGFuZCBBbmRyZXkgVHVwaXRzaW4KICAvLwogIC8vIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkCiAgLy8gd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCiAgLy8gYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KICAvLwogIC8vIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAogIC8vIGluY2x1ZGluZyBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucywgYW5kIHRvIGFsdGVyIGl0IGFuZCByZWRpc3RyaWJ1dGUgaXQKICAvLyBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6CiAgLy8KICAvLyAxLiBUaGUgb3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUgbWlzcmVwcmVzZW50ZWQ7IHlvdSBtdXN0IG5vdAogIC8vICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKICAvLyAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQogIC8vICAgYXBwcmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4KICAvLyAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQogIC8vICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgogIC8vIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCgogIC8vIFNlZSBzdGF0ZSBkZWZzIGZyb20gaW5mbGF0ZS5qcwogIGNvbnN0IEJBRCQxID0gMzA7ICAgICAgIC8qIGdvdCBhIGRhdGEgZXJyb3IgLS0gcmVtYWluIGhlcmUgdW50aWwgcmVzZXQgKi8KICBjb25zdCBUWVBFJDEgPSAxMjsgICAgICAvKiBpOiB3YWl0aW5nIGZvciB0eXBlIGJpdHMsIGluY2x1ZGluZyBsYXN0LWZsYWcgYml0ICovCgogIC8qCiAgICAgRGVjb2RlIGxpdGVyYWwsIGxlbmd0aCwgYW5kIGRpc3RhbmNlIGNvZGVzIGFuZCB3cml0ZSBvdXQgdGhlIHJlc3VsdGluZwogICAgIGxpdGVyYWwgYW5kIG1hdGNoIGJ5dGVzIHVudGlsIGVpdGhlciBub3QgZW5vdWdoIGlucHV0IG9yIG91dHB1dCBpcwogICAgIGF2YWlsYWJsZSwgYW4gZW5kLW9mLWJsb2NrIGlzIGVuY291bnRlcmVkLCBvciBhIGRhdGEgZXJyb3IgaXMgZW5jb3VudGVyZWQuCiAgICAgV2hlbiBsYXJnZSBlbm91Z2ggaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIGFyZSBzdXBwbGllZCB0byBpbmZsYXRlKCksIGZvcgogICAgIGV4YW1wbGUsIGEgMTZLIGlucHV0IGJ1ZmZlciBhbmQgYSA2NEsgb3V0cHV0IGJ1ZmZlciwgbW9yZSB0aGFuIDk1JSBvZiB0aGUKICAgICBpbmZsYXRlIGV4ZWN1dGlvbiB0aW1lIGlzIHNwZW50IGluIHRoaXMgcm91dGluZS4KCiAgICAgRW50cnkgYXNzdW1wdGlvbnM6CgogICAgICAgICAgc3RhdGUubW9kZSA9PT0gTEVOCiAgICAgICAgICBzdHJtLmF2YWlsX2luID49IDYKICAgICAgICAgIHN0cm0uYXZhaWxfb3V0ID49IDI1OAogICAgICAgICAgc3RhcnQgPj0gc3RybS5hdmFpbF9vdXQKICAgICAgICAgIHN0YXRlLmJpdHMgPCA4CgogICAgIE9uIHJldHVybiwgc3RhdGUubW9kZSBpcyBvbmUgb2Y6CgogICAgICAgICAgTEVOIC0tIHJhbiBvdXQgb2YgZW5vdWdoIG91dHB1dCBzcGFjZSBvciBlbm91Z2ggYXZhaWxhYmxlIGlucHV0CiAgICAgICAgICBUWVBFIC0tIHJlYWNoZWQgZW5kIG9mIGJsb2NrIGNvZGUsIGluZmxhdGUoKSB0byBpbnRlcnByZXQgbmV4dCBibG9jawogICAgICAgICAgQkFEIC0tIGVycm9yIGluIGJsb2NrIGRhdGEKCiAgICAgTm90ZXM6CgogICAgICAtIFRoZSBtYXhpbXVtIGlucHV0IGJpdHMgdXNlZCBieSBhIGxlbmd0aC9kaXN0YW5jZSBwYWlyIGlzIDE1IGJpdHMgZm9yIHRoZQogICAgICAgIGxlbmd0aCBjb2RlLCA1IGJpdHMgZm9yIHRoZSBsZW5ndGggZXh0cmEsIDE1IGJpdHMgZm9yIHRoZSBkaXN0YW5jZSBjb2RlLAogICAgICAgIGFuZCAxMyBiaXRzIGZvciB0aGUgZGlzdGFuY2UgZXh0cmEuICBUaGlzIHRvdGFscyA0OCBiaXRzLCBvciBzaXggYnl0ZXMuCiAgICAgICAgVGhlcmVmb3JlIGlmIHN0cm0uYXZhaWxfaW4gPj0gNiwgdGhlbiB0aGVyZSBpcyBlbm91Z2ggaW5wdXQgdG8gYXZvaWQKICAgICAgICBjaGVja2luZyBmb3IgYXZhaWxhYmxlIGlucHV0IHdoaWxlIGRlY29kaW5nLgoKICAgICAgLSBUaGUgbWF4aW11bSBieXRlcyB0aGF0IGEgc2luZ2xlIGxlbmd0aC9kaXN0YW5jZSBwYWlyIGNhbiBvdXRwdXQgaXMgMjU4CiAgICAgICAgYnl0ZXMsIHdoaWNoIGlzIHRoZSBtYXhpbXVtIGxlbmd0aCB0aGF0IGNhbiBiZSBjb2RlZC4gIGluZmxhdGVfZmFzdCgpCiAgICAgICAgcmVxdWlyZXMgc3RybS5hdmFpbF9vdXQgPj0gMjU4IGZvciBlYWNoIGxvb3AgdG8gYXZvaWQgY2hlY2tpbmcgZm9yCiAgICAgICAgb3V0cHV0IHNwYWNlLgogICAqLwogIHZhciBpbmZmYXN0ID0gZnVuY3Rpb24gaW5mbGF0ZV9mYXN0KHN0cm0sIHN0YXJ0KSB7CiAgICBsZXQgX2luOyAgICAgICAgICAgICAgICAgICAgLyogbG9jYWwgc3RybS5pbnB1dCAqLwogICAgbGV0IGxhc3Q7ICAgICAgICAgICAgICAgICAgIC8qIGhhdmUgZW5vdWdoIGlucHV0IHdoaWxlIGluIDwgbGFzdCAqLwogICAgbGV0IF9vdXQ7ICAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0ub3V0cHV0ICovCiAgICBsZXQgYmVnOyAgICAgICAgICAgICAgICAgICAgLyogaW5mbGF0ZSgpJ3MgaW5pdGlhbCBzdHJtLm91dHB1dCAqLwogICAgbGV0IGVuZDsgICAgICAgICAgICAgICAgICAgIC8qIHdoaWxlIG91dCA8IGVuZCwgZW5vdWdoIHNwYWNlIGF2YWlsYWJsZSAqLwogIC8vI2lmZGVmIElORkxBVEVfU1RSSUNUCiAgICBsZXQgZG1heDsgICAgICAgICAgICAgICAgICAgLyogbWF4aW11bSBkaXN0YW5jZSBmcm9tIHpsaWIgaGVhZGVyICovCiAgLy8jZW5kaWYKICAgIGxldCB3c2l6ZTsgICAgICAgICAgICAgICAgICAvKiB3aW5kb3cgc2l6ZSBvciB6ZXJvIGlmIG5vdCB1c2luZyB3aW5kb3cgKi8KICAgIGxldCB3aGF2ZTsgICAgICAgICAgICAgICAgICAvKiB2YWxpZCBieXRlcyBpbiB0aGUgd2luZG93ICovCiAgICBsZXQgd25leHQ7ICAgICAgICAgICAgICAgICAgLyogd2luZG93IHdyaXRlIGluZGV4ICovCiAgICAvLyBVc2UgYHNfd2luZG93YCBpbnN0ZWFkIGB3aW5kb3dgLCBhdm9pZCBjb25mbGljdCB3aXRoIGluc3RydW1lbnRhdGlvbiB0b29scwogICAgbGV0IHNfd2luZG93OyAgICAgICAgICAgICAgIC8qIGFsbG9jYXRlZCBzbGlkaW5nIHdpbmRvdywgaWYgd3NpemUgIT0gMCAqLwogICAgbGV0IGhvbGQ7ICAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0uaG9sZCAqLwogICAgbGV0IGJpdHM7ICAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0uYml0cyAqLwogICAgbGV0IGxjb2RlOyAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0ubGVuY29kZSAqLwogICAgbGV0IGRjb2RlOyAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0uZGlzdGNvZGUgKi8KICAgIGxldCBsbWFzazsgICAgICAgICAgICAgICAgICAvKiBtYXNrIGZvciBmaXJzdCBsZXZlbCBvZiBsZW5ndGggY29kZXMgKi8KICAgIGxldCBkbWFzazsgICAgICAgICAgICAgICAgICAvKiBtYXNrIGZvciBmaXJzdCBsZXZlbCBvZiBkaXN0YW5jZSBjb2RlcyAqLwogICAgbGV0IGhlcmU7ICAgICAgICAgICAgICAgICAgIC8qIHJldHJpZXZlZCB0YWJsZSBlbnRyeSAqLwogICAgbGV0IG9wOyAgICAgICAgICAgICAgICAgICAgIC8qIGNvZGUgYml0cywgb3BlcmF0aW9uLCBleHRyYSBiaXRzLCBvciAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICB3aW5kb3cgcG9zaXRpb24sIHdpbmRvdyBieXRlcyB0byBjb3B5ICovCiAgICBsZXQgbGVuOyAgICAgICAgICAgICAgICAgICAgLyogbWF0Y2ggbGVuZ3RoLCB1bnVzZWQgYnl0ZXMgKi8KICAgIGxldCBkaXN0OyAgICAgICAgICAgICAgICAgICAvKiBtYXRjaCBkaXN0YW5jZSAqLwogICAgbGV0IGZyb207ICAgICAgICAgICAgICAgICAgIC8qIHdoZXJlIHRvIGNvcHkgbWF0Y2ggZnJvbSAqLwogICAgbGV0IGZyb21fc291cmNlOwoKCiAgICBsZXQgaW5wdXQsIG91dHB1dDsgLy8gSlMgc3BlY2lmaWMsIGJlY2F1c2Ugd2UgaGF2ZSBubyBwb2ludGVycwoKICAgIC8qIGNvcHkgc3RhdGUgdG8gbG9jYWwgdmFyaWFibGVzICovCiAgICBjb25zdCBzdGF0ZSA9IHN0cm0uc3RhdGU7CiAgICAvL2hlcmUgPSBzdGF0ZS5oZXJlOwogICAgX2luID0gc3RybS5uZXh0X2luOwogICAgaW5wdXQgPSBzdHJtLmlucHV0OwogICAgbGFzdCA9IF9pbiArIChzdHJtLmF2YWlsX2luIC0gNSk7CiAgICBfb3V0ID0gc3RybS5uZXh0X291dDsKICAgIG91dHB1dCA9IHN0cm0ub3V0cHV0OwogICAgYmVnID0gX291dCAtIChzdGFydCAtIHN0cm0uYXZhaWxfb3V0KTsKICAgIGVuZCA9IF9vdXQgKyAoc3RybS5hdmFpbF9vdXQgLSAyNTcpOwogIC8vI2lmZGVmIElORkxBVEVfU1RSSUNUCiAgICBkbWF4ID0gc3RhdGUuZG1heDsKICAvLyNlbmRpZgogICAgd3NpemUgPSBzdGF0ZS53c2l6ZTsKICAgIHdoYXZlID0gc3RhdGUud2hhdmU7CiAgICB3bmV4dCA9IHN0YXRlLnduZXh0OwogICAgc193aW5kb3cgPSBzdGF0ZS53aW5kb3c7CiAgICBob2xkID0gc3RhdGUuaG9sZDsKICAgIGJpdHMgPSBzdGF0ZS5iaXRzOwogICAgbGNvZGUgPSBzdGF0ZS5sZW5jb2RlOwogICAgZGNvZGUgPSBzdGF0ZS5kaXN0Y29kZTsKICAgIGxtYXNrID0gKDEgPDwgc3RhdGUubGVuYml0cykgLSAxOwogICAgZG1hc2sgPSAoMSA8PCBzdGF0ZS5kaXN0Yml0cykgLSAxOwoKCiAgICAvKiBkZWNvZGUgbGl0ZXJhbHMgYW5kIGxlbmd0aC9kaXN0YW5jZXMgdW50aWwgZW5kLW9mLWJsb2NrIG9yIG5vdCBlbm91Z2gKICAgICAgIGlucHV0IGRhdGEgb3Igb3V0cHV0IHNwYWNlICovCgogICAgdG9wOgogICAgZG8gewogICAgICBpZiAoYml0cyA8IDE1KSB7CiAgICAgICAgaG9sZCArPSBpbnB1dFtfaW4rK10gPDwgYml0czsKICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgaG9sZCArPSBpbnB1dFtfaW4rK10gPDwgYml0czsKICAgICAgICBiaXRzICs9IDg7CiAgICAgIH0KCiAgICAgIGhlcmUgPSBsY29kZVtob2xkICYgbG1hc2tdOwoKICAgICAgZG9sZW46CiAgICAgIGZvciAoOzspIHsgLy8gR290byBlbXVsYXRpb24KICAgICAgICBvcCA9IGhlcmUgPj4+IDI0LypoZXJlLmJpdHMqLzsKICAgICAgICBob2xkID4+Pj0gb3A7CiAgICAgICAgYml0cyAtPSBvcDsKICAgICAgICBvcCA9IChoZXJlID4+PiAxNikgJiAweGZmLypoZXJlLm9wKi87CiAgICAgICAgaWYgKG9wID09PSAwKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBsaXRlcmFsICovCiAgICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwgaGVyZS52YWwgPj0gMHgyMCAmJiBoZXJlLnZhbCA8IDB4N2YgPwogICAgICAgICAgLy8gICAgICAgICJpbmZsYXRlOiAgICAgICAgIGxpdGVyYWwgJyVjJ1xuIiA6CiAgICAgICAgICAvLyAgICAgICAgImluZmxhdGU6ICAgICAgICAgbGl0ZXJhbCAweCUwMnhcbiIsIGhlcmUudmFsKSk7CiAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IGhlcmUgJiAweGZmZmYvKmhlcmUudmFsKi87CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKG9wICYgMTYpIHsgICAgICAgICAgICAgICAgICAgICAvKiBsZW5ndGggYmFzZSAqLwogICAgICAgICAgbGVuID0gaGVyZSAmIDB4ZmZmZi8qaGVyZS52YWwqLzsKICAgICAgICAgIG9wICY9IDE1OyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBleHRyYSBiaXRzICovCiAgICAgICAgICBpZiAob3ApIHsKICAgICAgICAgICAgaWYgKGJpdHMgPCBvcCkgewogICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbX2luKytdIDw8IGJpdHM7CiAgICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxlbiArPSBob2xkICYgKCgxIDw8IG9wKSAtIDEpOwogICAgICAgICAgICBob2xkID4+Pj0gb3A7CiAgICAgICAgICAgIGJpdHMgLT0gb3A7CiAgICAgICAgICB9CiAgICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwgImluZmxhdGU6ICAgICAgICAgbGVuZ3RoICV1XG4iLCBsZW4pKTsKICAgICAgICAgIGlmIChiaXRzIDwgMTUpIHsKICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtfaW4rK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICBob2xkICs9IGlucHV0W19pbisrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICB9CiAgICAgICAgICBoZXJlID0gZGNvZGVbaG9sZCAmIGRtYXNrXTsKCiAgICAgICAgICBkb2Rpc3Q6CiAgICAgICAgICBmb3IgKDs7KSB7IC8vIGdvdG8gZW11bGF0aW9uCiAgICAgICAgICAgIG9wID0gaGVyZSA+Pj4gMjQvKmhlcmUuYml0cyovOwogICAgICAgICAgICBob2xkID4+Pj0gb3A7CiAgICAgICAgICAgIGJpdHMgLT0gb3A7CiAgICAgICAgICAgIG9wID0gKGhlcmUgPj4+IDE2KSAmIDB4ZmYvKmhlcmUub3AqLzsKCiAgICAgICAgICAgIGlmIChvcCAmIDE2KSB7ICAgICAgICAgICAgICAgICAgICAgIC8qIGRpc3RhbmNlIGJhc2UgKi8KICAgICAgICAgICAgICBkaXN0ID0gaGVyZSAmIDB4ZmZmZi8qaGVyZS52YWwqLzsKICAgICAgICAgICAgICBvcCAmPSAxNTsgICAgICAgICAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBleHRyYSBiaXRzICovCiAgICAgICAgICAgICAgaWYgKGJpdHMgPCBvcCkgewogICAgICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtfaW4rK10gPDwgYml0czsKICAgICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICAgIGlmIChiaXRzIDwgb3ApIHsKICAgICAgICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtfaW4rK10gPDwgYml0czsKICAgICAgICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBkaXN0ICs9IGhvbGQgJiAoKDEgPDwgb3ApIC0gMSk7CiAgLy8jaWZkZWYgSU5GTEFURV9TVFJJQ1QKICAgICAgICAgICAgICBpZiAoZGlzdCA+IGRtYXgpIHsKICAgICAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrJzsKICAgICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQkMTsKICAgICAgICAgICAgICAgIGJyZWFrIHRvcDsKICAgICAgICAgICAgICB9CiAgLy8jZW5kaWYKICAgICAgICAgICAgICBob2xkID4+Pj0gb3A7CiAgICAgICAgICAgICAgYml0cyAtPSBvcDsKICAgICAgICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwgImluZmxhdGU6ICAgICAgICAgZGlzdGFuY2UgJXVcbiIsIGRpc3QpKTsKICAgICAgICAgICAgICBvcCA9IF9vdXQgLSBiZWc7ICAgICAgICAgICAgICAgIC8qIG1heCBkaXN0YW5jZSBpbiBvdXRwdXQgKi8KICAgICAgICAgICAgICBpZiAoZGlzdCA+IG9wKSB7ICAgICAgICAgICAgICAgIC8qIHNlZSBpZiBjb3B5IGZyb20gd2luZG93ICovCiAgICAgICAgICAgICAgICBvcCA9IGRpc3QgLSBvcDsgICAgICAgICAgICAgICAvKiBkaXN0YW5jZSBiYWNrIGluIHdpbmRvdyAqLwogICAgICAgICAgICAgICAgaWYgKG9wID4gd2hhdmUpIHsKICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLnNhbmUpIHsKICAgICAgICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayc7CiAgICAgICAgICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRCQxOwogICAgICAgICAgICAgICAgICAgIGJyZWFrIHRvcDsKICAgICAgICAgICAgICAgICAgfQoKICAvLyAoISkgVGhpcyBibG9jayBpcyBkaXNhYmxlZCBpbiB6bGliIGRlZmF1bHRzLAogIC8vIGRvbid0IGVuYWJsZSBpdCBmb3IgYmluYXJ5IGNvbXBhdGliaWxpdHkKICAvLyNpZmRlZiBJTkZMQVRFX0FMTE9XX0lOVkFMSURfRElTVEFOQ0VfVE9PRkFSX0FSUlIKICAvLyAgICAgICAgICAgICAgICBpZiAobGVuIDw9IG9wIC0gd2hhdmUpIHsKICAvLyAgICAgICAgICAgICAgICAgIGRvIHsKICAvLyAgICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSAwOwogIC8vICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoLS1sZW4pOwogIC8vICAgICAgICAgICAgICAgICAgY29udGludWUgdG9wOwogIC8vICAgICAgICAgICAgICAgIH0KICAvLyAgICAgICAgICAgICAgICBsZW4gLT0gb3AgLSB3aGF2ZTsKICAvLyAgICAgICAgICAgICAgICBkbyB7CiAgLy8gICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IDA7CiAgLy8gICAgICAgICAgICAgICAgfSB3aGlsZSAoLS1vcCA+IHdoYXZlKTsKICAvLyAgICAgICAgICAgICAgICBpZiAob3AgPT09IDApIHsKICAvLyAgICAgICAgICAgICAgICAgIGZyb20gPSBfb3V0IC0gZGlzdDsKICAvLyAgICAgICAgICAgICAgICAgIGRvIHsKICAvLyAgICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAvLyAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKC0tbGVuKTsKICAvLyAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIHRvcDsKICAvLyAgICAgICAgICAgICAgICB9CiAgLy8jZW5kaWYKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZyb20gPSAwOyAvLyB3aW5kb3cgaW5kZXgKICAgICAgICAgICAgICAgIGZyb21fc291cmNlID0gc193aW5kb3c7CiAgICAgICAgICAgICAgICBpZiAod25leHQgPT09IDApIHsgICAgICAgICAgIC8qIHZlcnkgY29tbW9uIGNhc2UgKi8KICAgICAgICAgICAgICAgICAgZnJvbSArPSB3c2l6ZSAtIG9wOwogICAgICAgICAgICAgICAgICBpZiAob3AgPCBsZW4pIHsgICAgICAgICAvKiBzb21lIGZyb20gd2luZG93ICovCiAgICAgICAgICAgICAgICAgICAgbGVuIC09IG9wOwogICAgICAgICAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICAgICAgIG91dHB1dFtfb3V0KytdID0gc193aW5kb3dbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgICB9IHdoaWxlICgtLW9wKTsKICAgICAgICAgICAgICAgICAgICBmcm9tID0gX291dCAtIGRpc3Q7ICAvKiByZXN0IGZyb20gb3V0cHV0ICovCiAgICAgICAgICAgICAgICAgICAgZnJvbV9zb3VyY2UgPSBvdXRwdXQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHduZXh0IDwgb3ApIHsgICAgICAvKiB3cmFwIGFyb3VuZCB3aW5kb3cgKi8KICAgICAgICAgICAgICAgICAgZnJvbSArPSB3c2l6ZSArIHduZXh0IC0gb3A7CiAgICAgICAgICAgICAgICAgIG9wIC09IHduZXh0OwogICAgICAgICAgICAgICAgICBpZiAob3AgPCBsZW4pIHsgICAgICAgICAvKiBzb21lIGZyb20gZW5kIG9mIHdpbmRvdyAqLwogICAgICAgICAgICAgICAgICAgIGxlbiAtPSBvcDsKICAgICAgICAgICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IHNfd2luZG93W2Zyb20rK107CiAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoLS1vcCk7CiAgICAgICAgICAgICAgICAgICAgZnJvbSA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYgKHduZXh0IDwgbGVuKSB7ICAvKiBzb21lIGZyb20gc3RhcnQgb2Ygd2luZG93ICovCiAgICAgICAgICAgICAgICAgICAgICBvcCA9IHduZXh0OwogICAgICAgICAgICAgICAgICAgICAgbGVuIC09IG9wOwogICAgICAgICAgICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IHNfd2luZG93W2Zyb20rK107CiAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlICgtLW9wKTsKICAgICAgICAgICAgICAgICAgICAgIGZyb20gPSBfb3V0IC0gZGlzdDsgICAgICAvKiByZXN0IGZyb20gb3V0cHV0ICovCiAgICAgICAgICAgICAgICAgICAgICBmcm9tX3NvdXJjZSA9IG91dHB1dDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAvKiBjb250aWd1b3VzIGluIHdpbmRvdyAqLwogICAgICAgICAgICAgICAgICBmcm9tICs9IHduZXh0IC0gb3A7CiAgICAgICAgICAgICAgICAgIGlmIChvcCA8IGxlbikgeyAgICAgICAgIC8qIHNvbWUgZnJvbSB3aW5kb3cgKi8KICAgICAgICAgICAgICAgICAgICBsZW4gLT0gb3A7CiAgICAgICAgICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBzX3dpbmRvd1tmcm9tKytdOwogICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKC0tb3ApOwogICAgICAgICAgICAgICAgICAgIGZyb20gPSBfb3V0IC0gZGlzdDsgIC8qIHJlc3QgZnJvbSBvdXRwdXQgKi8KICAgICAgICAgICAgICAgICAgICBmcm9tX3NvdXJjZSA9IG91dHB1dDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgd2hpbGUgKGxlbiA+IDIpIHsKICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBmcm9tX3NvdXJjZVtmcm9tKytdOwogICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IGZyb21fc291cmNlW2Zyb20rK107CiAgICAgICAgICAgICAgICAgIG91dHB1dFtfb3V0KytdID0gZnJvbV9zb3VyY2VbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgbGVuIC09IDM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAobGVuKSB7CiAgICAgICAgICAgICAgICAgIG91dHB1dFtfb3V0KytdID0gZnJvbV9zb3VyY2VbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgaWYgKGxlbiA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IGZyb21fc291cmNlW2Zyb20rK107CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBmcm9tID0gX291dCAtIGRpc3Q7ICAgICAgICAgIC8qIGNvcHkgZGlyZWN0IGZyb20gb3V0cHV0ICovCiAgICAgICAgICAgICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgLyogbWluaW11bSBsZW5ndGggaXMgdGhyZWUgKi8KICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgbGVuIC09IDM7CiAgICAgICAgICAgICAgICB9IHdoaWxlIChsZW4gPiAyKTsKICAgICAgICAgICAgICAgIGlmIChsZW4pIHsKICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgaWYgKGxlbiA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IG91dHB1dFtmcm9tKytdOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKChvcCAmIDY0KSA9PT0gMCkgeyAgICAgICAgICAvKiAybmQgbGV2ZWwgZGlzdGFuY2UgY29kZSAqLwogICAgICAgICAgICAgIGhlcmUgPSBkY29kZVsoaGVyZSAmIDB4ZmZmZikvKmhlcmUudmFsKi8gKyAoaG9sZCAmICgoMSA8PCBvcCkgLSAxKSldOwogICAgICAgICAgICAgIGNvbnRpbnVlIGRvZGlzdDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGRpc3RhbmNlIGNvZGUnOwogICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQkMTsKICAgICAgICAgICAgICBicmVhayB0b3A7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGJyZWFrOyAvLyBuZWVkIHRvIGVtdWxhdGUgZ290byB2aWEgImNvbnRpbnVlIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmICgob3AgJiA2NCkgPT09IDApIHsgICAgICAgICAgICAgIC8qIDJuZCBsZXZlbCBsZW5ndGggY29kZSAqLwogICAgICAgICAgaGVyZSA9IGxjb2RlWyhoZXJlICYgMHhmZmZmKS8qaGVyZS52YWwqLyArIChob2xkICYgKCgxIDw8IG9wKSAtIDEpKV07CiAgICAgICAgICBjb250aW51ZSBkb2xlbjsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAob3AgJiAzMikgeyAgICAgICAgICAgICAgICAgICAgIC8qIGVuZC1vZi1ibG9jayAqLwogICAgICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgICAgIGVuZCBvZiBibG9ja1xuIikpOwogICAgICAgICAgc3RhdGUubW9kZSA9IFRZUEUkMTsKICAgICAgICAgIGJyZWFrIHRvcDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUnOwogICAgICAgICAgc3RhdGUubW9kZSA9IEJBRCQxOwogICAgICAgICAgYnJlYWsgdG9wOwogICAgICAgIH0KCiAgICAgICAgYnJlYWs7IC8vIG5lZWQgdG8gZW11bGF0ZSBnb3RvIHZpYSAiY29udGludWUiCiAgICAgIH0KICAgIH0gd2hpbGUgKF9pbiA8IGxhc3QgJiYgX291dCA8IGVuZCk7CgogICAgLyogcmV0dXJuIHVudXNlZCBieXRlcyAob24gZW50cnksIGJpdHMgPCA4LCBzbyBpbiB3b24ndCBnbyB0b28gZmFyIGJhY2spICovCiAgICBsZW4gPSBiaXRzID4+IDM7CiAgICBfaW4gLT0gbGVuOwogICAgYml0cyAtPSBsZW4gPDwgMzsKICAgIGhvbGQgJj0gKDEgPDwgYml0cykgLSAxOwoKICAgIC8qIHVwZGF0ZSBzdGF0ZSBhbmQgcmV0dXJuICovCiAgICBzdHJtLm5leHRfaW4gPSBfaW47CiAgICBzdHJtLm5leHRfb3V0ID0gX291dDsKICAgIHN0cm0uYXZhaWxfaW4gPSAoX2luIDwgbGFzdCA/IDUgKyAobGFzdCAtIF9pbikgOiA1IC0gKF9pbiAtIGxhc3QpKTsKICAgIHN0cm0uYXZhaWxfb3V0ID0gKF9vdXQgPCBlbmQgPyAyNTcgKyAoZW5kIC0gX291dCkgOiAyNTcgLSAoX291dCAtIGVuZCkpOwogICAgc3RhdGUuaG9sZCA9IGhvbGQ7CiAgICBzdGF0ZS5iaXRzID0gYml0czsKICAgIHJldHVybjsKICB9OwoKICAvLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAvLyAoQykgMjAxNC0yMDE3IFZpdGFseSBQdXpyaW4gYW5kIEFuZHJleSBUdXBpdHNpbgogIC8vCiAgLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAvLyB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKICAvLyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogIC8vCiAgLy8gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCiAgLy8gaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogIC8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKICAvLwogIC8vIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQogIC8vICAgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpbiB0aGUgcHJvZHVjdCBkb2N1bWVudGF0aW9uIHdvdWxkIGJlCiAgLy8gICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogIC8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCiAgLy8gICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgLy8gMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KCiAgY29uc3QgTUFYQklUUyA9IDE1OwogIGNvbnN0IEVOT1VHSF9MRU5TJDEgPSA4NTI7CiAgY29uc3QgRU5PVUdIX0RJU1RTJDEgPSA1OTI7CiAgLy9jb25zdCBFTk9VR0ggPSAoRU5PVUdIX0xFTlMrRU5PVUdIX0RJU1RTKTsKCiAgY29uc3QgQ09ERVMkMSA9IDA7CiAgY29uc3QgTEVOUyQxID0gMTsKICBjb25zdCBESVNUUyQxID0gMjsKCiAgY29uc3QgbGJhc2UgPSBuZXcgVWludDE2QXJyYXkoWyAvKiBMZW5ndGggY29kZXMgMjU3Li4yODUgYmFzZSAqLwogICAgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMywgMTUsIDE3LCAxOSwgMjMsIDI3LCAzMSwKICAgIDM1LCA0MywgNTEsIDU5LCA2NywgODMsIDk5LCAxMTUsIDEzMSwgMTYzLCAxOTUsIDIyNywgMjU4LCAwLCAwCiAgXSk7CgogIGNvbnN0IGxleHQgPSBuZXcgVWludDhBcnJheShbIC8qIExlbmd0aCBjb2RlcyAyNTcuLjI4NSBleHRyYSAqLwogICAgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNywgMTcsIDE3LCAxNywgMTgsIDE4LCAxOCwgMTgsCiAgICAxOSwgMTksIDE5LCAxOSwgMjAsIDIwLCAyMCwgMjAsIDIxLCAyMSwgMjEsIDIxLCAxNiwgNzIsIDc4CiAgXSk7CgogIGNvbnN0IGRiYXNlID0gbmV3IFVpbnQxNkFycmF5KFsgLyogRGlzdGFuY2UgY29kZXMgMC4uMjkgYmFzZSAqLwogICAgMSwgMiwgMywgNCwgNSwgNywgOSwgMTMsIDE3LCAyNSwgMzMsIDQ5LCA2NSwgOTcsIDEyOSwgMTkzLAogICAgMjU3LCAzODUsIDUxMywgNzY5LCAxMDI1LCAxNTM3LCAyMDQ5LCAzMDczLCA0MDk3LCA2MTQ1LAogICAgODE5MywgMTIyODksIDE2Mzg1LCAyNDU3NywgMCwgMAogIF0pOwoKICBjb25zdCBkZXh0ID0gbmV3IFVpbnQ4QXJyYXkoWyAvKiBEaXN0YW5jZSBjb2RlcyAwLi4yOSBleHRyYSAqLwogICAgMTYsIDE2LCAxNiwgMTYsIDE3LCAxNywgMTgsIDE4LCAxOSwgMTksIDIwLCAyMCwgMjEsIDIxLCAyMiwgMjIsCiAgICAyMywgMjMsIDI0LCAyNCwgMjUsIDI1LCAyNiwgMjYsIDI3LCAyNywKICAgIDI4LCAyOCwgMjksIDI5LCA2NCwgNjQKICBdKTsKCiAgY29uc3QgaW5mbGF0ZV90YWJsZSA9ICh0eXBlLCBsZW5zLCBsZW5zX2luZGV4LCBjb2RlcywgdGFibGUsIHRhYmxlX2luZGV4LCB3b3JrLCBvcHRzKSA9PgogIHsKICAgIGNvbnN0IGJpdHMgPSBvcHRzLmJpdHM7CiAgICAgICAgLy9oZXJlID0gb3B0cy5oZXJlOyAvKiB0YWJsZSBlbnRyeSBmb3IgZHVwbGljYXRpb24gKi8KCiAgICBsZXQgbGVuID0gMDsgICAgICAgICAgICAgICAvKiBhIGNvZGUncyBsZW5ndGggaW4gYml0cyAqLwogICAgbGV0IHN5bSA9IDA7ICAgICAgICAgICAgICAgLyogaW5kZXggb2YgY29kZSBzeW1ib2xzICovCiAgICBsZXQgbWluID0gMCwgbWF4ID0gMDsgICAgICAgICAgLyogbWluaW11bSBhbmQgbWF4aW11bSBjb2RlIGxlbmd0aHMgKi8KICAgIGxldCByb290ID0gMDsgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBpbmRleCBiaXRzIGZvciByb290IHRhYmxlICovCiAgICBsZXQgY3VyciA9IDA7ICAgICAgICAgICAgICAvKiBudW1iZXIgb2YgaW5kZXggYml0cyBmb3IgY3VycmVudCB0YWJsZSAqLwogICAgbGV0IGRyb3AgPSAwOyAgICAgICAgICAgICAgLyogY29kZSBiaXRzIHRvIGRyb3AgZm9yIHN1Yi10YWJsZSAqLwogICAgbGV0IGxlZnQgPSAwOyAgICAgICAgICAgICAgICAgICAvKiBudW1iZXIgb2YgcHJlZml4IGNvZGVzIGF2YWlsYWJsZSAqLwogICAgbGV0IHVzZWQgPSAwOyAgICAgICAgICAgICAgLyogY29kZSBlbnRyaWVzIGluIHRhYmxlIHVzZWQgKi8KICAgIGxldCBodWZmID0gMDsgICAgICAgICAgICAgIC8qIEh1ZmZtYW4gY29kZSAqLwogICAgbGV0IGluY3I7ICAgICAgICAgICAgICAvKiBmb3IgaW5jcmVtZW50aW5nIGNvZGUsIGluZGV4ICovCiAgICBsZXQgZmlsbDsgICAgICAgICAgICAgIC8qIGluZGV4IGZvciByZXBsaWNhdGluZyBlbnRyaWVzICovCiAgICBsZXQgbG93OyAgICAgICAgICAgICAgIC8qIGxvdyBiaXRzIGZvciBjdXJyZW50IHJvb3QgZW50cnkgKi8KICAgIGxldCBtYXNrOyAgICAgICAgICAgICAgLyogbWFzayBmb3IgbG93IHJvb3QgYml0cyAqLwogICAgbGV0IG5leHQ7ICAgICAgICAgICAgIC8qIG5leHQgYXZhaWxhYmxlIHNwYWNlIGluIHRhYmxlICovCiAgICBsZXQgYmFzZSA9IG51bGw7ICAgICAvKiBiYXNlIHZhbHVlIHRhYmxlIHRvIHVzZSAqLwogICAgbGV0IGJhc2VfaW5kZXggPSAwOwogIC8vICBsZXQgc2hvZXh0cmE7ICAgIC8qIGV4dHJhIGJpdHMgdGFibGUgdG8gdXNlICovCiAgICBsZXQgZW5kOyAgICAgICAgICAgICAgICAgICAgLyogdXNlIGJhc2UgYW5kIGV4dHJhIGZvciBzeW1ib2wgPiBlbmQgKi8KICAgIGNvbnN0IGNvdW50ID0gbmV3IFVpbnQxNkFycmF5KE1BWEJJVFMgKyAxKTsgLy9bTUFYQklUUysxXTsgICAgLyogbnVtYmVyIG9mIGNvZGVzIG9mIGVhY2ggbGVuZ3RoICovCiAgICBjb25zdCBvZmZzID0gbmV3IFVpbnQxNkFycmF5KE1BWEJJVFMgKyAxKTsgLy9bTUFYQklUUysxXTsgICAgIC8qIG9mZnNldHMgaW4gdGFibGUgZm9yIGVhY2ggbGVuZ3RoICovCiAgICBsZXQgZXh0cmEgPSBudWxsOwogICAgbGV0IGV4dHJhX2luZGV4ID0gMDsKCiAgICBsZXQgaGVyZV9iaXRzLCBoZXJlX29wLCBoZXJlX3ZhbDsKCiAgICAvKgogICAgIFByb2Nlc3MgYSBzZXQgb2YgY29kZSBsZW5ndGhzIHRvIGNyZWF0ZSBhIGNhbm9uaWNhbCBIdWZmbWFuIGNvZGUuICBUaGUKICAgICBjb2RlIGxlbmd0aHMgYXJlIGxlbnNbMC4uY29kZXMtMV0uICBFYWNoIGxlbmd0aCBjb3JyZXNwb25kcyB0byB0aGUKICAgICBzeW1ib2xzIDAuLmNvZGVzLTEuICBUaGUgSHVmZm1hbiBjb2RlIGlzIGdlbmVyYXRlZCBieSBmaXJzdCBzb3J0aW5nIHRoZQogICAgIHN5bWJvbHMgYnkgbGVuZ3RoIGZyb20gc2hvcnQgdG8gbG9uZywgYW5kIHJldGFpbmluZyB0aGUgc3ltYm9sIG9yZGVyCiAgICAgZm9yIGNvZGVzIHdpdGggZXF1YWwgbGVuZ3Rocy4gIFRoZW4gdGhlIGNvZGUgc3RhcnRzIHdpdGggYWxsIHplcm8gYml0cwogICAgIGZvciB0aGUgZmlyc3QgY29kZSBvZiB0aGUgc2hvcnRlc3QgbGVuZ3RoLCBhbmQgdGhlIGNvZGVzIGFyZSBpbnRlZ2VyCiAgICAgaW5jcmVtZW50cyBmb3IgdGhlIHNhbWUgbGVuZ3RoLCBhbmQgemVyb3MgYXJlIGFwcGVuZGVkIGFzIHRoZSBsZW5ndGgKICAgICBpbmNyZWFzZXMuICBGb3IgdGhlIGRlZmxhdGUgZm9ybWF0LCB0aGVzZSBiaXRzIGFyZSBzdG9yZWQgYmFja3dhcmRzCiAgICAgZnJvbSB0aGVpciBtb3JlIG5hdHVyYWwgaW50ZWdlciBpbmNyZW1lbnQgb3JkZXJpbmcsIGFuZCBzbyB3aGVuIHRoZQogICAgIGRlY29kaW5nIHRhYmxlcyBhcmUgYnVpbHQgaW4gdGhlIGxhcmdlIGxvb3AgYmVsb3csIHRoZSBpbnRlZ2VyIGNvZGVzCiAgICAgYXJlIGluY3JlbWVudGVkIGJhY2t3YXJkcy4KCiAgICAgVGhpcyByb3V0aW5lIGFzc3VtZXMsIGJ1dCBkb2VzIG5vdCBjaGVjaywgdGhhdCBhbGwgb2YgdGhlIGVudHJpZXMgaW4KICAgICBsZW5zW10gYXJlIGluIHRoZSByYW5nZSAwLi5NQVhCSVRTLiAgVGhlIGNhbGxlciBtdXN0IGFzc3VyZSB0aGlzLgogICAgIDEuLk1BWEJJVFMgaXMgaW50ZXJwcmV0ZWQgYXMgdGhhdCBjb2RlIGxlbmd0aC4gIHplcm8gbWVhbnMgdGhhdCB0aGF0CiAgICAgc3ltYm9sIGRvZXMgbm90IG9jY3VyIGluIHRoaXMgY29kZS4KCiAgICAgVGhlIGNvZGVzIGFyZSBzb3J0ZWQgYnkgY29tcHV0aW5nIGEgY291bnQgb2YgY29kZXMgZm9yIGVhY2ggbGVuZ3RoLAogICAgIGNyZWF0aW5nIGZyb20gdGhhdCBhIHRhYmxlIG9mIHN0YXJ0aW5nIGluZGljZXMgZm9yIGVhY2ggbGVuZ3RoIGluIHRoZQogICAgIHNvcnRlZCB0YWJsZSwgYW5kIHRoZW4gZW50ZXJpbmcgdGhlIHN5bWJvbHMgaW4gb3JkZXIgaW4gdGhlIHNvcnRlZAogICAgIHRhYmxlLiAgVGhlIHNvcnRlZCB0YWJsZSBpcyB3b3JrW10sIHdpdGggdGhhdCBzcGFjZSBiZWluZyBwcm92aWRlZCBieQogICAgIHRoZSBjYWxsZXIuCgogICAgIFRoZSBsZW5ndGggY291bnRzIGFyZSB1c2VkIGZvciBvdGhlciBwdXJwb3NlcyBhcyB3ZWxsLCBpLmUuIGZpbmRpbmcKICAgICB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBsZW5ndGggY29kZXMsIGRldGVybWluaW5nIGlmIHRoZXJlIGFyZSBhbnkKICAgICBjb2RlcyBhdCBhbGwsIGNoZWNraW5nIGZvciBhIHZhbGlkIHNldCBvZiBsZW5ndGhzLCBhbmQgbG9va2luZyBhaGVhZAogICAgIGF0IGxlbmd0aCBjb3VudHMgdG8gZGV0ZXJtaW5lIHN1Yi10YWJsZSBzaXplcyB3aGVuIGJ1aWxkaW5nIHRoZQogICAgIGRlY29kaW5nIHRhYmxlcy4KICAgICAqLwoKICAgIC8qIGFjY3VtdWxhdGUgbGVuZ3RocyBmb3IgY29kZXMgKGFzc3VtZXMgbGVuc1tdIGFsbCBpbiAwLi5NQVhCSVRTKSAqLwogICAgZm9yIChsZW4gPSAwOyBsZW4gPD0gTUFYQklUUzsgbGVuKyspIHsKICAgICAgY291bnRbbGVuXSA9IDA7CiAgICB9CiAgICBmb3IgKHN5bSA9IDA7IHN5bSA8IGNvZGVzOyBzeW0rKykgewogICAgICBjb3VudFtsZW5zW2xlbnNfaW5kZXggKyBzeW1dXSsrOwogICAgfQoKICAgIC8qIGJvdW5kIGNvZGUgbGVuZ3RocywgZm9yY2Ugcm9vdCB0byBiZSB3aXRoaW4gY29kZSBsZW5ndGhzICovCiAgICByb290ID0gYml0czsKICAgIGZvciAobWF4ID0gTUFYQklUUzsgbWF4ID49IDE7IG1heC0tKSB7CiAgICAgIGlmIChjb3VudFttYXhdICE9PSAwKSB7IGJyZWFrOyB9CiAgICB9CiAgICBpZiAocm9vdCA+IG1heCkgewogICAgICByb290ID0gbWF4OwogICAgfQogICAgaWYgKG1heCA9PT0gMCkgeyAgICAgICAgICAgICAgICAgICAgIC8qIG5vIHN5bWJvbHMgdG8gY29kZSBhdCBhbGwgKi8KICAgICAgLy90YWJsZS5vcFtvcHRzLnRhYmxlX2luZGV4XSA9IDY0OyAgLy9oZXJlLm9wID0gKHZhciBjaGFyKTY0OyAgICAvKiBpbnZhbGlkIGNvZGUgbWFya2VyICovCiAgICAgIC8vdGFibGUuYml0c1tvcHRzLnRhYmxlX2luZGV4XSA9IDE7ICAgLy9oZXJlLmJpdHMgPSAodmFyIGNoYXIpMTsKICAgICAgLy90YWJsZS52YWxbb3B0cy50YWJsZV9pbmRleCsrXSA9IDA7ICAgLy9oZXJlLnZhbCA9ICh2YXIgc2hvcnQpMDsKICAgICAgdGFibGVbdGFibGVfaW5kZXgrK10gPSAoMSA8PCAyNCkgfCAoNjQgPDwgMTYpIHwgMDsKCgogICAgICAvL3RhYmxlLm9wW29wdHMudGFibGVfaW5kZXhdID0gNjQ7CiAgICAgIC8vdGFibGUuYml0c1tvcHRzLnRhYmxlX2luZGV4XSA9IDE7CiAgICAgIC8vdGFibGUudmFsW29wdHMudGFibGVfaW5kZXgrK10gPSAwOwogICAgICB0YWJsZVt0YWJsZV9pbmRleCsrXSA9ICgxIDw8IDI0KSB8ICg2NCA8PCAxNikgfCAwOwoKICAgICAgb3B0cy5iaXRzID0gMTsKICAgICAgcmV0dXJuIDA7ICAgICAvKiBubyBzeW1ib2xzLCBidXQgd2FpdCBmb3IgZGVjb2RpbmcgdG8gcmVwb3J0IGVycm9yICovCiAgICB9CiAgICBmb3IgKG1pbiA9IDE7IG1pbiA8IG1heDsgbWluKyspIHsKICAgICAgaWYgKGNvdW50W21pbl0gIT09IDApIHsgYnJlYWs7IH0KICAgIH0KICAgIGlmIChyb290IDwgbWluKSB7CiAgICAgIHJvb3QgPSBtaW47CiAgICB9CgogICAgLyogY2hlY2sgZm9yIGFuIG92ZXItc3Vic2NyaWJlZCBvciBpbmNvbXBsZXRlIHNldCBvZiBsZW5ndGhzICovCiAgICBsZWZ0ID0gMTsKICAgIGZvciAobGVuID0gMTsgbGVuIDw9IE1BWEJJVFM7IGxlbisrKSB7CiAgICAgIGxlZnQgPDw9IDE7CiAgICAgIGxlZnQgLT0gY291bnRbbGVuXTsKICAgICAgaWYgKGxlZnQgPCAwKSB7CiAgICAgICAgcmV0dXJuIC0xOwogICAgICB9ICAgICAgICAvKiBvdmVyLXN1YnNjcmliZWQgKi8KICAgIH0KICAgIGlmIChsZWZ0ID4gMCAmJiAodHlwZSA9PT0gQ09ERVMkMSB8fCBtYXggIT09IDEpKSB7CiAgICAgIHJldHVybiAtMTsgICAgICAgICAgICAgICAgICAgICAgLyogaW5jb21wbGV0ZSBzZXQgKi8KICAgIH0KCiAgICAvKiBnZW5lcmF0ZSBvZmZzZXRzIGludG8gc3ltYm9sIHRhYmxlIGZvciBlYWNoIGxlbmd0aCBmb3Igc29ydGluZyAqLwogICAgb2Zmc1sxXSA9IDA7CiAgICBmb3IgKGxlbiA9IDE7IGxlbiA8IE1BWEJJVFM7IGxlbisrKSB7CiAgICAgIG9mZnNbbGVuICsgMV0gPSBvZmZzW2xlbl0gKyBjb3VudFtsZW5dOwogICAgfQoKICAgIC8qIHNvcnQgc3ltYm9scyBieSBsZW5ndGgsIGJ5IHN5bWJvbCBvcmRlciB3aXRoaW4gZWFjaCBsZW5ndGggKi8KICAgIGZvciAoc3ltID0gMDsgc3ltIDwgY29kZXM7IHN5bSsrKSB7CiAgICAgIGlmIChsZW5zW2xlbnNfaW5kZXggKyBzeW1dICE9PSAwKSB7CiAgICAgICAgd29ya1tvZmZzW2xlbnNbbGVuc19pbmRleCArIHN5bV1dKytdID0gc3ltOwogICAgICB9CiAgICB9CgogICAgLyoKICAgICBDcmVhdGUgYW5kIGZpbGwgaW4gZGVjb2RpbmcgdGFibGVzLiAgSW4gdGhpcyBsb29wLCB0aGUgdGFibGUgYmVpbmcKICAgICBmaWxsZWQgaXMgYXQgbmV4dCBhbmQgaGFzIGN1cnIgaW5kZXggYml0cy4gIFRoZSBjb2RlIGJlaW5nIHVzZWQgaXMgaHVmZgogICAgIHdpdGggbGVuZ3RoIGxlbi4gIFRoYXQgY29kZSBpcyBjb252ZXJ0ZWQgdG8gYW4gaW5kZXggYnkgZHJvcHBpbmcgZHJvcAogICAgIGJpdHMgb2ZmIG9mIHRoZSBib3R0b20uICBGb3IgY29kZXMgd2hlcmUgbGVuIGlzIGxlc3MgdGhhbiBkcm9wICsgY3VyciwKICAgICB0aG9zZSB0b3AgZHJvcCArIGN1cnIgLSBsZW4gYml0cyBhcmUgaW5jcmVtZW50ZWQgdGhyb3VnaCBhbGwgdmFsdWVzIHRvCiAgICAgZmlsbCB0aGUgdGFibGUgd2l0aCByZXBsaWNhdGVkIGVudHJpZXMuCgogICAgIHJvb3QgaXMgdGhlIG51bWJlciBvZiBpbmRleCBiaXRzIGZvciB0aGUgcm9vdCB0YWJsZS4gIFdoZW4gbGVuIGV4Y2VlZHMKICAgICByb290LCBzdWItdGFibGVzIGFyZSBjcmVhdGVkIHBvaW50ZWQgdG8gYnkgdGhlIHJvb3QgZW50cnkgd2l0aCBhbiBpbmRleAogICAgIG9mIHRoZSBsb3cgcm9vdCBiaXRzIG9mIGh1ZmYuICBUaGlzIGlzIHNhdmVkIGluIGxvdyB0byBjaGVjayBmb3Igd2hlbiBhCiAgICAgbmV3IHN1Yi10YWJsZSBzaG91bGQgYmUgc3RhcnRlZC4gIGRyb3AgaXMgemVybyB3aGVuIHRoZSByb290IHRhYmxlIGlzCiAgICAgYmVpbmcgZmlsbGVkLCBhbmQgZHJvcCBpcyByb290IHdoZW4gc3ViLXRhYmxlcyBhcmUgYmVpbmcgZmlsbGVkLgoKICAgICBXaGVuIGEgbmV3IHN1Yi10YWJsZSBpcyBuZWVkZWQsIGl0IGlzIG5lY2Vzc2FyeSB0byBsb29rIGFoZWFkIGluIHRoZQogICAgIGNvZGUgbGVuZ3RocyB0byBkZXRlcm1pbmUgd2hhdCBzaXplIHN1Yi10YWJsZSBpcyBuZWVkZWQuICBUaGUgbGVuZ3RoCiAgICAgY291bnRzIGFyZSB1c2VkIGZvciB0aGlzLCBhbmQgc28gY291bnRbXSBpcyBkZWNyZW1lbnRlZCBhcyBjb2RlcyBhcmUKICAgICBlbnRlcmVkIGluIHRoZSB0YWJsZXMuCgogICAgIHVzZWQga2VlcHMgdHJhY2sgb2YgaG93IG1hbnkgdGFibGUgZW50cmllcyBoYXZlIGJlZW4gYWxsb2NhdGVkIGZyb20gdGhlCiAgICAgcHJvdmlkZWQgKnRhYmxlIHNwYWNlLiAgSXQgaXMgY2hlY2tlZCBmb3IgTEVOUyBhbmQgRElTVCB0YWJsZXMgYWdhaW5zdAogICAgIHRoZSBjb25zdGFudHMgRU5PVUdIX0xFTlMgYW5kIEVOT1VHSF9ESVNUUyB0byBndWFyZCBhZ2FpbnN0IGNoYW5nZXMgaW4KICAgICB0aGUgaW5pdGlhbCByb290IHRhYmxlIHNpemUgY29uc3RhbnRzLiAgU2VlIHRoZSBjb21tZW50cyBpbiBpbmZ0cmVlcy5oCiAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogICAgIHN5bSBpbmNyZW1lbnRzIHRocm91Z2ggYWxsIHN5bWJvbHMsIGFuZCB0aGUgbG9vcCB0ZXJtaW5hdGVzIHdoZW4KICAgICBhbGwgY29kZXMgb2YgbGVuZ3RoIG1heCwgaS5lLiBhbGwgY29kZXMsIGhhdmUgYmVlbiBwcm9jZXNzZWQuICBUaGlzCiAgICAgcm91dGluZSBwZXJtaXRzIGluY29tcGxldGUgY29kZXMsIHNvIGFub3RoZXIgbG9vcCBhZnRlciB0aGlzIG9uZSBmaWxscwogICAgIGluIHRoZSByZXN0IG9mIHRoZSBkZWNvZGluZyB0YWJsZXMgd2l0aCBpbnZhbGlkIGNvZGUgbWFya2Vycy4KICAgICAqLwoKICAgIC8qIHNldCB1cCBmb3IgY29kZSB0eXBlICovCiAgICAvLyBwb29yIG1hbiBvcHRpbWl6YXRpb24gLSB1c2UgaWYtZWxzZSBpbnN0ZWFkIG9mIHN3aXRjaCwKICAgIC8vIHRvIGF2b2lkIGRlb3B0cyBpbiBvbGQgdjgKICAgIGlmICh0eXBlID09PSBDT0RFUyQxKSB7CiAgICAgIGJhc2UgPSBleHRyYSA9IHdvcms7ICAgIC8qIGR1bW15IHZhbHVlLS1ub3QgdXNlZCAqLwogICAgICBlbmQgPSAxOTsKCiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IExFTlMkMSkgewogICAgICBiYXNlID0gbGJhc2U7CiAgICAgIGJhc2VfaW5kZXggLT0gMjU3OwogICAgICBleHRyYSA9IGxleHQ7CiAgICAgIGV4dHJhX2luZGV4IC09IDI1NzsKICAgICAgZW5kID0gMjU2OwoKICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAvKiBESVNUUyAqLwogICAgICBiYXNlID0gZGJhc2U7CiAgICAgIGV4dHJhID0gZGV4dDsKICAgICAgZW5kID0gLTE7CiAgICB9CgogICAgLyogaW5pdGlhbGl6ZSBvcHRzIGZvciBsb29wICovCiAgICBodWZmID0gMDsgICAgICAgICAgICAgICAgICAgLyogc3RhcnRpbmcgY29kZSAqLwogICAgc3ltID0gMDsgICAgICAgICAgICAgICAgICAgIC8qIHN0YXJ0aW5nIGNvZGUgc3ltYm9sICovCiAgICBsZW4gPSBtaW47ICAgICAgICAgICAgICAgICAgLyogc3RhcnRpbmcgY29kZSBsZW5ndGggKi8KICAgIG5leHQgPSB0YWJsZV9pbmRleDsgICAgICAgICAgICAgIC8qIGN1cnJlbnQgdGFibGUgdG8gZmlsbCBpbiAqLwogICAgY3VyciA9IHJvb3Q7ICAgICAgICAgICAgICAgIC8qIGN1cnJlbnQgdGFibGUgaW5kZXggYml0cyAqLwogICAgZHJvcCA9IDA7ICAgICAgICAgICAgICAgICAgIC8qIGN1cnJlbnQgYml0cyB0byBkcm9wIGZyb20gY29kZSBmb3IgaW5kZXggKi8KICAgIGxvdyA9IC0xOyAgICAgICAgICAgICAgICAgICAvKiB0cmlnZ2VyIG5ldyBzdWItdGFibGUgd2hlbiBsZW4gPiByb290ICovCiAgICB1c2VkID0gMSA8PCByb290OyAgICAgICAgICAvKiB1c2Ugcm9vdCB0YWJsZSBlbnRyaWVzICovCiAgICBtYXNrID0gdXNlZCAtIDE7ICAgICAgICAgICAgLyogbWFzayBmb3IgY29tcGFyaW5nIGxvdyAqLwoKICAgIC8qIGNoZWNrIGF2YWlsYWJsZSB0YWJsZSBzcGFjZSAqLwogICAgaWYgKCh0eXBlID09PSBMRU5TJDEgJiYgdXNlZCA+IEVOT1VHSF9MRU5TJDEpIHx8CiAgICAgICh0eXBlID09PSBESVNUUyQxICYmIHVzZWQgPiBFTk9VR0hfRElTVFMkMSkpIHsKICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgLyogcHJvY2VzcyBhbGwgY29kZXMgYW5kIG1ha2UgdGFibGUgZW50cmllcyAqLwogICAgZm9yICg7OykgewogICAgICAvKiBjcmVhdGUgdGFibGUgZW50cnkgKi8KICAgICAgaGVyZV9iaXRzID0gbGVuIC0gZHJvcDsKICAgICAgaWYgKHdvcmtbc3ltXSA8IGVuZCkgewogICAgICAgIGhlcmVfb3AgPSAwOwogICAgICAgIGhlcmVfdmFsID0gd29ya1tzeW1dOwogICAgICB9CiAgICAgIGVsc2UgaWYgKHdvcmtbc3ltXSA+IGVuZCkgewogICAgICAgIGhlcmVfb3AgPSBleHRyYVtleHRyYV9pbmRleCArIHdvcmtbc3ltXV07CiAgICAgICAgaGVyZV92YWwgPSBiYXNlW2Jhc2VfaW5kZXggKyB3b3JrW3N5bV1dOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIGhlcmVfb3AgPSAzMiArIDY0OyAgICAgICAgIC8qIGVuZCBvZiBibG9jayAqLwogICAgICAgIGhlcmVfdmFsID0gMDsKICAgICAgfQoKICAgICAgLyogcmVwbGljYXRlIGZvciB0aG9zZSBpbmRpY2VzIHdpdGggbG93IGxlbiBiaXRzIGVxdWFsIHRvIGh1ZmYgKi8KICAgICAgaW5jciA9IDEgPDwgKGxlbiAtIGRyb3ApOwogICAgICBmaWxsID0gMSA8PCBjdXJyOwogICAgICBtaW4gPSBmaWxsOyAgICAgICAgICAgICAgICAgLyogc2F2ZSBvZmZzZXQgdG8gbmV4dCB0YWJsZSAqLwogICAgICBkbyB7CiAgICAgICAgZmlsbCAtPSBpbmNyOwogICAgICAgIHRhYmxlW25leHQgKyAoaHVmZiA+PiBkcm9wKSArIGZpbGxdID0gKGhlcmVfYml0cyA8PCAyNCkgfCAoaGVyZV9vcCA8PCAxNikgfCBoZXJlX3ZhbCB8MDsKICAgICAgfSB3aGlsZSAoZmlsbCAhPT0gMCk7CgogICAgICAvKiBiYWNrd2FyZHMgaW5jcmVtZW50IHRoZSBsZW4tYml0IGNvZGUgaHVmZiAqLwogICAgICBpbmNyID0gMSA8PCAobGVuIC0gMSk7CiAgICAgIHdoaWxlIChodWZmICYgaW5jcikgewogICAgICAgIGluY3IgPj49IDE7CiAgICAgIH0KICAgICAgaWYgKGluY3IgIT09IDApIHsKICAgICAgICBodWZmICY9IGluY3IgLSAxOwogICAgICAgIGh1ZmYgKz0gaW5jcjsKICAgICAgfSBlbHNlIHsKICAgICAgICBodWZmID0gMDsKICAgICAgfQoKICAgICAgLyogZ28gdG8gbmV4dCBzeW1ib2wsIHVwZGF0ZSBjb3VudCwgbGVuICovCiAgICAgIHN5bSsrOwogICAgICBpZiAoLS1jb3VudFtsZW5dID09PSAwKSB7CiAgICAgICAgaWYgKGxlbiA9PT0gbWF4KSB7IGJyZWFrOyB9CiAgICAgICAgbGVuID0gbGVuc1tsZW5zX2luZGV4ICsgd29ya1tzeW1dXTsKICAgICAgfQoKICAgICAgLyogY3JlYXRlIG5ldyBzdWItdGFibGUgaWYgbmVlZGVkICovCiAgICAgIGlmIChsZW4gPiByb290ICYmIChodWZmICYgbWFzaykgIT09IGxvdykgewogICAgICAgIC8qIGlmIGZpcnN0IHRpbWUsIHRyYW5zaXRpb24gdG8gc3ViLXRhYmxlcyAqLwogICAgICAgIGlmIChkcm9wID09PSAwKSB7CiAgICAgICAgICBkcm9wID0gcm9vdDsKICAgICAgICB9CgogICAgICAgIC8qIGluY3JlbWVudCBwYXN0IGxhc3QgdGFibGUgKi8KICAgICAgICBuZXh0ICs9IG1pbjsgICAgICAgICAgICAvKiBoZXJlIG1pbiBpcyAxIDw8IGN1cnIgKi8KCiAgICAgICAgLyogZGV0ZXJtaW5lIGxlbmd0aCBvZiBuZXh0IHRhYmxlICovCiAgICAgICAgY3VyciA9IGxlbiAtIGRyb3A7CiAgICAgICAgbGVmdCA9IDEgPDwgY3VycjsKICAgICAgICB3aGlsZSAoY3VyciArIGRyb3AgPCBtYXgpIHsKICAgICAgICAgIGxlZnQgLT0gY291bnRbY3VyciArIGRyb3BdOwogICAgICAgICAgaWYgKGxlZnQgPD0gMCkgeyBicmVhazsgfQogICAgICAgICAgY3VycisrOwogICAgICAgICAgbGVmdCA8PD0gMTsKICAgICAgICB9CgogICAgICAgIC8qIGNoZWNrIGZvciBlbm91Z2ggc3BhY2UgKi8KICAgICAgICB1c2VkICs9IDEgPDwgY3VycjsKICAgICAgICBpZiAoKHR5cGUgPT09IExFTlMkMSAmJiB1c2VkID4gRU5PVUdIX0xFTlMkMSkgfHwKICAgICAgICAgICh0eXBlID09PSBESVNUUyQxICYmIHVzZWQgPiBFTk9VR0hfRElTVFMkMSkpIHsKICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KCiAgICAgICAgLyogcG9pbnQgZW50cnkgaW4gcm9vdCB0YWJsZSB0byBzdWItdGFibGUgKi8KICAgICAgICBsb3cgPSBodWZmICYgbWFzazsKICAgICAgICAvKnRhYmxlLm9wW2xvd10gPSBjdXJyOwogICAgICAgIHRhYmxlLmJpdHNbbG93XSA9IHJvb3Q7CiAgICAgICAgdGFibGUudmFsW2xvd10gPSBuZXh0IC0gb3B0cy50YWJsZV9pbmRleDsqLwogICAgICAgIHRhYmxlW2xvd10gPSAocm9vdCA8PCAyNCkgfCAoY3VyciA8PCAxNikgfCAobmV4dCAtIHRhYmxlX2luZGV4KSB8MDsKICAgICAgfQogICAgfQoKICAgIC8qIGZpbGwgaW4gcmVtYWluaW5nIHRhYmxlIGVudHJ5IGlmIGNvZGUgaXMgaW5jb21wbGV0ZSAoZ3VhcmFudGVlZCB0byBoYXZlCiAgICAgYXQgbW9zdCBvbmUgcmVtYWluaW5nIGVudHJ5LCBzaW5jZSBpZiB0aGUgY29kZSBpcyBpbmNvbXBsZXRlLCB0aGUKICAgICBtYXhpbXVtIGNvZGUgbGVuZ3RoIHRoYXQgd2FzIGFsbG93ZWQgdG8gZ2V0IHRoaXMgZmFyIGlzIG9uZSBiaXQpICovCiAgICBpZiAoaHVmZiAhPT0gMCkgewogICAgICAvL3RhYmxlLm9wW25leHQgKyBodWZmXSA9IDY0OyAgICAgICAgICAgIC8qIGludmFsaWQgY29kZSBtYXJrZXIgKi8KICAgICAgLy90YWJsZS5iaXRzW25leHQgKyBodWZmXSA9IGxlbiAtIGRyb3A7CiAgICAgIC8vdGFibGUudmFsW25leHQgKyBodWZmXSA9IDA7CiAgICAgIHRhYmxlW25leHQgKyBodWZmXSA9ICgobGVuIC0gZHJvcCkgPDwgMjQpIHwgKDY0IDw8IDE2KSB8MDsKICAgIH0KCiAgICAvKiBzZXQgcmV0dXJuIHBhcmFtZXRlcnMgKi8KICAgIC8vb3B0cy50YWJsZV9pbmRleCArPSB1c2VkOwogICAgb3B0cy5iaXRzID0gcm9vdDsKICAgIHJldHVybiAwOwogIH07CgoKICB2YXIgaW5mdHJlZXMgPSBpbmZsYXRlX3RhYmxlOwoKICAvLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAvLyAoQykgMjAxNC0yMDE3IFZpdGFseSBQdXpyaW4gYW5kIEFuZHJleSBUdXBpdHNpbgogIC8vCiAgLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAvLyB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKICAvLyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogIC8vCiAgLy8gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCiAgLy8gaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogIC8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKICAvLwogIC8vIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQogIC8vICAgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpbiB0aGUgcHJvZHVjdCBkb2N1bWVudGF0aW9uIHdvdWxkIGJlCiAgLy8gICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogIC8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCiAgLy8gICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgLy8gMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KCgoKCgoKICBjb25zdCBDT0RFUyA9IDA7CiAgY29uc3QgTEVOUyA9IDE7CiAgY29uc3QgRElTVFMgPSAyOwoKICAvKiBQdWJsaWMgY29uc3RhbnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgogIGNvbnN0IHsKICAgIFpfRklOSVNIOiBaX0ZJTklTSCQxLCBaX0JMT0NLLCBaX1RSRUVTLAogICAgWl9PSzogWl9PSyQxLCBaX1NUUkVBTV9FTkQ6IFpfU1RSRUFNX0VORCQxLCBaX05FRURfRElDVDogWl9ORUVEX0RJQ1QkMSwgWl9TVFJFQU1fRVJST1I6IFpfU1RSRUFNX0VSUk9SJDEsIFpfREFUQV9FUlJPUjogWl9EQVRBX0VSUk9SJDEsIFpfTUVNX0VSUk9SOiBaX01FTV9FUlJPUiQxLCBaX0JVRl9FUlJPUiwKICAgIFpfREVGTEFURUQKICB9ID0gY29uc3RhbnRzJDI7CgoKICAvKiBTVEFURVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgoKICBjb25zdCAgICBIRUFEID0gMTsgICAgICAgLyogaTogd2FpdGluZyBmb3IgbWFnaWMgaGVhZGVyICovCiAgY29uc3QgICAgRkxBR1MgPSAyOyAgICAgIC8qIGk6IHdhaXRpbmcgZm9yIG1ldGhvZCBhbmQgZmxhZ3MgKGd6aXApICovCiAgY29uc3QgICAgVElNRSA9IDM7ICAgICAgIC8qIGk6IHdhaXRpbmcgZm9yIG1vZGlmaWNhdGlvbiB0aW1lIChnemlwKSAqLwogIGNvbnN0ICAgIE9TID0gNDsgICAgICAgICAvKiBpOiB3YWl0aW5nIGZvciBleHRyYSBmbGFncyBhbmQgb3BlcmF0aW5nIHN5c3RlbSAoZ3ppcCkgKi8KICBjb25zdCAgICBFWExFTiA9IDU7ICAgICAgLyogaTogd2FpdGluZyBmb3IgZXh0cmEgbGVuZ3RoIChnemlwKSAqLwogIGNvbnN0ICAgIEVYVFJBID0gNjsgICAgICAvKiBpOiB3YWl0aW5nIGZvciBleHRyYSBieXRlcyAoZ3ppcCkgKi8KICBjb25zdCAgICBOQU1FID0gNzsgICAgICAgLyogaTogd2FpdGluZyBmb3IgZW5kIG9mIGZpbGUgbmFtZSAoZ3ppcCkgKi8KICBjb25zdCAgICBDT01NRU5UID0gODsgICAgLyogaTogd2FpdGluZyBmb3IgZW5kIG9mIGNvbW1lbnQgKGd6aXApICovCiAgY29uc3QgICAgSENSQyA9IDk7ICAgICAgIC8qIGk6IHdhaXRpbmcgZm9yIGhlYWRlciBjcmMgKGd6aXApICovCiAgY29uc3QgICAgRElDVElEID0gMTA7ICAgIC8qIGk6IHdhaXRpbmcgZm9yIGRpY3Rpb25hcnkgY2hlY2sgdmFsdWUgKi8KICBjb25zdCAgICBESUNUID0gMTE7ICAgICAgLyogd2FpdGluZyBmb3IgaW5mbGF0ZVNldERpY3Rpb25hcnkoKSBjYWxsICovCiAgY29uc3QgICAgICAgIFRZUEUgPSAxMjsgICAgICAvKiBpOiB3YWl0aW5nIGZvciB0eXBlIGJpdHMsIGluY2x1ZGluZyBsYXN0LWZsYWcgYml0ICovCiAgY29uc3QgICAgICAgIFRZUEVETyA9IDEzOyAgICAvKiBpOiBzYW1lLCBidXQgc2tpcCBjaGVjayB0byBleGl0IGluZmxhdGUgb24gbmV3IGJsb2NrICovCiAgY29uc3QgICAgICAgIFNUT1JFRCA9IDE0OyAgICAvKiBpOiB3YWl0aW5nIGZvciBzdG9yZWQgc2l6ZSAobGVuZ3RoIGFuZCBjb21wbGVtZW50KSAqLwogIGNvbnN0ICAgICAgICBDT1BZXyA9IDE1OyAgICAgLyogaS9vOiBzYW1lIGFzIENPUFkgYmVsb3csIGJ1dCBvbmx5IGZpcnN0IHRpbWUgaW4gKi8KICBjb25zdCAgICAgICAgQ09QWSA9IDE2OyAgICAgIC8qIGkvbzogd2FpdGluZyBmb3IgaW5wdXQgb3Igb3V0cHV0IHRvIGNvcHkgc3RvcmVkIGJsb2NrICovCiAgY29uc3QgICAgICAgIFRBQkxFID0gMTc7ICAgICAvKiBpOiB3YWl0aW5nIGZvciBkeW5hbWljIGJsb2NrIHRhYmxlIGxlbmd0aHMgKi8KICBjb25zdCAgICAgICAgTEVOTEVOUyA9IDE4OyAgIC8qIGk6IHdhaXRpbmcgZm9yIGNvZGUgbGVuZ3RoIGNvZGUgbGVuZ3RocyAqLwogIGNvbnN0ICAgICAgICBDT0RFTEVOUyA9IDE5OyAgLyogaTogd2FpdGluZyBmb3IgbGVuZ3RoL2xpdCBhbmQgZGlzdGFuY2UgY29kZSBsZW5ndGhzICovCiAgY29uc3QgICAgICAgICAgICBMRU5fID0gMjA7ICAgICAgLyogaTogc2FtZSBhcyBMRU4gYmVsb3csIGJ1dCBvbmx5IGZpcnN0IHRpbWUgaW4gKi8KICBjb25zdCAgICAgICAgICAgIExFTiA9IDIxOyAgICAgICAvKiBpOiB3YWl0aW5nIGZvciBsZW5ndGgvbGl0L2VvYiBjb2RlICovCiAgY29uc3QgICAgICAgICAgICBMRU5FWFQgPSAyMjsgICAgLyogaTogd2FpdGluZyBmb3IgbGVuZ3RoIGV4dHJhIGJpdHMgKi8KICBjb25zdCAgICAgICAgICAgIERJU1QgPSAyMzsgICAgICAvKiBpOiB3YWl0aW5nIGZvciBkaXN0YW5jZSBjb2RlICovCiAgY29uc3QgICAgICAgICAgICBESVNURVhUID0gMjQ7ICAgLyogaTogd2FpdGluZyBmb3IgZGlzdGFuY2UgZXh0cmEgYml0cyAqLwogIGNvbnN0ICAgICAgICAgICAgTUFUQ0ggPSAyNTsgICAgIC8qIG86IHdhaXRpbmcgZm9yIG91dHB1dCBzcGFjZSB0byBjb3B5IHN0cmluZyAqLwogIGNvbnN0ICAgICAgICAgICAgTElUID0gMjY7ICAgICAgIC8qIG86IHdhaXRpbmcgZm9yIG91dHB1dCBzcGFjZSB0byB3cml0ZSBsaXRlcmFsICovCiAgY29uc3QgICAgQ0hFQ0sgPSAyNzsgICAgIC8qIGk6IHdhaXRpbmcgZm9yIDMyLWJpdCBjaGVjayB2YWx1ZSAqLwogIGNvbnN0ICAgIExFTkdUSCA9IDI4OyAgICAvKiBpOiB3YWl0aW5nIGZvciAzMi1iaXQgbGVuZ3RoIChnemlwKSAqLwogIGNvbnN0ICAgIERPTkUgPSAyOTsgICAgICAvKiBmaW5pc2hlZCBjaGVjaywgZG9uZSAtLSByZW1haW4gaGVyZSB1bnRpbCByZXNldCAqLwogIGNvbnN0ICAgIEJBRCA9IDMwOyAgICAgICAvKiBnb3QgYSBkYXRhIGVycm9yIC0tIHJlbWFpbiBoZXJlIHVudGlsIHJlc2V0ICovCiAgY29uc3QgICAgTUVNID0gMzE7ICAgICAgIC8qIGdvdCBhbiBpbmZsYXRlKCkgbWVtb3J5IGVycm9yIC0tIHJlbWFpbiBoZXJlIHVudGlsIHJlc2V0ICovCiAgY29uc3QgICAgU1lOQyA9IDMyOyAgICAgIC8qIGxvb2tpbmcgZm9yIHN5bmNocm9uaXphdGlvbiBieXRlcyB0byByZXN0YXJ0IGluZmxhdGUoKSAqLwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCgogIGNvbnN0IEVOT1VHSF9MRU5TID0gODUyOwogIGNvbnN0IEVOT1VHSF9ESVNUUyA9IDU5MjsKICAvL2NvbnN0IEVOT1VHSCA9ICAoRU5PVUdIX0xFTlMrRU5PVUdIX0RJU1RTKTsKCiAgY29uc3QgTUFYX1dCSVRTID0gMTU7CiAgLyogMzJLIExaNzcgd2luZG93ICovCiAgY29uc3QgREVGX1dCSVRTID0gTUFYX1dCSVRTOwoKCiAgY29uc3QgenN3YXAzMiA9IChxKSA9PiB7CgogICAgcmV0dXJuICAoKChxID4+PiAyNCkgJiAweGZmKSArCiAgICAgICAgICAgICgocSA+Pj4gOCkgJiAweGZmMDApICsKICAgICAgICAgICAgKChxICYgMHhmZjAwKSA8PCA4KSArCiAgICAgICAgICAgICgocSAmIDB4ZmYpIDw8IDI0KSk7CiAgfTsKCgogIGZ1bmN0aW9uIEluZmxhdGVTdGF0ZSgpIHsKICAgIHRoaXMubW9kZSA9IDA7ICAgICAgICAgICAgIC8qIGN1cnJlbnQgaW5mbGF0ZSBtb2RlICovCiAgICB0aGlzLmxhc3QgPSBmYWxzZTsgICAgICAgICAgLyogdHJ1ZSBpZiBwcm9jZXNzaW5nIGxhc3QgYmxvY2sgKi8KICAgIHRoaXMud3JhcCA9IDA7ICAgICAgICAgICAgICAvKiBiaXQgMCB0cnVlIGZvciB6bGliLCBiaXQgMSB0cnVlIGZvciBnemlwICovCiAgICB0aGlzLmhhdmVkaWN0ID0gZmFsc2U7ICAgICAgLyogdHJ1ZSBpZiBkaWN0aW9uYXJ5IHByb3ZpZGVkICovCiAgICB0aGlzLmZsYWdzID0gMDsgICAgICAgICAgICAgLyogZ3ppcCBoZWFkZXIgbWV0aG9kIGFuZCBmbGFncyAoMCBpZiB6bGliKSAqLwogICAgdGhpcy5kbWF4ID0gMDsgICAgICAgICAgICAgIC8qIHpsaWIgaGVhZGVyIG1heCBkaXN0YW5jZSAoSU5GTEFURV9TVFJJQ1QpICovCiAgICB0aGlzLmNoZWNrID0gMDsgICAgICAgICAgICAgLyogcHJvdGVjdGVkIGNvcHkgb2YgY2hlY2sgdmFsdWUgKi8KICAgIHRoaXMudG90YWwgPSAwOyAgICAgICAgICAgICAvKiBwcm90ZWN0ZWQgY29weSBvZiBvdXRwdXQgY291bnQgKi8KICAgIC8vIFRPRE86IG1heSBiZSB7fQogICAgdGhpcy5oZWFkID0gbnVsbDsgICAgICAgICAgIC8qIHdoZXJlIHRvIHNhdmUgZ3ppcCBoZWFkZXIgaW5mb3JtYXRpb24gKi8KCiAgICAvKiBzbGlkaW5nIHdpbmRvdyAqLwogICAgdGhpcy53Yml0cyA9IDA7ICAgICAgICAgICAgIC8qIGxvZyBiYXNlIDIgb2YgcmVxdWVzdGVkIHdpbmRvdyBzaXplICovCiAgICB0aGlzLndzaXplID0gMDsgICAgICAgICAgICAgLyogd2luZG93IHNpemUgb3IgemVybyBpZiBub3QgdXNpbmcgd2luZG93ICovCiAgICB0aGlzLndoYXZlID0gMDsgICAgICAgICAgICAgLyogdmFsaWQgYnl0ZXMgaW4gdGhlIHdpbmRvdyAqLwogICAgdGhpcy53bmV4dCA9IDA7ICAgICAgICAgICAgIC8qIHdpbmRvdyB3cml0ZSBpbmRleCAqLwogICAgdGhpcy53aW5kb3cgPSBudWxsOyAgICAgICAgIC8qIGFsbG9jYXRlZCBzbGlkaW5nIHdpbmRvdywgaWYgbmVlZGVkICovCgogICAgLyogYml0IGFjY3VtdWxhdG9yICovCiAgICB0aGlzLmhvbGQgPSAwOyAgICAgICAgICAgICAgLyogaW5wdXQgYml0IGFjY3VtdWxhdG9yICovCiAgICB0aGlzLmJpdHMgPSAwOyAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGJpdHMgaW4gImluIiAqLwoKICAgIC8qIGZvciBzdHJpbmcgYW5kIHN0b3JlZCBibG9jayBjb3B5aW5nICovCiAgICB0aGlzLmxlbmd0aCA9IDA7ICAgICAgICAgICAgLyogbGl0ZXJhbCBvciBsZW5ndGggb2YgZGF0YSB0byBjb3B5ICovCiAgICB0aGlzLm9mZnNldCA9IDA7ICAgICAgICAgICAgLyogZGlzdGFuY2UgYmFjayB0byBjb3B5IHN0cmluZyBmcm9tICovCgogICAgLyogZm9yIHRhYmxlIGFuZCBjb2RlIGRlY29kaW5nICovCiAgICB0aGlzLmV4dHJhID0gMDsgICAgICAgICAgICAgLyogZXh0cmEgYml0cyBuZWVkZWQgKi8KCiAgICAvKiBmaXhlZCBhbmQgZHluYW1pYyBjb2RlIHRhYmxlcyAqLwogICAgdGhpcy5sZW5jb2RlID0gbnVsbDsgICAgICAgICAgLyogc3RhcnRpbmcgdGFibGUgZm9yIGxlbmd0aC9saXRlcmFsIGNvZGVzICovCiAgICB0aGlzLmRpc3Rjb2RlID0gbnVsbDsgICAgICAgICAvKiBzdGFydGluZyB0YWJsZSBmb3IgZGlzdGFuY2UgY29kZXMgKi8KICAgIHRoaXMubGVuYml0cyA9IDA7ICAgICAgICAgICAvKiBpbmRleCBiaXRzIGZvciBsZW5jb2RlICovCiAgICB0aGlzLmRpc3RiaXRzID0gMDsgICAgICAgICAgLyogaW5kZXggYml0cyBmb3IgZGlzdGNvZGUgKi8KCiAgICAvKiBkeW5hbWljIHRhYmxlIGJ1aWxkaW5nICovCiAgICB0aGlzLm5jb2RlID0gMDsgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGNvZGUgbGVuZ3RoIGNvZGUgbGVuZ3RocyAqLwogICAgdGhpcy5ubGVuID0gMDsgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBsZW5ndGggY29kZSBsZW5ndGhzICovCiAgICB0aGlzLm5kaXN0ID0gMDsgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGRpc3RhbmNlIGNvZGUgbGVuZ3RocyAqLwogICAgdGhpcy5oYXZlID0gMDsgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBjb2RlIGxlbmd0aHMgaW4gbGVuc1tdICovCiAgICB0aGlzLm5leHQgPSBudWxsOyAgICAgICAgICAgICAgLyogbmV4dCBhdmFpbGFibGUgc3BhY2UgaW4gY29kZXNbXSAqLwoKICAgIHRoaXMubGVucyA9IG5ldyBVaW50MTZBcnJheSgzMjApOyAvKiB0ZW1wb3Jhcnkgc3RvcmFnZSBmb3IgY29kZSBsZW5ndGhzICovCiAgICB0aGlzLndvcmsgPSBuZXcgVWludDE2QXJyYXkoMjg4KTsgLyogd29yayBhcmVhIGZvciBjb2RlIHRhYmxlIGJ1aWxkaW5nICovCgogICAgLyoKICAgICBiZWNhdXNlIHdlIGRvbid0IGhhdmUgcG9pbnRlcnMgaW4ganMsIHdlIHVzZSBsZW5jb2RlIGFuZCBkaXN0Y29kZSBkaXJlY3RseQogICAgIGFzIGJ1ZmZlcnMgc28gd2UgZG9uJ3QgbmVlZCBjb2RlcwogICAgKi8KICAgIC8vdGhpcy5jb2RlcyA9IG5ldyBJbnQzMkFycmF5KEVOT1VHSCk7ICAgICAgIC8qIHNwYWNlIGZvciBjb2RlIHRhYmxlcyAqLwogICAgdGhpcy5sZW5keW4gPSBudWxsOyAgICAgICAgICAgICAgLyogZHluYW1pYyB0YWJsZSBmb3IgbGVuZ3RoL2xpdGVyYWwgY29kZXMgKEpTIHNwZWNpZmljKSAqLwogICAgdGhpcy5kaXN0ZHluID0gbnVsbDsgICAgICAgICAgICAgLyogZHluYW1pYyB0YWJsZSBmb3IgZGlzdGFuY2UgY29kZXMgKEpTIHNwZWNpZmljKSAqLwogICAgdGhpcy5zYW5lID0gMDsgICAgICAgICAgICAgICAgICAgLyogaWYgZmFsc2UsIGFsbG93IGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciAqLwogICAgdGhpcy5iYWNrID0gMDsgICAgICAgICAgICAgICAgICAgLyogYml0cyBiYWNrIG9mIGxhc3QgdW5wcm9jZXNzZWQgbGVuZ3RoL2xpdCAqLwogICAgdGhpcy53YXMgPSAwOyAgICAgICAgICAgICAgICAgICAgLyogaW5pdGlhbCBsZW5ndGggb2YgbWF0Y2ggKi8KICB9CgoKICBjb25zdCBpbmZsYXRlUmVzZXRLZWVwID0gKHN0cm0pID0+IHsKCiAgICBpZiAoIXN0cm0gfHwgIXN0cm0uc3RhdGUpIHsgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDE7IH0KICAgIGNvbnN0IHN0YXRlID0gc3RybS5zdGF0ZTsKICAgIHN0cm0udG90YWxfaW4gPSBzdHJtLnRvdGFsX291dCA9IHN0YXRlLnRvdGFsID0gMDsKICAgIHN0cm0ubXNnID0gJyc7IC8qWl9OVUxMKi8KICAgIGlmIChzdGF0ZS53cmFwKSB7ICAgICAgIC8qIHRvIHN1cHBvcnQgaWxsLWNvbmNlaXZlZCBKYXZhIHRlc3Qgc3VpdGUgKi8KICAgICAgc3RybS5hZGxlciA9IHN0YXRlLndyYXAgJiAxOwogICAgfQogICAgc3RhdGUubW9kZSA9IEhFQUQ7CiAgICBzdGF0ZS5sYXN0ID0gMDsKICAgIHN0YXRlLmhhdmVkaWN0ID0gMDsKICAgIHN0YXRlLmRtYXggPSAzMjc2ODsKICAgIHN0YXRlLmhlYWQgPSBudWxsLypaX05VTEwqLzsKICAgIHN0YXRlLmhvbGQgPSAwOwogICAgc3RhdGUuYml0cyA9IDA7CiAgICAvL3N0YXRlLmxlbmNvZGUgPSBzdGF0ZS5kaXN0Y29kZSA9IHN0YXRlLm5leHQgPSBzdGF0ZS5jb2RlczsKICAgIHN0YXRlLmxlbmNvZGUgPSBzdGF0ZS5sZW5keW4gPSBuZXcgSW50MzJBcnJheShFTk9VR0hfTEVOUyk7CiAgICBzdGF0ZS5kaXN0Y29kZSA9IHN0YXRlLmRpc3RkeW4gPSBuZXcgSW50MzJBcnJheShFTk9VR0hfRElTVFMpOwoKICAgIHN0YXRlLnNhbmUgPSAxOwogICAgc3RhdGUuYmFjayA9IC0xOwogICAgLy9UcmFjZXYoKHN0ZGVyciwgImluZmxhdGU6IHJlc2V0XG4iKSk7CiAgICByZXR1cm4gWl9PSyQxOwogIH07CgoKICBjb25zdCBpbmZsYXRlUmVzZXQgPSAoc3RybSkgPT4gewoKICAgIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSkgeyByZXR1cm4gWl9TVFJFQU1fRVJST1IkMTsgfQogICAgY29uc3Qgc3RhdGUgPSBzdHJtLnN0YXRlOwogICAgc3RhdGUud3NpemUgPSAwOwogICAgc3RhdGUud2hhdmUgPSAwOwogICAgc3RhdGUud25leHQgPSAwOwogICAgcmV0dXJuIGluZmxhdGVSZXNldEtlZXAoc3RybSk7CgogIH07CgoKICBjb25zdCBpbmZsYXRlUmVzZXQyID0gKHN0cm0sIHdpbmRvd0JpdHMpID0+IHsKICAgIGxldCB3cmFwOwoKICAgIC8qIGdldCB0aGUgc3RhdGUgKi8KICAgIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSkgeyByZXR1cm4gWl9TVFJFQU1fRVJST1IkMTsgfQogICAgY29uc3Qgc3RhdGUgPSBzdHJtLnN0YXRlOwoKICAgIC8qIGV4dHJhY3Qgd3JhcCByZXF1ZXN0IGZyb20gd2luZG93Qml0cyBwYXJhbWV0ZXIgKi8KICAgIGlmICh3aW5kb3dCaXRzIDwgMCkgewogICAgICB3cmFwID0gMDsKICAgICAgd2luZG93Qml0cyA9IC13aW5kb3dCaXRzOwogICAgfQogICAgZWxzZSB7CiAgICAgIHdyYXAgPSAod2luZG93Qml0cyA+PiA0KSArIDE7CiAgICAgIGlmICh3aW5kb3dCaXRzIDwgNDgpIHsKICAgICAgICB3aW5kb3dCaXRzICY9IDE1OwogICAgICB9CiAgICB9CgogICAgLyogc2V0IG51bWJlciBvZiB3aW5kb3cgYml0cywgZnJlZSB3aW5kb3cgaWYgZGlmZmVyZW50ICovCiAgICBpZiAod2luZG93Qml0cyAmJiAod2luZG93Qml0cyA8IDggfHwgd2luZG93Qml0cyA+IDE1KSkgewogICAgICByZXR1cm4gWl9TVFJFQU1fRVJST1IkMTsKICAgIH0KICAgIGlmIChzdGF0ZS53aW5kb3cgIT09IG51bGwgJiYgc3RhdGUud2JpdHMgIT09IHdpbmRvd0JpdHMpIHsKICAgICAgc3RhdGUud2luZG93ID0gbnVsbDsKICAgIH0KCiAgICAvKiB1cGRhdGUgc3RhdGUgYW5kIHJlc2V0IHRoZSByZXN0IG9mIGl0ICovCiAgICBzdGF0ZS53cmFwID0gd3JhcDsKICAgIHN0YXRlLndiaXRzID0gd2luZG93Qml0czsKICAgIHJldHVybiBpbmZsYXRlUmVzZXQoc3RybSk7CiAgfTsKCgogIGNvbnN0IGluZmxhdGVJbml0MiA9IChzdHJtLCB3aW5kb3dCaXRzKSA9PiB7CgogICAgaWYgKCFzdHJtKSB7IHJldHVybiBaX1NUUkVBTV9FUlJPUiQxOyB9CiAgICAvL3N0cm0ubXNnID0gWl9OVUxMOyAgICAgICAgICAgICAgICAgLyogaW4gY2FzZSB3ZSByZXR1cm4gYW4gZXJyb3IgKi8KCiAgICBjb25zdCBzdGF0ZSA9IG5ldyBJbmZsYXRlU3RhdGUoKTsKCiAgICAvL2lmIChzdGF0ZSA9PT0gWl9OVUxMKSByZXR1cm4gWl9NRU1fRVJST1I7CiAgICAvL1RyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogYWxsb2NhdGVkXG4iKSk7CiAgICBzdHJtLnN0YXRlID0gc3RhdGU7CiAgICBzdGF0ZS53aW5kb3cgPSBudWxsLypaX05VTEwqLzsKICAgIGNvbnN0IHJldCA9IGluZmxhdGVSZXNldDIoc3RybSwgd2luZG93Qml0cyk7CiAgICBpZiAocmV0ICE9PSBaX09LJDEpIHsKICAgICAgc3RybS5zdGF0ZSA9IG51bGwvKlpfTlVMTCovOwogICAgfQogICAgcmV0dXJuIHJldDsKICB9OwoKCiAgY29uc3QgaW5mbGF0ZUluaXQgPSAoc3RybSkgPT4gewoKICAgIHJldHVybiBpbmZsYXRlSW5pdDIoc3RybSwgREVGX1dCSVRTKTsKICB9OwoKCiAgLyoKICAgUmV0dXJuIHN0YXRlIHdpdGggbGVuZ3RoIGFuZCBkaXN0YW5jZSBkZWNvZGluZyB0YWJsZXMgYW5kIGluZGV4IHNpemVzIHNldCB0bwogICBmaXhlZCBjb2RlIGRlY29kaW5nLiAgTm9ybWFsbHkgdGhpcyByZXR1cm5zIGZpeGVkIHRhYmxlcyBmcm9tIGluZmZpeGVkLmguCiAgIElmIEJVSUxERklYRUQgaXMgZGVmaW5lZCwgdGhlbiBpbnN0ZWFkIHRoaXMgcm91dGluZSBidWlsZHMgdGhlIHRhYmxlcyB0aGUKICAgZmlyc3QgdGltZSBpdCdzIGNhbGxlZCwgYW5kIHJldHVybnMgdGhvc2UgdGFibGVzIHRoZSBmaXJzdCB0aW1lIGFuZAogICB0aGVyZWFmdGVyLiAgVGhpcyByZWR1Y2VzIHRoZSBzaXplIG9mIHRoZSBjb2RlIGJ5IGFib3V0IDJLIGJ5dGVzLCBpbgogICBleGNoYW5nZSBmb3IgYSBsaXR0bGUgZXhlY3V0aW9uIHRpbWUuICBIb3dldmVyLCBCVUlMREZJWEVEIHNob3VsZCBub3QgYmUKICAgdXNlZCBmb3IgdGhyZWFkZWQgYXBwbGljYXRpb25zLCBzaW5jZSB0aGUgcmV3cml0aW5nIG9mIHRoZSB0YWJsZXMgYW5kIHZpcmdpbgogICBtYXkgbm90IGJlIHRocmVhZC1zYWZlLgogICAqLwogIGxldCB2aXJnaW4gPSB0cnVlOwoKICBsZXQgbGVuZml4LCBkaXN0Zml4OyAvLyBXZSBoYXZlIG5vIHBvaW50ZXJzIGluIEpTLCBzbyBrZWVwIHRhYmxlcyBzZXBhcmF0ZQoKCiAgY29uc3QgZml4ZWR0YWJsZXMgPSAoc3RhdGUpID0+IHsKCiAgICAvKiBidWlsZCBmaXhlZCBodWZmbWFuIHRhYmxlcyBpZiBmaXJzdCBjYWxsIChtYXkgbm90IGJlIHRocmVhZCBzYWZlKSAqLwogICAgaWYgKHZpcmdpbikgewogICAgICBsZW5maXggPSBuZXcgSW50MzJBcnJheSg1MTIpOwogICAgICBkaXN0Zml4ID0gbmV3IEludDMyQXJyYXkoMzIpOwoKICAgICAgLyogbGl0ZXJhbC9sZW5ndGggdGFibGUgKi8KICAgICAgbGV0IHN5bSA9IDA7CiAgICAgIHdoaWxlIChzeW0gPCAxNDQpIHsgc3RhdGUubGVuc1tzeW0rK10gPSA4OyB9CiAgICAgIHdoaWxlIChzeW0gPCAyNTYpIHsgc3RhdGUubGVuc1tzeW0rK10gPSA5OyB9CiAgICAgIHdoaWxlIChzeW0gPCAyODApIHsgc3RhdGUubGVuc1tzeW0rK10gPSA3OyB9CiAgICAgIHdoaWxlIChzeW0gPCAyODgpIHsgc3RhdGUubGVuc1tzeW0rK10gPSA4OyB9CgogICAgICBpbmZ0cmVlcyhMRU5TLCAgc3RhdGUubGVucywgMCwgMjg4LCBsZW5maXgsICAgMCwgc3RhdGUud29yaywgeyBiaXRzOiA5IH0pOwoKICAgICAgLyogZGlzdGFuY2UgdGFibGUgKi8KICAgICAgc3ltID0gMDsKICAgICAgd2hpbGUgKHN5bSA8IDMyKSB7IHN0YXRlLmxlbnNbc3ltKytdID0gNTsgfQoKICAgICAgaW5mdHJlZXMoRElTVFMsIHN0YXRlLmxlbnMsIDAsIDMyLCAgIGRpc3RmaXgsIDAsIHN0YXRlLndvcmssIHsgYml0czogNSB9KTsKCiAgICAgIC8qIGRvIHRoaXMganVzdCBvbmNlICovCiAgICAgIHZpcmdpbiA9IGZhbHNlOwogICAgfQoKICAgIHN0YXRlLmxlbmNvZGUgPSBsZW5maXg7CiAgICBzdGF0ZS5sZW5iaXRzID0gOTsKICAgIHN0YXRlLmRpc3Rjb2RlID0gZGlzdGZpeDsKICAgIHN0YXRlLmRpc3RiaXRzID0gNTsKICB9OwoKCiAgLyoKICAgVXBkYXRlIHRoZSB3aW5kb3cgd2l0aCB0aGUgbGFzdCB3c2l6ZSAobm9ybWFsbHkgMzJLKSBieXRlcyB3cml0dGVuIGJlZm9yZQogICByZXR1cm5pbmcuICBJZiB3aW5kb3cgZG9lcyBub3QgZXhpc3QgeWV0LCBjcmVhdGUgaXQuICBUaGlzIGlzIG9ubHkgY2FsbGVkCiAgIHdoZW4gYSB3aW5kb3cgaXMgYWxyZWFkeSBpbiB1c2UsIG9yIHdoZW4gb3V0cHV0IGhhcyBiZWVuIHdyaXR0ZW4gZHVyaW5nIHRoaXMKICAgaW5mbGF0ZSBjYWxsLCBidXQgdGhlIGVuZCBvZiB0aGUgZGVmbGF0ZSBzdHJlYW0gaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LgogICBJdCBpcyBhbHNvIGNhbGxlZCB0byBjcmVhdGUgYSB3aW5kb3cgZm9yIGRpY3Rpb25hcnkgZGF0YSB3aGVuIGEgZGljdGlvbmFyeQogICBpcyBsb2FkZWQuCgogICBQcm92aWRpbmcgb3V0cHV0IGJ1ZmZlcnMgbGFyZ2VyIHRoYW4gMzJLIHRvIGluZmxhdGUoKSBzaG91bGQgcHJvdmlkZSBhIHNwZWVkCiAgIGFkdmFudGFnZSwgc2luY2Ugb25seSB0aGUgbGFzdCAzMksgb2Ygb3V0cHV0IGlzIGNvcGllZCB0byB0aGUgc2xpZGluZyB3aW5kb3cKICAgdXBvbiByZXR1cm4gZnJvbSBpbmZsYXRlKCksIGFuZCBzaW5jZSBhbGwgZGlzdGFuY2VzIGFmdGVyIHRoZSBmaXJzdCAzMksgb2YKICAgb3V0cHV0IHdpbGwgZmFsbCBpbiB0aGUgb3V0cHV0IGRhdGEsIG1ha2luZyBtYXRjaCBjb3BpZXMgc2ltcGxlciBhbmQgZmFzdGVyLgogICBUaGUgYWR2YW50YWdlIG1heSBiZSBkZXBlbmRlbnQgb24gdGhlIHNpemUgb2YgdGhlIHByb2Nlc3NvcidzIGRhdGEgY2FjaGVzLgogICAqLwogIGNvbnN0IHVwZGF0ZXdpbmRvdyA9IChzdHJtLCBzcmMsIGVuZCwgY29weSkgPT4gewoKICAgIGxldCBkaXN0OwogICAgY29uc3Qgc3RhdGUgPSBzdHJtLnN0YXRlOwoKICAgIC8qIGlmIGl0IGhhc24ndCBiZWVuIGRvbmUgYWxyZWFkeSwgYWxsb2NhdGUgc3BhY2UgZm9yIHRoZSB3aW5kb3cgKi8KICAgIGlmIChzdGF0ZS53aW5kb3cgPT09IG51bGwpIHsKICAgICAgc3RhdGUud3NpemUgPSAxIDw8IHN0YXRlLndiaXRzOwogICAgICBzdGF0ZS53bmV4dCA9IDA7CiAgICAgIHN0YXRlLndoYXZlID0gMDsKCiAgICAgIHN0YXRlLndpbmRvdyA9IG5ldyBVaW50OEFycmF5KHN0YXRlLndzaXplKTsKICAgIH0KCiAgICAvKiBjb3B5IHN0YXRlLT53c2l6ZSBvciBsZXNzIG91dHB1dCBieXRlcyBpbnRvIHRoZSBjaXJjdWxhciB3aW5kb3cgKi8KICAgIGlmIChjb3B5ID49IHN0YXRlLndzaXplKSB7CiAgICAgIHN0YXRlLndpbmRvdy5zZXQoc3JjLnN1YmFycmF5KGVuZCAtIHN0YXRlLndzaXplLCBlbmQpLCAwKTsKICAgICAgc3RhdGUud25leHQgPSAwOwogICAgICBzdGF0ZS53aGF2ZSA9IHN0YXRlLndzaXplOwogICAgfQogICAgZWxzZSB7CiAgICAgIGRpc3QgPSBzdGF0ZS53c2l6ZSAtIHN0YXRlLnduZXh0OwogICAgICBpZiAoZGlzdCA+IGNvcHkpIHsKICAgICAgICBkaXN0ID0gY29weTsKICAgICAgfQogICAgICAvL3ptZW1jcHkoc3RhdGUtPndpbmRvdyArIHN0YXRlLT53bmV4dCwgZW5kIC0gY29weSwgZGlzdCk7CiAgICAgIHN0YXRlLndpbmRvdy5zZXQoc3JjLnN1YmFycmF5KGVuZCAtIGNvcHksIGVuZCAtIGNvcHkgKyBkaXN0KSwgc3RhdGUud25leHQpOwogICAgICBjb3B5IC09IGRpc3Q7CiAgICAgIGlmIChjb3B5KSB7CiAgICAgICAgLy96bWVtY3B5KHN0YXRlLT53aW5kb3csIGVuZCAtIGNvcHksIGNvcHkpOwogICAgICAgIHN0YXRlLndpbmRvdy5zZXQoc3JjLnN1YmFycmF5KGVuZCAtIGNvcHksIGVuZCksIDApOwogICAgICAgIHN0YXRlLnduZXh0ID0gY29weTsKICAgICAgICBzdGF0ZS53aGF2ZSA9IHN0YXRlLndzaXplOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHN0YXRlLnduZXh0ICs9IGRpc3Q7CiAgICAgICAgaWYgKHN0YXRlLnduZXh0ID09PSBzdGF0ZS53c2l6ZSkgeyBzdGF0ZS53bmV4dCA9IDA7IH0KICAgICAgICBpZiAoc3RhdGUud2hhdmUgPCBzdGF0ZS53c2l6ZSkgeyBzdGF0ZS53aGF2ZSArPSBkaXN0OyB9CiAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwogIH07CgoKICBjb25zdCBpbmZsYXRlJDIgPSAoc3RybSwgZmx1c2gpID0+IHsKCiAgICBsZXQgc3RhdGU7CiAgICBsZXQgaW5wdXQsIG91dHB1dDsgICAgICAgICAgLy8gaW5wdXQvb3V0cHV0IGJ1ZmZlcnMKICAgIGxldCBuZXh0OyAgICAgICAgICAgICAgICAgICAvKiBuZXh0IGlucHV0IElOREVYICovCiAgICBsZXQgcHV0OyAgICAgICAgICAgICAgICAgICAgLyogbmV4dCBvdXRwdXQgSU5ERVggKi8KICAgIGxldCBoYXZlLCBsZWZ0OyAgICAgICAgICAgICAvKiBhdmFpbGFibGUgaW5wdXQgYW5kIG91dHB1dCAqLwogICAgbGV0IGhvbGQ7ICAgICAgICAgICAgICAgICAgIC8qIGJpdCBidWZmZXIgKi8KICAgIGxldCBiaXRzOyAgICAgICAgICAgICAgICAgICAvKiBiaXRzIGluIGJpdCBidWZmZXIgKi8KICAgIGxldCBfaW4sIF9vdXQ7ICAgICAgICAgICAgICAvKiBzYXZlIHN0YXJ0aW5nIGF2YWlsYWJsZSBpbnB1dCBhbmQgb3V0cHV0ICovCiAgICBsZXQgY29weTsgICAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIHN0b3JlZCBvciBtYXRjaCBieXRlcyB0byBjb3B5ICovCiAgICBsZXQgZnJvbTsgICAgICAgICAgICAgICAgICAgLyogd2hlcmUgdG8gY29weSBtYXRjaCBieXRlcyBmcm9tICovCiAgICBsZXQgZnJvbV9zb3VyY2U7CiAgICBsZXQgaGVyZSA9IDA7ICAgICAgICAgICAgICAgLyogY3VycmVudCBkZWNvZGluZyB0YWJsZSBlbnRyeSAqLwogICAgbGV0IGhlcmVfYml0cywgaGVyZV9vcCwgaGVyZV92YWw7IC8vIHBha2VkICJoZXJlIiBkZW5vcm1hbGl6ZWQgKEpTIHNwZWNpZmljKQogICAgLy9sZXQgbGFzdDsgICAgICAgICAgICAgICAgICAgLyogcGFyZW50IHRhYmxlIGVudHJ5ICovCiAgICBsZXQgbGFzdF9iaXRzLCBsYXN0X29wLCBsYXN0X3ZhbDsgLy8gcGFrZWQgImxhc3QiIGRlbm9ybWFsaXplZCAoSlMgc3BlY2lmaWMpCiAgICBsZXQgbGVuOyAgICAgICAgICAgICAgICAgICAgLyogbGVuZ3RoIHRvIGNvcHkgZm9yIHJlcGVhdHMsIGJpdHMgdG8gZHJvcCAqLwogICAgbGV0IHJldDsgICAgICAgICAgICAgICAgICAgIC8qIHJldHVybiBjb2RlICovCiAgICBjb25zdCBoYnVmID0gbmV3IFVpbnQ4QXJyYXkoNCk7ICAgIC8qIGJ1ZmZlciBmb3IgZ3ppcCBoZWFkZXIgY3JjIGNhbGN1bGF0aW9uICovCiAgICBsZXQgb3B0czsKCiAgICBsZXQgbjsgLy8gdGVtcG9yYXJ5IHZhcmlhYmxlIGZvciBORUVEX0JJVFMKCiAgICBjb25zdCBvcmRlciA9IC8qIHBlcm11dGF0aW9uIG9mIGNvZGUgbGVuZ3RocyAqLwogICAgICBuZXcgVWludDhBcnJheShbIDE2LCAxNywgMTgsIDAsIDgsIDcsIDksIDYsIDEwLCA1LCAxMSwgNCwgMTIsIDMsIDEzLCAyLCAxNCwgMSwgMTUgXSk7CgoKICAgIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSB8fCAhc3RybS5vdXRwdXQgfHwKICAgICAgICAoIXN0cm0uaW5wdXQgJiYgc3RybS5hdmFpbF9pbiAhPT0gMCkpIHsKICAgICAgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDE7CiAgICB9CgogICAgc3RhdGUgPSBzdHJtLnN0YXRlOwogICAgaWYgKHN0YXRlLm1vZGUgPT09IFRZUEUpIHsgc3RhdGUubW9kZSA9IFRZUEVETzsgfSAgICAvKiBza2lwIGNoZWNrICovCgoKICAgIC8vLS0tIExPQUQoKSAtLS0KICAgIHB1dCA9IHN0cm0ubmV4dF9vdXQ7CiAgICBvdXRwdXQgPSBzdHJtLm91dHB1dDsKICAgIGxlZnQgPSBzdHJtLmF2YWlsX291dDsKICAgIG5leHQgPSBzdHJtLm5leHRfaW47CiAgICBpbnB1dCA9IHN0cm0uaW5wdXQ7CiAgICBoYXZlID0gc3RybS5hdmFpbF9pbjsKICAgIGhvbGQgPSBzdGF0ZS5ob2xkOwogICAgYml0cyA9IHN0YXRlLmJpdHM7CiAgICAvLy0tLQoKICAgIF9pbiA9IGhhdmU7CiAgICBfb3V0ID0gbGVmdDsKICAgIHJldCA9IFpfT0skMTsKCiAgICBpbmZfbGVhdmU6IC8vIGdvdG8gZW11bGF0aW9uCiAgICBmb3IgKDs7KSB7CiAgICAgIHN3aXRjaCAoc3RhdGUubW9kZSkgewogICAgICAgIGNhc2UgSEVBRDoKICAgICAgICAgIGlmIChzdGF0ZS53cmFwID09PSAwKSB7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBUWVBFRE87CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgLy89PT0gTkVFREJJVFMoMTYpOwogICAgICAgICAgd2hpbGUgKGJpdHMgPCAxNikgewogICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgfQogICAgICAgICAgLy89PT0vLwogICAgICAgICAgaWYgKChzdGF0ZS53cmFwICYgMikgJiYgaG9sZCA9PT0gMHg4YjFmKSB7ICAvKiBnemlwIGhlYWRlciAqLwogICAgICAgICAgICBzdGF0ZS5jaGVjayA9IDAvKmNyYzMyKDBMLCBaX05VTEwsIDApKi87CiAgICAgICAgICAgIC8vPT09IENSQzIoc3RhdGUuY2hlY2ssIGhvbGQpOwogICAgICAgICAgICBoYnVmWzBdID0gaG9sZCAmIDB4ZmY7CiAgICAgICAgICAgIGhidWZbMV0gPSAoaG9sZCA+Pj4gOCkgJiAweGZmOwogICAgICAgICAgICBzdGF0ZS5jaGVjayA9IGNyYzMyXzEoc3RhdGUuY2hlY2ssIGhidWYsIDIsIDApOwogICAgICAgICAgICAvLz09PS8vCgogICAgICAgICAgICAvLz09PSBJTklUQklUUygpOwogICAgICAgICAgICBob2xkID0gMDsKICAgICAgICAgICAgYml0cyA9IDA7CiAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgICAgc3RhdGUubW9kZSA9IEZMQUdTOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlLmZsYWdzID0gMDsgICAgICAgICAgIC8qIGV4cGVjdCB6bGliIGhlYWRlciAqLwogICAgICAgICAgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgc3RhdGUuaGVhZC5kb25lID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIShzdGF0ZS53cmFwICYgMSkgfHwgICAvKiBjaGVjayBpZiB6bGliIGhlYWRlciBhbGxvd2VkICovCiAgICAgICAgICAgICgoKGhvbGQgJiAweGZmKS8qQklUUyg4KSovIDw8IDgpICsgKGhvbGQgPj4gOCkpICUgMzEpIHsKICAgICAgICAgICAgc3RybS5tc2cgPSAnaW5jb3JyZWN0IGhlYWRlciBjaGVjayc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKChob2xkICYgMHgwZikvKkJJVFMoNCkqLyAhPT0gWl9ERUZMQVRFRCkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICd1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgLy8tLS0gRFJPUEJJVFMoNCkgLS0tLy8KICAgICAgICAgIGhvbGQgPj4+PSA0OwogICAgICAgICAgYml0cyAtPSA0OwogICAgICAgICAgLy8tLS0vLwogICAgICAgICAgbGVuID0gKGhvbGQgJiAweDBmKS8qQklUUyg0KSovICsgODsKICAgICAgICAgIGlmIChzdGF0ZS53Yml0cyA9PT0gMCkgewogICAgICAgICAgICBzdGF0ZS53Yml0cyA9IGxlbjsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKGxlbiA+IHN0YXRlLndiaXRzKSB7CiAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgd2luZG93IHNpemUnOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyAhISEgcGFrbyBwYXRjaC4gRm9yY2UgdXNlIGBvcHRpb25zLndpbmRvd0JpdHNgIGlmIHBhc3NlZC4KICAgICAgICAgIC8vIFJlcXVpcmVkIHRvIGFsd2F5cyB1c2UgbWF4IHdpbmRvdyBzaXplIGJ5IGRlZmF1bHQuCiAgICAgICAgICBzdGF0ZS5kbWF4ID0gMSA8PCBzdGF0ZS53Yml0czsKICAgICAgICAgIC8vc3RhdGUuZG1heCA9IDEgPDwgbGVuOwoKICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgIHpsaWIgaGVhZGVyIG9rXG4iKSk7CiAgICAgICAgICBzdHJtLmFkbGVyID0gc3RhdGUuY2hlY2sgPSAxLyphZGxlcjMyKDBMLCBaX05VTEwsIDApKi87CiAgICAgICAgICBzdGF0ZS5tb2RlID0gaG9sZCAmIDB4MjAwID8gRElDVElEIDogVFlQRTsKICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICBob2xkID0gMDsKICAgICAgICAgIGJpdHMgPSAwOwogICAgICAgICAgLy89PT0vLwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBGTEFHUzoKICAgICAgICAgIC8vPT09IE5FRURCSVRTKDE2KTsgKi8KICAgICAgICAgIHdoaWxlIChiaXRzIDwgMTYpIHsKICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgIH0KICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIHN0YXRlLmZsYWdzID0gaG9sZDsKICAgICAgICAgIGlmICgoc3RhdGUuZmxhZ3MgJiAweGZmKSAhPT0gWl9ERUZMQVRFRCkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICd1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHhlMDAwKSB7CiAgICAgICAgICAgIHN0cm0ubXNnID0gJ3Vua25vd24gaGVhZGVyIGZsYWdzIHNldCc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgc3RhdGUuaGVhZC50ZXh0ID0gKChob2xkID4+IDgpICYgMSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc3RhdGUuZmxhZ3MgJiAweDAyMDApIHsKICAgICAgICAgICAgLy89PT0gQ1JDMihzdGF0ZS5jaGVjaywgaG9sZCk7CiAgICAgICAgICAgIGhidWZbMF0gPSBob2xkICYgMHhmZjsKICAgICAgICAgICAgaGJ1ZlsxXSA9IChob2xkID4+PiA4KSAmIDB4ZmY7CiAgICAgICAgICAgIHN0YXRlLmNoZWNrID0gY3JjMzJfMShzdGF0ZS5jaGVjaywgaGJ1ZiwgMiwgMCk7CiAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIH0KICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICBob2xkID0gMDsKICAgICAgICAgIGJpdHMgPSAwOwogICAgICAgICAgLy89PT0vLwogICAgICAgICAgc3RhdGUubW9kZSA9IFRJTUU7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBUSU1FOgogICAgICAgICAgLy89PT0gTkVFREJJVFMoMzIpOyAqLwogICAgICAgICAgd2hpbGUgKGJpdHMgPCAzMikgewogICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgfQogICAgICAgICAgLy89PT0vLwogICAgICAgICAgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgc3RhdGUuaGVhZC50aW1lID0gaG9sZDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgICAvLz09PSBDUkM0KHN0YXRlLmNoZWNrLCBob2xkKQogICAgICAgICAgICBoYnVmWzBdID0gaG9sZCAmIDB4ZmY7CiAgICAgICAgICAgIGhidWZbMV0gPSAoaG9sZCA+Pj4gOCkgJiAweGZmOwogICAgICAgICAgICBoYnVmWzJdID0gKGhvbGQgPj4+IDE2KSAmIDB4ZmY7CiAgICAgICAgICAgIGhidWZbM10gPSAoaG9sZCA+Pj4gMjQpICYgMHhmZjsKICAgICAgICAgICAgc3RhdGUuY2hlY2sgPSBjcmMzMl8xKHN0YXRlLmNoZWNrLCBoYnVmLCA0LCAwKTsKICAgICAgICAgICAgLy89PT0KICAgICAgICAgIH0KICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICBob2xkID0gMDsKICAgICAgICAgIGJpdHMgPSAwOwogICAgICAgICAgLy89PT0vLwogICAgICAgICAgc3RhdGUubW9kZSA9IE9TOwogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgT1M6CiAgICAgICAgICAvLz09PSBORUVEQklUUygxNik7ICovCiAgICAgICAgICB3aGlsZSAoYml0cyA8IDE2KSB7CiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICB9CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBpZiAoc3RhdGUuaGVhZCkgewogICAgICAgICAgICBzdGF0ZS5oZWFkLnhmbGFncyA9IChob2xkICYgMHhmZik7CiAgICAgICAgICAgIHN0YXRlLmhlYWQub3MgPSAoaG9sZCA+PiA4KTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgICAvLz09PSBDUkMyKHN0YXRlLmNoZWNrLCBob2xkKTsKICAgICAgICAgICAgaGJ1ZlswXSA9IGhvbGQgJiAweGZmOwogICAgICAgICAgICBoYnVmWzFdID0gKGhvbGQgPj4+IDgpICYgMHhmZjsKICAgICAgICAgICAgc3RhdGUuY2hlY2sgPSBjcmMzMl8xKHN0YXRlLmNoZWNrLCBoYnVmLCAyLCAwKTsKICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgfQogICAgICAgICAgLy89PT0gSU5JVEJJVFMoKTsKICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgYml0cyA9IDA7CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBzdGF0ZS5tb2RlID0gRVhMRU47CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBFWExFTjoKICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDQwMCkgewogICAgICAgICAgICAvLz09PSBORUVEQklUUygxNik7ICovCiAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgMTYpIHsKICAgICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgICAgc3RhdGUubGVuZ3RoID0gaG9sZDsKICAgICAgICAgICAgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgICBzdGF0ZS5oZWFkLmV4dHJhX2xlbiA9IGhvbGQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHgwMjAwKSB7CiAgICAgICAgICAgICAgLy89PT0gQ1JDMihzdGF0ZS5jaGVjaywgaG9sZCk7CiAgICAgICAgICAgICAgaGJ1ZlswXSA9IGhvbGQgJiAweGZmOwogICAgICAgICAgICAgIGhidWZbMV0gPSAoaG9sZCA+Pj4gOCkgJiAweGZmOwogICAgICAgICAgICAgIHN0YXRlLmNoZWNrID0gY3JjMzJfMShzdGF0ZS5jaGVjaywgaGJ1ZiwgMiwgMCk7CiAgICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgICBiaXRzID0gMDsKICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAoc3RhdGUuaGVhZCkgewogICAgICAgICAgICBzdGF0ZS5oZWFkLmV4dHJhID0gbnVsbC8qWl9OVUxMKi87CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5tb2RlID0gRVhUUkE7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBFWFRSQToKICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDQwMCkgewogICAgICAgICAgICBjb3B5ID0gc3RhdGUubGVuZ3RoOwogICAgICAgICAgICBpZiAoY29weSA+IGhhdmUpIHsgY29weSA9IGhhdmU7IH0KICAgICAgICAgICAgaWYgKGNvcHkpIHsKICAgICAgICAgICAgICBpZiAoc3RhdGUuaGVhZCkgewogICAgICAgICAgICAgICAgbGVuID0gc3RhdGUuaGVhZC5leHRyYV9sZW4gLSBzdGF0ZS5sZW5ndGg7CiAgICAgICAgICAgICAgICBpZiAoIXN0YXRlLmhlYWQuZXh0cmEpIHsKICAgICAgICAgICAgICAgICAgLy8gVXNlIHVudHlwZWQgYXJyYXkgZm9yIG1vcmUgY29udmVuaWVudCBwcm9jZXNzaW5nIGxhdGVyCiAgICAgICAgICAgICAgICAgIHN0YXRlLmhlYWQuZXh0cmEgPSBuZXcgVWludDhBcnJheShzdGF0ZS5oZWFkLmV4dHJhX2xlbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzdGF0ZS5oZWFkLmV4dHJhLnNldCgKICAgICAgICAgICAgICAgICAgaW5wdXQuc3ViYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgbmV4dCwKICAgICAgICAgICAgICAgICAgICAvLyBleHRyYSBmaWVsZCBpcyBsaW1pdGVkIHRvIDY1NTM2IGJ5dGVzCiAgICAgICAgICAgICAgICAgICAgLy8gLSBubyBuZWVkIGZvciBhZGRpdGlvbmFsIHNpemUgY2hlY2sKICAgICAgICAgICAgICAgICAgICBuZXh0ICsgY29weQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAvKmxlbiArIGNvcHkgPiBzdGF0ZS5oZWFkLmV4dHJhX21heCAtIGxlbiA/IHN0YXRlLmhlYWQuZXh0cmFfbWF4IDogY29weSwqLwogICAgICAgICAgICAgICAgICBsZW4KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAvL3ptZW1jcHkoc3RhdGUuaGVhZC5leHRyYSArIGxlbiwgbmV4dCwKICAgICAgICAgICAgICAgIC8vICAgICAgICBsZW4gKyBjb3B5ID4gc3RhdGUuaGVhZC5leHRyYV9tYXggPwogICAgICAgICAgICAgICAgLy8gICAgICAgIHN0YXRlLmhlYWQuZXh0cmFfbWF4IC0gbGVuIDogY29weSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgICAgICAgc3RhdGUuY2hlY2sgPSBjcmMzMl8xKHN0YXRlLmNoZWNrLCBpbnB1dCwgY29weSwgbmV4dCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGhhdmUgLT0gY29weTsKICAgICAgICAgICAgICBuZXh0ICs9IGNvcHk7CiAgICAgICAgICAgICAgc3RhdGUubGVuZ3RoIC09IGNvcHk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHN0YXRlLmxlbmd0aCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlLmxlbmd0aCA9IDA7CiAgICAgICAgICBzdGF0ZS5tb2RlID0gTkFNRTsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIE5BTUU6CiAgICAgICAgICBpZiAoc3RhdGUuZmxhZ3MgJiAweDA4MDApIHsKICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIGNvcHkgPSAwOwogICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgLy8gVE9ETzogMiBvciAxIGJ5dGVzPwogICAgICAgICAgICAgIGxlbiA9IGlucHV0W25leHQgKyBjb3B5KytdOwogICAgICAgICAgICAgIC8qIHVzZSBjb25zdGFudCBsaW1pdCBiZWNhdXNlIGluIGpzIHdlIHNob3VsZCBub3QgcHJlYWxsb2NhdGUgbWVtb3J5ICovCiAgICAgICAgICAgICAgaWYgKHN0YXRlLmhlYWQgJiYgbGVuICYmCiAgICAgICAgICAgICAgICAgIChzdGF0ZS5sZW5ndGggPCA2NTUzNiAvKnN0YXRlLmhlYWQubmFtZV9tYXgqLykpIHsKICAgICAgICAgICAgICAgIHN0YXRlLmhlYWQubmFtZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGxlbik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IHdoaWxlIChsZW4gJiYgY29weSA8IGhhdmUpOwoKICAgICAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHgwMjAwKSB7CiAgICAgICAgICAgICAgc3RhdGUuY2hlY2sgPSBjcmMzMl8xKHN0YXRlLmNoZWNrLCBpbnB1dCwgY29weSwgbmV4dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaGF2ZSAtPSBjb3B5OwogICAgICAgICAgICBuZXh0ICs9IGNvcHk7CiAgICAgICAgICAgIGlmIChsZW4pIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5oZWFkKSB7CiAgICAgICAgICAgIHN0YXRlLmhlYWQubmFtZSA9IG51bGw7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5sZW5ndGggPSAwOwogICAgICAgICAgc3RhdGUubW9kZSA9IENPTU1FTlQ7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBDT01NRU5UOgogICAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHgxMDAwKSB7CiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBjb3B5ID0gMDsKICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgIGxlbiA9IGlucHV0W25leHQgKyBjb3B5KytdOwogICAgICAgICAgICAgIC8qIHVzZSBjb25zdGFudCBsaW1pdCBiZWNhdXNlIGluIGpzIHdlIHNob3VsZCBub3QgcHJlYWxsb2NhdGUgbWVtb3J5ICovCiAgICAgICAgICAgICAgaWYgKHN0YXRlLmhlYWQgJiYgbGVuICYmCiAgICAgICAgICAgICAgICAgIChzdGF0ZS5sZW5ndGggPCA2NTUzNiAvKnN0YXRlLmhlYWQuY29tbV9tYXgqLykpIHsKICAgICAgICAgICAgICAgIHN0YXRlLmhlYWQuY29tbWVudCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGxlbik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IHdoaWxlIChsZW4gJiYgY29weSA8IGhhdmUpOwogICAgICAgICAgICBpZiAoc3RhdGUuZmxhZ3MgJiAweDAyMDApIHsKICAgICAgICAgICAgICBzdGF0ZS5jaGVjayA9IGNyYzMyXzEoc3RhdGUuY2hlY2ssIGlucHV0LCBjb3B5LCBuZXh0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBoYXZlIC09IGNvcHk7CiAgICAgICAgICAgIG5leHQgKz0gY29weTsKICAgICAgICAgICAgaWYgKGxlbikgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgc3RhdGUuaGVhZC5jb21tZW50ID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlLm1vZGUgPSBIQ1JDOwogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgSENSQzoKICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgICAvLz09PSBORUVEQklUUygxNik7ICovCiAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgMTYpIHsKICAgICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgICAgaWYgKGhvbGQgIT09IChzdGF0ZS5jaGVjayAmIDB4ZmZmZikpIHsKICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdoZWFkZXIgY3JjIG1pc21hdGNoJzsKICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgICBiaXRzID0gMDsKICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgfQogICAgICAgICAgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgc3RhdGUuaGVhZC5oY3JjID0gKChzdGF0ZS5mbGFncyA+PiA5KSAmIDEpOwogICAgICAgICAgICBzdGF0ZS5oZWFkLmRvbmUgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgc3RybS5hZGxlciA9IHN0YXRlLmNoZWNrID0gMDsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBUWVBFOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBESUNUSUQ6CiAgICAgICAgICAvLz09PSBORUVEQklUUygzMik7ICovCiAgICAgICAgICB3aGlsZSAoYml0cyA8IDMyKSB7CiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICB9CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBzdHJtLmFkbGVyID0gc3RhdGUuY2hlY2sgPSB6c3dhcDMyKGhvbGQpOwogICAgICAgICAgLy89PT0gSU5JVEJJVFMoKTsKICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgYml0cyA9IDA7CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBzdGF0ZS5tb2RlID0gRElDVDsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIERJQ1Q6CiAgICAgICAgICBpZiAoc3RhdGUuaGF2ZWRpY3QgPT09IDApIHsKICAgICAgICAgICAgLy8tLS0gUkVTVE9SRSgpIC0tLQogICAgICAgICAgICBzdHJtLm5leHRfb3V0ID0gcHV0OwogICAgICAgICAgICBzdHJtLmF2YWlsX291dCA9IGxlZnQ7CiAgICAgICAgICAgIHN0cm0ubmV4dF9pbiA9IG5leHQ7CiAgICAgICAgICAgIHN0cm0uYXZhaWxfaW4gPSBoYXZlOwogICAgICAgICAgICBzdGF0ZS5ob2xkID0gaG9sZDsKICAgICAgICAgICAgc3RhdGUuYml0cyA9IGJpdHM7CiAgICAgICAgICAgIC8vLS0tCiAgICAgICAgICAgIHJldHVybiBaX05FRURfRElDVCQxOwogICAgICAgICAgfQogICAgICAgICAgc3RybS5hZGxlciA9IHN0YXRlLmNoZWNrID0gMS8qYWRsZXIzMigwTCwgWl9OVUxMLCAwKSovOwogICAgICAgICAgc3RhdGUubW9kZSA9IFRZUEU7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBUWVBFOgogICAgICAgICAgaWYgKGZsdXNoID09PSBaX0JMT0NLIHx8IGZsdXNoID09PSBaX1RSRUVTKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgVFlQRURPOgogICAgICAgICAgaWYgKHN0YXRlLmxhc3QpIHsKICAgICAgICAgICAgLy8tLS0gQllURUJJVFMoKSAtLS0vLwogICAgICAgICAgICBob2xkID4+Pj0gYml0cyAmIDc7CiAgICAgICAgICAgIGJpdHMgLT0gYml0cyAmIDc7CiAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgc3RhdGUubW9kZSA9IENIRUNLOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIC8vPT09IE5FRURCSVRTKDMpOyAqLwogICAgICAgICAgd2hpbGUgKGJpdHMgPCAzKSB7CiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICB9CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBzdGF0ZS5sYXN0ID0gKGhvbGQgJiAweDAxKS8qQklUUygxKSovOwogICAgICAgICAgLy8tLS0gRFJPUEJJVFMoMSkgLS0tLy8KICAgICAgICAgIGhvbGQgPj4+PSAxOwogICAgICAgICAgYml0cyAtPSAxOwogICAgICAgICAgLy8tLS0vLwoKICAgICAgICAgIHN3aXRjaCAoKGhvbGQgJiAweDAzKS8qQklUUygyKSovKSB7CiAgICAgICAgICAgIGNhc2UgMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0b3JlZCBibG9jayAqLwogICAgICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgc3RvcmVkIGJsb2NrJXNcbiIsCiAgICAgICAgICAgICAgLy8gICAgICAgIHN0YXRlLmxhc3QgPyAiIChsYXN0KSIgOiAiIikpOwogICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBTVE9SRUQ7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZpeGVkIGJsb2NrICovCiAgICAgICAgICAgICAgZml4ZWR0YWJsZXMoc3RhdGUpOwogICAgICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgZml4ZWQgY29kZXMgYmxvY2slc1xuIiwKICAgICAgICAgICAgICAvLyAgICAgICAgc3RhdGUubGFzdCA/ICIgKGxhc3QpIiA6ICIiKSk7CiAgICAgICAgICAgICAgc3RhdGUubW9kZSA9IExFTl87ICAgICAgICAgICAgIC8qIGRlY29kZSBjb2RlcyAqLwogICAgICAgICAgICAgIGlmIChmbHVzaCA9PT0gWl9UUkVFUykgewogICAgICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMoMikgLS0tLy8KICAgICAgICAgICAgICAgIGhvbGQgPj4+PSAyOwogICAgICAgICAgICAgICAgYml0cyAtPSAyOwogICAgICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICAgICAgYnJlYWsgaW5mX2xlYXZlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZHluYW1pYyBibG9jayAqLwogICAgICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgZHluYW1pYyBjb2RlcyBibG9jayVzXG4iLAogICAgICAgICAgICAgIC8vICAgICAgICBzdGF0ZS5sYXN0ID8gIiAobGFzdCkiIDogIiIpKTsKICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gVEFCTEU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGJsb2NrIHR5cGUnOwogICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICB9CiAgICAgICAgICAvLy0tLSBEUk9QQklUUygyKSAtLS0vLwogICAgICAgICAgaG9sZCA+Pj49IDI7CiAgICAgICAgICBiaXRzIC09IDI7CiAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIFNUT1JFRDoKICAgICAgICAgIC8vLS0tIEJZVEVCSVRTKCkgLS0tLy8gLyogZ28gdG8gYnl0ZSBib3VuZGFyeSAqLwogICAgICAgICAgaG9sZCA+Pj49IGJpdHMgJiA3OwogICAgICAgICAgYml0cyAtPSBiaXRzICYgNzsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIC8vPT09IE5FRURCSVRTKDMyKTsgKi8KICAgICAgICAgIHdoaWxlIChiaXRzIDwgMzIpIHsKICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgIH0KICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIGlmICgoaG9sZCAmIDB4ZmZmZikgIT09ICgoaG9sZCA+Pj4gMTYpIF4gMHhmZmZmKSkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzJzsKICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5sZW5ndGggPSBob2xkICYgMHhmZmZmOwogICAgICAgICAgLy9UcmFjZXYoKHN0ZGVyciwgImluZmxhdGU6ICAgICAgIHN0b3JlZCBsZW5ndGggJXVcbiIsCiAgICAgICAgICAvLyAgICAgICAgc3RhdGUubGVuZ3RoKSk7CiAgICAgICAgICAvLz09PSBJTklUQklUUygpOwogICAgICAgICAgaG9sZCA9IDA7CiAgICAgICAgICBiaXRzID0gMDsKICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIHN0YXRlLm1vZGUgPSBDT1BZXzsKICAgICAgICAgIGlmIChmbHVzaCA9PT0gWl9UUkVFUykgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIENPUFlfOgogICAgICAgICAgc3RhdGUubW9kZSA9IENPUFk7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBDT1BZOgogICAgICAgICAgY29weSA9IHN0YXRlLmxlbmd0aDsKICAgICAgICAgIGlmIChjb3B5KSB7CiAgICAgICAgICAgIGlmIChjb3B5ID4gaGF2ZSkgeyBjb3B5ID0gaGF2ZTsgfQogICAgICAgICAgICBpZiAoY29weSA+IGxlZnQpIHsgY29weSA9IGxlZnQ7IH0KICAgICAgICAgICAgaWYgKGNvcHkgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIC8vLS0tIHptZW1jcHkocHV0LCBuZXh0LCBjb3B5KTsgLS0tCiAgICAgICAgICAgIG91dHB1dC5zZXQoaW5wdXQuc3ViYXJyYXkobmV4dCwgbmV4dCArIGNvcHkpLCBwdXQpOwogICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgIGhhdmUgLT0gY29weTsKICAgICAgICAgICAgbmV4dCArPSBjb3B5OwogICAgICAgICAgICBsZWZ0IC09IGNvcHk7CiAgICAgICAgICAgIHB1dCArPSBjb3B5OwogICAgICAgICAgICBzdGF0ZS5sZW5ndGggLT0gY29weTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICAvL1RyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogICAgICAgc3RvcmVkIGVuZFxuIikpOwogICAgICAgICAgc3RhdGUubW9kZSA9IFRZUEU7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIFRBQkxFOgogICAgICAgICAgLy89PT0gTkVFREJJVFMoMTQpOyAqLwogICAgICAgICAgd2hpbGUgKGJpdHMgPCAxNCkgewogICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgfQogICAgICAgICAgLy89PT0vLwogICAgICAgICAgc3RhdGUubmxlbiA9IChob2xkICYgMHgxZikvKkJJVFMoNSkqLyArIDI1NzsKICAgICAgICAgIC8vLS0tIERST1BCSVRTKDUpIC0tLS8vCiAgICAgICAgICBob2xkID4+Pj0gNTsKICAgICAgICAgIGJpdHMgLT0gNTsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIHN0YXRlLm5kaXN0ID0gKGhvbGQgJiAweDFmKS8qQklUUyg1KSovICsgMTsKICAgICAgICAgIC8vLS0tIERST1BCSVRTKDUpIC0tLS8vCiAgICAgICAgICBob2xkID4+Pj0gNTsKICAgICAgICAgIGJpdHMgLT0gNTsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIHN0YXRlLm5jb2RlID0gKGhvbGQgJiAweDBmKS8qQklUUyg0KSovICsgNDsKICAgICAgICAgIC8vLS0tIERST1BCSVRTKDQpIC0tLS8vCiAgICAgICAgICBob2xkID4+Pj0gNDsKICAgICAgICAgIGJpdHMgLT0gNDsKICAgICAgICAgIC8vLS0tLy8KICAvLyNpZm5kZWYgUEtaSVBfQlVHX1dPUktBUk9VTkQKICAgICAgICAgIGlmIChzdGF0ZS5ubGVuID4gMjg2IHx8IHN0YXRlLm5kaXN0ID4gMzApIHsKICAgICAgICAgICAgc3RybS5tc2cgPSAndG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMnOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAvLyNlbmRpZgogICAgICAgICAgLy9UcmFjZXYoKHN0ZGVyciwgImluZmxhdGU6ICAgICAgIHRhYmxlIHNpemVzIG9rXG4iKSk7CiAgICAgICAgICBzdGF0ZS5oYXZlID0gMDsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBMRU5MRU5TOwogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgTEVOTEVOUzoKICAgICAgICAgIHdoaWxlIChzdGF0ZS5oYXZlIDwgc3RhdGUubmNvZGUpIHsKICAgICAgICAgICAgLy89PT0gTkVFREJJVFMoMyk7CiAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgMykgewogICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICBzdGF0ZS5sZW5zW29yZGVyW3N0YXRlLmhhdmUrK11dID0gKGhvbGQgJiAweDA3KTsvL0JJVFMoMyk7CiAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKDMpIC0tLS8vCiAgICAgICAgICAgIGhvbGQgPj4+PSAzOwogICAgICAgICAgICBiaXRzIC09IDM7CiAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIH0KICAgICAgICAgIHdoaWxlIChzdGF0ZS5oYXZlIDwgMTkpIHsKICAgICAgICAgICAgc3RhdGUubGVuc1tvcmRlcltzdGF0ZS5oYXZlKytdXSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICAvLyBXZSBoYXZlIHNlcGFyYXRlIHRhYmxlcyAmIG5vIHBvaW50ZXJzLiAyIGNvbW1lbnRlZCBsaW5lcyBiZWxvdyBub3QgbmVlZGVkLgogICAgICAgICAgLy9zdGF0ZS5uZXh0ID0gc3RhdGUuY29kZXM7CiAgICAgICAgICAvL3N0YXRlLmxlbmNvZGUgPSBzdGF0ZS5uZXh0OwogICAgICAgICAgLy8gU3dpdGNoIHRvIHVzZSBkeW5hbWljIHRhYmxlCiAgICAgICAgICBzdGF0ZS5sZW5jb2RlID0gc3RhdGUubGVuZHluOwogICAgICAgICAgc3RhdGUubGVuYml0cyA9IDc7CgogICAgICAgICAgb3B0cyA9IHsgYml0czogc3RhdGUubGVuYml0cyB9OwogICAgICAgICAgcmV0ID0gaW5mdHJlZXMoQ09ERVMsIHN0YXRlLmxlbnMsIDAsIDE5LCBzdGF0ZS5sZW5jb2RlLCAwLCBzdGF0ZS53b3JrLCBvcHRzKTsKICAgICAgICAgIHN0YXRlLmxlbmJpdHMgPSBvcHRzLmJpdHM7CgogICAgICAgICAgaWYgKHJldCkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQnOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgICBjb2RlIGxlbmd0aHMgb2tcbiIpKTsKICAgICAgICAgIHN0YXRlLmhhdmUgPSAwOwogICAgICAgICAgc3RhdGUubW9kZSA9IENPREVMRU5TOwogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgQ09ERUxFTlM6CiAgICAgICAgICB3aGlsZSAoc3RhdGUuaGF2ZSA8IHN0YXRlLm5sZW4gKyBzdGF0ZS5uZGlzdCkgewogICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgaGVyZSA9IHN0YXRlLmxlbmNvZGVbaG9sZCAmICgoMSA8PCBzdGF0ZS5sZW5iaXRzKSAtIDEpXTsvKkJJVFMoc3RhdGUubGVuYml0cykqLwogICAgICAgICAgICAgIGhlcmVfYml0cyA9IGhlcmUgPj4+IDI0OwogICAgICAgICAgICAgIGhlcmVfb3AgPSAoaGVyZSA+Pj4gMTYpICYgMHhmZjsKICAgICAgICAgICAgICBoZXJlX3ZhbCA9IGhlcmUgJiAweGZmZmY7CgogICAgICAgICAgICAgIGlmICgoaGVyZV9iaXRzKSA8PSBiaXRzKSB7IGJyZWFrOyB9CiAgICAgICAgICAgICAgLy8tLS0gUFVMTEJZVEUoKSAtLS0vLwogICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChoZXJlX3ZhbCA8IDE2KSB7CiAgICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMoaGVyZS5iaXRzKSAtLS0vLwogICAgICAgICAgICAgIGhvbGQgPj4+PSBoZXJlX2JpdHM7CiAgICAgICAgICAgICAgYml0cyAtPSBoZXJlX2JpdHM7CiAgICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICAgIHN0YXRlLmxlbnNbc3RhdGUuaGF2ZSsrXSA9IGhlcmVfdmFsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIGlmIChoZXJlX3ZhbCA9PT0gMTYpIHsKICAgICAgICAgICAgICAgIC8vPT09IE5FRURCSVRTKGhlcmUuYml0cyArIDIpOwogICAgICAgICAgICAgICAgbiA9IGhlcmVfYml0cyArIDI7CiAgICAgICAgICAgICAgICB3aGlsZSAoYml0cyA8IG4pIHsKICAgICAgICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICAgICAgICAgIGhvbGQgPj4+PSBoZXJlX2JpdHM7CiAgICAgICAgICAgICAgICBiaXRzIC09IGhlcmVfYml0czsKICAgICAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5oYXZlID09PSAwKSB7CiAgICAgICAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgYml0IGxlbmd0aCByZXBlYXQnOwogICAgICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGxlbiA9IHN0YXRlLmxlbnNbc3RhdGUuaGF2ZSAtIDFdOwogICAgICAgICAgICAgICAgY29weSA9IDMgKyAoaG9sZCAmIDB4MDMpOy8vQklUUygyKTsKICAgICAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKDIpIC0tLS8vCiAgICAgICAgICAgICAgICBob2xkID4+Pj0gMjsKICAgICAgICAgICAgICAgIGJpdHMgLT0gMjsKICAgICAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSBpZiAoaGVyZV92YWwgPT09IDE3KSB7CiAgICAgICAgICAgICAgICAvLz09PSBORUVEQklUUyhoZXJlLmJpdHMgKyAzKTsKICAgICAgICAgICAgICAgIG4gPSBoZXJlX2JpdHMgKyAzOwogICAgICAgICAgICAgICAgd2hpbGUgKGJpdHMgPCBuKSB7CiAgICAgICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLz09PS8vCiAgICAgICAgICAgICAgICAvLy0tLSBEUk9QQklUUyhoZXJlLmJpdHMpIC0tLS8vCiAgICAgICAgICAgICAgICBob2xkID4+Pj0gaGVyZV9iaXRzOwogICAgICAgICAgICAgICAgYml0cyAtPSBoZXJlX2JpdHM7CiAgICAgICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgICAgICBsZW4gPSAwOwogICAgICAgICAgICAgICAgY29weSA9IDMgKyAoaG9sZCAmIDB4MDcpOy8vQklUUygzKTsKICAgICAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKDMpIC0tLS8vCiAgICAgICAgICAgICAgICBob2xkID4+Pj0gMzsKICAgICAgICAgICAgICAgIGJpdHMgLT0gMzsKICAgICAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLz09PSBORUVEQklUUyhoZXJlLmJpdHMgKyA3KTsKICAgICAgICAgICAgICAgIG4gPSBoZXJlX2JpdHMgKyA3OwogICAgICAgICAgICAgICAgd2hpbGUgKGJpdHMgPCBuKSB7CiAgICAgICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLz09PS8vCiAgICAgICAgICAgICAgICAvLy0tLSBEUk9QQklUUyhoZXJlLmJpdHMpIC0tLS8vCiAgICAgICAgICAgICAgICBob2xkID4+Pj0gaGVyZV9iaXRzOwogICAgICAgICAgICAgICAgYml0cyAtPSBoZXJlX2JpdHM7CiAgICAgICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgICAgICBsZW4gPSAwOwogICAgICAgICAgICAgICAgY29weSA9IDExICsgKGhvbGQgJiAweDdmKTsvL0JJVFMoNyk7CiAgICAgICAgICAgICAgICAvLy0tLSBEUk9QQklUUyg3KSAtLS0vLwogICAgICAgICAgICAgICAgaG9sZCA+Pj49IDc7CiAgICAgICAgICAgICAgICBiaXRzIC09IDc7CiAgICAgICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChzdGF0ZS5oYXZlICsgY29weSA+IHN0YXRlLm5sZW4gKyBzdGF0ZS5uZGlzdCkgewogICAgICAgICAgICAgICAgc3RybS5tc2cgPSAnaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCc7CiAgICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHdoaWxlIChjb3B5LS0pIHsKICAgICAgICAgICAgICAgIHN0YXRlLmxlbnNbc3RhdGUuaGF2ZSsrXSA9IGxlbjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KCiAgICAgICAgICAvKiBoYW5kbGUgZXJyb3IgYnJlYWtzIGluIHdoaWxlICovCiAgICAgICAgICBpZiAoc3RhdGUubW9kZSA9PT0gQkFEKSB7IGJyZWFrOyB9CgogICAgICAgICAgLyogY2hlY2sgZm9yIGVuZC1vZi1ibG9jayBjb2RlIChiZXR0ZXIgaGF2ZSBvbmUpICovCiAgICAgICAgICBpZiAoc3RhdGUubGVuc1syNTZdID09PSAwKSB7CiAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jayc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQoKICAgICAgICAgIC8qIGJ1aWxkIGNvZGUgdGFibGVzIC0tIG5vdGU6IGRvIG5vdCBjaGFuZ2UgdGhlIGxlbmJpdHMgb3IgZGlzdGJpdHMKICAgICAgICAgICAgIHZhbHVlcyBoZXJlICg5IGFuZCA2KSB3aXRob3V0IHJlYWRpbmcgdGhlIGNvbW1lbnRzIGluIGluZnRyZWVzLmgKICAgICAgICAgICAgIGNvbmNlcm5pbmcgdGhlIEVOT1VHSCBjb25zdGFudHMsIHdoaWNoIGRlcGVuZCBvbiB0aG9zZSB2YWx1ZXMgKi8KICAgICAgICAgIHN0YXRlLmxlbmJpdHMgPSA5OwoKICAgICAgICAgIG9wdHMgPSB7IGJpdHM6IHN0YXRlLmxlbmJpdHMgfTsKICAgICAgICAgIHJldCA9IGluZnRyZWVzKExFTlMsIHN0YXRlLmxlbnMsIDAsIHN0YXRlLm5sZW4sIHN0YXRlLmxlbmNvZGUsIDAsIHN0YXRlLndvcmssIG9wdHMpOwogICAgICAgICAgLy8gV2UgaGF2ZSBzZXBhcmF0ZSB0YWJsZXMgJiBubyBwb2ludGVycy4gMiBjb21tZW50ZWQgbGluZXMgYmVsb3cgbm90IG5lZWRlZC4KICAgICAgICAgIC8vIHN0YXRlLm5leHRfaW5kZXggPSBvcHRzLnRhYmxlX2luZGV4OwogICAgICAgICAgc3RhdGUubGVuYml0cyA9IG9wdHMuYml0czsKICAgICAgICAgIC8vIHN0YXRlLmxlbmNvZGUgPSBzdGF0ZS5uZXh0OwoKICAgICAgICAgIGlmIChyZXQpIHsKICAgICAgICAgICAgc3RybS5tc2cgPSAnaW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0JzsKICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CgogICAgICAgICAgc3RhdGUuZGlzdGJpdHMgPSA2OwogICAgICAgICAgLy9zdGF0ZS5kaXN0Y29kZS5jb3B5KHN0YXRlLmNvZGVzKTsKICAgICAgICAgIC8vIFN3aXRjaCB0byB1c2UgZHluYW1pYyB0YWJsZQogICAgICAgICAgc3RhdGUuZGlzdGNvZGUgPSBzdGF0ZS5kaXN0ZHluOwogICAgICAgICAgb3B0cyA9IHsgYml0czogc3RhdGUuZGlzdGJpdHMgfTsKICAgICAgICAgIHJldCA9IGluZnRyZWVzKERJU1RTLCBzdGF0ZS5sZW5zLCBzdGF0ZS5ubGVuLCBzdGF0ZS5uZGlzdCwgc3RhdGUuZGlzdGNvZGUsIDAsIHN0YXRlLndvcmssIG9wdHMpOwogICAgICAgICAgLy8gV2UgaGF2ZSBzZXBhcmF0ZSB0YWJsZXMgJiBubyBwb2ludGVycy4gMiBjb21tZW50ZWQgbGluZXMgYmVsb3cgbm90IG5lZWRlZC4KICAgICAgICAgIC8vIHN0YXRlLm5leHRfaW5kZXggPSBvcHRzLnRhYmxlX2luZGV4OwogICAgICAgICAgc3RhdGUuZGlzdGJpdHMgPSBvcHRzLmJpdHM7CiAgICAgICAgICAvLyBzdGF0ZS5kaXN0Y29kZSA9IHN0YXRlLm5leHQ7CgogICAgICAgICAgaWYgKHJldCkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGRpc3RhbmNlcyBzZXQnOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICdpbmZsYXRlOiAgICAgICBjb2RlcyBva1xuJykpOwogICAgICAgICAgc3RhdGUubW9kZSA9IExFTl87CiAgICAgICAgICBpZiAoZmx1c2ggPT09IFpfVFJFRVMpIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBMRU5fOgogICAgICAgICAgc3RhdGUubW9kZSA9IExFTjsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIExFTjoKICAgICAgICAgIGlmIChoYXZlID49IDYgJiYgbGVmdCA+PSAyNTgpIHsKICAgICAgICAgICAgLy8tLS0gUkVTVE9SRSgpIC0tLQogICAgICAgICAgICBzdHJtLm5leHRfb3V0ID0gcHV0OwogICAgICAgICAgICBzdHJtLmF2YWlsX291dCA9IGxlZnQ7CiAgICAgICAgICAgIHN0cm0ubmV4dF9pbiA9IG5leHQ7CiAgICAgICAgICAgIHN0cm0uYXZhaWxfaW4gPSBoYXZlOwogICAgICAgICAgICBzdGF0ZS5ob2xkID0gaG9sZDsKICAgICAgICAgICAgc3RhdGUuYml0cyA9IGJpdHM7CiAgICAgICAgICAgIC8vLS0tCiAgICAgICAgICAgIGluZmZhc3Qoc3RybSwgX291dCk7CiAgICAgICAgICAgIC8vLS0tIExPQUQoKSAtLS0KICAgICAgICAgICAgcHV0ID0gc3RybS5uZXh0X291dDsKICAgICAgICAgICAgb3V0cHV0ID0gc3RybS5vdXRwdXQ7CiAgICAgICAgICAgIGxlZnQgPSBzdHJtLmF2YWlsX291dDsKICAgICAgICAgICAgbmV4dCA9IHN0cm0ubmV4dF9pbjsKICAgICAgICAgICAgaW5wdXQgPSBzdHJtLmlucHV0OwogICAgICAgICAgICBoYXZlID0gc3RybS5hdmFpbF9pbjsKICAgICAgICAgICAgaG9sZCA9IHN0YXRlLmhvbGQ7CiAgICAgICAgICAgIGJpdHMgPSBzdGF0ZS5iaXRzOwogICAgICAgICAgICAvLy0tLQoKICAgICAgICAgICAgaWYgKHN0YXRlLm1vZGUgPT09IFRZUEUpIHsKICAgICAgICAgICAgICBzdGF0ZS5iYWNrID0gLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5iYWNrID0gMDsKICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgaGVyZSA9IHN0YXRlLmxlbmNvZGVbaG9sZCAmICgoMSA8PCBzdGF0ZS5sZW5iaXRzKSAtIDEpXTsgIC8qQklUUyhzdGF0ZS5sZW5iaXRzKSovCiAgICAgICAgICAgIGhlcmVfYml0cyA9IGhlcmUgPj4+IDI0OwogICAgICAgICAgICBoZXJlX29wID0gKGhlcmUgPj4+IDE2KSAmIDB4ZmY7CiAgICAgICAgICAgIGhlcmVfdmFsID0gaGVyZSAmIDB4ZmZmZjsKCiAgICAgICAgICAgIGlmIChoZXJlX2JpdHMgPD0gYml0cykgeyBicmVhazsgfQogICAgICAgICAgICAvLy0tLSBQVUxMQllURSgpIC0tLS8vCiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIH0KICAgICAgICAgIGlmIChoZXJlX29wICYmIChoZXJlX29wICYgMHhmMCkgPT09IDApIHsKICAgICAgICAgICAgbGFzdF9iaXRzID0gaGVyZV9iaXRzOwogICAgICAgICAgICBsYXN0X29wID0gaGVyZV9vcDsKICAgICAgICAgICAgbGFzdF92YWwgPSBoZXJlX3ZhbDsKICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgIGhlcmUgPSBzdGF0ZS5sZW5jb2RlW2xhc3RfdmFsICsKICAgICAgICAgICAgICAgICAgICAgICgoaG9sZCAmICgoMSA8PCAobGFzdF9iaXRzICsgbGFzdF9vcCkpIC0gMSkpLypCSVRTKGxhc3QuYml0cyArIGxhc3Qub3ApKi8gPj4gbGFzdF9iaXRzKV07CiAgICAgICAgICAgICAgaGVyZV9iaXRzID0gaGVyZSA+Pj4gMjQ7CiAgICAgICAgICAgICAgaGVyZV9vcCA9IChoZXJlID4+PiAxNikgJiAweGZmOwogICAgICAgICAgICAgIGhlcmVfdmFsID0gaGVyZSAmIDB4ZmZmZjsKCiAgICAgICAgICAgICAgaWYgKChsYXN0X2JpdHMgKyBoZXJlX2JpdHMpIDw9IGJpdHMpIHsgYnJlYWs7IH0KICAgICAgICAgICAgICAvLy0tLSBQVUxMQllURSgpIC0tLS8vCiAgICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMobGFzdC5iaXRzKSAtLS0vLwogICAgICAgICAgICBob2xkID4+Pj0gbGFzdF9iaXRzOwogICAgICAgICAgICBiaXRzIC09IGxhc3RfYml0czsKICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICBzdGF0ZS5iYWNrICs9IGxhc3RfYml0czsKICAgICAgICAgIH0KICAgICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICAgIGhvbGQgPj4+PSBoZXJlX2JpdHM7CiAgICAgICAgICBiaXRzIC09IGhlcmVfYml0czsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIHN0YXRlLmJhY2sgKz0gaGVyZV9iaXRzOwogICAgICAgICAgc3RhdGUubGVuZ3RoID0gaGVyZV92YWw7CiAgICAgICAgICBpZiAoaGVyZV9vcCA9PT0gMCkgewogICAgICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwgaGVyZS52YWwgPj0gMHgyMCAmJiBoZXJlLnZhbCA8IDB4N2YgPwogICAgICAgICAgICAvLyAgICAgICAgImluZmxhdGU6ICAgICAgICAgbGl0ZXJhbCAnJWMnXG4iIDoKICAgICAgICAgICAgLy8gICAgICAgICJpbmZsYXRlOiAgICAgICAgIGxpdGVyYWwgMHglMDJ4XG4iLCBoZXJlLnZhbCkpOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gTElUOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChoZXJlX29wICYgMzIpIHsKICAgICAgICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgICAgIGVuZCBvZiBibG9ja1xuIikpOwogICAgICAgICAgICBzdGF0ZS5iYWNrID0gLTE7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBUWVBFOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChoZXJlX29wICYgNjQpIHsKICAgICAgICAgICAgc3RybS5tc2cgPSAnaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlJzsKICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5leHRyYSA9IGhlcmVfb3AgJiAxNTsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBMRU5FWFQ7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBMRU5FWFQ6CiAgICAgICAgICBpZiAoc3RhdGUuZXh0cmEpIHsKICAgICAgICAgICAgLy89PT0gTkVFREJJVFMoc3RhdGUuZXh0cmEpOwogICAgICAgICAgICBuID0gc3RhdGUuZXh0cmE7CiAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgbikgewogICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICBzdGF0ZS5sZW5ndGggKz0gaG9sZCAmICgoMSA8PCBzdGF0ZS5leHRyYSkgLSAxKS8qQklUUyhzdGF0ZS5leHRyYSkqLzsKICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMoc3RhdGUuZXh0cmEpIC0tLS8vCiAgICAgICAgICAgIGhvbGQgPj4+PSBzdGF0ZS5leHRyYTsKICAgICAgICAgICAgYml0cyAtPSBzdGF0ZS5leHRyYTsKICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICBzdGF0ZS5iYWNrICs9IHN0YXRlLmV4dHJhOwogICAgICAgICAgfQogICAgICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgICAgIGxlbmd0aCAldVxuIiwgc3RhdGUubGVuZ3RoKSk7CiAgICAgICAgICBzdGF0ZS53YXMgPSBzdGF0ZS5sZW5ndGg7CiAgICAgICAgICBzdGF0ZS5tb2RlID0gRElTVDsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIERJU1Q6CiAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgIGhlcmUgPSBzdGF0ZS5kaXN0Y29kZVtob2xkICYgKCgxIDw8IHN0YXRlLmRpc3RiaXRzKSAtIDEpXTsvKkJJVFMoc3RhdGUuZGlzdGJpdHMpKi8KICAgICAgICAgICAgaGVyZV9iaXRzID0gaGVyZSA+Pj4gMjQ7CiAgICAgICAgICAgIGhlcmVfb3AgPSAoaGVyZSA+Pj4gMTYpICYgMHhmZjsKICAgICAgICAgICAgaGVyZV92YWwgPSBoZXJlICYgMHhmZmZmOwoKICAgICAgICAgICAgaWYgKChoZXJlX2JpdHMpIDw9IGJpdHMpIHsgYnJlYWs7IH0KICAgICAgICAgICAgLy8tLS0gUFVMTEJZVEUoKSAtLS0vLwogICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICB9CiAgICAgICAgICBpZiAoKGhlcmVfb3AgJiAweGYwKSA9PT0gMCkgewogICAgICAgICAgICBsYXN0X2JpdHMgPSBoZXJlX2JpdHM7CiAgICAgICAgICAgIGxhc3Rfb3AgPSBoZXJlX29wOwogICAgICAgICAgICBsYXN0X3ZhbCA9IGhlcmVfdmFsOwogICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgaGVyZSA9IHN0YXRlLmRpc3Rjb2RlW2xhc3RfdmFsICsKICAgICAgICAgICAgICAgICAgICAgICgoaG9sZCAmICgoMSA8PCAobGFzdF9iaXRzICsgbGFzdF9vcCkpIC0gMSkpLypCSVRTKGxhc3QuYml0cyArIGxhc3Qub3ApKi8gPj4gbGFzdF9iaXRzKV07CiAgICAgICAgICAgICAgaGVyZV9iaXRzID0gaGVyZSA+Pj4gMjQ7CiAgICAgICAgICAgICAgaGVyZV9vcCA9IChoZXJlID4+PiAxNikgJiAweGZmOwogICAgICAgICAgICAgIGhlcmVfdmFsID0gaGVyZSAmIDB4ZmZmZjsKCiAgICAgICAgICAgICAgaWYgKChsYXN0X2JpdHMgKyBoZXJlX2JpdHMpIDw9IGJpdHMpIHsgYnJlYWs7IH0KICAgICAgICAgICAgICAvLy0tLSBQVUxMQllURSgpIC0tLS8vCiAgICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMobGFzdC5iaXRzKSAtLS0vLwogICAgICAgICAgICBob2xkID4+Pj0gbGFzdF9iaXRzOwogICAgICAgICAgICBiaXRzIC09IGxhc3RfYml0czsKICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICBzdGF0ZS5iYWNrICs9IGxhc3RfYml0czsKICAgICAgICAgIH0KICAgICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICAgIGhvbGQgPj4+PSBoZXJlX2JpdHM7CiAgICAgICAgICBiaXRzIC09IGhlcmVfYml0czsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIHN0YXRlLmJhY2sgKz0gaGVyZV9iaXRzOwogICAgICAgICAgaWYgKGhlcmVfb3AgJiA2NCkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGRpc3RhbmNlIGNvZGUnOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlLm9mZnNldCA9IGhlcmVfdmFsOwogICAgICAgICAgc3RhdGUuZXh0cmEgPSAoaGVyZV9vcCkgJiAxNTsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBESVNURVhUOwogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgRElTVEVYVDoKICAgICAgICAgIGlmIChzdGF0ZS5leHRyYSkgewogICAgICAgICAgICAvLz09PSBORUVEQklUUyhzdGF0ZS5leHRyYSk7CiAgICAgICAgICAgIG4gPSBzdGF0ZS5leHRyYTsKICAgICAgICAgICAgd2hpbGUgKGJpdHMgPCBuKSB7CiAgICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLz09PS8vCiAgICAgICAgICAgIHN0YXRlLm9mZnNldCArPSBob2xkICYgKCgxIDw8IHN0YXRlLmV4dHJhKSAtIDEpLypCSVRTKHN0YXRlLmV4dHJhKSovOwogICAgICAgICAgICAvLy0tLSBEUk9QQklUUyhzdGF0ZS5leHRyYSkgLS0tLy8KICAgICAgICAgICAgaG9sZCA+Pj49IHN0YXRlLmV4dHJhOwogICAgICAgICAgICBiaXRzIC09IHN0YXRlLmV4dHJhOwogICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgIHN0YXRlLmJhY2sgKz0gc3RhdGUuZXh0cmE7CiAgICAgICAgICB9CiAgLy8jaWZkZWYgSU5GTEFURV9TVFJJQ1QKICAgICAgICAgIGlmIChzdGF0ZS5vZmZzZXQgPiBzdGF0ZS5kbWF4KSB7CiAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrJzsKICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgLy8jZW5kaWYKICAgICAgICAgIC8vVHJhY2V2digoc3RkZXJyLCAiaW5mbGF0ZTogICAgICAgICBkaXN0YW5jZSAldVxuIiwgc3RhdGUub2Zmc2V0KSk7CiAgICAgICAgICBzdGF0ZS5tb2RlID0gTUFUQ0g7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBNQVRDSDoKICAgICAgICAgIGlmIChsZWZ0ID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgY29weSA9IF9vdXQgLSBsZWZ0OwogICAgICAgICAgaWYgKHN0YXRlLm9mZnNldCA+IGNvcHkpIHsgICAgICAgICAvKiBjb3B5IGZyb20gd2luZG93ICovCiAgICAgICAgICAgIGNvcHkgPSBzdGF0ZS5vZmZzZXQgLSBjb3B5OwogICAgICAgICAgICBpZiAoY29weSA+IHN0YXRlLndoYXZlKSB7CiAgICAgICAgICAgICAgaWYgKHN0YXRlLnNhbmUpIHsKICAgICAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrJzsKICAgICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgLy8gKCEpIFRoaXMgYmxvY2sgaXMgZGlzYWJsZWQgaW4gemxpYiBkZWZhdWx0cywKICAvLyBkb24ndCBlbmFibGUgaXQgZm9yIGJpbmFyeSBjb21wYXRpYmlsaXR5CiAgLy8jaWZkZWYgSU5GTEFURV9BTExPV19JTlZBTElEX0RJU1RBTkNFX1RPT0ZBUl9BUlJSCiAgLy8gICAgICAgICAgVHJhY2UoKHN0ZGVyciwgImluZmxhdGUuYyB0b28gZmFyXG4iKSk7CiAgLy8gICAgICAgICAgY29weSAtPSBzdGF0ZS53aGF2ZTsKICAvLyAgICAgICAgICBpZiAoY29weSA+IHN0YXRlLmxlbmd0aCkgeyBjb3B5ID0gc3RhdGUubGVuZ3RoOyB9CiAgLy8gICAgICAgICAgaWYgKGNvcHkgPiBsZWZ0KSB7IGNvcHkgPSBsZWZ0OyB9CiAgLy8gICAgICAgICAgbGVmdCAtPSBjb3B5OwogIC8vICAgICAgICAgIHN0YXRlLmxlbmd0aCAtPSBjb3B5OwogIC8vICAgICAgICAgIGRvIHsKICAvLyAgICAgICAgICAgIG91dHB1dFtwdXQrK10gPSAwOwogIC8vICAgICAgICAgIH0gd2hpbGUgKC0tY29weSk7CiAgLy8gICAgICAgICAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCkgeyBzdGF0ZS5tb2RlID0gTEVOOyB9CiAgLy8gICAgICAgICAgYnJlYWs7CiAgLy8jZW5kaWYKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoY29weSA+IHN0YXRlLnduZXh0KSB7CiAgICAgICAgICAgICAgY29weSAtPSBzdGF0ZS53bmV4dDsKICAgICAgICAgICAgICBmcm9tID0gc3RhdGUud3NpemUgLSBjb3B5OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIGZyb20gPSBzdGF0ZS53bmV4dCAtIGNvcHk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvcHkgPiBzdGF0ZS5sZW5ndGgpIHsgY29weSA9IHN0YXRlLmxlbmd0aDsgfQogICAgICAgICAgICBmcm9tX3NvdXJjZSA9IHN0YXRlLndpbmRvdzsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvcHkgZnJvbSBvdXRwdXQgKi8KICAgICAgICAgICAgZnJvbV9zb3VyY2UgPSBvdXRwdXQ7CiAgICAgICAgICAgIGZyb20gPSBwdXQgLSBzdGF0ZS5vZmZzZXQ7CiAgICAgICAgICAgIGNvcHkgPSBzdGF0ZS5sZW5ndGg7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY29weSA+IGxlZnQpIHsgY29weSA9IGxlZnQ7IH0KICAgICAgICAgIGxlZnQgLT0gY29weTsKICAgICAgICAgIHN0YXRlLmxlbmd0aCAtPSBjb3B5OwogICAgICAgICAgZG8gewogICAgICAgICAgICBvdXRwdXRbcHV0KytdID0gZnJvbV9zb3VyY2VbZnJvbSsrXTsKICAgICAgICAgIH0gd2hpbGUgKC0tY29weSk7CiAgICAgICAgICBpZiAoc3RhdGUubGVuZ3RoID09PSAwKSB7IHN0YXRlLm1vZGUgPSBMRU47IH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgTElUOgogICAgICAgICAgaWYgKGxlZnQgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICBvdXRwdXRbcHV0KytdID0gc3RhdGUubGVuZ3RoOwogICAgICAgICAgbGVmdC0tOwogICAgICAgICAgc3RhdGUubW9kZSA9IExFTjsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgQ0hFQ0s6CiAgICAgICAgICBpZiAoc3RhdGUud3JhcCkgewogICAgICAgICAgICAvLz09PSBORUVEQklUUygzMik7CiAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgMzIpIHsKICAgICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgLy8gVXNlICd8JyBpbnN0ZWFkIG9mICcrJyB0byBtYWtlIHN1cmUgdGhhdCByZXN1bHQgaXMgc2lnbmVkCiAgICAgICAgICAgICAgaG9sZCB8PSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgICAgX291dCAtPSBsZWZ0OwogICAgICAgICAgICBzdHJtLnRvdGFsX291dCArPSBfb3V0OwogICAgICAgICAgICBzdGF0ZS50b3RhbCArPSBfb3V0OwogICAgICAgICAgICBpZiAoX291dCkgewogICAgICAgICAgICAgIHN0cm0uYWRsZXIgPSBzdGF0ZS5jaGVjayA9CiAgICAgICAgICAgICAgICAgIC8qVVBEQVRFKHN0YXRlLmNoZWNrLCBwdXQgLSBfb3V0LCBfb3V0KTsqLwogICAgICAgICAgICAgICAgICAoc3RhdGUuZmxhZ3MgPyBjcmMzMl8xKHN0YXRlLmNoZWNrLCBvdXRwdXQsIF9vdXQsIHB1dCAtIF9vdXQpIDogYWRsZXIzMl8xKHN0YXRlLmNoZWNrLCBvdXRwdXQsIF9vdXQsIHB1dCAtIF9vdXQpKTsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgX291dCA9IGxlZnQ7CiAgICAgICAgICAgIC8vIE5COiBjcmMzMiBzdG9yZWQgYXMgc2lnbmVkIDMyLWJpdCBpbnQsIHpzd2FwMzIgcmV0dXJucyBzaWduZWQgdG9vCiAgICAgICAgICAgIGlmICgoc3RhdGUuZmxhZ3MgPyBob2xkIDogenN3YXAzMihob2xkKSkgIT09IHN0YXRlLmNoZWNrKSB7CiAgICAgICAgICAgICAgc3RybS5tc2cgPSAnaW5jb3JyZWN0IGRhdGEgY2hlY2snOwogICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy89PT0gSU5JVEJJVFMoKTsKICAgICAgICAgICAgaG9sZCA9IDA7CiAgICAgICAgICAgIGJpdHMgPSAwOwogICAgICAgICAgICAvLz09PS8vCiAgICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgIGNoZWNrIG1hdGNoZXMgdHJhaWxlclxuIikpOwogICAgICAgICAgfQogICAgICAgICAgc3RhdGUubW9kZSA9IExFTkdUSDsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIExFTkdUSDoKICAgICAgICAgIGlmIChzdGF0ZS53cmFwICYmIHN0YXRlLmZsYWdzKSB7CiAgICAgICAgICAgIC8vPT09IE5FRURCSVRTKDMyKTsKICAgICAgICAgICAgd2hpbGUgKGJpdHMgPCAzMikgewogICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICBpZiAoaG9sZCAhPT0gKHN0YXRlLnRvdGFsICYgMHhmZmZmZmZmZikpIHsKICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrJzsKICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgICBiaXRzID0gMDsKICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICAvL1RyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogICBsZW5ndGggbWF0Y2hlcyB0cmFpbGVyXG4iKSk7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5tb2RlID0gRE9ORTsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIERPTkU6CiAgICAgICAgICByZXQgPSBaX1NUUkVBTV9FTkQkMTsKICAgICAgICAgIGJyZWFrIGluZl9sZWF2ZTsKICAgICAgICBjYXNlIEJBRDoKICAgICAgICAgIHJldCA9IFpfREFUQV9FUlJPUiQxOwogICAgICAgICAgYnJlYWsgaW5mX2xlYXZlOwogICAgICAgIGNhc2UgTUVNOgogICAgICAgICAgcmV0dXJuIFpfTUVNX0VSUk9SJDE7CiAgICAgICAgY2FzZSBTWU5DOgogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gWl9TVFJFQU1fRVJST1IkMTsKICAgICAgfQogICAgfQoKICAgIC8vIGluZl9sZWF2ZSA8LSBoZXJlIGlzIHJlYWwgcGxhY2UgZm9yICJnb3RvIGluZl9sZWF2ZSIsIGVtdWxhdGVkIHZpYSAiYnJlYWsgaW5mX2xlYXZlIgoKICAgIC8qCiAgICAgICBSZXR1cm4gZnJvbSBpbmZsYXRlKCksIHVwZGF0aW5nIHRoZSB0b3RhbCBjb3VudHMgYW5kIHRoZSBjaGVjayB2YWx1ZS4KICAgICAgIElmIHRoZXJlIHdhcyBubyBwcm9ncmVzcyBkdXJpbmcgdGhlIGluZmxhdGUoKSBjYWxsLCByZXR1cm4gYSBidWZmZXIKICAgICAgIGVycm9yLiAgQ2FsbCB1cGRhdGV3aW5kb3coKSB0byBjcmVhdGUgYW5kL29yIHVwZGF0ZSB0aGUgd2luZG93IHN0YXRlLgogICAgICAgTm90ZTogYSBtZW1vcnkgZXJyb3IgZnJvbSBpbmZsYXRlKCkgaXMgbm9uLXJlY292ZXJhYmxlLgogICAgICovCgogICAgLy8tLS0gUkVTVE9SRSgpIC0tLQogICAgc3RybS5uZXh0X291dCA9IHB1dDsKICAgIHN0cm0uYXZhaWxfb3V0ID0gbGVmdDsKICAgIHN0cm0ubmV4dF9pbiA9IG5leHQ7CiAgICBzdHJtLmF2YWlsX2luID0gaGF2ZTsKICAgIHN0YXRlLmhvbGQgPSBob2xkOwogICAgc3RhdGUuYml0cyA9IGJpdHM7CiAgICAvLy0tLQoKICAgIGlmIChzdGF0ZS53c2l6ZSB8fCAoX291dCAhPT0gc3RybS5hdmFpbF9vdXQgJiYgc3RhdGUubW9kZSA8IEJBRCAmJgogICAgICAgICAgICAgICAgICAgICAgICAoc3RhdGUubW9kZSA8IENIRUNLIHx8IGZsdXNoICE9PSBaX0ZJTklTSCQxKSkpIHsKICAgICAgaWYgKHVwZGF0ZXdpbmRvdyhzdHJtLCBzdHJtLm91dHB1dCwgc3RybS5uZXh0X291dCwgX291dCAtIHN0cm0uYXZhaWxfb3V0KSkgOwogICAgfQogICAgX2luIC09IHN0cm0uYXZhaWxfaW47CiAgICBfb3V0IC09IHN0cm0uYXZhaWxfb3V0OwogICAgc3RybS50b3RhbF9pbiArPSBfaW47CiAgICBzdHJtLnRvdGFsX291dCArPSBfb3V0OwogICAgc3RhdGUudG90YWwgKz0gX291dDsKICAgIGlmIChzdGF0ZS53cmFwICYmIF9vdXQpIHsKICAgICAgc3RybS5hZGxlciA9IHN0YXRlLmNoZWNrID0gLypVUERBVEUoc3RhdGUuY2hlY2ssIHN0cm0ubmV4dF9vdXQgLSBfb3V0LCBfb3V0KTsqLwogICAgICAgIChzdGF0ZS5mbGFncyA/IGNyYzMyXzEoc3RhdGUuY2hlY2ssIG91dHB1dCwgX291dCwgc3RybS5uZXh0X291dCAtIF9vdXQpIDogYWRsZXIzMl8xKHN0YXRlLmNoZWNrLCBvdXRwdXQsIF9vdXQsIHN0cm0ubmV4dF9vdXQgLSBfb3V0KSk7CiAgICB9CiAgICBzdHJtLmRhdGFfdHlwZSA9IHN0YXRlLmJpdHMgKyAoc3RhdGUubGFzdCA/IDY0IDogMCkgKwogICAgICAgICAgICAgICAgICAgICAgKHN0YXRlLm1vZGUgPT09IFRZUEUgPyAxMjggOiAwKSArCiAgICAgICAgICAgICAgICAgICAgICAoc3RhdGUubW9kZSA9PT0gTEVOXyB8fCBzdGF0ZS5tb2RlID09PSBDT1BZXyA/IDI1NiA6IDApOwogICAgaWYgKCgoX2luID09PSAwICYmIF9vdXQgPT09IDApIHx8IGZsdXNoID09PSBaX0ZJTklTSCQxKSAmJiByZXQgPT09IFpfT0skMSkgewogICAgICByZXQgPSBaX0JVRl9FUlJPUjsKICAgIH0KICAgIHJldHVybiByZXQ7CiAgfTsKCgogIGNvbnN0IGluZmxhdGVFbmQgPSAoc3RybSkgPT4gewoKICAgIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSAvKnx8IHN0cm0tPnpmcmVlID09IChmcmVlX2Z1bmMpMCovKSB7CiAgICAgIHJldHVybiBaX1NUUkVBTV9FUlJPUiQxOwogICAgfQoKICAgIGxldCBzdGF0ZSA9IHN0cm0uc3RhdGU7CiAgICBpZiAoc3RhdGUud2luZG93KSB7CiAgICAgIHN0YXRlLndpbmRvdyA9IG51bGw7CiAgICB9CiAgICBzdHJtLnN0YXRlID0gbnVsbDsKICAgIHJldHVybiBaX09LJDE7CiAgfTsKCgogIGNvbnN0IGluZmxhdGVHZXRIZWFkZXIgPSAoc3RybSwgaGVhZCkgPT4gewoKICAgIC8qIGNoZWNrIHN0YXRlICovCiAgICBpZiAoIXN0cm0gfHwgIXN0cm0uc3RhdGUpIHsgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDE7IH0KICAgIGNvbnN0IHN0YXRlID0gc3RybS5zdGF0ZTsKICAgIGlmICgoc3RhdGUud3JhcCAmIDIpID09PSAwKSB7IHJldHVybiBaX1NUUkVBTV9FUlJPUiQxOyB9CgogICAgLyogc2F2ZSBoZWFkZXIgc3RydWN0dXJlICovCiAgICBzdGF0ZS5oZWFkID0gaGVhZDsKICAgIGhlYWQuZG9uZSA9IGZhbHNlOwogICAgcmV0dXJuIFpfT0skMTsKICB9OwoKCiAgY29uc3QgaW5mbGF0ZVNldERpY3Rpb25hcnkgPSAoc3RybSwgZGljdGlvbmFyeSkgPT4gewogICAgY29uc3QgZGljdExlbmd0aCA9IGRpY3Rpb25hcnkubGVuZ3RoOwoKICAgIGxldCBzdGF0ZTsKICAgIGxldCBkaWN0aWQ7CiAgICBsZXQgcmV0OwoKICAgIC8qIGNoZWNrIHN0YXRlICovCiAgICBpZiAoIXN0cm0gLyogPT0gWl9OVUxMICovIHx8ICFzdHJtLnN0YXRlIC8qID09IFpfTlVMTCAqLykgeyByZXR1cm4gWl9TVFJFQU1fRVJST1IkMTsgfQogICAgc3RhdGUgPSBzdHJtLnN0YXRlOwoKICAgIGlmIChzdGF0ZS53cmFwICE9PSAwICYmIHN0YXRlLm1vZGUgIT09IERJQ1QpIHsKICAgICAgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDE7CiAgICB9CgogICAgLyogY2hlY2sgZm9yIGNvcnJlY3QgZGljdGlvbmFyeSBpZGVudGlmaWVyICovCiAgICBpZiAoc3RhdGUubW9kZSA9PT0gRElDVCkgewogICAgICBkaWN0aWQgPSAxOyAvKiBhZGxlcjMyKDAsIG51bGwsIDApKi8KICAgICAgLyogZGljdGlkID0gYWRsZXIzMihkaWN0aWQsIGRpY3Rpb25hcnksIGRpY3RMZW5ndGgpOyAqLwogICAgICBkaWN0aWQgPSBhZGxlcjMyXzEoZGljdGlkLCBkaWN0aW9uYXJ5LCBkaWN0TGVuZ3RoLCAwKTsKICAgICAgaWYgKGRpY3RpZCAhPT0gc3RhdGUuY2hlY2spIHsKICAgICAgICByZXR1cm4gWl9EQVRBX0VSUk9SJDE7CiAgICAgIH0KICAgIH0KICAgIC8qIGNvcHkgZGljdGlvbmFyeSB0byB3aW5kb3cgdXNpbmcgdXBkYXRld2luZG93KCksIHdoaWNoIHdpbGwgYW1lbmQgdGhlCiAgICAgZXhpc3RpbmcgZGljdGlvbmFyeSBpZiBhcHByb3ByaWF0ZSAqLwogICAgcmV0ID0gdXBkYXRld2luZG93KHN0cm0sIGRpY3Rpb25hcnksIGRpY3RMZW5ndGgsIGRpY3RMZW5ndGgpOwogICAgaWYgKHJldCkgewogICAgICBzdGF0ZS5tb2RlID0gTUVNOwogICAgICByZXR1cm4gWl9NRU1fRVJST1IkMTsKICAgIH0KICAgIHN0YXRlLmhhdmVkaWN0ID0gMTsKICAgIC8vIFRyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogICBkaWN0aW9uYXJ5IHNldFxuIikpOwogICAgcmV0dXJuIFpfT0skMTsKICB9OwoKCiAgdmFyIGluZmxhdGVSZXNldF8xID0gaW5mbGF0ZVJlc2V0OwogIHZhciBpbmZsYXRlUmVzZXQyXzEgPSBpbmZsYXRlUmVzZXQyOwogIHZhciBpbmZsYXRlUmVzZXRLZWVwXzEgPSBpbmZsYXRlUmVzZXRLZWVwOwogIHZhciBpbmZsYXRlSW5pdF8xID0gaW5mbGF0ZUluaXQ7CiAgdmFyIGluZmxhdGVJbml0Ml8xID0gaW5mbGF0ZUluaXQyOwogIHZhciBpbmZsYXRlXzIkMSA9IGluZmxhdGUkMjsKICB2YXIgaW5mbGF0ZUVuZF8xID0gaW5mbGF0ZUVuZDsKICB2YXIgaW5mbGF0ZUdldEhlYWRlcl8xID0gaW5mbGF0ZUdldEhlYWRlcjsKICB2YXIgaW5mbGF0ZVNldERpY3Rpb25hcnlfMSA9IGluZmxhdGVTZXREaWN0aW9uYXJ5OwogIHZhciBpbmZsYXRlSW5mbyA9ICdwYWtvIGluZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpJzsKCiAgLyogTm90IGltcGxlbWVudGVkCiAgbW9kdWxlLmV4cG9ydHMuaW5mbGF0ZUNvcHkgPSBpbmZsYXRlQ29weTsKICBtb2R1bGUuZXhwb3J0cy5pbmZsYXRlR2V0RGljdGlvbmFyeSA9IGluZmxhdGVHZXREaWN0aW9uYXJ5OwogIG1vZHVsZS5leHBvcnRzLmluZmxhdGVNYXJrID0gaW5mbGF0ZU1hcms7CiAgbW9kdWxlLmV4cG9ydHMuaW5mbGF0ZVByaW1lID0gaW5mbGF0ZVByaW1lOwogIG1vZHVsZS5leHBvcnRzLmluZmxhdGVTeW5jID0gaW5mbGF0ZVN5bmM7CiAgbW9kdWxlLmV4cG9ydHMuaW5mbGF0ZVN5bmNQb2ludCA9IGluZmxhdGVTeW5jUG9pbnQ7CiAgbW9kdWxlLmV4cG9ydHMuaW5mbGF0ZVVuZGVybWluZSA9IGluZmxhdGVVbmRlcm1pbmU7CiAgKi8KCiAgdmFyIGluZmxhdGVfMSQyID0gewogIAlpbmZsYXRlUmVzZXQ6IGluZmxhdGVSZXNldF8xLAogIAlpbmZsYXRlUmVzZXQyOiBpbmZsYXRlUmVzZXQyXzEsCiAgCWluZmxhdGVSZXNldEtlZXA6IGluZmxhdGVSZXNldEtlZXBfMSwKICAJaW5mbGF0ZUluaXQ6IGluZmxhdGVJbml0XzEsCiAgCWluZmxhdGVJbml0MjogaW5mbGF0ZUluaXQyXzEsCiAgCWluZmxhdGU6IGluZmxhdGVfMiQxLAogIAlpbmZsYXRlRW5kOiBpbmZsYXRlRW5kXzEsCiAgCWluZmxhdGVHZXRIZWFkZXI6IGluZmxhdGVHZXRIZWFkZXJfMSwKICAJaW5mbGF0ZVNldERpY3Rpb25hcnk6IGluZmxhdGVTZXREaWN0aW9uYXJ5XzEsCiAgCWluZmxhdGVJbmZvOiBpbmZsYXRlSW5mbwogIH07CgogIC8vIChDKSAxOTk1LTIwMTMgSmVhbi1sb3VwIEdhaWxseSBhbmQgTWFyayBBZGxlcgogIC8vIChDKSAyMDE0LTIwMTcgVml0YWx5IFB1enJpbiBhbmQgQW5kcmV5IFR1cGl0c2luCiAgLy8KICAvLyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAogIC8vIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogIC8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAgLy8KICAvLyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAvLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0CiAgLy8gZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgogIC8vCiAgLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKICAvLyAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgLy8gICBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291bGQgYmUKICAvLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCiAgLy8gMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCBhbmQgbXVzdCBub3QgYmUKICAvLyAgIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KICAvLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKICBmdW5jdGlvbiBHWmhlYWRlcigpIHsKICAgIC8qIHRydWUgaWYgY29tcHJlc3NlZCBkYXRhIGJlbGlldmVkIHRvIGJlIHRleHQgKi8KICAgIHRoaXMudGV4dCAgICAgICA9IDA7CiAgICAvKiBtb2RpZmljYXRpb24gdGltZSAqLwogICAgdGhpcy50aW1lICAgICAgID0gMDsKICAgIC8qIGV4dHJhIGZsYWdzIChub3QgdXNlZCB3aGVuIHdyaXRpbmcgYSBnemlwIGZpbGUpICovCiAgICB0aGlzLnhmbGFncyAgICAgPSAwOwogICAgLyogb3BlcmF0aW5nIHN5c3RlbSAqLwogICAgdGhpcy5vcyAgICAgICAgID0gMDsKICAgIC8qIHBvaW50ZXIgdG8gZXh0cmEgZmllbGQgb3IgWl9OVUxMIGlmIG5vbmUgKi8KICAgIHRoaXMuZXh0cmEgICAgICA9IG51bGw7CiAgICAvKiBleHRyYSBmaWVsZCBsZW5ndGggKHZhbGlkIGlmIGV4dHJhICE9IFpfTlVMTCkgKi8KICAgIHRoaXMuZXh0cmFfbGVuICA9IDA7IC8vIEFjdHVhbGx5LCB3ZSBkb24ndCBuZWVkIGl0IGluIEpTLAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnV0IGxlYXZlIGZvciBmZXcgY29kZSBtb2RpZmljYXRpb25zCgogICAgLy8KICAgIC8vIFNldHVwIGxpbWl0cyBpcyBub3QgbmVjZXNzYXJ5IGJlY2F1c2UgaW4ganMgd2Ugc2hvdWxkIG5vdCBwcmVhbGxvY2F0ZSBtZW1vcnkKICAgIC8vIGZvciBpbmZsYXRlIHVzZSBjb25zdGFudCBsaW1pdCBpbiA2NTUzNiBieXRlcwogICAgLy8KCiAgICAvKiBzcGFjZSBhdCBleHRyYSAob25seSB3aGVuIHJlYWRpbmcgaGVhZGVyKSAqLwogICAgLy8gdGhpcy5leHRyYV9tYXggID0gMDsKICAgIC8qIHBvaW50ZXIgdG8gemVyby10ZXJtaW5hdGVkIGZpbGUgbmFtZSBvciBaX05VTEwgKi8KICAgIHRoaXMubmFtZSAgICAgICA9ICcnOwogICAgLyogc3BhY2UgYXQgbmFtZSAob25seSB3aGVuIHJlYWRpbmcgaGVhZGVyKSAqLwogICAgLy8gdGhpcy5uYW1lX21heCAgID0gMDsKICAgIC8qIHBvaW50ZXIgdG8gemVyby10ZXJtaW5hdGVkIGNvbW1lbnQgb3IgWl9OVUxMICovCiAgICB0aGlzLmNvbW1lbnQgICAgPSAnJzsKICAgIC8qIHNwYWNlIGF0IGNvbW1lbnQgKG9ubHkgd2hlbiByZWFkaW5nIGhlYWRlcikgKi8KICAgIC8vIHRoaXMuY29tbV9tYXggICA9IDA7CiAgICAvKiB0cnVlIGlmIHRoZXJlIHdhcyBvciB3aWxsIGJlIGEgaGVhZGVyIGNyYyAqLwogICAgdGhpcy5oY3JjICAgICAgID0gMDsKICAgIC8qIHRydWUgd2hlbiBkb25lIHJlYWRpbmcgZ3ppcCBoZWFkZXIgKG5vdCB1c2VkIHdoZW4gd3JpdGluZyBhIGd6aXAgZmlsZSkgKi8KICAgIHRoaXMuZG9uZSAgICAgICA9IGZhbHNlOwogIH0KCiAgdmFyIGd6aGVhZGVyID0gR1poZWFkZXI7CgogIGNvbnN0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKCiAgLyogUHVibGljIGNvbnN0YW50cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKICBjb25zdCB7CiAgICBaX05PX0ZMVVNILCBaX0ZJTklTSCwKICAgIFpfT0ssIFpfU1RSRUFNX0VORCwgWl9ORUVEX0RJQ1QsIFpfU1RSRUFNX0VSUk9SLCBaX0RBVEFfRVJST1IsIFpfTUVNX0VSUk9SCiAgfSA9IGNvbnN0YW50cyQyOwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCiAgLyoqCiAgICogY2xhc3MgSW5mbGF0ZQogICAqCiAgICogR2VuZXJpYyBKUy1zdHlsZSB3cmFwcGVyIGZvciB6bGliIGNhbGxzLiBJZiB5b3UgZG9uJ3QgbmVlZAogICAqIHN0cmVhbWluZyBiZWhhdmlvdXIgLSB1c2UgbW9yZSBzaW1wbGUgZnVuY3Rpb25zOiBbW2luZmxhdGVdXQogICAqIGFuZCBbW2luZmxhdGVSYXddXS4KICAgKiovCgogIC8qIGludGVybmFsCiAgICogaW5mbGF0ZS5jaHVua3MgLT4gQXJyYXkKICAgKgogICAqIENodW5rcyBvZiBvdXRwdXQgZGF0YSwgaWYgW1tJbmZsYXRlI29uRGF0YV1dIG5vdCBvdmVycmlkZGVuLgogICAqKi8KCiAgLyoqCiAgICogSW5mbGF0ZS5yZXN1bHQgLT4gVWludDhBcnJheXxTdHJpbmcKICAgKgogICAqIFVuY29tcHJlc3NlZCByZXN1bHQsIGdlbmVyYXRlZCBieSBkZWZhdWx0IFtbSW5mbGF0ZSNvbkRhdGFdXQogICAqIGFuZCBbW0luZmxhdGUjb25FbmRdXSBoYW5kbGVycy4gRmlsbGVkIGFmdGVyIHlvdSBwdXNoIGxhc3QgY2h1bmsKICAgKiAoY2FsbCBbW0luZmxhdGUjcHVzaF1dIHdpdGggYFpfRklOSVNIYCAvIGB0cnVlYCBwYXJhbSkuCiAgICoqLwoKICAvKioKICAgKiBJbmZsYXRlLmVyciAtPiBOdW1iZXIKICAgKgogICAqIEVycm9yIGNvZGUgYWZ0ZXIgaW5mbGF0ZSBmaW5pc2hlZC4gMCAoWl9PSykgb24gc3VjY2Vzcy4KICAgKiBTaG91bGQgYmUgY2hlY2tlZCBpZiBicm9rZW4gZGF0YSBwb3NzaWJsZS4KICAgKiovCgogIC8qKgogICAqIEluZmxhdGUubXNnIC0+IFN0cmluZwogICAqCiAgICogRXJyb3IgbWVzc2FnZSwgaWYgW1tJbmZsYXRlLmVycl1dICE9IDAKICAgKiovCgoKICAvKioKICAgKiBuZXcgSW5mbGF0ZShvcHRpb25zKQogICAqIC0gb3B0aW9ucyAoT2JqZWN0KTogemxpYiBpbmZsYXRlIG9wdGlvbnMuCiAgICoKICAgKiBDcmVhdGVzIG5ldyBpbmZsYXRvciBpbnN0YW5jZSB3aXRoIHNwZWNpZmllZCBwYXJhbXMuIFRocm93cyBleGNlcHRpb24KICAgKiBvbiBiYWQgcGFyYW1zLiBTdXBwb3J0ZWQgb3B0aW9uczoKICAgKgogICAqIC0gYHdpbmRvd0JpdHNgCiAgICogLSBgZGljdGlvbmFyeWAKICAgKgogICAqIFtodHRwOi8vemxpYi5uZXQvbWFudWFsLmh0bWwjQWR2YW5jZWRdKGh0dHA6Ly96bGliLm5ldC9tYW51YWwuaHRtbCNBZHZhbmNlZCkKICAgKiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGVzZS4KICAgKgogICAqIEFkZGl0aW9uYWwgb3B0aW9ucywgZm9yIGludGVybmFsIG5lZWRzOgogICAqCiAgICogLSBgY2h1bmtTaXplYCAtIHNpemUgb2YgZ2VuZXJhdGVkIGRhdGEgY2h1bmtzICgxNksgYnkgZGVmYXVsdCkKICAgKiAtIGByYXdgIChCb29sZWFuKSAtIGRvIHJhdyBpbmZsYXRlCiAgICogLSBgdG9gIChTdHJpbmcpIC0gaWYgZXF1YWwgdG8gJ3N0cmluZycsIHRoZW4gcmVzdWx0IHdpbGwgYmUgY29udmVydGVkCiAgICogICBmcm9tIHV0ZjggdG8gdXRmMTYgKGphdmFzY3JpcHQpIHN0cmluZy4gV2hlbiBzdHJpbmcgb3V0cHV0IHJlcXVlc3RlZCwKICAgKiAgIGNodW5rIGxlbmd0aCBjYW4gZGlmZmVyIGZyb20gYGNodW5rU2l6ZWAsIGRlcGVuZGluZyBvbiBjb250ZW50LgogICAqCiAgICogQnkgZGVmYXVsdCwgd2hlbiBubyBvcHRpb25zIHNldCwgYXV0b2RldGVjdCBkZWZsYXRlL2d6aXAgZGF0YSBmb3JtYXQgdmlhCiAgICogd3JhcHBlciBoZWFkZXIuCiAgICoKICAgKiAjIyMjIyBFeGFtcGxlOgogICAqCiAgICogYGBgamF2YXNjcmlwdAogICAqIGNvbnN0IHBha28gPSByZXF1aXJlKCdwYWtvJykKICAgKiBjb25zdCBjaHVuazEgPSBuZXcgVWludDhBcnJheShbMSwyLDMsNCw1LDYsNyw4LDldKQogICAqIGNvbnN0IGNodW5rMiA9IG5ldyBVaW50OEFycmF5KFsxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOV0pOwogICAqCiAgICogY29uc3QgaW5mbGF0ZSA9IG5ldyBwYWtvLkluZmxhdGUoeyBsZXZlbDogM30pOwogICAqCiAgICogaW5mbGF0ZS5wdXNoKGNodW5rMSwgZmFsc2UpOwogICAqIGluZmxhdGUucHVzaChjaHVuazIsIHRydWUpOyAgLy8gdHJ1ZSAtPiBsYXN0IGNodW5rCiAgICoKICAgKiBpZiAoaW5mbGF0ZS5lcnIpIHsgdGhyb3cgbmV3IEVycm9yKGluZmxhdGUuZXJyKTsgfQogICAqCiAgICogY29uc29sZS5sb2coaW5mbGF0ZS5yZXN1bHQpOwogICAqIGBgYAogICAqKi8KICBmdW5jdGlvbiBJbmZsYXRlJDEob3B0aW9ucykgewogICAgdGhpcy5vcHRpb25zID0gY29tbW9uLmFzc2lnbih7CiAgICAgIGNodW5rU2l6ZTogMTAyNCAqIDY0LAogICAgICB3aW5kb3dCaXRzOiAxNSwKICAgICAgdG86ICcnCiAgICB9LCBvcHRpb25zIHx8IHt9KTsKCiAgICBjb25zdCBvcHQgPSB0aGlzLm9wdGlvbnM7CgogICAgLy8gRm9yY2Ugd2luZG93IHNpemUgZm9yIGByYXdgIGRhdGEsIGlmIG5vdCBzZXQgZGlyZWN0bHksCiAgICAvLyBiZWNhdXNlIHdlIGhhdmUgbm8gaGVhZGVyIGZvciBhdXRvZGV0ZWN0LgogICAgaWYgKG9wdC5yYXcgJiYgKG9wdC53aW5kb3dCaXRzID49IDApICYmIChvcHQud2luZG93Qml0cyA8IDE2KSkgewogICAgICBvcHQud2luZG93Qml0cyA9IC1vcHQud2luZG93Qml0czsKICAgICAgaWYgKG9wdC53aW5kb3dCaXRzID09PSAwKSB7IG9wdC53aW5kb3dCaXRzID0gLTE1OyB9CiAgICB9CgogICAgLy8gSWYgYHdpbmRvd0JpdHNgIG5vdCBkZWZpbmVkIChhbmQgbW9kZSBub3QgcmF3KSAtIHNldCBhdXRvZGV0ZWN0IGZsYWcgZm9yIGd6aXAvZGVmbGF0ZQogICAgaWYgKChvcHQud2luZG93Qml0cyA+PSAwKSAmJiAob3B0LndpbmRvd0JpdHMgPCAxNikgJiYKICAgICAgICAhKG9wdGlvbnMgJiYgb3B0aW9ucy53aW5kb3dCaXRzKSkgewogICAgICBvcHQud2luZG93Qml0cyArPSAzMjsKICAgIH0KCiAgICAvLyBHemlwIGhlYWRlciBoYXMgbm8gaW5mbyBhYm91dCB3aW5kb3dzIHNpemUsIHdlIGNhbiBkbyBhdXRvZGV0ZWN0IG9ubHkKICAgIC8vIGZvciBkZWZsYXRlLiBTbywgaWYgd2luZG93IHNpemUgbm90IHNldCwgZm9yY2UgaXQgdG8gbWF4IHdoZW4gZ3ppcCBwb3NzaWJsZQogICAgaWYgKChvcHQud2luZG93Qml0cyA+IDE1KSAmJiAob3B0LndpbmRvd0JpdHMgPCA0OCkpIHsKICAgICAgLy8gYml0IDMgKDE2KSAtPiBnemlwcGVkIGRhdGEKICAgICAgLy8gYml0IDQgKDMyKSAtPiBhdXRvZGV0ZWN0IGd6aXAvZGVmbGF0ZQogICAgICBpZiAoKG9wdC53aW5kb3dCaXRzICYgMTUpID09PSAwKSB7CiAgICAgICAgb3B0LndpbmRvd0JpdHMgfD0gMTU7CiAgICAgIH0KICAgIH0KCiAgICB0aGlzLmVyciAgICA9IDA7ICAgICAgLy8gZXJyb3IgY29kZSwgaWYgaGFwcGVucyAoMCA9IFpfT0spCiAgICB0aGlzLm1zZyAgICA9ICcnOyAgICAgLy8gZXJyb3IgbWVzc2FnZQogICAgdGhpcy5lbmRlZCAgPSBmYWxzZTsgIC8vIHVzZWQgdG8gYXZvaWQgbXVsdGlwbGUgb25FbmQoKSBjYWxscwogICAgdGhpcy5jaHVua3MgPSBbXTsgICAgIC8vIGNodW5rcyBvZiBjb21wcmVzc2VkIGRhdGEKCiAgICB0aGlzLnN0cm0gICA9IG5ldyB6c3RyZWFtKCk7CiAgICB0aGlzLnN0cm0uYXZhaWxfb3V0ID0gMDsKCiAgICBsZXQgc3RhdHVzICA9IGluZmxhdGVfMSQyLmluZmxhdGVJbml0MigKICAgICAgdGhpcy5zdHJtLAogICAgICBvcHQud2luZG93Qml0cwogICAgKTsKCiAgICBpZiAoc3RhdHVzICE9PSBaX09LKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlc1tzdGF0dXNdKTsKICAgIH0KCiAgICB0aGlzLmhlYWRlciA9IG5ldyBnemhlYWRlcigpOwoKICAgIGluZmxhdGVfMSQyLmluZmxhdGVHZXRIZWFkZXIodGhpcy5zdHJtLCB0aGlzLmhlYWRlcik7CgogICAgLy8gU2V0dXAgZGljdGlvbmFyeQogICAgaWYgKG9wdC5kaWN0aW9uYXJ5KSB7CiAgICAgIC8vIENvbnZlcnQgZGF0YSBpZiBuZWVkZWQKICAgICAgaWYgKHR5cGVvZiBvcHQuZGljdGlvbmFyeSA9PT0gJ3N0cmluZycpIHsKICAgICAgICBvcHQuZGljdGlvbmFyeSA9IHN0cmluZ3Muc3RyaW5nMmJ1ZihvcHQuZGljdGlvbmFyeSk7CiAgICAgIH0gZWxzZSBpZiAodG9TdHJpbmcuY2FsbChvcHQuZGljdGlvbmFyeSkgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXScpIHsKICAgICAgICBvcHQuZGljdGlvbmFyeSA9IG5ldyBVaW50OEFycmF5KG9wdC5kaWN0aW9uYXJ5KTsKICAgICAgfQogICAgICBpZiAob3B0LnJhdykgeyAvL0luIHJhdyBtb2RlIHdlIG5lZWQgdG8gc2V0IHRoZSBkaWN0aW9uYXJ5IGVhcmx5CiAgICAgICAgc3RhdHVzID0gaW5mbGF0ZV8xJDIuaW5mbGF0ZVNldERpY3Rpb25hcnkodGhpcy5zdHJtLCBvcHQuZGljdGlvbmFyeSk7CiAgICAgICAgaWYgKHN0YXR1cyAhPT0gWl9PSykgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2VzW3N0YXR1c10pOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KCiAgLyoqCiAgICogSW5mbGF0ZSNwdXNoKGRhdGFbLCBmbHVzaF9tb2RlXSkgLT4gQm9vbGVhbgogICAqIC0gZGF0YSAoVWludDhBcnJheXxBcnJheUJ1ZmZlcik6IGlucHV0IGRhdGEKICAgKiAtIGZsdXNoX21vZGUgKE51bWJlcnxCb29sZWFuKTogMC4uNiBmb3IgY29ycmVzcG9uZGluZyBaX05PX0ZMVVNILi5aX1RSRUUKICAgKiAgIGZsdXNoIG1vZGVzLiBTZWUgY29uc3RhbnRzLiBTa2lwcGVkIG9yIGBmYWxzZWAgbWVhbnMgWl9OT19GTFVTSCwKICAgKiAgIGB0cnVlYCBtZWFucyBaX0ZJTklTSC4KICAgKgogICAqIFNlbmRzIGlucHV0IGRhdGEgdG8gaW5mbGF0ZSBwaXBlLCBnZW5lcmF0aW5nIFtbSW5mbGF0ZSNvbkRhdGFdXSBjYWxscyB3aXRoCiAgICogbmV3IG91dHB1dCBjaHVua3MuIFJldHVybnMgYHRydWVgIG9uIHN1Y2Nlc3MuIElmIGVuZCBvZiBzdHJlYW0gZGV0ZWN0ZWQsCiAgICogW1tJbmZsYXRlI29uRW5kXV0gd2lsbCBiZSBjYWxsZWQuCiAgICoKICAgKiBgZmx1c2hfbW9kZWAgaXMgbm90IG5lZWRlZCBmb3Igbm9ybWFsIG9wZXJhdGlvbiwgYmVjYXVzZSBlbmQgb2Ygc3RyZWFtCiAgICogZGV0ZWN0ZWQgYXV0b21hdGljYWxseS4gWW91IG1heSB0cnkgdG8gdXNlIGl0IGZvciBhZHZhbmNlZCB0aGluZ3MsIGJ1dAogICAqIHRoaXMgZnVuY3Rpb25hbGl0eSB3YXMgbm90IHRlc3RlZC4KICAgKgogICAqIE9uIGZhaWwgY2FsbCBbW0luZmxhdGUjb25FbmRdXSB3aXRoIGVycm9yIGNvZGUgYW5kIHJldHVybiBmYWxzZS4KICAgKgogICAqICMjIyMjIEV4YW1wbGUKICAgKgogICAqIGBgYGphdmFzY3JpcHQKICAgKiBwdXNoKGNodW5rLCBmYWxzZSk7IC8vIHB1c2ggb25lIG9mIGRhdGEgY2h1bmtzCiAgICogLi4uCiAgICogcHVzaChjaHVuaywgdHJ1ZSk7ICAvLyBwdXNoIGxhc3QgY2h1bmsKICAgKiBgYGAKICAgKiovCiAgSW5mbGF0ZSQxLnByb3RvdHlwZS5wdXNoID0gZnVuY3Rpb24gKGRhdGEsIGZsdXNoX21vZGUpIHsKICAgIGNvbnN0IHN0cm0gPSB0aGlzLnN0cm07CiAgICBjb25zdCBjaHVua1NpemUgPSB0aGlzLm9wdGlvbnMuY2h1bmtTaXplOwogICAgY29uc3QgZGljdGlvbmFyeSA9IHRoaXMub3B0aW9ucy5kaWN0aW9uYXJ5OwogICAgbGV0IHN0YXR1cywgX2ZsdXNoX21vZGUsIGxhc3RfYXZhaWxfb3V0OwoKICAgIGlmICh0aGlzLmVuZGVkKSByZXR1cm4gZmFsc2U7CgogICAgaWYgKGZsdXNoX21vZGUgPT09IH5+Zmx1c2hfbW9kZSkgX2ZsdXNoX21vZGUgPSBmbHVzaF9tb2RlOwogICAgZWxzZSBfZmx1c2hfbW9kZSA9IGZsdXNoX21vZGUgPT09IHRydWUgPyBaX0ZJTklTSCA6IFpfTk9fRkxVU0g7CgogICAgLy8gQ29udmVydCBkYXRhIGlmIG5lZWRlZAogICAgaWYgKHRvU3RyaW5nLmNhbGwoZGF0YSkgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXScpIHsKICAgICAgc3RybS5pbnB1dCA9IG5ldyBVaW50OEFycmF5KGRhdGEpOwogICAgfSBlbHNlIHsKICAgICAgc3RybS5pbnB1dCA9IGRhdGE7CiAgICB9CgogICAgc3RybS5uZXh0X2luID0gMDsKICAgIHN0cm0uYXZhaWxfaW4gPSBzdHJtLmlucHV0Lmxlbmd0aDsKCiAgICBmb3IgKDs7KSB7CiAgICAgIGlmIChzdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHN0cm0ub3V0cHV0ID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmtTaXplKTsKICAgICAgICBzdHJtLm5leHRfb3V0ID0gMDsKICAgICAgICBzdHJtLmF2YWlsX291dCA9IGNodW5rU2l6ZTsKICAgICAgfQoKICAgICAgc3RhdHVzID0gaW5mbGF0ZV8xJDIuaW5mbGF0ZShzdHJtLCBfZmx1c2hfbW9kZSk7CgogICAgICBpZiAoc3RhdHVzID09PSBaX05FRURfRElDVCAmJiBkaWN0aW9uYXJ5KSB7CiAgICAgICAgc3RhdHVzID0gaW5mbGF0ZV8xJDIuaW5mbGF0ZVNldERpY3Rpb25hcnkoc3RybSwgZGljdGlvbmFyeSk7CgogICAgICAgIGlmIChzdGF0dXMgPT09IFpfT0spIHsKICAgICAgICAgIHN0YXR1cyA9IGluZmxhdGVfMSQyLmluZmxhdGUoc3RybSwgX2ZsdXNoX21vZGUpOwogICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSBaX0RBVEFfRVJST1IpIHsKICAgICAgICAgIC8vIFJlcGxhY2UgY29kZSB3aXRoIG1vcmUgdmVyYm9zZQogICAgICAgICAgc3RhdHVzID0gWl9ORUVEX0RJQ1Q7CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBTa2lwIHNueWMgbWFya2VycyBpZiBtb3JlIGRhdGEgZm9sbG93cyBhbmQgbm90IHJhdyBtb2RlCiAgICAgIHdoaWxlIChzdHJtLmF2YWlsX2luID4gMCAmJgogICAgICAgICAgICAgc3RhdHVzID09PSBaX1NUUkVBTV9FTkQgJiYKICAgICAgICAgICAgIHN0cm0uc3RhdGUud3JhcCA+IDAgJiYKICAgICAgICAgICAgIGRhdGFbc3RybS5uZXh0X2luXSAhPT0gMCkKICAgICAgewogICAgICAgIGluZmxhdGVfMSQyLmluZmxhdGVSZXNldChzdHJtKTsKICAgICAgICBzdGF0dXMgPSBpbmZsYXRlXzEkMi5pbmZsYXRlKHN0cm0sIF9mbHVzaF9tb2RlKTsKICAgICAgfQoKICAgICAgc3dpdGNoIChzdGF0dXMpIHsKICAgICAgICBjYXNlIFpfU1RSRUFNX0VSUk9SOgogICAgICAgIGNhc2UgWl9EQVRBX0VSUk9SOgogICAgICAgIGNhc2UgWl9ORUVEX0RJQ1Q6CiAgICAgICAgY2FzZSBaX01FTV9FUlJPUjoKICAgICAgICAgIHRoaXMub25FbmQoc3RhdHVzKTsKICAgICAgICAgIHRoaXMuZW5kZWQgPSB0cnVlOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CgogICAgICAvLyBSZW1lbWJlciByZWFsIGBhdmFpbF9vdXRgIHZhbHVlLCBiZWNhdXNlIHdlIG1heSBwYXRjaCBvdXQgYnVmZmVyIGNvbnRlbnQKICAgICAgLy8gdG8gYWxpZ24gdXRmOCBzdHJpbmdzIGJvdW5kYXJpZXMuCiAgICAgIGxhc3RfYXZhaWxfb3V0ID0gc3RybS5hdmFpbF9vdXQ7CgogICAgICBpZiAoc3RybS5uZXh0X291dCkgewogICAgICAgIGlmIChzdHJtLmF2YWlsX291dCA9PT0gMCB8fCBzdGF0dXMgPT09IFpfU1RSRUFNX0VORCkgewoKICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudG8gPT09ICdzdHJpbmcnKSB7CgogICAgICAgICAgICBsZXQgbmV4dF9vdXRfdXRmOCA9IHN0cmluZ3MudXRmOGJvcmRlcihzdHJtLm91dHB1dCwgc3RybS5uZXh0X291dCk7CgogICAgICAgICAgICBsZXQgdGFpbCA9IHN0cm0ubmV4dF9vdXQgLSBuZXh0X291dF91dGY4OwogICAgICAgICAgICBsZXQgdXRmOHN0ciA9IHN0cmluZ3MuYnVmMnN0cmluZyhzdHJtLm91dHB1dCwgbmV4dF9vdXRfdXRmOCk7CgogICAgICAgICAgICAvLyBtb3ZlIHRhaWwgJiByZWFsaWduIGNvdW50ZXJzCiAgICAgICAgICAgIHN0cm0ubmV4dF9vdXQgPSB0YWlsOwogICAgICAgICAgICBzdHJtLmF2YWlsX291dCA9IGNodW5rU2l6ZSAtIHRhaWw7CiAgICAgICAgICAgIGlmICh0YWlsKSBzdHJtLm91dHB1dC5zZXQoc3RybS5vdXRwdXQuc3ViYXJyYXkobmV4dF9vdXRfdXRmOCwgbmV4dF9vdXRfdXRmOCArIHRhaWwpLCAwKTsKCiAgICAgICAgICAgIHRoaXMub25EYXRhKHV0ZjhzdHIpOwoKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMub25EYXRhKHN0cm0ub3V0cHV0Lmxlbmd0aCA9PT0gc3RybS5uZXh0X291dCA/IHN0cm0ub3V0cHV0IDogc3RybS5vdXRwdXQuc3ViYXJyYXkoMCwgc3RybS5uZXh0X291dCkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gTXVzdCByZXBlYXQgaXRlcmF0aW9uIGlmIG91dCBidWZmZXIgaXMgZnVsbAogICAgICBpZiAoc3RhdHVzID09PSBaX09LICYmIGxhc3RfYXZhaWxfb3V0ID09PSAwKSBjb250aW51ZTsKCiAgICAgIC8vIEZpbmFsaXplIGlmIGVuZCBvZiBzdHJlYW0gcmVhY2hlZC4KICAgICAgaWYgKHN0YXR1cyA9PT0gWl9TVFJFQU1fRU5EKSB7CiAgICAgICAgc3RhdHVzID0gaW5mbGF0ZV8xJDIuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pOwogICAgICAgIHRoaXMub25FbmQoc3RhdHVzKTsKICAgICAgICB0aGlzLmVuZGVkID0gdHJ1ZTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQoKICAgICAgaWYgKHN0cm0uYXZhaWxfaW4gPT09IDApIGJyZWFrOwogICAgfQoKICAgIHJldHVybiB0cnVlOwogIH07CgoKICAvKioKICAgKiBJbmZsYXRlI29uRGF0YShjaHVuaykgLT4gVm9pZAogICAqIC0gY2h1bmsgKFVpbnQ4QXJyYXl8U3RyaW5nKTogb3V0cHV0IGRhdGEuIFdoZW4gc3RyaW5nIG91dHB1dCByZXF1ZXN0ZWQsCiAgICogICBlYWNoIGNodW5rIHdpbGwgYmUgc3RyaW5nLgogICAqCiAgICogQnkgZGVmYXVsdCwgc3RvcmVzIGRhdGEgYmxvY2tzIGluIGBjaHVua3NbXWAgcHJvcGVydHkgYW5kIGdsdWUKICAgKiB0aG9zZSBpbiBgb25FbmRgLiBPdmVycmlkZSB0aGlzIGhhbmRsZXIsIGlmIHlvdSBuZWVkIGFub3RoZXIgYmVoYXZpb3VyLgogICAqKi8KICBJbmZsYXRlJDEucHJvdG90eXBlLm9uRGF0YSA9IGZ1bmN0aW9uIChjaHVuaykgewogICAgdGhpcy5jaHVua3MucHVzaChjaHVuayk7CiAgfTsKCgogIC8qKgogICAqIEluZmxhdGUjb25FbmQoc3RhdHVzKSAtPiBWb2lkCiAgICogLSBzdGF0dXMgKE51bWJlcik6IGluZmxhdGUgc3RhdHVzLiAwIChaX09LKSBvbiBzdWNjZXNzLAogICAqICAgb3RoZXIgaWYgbm90LgogICAqCiAgICogQ2FsbGVkIGVpdGhlciBhZnRlciB5b3UgdGVsbCBpbmZsYXRlIHRoYXQgdGhlIGlucHV0IHN0cmVhbSBpcwogICAqIGNvbXBsZXRlIChaX0ZJTklTSCkuIEJ5IGRlZmF1bHQgLSBqb2luIGNvbGxlY3RlZCBjaHVua3MsCiAgICogZnJlZSBtZW1vcnkgYW5kIGZpbGwgYHJlc3VsdHNgIC8gYGVycmAgcHJvcGVydGllcy4KICAgKiovCiAgSW5mbGF0ZSQxLnByb3RvdHlwZS5vbkVuZCA9IGZ1bmN0aW9uIChzdGF0dXMpIHsKICAgIC8vIE9uIHN1Y2Nlc3MgLSBqb2luCiAgICBpZiAoc3RhdHVzID09PSBaX09LKSB7CiAgICAgIGlmICh0aGlzLm9wdGlvbnMudG8gPT09ICdzdHJpbmcnKSB7CiAgICAgICAgdGhpcy5yZXN1bHQgPSB0aGlzLmNodW5rcy5qb2luKCcnKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnJlc3VsdCA9IGNvbW1vbi5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKTsKICAgICAgfQogICAgfQogICAgdGhpcy5jaHVua3MgPSBbXTsKICAgIHRoaXMuZXJyID0gc3RhdHVzOwogICAgdGhpcy5tc2cgPSB0aGlzLnN0cm0ubXNnOwogIH07CgoKICAvKioKICAgKiBpbmZsYXRlKGRhdGFbLCBvcHRpb25zXSkgLT4gVWludDhBcnJheXxTdHJpbmcKICAgKiAtIGRhdGEgKFVpbnQ4QXJyYXkpOiBpbnB1dCBkYXRhIHRvIGRlY29tcHJlc3MuCiAgICogLSBvcHRpb25zIChPYmplY3QpOiB6bGliIGluZmxhdGUgb3B0aW9ucy4KICAgKgogICAqIERlY29tcHJlc3MgYGRhdGFgIHdpdGggaW5mbGF0ZS91bmd6aXAgYW5kIGBvcHRpb25zYC4gQXV0b2RldGVjdAogICAqIGZvcm1hdCB2aWEgd3JhcHBlciBoZWFkZXIgYnkgZGVmYXVsdC4gVGhhdCdzIHdoeSB3ZSBkb24ndCBwcm92aWRlCiAgICogc2VwYXJhdGUgYHVuZ3ppcGAgbWV0aG9kLgogICAqCiAgICogU3VwcG9ydGVkIG9wdGlvbnMgYXJlOgogICAqCiAgICogLSB3aW5kb3dCaXRzCiAgICoKICAgKiBbaHR0cDovL3psaWIubmV0L21hbnVhbC5odG1sI0FkdmFuY2VkXShodHRwOi8vemxpYi5uZXQvbWFudWFsLmh0bWwjQWR2YW5jZWQpCiAgICogZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICoKICAgKiBTdWdhciAob3B0aW9ucyk6CiAgICoKICAgKiAtIGByYXdgIChCb29sZWFuKSAtIHNheSB0aGF0IHdlIHdvcmsgd2l0aCByYXcgc3RyZWFtLCBpZiB5b3UgZG9uJ3Qgd2lzaCB0byBzcGVjaWZ5CiAgICogICBuZWdhdGl2ZSB3aW5kb3dCaXRzIGltcGxpY2l0bHkuCiAgICogLSBgdG9gIChTdHJpbmcpIC0gaWYgZXF1YWwgdG8gJ3N0cmluZycsIHRoZW4gcmVzdWx0IHdpbGwgYmUgY29udmVydGVkCiAgICogICBmcm9tIHV0ZjggdG8gdXRmMTYgKGphdmFzY3JpcHQpIHN0cmluZy4gV2hlbiBzdHJpbmcgb3V0cHV0IHJlcXVlc3RlZCwKICAgKiAgIGNodW5rIGxlbmd0aCBjYW4gZGlmZmVyIGZyb20gYGNodW5rU2l6ZWAsIGRlcGVuZGluZyBvbiBjb250ZW50LgogICAqCiAgICoKICAgKiAjIyMjIyBFeGFtcGxlOgogICAqCiAgICogYGBgamF2YXNjcmlwdAogICAqIGNvbnN0IHBha28gPSByZXF1aXJlKCdwYWtvJyk7CiAgICogY29uc3QgaW5wdXQgPSBwYWtvLmRlZmxhdGUobmV3IFVpbnQ4QXJyYXkoWzEsMiwzLDQsNSw2LDcsOCw5XSkpOwogICAqIGxldCBvdXRwdXQ7CiAgICoKICAgKiB0cnkgewogICAqICAgb3V0cHV0ID0gcGFrby5pbmZsYXRlKGlucHV0KTsKICAgKiB9IGNhdGNoIChlcnIpIHsKICAgKiAgIGNvbnNvbGUubG9nKGVycik7CiAgICogfQogICAqIGBgYAogICAqKi8KICBmdW5jdGlvbiBpbmZsYXRlJDEoaW5wdXQsIG9wdGlvbnMpIHsKICAgIGNvbnN0IGluZmxhdG9yID0gbmV3IEluZmxhdGUkMShvcHRpb25zKTsKCiAgICBpbmZsYXRvci5wdXNoKGlucHV0KTsKCiAgICAvLyBUaGF0IHdpbGwgbmV2ZXIgaGFwcGVucywgaWYgeW91IGRvbid0IGNoZWF0IHdpdGggb3B0aW9ucyA6KQogICAgaWYgKGluZmxhdG9yLmVycikgdGhyb3cgaW5mbGF0b3IubXNnIHx8IG1lc3NhZ2VzW2luZmxhdG9yLmVycl07CgogICAgcmV0dXJuIGluZmxhdG9yLnJlc3VsdDsKICB9CgoKICAvKioKICAgKiBpbmZsYXRlUmF3KGRhdGFbLCBvcHRpb25zXSkgLT4gVWludDhBcnJheXxTdHJpbmcKICAgKiAtIGRhdGEgKFVpbnQ4QXJyYXkpOiBpbnB1dCBkYXRhIHRvIGRlY29tcHJlc3MuCiAgICogLSBvcHRpb25zIChPYmplY3QpOiB6bGliIGluZmxhdGUgb3B0aW9ucy4KICAgKgogICAqIFRoZSBzYW1lIGFzIFtbaW5mbGF0ZV1dLCBidXQgY3JlYXRlcyByYXcgZGF0YSwgd2l0aG91dCB3cmFwcGVyCiAgICogKGhlYWRlciBhbmQgYWRsZXIzMiBjcmMpLgogICAqKi8KICBmdW5jdGlvbiBpbmZsYXRlUmF3JDEoaW5wdXQsIG9wdGlvbnMpIHsKICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgb3B0aW9ucy5yYXcgPSB0cnVlOwogICAgcmV0dXJuIGluZmxhdGUkMShpbnB1dCwgb3B0aW9ucyk7CiAgfQoKCiAgLyoqCiAgICogdW5nemlwKGRhdGFbLCBvcHRpb25zXSkgLT4gVWludDhBcnJheXxTdHJpbmcKICAgKiAtIGRhdGEgKFVpbnQ4QXJyYXkpOiBpbnB1dCBkYXRhIHRvIGRlY29tcHJlc3MuCiAgICogLSBvcHRpb25zIChPYmplY3QpOiB6bGliIGluZmxhdGUgb3B0aW9ucy4KICAgKgogICAqIEp1c3Qgc2hvcnRjdXQgdG8gW1tpbmZsYXRlXV0sIGJlY2F1c2UgaXQgYXV0b2RldGVjdHMgZm9ybWF0CiAgICogYnkgaGVhZGVyLmNvbnRlbnQuIERvbmUgZm9yIGNvbnZlbmllbmNlLgogICAqKi8KCgogIHZhciBJbmZsYXRlXzEkMSA9IEluZmxhdGUkMTsKICB2YXIgaW5mbGF0ZV8yID0gaW5mbGF0ZSQxOwogIHZhciBpbmZsYXRlUmF3XzEkMSA9IGluZmxhdGVSYXckMTsKICB2YXIgdW5nemlwJDEgPSBpbmZsYXRlJDE7CiAgdmFyIGNvbnN0YW50cyA9IGNvbnN0YW50cyQyOwoKICB2YXIgaW5mbGF0ZV8xJDEgPSB7CiAgCUluZmxhdGU6IEluZmxhdGVfMSQxLAogIAlpbmZsYXRlOiBpbmZsYXRlXzIsCiAgCWluZmxhdGVSYXc6IGluZmxhdGVSYXdfMSQxLAogIAl1bmd6aXA6IHVuZ3ppcCQxLAogIAljb25zdGFudHM6IGNvbnN0YW50cwogIH07CgogIGNvbnN0IHsgSW5mbGF0ZSwgaW5mbGF0ZSwgaW5mbGF0ZVJhdywgdW5nemlwIH0gPSBpbmZsYXRlXzEkMTsKICB2YXIgaW5mbGF0ZV8xID0gaW5mbGF0ZTsKCiAgY2xhc3MgRGVmbGF0ZURlY29kZXIgZXh0ZW5kcyBCYXNlRGVjb2RlciB7CiAgICBkZWNvZGVCbG9jayhidWZmZXIpIHsKICAgICAgcmV0dXJuIGluZmxhdGVfMShuZXcgVWludDhBcnJheShidWZmZXIpKS5idWZmZXI7CiAgICB9CiAgfQoKICBjbGFzcyBQYWNrYml0c0RlY29kZXIgZXh0ZW5kcyBCYXNlRGVjb2RlciB7CiAgICBkZWNvZGVCbG9jayhidWZmZXIpIHsKICAgICAgY29uc3QgZGF0YVZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyKTsKICAgICAgY29uc3Qgb3V0ID0gW107CgogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ1ZmZlci5ieXRlTGVuZ3RoOyArK2kpIHsKICAgICAgICBsZXQgaGVhZGVyID0gZGF0YVZpZXcuZ2V0SW50OChpKTsKICAgICAgICBpZiAoaGVhZGVyIDwgMCkgewogICAgICAgICAgY29uc3QgbmV4dCA9IGRhdGFWaWV3LmdldFVpbnQ4KGkgKyAxKTsKICAgICAgICAgIGhlYWRlciA9IC1oZWFkZXI7CiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8PSBoZWFkZXI7ICsraikgewogICAgICAgICAgICBvdXQucHVzaChuZXh0KTsKICAgICAgICAgIH0KICAgICAgICAgIGkgKz0gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPD0gaGVhZGVyOyArK2opIHsKICAgICAgICAgICAgb3V0LnB1c2goZGF0YVZpZXcuZ2V0VWludDgoaSArIGogKyAxKSk7CiAgICAgICAgICB9CiAgICAgICAgICBpICs9IGhlYWRlciArIDE7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShvdXQpLmJ1ZmZlcjsKICAgIH0KICB9CgogIHZhciBMZXJjRGVjb2RlID0ge2V4cG9ydHM6IHt9fTsKCiAgLyoganNoaW50IGZvcmluOiBmYWxzZSwgYml0d2lzZTogZmFsc2UgKi8KCiAgKGZ1bmN0aW9uIChtb2R1bGUpIHsKICAvKgogIENvcHlyaWdodCAyMDE1LTIwMTggRXNyaQoKICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgogIEEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYWRkaXRpb25hbCBub3RpY2VzIGFyZSBsb2NhdGVkIHdpdGggdGhlCiAgc291cmNlIGRpc3RyaWJ1dGlvbiBhdDoKCiAgaHR0cDovL2dpdGh1Yi5jb20vRXNyaS9sZXJjLwoKICBDb250cmlidXRvcnM6ICBKb2hhbm5lcyBTY2htaWQsIChMRVJDIHYxKQogICAgICAgICAgICAgICAgIENoYXlhbmlrYSBLaGF0dWEsIChMRVJDIHYxKQogICAgICAgICAgICAgICAgIFdlbnh1ZSBKdSAoTEVSQyB2MSwgdjIueCkKICAqLwoKICAvKiBDb3B5cmlnaHQgMjAxNS0yMDE4IEVzcmkuIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgQHByZXNlcnZlICovCgogIC8qKgogICAqIGEgbW9kdWxlIGZvciBkZWNvZGluZyBMRVJDIGJsb2JzCiAgICogQG1vZHVsZSBMZXJjCiAgICovCiAgKGZ1bmN0aW9uKCkgewogICAgLy90aGUgb3JpZ2luYWwgTGVyY0RlY29kZSBmb3IgVmVyc2lvbiAxCiAgICB2YXIgTGVyY0RlY29kZSA9IChmdW5jdGlvbigpIHsKCiAgICAgIC8vIFdBUk5JTkc6IFRoaXMgZGVjb2RlciB2ZXJzaW9uIGNhbiBvbmx5IHJlYWQgb2xkIHZlcnNpb24gMSBMZXJjIGJsb2JzLiBVc2Ugd2l0aCBjYXV0aW9uLgoKICAgICAgLy8gTm90ZTogY3VycmVudGx5LCB0aGlzIG1vZHVsZSBvbmx5IGhhcyBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgZGVjb2RpbmcgTEVSQyBkYXRhLCBub3QgZW5jb2RpbmcuIFRoZSBuYW1lIG9mCiAgICAgIC8vIHRoZSBjbGFzcyB3YXMgY2hvc2VuIHRvIGJlIGZ1dHVyZSBwcm9vZi4KCiAgICAgIHZhciBDbnRaSW1hZ2UgPSB7fTsKCiAgICAgIENudFpJbWFnZS5kZWZhdWx0Tm9EYXRhVmFsdWUgPSAtMy40MDI3OTk5Mzg3OTAxNDg0ZSszODsgLy8gc21hbGxlc3QgRmxvYXQzMiB2YWx1ZQoKICAgICAgLyoqCiAgICAgICAqIERlY29kZSBhIExFUkMgYnl0ZSBzdHJlYW0gYW5kIHJldHVybiBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcGl4ZWwgZGF0YSBhbmQgc29tZSByZXF1aXJlZCBhbmQgb3B0aW9uYWwKICAgICAgICogaW5mb3JtYXRpb24gYWJvdXQgaXQsIHN1Y2ggYXMgdGhlIGltYWdlJ3Mgd2lkdGggYW5kIGhlaWdodC4KICAgICAgICoKICAgICAgICogQHBhcmFtIHtBcnJheUJ1ZmZlcn0gaW5wdXQgVGhlIExFUkMgaW5wdXQgYnl0ZSBzdHJlYW0KICAgICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXSBEZWNvZGluZyBvcHRpb25zLCBjb250YWluaW5nIGFueSBvZiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqIEBjb25maWcge251bWJlcn0gW2lucHV0T2Zmc2V0ID0gMF0KICAgICAgICogICAgICAgIFNraXAgdGhlIGZpcnN0IGlucHV0T2Zmc2V0IGJ5dGVzIG9mIHRoZSBpbnB1dCBieXRlIHN0cmVhbS4gQSB2YWxpZCBMRVJDIGZpbGUgaXMgZXhwZWN0ZWQgYXQgdGhhdCBwb3NpdGlvbi4KICAgICAgICogQGNvbmZpZyB7VWludDhBcnJheX0gW2VuY29kZWRNYXNrID0gbnVsbF0KICAgICAgICogICAgICAgIElmIHNwZWNpZmllZCwgdGhlIGRlY29kZXIgd2lsbCBub3QgcmVhZCBtYXNrIGluZm9ybWF0aW9uIGZyb20gdGhlIGlucHV0IGFuZCB1c2UgdGhlIHNwZWNpZmllZCBlbmNvZGVkCiAgICAgICAqICAgICAgICBtYXNrIGRhdGEgaW5zdGVhZC4gTWFzayBoZWFkZXIvZGF0YSBtdXN0IG5vdCBiZSBwcmVzZW50IGluIHRoZSBMRVJDIGJ5dGUgc3RyZWFtIGluIHRoaXMgY2FzZS4KICAgICAgICogQGNvbmZpZyB7bnVtYmVyfSBbbm9EYXRhVmFsdWUgPSBMZXJjQ29kZS5kZWZhdWx0Tm9EYXRhVmFsdWVdCiAgICAgICAqICAgICAgICBQaXhlbCB2YWx1ZSB0byB1c2UgZm9yIG1hc2tlZCBwaXhlbHMuCiAgICAgICAqIEBjb25maWcge0FycmF5QnVmZmVyVmlld3xBcnJheX0gW3BpeGVsVHlwZSA9IEZsb2F0MzJBcnJheV0KICAgICAgICogICAgICAgIFRoZSBkZXNpcmVkIHR5cGUgb2YgdGhlIHBpeGVsRGF0YSBhcnJheSBpbiB0aGUgcmV0dXJuIHZhbHVlLiBOb3RlIHRoYXQgaXQgaXMgdGhlIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRvCiAgICAgICAqICAgICAgICBwcm92aWRlIGFuIGFwcHJvcHJpYXRlIG5vRGF0YVZhbHVlIGlmIHRoZSBkZWZhdWx0IHBpeGVsVHlwZSBpcyBvdmVycmlkZGVuLgogICAgICAgKiBAY29uZmlnIHtib29sZWFufSBbcmV0dXJuTWFzayA9IGZhbHNlXQogICAgICAgKiAgICAgICAgSWYgdHJ1ZSwgdGhlIHJldHVybiB2YWx1ZSB3aWxsIGNvbnRhaW4gYSBtYXNrRGF0YSBwcm9wZXJ0eSBvZiB0eXBlIFVpbnQ4QXJyYXkgd2hpY2ggaGFzIG9uZSBlbGVtZW50IHBlcgogICAgICAgKiAgICAgICAgcGl4ZWwsIHRoZSB2YWx1ZSBvZiB3aGljaCBpcyAxIG9yIDAgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhhdCBwaXhlbCdzIGRhdGEgaXMgcHJlc2VudCBvciBtYXNrZWQuIElmIHRoZQogICAgICAgKiAgICAgICAgaW5wdXQgTEVSQyBkYXRhIGRvZXMgbm90IGNvbnRhaW4gYSBtYXNrLCBtYXNrRGF0YSB3aWxsIG5vdCBiZSByZXR1cm5lZC4KICAgICAgICogQGNvbmZpZyB7Ym9vbGVhbn0gW3JldHVybkVuY29kZWRNYXNrID0gZmFsc2VdCiAgICAgICAqICAgICAgICBJZiB0cnVlLCB0aGUgcmV0dXJuIHZhbHVlIHdpbGwgY29udGFpbiBhIGVuY29kZWRNYXNrRGF0YSBwcm9wZXJ0eSwgd2hpY2ggY2FuIGJlIHBhc3NlZCBpbnRvIGVuY29kZSgpIGFzCiAgICAgICAqICAgICAgICBlbmNvZGVkTWFzay4KICAgICAgICogQGNvbmZpZyB7Ym9vbGVhbn0gW3JldHVybkZpbGVJbmZvID0gZmFsc2VdCiAgICAgICAqICAgICAgICBJZiB0cnVlLCB0aGUgcmV0dXJuIHZhbHVlIHdpbGwgaGF2ZSBhIGZpbGVJbmZvIHByb3BlcnR5IHRoYXQgY29udGFpbnMgbWV0YWRhdGEgb2J0YWluZWQgZnJvbSB0aGUKICAgICAgICogICAgICAgIExFUkMgaGVhZGVycyBhbmQgdGhlIGRlY29kaW5nIHByb2Nlc3MuCiAgICAgICAqIEBjb25maWcge2Jvb2xlYW59IFtjb21wdXRlVXNlZEJpdERlcHRocyA9IGZhbHNlXQogICAgICAgKiAgICAgICAgSWYgdHJ1ZSwgdGhlIGZpbGVJbmZvIHByb3BlcnR5IGluIHRoZSByZXR1cm4gdmFsdWUgd2lsbCBjb250YWluIHRoZSBzZXQgb2YgYWxsIGJsb2NrIGJpdCBkZXB0aHMKICAgICAgICogICAgICAgIGVuY291bnRlcmVkIGR1cmluZyBkZWNvZGluZy4gV2lsbCBvbmx5IGhhdmUgYW4gZWZmZWN0IGlmIHJldHVybkZpbGVJbmZvIG9wdGlvbiBpcyB0cnVlLgogICAgICAgKiBAcmV0dXJucyB7e3dpZHRoLCBoZWlnaHQsIHBpeGVsRGF0YSwgbWluVmFsdWUsIG1heFZhbHVlLCBub0RhdGFWYWx1ZSwgbWFza0RhdGEsIGVuY29kZWRNYXNrRGF0YSwgZmlsZUluZm99fQogICAgICAgKi8KICAgICAgQ250WkltYWdlLmRlY29kZSA9IGZ1bmN0aW9uKGlucHV0LCBvcHRpb25zKSB7CiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgogICAgICAgIHZhciBza2lwTWFzayA9IG9wdGlvbnMuZW5jb2RlZE1hc2tEYXRhIHx8IChvcHRpb25zLmVuY29kZWRNYXNrRGF0YSA9PT0gbnVsbCk7CiAgICAgICAgdmFyIHBhcnNlZERhdGEgPSBwYXJzZShpbnB1dCwgb3B0aW9ucy5pbnB1dE9mZnNldCB8fCAwLCBza2lwTWFzayk7CgogICAgICAgIHZhciBub0RhdGFWYWx1ZSA9IChvcHRpb25zLm5vRGF0YVZhbHVlICE9PSBudWxsKSA/IG9wdGlvbnMubm9EYXRhVmFsdWUgOiBDbnRaSW1hZ2UuZGVmYXVsdE5vRGF0YVZhbHVlOwoKICAgICAgICB2YXIgdW5jb21wcmVzc2VkRGF0YSA9IHVuY29tcHJlc3NQaXhlbFZhbHVlcyhwYXJzZWREYXRhLCBvcHRpb25zLnBpeGVsVHlwZSB8fCBGbG9hdDMyQXJyYXksCiAgICAgICAgICBvcHRpb25zLmVuY29kZWRNYXNrRGF0YSwgbm9EYXRhVmFsdWUsIG9wdGlvbnMucmV0dXJuTWFzayk7CgogICAgICAgIHZhciByZXN1bHQgPSB7CiAgICAgICAgICB3aWR0aDogcGFyc2VkRGF0YS53aWR0aCwKICAgICAgICAgIGhlaWdodDogcGFyc2VkRGF0YS5oZWlnaHQsCiAgICAgICAgICBwaXhlbERhdGE6IHVuY29tcHJlc3NlZERhdGEucmVzdWx0UGl4ZWxzLAogICAgICAgICAgbWluVmFsdWU6IHVuY29tcHJlc3NlZERhdGEubWluVmFsdWUsCiAgICAgICAgICBtYXhWYWx1ZTogcGFyc2VkRGF0YS5waXhlbHMubWF4VmFsdWUsCiAgICAgICAgICBub0RhdGFWYWx1ZTogbm9EYXRhVmFsdWUKICAgICAgICB9OwoKICAgICAgICBpZiAodW5jb21wcmVzc2VkRGF0YS5yZXN1bHRNYXNrKSB7CiAgICAgICAgICByZXN1bHQubWFza0RhdGEgPSB1bmNvbXByZXNzZWREYXRhLnJlc3VsdE1hc2s7CiAgICAgICAgfQoKICAgICAgICBpZiAob3B0aW9ucy5yZXR1cm5FbmNvZGVkTWFzayAmJiBwYXJzZWREYXRhLm1hc2spIHsKICAgICAgICAgIHJlc3VsdC5lbmNvZGVkTWFza0RhdGEgPSBwYXJzZWREYXRhLm1hc2suYml0c2V0ID8gcGFyc2VkRGF0YS5tYXNrLmJpdHNldCA6IG51bGw7CiAgICAgICAgfQoKICAgICAgICBpZiAob3B0aW9ucy5yZXR1cm5GaWxlSW5mbykgewogICAgICAgICAgcmVzdWx0LmZpbGVJbmZvID0gZm9ybWF0RmlsZUluZm8ocGFyc2VkRGF0YSk7CiAgICAgICAgICBpZiAob3B0aW9ucy5jb21wdXRlVXNlZEJpdERlcHRocykgewogICAgICAgICAgICByZXN1bHQuZmlsZUluZm8uYml0RGVwdGhzID0gY29tcHV0ZVVzZWRCaXREZXB0aHMocGFyc2VkRGF0YSk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9OwoKICAgICAgdmFyIHVuY29tcHJlc3NQaXhlbFZhbHVlcyA9IGZ1bmN0aW9uKGRhdGEsIFR5cGVkQXJyYXlDbGFzcywgbWFza0JpdHNldCwgbm9EYXRhVmFsdWUsIHN0b3JlRGVjb2RlZE1hc2spIHsKICAgICAgICB2YXIgYmxvY2tJZHggPSAwOwogICAgICAgIHZhciBudW1YID0gZGF0YS5waXhlbHMubnVtQmxvY2tzWDsKICAgICAgICB2YXIgbnVtWSA9IGRhdGEucGl4ZWxzLm51bUJsb2Nrc1k7CiAgICAgICAgdmFyIGJsb2NrV2lkdGggPSBNYXRoLmZsb29yKGRhdGEud2lkdGggLyBudW1YKTsKICAgICAgICB2YXIgYmxvY2tIZWlnaHQgPSBNYXRoLmZsb29yKGRhdGEuaGVpZ2h0IC8gbnVtWSk7CiAgICAgICAgdmFyIHNjYWxlID0gMiAqIGRhdGEubWF4WkVycm9yOwogICAgICAgIHZhciBtaW5WYWx1ZSA9IE51bWJlci5NQVhfVkFMVUUsIGN1cnJlbnRWYWx1ZTsKICAgICAgICBtYXNrQml0c2V0ID0gbWFza0JpdHNldCB8fCAoKGRhdGEubWFzaykgPyBkYXRhLm1hc2suYml0c2V0IDogbnVsbCk7CgogICAgICAgIHZhciByZXN1bHRQaXhlbHMsIHJlc3VsdE1hc2s7CiAgICAgICAgcmVzdWx0UGl4ZWxzID0gbmV3IFR5cGVkQXJyYXlDbGFzcyhkYXRhLndpZHRoICogZGF0YS5oZWlnaHQpOwogICAgICAgIGlmIChzdG9yZURlY29kZWRNYXNrICYmIG1hc2tCaXRzZXQpIHsKICAgICAgICAgIHJlc3VsdE1hc2sgPSBuZXcgVWludDhBcnJheShkYXRhLndpZHRoICogZGF0YS5oZWlnaHQpOwogICAgICAgIH0KICAgICAgICB2YXIgYmxvY2tEYXRhQnVmZmVyID0gbmV3IEZsb2F0MzJBcnJheShibG9ja1dpZHRoICogYmxvY2tIZWlnaHQpOwoKICAgICAgICB2YXIgeHgsIHl5OwogICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDw9IG51bVk7IHkrKykgewogICAgICAgICAgdmFyIHRoaXNCbG9ja0hlaWdodCA9ICh5ICE9PSBudW1ZKSA/IGJsb2NrSGVpZ2h0IDogKGRhdGEuaGVpZ2h0ICUgbnVtWSk7CiAgICAgICAgICBpZiAodGhpc0Jsb2NrSGVpZ2h0ID09PSAwKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgZm9yICh2YXIgeCA9IDA7IHggPD0gbnVtWDsgeCsrKSB7CiAgICAgICAgICAgIHZhciB0aGlzQmxvY2tXaWR0aCA9ICh4ICE9PSBudW1YKSA/IGJsb2NrV2lkdGggOiAoZGF0YS53aWR0aCAlIG51bVgpOwogICAgICAgICAgICBpZiAodGhpc0Jsb2NrV2lkdGggPT09IDApIHsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIG91dFB0ciA9IHkgKiBkYXRhLndpZHRoICogYmxvY2tIZWlnaHQgKyB4ICogYmxvY2tXaWR0aDsKICAgICAgICAgICAgdmFyIG91dFN0cmlkZSA9IGRhdGEud2lkdGggLSB0aGlzQmxvY2tXaWR0aDsKCiAgICAgICAgICAgIHZhciBibG9jayA9IGRhdGEucGl4ZWxzLmJsb2Nrc1tibG9ja0lkeF07CgogICAgICAgICAgICB2YXIgYmxvY2tEYXRhLCBibG9ja1B0ciwgY29uc3RWYWx1ZTsKICAgICAgICAgICAgaWYgKGJsb2NrLmVuY29kaW5nIDwgMikgewogICAgICAgICAgICAgIC8vIGJsb2NrIGlzIGVpdGhlciB1bmNvbXByZXNzZWQgb3IgYml0LXN0dWZmZWQgKGVuY29kaW5ncyAwIGFuZCAxKQogICAgICAgICAgICAgIGlmIChibG9jay5lbmNvZGluZyA9PT0gMCkgewogICAgICAgICAgICAgICAgLy8gYmxvY2sgaXMgdW5jb21wcmVzc2VkCiAgICAgICAgICAgICAgICBibG9ja0RhdGEgPSBibG9jay5yYXdEYXRhOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBibG9jayBpcyBiaXQtc3R1ZmZlZAogICAgICAgICAgICAgICAgdW5zdHVmZihibG9jay5zdHVmZmVkRGF0YSwgYmxvY2suYml0c1BlclBpeGVsLCBibG9jay5udW1WYWxpZFBpeGVscywgYmxvY2sub2Zmc2V0LCBzY2FsZSwgYmxvY2tEYXRhQnVmZmVyLCBkYXRhLnBpeGVscy5tYXhWYWx1ZSk7CiAgICAgICAgICAgICAgICBibG9ja0RhdGEgPSBibG9ja0RhdGFCdWZmZXI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJsb2NrUHRyID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChibG9jay5lbmNvZGluZyA9PT0gMikgewogICAgICAgICAgICAgIC8vIGJsb2NrIGlzIGFsbCAwCiAgICAgICAgICAgICAgY29uc3RWYWx1ZSA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgLy8gYmxvY2sgaGFzIGNvbnN0YW50IHZhbHVlIChlbmNvZGluZyA9PT0gMykKICAgICAgICAgICAgICBjb25zdFZhbHVlID0gYmxvY2sub2Zmc2V0OwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgbWFza0J5dGU7CiAgICAgICAgICAgIGlmIChtYXNrQml0c2V0KSB7CiAgICAgICAgICAgICAgZm9yICh5eSA9IDA7IHl5IDwgdGhpc0Jsb2NrSGVpZ2h0OyB5eSsrKSB7CiAgICAgICAgICAgICAgICBpZiAob3V0UHRyICYgNykgewogICAgICAgICAgICAgICAgICAvLwogICAgICAgICAgICAgICAgICBtYXNrQnl0ZSA9IG1hc2tCaXRzZXRbb3V0UHRyID4+IDNdOwogICAgICAgICAgICAgICAgICBtYXNrQnl0ZSA8PD0gb3V0UHRyICYgNzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZvciAoeHggPSAwOyB4eCA8IHRoaXNCbG9ja1dpZHRoOyB4eCsrKSB7CiAgICAgICAgICAgICAgICAgIGlmICghKG91dFB0ciAmIDcpKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gcmVhZCBuZXh0IGJ5dGUgZnJvbSBtYXNrCiAgICAgICAgICAgICAgICAgICAgbWFza0J5dGUgPSBtYXNrQml0c2V0W291dFB0ciA+PiAzXTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAobWFza0J5dGUgJiAxMjgpIHsKICAgICAgICAgICAgICAgICAgICAvLyBwaXhlbCBkYXRhIHByZXNlbnQKICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0TWFzaykgewogICAgICAgICAgICAgICAgICAgICAgcmVzdWx0TWFza1tvdXRQdHJdID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlID0gKGJsb2NrLmVuY29kaW5nIDwgMikgPyBibG9ja0RhdGFbYmxvY2tQdHIrK10gOiBjb25zdFZhbHVlOwogICAgICAgICAgICAgICAgICAgIG1pblZhbHVlID0gbWluVmFsdWUgPiBjdXJyZW50VmFsdWUgPyBjdXJyZW50VmFsdWUgOiBtaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICByZXN1bHRQaXhlbHNbb3V0UHRyKytdID0gY3VycmVudFZhbHVlOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIHBpeGVsIGRhdGEgbm90IHByZXNlbnQKICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0TWFzaykgewogICAgICAgICAgICAgICAgICAgICAgcmVzdWx0TWFza1tvdXRQdHJdID0gMDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0UGl4ZWxzW291dFB0cisrXSA9IG5vRGF0YVZhbHVlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIG1hc2tCeXRlIDw8PSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgb3V0UHRyICs9IG91dFN0cmlkZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgLy8gbWFzayBub3QgcHJlc2VudCwgc2ltcGx5IGNvcHkgYmxvY2sgb3ZlcgogICAgICAgICAgICAgIGlmIChibG9jay5lbmNvZGluZyA8IDIpIHsKICAgICAgICAgICAgICAgIC8vIGR1cGxpY2F0aW5nIHRoaXMgY29kZSBibG9jayBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucwogICAgICAgICAgICAgICAgLy8gYmxvY2tEYXRhIGNhc2U6CiAgICAgICAgICAgICAgICBmb3IgKHl5ID0gMDsgeXkgPCB0aGlzQmxvY2tIZWlnaHQ7IHl5KyspIHsKICAgICAgICAgICAgICAgICAgZm9yICh4eCA9IDA7IHh4IDwgdGhpc0Jsb2NrV2lkdGg7IHh4KyspIHsKICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUgPSBibG9ja0RhdGFbYmxvY2tQdHIrK107CiAgICAgICAgICAgICAgICAgICAgbWluVmFsdWUgPSBtaW5WYWx1ZSA+IGN1cnJlbnRWYWx1ZSA/IGN1cnJlbnRWYWx1ZSA6IG1pblZhbHVlOwogICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHIrK10gPSBjdXJyZW50VmFsdWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgb3V0UHRyICs9IG91dFN0cmlkZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBjb25zdFZhbHVlIGNhc2U6CiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IG1pblZhbHVlID4gY29uc3RWYWx1ZSA/IGNvbnN0VmFsdWUgOiBtaW5WYWx1ZTsKICAgICAgICAgICAgICAgIGZvciAoeXkgPSAwOyB5eSA8IHRoaXNCbG9ja0hlaWdodDsgeXkrKykgewogICAgICAgICAgICAgICAgICBmb3IgKHh4ID0gMDsgeHggPCB0aGlzQmxvY2tXaWR0aDsgeHgrKykgewogICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHIrK10gPSBjb25zdFZhbHVlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIG91dFB0ciArPSBvdXRTdHJpZGU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgoYmxvY2suZW5jb2RpbmcgPT09IDEpICYmIChibG9ja1B0ciAhPT0gYmxvY2subnVtVmFsaWRQaXhlbHMpKSB7CiAgICAgICAgICAgICAgdGhyb3cgIkJsb2NrIGFuZCBNYXNrIGRvIG5vdCBtYXRjaCI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYmxvY2tJZHgrKzsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICByZXN1bHRQaXhlbHM6IHJlc3VsdFBpeGVscywKICAgICAgICAgIHJlc3VsdE1hc2s6IHJlc3VsdE1hc2ssCiAgICAgICAgICBtaW5WYWx1ZTogbWluVmFsdWUKICAgICAgICB9OwogICAgICB9OwoKICAgICAgdmFyIGZvcm1hdEZpbGVJbmZvID0gZnVuY3Rpb24oZGF0YSkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAiZmlsZUlkZW50aWZpZXJTdHJpbmciOiBkYXRhLmZpbGVJZGVudGlmaWVyU3RyaW5nLAogICAgICAgICAgImZpbGVWZXJzaW9uIjogZGF0YS5maWxlVmVyc2lvbiwKICAgICAgICAgICJpbWFnZVR5cGUiOiBkYXRhLmltYWdlVHlwZSwKICAgICAgICAgICJoZWlnaHQiOiBkYXRhLmhlaWdodCwKICAgICAgICAgICJ3aWR0aCI6IGRhdGEud2lkdGgsCiAgICAgICAgICAibWF4WkVycm9yIjogZGF0YS5tYXhaRXJyb3IsCiAgICAgICAgICAiZW9mT2Zmc2V0IjogZGF0YS5lb2ZPZmZzZXQsCiAgICAgICAgICAibWFzayI6IGRhdGEubWFzayA/IHsKICAgICAgICAgICAgIm51bUJsb2Nrc1giOiBkYXRhLm1hc2subnVtQmxvY2tzWCwKICAgICAgICAgICAgIm51bUJsb2Nrc1kiOiBkYXRhLm1hc2subnVtQmxvY2tzWSwKICAgICAgICAgICAgIm51bUJ5dGVzIjogZGF0YS5tYXNrLm51bUJ5dGVzLAogICAgICAgICAgICAibWF4VmFsdWUiOiBkYXRhLm1hc2subWF4VmFsdWUKICAgICAgICAgIH0gOiBudWxsLAogICAgICAgICAgInBpeGVscyI6IHsKICAgICAgICAgICAgIm51bUJsb2Nrc1giOiBkYXRhLnBpeGVscy5udW1CbG9ja3NYLAogICAgICAgICAgICAibnVtQmxvY2tzWSI6IGRhdGEucGl4ZWxzLm51bUJsb2Nrc1ksCiAgICAgICAgICAgICJudW1CeXRlcyI6IGRhdGEucGl4ZWxzLm51bUJ5dGVzLAogICAgICAgICAgICAibWF4VmFsdWUiOiBkYXRhLnBpeGVscy5tYXhWYWx1ZSwKICAgICAgICAgICAgIm5vRGF0YVZhbHVlIjogZGF0YS5ub0RhdGFWYWx1ZQogICAgICAgICAgfQogICAgICAgIH07CiAgICAgIH07CgogICAgICB2YXIgY29tcHV0ZVVzZWRCaXREZXB0aHMgPSBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgdmFyIG51bUJsb2NrcyA9IGRhdGEucGl4ZWxzLm51bUJsb2Nrc1ggKiBkYXRhLnBpeGVscy5udW1CbG9ja3NZOwogICAgICAgIHZhciBiaXREZXB0aHMgPSB7fTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bUJsb2NrczsgaSsrKSB7CiAgICAgICAgICB2YXIgYmxvY2sgPSBkYXRhLnBpeGVscy5ibG9ja3NbaV07CiAgICAgICAgICBpZiAoYmxvY2suZW5jb2RpbmcgPT09IDApIHsKICAgICAgICAgICAgYml0RGVwdGhzLmZsb2F0MzIgPSB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmIChibG9jay5lbmNvZGluZyA9PT0gMSkgewogICAgICAgICAgICBiaXREZXB0aHNbYmxvY2suYml0c1BlclBpeGVsXSA9IHRydWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBiaXREZXB0aHNbMF0gPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGJpdERlcHRocyk7CiAgICAgIH07CgogICAgICB2YXIgcGFyc2UgPSBmdW5jdGlvbihpbnB1dCwgZnAsIHNraXBNYXNrKSB7CiAgICAgICAgdmFyIGRhdGEgPSB7fTsKCiAgICAgICAgLy8gRmlsZSBoZWFkZXIKICAgICAgICB2YXIgZmlsZUlkVmlldyA9IG5ldyBVaW50OEFycmF5KGlucHV0LCBmcCwgMTApOwogICAgICAgIGRhdGEuZmlsZUlkZW50aWZpZXJTdHJpbmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGZpbGVJZFZpZXcpOwogICAgICAgIGlmIChkYXRhLmZpbGVJZGVudGlmaWVyU3RyaW5nLnRyaW0oKSAhPT0gIkNudFpJbWFnZSIpIHsKICAgICAgICAgIHRocm93ICJVbmV4cGVjdGVkIGZpbGUgaWRlbnRpZmllciBzdHJpbmc6ICIgKyBkYXRhLmZpbGVJZGVudGlmaWVyU3RyaW5nOwogICAgICAgIH0KICAgICAgICBmcCArPSAxMDsKICAgICAgICB2YXIgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZnAsIDI0KTsKICAgICAgICBkYXRhLmZpbGVWZXJzaW9uID0gdmlldy5nZXRJbnQzMigwLCB0cnVlKTsKICAgICAgICBkYXRhLmltYWdlVHlwZSA9IHZpZXcuZ2V0SW50MzIoNCwgdHJ1ZSk7CiAgICAgICAgZGF0YS5oZWlnaHQgPSB2aWV3LmdldFVpbnQzMig4LCB0cnVlKTsKICAgICAgICBkYXRhLndpZHRoID0gdmlldy5nZXRVaW50MzIoMTIsIHRydWUpOwogICAgICAgIGRhdGEubWF4WkVycm9yID0gdmlldy5nZXRGbG9hdDY0KDE2LCB0cnVlKTsKICAgICAgICBmcCArPSAyNDsKCiAgICAgICAgLy8gTWFzayBIZWFkZXIKICAgICAgICBpZiAoIXNraXBNYXNrKSB7CiAgICAgICAgICB2aWV3ID0gbmV3IERhdGFWaWV3KGlucHV0LCBmcCwgMTYpOwogICAgICAgICAgZGF0YS5tYXNrID0ge307CiAgICAgICAgICBkYXRhLm1hc2subnVtQmxvY2tzWSA9IHZpZXcuZ2V0VWludDMyKDAsIHRydWUpOwogICAgICAgICAgZGF0YS5tYXNrLm51bUJsb2Nrc1ggPSB2aWV3LmdldFVpbnQzMig0LCB0cnVlKTsKICAgICAgICAgIGRhdGEubWFzay5udW1CeXRlcyA9IHZpZXcuZ2V0VWludDMyKDgsIHRydWUpOwogICAgICAgICAgZGF0YS5tYXNrLm1heFZhbHVlID0gdmlldy5nZXRGbG9hdDMyKDEyLCB0cnVlKTsKICAgICAgICAgIGZwICs9IDE2OwoKICAgICAgICAgIC8vIE1hc2sgRGF0YQogICAgICAgICAgaWYgKGRhdGEubWFzay5udW1CeXRlcyA+IDApIHsKICAgICAgICAgICAgdmFyIGJpdHNldCA9IG5ldyBVaW50OEFycmF5KE1hdGguY2VpbChkYXRhLndpZHRoICogZGF0YS5oZWlnaHQgLyA4KSk7CiAgICAgICAgICAgIHZpZXcgPSBuZXcgRGF0YVZpZXcoaW5wdXQsIGZwLCBkYXRhLm1hc2subnVtQnl0ZXMpOwogICAgICAgICAgICB2YXIgY250ID0gdmlldy5nZXRJbnQxNigwLCB0cnVlKTsKICAgICAgICAgICAgdmFyIGlwID0gMiwgb3AgPSAwOwogICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgaWYgKGNudCA+IDApIHsKICAgICAgICAgICAgICAgIHdoaWxlIChjbnQtLSkgeyBiaXRzZXRbb3ArK10gPSB2aWV3LmdldFVpbnQ4KGlwKyspOyB9CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciB2YWwgPSB2aWV3LmdldFVpbnQ4KGlwKyspOwogICAgICAgICAgICAgICAgY250ID0gLWNudDsKICAgICAgICAgICAgICAgIHdoaWxlIChjbnQtLSkgeyBiaXRzZXRbb3ArK10gPSB2YWw7IH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY250ID0gdmlldy5nZXRJbnQxNihpcCwgdHJ1ZSk7CiAgICAgICAgICAgICAgaXAgKz0gMjsKICAgICAgICAgICAgfSB3aGlsZSAoaXAgPCBkYXRhLm1hc2subnVtQnl0ZXMpOwogICAgICAgICAgICBpZiAoKGNudCAhPT0gLTMyNzY4KSB8fCAob3AgPCBiaXRzZXQubGVuZ3RoKSkgewogICAgICAgICAgICAgIHRocm93ICJVbmV4cGVjdGVkIGVuZCBvZiBtYXNrIFJMRSBlbmNvZGluZyI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YS5tYXNrLmJpdHNldCA9IGJpdHNldDsKICAgICAgICAgICAgZnAgKz0gZGF0YS5tYXNrLm51bUJ5dGVzOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAoKGRhdGEubWFzay5udW1CeXRlcyB8IGRhdGEubWFzay5udW1CbG9ja3NZIHwgZGF0YS5tYXNrLm1heFZhbHVlKSA9PT0gMCkgeyAgLy8gU3BlY2lhbCBjYXNlLCBhbGwgbm9kYXRhCiAgICAgICAgICAgIGRhdGEubWFzay5iaXRzZXQgPSBuZXcgVWludDhBcnJheShNYXRoLmNlaWwoZGF0YS53aWR0aCAqIGRhdGEuaGVpZ2h0IC8gOCkpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gUGl4ZWwgSGVhZGVyCiAgICAgICAgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZnAsIDE2KTsKICAgICAgICBkYXRhLnBpeGVscyA9IHt9OwogICAgICAgIGRhdGEucGl4ZWxzLm51bUJsb2Nrc1kgPSB2aWV3LmdldFVpbnQzMigwLCB0cnVlKTsKICAgICAgICBkYXRhLnBpeGVscy5udW1CbG9ja3NYID0gdmlldy5nZXRVaW50MzIoNCwgdHJ1ZSk7CiAgICAgICAgZGF0YS5waXhlbHMubnVtQnl0ZXMgPSB2aWV3LmdldFVpbnQzMig4LCB0cnVlKTsKICAgICAgICBkYXRhLnBpeGVscy5tYXhWYWx1ZSA9IHZpZXcuZ2V0RmxvYXQzMigxMiwgdHJ1ZSk7CiAgICAgICAgZnAgKz0gMTY7CgogICAgICAgIHZhciBudW1CbG9ja3NYID0gZGF0YS5waXhlbHMubnVtQmxvY2tzWDsKICAgICAgICB2YXIgbnVtQmxvY2tzWSA9IGRhdGEucGl4ZWxzLm51bUJsb2Nrc1k7CiAgICAgICAgLy8gdGhlIG51bWJlciBvZiBibG9ja3Mgc3BlY2lmaWVkIGluIHRoZSBoZWFkZXIgZG9lcyBub3QgdGFrZSBpbnRvIGFjY291bnQgdGhlIGJsb2NrcyBhdCB0aGUgZW5kIG9mCiAgICAgICAgLy8gZWFjaCByb3cvY29sdW1uIHdpdGggYSBzcGVjaWFsIHdpZHRoL2hlaWdodCB0aGF0IG1ha2UgdGhlIGltYWdlIGNvbXBsZXRlIGluIGNhc2UgdGhlIHdpZHRoIGlzIG5vdAogICAgICAgIC8vIGV2ZW5seSBkaXZpc2libGUgYnkgdGhlIG51bWJlciBvZiBibG9ja3MuCiAgICAgICAgdmFyIGFjdHVhbE51bUJsb2Nrc1ggPSBudW1CbG9ja3NYICsgKChkYXRhLndpZHRoICUgbnVtQmxvY2tzWCkgPiAwID8gMSA6IDApOwogICAgICAgIHZhciBhY3R1YWxOdW1CbG9ja3NZID0gbnVtQmxvY2tzWSArICgoZGF0YS5oZWlnaHQgJSBudW1CbG9ja3NZKSA+IDAgPyAxIDogMCk7CiAgICAgICAgZGF0YS5waXhlbHMuYmxvY2tzID0gbmV3IEFycmF5KGFjdHVhbE51bUJsb2Nrc1ggKiBhY3R1YWxOdW1CbG9ja3NZKTsKICAgICAgICB2YXIgYmxvY2tJID0gMDsKICAgICAgICBmb3IgKHZhciBibG9ja1kgPSAwOyBibG9ja1kgPCBhY3R1YWxOdW1CbG9ja3NZOyBibG9ja1krKykgewogICAgICAgICAgZm9yICh2YXIgYmxvY2tYID0gMDsgYmxvY2tYIDwgYWN0dWFsTnVtQmxvY2tzWDsgYmxvY2tYKyspIHsKCiAgICAgICAgICAgIC8vIEJsb2NrCiAgICAgICAgICAgIHZhciBzaXplID0gMDsKICAgICAgICAgICAgdmFyIGJ5dGVzTGVmdCA9IGlucHV0LmJ5dGVMZW5ndGggLSBmcDsKICAgICAgICAgICAgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZnAsIE1hdGgubWluKDEwLCBieXRlc0xlZnQpKTsKICAgICAgICAgICAgdmFyIGJsb2NrID0ge307CiAgICAgICAgICAgIGRhdGEucGl4ZWxzLmJsb2Nrc1tibG9ja0krK10gPSBibG9jazsKICAgICAgICAgICAgdmFyIGhlYWRlckJ5dGUgPSB2aWV3LmdldFVpbnQ4KDApOyBzaXplKys7CiAgICAgICAgICAgIGJsb2NrLmVuY29kaW5nID0gaGVhZGVyQnl0ZSAmIDYzOwogICAgICAgICAgICBpZiAoYmxvY2suZW5jb2RpbmcgPiAzKSB7CiAgICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgYmxvY2sgZW5jb2RpbmcgKCIgKyBibG9jay5lbmNvZGluZyArICIpIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoYmxvY2suZW5jb2RpbmcgPT09IDIpIHsKICAgICAgICAgICAgICBmcCsrOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgoaGVhZGVyQnl0ZSAhPT0gMCkgJiYgKGhlYWRlckJ5dGUgIT09IDIpKSB7CiAgICAgICAgICAgICAgaGVhZGVyQnl0ZSA+Pj0gNjsKICAgICAgICAgICAgICBibG9jay5vZmZzZXRUeXBlID0gaGVhZGVyQnl0ZTsKICAgICAgICAgICAgICBpZiAoaGVhZGVyQnl0ZSA9PT0gMikgewogICAgICAgICAgICAgICAgYmxvY2sub2Zmc2V0ID0gdmlldy5nZXRJbnQ4KDEpOyBzaXplKys7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChoZWFkZXJCeXRlID09PSAxKSB7CiAgICAgICAgICAgICAgICBibG9jay5vZmZzZXQgPSB2aWV3LmdldEludDE2KDEsIHRydWUpOyBzaXplICs9IDI7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChoZWFkZXJCeXRlID09PSAwKSB7CiAgICAgICAgICAgICAgICBibG9jay5vZmZzZXQgPSB2aWV3LmdldEZsb2F0MzIoMSwgdHJ1ZSk7IHNpemUgKz0gNDsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgYmxvY2sgb2Zmc2V0IHR5cGUiOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgaWYgKGJsb2NrLmVuY29kaW5nID09PSAxKSB7CiAgICAgICAgICAgICAgICBoZWFkZXJCeXRlID0gdmlldy5nZXRVaW50OChzaXplKTsgc2l6ZSsrOwogICAgICAgICAgICAgICAgYmxvY2suYml0c1BlclBpeGVsID0gaGVhZGVyQnl0ZSAmIDYzOwogICAgICAgICAgICAgICAgaGVhZGVyQnl0ZSA+Pj0gNjsKICAgICAgICAgICAgICAgIGJsb2NrLm51bVZhbGlkUGl4ZWxzVHlwZSA9IGhlYWRlckJ5dGU7CiAgICAgICAgICAgICAgICBpZiAoaGVhZGVyQnl0ZSA9PT0gMikgewogICAgICAgICAgICAgICAgICBibG9jay5udW1WYWxpZFBpeGVscyA9IHZpZXcuZ2V0VWludDgoc2l6ZSk7IHNpemUrKzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaGVhZGVyQnl0ZSA9PT0gMSkgewogICAgICAgICAgICAgICAgICBibG9jay5udW1WYWxpZFBpeGVscyA9IHZpZXcuZ2V0VWludDE2KHNpemUsIHRydWUpOyBzaXplICs9IDI7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhlYWRlckJ5dGUgPT09IDApIHsKICAgICAgICAgICAgICAgICAgYmxvY2subnVtVmFsaWRQaXhlbHMgPSB2aWV3LmdldFVpbnQzMihzaXplLCB0cnVlKTsgc2l6ZSArPSA0OwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgdmFsaWQgcGl4ZWwgY291bnQgdHlwZSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGZwICs9IHNpemU7CgogICAgICAgICAgICBpZiAoYmxvY2suZW5jb2RpbmcgPT09IDMpIHsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGFycmF5QnVmLCBzdG9yZTg7CiAgICAgICAgICAgIGlmIChibG9jay5lbmNvZGluZyA9PT0gMCkgewogICAgICAgICAgICAgIHZhciBudW1QaXhlbHMgPSAoZGF0YS5waXhlbHMubnVtQnl0ZXMgLSAxKSAvIDQ7CiAgICAgICAgICAgICAgaWYgKG51bVBpeGVscyAhPT0gTWF0aC5mbG9vcihudW1QaXhlbHMpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyAidW5jb21wcmVzc2VkIGJsb2NrIGhhcyBpbnZhbGlkIGxlbmd0aCI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGFycmF5QnVmID0gbmV3IEFycmF5QnVmZmVyKG51bVBpeGVscyAqIDQpOwogICAgICAgICAgICAgIHN0b3JlOCA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmKTsKICAgICAgICAgICAgICBzdG9yZTguc2V0KG5ldyBVaW50OEFycmF5KGlucHV0LCBmcCwgbnVtUGl4ZWxzICogNCkpOwogICAgICAgICAgICAgIHZhciByYXdEYXRhID0gbmV3IEZsb2F0MzJBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgICAgYmxvY2sucmF3RGF0YSA9IHJhd0RhdGE7CiAgICAgICAgICAgICAgZnAgKz0gbnVtUGl4ZWxzICogNDsKICAgICAgICAgICAgfSBlbHNlIGlmIChibG9jay5lbmNvZGluZyA9PT0gMSkgewogICAgICAgICAgICAgIHZhciBkYXRhQnl0ZXMgPSBNYXRoLmNlaWwoYmxvY2subnVtVmFsaWRQaXhlbHMgKiBibG9jay5iaXRzUGVyUGl4ZWwgLyA4KTsKICAgICAgICAgICAgICB2YXIgZGF0YVdvcmRzID0gTWF0aC5jZWlsKGRhdGFCeXRlcyAvIDQpOwogICAgICAgICAgICAgIGFycmF5QnVmID0gbmV3IEFycmF5QnVmZmVyKGRhdGFXb3JkcyAqIDQpOwogICAgICAgICAgICAgIHN0b3JlOCA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmKTsKICAgICAgICAgICAgICBzdG9yZTguc2V0KG5ldyBVaW50OEFycmF5KGlucHV0LCBmcCwgZGF0YUJ5dGVzKSk7CiAgICAgICAgICAgICAgYmxvY2suc3R1ZmZlZERhdGEgPSBuZXcgVWludDMyQXJyYXkoYXJyYXlCdWYpOwogICAgICAgICAgICAgIGZwICs9IGRhdGFCeXRlczsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBkYXRhLmVvZk9mZnNldCA9IGZwOwogICAgICAgIHJldHVybiBkYXRhOwogICAgICB9OwoKICAgICAgdmFyIHVuc3R1ZmYgPSBmdW5jdGlvbihzcmMsIGJpdHNQZXJQaXhlbCwgbnVtUGl4ZWxzLCBvZmZzZXQsIHNjYWxlLCBkZXN0LCBtYXhWYWx1ZSkgewogICAgICAgIHZhciBiaXRNYXNrID0gKDEgPDwgYml0c1BlclBpeGVsKSAtIDE7CiAgICAgICAgdmFyIGkgPSAwLCBvOwogICAgICAgIHZhciBiaXRzTGVmdCA9IDA7CiAgICAgICAgdmFyIG4sIGJ1ZmZlcjsKICAgICAgICB2YXIgbm1heCA9IE1hdGguY2VpbCgobWF4VmFsdWUgLSBvZmZzZXQpIC8gc2NhbGUpOwogICAgICAgIC8vIGdldCByaWQgb2YgdHJhaWxpbmcgYnl0ZXMgdGhhdCBhcmUgYWxyZWFkeSBwYXJ0IG9mIG5leHQgYmxvY2sKICAgICAgICB2YXIgbnVtSW52YWxpZFRhaWxCeXRlcyA9IHNyYy5sZW5ndGggKiA0IC0gTWF0aC5jZWlsKGJpdHNQZXJQaXhlbCAqIG51bVBpeGVscyAvIDgpOwogICAgICAgIHNyY1tzcmMubGVuZ3RoIC0gMV0gPDw9IDggKiBudW1JbnZhbGlkVGFpbEJ5dGVzOwoKICAgICAgICBmb3IgKG8gPSAwOyBvIDwgbnVtUGl4ZWxzOyBvKyspIHsKICAgICAgICAgIGlmIChiaXRzTGVmdCA9PT0gMCkgewogICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgYml0c0xlZnQgPSAzMjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChiaXRzTGVmdCA+PSBiaXRzUGVyUGl4ZWwpIHsKICAgICAgICAgICAgbiA9IChidWZmZXIgPj4+IChiaXRzTGVmdCAtIGJpdHNQZXJQaXhlbCkpICYgYml0TWFzazsKICAgICAgICAgICAgYml0c0xlZnQgLT0gYml0c1BlclBpeGVsOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIG1pc3NpbmdCaXRzID0gKGJpdHNQZXJQaXhlbCAtIGJpdHNMZWZ0KTsKICAgICAgICAgICAgbiA9ICgoYnVmZmVyICYgYml0TWFzaykgPDwgbWlzc2luZ0JpdHMpICYgYml0TWFzazsKICAgICAgICAgICAgYnVmZmVyID0gc3JjW2krK107CiAgICAgICAgICAgIGJpdHNMZWZ0ID0gMzIgLSBtaXNzaW5nQml0czsKICAgICAgICAgICAgbiArPSAoYnVmZmVyID4+PiBiaXRzTGVmdCk7CiAgICAgICAgICB9CiAgICAgICAgICAvL3BpeGVsIHZhbHVlcyBtYXkgZXhjZWVkIG1heCBkdWUgdG8gcXVhbnRpemF0aW9uCiAgICAgICAgICBkZXN0W29dID0gbiA8IG5tYXggPyBvZmZzZXQgKyBuICogc2NhbGUgOiBtYXhWYWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRlc3Q7CiAgICAgIH07CgogICAgICByZXR1cm4gQ250WkltYWdlOwogICAgfSkoKTsKCiAgICAvL3ZlcnNpb24gMi4gU3VwcG9ydHMgMi4xLCAyLjIsIDIuMwogICAgdmFyIExlcmMyRGVjb2RlID0gKGZ1bmN0aW9uKCkgewogICAgICAvLyBOb3RlOiBjdXJyZW50bHksIHRoaXMgbW9kdWxlIG9ubHkgaGFzIGFuIGltcGxlbWVudGF0aW9uIGZvciBkZWNvZGluZyBMRVJDIGRhdGEsIG5vdCBlbmNvZGluZy4gVGhlIG5hbWUgb2YKICAgICAgLy8gdGhlIGNsYXNzIHdhcyBjaG9zZW4gdG8gYmUgZnV0dXJlIHByb29mLCBmb2xsb3dpbmcgTGVyY0RlY29kZS4KCiAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAqIHByaXZhdGUgc3RhdGljIGNsYXNzIGJpdHN1dGZmZXIgdXNlZCBieSBMZXJjMkRlY29kZQogICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogICAgICB2YXIgQml0U3R1ZmZlciA9IHsKICAgICAgICAvL21ldGhvZHMgZW5kaW5nIHdpdGggMiBhcmUgZm9yIHRoZSBuZXcgYnl0ZSBvcmRlciB1c2VkIGJ5IExlcmMyLjMgYW5kIGFib3ZlLgogICAgICAgIC8vb3JpZ2luYWxVbnN0dWZmIGlzIHVzZWQgdG8gdW5wYWNrIEh1ZmZtYW4gY29kZSB0YWJsZS4gY29kZSBpcyBkdXBsaWNhdGVkIHRvIHVuc3R1ZmZ4IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgogICAgICAgIHVuc3R1ZmY6IGZ1bmN0aW9uKHNyYywgZGVzdCwgYml0c1BlclBpeGVsLCBudW1QaXhlbHMsIGx1dEFyciwgb2Zmc2V0LCBzY2FsZSwgbWF4VmFsdWUpIHsKICAgICAgICAgIHZhciBiaXRNYXNrID0gKDEgPDwgYml0c1BlclBpeGVsKSAtIDE7CiAgICAgICAgICB2YXIgaSA9IDAsIG87CiAgICAgICAgICB2YXIgYml0c0xlZnQgPSAwOwogICAgICAgICAgdmFyIG4sIGJ1ZmZlciwgbWlzc2luZ0JpdHMsIG5tYXg7CgogICAgICAgICAgLy8gZ2V0IHJpZCBvZiB0cmFpbGluZyBieXRlcyB0aGF0IGFyZSBhbHJlYWR5IHBhcnQgb2YgbmV4dCBibG9jawogICAgICAgICAgdmFyIG51bUludmFsaWRUYWlsQnl0ZXMgPSBzcmMubGVuZ3RoICogNCAtIE1hdGguY2VpbChiaXRzUGVyUGl4ZWwgKiBudW1QaXhlbHMgLyA4KTsKICAgICAgICAgIHNyY1tzcmMubGVuZ3RoIC0gMV0gPDw9IDggKiBudW1JbnZhbGlkVGFpbEJ5dGVzOwogICAgICAgICAgaWYgKGx1dEFycikgewogICAgICAgICAgICBmb3IgKG8gPSAwOyBvIDwgbnVtUGl4ZWxzOyBvKyspIHsKICAgICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID49IGJpdHNQZXJQaXhlbCkgewogICAgICAgICAgICAgICAgbiA9IChidWZmZXIgPj4+IChiaXRzTGVmdCAtIGJpdHNQZXJQaXhlbCkpICYgYml0TWFzazsKICAgICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBtaXNzaW5nQml0cyA9IChiaXRzUGVyUGl4ZWwgLSBiaXRzTGVmdCk7CiAgICAgICAgICAgICAgICBuID0gKChidWZmZXIgJiBiaXRNYXNrKSA8PCBtaXNzaW5nQml0cykgJiBiaXRNYXNrOwogICAgICAgICAgICAgICAgYnVmZmVyID0gc3JjW2krK107CiAgICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyIC0gbWlzc2luZ0JpdHM7CiAgICAgICAgICAgICAgICBuICs9IChidWZmZXIgPj4+IGJpdHNMZWZ0KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZGVzdFtvXSA9IGx1dEFycltuXTsvL29mZnNldCArIGx1dEFycltuXSAqIHNjYWxlOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbm1heCA9IE1hdGguY2VpbCgobWF4VmFsdWUgLSBvZmZzZXQpIC8gc2NhbGUpOwogICAgICAgICAgICBmb3IgKG8gPSAwOyBvIDwgbnVtUGl4ZWxzOyBvKyspIHsKICAgICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID49IGJpdHNQZXJQaXhlbCkgewogICAgICAgICAgICAgICAgbiA9IChidWZmZXIgPj4+IChiaXRzTGVmdCAtIGJpdHNQZXJQaXhlbCkpICYgYml0TWFzazsKICAgICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBtaXNzaW5nQml0cyA9IChiaXRzUGVyUGl4ZWwgLSBiaXRzTGVmdCk7CiAgICAgICAgICAgICAgICBuID0gKChidWZmZXIgJiBiaXRNYXNrKSA8PCBtaXNzaW5nQml0cykgJiBiaXRNYXNrOwogICAgICAgICAgICAgICAgYnVmZmVyID0gc3JjW2krK107CiAgICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyIC0gbWlzc2luZ0JpdHM7CiAgICAgICAgICAgICAgICBuICs9IChidWZmZXIgPj4+IGJpdHNMZWZ0KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy9waXhlbCB2YWx1ZXMgbWF5IGV4Y2VlZCBtYXggZHVlIHRvIHF1YW50aXphdGlvbgogICAgICAgICAgICAgIGRlc3Rbb10gPSBuIDwgbm1heCA/IG9mZnNldCArIG4gKiBzY2FsZSA6IG1heFZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgdW5zdHVmZkxVVDogZnVuY3Rpb24oc3JjLCBiaXRzUGVyUGl4ZWwsIG51bVBpeGVscywgb2Zmc2V0LCBzY2FsZSwgbWF4VmFsdWUpIHsKICAgICAgICAgIHZhciBiaXRNYXNrID0gKDEgPDwgYml0c1BlclBpeGVsKSAtIDE7CiAgICAgICAgICB2YXIgaSA9IDAsIG8gPSAwLCBtaXNzaW5nQml0cyA9IDAsIGJpdHNMZWZ0ID0gMCwgbiA9IDA7CiAgICAgICAgICB2YXIgYnVmZmVyOwogICAgICAgICAgdmFyIGRlc3QgPSBbXTsKCiAgICAgICAgICAvLyBnZXQgcmlkIG9mIHRyYWlsaW5nIGJ5dGVzIHRoYXQgYXJlIGFscmVhZHkgcGFydCBvZiBuZXh0IGJsb2NrCiAgICAgICAgICB2YXIgbnVtSW52YWxpZFRhaWxCeXRlcyA9IHNyYy5sZW5ndGggKiA0IC0gTWF0aC5jZWlsKGJpdHNQZXJQaXhlbCAqIG51bVBpeGVscyAvIDgpOwogICAgICAgICAgc3JjW3NyYy5sZW5ndGggLSAxXSA8PD0gOCAqIG51bUludmFsaWRUYWlsQnl0ZXM7CgogICAgICAgICAgdmFyIG5tYXggPSBNYXRoLmNlaWwoKG1heFZhbHVlIC0gb2Zmc2V0KSAvIHNjYWxlKTsKICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBudW1QaXhlbHM7IG8rKykgewogICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChiaXRzTGVmdCA+PSBiaXRzUGVyUGl4ZWwpIHsKICAgICAgICAgICAgICBuID0gKGJ1ZmZlciA+Pj4gKGJpdHNMZWZ0IC0gYml0c1BlclBpeGVsKSkgJiBiaXRNYXNrOwogICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBtaXNzaW5nQml0cyA9IChiaXRzUGVyUGl4ZWwgLSBiaXRzTGVmdCk7CiAgICAgICAgICAgICAgbiA9ICgoYnVmZmVyICYgYml0TWFzaykgPDwgbWlzc2luZ0JpdHMpICYgYml0TWFzazsKICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyIC0gbWlzc2luZ0JpdHM7CiAgICAgICAgICAgICAgbiArPSAoYnVmZmVyID4+PiBiaXRzTGVmdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy9kZXN0LnB1c2gobik7CiAgICAgICAgICAgIGRlc3Rbb10gPSBuIDwgbm1heCA/IG9mZnNldCArIG4gKiBzY2FsZSA6IG1heFZhbHVlOwogICAgICAgICAgfQogICAgICAgICAgZGVzdC51bnNoaWZ0KG9mZnNldCk7Ly8xc3Qgb25lCiAgICAgICAgICByZXR1cm4gZGVzdDsKICAgICAgICB9LAoKICAgICAgICB1bnN0dWZmMjogZnVuY3Rpb24oc3JjLCBkZXN0LCBiaXRzUGVyUGl4ZWwsIG51bVBpeGVscywgbHV0QXJyLCBvZmZzZXQsIHNjYWxlLCBtYXhWYWx1ZSkgewogICAgICAgICAgdmFyIGJpdE1hc2sgPSAoMSA8PCBiaXRzUGVyUGl4ZWwpIC0gMTsKICAgICAgICAgIHZhciBpID0gMCwgbzsKICAgICAgICAgIHZhciBiaXRzTGVmdCA9IDAsIGJpdFBvcyA9IDA7CiAgICAgICAgICB2YXIgbiwgYnVmZmVyLCBtaXNzaW5nQml0czsKICAgICAgICAgIGlmIChsdXRBcnIpIHsKICAgICAgICAgICAgZm9yIChvID0gMDsgbyA8IG51bVBpeGVsczsgbysrKSB7CiAgICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID09PSAwKSB7CiAgICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICAgIGJpdHNMZWZ0ID0gMzI7CiAgICAgICAgICAgICAgICBiaXRQb3MgPSAwOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoYml0c0xlZnQgPj0gYml0c1BlclBpeGVsKSB7CiAgICAgICAgICAgICAgICBuID0gKChidWZmZXIgPj4+IGJpdFBvcykgJiBiaXRNYXNrKTsKICAgICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgICAgIGJpdFBvcyArPSBiaXRzUGVyUGl4ZWw7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG1pc3NpbmdCaXRzID0gKGJpdHNQZXJQaXhlbCAtIGJpdHNMZWZ0KTsKICAgICAgICAgICAgICAgIG4gPSAoYnVmZmVyID4+PiBiaXRQb3MpICYgYml0TWFzazsKICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMiAtIG1pc3NpbmdCaXRzOwogICAgICAgICAgICAgICAgbiB8PSAoYnVmZmVyICYgKCgxIDw8IG1pc3NpbmdCaXRzKSAtIDEpKSA8PCAoYml0c1BlclBpeGVsIC0gbWlzc2luZ0JpdHMpOwogICAgICAgICAgICAgICAgYml0UG9zID0gbWlzc2luZ0JpdHM7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGRlc3Rbb10gPSBsdXRBcnJbbl07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICB2YXIgbm1heCA9IE1hdGguY2VpbCgobWF4VmFsdWUgLSBvZmZzZXQpIC8gc2NhbGUpOwogICAgICAgICAgICBmb3IgKG8gPSAwOyBvIDwgbnVtUGl4ZWxzOyBvKyspIHsKICAgICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMjsKICAgICAgICAgICAgICAgIGJpdFBvcyA9IDA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChiaXRzTGVmdCA+PSBiaXRzUGVyUGl4ZWwpIHsKICAgICAgICAgICAgICAgIC8vbm8gdW5zaWduZWQgbGVmdCBzaGlmdAogICAgICAgICAgICAgICAgbiA9ICgoYnVmZmVyID4+PiBiaXRQb3MpICYgYml0TWFzayk7CiAgICAgICAgICAgICAgICBiaXRzTGVmdCAtPSBiaXRzUGVyUGl4ZWw7CiAgICAgICAgICAgICAgICBiaXRQb3MgKz0gYml0c1BlclBpeGVsOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBtaXNzaW5nQml0cyA9IChiaXRzUGVyUGl4ZWwgLSBiaXRzTGVmdCk7CiAgICAgICAgICAgICAgICBuID0gKGJ1ZmZlciA+Pj4gYml0UG9zKSAmIGJpdE1hc2s7Ly8oKGJ1ZmZlciAmIGJpdE1hc2spIDw8IG1pc3NpbmdCaXRzKSAmIGJpdE1hc2s7CiAgICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICAgIGJpdHNMZWZ0ID0gMzIgLSBtaXNzaW5nQml0czsKICAgICAgICAgICAgICAgIG4gfD0gKGJ1ZmZlciAmICgoMSA8PCBtaXNzaW5nQml0cykgLSAxKSkgPDwgKGJpdHNQZXJQaXhlbCAtIG1pc3NpbmdCaXRzKTsKICAgICAgICAgICAgICAgIGJpdFBvcyA9IG1pc3NpbmdCaXRzOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvL3BpeGVsIHZhbHVlcyBtYXkgZXhjZWVkIG1heCBkdWUgdG8gcXVhbnRpemF0aW9uCiAgICAgICAgICAgICAgZGVzdFtvXSA9IG4gPCBubWF4ID8gb2Zmc2V0ICsgbiAqIHNjYWxlIDogbWF4VmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBkZXN0OwogICAgICAgIH0sCgogICAgICAgIHVuc3R1ZmZMVVQyOiBmdW5jdGlvbihzcmMsIGJpdHNQZXJQaXhlbCwgbnVtUGl4ZWxzLCBvZmZzZXQsIHNjYWxlLCBtYXhWYWx1ZSkgewogICAgICAgICAgdmFyIGJpdE1hc2sgPSAoMSA8PCBiaXRzUGVyUGl4ZWwpIC0gMTsKICAgICAgICAgIHZhciBpID0gMCwgbyA9IDAsIG1pc3NpbmdCaXRzID0gMCwgYml0c0xlZnQgPSAwLCBuID0gMCwgYml0UG9zID0gMDsKICAgICAgICAgIHZhciBidWZmZXI7CiAgICAgICAgICB2YXIgZGVzdCA9IFtdOwogICAgICAgICAgdmFyIG5tYXggPSBNYXRoLmNlaWwoKG1heFZhbHVlIC0gb2Zmc2V0KSAvIHNjYWxlKTsKICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBudW1QaXhlbHM7IG8rKykgewogICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyOwogICAgICAgICAgICAgIGJpdFBvcyA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID49IGJpdHNQZXJQaXhlbCkgewogICAgICAgICAgICAgIC8vbm8gdW5zaWduZWQgbGVmdCBzaGlmdAogICAgICAgICAgICAgIG4gPSAoKGJ1ZmZlciA+Pj4gYml0UG9zKSAmIGJpdE1hc2spOwogICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgICBiaXRQb3MgKz0gYml0c1BlclBpeGVsOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIG1pc3NpbmdCaXRzID0gKGJpdHNQZXJQaXhlbCAtIGJpdHNMZWZ0KTsKICAgICAgICAgICAgICBuID0gKGJ1ZmZlciA+Pj4gYml0UG9zKSAmIGJpdE1hc2s7Ly8oKGJ1ZmZlciAmIGJpdE1hc2spIDw8IG1pc3NpbmdCaXRzKSAmIGJpdE1hc2s7CiAgICAgICAgICAgICAgYnVmZmVyID0gc3JjW2krK107CiAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMiAtIG1pc3NpbmdCaXRzOwogICAgICAgICAgICAgIG4gfD0gKGJ1ZmZlciAmICgoMSA8PCBtaXNzaW5nQml0cykgLSAxKSkgPDwgKGJpdHNQZXJQaXhlbCAtIG1pc3NpbmdCaXRzKTsKICAgICAgICAgICAgICBiaXRQb3MgPSBtaXNzaW5nQml0czsKICAgICAgICAgICAgfQogICAgICAgICAgICAvL2Rlc3QucHVzaChuKTsKICAgICAgICAgICAgZGVzdFtvXSA9IG4gPCBubWF4ID8gb2Zmc2V0ICsgbiAqIHNjYWxlIDogbWF4VmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgICBkZXN0LnVuc2hpZnQob2Zmc2V0KTsKICAgICAgICAgIHJldHVybiBkZXN0OwogICAgICAgIH0sCgogICAgICAgIG9yaWdpbmFsVW5zdHVmZjogZnVuY3Rpb24oc3JjLCBkZXN0LCBiaXRzUGVyUGl4ZWwsIG51bVBpeGVscykgewogICAgICAgICAgdmFyIGJpdE1hc2sgPSAoMSA8PCBiaXRzUGVyUGl4ZWwpIC0gMTsKICAgICAgICAgIHZhciBpID0gMCwgbzsKICAgICAgICAgIHZhciBiaXRzTGVmdCA9IDA7CiAgICAgICAgICB2YXIgbiwgYnVmZmVyLCBtaXNzaW5nQml0czsKCiAgICAgICAgICAvLyBnZXQgcmlkIG9mIHRyYWlsaW5nIGJ5dGVzIHRoYXQgYXJlIGFscmVhZHkgcGFydCBvZiBuZXh0IGJsb2NrCiAgICAgICAgICB2YXIgbnVtSW52YWxpZFRhaWxCeXRlcyA9IHNyYy5sZW5ndGggKiA0IC0gTWF0aC5jZWlsKGJpdHNQZXJQaXhlbCAqIG51bVBpeGVscyAvIDgpOwogICAgICAgICAgc3JjW3NyYy5sZW5ndGggLSAxXSA8PD0gOCAqIG51bUludmFsaWRUYWlsQnl0ZXM7CgogICAgICAgICAgZm9yIChvID0gMDsgbyA8IG51bVBpeGVsczsgbysrKSB7CiAgICAgICAgICAgIGlmIChiaXRzTGVmdCA9PT0gMCkgewogICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgIGJpdHNMZWZ0ID0gMzI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID49IGJpdHNQZXJQaXhlbCkgewogICAgICAgICAgICAgIG4gPSAoYnVmZmVyID4+PiAoYml0c0xlZnQgLSBiaXRzUGVyUGl4ZWwpKSAmIGJpdE1hc2s7CiAgICAgICAgICAgICAgYml0c0xlZnQgLT0gYml0c1BlclBpeGVsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIG1pc3NpbmdCaXRzID0gKGJpdHNQZXJQaXhlbCAtIGJpdHNMZWZ0KTsKICAgICAgICAgICAgICBuID0gKChidWZmZXIgJiBiaXRNYXNrKSA8PCBtaXNzaW5nQml0cykgJiBiaXRNYXNrOwogICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgIGJpdHNMZWZ0ID0gMzIgLSBtaXNzaW5nQml0czsKICAgICAgICAgICAgICBuICs9IChidWZmZXIgPj4+IGJpdHNMZWZ0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkZXN0W29dID0gbjsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBkZXN0OwogICAgICAgIH0sCgogICAgICAgIG9yaWdpbmFsVW5zdHVmZjI6IGZ1bmN0aW9uKHNyYywgZGVzdCwgYml0c1BlclBpeGVsLCBudW1QaXhlbHMpIHsKICAgICAgICAgIHZhciBiaXRNYXNrID0gKDEgPDwgYml0c1BlclBpeGVsKSAtIDE7CiAgICAgICAgICB2YXIgaSA9IDAsIG87CiAgICAgICAgICB2YXIgYml0c0xlZnQgPSAwLCBiaXRQb3MgPSAwOwogICAgICAgICAgdmFyIG4sIGJ1ZmZlciwgbWlzc2luZ0JpdHM7CiAgICAgICAgICAvL21pY3JvLW9wdGltaXphdGlvbnMKICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBudW1QaXhlbHM7IG8rKykgewogICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyOwogICAgICAgICAgICAgIGJpdFBvcyA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID49IGJpdHNQZXJQaXhlbCkgewogICAgICAgICAgICAgIC8vbm8gdW5zaWduZWQgbGVmdCBzaGlmdAogICAgICAgICAgICAgIG4gPSAoKGJ1ZmZlciA+Pj4gYml0UG9zKSAmIGJpdE1hc2spOwogICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgICBiaXRQb3MgKz0gYml0c1BlclBpeGVsOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIG1pc3NpbmdCaXRzID0gKGJpdHNQZXJQaXhlbCAtIGJpdHNMZWZ0KTsKICAgICAgICAgICAgICBuID0gKGJ1ZmZlciA+Pj4gYml0UG9zKSAmIGJpdE1hc2s7Ly8oKGJ1ZmZlciAmIGJpdE1hc2spIDw8IG1pc3NpbmdCaXRzKSAmIGJpdE1hc2s7CiAgICAgICAgICAgICAgYnVmZmVyID0gc3JjW2krK107CiAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMiAtIG1pc3NpbmdCaXRzOwogICAgICAgICAgICAgIG4gfD0gKGJ1ZmZlciAmICgoMSA8PCBtaXNzaW5nQml0cykgLSAxKSkgPDwgKGJpdHNQZXJQaXhlbCAtIG1pc3NpbmdCaXRzKTsKICAgICAgICAgICAgICBiaXRQb3MgPSBtaXNzaW5nQml0czsKICAgICAgICAgICAgfQogICAgICAgICAgICBkZXN0W29dID0gbjsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBkZXN0OwogICAgICAgIH0KICAgICAgfTsKCiAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAqcHJpdmF0ZSBzdGF0aWMgY2xhc3MgdXNlZCBieSBMZXJjMkRlY29kZQogICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAgIHZhciBMZXJjMkhlbHBlcnMgPSB7CiAgICAgICAgSFVGRk1BTl9MVVRfQklUU19NQVg6IDEyLCAvL3VzZSAyXjEyIGx1dCwgdHJlYXQgaXQgbGlrZSBjb25zdGFudAogICAgICAgIGNvbXB1dGVDaGVja3N1bUZsZXRjaGVyMzI6IGZ1bmN0aW9uKGlucHV0KSB7CgogICAgICAgICAgdmFyIHN1bTEgPSAweGZmZmYsIHN1bTIgPSAweGZmZmY7CiAgICAgICAgICB2YXIgbGVuID0gaW5wdXQubGVuZ3RoOwogICAgICAgICAgdmFyIHdvcmRzID0gTWF0aC5mbG9vcihsZW4gLyAyKTsKICAgICAgICAgIHZhciBpID0gMDsKICAgICAgICAgIHdoaWxlICh3b3JkcykgewogICAgICAgICAgICB2YXIgdGxlbiA9ICh3b3JkcyA+PSAzNTkpID8gMzU5IDogd29yZHM7CiAgICAgICAgICAgIHdvcmRzIC09IHRsZW47CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICBzdW0xICs9IChpbnB1dFtpKytdIDw8IDgpOwogICAgICAgICAgICAgIHN1bTIgKz0gc3VtMSArPSBpbnB1dFtpKytdOwogICAgICAgICAgICB9IHdoaWxlICgtLXRsZW4pOwoKICAgICAgICAgICAgc3VtMSA9IChzdW0xICYgMHhmZmZmKSArIChzdW0xID4+PiAxNik7CiAgICAgICAgICAgIHN1bTIgPSAoc3VtMiAmIDB4ZmZmZikgKyAoc3VtMiA+Pj4gMTYpOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIGFkZCB0aGUgc3RyYWdnbGVyIGJ5dGUgaWYgaXQgZXhpc3RzCiAgICAgICAgICBpZiAobGVuICYgMSkgewogICAgICAgICAgICBzdW0yICs9IHN1bTEgKz0gKGlucHV0W2ldIDw8IDgpOwogICAgICAgICAgfQogICAgICAgICAgLy8gc2Vjb25kIHJlZHVjdGlvbiBzdGVwIHRvIHJlZHVjZSBzdW1zIHRvIDE2IGJpdHMKICAgICAgICAgIHN1bTEgPSAoc3VtMSAmIDB4ZmZmZikgKyAoc3VtMSA+Pj4gMTYpOwogICAgICAgICAgc3VtMiA9IChzdW0yICYgMHhmZmZmKSArIChzdW0yID4+PiAxNik7CgogICAgICAgICAgcmV0dXJuIChzdW0yIDw8IDE2IHwgc3VtMSkgPj4+IDA7CiAgICAgICAgfSwKCiAgICAgICAgcmVhZEhlYWRlckluZm86IGZ1bmN0aW9uKGlucHV0LCBkYXRhKSB7CiAgICAgICAgICB2YXIgcHRyID0gZGF0YS5wdHI7CiAgICAgICAgICB2YXIgZmlsZUlkVmlldyA9IG5ldyBVaW50OEFycmF5KGlucHV0LCBwdHIsIDYpOwogICAgICAgICAgdmFyIGhlYWRlckluZm8gPSB7fTsKICAgICAgICAgIGhlYWRlckluZm8uZmlsZUlkZW50aWZpZXJTdHJpbmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGZpbGVJZFZpZXcpOwogICAgICAgICAgaWYgKGhlYWRlckluZm8uZmlsZUlkZW50aWZpZXJTdHJpbmcubGFzdEluZGV4T2YoIkxlcmMyIiwgMCkgIT09IDApIHsKICAgICAgICAgICAgdGhyb3cgIlVuZXhwZWN0ZWQgZmlsZSBpZGVudGlmaWVyIHN0cmluZyAoZXhwZWN0IExlcmMyICk6ICIgKyBoZWFkZXJJbmZvLmZpbGVJZGVudGlmaWVyU3RyaW5nOwogICAgICAgICAgfQogICAgICAgICAgcHRyICs9IDY7CiAgICAgICAgICB2YXIgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgcHRyLCA4KTsKICAgICAgICAgIHZhciBmaWxlVmVyc2lvbiA9IHZpZXcuZ2V0SW50MzIoMCwgdHJ1ZSk7CiAgICAgICAgICBoZWFkZXJJbmZvLmZpbGVWZXJzaW9uID0gZmlsZVZlcnNpb247CiAgICAgICAgICBwdHIgKz0gNDsKICAgICAgICAgIGlmIChmaWxlVmVyc2lvbiA+PSAzKSB7CiAgICAgICAgICAgIGhlYWRlckluZm8uY2hlY2tzdW0gPSB2aWV3LmdldFVpbnQzMig0LCB0cnVlKTsgLy9ucm93cwogICAgICAgICAgICBwdHIgKz0gNDsKICAgICAgICAgIH0KCiAgICAgICAgICAvL2tleXMgc3RhcnQgZnJvbSBoZXJlCiAgICAgICAgICB2aWV3ID0gbmV3IERhdGFWaWV3KGlucHV0LCBwdHIsIDEyKTsKICAgICAgICAgIGhlYWRlckluZm8uaGVpZ2h0ID0gdmlldy5nZXRVaW50MzIoMCwgdHJ1ZSk7IC8vbnJvd3MKICAgICAgICAgIGhlYWRlckluZm8ud2lkdGggPSB2aWV3LmdldFVpbnQzMig0LCB0cnVlKTsgLy9uY29scwogICAgICAgICAgcHRyICs9IDg7CiAgICAgICAgICBpZiAoZmlsZVZlcnNpb24gPj0gNCkgewogICAgICAgICAgICBoZWFkZXJJbmZvLm51bURpbXMgPSB2aWV3LmdldFVpbnQzMig4LCB0cnVlKTsKICAgICAgICAgICAgcHRyICs9IDQ7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaGVhZGVySW5mby5udW1EaW1zID0gMTsKICAgICAgICAgIH0KCiAgICAgICAgICB2aWV3ID0gbmV3IERhdGFWaWV3KGlucHV0LCBwdHIsIDQwKTsKICAgICAgICAgIGhlYWRlckluZm8ubnVtVmFsaWRQaXhlbCA9IHZpZXcuZ2V0VWludDMyKDAsIHRydWUpOwogICAgICAgICAgaGVhZGVySW5mby5taWNyb0Jsb2NrU2l6ZSA9IHZpZXcuZ2V0SW50MzIoNCwgdHJ1ZSk7CiAgICAgICAgICBoZWFkZXJJbmZvLmJsb2JTaXplID0gdmlldy5nZXRJbnQzMig4LCB0cnVlKTsKICAgICAgICAgIGhlYWRlckluZm8uaW1hZ2VUeXBlID0gdmlldy5nZXRJbnQzMigxMiwgdHJ1ZSk7CgogICAgICAgICAgaGVhZGVySW5mby5tYXhaRXJyb3IgPSB2aWV3LmdldEZsb2F0NjQoMTYsIHRydWUpOwogICAgICAgICAgaGVhZGVySW5mby56TWluID0gdmlldy5nZXRGbG9hdDY0KDI0LCB0cnVlKTsKICAgICAgICAgIGhlYWRlckluZm8uek1heCA9IHZpZXcuZ2V0RmxvYXQ2NCgzMiwgdHJ1ZSk7CiAgICAgICAgICBwdHIgKz0gNDA7CiAgICAgICAgICBkYXRhLmhlYWRlckluZm8gPSBoZWFkZXJJbmZvOwogICAgICAgICAgZGF0YS5wdHIgPSBwdHI7CgogICAgICAgICAgdmFyIGNoZWNrc3VtLCBrZXlMZW5ndGg7CiAgICAgICAgICBpZiAoZmlsZVZlcnNpb24gPj0gMykgewogICAgICAgICAgICBrZXlMZW5ndGggPSBmaWxlVmVyc2lvbiA+PSA0ID8gNTIgOiA0ODsKICAgICAgICAgICAgY2hlY2tzdW0gPSB0aGlzLmNvbXB1dGVDaGVja3N1bUZsZXRjaGVyMzIobmV3IFVpbnQ4QXJyYXkoaW5wdXQsIHB0ciAtIGtleUxlbmd0aCwgaGVhZGVySW5mby5ibG9iU2l6ZSAtIDE0KSk7CiAgICAgICAgICAgIGlmIChjaGVja3N1bSAhPT0gaGVhZGVySW5mby5jaGVja3N1bSkgewogICAgICAgICAgICAgIHRocm93ICJDaGVja3N1bSBmYWlsZWQuIjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSwKCiAgICAgICAgY2hlY2tNaW5NYXhSYW5nZXM6IGZ1bmN0aW9uKGlucHV0LCBkYXRhKSB7CiAgICAgICAgICB2YXIgaGVhZGVySW5mbyA9IGRhdGEuaGVhZGVySW5mbzsKICAgICAgICAgIHZhciBPdXRQaXhlbFR5cGVBcnJheSA9IHRoaXMuZ2V0RGF0YVR5cGVBcnJheShoZWFkZXJJbmZvLmltYWdlVHlwZSk7CiAgICAgICAgICB2YXIgcmFuZ2VCeXRlcyA9IGhlYWRlckluZm8ubnVtRGltcyAqIHRoaXMuZ2V0RGF0YVR5cGVTaXplKGhlYWRlckluZm8uaW1hZ2VUeXBlKTsKICAgICAgICAgIHZhciBtaW5WYWx1ZXMgPSB0aGlzLnJlYWRTdWJBcnJheShpbnB1dCwgZGF0YS5wdHIsIE91dFBpeGVsVHlwZUFycmF5LCByYW5nZUJ5dGVzKTsKICAgICAgICAgIHZhciBtYXhWYWx1ZXMgPSB0aGlzLnJlYWRTdWJBcnJheShpbnB1dCwgZGF0YS5wdHIgKyByYW5nZUJ5dGVzLCBPdXRQaXhlbFR5cGVBcnJheSwgcmFuZ2VCeXRlcyk7CiAgICAgICAgICBkYXRhLnB0ciArPSAoMiAqIHJhbmdlQnl0ZXMpOwogICAgICAgICAgdmFyIGksIGVxdWFsID0gdHJ1ZTsKICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBoZWFkZXJJbmZvLm51bURpbXM7IGkrKykgewogICAgICAgICAgICBpZiAobWluVmFsdWVzW2ldICE9PSBtYXhWYWx1ZXNbaV0pIHsKICAgICAgICAgICAgICBlcXVhbCA9IGZhbHNlOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBoZWFkZXJJbmZvLm1pblZhbHVlcyA9IG1pblZhbHVlczsKICAgICAgICAgIGhlYWRlckluZm8ubWF4VmFsdWVzID0gbWF4VmFsdWVzOwogICAgICAgICAgcmV0dXJuIGVxdWFsOwogICAgICAgIH0sCgogICAgICAgIHJlYWRTdWJBcnJheTogZnVuY3Rpb24oaW5wdXQsIHB0ciwgT3V0UGl4ZWxUeXBlQXJyYXksIG51bUJ5dGVzKSB7CiAgICAgICAgICB2YXIgcmF3RGF0YTsKICAgICAgICAgIGlmIChPdXRQaXhlbFR5cGVBcnJheSA9PT0gVWludDhBcnJheSkgewogICAgICAgICAgICByYXdEYXRhID0gbmV3IFVpbnQ4QXJyYXkoaW5wdXQsIHB0ciwgbnVtQnl0ZXMpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHZhciBhcnJheUJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcihudW1CeXRlcyk7CiAgICAgICAgICAgIHZhciBzdG9yZTggPSBuZXcgVWludDhBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgIHN0b3JlOC5zZXQobmV3IFVpbnQ4QXJyYXkoaW5wdXQsIHB0ciwgbnVtQnl0ZXMpKTsKICAgICAgICAgICAgcmF3RGF0YSA9IG5ldyBPdXRQaXhlbFR5cGVBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gcmF3RGF0YTsKICAgICAgICB9LAoKICAgICAgICByZWFkTWFzazogZnVuY3Rpb24oaW5wdXQsIGRhdGEpIHsKICAgICAgICAgIHZhciBwdHIgPSBkYXRhLnB0cjsKICAgICAgICAgIHZhciBoZWFkZXJJbmZvID0gZGF0YS5oZWFkZXJJbmZvOwogICAgICAgICAgdmFyIG51bVBpeGVscyA9IGhlYWRlckluZm8ud2lkdGggKiBoZWFkZXJJbmZvLmhlaWdodDsKICAgICAgICAgIHZhciBudW1WYWxpZFBpeGVsID0gaGVhZGVySW5mby5udW1WYWxpZFBpeGVsOwoKICAgICAgICAgIHZhciB2aWV3ID0gbmV3IERhdGFWaWV3KGlucHV0LCBwdHIsIDQpOwogICAgICAgICAgdmFyIG1hc2sgPSB7fTsKICAgICAgICAgIG1hc2subnVtQnl0ZXMgPSB2aWV3LmdldFVpbnQzMigwLCB0cnVlKTsKICAgICAgICAgIHB0ciArPSA0OwoKICAgICAgICAgIC8vIE1hc2sgRGF0YQogICAgICAgICAgaWYgKCgwID09PSBudW1WYWxpZFBpeGVsIHx8IG51bVBpeGVscyA9PT0gbnVtVmFsaWRQaXhlbCkgJiYgMCAhPT0gbWFzay5udW1CeXRlcykgewogICAgICAgICAgICB0aHJvdyAoImludmFsaWQgbWFzayIpOwogICAgICAgICAgfQogICAgICAgICAgdmFyIGJpdHNldCwgcmVzdWx0TWFzazsKICAgICAgICAgIGlmIChudW1WYWxpZFBpeGVsID09PSAwKSB7CiAgICAgICAgICAgIGJpdHNldCA9IG5ldyBVaW50OEFycmF5KE1hdGguY2VpbChudW1QaXhlbHMgLyA4KSk7CiAgICAgICAgICAgIG1hc2suYml0c2V0ID0gYml0c2V0OwogICAgICAgICAgICByZXN1bHRNYXNrID0gbmV3IFVpbnQ4QXJyYXkobnVtUGl4ZWxzKTsKICAgICAgICAgICAgZGF0YS5waXhlbHMucmVzdWx0TWFzayA9IHJlc3VsdE1hc2s7CiAgICAgICAgICAgIHB0ciArPSBtYXNrLm51bUJ5dGVzOwogICAgICAgICAgfS8vID8/Pz8/IGVsc2UgaWYgKGRhdGEubWFzay5udW1CeXRlcyA+IDAgJiYgZGF0YS5tYXNrLm51bUJ5dGVzPCBkYXRhLm51bVZhbGlkUGl4ZWwpIHsKICAgICAgICAgIGVsc2UgaWYgKG1hc2subnVtQnl0ZXMgPiAwKSB7CiAgICAgICAgICAgIGJpdHNldCA9IG5ldyBVaW50OEFycmF5KE1hdGguY2VpbChudW1QaXhlbHMgLyA4KSk7CiAgICAgICAgICAgIHZpZXcgPSBuZXcgRGF0YVZpZXcoaW5wdXQsIHB0ciwgbWFzay5udW1CeXRlcyk7CiAgICAgICAgICAgIHZhciBjbnQgPSB2aWV3LmdldEludDE2KDAsIHRydWUpOwogICAgICAgICAgICB2YXIgaXAgPSAyLCBvcCA9IDAsIHZhbCA9IDA7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICBpZiAoY250ID4gMCkgewogICAgICAgICAgICAgICAgd2hpbGUgKGNudC0tKSB7IGJpdHNldFtvcCsrXSA9IHZpZXcuZ2V0VWludDgoaXArKyk7IH0KICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFsID0gdmlldy5nZXRVaW50OChpcCsrKTsKICAgICAgICAgICAgICAgIGNudCA9IC1jbnQ7CiAgICAgICAgICAgICAgICB3aGlsZSAoY250LS0pIHsgYml0c2V0W29wKytdID0gdmFsOyB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNudCA9IHZpZXcuZ2V0SW50MTYoaXAsIHRydWUpOwogICAgICAgICAgICAgIGlwICs9IDI7CiAgICAgICAgICAgIH0gd2hpbGUgKGlwIDwgbWFzay5udW1CeXRlcyk7CiAgICAgICAgICAgIGlmICgoY250ICE9PSAtMzI3NjgpIHx8IChvcCA8IGJpdHNldC5sZW5ndGgpKSB7CiAgICAgICAgICAgICAgdGhyb3cgIlVuZXhwZWN0ZWQgZW5kIG9mIG1hc2sgUkxFIGVuY29kaW5nIjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmVzdWx0TWFzayA9IG5ldyBVaW50OEFycmF5KG51bVBpeGVscyk7CiAgICAgICAgICAgIHZhciBtYiA9IDAsIGsgPSAwOwoKICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IG51bVBpeGVsczsgaysrKSB7CiAgICAgICAgICAgICAgaWYgKGsgJiA3KSB7CiAgICAgICAgICAgICAgICBtYiA9IGJpdHNldFtrID4+IDNdOwogICAgICAgICAgICAgICAgbWIgPDw9IGsgJiA3OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIG1iID0gYml0c2V0W2sgPj4gM107CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChtYiAmIDEyOCkgewogICAgICAgICAgICAgICAgcmVzdWx0TWFza1trXSA9IDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGEucGl4ZWxzLnJlc3VsdE1hc2sgPSByZXN1bHRNYXNrOwoKICAgICAgICAgICAgbWFzay5iaXRzZXQgPSBiaXRzZXQ7CiAgICAgICAgICAgIHB0ciArPSBtYXNrLm51bUJ5dGVzOwogICAgICAgICAgfQogICAgICAgICAgZGF0YS5wdHIgPSBwdHI7CiAgICAgICAgICBkYXRhLm1hc2sgPSBtYXNrOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSwKCiAgICAgICAgcmVhZERhdGFPbmVTd2VlcDogZnVuY3Rpb24oaW5wdXQsIGRhdGEsIE91dFBpeGVsVHlwZUFycmF5KSB7CiAgICAgICAgICB2YXIgcHRyID0gZGF0YS5wdHI7CiAgICAgICAgICB2YXIgaGVhZGVySW5mbyA9IGRhdGEuaGVhZGVySW5mbzsKICAgICAgICAgIHZhciBudW1EaW1zID0gaGVhZGVySW5mby5udW1EaW1zOwogICAgICAgICAgdmFyIG51bVBpeGVscyA9IGhlYWRlckluZm8ud2lkdGggKiBoZWFkZXJJbmZvLmhlaWdodDsKICAgICAgICAgIHZhciBpbWFnZVR5cGUgPSBoZWFkZXJJbmZvLmltYWdlVHlwZTsKICAgICAgICAgIHZhciBudW1CeXRlcyA9IGhlYWRlckluZm8ubnVtVmFsaWRQaXhlbCAqIExlcmMySGVscGVycy5nZXREYXRhVHlwZVNpemUoaW1hZ2VUeXBlKSAqIG51bURpbXM7CiAgICAgICAgICAvL2RhdGEucGl4ZWxzLm51bUJ5dGVzID0gbnVtQnl0ZXM7CiAgICAgICAgICB2YXIgcmF3RGF0YTsKICAgICAgICAgIHZhciBtYXNrID0gZGF0YS5waXhlbHMucmVzdWx0TWFzazsKICAgICAgICAgIGlmIChPdXRQaXhlbFR5cGVBcnJheSA9PT0gVWludDhBcnJheSkgewogICAgICAgICAgICByYXdEYXRhID0gbmV3IFVpbnQ4QXJyYXkoaW5wdXQsIHB0ciwgbnVtQnl0ZXMpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHZhciBhcnJheUJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcihudW1CeXRlcyk7CiAgICAgICAgICAgIHZhciBzdG9yZTggPSBuZXcgVWludDhBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgIHN0b3JlOC5zZXQobmV3IFVpbnQ4QXJyYXkoaW5wdXQsIHB0ciwgbnVtQnl0ZXMpKTsKICAgICAgICAgICAgcmF3RGF0YSA9IG5ldyBPdXRQaXhlbFR5cGVBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocmF3RGF0YS5sZW5ndGggPT09IG51bVBpeGVscyAqIG51bURpbXMpIHsKICAgICAgICAgICAgZGF0YS5waXhlbHMucmVzdWx0UGl4ZWxzID0gcmF3RGF0YTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgIC8vbWFzawogICAgICAgICAgewogICAgICAgICAgICBkYXRhLnBpeGVscy5yZXN1bHRQaXhlbHMgPSBuZXcgT3V0UGl4ZWxUeXBlQXJyYXkobnVtUGl4ZWxzICogbnVtRGltcyk7CiAgICAgICAgICAgIHZhciB6ID0gMCwgayA9IDAsIGkgPSAwLCBuU3RhcnQgPSAwOwogICAgICAgICAgICBpZiAobnVtRGltcyA+IDEpIHsKICAgICAgICAgICAgICBmb3IgKGk9MDsgaSA8IG51bURpbXM7IGkrKykgewogICAgICAgICAgICAgICAgblN0YXJ0ID0gaSAqIG51bVBpeGVsczsKICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBudW1QaXhlbHM7IGsrKykgewogICAgICAgICAgICAgICAgICBpZiAobWFza1trXSkgewogICAgICAgICAgICAgICAgICAgIGRhdGEucGl4ZWxzLnJlc3VsdFBpeGVsc1tuU3RhcnQgKyBrXSA9IHJhd0RhdGFbeisrXTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgbnVtUGl4ZWxzOyBrKyspIHsKICAgICAgICAgICAgICAgIGlmIChtYXNrW2tdKSB7CiAgICAgICAgICAgICAgICAgIGRhdGEucGl4ZWxzLnJlc3VsdFBpeGVsc1trXSA9IHJhd0RhdGFbeisrXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHB0ciArPSBudW1CeXRlczsKICAgICAgICAgIGRhdGEucHRyID0gcHRyOyAgICAgICAvL3JldHVybiBkYXRhOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSwKCiAgICAgICAgcmVhZEh1ZmZtYW5UcmVlOiBmdW5jdGlvbihpbnB1dCwgZGF0YSkgewogICAgICAgICAgdmFyIEJJVFNfTUFYID0gdGhpcy5IVUZGTUFOX0xVVF9CSVRTX01BWDsgLy84IGlzIHNsb3cgZm9yIHRoZSBsYXJnZSB0ZXN0IGltYWdlCiAgICAgICAgICAvL3ZhciBzaXplX21heCA9IDEgPDwgQklUU19NQVg7CiAgICAgICAgICAvKiAqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICAgICAqIHJlYWRpbmcgY29kZSB0YWJsZQogICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAgICAgICB2YXIgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZGF0YS5wdHIsIDE2KTsKICAgICAgICAgIGRhdGEucHRyICs9IDE2OwogICAgICAgICAgdmFyIHZlcnNpb24gPSB2aWV3LmdldEludDMyKDAsIHRydWUpOwogICAgICAgICAgaWYgKHZlcnNpb24gPCAyKSB7CiAgICAgICAgICAgIHRocm93ICJ1bnN1cHBvcnRlZCBIdWZmbWFuIHZlcnNpb24iOwogICAgICAgICAgfQogICAgICAgICAgdmFyIHNpemUgPSB2aWV3LmdldEludDMyKDQsIHRydWUpOwogICAgICAgICAgdmFyIGkwID0gdmlldy5nZXRJbnQzMig4LCB0cnVlKTsKICAgICAgICAgIHZhciBpMSA9IHZpZXcuZ2V0SW50MzIoMTIsIHRydWUpOwogICAgICAgICAgaWYgKGkwID49IGkxKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBibG9ja0RhdGFCdWZmZXIgPSBuZXcgVWludDMyQXJyYXkoaTEgLSBpMCk7CiAgICAgICAgICBMZXJjMkhlbHBlcnMuZGVjb2RlQml0cyhpbnB1dCwgZGF0YSwgYmxvY2tEYXRhQnVmZmVyKTsKICAgICAgICAgIHZhciBjb2RlVGFibGUgPSBbXTsgLy9zaXplCiAgICAgICAgICB2YXIgaSwgaiwgaywgbGVuOwoKICAgICAgICAgIGZvciAoaSA9IGkwOyBpIDwgaTE7IGkrKykgewogICAgICAgICAgICBqID0gaSAtIChpIDwgc2l6ZSA/IDAgOiBzaXplKTsvL3dyYXAgYXJvdW5kCiAgICAgICAgICAgIGNvZGVUYWJsZVtqXSA9IHsgZmlyc3Q6IGJsb2NrRGF0YUJ1ZmZlcltpIC0gaTBdLCBzZWNvbmQ6IG51bGwgfTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgZGF0YUJ5dGVzID0gaW5wdXQuYnl0ZUxlbmd0aCAtIGRhdGEucHRyOwogICAgICAgICAgdmFyIGRhdGFXb3JkcyA9IE1hdGguY2VpbChkYXRhQnl0ZXMgLyA0KTsKICAgICAgICAgIHZhciBhcnJheUJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcihkYXRhV29yZHMgKiA0KTsKICAgICAgICAgIHZhciBzdG9yZTggPSBuZXcgVWludDhBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICBzdG9yZTguc2V0KG5ldyBVaW50OEFycmF5KGlucHV0LCBkYXRhLnB0ciwgZGF0YUJ5dGVzKSk7CiAgICAgICAgICB2YXIgc3R1ZmZlZERhdGEgPSBuZXcgVWludDMyQXJyYXkoYXJyYXlCdWYpOyAvL211c3Qgc3RhcnQgZnJvbSB4KjQKICAgICAgICAgIHZhciBiaXRQb3MgPSAwLCB3b3JkLCBzcmNQdHIgPSAwOwogICAgICAgICAgd29yZCA9IHN0dWZmZWREYXRhWzBdOwogICAgICAgICAgZm9yIChpID0gaTA7IGkgPCBpMTsgaSsrKSB7CiAgICAgICAgICAgIGogPSBpIC0gKGkgPCBzaXplID8gMCA6IHNpemUpOy8vd3JhcCBhcm91bmQKICAgICAgICAgICAgbGVuID0gY29kZVRhYmxlW2pdLmZpcnN0OwogICAgICAgICAgICBpZiAobGVuID4gMCkgewogICAgICAgICAgICAgIGNvZGVUYWJsZVtqXS5zZWNvbmQgPSAod29yZCA8PCBiaXRQb3MpID4+PiAoMzIgLSBsZW4pOwoKICAgICAgICAgICAgICBpZiAoMzIgLSBiaXRQb3MgPj0gbGVuKSB7CiAgICAgICAgICAgICAgICBiaXRQb3MgKz0gbGVuOwogICAgICAgICAgICAgICAgaWYgKGJpdFBvcyA9PT0gMzIpIHsKICAgICAgICAgICAgICAgICAgYml0UG9zID0gMDsKICAgICAgICAgICAgICAgICAgc3JjUHRyKys7CiAgICAgICAgICAgICAgICAgIHdvcmQgPSBzdHVmZmVkRGF0YVtzcmNQdHJdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGJpdFBvcyArPSBsZW4gLSAzMjsKICAgICAgICAgICAgICAgIHNyY1B0cisrOwogICAgICAgICAgICAgICAgd29yZCA9IHN0dWZmZWREYXRhW3NyY1B0cl07CiAgICAgICAgICAgICAgICBjb2RlVGFibGVbal0uc2Vjb25kIHw9IHdvcmQgPj4+ICgzMiAtIGJpdFBvcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CgogICAgICAgICAgLy9maW5pc2hlZCByZWFkaW5nIGNvZGUgdGFibGUKCiAgICAgICAgICAvKiAqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICAgICAqIGJ1aWxkaW5nIGx1dAogICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAgICAgICB2YXIgbnVtQml0c0xVVCA9IDAsIG51bUJpdHNMVVRRaWNrID0gMDsKICAgICAgICAgIHZhciB0cmVlID0gbmV3IFRyZWVOb2RlKCk7CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY29kZVRhYmxlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChjb2RlVGFibGVbaV0gIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgIG51bUJpdHNMVVQgPSBNYXRoLm1heChudW1CaXRzTFVULCBjb2RlVGFibGVbaV0uZmlyc3QpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobnVtQml0c0xVVCA+PSBCSVRTX01BWCkgewogICAgICAgICAgICBudW1CaXRzTFVUUWljayA9IEJJVFNfTUFYOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG51bUJpdHNMVVRRaWNrID0gbnVtQml0c0xVVDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChudW1CaXRzTFVUID49IDMwKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJXQVJuaW5nLCBsYXJnZSBOVU0gTFVUIEJJVFMgSVMgIiArIG51bUJpdHNMVVQpOwogICAgICAgICAgfQogICAgICAgICAgdmFyIGRlY29kZUx1dCA9IFtdLCBlbnRyeSwgY29kZSwgbnVtRW50cmllcywgamosIGN1cnJlbnRCaXQsIG5vZGU7CiAgICAgICAgICBmb3IgKGkgPSBpMDsgaSA8IGkxOyBpKyspIHsKICAgICAgICAgICAgaiA9IGkgLSAoaSA8IHNpemUgPyAwIDogc2l6ZSk7Ly93cmFwIGFyb3VuZAogICAgICAgICAgICBsZW4gPSBjb2RlVGFibGVbal0uZmlyc3Q7CiAgICAgICAgICAgIGlmIChsZW4gPiAwKSB7CiAgICAgICAgICAgICAgZW50cnkgPSBbbGVuLCBqXTsKICAgICAgICAgICAgICBpZiAobGVuIDw9IG51bUJpdHNMVVRRaWNrKSB7CiAgICAgICAgICAgICAgICBjb2RlID0gY29kZVRhYmxlW2pdLnNlY29uZCA8PCAobnVtQml0c0xVVFFpY2sgLSBsZW4pOwogICAgICAgICAgICAgICAgbnVtRW50cmllcyA9IDEgPDwgKG51bUJpdHNMVVRRaWNrIC0gbGVuKTsKICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBudW1FbnRyaWVzOyBrKyspIHsKICAgICAgICAgICAgICAgICAgZGVjb2RlTHV0W2NvZGUgfCBrXSA9IGVudHJ5OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vYnVpbGQgdHJlZQogICAgICAgICAgICAgICAgY29kZSA9IGNvZGVUYWJsZVtqXS5zZWNvbmQ7CiAgICAgICAgICAgICAgICBub2RlID0gdHJlZTsKICAgICAgICAgICAgICAgIGZvciAoamogPSBsZW4gLSAxOyBqaiA+PSAwOyBqai0tKSB7CiAgICAgICAgICAgICAgICAgIGN1cnJlbnRCaXQgPSBjb2RlID4+PiBqaiAmIDE7IC8vbm8gbGVmdCBzaGlmdCBhcyBsZW5ndGggY291bGQgYmUgMzAsMzEKICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRCaXQpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIW5vZGUucmlnaHQpIHsKICAgICAgICAgICAgICAgICAgICAgIG5vZGUucmlnaHQgPSBuZXcgVHJlZU5vZGUoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUucmlnaHQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFub2RlLmxlZnQpIHsKICAgICAgICAgICAgICAgICAgICAgIG5vZGUubGVmdCA9IG5ldyBUcmVlTm9kZSgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5sZWZ0OwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmIChqaiA9PT0gMCAmJiAhbm9kZS52YWwpIHsKICAgICAgICAgICAgICAgICAgICBub2RlLnZhbCA9IGVudHJ5WzFdOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICBkZWNvZGVMdXQ6IGRlY29kZUx1dCwKICAgICAgICAgICAgbnVtQml0c0xVVFFpY2s6IG51bUJpdHNMVVRRaWNrLAogICAgICAgICAgICBudW1CaXRzTFVUOiBudW1CaXRzTFVULAogICAgICAgICAgICB0cmVlOiB0cmVlLAogICAgICAgICAgICBzdHVmZmVkRGF0YTogc3R1ZmZlZERhdGEsCiAgICAgICAgICAgIHNyY1B0cjogc3JjUHRyLAogICAgICAgICAgICBiaXRQb3M6IGJpdFBvcwogICAgICAgICAgfTsKICAgICAgICB9LAoKICAgICAgICByZWFkSHVmZm1hbjogZnVuY3Rpb24oaW5wdXQsIGRhdGEsIE91dFBpeGVsVHlwZUFycmF5KSB7CiAgICAgICAgICB2YXIgaGVhZGVySW5mbyA9IGRhdGEuaGVhZGVySW5mbzsKICAgICAgICAgIHZhciBudW1EaW1zID0gaGVhZGVySW5mby5udW1EaW1zOwogICAgICAgICAgdmFyIGhlaWdodCA9IGRhdGEuaGVhZGVySW5mby5oZWlnaHQ7CiAgICAgICAgICB2YXIgd2lkdGggPSBkYXRhLmhlYWRlckluZm8ud2lkdGg7CiAgICAgICAgICB2YXIgbnVtUGl4ZWxzID0gd2lkdGggKiBoZWlnaHQ7CiAgICAgICAgICAvL3ZhciBzaXplX21heCA9IDEgPDwgQklUU19NQVg7CiAgICAgICAgICAvKiAqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICAgICAqIHJlYWRpbmcgaHVmZm1hbiBzdHJ1Y3R1cmUgaW5mbwogICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAgICAgICB2YXIgaHVmZm1hbkluZm8gPSB0aGlzLnJlYWRIdWZmbWFuVHJlZShpbnB1dCwgZGF0YSk7CiAgICAgICAgICB2YXIgZGVjb2RlTHV0ID0gaHVmZm1hbkluZm8uZGVjb2RlTHV0OwogICAgICAgICAgdmFyIHRyZWUgPSBodWZmbWFuSW5mby50cmVlOwogICAgICAgICAgLy9zdHVmZmVkRGF0YSBpbmNsdWRlcyBodWZmbWFuIGhlYWRlcnMKICAgICAgICAgIHZhciBzdHVmZmVkRGF0YSA9IGh1ZmZtYW5JbmZvLnN0dWZmZWREYXRhOwogICAgICAgICAgdmFyIHNyY1B0ciA9IGh1ZmZtYW5JbmZvLnNyY1B0cjsKICAgICAgICAgIHZhciBiaXRQb3MgPSBodWZmbWFuSW5mby5iaXRQb3M7CiAgICAgICAgICB2YXIgbnVtQml0c0xVVFFpY2sgPSBodWZmbWFuSW5mby5udW1CaXRzTFVUUWljazsKICAgICAgICAgIHZhciBudW1CaXRzTFVUID0gaHVmZm1hbkluZm8ubnVtQml0c0xVVDsKICAgICAgICAgIHZhciBvZmZzZXQgPSBkYXRhLmhlYWRlckluZm8uaW1hZ2VUeXBlID09PSAwID8gMTI4IDogMDsKICAgICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgICAqICBkZWNvZGUKICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAgICAgICAgIHZhciBub2RlLCB2YWwsIGRlbHRhLCBtYXNrID0gZGF0YS5waXhlbHMucmVzdWx0TWFzaywgdmFsVG1wLCB2YWxUbXBRdWljaywgY3VycmVudEJpdDsKICAgICAgICAgIHZhciBpLCBqLCBrLCBpaTsKICAgICAgICAgIHZhciBwcmV2VmFsID0gMDsKICAgICAgICAgIGlmIChiaXRQb3MgPiAwKSB7CiAgICAgICAgICAgIHNyY1B0cisrOwogICAgICAgICAgICBiaXRQb3MgPSAwOwogICAgICAgICAgfQogICAgICAgICAgdmFyIHdvcmQgPSBzdHVmZmVkRGF0YVtzcmNQdHJdOwogICAgICAgICAgdmFyIGRlbHRhRW5jb2RlID0gZGF0YS5lbmNvZGVNb2RlID09PSAxOwogICAgICAgICAgdmFyIHJlc3VsdFBpeGVsc0FsbERpbSA9IG5ldyBPdXRQaXhlbFR5cGVBcnJheShudW1QaXhlbHMgKiBudW1EaW1zKTsKICAgICAgICAgIHZhciByZXN1bHRQaXhlbHMgPSByZXN1bHRQaXhlbHNBbGxEaW07CiAgICAgICAgICB2YXIgaURpbTsKICAgICAgICAgIGZvciAoaURpbSA9IDA7IGlEaW0gPCBoZWFkZXJJbmZvLm51bURpbXM7IGlEaW0rKykgewogICAgICAgICAgICBpZiAobnVtRGltcyA+IDEpIHsKICAgICAgICAgICAgICAvL2dldCB0aGUgbWVtIGJsb2NrIG9mIGN1cnJlbnQgZGltZW5zaW9uCiAgICAgICAgICAgICAgcmVzdWx0UGl4ZWxzID0gbmV3IE91dFBpeGVsVHlwZUFycmF5KHJlc3VsdFBpeGVsc0FsbERpbS5idWZmZXIsIG51bVBpeGVscyAqIGlEaW0sIG51bVBpeGVscyk7CiAgICAgICAgICAgICAgcHJldlZhbCA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGRhdGEuaGVhZGVySW5mby5udW1WYWxpZFBpeGVsID09PSB3aWR0aCAqIGhlaWdodCkgeyAvL2FsbCB2YWxpZAogICAgICAgICAgICAgIGZvciAoayA9IDAsIGkgPSAwOyBpIDwgaGVpZ2h0OyBpKyspIHsKICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCB3aWR0aDsgaisrLCBrKyspIHsKICAgICAgICAgICAgICAgICAgdmFsID0gMDsKICAgICAgICAgICAgICAgICAgdmFsVG1wID0gKHdvcmQgPDwgYml0UG9zKSA+Pj4gKDMyIC0gbnVtQml0c0xVVFFpY2spOwogICAgICAgICAgICAgICAgICB2YWxUbXBRdWljayA9IHZhbFRtcDsvLyA+Pj4gZGVsdGFCaXRzOwogICAgICAgICAgICAgICAgICBpZiAoMzIgLSBiaXRQb3MgPCBudW1CaXRzTFVUUWljaykgewogICAgICAgICAgICAgICAgICAgIHZhbFRtcCB8PSAoKHN0dWZmZWREYXRhW3NyY1B0ciArIDFdKSA+Pj4gKDY0IC0gYml0UG9zIC0gbnVtQml0c0xVVFFpY2spKTsKICAgICAgICAgICAgICAgICAgICB2YWxUbXBRdWljayA9IHZhbFRtcDsvLyA+Pj4gZGVsdGFCaXRzOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmIChkZWNvZGVMdXRbdmFsVG1wUXVpY2tdKSAgICAvLyBpZiB0aGVyZSwgbW92ZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgYml0cyBhbmQgZG9uZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdmFsID0gZGVjb2RlTHV0W3ZhbFRtcFF1aWNrXVsxXTsKICAgICAgICAgICAgICAgICAgICBiaXRQb3MgKz0gZGVjb2RlTHV0W3ZhbFRtcFF1aWNrXVswXTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YWxUbXAgPSAod29yZCA8PCBiaXRQb3MpID4+PiAoMzIgLSBudW1CaXRzTFVUKTsKICAgICAgICAgICAgICAgICAgICB2YWxUbXBRdWljayA9IHZhbFRtcDsvLyA+Pj4gZGVsdGFCaXRzOwogICAgICAgICAgICAgICAgICAgIGlmICgzMiAtIGJpdFBvcyA8IG51bUJpdHNMVVQpIHsKICAgICAgICAgICAgICAgICAgICAgIHZhbFRtcCB8PSAoKHN0dWZmZWREYXRhW3NyY1B0ciArIDFdKSA+Pj4gKDY0IC0gYml0UG9zIC0gbnVtQml0c0xVVCkpOwogICAgICAgICAgICAgICAgICAgICAgdmFsVG1wUXVpY2sgPSB2YWxUbXA7Ly8gPj4+IGRlbHRhQml0czsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IHRyZWU7CiAgICAgICAgICAgICAgICAgICAgZm9yIChpaSA9IDA7IGlpIDwgbnVtQml0c0xVVDsgaWkrKykgewogICAgICAgICAgICAgICAgICAgICAgY3VycmVudEJpdCA9IHZhbFRtcCA+Pj4gKG51bUJpdHNMVVQgLSBpaSAtIDEpICYgMTsKICAgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBjdXJyZW50Qml0ID8gbm9kZS5yaWdodCA6IG5vZGUubGVmdDsKICAgICAgICAgICAgICAgICAgICAgIGlmICghKG5vZGUubGVmdCB8fCBub2RlLnJpZ2h0KSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBub2RlLnZhbDsKICAgICAgICAgICAgICAgICAgICAgICAgYml0UG9zID0gYml0UG9zICsgaWkgKyAxOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIGlmIChiaXRQb3MgPj0gMzIpIHsKICAgICAgICAgICAgICAgICAgICBiaXRQb3MgLT0gMzI7CiAgICAgICAgICAgICAgICAgICAgc3JjUHRyKys7CiAgICAgICAgICAgICAgICAgICAgd29yZCA9IHN0dWZmZWREYXRhW3NyY1B0cl07CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIGRlbHRhID0gdmFsIC0gb2Zmc2V0OwogICAgICAgICAgICAgICAgICBpZiAoZGVsdGFFbmNvZGUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaiA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgIGRlbHRhICs9IHByZXZWYWw7ICAgIC8vIHVzZSBvdmVyZmxvdwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgZGVsdGEgKz0gcmVzdWx0UGl4ZWxzW2sgLSB3aWR0aF07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgZGVsdGEgKz0gcHJldlZhbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGVsdGEgJj0gMHhGRjsgLy9vdmVyZmxvdwogICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1trXSA9IGRlbHRhOy8vb3ZlcmZsb3cKICAgICAgICAgICAgICAgICAgICBwcmV2VmFsID0gZGVsdGE7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0UGl4ZWxzW2tdID0gZGVsdGE7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7IC8vbm90IGFsbCB2YWxpZCwgdXNlIG1hc2sKICAgICAgICAgICAgICBmb3IgKGsgPSAwLCBpID0gMDsgaSA8IGhlaWdodDsgaSsrKSB7CiAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgd2lkdGg7IGorKywgaysrKSB7CiAgICAgICAgICAgICAgICAgIGlmIChtYXNrW2tdKSB7CiAgICAgICAgICAgICAgICAgICAgdmFsID0gMDsKICAgICAgICAgICAgICAgICAgICB2YWxUbXAgPSAod29yZCA8PCBiaXRQb3MpID4+PiAoMzIgLSBudW1CaXRzTFVUUWljayk7CiAgICAgICAgICAgICAgICAgICAgdmFsVG1wUXVpY2sgPSB2YWxUbXA7Ly8gPj4+IGRlbHRhQml0czsKICAgICAgICAgICAgICAgICAgICBpZiAoMzIgLSBiaXRQb3MgPCBudW1CaXRzTFVUUWljaykgewogICAgICAgICAgICAgICAgICAgICAgdmFsVG1wIHw9ICgoc3R1ZmZlZERhdGFbc3JjUHRyICsgMV0pID4+PiAoNjQgLSBiaXRQb3MgLSBudW1CaXRzTFVUUWljaykpOwogICAgICAgICAgICAgICAgICAgICAgdmFsVG1wUXVpY2sgPSB2YWxUbXA7Ly8gPj4+IGRlbHRhQml0czsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGRlY29kZUx1dFt2YWxUbXBRdWlja10pICAgIC8vIGlmIHRoZXJlLCBtb3ZlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBiaXRzIGFuZCBkb25lCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgdmFsID0gZGVjb2RlTHV0W3ZhbFRtcFF1aWNrXVsxXTsKICAgICAgICAgICAgICAgICAgICAgIGJpdFBvcyArPSBkZWNvZGVMdXRbdmFsVG1wUXVpY2tdWzBdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIHZhbFRtcCA9ICh3b3JkIDw8IGJpdFBvcykgPj4+ICgzMiAtIG51bUJpdHNMVVQpOwogICAgICAgICAgICAgICAgICAgICAgdmFsVG1wUXVpY2sgPSB2YWxUbXA7Ly8gPj4+IGRlbHRhQml0czsKICAgICAgICAgICAgICAgICAgICAgIGlmICgzMiAtIGJpdFBvcyA8IG51bUJpdHNMVVQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsVG1wIHw9ICgoc3R1ZmZlZERhdGFbc3JjUHRyICsgMV0pID4+PiAoNjQgLSBiaXRQb3MgLSBudW1CaXRzTFVUKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbFRtcFF1aWNrID0gdmFsVG1wOy8vID4+PiBkZWx0YUJpdHM7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBub2RlID0gdHJlZTsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IG51bUJpdHNMVVQ7IGlpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEJpdCA9IHZhbFRtcCA+Pj4gKG51bUJpdHNMVVQgLSBpaSAtIDEpICYgMTsKICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSA9IGN1cnJlbnRCaXQgPyBub2RlLnJpZ2h0IDogbm9kZS5sZWZ0OwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShub2RlLmxlZnQgfHwgbm9kZS5yaWdodCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBub2RlLnZhbDsKICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRQb3MgPSBiaXRQb3MgKyBpaSArIDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmIChiaXRQb3MgPj0gMzIpIHsKICAgICAgICAgICAgICAgICAgICAgIGJpdFBvcyAtPSAzMjsKICAgICAgICAgICAgICAgICAgICAgIHNyY1B0cisrOwogICAgICAgICAgICAgICAgICAgICAgd29yZCA9IHN0dWZmZWREYXRhW3NyY1B0cl07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBkZWx0YSA9IHZhbCAtIG9mZnNldDsKICAgICAgICAgICAgICAgICAgICBpZiAoZGVsdGFFbmNvZGUpIHsKICAgICAgICAgICAgICAgICAgICAgIGlmIChqID4gMCAmJiBtYXNrW2sgLSAxXSkgewogICAgICAgICAgICAgICAgICAgICAgICBkZWx0YSArPSBwcmV2VmFsOyAgICAvLyB1c2Ugb3ZlcmZsb3cKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGkgPiAwICYmIG1hc2tbayAtIHdpZHRoXSkgewogICAgICAgICAgICAgICAgICAgICAgICBkZWx0YSArPSByZXN1bHRQaXhlbHNbayAtIHdpZHRoXTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBkZWx0YSArPSBwcmV2VmFsOwogICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgIGRlbHRhICY9IDB4RkY7IC8vb3ZlcmZsb3cKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1trXSA9IGRlbHRhOy8vb3ZlcmZsb3cKICAgICAgICAgICAgICAgICAgICAgIHByZXZWYWwgPSBkZWx0YTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICByZXN1bHRQaXhlbHNba10gPSBkZWx0YTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YS5wdHIgPSBkYXRhLnB0ciArIChzcmNQdHIgKyAxKSAqIDQgKyAoYml0UG9zID4gMCA/IDQgOiAwKTsKICAgICAgICAgIH0KICAgICAgICAgIGRhdGEucGl4ZWxzLnJlc3VsdFBpeGVscyA9IHJlc3VsdFBpeGVsc0FsbERpbTsKICAgICAgICB9LAoKICAgICAgICBkZWNvZGVCaXRzOiBmdW5jdGlvbihpbnB1dCwgZGF0YSwgYmxvY2tEYXRhQnVmZmVyLCBvZmZzZXQsIGlEaW0pIHsKICAgICAgICAgIHsKICAgICAgICAgICAgLy9iaXRzdHVmZiBlbmNvZGluZyBpcyAzCiAgICAgICAgICAgIHZhciBoZWFkZXJJbmZvID0gZGF0YS5oZWFkZXJJbmZvOwogICAgICAgICAgICB2YXIgZmlsZVZlcnNpb24gPSBoZWFkZXJJbmZvLmZpbGVWZXJzaW9uOwogICAgICAgICAgICAvL3ZhciBibG9jayA9IHt9OwogICAgICAgICAgICB2YXIgYmxvY2tQdHIgPSAwOwogICAgICAgICAgICB2YXIgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZGF0YS5wdHIsIDUpOy8vdG8gZG8KICAgICAgICAgICAgdmFyIGhlYWRlckJ5dGUgPSB2aWV3LmdldFVpbnQ4KDApOwogICAgICAgICAgICBibG9ja1B0cisrOwogICAgICAgICAgICB2YXIgYml0czY3ID0gaGVhZGVyQnl0ZSA+PiA2OwogICAgICAgICAgICB2YXIgbiA9IChiaXRzNjcgPT09IDApID8gNCA6IDMgLSBiaXRzNjc7CiAgICAgICAgICAgIHZhciBkb0x1dCA9IChoZWFkZXJCeXRlICYgMzIpID4gMCA/IHRydWUgOiBmYWxzZTsvLzV0aCBiaXQKICAgICAgICAgICAgdmFyIG51bUJpdHMgPSBoZWFkZXJCeXRlICYgMzE7CiAgICAgICAgICAgIHZhciBudW1FbGVtZW50cyA9IDA7CiAgICAgICAgICAgIGlmIChuID09PSAxKSB7CiAgICAgICAgICAgICAgbnVtRWxlbWVudHMgPSB2aWV3LmdldFVpbnQ4KGJsb2NrUHRyKTsgYmxvY2tQdHIrKzsKICAgICAgICAgICAgfSBlbHNlIGlmIChuID09PSAyKSB7CiAgICAgICAgICAgICAgbnVtRWxlbWVudHMgPSB2aWV3LmdldFVpbnQxNihibG9ja1B0ciwgdHJ1ZSk7IGJsb2NrUHRyICs9IDI7CiAgICAgICAgICAgIH0gZWxzZSBpZiAobiA9PT0gNCkgewogICAgICAgICAgICAgIG51bUVsZW1lbnRzID0gdmlldy5nZXRVaW50MzIoYmxvY2tQdHIsIHRydWUpOyBibG9ja1B0ciArPSA0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRocm93ICJJbnZhbGlkIHZhbGlkIHBpeGVsIGNvdW50IHR5cGUiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vZml4OiBodWZmbWFuIGNvZGVzIGFyZSBiaXQgc3R1ZmZlZCwgYnV0IG5vdCBib3VuZCBieSBkYXRhJ3MgbWF4IHZhbHVlLCBzbyBuZWVkIHRvIHVzZSBvcmlnaW5hbFVuc3R1ZmYKICAgICAgICAgICAgLy9vZmZzZXQgPSBvZmZzZXQgfHwgMDsKICAgICAgICAgICAgdmFyIHNjYWxlID0gMiAqIGhlYWRlckluZm8ubWF4WkVycm9yOwogICAgICAgICAgICB2YXIgc3R1ZmZlZERhdGEsIGFycmF5QnVmLCBzdG9yZTgsIGRhdGFCeXRlcywgZGF0YVdvcmRzOwogICAgICAgICAgICB2YXIgbHV0QXJyLCBsdXREYXRhLCBsdXRCeXRlcywgYml0c1BlclBpeGVsOwogICAgICAgICAgICB2YXIgek1heCA9IGhlYWRlckluZm8ubnVtRGltcyA+IDEgPyBoZWFkZXJJbmZvLm1heFZhbHVlc1tpRGltXSA6IGhlYWRlckluZm8uek1heDsKICAgICAgICAgICAgaWYgKGRvTHV0KSB7CiAgICAgICAgICAgICAgZGF0YS5jb3VudGVyLmx1dCsrOwogICAgICAgICAgICAgIGx1dEJ5dGVzID0gdmlldy5nZXRVaW50OChibG9ja1B0cik7CiAgICAgICAgICAgICAgYmxvY2tQdHIrKzsKICAgICAgICAgICAgICBkYXRhQnl0ZXMgPSBNYXRoLmNlaWwoKGx1dEJ5dGVzIC0gMSkgKiBudW1CaXRzIC8gOCk7CiAgICAgICAgICAgICAgZGF0YVdvcmRzID0gTWF0aC5jZWlsKGRhdGFCeXRlcyAvIDQpOwogICAgICAgICAgICAgIGFycmF5QnVmID0gbmV3IEFycmF5QnVmZmVyKGRhdGFXb3JkcyAqIDQpOwogICAgICAgICAgICAgIHN0b3JlOCA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmKTsKCiAgICAgICAgICAgICAgZGF0YS5wdHIgKz0gYmxvY2tQdHI7CiAgICAgICAgICAgICAgc3RvcmU4LnNldChuZXcgVWludDhBcnJheShpbnB1dCwgZGF0YS5wdHIsIGRhdGFCeXRlcykpOwoKICAgICAgICAgICAgICBsdXREYXRhID0gbmV3IFVpbnQzMkFycmF5KGFycmF5QnVmKTsKICAgICAgICAgICAgICBkYXRhLnB0ciArPSBkYXRhQnl0ZXM7CgogICAgICAgICAgICAgIGJpdHNQZXJQaXhlbCA9IDA7CiAgICAgICAgICAgICAgd2hpbGUgKChsdXRCeXRlcyAtIDEpID4+PiBiaXRzUGVyUGl4ZWwpIHsKICAgICAgICAgICAgICAgIGJpdHNQZXJQaXhlbCsrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBkYXRhQnl0ZXMgPSBNYXRoLmNlaWwobnVtRWxlbWVudHMgKiBiaXRzUGVyUGl4ZWwgLyA4KTsKICAgICAgICAgICAgICBkYXRhV29yZHMgPSBNYXRoLmNlaWwoZGF0YUJ5dGVzIC8gNCk7CiAgICAgICAgICAgICAgYXJyYXlCdWYgPSBuZXcgQXJyYXlCdWZmZXIoZGF0YVdvcmRzICogNCk7CiAgICAgICAgICAgICAgc3RvcmU4ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWYpOwogICAgICAgICAgICAgIHN0b3JlOC5zZXQobmV3IFVpbnQ4QXJyYXkoaW5wdXQsIGRhdGEucHRyLCBkYXRhQnl0ZXMpKTsKICAgICAgICAgICAgICBzdHVmZmVkRGF0YSA9IG5ldyBVaW50MzJBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgICAgZGF0YS5wdHIgKz0gZGF0YUJ5dGVzOwogICAgICAgICAgICAgIGlmIChmaWxlVmVyc2lvbiA+PSAzKSB7CiAgICAgICAgICAgICAgICBsdXRBcnIgPSBCaXRTdHVmZmVyLnVuc3R1ZmZMVVQyKGx1dERhdGEsIG51bUJpdHMsIGx1dEJ5dGVzIC0gMSwgb2Zmc2V0LCBzY2FsZSwgek1heCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgbHV0QXJyID0gQml0U3R1ZmZlci51bnN0dWZmTFVUKGx1dERhdGEsIG51bUJpdHMsIGx1dEJ5dGVzIC0gMSwgb2Zmc2V0LCBzY2FsZSwgek1heCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIC8vbHV0QXJyLnVuc2hpZnQoMCk7CiAgICAgICAgICAgICAgaWYgKGZpbGVWZXJzaW9uID49IDMpIHsKICAgICAgICAgICAgICAgIC8vQml0U3R1ZmZlci51bnN0dWZmMihibG9jaywgYmxvY2tEYXRhQnVmZmVyLCBoZWFkZXJJbmZvLnpNYXgpOwogICAgICAgICAgICAgICAgQml0U3R1ZmZlci51bnN0dWZmMihzdHVmZmVkRGF0YSwgYmxvY2tEYXRhQnVmZmVyLCBiaXRzUGVyUGl4ZWwsIG51bUVsZW1lbnRzLCBsdXRBcnIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIEJpdFN0dWZmZXIudW5zdHVmZihzdHVmZmVkRGF0YSwgYmxvY2tEYXRhQnVmZmVyLCBiaXRzUGVyUGl4ZWwsIG51bUVsZW1lbnRzLCBsdXRBcnIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoImJpdHN0dWZmZXIiKTsKICAgICAgICAgICAgICBkYXRhLmNvdW50ZXIuYml0c3R1ZmZlcisrOwogICAgICAgICAgICAgIGJpdHNQZXJQaXhlbCA9IG51bUJpdHM7CiAgICAgICAgICAgICAgZGF0YS5wdHIgKz0gYmxvY2tQdHI7CiAgICAgICAgICAgICAgaWYgKGJpdHNQZXJQaXhlbCA+IDApIHsKICAgICAgICAgICAgICAgIGRhdGFCeXRlcyA9IE1hdGguY2VpbChudW1FbGVtZW50cyAqIGJpdHNQZXJQaXhlbCAvIDgpOwogICAgICAgICAgICAgICAgZGF0YVdvcmRzID0gTWF0aC5jZWlsKGRhdGFCeXRlcyAvIDQpOwogICAgICAgICAgICAgICAgYXJyYXlCdWYgPSBuZXcgQXJyYXlCdWZmZXIoZGF0YVdvcmRzICogNCk7CiAgICAgICAgICAgICAgICBzdG9yZTggPSBuZXcgVWludDhBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgICAgICBzdG9yZTguc2V0KG5ldyBVaW50OEFycmF5KGlucHV0LCBkYXRhLnB0ciwgZGF0YUJ5dGVzKSk7CiAgICAgICAgICAgICAgICBzdHVmZmVkRGF0YSA9IG5ldyBVaW50MzJBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgICAgICBkYXRhLnB0ciArPSBkYXRhQnl0ZXM7CiAgICAgICAgICAgICAgICBpZiAoZmlsZVZlcnNpb24gPj0gMykgewogICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBCaXRTdHVmZmVyLm9yaWdpbmFsVW5zdHVmZjIoc3R1ZmZlZERhdGEsIGJsb2NrRGF0YUJ1ZmZlciwgYml0c1BlclBpeGVsLCBudW1FbGVtZW50cyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgQml0U3R1ZmZlci51bnN0dWZmMihzdHVmZmVkRGF0YSwgYmxvY2tEYXRhQnVmZmVyLCBiaXRzUGVyUGl4ZWwsIG51bUVsZW1lbnRzLCBmYWxzZSwgb2Zmc2V0LCBzY2FsZSwgek1heCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBCaXRTdHVmZmVyLm9yaWdpbmFsVW5zdHVmZihzdHVmZmVkRGF0YSwgYmxvY2tEYXRhQnVmZmVyLCBiaXRzUGVyUGl4ZWwsIG51bUVsZW1lbnRzKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBCaXRTdHVmZmVyLnVuc3R1ZmYoc3R1ZmZlZERhdGEsIGJsb2NrRGF0YUJ1ZmZlciwgYml0c1BlclBpeGVsLCBudW1FbGVtZW50cywgZmFsc2UsIG9mZnNldCwgc2NhbGUsIHpNYXgpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CgogICAgICAgIH0sCgogICAgICAgIHJlYWRUaWxlczogZnVuY3Rpb24oaW5wdXQsIGRhdGEsIE91dFBpeGVsVHlwZUFycmF5KSB7CiAgICAgICAgICB2YXIgaGVhZGVySW5mbyA9IGRhdGEuaGVhZGVySW5mbzsKICAgICAgICAgIHZhciB3aWR0aCA9IGhlYWRlckluZm8ud2lkdGg7CiAgICAgICAgICB2YXIgaGVpZ2h0ID0gaGVhZGVySW5mby5oZWlnaHQ7CiAgICAgICAgICB2YXIgbWljcm9CbG9ja1NpemUgPSBoZWFkZXJJbmZvLm1pY3JvQmxvY2tTaXplOwogICAgICAgICAgdmFyIGltYWdlVHlwZSA9IGhlYWRlckluZm8uaW1hZ2VUeXBlOwogICAgICAgICAgdmFyIGRhdGFUeXBlU2l6ZSA9IExlcmMySGVscGVycy5nZXREYXRhVHlwZVNpemUoaW1hZ2VUeXBlKTsKICAgICAgICAgIHZhciBudW1CbG9ja3NYID0gTWF0aC5jZWlsKHdpZHRoIC8gbWljcm9CbG9ja1NpemUpOwogICAgICAgICAgdmFyIG51bUJsb2Nrc1kgPSBNYXRoLmNlaWwoaGVpZ2h0IC8gbWljcm9CbG9ja1NpemUpOwogICAgICAgICAgZGF0YS5waXhlbHMubnVtQmxvY2tzWSA9IG51bUJsb2Nrc1k7CiAgICAgICAgICBkYXRhLnBpeGVscy5udW1CbG9ja3NYID0gbnVtQmxvY2tzWDsKICAgICAgICAgIGRhdGEucGl4ZWxzLnB0ciA9IDA7CiAgICAgICAgICB2YXIgcm93ID0gMCwgY29sID0gMCwgYmxvY2tZID0gMCwgYmxvY2tYID0gMCwgdGhpc0Jsb2NrSGVpZ2h0ID0gMCwgdGhpc0Jsb2NrV2lkdGggPSAwLCBieXRlc0xlZnQgPSAwLCBoZWFkZXJCeXRlID0gMCwgYml0czY3ID0gMCwgdGVzdENvZGUgPSAwLCBvdXRQdHIgPSAwLCBvdXRTdHJpZGUgPSAwLCBudW1CeXRlcyA9IDAsIGJ5dGVzbGVmdCA9IDAsIHogPSAwLCBibG9ja1B0ciA9IDA7CiAgICAgICAgICB2YXIgdmlldywgYmxvY2ssIGFycmF5QnVmLCBzdG9yZTgsIHJhd0RhdGE7CiAgICAgICAgICB2YXIgYmxvY2tFbmNvZGluZzsKICAgICAgICAgIHZhciBibG9ja0RhdGFCdWZmZXIgPSBuZXcgT3V0UGl4ZWxUeXBlQXJyYXkobWljcm9CbG9ja1NpemUgKiBtaWNyb0Jsb2NrU2l6ZSk7CiAgICAgICAgICB2YXIgbGFzdEJsb2NrSGVpZ2h0ID0gKGhlaWdodCAlIG1pY3JvQmxvY2tTaXplKSB8fCBtaWNyb0Jsb2NrU2l6ZTsKICAgICAgICAgIHZhciBsYXN0QmxvY2tXaWR0aCA9ICh3aWR0aCAlIG1pY3JvQmxvY2tTaXplKSB8fCBtaWNyb0Jsb2NrU2l6ZTsKICAgICAgICAgIHZhciBvZmZzZXRUeXBlLCBvZmZzZXQ7CiAgICAgICAgICB2YXIgbnVtRGltcyA9IGhlYWRlckluZm8ubnVtRGltcywgaURpbTsKICAgICAgICAgIHZhciBtYXNrID0gZGF0YS5waXhlbHMucmVzdWx0TWFzazsKICAgICAgICAgIHZhciByZXN1bHRQaXhlbHMgPSBkYXRhLnBpeGVscy5yZXN1bHRQaXhlbHM7CiAgICAgICAgICBmb3IgKGJsb2NrWSA9IDA7IGJsb2NrWSA8IG51bUJsb2Nrc1k7IGJsb2NrWSsrKSB7CiAgICAgICAgICAgIHRoaXNCbG9ja0hlaWdodCA9IChibG9ja1kgIT09IG51bUJsb2Nrc1kgLSAxKSA/IG1pY3JvQmxvY2tTaXplIDogbGFzdEJsb2NrSGVpZ2h0OwogICAgICAgICAgICBmb3IgKGJsb2NrWCA9IDA7IGJsb2NrWCA8IG51bUJsb2Nrc1g7IGJsb2NrWCsrKSB7CiAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKCJ5IiArIGJsb2NrWSArICIgeCIgKyBibG9ja1gpOwogICAgICAgICAgICAgIHRoaXNCbG9ja1dpZHRoID0gKGJsb2NrWCAhPT0gbnVtQmxvY2tzWCAtIDEpID8gbWljcm9CbG9ja1NpemUgOiBsYXN0QmxvY2tXaWR0aDsKCiAgICAgICAgICAgICAgb3V0UHRyID0gYmxvY2tZICogd2lkdGggKiBtaWNyb0Jsb2NrU2l6ZSArIGJsb2NrWCAqIG1pY3JvQmxvY2tTaXplOwogICAgICAgICAgICAgIG91dFN0cmlkZSA9IHdpZHRoIC0gdGhpc0Jsb2NrV2lkdGg7CgoKICAgICAgICAgICAgICBmb3IgKGlEaW0gPSAwOyBpRGltIDwgbnVtRGltczsgaURpbSsrKSB7CiAgICAgICAgICAgICAgICBpZiAobnVtRGltcyA+IDEpIHsKICAgICAgICAgICAgICAgICAgcmVzdWx0UGl4ZWxzID0gbmV3IE91dFBpeGVsVHlwZUFycmF5KGRhdGEucGl4ZWxzLnJlc3VsdFBpeGVscy5idWZmZXIsIHdpZHRoICogaGVpZ2h0ICogaURpbSAqIGRhdGFUeXBlU2l6ZSwgd2lkdGggKiBoZWlnaHQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnl0ZXNMZWZ0ID0gaW5wdXQuYnl0ZUxlbmd0aCAtIGRhdGEucHRyOwogICAgICAgICAgICAgICAgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZGF0YS5wdHIsIE1hdGgubWluKDEwLCBieXRlc0xlZnQpKTsKICAgICAgICAgICAgICAgIGJsb2NrID0ge307CiAgICAgICAgICAgICAgICBibG9ja1B0ciA9IDA7CiAgICAgICAgICAgICAgICBoZWFkZXJCeXRlID0gdmlldy5nZXRVaW50OCgwKTsKICAgICAgICAgICAgICAgIGJsb2NrUHRyKys7CiAgICAgICAgICAgICAgICBiaXRzNjcgPSAoaGVhZGVyQnl0ZSA+PiA2KSAmIDB4RkY7CiAgICAgICAgICAgICAgICB0ZXN0Q29kZSA9IChoZWFkZXJCeXRlID4+IDIpICYgMTU7ICAgIC8vIHVzZSBiaXRzIDIzNDUgZm9yIGludGVncml0eSBjaGVjawogICAgICAgICAgICAgICAgaWYgKHRlc3RDb2RlICE9PSAoKChibG9ja1ggKiBtaWNyb0Jsb2NrU2l6ZSkgPj4gMykgJiAxNSkpIHsKICAgICAgICAgICAgICAgICAgdGhyb3cgImludGVncml0eSBpc3N1ZSI7CiAgICAgICAgICAgICAgICAgIC8vcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGJsb2NrRW5jb2RpbmcgPSBoZWFkZXJCeXRlICYgMzsKICAgICAgICAgICAgICAgIGlmIChibG9ja0VuY29kaW5nID4gMykgewogICAgICAgICAgICAgICAgICBkYXRhLnB0ciArPSBibG9ja1B0cjsKICAgICAgICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgYmxvY2sgZW5jb2RpbmcgKCIgKyBibG9ja0VuY29kaW5nICsgIikiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2tFbmNvZGluZyA9PT0gMikgeyAvL2NvbnN0YW50IDAKICAgICAgICAgICAgICAgICAgZGF0YS5jb3VudGVyLmNvbnN0YW50Kys7CiAgICAgICAgICAgICAgICAgIGRhdGEucHRyICs9IGJsb2NrUHRyOwogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrRW5jb2RpbmcgPT09IDApIHsgIC8vdW5jb21wcmVzc2VkCiAgICAgICAgICAgICAgICAgIGRhdGEuY291bnRlci51bmNvbXByZXNzZWQrKzsKICAgICAgICAgICAgICAgICAgZGF0YS5wdHIgKz0gYmxvY2tQdHI7CiAgICAgICAgICAgICAgICAgIG51bUJ5dGVzID0gdGhpc0Jsb2NrSGVpZ2h0ICogdGhpc0Jsb2NrV2lkdGggKiBkYXRhVHlwZVNpemU7CiAgICAgICAgICAgICAgICAgIGJ5dGVzbGVmdCA9IGlucHV0LmJ5dGVMZW5ndGggLSBkYXRhLnB0cjsKICAgICAgICAgICAgICAgICAgbnVtQnl0ZXMgPSBudW1CeXRlcyA8IGJ5dGVzbGVmdCA/IG51bUJ5dGVzIDogYnl0ZXNsZWZ0OwogICAgICAgICAgICAgICAgICAvL2JpdCBhbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgYXJyYXlCdWYgPSBuZXcgQXJyYXlCdWZmZXIoKG51bUJ5dGVzICUgZGF0YVR5cGVTaXplKSA9PT0gMCA/IG51bUJ5dGVzIDogKG51bUJ5dGVzICsgZGF0YVR5cGVTaXplIC0gbnVtQnl0ZXMgJSBkYXRhVHlwZVNpemUpKTsKICAgICAgICAgICAgICAgICAgc3RvcmU4ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWYpOwogICAgICAgICAgICAgICAgICBzdG9yZTguc2V0KG5ldyBVaW50OEFycmF5KGlucHV0LCBkYXRhLnB0ciwgbnVtQnl0ZXMpKTsKICAgICAgICAgICAgICAgICAgcmF3RGF0YSA9IG5ldyBPdXRQaXhlbFR5cGVBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgICAgICAgIHogPSAwOwogICAgICAgICAgICAgICAgICBpZiAobWFzaykgewogICAgICAgICAgICAgICAgICAgIGZvciAocm93ID0gMDsgcm93IDwgdGhpc0Jsb2NrSGVpZ2h0OyByb3crKykgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChjb2wgPSAwOyBjb2wgPCB0aGlzQmxvY2tXaWR0aDsgY29sKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hc2tbb3V0UHRyXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHJdID0gcmF3RGF0YVt6KytdOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIG91dFB0cisrOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgb3V0UHRyICs9IG91dFN0cmlkZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSB7Ly9hbGwgdmFsaWQKICAgICAgICAgICAgICAgICAgICBmb3IgKHJvdyA9IDA7IHJvdyA8IHRoaXNCbG9ja0hlaWdodDsgcm93KyspIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29sID0gMDsgY29sIDwgdGhpc0Jsb2NrV2lkdGg7IGNvbCsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHIrK10gPSByYXdEYXRhW3orK107CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBvdXRQdHIgKz0gb3V0U3RyaWRlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBkYXRhLnB0ciArPSB6ICogZGF0YVR5cGVTaXplOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7IC8vMSBvciAzCiAgICAgICAgICAgICAgICAgIG9mZnNldFR5cGUgPSBMZXJjMkhlbHBlcnMuZ2V0RGF0YVR5cGVVc2VkKGltYWdlVHlwZSwgYml0czY3KTsKICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gTGVyYzJIZWxwZXJzLmdldE9uZVBpeGVsKGJsb2NrLCBibG9ja1B0ciwgb2Zmc2V0VHlwZSwgdmlldyk7CiAgICAgICAgICAgICAgICAgIGJsb2NrUHRyICs9IExlcmMySGVscGVycy5nZXREYXRhVHlwZVNpemUob2Zmc2V0VHlwZSk7CiAgICAgICAgICAgICAgICAgIGlmIChibG9ja0VuY29kaW5nID09PSAzKSAvL2NvbnN0YW50IG9mZnNldCB2YWx1ZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZGF0YS5wdHIgKz0gYmxvY2tQdHI7CiAgICAgICAgICAgICAgICAgICAgZGF0YS5jb3VudGVyLmNvbnN0YW50b2Zmc2V0Kys7CiAgICAgICAgICAgICAgICAgICAgLy95b3UgY2FuIGRlbGV0ZSB0aGUgZm9sbG93aW5nIHJlc3VsdE1hc2sgY2FzZSBpbiBmYXZvciBvZiBwZXJmb3JtYW5jZSBiZWNhdXNlIHZhbCBpcyBjb25zdGFudCBhbmQgdXNlcnMgdXNlIG5vZGF0YSBtYXNrLCBvdGhlcndpc2Ugbm9kYXRhdmFsdWUgcG9zdCBwcm9jZXNzaW5nIGhhbmRsZXMgaXQgdG9vLgogICAgICAgICAgICAgICAgICAgIC8vd2hpbGUgdGhlIGFib3ZlIHN0YXRlbWVudCBpcyB0cnVlLCB3ZSdyZSBub3QgZG9pbmcgaXQgYXMgd2Ugd2FudCB0byBrZWVwIGludmFsaWQgcGl4ZWwgdmFsdWUgYXQgMCByYXRoZXIgdGhhbiBhcmJpdHJhcnkgdmFsdWVzCiAgICAgICAgICAgICAgICAgICAgaWYgKG1hc2spIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAocm93ID0gMDsgcm93IDwgdGhpc0Jsb2NrSGVpZ2h0OyByb3crKykgewogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbCA9IDA7IGNvbCA8IHRoaXNCbG9ja1dpZHRoOyBjb2wrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXNrW291dFB0cl0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHJdID0gb2Zmc2V0OwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRQdHIrKzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBvdXRQdHIgKz0gb3V0U3RyaWRlOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAocm93ID0gMDsgcm93IDwgdGhpc0Jsb2NrSGVpZ2h0OyByb3crKykgewogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbCA9IDA7IGNvbCA8IHRoaXNCbG9ja1dpZHRoOyBjb2wrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHIrK10gPSBvZmZzZXQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgb3V0UHRyICs9IG91dFN0cmlkZTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vYml0c3R1ZmYgZW5jb2RpbmcgaXMgMwogICAgICAgICAgICAgICAgICAgIGRhdGEucHRyICs9IGJsb2NrUHRyOwogICAgICAgICAgICAgICAgICAgIC8vaGVhdnkgbGlmdGluZwogICAgICAgICAgICAgICAgICAgIExlcmMySGVscGVycy5kZWNvZGVCaXRzKGlucHV0LCBkYXRhLCBibG9ja0RhdGFCdWZmZXIsIG9mZnNldCwgaURpbSk7CiAgICAgICAgICAgICAgICAgICAgYmxvY2tQdHIgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmIChtYXNrKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHJvdyA9IDA7IHJvdyA8IHRoaXNCbG9ja0hlaWdodDsgcm93KyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb2wgPSAwOyBjb2wgPCB0aGlzQmxvY2tXaWR0aDsgY29sKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFza1tvdXRQdHJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRQaXhlbHNbb3V0UHRyXSA9IGJsb2NrRGF0YUJ1ZmZlcltibG9ja1B0cisrXTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0UHRyKys7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgb3V0UHRyICs9IG91dFN0cmlkZTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHJvdyA9IDA7IHJvdyA8IHRoaXNCbG9ja0hlaWdodDsgcm93KyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb2wgPSAwOyBjb2wgPCB0aGlzQmxvY2tXaWR0aDsgY29sKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRQaXhlbHNbb3V0UHRyKytdID0gYmxvY2tEYXRhQnVmZmVyW2Jsb2NrUHRyKytdOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIG91dFB0ciArPSBvdXRTdHJpZGU7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgLyoqKioqKioqKioqKioqKioqCiAgICAgICAgKiAgcHJpdmF0ZSBtZXRob2RzIChoZWxwZXIgbWV0aG9kcykKICAgICAgICAqKioqKioqKioqKioqKioqKi8KCiAgICAgICAgZm9ybWF0RmlsZUluZm86IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICJmaWxlSWRlbnRpZmllclN0cmluZyI6IGRhdGEuaGVhZGVySW5mby5maWxlSWRlbnRpZmllclN0cmluZywKICAgICAgICAgICAgImZpbGVWZXJzaW9uIjogZGF0YS5oZWFkZXJJbmZvLmZpbGVWZXJzaW9uLAogICAgICAgICAgICAiaW1hZ2VUeXBlIjogZGF0YS5oZWFkZXJJbmZvLmltYWdlVHlwZSwKICAgICAgICAgICAgImhlaWdodCI6IGRhdGEuaGVhZGVySW5mby5oZWlnaHQsCiAgICAgICAgICAgICJ3aWR0aCI6IGRhdGEuaGVhZGVySW5mby53aWR0aCwKICAgICAgICAgICAgIm51bVZhbGlkUGl4ZWwiOiBkYXRhLmhlYWRlckluZm8ubnVtVmFsaWRQaXhlbCwKICAgICAgICAgICAgIm1pY3JvQmxvY2tTaXplIjogZGF0YS5oZWFkZXJJbmZvLm1pY3JvQmxvY2tTaXplLAogICAgICAgICAgICAiYmxvYlNpemUiOiBkYXRhLmhlYWRlckluZm8uYmxvYlNpemUsCiAgICAgICAgICAgICJtYXhaRXJyb3IiOiBkYXRhLmhlYWRlckluZm8ubWF4WkVycm9yLAogICAgICAgICAgICAicGl4ZWxUeXBlIjogTGVyYzJIZWxwZXJzLmdldFBpeGVsVHlwZShkYXRhLmhlYWRlckluZm8uaW1hZ2VUeXBlKSwKICAgICAgICAgICAgImVvZk9mZnNldCI6IGRhdGEuZW9mT2Zmc2V0LAogICAgICAgICAgICAibWFzayI6IGRhdGEubWFzayA/IHsKICAgICAgICAgICAgICAibnVtQnl0ZXMiOiBkYXRhLm1hc2subnVtQnl0ZXMKICAgICAgICAgICAgfSA6IG51bGwsCiAgICAgICAgICAgICJwaXhlbHMiOiB7CiAgICAgICAgICAgICAgIm51bUJsb2Nrc1giOiBkYXRhLnBpeGVscy5udW1CbG9ja3NYLAogICAgICAgICAgICAgICJudW1CbG9ja3NZIjogZGF0YS5waXhlbHMubnVtQmxvY2tzWSwKICAgICAgICAgICAgICAvLyJudW1CeXRlcyI6IGRhdGEucGl4ZWxzLm51bUJ5dGVzLAogICAgICAgICAgICAgICJtYXhWYWx1ZSI6IGRhdGEuaGVhZGVySW5mby56TWF4LAogICAgICAgICAgICAgICJtaW5WYWx1ZSI6IGRhdGEuaGVhZGVySW5mby56TWluLAogICAgICAgICAgICAgICJub0RhdGFWYWx1ZSI6IGRhdGEubm9EYXRhVmFsdWUKICAgICAgICAgICAgfQogICAgICAgICAgfTsKICAgICAgICB9LAoKICAgICAgICBjb25zdHJ1Y3RDb25zdGFudFN1cmZhY2U6IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgIHZhciB2YWwgPSBkYXRhLmhlYWRlckluZm8uek1heDsKICAgICAgICAgIHZhciBudW1EaW1zID0gIGRhdGEuaGVhZGVySW5mby5udW1EaW1zOwogICAgICAgICAgdmFyIG51bVBpeGVscyA9IGRhdGEuaGVhZGVySW5mby5oZWlnaHQgKiBkYXRhLmhlYWRlckluZm8ud2lkdGg7CiAgICAgICAgICB2YXIgbnVtUGl4ZWxBbGxEaW1zID0gbnVtUGl4ZWxzICogbnVtRGltczsKICAgICAgICAgIHZhciBpPTAsIGsgPSAwLCBuU3RhcnQ9MDsKICAgICAgICAgIHZhciBtYXNrID0gZGF0YS5waXhlbHMucmVzdWx0TWFzazsKICAgICAgICAgIGlmIChtYXNrKSB7CiAgICAgICAgICAgIGlmIChudW1EaW1zID4gMSkgewogICAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgbnVtRGltczsgaSsrKSB7CiAgICAgICAgICAgICAgICBuU3RhcnQgPSBpICogbnVtUGl4ZWxzOwogICAgICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IG51bVBpeGVsczsgaysrKSB7CiAgICAgICAgICAgICAgICAgIGlmIChtYXNrW2tdKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YS5waXhlbHMucmVzdWx0UGl4ZWxzW25TdGFydCArIGtdID0gdmFsOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBudW1QaXhlbHM7IGsrKykgewogICAgICAgICAgICAgICAgaWYgKG1hc2tba10pIHsKICAgICAgICAgICAgICAgICAgZGF0YS5waXhlbHMucmVzdWx0UGl4ZWxzW2tdID0gdmFsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmIChkYXRhLnBpeGVscy5yZXN1bHRQaXhlbHMuZmlsbCkgewogICAgICAgICAgICAgIGRhdGEucGl4ZWxzLnJlc3VsdFBpeGVscy5maWxsKHZhbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IG51bVBpeGVsQWxsRGltczsgaysrKSB7CiAgICAgICAgICAgICAgICBkYXRhLnBpeGVscy5yZXN1bHRQaXhlbHNba10gPSB2YWw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfSwKCiAgICAgICAgZ2V0RGF0YVR5cGVBcnJheTogZnVuY3Rpb24odCkgewogICAgICAgICAgdmFyIHRwOwogICAgICAgICAgc3dpdGNoICh0KSB7CiAgICAgICAgICAgIGNhc2UgMDogLy9jaGFyCiAgICAgICAgICAgICAgdHAgPSBJbnQ4QXJyYXk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTogLy9ieXRlCiAgICAgICAgICAgICAgdHAgPSBVaW50OEFycmF5OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDI6IC8vc2hvcnQKICAgICAgICAgICAgICB0cCA9IEludDE2QXJyYXk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzogLy91c2hvcnQKICAgICAgICAgICAgICB0cCA9IFVpbnQxNkFycmF5OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgdHAgPSBJbnQzMkFycmF5OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgdHAgPSBVaW50MzJBcnJheTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgIHRwID0gRmxvYXQzMkFycmF5OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgdHAgPSBGbG9hdDY0QXJyYXk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgdHAgPSBGbG9hdDMyQXJyYXk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHA7CiAgICAgICAgfSwKCiAgICAgICAgZ2V0UGl4ZWxUeXBlOiBmdW5jdGlvbih0KSB7CiAgICAgICAgICB2YXIgdHA7CiAgICAgICAgICBzd2l0Y2ggKHQpIHsKICAgICAgICAgICAgY2FzZSAwOiAvL2NoYXIKICAgICAgICAgICAgICB0cCA9ICJTOCI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTogLy9ieXRlCiAgICAgICAgICAgICAgdHAgPSAiVTgiOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDI6IC8vc2hvcnQKICAgICAgICAgICAgICB0cCA9ICJTMTYiOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM6IC8vdXNob3J0CiAgICAgICAgICAgICAgdHAgPSAiVTE2IjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIHRwID0gIlMzMiI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICB0cCA9ICJVMzIiOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgdHAgPSAiRjMyIjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIHRwID0gIkY2NCI7IC8vbm90IHN1cHBvcnRlZAogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHRwID0gIkYzMiI7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHA7CiAgICAgICAgfSwKCiAgICAgICAgaXNWYWxpZFBpeGVsVmFsdWU6IGZ1bmN0aW9uKHQsIHZhbCkgewogICAgICAgICAgaWYgKHZhbCA9PSBudWxsKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBpc1ZhbGlkOwogICAgICAgICAgc3dpdGNoICh0KSB7CiAgICAgICAgICAgIGNhc2UgMDogLy9jaGFyCiAgICAgICAgICAgICAgaXNWYWxpZCA9IHZhbCA+PSAtMTI4ICYmIHZhbCA8PSAxMjc7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTogLy9ieXRlICAodW5zaWduZWQgY2hhcikKICAgICAgICAgICAgICBpc1ZhbGlkID0gdmFsID49IDAgJiYgdmFsIDw9IDI1NTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOiAvL3Nob3J0CiAgICAgICAgICAgICAgaXNWYWxpZCA9IHZhbCA+PSAtMzI3NjggJiYgdmFsIDw9IDMyNzY3OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM6IC8vdXNob3J0CiAgICAgICAgICAgICAgaXNWYWxpZCA9IHZhbCA+PSAwICYmIHZhbCA8PSA2NTUzNjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OiAvL2ludCAzMgogICAgICAgICAgICAgIGlzVmFsaWQgPSB2YWwgPj0gLTIxNDc0ODM2NDggJiYgdmFsIDw9IDIxNDc0ODM2NDc7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNTogLy91aW5pdCAzMgogICAgICAgICAgICAgIGlzVmFsaWQgPSB2YWwgPj0gMCAmJiB2YWwgPD0gNDI5NDk2NzI5NjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgIGlzVmFsaWQgPSB2YWwgPj0gLTMuNDAyNzk5OTM4NzkwMTQ4NGUrMzggJiYgdmFsIDw9IDMuNDAyNzk5OTM4NzkwMTQ4NGUrMzg7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBpc1ZhbGlkID0gdmFsID49IDVlLTMyNCAmJiB2YWwgPD0gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDg7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaXNWYWxpZCA9IGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGlzVmFsaWQ7CiAgICAgICAgfSwKCiAgICAgICAgZ2V0RGF0YVR5cGVTaXplOiBmdW5jdGlvbih0KSB7CiAgICAgICAgICB2YXIgcyA9IDA7CiAgICAgICAgICBzd2l0Y2ggKHQpIHsKICAgICAgICAgICAgY2FzZSAwOiAvL3VieXRlCiAgICAgICAgICAgIGNhc2UgMTogLy9ieXRlCiAgICAgICAgICAgICAgcyA9IDE7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMjogLy9zaG9ydAogICAgICAgICAgICBjYXNlIDM6IC8vdXNob3J0CiAgICAgICAgICAgICAgcyA9IDI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgcyA9IDQ7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBzID0gODsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICBzID0gdDsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBzOwogICAgICAgIH0sCgogICAgICAgIGdldERhdGFUeXBlVXNlZDogZnVuY3Rpb24oZHQsIHRjKSB7CiAgICAgICAgICB2YXIgdCA9IGR0OwogICAgICAgICAgc3dpdGNoIChkdCkgewogICAgICAgICAgICBjYXNlIDI6IC8vc2hvcnQKICAgICAgICAgICAgY2FzZSA0OiAvL2xvbmcKICAgICAgICAgICAgICB0ID0gZHQgLSB0YzsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzOiAvL3VzaG9ydAogICAgICAgICAgICBjYXNlIDU6IC8vdWxvbmcKICAgICAgICAgICAgICB0ID0gZHQgLSAyICogdGM7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNjogLy9mbG9hdAogICAgICAgICAgICAgIGlmICgwID09PSB0YykgewogICAgICAgICAgICAgICAgdCA9IGR0OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIGlmICgxID09PSB0YykgewogICAgICAgICAgICAgICAgdCA9IDI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdCA9IDE7Ly9ieXRlCiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDc6IC8vZG91YmxlCiAgICAgICAgICAgICAgaWYgKDAgPT09IHRjKSB7CiAgICAgICAgICAgICAgICB0ID0gZHQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdCA9IGR0IC0gMiAqIHRjICsgMTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgdCA9IGR0OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgfSwKCiAgICAgICAgZ2V0T25lUGl4ZWw6IGZ1bmN0aW9uKGJsb2NrLCBibG9ja1B0ciwgb2Zmc2V0VHlwZSwgdmlldykgewogICAgICAgICAgdmFyIHRlbXAgPSAwOwogICAgICAgICAgc3dpdGNoIChvZmZzZXRUeXBlKSB7CiAgICAgICAgICAgIGNhc2UgMDogLy9jaGFyCiAgICAgICAgICAgICAgdGVtcCA9IHZpZXcuZ2V0SW50OChibG9ja1B0cik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTogLy9ieXRlCiAgICAgICAgICAgICAgdGVtcCA9IHZpZXcuZ2V0VWludDgoYmxvY2tQdHIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgdGVtcCA9IHZpZXcuZ2V0SW50MTYoYmxvY2tQdHIsIHRydWUpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgdGVtcCA9IHZpZXcuZ2V0VWludDE2KGJsb2NrUHRyLCB0cnVlKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIHRlbXAgPSB2aWV3LmdldEludDMyKGJsb2NrUHRyLCB0cnVlKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIHRlbXAgPSB2aWV3LmdldFVJbnQzMihibG9ja1B0ciwgdHJ1ZSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgICB0ZW1wID0gdmlldy5nZXRGbG9hdDMyKGJsb2NrUHRyLCB0cnVlKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIC8vdGVtcCA9IHZpZXcuZ2V0RmxvYXQ2NChibG9ja1B0ciwgdHJ1ZSk7CiAgICAgICAgICAgICAgLy9ibG9ja1B0ciArPSA4OwogICAgICAgICAgICAgIC8vbGVyYzIgZW5jb2RpbmcgZG9lc250IGhhbmRsZSBmbG9hdCA2NCwgZm9yY2UgdG8gZmxvYXQzMj8/PwogICAgICAgICAgICAgIHRlbXAgPSB2aWV3LmdldEZsb2F0NjQoYmxvY2tQdHIsIHRydWUpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHRocm93ICgidGhlIGRlY29kZXIgZG9lcyBub3QgdW5kZXJzdGFuZCB0aGlzIHBpeGVsIHR5cGUiKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0ZW1wOwogICAgICAgIH0KICAgICAgfTsKCiAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgKnByaXZhdGUgY2xhc3MgZm9yIGEgdHJlZSBub2RlLiBIdWZmbWFuIGNvZGUgaXMgaW4gTGVyYzJIZWxwZXJzCiAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAgIHZhciBUcmVlTm9kZSA9IGZ1bmN0aW9uKHZhbCwgbGVmdCwgcmlnaHQpIHsKICAgICAgICB0aGlzLnZhbCA9IHZhbDsKICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0OwogICAgICAgIHRoaXMucmlnaHQgPSByaWdodDsKICAgICAgfTsKCiAgICAgIHZhciBMZXJjMkRlY29kZSA9IHsKICAgICAgICAvKgogICAgICAgICogKioqKioqKipyZW1vdmVkIG9wdGlvbnMgY29tcGFyZWQgdG8gTEVSQzEuIFdlIGNhbiBicmluZyBzb21lIG9mIHRoZW0gYmFjayBpZiBuZWVkZWQuCiAgICAgICAgICogcmVtb3ZlZCBwaXhlbCB0eXBlLiBMRVJDMiBpcyB0eXBlZCBhbmQgZG9lc24ndCByZXF1aXJlIHVzZXIgdG8gZ2l2ZSBwaXhlbCB0eXBlCiAgICAgICAgICogY2hhbmdlZCBlbmNvZGVkTWFza0RhdGEgdG8gbWFza0RhdGEuIExFUkMyICdzIGpzIHZlcnNpb24gbWFrZSBpdCBmYXN0ZXIgdG8gdXNlIG1hc2tEYXRhIGRpcmVjdGx5LgogICAgICAgICAqIHJlbW92ZWQgcmV0dXJuTWFzay4gbWFzayBpcyB1c2VkIGJ5IExFUkMyIGludGVybmFsbHkgYW5kIGlzIGNvc3QgZnJlZS4gSW4gY2FzZSBvZiB1c2VyIGlucHV0IG1hc2ssIGl0J3MgcmV0dXJuZWQgYXMgd2VsbCBhbmQgaGFzIG5lZ2xpYmxlIGNvc3QuCiAgICAgICAgICogcmVtb3ZlZCBub2RhdGF2YWx1ZS4gQmVjYXVzZSBMRVJDMiBwaXhlbHMgYXJlIHR5cGVkLCBub2RhdGF2YWx1ZSB3aWxsIHNhY3JpZnkgYSB1c2VmdWwgdmFsdWUgZm9yIG1hbnkgdHlwZXMgKDhiaXQsIDE2Yml0KSBldGMsCiAgICAgICAgICogICAgICAgdXNlciBoYXMgdG8gYmUga25vd2xlZGdhYmxlIGVub3VnaCBhYm91dCByYXN0ZXIgYW5kIHRoZWlyIGRhdGEgdG8gYXZvaWQgdXNhYmlsaXR5IGlzc3Vlcy4gc28gbm9kYXRhIHZhbHVlIGlzIHNpbXBseSByZW1vdmVkIG5vdy4KICAgICAgICAgKiAgICAgICBXZSBjYW4gYWRkIGl0IGJhY2sgbGF0ZXIgaWYgdGhlaXIncyBhIGNsZWFyIHJlcXVpcmVtZW50LgogICAgICAgICAqIHJlbW92ZWQgZW5jb2RlZE1hc2suIFRoaXMgb3B0aW9uIHdhcyBub3QgaW1wbGVtZW50ZWQgaW4gTGVyY0RlY29kZS4gSXQgY2FuIGJlIGRvbmUgYWZ0ZXIgZGVjb2RpbmcgKGxlc3MgZWZmaWNpZW50KQogICAgICAgICAqIHJlbW92ZWQgY29tcHV0ZVVzZWRCaXREZXB0aHMuCiAgICAgICAgICoKICAgICAgICAgKgogICAgICAgICAqIHJlc3BvbnNlIGNoYW5nZXMgY29tcGFyZWQgdG8gTEVSQzEKICAgICAgICAgKiAxLiBlbmNvZGVkTWFza0RhdGEgaXMgbm90IGF2YWlsYWJsZQogICAgICAgICAqIDIuIG5vRGF0YVZhbHVlIGlzIG9wdGlvbmFsIChyZXR1cm5zIG9ubHkgaWYgdXNlcidzIG5vRGF0YVZhbHVlIGlzIHdpdGggaW4gdGhlIHZhbGlkIGRhdGEgdHlwZSByYW5nZSkKICAgICAgICAgKiAzLiBtYXNrRGF0YSBpcyBhbHdheXMgYXZhaWxhYmxlCiAgICAgICAgKi8KICAgICAgICAvKioqKioqKioqKioqKioqKioKICAgICAgICAqICBwdWJsaWMgcHJvcGVydGllcwogICAgICAgICoqKioqKioqKioqKioqKioqKi8KICAgICAgICAvL0hVRkZNQU5fTFVUX0JJVFNfTUFYOiAxMiwgLy91c2UgMl4xMiBsdXQsIG5vdCBjb25maWd1cmFibGUKCiAgICAgICAgLyoqKioqKioqKioqKioqKioqCiAgICAgICAgKiAgcHVibGljIG1ldGhvZHMKICAgICAgICAqKioqKioqKioqKioqKioqKi8KCiAgICAgICAgLyoqCiAgICAgICAgICogRGVjb2RlIGEgTEVSQzIgYnl0ZSBzdHJlYW0gYW5kIHJldHVybiBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcGl4ZWwgZGF0YSBhbmQgb3B0aW9uYWwgbWV0YWRhdGEuCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBpbnB1dCBUaGUgTEVSQyBpbnB1dCBieXRlIHN0cmVhbQogICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gb3B0aW9ucyBEZWNvZGluZyBvcHRpb25zCiAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLmlucHV0T2Zmc2V0XSBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgaW4gdGhlIGlucHV0IGJ5dGUgc3RyZWFtLiBBIHZhbGlkIExFUkMgZmlsZSBpcyBleHBlY3RlZCBhdCB0aGF0IHBvc2l0aW9uCiAgICAgICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5yZXR1cm5GaWxlSW5mb10gSWYgdHJ1ZSwgdGhlIHJldHVybiB2YWx1ZSB3aWxsIGhhdmUgYSBmaWxlSW5mbyBwcm9wZXJ0eSB0aGF0IGNvbnRhaW5zIG1ldGFkYXRhIG9idGFpbmVkIGZyb20gdGhlIExFUkMgaGVhZGVycyBhbmQgdGhlIGRlY29kaW5nIHByb2Nlc3MKICAgICAgICAgKi8KICAgICAgICBkZWNvZGU6IGZ1bmN0aW9uKC8qYnl0ZSBhcnJheSovIGlucHV0LCAvKm9iamVjdCovIG9wdGlvbnMpIHsKICAgICAgICAgIC8vY3VycmVudGx5IHRoZXJlJ3MgYSBidWcgaW4gdGhlIHNwYXJzZSBhcnJheSwgc28gcGxlYXNlIGRvIG5vdCBzZXQgdG8gZmFsc2UKICAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgICAgdmFyIG5vRGF0YVZhbHVlID0gb3B0aW9ucy5ub0RhdGFWYWx1ZTsKCiAgICAgICAgICAvL2luaXRpYWxpemUKICAgICAgICAgIHZhciBpID0gMCwgZGF0YSA9IHt9OwogICAgICAgICAgZGF0YS5wdHIgPSBvcHRpb25zLmlucHV0T2Zmc2V0IHx8IDA7CiAgICAgICAgICBkYXRhLnBpeGVscyA9IHt9OwoKICAgICAgICAgIC8vIEZpbGUgaGVhZGVyCiAgICAgICAgICBpZiAoIUxlcmMySGVscGVycy5yZWFkSGVhZGVySW5mbyhpbnB1dCwgZGF0YSkpIDsKICAgICAgICAgIHZhciBoZWFkZXJJbmZvID0gZGF0YS5oZWFkZXJJbmZvOwogICAgICAgICAgdmFyIGZpbGVWZXJzaW9uID0gaGVhZGVySW5mby5maWxlVmVyc2lvbjsKICAgICAgICAgIHZhciBPdXRQaXhlbFR5cGVBcnJheSA9IExlcmMySGVscGVycy5nZXREYXRhVHlwZUFycmF5KGhlYWRlckluZm8uaW1hZ2VUeXBlKTsKCiAgICAgICAgICAvLyBNYXNrIEhlYWRlcgogICAgICAgICAgTGVyYzJIZWxwZXJzLnJlYWRNYXNrKGlucHV0LCBkYXRhKTsKICAgICAgICAgIGlmIChoZWFkZXJJbmZvLm51bVZhbGlkUGl4ZWwgIT09IGhlYWRlckluZm8ud2lkdGggKiBoZWFkZXJJbmZvLmhlaWdodCAmJiAhZGF0YS5waXhlbHMucmVzdWx0TWFzaykgewogICAgICAgICAgICBkYXRhLnBpeGVscy5yZXN1bHRNYXNrID0gb3B0aW9ucy5tYXNrRGF0YTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgbnVtUGl4ZWxzID0gaGVhZGVySW5mby53aWR0aCAqIGhlYWRlckluZm8uaGVpZ2h0OwogICAgICAgICAgZGF0YS5waXhlbHMucmVzdWx0UGl4ZWxzID0gbmV3IE91dFBpeGVsVHlwZUFycmF5KG51bVBpeGVscyAqIGhlYWRlckluZm8ubnVtRGltcyk7CgogICAgICAgICAgZGF0YS5jb3VudGVyID0gewogICAgICAgICAgICBvbmVzd2VlcDogMCwKICAgICAgICAgICAgdW5jb21wcmVzc2VkOiAwLAogICAgICAgICAgICBsdXQ6IDAsCiAgICAgICAgICAgIGJpdHN0dWZmZXI6IDAsCiAgICAgICAgICAgIGNvbnN0YW50OiAwLAogICAgICAgICAgICBjb25zdGFudG9mZnNldDogMAogICAgICAgICAgfTsKICAgICAgICAgIGlmIChoZWFkZXJJbmZvLm51bVZhbGlkUGl4ZWwgIT09IDApIHsKICAgICAgICAgICAgLy9ub3QgdGVzdGVkCiAgICAgICAgICAgIGlmIChoZWFkZXJJbmZvLnpNYXggPT09IGhlYWRlckluZm8uek1pbikgLy9jb25zdGFudCBzdXJmYWNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBMZXJjMkhlbHBlcnMuY29uc3RydWN0Q29uc3RhbnRTdXJmYWNlKGRhdGEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKGZpbGVWZXJzaW9uID49IDQgJiYgTGVyYzJIZWxwZXJzLmNoZWNrTWluTWF4UmFuZ2VzKGlucHV0LCBkYXRhKSkgewogICAgICAgICAgICAgIExlcmMySGVscGVycy5jb25zdHJ1Y3RDb25zdGFudFN1cmZhY2UoZGF0YSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgRGF0YVZpZXcoaW5wdXQsIGRhdGEucHRyLCAyKTsKICAgICAgICAgICAgICB2YXIgYlJlYWREYXRhT25lU3dlZXAgPSB2aWV3LmdldFVpbnQ4KDApOwogICAgICAgICAgICAgIGRhdGEucHRyKys7CiAgICAgICAgICAgICAgaWYgKGJSZWFkRGF0YU9uZVN3ZWVwKSB7CiAgICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoIk9uZVN3ZWVwIik7CiAgICAgICAgICAgICAgICBMZXJjMkhlbHBlcnMucmVhZERhdGFPbmVTd2VlcChpbnB1dCwgZGF0YSwgT3V0UGl4ZWxUeXBlQXJyYXkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vbGVyYzIuMTogLy9iaXRzdHVmZmluZyArIGx1dAogICAgICAgICAgICAgICAgLy9sZXJjMi4yOiAvL2JpdHN0dWZmaW5nICsgbHV0ICsgaHVmZm1hbgogICAgICAgICAgICAgICAgLy9sZXJjMi4zOiBuZXcgYml0c3R1ZmZlcgogICAgICAgICAgICAgICAgaWYgKGZpbGVWZXJzaW9uID4gMSAmJiBoZWFkZXJJbmZvLmltYWdlVHlwZSA8PSAxICYmIE1hdGguYWJzKGhlYWRlckluZm8ubWF4WkVycm9yIC0gMC41KSA8IDAuMDAwMDEpIHsKICAgICAgICAgICAgICAgICAgLy90aGlzIGlzIDIueCBwbHVzIDggYml0ICh1bnNpZ25lZCBhbmQgc2lnbmVkKSBkYXRhLCBwb3NzaWJsaXR5IG9mIEh1ZmZtYW4KICAgICAgICAgICAgICAgICAgdmFyIGZsYWdIdWZmbWFuID0gdmlldy5nZXRVaW50OCgxKTsKICAgICAgICAgICAgICAgICAgZGF0YS5wdHIrKzsKICAgICAgICAgICAgICAgICAgZGF0YS5lbmNvZGVNb2RlID0gZmxhZ0h1ZmZtYW47CiAgICAgICAgICAgICAgICAgIGlmIChmbGFnSHVmZm1hbiA+IDIgfHwgKGZpbGVWZXJzaW9uIDwgNCAmJiBmbGFnSHVmZm1hbiA+IDEpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgSHVmZm1hbiBmbGFnICIgKyBmbGFnSHVmZm1hbjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAoZmxhZ0h1ZmZtYW4pIHsvLzEgLSBkZWx0YSBIdWZmbWFuLCAyIC0gSHVmZm1hbgogICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coIkh1ZmZtYW4iKTsKICAgICAgICAgICAgICAgICAgICBMZXJjMkhlbHBlcnMucmVhZEh1ZmZtYW4oaW5wdXQsIGRhdGEsIE91dFBpeGVsVHlwZUFycmF5KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJUaWxlcyIpOwogICAgICAgICAgICAgICAgICAgIExlcmMySGVscGVycy5yZWFkVGlsZXMoaW5wdXQsIGRhdGEsIE91dFBpeGVsVHlwZUFycmF5KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7IC8vbGVyYzIueCBub24tOCBiaXQgZGF0YQogICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJUaWxlcyIpOwogICAgICAgICAgICAgICAgICBMZXJjMkhlbHBlcnMucmVhZFRpbGVzKGlucHV0LCBkYXRhLCBPdXRQaXhlbFR5cGVBcnJheSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CgogICAgICAgICAgZGF0YS5lb2ZPZmZzZXQgPSBkYXRhLnB0cjsKICAgICAgICAgIHZhciBkaWZmOwogICAgICAgICAgaWYgKG9wdGlvbnMuaW5wdXRPZmZzZXQpIHsKICAgICAgICAgICAgZGlmZiA9IGRhdGEuaGVhZGVySW5mby5ibG9iU2l6ZSArIG9wdGlvbnMuaW5wdXRPZmZzZXQgLSBkYXRhLnB0cjsKICAgICAgICAgICAgaWYgKE1hdGguYWJzKGRpZmYpID49IDEpIHsKICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoImluY29ycmVjdCBlb2Y6IGRhdGFwdHIgIiArIGRhdGEucHRyICsgIiBvZmZzZXQgIiArIG9wdGlvbnMuaW5wdXRPZmZzZXQgKyAiIGJsb2JzaXplICIgKyBkYXRhLmhlYWRlckluZm8uYmxvYlNpemUgKyAiIGRpZmY6ICIgKyBkaWZmKTsKICAgICAgICAgICAgICBkYXRhLmVvZk9mZnNldCA9IG9wdGlvbnMuaW5wdXRPZmZzZXQgKyBkYXRhLmhlYWRlckluZm8uYmxvYlNpemU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICBkaWZmID0gZGF0YS5oZWFkZXJJbmZvLmJsb2JTaXplIC0gZGF0YS5wdHI7CiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkaWZmKSA+PSAxKSB7CiAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKCJpbmNvcnJlY3QgZmlyc3QgYmFuZCBlb2Y6IGRhdGFwdHIgIiArIGRhdGEucHRyICsgIiBibG9ic2l6ZSAiICsgZGF0YS5oZWFkZXJJbmZvLmJsb2JTaXplICsgIiBkaWZmOiAiICsgZGlmZik7CiAgICAgICAgICAgICAgZGF0YS5lb2ZPZmZzZXQgPSBkYXRhLmhlYWRlckluZm8uYmxvYlNpemU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgcmVzdWx0ID0gewogICAgICAgICAgICB3aWR0aDogaGVhZGVySW5mby53aWR0aCwKICAgICAgICAgICAgaGVpZ2h0OiBoZWFkZXJJbmZvLmhlaWdodCwKICAgICAgICAgICAgcGl4ZWxEYXRhOiBkYXRhLnBpeGVscy5yZXN1bHRQaXhlbHMsCiAgICAgICAgICAgIG1pblZhbHVlOiBoZWFkZXJJbmZvLnpNaW4sCiAgICAgICAgICAgIG1heFZhbHVlOiBoZWFkZXJJbmZvLnpNYXgsCiAgICAgICAgICAgIHZhbGlkUGl4ZWxDb3VudDogaGVhZGVySW5mby5udW1WYWxpZFBpeGVsLAogICAgICAgICAgICBkaW1Db3VudDogaGVhZGVySW5mby5udW1EaW1zLAogICAgICAgICAgICBkaW1TdGF0czogewogICAgICAgICAgICAgIG1pblZhbHVlczogaGVhZGVySW5mby5taW5WYWx1ZXMsCiAgICAgICAgICAgICAgbWF4VmFsdWVzOiBoZWFkZXJJbmZvLm1heFZhbHVlcwogICAgICAgICAgICB9LAogICAgICAgICAgICBtYXNrRGF0YTogZGF0YS5waXhlbHMucmVzdWx0TWFzawogICAgICAgICAgICAvL25vRGF0YVZhbHVlOiBub0RhdGFWYWx1ZQogICAgICAgICAgfTsKCiAgICAgICAgICAvL3dlIHNob3VsZCByZW1vdmUgdGhpcyBpZiB0aGVyZSdzIG5vIGV4aXN0aW5nIGNsaWVudAogICAgICAgICAgLy9vcHRpb25hbCBub0RhdGFWYWx1ZSBwcm9jZXNzaW5nLCBpdCdzIHVzZXIncyByZXNwb25zaWJsaXR5CiAgICAgICAgICBpZiAoZGF0YS5waXhlbHMucmVzdWx0TWFzayAmJiBMZXJjMkhlbHBlcnMuaXNWYWxpZFBpeGVsVmFsdWUoaGVhZGVySW5mby5pbWFnZVR5cGUsIG5vRGF0YVZhbHVlKSkgewogICAgICAgICAgICB2YXIgbWFzayA9IGRhdGEucGl4ZWxzLnJlc3VsdE1hc2s7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1QaXhlbHM7IGkrKykgewogICAgICAgICAgICAgIGlmICghbWFza1tpXSkgewogICAgICAgICAgICAgICAgcmVzdWx0LnBpeGVsRGF0YVtpXSA9IG5vRGF0YVZhbHVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXN1bHQubm9EYXRhVmFsdWUgPSBub0RhdGFWYWx1ZTsKICAgICAgICAgIH0KICAgICAgICAgIGRhdGEubm9EYXRhVmFsdWUgPSBub0RhdGFWYWx1ZTsKICAgICAgICAgIGlmIChvcHRpb25zLnJldHVybkZpbGVJbmZvKSB7CiAgICAgICAgICAgIHJlc3VsdC5maWxlSW5mbyA9IExlcmMySGVscGVycy5mb3JtYXRGaWxlSW5mbyhkYXRhKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfSwKCiAgICAgICAgZ2V0QmFuZENvdW50OiBmdW5jdGlvbigvKmJ5dGUgYXJyYXkqLyBpbnB1dCkgewogICAgICAgICAgdmFyIGNvdW50ID0gMDsKICAgICAgICAgIHZhciBpID0gMDsKICAgICAgICAgIHZhciB0ZW1wID0ge307CiAgICAgICAgICB0ZW1wLnB0ciA9IDA7CiAgICAgICAgICB0ZW1wLnBpeGVscyA9IHt9OwogICAgICAgICAgd2hpbGUgKGkgPCBpbnB1dC5ieXRlTGVuZ3RoIC0gNTgpIHsKICAgICAgICAgICAgTGVyYzJIZWxwZXJzLnJlYWRIZWFkZXJJbmZvKGlucHV0LCB0ZW1wKTsKICAgICAgICAgICAgaSArPSB0ZW1wLmhlYWRlckluZm8uYmxvYlNpemU7CiAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgIHRlbXAucHRyID0gaTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBjb3VudDsKICAgICAgICB9CiAgICAgIH07CgogICAgICByZXR1cm4gTGVyYzJEZWNvZGU7CiAgICB9KSgpOwoKICAgIHZhciBpc1BsYXRmb3JtTGl0dGxlRW5kaWFuID0gKGZ1bmN0aW9uKCkgewogICAgICB2YXIgYSA9IG5ldyBBcnJheUJ1ZmZlcig0KTsKICAgICAgdmFyIGIgPSBuZXcgVWludDhBcnJheShhKTsKICAgICAgdmFyIGMgPSBuZXcgVWludDMyQXJyYXkoYSk7CiAgICAgIGNbMF0gPSAxOwogICAgICByZXR1cm4gYlswXSA9PT0gMTsKICAgIH0pKCk7CgogICAgdmFyIExlcmMgPSB7CiAgICAgIC8qKioqKioqKioqKip3cmFwcGVyKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAgICAgLyoqCiAgICAgICAqIEEgd3JhcHBlciBmb3IgZGVjb2RpbmcgYm90aCBMRVJDMSBhbmQgTEVSQzIgYnl0ZSBzdHJlYW1zIGNhcGFibGUgb2YgaGFuZGxpbmcgbXVsdGliYW5kIHBpeGVsIGJsb2NrcyBmb3IgdmFyaW91cyBwaXhlbCB0eXBlcy4KICAgICAgICoKICAgICAgICogQGFsaWFzIG1vZHVsZTpMZXJjCiAgICAgICAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGlucHV0IFRoZSBMRVJDIGlucHV0IGJ5dGUgc3RyZWFtCiAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gVGhlIGRlY29kaW5nIG9wdGlvbnMgYmVsb3cgYXJlIG9wdGlvbmFsLgogICAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuaW5wdXRPZmZzZXRdIFRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBpbiB0aGUgaW5wdXQgYnl0ZSBzdHJlYW0uIEEgdmFsaWQgTGVyYyBmaWxlIGlzIGV4cGVjdGVkIGF0IHRoYXQgcG9zaXRpb24uCiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5waXhlbFR5cGVdIChMRVJDMSBvbmx5KSBEZWZhdWx0IHZhbHVlIGlzIEYzMi4gVmFsaWQgcGl4ZWwgdHlwZXMgZm9yIGlucHV0IGFyZSBVOC9TOC9TMTYvVTE2L1MzMi9VMzIvRjMyLgogICAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubm9EYXRhVmFsdWVdIChMRVJDMSBvbmx5KS4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRoZSByZXR1cm5lZCBtYXNrIGluc3RlYWQgb2Ygc2V0dGluZyB0aGlzIHZhbHVlLgogICAgICAgKiBAcmV0dXJucyB7e3dpZHRoLCBoZWlnaHQsIHBpeGVscywgcGl4ZWxUeXBlLCBtYXNrLCBzdGF0aXN0aWNzfX0KICAgICAgICAgKiBAcHJvcGVydHkge251bWJlcn0gd2lkdGggV2lkdGggb2YgZGVjb2RlZCBpbWFnZS4KICAgICAgICAgKiBAcHJvcGVydHkge251bWJlcn0gaGVpZ2h0IEhlaWdodCBvZiBkZWNvZGVkIGltYWdlLgogICAgICAgICAqIEBwcm9wZXJ0eSB7YXJyYXl9IHBpeGVscyBbYmFuZDEsIGJhbmQyLCDigKZdIEVhY2ggYmFuZCBpcyBhIHR5cGVkIGFycmF5IG9mIHdpZHRoKmhlaWdodC4KICAgICAgICAgKiBAcHJvcGVydHkge3N0cmluZ30gcGl4ZWxUeXBlIFRoZSB0eXBlIG9mIHBpeGVscyByZXByZXNlbnRlZCBpbiB0aGUgb3V0cHV0LgogICAgICAgICAqIEBwcm9wZXJ0eSB7bWFza30gbWFzayBUeXBlZCBhcnJheSB3aXRoIGEgc2l6ZSBvZiB3aWR0aCpoZWlnaHQsIG9yIG51bGwgaWYgYWxsIHBpeGVscyBhcmUgdmFsaWQuCiAgICAgICAgICogQHByb3BlcnR5IHthcnJheX0gc3RhdGlzdGljcyBbc3RhdGlzdGljc19iYW5kMSwgc3RhdGlzdGljc19iYW5kMiwg4oCmXSBFYWNoIGVsZW1lbnQgaXMgYSBzdGF0aXN0aWNzIG9iamVjdCByZXByZXNlbnRpbmcgbWluIGFuZCBtYXggdmFsdWVzCiAgICAgICoqLwogICAgICBkZWNvZGU6IGZ1bmN0aW9uKGVuY29kZWREYXRhLCBvcHRpb25zKSB7CiAgICAgICAgaWYgKCFpc1BsYXRmb3JtTGl0dGxlRW5kaWFuKSB7CiAgICAgICAgICB0aHJvdyAiQmlnIGVuZGlhbiBzeXN0ZW0gaXMgbm90IHN1cHBvcnRlZC4iOwogICAgICAgIH0KICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKICAgICAgICB2YXIgaW5wdXRPZmZzZXQgPSBvcHRpb25zLmlucHV0T2Zmc2V0IHx8IDA7CiAgICAgICAgdmFyIGZpbGVJZFZpZXcgPSBuZXcgVWludDhBcnJheShlbmNvZGVkRGF0YSwgaW5wdXRPZmZzZXQsIDEwKTsKICAgICAgICB2YXIgZmlsZUlkZW50aWZpZXJTdHJpbmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGZpbGVJZFZpZXcpOwogICAgICAgIHZhciBsZXJjLCBtYWpvclZlcnNpb247CiAgICAgICAgaWYgKGZpbGVJZGVudGlmaWVyU3RyaW5nLnRyaW0oKSA9PT0gIkNudFpJbWFnZSIpIHsKICAgICAgICAgIGxlcmMgPSBMZXJjRGVjb2RlOwogICAgICAgICAgbWFqb3JWZXJzaW9uID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoZmlsZUlkZW50aWZpZXJTdHJpbmcuc3Vic3RyaW5nKDAsIDUpID09PSAiTGVyYzIiKSB7CiAgICAgICAgICBsZXJjID0gTGVyYzJEZWNvZGU7CiAgICAgICAgICBtYWpvclZlcnNpb24gPSAyOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgIHRocm93ICJVbmV4cGVjdGVkIGZpbGUgaWRlbnRpZmllciBzdHJpbmc6ICIgKyBmaWxlSWRlbnRpZmllclN0cmluZzsKICAgICAgICB9CgogICAgICAgIHZhciBpUGxhbmUgPSAwLCBlb2YgPSBlbmNvZGVkRGF0YS5ieXRlTGVuZ3RoIC0gMTAsIGVuY29kZWRNYXNrRGF0YSwgYmFuZE1hc2tzID0gW10sIGJhbmRNYXNrLCBtYXNrRGF0YTsKICAgICAgICB2YXIgZGVjb2RlZFBpeGVsQmxvY2sgPSB7CiAgICAgICAgICB3aWR0aDogMCwKICAgICAgICAgIGhlaWdodDogMCwKICAgICAgICAgIHBpeGVsczogW10sCiAgICAgICAgICBwaXhlbFR5cGU6IG9wdGlvbnMucGl4ZWxUeXBlLAogICAgICAgICAgbWFzazogbnVsbCwKICAgICAgICAgIHN0YXRpc3RpY3M6IFtdCiAgICAgICAgfTsKCiAgICAgICAgd2hpbGUgKGlucHV0T2Zmc2V0IDwgZW9mKSB7CiAgICAgICAgICB2YXIgcmVzdWx0ID0gbGVyYy5kZWNvZGUoZW5jb2RlZERhdGEsIHsKICAgICAgICAgICAgaW5wdXRPZmZzZXQ6IGlucHV0T2Zmc2V0LC8vZm9yIGJvdGggbGVyYzEgYW5kIGxlcmMyCiAgICAgICAgICAgIGVuY29kZWRNYXNrRGF0YTogZW5jb2RlZE1hc2tEYXRhLC8vbGVyYzEgb25seQogICAgICAgICAgICBtYXNrRGF0YTogbWFza0RhdGEsLy9sZXJjMiBvbmx5CiAgICAgICAgICAgIHJldHVybk1hc2s6IGlQbGFuZSA9PT0gMCA/IHRydWUgOiBmYWxzZSwvL2xlcmMxIG9ubHkKICAgICAgICAgICAgcmV0dXJuRW5jb2RlZE1hc2s6IGlQbGFuZSA9PT0gMCA/IHRydWUgOiBmYWxzZSwvL2xlcmMxIG9ubHkKICAgICAgICAgICAgcmV0dXJuRmlsZUluZm86IHRydWUsLy9mb3IgYm90aCBsZXJjMSBhbmQgbGVyYzIKICAgICAgICAgICAgcGl4ZWxUeXBlOiBvcHRpb25zLnBpeGVsVHlwZSB8fCBudWxsLC8vbGVyYzEgb25seQogICAgICAgICAgICBub0RhdGFWYWx1ZTogb3B0aW9ucy5ub0RhdGFWYWx1ZSB8fCBudWxsLy9sZXJjMSBvbmx5CiAgICAgICAgICB9KTsKCiAgICAgICAgICBpbnB1dE9mZnNldCA9IHJlc3VsdC5maWxlSW5mby5lb2ZPZmZzZXQ7CiAgICAgICAgICBpZiAoaVBsYW5lID09PSAwKSB7CiAgICAgICAgICAgIGVuY29kZWRNYXNrRGF0YSA9IHJlc3VsdC5lbmNvZGVkTWFza0RhdGE7Ly9sZXJjMQogICAgICAgICAgICBtYXNrRGF0YSA9IHJlc3VsdC5tYXNrRGF0YTsvL2xlcmMyCiAgICAgICAgICAgIGRlY29kZWRQaXhlbEJsb2NrLndpZHRoID0gcmVzdWx0LndpZHRoOwogICAgICAgICAgICBkZWNvZGVkUGl4ZWxCbG9jay5oZWlnaHQgPSByZXN1bHQuaGVpZ2h0OwogICAgICAgICAgICBkZWNvZGVkUGl4ZWxCbG9jay5kaW1Db3VudCA9IHJlc3VsdC5kaW1Db3VudCB8fCAxOwogICAgICAgICAgICAvL2RlY29kZWRQaXhlbEJsb2NrLmRpbVN0YXRzID0gZGVjb2RlZFBpeGVsQmxvY2suZGltU3RhdHM7CiAgICAgICAgICAgIGRlY29kZWRQaXhlbEJsb2NrLnBpeGVsVHlwZSA9IHJlc3VsdC5waXhlbFR5cGUgfHwgcmVzdWx0LmZpbGVJbmZvLnBpeGVsVHlwZTsKICAgICAgICAgICAgZGVjb2RlZFBpeGVsQmxvY2subWFzayA9IHJlc3VsdC5tYXNrRGF0YTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChtYWpvclZlcnNpb24gPjEgJiYgcmVzdWx0LmZpbGVJbmZvLm1hc2sgJiYgcmVzdWx0LmZpbGVJbmZvLm1hc2subnVtQnl0ZXMgPiAwKSB7CiAgICAgICAgICAgIGJhbmRNYXNrcy5wdXNoKHJlc3VsdC5tYXNrRGF0YSk7CiAgICAgICAgICB9CgogICAgICAgICAgaVBsYW5lKys7CiAgICAgICAgICBkZWNvZGVkUGl4ZWxCbG9jay5waXhlbHMucHVzaChyZXN1bHQucGl4ZWxEYXRhKTsKICAgICAgICAgIGRlY29kZWRQaXhlbEJsb2NrLnN0YXRpc3RpY3MucHVzaCh7CiAgICAgICAgICAgIG1pblZhbHVlOiByZXN1bHQubWluVmFsdWUsCiAgICAgICAgICAgIG1heFZhbHVlOiByZXN1bHQubWF4VmFsdWUsCiAgICAgICAgICAgIG5vRGF0YVZhbHVlOiByZXN1bHQubm9EYXRhVmFsdWUsCiAgICAgICAgICAgIGRpbVN0YXRzOiByZXN1bHQuZGltU3RhdHMKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICB2YXIgaSwgaiwgbnVtUGl4ZWxzOwogICAgICAgIGlmIChtYWpvclZlcnNpb24gPiAxICYmIGJhbmRNYXNrcy5sZW5ndGggPiAxKSB7CiAgICAgICAgICBudW1QaXhlbHMgPSBkZWNvZGVkUGl4ZWxCbG9jay53aWR0aCAqIGRlY29kZWRQaXhlbEJsb2NrLmhlaWdodDsKICAgICAgICAgIGRlY29kZWRQaXhlbEJsb2NrLmJhbmRNYXNrcyA9IGJhbmRNYXNrczsKICAgICAgICAgIG1hc2tEYXRhID0gbmV3IFVpbnQ4QXJyYXkobnVtUGl4ZWxzKTsKICAgICAgICAgIG1hc2tEYXRhLnNldChiYW5kTWFza3NbMF0pOwogICAgICAgICAgZm9yIChpID0gMTsgaSA8IGJhbmRNYXNrcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBiYW5kTWFzayA9IGJhbmRNYXNrc1tpXTsKICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IG51bVBpeGVsczsgaisrKSB7CiAgICAgICAgICAgICAgbWFza0RhdGFbal0gPSBtYXNrRGF0YVtqXSAmIGJhbmRNYXNrW2pdOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBkZWNvZGVkUGl4ZWxCbG9jay5tYXNrRGF0YSA9IG1hc2tEYXRhOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGRlY29kZWRQaXhlbEJsb2NrOwogICAgICB9CiAgICB9OwoKICAgIGlmIChtb2R1bGUuZXhwb3J0cykgey8qIGpzaGludCBpZ25vcmU6bGluZSAqLwogICAgICAvL2NvbW1vbkpTIG1vZHVsZSAxLjAvMS4xLzEuMS4xIHN5c3RlbXMsIHN1Y2ggYXMgbm9kZUpTCiAgICAgIC8vaHR0cDovL3dpa2kuY29tbW9uanMub3JnL3dpa2kvTW9kdWxlcwogICAgICBtb2R1bGUuZXhwb3J0cyA9IExlcmM7LyoganNoaW50IGlnbm9yZTpsaW5lICovCiAgICB9CiAgICBlbHNlIHsKICAgICAgLy9hc3NpZ24gdG8gdGhpcywgbW9zdCBsaWtlbHkgd2luZG93CiAgICAgIHRoaXMuTGVyYyA9IExlcmM7CiAgICB9CgogIH0pKCk7CiAgfShMZXJjRGVjb2RlKSk7CgogIHZhciBMZXJjID0gTGVyY0RlY29kZS5leHBvcnRzOwoKICBjb25zdCBmaWVsZFRhZ05hbWVzID0gewogICAgLy8gVElGRiBCYXNlbGluZQogICAgMHgwMTNCOiAnQXJ0aXN0JywKICAgIDB4MDEwMjogJ0JpdHNQZXJTYW1wbGUnLAogICAgMHgwMTA5OiAnQ2VsbExlbmd0aCcsCiAgICAweDAxMDg6ICdDZWxsV2lkdGgnLAogICAgMHgwMTQwOiAnQ29sb3JNYXAnLAogICAgMHgwMTAzOiAnQ29tcHJlc3Npb24nLAogICAgMHg4Mjk4OiAnQ29weXJpZ2h0JywKICAgIDB4MDEzMjogJ0RhdGVUaW1lJywKICAgIDB4MDE1MjogJ0V4dHJhU2FtcGxlcycsCiAgICAweDAxMEE6ICdGaWxsT3JkZXInLAogICAgMHgwMTIxOiAnRnJlZUJ5dGVDb3VudHMnLAogICAgMHgwMTIwOiAnRnJlZU9mZnNldHMnLAogICAgMHgwMTIzOiAnR3JheVJlc3BvbnNlQ3VydmUnLAogICAgMHgwMTIyOiAnR3JheVJlc3BvbnNlVW5pdCcsCiAgICAweDAxM0M6ICdIb3N0Q29tcHV0ZXInLAogICAgMHgwMTBFOiAnSW1hZ2VEZXNjcmlwdGlvbicsCiAgICAweDAxMDE6ICdJbWFnZUxlbmd0aCcsCiAgICAweDAxMDA6ICdJbWFnZVdpZHRoJywKICAgIDB4MDEwRjogJ01ha2UnLAogICAgMHgwMTE5OiAnTWF4U2FtcGxlVmFsdWUnLAogICAgMHgwMTE4OiAnTWluU2FtcGxlVmFsdWUnLAogICAgMHgwMTEwOiAnTW9kZWwnLAogICAgMHgwMEZFOiAnTmV3U3ViZmlsZVR5cGUnLAogICAgMHgwMTEyOiAnT3JpZW50YXRpb24nLAogICAgMHgwMTA2OiAnUGhvdG9tZXRyaWNJbnRlcnByZXRhdGlvbicsCiAgICAweDAxMUM6ICdQbGFuYXJDb25maWd1cmF0aW9uJywKICAgIDB4MDEyODogJ1Jlc29sdXRpb25Vbml0JywKICAgIDB4MDExNjogJ1Jvd3NQZXJTdHJpcCcsCiAgICAweDAxMTU6ICdTYW1wbGVzUGVyUGl4ZWwnLAogICAgMHgwMTMxOiAnU29mdHdhcmUnLAogICAgMHgwMTE3OiAnU3RyaXBCeXRlQ291bnRzJywKICAgIDB4MDExMTogJ1N0cmlwT2Zmc2V0cycsCiAgICAweDAwRkY6ICdTdWJmaWxlVHlwZScsCiAgICAweDAxMDc6ICdUaHJlc2hob2xkaW5nJywKICAgIDB4MDExQTogJ1hSZXNvbHV0aW9uJywKICAgIDB4MDExQjogJ1lSZXNvbHV0aW9uJywKCiAgICAvLyBUSUZGIEV4dGVuZGVkCiAgICAweDAxNDY6ICdCYWRGYXhMaW5lcycsCiAgICAweDAxNDc6ICdDbGVhbkZheERhdGEnLAogICAgMHgwMTU3OiAnQ2xpcFBhdGgnLAogICAgMHgwMTQ4OiAnQ29uc2VjdXRpdmVCYWRGYXhMaW5lcycsCiAgICAweDAxQjE6ICdEZWNvZGUnLAogICAgMHgwMUIyOiAnRGVmYXVsdEltYWdlQ29sb3InLAogICAgMHgwMTBEOiAnRG9jdW1lbnROYW1lJywKICAgIDB4MDE1MDogJ0RvdFJhbmdlJywKICAgIDB4MDE0MTogJ0hhbGZ0b25lSGludHMnLAogICAgMHgwMTVBOiAnSW5kZXhlZCcsCiAgICAweDAxNUI6ICdKUEVHVGFibGVzJywKICAgIDB4MDExRDogJ1BhZ2VOYW1lJywKICAgIDB4MDEyOTogJ1BhZ2VOdW1iZXInLAogICAgMHgwMTNEOiAnUHJlZGljdG9yJywKICAgIDB4MDEzRjogJ1ByaW1hcnlDaHJvbWF0aWNpdGllcycsCiAgICAweDAyMTQ6ICdSZWZlcmVuY2VCbGFja1doaXRlJywKICAgIDB4MDE1MzogJ1NhbXBsZUZvcm1hdCcsCiAgICAweDAxNTQ6ICdTTWluU2FtcGxlVmFsdWUnLAogICAgMHgwMTU1OiAnU01heFNhbXBsZVZhbHVlJywKICAgIDB4MDIyRjogJ1N0cmlwUm93Q291bnRzJywKICAgIDB4MDE0QTogJ1N1YklGRHMnLAogICAgMHgwMTI0OiAnVDRPcHRpb25zJywKICAgIDB4MDEyNTogJ1Q2T3B0aW9ucycsCiAgICAweDAxNDU6ICdUaWxlQnl0ZUNvdW50cycsCiAgICAweDAxNDM6ICdUaWxlTGVuZ3RoJywKICAgIDB4MDE0NDogJ1RpbGVPZmZzZXRzJywKICAgIDB4MDE0MjogJ1RpbGVXaWR0aCcsCiAgICAweDAxMkQ6ICdUcmFuc2ZlckZ1bmN0aW9uJywKICAgIDB4MDEzRTogJ1doaXRlUG9pbnQnLAogICAgMHgwMTU4OiAnWENsaXBQYXRoVW5pdHMnLAogICAgMHgwMTFFOiAnWFBvc2l0aW9uJywKICAgIDB4MDIxMTogJ1lDYkNyQ29lZmZpY2llbnRzJywKICAgIDB4MDIxMzogJ1lDYkNyUG9zaXRpb25pbmcnLAogICAgMHgwMjEyOiAnWUNiQ3JTdWJTYW1wbGluZycsCiAgICAweDAxNTk6ICdZQ2xpcFBhdGhVbml0cycsCiAgICAweDAxMUY6ICdZUG9zaXRpb24nLAoKICAgIC8vIEVYSUYKICAgIDB4OTIwMjogJ0FwZXJ0dXJlVmFsdWUnLAogICAgMHhBMDAxOiAnQ29sb3JTcGFjZScsCiAgICAweDkwMDQ6ICdEYXRlVGltZURpZ2l0aXplZCcsCiAgICAweDkwMDM6ICdEYXRlVGltZU9yaWdpbmFsJywKICAgIDB4ODc2OTogJ0V4aWYgSUZEJywKICAgIDB4OTAwMDogJ0V4aWZWZXJzaW9uJywKICAgIDB4ODI5QTogJ0V4cG9zdXJlVGltZScsCiAgICAweEEzMDA6ICdGaWxlU291cmNlJywKICAgIDB4OTIwOTogJ0ZsYXNoJywKICAgIDB4QTAwMDogJ0ZsYXNocGl4VmVyc2lvbicsCiAgICAweDgyOUQ6ICdGTnVtYmVyJywKICAgIDB4QTQyMDogJ0ltYWdlVW5pcXVlSUQnLAogICAgMHg5MjA4OiAnTGlnaHRTb3VyY2UnLAogICAgMHg5MjdDOiAnTWFrZXJOb3RlJywKICAgIDB4OTIwMTogJ1NodXR0ZXJTcGVlZFZhbHVlJywKICAgIDB4OTI4NjogJ1VzZXJDb21tZW50JywKCiAgICAvLyBJUFRDCiAgICAweDgzQkI6ICdJUFRDJywKCiAgICAvLyBJQ0MKICAgIDB4ODc3MzogJ0lDQyBQcm9maWxlJywKCiAgICAvLyBYTVAKICAgIDB4MDJCQzogJ1hNUCcsCgogICAgLy8gR0RBTAogICAgMHhBNDgwOiAnR0RBTF9NRVRBREFUQScsCiAgICAweEE0ODE6ICdHREFMX05PREFUQScsCgogICAgLy8gUGhvdG9zaG9wCiAgICAweDg2NDk6ICdQaG90b3Nob3AnLAoKICAgIC8vIEdlb1RpZmYKICAgIDB4ODMwRTogJ01vZGVsUGl4ZWxTY2FsZScsCiAgICAweDg0ODI6ICdNb2RlbFRpZXBvaW50JywKICAgIDB4ODVEODogJ01vZGVsVHJhbnNmb3JtYXRpb24nLAogICAgMHg4N0FGOiAnR2VvS2V5RGlyZWN0b3J5JywKICAgIDB4ODdCMDogJ0dlb0RvdWJsZVBhcmFtcycsCiAgICAweDg3QjE6ICdHZW9Bc2NpaVBhcmFtcycsCgogICAgLy8gTEVSQwogICAgMHhDNUYyOiAnTGVyY1BhcmFtZXRlcnMnLAogIH07CgogIGNvbnN0IGZpZWxkVGFncyA9IHt9OwogIGZvciAoY29uc3Qga2V5IGluIGZpZWxkVGFnTmFtZXMpIHsKICAgIGlmIChmaWVsZFRhZ05hbWVzLmhhc093blByb3BlcnR5KGtleSkpIHsKICAgICAgZmllbGRUYWdzW2ZpZWxkVGFnTmFtZXNba2V5XV0gPSBwYXJzZUludChrZXksIDEwKTsKICAgIH0KICB9CgogIFsKICAgIGZpZWxkVGFncy5CaXRzUGVyU2FtcGxlLAogICAgZmllbGRUYWdzLkV4dHJhU2FtcGxlcywKICAgIGZpZWxkVGFncy5TYW1wbGVGb3JtYXQsCiAgICBmaWVsZFRhZ3MuU3RyaXBCeXRlQ291bnRzLAogICAgZmllbGRUYWdzLlN0cmlwT2Zmc2V0cywKICAgIGZpZWxkVGFncy5TdHJpcFJvd0NvdW50cywKICAgIGZpZWxkVGFncy5UaWxlQnl0ZUNvdW50cywKICAgIGZpZWxkVGFncy5UaWxlT2Zmc2V0cywKICAgIGZpZWxkVGFncy5TdWJJRkRzLAogIF07CgogIGNvbnN0IGZpZWxkVHlwZU5hbWVzID0gewogICAgMHgwMDAxOiAnQllURScsCiAgICAweDAwMDI6ICdBU0NJSScsCiAgICAweDAwMDM6ICdTSE9SVCcsCiAgICAweDAwMDQ6ICdMT05HJywKICAgIDB4MDAwNTogJ1JBVElPTkFMJywKICAgIDB4MDAwNjogJ1NCWVRFJywKICAgIDB4MDAwNzogJ1VOREVGSU5FRCcsCiAgICAweDAwMDg6ICdTU0hPUlQnLAogICAgMHgwMDA5OiAnU0xPTkcnLAogICAgMHgwMDBBOiAnU1JBVElPTkFMJywKICAgIDB4MDAwQjogJ0ZMT0FUJywKICAgIDB4MDAwQzogJ0RPVUJMRScsCiAgICAvLyBJRkQgb2Zmc2V0LCBzdWdnZXN0ZWQgYnkgaHR0cHM6Ly9vd2wucGh5LnF1ZWVuc3UuY2EvfnBoaWwvZXhpZnRvb2wvc3RhbmRhcmRzLmh0bWwKICAgIDB4MDAwRDogJ0lGRCcsCiAgICAvLyBpbnRyb2R1Y2VkIGJ5IEJpZ1RJRkYKICAgIDB4MDAxMDogJ0xPTkc4JywKICAgIDB4MDAxMTogJ1NMT05HOCcsCiAgICAweDAwMTI6ICdJRkQ4JywKICB9OwoKICBjb25zdCBmaWVsZFR5cGVzID0ge307CiAgZm9yIChjb25zdCBrZXkgaW4gZmllbGRUeXBlTmFtZXMpIHsKICAgIGlmIChmaWVsZFR5cGVOYW1lcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7CiAgICAgIGZpZWxkVHlwZXNbZmllbGRUeXBlTmFtZXNba2V5XV0gPSBwYXJzZUludChrZXksIDEwKTsKICAgIH0KICB9CgogIGNvbnN0IExlcmNQYXJhbWV0ZXJzID0gewogICAgVmVyc2lvbjogMCwKICAgIEFkZENvbXByZXNzaW9uOiAxLAogIH07CgogIGNvbnN0IExlcmNBZGRDb21wcmVzc2lvbiA9IHsKICAgIE5vbmU6IDAsCiAgICBEZWZsYXRlOiAxLAogIH07CgoKICBjb25zdCBnZW9LZXlOYW1lcyA9IHsKICAgIDEwMjQ6ICdHVE1vZGVsVHlwZUdlb0tleScsCiAgICAxMDI1OiAnR1RSYXN0ZXJUeXBlR2VvS2V5JywKICAgIDEwMjY6ICdHVENpdGF0aW9uR2VvS2V5JywKICAgIDIwNDg6ICdHZW9ncmFwaGljVHlwZUdlb0tleScsCiAgICAyMDQ5OiAnR2VvZ0NpdGF0aW9uR2VvS2V5JywKICAgIDIwNTA6ICdHZW9nR2VvZGV0aWNEYXR1bUdlb0tleScsCiAgICAyMDUxOiAnR2VvZ1ByaW1lTWVyaWRpYW5HZW9LZXknLAogICAgMjA1MjogJ0dlb2dMaW5lYXJVbml0c0dlb0tleScsCiAgICAyMDUzOiAnR2VvZ0xpbmVhclVuaXRTaXplR2VvS2V5JywKICAgIDIwNTQ6ICdHZW9nQW5ndWxhclVuaXRzR2VvS2V5JywKICAgIDIwNTU6ICdHZW9nQW5ndWxhclVuaXRTaXplR2VvS2V5JywKICAgIDIwNTY6ICdHZW9nRWxsaXBzb2lkR2VvS2V5JywKICAgIDIwNTc6ICdHZW9nU2VtaU1ham9yQXhpc0dlb0tleScsCiAgICAyMDU4OiAnR2VvZ1NlbWlNaW5vckF4aXNHZW9LZXknLAogICAgMjA1OTogJ0dlb2dJbnZGbGF0dGVuaW5nR2VvS2V5JywKICAgIDIwNjA6ICdHZW9nQXppbXV0aFVuaXRzR2VvS2V5JywKICAgIDIwNjE6ICdHZW9nUHJpbWVNZXJpZGlhbkxvbmdHZW9LZXknLAogICAgMjA2MjogJ0dlb2dUT1dHUzg0R2VvS2V5JywKICAgIDMwNzI6ICdQcm9qZWN0ZWRDU1R5cGVHZW9LZXknLAogICAgMzA3MzogJ1BDU0NpdGF0aW9uR2VvS2V5JywKICAgIDMwNzQ6ICdQcm9qZWN0aW9uR2VvS2V5JywKICAgIDMwNzU6ICdQcm9qQ29vcmRUcmFuc0dlb0tleScsCiAgICAzMDc2OiAnUHJvakxpbmVhclVuaXRzR2VvS2V5JywKICAgIDMwNzc6ICdQcm9qTGluZWFyVW5pdFNpemVHZW9LZXknLAogICAgMzA3ODogJ1Byb2pTdGRQYXJhbGxlbDFHZW9LZXknLAogICAgMzA3OTogJ1Byb2pTdGRQYXJhbGxlbDJHZW9LZXknLAogICAgMzA4MDogJ1Byb2pOYXRPcmlnaW5Mb25nR2VvS2V5JywKICAgIDMwODE6ICdQcm9qTmF0T3JpZ2luTGF0R2VvS2V5JywKICAgIDMwODI6ICdQcm9qRmFsc2VFYXN0aW5nR2VvS2V5JywKICAgIDMwODM6ICdQcm9qRmFsc2VOb3J0aGluZ0dlb0tleScsCiAgICAzMDg0OiAnUHJvakZhbHNlT3JpZ2luTG9uZ0dlb0tleScsCiAgICAzMDg1OiAnUHJvakZhbHNlT3JpZ2luTGF0R2VvS2V5JywKICAgIDMwODY6ICdQcm9qRmFsc2VPcmlnaW5FYXN0aW5nR2VvS2V5JywKICAgIDMwODc6ICdQcm9qRmFsc2VPcmlnaW5Ob3J0aGluZ0dlb0tleScsCiAgICAzMDg4OiAnUHJvakNlbnRlckxvbmdHZW9LZXknLAogICAgMzA4OTogJ1Byb2pDZW50ZXJMYXRHZW9LZXknLAogICAgMzA5MDogJ1Byb2pDZW50ZXJFYXN0aW5nR2VvS2V5JywKICAgIDMwOTE6ICdQcm9qQ2VudGVyTm9ydGhpbmdHZW9LZXknLAogICAgMzA5MjogJ1Byb2pTY2FsZUF0TmF0T3JpZ2luR2VvS2V5JywKICAgIDMwOTM6ICdQcm9qU2NhbGVBdENlbnRlckdlb0tleScsCiAgICAzMDk0OiAnUHJvakF6aW11dGhBbmdsZUdlb0tleScsCiAgICAzMDk1OiAnUHJvalN0cmFpZ2h0VmVydFBvbGVMb25nR2VvS2V5JywKICAgIDMwOTY6ICdQcm9qUmVjdGlmaWVkR3JpZEFuZ2xlR2VvS2V5JywKICAgIDQwOTY6ICdWZXJ0aWNhbENTVHlwZUdlb0tleScsCiAgICA0MDk3OiAnVmVydGljYWxDaXRhdGlvbkdlb0tleScsCiAgICA0MDk4OiAnVmVydGljYWxEYXR1bUdlb0tleScsCiAgICA0MDk5OiAnVmVydGljYWxVbml0c0dlb0tleScsCiAgfTsKCiAgY29uc3QgZ2VvS2V5cyA9IHt9OwogIGZvciAoY29uc3Qga2V5IGluIGdlb0tleU5hbWVzKSB7CiAgICBpZiAoZ2VvS2V5TmFtZXMuaGFzT3duUHJvcGVydHkoa2V5KSkgewogICAgICBnZW9LZXlzW2dlb0tleU5hbWVzW2tleV1dID0gcGFyc2VJbnQoa2V5LCAxMCk7CiAgICB9CiAgfQoKICBjbGFzcyBMZXJjRGVjb2RlciBleHRlbmRzIEJhc2VEZWNvZGVyIHsKICAgIGNvbnN0cnVjdG9yKGZpbGVEaXJlY3RvcnkpIHsKICAgICAgc3VwZXIoKTsKCiAgICAgIHRoaXMucGxhbmFyQ29uZmlndXJhdGlvbiA9IHR5cGVvZiBmaWxlRGlyZWN0b3J5LlBsYW5hckNvbmZpZ3VyYXRpb24gIT09ICd1bmRlZmluZWQnID8gZmlsZURpcmVjdG9yeS5QbGFuYXJDb25maWd1cmF0aW9uIDogMTsKICAgICAgdGhpcy5zYW1wbGVzUGVyUGl4ZWwgPSB0eXBlb2YgZmlsZURpcmVjdG9yeS5TYW1wbGVzUGVyUGl4ZWwgIT09ICd1bmRlZmluZWQnID8gZmlsZURpcmVjdG9yeS5TYW1wbGVzUGVyUGl4ZWwgOiAxOwoKICAgICAgdGhpcy5hZGRDb21wcmVzc2lvbiA9IGZpbGVEaXJlY3RvcnkuTGVyY1BhcmFtZXRlcnNbTGVyY1BhcmFtZXRlcnMuQWRkQ29tcHJlc3Npb25dOwogICAgfQoKICAgIGludGVybGVhdmVQaXhlbHMoYmFuZEludGVybGVhdmVkRGF0YSkgewogICAgICBjb25zdCBwaXhlbEludGVybGVhdmVkRGF0YSA9IG5ldyBiYW5kSW50ZXJsZWF2ZWREYXRhLmNvbnN0cnVjdG9yKGJhbmRJbnRlcmxlYXZlZERhdGEubGVuZ3RoKTsKICAgICAgY29uc3QgbGVuZ3RoUGVyU2FtcGxlID0gYmFuZEludGVybGVhdmVkRGF0YS5sZW5ndGggLyB0aGlzLnNhbXBsZXNQZXJQaXhlbDsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGhQZXJTYW1wbGU7IGkrKykgewogICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5zYW1wbGVzUGVyUGl4ZWw7IGorKykgewogICAgICAgICAgcGl4ZWxJbnRlcmxlYXZlZERhdGFbaSAqIHRoaXMuc2FtcGxlc1BlclBpeGVsICsgal0gPSBiYW5kSW50ZXJsZWF2ZWREYXRhW2kgKyBqICogbGVuZ3RoUGVyU2FtcGxlXTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHBpeGVsSW50ZXJsZWF2ZWREYXRhOwogICAgfQoKICAgIGRlY29kZUJsb2NrKGJ1ZmZlcikgewogICAgICBzd2l0Y2ggKHRoaXMuYWRkQ29tcHJlc3Npb24pIHsKICAgICAgICBjYXNlIExlcmNBZGRDb21wcmVzc2lvbi5Ob25lOgogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBMZXJjQWRkQ29tcHJlc3Npb24uRGVmbGF0ZToKICAgICAgICAgIGJ1ZmZlciA9IGluZmxhdGVfMShuZXcgVWludDhBcnJheShidWZmZXIpKS5idWZmZXI7CiAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBMRVJDIGFkZGl0aW9uYWwgY29tcHJlc3Npb24gbWV0aG9kIGlkZW50aWZpZXI6ICR7dGhpcy5hZGRDb21wcmVzc2lvbn1gKTsKICAgICAgfQoKICAgICAgY29uc3QgbGVyY1Jlc3VsdCA9IExlcmMuZGVjb2RlKGJ1ZmZlcik7CiAgICAgIGNvbnN0IGxlcmNEYXRhID0gbGVyY1Jlc3VsdC5waXhlbHNbMF07IC8vIGFsd2F5cyBiYW5kLWludGVybGVhdmVkCiAgICAgIGNvbnN0IGRlY29kZWREYXRhID0gdGhpcy5wbGFuYXJDb25maWd1cmF0aW9uID09PSAxID8gdGhpcy5pbnRlcmxlYXZlUGl4ZWxzKGxlcmNEYXRhKSA6IGxlcmNEYXRhOyAvLyB0cmFuc2Zvcm0gdG8gcGl4ZWwtaW50ZXJsZWF2ZWQgaWYgZXhwZWN0ZWQKICAgICAgcmV0dXJuIGRlY29kZWREYXRhLmJ1ZmZlcjsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGdldERlY29kZXIoZmlsZURpcmVjdG9yeSkgewogICAgc3dpdGNoIChmaWxlRGlyZWN0b3J5LkNvbXByZXNzaW9uKSB7CiAgICAgIGNhc2UgdW5kZWZpbmVkOgogICAgICBjYXNlIDE6IC8vIG5vIGNvbXByZXNzaW9uCiAgICAgICAgcmV0dXJuIG5ldyBSYXdEZWNvZGVyKCk7CiAgICAgIGNhc2UgNTogLy8gTFpXCiAgICAgICAgcmV0dXJuIG5ldyBMWldEZWNvZGVyKGZpbGVEaXJlY3RvcnkpOwogICAgICBjYXNlIDY6IC8vIEpQRUcKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ29sZCBzdHlsZSBKUEVHIGNvbXByZXNzaW9uIGlzIG5vdCBzdXBwb3J0ZWQuJyk7CiAgICAgIGNhc2UgNzogLy8gSlBFRwogICAgICAgIHJldHVybiBuZXcgSnBlZ0RlY29kZXIoZmlsZURpcmVjdG9yeSk7CiAgICAgIGNhc2UgODogLy8gRGVmbGF0ZSBhcyByZWNvZ25pemVkIGJ5IEFkb2JlCiAgICAgIGNhc2UgMzI5NDY6IC8vIERlZmxhdGUgR0RBTCBkZWZhdWx0CiAgICAgICAgcmV0dXJuIG5ldyBEZWZsYXRlRGVjb2RlcigpOwogICAgICBjYXNlIDMyNzczOiAvLyBwYWNrYml0cwogICAgICAgIHJldHVybiBuZXcgUGFja2JpdHNEZWNvZGVyKCk7CiAgICAgIGNhc2UgMzQ4ODc6IC8vIExFUkMKICAgICAgICByZXR1cm4gbmV3IExlcmNEZWNvZGVyKGZpbGVEaXJlY3RvcnkpOwogICAgICBkZWZhdWx0OgogICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QgaWRlbnRpZmllcjogJHtmaWxlRGlyZWN0b3J5LkNvbXByZXNzaW9ufWApOwogICAgfQogIH0KCiAgYXN5bmMgZnVuY3Rpb24gZGVjb2RlKGZpbGVEaXJlY3RvcnksIGJ1ZmZlcikgewogICAgY29uc3QgZGVjb2RlciA9IGdldERlY29kZXIoZmlsZURpcmVjdG9yeSk7CiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWNvZGVyLmRlY29kZShmaWxlRGlyZWN0b3J5LCBidWZmZXIpOwogICAgc2VsZi5wb3N0TWVzc2FnZShyZXN1bHQsIFtyZXN1bHRdKTsKICB9CiAgaWYgKHR5cGVvZiBzZWxmICE9PSAidW5kZWZpbmVkIikgewogICAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CiAgICAgIGNvbnN0IFtuYW1lLCAuLi5hcmdzXSA9IGV2ZW50LmRhdGE7CiAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgIGNhc2UgImRlY29kZSI6CiAgICAgICAgICBkZWNvZGUoYXJnc1swXSwgYXJnc1sxXSk7CiAgICAgICAgICBicmVhazsKICAgICAgfQogICAgfSk7CiAgfQoKfSkoKTsK",Uo="undefined"!==typeof window&&window.Blob&&new Blob([atob(No)],{type:"text/javascript;charset=utf-8"});function _o(){var e=Uo&&(window.URL||window.webkitURL).createObjectURL(Uo);try{return e?new Worker(e):new Worker("data:application/javascript;base64,"+No,{type:"module"})}finally{e&&(window.URL||window.webkitURL).revokeObjectURL(e)}}var Mo=null!==(Ci=null===globalThis||void 0===globalThis||null===(hi=globalThis.navigator)||void 0===hi?void 0:hi.hardwareConcurrency)&&void 0!==Ci?Ci:4,Oo=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Mo;Object(u.a)(this,e),Object(g.a)(this,"workers",void 0),Object(g.a)(this,"idleWorkers",void 0),Object(g.a)(this,"waitQueue",void 0),Object(g.a)(this,"decoder",void 0),this.workers=[],this.idleWorkers=[],this.waitQueue=[],this.decoder=null;for(var A=0;A<t;++A){var n=new _o;this.workers.push(n),this.idleWorkers.push(n)}}return Object(l.a)(e,[{key:"decode",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A){var n,r=this;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.waitForWorker();case 2:return n=e.sent,e.abrupt("return",new Promise((function(e,i){n.onmessage=function(t){r.finishTask(n),e(t.data)},n.onerror=function(e){r.finishTask(n),i(e)},n.postMessage(["decode",t,A],[A])})));case 4:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"waitForWorker",value:function(){var e=Object(a.a)(o.a.mark((function e(){var t,A,n;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t=this.idleWorkers.pop())){e.next=3;break}return e.abrupt("return",t);case 3:return A={},n=new Promise((function(e){A.resolve=e})),this.waitQueue.push(A),e.abrupt("return",n);case 7:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"finishTask",value:function(){var e=Object(a.a)(o.a.mark((function e(t){var A;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:(A=this.waitQueue.pop())?A.resolve(t):this.idleWorkers.push(t);case 2:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"destroy",value:function(){for(var e=0;e<this.workers.length;++e)this.workers[e].terminate()}}]),e}(),Lo={attributeNamePrefix:"",attrNodeName:"attr",parseNodeValue:!0,parseAttributeValue:!0,ignoreAttributes:!1};function To(e){var t=function(e){return di.a.parse(e,Lo)}(e);if(!t.OME)throw Error("Failed to parse OME-XML metadata.");return Ti(t.OME.Image).map((function(e){var t=Ti(e.Pixels.Channel).map((function(e){return"Color"in e.attr?Object(d.a)({},e.attr,{Color:Zi(e.attr.Color)}):Object(d.a)({},e.attr)})),A=e.AquisitionDate,n=void 0===A?"":A,r=e.Description,i=void 0===r?"":r,o=Object(d.a)({},e.attr,{AquisitionDate:n,Description:i,Pixels:Object(d.a)({},e.Pixels.attr,{Channels:t})});return Object(d.a)({},o,{format:function(){var e=o.Pixels,t=["X","Y","Z"].map((function(t){var A=e["PhysicalSize".concat(t)],n=e["PhysicalSize".concat(t,"Unit")];return A&&n?"".concat(A," ").concat(n):"-"})).join(" x ");return{"Acquisition Date":o.AquisitionDate,"Dimensions (XY)":"".concat(e.SizeX," x ").concat(e.SizeY),"Pixels Type":e.Type,"Pixels Size (XYZ)":t,"Z-sections/Timepoints":"".concat(e.SizeZ," x ").concat(e.SizeT),Channels:e.SizeC}}})}))}var Zo=function(){function e(t,A,n,r,i,o,a){Object(u.a)(this,e),Object(g.a)(this,"_indexer",void 0),this.dtype=A,this.tileSize=n,this.shape=r,this.labels=i,this.meta=o,this.pool=a,this._indexer=t}return Object(l.a)(e,[{key:"getRaster",value:function(){var e=Object(a.a)(o.a.mark((function e(t){var A,n,r;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=t.selection,n=t.signal,e.next=3,this._indexer(A);case 3:return r=e.sent,e.abrupt("return",this._readRasters(r,{signal:n}));case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"getTile",value:function(){var e=Object(a.a)(o.a.mark((function e(t){var A,n,r,i,a,s,g,c,u,l,I;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=t.x,n=t.y,r=t.selection,i=t.signal,a=this._getTileExtent(A,n),s=a.height,g=a.width,c=A*this.tileSize,u=n*this.tileSize,l=[c,u,c+g,u+s],e.next=7,this._indexer(r);case 7:return I=e.sent,e.abrupt("return",this._readRasters(I,{window:l,width:g,height:s,signal:i}));case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"_readRasters",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A){var n,r,i,a;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Hi(this.shape),e.next=3,t.readRasters(Object(d.a)({interleave:r},A,{pool:this.pool}));case 3:if(i=e.sent,!(null===A||void 0===A||null===(n=A.signal)||void 0===n?void 0:n.aborted)){e.next=6;break}throw"__vivSignalAborted";case 6:return a=r?i:i[0],e.abrupt("return",{data:a,width:i.width,height:i.height});case 8:case"end":return e.stop()}}),e,this)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"_getTileExtent",value:function(e,t){var A=ji(this),n=A.height,r=A.width,i=this.tileSize,o=this.tileSize,a=Math.floor(r/this.tileSize),s=Math.floor(n/this.tileSize);return e===a&&(o=r%this.tileSize),t===s&&(i=n%this.tileSize),{height:i,width:o}}},{key:"onTileError",value:function(e){console.error(e)}}]),e}();function Ho(e,t){var A=t[0],n=A.Pixels,r=n.SizeT,i=n.SizeC,o=n.SizeZ,a=Jo(A);return function(t,A){var n=a(t),s=A*o*r*i;return e.getImage(n+s)}}function Yo(e,t){var A=Jo(t[0]),n=new Map;return function(){var t=Object(a.a)(o.a.mark((function t(r,i){var a,s,g,c,u,l;return o.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=A(r),t.next=3,e.getImage(a);case 3:if(s=t.sent,0!==i){t.next=6;break}return t.abrupt("return",s);case 6:if(g=s.fileDirectory.SubIFDs){t.next=9;break}throw Error("Indexing Error: OME-TIFF is missing SubIFDs.");case 9:return c="".concat(r.t,"-").concat(r.c,"-").concat(r.z,"-").concat(i),n.has(c)||(u=g[i-1],n.set(c,e.parseFileDirectoryAt(u))),t.next=13,n.get(c);case 13:return l=t.sent,t.abrupt("return",new s.constructor(l.fileDirectory,l.geoKeyDirectory,e.dataView,e.littleEndian,e.cache,e.source));case 15:case"end":return t.stop()}}),t)})));return function(e,A){return t.apply(this,arguments)}}()}function Jo(e){var t=e.Pixels,A=t.SizeC,n=t.SizeZ,r=t.SizeT,i=t.DimensionOrder;switch(i){case"XYZCT":return function(e){var t=e.t,r=e.c,i=e.z;return t*n*A+r*n+i};case"XYZTC":return function(e){var t=e.t,A=e.c,i=e.z;return A*n*r+t*n+i};case"XYCTZ":return function(e){var t=e.t,n=e.c;return e.z*A*r+t*A+n};case"XYCZT":return function(e){var t=e.t,r=e.c,i=e.z;return t*A*n+i*A+r};case"XYTCZ":return function(e){var t=e.t,n=e.c;return e.z*r*A+n*r+t};case"XYTZC":return function(e){var t=e.t,A=e.c,i=e.z;return A*r*n+i*r+t};default:throw new Error("Invalid OME-XML DimensionOrder, got ".concat(i,"."))}}var jo={uint8:"Uint8",uint16:"Uint16",uint32:"Uint32",float:"Float32",double:"Float64",int8:"Int8",int16:"Int16",int32:"Int32"};function Po(e){var t=e.Pixels,A=Yi(t.DimensionOrder),n=Ji(A),r=Array(A.length).fill(0);r[n("t")]=t.SizeT,r[n("c")]=t.SizeC,r[n("z")]=t.SizeZ,t.Interleaved&&(A.push("_c"),r.push(3));var i=function(e){var A=Object(B.a)(r);return A[n("x")]=t.SizeX>>e,A[n("y")]=t.SizeY>>e,A};if(!(t.Type in jo))throw Error("Pixel type ".concat(t.Type," not supported."));var o=jo[t.Type];if(t.PhysicalSizeX&&t.PhysicalSizeY){var a={x:{size:t.PhysicalSizeX,unit:t.PhysicalSizeXUnit},y:{size:t.PhysicalSizeY,unit:t.PhysicalSizeYUnit}};return t.PhysicalSizeZ&&(a.z={size:t.PhysicalSizeZ,unit:t.PhysicalSizeZUnit}),{labels:A,getShape:i,physicalSizes:a,dtype:o}}return{labels:A,getShape:i,dtype:o}}function Vo(e){var t=e.getTileWidth(),A=e.getTileHeight();return Pi(Math.min(t,A))}function Ko(e,t){return Wo.apply(this,arguments)}function Wo(){return(Wo=Object(a.a)(o.a.mark((function e(t,A){var n,r,i,a,s,g,c,u,l,I,C,h,f,d,B,p,E;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.getImage(0);case 2:return n=e.sent,r=n.fileDirectory,i=r.ImageDescription,a=r.SubIFDs,s=r.PhotometricInterpretation,g=To(i),a?(c=a.length+1,u=Yo(t,g)):(c=g.length,u=Ho(t,g)),l=g[0],I=Po(l),C=I.labels,h=I.getShape,f=I.physicalSizes,d=I.dtype,B=Vo(n),p={photometricInterpretation:s,physicalSizes:f},E=Array.from({length:c}).map((function(e,t){var n=h(t);return new Zo((function(e){return u(e,t)}),d,B,n,C,p,A)})),e.abrupt("return",{data:E,metadata:l});case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Xo(e){return qo.apply(this,arguments)}function qo(){return(qo=Object(a.a)(o.a.mark((function e(t){var A,n,r,i,a,s,g=arguments;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=g.length>1&&void 0!==g[1]?g[1]:{},n=A.headers,r=A.offsets,i=A.pool,a=void 0===i||i,"string"!==typeof t){e.next=8;break}return e.next=5,si(t,Object(d.a)({},n,{cacheSize:1/0}));case 5:s=e.sent,e.next=11;break;case 8:return e.next=10,ci(t);case 10:s=e.sent;case 11:return r&&(s=xo(s,r)),ko(s),e.abrupt("return",a?Ko(s,new Oo):Ko(s));case 14:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function zo(e){return $o.apply(this,arguments)}function $o(){return($o=Object(a.a)(o.a.mark((function e(t){var A,n,r,i,a,s,g,c,u,l=arguments;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=l.length>1&&void 0!==l[1]?l[1]:"",e.next=3,Object(Bi.e)(t,A);case 3:return n=e.sent,e.next=6,n.attrs.asObject();case 6:return r=e.sent,i=["0"],a=["t","c","z","y","x"],"multiscales"in r&&(s=r.multiscales[0],g=s.datasets,c=s.axes,i=g.map((function(e){return e.path})),c&&(a=c)),u=i.map((function(e){return n.getItem(e)})),e.next=13,Promise.all(u);case 13:return e.t0=e.sent,e.t1=r,e.t2=a,e.abrupt("return",{data:e.t0,rootAttrs:e.t1,labels:e.t2});case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ea(e){var t=Hi(e.shape),A=e.chunks.slice(t?-3:-2),n=Object(s.a)(A,2),r=n[0],i=n[1];return Pi(Math.min(r,i))}var ta={u1:"Uint8",u2:"Uint16",u4:"Uint32",f4:"Float32",f8:"Float64",i1:"Int8",i2:"Int16",i4:"Int32"},Aa=function(){function e(t,A,n){Object(u.a)(this,e),Object(g.a)(this,"_data",void 0),Object(g.a)(this,"_indexer",void 0),Object(g.a)(this,"_readChunks",void 0),this.labels=A,this.tileSize=n,this._indexer=function(e){var t=e.length,A=Ji(e);return function(e){if(Array.isArray(e))return Object(B.a)(e);for(var n=Array(t).fill(0),r=0,i=Object.entries(e);r<i.length;r++){var o=Object(s.a)(i[r],2),a=o[0],g=o[1];n[A(a)]=g}return n}}(A),this._data=t;var r=t.chunks[this._xIndex],i=t.chunks[this._xIndex-1];this._readChunks=n===r&&n===i}return Object(l.a)(e,[{key:"_chunkIndex",value:function(e,t,A){var n=this._indexer(e);return n[this._xIndex]=t,n[this._xIndex-1]=A,n}},{key:"_getSlices",value:function(e,t){var A=ji(this),n=A.height,r=A.width,i=[e*this.tileSize,Math.min((e+1)*this.tileSize,r)],o=i[0],a=i[1],s=[t*this.tileSize,Math.min((t+1)*this.tileSize,n)],g=s[0],c=s[1];if(o===a||g===c)throw new Bi.a("Tile slice is zero-sized.");return[Object(Bi.f)(o,a),Object(Bi.f)(g,c)]}},{key:"getRaster",value:function(){var e=Object(a.a)(o.a.mark((function e(t){var A,n,r,i,a,g,c,u;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=t.selection,n=this._chunkIndex(A,null,null),e.next=4,this._data.getRaw(n);case 4:return r=e.sent,i=r.data,a=r.shape,g=Object(s.a)(a,2),c=g[0],u=g[1],e.abrupt("return",{data:i,width:u,height:c});case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"getTile",value:function(){var e=Object(a.a)(o.a.mark((function e(t){var A,n,r,i,a,g,c,u,l,I,C,h,f,d,B,p;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=t.x,n=t.y,r=t.selection,i=t.signal,!this._readChunks){e.next=8;break}return g=this._chunkIndex(r,A,n),e.next=5,this._data.getRawChunk(g,{storeOptions:{signal:i}});case 5:a=e.sent,e.next=13;break;case 8:return c=this._getSlices(A,n),u=Object(s.a)(c,2),l=u[0],I=u[1],C=this._chunkIndex(r,l,I),e.next=12,this._data.getRaw(C);case 12:a=e.sent;case 13:return f=(h=a).data,d=Object(s.a)(h.shape,2),B=d[0],p=d[1],e.abrupt("return",{data:f,width:p,height:B});case 15:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"onTileError",value:function(e){if(!(e instanceof Bi.a))throw e}},{key:"shape",get:function(){return this._data.shape}},{key:"dtype",get:function(){var e=this._data.dtype.slice(1);if(!(e in ta))throw Error("Zarr dtype not supported, got ".concat(e,"."));return ta[e]}},{key:"_xIndex",get:function(){var e=Hi(this._data.shape);return this._data.shape.length-(e?2:1)}}]),e}();function na(e){return ra.apply(this,arguments)}function ra(){return(ra=Object(a.a)(o.a.mark((function e(t){var A,n,r,i,a,s;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,zo(t);case 2:return A=e.sent,n=A.data,r=A.rootAttrs,i=A.labels,a=ea(n[0]),s=n.map((function(e){return new Aa(e,i,a)})),e.abrupt("return",{data:s,metadata:r});case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ia(e){return oa.apply(this,arguments)}function oa(){return(oa=Object(a.a)(o.a.mark((function e(t){var A,n,r=arguments;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=r.length>1&&void 0!==r[1]?r[1]:{},n=new Bi.b(t,A),"multiscales"===(null===A||void 0===A?void 0:A.type)){e.next=4;break}throw Error("Only multiscale OME-Zarr is supported.");case 4:return e.abrupt("return",na(n));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},function(e,t,A){"use strict";var n=A(16),r=A(271);var i=A(91);function o(e){var t="function"===typeof Map?new Map:void 0;return(o=function(e){if(null===e||(A=e,-1===Function.toString.call(A).indexOf("[native code]")))return e;var A;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,o)}function o(){return Object(i.a)(e,arguments,Object(n.a)(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),Object(r.a)(o,e)})(e)}A.d(t,"a",(function(){return o}))},function(e,t,A){"use strict";A.d(t,"f",(function(){return i})),A.d(t,"g",(function(){return o})),A.d(t,"d",(function(){return a})),A.d(t,"a",(function(){return s})),A.d(t,"e",(function(){return g})),A.d(t,"i",(function(){return c})),A.d(t,"b",(function(){return u})),A.d(t,"c",(function(){return l})),A.d(t,"h",(function(){return I}));var n=function(e){return"boolean"===typeof e},r=function(e){return"function"===typeof e},i=function(e){return null!==e&&"object"===typeof e},o=function(e){return i(e)&&e.constructor==={}.constructor},a=function(e){return e&&"function"===typeof e[Symbol.iterator]},s=function(e){return e&&"function"===typeof e[Symbol.asyncIterator]},g=function(e){return e&&r(e.next)},c=function(e){return"undefined"!==typeof Response&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json},u=function(e){return"undefined"!==typeof Blob&&e instanceof Blob},l=function(e){return e&&"object"===typeof e&&e.isBuffer},I=function(e){return function(e){return"undefined"!==typeof ReadableStream&&e instanceof ReadableStream||i(e)&&r(e.tee)&&r(e.cancel)&&r(e.getReader)}(e)||function(e){return i(e)&&r(e.read)&&r(e.pipe)&&n(e.readable)}(e)}},function(e,t,A){"use strict";A.d(t,"b",(function(){return r})),A.d(t,"g",(function(){return i})),A.d(t,"c",(function(){return o})),A.d(t,"l",(function(){return a})),A.d(t,"a",(function(){return s})),A.d(t,"k",(function(){return g})),A.d(t,"h",(function(){return c})),A.d(t,"m",(function(){return u})),A.d(t,"j",(function(){return l})),A.d(t,"d",(function(){return I})),A.d(t,"i",(function(){return C})),A.d(t,"n",(function(){return h})),A.d(t,"o",(function(){return f})),A.d(t,"f",(function(){return d})),A.d(t,"e",(function(){return B}));var n=A(31);function r(e){var t=new n.a(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function i(e,t,A,r){var i=new n.a(4);return i[0]=e,i[1]=t,i[2]=A,i[3]=r,i}function o(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function a(e,t,A,n,r){return e[0]=t,e[1]=A,e[2]=n,e[3]=r,e}function s(e,t,A){return e[0]=t[0]+A[0],e[1]=t[1]+A[1],e[2]=t[2]+A[2],e[3]=t[3]+A[3],e}function g(e,t,A){return e[0]=t[0]*A,e[1]=t[1]*A,e[2]=t[2]*A,e[3]=t[3]*A,e}function c(e){var t=e[0],A=e[1],n=e[2],r=e[3];return Math.hypot(t,A,n,r)}function u(e){var t=e[0],A=e[1],n=e[2],r=e[3];return t*t+A*A+n*n+r*r}function l(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=A*A+n*n+r*r+i*i;return o>0&&(o=1/Math.sqrt(o)),e[0]=A*o,e[1]=n*o,e[2]=r*o,e[3]=i*o,e}function I(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function C(e,t,A,n){var r=t[0],i=t[1],o=t[2],a=t[3];return e[0]=r+n*(A[0]-r),e[1]=i+n*(A[1]-i),e[2]=o+n*(A[2]-o),e[3]=a+n*(A[3]-a),e}function h(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3];return e[0]=A[0]*n+A[4]*r+A[8]*i+A[12]*o,e[1]=A[1]*n+A[5]*r+A[9]*i+A[13]*o,e[2]=A[2]*n+A[6]*r+A[10]*i+A[14]*o,e[3]=A[3]*n+A[7]*r+A[11]*i+A[15]*o,e}function f(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[0],a=A[1],s=A[2],g=A[3],c=g*n+a*i-s*r,u=g*r+s*n-o*i,l=g*i+o*r-a*n,I=-o*n-a*r-s*i;return e[0]=c*g+I*-o+u*-s-l*-a,e[1]=u*g+I*-a+l*-o-c*-s,e[2]=l*g+I*-s+c*-a-u*-o,e[3]=t[3],e}function d(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function B(e,t){var A=e[0],r=e[1],i=e[2],o=e[3],a=t[0],s=t[1],g=t[2],c=t[3];return Math.abs(A-a)<=n.b*Math.max(1,Math.abs(A),Math.abs(a))&&Math.abs(r-s)<=n.b*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(i-g)<=n.b*Math.max(1,Math.abs(i),Math.abs(g))&&Math.abs(o-c)<=n.b*Math.max(1,Math.abs(o),Math.abs(c))}!function(){var e=function(){var e=new n.a(4);return n.a!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}()}()},function(e,t,A){"use strict";A.d(t,"c",(function(){return u})),A.d(t,"d",(function(){return l})),A.d(t,"e",(function(){return I})),A.d(t,"f",(function(){return C})),A.d(t,"g",(function(){return h})),A.d(t,"h",(function(){return f})),A.d(t,"i",(function(){return B})),A.d(t,"a",(function(){return p})),A.d(t,"b",(function(){return E}));var n=A(3),r=A.n(n),i=A(1),o=A(24),a=A(9),s=A(10),g=A(54),c=A(12);function u(e,t){for(var A in t)t.hasOwnProperty(A)&&(e[A]=t[A])}function l(e,t){return!(e.length<t.length)&&e.substr(e.length-t.length)===t}function I(e,t){for(var A=e.length,n=0;n<A;n++)t(e[n],n)}function C(e){var t={};for(var A in e){if(e.hasOwnProperty(A))t[e[A]]=A}return t}function h(e,t){for(var A=[],n=0;n<e;n++)A.push(t(n));return A}function f(e){return d.apply(this,arguments)}function d(){return(d=Object(c.a)(r.a.mark((function e(t){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e){return setTimeout(e,t)})));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function B(e,t){var A=Array.isArray(e)?e:Array.from(e),n=Array.isArray(t)?t:Array.from(t);return A.map((function(e,t){return[e,n[t]]}))}var p=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(e){var n;return Object(i.a)(this,A),n=t.call(this,e),Error.captureStackTrace&&Error.captureStackTrace(Object(o.a)(n),A),n.name="AbortError",n}return A}(Object(g.a)(Error)),E=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(e,n){var r;return Object(i.a)(this,A),(r=t.call(this,n)).errors=e,r.message=n,r.name="AggregateError",r}return A}(Object(g.a)(Error))},function(e,t,A){"use strict";A.d(t,"a",(function(){return r})),A.d(t,"i",(function(){return i})),A.d(t,"d",(function(){return o})),A.d(t,"b",(function(){return a})),A.d(t,"e",(function(){return s})),A.d(t,"h",(function(){return g})),A.d(t,"f",(function(){return c})),A.d(t,"g",(function(){return u})),A.d(t,"c",(function(){return l}));var n=A(31);function r(){var e=new n.a(9);return n.a!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function i(e,t){if(e===t){var A=t[1],n=t[2],r=t[5];e[1]=t[3],e[2]=t[6],e[3]=A,e[5]=t[7],e[6]=n,e[7]=r}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function o(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=t[4],a=t[5],s=t[6],g=t[7],c=t[8],u=c*o-a*g,l=-c*i+a*s,I=g*i-o*s,C=A*u+n*l+r*I;return C?(C=1/C,e[0]=u*C,e[1]=(-c*n+r*g)*C,e[2]=(a*n-r*o)*C,e[3]=l*C,e[4]=(c*A-r*s)*C,e[5]=(-a*A+r*i)*C,e[6]=I*C,e[7]=(-g*A+n*s)*C,e[8]=(o*A-n*i)*C,e):null}function a(e){var t=e[0],A=e[1],n=e[2],r=e[3],i=e[4],o=e[5],a=e[6],s=e[7],g=e[8];return t*(g*i-o*s)+A*(-g*r+o*a)+n*(s*r-i*a)}function s(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=A[0],I=A[1],C=A[2],h=A[3],f=A[4],d=A[5],B=A[6],p=A[7],E=A[8];return e[0]=l*n+I*o+C*g,e[1]=l*r+I*a+C*c,e[2]=l*i+I*s+C*u,e[3]=h*n+f*o+d*g,e[4]=h*r+f*a+d*c,e[5]=h*i+f*s+d*u,e[6]=B*n+p*o+E*g,e[7]=B*r+p*a+E*c,e[8]=B*i+p*s+E*u,e}function g(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=A[0],I=A[1];return e[0]=n,e[1]=r,e[2]=i,e[3]=o,e[4]=a,e[5]=s,e[6]=l*n+I*o+g,e[7]=l*r+I*a+c,e[8]=l*i+I*s+u,e}function c(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=Math.sin(A),I=Math.cos(A);return e[0]=I*n+l*o,e[1]=I*r+l*a,e[2]=I*i+l*s,e[3]=I*o-l*n,e[4]=I*a-l*r,e[5]=I*s-l*i,e[6]=g,e[7]=c,e[8]=u,e}function u(e,t,A){var n=A[0],r=A[1];return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=r*t[3],e[4]=r*t[4],e[5]=r*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function l(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=A+A,a=n+n,s=r+r,g=A*o,c=n*o,u=n*a,l=r*o,I=r*a,C=r*s,h=i*o,f=i*a,d=i*s;return e[0]=1-u-C,e[3]=c-d,e[6]=l+f,e[1]=c+d,e[4]=1-g-C,e[7]=I-h,e[2]=l-f,e[5]=I+h,e[8]=1-g-u,e}},function(e,t,A){"use strict";function n(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function r(e,t,A){return void 0===A&&(A={}),n({type:"Point",coordinates:e},t,A)}function i(e,t,A){void 0===A&&(A={});for(var r=0,i=e;r<i.length;r++){var o=i[r];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var a=0;a<o[o.length-1].length;a++)if(o[o.length-1][a]!==o[0][a])throw new Error("First and last Position are not equivalent.")}return n({type:"Polygon",coordinates:e},t,A)}function o(e,t,A){if(void 0===A&&(A={}),e.length<2)throw new Error("coordinates must be an array of two or more positions");return n({type:"LineString",coordinates:e},t,A)}function a(e,t){void 0===t&&(t={});var A={type:"FeatureCollection"};return t.id&&(A.id=t.id),t.bbox&&(A.bbox=t.bbox),A.features=e,A}function s(e,t,A){return void 0===A&&(A={}),n({type:"MultiLineString",coordinates:e},t,A)}function g(e,t,A){return void 0===A&&(A={}),n({type:"MultiPoint",coordinates:e},t,A)}function c(e,t,A){return void 0===A&&(A={}),n({type:"MultiPolygon",coordinates:e},t,A)}function u(e,A){void 0===A&&(A="kilometers");var n=t.factors[A];if(!n)throw new Error(A+" units is invalid");return e*n}function l(e,A){void 0===A&&(A="kilometers");var n=t.factors[A];if(!n)throw new Error(A+" units is invalid");return e/n}function I(e){return 180*(e%(2*Math.PI))/Math.PI}function C(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)&&!/^\s*$/.test(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.earthRadius=6371008.8,t.factors={centimeters:100*t.earthRadius,centimetres:100*t.earthRadius,degrees:t.earthRadius/111325,feet:3.28084*t.earthRadius,inches:39.37*t.earthRadius,kilometers:t.earthRadius/1e3,kilometres:t.earthRadius/1e3,meters:t.earthRadius,metres:t.earthRadius,miles:t.earthRadius/1609.344,millimeters:1e3*t.earthRadius,millimetres:1e3*t.earthRadius,nauticalmiles:t.earthRadius/1852,radians:1,yards:t.earthRadius/1.0936},t.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/t.earthRadius,yards:1/1.0936},t.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046},t.feature=n,t.geometry=function(e,t,A){switch(void 0===A&&(A={}),e){case"Point":return r(t).geometry;case"LineString":return o(t).geometry;case"Polygon":return i(t).geometry;case"MultiPoint":return g(t).geometry;case"MultiLineString":return s(t).geometry;case"MultiPolygon":return c(t).geometry;default:throw new Error(e+" is invalid")}},t.point=r,t.points=function(e,t,A){return void 0===A&&(A={}),a(e.map((function(e){return r(e,t)})),A)},t.polygon=i,t.polygons=function(e,t,A){return void 0===A&&(A={}),a(e.map((function(e){return i(e,t)})),A)},t.lineString=o,t.lineStrings=function(e,t,A){return void 0===A&&(A={}),a(e.map((function(e){return o(e,t)})),A)},t.featureCollection=a,t.multiLineString=s,t.multiPoint=g,t.multiPolygon=c,t.geometryCollection=function(e,t,A){return void 0===A&&(A={}),n({type:"GeometryCollection",geometries:e},t,A)},t.round=function(e,t){if(void 0===t&&(t=0),t&&!(t>=0))throw new Error("precision must be a positive number");var A=Math.pow(10,t||0);return Math.round(e*A)/A},t.radiansToLength=u,t.lengthToRadians=l,t.lengthToDegrees=function(e,t){return I(l(e,t))},t.bearingToAzimuth=function(e){var t=e%360;return t<0&&(t+=360),t},t.radiansToDegrees=I,t.degreesToRadians=function(e){return e%360*Math.PI/180},t.convertLength=function(e,t,A){if(void 0===t&&(t="kilometers"),void 0===A&&(A="kilometers"),!(e>=0))throw new Error("length must be a positive number");return u(l(e,t),A)},t.convertArea=function(e,A,n){if(void 0===A&&(A="meters"),void 0===n&&(n="kilometers"),!(e>=0))throw new Error("area must be a positive number");var r=t.areaFactors[A];if(!r)throw new Error("invalid original units");var i=t.areaFactors[n];if(!i)throw new Error("invalid final units");return e/r*i},t.isNumber=C,t.isObject=function(e){return!!e&&e.constructor===Object},t.validateBBox=function(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!C(e))throw new Error("bbox must only contain numbers")}))},t.validateId=function(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")},t.radians2degrees=function(){throw new Error("method has been renamed to `radiansToDegrees`")},t.degrees2radians=function(){throw new Error("method has been renamed to `degreesToRadians`")},t.distanceToDegrees=function(){throw new Error("method has been renamed to `lengthToDegrees`")},t.distanceToRadians=function(){throw new Error("method has been renamed to `lengthToRadians`")},t.radiansToDistance=function(){throw new Error("method has been renamed to `radiansToLength`")},t.bearingToAngle=function(){throw new Error("method has been renamed to `bearingToAzimuth`")},t.convertDistance=function(){throw new Error("method has been renamed to `convertLength`")}},function(e,t,A){"use strict";A.d(t,"c",(function(){return a})),A.d(t,"a",(function(){return g})),A.d(t,"b",(function(){return c})),A.d(t,"d",(function(){return u}));var n=A(717);function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.min(Math.max(t,e),A)}function i(e){if(e.type)return e;if("#"===e.charAt(0))return i(function(e){e=e.substr(1);var t=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g"),A=e.match(t);return A&&1===A[0].length&&(A=A.map((function(e){return e+e}))),A?"rgb".concat(4===A.length?"a":"","(").concat(A.map((function(e,t){return t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3})).join(", "),")"):""}(e));var t=e.indexOf("("),A=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla"].indexOf(A))throw new Error(Object(n.a)(3,e));var r=e.substring(t+1,e.length-1).split(",");return{type:A,values:r=r.map((function(e){return parseFloat(e)}))}}function o(e){var t=e.type,A=e.values;return-1!==t.indexOf("rgb")?A=A.map((function(e,t){return t<3?parseInt(e,10):e})):-1!==t.indexOf("hsl")&&(A[1]="".concat(A[1],"%"),A[2]="".concat(A[2],"%")),"".concat(t,"(").concat(A.join(", "),")")}function a(e,t){var A=s(e),n=s(t);return(Math.max(A,n)+.05)/(Math.min(A,n)+.05)}function s(e){var t="hsl"===(e=i(e)).type?i(function(e){var t=(e=i(e)).values,A=t[0],n=t[1]/100,r=t[2]/100,a=n*Math.min(r,1-r),s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+A/30)%12;return r-a*Math.max(Math.min(t-3,9-t,1),-1)},g="rgb",c=[Math.round(255*s(0)),Math.round(255*s(8)),Math.round(255*s(4))];return"hsla"===e.type&&(g+="a",c.push(t[3])),o({type:g,values:c})}(e)).values:e.values;return t=t.map((function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)})),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function g(e,t){return e=i(e),t=r(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),e.values[3]=t,o(e)}function c(e,t){if(e=i(e),t=r(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb"))for(var A=0;A<3;A+=1)e.values[A]*=1-t;return o(e)}function u(e,t){if(e=i(e),t=r(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var A=0;A<3;A+=1)e.values[A]+=(255-e.values[A])*t;return o(e)}},function(e,t,A){var n;!function(){"use strict";var A={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var i=typeof n;if("string"===i||"number"===i)e.push(n);else if(Array.isArray(n)&&n.length){var o=r.apply(null,n);o&&e.push(o)}else if("object"===i)for(var a in n)A.call(n,a)&&n[a]&&e.push(a)}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},function(e,t,A){e.exports=A(864)},function(e,t,A){var n=A(251),r=A(20);e.exports=function(e,t){return!t||"object"!==n(t)&&"function"!==typeof t?r(e):t}},function(e,t){function A(t){return e.exports=A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},A(t)}e.exports=A},function(e,t,A){var n=A(902);e.exports=function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}},function(e,t,A){"use strict";A.d(t,"a",(function(){return i}));var n=A(0),r="undefined"!==typeof window?n.useLayoutEffect:n.useEffect;function i(e){var t=n.useRef(e);return r((function(){t.current=e})),n.useCallback((function(){return t.current.apply(void 0,arguments)}),[])}},function(e,t,A){"use strict";A.d(t,"b",(function(){return r})),A.d(t,"g",(function(){return i})),A.d(t,"e",(function(){return o})),A.d(t,"h",(function(){return a})),A.d(t,"d",(function(){return s})),A.d(t,"c",(function(){return g})),A.d(t,"m",(function(){return c})),A.d(t,"l",(function(){return u})),A.d(t,"n",(function(){return l})),A.d(t,"i",(function(){return I})),A.d(t,"j",(function(){return C})),A.d(t,"k",(function(){return h})),A.d(t,"a",(function(){return f})),A.d(t,"f",(function(){return d}));var n=A(30);function r(){var e=new n.a(3);return n.a!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function i(e){var t=e[0],A=e[1],n=e[2];return Math.hypot(t,A,n)}function o(e,t,A){var r=new n.a(3);return r[0]=e,r[1]=t,r[2]=A,r}function a(e,t){var A=t[0],n=t[1],r=t[2],i=A*A+n*n+r*r;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function s(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function g(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[0],a=A[1],s=A[2];return e[0]=r*s-i*a,e[1]=i*o-n*s,e[2]=n*a-r*o,e}function c(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[3]*n+A[7]*r+A[11]*i+A[15];return o=o||1,e[0]=(A[0]*n+A[4]*r+A[8]*i+A[12])/o,e[1]=(A[1]*n+A[5]*r+A[9]*i+A[13])/o,e[2]=(A[2]*n+A[6]*r+A[10]*i+A[14])/o,e}function u(e,t,A){var n=t[0],r=t[1],i=t[2];return e[0]=n*A[0]+r*A[3]+i*A[6],e[1]=n*A[1]+r*A[4]+i*A[7],e[2]=n*A[2]+r*A[5]+i*A[8],e}function l(e,t,A){var n=A[0],r=A[1],i=A[2],o=A[3],a=t[0],s=t[1],g=t[2],c=r*g-i*s,u=i*a-n*g,l=n*s-r*a,I=r*l-i*u,C=i*c-n*l,h=n*u-r*c,f=2*o;return c*=f,u*=f,l*=f,I*=2,C*=2,h*=2,e[0]=a+c+I,e[1]=s+u+C,e[2]=g+l+h,e}function I(e,t,A,n){var r=[],i=[];return r[0]=t[0]-A[0],r[1]=t[1]-A[1],r[2]=t[2]-A[2],i[0]=r[0],i[1]=r[1]*Math.cos(n)-r[2]*Math.sin(n),i[2]=r[1]*Math.sin(n)+r[2]*Math.cos(n),e[0]=i[0]+A[0],e[1]=i[1]+A[1],e[2]=i[2]+A[2],e}function C(e,t,A,n){var r=[],i=[];return r[0]=t[0]-A[0],r[1]=t[1]-A[1],r[2]=t[2]-A[2],i[0]=r[2]*Math.sin(n)+r[0]*Math.cos(n),i[1]=r[1],i[2]=r[2]*Math.cos(n)-r[0]*Math.sin(n),e[0]=i[0]+A[0],e[1]=i[1]+A[1],e[2]=i[2]+A[2],e}function h(e,t,A,n){var r=[],i=[];return r[0]=t[0]-A[0],r[1]=t[1]-A[1],r[2]=t[2]-A[2],i[0]=r[0]*Math.cos(n)-r[1]*Math.sin(n),i[1]=r[0]*Math.sin(n)+r[1]*Math.cos(n),i[2]=r[2],e[0]=i[0]+A[0],e[1]=i[1]+A[1],e[2]=i[2]+A[2],e}function f(e,t){var A=e[0],n=e[1],r=e[2],i=t[0],o=t[1],a=t[2],g=Math.sqrt(A*A+n*n+r*r)*Math.sqrt(i*i+o*o+a*a),c=g&&s(e,t)/g;return Math.acos(Math.min(Math.max(c,-1),1))}var d=i;!function(){var e=r()}()},,function(e,t,A){"use strict";function n(e){return e&&e.ownerDocument||document}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return r})),A.d(t,"b",(function(){return i})),A.d(t,"c",(function(){return o})),A.d(t,"d",(function(){return a})),A.d(t,"e",(function(){return s})),A.d(t,"f",(function(){return g}));var n=A(31);function r(e,t,A){return e[0]=t[0]+A[0],e[1]=t[1]+A[1],e}function i(e,t){return e[0]=-t[0],e[1]=-t[1],e}function o(e,t,A){var n=t[0],r=t[1];return e[0]=A[0]*n+A[2]*r,e[1]=A[1]*n+A[3]*r,e}function a(e,t,A){var n=t[0],r=t[1];return e[0]=A[0]*n+A[2]*r+A[4],e[1]=A[1]*n+A[3]*r+A[5],e}function s(e,t,A){var n=t[0],r=t[1];return e[0]=A[0]*n+A[3]*r+A[6],e[1]=A[1]*n+A[4]*r+A[7],e}function g(e,t,A){var n=t[0],r=t[1];return e[0]=A[0]*n+A[4]*r+A[12],e[1]=A[1]*n+A[5]*r+A[13],e}!function(){var e=function(){var e=new n.a(2);return n.a!=Float32Array&&(e[0]=0,e[1]=0),e}()}()},function(e,t,A){"use strict";(function(e,n){var r=A(11),i=A(3),o=A.n(i),a=A(12),s=A(1),g=A(4),c=A(47);A.d(t,"a",(function(){return c.a})),A.d(t,"b",(function(){return c.b})),A.d(t,"c",(function(){return c.c})),A.d(t,"d",(function(){return c.e})),A.d(t,"e",(function(){return c.f})),A.d(t,"f",(function(){return c.g}));function u(e){for(var t=e.length;--t>=0;)e[t]=0}var l=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),I=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),C=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),h=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),f=new Array(576);u(f);var d=new Array(60);u(d);var B=new Array(512);u(B);var p=new Array(256);u(p);var E=new Array(29);u(E);var Q,y,v,m=new Array(30);function b(e,t,A,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=A,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}function w(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}u(m);var S=function(e){return e<256?B[e]:B[256+(e>>>7)]},F=function(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},R=function(e,t,A){e.bi_valid>16-A?(e.bi_buf|=t<<e.bi_valid&65535,F(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=A-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=A)},D=function(e,t,A){R(e,A[2*t],A[2*t+1])},G=function(e,t){var A=0;do{A|=1&e,e>>>=1,A<<=1}while(--t>0);return A>>>1},k=function(e,t,A){var n,r,i=new Array(16),o=0;for(n=1;n<=15;n++)i[n]=o=o+A[n-1]<<1;for(r=0;r<=t;r++){var a=e[2*r+1];0!==a&&(e[2*r]=G(i[a]++,a))}},x=function(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},N=function(e){e.bi_valid>8?F(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},U=function(e,t,A,n){var r=2*t,i=2*A;return e[r]<e[i]||e[r]===e[i]&&n[t]<=n[A]},_=function(e,t,A){for(var n=e.heap[A],r=A<<1;r<=e.heap_len&&(r<e.heap_len&&U(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!U(t,n,e.heap[r],e.depth));)e.heap[A]=e.heap[r],A=r,r<<=1;e.heap[A]=n},M=function(e,t,A){var n,r,i,o,a=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*a]<<8|e.pending_buf[e.d_buf+2*a+1],r=e.pending_buf[e.l_buf+a],a++,0===n?D(e,r,t):(i=p[r],D(e,i+256+1,t),0!==(o=l[i])&&(r-=E[i],R(e,r,o)),n--,i=S(n),D(e,i,A),0!==(o=I[i])&&(n-=m[i],R(e,n,o)))}while(a<e.last_lit);D(e,256,t)},O=function(e,t){var A,n,r,i=t.dyn_tree,o=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.elems,g=-1;for(e.heap_len=0,e.heap_max=573,A=0;A<s;A++)0!==i[2*A]?(e.heap[++e.heap_len]=g=A,e.depth[A]=0):i[2*A+1]=0;for(;e.heap_len<2;)i[2*(r=e.heap[++e.heap_len]=g<2?++g:0)]=1,e.depth[r]=0,e.opt_len--,a&&(e.static_len-=o[2*r+1]);for(t.max_code=g,A=e.heap_len>>1;A>=1;A--)_(e,i,A);r=s;do{A=e.heap[1],e.heap[1]=e.heap[e.heap_len--],_(e,i,1),n=e.heap[1],e.heap[--e.heap_max]=A,e.heap[--e.heap_max]=n,i[2*r]=i[2*A]+i[2*n],e.depth[r]=(e.depth[A]>=e.depth[n]?e.depth[A]:e.depth[n])+1,i[2*A+1]=i[2*n+1]=r,e.heap[1]=r++,_(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var A,n,r,i,o,a,s=t.dyn_tree,g=t.max_code,c=t.stat_desc.static_tree,u=t.stat_desc.has_stree,l=t.stat_desc.extra_bits,I=t.stat_desc.extra_base,C=t.stat_desc.max_length,h=0;for(i=0;i<=15;i++)e.bl_count[i]=0;for(s[2*e.heap[e.heap_max]+1]=0,A=e.heap_max+1;A<573;A++)(i=s[2*s[2*(n=e.heap[A])+1]+1]+1)>C&&(i=C,h++),s[2*n+1]=i,n>g||(e.bl_count[i]++,o=0,n>=I&&(o=l[n-I]),a=s[2*n],e.opt_len+=a*(i+o),u&&(e.static_len+=a*(c[2*n+1]+o)));if(0!==h){do{for(i=C-1;0===e.bl_count[i];)i--;e.bl_count[i]--,e.bl_count[i+1]+=2,e.bl_count[C]--,h-=2}while(h>0);for(i=C;0!==i;i--)for(n=e.bl_count[i];0!==n;)(r=e.heap[--A])>g||(s[2*r+1]!==i&&(e.opt_len+=(i-s[2*r+1])*s[2*r],s[2*r+1]=i),n--)}}(e,t),k(i,g,e.bl_count)},L=function(e,t,A){var n,r,i=-1,o=t[1],a=0,s=7,g=4;for(0===o&&(s=138,g=3),t[2*(A+1)+1]=65535,n=0;n<=A;n++)r=o,o=t[2*(n+1)+1],++a<s&&r===o||(a<g?e.bl_tree[2*r]+=a:0!==r?(r!==i&&e.bl_tree[2*r]++,e.bl_tree[32]++):a<=10?e.bl_tree[34]++:e.bl_tree[36]++,a=0,i=r,0===o?(s=138,g=3):r===o?(s=6,g=3):(s=7,g=4))},T=function(e,t,A){var n,r,i=-1,o=t[1],a=0,s=7,g=4;for(0===o&&(s=138,g=3),n=0;n<=A;n++)if(r=o,o=t[2*(n+1)+1],!(++a<s&&r===o)){if(a<g)do{D(e,r,e.bl_tree)}while(0!==--a);else 0!==r?(r!==i&&(D(e,r,e.bl_tree),a--),D(e,16,e.bl_tree),R(e,a-3,2)):a<=10?(D(e,17,e.bl_tree),R(e,a-3,3)):(D(e,18,e.bl_tree),R(e,a-11,7));a=0,i=r,0===o?(s=138,g=3):r===o?(s=6,g=3):(s=7,g=4)}},Z=!1,H=function(e,t,A,n){R(e,0+(n?1:0),3),function(e,t,A,n){N(e),n&&(F(e,A),F(e,~A)),e.pending_buf.set(e.window.subarray(t,t+A),e.pending),e.pending+=A}(e,t,A,!0)},Y={_tr_init:function(e){Z||(!function(){var e,t,A,n,r,i=new Array(16);for(A=0,n=0;n<28;n++)for(E[n]=A,e=0;e<1<<l[n];e++)p[A++]=n;for(p[A-1]=n,r=0,n=0;n<16;n++)for(m[n]=r,e=0;e<1<<I[n];e++)B[r++]=n;for(r>>=7;n<30;n++)for(m[n]=r<<7,e=0;e<1<<I[n]-7;e++)B[256+r++]=n;for(t=0;t<=15;t++)i[t]=0;for(e=0;e<=143;)f[2*e+1]=8,e++,i[8]++;for(;e<=255;)f[2*e+1]=9,e++,i[9]++;for(;e<=279;)f[2*e+1]=7,e++,i[7]++;for(;e<=287;)f[2*e+1]=8,e++,i[8]++;for(k(f,287,i),e=0;e<30;e++)d[2*e+1]=5,d[2*e]=G(e,5);Q=new b(f,l,257,286,15),y=new b(d,I,0,30,15),v=new b(new Array(0),C,0,19,7)}(),Z=!0),e.l_desc=new w(e.dyn_ltree,Q),e.d_desc=new w(e.dyn_dtree,y),e.bl_desc=new w(e.bl_tree,v),e.bi_buf=0,e.bi_valid=0,x(e)},_tr_stored_block:H,_tr_flush_block:function(e,t,A,n){var r,i,o=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,A=4093624447;for(t=0;t<=31;t++,A>>>=1)if(1&A&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),O(e,e.l_desc),O(e,e.d_desc),o=function(e){var t;for(L(e,e.dyn_ltree,e.l_desc.max_code),L(e,e.dyn_dtree,e.d_desc.max_code),O(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*h[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),r=e.opt_len+3+7>>>3,(i=e.static_len+3+7>>>3)<=r&&(r=i)):r=i=A+5,A+4<=r&&-1!==t?H(e,t,A,n):4===e.strategy||i===r?(R(e,2+(n?1:0),3),M(e,f,d)):(R(e,4+(n?1:0),3),function(e,t,A,n){var r;for(R(e,t-257,5),R(e,A-1,5),R(e,n-4,4),r=0;r<n;r++)R(e,e.bl_tree[2*h[r]+1],3);T(e,e.dyn_ltree,t-1),T(e,e.dyn_dtree,A-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),M(e,e.dyn_ltree,e.dyn_dtree)),x(e),n&&N(e)},_tr_tally:function(e,t,A){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&A,e.last_lit++,0===t?e.dyn_ltree[2*A]++:(e.matches++,t--,e.dyn_ltree[2*(p[A]+256+1)]++,e.dyn_dtree[2*S(t)]++),e.last_lit===e.lit_bufsize-1},_tr_align:function(e){R(e,2,3),D(e,256,f),function(e){16===e.bi_valid?(F(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},J=function(e,t,A,n){for(var r=65535&e|0,i=e>>>16&65535|0,o=0;0!==A;){A-=o=A>2e3?2e3:A;do{i=i+(r=r+t[n++]|0)|0}while(--o);r%=65521,i%=65521}return r|i<<16|0},j=new Uint32Array(function(){for(var e,t=[],A=0;A<256;A++){e=A;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[A]=e}return t}()),P=function(e,t,A,n){var r=j,i=n+A;e^=-1;for(var o=n;o<i;o++)e=e>>>8^r[255&(e^t[o])];return-1^e},V={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},K={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},W=Y._tr_init,X=Y._tr_stored_block,q=Y._tr_flush_block,z=Y._tr_tally,$=Y._tr_align,ee=K.Z_NO_FLUSH,te=K.Z_PARTIAL_FLUSH,Ae=K.Z_FULL_FLUSH,ne=K.Z_FINISH,re=K.Z_BLOCK,ie=K.Z_OK,oe=K.Z_STREAM_END,ae=K.Z_STREAM_ERROR,se=K.Z_DATA_ERROR,ge=K.Z_BUF_ERROR,ce=K.Z_DEFAULT_COMPRESSION,ue=K.Z_FILTERED,le=K.Z_HUFFMAN_ONLY,Ie=K.Z_RLE,Ce=K.Z_FIXED,he=K.Z_DEFAULT_STRATEGY,fe=K.Z_UNKNOWN,de=K.Z_DEFLATED,Be=function(e,t){return e.msg=V[t],t},pe=function(e){return(e<<1)-(e>4?9:0)},Ee=function(e){for(var t=e.length;--t>=0;)e[t]=0},Qe=function(e,t,A){return(t<<e.hash_shift^A)&e.hash_mask},ye=function(e){var t=e.state,A=t.pending;A>e.avail_out&&(A=e.avail_out),0!==A&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+A),e.next_out),e.next_out+=A,t.pending_out+=A,e.total_out+=A,e.avail_out-=A,t.pending-=A,0===t.pending&&(t.pending_out=0))},ve=function(e,t){q(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,ye(e.strm)},me=function(e,t){e.pending_buf[e.pending++]=t},be=function(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},we=function(e,t,A,n){var r=e.avail_in;return r>n&&(r=n),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),A),1===e.state.wrap?e.adler=J(e.adler,t,r,A):2===e.state.wrap&&(e.adler=P(e.adler,t,r,A)),e.next_in+=r,e.total_in+=r,r)},Se=function(e,t){var A,n,r=e.max_chain_length,i=e.strstart,o=e.prev_length,a=e.nice_match,s=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,g=e.window,c=e.w_mask,u=e.prev,l=e.strstart+258,I=g[i+o-1],C=g[i+o];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(g[(A=t)+o]===C&&g[A+o-1]===I&&g[A]===g[i]&&g[++A]===g[i+1]){i+=2,A++;do{}while(g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&i<l);if(n=258-(l-i),i=l-258,n>o){if(e.match_start=t,o=n,n>=a)break;I=g[i+o-1],C=g[i+o]}}}while((t=u[t&c])>s&&0!==--r);return o<=e.lookahead?o:e.lookahead},Fe=function(e){var t,A,n,r,i,o=e.w_size;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=o+(o-262)){e.window.set(e.window.subarray(o,o+o),0),e.match_start-=o,e.strstart-=o,e.block_start-=o,t=A=e.hash_size;do{n=e.head[--t],e.head[t]=n>=o?n-o:0}while(--A);t=A=o;do{n=e.prev[--t],e.prev[t]=n>=o?n-o:0}while(--A);r+=o}if(0===e.strm.avail_in)break;if(A=we(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=A,e.lookahead+e.insert>=3)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=Qe(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=Qe(e,e.ins_h,e.window[i+3-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},Re=function(e,t){for(var A,n;;){if(e.lookahead<262){if(Fe(e),e.lookahead<262&&t===ee)return 1;if(0===e.lookahead)break}if(A=0,e.lookahead>=3&&(e.ins_h=Qe(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==A&&e.strstart-A<=e.w_size-262&&(e.match_length=Se(e,A)),e.match_length>=3)if(n=z(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=Qe(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!==--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Qe(e,e.ins_h,e.window[e.strstart+1]);else n=z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===ne?(ve(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ve(e,!1),0===e.strm.avail_out)?1:2},De=function(e,t){for(var A,n,r;;){if(e.lookahead<262){if(Fe(e),e.lookahead<262&&t===ee)return 1;if(0===e.lookahead)break}if(A=0,e.lookahead>=3&&(e.ins_h=Qe(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==A&&e.prev_length<e.max_lazy_match&&e.strstart-A<=e.w_size-262&&(e.match_length=Se(e,A),e.match_length<=5&&(e.strategy===ue||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,n=z(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=Qe(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!==--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(ve(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((n=z(e,0,e.window[e.strstart-1]))&&ve(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=z(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===ne?(ve(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ve(e,!1),0===e.strm.avail_out)?1:2};function Ge(e,t,A,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=A,this.max_chain=n,this.func=r}var ke=[new Ge(0,0,0,0,(function(e,t){var A=65535;for(A>e.pending_buf_size-5&&(A=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Fe(e),0===e.lookahead&&t===ee)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+A;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,ve(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ne?(ve(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(ve(e,!1),e.strm.avail_out),1)})),new Ge(4,4,8,4,Re),new Ge(4,5,16,8,Re),new Ge(4,6,32,32,Re),new Ge(4,4,16,16,De),new Ge(8,16,32,32,De),new Ge(8,16,128,128,De),new Ge(8,32,128,256,De),new Ge(32,128,258,1024,De),new Ge(32,258,258,4096,De)];function xe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=de,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Ee(this.dyn_ltree),Ee(this.dyn_dtree),Ee(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Ee(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Ee(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var Ne=function(e){if(!e||!e.state)return Be(e,ae);e.total_in=e.total_out=0,e.data_type=fe;var t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=ee,W(t),ie},Ue=function(e){var t,A=Ne(e);return A===ie&&((t=e.state).window_size=2*t.w_size,Ee(t.head),t.max_lazy_match=ke[t.level].max_lazy,t.good_match=ke[t.level].good_length,t.nice_match=ke[t.level].nice_length,t.max_chain_length=ke[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),A},_e=function(e,t,A,n,r,i){if(!e)return ae;var o=1;if(t===ce&&(t=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),r<1||r>9||A!==de||n<8||n>15||t<0||t>9||i<0||i>Ce)return Be(e,ae);8===n&&(n=9);var a=new xe;return e.state=a,a.strm=e,a.wrap=o,a.gzhead=null,a.w_bits=n,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=r+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+3-1)/3),a.window=new Uint8Array(2*a.w_size),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<r+6,a.pending_buf_size=4*a.lit_bufsize,a.pending_buf=new Uint8Array(a.pending_buf_size),a.d_buf=1*a.lit_bufsize,a.l_buf=3*a.lit_bufsize,a.level=t,a.strategy=i,a.method=A,Ue(e)},Me={deflateInit:function(e,t){return _e(e,t,de,15,8,he)},deflateInit2:_e,deflateReset:Ue,deflateResetKeep:Ne,deflateSetHeader:function(e,t){return e&&e.state?2!==e.state.wrap?ae:(e.state.gzhead=t,ie):ae},deflate:function(e,t){var A,n;if(!e||!e.state||t>re||t<0)return e?Be(e,ae):ae;var r=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===r.status&&t!==ne)return Be(e,0===e.avail_out?ge:ae);r.strm=e;var i=r.last_flush;if(r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,me(r,31),me(r,139),me(r,8),r.gzhead?(me(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),me(r,255&r.gzhead.time),me(r,r.gzhead.time>>8&255),me(r,r.gzhead.time>>16&255),me(r,r.gzhead.time>>24&255),me(r,9===r.level?2:r.strategy>=le||r.level<2?4:0),me(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(me(r,255&r.gzhead.extra.length),me(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=P(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(me(r,0),me(r,0),me(r,0),me(r,0),me(r,0),me(r,9===r.level?2:r.strategy>=le||r.level<2?4:0),me(r,3),r.status=113);else{var o=de+(r.w_bits-8<<4)<<8;o|=(r.strategy>=le||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(o|=32),o+=31-o%31,r.status=113,be(r,o),0!==r.strstart&&(be(r,e.adler>>>16),be(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(A=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),ye(e),A=r.pending,r.pending!==r.pending_buf_size));)me(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){A=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),ye(e),A=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,me(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),0===n&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){A=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),ye(e),A=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,me(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),0===n&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&ye(e),r.pending+2<=r.pending_buf_size&&(me(r,255&e.adler),me(r,e.adler>>8&255),e.adler=0,r.status=113)):r.status=113),0!==r.pending){if(ye(e),0===e.avail_out)return r.last_flush=-1,ie}else if(0===e.avail_in&&pe(t)<=pe(i)&&t!==ne)return Be(e,ge);if(666===r.status&&0!==e.avail_in)return Be(e,ge);if(0!==e.avail_in||0!==r.lookahead||t!==ee&&666!==r.status){var a=r.strategy===le?function(e,t){for(var A;;){if(0===e.lookahead&&(Fe(e),0===e.lookahead)){if(t===ee)return 1;break}if(e.match_length=0,A=z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,A&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ne?(ve(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ve(e,!1),0===e.strm.avail_out)?1:2}(r,t):r.strategy===Ie?function(e,t){for(var A,n,r,i,o=e.window;;){if(e.lookahead<=258){if(Fe(e),e.lookahead<=258&&t===ee)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=o[r=e.strstart-1])===o[++r]&&n===o[++r]&&n===o[++r]){i=e.strstart+258;do{}while(n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&r<i);e.match_length=258-(i-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(A=z(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(A=z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),A&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ne?(ve(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ve(e,!1),0===e.strm.avail_out)?1:2}(r,t):ke[r.level].func(r,t);if(3!==a&&4!==a||(r.status=666),1===a||3===a)return 0===e.avail_out&&(r.last_flush=-1),ie;if(2===a&&(t===te?$(r):t!==re&&(X(r,0,0,!1),t===Ae&&(Ee(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),ye(e),0===e.avail_out))return r.last_flush=-1,ie}return t!==ne?ie:r.wrap<=0?oe:(2===r.wrap?(me(r,255&e.adler),me(r,e.adler>>8&255),me(r,e.adler>>16&255),me(r,e.adler>>24&255),me(r,255&e.total_in),me(r,e.total_in>>8&255),me(r,e.total_in>>16&255),me(r,e.total_in>>24&255)):(be(r,e.adler>>>16),be(r,65535&e.adler)),ye(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?ie:oe)},deflateEnd:function(e){if(!e||!e.state)return ae;var t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?Be(e,ae):(e.state=null,113===t?Be(e,se):ie)},deflateSetDictionary:function(e,t){var A=t.length;if(!e||!e.state)return ae;var n=e.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return ae;if(1===r&&(e.adler=J(e.adler,t,A,0)),n.wrap=0,A>=n.w_size){0===r&&(Ee(n.head),n.strstart=0,n.block_start=0,n.insert=0);var i=new Uint8Array(n.w_size);i.set(t.subarray(A-n.w_size,A),0),t=i,A=n.w_size}var o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=A,e.next_in=0,e.input=t,Fe(n);n.lookahead>=3;){var g=n.strstart,c=n.lookahead-2;do{n.ins_h=Qe(n,n.ins_h,n.window[g+3-1]),n.prev[g&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=g,g++}while(--c);n.strstart=g,n.lookahead=2,Fe(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,n.wrap=r,ie},deflateInfo:"pako deflate (from Nodeca project)"},Oe=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},Le=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var A=t.shift();if(A){if("object"!==typeof A)throw new TypeError(A+"must be non-object");for(var n in A)Oe(A,n)&&(e[n]=A[n])}}return e},Te=function(e){for(var t=0,A=0,n=e.length;A<n;A++)t+=e[A].length;for(var r=new Uint8Array(t),i=0,o=0,a=e.length;i<a;i++){var s=e[i];r.set(s,o),o+=s.length}return r},Ze=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(gA){Ze=!1}for(var He=new Uint8Array(256),Ye=0;Ye<256;Ye++)He[Ye]=Ye>=252?6:Ye>=248?5:Ye>=240?4:Ye>=224?3:Ye>=192?2:1;He[254]=He[254]=1;var Je=function(e){var t,A,n,r,i,o=e.length,a=0;for(r=0;r<o;r++)55296===(64512&(A=e.charCodeAt(r)))&&r+1<o&&56320===(64512&(n=e.charCodeAt(r+1)))&&(A=65536+(A-55296<<10)+(n-56320),r++),a+=A<128?1:A<2048?2:A<65536?3:4;for(t=new Uint8Array(a),i=0,r=0;i<a;r++)55296===(64512&(A=e.charCodeAt(r)))&&r+1<o&&56320===(64512&(n=e.charCodeAt(r+1)))&&(A=65536+(A-55296<<10)+(n-56320),r++),A<128?t[i++]=A:A<2048?(t[i++]=192|A>>>6,t[i++]=128|63&A):A<65536?(t[i++]=224|A>>>12,t[i++]=128|A>>>6&63,t[i++]=128|63&A):(t[i++]=240|A>>>18,t[i++]=128|A>>>12&63,t[i++]=128|A>>>6&63,t[i++]=128|63&A);return t},je=function(e,t){var A,n,r=t||e.length,i=new Array(2*r);for(n=0,A=0;A<r;){var o=e[A++];if(o<128)i[n++]=o;else{var a=He[o];if(a>4)i[n++]=65533,A+=a-1;else{for(o&=2===a?31:3===a?15:7;a>1&&A<r;)o=o<<6|63&e[A++],a--;a>1?i[n++]=65533:o<65536?i[n++]=o:(o-=65536,i[n++]=55296|o>>10&1023,i[n++]=56320|1023&o)}}}return function(e,t){if(t<65534&&e.subarray&&Ze)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));for(var A="",n=0;n<t;n++)A+=String.fromCharCode(e[n]);return A}(i,n)},Pe=function(e,t){(t=t||e.length)>e.length&&(t=e.length);for(var A=t-1;A>=0&&128===(192&e[A]);)A--;return A<0||0===A?t:A+He[e[A]]>t?A:t};var Ve=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Ke=Object.prototype.toString,We=K.Z_NO_FLUSH,Xe=K.Z_SYNC_FLUSH,qe=K.Z_FULL_FLUSH,ze=K.Z_FINISH,$e=K.Z_OK,et=K.Z_STREAM_END,tt=K.Z_DEFAULT_COMPRESSION,At=K.Z_DEFAULT_STRATEGY,nt=K.Z_DEFLATED;function rt(e){this.options=Le({level:tt,method:nt,chunkSize:16384,windowBits:15,memLevel:8,strategy:At},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ve,this.strm.avail_out=0;var A=Me.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(A!==$e)throw new Error(V[A]);if(t.header&&Me.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n="string"===typeof t.dictionary?Je(t.dictionary):"[object ArrayBuffer]"===Ke.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(A=Me.deflateSetDictionary(this.strm,n))!==$e)throw new Error(V[A]);this._dict_set=!0}}function it(e,t){var A=new rt(t);if(A.push(e,!0),A.err)throw A.msg||V[A.err];return A.result}rt.prototype.push=function(e,t){var A,n,r=this.strm,i=this.options.chunkSize;if(this.ended)return!1;for(n=t===~~t?t:!0===t?ze:We,"string"===typeof e?r.input=Je(e):"[object ArrayBuffer]"===Ke.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;)if(0===r.avail_out&&(r.output=new Uint8Array(i),r.next_out=0,r.avail_out=i),(n===Xe||n===qe)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if((A=Me.deflate(r,n))===et)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),A=Me.deflateEnd(this.strm),this.onEnd(A),this.ended=!0,A===$e;if(0!==r.avail_out){if(n>0&&r.next_out>0)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else if(0===r.avail_in)break}else this.onData(r.output)}return!0},rt.prototype.onData=function(e){this.chunks.push(e)},rt.prototype.onEnd=function(e){e===$e&&(this.result=Te(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ot={Deflate:rt,deflate:it,deflateRaw:function(e,t){return(t=t||{}).raw=!0,it(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,it(e,t)},constants:K},at=function(e,t){var A,n,r,i,o,a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w=e.state;A=e.next_in,m=e.input,n=A+(e.avail_in-5),r=e.next_out,b=e.output,i=r-(t-e.avail_out),o=r+(e.avail_out-257),a=w.dmax,s=w.wsize,g=w.whave,c=w.wnext,u=w.window,l=w.hold,I=w.bits,C=w.lencode,h=w.distcode,f=(1<<w.lenbits)-1,d=(1<<w.distbits)-1;e:do{I<15&&(l+=m[A++]<<I,I+=8,l+=m[A++]<<I,I+=8),B=C[l&f];t:for(;;){if(l>>>=p=B>>>24,I-=p,0===(p=B>>>16&255))b[r++]=65535&B;else{if(!(16&p)){if(0===(64&p)){B=C[(65535&B)+(l&(1<<p)-1)];continue t}if(32&p){w.mode=12;break e}e.msg="invalid literal/length code",w.mode=30;break e}E=65535&B,(p&=15)&&(I<p&&(l+=m[A++]<<I,I+=8),E+=l&(1<<p)-1,l>>>=p,I-=p),I<15&&(l+=m[A++]<<I,I+=8,l+=m[A++]<<I,I+=8),B=h[l&d];A:for(;;){if(l>>>=p=B>>>24,I-=p,!(16&(p=B>>>16&255))){if(0===(64&p)){B=h[(65535&B)+(l&(1<<p)-1)];continue A}e.msg="invalid distance code",w.mode=30;break e}if(Q=65535&B,I<(p&=15)&&(l+=m[A++]<<I,(I+=8)<p&&(l+=m[A++]<<I,I+=8)),(Q+=l&(1<<p)-1)>a){e.msg="invalid distance too far back",w.mode=30;break e}if(l>>>=p,I-=p,Q>(p=r-i)){if((p=Q-p)>g&&w.sane){e.msg="invalid distance too far back",w.mode=30;break e}if(y=0,v=u,0===c){if(y+=s-p,p<E){E-=p;do{b[r++]=u[y++]}while(--p);y=r-Q,v=b}}else if(c<p){if(y+=s+c-p,(p-=c)<E){E-=p;do{b[r++]=u[y++]}while(--p);if(y=0,c<E){E-=p=c;do{b[r++]=u[y++]}while(--p);y=r-Q,v=b}}}else if(y+=c-p,p<E){E-=p;do{b[r++]=u[y++]}while(--p);y=r-Q,v=b}for(;E>2;)b[r++]=v[y++],b[r++]=v[y++],b[r++]=v[y++],E-=3;E&&(b[r++]=v[y++],E>1&&(b[r++]=v[y++]))}else{y=r-Q;do{b[r++]=b[y++],b[r++]=b[y++],b[r++]=b[y++],E-=3}while(E>2);E&&(b[r++]=b[y++],E>1&&(b[r++]=b[y++]))}break}}break}}while(A<n&&r<o);A-=E=I>>3,l&=(1<<(I-=E<<3))-1,e.next_in=A,e.next_out=r,e.avail_in=A<n?n-A+5:5-(A-n),e.avail_out=r<o?o-r+257:257-(r-o),w.hold=l,w.bits=I},st=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),gt=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),ct=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),ut=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),lt=function(e,t,A,n,r,i,o,a){var s,g,c,u,l,I,C,h,f,d=a.bits,B=0,p=0,E=0,Q=0,y=0,v=0,m=0,b=0,w=0,S=0,F=null,R=0,D=new Uint16Array(16),G=new Uint16Array(16),k=null,x=0;for(B=0;B<=15;B++)D[B]=0;for(p=0;p<n;p++)D[t[A+p]]++;for(y=d,Q=15;Q>=1&&0===D[Q];Q--);if(y>Q&&(y=Q),0===Q)return r[i++]=20971520,r[i++]=20971520,a.bits=1,0;for(E=1;E<Q&&0===D[E];E++);for(y<E&&(y=E),b=1,B=1;B<=15;B++)if(b<<=1,(b-=D[B])<0)return-1;if(b>0&&(0===e||1!==Q))return-1;for(G[1]=0,B=1;B<15;B++)G[B+1]=G[B]+D[B];for(p=0;p<n;p++)0!==t[A+p]&&(o[G[t[A+p]]++]=p);if(0===e?(F=k=o,I=19):1===e?(F=st,R-=257,k=gt,x-=257,I=256):(F=ct,k=ut,I=-1),S=0,p=0,B=E,l=i,v=y,m=0,c=-1,u=(w=1<<y)-1,1===e&&w>852||2===e&&w>592)return 1;for(;;){C=B-m,o[p]<I?(h=0,f=o[p]):o[p]>I?(h=k[x+o[p]],f=F[R+o[p]]):(h=96,f=0),s=1<<B-m,E=g=1<<v;do{r[l+(S>>m)+(g-=s)]=C<<24|h<<16|f|0}while(0!==g);for(s=1<<B-1;S&s;)s>>=1;if(0!==s?(S&=s-1,S+=s):S=0,p++,0===--D[B]){if(B===Q)break;B=t[A+o[p]]}if(B>y&&(S&u)!==c){for(0===m&&(m=y),l+=E,b=1<<(v=B-m);v+m<Q&&!((b-=D[v+m])<=0);)v++,b<<=1;if(w+=1<<v,1===e&&w>852||2===e&&w>592)return 1;r[c=S&u]=y<<24|v<<16|l-i|0}}return 0!==S&&(r[l+S]=B-m<<24|64<<16|0),a.bits=y,0},It=K.Z_FINISH,Ct=K.Z_BLOCK,ht=K.Z_TREES,ft=K.Z_OK,dt=K.Z_STREAM_END,Bt=K.Z_NEED_DICT,pt=K.Z_STREAM_ERROR,Et=K.Z_DATA_ERROR,Qt=K.Z_MEM_ERROR,yt=K.Z_BUF_ERROR,vt=K.Z_DEFLATED,mt=function(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)};function bt(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var wt,St,Ft=function(e){if(!e||!e.state)return pt;var t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,ft},Rt=function(e){if(!e||!e.state)return pt;var t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ft(e)},Dt=function(e,t){var A;if(!e||!e.state)return pt;var n=e.state;return t<0?(A=0,t=-t):(A=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?pt:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=A,n.wbits=t,Rt(e))},Gt=function(e,t){if(!e)return pt;var A=new bt;e.state=A,A.window=null;var n=Dt(e,t);return n!==ft&&(e.state=null),n},kt=!0,xt=function(e){if(kt){wt=new Int32Array(512),St=new Int32Array(32);for(var t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(lt(1,e.lens,0,288,wt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;lt(2,e.lens,0,32,St,0,e.work,{bits:5}),kt=!1}e.lencode=wt,e.lenbits=9,e.distcode=St,e.distbits=5},Nt=function(e,t,A,n){var r,i=e.state;return null===i.window&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=new Uint8Array(i.wsize)),n>=i.wsize?(i.window.set(t.subarray(A-i.wsize,A),0),i.wnext=0,i.whave=i.wsize):((r=i.wsize-i.wnext)>n&&(r=n),i.window.set(t.subarray(A-n,A-n+r),i.wnext),(n-=r)?(i.window.set(t.subarray(A-n,A),0),i.wnext=n,i.whave=i.wsize):(i.wnext+=r,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=r))),0},Ut={inflateReset:Rt,inflateReset2:Dt,inflateResetKeep:Ft,inflateInit:function(e){return Gt(e,15)},inflateInit2:Gt,inflate:function(e,t){var A,n,r,i,o,a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w=0,S=new Uint8Array(4),F=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return pt;12===(A=e.state).mode&&(A.mode=13),o=e.next_out,r=e.output,s=e.avail_out,i=e.next_in,n=e.input,a=e.avail_in,g=A.hold,c=A.bits,u=a,l=s,v=ft;e:for(;;)switch(A.mode){case 1:if(0===A.wrap){A.mode=13;break}for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(2&A.wrap&&35615===g){A.check=0,S[0]=255&g,S[1]=g>>>8&255,A.check=P(A.check,S,2,0),g=0,c=0,A.mode=2;break}if(A.flags=0,A.head&&(A.head.done=!1),!(1&A.wrap)||(((255&g)<<8)+(g>>8))%31){e.msg="incorrect header check",A.mode=30;break}if((15&g)!==vt){e.msg="unknown compression method",A.mode=30;break}if(c-=4,y=8+(15&(g>>>=4)),0===A.wbits)A.wbits=y;else if(y>A.wbits){e.msg="invalid window size",A.mode=30;break}A.dmax=1<<A.wbits,e.adler=A.check=1,A.mode=512&g?10:12,g=0,c=0;break;case 2:for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(A.flags=g,(255&A.flags)!==vt){e.msg="unknown compression method",A.mode=30;break}if(57344&A.flags){e.msg="unknown header flags set",A.mode=30;break}A.head&&(A.head.text=g>>8&1),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,A.check=P(A.check,S,2,0)),g=0,c=0,A.mode=3;case 3:for(;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.head&&(A.head.time=g),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,S[2]=g>>>16&255,S[3]=g>>>24&255,A.check=P(A.check,S,4,0)),g=0,c=0,A.mode=4;case 4:for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.head&&(A.head.xflags=255&g,A.head.os=g>>8),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,A.check=P(A.check,S,2,0)),g=0,c=0,A.mode=5;case 5:if(1024&A.flags){for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.length=g,A.head&&(A.head.extra_len=g),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,A.check=P(A.check,S,2,0)),g=0,c=0}else A.head&&(A.head.extra=null);A.mode=6;case 6:if(1024&A.flags&&((I=A.length)>a&&(I=a),I&&(A.head&&(y=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Uint8Array(A.head.extra_len)),A.head.extra.set(n.subarray(i,i+I),y)),512&A.flags&&(A.check=P(A.check,n,I,i)),a-=I,i+=I,A.length-=I),A.length))break e;A.length=0,A.mode=7;case 7:if(2048&A.flags){if(0===a)break e;I=0;do{y=n[i+I++],A.head&&y&&A.length<65536&&(A.head.name+=String.fromCharCode(y))}while(y&&I<a);if(512&A.flags&&(A.check=P(A.check,n,I,i)),a-=I,i+=I,y)break e}else A.head&&(A.head.name=null);A.length=0,A.mode=8;case 8:if(4096&A.flags){if(0===a)break e;I=0;do{y=n[i+I++],A.head&&y&&A.length<65536&&(A.head.comment+=String.fromCharCode(y))}while(y&&I<a);if(512&A.flags&&(A.check=P(A.check,n,I,i)),a-=I,i+=I,y)break e}else A.head&&(A.head.comment=null);A.mode=9;case 9:if(512&A.flags){for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(g!==(65535&A.check)){e.msg="header crc mismatch",A.mode=30;break}g=0,c=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),e.adler=A.check=0,A.mode=12;break;case 10:for(;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}e.adler=A.check=mt(g),g=0,c=0,A.mode=11;case 11:if(0===A.havedict)return e.next_out=o,e.avail_out=s,e.next_in=i,e.avail_in=a,A.hold=g,A.bits=c,Bt;e.adler=A.check=1,A.mode=12;case 12:if(t===Ct||t===ht)break e;case 13:if(A.last){g>>>=7&c,c-=7&c,A.mode=27;break}for(;c<3;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}switch(A.last=1&g,c-=1,3&(g>>>=1)){case 0:A.mode=14;break;case 1:if(xt(A),A.mode=20,t===ht){g>>>=2,c-=2;break e}break;case 2:A.mode=17;break;case 3:e.msg="invalid block type",A.mode=30}g>>>=2,c-=2;break;case 14:for(g>>>=7&c,c-=7&c;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if((65535&g)!==(g>>>16^65535)){e.msg="invalid stored block lengths",A.mode=30;break}if(A.length=65535&g,g=0,c=0,A.mode=15,t===ht)break e;case 15:A.mode=16;case 16:if(I=A.length){if(I>a&&(I=a),I>s&&(I=s),0===I)break e;r.set(n.subarray(i,i+I),o),a-=I,i+=I,s-=I,o+=I,A.length-=I;break}A.mode=12;break;case 17:for(;c<14;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(A.nlen=257+(31&g),g>>>=5,c-=5,A.ndist=1+(31&g),g>>>=5,c-=5,A.ncode=4+(15&g),g>>>=4,c-=4,A.nlen>286||A.ndist>30){e.msg="too many length or distance symbols",A.mode=30;break}A.have=0,A.mode=18;case 18:for(;A.have<A.ncode;){for(;c<3;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.lens[F[A.have++]]=7&g,g>>>=3,c-=3}for(;A.have<19;)A.lens[F[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,m={bits:A.lenbits},v=lt(0,A.lens,0,19,A.lencode,0,A.work,m),A.lenbits=m.bits,v){e.msg="invalid code lengths set",A.mode=30;break}A.have=0,A.mode=19;case 19:for(;A.have<A.nlen+A.ndist;){for(;d=(w=A.lencode[g&(1<<A.lenbits)-1])>>>16&255,B=65535&w,!((f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(B<16)g>>>=f,c-=f,A.lens[A.have++]=B;else{if(16===B){for(b=f+2;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(g>>>=f,c-=f,0===A.have){e.msg="invalid bit length repeat",A.mode=30;break}y=A.lens[A.have-1],I=3+(3&g),g>>>=2,c-=2}else if(17===B){for(b=f+3;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}c-=f,y=0,I=3+(7&(g>>>=f)),g>>>=3,c-=3}else{for(b=f+7;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}c-=f,y=0,I=11+(127&(g>>>=f)),g>>>=7,c-=7}if(A.have+I>A.nlen+A.ndist){e.msg="invalid bit length repeat",A.mode=30;break}for(;I--;)A.lens[A.have++]=y}}if(30===A.mode)break;if(0===A.lens[256]){e.msg="invalid code -- missing end-of-block",A.mode=30;break}if(A.lenbits=9,m={bits:A.lenbits},v=lt(1,A.lens,0,A.nlen,A.lencode,0,A.work,m),A.lenbits=m.bits,v){e.msg="invalid literal/lengths set",A.mode=30;break}if(A.distbits=6,A.distcode=A.distdyn,m={bits:A.distbits},v=lt(2,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,m),A.distbits=m.bits,v){e.msg="invalid distances set",A.mode=30;break}if(A.mode=20,t===ht)break e;case 20:A.mode=21;case 21:if(a>=6&&s>=258){e.next_out=o,e.avail_out=s,e.next_in=i,e.avail_in=a,A.hold=g,A.bits=c,at(e,l),o=e.next_out,r=e.output,s=e.avail_out,i=e.next_in,n=e.input,a=e.avail_in,g=A.hold,c=A.bits,12===A.mode&&(A.back=-1);break}for(A.back=0;d=(w=A.lencode[g&(1<<A.lenbits)-1])>>>16&255,B=65535&w,!((f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(d&&0===(240&d)){for(p=f,E=d,Q=B;d=(w=A.lencode[Q+((g&(1<<p+E)-1)>>p)])>>>16&255,B=65535&w,!(p+(f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}g>>>=p,c-=p,A.back+=p}if(g>>>=f,c-=f,A.back+=f,A.length=B,0===d){A.mode=26;break}if(32&d){A.back=-1,A.mode=12;break}if(64&d){e.msg="invalid literal/length code",A.mode=30;break}A.extra=15&d,A.mode=22;case 22:if(A.extra){for(b=A.extra;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.length+=g&(1<<A.extra)-1,g>>>=A.extra,c-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=23;case 23:for(;d=(w=A.distcode[g&(1<<A.distbits)-1])>>>16&255,B=65535&w,!((f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(0===(240&d)){for(p=f,E=d,Q=B;d=(w=A.distcode[Q+((g&(1<<p+E)-1)>>p)])>>>16&255,B=65535&w,!(p+(f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}g>>>=p,c-=p,A.back+=p}if(g>>>=f,c-=f,A.back+=f,64&d){e.msg="invalid distance code",A.mode=30;break}A.offset=B,A.extra=15&d,A.mode=24;case 24:if(A.extra){for(b=A.extra;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.offset+=g&(1<<A.extra)-1,g>>>=A.extra,c-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){e.msg="invalid distance too far back",A.mode=30;break}A.mode=25;case 25:if(0===s)break e;if(I=l-s,A.offset>I){if((I=A.offset-I)>A.whave&&A.sane){e.msg="invalid distance too far back",A.mode=30;break}I>A.wnext?(I-=A.wnext,C=A.wsize-I):C=A.wnext-I,I>A.length&&(I=A.length),h=A.window}else h=r,C=o-A.offset,I=A.length;I>s&&(I=s),s-=I,A.length-=I;do{r[o++]=h[C++]}while(--I);0===A.length&&(A.mode=21);break;case 26:if(0===s)break e;r[o++]=A.length,s--,A.mode=21;break;case 27:if(A.wrap){for(;c<32;){if(0===a)break e;a--,g|=n[i++]<<c,c+=8}if(l-=s,e.total_out+=l,A.total+=l,l&&(e.adler=A.check=A.flags?P(A.check,r,l,o-l):J(A.check,r,l,o-l)),l=s,(A.flags?g:mt(g))!==A.check){e.msg="incorrect data check",A.mode=30;break}g=0,c=0}A.mode=28;case 28:if(A.wrap&&A.flags){for(;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(g!==(4294967295&A.total)){e.msg="incorrect length check",A.mode=30;break}g=0,c=0}A.mode=29;case 29:v=dt;break e;case 30:v=Et;break e;case 31:return Qt;case 32:default:return pt}return e.next_out=o,e.avail_out=s,e.next_in=i,e.avail_in=a,A.hold=g,A.bits=c,(A.wsize||l!==e.avail_out&&A.mode<30&&(A.mode<27||t!==It))&&Nt(e,e.output,e.next_out,l-e.avail_out),u-=e.avail_in,l-=e.avail_out,e.total_in+=u,e.total_out+=l,A.total+=l,A.wrap&&l&&(e.adler=A.check=A.flags?P(A.check,r,l,e.next_out-l):J(A.check,r,l,e.next_out-l)),e.data_type=A.bits+(A.last?64:0)+(12===A.mode?128:0)+(20===A.mode||15===A.mode?256:0),(0===u&&0===l||t===It)&&v===ft&&(v=yt),v},inflateEnd:function(e){if(!e||!e.state)return pt;var t=e.state;return t.window&&(t.window=null),e.state=null,ft},inflateGetHeader:function(e,t){if(!e||!e.state)return pt;var A=e.state;return 0===(2&A.wrap)?pt:(A.head=t,t.done=!1,ft)},inflateSetDictionary:function(e,t){var A,n=t.length;return e&&e.state?0!==(A=e.state).wrap&&11!==A.mode?pt:11===A.mode&&J(1,t,n,0)!==A.check?Et:Nt(e,t,n,n)?(A.mode=31,Qt):(A.havedict=1,ft):pt},inflateInfo:"pako inflate (from Nodeca project)"};var _t=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1},Mt=Object.prototype.toString,Ot=K.Z_NO_FLUSH,Lt=K.Z_FINISH,Tt=K.Z_OK,Zt=K.Z_STREAM_END,Ht=K.Z_NEED_DICT,Yt=K.Z_STREAM_ERROR,Jt=K.Z_DATA_ERROR,jt=K.Z_MEM_ERROR;function Pt(e){this.options=Le({chunkSize:65536,windowBits:15,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0===(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ve,this.strm.avail_out=0;var A=Ut.inflateInit2(this.strm,t.windowBits);if(A!==Tt)throw new Error(V[A]);if(this.header=new _t,Ut.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"===typeof t.dictionary?t.dictionary=Je(t.dictionary):"[object ArrayBuffer]"===Mt.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(A=Ut.inflateSetDictionary(this.strm,t.dictionary))!==Tt))throw new Error(V[A])}function Vt(e,t){var A=new Pt(t);if(A.push(e),A.err)throw A.msg||V[A.err];return A.result}Pt.prototype.push=function(e,t){var A,n,r,i=this.strm,o=this.options.chunkSize,a=this.options.dictionary;if(this.ended)return!1;for(n=t===~~t?t:!0===t?Lt:Ot,"[object ArrayBuffer]"===Mt.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(o),i.next_out=0,i.avail_out=o),(A=Ut.inflate(i,n))===Ht&&a&&((A=Ut.inflateSetDictionary(i,a))===Tt?A=Ut.inflate(i,n):A===Jt&&(A=Ht));i.avail_in>0&&A===Zt&&i.state.wrap>0&&0!==e[i.next_in];)Ut.inflateReset(i),A=Ut.inflate(i,n);switch(A){case Yt:case Jt:case Ht:case jt:return this.onEnd(A),this.ended=!0,!1}if(r=i.avail_out,i.next_out&&(0===i.avail_out||A===Zt))if("string"===this.options.to){var s=Pe(i.output,i.next_out),g=i.next_out-s,c=je(i.output,s);i.next_out=g,i.avail_out=o-g,g&&i.output.set(i.output.subarray(s,s+g),0),this.onData(c)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(A!==Tt||0!==r){if(A===Zt)return A=Ut.inflateEnd(this.strm),this.onEnd(A),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Pt.prototype.onData=function(e){this.chunks.push(e)},Pt.prototype.onEnd=function(e){e===Tt&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Te(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Kt,Wt,Xt={Inflate:Pt,inflate:Vt,inflateRaw:function(e,t){return(t=t||{}).raw=!0,Vt(e,t)},ungzip:Vt,constants:K},qt={Deflate:ot.Deflate,deflate:ot.deflate,deflateRaw:ot.deflateRaw,gzip:ot.gzip,Inflate:Xt.Inflate,inflate:Xt.inflate,inflateRaw:Xt.inflateRaw,ungzip:Xt.ungzip,constants:K},zt=((Kt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(Object(s.a)(this,e),t<0||t>9)throw new Error("Invalid gzip compression level, it should be between 0 and 9");this.level=t}return Object(g.a)(e,[{key:"encode",value:function(e){return qt.gzip(e,{level:this.level})}},{key:"decode",value:function(e,t){var A=qt.ungzip(e);return void 0!==t?(t.set(A),t):A}}],[{key:"fromConfig",value:function(t){return new e(t.level)}}]),e}()).codecId="gzip",Kt),$t=((Wt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(Object(s.a)(this,e),t<-1||t>9)throw new Error("Invalid zlib compression level, it should be between -1 and 9");this.level=t}return Object(g.a)(e,[{key:"encode",value:function(e){return qt.deflate(e,{level:this.level})}},{key:"decode",value:function(e,t){var A=qt.inflate(e);return void 0!==t?(t.set(A),t):A}}],[{key:"fromConfig",value:function(t){return new e(t.level)}}]),e}()).codecId="zlib",Wt),eA="undefined"!==typeof e&&null!=e.versions&&null!=e.versions.node?function(e){return new Uint8Array(n.from(e,"base64"))}:function(){for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:4*t-205]=t;return function(t){for(var A=t.length,n=new Uint8Array(3*(A-("="==t[A-1])-("="==t[A-2]))/4|0),r=0,i=0;r<A;){var o=e[t.charCodeAt(r++)],a=e[t.charCodeAt(r++)],s=e[t.charCodeAt(r++)],g=e[t.charCodeAt(r++)];n[i++]=o<<2|a>>4,n[i++]=a<<4|s>>2,n[i++]=s<<6|g}return n}}();function tA(e,t){return e({noInitialRun:!0,wasmBinary:eA(t)})}var AA,nA,rA=("undefined"!==typeof document&&document.currentScript&&document.currentScript.src,function(e){var t,A,n;e=e||{},t||(t="undefined"!==typeof e?e:{}),t.ready=new Promise((function(e,t){A=e,n=t}));var r,i={};for(r in t)t.hasOwnProperty(r)&&(i[r]=t[r]);var o,a="./this.program",s=t.print||console.log.bind(console),g=t.printErr||console.warn.bind(console);for(r in i)i.hasOwnProperty(r)&&(t[r]=i[r]);i=null,t.thisProgram&&(a=t.thisProgram),t.wasmBinary&&(o=t.wasmBinary),t.noExitRuntime&&t.noExitRuntime,"object"!==typeof WebAssembly&&T("no native wasm support detected");var c,u=!1,l="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function I(e,t,A){var n=t+A;for(A=t;e[A]&&!(A>=n);)++A;if(16<A-t&&e.subarray&&l)return l.decode(e.subarray(t,A));for(n="";t<A;){var r=e[t++];if(128&r){var i=63&e[t++];if(192==(224&r))n+=String.fromCharCode((31&r)<<6|i);else{var o=63&e[t++];65536>(r=224==(240&r)?(15&r)<<12|i<<6|o:(7&r)<<18|i<<12|o<<6|63&e[t++])?n+=String.fromCharCode(r):(r-=65536,n+=String.fromCharCode(55296|r>>10,56320|1023&r))}}else n+=String.fromCharCode(r)}return n}var C,h,f,d,B,p,E,Q,y,v="undefined"!==typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function m(e,t){for(var A=e>>1,n=A+t/2;!(A>=n)&&B[A];)++A;if(32<(A<<=1)-e&&v)return v.decode(f.subarray(e,A));for(A=0,n="";;){var r=d[e+2*A>>1];if(0==r||A==t/2)return n;++A,n+=String.fromCharCode(r)}}function b(e,t,A){if(void 0===A&&(A=2147483647),2>A)return 0;var n=t;A=(A-=2)<2*e.length?A/2:e.length;for(var r=0;r<A;++r)d[t>>1]=e.charCodeAt(r),t+=2;return d[t>>1]=0,t-n}function w(e){return 2*e.length}function S(e,t){for(var A=0,n="";!(A>=t/4);){var r=p[e+4*A>>2];if(0==r)break;++A,65536<=r?(r-=65536,n+=String.fromCharCode(55296|r>>10,56320|1023&r)):n+=String.fromCharCode(r)}return n}function F(e,t,A){if(void 0===A&&(A=2147483647),4>A)return 0;var n=t;A=n+A-4;for(var r=0;r<e.length;++r){var i=e.charCodeAt(r);if(55296<=i&&57343>=i&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++r)),p[t>>2]=i,(t+=4)+4>A)break}return p[t>>2]=0,t-n}function R(e){for(var t=0,A=0;A<e.length;++A){var n=e.charCodeAt(A);55296<=n&&57343>=n&&++A,t+=4}return t}function D(e){C=e,t.HEAP8=h=new Int8Array(e),t.HEAP16=d=new Int16Array(e),t.HEAP32=p=new Int32Array(e),t.HEAPU8=f=new Uint8Array(e),t.HEAPU16=B=new Uint16Array(e),t.HEAPU32=E=new Uint32Array(e),t.HEAPF32=Q=new Float32Array(e),t.HEAPF64=y=new Float64Array(e)}var G=t.INITIAL_MEMORY||16777216;(c=t.wasmMemory?t.wasmMemory:new WebAssembly.Memory({initial:G/65536,maximum:32768}))&&(C=c.buffer),G=C.byteLength,D(C);var k,x=[],N=[],U=[],_=[];function M(){var e=t.preRun.shift();x.unshift(e)}var O=0,L=null;function T(e){throw t.onAbort&&t.onAbort(e),g(e),u=!0,e=new WebAssembly.RuntimeError("abort("+e+"). Build with -s ASSERTIONS=1 for more info."),n(e),e}function Z(e){var t=Y;return String.prototype.startsWith?t.startsWith(e):0===t.indexOf(e)}function H(){return Z("data:application/octet-stream;base64,")}t.preloadedImages={},t.preloadedAudios={};var Y="blosc_codec.wasm";if(!H()){var J=Y;Y=t.locateFile?t.locateFile(J,""):""+J}function j(){try{if(o)return new Uint8Array(o);throw"both async and sync fetching of the wasm failed"}catch(e){T(e)}}function P(e){for(;0<e.length;){var A=e.shift();if("function"==typeof A)A(t);else{var n=A.T;"number"===typeof n?void 0===A.O?k.get(n)():k.get(n)(A.O):n(void 0===A.O?null:A.O)}}}function V(e){this.N=e-16,this.$=function(e){p[this.N+8>>2]=e},this.X=function(e){p[this.N+0>>2]=e},this.Y=function(){p[this.N+4>>2]=0},this.W=function(){h[this.N+12>>0]=0},this.Z=function(){h[this.N+13>>0]=0},this.V=function(e,t){this.$(e),this.X(t),this.Y(),this.W(),this.Z()}}function K(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var W=void 0;function X(e){for(var t="";f[e];)t+=W[f[e++]];return t}var q={},z={},$={};function ee(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&57>=t?"_"+e:e}function te(e,t){return e=ee(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function Ae(e){var t=Error,A=te(e,(function(t){this.name=e,this.message=t,void 0!==(t=Error(t).stack)&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return A.prototype=Object.create(t.prototype),A.prototype.constructor=A,A.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},A}var ne=void 0;function re(e){throw new ne(e)}var ie=void 0;function oe(e,t,A){if(A=A||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||re('type "'+n+'" must have a positive integer typeid pointer'),z.hasOwnProperty(e)){if(A.U)return;re("Cannot register type '"+n+"' twice")}z[e]=t,delete $[e],q.hasOwnProperty(e)&&(t=q[e],delete q[e],t.forEach((function(e){e()})))}var ae=[],se=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function ge(e){4<e&&0===--se[e].P&&(se[e]=void 0,ae.push(e))}function ce(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=ae.length?ae.pop():se.length;return se[t]={P:1,value:e},t}}function ue(e){return this.fromWireType(E[e>>2])}function le(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function Ie(e,t){switch(t){case 2:return function(e){return this.fromWireType(Q[e>>2])};case 3:return function(e){return this.fromWireType(y[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function Ce(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function he(e,A,n){t.hasOwnProperty(e)?((void 0===n||void 0!==t[e].L&&void 0!==t[e].L[n])&&re("Cannot register public name '"+e+"' twice"),function(e,A){var n=t;if(void 0===n[e].L){var r=n[e];n[e]=function(){return n[e].L.hasOwnProperty(arguments.length)||re("Function '"+A+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+n[e].L+")!"),n[e].L[arguments.length].apply(this,arguments)},n[e].L=[],n[e].L[r.S]=r}}(e,e),t.hasOwnProperty(n)&&re("Cannot register multiple overloads of a function with the same number of arguments ("+n+")!"),t[e].L[n]=A):(t[e]=A,void 0!==n&&(t[e].ba=n))}function fe(e,A){var n=-1!=(e=X(e)).indexOf("j")?function(e,A){0<=e.indexOf("j")||T("Assertion failed: getDynCaller should only be called with i64 sigs");var n=[];return function(){n.length=arguments.length;for(var r=0;r<arguments.length;r++)n[r]=arguments[r];return-1!=e.indexOf("j")?n&&n.length?t["dynCall_"+e].apply(null,[A].concat(n)):t["dynCall_"+e].call(null,A):k.get(A).apply(null,n)}}(e,A):k.get(A);return"function"!==typeof n&&re("unknown function pointer with signature "+e+": "+A),n}var de=void 0;function Be(e){var t=X(e=Ge(e));return De(e),t}function pe(e,t,A){switch(t){case 0:return A?function(e){return h[e]}:function(e){return f[e]};case 1:return A?function(e){return d[e>>1]}:function(e){return B[e>>1]};case 2:return A?function(e){return p[e>>2]}:function(e){return E[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var Ee={};function Qe(){if(!ye){var e,t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:a||"./this.program"};for(e in Ee)t[e]=Ee[e];var A=[];for(e in t)A.push(e+"="+t[e]);ye=A}return ye}for(var ye,ve=[null,[],[]],me=Array(256),be=0;256>be;++be)me[be]=String.fromCharCode(be);W=me,ne=t.BindingError=Ae("BindingError"),ie=t.InternalError=Ae("InternalError"),t.count_emval_handles=function(){for(var e=0,t=5;t<se.length;++t)void 0!==se[t]&&++e;return e},t.get_first_emval=function(){for(var e=5;e<se.length;++e)if(void 0!==se[e])return se[e];return null},de=t.UnboundTypeError=Ae("UnboundTypeError"),N.push({T:function(){Fe()}});var we={p:function(e){return Re(e+16)+16},o:function(e,t,A){throw new V(e).V(t,A),e},z:function(e,t,A,n,r){var i=K(A);oe(e,{name:t=X(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:r},argPackAdvance:8,readValueFromPointer:function(e){if(1===A)var n=h;else if(2===A)n=d;else{if(4!==A)throw new TypeError("Unknown boolean type size: "+t);n=p}return this.fromWireType(n[e>>i])},M:null})},y:function(e,t){oe(e,{name:t=X(t),fromWireType:function(e){var t=se[e].value;return ge(e),t},toWireType:function(e,t){return ce(t)},argPackAdvance:8,readValueFromPointer:ue,M:null})},h:function(e,t,A){A=K(A),oe(e,{name:t=X(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!==typeof t&&"boolean"!==typeof t)throw new TypeError('Cannot convert "'+le(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:Ie(t,A),M:null})},e:function(e,A,n,r,i,o){var a=function(e,t){for(var A=[],n=0;n<e;n++)A.push(p[(t>>2)+n]);return A}(A,n);e=X(e),i=fe(r,i),he(e,(function(){!function(e,t){var A=[],n={};throw t.forEach((function e(t){n[t]||z[t]||($[t]?$[t].forEach(e):(A.push(t),n[t]=!0))})),new de(e+": "+A.map(Be).join([", "]))}("Cannot call "+e+" due to unbound types",a)}),A-1),function(e,t){function A(e){if((e=t(e)).length!==n.length)throw new ie("Mismatched type converter count");for(var A=0;A<n.length;++A)oe(n[A],e[A])}var n=[];n.forEach((function(t){$[t]=e}));var r=Array(e.length),i=[],o=0;e.forEach((function(e,t){z.hasOwnProperty(e)?r[t]=z[e]:(i.push(e),q.hasOwnProperty(e)||(q[e]=[]),q[e].push((function(){r[t]=z[e],++o===i.length&&A(r)})))})),0===i.length&&A(r)}(a,(function(n){var r=e,a=e;n=[n[0],null].concat(n.slice(1));var s=i,g=n.length;2>g&&re("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var c=null!==n[1]&&!1,u=!1,l=1;l<n.length;++l)if(null!==n[l]&&void 0===n[l].M){u=!0;break}var I="void"!==n[0].name,C="",h="";for(l=0;l<g-2;++l)C+=(0!==l?", ":"")+"arg"+l,h+=(0!==l?", ":"")+"arg"+l+"Wired";a="return function "+ee(a)+"("+C+") {\nif (arguments.length !== "+(g-2)+") {\nthrowBindingError('function "+a+" called with ' + arguments.length + ' arguments, expected "+(g-2)+" args!');\n}\n",u&&(a+="var destructors = [];\n");var f=u?"destructors":"null";for(C="throwBindingError invoker fn runDestructors retType classParam".split(" "),s=[re,s,o,Ce,n[0],n[1]],c&&(a+="var thisWired = classParam.toWireType("+f+", this);\n"),l=0;l<g-2;++l)a+="var arg"+l+"Wired = argType"+l+".toWireType("+f+", arg"+l+"); // "+n[l+2].name+"\n",C.push("argType"+l),s.push(n[l+2]);if(c&&(h="thisWired"+(0<h.length?", ":"")+h),a+=(I?"var rv = ":"")+"invoker(fn"+(0<h.length?", ":"")+h+");\n",u)a+="runDestructors(destructors);\n";else for(l=c?1:2;l<n.length;++l)g=1===l?"thisWired":"arg"+(l-2)+"Wired",null!==n[l].M&&(a+=g+"_dtor("+g+"); // "+n[l].name+"\n",C.push(g+"_dtor"),s.push(n[l].M));if(I&&(a+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),C.push(a+"}\n"),n=function(e){var t=Function;if(!(t instanceof Function))throw new TypeError("new_ called with constructor type "+typeof t+" which is not a function");var A=te(t.name||"unknownFunctionName",(function(){}));return A.prototype=t.prototype,A=new A,(e=t.apply(A,e))instanceof Object?e:A}(C).apply(null,s),l=A-1,!t.hasOwnProperty(r))throw new ie("Replacing nonexistant public symbol");return void 0!==t[r].L&&void 0!==l?t[r].L[l]=n:(t[r]=n,t[r].S=l),[]}))},c:function(e,t,A,n,r){function i(e){return e}t=X(t),-1===r&&(r=4294967295);var o=K(A);if(0===n){var a=32-8*A;i=function(e){return e<<a>>>a}}var s=-1!=t.indexOf("unsigned");oe(e,{name:t,fromWireType:i,toWireType:function(e,A){if("number"!==typeof A&&"boolean"!==typeof A)throw new TypeError('Cannot convert "'+le(A)+'" to '+this.name);if(A<n||A>r)throw new TypeError('Passing a number "'+le(A)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+n+", "+r+"]!");return s?A>>>0:0|A},argPackAdvance:8,readValueFromPointer:pe(t,o,0!==n),M:null})},b:function(e,t,A){function n(e){var t=E;return new r(C,t[1+(e>>=2)],t[e])}var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];oe(e,{name:A=X(A),fromWireType:n,argPackAdvance:8,readValueFromPointer:n},{U:!0})},i:function(e,t){var A="std::string"===(t=X(t));oe(e,{name:t,fromWireType:function(e){var t=E[e>>2];if(A)for(var n=e+4,r=0;r<=t;++r){var i=e+4+r;if(r==t||0==f[i]){if(n=n?I(f,n,i-n):"",void 0===o)var o=n;else o+=String.fromCharCode(0),o+=n;n=i+1}}else{for(o=Array(t),r=0;r<t;++r)o[r]=String.fromCharCode(f[e+4+r]);o=o.join("")}return De(e),o},toWireType:function(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var n="string"===typeof t;n||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||re("Cannot pass non-string to std::string");var r=(A&&n?function(){for(var e=0,A=0;A<t.length;++A){var n=t.charCodeAt(A);55296<=n&&57343>=n&&(n=65536+((1023&n)<<10)|1023&t.charCodeAt(++A)),127>=n?++e:e=2047>=n?e+2:65535>=n?e+3:e+4}return e}:function(){return t.length})(),i=Re(4+r+1);if(E[i>>2]=r,A&&n)!function(e,t,A){var n=f;if(0<A){A=t+A-1;for(var r=0;r<e.length;++r){var i=e.charCodeAt(r);if(55296<=i&&57343>=i&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++r)),127>=i){if(t>=A)break;n[t++]=i}else{if(2047>=i){if(t+1>=A)break;n[t++]=192|i>>6}else{if(65535>=i){if(t+2>=A)break;n[t++]=224|i>>12}else{if(t+3>=A)break;n[t++]=240|i>>18,n[t++]=128|i>>12&63}n[t++]=128|i>>6&63}n[t++]=128|63&i}}n[t]=0}}(t,i+4,r+1);else if(n)for(n=0;n<r;++n){var o=t.charCodeAt(n);255<o&&(De(i),re("String has UTF-16 code units that do not fit in 8 bits")),f[i+4+n]=o}else for(n=0;n<r;++n)f[i+4+n]=t[n];return null!==e&&e.push(De,i),i},argPackAdvance:8,readValueFromPointer:ue,M:function(e){De(e)}})},d:function(e,t,A){if(A=X(A),2===t)var n=m,r=b,i=w,o=function(){return B},a=1;else 4===t&&(n=S,r=F,i=R,o=function(){return E},a=2);oe(e,{name:A,fromWireType:function(e){for(var A,r=E[e>>2],i=o(),s=e+4,g=0;g<=r;++g){var c=e+4+g*t;g!=r&&0!=i[c>>a]||(s=n(s,c-s),void 0===A?A=s:(A+=String.fromCharCode(0),A+=s),s=c+t)}return De(e),A},toWireType:function(e,n){"string"!==typeof n&&re("Cannot pass non-string to C++ string type "+A);var o=i(n),s=Re(4+o+t);return E[s>>2]=o>>a,r(n,s+4,o+t),null!==e&&e.push(De,s),s},argPackAdvance:8,readValueFromPointer:ue,M:function(e){De(e)}})},A:function(e,t){oe(e,{aa:!0,name:t=X(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},n:ge,x:function(e){4<e&&(se[e].P+=1)},C:function(e,t){var A=z[e];return void 0===A&&re("_emval_take_value has unknown type "+Be(e)),ce(e=A.readValueFromPointer(t))},t:function(){T()},r:function(e,t,A){f.copyWithin(e,t,t+A)},s:function(e){e>>>=0;var t=f.length;if(2147483648<e)return!1;for(var A=1;4>=A;A*=2){var n=t*(1+.2/A);n=Math.min(n,e+100663296),0<(n=Math.max(16777216,e,n))%65536&&(n+=65536-n%65536);e:{try{c.grow(Math.min(2147483648,n)-C.byteLength+65535>>>16),D(c.buffer);var r=1;break e}catch(i){}r=void 0}if(r)return!0}return!1},u:function(e,t){var A=0;return Qe().forEach((function(n,r){var i=t+A;for(r=p[e+4*r>>2]=i,i=0;i<n.length;++i)h[r++>>0]=n.charCodeAt(i);h[r>>0]=0,A+=n.length+1})),0},v:function(e,t){var A=Qe();p[e>>2]=A.length;var n=0;return A.forEach((function(e){n+=e.length+1})),p[t>>2]=n,0},w:function(){return 0},q:function(){},g:function(e,t,A,n){for(var r=0,i=0;i<A;i++){for(var o=p[t+8*i>>2],a=p[t+(8*i+4)>>2],c=0;c<a;c++){var u=f[o+c],l=ve[e];0===u||10===u?((1===e?s:g)(I(l,0)),l.length=0):l.push(u)}r+=a}return p[n>>2]=r,0},a:c,l:function(){return 0},k:function(){return 0},j:function(){},B:function(){return 6},m:function(){},f:function(){}};!function(){function e(e){t.asm=e.exports,k=t.asm.D,O--,t.monitorRunDependencies&&t.monitorRunDependencies(O),0==O&&L&&(e=L,L=null,e())}function A(t){e(t.instance)}function r(e){return Promise.resolve().then(j).then((function(e){return WebAssembly.instantiate(e,i)})).then(e,(function(e){g("failed to asynchronously prepare wasm: "+e),T(e)}))}var i={a:we};if(O++,t.monitorRunDependencies&&t.monitorRunDependencies(O),t.instantiateWasm)try{return t.instantiateWasm(i,e)}catch(a){return g("Module.instantiateWasm callback failed with error: "+a),!1}(o||"function"!==typeof WebAssembly.instantiateStreaming||H()||Z("file://")||"function"!==typeof fetch?r(A):fetch(Y,{credentials:"same-origin"}).then((function(e){return WebAssembly.instantiateStreaming(e,i).then(A,(function(e){return g("wasm streaming compile failed: "+e),g("falling back to ArrayBuffer instantiation"),r(A)}))}))).catch(n)}();var Se,Fe=t.___wasm_call_ctors=function(){return(Fe=t.___wasm_call_ctors=t.asm.E).apply(null,arguments)},Re=t._malloc=function(){return(Re=t._malloc=t.asm.F).apply(null,arguments)},De=t._free=function(){return(De=t._free=t.asm.G).apply(null,arguments)},Ge=t.___getTypeName=function(){return(Ge=t.___getTypeName=t.asm.H).apply(null,arguments)};function ke(){function e(){if(!Se&&(Se=!0,t.calledRun=!0,!u)){if(P(N),P(U),A(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;){var e=t.postRun.shift();_.unshift(e)}P(_)}}if(!(0<O)){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)M();P(x),0<O||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),e()}),1)):e())}}if(t.___embind_register_native_and_builtin_types=function(){return(t.___embind_register_native_and_builtin_types=t.asm.I).apply(null,arguments)},t.dynCall_jiiiii=function(){return(t.dynCall_jiiiii=t.asm.J).apply(null,arguments)},t.dynCall_jiji=function(){return(t.dynCall_jiji=t.asm.K).apply(null,arguments)},L=function e(){Se||ke(),Se||(L=e)},t.run=ke,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();return ke(),e.ready}),iA="AGFzbQEAAAABwAImYAF/AX9gA39/fwF/YAV/f39/fwF/YAJ/fwF/YAJ/fwBgAX8AYAN/f38AYAR/f39/AX9gBH9/f38AYAAAYAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAd/f39/f39/AX9gBH9/f38BfmAFf39/f38BfmAIf39/f39/f38Bf2AJf39/f39/f39/AX9gAn5/AX9gC39/f39/f39/f39/AX9gA39+fwF+YAN/f34AYAN/f34Bf2ADfn9/AX9gAn5+AX5gCH9/f39/f39/AGAJf39/f39/f39/AGAFf35/f38AYAABf2ANf39/f39/f39/f39/fwF/YA9/f39/f39/f39/f39/f38Bf2AFf39/fn8Bf2AGf3x/f39/AX9gAX8BfmACf38BfmAHf35/f39/fwF+YAF+AX5gBH5/f34BfgK0AR0BYQFiAAYBYQFjAAsBYQFkAAYBYQFlAAwBYQFmAAUBYQFnAAcBYQFoAAYBYQFpAAQBYQFqAAMBYQFrAAABYQFsAAABYQFtAAMBYQFuAAUBYQFvAAYBYQFwAAABYQFxAAIBYQFyAAEBYQFzAAABYQF0AAkBYQF1AAMBYQF2AAMBYQF3AAABYQF4AAUBYQF5AAQBYQF6AAsBYQFBAAQBYQFCAAcBYQFDAAMBYQFhAgGAAoCAAgOtBKsEBAEBAwIACAAAAAQHAQEBAAIBAAQDAQMBBAEFAwUFAAYAAwAIAgIDAQgBAwYBCwEBAAQYBAEEBwoGAwMLBwgBBggDCwUDAwMGCAEGBAYABwIGAAABAAIEBAYEBQMDAAsABgwDAAANBgIYAwkAAQwGBggAAgAAAAUQHQAEAQMbBwcHBwMDBh4TBAgBAgECCgcGCgYEAAQAARARAwAIAAYDBgAFBQUFBQUJCwUGAQAFBQICAgcHAwQEAAcSARIXJQQGAwMDAAUEAQABBQUDAAMGCgAFBQMBHwUDAwUFAREDBwoEAAUBAwcKCiEGBQEABgYGBQUIAxMNAAADAAkBBwcHBwcHBwcAAQgGBwMRAgICAgYCCAoCAgcCCAAFBAUFAAMAAAIKBBQACQwMCwMLCAgICwwAAQEFAAUABQkDAAMSEhcGAQAUAAAJCQkJBgAJCQkJCQkJCQkJCQkJDQ0ABgcBAQcHAgEBAgEEAwoABAcFBRwKCgoFAgoCAgMaGQUE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BCAGanQgAWohASACIARHIQwgBEEBaiEEIAwNAAsLIA1BAWoiDSACayIBIAcgAWtBAWoiCEkEQCAKQQJJIQYDQEEBIQQgBkUEQANAIARBAnQiCiADIAFBNGxqaiADIApqKAIAIAF2NgIAIAIgBEchCiAEQQFqIQQgCg0ACwsgAUEBaiIBIAhJDQALCyAAQQRqIAcgCyAJIANBpAVqIAMgAiANEJYDIAVBAToABSAFIAc6AAYgACAFKAIENgIACyAQIQQLIAVBEGokACAEC+ACAQl/IwBBEGsiBCQAIARBADYCDCAEQQA2AggCQCADQUBrIgkgAyAEQQhqIARBDGogASACEPsBIggQIQ0AIARBBGogACgCABA0QQEhASAEKAIMIgUgBC0ABEEBak0EQEEAIQIgBEEAOgAFIAQgBToABiAAIAQoAgQ2AgAgBUEBakEBSwRAA0AgAyABQQJ0aiIGKAIAIQcgBiACNgIAIAcgAUF/anQgAmohAiABIAVGIQYgAUEBaiEBIAZFDQALCyAEKAIIIgdFDQEgAEEEaiEKIAVBAWohC0EAIQADQCADIAAgCWotAAAiBUECdGoiBigCACIBIAFBASAFdEEBdSIMaiICSQRAIAsgBWshBQNAIAogAUEBdGoiAiAFOgABIAIgADoAACABQQFqIgEgBigCACAMaiICSQ0ACwsgBiACNgIAIABBAWoiACAHRw0ACwwBC0FUIQgLIARBEGokACAICxQAIAAoAABBgPqerQNsQSAgAWt2CygAAkACQAJAIAAoAowBQX9qDgIAAQILIAAgARDCAw8LIAAgARDHAwsLOgEBfyABIAAoAgRrIgEgACgCGCICQYAIaksEQCAAIAEgASACa0GAeGoiAEGABCAAQYAESRtrNgIYCwsVACAAEJEBBEAgACgCBA8LIAAtAAsLRQEBfwJAIAIgA00gACABTXINAANAIABBf2oiAC0AACACQX9qIgItAABHDQEgBEEBaiEEIAIgA00NASAAIAFLDQALCyAECwwAIABBICABa62IpwsQACAAIAEgAigCCHRBA3RqCxIAIABBwAAgAWutiKdBACABGwsvAEEgIAFrIgEgAkkEQCAAp0F/IAJ0QX9zcQ8LIAAgASACa62Ip0F/IAJ0QX9zcQsgACACrSAAIAGtQgp8IAN+fULjyJW9y5vvjU9+fEIK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nn9+QuPcypX8zvL1hX98IQYgBCIDIgFBCGoiBCACTQ0ACwsCQCADQQRqIgEgAksEQCADIQEMAQsgAygAAK1Ch5Wvr5i23puef34gBoVCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQYLIAEgAkkEQCAAIAVqQShqIQADQCABMQAAQsXP2bLx5brqJ34gBoVCC4lCh5Wvr5i23puef34hBiABQQFqIgEgAEcNAAsLIAZCIYggBoVCz9bTvtLHq9lCfiIGQh2IIAaFQvnz3fGZ9pmrFn4iBkIgiCAGhQv4AgICfwR+IAAgACkDACACrXw3AwACQAJAIAAoAkgiAyACakEfTQRAIAAgA2pBKGogASACEKsBIAAoAkggAmohAQwBCyABIAJqIQQCQAJ/IAMEQCAAQShqIgIgA2ogAUEgIANrEKsBIAAgACkDCCACKQAAEE43AwggACAAKQMQIAApADAQTjcDECAAIAApAxggACkAOBBONwMYIAAgACkDICAAQUBrKQAAEE43AyAgACgCSCECIABBADYCSCABIAJrQSBqIQELIAFBIGogBEsLBEAgASECDAELIARBYGohAyAAKQMgIQUgACkDGCEGIAApAxAhByAAKQMIIQgDQCAIIAEpAAAQTiEIIAcgASkACBBOIQcgBiABKQAQEE4hBiAFIAEpABgQTiEFIAFBIGoiAiEBIAIgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyACIARPDQEgAEEoaiACIAQgAmsiARCrAQsgACABNgJICwtlACAAQgA3AyggAEL56tDQ58mh5OEANwMgIABCADcDGCAAQs/W077Sx6vZQjcDECAAQtbrgu7q/Yn14AA3AwggAEIANwMAIABCADcDMCAAQgA3AzggAEFAa0IANwMAIABCADcDSAsVACABBEAgAiAAIAERAwAPCyAAEEwLYQEDf0F+IQECQCAARQ0AIAAoAhwiAkUNACAAKAIkIgNFDQAgAigCNCIBBEAgACgCKCABIAMRBAAgACgCJCEDIAAoAhwhAgsgACgCKCACIAMRBABBACEBIABBADYCHAsgAQudCwEMfyACQQBOBEBBBEEDIAEvAQIiCxshB0EHQYoBIAsbIQQgAEG5LWohCEF/IQYDQCALIQkCQCAJIAEgDCINQQFqIgxBAnRqLwECIgtH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AhQgCiAAKAIIaiADOgAAIAAgACgCFCIDQQFqNgIUIAMgACgCCGogAEG5LWotAAA6AAAgACABQRAgACgCvC0iAWt2OwG4LSAAIAEgAmpBcGo2ArwtDwsgACACIARqNgK8LQuXAQECfwJAAn8gACgCvC0iAUEJTgRAIAAgACgCFCIBQQFqNgIUIAEgACgCCGogAC0AuC06AAAgACAAKAIUIgFBAWo2AhQgAEG5LWotAAAhAiABIAAoAghqDAELIAFBAUgNASAAIAAoAhQiAUEBajYCFCAALQC4LSECIAEgACgCCGoLIAI6AAALIABBADYCvC0gAEEAOwG4LQvaBAEBfwNAIAAgAUECdGpBADsBlAEgAUEBaiIBQZ4CRw0ACyAAQQA7AfwUIABBADsBiBMgAEHEFWpBADsBACAAQcAVakEAOwEAIABBvBVqQQA7AQAgAEG4FWpBADsBACAAQbQVakEAOwEAIABBsBVqQQA7AQAgAEGsFWpBADsBACAAQagVakEAOwEAIABBpBVqQQA7AQAgAEGgFWpBADsBACAAQZwVakEAOwEAIABBmBVqQQA7AQAgAEGUFWpBADsBACAAQZAVakEAOwEAIABBjBVqQQA7AQAgAEGIFWpBADsBACAAQYQVakEAOwEAIABBgBVqQQA7AQAgAEH8E2pBADsBACAAQfgTakEAOwEAIABB9BNqQQA7AQAgAEHwE2pBADsBACAAQewTakEAOwEAIABB6BNqQQA7AQAgAEHkE2pBADsBACAAQeATakEAOwEAIABB3BNqQQA7AQAgAEHYE2pBADsBACAAQdQTakEAOwEAIABB0BNqQQA7AQAgAEHME2pBADsBACAAQcgTakEAOwEAIABBxBNqQQA7AQAgAEHAE2pBADsBACAAQbwTakEAOwEAIABBuBNqQQA7AQAgAEG0E2pBADsBACAAQbATakEAOwEAIABBrBNqQQA7AQAgAEGoE2pBADsBACAAQaQTakEAOwEAIABBoBNqQQA7AQAgAEGcE2pBADsBACAAQZgTakEAOwEAIABBlBNqQQA7AQAgAEGQE2pBADsBACAAQYwTakEAOwEAIABCADcCrC0gAEGUCWpBATsBACAAQQA2AqgtIABBADYCoC0LngEBAn8gACAALwG4LSADQf//A3EiBCAAKAK8LSIDdHIiBTsBuC0gAAJ/IANB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A0AgCSAFIARBAXRqIgotAAEiC0ECdGoiDCgCACEDIAlBPGogCi0AAEEIdCAIakH//wNxEC8gCUECOgA/IAkgByALayIKIAJqOgA+IANBASABIAprdGohCiAJKAI8IQsDQCAAIANBAnRqIAs2AQAgA0EBaiIDIApJDQALIAwgCjYCACAEQQFqIgQgBkcNAAsLIAlBQGskAAvdAgEJfyMAQdAAayIJJAAgCUFAayAFKAIwNgIAIAkgBSkCKDcDOCAJIAUpAiA3AzAgCSAFKQIYNwMoIAkgBSkCEDcDICAJIAUpAgA3AxAgCSAFKQIINwMYIAMEQCAHIAZrIQ8gByABayEQA0BBASABIAcgAiALQQF0aiIGLQABIgxrIghrIgp0IQ0gBi0AACEOIAlBEGogDEECdGoiDCgCACEGAkAgCiAPTwRAIAAgBkECdGogCiAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QlQMgBiANaiEIDAELIAlBDGogDhAvIAlBAToADyAJIAg6AA4gBiAGIA1qIghPDQAgCSgCDCEKA0AgACAGQQJ0aiAKNgEAIAZBAWoiBiAIRw0ACwsgDCAINgIAIAtBAWoiCyADRw0ACwsgCUHQAGokAAs+AQN/IAAEQCAAKAIAIABBvNABaigCACIBIABBwNABaigCACICIABBxNABaigCACIDEGQgACABIAIgAxBkCwvMAQEBfyAAIAEoArTQATYCmOIBIAAgASgCBCICNgLA4AEgACACNgK84AEgACACIAEoAghqIgI2ArjgASAAIAI2AsTgASABKAK40AEEQCAAQoGAgIAQNwOI4QEgACABQaTQAGo2AgwgACABQZQgajYCCCAAIAFBnDBqNgIEIAAgAUEMajYCACAAQazQAWogAUGo0AFqKAIANgIAIABBsNABaiABQazQAWooAgA2AgAgAEG00AFqIAFBsNABaigCADYCAA8LIABCADcDiOEBC6JIAS5/IwBB4ABrIhIkACAAKAKEASEGIAAoAgQhByAAKAKIASEFIAAoAgwhCCASIAAoAhg2AlwgACgCPCEbIABBQGsoAgAhHCAAQSxqIiYgAyAEQQIQWSADIAcgCGogA0ZqIg0gAyAEaiIMQXhqIi5JBEAgBUH/HyAFQf8fSRsh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AnRBsKcBaigCABBHIAtBOGoQOSALQThqIAAvAQYgAi0AAEECdEGQpAFqKAIAEEcgC0E4ahA5AkAgCgRAIAEtAAAiASABQRggAUEYSRsiAmsiAQRAIAtBOGogACgCACABEEcgC0E4ahA5CyALQThqIAAoAgAgAXYgAhBHDAELIAtBOGogACgCACABLQAAEEcLIAtBOGoQOSAJQQJPBEAgCUF+aiEMA0AgByAMai0AACECIAMgDGotAAAhBCALQThqIAtBGGogBSAMai0AACIAEGwgC0E4aiALQShqIAQQbCALQThqEDkgC0E4aiALQQhqIAIQbCALQThqEDkgC0E4aiAIIAxBA3RqIgEvAQQgAkECdEGwpwFqKAIAIgIQRyACIARBAnRBkKQBaigCACICakEZTwRAIAtBOGoQOQsgC0E4aiABLwEGIAIQRyALQThqEDkCQCAKBEAgACAAQRggAEEYSRsiAmsiAARAIAtBOGogASgCACAAEEcgC0E4ahA5CyALQThqIAEoAgAgAHYgAhBHDAELIAtBOGogASgCACAAEEcLIAtBOGoQOSAMQX9qIgwgCUkNAAsLIAtBOGogCygCKCALKAI0EHQgC0E4aiALKAIYIAsoAiQQdCALQThqIAsoAgggCygCFBB0IAtBOGoQ/QEiAEG6fyAAGyEMCyALQdAAaiQAIAwLLwAgACACQQN0aigCBCIAQRB2QQFqIgJBCHRBfyABdCAAayACQRB0akEIdCABdmsLTwEEfwNAIANBASAAIARBAnRqKAIAIgNBCHQiBSACbiIGIAUgAkkbIAYgAxtBAnRBkJwBaigCACADbGohAyAEQQFqIgQgAU0NAAsgA0EIdgtKAQF/IwBB8ARrIgQkACAEIAMgAiABEKcBIgMgACACIAEQpgEiAhAhRQRAIARB8ABqQYAEIAQgASADEKgBIQILIARB8ARqJAAgAguKAQEIfyMAQRBrIgMkACADIAAQc0F/IQUCQCAALwACIAJJDQAgAygCDCIHQQh0QYACaiEIIAMoAgghCUEAIQADQCAJIAcgABDJAyEGIAEgAEECdGooAgAiCgRAIAYgCE8NAiAGIApsIARqIQQLIABBAWoiACACTQ0ACyAEQQh2IQULIANBEGokACAFC18BAn9BCCABayEFQQAhAQNAIARBASAAIAFBAXRqLwEAIgQgBEH//wNGG0EQdEEQdSAFdEECdEGQnAFqKAIAIAIgAUECdGooAgBsaiEEIAFBAWoiASADTQ0ACyAEQQh2C2wBAX8CQAJAAkACQCACQf8fS0ECQQEgAkEfSxtqIgNBf2oOAwABAgMLIAAgAkEDdEEBcjoAAAwCCyAAIAJBBHRBBXJB9f8DcRAvDAELIAAgAkEEdEENchBNCyAAIANqIAEtAAA6AAAgA0EBagtBACAALQAAQQJHBEAgAkEANgIAIANBADYCACABQQA2AgAPCyABIAAoAAQ2AgAgAyAAKAAINgIAIAIgACgADDYCAAuLAQEBfyMAQSBrIgEkACAAQQBBmAYQKCIAQQA2AqADIABBADYCnAMgAEEANgKYAyABQRBqEOABIAEgASkDGDcDCCABIAEpAxA3AwAgACABEN8BNgIIIAAoAugFRQRAIAAQ9gEgAEEMaiIABEAgAEEAQfgAECgiAEEBNgIgIABBAzYCLAsLIAFBIGokAAtOACAAIAFB+AAQKiIAIAIoAhg2AhwgACACKQIQNwIUIAAgAikCCDcCDCAAIAIpAgA3AgQgACACKQIcNwIgIAAgAigCJDYCKCAAQQM2AiwLqQEBAn8jAEHQAWsiBiQAIAZBqAFqIgcgBSAERSAEaq0Q9QMgB0EBNgIcIAdCADcCICAGIAYpA7ABNwMQIAYgBikDuAE3AxggBiAGKQPAATcDICAGIAYpA8gBNwMoIAYgBikDqAE3AwggBkEwaiAAQQxqIAZBCGoQ0QMgACAGQTBqIAStEN4DIgUQIQR/IAUFIAAgASACIAMgBBDxAwshACAGQdABaiQAIAALJwECfyAAKAIQIgEgACgCDCICSQRAIAFBACACIAFrECgaCyAAEO0BCyYAIAAQ5QEgAEEANgJwIABBADYCSCAAQQA2AhQgACAAKAIMNgIYC2IBA38jAEEgayICJAAgARB7IAJBFGogAkEcaiACQRhqEM8DQYjsASACKAIUIgMQTCIENgIAIAEQeyAEIAMQowIgAkEIaiADQYjsASgCABDbASAAIAJBCGoQ2gEgAkEgaiQACzQAIABBADYCICAAIAE2AhAgACABNgIIIAAgATYCACAAIAEgAmo2AgQgABDmASAAQQA2AhwLQwECfkIBIQIgAFBFBEBC48iVvcub741PIQEDQEIBIAEgAEIBg1AbIAJ+IQIgASABfiEBIABCAYgiAEIAUg0ACwsgAgvEAgEDfyACKAIYQQFHBEBBBCACKAIEdCEFCyACKAIIIQYgAigCEEEDRgRAIAIoAgAiBEERIARBEUkbIQQLIANBAUYEQCAAQoGAgIAQNwIMIABCADcCBCAAQQE2AgAgARDuAQsgACAENgIcIAAQ1AMgASABKAIINgIMIAAgAUEEIAZ0EJ4BNgIgIAAgASAFEJ4BNgIoIAAgAUEEIAR0QQAgBBsQngE2AiQgASgCGEUEQCABENMDIAIoAhhBB08EQCAAIAFBgAgQVTYCLCAAIAFBkAEQVTYCMCAAIAFB1AEQVTYCNCAAIAFBgAEQVTYCOCAAIAFBiIACEFU2AjwgAEFAayABQZyABxBVNgIACyAAIAIpAgA3AnQgACACKAIYNgKMASAAIAIpAhA3AoQBIAAgAikCCDcCfEFAQQAgASgCGBsPC0FACzQAIABBADYCgAggAEHoI2pChICAgIABNwIAIABB4CNqQoCAgIAQNwIAIABB2CNqQgA3AgALLAECf0EBQQAgACgCBCIBIAAoAghrIgIgAiABSxt0QQggAXRqQQAgACgCABsLhQEBA38gACgCGCIBQQFHBEBBBCAAKAIEdCEDCyAAKAIIIQICfwJAIAAoAhBBA0YEQEGIjAlBACABQQZLGyEBQQQgAnQhAkGAgCAgACgCACIAQRFPDQIaIABFDQFBBCAAdAwCC0GIjAlBACABQQZLGyEBQQQgAnQhAgtBAAsgASADaiACamoLlQEBAn8gACABNgIUIAAoAgghBSAAKAIMIgRFBEAgAEHAADYCDEHAACEECyADQQdPBEAgACACIAQgBCACSRs2AgwLIAAoAgQiBEUEQCAAIAFBeWoiAkEGIAJBBksbIgQ2AgQLIAAoAhBFBEAgAEEAIAEgBGsiAiACIAFLGzYCEAsgACAFQQMgBRsiACAEIAAgBEkbNgIIC/AIAhB/AX4jAEHQAGsiBSQAIABBATYCuAMgAUHUAGohBiABKAJUBEAgBiABKAIEIAEoAhggASgCHBDcAyAAIAEoAmBBf2qtENcDNwOIBAsgASgCFCEIIAE1AgQhEyABQQRqIgkQ2wMhDiAFIAYpAhA3A0ggBUFAayAGKQIINwMAIAUgBikCADcDOAJ/QgEgE4YiEyACIBMgAlQbpyIEQQEgBBsiBEGAgAggBEGAgAhJGyILIQRBACAFKAI4RQ0AGiAEIAUoAkRuCyEMIAUgACgCwAQ2AjAgBSAAKQK4BDcDKCAFIABBsARqIg8pAgA3AyAgBSgCICAFKAIka0GAgID4eUshByAAQYACaiIEIgMgAygCDCADKAIUQQAQ5AEEfyADKAIcQQFqBUEACzYCHCAAKAKkAyENIAUgBikCEDcDGCAFIAYpAgg3AxAgBSAGKQIANwMIIAVBCGoQ2gMhAyAEKAIAIAAoAoQCEOcBIRACQAJ/QQAgBCIKKAIMIAQoAhQgAyAMQQxsIhEgDiALQSBqIhIgC0EDQQQgCEEDRhtuIghBC2xqampqQfj9AEHg9wAgDRtqIgMQ5AFFDQAaIAooAhxBgAFKCyAQIANJcgRAIA0EQEFAIQMMAgsgBCAAKAKYAyAAKAKcAyAAKAKgAxCkAQJ/IAQhByAAKAKcAxpBQCADIAAoApgDIAAoAqADEIcCIgpFDQAaIAcgCiADENYDQQALIgMQIQ0BIAAgBEHwIxCfASIDNgKoBCADRQRAQUAhAwwCCyAAIARB8CMQnwEiAzYCrAQgA0UEQEFAIQMMAgsgACAEQYAwEJ8BNgLABUEBIQdBQCEDIAAoAqwERQ0BCyAEEOYBIABBhAFqIAFB+AAQKhogACAJKAIYNgK8BSAAIAkpAhA3ArQFIAAgCSkCCDcCrAUgACAJKQIANwKkBSAAQgA3A7ACIAAgAkIBfDcDqAIgAEIANwO4AiACQn9RBEAgAEEANgKkAQsgACALNgKkAiAAQcACahCGAiAAQQA2AvwBIABBATYCACAAKAKoBBDZAyAEIBIQYCEDIABBADYCyAUgACALNgLcAyAAIAM2AsQDIARBABBgIQMgAEEANgLcBSAAIAM2AsQFIAAgBEEAEGA2AtgFIAYoAgAiCgRAIAAgBEEBIAEoAlggASgCXGt0IgMQYCIGNgKABCAGQQAgAxAoGgsCQCAAIgMoAgBBAUcNACADKALYAQ0AIANCADcDmAQgA0IANwOgBAsgACAINgLYAyAAIAQgCBBgNgLMAyAAIAQgCBBgNgLQAyAAIAQgCBBgNgLUAyAAIAQgCEEDdBBVNgK8AyAPIAQgCSAHENgDIgNBACADECEiBxshAyAHIApFcg0AIAAgBEEIIAEoAlh0IgEQVSIHNgL8A0EAIQMgB0EAIAEQKBogBCAREFUhASAAIAw2ApQEIAAgATYCkAQgAEIANwPoAyAAQgA3A/ADIABBADYC+AMgAEHoA2oQ5QELIAVB0ABqJAAgAwtMAQF/IwBBgAFrIgMkACADQQhqIAFB+AAQKhoCQCAAIANBCGogAhDdAyIBECENAEEAIQFBABAhDQAgAEEANgL8AQsgA0GAAWokACABC7MFAQZ/IAFBEG0hCCABQRBOBEADQCAAIAZBAnQiBWoiAUEAIAJBACABKAIAIgFBAUYbIAFqIgEgAmsiAyADIAFLGzYCACAAIAVBBHJqIgFBACACQQAgASgCACIDQQFGGyADaiIDIAJrIgQgBCADSxs2AgAgAUEAIAJBACABKAIEIgFBAUYbIAFqIgEgAmsiAyADIAFLGzYCBCAAIAVBDHJqIgFBACACQQAgASgCACIDQQFGGyADaiIDIAJrIgQgBCADSxs2AgAgAUEAIAJBACABKAIEIgNBAUYbIANqIgMgAmsiBCAEIANLGzYCBCABQQAgAkEAIAEoAggiA0EBRhsgA2oiAyACayIEIAQgA0sbNgIIIAFBACACQQAgASgCDCIBQQFGGyABaiIBIAJrIgMgAyABSxs2AgwgACAFQRxyaiIBQQAgAkEAIAEoAgAiA0EBRhsgA2oiAyACayIEIAQgA0sbNgIAIAFBACACQQAgASgCBCIDQQFGGyADaiIDIAJrIgQgBCADSxs2AgQgAUEAIAJBACABKAIIIgNBAUYbIANqIgMgAmsiBCAEIANLGzYCCCABQQAgAkEAIAEoAgwiA0EBRhsgA2oiAyACayIEIAQgA0sbNgIMIAFBACACQQAgASgCECIDQQFGGyADaiIDIAJrIgQgBCADSxs2AhAgAUEAIAJBACABKAIUIgNBAUYbIANqIgMgAmsiBCAEIANLGzYCFCABQQAgAkEAIAEoAhgiA0EBRhsgA2oiAyACayIEIAQgA0sbNgIYIAFBACACQQAgASgCHCIBQQFGGyABaiIBIAJrIgMgAyABSxs2AhwgACAFQTxyaiIBQQAgAkEAIAEoAgAiAUEBRhsgAWoiASACayIFIAUgAUsbNgIAIAZBEGohBiAHQQFqIgcgCEcNAAsLC8sDAQV/IwBBEGsiCSQAIAcgAhDpASENIAEgAEGECBAqIQoCfyADBEAgBCAFIAYgBxCdAQwBC0EGQT8gACgCgAgiAUECRhsgB08EQCAEIAUgBiAHEJ0BDAELQbp/IAdB//8AS0EEQQMgB0H/B0sbaiILIAVPDQAaIAJBBEkgB0GBCElxIQwgCSABNgIMIAUgC2shAyAEIAtqIQICfyALQQNGIAFBAkZxIAdBgAJJciIBBEAgAiADIAYgB0EAIAggCiAJQQxqIAwQ+AEMAQsgAiADIAYgB0EBIAggCiAJQQxqIAwQ+AELIQMgCSgCDCECIAMQISADRSADIAcgDWtPcnIEQCAKIABBhAgQKhogBCAFIAYgBxCdAQwBCyADQQFGBEAgCiAAQYQIECoaIAQgBiAHEM4DDAELIAJFBEAgCkEBNgKACAtBA0ECIAIbIQACQAJAAkACQCALQX1qDgMAAQIDCyAEIAdBBHRBBEEAIAEbciAAckEEcyADQQ50ahCjAQwCCyAEIAdBBHQgAHJBCHIgA0ESdGoQTQwBCyAEIAdBBHQgAHJBDHIgA0EWdGoQTSAEIANBCnY6AAQLIAMgC2oLIQAgCUEQaiQAIAALMwEBfwJAAkACQCAAKAJAQX9qDgICAAELQQEPCyAAKAIcQQFHDQAgACgCGEEARyEBCyABC/8GARJ/IwBB8AFrIggkACADKAIEIRUgACgCFCENIAAoAhAhDiAAKAIYIQ8gACgCBCEJIAAoAgAhEwJAIAEgAiADKAIcIhAgAxDhAyAEIAUgACgCCCIDIAAoAgwgA2sgBhDgAyIDECEiBw0AIAMgBGohCkG6fyEDIAQgBWoiCyAEIAogBxsiB2tBBEgNAAJ/IAkgE2siA0EDdSIFQf8ATQRAIAcgBToAACAHQQFqDAELIAVB//0BTQRAIAcgBToAASAHIAVBCHZBgAFzOgAAIAdBAmoMAQsgB0H/AToAACAHQQFqIAVBgIJ+akH//wNxEC8gB0EDagshCiACQYQIaiERIANFBEAgESABQYQIakHgGxAqGiAKIARrIQMMAQsgABDzAyAIQSM2AgwgCEEQaiAIQQxqIA4gBSAGEIMBIQMgAkHgI2oiByABQeAjaigCADYCACAKQQFqIgAgCyAAayACQbQZaiIWQQkgByAIQRBqIAgoAgwiByADIAVBCSABQbQZaiIDQZCaAUEGQQEgEBCiASIUIAhBEGogByAOIAVBkJoBQQZBIyADQaQKIAYQoQEiAxAhIgcNACAIQR82AgwgCEEQaiAIQQxqIA8gBSAGEIMBIQwgCCgCDCEJIAJB2CNqIhIgAUHYI2ooAgA2AgAgACAAIANqIAcbIgcgCyAHayARQQggEiAIQRBqIAkgDCAFQQggAUGECGoiA0HgmgFBBSAJQR1JIBAQogEiDCAIQRBqIAkgDyAFQeCaAUEFQRwgA0GEBiAGEKEBIgMQISIJDQAgCEE0NgIMIAhBEGogCEEMaiANIAUgBhCDASESIAJB3CNqIhcgAUHcI2ooAgA2AgAgByADIAdqIAkbIgkgCyAJayACQYgOaiIYQQkgFyAIQRBqIAgoAgwiAiASIAVBCSABQYgOaiIDQaCbAUEGQQEgEBCiASIBIAhBEGogAiANIAVBoJsBQQZBNCADQawLIAYQoQEiAxAhIgINACAKIAxBBHQgFEEGdGogAUECdGo6AAAgCSADIAlqIAIbIgYgCyAGayAYIA0gESAPIBYgDiATIAUgFUEZSxDIAyIDECENACADIAZqIQUgByAAQQAgFEECRhsgDEECRhsiACAJIAIbIAAgAUECRhsiAARAQQAhAyAFIABrQQRIDQELIAUgBGshAwsgCEHwAWokACADC6kCAQx/IwBBIGsiBiQAAkAgBEEUdiAEQf//P3FBAEdqIg5FDQAgAyAEaiELQQEgAigCFHQhDCABKAIIIQUDQCAFIAEoAgxPDQEgBiAAKAIQNgIYIAYgACkCCDcDECAGIAApAgA3AwggCyADIAlBFHRqIgRBgIBAayALIARrQYCAwABJGyIHIARrIQ0gBkEIaiAHEO8BBEAgAigCBCEPIAAgDCAEEK0DIRAgACgCFEEBIA90IBAQrAMLIAAgByAMEKsDIAAgASACIAQgDRCqAyIEECEEQCAEIQgMAgsCfyAFIAEoAggiB0kEQCABKAIAIAVBDGxqIgUgBSgCBCAKajYCBCAEDAELIAogDWoLIQogByEFIAlBAWoiCSAORw0ACwsgBkEgaiQAIAgLNAECf0G6fyEFIANBA2oiBiABTQR/IAAgA0EDdCAEahCjASAAQQNqIAIgAxAqGiAGBSAFCwshACABIABrIAMoAgAgAmpLBEAgA0EANgIAIARBADYCAAsLPgECf0EBIQIgAUECTwR/IAAtAAAhAwJAA0AgAyAAIAJqLQAARw0BIAJBAWoiAiABRw0AC0EBDwtBAAUgAgsLTwEBfwJAIAAgASACIAMgBCAFIAcQ4gMiAEUgBiAFTUEAIABBun9GG3IEfyAIBSAAECFFDQEgAAsPCyAAQQAgACAGIAYgAygCHBDpAWtJGwuEAwEPfyAAKAKwAyEJIABBvANqIgcoAgQiASAHKAIAIgprIgQEQCAAKAKsAyAJQRRsaiELIAogAWsiASAEIAEgBEobQQN2IARBfyAEQX9KGyIBQQEgAUEBSBtsIgFBASABQQFLGyEMIAcoAighDQNAIAsgA0EUbGoiASAKIANBA3RqIgUoAgAiAjYCBCABIAUvAQQiBjYCCCABIAUvAQYiCEEDaiIFNgIMAkAgAyANRw0AAkACQCAHKAIkQX9qDgIAAQILIAEgBkGAgARyIgY2AggMAQsgASAIQYOABGoiBTYCDAsCQCABAn8gAkEDTQRAIAEgAiAGRWoiCDYCECABIAsgAyACayIOIAMgDiACQQNGG0F/aiAGGyICQRRsakEEaiACQX9zQQJ0QdCwAWogAkF/ShsoAgAiAjYCBCAIQQRHDQIgAkF/agwBCyACQX1qCzYCBAsgASAGIA9qIgE2AgAgASAFaiEPIANBAWoiAyAMRw0ACwsgACAEQQN1IAlqNgKwAwurAwEHfyMAQRBrIgUkACACQQZLBEAgAEG8A2oiBxDyASAAIAAoAqgEIgY2ApgFIAAgACgCxAE2ApwFIAEgACgCtARrIgQgACgCyAQiA0GAA2pLBEAgACAEIAQgA2tBgH1qIgRBwAEgBEHAAUkbazYCyAQLIABBsARqIgQQ7AEhCCAAKAKsBCIDIAYoAuQjNgLkIyADQegjaiAGQegjaigCADYCACADQewjaiAGQewjaigCADYCACADQeQjaiEDIAchBgJAIAEgAmoCfyAAKAKcBCAAKAKgBEkEQCAAQZgEaiAEIAcgAyABIAIQ6wEMAQsgAEHYAWoiCSgCAARAIAVCADcCBCAFIAAoApAENgIAIAUgACgClAQ2AgwgAEHoA2ogBSAJIAEgAhDjAyIDECENAiAFIAQgByAAKAKsBEHkI2ogASACEOsBDAELIAQgByADIAEgAiAAKAKgASAIEPMBEQIACyIAayEBIAYoAgwgASAAECoaIAYgBigCDCAAajYCDEEAIQMLIAVBEGokACADDwsgAEGYBGogAiAAKAKYARDqASAFQRBqJABBAQvrAQECfwJAAkACQEEBIAAgAyAEEOkDIgVBAUZBAnQgBRAhGw4FAAICAgECCyAAKAKoAwRAIAAQ6ANBAA8LIABBvANqIAAoAqgEIAAoAqwEIABBhAFqIAEgAiAEIAAoAsAFEOcDIgZBGEsNACAAKAK4Aw0AIAMgBBDmA0UNACABIAMtAAA6AABBASEGCyAGECEhAiAAKAKoBCEBAkAgBkECSQRAIAEhBQwBCyACBEAgASEFDAELIAAoAqwEIQUgACABNgKsBCAAIAU2AqgECyAFQdgjaigCAEECRgRAIAVBATYC2CMLIAYhBQsgBQtrAQJ/IAAoAiBBASABKAIMdCACEKABAkAgASgCHCIEQQFGDQBBASABKAIIdCEBIAAoAighAyAEQQZGBEAgAyABIAIQ3wMMAQsgAyABIAIQoAELIAAoAhwiAQRAIAAoAiRBASABdCACEKABCwtSAQF/IAAgACgCBCIEIAMgBGsiAyACayADQX8gAXRBf3NxayIBajYCBCAAIAAoAgggAWo2AgggACAAKAIQIAFrNgIQIAAgACgCDCABazYCDCABC5cBAQF/IwBBIGsiBSQAIAUgACgCEDYCGCAFIAApAgg3AxAgBSAAKQIANwMIIAVBCGogBBDvAQRAIAAgAigCCCACKAIcEPQBQQEgAigCBHQgAxDsAyEDIAEQ7gEgACACIAMQ6wMgARDtASAAQQA2AnAgAEEANgIUIABBACAAKAIYIgAgA2siASABIABLGzYCGAsgBUEgaiQAC/ECAQ1/IAAoAogBIQUgACgCpAIhByAAKAKoAQRAIABBwAJqIAMgBBCFAgsgAEGEAWohDEEBIAV0IQ0gAEGgBWohDiAAQcQEaiEPIABBgAJqIRAgAEGwBGohESABIQUCQANAIAJBBkkEQEG6fw8LIBEgECAMIAMgAyAEIAcgBCAHSRsiCGoiChDtAyAAKAK0BCAKIA0gDyAOEOUDIAAoAsgEIAAoAsAEIglJBEAgACAJNgLIBAsgACAFQQNqIAJBfWogAyAIEOoDIgYQIQ0BIAcgBE8hBwJAAn8CQAJAAkAgBg4CAAECCyAFIAIgAyAIIAcQ5AMiBhAhRQ0DDAULQQIhCyAHIQkgCEEDdAwBCyAGQQN0IQlBBCELIAcLIQMgBSADIAlyIAtyEKMBIAZBA2ohBgsgAEEANgK4AyACIAZrIQIgBSAGaiEFIAohAyAEIAgiB2siBA0ACyAFIAFLBEAgAEEDNgIACyAFIAFrIQYLIAYLrgEBA39BRCEDIAEhBSABIQQCQAJAAkACQCAAKAIADgQDAAECAQsgASACIABBhAFqQgBBABDxASIDECENAiAAQQI2AgAgASADaiEFIAIgA2shAgtBun8hAyACQQRJDQEgBUEBEE0gAkF9aiECIAVBA2ohBAsgACgCqAEEQEG6fyEDIAJBBEkNASAEIABBwAJqEIQCpxBNIARBBGohBAsgAEEANgIAIAQgAWshAwsgAwvtAQICfwF+QUQhBgJAAkACQAJAIAAoAgAOAgMAAQsgASACIABBhAFqIAApA6gCQn98IAAoAvwBEPEBIgUQIQ0BIABBAjYCACABIAVqIQEgAiAFayECCyAERQ0AIABBsARqIAMgBBDwAUUEQCAAIAAoArwENgLIBAsgACgC2AEEQCAAQegDaiADIAQQ8AEaCyAAIAEgAiADIAQQ7gMiBhAhDQEgACAAKQOwAiAErXwiBzcDsAIgACAAKQO4AiAFIAZqIgGtfDcDuAJBuH8gASAHQgF8IAApA6gCIgdWGyABIAdCAFIbDwsgBSEGCyAGC1sBAX4gACABIAIgAyAEEPADIgMQIQRAIAMPCyAAIAEgA2ogAiADaxDvAyIBECEEQCABDwsCfyAAKQOoAiIFUEUEQEG4fyAFIAApA7ACQgF8Ug0BGgsgASADagsLkAEBA38gACEBAkACQCAAQQNxRQ0AIAAtAABFBEBBAA8LA0AgAUEBaiIBQQNxRQ0BIAEtAAANAAsMAQsDQCABIgJBBGohASACKAIAIgNBf3MgA0H//ft3anFBgIGChHhxRQ0ACyADQf8BcUUEQCACIABrDwsDQCACLQABIQMgAkEBaiIBIQIgAw0ACwsgASAAawviAQEIfyAAKAIUIQMgACgCECEEIAAoAgQiAiAAKAIAIgVrIgEEQCAAKAIYIQYgBSACayICIAEgAiABShtBA3YgAUF/IAFBf0obIgFBASABQQFIG2wiAUEBIAFBAUsbIQdBACEBA0AgBSABQQN0aiICLwEGIQggASAEaiACLwEEEIABOgAAIAEgBmogAigCABAkOgAAIAEgA2ogCBA8OgAAIAFBAWoiASAHRw0ACwsgACgCJCIBQQFGBH8gBCAAKAIoakEjOgAAIAAoAiQFIAELQQJGBEAgAyAAKAIoakE0OgAACwvJAQEDfwJAQn8gAiACUBsiAkKAgICAAloEQCABKAIAIQQMAQtBBiEDIAKnIgRBwABPBEAgBEF/ahAkQQFqIQMLIAEoAgAiBCADTQ0AIAEgAzYCACADIQQLIAEoAgggBEEBaiIDSwRAIAEgAzYCCAsgBCABKAIEIgUgASgCGBD0ASIDSQRAIAEgBCAFaiADazYCBAsgBEEJTQRAIAFBCjYCAAsgACABKQIANwIAIAAgASgCGDYCGCAAIAEpAhA3AhAgACABKQIINwIIC9MBAgJ/AX4jAEFAaiIDJAAgA0J/IAIgAlAbIgVCgYAQVCAFQoGACFRqIAVCgYABVGpBhAVsQRZBACABQQMgARsgAUEASBsgAUEWShtBHGxqIgRBmIUBaigCADYCOCADIARBkIUBaikCADcDMCADIARBiIUBaikCADcDKCADIARBgIUBaikCADcDICABQX9MBEAgA0EAIAFrNgI0CyADIAMoAjg2AhggAyADKQMwNwMQIAMgAykDKDcDCCADIAMpAyA3AwAgACADIAIQ9AMgA0FAayQACyIBAX8CQCABRQ0AIAAoAgAgAUsNACAAKAIEIAFPIQILIAILSwEEfwJAIABFDQAgAEEMaiIBIAAQ9gMhAiABIAAoArAlIgEgAEG0JWooAgAiAyAAQbglaigCACIEEKQBIAINACAAIAEgAyAEEGQLCzQBAn8gAEEBQQEQWyAAEDkgACgCDCICIAAoAhBJBH8gAiAAKAIIayAAKAIEQQBHagUgAQsLJAAgACABNgIMIAAgATYCCCAAQgA3AgAgACABIAJqQXxqNgIQC/UBAQV/AkAgAUERSSADQQxJcg0AIABBBmoiByABQXpqIAIgA0EDakECdiIGIAQQcSIFECEEQCAFDwsgBUUNACAAIAVB//8DcRAvIAUgB2oiBSAAIAFqIgcgBWsgAiAGaiIIIAYgBBBxIgEQIQRAIAEPCyABRQ0AIABBAmogAUH//wNxEC8gASAFaiIFIAcgBWsgBiAIaiIIIAYgBBBxIgEQIQRAIAEPCyABRQ0AIABBBGogAUH//wNxEC8gASAFaiIFIAcgBWsgBiAIaiIBIAIgA2ogAWsgBBBxIgEQIQRAIAEPCyABRQ0AIAEgBWogAGshCQsgCQtGAQN/IAJBAEgEQEEBDwsDQCAEIAEgA0ECdCIFaigCAEEARyAAIAVqLQACRXFyIQQgAiADRyEFIANBAWohAyAFDQALIARFCyoBAX8jAEEQayIAJAAgAEEANgIMQZTpASgCAEG/EkEAELkBIABBEGokAAv4BgEHfyMAQUBqIgckAAJAIAAgAUEDdGoiBC0AByIFIAJNBEAgBSECDAELIARBB2ohBkEBIAUgAmsiCXQhCEEAIQQgBSEDA0AgBiACOgAAIAQgCGpBfyAFIANrdGohBCAAIAFBf2oiAUEDdGoiA0EHaiEGIAMtAAciAyACSw0ACwNAIANB/wFxIAJHRQRAIAAgAUF/aiIBQQN0ai0AByEDDAELCyAHQvDhw4ePnrz4cDcDMCAHQvDhw4ePnrz4cDcDKCAHQvDhw4ePnrz4cDcDICAHQvDhw4ePnrz4cDcDGCAHQvDhw4ePnrz4cDcDECAHQvDhw4ePnrz4cDcDCCAHQvDhw4ePnrz4cDcDACAEIAl1IQUCQCABQX9MDQAgAiEGIAEhBANAIAYgA0H/AXEiA0sEQCAHIAIgA2tBAnRqIAQ2AgAgAyEGCyAEQQFIDQEgACAEQX9qIgRBA3RqLQAHIQMMAAsACyAFQQBKBEADQAJAAkAgBRAkQQFqIgRBAkkEQCAEIQMMAQsgByAEQQJ0aigCACEIA0ACQCAHIARBf2oiBkECdGooAgAhCSAIQfDhw4d/RwRAIAlB8OHDh39GDQEgACAIQQN0aigCACAAIAlBA3RqKAIAQQF0TQ0BC0EBIQMgCSEIIAYiBEEBSw0BDAILCyAEIgNBDEsNAQsDQAJAIAcgA0ECdGooAgBB8OHDh39HBEAgAyEEDAELQQ0hBCADQQFqIgNBDUcNAQsLIAcgBEF/aiIGQQJ0aigCACEJCyAHIARBAnRqIggoAgAhAyAJQfDhw4d/RgRAIAcgBkECdGogAzYCAAtBfyAGdCAFaiEFIAAgA0EDdGoiBiAGLQAHQQFqOgAHIAggAwR/IAggA0F/aiIDNgIAIANB8OHDh38gACADQQN0ai0AByACIARrRhsFQfDhw4d/CzYCACAFQQBKDQALCyAFQX9KDQAgBygCBCEEA0AgBUF/IAVBf0obIQYgBSEDA0AgBEHw4cOHf0YEQCABIQQDQCAEIgFBf2ohBCAAIAFBA3RqLQAHIAJGDQALIAAgAUEBaiIEQQN0aiIGIAYtAAdBf2o6AAcgA0EBaiEFIANBfkoNAwwCCyAAIARBAWoiBEEDdGoiBSAFLQAHQX9qOgAHIAMgBkchBSADQQFqIQMgBQ0ACwsLIAdBQGskACACC74CAQd/IwBBgAJrIgQkACAEQQBBgAIQKCEFA0AgBSABIANBAnRqKAIAQQFqECRBA3RqIgQgBCgCAEEBajYCACADQQFqIgMgAk0NAAtBHiEDIAUoAvABIQQDQCAFIANBf2oiA0EDdGoiByAHKAIAIARqIgQ2AgAgAw0AC0EAIQMDQCAFIANBA3RqIgQgBCgCADYCBCADQQFqIgNBIEcNAAsDQCABIAZBAnRqKAIAIghBAWoQJEEDdCAFaiIEIgNBDGogAygCDCIDQQFqNgIAAkAgAyAEKAIIIgRNDQADQCAIIAAgA0F/aiIHQQN0aiIJKAIATQ0BIAAgA0EDdGogCSkCADcCACAHIgMgBEsNAAsgBCEDCyAAIANBA3RqIgMgBjoABiADIAg2AgAgBkEBaiIGIAJNDQALIAVBgAJqJAAL4wYBDH8jAEFAaiIHJABBfyEFAkACQAJAIARBA3ENAEFSIQUgAkH/AUsNACADQQsgAxshDCAEQQBBgCAQKCEIIARBCGoiBiABIAIQ/gMgAiEDA0AgAyIFQX9qIQMgBiAFQQN0aigCACIBRQ0ACyAIIAEgBiADQQN0aiIBKAIAajYCiBAgAUGAAjsBBCAGIAVBA3RqQYACOwEEIAVB/wFqIgpBgAJNDQEgBUF+aiEDQYECIQEDQCAGIAFBA3RqQYCAgIAENgIAIAFBAWoiASAKTQ0ACyAIQYCAgIB4NgIAQYACIQFBgQIhCEGBAiEEA0AgBiAIQQN0aiAGIAMgBiADQQN0aigCACIJIAYgAUEDdGooAgAiC0kiDWsiCCABIAkgC09qIgkgBiAIQQN0aigCACILIAYgCUEDdGooAgAiDkkiDxtBA3RqIhAoAgAgBiADIAEgDRtBA3RqIgEoAgBqNgIAIBAgBDsBBCABIAQ7AQQgCSALIA5PaiEBIAggD2shAyAKIARBAWoiBEH//wNxIghPDQALDAILIAdBQGskACAFDwsgCEGAgICAeDYCAAtBACEDIAYgCkEDdGpBADoAByAFQf4BaiIBQYACTwRAA0AgBiABQQN0aiIEIAYgBC8BBEEDdGotAAdBAWo6AAcgAUF/aiIBQf8BSw0ACwsDQCAGIANBA3RqIgEgBiABLwEEQQN0ai0AB0EBajoAByADQQFqIgMgBU0NAAsgBiAFIAwQ/QMhBEEAIQMgB0EAOwE4IAdCADcDMCAHQgA3AyggB0IANwMgIAdBADsBGCAHQgA3AxAgB0IANwMIIAdCADcDAEF/IQEgBEEMTQRAA0AgB0EgaiAGIANBA3RqLQAHQQF0aiIBIAEvAQBBAWo7AQAgA0EBaiIDIAVNDQALIAQEQEEAIQUgBCEDA0AgByADQQF0IgFqIAU7AQAgB0EgaiABai8BACAFakH+/wNxQQF2IQUgA0F/aiIDDQALC0EAIQVBACEDA0AgACAGIANBA3RqIgEtAAZBAnRqIAEtAAc6AAIgA0EBaiIDIAJNDQALA0AgByAAIAVBAnRqIgEtAAJBAXRqIgMgAy8BACIDQQFqOwEAIAEgAzsBACAFQQFqIgUgAk0NAAsgBCEBCyAHQUBrJAAgAQvdAgEFfyMAQZACayIGJABBUiEFAkAgA0H/AUsNACAGQQA6AIMCQQEhBSAEQQFqIghBAUsEQANAIAZBgwJqIAVqIAggBWs6AAAgBCAFRiEJIAVBAWohBSAJRQ0ACwsCfyADBEADQCAGIAdqIAIgB0ECdGotAAIgBkGDAmpqLQAAOgAAIAdBAWoiByADRw0ACyAAQQFqIAFBf2ogBiADEPoBDAELIABBAWogAUF/aiAGQQAQ+gELIgUQIQ0AIAVBAkkgBSADQQF2T3JFBEAgACAFOgAAIAVBAWohBQwBC0F/IQUgA0GAAUsNAEG6fyEFIANBAWpBAXYiAiABTw0AIAJBAWohBSAAIANB/wBqOgAAQQAhByADIAZqQQA6AAAgA0UNAANAIAdBAXYgAGogBiAHQQFyai0AACAGIAdqLQAAQQR0ajoAASAHQQJqIgcgA0kNAAsLIAZBkAJqJAAgBQt/AQR/IwBBkARrIgQkACAEQf8BNgIIAkAgBEEQaiAEQQhqIARBDGogASACEGsiBhAhBEAgBiEFDAELQVQhBSAEKAIMIgdBBksNACADIARBEGogBCgCCCAHEIMEIgUQIQ0AIAAgASAGaiACIAZrIAMQggQhBQsgBEGQBGokACAFC+8FAQN/IwBBMGsiBCQAAkAgAy8BAgRAIARBGGogASACEEUiARAhDQEgBEEQaiAEQRhqIAMQggEgBEEIaiAEQRhqIAMQggFBACEBAkAgBEEYahAjBEBBACEDDAELA0AgACABaiICIARBEGogBEEYahBiOgAAIAIgBEEIaiAEQRhqEGI6AAEgBEEYahAjBEAgAUECciEDDAILIAIgBEEQaiAEQRhqEGI6AAIgAiAEQQhqIARBGGoQYjoAAyABQQRqIQMgBEEYahAjIQIgAUH3AUsNASADIQEgAkUNAAsLAn8DQEG6fyEBIANB/QFLDQMgACADaiICIARBEGogBEEYahBiOgAAIAIiBkEBaiEFIARBGGoQI0EDRgRAQQIhAyAEQQhqDAILIANB/AFLDQMgBiAEQQhqIARBGGoQYjoAASADQQJqIQMgBEEYahAjQQNHDQALIAAgA2ohBUEDIQMgBEEQagshASAFIAEgBEEYahBiOgAAIAIgA2ogAGshAQwBCyAEQRhqIAEgAhBFIgEQIQ0AIARBEGogBEEYaiADEIIBIARBCGogBEEYaiADEIIBQQAhAQJAIARBGGoQIwRAQQAhAwwBCwNAIAAgAWoiAiAEQRBqIARBGGoQYToAACACIARBCGogBEEYahBhOgABIARBGGoQIwRAIAFBAnIhAwwCCyACIARBEGogBEEYahBhOgACIAIgBEEIaiAEQRhqEGE6AAMgAUEEaiEDIARBGGoQIyECIAFB9wFLDQEgAyEBIAJFDQALCwJ/A0BBun8hASADQf0BSw0CIAAgA2oiAiAEQRBqIARBGGoQYToAACACIgZBAWohBSAEQRhqECNBA0YEQEECIQMgBEEIagwCCyADQfwBSw0CIAYgBEEIaiAEQRhqEGE6AAEgA0ECaiEDIARBGGoQI0EDRw0ACyAAIANqIQVBAyEDIARBEGoLIQEgBSABIARBGGoQYToAACACIANqIABrIQELIARBMGokACABC68DAQp/IwBBgARrIgkkAEFSIQUCQCACQf8BSw0AIABBBGohCkGAgAQgA0F/anRBEHUhC0EBIAN0IghBf2oiDCEHQQEhBQNAAkAgASAEQQF0Ig1qLwEAIgZB//8DRgRAIAogB0ECdGogBDoAAiAHQX9qIQdBASEGDAELIAVBACALIAZBEHRBEHVKGyEFCyAJIA1qIAY7AQAgAiAERyEGIARBAWohBCAGDQALIAAgBTsB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IAIgASgCCGpBADoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQA6AABBAiECIAEoAoQBIgNBCUcEQEEEIAEoAogBQQFKQQJ0IANBAkgbIQILIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQM6AAAgAUHxADYCBAwNCyACKAIkIQMgAigCHCEEIAIoAhAhBSACKAIsIQYgAigCACEHIAEgASgCFCIIQQFqNgIUQQIhAiAIIAEoAghqIAZBAEdBAXQgB0EAR3IgBUEAR0ECdHIgBEEAR0EDdHIgA0EAR0EEdHI6AAAgASgCHCgCBCEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAIcKAIEIQMgASABKAIUIgRBAWo2AhQgBCABKAIIaiADQQh2OgAAIAEoAhwvAQYhAyABIAEoAhQiBEEBajYCFCAEIAEoAghqIAM6AAAgASgCHC0AByEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAKEASIDQQlHBEBBBCABKAKIAUEBSkECdCADQQJIGyECCyABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCDCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAAAJ/IAEoAhwiBCgCEARAIAQoAhQhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCFCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACABKAIcIQQLIAQoAiwLBEAgACAAKAIwIAEoAgggASgCFBA1NgIwCyABQcUANgIEIAFBADYCIAwCCyABKAIwQQx0QYCQfmohBEEAIQICQCABKAKIAUEBSg0AIAEoAoQBIgNBAkgNAEHAACECIANBBkgNAEGAAUHAASADQQZGGyECCyABQfEANgIEIAEgAiAEciICQSByIAIgASgCbBsiAkEfcCACckEfcxB1IAEoAmwEQCABIAAvATIQdSABIAAvATAQdQsgAEEAQQBBABBlNgIwIAEoAgQhAgsgAkHFAEcNASABKAIcIQQLAkAgBCgCEARAIAEoAhQhAiABKAIgIgUgBC8BFE8NASACIQMDQCABKAIMIAJGBEACQCACIANNDQAgBCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIcIQQgASgCFCICIAEoAgxGDQMgASgCICEFIAIhAwsgBCgCECAFai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgASABKAIgQQFqIgU2AiAgBSABKAIcIgQvARRPBEAgAyECDAMFIAEoAhQhAgwBCwALAAsgAUHJADYCBAwCCwJAIAQoAixFDQAgASgCFCIDIAJNDQAgACAAKAIwIAEoAgggAmogAyACaxA1NgIwCyABKAIgIAQoAhRGBEAgAUHJADYCBCABQQA2AiAMAgsgASgCBCECCyACQckARw0BIAEoAhwhBAsgBCgCHEUNAiABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIcIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB2wBHDQMgASgCHCEEDAILIAFBADYCIAsgAUHbADYCBAsgBCgCJEUNASABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIkIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB5wBHDQIgASgCHCEEDAELIAFB5wA2AgQLIAQoAiwEQCABKAIUIgVBAmoiAiABKAIMIgRLBH8gABA2IAEoAgwhBCABKAIUIgVBAmoFIAILIARLDQEgACgCMCECIAEgBUEBajYCFCABKAIIIAVqIAI6AAAgACgCMCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAAQQBBAEEAEDU2AjAgAUHxADYCBAwBCyABQfEANgIECwJAIAEoAhQEQCAAEDYgACgCEARAIAAoAgQhAgwCCwwECyAAKAIEIgINAEEAIQILAkACQAJAIAEoAgQiA0GaBUYEQCACRQ0BDAULIAINAQsgA0GaBUcNACABKAJ0RQ0BCwJ/AkACQAJAIAEoAogBQX5qDgIAAQILIAEQnQQMAgsgARCcBAwBCyABQQQgASgChAFBDGxBuNcAaigCABEDAAsiAkF+cUECRgRAIAFBmgU2AgQLIAJBfXFFBEBBACECIAAoAhANAgwECyACQQFHDQAgAUEAQQBBABCOAiAAEDYgACgCEA0ADAMLQQEhAiABKAIYIgNBAUgNACAAKAIwIQICQCADQQJGBEAgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAjAhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAJBCHY6AAAgAC8BMiECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACAALQAzIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAgghAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgACgCCCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAALwEKIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAtAAshAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAMAQsgASACQRB2EHUgASAALwEwEHULIAAQNiABKAIYIgBBAU4EQCABQQAgAGs2AhgLIAEoAhRFIQILIAIPCyAAQceEATYCGEF7DwsgAUF/NgIoQQAL3QEBBn8CQCAAKAKAgBAiBSAAKAKEgBAiAyAAKAKMgBAiBGpBBGpJDQAgACgClIAQIgIgBSADa0F9aiIGTw0AA0AgACACQf//A3FBAXRqQYCACGogAiAAIAIgA2oQOkECdGoiBCgCAGsiB0H//wMgB0H//wNJGzsBACAEIAI2AgAgAkEBaiICIAZJDQALIAAoAoyAECEECyAAIAQ2ApCAECAAIAM2AoiAECAAQQA2ApyAECAAIAE2AoCAECAAIAUgA2siAjYCjIAQIAAgAjYClIAQIAAgASACazYChIAQC9kDAQR/IwBBEGsiAyQAIAFBADYCACAAKAIAIgIgA0EMaiACKAIAKAIMEQMAIQICQCADKAIMRQ0AIAIsAAAhAiAAKAIAIgRBASAEKAIAKAIQEQQAIAEgASgCACACQf8AcXI2AgACQCACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQd0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQ50cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQRV0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACEFIAAoAgAiAEEBIAAoAgAoAhARBAAgASABKAIAIAVBHHRyNgIAIAVBf0oNAEEAIQUMAQtBASEFCyADQRBqJAAgBQvhSQE3fwJAIAAoAoCAECIJIAAoAoSAECILayAAKAKQgBBrIghBgIAETwRAIABBADYCnIAQDAELAkAgCA0AIAMoAgBBgSBIDQAgACAAKAKcgBBBoIAQECoiACABEKwEIAAgBTsBmIAQDAELAkAgBEEATEEAIAZBAkYbDQAgAygCACIIQYCAgPAHSw0AIAAgCCAJajYCgIAQQQkgBSAFQQFIGyIFQQwgBUEMSBsiG0EMbCIJQZQWaigCACEuAkACfyAbQQlNBEAgA0EANgIAIAIgBGoiOkF7aiA6IAZBAkYiOxshKSABIAhqITMgASEoIAIhCQJAIAhBDUgNACAzQXRqIjIgAUkNAEGANCAbdkEBcSE0IDNBe2oiGEF/aiEvIBhBfWohIkEAIRsDQCAAKAKUgBAhBCAAKAKIgBAhEyAAKAKcgBAhFCAoIQwDQCAAKAKQgBAiBSAMIAtrIh9BgYB8aiAFQYCABGogH0sbIRUgACgC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BEADQCADKAAAIAQoAABzIgkEQCAJECUgBGogAGsMBAsgA0EEaiEDIARBBGoiBCAUSQ0ACwsCQCAEIBhPDQAgAy8AACAELwAARw0AIANBAmohAyAEQQJqIQQLIAQgF0kEfyAEQQFqIAQgAy0AACAELQAARhsFIAQLIABrDAELIAMQJQsiAEHwAWpB/wFuakEIaiAPSw0EIAdBAmohAyAAIAZqQQRqIQYgBS0AACEEAn8gAEEPTwRAIAUgBEEPajoAACADQX8QNCAAQXFqIgRB/AdPBEADQCADQQRqIgNBfxA0IARBhHhqIgRB+wdLDQALCyADIARB//8DcUH/AW4iAGoiAyAAQYF+bCAEajoAACADQQFqDAELIAUgACAEajoAACADCyEFIAYgEU8NASAGQX5qIgAgACgAACALEDAgCCALIAwQSSAGKAAAIQACQAJAIBZFBEAgAEEBEDAiACAIEIUBIQQgBiAAIAhBASAMEEkgBEH//wNqIAZJDQEgBCgAACAGKAAARw0BDAILIAAgCxAwIgMgCCALEEghACAGIAxrIgQgAyAIIAsQXCAAQf//A2ogBEkNACAAIAxqIgQoAAAgBigAAEYNAQsgBkEBaiIDKAAAIAsQMCEEDAMLIAVBADoAACAFQQFqIQcMAAsACwtBACETIAUgECAGayIBaiABQfABakH/AW5qQQFqIA9LDQECQCABQQ9PBEAgBUHwAToAACAFQQFqIQAgAUFxaiIDQf8BSQRAIAAiBSADOgAADAILIABB/wEgAUHyfWoiAEH/AW5BAWoQKBogAEH/AW4iAyAFakECaiIFIANBgX5sIABqOgAADAELIAUgAUEEdDoAAAsgBUEBaiAGIAEQKiABaiACayETDAELIANBgICA8AdLDQAgASADaiIPQXVqIRAgD0F0aiEUIAgoAoCAASEAIAhBAUECIAFB//8DSxsiCzsBhoABIAggACADajYCgIABIAggCCgCkIABIANqNgKQgAEgASABKAAAIAsQMCAIIAsgASAAayIMEEkgD0F7aiITQX9qIRcgE0F9aiERIAZBBnQiCkEBciENIAFBAWoiAygAACALEDAhBCABQYCABEkhFSACIQUgASEGA0ACQCAVRQRAIAMgFEsNBCADQQFqIQ4gCiEJIA0hBwNAIAQgCBCFASEAIA4oAABBARAwIRIgAyAE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IAJBCE8EQANAIAMEQCADIAVsIQcgBUEHciIIIANsIQkgBUEGciIKIANsIQsgBUEFciIMIANsIQ0gBUEEciIOIANsIQ8gBUEDciIQIANsIREgBUECciISIANsIRMgBUEBciIUIANsIRVBACEEA0AgASAFIAIgBGwiBmpqIAAgBCAHamotAAA6AAAgASAGIBRqaiAAIAQgFWpqLQAAOgAAIAEgBiASamogACAEIBNqai0AADoAACABIAYgEGpqIAAgBCARamotAAA6AAAgASAGIA5qaiAAIAQgD2pqLQAAOgAAIAEgBiAMamogACAEIA1qai0AADoAACABIAYgCmpqIAAgBCALamotAAA6AAAgASAGIAhqaiAAIAQgCWpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEPaiEEIAVBCGohBSAEIAJJDQALCyACQXhxIgUgAk8NAANAIAMEQCADIAVsIQZBACEEA0AgASACIARsIAVqaiAAIAQgBmpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEBaiIFIAJHDQALCyACIANsrQuCAQEGfyABIAEgAG4iBiAAbGshByAAIAFNBEAgBkEBIAZBAUsbIQgDQCAABEAgACAEbCEJQQAhBQNAIAMgBSAJamogAiAFIAZsIARqai0AADoAACAFQQFqIgUgAEcNAAsLIARBAWoiBCAIRw0ACwsgAyABIAdrIgBqIAAgAmogBxAqGgsNACAAIAEgAiADEL0EC4IBAQZ/IAEgASAAbiIGIABsayEHIAAEQCAGQQEgBkEBSxshCANAIAAgAU0EQCAEIAZsIQlBACEFA0AgAyAFIAlqaiACIAAgBWwgBGpqLQAAOgAAIAVBAWoiBSAIRw0ACwsgBEEBaiIEIABHDQALCyADIAEgB2siAGogACACaiAHECoaC7gBAQN/AkAgAUEBSA0AIAAsAAAiBEH/AHEhAwJAIARBf0oNACABQQJIDQEgACwAASIEQQd0QYD/AHEgA3IhAyAEQX9KDQAgAUEDSA0BIAAsAAIiBEEOdEGAgP8AcSADciEDIARBf0oNACABQQRIDQEgACwAAyIEQRV0QYCAgP8AcSADciEDIARBf0oNACABQQVIDQEgAC0ABCIAQQ9LDQEgAEEcdCADciEDCyACIAM2AgBBASEFCyAFCw0AIAAgASACIAMQvwQLlAIB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CA0tEC0gLgAJDS4QLiAvAAoNLxAvIDAACw0wEDAgMQAEDjEQMSAyAAUOMhAyIDMABg4zEDMgNAAHDjQQNCA1AAgONRA1IDYACQ42EDYgNwAKDjcQNyA4AAsOOBA4IDkABA85EDkgOgAFDzoQOiA7AAYPOxA7IDwABw88EDwgAQgIDz0QPSABEAkPPhA+IAEYCg8/ED8gASALD0AQQCAAAAAA/wAAAP//AAD///8A/////2RlY29tcHJlc3MAY29tcHJlc3MAZnJlZV9yZXN1bHQAdmkAAHhzAABpaWlpaWlpAEGQDgvUBigHAAAwBwAAMAcAAMxzAADMcwAAzHMAABh0AAC2BwAAQHQAAEgHAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAABh0AACQBwAATlN0M19fMjIxX19iYXNpY19zdHJpbmdfY29tbW9uSUxiMUVFRQBOMTBlbXNjcmlwdGVuM3ZhbEUAAAAAGHQAANQHAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUAaWlpAAAoBwAAMAcAABgIAAAgCAAAJAgAACoIAAAxCAAANggAAGJsb3NjbHoAbHo0AGx6NGhjAHNuYXBweQB6bGliAHpzdGQARXJyb3IuICBudGhyZWFkcyBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gQkxPU0NfTUFYX1RIUkVBRFMgKCVkKQBFcnJvci4gIG50aHJlYWRzIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyAEVSUk9SOyByZXR1cm4gY29kZSBmcm9tIHB0aHJlYWRfY3JlYXRlKCkgaXMgJWQKAAlFcnJvciBkZXRhaWw6ICVzCgBCbG9zYyBoYXMgbm90IGJlZW4gY29tcGlsZWQgd2l0aCAnJXMnIABjb21wcmVzc2lvbiBzdXBwb3J0LiAgUGxlYXNlIHVzZSBvbmUgaGF2aW5nIGl0LgBFcnJvciBhbGxvY2F0aW5nIG1lbW9yeSEARVJST1I7IHJldHVybiBjb2RlIGZyb20gcHRocmVhZF9qb2luKCkgaXMgJWQKAElucHV0IGJ1ZmZlciBzaXplIGNhbm5vdCBleGNlZWQgJWQgYnl0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AAAIAAAACQAAAAkAAAAKAAAACgAAAAsAAAALAAAADAAAAAwAAAANAAAADQBBgNsAC/8IDAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBX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AAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgHAAAIhwAACEcAAAnvABAHCQAACF8AAAgfAAAJnwAUB2MAAAh/AAAIPwAACd8AEgcbAAAIbwAACC8AAAm/AAAIDwAACI8AAAhPAAAJ/wAQBQEAFwUBARMFEQAbBQEQEQUFABkFAQQVBUEAHQUBQBAFAwAYBQECFAUhABwFASASBQkAGgUBCBYFgQBABQAAEAUCABcFgQETBRkAGwUBGBEFBwAZBQEGFQVhAB0FAWAQBQQAGAUBAxQFMQAcBQEwEgUNABoFAQwWBcEAQAUAADEuMi44AHN0cmVhbSBlcnJvcgBpbnN1ZmZpY2llbnQgbWVtb3J5AGJ1ZmZlciBlcnJvcgBB5IQBC6EVazgHAA2yBwCc8gcAcGQIAGCuCgCwcQsAMKoMABMAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAATAAAADQAAAA4AAAABAAAABwAAAAAAAAABAAAAFAAAAA8AAAAQAAAAAQAAAAYAAAAAAAAAAQAAABUAAAAQAAAAEQAAAAEAAAAFAAAAAAAAAAIAAAAVAAAAEgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAgAAAAUAAAACAAAAAwAAABUAAAATAAAAEwAAAAMAAAAFAAAABAAAAAMAAAAVAAAAEwAAABMAAAADAAAABQAAAAgAAAAEAAAAFQAAABMAAAATAAAAAwAAAAUAAAAQAAAABQAAABUAAAATAAAAFAAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFAAAABUAAAAEAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABAAAAAUAAAAQAAAABQAAABYAAAAVAAAAFgAAAAUAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAIAAAAFAAAAAgAAAAMAAAASAAAAEgAAABIAAAADAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEQAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABEAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACAAAAACAAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAAKAAAAAwAAAAACAAAIAAAAEQAAABIAAAARAAAABQAAAAMAAAAAAQAACQAAABEAAAASAAAAEQAAAAcAAAADAAAAAAIAAAkAAAARAAAAEgAAABEAAAAJAAAAAwAAAAACAAAJAAAAEQAAABIAAAARAAAACwAAAAMAAADnAwAACQAAAA4AAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAAOAAAADgAAAA8AAAABAAAABQAAAAAAAAABAAAADgAAAA4AAAAPAAAAAQAAAAQAAAAAAAAAAQAAAA4AAAAOAAAADwAAAAIAAAAEAAAAAAAAAAIAAAAOAAAADgAAAA4AAAAEAAAABAAAAAIAAAADAAAADgAAAA4AAAAOAAAAAwAAAAQAAAAEAAAABAAAAA4AAAAOAAAADgAAAAQAAAAEAAAACAAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAgAAAAFAAAADgAAAA4AAAAOAAAACAAAAAQAAAAIAAAABQAAAA4AAAAPAAAADgAAAAUAAAAEAAAACAAAAAYAAAAOAAAADwAAAA4AAAAJAAAABAAAAAgAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAQAAAAMAAAABwAAAA4AAAAPAAAADgAAAAQAAAADAAAAGAAAAAcAAAAOAAAADwAAAA4AAAAFAAAAAwAAACAAAAAIAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAACAAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAFAAAAAwAAADAAAAAJAAAADgAAAA8AAAAPAAAABgAAAAMAAACAAAAACQAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAkAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAJAAAADgAAAA8AAAAPAAAACAAAAAMAAAAAAgAACQAAAA4AAAAPAAAADwAAAAkAAAADAAAAAAIAAAkAAAAOAAAADwAAAA8AAAAKAAAAAwAAAOcDAAAJAAAAIAAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADAAAAAxAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA4AEGQmgEL+gEEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AEGVnAEL+AcIAAAABwAAagYAAAAGAACtBQAAagUAADEFAAAABQAA1AQAAK0EAACKBAAAagQAAEwEAAAxBAAAFwQAAAAEAADpAwAA1AMAAMADAACtAwAAmwMAAIoDAAB5AwAAagMAAFsDAABMAwAAPgMAADEDAAAkAwAAFwMAAAsDAAAAAwAA9AIAAOkCAADeAgAA1AIAAMoCAADAAgAAtgIAAK0CAACkAgAAmwIAAJICAACKAgAAggIAAHkCAAByAgAAagIAAGICAABbAgAAUwIAAEwCAABFAgAAPgIAADcCAAAxAgAAKgIAACQCAAAeAgAAFwIAABECAAALAgAABQIAAAACAAD6AQAA9AEAAO8BAADpAQAA5AEAAN4BAADZAQAA1AEAAM8BAADKAQAAxQEAAMABAAC7AQAAtgEAALIBAACtAQAAqAEAAKQBAACfAQAAmwEAAJcBAACSAQAAjgEAAIoBAACGAQAAggEAAH4BAAB5AQAAdQEAAHIBAABuAQAAagEAAGYBAABiAQAAXgEAAFsBAABXAQAAUwEAAFABAABMAQAASQEAAEUBAABCAQAAPgEAADsBAAA3AQAANAEAADEBAAAuAQAAKgEAACcBAAAkAQAAIQEAAB4BAAAaAQAAFwEAABQBAAARAQAADgEAAAsBAAAIAQAABQEAAAIBAAAAAQAA/QAAAPoAAAD3AAAA9AAAAPEAAADvAAAA7AAAAOkAAADmAAAA5AAAAOEAAADeAAAA3AAAANkAAADXAAAA1AAAANEAAADPAAAAzAAAAMoAAADHAAAAxQAAAMIAAADAAAAAvgAAALsAAAC5AAAAtgAAALQAAACyAAAArwAAAK0AAACrAAAAqAAAAKYAAACkAAAAogAAAJ8AAACdAAAAmwAAAJkAAACXAAAAlQAAAJIA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AAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBsLIBC9YEAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAwAAAAMAAAAEAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBlLcBC4MEAQAAAAEAAAAFAAAADQAAAB0AAAA9AAAAfQAAAP0AAAD9AQAA/QMAAP0HAAD9DwAA/R8AAP0/AAD9fwAA/f8AAP3/AQD9/wMA/f8HAP3/DwD9/x8A/f8/AP3/fwD9//8A/f//Af3//wP9//8H/f//D/3//x/9//8//f//fwAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAAT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IGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AAAAGHQAAFBlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUAABh0AAB4ZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAAAYdAAAoGUAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQAAGHQAAMhlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAABh0AADwZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAAAYdAAAGGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQAAGHQAAEBmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAABh0AABoZgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAAAYdAAAkGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWFFRQAAGHQAALhmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAAEB0AADwZgAAAAAAAAEAAACIBwAAAAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAQHQAAExnAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAABAdAAAqGcAAAAAAAABAAAAiAcAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAQHQAAABoAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUAABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEGR0QELIQsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwBBy9EBCwEMAEHX0QELFQwAAAAADAAAAAAJDAAAAAAADAAADABBhdIBCwEOAEGR0gELFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBv9IBCwEQAEHL0gELHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBBgtMBCw4SAAAAEhISAAAAAAAACQBBs9MBCwELAEG/0wELFQoAAAAACgAAAAAJCwAAAAAACwAACwBB7dMBCwEMAEH50wELJwwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQBBsNQBC2cwMTIzNDU2Nzg5QUJDREVGGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGg1QEL9hNJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAYmFzaWNfc3RyaW5nAHN0ZDo6ZXhjZXB0aW9uAAAAAADccQAAPAAAAD0AAAA+AAAAGHQAAORxAABTdDlleGNlcHRpb24AAAAAAAAAAAhyAAAQAAAAPwAAAEAAAACMcgAAFHIAANxxAABTdDExbG9naWNfZXJyb3IAAAAAADhyAAAQAAAAQQAAAEAAAACMcgAARHIAAAhyAABTdDEybGVuZ3RoX2Vycm9yAFN0OXR5cGVfaW5mbwAAABh0AABVcgAAjHIAAAFzAABkcgAAjHIAAKxyAABscgAAAAAAANByAABCAAAAQwAAAEQAAABFAAAARgAAAEcAAABIAAAASQAAAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAIxyAADccgAAeHIAAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAAAAAABAcwAAQgAAAEoAAABEAAAARQAAAEsAAACMcgAATHMAAGxyAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgAAACxzAAB0cwAAYgAAACxzAACAcwAAYwAAACxzAACMcwAAaAAAACxzAACYcwAAYQAAACxzAACkcwAAcwAAACxzAACwcwAAdAAAACxzAAC8cwAAaQAAACxzAADIcwAAagAAACxzAADUcwAAbAAAACxzAADgcwAAbQAAACxzAADscwAAZgAAACxzAAD4cwAAZAAAACxzAAAEdAAAAAAAAHhyAABCAAAATAAAAEQAAABFAAAARgAAAE0AAABOAAAATwAAAAAAAABgdAAAQgAAAFAAAABEAAAARQAAAEYAAABRAAAAUgAAAFMAAACMcgAAbHQAAHhyAABOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9FAAAAcHUAQZjpAQtBgC0AAAAyAAABAQAAHgEAAA8AAACALAAAAC0AAAAAAAAeAAAADwAAAAAAAAAwLAAAAAAAABMAAAAHAAAAAAAAAAUAQeTpAQsBOQBB/OkBCwo6AAAAOwAAAC12AEGU6gELAQIAQaPqAQsF//////8AQejqAQsJoH5QAAAAAAAFAEH86gELAVQAQZTrAQsOOgAAAFUAAACYegAAAAQAQazrAQsBAQBBu+sBCwUK/////w==";!function(e){e[e.NOSHUFFLE=0]="NOSHUFFLE",e[e.SHUFFLE=1]="SHUFFLE",e[e.BITSHUFFLE=2]="BITSHUFFLE",e[e.AUTOSHUFFLE=-1]="AUTOSHUFFLE"}(nA||(nA={}));var oA,aA=new Set(["blosclz","lz4","lz4hc","snappy","zlib","zstd"]),sA=((AA=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"lz4",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:nA.SHUFFLE,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(Object(s.a)(this,e),t<0||t>9)throw new Error("Invalid compression level: '".concat(t,"'. It should be between 0 and 9"));if(!aA.has(A))throw new Error("Invalid compressor '".concat(A,"'. Valid compressors include\n 'blosclz', 'lz4', 'lz4hc','snappy', 'zlib', 'zstd'."));if(n<-1||n>2)throw new Error("Invalid shuffle ".concat(n,". Must be one of 0 (NOSHUFFLE),\n 1 (SHUFFLE), 2 (BITSHUFFLE), -1 (AUTOSHUFFLE)."));this.blocksize=r,this.clevel=t,this.cname=A,this.shuffle=n}return Object(g.a)(e,[{key:"encode",value:function(){var e=Object(a.a)(o.a.mark((function e(t){var A,n,r;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return oA||(oA=tA(rA,iA)),e.next=3,oA;case 3:return A=e.sent,n=A.compress(t,this.cname,this.clevel,this.shuffle,this.blocksize),r=new Uint8Array(n),A.free_result(),e.abrupt("return",r);case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"decode",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A){var n,r,i;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return oA||(oA=tA(rA,iA)),e.next=3,oA;case 3:if(n=e.sent,r=n.decompress(t),i=new Uint8Array(r),n.free_result(),void 0===A){e.next=10;break}return A.set(i),e.abrupt("return",A);case 10:return e.abrupt("return",i);case 11:case"end":return e.stop()}}),e)})));return function(t,A){return e.apply(this,arguments)}}()}],[{key:"fromConfig",value:function(t){var A=t.blocksize;return new e(t.clevel,t.cname,t.shuffle,A)}}]),e}()).codecId="blosc",AA.COMPRESSORS=Object(r.a)(aA),AA.NOSHUFFLE=nA.NOSHUFFLE,AA.SHUFFLE=nA.SHUFFLE,AA.BITSHUFFLE=nA.BITSHUFFLE,AA.AUTOSHUFFLE=nA.AUTOSHUFFLE,AA);Object(c.d)($t.codecId,(function(){return $t})),Object(c.d)(zt.codecId,(function(){return zt})),Object(c.d)(sA.codecId,(function(){return sA}))}).call(this,A(90),A(188).Buffer)},function(e,t,A){"use strict";A.d(t,"d",(function(){return r})),A.d(t,"e",(function(){return i})),A.d(t,"c",(function(){return o})),A.d(t,"b",(function(){return a})),A.d(t,"a",(function(){return s}));var n=A(85);function r(e){return"undefined"!==typeof WebGLRenderingContext&&e instanceof WebGLRenderingContext||("undefined"!==typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||Boolean(e&&Number.isFinite(e._version)))}function i(e){return"undefined"!==typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||Boolean(e&&2===e._version)}function o(e){return i(e)?e:null}function a(e){return Object(n.a)(r(e),"Invalid WebGLRenderingContext"),e}function s(e){return Object(n.a)(i(e),"Requires WebGL2"),e}},function(e,t,A){"use strict";A.d(t,"a",(function(){return a}));var n=A(393),r=A(395),i=A(203),o=A(394);function a(e){return Object(n.a)(e)||Object(r.a)(e)||Object(i.a)(e)||Object(o.a)()}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(993);Object.defineProperty(t,"Alpha",{enumerable:!0,get:function(){return u(n).default}});var r=A(488);Object.defineProperty(t,"Checkboard",{enumerable:!0,get:function(){return u(r).default}});var i=A(996);Object.defineProperty(t,"EditableInput",{enumerable:!0,get:function(){return u(i).default}});var o=A(997);Object.defineProperty(t,"Hue",{enumerable:!0,get:function(){return u(o).default}});var a=A(999);Object.defineProperty(t,"Raised",{enumerable:!0,get:function(){return u(a).default}});var s=A(1004);Object.defineProperty(t,"Saturation",{enumerable:!0,get:function(){return u(s).default}});var g=A(617);Object.defineProperty(t,"ColorWrap",{enumerable:!0,get:function(){return u(g).default}});var c=A(1009);function u(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"Swatch",{enumerable:!0,get:function(){return u(c).default}})},function(e,t,A){"use strict";A.r(t);var n=A(650),r=A(648),i=A(269),o=A(649),a=A(651),s=A(388),g=A(387),c=A(1),u=A(4),l=A(9),I=A(10),C=A(1256),h=A(36),f=function(e){Object(l.a)(A,e);var t=Object(I.a)(A);function A(){return Object(c.a)(this,A),t.apply(this,arguments)}return Object(u.a)(A,[{key:"getGeometry",value:function(e){return new C.a}},{key:"draw",value:function(e){var t=e.uniforms,A=this.props,n=A.elevationScale,r=A.extruded,i=A.offset,o=A.coverage,a=A.cellSize,s=A.angle,g=A.radiusUnits;this.state.model.setUniforms(t).setUniforms({radius:a/2,radiusUnits:h.d[g],angle:s,offset:i,extruded:r,coverage:o,elevationScale:n,edgeDistance:1,isWireframe:!1}).draw()}}]),A}(g.a);f.layerName="GridCellLayer",f.defaultProps={cellSize:{type:"number",min:0,value:1e3},offset:{type:"array",min:0,value:[1,1]}};var d=A(268),B=A(580),p=A(646),E=A(386),Q=A(267),y=A(391),v=A(389);A.d(t,"ArcLayer",(function(){return n.a})),A.d(t,"BitmapLayer",(function(){return r.a})),A.d(t,"IconLayer",(function(){return i.a})),A.d(t,"LineLayer",(function(){return o.a})),A.d(t,"PointCloudLayer",(function(){return a.a})),A.d(t,"ScatterplotLayer",(function(){return s.a})),A.d(t,"ColumnLayer",(function(){return g.a})),A.d(t,"GridCellLayer",(function(){return f})),A.d(t,"PathLayer",(function(){return d.a})),A.d(t,"PolygonLayer",(function(){return B.a})),A.d(t,"GeoJsonLayer",(function(){return p.a})),A.d(t,"TextLayer",(function(){return E.a})),A.d(t,"SolidPolygonLayer",(function(){return Q.a})),A.d(t,"_MultiIconLayer",(function(){return y.a})),A.d(t,"_TextBackgroundLayer",(function(){return v.a}))},function(e,t,A){"use strict";var n={};function r(e){var t=e&&e.lastIndexOf("/");return t>=0?e.substr(0,t):""}function i(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];var n="/";return(t=t.map((function(e,A){return A&&(e=e.replace(new RegExp("^".concat(n)),"")),A!==t.length-1&&(e=e.replace(new RegExp("".concat(n,"$")),"")),e}))).join(n)}A.r(n),A.d(n,"dirname",(function(){return r})),A.d(n,"join",(function(){return i}));A(366),A(637);A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"b",(function(){return i})),A.d(t,"a",(function(){return o}));var n=A(41),r={};function i(e){r=e}function o(e){var t;n.a.level>0&&r[e]&&(t=r[e]).call.apply(t,arguments)}},function(e,t,A){"use strict";A.d(t,"a",(function(){return n})),A.d(t,"b",(function(){return r}));var n={NO_STATE:"Awaiting state",MATCHED:"Matched. State transferred from previous layer",INITIALIZED:"Initialized",AWAITING_GC:"Discarded. Awaiting garbage collection",AWAITING_FINALIZATION:"No longer matched. Awaiting garbage collection",FINALIZED:"Finalized! Awaiting garbage collection"},r={COMPONENT:Symbol.for("component"),ASYNC_DEFAULTS:Symbol.for("asyncPropDefaults"),ASYNC_ORIGINAL:Symbol.for("asyncPropOriginal"),ASYNC_RESOLVED:Symbol.for("asyncPropResolved")}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getIntermediatePosition=function(e,t){return[(e[0]+t[0])/2,(e[1]+t[1])/2]},t.GeoJsonEditMode=void 0;var n=g(A(1154)),r=g(A(376)),i=g(A(1155)),o=g(A(1150)),a=A(99),s=A(158);function g(e){return e&&e.__esModule?e:{default:e}}function c(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){if(e){if("string"===typeof e)return l(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?l(e,t):void 0}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function I(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var C={type:"FeatureCollection",features:[]},h=[],f=function(){function e(){var t,A,n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),n=[],(A="_clickSequence")in(t=this)?Object.defineProperty(t,A,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[A]=n}var t,A,g;return t=e,(A=[{key:"getGuides",value:function(e){return C}},{key:"getTooltips",value:function(e){return h}},{key:"getSelectedFeature",value:function(e){return 1===e.selectedIndexes.length?e.data.features[e.selectedIndexes[0]]:null}},{key:"getSelectedGeometry",value:function(e){var t=this.getSelectedFeature(e);return t?t.geometry:null}},{key:"getSelectedFeaturesAsFeatureCollection",value:function(e){var t=e.data.features;return{type:"FeatureCollection",features:e.selectedIndexes.map((function(e){return t[e]}))}}},{key:"getClickSequence",value:function(){return this._clickSequence}},{key:"addClickSequence",value:function(e){var t=e.mapCoords;this._clickSequence.push(t)}},{key:"resetClickSequence",value:function(){this._clickSequence=[]}},{key:"getTentativeGuide",value:function(e){return this.getGuides(e).features.find((function(e){return e.properties&&"tentative"===e.properties.guideType}))}},{key:"isSelectionPicked",value:function(e,t){if(!e.length)return!1;var A=(0,a.getNonGuidePicks)(e).map((function(e){return e.index})),n=(0,a.getPickedEditHandles)(e).map((function(e){return e.properties.featureIndex})),r=new Set([].concat(c(A),c(n)));return t.selectedIndexes.some((function(e){return r.has(e)}))}},{key:"rewindPolygon",value:function(e){var t=e.geometry;return"Polygon"===t.type||"MultiPolygon"===t.type?(0,o.default)(e):e}},{key:"getAddFeatureAction",value:function(e,t){var A=e,n="Feature"===A.type?A:{type:"Feature",properties:{},geometry:A},r=this.rewindPolygon(n),i=new s.ImmutableFeatureCollection(t).addFeature(r).getObject();return{updatedData:i,editType:"addFeature",editContext:{featureIndexes:[i.features.length-1]}}}},{key:"getAddManyFeaturesAction",value:function(e,t){var A,n=e.features,r=new s.ImmutableFeatureCollection(t),i=r.getObject().features.length,o=[],a=function(e){if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=u(e))){var t=0,A=function(){};return{s:A,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:A}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,i=!0,o=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){o=!0,r=e},f:function(){try{i||null==n.return||n.return()}finally{if(o)throw r}}}}(n);try{for(a.s();!(A=a.n()).done;){var g=A.value,c=g.properties,l=g.geometry;r=r.addFeature({type:"Feature",properties:c,geometry:l}),o.push(i+o.length)}}catch(I){a.e(I)}finally{a.f()}return{updatedData:r.getObject(),editType:"addFeature",editContext:{featureIndexes:o}}}},{key:"getAddFeatureOrBooleanPolygonAction",value:function(e,t){var A=e,o=this.getSelectedFeature(t),a=t.modeConfig;if(a&&a.booleanOperation){if(!o||"Polygon"!==o.geometry.type&&"MultiPolygon"!==o.geometry.type)return console.warn("booleanOperation only supported for single Polygon or MultiPolygon selection"),null;var g,c="Feature"===A.type?A:{type:"Feature",geometry:A};if("union"===a.booleanOperation)g=(0,n.default)(o,c);else if("difference"===a.booleanOperation)g=(0,r.default)(o,c);else{if("intersection"!==a.booleanOperation)return console.warn("Invalid booleanOperation ".concat(a.booleanOperation)),null;g=(0,i.default)(o,c)}if(!g)return console.warn("Canceling edit. Boolean operation erased entire polygon."),null;var u=t.selectedIndexes[0];return{updatedData:new s.ImmutableFeatureCollection(t.data).replaceGeometry(u,g.geometry).getObject(),editType:"unionGeometry",editContext:{featureIndexes:[u]}}}return this.getAddFeatureAction(e,t.data)}},{key:"createTentativeFeature",value:function(e){return null}},{key:"handleClick",value:function(e,t){}},{key:"handlePointerMove",value:function(e,t){var A=this.createTentativeFeature(t);A&&t.onEdit({updatedData:t.data,editType:"updateTentativeFeature",editContext:{feature:A}})}},{key:"handleStartDragging",value:function(e,t){}},{key:"handleStopDragging",value:function(e,t){}},{key:"handleDragging",value:function(e,t){}},{key:"handleKeyUp",value:function(e,t){"Escape"===e.key&&(this.resetClickSequence(),t.onEdit({updatedData:t.data,editType:"cancelFeature",editContext:{}}))}}])&&I(t.prototype,A),g&&I(t,g),e}();t.GeoJsonEditMode=f},function(e,t,A){"use strict";A.d(t,"a",(function(){return d}));var n=A(1),r=A(4),i=A(24),o=A(9),a=A(10),s=A(92),g=A(139),c=A(119),u=A(18),l=A(26),I=A(323),C={offset:"accessor.offset",stride:"accessor.stride",type:"accessor.type",size:"accessor.size",divisor:"accessor.divisor",normalized:"accessor.normalized",integer:"accessor.integer",instanced:"accessor.divisor",isInstanced:"accessor.divisor"},h={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:C},f={removedProps:C},d=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(n.a)(this,A),(r=t.call(this,e,o)).stubRemovedMethods("Buffer","v6.0",["layout","setLayout","getIndexedParameter"]),r.target=o.target||(r.gl.webgl2?36662:34962),r.initialize(o),Object.seal(Object(i.a)(r)),r}return Object(r.a)(A,[{key:"getElementCount",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.accessor;return Math.round(this.byteLength/g.a.getBytesPerElement(e))}},{key:"getVertexCount",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.accessor;return Math.round(this.byteLength/g.a.getBytesPerVertex(e))}},{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ArrayBuffer.isView(e)&&(e={data:e}),Number.isFinite(e)&&(e={byteLength:e}),e=Object(I.a)("Buffer",e,h),this.usage=e.usage||35044,this.debugData=null,this.setAccessor(Object.assign({},e,e.accessor)),e.data?this._setData(e.data,e.offset,e.byteLength):this._setByteLength(e.byteLength||0),this}},{key:"setProps",value:function(e){return"accessor"in(e=Object(I.a)("Buffer",e,f))&&this.setAccessor(e.accessor),this}},{key:"setAccessor",value:function(e){return delete(e=Object.assign({},e)).buffer,this.accessor=new g.a(e),this}},{key:"reallocate",value:function(e){return e>this.byteLength?(this._setByteLength(e),!0):(this.bytesUsed=e,!1)}},{key:"setData",value:function(e){return this.initialize(e)}},{key:"subData",value:function(e){ArrayBuffer.isView(e)&&(e={data:e});var t=e,A=t.data,n=t.offset,r=void 0===n?0:n,i=t.srcOffset,o=void 0===i?0:i,a=e.byteLength||e.length;Object(l.a)(A);var s=this.gl.webgl2?36663:this.target;return this.gl.bindBuffer(s,this.handle),0!==o||void 0!==a?(Object(u.a)(this.gl),this.gl.bufferSubData(this.target,r,A,o,a)):this.gl.bufferSubData(s,r,A),this.gl.bindBuffer(s,null),this.debugData=null,this._inferType(A),this}},{key:"copyData",value:function(e){var t=e.sourceBuffer,A=e.readOffset,n=void 0===A?0:A,r=e.writeOffset,i=void 0===r?0:r,o=e.size,a=this.gl;return Object(u.a)(a),a.bindBuffer(36662,t.handle),a.bindBuffer(36663,this.handle),a.copyBufferSubData(36662,36663,n,i,o),a.bindBuffer(36662,null),a.bindBuffer(36663,null),this.debugData=null,this}},{key:"getData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dstData,A=void 0===t?null:t,n=e.srcByteOffset,r=void 0===n?0:n,i=e.dstOffset,o=void 0===i?0:i,a=e.length,s=void 0===a?0:a;Object(u.a)(this.gl);var g,I,C=Object(c.c)(this.accessor.type||5126,{clamped:!1}),h=this._getAvailableElementCount(r),f=o;A?g=(I=A.length)-f:I=f+(g=Math.min(h,s||h));var d=Math.min(h,g);return s=s||d,Object(l.a)(s<=d),A=A||new C(I),this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,r,A,o,s),this.gl.bindBuffer(36662,null),A}},{key:"bind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,A=void 0===t?this.target:t,n=e.index,r=void 0===n?this.accessor&&this.accessor.index:n,i=e.offset,o=void 0===i?0:i,a=e.size;return 35345===A||35982===A?void 0!==a?this.gl.bindBufferRange(A,r,this.handle,o,a):(Object(l.a)(0===o),this.gl.bindBufferBase(A,r,this.handle)):this.gl.bindBuffer(A,this.handle),this}},{key:"unbind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,A=void 0===t?this.target:t,n=e.index,r=void 0===n?this.accessor&&this.accessor.index:n,i=35345===A||35982===A;return i?this.gl.bindBufferBase(A,r,null):this.gl.bindBuffer(A,null),this}},{key:"getDebugData",value:function(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(10,this.byteLength)}),{data:this.debugData,changed:!0})}},{key:"invalidateDebugData",value:function(){this.debugData=null}},{key:"_setData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.byteLength+t;Object(l.a)(ArrayBuffer.isView(e)),this._trackDeallocatedMemory();var n=this._getTarget();this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,A,this.usage),this.gl.bufferSubData(n,t,e),this.gl.bindBuffer(n,null),this.debugData=e.slice(0,10),this.bytesUsed=A,this._trackAllocatedMemory(A);var r=Object(c.b)(e);return Object(l.a)(r),this.setAccessor(new g.a(this.accessor,{type:r})),this}},{key:"_setByteLength",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.usage;Object(l.a)(e>=0),this._trackDeallocatedMemory();var A=e;0===e&&(A=new Float32Array(0));var n=this._getTarget();return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,A,t),this.gl.bindBuffer(n,null),this.usage=t,this.debugData=null,this.bytesUsed=e,this._trackAllocatedMemory(e),this}},{key:"_getTarget",value:function(){return this.gl.webgl2?36663:this.target}},{key:"_getAvailableElementCount",value:function(e){var t=e/Object(c.c)(this.accessor.type||5126,{clamped:!1}).BYTES_PER_ELEMENT;return this.getElementCount()-t}},{key:"_inferType",value:function(e){this.accessor.type||this.setAccessor(new g.a(this.accessor,{type:Object(c.b)(e)}))}},{key:"_createHandle",value:function(){return this.gl.createBuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteBuffer(this.handle),this._trackDeallocatedMemory()}},{key:"_getParameter",value:function(e){this.gl.bindBuffer(this.target,this.handle);var t=this.gl.getBufferParameter(this.target,e);return this.gl.bindBuffer(this.target,null),t}},{key:"setByteLength",value:function(e){return u.k.deprecated("setByteLength","reallocate")(),this.reallocate(e)}},{key:"updateAccessor",value:function(e){return u.k.deprecated("updateAccessor(...)","setAccessor(new Accessor(buffer.accessor, ...)")(),this.accessor=new g.a(this.accessor,e),this}},{key:"type",get:function(){return u.k.deprecated("Buffer.type","Buffer.accessor.type")(),this.accessor.type}},{key:"bytes",get:function(){return u.k.deprecated("Buffer.bytes","Buffer.byteLength")(),this.byteLength}}]),A}(s.a)},function(e,t,A){"use strict";var n=Object.freeze({OUTSIDE:-1,INTERSECTING:0,INSIDE:1}),r=A(1),i=A(4),o=A(9),a=A(10),s=(A(91),A(11));function g(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}Math.PI,Math.PI;var c={};function u(e){return Math.round(e/c.EPSILON)*c.EPSILON}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.precision,n=void 0===A?c.precision||4:A;return e=u(e),"".concat(parseFloat(e.toPrecision(n)))}function I(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function C(e,t,A){var n=c.EPSILON;A&&(c.EPSILON=A);try{if(e===t)return!0;if(I(e)&&I(t)){if(e.length!==t.length)return!1;for(var r=0;r<e.length;++r)if(!C(e[r],t[r]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):!(!Number.isFinite(e)||!Number.isFinite(t))&&Math.abs(e-t)<=c.EPSILON*Math.max(1,Math.abs(e),Math.abs(t))}finally{c.EPSILON=n}}c.EPSILON=1e-12,c.debug=!1,c.precision=4,c.printTypes=!1,c.printDegrees=!1,c.printRowMajor=!0;var h=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"clone",value:function(){return(new this.constructor).copy(this)}},{key:"from",value:function(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}},{key:"fromArray",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)this[A]=e[A+t];return this.check()}},{key:"to",value:function(e){return e===this?this:I(e)?this.toArray(e):this.toObject(e)}},{key:"toTarget",value:function(e){return e?this.to(e):this}},{key:"toArray",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)e[t+A]=this[A];return e}},{key:"toFloat32Array",value:function(){return new Float32Array(this)}},{key:"toString",value:function(){return this.formatString(c)}},{key:"formatString",value:function(e){for(var t="",A=0;A<this.ELEMENTS;++A)t+=(A>0?", ":"")+l(this[A],e);return"".concat(e.printTypes?this.constructor.name:"","[").concat(t,"]")}},{key:"equals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(!C(this[t],e[t]))return!1;return!0}},{key:"exactEquals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(this[t]!==e[t])return!1;return!0}},{key:"negate",value:function(){for(var e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}},{key:"lerp",value:function(e,t,A){void 0===A&&(A=t,t=e,e=this);for(var n=0;n<this.ELEMENTS;++n){var r=e[n];this[n]=r+A*(t[n]-r)}return this.check()}},{key:"min",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.min(e[t],this[t]);return this.check()}},{key:"max",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.max(e[t],this[t]);return this.check()}},{key:"clamp",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e[A]),t[A]);return this.check()}},{key:"add",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]+=i[o];return this.check()}},{key:"subtract",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]-=i[o];return this.check()}},{key:"scale",value:function(e){if(Array.isArray(e))return this.multiply(e);for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"sub",value:function(e){return this.subtract(e)}},{key:"setScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=e;return this.check()}},{key:"addScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]+=e;return this.check()}},{key:"subScalar",value:function(e){return this.addScalar(-e)}},{key:"multiplyScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"divideScalar",value:function(e){return this.scale(1/e)}},{key:"clampScalar",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e),t);return this.check()}},{key:"multiplyByScalar",value:function(e){return this.scale(e)}},{key:"check",value:function(){if(c.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}},{key:"validate",value:function(){for(var e=this.length===this.ELEMENTS,t=0;t<this.ELEMENTS;++t)e=e&&Number.isFinite(this[t]);return e}},{key:"ELEMENTS",get:function(){return g(!1),0}},{key:"elements",get:function(){return this}}]),A}(function(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}(Array));function f(e,t){if(e.length!==t)return!1;for(var A=0;A<e.length;++A)if(!Number.isFinite(e[A]))return!1;return!0}function d(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(e));return e}function B(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(c.debug&&!f(e,t))throw new Error("math.gl: ".concat(A," some fields set to invalid numbers'"));return e}var p={};function E(e,t){p[e]||(p[e]=!0,console.warn("".concat(e," has been removed in version ").concat(t,", see upgrade guide for more information")))}var Q=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"copy",value:function(e){return g(!1),this}},{key:"len",value:function(){return Math.sqrt(this.lengthSquared())}},{key:"magnitude",value:function(){return this.len()}},{key:"lengthSquared",value:function(){for(var e=0,t=0;t<this.ELEMENTS;++t)e+=this[t]*this[t];return e}},{key:"magnitudeSquared",value:function(){return this.lengthSquared()}},{key:"distance",value:function(e){return Math.sqrt(this.distanceSquared(e))}},{key:"distanceSquared",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A){var n=this[A]-e[A];t+=n*n}return d(t)}},{key:"dot",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A)t+=this[A]*e[A];return d(t)}},{key:"normalize",value:function(){var e=this.magnitude();if(0!==e)for(var t=0;t<this.ELEMENTS;++t)this[t]/=e;return this.check()}},{key:"multiply",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]*=i[o];return this.check()}},{key:"divide",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]/=i[o];return this.check()}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"distanceTo",value:function(e){return this.distance(e)}},{key:"distanceToSquared",value:function(e){return this.distanceSquared(e)}},{key:"getComponent",value:function(e){return g(e>=0&&e<this.ELEMENTS,"index is out of range"),d(this[e])}},{key:"setComponent",value:function(e,t){return g(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=t,this.check()}},{key:"addVectors",value:function(e,t){return this.copy(e).add(t)}},{key:"subVectors",value:function(e,t){return this.copy(e).subtract(t)}},{key:"multiplyVectors",value:function(e,t){return this.copy(e).multiply(t)}},{key:"addScaledVector",value:function(e,t){return this.add(new this.constructor(e).multiplyScalar(t))}},{key:"ELEMENTS",get:function(){return g(!1),0}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=d(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=d(e)}}]),A}(h),y=A(29);function v(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[3]*n+A[7]*r+A[11]*i||1;return e[0]=(A[0]*n+A[4]*r+A[8]*i)/o,e[1]=(A[1]*n+A[5]*r+A[9]*i)/o,e[2]=(A[2]*n+A[6]*r+A[10]*i)/o,e}var m=[0,0,0],b={},w=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return Object(r.a)(this,A),e=t.call(this,-0,-0,-0),1===arguments.length&&I(n)?e.copy(n):(c.debug&&(d(n),d(i),d(o)),e[0]=n,e[1]=i,e[2]=o),e}return Object(i.a)(A,null,[{key:"ZERO",get:function(){return b.ZERO=b.ZERO||Object.freeze(new A(0,0,0,0))}}]),Object(i.a)(A,[{key:"set",value:function(e,t,A){return this[0]=e,this[1]=t,this[2]=A,this.check()}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}},{key:"fromObject",value:function(e){return c.debug&&(d(e.x),d(e.y),d(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}},{key:"toObject",value:function(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}},{key:"angle",value:function(e){return y.a(this,e)}},{key:"cross",value:function(e){return y.c(this,this,e),this.check()}},{key:"rotateX",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?m:A;return y.j(this,this,n,t),this.check()}},{key:"rotateY",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?m:A;return y.k(this,this,n,t),this.check()}},{key:"rotateZ",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?m:A;return y.l(this,this,n,t),this.check()}},{key:"transform",value:function(e){return this.transformAsPoint(e)}},{key:"transformAsPoint",value:function(e){return y.p(this,this,e),this.check()}},{key:"transformAsVector",value:function(e){return v(this,this,e),this.check()}},{key:"transformByMatrix3",value:function(e){return y.o(this,this,e),this.check()}},{key:"transformByMatrix2",value:function(e){return function(e,t,A){var n=t[0],r=t[1];e[0]=A[0]*n+A[2]*r,e[1]=A[1]*n+A[3]*r,e[2]=t[2]}(this,this,e),this.check()}},{key:"transformByQuaternion",value:function(e){return y.q(this,this,e),this.check()}},{key:"ELEMENTS",get:function(){return 3}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=d(e)}}]),A}(Q),S=new w,F=new w,R=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[0,0,0],A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Object(r.a)(this,e),n=n||S.copy(t).add(A).scale(.5),this.center=new w(n),this.halfDiagonal=new w(A).subtract(this.center),this.minimum=new w(t),this.maximum=new w(A)}return Object(i.a)(e,[{key:"clone",value:function(){return new e(this.minimum,this.maximum,this.center)}},{key:"equals",value:function(e){return this===e||Boolean(e)&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}},{key:"transform",value:function(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}},{key:"intersectPlane",value:function(e){var t=this.halfDiagonal,A=F.from(e.normal),r=t.x*Math.abs(A.x)+t.y*Math.abs(A.y)+t.z*Math.abs(A.z),i=this.center.dot(A)+e.distance;return i-r>0?n.INSIDE:i+r<0?n.OUTSIDE:n.INTERSECTING}},{key:"distanceTo",value:function(e){return Math.sqrt(this.distanceSquaredTo(e))}},{key:"distanceSquaredTo",value:function(e){var t,A=S.from(e).subtract(this.center),n=this.halfDiagonal,r=0;return(t=Math.abs(A.x)-n.x)>0&&(r+=t*t),(t=Math.abs(A.y)-n.y)>0&&(r+=t*t),(t=Math.abs(A.z)-n.z)>0&&(r+=t*t),r}}]),e}(),D=A(27),G=new w,k=new w,x=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[0,0,0],A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;Object(r.a)(this,e),this.radius=-0,this.center=new w,this.fromCenterRadius(t,A)}return Object(i.a)(e,[{key:"fromCenterRadius",value:function(e,t){return this.center.from(e),this.radius=t,this}},{key:"fromCornerPoints",value:function(e,t){return t=G.from(t),this.center=(new w).from(e).add(t).scale(.5),this.radius=this.center.distance(t),this}},{key:"equals",value:function(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius}},{key:"clone",value:function(){return new e(this.center,this.radius)}},{key:"union",value:function(e){var t=this.center,A=this.radius,n=e.center,r=e.radius,i=G.copy(n).subtract(t),o=i.magnitude();if(A>=o+r)return this.clone();if(r>=o+A)return e.clone();var a=.5*(A+o+r);return k.copy(i).scale((-A+a)/o).add(t),this.center.copy(k),this.radius=a,this}},{key:"expand",value:function(e){var t=(e=G.from(e)).subtract(this.center).magnitude();return t>this.radius&&(this.radius=t),this}},{key:"transform",value:function(e){this.center.transform(e);var t=D.d(G,e);return this.radius=Math.max(t[0],Math.max(t[1],t[2]))*this.radius,this}},{key:"distanceSquaredTo",value:function(e){var t=this.distanceTo(e);return t*t}},{key:"distanceTo",value:function(e){var t=(e=G.from(e)).subtract(this.center);return Math.max(0,t.len()-this.radius)}},{key:"intersectPlane",value:function(e){var t=this.center,A=this.radius,r=e.normal.dot(t)+e.distance;return r<-A?n.OUTSIDE:r<A?n.INTERSECTING:n.INSIDE}}]),e}(),N=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"toString",value:function(){var e="[";if(c.printRowMajor){e+="row-major:";for(var t=0;t<this.RANK;++t)for(var A=0;A<this.RANK;++A)e+=" ".concat(this[A*this.RANK+t])}else{e+="column-major:";for(var n=0;n<this.ELEMENTS;++n)e+=" ".concat(this[n])}return e+="]"}},{key:"getElementIndex",value:function(e,t){return t*this.RANK+e}},{key:"getElement",value:function(e,t){return this[t*this.RANK+e]}},{key:"setElement",value:function(e,t,A){return this[t*this.RANK+e]=d(A),this}},{key:"getColumn",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Array(this.RANK).fill(-0),A=e*this.RANK,n=0;n<this.RANK;++n)t[n]=this[A+n];return t}},{key:"setColumn",value:function(e,t){for(var A=e*this.RANK,n=0;n<this.RANK;++n)this[A+n]=t[n];return this}},{key:"ELEMENTS",get:function(){return g(!1),0}},{key:"RANK",get:function(){return g(!1),0}}]),A}(h),U=A(58),_=A(70),M=Object.freeze([1,0,0,0,1,0,0,0,1]),O=Object.freeze([0,0,0,0,0,0,0,0,0]),L=Object.freeze({COL0ROW0:0,COL0ROW1:1,COL0ROW2:2,COL1ROW0:3,COL1ROW1:4,COL1ROW2:5,COL2ROW0:6,COL2ROW1:7,COL2ROW2:8}),T={},Z=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){var n;return Object(r.a)(this,A),n=t.call(this,-0,-0,-0,-0,-0,-0,-0,-0,-0),1===arguments.length&&Array.isArray(e)?n.copy(e):n.identity(),n}return Object(i.a)(A,[{key:"ELEMENTS",get:function(){return 9}},{key:"RANK",get:function(){return 3}},{key:"INDICES",get:function(){return L}}],[{key:"IDENTITY",get:function(){return T.IDENTITY=T.IDENTITY||Object.freeze(new A(M)),T.IDENTITY}},{key:"ZERO",get:function(){return T.ZERO=T.ZERO||Object.freeze(new A(O)),T.ZERO}}]),Object(i.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}},{key:"set",value:function(e,t,A,n,r,i,o,a,s){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this[4]=r,this[5]=i,this[6]=o,this[7]=a,this[8]=s,this.check()}},{key:"setRowMajor",value:function(e,t,A,n,r,i,o,a,s){return this[0]=e,this[1]=n,this[2]=o,this[3]=t,this[4]=r,this[5]=a,this[6]=A,this[7]=i,this[8]=s,this.check()}},{key:"determinant",value:function(){return U.b(this)}},{key:"identity",value:function(){return this.copy(M)}},{key:"fromQuaternion",value:function(e){return U.c(this,e),this.check()}},{key:"transpose",value:function(){return U.i(this,this),this.check()}},{key:"invert",value:function(){return U.d(this,this),this.check()}},{key:"multiplyLeft",value:function(e){return U.e(this,e,this),this.check()}},{key:"multiplyRight",value:function(e){return U.e(this,this,e),this.check()}},{key:"rotate",value:function(e){return U.f(this,this,e),this.check()}},{key:"scale",value:function(e){return Array.isArray(e)?U.g(this,this,e):U.g(this,this,[e,e,e]),this.check()}},{key:"translate",value:function(e){return U.h(this,this,e),this.check()}},{key:"transform",value:function(e,t){switch(e.length){case 2:t=_.e(t||[-0,-0],e,this);break;case 3:t=y.o(t||[-0,-0,-0],e,this);break;case 4:t=function(e,t,A){var n=t[0],r=t[1],i=t[2];return e[0]=A[0]*n+A[3]*r+A[6]*i,e[1]=A[1]*n+A[4]*r+A[7]*i,e[2]=A[2]*n+A[5]*r+A[8]*i,e[3]=t[3],e}(t||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return B(t,e.length),t}},{key:"transformVector",value:function(e,t){return E("Matrix3.transformVector"),this.transform(e,t)}},{key:"transformVector2",value:function(e,t){return E("Matrix3.transformVector"),this.transform(e,t)}},{key:"transformVector3",value:function(e,t){return E("Matrix3.transformVector"),this.transform(e,t)}}]),A}(N),H=A(34),Y=A(56),J=[0,0,0,1],j=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return Object(r.a)(this,A),e=t.call(this,-0,-0,-0,-0),Array.isArray(n)&&1===arguments.length?e.copy(n):e.set(n,i,o,a),e}return Object(i.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}},{key:"set",value:function(e,t,A,n){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this.check()}},{key:"fromMatrix3",value:function(e){return H.e(this,e),this.check()}},{key:"identity",value:function(){return H.f(this),this.check()}},{key:"fromAxisRotation",value:function(e,t){return H.p(this,e,t),this.check()}},{key:"setAxisAngle",value:function(e,t){return this.fromAxisRotation(e,t)}},{key:"len",value:function(){return H.h(this)}},{key:"lengthSquared",value:function(){return H.r(this)}},{key:"dot",value:function(e,t){if(void 0!==t)throw new Error("Quaternion.dot only takes one argument");return H.d(this,e)}},{key:"rotationTo",value:function(e,t){return H.n(this,e,t),this.check()}},{key:"add",value:function(e,t){if(void 0!==t)throw new Error("Quaternion.add only takes one argument");return H.a(this,this,e),this.check()}},{key:"calculateW",value:function(){return H.b(this,this),this.check()}},{key:"conjugate",value:function(){return H.c(this,this),this.check()}},{key:"invert",value:function(){return H.g(this,this),this.check()}},{key:"lerp",value:function(e,t,A){return H.i(this,e,t,A),this.check()}},{key:"multiplyRight",value:function(e,t){return g(!t),H.j(this,this,e),this.check()}},{key:"multiplyLeft",value:function(e,t){return g(!t),H.j(this,e,this),this.check()}},{key:"normalize",value:function(){var e=this.len(),t=e>0?1/e:0;return this[0]=this[0]*t,this[1]=this[1]*t,this[2]=this[2]*t,this[3]=this[3]*t,0===e&&(this[3]=1),this.check()}},{key:"rotateX",value:function(e){return H.k(this,this,e),this.check()}},{key:"rotateY",value:function(e){return H.l(this,this,e),this.check()}},{key:"rotateZ",value:function(e){return H.m(this,this,e),this.check()}},{key:"scale",value:function(e){return H.o(this,this,e),this.check()}},{key:"slerp",value:function(e,t,A){switch(arguments.length){case 1:var n=arguments[0],r=n.start;e=void 0===r?J:r,t=n.target,A=n.ratio;break;case 2:var i=Array.prototype.slice.call(arguments);t=i[0],A=i[1],e=this}return H.q(this,e,t,A),this.check()}},{key:"transformVector4",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return Y.o(t,e,this),B(t,4)}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"setFromAxisAngle",value:function(e,t){return this.setAxisAngle(e,t)}},{key:"premultiply",value:function(e,t){return this.multiplyLeft(e,t)}},{key:"multiply",value:function(e,t){return this.multiplyRight(e,t)}},{key:"ELEMENTS",get:function(){return 4}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=d(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=d(e)}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=d(e)}},{key:"w",get:function(){return this[3]},set:function(e){this[3]=d(e)}}]),A}(h),P=new w,V=new w,K=new w,W=new w,X=new w,q=new w,z=new w,$=0,ee=1,te=2,Ae=3,ne=4,re=5,ie=6,oe=7,ae=8,se=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[0,0,0],A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0,0,0,0,0,0,0];Object(r.a)(this,e),this.center=(new w).from(t),this.halfAxes=new Z(A)}return Object(i.a)(e,[{key:"fromCenterHalfSizeQuaternion",value:function(e,t,A){var n=new j(A),r=(new Z).fromQuaternion(n);return r[0]=r[0]*t[0],r[1]=r[1]*t[0],r[2]=r[2]*t[0],r[3]=r[3]*t[1],r[4]=r[4]*t[1],r[5]=r[5]*t[1],r[6]=r[6]*t[2],r[7]=r[7]*t[2],r[8]=r[8]*t[2],this.center=(new w).from(e),this.halfAxes=r,this}},{key:"clone",value:function(){return new e(this.center,this.halfAxes)}},{key:"equals",value:function(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}},{key:"getBoundingSphere",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new x,t=this.halfAxes,A=t.getColumn(0,K),n=t.getColumn(1,W),r=t.getColumn(2,X),i=P.copy(A).add(n).add(r);return e.center.copy(this.center),e.radius=i.magnitude(),e}},{key:"intersectPlane",value:function(e){var t=this.center,A=e.normal,r=this.halfAxes,i=A.x,o=A.y,a=A.z,s=Math.abs(i*r[$]+o*r[ee]+a*r[te])+Math.abs(i*r[Ae]+o*r[ne]+a*r[re])+Math.abs(i*r[ie]+o*r[oe]+a*r[ae]),g=A.dot(t)+e.distance;return g<=-s?n.OUTSIDE:g>=s?n.INSIDE:n.INTERSECTING}},{key:"distanceTo",value:function(e){return Math.sqrt(this.distanceSquaredTo(e))}},{key:"distanceSquaredTo",value:function(e){var t=V.from(e).subtract(this.center),A=this.halfAxes,n=A.getColumn(0,K),r=A.getColumn(1,W),i=A.getColumn(2,X),o=n.magnitude(),a=r.magnitude(),s=i.magnitude();n.normalize(),r.normalize(),i.normalize();var g,c=0;return(g=Math.abs(t.dot(n))-o)>0&&(c+=g*g),(g=Math.abs(t.dot(r))-a)>0&&(c+=g*g),(g=Math.abs(t.dot(i))-s)>0&&(c+=g*g),c}},{key:"computePlaneDistances",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[-0,-0],n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,i=this.center,o=this.halfAxes,a=o.getColumn(0,K),s=o.getColumn(1,W),g=o.getColumn(2,X),c=q.copy(a).add(s).add(g).add(i),u=z.copy(c).subtract(e),l=t.dot(u);return n=Math.min(l,n),r=Math.max(l,r),c.copy(i).add(a).add(s).subtract(g),u.copy(c).subtract(e),l=t.dot(u),n=Math.min(l,n),r=Math.max(l,r),c.copy(i).add(a).subtract(s).add(g),u.copy(c).subtract(e),l=t.dot(u),n=Math.min(l,n),r=Math.max(l,r),c.copy(i).add(a).subtract(s).subtract(g),u.copy(c).subtract(e),l=t.dot(u),n=Math.min(l,n),r=Math.max(l,r),i.copy(c).subtract(a).add(s).add(g),u.copy(c).subtract(e),l=t.dot(u),n=Math.min(l,n),r=Math.max(l,r),i.copy(c).subtract(a).add(s).subtract(g),u.copy(c).subtract(e),l=t.dot(u),n=Math.min(l,n),r=Math.max(l,r),i.copy(c).subtract(a).subtract(s).add(g),u.copy(c).subtract(e),l=t.dot(u),n=Math.min(l,n),r=Math.max(l,r),i.copy(c).subtract(a).subtract(s).subtract(g),u.copy(c).subtract(e),l=t.dot(u),n=Math.min(l,n),r=Math.max(l,r),A[0]=n,A[1]=r,A}},{key:"transform",value:function(e){this.center.transformAsPoint(e);var t=this.halfAxes.getColumn(0,K);t.transformAsPoint(e);var A=this.halfAxes.getColumn(1,W);A.transformAsPoint(e);var n=this.halfAxes.getColumn(2,X);return n.transformAsPoint(e),this.halfAxes=new Z([].concat(Object(s.a)(t),Object(s.a)(A),Object(s.a)(n))),this}},{key:"getTransform",value:function(){throw new Error("not implemented")}},{key:"halfSize",get:function(){var e=this.halfAxes.getColumn(0),t=this.halfAxes.getColumn(1),A=this.halfAxes.getColumn(2);return[new w(e).len(),new w(t).len(),new w(A).len()]}},{key:"quaternion",get:function(){var e=this.halfAxes.getColumn(0),t=this.halfAxes.getColumn(1),A=this.halfAxes.getColumn(2),n=new w(e).normalize(),r=new w(t).normalize(),i=new w(A).normalize();return(new j).fromMatrix3(new Z([].concat(Object(s.a)(n),Object(s.a)(r),Object(s.a)(i))))}}]),e}(),ge=A(6),ce=new w,ue=new w,le=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[0,0,1],A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;Object(r.a)(this,e),this.normal=new w,this.distance=-0,this.fromNormalDistance(t,A)}return Object(i.a)(e,[{key:"fromNormalDistance",value:function(e,t){return g(Number.isFinite(t)),this.normal.from(e).normalize(),this.distance=t,this}},{key:"fromPointNormal",value:function(e,t){e=ce.from(e),this.normal.from(t).normalize();var A=-this.normal.dot(e);return this.distance=A,this}},{key:"fromCoefficients",value:function(e,t,A,n){return this.normal.set(e,t,A),g(C(this.normal.len(),1)),this.distance=n,this}},{key:"clone",value:function(t){return new e(this.normal,this.distance)}},{key:"equals",value:function(e){return C(this.distance,e.distance)&&C(this.normal,e.normal)}},{key:"getPointDistance",value:function(e){return this.normal.dot(e)+this.distance}},{key:"transform",value:function(e){var t=ue.copy(this.normal).transformAsVector(e).normalize(),A=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(A,t)}},{key:"projectPointOntoPlane",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0];e=ce.from(e);var A=this.getPointDistance(e),n=ue.copy(this.normal).scale(A);return e.subtract(n).to(t)}}]),e}(),Ie=[new w([1,0,0]),new w([0,1,0]),new w([0,0,1])],Ce=new w,he=new w,fe=(new le(new w(1,0,0),0),function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];Object(r.a)(this,e),this.planes=t,g(this.planes.every((function(e){return e instanceof le})))}return Object(i.a)(e,null,[{key:"MASK_OUTSIDE",get:function(){return 4294967295}},{key:"MASK_INSIDE",get:function(){return 0}},{key:"MASK_INDETERMINATE",get:function(){return 2147483647}}]),Object(i.a)(e,[{key:"fromBoundingSphere",value:function(e){this.planes.length=2*Ie.length;var t,A=e.center,n=e.radius,r=0,i=Object(ge.a)(Ie);try{for(i.s();!(t=i.n()).done;){var o=t.value,a=this.planes[r],s=this.planes[r+1];a||(a=this.planes[r]=new le),s||(s=this.planes[r+1]=new le);var g=Ce.copy(o).scale(-n).add(A);o.dot(g);a.fromPointNormal(g,o);var c=Ce.copy(o).scale(n).add(A),u=he.copy(o).negate();u.dot(c);s.fromPointNormal(c,u),r+=2}}catch(l){i.e(l)}finally{i.f()}return this}},{key:"computeVisibility",value:function(e){g(e);var t,A=n.INSIDE,r=Object(ge.a)(this.planes);try{for(r.s();!(t=r.n()).done;){var i=t.value;switch(e.intersectPlane(i)){case n.OUTSIDE:return n.OUTSIDE;case n.INTERSECTING:A=n.INTERSECTING}}}catch(o){r.e(o)}finally{r.f()}return A}},{key:"computeVisibilityWithPlaneMask",value:function(t,A){if(g(t,"boundingVolume is required."),g(Number.isFinite(A),"parentPlaneMask is required."),A===e.MASK_OUTSIDE||A===e.MASK_INSIDE)return A;for(var r=e.MASK_INSIDE,i=this.planes,o=0;o<this.planes.length;++o){var a=o<31?1<<o:0;if(!(o<31&&0===(A&a))){var s=i[o],c=t.intersectPlane(s);if(c===n.OUTSIDE)return e.MASK_OUTSIDE;c===n.INTERSECTING&&(r|=a)}}return r}}]),e}());A(7),A(8),Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),Object.freeze([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze({COL0ROW0:0,COL0ROW1:1,COL0ROW2:2,COL0ROW3:3,COL1ROW0:4,COL1ROW1:5,COL1ROW2:6,COL1ROW3:7,COL2ROW0:8,COL2ROW1:9,COL2ROW2:10,COL2ROW3:11,COL3ROW0:12,COL3ROW1:13,COL3ROW2:14,COL3ROW3:15}),new w,new w,new w,new w,new w;new w,new w,new w,new w,new w,new w,new w,new w,new w,new w,new w,new w,Math.PI;var de=1e-15,Be=1e-20,pe=(Math.PI,Math.PI,Math.PI,Math.PI,new Z),Ee=new Z,Qe=new Z,ye=new Z,ve=new Z;function me(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=Be,n=10,r=0,i=0,o=Ee,a=Qe;o.identity(),a.copy(e);for(var s=A*be(a);i<n&&Fe(a)>s;)Re(a,ye),ve.copy(ye).transpose(),a.multiplyRight(ye),a.multiplyLeft(ve),o.multiplyRight(ye),++r>2&&(++i,r=0);return t.unitary=o.toTarget(t.unitary),t.diagonal=a.toTarget(t.diagonal),t}function be(e){for(var t=0,A=0;A<9;++A){var n=e[A];t+=n*n}return Math.sqrt(t)}var we=[1,0,0],Se=[2,2,1];function Fe(e){for(var t=0,A=0;A<3;++A){var n=e[pe.getElementIndex(Se[A],we[A])];t+=2*n*n}return Math.sqrt(t)}function Re(e,t){for(var A=de,n=0,r=1,i=0;i<3;++i){var o=Math.abs(e[pe.getElementIndex(Se[i],we[i])]);o>n&&(r=i,n=o)}var a=we[r],s=Se[r],g=1,c=0;if(Math.abs(e[pe.getElementIndex(s,a)])>A){var u,l=(e[pe.getElementIndex(s,s)]-e[pe.getElementIndex(a,a)])/2/e[pe.getElementIndex(s,a)];c=(u=l<0?-1/(-l+Math.sqrt(1+l*l)):1/(l+Math.sqrt(1+l*l)))*(g=1/Math.sqrt(1+u*u))}return Z.IDENTITY.to(t),t[pe.getElementIndex(a,a)]=t[pe.getElementIndex(s,s)]=g,t[pe.getElementIndex(s,a)]=c,t[pe.getElementIndex(a,s)]=-c,t}var De=new w,Ge=new w,ke=new w,xe=new w,Ne=new w,Ue=new Z,_e={diagonal:new Z,unitary:new Z};function Me(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new se;if(!e||0===e.length)return t.halfAxes=new Z([0,0,0,0,0,0,0,0,0]),t.center=new w,t;var A,n=e.length,r=new w(0,0,0),i=Object(ge.a)(e);try{for(i.s();!(A=i.n()).done;){var o=A.value;r.add(o)}}catch(M){i.e(M)}finally{i.f()}var a=1/n;r.multiplyByScalar(a);var s,g=0,c=0,u=0,l=0,I=0,C=0,h=Object(ge.a)(e);try{for(h.s();!(s=h.n()).done;){var f=s.value,d=De.copy(f).subtract(r);g+=d.x*d.x,c+=d.x*d.y,u+=d.x*d.z,l+=d.y*d.y,I+=d.y*d.z,C+=d.z*d.z}}catch(M){h.e(M)}finally{h.f()}g*=a,c*=a,u*=a,l*=a,I*=a,C*=a;var B=Ue;B[0]=g,B[1]=c,B[2]=u,B[3]=c,B[4]=l,B[5]=I,B[6]=u,B[7]=I,B[8]=C;var p,E=me(B,_e),Q=E.unitary,y=t.halfAxes.copy(Q),v=y.getColumn(0,ke),m=y.getColumn(1,xe),b=y.getColumn(2,Ne),S=-Number.MAX_VALUE,F=-Number.MAX_VALUE,R=-Number.MAX_VALUE,D=Number.MAX_VALUE,G=Number.MAX_VALUE,k=Number.MAX_VALUE,x=Object(ge.a)(e);try{for(x.s();!(p=x.n()).done;){var N=p.value;De.copy(N),S=Math.max(De.dot(v),S),F=Math.max(De.dot(m),F),R=Math.max(De.dot(b),R),D=Math.min(De.dot(v),D),G=Math.min(De.dot(m),G),k=Math.min(De.dot(b),k)}}catch(M){x.e(M)}finally{x.f()}v=v.multiplyByScalar(.5*(D+S)),m=m.multiplyByScalar(.5*(G+F)),b=b.multiplyByScalar(.5*(k+R)),t.center.copy(v).add(m).add(b);var U=Ge.set(S-D,F-G,R-k).multiplyByScalar(.5),_=new Z([U[0],0,0,0,U[1],0,0,0,U[2]]);return t.halfAxes.multiplyRight(_),t}A.d(t,"a",(function(){return R})),A.d(t,"b",(function(){return x})),A.d(t,"d",(function(){return se})),A.d(t,"c",(function(){return fe})),A.d(t,"e",(function(){return le})),A.d(t,"f",(function(){return Me}))},function(e,t,A){var n=A(813)();e.exports=n},function(e,t,A){"use strict";function n(e,t){if(null==e)return{};var A,n,r=function(e,t){if(null==e)return{};var A,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||(r[A]=e[A]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||Object.prototype.propertyIsEnumerable.call(e,A)&&(r[A]=e[A])}return r}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return i})),A.d(t,"e",(function(){return o})),A.d(t,"c",(function(){return a})),A.d(t,"d",(function(){return s})),A.d(t,"b",(function(){return l})),A.d(t,"f",(function(){return I}));var n=A(150),r=A(23);function i(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function o(e,t){var A=e%t;return A<0?t+A:A}function a(e){return[e[12],e[13],e[14]]}function s(e){var t={};return t.left=u(e[3]+e[0],e[7]+e[4],e[11]+e[8],e[15]+e[12]),t.right=u(e[3]-e[0],e[7]-e[4],e[11]-e[8],e[15]-e[12]),t.bottom=u(e[3]+e[1],e[7]+e[5],e[11]+e[9],e[15]+e[13]),t.top=u(e[3]-e[1],e[7]-e[5],e[11]-e[9],e[15]-e[13]),t.near=u(e[3]+e[2],e[7]+e[6],e[11]+e[10],e[15]+e[14]),t.far=u(e[3]-e[2],e[7]-e[6],e[11]-e[10],e[15]-e[14]),t}var g,c=new r.Vector3;function u(e,t,A,n){c.set(e,t,A);var i=c.len();return{distance:n/i,normal:new r.Vector3(-e/i,-t/i,-A/i)}}function l(e){return e-Math.fround(e)}function I(e,t){var A=t.size,r=void 0===A?1:A,i=t.startIndex,o=void 0===i?0:i,a=t.endIndex;Number.isFinite(a)||(a=e.length);var s=(a-o)/r;g=n.a.allocate(g,s,{type:Float32Array,size:2*r});for(var c=o,u=0;c<a;){for(var I=0;I<r;I++){var C=e[c++];g[u+I]=C,g[u+I+r]=l(C)}u+=2*r}return g.subarray(0,s*r*2)}},function(e,t,A){"use strict";function n(e,t){if(!e)throw new Error(t||"luma.gl: assertion failed.")}A.d(t,"a",(function(){return n}))},function(e,t){var A;A=function(){return this}();try{A=A||new Function("return this")()}catch(n){"object"===typeof window&&(A=window)}e.exports=A},function(e,t,A){"use strict";function n(e,t){if(!e)throw new Error(t||"deck.gl: assertion failed.")}A.d(t,"a",(function(){return n}))},function(e,t,A){var n=A(1108),r=A(460);e.exports=function(e,t,A){return void 0===A&&(A=t,t=void 0),void 0!==A&&(A=(A=r(A))===A?A:0),void 0!==t&&(t=(t=r(t))===t?t:0),n(r(e),t,A)}},function(e,t,A){"use strict";A(1),A(4),A(32);var n={CLOCKWISE:1,COUNTER_CLOCKWISE:-1};function r(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=i(e,A);return n!==t&&(a(e,A),!0)}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Math.sign(o(e,t))}function o(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.start,n=void 0===A?0:A,r=t.end,i=void 0===r?e.length:r,o=t.size||2,a=0,s=n,g=i-o;s<i;s+=o)a+=(e[s]-e[g])*(e[s+1]+e[g+1]),g=s;return a/2}function a(e,t){for(var A=t.start,n=void 0===A?0:A,r=t.end,i=void 0===r?e.length:r,o=t.size,a=void 0===o?2:o,s=(i-n)/a,g=Math.floor(s/2),c=0;c<g;++c)for(var u=n+c*a,l=n+(s-1-c)*a,I=0;I<a;++I){var C=e[u+I];e[u+I]=e[l+I],e[l+I]=C}}function s(e,t,A,n){A=A||2;var r,i,o,a,s,l,I,C=t&&t.length,h=C?t[0]*A:e.length,B=g(e,0,h,A,!0,n&&n[0]),p=[];if(!B||B.next===B.prev)return p;if(C&&(B=function(e,t,A,n,r){var i,o,a,s,u,l=[];for(i=0,o=t.length;i<o;i++)a=t[i]*n,s=i<o-1?t[i+1]*n:e.length,(u=g(e,a,s,n,!1,r&&r[i+1]))===u.next&&(u.steiner=!0),l.push(E(u));for(l.sort(f),i=0;i<l.length;i++)d(l[i],A),A=c(A,A.next);return A}(e,t,B,A,n)),e.length>80*A){a=i=e[0],s=o=e[1];for(var Q=A;Q<h;Q+=A)(l=e[Q])<a&&(a=l),(I=e[Q+1])<s&&(s=I),l>i&&(i=l),I>o&&(o=I);r=0!==(r=Math.max(i-a,o-s))?1/r:0}return u(B,p,A,a,s,r),p}function g(e,t,A,n,r,i){var a,s;if(void 0===i&&(i=o(e,{start:t,end:A,size:n})),r===i<0)for(a=t;a<A;a+=n)s=D(a,e[a],e[a+1],s);else for(a=A-n;a>=t;a-=n)s=D(a,e[a],e[a+1],s);return s&&m(s,s.next)&&(G(s),s=s.next),s}function c(e,t){if(!e)return e;t||(t=e);var A,n=e;do{if(A=!1,n.steiner||!m(n,n.next)&&0!==v(n.prev,n,n.next))n=n.next;else{if(G(n),(n=t=n.prev)===n.next)break;A=!0}}while(A||n!==t);return t}function u(e,t,A,n,r,i,o){if(e){!o&&i&&function(e,t,A,n){var r=e;do{null===r.z&&(r.z=p(r.x,r.y,t,A,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,function(e){var t,A,n,r,i,o,a,s,g=1;do{for(r=e,e=null,s=null,n=0;r;){for(n++,o=r,i=0,A=0;A<g&&(i++,o=o.nextZ);A++);for(a=g;i>0||a>0&&o;)0!==i&&(0===a||!o||r.z<=o.z)?(t=r,r=r.nextZ,i--):(t=o,o=o.nextZ,a--),s?s.nextZ=t:e=t,t.prevZ=s,s=t;r=o}s.nextZ=null,g*=2}while(n>1)}(r)}(e,n,r,i);for(var a,s,g=e;e.prev!==e.next;)if(a=e.prev,s=e.next,i?I(e,n,r,i):l(e))t.push(a.i/A),t.push(e.i/A),t.push(s.i/A),G(e),e=s.next,g=s.next;else if((e=s)===g){o?1===o?u(e=C(c(e),t,A),t,A,n,r,i,2):2===o&&h(e,t,A,n,r,i):u(c(e),t,A,n,r,i,1);break}}}function l(e){var t=e.prev,A=e,n=e.next;if(v(t,A,n)>=0)return!1;for(var r=e.next.next;r!==e.prev;){if(Q(t.x,t.y,A.x,A.y,n.x,n.y,r.x,r.y)&&v(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function I(e,t,A,n){var r=e.prev,i=e,o=e.next;if(v(r,i,o)>=0)return!1;for(var a=r.x<i.x?r.x<o.x?r.x:o.x:i.x<o.x?i.x:o.x,s=r.y<i.y?r.y<o.y?r.y:o.y:i.y<o.y?i.y:o.y,g=r.x>i.x?r.x>o.x?r.x:o.x:i.x>o.x?i.x:o.x,c=r.y>i.y?r.y>o.y?r.y:o.y:i.y>o.y?i.y:o.y,u=p(a,s,t,A,n),l=p(g,c,t,A,n),I=e.prevZ,C=e.nextZ;I&&I.z>=u&&C&&C.z<=l;){if(I!==e.prev&&I!==e.next&&Q(r.x,r.y,i.x,i.y,o.x,o.y,I.x,I.y)&&v(I.prev,I,I.next)>=0)return!1;if(I=I.prevZ,C!==e.prev&&C!==e.next&&Q(r.x,r.y,i.x,i.y,o.x,o.y,C.x,C.y)&&v(C.prev,C,C.next)>=0)return!1;C=C.nextZ}for(;I&&I.z>=u;){if(I!==e.prev&&I!==e.next&&Q(r.x,r.y,i.x,i.y,o.x,o.y,I.x,I.y)&&v(I.prev,I,I.next)>=0)return!1;I=I.prevZ}for(;C&&C.z<=l;){if(C!==e.prev&&C!==e.next&&Q(r.x,r.y,i.x,i.y,o.x,o.y,C.x,C.y)&&v(C.prev,C,C.next)>=0)return!1;C=C.nextZ}return!0}function C(e,t,A){var n=e;do{var r=n.prev,i=n.next.next;!m(r,i)&&b(r,n,n.next,i)&&F(r,i)&&F(i,r)&&(t.push(r.i/A),t.push(n.i/A),t.push(i.i/A),G(n),G(n.next),n=e=i),n=n.next}while(n!==e);return c(n)}function h(e,t,A,n,r,i){var o=e;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&y(o,a)){var s=R(o,a);return o=c(o,o.next),s=c(s,s.next),u(o,t,A,n,r,i),void u(s,t,A,n,r,i)}a=a.next}o=o.next}while(o!==e)}function f(e,t){return e.x-t.x}function d(e,t){if(t=function(e,t){var A,n=t,r=e.x,i=e.y,o=-1/0;do{if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){var a=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=r&&a>o){if(o=a,a===r){if(i===n.y)return n;if(i===n.next.y)return n.next}A=n.x<n.next.x?n:n.next}}n=n.next}while(n!==t);if(!A)return null;if(r===o)return A;var s,g=A,c=A.x,u=A.y,l=1/0;n=A;do{r>=n.x&&n.x>=c&&r!==n.x&&Q(i<u?r:o,i,c,u,i<u?o:r,i,n.x,n.y)&&(s=Math.abs(i-n.y)/(r-n.x),F(n,e)&&(s<l||s===l&&(n.x>A.x||n.x===A.x&&B(A,n)))&&(A=n,l=s)),n=n.next}while(n!==g);return A}(e,t)){var A=R(t,e);c(t,t.next),c(A,A.next)}}function B(e,t){return v(e.prev,e,t.prev)<0&&v(t.next,e,e.next)<0}function p(e,t,A,n,r){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-A)*r)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*r)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function E(e){var t=e,A=e;do{(t.x<A.x||t.x===A.x&&t.y<A.y)&&(A=t),t=t.next}while(t!==e);return A}function Q(e,t,A,n,r,i,o,a){return(r-o)*(t-a)-(e-o)*(i-a)>=0&&(e-o)*(n-a)-(A-o)*(t-a)>=0&&(A-o)*(i-a)-(r-o)*(n-a)>=0}function y(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var A=e;do{if(A.i!==e.i&&A.next.i!==e.i&&A.i!==t.i&&A.next.i!==t.i&&b(A,A.next,e,t))return!0;A=A.next}while(A!==e);return!1}(e,t)&&(F(e,t)&&F(t,e)&&function(e,t){var A=e,n=!1,r=(e.x+t.x)/2,i=(e.y+t.y)/2;do{A.y>i!==A.next.y>i&&A.next.y!==A.y&&r<(A.next.x-A.x)*(i-A.y)/(A.next.y-A.y)+A.x&&(n=!n),A=A.next}while(A!==e);return n}(e,t)&&(v(e.prev,e,t.prev)||v(e,t.prev,t))||m(e,t)&&v(e.prev,e,e.next)>0&&v(t.prev,t,t.next)>0)}function v(e,t,A){return(t.y-e.y)*(A.x-t.x)-(t.x-e.x)*(A.y-t.y)}function m(e,t){return e.x===t.x&&e.y===t.y}function b(e,t,A,n){var r=S(v(e,t,A)),i=S(v(e,t,n)),o=S(v(A,n,e)),a=S(v(A,n,t));return r!==i&&o!==a||(!(0!==r||!w(e,A,t))||(!(0!==i||!w(e,n,t))||(!(0!==o||!w(A,e,n))||!(0!==a||!w(A,t,n)))))}function w(e,t,A){return t.x<=Math.max(e.x,A.x)&&t.x>=Math.min(e.x,A.x)&&t.y<=Math.max(e.y,A.y)&&t.y>=Math.min(e.y,A.y)}function S(e){return e>0?1:e<0?-1:0}function F(e,t){return v(e.prev,e,e.next)<0?v(e,t,e.next)>=0&&v(e,e.prev,t)>=0:v(e,t,e.prev)<0||v(e,e.next,t)<0}function R(e,t){var A=new k(e.i,e.x,e.y),n=new k(t.i,t.x,t.y),r=e.next,i=t.prev;return e.next=t,t.prev=e,A.next=r,r.prev=A,n.next=A,A.prev=n,i.next=n,n.prev=i,n}function D(e,t,A,n){var r=new k(e,t,A);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function G(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function k(e,t,A){this.i=e,this.x=t,this.y=A,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function x(e,t){var A=t.length,n=e.length;if(n>0){for(var r=!0,i=0;i<A;i++)if(e[n-A+i]!==t[i]){r=!1;break}if(r)return!1}for(var o=0;o<A;o++)e[n+o]=t[o];return!0}function N(e,t){for(var A=t.length,n=0;n<A;n++)e[n]=t[n]}function U(e,t,A,n){for(var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],i=n+t*A,o=0;o<A;o++)r[o]=e[i+o];return r}function _(e,t,A,n){var r,i,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[];if(8&A)r=(n[3]-e[1])/(t[1]-e[1]),i=3;else if(4&A)r=(n[1]-e[1])/(t[1]-e[1]),i=1;else if(2&A)r=(n[2]-e[0])/(t[0]-e[0]),i=2;else{if(!(1&A))return null;r=(n[0]-e[0])/(t[0]-e[0]),i=0}for(var a=0;a<e.length;a++)o[a]=(1&i)===a?n[i]:r*(t[a]-e[a])+e[a];return o}function M(e,t){var A=0;return e[0]<t[0]?A|=1:e[0]>t[2]&&(A|=2),e[1]<t[1]?A|=4:e[1]>t[3]&&(A|=8),A}function O(e){var t,A,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.size,i=void 0===r?2:r,o=n.broken,a=void 0!==o&&o,s=n.gridResolution,g=void 0===s?10:s,c=n.gridOffset,u=void 0===c?[0,0]:c,l=n.startIndex,I=void 0===l?0:l,C=n.endIndex,h=void 0===C?e.length:C,f=(h-I)/i,d=[],B=[d],p=U(e,0,i,I),E=H(p,g,u,[]),Q=[];x(d,p);for(var y=1;y<f;y++){for(A=M(t=U(e,y,i,I,t),E);A;){_(p,t,A,E,Q);var v=M(Q,E);v&&(_(p,Q,v,E,Q),A=v),x(d,Q),N(p,Q),Y(E,g,A),a&&d.length>i&&(d=[],B.push(d),x(d,p)),A=M(t,E)}x(d,t),N(p,t)}return a?B:B[0]}function L(e,t){for(var A=0;A<t.length;A++)e.push(t[A]);return e}function T(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e.length)return[];for(var n=A.size,r=void 0===n?2:n,i=A.gridResolution,o=void 0===i?10:i,a=A.gridOffset,s=void 0===a?[0,0]:a,g=A.edgeTypes,c=void 0!==g&&g,u=[],l=[{pos:e,types:c&&new Array(e.length/r).fill(1),holes:t||[]}],I=[[],[]],C=[];l.length;){var h=l.shift(),f=h.pos,d=h.types,B=h.holes;J(f,r,B[0]||f.length,I),C=H(I[0],o,s,C);var p=M(I[1],C);if(p){var E=Z(f,d,r,0,B[0]||f.length,C,p),Q={pos:E[0].pos,types:E[0].types,holes:[]},y={pos:E[1].pos,types:E[1].types,holes:[]};l.push(Q,y);for(var v=0;v<B.length;v++)(E=Z(f,d,r,B[v],B[v+1]||f.length,C,p))[0]&&(Q.holes.push(Q.pos.length),Q.pos=L(Q.pos,E[0].pos),c&&(Q.types=L(Q.types,E[0].types))),E[1]&&(y.holes.push(y.pos.length),y.pos=L(y.pos,E[1].pos),c&&(y.types=L(y.types,E[1].types)))}else{var m={positions:f};c&&(m.edgeTypes=d),B.length&&(m.holeIndices=B),u.push(m)}}return u}function Z(e,t,A,n,r,i,o){for(var a,s,g,c=(r-n)/A,u=[],l=[],I=[],C=[],h=[],f=U(e,c-1,A,n),d=Math.sign(8&o?f[1]-i[3]:f[0]-i[2]),B=t&&t[c-1],p=0,E=0,Q=0;Q<c;Q++)a=U(e,Q,A,n,a),s=Math.sign(8&o?a[1]-i[3]:a[0]-i[2]),g=t&&t[n/A+Q],s&&d&&d!==s&&(_(f,a,o,i,h),x(u,h)&&I.push(B),x(l,h)&&C.push(B)),s<=0?(x(u,a)&&I.push(g),p-=s):I.length&&(I[I.length-1]=0),s>=0?(x(l,a)&&C.push(g),E+=s):C.length&&(C[C.length-1]=0),N(f,a),d=s,B=g;return[p?{pos:u,types:t&&I}:null,E?{pos:l,types:t&&C}:null]}function H(e,t,A,n){var r=Math.floor((e[0]-A[0])/t)*t+A[0],i=Math.floor((e[1]-A[1])/t)*t+A[1];return n[0]=r,n[1]=i,n[2]=r+t,n[3]=i+t,n}function Y(e,t,A){8&A?(e[1]+=t,e[3]+=t):4&A?(e[1]-=t,e[3]-=t):2&A?(e[0]+=t,e[2]+=t):1&A&&(e[0]-=t,e[2]-=t)}function J(e,t,A,n){for(var r=1/0,i=-1/0,o=1/0,a=-1/0,s=0;s<A;s+=t){var g=e[s],c=e[s+1];r=g<r?g:r,i=g>i?g:i,o=c<o?c:o,a=c>a?c:a}return n[0][0]=r,n[0][1]=o,n[1][0]=i,n[1][1]=a,n}var j=A(6);function P(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.size,n=void 0===A?2:A,r=t.startIndex,i=void 0===r?0:r,o=t.endIndex,a=void 0===o?e.length:o,s=t.normalize,g=void 0===s||s,c=e.slice(i,a);X(c,n,0,a-i);var u=O(c,{size:n,broken:!0,gridResolution:360,gridOffset:[-180,-180]});if(g){var l,I=Object(j.a)(u);try{for(I.s();!(l=I.n()).done;){var C=l.value;q(C,n)}}catch(h){I.e(h)}finally{I.f()}}return u}function V(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=A.size,r=void 0===n?2:n,i=A.normalize,o=void 0===i||i,a=A.edgeTypes,s=void 0!==a&&a;t=t||[];for(var g=[],c=[],u=0,l=0,I=0;I<=t.length;I++){for(var C=t[I]||e.length,h=l,f=K(e,r,u,C),d=f;d<C;d++)g[l++]=e[d];for(var B=u;B<f;B++)g[l++]=e[B];X(g,r,h,l),W(g,r,h,l,A.maxLatitude),u=C,c[I]=l}c.pop();var p=T(g,c,{size:r,gridResolution:360,gridOffset:[-180,-180],edgeTypes:s});if(o){var E,Q=Object(j.a)(p);try{for(Q.s();!(E=Q.n()).done;){var y=E.value;q(y.positions,r)}}catch(v){Q.e(v)}finally{Q.f()}}return p}function K(e,t,A,n){for(var r=-1,i=-1,o=A+1;o<n;o+=t){var a=Math.abs(e[o]);a>r&&(r=a,i=o-1)}return i}function W(e,t,A,n){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:85.051129,i=e[A],o=e[n-t];if(Math.abs(i-o)>180){var a=U(e,0,t,A);a[0]+=360*Math.round((o-i)/360),x(e,a),a[1]=Math.sign(a[1])*r,x(e,a),a[0]=i,x(e,a)}}function X(e,t,A,n){for(var r,i=e[0],o=A;o<n;o+=t){var a=(r=e[o])-i;(a>180||a<-180)&&(r-=360*Math.round(a/360)),e[o]=i=r}}function q(e,t){for(var A,n=e.length/t,r=0;r<n&&((A=e[r*t])+180)%360===0;r++);var i=360*-Math.round(A/360);if(0!==i)for(var o=0;o<n;o++)e[o*t]+=i}A.d(t,"g",(function(){return o})),A.d(t,"h",(function(){return r})),A.d(t,"a",(function(){return n})),A.d(t,"f",(function(){return s})),A.d(t,"b",(function(){return T})),A.d(t,"d",(function(){return O})),A.d(t,"e",(function(){return P})),A.d(t,"c",(function(){return V}))},function(e,t){var A,n,r=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(e){if(A===setTimeout)return setTimeout(e,0);if((A===i||!A)&&setTimeout)return A=setTimeout,setTimeout(e,0);try{return A(e,0)}catch(t){try{return A.call(null,e,0)}catch(t){return A.call(this,e,0)}}}!function(){try{A="function"===typeof setTimeout?setTimeout:i}catch(e){A=i}try{n="function"===typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var s,g=[],c=!1,u=-1;function l(){c&&s&&(c=!1,s.length?g=s.concat(g):u=-1,g.length&&I())}function I(){if(!c){var e=a(l);c=!0;for(var t=g.length;t;){for(s=g,g=[];++u<t;)s&&s[u].run();u=-1,t=g.length}s=null,c=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===o||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function C(e,t){this.fun=e,this.array=t}function h(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var A=1;A<arguments.length;A++)t[A-1]=arguments[A];g.push(new C(e,t)),1!==g.length||c||a(I)},C.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=h,r.addListener=h,r.once=h,r.off=h,r.removeListener=h,r.removeAllListeners=h,r.emit=h,r.prependListener=h,r.prependOnceListener=h,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},function(e,t,A){"use strict";A.d(t,"a",(function(){return i}));var n=A(271),r=A(403);function i(e,t,A){return(i=Object(r.a)()?Reflect.construct:function(e,t,A){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return A&&Object(n.a)(i,A.prototype),i}).apply(null,arguments)}},function(e,t,A){"use strict";A.d(t,"a",(function(){return I}));var n=A(6),r=A(1),i=A(4),o=A(18),a=A(330),s=A(109),g=A(26),c=A(108),u=A(407),l="Resource subclass must define virtual methods",I=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e),Object(o.b)(t);var n=A.id,i=A.userData,a=void 0===i?{}:i;this.gl=t,this.gl2=t,this.id=n||Object(c.c)(this.constructor.name),this.userData=a,this._bound=!1,this._handle=A.handle,void 0===this._handle&&(this._handle=this._createHandle()),this.byteLength=0,this._addStats()}return Object(i.a)(e,[{key:"toString",value:function(){return"".concat(this.constructor.name,"(").concat(this.id,")")}},{key:"delete",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.deleteChildren,A=void 0!==t&&t,n=this._handle&&this._deleteHandle(this._handle);return this._handle&&this._removeStats(),this._handle=null,n&&A&&n.filter(Boolean).forEach((function(e){return e.delete()})),this}},{key:"bind",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.handle;return"function"!==typeof t?(this._bindHandle(t),this):(this._bound?e=t():(this._bindHandle(this.handle),this._bound=!0,e=t(),this._bound=!1,this._bindHandle(null)),e)}},{key:"unbind",value:function(){this.bind(null)}},{key:"getParameter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e=Object(s.b)(this.gl,e),Object(g.a)(e);var A=this.constructor.PARAMETERS||{},n=A[e];if(n){var r=Object(o.j)(this.gl),i=(!("webgl2"in n)||r)&&(!("extension"in n)||this.gl.getExtension(n.extension));if(!i){var a=n.webgl1,c="webgl2"in n?n.webgl2:n.webgl1,u=r?c:a;return u}}return this._getParameter(e,t)}},{key:"getParameters",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},A=t.parameters,r=t.keys,i=this.constructor.PARAMETERS||{},a=Object(o.j)(this.gl),g={},c=A||Object.keys(i),u=Object(n.a)(c);try{for(u.s();!(e=u.n()).done;){var l=e.value,I=i[l],C=I&&(!("webgl2"in I)||a)&&(!("extension"in I)||this.gl.getExtension(I.extension));if(C){var h=r?Object(s.a)(this.gl,l):l;g[h]=this.getParameter(l,t),r&&"GLenum"===I.type&&(g[h]=Object(s.a)(this.gl,g[h]))}}}catch(f){u.e(f)}finally{u.f()}return g}},{key:"setParameter",value:function(e,t){e=Object(s.b)(this.gl,e),Object(g.a)(e);var A=(this.constructor.PARAMETERS||{})[e];if(A){var n=Object(o.j)(this.gl);if(!((!("webgl2"in A)||n)&&(!("extension"in A)||this.gl.getExtension(A.extension))))throw new Error("Parameter not available on this platform");"GLenum"===A.type&&(t=Object(s.b)(t))}return this._setParameter(e,t),this}},{key:"setParameters",value:function(e){for(var t in e)this.setParameter(t,e[t]);return this}},{key:"stubRemovedMethods",value:function(e,t,A){return Object(u.a)(this,e,t,A)}},{key:"initialize",value:function(e){}},{key:"_createHandle",value:function(){throw new Error(l)}},{key:"_deleteHandle",value:function(){throw new Error(l)}},{key:"_bindHandle",value:function(e){throw new Error(l)}},{key:"_getOptsFromHandle",value:function(){throw new Error(l)}},{key:"_getParameter",value:function(e,t){throw new Error(l)}},{key:"_setParameter",value:function(e,t){throw new Error(l)}},{key:"_context",value:function(){return this.gl.luma=this.gl.luma||{},this.gl.luma}},{key:"_addStats",value:function(){var e=this.constructor.name,t=a.a.get("Resource Counts");t.get("Resources Created").incrementCount(),t.get("".concat(e,"s Created")).incrementCount(),t.get("".concat(e,"s Active")).incrementCount()}},{key:"_removeStats",value:function(){var e=this.constructor.name;a.a.get("Resource Counts").get("".concat(e,"s Active")).decrementCount()}},{key:"_trackAllocatedMemory",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.constructor.name,A=a.a.get("Memory Usage");A.get("GPU Memory").addCount(e),A.get("".concat(t," Memory")).addCount(e),this.byteLength=e}},{key:"_trackDeallocatedMemory",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.constructor.name,t=a.a.get("Memory Usage");t.get("GPU Memory").subtractCount(this.byteLength),t.get("".concat(e," Memory")).subtractCount(this.byteLength),this.byteLength=0}},{key:"handle",get:function(){return this._handle}}]),e}()},function(e,t,A){"use strict";t.__esModule=!0;var n,r=A(925),i=(n=r)&&n.__esModule?n:{default:n};t.default=i.default||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e}},function(e,t,A){"use strict";A.d(t,"b",(function(){return r})),A.d(t,"g",(function(){return i})),A.d(t,"c",(function(){return o})),A.d(t,"l",(function(){return a})),A.d(t,"a",(function(){return s})),A.d(t,"k",(function(){return g})),A.d(t,"h",(function(){return c})),A.d(t,"m",(function(){return u})),A.d(t,"j",(function(){return l})),A.d(t,"d",(function(){return I})),A.d(t,"i",(function(){return C})),A.d(t,"n",(function(){return h})),A.d(t,"o",(function(){return f})),A.d(t,"f",(function(){return d})),A.d(t,"e",(function(){return B}));var n=A(30);function r(e){var t=new n.a(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function i(e,t,A,r){var i=new n.a(4);return i[0]=e,i[1]=t,i[2]=A,i[3]=r,i}function o(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function a(e,t,A,n,r){return e[0]=t,e[1]=A,e[2]=n,e[3]=r,e}function s(e,t,A){return e[0]=t[0]+A[0],e[1]=t[1]+A[1],e[2]=t[2]+A[2],e[3]=t[3]+A[3],e}function g(e,t,A){return e[0]=t[0]*A,e[1]=t[1]*A,e[2]=t[2]*A,e[3]=t[3]*A,e}function c(e){var t=e[0],A=e[1],n=e[2],r=e[3];return Math.hypot(t,A,n,r)}function u(e){var t=e[0],A=e[1],n=e[2],r=e[3];return t*t+A*A+n*n+r*r}function l(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=A*A+n*n+r*r+i*i;return o>0&&(o=1/Math.sqrt(o)),e[0]=A*o,e[1]=n*o,e[2]=r*o,e[3]=i*o,e}function I(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function C(e,t,A,n){var r=t[0],i=t[1],o=t[2],a=t[3];return e[0]=r+n*(A[0]-r),e[1]=i+n*(A[1]-i),e[2]=o+n*(A[2]-o),e[3]=a+n*(A[3]-a),e}function h(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3];return e[0]=A[0]*n+A[4]*r+A[8]*i+A[12]*o,e[1]=A[1]*n+A[5]*r+A[9]*i+A[13]*o,e[2]=A[2]*n+A[6]*r+A[10]*i+A[14]*o,e[3]=A[3]*n+A[7]*r+A[11]*i+A[15]*o,e}function f(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[0],a=A[1],s=A[2],g=A[3],c=g*n+a*i-s*r,u=g*r+s*n-o*i,l=g*i+o*r-a*n,I=-o*n-a*r-s*i;return e[0]=c*g+I*-o+u*-s-l*-a,e[1]=u*g+I*-a+l*-o-c*-s,e[2]=l*g+I*-s+c*-a-u*-o,e[3]=t[3],e}function d(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function B(e,t){var A=e[0],r=e[1],i=e[2],o=e[3],a=t[0],s=t[1],g=t[2],c=t[3];return Math.abs(A-a)<=n.b*Math.max(1,Math.abs(A),Math.abs(a))&&Math.abs(r-s)<=n.b*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(i-g)<=n.b*Math.max(1,Math.abs(i),Math.abs(g))&&Math.abs(o-c)<=n.b*Math.max(1,Math.abs(o),Math.abs(c))}!function(){var e=function(){var e=new n.a(4);return n.a!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}()}()},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,A){"use strict";A.d(t,"a",(function(){return f}));var n=A(8),r=A(1),i=A(4),o=A(41),a=A(84),s=A(23),g=A(27),c=A(42),u=A(36),l=Math.PI/180,I=Object(a.a)(),C=[0,0,0],h={unitsPerMeter:[1,1,1],metersPerUnit:[1,1,1]},f=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(r.a)(this,e);var A=t.id,n=void 0===A?null:A,i=t.x,o=void 0===i?0:i,a=t.y,s=void 0===a?0:a,g=t.width,c=void 0===g?1:g,u=t.height,l=void 0===u?1:u;this.id=n||this.constructor.displayName||"viewport",this.x=o,this.y=s,this.width=c||1,this.height=l||1,this._frustumPlanes={},this._initViewMatrix(t),this._initProjectionMatrix(t),this._initPixelMatrices(),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),this.projectFlat=this.projectFlat.bind(this),this.unprojectFlat=this.unprojectFlat.bind(this)}return Object(i.a)(e,[{key:"equals",value:function(t){return t instanceof e&&(this===t||t.width===this.width&&t.height===this.height&&t.scale===this.scale&&Object(s.equals)(t.projectionMatrix,this.projectionMatrix)&&Object(s.equals)(t.viewMatrix,this.viewMatrix))}},{key:"project",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.topLeft,r=void 0===A||A,i=this.projectPosition(e),o=Object(c.s)(i,this.pixelProjectionMatrix),a=Object(n.a)(o,2),s=a[0],g=a[1],u=r?g:this.height-g;return 2===e.length?[s,u]:[s,u,o[2]]}},{key:"unproject",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.topLeft,r=void 0===A||A,i=t.targetZ,o=Object(n.a)(e,3),a=o[0],s=o[1],g=o[2],u=r?s:this.height-s,l=i&&i*this.distanceScales.unitsPerMeter[2],I=Object(c.p)([a,u,g],this.pixelUnprojectionMatrix,l),C=this.unprojectPosition(I),h=Object(n.a)(C,3),f=h[0],d=h[1],B=h[2];return Number.isFinite(g)?[f,d,B]:Number.isFinite(i)?[f,d,i]:[f,d]}},{key:"projectPosition",value:function(e){var t=this.projectFlat(e),A=Object(n.a)(t,2);return[A[0],A[1],(e[2]||0)*this.distanceScales.unitsPerMeter[2]]}},{key:"unprojectPosition",value:function(e){var t=this.unprojectFlat(e),A=Object(n.a)(t,2);return[A[0],A[1],(e[2]||0)*this.distanceScales.metersPerUnit[2]]}},{key:"projectFlat",value:function(e){return this.isGeospatial?Object(c.n)(e):e}},{key:"unprojectFlat",value:function(e){return this.isGeospatial?Object(c.r)(e):e}},{key:"getBounds",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={targetZ:e.z||0},A=this.unproject([0,0],t),n=this.unproject([this.width,0],t),r=this.unproject([0,this.height],t),i=this.unproject([this.width,this.height],t);return[Math.min(A[0],n[0],r[0],i[0]),Math.min(A[1],n[1],r[1],i[1]),Math.max(A[0],n[0],r[0],i[0]),Math.max(A[1],n[1],r[1],i[1])]}},{key:"getDistanceScales",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e?Object(c.h)({longitude:e[0],latitude:e[1],highPrecision:!0}):this.distanceScales}},{key:"containsPixel",value:function(e){var t=e.x,A=e.y,n=e.width,r=void 0===n?1:n,i=e.height,o=void 0===i?1:i;return t<this.x+this.width&&this.x<t+r&&A<this.y+this.height&&this.y<A+o}},{key:"getFrustumPlanes",value:function(){return this._frustumPlanes.near||Object.assign(this._frustumPlanes,Object(a.d)(this.viewProjectionMatrix)),this._frustumPlanes}},{key:"panByPosition",value:function(e,t){return null}},{key:"getCameraPosition",value:function(){return this.cameraPosition}},{key:"getCameraDirection",value:function(){return this.cameraDirection}},{key:"getCameraUp",value:function(){return this.cameraUp}},{key:"_createProjectionMatrix",value:function(e){var t=e.orthographic,A=e.fovyRadians,n=e.aspect,r=e.focalDistance,i=e.near,o=e.far;return t?(new s.Matrix4).orthographic({fovy:A,aspect:n,focalDistance:r,near:i,far:o}):(new s.Matrix4).perspective({fovy:A,aspect:n,near:i,far:o})}},{key:"_initViewMatrix",value:function(e){var t=e.viewMatrix,A=void 0===t?I:t,n=e.longitude,r=void 0===n?null:n,i=e.latitude,o=void 0===i?null:i,a=e.zoom,g=void 0===a?null:a,u=e.position,l=void 0===u?null:u,f=e.modelMatrix,d=void 0===f?null:f,B=e.focalDistance,p=void 0===B?1:B,E=e.distanceScales,Q=void 0===E?null:E;this.isGeospatial=Number.isFinite(o)&&Number.isFinite(r),this.zoom=g,Number.isFinite(this.zoom)||(this.zoom=this.isGeospatial?Object(c.j)({latitude:o})+Math.log2(p):0);var y=Math.pow(2,this.zoom);this.scale=y,this.distanceScales=this.isGeospatial?Object(c.h)({latitude:o,longitude:r}):Q||h,this.focalDistance=p,this.distanceScales.metersPerUnit=new s.Vector3(this.distanceScales.metersPerUnit),this.distanceScales.unitsPerMeter=new s.Vector3(this.distanceScales.unitsPerMeter),this.position=C,this.meterOffset=C,l&&(this.position=l,this.modelMatrix=d,this.meterOffset=d?d.transformVector(l):l),this.isGeospatial?(this.longitude=r,this.latitude=o,this.center=this._getCenterInWorld({longitude:r,latitude:o})):this.center=l?this.projectPosition(l):[0,0,0],this.viewMatrixUncentered=A,this.viewMatrix=(new s.Matrix4).multiplyRight(this.viewMatrixUncentered).translate(new s.Vector3(this.center||C).negate())}},{key:"_getCenterInWorld",value:function(e){var t=e.longitude,A=e.latitude,n=this.meterOffset,r=this.distanceScales,i=new s.Vector3(this.projectPosition([t,A,0]));if(n){var o=new s.Vector3(n).scale(r.unitsPerMeter);i.add(o)}return i}},{key:"_initProjectionMatrix",value:function(e){var t=e.projectionMatrix,A=void 0===t?null:t,n=e.orthographic,r=void 0!==n&&n,i=e.fovyRadians,o=e.fovy,a=void 0===o?75:o,s=e.near,g=void 0===s?.1:s,c=e.far,u=void 0===c?1e3:c,I=e.focalDistance,C=void 0===I?1:I;this.projectionMatrix=A||this._createProjectionMatrix({orthographic:r,fovyRadians:i||a*l,aspect:this.width/this.height,focalDistance:C,near:g,far:u})}},{key:"_initPixelMatrices",value:function(){var e=Object(a.a)();g.g(e,e,this.projectionMatrix),g.g(e,e,this.viewMatrix),this.viewProjectionMatrix=e,this.viewMatrixInverse=g.e([],this.viewMatrix)||this.viewMatrix,this.cameraPosition=Object(a.c)(this.viewMatrixInverse);var t=Object(a.a)(),A=Object(a.a)();g.n(t,t,[this.width/2,-this.height/2,1]),g.o(t,t,[1,-1,0]),g.g(A,t,this.viewProjectionMatrix),this.pixelProjectionMatrix=A,this.viewportMatrix=t,this.pixelUnprojectionMatrix=g.e(Object(a.a)(),this.pixelProjectionMatrix),this.pixelUnprojectionMatrix||o.a.warn("Pixel project matrix not invertible")()}},{key:"metersPerPixel",get:function(){return this.distanceScales.metersPerUnit[2]/this.scale}},{key:"projectionMode",get:function(){return this.isGeospatial?this.zoom<12?u.c.WEB_MERCATOR:u.c.WEB_MERCATOR_AUTO_OFFSET:u.c.IDENTITY}}]),e}();f.displayName="Viewport"},function(e,t,A){"use strict";function n(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";t.__esModule=!0;var n,r=A(600),i=(n=r)&&n.__esModule?n:{default:n};t.default=function(e,t,A){return t in e?(0,i.default)(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toDeckColor=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[255,0,0,255];if(!Array.isArray(e))return t;return[255*e[0],255*e[1],255*e[2],255*e[3]]},t.recursivelyTraverseNestedArrays=function e(t,A,n){if(!Array.isArray(t[0]))return!0;for(var r=0;r<t.length;r++)if(e(t[r],[].concat(l(A),[r]),n)){n(t,A);break}return!1},t.generatePointsParallelToLinePoints=function(e,t,A){var o={type:"LineString",coordinates:[e,t]},s=(0,a.point)(A),g=(0,i.default)(s,o),c=(0,r.default)(e,t),u=(A[0]-e[0])*(t[1]-e[1])-(A[1]-e[1])*(t[0]-e[0])<0?c-90:c-270,l=(0,n.default)(t,g,u),I=(0,n.default)(e,g,u);return[l.geometry.coordinates,I.geometry.coordinates]},t.distance2d=h,t.mix=f,t.nearestPointOnProjectedLine=function(e,t,A){var n=new g.default(A),r=e.geometry.coordinates.map((function(e){var t=u(e,3),A=t[0],r=t[1],i=t[2],o=void 0===i?0:i;return n.project([A,r,o])})),i=u(n.project(t.geometry.coordinates),2),o=i[0],a=i[1],s=1/0,c={};r.forEach((function(e,t){var A=u(e,2),n=A[0],i=A[1];if(0!==t){var g=u(r[t-1],2),l=g[0],I=g[1],C=I-i,h=n-l,f=l*i-n*I,d=C*C+h*h,B=Math.abs(C*o+h*a+f)/Math.sqrt(d);B<s&&(s=B,c={index:t,x0:(h*(h*o-C*a)-C*f)/d,y0:(C*(-h*o+C*a)-h*f)/d})}}));var l=c,I=l.index,C=l.x0,d=l.y0,B=u(r[I-1],3),p=B[0],E=B[1],Q=B[2],y=void 0===Q?0:Q,v=u(r[I],3),m=v[0],b=v[1],w=v[2],S=void 0===w?0:w,F=h(p,E,m,b),R=h(p,E,C,d),D=f(y,S,R/F);return{type:"Feature",geometry:{type:"Point",coordinates:n.unproject([C,d,D])},properties:{dist:s,index:I-1}}},t.nearestPointOnLine=function(e,t,A){var n,r,i;A&&(i=new g.default(A));var c=(0,a.point)([1/0,1/0],{dist:1/0});if(!(null===(n=e.geometry)||void 0===n?void 0:n.coordinates.length)||(null===(r=e.geometry)||void 0===r?void 0:r.coordinates.length)<2)return c;return(0,o.flattenEach)(e,(function(e){var A,n,r,o,g,u,l,I=(0,s.getCoords)(e),C=(0,s.getCoords)(t);if(I.length>1&&C.length){var h,f;i?(h=I.map((function(e){return i.project(e)})),f=i.project(C)):(h=I,f=C);for(var d=1;d<h.length;d++){if(h[d][0]!==h[d-1][0]){var B=(h[d][1]-h[d-1][1])/(h[d][0]-h[d-1][0]),p=h[d][1]-B*h[d][0];l=Math.abs(B*f[0]+p-f[1])/Math.sqrt(B*B+1)}else l=Math.abs(f[0]-h[d][0]);var E=Math.pow(h[d][1]-h[d-1][1],2)+Math.pow(h[d][0]-h[d-1][0],2),Q=Math.pow(h[d][1]-f[1],2)+Math.pow(h[d][0]-f[0],2),y=Math.pow(h[d-1][1]-f[1],2)+Math.pow(h[d-1][0]-f[0],2),v=Math.pow(l,2),m=Q-v+y-v;m>E&&(l=Math.sqrt(Math.min(Q,y))),(null===A||void 0===A||A>l)&&(m>E?y<Q?(n=0,r=1):(r=0,n=1):(n=Math.sqrt(y-v)/Math.sqrt(E),r=Math.sqrt(Q-v)/Math.sqrt(E)),A=l,u=d)}var b=h[u-1][0]-h[u][0],w=h[u-1][1]-h[u][1];o=h[u-1][0]-b*n,g=h[u-1][1]-w*n}var S={x:o,y:g,idx:u-1,to:n,from:r};if(i){var F=i.unproject([S.x,S.y]);S={x:F[0],y:F[1],idx:u-1,to:n,from:r}}c=(0,a.point)([S.x,S.y],{dist:Math.abs(S.from-S.to),index:S.idx})})),c},t.getPickedEditHandle=function(e){var t=d(e);return t.length?t[0]:null},t.getPickedSnapSourceEditHandle=function(e){return d(e).find((function(e){return"snap-source"===e.properties.editHandleType}))},t.getNonGuidePicks=function(e){return e&&e.filter((function(e){return!e.isGuide}))},t.getPickedExistingEditHandle=function(e){return d(e).find((function(e){var t=e.properties;return t.featureIndex>=0&&"existing"===t.editHandleType}))},t.getPickedIntermediateEditHandle=function(e){return d(e).find((function(e){var t=e.properties;return t.featureIndex>=0&&"intermediate"===t.editHandleType}))},t.getPickedEditHandles=d,t.getEditHandlesForGeometry=function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"existing",n=[];switch(e.type){case"Point":n=[{type:"Feature",properties:{guideType:"editHandle",editHandleType:A,positionIndexes:[],featureIndex:t},geometry:{type:"Point",coordinates:e.coordinates}}];break;case"MultiPoint":case"LineString":n=n.concat(B(e.coordinates,[],t,A));break;case"Polygon":case"MultiLineString":for(var r=0;r<e.coordinates.length;r++)n=n.concat(B(e.coordinates[r],[r],t,A)),"Polygon"===e.type&&(n=n.slice(0,-1));break;case"MultiPolygon":for(var i=0;i<e.coordinates.length;i++)for(var o=0;o<e.coordinates[i].length;o++)n=(n=n.concat(B(e.coordinates[i][o],[i,o],t,A))).slice(0,-1);break;default:throw Error("Unhandled geometry type: ".concat(e.type))}return n};var n=c(A(304)),r=c(A(143)),i=c(A(647)),o=A(141),a=A(59),s=A(105),g=c(A(630));function c(e){return e&&e.__esModule?e:{default:e}}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||I(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||I(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){if(e){if("string"===typeof e)return C(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?C(e,t):void 0}}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function h(e,t,A,n){var r=e-A,i=t-n;return Math.sqrt(r*r+i*i)}function f(e,t,A){return t*A+e*(1-A)}function d(e){return e&&e.filter((function(e){return e.isGuide&&"editHandle"===e.object.properties.guideType})).map((function(e){return e.object}))||[]}function B(e,t,A){for(var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"existing",r=[],i=0;i<e.length;i++){var o=e[i];r.push({type:"Feature",properties:{guideType:"editHandle",positionIndexes:[].concat(l(t),[i]),featureIndex:A,editHandleType:n},geometry:{type:"Point",coordinates:o}})}return r}},function(e,t,A){"use strict";function n(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!==e&&void 0!==e&&this.setState(e)}function r(e){this.setState(function(t){var A=this.constructor.getDerivedStateFromProps(e,t);return null!==A&&void 0!==A?A:null}.bind(this))}function i(e,t){try{var A=this.props,n=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(A,n)}finally{this.props=A,this.state=n}}function o(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!==typeof e.getDerivedStateFromProps&&"function"!==typeof t.getSnapshotBeforeUpdate)return e;var A=null,o=null,a=null;if("function"===typeof t.componentWillMount?A="componentWillMount":"function"===typeof t.UNSAFE_componentWillMount&&(A="UNSAFE_componentWillMount"),"function"===typeof t.componentWillReceiveProps?o="componentWillReceiveProps":"function"===typeof t.UNSAFE_componentWillReceiveProps&&(o="UNSAFE_componentWillReceiveProps"),"function"===typeof t.componentWillUpdate?a="componentWillUpdate":"function"===typeof t.UNSAFE_componentWillUpdate&&(a="UNSAFE_componentWillUpdate"),null!==A||null!==o||null!==a){var s=e.displayName||e.name,g="function"===typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+s+" uses "+g+" but also contains the following legacy lifecycles:"+(null!==A?"\n "+A:"")+(null!==o?"\n "+o:"")+(null!==a?"\n "+a:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"===typeof e.getDerivedStateFromProps&&(t.componentWillMount=n,t.componentWillReceiveProps=r),"function"===typeof t.getSnapshotBeforeUpdate){if("function"!==typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=i;var c=t.componentDidUpdate;t.componentDidUpdate=function(e,t,A){var n=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:A;c.call(this,e,t,n)}}return e}A.d(t,"a",(function(){return o})),n.__suppressDeprecationWarning=!0,r.__suppressDeprecationWarning=!0,i.__suppressDeprecationWarning=!0},function(e,t,A){"use strict";var n=A(399);var r=A(400);function i(e,t){return Object(n.a)(e)||function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}}(e,t)||Object(r.a)()}A.d(t,"a",(function(){return i}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return K})),A.d(t,"b",(function(){return he})),A.d(t,"c",(function(){return u})),A.d(t,"d",(function(){return de})),A.d(t,"e",(function(){return fe})),A.d(t,"f",(function(){return I}));var n=A(14),r=A(233),i=(A(311),A(287)),o=A(225),a=A(321),s=A(204),g={}.constructor;function c(e){if(null==e||"object"!==typeof e)return e;if(Array.isArray(e))return e.map(c);if(e.constructor!==g)return e;var t={};for(var A in e)t[A]=c(e[A]);return t}function u(e,t,A){void 0===e&&(e="unnamed");var n=A.jss,r=c(t),i=n.plugins.onCreateRule(e,r,A);return i||(e[0],null)}var l=function(e,t){for(var A="",n=0;n<e.length&&"!important"!==e[n];n++)A&&(A+=t),A+=e[n];return A},I=function(e,t){if(void 0===t&&(t=!1),!Array.isArray(e))return e;var A="";if(Array.isArray(e[0]))for(var n=0;n<e.length&&"!important"!==e[n];n++)A&&(A+=", "),A+=l(e[n]," ");else A=l(e,", ");return t||"!important"!==e[e.length-1]||(A+=" !important"),A};function C(e){return e&&!1===e.format?{linebreak:"",space:""}:{linebreak:"\n",space:" "}}function h(e,t){for(var A="",n=0;n<t;n++)A+=" ";return A+e}function f(e,t,A){void 0===A&&(A={});var n="";if(!t)return n;var r=A.indent,i=void 0===r?0:r,o=t.fallbacks;!1===A.format&&(i=-1/0);var a=C(A),s=a.linebreak,g=a.space;if(e&&i++,o)if(Array.isArray(o))for(var c=0;c<o.length;c++){var u=o[c];for(var l in u){var f=u[l];null!=f&&(n&&(n+=s),n+=h(l+":"+g+I(f)+";",i))}}else for(var d in o){var B=o[d];null!=B&&(n&&(n+=s),n+=h(d+":"+g+I(B)+";",i))}for(var p in t){var E=t[p];null!=E&&"fallbacks"!==p&&(n&&(n+=s),n+=h(p+":"+g+I(E)+";",i))}return(n||A.allowEmpty)&&e?(n&&(n=""+s+n+s),h(""+e+g+"{"+n,--i)+h("}",i)):n}var d=/([[\].#*$><+~=|^:(),"'`\s])/g,B="undefined"!==typeof CSS&&CSS.escape,p=function(e){return B?B(e):e.replace(d,"\\$1")},E=function(){function e(e,t,A){this.type="style",this.isProcessed=!1;var n=A.sheet,r=A.Renderer;this.key=e,this.options=A,this.style=t,n?this.renderer=n.renderer:r&&(this.renderer=new r)}return e.prototype.prop=function(e,t,A){if(void 0===t)return this.style[e];var n=!!A&&A.force;if(!n&&this.style[e]===t)return this;var r=t;A&&!1===A.process||(r=this.options.jss.plugins.onChangeValue(t,e,this));var i=null==r||!1===r,o=e in this.style;if(i&&!o&&!n)return this;var a=i&&o;if(a?delete this.style[e]:this.style[e]=r,this.renderable&&this.renderer)return a?this.renderer.removeProperty(this.renderable,e):this.renderer.setProperty(this.renderable,e,r),this;var s=this.options.sheet;return s&&s.attached,this},e}(),Q=function(e){function t(t,A,n){var r;r=e.call(this,t,A,n)||this;var i=n.selector,o=n.scoped,s=n.sheet,g=n.generateId;return i?r.selectorText=i:!1!==o&&(r.id=g(Object(a.a)(Object(a.a)(r)),s),r.selectorText="."+p(r.id)),r}Object(o.a)(t,e);var A=t.prototype;return A.applyTo=function(e){var t=this.renderer;if(t){var A=this.toJSON();for(var n in A)t.setProperty(e,n,A[n])}return this},A.toJSON=function(){var e={};for(var t in this.style){var A=this.style[t];"object"!==typeof A?e[t]=A:Array.isArray(A)&&(e[t]=I(A))}return e},A.toString=function(e){var t=this.options.sheet,A=!!t&&t.options.link?Object(n.a)({},e,{allowEmpty:!0}):e;return f(this.selectorText,this.style,A)},Object(i.a)(t,[{key:"selector",set:function(e){if(e!==this.selectorText){this.selectorText=e;var t=this.renderer,A=this.renderable;if(A&&t)t.setSelector(A,e)||t.replaceRule(A,this)}},get:function(){return this.selectorText}}]),t}(E),y={onCreateRule:function(e,t,A){return"@"===e[0]||A.parent&&"keyframes"===A.parent.type?null:new Q(e,t,A)}},v={indent:1,children:!0},m=/@([\w-]+)/,b=function(){function e(e,t,A){this.type="conditional",this.isProcessed=!1,this.key=e;var r=e.match(m);for(var i in this.at=r?r[1]:"unknown",this.query=A.name||"@"+this.at,this.options=A,this.rules=new K(Object(n.a)({},A,{parent:this})),t)this.rules.add(i,t[i]);this.rules.process()}var t=e.prototype;return t.getRule=function(e){return this.rules.get(e)},t.indexOf=function(e){return this.rules.indexOf(e)},t.addRule=function(e,t,A){var n=this.rules.add(e,t,A);return n?(this.options.jss.plugins.onProcessRule(n),n):null},t.toString=function(e){void 0===e&&(e=v);var t=C(e).linebreak;if(null==e.indent&&(e.indent=v.indent),null==e.children&&(e.children=v.children),!1===e.children)return this.query+" {}";var A=this.rules.toString(e);return A?this.query+" {"+t+A+t+"}":""},e}(),w=/@media|@supports\s+/,S={onCreateRule:function(e,t,A){return w.test(e)?new b(e,t,A):null}},F={indent:1,children:!0},R=/@keyframes\s+([\w-]+)/,D=function(){function e(e,t,A){this.type="keyframes",this.at="@keyframes",this.isProcessed=!1;var r=e.match(R);r&&r[1]?this.name=r[1]:this.name="noname",this.key=this.type+"-"+this.name,this.options=A;var i=A.scoped,o=A.sheet,a=A.generateId;for(var s in this.id=!1===i?this.name:p(a(this,o)),this.rules=new K(Object(n.a)({},A,{parent:this})),t)this.rules.add(s,t[s],Object(n.a)({},A,{parent:this}));this.rules.process()}return e.prototype.toString=function(e){void 0===e&&(e=F);var t=C(e).linebreak;if(null==e.indent&&(e.indent=F.indent),null==e.children&&(e.children=F.children),!1===e.children)return this.at+" "+this.id+" {}";var A=this.rules.toString(e);return A&&(A=""+t+A+t),this.at+" "+this.id+" {"+A+"}"},e}(),G=/@keyframes\s+/,k=/\$([\w-]+)/g,x=function(e,t){return"string"===typeof e?e.replace(k,(function(e,A){return A in t?t[A]:e})):e},N=function(e,t,A){var n=e[t],r=x(n,A);r!==n&&(e[t]=r)},U={onCreateRule:function(e,t,A){return"string"===typeof e&&G.test(e)?new D(e,t,A):null},onProcessStyle:function(e,t,A){return"style"===t.type&&A?("animation-name"in e&&N(e,"animation-name",A.keyframes),"animation"in e&&N(e,"animation",A.keyframes),e):e},onChangeValue:function(e,t,A){var n=A.options.sheet;if(!n)return e;switch(t){case"animation":case"animation-name":return x(e,n.keyframes);default:return e}}},_=function(e){function t(){return e.apply(this,arguments)||this}return Object(o.a)(t,e),t.prototype.toString=function(e){var t=this.options.sheet,A=!!t&&t.options.link?Object(n.a)({},e,{allowEmpty:!0}):e;return f(this.key,this.style,A)},t}(E),M={onCreateRule:function(e,t,A){return A.parent&&"keyframes"===A.parent.type?new _(e,t,A):null}},O=function(){function e(e,t,A){this.type="font-face",this.at="@font-face",this.isProcessed=!1,this.key=e,this.style=t,this.options=A}return e.prototype.toString=function(e){var t=C(e).linebreak;if(Array.isArray(this.style)){for(var A="",n=0;n<this.style.length;n++)A+=f(this.at,this.style[n]),this.style[n+1]&&(A+=t);return A}return f(this.at,this.style,e)},e}(),L=/@font-face/,T={onCreateRule:function(e,t,A){return L.test(e)?new O(e,t,A):null}},Z=function(){function e(e,t,A){this.type="viewport",this.at="@viewport",this.isProcessed=!1,this.key=e,this.style=t,this.options=A}return e.prototype.toString=function(e){return f(this.key,this.style,e)},e}(),H={onCreateRule:function(e,t,A){return"@viewport"===e||"@-ms-viewport"===e?new Z(e,t,A):null}},Y=function(){function e(e,t,A){this.type="simple",this.isProcessed=!1,this.key=e,this.value=t,this.options=A}return e.prototype.toString=function(e){if(Array.isArray(this.value)){for(var t="",A=0;A<this.value.length;A++)t+=this.key+" "+this.value[A]+";",this.value[A+1]&&(t+="\n");return t}return this.key+" "+this.value+";"},e}(),J={"@charset":!0,"@import":!0,"@namespace":!0},j=[y,S,U,M,T,H,{onCreateRule:function(e,t,A){return e in J?new Y(e,t,A):null}}],P={process:!0},V={force:!0,process:!0},K=function(){function e(e){this.map={},this.raw={},this.index=[],this.counter=0,this.options=e,this.classes=e.classes,this.keyframes=e.keyframes}var t=e.prototype;return t.add=function(e,t,A){var r=this.options,i=r.parent,o=r.sheet,a=r.jss,s=r.Renderer,g=r.generateId,c=r.scoped,l=Object(n.a)({classes:this.classes,parent:i,sheet:o,jss:a,Renderer:s,generateId:g,scoped:c,name:e,keyframes:this.keyframes,selector:void 0},A),I=e;e in this.raw&&(I=e+"-d"+this.counter++),this.raw[I]=t,I in this.classes&&(l.selector="."+p(this.classes[I]));var C=u(I,t,l);if(!C)return null;this.register(C);var h=void 0===l.index?this.index.length:l.index;return this.index.splice(h,0,C),C},t.get=function(e){return this.map[e]},t.remove=function(e){this.unregister(e),delete this.raw[e.key],this.index.splice(this.index.indexOf(e),1)},t.indexOf=function(e){return this.index.indexOf(e)},t.process=function(){var e=this.options.jss.plugins;this.index.slice(0).forEach(e.onProcessRule,e)},t.register=function(e){this.map[e.key]=e,e instanceof Q?(this.map[e.selector]=e,e.id&&(this.classes[e.key]=e.id)):e instanceof D&&this.keyframes&&(this.keyframes[e.name]=e.id)},t.unregister=function(e){delete this.map[e.key],e instanceof Q?(delete this.map[e.selector],delete this.classes[e.key]):e instanceof D&&delete this.keyframes[e.name]},t.update=function(){var e,t,A;if("string"===typeof(arguments.length<=0?void 0:arguments[0])?(e=arguments.length<=0?void 0:arguments[0],t=arguments.length<=1?void 0:arguments[1],A=arguments.length<=2?void 0:arguments[2]):(t=arguments.length<=0?void 0:arguments[0],A=arguments.length<=1?void 0:arguments[1],e=null),e)this.updateOne(this.map[e],t,A);else for(var n=0;n<this.index.length;n++)this.updateOne(this.index[n],t,A)},t.updateOne=function(t,A,n){void 0===n&&(n=P);var r=this.options,i=r.jss.plugins,o=r.sheet;if(t.rules instanceof e)t.rules.update(A,n);else{var a=t.style;if(i.onUpdate(A,t,o,n),n.process&&a&&a!==t.style){for(var s in i.onProcessStyle(t.style,t,o),t.style){var g=t.style[s];g!==a[s]&&t.prop(s,g,V)}for(var c in a){var u=t.style[c],l=a[c];null==u&&u!==l&&t.prop(c,null,V)}}}},t.toString=function(e){for(var t="",A=this.options.sheet,n=!!A&&A.options.link,r=C(e).linebreak,i=0;i<this.index.length;i++){var o=this.index[i].toString(e);(o||n)&&(t&&(t+=r),t+=o)}return t},e}(),W=function(){function e(e,t){for(var A in this.attached=!1,this.deployed=!1,this.classes={},this.keyframes={},this.options=Object(n.a)({},t,{sheet:this,parent:this,classes:this.classes,keyframes:this.keyframes}),t.Renderer&&(this.renderer=new t.Renderer(this)),this.rules=new K(this.options),e)this.rules.add(A,e[A]);this.rules.process()}var t=e.prototype;return t.attach=function(){return this.attached||(this.renderer&&this.renderer.attach(),this.attached=!0,this.deployed||this.deploy()),this},t.detach=function(){return this.attached?(this.renderer&&this.renderer.detach(),this.attached=!1,this):this},t.addRule=function(e,t,A){var n=this.queue;this.attached&&!n&&(this.queue=[]);var r=this.rules.add(e,t,A);return r?(this.options.jss.plugins.onProcessRule(r),this.attached?this.deployed?(n?n.push(r):(this.insertRule(r),this.queue&&(this.queue.forEach(this.insertRule,this),this.queue=void 0)),r):r:(this.deployed=!1,r)):null},t.insertRule=function(e){this.renderer&&this.renderer.insertRule(e)},t.addRules=function(e,t){var A=[];for(var n in e){var r=this.addRule(n,e[n],t);r&&A.push(r)}return A},t.getRule=function(e){return this.rules.get(e)},t.deleteRule=function(e){var t="object"===typeof e?e:this.rules.get(e);return!(!t||this.attached&&!t.renderable)&&(this.rules.remove(t),!(this.attached&&t.renderable&&this.renderer)||this.renderer.deleteRule(t.renderable))},t.indexOf=function(e){return this.rules.indexOf(e)},t.deploy=function(){return this.renderer&&this.renderer.deploy(),this.deployed=!0,this},t.update=function(){var e;return(e=this.rules).update.apply(e,arguments),this},t.updateOne=function(e,t,A){return this.rules.updateOne(e,t,A),this},t.toString=function(e){return this.rules.toString(e)},e}(),X=function(){function e(){this.plugins={internal:[],external:[]},this.registry={}}var t=e.prototype;return t.onCreateRule=function(e,t,A){for(var n=0;n<this.registry.onCreateRule.length;n++){var r=this.registry.onCreateRule[n](e,t,A);if(r)return r}return null},t.onProcessRule=function(e){if(!e.isProcessed){for(var t=e.options.sheet,A=0;A<this.registry.onProcessRule.length;A++)this.registry.onProcessRule[A](e,t);e.style&&this.onProcessStyle(e.style,e,t),e.isProcessed=!0}},t.onProcessStyle=function(e,t,A){for(var n=0;n<this.registry.onProcessStyle.length;n++)t.style=this.registry.onProcessStyle[n](t.style,t,A)},t.onProcessSheet=function(e){for(var t=0;t<this.registry.onProcessSheet.length;t++)this.registry.onProcessSheet[t](e)},t.onUpdate=function(e,t,A,n){for(var r=0;r<this.registry.onUpdate.length;r++)this.registry.onUpdate[r](e,t,A,n)},t.onChangeValue=function(e,t,A){for(var n=e,r=0;r<this.registry.onChangeValue.length;r++)n=this.registry.onChangeValue[r](n,t,A);return n},t.use=function(e,t){void 0===t&&(t={queue:"external"});var A=this.plugins[t.queue];-1===A.indexOf(e)&&(A.push(e),this.registry=[].concat(this.plugins.external,this.plugins.internal).reduce((function(e,t){for(var A in t)A in e&&e[A].push(t[A]);return e}),{onCreateRule:[],onProcessRule:[],onProcessStyle:[],onProcessSheet:[],onChangeValue:[],onUpdate:[]}))},e}(),q=new(function(){function e(){this.registry=[]}var t=e.prototype;return t.add=function(e){var t=this.registry,A=e.options.index;if(-1===t.indexOf(e))if(0===t.length||A>=this.index)t.push(e);else for(var n=0;n<t.length;n++)if(t[n].options.index>A)return void t.splice(n,0,e)},t.reset=function(){this.registry=[]},t.remove=function(e){var t=this.registry.indexOf(e);this.registry.splice(t,1)},t.toString=function(e){for(var t=void 0===e?{}:e,A=t.attached,n=Object(s.a)(t,["attached"]),r=C(n).linebreak,i="",o=0;o<this.registry.length;o++){var a=this.registry[o];null!=A&&a.attached!==A||(i&&(i+=r),i+=a.toString(n))}return i},Object(i.a)(e,[{key:"index",get:function(){return 0===this.registry.length?0:this.registry[this.registry.length-1].options.index}}]),e}()),z="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window&&window.Math===Math?window:"undefined"!==typeof self&&self.Math===Math?self:Function("return this")(),$="2f1acc6c3a606b082e5eef5e54414ffb";null==z[$]&&(z[$]=0);var ee=z[$]++,te=function(e){void 0===e&&(e={});var t=0;return function(A,n){t+=1;var r="",i="";return n&&(n.options.classNamePrefix&&(i=n.options.classNamePrefix),null!=n.options.jss.id&&(r=String(n.options.jss.id))),e.minify?""+(i||"c")+ee+r+t:i+A.key+"-"+ee+(r?"-"+r:"")+"-"+t}},Ae=function(e){var t;return function(){return t||(t=e()),t}},ne=function(e,t){try{return e.attributeStyleMap?e.attributeStyleMap.get(t):e.style.getPropertyValue(t)}catch(A){return""}},re=function(e,t,A){try{var n=A;if(Array.isArray(A)&&(n=I(A,!0),"!important"===A[A.length-1]))return e.style.setProperty(t,n,"important"),!0;e.attributeStyleMap?e.attributeStyleMap.set(t,n):e.style.setProperty(t,n)}catch(r){return!1}return!0},ie=function(e,t){try{e.attributeStyleMap?e.attributeStyleMap.delete(t):e.style.removeProperty(t)}catch(A){}},oe=function(e,t){return e.selectorText=t,e.selectorText===t},ae=Ae((function(){return document.querySelector("head")}));function se(e){var t=q.registry;if(t.length>0){var A=function(e,t){for(var A=0;A<e.length;A++){var n=e[A];if(n.attached&&n.options.index>t.index&&n.options.insertionPoint===t.insertionPoint)return n}return null}(t,e);if(A&&A.renderer)return{parent:A.renderer.element.parentNode,node:A.renderer.element};if((A=function(e,t){for(var A=e.length-1;A>=0;A--){var n=e[A];if(n.attached&&n.options.insertionPoint===t.insertionPoint)return n}return null}(t,e))&&A.renderer)return{parent:A.renderer.element.parentNode,node:A.renderer.element.nextSibling}}var n=e.insertionPoint;if(n&&"string"===typeof n){var r=function(e){for(var t=ae(),A=0;A<t.childNodes.length;A++){var n=t.childNodes[A];if(8===n.nodeType&&n.nodeValue.trim()===e)return n}return null}(n);if(r)return{parent:r.parentNode,node:r.nextSibling}}return!1}var ge=Ae((function(){var e=document.querySelector('meta[property="csp-nonce"]');return e?e.getAttribute("content"):null})),ce=function(e,t,A){try{"insertRule"in e?e.insertRule(t,A):"appendRule"in e&&e.appendRule(t)}catch(n){return!1}return e.cssRules[A]},ue=function(e,t){var A=e.cssRules.length;return void 0===t||t>A?A:t},le=function(){function e(e){this.getPropertyValue=ne,this.setProperty=re,this.removeProperty=ie,this.setSelector=oe,this.hasInsertedRules=!1,this.cssRules=[],e&&q.add(e),this.sheet=e;var t=this.sheet?this.sheet.options:{},A=t.media,n=t.meta,r=t.element;this.element=r||function(){var e=document.createElement("style");return e.textContent="\n",e}(),this.element.setAttribute("data-jss",""),A&&this.element.setAttribute("media",A),n&&this.element.setAttribute("data-meta",n);var i=ge();i&&this.element.setAttribute("nonce",i)}var t=e.prototype;return t.attach=function(){if(!this.element.parentNode&&this.sheet){!function(e,t){var A=t.insertionPoint,n=se(t);if(!1!==n&&n.parent)n.parent.insertBefore(e,n.node);else if(A&&"number"===typeof A.nodeType){var r=A,i=r.parentNode;i&&i.insertBefore(e,r.nextSibling)}else ae().appendChild(e)}(this.element,this.sheet.options);var e=Boolean(this.sheet&&this.sheet.deployed);this.hasInsertedRules&&e&&(this.hasInsertedRules=!1,this.deploy())}},t.detach=function(){if(this.sheet){var e=this.element.parentNode;e&&e.removeChild(this.element),this.sheet.options.link&&(this.cssRules=[],this.element.textContent="\n")}},t.deploy=function(){var e=this.sheet;e&&(e.options.link?this.insertRules(e.rules):this.element.textContent="\n"+e.toString()+"\n")},t.insertRules=function(e,t){for(var A=0;A<e.index.length;A++)this.insertRule(e.index[A],A,t)},t.insertRule=function(e,t,A){if(void 0===A&&(A=this.element.sheet),e.rules){var n=e,r=A;if("conditional"===e.type||"keyframes"===e.type){var i=ue(A,t);if(!1===(r=ce(A,n.toString({children:!1}),i)))return!1;this.refCssRule(e,i,r)}return this.insertRules(n.rules,r),r}var o=e.toString();if(!o)return!1;var a=ue(A,t),s=ce(A,o,a);return!1!==s&&(this.hasInsertedRules=!0,this.refCssRule(e,a,s),s)},t.refCssRule=function(e,t,A){e.renderable=A,e.options.parent instanceof W&&(this.cssRules[t]=A)},t.deleteRule=function(e){var t=this.element.sheet,A=this.indexOf(e);return-1!==A&&(t.deleteRule(A),this.cssRules.splice(A,1),!0)},t.indexOf=function(e){return this.cssRules.indexOf(e)},t.replaceRule=function(e,t){var A=this.indexOf(e);return-1!==A&&(this.element.sheet.deleteRule(A),this.cssRules.splice(A,1),this.insertRule(t,A))},t.getRules=function(){return this.element.sheet.cssRules},e}(),Ie=0,Ce=function(){function e(e){this.id=Ie++,this.version="10.8.2",this.plugins=new X,this.options={id:{minify:!1},createGenerateId:te,Renderer:r.a?le:null,plugins:[]},this.generateId=te({minify:!1});for(var t=0;t<j.length;t++)this.plugins.use(j[t],{queue:"internal"});this.setup(e)}var t=e.prototype;return t.setup=function(e){return void 0===e&&(e={}),e.createGenerateId&&(this.options.createGenerateId=e.createGenerateId),e.id&&(this.options.id=Object(n.a)({},this.options.id,e.id)),(e.createGenerateId||e.id)&&(this.generateId=this.options.createGenerateId(this.options.id)),null!=e.insertionPoint&&(this.options.insertionPoint=e.insertionPoint),"Renderer"in e&&(this.options.Renderer=e.Renderer),e.plugins&&this.use.apply(this,e.plugins),this},t.createStyleSheet=function(e,t){void 0===t&&(t={});var A=t.index;"number"!==typeof A&&(A=0===q.index?0:q.index+1);var r=new W(e,Object(n.a)({},t,{jss:this,generateId:t.generateId||this.generateId,insertionPoint:this.options.insertionPoint,Renderer:this.options.Renderer,index:A}));return this.plugins.onProcessSheet(r),r},t.removeStyleSheet=function(e){return e.detach(),q.remove(e),this},t.createRule=function(e,t,A){if(void 0===t&&(t={}),void 0===A&&(A={}),"object"===typeof e)return this.createRule(void 0,e,t);var r=Object(n.a)({},A,{name:e,jss:this,Renderer:this.options.Renderer});r.generateId||(r.generateId=this.generateId),r.classes||(r.classes={}),r.keyframes||(r.keyframes={});var i=u(e,t,r);return i&&this.plugins.onProcessRule(i),i},t.use=function(){for(var e=this,t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return A.forEach((function(t){e.plugins.use(t)})),this},e}(),he=function(e){return new Ce(e)},fe="object"===typeof CSS&&null!=CSS&&"number"in CSS;function de(e){var t=null;for(var A in e){var n=e[A],r=typeof n;if("function"===r)t||(t={}),t[A]=n;else if("object"===r&&null!==n&&!Array.isArray(n)){var i=de(n);i&&(t||(t={}),t[A]=i)}}return t}he()},function(e,t){function A(){return e.exports=A=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},A.apply(this,arguments)}e.exports=A},function(e,t,A){"use strict";var n=A(7);function r(e){var t=e.source,A=e.target,n=e.start,r=void 0===n?0:n,i=e.end,o=e.size,a=e.getData;i=i||A.length;var s=t.length,g=i-r;if(s>g)A.set(t.subarray(0,g),r);else if(A.set(t,r),a)for(var c=s;c<g;)for(var u=a(c,t),l=0;l<o;l++)A[r+c]=u[l]||0,c++}A.d(t,"e",(function(){return o})),A.d(t,"d",(function(){return a})),A.d(t,"c",(function(){return s})),A.d(t,"a",(function(){return g})),A.d(t,"b",(function(){return c})),A.d(t,"f",(function(){return u}));var i={interpolation:{duration:0,easing:function(e){return e}},spring:{stiffness:.05,damping:.5}};function o(e,t){return e?(Number.isFinite(e)&&(e={duration:e}),e.type=e.type||"interpolation",Object(n.a)({},i[e.type],{},t,{},e)):null}function a(e,t){return t.getBuffer()?[t.getBuffer(),{divisor:0,size:t.size,normalized:t.settings.normalized}]:t.value}function s(e){switch(e){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error('No defined attribute type for size "'.concat(e,'"'))}}function g(e){e.push(e.shift())}function c(e,t){var A=e.doublePrecision,n=e.settings,r=e.value,i=e.size,o=A&&r instanceof Float64Array?2:1;return(n.noAlloc?r.length:t*i)*o}function u(e){var t=e.buffer,A=e.numInstances,n=e.attribute,i=e.fromLength,o=e.fromStartIndices,a=e.getData,s=void 0===a?function(e){return e}:a,g=n.doublePrecision&&n.value instanceof Float64Array?2:1,u=n.size*g,l=n.byteOffset,I=n.startIndices,C=o&&I,h=c(n,A),f=n.state.constant;if(C||!(i>=h)){var d=f?n.value:n.getBuffer().getData({srcByteOffset:l});if(n.settings.normalized&&!f){var B=s;s=function(e,t){return n._normalizeConstant(B(e,t))}}var p=f?function(e,t){return s(d,t)}:function(e,t){return s(d.subarray(e,e+u),t)},E=t.getData({length:i}),Q=new Float32Array(h);!function(e){var t=e.source,A=e.target,n=e.size,i=e.getData,o=e.sourceStartIndices,a=e.targetStartIndices;if(!Array.isArray(a))return r({source:t,target:A,size:n,getData:i}),A;for(var s=0,g=0,c=i&&function(e,t){return i(e+g,t)},u=Math.min(o.length,a.length),l=1;l<u;l++){var I=o[l]*n,C=a[l]*n;r({source:t.subarray(s,I),target:A,start:g,end:C,size:n,getData:c}),s=I,g=C}g<A.length&&r({source:[],target:A,start:g,size:n,getData:c})}({source:E,target:Q,sourceStartIndices:o,targetStartIndices:I,size:u,getData:p}),t.byteLength<Q.byteLength+l&&t.reallocate(Q.byteLength+l),t.subData({data:Q,offset:l})}}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(59);t.getCoord=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")},t.getCoords=function(e){if(Array.isArray(e))return e;if("Feature"===e.type){if(null!==e.geometry)return e.geometry.coordinates}else if(e.coordinates)return e.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")},t.containsNumber=function e(t){if(t.length>1&&n.isNumber(t[0])&&n.isNumber(t[1]))return!0;if(Array.isArray(t[0])&&t[0].length)return e(t[0]);throw new Error("coordinates must only contain numbers")},t.geojsonType=function(e,t,A){if(!t||!A)throw new Error("type and name required");if(!e||e.type!==t)throw new Error("Invalid input to "+A+": must be a "+t+", given "+e.type)},t.featureOf=function(e,t,A){if(!e)throw new Error("No feature passed");if(!A)throw new Error(".featureOf() requires a name");if(!e||"Feature"!==e.type||!e.geometry)throw new Error("Invalid input to "+A+", Feature with geometry required");if(!e.geometry||e.geometry.type!==t)throw new Error("Invalid input to "+A+": must be a "+t+", given "+e.geometry.type)},t.collectionOf=function(e,t,A){if(!e)throw new Error("No featureCollection passed");if(!A)throw new Error(".collectionOf() requires a name");if(!e||"FeatureCollection"!==e.type)throw new Error("Invalid input to "+A+", FeatureCollection required");for(var n=0,r=e.features;n<r.length;n++){var i=r[n];if(!i||"Feature"!==i.type||!i.geometry)throw new Error("Invalid input to "+A+", Feature with geometry required");if(!i.geometry||i.geometry.type!==t)throw new Error("Invalid input to "+A+": must be a "+t+", given "+i.geometry.type)}},t.getGeom=function(e){return"Feature"===e.type?e.geometry:e},t.getType=function(e,t){return"FeatureCollection"===e.type?"FeatureCollection":"GeometryCollection"===e.type?"GeometryCollection":"Feature"===e.type&&null!==e.geometry?e.geometry.type:e.type}},function(e,t,A){var n=A(299),r=A(300),i=A(371),o=A(370),a=o.MAX_LENGTH,s=o.MAX_SAFE_INTEGER,g=A(260),c=g.re,u=g.t,l=A(372),I=A(498).compareIdentifiers,C=function(){"use strict";function e(t,A){if(n(this,e),A=l(A),t instanceof e){if(t.loose===!!A.loose&&t.includePrerelease===!!A.includePrerelease)return t;t=t.version}else if("string"!==typeof t)throw new TypeError("Invalid Version: ".concat(t));if(t.length>a)throw new TypeError("version is longer than ".concat(a," characters"));i("SemVer",t,A),this.options=A,this.loose=!!A.loose,this.includePrerelease=!!A.includePrerelease;var r=t.trim().match(A.loose?c[u.LOOSE]:c[u.FULL]);if(!r)throw new TypeError("Invalid Version: ".concat(t));if(this.raw=t,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map((function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t<s)return t}return e})):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}return r(e,[{key:"format",value:function(){return this.version="".concat(this.major,".").concat(this.minor,".").concat(this.patch),this.prerelease.length&&(this.version+="-".concat(this.prerelease.join("."))),this.version}},{key:"toString",value:function(){return this.version}},{key:"compare",value:function(t){if(i("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if("string"===typeof t&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}},{key:"compareMain",value:function(t){return t instanceof e||(t=new e(t,this.options)),I(this.major,t.major)||I(this.minor,t.minor)||I(this.patch,t.patch)}},{key:"comparePre",value:function(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;var A=0;do{var n=this.prerelease[A],r=t.prerelease[A];if(i("prerelease compare",A,n,r),void 0===n&&void 0===r)return 0;if(void 0===r)return 1;if(void 0===n)return-1;if(n!==r)return I(n,r)}while(++A)}},{key:"compareBuild",value:function(t){t instanceof e||(t=new e(t,this.options));var A=0;do{var n=this.build[A],r=t.build[A];if(i("prerelease compare",A,n,r),void 0===n&&void 0===r)return 0;if(void 0===r)return 1;if(void 0===n)return-1;if(n!==r)return I(n,r)}while(++A)}},{key:"inc",value:function(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{for(var A=this.prerelease.length;--A>=0;)"number"===typeof this.prerelease[A]&&(this.prerelease[A]++,A=-2);-1===A&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: ".concat(e))}return this.format(),this.raw=this.version,this}}]),e}();e.exports=C},function(e,t,A){var n=A(127),r=A(882),i=A(460),o=Math.max,a=Math.min;e.exports=function(e,t,A){var s,g,c,u,l,I,C=0,h=!1,f=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function B(t){var A=s,n=g;return s=g=void 0,C=t,u=e.apply(n,A)}function p(e){return C=e,l=setTimeout(Q,t),h?B(e):u}function E(e){var A=e-I;return void 0===I||A>=t||A<0||f&&e-C>=c}function Q(){var e=r();if(E(e))return y(e);l=setTimeout(Q,function(e){var A=t-(e-I);return f?a(A,c-(e-C)):A}(e))}function y(e){return l=void 0,d&&s?B(e):(s=g=void 0,u)}function v(){var e=r(),A=E(e);if(s=arguments,g=this,I=e,A){if(void 0===l)return p(I);if(f)return clearTimeout(l),l=setTimeout(Q,t),B(I)}return void 0===l&&(l=setTimeout(Q,t)),u}return t=i(t)||0,n(A)&&(h=!!A.leading,c=(f="maxWait"in A)?o(i(A.maxWait)||0,t):c,d="trailing"in A?!!A.trailing:d),v.cancel=function(){void 0!==l&&clearTimeout(l),C=0,s=I=g=l=void 0},v.flush=function(){return void 0===l?u:y(r())},v}},function(e,t,A){"use strict";A.d(t,"c",(function(){return i})),A.d(t,"b",(function(){return o})),A.d(t,"a",(function(){return a}));var n=A(26),r={};function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"id";r[e]=r[e]||1;var t=r[e]++;return"".concat(e,"-").concat(t)}function o(e){return Object(n.a)("number"===typeof e,"Input must be a number"),e&&0===(e&e-1)}function a(e){var t=!0;for(var A in e){t=!1;break}return t}},function(e,t,A){"use strict";A.d(t,"b",(function(){return r})),A.d(t,"a",(function(){return i}));var n=A(26);function r(e,t){if("string"!==typeof t)return t;var A=Number(t);if(!isNaN(A))return A;var r=e[t=t.replace(/^.*\./,"")];return Object(n.a)(void 0!==r,"Accessing undefined constant GL.".concat(t)),r}function i(e,t){for(var A in t=Number(t),e)if(e[A]===t)return"GL.".concat(A);return String(t)}},function(e,t,A){var n;!function(A){"use strict";var r=function(e){return.5*(Math.exp(e)+Math.exp(-e))},i=function(e){return.5*(Math.exp(e)-Math.exp(-e))},o=function(){throw SyntaxError("Invalid Param")};function a(e,t){var A=Math.abs(e),n=Math.abs(t);return 0===e?Math.log(n):0===t?Math.log(A):A<3e3&&n<3e3?.5*Math.log(e*e+t*t):Math.log(e/Math.cos(Math.atan2(t,e)))}function s(e,t){if(!(this instanceof s))return new s(e,t);var A=function(e,t){var A={re:0,im:0};if(void 0===e||null===e)A.re=A.im=0;else if(void 0!==t)A.re=e,A.im=t;else switch(typeof e){case"object":if("im"in e&&"re"in e)A.re=e.re,A.im=e.im;else if("abs"in e&&"arg"in e){if(!Number.isFinite(e.abs)&&Number.isFinite(e.arg))return s.INFINITY;A.re=e.abs*Math.cos(e.arg),A.im=e.abs*Math.sin(e.arg)}else if("r"in e&&"phi"in e){if(!Number.isFinite(e.r)&&Number.isFinite(e.phi))return s.INFINITY;A.re=e.r*Math.cos(e.phi),A.im=e.r*Math.sin(e.phi)}else 2===e.length?(A.re=e[0],A.im=e[1]):o();break;case"string":A.im=A.re=0;var n=e.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),r=1,i=0;null===n&&o();for(var a=0;a<n.length;a++){var g=n[a];" "===g||"\t"===g||"\n"===g||("+"===g?r++:"-"===g?i++:"i"===g||"I"===g?(r+i===0&&o()," "===n[a+1]||isNaN(n[a+1])?A.im+=parseFloat((i%2?"-":"")+"1"):(A.im+=parseFloat((i%2?"-":"")+n[a+1]),a++),r=i=0):((r+i===0||isNaN(g))&&o(),"i"===n[a+1]||"I"===n[a+1]?(A.im+=parseFloat((i%2?"-":"")+g),a++):A.re+=parseFloat((i%2?"-":"")+g),r=i=0))}r+i>0&&o();break;case"number":A.im=0,A.re=e;break;default:o()}return isNaN(A.re)||isNaN(A.im),A}(e,t);this.re=A.re,this.im=A.im}s.prototype={re:0,im:0,sign:function(){var e=this.abs();return new s(this.re/e,this.im/e)},add:function(e,t){var A=new s(e,t);return this.isInfinite()&&A.isInfinite()?s.NAN:this.isInfinite()||A.isInfinite()?s.INFINITY:new s(this.re+A.re,this.im+A.im)},sub:function(e,t){var A=new s(e,t);return this.isInfinite()&&A.isInfinite()?s.NAN:this.isInfinite()||A.isInfinite()?s.INFINITY:new s(this.re-A.re,this.im-A.im)},mul:function(e,t){var A=new s(e,t);return this.isInfinite()&&A.isZero()||this.isZero()&&A.isInfinite()?s.NAN:this.isInfinite()||A.isInfinite()?s.INFINITY:0===A.im&&0===this.im?new s(this.re*A.re,0):new s(this.re*A.re-this.im*A.im,this.re*A.im+this.im*A.re)},div:function(e,t){var A=new s(e,t);if(this.isZero()&&A.isZero()||this.isInfinite()&&A.isInfinite())return s.NAN;if(this.isInfinite()||A.isZero())return s.INFINITY;if(this.isZero()||A.isInfinite())return s.ZERO;e=this.re,t=this.im;var n,r,i=A.re,o=A.im;return 0===o?new s(e/i,t/i):Math.abs(i)<Math.abs(o)?new s((e*(r=i/o)+t)/(n=i*r+o),(t*r-e)/n):new s((e+t*(r=o/i))/(n=o*r+i),(t-e*r)/n)},pow:function(e,t){var A=new s(e,t);if(e=this.re,t=this.im,A.isZero())return s.ONE;if(0===A.im){if(0===t&&e>=0)return new s(Math.pow(e,A.re),0);if(0===e)switch((A.re%4+4)%4){case 0:return new s(Math.pow(t,A.re),0);case 1:return new s(0,Math.pow(t,A.re));case 2:return new s(-Math.pow(t,A.re),0);case 3:return new s(0,-Math.pow(t,A.re))}}if(0===e&&0===t&&A.re>0&&A.im>=0)return s.ZERO;var n=Math.atan2(t,e),r=a(e,t);return e=Math.exp(A.re*r-A.im*n),t=A.im*r+A.re*n,new s(e*Math.cos(t),e*Math.sin(t))},sqrt:function(){var e,t,A=this.re,n=this.im,r=this.abs();if(A>=0){if(0===n)return new s(Math.sqrt(A),0);e=.5*Math.sqrt(2*(r+A))}else e=Math.abs(n)/Math.sqrt(2*(r-A));return t=A<=0?.5*Math.sqrt(2*(r-A)):Math.abs(n)/Math.sqrt(2*(r+A)),new s(e,n<0?-t:t)},exp:function(){var e=Math.exp(this.re);return this.im,new s(e*Math.cos(this.im),e*Math.sin(this.im))},expm1:function(){var e=this.re,t=this.im;return new s(Math.expm1(e)*Math.cos(t)+function(e){var t=Math.PI/4;if(e<-t||e>t)return Math.cos(e)-1;var A=e*e;return A*(A*(1/24+A*(-1/720+A*(1/40320+A*(-1/3628800+A*(1/4790014600+A*(-1/87178291200+A*(1/20922789888e3)))))))-.5)}(t),Math.exp(e)*Math.sin(t))},log:function(){var e=this.re,t=this.im;return new s(a(e,t),Math.atan2(t,e))},abs:function(){return function(e,t){var A=Math.abs(e),n=Math.abs(t);return A<3e3&&n<3e3?Math.sqrt(A*A+n*n):(A<n?(A=n,n=e/t):n=t/e,A*Math.sqrt(1+n*n))}(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){var e=this.re,t=this.im;return new s(Math.sin(e)*r(t),Math.cos(e)*i(t))},cos:function(){var e=this.re,t=this.im;return new s(Math.cos(e)*r(t),-Math.sin(e)*i(t))},tan:function(){var e=2*this.re,t=2*this.im,A=Math.cos(e)+r(t);return new s(Math.sin(e)/A,i(t)/A)},cot:function(){var e=2*this.re,t=2*this.im,A=Math.cos(e)-r(t);return new s(-Math.sin(e)/A,i(t)/A)},sec:function(){var e=this.re,t=this.im,A=.5*r(2*t)+.5*Math.cos(2*e);return new s(Math.cos(e)*r(t)/A,Math.sin(e)*i(t)/A)},csc:function(){var e=this.re,t=this.im,A=.5*r(2*t)-.5*Math.cos(2*e);return new s(Math.sin(e)*r(t)/A,-Math.cos(e)*i(t)/A)},asin:function(){var e=this.re,t=this.im,A=new s(t*t-e*e+1,-2*e*t).sqrt(),n=new s(A.re-t,A.im+e).log();return new s(n.im,-n.re)},acos:function(){var e=this.re,t=this.im,A=new s(t*t-e*e+1,-2*e*t).sqrt(),n=new s(A.re-t,A.im+e).log();return new s(Math.PI/2-n.im,n.re)},atan:function(){var e=this.re,t=this.im;if(0===e){if(1===t)return new s(0,1/0);if(-1===t)return new s(0,-1/0)}var A=e*e+(1-t)*(1-t),n=new s((1-t*t-e*e)/A,-2*e/A).log();return new s(-.5*n.im,.5*n.re)},acot:function(){var e=this.re,t=this.im;if(0===t)return new s(Math.atan2(1,e),0);var A=e*e+t*t;return 0!==A?new s(e/A,-t/A).atan():new s(0!==e?e/0:0,0!==t?-t/0:0).atan()},asec:function(){var e=this.re,t=this.im;if(0===e&&0===t)return new s(0,1/0);var A=e*e+t*t;return 0!==A?new s(e/A,-t/A).acos():new s(0!==e?e/0:0,0!==t?-t/0:0).acos()},acsc:function(){var e=this.re,t=this.im;if(0===e&&0===t)return new s(Math.PI/2,1/0);var A=e*e+t*t;return 0!==A?new s(e/A,-t/A).asin():new s(0!==e?e/0:0,0!==t?-t/0:0).asin()},sinh:function(){var e=this.re,t=this.im;return new s(i(e)*Math.cos(t),r(e)*Math.sin(t))},cosh:function(){var e=this.re,t=this.im;return new s(r(e)*Math.cos(t),i(e)*Math.sin(t))},tanh:function(){var e=2*this.re,t=2*this.im,A=r(e)+Math.cos(t);return new s(i(e)/A,Math.sin(t)/A)},coth:function(){var e=2*this.re,t=2*this.im,A=r(e)-Math.cos(t);return new s(i(e)/A,-Math.sin(t)/A)},csch:function(){var e=this.re,t=this.im,A=Math.cos(2*t)-r(2*e);return new s(-2*i(e)*Math.cos(t)/A,2*r(e)*Math.sin(t)/A)},sech:function(){var e=this.re,t=this.im,A=Math.cos(2*t)+r(2*e);return new s(2*r(e)*Math.cos(t)/A,-2*i(e)*Math.sin(t)/A)},asinh:function(){var e=this.im;this.im=-this.re,this.re=e;var t=this.asin();return this.re=-this.im,this.im=e,e=t.re,t.re=-t.im,t.im=e,t},acosh:function(){var e=this.acos();if(e.im<=0){var t=e.re;e.re=-e.im,e.im=t}else{t=e.im;e.im=-e.re,e.re=t}return e},atanh:function(){var e=this.re,t=this.im,A=e>1&&0===t,n=1-e,r=1+e,i=n*n+t*t,o=0!==i?new s((r*n-t*t)/i,(t*n+r*t)/i):new s(-1!==e?e/0:0,0!==t?t/0:0),g=o.re;return o.re=a(o.re,o.im)/2,o.im=Math.atan2(o.im,g)/2,A&&(o.im=-o.im),o},acoth:function(){var e=this.re,t=this.im;if(0===e&&0===t)return new s(0,Math.PI/2);var A=e*e+t*t;return 0!==A?new s(e/A,-t/A).atanh():new s(0!==e?e/0:0,0!==t?-t/0:0).atanh()},acsch:function(){var e=this.re,t=this.im;if(0===t)return new s(0!==e?Math.log(e+Math.sqrt(e*e+1)):1/0,0);var A=e*e+t*t;return 0!==A?new s(e/A,-t/A).asinh():new s(0!==e?e/0:0,0!==t?-t/0:0).asinh()},asech:function(){var e=this.re,t=this.im;if(this.isZero())return s.INFINITY;var A=e*e+t*t;return 0!==A?new s(e/A,-t/A).acosh():new s(0!==e?e/0:0,0!==t?-t/0:0).acosh()},inverse:function(){if(this.isZero())return s.INFINITY;if(this.isInfinite())return s.ZERO;var e=this.re,t=this.im,A=e*e+t*t;return new s(e/A,-t/A)},conjugate:function(){return new s(this.re,-this.im)},neg:function(){return new s(-this.re,-this.im)},ceil:function(e){return e=Math.pow(10,e||0),new s(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)},floor:function(e){return e=Math.pow(10,e||0),new s(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)},round:function(e){return e=Math.pow(10,e||0),new s(Math.round(this.re*e)/e,Math.round(this.im*e)/e)},equals:function(e,t){var A=new s(e,t);return Math.abs(A.re-this.re)<=s.EPSILON&&Math.abs(A.im-this.im)<=s.EPSILON},clone:function(){return new s(this.re,this.im)},toString:function(){var e=this.re,t=this.im,A="";return this.isNaN()?"NaN":this.isZero()?"0":this.isInfinite()?"Infinity":(0!==e&&(A+=e),0!==t&&(0!==e?A+=t<0?" - ":" + ":t<0&&(A+="-"),1!==(t=Math.abs(t))&&(A+=t),A+="i"),A||"0")},toVector:function(){return[this.re,this.im]},valueOf:function(){return 0===this.im?this.re:null},isNaN:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(){return isNaN(this.re)||isNaN(this.im)})),isZero:function(){return(0===this.re||-0===this.re)&&(0===this.im||-0===this.im)},isFinite:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(){return isFinite(this.re)&&isFinite(this.im)})),isInfinite:function(){return!(this.isNaN()||this.isFinite())}},s.ZERO=new s(0,0),s.ONE=new s(1,0),s.I=new s(0,1),s.PI=new s(Math.PI,0),s.E=new s(Math.E,0),s.INFINITY=new s(1/0,1/0),s.NAN=new s(NaN,NaN),s.EPSILON=1e-16,void 0===(n=function(){return s}.apply(t,[]))||(e.exports=n)}()},function(e,t){var A=Array.isArray;e.exports=A},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(105),r=A(59);t.default=function(e,t,A){void 0===A&&(A={});var i=n.getCoord(e),o=n.getCoord(t),a=r.degreesToRadians(o[1]-i[1]),s=r.degreesToRadians(o[0]-i[0]),g=r.degreesToRadians(i[1]),c=r.degreesToRadians(o[1]),u=Math.pow(Math.sin(a/2),2)+Math.pow(Math.sin(s/2),2)*Math.cos(g)*Math.cos(c);return r.radiansToLength(2*Math.atan2(Math.sqrt(u),Math.sqrt(1-u)),A.units)}},function(e,t,A){"use strict";var n=A(14),r=A(0),i=A.n(r),o=A(21),a=(A(13),A(19)),s=A(28),g=A(40),c=r.forwardRef((function(e,t){var A=e.children,i=e.classes,s=e.className,c=e.color,u=void 0===c?"inherit":c,l=e.component,I=void 0===l?"svg":l,C=e.fontSize,h=void 0===C?"medium":C,f=e.htmlColor,d=e.titleAccess,B=e.viewBox,p=void 0===B?"0 0 24 24":B,E=Object(o.a)(e,["children","classes","className","color","component","fontSize","htmlColor","titleAccess","viewBox"]);return r.createElement(I,Object(n.a)({className:Object(a.a)(i.root,s,"inherit"!==u&&i["color".concat(Object(g.a)(u))],"default"!==h&&"medium"!==h&&i["fontSize".concat(Object(g.a)(h))]),focusable:"false",viewBox:p,color:f,"aria-hidden":!d||void 0,role:d?"img":void 0,ref:t},E),A,d?r.createElement("title",null,d):null)}));c.muiName="SvgIcon";var u=Object(s.a)((function(e){return{root:{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:"currentColor",flexShrink:0,fontSize:e.typography.pxToRem(24),transition:e.transitions.create("fill",{duration:e.transitions.duration.shorter})},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},colorAction:{color:e.palette.action.active},colorError:{color:e.palette.error.main},colorDisabled:{color:e.palette.action.disabled},fontSizeInherit:{fontSize:"inherit"},fontSizeSmall:{fontSize:e.typography.pxToRem(20)},fontSizeLarge:{fontSize:e.typography.pxToRem(35)}}}),{name:"MuiSvgIcon"})(c);function l(e,t){var A=function(t,A){return i.a.createElement(u,Object(n.a)({ref:A},t),e)};return A.muiName=u.muiName,i.a.memo(i.a.forwardRef(A))}A.d(t,"a",(function(){return l}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return i}));var n=A(532),r=(A(0),A(205));function i(){return Object(n.a)()||r.a}},function(e,t,A){"use strict";function n(e,t){if(!e)throw new Error(t||"loaders.gl assertion failed.")}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return i})),A.d(t,"c",(function(){return o})),A.d(t,"b",(function(){return a}));var n=[],r=[];function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,i=n,o={index:-1,data:e,target:[]};return e?"function"===typeof e[Symbol.iterator]?i=e:e.length>0&&(r.length=e.length,i=r):i=n,(t>0||Number.isFinite(A))&&(i=(Array.isArray(i)?i:Array.from(i)).slice(t,A),o.index=t-1),{iterable:i,objectInfo:o}}function o(e){return e&&e[Symbol.asyncIterator]}function a(e,t){var A=t.size,n=t.stride,r=t.offset,i=t.startIndices,o=t.nested,a=e.BYTES_PER_ELEMENT,s=n?n/a:A,g=r?r/a:0,c=Math.floor((e.length-g)/s);return function(t,n){var r=n.index,a=n.target;if(!i){for(var u=r*s+g,l=0;l<A;l++)a[l]=e[u+l];return a}var I,C=i[r],h=i[r+1]||c;if(o){I=new Array(h-C);for(var f=C;f<h;f++){var d=f*s+g;a=new Array(A);for(var B=0;B<A;B++)a[B]=e[d+B];I[f-C]=a}}else if(s===A)I=e.subarray(C*A+g,h*A+g);else{I=new e.constructor((h-C)*A);for(var p=0,E=C;E<h;E++)for(var Q=E*s+g,y=0;y<A;y++)I[p++]=e[Q+y]}return I}}},function(e,t,A){"use strict";A.d(t,"a",(function(){return i}));var n=new Date,r=new Date;function i(e,t,A,o){function a(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return a.floor=function(t){return e(t=new Date(+t)),t},a.ceil=function(A){return e(A=new Date(A-1)),t(A,1),e(A),A},a.round=function(e){var t=a(e),A=a.ceil(e);return e-t<A-e?t:A},a.offset=function(e,A){return t(e=new Date(+e),null==A?1:Math.floor(A)),e},a.range=function(A,n,r){var i,o=[];if(A=a.ceil(A),r=null==r?1:Math.floor(r),!(A<n)||!(r>0))return o;do{o.push(i=new Date(+A)),t(A,r),e(A)}while(i<A&&A<n);return o},a.filter=function(A){return i((function(t){if(t>=t)for(;e(t),!A(t);)t.setTime(t-1)}),(function(e,n){if(e>=e)if(n<0)for(;++n<=0;)for(;t(e,-1),!A(e););else for(;--n>=0;)for(;t(e,1),!A(e););}))},A&&(a.count=function(t,i){return n.setTime(+t),r.setTime(+i),e(n),e(r),Math.floor(A(n,r))},a.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?a.filter(o?function(t){return o(t)%e===0}:function(t){return a.count(0,t)%e===0}):a:null}),a}},,function(e,t,A){"use strict";A.d(t,"b",(function(){return n})),A.d(t,"c",(function(){return r})),A.d(t,"a",(function(){return i})),A.d(t,"d",(function(){return o}));function n(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error("Failed to deduce GL constant from typed array")}}function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.clamped,n=void 0===A||A;switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return n?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}function i(e){var t=e.data,A=e.width,n=e.height,r=e.bytesPerPixel,i=void 0===r?4:r,o=e.temp,a=A*i;o=o||new Uint8Array(a);for(var s=0;s<n/2;++s){var g=s*a,c=(n-s-1)*a;o.set(t.subarray(g,g+a)),t.copyWithin(g,c,c+a),t.set(o,c)}}function o(e){for(var t=e.data,A=e.width,n=e.height,r=Math.round(A/2),i=Math.round(n/2),o=new Uint8Array(r*i*4),a=0;a<i;a++)for(var s=0;s<r;s++)for(var g=0;g<4;g++)o[4*(a*r+s)+g]=t[4*(2*a*A+2*s)+g];return{data:o,width:r,height:i}}},function(e,t,A){"use strict";var n=A(8),r=A(11),i=A(6),o=A(1),a=A(4),s=A(81),g=A(42),c=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],u=c.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),l=u.concat([[.25,.5],[.75,.5]]),I=function(){function e(t,A,n){Object(o.a)(this,e),this.x=t,this.y=A,this.z=n}return Object(a.a)(e,[{key:"update",value:function(e){var t=e.viewport,A=e.cullingVolume,n=e.elevationBounds,r=e.minZ,o=e.maxZ,a=e.bounds,s=e.offset,g=e.project,c=this.getBoundingVolume(n,s,g);if(a&&!this.insideBounds(a))return!1;if(A.computeVisibility(c)<0)return!1;if(!this.childVisible){var u=this.z;if(u<o&&u>=r){var l=c.distanceTo(t.cameraPosition)*t.scale/t.height;u+=Math.floor(Math.log2(l))}if(u>=o)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;var I,C=Object(i.a)(this.children);try{for(C.s();!(I=C.n()).done;){I.value.update(e)}}catch(h){C.e(h)}finally{C.f()}return!0}},{key:"getSelected",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(this.selected&&e.push(this),this._children){var t,A=Object(i.a)(this._children);try{for(A.s();!(t=A.n()).done;){var n=t.value;n.getSelected(e)}}catch(r){A.e(r)}finally{A.f()}}return e}},{key:"insideBounds",value:function(e){var t=Object(n.a)(e,4),A=t[0],r=t[1],i=t[2],o=t[3],a=512/Math.pow(2,this.z);return this.x*a<i&&this.y*a<o&&(this.x+1)*a>A&&(this.y+1)*a>r}},{key:"getBoundingVolume",value:function(e,t,A){if(A){var n,r=this.z<1?l:this.z<2?u:c,o=[],a=Object(i.a)(r);try{for(a.s();!(n=a.n()).done;){var g=n.value,I=p(this.x+g[0],this.y+g[1],this.z);I[2]=e[0],o.push(A(I)),e[0]!==e[1]&&(I[2]=e[1],o.push(A(I)))}}catch(d){a.e(d)}finally{a.f()}return Object(s.f)(o)}var C=512/Math.pow(2,this.z),h=this.x*C+512*t,f=512-(this.y+1)*C;return new s.a([h,f,e[0]],[h+C,f+C,e[1]])}},{key:"children",get:function(){if(!this._children){var t=2*this.x,A=2*this.y,n=this.z+1;this._children=[new e(t,A,n),new e(t,A+1,n),new e(t+1,A,n),new e(t+1,A+1,n)]}return this._children}}]),e}();A.d(t,"f",(function(){return h})),A.d(t,"b",(function(){return d})),A.d(t,"d",(function(){return p})),A.d(t,"e",(function(){return Q})),A.d(t,"a",(function(){return v})),A.d(t,"c",(function(){return m}));var C=[-1/0,-1/0,1/0,1/0],h={type:"url",value:null,validate:function(e,t){return t.optional&&null===e||"string"===typeof e||Array.isArray(e)&&e.every((function(e){return"string"===typeof e}))},equals:function(e,t){if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t))return!1;var A=e.length;if(A!==t.length)return!1;for(var n=0;n<A;n++)if(e[n]!==t[n])return!1;return!0}};function f(e,t){var A=[t.transformPoint([e[0],e[1]]),t.transformPoint([e[2],e[1]]),t.transformPoint([e[0],e[3]]),t.transformPoint([e[2],e[3]])];return[Math.min.apply(Math,Object(r.a)(A.map((function(e){return e[0]})))),Math.min.apply(Math,Object(r.a)(A.map((function(e){return e[1]})))),Math.max.apply(Math,Object(r.a)(A.map((function(e){return e[0]})))),Math.max.apply(Math,Object(r.a)(A.map((function(e){return e[1]}))))]}function d(e,t){if(!e||!e.length)return null;Array.isArray(e)&&(e=e[Math.abs(t.x+t.y)%e.length]);var A=t.x,n=t.y,r=t.z;return e.replace("{x}",A).replace("{y}",n).replace("{z}",r).replace("{-y}",Math.pow(2,r)-n-1)}function B(e,t){return 512*Math.pow(2,e)/t}function p(e,t,A){var n=B(A,512),r=e/n*360-180,i=Math.PI-2*Math.PI*t/n;return[r,180/Math.PI*Math.atan(.5*(Math.exp(i)-Math.exp(-i)))]}function E(e,t,A,n){var r=B(A,n);return[e/r*512,t/r*512]}function Q(e,t,A,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:512;if(e.isGeospatial){var o=p(t,A,r),a=Object(n.a)(o,2),s=a[0],g=a[1],c=p(t+1,A+1,r),u=Object(n.a)(c,2),l=u[0],I=u[1];return{west:s,north:g,east:l,south:I}}var C=E(t,A,r,i),h=Object(n.a)(C,2),f=h[0],d=h[1],B=E(t+1,A+1,r,i),Q=Object(n.a)(B,2),y=Q[0],v=Q[1];return{left:f,top:d,right:y,bottom:v}}function y(e,t,A,r,i){for(var o=function(e,t,A){return A?f(e,A).map((function(e){return e*t/512})):e.map((function(e){return e*t/512}))}(function(e,t,A){var r;if(t&&2===t.length){var i=Object(n.a)(t,2),o=i[0],a=i[1],s=e.getBounds({z:o}),g=e.getBounds({z:a});r=[Math.min(s[0],g[0]),Math.min(s[1],g[1]),Math.max(s[2],g[2]),Math.max(s[3],g[3])]}else r=e.getBounds();return e.isGeospatial?[Math.max(r[0],A[0]),Math.max(r[1],A[1]),Math.min(r[2],A[2]),Math.min(r[3],A[3])]:[Math.max(Math.min(r[0],A[2]),A[0]),Math.max(Math.min(r[1],A[3]),A[1]),Math.min(Math.max(r[2],A[0]),A[2]),Math.min(Math.max(r[3],A[1]),A[3])]}(e,null,r),B(t,A),i),a=Object(n.a)(o,4),s=a[0],g=a[1],c=a[2],u=a[3],l=[],I=Math.floor(s);I<c;I++)for(var C=Math.floor(g);C<u;C++)l.push({x:I,y:C,z:t});return l}function v(e){var t=e.viewport,A=e.maxZoom,r=e.minZoom,i=e.zRange,o=e.extent,a=e.tileSize,c=void 0===a?512:a,u=e.modelMatrix,l=e.modelMatrixInverse,h=e.zoomOffset,d=void 0===h?0:h,B=t.isGeospatial?Math.round(t.zoom+Math.log2(512/c))+d:Math.ceil(t.zoom)+d;if(Number.isFinite(r)&&B<r){if(!o)return[];B=r}Number.isFinite(A)&&B>A&&(B=A);var p=o;return u&&l&&o&&!t.isGeospatial&&(p=f(o,u)),t.isGeospatial?function(e,t,A,r){var i=e.resolution?e.projectPosition:null,o=Object.values(e.getFrustumPlanes()).map((function(e){var t=e.normal,A=e.distance;return new s.e(t.clone().negate(),A)})),a=new s.c(o),c=e.distanceScales.unitsPerMeter[2],u=A&&A[0]*c||0,l=A&&A[1]*c||0,C=e.pitch<=60?t:0;if(r){var h=r,f=Object(n.a)(h,4),d=f[0],B=f[1],p=f[2],E=f[3],Q=Object(g.n)([d,E]),y=Object(g.n)([p,B]);r=[Q[0],512-Q[1],y[0],512-y[1]]}var v=new I(0,0,0),m={viewport:e,project:i,cullingVolume:a,elevationBounds:[u,l],minZ:C,maxZ:t,bounds:r,offset:0};if(v.update(m),e.subViewports&&e.subViewports.length>1){for(m.offset=-1;v.update(m)&&!(--m.offset<-3););for(m.offset=1;v.update(m)&&!(++m.offset>3););}return v.getSelected()}(t,B,i,o):y(t,B,c,p||C,l)}function m(e){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(e)}},function(e,t,A){"use strict";var n=A(816),r=A(461),i=A(820),o=A(560),a=A(272),s=A(821),g=A(822),c=A(843),u=A(250);e.exports=d,d.prototype.validate=function(e,t){var A;if("string"==typeof e){if(!(A=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var n=this._addSchema(e);A=n.validate||this._compile(n)}var r=A(t);!0!==A.$async&&(this.errors=A.errors);return r},d.prototype.compile=function(e,t){var A=this._addSchema(e,void 0,t);return A.validate||this._compile(A)},d.prototype.addSchema=function(e,t,A,n){if(Array.isArray(e)){for(var i=0;i<e.length;i++)this.addSchema(e[i],void 0,A,n);return this}var o=this._getId(e);if(void 0!==o&&"string"!=typeof o)throw new Error("schema id must be string");return v(this,t=r.normalizeId(t||o)),this._schemas[t]=this._addSchema(e,A,n,!0),this},d.prototype.addMetaSchema=function(e,t,A){return this.addSchema(e,t,A,!0),this},d.prototype.validateSchema=function(e,t){var A=e.$schema;if(void 0!==A&&"string"!=typeof A)throw new Error("$schema must be a string");if(!(A=A||this._opts.defaultMeta||function(e){var t=e._opts.meta;return e._opts.defaultMeta="object"==typeof t?e._getId(t)||t:e.getSchema(C)?C:void 0,e._opts.defaultMeta}(this)))return this.logger.warn("meta-schema not available"),this.errors=null,!0;var n=this.validate(A,e);if(!n&&t){var r="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(r);this.logger.error(r)}return n},d.prototype.getSchema=function(e){var t=B(this,e);switch(typeof t){case"object":return t.validate||this._compile(t);case"string":return this.getSchema(t);case"undefined":return function(e,t){var A=r.schema.call(e,{schema:{}},t);if(A){var i=A.schema,a=A.root,s=A.baseId,g=n.call(e,i,a,void 0,s);return e._fragments[t]=new o({ref:t,fragment:!0,schema:i,root:a,baseId:s,validate:g}),g}}(this,e)}},d.prototype.removeSchema=function(e){if(e instanceof RegExp)return p(this,this._schemas,e),p(this,this._refs,e),this;switch(typeof e){case"undefined":return p(this,this._schemas),p(this,this._refs),this._cache.clear(),this;case"string":var t=B(this,e);return t&&this._cache.del(t.cacheKey),delete this._schemas[e],delete this._refs[e],this;case"object":var A=this._opts.serialize,n=A?A(e):e;this._cache.del(n);var i=this._getId(e);i&&(i=r.normalizeId(i),delete this._schemas[i],delete this._refs[i])}return this},d.prototype.addFormat=function(e,t){"string"==typeof t&&(t=new RegExp(t));return this._formats[e]=t,this},d.prototype.errorsText=function(e,t){if(!(e=e||this.errors))return"No errors";for(var A=void 0===(t=t||{}).separator?", ":t.separator,n=void 0===t.dataVar?"data":t.dataVar,r="",i=0;i<e.length;i++){var o=e[i];o&&(r+=n+o.dataPath+" "+o.message+A)}return r.slice(0,-A.length)},d.prototype._addSchema=function(e,t,A,n){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var i=this._opts.serialize,a=i?i(e):e,s=this._cache.get(a);if(s)return s;n=n||!1!==this._opts.addUsedSchema;var g=r.normalizeId(this._getId(e));g&&n&&v(this,g);var c,u=!1!==this._opts.validateSchema&&!t;u&&!(c=g&&g==r.normalizeId(e.$schema))&&this.validateSchema(e,!0);var l=r.ids.call(this,e),I=new o({id:g,schema:e,localRefs:l,cacheKey:a,meta:A});"#"!=g[0]&&n&&(this._refs[g]=I);this._cache.put(a,I),u&&c&&this.validateSchema(e,!0);return I},d.prototype._compile=function(e,t){if(e.compiling)return e.validate=i,i.schema=e.schema,i.errors=null,i.root=t||i,!0===e.schema.$async&&(i.$async=!0),i;var A,r;e.compiling=!0,e.meta&&(A=this._opts,this._opts=this._metaOpts);try{r=n.call(this,e.schema,t,e.localRefs)}catch(o){throw delete e.validate,o}finally{e.compiling=!1,e.meta&&(this._opts=A)}return e.validate=r,e.refs=r.refs,e.refVal=r.refVal,e.root=r.root,r;function i(){var t=e.validate,A=t.apply(this,arguments);return i.errors=t.errors,A}},d.prototype.compileAsync=A(844);var l=A(845);d.prototype.addKeyword=l.add,d.prototype.getKeyword=l.get,d.prototype.removeKeyword=l.remove,d.prototype.validateKeyword=l.validate;var I=A(462);d.ValidationError=I.Validation,d.MissingRefError=I.MissingRef,d.$dataMetaSchema=c;var C="http://json-schema.org/draft-07/schema",h=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],f=["/properties"];function d(e){if(!(this instanceof d))return new d(e);e=this._opts=u.copy(e)||{},function(e){var t=e._opts.logger;if(!1===t)e.logger={log:m,warn:m,error:m};else{if(void 0===t&&(t=console),!("object"==typeof t&&t.log&&t.warn&&t.error))throw new Error("logger must implement log, warn and error methods");e.logger=t}}(this),this._schemas={},this._refs={},this._fragments={},this._formats=s(e.format),this._cache=e.cache||new i,this._loadingSchemas={},this._compilations=[],this.RULES=g(),this._getId=function(e){switch(e.schemaId){case"auto":return y;case"id":return E;default:return Q}}(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=a),this._metaOpts=function(e){for(var t=u.copy(e._opts),A=0;A<h.length;A++)delete t[h[A]];return t}(this),e.formats&&function(e){for(var t in e._opts.formats){var A=e._opts.formats[t];e.addFormat(t,A)}}(this),e.keywords&&function(e){for(var t in e._opts.keywords){var A=e._opts.keywords[t];e.addKeyword(t,A)}}(this),function(e){var t;e._opts.$data&&(t=A(848),e.addMetaSchema(t,t.$id,!0));if(!1===e._opts.meta)return;var n=A(566);e._opts.$data&&(n=c(n,f));e.addMetaSchema(n,C,!0),e._refs["http://json-schema.org/schema"]=C}(this),"object"==typeof e.meta&&this.addMetaSchema(e.meta),e.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),function(e){var t=e._opts.schemas;if(!t)return;if(Array.isArray(t))e.addSchema(t);else for(var A in t)e.addSchema(t[A],A)}(this)}function B(e,t){return t=r.normalizeId(t),e._schemas[t]||e._refs[t]||e._fragments[t]}function p(e,t,A){for(var n in t){var r=t[n];r.meta||A&&!A.test(n)||(e._cache.del(r.cacheKey),delete t[n])}}function E(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function Q(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function y(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function v(e,t){if(e._schemas[t]||e._refs[t])throw new Error('schema with key or id "'+t+'" already exists')}function m(){}},function(e,t,A){"use strict";A.r(t),A.d(t,"UNITS",(function(){return I})),A.d(t,"h3IsValid",(function(){return k})),A.d(t,"h3IsPentagon",(function(){return x})),A.d(t,"h3IsResClassIII",(function(){return N})),A.d(t,"h3GetBaseCell",(function(){return U})),A.d(t,"h3GetFaces",(function(){return _})),A.d(t,"h3GetResolution",(function(){return M})),A.d(t,"geoToH3",(function(){return O})),A.d(t,"h3ToGeo",(function(){return L})),A.d(t,"h3ToGeoBoundary",(function(){return T})),A.d(t,"h3ToParent",(function(){return Z})),A.d(t,"h3ToChildren",(function(){return H})),A.d(t,"h3ToCenterChild",(function(){return Y})),A.d(t,"kRing",(function(){return J})),A.d(t,"kRingDistances",(function(){return j})),A.d(t,"hexRing",(function(){return P})),A.d(t,"polyfill",(function(){return V})),A.d(t,"h3SetToMultiPolygon",(function(){return K})),A.d(t,"compact",(function(){return W})),A.d(t,"uncompact",(function(){return X})),A.d(t,"h3IndexesAreNeighbors",(function(){return q})),A.d(t,"getH3UnidirectionalEdge",(function(){return z})),A.d(t,"getOriginH3IndexFromUnidirectionalEdge",(function(){return $})),A.d(t,"getDestinationH3IndexFromUnidirectionalEdge",(function(){return ee})),A.d(t,"h3UnidirectionalEdgeIsValid",(function(){return te})),A.d(t,"getH3IndexesFromUnidirectionalEdge",(function(){return Ae})),A.d(t,"getH3UnidirectionalEdgesFromHexagon",(function(){return ne})),A.d(t,"getH3UnidirectionalEdgeBoundary",(function(){return re})),A.d(t,"h3Distance",(function(){return ie})),A.d(t,"h3Line",(function(){return oe})),A.d(t,"experimentalH3ToLocalIj",(function(){return ae})),A.d(t,"experimentalLocalIjToH3",(function(){return se})),A.d(t,"pointDist",(function(){return ge})),A.d(t,"cellArea",(function(){return ce})),A.d(t,"exactEdgeLength",(function(){return ue})),A.d(t,"hexArea",(function(){return le})),A.d(t,"edgeLength",(function(){return Ie})),A.d(t,"numHexagons",(function(){return Ce})),A.d(t,"getRes0Indexes",(function(){return he})),A.d(t,"getPentagonIndexes",(function(){return fe})),A.d(t,"degsToRads",(function(){return de})),A.d(t,"radsToDegs",(function(){return Be}));var n=function(e){var t,A="undefined"!==typeof(e=e||{})?e:{},n={};for(t in A)A.hasOwnProperty(t)&&(n[t]=A[t]);var r,i=[],o="";document.currentScript&&(o=document.currentScript.src),o=0!==o.indexOf("blob:")?o.substr(0,o.lastIndexOf("/")+1):"",r=function(e,t,A){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status||0==n.status&&n.response)t(n.response);else{var r=W(e);r?t(r.buffer):A()}},n.onerror=A,n.send(null)};var a=A.print||console.log.bind(console),s=A.printErr||console.warn.bind(console);for(t in n)n.hasOwnProperty(t)&&(A[t]=n[t]);n=null,A.arguments&&(i=A.arguments);var g=0,c=function(){return g};var u=!1;function l(e){var t,n=A["_"+e];return t="Cannot call unknown function "+e+", make sure it is exported",n||se("Assertion failed: "+t),n}function I(e,t,A,n,r){var i={string:function(e){var t=0;if(null!==e&&void 0!==e&&0!==e){var A=1+(e.length<<2);(function(e,t,A){(function(e,t,A,n){if(!(n>0))return 0;for(var r=A,i=A+n-1,o=0;o<e.length;++o){var a=e.charCodeAt(o);if(a>=55296&&a<=57343){var s=e.charCodeAt(++o);a=65536+((1023&a)<<10)|1023&s}if(a<=127){if(A>=i)break;t[A++]=a}else if(a<=2047){if(A+1>=i)break;t[A++]=192|a>>6,t[A++]=128|63&a}else if(a<=65535){if(A+2>=i)break;t[A++]=224|a>>12,t[A++]=128|a>>6&63,t[A++]=128|63&a}else{if(A+3>=i)break;t[A++]=240|a>>18,t[A++]=128|a>>12&63,t[A++]=128|a>>6&63,t[A++]=128|63&a}}t[A]=0})(e,B,t,A)})(e,t=ee(A),A)}return t},array:function(e){var t=ee(e.length);return function(e,t){d.set(e,t)}(e,t),t}};var o=l(e),a=[],s=0;if(n)for(var g=0;g<n.length;g++){var c=i[A[g]];c?(0===s&&(s=Ae()),a[g]=c(n[g])):a[g]=n[g]}var u=o.apply(null,a);return u=function(e){return"string"===t?h(e):"boolean"===t?Boolean(e):e}(u),0!==s&&te(s),u}var C="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function h(e,t){return e?function(e,t,A){for(var n=t+A,r=t;e[r]&&!(r>=n);)++r;if(r-t>16&&e.subarray&&C)return C.decode(e.subarray(t,r));for(var i="";t<r;){var o=e[t++];if(128&o){var a=63&e[t++];if(192!=(224&o)){var s=63&e[t++];if((o=224==(240&o)?(15&o)<<12|a<<6|s:(7&o)<<18|a<<12|s<<6|63&e[t++])<65536)i+=String.fromCharCode(o);else{var g=o-65536;i+=String.fromCharCode(55296|g>>10,56320|1023&g)}}else i+=String.fromCharCode((31&o)<<6|a)}else i+=String.fromCharCode(o)}return i}(B,e,t):""}var f,d,B,p,E,Q,y;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");function v(e,t){return e%t>0&&(e+=t-e%t),e}function m(e){f=e,A.HEAP8=d=new Int8Array(e),A.HEAP16=p=new Int16Array(e),A.HEAP32=E=new Int32Array(e),A.HEAPU8=B=new Uint8Array(e),A.HEAPU16=new Uint16Array(e),A.HEAPU32=new Uint32Array(e),A.HEAPF32=Q=new Float32Array(e),A.HEAPF64=y=new Float64Array(e)}var b=A.TOTAL_MEMORY||33554432;function w(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"===typeof n?void 0===t.arg?A.dynCall_v(n):A.dynCall_vi(n,t.arg):n(void 0===t.arg?null:t.arg)}else t()}}b=(f=A.buffer?A.buffer:new ArrayBuffer(b)).byteLength,m(f),E[6004]=5266928;var S=[],F=[],R=[],D=[];var G=Math.abs,k=Math.ceil,x=Math.floor,N=Math.min,U=0,_=null,M=null;A.preloadedImages={},A.preloadedAudios={};var O,L,T=null,Z="data:application/octet-stream;base64,";function H(e){return String.prototype.startsWith?e.startsWith(Z):0===e.indexOf(Z)}T="data:application/octet-stream;base64,AAAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAABAAAAAMAAAAGAAAABQAAAAIAAAAAAAAAAgAAAAMAAAABAAAABAAAAAYAAAAAAAAABQAAAAMAAAAGAAAABAAAAAUAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAABAAAABQAAAAIAAAAAAAAAAQAAAAMAAAAGAAAABAAAAAYAAAAAAAAABQAAAAIAAAABAAAABAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABgAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAABgAAAAAAAAADAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAUAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAEAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAACAAAABAAAAAMAAAAIAAAA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AAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAQAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAADAAAABQAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAABQAAAAUAAAAAAAAAAAAAAP////8BAAAAAAAAAAMAAAAEAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAQAAAP//////////AQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAIAAAAAAAAAAAAAAAEAAAACAAAABgAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAoAAAACAAAAAAAAAAAAAAABAAAAAQAAAAUAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAAAAAAAAAAAAAEAAAADAAAABwAAAAYAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAJAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAAAAAAAAAAAAQAAAAQAAAAIAAAACgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAAAAAAAAAAABAAAACwAAAA8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAAAAAAAAAAABAAAADAAAABAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAEAAAAKAAAAEwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAAAAAAAAQAAAA0AAAARAAAADQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAAAAAAAAAAAAAEAAAAOAAAAEgAAAA8AAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAAAAAABAAAA//////////8TAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABIAAAAAAAAAGAAAAAAAAAAhAAAAAAAAAB4AAAAAAAAAIAAAAAMAAAAxAAAAAQAAADAAAAADAAAAMgAAAAMAAAAIAAAAAAAAAAUAAAAFAAAACgAAAAUAAAAWAAAAAAAAABAAAAAAAAAAEgAAAAAAAAApAAAAAQAAACEAAAAAAAAAHgAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAgAAAAUAAAAPAAAAAQAAAAgAAAAAAAAABQAAAAUAAAAfAAAAAQAAABYAAAAAAAAAEAAAAAAAAAACAAAAAAAAAAYAAAAAAAAADgAAAAAAAAAKAAAAAAAAAAsAAAAAAAAAEQAAAAMAAAAYAAAAAQAAABcAAAADAAAAGQAAAAMAAAAAAAAAAAAAAAEAAAAFAAAACQAAAAUAAAAFAAAAAAAAAAIAAAAAAAAABgAAAAAAAAASAAAAAQAAAAoAAAAAAAAACwAAAAAAAAAEAAAAAQAAAAMAAAAFAAAABwAAAAUAAAAIAAAAAQAAAAAAAAAAAAAAAQAAAAUAAAAQAAAAAQAAAAUAAAAAAAAAAgAAAAAAAAAHAAAAAAAAABUAAAAAAAAAJgAAAAAAAAAJAAAAAAAAABMAAAAAAAAAIgAAAAMAAAAOAAAAAQAAABQAAAADAAAAJAAAAAMAAAADAAAAAAAAAA0AAAAFAAAAHQAAAAUAAAABAAAAAAAAAAcAAAAAAAAAFQAAAAAAAAAGAAAA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74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAABAAEAAAEBAAAAAAABAAAAAQAAAAEAAQAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAHAAAABwAAAAEAAAACAAAABAAAAAMAAAAAAAAAAAAAAAcAAAADAAAAAQAAAAIAAAAFAAAABAAAAAAAAAAAAAAAYWxnb3MuYwBfcG9seWZpbGxJbnRlcm5hbABhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0dlb0JvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9HZW9Cb3VuZGFyeQBwb2x5Z29uLT5uZXh0ID09IE5VTEwAbGlua2VkR2VvLmMAYWRkTmV3TGlua2VkUG9seWdvbgBuZXh0ICE9IE5VTEwAbG9vcCAhPSBOVUxMAGFkZE5ld0xpbmtlZExvb3AAcG9seWdvbi0+Zmlyc3QgPT0gTlVMTABhZGRMaW5rZWRMb29wAGNvb3JkICE9IE5VTEwAYWRkTGlua2VkQ29vcmQAbG9vcC0+Zmlyc3QgPT0gTlVMTABpbm5lckxvb3BzICE9IE5VTEwAbm9ybWFsaXplTXVsdGlQb2x5Z29uAGJib3hlcyAhPSBOVUxMAGNhbmRpZGF0ZXMgIT0gTlVMTABmaW5kUG9seWdvbkZvckhvbGUAY2FuZGlkYXRlQkJveGVzICE9IE5VTEwAcmV2RGlyICE9IElOVkFMSURfRElHSVQAbG9jYWxpai5jAGgzVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAcGVudGFnb25Sb3RhdGlvbnMgPj0gMABkaXJlY3Rpb25Sb3RhdGlvbnMgPj0gMABiYXNlQ2VsbCA9PSBvcmlnaW5CYXNlQ2VsbABiYXNlQ2VsbCAhPSBJTlZBTElEX0JBU0VfQ0VMTABsb2NhbElqa1RvSDMAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAd2l0aGluUGVudGFnb25Sb3RhdGlvbnMgPj0gMABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl";function Y(e){return e}function J(e){return e.replace(/\b__Z[\w\d_]+/g,(function(e){return e===e?e:e+" ["+e+"]"}))}function j(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function P(){return d.length}function V(e){try{var t=new ArrayBuffer(e);if(t.byteLength!=e)return;return new Int8Array(t).set(d),$(t),m(t),1}catch(A){}}var K="function"===typeof atob?atob:function(e){var t,A,n,r,i,o,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s="",g=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{t=a.indexOf(e.charAt(g++))<<2|(r=a.indexOf(e.charAt(g++)))>>4,A=(15&r)<<4|(i=a.indexOf(e.charAt(g++)))>>2,n=(3&i)<<6|(o=a.indexOf(e.charAt(g++))),s+=String.fromCharCode(t),64!==i&&(s+=String.fromCharCode(A)),64!==o&&(s+=String.fromCharCode(n))}while(g<e.length);return s};function W(e){if(H(e))return function(e){try{for(var t=K(e),A=new Uint8Array(t.length),n=0;n<t.length;++n)A[n]=t.charCodeAt(n);return A}catch(r){throw new Error("Converting base64 string to bytes failed.")}}(e.slice(Z.length))}var X,q,z=function(e,t,A){var n=new e.Int8Array(A),r=new e.Int32Array(A),i=(new e.Uint8Array(A),new e.Float32Array(A),new e.Float64Array(A)),o=0|t.p,a=e.Math.floor,s=e.Math.abs,g=e.Math.sqrt,c=e.Math.pow,u=e.Math.cos,l=e.Math.sin,I=e.Math.tan,C=e.Math.acos,h=e.Math.asin,f=e.Math.atan,d=e.Math.atan2,B=e.Math.ceil,p=e.Math.imul,E=e.Math.min,Q=e.Math.clz32,y=t.b,v=t.c,m=t.d,b=t.e,w=t.f,S=t.g,F=t.h,R=t.i,D=24048;function G(e,t,A,n){var r,i;0|k(e|=0,t|=0,A|=0,n|=0,0)&&(Rt(0|n,0,(i=1+(0|p(3*A|0,A+1|0))|0)<<3|0),(r=0|pt(i,4))&&(x(e,t,A,n,r,i,0),Bt(r)))}function k(e,t,A,n,i){e|=0,t|=0,A|=0,i|=0;var o,a=0,s=0,g=0,c=0,u=0,l=0,I=0,C=0;if(o=D,D=D+16|0,C=o,r[(a=n|=0)>>2]=e,r[a+4>>2]=t,(a=0!=(0|i))&&(r[i>>2]=0),0|Ne(e,t))return D=o,0|(C=1);r[C>>2]=0;e:do{if((0|A)>=1)if(a)for(u=0,l=1,I=1,s=0,a=e;;){if(!(s|u)){if(0==(0|(a=0|N(a,t,4,C)))&0==(0|(t=0|v()))){a=2;break e}if(0|Ne(a,t)){a=1;break e}}if(0==(0|(a=0|N(a,t,0|r[16+(u<<2)>>2],C)))&0==(0|(t=0|v()))){a=2;break e}if(r[(e=n+(I<<3)|0)>>2]=a,r[e+4>>2]=t,r[i+(I<<2)>>2]=l,e=(0|(s=s+1|0))==(0|l),c=6==(0|(g=u+1|0)),0|Ne(a,t)){a=1;break e}if((0|(l=l+(c&e&1)|0))>(0|A)){a=0;break}u=e?c?0:g:u,I=I+1|0,s=e?0:s}else for(u=0,l=1,I=1,s=0,a=e;;){if(!(s|u)){if(0==(0|(a=0|N(a,t,4,C)))&0==(0|(t=0|v()))){a=2;break e}if(0|Ne(a,t)){a=1;break e}}if(0==(0|(a=0|N(a,t,0|r[16+(u<<2)>>2],C)))&0==(0|(t=0|v()))){a=2;break e}if(r[(e=n+(I<<3)|0)>>2]=a,r[e+4>>2]=t,e=(0|(s=s+1|0))==(0|l),c=6==(0|(g=u+1|0)),0|Ne(a,t)){a=1;break e}if((0|(l=l+(c&e&1)|0))>(0|A)){a=0;break}u=e?c?0:g:u,I=I+1|0,s=e?0:s}else a=0}while(0);return D=o,0|(C=a)}function x(e,t,A,n,i,o,a){A|=0,n|=0,i|=0,o|=0,a|=0;var s,g,c=0,u=0,l=0,I=0,C=0;if(g=D,D=D+16|0,s=g,0==(0|(e|=0))&0==(0|(t|=0)))D=g;else{if(c=0|vt(0|e,0|t,0|o,((0|o)<0)<<31>>31|0),v(),!(0==(0|(C=0|r[(I=u=n+(c<<3)|0)>>2]))&0==(0|(I=0|r[I+4>>2]))|(l=(0|C)==(0|e)&(0|I)==(0|t))))do{l=(0|(I=0|r[(C=u=n+((c=(c+1|0)%(0|o)|0)<<3)|0)>>2]))==(0|e)&(0|(C=0|r[C+4>>2]))==(0|t)}while(!(0==(0|I)&0==(0|C)|l));c=i+(c<<2)|0,l&&(0|r[c>>2])<=(0|a)||(r[(C=u)>>2]=e,r[C+4>>2]=t,r[c>>2]=a,(0|a)>=(0|A)||(C=a+1|0,r[s>>2]=0,x(I=0|N(e,t,2,s),0|v(),A,n,i,o,C),r[s>>2]=0,x(I=0|N(e,t,3,s),0|v(),A,n,i,o,C),r[s>>2]=0,x(I=0|N(e,t,1,s),0|v(),A,n,i,o,C),r[s>>2]=0,x(I=0|N(e,t,5,s),0|v(),A,n,i,o,C),r[s>>2]=0,x(I=0|N(e,t,4,s),0|v(),A,n,i,o,C),r[s>>2]=0,x(I=0|N(e,t,6,s),0|v(),A,n,i,o,C))),D=g}}function N(e,t,A,n){e|=0,t|=0,A|=0;var i,o,a=0,s=0,g=0,c=0,u=0,l=0,I=0;if((0|r[(n|=0)>>2])>0){a=0;do{A=0|se(A),a=a+1|0}while((0|a)<(0|r[n>>2]))}i=0|mt(0|e,0|t,45),v(),o=127&i,s=0|Ue(e,t),a=0|mt(0|e,0|t,52),v(),a&=15;e:do{if(a)for(;;){if(l=0|mt(0|e,0|t,0|(u=3*(15-a|0)|0)),v(),l&=7,I=0==(0|Te(a)),a=a+-1|0,c=0|bt(7,0,0|u),t&=~(0|v()),e=(u=0|bt(0|r[(I?464:48)+(28*l|0)+(A<<2)>>2],0,0|u))|e&~c,t|=0|v(),!(A=0|r[(I?672:256)+(28*l|0)+(A<<2)>>2])){A=0;break e}if(!a){g=6;break}}else g=6}while(0);6==(0|g)&&(e|=l=0|bt(0|(I=0|r[880+(28*o|0)+(A<<2)>>2]),0,45),t=0|v()|-1040385&t,A=0|r[4304+(28*o|0)+(A<<2)>>2],127==(127&I|0)&&(I=0|bt(0|r[880+(28*o|0)+20>>2],0,45),t=0|v()|-1040385&t,A=0|r[4304+(28*o|0)+20>>2],e=0|Me(I|e,t),t=0|v(),r[n>>2]=1+(0|r[n>>2]))),g=0|mt(0|e,0|t,45),v(),g&=127;e:do{if(0|_(g)){t:do{if(1==(0|Ue(e,t))){if((0|o)!=(0|g)){if(0|T(g,0|r[7728+(28*o|0)>>2])){e=0|Le(e,t),s=1,t=0|v();break}e=0|Me(e,t),s=1,t=0|v();break}switch(0|s){case 5:e=0|Le(e,t),t=0|v(),r[n>>2]=5+(0|r[n>>2]),s=0;break t;case 3:e=0|Me(e,t),t=0|v(),r[n>>2]=1+(0|r[n>>2]),s=0;break t;default:return I=0,y(0|(l=0)),0|I}}else s=0}while(0);if((0|A)>0){a=0;do{e=0|_e(e,t),t=0|v(),a=a+1|0}while((0|a)!=(0|A))}if((0|o)!=(0|g)){if(!(0|M(g))){if(0!=(0|s)|5!=(0|Ue(e,t)))break;r[n>>2]=1+(0|r[n>>2]);break}switch(127&i){case 8:case 118:break e}3!=(0|Ue(e,t))&&(r[n>>2]=1+(0|r[n>>2]))}}else if((0|A)>0){a=0;do{e=0|Me(e,t),t=0|v(),a=a+1|0}while((0|a)!=(0|A))}}while(0);return r[n>>2]=((0|r[n>>2])+A|0)%6|0,I=e,y(0|(l=t)),0|I}function U(e,t,A,n,o,a){t|=0,A|=0,n|=0,o|=0,a|=0;var s,g,c,u,l,I,C,h,f,d=0,B=0,p=0,E=0,Q=0,y=0,m=0,b=0,w=0,S=0,F=0,R=0,G=0,k=0;if(f=D,D=D+48|0,I=f+32|0,C=f+16|0,h=f,(0|(d=0|r[(e|=0)>>2]))<=0)return D=f,0|(R=0);s=e+4|0,g=I+8|0,c=C+8|0,u=h+8|0,l=((0|t)<0)<<31>>31,F=0;e:for(;;){w=(B=0|r[s>>2])+(F<<4)|0,r[I>>2]=r[w>>2],r[I+4>>2]=r[w+4>>2],r[I+8>>2]=r[w+8>>2],r[I+12>>2]=r[w+12>>2],(0|F)==(d+-1|0)?(r[C>>2]=r[B>>2],r[C+4>>2]=r[B+4>>2],r[C+8>>2]=r[B+8>>2],r[C+12>>2]=r[B+12>>2]):(w=B+(F+1<<4)|0,r[C>>2]=r[w>>2],r[C+4>>2]=r[w+4>>2],r[C+8>>2]=r[w+8>>2],r[C+12>>2]=r[w+12>>2]),w=0|P(I,C,A);t:do{if((0|w)>0){S=+(0|w),b=0;A:for(;;){k=+(w-b|0),G=+(0|b),i[h>>3]=+i[I>>3]*k/S+ +i[C>>3]*G/S,i[u>>3]=+i[g>>3]*k/S+ +i[c>>3]*G/S,B=0|vt(0|(y=0|Ze(h,A)),0|(m=0|v()),0|t,0|l),v(),E=0|r[(p=d=a+(B<<3)|0)>>2],p=0|r[p+4>>2];n:do{if(0==(0|E)&0==(0|p))R=14;else for(Q=0;;){if((0|Q)>(0|t)){d=1;break n}if((0|E)==(0|y)&(0|p)==(0|m)){d=7;break n}if(0==(0|(E=0|r[(p=d=a+((B=(B+1|0)%(0|t)|0)<<3)|0)>>2]))&0==(0|(p=0|r[p+4>>2]))){R=14;break}Q=Q+1|0}}while(0);switch(14==(0|R)&&(R=0,0==(0|y)&0==(0|m)?d=7:(r[d>>2]=y,r[d+4>>2]=m,d=0|r[n>>2],r[(Q=o+(d<<3)|0)>>2]=y,r[Q+4>>2]=m,r[n>>2]=d+1,d=0)),7&d){case 7:case 0:break;default:break A}if((0|w)<=(0|(b=b+1|0))){R=8;break t}}if(0|d){d=-1,R=20;break e}}else R=8}while(0);if(8==(0|R)&&(R=0),(0|(F=F+1|0))>=(0|(d=0|r[e>>2]))){d=0,R=20;break}}return 20==(0|R)?(D=f,0|d):0}function _(e){return 0|r[7728+(28*(e|=0)|0)+16>>2]}function M(e){return 4==(0|(e|=0))|117==(0|e)|0}function O(e){return 0|r[11152+(216*(0|r[(e|=0)>>2])|0)+(72*(0|r[e+4>>2])|0)+(24*(0|r[e+8>>2])|0)+(r[e+12>>2]<<3)>>2]}function L(e){return 0|r[11152+(216*(0|r[(e|=0)>>2])|0)+(72*(0|r[e+4>>2])|0)+(24*(0|r[e+8>>2])|0)+(r[e+12>>2]<<3)+4>>2]}function T(e,t){return t|=0,(0|r[7728+(28*(e|=0)|0)+20>>2])==(0|t)?0|(t=1):0|(t=(0|r[7728+(28*e|0)+24>>2])==(0|t))}function Z(e,t){return 0|r[880+(28*(e|=0)|0)+((t|=0)<<2)>>2]}function H(e,t){return t|=0,(0|r[880+(28*(e|=0)|0)>>2])==(0|t)?0|(t=0):(0|r[880+(28*e|0)+4>>2])==(0|t)?0|(t=1):(0|r[880+(28*e|0)+8>>2])==(0|t)?0|(t=2):(0|r[880+(28*e|0)+12>>2])==(0|t)?0|(t=3):(0|r[880+(28*e|0)+16>>2])==(0|t)?0|(t=4):(0|r[880+(28*e|0)+20>>2])==(0|t)?0|(t=5):0|((0|r[880+(28*e|0)+24>>2])==(0|t)?6:7)}function Y(e){return+i[(e|=0)+16>>3]<+i[e+24>>3]|0}function J(e,t){e|=0;var A,n,r=0;return(r=+i[(t|=0)>>3])>=+i[e+8>>3]&&r<=+i[e>>3]?(A=+i[e+16>>3],r=+i[e+24>>3],t=(n=+i[t+8>>3])>=r,e=n<=A&1,A<r?t&&(e=1):t||(e=0),0|(t=0!=(0|e))):0|(t=0)}function j(e,t){e|=0,t|=0;var A,n,o,a,g,c,u=0,l=0;a=D,D=D+288|0,A=a+264|0,n=a+96|0,l=(u=o=a)+96|0;do{r[u>>2]=0,u=u+4|0}while((0|u)<(0|l));return Pe(t,o),Je(l=0|r[(u=o)>>2],u=0|r[u+4>>2],A),je(l,u,n),g=+Fe(A,n+8|0),i[A>>3]=+i[e>>3],i[(u=A+8|0)>>3]=+i[e+16>>3],i[n>>3]=+i[e+8>>3],i[(l=n+8|0)>>3]=+i[e+24>>3],c=+Fe(A,n),l=~~+B(+c*c/+wt(+ +s(+(+i[u>>3]-+i[l>>3])/(+i[A>>3]-+i[n>>3])),3)/(g*(2.59807621135*g)*.8)),D=a,0|(0==(0|l)?1:l)}function P(e,t,A){e|=0,t|=0,A|=0;var n,i,o,a,s,g=0,c=0;a=D,D=D+288|0,n=a+264|0,i=a+96|0,c=(g=o=a)+96|0;do{r[g>>2]=0,g=g+4|0}while((0|g)<(0|c));return Pe(A,o),Je(g=0|r[(c=o)>>2],c=0|r[c+4>>2],n),je(g,c,i),s=+Fe(n,i+8|0),c=~~+B(+ +Fe(e,t)/(2*s)),D=a,0|(0==(0|c)?1:c)}function V(e,t,A,n){t|=0,A|=0,n|=0,r[(e|=0)>>2]=t,r[e+4>>2]=A,r[e+8>>2]=n}function K(e,t){e|=0;var A,n,o,a,g=0,c=0,u=0,l=0,I=0,C=0,h=0;r[(a=(t|=0)+8|0)>>2]=0,n=+i[e>>3],l=+s(+n),o=+i[e+8>>3],l+=.5*(I=+s(+o)/.8660254037844386),l-=+(0|(g=~~l)),I-=+(0|(e=~~I));do{if(l<.5){if(l<.3333333333333333){if(r[t>>2]=g,I<.5*(l+1)){r[t+4>>2]=e;break}e=e+1|0,r[t+4>>2]=e;break}if(e=(1&!(I<(h=1-l)))+e|0,r[t+4>>2]=e,h<=I&I<2*l){g=g+1|0,r[t>>2]=g;break}r[t>>2]=g;break}if(!(l<.6666666666666666)){if(g=g+1|0,r[t>>2]=g,I<.5*l){r[t+4>>2]=e;break}e=e+1|0,r[t+4>>2]=e;break}if(I<1-l){if(r[t+4>>2]=e,2*l-1<I){r[t>>2]=g;break}}else e=e+1|0,r[t+4>>2]=e;g=g+1|0,r[t>>2]=g}while(0);do{if(n<0){if(1&e){g=~~(+(0|g)-(2*(+((C=0|Et(0|g,((0|g)<0)<<31>>31|0,0|(C=(e+1|0)/2|0),((0|C)<0)<<31>>31|0))>>>0)+4294967296*+(0|v()))+1)),r[t>>2]=g;break}g=~~(+(0|g)-2*(+((C=0|Et(0|g,((0|g)<0)<<31>>31|0,0|(C=(0|e)/2|0),((0|C)<0)<<31>>31|0))>>>0)+4294967296*+(0|v()))),r[t>>2]=g;break}}while(0);C=t+4|0,o<0&&(g=g-((1|e<<1)/2|0)|0,r[t>>2]=g,e=0-e|0,r[C>>2]=e),c=e-g|0,(0|g)<0?(u=0-g|0,r[C>>2]=c,r[a>>2]=u,r[t>>2]=0,e=c,g=0):u=0,(0|e)<0&&(g=g-e|0,r[t>>2]=g,u=u-e|0,r[a>>2]=u,r[C>>2]=0,e=0),A=g-u|0,c=e-u|0,(0|u)<0&&(r[t>>2]=A,r[C>>2]=c,r[a>>2]=0,e=c,g=A,u=0),(0|(c=(0|u)<(0|(c=(0|e)<(0|g)?e:g))?u:c))<=0||(r[t>>2]=g-c,r[C>>2]=e-c,r[a>>2]=u-c)}function W(e){var t,A=0,n=0,i=0,o=0,a=0;A=0|r[(e|=0)>>2],n=0|r[(t=e+4|0)>>2],(0|A)<0&&(n=n-A|0,r[t>>2]=n,r[(a=e+8|0)>>2]=(0|r[a>>2])-A,r[e>>2]=0,A=0),(0|n)<0?(A=A-n|0,r[e>>2]=A,o=(0|r[(a=e+8|0)>>2])-n|0,r[a>>2]=o,r[t>>2]=0,n=0):(a=o=e+8|0,o=0|r[o>>2]),(0|o)<0&&(A=A-o|0,r[e>>2]=A,n=n-o|0,r[t>>2]=n,r[a>>2]=0,o=0),(0|(i=(0|o)<(0|(i=(0|n)<(0|A)?n:A))?o:i))<=0||(r[e>>2]=A-i,r[t>>2]=n-i,r[a>>2]=o-i)}function X(e,t){t|=0;var A,n;n=0|r[(e|=0)+8>>2],A=+((0|r[e+4>>2])-n|0),i[t>>3]=+((0|r[e>>2])-n|0)-.5*A,i[t+8>>3]=.8660254037844386*A}function q(e,t,A){e|=0,t|=0,r[(A|=0)>>2]=(0|r[t>>2])+(0|r[e>>2]),r[A+4>>2]=(0|r[t+4>>2])+(0|r[e+4>>2]),r[A+8>>2]=(0|r[t+8>>2])+(0|r[e+8>>2])}function z(e,t,A){e|=0,t|=0,r[(A|=0)>>2]=(0|r[e>>2])-(0|r[t>>2]),r[A+4>>2]=(0|r[e+4>>2])-(0|r[t+4>>2]),r[A+8>>2]=(0|r[e+8>>2])-(0|r[t+8>>2])}function $(e,t){t|=0;var A,n=0;n=0|p(0|r[(e|=0)>>2],t),r[e>>2]=n,A=0|p(0|r[(n=e+4|0)>>2],t),r[n>>2]=A,t=0|p(0|r[(e=e+8|0)>>2],t),r[e>>2]=t}function ee(e){var t,A,n=0,i=0,o=0,a=0,s=0;s=(0|(A=0|r[(e|=0)>>2]))<0,e=(e=(i=(0|(a=((t=(0|(o=(0|r[e+4>>2])-(s?A:0)|0))<0)?0-o|0:0)+((0|r[e+8>>2])-(s?A:0))|0))<0)?0:a)-((o=(0|(i=(0|e)<(0|(i=(0|(n=(t?0:o)-(i?a:0)|0))<(0|(a=(s?0:A)-(t?o:0)-(i?a:0)|0))?n:a))?e:i))>0)?i:0)|0,n=n-(o?i:0)|0;e:do{switch(a-(o?i:0)|0){case 0:switch(0|n){case 0:return 0|(s=0==(0|e)?0:1==(0|e)?1:7);case 1:return 0|(s=0==(0|e)?2:1==(0|e)?3:7);default:break e}case 1:switch(0|n){case 0:return 0|(s=0==(0|e)?4:1==(0|e)?5:7);case 1:if(e)break e;return 0|(e=6);default:break e}}}while(0);return 0|(s=7)}function te(e){var t,A,n=0,i=0,o=0,a=0,s=0;i=0|r[(t=(e|=0)+8|0)>>2],o=0|ft(+((3*(n=(0|r[e>>2])-i|0)|0)-(i=(0|r[(A=e+4|0)>>2])-i|0)|0)/7),r[e>>2]=o,n=0|ft(+((i<<1)+n|0)/7),r[A>>2]=n,r[t>>2]=0,i=n-o|0,(0|o)<0?(s=0-o|0,r[A>>2]=i,r[t>>2]=s,r[e>>2]=0,n=i,o=0,i=s):i=0,(0|n)<0&&(o=o-n|0,r[e>>2]=o,i=i-n|0,r[t>>2]=i,r[A>>2]=0,n=0),s=o-i|0,a=n-i|0,(0|i)<0?(r[e>>2]=s,r[A>>2]=a,r[t>>2]=0,n=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|n)<(0|a)?n:a))?i:o))<=0||(r[e>>2]=a-o,r[A>>2]=n-o,r[t>>2]=i-o)}function Ae(e){var t,A,n=0,i=0,o=0,a=0,s=0;i=0|r[(t=(e|=0)+8|0)>>2],o=0|ft(+(((n=(0|r[e>>2])-i|0)<<1)+(i=(0|r[(A=e+4|0)>>2])-i|0)|0)/7),r[e>>2]=o,n=0|ft(+((3*i|0)-n|0)/7),r[A>>2]=n,r[t>>2]=0,i=n-o|0,(0|o)<0?(s=0-o|0,r[A>>2]=i,r[t>>2]=s,r[e>>2]=0,n=i,o=0,i=s):i=0,(0|n)<0&&(o=o-n|0,r[e>>2]=o,i=i-n|0,r[t>>2]=i,r[A>>2]=0,n=0),s=o-i|0,a=n-i|0,(0|i)<0?(r[e>>2]=s,r[A>>2]=a,r[t>>2]=0,n=a,a=s,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|n)<(0|a)?n:a))?i:o))<=0||(r[e>>2]=a-o,r[A>>2]=n-o,r[t>>2]=i-o)}function ne(e){var t,A,n,i=0,o=0,a=0,s=0;i=0|r[(e|=0)>>2],o=0|r[(A=e+4|0)>>2],a=0|r[(n=e+8|0)>>2],s=o+(3*i|0)|0,r[e>>2]=s,o=a+(3*o|0)|0,r[A>>2]=o,i=(3*a|0)+i|0,r[n>>2]=i,a=o-s|0,(0|s)<0?(i=i-s|0,r[A>>2]=a,r[n>>2]=i,r[e>>2]=0,o=a,a=0):a=s,(0|o)<0&&(a=a-o|0,r[e>>2]=a,i=i-o|0,r[n>>2]=i,r[A>>2]=0,o=0),t=a-i|0,s=o-i|0,(0|i)<0?(r[e>>2]=t,r[A>>2]=s,r[n>>2]=0,a=t,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[e>>2]=a-o,r[A>>2]=s-o,r[n>>2]=i-o)}function re(e){var t,A,n,i=0,o=0,a=0,s=0;s=0|r[(e|=0)>>2],a=(3*(i=0|r[(A=e+4|0)>>2])|0)+s|0,s=(o=0|r[(n=e+8|0)>>2])+(3*s|0)|0,r[e>>2]=s,r[A>>2]=a,i=(3*o|0)+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[A>>2]=o,r[n>>2]=i,r[e>>2]=0,s=0):o=a,(0|o)<0&&(s=s-o|0,r[e>>2]=s,i=i-o|0,r[n>>2]=i,r[A>>2]=0,o=0),t=s-i|0,a=o-i|0,(0|i)<0?(r[e>>2]=t,r[A>>2]=a,r[n>>2]=0,s=t,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(r[e>>2]=s-o,r[A>>2]=a-o,r[n>>2]=i-o)}function ie(e,t){e|=0;var A,n,i,o=0,a=0,s=0;((t|=0)+-1|0)>>>0>=6||(s=(0|r[15472+(12*t|0)>>2])+(0|r[e>>2])|0,r[e>>2]=s,i=e+4|0,a=(0|r[15472+(12*t|0)+4>>2])+(0|r[i>>2])|0,r[i>>2]=a,n=e+8|0,t=(0|r[15472+(12*t|0)+8>>2])+(0|r[n>>2])|0,r[n>>2]=t,o=a-s|0,(0|s)<0?(t=t-s|0,r[i>>2]=o,r[n>>2]=t,r[e>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(a=a-o|0,r[e>>2]=a,t=t-o|0,r[n>>2]=t,r[i>>2]=0,o=0),A=a-t|0,s=o-t|0,(0|t)<0?(r[e>>2]=A,r[i>>2]=s,r[n>>2]=0,a=A,t=0):s=o,(0|(o=(0|t)<(0|(o=(0|s)<(0|a)?s:a))?t:o))<=0||(r[e>>2]=a-o,r[i>>2]=s-o,r[n>>2]=t-o))}function oe(e){var t,A,n,i=0,o=0,a=0,s=0;s=0|r[(e|=0)>>2],a=(i=0|r[(A=e+4|0)>>2])+s|0,s=(o=0|r[(n=e+8|0)>>2])+s|0,r[e>>2]=s,r[A>>2]=a,i=o+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[A>>2]=o,r[n>>2]=i,r[e>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(a=a-o|0,r[e>>2]=a,i=i-o|0,r[n>>2]=i,r[A>>2]=0,o=0),t=a-i|0,s=o-i|0,(0|i)<0?(r[e>>2]=t,r[A>>2]=s,r[n>>2]=0,a=t,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[e>>2]=a-o,r[A>>2]=s-o,r[n>>2]=i-o)}function ae(e){var t,A,n,i=0,o=0,a=0,s=0;i=0|r[(e|=0)>>2],a=0|r[(A=e+4|0)>>2],o=0|r[(n=e+8|0)>>2],s=a+i|0,r[e>>2]=s,a=o+a|0,r[A>>2]=a,i=o+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[A>>2]=o,r[n>>2]=i,r[e>>2]=0,a=0):(o=a,a=s),(0|o)<0&&(a=a-o|0,r[e>>2]=a,i=i-o|0,r[n>>2]=i,r[A>>2]=0,o=0),t=a-i|0,s=o-i|0,(0|i)<0?(r[e>>2]=t,r[A>>2]=s,r[n>>2]=0,a=t,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[e>>2]=a-o,r[A>>2]=s-o,r[n>>2]=i-o)}function se(e){switch(0|(e|=0)){case 1:e=5;break;case 5:e=4;break;case 4:e=6;break;case 6:e=2;break;case 2:e=3;break;case 3:e=1}return 0|e}function ge(e){switch(0|(e|=0)){case 1:e=3;break;case 3:e=2;break;case 2:e=6;break;case 6:e=4;break;case 4:e=5;break;case 5:e=1}return 0|e}function ce(e){var t,A,n,i=0,o=0,a=0,s=0;i=0|r[(e|=0)>>2],o=0|r[(A=e+4|0)>>2],a=0|r[(n=e+8|0)>>2],s=o+(i<<1)|0,r[e>>2]=s,o=a+(o<<1)|0,r[A>>2]=o,i=(a<<1)+i|0,r[n>>2]=i,a=o-s|0,(0|s)<0?(i=i-s|0,r[A>>2]=a,r[n>>2]=i,r[e>>2]=0,o=a,a=0):a=s,(0|o)<0&&(a=a-o|0,r[e>>2]=a,i=i-o|0,r[n>>2]=i,r[A>>2]=0,o=0),t=a-i|0,s=o-i|0,(0|i)<0?(r[e>>2]=t,r[A>>2]=s,r[n>>2]=0,a=t,i=0):s=o,(0|(o=(0|i)<(0|(o=(0|s)<(0|a)?s:a))?i:o))<=0||(r[e>>2]=a-o,r[A>>2]=s-o,r[n>>2]=i-o)}function ue(e){var t,A,n,i=0,o=0,a=0,s=0;s=0|r[(e|=0)>>2],a=((i=0|r[(A=e+4|0)>>2])<<1)+s|0,s=(o=0|r[(n=e+8|0)>>2])+(s<<1)|0,r[e>>2]=s,r[A>>2]=a,i=(o<<1)+i|0,r[n>>2]=i,o=a-s|0,(0|s)<0?(i=i-s|0,r[A>>2]=o,r[n>>2]=i,r[e>>2]=0,s=0):o=a,(0|o)<0&&(s=s-o|0,r[e>>2]=s,i=i-o|0,r[n>>2]=i,r[A>>2]=0,o=0),t=s-i|0,a=o-i|0,(0|i)<0?(r[e>>2]=t,r[A>>2]=a,r[n>>2]=0,s=t,i=0):a=o,(0|(o=(0|i)<(0|(o=(0|a)<(0|s)?a:s))?i:o))<=0||(r[e>>2]=s-o,r[A>>2]=a-o,r[n>>2]=i-o)}function le(e,t){t|=0;var A,n,i,o=0,a=0,s=0;return i=(0|(n=(0|r[(e|=0)>>2])-(0|r[t>>2])|0))<0,A=(0|(a=(0|r[e+4>>2])-(0|r[t+4>>2])-(i?n:0)|0))<0,t=(t=(e=(0|(s=(i?0-n|0:0)+(0|r[e+8>>2])-(0|r[t+8>>2])+(A?0-a|0:0)|0))<0)?0:s)-((a=(0|(e=(0|t)<(0|(e=(0|(o=(A?0:a)-(e?s:0)|0))<(0|(s=(i?0:n)-(A?a:0)-(e?s:0)|0))?o:s))?t:e))>0)?e:0)|0,o=o-(a?e:0)|0,0|((0|(e=(0|(e=s-(a?e:0)|0))>-1?e:0-e|0))>(0|(t=(0|(o=(0|o)>-1?o:0-o|0))>(0|(t=(0|t)>-1?t:0-t|0))?o:t))?e:t)}function Ie(e,t){t|=0;var A;A=0|r[(e|=0)+8>>2],r[t>>2]=(0|r[e>>2])-A,r[t+4>>2]=(0|r[e+4>>2])-A}function Ce(e,t){t|=0;var A,n,i,o=0,a=0,s=0;a=0|r[(e|=0)>>2],r[t>>2]=a,e=0|r[e+4>>2],r[(n=t+4|0)>>2]=e,r[(i=t+8|0)>>2]=0,o=e-a|0,(0|a)<0?(e=0-a|0,r[n>>2]=o,r[i>>2]=e,r[t>>2]=0,a=0):(o=e,e=0),(0|o)<0&&(a=a-o|0,r[t>>2]=a,e=e-o|0,r[i>>2]=e,r[n>>2]=0,o=0),A=a-e|0,s=o-e|0,(0|e)<0?(r[t>>2]=A,r[n>>2]=s,r[i>>2]=0,o=s,s=A,e=0):s=a,(0|(a=(0|e)<(0|(a=(0|o)<(0|s)?o:s))?e:a))<=0||(r[t>>2]=s-a,r[n>>2]=o-a,r[i>>2]=e-a)}function he(e){var t,A,n,i;A=(i=0|r[(t=(e|=0)+8|0)>>2])-(0|r[e>>2])|0,r[e>>2]=A,e=(0|r[(n=e+4|0)>>2])-i|0,r[n>>2]=e,r[t>>2]=0-(e+A)}function fe(e){var t,A,n=0,i=0,o=0,a=0,s=0;n=0-(i=0|r[(e|=0)>>2])|0,r[e>>2]=n,r[(t=e+8|0)>>2]=0,a=(o=0|r[(A=e+4|0)>>2])+i|0,(0|i)>0?(r[A>>2]=a,r[t>>2]=i,r[e>>2]=0,n=0,o=a):i=0,(0|o)<0?(s=n-o|0,r[e>>2]=s,i=i-o|0,r[t>>2]=i,r[A>>2]=0,a=s-i|0,n=0-i|0,(0|i)<0?(r[e>>2]=a,r[A>>2]=n,r[t>>2]=0,o=n,i=0):(o=0,a=s)):a=n,(0|(n=(0|i)<(0|(n=(0|o)<(0|a)?o:a))?i:n))<=0||(r[e>>2]=a-n,r[A>>2]=o-n,r[t>>2]=i-n)}function de(e,t,A,n){t|=0,A|=0,n|=0;var o,a=0,s=0,g=0,c=0;if(o=D,D=D+32|0,function(e,t){t|=0;var A,n,r=0;r=+i[(e=e|0)>>3],A=+u(+r),r=+l(+r),i[t+16>>3]=r,r=+i[e+8>>3],n=A*+u(+r),i[t>>3]=n,r=A*+l(+r),i[t+8>>3]=r}(e|=0,s=o),r[A>>2]=0,a=+st(15888,s),(g=+st(15912,s))<a&&(r[A>>2]=1,a=g),(g=+st(15936,s))<a&&(r[A>>2]=2,a=g),(g=+st(15960,s))<a&&(r[A>>2]=3,a=g),(g=+st(15984,s))<a&&(r[A>>2]=4,a=g),(g=+st(16008,s))<a&&(r[A>>2]=5,a=g),(g=+st(16032,s))<a&&(r[A>>2]=6,a=g),(g=+st(16056,s))<a&&(r[A>>2]=7,a=g),(g=+st(16080,s))<a&&(r[A>>2]=8,a=g),(g=+st(16104,s))<a&&(r[A>>2]=9,a=g),(g=+st(16128,s))<a&&(r[A>>2]=10,a=g),(g=+st(16152,s))<a&&(r[A>>2]=11,a=g),(g=+st(16176,s))<a&&(r[A>>2]=12,a=g),(g=+st(16200,s))<a&&(r[A>>2]=13,a=g),(g=+st(16224,s))<a&&(r[A>>2]=14,a=g),(g=+st(16248,s))<a&&(r[A>>2]=15,a=g),(g=+st(16272,s))<a&&(r[A>>2]=16,a=g),(g=+st(16296,s))<a&&(r[A>>2]=17,a=g),(g=+st(16320,s))<a&&(r[A>>2]=18,a=g),(g=+st(16344,s))<a&&(r[A>>2]=19,a=g),(g=+C(+(1-.5*a)))<1e-16)return r[n>>2]=0,r[n+4>>2]=0,r[n+8>>2]=0,r[n+12>>2]=0,void(D=o);if(A=0|r[A>>2],a=+we((a=+i[16368+(24*A|0)>>3])-+we(+function(e,t){e|=0;var A,n,r,o,a;return o=+i[(t=t|0)>>3],n=+u(+o),r=+i[t+8>>3]-+i[e+8>>3],a=n*+l(+r),A=+i[e>>3],+ +d(+a,+(+l(+o)*+u(+A)-+u(+r)*(n*+l(+A))))}(15568+(A<<4)|0,e))),c=0|Te(t)?+we(a+-.3334731722518321):a,a=+I(+g)/.381966011250105,(0|t)>0){s=0;do{a*=2.6457513110645907,s=s+1|0}while((0|s)!=(0|t))}g=+u(+c)*a,i[n>>3]=g,c=+l(+c)*a,i[n+8>>3]=c,D=o}function Be(e,t,A,n,o){t|=0,A|=0,n|=0,o|=0;var a=0,c=0;if((a=+function(e){var t,A;return A=+i[(e=e|0)>>3],t=+i[e+8>>3],+ +g(+(A*A+t*t))}(e|=0))<1e-16)return t=15568+(t<<4)|0,r[o>>2]=r[t>>2],r[o+4>>2]=r[t+4>>2],r[o+8>>2]=r[t+8>>2],void(r[o+12>>2]=r[t+12>>2]);if(c=+d(+ +i[e+8>>3],+ +i[e>>3]),(0|A)>0){e=0;do{a/=2.6457513110645907,e=e+1|0}while((0|e)!=(0|A))}n?(a/=3,A=0==(0|Te(A)),a=+f(.381966011250105*(A?a:a/2.6457513110645907))):(a=+f(.381966011250105*a),0|Te(A)&&(c=+we(c+.3334731722518321))),function(e,t,A,n){e|=0,t=+t,n|=0;var o=0,a=0,g=0,c=0;if((A=+A)<1e-16)return r[n>>2]=r[e>>2],r[n+4>>2]=r[e+4>>2],r[n+8>>2]=r[e+8>>2],void(r[n+12>>2]=r[e+12>>2]);a=t<0?t+6.283185307179586:t,a=t>=6.283185307179586?a+-6.283185307179586:a;do{if(!(a<1e-16)){if(o=+s(+(a+-3.141592653589793))<1e-16,t=+i[e>>3],o){t-=A,i[n>>3]=t,o=n;break}if(g=+u(+A),A=+l(+A),t=g*+l(+t)+ +u(+a)*(A*+u(+t)),t=+h(+((t=t>1?1:t)<-1?-1:t)),i[n>>3]=t,+s(+(t+-1.5707963267948966))<1e-16)return i[n>>3]=1.5707963267948966,void(i[n+8>>3]=0);if(+s(+(t+1.5707963267948966))<1e-16)return i[n>>3]=-1.5707963267948966,void(i[n+8>>3]=0);if(c=+u(+t),a=A*+l(+a)/c,A=+i[e>>3],t=(g-+l(+t)*+l(+A))/+u(+A)/c,g=a>1?1:a,t=t>1?1:t,(t=+i[e+8>>3]+ +d(+(g<-1?-1:g),+(t<-1?-1:t)))>3.141592653589793)do{t+=-6.283185307179586}while(t>3.141592653589793);if(t<-3.141592653589793)do{t+=6.283185307179586}while(t<-3.141592653589793);return void(i[n+8>>3]=t)}t=+i[e>>3]+A,i[n>>3]=t,o=n}while(0);if(+s(+(t+-1.5707963267948966))<1e-16)return i[o>>3]=1.5707963267948966,void(i[n+8>>3]=0);if(+s(+(t+1.5707963267948966))<1e-16)return i[o>>3]=-1.5707963267948966,void(i[n+8>>3]=0);if((t=+i[e+8>>3])>3.141592653589793)do{t+=-6.283185307179586}while(t>3.141592653589793);if(t<-3.141592653589793)do{t+=6.283185307179586}while(t<-3.141592653589793);i[n+8>>3]=t}(15568+(t<<4)|0,+we(+i[16368+(24*t|0)>>3]-c),a,o)}function pe(e,t,A){t|=0,A|=0;var n,i;n=D,D=D+16|0,X((e|=0)+4|0,i=n),Be(i,0|r[e>>2],t,0,A),D=n}function Ee(e,t,A,n,o){e|=0,t|=0,A|=0,n|=0,o|=0;var a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y,v,b,w,S,F,R,G=0,k=0,x=0,N=0,U=0,_=0;if(R=D,D=D+272|0,N=R+240|0,w=R,S=R+224|0,F=R+208|0,d=R+176|0,B=R+160|0,p=R+192|0,E=R+144|0,Q=R+128|0,y=R+112|0,v=R+96|0,b=R+80|0,r[(G=R+256|0)>>2]=t,r[N>>2]=r[e>>2],r[N+4>>2]=r[e+4>>2],r[N+8>>2]=r[e+8>>2],r[N+12>>2]=r[e+12>>2],Qe(N,G,w),r[o>>2]=0,(0|(N=n+A+(5==(0|n)&1)|0))<=(0|A))D=R;else{s=S+4|0,g=d+4|0,c=A+5|0,u=16848+((a=0|r[G>>2])<<2)|0,l=16928+(a<<2)|0,I=Q+8|0,C=y+8|0,h=v+8|0,f=F+4|0,x=A;e:for(;;){k=w+(((0|x)%5|0)<<4)|0,r[F>>2]=r[k>>2],r[F+4>>2]=r[k+4>>2],r[F+8>>2]=r[k+8>>2],r[F+12>>2]=r[k+12>>2];do{}while(2==(0|ye(F,a,0,1)));if((0|x)>(0|A)&0!=(0|Te(t))){if(r[d>>2]=r[F>>2],r[d+4>>2]=r[F+4>>2],r[d+8>>2]=r[F+8>>2],r[d+12>>2]=r[F+12>>2],X(s,B),n=0|r[d>>2],G=0|r[17008+(80*n|0)+(r[S>>2]<<2)>>2],r[d>>2]=r[18608+(80*n|0)+(20*G|0)>>2],(0|(k=0|r[18608+(80*n|0)+(20*G|0)+16>>2]))>0){e=0;do{oe(g),e=e+1|0}while((0|e)<(0|k))}switch(k=18608+(80*n|0)+(20*G|0)+4|0,r[p>>2]=r[k>>2],r[p+4>>2]=r[k+4>>2],r[p+8>>2]=r[k+8>>2],$(p,3*(0|r[u>>2])|0),q(g,p,g),W(g),X(g,E),U=+(0|r[l>>2]),i[Q>>3]=3*U,i[I>>3]=0,_=-1.5*U,i[y>>3]=_,i[C>>3]=2.598076211353316*U,i[v>>3]=_,i[h>>3]=-2.598076211353316*U,0|r[17008+(80*(0|r[d>>2])|0)+(r[F>>2]<<2)>>2]){case 1:e=y,n=Q;break;case 3:e=v,n=y;break;case 2:e=Q,n=v;break;default:e=12;break e}ot(B,E,n,e,b),Be(b,0|r[d>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])}if((0|x)<(0|c)&&(X(f,d),Be(d,0|r[F>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])),r[S>>2]=r[F>>2],r[S+4>>2]=r[F+4>>2],r[S+8>>2]=r[F+8>>2],r[S+12>>2]=r[F+12>>2],(0|(x=x+1|0))>=(0|N)){e=3;break}}3!=(0|e)?12==(0|e)&&m(22474,22521,581,22531):D=R}}function Qe(e,t,A){e|=0,t|=0,A|=0;var n,i=0,o=0,a=0,s=0,g=0;n=D,D=D+128|0,o=n,s=20208,g=(a=i=n+64|0)+60|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|g));s=20272,g=(a=o)+60|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|g));i=(g=0==(0|Te(0|r[t>>2])))?i:o,ce(o=e+4|0),ue(o),0|Te(0|r[t>>2])&&(re(o),r[t>>2]=1+(0|r[t>>2])),r[A>>2]=r[e>>2],q(o,i,t=A+4|0),W(t),r[A+16>>2]=r[e>>2],q(o,i+12|0,t=A+20|0),W(t),r[A+32>>2]=r[e>>2],q(o,i+24|0,t=A+36|0),W(t),r[A+48>>2]=r[e>>2],q(o,i+36|0,t=A+52|0),W(t),r[A+64>>2]=r[e>>2],q(o,i+48|0,A=A+68|0),W(A),D=n}function ye(e,t,A,n){A|=0,n|=0;var i,o,a,s,g,c,u=0,l=0,I=0,C=0,h=0;if(c=D,D=D+32|0,g=c+12|0,o=c,h=(e|=0)+4|0,C=0|r[16928+((t|=0)<<2)>>2],C=(s=0!=(0|n))?3*C|0:C,u=0|r[h>>2],i=0|r[(a=e+8|0)>>2],s){if((0|(u=i+u+(n=0|r[(l=e+12|0)>>2])|0))==(0|C))return D=c,0|(h=1);I=l}else u=i+u+(n=0|r[(I=e+12|0)>>2])|0;if((0|u)<=(0|C))return D=c,0|(h=0);do{if((0|n)>0){if(n=0|r[e>>2],(0|i)>0){l=18608+(80*n|0)+60|0,n=e;break}n=18608+(80*n|0)+40|0,A?(V(g,C,0,0),z(h,g,o),ae(o),q(o,g,h),l=n,n=e):(l=n,n=e)}else l=18608+(80*(0|r[e>>2])|0)+20|0,n=e}while(0);if(r[n>>2]=r[l>>2],(0|r[(u=l+16|0)>>2])>0){n=0;do{oe(h),n=n+1|0}while((0|n)<(0|r[u>>2]))}return e=l+4|0,r[g>>2]=r[e>>2],r[g+4>>2]=r[e+4>>2],r[g+8>>2]=r[e+8>>2],t=0|r[16848+(t<<2)>>2],$(g,s?3*t|0:t),q(h,g,h),W(h),n=s&&((0|r[a>>2])+(0|r[h>>2])+(0|r[I>>2])|0)==(0|C)?1:2,D=c,0|(h=n)}function ve(e,t){e|=0,t|=0;var A=0;do{A=0|ye(e,t,0,1)}while(2==(0|A));return 0|A}function me(e,t,A,n,o){e|=0,t|=0,A|=0,n|=0,o|=0;var a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y,v,b,w=0,S=0,F=0,R=0,G=0;if(b=D,D=D+240|0,E=b+208|0,Q=b,y=b+192|0,v=b+176|0,h=b+160|0,f=b+144|0,d=b+128|0,B=b+112|0,p=b+96|0,r[(w=b+224|0)>>2]=t,r[E>>2]=r[e>>2],r[E+4>>2]=r[e+4>>2],r[E+8>>2]=r[e+8>>2],r[E+12>>2]=r[e+12>>2],be(E,w,Q),r[o>>2]=0,(0|(C=n+A+(6==(0|n)&1)|0))<=(0|A))D=b;else{s=A+6|0,g=16928+((a=0|r[w>>2])<<2)|0,c=f+8|0,u=d+8|0,l=B+8|0,I=y+4|0,S=0,F=A,n=-1;e:for(;;){if(e=Q+((w=(0|F)%6|0)<<4)|0,r[y>>2]=r[e>>2],r[y+4>>2]=r[e+4>>2],r[y+8>>2]=r[e+8>>2],r[y+12>>2]=r[e+12>>2],e=S,S=0|ye(y,a,0,1),(0|F)>(0|A)&0!=(0|Te(t))&&(1!=(0|e)&&(0|r[y>>2])!=(0|n))){switch(X(Q+(((w+5|0)%6|0)<<4)+4|0,v),X(Q+(w<<4)+4|0,h),R=+(0|r[g>>2]),i[f>>3]=3*R,i[c>>3]=0,G=-1.5*R,i[d>>3]=G,i[u>>3]=2.598076211353316*R,i[B>>3]=G,i[l>>3]=-2.598076211353316*R,w=0|r[E>>2],0|r[17008+(80*w|0)+(((0|n)==(0|w)?0|r[y>>2]:n)<<2)>>2]){case 1:e=d,n=f;break;case 3:e=B,n=d;break;case 2:e=f,n=B;break;default:e=8;break e}ot(v,h,n,e,p),0|at(v,p)||0|at(h,p)||(Be(p,0|r[E>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2]))}if((0|F)<(0|s)&&(X(I,v),Be(v,0|r[y>>2],a,1,o+8+(r[o>>2]<<4)|0),r[o>>2]=1+(0|r[o>>2])),(0|(F=F+1|0))>=(0|C)){e=3;break}n=0|r[y>>2]}3!=(0|e)?8==(0|e)&&m(22557,22521,746,22602):D=b}}function be(e,t,A){e|=0,t|=0,A|=0;var n,i=0,o=0,a=0,s=0,g=0;n=D,D=D+160|0,o=n,s=20336,g=(a=i=n+80|0)+72|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|g));s=20416,g=(a=o)+72|0;do{r[a>>2]=r[s>>2],a=a+4|0,s=s+4|0}while((0|a)<(0|g));i=(g=0==(0|Te(0|r[t>>2])))?i:o,ce(o=e+4|0),ue(o),0|Te(0|r[t>>2])&&(re(o),r[t>>2]=1+(0|r[t>>2])),r[A>>2]=r[e>>2],q(o,i,t=A+4|0),W(t),r[A+16>>2]=r[e>>2],q(o,i+12|0,t=A+20|0),W(t),r[A+32>>2]=r[e>>2],q(o,i+24|0,t=A+36|0),W(t),r[A+48>>2]=r[e>>2],q(o,i+36|0,t=A+52|0),W(t),r[A+64>>2]=r[e>>2],q(o,i+48|0,t=A+68|0),W(t),r[A+80>>2]=r[e>>2],q(o,i+60|0,A=A+84|0),W(A),D=n}function we(e){var t;return t=(e=+e)<0?e+6.283185307179586:e,+(e>=6.283185307179586?t+-6.283185307179586:t)}function Se(e,t){return t|=0,+s(+(+i[(e|=0)>>3]-+i[t>>3]))<17453292519943298e-27?0|(t=+s(+(+i[e+8>>3]-+i[t+8>>3]))<17453292519943298e-27):0|(t=0)}function Fe(e,t){e|=0;var A,n,r,o=0;return n=+i[(t|=0)>>3],A=+i[e>>3],o=(r=+l(.5*(n-A)))*r+(o=+l(.5*(+i[t+8>>3]-+i[e+8>>3])))*(+u(+n)*+u(+A)*o),2*+d(+ +g(+o),+ +g(+(1-o)))*6371.007180918475}function Re(e,t,A){e|=0,A|=0;var n,r,o,a,s=0,c=0,C=0,h=0,B=0,p=0;return p=+i[(t|=0)>>3],o=+i[e>>3],B=+l(.5*(p-o)),C=+i[t+8>>3],r=+i[e+8>>3],h=+l(.5*(C-r)),n=+u(+o),a=+u(+p),h=2*+d(+ +g(+(h=B*B+h*(a*n*h))),+ +g(+(1-h))),B=+i[A>>3],p=+l(.5*(B-p)),s=+i[A+8>>3],C=+l(.5*(s-C)),c=+u(+B),C=2*+d(+ +g(+(C=p*p+C*(a*c*C))),+ +g(+(1-C))),B=+l(.5*(o-B)),s=+l(.5*(r-s)),s=2*+d(+ +g(+(s=B*B+s*(n*c*s))),+ +g(+(1-s))),4*+f(+ +g(+ +I(.5*(c=.5*(h+C+s)))*+I(.5*(c-h))*+I(.5*(c-C))*+I(.5*(c-s))))}function De(e,t){return t=0|mt(0|(e|=0),0|(t|=0),45),v(),127&t|0}function Ge(e,t){var A=0,n=0,r=0,i=0,o=0,a=0;if(!(!0&134217728==(-16777216&(t|=0)|0)))return 0|(t=0);if(o=0|mt(0|(e|=0),0|t,45),v(),(o&=127)>>>0>121)return 0|(t=0);A=0|mt(0|e,0|t,52),v(),A&=15;do{if(0|A){for(r=1,n=0;;){if(i=0|mt(0|e,0|t,3*(15-r|0)|0),v(),0!=(0|(i&=7))&(1^n)){if(1==(0|i)&0!=(0|_(o))){a=0,n=13;break}n=1}if(7==(0|i)){a=0,n=13;break}if(!(r>>>0<A>>>0)){n=9;break}r=r+1|0}if(9==(0|n)){if(15!=(0|A))break;return 0|(a=1)}if(13==(0|n))return 0|a}}while(0);for(;;){if(a=0|mt(0|e,0|t,3*(14-A|0)|0),v(),!(7==(7&a|0)&!0)){a=0,n=13;break}if(!(A>>>0<14)){a=1,n=13;break}A=A+1|0}return 13==(0|n)?0|a:0}function ke(e,t,A){A|=0;var n=0,r=0;if(n=0|mt(0|(e|=0),0|(t|=0),52),v(),(0|(n&=15))>=(0|A)){if((0|n)!=(0|A))if(A>>>0<=15){if(e|=r=0|bt(0|A,0,52),t=0|v()|-15728641&t,(0|n)>(0|A))do{r=0|bt(7,0,3*(14-A|0)|0),A=A+1|0,e|=r,t=0|v()|t}while((0|A)<(0|n))}else t=0,e=0}else t=0,e=0;return y(0|t),0|e}function xe(e,t,A,n){A|=0,n|=0;var i,o=0,a=0,s=0,g=0,c=0,u=0;if(s=0|mt(0|(e|=0),0|(t|=0),52),v(),(0|A)<16&(0|(s&=15))<=(0|A)){if((0|s)==(0|A))return r[(A=n)>>2]=e,void(r[A+4>>2]=t);if(i=(0|(c=0|tt(7,A-s|0)))/7|0,g=0|mt(0|e,0|t,45),v(),0|_(127&g)){e:do{if(s)for(a=1;;){if(o=0|mt(0|e,0|t,3*(15-a|0)|0),v(),0|(o&=7))break e;if(!(a>>>0<s>>>0)){o=0;break}a=a+1|0}else o=0}while(0);a=0==(0|o)}else a=0;if(u=0|bt(s+1|0,0,52),o=0|v()|-15728641&t,xe(t=(u|e)&~(t=0|bt(7,0,0|(g=3*(14-s|0)|0))),s=o&~(0|v()),A,n),o=n+(i<<3)|0,!a)return xe((u=0|bt(1,0,0|g))|t,0|v()|s,A,o),u=o+(i<<3)|0,xe((c=0|bt(2,0,0|g))|t,0|v()|s,A,u),u=u+(i<<3)|0,xe((c=0|bt(3,0,0|g))|t,0|v()|s,A,u),u=u+(i<<3)|0,xe((c=0|bt(4,0,0|g))|t,0|v()|s,A,u),u=u+(i<<3)|0,xe((c=0|bt(5,0,0|g))|t,0|v()|s,A,u),void xe((c=0|bt(6,0,0|g))|t,0|v()|s,A,u+(i<<3)|0);a=o+(i<<3)|0,(0|c)>6&&(Rt(0|o,0,(u=(a>>>0>(c=o+8|0)>>>0?a:c)+-1+(0-o)|0)+8&-8|0),o=c+(u>>>3<<3)|0),xe((u=0|bt(2,0,0|g))|t,0|v()|s,A,o),u=o+(i<<3)|0,xe((c=0|bt(3,0,0|g))|t,0|v()|s,A,u),u=u+(i<<3)|0,xe((c=0|bt(4,0,0|g))|t,0|v()|s,A,u),u=u+(i<<3)|0,xe((c=0|bt(5,0,0|g))|t,0|v()|s,A,u),xe((c=0|bt(6,0,0|g))|t,0|v()|s,A,u+(i<<3)|0)}}function Ne(e,t){var A=0,n=0,r=0;if(r=0|mt(0|(e|=0),0|(t|=0),45),v(),!(0|_(127&r)))return 0|(r=0);r=0|mt(0|e,0|t,52),v(),r&=15;e:do{if(r)for(n=1;;){if(A=0|mt(0|e,0|t,3*(15-n|0)|0),v(),0|(A&=7))break e;if(!(n>>>0<r>>>0)){A=0;break}n=n+1|0}else A=0}while(0);return 0|(r=0==(0|A)&1)}function Ue(e,t){var A=0,n=0,r=0;if(r=0|mt(0|(e|=0),0|(t|=0),52),v(),!(r&=15))return 0|(r=0);for(n=1;;){if(A=0|mt(0|e,0|t,3*(15-n|0)|0),v(),0|(A&=7)){n=5;break}if(!(n>>>0<r>>>0)){A=0,n=5;break}n=n+1|0}return 5==(0|n)?0|A:0}function _e(e,t){var A=0,n=0,r=0,i=0,o=0,a=0,s=0;if(s=0|mt(0|(e|=0),0|(t|=0),52),v(),!(s&=15))return s=e,y(0|(a=t)),0|s;for(a=1,A=0;;){n=0|bt(7,0,0|(i=3*(15-a|0)|0)),r=0|v(),o=0|mt(0|e,0|t,0|i),v(),e=(i=0|bt(0|se(7&o),0,0|i))|e&~n,t=(o=0|v())|t&~r;e:do{if(!A)if(0==(i&n|0)&0==(o&r|0))A=0;else if(n=0|mt(0|e,0|t,52),v(),n&=15){A=1;t:for(;;){switch(o=0|mt(0|e,0|t,3*(15-A|0)|0),v(),7&o){case 1:break t;case 0:break;default:A=1;break e}if(!(A>>>0<n>>>0)){A=1;break e}A=A+1|0}for(A=1;;){if(r=0|mt(0|e,0|t,0|(o=3*(15-A|0)|0)),v(),i=0|bt(7,0,0|o),t&=~(0|v()),e=e&~i|(o=0|bt(0|se(7&r),0,0|o)),t=0|t|v(),!(A>>>0<n>>>0)){A=1;break}A=A+1|0}}else A=1}while(0);if(!(a>>>0<s>>>0))break;a=a+1|0}return y(0|t),0|e}function Me(e,t){var A=0,n=0,r=0,i=0,o=0;if(n=0|mt(0|(e|=0),0|(t|=0),52),v(),!(n&=15))return n=e,y(0|(A=t)),0|n;for(A=1;o=0|mt(0|e,0|t,0|(i=3*(15-A|0)|0)),v(),r=0|bt(7,0,0|i),t&=~(0|v()),e=(i=0|bt(0|se(7&o),0,0|i))|e&~r,t=0|v()|t,A>>>0<n>>>0;)A=A+1|0;return y(0|t),0|e}function Oe(e,t){var A=0,n=0,r=0,i=0,o=0,a=0,s=0;if(s=0|mt(0|(e|=0),0|(t|=0),52),v(),!(s&=15))return s=e,y(0|(a=t)),0|s;for(a=1,A=0;;){n=0|bt(7,0,0|(i=3*(15-a|0)|0)),r=0|v(),o=0|mt(0|e,0|t,0|i),v(),e=(i=0|bt(0|ge(7&o),0,0|i))|e&~n,t=(o=0|v())|t&~r;e:do{if(!A)if(0==(i&n|0)&0==(o&r|0))A=0;else if(n=0|mt(0|e,0|t,52),v(),n&=15){A=1;t:for(;;){switch(o=0|mt(0|e,0|t,3*(15-A|0)|0),v(),7&o){case 1:break t;case 0:break;default:A=1;break e}if(!(A>>>0<n>>>0)){A=1;break e}A=A+1|0}for(A=1;;){if(i=0|bt(7,0,0|(r=3*(15-A|0)|0)),o=t&~(0|v()),t=0|mt(0|e,0|t,0|r),v(),e=e&~i|(t=0|bt(0|ge(7&t),0,0|r)),t=0|o|v(),!(A>>>0<n>>>0)){A=1;break}A=A+1|0}}else A=1}while(0);if(!(a>>>0<s>>>0))break;a=a+1|0}return y(0|t),0|e}function Le(e,t){var A=0,n=0,r=0,i=0,o=0;if(n=0|mt(0|(e|=0),0|(t|=0),52),v(),!(n&=15))return n=e,y(0|(A=t)),0|n;for(A=1;i=0|bt(7,0,0|(o=3*(15-A|0)|0)),r=t&~(0|v()),t=0|mt(0|e,0|t,0|o),v(),e=(t=0|bt(0|ge(7&t),0,0|o))|e&~i,t=0|v()|r,A>>>0<n>>>0;)A=A+1|0;return y(0|t),0|e}function Te(e){return 0|(0|(e|=0))%2}function Ze(e,t){e|=0;var A,n;return n=D,D=D+16|0,A=n,(t|=0)>>>0<=15&&2146435072!=(2146435072&r[e+4>>2]|0)&&2146435072!=(2146435072&r[e+8+4>>2]|0)?(!function(e,t,A){var n,r;n=D,D=D+16|0,de(e|=0,t|=0,A|=0,r=n),K(r,A+4|0),D=n}(e,t,A),t=0|function(e,t){e|=0;var A,n=0,i=0,o=0,a=0,s=0,g=0,c=0,u=0;if(A=D,D=D+64|0,g=A+40|0,i=A+24|0,o=A+12|0,a=A,bt(0|(t|=0),0,52),n=134225919|v(),!t)return(0|r[e+4>>2])>2||(0|r[e+8>>2])>2||(0|r[e+12>>2])>2?(g=0,y(0|(s=0)),D=A,0|g):(bt(0|O(e),0,45),s=0|v()|n,g=-1,y(0|s),D=A,0|g);if(r[g>>2]=r[e>>2],r[g+4>>2]=r[e+4>>2],r[g+8>>2]=r[e+8>>2],r[g+12>>2]=r[e+12>>2],s=g+4|0,(0|t)>0)for(e=-1;r[i>>2]=r[s>>2],r[i+4>>2]=r[s+4>>2],r[i+8>>2]=r[s+8>>2],1&t?(te(s),r[o>>2]=r[s>>2],r[o+4>>2]=r[s+4>>2],r[o+8>>2]=r[s+8>>2],ne(o)):(Ae(s),r[o>>2]=r[s>>2],r[o+4>>2]=r[s+4>>2],r[o+8>>2]=r[s+8>>2],re(o)),z(i,o,a),W(a),c=0|bt(7,0,0|(u=3*(15-t|0)|0)),n&=~(0|v()),e=(u=0|bt(0|ee(a),0,0|u))|e&~c,n=0|v()|n,(0|t)>1;)t=t+-1|0;else e=-1;e:do{if((0|r[s>>2])<=2&&(0|r[g+8>>2])<=2&&(0|r[g+12>>2])<=2){if(t=0|bt(0|(i=0|O(g)),0,45),t|=e,e=0|v()|-1040385&n,a=0|L(g),!(0|_(i))){if((0|a)<=0)break;for(o=0;;){if(i=0|mt(0|t,0|e,52),v(),i&=15)for(n=1;g=0|mt(0|t,0|e,0|(u=3*(15-n|0)|0)),v(),c=0|bt(7,0,0|u),e&=~(0|v()),t=t&~c|(u=0|bt(0|se(7&g),0,0|u)),e=0|e|v(),n>>>0<i>>>0;)n=n+1|0;if((0|(o=o+1|0))==(0|a))break e}}o=0|mt(0|t,0|e,52),v(),o&=15;t:do{if(o){n=1;A:for(;;){switch(u=0|mt(0|t,0|e,3*(15-n|0)|0),v(),7&u){case 1:break A;case 0:break;default:break t}if(!(n>>>0<o>>>0))break t;n=n+1|0}if(0|T(i,0|r[g>>2]))for(n=1;c=0|bt(7,0,0|(g=3*(15-n|0)|0)),u=e&~(0|v()),e=0|mt(0|t,0|e,0|g),v(),t=t&~c|(e=0|bt(0|ge(7&e),0,0|g)),e=0|u|v(),n>>>0<o>>>0;)n=n+1|0;else for(n=1;g=0|mt(0|t,0|e,0|(u=3*(15-n|0)|0)),v(),c=0|bt(7,0,0|u),e&=~(0|v()),t=t&~c|(u=0|bt(0|se(7&g),0,0|u)),e=0|e|v(),n>>>0<o>>>0;)n=n+1|0}}while(0);if((0|a)>0){n=0;do{t=0|_e(t,e),e=0|v(),n=n+1|0}while((0|n)!=(0|a))}}else t=0,e=0}while(0);return u=t,y(0|(c=e)),D=A,0|u}(A,t),e=0|v()):(e=0,t=0),y(0|e),D=n,0|t}function He(e,t,A){var n,i=0,o=0,a=0;if(n=(A|=0)+4|0,o=0|mt(0|(e|=0),0|(t|=0),52),v(),o&=15,a=0|mt(0|e,0|t,45),v(),i=0==(0|o),0|_(127&a)){if(i)return 0|(a=1);i=1}else{if(i)return 0|(a=0);i=0==(0|r[n>>2])&&0==(0|r[A+8>>2])?0!=(0|r[A+12>>2])&1:1}for(A=1;1&A?ne(n):re(n),a=0|mt(0|e,0|t,3*(15-A|0)|0),v(),ie(n,7&a),A>>>0<o>>>0;)A=A+1|0;return 0|i}function Ye(e,t,A){A|=0;var n,i,o=0,a=0,s=0,g=0,c=0,u=0;i=D,D=D+16|0,n=i,u=0|mt(0|(e|=0),0|(t|=0),45),v(),u&=127;e:do{if(0!=(0|_(u))&&(s=0|mt(0|e,0|t,52),v(),0!=(0|(s&=15)))){o=1;t:for(;;){switch(c=0|mt(0|e,0|t,3*(15-o|0)|0),v(),7&c){case 5:break t;case 0:break;default:o=t;break e}if(!(o>>>0<s>>>0)){o=t;break e}o=o+1|0}for(a=1,o=t;g=0|bt(7,0,0|(t=3*(15-a|0)|0)),c=o&~(0|v()),o=0|mt(0|e,0|o,0|t),v(),e=e&~g|(o=0|bt(0|ge(7&o),0,0|t)),o=0|c|v(),a>>>0<s>>>0;)a=a+1|0}else o=t}while(0);if(c=7728+(28*u|0)|0,r[A>>2]=r[c>>2],r[A+4>>2]=r[c+4>>2],r[A+8>>2]=r[c+8>>2],r[A+12>>2]=r[c+12>>2],0|He(e,o,A)){if(g=A+4|0,r[n>>2]=r[g>>2],r[n+4>>2]=r[g+4>>2],r[n+8>>2]=r[g+8>>2],s=0|mt(0|e,0|o,52),v(),c=15&s,1&s?(re(g),s=c+1|0):s=c,0|_(u)){e:do{if(c)for(t=1;;){if(a=0|mt(0|e,0|o,3*(15-t|0)|0),v(),0|(a&=7)){o=a;break e}if(!(t>>>0<c>>>0)){o=0;break}t=t+1|0}else o=0}while(0);o=4==(0|o)&1}else o=0;if(0|ye(A,s,o,0)){if(0|_(u))do{}while(0!=(0|ye(A,s,0,0)));(0|s)!=(0|c)&&Ae(g)}else(0|s)!=(0|c)&&(r[g>>2]=r[n>>2],r[g+4>>2]=r[n+4>>2],r[g+8>>2]=r[n+8>>2]);D=i}else D=i}function Je(e,t,A){A|=0;var n,r;n=D,D=D+16|0,Ye(e|=0,t|=0,r=n),t=0|mt(0|e,0|t,52),v(),pe(r,15&t,A),D=n}function je(e,t,A){A|=0;var n,r,i=0,o=0;r=D,D=D+16|0,Ye(e|=0,t|=0,n=r),i=0|mt(0|e,0|t,45),v(),i=0==(0|_(127&i)),o=0|mt(0|e,0|t,52),v(),o&=15;e:do{if(!i){if(0|o)for(i=1;;){if(!(0==((0|bt(7,0,3*(15-i|0)|0))&e|0)&0==((0|v())&t|0)))break e;if(!(i>>>0<o>>>0))break;i=i+1|0}return Ee(n,o,0,5,A),void(D=r)}}while(0);me(n,o,0,6,A),D=r}function Pe(e,t){t|=0;var A,n=0,i=0,o=0,a=0,s=0,g=0;if(bt(0|(e|=0),0,52),A=134225919|v(),(0|e)<1){i=0,n=0;do{0|_(i)&&(bt(0|i,0,45),s=0|A|v(),r[(e=t+(n<<3)|0)>>2]=-1,r[e+4>>2]=s,n=n+1|0),i=i+1|0}while(122!=(0|i))}else{s=0,n=0;do{if(0|_(s)){for(bt(0|s,0,45),i=1,o=-1,a=0|A|v();o&=~(g=0|bt(7,0,3*(15-i|0)|0)),a&=~(0|v()),(0|i)!=(0|e);)i=i+1|0;r[(g=t+(n<<3)|0)>>2]=o,r[g+4>>2]=a,n=n+1|0}s=s+1|0}while(122!=(0|s))}}function Ve(e,t,A,n){var i,o=0,a=0,s=0,g=0,c=0;if(i=D,D=D+64|0,s=i,(0|(e|=0))==(0|(A|=0))&(0|(t|=0))==(0|(n|=0))|!1|134217728!=(2013265920&t|0)|!1|134217728!=(2013265920&n|0))return D=i,0|(s=0);if(o=0|mt(0|e,0|t,52),v(),o&=15,a=0|mt(0|A,0|n,52),v(),(0|o)!=(15&a|0))return D=i,0|(s=0);if(a=o+-1|0,o>>>0>1&&(c=0|ke(e,t,a),g=0|v(),(0|c)==(0|(a=0|ke(A,n,a)))&(0|g)==(0|v()))){if(o=0|mt(0|e,0|t,0|(a=3*(15^o)|0)),v(),o&=7,a=0|mt(0|A,0|n,0|a),v(),0==(0|o)|0==(0|(a&=7)))return D=i,0|(c=1);if((0|r[21136+(o<<2)>>2])==(0|a))return D=i,0|(c=1);if((0|r[21168+(o<<2)>>2])==(0|a))return D=i,0|(c=1)}a=(o=s)+56|0;do{r[o>>2]=0,o=o+4|0}while((0|o)<(0|a));return G(e,t,1,s),o=(0|r[(c=s)>>2])==(0|A)&&(0|r[c+4>>2])==(0|n)||(0|r[(c=s+8|0)>>2])==(0|A)&&(0|r[c+4>>2])==(0|n)||(0|r[(c=s+16|0)>>2])==(0|A)&&(0|r[c+4>>2])==(0|n)||(0|r[(c=s+24|0)>>2])==(0|A)&&(0|r[c+4>>2])==(0|n)||(0|r[(c=s+32|0)>>2])==(0|A)&&(0|r[c+4>>2])==(0|n)||(0|r[(c=s+40|0)>>2])==(0|A)&&(0|r[c+4>>2])==(0|n)?1:1&((0|r[(o=s+48|0)>>2])==(0|A)?(0|r[o+4>>2])==(0|n):0),D=i,0|(c=o)}function Ke(e,t,A){A|=0;var n,i,o,a,s=0;if(o=D,D=D+16|0,i=o,s=0|mt(0|(e|=0),0|(t|=0),56),v(),-1==(0|(t=0|function(e,t,A){A|=0;var n,i=0;if(i=0|Ne(e=e|0,t=t|0),(A+-1|0)>>>0>5)return 0|(A=-1);if(1==(0|A)&(n=0!=(0|i)))return 0|(A=-1);return i=0|function(e,t){var A,n,i,o=0,a=0,s=0,g=0,c=0;if(i=D,D=D+32|0,n=i,Ye(e=e|0,t=t|0,A=i+16|0),s=0|De(e,t),c=0|Ue(e,t),function(e,t){e=7728+(28*(e|=0)|0)|0,r[(t|=0)>>2]=r[e>>2],r[t+4>>2]=r[e+4>>2],r[t+8>>2]=r[e+8>>2],r[t+12>>2]=r[e+12>>2]}(s,n),t=0|function(e,t){e|=0;var A=0,n=0;if((t|=0)>>>0>20)return 0|(t=-1);do{if((0|r[11152+(216*t|0)>>2])!=(0|e))if((0|r[11152+(216*t|0)+8>>2])!=(0|e))if((0|r[11152+(216*t|0)+16>>2])!=(0|e))if((0|r[11152+(216*t|0)+24>>2])!=(0|e))if((0|r[11152+(216*t|0)+32>>2])!=(0|e))if((0|r[11152+(216*t|0)+40>>2])!=(0|e))if((0|r[11152+(216*t|0)+48>>2])!=(0|e))if((0|r[11152+(216*t|0)+56>>2])!=(0|e))if((0|r[11152+(216*t|0)+64>>2])!=(0|e))if((0|r[11152+(216*t|0)+72>>2])!=(0|e))if((0|r[11152+(216*t|0)+80>>2])!=(0|e))if((0|r[11152+(216*t|0)+88>>2])!=(0|e))if((0|r[11152+(216*t|0)+96>>2])!=(0|e))if((0|r[11152+(216*t|0)+104>>2])!=(0|e))if((0|r[11152+(216*t|0)+112>>2])!=(0|e))if((0|r[11152+(216*t|0)+120>>2])!=(0|e))if((0|r[11152+(216*t|0)+128>>2])!=(0|e)){if((0|r[11152+(216*t|0)+136>>2])!=(0|e)){if((0|r[11152+(216*t|0)+144>>2])==(0|e)){e=0,A=2,n=0;break}if((0|r[11152+(216*t|0)+152>>2])==(0|e)){e=0,A=2,n=1;break}if((0|r[11152+(216*t|0)+160>>2])==(0|e)){e=0,A=2,n=2;break}if((0|r[11152+(216*t|0)+168>>2])==(0|e)){e=1,A=2,n=0;break}if((0|r[11152+(216*t|0)+176>>2])==(0|e)){e=1,A=2,n=1;break}if((0|r[11152+(216*t|0)+184>>2])==(0|e)){e=1,A=2,n=2;break}if((0|r[11152+(216*t|0)+192>>2])==(0|e)){e=2,A=2,n=0;break}if((0|r[11152+(216*t|0)+200>>2])==(0|e)){e=2,A=2,n=1;break}if((0|r[11152+(216*t|0)+208>>2])==(0|e)){e=2,A=2,n=2;break}return 0|(e=-1)}e=2,A=1,n=2}else e=2,A=1,n=1;else e=2,A=1,n=0;else e=1,A=1,n=2;else e=1,A=1,n=1;else e=1,A=1,n=0;else e=0,A=1,n=2;else e=0,A=1,n=1;else e=0,A=1,n=0;else e=2,A=0,n=2;else e=2,A=0,n=1;else e=2,A=0,n=0;else e=1,A=0,n=2;else e=1,A=0,n=1;else e=1,A=0,n=0;else e=0,A=0,n=2;else e=0,A=0,n=1;else e=0,A=0,n=0}while(0);return 0|(t=0|r[11152+(216*t|0)+(72*A|0)+(24*e|0)+(n<<3)+4>>2])}(s,0|r[A>>2]),!(0|_(s)))return D=i,0|(c=t);switch(0|s){case 4:e=0,o=14;break;case 14:e=1,o=14;break;case 24:e=2,o=14;break;case 38:e=3,o=14;break;case 49:e=4,o=14;break;case 58:e=5,o=14;break;case 63:e=6,o=14;break;case 72:e=7,o=14;break;case 83:e=8,o=14;break;case 97:e=9,o=14;break;case 107:e=10,o=14;break;case 117:e=11,o=14;break;default:g=0,a=0}14==(0|o)&&(g=0|r[22096+(24*e|0)+8>>2],a=0|r[22096+(24*e|0)+16>>2]);(0|(e=0|r[A>>2]))!=(0|r[n>>2])&&(s=0|M(s),e=0|r[A>>2],s|(0|e)==(0|a)&&(t=(t+1|0)%6|0));if(3==(0|c)&(0|e)==(0|a))return D=i,0|(c=(t+5|0)%6|0);if(!(5==(0|c)&(0|e)==(0|g)))return D=i,0|(c=t);return D=i,0|(c=(t+1|0)%6|0)}(e,t),n?0|(A=(5-i+(0|r[22384+(A<<2)>>2])|0)%5|0):0|(A=(6-i+(0|r[22416+(A<<2)>>2])|0)%6|0)}(n=(a=!0&268435456==(2013265920&t|0))?e:0,e=a?-2130706433&t|134217728:0,7&s))))return r[A>>2]=0,void(D=o);Ye(n,e,i),s=0|mt(0|n,0|e,52),v(),s&=15,0|Ne(n,e)?Ee(i,s,t,2,A):me(i,s,t,2,A),D=o}function We(e){e|=0;var t,A,n=0;return(t=0|pt(1,12))||m(22691,22646,49,22704),0|(n=0|r[(A=e+4|0)>>2])?(r[(n=n+8|0)>>2]=t,r[A>>2]=t,0|t):(0|r[e>>2]&&m(22721,22646,61,22744),r[(n=e)>>2]=t,r[A>>2]=t,0|t)}function Xe(e,t){e|=0,t|=0;var A,n;return(n=0|dt(24))||m(22758,22646,78,22772),r[n>>2]=r[t>>2],r[n+4>>2]=r[t+4>>2],r[n+8>>2]=r[t+8>>2],r[n+12>>2]=r[t+12>>2],r[n+16>>2]=0,0|(A=0|r[(t=e+4|0)>>2])?(r[A+16>>2]=n,r[t>>2]=n,0|n):(0|r[e>>2]&&m(22787,22646,82,22772),r[e>>2]=n,r[t>>2]=n,0|n)}function qe(e){var t,A,n=0,o=0,a=0,g=0,c=0,u=0,l=0,I=0,C=0,h=0,f=0,d=0,B=0,p=0,E=0,Q=0,y=0,v=0,b=0,w=0,S=0,F=0,R=0,D=0,G=0,k=0,x=0,N=0,U=0,_=0;if(0|r[(g=(e|=0)+8|0)>>2])return 0|(_=1);if(!(a=0|r[e>>2]))return 0|(_=0);n=a,o=0;do{o=o+1|0,n=0|r[n+8>>2]}while(0!=(0|n));if(o>>>0<2)return 0|(_=0);(A=0|dt(o<<2))||m(22807,22646,317,22826),(t=0|dt(o<<5))||m(22848,22646,321,22826),r[e>>2]=0,r[(F=e+4|0)>>2]=0,r[g>>2]=0,o=0,N=0,S=0,f=0;e:for(;;){if(h=0|r[a>>2]){c=0,u=h;do{if(I=+i[u+8>>3],n=u,u=0|r[u+16>>2],l=+i[(g=(C=0==(0|u))?h:u)+8>>3],+s(+(I-l))>3.141592653589793){_=14;break}c+=(l-I)*(+i[n>>3]+ +i[g>>3])}while(!C);if(14==(0|_)){_=0,c=0,n=h;do{w=+i[n+8>>3],k=0|r[(x=n+16|0)>>2],b=+i[(k=0==(0|k)?h:k)+8>>3],c+=(+i[n>>3]+ +i[k>>3])*((b<0?b+6.283185307179586:b)-(w<0?w+6.283185307179586:w)),n=0|r[(0==(0|n)?a:x)>>2]}while(0!=(0|n))}c>0?(r[A+(N<<2)>>2]=a,N=N+1|0,g=S,n=f):_=19}else _=19;if(19==(0|_)){_=0;do{if(!o){if(f){g=F,u=f+8|0,n=a,o=e;break}if(0|r[e>>2]){_=27;break e}g=F,u=e,n=a,o=e;break}if(0|r[(n=o+8|0)>>2]){_=21;break e}if(!(o=0|pt(1,12))){_=23;break e}r[n>>2]=o,g=o+4|0,u=o,n=f}while(0);if(r[u>>2]=a,r[g>>2]=a,u=t+(S<<5)|0,C=0|r[a>>2]){for(i[(h=t+(S<<5)+8|0)>>3]=17976931348623157e292,i[(f=t+(S<<5)+24|0)>>3]=17976931348623157e292,i[u>>3]=-17976931348623157e292,i[(d=t+(S<<5)+16|0)>>3]=-17976931348623157e292,y=17976931348623157e292,v=-17976931348623157e292,g=0,B=C,I=17976931348623157e292,E=17976931348623157e292,Q=-17976931348623157e292,l=-17976931348623157e292;c=+i[B>>3],w=+i[B+8>>3],B=0|r[B+16>>2],b=+i[((p=0==(0|B))?C:B)+8>>3],c<I&&(i[h>>3]=c,I=c),w<E&&(i[f>>3]=w,E=w),c>Q?i[u>>3]=c:c=Q,w>l&&(i[d>>3]=w,l=w),y=w>0&w<y?w:y,v=w<0&w>v?w:v,g|=+s(+(w-b))>3.141592653589793,!p;)Q=c;g&&(i[d>>3]=v,i[f>>3]=y)}else r[u>>2]=0,r[u+4>>2]=0,r[u+8>>2]=0,r[u+12>>2]=0,r[u+16>>2]=0,r[u+20>>2]=0,r[u+24>>2]=0,r[u+28>>2]=0;g=S+1|0}if(a=0|r[(x=a+8|0)>>2],r[x>>2]=0,!a){_=45;break}S=g,f=n}if(21==(0|_))m(22624,22646,35,22658);else if(23==(0|_))m(22678,22646,37,22658);else if(27==(0|_))m(22721,22646,61,22744);else if(45==(0|_)){e:do{if((0|N)>0){for(x=0==(0|g),G=g<<2,k=0==(0|e),D=0,n=0;;){if(R=0|r[A+(D<<2)>>2],x)_=73;else{if(!(S=0|dt(G))){_=50;break}if(!(F=0|dt(G))){_=52;break}t:do{if(k)o=0;else{for(g=0,o=0,u=e;a=t+(g<<5)|0,0|ze(0|r[u>>2],a,0|r[R>>2])?(r[S+(o<<2)>>2]=u,r[F+(o<<2)>>2]=a,p=o+1|0):p=o,u=0|r[u+8>>2];)g=g+1|0,o=p;if((0|p)>0)if(a=0|r[S>>2],1==(0|p))o=a;else for(d=0,B=-1,o=a,f=a;;){for(C=0|r[f>>2],a=0,u=0;h=(0|(g=0|r[r[S+(u<<2)>>2]>>2]))==(0|C)?a:a+(1&(0|ze(g,0|r[F+(u<<2)>>2],0|r[C>>2])))|0,(0|(u=u+1|0))!=(0|p);)a=h;if(o=(g=(0|h)>(0|B))?f:o,(0|(a=d+1|0))==(0|p))break t;d=a,B=g?h:B,f=0|r[S+(a<<2)>>2]}else o=0}}while(0);if(Bt(S),Bt(F),o){if(a=0|r[(g=o+4|0)>>2])o=a+8|0;else if(0|r[o>>2]){_=70;break}r[o>>2]=R,r[g>>2]=R}else _=73}if(73==(0|_)){if(_=0,0|(n=0|r[R>>2]))do{F=n,n=0|r[n+16>>2],Bt(F)}while(0!=(0|n));Bt(R),n=2}if((0|(D=D+1|0))>=(0|N)){U=n;break e}}50==(0|_)?m(22863,22646,249,22882):52==(0|_)?m(22901,22646,252,22882):70==(0|_)&&m(22721,22646,61,22744)}else U=0}while(0);return Bt(A),Bt(t),0|(_=U)}return 0}function ze(e,t,A){e|=0;var n,o=0,a=0,s=0,g=0,c=0,u=0,l=0;if(!(0|J(t|=0,A|=0)))return 0|(e=0);if(t=0|Y(t),n=+i[A>>3],o=t&(o=+i[A+8>>3])<0?o+6.283185307179586:o,!(e=0|r[e>>2]))return 0|(e=0);if(t){t=0,A=e;e:for(;;){for(;g=+i[A>>3],u=+i[A+8>>3],l=0|r[(A=A+16|0)>>2],s=+i[(l=0==(0|l)?e:l)>>3],a=+i[l+8>>3],g>s?(c=g,g=u):(c=s,s=g,g=a,a=u),n<s|n>c;)if(!(A=0|r[A>>2])){A=22;break e}if(o=(g=g<0?g+6.283185307179586:g)==o|(u=a<0?a+6.283185307179586:a)==o?o+-2220446049250313e-31:o,((u+=(n-s)/(c-s)*(g-u))<0?u+6.283185307179586:u)>o&&(t^=1),!(A=0|r[A>>2])){A=22;break}}if(22==(0|A))return 0|t}else{t=0,A=e;e:for(;;){for(;g=+i[A>>3],u=+i[A+8>>3],l=0|r[(A=A+16|0)>>2],s=+i[(l=0==(0|l)?e:l)>>3],a=+i[l+8>>3],g>s?(c=g,g=u):(c=s,s=g,g=a,a=u),n<s|n>c;)if(!(A=0|r[A>>2])){A=22;break e}if(a+(n-s)/(c-s)*(g-a)>(o=g==o|a==o?o+-2220446049250313e-31:o)&&(t^=1),!(A=0|r[A>>2])){A=22;break}}if(22==(0|A))return 0|t}return 0}function $e(e,t,A,i,o){A|=0,i|=0,o|=0;var a,s,g,c,u=0,l=0,I=0,C=0,h=0,f=0,d=0,B=0,p=0,E=0;if(c=D,D=D+32|0,E=c+16|0,g=c,u=0|mt(0|(e|=0),0|(t|=0),52),v(),u&=15,d=0|mt(0|A,0|i,52),v(),(0|u)!=(15&d|0))return D=c,0|(E=1);if(h=0|mt(0|e,0|t,45),v(),h&=127,f=0|mt(0|A,0|i,45),v(),d=(0|h)!=(0|(f&=127))){if(7==(0|(I=0|H(h,f))))return D=c,0|(E=2);7==(0|(C=0|H(f,h)))?m(22925,22949,151,22959):(B=I,l=C)}else B=0,l=0;a=0|_(h),s=0|_(f),r[E>>2]=0,r[E+4>>2]=0,r[E+8>>2]=0,r[E+12>>2]=0;do{if(B){if(I=(0|(f=0|r[4304+(28*h|0)+(B<<2)>>2]))>0,s)if(I){h=0,C=A,I=i;do{C=0|Oe(C,I),I=0|v(),1==(0|(l=0|ge(l)))&&(l=0|ge(1)),h=h+1|0}while((0|h)!=(0|f));f=l,h=C,C=I}else f=l,h=A,C=i;else if(I){h=0,C=A,I=i;do{C=0|Le(C,I),I=0|v(),l=0|ge(l),h=h+1|0}while((0|h)!=(0|f));f=l,h=C,C=I}else f=l,h=A,C=i;if(He(h,C,E),d||m(22972,22949,181,22959),(I=0!=(0|a))&(l=0!=(0|s))&&m(22999,22949,182,22959),I){if(l=0|Ue(e,t),0|n[22032+(7*l|0)+B>>0]){u=3;break}h=C=0|r[21200+(28*l|0)+(B<<2)>>2],p=26}else if(l){if(l=0|Ue(h,C),0|n[22032+(7*l|0)+f>>0]){u=4;break}h=0,C=0|r[21200+(28*f|0)+(l<<2)>>2],p=26}else l=0;if(26==(0|p))if((0|C)<=-1&&m(23030,22949,212,22959),(0|h)<=-1&&m(23053,22949,213,22959),(0|C)>0){I=E+4|0,l=0;do{ae(I),l=l+1|0}while((0|l)!=(0|C));l=h}else l=h;if(r[g>>2]=0,r[g+4>>2]=0,r[g+8>>2]=0,ie(g,B),0|u)for(;0|Te(u)?ne(g):re(g),(0|u)>1;)u=u+-1|0;if((0|l)>0){u=0;do{ae(g),u=u+1|0}while((0|u)!=(0|l))}q(p=E+4|0,g,p),W(p),p=50}else if(He(A,i,E),0!=(0|a)&0!=(0|s))if((0|f)!=(0|h)&&m(23077,22949,243,22959),l=0|Ue(e,t),u=0|Ue(A,i),0|n[22032+(7*l|0)+u>>0])u=5;else if((0|(l=0|r[21200+(28*l|0)+(u<<2)>>2]))>0){I=E+4|0,u=0;do{ae(I),u=u+1|0}while((0|u)!=(0|l));p=50}else p=50;else p=50}while(0);return 50==(0|p)&&(u=E+4|0,r[o>>2]=r[u>>2],r[o+4>>2]=r[u+4>>2],r[o+8>>2]=r[u+8>>2],u=0),D=c,0|(E=u)}function et(e,t,A,n){A|=0,n|=0;var i,o,a=0,s=0,g=0,c=0,u=0,l=0,I=0,C=0,h=0,f=0,d=0,B=0,p=0;if(o=D,D=D+48|0,g=o+36|0,c=o+24|0,u=o+12|0,l=o,s=0|mt(0|(e|=0),0|(t|=0),52),v(),s&=15,C=0|mt(0|e,0|t,45),v(),i=0|_(C&=127),bt(0|s,0,52),d=134225919|v(),r[(f=n)>>2]=-1,r[f+4>>2]=d,!s)return(0|r[A>>2])>1||(0|r[A+4>>2])>1||(0|r[A+8>>2])>1||127==(0|(a=0|Z(C,0|ee(A))))?(D=o,0|(d=1)):(h=0|bt(0|a,0,45),f=0|v(),f=-1040385&r[(C=n)+4>>2]|f,r[(d=n)>>2]=r[C>>2]|h,r[d+4>>2]=f,D=o,0|(d=0));for(r[g>>2]=r[A>>2],r[g+4>>2]=r[A+4>>2],r[g+8>>2]=r[A+8>>2];r[c>>2]=r[g>>2],r[c+4>>2]=r[g+4>>2],r[c+8>>2]=r[g+8>>2],0|Te(s)?(te(g),r[u>>2]=r[g>>2],r[u+4>>2]=r[g+4>>2],r[u+8>>2]=r[g+8>>2],ne(u)):(Ae(g),r[u>>2]=r[g>>2],r[u+4>>2]=r[g+4>>2],r[u+8>>2]=r[g+8>>2],re(u)),z(c,u,l),W(l),B=0|r[(f=n)>>2],f=0|r[f+4>>2],A=0|bt(7,0,0|(p=3*(15-s|0)|0)),f&=~(0|v()),p=0|bt(0|ee(l),0,0|p),f=0|v()|f,r[(d=n)>>2]=p|B&~A,r[d+4>>2]=f,(0|s)>1;)s=s+-1|0;e:do{if((0|r[g>>2])<=1&&(0|r[g+4>>2])<=1&&(0|r[g+8>>2])<=1){l=127==(0|(c=0|Z(C,s=0|ee(g))))?0:0|_(c);t:do{if(s){if(i){if(g=21408+(28*(0|Ue(e,t))|0)+(s<<2)|0,(0|(g=0|r[g>>2]))>0){A=0;do{s=0|se(s),A=A+1|0}while((0|A)!=(0|g))}if(1==(0|s)){a=3;break e}127==(0|(A=0|Z(C,s)))&&m(23104,22949,376,23134),0|_(A)?m(23147,22949,377,23134):(h=g,I=s,a=A)}else h=0,I=s,a=c;if((0|(u=0|r[4304+(28*C|0)+(I<<2)>>2]))<=-1&&m(23178,22949,384,23134),!l){if((0|h)<=-1&&m(23030,22949,417,23134),0|h){s=0,A=0|r[(g=n)>>2],g=0|r[g+4>>2];do{A=0|Me(A,g),g=0|v(),r[(p=n)>>2]=A,r[p+4>>2]=g,s=s+1|0}while((0|s)<(0|h))}if((0|u)<=0){s=54;break}for(s=0,A=0|r[(g=n)>>2],g=0|r[g+4>>2];;)if(A=0|Me(A,g),g=0|v(),r[(p=n)>>2]=A,r[p+4>>2]=g,(0|(s=s+1|0))==(0|u)){s=54;break t}}if(7==(0|(c=0|H(a,C)))&&m(22925,22949,393,23134),A=0|r[(s=n)>>2],s=0|r[s+4>>2],(0|u)>0){g=0;do{A=0|Me(A,s),s=0|v(),r[(p=n)>>2]=A,r[p+4>>2]=s,g=g+1|0}while((0|g)!=(0|u))}if(A=0|Ue(A,s),p=0|M(a),(0|(A=0|r[(p?21824:21616)+(28*c|0)+(A<<2)>>2]))<=-1&&m(23030,22949,412,23134),A){s=0,g=0|r[(c=n)>>2],c=0|r[c+4>>2];do{g=0|_e(g,c),c=0|v(),r[(p=n)>>2]=g,r[p+4>>2]=c,s=s+1|0}while((0|s)<(0|A));s=54}else s=54}else if(0!=(0|i)&0!=(0|l))if(s=21408+(28*(p=0|Ue(e,t))|0)+((0|Ue(0|r[(s=n)>>2],0|r[s+4>>2]))<<2)|0,(0|(s=0|r[s>>2]))<=-1&&m(23201,22949,433,23134),s){a=0,A=0|r[(g=n)>>2],g=0|r[g+4>>2];do{A=0|Me(A,g),g=0|v(),r[(p=n)>>2]=A,r[p+4>>2]=g,a=a+1|0}while((0|a)<(0|s));a=c,s=54}else a=c,s=55;else a=c,s=54}while(0);if(54==(0|s)&&l&&(s=55),55==(0|s)&&1==(0|Ue(0|r[(p=n)>>2],0|r[p+4>>2]))){a=4;break}d=0|r[(p=n)>>2],p=-1040385&r[p+4>>2],B=0|bt(0|a,0,45),p=0|p|v(),r[(a=n)>>2]=d|B,r[a+4>>2]=p,a=0}else a=2}while(0);return D=o,0|(p=a)}function tt(e,t){var A=0;if(!(t|=0))return 0|(A=1);A=e|=0,e=1;do{e=0|p(0==(1&t|0)?1:A,e),t>>=1,A=0|p(A,A)}while(0!=(0|t));return 0|e}function At(e,t,A){e|=0;var n,o,a=0,s=0,g=0,c=0,u=0,l=0,I=0,C=0;if(!(0|J(t|=0,A|=0)))return 0|(C=0);if(t=0|Y(t),o=+i[A>>3],a=t&(a=+i[A+8>>3])<0?a+6.283185307179586:a,(0|(C=0|r[e>>2]))<=0)return 0|(C=0);if(n=0|r[e+4>>2],t){t=0,A=-1,e=0;e:for(;;){for(I=e;c=+i[n+(I<<4)>>3],l=+i[n+(I<<4)+8>>3],g=+i[n+((e=(A+2|0)%(0|C)|0)<<4)>>3],s=+i[n+(e<<4)+8>>3],c>g?(u=c,c=l):(u=g,g=c,c=s,s=l),o<g|o>u;){if(!((0|(A=I+1|0))<(0|C))){A=22;break e}e=I,I=A,A=e}if(a=(c=c<0?c+6.283185307179586:c)==a|(l=s<0?s+6.283185307179586:s)==a?a+-2220446049250313e-31:a,((l+=(o-g)/(u-g)*(c-l))<0?l+6.283185307179586:l)>a&&(t^=1),(0|(e=I+1|0))>=(0|C)){A=22;break}A=I}if(22==(0|A))return 0|t}else{t=0,A=-1,e=0;e:for(;;){for(I=e;c=+i[n+(I<<4)>>3],l=+i[n+(I<<4)+8>>3],g=+i[n+((e=(A+2|0)%(0|C)|0)<<4)>>3],s=+i[n+(e<<4)+8>>3],c>g?(u=c,c=l):(u=g,g=c,c=s,s=l),o<g|o>u;){if(!((0|(A=I+1|0))<(0|C))){A=22;break e}e=I,I=A,A=e}if(s+(o-g)/(u-g)*(c-s)>(a=c==a|s==a?a+-2220446049250313e-31:a)&&(t^=1),(0|(e=I+1|0))>=(0|C)){A=22;break}A=I}if(22==(0|A))return 0|t}return 0}function nt(e,t){t|=0;var A,n,o,a,g,c=0,u=0,l=0,I=0,C=0,h=0,f=0,d=0,B=0,p=0,E=0,Q=0;if(!(n=0|r[(e|=0)>>2]))return r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,r[t+12>>2]=0,r[t+16>>2]=0,r[t+20>>2]=0,r[t+24>>2]=0,void(r[t+28>>2]=0);if(i[(o=t+8|0)>>3]=17976931348623157e292,i[(a=t+24|0)>>3]=17976931348623157e292,i[t>>3]=-17976931348623157e292,i[(g=t+16|0)>>3]=-17976931348623157e292,!((0|n)<=0)){for(A=0|r[e+4>>2],d=17976931348623157e292,B=-17976931348623157e292,p=0,e=-1,I=17976931348623157e292,C=17976931348623157e292,f=-17976931348623157e292,u=-17976931348623157e292,E=0;c=+i[A+(E<<4)>>3],h=+i[A+(E<<4)+8>>3],l=+i[A+(((0|(e=e+2|0))==(0|n)?0:e)<<4)+8>>3],c<I&&(i[o>>3]=c,I=c),h<C&&(i[a>>3]=h,C=h),c>f?i[t>>3]=c:c=f,h>u&&(i[g>>3]=h,u=h),d=h>0&h<d?h:d,B=h<0&h>B?h:B,p|=+s(+(h-l))>3.141592653589793,(0|(e=E+1|0))!=(0|n);)Q=E,f=c,E=e,e=Q;p&&(i[g>>3]=B,i[a>>3]=d)}}function rt(e,t){t|=0;var A,n=0,o=0,a=0,g=0,c=0,u=0,l=0,I=0,C=0,h=0,f=0,d=0,B=0,p=0,E=0,Q=0,y=0,v=0,m=0,b=0,w=0;if(B=0|r[(e|=0)>>2]){if(i[(p=t+8|0)>>3]=17976931348623157e292,i[(E=t+24|0)>>3]=17976931348623157e292,i[t>>3]=-17976931348623157e292,i[(Q=t+16|0)>>3]=-17976931348623157e292,(0|B)>0){for(a=0|r[e+4>>2],f=17976931348623157e292,d=-17976931348623157e292,o=0,n=-1,l=17976931348623157e292,I=17976931348623157e292,h=-17976931348623157e292,c=-17976931348623157e292,y=0;g=+i[a+(y<<4)>>3],C=+i[a+(y<<4)+8>>3],u=+i[a+(((0|(b=n+2|0))==(0|B)?0:b)<<4)+8>>3],g<l&&(i[p>>3]=g,l=g),C<I&&(i[E>>3]=C,I=C),g>h?i[t>>3]=g:g=h,C>c&&(i[Q>>3]=C,c=C),f=C>0&C<f?C:f,d=C<0&C>d?C:d,o|=+s(+(C-u))>3.141592653589793,(0|(n=y+1|0))!=(0|B);)b=y,h=g,y=n,n=b;o&&(i[Q>>3]=d,i[E>>3]=f)}}else r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,r[t+12>>2]=0,r[t+16>>2]=0,r[t+20>>2]=0,r[t+24>>2]=0,r[t+28>>2]=0;if(!((0|(n=0|r[(b=e+8|0)>>2]))<=0)){A=e+12|0,m=0;do{if(a=0|r[A>>2],o=m,E=t+((m=m+1|0)<<5)|0,Q=0|r[a+(o<<3)>>2]){if(i[(y=t+(m<<5)+8|0)>>3]=17976931348623157e292,i[(e=t+(m<<5)+24|0)>>3]=17976931348623157e292,i[E>>3]=-17976931348623157e292,i[(v=t+(m<<5)+16|0)>>3]=-17976931348623157e292,(0|Q)>0){for(B=0|r[a+(o<<3)+4>>2],f=17976931348623157e292,d=-17976931348623157e292,a=0,o=-1,p=0,l=17976931348623157e292,I=17976931348623157e292,C=-17976931348623157e292,c=-17976931348623157e292;g=+i[B+(p<<4)>>3],h=+i[B+(p<<4)+8>>3],u=+i[B+(((0|(o=o+2|0))==(0|Q)?0:o)<<4)+8>>3],g<l&&(i[y>>3]=g,l=g),h<I&&(i[e>>3]=h,I=h),g>C?i[E>>3]=g:g=C,h>c&&(i[v>>3]=h,c=h),f=h>0&h<f?h:f,d=h<0&h>d?h:d,a|=+s(+(h-u))>3.141592653589793,(0|(o=p+1|0))!=(0|Q);)w=p,p=o,C=g,o=w;a&&(i[v>>3]=d,i[e>>3]=f)}}else r[E>>2]=0,r[E+4>>2]=0,r[E+8>>2]=0,r[E+12>>2]=0,r[E+16>>2]=0,r[E+20>>2]=0,r[E+24>>2]=0,r[E+28>>2]=0,n=0|r[b>>2]}while((0|m)<(0|n))}}function it(e,t,A){var n=0,i=0,o=0;if(!(0|At(e|=0,t|=0,A|=0)))return 0|(i=0);if((0|r[(i=e+8|0)>>2])<=0)return 0|(i=1);for(n=e+12|0,e=0;;){if(o=e,e=e+1|0,0|At((0|r[n>>2])+(o<<3)|0,t+(e<<5)|0,A)){e=0,n=6;break}if((0|e)>=(0|r[i>>2])){e=1,n=6;break}}return 6==(0|n)?0|e:0}function ot(e,t,A,n,r){t|=0,A|=0,n|=0,r|=0;var o,a,s,g,c,u,l,I=0;g=+i[(e|=0)>>3],s=+i[t>>3]-g,a=+i[e+8>>3],o=+i[t+8>>3]-a,u=+i[A>>3],I=((I=+i[n>>3]-u)*(a-(l=+i[A+8>>3]))-(g-u)*(c=+i[n+8>>3]-l))/(s*c-o*I),i[r>>3]=g+s*I,i[r+8>>3]=a+o*I}function at(e,t){return t|=0,+i[(e|=0)>>3]!=+i[t>>3]?0|(t=0):0|(t=+i[e+8>>3]==+i[t+8>>3])}function st(e,t){t|=0;var A,n,r;return+((r=+i[(e|=0)>>3]-+i[t>>3])*r+(n=+i[e+8>>3]-+i[t+8>>3])*n+(A=+i[e+16>>3]-+i[t+16>>3])*A)}function gt(e,t,A){e|=0,A|=0;var n=0;(0|(t|=0))>0?(n=0|pt(t,4),r[e>>2]=n,n||m(23230,23253,40,23267)):r[e>>2]=0,r[e+4>>2]=t,r[e+8>>2]=0,r[e+12>>2]=A}function ct(e){var t,A,n,o=0,a=0,g=0,u=0;t=(e|=0)+4|0,A=e+12|0,n=e+8|0;e:for(;;){for(a=0|r[t>>2],o=0;;){if((0|o)>=(0|a))break e;if(g=0|r[e>>2],u=0|r[g+(o<<2)>>2])break;o=o+1|0}o=g+(~~(+s(+ +c(10,+ +(15-(0|r[A>>2])|0))*(+i[u>>3]+ +i[u+8>>3]))%+(0|a))>>>0<<2)|0,a=0|r[o>>2];t:do{if(0|a){if(g=u+32|0,(0|a)==(0|u))r[o>>2]=r[g>>2];else{if(!(o=0|r[(a=a+32|0)>>2]))break;for(;(0|o)!=(0|u);)if(!(o=0|r[(a=o+32|0)>>2]))break t;r[a>>2]=r[g>>2]}Bt(u),r[n>>2]=(0|r[n>>2])-1}}while(0)}Bt(0|r[e>>2])}function ut(e){var t,A=0,n=0;for(t=0|r[(e|=0)+4>>2],n=0;;){if((0|n)>=(0|t)){A=0,n=4;break}if(A=0|r[(0|r[e>>2])+(n<<2)>>2]){n=4;break}n=n+1|0}return 4==(0|n)?0|A:0}function lt(e,t){t|=0;var A=0,n=0,o=0,a=0;if(A=~~(+s(+ +c(10,+ +(15-(0|r[(e|=0)+12>>2])|0))*(+i[t>>3]+ +i[t+8>>3]))%+(0|r[e+4>>2]))>>>0,A=(0|r[e>>2])+(A<<2)|0,!(n=0|r[A>>2]))return 0|(a=1);a=t+32|0;do{if((0|n)!=(0|t)){if(!(A=0|r[n+32>>2]))return 0|(a=1);for(o=A;;){if((0|o)==(0|t)){o=8;break}if(!(A=0|r[o+32>>2])){A=1,o=10;break}n=o,o=A}if(8==(0|o)){r[n+32>>2]=r[a>>2];break}if(10==(0|o))return 0|A}else r[A>>2]=r[a>>2]}while(0);return Bt(t),r[(a=e+8|0)>>2]=(0|r[a>>2])-1,0|(a=0)}function It(e,t,A){e|=0,t|=0,A|=0;var n,o=0,a=0,g=0;(n=0|dt(40))||m(23283,23253,98,23296),r[n>>2]=r[t>>2],r[n+4>>2]=r[t+4>>2],r[n+8>>2]=r[t+8>>2],r[n+12>>2]=r[t+12>>2],r[(a=n+16|0)>>2]=r[A>>2],r[a+4>>2]=r[A+4>>2],r[a+8>>2]=r[A+8>>2],r[a+12>>2]=r[A+12>>2],r[n+32>>2]=0,a=~~(+s(+ +c(10,+ +(15-(0|r[e+12>>2])|0))*(+i[t>>3]+ +i[t+8>>3]))%+(0|r[e+4>>2]))>>>0,a=(0|r[e>>2])+(a<<2)|0,o=0|r[a>>2];do{if(o){for(;!(0|Se(o,t)&&0|Se(o+16|0,A));)if(a=0|r[o+32>>2],!(0|r[(o=0==(0|a)?o:a)+32>>2])){g=10;break}if(10==(0|g)){r[o+32>>2]=n;break}return Bt(n),0|(g=o)}r[a>>2]=n}while(0);return r[(g=e+8|0)>>2]=1+(0|r[g>>2]),0|(g=n)}function Ct(e,t,A){t|=0,A|=0;var n=0,o=0;if(o=~~(+s(+ +c(10,+ +(15-(0|r[(e|=0)+12>>2])|0))*(+i[t>>3]+ +i[t+8>>3]))%+(0|r[e+4>>2]))>>>0,!(o=0|r[(0|r[e>>2])+(o<<2)>>2]))return 0|(A=0);if(!A){for(e=o;;){if(0|Se(e,t)){n=10;break}if(!(e=0|r[e+32>>2])){e=0,n=10;break}}if(10==(0|n))return 0|e}for(e=o;;){if(0|Se(e,t)&&0|Se(e+16|0,A)){n=10;break}if(!(e=0|r[e+32>>2])){e=0,n=10;break}}return 10==(0|n)?0|e:0}function ht(e,t){t|=0;var A=0;if(A=~~(+s(+ +c(10,+ +(15-(0|r[(e|=0)+12>>2])|0))*(+i[t>>3]+ +i[t+8>>3]))%+(0|r[e+4>>2]))>>>0,!(e=0|r[(0|r[e>>2])+(A<<2)>>2]))return 0|(A=0);for(;;){if(0|Se(e,t)){t=5;break}if(!(e=0|r[e+32>>2])){e=0,t=5;break}}return 5==(0|t)?0|e:0}function ft(e){return 0|~~+function(e){return+ +Dt(+(e=+e))}(e=+e)}function dt(e){e|=0;var t,A=0,n=0,i=0,o=0,a=0,s=0,g=0,c=0,u=0,l=0,I=0,C=0,h=0,f=0,d=0,B=0,p=0,E=0,Q=0,y=0;t=D,D=D+16|0,C=t;do{if(e>>>0<245){if(e=(u=e>>>0<11?16:e+11&-8)>>>3,3&(n=(I=0|r[5829])>>>e)|0)return i=0|r[(n=(e=23356+((A=(1&n^1)+e|0)<<1<<2)|0)+8|0)>>2],(0|(a=0|r[(o=i+8|0)>>2]))==(0|e)?r[5829]=I&~(1<<A):(r[a+12>>2]=e,r[n>>2]=a),y=A<<3,r[i+4>>2]=3|y,r[(y=i+y+4|0)>>2]=1|r[y>>2],D=t,0|(y=o);if(u>>>0>(l=0|r[5831])>>>0){if(0|n)return A=((A=n<<e&((A=2<<e)|0-A))&0-A)-1|0,a=0|r[(e=(A=23356+((i=((n=(A>>>=g=A>>>12&16)>>>5&8)|g|(a=(A>>>=n)>>>2&4)|(e=(A>>>=a)>>>1&2)|(i=(A>>>=e)>>>1&1))+(A>>>i)|0)<<1<<2)|0)+8|0)>>2],(0|(n=0|r[(g=a+8|0)>>2]))==(0|A)?(e=I&~(1<<i),r[5829]=e):(r[n+12>>2]=A,r[e>>2]=n,e=I),s=(y=i<<3)-u|0,r[a+4>>2]=3|u,r[(o=a+u|0)+4>>2]=1|s,r[a+y>>2]=s,0|l&&(i=0|r[5834],n=23356+((A=l>>>3)<<1<<2)|0,e&(A=1<<A)?A=0|r[(e=n+8|0)>>2]:(r[5829]=e|A,A=n,e=n+8|0),r[e>>2]=i,r[A+12>>2]=i,r[i+8>>2]=A,r[i+12>>2]=n),r[5831]=s,r[5834]=o,D=t,0|(y=g);if(a=0|r[5830]){for(n=(a&0-a)-1|0,n=c=0|r[23620+(((i=(n>>>=o=n>>>12&16)>>>5&8)|o|(s=(n>>>=i)>>>2&4)|(g=(n>>>=s)>>>1&2)|(c=(n>>>=g)>>>1&1))+(n>>>c)<<2)>>2],g=c,c=(-8&r[c+4>>2])-u|0;(e=0|r[n+16>>2])||(e=0|r[n+20>>2]);)n=e,g=(o=(s=(-8&r[e+4>>2])-u|0)>>>0<c>>>0)?e:g,c=o?s:c;if((s=g+u|0)>>>0>g>>>0){o=0|r[g+24>>2],A=0|r[g+12>>2];do{if((0|A)==(0|g)){if(!(A=0|r[(e=g+20|0)>>2])&&!(A=0|r[(e=g+16|0)>>2])){n=0;break}for(;;)if(n=0|r[(i=A+20|0)>>2])A=n,e=i;else{if(!(n=0|r[(i=A+16|0)>>2]))break;A=n,e=i}r[e>>2]=0,n=A}else n=0|r[g+8>>2],r[n+12>>2]=A,r[A+8>>2]=n,n=A}while(0);do{if(0|o){if(A=0|r[g+28>>2],(0|g)==(0|r[(e=23620+(A<<2)|0)>>2])){if(r[e>>2]=n,!n){r[5830]=a&~(1<<A);break}}else if(r[((0|r[(y=o+16|0)>>2])==(0|g)?y:o+20|0)>>2]=n,!n)break;r[n+24>>2]=o,0|(A=0|r[g+16>>2])&&(r[n+16>>2]=A,r[A+24>>2]=n),0|(A=0|r[g+20>>2])&&(r[n+20>>2]=A,r[A+24>>2]=n)}}while(0);return c>>>0<16?(y=c+u|0,r[g+4>>2]=3|y,r[(y=g+y+4|0)>>2]=1|r[y>>2]):(r[g+4>>2]=3|u,r[s+4>>2]=1|c,r[s+c>>2]=c,0|l&&(i=0|r[5834],n=23356+((A=l>>>3)<<1<<2)|0,(A=1<<A)&I?A=0|r[(e=n+8|0)>>2]:(r[5829]=A|I,A=n,e=n+8|0),r[e>>2]=i,r[A+12>>2]=i,r[i+8>>2]=A,r[i+12>>2]=n),r[5831]=c,r[5834]=s),D=t,0|(y=g+8|0)}I=u}else I=u}else I=u}else if(e>>>0<=4294967231)if(u=-8&(e=e+11|0),i=0|r[5830]){o=0-u|0,c=(e>>>=8)?u>>>0>16777215?31:u>>>((c=14-((g=((d=e<<(I=(e+1048320|0)>>>16&8))+520192|0)>>>16&4)|I|(c=((d<<=g)+245760|0)>>>16&2))+(d<<c>>>15)|0)+7|0)&1|c<<1:0,n=0|r[23620+(c<<2)>>2];e:do{if(n)for(e=0,g=u<<(31==(0|c)?0:25-(c>>>1)|0),a=0;;){if((s=(-8&r[n+4>>2])-u|0)>>>0<o>>>0){if(!s){e=n,o=0,d=65;break e}e=n,o=s}if(a=0==(0|(d=0|r[n+20>>2]))|(0|d)==(0|(n=0|r[n+16+(g>>>31<<2)>>2]))?a:d,!n){n=a,d=61;break}g<<=1}else n=0,e=0,d=61}while(0);if(61==(0|d)){if(0==(0|n)&0==(0|e)){if(!(e=((e=2<<c)|0-e)&i)){I=u;break}I=(e&0-e)-1|0,e=0,n=0|r[23620+(((a=(I>>>=s=I>>>12&16)>>>5&8)|s|(g=(I>>>=a)>>>2&4)|(c=(I>>>=g)>>>1&2)|(n=(I>>>=c)>>>1&1))+(I>>>n)<<2)>>2]}n?d=65:(g=e,s=o)}if(65==(0|d))for(a=n;;){if(o=(n=(I=(-8&r[a+4>>2])-u|0)>>>0<o>>>0)?I:o,e=n?a:e,(n=0|r[a+16>>2])||(n=0|r[a+20>>2]),!n){g=e,s=o;break}a=n}if(0!=(0|g)&&s>>>0<((0|r[5831])-u|0)>>>0&&(l=g+u|0)>>>0>g>>>0){a=0|r[g+24>>2],A=0|r[g+12>>2];do{if((0|A)==(0|g)){if(!(A=0|r[(e=g+20|0)>>2])&&!(A=0|r[(e=g+16|0)>>2])){A=0;break}for(;;)if(n=0|r[(o=A+20|0)>>2])A=n,e=o;else{if(!(n=0|r[(o=A+16|0)>>2]))break;A=n,e=o}r[e>>2]=0}else y=0|r[g+8>>2],r[y+12>>2]=A,r[A+8>>2]=y}while(0);do{if(a){if(e=0|r[g+28>>2],(0|g)==(0|r[(n=23620+(e<<2)|0)>>2])){if(r[n>>2]=A,!A){i&=~(1<<e),r[5830]=i;break}}else if(r[((0|r[(y=a+16|0)>>2])==(0|g)?y:a+20|0)>>2]=A,!A)break;r[A+24>>2]=a,0|(e=0|r[g+16>>2])&&(r[A+16>>2]=e,r[e+24>>2]=A),(e=0|r[g+20>>2])&&(r[A+20>>2]=e,r[e+24>>2]=A)}}while(0);e:do{if(s>>>0<16)y=s+u|0,r[g+4>>2]=3|y,r[(y=g+y+4|0)>>2]=1|r[y>>2];else{if(r[g+4>>2]=3|u,r[l+4>>2]=1|s,r[l+s>>2]=s,A=s>>>3,s>>>0<256){n=23356+(A<<1<<2)|0,(e=0|r[5829])&(A=1<<A)?A=0|r[(e=n+8|0)>>2]:(r[5829]=e|A,A=n,e=n+8|0),r[e>>2]=l,r[A+12>>2]=l,r[l+8>>2]=A,r[l+12>>2]=n;break}if(A=23620+((n=(A=s>>>8)?s>>>0>16777215?31:s>>>((n=14-((E=((y=A<<(Q=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|Q|(n=((y<<=E)+245760|0)>>>16&2))+(y<<n>>>15)|0)+7|0)&1|n<<1:0)<<2)|0,r[l+28>>2]=n,r[(e=l+16|0)+4>>2]=0,r[e>>2]=0,!(i&(e=1<<n))){r[5830]=i|e,r[A>>2]=l,r[l+24>>2]=A,r[l+12>>2]=l,r[l+8>>2]=l;break}A=0|r[A>>2];t:do{if((-8&r[A+4>>2]|0)!=(0|s)){for(i=s<<(31==(0|n)?0:25-(n>>>1)|0);e=0|r[(n=A+16+(i>>>31<<2)|0)>>2];){if((-8&r[e+4>>2]|0)==(0|s)){A=e;break t}i<<=1,A=e}r[n>>2]=l,r[l+24>>2]=A,r[l+12>>2]=l,r[l+8>>2]=l;break e}}while(0);y=0|r[(Q=A+8|0)>>2],r[y+12>>2]=l,r[Q>>2]=l,r[l+8>>2]=y,r[l+12>>2]=A,r[l+24>>2]=0}}while(0);return D=t,0|(y=g+8|0)}I=u}else I=u;else I=-1}while(0);if((n=0|r[5831])>>>0>=I>>>0)return A=n-I|0,e=0|r[5834],A>>>0>15?(y=e+I|0,r[5834]=y,r[5831]=A,r[y+4>>2]=1|A,r[e+n>>2]=A,r[e+4>>2]=3|I):(r[5831]=0,r[5834]=0,r[e+4>>2]=3|n,r[(y=e+n+4|0)>>2]=1|r[y>>2]),D=t,0|(y=e+8|0);if((s=0|r[5832])>>>0>I>>>0)return E=s-I|0,r[5832]=E,Q=(y=0|r[5835])+I|0,r[5835]=Q,r[Q+4>>2]=1|E,r[y+4>>2]=3|I,D=t,0|(y=y+8|0);if(0|r[5947]?e=0|r[5949]:(r[5949]=4096,r[5948]=4096,r[5950]=-1,r[5951]=-1,r[5952]=0,r[5940]=0,r[5947]=-16&C^1431655768,e=4096),g=I+48|0,(u=(a=e+(c=I+47|0)|0)&(o=0-e|0))>>>0<=I>>>0)return D=t,0|(y=0);if(0|(e=0|r[5939])&&(C=(l=0|r[5937])+u|0)>>>0<=l>>>0|C>>>0>e>>>0)return D=t,0|(y=0);e:do{if(4&r[5940])A=0,d=143;else{n=0|r[5835];t:do{if(n){for(i=23764;!((C=0|r[i>>2])>>>0<=n>>>0&&(C+(0|r[i+4>>2])|0)>>>0>n>>>0);){if(!(e=0|r[i+8>>2])){d=128;break t}i=e}if((A=a-s&o)>>>0<2147483647)if((0|(e=0|Gt(0|A)))==((0|r[i>>2])+(0|r[i+4>>2])|0)){if(-1!=(0|e)){s=A,a=e,d=145;break e}}else i=e,d=136;else A=0}else d=128}while(0);do{if(128==(0|d))if(-1!=(0|(n=0|Gt(0)))&&(A=n,f=(A=(0==((f=(h=0|r[5948])+-1|0)&A|0)?0:(f+A&0-h)-A|0)+u|0)+(h=0|r[5937])|0,A>>>0>I>>>0&A>>>0<2147483647)){if(0|(C=0|r[5939])&&f>>>0<=h>>>0|f>>>0>C>>>0){A=0;break}if((0|(e=0|Gt(0|A)))==(0|n)){s=A,a=n,d=145;break e}i=e,d=136}else A=0}while(0);do{if(136==(0|d)){if(n=0-A|0,!(g>>>0>A>>>0&A>>>0<2147483647&-1!=(0|i))){if(-1==(0|i)){A=0;break}s=A,a=i,d=145;break e}if((e=c-A+(e=0|r[5949])&0-e)>>>0>=2147483647){s=A,a=i,d=145;break e}if(-1==(0|Gt(0|e))){Gt(0|n),A=0;break}s=e+A|0,a=i,d=145;break e}}while(0);r[5940]=4|r[5940],d=143}}while(0);if(143==(0|d)&&u>>>0<2147483647&&!(-1==(0|(E=0|Gt(0|u)))|1^(p=(B=(f=0|Gt(0))-E|0)>>>0>(I+40|0)>>>0)|E>>>0<f>>>0&-1!=(0|E)&-1!=(0|f)^1)&&(s=p?B:A,a=E,d=145),145==(0|d)){A=(0|r[5937])+s|0,r[5937]=A,A>>>0>(0|r[5938])>>>0&&(r[5938]=A),c=0|r[5835];e:do{if(c){for(A=23764;;){if((0|a)==((e=0|r[A>>2])+(n=0|r[A+4>>2])|0)){d=154;break}if(!(i=0|r[A+8>>2]))break;A=i}if(154==(0|d)&&(Q=A+4|0,0==(8&r[A+12>>2]|0))&&a>>>0>c>>>0&e>>>0<=c>>>0){r[Q>>2]=n+s,Q=c+(E=0==(7&(E=c+8|0)|0)?0:0-E&7)|0,E=(y=(0|r[5832])+s|0)-E|0,r[5835]=Q,r[5832]=E,r[Q+4>>2]=1|E,r[c+y+4>>2]=40,r[5836]=r[5951];break}for(a>>>0<(0|r[5833])>>>0&&(r[5833]=a),n=a+s|0,A=23764;;){if((0|r[A>>2])==(0|n)){d=162;break}if(!(e=0|r[A+8>>2]))break;A=e}if(162==(0|d)&&0==(8&r[A+12>>2]|0)){r[A>>2]=a,r[(l=A+4|0)>>2]=(0|r[l>>2])+s,u=(l=a+(0==(7&(l=a+8|0)|0)?0:0-l&7)|0)+I|0,g=(A=n+(0==(7&(A=n+8|0)|0)?0:0-A&7)|0)-l-I|0,r[l+4>>2]=3|I;t:do{if((0|c)==(0|A))y=(0|r[5832])+g|0,r[5832]=y,r[5835]=u,r[u+4>>2]=1|y;else{if((0|r[5834])==(0|A)){y=(0|r[5831])+g|0,r[5831]=y,r[5834]=u,r[u+4>>2]=1|y,r[u+y>>2]=y;break}if(1==(3&(e=0|r[A+4>>2])|0)){s=-8&e,i=e>>>3;A:do{if(e>>>0<256){if(e=0|r[A+8>>2],(0|(n=0|r[A+12>>2]))==(0|e)){r[5829]=r[5829]&~(1<<i);break}r[e+12>>2]=n,r[n+8>>2]=e;break}a=0|r[A+24>>2],e=0|r[A+12>>2];do{if((0|e)==(0|A)){if(e=0|r[(i=(n=A+16|0)+4|0)>>2])n=i;else if(!(e=0|r[n>>2])){e=0;break}for(;;)if(i=0|r[(o=e+20|0)>>2])e=i,n=o;else{if(!(i=0|r[(o=e+16|0)>>2]))break;e=i,n=o}r[n>>2]=0}else y=0|r[A+8>>2],r[y+12>>2]=e,r[e+8>>2]=y}while(0);if(!a)break;i=23620+((n=0|r[A+28>>2])<<2)|0;do{if((0|r[i>>2])==(0|A)){if(r[i>>2]=e,0|e)break;r[5830]=r[5830]&~(1<<n);break A}if(r[((0|r[(y=a+16|0)>>2])==(0|A)?y:a+20|0)>>2]=e,!e)break A}while(0);if(r[e+24>>2]=a,0|(i=0|r[(n=A+16|0)>>2])&&(r[e+16>>2]=i,r[i+24>>2]=e),!(n=0|r[n+4>>2]))break;r[e+20>>2]=n,r[n+24>>2]=e}while(0);A=A+s|0,o=s+g|0}else o=g;if(r[(A=A+4|0)>>2]=-2&r[A>>2],r[u+4>>2]=1|o,r[u+o>>2]=o,A=o>>>3,o>>>0<256){n=23356+(A<<1<<2)|0,(e=0|r[5829])&(A=1<<A)?A=0|r[(e=n+8|0)>>2]:(r[5829]=e|A,A=n,e=n+8|0),r[e>>2]=u,r[A+12>>2]=u,r[u+8>>2]=A,r[u+12>>2]=n;break}A=o>>>8;do{if(A){if(o>>>0>16777215){i=31;break}i=o>>>((i=14-((E=((y=A<<(Q=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|Q|(i=((y<<=E)+245760|0)>>>16&2))+(y<<i>>>15)|0)+7|0)&1|i<<1}else i=0}while(0);if(A=23620+(i<<2)|0,r[u+28>>2]=i,r[(e=u+16|0)+4>>2]=0,r[e>>2]=0,!((e=0|r[5830])&(n=1<<i))){r[5830]=e|n,r[A>>2]=u,r[u+24>>2]=A,r[u+12>>2]=u,r[u+8>>2]=u;break}A=0|r[A>>2];A:do{if((-8&r[A+4>>2]|0)!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1)|0);e=0|r[(n=A+16+(i>>>31<<2)|0)>>2];){if((-8&r[e+4>>2]|0)==(0|o)){A=e;break A}i<<=1,A=e}r[n>>2]=u,r[u+24>>2]=A,r[u+12>>2]=u,r[u+8>>2]=u;break t}}while(0);y=0|r[(Q=A+8|0)>>2],r[y+12>>2]=u,r[Q>>2]=u,r[u+8>>2]=y,r[u+12>>2]=A,r[u+24>>2]=0}}while(0);return D=t,0|(y=l+8|0)}for(A=23764;!((e=0|r[A>>2])>>>0<=c>>>0&&(y=e+(0|r[A+4>>2])|0)>>>0>c>>>0);)A=0|r[A+8>>2];A=(e=(e=(o=y+-47|0)+(0==(7&(e=o+8|0)|0)?0:0-e&7)|0)>>>0<(o=c+16|0)>>>0?c:e)+8|0,Q=a+(E=0==(7&(E=a+8|0)|0)?0:0-E&7)|0,E=(n=s+-40|0)-E|0,r[5835]=Q,r[5832]=E,r[Q+4>>2]=1|E,r[a+n+4>>2]=40,r[5836]=r[5951],r[(n=e+4|0)>>2]=27,r[A>>2]=r[5941],r[A+4>>2]=r[5942],r[A+8>>2]=r[5943],r[A+12>>2]=r[5944],r[5941]=a,r[5942]=s,r[5944]=0,r[5943]=A,A=e+24|0;do{Q=A,r[(A=A+4|0)>>2]=7}while((Q+8|0)>>>0<y>>>0);if((0|e)!=(0|c)){if(a=e-c|0,r[n>>2]=-2&r[n>>2],r[c+4>>2]=1|a,r[e>>2]=a,A=a>>>3,a>>>0<256){n=23356+(A<<1<<2)|0,(e=0|r[5829])&(A=1<<A)?A=0|r[(e=n+8|0)>>2]:(r[5829]=e|A,A=n,e=n+8|0),r[e>>2]=c,r[A+12>>2]=c,r[c+8>>2]=A,r[c+12>>2]=n;break}if(n=23620+((i=(A=a>>>8)?a>>>0>16777215?31:a>>>((i=14-((E=((y=A<<(Q=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|Q|(i=((y<<=E)+245760|0)>>>16&2))+(y<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,r[c+28>>2]=i,r[c+20>>2]=0,r[o>>2]=0,!((A=0|r[5830])&(e=1<<i))){r[5830]=A|e,r[n>>2]=c,r[c+24>>2]=n,r[c+12>>2]=c,r[c+8>>2]=c;break}A=0|r[n>>2];t:do{if((-8&r[A+4>>2]|0)!=(0|a)){for(i=a<<(31==(0|i)?0:25-(i>>>1)|0);e=0|r[(n=A+16+(i>>>31<<2)|0)>>2];){if((-8&r[e+4>>2]|0)==(0|a)){A=e;break t}i<<=1,A=e}r[n>>2]=c,r[c+24>>2]=A,r[c+12>>2]=c,r[c+8>>2]=c;break e}}while(0);y=0|r[(Q=A+8|0)>>2],r[y+12>>2]=c,r[Q>>2]=c,r[c+8>>2]=y,r[c+12>>2]=A,r[c+24>>2]=0}}else 0==(0|(y=0|r[5833]))|a>>>0<y>>>0&&(r[5833]=a),r[5941]=a,r[5942]=s,r[5944]=0,r[5838]=r[5947],r[5837]=-1,r[5842]=23356,r[5841]=23356,r[5844]=23364,r[5843]=23364,r[5846]=23372,r[5845]=23372,r[5848]=23380,r[5847]=23380,r[5850]=23388,r[5849]=23388,r[5852]=23396,r[5851]=23396,r[5854]=23404,r[5853]=23404,r[5856]=23412,r[5855]=23412,r[5858]=23420,r[5857]=23420,r[5860]=23428,r[5859]=23428,r[5862]=23436,r[5861]=23436,r[5864]=23444,r[5863]=23444,r[5866]=23452,r[5865]=23452,r[5868]=23460,r[5867]=23460,r[5870]=23468,r[5869]=23468,r[5872]=23476,r[5871]=23476,r[5874]=23484,r[5873]=23484,r[5876]=23492,r[5875]=23492,r[5878]=23500,r[5877]=23500,r[5880]=23508,r[5879]=23508,r[5882]=23516,r[5881]=23516,r[5884]=23524,r[5883]=23524,r[5886]=23532,r[5885]=23532,r[5888]=23540,r[5887]=23540,r[5890]=23548,r[5889]=23548,r[5892]=23556,r[5891]=23556,r[5894]=23564,r[5893]=23564,r[5896]=23572,r[5895]=23572,r[5898]=23580,r[5897]=23580,r[5900]=23588,r[5899]=23588,r[5902]=23596,r[5901]=23596,r[5904]=23604,r[5903]=23604,Q=a+(E=0==(7&(E=a+8|0)|0)?0:0-E&7)|0,E=(y=s+-40|0)-E|0,r[5835]=Q,r[5832]=E,r[Q+4>>2]=1|E,r[a+y+4>>2]=40,r[5836]=r[5951]}while(0);if((A=0|r[5832])>>>0>I>>>0)return E=A-I|0,r[5832]=E,Q=(y=0|r[5835])+I|0,r[5835]=Q,r[Q+4>>2]=1|E,r[y+4>>2]=3|I,D=t,0|(y=y+8|0)}return r[(y=23312)>>2]=12,D=t,0|(y=0)}function Bt(e){var t=0,A=0,n=0,i=0,o=0,a=0,s=0,g=0;if(e|=0){A=e+-8|0,i=0|r[5833],g=A+(t=-8&(e=0|r[e+-4>>2]))|0;do{if(1&e)s=A,a=A;else{if(n=0|r[A>>2],!(3&e))return;if(o=n+t|0,(a=A+(0-n)|0)>>>0<i>>>0)return;if((0|r[5834])==(0|a)){if(3!=(3&(t=0|r[(e=g+4|0)>>2])|0)){s=a,t=o;break}return r[5831]=o,r[e>>2]=-2&t,r[a+4>>2]=1|o,void(r[a+o>>2]=o)}if(A=n>>>3,n>>>0<256){if(e=0|r[a+8>>2],(0|(t=0|r[a+12>>2]))==(0|e)){r[5829]=r[5829]&~(1<<A),s=a,t=o;break}r[e+12>>2]=t,r[t+8>>2]=e,s=a,t=o;break}i=0|r[a+24>>2],e=0|r[a+12>>2];do{if((0|e)==(0|a)){if(e=0|r[(A=(t=a+16|0)+4|0)>>2])t=A;else if(!(e=0|r[t>>2])){e=0;break}for(;;)if(A=0|r[(n=e+20|0)>>2])e=A,t=n;else{if(!(A=0|r[(n=e+16|0)>>2]))break;e=A,t=n}r[t>>2]=0}else s=0|r[a+8>>2],r[s+12>>2]=e,r[e+8>>2]=s}while(0);if(i){if(t=0|r[a+28>>2],(0|r[(A=23620+(t<<2)|0)>>2])==(0|a)){if(r[A>>2]=e,!e){r[5830]=r[5830]&~(1<<t),s=a,t=o;break}}else if(r[((0|r[(s=i+16|0)>>2])==(0|a)?s:i+20|0)>>2]=e,!e){s=a,t=o;break}r[e+24>>2]=i,0|(A=0|r[(t=a+16|0)>>2])&&(r[e+16>>2]=A,r[A+24>>2]=e),(t=0|r[t+4>>2])?(r[e+20>>2]=t,r[t+24>>2]=e,s=a,t=o):(s=a,t=o)}else s=a,t=o}}while(0);if(!(a>>>0>=g>>>0)&&1&(n=0|r[(e=g+4|0)>>2])){if(2&n)r[e>>2]=-2&n,r[s+4>>2]=1|t,r[a+t>>2]=t,i=t;else{if((0|r[5835])==(0|g)){if(g=(0|r[5832])+t|0,r[5832]=g,r[5835]=s,r[s+4>>2]=1|g,(0|s)!=(0|r[5834]))return;return r[5834]=0,void(r[5831]=0)}if((0|r[5834])==(0|g))return g=(0|r[5831])+t|0,r[5831]=g,r[5834]=a,r[s+4>>2]=1|g,void(r[a+g>>2]=g);i=(-8&n)+t|0,A=n>>>3;do{if(n>>>0<256){if(t=0|r[g+8>>2],(0|(e=0|r[g+12>>2]))==(0|t)){r[5829]=r[5829]&~(1<<A);break}r[t+12>>2]=e,r[e+8>>2]=t;break}o=0|r[g+24>>2],e=0|r[g+12>>2];do{if((0|e)==(0|g)){if(e=0|r[(A=(t=g+16|0)+4|0)>>2])t=A;else if(!(e=0|r[t>>2])){A=0;break}for(;;)if(A=0|r[(n=e+20|0)>>2])e=A,t=n;else{if(!(A=0|r[(n=e+16|0)>>2]))break;e=A,t=n}r[t>>2]=0,A=e}else A=0|r[g+8>>2],r[A+12>>2]=e,r[e+8>>2]=A,A=e}while(0);if(0|o){if(e=0|r[g+28>>2],(0|r[(t=23620+(e<<2)|0)>>2])==(0|g)){if(r[t>>2]=A,!A){r[5830]=r[5830]&~(1<<e);break}}else if(r[((0|r[(n=o+16|0)>>2])==(0|g)?n:o+20|0)>>2]=A,!A)break;r[A+24>>2]=o,0|(t=0|r[(e=g+16|0)>>2])&&(r[A+16>>2]=t,r[t+24>>2]=A),0|(e=0|r[e+4>>2])&&(r[A+20>>2]=e,r[e+24>>2]=A)}}while(0);if(r[s+4>>2]=1|i,r[a+i>>2]=i,(0|s)==(0|r[5834]))return void(r[5831]=i)}if(e=i>>>3,i>>>0<256)return A=23356+(e<<1<<2)|0,(t=0|r[5829])&(e=1<<e)?e=0|r[(t=A+8|0)>>2]:(r[5829]=t|e,e=A,t=A+8|0),r[t>>2]=s,r[e+12>>2]=s,r[s+8>>2]=e,void(r[s+12>>2]=A);e=23620+((n=(e=i>>>8)?i>>>0>16777215?31:i>>>((n=14-((o=((g=e<<(a=(e+1048320|0)>>>16&8))+520192|0)>>>16&4)|a|(n=((g<<=o)+245760|0)>>>16&2))+(g<<n>>>15)|0)+7|0)&1|n<<1:0)<<2)|0,r[s+28>>2]=n,r[s+20>>2]=0,r[s+16>>2]=0,t=0|r[5830],A=1<<n;e:do{if(t&A){e=0|r[e>>2];t:do{if((-8&r[e+4>>2]|0)!=(0|i)){for(n=i<<(31==(0|n)?0:25-(n>>>1)|0);t=0|r[(A=e+16+(n>>>31<<2)|0)>>2];){if((-8&r[t+4>>2]|0)==(0|i)){e=t;break t}n<<=1,e=t}r[A>>2]=s,r[s+24>>2]=e,r[s+12>>2]=s,r[s+8>>2]=s;break e}}while(0);g=0|r[(a=e+8|0)>>2],r[g+12>>2]=s,r[a>>2]=s,r[s+8>>2]=g,r[s+12>>2]=e,r[s+24>>2]=0}else r[5830]=t|A,r[e>>2]=s,r[s+24>>2]=e,r[s+12>>2]=s,r[s+8>>2]=s}while(0);if(g=(0|r[5837])-1|0,r[5837]=g,!(0|g)){for(e=23772;e=0|r[e>>2];)e=e+8|0;r[5837]=-1}}}}function pt(e,t){t|=0;var A=0;return(e|=0)?(A=0|p(t,e),(t|e)>>>0>65535&&(A=(0|(A>>>0)/(e>>>0))==(0|t)?A:-1)):A=0,(e=0|dt(A))&&3&r[e+-4>>2]?(Rt(0|e,0,0|A),0|e):0|e}function Et(e,t,A,n){return 0|(y(0|(n=(t|=0)-(n|=0)-((A|=0)>>>0>(e|=0)>>>0|0)>>>0)),e-A>>>0|0)}function Qt(e){return 0|((e|=0)?31-(0|Q(e^e-1))|0:32)}function yt(e,t,A,n,i){i|=0;var o=0,a=0,s=0,g=0,c=0,u=0,l=0,I=0,C=0,h=0;if(u=e|=0,a=A|=0,s=I=n|=0,!(c=g=t|=0))return o=0!=(0|i),s?o?(r[i>>2]=0|e,r[i+4>>2]=0&t,i=0,0|(y(0|(I=0)),i)):(i=0,0|(y(0|(I=0)),i)):(o&&(r[i>>2]=(u>>>0)%(a>>>0),r[i+4>>2]=0),i=(u>>>0)/(a>>>0)>>>0,0|(y(0|(I=0)),i));o=0==(0|s);do{if(a){if(!o){if((o=(0|Q(0|s))-(0|Q(0|c))|0)>>>0<=31){a=l=o+1|0,e=u>>>(l>>>0)&(t=o-31>>31)|c<<(s=31-o|0),t&=c>>>(l>>>0),o=0,s=u<<s;break}return i?(r[i>>2]=0|e,r[i+4>>2]=g|0&t,i=0,0|(y(0|(I=0)),i)):(i=0,0|(y(0|(I=0)),i))}if((o=a-1|0)&a|0){a=s=33+(0|Q(0|a))-(0|Q(0|c))|0,e=(l=32-s|0)-1>>31&c>>>((C=s-32|0)>>>0)|(c<<l|u>>>(s>>>0))&(t=C>>31),t&=c>>>(s>>>0),o=u<<(h=64-s|0)&(g=l>>31),s=(c<<h|u>>>(C>>>0))&g|u<<l&s-33>>31;break}return 0|i&&(r[i>>2]=o&u,r[i+4>>2]=0),1==(0|a)?(h=0|e,0|(y(0|(C=g|0&t)),h)):(C=c>>>((h=0|Qt(0|a))>>>0)|0,h=c<<32-h|u>>>(h>>>0)|0,0|(y(0|C),h))}if(o)return 0|i&&(r[i>>2]=(c>>>0)%(a>>>0),r[i+4>>2]=0),h=(c>>>0)/(a>>>0)>>>0,0|(y(0|(C=0)),h);if(!u)return 0|i&&(r[i>>2]=0,r[i+4>>2]=(c>>>0)%(s>>>0)),h=(c>>>0)/(s>>>0)>>>0,0|(y(0|(C=0)),h);if(!((o=s-1|0)&s))return 0|i&&(r[i>>2]=0|e,r[i+4>>2]=o&c|0&t),C=0,h=c>>>((0|Qt(0|s))>>>0),0|(y(0|C),h);if((o=(0|Q(0|s))-(0|Q(0|c))|0)>>>0<=30){a=t=o+1|0,e=c<<(s=31-o|0)|u>>>(t>>>0),t=c>>>(t>>>0),o=0,s=u<<s;break}return i?(r[i>>2]=0|e,r[i+4>>2]=g|0&t,h=0,0|(y(0|(C=0)),h)):(h=0,0|(y(0|(C=0)),h))}while(0);if(a){c=0|function(e,t,A,n){return 0|(y((t|=0)+(n|=0)+((A=(e|=0)+(A|=0)>>>0)>>>0<e>>>0|0)>>>0|0),0|A)}(0|(l=0|A),0|(u=I|0&n),-1,-1),A=0|v(),g=s,s=0;do{n=g,g=o>>>31|g<<1,o=s|o<<1,Et(0|c,0|A,0|(n=e<<1|n>>>31|0),0|(I=e>>>31|t<<1|0)),s=1&(C=(h=0|v())>>31|((0|h)<0?-1:0)<<1),e=0|Et(0|n,0|I,C&l|0,(((0|h)<0?-1:0)>>31|((0|h)<0?-1:0)<<1)&u|0),t=0|v(),a=a-1|0}while(0!=(0|a));c=g,g=0}else c=s,g=0,s=0;return a=0,0|i&&(r[i>>2]=e,r[i+4>>2]=t),h=-2&(o<<1|0)|s,0|(y(0|(C=(0|o)>>>31|(c|a)<<1|0&(a<<1|o>>>31)|g)),h)}function vt(e,t,A,n){var i,o;return o=D,D=D+16|0,yt(e|=0,t|=0,A|=0,n|=0,i=0|o),D=o,0|(y(0|r[i+4>>2]),0|r[i>>2])}function mt(e,t,A){return e|=0,t|=0,(0|(A|=0))<32?(y(t>>>A|0),e>>>A|(t&(1<<A)-1)<<32-A):(y(0),t>>>A-32|0)}function bt(e,t,A){return e|=0,t|=0,(0|(A|=0))<32?(y(t<<A|(e&(1<<A)-1<<32-A)>>>32-A|0),e<<A):(y(e<<A-32|0),0)}function wt(e,t){return t=+t,(e=+e)!=e?+t:t!=t?+e:+E(+e,+t)}function St(e){return(e=+e)>=0?+a(e+.5):+B(e-.5)}function Ft(e,t,A){e|=0,t|=0;var i,o,a=0;if((0|(A|=0))>=8192)return S(0|e,0|t,0|A),0|e;if(o=0|e,i=e+A|0,(3&e)==(3&t)){for(;3&e;){if(!A)return 0|o;n[e>>0]=0|n[t>>0],e=e+1|0,t=t+1|0,A=A-1|0}for(a=(A=-4&i|0)-64|0;(0|e)<=(0|a);)r[e>>2]=r[t>>2],r[e+4>>2]=r[t+4>>2],r[e+8>>2]=r[t+8>>2],r[e+12>>2]=r[t+12>>2],r[e+16>>2]=r[t+16>>2],r[e+20>>2]=r[t+20>>2],r[e+24>>2]=r[t+24>>2],r[e+28>>2]=r[t+28>>2],r[e+32>>2]=r[t+32>>2],r[e+36>>2]=r[t+36>>2],r[e+40>>2]=r[t+40>>2],r[e+44>>2]=r[t+44>>2],r[e+48>>2]=r[t+48>>2],r[e+52>>2]=r[t+52>>2],r[e+56>>2]=r[t+56>>2],r[e+60>>2]=r[t+60>>2],e=e+64|0,t=t+64|0;for(;(0|e)<(0|A);)r[e>>2]=r[t>>2],e=e+4|0,t=t+4|0}else for(A=i-4|0;(0|e)<(0|A);)n[e>>0]=0|n[t>>0],n[e+1>>0]=0|n[t+1>>0],n[e+2>>0]=0|n[t+2>>0],n[e+3>>0]=0|n[t+3>>0],e=e+4|0,t=t+4|0;for(;(0|e)<(0|i);)n[e>>0]=0|n[t>>0],e=e+1|0,t=t+1|0;return 0|o}function Rt(e,t,A){t|=0;var i,o=0,a=0,s=0;if(i=(e|=0)+(A|=0)|0,t&=255,(0|A)>=67){for(;3&e;)n[e>>0]=t,e=e+1|0;for(s=t|t<<8|t<<16|t<<24,a=(o=-4&i|0)-64|0;(0|e)<=(0|a);)r[e>>2]=s,r[e+4>>2]=s,r[e+8>>2]=s,r[e+12>>2]=s,r[e+16>>2]=s,r[e+20>>2]=s,r[e+24>>2]=s,r[e+28>>2]=s,r[e+32>>2]=s,r[e+36>>2]=s,r[e+40>>2]=s,r[e+44>>2]=s,r[e+48>>2]=s,r[e+52>>2]=s,r[e+56>>2]=s,r[e+60>>2]=s,e=e+64|0;for(;(0|e)<(0|o);)r[e>>2]=s,e=e+4|0}for(;(0|e)<(0|i);)n[e>>0]=t,e=e+1|0;return i-A|0}function Dt(e){return(e=+e)>=0?+a(e+.5):+B(e-.5)}function Gt(e){e|=0;var t,A,n;return n=0|w(),(0|e)>0&(0|(t=(A=0|r[o>>2])+e|0))<(0|A)|(0|t)<0?(R(0|t),b(12),-1):(0|t)>(0|n)&&!(0|F(0|t))?(b(12),-1):(r[o>>2]=t,0|A)}return{___uremdi3:vt,_bitshift64Lshr:mt,_bitshift64Shl:bt,_calloc:pt,_cellAreaKm2:function(e,t){var A,n,i,o=0;if(i=D,D=D+192|0,n=i,Je(e|=0,t|=0,A=i+168|0),je(e,t,n),(0|(t=0|r[n>>2]))>0){if(o=+Re(n+8|0,n+8+((1!=(0|t)&1)<<4)|0,A)+0,1!=(0|t)){e=1;do{o+=+Re(n+8+(e<<4)|0,n+8+(((0|(e=e+1|0))%(0|t)|0)<<4)|0,A)}while((0|e)<(0|t))}}else o=0;return D=i,6371.007180918475*o*6371.007180918475},_cellAreaM2:function(e,t){var A,n,i,o=0;if(i=D,D=D+192|0,n=i,Je(e|=0,t|=0,A=i+168|0),je(e,t,n),(0|(t=0|r[n>>2]))>0){if(o=+Re(n+8|0,n+8+((1!=(0|t)&1)<<4)|0,A)+0,1!=(0|t)){e=1;do{o+=+Re(n+8+(e<<4)|0,n+8+(((0|(e=e+1|0))%(0|t)|0)<<4)|0,A)}while((0|e)<(0|t))}}else o=0;return D=i,6371.007180918475*o*6371.007180918475*1e3*1e3},_cellAreaRads2:function(e,t){var A,n,i,o=0;if(i=D,D=D+192|0,n=i,Je(e|=0,t|=0,A=i+168|0),je(e,t,n),(0|(t=0|r[n>>2]))<=0)return D=i,+(o=0);if(o=+Re(n+8|0,n+8+((1!=(0|t)&1)<<4)|0,A)+0,1==(0|t))return D=i,+o;e=1;do{o+=+Re(n+8+(e<<4)|0,n+8+(((0|(e=e+1|0))%(0|t)|0)<<4)|0,A)}while((0|e)<(0|t));return D=i,+o},_compact:function(e,t,A){t|=0;var n,i=0,o=0,a=0,s=0,g=0,c=0,u=0,l=0,I=0,C=0,h=0,f=0,d=0,B=0,p=0,E=0,Q=0,y=0,m=0,b=0,w=0;if(!(A|=0))return 0|(b=0);if(i=0|r[(o=e|=0)>>2],!0&0==(15728640&(o=0|r[o+4>>2])|0)){if((0|A)<=0)return 0|(b=0);if(r[(b=t)>>2]=i,r[b+4>>2]=o,1==(0|A))return 0|(b=0);i=1;do{m=0|r[(y=e+(i<<3)|0)+4>>2],r[(b=t+(i<<3)|0)>>2]=r[y>>2],r[b+4>>2]=m,i=i+1|0}while((0|i)!=(0|A));return 0|(i=0)}if(!(m=0|dt(y=A<<3)))return 0|(b=-3);if(Ft(0|m,0|e,0|y),!(n=0|pt(A,8)))return Bt(m),0|(b=-3);i=A;e:for(;;){E=0|mt(0|(l=0|r[(s=m)>>2]),0|(s=0|r[s+4>>2]),52),v(),Q=(E&=15)+-1|0,p=(0|i)>0;t:do{if(p){if(B=((0|i)<0)<<31>>31,f=0|bt(0|Q,0,52),d=0|v(),Q>>>0>15)for(o=0,e=l,A=s;;){if(!(0==(0|e)&0==(0|A))){if(a=0|mt(0|e,0|A,52),v(),g=(0|(a&=15))<(0|Q),a=(0|a)==(0|Q),A=0|vt(0|(u=g?0:a?e:0),0|(e=g?0:a?A:0),0|i,0|B),v(),0==(0|(c=0|r[(g=a=n+(A<<3)|0)>>2]))&0==(0|(g=0|r[g+4>>2])))A=u;else for(f=0,h=A,C=g,A=u;;){if((0|f)>(0|i)){b=41;break e}if((0|c)==(0|A)&(-117440513&C|0)==(0|e)){u=0|mt(0|c,0|C,56),v(),I=(u&=7)+1|0,d=0|mt(0|c,0|C,45),v();A:do{if(0|_(127&d)){if(c=0|mt(0|c,0|C,52),v(),!(c&=15)){g=6;break}for(g=1;;){if(!(0==((d=0|bt(7,0,3*(15-g|0)|0))&A|0)&0==((0|v())&e|0))){g=7;break A}if(!(g>>>0<c>>>0)){g=6;break}g=g+1|0}}else g=7}while(0);if((u+2|0)>>>0>g>>>0){b=51;break e}d=0|bt(0|I,0,56),e=0|v()|-117440513&e,r[(g=a)>>2]=0,r[g+4>>2]=0,g=h,A|=d}else g=(h+1|0)%(0|i)|0;if(0==(0|(c=0|r[(C=a=n+(g<<3)|0)>>2]))&0==(0|(C=0|r[C+4>>2])))break;f=f+1|0,h=g}r[(d=a)>>2]=A,r[d+4>>2]=e}if((0|(o=o+1|0))>=(0|i))break t;e=0|r[(A=m+(o<<3)|0)>>2],A=0|r[A+4>>2]}for(o=0,e=l,A=s;;){if(!(0==(0|e)&0==(0|A))){if(g=0|mt(0|e,0|A,52),v(),(0|(g&=15))>=(0|Q)){if((0|g)!=(0|Q)&&(e|=f,A=-15728641&A|d,g>>>0>=E>>>0)){a=Q;do{h=0|bt(7,0,3*(14-a|0)|0),a=a+1|0,e|=h,A=0|v()|A}while(a>>>0<g>>>0)}}else e=0,A=0;if(g=0|vt(0|e,0|A,0|i,0|B),v(),!(0==(0|(u=0|r[(c=a=n+(g<<3)|0)>>2]))&0==(0|(c=0|r[c+4>>2]))))for(h=0;;){if((0|h)>(0|i)){b=41;break e}if((0|u)==(0|e)&(-117440513&c|0)==(0|A)){I=0|mt(0|u,0|c,56),v(),C=(I&=7)+1|0,w=0|mt(0|u,0|c,45),v();A:do{if(0|_(127&w)){if(u=0|mt(0|u,0|c,52),v(),!(u&=15)){c=6;break}for(c=1;;){if(!(0==((w=0|bt(7,0,3*(15-c|0)|0))&e|0)&0==((0|v())&A|0))){c=7;break A}if(!(c>>>0<u>>>0)){c=6;break}c=c+1|0}}else c=7}while(0);if((I+2|0)>>>0>c>>>0){b=51;break e}w=0|bt(0|C,0,56),A=0|v()|-117440513&A,r[(C=a)>>2]=0,r[C+4>>2]=0,e|=w}else g=(g+1|0)%(0|i)|0;if(0==(0|(u=0|r[(c=a=n+(g<<3)|0)>>2]))&0==(0|(c=0|r[c+4>>2])))break;h=h+1|0}r[(w=a)>>2]=e,r[w+4>>2]=A}if((0|(o=o+1|0))>=(0|i))break t;e=0|r[(A=m+(o<<3)|0)>>2],A=0|r[A+4>>2]}}}while(0);if((i+5|0)>>>0<11){b=99;break}if(!(d=0|pt((0|i)/6|0,8))){b=58;break}t:do{if(p){h=0,C=0;do{if(!(0==(0|(o=0|r[(e=g=n+(h<<3)|0)>>2]))&0==(0|(e=0|r[e+4>>2])))){c=0|mt(0|o,0|e,56),v(),A=(c&=7)+1|0,u=-117440513&e,w=0|mt(0|o,0|e,45),v();A:do{if(0|_(127&w)){if(I=0|mt(0|o,0|e,52),v(),0|(I&=15))for(a=1;;){if(!(0==(o&(w=0|bt(7,0,3*(15-a|0)|0))|0)&0==(u&(0|v())|0)))break A;if(!(a>>>0<I>>>0))break;a=a+1|0}o|=e=0|bt(0|A,0,56),e=0|v()|u,r[(A=g)>>2]=o,r[A+4>>2]=e,A=c+2|0}}while(0);7==(0|A)&&(r[(w=d+(C<<3)|0)>>2]=o,r[w+4>>2]=-117440513&e,C=C+1|0)}h=h+1|0}while((0|h)!=(0|i));if(p){if(f=((0|i)<0)<<31>>31,I=0|bt(0|Q,0,52),h=0|v(),Q>>>0>15)for(e=0,o=0;;){do{if(!(0==(0|l)&0==(0|s))){for(c=0|mt(0|l,0|s,52),v(),a=(0|(c&=15))<(0|Q),c=(0|c)==(0|Q),a=0|vt(0|(g=a?0:c?l:0),0|(c=a?0:c?s:0),0|i,0|f),v(),A=0;;){if((0|A)>(0|i)){b=98;break e}if((-117440513&(u=0|r[(w=n+(a<<3)|0)+4>>2])|0)==(0|c)&&(0|r[w>>2])==(0|g)){b=70;break}if((0|r[(w=n+((a=(a+1|0)%(0|i)|0)<<3)|0)>>2])==(0|g)&&(0|r[w+4>>2])==(0|c))break;A=A+1|0}if(70==(0|b)&&(b=0,!0&100663296==(117440512&u|0)))break;r[(w=t+(o<<3)|0)>>2]=l,r[w+4>>2]=s,o=o+1|0}}while(0);if((0|(e=e+1|0))>=(0|i)){i=C;break t}l=0|r[(s=m+(e<<3)|0)>>2],s=0|r[s+4>>2]}for(e=0,o=0;;){do{if(!(0==(0|l)&0==(0|s))){if(c=0|mt(0|l,0|s,52),v(),(0|(c&=15))>=(0|Q))if((0|c)!=(0|Q))if(A=l|I,a=-15728641&s|h,c>>>0<E>>>0)c=a;else{g=Q;do{w=0|bt(7,0,3*(14-g|0)|0),g=g+1|0,A|=w,a=0|v()|a}while(g>>>0<c>>>0);c=a}else A=l,c=s;else A=0,c=0;for(g=0|vt(0|A,0|c,0|i,0|f),v(),a=0;;){if((0|a)>(0|i)){b=98;break e}if((-117440513&(u=0|r[(w=n+(g<<3)|0)+4>>2])|0)==(0|c)&&(0|r[w>>2])==(0|A)){b=93;break}if((0|r[(w=n+((g=(g+1|0)%(0|i)|0)<<3)|0)>>2])==(0|A)&&(0|r[w+4>>2])==(0|c))break;a=a+1|0}if(93==(0|b)&&(b=0,!0&100663296==(117440512&u|0)))break;r[(w=t+(o<<3)|0)>>2]=l,r[w+4>>2]=s,o=o+1|0}}while(0);if((0|(e=e+1|0))>=(0|i)){i=C;break t}l=0|r[(s=m+(e<<3)|0)>>2],s=0|r[s+4>>2]}}else o=0,i=C}else o=0,i=0}while(0);if(Rt(0|n,0,0|y),Ft(0|m,0|d,i<<3|0),Bt(d),!i)break;t=t+(o<<3)|0}return 41==(0|b)?(Bt(m),Bt(n),0|(w=-1)):51==(0|b)?(Bt(m),Bt(n),0|(w=-2)):58==(0|b)?(Bt(m),Bt(n),0|(w=-3)):98==(0|b)?(Bt(d),Bt(m),Bt(n),0|(w=-1)):(99==(0|b)&&Ft(0|t,0|m,i<<3|0),Bt(m),Bt(n),0|(w=0))},_destroyLinkedPolygon:function(e){var t=0,A=0,n=0,i=0;if(e|=0)for(n=1;;){if(0|(t=0|r[e>>2]))do{if(0|(A=0|r[t>>2]))do{i=A,A=0|r[A+16>>2],Bt(i)}while(0!=(0|A));i=t,t=0|r[t+8>>2],Bt(i)}while(0!=(0|t));if(t=e,e=0|r[e+8>>2],n||Bt(t),!e)break;n=0}},_edgeLengthKm:function(e){return+ +i[20752+((e|=0)<<3)>>3]},_edgeLengthM:function(e){return+ +i[20880+((e|=0)<<3)>>3]},_emscripten_replace_memory:function(e){return n=new Int8Array(e),new Uint8Array(e),r=new Int32Array(e),new Float32Array(e),i=new Float64Array(e),A=e,!0},_exactEdgeLengthKm:function(e,t){var A,n,o=0,a=0,s=0,c=0,I=0,C=0;if(n=D,D=D+176|0,Ke(e|=0,t|=0,A=n),(0|(e=0|r[A>>2]))<=1)return D=n,+(s=0);t=e+-1|0,e=0,o=0,a=+i[A+8>>3],s=+i[A+16>>3];do{I=a,a=+i[A+8+((e=e+1|0)<<4)>>3],C=+l(.5*(a-I)),c=s,s=+i[A+8+(e<<4)+8>>3],c=C*C+(c=+l(.5*(s-c)))*(+u(+I)*+u(+a)*c),o+=2*+d(+ +g(+c),+ +g(+(1-c)))}while((0|e)!=(0|t));return D=n,+(C=6371.007180918475*o)},_exactEdgeLengthM:function(e,t){var A,n,o=0,a=0,s=0,c=0,I=0,C=0;if(n=D,D=D+176|0,Ke(e|=0,t|=0,A=n),(0|(e=0|r[A>>2]))<=1)return D=n,+(s=0);t=e+-1|0,e=0,o=0,a=+i[A+8>>3],s=+i[A+16>>3];do{I=a,a=+i[A+8+((e=e+1|0)<<4)>>3],C=+l(.5*(a-I)),c=s,s=+i[A+8+(e<<4)+8>>3],c=C*C+(c=+l(.5*(s-c)))*(+u(+I)*+u(+a)*c),o+=2*+d(+ +g(+c),+ +g(+(1-c)))}while((0|e)!=(0|t));return D=n,+(C=6371.007180918475*o*1e3)},_exactEdgeLengthRads:function(e,t){var A,n,o=0,a=0,s=0,c=0,I=0,C=0;if(n=D,D=D+176|0,Ke(e|=0,t|=0,A=n),(0|(e=0|r[A>>2]))<=1)return D=n,+(s=0);t=e+-1|0,e=0,o=0,a=+i[A+8>>3],s=+i[A+16>>3];do{I=a,a=+i[A+8+((e=e+1|0)<<4)>>3],C=+l(.5*(a-I)),c=s,s=+i[A+8+(e<<4)+8>>3],c=C*C+(c=+l(.5*(s-c)))*(+u(+a)*+u(+I)*c),o+=2*+d(+ +g(+c),+ +g(+(1-c)))}while((0|e)<(0|t));return D=n,+o},_experimentalH3ToLocalIj:function(e,t,A,n,r){var i,o;return r|=0,o=D,D=D+16|0,(e=0|$e(e|=0,t|=0,A|=0,n|=0,i=o))||(Ie(i,r),e=0),D=o,0|e},_experimentalLocalIjToH3:function(e,t,A,n){var r,i;return e|=0,t|=0,n|=0,r=D,D=D+16|0,Ce(A|=0,i=r),n=0|et(e,t,i,n),D=r,0|n},_free:Bt,_geoToH3:Ze,_getDestinationH3IndexFromUnidirectionalEdge:function(e,t){e|=0;var A,n,i=0;return A=D,D=D+16|0,i=A,!0&268435456==(2013265920&(t|=0)|0)?(n=0|mt(0|e,0|t,56),v(),r[i>>2]=0,i=0|N(e,-2130706433&t|134217728,7&n,i),t=0|v(),y(0|t),D=A,0|i):(i=0,y(0|(t=0)),D=A,0|i)},_getH3IndexesFromUnidirectionalEdge:function(e,t,A){e|=0;var n,i,o,a,s=0;o=D,D=D+16|0,n=o,a=!0&268435456==(2013265920&(t|=0)|0),i=-2130706433&t|134217728,r[(s=A|=0)>>2]=a?e:0,r[s+4>>2]=a?i:0,a?(t=0|mt(0|e,0|t,56),v(),r[n>>2]=0,e=0|N(e,i,7&t,n),t=0|v()):(e=0,t=0),r[(s=A+8|0)>>2]=e,r[s+4>>2]=t,D=o},_getH3UnidirectionalEdge:function(e,t,A,n){var i,o,a=0,s=0,g=0,c=0,u=0;if(o=D,D=D+16|0,i=o,!(0|Ve(e|=0,t|=0,A|=0,n|=0)))return c=0,y(0|(g=0)),D=o,0|c;for(g=-2130706433&t,a=(a=0==(0|Ne(e,t)))?1:2;r[i>>2]=0,s=a+1|0,!((0|(u=0|N(e,t,a,i)))==(0|A)&(0|v())==(0|n));){if(!(s>>>0<7)){a=0,e=0,c=6;break}a=s}return 6==(0|c)?(y(0|a),D=o,0|e):(u=0|bt(0|a,0,56),c=0|g|v()|268435456,u|=e,y(0|c),D=o,0|u)},_getH3UnidirectionalEdgeBoundary:Ke,_getH3UnidirectionalEdgesFromHexagon:function(e,t,A){A|=0;var n,i=0;n=0==(0|Ne(e|=0,t|=0)),t&=-2130706433,r[(i=A)>>2]=n?e:0,r[i+4>>2]=n?285212672|t:0,r[(i=A+8|0)>>2]=e,r[i+4>>2]=301989888|t,r[(i=A+16|0)>>2]=e,r[i+4>>2]=318767104|t,r[(i=A+24|0)>>2]=e,r[i+4>>2]=335544320|t,r[(i=A+32|0)>>2]=e,r[i+4>>2]=352321536|t,r[(A=A+40|0)>>2]=e,r[A+4>>2]=369098752|t},_getOriginH3IndexFromUnidirectionalEdge:function(e,t){var A;return e|=0,y(0|((A=!0&268435456==(2013265920&(t|=0)|0))?-2130706433&t|134217728:0)),0|(A?e:0)},_getPentagonIndexes:Pe,_getRes0Indexes:function(e){e|=0;var t=0,A=0,n=0;t=0;do{bt(0|t,0,45),n=134225919|v(),r[(A=e+(t<<3)|0)>>2]=-1,r[A+4>>2]=n,t=t+1|0}while(122!=(0|t))},_h3Distance:function(e,t,A,n){var r,i,o;return A|=0,n|=0,o=D,D=D+32|0,i=o,e=0==(0|$e(e|=0,t|=0,e,t,r=o+12|0))&&0==(0|$e(e,t,A,n,i))?0|le(r,i):-1,D=o,0|e},_h3GetBaseCell:De,_h3GetFaces:function e(t,A,n){n|=0;var i,o=0,a=0,s=0,g=0,c=0,u=0,l=0,I=0;i=D,D=D+128|0,l=i+112|0,s=i+96|0,I=i,a=0|mt(0|(t|=0),0|(A|=0),52),v(),c=15&a,r[l>>2]=c,g=0|mt(0|t,0|A,45),v(),g&=127;e:do{if(0|_(g)){if(0|c)for(o=1;;){if(!(0==((u=0|bt(7,0,3*(15-o|0)|0))&t|0)&0==((0|v())&A|0))){a=0;break e}if(!(o>>>0<c>>>0))break;o=o+1|0}if(!(1&a))return u=0|bt(c+1|0,0,52),I=0|v()|-15728641&A,e((u|t)&~(l=0|bt(7,0,3*(14-c|0)|0)),I&~(0|v()),n),void(D=i);a=1}else a=0}while(0);Ye(t,A,s),a?(Qe(s,l,I),u=5):(be(s,l,I),u=6);e:do{if(0|_(g))if(c)for(o=1;;){if(!(0==((g=0|bt(7,0,3*(15-o|0)|0))&t|0)&0==((0|v())&A|0))){o=8;break e}if(!(o>>>0<c>>>0)){o=20;break}o=o+1|0}else o=20;else o=8}while(0);if(Rt(0|n,-1,0|o),a){a=0;do{for(ve(s=I+(a<<4)|0,0|r[l>>2]),s=0|r[s>>2],o=0;!(-1==(0|(c=0|r[(g=n+(o<<2)|0)>>2]))|(0|c)==(0|s));)o=o+1|0;r[g>>2]=s,a=a+1|0}while((0|a)!=(0|u))}else{a=0;do{for(ye(s=I+(a<<4)|0,0|r[l>>2],0,1),s=0|r[s>>2],o=0;!(-1==(0|(c=0|r[(g=n+(o<<2)|0)>>2]))|(0|c)==(0|s));)o=o+1|0;r[g>>2]=s,a=a+1|0}while((0|a)!=(0|u))}D=i},_h3IndexesAreNeighbors:Ve,_h3IsPentagon:Ne,_h3IsResClassIII:function(e,t){return t=0|mt(0|(e|=0),0|(t|=0),52),v(),1&t|0},_h3IsValid:Ge,_h3Line:function(e,t,A,n,i){A|=0,n|=0,i|=0;var o,a=0,g=0,c=0,u=0,l=0,I=0,C=0,h=0,f=0,d=0,B=0,p=0,E=0,Q=0,y=0,v=0,m=0;if(o=D,D=D+48|0,g=o+12|0,v=o,0==(0|$e(e|=0,t|=0,e,t,a=o+24|0))&&0==(0|$e(e,t,A,n,g))){if((0|(y=0|le(a,g)))<0)return D=o,0|(v=y);for(r[a>>2]=0,r[a+4>>2]=0,r[a+8>>2]=0,r[g>>2]=0,r[g+4>>2]=0,r[g+8>>2]=0,$e(e,t,e,t,a),$e(e,t,A,n,g),he(a),he(g),y?(f=+(0|y),Q=a,A=I=0|r[a>>2],n=C=0|r[(p=a+4|0)>>2],a=h=0|r[(E=a+8|0)>>2],d=+((0|r[g>>2])-I|0)/f,B=+((0|r[g+4>>2])-C|0)/f,f=+((0|r[g+8>>2])-h|0)/f):(p=n=a+4|0,E=h=a+8|0,Q=a,A=0|r[a>>2],n=0|r[n>>2],a=0|r[h>>2],d=0,B=0,f=0),r[v>>2]=A,r[(h=v+4|0)>>2]=n,r[(C=v+8|0)>>2]=a,I=0;;){m=d*(u=+(0|I))+ +(0|A),c=B*u+ +(0|r[p>>2]),u=f*u+ +(0|r[E>>2]),n=~~+St(+m),g=~~+St(+c),A=~~+St(+u),m=+s(+(+(0|n)-m)),c=+s(+(+(0|g)-c)),u=+s(+(+(0|A)-u));do{if(!(m>c&m>u)){if(l=0-n|0,c>u){a=l-A|0;break}a=g,A=l-g|0;break}n=0-(g+A)|0,a=g}while(0);if(r[v>>2]=n,r[h>>2]=a,r[C>>2]=A,fe(v),et(e,t,v,i+(I<<3)|0),(0|I)==(0|y))break;I=I+1|0,A=0|r[Q>>2]}return D=o,0|(v=0)}return D=o,0|(v=-1)},_h3LineSize:function(e,t,A,n){var r,i,o;return A|=0,n|=0,o=D,D=D+32|0,i=o,e=0==(0|$e(e|=0,t|=0,e,t,r=o+12|0))&&0==(0|$e(e,t,A,n,i))?0|le(r,i):-1,D=o,(e>>>31^1)+e|0},_h3SetToLinkedGeo:function(e,t,A){A|=0;var n,i,o,a=0;if(o=D,D=D+32|0,n=o,function(e,t,A){e|=0,A|=0;var n,i,o=0,a=0,s=0,g=0,c=0;if(i=D,D=D+176|0,n=i,(0|(t|=0))<1)return gt(A,0,0),void(D=i);g=0|mt(0|r[(g=e)>>2],0|r[g+4>>2],52),v(),gt(A,(0|t)>6?t:6,15&g),g=0;do{if(je(0|r[(o=e+(g<<3)|0)>>2],0|r[o+4>>2],n),(0|(o=0|r[n>>2]))>0){c=0;do{s=n+8+(c<<4)|0,(a=0|Ct(A,o=n+8+(((0|(c=c+1|0))%(0|o)|0)<<4)|0,s))?lt(A,a):It(A,s,o),o=0|r[n>>2]}while((0|c)<(0|o))}g=g+1|0}while((0|g)!=(0|t));D=i}(e|=0,t|=0,i=o+16|0),r[A>>2]=0,r[A+4>>2]=0,r[A+8>>2]=0,!(e=0|ut(i)))return qe(A),ct(i),void(D=o);do{t=0|We(A);do{Xe(t,e),a=e+16|0,r[n>>2]=r[a>>2],r[n+4>>2]=r[a+4>>2],r[n+8>>2]=r[a+8>>2],r[n+12>>2]=r[a+12>>2],lt(i,e),e=0|ht(i,n)}while(0!=(0|e));e=0|ut(i)}while(0!=(0|e));qe(A),ct(i),D=o},_h3ToCenterChild:function(e,t,A){A|=0;var n=0,r=0;if(n=0|mt(0|(e|=0),0|(t|=0),52),v(),(0|A)<16&(0|(n&=15))<=(0|A)){if((0|n)!=(0|A)&&(e|=r=0|bt(0|A,0,52),t=0|v()|-15728641&t,(0|n)<(0|A)))do{r=0|bt(7,0,3*(14-n|0)|0),n=n+1|0,e&=~r,t&=~(0|v())}while((0|n)<(0|A))}else t=0,e=0;return y(0|t),0|e},_h3ToChildren:xe,_h3ToGeo:Je,_h3ToGeoBoundary:je,_h3ToParent:ke,_h3UnidirectionalEdgeIsValid:function(e,t){var A=0;if(!(!0&268435456==(2013265920&(t|=0)|0)))return 0|(A=0);switch(A=0|mt(0|(e|=0),0|t,56),v(),7&A){case 0:case 7:return 0|(A=0)}return!0&16777216==(117440512&t|0)&0!=(0|Ne(e,A=-2130706433&t|134217728))?0|(A=0):0|(A=0|Ge(e,A))},_hexAreaKm2:function(e){return+ +i[20496+((e|=0)<<3)>>3]},_hexAreaM2:function(e){return+ +i[20624+((e|=0)<<3)>>3]},_hexRing:function(e,t,A,n){e|=0,t|=0,n|=0;var i,o=0,a=0,s=0,g=0,c=0,u=0,l=0;if(i=D,D=D+16|0,l=i,!(A|=0))return r[(l=n)>>2]=e,r[l+4>>2]=t,D=i,0|(l=0);r[l>>2]=0;e:do{if(0|Ne(e,t))e=1;else{if(a=(0|A)>0){o=0,u=e;do{if(0==(0|(u=0|N(u,t,4,l)))&0==(0|(t=0|v()))){e=2;break e}if(o=o+1|0,0|Ne(u,t)){e=1;break e}}while((0|o)<(0|A));if(r[(c=n)>>2]=u,r[c+4>>2]=t,c=A+-1|0,a){a=0,s=1,o=u,e=t;do{if(0==(0|(o=0|N(o,e,2,l)))&0==(0|(e=0|v()))){e=2;break e}if(r[(g=n+(s<<3)|0)>>2]=o,r[g+4>>2]=e,s=s+1|0,0|Ne(o,e)){e=1;break e}a=a+1|0}while((0|a)<(0|A));g=0,a=s;do{if(0==(0|(o=0|N(o,e,3,l)))&0==(0|(e=0|v()))){e=2;break e}if(r[(s=n+(a<<3)|0)>>2]=o,r[s+4>>2]=e,a=a+1|0,0|Ne(o,e)){e=1;break e}g=g+1|0}while((0|g)<(0|A));s=0;do{if(0==(0|(o=0|N(o,e,1,l)))&0==(0|(e=0|v()))){e=2;break e}if(r[(g=n+(a<<3)|0)>>2]=o,r[g+4>>2]=e,a=a+1|0,0|Ne(o,e)){e=1;break e}s=s+1|0}while((0|s)<(0|A));s=0;do{if(0==(0|(o=0|N(o,e,5,l)))&0==(0|(e=0|v()))){e=2;break e}if(r[(g=n+(a<<3)|0)>>2]=o,r[g+4>>2]=e,a=a+1|0,0|Ne(o,e)){e=1;break e}s=s+1|0}while((0|s)<(0|A));s=0;do{if(0==(0|(o=0|N(o,e,4,l)))&0==(0|(e=0|v()))){e=2;break e}if(r[(g=n+(a<<3)|0)>>2]=o,r[g+4>>2]=e,a=a+1|0,0|Ne(o,e)){e=1;break e}s=s+1|0}while((0|s)<(0|A));for(s=0;;){if(0==(0|(o=0|N(o,e,6,l)))&0==(0|(e=0|v()))){e=2;break e}if((0|s)!=(0|c)){if(r[(g=n+(a<<3)|0)>>2]=o,r[g+4>>2]=e,0|Ne(o,e)){e=1;break e}a=a+1|0}if((0|(s=s+1|0))>=(0|A)){s=u,a=t;break}}}else s=u,o=u,a=t,e=t}else r[(s=n)>>2]=e,r[s+4>>2]=t,s=e,o=e,a=t,e=t;e=1&((0|s)!=(0|o)|(0|a)!=(0|e))}}while(0);return D=i,0|(l=e)},_i64Subtract:Et,_kRing:G,_kRingDistances:function(e,t,A,n,r){var i;if(0|k(e|=0,t|=0,A|=0,n|=0,r|=0)){if(Rt(0|n,0,(i=1+(0|p(3*A|0,A+1|0))|0)<<3|0),0|r)return Rt(0|r,0,i<<2|0),void x(e,t,A,n,r,i,0);(r=0|pt(i,4))&&(x(e,t,A,n,r,i,0),Bt(r))}},_llvm_minnum_f64:wt,_llvm_round_f64:St,_malloc:dt,_maxFaceCount:function(e,t){var A=0,n=0;if(n=0|mt(0|(e|=0),0|(t|=0),45),v(),!(0|_(127&n)))return 0|(n=2);if(n=0|mt(0|e,0|t,52),v(),!(n&=15))return 0|(n=5);for(A=1;;){if(!(0==((0|bt(7,0,3*(15-A|0)|0))&e|0)&0==((0|v())&t|0))){A=2,e=6;break}if(!(A>>>0<n>>>0)){A=5,e=6;break}A=A+1|0}return 6==(0|e)?0|A:0},_maxH3ToChildrenSize:function(e,t,A){return A|=0,e=0|mt(0|(e|=0),0|(t|=0),52),v(),(0|A)<16&(0|(e&=15))<=(0|A)?0|(A=0|tt(7,A-e|0)):0|(A=0)},_maxKringSize:function(e){return 1+(0|p(3*(e|=0)|0,e+1|0))|0},_maxPolyfillSize:function(e,t){t|=0;var A,n=0,i=0,o=0,a=0,s=0;if(A=D,D=D+48|0,o=A+8|0,i=A,a=0|r[(s=e|=0)+4>>2],r[(n=i)>>2]=r[s>>2],r[n+4>>2]=a,nt(i,o),o=0|j(o,t),t=0|r[i>>2],(0|(i=0|r[e+8>>2]))<=0)return D=A,0|(s=(s=(a=(0|o)<(0|(s=t)))?s:o)+12|0);n=0|r[e+12>>2],e=0;do{t=(0|r[n+(e<<3)>>2])+t|0,e=e+1|0}while((0|e)<(0|i));return D=A,0|(s=(s=(s=(0|o)<(0|t))?t:o)+12|0)},_maxUncompactSize:function(e,t,A){e|=0,A|=0;var n=0,i=0,o=0,a=0;if((0|(t|=0))<=0)return 0|(A=0);if((0|A)>=16){for(n=0;;){if(!(0==(0|r[(a=e+(n<<3)|0)>>2])&0==(0|r[a+4>>2]))){n=-1,i=13;break}if((0|(n=n+1|0))>=(0|t)){n=0,i=13;break}}if(13==(0|i))return 0|n}n=0,a=0;e:for(;;){o=0|r[(i=e+(a<<3)|0)>>2],i=0|r[i+4>>2];do{if(!(0==(0|o)&0==(0|i))){if(i=0|mt(0|o,0|i,52),v(),(0|(i&=15))>(0|A)){n=-1,i=13;break e}if((0|i)==(0|A)){n=n+1|0;break}n=(0|tt(7,A-i|0))+n|0;break}}while(0);if((0|(a=a+1|0))>=(0|t)){i=13;break}}return 13==(0|i)?0|n:0},_memcpy:Ft,_memset:Rt,_numHexagons:function(e){var t;return e=0|r[(t=21008+((e|=0)<<3)|0)>>2],y(0|r[t+4>>2]),0|e},_pentagonIndexCount:function(){return 12},_pointDistKm:Fe,_pointDistM:function(e,t){e|=0;var A,n,r,o=0;return n=+i[(t|=0)>>3],A=+i[e>>3],o=(r=+l(.5*(n-A)))*r+(o=+l(.5*(+i[t+8>>3]-+i[e+8>>3])))*(+u(+n)*+u(+A)*o),2*+d(+ +g(+o),+ +g(+(1-o)))*6371.007180918475*1e3},_pointDistRads:function(e,t){e|=0;var A,n,r,o=0;return n=+i[(t|=0)>>3],A=+i[e>>3],o=(r=+l(.5*(n-A)))*r+(o=+l(.5*(+i[t+8>>3]-+i[e+8>>3])))*(+u(+n)*+u(+A)*o),2*+d(+ +g(+o),+ +g(+(1-o)))},_polyfill:function(e,t,A){var n,i=0,o=0,a=0,s=0,g=0;if(n=D,D=D+48|0,i=n+8|0,o=n,0|function(e,t,A){t|=0,A|=0;var n,i,o,a,s,g=0,c=0,u=0,l=0,I=0,C=0,h=0,f=0,d=0,B=0,p=0,E=0,Q=0,y=0,b=0,w=0,S=0,F=0,R=0,G=0,N=0,_=0,M=0,O=0,L=0;s=D,D=D+112|0,i=s+80|0,C=s+72|0,o=s,a=s+56|0,(L=0|dt(32+(r[(h=(e=e|0)+8|0)>>2]<<5)|0))||m(22848,22448,800,22456);if(rt(e,L),g=0|r[(u=e)+4>>2],r[(I=C)>>2]=r[u>>2],r[I+4>>2]=g,nt(C,i),I=0|j(i,t),g=0|r[C>>2],(0|(u=0|r[h>>2]))>0){l=0|r[e+12>>2],c=0;do{g=(0|r[l+(c<<3)>>2])+g|0,c=c+1|0}while((0|c)!=(0|u))}if(c=0|pt(n=(I=(0|I)<(0|g)?g:I)+12|0,8),f=0|pt(n,8),r[i>>2]=0,O=0|r[(M=e)+4>>2],r[(g=C)>>2]=r[M>>2],r[g+4>>2]=O,0|(g=0|U(C,n,t,i,c,f)))return Bt(c),Bt(f),Bt(L),D=s,0|(L=g);e:do{if((0|r[h>>2])>0){for(u=e+12|0,g=0;l=0|U((0|r[u>>2])+(g<<3)|0,n,t,i,c,f),g=g+1|0,!(0|l);)if((0|g)>=(0|r[h>>2]))break e;return Bt(c),Bt(f),Bt(L),D=s,0|(L=l)}}while(0);(0|I)>-12&&Rt(0|f,0,((0|n)>1?n:1)<<3|0);e:do{if((0|r[i>>2])>0){O=((0|n)<0)<<31>>31,F=c,R=f,G=c,N=c,_=f,M=c,g=c,y=c,b=f,w=f,S=f,c=f;t:for(;;){for(Q=0|r[i>>2],p=0,E=0,u=0;;){I=(l=o)+56|0;do{r[l>>2]=0,l=l+4|0}while((0|l)<(0|I));if(C=0|r[(t=F+(p<<3)|0)>>2],t=0|r[t+4>>2],0|k(C,t,1,o,0)){I=(l=o)+56|0;do{r[l>>2]=0,l=l+4|0}while((0|l)<(0|I));0|(l=0|pt(7,4))&&(x(C,t,1,o,l,7,0),Bt(l))}B=0;do{f=0|r[(d=o+(B<<3)|0)>>2],d=0|r[d+4>>2];A:do{if(!(0==(0|f)&0==(0|d))){if(C=0|vt(0|f,0|d,0|n,0|O),v(),t=0|r[(I=l=A+(C<<3)|0)>>2],I=0|r[I+4>>2],!(0==(0|t)&0==(0|I)))for(h=0;;){if((0|h)>(0|n))break t;if((0|t)==(0|f)&(0|I)==(0|d))break A;if(t=0|r[(I=l=A+((C=(C+1|0)%(0|n)|0)<<3)|0)>>2],I=0|r[I+4>>2],0==(0|t)&0==(0|I))break;h=h+1|0}0==(0|f)&0==(0|d)||(Je(f,d,a),0|it(e,L,a)&&(r[(h=l)>>2]=f,r[h+4>>2]=d,r[(h=R+(u<<3)|0)>>2]=f,r[h+4>>2]=d,u=u+1|0))}}while(0);B=B+1|0}while(B>>>0<7);if((0|(E=E+1|0))>=(0|Q))break;p=p+1|0}if((0|Q)>0&&Rt(0|G,0,Q<<3|0),r[i>>2]=u,!((0|u)>0))break e;f=c,d=S,B=M,p=w,E=b,Q=R,c=y,S=g,w=N,b=G,y=f,g=d,M=_,_=B,N=p,G=E,R=F,F=Q}return Bt(N),Bt(_),Bt(L),D=s,0|(L=-1)}g=f}while(0);return Bt(L),Bt(c),Bt(g),D=s,0|(L=0)}(e|=0,t|=0,A|=0)){if(a=0|r[(g=e)+4>>2],r[(s=o)>>2]=r[g>>2],r[s+4>>2]=a,nt(o,i),s=0|j(i,t),t=0|r[o>>2],(0|(a=0|r[e+8>>2]))>0){o=0|r[e+12>>2],i=0;do{t=(0|r[o+(i<<3)>>2])+t|0,i=i+1|0}while((0|i)!=(0|a))}(0|(t=(0|s)<(0|t)?t:s))<=-12||Rt(0|A,0,8+(((0|(g=t+11|0))>0?g:0)<<3)|0),D=n}else D=n},_res0IndexCount:function(){return 122},_round:Dt,_sbrk:Gt,_sizeOfCoordIJ:function(){return 8},_sizeOfGeoBoundary:function(){return 168},_sizeOfGeoCoord:function(){return 16},_sizeOfGeoPolygon:function(){return 16},_sizeOfGeofence:function(){return 8},_sizeOfH3Index:function(){return 8},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompact:function(e,t,A,n,i){e|=0,A|=0,n|=0,i|=0;var o=0,a=0,s=0,g=0,c=0,u=0;if((0|(t|=0))<=0)return 0|(i=0);if((0|i)>=16){for(o=0;;){if(!(0==(0|r[(u=e+(o<<3)|0)>>2])&0==(0|r[u+4>>2]))){o=14;break}if((0|(o=o+1|0))>=(0|t)){a=0,o=16;break}}if(14==(0|o))return 0|((0|n)>0?-2:-1);if(16==(0|o))return 0|a}o=0,u=0;e:for(;;){a=0|r[(s=c=e+(u<<3)|0)>>2],s=0|r[s+4>>2];do{if(!(0==(0|a)&0==(0|s))){if((0|o)>=(0|n)){a=-1,o=16;break e}if(g=0|mt(0|a,0|s,52),v(),(0|(g&=15))>(0|i)){a=-2,o=16;break e}if((0|g)==(0|i)){r[(c=A+(o<<3)|0)>>2]=a,r[c+4>>2]=s,o=o+1|0;break}if((0|(a=(0|tt(7,i-g|0))+o|0))>(0|n)){a=-1,o=16;break e}xe(0|r[c>>2],0|r[c+4>>2],i,A+(o<<3)|0),o=a}}while(0);if((0|(u=u+1|0))>=(0|t)){a=0,o=16;break}}return 16==(0|o)?0|a:0},establishStackSpace:function(e,t){D=e|=0},stackAlloc:function(e){var t;return t=D,D=(D=D+(e|=0)|0)+15&-16,0|t},stackRestore:function(e){D=e|=0},stackSave:function(){return 0|D}}}({Math:Math,Int8Array:Int8Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Float32Array:Float32Array,Float64Array:Float64Array},{a:se,b:function(e){g=e},c:c,d:function(e,t,A,n){se("Assertion failed: "+h(e)+", at: "+[t?h(t):"unknown filename",A,n?h(n):"unknown function"])},e:function(e){return A.___errno_location&&(E[A.___errno_location()>>2]=e),e},f:P,g:function(e,t,A){B.set(B.subarray(t,t+A),e)},h:function(e){var t=P();if(e>2130706432)return!1;for(var A=Math.max(t,16777216);A<e;)A=A<=536870912?v(2*A,16777216):Math.min(v((3*A+2147483648)/4,16777216),2130706432);return!!V(A)},i:function(e){se("OOM")},j:Y,k:J,l:V,m:j,n:function(){var e=j();return A.extraStackTrace&&(e+="\n"+A.extraStackTrace()),J(e)},o:24032,p:24016},f),$=(A.___uremdi3=z.___uremdi3,A._bitshift64Lshr=z._bitshift64Lshr,A._bitshift64Shl=z._bitshift64Shl,A._calloc=z._calloc,A._cellAreaKm2=z._cellAreaKm2,A._cellAreaM2=z._cellAreaM2,A._cellAreaRads2=z._cellAreaRads2,A._compact=z._compact,A._destroyLinkedPolygon=z._destroyLinkedPolygon,A._edgeLengthKm=z._edgeLengthKm,A._edgeLengthM=z._edgeLengthM,A._emscripten_replace_memory=z._emscripten_replace_memory),ee=(A._exactEdgeLengthKm=z._exactEdgeLengthKm,A._exactEdgeLengthM=z._exactEdgeLengthM,A._exactEdgeLengthRads=z._exactEdgeLengthRads,A._experimentalH3ToLocalIj=z._experimentalH3ToLocalIj,A._experimentalLocalIjToH3=z._experimentalLocalIjToH3,A._free=z._free,A._geoToH3=z._geoToH3,A._getDestinationH3IndexFromUnidirectionalEdge=z._getDestinationH3IndexFromUnidirectionalEdge,A._getH3IndexesFromUnidirectionalEdge=z._getH3IndexesFromUnidirectionalEdge,A._getH3UnidirectionalEdge=z._getH3UnidirectionalEdge,A._getH3UnidirectionalEdgeBoundary=z._getH3UnidirectionalEdgeBoundary,A._getH3UnidirectionalEdgesFromHexagon=z._getH3UnidirectionalEdgesFromHexagon,A._getOriginH3IndexFromUnidirectionalEdge=z._getOriginH3IndexFromUnidirectionalEdge,A._getPentagonIndexes=z._getPentagonIndexes,A._getRes0Indexes=z._getRes0Indexes,A._h3Distance=z._h3Distance,A._h3GetBaseCell=z._h3GetBaseCell,A._h3GetFaces=z._h3GetFaces,A._h3IndexesAreNeighbors=z._h3IndexesAreNeighbors,A._h3IsPentagon=z._h3IsPentagon,A._h3IsResClassIII=z._h3IsResClassIII,A._h3IsValid=z._h3IsValid,A._h3Line=z._h3Line,A._h3LineSize=z._h3LineSize,A._h3SetToLinkedGeo=z._h3SetToLinkedGeo,A._h3ToCenterChild=z._h3ToCenterChild,A._h3ToChildren=z._h3ToChildren,A._h3ToGeo=z._h3ToGeo,A._h3ToGeoBoundary=z._h3ToGeoBoundary,A._h3ToParent=z._h3ToParent,A._h3UnidirectionalEdgeIsValid=z._h3UnidirectionalEdgeIsValid,A._hexAreaKm2=z._hexAreaKm2,A._hexAreaM2=z._hexAreaM2,A._hexRing=z._hexRing,A._i64Subtract=z._i64Subtract,A._kRing=z._kRing,A._kRingDistances=z._kRingDistances,A._llvm_minnum_f64=z._llvm_minnum_f64,A._llvm_round_f64=z._llvm_round_f64,A._malloc=z._malloc,A._maxFaceCount=z._maxFaceCount,A._maxH3ToChildrenSize=z._maxH3ToChildrenSize,A._maxKringSize=z._maxKringSize,A._maxPolyfillSize=z._maxPolyfillSize,A._maxUncompactSize=z._maxUncompactSize,A._memcpy=z._memcpy,A._memset=z._memset,A._numHexagons=z._numHexagons,A._pentagonIndexCount=z._pentagonIndexCount,A._pointDistKm=z._pointDistKm,A._pointDistM=z._pointDistM,A._pointDistRads=z._pointDistRads,A._polyfill=z._polyfill,A._res0IndexCount=z._res0IndexCount,A._round=z._round,A._sbrk=z._sbrk,A._sizeOfCoordIJ=z._sizeOfCoordIJ,A._sizeOfGeoBoundary=z._sizeOfGeoBoundary,A._sizeOfGeoCoord=z._sizeOfGeoCoord,A._sizeOfGeoPolygon=z._sizeOfGeoPolygon,A._sizeOfGeofence=z._sizeOfGeofence,A._sizeOfH3Index=z._sizeOfH3Index,A._sizeOfLinkedGeoPolygon=z._sizeOfLinkedGeoPolygon,A._uncompact=z._uncompact,A.establishStackSpace=z.establishStackSpace,A.stackAlloc=z.stackAlloc),te=A.stackRestore=z.stackRestore,Ae=A.stackSave=z.stackSave;if(A.asm=z,A.cwrap=function(e,t,A,n){var r=(A=A||[]).every((function(e){return"number"===e}));return"string"!==t&&r&&!n?l(e):function(){return I(e,t,A,arguments)}},A.setValue=function(e,t,A,n){switch("*"===(A=A||"i8").charAt(A.length-1)&&(A="i32"),A){case"i1":case"i8":d[e>>0]=t;break;case"i16":p[e>>1]=t;break;case"i32":E[e>>2]=t;break;case"i64":L=[t>>>0,(O=t,+G(O)>=1?O>0?(0|N(+x(O/4294967296),4294967295))>>>0:~~+k((O-+(~~O>>>0))/4294967296)>>>0:0)],E[e>>2]=L[0],E[e+4>>2]=L[1];break;case"float":Q[e>>2]=t;break;case"double":y[e>>3]=t;break;default:se("invalid type for setValue: "+A)}},A.getValue=function(e,t,A){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return d[e>>0];case"i16":return p[e>>1];case"i32":case"i64":return E[e>>2];case"float":return Q[e>>2];case"double":return y[e>>3];default:se("invalid type for getValue: "+t)}return null},A.getTempRet0=c,T){H(T)||(X=T,T=A.locateFile?A.locateFile(X,o):o+X),U++,A.monitorRunDependencies&&A.monitorRunDependencies(U);var ne=function(e){e.byteLength&&(e=new Uint8Array(e)),B.set(e,8),A.memoryInitializerRequest&&delete A.memoryInitializerRequest.response,function(e){if(U--,A.monitorRunDependencies&&A.monitorRunDependencies(U),0==U&&(null!==_&&(clearInterval(_),_=null),M)){var t=M;M=null,t()}}()},re=function(){r(T,ne,(function(){throw"could not load memory initializer "+T}))},ie=W(T);if(ie)ne(ie.buffer);else if(A.memoryInitializerRequest){var oe=function(){var e=A.memoryInitializerRequest,t=e.response;if(200!==e.status&&0!==e.status){var n=W(A.memoryInitializerRequestURL);if(!n)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+e.status+", retrying "+T),void re();t=n.buffer}ne(t)};A.memoryInitializerRequest.response?setTimeout(oe,0):A.memoryInitializerRequest.addEventListener("load",oe)}else re()}function ae(e){function t(){q||(q=!0,u||(w(F),w(R),A.onRuntimeInitialized&&A.onRuntimeInitialized(),function(){if(A.postRun)for("function"==typeof A.postRun&&(A.postRun=[A.postRun]);A.postRun.length;)e=A.postRun.shift(),D.unshift(e);var e;w(D)}()))}e=e||i,U>0||(!function(){if(A.preRun)for("function"==typeof A.preRun&&(A.preRun=[A.preRun]);A.preRun.length;)e=A.preRun.shift(),S.unshift(e);var e;w(S)}(),U>0||(A.setStatus?(A.setStatus("Running..."),setTimeout((function(){setTimeout((function(){A.setStatus("")}),1),t()}),1)):t()))}function se(e){throw A.onAbort&&A.onAbort(e),a(e+=""),s(e),u=!0,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(M=function e(){q||ae(),q||(M=e)},A.run=ae,A.abort=se,A.preInit)for("function"==typeof A.preInit&&(A.preInit=[A.preInit]);A.preInit.length>0;)A.preInit.pop()();return ae(),e}("object"===typeof n?n:{}),r="number",i={};[["sizeOfH3Index",r],["sizeOfGeoCoord",r],["sizeOfGeoBoundary",r],["sizeOfGeoPolygon",r],["sizeOfGeofence",r],["sizeOfLinkedGeoPolygon",r],["sizeOfCoordIJ",r],["h3IsValid","number",["number","number"]],["geoToH3","number",[r,r,"number"]],["h3ToGeo",null,["number","number",r]],["h3ToGeoBoundary",null,["number","number",r]],["maxKringSize",r,[r]],["kRing",null,["number","number",r,r]],["kRingDistances",null,["number","number",r,r,r]],["hexRing",null,["number","number",r,r]],["maxPolyfillSize",r,[r,"number"]],["polyfill",null,[r,"number",r]],["h3SetToLinkedGeo",null,[r,r,r]],["destroyLinkedPolygon",null,[r]],["compact",r,[r,r,r]],["uncompact",r,[r,r,r,r,"number"]],["maxUncompactSize",r,[r,r,"number"]],["h3IsPentagon","number",["number","number"]],["h3IsResClassIII","number",["number","number"]],["h3GetBaseCell",r,["number","number"]],["maxFaceCount",r,["number","number"]],["h3GetFaces",null,["number","number",r]],["h3ToParent","number",["number","number","number"]],["h3ToChildren",null,["number","number","number",r]],["h3ToCenterChild","number",["number","number","number"]],["maxH3ToChildrenSize",r,["number","number","number"]],["h3IndexesAreNeighbors","number",["number","number","number","number"]],["getH3UnidirectionalEdge","number",["number","number","number","number"]],["getOriginH3IndexFromUnidirectionalEdge","number",["number","number"]],["getDestinationH3IndexFromUnidirectionalEdge","number",["number","number"]],["h3UnidirectionalEdgeIsValid","number",["number","number"]],["getH3IndexesFromUnidirectionalEdge",null,["number","number",r]],["getH3UnidirectionalEdgesFromHexagon",null,["number","number",r]],["getH3UnidirectionalEdgeBoundary",null,["number","number",r]],["h3Distance",r,["number","number","number","number"]],["h3Line",r,["number","number","number","number",r]],["h3LineSize",r,["number","number","number","number"]],["experimentalH3ToLocalIj",r,["number","number","number","number",r]],["experimentalLocalIjToH3",r,["number","number",r,r]],["hexAreaM2",r,["number"]],["hexAreaKm2",r,["number"]],["edgeLengthM",r,["number"]],["edgeLengthKm",r,["number"]],["pointDistM",r,[r,r]],["pointDistKm",r,[r,r]],["pointDistRads",r,[r,r]],["cellAreaM2",r,["number","number"]],["cellAreaKm2",r,["number","number"]],["cellAreaRads2",r,["number","number"]],["exactEdgeLengthM",r,["number","number"]],["exactEdgeLengthKm",r,["number","number"]],["exactEdgeLengthRads",r,["number","number"]],["numHexagons",r,["number"]],["getRes0Indexes",null,[r]],["res0IndexCount",r],["getPentagonIndexes",null,[r,r]],["pentagonIndexCount",r]].forEach((function(e){i[e[0]]=n.cwrap.apply(n,e)}));var o=i.sizeOfH3Index(),a=i.sizeOfGeoCoord(),s=i.sizeOfGeoBoundary(),g=i.sizeOfGeoPolygon(),c=i.sizeOfGeofence(),u=i.sizeOfLinkedGeoPolygon(),l=i.sizeOfCoordIJ(),I={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function C(e){if("number"!==typeof e||e<0||e>15||Math.floor(e)!==e)throw new Error("Invalid resolution: "+e)}var h=/[^0-9a-fA-F]/;function f(e){if(Array.isArray(e)&&2===e.length&&Number.isInteger(e[0])&&Number.isInteger(e[1]))return e;if("string"!==typeof e||h.test(e))return[0,0];var t=parseInt(e.substring(0,e.length-8),16);return[parseInt(e.substring(e.length-8),16),t]}function d(e){if(e>=0)return e.toString(16);var t=p(8,(e&=2147483647).toString(16));return t=(parseInt(t[0],16)+8).toString(16)+t.substring(1)}function B(e,t){return d(t)+p(8,d(e))}function p(e,t){for(var A=e-t.length,n="",r=0;r<A;r++)n+="0";return n+=t}function E(e,t,A){for(var r=e.length,i=n._calloc(r,a),o=A?1:0,s=A?0:1,g=0;g<2*r;g+=2)n.HEAPF64.set([e[g/2][o],e[g/2][s]].map(de),i/8+g);return n.HEAPU32.set([r,i],t/4),t}function Q(e){return[e,n.getTempRet0()]}function y(e){var t=Q(e),A=t[0],n=t[1];return n?B(A,n):null}function v(e,t){void 0===t&&(t=0);var A=n.getValue(e+4*t*2,"i32"),r=n.getValue(e+4*(2*t+1),"i32");return r?B(A,r):null}function m(e,t,A){n.HEAPU32.set(f(e),t/4+2*A)}function b(e,t){for(var A=[],n=0;n<t;n++){var r=v(e,n);null!==r&&A.push(r)}return A}function w(e,t){for(var A=t.length,n=0;n<A;n++)m(t[n],e,n)}function S(e,t){var A=n._calloc(1,a);return n.HEAPF64.set([e,t].map(de),A/8),A}function F(e){return Be(n.getValue(e,"double"))}function R(e){return[F(e),F(e+8)]}function D(e){return[F(e+8),F(e)]}function G(e,t,A){for(var r=n.getValue(e,"i32"),i=e+8,o=[],a=t?D:R,s=0;s<2*r;s+=2)o.push(a(i+8*s));return A&&o.push(o[0]),o}function k(e){var t=f(e),A=t[0],n=t[1];return Boolean(i.h3IsValid(A,n))}function x(e){var t=f(e),A=t[0],n=t[1];return Boolean(i.h3IsPentagon(A,n))}function N(e){var t=f(e),A=t[0],n=t[1];return Boolean(i.h3IsResClassIII(A,n))}function U(e){var t=f(e),A=t[0],n=t[1];return i.h3GetBaseCell(A,n)}function _(e){var t=f(e),A=t[0],r=t[1],o=i.maxFaceCount(A,r),a=n._malloc(4*o);i.h3GetFaces(A,r,a);var s=function(e,t){for(var A=[],r=0;r<t;r++){var i=n.getValue(e+4*r,"i32");i>=0&&A.push(i)}return A}(a,o);return n._free(a),s}function M(e){return"string"!==typeof e?-1:parseInt(e.charAt(1),16)}function O(e,t,A){var r=n._malloc(a);n.HEAPF64.set([e,t].map(de),r/8);var o=y(i.geoToH3(r,A));return n._free(r),o}function L(e){var t=n._malloc(a),A=f(e),r=A[0],o=A[1];i.h3ToGeo(r,o,t);var s=R(t);return n._free(t),s}function T(e,t){var A=n._malloc(s),r=f(e),o=r[0],a=r[1];i.h3ToGeoBoundary(o,a,A);var g=G(A,t,t);return n._free(A),g}function Z(e,t){var A=f(e),n=A[0],r=A[1];return y(i.h3ToParent(n,r,t))}function H(e,t){if(!k(e))return[];var A=f(e),r=A[0],a=A[1],s=i.maxH3ToChildrenSize(r,a,t),g=n._calloc(s,o);i.h3ToChildren(r,a,t,g);var c=b(g,s);return n._free(g),c}function Y(e,t){var A=f(e),n=A[0],r=A[1];return y(i.h3ToCenterChild(n,r,t))}function J(e,t){var A=f(e),r=A[0],a=A[1],s=i.maxKringSize(t),g=n._calloc(s,o);i.kRing(r,a,t,g);var c=b(g,s);return n._free(g),c}function j(e,t){var A=f(e),r=A[0],a=A[1],s=i.maxKringSize(t),g=n._calloc(s,o),c=n._calloc(s,4);i.kRingDistances(r,a,t,g,c);for(var u=[],l=0;l<t+1;l++)u.push([]);for(var I=0;I<2*s;I+=2){var C=n.getValue(g+4*I,"i32"),h=n.getValue(g+4*(I+1),"i32"),d=n.getValue(c+I/2*4,"i32");0===C&&0===h||u[d].push(B(C,h))}return n._free(g),n._free(c),u}function P(e,t){var A=0===t?1:6*t,r=n._calloc(A,o);if(0!==i.hexRing.apply(i,f(e).concat([t],[r])))throw n._free(r),new Error("Failed to get hexRing (encountered a pentagon?)");var a=b(r,A);return n._free(r),a}function V(e,t,A){if(C(t),A=Boolean(A),0===e.length||0===e[0].length)return[];"number"===typeof e[0][0]&&(e=[e]);var r=function(e,t){var A,r=e.length-1,i=n._calloc(g),o=0+c,a=o+4;if(E(e[0],i+0,t),r>0){A=n._calloc(r,c);for(var s=0;s<r;s++)E(e[s+1],A+c*s,t)}return n.setValue(i+o,r,"i32"),n.setValue(i+a,A,"i32"),i}(e,A),a=i.maxPolyfillSize(r,t),s=n._calloc(a,o);i.polyfill(r,t,s);var u=b(s,a);return n._free(s),function(e){var t=0+c,A=t+4;n._free(n.getValue(e+0,"i8*"));for(var r=n.getValue(e+t,"i32"),i=0;i<r;i++)n._free(n.getValue(e+A+c*i,"i8*"));n._free(e)}(r),u}function K(e,t){if(!e||!e.length)return[];var A=e.length,r=n._calloc(A,o);w(r,e);var a=n._calloc(u),s=a;i.h3SetToLinkedGeo(r,A,a);var g=function(e,t){for(var A,r,i,o,a=[],s=t?D:R;e;){for(a.push(A=[]),r=n.getValue(e,"i8*");r;){for(A.push(i=[]),o=n.getValue(r,"i8*");o;)i.push(s(o)),o=n.getValue(o+16,"i8*");t&&i.push(i[0]),r=n.getValue(r+8,"i8*")}e=n.getValue(e+8,"i8*")}return a}(a,t);return i.destroyLinkedPolygon(s),n._free(s),n._free(r),g}function W(e){if(!e||!e.length)return[];var t=e.length,A=n._calloc(t,o);w(A,e);var r=n._calloc(t,o);if(0!==i.compact(A,r,t))throw n._free(A),n._free(r),new Error("Failed to compact, malformed input data (duplicate hexagons?)");var a=b(r,t);return n._free(A),n._free(r),a}function X(e,t){if(C(t),!e||!e.length)return[];var A=e.length,r=n._calloc(A,o);w(r,e);var a=i.maxUncompactSize(r,A,t),s=n._calloc(a,o);if(0!==i.uncompact(r,A,s,a,t))throw n._free(r),n._free(s),new Error("Failed to uncompact (bad resolution?)");var g=b(s,a);return n._free(r),n._free(s),g}function q(e,t){var A=f(e),n=A[0],r=A[1],o=f(t),a=o[0],s=o[1];return Boolean(i.h3IndexesAreNeighbors(n,r,a,s))}function z(e,t){var A=f(e),n=A[0],r=A[1],o=f(t),a=o[0],s=o[1];return y(i.getH3UnidirectionalEdge(n,r,a,s))}function $(e){var t=f(e),A=t[0],n=t[1];return y(i.getOriginH3IndexFromUnidirectionalEdge(A,n))}function ee(e){var t=f(e),A=t[0],n=t[1];return y(i.getDestinationH3IndexFromUnidirectionalEdge(A,n))}function te(e){var t=f(e),A=t[0],n=t[1];return Boolean(i.h3UnidirectionalEdgeIsValid(A,n))}function Ae(e){var t=f(e),A=t[0],r=t[1],a=n._calloc(2,o);i.getH3IndexesFromUnidirectionalEdge(A,r,a);var s=b(a,2);return n._free(a),s}function ne(e){var t=f(e),A=t[0],r=t[1],a=n._calloc(6,o);i.getH3UnidirectionalEdgesFromHexagon(A,r,a);var s=b(a,6);return n._free(a),s}function re(e,t){var A=n._malloc(s),r=f(e),o=r[0],a=r[1];i.getH3UnidirectionalEdgeBoundary(o,a,A);var g=G(A,t);return n._free(A),g}function ie(e,t){var A=f(e),n=A[0],r=A[1],o=f(t),a=o[0],s=o[1];return i.h3Distance(n,r,a,s)}function oe(e,t){var A=f(e),r=A[0],a=A[1],s=f(t),g=s[0],c=s[1],u=i.h3LineSize(r,a,g,c);if(u<0)throw new Error("Line cannot be calculated");var l=n._calloc(u,o);i.h3Line(r,a,g,c,l);var I=b(l,u);return n._free(l),I}function ae(e,t){var A,r=n._malloc(l),o=i.experimentalH3ToLocalIj.apply(i,f(e).concat(f(t),[r])),a=(A=r,{i:n.getValue(A,"i32"),j:n.getValue(A+4,"i32")});switch(n._free(r),o){case 0:return a;case 1:throw new Error("Incompatible origin and index.");case 2:default:throw new Error("Local IJ coordinates undefined for this origin and index pair. The index may be too far from the origin.");case 3:case 4:case 5:throw new Error("Encountered possible pentagon distortion")}}function se(e,t){if(!t||"number"!==typeof t.i||"number"!==typeof t.j)throw new Error("Coordinates must be provided as an {i, j} object");var A=n._malloc(l),r=n._malloc(o);!function(e,t){var A=t.i,r=t.j;n.setValue(e,A,"i32"),n.setValue(e+4,r,"i32")}(A,t);var a=i.experimentalLocalIjToH3.apply(i,f(e).concat([A],[r])),s=v(r);if(n._free(A),n._free(r),0!==a)throw new Error("Index not defined for this origin and IJ coordinates pair. IJ coordinates may be too far from origin, or a pentagon distortion was encountered.");return s}function ge(e,t,A){var r,o=S(e[0],e[1]),a=S(t[0],t[1]);switch(A){case I.m:r=i.pointDistM(o,a);break;case I.km:r=i.pointDistKm(o,a);break;case I.rads:r=i.pointDistRads(o,a);break;default:r=null}if(n._free(o),n._free(a),null===r)throw new Error("Unknown unit: "+A);return r}function ce(e,t){var A=f(e),n=A[0],r=A[1];switch(t){case I.m2:return i.cellAreaM2(n,r);case I.km2:return i.cellAreaKm2(n,r);case I.rads2:return i.cellAreaRads2(n,r);default:throw new Error("Unknown unit: "+t)}}function ue(e,t){var A=f(e),n=A[0],r=A[1];switch(t){case I.m:return i.exactEdgeLengthM(n,r);case I.km:return i.exactEdgeLengthKm(n,r);case I.rads:return i.exactEdgeLengthRads(n,r);default:throw new Error("Unknown unit: "+t)}}function le(e,t){switch(C(e),t){case I.m2:return i.hexAreaM2(e);case I.km2:return i.hexAreaKm2(e);default:throw new Error("Unknown unit: "+t)}}function Ie(e,t){switch(C(e),t){case I.m:return i.edgeLengthM(e);case I.km:return i.edgeLengthKm(e);default:throw new Error("Unknown unit: "+t)}}function Ce(e){C(e);var t=Q(i.numHexagons(e)),A=t[0],n=t[1];return n?n*Math.pow(2,32)+A:A}function he(){var e=i.res0IndexCount(),t=n._malloc(o*e);i.getRes0Indexes(t);var A=b(t,e);return n._free(t),A}function fe(e){C(e);var t=i.pentagonIndexCount(),A=n._malloc(o*t);i.getPentagonIndexes(e,A);var r=b(A,t);return n._free(A),r}function de(e){return e*Math.PI/180}function Be(e){return 180*e/Math.PI}},function(e,t,A){var n=A(1e3),r=A(1003)((function(e,t,A){n(e,t,A)}));e.exports=r},function(e,t,A){"use strict";A.d(t,"a",(function(){return B}));var n=A(8),r=A(6),i=A(1),o=A(4),a=A(9),s=A(10),g=A(18),c=A(62),u=A(92),l=A(80),I=A(184),C=A(26),h=A(108),f=[9729,9728],d=c.global.WebGLBuffer||function(){},B=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(e,n){var r;Object(i.a)(this,A);var o=n.id,a=void 0===o?Object(h.c)("texture"):o,s=n.handle,g=n.target;return(r=t.call(this,e,{id:a,handle:s})).target=g,r.textureUnit=void 0,r.loaded=!1,r.width=void 0,r.height=void 0,r.depth=void 0,r.format=void 0,r.type=void 0,r.dataFormat=void 0,r.border=void 0,r.textureUnit=void 0,r.mipmaps=void 0,r}return Object(o.a)(A,null,[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.format,n=t.linearFiltering,r=!0;return A&&(r=(r=r&&Object(I.d)(e,A))&&(!n||Object(I.e)(e,A))),r}}]),Object(o.a)(A,[{key:"toString",value:function(){return"Texture(".concat(this.id,",").concat(this.width,"x").concat(this.height,")")}},{key:"initialize",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},A=t.data;if(A instanceof Promise)return A.then((function(A){return e.initialize(Object.assign({},t,{pixels:A,data:A}))})),this;var n="undefined"!==typeof HTMLVideoElement&&A instanceof HTMLVideoElement;if(n&&A.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,A.addEventListener("loadeddata",(function(){return e.initialize(t)})),this;var r=t.pixels,i=void 0===r?null:r,o=t.format,a=void 0===o?6408:o,s=t.border,c=void 0===s?0:s,u=t.recreate,l=void 0!==u&&u,I=t.parameters,C=void 0===I?{}:I,h=t.pixelStore,f=void 0===h?{}:h,d=t.textureUnit,B=void 0===d?void 0:d;A||(A=i);var p=t.width,E=t.height,Q=t.dataFormat,y=t.type,v=t.compressed,m=void 0!==v&&v,b=t.mipmaps,w=void 0===b||b,S=t.depth,F=void 0===S?0:S,R=this._deduceParameters({format:a,type:y,dataFormat:Q,compressed:m,data:A,width:p,height:E});return p=R.width,E=R.height,m=R.compressed,Q=R.dataFormat,y=R.type,this.width=p,this.height=E,this.depth=F,this.format=a,this.type=y,this.dataFormat=Q,this.border=c,this.textureUnit=B,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),w&&this._isNPOT()&&(g.k.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),w=!1,this._updateForNPOT(C)),this.mipmaps=w,this.setImageData({data:A,width:p,height:E,depth:F,format:a,type:y,dataFormat:Q,border:c,mipmaps:w,parameters:f,compressed:m}),w&&this.generateMipmap(),this.setParameters(C),l&&(this.data=A),n&&(this._video={video:A,parameters:C,lastTime:A.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?A.currentTime:-1}),this}},{key:"update",value:function(){if(this._video){var e=this._video,t=e.video,A=e.parameters;if(e.lastTime===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:A}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}},{key:"resize",value:function(e){var t=e.height,A=e.width,n=e.mipmaps,r=void 0!==n&&n;return A!==this.width||t!==this.height?this.initialize({width:A,height:t,format:this.format,type:this.type,dataFormat:this.dataFormat,border:this.border,mipmaps:r}):this}},{key:"generateMipmap",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._isNPOT()?(g.k.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),Object(g.o)(this.gl,t,(function(){e.gl.generateMipmap(e.target)})),this.gl.bindTexture(this.target,null),this)}},{key:"setImageData",value:function(e){this._trackDeallocatedMemory("Texture");var t=e.target,A=void 0===t?this.target:t,i=e.pixels,o=void 0===i?null:i,a=e.level,s=void 0===a?0:a,c=e.format,u=void 0===c?this.format:c,l=e.border,h=void 0===l?this.border:l,f=e.offset,d=void 0===f?0:f,B=e.parameters,p=void 0===B?{}:B,E=e.data,Q=void 0===E?null:E,y=e.type,v=void 0===y?this.type:y,m=e.width,b=void 0===m?this.width:m,w=e.height,S=void 0===w?this.height:w,F=e.dataFormat,R=void 0===F?this.dataFormat:F,D=e.compressed,G=void 0!==D&&D;Q||(Q=o);var k=this._deduceParameters({format:u,type:v,dataFormat:R,compressed:G,data:Q,width:b,height:S});v=k.type,R=k.dataFormat,G=k.compressed,b=k.width,S=k.height;var x=this.gl;x.bindTexture(this.target,this.handle);var N,U,_=this._getDataType({data:Q,compressed:G});if(Q=_.data,N=_.dataType,Object(g.o)(this.gl,p,(function(){switch(N){case"null":x.texImage2D(A,s,u,b,S,h,R,v,Q);break;case"typed-array":x.texImage2D(A,s,u,b,S,h,R,v,Q,d);break;case"buffer":(U=Object(g.a)(x)).bindBuffer(35052,Q.handle||Q),U.texImage2D(A,s,u,b,S,h,R,v,d),U.bindBuffer(35052,null);break;case"browser-object":Object(g.j)(x)?x.texImage2D(A,s,u,b,S,h,R,v,Q):x.texImage2D(A,s,u,R,v,Q);break;case"compressed":var e,t=Object(r.a)(Q.entries());try{for(t.s();!(e=t.n()).done;){var i=Object(n.a)(e.value,2),o=i[0],a=i[1];x.compressedTexImage2D(A,o,a.format,a.width,a.height,h,a.data)}}catch(c){t.e(c)}finally{t.f()}break;default:Object(C.a)(!1,"Unknown image data type")}})),Q&&Q.byteLength)this._trackAllocatedMemory(Q.byteLength,"Texture");else{var M=I.a[this.dataFormat]||4,O=I.c[this.type]||1;this._trackAllocatedMemory(this.width*this.height*M*O,"Texture")}return this.loaded=!0,this}},{key:"setSubImageData",value:function(e){var t=this,A=e.target,n=void 0===A?this.target:A,r=e.pixels,i=void 0===r?null:r,o=e.data,a=void 0===o?null:o,s=e.x,c=void 0===s?0:s,u=e.y,I=void 0===u?0:u,h=e.width,f=void 0===h?this.width:h,B=e.height,p=void 0===B?this.height:B,E=e.level,Q=void 0===E?0:E,y=e.format,v=void 0===y?this.format:y,m=e.type,b=void 0===m?this.type:m,w=e.dataFormat,S=void 0===w?this.dataFormat:w,F=e.compressed,R=void 0!==F&&F,D=e.offset,G=void 0===D?0:D,k=e.border,x=(void 0===k&&this.border,e.parameters),N=void 0===x?{}:x,U=this._deduceParameters({format:v,type:b,dataFormat:S,compressed:R,data:a,width:f,height:p});if(b=U.type,S=U.dataFormat,R=U.compressed,f=U.width,p=U.height,Object(C.a)(0===this.depth,"texSubImage not supported for 3D textures"),a||(a=i),a&&a.data){var _=a;a=_.data,f=_.shape[0],p=_.shape[1]}a instanceof l.a&&(a=a.handle),this.gl.bindTexture(this.target,this.handle),Object(g.o)(this.gl,N,(function(){if(R)t.gl.compressedTexSubImage2D(n,Q,c,I,f,p,v,a);else if(null===a)t.gl.texSubImage2D(n,Q,c,I,f,p,S,b,null);else if(ArrayBuffer.isView(a))t.gl.texSubImage2D(n,Q,c,I,f,p,S,b,a,G);else if(a instanceof d){var e=Object(g.a)(t.gl);e.bindBuffer(35052,a),e.texSubImage2D(n,Q,c,I,f,p,S,b,G),e.bindBuffer(35052,null)}else if(Object(g.j)(t.gl)){Object(g.a)(t.gl).texSubImage2D(n,Q,c,I,f,p,S,b,a)}else t.gl.texSubImage2D(n,Q,c,I,S,b,a)})),this.gl.bindTexture(this.target,null)}},{key:"copyFramebuffer",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];return g.k.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}},{key:"getActiveUnit",value:function(){return this.gl.getParameter(34016)-33984}},{key:"bind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.textureUnit,t=this.gl;return void 0!==e&&(this.textureUnit=e,t.activeTexture(33984+e)),t.bindTexture(this.target,this.handle),e}},{key:"unbind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.textureUnit,t=this.gl;return void 0!==e&&(this.textureUnit=e,t.activeTexture(33984+e)),t.bindTexture(this.target,null),e}},{key:"_getDataType",value:function(e){var t=e.data,A=e.compressed;return void 0!==A&&A?{data:t,dataType:"compressed"}:null===t?{data:t,dataType:"null"}:ArrayBuffer.isView(t)?{data:t,dataType:"typed-array"}:t instanceof l.a?{data:t.handle,dataType:"buffer"}:t instanceof d?{data:t,dataType:"buffer"}:{data:t,dataType:"browser-object"}}},{key:"_deduceParameters",value:function(e){var t=e.format,A=e.data,n=e.width,r=e.height,i=e.dataFormat,o=e.type,a=e.compressed,s=I.b[t];i=i||s&&s.dataFormat,o=o||s&&s.types[0],a=a||s&&s.compressed;var g=this._deduceImageSize(A,n,r);return{dataFormat:i,type:o,compressed:a,width:n=g.width,height:r=g.height,format:t,data:A}}},{key:"_deduceImageSize",value:function(e,t,A){var n;return n="undefined"!==typeof ImageData&&e instanceof ImageData?{width:e.width,height:e.height}:"undefined"!==typeof HTMLImageElement&&e instanceof HTMLImageElement?{width:e.naturalWidth,height:e.naturalHeight}:"undefined"!==typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&e instanceof ImageBitmap?{width:e.width,height:e.height}:"undefined"!==typeof HTMLVideoElement&&e instanceof HTMLVideoElement?{width:e.videoWidth,height:e.videoHeight}:e?{width:t,height:A}:{width:t>=0?t:1,height:A>=0?A:1},Object(C.a)(n,"Could not deduced texture size"),Object(C.a)(void 0===t||n.width===t,"Deduced texture width does not match supplied width"),Object(C.a)(void 0===A||n.height===A,"Deduced texture height does not match supplied height"),n}},{key:"_createHandle",value:function(){return this.gl.createTexture()}},{key:"_deleteHandle",value:function(){this.gl.deleteTexture(this.handle),this._trackDeallocatedMemory("Texture")}},{key:"_getParameter",value:function(e){switch(e){case 4096:return this.width;case 4097:return this.height;default:this.gl.bindTexture(this.target,this.handle);var t=this.gl.getTexParameter(this.target,e);return this.gl.bindTexture(this.target,null),t}}},{key:"_setParameter",value:function(e,t){switch(this.gl.bindTexture(this.target,this.handle),t=this._getNPOTParam(e,t),e){case 33082:case 33083:this.gl.texParameterf(this.handle,e,t);break;case 4096:case 4097:Object(C.a)(!1);break;default:this.gl.texParameteri(this.target,e,t)}return this.gl.bindTexture(this.target,null),this}},{key:"_isNPOT",value:function(){return!Object(g.j)(this.gl)&&(!(!this.width||!this.height)&&(!Object(h.b)(this.width)||!Object(h.b)(this.height)))}},{key:"_updateForNPOT",value:function(e){void 0===e[this.gl.TEXTURE_MIN_FILTER]&&(e[this.gl.TEXTURE_MIN_FILTER]=this.gl.LINEAR),void 0===e[this.gl.TEXTURE_WRAP_S]&&(e[this.gl.TEXTURE_WRAP_S]=this.gl.CLAMP_TO_EDGE),void 0===e[this.gl.TEXTURE_WRAP_T]&&(e[this.gl.TEXTURE_WRAP_T]=this.gl.CLAMP_TO_EDGE)}},{key:"_getNPOTParam",value:function(e,t){if(this._isNPOT())switch(e){case 10241:-1===f.indexOf(t)&&(t=9729);break;case 10242:case 10243:33071!==t&&(t=33071)}return t}}]),A}(u.a)},function(e,t,A){"use strict";function n(e,t,A){var n=t[0],r=t[1],i=A[3]*n+A[7]*r||1;return e[0]=(A[0]*n+A[4]*r)/i,e[1]=(A[1]*n+A[5]*r)/i,e}function r(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[3]*n+A[7]*r+A[11]*i||1;return e[0]=(A[0]*n+A[4]*r+A[8]*i)/o,e[1]=(A[1]*n+A[5]*r+A[9]*i)/o,e[2]=(A[2]*n+A[6]*r+A[10]*i)/o,e}function i(e,t,A){var n=t[0],r=t[1];return e[0]=A[0]*n+A[2]*r,e[1]=A[1]*n+A[3]*r,e[2]=t[2],e}function o(e,t,A){var n=t[0],r=t[1];return e[0]=A[0]*n+A[2]*r,e[1]=A[1]*n+A[3]*r,e[2]=t[2],e[3]=t[3],e}function a(e,t,A){var n=t[0],r=t[1],i=t[2];return e[0]=A[0]*n+A[3]*r+A[6]*i,e[1]=A[1]*n+A[4]*r+A[7]*i,e[2]=A[2]*n+A[5]*r+A[8]*i,e[3]=t[3],e}A.d(t,"a",(function(){return n})),A.d(t,"c",(function(){return r})),A.d(t,"b",(function(){return i})),A.d(t,"d",(function(){return o})),A.d(t,"e",(function(){return a}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return r})),A.d(t,"i",(function(){return i})),A.d(t,"d",(function(){return o})),A.d(t,"b",(function(){return a})),A.d(t,"e",(function(){return s})),A.d(t,"h",(function(){return g})),A.d(t,"f",(function(){return c})),A.d(t,"g",(function(){return u})),A.d(t,"c",(function(){return l}));var n=A(30);function r(){var e=new n.a(9);return n.a!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function i(e,t){if(e===t){var A=t[1],n=t[2],r=t[5];e[1]=t[3],e[2]=t[6],e[3]=A,e[5]=t[7],e[6]=n,e[7]=r}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function o(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=t[4],a=t[5],s=t[6],g=t[7],c=t[8],u=c*o-a*g,l=-c*i+a*s,I=g*i-o*s,C=A*u+n*l+r*I;return C?(C=1/C,e[0]=u*C,e[1]=(-c*n+r*g)*C,e[2]=(a*n-r*o)*C,e[3]=l*C,e[4]=(c*A-r*s)*C,e[5]=(-a*A+r*i)*C,e[6]=I*C,e[7]=(-g*A+n*s)*C,e[8]=(o*A-n*i)*C,e):null}function a(e){var t=e[0],A=e[1],n=e[2],r=e[3],i=e[4],o=e[5],a=e[6],s=e[7],g=e[8];return t*(g*i-o*s)+A*(-g*r+o*a)+n*(s*r-i*a)}function s(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=A[0],I=A[1],C=A[2],h=A[3],f=A[4],d=A[5],B=A[6],p=A[7],E=A[8];return e[0]=l*n+I*o+C*g,e[1]=l*r+I*a+C*c,e[2]=l*i+I*s+C*u,e[3]=h*n+f*o+d*g,e[4]=h*r+f*a+d*c,e[5]=h*i+f*s+d*u,e[6]=B*n+p*o+E*g,e[7]=B*r+p*a+E*c,e[8]=B*i+p*s+E*u,e}function g(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=A[0],I=A[1];return e[0]=n,e[1]=r,e[2]=i,e[3]=o,e[4]=a,e[5]=s,e[6]=l*n+I*o+g,e[7]=l*r+I*a+c,e[8]=l*i+I*s+u,e}function c(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=Math.sin(A),I=Math.cos(A);return e[0]=I*n+l*o,e[1]=I*r+l*a,e[2]=I*i+l*s,e[3]=I*o-l*n,e[4]=I*a-l*r,e[5]=I*s-l*i,e[6]=g,e[7]=c,e[8]=u,e}function u(e,t,A){var n=A[0],r=A[1];return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=r*t[3],e[4]=r*t[4],e[5]=r*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function l(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=A+A,a=n+n,s=r+r,g=A*o,c=n*o,u=n*a,l=r*o,I=r*a,C=r*s,h=i*o,f=i*a,d=i*s;return e[0]=1-u-C,e[3]=c-d,e[6]=l+f,e[1]=c+d,e[4]=1-g-C,e[7]=I-h,e[2]=l-f,e[5]=I+h,e[8]=1-g-u,e}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t,A){var n=A(251);function r(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return r=function(){return e},e}e.exports=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!==typeof e)return{default:e};var t=r();if(t&&t.has(e))return t.get(e);var A={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=i?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(A,o,a):A[o]=e[o]}return A.default=e,t&&t.set(e,A),A}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n.createSvgIcon}});var n=A(654)},function(e,t,A){"use strict";var n=Math.sqrt(50),r=Math.sqrt(10),i=Math.sqrt(2);var o=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function a(e){if(!(t=o.exec(e)))throw new Error("invalid format: "+e);var t;return new s({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function s(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}a.prototype=s.prototype,s.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};function g(e,t){if((A=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var A,n=e.slice(0,A);return[n.length>1?n[0]+n.slice(2):n,+e.slice(A+1)]}var c,u,l,I,C=function(e){return(e=g(Math.abs(e)))?e[1]:NaN},h=function(e,t){var A=g(e,t);if(!A)return e+"";var n=A[0],r=A[1];return r<0?"0."+new Array(-r).join("0")+n:n.length>r+1?n.slice(0,r+1)+"."+n.slice(r+1):n+new Array(r-n.length+2).join("0")},f={"%":function(e,t){return(100*e).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return h(100*e,t)},r:h,s:function(e,t){var A=g(e,t);if(!A)return e+"";var n=A[0],r=A[1],i=r-(c=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,o=n.length;return i===o?n:i>o?n+new Array(i-o+1).join("0"):i>0?n.slice(0,i)+"."+n.slice(i):"0."+new Array(1-i).join("0")+g(e,Math.max(0,t+i-1))[0]},X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}},d=function(e){return e},B=Array.prototype.map,p=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"],E=function(e){var t,A,n=void 0===e.grouping||void 0===e.thousands?d:(t=B.call(e.grouping,Number),A=e.thousands+"",function(e,n){for(var r=e.length,i=[],o=0,a=t[0],s=0;r>0&&a>0&&(s+a+1>n&&(a=Math.max(1,n-s)),i.push(e.substring(r-=a,r+a)),!((s+=a+1)>n));)a=t[o=(o+1)%t.length];return i.reverse().join(A)}),r=void 0===e.currency?"":e.currency[0]+"",i=void 0===e.currency?"":e.currency[1]+"",o=void 0===e.decimal?".":e.decimal+"",s=void 0===e.numerals?d:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(B.call(e.numerals,String)),g=void 0===e.percent?"%":e.percent+"",u=void 0===e.minus?"\u2212":e.minus+"",l=void 0===e.nan?"NaN":e.nan+"";function I(e){var t=(e=a(e)).fill,A=e.align,I=e.sign,C=e.symbol,h=e.zero,d=e.width,B=e.comma,E=e.precision,Q=e.trim,y=e.type;"n"===y?(B=!0,y="g"):f[y]||(void 0===E&&(E=12),Q=!0,y="g"),(h||"0"===t&&"="===A)&&(h=!0,t="0",A="=");var v="$"===C?r:"#"===C&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",m="$"===C?i:/[%p]/.test(y)?g:"",b=f[y],w=/[defgprs%]/.test(y);function S(e){var r,i,a,g=v,C=m;if("c"===y)C=b(e)+C,e="";else{var f=(e=+e)<0||1/e<0;if(e=isNaN(e)?l:b(Math.abs(e),E),Q&&(e=function(e){e:for(var t,A=e.length,n=1,r=-1;n<A;++n)switch(e[n]){case".":r=t=n;break;case"0":0===r&&(r=n),t=n;break;default:if(!+e[n])break e;r>0&&(r=0)}return r>0?e.slice(0,r)+e.slice(t+1):e}(e)),f&&0===+e&&"+"!==I&&(f=!1),g=(f?"("===I?I:u:"-"===I||"("===I?"":I)+g,C=("s"===y?p[8+c/3]:"")+C+(f&&"("===I?")":""),w)for(r=-1,i=e.length;++r<i;)if(48>(a=e.charCodeAt(r))||a>57){C=(46===a?o+e.slice(r+1):e.slice(r))+C,e=e.slice(0,r);break}}B&&!h&&(e=n(e,1/0));var S=g.length+e.length+C.length,F=S<d?new Array(d-S+1).join(t):"";switch(B&&h&&(e=n(F+e,F.length?d-C.length:1/0),F=""),A){case"<":e=g+e+C+F;break;case"=":e=g+F+e+C;break;case"^":e=F.slice(0,S=F.length>>1)+g+e+C+F.slice(S);break;default:e=F+g+e+C}return s(e)}return E=void 0===E?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,E)):Math.max(0,Math.min(20,E)),S.toString=function(){return e+""},S}return{format:I,formatPrefix:function(e,t){var A=I(((e=a(e)).type="f",e)),n=3*Math.max(-8,Math.min(8,Math.floor(C(t)/3))),r=Math.pow(10,-n),i=p[8+n/3];return function(e){return A(r*e)+i}}}};u=E({thousands:",",grouping:[3],currency:["$",""]}),l=u.format,I=u.formatPrefix;var Q=A(46),y=A(5),v=A(1270),m=A(1271),b=A(1272),w=A(1273),S=A(1274),F=A(1275);function R(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function D(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function G(e,t,A){return{y:e,m:t,d:A,H:0,M:0,S:0,L:0}}function k(e){var t=e.dateTime,A=e.date,n=e.time,r=e.periods,i=e.days,o=e.shortDays,a=e.months,s=e.shortMonths,g=P(r),c=V(r),u=P(i),l=V(i),I=P(o),C=V(o),h=P(a),f=V(a),d=P(s),B=V(s),p={a:function(e){return o[e.getDay()]},A:function(e){return i[e.getDay()]},b:function(e){return s[e.getMonth()]},B:function(e){return a[e.getMonth()]},c:null,d:Ce,e:Ce,f:pe,g:De,G:ke,H:he,I:fe,j:de,L:Be,m:Ee,M:Qe,p:function(e){return r[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:tt,s:At,S:ye,u:ve,U:me,V:we,w:Se,W:Fe,x:null,X:null,y:Re,Y:Ge,Z:xe,"%":et},E={a:function(e){return o[e.getUTCDay()]},A:function(e){return i[e.getUTCDay()]},b:function(e){return s[e.getUTCMonth()]},B:function(e){return a[e.getUTCMonth()]},c:null,d:Ne,e:Ne,f:Le,g:Xe,G:ze,H:Ue,I:_e,j:Me,L:Oe,m:Te,M:Ze,p:function(e){return r[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:tt,s:At,S:He,u:Ye,U:Je,V:Pe,w:Ve,W:Ke,x:null,X:null,y:We,Y:qe,Z:$e,"%":et},Q={a:function(e,t,A){var n=I.exec(t.slice(A));return n?(e.w=C.get(n[0].toLowerCase()),A+n[0].length):-1},A:function(e,t,A){var n=u.exec(t.slice(A));return n?(e.w=l.get(n[0].toLowerCase()),A+n[0].length):-1},b:function(e,t,A){var n=d.exec(t.slice(A));return n?(e.m=B.get(n[0].toLowerCase()),A+n[0].length):-1},B:function(e,t,A){var n=h.exec(t.slice(A));return n?(e.m=f.get(n[0].toLowerCase()),A+n[0].length):-1},c:function(e,A,n){return F(e,t,A,n)},d:re,e:re,f:ce,g:ee,G:$,H:oe,I:oe,j:ie,L:ge,m:ne,M:ae,p:function(e,t,A){var n=g.exec(t.slice(A));return n?(e.p=c.get(n[0].toLowerCase()),A+n[0].length):-1},q:Ae,Q:le,s:Ie,S:se,u:W,U:X,V:q,w:K,W:z,x:function(e,t,n){return F(e,A,t,n)},X:function(e,t,A){return F(e,n,t,A)},y:ee,Y:$,Z:te,"%":ue};function y(e,t){return function(A){var n,r,i,o=[],a=-1,s=0,g=e.length;for(A instanceof Date||(A=new Date(+A));++a<g;)37===e.charCodeAt(a)&&(o.push(e.slice(s,a)),null!=(r=T[n=e.charAt(++a)])?n=e.charAt(++a):r="e"===n?" ":"0",(i=t[n])&&(n=i(A,r)),o.push(n),s=a+1);return o.push(e.slice(s,a)),o.join("")}}function S(e,t){return function(A){var n,r,i=G(1900,void 0,1);if(F(i,e,A+="",0)!=A.length)return null;if("Q"in i)return new Date(i.Q);if("s"in i)return new Date(1e3*i.s+("L"in i?i.L:0));if(t&&!("Z"in i)&&(i.Z=0),"p"in i&&(i.H=i.H%12+12*i.p),void 0===i.m&&(i.m="q"in i?i.q:0),"V"in i){if(i.V<1||i.V>53)return null;"w"in i||(i.w=1),"Z"in i?(r=(n=D(G(i.y,0,1))).getUTCDay(),n=r>4||0===r?v.a.ceil(n):Object(v.a)(n),n=m.a.offset(n,7*(i.V-1)),i.y=n.getUTCFullYear(),i.m=n.getUTCMonth(),i.d=n.getUTCDate()+(i.w+6)%7):(r=(n=R(G(i.y,0,1))).getDay(),n=r>4||0===r?b.a.ceil(n):Object(b.a)(n),n=w.a.offset(n,7*(i.V-1)),i.y=n.getFullYear(),i.m=n.getMonth(),i.d=n.getDate()+(i.w+6)%7)}else("W"in i||"U"in i)&&("w"in i||(i.w="u"in i?i.u%7:"W"in i?1:0),r="Z"in i?D(G(i.y,0,1)).getUTCDay():R(G(i.y,0,1)).getDay(),i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(r+5)%7:i.w+7*i.U-(r+6)%7);return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,D(i)):R(i)}}function F(e,t,A,n){for(var r,i,o=0,a=t.length,s=A.length;o<a;){if(n>=s)return-1;if(37===(r=t.charCodeAt(o++))){if(r=t.charAt(o++),!(i=Q[r in T?t.charAt(o++):r])||(n=i(e,A,n))<0)return-1}else if(r!=A.charCodeAt(n++))return-1}return n}return p.x=y(A,p),p.X=y(n,p),p.c=y(t,p),E.x=y(A,E),E.X=y(n,E),E.c=y(t,E),{format:function(e){var t=y(e+="",p);return t.toString=function(){return e},t},parse:function(e){var t=S(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=y(e+="",E);return t.toString=function(){return e},t},utcParse:function(e){var t=S(e+="",!0);return t.toString=function(){return e},t}}}var x,N,U,_,M,O,L,T={"-":"",_:" ",0:"0"},Z=/^\s*\d+/,H=/^%/,Y=/[\\^$*+?|[\]().{}]/g;function J(e,t,A){var n=e<0?"-":"",r=(n?-e:e)+"",i=r.length;return n+(i<A?new Array(A-i+1).join(t)+r:r)}function j(e){return e.replace(Y,"\\$&")}function P(e){return new RegExp("^(?:"+e.map(j).join("|")+")","i")}function V(e){return new Map(e.map((function(e,t){return[e.toLowerCase(),t]})))}function K(e,t,A){var n=Z.exec(t.slice(A,A+1));return n?(e.w=+n[0],A+n[0].length):-1}function W(e,t,A){var n=Z.exec(t.slice(A,A+1));return n?(e.u=+n[0],A+n[0].length):-1}function X(e,t,A){var n=Z.exec(t.slice(A,A+2));return n?(e.U=+n[0],A+n[0].length):-1}function q(e,t,A){var n=Z.exec(t.slice(A,A+2));return n?(e.V=+n[0],A+n[0].length):-1}function z(e,t,A){var n=Z.exec(t.slice(A,A+2));return n?(e.W=+n[0],A+n[0].length):-1}function $(e,t,A){var n=Z.exec(t.slice(A,A+4));return n?(e.y=+n[0],A+n[0].length):-1}function ee(e,t,A){var n=Z.exec(t.slice(A,A+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),A+n[0].length):-1}function te(e,t,A){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(A,A+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),A+n[0].length):-1}function Ae(e,t,A){var n=Z.exec(t.slice(A,A+1));return n?(e.q=3*n[0]-3,A+n[0].length):-1}function ne(e,t,A){var n=Z.exec(t.slice(A,A+2));return n?(e.m=n[0]-1,A+n[0].length):-1}function re(e,t,A){var n=Z.exec(t.slice(A,A+2));return n?(e.d=+n[0],A+n[0].length):-1}function ie(e,t,A){var n=Z.exec(t.slice(A,A+3));return n?(e.m=0,e.d=+n[0],A+n[0].length):-1}function oe(e,t,A){var n=Z.exec(t.slice(A,A+2));return n?(e.H=+n[0],A+n[0].length):-1}function ae(e,t,A){var n=Z.exec(t.slice(A,A+2));return n?(e.M=+n[0],A+n[0].length):-1}function se(e,t,A){var n=Z.exec(t.slice(A,A+2));return n?(e.S=+n[0],A+n[0].length):-1}function ge(e,t,A){var n=Z.exec(t.slice(A,A+3));return n?(e.L=+n[0],A+n[0].length):-1}function ce(e,t,A){var n=Z.exec(t.slice(A,A+6));return n?(e.L=Math.floor(n[0]/1e3),A+n[0].length):-1}function ue(e,t,A){var n=H.exec(t.slice(A,A+1));return n?A+n[0].length:-1}function le(e,t,A){var n=Z.exec(t.slice(A));return n?(e.Q=+n[0],A+n[0].length):-1}function Ie(e,t,A){var n=Z.exec(t.slice(A));return n?(e.s=+n[0],A+n[0].length):-1}function Ce(e,t){return J(e.getDate(),t,2)}function he(e,t){return J(e.getHours(),t,2)}function fe(e,t){return J(e.getHours()%12||12,t,2)}function de(e,t){return J(1+w.a.count(Object(S.a)(e),e),t,3)}function Be(e,t){return J(e.getMilliseconds(),t,3)}function pe(e,t){return Be(e,t)+"000"}function Ee(e,t){return J(e.getMonth()+1,t,2)}function Qe(e,t){return J(e.getMinutes(),t,2)}function ye(e,t){return J(e.getSeconds(),t,2)}function ve(e){var t=e.getDay();return 0===t?7:t}function me(e,t){return J(b.b.count(Object(S.a)(e)-1,e),t,2)}function be(e){var t=e.getDay();return t>=4||0===t?Object(b.c)(e):b.c.ceil(e)}function we(e,t){return e=be(e),J(b.c.count(Object(S.a)(e),e)+(4===Object(S.a)(e).getDay()),t,2)}function Se(e){return e.getDay()}function Fe(e,t){return J(b.a.count(Object(S.a)(e)-1,e),t,2)}function Re(e,t){return J(e.getFullYear()%100,t,2)}function De(e,t){return J((e=be(e)).getFullYear()%100,t,2)}function Ge(e,t){return J(e.getFullYear()%1e4,t,4)}function ke(e,t){var A=e.getDay();return J((e=A>=4||0===A?Object(b.c)(e):b.c.ceil(e)).getFullYear()%1e4,t,4)}function xe(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+J(t/60|0,"0",2)+J(t%60,"0",2)}function Ne(e,t){return J(e.getUTCDate(),t,2)}function Ue(e,t){return J(e.getUTCHours(),t,2)}function _e(e,t){return J(e.getUTCHours()%12||12,t,2)}function Me(e,t){return J(1+m.a.count(Object(F.a)(e),e),t,3)}function Oe(e,t){return J(e.getUTCMilliseconds(),t,3)}function Le(e,t){return Oe(e,t)+"000"}function Te(e,t){return J(e.getUTCMonth()+1,t,2)}function Ze(e,t){return J(e.getUTCMinutes(),t,2)}function He(e,t){return J(e.getUTCSeconds(),t,2)}function Ye(e){var t=e.getUTCDay();return 0===t?7:t}function Je(e,t){return J(v.b.count(Object(F.a)(e)-1,e),t,2)}function je(e){var t=e.getUTCDay();return t>=4||0===t?Object(v.c)(e):v.c.ceil(e)}function Pe(e,t){return e=je(e),J(v.c.count(Object(F.a)(e),e)+(4===Object(F.a)(e).getUTCDay()),t,2)}function Ve(e){return e.getUTCDay()}function Ke(e,t){return J(v.a.count(Object(F.a)(e)-1,e),t,2)}function We(e,t){return J(e.getUTCFullYear()%100,t,2)}function Xe(e,t){return J((e=je(e)).getUTCFullYear()%100,t,2)}function qe(e,t){return J(e.getUTCFullYear()%1e4,t,4)}function ze(e,t){var A=e.getUTCDay();return J((e=A>=4||0===A?Object(v.c)(e):v.c.ceil(e)).getUTCFullYear()%1e4,t,4)}function $e(){return"+0000"}function et(){return"%"}function tt(e){return+e}function At(e){return Math.floor(+e/1e3)}function nt(e){var t={};return function(A){return t[A]||(t[A]=e(A))}}function rt(e){var t=nt(e.format),A=e.formatPrefix;return{format:t,formatPrefix:A,formatFloat:function(e){var A,n,r=a(e||",");if(null==r.precision){switch(r.precision=12,r.type){case"%":r.precision-=2;break;case"e":r.precision-=1}return A=t(r),n=t(".1f")(1)[1],function(e){var t=A(e),r=t.indexOf(n);if(r<0)return t;for(var i=function(e,t){var A,n=e.lastIndexOf("e");if(n>0)return n;for(n=e.length;--n>t;)if((A=e.charCodeAt(n))>=48&&A<=57)return n+1}(t,r),o=i<t.length?t.slice(i):"";--i>r;)if("0"!==t[i]){++i;break}return t.slice(0,i)+o}}return t(r)},formatSpan:function(e,o,s,g){g=a(null==g?",f":g);var c,u=function(e,t,A){var o=Math.abs(t-e)/Math.max(0,A),a=Math.pow(10,Math.floor(Math.log(o)/Math.LN10)),s=o/a;return s>=n?a*=10:s>=r?a*=5:s>=i&&(a*=2),t<e?-a:a}(e,o,s),l=Math.max(Math.abs(e),Math.abs(o));if(null==g.precision)switch(g.type){case"s":return isNaN(c=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(C(t)/3)))-C(Math.abs(e)))}(u,l))||(g.precision=c),A(g,l);case"":case"e":case"g":case"p":case"r":isNaN(c=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,C(t)-C(e))+1}(u,l))||(g.precision=c-("e"===g.type));break;case"f":case"%":isNaN(c=function(e){return Math.max(0,-C(Math.abs(e)))}(u))||(g.precision=c-2*("%"===g.type))}return t(g)}}}function it(){return O=rt({format:l,formatPrefix:I})}function ot(e){return rt(E(e))}function at(e){return arguments.length?O=ot(e):O}function st(e,t,A){A=A||{},Object(y.H)(A)||Object(y.o)("Invalid time multi-format specifier: ".concat(A));var n=t(Q.i),r=t(Q.f),i=t(Q.d),o=t(Q.a),a=t(Q.k),s=t(Q.g),g=t(Q.h),c=t(Q.l),u=e(A[Q.e]||".%L"),l=e(A[Q.i]||":%S"),I=e(A[Q.f]||"%I:%M"),C=e(A[Q.d]||"%I %p"),h=e(A[Q.a]||A[Q.b]||"%a %d"),f=e(A[Q.k]||"%b %d"),d=e(A[Q.g]||"%B"),B=e(A[Q.h]||"%B"),p=e(A[Q.l]||"%Y");return function(e){return(n(e)<e?u:r(e)<e?l:i(e)<e?I:o(e)<e?C:s(e)<e?a(e)<e?h:f:c(e)<e?g(e)<e?d:B:p)(e)}}function gt(e){var t=nt(e.format),A=nt(e.utcFormat);return{timeFormat:function(e){return Object(y.J)(e)?t(e):st(t,Q.p,e)},utcFormat:function(e){return Object(y.J)(e)?A(e):st(A,Q.v,e)},timeParse:nt(e.parse),utcParse:nt(e.utcParse)}}function ct(){return L=gt({format:N,parse:U,utcFormat:_,utcParse:M})}function ut(e){return gt(k(e))}function lt(e){return arguments.length?L=ut(e):L}!function(e){x=k(e),N=x.format,U=x.parse,_=x.utcFormat,M=x.utcParse}({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"]}),A.d(t,"a",(function(){return ht})),A.d(t,"b",(function(){return Ct})),A.d(t,"c",(function(){return at})),A.d(t,"d",(function(){return ft})),A.d(t,"e",(function(){return lt})),it(),ct();var It=function(e,t){return Object(y.p)({},e,t)};function Ct(e,t){var A=e?ot(e):at(),n=t?ut(t):lt();return It(A,n)}function ht(e,t){var A=arguments.length;return A&&2!==A&&Object(y.o)("defaultLocale expects either zero or two arguments."),A?It(at(e),lt(t)):It(at(),lt())}function ft(){return it(),ct(),ht()}},function(e,t,A){"use strict";(function(e,n){A.d(t,"b",(function(){return i})),A.d(t,"a",(function(){return o}));var r={self:"undefined"!==typeof self&&self,window:"undefined"!==typeof window&&window,global:"undefined"!==typeof e&&e,document:"undefined"!==typeof document&&document,process:"object"===typeof n&&n},i=r.window||r.self||r.global,o=r.process||{};console}).call(this,A(86),A(90))},function(e,t,A){"use strict";A.d(t,"a",(function(){return d}));var n=A(7),r=A(1),i=A(4),o=A(315),a=A(316),s={transitionDuration:0},g={transitionDuration:300,transitionEasing:function(e){return e},transitionInterruption:o.a.BREAK},c=function(e){return 1-(1-e)*(1-e)},u=["wheel"],l=["panstart","panmove","panend"],I=["pinchstart","pinchmove","pinchend"],C=["tripanstart","tripanmove","tripanend"],h=["doubletap"],f=["keydown"],d=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e),this.ControllerState=t,this.controllerState=null,this.controllerStateProps=null,this.eventManager=null,this.transitionManager=new o.b(t,Object(n.a)({},A,{onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}));var i=this.linearTransitionProps;this._transition=i&&Object(n.a)({},g,{transitionInterpolator:new a.a({transitionProps:i})}),this._events=null,this._interactionState={isDragging:!1},this._customEvents=[],this.onViewStateChange=null,this.onStateChange=null,this.handleEvent=this.handleEvent.bind(this),this.setProps(A)}return Object(i.a)(e,[{key:"finalize",value:function(){for(var e in this._events)this._events[e]&&this.eventManager.off(e,this.handleEvent);this.transitionManager.finalize()}},{key:"handleEvent",value:function(e){var t=this.ControllerState;this.controllerState=new t(Object(n.a)({makeViewport:this.makeViewport},this.controllerStateProps,{},this._state));var A=this._eventStartBlocked;switch(e.type){case"panstart":return!A&&this._onPanStart(e);case"panmove":return this._onPan(e);case"panend":return this._onPanEnd(e);case"pinchstart":return!A&&this._onPinchStart(e);case"pinchmove":return this._onPinch(e);case"pinchend":return this._onPinchEnd(e);case"tripanstart":return!A&&this._onTriplePanStart(e);case"tripanmove":return this._onTriplePan(e);case"tripanend":return this._onTriplePanEnd(e);case"doubletap":return this._onDoubleTap(e);case"wheel":return this._onWheel(e);case"keydown":return this._onKeyDown(e);default:return!1}}},{key:"getCenter",value:function(e){var t=this.controllerStateProps,A=t.x,n=t.y,r=e.offsetCenter;return[r.x-A,r.y-n]}},{key:"isPointInBounds",value:function(e,t){var A=this.controllerStateProps,n=A.width,r=A.height;if(t&&t.handled)return!1;var i=e[0]>=0&&e[0]<=n&&e[1]>=0&&e[1]<=r;return i&&t&&t.stopPropagation(),i}},{key:"isFunctionKeyPressed",value:function(e){var t=e.srcEvent;return Boolean(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}},{key:"isDragging",value:function(){return this._interactionState.isDragging}},{key:"blockEvents",value:function(e){var t=this,A=setTimeout((function(){t._eventStartBlocked===A&&(t._eventStartBlocked=null)}),e);this._eventStartBlocked=A}},{key:"setProps",value:function(e){"onViewStateChange"in e&&(this.onViewStateChange=e.onViewStateChange),"onStateChange"in e&&(this.onStateChange=e.onStateChange),"makeViewport"in e&&(this.makeViewport=e.makeViewport),"dragMode"in e&&(this.dragMode=e.dragMode),this.controllerStateProps=e,"eventManager"in e&&this.eventManager!==e.eventManager&&(this.eventManager=e.eventManager,this._events={},this.toggleEvents(this._customEvents,!0)),"transitionInterpolator"in e||(e.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(e);var t=e.inertia;!0===t&&(t=300),this.inertia=t;var A=e.scrollZoom,n=void 0===A||A,r=e.dragPan,i=void 0===r||r,o=e.dragRotate,a=void 0===o||o,s=e.doubleClickZoom,g=void 0===s||s,c=e.touchZoom,d=void 0===c||c,B=e.touchRotate,p=void 0!==B&&B,E=e.keyboard,Q=void 0===E||E,y=Boolean(this.onViewStateChange);this.toggleEvents(u,y&&n),this.toggleEvents(l,y&&(i||a)),this.toggleEvents(I,y&&(d||p)),this.toggleEvents(C,y&&p),this.toggleEvents(h,y&&g),this.toggleEvents(f,y&&Q),this.scrollZoom=n,this.dragPan=i,this.dragRotate=a,this.doubleClickZoom=g,this.touchZoom=d,this.touchRotate=p,this.keyboard=Q}},{key:"updateTransition",value:function(){this.transitionManager.updateTransition()}},{key:"toggleEvents",value:function(e,t){var A=this;this.eventManager&&e.forEach((function(e){A._events[e]!==t&&(A._events[e]=t,t?A.eventManager.on(e,A.handleEvent):A.eventManager.off(e,A.handleEvent))}))}},{key:"updateViewport",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Object(n.a)({},e.getViewportProps(),{},t),i=this.controllerState!==e;if(this._state=e.getState(),this._setInteractionState(A),i){var o=this.controllerState?this.controllerState.getViewportProps():null;this.onViewStateChange&&this.onViewStateChange({viewState:r,interactionState:this._interactionState,oldViewState:o})}}},{key:"_onTransition",value:function(e){this.onViewStateChange&&(e.interactionState=this._interactionState,this.onViewStateChange(e))}},{key:"_setInteractionState",value:function(e){Object.assign(this._interactionState,e),this.onStateChange&&this.onStateChange(this._interactionState)}},{key:"_onPanStart",value:function(e){var t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;var A=this.isFunctionKeyPressed(e)||e.rightButton;(this.invertPan||"pan"===this.dragMode)&&(A=!A);var n=this.controllerState[A?"panStart":"rotateStart"]({pos:t});return this._panMove=A,this.updateViewport(n,s,{isDragging:!0}),!0}},{key:"_onPan",value:function(e){return!!this.isDragging()&&(this._panMove?this._onPanMove(e):this._onPanRotate(e))}},{key:"_onPanEnd",value:function(e){return!!this.isDragging()&&(this._panMove?this._onPanMoveEnd(e):this._onPanRotateEnd(e))}},{key:"_onPanMove",value:function(e){if(!this.dragPan)return!1;var t=this.getCenter(e),A=this.controllerState.pan({pos:t});return this.updateViewport(A,s,{isDragging:!0,isPanning:!0}),!0}},{key:"_onPanMoveEnd",value:function(e){var t=this.inertia;if(this.dragPan&&t&&e.velocity){var A=this.getCenter(e),r=[A[0]+e.velocityX*t/2,A[1]+e.velocityY*t/2],i=this.controllerState.pan({pos:r}).panEnd();this.updateViewport(i,Object(n.a)({},this._getTransitionProps(),{transitionDuration:t,transitionEasing:c}),{isDragging:!1,isPanning:!0})}else{var o=this.controllerState.panEnd();this.updateViewport(o,null,{isDragging:!1,isPanning:!1})}return!0}},{key:"_onPanRotate",value:function(e){if(!this.dragRotate)return!1;var t=this.getCenter(e),A=this.controllerState.rotate({pos:t});return this.updateViewport(A,s,{isDragging:!0,isRotating:!0}),!0}},{key:"_onPanRotateEnd",value:function(e){var t=this.inertia;if(this.dragRotate&&t&&e.velocity){var A=this.getCenter(e),r=[A[0]+e.velocityX*t/2,A[1]+e.velocityY*t/2],i=this.controllerState.rotate({pos:r}).rotateEnd();this.updateViewport(i,Object(n.a)({},this._getTransitionProps(),{transitionDuration:t,transitionEasing:c}),{isDragging:!1,isRotating:!0})}else{var o=this.controllerState.rotateEnd();this.updateViewport(o,null,{isDragging:!1,isRotating:!1})}return!0}},{key:"_onWheel",value:function(e){if(!this.scrollZoom)return!1;e.preventDefault();var t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;var A=this.scrollZoom,r=A.speed,i=void 0===r?.01:r,o=A.smooth,a=void 0!==o&&o,s=e.delta,g=2/(1+Math.exp(-Math.abs(s*i)));s<0&&0!==g&&(g=1/g);var c=this.controllerState.zoom({pos:t,scale:g});return this.updateViewport(c,Object(n.a)({},this._getTransitionProps({around:t}),{transitionDuration:a?250:1}),{isZooming:!0,isPanning:!0}),!0}},{key:"_onTriplePanStart",value:function(e){var t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;var A=this.controllerState.rotateStart({pos:t});return this.updateViewport(A,s,{isDragging:!0}),!0}},{key:"_onTriplePan",value:function(e){if(!this.touchRotate)return!1;if(!this.isDragging())return!1;var t=this.getCenter(e);t[0]-=e.deltaX;var A=this.controllerState.rotate({pos:t});return this.updateViewport(A,s,{isDragging:!0,isRotating:!0}),!0}},{key:"_onTriplePanEnd",value:function(e){if(!this.isDragging())return!1;var t=this.inertia;if(this.touchRotate&&t&&e.velocityY){var A=this.getCenter(e),r=[A[0],A[1]+=e.velocityY*t/2],i=this.controllerState.rotate({pos:r});this.updateViewport(i,Object(n.a)({},this._getTransitionProps(),{transitionDuration:t,transitionEasing:c}),{isDragging:!1,isRotating:!0}),this.blockEvents(t)}else{var o=this.controllerState.rotateEnd();this.updateViewport(o,null,{isDragging:!1,isRotating:!1})}return!0}},{key:"_onPinchStart",value:function(e){var t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;var A=this.controllerState.zoomStart({pos:t}).rotateStart({pos:t});return this._startPinchRotation=e.rotation,this._lastPinchEvent=e,this.updateViewport(A,s,{isDragging:!0}),!0}},{key:"_onPinch",value:function(e){if(!this.touchZoom&&!this.touchRotate)return!1;if(!this.isDragging())return!1;var t=this.controllerState;if(this.touchZoom){var A=e.scale,n=this.getCenter(e);t=t.zoom({pos:n,scale:A})}if(this.touchRotate){var r=e.rotation;t=t.rotate({deltaAngleX:this._startPinchRotation-r})}return this.updateViewport(t,s,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),this._lastPinchEvent=e,!0}},{key:"_onPinchEnd",value:function(e){if(!this.isDragging())return!1;var t=this.inertia,A=this._lastPinchEvent;if(this.touchZoom&&t&&A&&e.scale!==A.scale){var r=this.getCenter(e),i=this.controllerState.rotateEnd(),o=Math.log2(e.scale),a=(o-Math.log2(A.scale))/(e.deltaTime-A.deltaTime),s=Math.pow(2,o+a*t/2);i=i.zoom({pos:r,scale:s}).zoomEnd(),this.updateViewport(i,Object(n.a)({},this._getTransitionProps({around:r}),{transitionDuration:t,transitionEasing:c}),{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(t)}else{var g=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(g,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return this._startPinchRotation=null,this._lastPinchEvent=null,!0}},{key:"_onDoubleTap",value:function(e){if(!this.doubleClickZoom)return!1;var t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;var A=this.isFunctionKeyPressed(e),n=this.controllerState.zoom({pos:t,scale:A?.5:2});return this.updateViewport(n,this._getTransitionProps({around:t}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}},{key:"_onKeyDown",value:function(e){if(!this.keyboard)return!1;var t,A=this.isFunctionKeyPressed(e),n=this.keyboard,r=n.zoomSpeed,i=n.moveSpeed,o=n.rotateSpeedX,a=n.rotateSpeedY,s=this.controllerState,g={};switch(e.srcEvent.code){case"Minus":t=A?s.zoomOut(r).zoomOut(r):s.zoomOut(r),g.isZooming=!0;break;case"Equal":t=A?s.zoomIn(r).zoomIn(r):s.zoomIn(r),g.isZooming=!0;break;case"ArrowLeft":A?(t=s.rotateLeft(o),g.isRotating=!0):(t=s.moveLeft(i),g.isPanning=!0);break;case"ArrowRight":A?(t=s.rotateRight(o),g.isRotating=!0):(t=s.moveRight(i),g.isPanning=!0);break;case"ArrowUp":A?(t=s.rotateUp(a),g.isRotating=!0):(t=s.moveUp(i),g.isPanning=!0);break;case"ArrowDown":A?(t=s.rotateDown(a),g.isRotating=!0):(t=s.moveDown(i),g.isPanning=!0);break;default:return!1}return this.updateViewport(t,this._getTransitionProps(),g),!0}},{key:"_getTransitionProps",value:function(e){var t=this._transition;return t?e?Object(n.a)({},t,{transitionInterpolator:new a.a(Object(n.a)({},e,{transitionProps:this.linearTransitionProps,makeViewport:this.controllerState.makeViewport}))}):t:s}},{key:"linearTransitionProps",get:function(){return null}},{key:"events",set:function(e){this.toggleEvents(this._customEvents,!1),this.toggleEvents(e,!0),this._customEvents=e,this.setProps(this.controllerStateProps)}}]),e}()},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(96),a=/([0-9]+\.?[0-9]*)(%|px)/;function s(e){switch(typeof e){case"number":return{position:e,relative:!1};case"string":var t=e.match(a);if(t&&t.length>=3){var A="%"===t[2],n=parseFloat(t[1]);return{position:A?n/100:n,relative:A}}default:throw new Error("Could not parse position string ".concat(e))}}function g(e,t){return e.relative?Math.round(e.position*t):e.position}var c=A(163),u=A(87);A.d(t,"a",(function(){return l}));var l=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(r.a)(this,e);var A=t.id,i=void 0===A?null:A,a=t.x,s=void 0===a?0:a,g=t.y,c=void 0===g?0:g,l=t.width,I=void 0===l?"100%":l,C=t.height,h=void 0===C?"100%":C,f=t.viewportInstance,d=t.type,B=void 0===d?o.a:d;Object(u.a)(!f||f instanceof o.a),this.viewportInstance=f,this.id=i||this.constructor.displayName||"view",this.type=B,this.props=Object(n.a)({},t,{id:this.id}),this._parseDimensions({x:s,y:c,width:I,height:h}),this.equals=this.equals.bind(this),Object.seal(this)}return Object(i.a)(e,[{key:"equals",value:function(e){return this===e||(this.viewportInstance?e.viewportInstance&&this.viewportInstance.equals(e.viewportInstance):Object(c.a)(this.props,e.props))}},{key:"makeViewport",value:function(e){var t=e.width,A=e.height,n=e.viewState;if(this.viewportInstance)return this.viewportInstance;n=this.filterViewState(n);var r=this.getDimensions({width:t,height:A});return this._getViewport(n,r)}},{key:"getViewStateId",value:function(){switch(typeof this.props.viewState){case"string":return this.props.viewState;case"object":return this.props.viewState&&this.props.viewState.id;default:return this.id}}},{key:"filterViewState",value:function(e){if(this.props.viewState&&"object"===typeof this.props.viewState){if(!this.props.viewState.id)return this.props.viewState;var t=Object(n.a)({},e);for(var A in this.props.viewState)"id"!==A&&(t[A]=this.props.viewState[A]);return t}return e}},{key:"getDimensions",value:function(e){var t=e.width,A=e.height;return{x:g(this._x,t),y:g(this._y,A),width:g(this._width,t),height:g(this._height,A)}}},{key:"_getControllerProps",value:function(e){var t=this.props.controller;return t?!0===t?e:("function"===typeof t&&(t={type:t}),Object(n.a)({},e,{},t)):null}},{key:"_getViewport",value:function(e,t){return new(0,this.type)(Object(n.a)({},e,{},this.props,{},t))}},{key:"_parseDimensions",value:function(e){var t=e.x,A=e.y,n=e.width,r=e.height;this._x=s(t),this._y=s(A),this._width=s(n),this._height=s(r)}}]),e}()},function(e,t,A){"use strict";A.d(t,"a",(function(){return g}));var n=A(7),r=A(1),i=A(4),o=A(108),a=A(26),s={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},g=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(r.a)(this,e);var A=t.id,n=void 0===A?Object(o.c)("geometry"):A,i=t.drawMode,a=void 0===i?s.TRIANGLES:i,g=t.attributes,c=void 0===g?{}:g,u=t.indices,l=void 0===u?null:u,I=t.vertexCount,C=void 0===I?null:I;this.id=n,this.drawMode=0|a,this.attributes={},this.userData={},this._setAttributes(c,l),this.vertexCount=C||this._calculateVertexCount(this.attributes,this.indices)}return Object(i.a)(e,null,[{key:"DRAW_MODE",get:function(){return s}}]),Object(i.a)(e,[{key:"getVertexCount",value:function(){return this.vertexCount}},{key:"getAttributes",value:function(){return this.indices?Object(n.a)({indices:this.indices},this.attributes):this.attributes}},{key:"_print",value:function(e){return"Geometry ".concat(this.id," attribute ").concat(e)}},{key:"_setAttributes",value:function(e,t){for(var A in t&&(this.indices=ArrayBuffer.isView(t)?{value:t,size:1}:t),e){var n=e[A];n=ArrayBuffer.isView(n)?{value:n}:n,Object(a.a)(ArrayBuffer.isView(n.value),"".concat(this._print(A),": must be typed array or object with value as typed array")),"POSITION"!==A&&"positions"!==A||n.size||(n.size=3),"indices"===A?(Object(a.a)(!this.indices),this.indices=n):this.attributes[A]=n}return this.indices&&void 0!==this.indices.isIndexed&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this}},{key:"_calculateVertexCount",value:function(e,t){if(t)return t.value.length;var A=1/0;for(var n in e){var r=e[n],i=r.value,o=r.size;!r.constant&&i&&o>=1&&(A=Math.min(A,i.length/o))}return Object(a.a)(Number.isFinite(A)),A}},{key:"mode",get:function(){return this.drawMode}}]),e}()},function(e,t,A){"use strict";function n(e,t){"function"===typeof e?e(t):e&&(e.current=t)}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";var n=A(397);function r(e){return function(e){if(Array.isArray(e)){for(var t=0,A=new Array(e.length);t<e.length;t++)A[t]=e[t];return A}}(e)||Object(n.a)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}A.d(t,"a",(function(){return r}))},,function(e,t,A){"use strict";A.d(t,"a",(function(){return u}));var n=A(91),r=A(1),i=A(4),o=A(119),a=A(26),s=A(323),g={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},c={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},u=function(){function e(){var t=this;Object(r.a)(this,e);for(var A=arguments.length,n=new Array(A),i=0;i<A;i++)n[i]=arguments[i];n.forEach((function(e){return t._assign(e)})),Object.freeze(this)}return Object(i.a)(e,null,[{key:"getBytesPerElement",value:function(e){return Object(o.c)(e.type||5126).BYTES_PER_ELEMENT}},{key:"getBytesPerVertex",value:function(e){return Object(a.a)(e.size),Object(o.c)(e.type||5126).BYTES_PER_ELEMENT*e.size}},{key:"resolve",value:function(){for(var t=arguments.length,A=new Array(t),r=0;r<t;r++)A[r]=arguments[r];return Object(n.a)(e,[g].concat(A))}}]),Object(i.a)(e,[{key:"toString",value:function(){return JSON.stringify(this)}},{key:"_assign",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return void 0!==(e=Object(s.a)("Accessor",e,c)).type&&(this.type=e.type,5124!==e.type&&5125!==e.type||(this.integer=!0)),void 0!==e.size&&(this.size=e.size),void 0!==e.offset&&(this.offset=e.offset),void 0!==e.stride&&(this.stride=e.stride),void 0!==e.normalized&&(this.normalized=e.normalized),void 0!==e.integer&&(this.integer=e.integer),void 0!==e.divisor&&(this.divisor=e.divisor),void 0!==e.buffer&&(this.buffer=e.buffer),void 0!==e.index&&("boolean"===typeof e.index?this.index=e.index?1:0:this.index=e.index),void 0!==e.instanced&&(this.divisor=e.instanced?1:0),void 0!==e.isInstanced&&(this.divisor=e.isInstanced?1:0),this}},{key:"BYTES_PER_ELEMENT",get:function(){return e.getBytesPerElement(this)}},{key:"BYTES_PER_VERTEX",get:function(){return e.getBytesPerVertex(this)}}]),e}()},function(e,t,A){var n=A(543),r="object"==typeof self&&self&&self.Object===Object&&self,i=n||r||Function("return this")();e.exports=i},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(59);function r(e,t,A){if(null!==e)for(var n,i,o,a,s,g,c,u,l=0,I=0,C=e.type,h="FeatureCollection"===C,f="Feature"===C,d=h?e.features.length:1,B=0;B<d;B++){s=(u=!!(c=h?e.features[B].geometry:f?e.geometry:e)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var p=0;p<s;p++){var E=0,Q=0;if(null!==(a=u?c.geometries[p]:c)){g=a.coordinates;var y=a.type;switch(l=!A||"Polygon"!==y&&"MultiPolygon"!==y?0:1,y){case null:break;case"Point":if(!1===t(g,I,B,E,Q))return!1;I++,E++;break;case"LineString":case"MultiPoint":for(n=0;n<g.length;n++){if(!1===t(g[n],I,B,E,Q))return!1;I++,"MultiPoint"===y&&E++}"LineString"===y&&E++;break;case"Polygon":case"MultiLineString":for(n=0;n<g.length;n++){for(i=0;i<g[n].length-l;i++){if(!1===t(g[n][i],I,B,E,Q))return!1;I++}"MultiLineString"===y&&E++,"Polygon"===y&&Q++}"Polygon"===y&&E++;break;case"MultiPolygon":for(n=0;n<g.length;n++){for(Q=0,i=0;i<g[n].length;i++){for(o=0;o<g[n][i].length-l;o++){if(!1===t(g[n][i][o],I,B,E,Q))return!1;I++}Q++}E++}break;case"GeometryCollection":for(n=0;n<a.geometries.length;n++)if(!1===r(a.geometries[n],t,A))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function i(e,t){var A;switch(e.type){case"FeatureCollection":for(A=0;A<e.features.length&&!1!==t(e.features[A].properties,A);A++);break;case"Feature":t(e.properties,0)}}function o(e,t){if("Feature"===e.type)t(e,0);else if("FeatureCollection"===e.type)for(var A=0;A<e.features.length&&!1!==t(e.features[A],A);A++);}function a(e,t){var A,n,r,i,o,a,s,g,c,u,l=0,I="FeatureCollection"===e.type,C="Feature"===e.type,h=I?e.features.length:1;for(A=0;A<h;A++){for(a=I?e.features[A].geometry:C?e.geometry:e,g=I?e.features[A].properties:C?e.properties:{},c=I?e.features[A].bbox:C?e.bbox:void 0,u=I?e.features[A].id:C?e.id:void 0,o=(s=!!a&&"GeometryCollection"===a.type)?a.geometries.length:1,r=0;r<o;r++)if(null!==(i=s?a.geometries[r]:a))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,l,g,c,u))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],l,g,c,u))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,l,g,c,u))return!1;l++}}function s(e,t){a(e,(function(e,A,r,i,o){var a,s=null===e?null:e.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return!1!==t(n.feature(e,r,{bbox:i,id:o}),A,0)&&void 0}switch(s){case"MultiPoint":a="Point";break;case"MultiLineString":a="LineString";break;case"MultiPolygon":a="Polygon"}for(var g=0;g<e.coordinates.length;g++){var c={type:a,coordinates:e.coordinates[g]};if(!1===t(n.feature(c,r),A,g))return!1}}))}function g(e,t){s(e,(function(e,A,i){var o=0;if(e.geometry){var a=e.geometry.type;if("Point"!==a&&"MultiPoint"!==a){var s,g=0,c=0,u=0;return!1!==r(e,(function(r,a,l,I,C){if(void 0===s||A>g||I>c||C>u)return s=r,g=A,c=I,u=C,void(o=0);var h=n.lineString([s,r],e.properties);if(!1===t(h,A,i,C,o))return!1;o++,s=r}))&&void 0}}}))}function c(e,t){if(!e)throw new Error("geojson is required");s(e,(function(e,A,r){if(null!==e.geometry){var i=e.geometry.type,o=e.geometry.coordinates;switch(i){case"LineString":if(!1===t(e,A,r,0,0))return!1;break;case"Polygon":for(var a=0;a<o.length;a++)if(!1===t(n.lineString(o[a],e.properties),A,r,a))return!1}}}))}t.coordEach=r,t.coordReduce=function(e,t,A,n){var i=A;return r(e,(function(e,n,r,o,a){i=0===n&&void 0===A?e:t(i,e,n,r,o,a)}),n),i},t.propEach=i,t.propReduce=function(e,t,A){var n=A;return i(e,(function(e,r){n=0===r&&void 0===A?e:t(n,e,r)})),n},t.featureEach=o,t.featureReduce=function(e,t,A){var n=A;return o(e,(function(e,r){n=0===r&&void 0===A?e:t(n,e,r)})),n},t.coordAll=function(e){var t=[];return r(e,(function(e){t.push(e)})),t},t.geomEach=a,t.geomReduce=function(e,t,A){var n=A;return a(e,(function(e,r,i,o,a){n=0===r&&void 0===A?e:t(n,e,r,i,o,a)})),n},t.flattenEach=s,t.flattenReduce=function(e,t,A){var n=A;return s(e,(function(e,r,i){n=0===r&&0===i&&void 0===A?e:t(n,e,r,i)})),n},t.segmentEach=g,t.segmentReduce=function(e,t,A){var n=A,r=!1;return g(e,(function(e,i,o,a,s){n=!1===r&&void 0===A?e:t(n,e,i,o,a,s),r=!0})),n},t.lineEach=c,t.lineReduce=function(e,t,A){var n=A;return c(e,(function(e,r,i,o){n=0===r&&void 0===A?e:t(n,e,r,i,o)})),n},t.findSegment=function(e,t){if(t=t||{},!n.isObject(t))throw new Error("options is invalid");var A,r=t.featureIndex||0,i=t.multiFeatureIndex||0,o=t.geometryIndex||0,a=t.segmentIndex||0,s=t.properties;switch(e.type){case"FeatureCollection":r<0&&(r=e.features.length+r),s=s||e.features[r].properties,A=e.features[r].geometry;break;case"Feature":s=s||e.properties,A=e.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":A=e;break;default:throw new Error("geojson is invalid")}if(null===A)return null;var g=A.coordinates;switch(A.type){case"Point":case"MultiPoint":return null;case"LineString":return a<0&&(a=g.length+a-1),n.lineString([g[a],g[a+1]],s,t);case"Polygon":return o<0&&(o=g.length+o),a<0&&(a=g[o].length+a-1),n.lineString([g[o][a],g[o][a+1]],s,t);case"MultiLineString":return i<0&&(i=g.length+i),a<0&&(a=g[i].length+a-1),n.lineString([g[i][a],g[i][a+1]],s,t);case"MultiPolygon":return i<0&&(i=g.length+i),o<0&&(o=g[i].length+o),a<0&&(a=g[i][o].length-a-1),n.lineString([g[i][o][a],g[i][o][a+1]],s,t)}throw new Error("geojson is invalid")},t.findPoint=function(e,t){if(t=t||{},!n.isObject(t))throw new Error("options is invalid");var A,r=t.featureIndex||0,i=t.multiFeatureIndex||0,o=t.geometryIndex||0,a=t.coordIndex||0,s=t.properties;switch(e.type){case"FeatureCollection":r<0&&(r=e.features.length+r),s=s||e.features[r].properties,A=e.features[r].geometry;break;case"Feature":s=s||e.properties,A=e.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":A=e;break;default:throw new Error("geojson is invalid")}if(null===A)return null;var g=A.coordinates;switch(A.type){case"Point":return n.point(g,s,t);case"MultiPoint":return i<0&&(i=g.length+i),n.point(g[i],s,t);case"LineString":return a<0&&(a=g.length+a),n.point(g[a],s,t);case"Polygon":return o<0&&(o=g.length+o),a<0&&(a=g[o].length+a),n.point(g[o][a],s,t);case"MultiLineString":return i<0&&(i=g.length+i),a<0&&(a=g[i].length+a),n.point(g[i][a],s,t);case"MultiPolygon":return i<0&&(i=g.length+i),o<0&&(o=g[i].length+o),a<0&&(a=g[i][o].length-a),n.point(g[i][o][a],s,t)}throw new Error("geojson is invalid")}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.red=t.getContrastingColor=t.isValidHex=t.toState=t.simpleCheckForValidColor=void 0;var n=i(A(1007)),r=i(A(412));function i(e){return e&&e.__esModule?e:{default:e}}t.simpleCheckForValidColor=function(e){var t=0,A=0;return(0,n.default)(["r","g","b","a","h","s","l","v"],(function(n){if(e[n]&&(t+=1,isNaN(e[n])||(A+=1),"s"===n||"l"===n)){/^\d+%$/.test(e[n])&&(A+=1)}})),t===A&&e};var o=t.toState=function(e,t){var A=e.hex?(0,r.default)(e.hex):(0,r.default)(e),n=A.toHsl(),i=A.toHsv(),o=A.toRgb(),a=A.toHex();return 0===n.s&&(n.h=t||0,i.h=t||0),{hsl:n,hex:"000000"===a&&0===o.a?"transparent":"#"+a,rgb:o,hsv:i,oldHue:e.h||t||n.h,source:e.source}};t.isValidHex=function(e){var t="#"===String(e).charAt(0)?1:0;return e.length!==4+t&&e.length<7+t&&(0,r.default)(e).isValid()},t.getContrastingColor=function(e){if(!e)return"#fff";var t=o(e);return"transparent"===t.hex?"rgba(0,0,0,0.4)":(299*t.rgb.r+587*t.rgb.g+114*t.rgb.b)/1e3>=128?"#000":"#fff"},t.red={hsl:{a:1,h:0,l:.5,s:1},hex:"#ff0000",rgb:{r:255,g:0,b:0,a:1},hsv:{h:0,s:1,v:1,a:1}};t.default=t},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(59),r=A(105);function i(e,t,A){if(void 0===A&&(A={}),!0===A.final)return function(e,t){var A=i(t,e);return A=(A+180)%360}(e,t);var o=r.getCoord(e),a=r.getCoord(t),s=n.degreesToRadians(o[0]),g=n.degreesToRadians(a[0]),c=n.degreesToRadians(o[1]),u=n.degreesToRadians(a[1]),l=Math.sin(g-s)*Math.cos(u),I=Math.cos(c)*Math.sin(u)-Math.sin(c)*Math.cos(u)*Math.cos(g-s);return n.radiansToDegrees(Math.atan2(l,I))}t.default=i},function(e,t,A){var n=A(106);e.exports=function(e,t,A){return new n(e,A).compare(new n(t,A))}},function(e,t,A){var n=A(1123),r=A(505),i=A(299),o=A(300),a=function(){"use strict";function e(t,A){var n=this;if(i(this,e),A=g(A),t instanceof e)return t.loose===!!A.loose&&t.includePrerelease===!!A.includePrerelease?t:new e(t.raw,A);if(t instanceof c)return this.raw=t.value,this.set=[[t]],this.format(),this;if(this.options=A,this.loose=!!A.loose,this.includePrerelease=!!A.includePrerelease,this.raw=t,this.set=t.split(/\s*\|\|\s*/).map((function(e){return n.parseRange(e.trim())})).filter((function(e){return e.length})),!this.set.length)throw new TypeError("Invalid SemVer Range: ".concat(t));if(this.set.length>1){var o=this.set[0];if(this.set=this.set.filter((function(e){return!p(e[0])})),0===this.set.length)this.set=[o];else if(this.set.length>1){var a,s=r(this.set);try{for(s.s();!(a=s.n()).done;){var u=a.value;if(1===u.length&&E(u[0])){this.set=[u];break}}}catch(l){s.e(l)}finally{s.f()}}}this.format()}return o(e,[{key:"format",value:function(){return this.range=this.set.map((function(e){return e.join(" ").trim()})).join("||").trim(),this.range}},{key:"toString",value:function(){return this.range}},{key:"parseRange",value:function(e){var t=this;e=e.trim();var A=Object.keys(this.options).join(","),i="parseRange:".concat(A,":").concat(e),o=s.get(i);if(o)return o;var a=this.options.loose,g=a?C[h.HYPHENRANGELOOSE]:C[h.HYPHENRANGE];e=e.replace(g,k(this.options.includePrerelease)),u("hyphen replace",e),e=e.replace(C[h.COMPARATORTRIM],f),u("comparator trim",e,C[h.COMPARATORTRIM]),e=(e=(e=e.replace(C[h.TILDETRIM],d)).replace(C[h.CARETTRIM],B)).split(/\s+/).join(" ");var l,I=a?C[h.COMPARATORLOOSE]:C[h.COMPARATOR],E=e.split(" ").map((function(e){return y(e,t.options)})).join(" ").split(/\s+/).map((function(e){return G(e,t.options)})).filter(this.options.loose?function(e){return!!e.match(I)}:function(){return!0}).map((function(e){return new c(e,t.options)})),Q=(E.length,new Map),v=r(E);try{for(v.s();!(l=v.n()).done;){var m=l.value;if(p(m))return[m];Q.set(m.value,m)}}catch(w){v.e(w)}finally{v.f()}Q.size>1&&Q.has("")&&Q.delete("");var b=n(Q.values());return s.set(i,b),b}},{key:"intersects",value:function(t,A){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some((function(e){return Q(e,A)&&t.set.some((function(t){return Q(t,A)&&e.every((function(e){return t.every((function(t){return e.intersects(t,A)}))}))}))}))}},{key:"test",value:function(e){if(!e)return!1;if("string"===typeof e)try{e=new l(e,this.options)}catch(A){return!1}for(var t=0;t<this.set.length;t++)if(x(this.set[t],e,this.options))return!0;return!1}}]),e}();e.exports=a;var s=new(A(1127))({max:1e3}),g=A(372),c=A(374),u=A(371),l=A(106),I=A(260),C=I.re,h=I.t,f=I.comparatorTrimReplace,d=I.tildeTrimReplace,B=I.caretTrimReplace,p=function(e){return"<0.0.0-0"===e.value},E=function(e){return""===e.value},Q=function(e,t){for(var A=!0,n=e.slice(),r=n.pop();A&&n.length;)A=n.every((function(e){return r.intersects(e,t)})),r=n.pop();return A},y=function(e,t){return u("comp",e,t),e=w(e,t),u("caret",e),e=m(e,t),u("tildes",e),e=F(e,t),u("xrange",e),e=D(e,t),u("stars",e),e},v=function(e){return!e||"x"===e.toLowerCase()||"*"===e},m=function(e,t){return e.trim().split(/\s+/).map((function(e){return b(e,t)})).join(" ")},b=function(e,t){var A=t.loose?C[h.TILDELOOSE]:C[h.TILDE];return e.replace(A,(function(t,A,n,r,i){var o;return u("tilde",e,t,A,n,r,i),v(A)?o="":v(n)?o=">=".concat(A,".0.0 <").concat(+A+1,".0.0-0"):v(r)?o=">=".concat(A,".").concat(n,".0 <").concat(A,".").concat(+n+1,".0-0"):i?(u("replaceTilde pr",i),o=">=".concat(A,".").concat(n,".").concat(r,"-").concat(i," <").concat(A,".").concat(+n+1,".0-0")):o=">=".concat(A,".").concat(n,".").concat(r," <").concat(A,".").concat(+n+1,".0-0"),u("tilde return",o),o}))},w=function(e,t){return e.trim().split(/\s+/).map((function(e){return S(e,t)})).join(" ")},S=function(e,t){u("caret",e,t);var A=t.loose?C[h.CARETLOOSE]:C[h.CARET],n=t.includePrerelease?"-0":"";return e.replace(A,(function(t,A,r,i,o){var a;return u("caret",e,t,A,r,i,o),v(A)?a="":v(r)?a=">=".concat(A,".0.0").concat(n," <").concat(+A+1,".0.0-0"):v(i)?a="0"===A?">=".concat(A,".").concat(r,".0").concat(n," <").concat(A,".").concat(+r+1,".0-0"):">=".concat(A,".").concat(r,".0").concat(n," <").concat(+A+1,".0.0-0"):o?(u("replaceCaret pr",o),a="0"===A?"0"===r?">=".concat(A,".").concat(r,".").concat(i,"-").concat(o," <").concat(A,".").concat(r,".").concat(+i+1,"-0"):">=".concat(A,".").concat(r,".").concat(i,"-").concat(o," <").concat(A,".").concat(+r+1,".0-0"):">=".concat(A,".").concat(r,".").concat(i,"-").concat(o," <").concat(+A+1,".0.0-0")):(u("no pr"),a="0"===A?"0"===r?">=".concat(A,".").concat(r,".").concat(i).concat(n," <").concat(A,".").concat(r,".").concat(+i+1,"-0"):">=".concat(A,".").concat(r,".").concat(i).concat(n," <").concat(A,".").concat(+r+1,".0-0"):">=".concat(A,".").concat(r,".").concat(i," <").concat(+A+1,".0.0-0")),u("caret return",a),a}))},F=function(e,t){return u("replaceXRanges",e,t),e.split(/\s+/).map((function(e){return R(e,t)})).join(" ")},R=function(e,t){e=e.trim();var A=t.loose?C[h.XRANGELOOSE]:C[h.XRANGE];return e.replace(A,(function(A,n,r,i,o,a){u("xRange",e,A,n,r,i,o,a);var s=v(r),g=s||v(i),c=g||v(o),l=c;return"="===n&&l&&(n=""),a=t.includePrerelease?"-0":"",s?A=">"===n||"<"===n?"<0.0.0-0":"*":n&&l?(g&&(i=0),o=0,">"===n?(n=">=",g?(r=+r+1,i=0,o=0):(i=+i+1,o=0)):"<="===n&&(n="<",g?r=+r+1:i=+i+1),"<"===n&&(a="-0"),A="".concat(n+r,".").concat(i,".").concat(o).concat(a)):g?A=">=".concat(r,".0.0").concat(a," <").concat(+r+1,".0.0-0"):c&&(A=">=".concat(r,".").concat(i,".0").concat(a," <").concat(r,".").concat(+i+1,".0-0")),u("xRange return",A),A}))},D=function(e,t){return u("replaceStars",e,t),e.trim().replace(C[h.STAR],"")},G=function(e,t){return u("replaceGTE0",e,t),e.trim().replace(C[t.includePrerelease?h.GTE0PRE:h.GTE0],"")},k=function(e){return function(t,A,n,r,i,o,a,s,g,c,u,l,I){return A=v(n)?"":v(r)?">=".concat(n,".0.0").concat(e?"-0":""):v(i)?">=".concat(n,".").concat(r,".0").concat(e?"-0":""):o?">=".concat(A):">=".concat(A).concat(e?"-0":""),s=v(g)?"":v(c)?"<".concat(+g+1,".0.0-0"):v(u)?"<".concat(g,".").concat(+c+1,".0-0"):l?"<=".concat(g,".").concat(c,".").concat(u,"-").concat(l):e?"<".concat(g,".").concat(c,".").concat(+u+1,"-0"):"<=".concat(s),"".concat(A," ").concat(s).trim()}},x=function(e,t,A){for(var n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!A.includePrerelease){for(var r=0;r<e.length;r++)if(u(e[r].semver),e[r].semver!==c.ANY&&e[r].semver.prerelease.length>0){var i=e[r].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}},function(e,t,A){"use strict";e.exports=function e(t,A){if(t===A)return!0;if(t&&A&&"object"==typeof t&&"object"==typeof A){if(t.constructor!==A.constructor)return!1;var n,r,i;if(Array.isArray(t)){if((n=t.length)!=A.length)return!1;for(r=n;0!==r--;)if(!e(t[r],A[r]))return!1;return!0}if(t.constructor===RegExp)return t.source===A.source&&t.flags===A.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===A.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===A.toString();if((n=(i=Object.keys(t)).length)!==Object.keys(A).length)return!1;for(r=n;0!==r--;)if(!Object.prototype.hasOwnProperty.call(A,i[r]))return!1;for(r=n;0!==r--;){var o=i[r];if(!e(t[o],A[o]))return!1}return!0}return t!==t&&A!==A}},function(e,t,A){"use strict";function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0};return Array.isArray(e)?r(e,t,[]):t(e)?[e]:[]}function r(e,t,A){for(var n=-1;++n<e.length;){var i=e[n];Array.isArray(i)?r(i,t,A):t(i)&&A.push(i)}return A}function i(e){for(var t=e.target,A=e.source,n=e.start,r=void 0===n?0:n,i=e.count,o=void 0===i?1:i,a=A.length,s=o*a,g=0,c=r;g<a;g++)t[c++]=A[g];for(;g<s;)g<s-g?(t.copyWithin(r+g,r,r+g),g*=2):(t.copyWithin(r+g,r,r+s-g),g=s);return t}A.d(t,"b",(function(){return n})),A.d(t,"a",(function(){return i}))},function(e,t,A){"use strict";function n(e){var t,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:166;function n(){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];var o=this,a=function(){e.apply(o,r)};clearTimeout(t),t=setTimeout(a,A)}return n.clear=function(){clearTimeout(t)},n}A.d(t,"a",(function(){return n}))},function(e,t,A){var n=A(849),r=A(850);e.exports=function(e,t,A){var i=t&&A||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var o=(e=e||{}).random||(e.rng||n)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t)for(var a=0;a<16;++a)t[i+a]=o[a];return t||r(o)}},function(e,t,A){"use strict";var n=A(1),r=A(4),i=function(){function e(t){Object(n.a)(this,e),this._pool=[],this.props={overAlloc:2,poolSize:100},this.setProps(t)}return Object(r.a)(e,[{key:"setProps",value:function(e){Object.assign(this.props,e)}},{key:"allocate",value:function(e,t,A){var n,r=A.size,i=void 0===r?1:r,o=A.type,a=A.padding,s=void 0===a?0:a,g=A.copy,c=void 0!==g&&g,u=A.initialize,l=void 0!==u&&u,I=A.maxCount,C=o||e&&e.constructor||Float32Array,h=t*i+s;if(ArrayBuffer.isView(e)){if(h<=e.length)return e;if(h*e.BYTES_PER_ELEMENT<=e.buffer.byteLength)return new C(e.buffer,0,h)}I&&(n=I*i+s);var f=this._allocate(C,h,l,n);return e&&c?f.set(e):l||f.fill(0,0,4),this._release(e),f}},{key:"release",value:function(e){this._release(e)}},{key:"_allocate",value:function(e,t,A,n){var r=Math.max(Math.ceil(t*this.props.overAlloc),1);r>n&&(r=n);var i=this._pool,o=e.BYTES_PER_ELEMENT*r,a=i.findIndex((function(e){return e.byteLength>=o}));if(a>=0){var s=new e(i.splice(a,1)[0],0,r);return A&&s.fill(0),s}return new e(r)}},{key:"_release",value:function(e){if(ArrayBuffer.isView(e)){var t=this._pool,A=e.buffer,n=A.byteLength,r=t.findIndex((function(e){return e.byteLength>=n}));r<0?t.push(A):(r>0||t.length<this.props.poolSize)&&t.splice(r,0,A),t.length>this.props.poolSize&&t.shift()}}}]),e}();t.a=new i},function(e,t,A){"use strict";A.d(t,"b",(function(){return n})),A.d(t,"a",(function(){return r}));var n=function(e){return e.scrollTop};function r(e,t){var A=e.timeout,n=e.style,r=void 0===n?{}:n;return{duration:r.transitionDuration||"number"===typeof A?A:A[t.mode]||0,delay:r.transitionDelay}}},function(e,t,A){"use strict";A.d(t,"c",(function(){return c})),A.d(t,"e",(function(){return h})),A.d(t,"a",(function(){return d})),A.d(t,"b",(function(){return B})),A.d(t,"d",(function(){return E}));var n,r,i,o=A(8),a=A(11),s=A(2),g=A(72),c=(n={},Object(s.a)(n,3042,!1),Object(s.a)(n,32773,new Float32Array([0,0,0,0])),Object(s.a)(n,32777,32774),Object(s.a)(n,34877,32774),Object(s.a)(n,32969,1),Object(s.a)(n,32968,0),Object(s.a)(n,32971,1),Object(s.a)(n,32970,0),Object(s.a)(n,3106,new Float32Array([0,0,0,0])),Object(s.a)(n,3107,[!0,!0,!0,!0]),Object(s.a)(n,2884,!1),Object(s.a)(n,2885,1029),Object(s.a)(n,2929,!1),Object(s.a)(n,2931,1),Object(s.a)(n,2932,513),Object(s.a)(n,2928,new Float32Array([0,1])),Object(s.a)(n,2930,!0),Object(s.a)(n,3024,!0),Object(s.a)(n,36006,null),Object(s.a)(n,2886,2305),Object(s.a)(n,33170,4352),Object(s.a)(n,2849,1),Object(s.a)(n,32823,!1),Object(s.a)(n,32824,0),Object(s.a)(n,10752,0),Object(s.a)(n,32938,1),Object(s.a)(n,32939,!1),Object(s.a)(n,3089,!1),Object(s.a)(n,3088,new Int32Array([0,0,1024,1024])),Object(s.a)(n,2960,!1),Object(s.a)(n,2961,0),Object(s.a)(n,2968,4294967295),Object(s.a)(n,36005,4294967295),Object(s.a)(n,2962,519),Object(s.a)(n,2967,0),Object(s.a)(n,2963,4294967295),Object(s.a)(n,34816,519),Object(s.a)(n,36003,0),Object(s.a)(n,36004,4294967295),Object(s.a)(n,2964,7680),Object(s.a)(n,2965,7680),Object(s.a)(n,2966,7680),Object(s.a)(n,34817,7680),Object(s.a)(n,34818,7680),Object(s.a)(n,34819,7680),Object(s.a)(n,2978,[0,0,1024,1024]),Object(s.a)(n,3333,4),Object(s.a)(n,3317,4),Object(s.a)(n,37440,!1),Object(s.a)(n,37441,!1),Object(s.a)(n,37443,37444),Object(s.a)(n,35723,4352),Object(s.a)(n,36010,null),Object(s.a)(n,35977,!1),Object(s.a)(n,3330,0),Object(s.a)(n,3332,0),Object(s.a)(n,3331,0),Object(s.a)(n,3314,0),Object(s.a)(n,32878,0),Object(s.a)(n,3316,0),Object(s.a)(n,3315,0),Object(s.a)(n,32877,0),n),u=function(e,t,A){return t?e.enable(A):e.disable(A)},l=function(e,t,A){return e.hint(A,t)},I=function(e,t,A){return e.pixelStorei(A,t)};function C(e){return Array.isArray(e)||ArrayBuffer.isView(e)}var h=(r={},Object(s.a)(r,3042,u),Object(s.a)(r,32773,(function(e,t){return e.blendColor.apply(e,Object(a.a)(t))})),Object(s.a)(r,32777,"blendEquation"),Object(s.a)(r,34877,"blendEquation"),Object(s.a)(r,32969,"blendFunc"),Object(s.a)(r,32968,"blendFunc"),Object(s.a)(r,32971,"blendFunc"),Object(s.a)(r,32970,"blendFunc"),Object(s.a)(r,3106,(function(e,t){return e.clearColor.apply(e,Object(a.a)(t))})),Object(s.a)(r,3107,(function(e,t){return e.colorMask.apply(e,Object(a.a)(t))})),Object(s.a)(r,2884,u),Object(s.a)(r,2885,(function(e,t){return e.cullFace(t)})),Object(s.a)(r,2929,u),Object(s.a)(r,2931,(function(e,t){return e.clearDepth(t)})),Object(s.a)(r,2932,(function(e,t){return e.depthFunc(t)})),Object(s.a)(r,2928,(function(e,t){return e.depthRange.apply(e,Object(a.a)(t))})),Object(s.a)(r,2930,(function(e,t){return e.depthMask(t)})),Object(s.a)(r,3024,u),Object(s.a)(r,35723,l),Object(s.a)(r,36006,(function(e,t){var A=Object(g.e)(e)?36009:36160;return e.bindFramebuffer(A,t)})),Object(s.a)(r,2886,(function(e,t){return e.frontFace(t)})),Object(s.a)(r,33170,l),Object(s.a)(r,2849,(function(e,t){return e.lineWidth(t)})),Object(s.a)(r,32823,u),Object(s.a)(r,32824,"polygonOffset"),Object(s.a)(r,10752,"polygonOffset"),Object(s.a)(r,35977,u),Object(s.a)(r,32938,"sampleCoverage"),Object(s.a)(r,32939,"sampleCoverage"),Object(s.a)(r,3089,u),Object(s.a)(r,3088,(function(e,t){return e.scissor.apply(e,Object(a.a)(t))})),Object(s.a)(r,2960,u),Object(s.a)(r,2961,(function(e,t){return e.clearStencil(t)})),Object(s.a)(r,2968,(function(e,t){return e.stencilMaskSeparate(1028,t)})),Object(s.a)(r,36005,(function(e,t){return e.stencilMaskSeparate(1029,t)})),Object(s.a)(r,2962,"stencilFuncFront"),Object(s.a)(r,2967,"stencilFuncFront"),Object(s.a)(r,2963,"stencilFuncFront"),Object(s.a)(r,34816,"stencilFuncBack"),Object(s.a)(r,36003,"stencilFuncBack"),Object(s.a)(r,36004,"stencilFuncBack"),Object(s.a)(r,2964,"stencilOpFront"),Object(s.a)(r,2965,"stencilOpFront"),Object(s.a)(r,2966,"stencilOpFront"),Object(s.a)(r,34817,"stencilOpBack"),Object(s.a)(r,34818,"stencilOpBack"),Object(s.a)(r,34819,"stencilOpBack"),Object(s.a)(r,2978,(function(e,t){return e.viewport.apply(e,Object(a.a)(t))})),Object(s.a)(r,3333,I),Object(s.a)(r,3317,I),Object(s.a)(r,37440,I),Object(s.a)(r,37441,I),Object(s.a)(r,37443,I),Object(s.a)(r,3330,I),Object(s.a)(r,3332,I),Object(s.a)(r,3331,I),Object(s.a)(r,36010,(function(e,t){return e.bindFramebuffer(36008,t)})),Object(s.a)(r,3314,I),Object(s.a)(r,32878,I),Object(s.a)(r,3316,I),Object(s.a)(r,3315,I),Object(s.a)(r,32877,I),Object(s.a)(r,"framebuffer",(function(e,t){var A=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,A)})),Object(s.a)(r,"blend",(function(e,t){return t?e.enable(3042):e.disable(3042)})),Object(s.a)(r,"blendColor",(function(e,t){return e.blendColor.apply(e,Object(a.a)(t))})),Object(s.a)(r,"blendEquation",(function(e,t){t=C(t)?t:[t,t],e.blendEquationSeparate.apply(e,Object(a.a)(t))})),Object(s.a)(r,"blendFunc",(function(e,t){t=C(t)&&2===t.length?[].concat(Object(a.a)(t),Object(a.a)(t)):t,e.blendFuncSeparate.apply(e,Object(a.a)(t))})),Object(s.a)(r,"clearColor",(function(e,t){return e.clearColor.apply(e,Object(a.a)(t))})),Object(s.a)(r,"clearDepth",(function(e,t){return e.clearDepth(t)})),Object(s.a)(r,"clearStencil",(function(e,t){return e.clearStencil(t)})),Object(s.a)(r,"colorMask",(function(e,t){return e.colorMask.apply(e,Object(a.a)(t))})),Object(s.a)(r,"cull",(function(e,t){return t?e.enable(2884):e.disable(2884)})),Object(s.a)(r,"cullFace",(function(e,t){return e.cullFace(t)})),Object(s.a)(r,"depthTest",(function(e,t){return t?e.enable(2929):e.disable(2929)})),Object(s.a)(r,"depthFunc",(function(e,t){return e.depthFunc(t)})),Object(s.a)(r,"depthMask",(function(e,t){return e.depthMask(t)})),Object(s.a)(r,"depthRange",(function(e,t){return e.depthRange.apply(e,Object(a.a)(t))})),Object(s.a)(r,"dither",(function(e,t){return t?e.enable(3024):e.disable(3024)})),Object(s.a)(r,"derivativeHint",(function(e,t){e.hint(35723,t)})),Object(s.a)(r,"frontFace",(function(e,t){return e.frontFace(t)})),Object(s.a)(r,"mipmapHint",(function(e,t){return e.hint(33170,t)})),Object(s.a)(r,"lineWidth",(function(e,t){return e.lineWidth(t)})),Object(s.a)(r,"polygonOffsetFill",(function(e,t){return t?e.enable(32823):e.disable(32823)})),Object(s.a)(r,"polygonOffset",(function(e,t){return e.polygonOffset.apply(e,Object(a.a)(t))})),Object(s.a)(r,"sampleCoverage",(function(e,t){return e.sampleCoverage.apply(e,Object(a.a)(t))})),Object(s.a)(r,"scissorTest",(function(e,t){return t?e.enable(3089):e.disable(3089)})),Object(s.a)(r,"scissor",(function(e,t){return e.scissor.apply(e,Object(a.a)(t))})),Object(s.a)(r,"stencilTest",(function(e,t){return t?e.enable(2960):e.disable(2960)})),Object(s.a)(r,"stencilMask",(function(e,t){var A=t=C(t)?t:[t,t],n=Object(o.a)(A,2),r=n[0],i=n[1];e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)})),Object(s.a)(r,"stencilFunc",(function(e,t){var A=t=C(t)&&3===t.length?[].concat(Object(a.a)(t),Object(a.a)(t)):t,n=Object(o.a)(A,6),r=n[0],i=n[1],s=n[2],g=n[3],c=n[4],u=n[5];e.stencilFuncSeparate(1028,r,i,s),e.stencilFuncSeparate(1029,g,c,u)})),Object(s.a)(r,"stencilOp",(function(e,t){var A=t=C(t)&&3===t.length?[].concat(Object(a.a)(t),Object(a.a)(t)):t,n=Object(o.a)(A,6),r=n[0],i=n[1],s=n[2],g=n[3],c=n[4],u=n[5];e.stencilOpSeparate(1028,r,i,s),e.stencilOpSeparate(1029,g,c,u)})),Object(s.a)(r,"viewport",(function(e,t){return e.viewport.apply(e,Object(a.a)(t))})),r);function f(e,t,A){return void 0!==t[e]?t[e]:A[e]}var d={blendEquation:function(e,t,A){return e.blendEquationSeparate(f(32777,t,A),f(34877,t,A))},blendFunc:function(e,t,A){return e.blendFuncSeparate(f(32969,t,A),f(32968,t,A),f(32971,t,A),f(32970,t,A))},polygonOffset:function(e,t,A){return e.polygonOffset(f(32824,t,A),f(10752,t,A))},sampleCoverage:function(e,t,A){return e.sampleCoverage(f(32938,t,A),f(32939,t,A))},stencilFuncFront:function(e,t,A){return e.stencilFuncSeparate(1028,f(2962,t,A),f(2967,t,A),f(2963,t,A))},stencilFuncBack:function(e,t,A){return e.stencilFuncSeparate(1029,f(34816,t,A),f(36003,t,A),f(36004,t,A))},stencilOpFront:function(e,t,A){return e.stencilOpSeparate(1028,f(2964,t,A),f(2965,t,A),f(2966,t,A))},stencilOpBack:function(e,t,A){return e.stencilOpSeparate(1029,f(34817,t,A),f(34818,t,A),f(34819,t,A))}},B={enable:function(e,t){return e(Object(s.a)({},t,!0))},disable:function(e,t){return e(Object(s.a)({},t,!1))},pixelStorei:function(e,t,A){return e(Object(s.a)({},t,A))},hint:function(e,t,A){return e(Object(s.a)({},t,A))},bindFramebuffer:function(e,t,A){var n;switch(t){case 36160:return e((n={},Object(s.a)(n,36006,A),Object(s.a)(n,36010,A),n));case 36009:return e(Object(s.a)({},36006,A));case 36008:return e(Object(s.a)({},36010,A));default:return null}},blendColor:function(e,t,A,n,r){return e(Object(s.a)({},32773,new Float32Array([t,A,n,r])))},blendEquation:function(e,t){var A;return e((A={},Object(s.a)(A,32777,t),Object(s.a)(A,34877,t),A))},blendEquationSeparate:function(e,t,A){var n;return e((n={},Object(s.a)(n,32777,t),Object(s.a)(n,34877,A),n))},blendFunc:function(e,t,A){var n;return e((n={},Object(s.a)(n,32969,t),Object(s.a)(n,32968,A),Object(s.a)(n,32971,t),Object(s.a)(n,32970,A),n))},blendFuncSeparate:function(e,t,A,n,r){var i;return e((i={},Object(s.a)(i,32969,t),Object(s.a)(i,32968,A),Object(s.a)(i,32971,n),Object(s.a)(i,32970,r),i))},clearColor:function(e,t,A,n,r){return e(Object(s.a)({},3106,new Float32Array([t,A,n,r])))},clearDepth:function(e,t){return e(Object(s.a)({},2931,t))},clearStencil:function(e,t){return e(Object(s.a)({},2961,t))},colorMask:function(e,t,A,n,r){return e(Object(s.a)({},3107,[t,A,n,r]))},cullFace:function(e,t){return e(Object(s.a)({},2885,t))},depthFunc:function(e,t){return e(Object(s.a)({},2932,t))},depthRange:function(e,t,A){return e(Object(s.a)({},2928,new Float32Array([t,A])))},depthMask:function(e,t){return e(Object(s.a)({},2930,t))},frontFace:function(e,t){return e(Object(s.a)({},2886,t))},lineWidth:function(e,t){return e(Object(s.a)({},2849,t))},polygonOffset:function(e,t,A){var n;return e((n={},Object(s.a)(n,32824,t),Object(s.a)(n,10752,A),n))},sampleCoverage:function(e,t,A){var n;return e((n={},Object(s.a)(n,32938,t),Object(s.a)(n,32939,A),n))},scissor:function(e,t,A,n,r){return e(Object(s.a)({},3088,new Int32Array([t,A,n,r])))},stencilMask:function(e,t){var A;return e((A={},Object(s.a)(A,2968,t),Object(s.a)(A,36005,t),A))},stencilMaskSeparate:function(e,t,A){return e(Object(s.a)({},1028===t?2968:36005,A))},stencilFunc:function(e,t,A,n){var r;return e((r={},Object(s.a)(r,2962,t),Object(s.a)(r,2967,A),Object(s.a)(r,2963,n),Object(s.a)(r,34816,t),Object(s.a)(r,36003,A),Object(s.a)(r,36004,n),r))},stencilFuncSeparate:function(e,t,A,n,r){var i;return e((i={},Object(s.a)(i,1028===t?2962:34816,A),Object(s.a)(i,1028===t?2967:36003,n),Object(s.a)(i,1028===t?2963:36004,r),i))},stencilOp:function(e,t,A,n){var r;return e((r={},Object(s.a)(r,2964,t),Object(s.a)(r,2965,A),Object(s.a)(r,2966,n),Object(s.a)(r,34817,t),Object(s.a)(r,34818,A),Object(s.a)(r,34819,n),r))},stencilOpSeparate:function(e,t,A,n,r){var i;return e((i={},Object(s.a)(i,1028===t?2964:34817,A),Object(s.a)(i,1028===t?2965:34818,n),Object(s.a)(i,1028===t?2966:34819,r),i))},viewport:function(e,t,A,n,r){return e(Object(s.a)({},2978,[t,A,n,r]))}},p=function(e,t){return e.isEnabled(t)},E=(i={},Object(s.a)(i,3042,p),Object(s.a)(i,2884,p),Object(s.a)(i,2929,p),Object(s.a)(i,3024,p),Object(s.a)(i,32823,p),Object(s.a)(i,32926,p),Object(s.a)(i,32928,p),Object(s.a)(i,3089,p),Object(s.a)(i,2960,p),Object(s.a)(i,35977,p),i)},,function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,A){"use strict";(function(e){var n=A(32),r=A(568);A.d(t,"g",(function(){return r.a}));var i=A(221);A.d(t,"h",(function(){return i.a}));var o=A(569);A.d(t,"i",(function(){return o.a}));var a=A(570);A.d(t,"b",(function(){return a.a}));var s=A(286);A.d(t,"c",(function(){return s.a}));var g=A(319);A.d(t,"e",(function(){return g.a})),A.d(t,"u",(function(){return n.f})),A.d(t,"v",(function(){return n.g})),A.d(t,"A",(function(){return n.l})),A.d(t,"B",(function(){return n.m})),A.d(t,"t",(function(){return n.e})),A.d(t,"y",(function(){return n.j})),A.d(t,"z",(function(){return n.k})),A.d(t,"H",(function(){return n.s})),A.d(t,"G",(function(){return n.r})),A.d(t,"D",(function(){return n.o})),A.d(t,"x",(function(){return n.i})),A.d(t,"E",(function(){return n.p})),A.d(t,"w",(function(){return n.h})),A.d(t,"F",(function(){return n.q})),A.d(t,"o",(function(){return n.b})),A.d(t,"n",(function(){return n.a})),A.d(t,"q",(function(){return n.c})),A.d(t,"s",(function(){return n.d})),A.d(t,"C",(function(){return n.n})),A.d(t,"I",(function(){return n.t}));var c=A(33);A.d(t,"r",(function(){return c.a}));var u=A(571);A.d(t,"k",(function(){return u.a}));var l=A(354);A.d(t,"f",(function(){return l.a}));var I=A(355);A.d(t,"d",(function(){return I.a}));var C=A(197);A.d(t,"a",(function(){return C.a}));var h=A(97);A.d(t,"p",(function(){return h.a})),A.d(t,"m",(function(){return l.a})),A.d(t,"l",(function(){return I.a})),A.d(t,"j",(function(){return C.a}));var f={self:"undefined"!==typeof self&&self,window:"undefined"!==typeof window&&window,global:"undefined"!==typeof e&&e};(f.global||f.self||f.window).mathgl={config:n.f}}).call(this,A(86))},function(e,t,A){"use strict";function n(e,t){return function(){return null}}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return r(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return r(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function i(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function o(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?i(Object(A),!0).forEach((function(t){s(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):i(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function a(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function s(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}Object.defineProperty(t,"__esModule",{value:!0}),t.ImmutableFeatureCollection=void 0;var g=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),s(this,"featureCollection",void 0),this.featureCollection=t}var t,A,r;return t=e,(A=[{key:"getObject",value:function(){return this.featureCollection}},{key:"replacePosition",value:function(e,t,A){var n=this.featureCollection.features[e].geometry,r="Polygon"===n.type||"MultiPolygon"===n.type,i=o({},n,{coordinates:u(n.coordinates,t,A,r)});return this.replaceGeometry(e,i)}},{key:"removePosition",value:function(e,t){var A=this.featureCollection.features[e].geometry;if("Point"===A.type)throw Error("Can't remove a position from a Point or there'd be nothing left");if("MultiPoint"===A.type&&A.coordinates.length<2)throw Error("Can't remove the last point of a MultiPoint or there'd be nothing left");if("LineString"===A.type&&A.coordinates.length<3)throw Error("Can't remove position. LineString must have at least two positions");if("Polygon"===A.type&&A.coordinates[0].length<5&&Array.isArray(t)&&0===t[0])throw Error("Can't remove position. Polygon's outer ring must have at least four positions");if("MultiLineString"===A.type&&1===A.coordinates.length&&A.coordinates[0].length<3)throw Error("Can't remove position. MultiLineString must have at least two positions");if("MultiPolygon"===A.type&&1===A.coordinates.length&&A.coordinates[0][0].length<5&&Array.isArray(t)&&0===t[0]&&0===t[1])throw Error("Can't remove position. MultiPolygon's outer ring must have at least four positions");var n="Polygon"===A.type||"MultiPolygon"===A.type,r=o({},A,{coordinates:l(A.coordinates,t,n)});return function(e){switch(e.type){case"Polygon":!function(e){for(var t=e.coordinates,A=1;A<t.length;A++)C(t,A)&&A--}(e);break;case"MultiLineString":!function(e){for(var t=0;t<e.coordinates.length;t++)1===e.coordinates[t].length&&(e.coordinates.splice(t,1),t--)}(e);break;case"MultiPolygon":!function(e){for(var t=0;t<e.coordinates.length;t++){var A=e.coordinates[t];A[0].length<=3&&(e.coordinates.splice(t,1),t--);for(var n=1;n<A.length;n++)C(A,n)&&n--}}(e)}}(r),this.replaceGeometry(e,r)}},{key:"addPosition",value:function(e,t,A){var n=this.featureCollection.features[e].geometry;if("Point"===n.type)throw new Error("Unable to add a position to a Point feature");var r="Polygon"===n.type||"MultiPolygon"===n.type,i=o({},n,{coordinates:I(n.coordinates,t,A,r)});return this.replaceGeometry(e,i)}},{key:"replaceGeometry",value:function(t,A){var r=o({},this.featureCollection.features[t],{geometry:A});return new e(o({},this.featureCollection,{features:[].concat(n(this.featureCollection.features.slice(0,t)),[r],n(this.featureCollection.features.slice(t+1)))}))}},{key:"addFeature",value:function(e){return this.addFeatures([e])}},{key:"addFeatures",value:function(t){return new e(o({},this.featureCollection,{features:[].concat(n(this.featureCollection.features),n(t))}))}},{key:"deleteFeature",value:function(e){return this.deleteFeatures([e])}},{key:"deleteFeatures",value:function(t){var A=n(this.featureCollection.features);t.sort();for(var r=t.length-1;r>=0;r--){var i=t[r];i>=0&&i<A.length&&A.splice(i,1)}return new e(o({},this.featureCollection,{features:A}))}}])&&a(t.prototype,A),r&&a(t,r),e}();function c(e,t){if(2===e.length&&3===t.length){var A=t[2];return[e[0],e[1],A]}return e}function u(e,t,A,r){if(!t)return e;if(0===t.length)return c(A,e);if(1===t.length){var i=[].concat(n(e.slice(0,t[0])),[c(A,e[t[0]])],n(e.slice(t[0]+1)));return!r||0!==t[0]&&t[0]!==e.length-1||(i[0]=c(A,e[0]),i[e.length-1]=c(A,e[0])),i}return[].concat(n(e.slice(0,t[0])),[u(e[t[0]],t.slice(1,t.length),A,r)],n(e.slice(t[0]+1)))}function l(e,t,A){if(!t)return e;if(0===t.length)throw Error("Must specify the index of the position to remove");if(1===t.length){var r=[].concat(n(e.slice(0,t[0])),n(e.slice(t[0]+1)));return!A||0!==t[0]&&t[0]!==e.length-1||(0===t[0]?r[r.length-1]=r[0]:t[0]===e.length-1&&(r[0]=r[r.length-1])),r}return[].concat(n(e.slice(0,t[0])),[l(e[t[0]],t.slice(1,t.length),A)],n(e.slice(t[0]+1)))}function I(e,t,A,r){if(!t)return e;if(0===t.length)throw Error("Must specify the index of the position to remove");return 1===t.length?[].concat(n(e.slice(0,t[0])),[A],n(e.slice(t[0]))):[].concat(n(e.slice(0,t[0])),[I(e[t[0]],t.slice(1,t.length),A,r)],n(e.slice(t[0]+1)))}function C(e,t){return e[t].length<=3&&(e.splice(t,1),!0)}t.ImmutableFeatureCollection=g},function(e,t,A){"use strict";(function(e){A.d(t,"c",(function(){return I})),A.d(t,"b",(function(){return C})),A.d(t,"a",(function(){return h}));var n=A(1),r=A(4),i=A(152),o=A(196),a=A(85),s=A(322);function g(e,t){var A=e[t].bind(e);e[t]=function(){var t=arguments.length<=0?void 0:arguments[0];return t in e.state.cache&&e.state.enable?e.state.cache[t]:A.apply(void 0,arguments)},Object.defineProperty(e[t],"name",{value:"".concat(t,"-from-cache"),configurable:!1})}function c(e,t,A){var n=e[t].bind(e);e[t]=function(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];var o=A.apply(void 0,[e.state._updateCache].concat(r)),a=o.valueChanged,s=o.oldValue;return a&&n.apply(void 0,r),s},Object.defineProperty(e[t],"name",{value:"".concat(t,"-to-cache"),configurable:!1})}function u(e){var t=e.useProgram.bind(e);e.useProgram=function(A){e.state.program!==A&&(t(A),e.state.program=A)}}var l=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=A.copyState,a=void 0!==r&&r,s=A.log,g=void 0===s?function(){}:s;Object(n.a)(this,e),this.gl=t,this.program=null,this.stateStack=[],this.enable=!0,this.cache=a?Object(o.a)(t):Object.assign({},i.c),this.log=g,this._updateCache=this._updateCache.bind(this),Object.seal(this)}return Object(r.a)(e,[{key:"push",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.stateStack.push({})}},{key:"pop",value:function(){Object(a.a)(this.stateStack.length>0);var e=this.stateStack[this.stateStack.length-1];Object(o.c)(this.gl,e),this.stateStack.pop()}},{key:"_updateCache",value:function(e){var t,A=!1,n=this.stateStack.length>0&&this.stateStack[this.stateStack.length-1];for(var r in e){Object(a.a)(void 0!==r);var i=e[r],o=this.cache[r];Object(s.a)(i,o)||(A=!0,t=o,n&&!(r in n)&&(n[r]=o),this.cache[r]=i)}return{valueChanged:A,oldValue:t}}}]),e}();function I(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=A.enable,r=void 0===n||n,o=A.copyState;if(Object(a.a)(void 0!==o),!t.state){var s="undefined"!==typeof e?e:window,I=s.polyfillContext;for(var C in I&&I(t),t.state=new l(t,{copyState:o}),u(t),i.b){var h=i.b[C];c(t,C,h)}g(t,"getParameter"),g(t,"isEnabled")}return t.state.enable=r,t}function C(e){e.state||I(e,{copyState:!1}),e.state.push()}function h(e){Object(a.a)(e.state),e.state.pop()}}).call(this,A(86))},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(0);function r(e){var t=e.controlled,A=e.default,r=(e.name,e.state,n.useRef(void 0!==t).current),i=n.useState(A),o=i[0],a=i[1];return[r?t:o,n.useCallback((function(e){r||a(e)}),[])]}},function(e,t,A){"use strict";A.d(t,"a",(function(){return y}));var n=A(2),r=A(8),i=A(6),o=A(1),a=A(24),s=A(16),g=A(17),c=A(4),u=A(9),l=A(10),I=A(18),C=A(92),h=A(232),f=A(238),d=A(428),B=A(530),p=A(718),E=A(109),Q=A(26),y=function(e){Object(u.a)(A,e);var t=Object(l.a)(A);function A(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(o.a)(this,A),(n=t.call(this,e,r)).width=null,n.height=null,n.attachments={},n.readBuffer=36064,n.drawBuffers=[36064],n.ownResources=[],n.initialize(r),Object.seal(Object(a.a)(n)),n}return Object(c.a)(A,[{key:"MAX_COLOR_ATTACHMENTS",get:function(){var e=Object(I.a)(this.gl);return e.getParameter(e.MAX_COLOR_ATTACHMENTS)}},{key:"MAX_DRAW_BUFFERS",get:function(){var e=Object(I.a)(this.gl);return e.getParameter(e.MAX_DRAW_BUFFERS)}}],[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.colorBufferFloat,n=t.colorBufferHalfFloat,r=!0;return A&&(r=Boolean(e.getExtension("EXT_color_buffer_float")||e.getExtension("WEBGL_color_buffer_float")||e.getExtension("OES_texture_float"))),n&&(r=r&&Boolean(e.getExtension("EXT_color_buffer_float")||e.getExtension("EXT_color_buffer_half_float"))),r}},{key:"getDefaultFramebuffer",value:function(e){return e.luma=e.luma||{},e.luma.defaultFramebuffer=e.luma.defaultFramebuffer||new A(e,{id:"default-framebuffer",handle:null,attachments:{}}),e.luma.defaultFramebuffer}}]),Object(c.a)(A,[{key:"initialize",value:function(e){var t=e.width,A=void 0===t?1:t,n=e.height,r=void 0===n?1:n,i=e.attachments,o=void 0===i?null:i,a=e.color,s=void 0===a||a,g=e.depth,c=void 0===g||g,u=e.stencil,l=void 0!==u&&u,I=e.check,C=void 0===I||I,h=e.readBuffer,f=void 0===h?void 0:h,d=e.drawBuffers,B=void 0===d?void 0:d;if(Object(Q.a)(A>=0&&r>=0,"Width and height need to be integers"),this.width=A,this.height=r,o)for(var p in o){var E=o[p];(Array.isArray(E)?E[0]:E).resize({width:A,height:r})}else o=this._createDefaultAttachments(s,c,l,A,r);this.update({clearAttachments:!0,attachments:o,readBuffer:f,drawBuffers:B}),o&&C&&this.checkStatus()}},{key:"delete",value:function(){var e,t=Object(i.a)(this.ownResources);try{for(t.s();!(e=t.n()).done;){e.value.delete()}}catch(n){t.e(n)}finally{t.f()}return Object(g.a)(Object(s.a)(A.prototype),"delete",this).call(this),this}},{key:"update",value:function(e){var t=e.attachments,A=void 0===t?{}:t,n=e.readBuffer,r=e.drawBuffers,i=e.clearAttachments,o=void 0!==i&&i,a=e.resizeAttachments,s=void 0===a||a;this.attach(A,{clearAttachments:o,resizeAttachments:s});var g=this.gl,c=g.bindFramebuffer(36160,this.handle);return n&&this._setReadBuffer(n),r&&this._setDrawBuffers(r),g.bindFramebuffer(36160,c||null),this}},{key:"resize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.width,A=e.height;if(null===this.handle)return Object(Q.a)(void 0===t&&void 0===A),this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;for(var n in void 0===t&&(t=this.gl.drawingBufferWidth),void 0===A&&(A=this.gl.drawingBufferHeight),t!==this.width&&A!==this.height&&I.k.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(t,"x").concat(A))(),this.attachments)this.attachments[n].resize({width:t,height:A});return this.width=t,this.height=A,this}},{key:"attach",value:function(e){var t=this,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=A.clearAttachments,i=void 0!==n&&n,o=A.resizeAttachments,a=void 0===o||o,s={};i&&Object.keys(this.attachments).forEach((function(e){s[e]=null})),Object.assign(s,e);var g=this.gl.bindFramebuffer(36160,this.handle);for(var c in s){Object(Q.a)(void 0!==c,"Misspelled framebuffer binding point?");var u=Number(c),l=s[u],I=l;if(I)if(I instanceof f.a)this._attachRenderbuffer({attachment:u,renderbuffer:I});else if(Array.isArray(l)){var C=Object(r.a)(l,3),h=C[0],d=C[1],B=void 0===d?0:d,p=C[2],E=void 0===p?0:p;I=h,this._attachTexture({attachment:u,texture:h,layer:B,level:E})}else this._attachTexture({attachment:u,texture:I,layer:0,level:0});else this._unattach(u);a&&I&&I.resize({width:this.width,height:this.height})}this.gl.bindFramebuffer(36160,g||null),Object.assign(this.attachments,e),Object.keys(this.attachments).filter((function(e){return!t.attachments[e]})).forEach((function(e){delete t.attachments[e]}))}},{key:"checkStatus",value:function(){this.gl;var e=this.getStatus();if(36053!==e)throw new Error(v(e));return this}},{key:"getStatus",value:function(){var e=this.gl,t=e.bindFramebuffer(36160,this.handle),A=e.checkFramebufferStatus(36160);return e.bindFramebuffer(36160,t||null),A}},{key:"clear",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},A=t.color,n=t.depth,r=t.stencil,i=t.drawBuffers,o=void 0===i?[]:i,a=this.gl.bindFramebuffer(36160,this.handle);return(A||n||r)&&Object(d.a)(this.gl,{color:A,depth:n,stencil:r}),o.forEach((function(t,A){Object(d.b)(e.gl,{drawBuffer:A,value:t})})),this.gl.bindFramebuffer(36160,a||null),this}},{key:"readPixels",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];return I.k.error("Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)")(),null}},{key:"readPixelsToBuffer",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];return I.k.error("Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)")(),null}},{key:"copyToDataUrl",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];return I.k.error("Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)")(),null}},{key:"copyToImage",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];return I.k.error("Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)")(),null}},{key:"copyToTexture",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];return I.k.error("Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}},{key:"blit",value:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];return I.k.error("Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)")(),null}},{key:"invalidate",value:function(e){var t=e.attachments,A=void 0===t?[]:t,n=e.x,r=void 0===n?0:n,i=e.y,o=void 0===i?0:i,a=e.width,s=e.height,g=Object(I.a)(this.gl),c=g.bindFramebuffer(36008,this.handle);return 0===r&&0===o&&void 0===a&&void 0===s?g.invalidateFramebuffer(36008,A):g.invalidateFramebuffer(36008,A,r,o,a,s),g.bindFramebuffer(36008,c),this}},{key:"getAttachmentParameter",value:function(e,t,A){var n=this._getAttachmentParameterFallback(t);return null===n&&(this.gl.bindFramebuffer(36160,this.handle),n=this.gl.getFramebufferAttachmentParameter(36160,e,t),this.gl.bindFramebuffer(36160,null)),A&&n>1e3&&(n=Object(E.a)(this.gl,n)),n}},{key:"getAttachmentParameters",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:36064,A=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.constructor.ATTACHMENT_PARAMETERS||[],r={},o=Object(i.a)(n);try{for(o.s();!(e=o.n()).done;){var a=e.value,s=A?Object(E.a)(this.gl,a):a;r[s]=this.getAttachmentParameter(t,a,A)}}catch(g){o.e(g)}finally{o.f()}return r}},{key:"getParameters",value:function(){for(var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Object.keys(this.attachments),A={},n=0,r=t;n<r.length;n++){var i=r[n],o=Number(i),a=e?Object(E.a)(this.gl,o):o;A[a]=this.getAttachmentParameters(o,e)}return A}},{key:"show",value:function(){return"undefined"!==typeof window&&window.open(Object(B.a)(this),"luma-debug-texture"),this}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(e>I.k.level||"undefined"===typeof window)return this;t=t||"Framebuffer ".concat(this.id);var A=Object(B.a)(this,{targetMaxHeight:100});return I.k.image({logLevel:e,message:t,image:A},t)(),this}},{key:"bind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,A=void 0===t?36160:t;return this.gl.bindFramebuffer(A,this.handle),this}},{key:"unbind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,A=void 0===t?36160:t;return this.gl.bindFramebuffer(A,null),this}},{key:"_createDefaultAttachments",value:function(e,t,A,r,i){var o,a=null;e&&((a=a||{})[36064]=new h.a(this.gl,{id:"".concat(this.id,"-color0"),pixels:null,format:6408,type:5121,width:r,height:i,mipmaps:!1,parameters:(o={},Object(n.a)(o,10241,9729),Object(n.a)(o,10240,9729),Object(n.a)(o,10242,33071),Object(n.a)(o,10243,33071),o)}),this.ownResources.push(a[36064]));return t&&A?((a=a||{})[33306]=new f.a(this.gl,{id:"".concat(this.id,"-depth-stencil"),format:35056,width:r,height:111}),this.ownResources.push(a[33306])):t?((a=a||{})[36096]=new f.a(this.gl,{id:"".concat(this.id,"-depth"),format:33189,width:r,height:i}),this.ownResources.push(a[36096])):A&&Object(Q.a)(!1),a}},{key:"_unattach",value:function(e){var t=this.attachments[e];t&&(t instanceof f.a?this.gl.framebufferRenderbuffer(36160,e,36161,null):this.gl.framebufferTexture2D(36160,e,3553,null,0),delete this.attachments[e])}},{key:"_attachRenderbuffer",value:function(e){var t=e.attachment,A=void 0===t?36064:t,n=e.renderbuffer;this.gl.framebufferRenderbuffer(36160,A,36161,n.handle),this.attachments[A]=n}},{key:"_attachTexture",value:function(e){var t=e.attachment,A=void 0===t?36064:t,n=e.texture,r=e.layer,i=e.level,o=this.gl;switch(o.bindTexture(n.target,n.handle),n.target){case 35866:case 32879:Object(I.a)(o).framebufferTextureLayer(36160,A,n.target,i,r);break;case 34067:var a=function(e){return e<34069?e+34069:e}(r);o.framebufferTexture2D(36160,A,a,n.handle,i);break;case 3553:o.framebufferTexture2D(36160,A,3553,n.handle,i);break;default:Object(Q.a)(!1,"Illegal texture type")}o.bindTexture(n.target,null),this.attachments[A]=n}},{key:"_setReadBuffer",value:function(e){var t=Object(I.g)(this.gl);t?t.readBuffer(e):Object(Q.a)(36064===e||1029===e,"Multiple render targets not supported"),this.readBuffer=e}},{key:"_setDrawBuffers",value:function(e){var t=this.gl,A=Object(I.a)(t);if(A)A.drawBuffers(e);else{var n=t.getExtension("WEBGL_draw_buffers");n?n.drawBuffersWEBGL(e):Object(Q.a)(1===e.length&&(36064===e[0]||1029===e[0]),"Multiple render targets not supported")}this.drawBuffers=e}},{key:"_getAttachmentParameterFallback",value:function(e){var t=Object(p.a)(this.gl);switch(e){case 36052:return t.WEBGL2?null:0;case 33298:case 33299:case 33300:case 33301:case 33302:case 33303:return t.WEBGL2?null:8;case 33297:return t.WEBGL2?null:5125;case 33296:return t.WEBGL2||t.EXT_sRGB?null:9729;default:return null}}},{key:"_createHandle",value:function(){return this.gl.createFramebuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteFramebuffer(this.handle)}},{key:"_bindHandle",value:function(e){return this.gl.bindFramebuffer(36160,e)}},{key:"color",get:function(){return this.attachments[36064]||null}},{key:"texture",get:function(){return this.attachments[36064]||null}},{key:"depth",get:function(){return this.attachments[36096]||this.attachments[33306]||null}},{key:"stencil",get:function(){return this.attachments[36128]||this.attachments[33306]||null}}]),A}(C.a);function v(e){return(y.STATUS||{})[e]||"Framebuffer error ".concat(e)}y.ATTACHMENT_PARAMETERS=[36049,36048,33296,33298,33299,33300,33301,33302,33303]},function(e,t,A){"use strict";A.d(t,"a",(function(){return s}));var n=A(7),r=A(1),i=A(4);function o(){}var a={onStart:o,onUpdate:o,onInterrupt:o,onEnd:o},s=function(){function e(t){Object(r.a)(this,e),this._inProgress=!1,this._handle=null,this.timeline=t,this.settings={}}return Object(i.a)(e,[{key:"start",value:function(e){this.cancel(),this.settings=Object(n.a)({},a,{},e),this._inProgress=!0,this.settings.onStart(this)}},{key:"end",value:function(){this._inProgress&&(this.timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,this.settings.onEnd(this))}},{key:"cancel",value:function(){this._inProgress&&(this.settings.onInterrupt(this),this.timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1)}},{key:"update",value:function(){if(!this._inProgress)return!1;if(null===this._handle){var e=this.timeline,t=this.settings;this._handle=e.addChannel({delay:e.getTime(),duration:t.duration})}return this.time=this.timeline.getTime(this._handle),this._onUpdate(),this.settings.onUpdate(this),this.timeline.isFinished(this._handle)&&this.end(),!0}},{key:"_onUpdate",value:function(){}},{key:"inProgress",get:function(){return this._inProgress}}]),e}()},function(e,t,A){"use strict";function n(e,t){if(e===t)return!0;if(!e||!t)return!1;for(var A in e){var r=e[A],i=t[A];if(!(r===i||Array.isArray(r)&&Array.isArray(i)&&n(r,i)))return!1}return!0}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return s}));var n=A(3),r=A.n(n),i=A(12),o=A(1),a=A(4),s=function(){function e(){Object(o.a)(this,e)}return Object(a.a)(e,[{key:"fetch",value:function(){var e=Object(i.a)(r.a.mark((function e(t){var A,n=this,i=arguments;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=i.length>1&&void 0!==i[1]?i[1]:void 0,e.next=3,Promise.all(t.map((function(e){return n.fetchSlice(e,A)})));case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},{key:"fetchSlice",value:function(){var e=Object(i.a)(r.a.mark((function e(t){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("fetching of slice ".concat(t," not possible, not implemented"));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},{key:"close",value:function(){var e=Object(i.a)(r.a.mark((function e(){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()},{key:"fileSize",get:function(){return null}}]),e}()},function(e,t,A){"use strict";function n(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];return t.reduce((function(e,t){return null==t?e:function(){for(var A=arguments.length,n=new Array(A),r=0;r<A;r++)n[r]=arguments[r];e.apply(this,n),t.apply(this,n)}}),(function(){}))}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(e){var t=e.props,A=e.states,n=e.muiFormControl;return A.reduce((function(e,A){return e[A]=t[A],n&&"undefined"===typeof t[A]&&(e[A]=n[A]),e}),{})}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return i}));var n=A(0),r=A(230);function i(){return n.useContext(r.a)}},function(e,t,A){"use strict";A.d(t,"b",(function(){return n})),A.d(t,"a",(function(){return r})),A.d(t,"c",(function(){return i}));var n=6e4,r=864e5,i=6048e5},function(e,t,A){"use strict";A.d(t,"b",(function(){return n})),A.d(t,"a",(function(){return r}));var n="vs",r="fs"},function(e,t,A){"use strict";(function(e,n){A.d(t,"a",(function(){return i})),A.d(t,"b",(function(){return o})),A.d(t,"d",(function(){return a})),A.d(t,"c",(function(){return s}));var r={self:"undefined"!==typeof self&&self,window:"undefined"!==typeof window&&window,global:"undefined"!==typeof e&&e,document:"undefined"!==typeof document&&document},i=r.global||r.self||r.window||{},o="object"!==typeof n||"[object process]"!==String(n)||n.browser,a="function"===typeof importScripts,s="undefined"!==typeof window&&"undefined"!==typeof window.orientation,g="undefined"!==typeof n&&n.version&&/v([0-9]*)/.exec(n.version);g&&parseFloat(g[1])}).call(this,A(86),A(90))},,function(e,t,A){"use strict";var n=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",r="["+n+"][:A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",i=new RegExp("^"+r+"$");t.isExist=function(e){return"undefined"!==typeof e},t.isEmptyObject=function(e){return 0===Object.keys(e).length},t.merge=function(e,t,A){if(t)for(var n=Object.keys(t),r=n.length,i=0;i<r;i++)e[n[i]]="strict"===A?[t[n[i]]]:t[n[i]]},t.getValue=function(e){return t.isExist(e)?e:""},t.buildOptions=function(e,t,A){var n={};if(!e)return t;for(var r=0;r<A.length;r++)void 0!==e[A[r]]?n[A[r]]=e[A[r]]:n[A[r]]=t[A[r]];return n},t.isTagNameInArrayMode=function(e,t,A){return!1!==t&&(t instanceof RegExp?t.test(e):"function"===typeof t?!!t(e,A):"strict"===t)},t.isName=function(e){var t=i.exec(e);return!(null===t||"undefined"===typeof t)},t.getAllMatches=function(e,t){for(var A=[],n=t.exec(e);n;){var r=[];r.startIndex=t.lastIndex-n[0].length;for(var i=n.length,o=0;o<i;o++)r.push(n[o]);A.push(r),n=t.exec(e)}return A},t.nameRegexp=r},function(e,t,A){"use strict";function n(e,t){if(e===t)return!0;if(Array.isArray(e)){var A=e.length;if(!t||t.length!==A)return!1;for(var n=0;n<A;n++)if(e[n]!==t[n])return!1;return!0}return!1}function r(e){var t,A={};return function(r){for(var i in r)if(!n(r[i],A[i])){t=e(r),A=r;break}return t}}A.d(t,"a",(function(){return r}))},function(e,t,A){"use strict";var n=A(1157);t.a=function(e,t){return t?Object(n.a)(e,t,{clone:!1}):e}},function(e,t,A){"use strict";A.d(t,"c",(function(){return s})),A.d(t,"a",(function(){return g})),A.d(t,"b",(function(){return c}));var n,r=A(8),i=A(2),o=A(26),a=(n={},Object(i.a)(n,5126,[5126,1,"float"]),Object(i.a)(n,35664,[5126,2,"vec2"]),Object(i.a)(n,35665,[5126,3,"vec3"]),Object(i.a)(n,35666,[5126,4,"vec4"]),Object(i.a)(n,5124,[5124,1,"int"]),Object(i.a)(n,35667,[5124,2,"ivec2"]),Object(i.a)(n,35668,[5124,3,"ivec3"]),Object(i.a)(n,35669,[5124,4,"ivec4"]),Object(i.a)(n,5125,[5125,1,"uint"]),Object(i.a)(n,36294,[5125,2,"uvec2"]),Object(i.a)(n,36295,[5125,3,"uvec3"]),Object(i.a)(n,36296,[5125,4,"uvec4"]),Object(i.a)(n,35670,[5126,1,"bool"]),Object(i.a)(n,35671,[5126,2,"bvec2"]),Object(i.a)(n,35672,[5126,3,"bvec3"]),Object(i.a)(n,35673,[5126,4,"bvec4"]),Object(i.a)(n,35674,[5126,8,"mat2"]),Object(i.a)(n,35685,[5126,8,"mat2x3"]),Object(i.a)(n,35686,[5126,8,"mat2x4"]),Object(i.a)(n,35675,[5126,12,"mat3"]),Object(i.a)(n,35687,[5126,12,"mat3x2"]),Object(i.a)(n,35688,[5126,12,"mat3x4"]),Object(i.a)(n,35676,[5126,16,"mat4"]),Object(i.a)(n,35689,[5126,16,"mat4x2"]),Object(i.a)(n,35690,[5126,16,"mat4x3"]),n);function s(e){switch(e){case 0:return 0;case 1:case 3:case 2:return 1;case 4:case 5:case 6:return 4;default:return Object(o.a)(!1),0}}function g(e){var t=a[e];if(!t)return null;var A=Object(r.a)(t,2);return{type:A[0],components:A[1]}}function c(e,t){switch(e){case 5120:case 5121:case 5122:case 5123:e=5126}for(var A in a){var n=Object(r.a)(a[A],3),i=n[0],o=n[1],s=n[2];if(i===e&&o===t)return{glType:A,name:s}}return null}},function(e,t,A){"use strict";A.d(t,"a",(function(){return i})),A.d(t,"b",(function(){return o}));var n=A(7),r=A(227);function i(e){var t;return!!e&&(Array.isArray(e)&&(e=e[0]),Array.isArray(null===(t=e)||void 0===t?void 0:t.extensions))}function o(e){var t,A,o;return Object(r.a)(e,"null loader"),Object(r.a)(i(e),"invalid loader"),Array.isArray(e)&&(o=e[1],e=e[0],e=Object(n.a)({},e,{options:Object(n.a)({},e.options,{},o)})),(null!==(t=e)&&void 0!==t&&t.parseTextSync||null!==(A=e)&&void 0!==A&&A.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}},function(e,t,A){"use strict";(function(e){A.d(t,"a",(function(){return U})),A.d(t,"b",(function(){return _})),A.d(t,"c",(function(){return F})),A.d(t,"d",(function(){return R})),A.d(t,"e",(function(){return L})),A.d(t,"f",(function(){return O})),A.d(t,"g",(function(){return M})),A.d(t,"h",(function(){return b}));var n=A(11),r=A(3),i=A.n(r),o=A(12),a=A(5),s=A(1162),g=A(527),c=A(131),u=/^(data:|([A-Za-z]+:)?\/\/)/,l=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,I=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g;function C(e,t){return h.apply(this,arguments)}function h(){return(h=Object(o.a)(i.a.mark((function e(t,A){var n,r;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sanitize(t,A);case 2:return n=e.sent,r=n.href,e.abrupt("return",n.localFile?this.file(r):this.http(r,A));case 5:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}function f(e,t){return d.apply(this,arguments)}function d(){return(d=Object(o.a)(i.a.mark((function e(t,A){var n,r,o,s,g,c,C;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=Object(a.p)({},this.options,A),n=this.fileAccess,r={href:null},c=l.test(t.replace(I,"")),null!=t&&"string"===typeof t&&c||Object(a.o)("Sanitize failure, invalid URI: "+Object(a.bb)(t)),C=u.test(t),(g=A.baseURL)&&!C&&(t.startsWith("/")||g.endsWith("/")||(t="/"+t),t=g+t),s=(o=t.startsWith("file://"))||"file"===A.mode||"http"!==A.mode&&!C&&n,o?t=t.slice("file://".length):t.startsWith("//")&&("file"===A.defaultProtocol?(t=t.slice(2),s=!0):t=(A.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!s}),r.href=t,A.target&&(r.target=A.target+""),A.rel&&(r.rel=A.rel+""),"image"===A.context&&A.crossOrigin&&(r.crossOrigin=A.crossOrigin+""),e.abrupt("return",r);case 14:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}function B(e){return e?function(t){return new Promise((function(A,n){e.readFile(t,(function(e,t){e?n(e):A(t)}))}))}:p}function p(){return E.apply(this,arguments)}function E(){return(E=Object(o.a)(i.a.mark((function e(){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Object(a.o)("No file system access.");case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Q(e){return e?function(){var t=Object(o.a)(i.a.mark((function t(A,n){var r,o,s;return i.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=Object(a.p)({},this.options.http,n),o=n&&n.response,t.next=4,e(A,r);case 4:return s=t.sent,t.abrupt("return",s.ok?Object(a.E)(s[o])?s[o]():s.text():Object(a.o)(s.status+""+s.statusText));case 6:case"end":return t.stop()}}),t,this)})));return function(e,A){return t.apply(this,arguments)}}():y}function y(){return v.apply(this,arguments)}function v(){return(v=Object(o.a)(i.a.mark((function e(){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Object(a.o)("No HTTP fetch method available.");case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var m=function(e){return!Number.isNaN(+e)&&!(e instanceof Date)},b={boolean:a.cb,integer:a.eb,number:a.eb,date:a.db,string:a.gb,unknown:a.y},w=[function(e){return"true"===e||"false"===e||!0===e||!1===e},function(e){return m(e)&&Number.isInteger(+e)},m,function(e){return!Number.isNaN(Date.parse(e))}],S=["boolean","integer","number","date"];function F(e,t){if(!e||!e.length)return"unknown";for(var A,n,r,i=e.length,o=w.length,a=w.map((function(e,t){return t+1})),s=0,g=0;s<i;++s)for(n=t?e[s][t]:e[s],A=0;A<o;++A)if(a[A]&&(null!=(r=n)&&r===r)&&!w[A](n)&&(a[A]=0,++g===w.length))return"string";return S[a.reduce((function(e,t){return 0===e?t:e}),0)-1]}function R(e,t){return t.reduce((function(t,A){return t[A]=F(e,A),t}),{})}function D(e){var t=function(t,A){var n={delimiter:e};return G(t,A?Object(a.p)(A,n):n)};return t.responseType="text",t}function G(e,t){return t.header&&(e=t.header.map(a.bb).join(t.delimiter)+"\n"+e),Object(s.a)(t.delimiter).parse(e+"")}function k(t,A){var r,i=A&&A.property?Object(a.u)(A.property):a.y;return!Object(a.H)(t)||(r=t,"function"===typeof e&&Object(a.E)(e.isBuffer)&&e.isBuffer(r))?i(JSON.parse(t)):function(e,t){!Object(a.B)(e)&&Object(a.F)(e)&&(e=Object(n.a)(e));return t&&t.copy?JSON.parse(JSON.stringify(e)):e}(i(t),A)}G.responseType="text",k.responseType="json";var x={interior:function(e,t){return e!==t},exterior:function(e,t){return e===t}};function N(e,t){var A,n,r,i;return e=k(e,t),t&&t.feature?(A=g.a,r=t.feature):t&&t.mesh?(A=g.b,r=t.mesh,i=x[t.filter]):Object(a.o)("Missing TopoJSON feature or mesh parameter."),(n=(n=e.objects[r])?A(e,n,i):Object(a.o)("Invalid TopoJSON object: "+r))&&n.features||[n]}N.responseType="json";var U={dsv:G,csv:D(","),tsv:D("\t"),json:k,topojson:N};function _(e,t){return arguments.length>1?(U[e]=t,this):Object(a.w)(U,e)?U[e]:null}function M(e){var t=_(e);return t&&t.responseType||"text"}function O(e,t,A,n){var r=_((t=t||{}).type||"json");return r||Object(a.o)("Unknown data format type: "+t.type),e=r(e,t),t.parse&&function(e,t,A,n){if(!e.length)return;var r=Object(c.e)();A=A||r.timeParse,n=n||r.utcParse;var i,o,a,s,g,u,l=e.columns||Object.keys(e[0]);"auto"===t&&(t=R(e,l));var I=(l=Object.keys(t)).map((function(e){var r,i,o=t[e];if(o&&(o.startsWith("date:")||o.startsWith("utc:")))return("'"===(i=(r=o.split(/:(.+)?/,2))[1])[0]&&"'"===i[i.length-1]||'"'===i[0]&&'"'===i[i.length-1])&&(i=i.slice(1,-1)),("utc"===r[0]?n:A)(i);if(!b[o])throw Error("Illegal format pattern: "+e+":"+o);return b[o]}));for(a=0,g=e.length,u=l.length;a<g;++a)for(i=e[a],s=0;s<u;++s)o=l[s],i[o]=I[s](i[o])}(e,t.parse,A,n),Object(a.w)(e,"columns")&&delete e.columns,e}var L=function(e,t){return function(A){return{options:A||{},sanitize:f,load:C,fileAccess:!!t,file:B(t),http:Q(e)}}}("undefined"!==typeof fetch&&fetch,null)}).call(this,A(188).Buffer)},function(e,t,A){"use strict";var n=A(6),r=A(7),i=A(189),o=A(55),a=A(3),s=A.n(a),g=A(12),c=A(252),u=A(234);function l(e,t){return I.apply(this,arguments)}function I(){return(I=Object(g.a)(s.a.mark((function e(t,A){var n;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!==typeof t){e.next=7;break}return t=Object(c.a)(t),n=A,null!==A&&void 0!==A&&A.fetch&&"function"!==typeof(null===A||void 0===A?void 0:A.fetch)&&(n=A.fetch),e.next=6,fetch(t,n);case 6:return e.abrupt("return",e.sent);case 7:return e.next=9,Object(u.b)(t);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var C=A(1),h=A(4),f=A(25),d=new(A(1163).a)({id:"loaders.gl"}),B=function(){function e(){Object(C.a)(this,e)}return Object(h.a)(e,[{key:"log",value:function(){return function(){}}},{key:"info",value:function(){return function(){}}},{key:"warn",value:function(){return function(){}}},{key:"error",value:function(){return function(){}}}]),e}(),p={fetch:null,mimeType:void 0,nothrow:!1,log:new(function(){function e(){Object(C.a)(this,e),Object(f.a)(this,"console",void 0),this.console=console}return Object(h.a)(e,[{key:"log",value:function(){for(var e,t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return(e=this.console.log).bind.apply(e,[this.console].concat(A))}},{key:"info",value:function(){for(var e,t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return(e=this.console.info).bind.apply(e,[this.console].concat(A))}},{key:"warn",value:function(){for(var e,t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return(e=this.console.warn).bind.apply(e,[this.console].concat(A))}},{key:"error",value:function(){for(var e,t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return(e=this.console.error).bind.apply(e,[this.console].concat(A))}}]),e}()),CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},E={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function Q(){i.a.loaders=i.a.loaders||{};var e=i.a.loaders;return e._state=e._state||{},e._state}A.d(t,"b",(function(){return Q})),A.d(t,"c",(function(){return v})),A.d(t,"a",(function(){return m}));var y=function(){var e=Q();return e.globalOptions=e.globalOptions||Object(r.a)({},p),e.globalOptions};function v(e,t,A,r){return A=A||[],function(e,t){b(e,null,p,E,t);var A,r=Object(n.a)(t);try{for(r.s();!(A=r.n()).done;){var i=A.value,o=e&&e[i.id]||{},a=i.options&&i.options[i.id]||{},s=i.deprecatedOptions&&i.deprecatedOptions[i.id]||{};b(o,i.id,a,s,t)}}catch(g){r.e(g)}finally{r.f()}}(e,A=Array.isArray(A)?A:[A]),S(t,e,r)}function m(e,t){var A=y(),n=e||A;return"function"===typeof n.fetch?n.fetch:Object(o.f)(n.fetch)?function(e){return l(e,n)}:null!==t&&void 0!==t&&t.fetch?null===t||void 0===t?void 0:t.fetch:l}function b(e,t,A,n,r){var i=t||"Top level",a=t?"".concat(t,"."):"";for(var s in e){var g=!t&&Object(o.f)(e[s]);if(!(s in A)&&!("baseUri"===s&&!t)&&!("workerUrl"===s&&t))if(s in n)d.warn("".concat(i," loader option '").concat(a).concat(s,"' no longer supported, use '").concat(n[s],"'"))();else if(!g){var c=w(s,r);d.warn("".concat(i," loader option '").concat(a).concat(s,"' not recognized. ").concat(c))()}}}function w(e,t){var A,r=e.toLowerCase(),i="",o=Object(n.a)(t);try{for(o.s();!(A=o.n()).done;){var a=A.value;for(var s in a.options){if(e===s)return"Did you mean '".concat(a.id,".").concat(s,"'?");var g=s.toLowerCase();(r.startsWith(g)||g.startsWith(r))&&(i=i||"Did you mean '".concat(a.id,".").concat(s,"'?"))}}}catch(c){o.e(c)}finally{o.f()}return i}function S(e,t,A){var n=e.options||{},i=Object(r.a)({},n);return function(e,t){t&&!("baseUri"in e)&&(e.baseUri=t)}(i,A),null===i.log&&(i.log=new B),F(i,y()),F(i,t),i}function F(e,t){for(var A in t)if(A in t){var n=t[A];Object(o.g)(n)&&Object(o.g)(e[A])?e[A]=Object(r.a)({},e[A],{},t[A]):e[A]=t[A]}}},function(e,t,A){"use strict";var n={centimeters:637100880,centimetres:637100880,degrees:6371008.8/111325,feet:20902260.511392,inches:6371008.8*39.37,kilometers:6371.0088,kilometres:6371.0088,meters:6371008.8,metres:6371008.8,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:6371008.8/1852,radians:1,yards:6371008.8*1.0936};function r(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function i(e,t,A){if(void 0===A&&(A={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!g(e[0])||!g(e[1]))throw new Error("coordinates must contain numbers");return r({type:"Point",coordinates:e},t,A)}function o(e,t){void 0===t&&(t="kilometers");var A=n[t];if(!A)throw new Error(t+" units is invalid");return e/A}function a(e){return e%360*Math.PI/180}function s(e,t,A){if(void 0===t&&(t="kilometers"),void 0===A&&(A="kilometers"),!(e>=0))throw new Error("length must be a positive number");return function(e,t){void 0===t&&(t="kilometers");var A=n[t];if(!A)throw new Error(t+" units is invalid");return e*A}(o(e,t),A)}function g(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}t.a=function(e,t,A,n){void 0===n&&(n={});var r=t<0,o=s(Math.abs(t),n.units,"meters");r&&(o=-Math.abs(o));var g=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")}(e),c=function(e,t,A,n){n=void 0===n?6371008.8:Number(n);var r=t/n,i=e[0]*Math.PI/180,o=a(e[1]),s=a(A),g=r*Math.cos(s),c=o+g;Math.abs(c)>Math.PI/2&&(c=c>0?Math.PI-c:-Math.PI-c);var u=Math.log(Math.tan(c/2+Math.PI/4)/Math.tan(o/2+Math.PI/4)),l=Math.abs(u)>1e-11?g/u:Math.cos(o),I=r*Math.sin(s)/l;return[(180*(i+I)/Math.PI+540)%360-180,180*c/Math.PI]}(g,o,A);return c[0]+=c[0]-g[0]>180?-360:g[0]-c[0]>180?360:0,i(c,n.properties)}},function(e,t,A){"use strict";A.d(t,"a",(function(){return r})),A.d(t,"b",(function(){return i})),A.d(t,"c",(function(){return o})),A.d(t,"d",(function(){return a}));var n=A(30);function r(e,t,A){var n=t[0],r=t[1];return e[0]=A[0]*n+A[2]*r,e[1]=A[1]*n+A[3]*r,e}function i(e,t,A){var n=t[0],r=t[1];return e[0]=A[0]*n+A[2]*r+A[4],e[1]=A[1]*n+A[3]*r+A[5],e}function o(e,t,A){var n=t[0],r=t[1];return e[0]=A[0]*n+A[3]*r+A[6],e[1]=A[1]*n+A[4]*r+A[7],e}function a(e,t,A){var n=t[0],r=t[1];return e[0]=A[0]*n+A[4]*r+A[12],e[1]=A[1]*n+A[5]*r+A[13],e}!function(){var e=function(){var e=new n.a(2);return n.a!=Float32Array&&(e[0]=0,e[1]=0),e}()}()},function(e,t,A){"use strict";A.d(t,"b",(function(){return s})),A.d(t,"a",(function(){return g}));var n=A(3),r=A.n(n),i=A(12),o=A(1),a=A(4),s=function(){function e(){Object(o.a)(this,e)}return Object(a.a)(e,[{key:"getHeader",value:function(e){throw new Error("not implemented")}},{key:"getData",value:function(){var e=Object(i.a)(r.a.mark((function e(){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("not implemented");case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()},{key:"ok",get:function(){return this.status>=200&&this.status<=299}},{key:"status",get:function(){throw new Error("not implemented")}}]),e}(),g=function(){function e(t){Object(o.a)(this,e),this.url=t}return Object(a.a)(e,[{key:"request",value:function(){var e=Object(i.a)(r.a.mark((function e(){var t,A=arguments;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw t=A.length>0&&void 0!==A[0]?A[0]:{},t.headers,t.credentials,t.signal,new Error("request is not implemented");case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()}]),e}()},,function(e,t,A){(function(t){for(var n=A(964),r="undefined"===typeof window?t:window,i=["moz","webkit"],o="AnimationFrame",a=r["request"+o],s=r["cancel"+o]||r["cancelRequest"+o],g=0;!a&&g<i.length;g++)a=r[i[g]+"Request"+o],s=r[i[g]+"Cancel"+o]||r[i[g]+"CancelRequest"+o];if(!a||!s){var c=0,u=0,l=[];a=function(e){if(0===l.length){var t=n(),A=Math.max(0,1e3/60-(t-c));c=A+t,setTimeout((function(){var e=l.slice(0);l.length=0;for(var t=0;t<e.length;t++)if(!e[t].cancelled)try{e[t].callback(c)}catch(A){setTimeout((function(){throw A}),0)}}),Math.round(A))}return l.push({handle:++u,callback:e,cancelled:!1}),u},s=function(e){for(var t=0;t<l.length;t++)l[t].handle===e&&(l[t].cancelled=!0)}}e.exports=function(e){return a.call(r,e)},e.exports.cancel=function(){s.apply(r,arguments)},e.exports.polyfill=function(e){e||(e=r),e.requestAnimationFrame=a,e.cancelAnimationFrame=s}}).call(this,A(86))},function(e,t,A){"use strict";A.d(t,"b",(function(){return s})),A.d(t,"a",(function(){return g})),A.d(t,"c",(function(){return c})),A.d(t,"d",(function(){return u})),A.d(t,"e",(function(){return l}));var n,r,i,o=A(2),a=A(18),s=(n={},Object(o.a)(n,6407,{dataFormat:6407,types:[5121,33635]}),Object(o.a)(n,6408,{dataFormat:6408,types:[5121,32819,32820]}),Object(o.a)(n,6406,{dataFormat:6406,types:[5121]}),Object(o.a)(n,6409,{dataFormat:6409,types:[5121]}),Object(o.a)(n,6410,{dataFormat:6410,types:[5121]}),Object(o.a)(n,33326,{dataFormat:6403,types:[5126],gl2:!0}),Object(o.a)(n,33328,{dataFormat:33319,types:[5126],gl2:!0}),Object(o.a)(n,34837,{dataFormat:6407,types:[5126],gl2:!0}),Object(o.a)(n,34836,{dataFormat:6408,types:[5126],gl2:!0}),n),g=(r={},Object(o.a)(r,6403,1),Object(o.a)(r,36244,1),Object(o.a)(r,33319,2),Object(o.a)(r,33320,2),Object(o.a)(r,6407,3),Object(o.a)(r,36248,3),Object(o.a)(r,6408,4),Object(o.a)(r,36249,4),Object(o.a)(r,6402,1),Object(o.a)(r,34041,1),Object(o.a)(r,6406,1),Object(o.a)(r,6409,1),Object(o.a)(r,6410,2),r),c=(i={},Object(o.a)(i,5126,4),Object(o.a)(i,5125,4),Object(o.a)(i,5124,4),Object(o.a)(i,5123,2),Object(o.a)(i,5122,2),Object(o.a)(i,5131,2),Object(o.a)(i,5120,1),Object(o.a)(i,5121,1),i);function u(e,t){var A=s[t];if(!A)return!1;if(void 0===A.gl1&&void 0===A.gl2)return!0;var n=Object(a.j)(e)&&A.gl2||A.gl1;return"string"===typeof n?e.getExtension(n):n}function l(e,t){var A=s[t];switch(A&&A.types[0]){case 5126:return e.getExtension("OES_texture_float_linear");case 5131:return e.getExtension("OES_texture_half_float_linear");default:return!0}}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ArrowStyles",{enumerable:!0,get:function(){return n.ArrowStyles}}),Object.defineProperty(t,"DEFAULT_ARROWS",{enumerable:!0,get:function(){return n.DEFAULT_ARROWS}}),Object.defineProperty(t,"MAX_ARROWS",{enumerable:!0,get:function(){return n.MAX_ARROWS}}),Object.defineProperty(t,"SELECTION_TYPE",{enumerable:!0,get:function(){return r.SELECTION_TYPE}}),Object.defineProperty(t,"Feature",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"LayerMouseEvent",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"NebulaLayer",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"JunctionsLayer",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"TextsLayer",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(t,"SegmentsLayer",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"NebulaCore",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"toDeckColor",{enumerable:!0,get:function(){return l.toDeckColor}}),Object.defineProperty(t,"EditableGeoJsonLayer",{enumerable:!0,get:function(){return I.EditableGeoJsonLayer}}),Object.defineProperty(t,"SelectionLayer",{enumerable:!0,get:function(){return I.SelectionLayer}}),Object.defineProperty(t,"ElevatedEditHandleLayer",{enumerable:!0,get:function(){return I.ElevatedEditHandleLayer}}),Object.defineProperty(t,"PathOutlineLayer",{enumerable:!0,get:function(){return I.PathOutlineLayer}}),Object.defineProperty(t,"PathMarkerLayer",{enumerable:!0,get:function(){return I.PathMarkerLayer}}),Object.defineProperty(t,"GeoJsonEditMode",{enumerable:!0,get:function(){return C.GeoJsonEditMode}}),Object.defineProperty(t,"ModifyMode",{enumerable:!0,get:function(){return C.ModifyMode}}),Object.defineProperty(t,"ResizeCircleMode",{enumerable:!0,get:function(){return C.ResizeCircleMode}}),Object.defineProperty(t,"TranslateMode",{enumerable:!0,get:function(){return C.TranslateMode}}),Object.defineProperty(t,"ScaleMode",{enumerable:!0,get:function(){return C.ScaleMode}}),Object.defineProperty(t,"RotateMode",{enumerable:!0,get:function(){return C.RotateMode}}),Object.defineProperty(t,"DuplicateMode",{enumerable:!0,get:function(){return C.DuplicateMode}}),Object.defineProperty(t,"ExtendLineStringMode",{enumerable:!0,get:function(){return C.ExtendLineStringMode}}),Object.defineProperty(t,"SplitPolygonMode",{enumerable:!0,get:function(){return C.SplitPolygonMode}}),Object.defineProperty(t,"ExtrudeMode",{enumerable:!0,get:function(){return C.ExtrudeMode}}),Object.defineProperty(t,"ElevationMode",{enumerable:!0,get:function(){return C.ElevationMode}}),Object.defineProperty(t,"TransformMode",{enumerable:!0,get:function(){return C.TransformMode}}),Object.defineProperty(t,"DrawPointMode",{enumerable:!0,get:function(){return C.DrawPointMode}}),Object.defineProperty(t,"DrawLineStringMode",{enumerable:!0,get:function(){return C.DrawLineStringMode}}),Object.defineProperty(t,"DrawPolygonMode",{enumerable:!0,get:function(){return C.DrawPolygonMode}}),Object.defineProperty(t,"DrawRectangleMode",{enumerable:!0,get:function(){return C.DrawRectangleMode}}),Object.defineProperty(t,"DrawSquareFromCenterMode",{enumerable:!0,get:function(){return C.DrawSquareFromCenterMode}}),Object.defineProperty(t,"DrawCircleByDiameterMode",{enumerable:!0,get:function(){return C.DrawCircleByDiameterMode}}),Object.defineProperty(t,"DrawCircleFromCenterMode",{enumerable:!0,get:function(){return C.DrawCircleFromCenterMode}}),Object.defineProperty(t,"DrawEllipseByBoundingBoxMode",{enumerable:!0,get:function(){return C.DrawEllipseByBoundingBoxMode}}),Object.defineProperty(t,"DrawEllipseUsingThreePointsMode",{enumerable:!0,get:function(){return C.DrawEllipseUsingThreePointsMode}}),Object.defineProperty(t,"DrawRectangleUsingThreePointsMode",{enumerable:!0,get:function(){return C.DrawRectangleUsingThreePointsMode}}),Object.defineProperty(t,"Draw90DegreePolygonMode",{enumerable:!0,get:function(){return C.Draw90DegreePolygonMode}}),Object.defineProperty(t,"DrawPolygonByDraggingMode",{enumerable:!0,get:function(){return C.DrawPolygonByDraggingMode}}),Object.defineProperty(t,"ImmutableFeatureCollection",{enumerable:!0,get:function(){return C.ImmutableFeatureCollection}}),Object.defineProperty(t,"ViewMode",{enumerable:!0,get:function(){return C.ViewMode}}),Object.defineProperty(t,"MeasureDistanceMode",{enumerable:!0,get:function(){return C.MeasureDistanceMode}}),Object.defineProperty(t,"MeasureAreaMode",{enumerable:!0,get:function(){return C.MeasureAreaMode}}),Object.defineProperty(t,"MeasureAngleMode",{enumerable:!0,get:function(){return C.MeasureAngleMode}}),Object.defineProperty(t,"CompositeMode",{enumerable:!0,get:function(){return C.CompositeMode}}),Object.defineProperty(t,"SnappableMode",{enumerable:!0,get:function(){return C.SnappableMode}});var n=A(626),r=A(627),i=h(A(1066)),o=h(A(628)),a=h(A(305)),s=h(A(1067)),g=h(A(1103)),c=h(A(1104)),u=h(A(1105)),l=A(369),I=A(309),C=A(202);function h(e){return e&&e.__esModule?e:{default:e}}},,,function(e,t,A){"use strict";(function(e){var n=A(851),r=A(567),i=A(852);function o(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=s.prototype:(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,A){if(!s.TYPED_ARRAY_SUPPORT&&!(this instanceof s))return new s(e,t,A);if("number"===typeof e){if("string"===typeof t)throw new Error("If encoding is specified then the first argument must be a string");return u(this,e)}return g(this,e,t,A)}function g(e,t,A,n){if("number"===typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!==typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,A,n){if(t.byteLength,A<0||t.byteLength<A)throw new RangeError("'offset' is out of bounds");if(t.byteLength<A+(n||0))throw new RangeError("'length' is out of bounds");t=void 0===A&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,A):new Uint8Array(t,A,n);s.TYPED_ARRAY_SUPPORT?(e=t).__proto__=s.prototype:e=l(e,t);return e}(e,t,A,n):"string"===typeof t?function(e,t,A){"string"===typeof A&&""!==A||(A="utf8");if(!s.isEncoding(A))throw new TypeError('"encoding" must be a valid string encoding');var n=0|C(t,A),r=(e=a(e,n)).write(t,A);r!==n&&(e=e.slice(0,r));return e}(e,t,A):function(e,t){if(s.isBuffer(t)){var A=0|I(t.length);return 0===(e=a(e,A)).length||t.copy(e,0,0,A),e}if(t){if("undefined"!==typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!==typeof t.length||(n=t.length)!==n?a(e,0):l(e,t);if("Buffer"===t.type&&i(t.data))return l(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function c(e){if("number"!==typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function u(e,t){if(c(t),e=a(e,t<0?0:0|I(t)),!s.TYPED_ARRAY_SUPPORT)for(var A=0;A<t;++A)e[A]=0;return e}function l(e,t){var A=t.length<0?0:0|I(t.length);e=a(e,A);for(var n=0;n<A;n+=1)e[n]=255&t[n];return e}function I(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function C(e,t){if(s.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var A=e.length;if(0===A)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return A;case"utf8":case"utf-8":case void 0:return T(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*A;case"hex":return A>>>1;case"base64":return Z(e).length;default:if(n)return T(e).length;t=(""+t).toLowerCase(),n=!0}}function h(e,t,A){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===A||A>this.length)&&(A=this.length),A<=0)return"";if((A>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return R(this,t,A);case"utf8":case"utf-8":return w(this,t,A);case"ascii":return S(this,t,A);case"latin1":case"binary":return F(this,t,A);case"base64":return b(this,t,A);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,t,A);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function f(e,t,A){var n=e[t];e[t]=e[A],e[A]=n}function d(e,t,A,n,r){if(0===e.length)return-1;if("string"===typeof A?(n=A,A=0):A>2147483647?A=2147483647:A<-2147483648&&(A=-2147483648),A=+A,isNaN(A)&&(A=r?0:e.length-1),A<0&&(A=e.length+A),A>=e.length){if(r)return-1;A=e.length-1}else if(A<0){if(!r)return-1;A=0}if("string"===typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:B(e,t,A,n,r);if("number"===typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,A):Uint8Array.prototype.lastIndexOf.call(e,t,A):B(e,[t],A,n,r);throw new TypeError("val must be string, number or Buffer")}function B(e,t,A,n,r){var i,o=1,a=e.length,s=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o=2,a/=2,s/=2,A/=2}function g(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(r){var c=-1;for(i=A;i<a;i++)if(g(e,i)===g(t,-1===c?0:i-c)){if(-1===c&&(c=i),i-c+1===s)return c*o}else-1!==c&&(i-=i-c),c=-1}else for(A+s>a&&(A=a-s),i=A;i>=0;i--){for(var u=!0,l=0;l<s;l++)if(g(e,i+l)!==g(t,l)){u=!1;break}if(u)return i}return-1}function p(e,t,A,n){A=Number(A)||0;var r=e.length-A;n?(n=Number(n))>r&&(n=r):n=r;var i=t.length;if(i%2!==0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var o=0;o<n;++o){var a=parseInt(t.substr(2*o,2),16);if(isNaN(a))return o;e[A+o]=a}return o}function E(e,t,A,n){return H(T(t,e.length-A),e,A,n)}function Q(e,t,A,n){return H(function(e){for(var t=[],A=0;A<e.length;++A)t.push(255&e.charCodeAt(A));return t}(t),e,A,n)}function y(e,t,A,n){return Q(e,t,A,n)}function v(e,t,A,n){return H(Z(t),e,A,n)}function m(e,t,A,n){return H(function(e,t){for(var A,n,r,i=[],o=0;o<e.length&&!((t-=2)<0);++o)A=e.charCodeAt(o),n=A>>8,r=A%256,i.push(r),i.push(n);return i}(t,e.length-A),e,A,n)}function b(e,t,A){return 0===t&&A===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,A))}function w(e,t,A){A=Math.min(e.length,A);for(var n=[],r=t;r<A;){var i,o,a,s,g=e[r],c=null,u=g>239?4:g>223?3:g>191?2:1;if(r+u<=A)switch(u){case 1:g<128&&(c=g);break;case 2:128===(192&(i=e[r+1]))&&(s=(31&g)<<6|63&i)>127&&(c=s);break;case 3:i=e[r+1],o=e[r+2],128===(192&i)&&128===(192&o)&&(s=(15&g)<<12|(63&i)<<6|63&o)>2047&&(s<55296||s>57343)&&(c=s);break;case 4:i=e[r+1],o=e[r+2],a=e[r+3],128===(192&i)&&128===(192&o)&&128===(192&a)&&(s=(15&g)<<18|(63&i)<<12|(63&o)<<6|63&a)>65535&&s<1114112&&(c=s)}null===c?(c=65533,u=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),r+=u}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var A="",n=0;for(;n<t;)A+=String.fromCharCode.apply(String,e.slice(n,n+=4096));return A}(n)}t.Buffer=s,t.SlowBuffer=function(e){+e!=e&&(e=0);return s.alloc(+e)},t.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"===typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}(),t.kMaxLength=o(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,A){return g(null,e,t,A)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,A){return function(e,t,A,n){return c(t),t<=0?a(e,t):void 0!==A?"string"===typeof n?a(e,t).fill(A,n):a(e,t).fill(A):a(e,t)}(null,e,t,A)},s.allocUnsafe=function(e){return u(null,e)},s.allocUnsafeSlow=function(e){return u(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var A=e.length,n=t.length,r=0,i=Math.min(A,n);r<i;++r)if(e[r]!==t[r]){A=e[r],n=t[r];break}return A<n?-1:n<A?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!i(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var A;if(void 0===t)for(t=0,A=0;A<e.length;++A)t+=e[A].length;var n=s.allocUnsafe(t),r=0;for(A=0;A<e.length;++A){var o=e[A];if(!s.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(n,r),r+=o.length}return n},s.byteLength=C,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)f(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)f(this,t,t+3),f(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)f(this,t,t+7),f(this,t+1,t+6),f(this,t+2,t+5),f(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?w(this,0,e):h.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",A=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,A).match(/.{2}/g).join(" "),this.length>A&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,A,n,r){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===A&&(A=e?e.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),t<0||A>e.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&t>=A)return 0;if(n>=r)return-1;if(t>=A)return 1;if(this===e)return 0;for(var i=(r>>>=0)-(n>>>=0),o=(A>>>=0)-(t>>>=0),a=Math.min(i,o),g=this.slice(n,r),c=e.slice(t,A),u=0;u<a;++u)if(g[u]!==c[u]){i=g[u],o=c[u];break}return i<o?-1:o<i?1:0},s.prototype.includes=function(e,t,A){return-1!==this.indexOf(e,t,A)},s.prototype.indexOf=function(e,t,A){return d(this,e,t,A,!0)},s.prototype.lastIndexOf=function(e,t,A){return d(this,e,t,A,!1)},s.prototype.write=function(e,t,A,n){if(void 0===t)n="utf8",A=this.length,t=0;else if(void 0===A&&"string"===typeof t)n=t,A=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(A)?(A|=0,void 0===n&&(n="utf8")):(n=A,A=void 0)}var r=this.length-t;if((void 0===A||A>r)&&(A=r),e.length>0&&(A<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return p(this,e,t,A);case"utf8":case"utf-8":return E(this,e,t,A);case"ascii":return Q(this,e,t,A);case"latin1":case"binary":return y(this,e,t,A);case"base64":return v(this,e,t,A);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m(this,e,t,A);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function S(e,t,A){var n="";A=Math.min(e.length,A);for(var r=t;r<A;++r)n+=String.fromCharCode(127&e[r]);return n}function F(e,t,A){var n="";A=Math.min(e.length,A);for(var r=t;r<A;++r)n+=String.fromCharCode(e[r]);return n}function R(e,t,A){var n=e.length;(!t||t<0)&&(t=0),(!A||A<0||A>n)&&(A=n);for(var r="",i=t;i<A;++i)r+=L(e[i]);return r}function D(e,t,A){for(var n=e.slice(t,A),r="",i=0;i<n.length;i+=2)r+=String.fromCharCode(n[i]+256*n[i+1]);return r}function G(e,t,A){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>A)throw new RangeError("Trying to access beyond buffer length")}function k(e,t,A,n,r,i){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||t<i)throw new RangeError('"value" argument is out of bounds');if(A+n>e.length)throw new RangeError("Index out of range")}function x(e,t,A,n){t<0&&(t=65535+t+1);for(var r=0,i=Math.min(e.length-A,2);r<i;++r)e[A+r]=(t&255<<8*(n?r:1-r))>>>8*(n?r:1-r)}function N(e,t,A,n){t<0&&(t=4294967295+t+1);for(var r=0,i=Math.min(e.length-A,4);r<i;++r)e[A+r]=t>>>8*(n?r:3-r)&255}function U(e,t,A,n,r,i){if(A+n>e.length)throw new RangeError("Index out of range");if(A<0)throw new RangeError("Index out of range")}function _(e,t,A,n,i){return i||U(e,0,A,4),r.write(e,t,A,n,23,4),A+4}function M(e,t,A,n,i){return i||U(e,0,A,8),r.write(e,t,A,n,52,8),A+8}s.prototype.slice=function(e,t){var A,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),s.TYPED_ARRAY_SUPPORT)(A=this.subarray(e,t)).__proto__=s.prototype;else{var r=t-e;A=new s(r,void 0);for(var i=0;i<r;++i)A[i]=this[i+e]}return A},s.prototype.readUIntLE=function(e,t,A){e|=0,t|=0,A||G(e,t,this.length);for(var n=this[e],r=1,i=0;++i<t&&(r*=256);)n+=this[e+i]*r;return n},s.prototype.readUIntBE=function(e,t,A){e|=0,t|=0,A||G(e,t,this.length);for(var n=this[e+--t],r=1;t>0&&(r*=256);)n+=this[e+--t]*r;return n},s.prototype.readUInt8=function(e,t){return t||G(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||G(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||G(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||G(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||G(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,A){e|=0,t|=0,A||G(e,t,this.length);for(var n=this[e],r=1,i=0;++i<t&&(r*=256);)n+=this[e+i]*r;return n>=(r*=128)&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,A){e|=0,t|=0,A||G(e,t,this.length);for(var n=t,r=1,i=this[e+--n];n>0&&(r*=256);)i+=this[e+--n]*r;return i>=(r*=128)&&(i-=Math.pow(2,8*t)),i},s.prototype.readInt8=function(e,t){return t||G(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||G(e,2,this.length);var A=this[e]|this[e+1]<<8;return 32768&A?4294901760|A:A},s.prototype.readInt16BE=function(e,t){t||G(e,2,this.length);var A=this[e+1]|this[e]<<8;return 32768&A?4294901760|A:A},s.prototype.readInt32LE=function(e,t){return t||G(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||G(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||G(e,4,this.length),r.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||G(e,4,this.length),r.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||G(e,8,this.length),r.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||G(e,8,this.length),r.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,A,n){(e=+e,t|=0,A|=0,n)||k(this,e,t,A,Math.pow(2,8*A)-1,0);var r=1,i=0;for(this[t]=255&e;++i<A&&(r*=256);)this[t+i]=e/r&255;return t+A},s.prototype.writeUIntBE=function(e,t,A,n){(e=+e,t|=0,A|=0,n)||k(this,e,t,A,Math.pow(2,8*A)-1,0);var r=A-1,i=1;for(this[t+r]=255&e;--r>=0&&(i*=256);)this[t+r]=e/i&255;return t+A},s.prototype.writeUInt8=function(e,t,A){return e=+e,t|=0,A||k(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,A){return e=+e,t|=0,A||k(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):x(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,A){return e=+e,t|=0,A||k(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):x(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,A){return e=+e,t|=0,A||k(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,A){return e=+e,t|=0,A||k(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,A,n){if(e=+e,t|=0,!n){var r=Math.pow(2,8*A-1);k(this,e,t,A,r-1,-r)}var i=0,o=1,a=0;for(this[t]=255&e;++i<A&&(o*=256);)e<0&&0===a&&0!==this[t+i-1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+A},s.prototype.writeIntBE=function(e,t,A,n){if(e=+e,t|=0,!n){var r=Math.pow(2,8*A-1);k(this,e,t,A,r-1,-r)}var i=A-1,o=1,a=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+A},s.prototype.writeInt8=function(e,t,A){return e=+e,t|=0,A||k(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,A){return e=+e,t|=0,A||k(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):x(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,A){return e=+e,t|=0,A||k(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):x(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,A){return e=+e,t|=0,A||k(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,A){return e=+e,t|=0,A||k(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,A){return _(this,e,t,!0,A)},s.prototype.writeFloatBE=function(e,t,A){return _(this,e,t,!1,A)},s.prototype.writeDoubleLE=function(e,t,A){return M(this,e,t,!0,A)},s.prototype.writeDoubleBE=function(e,t,A){return M(this,e,t,!1,A)},s.prototype.copy=function(e,t,A,n){if(A||(A=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<A&&(n=A),n===A)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(A<0||A>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-A&&(n=e.length-t+A);var r,i=n-A;if(this===e&&A<t&&t<n)for(r=i-1;r>=0;--r)e[r+t]=this[r+A];else if(i<1e3||!s.TYPED_ARRAY_SUPPORT)for(r=0;r<i;++r)e[r+t]=this[r+A];else Uint8Array.prototype.set.call(e,this.subarray(A,A+i),t);return i},s.prototype.fill=function(e,t,A,n){if("string"===typeof e){if("string"===typeof t?(n=t,t=0,A=this.length):"string"===typeof A&&(n=A,A=this.length),1===e.length){var r=e.charCodeAt(0);r<256&&(e=r)}if(void 0!==n&&"string"!==typeof n)throw new TypeError("encoding must be a string");if("string"===typeof n&&!s.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"===typeof e&&(e&=255);if(t<0||this.length<t||this.length<A)throw new RangeError("Out of range index");if(A<=t)return this;var i;if(t>>>=0,A=void 0===A?this.length:A>>>0,e||(e=0),"number"===typeof e)for(i=t;i<A;++i)this[i]=e;else{var o=s.isBuffer(e)?e:T(new s(e,n).toString()),a=o.length;for(i=0;i<A-t;++i)this[i+t]=o[i%a]}return this};var O=/[^+\/0-9A-Za-z-_]/g;function L(e){return e<16?"0"+e.toString(16):e.toString(16)}function T(e,t){var A;t=t||1/0;for(var n=e.length,r=null,i=[],o=0;o<n;++o){if((A=e.charCodeAt(o))>55295&&A<57344){if(!r){if(A>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&i.push(239,191,189);continue}r=A;continue}if(A<56320){(t-=3)>-1&&i.push(239,191,189),r=A;continue}A=65536+(r-55296<<10|A-56320)}else r&&(t-=3)>-1&&i.push(239,191,189);if(r=null,A<128){if((t-=1)<0)break;i.push(A)}else if(A<2048){if((t-=2)<0)break;i.push(A>>6|192,63&A|128)}else if(A<65536){if((t-=3)<0)break;i.push(A>>12|224,A>>6&63|128,63&A|128)}else{if(!(A<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(A>>18|240,A>>12&63|128,A>>6&63|128,63&A|128)}}return i}function Z(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(O,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}(e))}function H(e,t,A,n){for(var r=0;r<n&&!(r+A>=t.length||r>=e.length);++r)t[r+A]=e[r];return r}}).call(this,A(86))},function(e,t,A){"use strict";(function(e,n){A.d(t,"a",(function(){return i})),A.d(t,"b",(function(){return o}));var r={self:"undefined"!==typeof self&&self,window:"undefined"!==typeof window&&window,global:"undefined"!==typeof e&&e,document:"undefined"!==typeof document&&document},i=r.global||r.self||r.window||{},o="object"!==typeof n||"[object process]"!==String(n)||n.browser,a="undefined"!==typeof n&&n.version&&/v([0-9]*)/.exec(n.version);a&&parseFloat(a[1])}).call(this,A(86),A(90))},function(e,t){var A=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=A)},function(e,t){var A=e.exports={version:"2.6.11"};"number"==typeof __e&&(__e=A)},function(e,t,A){e.exports=!A(303)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,A){var n=A(472),r=A(969),i=A(986),o=A(111);e.exports=function(e,t){return(o(e)?n:i)(e,r(t,3))}},function(e,t,A){"use strict";A.d(t,"d",(function(){return i})),A.d(t,"a",(function(){return o})),A.d(t,"b",(function(){return a})),A.d(t,"c",(function(){return s}));var n=A(6),r=A(219);function i(e){if(r.b(e)&&(e=r.a(e)),e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return 0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);if("string"===typeof e){var t=e;return(new TextEncoder).encode(t).buffer}if(e&&"object"===typeof e&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error("toArrayBuffer")}function o(e,t,A){if(A=A||e.byteLength,e.byteLength<A||t.byteLength<A)return!1;for(var n=new Uint8Array(e),r=new Uint8Array(t),i=0;i<n.length;++i)if(n[i]!==r[i])return!1;return!0}function a(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];var r,i=t.map((function(e){return e instanceof ArrayBuffer?new Uint8Array(e):e})),o=i.reduce((function(e,t){return e+t.byteLength}),0),a=new Uint8Array(o),s=0,g=Object(n.a)(i);try{for(g.s();!(r=g.n()).done;){var c=r.value;a.set(c,s),s+=c.byteLength}}catch(u){g.e(u)}finally{g.f()}return a.buffer}function s(e,t,A){var n=void 0!==A?new Uint8Array(e).subarray(t,t+A):new Uint8Array(e).subarray(t);return new Uint8Array(n).buffer}},function(e,t,A){"use strict";e.exports=A(901)},function(e,t,A){"use strict";A.d(t,"c",(function(){return g})),A.d(t,"a",(function(){return c})),A.d(t,"b",(function(){return u})),A.d(t,"d",(function(){return l}));var n=A(6),r=A(152),i=A(159),o=A(85),a=A(72),s=A(322);function g(e,t){if(Object(o.a)(Object(a.d)(e),"setParameters requires a WebGL context"),!Object(s.b)(t)){var A={};for(var n in t){var i=Number(n),g=r.e[n];g&&("string"===typeof g?A[g]=!0:g(e,t[n],i))}var c=e.state&&e.state.cache;if(c)for(var u in A){(0,r.a[u])(e,t,c)}}}function c(e,t){if("number"===typeof(t=t||r.c)){var A=t,i=r.d[A];return i?i(e,A):e.getParameter(A)}var o,a=Array.isArray(t)?t:Object.keys(t),s={},g=Object(n.a)(a);try{for(g.s();!(o=g.n()).done;){var c=o.value,u=r.d[c];s[c]=u?u(e,Number(c)):e.getParameter(Number(c))}}catch(l){g.e(l)}finally{g.f()}return s}function u(e){g(e,r.c)}function l(e,t,A){if(Object(s.b)(t))return A(e);var n,r=t.nocatch,o=void 0===r||r;if(Object(i.b)(e),g(e,t),o)n=A(e),Object(i.a)(e);else try{n=A(e)}finally{Object(i.a)(e)}return n}},function(e,t,A){"use strict";A.d(t,"a",(function(){return I}));var n=A(8),r=A(1),i=A(4),o=A(9),a=A(10),s=A(206),g=A(32),c=A(33),u=A(319),l="Unknown Euler angle order";var I=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(){var e,n,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:A.DefaultOrder;(Object(r.a)(this,A),e=t.call(this,-0,-0,-0,-0),arguments.length>0&&Array.isArray(arguments[0]))?(n=e).fromVector3.apply(n,arguments):e.set(i,o,a,s);return e}return Object(i.a)(A,[{key:"ELEMENTS",get:function(){return 4}}],[{key:"rotationOrder",value:function(e){return A.RotationOrders[e]}},{key:"ZYX",get:function(){return 0}},{key:"YXZ",get:function(){return 1}},{key:"XZY",get:function(){return 2}},{key:"ZXY",get:function(){return 3}},{key:"YZX",get:function(){return 4}},{key:"XYZ",get:function(){return 5}},{key:"RollPitchYaw",get:function(){return 0}},{key:"DefaultOrder",get:function(){return A.ZYX}},{key:"RotationOrders",get:function(){return["ZYX","YXZ","XZY","ZXY","YZX","XYZ"]}}]),Object(i.a)(A,[{key:"fromQuaternion",value:function(e){var t=Object(n.a)(e,4),r=t[0],i=t[1],o=t[2],a=t[3],s=i*i,g=-2*(s+o*o)+1,c=2*(r*i+a*o),u=-2*(r*o-a*i),l=2*(i*o+a*r),I=-2*(r*r+s)+1;return u=(u=u>1?1:u)<-1?-1:u,new A(Math.atan2(l,I),Math.asin(u),Math.atan2(c,g),A.RollPitchYaw)}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=Number.isFinite(e[3])||this.order,this.check()}},{key:"set",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3?arguments[3]:void 0;return this[0]=e,this[1]=t,this[2]=A,this[3]=Number.isFinite(n)?n:this[3],this.check()}},{key:"validate",value:function(){return(e=this[3])>=0&&e<6&&Number.isFinite(this[0])&&Number.isFinite(this[1])&&Number.isFinite(this[2]);var e}},{key:"toArray",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e[t]=this[0],e[t+1]=this[1],e[t+2]=this[2],e}},{key:"toArray4",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e[t]=this[0],e[t+1]=this[1],e[t+2]=this[2],e[t+3]=this[3],e}},{key:"toVector3",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0];return e[0]=this[0],e[1]=this[1],e[2]=this[2],e}},{key:"fromVector3",value:function(e,t){return this.set(e[0],e[1],e[2],Number.isFinite(t)?t:this[3])}},{key:"fromArray",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this[0]=e[0+t],this[1]=e[1+t],this[2]=e[2+t],void 0!==e[3]&&(this[3]=e[3]),this.check()}},{key:"fromRollPitchYaw",value:function(e,t,n){return this.set(e,t,n,A.ZYX)}},{key:"fromRotationMatrix",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:A.DefaultOrder;return this._fromRotationMatrix(e,t),this.check()}},{key:"getRotationMatrix",value:function(e){return this._getRotationMatrix(e)}},{key:"getQuaternion",value:function(){var e=new u.a;switch(this[3]){case A.XYZ:return e.rotateX(this[0]).rotateY(this[1]).rotateZ(this[2]);case A.YXZ:return e.rotateY(this[0]).rotateX(this[1]).rotateZ(this[2]);case A.ZXY:return e.rotateZ(this[0]).rotateX(this[1]).rotateY(this[2]);case A.ZYX:return e.rotateZ(this[0]).rotateY(this[1]).rotateX(this[2]);case A.YZX:return e.rotateY(this[0]).rotateZ(this[1]).rotateX(this[2]);case A.XZY:return e.rotateX(this[0]).rotateZ(this[1]).rotateY(this[2]);default:throw new Error(l)}}},{key:"_fromRotationMatrix",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:A.DefaultOrder,n=e.elements,r=n[0],i=n[4],o=n[8],a=n[1],s=n[5],c=n[9],u=n[2],I=n[6],C=n[10];switch(t=t||this[3]){case A.XYZ:this[1]=Math.asin(Object(g.d)(o,-1,1)),Math.abs(o)<.99999?(this[0]=Math.atan2(-c,C),this[2]=Math.atan2(-i,r)):(this[0]=Math.atan2(I,s),this[2]=0);break;case A.YXZ:this[0]=Math.asin(-Object(g.d)(c,-1,1)),Math.abs(c)<.99999?(this[1]=Math.atan2(o,C),this[2]=Math.atan2(a,s)):(this[1]=Math.atan2(-u,r),this[2]=0);break;case A.ZXY:this[0]=Math.asin(Object(g.d)(I,-1,1)),Math.abs(I)<.99999?(this[1]=Math.atan2(-u,C),this[2]=Math.atan2(-i,s)):(this[1]=0,this[2]=Math.atan2(a,r));break;case A.ZYX:this[1]=Math.asin(-Object(g.d)(u,-1,1)),Math.abs(u)<.99999?(this[0]=Math.atan2(I,C),this[2]=Math.atan2(a,r)):(this[0]=0,this[2]=Math.atan2(-i,s));break;case A.YZX:this[2]=Math.asin(Object(g.d)(a,-1,1)),Math.abs(a)<.99999?(this[0]=Math.atan2(-c,s),this[1]=Math.atan2(-u,r)):(this[0]=0,this[1]=Math.atan2(o,C));break;case A.XZY:this[2]=Math.asin(-Object(g.d)(i,-1,1)),Math.abs(i)<.99999?(this[0]=Math.atan2(I,s),this[1]=Math.atan2(o,r)):(this[0]=Math.atan2(-c,C),this[1]=0);break;default:throw new Error(l)}return this[3]=t,this}},{key:"_getRotationMatrix",value:function(e){var t=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],n=this.x,r=this.y,i=this.z,o=Math.cos(n),a=Math.cos(r),s=Math.cos(i),g=Math.sin(n),c=Math.sin(r),u=Math.sin(i);switch(this[3]){case A.XYZ:var I=o*s,C=o*u,h=g*s,f=g*u;t[0]=a*s,t[4]=-a*u,t[8]=c,t[1]=C+h*c,t[5]=I-f*c,t[9]=-g*a,t[2]=f-I*c,t[6]=h+C*c,t[10]=o*a;break;case A.YXZ:var d=a*s,B=a*u,p=c*s,E=c*u;t[0]=d+E*g,t[4]=p*g-B,t[8]=o*c,t[1]=o*u,t[5]=o*s,t[9]=-g,t[2]=B*g-p,t[6]=E+d*g,t[10]=o*a;break;case A.ZXY:var Q=a*s,y=a*u,v=c*s,m=c*u;t[0]=Q-m*g,t[4]=-o*u,t[8]=v+y*g,t[1]=y+v*g,t[5]=o*s,t[9]=m-Q*g,t[2]=-o*c,t[6]=g,t[10]=o*a;break;case A.ZYX:var b=o*s,w=o*u,S=g*s,F=g*u;t[0]=a*s,t[4]=S*c-w,t[8]=b*c+F,t[1]=a*u,t[5]=F*c+b,t[9]=w*c-S,t[2]=-c,t[6]=g*a,t[10]=o*a;break;case A.YZX:var R=o*a,D=o*c,G=g*a,k=g*c;t[0]=a*s,t[4]=k-R*u,t[8]=G*u+D,t[1]=u,t[5]=o*s,t[9]=-g*s,t[2]=-c*s,t[6]=D*u+G,t[10]=R-k*u;break;case A.XZY:var x=o*a,N=o*c,U=g*a,_=g*c;t[0]=a*s,t[4]=-u,t[8]=c*s,t[1]=x*u+_,t[5]=o*s,t[9]=N*u-U,t[2]=U*u-N,t[6]=g*s,t[10]=_*u+x;break;default:throw new Error(l)}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},{key:"toQuaternion",value:function(){var e=Math.cos(.5*this.yaw),t=Math.sin(.5*this.yaw),A=Math.cos(.5*this.roll),n=Math.sin(.5*this.roll),r=Math.cos(.5*this.pitch),i=Math.sin(.5*this.pitch),o=e*A*r+t*n*i,a=e*n*r-t*A*i,s=e*A*i+t*n*r,g=t*A*r-e*n*i;return new u.a(a,s,g,o)}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=Object(c.a)(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=Object(c.a)(e)}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=Object(c.a)(e)}},{key:"alpha",get:function(){return this[0]},set:function(e){this[0]=Object(c.a)(e)}},{key:"beta",get:function(){return this[1]},set:function(e){this[1]=Object(c.a)(e)}},{key:"gamma",get:function(){return this[2]},set:function(e){this[2]=Object(c.a)(e)}},{key:"phi",get:function(){return this[0]},set:function(e){this[0]=Object(c.a)(e)}},{key:"theta",get:function(){return this[1]},set:function(e){this[1]=Object(c.a)(e)}},{key:"psi",get:function(){return this[2]},set:function(e){this[2]=Object(c.a)(e)}},{key:"roll",get:function(){return this[0]},set:function(e){this[0]=Object(c.a)(e)}},{key:"pitch",get:function(){return this[1]},set:function(e){this[1]=Object(c.a)(e)}},{key:"yaw",get:function(){return this[2]},set:function(e){this[2]=Object(c.a)(e)}},{key:"order",get:function(){return this[3]},set:function(e){this[3]=function(e){if(e<0&&e>=6)throw new Error(l);return e}(e)}}]),A}(s.a)},function(e,t,A){"use strict";A.d(t,"a",(function(){return o}));var n=A(7),r=A(1),i=A(4),o=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(r.a)(this,e);var A=t.id,i=void 0===A?"effect":A;this.id=i,this.props=Object(n.a)({},t)}return Object(i.a)(e,[{key:"preRender",value:function(){}},{key:"getModuleParameters",value:function(){}},{key:"cleanup",value:function(){}}]),e}()},function(e,t,A){"use strict";A.d(t,"a",(function(){return u}));var n=A(6),r=A(1),i=A(4),o=A(9),a=A(10),s=A(410),g=A(18),c=A(428),u=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"render",value:function(e){var t=this.gl;return Object(g.n)(t,{framebuffer:e.target}),this._drawLayers(e)}},{key:"_drawLayers",value:function(e){var t=e.viewports,A=e.views,r=e.onViewportActive,i=e.clearCanvas,o=void 0===i||i;e.pass=e.pass||"unknown";var a=this.gl;o&&function(e){var t=e.drawingBufferWidth,A=e.drawingBufferHeight;Object(g.n)(e,{viewport:[0,0,t,A]}),e.clear(16640)}(a);var s,c=[],u=Object(n.a)(t);try{for(u.s();!(s=u.n()).done;){var l=s.value,I=l.viewport||l,C=A&&A[I.id];r(I);var h=this._getDrawLayerParams(I,e);e.view=C;var f,d=I.subViewports||[I],B=Object(n.a)(d);try{for(B.s();!(f=B.n()).done;){var p=f.value;e.viewport=p;var E=this._drawLayersInViewport(a,e,h);c.push(E)}}catch(Q){B.e(Q)}finally{B.f()}}}catch(Q){u.e(Q)}finally{u.f()}return c}},{key:"_getDrawLayerParams",value:function(e,t){for(var A=t.layers,n=t.pass,r=t.layerFilter,i=t.effects,o=t.moduleParameters,a=[],s=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=function r(i,o){var a,s=i.props._offset,g=i.id,c=i.parent&&i.parent.id;if(c&&!(c in A)&&r(i.parent,!1),c in n){var u=n[c]=n[c]||e(A[c],A);a=u(i,o),n[g]=u}else Number.isFinite(s)?(a=s+(A[c]||0),n[g]=null):a=t;return o&&a>=t&&(t=a+1),A[g]=a,a};return r}(),g={viewport:e,isPicking:n.startsWith("picking"),renderPass:n},c={},u=0;u<A.length;u++){var l=A[u],I=this._shouldDrawLayer(l,g,r,c),C={shouldDrawLayer:I,layerRenderIndex:s(l,I)};I&&(C.moduleParameters=this._getModuleParameters(l,i,n,o),C.layerParameters=this.getLayerParameters(l,u,e)),a[u]=C}return a}},{key:"_drawLayersInViewport",value:function(e,t,A){var n=t.layers,r=t.pass,i=t.viewport,o=t.view,a=function(e,t){var A=t.viewport,n=e.canvas?e.canvas.clientHeight||e.canvas.height:100,r=A,i=Object(g.e)(e);return[r.x*i,(n-r.y-r.height)*i,r.width*i,r.height*i]}(e,{viewport:i});if(o&&o.props.clear){var s=!0===o.props.clear?{color:!0,depth:!0}:o.props.clear;Object(g.o)(e,{scissorTest:!0,scissor:a},(function(){return Object(c.a)(e,s)}))}var u={totalCount:n.length,visibleCount:0,compositeCount:0,pickableCount:0};Object(g.n)(e,{viewport:a});for(var l=0;l<n.length;l++){var I=n[l],C=A[l],h=C.shouldDrawLayer,f=C.layerRenderIndex,d=C.moduleParameters,B=C.layerParameters;if(h&&I.props.pickable&&u.pickableCount++,I.isComposite)u.compositeCount++;else if(h){u.visibleCount++,d.viewport=i;try{I.drawLayer({moduleParameters:d,uniforms:{layerIndex:f},parameters:B})}catch(p){I.raiseError(p,"drawing ".concat(I," to ").concat(r))}}}return u}},{key:"shouldDrawLayer",value:function(e){return!0}},{key:"getModuleParameters",value:function(e,t){return null}},{key:"getLayerParameters",value:function(e,t){return e.props.parameters}},{key:"_shouldDrawLayer",value:function(e,t,A,n){if(!(this.shouldDrawLayer(e)&&e.props.visible))return!1;t.layer=e;for(var r=e.parent;r;){if(!r.props.visible||!r.filterSubLayer(t))return!1;t.layer=r,r=r.parent}if(A){var i=t.layer.id;if(i in n||(n[i]=A(t)),!n[i])return!1}return e.activateViewport(t.viewport),!0}},{key:"_getModuleParameters",value:function(e,t,A,r){var i=Object.assign(Object.create(e.props),{autoWrapLongitude:e.wrapLongitude,viewport:e.context.viewport,mousePosition:e.context.mousePosition,pickingActive:0,devicePixelRatio:Object(g.e)(this.gl)});if(t){var o,a=Object(n.a)(t);try{for(a.s();!(o=a.n()).done;){var s=o.value;Object.assign(i,s.getModuleParameters(e))}}catch(c){a.e(c)}finally{a.f()}}return Object.assign(i,this.getModuleParameters(e,t),r)}}]),A}(s.a)},function(e,t,A){"use strict";A.d(t,"a",(function(){return C}));var n=A(0),r=A(39),i=!0,o=!1,a=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function g(e){e.metaKey||e.altKey||e.ctrlKey||(i=!0)}function c(){i=!1}function u(){"hidden"===this.visibilityState&&o&&(i=!0)}function l(e){var t=e.target;try{return t.matches(":focus-visible")}catch(A){}return i||function(e){var t=e.type,A=e.tagName;return!("INPUT"!==A||!s[t]||e.readOnly)||("TEXTAREA"===A&&!e.readOnly||!!e.isContentEditable)}(t)}function I(){o=!0,window.clearTimeout(a),a=window.setTimeout((function(){o=!1}),100)}function C(){return{isFocusVisible:l,onBlurVisible:I,ref:n.useCallback((function(e){var t,A=r.findDOMNode(e);null!=A&&((t=A.ownerDocument).addEventListener("keydown",g,!0),t.addEventListener("mousedown",c,!0),t.addEventListener("pointerdown",c,!0),t.addEventListener("touchstart",c,!0),t.addEventListener("visibilitychange",u,!0))}),[])}}},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(69);function r(e){return Object(n.a)(e).defaultView||window}},function(e,t,A){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"GeoJsonEditMode",{enumerable:!0,get:function(){return i.GeoJsonEditMode}}),Object.defineProperty(t,"ModifyMode",{enumerable:!0,get:function(){return o.ModifyMode}}),Object.defineProperty(t,"ResizeCircleMode",{enumerable:!0,get:function(){return a.ResizeCircleMode}}),Object.defineProperty(t,"TranslateMode",{enumerable:!0,get:function(){return s.TranslateMode}}),Object.defineProperty(t,"ScaleMode",{enumerable:!0,get:function(){return g.ScaleMode}}),Object.defineProperty(t,"RotateMode",{enumerable:!0,get:function(){return c.RotateMode}}),Object.defineProperty(t,"DuplicateMode",{enumerable:!0,get:function(){return u.DuplicateMode}}),Object.defineProperty(t,"ExtendLineStringMode",{enumerable:!0,get:function(){return l.ExtendLineStringMode}}),Object.defineProperty(t,"SplitPolygonMode",{enumerable:!0,get:function(){return I.SplitPolygonMode}}),Object.defineProperty(t,"ExtrudeMode",{enumerable:!0,get:function(){return C.ExtrudeMode}}),Object.defineProperty(t,"ElevationMode",{enumerable:!0,get:function(){return h.ElevationMode}}),Object.defineProperty(t,"TransformMode",{enumerable:!0,get:function(){return f.TransformMode}}),Object.defineProperty(t,"DrawPointMode",{enumerable:!0,get:function(){return d.DrawPointMode}}),Object.defineProperty(t,"DrawLineStringMode",{enumerable:!0,get:function(){return B.DrawLineStringMode}}),Object.defineProperty(t,"DrawPolygonMode",{enumerable:!0,get:function(){return p.DrawPolygonMode}}),Object.defineProperty(t,"DrawRectangleMode",{enumerable:!0,get:function(){return E.DrawRectangleMode}}),Object.defineProperty(t,"DrawSquareFromCenterMode",{enumerable:!0,get:function(){return Q.DrawSquareFromCenterMode}}),Object.defineProperty(t,"DrawCircleByDiameterMode",{enumerable:!0,get:function(){return y.DrawCircleByDiameterMode}}),Object.defineProperty(t,"DrawCircleFromCenterMode",{enumerable:!0,get:function(){return v.DrawCircleFromCenterMode}}),Object.defineProperty(t,"DrawEllipseByBoundingBoxMode",{enumerable:!0,get:function(){return m.DrawEllipseByBoundingBoxMode}}),Object.defineProperty(t,"DrawEllipseUsingThreePointsMode",{enumerable:!0,get:function(){return b.DrawEllipseUsingThreePointsMode}}),Object.defineProperty(t,"DrawRectangleUsingThreePointsMode",{enumerable:!0,get:function(){return w.DrawRectangleUsingThreePointsMode}}),Object.defineProperty(t,"Draw90DegreePolygonMode",{enumerable:!0,get:function(){return S.Draw90DegreePolygonMode}}),Object.defineProperty(t,"DrawPolygonByDraggingMode",{enumerable:!0,get:function(){return F.DrawPolygonByDraggingMode}}),Object.defineProperty(t,"ImmutableFeatureCollection",{enumerable:!0,get:function(){return R.ImmutableFeatureCollection}}),Object.defineProperty(t,"ViewMode",{enumerable:!0,get:function(){return D.ViewMode}}),Object.defineProperty(t,"MeasureDistanceMode",{enumerable:!0,get:function(){return G.MeasureDistanceMode}}),Object.defineProperty(t,"MeasureAreaMode",{enumerable:!0,get:function(){return k.MeasureAreaMode}}),Object.defineProperty(t,"MeasureAngleMode",{enumerable:!0,get:function(){return x.MeasureAngleMode}}),Object.defineProperty(t,"CompositeMode",{enumerable:!0,get:function(){return N.CompositeMode}}),Object.defineProperty(t,"SnappableMode",{enumerable:!0,get:function(){return U.SnappableMode}}),Object.defineProperty(t,"_memoize",{enumerable:!0,get:function(){return _.default}}),t.utils=void 0;var r,i=A(79),o=A(494),a=A(1069),s=A(495),g=A(631),c=A(632),u=A(1070),l=A(1071),I=A(1072),C=A(1073),h=A(1074),f=A(1075),d=A(1076),B=A(1077),p=A(496),E=A(1078),Q=A(1079),y=A(1080),v=A(1081),m=A(1082),b=A(1083),w=A(1084),S=A(1085),F=A(1086),R=A(158),D=A(1088),G=A(1089),k=A(1090),x=A(1091),N=A(633),U=A(1092),_=(r=A(635))&&r.__esModule?r:{default:r},M=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!==typeof e)return{default:e};var t=O();if(t&&t.has(e))return t.get(e);var A={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var o=r?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(A,i,o):A[i]=e[i]}A.default=e,t&&t.set(e,A);return A}(A(99));function O(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return O=function(){return e},e}t.utils=M},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(320);function r(e,t){if(e){if("string"===typeof e)return Object(n.a)(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?Object(n.a)(e,t):void 0}}},function(e,t,A){"use strict";function n(e,t){if(null==e)return{};var A,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||(r[A]=e[A]);return r}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";var n=A(716),r=Object(n.a)();t.a=r},function(e,t,A){"use strict";A.d(t,"a",(function(){return g}));var n=A(1),r=A(4),i=A(9),o=A(10),a=A(32),s=A(97);var g=function(e){Object(i.a)(A,e);var t=Object(o.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(r.a)(A,[{key:"clone",value:function(){return(new this.constructor).copy(this)}},{key:"from",value:function(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}},{key:"fromArray",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)this[A]=e[A+t];return this.check()}},{key:"to",value:function(e){return e===this?this:Object(a.m)(e)?this.toArray(e):this.toObject(e)}},{key:"toTarget",value:function(e){return e?this.to(e):this}},{key:"toArray",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)e[t+A]=this[A];return e}},{key:"toFloat32Array",value:function(){return new Float32Array(this)}},{key:"toString",value:function(){return this.formatString(a.f)}},{key:"formatString",value:function(e){for(var t="",A=0;A<this.ELEMENTS;++A)t+=(A>0?", ":"")+Object(a.l)(this[A],e);return"".concat(e.printTypes?this.constructor.name:"","[").concat(t,"]")}},{key:"equals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(!Object(a.j)(this[t],e[t]))return!1;return!0}},{key:"exactEquals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(this[t]!==e[t])return!1;return!0}},{key:"negate",value:function(){for(var e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}},{key:"lerp",value:function(e,t,A){void 0===A&&(A=t,t=e,e=this);for(var n=0;n<this.ELEMENTS;++n){var r=e[n];this[n]=r+A*(t[n]-r)}return this.check()}},{key:"min",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.min(e[t],this[t]);return this.check()}},{key:"max",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.max(e[t],this[t]);return this.check()}},{key:"clamp",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e[A]),t[A]);return this.check()}},{key:"add",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]+=i[o];return this.check()}},{key:"subtract",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]-=i[o];return this.check()}},{key:"scale",value:function(e){if(Array.isArray(e))return this.multiply(e);for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"sub",value:function(e){return this.subtract(e)}},{key:"setScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=e;return this.check()}},{key:"addScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]+=e;return this.check()}},{key:"subScalar",value:function(e){return this.addScalar(-e)}},{key:"multiplyScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"divideScalar",value:function(e){return this.scale(1/e)}},{key:"clampScalar",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e),t);return this.check()}},{key:"multiplyByScalar",value:function(e){return this.scale(e)}},{key:"check",value:function(){if(a.f.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}},{key:"validate",value:function(){for(var e=this.length===this.ELEMENTS,t=0;t<this.ELEMENTS;++t)e=e&&Number.isFinite(this[t]);return e}},{key:"ELEMENTS",get:function(){return Object(s.a)(!1),0}},{key:"elements",get:function(){return this}}]),A}(function(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}(Array))},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(0);function r(e,t){return n.isValidElement(e)&&-1!==t.indexOf(e.type.muiName)}},function(e,t,A){"use strict";function n(e){var t={type:"Feature"};return Object.keys(e).forEach((function(A){switch(A){case"type":case"properties":case"geometry":return;default:t[A]=e[A]}})),t.properties=function e(t){var A={};if(!t)return A;return Object.keys(t).forEach((function(n){var r=t[n];"object"===typeof r?null===r?A[n]=null:Array.isArray(r)?A[n]=r.map((function(e){return e})):A[n]=e(r):A[n]=r})),A}(e.properties),t.geometry=r(e.geometry),t}function r(e){var t={type:e.type};return e.bbox&&(t.bbox=e.bbox),"GeometryCollection"===e.type?(t.geometries=e.geometries.map((function(e){return r(e)})),t):(t.coordinates=function e(t){var A=t;if("object"!==typeof A[0])return A.slice();return A.map((function(t){return e(t)}))}(e.coordinates),t)}t.a=function(e){if(!e)throw new Error("geojson is required");switch(e.type){case"Feature":return n(e);case"FeatureCollection":return function(e){var t={type:"FeatureCollection"};return Object.keys(e).forEach((function(A){switch(A){case"type":case"features":return;default:t[A]=e[A]}})),t.features=e.features.map((function(e){return n(e)})),t}(e);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return r(e);default:throw new Error("unknown GeoJSON type")}}},function(e,t,A){"use strict";var n=A(55),r=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,i=/^([-\w.]+\/[-\w.+]+)/;function o(e){var t=i.exec(e);return t?t[1]:e}function a(e){var t=r.exec(e);return t?t[1]:""}A.d(t,"b",(function(){return g})),A.d(t,"a",(function(){return c}));var s=/\?.*/;function g(e){if(Object(n.i)(e)){var t=u(e.url||"");return{url:t,type:o(e.headers.get("content-type")||"")||a(t)}}return Object(n.b)(e)?{url:u(e.name||""),type:e.type||""}:"string"===typeof e?{url:u(e),type:a(e)}:{url:"",type:""}}function c(e){return Object(n.i)(e)?e.headers["content-length"]||-1:Object(n.b)(e)?e.size:"string"===typeof e?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}function u(e){return e.replace(s,"")}},,,,,,function(e,t,A){var n=A(764),r=A(769);e.exports=function(e,t){var A=r(e,t);return n(A)?A:void 0}},function(e,t,A){var n=A(247),r=A(765),i=A(766),o=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":o&&o in Object(e)?r(e):i(e)}},function(e,t,A){var n=A(302),r=A(595),i=A(473),o=Object.defineProperty;t.f=A(192)?Object.defineProperty:function(e,t,A){if(n(e),t=i(t,!0),n(A),r)try{return o(e,t,A)}catch(a){}if("get"in A||"set"in A)throw TypeError("Accessors not supported!");return"value"in A&&(e[t]=A.value),e}},function(e,t){var A={}.hasOwnProperty;e.exports=function(e,t){return A.call(e,t)}},function(e,t,A){"use strict";A.d(t,"b",(function(){return r})),A.d(t,"a",(function(){return i}));var n=A(331);function r(e){return e&&"object"===typeof e&&e.isBuffer}function i(e){return n.toArrayBuffer?n.toArrayBuffer(e):e}},function(e,t,A){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return C}));var n=A(1),r=A(4),i=A(9),o=A(10),a=A(273),s=A(32),g=A(33),c=A(67),u=A(125),l=[0,0,0],I={},C=function(e){Object(i.a)(A,e);var t=Object(o.a)(A);function A(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return Object(n.a)(this,A),e=t.call(this,-0,-0,-0),1===arguments.length&&Object(s.m)(r)?e.copy(r):(s.f.debug&&(Object(g.a)(r),Object(g.a)(i),Object(g.a)(o)),e[0]=r,e[1]=i,e[2]=o),e}return Object(r.a)(A,null,[{key:"ZERO",get:function(){return I.ZERO=I.ZERO||Object.freeze(new A(0,0,0,0))}}]),Object(r.a)(A,[{key:"set",value:function(e,t,A){return this[0]=e,this[1]=t,this[2]=A,this.check()}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}},{key:"fromObject",value:function(e){return s.f.debug&&(Object(g.a)(e.x),Object(g.a)(e.y),Object(g.a)(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}},{key:"toObject",value:function(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}},{key:"angle",value:function(e){return c.a(this,e)}},{key:"cross",value:function(e){return c.c(this,this,e),this.check()}},{key:"rotateX",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?l:A;return c.i(this,this,n,t),this.check()}},{key:"rotateY",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?l:A;return c.j(this,this,n,t),this.check()}},{key:"rotateZ",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?l:A;return c.k(this,this,n,t),this.check()}},{key:"transform",value:function(e){return this.transformAsPoint(e)}},{key:"transformAsPoint",value:function(e){return c.m(this,this,e),this.check()}},{key:"transformAsVector",value:function(e){return Object(u.c)(this,this,e),this.check()}},{key:"transformByMatrix3",value:function(e){return c.l(this,this,e),this.check()}},{key:"transformByMatrix2",value:function(e){return Object(u.b)(this,this,e),this.check()}},{key:"transformByQuaternion",value:function(e){return c.n(this,this,e),this.check()}},{key:"ELEMENTS",get:function(){return 3}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=Object(g.a)(e)}}]),A}(a.a)},function(e,t,A){"use strict";A.d(t,"a",(function(){return g}));var n=A(1),r=A(4),i=A(23),o=[255,255,255],a=[0,0,-1],s=0,g=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(n.a)(this,e);var A=t.color,r=void 0===A?o:A,g=t.intensity,c=void 0===g?1:g,u=t.direction,l=void 0===u?a:u,I=t._shadow,C=void 0!==I&&I;this.id=t.id||"directional-".concat(s++),this.color=r,this.intensity=c,this.type="directional",this.direction=new i.Vector3(l).normalize().toArray(),this.shadow=C}return Object(r.a)(e,[{key:"getProjectedLight",value:function(){return this}}]),e}()},function(e,t,A){"use strict";var n=A(1245),r={name:"geometry",vs:"\nstruct VertexGeometry {\n vec4 position;\n vec3 worldPosition;\n vec3 worldPositionAlt;\n vec3 normal;\n vec2 uv;\n vec3 pickingColor;\n} geometry = VertexGeometry(\n vec4(0.0),\n vec3(0.0),\n vec3(0.0),\n vec3(0.0),\n vec2(0.0),\n vec3(0.0)\n);\n",fs:"\n#define SMOOTH_EDGE_RADIUS 0.5\n\nstruct FragmentGeometry {\n vec2 uv;\n} geometry;\n\nfloat smoothedge(float edge, float x) {\n return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x);\n}\n"},i=A(36),o=Object.keys(i.a).map((function(e){return"const int COORDINATE_SYSTEM_".concat(e," = ").concat(i.a[e],";")})).join(""),a=Object.keys(i.c).map((function(e){return"const int PROJECTION_MODE_".concat(e," = ").concat(i.c[e],";")})).join(""),s=Object.keys(i.d).map((function(e){return"const int UNIT_".concat(e.toUpperCase()," = ").concat(i.d[e],";")})).join(""),g="".concat(o,"\n").concat(a,"\n").concat(s,"\n\nuniform int project_uCoordinateSystem;\nuniform int project_uProjectionMode;\nuniform float project_uScale;\nuniform bool project_uWrapLongitude;\nuniform vec3 project_uCommonUnitsPerMeter;\nuniform vec3 project_uCommonUnitsPerWorldUnit;\nuniform vec3 project_uCommonUnitsPerWorldUnit2;\nuniform vec4 project_uCenter;\nuniform mat4 project_uModelMatrix;\nuniform mat4 project_uViewProjectionMatrix;\nuniform vec2 project_uViewportSize;\nuniform float project_uDevicePixelRatio;\nuniform float project_uFocalDistance;\nuniform vec3 project_uCameraPosition;\nuniform vec3 project_uCoordinateOrigin;\nuniform vec3 project_uCommonOrigin;\nuniform bool project_uPseudoMeters;\n\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / (PI * 2.0);\nconst vec3 ZERO_64_LOW = vec3(0.0);\nconst float EARTH_RADIUS = 6370972.0;\nconst float GLOBE_RADIUS = 256.0;\nfloat project_size() {\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR &&\n project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT &&\n project_uPseudoMeters == false) {\n \n if (geometry.position.w == 0.0) {\n float y = clamp(geometry.worldPosition.y, -89.9, 89.9);\n return 1.0 / cos(radians(y));\n }\n \n float y = geometry.position.y / TILE_SIZE * 2.0 - 1.0;\n float y2 = y * y;\n float y4 = y2 * y2;\n float y6 = y4 * y2;\n return 1.0 + 4.9348 * y2 + 4.0587 * y4 + 1.5642 * y6;\n }\n return 1.0;\n}\nfloat project_size(float meters) {\n return meters * project_uCommonUnitsPerMeter.z * project_size();\n}\n\nvec2 project_size(vec2 meters) {\n return meters * project_uCommonUnitsPerMeter.xy * project_size();\n}\n\nvec3 project_size(vec3 meters) {\n return meters * project_uCommonUnitsPerMeter * project_size();\n}\n\nvec4 project_size(vec4 meters) {\n return vec4(meters.xyz * project_uCommonUnitsPerMeter, meters.w);\n}\nvec3 project_normal(vec3 vector) {\n vec4 normal_modelspace = project_uModelMatrix * vec4(vector, 0.0);\n return normalize(normal_modelspace.xyz * project_uCommonUnitsPerMeter);\n}\n\nvec4 project_offset_(vec4 offset) {\n float dy = offset.y;\n vec3 commonUnitsPerWorldUnit = project_uCommonUnitsPerWorldUnit + project_uCommonUnitsPerWorldUnit2 * dy;\n return vec4(offset.xyz * commonUnitsPerWorldUnit, offset.w);\n}\nvec2 project_mercator_(vec2 lnglat) {\n float x = lnglat.x;\n if (project_uWrapLongitude) {\n x = mod(x + 180., 360.0) - 180.;\n }\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan_fp32(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\nvec3 project_globe_(vec3 lnglatz) {\n float lambda = radians(lnglatz.x);\n float phi = radians(lnglatz.y);\n float cosPhi = cos(phi);\n float D = (lnglatz.z / EARTH_RADIUS + 1.0) * GLOBE_RADIUS;\n\n return vec3(\n sin(lambda) * cosPhi,\n -cos(lambda) * cosPhi,\n sin(phi)\n ) * D;\n}\nvec4 project_position(vec4 position, vec3 position64Low) {\n vec4 position_world = project_uModelMatrix * position;\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4(\n project_mercator_(position_world.xy),\n project_size(position_world.z),\n position_world.w\n );\n }\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN) {\n position_world.xyz += project_uCoordinateOrigin;\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_GLOBE) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4(\n project_globe_(position_world.xyz),\n position_world.w\n );\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n if (abs(position_world.y - project_uCoordinateOrigin.y) > 0.25) {\n return vec4(\n project_mercator_(position_world.xy) - project_uCommonOrigin.xy,\n project_size(position_world.z),\n position_world.w\n );\n }\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_IDENTITY ||\n (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET &&\n (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN))) {\n position_world.xyz -= project_uCoordinateOrigin;\n }\n return project_offset_(position_world + project_uModelMatrix * vec4(position64Low, 0.0));\n}\n\nvec4 project_position(vec4 position) {\n return project_position(position, ZERO_64_LOW);\n}\n\nvec3 project_position(vec3 position, vec3 position64Low) {\n vec4 projected_position = project_position(vec4(position, 1.0), position64Low);\n return projected_position.xyz;\n}\n\nvec3 project_position(vec3 position) {\n vec4 projected_position = project_position(vec4(position, 1.0), ZERO_64_LOW);\n return projected_position.xyz;\n}\n\nvec2 project_position(vec2 position) {\n vec4 projected_position = project_position(vec4(position, 0.0, 1.0), ZERO_64_LOW);\n return projected_position.xy;\n}\n\nvec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) {\n return viewProjectionMatrix * position + center;\n}\nvec4 project_common_position_to_clipspace(vec4 position) {\n return project_common_position_to_clipspace(position, project_uViewProjectionMatrix, project_uCenter);\n}\nvec2 project_pixel_size_to_clipspace(vec2 pixels) {\n vec2 offset = pixels / project_uViewportSize * project_uDevicePixelRatio * 2.0;\n return offset * project_uFocalDistance;\n}\n\nfloat project_size_to_pixel(float meters) {\n return project_size(meters) * project_uScale;\n}\nfloat project_size_to_pixel(float size, int unit) {\n if (unit == UNIT_METERS) return project_size_to_pixel(size);\n if (unit == UNIT_COMMON) return size * project_uScale;\n return size;\n}\nfloat project_pixel_size(float pixels) {\n return pixels / project_uScale;\n}\nvec2 project_pixel_size(vec2 pixels) {\n return pixels / project_uScale;\n}\nmat3 project_get_orientation_matrix(vec3 up) {\n vec3 uz = normalize(up);\n vec3 ux = abs(uz.z) == 1.0 ? vec3(1.0, 0.0, 0.0) : normalize(vec3(uz.y, -uz.x, 0));\n vec3 uy = cross(uz, ux);\n return mat3(ux, uy, uz);\n}\n\nbool project_needs_rotation(vec3 commonPosition, out mat3 transform) {\n if (project_uProjectionMode == PROJECTION_MODE_GLOBE) {\n transform = project_get_orientation_matrix(commonPosition);\n return true;\n }\n return false;\n}\n"),c=A(274),u={};t.a={name:"project",dependencies:[n.a,r],vs:g,getUniforms:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u;return e.viewport?Object(c.b)(e):{}}}},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(9),a=A(10),s=A(147),g=A(511),c=A(646),u=A(8),l=A(6),I=A(3),C=A.n(I),h=A(12),f=A(41),d=function(){function e(t){var A=t.x,n=t.y,i=t.z;Object(r.a)(this,e),this.x=A,this.y=n,this.z=i,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}return Object(i.a)(e,[{key:"_loadData",value:function(){var e=Object(h.a)(C.a.mark((function e(t){var A,n,r,i,o,a,s,g,c,u,l,I,h;return C.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=t.getData,n=t.requestScheduler,r=t.onLoad,i=t.onError,o=this.x,a=this.y,s=this.z,g=this.bbox,c=this._loaderId,this._abortController=new AbortController,u=this._abortController.signal,e.next=7,n.scheduleRequest(this,(function(e){return e.isSelected?1:-1}));case 7:if(l=e.sent){e.next=11;break}return this._isCancelled=!0,e.abrupt("return");case 11:if(!this._isCancelled){e.next=14;break}return l.done(),e.abrupt("return");case 14:return I=null,e.prev=15,e.next=18,A({x:o,y:a,z:s,bbox:g,signal:u});case 18:I=e.sent,e.next=24;break;case 21:e.prev=21,e.t0=e.catch(15),h=e.t0||!0;case 24:return e.prev=24,l.done(),e.finish(24);case 27:if(c===this._loaderId){e.next=29;break}return e.abrupt("return");case 29:if(this._loader=void 0,this.content=I,!this._isCancelled||I){e.next=34;break}return this._isLoaded=!1,e.abrupt("return");case 34:this._isLoaded=!0,this._isCancelled=!1,h?i(h,this):r(this);case 37:case"end":return e.stop()}}),e,this,[[15,21,24,27]])})));return function(t){return e.apply(this,arguments)}}()},{key:"loadData",value:function(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}},{key:"setNeedsReload",value:function(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}},{key:"abort",value:function(){this.isLoaded||(this._isCancelled=!0,this._abortController.abort())}},{key:"data",get:function(){var e=this;return this.isLoading?this._loader.then((function(){return e.data})):this.content}},{key:"isLoaded",get:function(){return this._isLoaded&&!this._needsReload}},{key:"isLoading",get:function(){return Boolean(this._loader)&&!this._isCancelled}},{key:"needsReload",get:function(){return this._needsReload||this._isCancelled}},{key:"byteLength",get:function(){var e=this.content?this.content.byteLength:0;return Number.isFinite(e)||f.a.error("byteLength not defined in tile data")(),e}}]),e}(),B=A(120),p=A(578),E=A(23),Q=function(){function e(t){var A=this;Object(r.a)(this,e),this.opts=t,this.onTileLoad=function(e){A.opts.onTileLoad(e),A.opts.maxCacheByteSize&&(A._cacheByteSize+=e.byteLength,A._resizeCache())},this._requestScheduler=new p.a({maxRequests:t.maxRequests,throttleRequests:t.maxRequests>0}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._selectedTiles=null,this._frameNumber=0,this.setOptions(t)}return Object(i.a)(e,[{key:"setOptions",value:function(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom))}},{key:"finalize",value:function(){var e,t=Object(l.a)(this._cache.values());try{for(t.s();!(e=t.n()).done;){var A=e.value;A.isLoading&&A.abort()}}catch(n){t.e(n)}finally{t.f()}this._cache.clear(),this._tiles=[],this._selectedTiles=null}},{key:"reloadAll",value:function(){var e,t=Object(l.a)(this._cache.keys());try{for(t.s();!(e=t.n()).done;){var A=e.value,n=this._cache.get(A);this._selectedTiles.includes(n)?n.setNeedsReload():this._cache.delete(A)}}catch(r){t.e(r)}finally{t.f()}}},{key:"update",value:function(e){var t=this,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=A.zRange,r=A.modelMatrix,i=new E.Matrix4(r),o=!i.equals(this._modelMatrix);if(!e.equals(this._viewport)||o){o&&(this._modelMatrixInverse=r&&i.clone().invert(),this._modelMatrix=r&&i),this._viewport=e;var a=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:n,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=a.map((function(e){return t._getTile(e,!0)})),this._dirty&&this._rebuildTree()}var s=this.updateTileStates();return this._dirty&&this._resizeCache(),s&&this._frameNumber++,this._frameNumber}},{key:"getTileIndices",value:function(e){var t=e.viewport,A=e.maxZoom,n=e.minZoom,r=e.zRange,i=e.modelMatrix,o=e.modelMatrixInverse,a=this.opts,s=a.tileSize,g=a.extent,c=a.zoomOffset;return Object(B.a)({viewport:t,maxZoom:A,minZoom:n,zRange:r,tileSize:s,extent:g,modelMatrix:i,modelMatrixInverse:o,zoomOffset:c})}},{key:"getTileMetadata",value:function(e){var t=e.x,A=e.y,n=e.z,r=this.opts.tileSize;return{bbox:Object(B.e)(this._viewport,t,A,n,r)}}},{key:"getParentIndex",value:function(e){return e.x=Math.floor(e.x/2),e.y=Math.floor(e.y/2),e.z-=1,e}},{key:"updateTileStates",value:function(){this._updateTileStates(this.selectedTiles);var e,t=this.opts.maxRequests,A=[],n=0,r=!1,i=Object(l.a)(this._cache.values());try{for(i.s();!(e=i.n()).done;){var o=e.value,a=Boolean(1&o.state);o.isVisible!==a&&(r=!0,o.isVisible=a),o.isSelected=5===o.state,o.isLoading&&(n++,o.isSelected||A.push(o))}}catch(s){i.e(s)}finally{i.f()}if(t>0)for(;n>t&&A.length>0;){A.shift().abort(),n--}return r}},{key:"_rebuildTree",value:function(){var e,t=this._cache,A=Object(l.a)(t.values());try{for(A.s();!(e=A.n()).done;){var n=e.value;n.parent=null,n.children.length=0}}catch(s){A.e(s)}finally{A.f()}var r,i=Object(l.a)(t.values());try{for(i.s();!(r=i.n()).done;){var o=r.value,a=this._getNearestAncestor(o.x,o.y,o.z);o.parent=a,a&&a.children.push(o)}}catch(s){i.e(s)}finally{i.f()}}},{key:"_updateTileStates",value:function(e){var t,A=this._cache,n=this.opts.refinementStrategy||"best-available",r=Object(l.a)(A.values());try{for(r.s();!(t=r.n()).done;){t.value.state=0}}catch(I){r.e(I)}finally{r.f()}var i,o=Object(l.a)(e);try{for(o.s();!(i=o.n()).done;){i.value.state=5}}catch(I){o.e(I)}finally{o.f()}if("never"!==n){var a,s=Object(l.a)(e);try{for(s.s();!(a=s.n()).done;){v(a.value,n)}}catch(I){s.e(I)}finally{s.f()}var g,c=Object(l.a)(e);try{for(c.s();!(g=c.n()).done;){var u=g.value;y(u)&&m(u)}}catch(I){c.e(I)}finally{c.f()}}}},{key:"_resizeCache",value:function(){var e=this._cache,t=this.opts,A=t.maxCacheSize||(t.maxCacheByteSize?1/0:5*this.selectedTiles.length),n=t.maxCacheByteSize||1/0;if(e.size>A||this._cacheByteSize>n){var r,i=Object(l.a)(e);try{for(i.s();!(r=i.n()).done;){var o=Object(u.a)(r.value,2),a=o[0],s=o[1];if(s.isVisible||(this._cacheByteSize-=t.maxCacheByteSize?s.byteLength:0,e.delete(a),this.opts.onTileUnload(s)),e.size<=A&&this._cacheByteSize<=n)break}}catch(g){i.e(g)}finally{i.f()}this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((function(e,t){return e.z-t.z})),this._dirty=!1)}},{key:"_getTile",value:function(e,t){var A=e.x,n=e.y,r=e.z,i="".concat(A,",").concat(n,",").concat(r),o=this._cache.get(i),a=!1;return!o&&t?(o=new d({x:A,y:n,z:r}),Object.assign(o,this.getTileMetadata(o)),a=!0,this._cache.set(i,o),this._dirty=!0):o&&o.needsReload&&(a=!0),a&&o.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),o}},{key:"_getNearestAncestor",value:function(e,t,A){for(var n=this._minZoom,r=void 0===n?0:n,i={x:e,y:t,z:A};i.z>r;){i=this.getParentIndex(i);var o=this._getTile(i);if(o)return o}return null}},{key:"tiles",get:function(){return this._tiles}},{key:"selectedTiles",get:function(){return this._selectedTiles}},{key:"isLoaded",get:function(){return this._selectedTiles.every((function(e){return e.isLoaded}))}}]),e}();function y(e){for(var t=e;t;){if(!1&t.state)return!0;if(t.isLoaded)return!1;t=t.parent}return!0}function v(e,t){for(var A,n=3;A=e.parent;){if(e.isLoaded&&(n=4,"best-available"===t))return;A.state=Math.max(A.state,n),e=A}}function m(e){var t,A=Object(l.a)(e.children);try{for(A.s();!(t=A.n()).done;){var n=t.value;n.state=Math.max(n.state,3),n.isLoaded||m(n)}}catch(r){A.e(r)}finally{A.f()}}A.d(t,"a",(function(){return w}));var b={data:[],dataComparator:B.f.equals,renderSubLayers:{type:"function",value:function(e){return new c.a(e)},compare:!1},getTileData:{type:"function",optional:!0,value:null,compare:!1},onViewportLoad:{type:"function",optional:!0,value:null,compare:!1},onTileLoad:{type:"function",value:function(e){},compare:!1},onTileUnload:{type:"function",value:function(e){},compare:!1},onTileError:{type:"function",value:function(e){return console.error(e)},compare:!1},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,zoomOffset:0},w=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"initializeState",value:function(){this.state={tileset:null,isLoaded:!1}}},{key:"finalizeState",value:function(){var e;null===(e=this.state.tileset)||void 0===e||e.finalize()}},{key:"shouldUpdateState",value:function(e){return e.changeFlags.somethingChanged}},{key:"updateState",value:function(e){var t=e.props,A=e.changeFlags,n=this.state.tileset,r=A.propsOrDataChanged||A.updateTriggersChanged,i=A.dataChanged||A.updateTriggersChanged&&(A.updateTriggersChanged.all||A.updateTriggersChanged.getTileData);n?r&&(n.setOptions(this._getTilesetOptions(t)),i?n.reloadAll():this.state.tileset.tiles.forEach((function(e){e.layers=null}))):(n=new Q(this._getTilesetOptions(t)),this.setState({tileset:n})),this._updateTileset()}},{key:"_getTilesetOptions",value:function(e){var t=e.tileSize,A=e.maxCacheSize,n=e.maxCacheByteSize,r=e.refinementStrategy,i=e.extent;return{maxCacheSize:A,maxCacheByteSize:n,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:t,refinementStrategy:r,extent:i,maxRequests:e.maxRequests,zoomOffset:e.zoomOffset,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}},{key:"_updateTileset",value:function(){var e=this.state.tileset,t=this.props,A=t.zRange,n=t.modelMatrix,r=e.update(this.context.viewport,{zRange:A,modelMatrix:n}),i=e.isLoaded,o=this.state.isLoaded!==i,a=this.state.frameNumber!==r;i&&(o||a)&&this._onViewportLoad(),a&&this.setState({frameNumber:r}),this.state.isLoaded=i}},{key:"_onViewportLoad",value:function(){var e=this.state.tileset,t=this.props.onViewportLoad;t&&t(e.selectedTiles)}},{key:"_onTileLoad",value:function(e){this.props.onTileLoad(e),e.layers=null,e.isVisible&&this.setNeedsUpdate()}},{key:"_onTileError",value:function(e,t){this.props.onTileError(e),t.layers=null,t.isVisible&&this.setNeedsUpdate()}},{key:"_onTileUnload",value:function(e){this.props.onTileUnload(e)}},{key:"getTileData",value:function(e){var t=this.props,A=t.data,n=t.getTileData,r=t.fetch,i=e.signal;return e.url=Object(B.b)(A,e),n?n(e):e.url?r(e.url,{propName:"data",layer:this,signal:i}):null}},{key:"renderSubLayers",value:function(e){return this.props.renderSubLayers(e)}},{key:"getHighlightedObjectIndex",value:function(){return-1}},{key:"getPickingInfo",value:function(e){var t=e.info,A=e.sourceLayer;return t.tile=A.props.tile,t}},{key:"_updateAutoHighlight",value:function(e){e.sourceLayer&&e.sourceLayer.updateAutoHighlight(e)}},{key:"renderLayers",value:function(){var e=this;return this.state.tileset.tiles.map((function(t){var A=e.getHighlightedObjectIndex(t);if(t.isLoaded||t.content)if(t.layers)t.layers[0]&&t.layers[0].props.highlightedObjectIndex!==A&&(t.layers=t.layers.map((function(e){return e.clone({highlightedObjectIndex:A})})));else{var r=e.renderSubLayers(Object(n.a)({},e.props,{id:"".concat(e.id,"-").concat(t.x,"-").concat(t.y,"-").concat(t.z),data:t.content,_offset:0,tile:t}));t.layers=Object(s.b)(r,Boolean).map((function(e){return e.clone({tile:t,highlightedObjectIndex:A})}))}else;return t.layers}))}},{key:"filterSubLayer",value:function(e){return e.layer.props.tile.isVisible}},{key:"isLoaded",get:function(){return this.state.tileset.selectedTiles.every((function(e){return e.isLoaded&&e.layers&&e.layers.every((function(e){return e.isLoaded}))}))}}]),A}(g.a);w.layerName="TileLayer",w.defaultProps=b},function(e,t,A){"use strict";function n(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"b",(function(){return i}));var n=A(21),r={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},i={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function o(e){return"".concat(Math.round(e),"ms")}t.a={easing:r,duration:i,create:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.duration,a=void 0===A?i.standard:A,s=t.easing,g=void 0===s?r.easeInOut:s,c=t.delay,u=void 0===c?0:c;Object(n.a)(t,["duration","easing","delay"]);return(Array.isArray(e)?e:[e]).map((function(e){return"".concat(e," ").concat("string"===typeof a?a:o(a)," ").concat(g," ").concat("string"===typeof u?u:o(u))})).join(",")},getAutoHeightDuration:function(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}}},function(e,t,A){"use strict";function n(e,t){if(!e)throw new Error(t||"loader assertion failed.")}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(e){var t;if("undefined"!==typeof Symbol){if(Symbol.asyncIterator&&null!=(t=e[Symbol.asyncIterator]))return t.call(e);if(Symbol.iterator&&null!=(t=e[Symbol.iterator]))return t.call(e)}throw new TypeError("Object is not async iterable")}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return o}));var n=A(0),r=A.n(n),i=A(195);function o(e){var t=[];return r.a.Children.forEach(e,(function(e){void 0!==e&&null!==e&&(Array.isArray(e)?t=t.concat(o(e)):Object(i.isFragment)(e)&&e.props?t=t.concat(o(e.props.children)):t.push(e))})),t}},function(e,t,A){"use strict";A.d(t,"b",(function(){return i}));var n=A(0),r=n.createContext();function i(){return n.useContext(r)}t.a=r},function(e,t,A){"use strict";function n(e){return null!=e&&!(Array.isArray(e)&&0===e.length)}function r(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e&&(n(e.value)&&""!==e.value||t&&n(e.defaultValue)&&""!==e.defaultValue)}function i(e){return e.startAdornment}A.d(t,"b",(function(){return r})),A.d(t,"a",(function(){return i}))},function(e,t,A){"use strict";var n=A(1),r=A(24),i=A(4),o=A(9),a=A(10),s=A(18),g=A(124),c=A(26),u="";function l(e,t){return Object(c.a)("string"===typeof e),e=u+e,new Promise((function(A,n){try{var r=new Image;r.onload=function(){return A(r)},r.onerror=function(){return n(new Error("Could not load image ".concat(e,".")))},r.crossOrigin=t&&t.crossOrigin||"anonymous",r.src=e}catch(i){n(i)}}))}A.d(t,"a",(function(){return I}));var I=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(n.a)(this,A),Object(s.b)(e),(o instanceof Promise||"string"===typeof o)&&(o={data:o}),"string"===typeof o.data&&(o=Object.assign({},o,{data:l(o.data)})),(i=t.call(this,e,Object.assign({},o,{target:3553}))).initialize(o),Object.seal(Object(r.a)(i)),i}return Object(i.a)(A,null,[{key:"isSupported",value:function(e,t){return g.a.isSupported(e,t)}}]),A}(g.a)},function(e,t,A){"use strict";var n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r="object"===("undefined"===typeof window?"undefined":n(window))&&"object"===("undefined"===typeof document?"undefined":n(document))&&9===document.nodeType;t.a=r},function(e,t,A){"use strict";A.d(t,"b",(function(){return s})),A.d(t,"a",(function(){return c}));var n=A(3),r=A.n(n),i=A(12),o=A(55),a=A(209);function s(e){return g.apply(this,arguments)}function g(){return(g=Object(i.a)(r.a.mark((function e(t){var A,n,i,s,g,c,u;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!Object(o.i)(t)){e.next=2;break}return e.abrupt("return",t);case 2:return A={},(n=Object(a.a)(t))>=0&&(A["content-length"]=String(n)),i=Object(a.b)(t),s=i.url,(g=i.type)&&(A["content-type"]=g),e.next=9,C(t);case 9:return(c=e.sent)&&(A["x-first-bytes"]=c),"string"===typeof t&&(t=(new TextEncoder).encode(t)),u=new Response(t,{headers:A}),Object.defineProperty(u,"url",{value:s}),e.abrupt("return",u);case 15:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function c(e){return u.apply(this,arguments)}function u(){return(u=Object(i.a)(r.a.mark((function e(t){var A;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.ok){e.next=5;break}return e.next=3,l(t);case 3:throw A=e.sent,new Error(A);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function l(e){return I.apply(this,arguments)}function I(){return(I=Object(i.a)(r.a.mark((function e(t){var A,n,i;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A="Failed to fetch resource ".concat(t.url," (").concat(t.status,"): "),e.prev=1,n=t.headers.get("Content-Type"),i=t.statusText,!n.includes("application/json")){e.next=11;break}return e.t0=i,e.t1=" ",e.next=9,t.text();case 9:e.t2=e.sent,i=e.t0+=e.t1.concat.call(e.t1,e.t2);case 11:A=(A+=i).length>60?"".concat(A.slice(60),"..."):A,e.next=17;break;case 15:e.prev=15,e.t3=e.catch(1);case 17:return e.abrupt("return",A);case 18:case"end":return e.stop()}}),e,null,[[1,15]])})))).apply(this,arguments)}function C(e){return h.apply(this,arguments)}function h(){return(h=Object(i.a)(r.a.mark((function e(t){var A,n,i,o;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=5,"string"!==typeof t){e.next=3;break}return e.abrupt("return","data:,".concat(t.slice(0,A)));case 3:if(!(t instanceof Blob)){e.next=8;break}return n=t.slice(0,5),e.next=7,new Promise((function(e){var t=new FileReader;t.onload=function(t){var A;return e(null===t||void 0===t||null===(A=t.target)||void 0===A?void 0:A.result)},t.readAsDataURL(n)}));case 7:return e.abrupt("return",e.sent);case 8:if(!(t instanceof ArrayBuffer)){e.next=12;break}return i=t.slice(0,A),o=f(i),e.abrupt("return","data:base64,".concat(o));case 12:return e.abrupt("return",null);case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function f(e){for(var t="",A=new Uint8Array(e),n=0;n<A.byteLength;n++)t+=String.fromCharCode(A[n]);return btoa(t)}},function(e,t,A){var n=A(883);e.exports=function(e){return n(e,5)}},function(e,t,A){var n=A(903);e.exports=function(e,t){if(null==e)return{};var A,r,i=n(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)A=o[r],t.indexOf(A)>=0||Object.prototype.propertyIsEnumerable.call(e,A)&&(i[A]=e[A])}return i}},function(e,t,A){"use strict";var n=function(){};e.exports=n},function(e,t,A){"use strict";var n,r=A(1),i=A(24),o=A(4),a=A(9),s=A(10),g=A(92),c=A(2),u="EXT_color_buffer_float",l=(n={},Object(c.a)(n,33189,{bpp:2}),Object(c.a)(n,33190,{gl2:!0,bpp:3}),Object(c.a)(n,36012,{gl2:!0,bpp:4}),Object(c.a)(n,36168,{bpp:1}),Object(c.a)(n,34041,{bpp:4}),Object(c.a)(n,35056,{gl2:!0,bpp:4}),Object(c.a)(n,36013,{gl2:!0,bpp:5}),Object(c.a)(n,32854,{bpp:2}),Object(c.a)(n,36194,{bpp:2}),Object(c.a)(n,32855,{bpp:2}),Object(c.a)(n,33321,{gl2:!0,bpp:1}),Object(c.a)(n,33330,{gl2:!0,bpp:1}),Object(c.a)(n,33329,{gl2:!0,bpp:1}),Object(c.a)(n,33332,{gl2:!0,bpp:2}),Object(c.a)(n,33331,{gl2:!0,bpp:2}),Object(c.a)(n,33334,{gl2:!0,bpp:4}),Object(c.a)(n,33333,{gl2:!0,bpp:4}),Object(c.a)(n,33323,{gl2:!0,bpp:2}),Object(c.a)(n,33336,{gl2:!0,bpp:2}),Object(c.a)(n,33335,{gl2:!0,bpp:2}),Object(c.a)(n,33338,{gl2:!0,bpp:4}),Object(c.a)(n,33337,{gl2:!0,bpp:4}),Object(c.a)(n,33340,{gl2:!0,bpp:8}),Object(c.a)(n,33339,{gl2:!0,bpp:8}),Object(c.a)(n,32849,{gl2:!0,bpp:3}),Object(c.a)(n,32856,{gl2:!0,bpp:4}),Object(c.a)(n,32857,{gl2:!0,bpp:4}),Object(c.a)(n,36220,{gl2:!0,bpp:4}),Object(c.a)(n,36238,{gl2:!0,bpp:4}),Object(c.a)(n,36975,{gl2:!0,bpp:4}),Object(c.a)(n,36214,{gl2:!0,bpp:8}),Object(c.a)(n,36232,{gl2:!0,bpp:8}),Object(c.a)(n,36226,{gl2:!0,bpp:16}),Object(c.a)(n,36208,{gl2:!0,bpp:16}),Object(c.a)(n,33325,{gl2:u,bpp:2}),Object(c.a)(n,33327,{gl2:u,bpp:4}),Object(c.a)(n,34842,{gl2:u,bpp:8}),Object(c.a)(n,33326,{gl2:u,bpp:4}),Object(c.a)(n,33328,{gl2:u,bpp:8}),Object(c.a)(n,34836,{gl2:u,bpp:16}),Object(c.a)(n,35898,{gl2:u,bpp:4}),n),I=A(18),C=A(26);function h(e,t,A){var n=A[t];if(!n)return!1;var r=Object(I.j)(e)&&n.gl2||n.gl1;return"string"===typeof r?e.getExtension(r):r}A.d(t,"a",(function(){return f}));var f=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(e){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(r.a)(this,A),(n=t.call(this,e,o)).initialize(o),Object.seal(Object(i.a)(n)),n}return Object(o.a)(A,null,[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{format:null},A=t.format;return!A||h(e,A,l)}},{key:"getSamplesForFormat",value:function(e,t){var A=t.format;return e.getInternalformatParameter(36161,A,32937)}}]),Object(o.a)(A,[{key:"initialize",value:function(e){var t=e.format,A=e.width,n=void 0===A?1:A,r=e.height,i=void 0===r?1:r,o=e.samples,a=void 0===o?0:o;return Object(C.a)(t,"Needs format"),this._trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),0!==a&&Object(I.j)(this.gl)?this.gl.renderbufferStorageMultisample(36161,a,t,n,i):this.gl.renderbufferStorage(36161,t,n,i),this.format=t,this.width=n,this.height=i,this.samples=a,this._trackAllocatedMemory(this.width*this.height*(this.samples||1)*l[this.format].bpp),this}},{key:"resize",value:function(e){var t=e.width,A=e.height;return t!==this.width||A!==this.height?this.initialize({width:t,height:A,format:this.format,samples:this.samples}):this}},{key:"_createHandle",value:function(){return this.gl.createRenderbuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteRenderbuffer(this.handle),this._trackDeallocatedMemory()}},{key:"_bindHandle",value:function(e){this.gl.bindRenderbuffer(36161,e)}},{key:"_syncHandle",value:function(e){this.format=this.getParameter(36164),this.width=this.getParameter(36162),this.height=this.getParameter(36163),this.samples=this.getParameter(36011)}},{key:"_getParameter",value:function(e){return this.gl.bindRenderbuffer(36161,this.handle),this.gl.getRenderbufferParameter(36161,e)}}]),A}(g.a)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(0);function r(e){var t,A=new Set,n=function(e,n){var r="function"===typeof e?e(t):e;if(r!==t){var i=t;t=n?r:Object.assign({},t,r),A.forEach((function(e){return e(t,i)}))}},r=function(){return t},i={setState:n,getState:r,subscribe:function(e,n,i){return n||i?function(e,n,i){void 0===n&&(n=r),void 0===i&&(i=Object.is);var o=n(t);function a(){var A=n(t);if(!i(o,A)){var r=o;e(o=A,r)}}return A.add(a),function(){return A.delete(a)}}(e,n,i):(A.add(e),function(){return A.delete(e)})},destroy:function(){return A.clear()}};return t=e(n,r,i),i}var i="undefined"===typeof window||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent)?n.useEffect:n.useLayoutEffect;t.default=function(e){var t="function"===typeof e?r(e):e,A=function(e,A){void 0===e&&(e=t.getState),void 0===A&&(A=Object.is);var r,o=n.useReducer((function(e){return e+1}),0)[1],a=t.getState(),s=n.useRef(a),g=n.useRef(e),c=n.useRef(A),u=n.useRef(!1),l=n.useRef();void 0===l.current&&(l.current=e(a));var I=!1;(s.current!==a||g.current!==e||c.current!==A||u.current)&&(r=e(a),I=!A(l.current,r)),i((function(){I&&(l.current=r),s.current=a,g.current=e,c.current=A,u.current=!1}));var C=n.useRef(a);return i((function(){var e=function(){try{var e=t.getState(),A=g.current(e);c.current(l.current,A)||(s.current=e,l.current=A,o())}catch(n){u.current=!0,o()}},A=t.subscribe(e);return t.getState()!==C.current&&e(),A}),[]),I?r:l.current};return Object.assign(A,t),A[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");var e=[A,t];return{next:function(){var t=e.length<=0;return{value:e.shift(),done:t}}}},A}},function(e,t,A){"use strict";(function(e){A.d(t,"b",(function(){return n})),A.d(t,"c",(function(){return r})),A.d(t,"a",(function(){return i}));var n="undefined"!==typeof navigator&&navigator.userAgent?navigator.userAgent.toLowerCase():"",r="undefined"!==typeof window?window:e,i=("undefined"!==typeof e||window,"undefined"!==typeof document&&document,!1);try{var o={get passive(){return i=!0,!0}};r.addEventListener("test",o,o),r.removeEventListener("test",o,o)}catch(a){}}).call(this,A(86))},function(e,t,A){var n;!function(A){"use strict";var r={s:1,n:0,d:1};function i(e){function t(){var t=Error.apply(this,arguments);t.name=this.name=e,this.stack=t.stack,this.message=t.message}function A(){}return A.prototype=Error.prototype,t.prototype=new A,t}var o=l.DivisionByZero=i("DivisionByZero"),a=l.InvalidParameter=i("InvalidParameter");function s(e,t){return isNaN(e=parseInt(e,10))&&g(),e*t}function g(){throw new a}var c=function(e,t){var A,n=0,i=1,a=1,c=0,u=0,l=0,I=1,C=1,h=0,f=1,d=1,B=1,p=1e7;if(void 0===e||null===e);else if(void 0!==t)a=(n=e)*(i=t);else switch(typeof e){case"object":"d"in e&&"n"in e?(n=e.n,i=e.d,"s"in e&&(n*=e.s)):0 in e?(n=e[0],1 in e&&(i=e[1])):g(),a=n*i;break;case"number":if(e<0&&(a=e,e=-e),e%1===0)n=e;else if(e>0){for(e>=1&&(e/=C=Math.pow(10,Math.floor(1+Math.log(e)/Math.LN10)));f<=p&&B<=p;){if(e===(A=(h+d)/(f+B))){f+B<=p?(n=h+d,i=f+B):B>f?(n=d,i=B):(n=h,i=f);break}e>A?(h+=d,f+=B):(d+=h,B+=f),f>p?(n=d,i=B):(n=h,i=f)}n*=C}else(isNaN(e)||isNaN(t))&&(i=n=NaN);break;case"string":if(null===(f=e.match(/\d+|./g))&&g(),"-"===f[h]?(a=-1,h++):"+"===f[h]&&h++,f.length===h+1?u=s(f[h++],a):"."===f[h+1]||"."===f[h]?("."!==f[h]&&(c=s(f[h++],a)),(++h+1===f.length||"("===f[h+1]&&")"===f[h+3]||"'"===f[h+1]&&"'"===f[h+3])&&(u=s(f[h],a),I=Math.pow(10,f[h].length),h++),("("===f[h]&&")"===f[h+2]||"'"===f[h]&&"'"===f[h+2])&&(l=s(f[h+1],a),C=Math.pow(10,f[h+1].length)-1,h+=3)):"/"===f[h+1]||":"===f[h+1]?(u=s(f[h],a),I=s(f[h+2],1),h+=3):"/"===f[h+3]&&" "===f[h+1]&&(c=s(f[h],a),u=s(f[h+2],a),I=s(f[h+4],1),h+=5),f.length<=h){a=n=l+(i=I*C)*c+C*u;break}default:g()}if(0===i)throw new o;r.s=a<0?-1:1,r.n=Math.abs(n),r.d=Math.abs(i)};function u(e,t){if(!e)return t;if(!t)return e;for(;;){if(!(e%=t))return t;if(!(t%=e))return e}}function l(e,t){if(!(this instanceof l))return new l(e,t);c(e,t),e=l.REDUCE?u(r.d,r.n):1,this.s=r.s,this.n=r.n/e,this.d=r.d/e}l.REDUCE=1,l.prototype={s:1,n:0,d:1,abs:function(){return new l(this.n,this.d)},neg:function(){return new l(-this.s*this.n,this.d)},add:function(e,t){return c(e,t),new l(this.s*this.n*r.d+r.s*this.d*r.n,this.d*r.d)},sub:function(e,t){return c(e,t),new l(this.s*this.n*r.d-r.s*this.d*r.n,this.d*r.d)},mul:function(e,t){return c(e,t),new l(this.s*r.s*this.n*r.n,this.d*r.d)},div:function(e,t){return c(e,t),new l(this.s*r.s*this.n*r.d,this.d*r.n)},clone:function(){return new l(this)},mod:function(e,t){return isNaN(this.n)||isNaN(this.d)?new l(NaN):void 0===e?new l(this.s*this.n%this.d,1):(c(e,t),0===r.n&&0===this.d&&l(0,0),new l(this.s*(r.d*this.n)%(r.n*this.d),r.d*this.d))},gcd:function(e,t){return c(e,t),new l(u(r.n,this.n)*u(r.d,this.d),r.d*this.d)},lcm:function(e,t){return c(e,t),0===r.n&&0===this.n?new l:new l(r.n*this.n,u(r.n,this.n)*u(r.d,this.d))},ceil:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new l(NaN):new l(Math.ceil(e*this.s*this.n/this.d),e)},floor:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new l(NaN):new l(Math.floor(e*this.s*this.n/this.d),e)},round:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new l(NaN):new l(Math.round(e*this.s*this.n/this.d),e)},inverse:function(){return new l(this.s*this.d,this.n)},pow:function(e){return e<0?new l(Math.pow(this.s*this.d,-e),Math.pow(this.n,-e)):new l(Math.pow(this.s*this.n,e),Math.pow(this.d,e))},equals:function(e,t){return c(e,t),this.s*this.n*r.d===r.s*r.n*this.d},compare:function(e,t){c(e,t);var A=this.s*this.n*r.d-r.s*r.n*this.d;return(0<A)-(A<0)},simplify:function(e){if(isNaN(this.n)||isNaN(this.d))return this;var t=this.abs().toContinued();function A(e){return 1===e.length?new l(e[0]):A(e.slice(1)).inverse().add(e[0])}e=e||.001;for(var n=0;n<t.length;n++){var r=A(t.slice(0,n+1));if(r.sub(this.abs()).abs().valueOf()<e)return r.mul(this.s)}return this},divisible:function(e,t){return c(e,t),!(!(r.n*this.d)||this.n*r.d%(r.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(e){var t,A="",n=this.n,r=this.d;return this.s<0&&(A+="-"),1===r?A+=n:(e&&(t=Math.floor(n/r))>0&&(A+=t,A+=" ",n%=r),A+=n,A+="/",A+=r),A},toLatex:function(e){var t,A="",n=this.n,r=this.d;return this.s<0&&(A+="-"),1===r?A+=n:(e&&(t=Math.floor(n/r))>0&&(A+=t,n%=r),A+="\\frac{",A+=n,A+="}{",A+=r,A+="}"),A},toContinued:function(){var e,t=this.n,A=this.d,n=[];if(isNaN(t)||isNaN(A))return n;do{n.push(Math.floor(t/A)),e=t%A,t=A,A=e}while(1!==t);return n},toString:function(e){var t,A=this.n,n=this.d;if(isNaN(A)||isNaN(n))return"NaN";l.REDUCE||(A/=t=u(A,n),n/=t),e=e||15;var r=function(e,t){for(;t%2===0;t/=2);for(;t%5===0;t/=5);if(1===t)return 0;for(var A=10%t,n=1;1!==A;n++)if(A=10*A%t,n>2e3)return 0;return n}(0,n),i=function(e,t,A){for(var n=1,r=function(e,t,A){for(var n=1;t>0;e=e*e%A,t>>=1)1&t&&(n=n*e%A);return n}(10,A,t),i=0;i<300;i++){if(n===r)return i;n=10*n%t,r=10*r%t}return 0}(0,n,r),o=-1===this.s?"-":"";if(o+=A/n|0,A%=n,(A*=10)&&(o+="."),r){for(var a=i;a--;)o+=A/n|0,A%=n,A*=10;o+="(";for(a=r;a--;)o+=A/n|0,A%=n,A*=10;o+=")"}else for(a=e;A&&a--;)o+=A/n|0,A%=n,A*=10;return o}},void 0===(n=function(){return l}.apply(t,[]))||(e.exports=n)}()},function(e,t){e.exports=function e(t,A){"use strict";var n,r,i=/(^([+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi,o=/(^[ ]*|[ ]*$)/g,a=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,s=/^0x[0-9a-f]+$/i,g=/^0/,c=function(t){return e.insensitive&&(""+t).toLowerCase()||""+t},u=c(t).replace(o,"")||"",l=c(A).replace(o,"")||"",I=u.replace(i,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),C=l.replace(i,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),h=parseInt(u.match(s),16)||1!==I.length&&u.match(a)&&Date.parse(u),f=parseInt(l.match(s),16)||h&&l.match(a)&&Date.parse(l)||null;if(f){if(h<f)return-1;if(h>f)return 1}for(var d=0,B=Math.max(I.length,C.length);d<B;d++){if(n=!(I[d]||"").match(g)&&parseFloat(I[d])||I[d]||0,r=!(C[d]||"").match(g)&&parseFloat(C[d])||C[d]||0,isNaN(n)!==isNaN(r))return isNaN(n)?1:-1;if(typeof n!==typeof r&&(n+="",r+=""),n<r)return-1;if(n>r)return 1}return 0}},,,,,function(e,t,A){var n=A(140).Symbol;e.exports=n},function(e,t,A){var n=A(446),r=A(455);e.exports=function(e){return null!=e&&r(e.length)&&!n(e)}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bottom=g,t.cloneLayout=function(e){for(var t=Array(e.length),A=0,n=e.length;A<n;A++)t[A]=c(e[A]);return t},t.cloneLayoutItem=c,t.childrenEqual=function(e,t){return(0,n.default)(r.default.Children.map(e,(function(e){return e.key})),r.default.Children.map(t,(function(e){return e.key})))},t.fastPositionEqual=function(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height},t.collides=l,t.compact=I,t.compactItem=f,t.correctBounds=d,t.getLayoutItem=B,t.getFirstCollision=p,t.getAllCollisions=E,t.getStatics=Q,t.moveElement=y,t.moveElementAwayFromCollision=v,t.perc=function(e){return 100*e+"%"},t.setTransform=function(e){var t=e.top,A=e.left,n=e.width,r=e.height,i="translate(".concat(A,"px,").concat(t,"px)");return{transform:i,WebkitTransform:i,MozTransform:i,msTransform:i,OTransform:i,width:"".concat(n,"px"),height:"".concat(r,"px"),position:"absolute"}},t.setTopLeft=function(e){var t=e.top,A=e.left,n=e.width,r=e.height;return{top:"".concat(t,"px"),left:"".concat(A,"px"),width:"".concat(n,"px"),height:"".concat(r,"px"),position:"absolute"}},t.sortLayoutItems=m,t.sortLayoutItemsByRowCol=b,t.sortLayoutItemsByColRow=w,t.synchronizeLayoutWithChildren=function(e,t,A,n){e=e||[];var i=[];return r.default.Children.forEach(t,(function(t,A){var n=B(e,String(t.key));if(n)i[A]=c(n);else{0;var r=t.props["data-grid"]||t.props._grid;i[A]=c(r?a(a({},r),{},{i:t.key}):{w:1,h:1,x:0,y:g(i),i:String(t.key)})}})),I(d(i,{cols:A}),n,A)},t.validateLayout=S,t.compactType=function(e){var t=e||{},A=t.verticalCompact,n=t.compactType;return!1===A?null:n},t.autoBindHandlers=function(e,t){t.forEach((function(t){return e[t]=e[t].bind(e)}))},t.noop=t.fastRGLPropsEqual=void 0;var n=i(A(458)),r=i(A(0));function i(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function a(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?o(Object(A),!0).forEach((function(t){s(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):o(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function s(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}function g(e){for(var t,A=0,n=0,r=e.length;n<r;n++)(t=e[n].y+e[n].h)>A&&(A=t);return A}function c(e){return{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,minW:e.minW,maxW:e.maxW,minH:e.minH,maxH:e.maxH,moved:Boolean(e.moved),static:Boolean(e.static),isDraggable:e.isDraggable,isResizable:e.isResizable,resizeHandles:e.resizeHandles,isBounded:e.isBounded}}var u=A(800);function l(e,t){return e.i!==t.i&&(!(e.x+e.w<=t.x)&&(!(e.x>=t.x+t.w)&&(!(e.y+e.h<=t.y)&&!(e.y>=t.y+t.h))))}function I(e,t,A){for(var n=Q(e),r=m(e,t),i=Array(e.length),o=0,a=r.length;o<a;o++){var s=c(r[o]);s.static||(s=f(n,s,t,A,r),n.push(s)),i[e.indexOf(r[o])]=s,s.moved=!1}return i}t.fastRGLPropsEqual=u;var C={x:"w",y:"h"};function h(e,t,A,n){var r=C[n];t[n]+=1;for(var i=e.map((function(e){return e.i})).indexOf(t.i)+1;i<e.length;i++){var o=e[i];if(!o.static){if(o.y>t.y+t.h)break;l(t,o)&&h(e,o,A+t[r],n)}}t[n]=A}function f(e,t,A,n,r){var i,o="horizontal"===A;if("vertical"===A)for(t.y=Math.min(g(e),t.y);t.y>0&&!p(e,t);)t.y--;else if(o)for(t.y=Math.min(g(e),t.y);t.x>0&&!p(e,t);)t.x--;for(;i=p(e,t);)o?h(r,t,i.x+i.w,"x"):h(r,t,i.y+i.h,"y"),o&&t.x+t.w>n&&(t.x=n-t.w,t.y++);return t}function d(e,t){for(var A=Q(e),n=0,r=e.length;n<r;n++){var i=e[n];if(i.x+i.w>t.cols&&(i.x=t.cols-i.w),i.x<0&&(i.x=0,i.w=t.cols),i.static)for(;p(A,i);)i.y++;else A.push(i)}return e}function B(e,t){for(var A=0,n=e.length;A<n;A++)if(e[A].i===t)return e[A]}function p(e,t){for(var A=0,n=e.length;A<n;A++)if(l(e[A],t))return e[A]}function E(e,t){return e.filter((function(e){return l(e,t)}))}function Q(e){return e.filter((function(e){return e.static}))}function y(e,t,A,n,r,i,o,a){if(t.static&&!0!==t.isDraggable)return e;if(t.y===n&&t.x===A)return e;F("Moving element ".concat(t.i," to [").concat(String(A),",").concat(String(n),"] from [").concat(t.x,",").concat(t.y,"]"));var s=t.x,g=t.y;"number"===typeof A&&(t.x=A),"number"===typeof n&&(t.y=n),t.moved=!0;var c=m(e,o);("vertical"===o&&"number"===typeof n?g>=n:"horizontal"===o&&"number"===typeof A&&s>=A)&&(c=c.reverse());var u=E(c,t);if(i&&u.length)return F("Collision prevented on ".concat(t.i,", reverting.")),t.x=s,t.y=g,t.moved=!1,e;for(var l=0,I=u.length;l<I;l++){var C=u[l];F("Resolving collision between ".concat(t.i," at [").concat(t.x,",").concat(t.y,"] and ").concat(C.i," at [").concat(C.x,",").concat(C.y,"]")),C.moved||(e=C.static?v(e,C,t,r,o,a):v(e,t,C,r,o,a))}return e}function v(e,t,A,n,r,i){var o="horizontal"===r,a="horizontal"!==r,s=t.static;if(n){n=!1;var g={x:o?Math.max(t.x-A.w,0):A.x,y:a?Math.max(t.y-A.h,0):A.y,w:A.w,h:A.h,i:"-1"};if(!p(e,g))return F("Doing reverse collision on ".concat(A.i," up to [").concat(g.x,",").concat(g.y,"].")),y(e,A,o?g.x:void 0,a?g.y:void 0,n,s,r,i)}return y(e,A,o?A.x+1:void 0,a?A.y+1:void 0,n,s,r,i)}function m(e,t){return"horizontal"===t?w(e):b(e)}function b(e){return e.slice(0).sort((function(e,t){return e.y>t.y||e.y===t.y&&e.x>t.x?1:e.y===t.y&&e.x===t.x?0:-1}))}function w(e){return e.slice(0).sort((function(e,t){return e.x>t.x||e.x===t.x&&e.y>t.y?1:-1}))}function S(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Layout",A=["x","y","w","h"];if(!Array.isArray(e))throw new Error(t+" must be an array!");for(var n=0,r=e.length;n<r;n++){for(var i=e[n],o=0;o<A.length;o++)if("number"!==typeof i[A[o]])throw new Error("ReactGridLayout: "+t+"["+n+"]."+A[o]+" must be a number!");if(i.i&&"string"!==typeof i.i)throw new Error("ReactGridLayout: "+t+"["+n+"].i must be a string!");if(void 0!==i.static&&"boolean"!==typeof i.static)throw new Error("ReactGridLayout: "+t+"["+n+"].static must be a boolean!")}}function F(){}t.noop=function(){}},function(e,t,A){"use strict";function n(e,t,A){var n=A?" !== ":" === ",r=A?" || ":" && ",i=A?"!":"",o=A?"":"!";switch(e){case"null":return t+n+"null";case"array":return i+"Array.isArray("+t+")";case"object":return"("+i+t+r+"typeof "+t+n+'"object"'+r+o+"Array.isArray("+t+"))";case"integer":return"(typeof "+t+n+'"number"'+r+o+"("+t+" % 1)"+r+t+n+t+")";default:return"typeof "+t+n+'"'+e+'"'}}e.exports={copy:function(e,t){for(var A in t=t||{},e)t[A]=e[A];return t},checkDataType:n,checkDataTypes:function(e,t){switch(e.length){case 1:return n(e[0],t,!0);default:var A="",r=i(e);for(var o in r.array&&r.object&&(A=r.null?"(":"(!"+t+" || ",A+="typeof "+t+' !== "object")',delete r.null,delete r.array,delete r.object),r.number&&delete r.integer,r)A+=(A?" && ":"")+n(o,t,!0);return A}},coerceToTypes:function(e,t){if(Array.isArray(t)){for(var A=[],n=0;n<t.length;n++){var i=t[n];(r[i]||"array"===e&&"array"===i)&&(A[A.length]=i)}if(A.length)return A}else{if(r[t])return[t];if("array"===e&&"array"===t)return["array"]}},toHash:i,getProperty:s,escapeQuotes:g,equal:A(146),ucs2length:A(818),varOccurences:function(e,t){t+="[^0-9]";var A=e.match(new RegExp(t,"g"));return A?A.length:0},varReplace:function(e,t,A){return t+="([^0-9])",A=A.replace(/\$/g,"$$$$"),e.replace(new RegExp(t,"g"),A+"$1")},cleanUpCode:function(e){return e.replace(c,"").replace(u,"").replace(l,"if (!($1))")},finalCleanUpCode:function(e,t){var A=e.match(I);A&&2==A.length&&(e=t?e.replace(h,"").replace(f,"return data;"):e.replace(C,"").replace("return errors === 0;","validate.errors = null; return true;"));return(A=e.match(d))&&3===A.length?e.replace(B,""):e},schemaHasRules:function(e,t){if("boolean"==typeof e)return!e;for(var A in e)if(t[A])return!0},schemaHasRulesExcept:function(e,t,A){if("boolean"==typeof e)return!e&&"not"!=A;for(var n in e)if(n!=A&&t[n])return!0},schemaUnknownRules:function(e,t){if("boolean"==typeof e)return;for(var A in e)if(!t[A])return A},toQuotedString:p,getPathExpr:function(e,t,A,n){return y(e,A?"'/' + "+t+(n?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):n?"'[' + "+t+" + ']'":"'[\\'' + "+t+" + '\\']'")},getPath:function(e,t,A){var n=p(A?"/"+v(t):s(t));return y(e,n)},getData:function(e,t,A){var n,r,i,o;if(""===e)return"rootData";if("/"==e[0]){if(!E.test(e))throw new Error("Invalid JSON-pointer: "+e);r=e,i="rootData"}else{if(!(o=e.match(Q)))throw new Error("Invalid JSON-pointer: "+e);if(n=+o[1],"#"==(r=o[2])){if(n>=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return A[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(i="data"+(t-n||""),!r)return i}for(var a=i,g=r.split("/"),c=0;c<g.length;c++){var u=g[c];u&&(i+=s(m(u)),a+=" && "+i)}return a},unescapeFragment:function(e){return m(decodeURIComponent(e))},unescapeJsonPointer:m,escapeFragment:function(e){return encodeURIComponent(v(e))},escapeJsonPointer:v};var r=i(["string","number","integer","boolean","null"]);function i(e){for(var t={},A=0;A<e.length;A++)t[e[A]]=!0;return t}var o=/^[a-z$_][a-z$_0-9]*$/i,a=/'|\\/g;function s(e){return"number"==typeof e?"["+e+"]":o.test(e)?"."+e:"['"+g(e)+"']"}function g(e){return e.replace(a,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}var c=/else\s*{\s*}/g,u=/if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g,l=/if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g;var I=/[^v.]errors/g,C=/var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g,h=/var errors = 0;|var vErrors = null;/g,f=/if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/,d=/[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g,B=/if \(rootData === undefined\) rootData = data;/;function p(e){return"'"+g(e)+"'"}var E=/^\/(?:[^~]|~0|~1)*$/,Q=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function y(e,t){return'""'==e?t:(e+" + "+t).replace(/' \+ '/g,"")}function v(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function m(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}},function(e,t){function A(t){return"function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?e.exports=A=function(e){return typeof e}:e.exports=A=function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A(t)}e.exports=A},function(e,t,A){"use strict";A.d(t,"a",(function(){return i}));var n="",r={};function i(e){for(var t in r)if(e.startsWith(t)){var A=r[t];e=e.replace(t,A)}return e.startsWith("http://")||e.startsWith("https://")||(e="".concat(n).concat(e)),e}},function(e,t){(function(t){e.exports=t}).call(this,{})},function(e,t,A){var n=A(190),r=A(191),i=A(594),o=A(255),a=A(218),s=function e(t,A,s){var g,c,u,l=t&e.F,I=t&e.G,C=t&e.S,h=t&e.P,f=t&e.B,d=t&e.W,B=I?r:r[A]||(r[A]={}),p=B.prototype,E=I?n:C?n[A]:(n[A]||{}).prototype;for(g in I&&(s=A),s)(c=!l&&E&&void 0!==E[g])&&a(B,g)||(u=c?E[g]:s[g],B[g]=I&&"function"!=typeof E[g]?s[g]:f&&c?i(u,n):d&&E[g]==u?function(e){var t=function(t,A,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,A)}return new e(t,A,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(u):h&&"function"==typeof u?i(Function.call,u):u,h&&((B.virtual||(B.virtual={}))[g]=u,t&e.R&&p&&!p[g]&&o(p,g,u)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,e.exports=s},function(e,t,A){var n=A(217),r=A(359);e.exports=A(192)?function(e,t,A){return n.f(e,t,r(1,A))}:function(e,t,A){return e[t]=A,e}},function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},function(e,t,A){var n=A(598),r=A(474);e.exports=function(e){return n(r(e))}},function(e,t,A){var n=A(477)("wks"),r=A(362),i=A(190).Symbol,o="function"==typeof i;(e.exports=function(e){return n[e]||(n[e]=o&&i[e]||(o?i:r)("Symbol."+e))}).store=n},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(141);t.default=function(e){var t=[1/0,1/0,-1/0,-1/0];return n.coordEach(e,(function(e){t[0]>e[0]&&(t[0]=e[0]),t[1]>e[1]&&(t[1]=e[1]),t[2]<e[0]&&(t[2]=e[0]),t[3]<e[1]&&(t[3]=e[1])})),t}},function(e,t,A){var n=A(370).MAX_SAFE_COMPONENT_LENGTH,r=A(371),i=(t=e.exports={}).re=[],o=t.src=[],a=t.t={},s=0,g=function(e,t,A){var n=s++;r(n,t),a[e]=n,o[n]=t,i[n]=new RegExp(t,A?"g":void 0)};g("NUMERICIDENTIFIER","0|[1-9]\\d*"),g("NUMERICIDENTIFIERLOOSE","[0-9]+"),g("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),g("MAINVERSION","(".concat(o[a.NUMERICIDENTIFIER],")\\.")+"(".concat(o[a.NUMERICIDENTIFIER],")\\.")+"(".concat(o[a.NUMERICIDENTIFIER],")")),g("MAINVERSIONLOOSE","(".concat(o[a.NUMERICIDENTIFIERLOOSE],")\\.")+"(".concat(o[a.NUMERICIDENTIFIERLOOSE],")\\.")+"(".concat(o[a.NUMERICIDENTIFIERLOOSE],")")),g("PRERELEASEIDENTIFIER","(?:".concat(o[a.NUMERICIDENTIFIER],"|").concat(o[a.NONNUMERICIDENTIFIER],")")),g("PRERELEASEIDENTIFIERLOOSE","(?:".concat(o[a.NUMERICIDENTIFIERLOOSE],"|").concat(o[a.NONNUMERICIDENTIFIER],")")),g("PRERELEASE","(?:-(".concat(o[a.PRERELEASEIDENTIFIER],"(?:\\.").concat(o[a.PRERELEASEIDENTIFIER],")*))")),g("PRERELEASELOOSE","(?:-?(".concat(o[a.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(o[a.PRERELEASEIDENTIFIERLOOSE],")*))")),g("BUILDIDENTIFIER","[0-9A-Za-z-]+"),g("BUILD","(?:\\+(".concat(o[a.BUILDIDENTIFIER],"(?:\\.").concat(o[a.BUILDIDENTIFIER],")*))")),g("FULLPLAIN","v?".concat(o[a.MAINVERSION]).concat(o[a.PRERELEASE],"?").concat(o[a.BUILD],"?")),g("FULL","^".concat(o[a.FULLPLAIN],"$")),g("LOOSEPLAIN","[v=\\s]*".concat(o[a.MAINVERSIONLOOSE]).concat(o[a.PRERELEASELOOSE],"?").concat(o[a.BUILD],"?")),g("LOOSE","^".concat(o[a.LOOSEPLAIN],"$")),g("GTLT","((?:<|>)?=?)"),g("XRANGEIDENTIFIERLOOSE","".concat(o[a.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),g("XRANGEIDENTIFIER","".concat(o[a.NUMERICIDENTIFIER],"|x|X|\\*")),g("XRANGEPLAIN","[v=\\s]*(".concat(o[a.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(o[a.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(o[a.XRANGEIDENTIFIER],")")+"(?:".concat(o[a.PRERELEASE],")?").concat(o[a.BUILD],"?")+")?)?"),g("XRANGEPLAINLOOSE","[v=\\s]*(".concat(o[a.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(o[a.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(o[a.XRANGEIDENTIFIERLOOSE],")")+"(?:".concat(o[a.PRERELEASELOOSE],")?").concat(o[a.BUILD],"?")+")?)?"),g("XRANGE","^".concat(o[a.GTLT],"\\s*").concat(o[a.XRANGEPLAIN],"$")),g("XRANGELOOSE","^".concat(o[a.GTLT],"\\s*").concat(o[a.XRANGEPLAINLOOSE],"$")),g("COERCE","".concat("(^|[^\\d])(\\d{1,").concat(n,"})")+"(?:\\.(\\d{1,".concat(n,"}))?")+"(?:\\.(\\d{1,".concat(n,"}))?")+"(?:$|[^\\d])"),g("COERCERTL",o[a.COERCE],!0),g("LONETILDE","(?:~>?)"),g("TILDETRIM","(\\s*)".concat(o[a.LONETILDE],"\\s+"),!0),t.tildeTrimReplace="$1~",g("TILDE","^".concat(o[a.LONETILDE]).concat(o[a.XRANGEPLAIN],"$")),g("TILDELOOSE","^".concat(o[a.LONETILDE]).concat(o[a.XRANGEPLAINLOOSE],"$")),g("LONECARET","(?:\\^)"),g("CARETTRIM","(\\s*)".concat(o[a.LONECARET],"\\s+"),!0),t.caretTrimReplace="$1^",g("CARET","^".concat(o[a.LONECARET]).concat(o[a.XRANGEPLAIN],"$")),g("CARETLOOSE","^".concat(o[a.LONECARET]).concat(o[a.XRANGEPLAINLOOSE],"$")),g("COMPARATORLOOSE","^".concat(o[a.GTLT],"\\s*(").concat(o[a.LOOSEPLAIN],")$|^$")),g("COMPARATOR","^".concat(o[a.GTLT],"\\s*(").concat(o[a.FULLPLAIN],")$|^$")),g("COMPARATORTRIM","(\\s*)".concat(o[a.GTLT],"\\s*(").concat(o[a.LOOSEPLAIN],"|").concat(o[a.XRANGEPLAIN],")"),!0),t.comparatorTrimReplace="$1$2$3",g("HYPHENRANGE","^\\s*(".concat(o[a.XRANGEPLAIN],")")+"\\s+-\\s+"+"(".concat(o[a.XRANGEPLAIN],")")+"\\s*$"),g("HYPHENRANGELOOSE","^\\s*(".concat(o[a.XRANGEPLAINLOOSE],")")+"\\s+-\\s+"+"(".concat(o[a.XRANGEPLAINLOOSE],")")+"\\s*$"),g("STAR","(<|>)?=?\\s*\\*"),g("GTE0","^\\s*>=\\s*0.0.0\\s*$"),g("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},function(e,t,A){var n=A(370).MAX_LENGTH,r=A(260),i=r.re,o=r.t,a=A(106),s=A(372);e.exports=function(e,t){if(t=s(t),e instanceof a)return e;if("string"!==typeof e)return null;if(e.length>n)return null;if(!(t.loose?i[o.LOOSE]:i[o.FULL]).test(e))return null;try{return new a(e,t)}catch(A){return null}}},function(e,t,A){"use strict";A.r(t);function n(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function r(e,t,A){void 0===A&&(A={});for(var r=0,i=e;r<i.length;r++){var o=i[r];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var a=0;a<o[o.length-1].length;a++)if(o[o.length-1][a]!==o[0][a])throw new Error("First and last Position are not equivalent.")}return n({type:"Polygon",coordinates:e},t,A)}function i(e,t){void 0===t&&(t={});var A=Number(e[0]),n=Number(e[1]),i=Number(e[2]),o=Number(e[3]);if(6===e.length)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");var a=[A,n];return r([[a,[i,n],[i,o],[A,o],a]],t.properties,{bbox:e,id:t.id})}A.d(t,"default",(function(){return i}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return B}));var n=A(8),r=A(7),i=A(1),o=A(4),a=A(24),s=A(16),g=A(17),c=A(9),u=A(10),l=A(96),I=A(42),C=A(70),h=A(23),f=Math.PI/180;function d(e){return 512/4003e4/Math.cos(e*f)}var B=function(e){Object(c.a)(A,e);var t=Object(u.a)(A);function A(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(i.a)(this,A);var o,s=n.latitude,g=void 0===s?0:s,c=n.longitude,u=void 0===c?0:c,l=n.zoom,C=void 0===l?11:l,f=n.pitch,d=void 0===f?0:f,B=n.bearing,p=void 0===B?0:B,E=n.nearZMultiplier,Q=void 0===E?.1:E,y=n.farZMultiplier,v=void 0===y?1.01:y,m=n.orthographic,b=void 0!==m&&m,w=n.projectionMatrix,S=n.repeat,F=void 0!==S&&S,R=n.worldOffset,D=void 0===R?0:R,G=n.legacyMeterSizes,k=void 0!==G&&G,x=n.width,N=n.height,U=n.altitude,_=void 0===U?1.5:U,M=Math.pow(2,C);x=x||1,N=N||1;var O=null;w?(_=w[5]/2,o=Object(I.c)(_)):(n.fovy?(o=n.fovy,_=Object(I.f)(o)):o=Object(I.c)(_),O=Object(I.l)({width:x,height:N,pitch:d,fovy:o,nearZMultiplier:Q,farZMultiplier:v}));var L=Object(I.m)({height:N,pitch:d,bearing:p,scale:M,altitude:_});if(D){var T=(new h.Matrix4).translate([512*D,0,0]);L=T.multiplyLeft(L)}return(e=t.call(this,Object(r.a)({},n,{width:x,height:N,viewMatrix:L,longitude:u,latitude:g,zoom:C},O,{fovy:o,focalDistance:_}))).latitude=g,e.longitude=u,e.zoom=C,e.pitch=d,e.bearing=p,e.altitude=_,e.fovy=o,e.orthographic=b,e._subViewports=F?[]:null,e._pseudoMeters=k,Object.freeze(Object(a.a)(e)),e}return Object(o.a)(A,[{key:"projectPosition",value:function(e){if(this._pseudoMeters)return Object(g.a)(Object(s.a)(A.prototype),"projectPosition",this).call(this,e);var t=this.projectFlat(e),r=Object(n.a)(t,2);return[r[0],r[1],(e[2]||0)*d(e[1])]}},{key:"unprojectPosition",value:function(e){if(this._pseudoMeters)return Object(g.a)(Object(s.a)(A.prototype),"unprojectPosition",this).call(this,e);var t=this.unprojectFlat(e),r=Object(n.a)(t,2),i=r[0],o=r[1];return[i,o,(e[2]||0)/d(o)]}},{key:"addMetersToLngLat",value:function(e,t){return Object(I.b)(e,t)}},{key:"panByPosition",value:function(e,t){var A=Object(I.p)(t,this.pixelUnprojectionMatrix),r=this.projectFlat(e),i=C.a([],r,C.b([],A)),o=C.a([],this.center,i),a=this.unprojectFlat(o),s=Object(n.a)(a,2);return{longitude:s[0],latitude:s[1]}}},{key:"getBounds",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(I.g)(this,e.z||0);return[Math.min(t[0][0],t[1][0],t[2][0],t[3][0]),Math.min(t[0][1],t[1][1],t[2][1],t[3][1]),Math.max(t[0][0],t[1][0],t[2][0],t[3][0]),Math.max(t[0][1],t[1][1],t[2][1],t[3][1])]}},{key:"fitBounds",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.width,i=this.height,o=Object(I.d)(Object(r.a)({width:n,height:i,bounds:e},t)),a=o.longitude,s=o.latitude,g=o.zoom;return new A({width:n,height:i,longitude:a,latitude:s,zoom:g})}},{key:"subViewports",get:function(){if(this._subViewports&&!this._subViewports.length)for(var e=this.getBounds(),t=Math.floor((e[0]+180)/360),n=Math.ceil((e[2]-180)/360),i=t;i<=n;i++){var o=i?new A(Object(r.a)({},this,{worldOffset:i})):this;this._subViewports.push(o)}return this._subViewports}}]),A}(l.a);B.displayName="WebMercatorViewport"},function(e,t,A){"use strict";A.d(t,"a",(function(){return I})),A.d(t,"b",(function(){return C}));var n=A(7),r=A(1),i=A(4),o=A(9),a=A(10),s=A(23),g=A(133),c=A(275),u=A(84),l={rotationX:0,rotationOrbit:0,zoom:0,target:[0,0,0],minRotationX:-90,maxRotationX:90,minZoom:-1/0,maxZoom:1/0},I=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){var n,i=e.makeViewport,o=e.width,a=e.height,s=e.rotationX,g=void 0===s?l.rotationX:s,c=e.rotationOrbit,u=void 0===c?l.rotationOrbit:c,I=e.target,C=void 0===I?l.target:I,h=e.zoom,f=void 0===h?l.zoom:h,d=e.minRotationX,B=void 0===d?l.minRotationX:d,p=e.maxRotationX,E=void 0===p?l.maxRotationX:p,Q=e.minZoom,y=void 0===Q?l.minZoom:Q,v=e.maxZoom,m=void 0===v?l.maxZoom:v,b=e.startPanPosition,w=e.startRotatePos,S=e.startRotationX,F=e.startRotationOrbit,R=e.startZoomPosition,D=e.startZoom;return Object(r.a)(this,A),(n=t.call(this,{width:o,height:a,rotationX:g,rotationOrbit:u,target:C,zoom:f,minRotationX:B,maxRotationX:E,minZoom:y,maxZoom:m}))._state={startPanPosition:b,startRotatePos:w,startRotationX:S,startRotationOrbit:F,startZoomPosition:R,startZoom:D},n.makeViewport=i,n}return Object(i.a)(A,[{key:"panStart",value:function(e){var t=e.pos;return this._getUpdatedState({startPanPosition:this._unproject(t)})}},{key:"pan",value:function(e){var t=e.pos,A=e.startPosition,n=this._state.startPanPosition||A;if(!n)return this;var r=this.makeViewport(this._viewportProps).panByPosition(n,t);return this._getUpdatedState(r)}},{key:"panEnd",value:function(){return this._getUpdatedState({startPanPosition:null})}},{key:"rotateStart",value:function(e){var t=e.pos;return this._getUpdatedState({startRotatePos:t,startRotationX:this._viewportProps.rotationX,startRotationOrbit:this._viewportProps.rotationOrbit})}},{key:"rotate",value:function(e){var t,A=e.pos,n=e.deltaAngleX,r=void 0===n?0:n,i=e.deltaAngleY,o=void 0===i?0:i,a=this._state,s=a.startRotatePos,g=a.startRotationX,c=a.startRotationOrbit,u=this._viewportProps,l=u.width,I=u.height;if(!s||!Number.isFinite(g)||!Number.isFinite(c))return this;if(A){var C=(A[0]-s[0])/l;(g<-90||g>90)&&(C*=-1),t={rotationX:g+180*((A[1]-s[1])/I),rotationOrbit:c+180*C}}else t={rotationX:g+o,rotationOrbit:c+r};return this._getUpdatedState(t)}},{key:"rotateEnd",value:function(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}},{key:"shortestPathFrom",value:function(e){var t=e.getViewportProps(),A=Object(n.a)({},this._viewportProps),r=A.rotationOrbit;return Math.abs(r-t.rotationOrbit)>180&&(A.rotationOrbit=r<0?r+360:r-360),A}},{key:"zoomStart",value:function(e){var t=e.pos;return this._getUpdatedState({startZoomPosition:this._unproject(t),startZoom:this._viewportProps.zoom})}},{key:"zoom",value:function(e){var t=e.pos,A=e.startPos,r=e.scale,i=this._viewportProps.zoom,o=this._state,a=o.startZoom,s=o.startZoomPosition;Number.isFinite(a)||(a=i,s=this._unproject(A)||this._unproject(t));var g=this._calculateNewZoom({scale:r,startZoom:a}),c=this.makeViewport(Object(n.a)({},this._viewportProps,{zoom:g}));return this._getUpdatedState(Object(n.a)({zoom:g},c.panByPosition(s,t)))}},{key:"zoomEnd",value:function(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}},{key:"zoomIn",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2;return this._getUpdatedState({zoom:this._calculateNewZoom({scale:e})})}},{key:"zoomOut",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2;return this._getUpdatedState({zoom:this._calculateNewZoom({scale:1/e})})}},{key:"moveLeft",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([-e,0])}},{key:"moveRight",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([e,0])}},{key:"moveUp",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([0,-e])}},{key:"moveDown",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([0,e])}},{key:"rotateLeft",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;return this._getUpdatedState({rotationOrbit:this._viewportProps.rotationOrbit-e})}},{key:"rotateRight",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;return this._getUpdatedState({rotationOrbit:this._viewportProps.rotationOrbit+e})}},{key:"rotateUp",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({rotationX:this._viewportProps.rotationX-e})}},{key:"rotateDown",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({rotationX:this._viewportProps.rotationX+e})}},{key:"_unproject",value:function(e){var t=this.makeViewport(this._viewportProps);return e&&t.unproject(e)}},{key:"_calculateNewZoom",value:function(e){var t=e.scale,A=e.startZoom,n=this._viewportProps,r=n.maxZoom,i=n.minZoom;Number.isFinite(A)||(A=this._viewportProps.zoom);var o=A+Math.log2(t);return Object(s.clamp)(o,i,r)}},{key:"_panFromCenter",value:function(e){var t=this._viewportProps,A=t.width,n=t.height,r=t.target;return this.pan({startPosition:r,pos:[A/2+e[0],n/2+e[1]]})}},{key:"_getUpdatedState",value:function(e){return new this.constructor(Object(n.a)({},this._viewportProps,{},this._state,{},e))}},{key:"_applyConstraints",value:function(e){var t=e.maxZoom,A=e.minZoom,n=e.zoom,r=e.maxRotationX,i=e.minRotationX,o=e.rotationOrbit;return e.zoom=Object(s.clamp)(n,A,t),e.rotationX=Object(s.clamp)(e.rotationX,i,r),(o<-180||o>180)&&(e.rotationOrbit=Object(u.e)(o+180,360)-180),e}}]),A}(c.a),C=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){return Object(r.a)(this,A),t.call(this,I,e)}return Object(i.a)(A,[{key:"linearTransitionProps",get:function(){return["target","zoom","rotationX","rotationOrbit"]}}]),A}(g.a)},function(e,t,A){"use strict";A.d(t,"a",(function(){return s}));var n=A(6),r=A(1),i=A(4),o=A(23),a=A(87),s=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(r.a)(this,e),Array.isArray(t)&&(t={compare:t,extract:t,required:t});var A=t,n=A.compare,i=A.extract,o=A.required;this._propsToCompare=n,this._propsToExtract=i,this._requiredProps=o}return Object(i.a)(e,[{key:"arePropsEqual",value:function(e,t){var A,r=Object(n.a)(this._propsToCompare||Object.keys(t));try{for(r.s();!(A=r.n()).done;){var i=A.value;if(!(i in e)||!(i in t)||!Object(o.equals)(e[i],t[i]))return!1}}catch(a){r.e(a)}finally{r.f()}return!0}},{key:"initializeProps",value:function(e,t){var A;if(this._propsToExtract){var r,i={},o={},a=Object(n.a)(this._propsToExtract);try{for(a.s();!(r=a.n()).done;){var s=r.value;i[s]=e[s],o[s]=t[s]}}catch(g){a.e(g)}finally{a.f()}A={start:i,end:o}}else A={start:e,end:t};return this._checkRequiredProps(A.start),this._checkRequiredProps(A.end),A}},{key:"interpolateProps",value:function(e,t,A){return t}},{key:"getDuration",value:function(e,t){return t.transitionDuration}},{key:"_checkRequiredProps",value:function(e){this._requiredProps&&this._requiredProps.forEach((function(t){var A=e[t];Object(a.a)(Number.isFinite(A)||Array.isArray(A),"".concat(t," is required for transition"))}))}}]),e}()},function(e,t,A){"use strict";A.d(t,"a",(function(){return y})),A.d(t,"b",(function(){return v}));var n=A(16),r=A(17),i=A(7),o=A(1),a=A(4),s=A(9),g=A(10),c=A(23),u=A(133),l=A(275),I=A(42),C=A(87),h=0,f=0,d=1.5,B=0,p=20,E=0,Q=60,y=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.makeViewport,i=n.width,a=n.height,s=n.latitude,g=n.longitude,c=n.zoom,u=n.bearing,l=void 0===u?f:u,I=n.pitch,y=void 0===I?h:I,v=n.altitude,m=void 0===v?d:v,b=n.maxZoom,w=void 0===b?p:b,S=n.minZoom,F=void 0===S?B:S,R=n.maxPitch,D=void 0===R?Q:R,G=n.minPitch,k=void 0===G?E:G,x=n.startPanLngLat,N=n.startZoomLngLat,U=n.startRotatePos,_=n.startBearing,M=n.startPitch,O=n.startZoom,L=n.normalize;return Object(o.a)(this,A),Object(C.a)(Number.isFinite(g)),Object(C.a)(Number.isFinite(s)),Object(C.a)(Number.isFinite(c)),(e=t.call(this,{width:i,height:a,latitude:s,longitude:g,zoom:c,bearing:l,pitch:y,altitude:m,maxZoom:w,minZoom:F,maxPitch:D,minPitch:k,normalize:L}))._state={startPanLngLat:x,startZoomLngLat:N,startRotatePos:U,startBearing:_,startPitch:M,startZoom:O},e.makeViewport=r,e}return Object(a.a)(A,[{key:"panStart",value:function(e){var t=e.pos;return this._getUpdatedState({startPanLngLat:this._unproject(t)})}},{key:"pan",value:function(e){var t=e.pos,A=e.startPos,n=this._state.startPanLngLat||this._unproject(A);if(!n)return this;var r=this.makeViewport(this._viewportProps).panByPosition(n,t);return this._getUpdatedState(r)}},{key:"panEnd",value:function(){return this._getUpdatedState({startPanLngLat:null})}},{key:"rotateStart",value:function(e){var t=e.pos;return this._getUpdatedState({startRotatePos:t,startBearing:this._viewportProps.bearing,startPitch:this._viewportProps.pitch})}},{key:"rotate",value:function(e){var t,A=e.pos,n=e.deltaAngleX,r=void 0===n?0:n,o=e.deltaAngleY,a=void 0===o?0:o,s=this._state,g=s.startRotatePos,c=s.startBearing,u=s.startPitch;return g&&Number.isFinite(c)&&Number.isFinite(u)?(t=A?this._calculateNewPitchAndBearing(Object(i.a)({},this._getRotationParams(A,g),{startBearing:c,startPitch:u})):{bearing:c+r,pitch:u+a},this._getUpdatedState(t)):this}},{key:"rotateEnd",value:function(){return this._getUpdatedState({startBearing:null,startPitch:null})}},{key:"zoomStart",value:function(e){var t=e.pos;return this._getUpdatedState({startZoomLngLat:this._unproject(t),startZoom:this._viewportProps.zoom})}},{key:"zoom",value:function(e){var t=e.pos,A=e.startPos,n=e.scale,r=this._state,o=r.startZoom,a=r.startZoomLngLat;Number.isFinite(o)||(o=this._viewportProps.zoom,a=this._unproject(A)||this._unproject(t));var s=this._calculateNewZoom({scale:n,startZoom:o}),g=this.makeViewport(Object(i.a)({},this._viewportProps,{zoom:s}));return this._getUpdatedState(Object(i.a)({zoom:s},g.panByPosition(a,t)))}},{key:"zoomEnd",value:function(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}},{key:"zoomIn",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2;return this._zoomFromCenter(e)}},{key:"zoomOut",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2;return this._zoomFromCenter(1/e)}},{key:"moveLeft",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100;return this._panFromCenter([e,0])}},{key:"moveRight",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100;return this._panFromCenter([-e,0])}},{key:"moveUp",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100;return this._panFromCenter([0,e])}},{key:"moveDown",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100;return this._panFromCenter([0,-e])}},{key:"rotateLeft",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;return this._getUpdatedState({bearing:this._viewportProps.bearing-e})}},{key:"rotateRight",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;return this._getUpdatedState({bearing:this._viewportProps.bearing+e})}},{key:"rotateUp",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({pitch:this._viewportProps.pitch+e})}},{key:"rotateDown",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({pitch:this._viewportProps.pitch-e})}},{key:"shortestPathFrom",value:function(e){var t=e.getViewportProps(),A=Object(i.a)({},this._viewportProps),n=A.bearing,r=A.longitude;return Math.abs(n-t.bearing)>180&&(A.bearing=n<0?n+360:n-360),Math.abs(r-t.longitude)>180&&(A.longitude=r<0?r+360:r-360),A}},{key:"_zoomFromCenter",value:function(e){var t=this._viewportProps,A=t.width,n=t.height;return this.zoom({pos:[A/2,n/2],scale:e})}},{key:"_panFromCenter",value:function(e){var t=this._viewportProps,A=t.width,n=t.height;return this.pan({startPos:[A/2,n/2],pos:[A/2+e[0],n/2+e[1]]})}},{key:"_getUpdatedState",value:function(e){return new this.constructor(Object(i.a)({makeViewport:this.makeViewport},this._viewportProps,{},this._state,{},e))}},{key:"_applyConstraints",value:function(e){var t=e.maxZoom,A=e.minZoom,n=e.zoom;e.zoom=Object(c.clamp)(n,A,t);var r=e.maxPitch,i=e.minPitch,o=e.pitch;e.pitch=Object(c.clamp)(o,i,r);var a=e.normalize;return(void 0===a||a)&&Object.assign(e,Object(I.o)(e)),e}},{key:"_unproject",value:function(e){var t=this.makeViewport(this._viewportProps);return e&&t.unproject(e)}},{key:"_calculateNewZoom",value:function(e){var t=e.scale,A=e.startZoom,n=this._viewportProps,r=n.maxZoom,i=n.minZoom,o=A+Math.log2(t);return Object(c.clamp)(o,i,r)}},{key:"_calculateNewPitchAndBearing",value:function(e){var t=e.deltaScaleX,A=e.deltaScaleY,n=e.startBearing,r=e.startPitch;A=Object(c.clamp)(A,-1,1);var i=this._viewportProps,o=i.minPitch,a=i.maxPitch,s=r;return A>0?s=r+A*(a-r):A<0&&(s=r-A*(o-r)),{pitch:s,bearing:n+180*t}}},{key:"_getRotationParams",value:function(e,t){var A=e[0]-t[0],n=e[1]-t[1],r=e[1],i=t[1],o=this._viewportProps,a=o.width,s=o.height,g=A/a,c=0;return n>0?Math.abs(s-i)>5&&(c=n/(i-s)*1.2):n<0&&i>5&&(c=1-r/i),{deltaScaleX:g,deltaScaleY:c=Math.min(1,Math.max(-1,c))}}}]),A}(l.a),v=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(e){return Object(o.a)(this,A),e.dragMode=e.dragMode||"pan",t.call(this,y,e)}return Object(a.a)(A,[{key:"setProps",value:function(e){var t=this.controllerStateProps;Object(r.a)(Object(n.a)(A.prototype),"setProps",this).call(this,e),(!t||t.height!==e.height)&&this.updateViewport(new this.ControllerState(Object(i.a)({makeViewport:this.makeViewport},this.controllerStateProps,{},this._state)))}},{key:"linearTransitionProps",get:function(){return["longitude","latitude","zoom","bearing","pitch"]}}]),A}(u.a)},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(575),u=A(655),l=A(576),I=A(36),C=A(384),h=A(718),f=A(427),d=A(422),B=A(135),p=A(6),E=A(326),Q=A(577),y=A(89),v=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(e){Object(r.a)(this,A);var i=e.fp64,o=e.IndexType,a=void 0===o?Uint32Array:o;return t.call(this,Object(n.a)({},e,{attributes:{positions:{size:3,type:i?Float64Array:Float32Array},vertexValid:{type:Uint8ClampedArray,size:1},indices:{type:a,size:1}}}))}return Object(i.a)(A,[{key:"get",value:function(e){var t=this.attributes;return"indices"===e?t.indices&&t.indices.subarray(0,this.vertexCount):t[e]}},{key:"updateGeometry",value:function(e){Object(a.a)(Object(o.a)(A.prototype),"updateGeometry",this).call(this,e);var t=this.buffers.indices;t&&(this.vertexCount=(t.value||t).length)}},{key:"normalizeGeometry",value:function(e){if(this.normalize){if(e=E.b(e,this.positionSize),this.opts.resolution)return Object(y.b)(e.positions||e,e.holeIndices,{size:this.positionSize,gridResolution:this.opts.resolution,edgeTypes:!0});if(this.opts.wrapLongitude)return Object(y.c)(e.positions||e,e.holeIndices,{size:this.positionSize,maxLatitude:86,edgeTypes:!0})}return e}},{key:"getGeometrySize",value:function(e){if(Array.isArray(e)&&!Number.isFinite(e[0])){var t,A=0,n=Object(p.a)(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;A+=this.getGeometrySize(r)}}catch(i){n.e(i)}finally{n.f()}return A}return(e.positions||e).length/this.positionSize}},{key:"getGeometryFromBuffer",value:function(e){return this.normalize||!this.buffers.indices?Object(a.a)(Object(o.a)(A.prototype),"getGeometryFromBuffer",this).call(this,e):function(){return null}}},{key:"updateGeometryAttributes",value:function(e,t){if(Array.isArray(e)&&!Number.isFinite(e[0])){var A,n=Object(p.a)(e);try{for(n.s();!(A=n.n()).done;){var r=A.value,i=this.getGeometrySize(r);t.geometrySize=i,this.updateGeometryAttributes(r,t),t.vertexStart+=i,t.indexStart=this.indexStarts[t.geometryIndex+1]}}catch(o){n.e(o)}finally{n.f()}}else this._updateIndices(e,t),this._updatePositions(e,t),this._updateVertexValid(e,t)}},{key:"_updateIndices",value:function(e,t){var A=t.geometryIndex,n=t.vertexStart,r=t.indexStart,i=this.attributes,o=this.indexStarts,a=this.typedArrayManager,s=i.indices;if(s){var g=r,c=E.a(e,this.positionSize,this.opts.preproject);s=a.allocate(s,r+c.length,{copy:!0});for(var u=0;u<c.length;u++)s[g++]=c[u]+n;o[A+1]=r+c.length,i.indices=s}}},{key:"_updatePositions",value:function(e,t){var A=t.vertexStart,n=t.geometrySize,r=this.attributes.positions,i=this.positionSize;if(r)for(var o=e.positions||e,a=A,s=0;s<n;a++,s++){var g=o[s*i],c=o[s*i+1],u=i>2?o[s*i+2]:0;r[3*a]=g,r[3*a+1]=c,r[3*a+2]=u}}},{key:"_updateVertexValid",value:function(e,t){var A=t.vertexStart,n=t.geometrySize,r=this.attributes.vertexValid,i=this.positionSize,o=e&&e.holeIndices;if(e&&e.edgeTypes?r.set(e.edgeTypes,A):r.fill(1,A,A+n),o)for(var a=0;a<o.length;a++)r[A+o[a]/i-1]=0;r[A+n-1]=0}}]),A}(Q.a),m="\nattribute vec2 vertexPositions;\nattribute float vertexValid;\n\nuniform bool extruded;\nuniform bool isWireframe;\nuniform float elevationScale;\nuniform float opacity;\n\nvarying vec4 vColor;\n\nstruct PolygonProps {\n vec4 fillColors;\n vec4 lineColors;\n vec3 positions;\n vec3 nextPositions;\n vec3 pickingColors;\n vec3 positions64Low;\n vec3 nextPositions64Low;\n float elevations;\n};\n\nvec3 project_offset_normal(vec3 vector) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSETS) {\n return normalize(vector * project_uCommonUnitsPerWorldUnit);\n }\n return project_normal(vector);\n}\n\nvoid calculatePosition(PolygonProps props) {\n#ifdef IS_SIDE_VERTEX\n if(vertexValid < 0.5){\n gl_Position = vec4(0.);\n return;\n }\n#endif\n\n vec3 pos;\n vec3 pos64Low;\n vec3 normal;\n vec4 colors = isWireframe ? props.lineColors : props.fillColors;\n\n geometry.worldPosition = props.positions;\n geometry.worldPositionAlt = props.nextPositions;\n geometry.pickingColor = props.pickingColors;\n\n#ifdef IS_SIDE_VERTEX\n pos = mix(props.positions, props.nextPositions, vertexPositions.x);\n pos64Low = mix(props.positions64Low, props.nextPositions64Low, vertexPositions.x);\n#else\n pos = props.positions;\n pos64Low = props.positions64Low;\n#endif\n\n if (extruded) {\n pos.z += props.elevations * vertexPositions.y * elevationScale;\n\n#ifdef IS_SIDE_VERTEX\n normal = vec3(\n props.positions.y - props.nextPositions.y + (props.positions64Low.y - props.nextPositions64Low.y),\n props.nextPositions.x - props.positions.x + (props.nextPositions64Low.x - props.positions64Low.x),\n 0.0);\n normal = project_offset_normal(normal);\n#else\n normal = vec3(0.0, 0.0, 1.0);\n#endif\n geometry.normal = normal;\n }\n\n gl_Position = project_position_to_clipspace(pos, pos64Low, vec3(0.), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n if (extruded) {\n vec3 lightColor = lighting_getLightColor(colors.rgb, project_uCameraPosition, geometry.position.xyz, normal);\n vColor = vec4(lightColor, colors.a * opacity);\n } else {\n vColor = vec4(colors.rgb, colors.a * opacity);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n",b="#define SHADER_NAME solid-polygon-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec3 positions64Low;\nattribute float elevations;\nattribute vec4 fillColors;\nattribute vec4 lineColors;\nattribute vec3 pickingColors;\n\n".concat(m,"\n\nvoid main(void) {\n PolygonProps props;\n\n props.positions = positions;\n props.positions64Low = positions64Low;\n props.elevations = elevations;\n props.fillColors = fillColors;\n props.lineColors = lineColors;\n props.pickingColors = pickingColors;\n\n calculatePosition(props);\n}\n"),w="#define SHADER_NAME solid-polygon-layer-vertex-shader-side\n#define IS_SIDE_VERTEX\n\n\nattribute vec3 instancePositions;\nattribute vec3 nextPositions;\nattribute vec3 instancePositions64Low;\nattribute vec3 nextPositions64Low;\nattribute float instanceElevations;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\n".concat(m,"\n\nvoid main(void) {\n PolygonProps props;\n\n #if RING_WINDING_ORDER_CW == 1\n props.positions = instancePositions;\n props.positions64Low = instancePositions64Low;\n props.nextPositions = nextPositions;\n props.nextPositions64Low = nextPositions64Low;\n #else\n props.positions = nextPositions;\n props.positions64Low = nextPositions64Low;\n props.nextPositions = instancePositions;\n props.nextPositions64Low = instancePositions64Low;\n #endif\n props.elevations = instanceElevations;\n props.fillColors = instanceFillColors;\n props.lineColors = instanceLineColors;\n props.pickingColors = instancePickingColors;\n\n calculatePosition(props);\n}\n");A.d(t,"a",(function(){return D}));var S=[0,0,0,255],F={filled:!0,extruded:!1,wireframe:!1,_normalize:!0,_windingOrder:"CW",elevationScale:{type:"number",min:0,value:1},getPolygon:{type:"accessor",value:function(e){return e.polygon}},getElevation:{type:"accessor",value:1e3},getFillColor:{type:"accessor",value:S},getLineColor:{type:"accessor",value:S},material:!0},R={enter:function(e,t){return t.length?t.subarray(t.length-e.length):e}},D=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"getShaders",value:function(e){return Object(a.a)(Object(o.a)(A.prototype),"getShaders",this).call(this,{vs:"top"===e?b:w,fs:"#define SHADER_NAME solid-polygon-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main(void) {\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",defines:{RING_WINDING_ORDER_CW:this.props._normalize||"CCW"!==this.props._windingOrder?1:0},modules:[c.a,u.a,l.a]})}},{key:"initializeState",value:function(){var e=this,t=this.context,A=t.gl,n=t.viewport,r=this.props.coordinateSystem;n.isGeospatial&&r===I.a.DEFAULT&&(r=I.a.LNGLAT),this.setState({numInstances:0,polygonTesselator:new v({preproject:r===I.a.LNGLAT&&n.projectFlat,fp64:this.use64bitPositions(),IndexType:!A||Object(h.c)(A,f.a.ELEMENT_INDEX_UINT32)?Uint32Array:Uint16Array})});var i=this.getAttributeManager();i.remove(["instancePickingColors"]),i.add({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:!0},positions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:R,accessor:"getPolygon",update:this.calculatePositions,noAlloc:!0,shaderAttributes:{positions:{vertexOffset:0,divisor:0},instancePositions:{vertexOffset:0,divisor:1},nextPositions:{vertexOffset:1,divisor:1}}},vertexValid:{size:1,divisor:1,type:5121,update:this.calculateVertexValid,noAlloc:!0},elevations:{size:1,transition:R,accessor:"getElevation",shaderAttributes:{elevations:{divisor:0},instanceElevations:{divisor:1}}},fillColors:{alias:"colors",size:this.props.colorFormat.length,type:5121,normalized:!0,transition:R,accessor:"getFillColor",defaultValue:S,shaderAttributes:{fillColors:{divisor:0},instanceFillColors:{divisor:1}}},lineColors:{alias:"colors",size:this.props.colorFormat.length,type:5121,normalized:!0,transition:R,accessor:"getLineColor",defaultValue:S,shaderAttributes:{lineColors:{divisor:0},instanceLineColors:{divisor:1}}},pickingColors:{size:3,type:5121,accessor:function(t,A){var n=A.index,r=A.target;return e.encodePickingColor(t&&t.__source?t.__source.index:n,r)},shaderAttributes:{pickingColors:{divisor:0},instancePickingColors:{divisor:1}}}})}},{key:"getPickingInfo",value:function(e){var t=Object(a.a)(Object(o.a)(A.prototype),"getPickingInfo",this).call(this,e),n=t.index,r=this.props.data;return r[0]&&r[0].__source&&(t.object=r.find((function(e){return e.__source.index===n}))),t}},{key:"disablePickingIndex",value:function(e){var t=this.props.data;if(t[0]&&t[0].__source)for(var A=0;A<t.length;A++)t[A].__source.index===e&&this._disablePickingIndex(A);else this._disablePickingIndex(e)}},{key:"draw",value:function(e){var t=e.uniforms,A=this.props,r=A.extruded,i=A.filled,o=A.wireframe,a=A.elevationScale,s=this.state,g=s.topModel,c=s.sideModel,u=s.polygonTesselator,l=Object(n.a)({},t,{extruded:Boolean(r),elevationScale:a});c&&(c.setInstanceCount(u.instanceCount-1),c.setUniforms(l),o&&(c.setDrawMode(3),c.setUniforms({isWireframe:!0}).draw()),i&&(c.setDrawMode(6),c.setUniforms({isWireframe:!1}).draw())),g&&(g.setVertexCount(u.vertexCount),g.setUniforms(l).draw())}},{key:"updateState",value:function(e){Object(a.a)(Object(o.a)(A.prototype),"updateState",this).call(this,e),this.updateGeometry(e);var t,n=e.props,r=e.oldProps,i=e.changeFlags,s=this.getAttributeManager();(i.extensionsChanged||n.filled!==r.filled||n.extruded!==r.extruded)&&(null===(t=this.state.models)||void 0===t||t.forEach((function(e){return e.delete()})),this.setState(this._getModels(this.context.gl)),s.invalidateAll())}},{key:"updateGeometry",value:function(e){var t=e.props,A=(e.oldProps,e.changeFlags);if(A.dataChanged||A.updateTriggersChanged&&(A.updateTriggersChanged.all||A.updateTriggersChanged.getPolygon)){var n=this.state.polygonTesselator,r=t.data.attributes||{};n.updateGeometry({data:t.data,normalize:t._normalize,geometryBuffer:r.getPolygon,buffers:r,getGeometry:t.getPolygon,positionFormat:t.positionFormat,wrapLongitude:t.wrapLongitude,resolution:this.context.viewport.resolution,fp64:this.use64bitPositions(),dataChanged:A.dataChanged}),this.setState({numInstances:n.instanceCount,startIndices:n.vertexStarts}),A.dataChanged||this.getAttributeManager().invalidateAll()}}},{key:"_getModels",value:function(e){var t,A,r=this.props,i=r.id,o=r.filled,a=r.extruded;if(o){var s=this.getShaders("top");s.defines.NON_INSTANCED_MODEL=1,t=new d.a(e,Object(n.a)({},s,{id:"".concat(i,"-top"),drawMode:4,attributes:{vertexPositions:new Float32Array([0,1])},uniforms:{isWireframe:!1,isSideVertex:!1},vertexCount:0,isIndexed:!0}))}return a&&((A=new d.a(e,Object(n.a)({},this.getShaders("side"),{id:"".concat(i,"-side"),geometry:new B.a({drawMode:1,vertexCount:4,attributes:{vertexPositions:{size:2,value:new Float32Array([1,0,0,0,0,1,1,1])}}}),instanceCount:0,isInstanced:1}))).userData.excludeAttributes={indices:!0}),{models:[A,t].filter(Boolean),topModel:t,sideModel:A}}},{key:"calculateIndices",value:function(e){var t=this.state.polygonTesselator;e.startIndices=t.indexStarts,e.value=t.get("indices")}},{key:"calculatePositions",value:function(e){var t=this.state.polygonTesselator;e.startIndices=t.vertexStarts,e.value=t.get("positions")}},{key:"calculateVertexValid",value:function(e){e.value=this.state.polygonTesselator.get("vertexValid")}},{key:"wrapLongitude",get:function(){return!1}}]),A}(C.a);D.layerName="SolidPolygonLayer",D.defaultProps=F},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(575),u=A(576),l=A(41),I=A(36),C=A(384),h=A(422),f=A(135),d=A(6),B=A(577),p=A(89);var E=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(e){return Object(r.a)(this,A),t.call(this,Object(n.a)({},e,{attributes:{positions:{size:3,padding:18,initialize:!0,type:e.fp64?Float64Array:Float32Array},segmentTypes:{size:1,type:Uint8ClampedArray}}}))}return Object(i.a)(A,[{key:"getGeometryFromBuffer",value:function(e){return this.normalize?Object(a.a)(Object(o.a)(A.prototype),"getGeometryFromBuffer",this).call(this,e):function(){return null}}},{key:"normalizeGeometry",value:function(e){return this.normalize?function(e,t,A,n){var r=e;if(Array.isArray(e[0])){var i=e.length*t;r=new Array(i);for(var o=0;o<e.length;o++)for(var a=0;a<t;a++)r[o*t+a]=e[o][a]||0}return A?Object(p.d)(r,{size:t,gridResolution:A}):n?Object(p.e)(r,{size:t}):r}(e,this.positionSize,this.opts.resolution,this.opts.wrapLongitude):e}},{key:"get",value:function(e){return this.attributes[e]}},{key:"getGeometrySize",value:function(e){if(Array.isArray(e[0])){var t,A=0,n=Object(d.a)(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;A+=this.getGeometrySize(r)}}catch(o){n.e(o)}finally{n.f()}return A}var i=this.getPathLength(e);return i<2?0:this.isClosed(e)?i<3?0:i+2:i}},{key:"updateGeometryAttributes",value:function(e,t){if(0!==t.geometrySize)if(e&&Array.isArray(e[0])){var A,n=Object(d.a)(e);try{for(n.s();!(A=n.n()).done;){var r=A.value,i=this.getGeometrySize(r);t.geometrySize=i,this.updateGeometryAttributes(r,t),t.vertexStart+=i}}catch(o){n.e(o)}finally{n.f()}}else this._updateSegmentTypes(e,t),this._updatePositions(e,t)}},{key:"_updateSegmentTypes",value:function(e,t){var A=this.attributes.segmentTypes,n=this.isClosed(e),r=t.vertexStart,i=t.geometrySize;A.fill(0,r,r+i),n?(A[r]=4,A[r+i-2]=4):(A[r]+=1,A[r+i-2]+=2),A[r+i-1]=4}},{key:"_updatePositions",value:function(e,t){var A=this.attributes.positions;if(A)for(var n=t.vertexStart,r=t.geometrySize,i=new Array(3),o=n,a=0;a<r;o++,a++)this.getPointOnPath(e,a,i),A[3*o]=i[0],A[3*o+1]=i[1],A[3*o+2]=i[2]}},{key:"getPathLength",value:function(e){return e.length/this.positionSize}},{key:"getPointOnPath",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=this.positionSize;t*n>=e.length&&(t+=1-e.length/n);var r=t*n;return A[0]=e[r],A[1]=e[r+1],A[2]=3===n&&e[r+2]||0,A}},{key:"isClosed",value:function(e){if(!this.normalize)return this.opts.loop;var t=this.positionSize,A=e.length-t;return e[0]===e[A]&&e[1]===e[A+1]&&(2===t||e[2]===e[A+2])}}]),A}(B.a);A.d(t,"a",(function(){return m}));var Q=[0,0,0,255],y={widthUnits:"meters",widthScale:{type:"number",min:0,value:1},widthMinPixels:{type:"number",min:0,value:0},widthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},jointRounded:!1,capRounded:!1,miterLimit:{type:"number",min:0,value:4},billboard:!1,_pathType:null,getPath:{type:"accessor",value:function(e){return e.path}},getColor:{type:"accessor",value:Q},getWidth:{type:"accessor",value:1},rounded:{deprecatedFor:["jointRounded","capRounded"]}},v={enter:function(e,t){return t.length?t.subarray(t.length-e.length):e}},m=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"getShaders",value:function(){return Object(a.a)(Object(o.a)(A.prototype),"getShaders",this).call(this,{vs:"#define SHADER_NAME path-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute float instanceTypes;\nattribute vec3 instanceStartPositions;\nattribute vec3 instanceEndPositions;\nattribute vec3 instanceLeftPositions;\nattribute vec3 instanceRightPositions;\nattribute vec3 instanceLeftPositions64Low;\nattribute vec3 instanceStartPositions64Low;\nattribute vec3 instanceEndPositions64Low;\nattribute vec3 instanceRightPositions64Low;\nattribute float instanceStrokeWidths;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\n\nuniform float widthScale;\nuniform float widthMinPixels;\nuniform float widthMaxPixels;\nuniform float jointType;\nuniform float capType;\nuniform float miterLimit;\nuniform bool billboard;\nuniform int widthUnits;\n\nuniform float opacity;\n\nvarying vec4 vColor;\nvarying vec2 vCornerOffset;\nvarying float vMiterLength;\nvarying vec2 vPathPosition;\nvarying float vPathLength;\nvarying float vJointType;\n\nconst float EPSILON = 0.001;\nconst vec3 ZERO_OFFSET = vec3(0.0);\n\nfloat flipIfTrue(bool flag) {\n return -(float(flag) * 2. - 1.);\n}\nvec3 lineJoin(\n vec3 prevPoint, vec3 currPoint, vec3 nextPoint,\n vec2 width\n) {\n bool isEnd = positions.x > 0.0;\n float sideOfPath = positions.y;\n float isJoint = float(sideOfPath == 0.0);\n\n vec3 deltaA3 = (currPoint - prevPoint);\n vec3 deltaB3 = (nextPoint - currPoint);\n\n mat3 rotationMatrix;\n bool needsRotation = !billboard && project_needs_rotation(currPoint, rotationMatrix);\n if (needsRotation) {\n deltaA3 = deltaA3 * rotationMatrix;\n deltaB3 = deltaB3 * rotationMatrix;\n }\n vec2 deltaA = deltaA3.xy / width;\n vec2 deltaB = deltaB3.xy / width;\n\n float lenA = length(deltaA);\n float lenB = length(deltaB);\n\n vec2 dirA = lenA > 0. ? normalize(deltaA) : vec2(0.0, 0.0);\n vec2 dirB = lenB > 0. ? normalize(deltaB) : vec2(0.0, 0.0);\n\n vec2 perpA = vec2(-dirA.y, dirA.x);\n vec2 perpB = vec2(-dirB.y, dirB.x);\n vec2 tangent = dirA + dirB;\n tangent = length(tangent) > 0. ? normalize(tangent) : perpA;\n vec2 miterVec = vec2(-tangent.y, tangent.x);\n vec2 dir = isEnd ? dirA : dirB;\n vec2 perp = isEnd ? perpA : perpB;\n float L = isEnd ? lenA : lenB;\n float sinHalfA = abs(dot(miterVec, perp));\n float cosHalfA = abs(dot(dirA, miterVec));\n float turnDirection = flipIfTrue(dirA.x * dirB.y >= dirA.y * dirB.x);\n float cornerPosition = sideOfPath * turnDirection;\n\n float miterSize = 1.0 / max(sinHalfA, EPSILON);\n miterSize = mix(\n min(miterSize, max(lenA, lenB) / max(cosHalfA, EPSILON)),\n miterSize,\n step(0.0, cornerPosition)\n );\n\n vec2 offsetVec = mix(miterVec * miterSize, perp, step(0.5, cornerPosition))\n * (sideOfPath + isJoint * turnDirection);\n bool isStartCap = lenA == 0.0 || (!isEnd && (instanceTypes == 1.0 || instanceTypes == 3.0));\n bool isEndCap = lenB == 0.0 || (isEnd && (instanceTypes == 2.0 || instanceTypes == 3.0));\n bool isCap = isStartCap || isEndCap;\n if (isCap) {\n offsetVec = mix(perp * sideOfPath, dir * capType * 4.0 * flipIfTrue(isStartCap), isJoint);\n vJointType = capType;\n } else {\n vJointType = jointType;\n }\n vPathLength = L;\n vCornerOffset = offsetVec;\n vMiterLength = dot(vCornerOffset, miterVec * turnDirection);\n vMiterLength = isCap ? isJoint : vMiterLength;\n\n vec2 offsetFromStartOfPath = vCornerOffset + deltaA * float(isEnd);\n vPathPosition = vec2(\n dot(offsetFromStartOfPath, perp),\n dot(offsetFromStartOfPath, dir)\n );\n geometry.uv = vPathPosition;\n\n float isValid = step(instanceTypes, 3.5);\n vec3 offset = vec3(offsetVec * width * isValid, 0.0);\n\n if (needsRotation) {\n offset = rotationMatrix * offset;\n }\n return currPoint + offset;\n}\nvoid clipLine(inout vec4 position, vec4 refPosition) {\n if (position.w < EPSILON) {\n float r = (EPSILON - refPosition.w) / (position.w - refPosition.w);\n position = refPosition + (position - refPosition) * r;\n }\n}\n\nvoid main() {\n geometry.pickingColor = instancePickingColors;\n\n vColor = vec4(instanceColors.rgb, instanceColors.a * opacity);\n\n float isEnd = positions.x;\n\n vec3 prevPosition = mix(instanceLeftPositions, instanceStartPositions, isEnd);\n vec3 prevPosition64Low = mix(instanceLeftPositions64Low, instanceStartPositions64Low, isEnd);\n\n vec3 currPosition = mix(instanceStartPositions, instanceEndPositions, isEnd);\n vec3 currPosition64Low = mix(instanceStartPositions64Low, instanceEndPositions64Low, isEnd);\n\n vec3 nextPosition = mix(instanceEndPositions, instanceRightPositions, isEnd);\n vec3 nextPosition64Low = mix(instanceEndPositions64Low, instanceRightPositions64Low, isEnd);\n\n geometry.worldPosition = currPosition;\n vec2 widthPixels = vec2(clamp(\n project_size_to_pixel(instanceStrokeWidths * widthScale, widthUnits),\n widthMinPixels, widthMaxPixels) / 2.0);\n vec3 width;\n\n if (billboard) {\n vec4 prevPositionScreen = project_position_to_clipspace(prevPosition, prevPosition64Low, ZERO_OFFSET);\n vec4 currPositionScreen = project_position_to_clipspace(currPosition, currPosition64Low, ZERO_OFFSET, geometry.position);\n vec4 nextPositionScreen = project_position_to_clipspace(nextPosition, nextPosition64Low, ZERO_OFFSET);\n\n clipLine(prevPositionScreen, currPositionScreen);\n clipLine(nextPositionScreen, currPositionScreen);\n clipLine(currPositionScreen, mix(nextPositionScreen, prevPositionScreen, isEnd));\n\n width = vec3(widthPixels, 0.0);\n DECKGL_FILTER_SIZE(width, geometry);\n\n vec3 pos = lineJoin(\n prevPositionScreen.xyz / prevPositionScreen.w,\n currPositionScreen.xyz / currPositionScreen.w,\n nextPositionScreen.xyz / nextPositionScreen.w,\n project_pixel_size_to_clipspace(width.xy)\n );\n\n gl_Position = vec4(pos * currPositionScreen.w, currPositionScreen.w);\n } else {\n prevPosition = project_position(prevPosition, prevPosition64Low);\n currPosition = project_position(currPosition, currPosition64Low);\n nextPosition = project_position(nextPosition, nextPosition64Low);\n\n width = vec3(project_pixel_size(widthPixels), 0.0);\n DECKGL_FILTER_SIZE(width, geometry);\n\n vec4 pos = vec4(\n lineJoin(prevPosition, currPosition, nextPosition, width.xy),\n 1.0);\n geometry.position = pos;\n gl_Position = project_common_position_to_clipspace(pos);\n }\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#define SHADER_NAME path-layer-fragment-shader\n\nprecision highp float;\n\nuniform float miterLimit;\n\nvarying vec4 vColor;\nvarying vec2 vCornerOffset;\nvarying float vMiterLength;\nvarying vec2 vPathPosition;\nvarying float vPathLength;\nvarying float vJointType;\n\nvoid main(void) {\n geometry.uv = vPathPosition;\n\n if (vPathPosition.y < 0.0 || vPathPosition.y > vPathLength) {\n if (vJointType > 0.5 && length(vCornerOffset) > 1.0) {\n discard;\n }\n if (vJointType < 0.5 && vMiterLength > miterLimit + 1.0) {\n discard;\n }\n }\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[c.a,u.a]})}},{key:"initializeState",value:function(){var e=this;this.getAttributeManager().addInstanced({positions:{size:3,vertexOffset:1,type:5130,fp64:this.use64bitPositions(),transition:v,accessor:"getPath",update:this.calculatePositions,noAlloc:!0,shaderAttributes:{instanceLeftPositions:{vertexOffset:0},instanceStartPositions:{vertexOffset:1},instanceEndPositions:{vertexOffset:2},instanceRightPositions:{vertexOffset:3}}},instanceTypes:{size:1,type:5121,update:this.calculateSegmentTypes,noAlloc:!0},instanceStrokeWidths:{size:1,accessor:"getWidth",transition:v,defaultValue:1},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,accessor:"getColor",transition:v,defaultValue:Q},instancePickingColors:{size:3,type:5121,accessor:function(t,A){var n=A.index,r=A.target;return e.encodePickingColor(t&&t.__source?t.__source.index:n,r)}}}),this.setState({pathTesselator:new E({fp64:this.use64bitPositions()})}),this.props.getDashArray&&!this.props.extensions.length&&l.a.removed("getDashArray","PathStyleExtension")()}},{key:"updateState",value:function(e){var t=e.oldProps,n=e.props,r=e.changeFlags;Object(a.a)(Object(o.a)(A.prototype),"updateState",this).call(this,{props:n,oldProps:t,changeFlags:r});var i=this.getAttributeManager();if(r.dataChanged||r.updateTriggersChanged&&(r.updateTriggersChanged.all||r.updateTriggersChanged.getPath)){var s=this.state.pathTesselator,g=n.data.attributes||{};s.updateGeometry({data:n.data,geometryBuffer:g.getPath,buffers:g,normalize:!n._pathType,loop:"loop"===n._pathType,getGeometry:n.getPath,positionFormat:n.positionFormat,wrapLongitude:n.wrapLongitude,resolution:this.context.viewport.resolution,dataChanged:r.dataChanged}),this.setState({numInstances:s.instanceCount,startIndices:s.vertexStarts}),r.dataChanged||i.invalidateAll()}if(r.extensionsChanged){var c,u=this.context.gl;null===(c=this.state.model)||void 0===c||c.delete(),this.state.model=this._getModel(u),i.invalidateAll()}}},{key:"getPickingInfo",value:function(e){var t=Object(a.a)(Object(o.a)(A.prototype),"getPickingInfo",this).call(this,e),n=t.index,r=this.props.data;return r[0]&&r[0].__source&&(t.object=r.find((function(e){return e.__source.index===n}))),t}},{key:"disablePickingIndex",value:function(e){var t=this.props.data;if(t[0]&&t[0].__source)for(var A=0;A<t.length;A++)t[A].__source.index===e&&this._disablePickingIndex(A);else this._disablePickingIndex(e)}},{key:"draw",value:function(e){var t=e.uniforms,A=this.props,n=A.jointRounded,r=A.capRounded,i=A.billboard,o=A.miterLimit,a=A.widthUnits,s=A.widthScale,g=A.widthMinPixels,c=A.widthMaxPixels;this.state.model.setUniforms(t).setUniforms({jointType:Number(n),capType:Number(r),billboard:i,widthUnits:I.d[a],widthScale:s,miterLimit:o,widthMinPixels:g,widthMaxPixels:c}).draw()}},{key:"_getModel",value:function(e){return new h.a(e,Object(n.a)({},this.getShaders(),{id:this.props.id,geometry:new f.a({drawMode:4,attributes:{indices:new Uint16Array([0,1,2,1,4,2,1,3,4,3,5,4]),positions:{value:new Float32Array([0,0,0,-1,0,1,1,-1,1,1,1,0]),size:2}}}),isInstanced:!0}))}},{key:"calculatePositions",value:function(e){var t=this.state.pathTesselator;e.startIndices=t.vertexStarts,e.value=t.get("positions")}},{key:"calculateSegmentTypes",value:function(e){var t=this.state.pathTesselator;e.startIndices=t.vertexStarts,e.value=t.get("segmentTypes")}},{key:"wrapLongitude",get:function(){return!1}}]),A}(C.a);m.layerName="PathLayer",m.defaultProps=y},function(e,t,A){"use strict";var n,r=A(7),i=A(1),o=A(4),a=A(16),s=A(17),g=A(9),c=A(10),u=A(575),l=A(576),I=A(36),C=A(41),h=A(384),f=A(422),d=A(135),B=A(6),p=A(2),E=A(663),Q=A(530),y=A(232),v=A(1286),m=A(1283),b=A(116),w=function(){},S=(n={},Object(p.a)(n,10241,9987),Object(p.a)(n,10240,9729),Object(p.a)(n,10242,33071),Object(p.a)(n,10243,33071),n);function F(e){return e&&(e.id||e.url)}function R(e,t,A){for(var n=0;n<t.length;n++){var i=t[n],o=i.icon,a=i.xOffset;e[F(o)]=Object(r.a)({},o,{x:a,y:A})}}var D=function(){function e(t,A){var n=A.onUpdate,r=void 0===n?w:n,o=A.onError,a=void 0===o?w:o;Object(i.a)(this,e),this.gl=t,this.onUpdate=r,this.onError=a,this._loadOptions=null,this._getIcon=null,this._texture=null,this._externalTexture=null,this._mapping={},this._pendingCount=0,this._autoPacking=!1,this._xOffset=0,this._yOffset=0,this._rowHeight=0,this._buffer=4,this._canvasWidth=1024,this._canvasHeight=0,this._canvas=null}return Object(o.a)(e,[{key:"finalize",value:function(){var e;null===(e=this._texture)||void 0===e||e.delete()}},{key:"getTexture",value:function(){return this._texture||this._externalTexture}},{key:"getIconMapping",value:function(e){var t=this._autoPacking?F(e):e;return this._mapping[t]||{}}},{key:"setProps",value:function(e){var t=e.loadOptions,A=e.autoPacking,n=e.iconAtlas,r=e.iconMapping,i=e.data,o=e.getIcon;t&&(this._loadOptions=t),void 0!==A&&(this._autoPacking=A),o&&(this._getIcon=o),r&&(this._mapping=r),n&&this._updateIconAtlas(n),this._autoPacking&&(i||o)&&"undefined"!==typeof document&&(this._canvas=this._canvas||document.createElement("canvas"),this._updateAutoPacking(i))}},{key:"_updateIconAtlas",value:function(e){var t;null===(t=this._texture)||void 0===t||t.delete(),this._texture=null,this._externalTexture=e,this.onUpdate()}},{key:"_updateAutoPacking",value:function(e){var t=Object.values(function(e,t,A){if(!e||!t)return null;A=A||{};var n,i={},o=Object(b.a)(e),a=o.iterable,s=o.objectInfo,g=Object(B.a)(a);try{for(g.s();!(n=g.n()).done;){var c=n.value;s.index++;var u=t(c,s),l=F(u);if(!u)throw new Error("Icon is missing.");if(!u.url)throw new Error("Icon url is missing.");i[l]||A[l]&&u.url===A[l].url||(i[l]=Object(r.a)({},u,{source:c,sourceIndex:s.index}))}}catch(I){g.e(I)}finally{g.f()}return i}(e,this._getIcon,this._mapping)||{});if(t.length>0){var A=function(e){for(var t,A=e.icons,n=e.buffer,r=e.mapping,i=void 0===r?{}:r,o=e.xOffset,a=void 0===o?0:o,s=e.yOffset,g=void 0===s?0:s,c=e.rowHeight,u=void 0===c?0:c,l=e.canvasWidth,I=[],C=0;C<A.length;C++){var h=A[C];if(!i[F(h)]){var f=h.height,d=h.width;a+d+n>l&&(R(i,I,g),a=0,g=u+g+n,u=0,I=[]),I.push({icon:h,xOffset:a}),a=a+d+n,u=Math.max(u,f)}}return I.length>0&&R(i,I,g),{mapping:i,rowHeight:u,xOffset:a,yOffset:g,canvasWidth:l,canvasHeight:(t=u+g+n,Math.pow(2,Math.ceil(Math.log2(t))))}}({icons:t,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset}),n=A.mapping,i=A.xOffset,o=A.yOffset,a=A.rowHeight,s=A.canvasHeight;this._rowHeight=a,this._mapping=n,this._xOffset=i,this._yOffset=o,this._canvasHeight=s,this._texture||(this._texture=new y.a(this.gl,{width:this._canvasWidth,height:this._canvasHeight,parameters:S})),this._texture.height!==this._canvasHeight&&(this._texture=function(e,t,A,n){var r=t.width,i=t.height,o=Object(E.a)(t,{width:A,height:n});return Object(Q.b)(t,o,{targetY:0,width:r,height:i}),t.delete(),o}(this.gl,this._texture,this._canvasWidth,this._canvasHeight)),this.onUpdate(),this._loadIcons(t)}}},{key:"_loadIcons",value:function(e){var t,A=this,n=this._canvas.getContext("2d"),r=Object(B.a)(e);try{var i=function(){var e=t.value;A._pendingCount++,Object(m.a)(e.url,v.a,A._loadOptions).then((function(t){var r=F(e),i=A._mapping[r],o=i.x,a=i.y,s=i.width,g=i.height,c=function(e,t,A,n){return A===t.width&&n===t.height?t:(e.canvas.height=n,e.canvas.width=A,e.clearRect(0,0,e.canvas.width,e.canvas.height),e.drawImage(t,0,0,t.width,t.height,0,0,A,n),e.canvas)}(n,t,s,g);A._texture.setSubImageData({data:c,x:o,y:a,width:s,height:g}),A._texture.generateMipmap(),A.onUpdate()})).catch((function(t){A.onError({url:e.url,source:e.source,sourceIndex:e.sourceIndex,loadOptions:A._loadOptions,error:t})})).finally((function(){A._pendingCount--}))};for(r.s();!(t=r.n()).done;)i()}catch(o){r.e(o)}finally{r.f()}}},{key:"isLoaded",get:function(){return 0===this._pendingCount}}]),e}();A.d(t,"a",(function(){return x}));var G=[0,0,0,255],k={iconAtlas:{type:"image",value:null,async:!0},iconMapping:{type:"object",value:{},async:!0},sizeScale:{type:"number",value:1,min:0},billboard:!0,sizeUnits:"pixels",sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:"number",value:.05,min:0,max:1},getPosition:{type:"accessor",value:function(e){return e.position}},getIcon:{type:"accessor",value:function(e){return e.icon}},getColor:{type:"accessor",value:G},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},onIconError:{type:"function",value:null,compare:!1,optional:!0}},x=function(e){Object(g.a)(A,e);var t=Object(c.a)(A);function A(){return Object(i.a)(this,A),t.apply(this,arguments)}return Object(o.a)(A,[{key:"getShaders",value:function(){return Object(s.a)(Object(a.a)(A.prototype),"getShaders",this).call(this,{vs:"#define SHADER_NAME icon-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute float instanceSizes;\nattribute float instanceAngles;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\nattribute vec4 instanceIconFrames;\nattribute float instanceColorModes;\nattribute vec2 instanceOffsets;\nattribute vec2 instancePixelOffset;\n\nuniform float sizeScale;\nuniform vec2 iconsTextureDim;\nuniform float sizeMinPixels;\nuniform float sizeMaxPixels;\nuniform bool billboard;\nuniform int sizeUnits;\n\nvarying float vColorMode;\nvarying vec4 vColor;\nvarying vec2 vTextureCoords;\nvarying vec2 uv;\n\nvec2 rotate_by_angle(vec2 vertex, float angle) {\n float angle_radian = angle * PI / 180.0;\n float cos_angle = cos(angle_radian);\n float sin_angle = sin(angle_radian);\n mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\n return rotationMatrix * vertex;\n}\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = positions;\n geometry.pickingColor = instancePickingColors;\n uv = positions;\n\n vec2 iconSize = instanceIconFrames.zw;\n float sizePixels = clamp(\n project_size_to_pixel(instanceSizes * sizeScale, sizeUnits), \n sizeMinPixels, sizeMaxPixels\n );\n float instanceScale = iconSize.y == 0.0 ? 0.0 : sizePixels / iconSize.y;\n vec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets;\n pixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale;\n pixelOffset += instancePixelOffset;\n pixelOffset.y *= -1.0;\n\n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n vec3 offset = vec3(pixelOffset, 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n\n } else {\n vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\n DECKGL_FILTER_SIZE(offset_common, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position); \n }\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vTextureCoords = mix(\n instanceIconFrames.xy,\n instanceIconFrames.xy + iconSize,\n (positions.xy + 1.0) / 2.0\n ) / iconsTextureDim;\n\n vColor = instanceColors;\n DECKGL_FILTER_COLOR(vColor, geometry);\n\n vColorMode = instanceColorModes;\n}\n",fs:"#define SHADER_NAME icon-layer-fragment-shader\n\nprecision highp float;\n\nuniform float opacity;\nuniform sampler2D iconsTexture;\nuniform float alphaCutoff;\n\nvarying float vColorMode;\nvarying vec4 vColor;\nvarying vec2 vTextureCoords;\nvarying vec2 uv;\n\nvoid main(void) {\n geometry.uv = uv;\n\n vec4 texColor = texture2D(iconsTexture, vTextureCoords);\n vec3 color = mix(texColor.rgb, vColor.rgb, vColorMode);\n float a = texColor.a * opacity * vColor.a;\n\n if (a < alphaCutoff) {\n discard;\n }\n\n gl_FragColor = vec4(color, a);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[u.a,l.a]})}},{key:"initializeState",value:function(){this.state={iconManager:new D(this.context.gl,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})},this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceOffsets:{size:2,accessor:"getIcon",transform:this.getInstanceOffset},instanceIconFrames:{size:4,accessor:"getIcon",transform:this.getInstanceIconFrame},instanceColorModes:{size:1,type:5121,accessor:"getIcon",transform:this.getInstanceColorMode},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getColor",defaultValue:G},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instancePixelOffset:{size:2,transition:!0,accessor:"getPixelOffset"}})}},{key:"updateState",value:function(e){var t=e.oldProps,n=e.props,r=e.changeFlags;Object(s.a)(Object(a.a)(A.prototype),"updateState",this).call(this,{props:n,oldProps:t,changeFlags:r});var i=this.getAttributeManager(),o=n.iconAtlas,g=n.iconMapping,c=n.data,u=n.getIcon,l=this.state.iconManager;l.setProps({loadOptions:n.loadOptions});var I=!1;if(o||this.internalState.isAsyncPropLoading("iconAtlas")?(t.iconAtlas!==n.iconAtlas&&l.setProps({iconAtlas:o,autoPacking:!1}),t.iconMapping!==n.iconMapping&&(l.setProps({iconMapping:g}),I=!0)):l.setProps({autoPacking:!0}),(r.dataChanged||r.updateTriggersChanged&&(r.updateTriggersChanged.all||r.updateTriggersChanged.getIcon))&&l.setProps({data:c,getIcon:u}),I&&(i.invalidate("instanceOffsets"),i.invalidate("instanceIconFrames"),i.invalidate("instanceColorModes")),r.extensionsChanged){var C,h=this.context.gl;null===(C=this.state.model)||void 0===C||C.delete(),this.state.model=this._getModel(h),i.invalidateAll()}}},{key:"finalizeState",value:function(){Object(s.a)(Object(a.a)(A.prototype),"finalizeState",this).call(this),this.state.iconManager.finalize()}},{key:"draw",value:function(e){var t=e.uniforms,A=this.props,n=A.sizeScale,r=A.sizeMinPixels,i=A.sizeMaxPixels,o=A.sizeUnits,a=A.billboard,s=A.alphaCutoff,g=this.state.iconManager.getTexture();g&&this.state.model.setUniforms(t).setUniforms({iconsTexture:g,iconsTextureDim:[g.width,g.height],sizeUnits:I.d[o],sizeScale:n,sizeMinPixels:r,sizeMaxPixels:i,billboard:a,alphaCutoff:s}).draw()}},{key:"_getModel",value:function(e){return new f.a(e,Object(r.a)({},this.getShaders(),{id:this.props.id,geometry:new d.a({drawMode:6,attributes:{positions:{size:2,value:new Float32Array([-1,-1,-1,1,1,1,1,-1])}}}),isInstanced:!0}))}},{key:"_onUpdate",value:function(){this.setNeedsRedraw()}},{key:"_onError",value:function(e){var t=this.getCurrentLayer().props.onIconError;t?t(e):C.a.error(e.error)()}},{key:"getInstanceOffset",value:function(e){var t=this.state.iconManager.getIconMapping(e);return[t.width/2-t.anchorX||0,t.height/2-t.anchorY||0]}},{key:"getInstanceColorMode",value:function(e){return this.state.iconManager.getIconMapping(e).mask?1:0}},{key:"getInstanceIconFrame",value:function(e){var t=this.state.iconManager.getIconMapping(e);return[t.x||0,t.y||0,t.width||0,t.height||0]}},{key:"isLoaded",get:function(){return Object(s.a)(Object(a.a)(A.prototype),"isLoaded",this)&&this.state.iconManager.isLoaded}}]),A}(h.a);x.layerName="IconLayer",x.defaultProps=k},function(e,t,A){"use strict";A.r(t);function n(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function r(e,t,A){if(void 0===A&&(A={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!i(e[0])||!i(e[1]))throw new Error("coordinates must contain numbers");return n({type:"Point",coordinates:e},t,A)}function i(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function o(e,t,A){if(null!==e)for(var n,r,i,a,s,g,c,u,l=0,I=0,C=e.type,h="FeatureCollection"===C,f="Feature"===C,d=h?e.features.length:1,B=0;B<d;B++){s=(u=!!(c=h?e.features[B].geometry:f?e.geometry:e)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var p=0;p<s;p++){var E=0,Q=0;if(null!==(a=u?c.geometries[p]:c)){g=a.coordinates;var y=a.type;switch(l=!A||"Polygon"!==y&&"MultiPolygon"!==y?0:1,y){case null:break;case"Point":if(!1===t(g,I,B,E,Q))return!1;I++,E++;break;case"LineString":case"MultiPoint":for(n=0;n<g.length;n++){if(!1===t(g[n],I,B,E,Q))return!1;I++,"MultiPoint"===y&&E++}"LineString"===y&&E++;break;case"Polygon":case"MultiLineString":for(n=0;n<g.length;n++){for(r=0;r<g[n].length-l;r++){if(!1===t(g[n][r],I,B,E,Q))return!1;I++}"MultiLineString"===y&&E++,"Polygon"===y&&Q++}"Polygon"===y&&E++;break;case"MultiPolygon":for(n=0;n<g.length;n++){for(Q=0,r=0;r<g[n].length;r++){for(i=0;i<g[n][r].length-l;i++){if(!1===t(g[n][r][i],I,B,E,Q))return!1;I++}Q++}E++}break;case"GeometryCollection":for(n=0;n<a.geometries.length;n++)if(!1===o(a.geometries[n],t,A))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function a(e){var t=[1/0,1/0,-1/0,-1/0];return o(e,(function(e){t[0]>e[0]&&(t[0]=e[0]),t[1]>e[1]&&(t[1]=e[1]),t[2]<e[0]&&(t[2]=e[0]),t[3]<e[1]&&(t[3]=e[1])})),t}a.default=a;var s=a;t.default=function(e,t){void 0===t&&(t={});var A=s(e);return r([(A[0]+A[2])/2,(A[1]+A[3])/2],t.properties,t)}},function(e,t,A){"use strict";function n(e,t){return(n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";e.exports=function(e,t){t||(t={}),"function"===typeof t&&(t={cmp:t});var A,n="boolean"===typeof t.cycles&&t.cycles,r=t.cmp&&(A=t.cmp,function(e){return function(t,n){var r={key:t,value:e[t]},i={key:n,value:e[n]};return A(r,i)}}),i=[];return function e(t){if(t&&t.toJSON&&"function"===typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!==typeof t)return JSON.stringify(t);var A,o;if(Array.isArray(t)){for(o="[",A=0;A<t.length;A++)A&&(o+=","),o+=e(t[A])||"null";return o+"]"}if(null===t)return"null";if(-1!==i.indexOf(t)){if(n)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var a=i.push(t)-1,s=Object.keys(t).sort(r&&r(t));for(o="",A=0;A<s.length;A++){var g=s[A],c=e(t[g]);c&&(o&&(o+=","),o+=JSON.stringify(g)+":"+c)}return i.splice(a,1),"{"+o+"}"}}(e)}},function(e,t,A){"use strict";A.d(t,"a",(function(){return c}));var n=A(1),r=A(4),i=A(9),o=A(10),a=A(206),s=A(33),g=A(97),c=function(e){Object(i.a)(A,e);var t=Object(o.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(r.a)(A,[{key:"copy",value:function(e){return Object(g.a)(!1),this}},{key:"len",value:function(){return Math.sqrt(this.lengthSquared())}},{key:"magnitude",value:function(){return this.len()}},{key:"lengthSquared",value:function(){for(var e=0,t=0;t<this.ELEMENTS;++t)e+=this[t]*this[t];return e}},{key:"magnitudeSquared",value:function(){return this.lengthSquared()}},{key:"distance",value:function(e){return Math.sqrt(this.distanceSquared(e))}},{key:"distanceSquared",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A){var n=this[A]-e[A];t+=n*n}return Object(s.a)(t)}},{key:"dot",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A)t+=this[A]*e[A];return Object(s.a)(t)}},{key:"normalize",value:function(){var e=this.magnitude();if(0!==e)for(var t=0;t<this.ELEMENTS;++t)this[t]/=e;return this.check()}},{key:"multiply",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]*=i[o];return this.check()}},{key:"divide",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]/=i[o];return this.check()}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"distanceTo",value:function(e){return this.distance(e)}},{key:"distanceToSquared",value:function(e){return this.distanceSquared(e)}},{key:"getComponent",value:function(e){return Object(g.a)(e>=0&&e<this.ELEMENTS,"index is out of range"),Object(s.a)(this[e])}},{key:"setComponent",value:function(e,t){return Object(g.a)(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=t,this.check()}},{key:"addVectors",value:function(e,t){return this.copy(e).add(t)}},{key:"subVectors",value:function(e,t){return this.copy(e).subtract(t)}},{key:"multiplyVectors",value:function(e,t){return this.copy(e).multiply(t)}},{key:"addScaledVector",value:function(e,t){return this.add(new this.constructor(e).multiplyScalar(t))}},{key:"ELEMENTS",get:function(){return Object(g.a)(!1),0}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=Object(s.a)(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=Object(s.a)(e)}}]),A}(a.a)},function(e,t,A){"use strict";A.d(t,"a",(function(){return I})),A.d(t,"b",(function(){return C}));var n=A(27),r=A(56),i=A(36),o=A(173),a=[0,0,0,0],s=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],g=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],c=[0,0,0],u=[0,0,0],l=Object(o.a)((function(e){var t=e.viewport,A=e.devicePixelRatio,o=e.coordinateSystem,g=e.coordinateOrigin,u=function(e,t,A){var i=e.viewMatrixUncentered,o=e.projectionMatrix,g=e.viewMatrix,c=e.viewProjectionMatrix,u=a,l=a,C=e.cameraPosition,h=I(e,t,A),f=h.geospatialOrigin,d=h.shaderCoordinateOrigin;h.offsetMode&&(l=e.projectPosition(f||d),C=[C[0]-l[0],C[1]-l[1],C[2]-l[2]],l[3]=1,u=r.n([],l,c),g=i||g,c=n.g([],o,g),c=n.g([],c,s));return{viewMatrix:g,viewProjectionMatrix:c,projectionCenter:u,originCommon:l,cameraPosCommon:C,shaderCoordinateOrigin:d,geospatialOrigin:f}}(t,o,g),l=u.projectionCenter,C=u.viewProjectionMatrix,h=u.originCommon,f=u.cameraPosCommon,d=u.shaderCoordinateOrigin,B=u.geospatialOrigin,p=t.getDistanceScales(),E=[t.width*A,t.height*A],Q=t.projectionMatrix.transform([0,0,-t.focalDistance,1])[3]||1,y={project_uCoordinateSystem:o,project_uProjectionMode:t.projectionMode,project_uCoordinateOrigin:d,project_uCommonOrigin:h.slice(0,3),project_uCenter:l,project_uPseudoMeters:Boolean(t._pseudoMeters),project_uViewportSize:E,project_uDevicePixelRatio:A,project_uFocalDistance:Q,project_uCommonUnitsPerMeter:p.unitsPerMeter,project_uCommonUnitsPerWorldUnit:p.unitsPerMeter,project_uCommonUnitsPerWorldUnit2:c,project_uScale:t.scale,project_uViewProjectionMatrix:C,project_uCameraPosition:f};if(B){var v=t.getDistanceScales(B);switch(o){case i.a.METER_OFFSETS:y.project_uCommonUnitsPerWorldUnit=v.unitsPerMeter,y.project_uCommonUnitsPerWorldUnit2=v.unitsPerMeter2;break;case i.a.LNGLAT:case i.a.LNGLAT_OFFSETS:t._pseudoMeters||(y.project_uCommonUnitsPerMeter=v.unitsPerMeter),y.project_uCommonUnitsPerWorldUnit=v.unitsPerDegree,y.project_uCommonUnitsPerWorldUnit2=v.unitsPerDegree2;break;case i.a.CARTESIAN:y.project_uCommonUnitsPerWorldUnit=[1,1,v.unitsPerMeter[2]],y.project_uCommonUnitsPerWorldUnit2=[0,0,v.unitsPerMeter2[2]]}}return y}));function I(e,t){var A,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:u,r=n,o=!0;switch(A=t===i.a.LNGLAT_OFFSETS||t===i.a.METER_OFFSETS?n:e.isGeospatial?[Math.fround(e.longitude),Math.fround(e.latitude),0]:null,e.projectionMode){case i.c.WEB_MERCATOR:t!==i.a.LNGLAT&&t!==i.a.CARTESIAN||(A=[0,0,0],o=!1);break;case i.c.WEB_MERCATOR_AUTO_OFFSET:t===i.a.LNGLAT?r=A:t===i.a.CARTESIAN&&(r=[Math.fround(e.center[0]),Math.fround(e.center[1]),0],A=e.unprojectPosition(r),r[0]-=n[0],r[1]-=n[1],r[2]-=n[2]);break;case i.c.IDENTITY:r=e.position.map(Math.fround);break;case i.c.GLOBE:o=!1,A=null;break;default:o=!1}return r[2]=r[2]||0,{geospatialOrigin:A,shaderCoordinateOrigin:r,offsetMode:o}}function C(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.viewport,A=e.devicePixelRatio,n=void 0===A?1:A,r=e.modelMatrix,o=void 0===r?null:r,a=e.coordinateSystem,s=void 0===a?i.a.DEFAULT:a,c=e.coordinateOrigin,u=e.autoWrapLongitude,I=void 0!==u&&u;s===i.a.DEFAULT&&(s=t.isGeospatial?i.a.LNGLAT:i.a.CARTESIAN);var C=l({viewport:t,devicePixelRatio:n,coordinateSystem:s,coordinateOrigin:c});return C.project_uWrapLongitude=I,C.project_uModelMatrix=o||g,C}},function(e,t,A){"use strict";A.d(t,"a",(function(){return i}));var n=A(1),r=A(4),i=function(){function e(t){Object(n.a)(this,e),this._viewportProps=this._applyConstraints(t)}return Object(r.a)(e,[{key:"getViewportProps",value:function(){return this._viewportProps}},{key:"getState",value:function(){return this._state}},{key:"shortestPathFrom",value:function(e){return this._viewportProps}},{key:"_applyConstraints",value:function(e){return e}}]),e}()},function(e,t,A){"use strict";var n=A(11),r=A(6),i=A(8),o=A(36),a=A(223),s=A(23),g=A(173),c=A(42),u=Object(g.a)((function(e){var t=e.viewport,A=e.center;return new s.Matrix4(t.viewProjectionMatrix).invert().transform(A)})),l=Object(g.a)((function(e){var t,A=e.viewport,o=e.shadowMatrices,a=[],g=A.pixelUnprojectionMatrix,u=A.isGeospatial?void 0:1,l=[[0,0,u],[A.width,0,u],[0,A.height,u],[A.width,A.height,u],[0,0,-1],[A.width,0,-1],[0,A.height,-1],[A.width,A.height,-1]].map((function(e){return function(e,t){var A=Object(i.a)(e,3),n=A[0],r=A[1],o=A[2],a=Object(c.p)([n,r,o],t);if(Number.isFinite(o))return a;return[a[0],a[1],0]}(e,g)})),I=Object(r.a)(o);try{var C=function(){var e=t.value,r=e.clone().translate(new s.Vector3(A.center).negate()),i=l.map((function(e){return r.transform(e)})),o=(new s.Matrix4).ortho({left:Math.min.apply(Math,Object(n.a)(i.map((function(e){return e[0]})))),right:Math.max.apply(Math,Object(n.a)(i.map((function(e){return e[0]})))),bottom:Math.min.apply(Math,Object(n.a)(i.map((function(e){return e[1]})))),top:Math.max.apply(Math,Object(n.a)(i.map((function(e){return e[1]})))),near:Math.min.apply(Math,Object(n.a)(i.map((function(e){return-e[2]})))),far:Math.max.apply(Math,Object(n.a)(i.map((function(e){return-e[2]}))))});a.push(o.multiplyRight(e))};for(I.s();!(t=I.n()).done;)C()}catch(h){I.e(h)}finally{I.f()}return a})),I=[0,0,0,1],C=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0];function h(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A={shadow_uDrawShadowMap:Boolean(e.drawToShadowMap),shadow_uUseShadowMap:!!e.shadowMaps&&e.shadowMaps.length>0,shadow_uColor:e.shadowColor||I,shadow_uLightId:e.shadowLightId||0,shadow_uLightCount:e.shadowMatrices.length},n=u({viewport:e.viewport,center:t.project_uCenter}),r=[],i=l({shadowMatrices:e.shadowMatrices,viewport:e.viewport}).slice(),a=0;a<e.shadowMatrices.length;a++){var g=i[a],c=g.clone().translate(new s.Vector3(e.viewport.center).negate());t.project_uCoordinateSystem===o.a.LNGLAT&&t.project_uProjectionMode===o.c.WEB_MERCATOR?(i[a]=c,r[a]=n):(i[a]=g.clone().multiplyRight(C),r[a]=c.transform(n))}for(var h=0;h<i.length;h++)A["shadow_uViewProjectionMatrices[".concat(h,"]")]=i[h],A["shadow_uProjectCenters[".concat(h,"]")]=r[h],e.shadowMaps&&e.shadowMaps.length>0?A["shadow_uShadowMap".concat(h)]=e.shadowMaps[h]:A["shadow_uShadowMap".concat(h)]=e.dummyShadowMap;return A}t.a={name:"shadow",dependencies:[a.a],vs:"\nconst int max_lights = 2;\nuniform mat4 shadow_uViewProjectionMatrices[max_lights];\nuniform vec4 shadow_uProjectCenters[max_lights];\nuniform bool shadow_uDrawShadowMap;\nuniform bool shadow_uUseShadowMap;\nuniform int shadow_uLightId;\nuniform float shadow_uLightCount;\n\nvarying vec3 shadow_vPosition[max_lights];\n\nvec4 shadow_setVertexPosition(vec4 position_commonspace) {\n if (shadow_uDrawShadowMap) {\n return project_common_position_to_clipspace(position_commonspace, shadow_uViewProjectionMatrices[shadow_uLightId], shadow_uProjectCenters[shadow_uLightId]);\n }\n if (shadow_uUseShadowMap) {\n for (int i = 0; i < max_lights; i++) {\n if(i < int(shadow_uLightCount)) {\n vec4 shadowMap_position = project_common_position_to_clipspace(position_commonspace, shadow_uViewProjectionMatrices[i], shadow_uProjectCenters[i]);\n shadow_vPosition[i] = (shadowMap_position.xyz / shadowMap_position.w + 1.0) / 2.0;\n }\n }\n }\n return gl_Position;\n}\n",fs:"\nconst int max_lights = 2;\nuniform bool shadow_uDrawShadowMap;\nuniform bool shadow_uUseShadowMap;\nuniform sampler2D shadow_uShadowMap0;\nuniform sampler2D shadow_uShadowMap1;\nuniform vec4 shadow_uColor;\nuniform float shadow_uLightCount;\n\nvarying vec3 shadow_vPosition[max_lights];\n\nconst vec4 bitPackShift = vec4(1.0, 255.0, 65025.0, 16581375.0);\nconst vec4 bitUnpackShift = 1.0 / bitPackShift;\nconst vec4 bitMask = vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n\nfloat shadow_getShadowWeight(vec3 position, sampler2D shadowMap) {\n vec4 rgbaDepth = texture2D(shadowMap, position.xy);\n\n float z = dot(rgbaDepth, bitUnpackShift);\n return smoothstep(0.001, 0.01, position.z - z);\n}\n\nvec4 shadow_filterShadowColor(vec4 color) {\n if (shadow_uDrawShadowMap) {\n vec4 rgbaDepth = fract(gl_FragCoord.z * bitPackShift);\n rgbaDepth -= rgbaDepth.gbaa * bitMask;\n return rgbaDepth;\n }\n if (shadow_uUseShadowMap) {\n float shadowAlpha = 0.0;\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[0], shadow_uShadowMap0);\n if(shadow_uLightCount > 1.0) {\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[1], shadow_uShadowMap1);\n }\n shadowAlpha *= shadow_uColor.a / shadow_uLightCount;\n float blendedAlpha = shadowAlpha + color.a * (1.0 - shadowAlpha);\n\n return vec4(\n mix(color.rgb, shadow_uColor.rgb, shadowAlpha / blendedAlpha),\n blendedAlpha\n );\n }\n return color;\n}\n",inject:{"vs:DECKGL_FILTER_GL_POSITION":"\n position = shadow_setVertexPosition(geometry.position);\n ","fs:DECKGL_FILTER_COLOR":"\n color = shadow_filterShadowColor(color);\n "},getUniforms:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e.drawToShadowMap||e.shadowMaps&&e.shadowMaps.length>0){var A=e.shadowEnabled,n=void 0===A||A;return n&&e.shadowMatrices&&e.shadowMatrices.length>0?h(e,t):{shadow_uDrawShadowMap:!1,shadow_uUseShadowMap:!1}}return{}}}},function(e,t,A){var n;!function(r){"use strict";var i,o,a,s=9e15,g="0123456789abcdef",c="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",u="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",l={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-s,maxE:s,crypto:!1},I=!0,C="[DecimalError] Invalid argument: ",h=Math.floor,f=Math.pow,d=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,B=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,p=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,E=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Q=1e7,y=c.length-1,v=u.length-1,m={name:"[object Decimal]"};function b(e){var t,A,n,r=e.length-1,i="",o=e[0];if(r>0){for(i+=o,t=1;t<r;t++)(A=7-(n=e[t]+"").length)&&(i+=_(A)),i+=n;(A=7-(n=(o=e[t])+"").length)&&(i+=_(A))}else if(0===o)return"0";for(;o%10===0;)o/=10;return i+o}function w(e,t,A){if(e!==~~e||e<t||e>A)throw Error(C+e)}function S(e,t,A,n){var r,i,o,a;for(i=e[0];i>=10;i/=10)--t;return--t<0?(t+=7,r=0):(r=Math.ceil((t+1)/7),t%=7),i=f(10,7-t),a=e[r]%i|0,null==n?t<3?(0==t?a=a/100|0:1==t&&(a=a/10|0),o=A<4&&99999==a||A>3&&49999==a||5e4==a||0==a):o=(A<4&&a+1==i||A>3&&a+1==i/2)&&(e[r+1]/i/100|0)==f(10,t-2)-1||(a==i/2||0==a)&&0==(e[r+1]/i/100|0):t<4?(0==t?a=a/1e3|0:1==t?a=a/100|0:2==t&&(a=a/10|0),o=(n||A<4)&&9999==a||!n&&A>3&&4999==a):o=((n||A<4)&&a+1==i||!n&&A>3&&a+1==i/2)&&(e[r+1]/i/1e3|0)==f(10,t-3)-1,o}function F(e,t,A){for(var n,r,i=[0],o=0,a=e.length;o<a;){for(r=i.length;r--;)i[r]*=t;for(i[0]+=g.indexOf(e.charAt(o++)),n=0;n<i.length;n++)i[n]>A-1&&(void 0===i[n+1]&&(i[n+1]=0),i[n+1]+=i[n]/A|0,i[n]%=A)}return i.reverse()}m.absoluteValue=m.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),D(e)},m.ceil=function(){return D(new this.constructor(this),this.e+1,2)},m.comparedTo=m.cmp=function(e){var t,A,n,r,i=this,o=i.d,a=(e=new i.constructor(e)).d,s=i.s,g=e.s;if(!o||!a)return s&&g?s!==g?s:o===a?0:!o^s<0?1:-1:NaN;if(!o[0]||!a[0])return o[0]?s:a[0]?-g:0;if(s!==g)return s;if(i.e!==e.e)return i.e>e.e^s<0?1:-1;for(t=0,A=(n=o.length)<(r=a.length)?n:r;t<A;++t)if(o[t]!==a[t])return o[t]>a[t]^s<0?1:-1;return n===r?0:n>r^s<0?1:-1},m.cosine=m.cos=function(){var e,t,A=this,n=A.constructor;return A.d?A.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(A.e,A.sd())+7,n.rounding=1,A=function(e,t){var A,n,r=t.d.length;r<32?(A=Math.ceil(r/3),n=(1/P(4,A)).toString()):(A=16,n="2.3283064365386962890625e-10");e.precision+=A,t=j(e,1,t.times(n),new e(1));for(var i=A;i--;){var o=t.times(t);t=o.times(o).minus(o).times(8).plus(1)}return e.precision-=A,t}(n,V(n,A)),n.precision=e,n.rounding=t,D(2==a||3==a?A.neg():A,e,t,!0)):new n(1):new n(NaN)},m.cubeRoot=m.cbrt=function(){var e,t,A,n,r,i,o,a,s,g,c=this,u=c.constructor;if(!c.isFinite()||c.isZero())return new u(c);for(I=!1,(i=c.s*f(c.s*c,1/3))&&Math.abs(i)!=1/0?n=new u(i.toString()):(A=b(c.d),(i=((e=c.e)-A.length+1)%3)&&(A+=1==i||-2==i?"0":"00"),i=f(A,1/3),e=h((e+1)/3)-(e%3==(e<0?-1:2)),(n=new u(A=i==1/0?"5e"+e:(A=i.toExponential()).slice(0,A.indexOf("e")+1)+e)).s=c.s),o=(e=u.precision)+3;;)if(g=(s=(a=n).times(a).times(a)).plus(c),n=R(g.plus(c).times(a),g.plus(s),o+2,1),b(a.d).slice(0,o)===(A=b(n.d)).slice(0,o)){if("9999"!=(A=A.slice(o-3,o+1))&&(r||"4999"!=A)){+A&&(+A.slice(1)||"5"!=A.charAt(0))||(D(n,e+1,1),t=!n.times(n).times(n).eq(c));break}if(!r&&(D(a,e+1,0),a.times(a).times(a).eq(c))){n=a;break}o+=4,r=1}return I=!0,D(n,e,u.rounding,t)},m.decimalPlaces=m.dp=function(){var e,t=this.d,A=NaN;if(t){if(A=7*((e=t.length-1)-h(this.e/7)),e=t[e])for(;e%10==0;e/=10)A--;A<0&&(A=0)}return A},m.dividedBy=m.div=function(e){return R(this,new this.constructor(e))},m.dividedToIntegerBy=m.divToInt=function(e){var t=this.constructor;return D(R(this,new t(e),0,1,1),t.precision,t.rounding)},m.equals=m.eq=function(e){return 0===this.cmp(e)},m.floor=function(){return D(new this.constructor(this),this.e+1,3)},m.greaterThan=m.gt=function(e){return this.cmp(e)>0},m.greaterThanOrEqualTo=m.gte=function(e){var t=this.cmp(e);return 1==t||0===t},m.hyperbolicCosine=m.cosh=function(){var e,t,A,n,r,i=this,o=i.constructor,a=new o(1);if(!i.isFinite())return new o(i.s?1/0:NaN);if(i.isZero())return a;A=o.precision,n=o.rounding,o.precision=A+Math.max(i.e,i.sd())+4,o.rounding=1,(r=i.d.length)<32?t=(1/P(4,e=Math.ceil(r/3))).toString():(e=16,t="2.3283064365386962890625e-10"),i=j(o,1,i.times(t),new o(1),!0);for(var s,g=e,c=new o(8);g--;)s=i.times(i),i=a.minus(s.times(c.minus(s.times(c))));return D(i,o.precision=A,o.rounding=n,!0)},m.hyperbolicSine=m.sinh=function(){var e,t,A,n,r=this,i=r.constructor;if(!r.isFinite()||r.isZero())return new i(r);if(t=i.precision,A=i.rounding,i.precision=t+Math.max(r.e,r.sd())+4,i.rounding=1,(n=r.d.length)<3)r=j(i,2,r,r,!0);else{e=(e=1.4*Math.sqrt(n))>16?16:0|e,r=j(i,2,r=r.times(1/P(5,e)),r,!0);for(var o,a=new i(5),s=new i(16),g=new i(20);e--;)o=r.times(r),r=r.times(a.plus(o.times(s.times(o).plus(g))))}return i.precision=t,i.rounding=A,D(r,t,A,!0)},m.hyperbolicTangent=m.tanh=function(){var e,t,A=this,n=A.constructor;return A.isFinite()?A.isZero()?new n(A):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,R(A.sinh(),A.cosh(),n.precision=e,n.rounding=t)):new n(A.s)},m.inverseCosine=m.acos=function(){var e,t=this,A=t.constructor,n=t.abs().cmp(1),r=A.precision,i=A.rounding;return-1!==n?0===n?t.isNeg()?N(A,r,i):new A(0):new A(NaN):t.isZero()?N(A,r+4,i).times(.5):(A.precision=r+6,A.rounding=1,t=t.asin(),e=N(A,r+4,i).times(.5),A.precision=r,A.rounding=i,e.minus(t))},m.inverseHyperbolicCosine=m.acosh=function(){var e,t,A=this,n=A.constructor;return A.lte(1)?new n(A.eq(1)?0:NaN):A.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(A.e),A.sd())+4,n.rounding=1,I=!1,A=A.times(A).minus(1).sqrt().plus(A),I=!0,n.precision=e,n.rounding=t,A.ln()):new n(A)},m.inverseHyperbolicSine=m.asinh=function(){var e,t,A=this,n=A.constructor;return!A.isFinite()||A.isZero()?new n(A):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(A.e),A.sd())+6,n.rounding=1,I=!1,A=A.times(A).plus(1).sqrt().plus(A),I=!0,n.precision=e,n.rounding=t,A.ln())},m.inverseHyperbolicTangent=m.atanh=function(){var e,t,A,n,r=this,i=r.constructor;return r.isFinite()?r.e>=0?new i(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=i.precision,t=i.rounding,n=r.sd(),Math.max(n,e)<2*-r.e-1?D(new i(r),e,t,!0):(i.precision=A=n-r.e,r=R(r.plus(1),new i(1).minus(r),A+e,1),i.precision=e+4,i.rounding=1,r=r.ln(),i.precision=e,i.rounding=t,r.times(.5))):new i(NaN)},m.inverseSine=m.asin=function(){var e,t,A,n,r=this,i=r.constructor;return r.isZero()?new i(r):(t=r.abs().cmp(1),A=i.precision,n=i.rounding,-1!==t?0===t?((e=N(i,A+4,n).times(.5)).s=r.s,e):new i(NaN):(i.precision=A+6,i.rounding=1,r=r.div(new i(1).minus(r.times(r)).sqrt().plus(1)).atan(),i.precision=A,i.rounding=n,r.times(2)))},m.inverseTangent=m.atan=function(){var e,t,A,n,r,i,o,a,s,g=this,c=g.constructor,u=c.precision,l=c.rounding;if(g.isFinite()){if(g.isZero())return new c(g);if(g.abs().eq(1)&&u+4<=v)return(o=N(c,u+4,l).times(.25)).s=g.s,o}else{if(!g.s)return new c(NaN);if(u+4<=v)return(o=N(c,u+4,l).times(.5)).s=g.s,o}for(c.precision=a=u+10,c.rounding=1,e=A=Math.min(28,a/7+2|0);e;--e)g=g.div(g.times(g).plus(1).sqrt().plus(1));for(I=!1,t=Math.ceil(a/7),n=1,s=g.times(g),o=new c(g),r=g;-1!==e;)if(r=r.times(s),i=o.minus(r.div(n+=2)),r=r.times(s),void 0!==(o=i.plus(r.div(n+=2))).d[t])for(e=t;o.d[e]===i.d[e]&&e--;);return A&&(o=o.times(2<<A-1)),I=!0,D(o,c.precision=u,c.rounding=l,!0)},m.isFinite=function(){return!!this.d},m.isInteger=m.isInt=function(){return!!this.d&&h(this.e/7)>this.d.length-2},m.isNaN=function(){return!this.s},m.isNegative=m.isNeg=function(){return this.s<0},m.isPositive=m.isPos=function(){return this.s>0},m.isZero=function(){return!!this.d&&0===this.d[0]},m.lessThan=m.lt=function(e){return this.cmp(e)<0},m.lessThanOrEqualTo=m.lte=function(e){return this.cmp(e)<1},m.logarithm=m.log=function(e){var t,A,n,r,i,o,a,s,g=this.constructor,c=g.precision,u=g.rounding;if(null==e)e=new g(10),t=!0;else{if(A=(e=new g(e)).d,e.s<0||!A||!A[0]||e.eq(1))return new g(NaN);t=e.eq(10)}if(A=this.d,this.s<0||!A||!A[0]||this.eq(1))return new g(A&&!A[0]?-1/0:1!=this.s?NaN:A?0:1/0);if(t)if(A.length>1)i=!0;else{for(r=A[0];r%10===0;)r/=10;i=1!==r}if(I=!1,o=Z(this,a=c+5),n=t?x(g,a+10):Z(e,a),S((s=R(o,n,a,1)).d,r=c,u))do{if(o=Z(this,a+=10),n=t?x(g,a+10):Z(e,a),s=R(o,n,a,1),!i){+b(s.d).slice(r+1,r+15)+1==1e14&&(s=D(s,c+1,0));break}}while(S(s.d,r+=10,u));return I=!0,D(s,c,u)},m.minus=m.sub=function(e){var t,A,n,r,i,o,a,s,g,c,u,l,C=this,f=C.constructor;if(e=new f(e),!C.d||!e.d)return C.s&&e.s?C.d?e.s=-e.s:e=new f(e.d||C.s!==e.s?C:NaN):e=new f(NaN),e;if(C.s!=e.s)return e.s=-e.s,C.plus(e);if(g=C.d,l=e.d,a=f.precision,s=f.rounding,!g[0]||!l[0]){if(l[0])e.s=-e.s;else{if(!g[0])return new f(3===s?-0:0);e=new f(C)}return I?D(e,a,s):e}if(A=h(e.e/7),c=h(C.e/7),g=g.slice(),i=c-A){for((u=i<0)?(t=g,i=-i,o=l.length):(t=l,A=c,o=g.length),i>(n=Math.max(Math.ceil(a/7),o)+2)&&(i=n,t.length=1),t.reverse(),n=i;n--;)t.push(0);t.reverse()}else{for((u=(n=g.length)<(o=l.length))&&(o=n),n=0;n<o;n++)if(g[n]!=l[n]){u=g[n]<l[n];break}i=0}for(u&&(t=g,g=l,l=t,e.s=-e.s),o=g.length,n=l.length-o;n>0;--n)g[o++]=0;for(n=l.length;n>i;){if(g[--n]<l[n]){for(r=n;r&&0===g[--r];)g[r]=Q-1;--g[r],g[n]+=Q}g[n]-=l[n]}for(;0===g[--o];)g.pop();for(;0===g[0];g.shift())--A;return g[0]?(e.d=g,e.e=k(g,A),I?D(e,a,s):e):new f(3===s?-0:0)},m.modulo=m.mod=function(e){var t,A=this,n=A.constructor;return e=new n(e),!A.d||!e.s||e.d&&!e.d[0]?new n(NaN):!e.d||A.d&&!A.d[0]?D(new n(A),n.precision,n.rounding):(I=!1,9==n.modulo?(t=R(A,e.abs(),0,3,1)).s*=e.s:t=R(A,e,0,n.modulo,1),t=t.times(e),I=!0,A.minus(t))},m.naturalExponential=m.exp=function(){return T(this)},m.naturalLogarithm=m.ln=function(){return Z(this)},m.negated=m.neg=function(){var e=new this.constructor(this);return e.s=-e.s,D(e)},m.plus=m.add=function(e){var t,A,n,r,i,o,a,s,g,c,u=this,l=u.constructor;if(e=new l(e),!u.d||!e.d)return u.s&&e.s?u.d||(e=new l(e.d||u.s===e.s?u:NaN)):e=new l(NaN),e;if(u.s!=e.s)return e.s=-e.s,u.minus(e);if(g=u.d,c=e.d,a=l.precision,s=l.rounding,!g[0]||!c[0])return c[0]||(e=new l(u)),I?D(e,a,s):e;if(i=h(u.e/7),n=h(e.e/7),g=g.slice(),r=i-n){for(r<0?(A=g,r=-r,o=c.length):(A=c,n=i,o=g.length),r>(o=(i=Math.ceil(a/7))>o?i+1:o+1)&&(r=o,A.length=1),A.reverse();r--;)A.push(0);A.reverse()}for((o=g.length)-(r=c.length)<0&&(r=o,A=c,c=g,g=A),t=0;r;)t=(g[--r]=g[r]+c[r]+t)/Q|0,g[r]%=Q;for(t&&(g.unshift(t),++n),o=g.length;0==g[--o];)g.pop();return e.d=g,e.e=k(g,n),I?D(e,a,s):e},m.precision=m.sd=function(e){var t,A=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(C+e);return A.d?(t=U(A.d),e&&A.e+1>t&&(t=A.e+1)):t=NaN,t},m.round=function(){var e=this,t=e.constructor;return D(new t(e),e.e+1,t.rounding)},m.sine=m.sin=function(){var e,t,A=this,n=A.constructor;return A.isFinite()?A.isZero()?new n(A):(e=n.precision,t=n.rounding,n.precision=e+Math.max(A.e,A.sd())+7,n.rounding=1,A=function(e,t){var A,n=t.d.length;if(n<3)return j(e,2,t,t);A=(A=1.4*Math.sqrt(n))>16?16:0|A,t=t.times(1/P(5,A)),t=j(e,2,t,t);for(var r,i=new e(5),o=new e(16),a=new e(20);A--;)r=t.times(t),t=t.times(i.plus(r.times(o.times(r).minus(a))));return t}(n,V(n,A)),n.precision=e,n.rounding=t,D(a>2?A.neg():A,e,t,!0)):new n(NaN)},m.squareRoot=m.sqrt=function(){var e,t,A,n,r,i,o=this,a=o.d,s=o.e,g=o.s,c=o.constructor;if(1!==g||!a||!a[0])return new c(!g||g<0&&(!a||a[0])?NaN:a?o:1/0);for(I=!1,0==(g=Math.sqrt(+o))||g==1/0?(((t=b(a)).length+s)%2==0&&(t+="0"),g=Math.sqrt(t),s=h((s+1)/2)-(s<0||s%2),n=new c(t=g==1/0?"5e"+s:(t=g.toExponential()).slice(0,t.indexOf("e")+1)+s)):n=new c(g.toString()),A=(s=c.precision)+3;;)if(n=(i=n).plus(R(o,i,A+2,1)).times(.5),b(i.d).slice(0,A)===(t=b(n.d)).slice(0,A)){if("9999"!=(t=t.slice(A-3,A+1))&&(r||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(D(n,s+1,1),e=!n.times(n).eq(o));break}if(!r&&(D(i,s+1,0),i.times(i).eq(o))){n=i;break}A+=4,r=1}return I=!0,D(n,s,c.rounding,e)},m.tangent=m.tan=function(){var e,t,A=this,n=A.constructor;return A.isFinite()?A.isZero()?new n(A):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,(A=A.sin()).s=1,A=R(A,new n(1).minus(A.times(A)).sqrt(),e+10,0),n.precision=e,n.rounding=t,D(2==a||4==a?A.neg():A,e,t,!0)):new n(NaN)},m.times=m.mul=function(e){var t,A,n,r,i,o,a,s,g,c=this,u=c.constructor,l=c.d,C=(e=new u(e)).d;if(e.s*=c.s,!l||!l[0]||!C||!C[0])return new u(!e.s||l&&!l[0]&&!C||C&&!C[0]&&!l?NaN:l&&C?0*e.s:e.s/0);for(A=h(c.e/7)+h(e.e/7),(s=l.length)<(g=C.length)&&(i=l,l=C,C=i,o=s,s=g,g=o),i=[],n=o=s+g;n--;)i.push(0);for(n=g;--n>=0;){for(t=0,r=s+n;r>n;)a=i[r]+C[n]*l[r-n-1]+t,i[r--]=a%Q|0,t=a/Q|0;i[r]=(i[r]+t)%Q|0}for(;!i[--o];)i.pop();return t?++A:i.shift(),e.d=i,e.e=k(i,A),I?D(e,u.precision,u.rounding):e},m.toBinary=function(e,t){return K(this,2,e,t)},m.toDecimalPlaces=m.toDP=function(e,t){var A=this,n=A.constructor;return A=new n(A),void 0===e?A:(w(e,0,1e9),void 0===t?t=n.rounding:w(t,0,8),D(A,e+A.e+1,t))},m.toExponential=function(e,t){var A,n=this,r=n.constructor;return void 0===e?A=G(n,!0):(w(e,0,1e9),void 0===t?t=r.rounding:w(t,0,8),A=G(n=D(new r(n),e+1,t),!0,e+1)),n.isNeg()&&!n.isZero()?"-"+A:A},m.toFixed=function(e,t){var A,n,r=this,i=r.constructor;return void 0===e?A=G(r):(w(e,0,1e9),void 0===t?t=i.rounding:w(t,0,8),A=G(n=D(new i(r),e+r.e+1,t),!1,e+n.e+1)),r.isNeg()&&!r.isZero()?"-"+A:A},m.toFraction=function(e){var t,A,n,r,i,o,a,s,g,c,u,l,h=this,d=h.d,B=h.constructor;if(!d)return new B(h);if(g=A=new B(1),n=s=new B(0),o=(i=(t=new B(n)).e=U(d)-h.e-1)%7,t.d[0]=f(10,o<0?7+o:o),null==e)e=i>0?t:g;else{if(!(a=new B(e)).isInt()||a.lt(g))throw Error(C+a);e=a.gt(t)?i>0?t:g:a}for(I=!1,a=new B(b(d)),c=B.precision,B.precision=i=7*d.length*2;u=R(a,t,0,1,1),1!=(r=A.plus(u.times(n))).cmp(e);)A=n,n=r,r=g,g=s.plus(u.times(r)),s=r,r=t,t=a.minus(u.times(r)),a=r;return r=R(e.minus(A),n,0,1,1),s=s.plus(r.times(g)),A=A.plus(r.times(n)),s.s=g.s=h.s,l=R(g,n,i,1).minus(h).abs().cmp(R(s,A,i,1).minus(h).abs())<1?[g,n]:[s,A],B.precision=c,I=!0,l},m.toHexadecimal=m.toHex=function(e,t){return K(this,16,e,t)},m.toNearest=function(e,t){var A=this,n=A.constructor;if(A=new n(A),null==e){if(!A.d)return A;e=new n(1),t=n.rounding}else{if(e=new n(e),void 0===t?t=n.rounding:w(t,0,8),!A.d)return e.s?A:e;if(!e.d)return e.s&&(e.s=A.s),e}return e.d[0]?(I=!1,A=R(A,e,0,t,1).times(e),I=!0,D(A)):(e.s=A.s,A=e),A},m.toNumber=function(){return+this},m.toOctal=function(e,t){return K(this,8,e,t)},m.toPower=m.pow=function(e){var t,A,n,r,i,o,a=this,s=a.constructor,g=+(e=new s(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new s(f(+a,g));if((a=new s(a)).eq(1))return a;if(n=s.precision,i=s.rounding,e.eq(1))return D(a,n,i);if((t=h(e.e/7))>=e.d.length-1&&(A=g<0?-g:g)<=9007199254740991)return r=M(s,a,A,n),e.s<0?new s(1).div(r):D(r,n,i);if((o=a.s)<0){if(t<e.d.length-1)return new s(NaN);if(0==(1&e.d[t])&&(o=1),0==a.e&&1==a.d[0]&&1==a.d.length)return a.s=o,a}return(t=0!=(A=f(+a,g))&&isFinite(A)?new s(A+"").e:h(g*(Math.log("0."+b(a.d))/Math.LN10+a.e+1)))>s.maxE+1||t<s.minE-1?new s(t>0?o/0:0):(I=!1,s.rounding=a.s=1,A=Math.min(12,(t+"").length),(r=T(e.times(Z(a,n+A)),n)).d&&S((r=D(r,n+5,1)).d,n,i)&&(t=n+10,+b((r=D(T(e.times(Z(a,t+A)),t),t+5,1)).d).slice(n+1,n+15)+1==1e14&&(r=D(r,n+1,0))),r.s=o,I=!0,s.rounding=i,D(r,n,i))},m.toPrecision=function(e,t){var A,n=this,r=n.constructor;return void 0===e?A=G(n,n.e<=r.toExpNeg||n.e>=r.toExpPos):(w(e,1,1e9),void 0===t?t=r.rounding:w(t,0,8),A=G(n=D(new r(n),e,t),e<=n.e||n.e<=r.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+A:A},m.toSignificantDigits=m.toSD=function(e,t){var A=this.constructor;return void 0===e?(e=A.precision,t=A.rounding):(w(e,1,1e9),void 0===t?t=A.rounding:w(t,0,8)),D(new A(this),e,t)},m.toString=function(){var e=this,t=e.constructor,A=G(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+A:A},m.truncated=m.trunc=function(){return D(new this.constructor(this),this.e+1,1)},m.valueOf=m.toJSON=function(){var e=this,t=e.constructor,A=G(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+A:A};var R=function(){function e(e,t,A){var n,r=0,i=e.length;for(e=e.slice();i--;)n=e[i]*t+r,e[i]=n%A|0,r=n/A|0;return r&&e.unshift(r),e}function t(e,t,A,n){var r,i;if(A!=n)i=A>n?1:-1;else for(r=i=0;r<A;r++)if(e[r]!=t[r]){i=e[r]>t[r]?1:-1;break}return i}function A(e,t,A,n){for(var r=0;A--;)e[A]-=r,r=e[A]<t[A]?1:0,e[A]=r*n+e[A]-t[A];for(;!e[0]&&e.length>1;)e.shift()}return function(n,r,i,a,s,g){var c,u,l,I,C,f,d,B,p,E,y,v,m,b,w,S,F,R,G,k,x=n.constructor,N=n.s==r.s?1:-1,U=n.d,_=r.d;if(!U||!U[0]||!_||!_[0])return new x(n.s&&r.s&&(U?!_||U[0]!=_[0]:_)?U&&0==U[0]||!_?0*N:N/0:NaN);for(g?(C=1,u=n.e-r.e):(g=Q,C=7,u=h(n.e/C)-h(r.e/C)),G=_.length,F=U.length,E=(p=new x(N)).d=[],l=0;_[l]==(U[l]||0);l++);if(_[l]>(U[l]||0)&&u--,null==i?(b=i=x.precision,a=x.rounding):b=s?i+(n.e-r.e)+1:i,b<0)E.push(1),f=!0;else{if(b=b/C+2|0,l=0,1==G){for(I=0,_=_[0],b++;(l<F||I)&&b--;l++)w=I*g+(U[l]||0),E[l]=w/_|0,I=w%_|0;f=I||l<F}else{for((I=g/(_[0]+1)|0)>1&&(_=e(_,I,g),U=e(U,I,g),G=_.length,F=U.length),S=G,v=(y=U.slice(0,G)).length;v<G;)y[v++]=0;(k=_.slice()).unshift(0),R=_[0],_[1]>=g/2&&++R;do{I=0,(c=t(_,y,G,v))<0?(m=y[0],G!=v&&(m=m*g+(y[1]||0)),(I=m/R|0)>1?(I>=g&&(I=g-1),1==(c=t(d=e(_,I,g),y,B=d.length,v=y.length))&&(I--,A(d,G<B?k:_,B,g))):(0==I&&(c=I=1),d=_.slice()),(B=d.length)<v&&d.unshift(0),A(y,d,v,g),-1==c&&(c=t(_,y,G,v=y.length))<1&&(I++,A(y,G<v?k:_,v,g)),v=y.length):0===c&&(I++,y=[0]),E[l++]=I,c&&y[0]?y[v++]=U[S]||0:(y=[U[S]],v=1)}while((S++<F||void 0!==y[0])&&b--);f=void 0!==y[0]}E[0]||E.shift()}if(1==C)p.e=u,o=f;else{for(l=1,I=E[0];I>=10;I/=10)l++;p.e=l+u*C-1,D(p,s?i+p.e+1:i,a,f)}return p}}();function D(e,t,A,n){var r,i,o,a,s,g,c,u,l,C=e.constructor;e:if(null!=t){if(!(u=e.d))return e;for(r=1,a=u[0];a>=10;a/=10)r++;if((i=t-r)<0)i+=7,o=t,s=(c=u[l=0])/f(10,r-o-1)%10|0;else if((l=Math.ceil((i+1)/7))>=(a=u.length)){if(!n)break e;for(;a++<=l;)u.push(0);c=s=0,r=1,o=(i%=7)-7+1}else{for(c=a=u[l],r=1;a>=10;a/=10)r++;s=(o=(i%=7)-7+r)<0?0:c/f(10,r-o-1)%10|0}if(n=n||t<0||void 0!==u[l+1]||(o<0?c:c%f(10,r-o-1)),g=A<4?(s||n)&&(0==A||A==(e.s<0?3:2)):s>5||5==s&&(4==A||n||6==A&&(i>0?o>0?c/f(10,r-o):0:u[l-1])%10&1||A==(e.s<0?8:7)),t<1||!u[0])return u.length=0,g?(t-=e.e+1,u[0]=f(10,(7-t%7)%7),e.e=-t||0):u[0]=e.e=0,e;if(0==i?(u.length=l,a=1,l--):(u.length=l+1,a=f(10,7-i),u[l]=o>0?(c/f(10,r-o)%f(10,o)|0)*a:0),g)for(;;){if(0==l){for(i=1,o=u[0];o>=10;o/=10)i++;for(o=u[0]+=a,a=1;o>=10;o/=10)a++;i!=a&&(e.e++,u[0]==Q&&(u[0]=1));break}if(u[l]+=a,u[l]!=Q)break;u[l--]=0,a=1}for(i=u.length;0===u[--i];)u.pop()}return I&&(e.e>C.maxE?(e.d=null,e.e=NaN):e.e<C.minE&&(e.e=0,e.d=[0])),e}function G(e,t,A){if(!e.isFinite())return H(e);var n,r=e.e,i=b(e.d),o=i.length;return t?(A&&(n=A-o)>0?i=i.charAt(0)+"."+i.slice(1)+_(n):o>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(e.e<0?"e":"e+")+e.e):r<0?(i="0."+_(-r-1)+i,A&&(n=A-o)>0&&(i+=_(n))):r>=o?(i+=_(r+1-o),A&&(n=A-r-1)>0&&(i=i+"."+_(n))):((n=r+1)<o&&(i=i.slice(0,n)+"."+i.slice(n)),A&&(n=A-o)>0&&(r+1===o&&(i+="."),i+=_(n))),i}function k(e,t){var A=e[0];for(t*=7;A>=10;A/=10)t++;return t}function x(e,t,A){if(t>y)throw I=!0,A&&(e.precision=A),Error("[DecimalError] Precision limit exceeded");return D(new e(c),t,1,!0)}function N(e,t,A){if(t>v)throw Error("[DecimalError] Precision limit exceeded");return D(new e(u),t,A,!0)}function U(e){var t=e.length-1,A=7*t+1;if(t=e[t]){for(;t%10==0;t/=10)A--;for(t=e[0];t>=10;t/=10)A++}return A}function _(e){for(var t="";e--;)t+="0";return t}function M(e,t,A,n){var r,i=new e(1),o=Math.ceil(n/7+4);for(I=!1;;){if(A%2&&W((i=i.times(t)).d,o)&&(r=!0),0===(A=h(A/2))){A=i.d.length-1,r&&0===i.d[A]&&++i.d[A];break}W((t=t.times(t)).d,o)}return I=!0,i}function O(e){return 1&e.d[e.d.length-1]}function L(e,t,A){for(var n,r=new e(t[0]),i=0;++i<t.length;){if(!(n=new e(t[i])).s){r=n;break}r[A](n)&&(r=n)}return r}function T(e,t){var A,n,r,i,o,a,s,g=0,c=0,u=0,l=e.constructor,C=l.rounding,h=l.precision;if(!e.d||!e.d[0]||e.e>17)return new l(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(I=!1,s=h):s=t,a=new l(.03125);e.e>-2;)e=e.times(a),u+=5;for(s+=n=Math.log(f(2,u))/Math.LN10*2+5|0,A=i=o=new l(1),l.precision=s;;){if(i=D(i.times(e),s,1),A=A.times(++c),b((a=o.plus(R(i,A,s,1))).d).slice(0,s)===b(o.d).slice(0,s)){for(r=u;r--;)o=D(o.times(o),s,1);if(null!=t)return l.precision=h,o;if(!(g<3&&S(o.d,s-n,C,g)))return D(o,l.precision=h,C,I=!0);l.precision=s+=10,A=i=a=new l(1),c=0,g++}o=a}}function Z(e,t){var A,n,r,i,o,a,s,g,c,u,l,C=1,h=e,f=h.d,d=h.constructor,B=d.rounding,p=d.precision;if(h.s<0||!f||!f[0]||!h.e&&1==f[0]&&1==f.length)return new d(f&&!f[0]?-1/0:1!=h.s?NaN:f?0:h);if(null==t?(I=!1,c=p):c=t,d.precision=c+=10,n=(A=b(f)).charAt(0),!(Math.abs(i=h.e)<15e14))return g=x(d,c+2,p).times(i+""),h=Z(new d(n+"."+A.slice(1)),c-10).plus(g),d.precision=p,null==t?D(h,p,B,I=!0):h;for(;n<7&&1!=n||1==n&&A.charAt(1)>3;)n=(A=b((h=h.times(e)).d)).charAt(0),C++;for(i=h.e,n>1?(h=new d("0."+A),i++):h=new d(n+"."+A.slice(1)),u=h,s=o=h=R(h.minus(1),h.plus(1),c,1),l=D(h.times(h),c,1),r=3;;){if(o=D(o.times(l),c,1),b((g=s.plus(R(o,new d(r),c,1))).d).slice(0,c)===b(s.d).slice(0,c)){if(s=s.times(2),0!==i&&(s=s.plus(x(d,c+2,p).times(i+""))),s=R(s,new d(C),c,1),null!=t)return d.precision=p,s;if(!S(s.d,c-10,B,a))return D(s,d.precision=p,B,I=!0);d.precision=c+=10,g=o=h=R(u.minus(1),u.plus(1),c,1),l=D(h.times(h),c,1),r=a=1}s=g,r+=2}}function H(e){return String(e.s*e.s/0)}function Y(e,t){var A,n,r;for((A=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(A<0&&(A=n),A+=+t.slice(n+1),t=t.substring(0,n)):A<0&&(A=t.length),n=0;48===t.charCodeAt(n);n++);for(r=t.length;48===t.charCodeAt(r-1);--r);if(t=t.slice(n,r)){if(r-=n,e.e=A=A-n-1,e.d=[],n=(A+1)%7,A<0&&(n+=7),n<r){for(n&&e.d.push(+t.slice(0,n)),r-=7;n<r;)e.d.push(+t.slice(n,n+=7));n=7-(t=t.slice(n)).length}else n-=r;for(;n--;)t+="0";e.d.push(+t),I&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function J(e,t){var A,n,r,o,a,s,g,c,u;if("Infinity"===t||"NaN"===t)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(B.test(t))A=16,t=t.toLowerCase();else if(d.test(t))A=2;else{if(!p.test(t))throw Error(C+t);A=8}for((o=t.search(/p/i))>0?(g=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),a=(o=t.indexOf("."))>=0,n=e.constructor,a&&(o=(s=(t=t.replace(".","")).length)-o,r=M(n,new n(A),o,2*o)),o=u=(c=F(t,A,Q)).length-1;0===c[o];--o)c.pop();return o<0?new n(0*e.s):(e.e=k(c,u),e.d=c,I=!1,a&&(e=R(e,r,4*s)),g&&(e=e.times(Math.abs(g)<54?f(2,g):i.pow(2,g))),I=!0,e)}function j(e,t,A,n,r){var i,o,a,s,g=e.precision,c=Math.ceil(g/7);for(I=!1,s=A.times(A),a=new e(n);;){if(o=R(a.times(s),new e(t++*t++),g,1),a=r?n.plus(o):n.minus(o),n=R(o.times(s),new e(t++*t++),g,1),void 0!==(o=a.plus(n)).d[c]){for(i=c;o.d[i]===a.d[i]&&i--;);if(-1==i)break}i=a,a=n,n=o,o=i}return I=!0,o.d.length=c+1,o}function P(e,t){for(var A=e;--t;)A*=e;return A}function V(e,t){var A,n=t.s<0,r=N(e,e.precision,1),i=r.times(.5);if((t=t.abs()).lte(i))return a=n?4:1,t;if((A=t.divToInt(r)).isZero())a=n?3:2;else{if((t=t.minus(A.times(r))).lte(i))return a=O(A)?n?2:3:n?4:1,t;a=O(A)?n?1:4:n?3:2}return t.minus(r).abs()}function K(e,t,A,n){var r,i,a,s,c,u,l,I,C,h=e.constructor,f=void 0!==A;if(f?(w(A,1,1e9),void 0===n?n=h.rounding:w(n,0,8)):(A=h.precision,n=h.rounding),e.isFinite()){for(f?(r=2,16==t?A=4*A-3:8==t&&(A=3*A-2)):r=t,(a=(l=G(e)).indexOf("."))>=0&&(l=l.replace(".",""),(C=new h(1)).e=l.length-a,C.d=F(G(C),10,r),C.e=C.d.length),i=c=(I=F(l,10,r)).length;0==I[--c];)I.pop();if(I[0]){if(a<0?i--:((e=new h(e)).d=I,e.e=i,I=(e=R(e,C,A,n,0,r)).d,i=e.e,u=o),a=I[A],s=r/2,u=u||void 0!==I[A+1],u=n<4?(void 0!==a||u)&&(0===n||n===(e.s<0?3:2)):a>s||a===s&&(4===n||u||6===n&&1&I[A-1]||n===(e.s<0?8:7)),I.length=A,u)for(;++I[--A]>r-1;)I[A]=0,A||(++i,I.unshift(1));for(c=I.length;!I[c-1];--c);for(a=0,l="";a<c;a++)l+=g.charAt(I[a]);if(f){if(c>1)if(16==t||8==t){for(a=16==t?4:3,--c;c%a;c++)l+="0";for(c=(I=F(l,r,t)).length;!I[c-1];--c);for(a=1,l="1.";a<c;a++)l+=g.charAt(I[a])}else l=l.charAt(0)+"."+l.slice(1);l=l+(i<0?"p":"p+")+i}else if(i<0){for(;++i;)l="0"+l;l="0."+l}else if(++i>c)for(i-=c;i--;)l+="0";else i<c&&(l=l.slice(0,i)+"."+l.slice(i))}else l=f?"0p+0":"0";l=(16==t?"0x":2==t?"0b":8==t?"0o":"")+l}else l=H(e);return e.s<0?"-"+l:l}function W(e,t){if(e.length>t)return e.length=t,!0}function X(e){return new this(e).abs()}function q(e){return new this(e).acos()}function z(e){return new this(e).acosh()}function $(e,t){return new this(e).plus(t)}function ee(e){return new this(e).asin()}function te(e){return new this(e).asinh()}function Ae(e){return new this(e).atan()}function ne(e){return new this(e).atanh()}function re(e,t){e=new this(e),t=new this(t);var A,n=this.precision,r=this.rounding,i=n+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(A=t.s<0?N(this,n,r):new this(0)).s=e.s:!e.d||t.isZero()?(A=N(this,i,1).times(.5)).s=e.s:t.s<0?(this.precision=i,this.rounding=1,A=this.atan(R(e,t,i,1)),t=N(this,i,1),this.precision=n,this.rounding=r,A=e.s<0?A.minus(t):A.plus(t)):A=this.atan(R(e,t,i,1)):(A=N(this,i,1).times(t.s>0?.25:.75)).s=e.s:A=new this(NaN),A}function ie(e){return new this(e).cbrt()}function oe(e){return D(e=new this(e),e.e+1,2)}function ae(e){if(!e||"object"!==typeof e)throw Error("[DecimalError] Object expected");var t,A,n,r=!0===e.defaults,i=["precision",1,1e9,"rounding",0,8,"toExpNeg",-s,0,"toExpPos",0,s,"maxE",0,s,"minE",-s,0,"modulo",0,9];for(t=0;t<i.length;t+=3)if(A=i[t],r&&(this[A]=l[A]),void 0!==(n=e[A])){if(!(h(n)===n&&n>=i[t+1]&&n<=i[t+2]))throw Error(C+A+": "+n);this[A]=n}if(A="crypto",r&&(this[A]=l[A]),void 0!==(n=e[A])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(C+A+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error("[DecimalError] crypto unavailable");this[A]=!0}else this[A]=!1}return this}function se(e){return new this(e).cos()}function ge(e){return new this(e).cosh()}function ce(e,t){return new this(e).div(t)}function ue(e){return new this(e).exp()}function le(e){return D(e=new this(e),e.e+1,3)}function Ie(){var e,t,A=new this(0);for(I=!1,e=0;e<arguments.length;)if((t=new this(arguments[e++])).d)A.d&&(A=A.plus(t.times(t)));else{if(t.s)return I=!0,new this(1/0);A=t}return I=!0,A.sqrt()}function Ce(e){return e instanceof i||e&&"[object Decimal]"===e.name||!1}function he(e){return new this(e).ln()}function fe(e,t){return new this(e).log(t)}function de(e){return new this(e).log(2)}function Be(e){return new this(e).log(10)}function pe(){return L(this,arguments,"lt")}function Ee(){return L(this,arguments,"gt")}function Qe(e,t){return new this(e).mod(t)}function ye(e,t){return new this(e).mul(t)}function ve(e,t){return new this(e).pow(t)}function me(e){var t,A,n,r,i=0,o=new this(1),a=[];if(void 0===e?e=this.precision:w(e,1,1e9),n=Math.ceil(e/7),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(n));i<n;)(r=t[i])>=429e7?t[i]=crypto.getRandomValues(new Uint32Array(1))[0]:a[i++]=r%1e7;else{if(!crypto.randomBytes)throw Error("[DecimalError] crypto unavailable");for(t=crypto.randomBytes(n*=4);i<n;)(r=t[i]+(t[i+1]<<8)+(t[i+2]<<16)+((127&t[i+3])<<24))>=214e7?crypto.randomBytes(4).copy(t,i):(a.push(r%1e7),i+=4);i=n/4}else for(;i<n;)a[i++]=1e7*Math.random()|0;for(e%=7,(n=a[--i])&&e&&(r=f(10,7-e),a[i]=(n/r|0)*r);0===a[i];i--)a.pop();if(i<0)A=0,a=[0];else{for(A=-1;0===a[0];A-=7)a.shift();for(n=1,r=a[0];r>=10;r/=10)n++;n<7&&(A-=7-n)}return o.e=A,o.d=a,o}function be(e){return D(e=new this(e),e.e+1,this.rounding)}function we(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function Se(e){return new this(e).sin()}function Fe(e){return new this(e).sinh()}function Re(e){return new this(e).sqrt()}function De(e,t){return new this(e).sub(t)}function Ge(e){return new this(e).tan()}function ke(e){return new this(e).tanh()}function xe(e){return D(e=new this(e),e.e+1,1)}(i=function e(t){var A,n,r;function i(e){var t,A,n,r=this;if(!(r instanceof i))return new i(e);if(r.constructor=i,e instanceof i)return r.s=e.s,void(I?!e.d||e.e>i.maxE?(r.e=NaN,r.d=null):e.e<i.minE?(r.e=0,r.d=[0]):(r.e=e.e,r.d=e.d.slice()):(r.e=e.e,r.d=e.d?e.d.slice():e.d));if("number"===(n=typeof e)){if(0===e)return r.s=1/e<0?-1:1,r.e=0,void(r.d=[0]);if(e<0?(e=-e,r.s=-1):r.s=1,e===~~e&&e<1e7){for(t=0,A=e;A>=10;A/=10)t++;return void(I?t>i.maxE?(r.e=NaN,r.d=null):t<i.minE?(r.e=0,r.d=[0]):(r.e=t,r.d=[e]):(r.e=t,r.d=[e]))}return 0*e!==0?(e||(r.s=NaN),r.e=NaN,void(r.d=null)):Y(r,e.toString())}if("string"!==n)throw Error(C+e);return 45===(A=e.charCodeAt(0))?(e=e.slice(1),r.s=-1):(43===A&&(e=e.slice(1)),r.s=1),E.test(e)?Y(r,e):J(r,e)}if(i.prototype=m,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=ae,i.clone=e,i.isDecimal=Ce,i.abs=X,i.acos=q,i.acosh=z,i.add=$,i.asin=ee,i.asinh=te,i.atan=Ae,i.atanh=ne,i.atan2=re,i.cbrt=ie,i.ceil=oe,i.cos=se,i.cosh=ge,i.div=ce,i.exp=ue,i.floor=le,i.hypot=Ie,i.ln=he,i.log=fe,i.log10=Be,i.log2=de,i.max=pe,i.min=Ee,i.mod=Qe,i.mul=ye,i.pow=ve,i.random=me,i.round=be,i.sign=we,i.sin=Se,i.sinh=Fe,i.sqrt=Re,i.sub=De,i.tan=Ge,i.tanh=ke,i.trunc=xe,void 0===t&&(t={}),t&&!0!==t.defaults)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],A=0;A<r.length;)t.hasOwnProperty(n=r[A++])||(t[n]=this[n]);return i.config(t),i}(l)).default=i.Decimal=i,c=new i(c),u=new i(u),void 0===(n=function(){return i}.call(t,A,t,e))||(e.exports=n)}()},function(e,t,A){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,A){"use strict";t.__esModule=!0;var n,r=A(600),i=(n=r)&&n.__esModule?n:{default:n};t.default=function(){function e(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),(0,i.default)(e,n.key,n)}}return function(t,A,n){return A&&e(t.prototype,A),n&&e(t,n),t}}()},function(e,t,A){"use strict";t.__esModule=!0;var n,r=A(601),i=(n=r)&&n.__esModule?n:{default:n};t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"===typeof t?"undefined":(0,i.default)(t))&&"function"!==typeof t?e:t}},function(e,t,A){"use strict";t.__esModule=!0;var n=o(A(957)),r=o(A(961)),i=o(A(601));function o(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"===typeof t?"undefined":(0,i.default)(t)));e.prototype=(0,r.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(n.default?(0,n.default)(e,t):e.__proto__=t)}},function(e,t,A){"use strict";A.d(t,"a",(function(){return i}));var n=A(39),r=A.n(n);function i(e){return e instanceof HTMLElement?e:r.a.findDOMNode(e)}},function(e,t,A){(function(t){e.exports=function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function A(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function n(e,t,n){return t&&A(e.prototype,t),n&&A(e,n),e}var r=function(e,t){this.next=null,this.key=e,this.data=t,this.left=null,this.right=null};function i(e,t){return e>t?1:e<t?-1:0}function o(e,t,A){for(var n=new r(null,null),i=n,o=n;;){var a=A(e,t.key);if(a<0){if(null===t.left)break;if(A(e,t.left.key)<0){var s=t.left;if(t.left=s.right,s.right=t,null===(t=s).left)break}o.left=t,o=t,t=t.left}else{if(!(a>0))break;if(null===t.right)break;if(A(e,t.right.key)>0&&(s=t.right,t.right=s.left,s.left=t,null===(t=s).right))break;i.right=t,i=t,t=t.right}}return i.right=t.left,o.left=t.right,t.left=n.right,t.right=n.left,t}function a(e,t,A,n){var i=new r(e,t);if(null===A)return i.left=i.right=null,i;var a=n(e,(A=o(e,A,n)).key);return a<0?(i.left=A.left,i.right=A,A.left=null):a>=0&&(i.right=A.right,i.left=A,A.right=null),i}function s(e,t,A){var n=null,r=null;if(t){var i=A((t=o(e,t,A)).key,e);0===i?(n=t.left,r=t.right):i<0?(r=t.right,t.right=null,n=t):(n=t.left,t.left=null,r=t)}return{left:n,right:r}}var g=function(){function e(e){void 0===e&&(e=i),this._root=null,this._size=0,this._comparator=e}return e.prototype.insert=function(e,t){return this._size++,this._root=a(e,t,this._root,this._comparator)},e.prototype.add=function(e,t){var A=new r(e,t);null===this._root&&(A.left=A.right=null,this._size++,this._root=A);var n=this._comparator,i=o(e,this._root,n),a=n(e,i.key);return 0===a?this._root=i:(a<0?(A.left=i.left,A.right=i,i.left=null):a>0&&(A.right=i.right,A.left=i,i.right=null),this._size++,this._root=A),this._root},e.prototype.remove=function(e){this._root=this._remove(e,this._root,this._comparator)},e.prototype._remove=function(e,t,A){var n;return null===t?null:0===A(e,(t=o(e,t,A)).key)?(null===t.left?n=t.right:(n=o(e,t.left,A)).right=t.right,this._size--,n):t},e.prototype.pop=function(){var e=this._root;if(e){for(;e.left;)e=e.left;return this._root=o(e.key,this._root,this._comparator),this._root=this._remove(e.key,this._root,this._comparator),{key:e.key,data:e.data}}return null},e.prototype.findStatic=function(e){for(var t=this._root,A=this._comparator;t;){var n=A(e,t.key);if(0===n)return t;t=n<0?t.left:t.right}return null},e.prototype.find=function(e){return this._root&&(this._root=o(e,this._root,this._comparator),0!==this._comparator(e,this._root.key))?null:this._root},e.prototype.contains=function(e){for(var t=this._root,A=this._comparator;t;){var n=A(e,t.key);if(0===n)return!0;t=n<0?t.left:t.right}return!1},e.prototype.forEach=function(e,t){for(var A=this._root,n=[],r=!1;!r;)null!==A?(n.push(A),A=A.left):0!==n.length?(A=n.pop(),e.call(t,A),A=A.right):r=!0;return this},e.prototype.range=function(e,t,A,n){for(var r=[],i=this._comparator,o=this._root;0!==r.length||o;)if(o)r.push(o),o=o.left;else{if(i((o=r.pop()).key,t)>0)break;if(i(o.key,e)>=0&&A.call(n,o))return this;o=o.right}return this},e.prototype.keys=function(){var e=[];return this.forEach((function(t){var A=t.key;return e.push(A)})),e},e.prototype.values=function(){var e=[];return this.forEach((function(t){var A=t.data;return e.push(A)})),e},e.prototype.min=function(){return this._root?this.minNode(this._root).key:null},e.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},e.prototype.minNode=function(e){if(void 0===e&&(e=this._root),e)for(;e.left;)e=e.left;return e},e.prototype.maxNode=function(e){if(void 0===e&&(e=this._root),e)for(;e.right;)e=e.right;return e},e.prototype.at=function(e){for(var t=this._root,A=!1,n=0,r=[];!A;)if(t)r.push(t),t=t.left;else if(r.length>0){if(t=r.pop(),n===e)return t;n++,t=t.right}else A=!0;return null},e.prototype.next=function(e){var t=this._root,A=null;if(e.right){for(A=e.right;A.left;)A=A.left;return A}for(var n=this._comparator;t;){var r=n(e.key,t.key);if(0===r)break;r<0?(A=t,t=t.left):t=t.right}return A},e.prototype.prev=function(e){var t=this._root,A=null;if(null!==e.left){for(A=e.left;A.right;)A=A.right;return A}for(var n=this._comparator;t;){var r=n(e.key,t.key);if(0===r)break;r<0?t=t.left:(A=t,t=t.right)}return A},e.prototype.clear=function(){return this._root=null,this._size=0,this},e.prototype.toList=function(){return function(e){for(var t=e,A=[],n=!1,i=new r(null,null),o=i;!n;)t?(A.push(t),t=t.left):A.length>0?t=(t=o=o.next=A.pop()).right:n=!0;return o.next=null,i.next}(this._root)},e.prototype.load=function(e,t,A){void 0===t&&(t=[]),void 0===A&&(A=!1);var n=e.length,i=this._comparator;if(A&&function e(t,A,n,r,i){if(!(n>=r)){for(var o=t[n+r>>1],a=n-1,s=r+1;;){do{a++}while(i(t[a],o)<0);do{s--}while(i(t[s],o)>0);if(a>=s)break;var g=t[a];t[a]=t[s],t[s]=g,g=A[a],A[a]=A[s],A[s]=g}e(t,A,n,s,i),e(t,A,s+1,r,i)}}(e,t,0,n-1,i),null===this._root)this._root=function e(t,A,n,i){var o=i-n;if(o>0){var a=n+Math.floor(o/2),s=t[a],g=A[a],c=new r(s,g);return c.left=e(t,A,n,a),c.right=e(t,A,a+1,i),c}return null}(e,t,0,n),this._size=n;else{var o=function(e,t,A){for(var n=new r(null,null),i=n,o=e,a=t;null!==o&&null!==a;)A(o.key,a.key)<0?(i.next=o,o=o.next):(i.next=a,a=a.next),i=i.next;return null!==o?i.next=o:null!==a&&(i.next=a),n.next}(this.toList(),function(e,t){for(var A=new r(null,null),n=A,i=0;i<e.length;i++)n=n.next=new r(e[i],t[i]);return n.next=null,A.next}(e,t),i);n=this._size+n,this._root=function e(t,A,n){var r=n-A;if(r>0){var i=A+Math.floor(r/2),o=e(t,A,i),a=t.head;return a.left=o,t.head=t.head.next,a.right=e(t,i+1,n),a}return null}({head:o},0,n)}return this},e.prototype.isEmpty=function(){return null===this._root},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),e.prototype.toString=function(e){void 0===e&&(e=function(e){return String(e.key)});var t=[];return function e(t,A,n,r,i){if(t){r(A+(n?"\u2514\u2500\u2500 ":"\u251c\u2500\u2500 ")+i(t)+"\n");var o=A+(n?" ":"\u2502 ");t.left&&e(t.left,o,!1,r,i),t.right&&e(t.right,o,!0,r,i)}}(this._root,"",!0,(function(e){return t.push(e)}),e),t.join("")},e.prototype.update=function(e,t,A){var n=this._comparator,r=s(e,this._root,n),i=r.left,g=r.right;n(e,t)<0?g=a(t,A,g,n):i=a(t,A,i,n),this._root=function(e,t,A){return null===t?e:(null===e||((t=o(e.key,t,A)).left=e),t)}(i,g,n)},e.prototype.split=function(e){return s(e,this._root,this._comparator)},e}(),c=function(e,t){return e.ll.x<=t.x&&t.x<=e.ur.x&&e.ll.y<=t.y&&t.y<=e.ur.y},u=function(e,t){if(t.ur.x<e.ll.x||e.ur.x<t.ll.x||t.ur.y<e.ll.y||e.ur.y<t.ll.y)return null;var A=e.ll.x<t.ll.x?t.ll.x:e.ll.x,n=e.ur.x<t.ur.x?e.ur.x:t.ur.x;return{ll:{x:A,y:e.ll.y<t.ll.y?t.ll.y:e.ll.y},ur:{x:n,y:e.ur.y<t.ur.y?e.ur.y:t.ur.y}}},l=Number.EPSILON;void 0===l&&(l=Math.pow(2,-52));var I=l*l,C=function(e,t){if(-l<e&&e<l&&-l<t&&t<l)return 0;var A=e-t;return A*A<I*e*t?0:e<t?-1:1},h=function(){function t(){e(this,t),this.reset()}return n(t,[{key:"reset",value:function(){this.xRounder=new f,this.yRounder=new f}},{key:"round",value:function(e,t){return{x:this.xRounder.round(e),y:this.yRounder.round(t)}}}]),t}(),f=function(){function t(){e(this,t),this.tree=new g,this.round(0)}return n(t,[{key:"round",value:function(e){var t=this.tree.add(e),A=this.tree.prev(t);if(null!==A&&0===C(t.key,A.key))return this.tree.remove(e),A.key;var n=this.tree.next(t);return null!==n&&0===C(t.key,n.key)?(this.tree.remove(e),n.key):e}}]),t}(),d=new h,B=function(e,t){return e.x*t.y-e.y*t.x},p=function(e,t){return e.x*t.x+e.y*t.y},E=function(e,t,A){var n={x:t.x-e.x,y:t.y-e.y},r={x:A.x-e.x,y:A.y-e.y},i=B(n,r);return C(i,0)},Q=function(e){return Math.sqrt(p(e,e))},y=function(e,t,A){var n={x:t.x-e.x,y:t.y-e.y},r={x:A.x-e.x,y:A.y-e.y};return B(r,n)/Q(r)/Q(n)},v=function(e,t,A){var n={x:t.x-e.x,y:t.y-e.y},r={x:A.x-e.x,y:A.y-e.y};return p(r,n)/Q(r)/Q(n)},m=function(e,t,A){return 0===t.y?null:{x:e.x+t.x/t.y*(A-e.y),y:A}},b=function(e,t,A){return 0===t.x?null:{x:A,y:e.y+t.y/t.x*(A-e.x)}},w=function(){function t(A,n){e(this,t),void 0===A.events?A.events=[this]:A.events.push(this),this.point=A,this.isLeft=n}return n(t,null,[{key:"compare",value:function(e,A){var n=t.comparePoints(e.point,A.point);return 0!==n?n:(e.point!==A.point&&e.link(A),e.isLeft!==A.isLeft?e.isLeft?1:-1:F.compare(e.segment,A.segment))}},{key:"comparePoints",value:function(e,t){return e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0}}]),n(t,[{key:"link",value:function(e){if(e.point===this.point)throw new Error("Tried to link already linked events");for(var t=e.point.events,A=0,n=t.length;A<n;A++){var r=t[A];this.point.events.push(r),r.point=this.point}this.checkForConsuming()}},{key:"checkForConsuming",value:function(){for(var e=this.point.events.length,t=0;t<e;t++){var A=this.point.events[t];if(void 0===A.segment.consumedBy)for(var n=t+1;n<e;n++){var r=this.point.events[n];void 0===r.consumedBy&&A.otherSE.point.events===r.otherSE.point.events&&A.segment.consume(r.segment)}}}},{key:"getAvailableLinkedEvents",value:function(){for(var e=[],t=0,A=this.point.events.length;t<A;t++){var n=this.point.events[t];n!==this&&!n.segment.ringOut&&n.segment.isInResult()&&e.push(n)}return e}},{key:"getLeftmostComparator",value:function(e){var t=this,A=new Map,n=function(n){var r=n.otherSE;A.set(n,{sine:y(t.point,e.point,r.point),cosine:v(t.point,e.point,r.point)})};return function(e,t){A.has(e)||n(e),A.has(t)||n(t);var r=A.get(e),i=r.sine,o=r.cosine,a=A.get(t),s=a.sine,g=a.cosine;return i>=0&&s>=0?o<g?1:o>g?-1:0:i<0&&s<0?o<g?-1:o>g?1:0:s<i?-1:s>i?1:0}}}]),t}(),S=0,F=function(){function t(A,n,r,i){e(this,t),this.id=++S,this.leftSE=A,A.segment=this,A.otherSE=n,this.rightSE=n,n.segment=this,n.otherSE=A,this.rings=r,this.windings=i}return n(t,null,[{key:"compare",value:function(e,t){var A=e.leftSE.point.x,n=t.leftSE.point.x,r=e.rightSE.point.x,i=t.rightSE.point.x;if(i<A)return 1;if(r<n)return-1;var o=e.leftSE.point.y,a=t.leftSE.point.y,s=e.rightSE.point.y,g=t.rightSE.point.y;if(A<n){if(a<o&&a<s)return 1;if(a>o&&a>s)return-1;var c=e.comparePoint(t.leftSE.point);if(c<0)return 1;if(c>0)return-1;var u=t.comparePoint(e.rightSE.point);return 0!==u?u:-1}if(A>n){if(o<a&&o<g)return-1;if(o>a&&o>g)return 1;var l=t.comparePoint(e.leftSE.point);if(0!==l)return l;var I=e.comparePoint(t.rightSE.point);return I<0?1:I>0?-1:1}if(o<a)return-1;if(o>a)return 1;if(r<i){var C=t.comparePoint(e.rightSE.point);if(0!==C)return C}if(r>i){var h=e.comparePoint(t.rightSE.point);if(h<0)return 1;if(h>0)return-1}if(r!==i){var f=s-o,d=r-A,B=g-a,p=i-n;if(f>d&&B<p)return 1;if(f<d&&B>p)return-1}return r>i?1:r<i||s<g?-1:s>g?1:e.id<t.id?-1:e.id>t.id?1:0}}]),n(t,[{key:"replaceRightSE",value:function(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var e=this.leftSE.point.y,t=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:e<t?e:t},ur:{x:this.rightSE.point.x,y:e>t?e:t}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(e){return e.x===this.leftSE.point.x&&e.y===this.leftSE.point.y||e.x===this.rightSE.point.x&&e.y===this.rightSE.point.y}},{key:"comparePoint",value:function(e){if(this.isAnEndpoint(e))return 0;var t=this.leftSE.point,A=this.rightSE.point,n=this.vector();if(t.x===A.x)return e.x===t.x?0:e.x<t.x?1:-1;var r=(e.y-t.y)/n.y,i=t.x+r*n.x;if(e.x===i)return 0;var o=(e.x-t.x)/n.x,a=t.y+o*n.y;return e.y===a?0:e.y<a?-1:1}},{key:"getIntersection",value:function(e){var t=this.bbox(),A=e.bbox(),n=u(t,A);if(null===n)return null;var r=this.leftSE.point,i=this.rightSE.point,o=e.leftSE.point,a=e.rightSE.point,s=c(t,o)&&0===this.comparePoint(o),g=c(A,r)&&0===e.comparePoint(r),l=c(t,a)&&0===this.comparePoint(a),I=c(A,i)&&0===e.comparePoint(i);if(g&&s)return I&&!l?i:!I&&l?a:null;if(g)return l&&r.x===a.x&&r.y===a.y?null:r;if(s)return I&&i.x===o.x&&i.y===o.y?null:o;if(I&&l)return null;if(I)return i;if(l)return a;var C=function(e,t,A,n){if(0===t.x)return b(A,n,e.x);if(0===n.x)return b(e,t,A.x);if(0===t.y)return m(A,n,e.y);if(0===n.y)return m(e,t,A.y);var r=B(t,n);if(0==r)return null;var i={x:A.x-e.x,y:A.y-e.y},o=B(i,t)/r,a=B(i,n)/r;return{x:(e.x+a*t.x+(A.x+o*n.x))/2,y:(e.y+a*t.y+(A.y+o*n.y))/2}}(r,this.vector(),o,e.vector());return null===C?null:c(n,C)?d.round(C.x,C.y):null}},{key:"split",value:function(e){var A=[],n=void 0!==e.events,r=new w(e,!0),i=new w(e,!1),o=this.rightSE;this.replaceRightSE(i),A.push(i),A.push(r);var a=new t(r,o,this.rings.slice(),this.windings.slice());return w.comparePoints(a.leftSE.point,a.rightSE.point)>0&&a.swapEvents(),w.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),n&&(r.checkForConsuming(),i.checkForConsuming()),A}},{key:"swapEvents",value:function(){var e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var t=0,A=this.windings.length;t<A;t++)this.windings[t]*=-1}},{key:"consume",value:function(e){for(var A=this,n=e;A.consumedBy;)A=A.consumedBy;for(;n.consumedBy;)n=n.consumedBy;var r=t.compare(A,n);if(0!==r){if(r>0){var i=A;A=n,n=i}if(A.prev===n){var o=A;A=n,n=o}for(var a=0,s=n.rings.length;a<s;a++){var g=n.rings[a],c=n.windings[a],u=A.rings.indexOf(g);-1===u?(A.rings.push(g),A.windings.push(c)):A.windings[u]+=c}n.rings=null,n.windings=null,n.consumedBy=A,n.leftSE.consumedBy=A.leftSE,n.rightSE.consumedBy=A.rightSE}}},{key:"prevInResult",value:function(){return void 0!==this._prevInResult||(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null),this._prevInResult}},{key:"beforeState",value:function(){if(void 0!==this._beforeState)return this._beforeState;if(this.prev){var e=this.prev.consumedBy||this.prev;this._beforeState=e.afterState()}else this._beforeState={rings:[],windings:[],multiPolys:[]};return this._beforeState}},{key:"afterState",value:function(){if(void 0!==this._afterState)return this._afterState;var e=this.beforeState();this._afterState={rings:e.rings.slice(0),windings:e.windings.slice(0),multiPolys:[]};for(var t=this._afterState.rings,A=this._afterState.windings,n=this._afterState.multiPolys,r=0,i=this.rings.length;r<i;r++){var o=this.rings[r],a=this.windings[r],s=t.indexOf(o);-1===s?(t.push(o),A.push(a)):A[s]+=a}for(var g=[],c=[],u=0,l=t.length;u<l;u++)if(0!==A[u]){var I=t[u],C=I.poly;if(-1===c.indexOf(C))if(I.isExterior)g.push(C);else{-1===c.indexOf(C)&&c.push(C);var h=g.indexOf(I.poly);-1!==h&&g.splice(h,1)}}for(var f=0,d=g.length;f<d;f++){var B=g[f].multiPoly;-1===n.indexOf(B)&&n.push(B)}return this._afterState}},{key:"isInResult",value:function(){if(this.consumedBy)return!1;if(void 0!==this._isInResult)return this._isInResult;var e=this.beforeState().multiPolys,t=this.afterState().multiPolys;switch(O.type){case"union":var A=0===e.length,n=0===t.length;this._isInResult=A!==n;break;case"intersection":var r,i;e.length<t.length?(r=e.length,i=t.length):(r=t.length,i=e.length),this._isInResult=i===O.numMultiPolys&&r<i;break;case"xor":var o=Math.abs(e.length-t.length);this._isInResult=o%2===1;break;case"difference":var a=function(e){return 1===e.length&&e[0].isSubject};this._isInResult=a(e)!==a(t);break;default:throw new Error("Unrecognized operation type found ".concat(O.type))}return this._isInResult}}],[{key:"fromRing",value:function(e,A,n){var r,i,o,a=w.comparePoints(e,A);if(a<0)r=e,i=A,o=1;else{if(!(a>0))throw new Error("Tried to create degenerate segment at [".concat(e.x,", ").concat(e.y,"]"));r=A,i=e,o=-1}return new t(new w(r,!0),new w(i,!1),[n],[o])}}]),t}(),R=function(){function t(A,n,r){if(e(this,t),!Array.isArray(A)||0===A.length)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=n,this.isExterior=r,this.segments=[],"number"!==typeof A[0][0]||"number"!==typeof A[0][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var i=d.round(A[0][0],A[0][1]);this.bbox={ll:{x:i.x,y:i.y},ur:{x:i.x,y:i.y}};for(var o=i,a=1,s=A.length;a<s;a++){if("number"!==typeof A[a][0]||"number"!==typeof A[a][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var g=d.round(A[a][0],A[a][1]);g.x===o.x&&g.y===o.y||(this.segments.push(F.fromRing(o,g,this)),g.x<this.bbox.ll.x&&(this.bbox.ll.x=g.x),g.y<this.bbox.ll.y&&(this.bbox.ll.y=g.y),g.x>this.bbox.ur.x&&(this.bbox.ur.x=g.x),g.y>this.bbox.ur.y&&(this.bbox.ur.y=g.y),o=g)}i.x===o.x&&i.y===o.y||this.segments.push(F.fromRing(o,i,this))}return n(t,[{key:"getSweepEvents",value:function(){for(var e=[],t=0,A=this.segments.length;t<A;t++){var n=this.segments[t];e.push(n.leftSE),e.push(n.rightSE)}return e}}]),t}(),D=function(){function t(A,n){if(e(this,t),!Array.isArray(A))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new R(A[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(var r=1,i=A.length;r<i;r++){var o=new R(A[r],this,!1);o.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=o.bbox.ll.x),o.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=o.bbox.ll.y),o.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=o.bbox.ur.x),o.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=o.bbox.ur.y),this.interiorRings.push(o)}this.multiPoly=n}return n(t,[{key:"getSweepEvents",value:function(){for(var e=this.exteriorRing.getSweepEvents(),t=0,A=this.interiorRings.length;t<A;t++)for(var n=this.interiorRings[t].getSweepEvents(),r=0,i=n.length;r<i;r++)e.push(n[r]);return e}}]),t}(),G=function(){function t(A,n){if(e(this,t),!Array.isArray(A))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{"number"===typeof A[0][0][0]&&(A=[A])}catch(a){}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(var r=0,i=A.length;r<i;r++){var o=new D(A[r],this);o.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=o.bbox.ll.x),o.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=o.bbox.ll.y),o.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=o.bbox.ur.x),o.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=o.bbox.ur.y),this.polys.push(o)}this.isSubject=n}return n(t,[{key:"getSweepEvents",value:function(){for(var e=[],t=0,A=this.polys.length;t<A;t++)for(var n=this.polys[t].getSweepEvents(),r=0,i=n.length;r<i;r++)e.push(n[r]);return e}}]),t}(),k=function(){function t(A){e(this,t),this.events=A;for(var n=0,r=A.length;n<r;n++)A[n].segment.ringOut=this;this.poly=null}return n(t,null,[{key:"factory",value:function(e){for(var A=[],n=0,r=e.length;n<r;n++){var i=e[n];if(i.isInResult()&&!i.ringOut){for(var o=null,a=i.leftSE,s=i.rightSE,g=[a],c=a.point,u=[];o=a,a=s,g.push(a),a.point!==c;)for(;;){var l=a.getAvailableLinkedEvents();if(0===l.length){var I=g[0].point,C=g[g.length-1].point;throw new Error("Unable to complete output ring starting at [".concat(I.x,",")+" ".concat(I.y,"]. Last matching segment found ends at")+" [".concat(C.x,", ").concat(C.y,"]."))}if(1===l.length){s=l[0].otherSE;break}for(var h=null,f=0,d=u.length;f<d;f++)if(u[f].point===a.point){h=f;break}if(null===h){u.push({index:g.length,point:a.point});var B=a.getLeftmostComparator(o);s=l.sort(B)[0].otherSE;break}var p=u.splice(h)[0],E=g.splice(p.index);E.unshift(E[0].otherSE),A.push(new t(E.reverse()))}A.push(new t(g))}}return A}}]),n(t,[{key:"getGeom",value:function(){for(var e=this.events[0].point,t=[e],A=1,n=this.events.length-1;A<n;A++){var r=this.events[A].point,i=this.events[A+1].point;0!==E(r,e,i)&&(t.push(r),e=r)}if(1===t.length)return null;var o=t[0],a=t[1];0===E(o,e,a)&&t.shift(),t.push(t[0]);for(var s=this.isExteriorRing()?1:-1,g=this.isExteriorRing()?0:t.length-1,c=this.isExteriorRing()?t.length:-1,u=[],l=g;l!=c;l+=s)u.push([t[l].x,t[l].y]);return u}},{key:"isExteriorRing",value:function(){if(void 0===this._isExteriorRing){var e=this.enclosingRing();this._isExteriorRing=!e||!e.isExteriorRing()}return this._isExteriorRing}},{key:"enclosingRing",value:function(){return void 0===this._enclosingRing&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}},{key:"_calcEnclosingRing",value:function(){for(var e=this.events[0],t=1,A=this.events.length;t<A;t++){var n=this.events[t];w.compare(e,n)>0&&(e=n)}for(var r=e.segment.prevInResult(),i=r?r.prevInResult():null;;){if(!r)return null;if(!i)return r.ringOut;if(i.ringOut!==r.ringOut)return i.ringOut.enclosingRing()!==r.ringOut?r.ringOut:r.ringOut.enclosingRing();r=i.prevInResult(),i=r?r.prevInResult():null}}}]),t}(),x=function(){function t(A){e(this,t),this.exteriorRing=A,A.poly=this,this.interiorRings=[]}return n(t,[{key:"addInterior",value:function(e){this.interiorRings.push(e),e.poly=this}},{key:"getGeom",value:function(){var e=[this.exteriorRing.getGeom()];if(null===e[0])return null;for(var t=0,A=this.interiorRings.length;t<A;t++){var n=this.interiorRings[t].getGeom();null!==n&&e.push(n)}return e}}]),t}(),N=function(){function t(A){e(this,t),this.rings=A,this.polys=this._composePolys(A)}return n(t,[{key:"getGeom",value:function(){for(var e=[],t=0,A=this.polys.length;t<A;t++){var n=this.polys[t].getGeom();null!==n&&e.push(n)}return e}},{key:"_composePolys",value:function(e){for(var t=[],A=0,n=e.length;A<n;A++){var r=e[A];if(!r.poly)if(r.isExteriorRing())t.push(new x(r));else{var i=r.enclosingRing();i.poly||t.push(new x(i)),i.poly.addInterior(r)}}return t}}]),t}(),U=function(){function t(A){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:F.compare;e(this,t),this.queue=A,this.tree=new g(n),this.segments=[]}return n(t,[{key:"process",value:function(e){var t=e.segment,A=[];if(e.consumedBy)return e.isLeft?this.queue.remove(e.otherSE):this.tree.remove(t),A;var n=e.isLeft?this.tree.insert(t):this.tree.find(t);if(!n)throw new Error("Unable to find segment #".concat(t.id," ")+"[".concat(t.leftSE.point.x,", ").concat(t.leftSE.point.y,"] -> ")+"[".concat(t.rightSE.point.x,", ").concat(t.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var r=n,i=n,o=void 0,a=void 0;void 0===o;)null===(r=this.tree.prev(r))?o=null:void 0===r.key.consumedBy&&(o=r.key);for(;void 0===a;)null===(i=this.tree.next(i))?a=null:void 0===i.key.consumedBy&&(a=i.key);if(e.isLeft){var s=null;if(o){var g=o.getIntersection(t);if(null!==g&&(t.isAnEndpoint(g)||(s=g),!o.isAnEndpoint(g)))for(var c=this._splitSafely(o,g),u=0,l=c.length;u<l;u++)A.push(c[u])}var I=null;if(a){var C=a.getIntersection(t);if(null!==C&&(t.isAnEndpoint(C)||(I=C),!a.isAnEndpoint(C)))for(var h=this._splitSafely(a,C),f=0,d=h.length;f<d;f++)A.push(h[f])}if(null!==s||null!==I){var B=null;B=null===s?I:null===I||w.comparePoints(s,I)<=0?s:I,this.queue.remove(t.rightSE),A.push(t.rightSE);for(var p=t.split(B),E=0,Q=p.length;E<Q;E++)A.push(p[E])}A.length>0?(this.tree.remove(t),A.push(e)):(this.segments.push(t),t.prev=o)}else{if(o&&a){var y=o.getIntersection(a);if(null!==y){if(!o.isAnEndpoint(y))for(var v=this._splitSafely(o,y),m=0,b=v.length;m<b;m++)A.push(v[m]);if(!a.isAnEndpoint(y))for(var S=this._splitSafely(a,y),F=0,R=S.length;F<R;F++)A.push(S[F])}}this.tree.remove(t)}return A}},{key:"_splitSafely",value:function(e,t){this.tree.remove(e);var A=e.rightSE;this.queue.remove(A);var n=e.split(t);return n.push(A),void 0===e.consumedBy&&this.tree.insert(e),n}}]),t}(),_="undefined"!==typeof t&&Object({NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0}).POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,M="undefined"!==typeof t&&Object({NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0}).POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6,O=new(function(){function t(){e(this,t)}return n(t,[{key:"run",value:function(e,t,A){O.type=e,d.reset();for(var n=[new G(t,!0)],r=0,i=A.length;r<i;r++)n.push(new G(A[r],!1));if(O.numMultiPolys=n.length,"difference"===O.type)for(var o=n[0],a=1;a<n.length;)null!==u(n[a].bbox,o.bbox)?a++:n.splice(a,1);if("intersection"===O.type)for(var s=0,c=n.length;s<c;s++)for(var l=n[s],I=s+1,C=n.length;I<C;I++)if(null===u(l.bbox,n[I].bbox))return[];for(var h=new g(w.compare),f=0,B=n.length;f<B;f++)for(var p=n[f].getSweepEvents(),E=0,Q=p.length;E<Q;E++)if(h.insert(p[E]),h.size>_)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var y=new U(h),v=h.size,m=h.pop();m;){var b=m.key;if(h.size===v){var S=b.segment;throw new Error("Unable to pop() ".concat(b.isLeft?"left":"right"," SweepEvent ")+"[".concat(b.point.x,", ").concat(b.point.y,"] from segment #").concat(S.id," ")+"[".concat(S.leftSE.point.x,", ").concat(S.leftSE.point.y,"] -> ")+"[".concat(S.rightSE.point.x,", ").concat(S.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(h.size>_)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(y.segments.length>M)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var F=y.process(b),R=0,D=F.length;R<D;R++){var x=F[R];void 0===x.consumedBy&&h.insert(x)}v=h.size,m=h.pop()}d.reset();var L=k.factory(y.segments);return new N(L).getGeom()}}]),t}());return{union:function(e){for(var t=arguments.length,A=new Array(t>1?t-1:0),n=1;n<t;n++)A[n-1]=arguments[n];return O.run("union",e,A)},intersection:function(e){for(var t=arguments.length,A=new Array(t>1?t-1:0),n=1;n<t;n++)A[n-1]=arguments[n];return O.run("intersection",e,A)},xor:function(e){for(var t=arguments.length,A=new Array(t>1?t-1:0),n=1;n<t;n++)A[n-1]=arguments[n];return O.run("xor",e,A)},difference:function(e){for(var t=arguments.length,A=new Array(t>1?t-1:0),n=1;n<t;n++)A[n-1]=arguments[n];return O.run("difference",e,A)}}}()}).call(this,A(90))},function(e,t,A){"use strict";var n=A(0),r=n.createContext();t.a=r},function(e,t,A){"use strict";var n={centimeters:637100880,centimetres:637100880,degrees:6371008.8/111325,feet:20902260.511392,inches:6371008.8*39.37,kilometers:6371.0088,kilometres:6371.0088,meters:6371008.8,metres:6371008.8,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:6371008.8/1852,radians:1,yards:6371008.8*1.0936};function r(e,t){void 0===t&&(t="kilometers");var A=n[t];if(!A)throw new Error(t+" units is invalid");return e/A}function i(e,t,A){if(void 0===t&&(t="kilometers"),void 0===A&&(A="kilometers"),!(e>=0))throw new Error("length must be a positive number");return function(e,t){void 0===t&&(t="kilometers");var A=n[t];if(!A)throw new Error(t+" units is invalid");return e*A}(r(e,t),A)}function o(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")}t.a=function(e,t,A){void 0===A&&(A={});var n=o(e),r=o(t);return r[0]+=r[0]-n[0]>180?-360:n[0]-r[0]>180?360:0,i(function(e,t,A){var n=A=void 0===A?6371008.8:Number(A),r=e[1]*Math.PI/180,i=t[1]*Math.PI/180,o=i-r,a=Math.abs(t[0]-e[0])*Math.PI/180;a>Math.PI&&(a-=2*Math.PI);var s=Math.log(Math.tan(i/2+Math.PI/4)/Math.tan(r/2+Math.PI/4)),g=Math.abs(s)>1e-11?o/s:Math.cos(r);return Math.sqrt(o*o+g*g*a*a)*n}(n,r),"meters",A.units)}},function(e,t,A){"use strict";var n=A(8),r=A(1),i=A(4),o=A(9),a=A(10),s=A(33),g=A(404),c=A(125),u=A(30);function l(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=t[9],I=t[10],C=t[11],h=t[12],f=t[13],d=t[14],B=t[15],p=A[0],E=A[1],Q=A[2],y=A[3];return e[0]=p*n+E*a+Q*u+y*h,e[1]=p*r+E*s+Q*l+y*f,e[2]=p*i+E*g+Q*I+y*d,e[3]=p*o+E*c+Q*C+y*B,p=A[4],E=A[5],Q=A[6],y=A[7],e[4]=p*n+E*a+Q*u+y*h,e[5]=p*r+E*s+Q*l+y*f,e[6]=p*i+E*g+Q*I+y*d,e[7]=p*o+E*c+Q*C+y*B,p=A[8],E=A[9],Q=A[10],y=A[11],e[8]=p*n+E*a+Q*u+y*h,e[9]=p*r+E*s+Q*l+y*f,e[10]=p*i+E*g+Q*I+y*d,e[11]=p*o+E*c+Q*C+y*B,p=A[12],E=A[13],Q=A[14],y=A[15],e[12]=p*n+E*a+Q*u+y*h,e[13]=p*r+E*s+Q*l+y*f,e[14]=p*i+E*g+Q*I+y*d,e[15]=p*o+E*c+Q*C+y*B,e}function I(e,t,A){var n=A[0],r=A[1],i=A[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function C(e,t,A,n,r){var i,o=1/Math.tan(t/2);return e[0]=o/A,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=r&&r!==1/0?(i=1/(n-r),e[10]=(r+n)*i,e[14]=2*r*n*i):(e[10]=-1,e[14]=-2*n),e}function h(e,t,A,n){var r,i,o,a,s,g,c,l,I,C,h=t[0],f=t[1],d=t[2],B=n[0],p=n[1],E=n[2],Q=A[0],y=A[1],v=A[2];return Math.abs(h-Q)<u.b&&Math.abs(f-y)<u.b&&Math.abs(d-v)<u.b?function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}(e):(c=h-Q,l=f-y,I=d-v,r=p*(I*=C=1/Math.hypot(c,l,I))-E*(l*=C),i=E*(c*=C)-B*I,o=B*l-p*c,(C=Math.hypot(r,i,o))?(r*=C=1/C,i*=C,o*=C):(r=0,i=0,o=0),a=l*o-I*i,s=I*r-c*o,g=c*i-l*r,(C=Math.hypot(a,s,g))?(a*=C=1/C,s*=C,g*=C):(a=0,s=0,g=0),e[0]=r,e[1]=a,e[2]=c,e[3]=0,e[4]=i,e[5]=s,e[6]=l,e[7]=0,e[8]=o,e[9]=g,e[10]=I,e[11]=0,e[12]=-(r*h+i*f+o*d),e[13]=-(a*h+s*f+g*d),e[14]=-(c*h+l*f+I*d),e[15]=1,e)}var f=A(180),d=A(67),B=A(94);A.d(t,"a",(function(){return v}));var p=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),E=Object.freeze([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Q=Object.freeze({COL0ROW0:0,COL0ROW1:1,COL0ROW2:2,COL0ROW3:3,COL1ROW0:4,COL1ROW1:5,COL1ROW2:6,COL1ROW3:7,COL2ROW0:8,COL2ROW1:9,COL2ROW2:10,COL2ROW3:11,COL3ROW0:12,COL3ROW1:13,COL3ROW2:14,COL3ROW3:15}),y={},v=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){var n;return Object(r.a)(this,A),n=t.call(this,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),1===arguments.length&&Array.isArray(e)?n.copy(e):n.identity(),n}return Object(i.a)(A,[{key:"INDICES",get:function(){return Q}},{key:"ELEMENTS",get:function(){return 16}},{key:"RANK",get:function(){return 4}}],[{key:"IDENTITY",get:function(){return y.IDENTITY=y.IDENTITY||Object.freeze(new A(p)),y.IDENTITY}},{key:"ZERO",get:function(){return y.ZERO=y.ZERO||Object.freeze(new A(E)),y.ZERO}}]),Object(i.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}},{key:"set",value:function(e,t,A,n,r,i,o,a,s,g,c,u,l,I,C,h){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this[4]=r,this[5]=i,this[6]=o,this[7]=a,this[8]=s,this[9]=g,this[10]=c,this[11]=u,this[12]=l,this[13]=I,this[14]=C,this[15]=h,this.check()}},{key:"setRowMajor",value:function(e,t,A,n,r,i,o,a,s,g,c,u,l,I,C,h){return this[0]=e,this[1]=r,this[2]=s,this[3]=l,this[4]=t,this[5]=i,this[6]=g,this[7]=I,this[8]=A,this[9]=o,this[10]=c,this[11]=C,this[12]=n,this[13]=a,this[14]=u,this[15]=h,this.check()}},{key:"toRowMajor",value:function(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}},{key:"identity",value:function(){return this.copy(p)}},{key:"fromQuaternion",value:function(e){return function(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=A+A,a=n+n,s=r+r,g=A*o,c=n*o,u=n*a,l=r*o,I=r*a,C=r*s,h=i*o,f=i*a,d=i*s;e[0]=1-u-C,e[1]=c+d,e[2]=l-f,e[3]=0,e[4]=c-d,e[5]=1-g-C,e[6]=I+h,e[7]=0,e[8]=l+f,e[9]=I-h,e[10]=1-g-u,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1}(this,e),this.check()}},{key:"frustum",value:function(e){var t=e.left,n=e.right,r=e.bottom,i=e.top,o=e.near,a=e.far;return a===1/0?A._computeInfinitePerspectiveOffCenter(this,t,n,r,i,o):function(e,t,A,n,r,i,o){var a=1/(A-t),s=1/(r-n),g=1/(i-o);e[0]=2*i*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*i*s,e[6]=0,e[7]=0,e[8]=(A+t)*a,e[9]=(r+n)*s,e[10]=(o+i)*g,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*i*2*g,e[15]=0}(this,t,n,r,i,o,a),this.check()}},{key:"lookAt",value:function(e,t,A){if(1===arguments.length){var n=e;e=n.eye,t=n.center,A=n.up}return h(this,e,t=t||[0,0,0],A=A||[0,1,0]),this.check()}},{key:"ortho",value:function(e){var t=e.left,A=e.right,n=e.bottom,r=e.top,i=e.near,o=void 0===i?.1:i,a=e.far;return function(e,t,A,n,r,i,o){var a=1/(t-A),s=1/(n-r),g=1/(i-o);e[0]=-2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*g,e[11]=0,e[12]=(t+A)*a,e[13]=(r+n)*s,e[14]=(o+i)*g,e[15]=1}(this,t,A,n,r,o,void 0===a?500:a),this.check()}},{key:"orthographic",value:function(e){var t=e.fovy,n=void 0===t?45*Math.PI/180:t,r=e.aspect,i=void 0===r?1:r,o=e.focalDistance,a=void 0===o?1:o,s=e.near,g=void 0===s?.1:s,c=e.far,u=void 0===c?500:c;if(n>2*Math.PI)throw Error("radians");var l=n/2,I=a*Math.tan(l),C=I*i;return(new A).ortho({left:-C,right:C,bottom:-I,top:I,near:g,far:u})}},{key:"perspective",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.fovy,A=void 0===t?void 0:t,n=e.fov,r=void 0===n?45*Math.PI/180:n,i=e.aspect,o=void 0===i?1:i,a=e.near,s=void 0===a?.1:a,g=e.far,c=void 0===g?500:g;if((A=A||r)>2*Math.PI)throw Error("radians");return C(this,A,o,s,c),this.check()}},{key:"determinant",value:function(){return function(e){var t=e[0],A=e[1],n=e[2],r=e[3],i=e[4],o=e[5],a=e[6],s=e[7],g=e[8],c=e[9],u=e[10],l=e[11],I=e[12],C=e[13],h=e[14],f=e[15];return(t*o-A*i)*(u*f-l*h)-(t*a-n*i)*(c*f-l*C)+(t*s-r*i)*(c*h-u*C)+(A*a-n*o)*(g*f-l*I)-(A*s-r*o)*(g*h-u*I)+(n*s-r*a)*(g*C-c*I)}(this)}},{key:"getScale",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0];return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}},{key:"getTranslation",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0];return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}},{key:"getRotation",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,A=this.getScale(t||[-0,-0,-0]),n=1/A[0],r=1/A[1],i=1/A[2];return e[0]=this[0]*n,e[1]=this[1]*r,e[2]=this[2]*i,e[3]=0,e[4]=this[4]*n,e[5]=this[5]*r,e[6]=this[6]*i,e[7]=0,e[8]=this[8]*n,e[9]=this[9]*r,e[10]=this[10]*i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}},{key:"getRotationMatrix3",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0,-0,-0,-0,-0,-0,-0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,A=this.getScale(t||[-0,-0,-0]),n=1/A[0],r=1/A[1],i=1/A[2];return e[0]=this[0]*n,e[1]=this[1]*r,e[2]=this[2]*i,e[3]=this[4]*n,e[4]=this[5]*r,e[5]=this[6]*i,e[6]=this[8]*n,e[7]=this[9]*r,e[8]=this[10]*i,e}},{key:"transpose",value:function(){return function(e,t){if(e===t){var A=t[1],n=t[2],r=t[3],i=t[6],o=t[7],a=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=A,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=i,e[11]=t[14],e[12]=r,e[13]=o,e[14]=a}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15]}(this,this),this.check()}},{key:"invert",value:function(){return function(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=t[4],a=t[5],s=t[6],g=t[7],c=t[8],u=t[9],l=t[10],I=t[11],C=t[12],h=t[13],f=t[14],d=t[15],B=A*a-n*o,p=A*s-r*o,E=A*g-i*o,Q=n*s-r*a,y=n*g-i*a,v=r*g-i*s,m=c*h-u*C,b=c*f-l*C,w=c*d-I*C,S=u*f-l*h,F=u*d-I*h,R=l*d-I*f,D=B*R-p*F+E*S+Q*w-y*b+v*m;D&&(D=1/D,e[0]=(a*R-s*F+g*S)*D,e[1]=(r*F-n*R-i*S)*D,e[2]=(h*v-f*y+d*Q)*D,e[3]=(l*y-u*v-I*Q)*D,e[4]=(s*w-o*R-g*b)*D,e[5]=(A*R-r*w+i*b)*D,e[6]=(f*E-C*v-d*p)*D,e[7]=(c*v-l*E+I*p)*D,e[8]=(o*F-a*w+g*m)*D,e[9]=(n*w-A*F-i*m)*D,e[10]=(C*y-h*E+d*B)*D,e[11]=(u*E-c*y-I*B)*D,e[12]=(a*b-o*S-s*m)*D,e[13]=(A*S-n*b+r*m)*D,e[14]=(h*p-C*Q-f*B)*D,e[15]=(c*Q-u*p+l*B)*D)}(this,this),this.check()}},{key:"multiplyLeft",value:function(e){return l(this,e,this),this.check()}},{key:"multiplyRight",value:function(e){return l(this,this,e),this.check()}},{key:"rotateX",value:function(e){return function(e,t,A){var n=Math.sin(A),r=Math.cos(A),i=t[4],o=t[5],a=t[6],s=t[7],g=t[8],c=t[9],u=t[10],l=t[11];t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*r+g*n,e[5]=o*r+c*n,e[6]=a*r+u*n,e[7]=s*r+l*n,e[8]=g*r-i*n,e[9]=c*r-o*n,e[10]=u*r-a*n,e[11]=l*r-s*n}(this,this,e),this.check()}},{key:"rotateY",value:function(e){return function(e,t,A){var n=Math.sin(A),r=Math.cos(A),i=t[0],o=t[1],a=t[2],s=t[3],g=t[8],c=t[9],u=t[10],l=t[11];t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*r-g*n,e[1]=o*r-c*n,e[2]=a*r-u*n,e[3]=s*r-l*n,e[8]=i*n+g*r,e[9]=o*n+c*r,e[10]=a*n+u*r,e[11]=s*n+l*r}(this,this,e),this.check()}},{key:"rotateZ",value:function(e){return function(e,t,A){var n=Math.sin(A),r=Math.cos(A),i=t[0],o=t[1],a=t[2],s=t[3],g=t[4],c=t[5],u=t[6],l=t[7];t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*r+g*n,e[1]=o*r+c*n,e[2]=a*r+u*n,e[3]=s*r+l*n,e[4]=g*r-i*n,e[5]=c*r-o*n,e[6]=u*r-a*n,e[7]=l*r-s*n}(this,this,e),this.check()}},{key:"rotateXYZ",value:function(e){var t=Object(n.a)(e,3),A=t[0],r=t[1],i=t[2];return this.rotateX(A).rotateY(r).rotateZ(i)}},{key:"rotateAxis",value:function(e,t){return function(e,t,A,n){var r,i,o,a,s,g,c,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w,S,F,R=n[0],D=n[1],G=n[2],k=Math.hypot(R,D,G);k<u.b||(R*=k=1/k,D*=k,G*=k,r=Math.sin(A),o=1-(i=Math.cos(A)),a=t[0],s=t[1],g=t[2],c=t[3],l=t[4],I=t[5],C=t[6],h=t[7],f=t[8],d=t[9],B=t[10],p=t[11],E=R*R*o+i,Q=D*R*o+G*r,y=G*R*o-D*r,v=R*D*o-G*r,m=D*D*o+i,b=G*D*o+R*r,w=R*G*o+D*r,S=D*G*o-R*r,F=G*G*o+i,e[0]=a*E+l*Q+f*y,e[1]=s*E+I*Q+d*y,e[2]=g*E+C*Q+B*y,e[3]=c*E+h*Q+p*y,e[4]=a*v+l*m+f*b,e[5]=s*v+I*m+d*b,e[6]=g*v+C*m+B*b,e[7]=c*v+h*m+p*b,e[8]=a*w+l*S+f*F,e[9]=s*w+I*S+d*F,e[10]=g*w+C*S+B*F,e[11]=c*w+h*S+p*F,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]))}(this,this,e,t),this.check()}},{key:"scale",value:function(e){return Array.isArray(e)?I(this,this,e):I(this,this,[e,e,e]),this.check()}},{key:"translate",value:function(e){return function(e,t,A){var n,r,i,o,a,s,g,c,u,l,I,C,h=A[0],f=A[1],d=A[2];t===e?(e[12]=t[0]*h+t[4]*f+t[8]*d+t[12],e[13]=t[1]*h+t[5]*f+t[9]*d+t[13],e[14]=t[2]*h+t[6]*f+t[10]*d+t[14],e[15]=t[3]*h+t[7]*f+t[11]*d+t[15]):(n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],g=t[6],c=t[7],u=t[8],l=t[9],I=t[10],C=t[11],e[0]=n,e[1]=r,e[2]=i,e[3]=o,e[4]=a,e[5]=s,e[6]=g,e[7]=c,e[8]=u,e[9]=l,e[10]=I,e[11]=C,e[12]=n*h+a*f+u*d+t[12],e[13]=r*h+s*f+l*d+t[13],e[14]=i*h+g*f+I*d+t[14],e[15]=o*h+c*f+C*d+t[15])}(this,this,e),this.check()}},{key:"transform",value:function(e,t){return 4===e.length?(t=B.n(t||[-0,-0,-0,-0],e,this),Object(s.b)(t,4),t):this.transformAsPoint(e,t)}},{key:"transformAsPoint",value:function(e,t){switch(e.length){case 2:t=f.d(t||[-0,-0],e,this);break;case 3:t=d.m(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Object(s.b)(t,e.length),t}},{key:"transformAsVector",value:function(e,t){switch(e.length){case 2:t=Object(c.a)(t||[-0,-0],e,this);break;case 3:t=Object(c.c)(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Object(s.b)(t,e.length),t}},{key:"makeRotationX",value:function(e){return this.identity().rotateX(e)}},{key:"makeTranslation",value:function(e,t,A){return this.identity().translate([e,t,A])}},{key:"transformPoint",value:function(e,t){return Object(s.c)("Matrix4.transformPoint","3.0"),this.transformAsPoint(e,t)}},{key:"transformVector",value:function(e,t){return Object(s.c)("Matrix4.transformVector","3.0"),this.transformAsPoint(e,t)}},{key:"transformDirection",value:function(e,t){return Object(s.c)("Matrix4.transformDirection","3.0"),this.transformAsVector(e,t)}}],[{key:"_computeInfinitePerspectiveOffCenter",value:function(e,t,A,n,r,i){var o=2*i/(A-t),a=2*i/(r-n),s=(A+t)/(A-t),g=(r+n)/(r-n),c=-2*i;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=s,e[9]=g,e[10]=-1,e[11]=-1,e[12]=0,e[13]=0,e[14]=c,e[15]=0,e}}]),A}(g.a)},function(e,t,A){"use strict";function n(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function r(e,t,A){return t&&n(e.prototype,t),A&&n(e,A),e}A.d(t,"a",(function(){return r}))},function(e,t,A){"use strict";var n=A(0),r=A.n(n);t.a=r.a.createContext(null)},function(e,t,A){"use strict";var n=A(0),r=n.createContext({});t.a=r},function(e,t,A){var n,r,i;r=[],void 0===(i="function"===typeof(n=function(){"use strict";function e(e,t,A){this.low=0|e,this.high=0|t,this.unsigned=!!A}function t(e){return!0===(e&&e.__isLong__)}e.prototype.__isLong__,Object.defineProperty(e.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1}),e.isLong=t;var A={},n={};function r(e,t){var r,i,a;return t?(a=0<=(e>>>=0)&&e<256)&&(i=n[e])?i:(r=o(e,(0|e)<0?-1:0,!0),a&&(n[e]=r),r):(a=-128<=(e|=0)&&e<128)&&(i=A[e])?i:(r=o(e,e<0?-1:0,!1),a&&(A[e]=r),r)}function i(e,t){if(isNaN(e)||!isFinite(e))return t?h:C;if(t){if(e<0)return h;if(e>=u)return E}else{if(e<=-l)return Q;if(e+1>=l)return p}return e<0?i(-e,t).neg():o(e%c|0,e/c|0,t)}function o(t,A,n){return new e(t,A,n)}e.fromInt=r,e.fromNumber=i,e.fromBits=o;var a=Math.pow;function s(e,t,A){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return C;if("number"===typeof t?(A=t,t=!1):t=!!t,(A=A||10)<2||36<A)throw RangeError("radix");var n;if((n=e.indexOf("-"))>0)throw Error("interior hyphen");if(0===n)return s(e.substring(1),t,A).neg();for(var r=i(a(A,8)),o=C,g=0;g<e.length;g+=8){var c=Math.min(8,e.length-g),u=parseInt(e.substring(g,g+c),A);if(c<8){var l=i(a(A,c));o=o.mul(l).add(i(u))}else o=(o=o.mul(r)).add(i(u))}return o.unsigned=t,o}function g(t){return t instanceof e?t:"number"===typeof t?i(t):"string"===typeof t?s(t):o(t.low,t.high,t.unsigned)}e.fromString=s,e.fromValue=g;var c=4294967296,u=c*c,l=u/2,I=r(1<<24),C=r(0);e.ZERO=C;var h=r(0,!0);e.UZERO=h;var f=r(1);e.ONE=f;var d=r(1,!0);e.UONE=d;var B=r(-1);e.NEG_ONE=B;var p=o(-1,2147483647,!1);e.MAX_VALUE=p;var E=o(-1,-1,!0);e.MAX_UNSIGNED_VALUE=E;var Q=o(0,-2147483648,!1);e.MIN_VALUE=Q;var y=e.prototype;return y.toInt=function(){return this.unsigned?this.low>>>0:this.low},y.toNumber=function(){return this.unsigned?(this.high>>>0)*c+(this.low>>>0):this.high*c+(this.low>>>0)},y.toString=function(e){if((e=e||10)<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(Q)){var t=i(e),A=this.div(t),n=A.mul(t).sub(this);return A.toString(e)+n.toInt().toString(e)}return"-"+this.neg().toString(e)}for(var r=i(a(e,6),this.unsigned),o=this,s="";;){var g=o.div(r),c=(o.sub(g.mul(r)).toInt()>>>0).toString(e);if((o=g).isZero())return c+s;for(;c.length<6;)c="0"+c;s=""+c+s}},y.getHighBits=function(){return this.high},y.getHighBitsUnsigned=function(){return this.high>>>0},y.getLowBits=function(){return this.low},y.getLowBitsUnsigned=function(){return this.low>>>0},y.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Q)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<<t);t--);return 0!=this.high?t+33:t+1},y.isZero=function(){return 0===this.high&&0===this.low},y.isNegative=function(){return!this.unsigned&&this.high<0},y.isPositive=function(){return this.unsigned||this.high>=0},y.isOdd=function(){return 1===(1&this.low)},y.isEven=function(){return 0===(1&this.low)},y.equals=function(e){return t(e)||(e=g(e)),(this.unsigned===e.unsigned||this.high>>>31!==1||e.high>>>31!==1)&&this.high===e.high&&this.low===e.low},y.eq=y.equals,y.notEquals=function(e){return!this.eq(e)},y.neq=y.notEquals,y.lessThan=function(e){return this.comp(e)<0},y.lt=y.lessThan,y.lessThanOrEqual=function(e){return this.comp(e)<=0},y.lte=y.lessThanOrEqual,y.greaterThan=function(e){return this.comp(e)>0},y.gt=y.greaterThan,y.greaterThanOrEqual=function(e){return this.comp(e)>=0},y.gte=y.greaterThanOrEqual,y.compare=function(e){if(t(e)||(e=g(e)),this.eq(e))return 0;var A=this.isNegative(),n=e.isNegative();return A&&!n?-1:!A&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},y.comp=y.compare,y.negate=function(){return!this.unsigned&&this.eq(Q)?Q:this.not().add(f)},y.neg=y.negate,y.add=function(e){t(e)||(e=g(e));var A=this.high>>>16,n=65535&this.high,r=this.low>>>16,i=65535&this.low,a=e.high>>>16,s=65535&e.high,c=e.low>>>16,u=0,l=0,I=0,C=0;return I+=(C+=i+(65535&e.low))>>>16,l+=(I+=r+c)>>>16,u+=(l+=n+s)>>>16,u+=A+a,o((I&=65535)<<16|(C&=65535),(u&=65535)<<16|(l&=65535),this.unsigned)},y.subtract=function(e){return t(e)||(e=g(e)),this.add(e.neg())},y.sub=y.subtract,y.multiply=function(e){if(this.isZero())return C;if(t(e)||(e=g(e)),e.isZero())return C;if(this.eq(Q))return e.isOdd()?Q:C;if(e.eq(Q))return this.isOdd()?Q:C;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(I)&&e.lt(I))return i(this.toNumber()*e.toNumber(),this.unsigned);var A=this.high>>>16,n=65535&this.high,r=this.low>>>16,a=65535&this.low,s=e.high>>>16,c=65535&e.high,u=e.low>>>16,l=65535&e.low,h=0,f=0,d=0,B=0;return d+=(B+=a*l)>>>16,f+=(d+=r*l)>>>16,d&=65535,f+=(d+=a*u)>>>16,h+=(f+=n*l)>>>16,f&=65535,h+=(f+=r*u)>>>16,f&=65535,h+=(f+=a*c)>>>16,h+=A*l+n*u+r*c+a*s,o((d&=65535)<<16|(B&=65535),(h&=65535)<<16|(f&=65535),this.unsigned)},y.mul=y.multiply,y.divide=function(e){if(t(e)||(e=g(e)),e.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?h:C;var A,n,r;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return h;if(e.gt(this.shru(1)))return d;r=h}else{if(this.eq(Q))return e.eq(f)||e.eq(B)?Q:e.eq(Q)?f:(A=this.shr(1).div(e).shl(1)).eq(C)?e.isNegative()?f:B:(n=this.sub(e.mul(A)),r=A.add(n.div(e)));if(e.eq(Q))return this.unsigned?h:C;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();r=C}for(n=this;n.gte(e);){A=Math.max(1,Math.floor(n.toNumber()/e.toNumber()));for(var o=Math.ceil(Math.log(A)/Math.LN2),s=o<=48?1:a(2,o-48),c=i(A),u=c.mul(e);u.isNegative()||u.gt(n);)u=(c=i(A-=s,this.unsigned)).mul(e);c.isZero()&&(c=f),r=r.add(c),n=n.sub(u)}return r},y.div=y.divide,y.modulo=function(e){return t(e)||(e=g(e)),this.sub(this.div(e).mul(e))},y.mod=y.modulo,y.not=function(){return o(~this.low,~this.high,this.unsigned)},y.and=function(e){return t(e)||(e=g(e)),o(this.low&e.low,this.high&e.high,this.unsigned)},y.or=function(e){return t(e)||(e=g(e)),o(this.low|e.low,this.high|e.high,this.unsigned)},y.xor=function(e){return t(e)||(e=g(e)),o(this.low^e.low,this.high^e.high,this.unsigned)},y.shiftLeft=function(e){return t(e)&&(e=e.toInt()),0===(e&=63)?this:e<32?o(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):o(0,this.low<<e-32,this.unsigned)},y.shl=y.shiftLeft,y.shiftRight=function(e){return t(e)&&(e=e.toInt()),0===(e&=63)?this:e<32?o(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):o(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},y.shr=y.shiftRight,y.shiftRightUnsigned=function(e){if(t(e)&&(e=e.toInt()),0===(e&=63))return this;var A=this.high;return e<32?o(this.low>>>e|A<<32-e,A>>>e,this.unsigned):o(32===e?A:A>>>e-32,0,this.unsigned)},y.shru=y.shiftRightUnsigned,y.toSigned=function(){return this.unsigned?o(this.low,this.high,!1):this},y.toUnsigned=function(){return this.unsigned?this:o(this.low,this.high,!0)},y.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},y.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24&255,255&e,e>>>8&255,e>>>16&255,e>>>24&255]},y.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t]},e})?n.apply(t,r):n)||(e.exports=i)},function(e,t,A){"use strict";A.d(t,"a",(function(){return u})),A.d(t,"b",(function(){return l}));var n=A(6),r=A(116),i=A(36),o=Math.PI/180,a=new Float32Array(16),s=new Float32Array(12);function g(e,t,A){var n=t[0]*o,r=t[1]*o,i=t[2]*o,a=Math.sin(i),s=Math.sin(n),g=Math.sin(r),c=Math.cos(i),u=Math.cos(n),l=Math.cos(r),I=A[0],C=A[1],h=A[2];e[0]=I*l*u,e[1]=I*g*u,e[2]=I*-s,e[3]=C*(-g*c+l*s*a),e[4]=C*(l*c+g*s*a),e[5]=C*u*a,e[6]=h*(g*a+l*s*c),e[7]=h*(-l*a+g*s*c),e[8]=h*u*c}function c(e){return e[0]=e[0],e[1]=e[1],e[2]=e[2],e[3]=e[4],e[4]=e[5],e[5]=e[6],e[6]=e[8],e[7]=e[9],e[8]=e[10],e[9]=e[12],e[10]=e[13],e[11]=e[14],e.subarray(0,12)}var u={size:12,accessor:["getOrientation","getScale","getTranslation","getTransformMatrix"],shaderAttributes:{instanceModelMatrix__LOCATION_0:{size:3,elementOffset:0},instanceModelMatrix__LOCATION_1:{size:3,elementOffset:3},instanceModelMatrix__LOCATION_2:{size:3,elementOffset:6},instanceTranslation:{size:3,elementOffset:9}},update:function(e,t){var A=t.startRow,i=t.endRow,o=this.props,u=o.data,l=o.getOrientation,I=o.getScale,C=o.getTranslation,h=o.getTransformMatrix,f=Array.isArray(h),d=f&&16===h.length,B=Array.isArray(I),p=Array.isArray(l),E=Array.isArray(C),Q=d||!f&&Boolean(h(u[0]));e.constant=Q?d:p&&B&&E;var y=e.value;if(e.constant){var v;if(Q)a.set(h),v=c(a);else g(v=s,l,I),v.set(C,9);e.value=new Float32Array(v)}else{var m,b=A*e.size,w=Object(r.a)(u,A,i),S=w.iterable,F=w.objectInfo,R=Object(n.a)(S);try{for(R.s();!(m=R.n()).done;){var D=m.value;F.index++;var G=void 0;if(Q)a.set(d?h:h(D,F)),G=c(a);else g(G=s,p?l:l(D,F),B?I:I(D,F)),G.set(E?C:C(D,F),9);y[b++]=G[0],y[b++]=G[1],y[b++]=G[2],y[b++]=G[3],y[b++]=G[4],y[b++]=G[5],y[b++]=G[6],y[b++]=G[7],y[b++]=G[8],y[b++]=G[9],y[b++]=G[10],y[b++]=G[11]}}catch(k){R.e(k)}finally{R.f()}}}};function l(e,t){return t===i.a.CARTESIAN||t===i.a.METER_OFFSETS||t===i.a.DEFAULT&&!e.isGeospatial}},function(e,t,A){"use strict";e.exports=A(854)},function(e,t,A){"use strict";var n,r,i=A(2),o=A(85),a=A(72),s=function(e){return Object(a.e)(e)?void 0:0},g=(n={},Object(i.a)(n,3074,(function(e){return Object(a.e)(e)?void 0:36064})),Object(i.a)(n,35723,(function(e){return Object(a.e)(e)?void 0:4352})),Object(i.a)(n,35977,s),Object(i.a)(n,32937,s),Object(i.a)(n,36795,(function(e,t){var A=Object(a.e)(e)?e.getExtension("EXT_disjoint_timer_query_webgl2"):e.getExtension("EXT_disjoint_timer_query");return A&&A.GPU_DISJOINT_EXT?t(A.GPU_DISJOINT_EXT):0})),Object(i.a)(n,37445,(function(e,t){var A=e.getExtension("WEBGL_debug_renderer_info");return t(A&&A.UNMASKED_VENDOR_WEBGL||7936)})),Object(i.a)(n,37446,(function(e,t){var A=e.getExtension("WEBGL_debug_renderer_info");return t(A&&A.UNMASKED_RENDERER_WEBGL||7937)})),Object(i.a)(n,34047,(function(e,t){var A=e.luma.extensions.EXT_texture_filter_anisotropic;return A?t(A.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1})),Object(i.a)(n,32883,s),Object(i.a)(n,35071,s),Object(i.a)(n,37447,s),Object(i.a)(n,36063,(function(e,t){if(!Object(a.e)(e)){var A=e.getExtension("WEBGL_draw_buffers");return A?t(A.MAX_COLOR_ATTACHMENTS_WEBGL):0}})),Object(i.a)(n,35379,s),Object(i.a)(n,35374,s),Object(i.a)(n,35377,s),Object(i.a)(n,34852,(function(e){if(!Object(a.e)(e)){var t=e.getExtension("WEBGL_draw_buffers");return t?t.MAX_DRAW_BUFFERS_WEBGL:0}})),Object(i.a)(n,36203,(function(e){return e.getExtension("OES_element_index")?2147483647:65535})),Object(i.a)(n,33001,(function(e){return e.getExtension("OES_element_index")?16777216:65535})),Object(i.a)(n,33e3,(function(e){return 16777216})),Object(i.a)(n,37157,s),Object(i.a)(n,35373,s),Object(i.a)(n,35657,s),Object(i.a)(n,36183,s),Object(i.a)(n,37137,s),Object(i.a)(n,34045,s),Object(i.a)(n,35978,s),Object(i.a)(n,35979,s),Object(i.a)(n,35968,s),Object(i.a)(n,35376,s),Object(i.a)(n,35375,s),Object(i.a)(n,35659,s),Object(i.a)(n,37154,s),Object(i.a)(n,35371,s),Object(i.a)(n,35658,s),Object(i.a)(n,35076,s),Object(i.a)(n,35077,s),Object(i.a)(n,35380,s),n);A.d(t,"b",(function(){return c})),A.d(t,"a",(function(){return u}));var c=(r={},Object(i.a)(r,"OES_vertex_array_object",{meta:{suffix:"OES"},createVertexArray:function(){Object(o.a)(!1,"VertexArray requires WebGL2 or OES_vertex_array_object extension")},deleteVertexArray:function(){},bindVertexArray:function(){},isVertexArray:function(){return!1}}),Object(i.a)(r,"ANGLE_instanced_arrays",{meta:{suffix:"ANGLE"},vertexAttribDivisor:function(e,t){Object(o.a)(0===t,"WebGL instanced rendering not supported")},drawElementsInstanced:function(){},drawArraysInstanced:function(){}}),Object(i.a)(r,"WEBGL_draw_buffers",{meta:{suffix:"WEBGL"},drawBuffers:function(){Object(o.a)(!1)}}),Object(i.a)(r,"EXT_disjoint_timer_query",{meta:{suffix:"EXT"},createQuery:function(){Object(o.a)(!1)},deleteQuery:function(){Object(o.a)(!1)},beginQuery:function(){Object(o.a)(!1)},endQuery:function(){},getQuery:function(e,t){return this.getQueryObject(e,t)},getQueryParameter:function(e,t){return this.getQueryObject(e,t)},getQueryObject:function(){}}),r),u={readBuffer:function(e,t,A){Object(a.e)(e)&&t(A)},getVertexAttrib:function(e,t,A,n){var r,i=function(e,t){return{webgl2:Object(a.e)(e),ext:e.getExtension(t)}}(e,"ANGLE_instanced_arrays"),o=i.webgl2,s=i.ext;switch(n){case 35069:r=!!o&&void 0;break;case 35070:r=o||s?void 0:0}return void 0!==r?r:t(A,n)},getProgramParameter:function(e,t,A,n){if(!Object(a.e)(e))switch(n){case 35967:return 35981;case 35971:case 35382:return 0}return t(A,n)},getInternalformatParameter:function(e,t,A,n,r){if(!Object(a.e)(e))switch(r){case 32937:return new Int32Array([0])}return e.getInternalformatParameter(A,n,r)},getTexParameter:function(e,t,A,n){switch(n){case 34046:var r=e.luma.extensions.EXT_texture_filter_anisotropic;n=r&&r.TEXTURE_MAX_ANISOTROPY_EXT||34046}return t(A,n)},getParameter:function(e,t,A){var n=g[A],r="function"===typeof n?n(e,t,A):n;return void 0!==r?r:t(A)},hint:function(e,t,A,n){return t(A,n)}}},,,,function(e,t){e.exports=function(e,t){return e===t||e!==e&&t!==t}},function(e,t,A){var n=A(550),r=A(793),i=A(248);e.exports=function(e){return i(e)?n(e):r(e)}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function A(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,t,n){return t&&A(e.prototype,t),n&&A(e,n),e}},function(e,t,A){var n=A(584),r=A(465);e.exports=function(e,t,A,i){var o=!A;A||(A={});for(var a=-1,s=t.length;++a<s;){var g=t[a],c=i?i(A[g],e[g],g,A,e):void 0;void 0===c&&(c=e[g]),o?r(A,g,c):n(A,g,c)}return A}},function(e,t,A){var n=A(256);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(59),r=A(105);t.default=function(e,t,A,i){void 0===i&&(i={});var o=r.getCoord(e),a=n.degreesToRadians(o[0]),s=n.degreesToRadians(o[1]),g=n.degreesToRadians(A),c=n.lengthToRadians(t,i.units),u=Math.asin(Math.sin(s)*Math.cos(c)+Math.cos(s)*Math.sin(c)*Math.cos(g)),l=a+Math.atan2(Math.sin(g)*Math.sin(c)*Math.cos(s),Math.cos(c)-Math.sin(s)*Math.sin(u)),I=n.radiansToDegrees(l),C=n.radiansToDegrees(u);return n.point([I,C],i.properties)}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=i(A(629)),r=i(A(1149));function i(e){return e&&e.__esModule?e:{default:e}}function o(e){return(o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function s(e,t){return!t||"object"!==o(t)&&"function"!==typeof t?g(e):t}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function c(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function I(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var C=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(C,e);var t,A,n,i,o=(t=C,function(){var e,A=u(t);if(c()){var n=u(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return s(this,e)});function C(e){var t,A=e.getData,n=e.on,i=e.toNebulaFeature;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,C),I(g(t=o.call(this)),"getData",void 0),I(g(t),"toNebulaFeature",void 0),I(g(t),"id",void 0),I(g(t),"helperLayers",void 0),I(g(t),"usesMapEvents",!1),I(g(t),"enablePicking",!1),I(g(t),"enableSelection",!1),t.id=r.default.v4(),t.getData=A,t.toNebulaFeature=i,t.helperLayers=[],n&&Object.keys(n).forEach((function(e){return t.on(e,n[e])})),t}return A=C,(n=[{key:"render",value:function(e){return null}}])&&a(A.prototype,n),i&&a(A,i),C}(n.default.EventEmitter);t.default=C},function(e,t,A){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function o(e,t,A){return(o="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=g(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function a(e,t){return!t||"object"!==n(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.TwoClickPolygonMode=void 0;var u=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(I,e);var t,A,n,u,l=(t=I,function(){var e,A=g(t);if(s()){var n=g(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return a(this,e)});function I(){return r(this,I),l.apply(this,arguments)}return A=I,(n=[{key:"handleClick",value:function(e,t){t.modeConfig&&t.modeConfig.dragToDraw||(this.addClickSequence(e),this.checkAndFinishPolygon(t))}},{key:"handleStartDragging",value:function(e,t){t.modeConfig&&t.modeConfig.dragToDraw&&(this.addClickSequence(e),e.cancelPan())}},{key:"handleStopDragging",value:function(e,t){t.modeConfig&&t.modeConfig.dragToDraw&&(this.addClickSequence(e),this.checkAndFinishPolygon(t))}},{key:"checkAndFinishPolygon",value:function(e){var t=this.getClickSequence(),A=this.getTentativeGuide(e);if(t.length>1&&A&&"Polygon"===A.geometry.type){var n={type:"Feature",properties:{shape:A.properties.shape},geometry:{type:"Polygon",coordinates:A.geometry.coordinates}},r=this.getAddFeatureOrBooleanPolygonAction(n,e);this.resetClickSequence(),r&&e.onEdit(r)}}},{key:"getGuides",value:function(e){var t=e.lastPointerMoveEvent,A=e.modeConfig,n=this.getClickSequence(),r={type:"FeatureCollection",features:[]};if(0===n.length)return r;var i=n[0],o=t.mapCoords,a=this.getTwoClickPolygon(i,o,A);return a&&r.features.push({type:"Feature",properties:{shape:a.properties&&a.properties.shape,guideType:"tentative"},geometry:a.geometry}),r}},{key:"getTwoClickPolygon",value:function(e,t,A){return null}},{key:"handlePointerMove",value:function(e,t){t.onUpdateCursor("cell"),o(g(I.prototype),"handlePointerMove",this).call(this,e,t)}},{key:"createTentativeFeature",value:function(e){var t,A=e.lastPointerMoveEvent,n=this.getClickSequence(),r=A?[A.mapCoords]:[];return 1===n.length&&(t=this.getTwoClickPolygon(n[0],r[0],e.modeConfig)),t}}])&&i(A.prototype,n),u&&i(A,u),I}(A(79).GeoJsonEditMode);t.TwoClickPolygonMode=u},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(141),r=A(59);t.default=function(e,t){void 0===t&&(t={});var A=0,i=0,o=0;return n.coordEach(e,(function(e){A+=e[0],i+=e[1],o++})),r.point([A/o,i/o],t.properties)}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(105);function r(e,t,A){var n=!1;t[0][0]===t[t.length-1][0]&&t[0][1]===t[t.length-1][1]&&(t=t.slice(0,t.length-1));for(var r=0,i=t.length-1;r<t.length;i=r++){var o=t[r][0],a=t[r][1],s=t[i][0],g=t[i][1];if(e[1]*(o-s)+a*(s-e[0])+g*(e[0]-o)===0&&(o-e[0])*(s-e[0])<=0&&(a-e[1])*(g-e[1])<=0)return!A;a>e[1]!==g>e[1]&&e[0]<(s-o)*(e[1]-a)/(g-a)+o&&(n=!n)}return n}t.default=function(e,t,A){if(void 0===A&&(A={}),!e)throw new Error("point is required");if(!t)throw new Error("polygon is required");var i=n.getCoord(e),o=n.getGeom(t),a=o.type,s=t.bbox,g=o.coordinates;if(s&&!1===function(e,t){return t[0]<=e[0]&&t[1]<=e[1]&&t[2]>=e[0]&&t[3]>=e[1]}(i,s))return!1;"Polygon"===a&&(g=[g]);for(var c=!1,u=0;u<g.length&&!c;u++)if(r(i,g[u][0],A.ignoreBoundary)){for(var l=!1,I=1;I<g[u].length&&!l;)r(i,g[u][I],!A.ignoreBoundary)&&(l=!0),I++;l||(c=!0)}return c}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ArrowStyles",{enumerable:!0,get:function(){return n.ArrowStyles}}),Object.defineProperty(t,"DEFAULT_ARROWS",{enumerable:!0,get:function(){return n.DEFAULT_ARROWS}}),Object.defineProperty(t,"MAX_ARROWS",{enumerable:!0,get:function(){return n.MAX_ARROWS}}),Object.defineProperty(t,"EditableGeoJsonLayer",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"EditableH3ClusterLayer",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"SelectionLayer",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"ElevatedEditHandleLayer",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"PathOutlineLayer",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"PathMarkerLayer",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(t,"JunctionScatterplotLayer",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"toDeckColor",{enumerable:!0,get:function(){return u.toDeckColor}});var n=A(1068),r=l(A(493)),i=l(A(1093)),o=l(A(1094)),a=l(A(1095)),s=l(A(639)),g=l(A(1097)),c=l(A(1101)),u=A(1102);function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t,A){"use strict";function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5;if("string"===typeof e)return e.slice(0,t);if(ArrayBuffer.isView(e))return r(e.buffer,e.byteOffset,t);if(e instanceof ArrayBuffer){var A=0;return r(e,A,t)}return""}function r(e,t,A){if(e.byteLength<=t+A)return"";for(var n=new DataView(e),r="",i=0;i<A;i++)r+=String.fromCharCode(n.getUint8(t+i));return r}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";t.a=function(e,t){}},function(e,t,A){"use strict";(function(e){function n(){var t;if("undefined"!==typeof window&&window.performance)t=window.performance.now();else if("undefined"!==typeof e&&e.hrtime){var A=e.hrtime();t=1e3*A[0]+A[1]/1e6}else t=Date.now();return t}A.d(t,"a",(function(){return n}))}).call(this,A(90))},function(e,t,A){"use strict";A.d(t,"c",(function(){return r})),A.d(t,"b",(function(){return i})),A.d(t,"a",(function(){return a}));var n=A(78).b.COMPONENT;function r(e){var t=u(e);for(var A in t){var n=t[A],r=n.validate;if(r&&!r(e[A],n))throw new Error("Invalid prop ".concat(A,": ").concat(e[A]))}}function i(e,t){var A=a({newProps:e,oldProps:t,propTypes:u(e),ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),n=function(e,t){if(null===t)return"oldProps is null, initial diff";var A=null,n=e.dataComparator,r=e._dataDiff;n?n(e.data,t.data)||(A="Data comparator detected a change"):e.data!==t.data&&(A="A new data container was supplied");A&&r&&(A=r(e.data,t.data)||A);return A}(e,t),r=!1;return n||(r=function(e,t){if(null===t)return"oldProps is null, initial diff";if("all"in e.updateTriggers){if(c(e,t,"all"))return{all:!0}}var A={},n=!1;for(var r in e.updateTriggers){if("all"!==r)c(e,t,r)&&(A[r]=!0,n=A)}return n}(e,t)),{dataChanged:n,propsChanged:A,updateTriggersChanged:r,extensionsChanged:g(e,t),transitionsChanged:o(e,t)}}function o(e,t){if(!e.transitions)return null;var A={},n=u(e);for(var r in e.transitions){var i=n[r],o=i&&i.type;("number"===o||"color"===o||"array"===o)&&s(e[r],t[r],i)&&(A[r]=!0)}return A}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.newProps,A=e.oldProps,n=e.ignoreProps,r=void 0===n?{}:n,i=e.propTypes,o=void 0===i?{}:i,a=e.triggerName,g=void 0===a?"props":a;if(A===t)return null;if("object"!==typeof t||null===t)return"".concat(g," changed shallowly");if("object"!==typeof A||null===A)return"".concat(g," changed shallowly");for(var c=0,u=Object.keys(t);c<u.length;c++){var l=u[c];if(!(l in r)){if(!(l in A))return"".concat(g,".").concat(l," added");var I=s(t[l],A[l],o[l]);if(I)return"".concat(g,".").concat(l," ").concat(I)}}for(var C=0,h=Object.keys(A);C<h.length;C++){var f=h[C];if(!(f in r)){if(!(f in t))return"".concat(g,".").concat(f," dropped");if(!Object.hasOwnProperty.call(t,f)){var d=s(t[f],A[f],o[f]);if(d)return"".concat(g,".").concat(f," ").concat(d)}}}return null}function s(e,t,A){var n=A&&A.equal;return n&&!n(e,t,A)?"changed deeply":n||!(n=e&&t&&e.equals)||n.call(e,t)?n||t===e?null:"changed shallowly":"changed deeply"}function g(e,t){if(null===t)return"oldProps is null, initial diff";var A=t.extensions,n=e.extensions;if(n===A)return!1;if(n.length!==A.length)return!0;for(var r=0;r<n.length;r++)if(!n[r].equals(A[r]))return!0;return!1}function c(e,t,A){var n=e.updateTriggers[A];n=void 0===n||null===n?{}:n;var r=t.updateTriggers[A];return a({oldProps:r=void 0===r||null===r?{}:r,newProps:n,triggerName:A})}function u(e){var t=e[n],A=t&&t.constructor;return A?A._propTypes:{}}},function(e,t,A){"use strict";(function(e){function n(){var t;if("undefined"!==typeof window&&window.performance)t=window.performance.now();else if("undefined"!==typeof e&&e.hrtime){var A=e.hrtime();t=1e3*A[0]+A[1]/1e6}else t=Date.now();return t}A.d(t,"a",(function(){return n}))}).call(this,A(90))},function(e,t,A){"use strict";A.d(t,"a",(function(){return s})),A.d(t,"b",(function(){return c}));var n=A(7),r=A(1),i=A(4),o=A(162),a=function(){},s={BREAK:1,SNAP_TO_END:2,IGNORE:3},g={transitionEasing:function(e){return e},transitionInterruption:s.BREAK,onTransitionStart:a,onTransitionInterrupt:a,onTransitionEnd:a},c=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e),this.ControllerState=t,this.props=Object(n.a)({},g,{},A),this.propsInTransition=null,this.transition=new o.a(A.timeline),this.onViewStateChange=A.onViewStateChange||a,this.onStateChange=A.onStateChange||a,this._onTransitionUpdate=this._onTransitionUpdate.bind(this)}return Object(i.a)(e,[{key:"finalize",value:function(){this.transition.cancel()}},{key:"getViewportInTransition",value:function(){return this.propsInTransition}},{key:"processViewStateChange",value:function(e){var t=!1,A=this.props;if(e=Object(n.a)({},g,{},e),this.props=e,this._shouldIgnoreViewportChange(A,e))return t;if(this._isTransitionEnabled(e)){var r=this.transition.settings,i=r.interruption,o=r.endProps,a=Object(n.a)({},A,{},i===s.SNAP_TO_END?o:this.propsInTransition||A);this._triggerTransition(a,e),t=!0}else this.transition.cancel();return t}},{key:"updateTransition",value:function(){this.transition.update()}},{key:"_isTransitionEnabled",value:function(e){var t=e.transitionDuration,A=e.transitionInterpolator;return(t>0||"auto"===t)&&Boolean(A)}},{key:"_isUpdateDueToCurrentTransition",value:function(e){return!!this.transition.inProgress&&this.transition.settings.interpolator.arePropsEqual(e,this.propsInTransition)}},{key:"_shouldIgnoreViewportChange",value:function(e,t){return this.transition.inProgress?this.transition.settings.interruption===s.IGNORE||this._isUpdateDueToCurrentTransition(t):!this._isTransitionEnabled(t)||t.transitionInterpolator.arePropsEqual(e,t)}},{key:"_triggerTransition",value:function(e,t){var A=new this.ControllerState(e),n=new this.ControllerState(t).shortestPathFrom(A),r=t.transitionInterpolator,i=r.getDuration?r.getDuration(e,t):t.transitionDuration;if(0!==i){var o=t.transitionInterpolator.initializeProps(e,n);this.propsInTransition={},this.duration=i,this.transition.start({duration:i,easing:t.transitionEasing,interpolator:t.transitionInterpolator,interruption:t.transitionInterruption,startProps:o.start,endProps:o.end,onStart:t.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(t.onTransitionInterrupt),onEnd:this._onTransitionEnd(t.onTransitionEnd)}),this.onStateChange({inTransition:!0}),this.updateTransition()}}},{key:"_onTransitionEnd",value:function(e){var t=this;return function(A){t.propsInTransition=null,t.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),e(A)}}},{key:"_onTransitionUpdate",value:function(e){var t=e.time,A=e.settings,r=A.interpolator,i=A.startProps,o=A.endProps,a=A.duration,s=(0,A.easing)(t/a),g=r.interpolateProps(i,o,s);this.propsInTransition=new this.ControllerState(Object(n.a)({},this.props,{},g)).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})}}]),e}()},function(e,t,A){"use strict";A.d(t,"a",(function(){return h}));var n=A(7),r=A(6),i=A(1),o=A(4),a=A(16),s=A(17),g=A(9),c=A(10),u=A(265),l=A(23),I=["longitude","latitude","zoom","bearing","pitch"],C=["longitude","latitude","zoom"],h=function(e){Object(g.a)(A,e);var t=Object(c.a)(A);function A(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(i.a)(this,A);var r=Array.isArray(n)?n:n.transitionProps;return(e=t.call(this,r||{compare:I,extract:I,required:C})).opts=n,e}return Object(o.a)(A,[{key:"initializeProps",value:function(e,t){var n=Object(s.a)(Object(a.a)(A.prototype),"initializeProps",this).call(this,e,t),r=this.opts,i=r.makeViewport,o=r.around;if(i&&o){var g=i(e),c=i(t),u=g.unproject(o);n.start.around=o,Object.assign(n.end,{around:c.project(u),aroundPosition:u,width:t.width,height:t.height})}return n}},{key:"interpolateProps",value:function(e,t,A){var i,o={},a=Object(r.a)(this._propsToExtract);try{for(a.s();!(i=a.n()).done;){var s=i.value;o[s]=Object(l.lerp)(e[s]||0,t[s]||0,A)}}catch(c){a.e(c)}finally{a.f()}if(t.aroundPosition){var g=this.opts.makeViewport(Object(n.a)({},t,{},o));Object.assign(o,g.panByPosition(t.aroundPosition,Object(l.lerp)(e.around,t.around,A)))}return o}}]),A}(u.a)},function(e,t,A){"use strict";var n=A(98),r=A.n(n),i=A(416),o=A.n(i),a=A(93),s=A.n(a),g=A(278),c=A.n(g),u=A(279),l=A.n(u),I=A(280),C=A.n(I),h=A(281),f=A.n(h),d=A(0),B=A.n(d),p=A(13),E=A.n(p),Q=A(61),y=A.n(Q),v=A(100),m=A(282),b=A(183),w=A.n(b),S=!("undefined"===typeof window||!window.document||!window.document.createElement);function F(e,t){var A={};return A[e.toLowerCase()]=t.toLowerCase(),A["Webkit"+e]="webkit"+t,A["Moz"+e]="moz"+t,A["ms"+e]="MS"+t,A["O"+e]="o"+t.toLowerCase(),A}var R=function(e,t){var A={animationend:F("Animation","AnimationEnd"),transitionend:F("Transition","TransitionEnd")};return e&&("AnimationEvent"in t||delete A.animationend.animation,"TransitionEvent"in t||delete A.transitionend.transition),A}(S,"undefined"!==typeof window?window:{}),D={};S&&(D=document.createElement("div").style);var G={};function k(e){if(G[e])return G[e];var t=R[e];if(t)for(var A=Object.keys(t),n=A.length,r=0;r<n;r+=1){var i=A[r];if(Object.prototype.hasOwnProperty.call(t,i)&&i in D)return G[e]=t[i],G[e]}return""}var x=k("animationend"),N=k("transitionend"),U=!(!x||!N);function _(e,t){return e?"object"===typeof e?e[t.replace(/-\w/g,(function(e){return e[1].toUpperCase()}))]:e+"-"+t:null}var M={eventProps:E.a.object,visible:E.a.bool,children:E.a.func,motionName:E.a.oneOfType([E.a.string,E.a.object]),motionAppear:E.a.bool,motionEnter:E.a.bool,motionLeave:E.a.bool,motionLeaveImmediately:E.a.bool,removeOnLeave:E.a.bool,leavedClassName:E.a.string,onAppearStart:E.a.func,onAppearActive:E.a.func,onAppearEnd:E.a.func,onEnterStart:E.a.func,onEnterActive:E.a.func,onEnterEnd:E.a.func,onLeaveStart:E.a.func,onLeaveActive:E.a.func,onLeaveEnd:E.a.func};var O=function(e){var t=e,A=!!B.a.forwardRef;function n(e){return!(!e.motionName||!t)}"object"===typeof e&&(t=e.transitionSupport,A="forwardRef"in e?e.forwardRef:A);var i=function(e){function t(){c()(this,t);var e=C()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.onDomUpdate=function(){var t=e.state,A=t.status,r=t.newStatus,i=e.props,o=i.onAppearStart,a=i.onEnterStart,s=i.onLeaveStart,g=i.onAppearActive,c=i.onEnterActive,u=i.onLeaveActive,l=i.motionAppear,I=i.motionEnter,C=i.motionLeave;if(n(e.props)){var h=e.getElement();e.$cacheEle!==h&&(e.removeEventListener(e.$cacheEle),e.addEventListener(h),e.$cacheEle=h),r&&"appear"===A&&l?e.updateStatus(o,null,null,(function(){e.updateActiveStatus(g,"appear")})):r&&"enter"===A&&I?e.updateStatus(a,null,null,(function(){e.updateActiveStatus(c,"enter")})):r&&"leave"===A&&C&&e.updateStatus(s,null,null,(function(){e.updateActiveStatus(u,"leave")}))}},e.onMotionEnd=function(t){var A=e.state,n=A.status,r=A.statusActive,i=e.props,o=i.onAppearEnd,a=i.onEnterEnd,s=i.onLeaveEnd;"appear"===n&&r?e.updateStatus(o,{status:"none"},t):"enter"===n&&r?e.updateStatus(a,{status:"none"},t):"leave"===n&&r&&e.updateStatus(s,{status:"none"},t)},e.setNodeRef=function(t){var A=e.props.internalRef;e.node=t,"function"===typeof A?A(t):A&&"current"in A&&(A.current=t)},e.getElement=function(){return Object(m.a)(e.node||e)},e.addEventListener=function(t){t&&(t.addEventListener(N,e.onMotionEnd),t.addEventListener(x,e.onMotionEnd))},e.removeEventListener=function(t){t&&(t.removeEventListener(N,e.onMotionEnd),t.removeEventListener(x,e.onMotionEnd))},e.updateStatus=function(t,A,n,r){var i=t?t(e.getElement(),n):null;if(!1!==i&&!e._destroyed){var o=void 0;r&&(o=function(){e.nextFrame(r)}),e.setState(s()({statusStyle:"object"===typeof i?i:null,newStatus:!1},A),o)}},e.updateActiveStatus=function(t,A){e.nextFrame((function(){e.state.status===A&&e.updateStatus(t,{statusActive:!0})}))},e.nextFrame=function(t){e.cancelNextFrame(),e.raf=w()(t)},e.cancelNextFrame=function(){e.raf&&(w.a.cancel(e.raf),e.raf=null)},e.state={status:"none",statusActive:!1,newStatus:!1,statusStyle:null},e.$cacheEle=null,e.node=null,e.raf=null,e}return f()(t,e),l()(t,[{key:"componentDidMount",value:function(){this.onDomUpdate()}},{key:"componentDidUpdate",value:function(){this.onDomUpdate()}},{key:"componentWillUnmount",value:function(){this._destroyed=!0,this.removeEventListener(this.$cacheEle),this.cancelNextFrame()}},{key:"render",value:function(){var e,t=this.state,A=t.status,i=t.statusActive,o=t.statusStyle,a=this.props,g=a.children,c=a.motionName,u=a.visible,l=a.removeOnLeave,I=a.leavedClassName,C=a.eventProps;return g?"none"!==A&&n(this.props)?g(s()({},C,{className:y()((e={},r()(e,_(c,A),"none"!==A),r()(e,_(c,A+"-active"),"none"!==A&&i),r()(e,c,"string"===typeof c),e)),style:o}),this.setNodeRef):u?g(s()({},C),this.setNodeRef):l?null:g(s()({},C,{className:I}),this.setNodeRef):null}}],[{key:"getDerivedStateFromProps",value:function(e,t){var A=t.prevProps,r=t.status;if(!n(e))return{};var i=e.visible,o=e.motionAppear,a=e.motionEnter,s=e.motionLeave,g=e.motionLeaveImmediately,c={prevProps:e};return("appear"===r&&!o||"enter"===r&&!a||"leave"===r&&!s)&&(c.status="none",c.statusActive=!1,c.newStatus=!1),!A&&i&&o&&(c.status="appear",c.statusActive=!1,c.newStatus=!0),A&&!A.visible&&i&&a&&(c.status="enter",c.statusActive=!1,c.newStatus=!0),(A&&A.visible&&!i&&s||!A&&g&&!i&&s)&&(c.status="leave",c.statusActive=!1,c.newStatus=!0),c}}]),t}(B.a.Component);return i.propTypes=s()({},M,{internalRef:E.a.oneOfType([E.a.object,E.a.func])}),i.defaultProps={visible:!0,motionEnter:!0,motionAppear:!0,motionLeave:!0,removeOnLeave:!0},Object(v.a)(i),A?B.a.forwardRef((function(e,t){return B.a.createElement(i,s()({internalRef:t},e))})):i}(U),L=A(229),T=A(328),Z=A(52),H=function(e){function t(e){c()(this,t);var A=C()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return Y.call(A),A.state={dragNodeHighlight:!1},A}return f()(t,e),l()(t,[{key:"getChildContext",value:function(){return s()({},this.context,{rcTreeNode:{}})}},{key:"componentDidMount",value:function(){var e=this.props.eventKey,t=this.context.rcTree.registerTreeNode;this.syncLoadData(this.props),t(e,this)}},{key:"componentDidUpdate",value:function(){this.syncLoadData(this.props)}},{key:"componentWillUnmount",value:function(){var e=this.props.eventKey;(0,this.context.rcTree.registerTreeNode)(e,null)}},{key:"isSelectable",value:function(){var e=this.props.selectable,t=this.context.rcTree.selectable;return"boolean"===typeof e?e:t}},{key:"render",value:function(){var e,t=this.props.loading,A=this.props,n=A.className,i=A.style,a=A.dragOver,g=A.dragOverGapTop,c=A.dragOverGapBottom,u=A.isLeaf,l=A.expanded,I=A.selected,C=A.checked,h=A.halfChecked,f=o()(A,["className","style","dragOver","dragOverGapTop","dragOverGapBottom","isLeaf","expanded","selected","checked","halfChecked"]),d=this.context.rcTree,p=d.prefixCls,E=d.filterTreeNode,Q=d.draggable,v=this.isDisabled(),m=Object(Z.i)(f);return B.a.createElement("li",s()({className:y()(n,(e={},r()(e,p+"-treenode-disabled",v),r()(e,p+"-treenode-switcher-"+(l?"open":"close"),!u),r()(e,p+"-treenode-checkbox-checked",C),r()(e,p+"-treenode-checkbox-indeterminate",h),r()(e,p+"-treenode-selected",I),r()(e,p+"-treenode-loading",t),r()(e,"drag-over",!v&&a),r()(e,"drag-over-gap-top",!v&&g),r()(e,"drag-over-gap-bottom",!v&&c),r()(e,"filter-node",E&&E(this)),e)),style:i,role:"treeitem",onDragEnter:Q?this.onDragEnter:void 0,onDragOver:Q?this.onDragOver:void 0,onDragLeave:Q?this.onDragLeave:void 0,onDrop:Q?this.onDrop:void 0,onDragEnd:Q?this.onDragEnd:void 0},m),this.renderSwitcher(),this.renderCheckbox(),this.renderSelector(),this.renderChildren())}}]),t}(B.a.Component);H.propTypes={eventKey:E.a.string,prefixCls:E.a.string,className:E.a.string,style:E.a.object,root:E.a.object,onSelect:E.a.func,expanded:E.a.bool,selected:E.a.bool,checked:E.a.bool,loaded:E.a.bool,loading:E.a.bool,halfChecked:E.a.bool,children:E.a.node,title:E.a.node,pos:E.a.string,dragOver:E.a.bool,dragOverGapTop:E.a.bool,dragOverGapBottom:E.a.bool,isLeaf:E.a.bool,checkable:E.a.bool,selectable:E.a.bool,disabled:E.a.bool,disableCheckbox:E.a.bool,icon:E.a.oneOfType([E.a.node,E.a.func]),switcherIcon:E.a.oneOfType([E.a.node,E.a.func])},H.contextTypes=T.a,H.childContextTypes=T.a,H.defaultProps={title:"---"};var Y=function(){var e=this;this.onSelectorClick=function(t){(0,e.context.rcTree.onNodeClick)(t,e),e.isSelectable()?e.onSelect(t):e.onCheck(t)},this.onSelectorDoubleClick=function(t){(0,e.context.rcTree.onNodeDoubleClick)(t,e)},this.onSelect=function(t){if(!e.isDisabled()){var A=e.context.rcTree.onNodeSelect;t.preventDefault(),A(t,e)}},this.onCheck=function(t){if(!e.isDisabled()){var A=e.props,n=A.disableCheckbox,r=A.checked,i=e.context.rcTree.onNodeCheck;if(e.isCheckable()&&!n)t.preventDefault(),i(t,e,!r)}},this.onMouseEnter=function(t){(0,e.context.rcTree.onNodeMouseEnter)(t,e)},this.onMouseLeave=function(t){(0,e.context.rcTree.onNodeMouseLeave)(t,e)},this.onContextMenu=function(t){(0,e.context.rcTree.onNodeContextMenu)(t,e)},this.onDragStart=function(t){var A=e.context.rcTree.onNodeDragStart;t.stopPropagation(),e.setState({dragNodeHighlight:!0}),A(t,e);try{t.dataTransfer.setData("text/plain","")}catch(n){}},this.onDragEnter=function(t){var A=e.context.rcTree.onNodeDragEnter;t.preventDefault(),t.stopPropagation(),A(t,e)},this.onDragOver=function(t){var A=e.context.rcTree.onNodeDragOver;t.preventDefault(),t.stopPropagation(),A(t,e)},this.onDragLeave=function(t){var A=e.context.rcTree.onNodeDragLeave;t.stopPropagation(),A(t,e)},this.onDragEnd=function(t){var A=e.context.rcTree.onNodeDragEnd;t.stopPropagation(),e.setState({dragNodeHighlight:!1}),A(t,e)},this.onDrop=function(t){var A=e.context.rcTree.onNodeDrop;t.preventDefault(),t.stopPropagation(),e.setState({dragNodeHighlight:!1}),A(t,e)},this.onExpand=function(t){(0,e.context.rcTree.onNodeExpand)(t,e)},this.setSelectHandle=function(t){e.selectHandle=t},this.getNodeChildren=function(){var t=e.props.children,A=Object(L.a)(t).filter((function(e){return e})),n=Object(Z.k)(A);return A.length!==n.length&&Object(Z.p)(),n},this.getNodeState=function(){var t=e.props.expanded;return e.isLeaf()?null:t?"open":"close"},this.isLeaf=function(){var t=e.props,A=t.isLeaf,n=t.loaded,r=e.context.rcTree.loadData,i=0!==e.getNodeChildren().length;return!1!==A&&(A||!r&&!i||r&&n&&!i)},this.isDisabled=function(){var t=e.props.disabled,A=e.context.rcTree.disabled;return!1!==t&&!(!A&&!t)},this.isCheckable=function(){var t=e.props.checkable,A=e.context.rcTree.checkable;return!(!A||!1===t)&&A},this.syncLoadData=function(t){var A=t.expanded,n=t.loading,r=t.loaded,i=e.context.rcTree,o=i.loadData,a=i.onNodeLoad;n||o&&A&&!e.isLeaf()&&(0!==e.getNodeChildren().length||r||a(e))},this.renderSwitcher=function(){var t=e.props,A=t.expanded,n=t.switcherIcon,r=e.context.rcTree,i=r.prefixCls,o=r.switcherIcon,a=n||o;if(e.isLeaf())return B.a.createElement("span",{className:y()(i+"-switcher",i+"-switcher-noop")},"function"===typeof a?a(s()({},e.props,{isLeaf:!0})):a);var g=y()(i+"-switcher",i+"-switcher_"+(A?"open":"close"));return B.a.createElement("span",{onClick:e.onExpand,className:g},"function"===typeof a?a(s()({},e.props,{isLeaf:!1})):a)},this.renderCheckbox=function(){var t=e.props,A=t.checked,n=t.halfChecked,r=t.disableCheckbox,i=e.context.rcTree.prefixCls,o=e.isDisabled(),a=e.isCheckable();if(!a)return null;var s="boolean"!==typeof a?a:null;return B.a.createElement("span",{className:y()(i+"-checkbox",A&&i+"-checkbox-checked",!A&&n&&i+"-checkbox-indeterminate",(o||r)&&i+"-checkbox-disabled"),onClick:e.onCheck},s)},this.renderIcon=function(){var t=e.props.loading,A=e.context.rcTree.prefixCls;return B.a.createElement("span",{className:y()(A+"-iconEle",A+"-icon__"+(e.getNodeState()||"docu"),t&&A+"-icon_loading")})},this.renderSelector=function(){var t=e.state.dragNodeHighlight,A=e.props,n=A.title,r=A.selected,i=A.icon,o=A.loading,a=e.context.rcTree,g=a.prefixCls,c=a.showIcon,u=a.icon,l=a.draggable,I=a.loadData,C=e.isDisabled(),h=g+"-node-content-wrapper",f=void 0;if(c){var d=i||u;f=d?B.a.createElement("span",{className:y()(g+"-iconEle",g+"-icon__customize")},"function"===typeof d?B.a.createElement(d,s()({},e.props)):d):e.renderIcon()}else I&&o&&(f=e.renderIcon());var p=B.a.createElement("span",{className:g+"-title"},n);return B.a.createElement("span",{ref:e.setSelectHandle,title:"string"===typeof n?n:"",className:y()(""+h,h+"-"+(e.getNodeState()||"normal"),!C&&(r||t)&&g+"-node-selected",!C&&l&&"draggable"),draggable:!C&&l||void 0,"aria-grabbed":!C&&l||void 0,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onContextMenu:e.onContextMenu,onClick:e.onSelectorClick,onDoubleClick:e.onSelectorDoubleClick,onDragStart:l?e.onDragStart:void 0},f,p)},this.renderChildren=function(){var t=e.props,A=t.expanded,n=t.pos,r=e.context.rcTree,i=r.prefixCls,o=r.motion,a=r.renderTreeNode,g=e.getNodeChildren();return 0===g.length?null:B.a.createElement(O,s()({visible:A},o),(function(e){var t=e.style,r=e.className;return B.a.createElement("ul",{className:y()(r,i+"-child-tree",A&&i+"-child-tree-open"),style:t,"data-expanded":A,role:"group"},Object(Z.m)(g,(function(e,t){return a(e,t,n)})))}))}};H.isTreeNode=1,Object(v.a)(H);t.a=H},function(e,t,A){"use strict";var n=A(6),r=A(1),i=A(4),o=A(9),a=A(10),s=A(528),g=A(232),c=A(383),u=A(222),l=A(198),I=A(23),C=A(7),h=A(2),f=A(16),d=A(17),B=A(199),p=A(238),E=A(161),Q=A(18),y=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e,n){var i,o,a;return Object(r.a)(this,A),(a=t.call(this,e,n)).shadowMap=new g.a(e,{width:1,height:1,parameters:(i={},Object(h.a)(i,10241,9729),Object(h.a)(i,10240,9729),Object(h.a)(i,10242,33071),Object(h.a)(i,10243,33071),i)}),a.depthBuffer=new p.a(e,{format:33189,width:1,height:1}),a.fbo=new E.a(e,{id:"shadowmap",width:1,height:1,attachments:(o={},Object(h.a)(o,36064,a.shadowMap),Object(h.a)(o,36096,a.depthBuffer),o)}),a}return Object(i.a)(A,[{key:"render",value:function(e){var t=this,n=this.fbo;Object(Q.o)(this.gl,{depthRange:[0,1],depthTest:!0,blend:!1,clearColor:[1,1,1,1]},(function(){var r=e.viewports[0],i=Object(Q.e)(t.gl),o=r.width*i,a=r.height*i;o===n.width&&a===n.height||n.resize({width:o,height:a}),Object(d.a)(Object(f.a)(A.prototype),"render",t).call(t,Object(C.a)({},e,{target:n,pass:"shadow"}))}))}},{key:"shouldDrawLayer",value:function(e){return!1!==e.props.shadowEnabled}},{key:"getModuleParameters",value:function(){return{drawToShadowMap:!0}}},{key:"delete",value:function(){this.fbo&&(this.fbo.delete(),this.fbo=null),this.shadowMap&&(this.shadowMap.delete(),this.shadowMap=null),this.depthBuffer&&(this.depthBuffer.delete(),this.depthBuffer=null)}}]),A}(B.a),v=A(276);A.d(t,"a",(function(){return S}));var m={color:[255,255,255],intensity:1},b=[{color:[255,255,255],intensity:1,direction:[-1,3,-1]},{color:[255,255,255],intensity:.9,direction:[1,-8,-2.5]}],w=[0,0,0,200/255],S=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){var n;for(var i in Object(r.a)(this,A),(n=t.call(this,e)).ambientLight=null,n.directionalLights=[],n.pointLights=[],n.shadowColor=w,n.shadowPasses=[],n.shadowMaps=[],n.dummyShadowMap=null,n.shadow=!1,n.programManager=null,e){var o=e[i];switch(o.type){case"ambient":n.ambientLight=o;break;case"directional":n.directionalLights.push(o);break;case"point":n.pointLights.push(o)}}return n._applyDefaultLights(),n.shadow=n.directionalLights.some((function(e){return e.shadow})),n}return Object(i.a)(A,[{key:"preRender",value:function(e,t){var A=t.layers,n=t.layerFilter,r=t.viewports,i=t.onViewportActive,o=t.views;if(this.shadow){this.shadowMatrices=this._createLightMatrix(),0===this.shadowPasses.length&&this._createShadowPasses(e),this.programManager||(this.programManager=s.a.getDefaultProgramManager(e),v.a&&this.programManager.addDefaultModule(v.a)),this.dummyShadowMap||(this.dummyShadowMap=new g.a(e,{width:1,height:1}));for(var a=0;a<this.shadowPasses.length;a++){this.shadowPasses[a].render({layers:A,layerFilter:n,viewports:r,onViewportActive:i,views:o,moduleParameters:{shadowLightId:a,dummyShadowMap:this.dummyShadowMap,shadowMatrices:this.shadowMatrices}})}}}},{key:"getModuleParameters",value:function(e){var t=this.shadow?{shadowMaps:this.shadowMaps,dummyShadowMap:this.dummyShadowMap,shadowColor:this.shadowColor,shadowMatrices:this.shadowMatrices}:{};return t.lightSources={ambientLight:this.ambientLight,directionalLights:this.directionalLights.map((function(t){return t.getProjectedLight({layer:e})})),pointLights:this.pointLights.map((function(t){return t.getProjectedLight({layer:e})}))},t}},{key:"cleanup",value:function(){var e,t=Object(n.a)(this.shadowPasses);try{for(t.s();!(e=t.n()).done;){e.value.delete()}}catch(A){t.e(A)}finally{t.f()}this.shadowPasses.length=0,this.shadowMaps.length=0,this.dummyShadowMap&&(this.dummyShadowMap.delete(),this.dummyShadowMap=null),this.shadow&&this.programManager&&(this.programManager.removeDefaultModule(v.a),this.programManager=null)}},{key:"_createLightMatrix",value:function(){var e,t=[],A=Object(n.a)(this.directionalLights);try{for(A.s();!(e=A.n()).done;){var r=e.value,i=(new I.Matrix4).lookAt({eye:new I.Vector3(r.direction).negate()});t.push(i)}}catch(o){A.e(o)}finally{A.f()}return t}},{key:"_createShadowPasses",value:function(e){for(var t=0;t<this.directionalLights.length;t++){var A=new y(e);this.shadowPasses[t]=A,this.shadowMaps[t]=A.shadowMap}}},{key:"_applyDefaultLights",value:function(){var e=this.ambientLight,t=this.pointLights,A=this.directionalLights;e||0!==t.length||0!==A.length||(this.ambientLight=new c.a(m),this.directionalLights.push(new u.a(b[0]),new u.a(b[1])))}}]),A}(l.a)},function(e,t,A){"use strict";var n=A(1),r=A(4),i=A(9),o=A(10),a=A(206),s=A(33),g=A(97),c=A(30),u=A(126),l=A(67),I=A(94);function C(){var e=new c.a(4);return c.a!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function h(e,t,A){A*=.5;var n=Math.sin(A);return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=Math.cos(A),e}function f(e,t,A){var n=t[0],r=t[1],i=t[2],o=t[3],a=A[0],s=A[1],g=A[2],c=A[3];return e[0]=n*c+o*a+r*g-i*s,e[1]=r*c+o*s+i*a-n*g,e[2]=i*c+o*g+n*s-r*a,e[3]=o*c-n*a-r*s-i*g,e}function d(e,t,A,n){var r,i,o,a,s,g=t[0],u=t[1],l=t[2],I=t[3],C=A[0],h=A[1],f=A[2],d=A[3];return(i=g*C+u*h+l*f+I*d)<0&&(i=-i,C=-C,h=-h,f=-f,d=-d),1-i>c.b?(r=Math.acos(i),o=Math.sin(r),a=Math.sin((1-n)*r)/o,s=Math.sin(n*r)/o):(a=1-n,s=n),e[0]=a*g+s*C,e[1]=a*u+s*h,e[2]=a*l+s*f,e[3]=a*I+s*d,e}function B(e,t){var A,n=t[0]+t[4]+t[8];if(n>0)A=Math.sqrt(n+1),e[3]=.5*A,A=.5/A,e[0]=(t[5]-t[7])*A,e[1]=(t[6]-t[2])*A,e[2]=(t[1]-t[3])*A;else{var r=0;t[4]>t[0]&&(r=1),t[8]>t[3*r+r]&&(r=2);var i=(r+1)%3,o=(r+2)%3;A=Math.sqrt(t[3*r+r]-t[3*i+i]-t[3*o+o]+1),e[r]=.5*A,A=.5/A,e[3]=(t[3*i+o]-t[3*o+i])*A,e[i]=(t[3*i+r]+t[3*r+i])*A,e[o]=(t[3*o+r]+t[3*r+o])*A}return e}I.b,I.g,I.c,I.l;var p=I.a,E=I.k,Q=I.d,y=I.i,v=I.h,m=I.m,b=I.j,w=(I.f,I.e,function(){var e=l.b(),t=l.e(1,0,0),A=l.e(0,1,0);return function(n,r,i){var o=l.d(r,i);return o<-.999999?(l.c(e,t,r),l.f(e)<1e-6&&l.c(e,A,r),l.h(e,e),h(n,e,Math.PI),n):o>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(l.c(e,r,i),n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=1+o,b(n,n))}}());(function(){var e=C(),t=C()})(),function(){var e=u.a()}();A.d(t,"a",(function(){return F}));var S=[0,0,0,1],F=function(e){Object(i.a)(A,e);var t=Object(o.a)(A);function A(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return Object(n.a)(this,A),e=t.call(this,-0,-0,-0,-0),Array.isArray(r)&&1===arguments.length?e.copy(r):e.set(r,i,o,a),e}return Object(r.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}},{key:"set",value:function(e,t,A,n){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this.check()}},{key:"fromMatrix3",value:function(e){return B(this,e),this.check()}},{key:"identity",value:function(){var e;return(e=this)[0]=0,e[1]=0,e[2]=0,e[3]=1,this.check()}},{key:"fromAxisRotation",value:function(e,t){return h(this,e,t),this.check()}},{key:"setAxisAngle",value:function(e,t){return this.fromAxisRotation(e,t)}},{key:"len",value:function(){return v(this)}},{key:"lengthSquared",value:function(){return m(this)}},{key:"dot",value:function(e,t){if(void 0!==t)throw new Error("Quaternion.dot only takes one argument");return Q(this,e)}},{key:"rotationTo",value:function(e,t){return w(this,e,t),this.check()}},{key:"add",value:function(e,t){if(void 0!==t)throw new Error("Quaternion.add only takes one argument");return p(this,this,e),this.check()}},{key:"calculateW",value:function(){return function(e,t){var A=t[0],n=t[1],r=t[2];e[0]=A,e[1]=n,e[2]=r,e[3]=Math.sqrt(Math.abs(1-A*A-n*n-r*r))}(this,this),this.check()}},{key:"conjugate",value:function(){var e,t;return t=this,(e=this)[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],this.check()}},{key:"invert",value:function(){return function(e,t){var A=t[0],n=t[1],r=t[2],i=t[3],o=A*A+n*n+r*r+i*i,a=o?1/o:0;e[0]=-A*a,e[1]=-n*a,e[2]=-r*a,e[3]=i*a}(this,this),this.check()}},{key:"lerp",value:function(e,t,A){return y(this,e,t,A),this.check()}},{key:"multiplyRight",value:function(e,t){return Object(g.a)(!t),f(this,this,e),this.check()}},{key:"multiplyLeft",value:function(e,t){return Object(g.a)(!t),f(this,e,this),this.check()}},{key:"normalize",value:function(){var e=this.len(),t=e>0?1/e:0;return this[0]=this[0]*t,this[1]=this[1]*t,this[2]=this[2]*t,this[3]=this[3]*t,0===e&&(this[3]=1),this.check()}},{key:"rotateX",value:function(e){return function(e,t,A){A*=.5;var n=t[0],r=t[1],i=t[2],o=t[3],a=Math.sin(A),s=Math.cos(A);e[0]=n*s+o*a,e[1]=r*s+i*a,e[2]=i*s-r*a,e[3]=o*s-n*a}(this,this,e),this.check()}},{key:"rotateY",value:function(e){return function(e,t,A){A*=.5;var n=t[0],r=t[1],i=t[2],o=t[3],a=Math.sin(A),s=Math.cos(A);e[0]=n*s-i*a,e[1]=r*s+o*a,e[2]=i*s+n*a,e[3]=o*s-r*a}(this,this,e),this.check()}},{key:"rotateZ",value:function(e){return function(e,t,A){A*=.5;var n=t[0],r=t[1],i=t[2],o=t[3],a=Math.sin(A),s=Math.cos(A);e[0]=n*s+r*a,e[1]=r*s-n*a,e[2]=i*s+o*a,e[3]=o*s-i*a}(this,this,e),this.check()}},{key:"scale",value:function(e){return E(this,this,e),this.check()}},{key:"slerp",value:function(e,t,A){switch(arguments.length){case 1:var n=arguments[0],r=n.start;e=void 0===r?S:r,t=n.target,A=n.ratio;break;case 2:var i=Array.prototype.slice.call(arguments);t=i[0],A=i[1],e=this}return d(this,e,t,A),this.check()}},{key:"transformVector4",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return I.o(t,e,this),Object(s.b)(t,4)}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"setFromAxisAngle",value:function(e,t){return this.setAxisAngle(e,t)}},{key:"premultiply",value:function(e,t){return this.multiplyLeft(e,t)}},{key:"multiply",value:function(e,t){return this.multiplyRight(e,t)}},{key:"ELEMENTS",get:function(){return 4}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=Object(s.a)(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=Object(s.a)(e)}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=Object(s.a)(e)}},{key:"w",get:function(){return this[3]},set:function(e){this[3]=Object(s.a)(e)}}]),A}(a.a)},function(e,t,A){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(e){for(var t in e)return!1;return!0}function r(e,t){if(e===t)return!0;var A=Array.isArray(e)||ArrayBuffer.isView(e),n=Array.isArray(t)||ArrayBuffer.isView(t);if(A&&n&&e.length===t.length){for(var r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}return!1}A.d(t,"b",(function(){return n})),A.d(t,"a",(function(){return r}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(18);function r(e,t,A){var r=A.removedProps,i=void 0===r?{}:r,o=A.deprecatedProps,a=void 0===o?{}:o,s=A.replacedProps,g=void 0===s?{}:s;for(var c in i)if(c in t){var u=i[c]?"".concat(e,".").concat(i[c]):"N/A";n.k.removed("".concat(e,".").concat(c),u)()}for(var l in a)if(l in t){var I=a[l];n.k.deprecated("".concat(e,".").concat(l),"".concat(e,".").concat(I))()}var C=null;for(var h in g)if(h in t){var f=g[h];n.k.deprecated("".concat(e,".").concat(h),"".concat(e,".").concat(f))(),(C=C||Object.assign({},t))[f]=t[h],delete C[h]}return C||t}},function(e,t,A){"use strict";A.d(t,"a",(function(){return l})),A.d(t,"b",(function(){return I}));var n=A(7),r=A(8),i=A(36),o=A(274),a=A(263),s=A(56),g=A(29),c=A(42);function u(e,t){var A=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=t.projectPosition(e);if(A&&t instanceof a.a){var i=Object(r.a)(e,3),o=i[0],s=i[1],g=i[2],c=void 0===g?0:g,u=t.getDistanceScales([o,s]);n[2]=c*u.unitsPerMeter[2]}return n}function l(e,t){var A=t.viewport,n=t.modelMatrix,o=t.coordinateSystem,a=t.coordinateOrigin,g=t.offsetMode,l=Object(r.a)(e,3),I=l[0],C=l[1],h=l[2],f=void 0===h?0:h;if(n){var d=s.n([],[I,C,f,1],n),B=Object(r.a)(d,3);I=B[0],C=B[1],f=B[2]}switch(o){case i.a.LNGLAT:return u([I,C,f],A,g);case i.a.LNGLAT_OFFSETS:return u([I+a[0],C+a[1],f+(a[2]||0)],A,g);case i.a.METER_OFFSETS:return u(Object(c.b)(a,[I,C,f]),A,g);case i.a.CARTESIAN:default:return A.isGeospatial?[I+a[0],C+a[1],f+a[2]]:A.projectPosition([I,C,f])}}function I(e,t){var A=function(e){var t=Object(n.a)({},e),A=e.coordinateSystem,r=e.viewport,o=e.coordinateOrigin,a=e.fromCoordinateSystem,s=e.fromCoordinateOrigin;return A===i.a.DEFAULT&&(A=r.isGeospatial?i.a.LNGLAT:i.a.CARTESIAN),void 0===a&&(t.fromCoordinateSystem=A),void 0===s&&(t.fromCoordinateOrigin=o),t.coordinateSystem=A,t}(t),r=A.viewport,a=A.coordinateSystem,s=A.coordinateOrigin,c=A.modelMatrix,u=A.fromCoordinateSystem,I=A.fromCoordinateOrigin,C=Object(o.a)(r,a,s),h=C.geospatialOrigin,f=C.shaderCoordinateOrigin,d=C.offsetMode,B=l(e,{viewport:r,modelMatrix:c,coordinateSystem:u,coordinateOrigin:I,offsetMode:d});if(d){var p=r.projectPosition(h||f);g.n(B,B,p)}return B}},function(e,t,A){"use strict";(function(e,n){A.d(t,"a",(function(){return i})),A.d(t,"b",(function(){return o}));var r={self:"undefined"!==typeof self&&self,window:"undefined"!==typeof window&&window,global:"undefined"!==typeof e&&e,document:"undefined"!==typeof document&&document},i=r.global||r.self||r.window,o="object"!==typeof n||"[object process]"!==String(n)||n.browser,a="undefined"!==typeof n&&n.version&&/v([0-9]*)/.exec(n.version);a&&parseFloat(a[1])}).call(this,A(86),A(90))},function(e,t,A){"use strict";A.d(t,"b",(function(){return C})),A.d(t,"a",(function(){return h}));var n=A(8),r=A(6),i=A(668),o=A.n(i),a=A(89),s=a.a.CLOCKWISE,g=a.a.COUNTER_CLOCKWISE,c={isClosed:!0};function u(e,t,A,n){for(var r=0;r<t;r++)if(e[A+r]!==e[n-t+r])return!1;return!0}function l(e,t,A,n,r){for(var i=t,o=A.length,s=0;s<o;s++)for(var g=0;g<n;g++)e[i++]=A[s][g]||0;if(!function(e){var t=e[0],A=e[e.length-1];return t[0]===A[0]&&t[1]===A[1]&&t[2]===A[2]}(A))for(var u=0;u<n;u++)e[i++]=A[0][u]||0;return c.start=t,c.end=i,c.size=n,Object(a.h)(e,r,c),i}function I(e,t,A,n){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,i=arguments.length>5?arguments[5]:void 0,o=arguments.length>6?arguments[6]:void 0,s=(i=i||A.length)-r;if(s<=0)return t;for(var g=t,l=0;l<s;l++)e[g++]=A[r+l];if(!u(A,n,r,i))for(var I=0;I<n;I++)e[g++]=A[r+I];return c.start=t,c.end=g,c.size=n,Object(a.h)(e,o,c),g}function C(e,t){!function(e){if(e=e&&e.positions||e,!Array.isArray(e)&&!ArrayBuffer.isView(e))throw new Error("invalid polygon")}(e);var A=[],i=[];if(e.positions){var o=e,a=o.positions,c=o.holeIndices;if(c){for(var u=0,C=0;C<=c.length;C++)u=I(A,u,a,t,c[C-1],c[C],0===C?s:g),i.push(u);return i.pop(),{positions:A,holeIndices:i}}e=a}if(Number.isFinite(e[0]))return I(A,0,e,t,0,A.length,s),A;if(!function(e){return e.length>=1&&e[0].length>=2&&Number.isFinite(e[0][0])}(e)){var h,f=0,d=Object(r.a)(e.entries());try{for(d.s();!(h=d.n()).done;){var B=Object(n.a)(h.value,2),p=B[0];f=l(A,f,B[1],t,0===p?s:g),i.push(f)}}catch(E){d.e(E)}finally{d.f()}return i.pop(),{positions:A,holeIndices:i}}return l(A,0,e,t,s),A}function h(e,t,A){var n=null;e.holeIndices&&(n=e.holeIndices.map((function(e){return e/t})));var r=e.positions||e;if(A){var i=r.length;r=r.slice();for(var a=[],s=0;s<i;s+=t){a[0]=r[s],a[1]=r[s+1];var g=A(a);r[s]=g[0],r[s+1]=g[1]}}return o()(r,n,t)}},function(e,t){e.exports=function(e){return null==e}},function(e,t,A){"use strict";A.d(t,"b",(function(){return a})),A.d(t,"a",(function(){return s}));var n=A(93),r=A.n(n),i=A(13),o=A.n(i),a={rcTree:o.a.shape({root:o.a.object,prefixCls:o.a.string,selectable:o.a.bool,showIcon:o.a.bool,icon:o.a.oneOfType([o.a.node,o.a.func]),draggable:o.a.bool,checkable:o.a.oneOfType([o.a.bool,o.a.node]),checkStrictly:o.a.bool,disabled:o.a.bool,openTransitionName:o.a.string,openAnimation:o.a.oneOfType([o.a.string,o.a.object]),loadData:o.a.func,filterTreeNode:o.a.func,renderTreeNode:o.a.func,isKeyChecked:o.a.func,onNodeClick:o.a.func,onNodeDoubleClick:o.a.func,onNodeExpand:o.a.func,onNodeSelect:o.a.func,onNodeCheck:o.a.func,onNodeMouseEnter:o.a.func,onNodeMouseLeave:o.a.func,onNodeContextMenu:o.a.func,onNodeDragStart:o.a.func,onNodeDragEnter:o.a.func,onNodeDragOver:o.a.func,onNodeDragLeave:o.a.func,onNodeDragEnd:o.a.func,onNodeDrop:o.a.func})},s=r()({},a,{rcTreeNode:o.a.shape({onUpCheckConduct:o.a.func})})},function(e,t,A){"use strict";var n=A(6),r="#if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))\n\nstruct AmbientLight {\n vec3 color;\n};\n\nstruct PointLight {\n vec3 color;\n vec3 position;\n vec3 attenuation;\n};\n\nstruct DirectionalLight {\n vec3 color;\n vec3 direction;\n};\n\nuniform AmbientLight lighting_uAmbientLight;\nuniform PointLight lighting_uPointLight[MAX_LIGHTS];\nuniform DirectionalLight lighting_uDirectionalLight[MAX_LIGHTS];\nuniform int lighting_uPointLightCount;\nuniform int lighting_uDirectionalLightCount;\n\nuniform bool lighting_uEnabled;\n\nfloat getPointLightAttenuation(PointLight pointLight, float distance) {\n return pointLight.attenuation.x\n + pointLight.attenuation.y * distance\n + pointLight.attenuation.z * distance * distance;\n}\n\n#endif\n";A.d(t,"a",(function(){return s}));var i={lightSources:{}};function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.color,A=void 0===t?[0,0,0]:t,n=e.intensity,r=void 0===n?1:n;return A.map((function(e){return e*r/255}))}function a(e){var t=e.ambientLight,A=e.pointLights,n=void 0===A?[]:A,r=e.directionalLights,i=void 0===r?[]:r,a={};return a["lighting_uAmbientLight.color"]=t?o(t):[0,0,0],n.forEach((function(e,t){a["lighting_uPointLight[".concat(t,"].color")]=o(e),a["lighting_uPointLight[".concat(t,"].position")]=e.position,a["lighting_uPointLight[".concat(t,"].attenuation")]=e.attenuation||[1,0,0]})),a.lighting_uPointLightCount=n.length,i.forEach((function(e,t){a["lighting_uDirectionalLight[".concat(t,"].color")]=o(e),a["lighting_uDirectionalLight[".concat(t,"].direction")]=e.direction})),a.lighting_uDirectionalLightCount=i.length,a}var s={name:"lights",vs:r,fs:r,getUniforms:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;if("lightSources"in t){var A=t.lightSources||{},r=A.ambientLight,o=A.pointLights,s=A.directionalLights,g=r||o&&o.length>0||s&&s.length>0;return g?Object.assign({},a({ambientLight:r,pointLights:o,directionalLights:s}),{lighting_uEnabled:!0}):{lighting_uEnabled:!1}}if("lights"in t){var c,u={pointLights:[],directionalLights:[]},l=Object(n.a)(t.lights||[]);try{for(l.s();!(c=l.n()).done;){var I=c.value;switch(I.type){case"ambient":u.ambientLight=I;break;case"directional":u.directionalLights.push(I);break;case"point":u.pointLights.push(I)}}}catch(C){l.e(C)}finally{l.f()}return e({lightSources:u})}return{}},defines:{MAX_LIGHTS:3}}},function(e,t,A){"use strict";A.d(t,"a",(function(){return s}));var n=A(1),r=A(4),i=A(18),o=A(1165),a=A(62),s=new(function(){function e(){Object(n.a)(this,e),this.stats=new Map}return Object(r.a)(e,[{key:"get",value:function(e){return this.stats.has(e)||this.stats.set(e,new o.a({id:e})),this.stats.get(e)}}]),e}());if(a.global.luma&&"8.5.10"!==a.global.luma.VERSION)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(a.global.luma.VERSION," vs ").concat("8.5.10"));a.global.luma||(Object(a.isBrowser)()&&i.k.log(1,"luma.gl ".concat("8.5.10"," - ").concat("set luma.log.level=1 (or higher) to trace rendering"))(),a.global.luma=a.global.luma||{VERSION:"8.5.10",version:"8.5.10",log:i.k,stats:s,globals:{modules:{},nodeIO:{}}});a.global.luma},,function(e,t,A){var n;!function(r,i,o,a){"use strict";var s,g=["","webkit","Moz","MS","ms","o"],c=i.createElement("div"),u=Math.round,l=Math.abs,I=Date.now;function C(e,t,A){return setTimeout(Q(e,A),t)}function h(e,t,A){return!!Array.isArray(e)&&(f(e,A[t],A),!0)}function f(e,t,A){var n;if(e)if(e.forEach)e.forEach(t,A);else if(void 0!==e.length)for(n=0;n<e.length;)t.call(A,e[n],n,e),n++;else for(n in e)e.hasOwnProperty(n)&&t.call(A,e[n],n,e)}function d(e,t,A){var n="DEPRECATED METHOD: "+t+"\n"+A+" AT \n";return function(){var t=new Error("get-stack-trace"),A=t&&t.stack?t.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",i=r.console&&(r.console.warn||r.console.log);return i&&i.call(r.console,n,A),e.apply(this,arguments)}}s="function"!==typeof Object.assign?function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),A=1;A<arguments.length;A++){var n=arguments[A];if(void 0!==n&&null!==n)for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])}return t}:Object.assign;var B=d((function(e,t,A){for(var n=Object.keys(t),r=0;r<n.length;)(!A||A&&void 0===e[n[r]])&&(e[n[r]]=t[n[r]]),r++;return e}),"extend","Use `assign`."),p=d((function(e,t){return B(e,t,!0)}),"merge","Use `assign`.");function E(e,t,A){var n,r=t.prototype;(n=e.prototype=Object.create(r)).constructor=e,n._super=r,A&&s(n,A)}function Q(e,t){return function(){return e.apply(t,arguments)}}function y(e,t){return"function"==typeof e?e.apply(t&&t[0]||void 0,t):e}function v(e,t){return void 0===e?t:e}function m(e,t,A){f(F(t),(function(t){e.addEventListener(t,A,!1)}))}function b(e,t,A){f(F(t),(function(t){e.removeEventListener(t,A,!1)}))}function w(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function S(e,t){return e.indexOf(t)>-1}function F(e){return e.trim().split(/\s+/g)}function R(e,t,A){if(e.indexOf&&!A)return e.indexOf(t);for(var n=0;n<e.length;){if(A&&e[n][A]==t||!A&&e[n]===t)return n;n++}return-1}function D(e){return Array.prototype.slice.call(e,0)}function G(e,t,A){for(var n=[],r=[],i=0;i<e.length;){var o=t?e[i][t]:e[i];R(r,o)<0&&n.push(e[i]),r[i]=o,i++}return A&&(n=t?n.sort((function(e,A){return e[t]>A[t]})):n.sort()),n}function k(e,t){for(var A,n,r=t[0].toUpperCase()+t.slice(1),i=0;i<g.length;){if((n=(A=g[i])?A+r:t)in e)return n;i++}}var x=1;function N(e){var t=e.ownerDocument||e;return t.defaultView||t.parentWindow||r}var U="ontouchstart"in r,_=void 0!==k(r,"PointerEvent"),M=U&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),O=["x","y"],L=["clientX","clientY"];function T(e,t){var A=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){y(e.options.enable,[e])&&A.handler(t)},this.init()}function Z(e,t,A){var n=A.pointers.length,r=A.changedPointers.length,i=1&t&&n-r===0,o=12&t&&n-r===0;A.isFirst=!!i,A.isFinal=!!o,i&&(e.session={}),A.eventType=t,function(e,t){var A=e.session,n=t.pointers,r=n.length;A.firstInput||(A.firstInput=H(t));r>1&&!A.firstMultiple?A.firstMultiple=H(t):1===r&&(A.firstMultiple=!1);var i=A.firstInput,o=A.firstMultiple,a=o?o.center:i.center,s=t.center=Y(n);t.timeStamp=I(),t.deltaTime=t.timeStamp-i.timeStamp,t.angle=V(a,s),t.distance=P(a,s),function(e,t){var A=t.center,n=e.offsetDelta||{},r=e.prevDelta||{},i=e.prevInput||{};1!==t.eventType&&4!==i.eventType||(r=e.prevDelta={x:i.deltaX||0,y:i.deltaY||0},n=e.offsetDelta={x:A.x,y:A.y});t.deltaX=r.x+(A.x-n.x),t.deltaY=r.y+(A.y-n.y)}(A,t),t.offsetDirection=j(t.deltaX,t.deltaY);var g=J(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=g.x,t.overallVelocityY=g.y,t.overallVelocity=l(g.x)>l(g.y)?g.x:g.y,t.scale=o?(c=o.pointers,u=n,P(u[0],u[1],L)/P(c[0],c[1],L)):1,t.rotation=o?function(e,t){return V(t[1],t[0],L)+V(e[1],e[0],L)}(o.pointers,n):0,t.maxPointers=A.prevInput?t.pointers.length>A.prevInput.maxPointers?t.pointers.length:A.prevInput.maxPointers:t.pointers.length,function(e,t){var A,n,r,i,o=e.lastInterval||t,a=t.timeStamp-o.timeStamp;if(8!=t.eventType&&(a>25||void 0===o.velocity)){var s=t.deltaX-o.deltaX,g=t.deltaY-o.deltaY,c=J(a,s,g);n=c.x,r=c.y,A=l(c.x)>l(c.y)?c.x:c.y,i=j(s,g),e.lastInterval=t}else A=o.velocity,n=o.velocityX,r=o.velocityY,i=o.direction;t.velocity=A,t.velocityX=n,t.velocityY=r,t.direction=i}(A,t);var c,u;var C=e.element;w(t.srcEvent.target,C)&&(C=t.srcEvent.target);t.target=C}(e,A),e.emit("hammer.input",A),e.recognize(A),e.session.prevInput=A}function H(e){for(var t=[],A=0;A<e.pointers.length;)t[A]={clientX:u(e.pointers[A].clientX),clientY:u(e.pointers[A].clientY)},A++;return{timeStamp:I(),pointers:t,center:Y(t),deltaX:e.deltaX,deltaY:e.deltaY}}function Y(e){var t=e.length;if(1===t)return{x:u(e[0].clientX),y:u(e[0].clientY)};for(var A=0,n=0,r=0;r<t;)A+=e[r].clientX,n+=e[r].clientY,r++;return{x:u(A/t),y:u(n/t)}}function J(e,t,A){return{x:t/e||0,y:A/e||0}}function j(e,t){return e===t?1:l(e)>=l(t)?e<0?2:4:t<0?8:16}function P(e,t,A){A||(A=O);var n=t[A[0]]-e[A[0]],r=t[A[1]]-e[A[1]];return Math.sqrt(n*n+r*r)}function V(e,t,A){A||(A=O);var n=t[A[0]]-e[A[0]],r=t[A[1]]-e[A[1]];return 180*Math.atan2(r,n)/Math.PI}T.prototype={handler:function(){},init:function(){this.evEl&&m(this.element,this.evEl,this.domHandler),this.evTarget&&m(this.target,this.evTarget,this.domHandler),this.evWin&&m(N(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&b(this.element,this.evEl,this.domHandler),this.evTarget&&b(this.target,this.evTarget,this.domHandler),this.evWin&&b(N(this.element),this.evWin,this.domHandler)}};var K={mousedown:1,mousemove:2,mouseup:4};function W(){this.evEl="mousedown",this.evWin="mousemove mouseup",this.pressed=!1,T.apply(this,arguments)}E(W,T,{handler:function(e){var t=K[e.type];1&t&&0===e.button&&(this.pressed=!0),2&t&&1!==e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:"mouse",srcEvent:e}))}});var X={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},q={2:"touch",3:"pen",4:"mouse",5:"kinect"},z="pointerdown",$="pointermove pointerup pointercancel";function ee(){this.evEl=z,this.evWin=$,T.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}r.MSPointerEvent&&!r.PointerEvent&&(z="MSPointerDown",$="MSPointerMove MSPointerUp MSPointerCancel"),E(ee,T,{handler:function(e){var t=this.store,A=!1,n=e.type.toLowerCase().replace("ms",""),r=X[n],i=q[e.pointerType]||e.pointerType,o="touch"==i,a=R(t,e.pointerId,"pointerId");1&r&&(0===e.button||o)?a<0&&(t.push(e),a=t.length-1):12&r&&(A=!0),a<0||(t[a]=e,this.callback(this.manager,r,{pointers:t,changedPointers:[e],pointerType:i,srcEvent:e}),A&&t.splice(a,1))}});var te={touchstart:1,touchmove:2,touchend:4,touchcancel:8};function Ae(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,T.apply(this,arguments)}function ne(e,t){var A=D(e.touches),n=D(e.changedTouches);return 12&t&&(A=G(A.concat(n),"identifier",!0)),[A,n]}E(Ae,T,{handler:function(e){var t=te[e.type];if(1===t&&(this.started=!0),this.started){var A=ne.call(this,e,t);12&t&&A[0].length-A[1].length===0&&(this.started=!1),this.callback(this.manager,t,{pointers:A[0],changedPointers:A[1],pointerType:"touch",srcEvent:e})}}});var re={touchstart:1,touchmove:2,touchend:4,touchcancel:8};function ie(){this.evTarget="touchstart touchmove touchend touchcancel",this.targetIds={},T.apply(this,arguments)}function oe(e,t){var A=D(e.touches),n=this.targetIds;if(3&t&&1===A.length)return n[A[0].identifier]=!0,[A,A];var r,i,o=D(e.changedTouches),a=[],s=this.target;if(i=A.filter((function(e){return w(e.target,s)})),1===t)for(r=0;r<i.length;)n[i[r].identifier]=!0,r++;for(r=0;r<o.length;)n[o[r].identifier]&&a.push(o[r]),12&t&&delete n[o[r].identifier],r++;return a.length?[G(i.concat(a),"identifier",!0),a]:void 0}E(ie,T,{handler:function(e){var t=re[e.type],A=oe.call(this,e,t);A&&this.callback(this.manager,t,{pointers:A[0],changedPointers:A[1],pointerType:"touch",srcEvent:e})}});function ae(){T.apply(this,arguments);var e=Q(this.handler,this);this.touch=new ie(this.manager,e),this.mouse=new W(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function se(e,t){1&e?(this.primaryTouch=t.changedPointers[0].identifier,ge.call(this,t)):12&e&&ge.call(this,t)}function ge(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var A={x:t.clientX,y:t.clientY};this.lastTouches.push(A);var n=this.lastTouches;setTimeout((function(){var e=n.indexOf(A);e>-1&&n.splice(e,1)}),2500)}}function ce(e){for(var t=e.srcEvent.clientX,A=e.srcEvent.clientY,n=0;n<this.lastTouches.length;n++){var r=this.lastTouches[n],i=Math.abs(t-r.x),o=Math.abs(A-r.y);if(i<=25&&o<=25)return!0}return!1}E(ae,T,{handler:function(e,t,A){var n="touch"==A.pointerType,r="mouse"==A.pointerType;if(!(r&&A.sourceCapabilities&&A.sourceCapabilities.firesTouchEvents)){if(n)se.call(this,t,A);else if(r&&ce.call(this,A))return;this.callback(e,t,A)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var ue=k(c.style,"touchAction"),le=void 0!==ue,Ie=function(){if(!le)return!1;var e={},t=r.CSS&&r.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(A){e[A]=!t||r.CSS.supports("touch-action",A)})),e}();function Ce(e,t){this.manager=e,this.set(t)}Ce.prototype={set:function(e){"compute"==e&&(e=this.compute()),le&&this.manager.element.style&&Ie[e]&&(this.manager.element.style[ue]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return f(this.manager.recognizers,(function(t){y(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(S(e,"none"))return"none";var t=S(e,"pan-x"),A=S(e,"pan-y");if(t&&A)return"none";if(t||A)return t?"pan-x":"pan-y";if(S(e,"manipulation"))return"manipulation";return"auto"}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,A=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var n=this.actions,r=S(n,"none")&&!Ie.none,i=S(n,"pan-y")&&!Ie["pan-y"],o=S(n,"pan-x")&&!Ie["pan-x"];if(r){var a=1===e.pointers.length,s=e.distance<2,g=e.deltaTime<250;if(a&&s&&g)return}if(!o||!i)return r||i&&6&A||o&&24&A?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};function he(e){this.options=s({},this.defaults,e||{}),this.id=x++,this.manager=null,this.options.enable=v(this.options.enable,!0),this.state=1,this.simultaneous={},this.requireFail=[]}function fe(e){return 16&e?"cancel":8&e?"end":4&e?"move":2&e?"start":""}function de(e){return 16==e?"down":8==e?"up":2==e?"left":4==e?"right":""}function Be(e,t){var A=t.manager;return A?A.get(e):e}function pe(){he.apply(this,arguments)}function Ee(){pe.apply(this,arguments),this.pX=null,this.pY=null}function Qe(){pe.apply(this,arguments)}function ye(){he.apply(this,arguments),this._timer=null,this._input=null}function ve(){pe.apply(this,arguments)}function me(){pe.apply(this,arguments)}function be(){he.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function we(e,t){return(t=t||{}).recognizers=v(t.recognizers,we.defaults.preset),new Se(e,t)}he.prototype={defaults:{},set:function(e){return s(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(h(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Be(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return h(e,"dropRecognizeWith",this)||(e=Be(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(h(e,"requireFailure",this))return this;var t=this.requireFail;return-1===R(t,e=Be(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(h(e,"dropRequireFailure",this))return this;e=Be(e,this);var t=R(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,A=this.state;function n(A){t.manager.emit(A,e)}A<8&&n(t.options.event+fe(A)),n(t.options.event),e.additionalEvent&&n(e.additionalEvent),A>=8&&n(t.options.event+fe(A))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=32},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(33&this.requireFail[e].state))return!1;e++}return!0},recognize:function(e){var t=s({},e);if(!y(this.options.enable,[this,t]))return this.reset(),void(this.state=32);56&this.state&&(this.state=1),this.state=this.process(t),30&this.state&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},E(pe,he,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,A=e.eventType,n=6&t,r=this.attrTest(e);return n&&(8&A||!r)?16|t:n||r?4&A?8|t:2&t?4|t:2:32}}),E(Ee,pe,{defaults:{event:"pan",threshold:10,pointers:1,direction:30},getTouchAction:function(){var e=this.options.direction,t=[];return 6&e&&t.push("pan-y"),24&e&&t.push("pan-x"),t},directionTest:function(e){var t=this.options,A=!0,n=e.distance,r=e.direction,i=e.deltaX,o=e.deltaY;return r&t.direction||(6&t.direction?(r=0===i?1:i<0?2:4,A=i!=this.pX,n=Math.abs(e.deltaX)):(r=0===o?1:o<0?8:16,A=o!=this.pY,n=Math.abs(e.deltaY))),e.direction=r,A&&n>t.threshold&&r&t.direction},attrTest:function(e){return pe.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=de(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),E(Qe,pe,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return["none"]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),E(ye,he,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return["auto"]},process:function(e){var t=this.options,A=e.pointers.length===t.pointers,n=e.distance<t.threshold,r=e.deltaTime>t.time;if(this._input=e,!n||!A||12&e.eventType&&!r)this.reset();else if(1&e.eventType)this.reset(),this._timer=C((function(){this.state=8,this.tryEmit()}),t.time,this);else if(4&e.eventType)return 8;return 32},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&4&e.eventType?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=I(),this.manager.emit(this.options.event,this._input)))}}),E(ve,pe,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return["none"]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),E(me,pe,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return Ee.prototype.getTouchAction.call(this)},attrTest:function(e){var t,A=this.options.direction;return 30&A?t=e.overallVelocity:6&A?t=e.overallVelocityX:24&A&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&A&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&l(t)>this.options.velocity&&4&e.eventType},emit:function(e){var t=de(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),E(be,he,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return["manipulation"]},process:function(e){var t=this.options,A=e.pointers.length===t.pointers,n=e.distance<t.threshold,r=e.deltaTime<t.time;if(this.reset(),1&e.eventType&&0===this.count)return this.failTimeout();if(n&&r&&A){if(4!=e.eventType)return this.failTimeout();var i=!this.pTime||e.timeStamp-this.pTime<t.interval,o=!this.pCenter||P(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,o&&i?this.count+=1:this.count=1,this._input=e,0===this.count%t.taps)return this.hasRequireFailures()?(this._timer=C((function(){this.state=8,this.tryEmit()}),t.interval,this),2):8}return 32},failTimeout:function(){return this._timer=C((function(){this.state=32}),this.options.interval,this),32},reset:function(){clearTimeout(this._timer)},emit:function(){8==this.state&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),we.VERSION="2.0.7",we.defaults={domEvents:!1,touchAction:"compute",enable:!0,inputTarget:null,inputClass:null,preset:[[ve,{enable:!1}],[Qe,{enable:!1},["rotate"]],[me,{direction:6}],[Ee,{direction:6},["swipe"]],[be],[be,{event:"doubletap",taps:2},["tap"]],[ye]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};function Se(e,t){this.options=s({},we.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=function(e){var t=e.options.inputClass;return new(t||(_?ee:M?ie:U?ae:W))(e,Z)}(this),this.touchAction=new Ce(this,this.options.touchAction),Fe(this,!0),f(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function Fe(e,t){var A,n=e.element;n.style&&(f(e.options.cssProps,(function(r,i){A=k(n.style,i),t?(e.oldCssProps[A]=n.style[A],n.style[A]=r):n.style[A]=e.oldCssProps[A]||""})),t||(e.oldCssProps={}))}Se.prototype={set:function(e){return s(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var A;this.touchAction.preventDefaults(e);var n=this.recognizers,r=t.curRecognizer;(!r||r&&8&r.state)&&(r=t.curRecognizer=null);for(var i=0;i<n.length;)A=n[i],2===t.stopped||r&&A!=r&&!A.canRecognizeWith(r)?A.reset():A.recognize(e),!r&&14&A.state&&(r=t.curRecognizer=A),i++}},get:function(e){if(e instanceof he)return e;for(var t=this.recognizers,A=0;A<t.length;A++)if(t[A].options.event==e)return t[A];return null},add:function(e){if(h(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(h(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,A=R(t,e);-1!==A&&(t.splice(A,1),this.touchAction.update())}return this},on:function(e,t){if(void 0!==e&&void 0!==t){var A=this.handlers;return f(F(e),(function(e){A[e]=A[e]||[],A[e].push(t)})),this}},off:function(e,t){if(void 0!==e){var A=this.handlers;return f(F(e),(function(e){t?A[e]&&A[e].splice(R(A[e],t),1):delete A[e]})),this}},emit:function(e,t){this.options.domEvents&&function(e,t){var A=i.createEvent("Event");A.initEvent(e,!0,!0),A.gesture=t,t.target.dispatchEvent(A)}(e,t);var A=this.handlers[e]&&this.handlers[e].slice();if(A&&A.length){t.type=e,t.preventDefault=function(){t.srcEvent.preventDefault()};for(var n=0;n<A.length;)A[n](t),n++}},destroy:function(){this.element&&Fe(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},s(we,{INPUT_START:1,INPUT_MOVE:2,INPUT_END:4,INPUT_CANCEL:8,STATE_POSSIBLE:1,STATE_BEGAN:2,STATE_CHANGED:4,STATE_ENDED:8,STATE_RECOGNIZED:8,STATE_CANCELLED:16,STATE_FAILED:32,DIRECTION_NONE:1,DIRECTION_LEFT:2,DIRECTION_RIGHT:4,DIRECTION_UP:8,DIRECTION_DOWN:16,DIRECTION_HORIZONTAL:6,DIRECTION_VERTICAL:24,DIRECTION_ALL:30,Manager:Se,Input:T,TouchAction:Ce,TouchInput:ie,MouseInput:W,PointerEventInput:ee,TouchMouseInput:ae,SingleTouchInput:Ae,Recognizer:he,AttrRecognizer:pe,Tap:be,Pan:Ee,Swipe:me,Pinch:Qe,Rotate:ve,Press:ye,on:m,off:b,each:f,merge:p,extend:B,assign:s,inherit:E,bindFn:Q,prefixed:k}),("undefined"!==typeof r?r:"undefined"!==typeof self?self:{}).Hammer=we,void 0===(n=function(){return we}.call(t,A,t,e))||(e.exports=n)}(window,document)},,,function(e,t,A){"use strict";(function(e,n){var r=A(11),i=A(3),o=A.n(i),a=A(12),s=A(1),g=A(4),c=A(48);A.d(t,"a",(function(){return c.a})),A.d(t,"b",(function(){return c.c})),A.d(t,"c",(function(){return c.d}));function u(e){for(var t=e.length;--t>=0;)e[t]=0}var l=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),I=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),C=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),h=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),f=new Array(576);u(f);var d=new Array(60);u(d);var B=new Array(512);u(B);var p=new Array(256);u(p);var E=new Array(29);u(E);var Q,y,v,m=new Array(30);function b(e,t,A,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=A,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}function w(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}u(m);var S=function(e){return e<256?B[e]:B[256+(e>>>7)]},F=function(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},R=function(e,t,A){e.bi_valid>16-A?(e.bi_buf|=t<<e.bi_valid&65535,F(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=A-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=A)},D=function(e,t,A){R(e,A[2*t],A[2*t+1])},G=function(e,t){var A=0;do{A|=1&e,e>>>=1,A<<=1}while(--t>0);return A>>>1},k=function(e,t,A){var n,r,i=new Array(16),o=0;for(n=1;n<=15;n++)i[n]=o=o+A[n-1]<<1;for(r=0;r<=t;r++){var a=e[2*r+1];0!==a&&(e[2*r]=G(i[a]++,a))}},x=function(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},N=function(e){e.bi_valid>8?F(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},U=function(e,t,A,n){var r=2*t,i=2*A;return e[r]<e[i]||e[r]===e[i]&&n[t]<=n[A]},_=function(e,t,A){for(var n=e.heap[A],r=A<<1;r<=e.heap_len&&(r<e.heap_len&&U(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!U(t,n,e.heap[r],e.depth));)e.heap[A]=e.heap[r],A=r,r<<=1;e.heap[A]=n},M=function(e,t,A){var n,r,i,o,a=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*a]<<8|e.pending_buf[e.d_buf+2*a+1],r=e.pending_buf[e.l_buf+a],a++,0===n?D(e,r,t):(i=p[r],D(e,i+256+1,t),0!==(o=l[i])&&(r-=E[i],R(e,r,o)),n--,i=S(n),D(e,i,A),0!==(o=I[i])&&(n-=m[i],R(e,n,o)))}while(a<e.last_lit);D(e,256,t)},O=function(e,t){var A,n,r,i=t.dyn_tree,o=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.elems,g=-1;for(e.heap_len=0,e.heap_max=573,A=0;A<s;A++)0!==i[2*A]?(e.heap[++e.heap_len]=g=A,e.depth[A]=0):i[2*A+1]=0;for(;e.heap_len<2;)i[2*(r=e.heap[++e.heap_len]=g<2?++g:0)]=1,e.depth[r]=0,e.opt_len--,a&&(e.static_len-=o[2*r+1]);for(t.max_code=g,A=e.heap_len>>1;A>=1;A--)_(e,i,A);r=s;do{A=e.heap[1],e.heap[1]=e.heap[e.heap_len--],_(e,i,1),n=e.heap[1],e.heap[--e.heap_max]=A,e.heap[--e.heap_max]=n,i[2*r]=i[2*A]+i[2*n],e.depth[r]=(e.depth[A]>=e.depth[n]?e.depth[A]:e.depth[n])+1,i[2*A+1]=i[2*n+1]=r,e.heap[1]=r++,_(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var A,n,r,i,o,a,s=t.dyn_tree,g=t.max_code,c=t.stat_desc.static_tree,u=t.stat_desc.has_stree,l=t.stat_desc.extra_bits,I=t.stat_desc.extra_base,C=t.stat_desc.max_length,h=0;for(i=0;i<=15;i++)e.bl_count[i]=0;for(s[2*e.heap[e.heap_max]+1]=0,A=e.heap_max+1;A<573;A++)(i=s[2*s[2*(n=e.heap[A])+1]+1]+1)>C&&(i=C,h++),s[2*n+1]=i,n>g||(e.bl_count[i]++,o=0,n>=I&&(o=l[n-I]),a=s[2*n],e.opt_len+=a*(i+o),u&&(e.static_len+=a*(c[2*n+1]+o)));if(0!==h){do{for(i=C-1;0===e.bl_count[i];)i--;e.bl_count[i]--,e.bl_count[i+1]+=2,e.bl_count[C]--,h-=2}while(h>0);for(i=C;0!==i;i--)for(n=e.bl_count[i];0!==n;)(r=e.heap[--A])>g||(s[2*r+1]!==i&&(e.opt_len+=(i-s[2*r+1])*s[2*r],s[2*r+1]=i),n--)}}(e,t),k(i,g,e.bl_count)},L=function(e,t,A){var n,r,i=-1,o=t[1],a=0,s=7,g=4;for(0===o&&(s=138,g=3),t[2*(A+1)+1]=65535,n=0;n<=A;n++)r=o,o=t[2*(n+1)+1],++a<s&&r===o||(a<g?e.bl_tree[2*r]+=a:0!==r?(r!==i&&e.bl_tree[2*r]++,e.bl_tree[32]++):a<=10?e.bl_tree[34]++:e.bl_tree[36]++,a=0,i=r,0===o?(s=138,g=3):r===o?(s=6,g=3):(s=7,g=4))},T=function(e,t,A){var n,r,i=-1,o=t[1],a=0,s=7,g=4;for(0===o&&(s=138,g=3),n=0;n<=A;n++)if(r=o,o=t[2*(n+1)+1],!(++a<s&&r===o)){if(a<g)do{D(e,r,e.bl_tree)}while(0!==--a);else 0!==r?(r!==i&&(D(e,r,e.bl_tree),a--),D(e,16,e.bl_tree),R(e,a-3,2)):a<=10?(D(e,17,e.bl_tree),R(e,a-3,3)):(D(e,18,e.bl_tree),R(e,a-11,7));a=0,i=r,0===o?(s=138,g=3):r===o?(s=6,g=3):(s=7,g=4)}},Z=!1,H=function(e,t,A,n){R(e,0+(n?1:0),3),function(e,t,A,n){N(e),n&&(F(e,A),F(e,~A)),e.pending_buf.set(e.window.subarray(t,t+A),e.pending),e.pending+=A}(e,t,A,!0)},Y={_tr_init:function(e){Z||(!function(){var e,t,A,n,r,i=new Array(16);for(A=0,n=0;n<28;n++)for(E[n]=A,e=0;e<1<<l[n];e++)p[A++]=n;for(p[A-1]=n,r=0,n=0;n<16;n++)for(m[n]=r,e=0;e<1<<I[n];e++)B[r++]=n;for(r>>=7;n<30;n++)for(m[n]=r<<7,e=0;e<1<<I[n]-7;e++)B[256+r++]=n;for(t=0;t<=15;t++)i[t]=0;for(e=0;e<=143;)f[2*e+1]=8,e++,i[8]++;for(;e<=255;)f[2*e+1]=9,e++,i[9]++;for(;e<=279;)f[2*e+1]=7,e++,i[7]++;for(;e<=287;)f[2*e+1]=8,e++,i[8]++;for(k(f,287,i),e=0;e<30;e++)d[2*e+1]=5,d[2*e]=G(e,5);Q=new b(f,l,257,286,15),y=new b(d,I,0,30,15),v=new b(new Array(0),C,0,19,7)}(),Z=!0),e.l_desc=new w(e.dyn_ltree,Q),e.d_desc=new w(e.dyn_dtree,y),e.bl_desc=new w(e.bl_tree,v),e.bi_buf=0,e.bi_valid=0,x(e)},_tr_stored_block:H,_tr_flush_block:function(e,t,A,n){var r,i,o=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,A=4093624447;for(t=0;t<=31;t++,A>>>=1)if(1&A&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),O(e,e.l_desc),O(e,e.d_desc),o=function(e){var t;for(L(e,e.dyn_ltree,e.l_desc.max_code),L(e,e.dyn_dtree,e.d_desc.max_code),O(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*h[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),r=e.opt_len+3+7>>>3,(i=e.static_len+3+7>>>3)<=r&&(r=i)):r=i=A+5,A+4<=r&&-1!==t?H(e,t,A,n):4===e.strategy||i===r?(R(e,2+(n?1:0),3),M(e,f,d)):(R(e,4+(n?1:0),3),function(e,t,A,n){var r;for(R(e,t-257,5),R(e,A-1,5),R(e,n-4,4),r=0;r<n;r++)R(e,e.bl_tree[2*h[r]+1],3);T(e,e.dyn_ltree,t-1),T(e,e.dyn_dtree,A-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),M(e,e.dyn_ltree,e.dyn_dtree)),x(e),n&&N(e)},_tr_tally:function(e,t,A){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&A,e.last_lit++,0===t?e.dyn_ltree[2*A]++:(e.matches++,t--,e.dyn_ltree[2*(p[A]+256+1)]++,e.dyn_dtree[2*S(t)]++),e.last_lit===e.lit_bufsize-1},_tr_align:function(e){R(e,2,3),D(e,256,f),function(e){16===e.bi_valid?(F(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},J=function(e,t,A,n){for(var r=65535&e|0,i=e>>>16&65535|0,o=0;0!==A;){A-=o=A>2e3?2e3:A;do{i=i+(r=r+t[n++]|0)|0}while(--o);r%=65521,i%=65521}return r|i<<16|0},j=new Uint32Array(function(){for(var e,t=[],A=0;A<256;A++){e=A;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[A]=e}return t}()),P=function(e,t,A,n){var r=j,i=n+A;e^=-1;for(var o=n;o<i;o++)e=e>>>8^r[255&(e^t[o])];return-1^e},V={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},K={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},W=Y._tr_init,X=Y._tr_stored_block,q=Y._tr_flush_block,z=Y._tr_tally,$=Y._tr_align,ee=K.Z_NO_FLUSH,te=K.Z_PARTIAL_FLUSH,Ae=K.Z_FULL_FLUSH,ne=K.Z_FINISH,re=K.Z_BLOCK,ie=K.Z_OK,oe=K.Z_STREAM_END,ae=K.Z_STREAM_ERROR,se=K.Z_DATA_ERROR,ge=K.Z_BUF_ERROR,ce=K.Z_DEFAULT_COMPRESSION,ue=K.Z_FILTERED,le=K.Z_HUFFMAN_ONLY,Ie=K.Z_RLE,Ce=K.Z_FIXED,he=K.Z_DEFAULT_STRATEGY,fe=K.Z_UNKNOWN,de=K.Z_DEFLATED,Be=function(e,t){return e.msg=V[t],t},pe=function(e){return(e<<1)-(e>4?9:0)},Ee=function(e){for(var t=e.length;--t>=0;)e[t]=0},Qe=function(e,t,A){return(t<<e.hash_shift^A)&e.hash_mask},ye=function(e){var t=e.state,A=t.pending;A>e.avail_out&&(A=e.avail_out),0!==A&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+A),e.next_out),e.next_out+=A,t.pending_out+=A,e.total_out+=A,e.avail_out-=A,t.pending-=A,0===t.pending&&(t.pending_out=0))},ve=function(e,t){q(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,ye(e.strm)},me=function(e,t){e.pending_buf[e.pending++]=t},be=function(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},we=function(e,t,A,n){var r=e.avail_in;return r>n&&(r=n),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),A),1===e.state.wrap?e.adler=J(e.adler,t,r,A):2===e.state.wrap&&(e.adler=P(e.adler,t,r,A)),e.next_in+=r,e.total_in+=r,r)},Se=function(e,t){var A,n,r=e.max_chain_length,i=e.strstart,o=e.prev_length,a=e.nice_match,s=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,g=e.window,c=e.w_mask,u=e.prev,l=e.strstart+258,I=g[i+o-1],C=g[i+o];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(g[(A=t)+o]===C&&g[A+o-1]===I&&g[A]===g[i]&&g[++A]===g[i+1]){i+=2,A++;do{}while(g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&g[++i]===g[++A]&&i<l);if(n=258-(l-i),i=l-258,n>o){if(e.match_start=t,o=n,n>=a)break;I=g[i+o-1],C=g[i+o]}}}while((t=u[t&c])>s&&0!==--r);return o<=e.lookahead?o:e.lookahead},Fe=function(e){var t,A,n,r,i,o=e.w_size;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=o+(o-262)){e.window.set(e.window.subarray(o,o+o),0),e.match_start-=o,e.strstart-=o,e.block_start-=o,t=A=e.hash_size;do{n=e.head[--t],e.head[t]=n>=o?n-o:0}while(--A);t=A=o;do{n=e.prev[--t],e.prev[t]=n>=o?n-o:0}while(--A);r+=o}if(0===e.strm.avail_in)break;if(A=we(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=A,e.lookahead+e.insert>=3)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=Qe(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=Qe(e,e.ins_h,e.window[i+3-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},Re=function(e,t){for(var A,n;;){if(e.lookahead<262){if(Fe(e),e.lookahead<262&&t===ee)return 1;if(0===e.lookahead)break}if(A=0,e.lookahead>=3&&(e.ins_h=Qe(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==A&&e.strstart-A<=e.w_size-262&&(e.match_length=Se(e,A)),e.match_length>=3)if(n=z(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=Qe(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!==--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Qe(e,e.ins_h,e.window[e.strstart+1]);else n=z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===ne?(ve(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ve(e,!1),0===e.strm.avail_out)?1:2},De=function(e,t){for(var A,n,r;;){if(e.lookahead<262){if(Fe(e),e.lookahead<262&&t===ee)return 1;if(0===e.lookahead)break}if(A=0,e.lookahead>=3&&(e.ins_h=Qe(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==A&&e.prev_length<e.max_lazy_match&&e.strstart-A<=e.w_size-262&&(e.match_length=Se(e,A),e.match_length<=5&&(e.strategy===ue||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,n=z(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=Qe(e,e.ins_h,e.window[e.strstart+3-1]),A=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!==--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(ve(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((n=z(e,0,e.window[e.strstart-1]))&&ve(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=z(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===ne?(ve(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ve(e,!1),0===e.strm.avail_out)?1:2};function Ge(e,t,A,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=A,this.max_chain=n,this.func=r}var ke=[new Ge(0,0,0,0,(function(e,t){var A=65535;for(A>e.pending_buf_size-5&&(A=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Fe(e),0===e.lookahead&&t===ee)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+A;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,ve(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ne?(ve(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(ve(e,!1),e.strm.avail_out),1)})),new Ge(4,4,8,4,Re),new Ge(4,5,16,8,Re),new Ge(4,6,32,32,Re),new Ge(4,4,16,16,De),new Ge(8,16,32,32,De),new Ge(8,16,128,128,De),new Ge(8,32,128,256,De),new Ge(32,128,258,1024,De),new Ge(32,258,258,4096,De)];function xe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=de,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Ee(this.dyn_ltree),Ee(this.dyn_dtree),Ee(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Ee(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Ee(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var Ne=function(e){if(!e||!e.state)return Be(e,ae);e.total_in=e.total_out=0,e.data_type=fe;var t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=ee,W(t),ie},Ue=function(e){var t,A=Ne(e);return A===ie&&((t=e.state).window_size=2*t.w_size,Ee(t.head),t.max_lazy_match=ke[t.level].max_lazy,t.good_match=ke[t.level].good_length,t.nice_match=ke[t.level].nice_length,t.max_chain_length=ke[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),A},_e=function(e,t,A,n,r,i){if(!e)return ae;var o=1;if(t===ce&&(t=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),r<1||r>9||A!==de||n<8||n>15||t<0||t>9||i<0||i>Ce)return Be(e,ae);8===n&&(n=9);var a=new xe;return e.state=a,a.strm=e,a.wrap=o,a.gzhead=null,a.w_bits=n,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=r+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+3-1)/3),a.window=new Uint8Array(2*a.w_size),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<r+6,a.pending_buf_size=4*a.lit_bufsize,a.pending_buf=new Uint8Array(a.pending_buf_size),a.d_buf=1*a.lit_bufsize,a.l_buf=3*a.lit_bufsize,a.level=t,a.strategy=i,a.method=A,Ue(e)},Me={deflateInit:function(e,t){return _e(e,t,de,15,8,he)},deflateInit2:_e,deflateReset:Ue,deflateResetKeep:Ne,deflateSetHeader:function(e,t){return e&&e.state?2!==e.state.wrap?ae:(e.state.gzhead=t,ie):ae},deflate:function(e,t){var A,n;if(!e||!e.state||t>re||t<0)return e?Be(e,ae):ae;var r=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===r.status&&t!==ne)return Be(e,0===e.avail_out?ge:ae);r.strm=e;var i=r.last_flush;if(r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,me(r,31),me(r,139),me(r,8),r.gzhead?(me(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),me(r,255&r.gzhead.time),me(r,r.gzhead.time>>8&255),me(r,r.gzhead.time>>16&255),me(r,r.gzhead.time>>24&255),me(r,9===r.level?2:r.strategy>=le||r.level<2?4:0),me(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(me(r,255&r.gzhead.extra.length),me(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=P(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(me(r,0),me(r,0),me(r,0),me(r,0),me(r,0),me(r,9===r.level?2:r.strategy>=le||r.level<2?4:0),me(r,3),r.status=113);else{var o=de+(r.w_bits-8<<4)<<8;o|=(r.strategy>=le||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(o|=32),o+=31-o%31,r.status=113,be(r,o),0!==r.strstart&&(be(r,e.adler>>>16),be(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(A=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),ye(e),A=r.pending,r.pending!==r.pending_buf_size));)me(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){A=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),ye(e),A=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,me(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),0===n&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){A=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),ye(e),A=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,me(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>A&&(e.adler=P(e.adler,r.pending_buf,r.pending-A,A)),0===n&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&ye(e),r.pending+2<=r.pending_buf_size&&(me(r,255&e.adler),me(r,e.adler>>8&255),e.adler=0,r.status=113)):r.status=113),0!==r.pending){if(ye(e),0===e.avail_out)return r.last_flush=-1,ie}else if(0===e.avail_in&&pe(t)<=pe(i)&&t!==ne)return Be(e,ge);if(666===r.status&&0!==e.avail_in)return Be(e,ge);if(0!==e.avail_in||0!==r.lookahead||t!==ee&&666!==r.status){var a=r.strategy===le?function(e,t){for(var A;;){if(0===e.lookahead&&(Fe(e),0===e.lookahead)){if(t===ee)return 1;break}if(e.match_length=0,A=z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,A&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ne?(ve(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ve(e,!1),0===e.strm.avail_out)?1:2}(r,t):r.strategy===Ie?function(e,t){for(var A,n,r,i,o=e.window;;){if(e.lookahead<=258){if(Fe(e),e.lookahead<=258&&t===ee)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=o[r=e.strstart-1])===o[++r]&&n===o[++r]&&n===o[++r]){i=e.strstart+258;do{}while(n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&r<i);e.match_length=258-(i-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(A=z(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(A=z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),A&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ne?(ve(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ve(e,!1),0===e.strm.avail_out)?1:2}(r,t):ke[r.level].func(r,t);if(3!==a&&4!==a||(r.status=666),1===a||3===a)return 0===e.avail_out&&(r.last_flush=-1),ie;if(2===a&&(t===te?$(r):t!==re&&(X(r,0,0,!1),t===Ae&&(Ee(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),ye(e),0===e.avail_out))return r.last_flush=-1,ie}return t!==ne?ie:r.wrap<=0?oe:(2===r.wrap?(me(r,255&e.adler),me(r,e.adler>>8&255),me(r,e.adler>>16&255),me(r,e.adler>>24&255),me(r,255&e.total_in),me(r,e.total_in>>8&255),me(r,e.total_in>>16&255),me(r,e.total_in>>24&255)):(be(r,e.adler>>>16),be(r,65535&e.adler)),ye(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?ie:oe)},deflateEnd:function(e){if(!e||!e.state)return ae;var t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?Be(e,ae):(e.state=null,113===t?Be(e,se):ie)},deflateSetDictionary:function(e,t){var A=t.length;if(!e||!e.state)return ae;var n=e.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return ae;if(1===r&&(e.adler=J(e.adler,t,A,0)),n.wrap=0,A>=n.w_size){0===r&&(Ee(n.head),n.strstart=0,n.block_start=0,n.insert=0);var i=new Uint8Array(n.w_size);i.set(t.subarray(A-n.w_size,A),0),t=i,A=n.w_size}var o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=A,e.next_in=0,e.input=t,Fe(n);n.lookahead>=3;){var g=n.strstart,c=n.lookahead-2;do{n.ins_h=Qe(n,n.ins_h,n.window[g+3-1]),n.prev[g&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=g,g++}while(--c);n.strstart=g,n.lookahead=2,Fe(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,n.wrap=r,ie},deflateInfo:"pako deflate (from Nodeca project)"},Oe=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},Le=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var A=t.shift();if(A){if("object"!==typeof A)throw new TypeError(A+"must be non-object");for(var n in A)Oe(A,n)&&(e[n]=A[n])}}return e},Te=function(e){for(var t=0,A=0,n=e.length;A<n;A++)t+=e[A].length;for(var r=new Uint8Array(t),i=0,o=0,a=e.length;i<a;i++){var s=e[i];r.set(s,o),o+=s.length}return r},Ze=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(oA){Ze=!1}for(var He=new Uint8Array(256),Ye=0;Ye<256;Ye++)He[Ye]=Ye>=252?6:Ye>=248?5:Ye>=240?4:Ye>=224?3:Ye>=192?2:1;He[254]=He[254]=1;var Je=function(e){var t,A,n,r,i,o=e.length,a=0;for(r=0;r<o;r++)55296===(64512&(A=e.charCodeAt(r)))&&r+1<o&&56320===(64512&(n=e.charCodeAt(r+1)))&&(A=65536+(A-55296<<10)+(n-56320),r++),a+=A<128?1:A<2048?2:A<65536?3:4;for(t=new Uint8Array(a),i=0,r=0;i<a;r++)55296===(64512&(A=e.charCodeAt(r)))&&r+1<o&&56320===(64512&(n=e.charCodeAt(r+1)))&&(A=65536+(A-55296<<10)+(n-56320),r++),A<128?t[i++]=A:A<2048?(t[i++]=192|A>>>6,t[i++]=128|63&A):A<65536?(t[i++]=224|A>>>12,t[i++]=128|A>>>6&63,t[i++]=128|63&A):(t[i++]=240|A>>>18,t[i++]=128|A>>>12&63,t[i++]=128|A>>>6&63,t[i++]=128|63&A);return t},je=function(e,t){var A,n,r=t||e.length,i=new Array(2*r);for(n=0,A=0;A<r;){var o=e[A++];if(o<128)i[n++]=o;else{var a=He[o];if(a>4)i[n++]=65533,A+=a-1;else{for(o&=2===a?31:3===a?15:7;a>1&&A<r;)o=o<<6|63&e[A++],a--;a>1?i[n++]=65533:o<65536?i[n++]=o:(o-=65536,i[n++]=55296|o>>10&1023,i[n++]=56320|1023&o)}}}return function(e,t){if(t<65534&&e.subarray&&Ze)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));for(var A="",n=0;n<t;n++)A+=String.fromCharCode(e[n]);return A}(i,n)},Pe=function(e,t){(t=t||e.length)>e.length&&(t=e.length);for(var A=t-1;A>=0&&128===(192&e[A]);)A--;return A<0||0===A?t:A+He[e[A]]>t?A:t};var Ve=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Ke=Object.prototype.toString,We=K.Z_NO_FLUSH,Xe=K.Z_SYNC_FLUSH,qe=K.Z_FULL_FLUSH,ze=K.Z_FINISH,$e=K.Z_OK,et=K.Z_STREAM_END,tt=K.Z_DEFAULT_COMPRESSION,At=K.Z_DEFAULT_STRATEGY,nt=K.Z_DEFLATED;function rt(e){this.options=Le({level:tt,method:nt,chunkSize:16384,windowBits:15,memLevel:8,strategy:At},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ve,this.strm.avail_out=0;var A=Me.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(A!==$e)throw new Error(V[A]);if(t.header&&Me.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n="string"===typeof t.dictionary?Je(t.dictionary):"[object ArrayBuffer]"===Ke.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(A=Me.deflateSetDictionary(this.strm,n))!==$e)throw new Error(V[A]);this._dict_set=!0}}function it(e,t){var A=new rt(t);if(A.push(e,!0),A.err)throw A.msg||V[A.err];return A.result}rt.prototype.push=function(e,t){var A,n,r=this.strm,i=this.options.chunkSize;if(this.ended)return!1;for(n=t===~~t?t:!0===t?ze:We,"string"===typeof e?r.input=Je(e):"[object ArrayBuffer]"===Ke.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;)if(0===r.avail_out&&(r.output=new Uint8Array(i),r.next_out=0,r.avail_out=i),(n===Xe||n===qe)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if((A=Me.deflate(r,n))===et)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),A=Me.deflateEnd(this.strm),this.onEnd(A),this.ended=!0,A===$e;if(0!==r.avail_out){if(n>0&&r.next_out>0)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else if(0===r.avail_in)break}else this.onData(r.output)}return!0},rt.prototype.onData=function(e){this.chunks.push(e)},rt.prototype.onEnd=function(e){e===$e&&(this.result=Te(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ot={Deflate:rt,deflate:it,deflateRaw:function(e,t){return(t=t||{}).raw=!0,it(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,it(e,t)},constants:K},at=function(e,t){var A,n,r,i,o,a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w=e.state;A=e.next_in,m=e.input,n=A+(e.avail_in-5),r=e.next_out,b=e.output,i=r-(t-e.avail_out),o=r+(e.avail_out-257),a=w.dmax,s=w.wsize,g=w.whave,c=w.wnext,u=w.window,l=w.hold,I=w.bits,C=w.lencode,h=w.distcode,f=(1<<w.lenbits)-1,d=(1<<w.distbits)-1;e:do{I<15&&(l+=m[A++]<<I,I+=8,l+=m[A++]<<I,I+=8),B=C[l&f];t:for(;;){if(l>>>=p=B>>>24,I-=p,0===(p=B>>>16&255))b[r++]=65535&B;else{if(!(16&p)){if(0===(64&p)){B=C[(65535&B)+(l&(1<<p)-1)];continue t}if(32&p){w.mode=12;break e}e.msg="invalid literal/length code",w.mode=30;break e}E=65535&B,(p&=15)&&(I<p&&(l+=m[A++]<<I,I+=8),E+=l&(1<<p)-1,l>>>=p,I-=p),I<15&&(l+=m[A++]<<I,I+=8,l+=m[A++]<<I,I+=8),B=h[l&d];A:for(;;){if(l>>>=p=B>>>24,I-=p,!(16&(p=B>>>16&255))){if(0===(64&p)){B=h[(65535&B)+(l&(1<<p)-1)];continue A}e.msg="invalid distance code",w.mode=30;break e}if(Q=65535&B,I<(p&=15)&&(l+=m[A++]<<I,(I+=8)<p&&(l+=m[A++]<<I,I+=8)),(Q+=l&(1<<p)-1)>a){e.msg="invalid distance too far back",w.mode=30;break e}if(l>>>=p,I-=p,Q>(p=r-i)){if((p=Q-p)>g&&w.sane){e.msg="invalid distance too far back",w.mode=30;break e}if(y=0,v=u,0===c){if(y+=s-p,p<E){E-=p;do{b[r++]=u[y++]}while(--p);y=r-Q,v=b}}else if(c<p){if(y+=s+c-p,(p-=c)<E){E-=p;do{b[r++]=u[y++]}while(--p);if(y=0,c<E){E-=p=c;do{b[r++]=u[y++]}while(--p);y=r-Q,v=b}}}else if(y+=c-p,p<E){E-=p;do{b[r++]=u[y++]}while(--p);y=r-Q,v=b}for(;E>2;)b[r++]=v[y++],b[r++]=v[y++],b[r++]=v[y++],E-=3;E&&(b[r++]=v[y++],E>1&&(b[r++]=v[y++]))}else{y=r-Q;do{b[r++]=b[y++],b[r++]=b[y++],b[r++]=b[y++],E-=3}while(E>2);E&&(b[r++]=b[y++],E>1&&(b[r++]=b[y++]))}break}}break}}while(A<n&&r<o);A-=E=I>>3,l&=(1<<(I-=E<<3))-1,e.next_in=A,e.next_out=r,e.avail_in=A<n?n-A+5:5-(A-n),e.avail_out=r<o?o-r+257:257-(r-o),w.hold=l,w.bits=I},st=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),gt=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),ct=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),ut=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),lt=function(e,t,A,n,r,i,o,a){var s,g,c,u,l,I,C,h,f,d=a.bits,B=0,p=0,E=0,Q=0,y=0,v=0,m=0,b=0,w=0,S=0,F=null,R=0,D=new Uint16Array(16),G=new Uint16Array(16),k=null,x=0;for(B=0;B<=15;B++)D[B]=0;for(p=0;p<n;p++)D[t[A+p]]++;for(y=d,Q=15;Q>=1&&0===D[Q];Q--);if(y>Q&&(y=Q),0===Q)return r[i++]=20971520,r[i++]=20971520,a.bits=1,0;for(E=1;E<Q&&0===D[E];E++);for(y<E&&(y=E),b=1,B=1;B<=15;B++)if(b<<=1,(b-=D[B])<0)return-1;if(b>0&&(0===e||1!==Q))return-1;for(G[1]=0,B=1;B<15;B++)G[B+1]=G[B]+D[B];for(p=0;p<n;p++)0!==t[A+p]&&(o[G[t[A+p]]++]=p);if(0===e?(F=k=o,I=19):1===e?(F=st,R-=257,k=gt,x-=257,I=256):(F=ct,k=ut,I=-1),S=0,p=0,B=E,l=i,v=y,m=0,c=-1,u=(w=1<<y)-1,1===e&&w>852||2===e&&w>592)return 1;for(;;){C=B-m,o[p]<I?(h=0,f=o[p]):o[p]>I?(h=k[x+o[p]],f=F[R+o[p]]):(h=96,f=0),s=1<<B-m,E=g=1<<v;do{r[l+(S>>m)+(g-=s)]=C<<24|h<<16|f|0}while(0!==g);for(s=1<<B-1;S&s;)s>>=1;if(0!==s?(S&=s-1,S+=s):S=0,p++,0===--D[B]){if(B===Q)break;B=t[A+o[p]]}if(B>y&&(S&u)!==c){for(0===m&&(m=y),l+=E,b=1<<(v=B-m);v+m<Q&&!((b-=D[v+m])<=0);)v++,b<<=1;if(w+=1<<v,1===e&&w>852||2===e&&w>592)return 1;r[c=S&u]=y<<24|v<<16|l-i|0}}return 0!==S&&(r[l+S]=B-m<<24|64<<16|0),a.bits=y,0},It=K.Z_FINISH,Ct=K.Z_BLOCK,ht=K.Z_TREES,ft=K.Z_OK,dt=K.Z_STREAM_END,Bt=K.Z_NEED_DICT,pt=K.Z_STREAM_ERROR,Et=K.Z_DATA_ERROR,Qt=K.Z_MEM_ERROR,yt=K.Z_BUF_ERROR,vt=K.Z_DEFLATED,mt=function(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)};function bt(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var wt,St,Ft=function(e){if(!e||!e.state)return pt;var t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,ft},Rt=function(e){if(!e||!e.state)return pt;var t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ft(e)},Dt=function(e,t){var A;if(!e||!e.state)return pt;var n=e.state;return t<0?(A=0,t=-t):(A=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?pt:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=A,n.wbits=t,Rt(e))},Gt=function(e,t){if(!e)return pt;var A=new bt;e.state=A,A.window=null;var n=Dt(e,t);return n!==ft&&(e.state=null),n},kt=!0,xt=function(e){if(kt){wt=new Int32Array(512),St=new Int32Array(32);for(var t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(lt(1,e.lens,0,288,wt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;lt(2,e.lens,0,32,St,0,e.work,{bits:5}),kt=!1}e.lencode=wt,e.lenbits=9,e.distcode=St,e.distbits=5},Nt=function(e,t,A,n){var r,i=e.state;return null===i.window&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=new Uint8Array(i.wsize)),n>=i.wsize?(i.window.set(t.subarray(A-i.wsize,A),0),i.wnext=0,i.whave=i.wsize):((r=i.wsize-i.wnext)>n&&(r=n),i.window.set(t.subarray(A-n,A-n+r),i.wnext),(n-=r)?(i.window.set(t.subarray(A-n,A),0),i.wnext=n,i.whave=i.wsize):(i.wnext+=r,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=r))),0},Ut={inflateReset:Rt,inflateReset2:Dt,inflateResetKeep:Ft,inflateInit:function(e){return Gt(e,15)},inflateInit2:Gt,inflate:function(e,t){var A,n,r,i,o,a,s,g,c,u,l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w=0,S=new Uint8Array(4),F=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return pt;12===(A=e.state).mode&&(A.mode=13),o=e.next_out,r=e.output,s=e.avail_out,i=e.next_in,n=e.input,a=e.avail_in,g=A.hold,c=A.bits,u=a,l=s,v=ft;e:for(;;)switch(A.mode){case 1:if(0===A.wrap){A.mode=13;break}for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(2&A.wrap&&35615===g){A.check=0,S[0]=255&g,S[1]=g>>>8&255,A.check=P(A.check,S,2,0),g=0,c=0,A.mode=2;break}if(A.flags=0,A.head&&(A.head.done=!1),!(1&A.wrap)||(((255&g)<<8)+(g>>8))%31){e.msg="incorrect header check",A.mode=30;break}if((15&g)!==vt){e.msg="unknown compression method",A.mode=30;break}if(c-=4,y=8+(15&(g>>>=4)),0===A.wbits)A.wbits=y;else if(y>A.wbits){e.msg="invalid window size",A.mode=30;break}A.dmax=1<<A.wbits,e.adler=A.check=1,A.mode=512&g?10:12,g=0,c=0;break;case 2:for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(A.flags=g,(255&A.flags)!==vt){e.msg="unknown compression method",A.mode=30;break}if(57344&A.flags){e.msg="unknown header flags set",A.mode=30;break}A.head&&(A.head.text=g>>8&1),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,A.check=P(A.check,S,2,0)),g=0,c=0,A.mode=3;case 3:for(;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.head&&(A.head.time=g),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,S[2]=g>>>16&255,S[3]=g>>>24&255,A.check=P(A.check,S,4,0)),g=0,c=0,A.mode=4;case 4:for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.head&&(A.head.xflags=255&g,A.head.os=g>>8),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,A.check=P(A.check,S,2,0)),g=0,c=0,A.mode=5;case 5:if(1024&A.flags){for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.length=g,A.head&&(A.head.extra_len=g),512&A.flags&&(S[0]=255&g,S[1]=g>>>8&255,A.check=P(A.check,S,2,0)),g=0,c=0}else A.head&&(A.head.extra=null);A.mode=6;case 6:if(1024&A.flags&&((I=A.length)>a&&(I=a),I&&(A.head&&(y=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Uint8Array(A.head.extra_len)),A.head.extra.set(n.subarray(i,i+I),y)),512&A.flags&&(A.check=P(A.check,n,I,i)),a-=I,i+=I,A.length-=I),A.length))break e;A.length=0,A.mode=7;case 7:if(2048&A.flags){if(0===a)break e;I=0;do{y=n[i+I++],A.head&&y&&A.length<65536&&(A.head.name+=String.fromCharCode(y))}while(y&&I<a);if(512&A.flags&&(A.check=P(A.check,n,I,i)),a-=I,i+=I,y)break e}else A.head&&(A.head.name=null);A.length=0,A.mode=8;case 8:if(4096&A.flags){if(0===a)break e;I=0;do{y=n[i+I++],A.head&&y&&A.length<65536&&(A.head.comment+=String.fromCharCode(y))}while(y&&I<a);if(512&A.flags&&(A.check=P(A.check,n,I,i)),a-=I,i+=I,y)break e}else A.head&&(A.head.comment=null);A.mode=9;case 9:if(512&A.flags){for(;c<16;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(g!==(65535&A.check)){e.msg="header crc mismatch",A.mode=30;break}g=0,c=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),e.adler=A.check=0,A.mode=12;break;case 10:for(;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}e.adler=A.check=mt(g),g=0,c=0,A.mode=11;case 11:if(0===A.havedict)return e.next_out=o,e.avail_out=s,e.next_in=i,e.avail_in=a,A.hold=g,A.bits=c,Bt;e.adler=A.check=1,A.mode=12;case 12:if(t===Ct||t===ht)break e;case 13:if(A.last){g>>>=7&c,c-=7&c,A.mode=27;break}for(;c<3;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}switch(A.last=1&g,c-=1,3&(g>>>=1)){case 0:A.mode=14;break;case 1:if(xt(A),A.mode=20,t===ht){g>>>=2,c-=2;break e}break;case 2:A.mode=17;break;case 3:e.msg="invalid block type",A.mode=30}g>>>=2,c-=2;break;case 14:for(g>>>=7&c,c-=7&c;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if((65535&g)!==(g>>>16^65535)){e.msg="invalid stored block lengths",A.mode=30;break}if(A.length=65535&g,g=0,c=0,A.mode=15,t===ht)break e;case 15:A.mode=16;case 16:if(I=A.length){if(I>a&&(I=a),I>s&&(I=s),0===I)break e;r.set(n.subarray(i,i+I),o),a-=I,i+=I,s-=I,o+=I,A.length-=I;break}A.mode=12;break;case 17:for(;c<14;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(A.nlen=257+(31&g),g>>>=5,c-=5,A.ndist=1+(31&g),g>>>=5,c-=5,A.ncode=4+(15&g),g>>>=4,c-=4,A.nlen>286||A.ndist>30){e.msg="too many length or distance symbols",A.mode=30;break}A.have=0,A.mode=18;case 18:for(;A.have<A.ncode;){for(;c<3;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.lens[F[A.have++]]=7&g,g>>>=3,c-=3}for(;A.have<19;)A.lens[F[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,m={bits:A.lenbits},v=lt(0,A.lens,0,19,A.lencode,0,A.work,m),A.lenbits=m.bits,v){e.msg="invalid code lengths set",A.mode=30;break}A.have=0,A.mode=19;case 19:for(;A.have<A.nlen+A.ndist;){for(;d=(w=A.lencode[g&(1<<A.lenbits)-1])>>>16&255,B=65535&w,!((f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(B<16)g>>>=f,c-=f,A.lens[A.have++]=B;else{if(16===B){for(b=f+2;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(g>>>=f,c-=f,0===A.have){e.msg="invalid bit length repeat",A.mode=30;break}y=A.lens[A.have-1],I=3+(3&g),g>>>=2,c-=2}else if(17===B){for(b=f+3;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}c-=f,y=0,I=3+(7&(g>>>=f)),g>>>=3,c-=3}else{for(b=f+7;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}c-=f,y=0,I=11+(127&(g>>>=f)),g>>>=7,c-=7}if(A.have+I>A.nlen+A.ndist){e.msg="invalid bit length repeat",A.mode=30;break}for(;I--;)A.lens[A.have++]=y}}if(30===A.mode)break;if(0===A.lens[256]){e.msg="invalid code -- missing end-of-block",A.mode=30;break}if(A.lenbits=9,m={bits:A.lenbits},v=lt(1,A.lens,0,A.nlen,A.lencode,0,A.work,m),A.lenbits=m.bits,v){e.msg="invalid literal/lengths set",A.mode=30;break}if(A.distbits=6,A.distcode=A.distdyn,m={bits:A.distbits},v=lt(2,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,m),A.distbits=m.bits,v){e.msg="invalid distances set",A.mode=30;break}if(A.mode=20,t===ht)break e;case 20:A.mode=21;case 21:if(a>=6&&s>=258){e.next_out=o,e.avail_out=s,e.next_in=i,e.avail_in=a,A.hold=g,A.bits=c,at(e,l),o=e.next_out,r=e.output,s=e.avail_out,i=e.next_in,n=e.input,a=e.avail_in,g=A.hold,c=A.bits,12===A.mode&&(A.back=-1);break}for(A.back=0;d=(w=A.lencode[g&(1<<A.lenbits)-1])>>>16&255,B=65535&w,!((f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(d&&0===(240&d)){for(p=f,E=d,Q=B;d=(w=A.lencode[Q+((g&(1<<p+E)-1)>>p)])>>>16&255,B=65535&w,!(p+(f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}g>>>=p,c-=p,A.back+=p}if(g>>>=f,c-=f,A.back+=f,A.length=B,0===d){A.mode=26;break}if(32&d){A.back=-1,A.mode=12;break}if(64&d){e.msg="invalid literal/length code",A.mode=30;break}A.extra=15&d,A.mode=22;case 22:if(A.extra){for(b=A.extra;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.length+=g&(1<<A.extra)-1,g>>>=A.extra,c-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=23;case 23:for(;d=(w=A.distcode[g&(1<<A.distbits)-1])>>>16&255,B=65535&w,!((f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(0===(240&d)){for(p=f,E=d,Q=B;d=(w=A.distcode[Q+((g&(1<<p+E)-1)>>p)])>>>16&255,B=65535&w,!(p+(f=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}g>>>=p,c-=p,A.back+=p}if(g>>>=f,c-=f,A.back+=f,64&d){e.msg="invalid distance code",A.mode=30;break}A.offset=B,A.extra=15&d,A.mode=24;case 24:if(A.extra){for(b=A.extra;c<b;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}A.offset+=g&(1<<A.extra)-1,g>>>=A.extra,c-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){e.msg="invalid distance too far back",A.mode=30;break}A.mode=25;case 25:if(0===s)break e;if(I=l-s,A.offset>I){if((I=A.offset-I)>A.whave&&A.sane){e.msg="invalid distance too far back",A.mode=30;break}I>A.wnext?(I-=A.wnext,C=A.wsize-I):C=A.wnext-I,I>A.length&&(I=A.length),h=A.window}else h=r,C=o-A.offset,I=A.length;I>s&&(I=s),s-=I,A.length-=I;do{r[o++]=h[C++]}while(--I);0===A.length&&(A.mode=21);break;case 26:if(0===s)break e;r[o++]=A.length,s--,A.mode=21;break;case 27:if(A.wrap){for(;c<32;){if(0===a)break e;a--,g|=n[i++]<<c,c+=8}if(l-=s,e.total_out+=l,A.total+=l,l&&(e.adler=A.check=A.flags?P(A.check,r,l,o-l):J(A.check,r,l,o-l)),l=s,(A.flags?g:mt(g))!==A.check){e.msg="incorrect data check",A.mode=30;break}g=0,c=0}A.mode=28;case 28:if(A.wrap&&A.flags){for(;c<32;){if(0===a)break e;a--,g+=n[i++]<<c,c+=8}if(g!==(4294967295&A.total)){e.msg="incorrect length check",A.mode=30;break}g=0,c=0}A.mode=29;case 29:v=dt;break e;case 30:v=Et;break e;case 31:return Qt;case 32:default:return pt}return e.next_out=o,e.avail_out=s,e.next_in=i,e.avail_in=a,A.hold=g,A.bits=c,(A.wsize||l!==e.avail_out&&A.mode<30&&(A.mode<27||t!==It))&&Nt(e,e.output,e.next_out,l-e.avail_out),u-=e.avail_in,l-=e.avail_out,e.total_in+=u,e.total_out+=l,A.total+=l,A.wrap&&l&&(e.adler=A.check=A.flags?P(A.check,r,l,e.next_out-l):J(A.check,r,l,e.next_out-l)),e.data_type=A.bits+(A.last?64:0)+(12===A.mode?128:0)+(20===A.mode||15===A.mode?256:0),(0===u&&0===l||t===It)&&v===ft&&(v=yt),v},inflateEnd:function(e){if(!e||!e.state)return pt;var t=e.state;return t.window&&(t.window=null),e.state=null,ft},inflateGetHeader:function(e,t){if(!e||!e.state)return pt;var A=e.state;return 0===(2&A.wrap)?pt:(A.head=t,t.done=!1,ft)},inflateSetDictionary:function(e,t){var A,n=t.length;return e&&e.state?0!==(A=e.state).wrap&&11!==A.mode?pt:11===A.mode&&J(1,t,n,0)!==A.check?Et:Nt(e,t,n,n)?(A.mode=31,Qt):(A.havedict=1,ft):pt},inflateInfo:"pako inflate (from Nodeca project)"};var _t=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1},Mt=Object.prototype.toString,Ot=K.Z_NO_FLUSH,Lt=K.Z_FINISH,Tt=K.Z_OK,Zt=K.Z_STREAM_END,Ht=K.Z_NEED_DICT,Yt=K.Z_STREAM_ERROR,Jt=K.Z_DATA_ERROR,jt=K.Z_MEM_ERROR;function Pt(e){this.options=Le({chunkSize:65536,windowBits:15,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0===(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ve,this.strm.avail_out=0;var A=Ut.inflateInit2(this.strm,t.windowBits);if(A!==Tt)throw new Error(V[A]);if(this.header=new _t,Ut.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"===typeof t.dictionary?t.dictionary=Je(t.dictionary):"[object ArrayBuffer]"===Mt.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(A=Ut.inflateSetDictionary(this.strm,t.dictionary))!==Tt))throw new Error(V[A])}function Vt(e,t){var A=new Pt(t);if(A.push(e),A.err)throw A.msg||V[A.err];return A.result}Pt.prototype.push=function(e,t){var A,n,r,i=this.strm,o=this.options.chunkSize,a=this.options.dictionary;if(this.ended)return!1;for(n=t===~~t?t:!0===t?Lt:Ot,"[object ArrayBuffer]"===Mt.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(o),i.next_out=0,i.avail_out=o),(A=Ut.inflate(i,n))===Ht&&a&&((A=Ut.inflateSetDictionary(i,a))===Tt?A=Ut.inflate(i,n):A===Jt&&(A=Ht));i.avail_in>0&&A===Zt&&i.state.wrap>0&&0!==e[i.next_in];)Ut.inflateReset(i),A=Ut.inflate(i,n);switch(A){case Yt:case Jt:case Ht:case jt:return this.onEnd(A),this.ended=!0,!1}if(r=i.avail_out,i.next_out&&(0===i.avail_out||A===Zt))if("string"===this.options.to){var s=Pe(i.output,i.next_out),g=i.next_out-s,c=je(i.output,s);i.next_out=g,i.avail_out=o-g,g&&i.output.set(i.output.subarray(s,s+g),0),this.onData(c)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(A!==Tt||0!==r){if(A===Zt)return A=Ut.inflateEnd(this.strm),this.onEnd(A),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Pt.prototype.onData=function(e){this.chunks.push(e)},Pt.prototype.onEnd=function(e){e===Tt&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Te(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Kt={Inflate:Pt,inflate:Vt,inflateRaw:function(e,t){return(t=t||{}).raw=!0,Vt(e,t)},ungzip:Vt,constants:K},Wt={Deflate:ot.Deflate,deflate:ot.deflate,deflateRaw:ot.deflateRaw,gzip:ot.gzip,Inflate:Kt.Inflate,inflate:Kt.inflate,inflateRaw:Kt.inflateRaw,ungzip:Kt.ungzip,constants:K},Xt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(Object(s.a)(this,e),t<0||t>9)throw new Error("Invalid gzip compression level, it should be between 0 and 9");this.level=t}return Object(g.a)(e,[{key:"encode",value:function(e){return Wt.gzip(e,{level:this.level})}},{key:"decode",value:function(e,t){var A=Wt.ungzip(e);return void 0!==t?(t.set(A),t):A}}],[{key:"fromConfig",value:function(t){return new e(t.level)}}]),e}();Xt.codecId="gzip";var qt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(Object(s.a)(this,e),t<-1||t>9)throw new Error("Invalid zlib compression level, it should be between -1 and 9");this.level=t}return Object(g.a)(e,[{key:"encode",value:function(e){return Wt.deflate(e,{level:this.level})}},{key:"decode",value:function(e,t){var A=Wt.inflate(e);return void 0!==t?(t.set(A),t):A}}],[{key:"fromConfig",value:function(t){return new e(t.level)}}]),e}();qt.codecId="zlib";var zt="undefined"!==typeof e&&null!=e.versions&&null!=e.versions.node?function(e){return new Uint8Array(n.from(e,"base64"))}:function(){for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:4*t-205]=t;return function(t){for(var A=t.length,n=new Uint8Array(3*(A-("="==t[A-1])-("="==t[A-2]))/4|0),r=0,i=0;r<A;){var o=e[t.charCodeAt(r++)],a=e[t.charCodeAt(r++)],s=e[t.charCodeAt(r++)],g=e[t.charCodeAt(r++)];n[i++]=o<<2|a>>4,n[i++]=a<<4|s>>2,n[i++]=s<<6|g}return n}}();function $t(e,t){return e({noInitialRun:!0,wasmBinary:zt(t)})}var eA,tA=function(){"undefined"!==typeof document&&document.currentScript&&document.currentScript.src;return function(e){var t,A,n;e=e||{},t||(t="undefined"!==typeof e?e:{}),t.ready=new Promise((function(e,t){A=e,n=t}));var r,i={};for(r in t)t.hasOwnProperty(r)&&(i[r]=t[r]);var o,a="./this.program",s=t.print||console.log.bind(console),g=t.printErr||console.warn.bind(console);for(r in i)i.hasOwnProperty(r)&&(t[r]=i[r]);i=null,t.thisProgram&&(a=t.thisProgram),t.wasmBinary&&(o=t.wasmBinary),t.noExitRuntime&&t.noExitRuntime,"object"!==typeof WebAssembly&&T("no native wasm support detected");var c,u=!1,l="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function I(e,t,A){var n=t+A;for(A=t;e[A]&&!(A>=n);)++A;if(16<A-t&&e.subarray&&l)return l.decode(e.subarray(t,A));for(n="";t<A;){var r=e[t++];if(128&r){var i=63&e[t++];if(192==(224&r))n+=String.fromCharCode((31&r)<<6|i);else{var o=63&e[t++];65536>(r=224==(240&r)?(15&r)<<12|i<<6|o:(7&r)<<18|i<<12|o<<6|63&e[t++])?n+=String.fromCharCode(r):(r-=65536,n+=String.fromCharCode(55296|r>>10,56320|1023&r))}}else n+=String.fromCharCode(r)}return n}var C,h,f,d,B,p,E,Q,y,v="undefined"!==typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function m(e,t){for(var A=e>>1,n=A+t/2;!(A>=n)&&B[A];)++A;if(32<(A<<=1)-e&&v)return v.decode(f.subarray(e,A));for(A=0,n="";;){var r=d[e+2*A>>1];if(0==r||A==t/2)return n;++A,n+=String.fromCharCode(r)}}function b(e,t,A){if(void 0===A&&(A=2147483647),2>A)return 0;var n=t;A=(A-=2)<2*e.length?A/2:e.length;for(var r=0;r<A;++r)d[t>>1]=e.charCodeAt(r),t+=2;return d[t>>1]=0,t-n}function w(e){return 2*e.length}function S(e,t){for(var A=0,n="";!(A>=t/4);){var r=p[e+4*A>>2];if(0==r)break;++A,65536<=r?(r-=65536,n+=String.fromCharCode(55296|r>>10,56320|1023&r)):n+=String.fromCharCode(r)}return n}function F(e,t,A){if(void 0===A&&(A=2147483647),4>A)return 0;var n=t;A=n+A-4;for(var r=0;r<e.length;++r){var i=e.charCodeAt(r);if(55296<=i&&57343>=i)i=65536+((1023&i)<<10)|1023&e.charCodeAt(++r);if(p[t>>2]=i,(t+=4)+4>A)break}return p[t>>2]=0,t-n}function R(e){for(var t=0,A=0;A<e.length;++A){var n=e.charCodeAt(A);55296<=n&&57343>=n&&++A,t+=4}return t}function D(e){C=e,t.HEAP8=h=new Int8Array(e),t.HEAP16=d=new Int16Array(e),t.HEAP32=p=new Int32Array(e),t.HEAPU8=f=new Uint8Array(e),t.HEAPU16=B=new Uint16Array(e),t.HEAPU32=E=new Uint32Array(e),t.HEAPF32=Q=new Float32Array(e),t.HEAPF64=y=new Float64Array(e)}var G=t.INITIAL_MEMORY||16777216;(c=t.wasmMemory?t.wasmMemory:new WebAssembly.Memory({initial:G/65536,maximum:32768}))&&(C=c.buffer),G=C.byteLength,D(C);var k,x=[],N=[],U=[],_=[];function M(){var e=t.preRun.shift();x.unshift(e)}var O=0,L=null;function T(e){throw t.onAbort&&t.onAbort(e),g(e),u=!0,e=new WebAssembly.RuntimeError("abort("+e+"). Build with -s ASSERTIONS=1 for more info."),n(e),e}function Z(e){var t=Y;return String.prototype.startsWith?t.startsWith(e):0===t.indexOf(e)}function H(){return Z("data:application/octet-stream;base64,")}t.preloadedImages={},t.preloadedAudios={};var Y="blosc_codec.wasm";if(!H()){var J=Y;Y=t.locateFile?t.locateFile(J,""):""+J}function j(){try{if(o)return new Uint8Array(o);throw"both async and sync fetching of the wasm failed"}catch(e){T(e)}}function P(e){for(;0<e.length;){var A=e.shift();if("function"==typeof A)A(t);else{var n=A.T;"number"===typeof n?void 0===A.O?k.get(n)():k.get(n)(A.O):n(void 0===A.O?null:A.O)}}}function V(e){this.N=e-16,this.$=function(e){p[this.N+8>>2]=e},this.X=function(e){p[this.N+0>>2]=e},this.Y=function(){p[this.N+4>>2]=0},this.W=function(){h[this.N+12>>0]=0},this.Z=function(){h[this.N+13>>0]=0},this.V=function(e,t){this.$(e),this.X(t),this.Y(),this.W(),this.Z()}}function K(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var W=void 0;function X(e){for(var t="";f[e];)t+=W[f[e++]];return t}var q={},z={},$={};function ee(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&57>=t?"_"+e:e}function te(e,t){return e=ee(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function Ae(e){var t=Error,A=te(e,(function(t){this.name=e,this.message=t,void 0!==(t=Error(t).stack)&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return A.prototype=Object.create(t.prototype),A.prototype.constructor=A,A.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},A}var ne=void 0;function re(e){throw new ne(e)}var ie=void 0;function oe(e,t,A){if(A=A||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||re('type "'+n+'" must have a positive integer typeid pointer'),z.hasOwnProperty(e)){if(A.U)return;re("Cannot register type '"+n+"' twice")}z[e]=t,delete $[e],q.hasOwnProperty(e)&&(t=q[e],delete q[e],t.forEach((function(e){e()})))}var ae=[],se=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function ge(e){4<e&&0===--se[e].P&&(se[e]=void 0,ae.push(e))}function ce(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=ae.length?ae.pop():se.length;return se[t]={P:1,value:e},t}}function ue(e){return this.fromWireType(E[e>>2])}function le(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function Ie(e,t){switch(t){case 2:return function(e){return this.fromWireType(Q[e>>2])};case 3:return function(e){return this.fromWireType(y[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function Ce(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function he(e,A,n){t.hasOwnProperty(e)?((void 0===n||void 0!==t[e].L&&void 0!==t[e].L[n])&&re("Cannot register public name '"+e+"' twice"),function(e,A){var n=t;if(void 0===n[e].L){var r=n[e];n[e]=function(){return n[e].L.hasOwnProperty(arguments.length)||re("Function '"+A+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+n[e].L+")!"),n[e].L[arguments.length].apply(this,arguments)},n[e].L=[],n[e].L[r.S]=r}}(e,e),t.hasOwnProperty(n)&&re("Cannot register multiple overloads of a function with the same number of arguments ("+n+")!"),t[e].L[n]=A):(t[e]=A,void 0!==n&&(t[e].ba=n))}function fe(e,A){var n=-1!=(e=X(e)).indexOf("j")?function(e,A){0<=e.indexOf("j")||T("Assertion failed: getDynCaller should only be called with i64 sigs");var n=[];return function(){n.length=arguments.length;for(var r=0;r<arguments.length;r++)n[r]=arguments[r];return-1!=e.indexOf("j")?n&&n.length?t["dynCall_"+e].apply(null,[A].concat(n)):t["dynCall_"+e].call(null,A):k.get(A).apply(null,n)}}(e,A):k.get(A);return"function"!==typeof n&&re("unknown function pointer with signature "+e+": "+A),n}var de=void 0;function Be(e){var t=X(e=Ge(e));return De(e),t}function pe(e,t,A){switch(t){case 0:return A?function(e){return h[e]}:function(e){return f[e]};case 1:return A?function(e){return d[e>>1]}:function(e){return B[e>>1]};case 2:return A?function(e){return p[e>>2]}:function(e){return E[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var Ee={};function Qe(){if(!ye){var e,t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:a||"./this.program"};for(e in Ee)t[e]=Ee[e];var A=[];for(e in t)A.push(e+"="+t[e]);ye=A}return ye}for(var ye,ve=[null,[],[]],me=Array(256),be=0;256>be;++be)me[be]=String.fromCharCode(be);W=me,ne=t.BindingError=Ae("BindingError"),ie=t.InternalError=Ae("InternalError"),t.count_emval_handles=function(){for(var e=0,t=5;t<se.length;++t)void 0!==se[t]&&++e;return e},t.get_first_emval=function(){for(var e=5;e<se.length;++e)if(void 0!==se[e])return se[e];return null},de=t.UnboundTypeError=Ae("UnboundTypeError"),N.push({T:function(){Fe()}});var we={p:function(e){return Re(e+16)+16},o:function(e,t,A){throw new V(e).V(t,A),e},z:function(e,t,A,n,r){var i=K(A);oe(e,{name:t=X(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:r},argPackAdvance:8,readValueFromPointer:function(e){if(1===A)var n=h;else if(2===A)n=d;else{if(4!==A)throw new TypeError("Unknown boolean type size: "+t);n=p}return this.fromWireType(n[e>>i])},M:null})},y:function(e,t){oe(e,{name:t=X(t),fromWireType:function(e){var t=se[e].value;return ge(e),t},toWireType:function(e,t){return ce(t)},argPackAdvance:8,readValueFromPointer:ue,M:null})},h:function(e,t,A){A=K(A),oe(e,{name:t=X(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!==typeof t&&"boolean"!==typeof t)throw new TypeError('Cannot convert "'+le(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:Ie(t,A),M:null})},e:function(e,A,n,r,i,o){var a=function(e,t){for(var A=[],n=0;n<e;n++)A.push(p[(t>>2)+n]);return A}(A,n);e=X(e),i=fe(r,i),he(e,(function(){!function(e,t){var A=[],n={};throw t.forEach((function e(t){n[t]||z[t]||($[t]?$[t].forEach(e):(A.push(t),n[t]=!0))})),new de(e+": "+A.map(Be).join([", "]))}("Cannot call "+e+" due to unbound types",a)}),A-1),function(e,t){function A(e){if((e=t(e)).length!==n.length)throw new ie("Mismatched type converter count");for(var A=0;A<n.length;++A)oe(n[A],e[A])}var n=[];n.forEach((function(t){$[t]=e}));var r=Array(e.length),i=[],o=0;e.forEach((function(e,t){z.hasOwnProperty(e)?r[t]=z[e]:(i.push(e),q.hasOwnProperty(e)||(q[e]=[]),q[e].push((function(){r[t]=z[e],++o===i.length&&A(r)})))})),0===i.length&&A(r)}(a,(function(n){var r=e,a=e;n=[n[0],null].concat(n.slice(1));var s=i,g=n.length;2>g&&re("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var c=null!==n[1]&&!1,u=!1,l=1;l<n.length;++l)if(null!==n[l]&&void 0===n[l].M){u=!0;break}var I="void"!==n[0].name,C="",h="";for(l=0;l<g-2;++l)C+=(0!==l?", ":"")+"arg"+l,h+=(0!==l?", ":"")+"arg"+l+"Wired";a="return function "+ee(a)+"("+C+") {\nif (arguments.length !== "+(g-2)+") {\nthrowBindingError('function "+a+" called with ' + arguments.length + ' arguments, expected "+(g-2)+" args!');\n}\n",u&&(a+="var destructors = [];\n");var f=u?"destructors":"null";for(C="throwBindingError invoker fn runDestructors retType classParam".split(" "),s=[re,s,o,Ce,n[0],n[1]],c&&(a+="var thisWired = classParam.toWireType("+f+", this);\n"),l=0;l<g-2;++l)a+="var arg"+l+"Wired = argType"+l+".toWireType("+f+", arg"+l+"); // "+n[l+2].name+"\n",C.push("argType"+l),s.push(n[l+2]);if(c&&(h="thisWired"+(0<h.length?", ":"")+h),a+=(I?"var rv = ":"")+"invoker(fn"+(0<h.length?", ":"")+h+");\n",u)a+="runDestructors(destructors);\n";else for(l=c?1:2;l<n.length;++l)g=1===l?"thisWired":"arg"+(l-2)+"Wired",null!==n[l].M&&(a+=g+"_dtor("+g+"); // "+n[l].name+"\n",C.push(g+"_dtor"),s.push(n[l].M));if(I&&(a+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),C.push(a+"}\n"),n=function(e){var t=Function;if(!(t instanceof Function))throw new TypeError("new_ called with constructor type "+typeof t+" which is not a function");var A=te(t.name||"unknownFunctionName",(function(){}));return A.prototype=t.prototype,A=new A,(e=t.apply(A,e))instanceof Object?e:A}(C).apply(null,s),l=A-1,!t.hasOwnProperty(r))throw new ie("Replacing nonexistant public symbol");return void 0!==t[r].L&&void 0!==l?t[r].L[l]=n:(t[r]=n,t[r].S=l),[]}))},c:function(e,t,A,n,r){function i(e){return e}t=X(t),-1===r&&(r=4294967295);var o=K(A);if(0===n){var a=32-8*A;i=function(e){return e<<a>>>a}}var s=-1!=t.indexOf("unsigned");oe(e,{name:t,fromWireType:i,toWireType:function(e,A){if("number"!==typeof A&&"boolean"!==typeof A)throw new TypeError('Cannot convert "'+le(A)+'" to '+this.name);if(A<n||A>r)throw new TypeError('Passing a number "'+le(A)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+n+", "+r+"]!");return s?A>>>0:0|A},argPackAdvance:8,readValueFromPointer:pe(t,o,0!==n),M:null})},b:function(e,t,A){function n(e){var t=E;return new r(C,t[(e>>=2)+1],t[e])}var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];oe(e,{name:A=X(A),fromWireType:n,argPackAdvance:8,readValueFromPointer:n},{U:!0})},i:function(e,t){var A="std::string"===(t=X(t));oe(e,{name:t,fromWireType:function(e){var t=E[e>>2];if(A)for(var n=e+4,r=0;r<=t;++r){var i=e+4+r;if(r==t||0==f[i]){if(n=n?I(f,n,i-n):"",void 0===o)var o=n;else o+=String.fromCharCode(0),o+=n;n=i+1}}else{for(o=Array(t),r=0;r<t;++r)o[r]=String.fromCharCode(f[e+4+r]);o=o.join("")}return De(e),o},toWireType:function(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var n="string"===typeof t;n||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||re("Cannot pass non-string to std::string");var r=(A&&n?function(){for(var e=0,A=0;A<t.length;++A){var n=t.charCodeAt(A);55296<=n&&57343>=n&&(n=65536+((1023&n)<<10)|1023&t.charCodeAt(++A)),127>=n?++e:e=2047>=n?e+2:65535>=n?e+3:e+4}return e}:function(){return t.length})(),i=Re(4+r+1);if(E[i>>2]=r,A&&n)!function(e,t,A){var n=f;if(0<A){A=t+A-1;for(var r=0;r<e.length;++r){var i=e.charCodeAt(r);if(55296<=i&&57343>=i)i=65536+((1023&i)<<10)|1023&e.charCodeAt(++r);if(127>=i){if(t>=A)break;n[t++]=i}else{if(2047>=i){if(t+1>=A)break;n[t++]=192|i>>6}else{if(65535>=i){if(t+2>=A)break;n[t++]=224|i>>12}else{if(t+3>=A)break;n[t++]=240|i>>18,n[t++]=128|i>>12&63}n[t++]=128|i>>6&63}n[t++]=128|63&i}}n[t]=0}}(t,i+4,r+1);else if(n)for(n=0;n<r;++n){var o=t.charCodeAt(n);255<o&&(De(i),re("String has UTF-16 code units that do not fit in 8 bits")),f[i+4+n]=o}else for(n=0;n<r;++n)f[i+4+n]=t[n];return null!==e&&e.push(De,i),i},argPackAdvance:8,readValueFromPointer:ue,M:function(e){De(e)}})},d:function(e,t,A){if(A=X(A),2===t)var n=m,r=b,i=w,o=function(){return B},a=1;else 4===t&&(n=S,r=F,i=R,o=function(){return E},a=2);oe(e,{name:A,fromWireType:function(e){for(var A,r=E[e>>2],i=o(),s=e+4,g=0;g<=r;++g){var c=e+4+g*t;g!=r&&0!=i[c>>a]||(s=n(s,c-s),void 0===A?A=s:(A+=String.fromCharCode(0),A+=s),s=c+t)}return De(e),A},toWireType:function(e,n){"string"!==typeof n&&re("Cannot pass non-string to C++ string type "+A);var o=i(n),s=Re(4+o+t);return E[s>>2]=o>>a,r(n,s+4,o+t),null!==e&&e.push(De,s),s},argPackAdvance:8,readValueFromPointer:ue,M:function(e){De(e)}})},A:function(e,t){oe(e,{aa:!0,name:t=X(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},n:ge,x:function(e){4<e&&(se[e].P+=1)},C:function(e,t){var A=z[e];return void 0===A&&re("_emval_take_value has unknown type "+Be(e)),ce(e=A.readValueFromPointer(t))},t:function(){T()},r:function(e,t,A){f.copyWithin(e,t,t+A)},s:function(e){e>>>=0;var t=f.length;if(2147483648<e)return!1;for(var A=1;4>=A;A*=2){var n=t*(1+.2/A);n=Math.min(n,e+100663296),0<(n=Math.max(16777216,e,n))%65536&&(n+=65536-n%65536);e:{try{c.grow(Math.min(2147483648,n)-C.byteLength+65535>>>16),D(c.buffer);var r=1;break e}catch(i){}r=void 0}if(r)return!0}return!1},u:function(e,t){var A=0;return Qe().forEach((function(n,r){var i=t+A;for(r=p[e+4*r>>2]=i,i=0;i<n.length;++i)h[r++>>0]=n.charCodeAt(i);h[r>>0]=0,A+=n.length+1})),0},v:function(e,t){var A=Qe();p[e>>2]=A.length;var n=0;return A.forEach((function(e){n+=e.length+1})),p[t>>2]=n,0},w:function(){return 0},q:function(){},g:function(e,t,A,n){for(var r=0,i=0;i<A;i++){for(var o=p[t+8*i>>2],a=p[t+(8*i+4)>>2],c=0;c<a;c++){var u=f[o+c],l=ve[e];0===u||10===u?((1===e?s:g)(I(l,0)),l.length=0):l.push(u)}r+=a}return p[n>>2]=r,0},a:c,l:function(){return 0},k:function(){return 0},j:function(){},B:function(){return 6},m:function(){},f:function(){}};!function(){function e(e){t.asm=e.exports,k=t.asm.D,O--,t.monitorRunDependencies&&t.monitorRunDependencies(O),0==O&&L&&(e=L,L=null,e())}function A(t){e(t.instance)}function r(e){return Promise.resolve().then(j).then((function(e){return WebAssembly.instantiate(e,i)})).then(e,(function(e){g("failed to asynchronously prepare wasm: "+e),T(e)}))}var i={a:we};if(O++,t.monitorRunDependencies&&t.monitorRunDependencies(O),t.instantiateWasm)try{return t.instantiateWasm(i,e)}catch(a){return g("Module.instantiateWasm callback failed with error: "+a),!1}(o||"function"!==typeof WebAssembly.instantiateStreaming||H()||Z("file://")||"function"!==typeof fetch?r(A):fetch(Y,{credentials:"same-origin"}).then((function(e){return WebAssembly.instantiateStreaming(e,i).then(A,(function(e){return g("wasm streaming compile failed: "+e),g("falling back to ArrayBuffer instantiation"),r(A)}))}))).catch(n)}();var Se,Fe=t.___wasm_call_ctors=function(){return(Fe=t.___wasm_call_ctors=t.asm.E).apply(null,arguments)},Re=t._malloc=function(){return(Re=t._malloc=t.asm.F).apply(null,arguments)},De=t._free=function(){return(De=t._free=t.asm.G).apply(null,arguments)},Ge=t.___getTypeName=function(){return(Ge=t.___getTypeName=t.asm.H).apply(null,arguments)};function ke(){function e(){if(!Se&&(Se=!0,t.calledRun=!0,!u)){if(P(N),P(U),A(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;){var e=t.postRun.shift();_.unshift(e)}P(_)}}if(!(0<O)){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)M();P(x),0<O||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),e()}),1)):e())}}if(t.___embind_register_native_and_builtin_types=function(){return(t.___embind_register_native_and_builtin_types=t.asm.I).apply(null,arguments)},t.dynCall_jiiiii=function(){return(t.dynCall_jiiiii=t.asm.J).apply(null,arguments)},t.dynCall_jiji=function(){return(t.dynCall_jiji=t.asm.K).apply(null,arguments)},L=function e(){Se||ke(),Se||(L=e)},t.run=ke,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();return!0,ke(),e.ready}}(),AA="AGFzbQEAAAABwAImYAF/AX9gA39/fwF/YAV/f39/fwF/YAJ/fwF/YAJ/fwBgAX8AYAN/f38AYAR/f39/AX9gBH9/f38AYAAAYAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAd/f39/f39/AX9gBH9/f38BfmAFf39/f38BfmAIf39/f39/f38Bf2AJf39/f39/f39/AX9gAn5/AX9gC39/f39/f39/f39/AX9gA39+fwF+YAN/f34AYAN/f34Bf2ADfn9/AX9gAn5+AX5gCH9/f39/f39/AGAJf39/f39/f39/AGAFf35/f38AYAABf2ANf39/f39/f39/f39/fwF/YA9/f39/f39/f39/f39/f38Bf2AFf39/fn8Bf2AGf3x/f39/AX9gAX8BfmACf38BfmAHf35/f39/fwF+YAF+AX5gBH5/f34BfgK0AR0BYQFiAAYBYQFjAAsBYQFkAAYBYQFlAAwBYQFmAAUBYQFnAAcBYQFoAAYBYQFpAAQBYQFqAAMBYQFrAAABYQFsAAABYQFtAAMBYQFuAAUBYQFvAAYBYQFwAAABYQFxAAIBYQFyAAEBYQFzAAABYQF0AAkBYQF1AAMBYQF2AAMBYQF3AAABYQF4AAUBYQF5AAQBYQF6AAsBYQFBAAQBYQFCAAcBYQFDAAMBYQFhAgGAAoCAAgOtBKsEBAEBAwIACAAAAAQHAQEBAAIBAAQDAQMBBAEFAwUFAAYAAwAIAgIDAQgBAwYBCwEBAAQYBAEEBwoGAwMLBwgBBggDCwUDAwMGCAEGBAYABwIGAAABAAIEBAYEBQMDAAsABgwDAAANBgIYAwkAAQwGBggAAgAAAAUQHQAEAQMbBwcHBwMDBh4TBAgBAgECCgcGCgYEAAQAARARAwAIAAYDBgAFBQUFBQUJCwUGAQAFBQICAgcHAwQEAAcSARIXJQQGAwMDAAUEAQABBQUDAAMGCgAFBQMBHwUDAwUFAREDBwoEAAUBAwcKCiEGBQEABgYGBQUIAxMNAAADAAkBBwcHBwcHBwcAAQgGBwMRAgICAgYCCAoCAgcCCAAFBAUFAAMAAAIKBBQACQwMCwMLCAgICwwAAQEFAAUABQkDAAMSEhcGAQAUAAAJCQkJBgAJCQkJCQkJCQkJCQkJDQ0ABgcBAQcHAgEBAgEEAwoABAcFBRwKCgoFAgoCAgMaGQUE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BCAGanQgAWohASACIARHIQwgBEEBaiEEIAwNAAsLIA1BAWoiDSACayIBIAcgAWtBAWoiCEkEQCAKQQJJIQYDQEEBIQQgBkUEQANAIARBAnQiCiADIAFBNGxqaiADIApqKAIAIAF2NgIAIAIgBEchCiAEQQFqIQQgCg0ACwsgAUEBaiIBIAhJDQALCyAAQQRqIAcgCyAJIANBpAVqIAMgAiANEJYDIAVBAToABSAFIAc6AAYgACAFKAIENgIACyAQIQQLIAVBEGokACAEC+ACAQl/IwBBEGsiBCQAIARBADYCDCAEQQA2AggCQCADQUBrIgkgAyAEQQhqIARBDGogASACEPsBIggQIQ0AIARBBGogACgCABA0QQEhASAEKAIMIgUgBC0ABEEBak0EQEEAIQIgBEEAOgAFIAQgBToABiAAIAQoAgQ2AgAgBUEBakEBSwRAA0AgAyABQQJ0aiIGKAIAIQcgBiACNgIAIAcgAUF/anQgAmohAiABIAVGIQYgAUEBaiEBIAZFDQALCyAEKAIIIgdFDQEgAEEEaiEKIAVBAWohC0EAIQADQCADIAAgCWotAAAiBUECdGoiBigCACIBIAFBASAFdEEBdSIMaiICSQRAIAsgBWshBQNAIAogAUEBdGoiAiAFOgABIAIgADoAACABQQFqIgEgBigCACAMaiICSQ0ACwsgBiACNgIAIABBAWoiACAHRw0ACwwBC0FUIQgLIARBEGokACAICxQAIAAoAABBgPqerQNsQSAgAWt2CygAAkACQAJAIAAoAowBQX9qDgIAAQILIAAgARDCAw8LIAAgARDHAwsLOgEBfyABIAAoAgRrIgEgACgCGCICQYAIaksEQCAAIAEgASACa0GAeGoiAEGABCAAQYAESRtrNgIYCwsVACAAEJEBBEAgACgCBA8LIAAtAAsLRQEBfwJAIAIgA00gACABTXINAANAIABBf2oiAC0AACACQX9qIgItAABHDQEgBEEBaiEEIAIgA00NASAAIAFLDQALCyAECwwAIABBICABa62IpwsQACAAIAEgAigCCHRBA3RqCxIAIABBwAAgAWutiKdBACABGwsvAEEgIAFrIgEgAkkEQCAAp0F/IAJ0QX9zcQ8LIAAgASACa62Ip0F/IAJ0QX9zcQsgACACrSAAIAGtQgp8IAN+fULjyJW9y5vvjU9+fEIK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nn9+QuPcypX8zvL1hX98IQYgBCIDIgFBCGoiBCACTQ0ACwsCQCADQQRqIgEgAksEQCADIQEMAQsgAygAAK1Ch5Wvr5i23puef34gBoVCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQYLIAEgAkkEQCAAIAVqQShqIQADQCABMQAAQsXP2bLx5brqJ34gBoVCC4lCh5Wvr5i23puef34hBiABQQFqIgEgAEcNAAsLIAZCIYggBoVCz9bTvtLHq9lCfiIGQh2IIAaFQvnz3fGZ9pmrFn4iBkIgiCAGhQv4AgICfwR+IAAgACkDACACrXw3AwACQAJAIAAoAkgiAyACakEfTQRAIAAgA2pBKGogASACEKsBIAAoAkggAmohAQwBCyABIAJqIQQCQAJ/IAMEQCAAQShqIgIgA2ogAUEgIANrEKsBIAAgACkDCCACKQAAEE43AwggACAAKQMQIAApADAQTjcDECAAIAApAxggACkAOBBONwMYIAAgACkDICAAQUBrKQAAEE43AyAgACgCSCECIABBADYCSCABIAJrQSBqIQELIAFBIGogBEsLBEAgASECDAELIARBYGohAyAAKQMgIQUgACkDGCEGIAApAxAhByAAKQMIIQgDQCAIIAEpAAAQTiEIIAcgASkACBBOIQcgBiABKQAQEE4hBiAFIAEpABgQTiEFIAFBIGoiAiEBIAIgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyACIARPDQEgAEEoaiACIAQgAmsiARCrAQsgACABNgJICwtlACAAQgA3AyggAEL56tDQ58mh5OEANwMgIABCADcDGCAAQs/W077Sx6vZQjcDECAAQtbrgu7q/Yn14AA3AwggAEIANwMAIABCADcDMCAAQgA3AzggAEFAa0IANwMAIABCADcDSAsVACABBEAgAiAAIAERAwAPCyAAEEwLYQEDf0F+IQECQCAARQ0AIAAoAhwiAkUNACAAKAIkIgNFDQAgAigCNCIBBEAgACgCKCABIAMRBAAgACgCJCEDIAAoAhwhAgsgACgCKCACIAMRBABBACEBIABBADYCHAsgAQudCwEMfyACQQBOBEBBBEEDIAEvAQIiCxshB0EHQYoBIAsbIQQgAEG5LWohCEF/IQYDQCALIQkCQCAJIAEgDCINQQFqIgxBAnRqLwECIgtH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AhQgCiAAKAIIaiADOgAAIAAgACgCFCIDQQFqNgIUIAMgACgCCGogAEG5LWotAAA6AAAgACABQRAgACgCvC0iAWt2OwG4LSAAIAEgAmpBcGo2ArwtDwsgACACIARqNgK8LQuXAQECfwJAAn8gACgCvC0iAUEJTgRAIAAgACgCFCIBQQFqNgIUIAEgACgCCGogAC0AuC06AAAgACAAKAIUIgFBAWo2AhQgAEG5LWotAAAhAiABIAAoAghqDAELIAFBAUgNASAAIAAoAhQiAUEBajYCFCAALQC4LSECIAEgACgCCGoLIAI6AAALIABBADYCvC0gAEEAOwG4LQvaBAEBfwNAIAAgAUECdGpBADsBlAEgAUEBaiIBQZ4CRw0ACyAAQQA7AfwUIABBADsBiBMgAEHEFWpBADsBACAAQcAVakEAOwEAIABBvBVqQQA7AQAgAEG4FWpBADsBACAAQbQVakEAOwEAIABBsBVqQQA7AQAgAEGsFWpBADsBACAAQagVakEAOwEAIABBpBVqQQA7AQAgAEGgFWpBADsBACAAQZwVakEAOwEAIABBmBVqQQA7AQAgAEGUFWpBADsBACAAQZAVakEAOwEAIABBjBVqQQA7AQAgAEGIFWpBADsBACAAQYQVakEAOwEAIABBgBVqQQA7AQAgAEH8E2pBADsBACAAQfgTakEAOwEAIABB9BNqQQA7AQAgAEHwE2pBADsBACAAQewTakEAOwEAIABB6BNqQQA7AQAgAEHkE2pBADsBACAAQeATakEAOwEAIABB3BNqQQA7AQAgAEHYE2pBADsBACAAQdQTakEAOwEAIABB0BNqQQA7AQAgAEHME2pBADsBACAAQcgTakEAOwEAIABBxBNqQQA7AQAgAEHAE2pBADsBACAAQbwTakEAOwEAIABBuBNqQQA7AQAgAEG0E2pBADsBACAAQbATakEAOwEAIABBrBNqQQA7AQAgAEGoE2pBADsBACAAQaQTakEAOwEAIABBoBNqQQA7AQAgAEGcE2pBADsBACAAQZgTakEAOwEAIABBlBNqQQA7AQAgAEGQE2pBADsBACAAQYwTakEAOwEAIABCADcCrC0gAEGUCWpBATsBACAAQQA2AqgtIABBADYCoC0LngEBAn8gACAALwG4LSADQf//A3EiBCAAKAK8LSIDdHIiBTsBuC0gAAJ/IANB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A0AgCSAFIARBAXRqIgotAAEiC0ECdGoiDCgCACEDIAlBPGogCi0AAEEIdCAIakH//wNxEC8gCUECOgA/IAkgByALayIKIAJqOgA+IANBASABIAprdGohCiAJKAI8IQsDQCAAIANBAnRqIAs2AQAgA0EBaiIDIApJDQALIAwgCjYCACAEQQFqIgQgBkcNAAsLIAlBQGskAAvdAgEJfyMAQdAAayIJJAAgCUFAayAFKAIwNgIAIAkgBSkCKDcDOCAJIAUpAiA3AzAgCSAFKQIYNwMoIAkgBSkCEDcDICAJIAUpAgA3AxAgCSAFKQIINwMYIAMEQCAHIAZrIQ8gByABayEQA0BBASABIAcgAiALQQF0aiIGLQABIgxrIghrIgp0IQ0gBi0AACEOIAlBEGogDEECdGoiDCgCACEGAkAgCiAPTwRAIAAgBkECdGogCiAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QlQMgBiANaiEIDAELIAlBDGogDhAvIAlBAToADyAJIAg6AA4gBiAGIA1qIghPDQAgCSgCDCEKA0AgACAGQQJ0aiAKNgEAIAZBAWoiBiAIRw0ACwsgDCAINgIAIAtBAWoiCyADRw0ACwsgCUHQAGokAAs+AQN/IAAEQCAAKAIAIABBvNABaigCACIBIABBwNABaigCACICIABBxNABaigCACIDEGQgACABIAIgAxBkCwvMAQEBfyAAIAEoArTQATYCmOIBIAAgASgCBCICNgLA4AEgACACNgK84AEgACACIAEoAghqIgI2ArjgASAAIAI2AsTgASABKAK40AEEQCAAQoGAgIAQNwOI4QEgACABQaTQAGo2AgwgACABQZQgajYCCCAAIAFBnDBqNgIEIAAgAUEMajYCACAAQazQAWogAUGo0AFqKAIANgIAIABBsNABaiABQazQAWooAgA2AgAgAEG00AFqIAFBsNABaigCADYCAA8LIABCADcDiOEBC6JIAS5/IwBB4ABrIhIkACAAKAKEASEGIAAoAgQhByAAKAKIASEFIAAoAgwhCCASIAAoAhg2AlwgACgCPCEbIABBQGsoAgAhHCAAQSxqIiYgAyAEQQIQWSADIAcgCGogA0ZqIg0gAyAEaiIMQXhqIi5JBEAgBUH/HyAFQf8fSRsh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AnRBsKcBaigCABBHIAtBOGoQOSALQThqIAAvAQYgAi0AAEECdEGQpAFqKAIAEEcgC0E4ahA5AkAgCgRAIAEtAAAiASABQRggAUEYSRsiAmsiAQRAIAtBOGogACgCACABEEcgC0E4ahA5CyALQThqIAAoAgAgAXYgAhBHDAELIAtBOGogACgCACABLQAAEEcLIAtBOGoQOSAJQQJPBEAgCUF+aiEMA0AgByAMai0AACECIAMgDGotAAAhBCALQThqIAtBGGogBSAMai0AACIAEGwgC0E4aiALQShqIAQQbCALQThqEDkgC0E4aiALQQhqIAIQbCALQThqEDkgC0E4aiAIIAxBA3RqIgEvAQQgAkECdEGwpwFqKAIAIgIQRyACIARBAnRBkKQBaigCACICakEZTwRAIAtBOGoQOQsgC0E4aiABLwEGIAIQRyALQThqEDkCQCAKBEAgACAAQRggAEEYSRsiAmsiAARAIAtBOGogASgCACAAEEcgC0E4ahA5CyALQThqIAEoAgAgAHYgAhBHDAELIAtBOGogASgCACAAEEcLIAtBOGoQOSAMQX9qIgwgCUkNAAsLIAtBOGogCygCKCALKAI0EHQgC0E4aiALKAIYIAsoAiQQdCALQThqIAsoAgggCygCFBB0IAtBOGoQ/QEiAEG6fyAAGyEMCyALQdAAaiQAIAwLLwAgACACQQN0aigCBCIAQRB2QQFqIgJBCHRBfyABdCAAayACQRB0akEIdCABdmsLTwEEfwNAIANBASAAIARBAnRqKAIAIgNBCHQiBSACbiIGIAUgAkkbIAYgAxtBAnRBkJwBaigCACADbGohAyAEQQFqIgQgAU0NAAsgA0EIdgtKAQF/IwBB8ARrIgQkACAEIAMgAiABEKcBIgMgACACIAEQpgEiAhAhRQRAIARB8ABqQYAEIAQgASADEKgBIQILIARB8ARqJAAgAguKAQEIfyMAQRBrIgMkACADIAAQc0F/IQUCQCAALwACIAJJDQAgAygCDCIHQQh0QYACaiEIIAMoAgghCUEAIQADQCAJIAcgABDJAyEGIAEgAEECdGooAgAiCgRAIAYgCE8NAiAGIApsIARqIQQLIABBAWoiACACTQ0ACyAEQQh2IQULIANBEGokACAFC18BAn9BCCABayEFQQAhAQNAIARBASAAIAFBAXRqLwEAIgQg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ASACEEUiARAhDQEgBEEQaiAEQRhqIAMQggEgBEEIaiAEQRhqIAMQggFBACEBAkAgBEEYahAjBEBBACEDDAELA0AgACABaiICIARBEGogBEEYahBiOgAAIAIgBEEIaiAEQRhqEGI6AAEgBEEYahAjBEAgAUECciEDDAILIAIgBEEQaiAEQRhqEGI6AAIgAiAEQQhqIARBGGoQYjoAAyABQQRqIQMgBEEYahAjIQIgAUH3AUsNASADIQEgAkUNAAsLAn8DQEG6fyEBIANB/QFLDQMgACADaiICIARBEGogBEEYahBiOgAAIAIiBkEBaiEFIARBGGoQI0EDRgRAQQIhAyAEQQhqDAILIANB/AFLDQMgBiAEQQhqIARBGGoQYjoAASADQQJqIQMgBEEYahAjQQNHDQALIAAgA2ohBUEDIQMgBEEQagshASAFIAEgBEEYahBiOgAAIAIgA2ogAGshAQwBCyAEQRhqIAEgAhBFIgEQIQ0AIARBEGogBEEYaiADEIIBIARBCGogBEEYaiADEIIBQQAhAQJAIARBGGoQIwRAQQAhAwwBCwNAIAAgAWoiAiAEQRBqIARBGGoQYToAACACIARBCGogBEEYahBhOgABIARBGGoQIwRAIAFBAnIhAwwCCyACIARBEGogBEEYahBhOgACIAIgBEEIaiAEQRhqEGE6AAMgAUEEaiEDIARBGGoQIyECIAFB9wFLDQEgAyEBIAJFDQALCwJ/A0BBun8hASADQf0BSw0CIAAgA2oiAiAEQRBqIARBGGoQYToAACACIgZBAWohBSAEQRhqECNBA0YEQEECIQMgBEEIagwCCyADQfwBSw0CIAYgBEEIaiAEQRhqEGE6AAEgA0ECaiEDIARBGGoQI0EDRw0ACyAAIANqIQVBAyEDIARBEGoLIQEgBSABIARBGGoQYToAACACIANqIABrIQELIARBMGokACABC68DAQp/IwBBgARrIgkkAEFSIQUCQCACQf8BSw0AIABBBGohCkGAgAQgA0F/anRBEHUhC0EBIAN0IghBf2oiDCEHQQEhBQNAAkAgASAEQQF0Ig1qLwEAIgZB//8DRgRAIAogB0ECdGogBDoAAiAHQX9qIQdBASEGDAELIAVBACALIAZBEHRBEHVKGyEFCyAJIA1qIAY7AQAgAiAERyEGIARBAWohBCAGDQALIAAgBTsB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IAIgASgCCGpBADoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQA6AABBAiECIAEoAoQBIgNBCUcEQEEEIAEoAogBQQFKQQJ0IANBAkgbIQILIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQM6AAAgAUHxADYCBAwNCyACKAIkIQMgAigCHCEEIAIoAhAhBSACKAIsIQYgAigCACEHIAEgASgCFCIIQQFqNgIUQQIhAiAIIAEoAghqIAZBAEdBAXQgB0EAR3IgBUEAR0ECdHIgBEEAR0EDdHIgA0EAR0EEdHI6AAAgASgCHCgCBCEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAIcKAIEIQMgASABKAIUIgRBAWo2AhQgBCABKAIIaiADQQh2OgAAIAEoAhwvAQYhAyABIAEoAhQiBEEBajYCFCAEIAEoAghqIAM6AAAgASgCHC0AByEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAKEASIDQQlHBEBBBCABKAKIAUEBSkECdCADQQJIGyECCyABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCDCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAAAJ/IAEoAhwiBCgCEARAIAQoAhQhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCFCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACABKAIcIQQLIAQoAiwLBEAgACAAKAIwIAEoAgggASgCFBA1NgIwCyABQcUANgIEIAFBADYCIAwCCyABKAIwQQx0QYCQfmohBEEAIQICQCABKAKIAUEBSg0AIAEoAoQBIgNBAkgNAEHAACECIANBBkgNAEGAAUHAASADQQZGGyECCyABQfEANgIEIAEgAiAEciICQSByIAIgASgCbBsiAkEfcCACckEfcxB1IAEoAmwEQCABIAAvATIQdSABIAAvATAQdQsgAEEAQQBBABBlNgIwIAEoAgQhAgsgAkHFAEcNASABKAIcIQQLAkAgBCgCEARAIAEoAhQhAiABKAIgIgUgBC8BFE8NASACIQMDQCABKAIMIAJGBEACQCACIANNDQAgBCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIcIQQgASgCFCICIAEoAgxGDQMgASgCICEFIAIhAwsgBCgCECAFai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgASABKAIgQQFqIgU2AiAgBSABKAIcIgQvARRPBEAgAyECDAMFIAEoAhQhAgwBCwALAAsgAUHJADYCBAwCCwJAIAQoAixFDQAgASgCFCIDIAJNDQAgACAAKAIwIAEoAgggAmogAyACaxA1NgIwCyABKAIgIAQoAhRGBEAgAUHJADYCBCABQQA2AiAMAgsgASgCBCECCyACQckARw0BIAEoAhwhBAsgBCgCHEUNAiABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIcIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB2wBHDQMgASgCHCEEDAILIAFBADYCIAsgAUHbADYCBAsgBCgCJEUNASABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIkIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB5wBHDQIgASgCHCEEDAELIAFB5wA2AgQLIAQoAiwEQCABKAIUIgVBAmoiAiABKAIMIgRLBH8gABA2IAEoAgwhBCABKAIUIgVBAmoFIAILIARLDQEgACgCMCECIAEgBUEBajYCFCABKAIIIAVqIAI6AAAgACgCMCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAAQQBBAEEAEDU2AjAgAUHxADYCBAwBCyABQfEANgIECwJAIAEoAhQEQCAAEDYgACgCEARAIAAoAgQhAgwCCwwECyAAKAIEIgINAEEAIQILAkACQAJAIAEoAgQiA0GaBUYEQCACRQ0BDAULIAINAQsgA0GaBUcNACABKAJ0RQ0BCwJ/AkACQAJAIAEoAogBQX5qDgIAAQILIAEQnQQMAgsgARCcBAwBCyABQQQgASgChAFBDGxBuNcAaigCABEDAAsiAkF+cUECRgRAIAFBmgU2AgQLIAJBfXFFBEBBACECIAAoAhANAgwECyACQQFHDQAgAUEAQQBBABCOAiAAEDYgACgCEA0ADAMLQQEhAiABKAIYIgNBAUgNACAAKAIwIQICQCADQQJGBEAgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAjAhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAJBCHY6AAAgAC8BMiECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACAALQAzIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAgghAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgACgCCCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAALwEKIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAtAAshAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAMAQsgASACQRB2EHUgASAALwEwEHULIAAQNiABKAIYIgBBAU4EQCABQQAgAGs2AhgLIAEoAhRFIQILIAIPCyAAQceEATYCGEF7DwsgAUF/NgIoQQAL3QEBBn8CQCAAKAKAgBAiBSAAKAKEgBAiAyAAKAKMgBAiBGpBBGpJDQAgACgClIAQIgIgBSADa0F9aiIGTw0AA0AgACACQf//A3FBAXRqQYCACGogAiAAIAIgA2oQOkECdGoiBCgCAGsiB0H//wMgB0H//wNJGzsBACAEIAI2AgAgAkEBaiICIAZJDQALIAAoAoyAECEECyAAIAQ2ApCAECAAIAM2AoiAECAAQQA2ApyAECAAIAE2AoCAECAAIAUgA2siAjYCjIAQIAAgAjYClIAQIAAgASACazYChIAQC9kDAQR/IwBBEGsiAyQAIAFBADYCACAAKAIAIgIgA0EMaiACKAIAKAIMEQMAIQICQCADKAIMRQ0AIAIsAAAhAiAAKAIAIgRBASAEKAIAKAIQEQQAIAEgASgCACACQf8AcXI2AgACQCACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQd0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQ50cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQRV0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACEFIAAoAgAiAEEBIAAoAgAoAhARBAAgASABKAIAIAVBHHRyNgIAIAVBf0oNAEEAIQUMAQtBASEFCyADQRBqJAAgBQvhSQE3fwJAIAAoAoCAECIJIAAoAoSAECILayAAKAKQgBBrIghBgIAETwRAIABBADYCnIAQDAELAkAgCA0AIAMoAgBBgSBIDQAgACAAKAKcgBBBoIAQECoiACABEKwEIAAgBTsBmIAQDAELAkAgBEEATEEAIAZBAkYbDQAgAygCACIIQYCAgPAHSw0AIAAgCCAJajYCgIAQQQkgBSAFQQFIGyIFQQwgBUEMSBsiG0EMbCIJQZQWaigCACEuAkACfyAbQQlNBEAgA0EANgIAIAIgBGoiOkF7aiA6IAZBAkYiOxshKSABIAhqITMgASEoIAIhCQJAIAhBDUgNACAzQXRqIjIgAUkNAEGANCAbdkEBcSE0IDNBe2oiGEF/aiEvIBhBfWohIkEAIRsDQCAAKAKUgBAhBCAAKAKIgBAhEyAAKAKcgBAhFCAoIQwDQCAAKAKQgBAiBSAMIAtrIh9BgYB8aiAFQYCABGogH0sbIRUgACgC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BEADQCADKAAAIAQoAABzIgkEQCAJECUgBGogAGsMBAsgA0EEaiEDIARBBGoiBCAUSQ0ACwsCQCAEIBhPDQAgAy8AACAELwAARw0AIANBAmohAyAEQQJqIQQLIAQgF0kEfyAEQQFqIAQgAy0AACAELQAARhsFIAQLIABrDAELIAMQJQsiAEHwAWpB/wFuakEIaiAPSw0EIAdBAmohAyAAIAZqQQRqIQYgBS0AACEEAn8gAEEPTwRAIAUgBEEPajoAACADQX8QNCAAQXFqIgRB/AdPBEADQCADQQRqIgNBfxA0IARBhHhqIgRB+wdLDQALCyADIARB//8DcUH/AW4iAGoiAyAAQYF+bCAEajoAACADQQFqDAELIAUgACAEajoAACADCyEFIAYgEU8NASAGQX5qIgAgACgAACALEDAgCCALIAwQSSAGKAAAIQACQAJAIBZFBEAgAEEBEDAiACAIEIUBIQQgBiAAIAhBASAMEEkgBEH//wNqIAZJDQEgBCgAACAGKAAARw0BDAILIAAgCxAwIgMgCCALEEghACAGIAxrIgQgAyAIIAsQXCAAQf//A2ogBEkNACAAIAxqIgQoAAAgBigAAEYNAQsgBkEBaiIDKAAAIAsQMCEEDAMLIAVBADoAACAFQQFqIQcMAAsACwtBACETIAUgECAGayIBaiABQfABakH/AW5qQQFqIA9LDQECQCABQQ9PBEAgBUHwAToAACAFQQFqIQAgAUFxaiIDQf8BSQRAIAAiBSADOgAADAILIABB/wEgAUHyfWoiAEH/AW5BAWoQKBogAEH/AW4iAyAFakECaiIFIANBgX5sIABqOgAADAELIAUgAUEEdDoAAAsgBUEBaiAGIAEQKiABaiACayETDAELIANBgICA8AdLDQAgASADaiIPQXVqIRAgD0F0aiEUIAgoAoCAASEAIAhBAUECIAFB//8DSxsiCzsBhoABIAggACADajYCgIABIAggCCgCkIABIANqNgKQgAEgASABKAAAIAsQMCAIIAsgASAAayIMEEkgD0F7aiITQX9qIRcgE0F9aiERIAZBBnQiCkEBciENIAFBAWoiAygAACALEDAhBCABQYCABEkhFSACIQUgASEGA0ACQCAVRQRAIAMgFEsNBCADQQFqIQ4gCiEJIA0hBwNAIAQgCBCFASEAIA4oAABBARAwIRIgAyAE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IAJBCE8EQANAIAMEQCADIAVsIQcgBUEHciIIIANsIQkgBUEGciIKIANsIQsgBUEFciIMIANsIQ0gBUEEciIOIANsIQ8gBUEDciIQIANsIREgBUECciISIANsIRMgBUEBciIUIANsIRVBACEEA0AgASAFIAIgBGwiBmpqIAAgBCAHamotAAA6AAAgASAGIBRqaiAAIAQgFWpqLQAAOgAAIAEgBiASamogACAEIBNqai0AADoAACABIAYgEGpqIAAgBCARamotAAA6AAAgASAGIA5qaiAAIAQgD2pqLQAAOgAAIAEgBiAMamogACAEIA1qai0AADoAACABIAYgCmpqIAAgBCALamotAAA6AAAgASAGIAhqaiAAIAQgCWpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEPaiEEIAVBCGohBSAEIAJJDQALCyACQXhxIgUgAk8NAANAIAMEQCADIAVsIQZBACEEA0AgASACIARsIAVqaiAAIAQgBmpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEBaiIFIAJHDQALCyACIANsrQuCAQEGfyABIAEgAG4iBiAAbGshByAAIAFNBEAgBkEBIAZBAUsbIQgDQCAABEAgACAEbCEJQQAhBQNAIAMgBSAJamogAiAFIAZsIARqai0AADoAACAFQQFqIgUgAEcNAAsLIARBAWoiBCAIRw0ACwsgAyABIAdrIgBqIAAgAmogBxAqGgsNACAAIAEgAiADEL0EC4IBAQZ/IAEgASAAbiIGIABsayEHIAAEQCAGQQEgBkEBSxshCANAIAAgAU0EQCAEIAZsIQlBACEFA0AgAyAFIAlqaiACIAAgBWwgBGpqLQAAOgAAIAVBAWoiBSAIRw0ACwsgBEEBaiIEIABHDQALCyADIAEgB2siAGogACACaiAHECoaC7gBAQN/AkAgAUEBSA0AIAAsAAAiBEH/AHEhAwJAIARBf0oNACABQQJIDQEgACwAASIEQQd0QYD/AHEgA3IhAyAEQX9KDQAgAUEDSA0BIAAsAAIiBEEOdEGAgP8AcSADciEDIARBf0oNACABQQRIDQEgACwAAyIEQRV0QYCAgP8AcSADciEDIARBf0oNACABQQVIDQEgAC0ABCIAQQ9LDQEgAEEcdCADciEDCyACIAM2AgBBASEFCyAFCw0AIAAgASACIAMQvwQLlAIB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CA0tEC0gLgAJDS4QLiAvAAoNLxAvIDAACw0wEDAgMQAEDjEQMSAyAAUOMhAyIDMABg4zEDMgNAAHDjQQNCA1AAgONRA1IDYACQ42EDYgNwAKDjcQNyA4AAsOOBA4IDkABA85EDkgOgAFDzoQOiA7AAYPOxA7IDwABw88EDwgAQgIDz0QPSABEAkPPhA+IAEYCg8/ED8gASALD0AQQCAAAAAA/wAAAP//AAD///8A/////2RlY29tcHJlc3MAY29tcHJlc3MAZnJlZV9yZXN1bHQAdmkAAHhzAABpaWlpaWlpAEGQDgvUBigHAAAwBwAAMAcAAMxzAADMcwAAzHMAABh0AAC2BwAAQHQAAEgHAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAABh0AACQBwAATlN0M19fMjIxX19iYXNpY19zdHJpbmdfY29tbW9uSUxiMUVFRQBOMTBlbXNjcmlwdGVuM3ZhbEUAAAAAGHQAANQHAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUAaWlpAAAoBwAAMAcAABgIAAAgCAAAJAgAACoIAAAxCAAANggAAGJsb3NjbHoAbHo0AGx6NGhjAHNuYXBweQB6bGliAHpzdGQARXJyb3IuICBudGhyZWFkcyBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gQkxPU0NfTUFYX1RIUkVBRFMgKCVkKQBFcnJvci4gIG50aHJlYWRzIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyAEVSUk9SOyByZXR1cm4gY29kZSBmcm9tIHB0aHJlYWRfY3JlYXRlKCkgaXMgJWQKAAlFcnJvciBkZXRhaWw6ICVzCgBCbG9zYyBoYXMgbm90IGJlZW4gY29tcGlsZWQgd2l0aCAnJXMnIABjb21wcmVzc2lvbiBzdXBwb3J0LiAgUGxlYXNlIHVzZSBvbmUgaGF2aW5nIGl0LgBFcnJvciBhbGxvY2F0aW5nIG1lbW9yeSEARVJST1I7IHJldHVybiBjb2RlIGZyb20gcHRocmVhZF9qb2luKCkgaXMgJWQKAElucHV0IGJ1ZmZlciBzaXplIGNhbm5vdCBleGNlZWQgJWQgYnl0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AAAIAAAACQAAAAkAAAAKAAAACgAAAAsAAAALAAAADAAAAAwAAAANAAAADQBBgNsAC/8IDAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBX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AAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgHAAAIhwAACEcAAAnvABAHCQAACF8AAAgfAAAJnwAUB2MAAAh/AAAIPwAACd8AEgcbAAAIbwAACC8AAAm/AAAIDwAACI8AAAhPAAAJ/wAQBQEAFwUBARMFEQAbBQEQEQUFABkFAQQVBUEAHQUBQBAFAwAYBQECFAUhABwFASASBQkAGgUBCBYFgQBABQAAEAUCABcFgQETBRkAGwUBGBEFBwAZBQEGFQVhAB0FAWAQBQQAGAUBAxQFMQAcBQEwEgUNABoFAQwWBcEAQAUAADEuMi44AHN0cmVhbSBlcnJvcgBpbnN1ZmZpY2llbnQgbWVtb3J5AGJ1ZmZlciBlcnJvcgBB5IQBC6EVazgHAA2yBwCc8gcAcGQIAGCuCgCwcQsAMKoMABMAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAATAAAADQAAAA4AAAABAAAABwAAAAAAAAABAAAAFAAAAA8AAAAQAAAAAQAAAAYAAAAAAAAAAQAAABUAAAAQAAAAEQAAAAEAAAAFAAAAAAAAAAIAAAAVAAAAEgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAgAAAAUAAAACAAAAAwAAABUAAAATAAAAEwAAAAMAAAAFAAAABAAAAAMAAAAVAAAAEwAAABMAAAADAAAABQAAAAgAAAAEAAAAFQAAABMAAAATAAAAAwAAAAUAAAAQAAAABQAAABUAAAATAAAAFAAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFAAAABUAAAAEAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABAAAAAUAAAAQAAAABQAAABYAAAAVAAAAFgAAAAUAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAIAAAAFAAAAAgAAAAMAAAASAAAAEgAAABIAAAADAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEQAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABEAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACAAAAACAAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAAKAAAAAwAAAAACAAAIAAAAEQAAABIAAAARAAAABQAAAAMAAAAAAQAACQAAABEAAAASAAAAEQAAAAcAAAADAAAAAAIAAAkAAAARAAAAEgAAABEAAAAJAAAAAwAAAAACAAAJAAAAEQAAABIAAAARAAAACwAAAAMAAADnAwAACQAAAA4AAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAAOAAAADgAAAA8AAAABAAAABQAAAAAAAAABAAAADgAAAA4AAAAPAAAAAQAAAAQAAAAAAAAAAQAAAA4AAAAOAAAADwAAAAIAAAAEAAAAAAAAAAIAAAAOAAAADgAAAA4AAAAEAAAABAAAAAIAAAADAAAADgAAAA4AAAAOAAAAAwAAAAQAAAAEAAAABAAAAA4AAAAOAAAADgAAAAQAAAAEAAAACAAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAgAAAAFAAAADgAAAA4AAAAOAAAACAAAAAQAAAAIAAAABQAAAA4AAAAPAAAADgAAAAUAAAAEAAAACAAAAAYAAAAOAAAADwAAAA4AAAAJAAAABAAAAAgAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAQAAAAMAAAABwAAAA4AAAAPAAAADgAAAAQAAAADAAAAGAAAAAcAAAAOAAAADwAAAA4AAAAFAAAAAwAAACAAAAAIAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAACAAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAFAAAAAwAAADAAAAAJAAAADgAAAA8AAAAPAAAABgAAAAMAAACAAAAACQAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAkAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAJAAAADgAAAA8AAAAPAAAACAAAAAMAAAAAAgAACQAAAA4AAAAPAAAADwAAAAkAAAADAAAAAAIAAAkAAAAOAAAADwAAAA8AAAAKAAAAAwAAAOcDAAAJAAAAIAAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADAAAAAxAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA4AEGQmgEL+gEEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AEGVnAEL+AcIAAAABwAAagYAAAAGAACtBQAAagUAADEFAAAABQAA1AQAAK0EAACKBAAAagQAAEwEAAAxBAAAFwQAAAAEAADpAwAA1AMAAMADAACtAwAAmwMAAIoDAAB5AwAAagMAAFsDAABMAwAAPgMAADEDAAAkAwAAFwMAAAsDAAAAAwAA9AIAAOkCAADeAgAA1AIAAMoCAADAAgAAtgIAAK0CAACkAgAAmwIAAJICAACKAgAAggIAAHkCAAByAgAAagIAAGICAABbAgAAUwIAAEwCAABFAgAAPgIAADcCAAAxAgAAKgIAACQCAAAeAgAAFwIAABECAAALAgAABQIAAAACAAD6AQAA9AEAAO8BAADpAQAA5AEAAN4BAADZAQAA1AEAAM8BAADKAQAAxQEAAMABAAC7AQAAtgEAALIBAACtAQAAqAEAAKQBAACfAQAAmwEAAJcBAACSAQAAjgEAAIoBAACGAQAAggEAAH4BAAB5AQAAdQEAAHIBAABuAQAAagEAAGYBAABiAQAAXgEAAFsBAABXAQAAUwEAAFABAABMAQAASQEAAEUBAABCAQAAPgEAADsBAAA3AQAANAEAADEBAAAuAQAAKgEAACcBAAAkAQAAIQEAAB4BAAAaAQAAFwEAABQBAAARAQAADgEAAAsBAAAIAQAABQEAAAIBAAAAAQAA/QAAAPoAAAD3AAAA9AAAAPEAAADvAAAA7AAAAOkAAADmAAAA5AAAAOEAAADeAAAA3AAAANkAAADXAAAA1AAAANEAAADPAAAAzAAAAMoAAADHAAAAxQAAAMIAAADAAAAAvgAAALsAAAC5AAAAtgAAALQAAACyAAAArwAAAK0AAACrAAAAqAAAAKYAAACkAAAAogAAAJ8AAACdAAAAmwAAAJkAAACXAAAAlQAAAJIA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AAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBsLIBC9YEAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAwAAAAMAAAAEAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBlLcBC4MEAQAAAAEAAAAFAAAADQAAAB0AAAA9AAAAfQAAAP0AAAD9AQAA/QMAAP0HAAD9DwAA/R8AAP0/AAD9fwAA/f8AAP3/AQD9/wMA/f8HAP3/DwD9/x8A/f8/AP3/fwD9//8A/f//Af3//wP9//8H/f//D/3//x/9//8//f//fwAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAAT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IGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AAAAGHQAAFBlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUAABh0AAB4ZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAAAYdAAAoGUAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQAAGHQAAMhlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAABh0AADwZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAAAYdAAAGGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQAAGHQAAEBmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAABh0AABoZgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAAAYdAAAkGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWFFRQAAGHQAALhmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAAEB0AADwZgAAAAAAAAEAAACIBwAAAAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAQHQAAExnAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAABAdAAAqGcAAAAAAAABAAAAiAcAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAQHQAAABoAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUAABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEGR0QELIQsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwBBy9EBCwEMAEHX0QELFQwAAAAADAAAAAAJDAAAAAAADAAADABBhdIBCwEOAEGR0gELFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBv9IBCwEQAEHL0gELHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBBgtMBCw4SAAAAEhISAAAAAAAACQBBs9MBCwELAEG/0wELFQoAAAAACgAAAAAJCwAAAAAACwAACwBB7dMBCwEMAEH50wELJwwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQBBsNQBC2cwMTIzNDU2Nzg5QUJDREVGGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGg1QEL9hNJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAYmFzaWNfc3RyaW5nAHN0ZDo6ZXhjZXB0aW9uAAAAAADccQAAPAAAAD0AAAA+AAAAGHQAAORxAABTdDlleGNlcHRpb24AAAAAAAAAAAhyAAAQAAAAPwAAAEAAAACMcgAAFHIAANxxAABTdDExbG9naWNfZXJyb3IAAAAAADhyAAAQAAAAQQAAAEAAAACMcgAARHIAAAhyAABTdDEybGVuZ3RoX2Vycm9yAFN0OXR5cGVfaW5mbwAAABh0AABVcgAAjHIAAAFzAABkcgAAjHIAAKxyAABscgAAAAAAANByAABCAAAAQwAAAEQAAABFAAAARgAAAEcAAABIAAAASQAAAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAIxyAADccgAAeHIAAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAAAAAABAcwAAQgAAAEoAAABEAAAARQAAAEsAAACMcgAATHMAAGxyAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgAAACxzAAB0cwAAYgAAACxzAACAcwAAYwAAACxzAACMcwAAaAAAACxzAACYcwAAYQAAACxzAACkcwAAcwAAACxzAACwcwAAdAAAACxzAAC8cwAAaQAAACxzAADIcwAAagAAACxzAADUcwAAbAAAACxzAADgcwAAbQAAACxzAADscwAAZgAAACxzAAD4cwAAZAAAACxzAAAEdAAAAAAAAHhyAABCAAAATAAAAEQAAABFAAAARgAAAE0AAABOAAAATwAAAAAAAABgdAAAQgAAAFAAAABEAAAARQAAAEYAAABRAAAAUgAAAFMAAACMcgAAbHQAAHhyAABOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9FAAAAcHUAQZjpAQtBgC0AAAAyAAABAQAAHgEAAA8AAACALAAAAC0AAAAAAAAeAAAADwAAAAAAAAAwLAAAAAAAABMAAAAHAAAAAAAAAAUAQeTpAQsBOQBB/OkBCwo6AAAAOwAAAC12AEGU6gELAQIAQaPqAQsF//////8AQejqAQsJoH5QAAAAAAAFAEH86gELAVQAQZTrAQsOOgAAAFUAAACYegAAAAQAQazrAQsBAQBBu+sBCwUK/////w==";!function(e){e[e.NOSHUFFLE=0]="NOSHUFFLE",e[e.SHUFFLE=1]="SHUFFLE",e[e.BITSHUFFLE=2]="BITSHUFFLE",e[e.AUTOSHUFFLE=-1]="AUTOSHUFFLE"}(eA||(eA={}));var nA,rA=new Set(["blosclz","lz4","lz4hc","snappy","zlib","zstd"]),iA=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"lz4",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:eA.SHUFFLE,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(Object(s.a)(this,e),t<0||t>9)throw new Error("Invalid compression level: '".concat(t,"'. It should be between 0 and 9"));if(!rA.has(A))throw new Error("Invalid compressor '".concat(A,"'. Valid compressors include\n 'blosclz', 'lz4', 'lz4hc','snappy', 'zlib', 'zstd'."));if(n<-1||n>2)throw new Error("Invalid shuffle ".concat(n,". Must be one of 0 (NOSHUFFLE),\n 1 (SHUFFLE), 2 (BITSHUFFLE), -1 (AUTOSHUFFLE)."));this.blocksize=r,this.clevel=t,this.cname=A,this.shuffle=n}return Object(g.a)(e,[{key:"encode",value:function(){var e=Object(a.a)(o.a.mark((function e(t){var A,n,r;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return nA||(nA=$t(tA,AA)),e.next=3,nA;case 3:return A=e.sent,n=A.compress(t,this.cname,this.clevel,this.shuffle,this.blocksize),r=new Uint8Array(n),A.free_result(),e.abrupt("return",r);case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"decode",value:function(){var e=Object(a.a)(o.a.mark((function e(t,A){var n,r,i;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return nA||(nA=$t(tA,AA)),e.next=3,nA;case 3:if(n=e.sent,r=n.decompress(t),i=new Uint8Array(r),n.free_result(),void 0===A){e.next=10;break}return A.set(i),e.abrupt("return",A);case 10:return e.abrupt("return",i);case 11:case"end":return e.stop()}}),e)})));return function(t,A){return e.apply(this,arguments)}}()}],[{key:"fromConfig",value:function(t){var A=t.blocksize;return new e(t.clevel,t.cname,t.shuffle,A)}}]),e}();iA.codecId="blosc",iA.COMPRESSORS=Object(r.a)(rA),iA.NOSHUFFLE=eA.NOSHUFFLE,iA.SHUFFLE=eA.SHUFFLE,iA.BITSHUFFLE=eA.BITSHUFFLE,iA.AUTOSHUFFLE=eA.AUTOSHUFFLE,Object(c.b)(qt.codecId,(function(){return qt})),Object(c.b)(Xt.codecId,(function(){return Xt})),Object(c.b)(iA.codecId,(function(){return iA}))}).call(this,A(90),A(188).Buffer)},,,,,,,,function(e,t,A){var n=A(344),r=A(759),i=A(760),o=A(761),a=A(762),s=A(763);function g(e){var t=this.__data__=new n(e);this.size=t.size}g.prototype.clear=r,g.prototype.delete=i,g.prototype.get=o,g.prototype.has=a,g.prototype.set=s,e.exports=g},function(e,t,A){var n=A(754),r=A(755),i=A(756),o=A(757),a=A(758);function s(e){var t=-1,A=null==e?0:e.length;for(this.clear();++t<A;){var n=e[t];this.set(n[0],n[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=o,s.prototype.set=a,e.exports=s},function(e,t,A){var n=A(297);e.exports=function(e,t){for(var A=e.length;A--;)if(n(e[A][0],t))return A;return-1}},function(e,t,A){var n=A(215)(Object,"create");e.exports=n},function(e,t,A){var n=A(778);e.exports=function(e,t){var A=e.__data__;return n(t)?A["string"==typeof t?"string":"hash"]:A.map}},function(e,t,A){var n=A(790),r=A(154),i=Object.prototype,o=i.hasOwnProperty,a=i.propertyIsEnumerable,s=n(function(){return arguments}())?n:function(e){return r(e)&&o.call(e,"callee")&&!a.call(e,"callee")};e.exports=s},function(e,t,A){(function(e){var n=A(140),r=A(791),i=t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=o&&o.exports===i?n.Buffer:void 0,s=(a?a.isBuffer:void 0)||r;e.exports=s}).call(this,A(155)(e))},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,A){var n=A(795),r=A(445),i=A(796),o=A(552),a=A(797),s=A(216),g=A(544),c=g(n),u=g(r),l=g(i),I=g(o),C=g(a),h=s;(n&&"[object DataView]"!=h(new n(new ArrayBuffer(1)))||r&&"[object Map]"!=h(new r)||i&&"[object Promise]"!=h(i.resolve())||o&&"[object Set]"!=h(new o)||a&&"[object WeakMap]"!=h(new a))&&(h=function(e){var t=s(e),A="[object Object]"==t?e.constructor:void 0,n=A?g(A):"";if(n)switch(n){case c:return"[object DataView]";case u:return"[object Map]";case l:return"[object Promise]";case I:return"[object Set]";case C:return"[object WeakMap]"}return t}),e.exports=h},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findInArray=function(e,t){for(var A=0,n=e.length;A<n;A++)if(t.apply(t,[e[A],A,e]))return e[A]},t.isFunction=function(e){return"function"===typeof e||"[object Function]"===Object.prototype.toString.call(e)},t.isNum=function(e){return"number"===typeof e&&!isNaN(e)},t.int=function(e){return parseInt(e,10)},t.dontSetMe=function(e,t,A){if(e[t])return new Error("Invalid prop ".concat(t," passed to ").concat(A," - do not set this, set it on the child."))}},function(e,t,A){var n=A(216),r=A(154);e.exports=function(e){return"symbol"==typeof e||r(e)&&"[object Symbol]"==n(e)}},function(e,t,A){"use strict";A.d(t,"a",(function(){return g}));var n=A(8),r=A(1),i=A(4),o=A(32),a=A(221),s=A(67),g=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},A=t.phi,n=void 0===A?0:A,i=t.theta,o=void 0===i?0:i,a=t.radius,s=void 0===a?1:a,g=t.bearing,c=void 0===g?void 0:g,u=t.pitch,l=void 0===u?void 0:u,I=t.altitude,C=void 0===I?void 0:I,h=t.radiusScale,f=void 0===h?6371e3:h;Object(r.a)(this,e),this.phi=n,this.theta=o,this.radius=s||C||1,this.radiusScale=f||1,void 0!==c&&(this.bearing=c),void 0!==l&&(this.pitch=l),this.check()}return Object(i.a)(e,[{key:"toString",value:function(){return this.formatString(o.f)}},{key:"formatString",value:function(e){var t=e.printTypes,A=void 0!==t&&t,n=o.l;return"".concat(A?"Spherical":"","[rho:").concat(n(this.radius),",theta:").concat(n(this.theta),",phi:").concat(n(this.phi),"]")}},{key:"equals",value:function(e){return Object(o.j)(this.radius,e.radius)&&Object(o.j)(this.theta,e.theta)&&Object(o.j)(this.phi,e.phi)}},{key:"exactEquals",value:function(e){return this.radius===e.radius&&this.theta===e.theta&&this.phi===e.phi}},{key:"set",value:function(e,t,A){return this.radius=e,this.phi=t,this.theta=A,this.check()}},{key:"clone",value:function(){return(new e).copy(this)}},{key:"copy",value:function(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this.check()}},{key:"fromLngLatZ",value:function(e){var t=Object(n.a)(e,3),A=t[0],r=t[1],i=t[2];this.radius=1+i/this.radiusScale,this.phi=Object(o.o)(r),this.theta=Object(o.o)(A)}},{key:"fromVector3",value:function(e){return this.radius=s.g(e),this.radius>0&&(this.theta=Math.atan2(e[0],e[1]),this.phi=Math.acos(Object(o.d)(e[2]/this.radius,-1,1))),this.check()}},{key:"toVector3",value:function(){return new a.a(0,0,this.radius).rotateX({radians:this.theta}).rotateZ({radians:this.phi})}},{key:"makeSafe",value:function(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this}},{key:"check",value:function(){if(!Number.isFinite(this.phi)||!Number.isFinite(this.theta)||!(this.radius>0))throw new Error("SphericalCoordinates: some fields set to invalid numbers");return this}},{key:"bearing",get:function(){return 180-Object(o.i)(this.phi)},set:function(e){this.phi=Math.PI-Object(o.o)(e)}},{key:"pitch",get:function(){return Object(o.i)(this.theta)},set:function(e){this.theta=Object(o.o)(e)}},{key:"longitude",get:function(){return Object(o.i)(this.phi)}},{key:"latitude",get:function(){return Object(o.i)(this.theta)}},{key:"lng",get:function(){return Object(o.i)(this.phi)}},{key:"lat",get:function(){return Object(o.i)(this.theta)}},{key:"z",get:function(){return(this.radius-1)*this.radiusScale}}]),e}()},function(e,t,A){"use strict";A.d(t,"a",(function(){return s}));var n=A(1),r=A(4),i=A(286),o=A(221),a=A(197),s=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},A=t.x,r=void 0===A?0:A,i=t.y,s=void 0===i?0:i,g=t.z,c=void 0===g?0:g,u=t.roll,l=void 0===u?0:u,I=t.pitch,C=void 0===I?0:I,h=t.yaw,f=void 0===h?0:h,d=t.position,B=void 0===d?void 0:d,p=t.orientation,E=void 0===p?void 0:p;Object(n.a)(this,e),Array.isArray(B)&&3===B.length?this.position=new o.a(B):this.position=new o.a(r,s,c),Array.isArray(E)&&4===E.length?this.orientation=new a.a(E,E[3]):this.orientation=new a.a(l,C,f,a.a.RollPitchYaw)}return Object(r.a)(e,[{key:"getPosition",value:function(){return this.position}},{key:"getOrientation",value:function(){return this.orientation}},{key:"equals",value:function(e){return!!e&&(this.position.equals(e.position)&&this.orientation.equals(e.orientation))}},{key:"exactEquals",value:function(e){return!!e&&(this.position.exactEquals(e.position)&&this.orientation.exactEquals(e.orientation))}},{key:"getTransformationMatrix",value:function(){var e=Math.sin(this.roll),t=Math.sin(this.pitch),A=Math.sin(this.yaw),n=Math.cos(this.roll),r=Math.cos(this.pitch),o=Math.cos(this.yaw);return(new i.a).setRowMajor(o*r,-A*n+o*t*e,A*e+o*t*n,this.x,A*r,o*n+A*t*e,-o*e+A*t*n,this.y,-t,r*e,r*n,this.z,0,0,0,1)}},{key:"getTransformationMatrixFromPose",value:function(e){return(new i.a).multiplyRight(this.getTransformationMatrix()).multiplyRight(e.getTransformationMatrix().invert())}},{key:"getTransformationMatrixToPose",value:function(e){return(new i.a).multiplyRight(e.getTransformationMatrix()).multiplyRight(this.getTransformationMatrix().invert())}},{key:"x",get:function(){return this.position.x},set:function(e){this.position.x=e}},{key:"y",get:function(){return this.position.y},set:function(e){this.position.y=e}},{key:"z",get:function(){return this.position.z},set:function(e){this.position.z=e}},{key:"roll",get:function(){return this.orientation.roll},set:function(e){this.orientation.roll=e}},{key:"pitch",get:function(){return this.orientation.pitch},set:function(e){this.orientation.pitch=e}},{key:"yaw",get:function(){return this.orientation.yaw},set:function(e){this.orientation.yaw=e}}]),e}()},function(e,t,A){"use strict";var n=A(172),r=A(172).buildOptions,i=A(856),o=A(857);"<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g,n.nameRegexp);!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);var a={attributeNamePrefix:"@_",attrNodeName:!1,textNodeName:"#text",ignoreAttributes:!0,ignoreNameSpace:!1,allowBooleanAttributes:!1,parseNodeValue:!0,parseAttributeValue:!1,arrayMode:!1,trimValues:!0,cdataTagName:!1,cdataPositionChar:"\\c",numParseOptions:{hex:!0,leadingZeros:!0},tagValueProcessor:function(e,t){return e},attrValueProcessor:function(e,t){return e},stopNodes:[],alwaysCreateTextNode:!1};t.defaultOptions=a;var s=["attributeNamePrefix","attrNodeName","textNodeName","ignoreAttributes","ignoreNameSpace","allowBooleanAttributes","parseNodeValue","parseAttributeValue","arrayMode","trimValues","cdataTagName","cdataPositionChar","tagValueProcessor","attrValueProcessor","parseTrueNumberOnly","numParseOptions","stopNodes","alwaysCreateTextNode"];function g(e,t,A){return t&&(A.trimValues&&(t=t.trim()),t=u(t=A.tagValueProcessor(t,e),A.parseNodeValue,A.numParseOptions)),t}function c(e,t){if(t.ignoreNameSpace){var A=e.split(":"),n="/"===e.charAt(0)?"/":"";if("xmlns"===A[0])return"";2===A.length&&(e=n+A[1])}return e}function u(e,t,A){if(t&&"string"===typeof e){var r=e.trim();return"true"===r||"false"!==r&&o(e,A)}return n.isExist(e)?e:""}t.props=s;var l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])(.*?)\\3)?","g");function I(e,t){if(!t.ignoreAttributes&&"string"===typeof e){e=e.replace(/\r?\n/g," ");for(var A=n.getAllMatches(e,l),r=A.length,i={},o=0;o<r;o++){var a=c(A[o][1],t);a.length&&(void 0!==A[o][4]?(t.trimValues&&(A[o][4]=A[o][4].trim()),A[o][4]=t.attrValueProcessor(A[o][4],a),i[t.attributeNamePrefix+a]=u(A[o][4],t.parseAttributeValue,t.numParseOptions)):t.allowBooleanAttributes&&(i[t.attributeNamePrefix+a]=!0))}if(!Object.keys(i).length)return;if(t.attrNodeName){var s={};return s[t.attrNodeName]=i,s}return i}}function C(e,t){for(var A,n="",r=t;r<e.length;r++){var i=e[r];if(A)i===A&&(A="");else if('"'===i||"'"===i)A=i;else{if(">"===i)return{data:n,index:r};"\t"===i&&(i=" ")}n+=i}}function h(e,t,A,n){var r=e.indexOf(t,A);if(-1===r)throw new Error(n);return r+t.length-1}t.getTraversalObj=function(e,t){e=e.replace(/\r\n?/g,"\n"),t=r(t,a,s);for(var A=new i("!xml"),o=A,c="",u=0;u<e.length;u++){if("<"===e[u])if("/"===e[u+1]){var l=h(e,">",u,"Closing Tag is not closed."),f=e.substring(u+2,l).trim();if(t.ignoreNameSpace){var d=f.indexOf(":");-1!==d&&(f=f.substr(d+1))}o&&(o.val?o.val=n.getValue(o.val)+""+g(f,c,t):o.val=g(f,c,t)),t.stopNodes.length&&t.stopNodes.includes(o.tagname)&&(o.child=[],void 0==o.attrsMap&&(o.attrsMap={}),o.val=e.substr(o.startIndex+1,u-o.startIndex-1)),o=o.parent,c="",u=l}else if("?"===e[u+1])u=h(e,"?>",u,"Pi Tag is not closed.");else if("!--"===e.substr(u+1,3))u=h(e,"--\x3e",u,"Comment is not closed.");else if("!D"===e.substr(u+1,2)){var B=h(e,">",u,"DOCTYPE is not closed.");u=e.substring(u,B).indexOf("[")>=0?e.indexOf("]>",u)+1:B}else if("!["===e.substr(u+1,2)){var p=h(e,"]]>",u,"CDATA is not closed.")-2,E=e.substring(u+9,p);if(c&&(o.val=n.getValue(o.val)+""+g(o.tagname,c,t),c=""),t.cdataTagName){var Q=new i(t.cdataTagName,o,E);o.addChild(Q),o.val=n.getValue(o.val)+t.cdataPositionChar,E&&(Q.val=E)}else o.val=(o.val||"")+(E||"");u=p+2}else{var y=C(e,u+1),v=y.data,m=y.index,b=v.indexOf(" "),w=v,S=!0;if(-1!==b&&(w=v.substr(0,b).replace(/\s\s*$/,""),v=v.substr(b+1)),t.ignoreNameSpace){var F=w.indexOf(":");-1!==F&&(S=(w=w.substr(F+1))!==y.data.substr(F+1))}if(o&&c&&"!xml"!==o.tagname&&(o.val=n.getValue(o.val)+""+g(o.tagname,c,t)),v.length>0&&v.lastIndexOf("/")===v.length-1){v="/"===w[w.length-1]?w=w.substr(0,w.length-1):v.substr(0,v.length-1);var R=new i(w,o,"");w!==v&&(R.attrsMap=I(v,t)),o.addChild(R)}else{var D=new i(w,o);t.stopNodes.length&&t.stopNodes.includes(D.tagname)&&(D.startIndex=m),w!==v&&S&&(D.attrsMap=I(v,t)),o.addChild(D),o=D}c="",u=m}else c+=e[u]}return A}},function(e,t,A){var n=A(550),r=A(886),i=A(248);e.exports=function(e){return i(e)?n(e,!0):r(e)}},function(e,t){e.exports=function(e){return e}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,A){var n=A(597),r=A(478);e.exports=Object.keys||function(e){return n(e,r)}},function(e,t){e.exports=!0},function(e,t){var A=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++A+n).toString(36))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,A){var n=A(353);e.exports=function(e){if("string"==typeof e||n(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},function(e,t,A){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var r=A(59),i=A(105),o=n(A(620)),a=A(141),s=n(A(619));function g(e,t){var A=i.getCoords(e),n=i.getCoords(t);if(2!==A.length)throw new Error("<intersects> line1 must only contain 2 coordinates");if(2!==n.length)throw new Error("<intersects> line2 must only contain 2 coordinates");var o=A[0][0],a=A[0][1],s=A[1][0],g=A[1][1],c=n[0][0],u=n[0][1],l=n[1][0],I=n[1][1],C=(I-u)*(s-o)-(l-c)*(g-a),h=(l-c)*(a-u)-(I-u)*(o-c),f=(s-o)*(a-u)-(g-a)*(o-c);if(0===C)return null;var d=h/C,B=f/C;if(d>=0&&d<=1&&B>=0&&B<=1){var p=o+d*(s-o),E=a+d*(g-a);return r.point([p,E])}return null}t.default=function(e,t){var A={},n=[];if("LineString"===e.type&&(e=r.feature(e)),"LineString"===t.type&&(t=r.feature(t)),"Feature"===e.type&&"Feature"===t.type&&null!==e.geometry&&null!==t.geometry&&"LineString"===e.geometry.type&&"LineString"===t.geometry.type&&2===e.geometry.coordinates.length&&2===t.geometry.coordinates.length){var c=g(e,t);return c&&n.push(c),r.featureCollection(n)}var u=s.default();return u.load(o.default(t)),a.featureEach(o.default(e),(function(e){a.featureEach(u.search(e),(function(t){var r=g(e,t);if(r){var o=i.getCoords(r).join(",");A[o]||(A[o]=!0,n.push(r))}}))})),r.featureCollection(n)}},,function(e,t,A){"use strict";A.d(t,"b",(function(){return r})),A.d(t,"a",(function(){return i}));var n=A(227);function r(e,t){return Object(n.a)(e>=0),Object(n.a)(t>0),e+(t-1)&~(t-1)}function i(e,t,A){var n;if(e instanceof ArrayBuffer)n=new Uint8Array(e);else{var i=e.byteOffset,o=e.byteLength;n=new Uint8Array(e.buffer||e.arrayBuffer,i,o)}return t.set(n,A),A+r(n.byteLength,4)}},function(e,t,A){"use strict";A.r(t);var n=A(652);A.d(t,"SimpleMeshLayer",(function(){return n.a}));var r=A(645);A.d(t,"ScenegraphLayer",(function(){return r.a}))},function(e,t,A){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}Object.defineProperty(t,"__esModule",{value:!0}),t.toDeckColor=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[255,0,0,255];if(!Array.isArray(e))return t;return[255*e[0],255*e[1],255*e[2],255*e[3]]},t.recursivelyTraverseNestedArrays=function e(t,A,r){if(!Array.isArray(t[0]))return!0;for(var i=0;i<t.length;i++)if(e(t[i],[].concat(function(e){if(Array.isArray(e))return n(e)}(o=A)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(o)||function(e,t){if(!e)return;if("string"===typeof e)return n(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return n(e,t)}(o)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[i]),r)){r(t,A);break}var o;return!1}},function(e,t){var A=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:A,MAX_SAFE_COMPONENT_LENGTH:16}},function(e,t,A){(function(t){var A="object"===typeof t&&Object({NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0})&&Object({NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0}).NODE_DEBUG&&/\bsemver\b/i.test(Object({NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0}).NODE_DEBUG)?function(){for(var e,t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return(e=console).error.apply(e,["SEMVER"].concat(A))}:function(){};e.exports=A}).call(this,A(90))},function(e,t){var A=["includePrerelease","loose","rtl"];e.exports=function(e){return e?"object"!==typeof e?{loose:!0}:A.filter((function(t){return e[t]})).reduce((function(e,t){return e[t]=!0,e}),{}):{}}},function(e,t,A){var n=A(144);e.exports=function(e,t,A){return n(e,t,A)>0}},function(e,t,A){var n=A(299),r=A(300),i=Symbol("SemVer ANY"),o=function(){"use strict";function e(t,A){if(n(this,e),A=a(A),t instanceof e){if(t.loose===!!A.loose)return t;t=t.value}l("comparator",t,A),this.options=A,this.loose=!!A.loose,this.parse(t),this.semver===i?this.value="":this.value=this.operator+this.semver.version,l("comp",this)}return r(e,null,[{key:"ANY",get:function(){return i}}]),r(e,[{key:"parse",value:function(e){var t=this.options.loose?g[c.COMPARATORLOOSE]:g[c.COMPARATOR],A=e.match(t);if(!A)throw new TypeError("Invalid comparator: ".concat(e));this.operator=void 0!==A[1]?A[1]:"","="===this.operator&&(this.operator=""),A[2]?this.semver=new I(A[2],this.options.loose):this.semver=i}},{key:"toString",value:function(){return this.value}},{key:"test",value:function(e){if(l("Comparator.test",e,this.options.loose),this.semver===i||e===i)return!0;if("string"===typeof e)try{e=new I(e,this.options)}catch(t){return!1}return u(e,this.operator,this.semver,this.options)}},{key:"intersects",value:function(t,A){if(!(t instanceof e))throw new TypeError("a Comparator is required");if(A&&"object"===typeof A||(A={loose:!!A,includePrerelease:!1}),""===this.operator)return""===this.value||new C(t.value,A).test(this.value);if(""===t.operator)return""===t.value||new C(this.value,A).test(t.semver);var n=(">="===this.operator||">"===this.operator)&&(">="===t.operator||">"===t.operator),r=("<="===this.operator||"<"===this.operator)&&("<="===t.operator||"<"===t.operator),i=this.semver.version===t.semver.version,o=(">="===this.operator||"<="===this.operator)&&(">="===t.operator||"<="===t.operator),a=u(this.semver,"<",t.semver,A)&&(">="===this.operator||">"===this.operator)&&("<="===t.operator||"<"===t.operator),s=u(this.semver,">",t.semver,A)&&("<="===this.operator||"<"===this.operator)&&(">="===t.operator||">"===t.operator);return n||r||i&&o||a||s}}]),e}();e.exports=o;var a=A(372),s=A(260),g=s.re,c=s.t,u=A(641),l=A(371),I=A(106),C=A(145)},function(e,t,A){var n=A(145);e.exports=function(e,t,A){try{t=new n(t,A)}catch(r){return!1}return t.test(e)}},function(e,t,A){"use strict";A.r(t);var n=A(283),r=A.n(n);function i(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function o(e,t,A){void 0===A&&(A={});for(var n=0,r=e;n<r.length;n++){var o=r[n];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var a=0;a<o[o.length-1].length;a++)if(o[o.length-1][a]!==o[0][a])throw new Error("First and last Position are not equivalent.")}return i({type:"Polygon",coordinates:e},t,A)}function a(e,t,A){return void 0===A&&(A={}),i({type:"MultiPolygon",coordinates:e},t,A)}function s(e){return"Feature"===e.type?e.geometry:e}t.default=function(e,t){var A=s(e),n=s(t),i=e.properties||{},g=r.a.difference(A.coordinates,n.coordinates);return 0===g.length?null:1===g.length?o(g[0],i):a(g,i)}},function(e,t,A){"use strict";A.d(t,"a",(function(){return n}));var n="3.0.12"},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(7);function r(e,t){if(!t)return e;var A=Object(n.a)({},e,{},t);if("defines"in t&&(A.defines=Object(n.a)({},e.defines,{},t.defines)),"modules"in t&&(A.modules=(e.modules||[]).concat(t.modules),t.modules.some((function(e){return"project64"===e.name})))){var r=A.modules.findIndex((function(e){return"project32"===e.name}));r>=0&&A.modules.splice(r,1)}if("inject"in t)if(e.inject){var i=Object(n.a)({},e.inject);for(var o in t.inject)i[o]=(i[o]||"")+t.inject[o];A.inject=i}else A.inject=t.inject;return A}},function(e,t,A){"use strict";A.d(t,"a",(function(){return n}));function n(e){if(null===(t=e)||"object"!==typeof t)throw new Error("count(): argument not an object");var t;if("function"===typeof e.count)return e.count();if(Number.isFinite(e.size))return e.size;if(Number.isFinite(e.length))return e.length;if(function(e){return null!==e&&"object"===typeof e&&e.constructor===Object}(e))return Object.keys(e).length;throw new Error("count(): argument not a container")}},function(e,t,A){"use strict";A.d(t,"a",(function(){return u}));var n=A(8),r=A(1),i=A(4),o=A(9),a=A(10),s=A(23),g=A(133),c=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){var n;return Object(r.a)(this,A),(n=t.call(this,e)).zoomAxis=e.zoomAxis||"all",n}return Object(i.a)(A,[{key:"_applyConstraints",value:function(e){var t=e.maxZoom,A=e.minZoom,n=e.zoom;return e.zoom=Array.isArray(n)?[Object(s.clamp)(n[0],A,t),Object(s.clamp)(n[1],A,t)]:Object(s.clamp)(n,A,t),e}},{key:"_calculateNewZoom",value:function(e){var t=e.scale,A=e.startZoom,r=this._viewportProps,i=r.maxZoom,o=r.minZoom;A||0===A||(A=this._viewportProps.zoom);var a=Math.log2(t);if(Array.isArray(A)){var g=A,c=Object(n.a)(g,2),u=c[0],l=c[1];switch(this.zoomAxis){case"X":u=Object(s.clamp)(u+a,o,i);break;case"Y":l=Object(s.clamp)(l+a,o,i);break;default:var I=Math.min(u+a,l+a);I<o&&(a+=o-I),(I=Math.max(u+a,l+a))>i&&(a+=i-I),u+=a,l+=a}return[u,l]}return Object(s.clamp)(A+a,o,i)}}]),A}(A(264).a),u=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){return Object(r.a)(this,A),e.dragMode=e.dragMode||"pan",t.call(this,c,e)}return Object(i.a)(A,[{key:"_onPanRotate",value:function(e){return!1}},{key:"linearTransitionProps",get:function(){return["target","zoom"]}}]),A}(g.a)},function(e,t,A){"use strict";A.d(t,"a",(function(){return u}));var n=A(7),r=A(1),i=A(4),o=A(9),a=A(10),s=A(134),g=A(263),c=A(266),u=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){return Object(r.a)(this,A),t.call(this,Object(n.a)({},e,{type:g.a}))}return Object(i.a)(A,[{key:"controller",get:function(){return this._getControllerProps({type:c.b})}}]),A}(s.a);u.displayName="MapView"},function(e,t,A){"use strict";A.d(t,"a",(function(){return a}));var n=A(6),r=A(528),i=[A(223).a],o=["vs:DECKGL_FILTER_SIZE(inout vec3 size, VertexGeometry geometry)","vs:DECKGL_FILTER_GL_POSITION(inout vec4 position, VertexGeometry geometry)","vs:DECKGL_FILTER_COLOR(inout vec4 color, VertexGeometry geometry)","fs:DECKGL_FILTER_COLOR(inout vec4 color, FragmentGeometry geometry)"];function a(e){var t,A=r.a.getDefaultProgramManager(e),a=Object(n.a)(i);try{for(a.s();!(t=a.n()).done;){var s=t.value;A.addDefaultModule(s)}}catch(l){a.e(l)}finally{a.f()}var g,c=Object(n.a)(o);try{for(c.s();!(g=c.n()).done;){var u=g.value;A.addShaderHook(u)}}catch(l){c.e(l)}finally{c.f()}return A}},function(e,t,A){"use strict";A.d(t,"a",(function(){return o}));var n=A(1),r=[255,255,255],i=0,o=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(n.a)(this,e);var A=t.color,o=void 0===A?r:A,a=t.intensity,s=void 0===a?1:a;this.id=t.id||"ambient-".concat(i++),this.color=o,this.intensity=s,this.type="ambient"}},function(e,t,A){"use strict";var n=A(6),r=A(8),i=A(1),o=A(4),a=A(9),s=A(10),g=A(7),c=A(36),u=A(385),l=A(104),I=A(23),C=A(162),h=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(){return Object(i.a)(this,A),t.apply(this,arguments)}return Object(o.a)(A,[{key:"_onUpdate",value:function(){var e=this.time,t=this.settings,A=t.fromValue,n=t.toValue,r=t.duration,i=(0,t.easing)(e/r);this._value=Object(I.lerp)(A,n,i)}},{key:"value",get:function(){return this._value}}]),A}(C.a);function f(e,t,A,n,r){var i=t-e;return(A-t)*r+-i*n+i+t}function d(e,t){if(Array.isArray(e)){for(var A=0,n=0;n<e.length;n++){var r=e[n]-t[n];A+=r*r}return Math.sqrt(A)}return Math.abs(e-t)}var B,p=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(){return Object(i.a)(this,A),t.apply(this,arguments)}return Object(o.a)(A,[{key:"_onUpdate",value:function(){var e=this.settings,t=e.fromValue,A=e.toValue,n=e.damping,r=e.stiffness,i=this._prevValue,o=void 0===i?t:i,a=this._currValue,s=void 0===a?t:a,g=function(e,t,A,n,r){if(Array.isArray(A)){for(var i=[],o=0;o<A.length;o++)i[o]=f(e[o],t[o],A[o],n,r);return i}return f(e,t,A,n,r)}(o,s,A,n,r),c=d(g,A),u=d(g,s);c<1e-5&&u<1e-5&&(g=A,this.end()),this._prevValue=s,this._currValue=g}},{key:"value",get:function(){return this._currValue}}]),A}(C.a),E=A(41),Q={interpolation:h,spring:p},y=function(){function e(t){Object(i.a)(this,e),this.transitions=new Map,this.timeline=t}return Object(o.a)(e,[{key:"add",value:function(e,t,A,n){var r=this.transitions;if(r.has(e)){var i=r.get(e),o=i.value;t=void 0===o?i.settings.fromValue:o,this.remove(e)}if(n=Object(l.e)(n)){var a=Q[n.type];if(a){var s=new a(this.timeline);s.start(Object(g.a)({},n,{fromValue:t,toValue:A})),r.set(e,s)}else E.a.error("unsupported transition type '".concat(n.type,"'"))()}}},{key:"remove",value:function(e){var t=this.transitions;t.has(e)&&(t.get(e).cancel(),t.delete(e))}},{key:"update",value:function(){var e,t={},A=Object(n.a)(this.transitions);try{for(A.s();!(e=A.n()).done;){var i=Object(r.a)(e.value,2),o=i[0],a=i[1];a.update(),t[o]=a.value,a.inProgress||this.remove(o)}}catch(s){A.e(s)}finally{A.f()}return t}},{key:"clear",value:function(){var e,t=Object(n.a)(this.transitions.keys());try{for(t.s();!(e=t.n()).done;){var A=e.value;this.remove(A)}}catch(r){t.e(r)}finally{t.f()}}},{key:"active",get:function(){return this.transitions.size>0}}]),e}(),v=A(313),m=A(379),b=A(77),w=A(18),S=A(87),F=A(173),R=A(378),D=A(324),G=A(150),k=A(78),x=A(116),N=A(2),U=A(232),_=(B={},Object(N.a)(B,10241,9987),Object(N.a)(B,10240,9729),Object(N.a)(B,10242,33071),Object(N.a)(B,10243,33071),B),M={};var O={boolean:{validate:function(e,t){return!0},equal:function(e,t,A){return Boolean(e)===Boolean(t)}},number:{validate:function(e,t){return Number.isFinite(e)&&(!("max"in t)||e<=t.max)&&(!("min"in t)||e>=t.min)}},color:{validate:function(e,t){return t.optional&&!e||H(e)&&(3===e.length||4===e.length)},equal:function(e,t,A){return L(e,t)}},accessor:{validate:function(e,t){var A=Y(e);return"function"===A||A===Y(t.value)},equal:function(e,t,A){return"function"===typeof t||L(e,t)}},array:{validate:function(e,t){return t.optional&&!e||H(e)},equal:function(e,t,A){return A.compare?L(e,t):e===t}},function:{validate:function(e,t){return t.optional&&!e||"function"===typeof e},equal:function(e,t,A){return!A.compare||e===t}},data:{transform:function(e,t,A){var n=(A?A.props:{}).dataTransform;return n&&e?n(e):e}},image:{transform:function(e,t,A){return function(e,t){var A=e.context&&e.context.gl;if(!A||!t)return null;if(t instanceof U.a)return t;t.constructor&&"Object"!==t.constructor.name&&(t={data:t});var n=null;t.compressed&&(n=Object(N.a)({},10241,t.data.length>1?9985:9729));var r=new U.a(A,Object(g.a)({},t,{parameters:Object(g.a)({},_,{},n,{},e.props.textureParameters)}));return M[r.id]=!0,r}(A,e)},release:function(e){var t;(t=e)&&t instanceof U.a&&M[t.id]&&(t.delete(),delete M[t.id])}}};function L(e,t){if(e===t)return!0;if(!H(e)||!H(t))return!1;var A=e.length;if(A!==t.length)return!1;for(var n=0;n<A;n++)if(e[n]!==t[n])return!1;return!0}function T(e,t){switch(Y(t)){case"object":return Z(e,t);case"array":return Z(e,{type:"array",value:t,compare:!1});case"boolean":return Z(e,{type:"boolean",value:t});case"number":return Z(e,{type:"number",value:t});case"function":return Z(e,{type:"function",value:t,compare:!0});default:return{name:e,type:"unknown",value:t}}}function Z(e,t){return"type"in t?Object(g.a)({name:e},O[t.type],{},t):"value"in t?Object(g.a)({name:e,type:Y(t.value)},t):{name:e,type:"object",value:t}}function H(e){return Array.isArray(e)||ArrayBuffer.isView(e)}function Y(e){return H(e)?"array":null===e?"null":typeof e}var J=k.b.COMPONENT,j=k.b.ASYNC_ORIGINAL,P=k.b.ASYNC_RESOLVED,V=k.b.ASYNC_DEFAULTS;function K(){var e=this,t=W(e.constructor),A=Object.create(t);A[J]=e,A[j]={},A[P]={};for(var n=0;n<arguments.length;++n){var r=arguments[n];for(var i in r)A[i]=r[i]}return Object.freeze(A),A}function W(e){var t=z(e,"_mergedDefaultProps");return t||(function(e){if(!e.prototype)return;var t=Object.getPrototypeOf(e),A=W(t),i=function(e){for(var t={},A={},n={},i=0,o=Object.entries(e);i<o.length;i++){var a=Object(r.a)(o[i],2),s=a[0],g=a[1];if(g&&g.deprecatedFor)n[s]=Array.isArray(g.deprecatedFor)?g.deprecatedFor:[g.deprecatedFor];else{var c=T(s,g);t[s]=c,A[s]=c.value}}return{propTypes:t,defaultProps:A,deprecatedProps:n}}(z(e,"defaultProps")||{}),o=function(e,t,A){var n=Object.create(null);Object.assign(n,t,e);var r=function(e){var t=z(e,"layerName")||z(e,"componentName");t||E.a.once(0,"".concat(e.name,".componentName not specified"))();return t||e.name}(A);return delete e.id,Object.defineProperties(n,{id:{writable:!0,value:r}}),n}(i.defaultProps,A,e),a=Object(g.a)({},t._propTypes,{},i.propTypes);!function(e,t){var A={},n={};for(var r in t){var i=t[r],o=i.name,a=i.value;i.async&&(A[o]=a,n[o]=X(o))}e[V]=A,e[j]={},Object.defineProperties(e,n)}(o,a);var s=Object(g.a)({},t._deprecatedProps,{},i.deprecatedProps);(function(e,t){var A=function(A){Object.defineProperty(e,A,{enumerable:!1,set:function(e){var r,i="".concat(this.id,": ").concat(A),o=Object(n.a)(t[A]);try{for(o.s();!(r=o.n()).done;){var a=r.value;q(this,a)||(this[a]=e)}}catch(s){o.e(s)}finally{o.f()}E.a.deprecated(i,t[A].join("/"))()}})};for(var r in t)A(r)})(o,s),e._mergedDefaultProps=o,e._propTypes=a,e._deprecatedProps=s}(e),e._mergedDefaultProps)}function X(e){return{enumerable:!0,set:function(t){"string"===typeof t||t instanceof Promise||Object(x.c)(t)?this[j][e]=t:this[P][e]=t},get:function(){if(this[P]){if(e in this[P])return this[P][e]||this[V][e];if(e in this[j]){var t=this[J]&&this[J].internalState;if(t&&t.hasAsyncProp(e))return t.getAsyncProp(e)||this[V][e]}}return this[V][e]}}}function q(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function z(e,t){return q(e,t)&&e[t]}var $=A(3),ee=A.n($),te=A(12),Ae=A(228),ne=k.b.ASYNC_ORIGINAL,re=k.b.ASYNC_RESOLVED,ie=k.b.ASYNC_DEFAULTS,oe=Object.freeze({}),ae=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;Object(i.a)(this,e),this.component=t,this.asyncProps={},this.onAsyncPropUpdated=function(){},this.oldProps=oe,this.oldAsyncProps=null}return Object(o.a)(e,[{key:"finalize",value:function(){for(var e in this.asyncProps){var t=this.asyncProps[e];t.type&&t.type.release&&t.type.release(t.resolvedValue,t.type,this.component)}}},{key:"getOldProps",value:function(){return this.oldAsyncProps||this.oldProps}},{key:"resetOldProps",value:function(){this.oldAsyncProps=null,this.oldProps=this.component.props}},{key:"freezeAsyncOldProps",value:function(){if(!this.oldAsyncProps)for(var e in this.oldProps=this.oldProps||this.component.props,this.oldAsyncProps=Object.create(this.oldProps),this.asyncProps)Object.defineProperty(this.oldAsyncProps,e,{enumerable:!0,value:this.oldProps[e]})}},{key:"hasAsyncProp",value:function(e){return e in this.asyncProps}},{key:"getAsyncProp",value:function(e){var t=this.asyncProps[e];return t&&t.resolvedValue}},{key:"isAsyncPropLoading",value:function(e){if(e){var t=this.asyncProps[e];return Boolean(t&&t.pendingLoadCount>0&&t.pendingLoadCount!==t.resolvedLoadCount)}for(var A in this.asyncProps)if(this.isAsyncPropLoading(A))return!0;return!1}},{key:"reloadAsyncProp",value:function(e,t){this._watchPromise(e,Promise.resolve(t))}},{key:"setAsyncProps",value:function(e){var t=e[re]||{},A=e[ne]||e,n=e[ie]||{};for(var r in t){var i=t[r];this._createAsyncPropData(r,n[r]),this._updateAsyncProp(r,i),t[r]=this.getAsyncProp(r)}for(var o in A){var a=A[o];this._createAsyncPropData(o,n[o]),this._updateAsyncProp(o,a)}}},{key:"_updateAsyncProp",value:function(e,t){if(this._didAsyncInputValueChange(e,t)){if("string"===typeof t){var A,n=null===(A=this.layer)||void 0===A?void 0:A.props.fetch;n&&(t=n(t,{propName:e,layer:this.layer}))}t instanceof Promise?this._watchPromise(e,t):Object(x.c)(t)?this._resolveAsyncIterable(e,t):this._setPropValue(e,t)}}},{key:"_didAsyncInputValueChange",value:function(e,t){var A=this.asyncProps[e];return t!==A.resolvedValue&&t!==A.lastValue&&(A.lastValue=t,!0)}},{key:"_setPropValue",value:function(e,t){this.freezeAsyncOldProps();var A=this.asyncProps[e];t=this._postProcessValue(A,t),A.resolvedValue=t,A.pendingLoadCount++,A.resolvedLoadCount=A.pendingLoadCount}},{key:"_setAsyncPropValue",value:function(e,t,A){var n=this.asyncProps[e];n&&A>=n.resolvedLoadCount&&void 0!==t&&(this.freezeAsyncOldProps(),n.resolvedValue=t,n.resolvedLoadCount=A,this.onAsyncPropUpdated(e,t))}},{key:"_watchPromise",value:function(e,t){var A=this,n=this.asyncProps[e];n.pendingLoadCount++;var r=n.pendingLoadCount;t.then((function(t){var i;t=A._postProcessValue(n,t),A._setAsyncPropValue(e,t,r);var o=null===(i=A.layer)||void 0===i?void 0:i.props.onDataLoad;"data"===e&&o&&o(t,{propName:e,layer:A.layer})})).catch((function(t){var n;null===(n=A.layer)||void 0===n||n.raiseError(t,"loading ".concat(e," of ").concat(A.layer))}))}},{key:"_resolveAsyncIterable",value:function(){var e=Object(te.a)(ee.a.mark((function e(t,A){var n,r,i,o,a,s,g,c,u,l,I,C,h,f,d;return ee.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:"data"!==t&&this._setPropValue(t,A),(r=this.asyncProps[t]).pendingLoadCount++,i=r.pendingLoadCount,o=[],a=0,s=!0,g=!1,e.prev=8,u=Object(Ae.a)(A);case 10:return e.next=12,u.next();case 12:return l=e.sent,s=l.done,e.next=16,l.value;case 16:if(I=e.sent,s){e.next=27;break}C=I,h=this.component?this.component.props:{},f=h.dataTransform,o=f?f(C,o):o.concat(C),Object.defineProperty(o,"__diff",{enumerable:!1,value:[{startRow:a,endRow:o.length}]}),a=o.length,this._setAsyncPropValue(t,o,i);case 24:s=!0,e.next=10;break;case 27:e.next=33;break;case 29:e.prev=29,e.t0=e.catch(8),g=!0,c=e.t0;case 33:if(e.prev=33,e.prev=34,s||null==u.return){e.next=38;break}return e.next=38,u.return();case 38:if(e.prev=38,!g){e.next=41;break}throw c;case 41:return e.finish(38);case 42:return e.finish(33);case 43:(d=null===(n=this.layer)||void 0===n?void 0:n.props.onDataLoad)&&d(o,{propName:t,layer:this.layer});case 45:case"end":return e.stop()}}),e,this,[[8,29,33,43],[34,,38,42]])})));return function(t,A){return e.apply(this,arguments)}}()},{key:"_postProcessValue",value:function(e,t){var A=e.type;return A&&(A.release&&A.release(e.resolvedValue,A,this.component),A.transform)?A.transform(t,A,this.component):t}},{key:"_createAsyncPropData",value:function(e,t){if(!this.asyncProps[e]){var A=this.component&&this.component.constructor._propTypes;this.asyncProps[e]={type:A&&A[e],lastValue:null,resolvedValue:t,pendingLoadCount:0,resolvedLoadCount:0}}}}]),e}(),se=k.b.ASYNC_ORIGINAL,ge=k.b.ASYNC_RESOLVED,ce=k.b.ASYNC_DEFAULTS,ue=0,le=function(){function e(){Object(i.a)(this,e),this.props=K.apply(this,arguments),this.id=this.props.id,this.count=ue++,this.lifecycle=k.a.NO_STATE,this.parent=null,this.context=null,this.state=null,this.internalState=null,Object.seal(this)}return Object(o.a)(e,[{key:"clone",value:function(e){var t=this.props,A={};for(var n in t[ce])n in t[ge]?A[n]=t[ge][n]:n in t[se]&&(A[n]=t[se][n]);return new this.constructor(Object(g.a)({},t,{},A,{},e))}},{key:"_initState",value:function(){this.internalState=new ae({})}},{key:"root",get:function(){for(var e=this;e.parent;)e=e.parent;return e}},{key:"stats",get:function(){return this.internalState.stats}}]),e}();le.componentName="Component",le.defaultProps={};var Ie=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(e){var n,r=e.attributeManager,o=e.layer;return Object(i.a)(this,A),(n=t.call(this,o)).attributeManager=r,n.model=null,n.needsRedraw=!0,n.subLayers=null,n.usesPickingColorCache=!1,n}return Object(o.a)(A,[{key:"layer",get:function(){return this.component},set:function(e){this.component=e}}]),A}(ae),Ce=A(42),he=A(1283);A.d(t,"a",(function(){return Qe}));var fe=Math.pow(2,24)-1,de=Object.freeze([]),Be=Object(F.a)((function(e){var t=e.oldViewport,A=e.viewport;return t.equals(A)})),pe=new Uint8ClampedArray(0),Ee={data:{type:"data",value:de,async:!0},dataComparator:null,_dataDiff:{type:"function",value:function(e){return e&&e.__diff},compare:!1,optional:!0},dataTransform:{type:"function",value:null,compare:!1,optional:!0},onDataLoad:{type:"function",value:null,compare:!1,optional:!0},onError:{type:"function",value:null,compare:!1,optional:!0},fetch:{type:"function",value:function(e,t){var A,n=t.propName,r=t.layer,i=t.loaders,o=t.loadOptions,a=t.signal,s=r.context.resourceManager;(o=o||r.getLoadOptions(),i=i||r.props.loaders,a)&&(o=Object(g.a)({},o,{fetch:Object(g.a)({},null===(A=o)||void 0===A?void 0:A.fetch,{signal:a})}));var c=s.contains(e);return c||o||(s.add({resourceId:e,data:Object(he.a)(e,i),persistent:!1}),c=!0),c?s.subscribe({resourceId:e,onChange:function(e){return r.internalState.reloadAsyncProp(n,e)},consumerId:r.id,requestId:n}):Object(he.a)(e,i,o)},compare:!1},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:"number",min:0,max:1,value:1},onHover:{type:"function",value:null,compare:!1,optional:!0},onClick:{type:"function",value:null,compare:!1,optional:!0},onDragStart:{type:"function",value:null,compare:!1,optional:!0},onDrag:{type:"function",value:null,compare:!1,optional:!0},onDragEnd:{type:"function",value:null,compare:!1,optional:!0},coordinateSystem:c.a.DEFAULT,coordinateOrigin:{type:"array",value:[0,0,0],compare:!0},modelMatrix:{type:"array",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:"XYZ",colorFormat:"RGBA",parameters:{},transitions:null,extensions:[],loaders:{type:"array",value:[],optional:!0,compare:!0},getPolygonOffset:{type:"function",value:function(e){return[0,100*-e.layerIndex]},compare:!1},highlightedObjectIndex:-1,autoHighlight:!1,highlightColor:{type:"accessor",value:[0,0,128,128]}},Qe=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(){return Object(i.a)(this,A),t.apply(this,arguments)}return Object(o.a)(A,[{key:"toString",value:function(){var e=this.constructor.layerName||this.constructor.name;return"".concat(e,"({id: '").concat(this.props.id,"'})")}},{key:"raiseError",value:function(e,t){var A,n,r,i;(t&&(e.message="".concat(t,": ").concat(e.message)),null===(A=(n=this.props).onError)||void 0===A?void 0:A.call(n,e))||(null===(r=this.context)||void 0===r||null===(i=r.onError)||void 0===i||i.call(r,e,this))}},{key:"setState",value:function(e){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,e),this.setNeedsRedraw()}},{key:"setNeedsRedraw",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.internalState&&(this.internalState.needsRedraw=e)}},{key:"setNeedsUpdate",value:function(){this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0}},{key:"getNeedsRedraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1};return this._getNeedsRedraw(e)}},{key:"needsUpdate",value:function(){return this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams())}},{key:"hasUniformTransition",value:function(){return this.internalState.uniformTransitions.active}},{key:"isPickable",value:function(){return this.props.pickable&&this.props.visible}},{key:"getModels",value:function(){return this.state&&(this.state.models||(this.state.model?[this.state.model]:[]))}},{key:"getAttributeManager",value:function(){return this.internalState&&this.internalState.attributeManager}},{key:"getCurrentLayer",value:function(){return this.internalState&&this.internalState.layer}},{key:"getLoadOptions",value:function(){return this.props.loadOptions}},{key:"project",value:function(e){var t=this.context.viewport,A=Object(D.a)(e,{viewport:t,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),n=Object(Ce.s)(A,t.pixelProjectionMatrix),i=Object(r.a)(n,3),o=i[0],a=i[1],s=i[2];return 2===e.length?[o,a]:[o,a,s]}},{key:"unproject",value:function(e){return this.context.viewport.unproject(e)}},{key:"projectPosition",value:function(e){return Object(D.b)(e,{viewport:this.context.viewport,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem})}},{key:"use64bitPositions",value:function(){var e=this.props.coordinateSystem;return e===c.a.DEFAULT||e===c.a.LNGLAT||e===c.a.CARTESIAN}},{key:"onHover",value:function(e,t){return!!this.props.onHover&&this.props.onHover(e,t)}},{key:"onClick",value:function(e,t){return!!this.props.onClick&&this.props.onClick(e,t)}},{key:"nullPickingColor",value:function(){return[0,0,0]}},{key:"encodePickingColor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return t[0]=e+1&255,t[1]=e+1>>8&255,t[2]=e+1>>8>>8&255,t}},{key:"decodePickingColor",value:function(e){Object(S.a)(e instanceof Uint8Array);var t=Object(r.a)(e,3);return t[0]+256*t[1]+65536*t[2]-1}},{key:"initializeState",value:function(){throw new Error("Layer ".concat(this," has not defined initializeState"))}},{key:"getShaders",value:function(e){var t,A=Object(n.a)(this.props.extensions);try{for(A.s();!(t=A.n()).done;){var r=t.value;e=Object(R.a)(e,r.getShaders.call(this,r))}}catch(i){A.e(i)}finally{A.f()}return e}},{key:"shouldUpdateState",value:function(e){e.oldProps,e.props,e.context;return e.changeFlags.propsOrDataChanged}},{key:"updateState",value:function(e){var t=e.oldProps,A=e.props,r=(e.context,e.changeFlags),i=this.getAttributeManager();if(r.dataChanged&&i){var o=r.dataChanged;if(Array.isArray(o)){var a,s=Object(n.a)(o);try{for(s.s();!(a=s.n()).done;){var g=a.value;i.invalidateAll(g)}}catch(f){s.e(f)}finally{s.f()}}else i.invalidateAll()}var c=t.highlightedObjectIndex>=0||t.pickable,u=A.highlightedObjectIndex>=0||A.pickable;if(c!==u&&i){var l=i.attributes,I=l.pickingColors,C=l.instancePickingColors,h=I||C;h&&(u&&h.constant&&(h.constant=!1,i.invalidate(h.id)),h.value||u||(h.constant=!0,h.value=[0,0,0]))}}},{key:"finalizeState",value:function(){var e,t=Object(n.a)(this.getModels());try{for(t.s();!(e=t.n()).done;){e.value.delete()}}catch(r){t.e(r)}finally{t.f()}var A=this.getAttributeManager();A&&A.finalize(),this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState.uniformTransitions.clear(),this.internalState.finalize()}},{key:"draw",value:function(e){var t,A=Object(n.a)(this.getModels());try{for(A.s();!(t=A.n()).done;){t.value.draw(e)}}catch(r){A.e(r)}finally{A.f()}}},{key:"getPickingInfo",value:function(e){var t=e.info,A=(e.mode,t.index);return A>=0&&Array.isArray(this.props.data)&&(t.object=this.props.data[A]),t}},{key:"activateViewport",value:function(e){var t=this.internalState.viewport;this.internalState.viewport=e,t&&Be({oldViewport:t,viewport:e})||(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}},{key:"invalidateAttribute",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"all",t=(arguments.length>1&&void 0!==arguments[1]&&arguments[1],this.getAttributeManager());t&&("all"===e?t.invalidateAll():t.invalidate(e))}},{key:"updateAttributes",value:function(e){var t,A=Object(n.a)(this.getModels());try{for(A.s();!(t=A.n()).done;){var r=t.value;this._setModelAttributes(r,e)}}catch(i){A.e(i)}finally{A.f()}}},{key:"_updateAttributes",value:function(e){var t=this.getAttributeManager();if(t){var A=this.getNumInstances(e),n=this.getStartIndices(e);t.update({data:e.data,numInstances:A,startIndices:n,props:e,transitions:e.transitions,buffers:e.data.attributes,context:this,ignoreUnknownAttributes:!0});var r=t.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(r)}}},{key:"_updateAttributeTransition",value:function(){var e=this.getAttributeManager();e&&e.updateTransition()}},{key:"_updateUniformTransition",value:function(){var e=this.internalState.uniformTransitions;if(e.active){var t=e.update(),A=Object.create(this.props);for(var n in t)Object.defineProperty(A,n,{value:t[n]});return A}return this.props}},{key:"calculateInstancePickingColors",value:function(e,t){var A=t.numInstances;if(!e.constant){var n=Math.floor(pe.length/3);if(this.internalState.usesPickingColorCache=!0,n<A){A>fe&&E.a.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")(),pe=G.a.allocate(pe,A,{size:3,copy:!0,maxCount:Math.max(A,fe)});for(var r=Math.floor(pe.length/3),i=[],o=n;o<r;o++)this.encodePickingColor(o,i),pe[3*o+0]=i[0],pe[3*o+1]=i[1],pe[3*o+2]=i[2]}e.value=pe.subarray(0,3*A)}}},{key:"_setModelAttributes",value:function(e,t){var A=this.getAttributeManager(),n=e.userData.excludeAttributes||{},r=A.getShaderAttributes(t,n);e.setAttributes(r)}},{key:"disablePickingIndex",value:function(e){this._disablePickingIndex(e)}},{key:"_disablePickingIndex",value:function(e){var t=this.getAttributeManager().attributes,A=t.pickingColors,n=t.instancePickingColors,r=A||n,i=r.getVertexOffset(e),o=r.getVertexOffset(e+1);r.buffer.subData({data:new Uint8Array(o-i),offset:i})}},{key:"restorePickingColors",value:function(){var e=this.getAttributeManager().attributes,t=e.pickingColors,A=e.instancePickingColors,n=t||A;this.internalState.usesPickingColorCache&&n.value.buffer!==pe.buffer&&(n.value=pe.subarray(0,n.value.length)),n.updateSubBuffer({startOffset:0})}},{key:"getNumInstances",value:function(e){return void 0!==(e=e||this.props).numInstances?e.numInstances:this.state&&void 0!==this.state.numInstances?this.state.numInstances:Object(m.a)(e.data)}},{key:"getStartIndices",value:function(e){return void 0!==(e=e||this.props).startIndices?e.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}},{key:"_initialize",value:function(){Object(b.a)("layer.initialize",this),this._initState(),this.initializeState(this.context);var e,t=Object(n.a)(this.props.extensions);try{for(t.s();!(e=t.n()).done;){var A=e.value;A.initializeState.call(this,this.context,A)}}catch(r){t.e(r)}finally{t.f()}this.setChangeFlags({dataChanged:!0,propsChanged:!0,viewportChanged:!0,extensionsChanged:!0}),this._updateState()}},{key:"_update",value:function(){var e=this.needsUpdate();Object(b.a)("layer.update",this,e),e&&this._updateState()}},{key:"_updateState",value:function(){var e=this.props,t=this.context.viewport,A=this._updateUniformTransition();this.internalState.propsInTransition=A,this.context.viewport=this.internalState.viewport||t,this.props=A;try{var r=this._getUpdateParams(),i=this.getModels();if(this.context.gl)this.updateState(r);else try{this.updateState(r)}catch(c){}var o,a=Object(n.a)(this.props.extensions);try{for(a.s();!(o=a.n()).done;){var s=o.value;s.updateState.call(this,r,s)}}catch(u){a.e(u)}finally{a.f()}var g=this.getModels()[0]!==i[0];this._updateModules(r,g),this.isComposite?this._renderLayers(r):(this.setNeedsRedraw(),this._updateAttributes(this.props),this.state.model&&this.state.model.setInstanceCount(this.getNumInstances()))}finally{this.context.viewport=t,this.props=e,this.clearChangeFlags(),this.internalState.needsUpdate=!1,this.internalState.resetOldProps()}}},{key:"_finalize",value:function(){Object(b.a)("layer.finalize",this),this.finalizeState(this.context);var e,t=Object(n.a)(this.props.extensions);try{for(t.s();!(e=t.n()).done;){var A=e.value;A.finalizeState.call(this,A)}}catch(r){t.e(r)}finally{t.f()}}},{key:"drawLayer",value:function(e){var t=this,A=e.moduleParameters,r=void 0===A?null:A,i=e.uniforms,o=void 0===i?{}:i,a=e.parameters,s=void 0===a?{}:a;this._updateAttributeTransition();var g=this.props;this.props=this.internalState.propsInTransition||g;var c=this.props.opacity;o.opacity=Math.pow(c,1/2.2);try{r&&this.setModuleParameters(r);var u=this.props.getPolygonOffset,l=u&&u(o)||[0,0];Object(w.n)(this.context.gl,{polygonOffset:l}),Object(w.o)(this.context.gl,s,(function(){var e,A={moduleParameters:r,uniforms:o,parameters:s,context:t.context},i=Object(n.a)(t.props.extensions);try{for(i.s();!(e=i.n()).done;){var a=e.value;a.draw.call(t,A,a)}}catch(g){i.e(g)}finally{i.f()}t.draw(A)}))}finally{this.props=g}}},{key:"getChangeFlags",value:function(){return this.internalState.changeFlags}},{key:"setChangeFlags",value:function(e){var t=this.internalState.changeFlags;for(var A in e)if(e[A]){var n=!1;switch(A){case"dataChanged":Array.isArray(t[A])&&(t[A]=Array.isArray(e[A])?t[A].concat(e[A]):e[A],n=!0);default:t[A]||(t[A]=e[A],n=!0)}n&&Object(b.a)("layer.changeFlag",this,A,e)}var r=t.dataChanged||t.updateTriggersChanged||t.propsChanged||t.extensionsChanged;t.propsOrDataChanged=r,t.somethingChanged=r||e.viewportChanged||e.stateChanged}},{key:"clearChangeFlags",value:function(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}},{key:"diffProps",value:function(e,t){var A=Object(v.b)(e,t);if(A.updateTriggersChanged)for(var n in A.updateTriggersChanged)A.updateTriggersChanged[n]&&this.invalidateAttribute(n);if(A.transitionsChanged)for(var r in A.transitionsChanged)this.internalState.uniformTransitions.add(r,t[r],e[r],e.transitions[r]);return this.setChangeFlags(A)}},{key:"validateProps",value:function(){Object(v.c)(this.props)}},{key:"setModuleParameters",value:function(e){var t,A=Object(n.a)(this.getModels());try{for(A.s();!(t=A.n()).done;){t.value.updateModuleSettings(e)}}catch(r){A.e(r)}finally{A.f()}}},{key:"updateAutoHighlight",value:function(e){this.props.autoHighlight&&this._updateAutoHighlight(e)}},{key:"_updateAutoHighlight",value:function(e){var t={pickingSelectedColor:e.picked?e.color:null},A=this.props.highlightColor;e.picked&&"function"===typeof A&&(t.pickingHighlightColor=A(e)),this.setModuleParameters(t),this.setNeedsRedraw()}},{key:"_updateModules",value:function(e,t){var A=e.props,n=e.oldProps,r=A.autoHighlight,i=A.highlightedObjectIndex,o=A.highlightColor;if(t||n.autoHighlight!==r||n.highlightedObjectIndex!==i||n.highlightColor!==o){var a={};r||(a.pickingSelectedColor=null),Array.isArray(o)&&(a.pickingHighlightColor=o),Number.isInteger(i)&&(a.pickingSelectedColor=i>=0?this.encodePickingColor(i):null),this.setModuleParameters(a)}}},{key:"_getUpdateParams",value:function(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}},{key:"_getNeedsRedraw",value:function(e){if(!this.internalState)return!1;var t=!1;t=t||this.internalState.needsRedraw&&this.id,this.internalState.needsRedraw=this.internalState.needsRedraw&&!e.clearRedrawFlags;var A=this.getAttributeManager(),n=A&&A.getNeedsRedraw(e);return t=t||n}},{key:"_getAttributeManager",value:function(){return new u.a(this.context.gl,{id:this.props.id,stats:this.context.stats,timeline:this.context.timeline})}},{key:"_initState",value:function(){Object(S.a)(!this.internalState&&!this.state),Object(S.a)(isFinite(this.props.coordinateSystem));var e=this._getAttributeManager();e&&e.addInstanced({instancePickingColors:{type:5121,size:3,noAlloc:!0,update:this.calculateInstancePickingColors}}),this.internalState=new Ie({attributeManager:e,layer:this}),this.clearChangeFlags(),this.state={},Object.defineProperty(this.state,"attributeManager",{get:function(){return E.a.deprecated("layer.state.attributeManager","layer.getAttributeManager()"),e}}),this.internalState.layer=this,this.internalState.uniformTransitions=new y(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props)}},{key:"_transferState",value:function(e){Object(b.a)("layer.matched",this,this===e);var t=e.state,A=e.internalState;this!==e&&(this.internalState=A,this.internalState.layer=this,this.state=t,this.internalState.setAsyncProps(this.props),this.diffProps(this.props,this.internalState.getOldProps()))}},{key:"_onAsyncPropUpdated",value:function(){this.diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}},{key:"isLoaded",get:function(){return this.internalState&&!this.internalState.isAsyncPropLoading()}},{key:"wrapLongitude",get:function(){return this.props.wrapLongitude}}]),A}(le);Qe.layerName="Layer",Qe.defaultProps=Ee},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(2),a=A(8),s=A(6),g=A(16),c=A(17),u=A(9),l=A(10),I=A(718),C=A(427),h=A(80),f=function(){function e(t,A){Object(r.a)(this,e),this.opts=A,this.source=t}return Object(i.a)(e,[{key:"getValue",value:function(){var e=this.source.getBuffer(),t=this.getAccessor();if(e)return[e,t];var A=this.source.value,n=t.size,r=A;if(A&&A.length!==n){r=new Float32Array(n);for(var i=t.elementOffset||0,o=0;o<n;++o)r[o]=A[i+o]}return r}},{key:"getAccessor",value:function(){return Object(n.a)({},this.source.getAccessor(),{},this.opts)}},{key:"value",get:function(){return this.source.value}}]),e}();var d=A(150),B=A(84),p=A(41);function E(e){return e.stride||e.size*e.bytesPerElement}function Q(e,t){t.offset&&p.a.removed("shaderAttribute.offset","vertexOffset, elementOffset")();var A=E(e),r=("vertexOffset"in t?t.vertexOffset:e.vertexOffset||0)*A+(t.elementOffset||0)*e.bytesPerElement+(e.offset||0);return Object(n.a)({},t,{offset:r,stride:A})}var y=function(){function e(t,A){Object(r.a)(this,e),this.gl=t,this.id=A.id,this.size=A.size;var n=A.logicalType||A.type,i=5130===n,o=A.defaultValue;o=Number.isFinite(o)?[o]:o||new Array(this.size).fill(0),A.defaultValue=o;var a=n;i?a=5126:!a&&A.isIndexed?a=t&&Object(I.b)(t,C.a.ELEMENT_INDEX_UINT32)?5125:5123:a||(a=5126),A.logicalType=n,A.type=a;var s=function(e){switch(e){case 5126:return Float32Array;case 5130:return Float64Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return Uint8ClampedArray;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Unknown GL type")}}(n||a||5126);this.shaderAttributes={},this.doublePrecision=i,i&&!1===A.fp64&&(s=Float32Array),A.bytesPerElement=s.BYTES_PER_ELEMENT,this.defaultType=s,this.value=null,this.settings=A,this.state={externalBuffer:null,bufferAccessor:A,allocatedValue:null,constant:!1},this._buffer=null,this.setData(A)}return Object(i.a)(e,[{key:"delete",value:function(){this._buffer&&(this._buffer.delete(),this._buffer=null),d.a.release(this.state.allocatedValue)}},{key:"getShaderAttributes",value:function(e,t){if(this.doublePrecision){var A={},r=this.value instanceof Float64Array,i=function(e,t){var A=Q(e,t);return{high:A,low:Object(n.a)({},A,{offset:A.offset+4*e.size})}}(this.getAccessor(),t||{});return A[e]=new f(this,i.high),A["".concat(e,"64Low")]=r?new f(this,i.low):new Float32Array(this.size),A}if(t){var a=Q(this.getAccessor(),t);return Object(o.a)({},e,new f(this,a))}return Object(o.a)({},e,this)}},{key:"getBuffer",value:function(){return this.state.constant?null:this.state.externalBuffer||this._buffer}},{key:"getValue",value:function(){return this.state.constant?this.value:[this.getBuffer(),this.getAccessor()]}},{key:"getAccessor",value:function(){return this.state.bufferAccessor}},{key:"setData",value:function(e){var t=this.state;ArrayBuffer.isView(e)?e={value:e}:e instanceof h.a&&(e={buffer:e});var A=Object(n.a)({},this.settings,{},e);if(t.bufferAccessor=A,e.constant){var r=e.value;if(r=this._normalizeValue(r,[],0),this.settings.normalized&&(r=this._normalizeConstant(r)),!(!t.constant||!this._areValuesEqual(r,this.value)))return!1;t.externalBuffer=null,t.constant=!0,this.value=r}else if(e.buffer){var i=e.buffer;t.externalBuffer=i,t.constant=!1,this.value=e.value;var o=e.value instanceof Float64Array;A.type=e.type||i.accessor.type,A.bytesPerElement=i.accessor.BYTES_PER_ELEMENT*(o?2:1),A.stride=E(A)}else if(e.value){this._checkExternalBuffer(e);var a=e.value;t.externalBuffer=null,t.constant=!1,this.value=a,A.bytesPerElement=a.BYTES_PER_ELEMENT,A.stride=E(A);var s=this.buffer,g=this.byteOffset;this.doublePrecision&&a instanceof Float64Array&&(a=Object(B.f)(a,A));var c=a.byteLength+g+2*A.stride;s.byteLength<c&&s.reallocate(c),s.setAccessor(null),s.subData({data:a,offset:g}),A.type=e.type||s.accessor.type}return!0}},{key:"updateSubBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.value,A=e.startOffset,n=void 0===A?0:A,r=e.endOffset;this.buffer.subData({data:this.doublePrecision&&t instanceof Float64Array?Object(B.f)(t,{size:this.size,startIndex:n,endIndex:r}):t.subarray(n,r),offset:n*t.BYTES_PER_ELEMENT+this.byteOffset})}},{key:"allocate",value:function(e){var t=e.numInstances,A=e.copy,n=void 0!==A&&A,r=this.state,i=r.allocatedValue,o=d.a.allocate(i,t+1,{size:this.size,type:this.defaultType,copy:n});this.value=o;var a=this.buffer,s=this.byteOffset;return a.byteLength<o.byteLength+s&&(a.reallocate(o.byteLength+s),n&&i&&a.subData({data:i instanceof Float64Array?Object(B.f)(i,this):i,offset:s})),r.allocatedValue=o,r.constant=!1,r.externalBuffer=null,r.bufferAccessor=this.settings,!0}},{key:"_checkExternalBuffer",value:function(e){var t=e.value;if(!e.constant&&t){var A=this.defaultType,n=!1;if(this.doublePrecision&&(n=t.BYTES_PER_ELEMENT<4),n)throw new Error("Attribute ".concat(this.id," does not support ").concat(t.constructor.name));t instanceof A||!this.settings.normalized||"normalized"in e||p.a.warn("Attribute ".concat(this.id," is normalized"))()}}},{key:"_normalizeConstant",value:function(e){switch(this.settings.type){case 5120:return new Float32Array(e).map((function(e){return(e+128)/255*2-1}));case 5122:return new Float32Array(e).map((function(e){return(e+32768)/65535*2-1}));case 5121:return new Float32Array(e).map((function(e){return e/255}));case 5123:return new Float32Array(e).map((function(e){return e/65535}));default:return e}}},{key:"_normalizeValue",value:function(e,t,A){var n=this.settings,r=n.defaultValue,i=n.size;if(Number.isFinite(e))return t[A]=e,t;if(!e)return t[A]=r[0],t;switch(i){case 4:t[A+3]=Number.isFinite(e[3])?e[3]:r[3];case 3:t[A+2]=Number.isFinite(e[2])?e[2]:r[2];case 2:t[A+1]=Number.isFinite(e[1])?e[1]:r[1];case 1:t[A+0]=Number.isFinite(e[0])?e[0]:r[0];break;default:for(var o=i;--o>=0;)t[A+o]=Number.isFinite(e[o])?e[o]:r[o]}return t}},{key:"_areValuesEqual",value:function(e,t){if(!e||!t)return!1;for(var A=this.size,n=0;n<A;n++)if(e[n]!==t[n])return!1;return!0}},{key:"buffer",get:function(){if(!this._buffer){var e=this.settings,t=e.isIndexed,A=e.type;this._buffer=new h.a(this.gl,{id:this.id,target:t?34963:34962,accessor:{type:A}})}return this._buffer}},{key:"byteOffset",get:function(){var e=this.getAccessor();return e.vertexOffset?e.vertexOffset*E(e):0}}]),e}(),v=A(87),m=A(116),b=A(147),w=[],S=[[0,1/0]];function F(e,t){if(e===S)return e;if(t[0]<0&&(t[0]=0),t[0]>=t[1])return e;for(var A=[],n=e.length,r=0,i=0;i<n;i++){var o=e[i];o[1]<t[0]?(A.push(o),r=i+1):o[0]>t[1]?A.push(o):t=[Math.min(o[0],t[0]),Math.max(o[1],t[1])]}return A.splice(r,0,t),A}var R=A(104),D=function(e){Object(u.a)(A,e);var t=Object(l.a)(A);function A(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,A),n=t.call(this,e,i);var o=i.transition,a=void 0!==o&&o,s=i.noAlloc,g=void 0!==s&&s,c=i.update,u=void 0===c?null:c,l=i.accessor,I=void 0===l?null:l,C=i.transform,h=void 0===C?null:C,f=i.startIndices,d=void 0===f?null:f;return Object.assign(n.settings,{transition:a,noAlloc:g,update:u||I&&n._autoUpdater,accessor:I,transform:h}),Object.assign(n.state,{lastExternalBuffer:null,binaryValue:null,binaryAccessor:null,needsUpdate:!0,needsRedraw:!1,updateRanges:S,startIndices:d}),Object.seal(n.settings),Object.seal(n.state),n._validateAttributeUpdaters(),n}return Object(i.a)(A,[{key:"needsUpdate",value:function(){return this.state.needsUpdate}},{key:"needsRedraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.clearChangedFlags,A=void 0!==t&&t,n=this.state.needsRedraw;return this.state.needsRedraw=n&&!A,n}},{key:"getUpdateTriggers",value:function(){var e=this.settings.accessor;return[this.id].concat("function"!==typeof e&&e||[])}},{key:"supportsTransition",value:function(){return Boolean(this.settings.transition)}},{key:"getTransitionSetting",value:function(e){if(!e||!this.supportsTransition())return null;var t=this.settings.accessor,A=this.settings.transition,n=Array.isArray(t)?e[t.find((function(t){return e[t]}))]:e[t];return Object(R.e)(n,A)}},{key:"setNeedsUpdate",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.id,t=arguments.length>1?arguments[1]:void 0;if(this.state.needsUpdate=this.state.needsUpdate||e,this.setNeedsRedraw(e),t){var A=t.startRow,n=void 0===A?0:A,r=t.endRow,i=void 0===r?1/0:r;this.state.updateRanges=F(this.state.updateRanges,[n,i])}else this.state.updateRanges=S}},{key:"clearNeedsUpdate",value:function(){this.state.needsUpdate=!1,this.state.updateRanges=w}},{key:"setNeedsRedraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.id;this.state.needsRedraw=this.state.needsRedraw||e}},{key:"update",value:function(e){this.setData(e)}},{key:"allocate",value:function(e){var t=this.state,n=this.settings;return!n.noAlloc&&(!!n.update&&(Object(c.a)(Object(g.a)(A.prototype),"allocate",this).call(this,{numInstances:e,copy:t.updateRanges!==S}),!0))}},{key:"updateBuffer",value:function(e){var t=e.numInstances,n=e.data,r=e.props,i=e.context;if(!this.needsUpdate())return!1;var o=this.state.updateRanges,u=this.settings,l=u.update,I=u.noAlloc,C=!0;if(l){var h,f=Object(s.a)(o);try{for(f.s();!(h=f.n()).done;){var d=Object(a.a)(h.value,2),B=d[0],p=d[1];l.call(i,this,{data:n,startRow:B,endRow:p,props:r,numInstances:t})}}catch(S){f.e(S)}finally{f.f()}if(this.value)if(this.constant||this.buffer.byteLength<this.value.byteLength+this.byteOffset)this.setData({value:this.value,constant:this.constant}),this.constant=!1;else{var E,Q=Object(s.a)(o);try{for(Q.s();!(E=Q.n()).done;){var y=Object(a.a)(E.value,2),v=y[0],m=y[1],b=Number.isFinite(v)?this.getVertexOffset(v):0,w=Number.isFinite(m)?this.getVertexOffset(m):I||!Number.isFinite(t)?this.value.length:t*this.size;Object(c.a)(Object(g.a)(A.prototype),"updateSubBuffer",this).call(this,{startOffset:b,endOffset:w})}}catch(S){Q.e(S)}finally{Q.f()}}else;this._checkAttributeArray()}else C=!1;return this.clearNeedsUpdate(),this.setNeedsRedraw(),C}},{key:"setConstantValue",value:function(e){return void 0!==e&&"function"!==typeof e&&(this.setData({constant:!0,value:e})&&this.setNeedsRedraw(),this.clearNeedsUpdate(),!0)}},{key:"setExternalBuffer",value:function(e){var t=this.state;return e?(this.clearNeedsUpdate(),t.lastExternalBuffer===e||(t.lastExternalBuffer=e,this.setNeedsRedraw(),this.setData(e)),!0):(t.lastExternalBuffer=null,!1)}},{key:"setBinaryValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,A=this.state,n=this.settings;if(!e)return A.binaryValue=null,A.binaryAccessor=null,!1;if(n.noAlloc)return!1;if(A.binaryValue===e)return this.clearNeedsUpdate(),!0;A.binaryValue=e,this.setNeedsRedraw(),ArrayBuffer.isView(e)&&(e={value:e});var r=n.transform||t!==this.startIndices;if(r){Object(v.a)(ArrayBuffer.isView(e.value),"invalid ".concat(n.accessor));var i=e.size&&e.size!==this.size;return A.binaryAccessor=Object(m.b)(e.value,{size:e.size||this.size,stride:e.stride,offset:e.offset,startIndices:t,nested:i}),!1}return this.clearNeedsUpdate(),this.setData(e),!0}},{key:"getVertexOffset",value:function(e){var t=this.startIndices;return(t?t[e]:e)*this.size}},{key:"getShaderAttributes",value:function(){var e=this.settings.shaderAttributes||Object(o.a)({},this.id,null),t={};for(var n in e)Object.assign(t,Object(c.a)(Object(g.a)(A.prototype),"getShaderAttributes",this).call(this,n,e[n]));return t}},{key:"_autoUpdater",value:function(e,t){var A=t.data,n=t.startRow,r=t.endRow,i=t.props,o=t.numInstances;if(!e.constant){var a=e.settings,g=e.state,c=e.value,u=e.size,l=e.startIndices,I=a.accessor,C=a.transform,h=g.binaryAccessor||("function"===typeof I?I:i[I]);Object(v.a)("function"===typeof h,'accessor "'.concat(I,'" is not a function'));var f,d=e.getVertexOffset(n),B=Object(m.a)(A,n,r),p=B.iterable,E=B.objectInfo,Q=Object(s.a)(p);try{for(Q.s();!(f=Q.n()).done;){var y=f.value;E.index++;var w=h(y,E);if(C&&(w=C.call(this,w)),l){var S=(E.index<l.length-1?l[E.index+1]:o)-l[E.index];if(w&&Array.isArray(w[0])){var F,R=d,D=Object(s.a)(w);try{for(D.s();!(F=D.n()).done;){var G=F.value;e._normalizeValue(G,c,R),R+=u}}catch(k){D.e(k)}finally{D.f()}}else w&&w.length>u?c.set(w,d):(e._normalizeValue(w,E.target,0),Object(b.a)({target:c,source:E.target,start:d,count:S}));d+=S*u}else e._normalizeValue(w,c,d),d+=u}}catch(k){Q.e(k)}finally{Q.f()}}}},{key:"_validateAttributeUpdaters",value:function(){var e=this.settings;if(!(e.noAlloc||"function"===typeof e.update))throw new Error("Attribute ".concat(this.id," missing update or accessor"))}},{key:"_checkAttributeArray",value:function(){var e=this.value,t=Math.min(4,this.size);if(e&&e.length>=t){var A=!0;switch(t){case 4:A=A&&Number.isFinite(e[3]);case 3:A=A&&Number.isFinite(e[2]);case 2:A=A&&Number.isFinite(e[1]);case 1:A=A&&Number.isFinite(e[0]);break;default:A=!1}if(!A)throw new Error("Illegal attribute generated for ".concat(this.id))}}},{key:"startIndices",get:function(){return this.state.startIndices},set:function(e){this.state.startIndices=e}}]),A}(y),G=A(77),k=A(1289),x=A(162),N=function(){function e(t){var A=t.gl,n=t.attribute,i=t.timeline;Object(r.a)(this,e),this.gl=A,this.type="interpolation",this.transition=new x.a(i),this.attribute=n,this.attributeInTransition=new D(A,n.settings),this.currentStartIndices=n.startIndices,this.currentLength=0,this.transform=function(e,t){var A=Object(R.c)(t.size);return new k.a(e,{vs:"\n#define SHADER_NAME interpolation-transition-vertex-shader\n\nuniform float time;\nattribute ATTRIBUTE_TYPE aFrom;\nattribute ATTRIBUTE_TYPE aTo;\nvarying ATTRIBUTE_TYPE vCurrent;\n\nvoid main(void) {\n vCurrent = mix(aFrom, aTo, time);\n gl_Position = vec4(0.0);\n}\n",defines:{ATTRIBUTE_TYPE:A},varyings:["vCurrent"]})}(A,n);var o={byteLength:0,usage:35050};this.buffers=[new h.a(A,o),new h.a(A,o)]}return Object(i.a)(e,[{key:"start",value:function(e,t){if(e.duration<=0)this.transition.cancel();else{var A=this.gl,r=this.buffers,i=this.attribute;Object(R.a)(r);var o,a={numInstances:t,attribute:i,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:e.enter},g=Object(s.a)(r);try{for(g.s();!(o=g.n()).done;){var c=o.value;Object(R.f)(Object(n.a)({buffer:c},a))}}catch(u){g.e(u)}finally{g.f()}this.currentStartIndices=i.startIndices,this.currentLength=Object(R.b)(i,t),this.attributeInTransition.update({buffer:r[1],value:i.value}),this.transition.start(e),this.transform.update({elementCount:Math.floor(this.currentLength/i.size),sourceBuffers:{aFrom:r[0],aTo:Object(R.d)(A,i)},feedbackBuffers:{vCurrent:r[1]}})}}},{key:"update",value:function(){var e=this.transition.update();if(e){var t=this.transition,A=t.time,n=t.settings,r=n.duration,i=(0,n.easing)(A/r);this.transform.run({uniforms:{time:i}})}return e}},{key:"cancel",value:function(){for(this.transition.cancel(),this.transform.delete();this.buffers.length;)this.buffers.pop().delete()}},{key:"inProgress",get:function(){return this.transition.inProgress}}]),e}();var U=A(530),_=A(232),M=A(161);var O={interpolation:N,spring:function(){function e(t){var A=t.gl,i=t.attribute,a=t.timeline;Object(r.a)(this,e),this.gl=A,this.type="spring",this.transition=new x.a(a),this.attribute=i,this.attributeInTransition=new D(A,Object(n.a)({},i.settings,{normalized:!1})),this.currentStartIndices=i.startIndices,this.currentLength=0,this.texture=function(e){return new _.a(e,{data:new Uint8Array(4),format:6408,type:5121,border:0,mipmaps:!1,dataFormat:6408,width:1,height:1})}(A),this.framebuffer=function(e,t){return new M.a(e,{id:"spring-transition-is-transitioning-framebuffer",width:1,height:1,attachments:Object(o.a)({},36064,t)})}(A,this.texture),this.transform=function(e,t,A){var n=Object(R.c)(t.size);return new k.a(e,{framebuffer:A,vs:"\n#define SHADER_NAME spring-transition-vertex-shader\n\n#define EPSILON 0.00001\n\nuniform float stiffness;\nuniform float damping;\nattribute ATTRIBUTE_TYPE aPrev;\nattribute ATTRIBUTE_TYPE aCur;\nattribute ATTRIBUTE_TYPE aTo;\nvarying ATTRIBUTE_TYPE vNext;\nvarying float vIsTransitioningFlag;\n\nATTRIBUTE_TYPE getNextValue(ATTRIBUTE_TYPE cur, ATTRIBUTE_TYPE prev, ATTRIBUTE_TYPE dest) {\n ATTRIBUTE_TYPE velocity = cur - prev;\n ATTRIBUTE_TYPE delta = dest - cur;\n ATTRIBUTE_TYPE spring = delta * stiffness;\n ATTRIBUTE_TYPE damper = velocity * -1.0 * damping;\n return spring + damper + velocity + cur;\n}\n\nvoid main(void) {\n bool isTransitioning = length(aCur - aPrev) > EPSILON || length(aTo - aCur) > EPSILON;\n vIsTransitioningFlag = isTransitioning ? 1.0 : 0.0;\n\n vNext = getNextValue(aCur, aPrev, aTo);\n gl_Position = vec4(0, 0, 0, 1);\n gl_PointSize = 100.0;\n}\n",fs:"\n#define SHADER_NAME spring-transition-is-transitioning-fragment-shader\n\nvarying float vIsTransitioningFlag;\n\nvoid main(void) {\n if (vIsTransitioningFlag == 0.0) {\n discard;\n }\n gl_FragColor = vec4(1.0);\n}",defines:{ATTRIBUTE_TYPE:n},varyings:["vNext"]})}(A,i,this.framebuffer);var s={byteLength:0,usage:35050};this.buffers=[new h.a(A,s),new h.a(A,s),new h.a(A,s)]}return Object(i.a)(e,[{key:"start",value:function(e,t){var A,r=this.gl,i=this.buffers,o=this.attribute,a={numInstances:t,attribute:o,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:e.enter},g=Object(s.a)(i);try{for(g.s();!(A=g.n()).done;){var c=A.value;Object(R.f)(Object(n.a)({buffer:c},a))}}catch(u){g.e(u)}finally{g.f()}this.currentStartIndices=o.startIndices,this.currentLength=Object(R.b)(o,t),this.attributeInTransition.update({buffer:i[1],value:o.value}),this.transition.start(e),this.transform.update({elementCount:Math.floor(this.currentLength/o.size),sourceBuffers:{aTo:Object(R.d)(r,o)}})}},{key:"update",value:function(){var e=this.buffers,t=this.transform,A=this.framebuffer,n=this.transition;return!!n.update()&&(t.update({sourceBuffers:{aPrev:e[0],aCur:e[1]},feedbackBuffers:{vNext:e[2]}}),t.run({framebuffer:A,discard:!1,clearRenderTarget:!0,uniforms:{stiffness:n.settings.stiffness,damping:n.settings.damping},parameters:{depthTest:!1,blend:!0,viewport:[0,0,1,1],blendFunc:[1,1],blendEquation:[32776,32776]}}),Object(R.a)(e),this.attributeInTransition.update({buffer:e[1],value:this.attribute.value}),Object(U.c)(A)[0]>0||n.end(),!0)}},{key:"cancel",value:function(){for(this.transition.cancel(),this.transform.delete();this.buffers.length;)this.buffers.pop().delete();this.texture.delete(),this.texture=null,this.framebuffer.delete(),this.framebuffer=null}},{key:"inProgress",get:function(){return this.transition.inProgress}}]),e}()},L=function(){function e(t,A){var n=A.id,i=A.timeline;Object(r.a)(this,e),this.id=n,this.gl=t,this.timeline=i,this.transitions={},this.needsRedraw=!1,this.numInstances=1,this.isSupported=k.a.isSupported(t)}return Object(i.a)(e,[{key:"finalize",value:function(){for(var e in this.transitions)this._removeTransition(e)}},{key:"update",value:function(e){var t=e.attributes,A=e.transitions,n=e.numInstances;for(var r in this.numInstances=n||1,t){var i=t[r],o=i.getTransitionSetting(A);o&&this._updateAttribute(r,i,o)}for(var a in this.transitions){var s=t[a];s&&s.getTransitionSetting(A)||this._removeTransition(a)}}},{key:"hasAttribute",value:function(e){var t=this.transitions[e];return t&&t.inProgress}},{key:"getAttributes",value:function(){var e={};for(var t in this.transitions){var A=this.transitions[t];A.inProgress&&(e[t]=A.attributeInTransition)}return e}},{key:"run",value:function(){if(!this.isSupported||0===this.numInstances)return!1;for(var e in this.transitions){this.transitions[e].update()&&(this.needsRedraw=!0)}var t=this.needsRedraw;return this.needsRedraw=!1,t}},{key:"_removeTransition",value:function(e){this.transitions[e].cancel(),delete this.transitions[e]}},{key:"_updateAttribute",value:function(e,t,A){var n=this.transitions[e],r=!n||n.type!==A.type;if(r){if(!this.isSupported)return void p.a.warn("WebGL2 not supported by this browser. Transition for ".concat(e," is disabled."))();n&&this._removeTransition(e);var i=O[A.type];i?this.transitions[e]=new i({attribute:t,timeline:this.timeline,gl:this.gl}):(p.a.error("unsupported transition type '".concat(A.type,"'"))(),r=!1)}(r||t.needsRedraw())&&(this.needsRedraw=!0,this.transitions[e].start(A,this.numInstances))}}]),e}();A.d(t,"a",(function(){return T}));var T=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=A.id,i=void 0===n?"attribute-manager":n,o=A.stats,a=A.timeline;Object(r.a)(this,e),this.id=i,this.gl=t,this.attributes={},this.updateTriggers={},this.accessors={},this.needsRedraw=!0,this.userData={},this.stats=o,this.attributeTransitionManager=new L(t,{id:"".concat(i,"-transitions"),timeline:a}),Object.seal(this)}return Object(i.a)(e,[{key:"finalize",value:function(){for(var e in this.attributes)this.attributes[e].delete();this.attributeTransitionManager.finalize()}},{key:"getNeedsRedraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1},t=this.needsRedraw;return this.needsRedraw=this.needsRedraw&&!e.clearRedrawFlags,t&&this.id}},{key:"setNeedsRedraw",value:function(){!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.needsRedraw=!0,this}},{key:"add",value:function(e,t){this._add(e,t)}},{key:"addInstanced",value:function(e,t){this._add(e,t,{instanced:1})}},{key:"remove",value:function(e){for(var t=0;t<e.length;t++){var A=e[t];void 0!==this.attributes[A]&&(this.attributes[A].delete(),delete this.attributes[A])}}},{key:"invalidate",value:function(e,t){var A=this._invalidateTrigger(e,t);Object(G.a)("attributeManager.invalidate",this,e,A)}},{key:"invalidateAll",value:function(e){for(var t in this.attributes)this.attributes[t].setNeedsUpdate(t,e);Object(G.a)("attributeManager.invalidate",this,"all")}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.data,A=e.numInstances,n=e.startIndices,r=void 0===n?null:n,i=e.transitions,o=e.props,a=void 0===o?{}:o,s=e.buffers,g=void 0===s?{}:s,c=e.context,u=void 0===c?{}:c,l=!1;for(var I in Object(G.a)("attributeManager.updateStart",this),this.stats&&this.stats.get("Update Attributes").timeStart(),this.attributes){var C=this.attributes[I],h=C.settings.accessor;C.startIndices=r,a[I]&&p.a.removed("props.".concat(I),"data.attributes.".concat(I))(),C.setExternalBuffer(g[I])||C.setBinaryValue(g[h],t.startIndices)||!g[h]&&C.setConstantValue(a[h])||C.needsUpdate()&&(l=!0,this._updateAttribute({attribute:C,numInstances:A,data:t,props:a,context:u})),this.needsRedraw|=C.needsRedraw()}l&&Object(G.a)("attributeManager.updateEnd",this,A),this.stats&&this.stats.get("Update Attributes").timeEnd(),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:A,transitions:i})}},{key:"updateTransition",value:function(){var e=this.attributeTransitionManager.run();return this.needsRedraw=this.needsRedraw||e,e}},{key:"getAttributes",value:function(){return this.attributes}},{key:"getChangedAttributes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearChangedFlags:!1},t=this.attributes,A=this.attributeTransitionManager,r=Object(n.a)({},A.getAttributes());for(var i in t){var o=t[i];o.needsRedraw(e)&&!A.hasAttribute(i)&&(r[i]=o)}return r}},{key:"getShaderAttributes",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e||(e=this.getAttributes());var A={};for(var n in e)t[n]||Object.assign(A,e[n].getShaderAttributes());return A}},{key:"getAccessors",value:function(){return this.updateTriggers}},{key:"_add",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};for(var n in t&&p.a.warn("AttributeManager.add({updaters}) - updater map no longer supported")(),e){var r=e[n];this.attributes[n]=this._createAttribute(n,r,A)}this._mapUpdateTriggersToAttributes()}},{key:"_createAttribute",value:function(e,t,A){var r=Object(n.a)({},t,{id:e,isIndexed:t.isIndexed||t.elements||!1,constant:t.constant||!1,size:(t.elements?1:t.size)||1,value:t.value||null,divisor:t.instanced||A.instanced?1:t.divisor||0});return new D(this.gl,r)}},{key:"_mapUpdateTriggersToAttributes",value:function(){var e=this,t={},A=function(A){e.attributes[A].getUpdateTriggers().forEach((function(e){t[e]||(t[e]=[]),t[e].push(A)}))};for(var n in this.attributes)A(n);this.updateTriggers=t}},{key:"_invalidateTrigger",value:function(e,t){var A=this.attributes,n=this.updateTriggers[e];return n&&n.forEach((function(e){var n=A[e];n&&n.setNeedsUpdate(n.id,t)})),n}},{key:"_updateAttribute",value:function(e){var t=e.attribute,A=e.numInstances;(Object(G.a)("attribute.updateStart",t),t.constant)?t.setConstantValue(t.value):(t.allocate(A)&&Object(G.a)("attribute.allocate",t,A),t.updateBuffer(e)&&(this.needsRedraw=!0,Object(G.a)("attribute.updateEnd",t,A)))}}]),e}()},function(e,t,A){"use strict";var n=A(8),r=A(6),i=A(7),o=A(1),a=A(4),s=A(9),g=A(10),c=A(116),u=A(511),l=A(391),I=A(667),C=A.n(I),h=A(41),f=[];function d(e,t,A,n){for(var r=0,i=t;i<A;i++){var o=e[i],a=null,s=n&&n[o];s&&(a=s.width),r+=a}return r}function B(e,t,A,n,r,i){for(var o=t,a=0,s=t;s<A;s++){var g=d(e,s,s+1,r);a+g>n&&(o<s&&i.push(s),o=s,a=0),a+=g}return a}function p(e,t,A,n,r,i){for(var o=t,a=t,s=t,g=0,c=t;c<A;c++)if(" "===e[c]?s=c+1:" "!==e[c+1]&&c+1!==A||(s=c+1),s>a){var u=d(e,a,s,r);g+u>n&&(o<a&&(i.push(a),o=a,g=0),u>n&&(u=B(e,a,s,n,r,i),o=i[i.length-1])),a=s,g+=u}return g}function E(e,t,A,n){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,i=arguments.length>5?arguments[5]:void 0;void 0===i&&(i=e.length);var o=[];return"break-all"===t?B(e,r,i,A,n,o):p(e,r,i,A,n,o),o}function Q(e,t,A,n,r,i){for(var o=0,a=0,s=t;s<A;s++){var g=e[s],c=n[g];c?(a||(a=c.height),r[s]=o+c.width/2,o+=c.width):(h.a.warn("Missing character: ".concat(g," (").concat(g.codePointAt(0),")"))(),r[s]=o,o+=32)}i[0]=o,i[1]=a}function y(e,t,A,n,r){for(var i=(e=Array.from(e)).length,o=new Array(i),a=new Array(i),s=new Array(i),g=("break-word"===A||"break-all"===A)&&isFinite(n)&&n>0,c=[0,0],u=[],l=0,I=0,C=0,h=0;h<=i;h++){var d=e[h];if("\n"!==d&&h!==i||(C=h),C>I){for(var B=g?E(e,A,n,r,I,C):f,p=0;p<=B.length;p++){var y=0===p?I:B[p-1],v=p<B.length?B[p]:C;Q(e,y,v,r,o,u);for(var m=y;m<v;m++)a[m]=l+u[1]/2,s[m]=u[0];l+=u[1]*t,c[0]=Math.max(c[0],u[0])}I=C}"\n"===d&&(o[I]=0,a[I]=0,s[I]=0,I++)}return c[1]=l,{x:o,y:a,rowWidth:s,size:c}}var v=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;Object(o.a)(this,e),this.limit=t,this.clear()}return Object(a.a)(e,[{key:"clear",value:function(){this._cache={},this._order=[]}},{key:"get",value:function(e){var t=this._cache[e];return t&&(this._deleteOrder(e),this._appendOrder(e)),t}},{key:"set",value:function(e,t){this._cache[e]?(this.delete(e),this._cache[e]=t,this._appendOrder(e)):(Object.keys(this._cache).length===this.limit&&this.delete(this._order[0]),this._cache[e]=t,this._appendOrder(e))}},{key:"delete",value:function(e){this._cache[e]&&(this._deleteCache(e),this._deleteOrder(e))}},{key:"_deleteCache",value:function(e){delete this._cache[e]}},{key:"_deleteOrder",value:function(e){var t=this._order.findIndex((function(t){return t===e}));t>=0&&this._order.splice(t,1)}},{key:"_appendOrder",value:function(e){this._order.push(e)}}]),e}();var m=function(){for(var e=[],t=32;t<128;t++)e.push(String.fromCharCode(t));return e}(),b=new v(3),w=["fontFamily","fontWeight","characterSet","fontSize","sdf","buffer","cutoff","radius"];function S(e,t){var A=b.get(e);if(!A)return t;var n=[],r=A.mapping,i=Object.keys(r);i=new Set(i);var o=t;return o instanceof Array&&(o=new Set(o)),o.forEach((function(e){i.has(e)||n.push(e)})),n}function F(e,t){for(var A=0;A<e.length;A++)t.data[4*A+3]=e[A]}function R(e,t,A,n){e.font="".concat(n," ").concat(A,"px ").concat(t),e.fillStyle="#000",e.textBaseline="baseline",e.textAlign="left"}var D=function(){function e(){Object(o.a)(this,e),this.props={fontFamily:"Monaco, monospace",fontWeight:"normal",characterSet:m,fontSize:64,buffer:4,sdf:!1,cutoff:.25,radius:12},this._key=null,this._atlas=null}return Object(a.a)(e,[{key:"setProps",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};w.forEach((function(A){A in t&&(e.props[A]=t[A])}));var A=this._key;this._key=this._getKey();var n=S(this._key,this.props.characterSet),r=b.get(this._key);if(r&&0===n.length)this._key!==A&&(this._atlas=r);else{var i=this._generateFontAtlas(this._key,n,r);this._atlas=i,b.set(this._key,i)}}},{key:"_generateFontAtlas",value:function(e,t,A){var n=this.props,o=n.fontFamily,a=n.fontWeight,s=n.fontSize,g=n.buffer,c=n.sdf,u=n.radius,l=n.cutoff,I=A&&A.data;I||((I=document.createElement("canvas")).width=1024);var h=I.getContext("2d");R(h,o,s,a);var f=function(e){var t,A=e.characterSet,n=e.getFontWidth,i=e.fontHeight,o=e.buffer,a=e.maxCanvasWidth,s=e.mapping,g=void 0===s?{}:s,c=e.xOffset,u=void 0===c?0:c,l=e.yOffset,I=void 0===l?0:l,C=0,h=u,f=0,d=Object(r.a)(A);try{for(d.s();!(t=d.n()).done;){var B=t.value;if(!g[B]){var p=n(B,f++);h+p+2*o>a&&(h=0,C++),g[B]={x:h+o,y:I+C*(i+2*o)+o,width:p,height:i},h+=p+2*o}}}catch(y){d.e(y)}finally{d.f()}var E,Q=i+2*o;return{mapping:g,xOffset:h,yOffset:I+C*Q,canvasHeight:(E=I+(C+1)*Q,Math.pow(2,Math.ceil(Math.log2(E))))}}(Object(i.a)({getFontWidth:function(e){return h.measureText(e).width},fontHeight:1.2*s,buffer:g,characterSet:t,maxCanvasWidth:1024},A&&{mapping:A.mapping,xOffset:A.xOffset,yOffset:A.yOffset})),d=f.mapping,B=f.canvasHeight,p=f.xOffset,E=f.yOffset;if(I.height!==B){var Q=h.getImageData(0,0,I.width,I.height);I.height=B,h.putImageData(Q,0,0)}if(R(h,o,s,a),c){var y,v=new C.a(s,g,u,l,o,a),m=h.getImageData(0,0,v.size,v.size),b=Object(r.a)(t);try{for(b.s();!(y=b.n()).done;){var w=y.value;F(v.draw(w),m),h.putImageData(m,d[w].x-g,d[w].y+g)}}catch(k){b.e(k)}finally{b.f()}}else{var S,D=Object(r.a)(t);try{for(D.s();!(S=D.n()).done;){var G=S.value;h.fillText(G,d[G].x,d[G].y+.9*s)}}catch(k){D.e(k)}finally{D.f()}}return{xOffset:p,yOffset:E,mapping:d,data:I,width:I.width,height:I.height}}},{key:"_getKey",value:function(){var e=this.props,t=e.fontFamily,A=e.fontWeight,n=e.fontSize,r=e.buffer,i=e.sdf,o=e.radius,a=e.cutoff;return i?"".concat(t," ").concat(A," ").concat(n," ").concat(r," ").concat(o," ").concat(a):"".concat(t," ").concat(A," ").concat(n," ").concat(r)}},{key:"texture",get:function(){return this._atlas}},{key:"mapping",get:function(){return this._atlas&&this._atlas.mapping}},{key:"scale",get:function(){return 1.2}}]),e}(),G=A(389);A.d(t,"a",(function(){return O}));var k={fontSize:64,buffer:4,sdf:!1,radius:12,cutoff:.25,smoothing:.1},x={start:1,middle:0,end:-1},N={top:1,center:0,bottom:-1},U=[0,0,0,255],_=["fontSize","buffer","sdf","radius","cutoff"],M={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:"accessor",value:[255,255,255,255]},getBorderColor:{type:"accessor",value:U},getBorderWidth:{type:"accessor",value:0},backgroundPadding:{type:"array",value:[0,0,0,0]},characterSet:{type:"object",value:m},fontFamily:"Monaco, monospace",fontWeight:"normal",lineHeight:1,outlineWidth:{type:"number",value:0,min:0},outlineColor:{type:"color",value:U},fontSettings:{},wordBreak:"break-word",maxWidth:{type:"number",value:-1},getText:{type:"accessor",value:function(e){return e.text}},getPosition:{type:"accessor",value:function(e){return e.position}},getColor:{type:"accessor",value:U},getSize:{type:"accessor",value:32},getAngle:{type:"accessor",value:0},getTextAnchor:{type:"accessor",value:"middle"},getAlignmentBaseline:{type:"accessor",value:"center"},getPixelOffset:{type:"accessor",value:[0,0]},backgroundColor:{deprecatedFor:["background","getBackgroundColor"]}},O=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(o.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"initializeState",value:function(){this.state={styleVersion:0,fontAtlasManager:new D}}},{key:"updateState",value:function(e){var t=e.props,A=e.oldProps,n=e.changeFlags,r=n.dataChanged||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getText),i=this.state.characterSet;r&&this._updateText();var o=i!==this.state.characterSet||this._fontChanged(A,t);o&&this._updateFontAtlas(A,t),(o||t.lineHeight!==A.lineHeight||t.wordBreak!==A.wordBreak||t.maxWidth!==A.maxWidth)&&this.setState({styleVersion:this.state.styleVersion+1})}},{key:"getPickingInfo",value:function(e){var t=e.info;return t.object=t.index>=0?this.props.data[t.index]:null,t}},{key:"_updateFontAtlas",value:function(e,t){var A=t.fontSettings,n=t.fontFamily,r=t.fontWeight,o=this.state,a=o.fontAtlasManager,s=o.characterSet;a.setProps(Object(i.a)({},k,{},A,{characterSet:s,fontFamily:n,fontWeight:r}))}},{key:"_fontChanged",value:function(e,t){if(e.fontFamily!==t.fontFamily||e.fontWeight!==t.fontWeight)return!0;if(e.fontSettings===t.fontSettings)return!1;var A=e.fontSettings||{},n=t.fontSettings||{};return _.some((function(e){return A[e]!==n[e]}))}},{key:"_updateText",value:function(){var e,t=this.props,A=t.data,n=t.characterSet,o=A.attributes&&A.attributes.getText,a=this.props.getText,s=A.startIndices,g="auto"===n&&new Set;if(o&&s){var u=function(e){var t=e.value,A=e.length,n=e.stride,i=e.offset,o=e.startIndices,a=e.characterSet,s=t.BYTES_PER_ELEMENT,g=n?n/s:1,c=i?i/s:0,u=o[A]||Math.ceil((t.length-c)/g),l=a&&new Set,I=new Array(A),C=t;if(g>1||c>0){C=new t.constructor(u);for(var h=0;h<u;h++)C[h]=t[h*g+c]}for(var f=0;f<A;f++){var d=o[f],B=o[f+1]||u,p=C.subarray(d,B);I[f]=String.fromCodePoint.apply(null,p),l&&p.forEach(l.add,l)}if(l){var E,Q=Object(r.a)(l);try{for(Q.s();!(E=Q.n()).done;){var y=E.value;a.add(String.fromCodePoint(y))}}catch(v){Q.e(v)}finally{Q.f()}}return{texts:I,characterCount:u}}(Object(i.a)({},ArrayBuffer.isView(o)?{value:o}:o,{length:A.length,startIndices:s,characterSet:g})),l=u.texts;e=u.characterCount,a=function(e,t){var A=t.index;return l[A]}}else{var I=Object(c.a)(A),C=I.iterable,h=I.objectInfo;s=[0],e=0;var f,d=Object(r.a)(C);try{for(d.s();!(f=d.n()).done;){var B=f.value;h.index++;var p=Array.from(a(B,h)||"");g&&p.forEach(g.add,g),e+=p.length,s.push(e)}}catch(E){d.e(E)}finally{d.f()}}this.setState({getText:a,startIndices:s,numInstances:e,characterSet:g||n})}},{key:"getBoundingRect",value:function(e,t){var A=this.state.fontAtlasManager.mapping,r=this.state.getText,i=this.props,o=i.wordBreak,a=i.maxWidth,s=i.lineHeight,g=i.getTextAnchor,c=i.getAlignmentBaseline,u=y(r(e,t)||"",s,o,a,A),l=Object(n.a)(u.size,2),I=l[0],C=l[1];return[(x["function"===typeof g?g(e,t):g]-1)*I/2,(N["function"===typeof c?c(e,t):c]-1)*C/2,I,C]}},{key:"getIconOffsets",value:function(e,t){for(var A=this.state.fontAtlasManager.mapping,r=this.state.getText,i=this.props,o=i.wordBreak,a=i.maxWidth,s=i.lineHeight,g=i.getTextAnchor,c=i.getAlignmentBaseline,u=y(r(e,t)||"",s,o,a,A),l=u.x,I=u.y,C=u.rowWidth,h=Object(n.a)(u.size,2),f=h[0],d=h[1],B=x["function"===typeof g?g(e,t):g],p=N["function"===typeof c?c(e,t):c],E=l.length,Q=new Array(2*E),v=0,m=0;m<E;m++){var b=(1-B)*(f-C[m])/2;Q[v++]=(B-1)*f/2+b+l[m],Q[v++]=(p-1)*d/2+I[m]}return Q}},{key:"renderLayers",value:function(){var e=this.state,t=e.startIndices,A=e.numInstances,n=e.getText,r=e.fontAtlasManager,i=r.scale,o=r.texture,a=r.mapping,s=e.styleVersion,g=this.props,c=g.data,u=g._dataDiff,I=g.getPosition,C=g.getColor,h=g.getSize,f=g.getAngle,d=g.getPixelOffset,B=g.getBackgroundColor,p=g.getBorderColor,E=g.getBorderWidth,Q=g.backgroundPadding,y=g.background,v=g.billboard,m=g.fontSettings,b=g.outlineWidth,w=g.outlineColor,S=g.sizeScale,F=g.sizeUnits,R=g.sizeMinPixels,D=g.sizeMaxPixels,x=g.transitions,N=g.updateTriggers,U=this.getSubLayerClass("characters",l.a),_=this.getSubLayerClass("background",G.a);return[y&&new _({getFillColor:B,getLineColor:p,getLineWidth:E,padding:Q,getPosition:I,getSize:h,getAngle:f,getPixelOffset:d,billboard:v,sizeScale:S/this.state.fontAtlasManager.props.fontSize,sizeUnits:F,sizeMinPixels:R,sizeMaxPixels:D,transitions:x&&{getPosition:x.getPosition,getAngle:x.getAngle,getSize:x.getSize,getFillColor:x.getBackgroundColor,getLineColor:x.getBorderColor,getLineWidth:x.getBorderWidth,getPixelOffset:x.getPixelOffset}},this.getSubLayerProps({id:"background",updateTriggers:{getPosition:N.getPosition,getAngle:N.getAngle,getSize:N.getSize,getFillColor:N.getBackgroundColor,getLineColor:N.getBorderColor,getLineWidth:N.getBorderWidth,getPixelOffset:N.getPixelOffset,getBoundingRect:{getText:N.getText,getTextAnchor:N.getTextAnchor,getAlignmentBaseline:N.getAlignmentBaseline,styleVersion:s}}}),{data:c.attributes?{length:c.length,attributes:c.attributes.background||{}}:c,_dataDiff:u,autoHighlight:!1,getBoundingRect:this.getBoundingRect.bind(this)}),new U({sdf:m.sdf,smoothing:Number.isFinite(m.smoothing)?m.smoothing:k.smoothing,outlineWidth:b,outlineColor:w,iconAtlas:o,iconMapping:a,getPosition:I,getColor:C,getSize:h,getAngle:f,getPixelOffset:d,billboard:v,sizeScale:S*i,sizeUnits:F,sizeMinPixels:R*i,sizeMaxPixels:D*i,transitions:x&&{getPosition:x.getPosition,getAngle:x.getAngle,getColor:x.getColor,getSize:x.getSize,getPixelOffset:x.getPixelOffset}},this.getSubLayerProps({id:"characters",updateTriggers:{getIcon:N.getText,getPosition:N.getPosition,getAngle:N.getAngle,getColor:N.getColor,getSize:N.getSize,getPixelOffset:N.getPixelOffset,getIconOffsets:{getText:N.getText,getTextAnchor:N.getTextAnchor,getAlignmentBaseline:N.getAlignmentBaseline,styleVersion:s}}}),{data:c,_dataDiff:u,startIndices:t,numInstances:A,getIconOffsets:this.getIconOffsets.bind(this),getIcon:n})]}}]),A}(u.a);O.layerName="TextLayer",O.defaultProps=M},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(575),u=A(655),l=A(576),I=A(36),C=A(384),h=A(422),f=A(41),d=A(108),B=A(135),p=A(89),E=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(r.a)(this,A);var i=e.id,o=void 0===i?Object(d.c)("column-geometry"):i,a=Q(e),s=a.indices,g=a.attributes;return t.call(this,Object(n.a)({},e,{id:o,indices:s,attributes:g}))}return A}(B.a);function Q(e){var t=e.radius,A=e.height,n=void 0===A?1:A,r=e.nradial,i=void 0===r?10:r,o=e.vertices;o&&(f.a.assert(o.length>=i),o=o.flatMap((function(e){return[e[0],e[1]]})),Object(p.h)(o,p.a.COUNTER_CLOCKWISE));var a=n>0,s=i+1,g=a?3*s+1:i,c=2*Math.PI/i,u=new Uint16Array(a?3*i*2:0),l=new Float32Array(3*g),I=new Float32Array(3*g),C=0;if(a){for(var h=0;h<s;h++)for(var d=h*c,B=h%i,E=Math.sin(d),Q=Math.cos(d),y=0;y<2;y++)l[C+0]=o?o[2*B]:Q*t,l[C+1]=o?o[2*B+1]:E*t,l[C+2]=(.5-y)*n,I[C+0]=o?o[2*B]:Q,I[C+1]=o?o[2*B+1]:E,C+=3;l[C+0]=l[C-3],l[C+1]=l[C-2],l[C+2]=l[C-1],C+=3}for(var v=a?0:1;v<s;v++){var m=Math.floor(v/2)*Math.sign(.5-v%2),b=m*c,w=(m+i)%i,S=Math.sin(b),F=Math.cos(b);l[C+0]=o?o[2*w]:F*t,l[C+1]=o?o[2*w+1]:S*t,l[C+2]=n/2,I[C+2]=1,C+=3}if(a)for(var R=0,D=0;D<i;D++)u[R++]=2*D+0,u[R++]=2*D+2,u[R++]=2*D+0,u[R++]=2*D+1,u[R++]=2*D+1,u[R++]=2*D+3;return{indices:u,attributes:{POSITION:{size:3,value:l},NORMAL:{size:3,value:I}}}}A.d(t,"a",(function(){return m}));var y=[0,0,0,255],v={diskResolution:{type:"number",min:4,value:20},vertices:null,radius:{type:"number",min:0,value:1e3},angle:{type:"number",value:0},offset:{type:"array",value:[0,0]},coverage:{type:"number",min:0,max:1,value:1},elevationScale:{type:"number",min:0,value:1},radiusUnits:"meters",lineWidthUnits:"meters",lineWidthScale:1,lineWidthMinPixels:0,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,extruded:!0,wireframe:!1,filled:!0,stroked:!1,getPosition:{type:"accessor",value:function(e){return e.position}},getFillColor:{type:"accessor",value:y},getLineColor:{type:"accessor",value:y},getLineWidth:{type:"accessor",value:1},getElevation:{type:"accessor",value:1e3},material:!0,getColor:{deprecatedFor:["getFillColor","getLineColor"]}},m=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"getShaders",value:function(){return Object(a.a)(Object(o.a)(A.prototype),"getShaders",this).call(this,{vs:"\n#define SHADER_NAME column-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec3 normals;\n\nattribute vec3 instancePositions;\nattribute float instanceElevations;\nattribute vec3 instancePositions64Low;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute float instanceStrokeWidths;\n\nattribute vec3 instancePickingColors;\nuniform float opacity;\nuniform float radius;\nuniform float angle;\nuniform vec2 offset;\nuniform bool extruded;\nuniform bool isStroke;\nuniform float coverage;\nuniform float elevationScale;\nuniform float edgeDistance;\nuniform float widthScale;\nuniform float widthMinPixels;\nuniform float widthMaxPixels;\nuniform int radiusUnits;\nuniform int widthUnits;\nvarying vec4 vColor;\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n\n vec4 color = isStroke ? instanceLineColors : instanceFillColors;\n mat2 rotationMatrix = mat2(cos(angle), sin(angle), -sin(angle), cos(angle));\n float elevation = 0.0;\n float strokeOffsetRatio = 1.0;\n\n if (extruded) {\n elevation = instanceElevations * (positions.z + 1.0) / 2.0 * elevationScale;\n } else if (isStroke) {\n float widthPixels = clamp(\n project_size_to_pixel(instanceStrokeWidths * widthScale, widthUnits),\n widthMinPixels, widthMaxPixels) / 2.0;\n strokeOffsetRatio -= sign(positions.z) * project_pixel_size(widthPixels) / project_size(edgeDistance * coverage * radius);\n }\n float shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0);\n float dotRadius = radius * coverage * shouldRender;\n\n geometry.normal = project_normal(vec3(rotationMatrix * normals.xy, normals.z));\n geometry.pickingColor = instancePickingColors;\n vec3 centroidPosition = vec3(instancePositions.xy, instancePositions.z + elevation);\n vec3 centroidPosition64Low = instancePositions64Low;\n vec2 offset = (rotationMatrix * positions.xy * strokeOffsetRatio + offset) * dotRadius;\n if (radiusUnits == UNIT_METERS) {\n offset = project_size(offset);\n }\n vec3 pos = vec3(offset, 0.);\n DECKGL_FILTER_SIZE(pos, geometry);\n\n gl_Position = project_position_to_clipspace(centroidPosition, centroidPosition64Low, pos, geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n if (extruded && !isStroke) {\n vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);\n vColor = vec4(lightColor, color.a * opacity);\n } else {\n vColor = vec4(color.rgb, color.a * opacity);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#define SHADER_NAME column-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main(void) {\n gl_FragColor = vColor;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[c.a,u.a,l.a]})}},{key:"initializeState",value:function(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceElevations:{size:1,transition:!0,accessor:"getElevation"},instanceFillColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getFillColor",defaultValue:y},instanceLineColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getLineColor",defaultValue:y},instanceStrokeWidths:{size:1,accessor:"getLineWidth",transition:!0}})}},{key:"updateState",value:function(e){var t=e.props,n=e.oldProps,r=e.changeFlags;Object(a.a)(Object(o.a)(A.prototype),"updateState",this).call(this,{props:t,oldProps:n,changeFlags:r});var i=r.extensionsChanged;if(i){var s,g=this.context.gl;null===(s=this.state.model)||void 0===s||s.delete(),this.state.model=this._getModel(g),this.getAttributeManager().invalidateAll()}(i||t.diskResolution!==n.diskResolution||t.vertices!==n.vertices||(t.extruded||t.stroked)!==(n.extruded||n.stroked))&&this._updateGeometry(t)}},{key:"getGeometry",value:function(e,t,A){var n=new E({radius:1,height:A?2:0,vertices:t,nradial:e}),r=0;if(t)for(var i=0;i<e;i++){var o=t[i];r+=Math.sqrt(o[0]*o[0]+o[1]*o[1])/e}else r=1;return this.setState({edgeDistance:Math.cos(Math.PI/e)*r}),n}},{key:"_getModel",value:function(e){return new h.a(e,Object(n.a)({},this.getShaders(),{id:this.props.id,isInstanced:!0}))}},{key:"_updateGeometry",value:function(e){var t=e.diskResolution,A=e.vertices,n=e.extruded,r=e.stroked,i=this.getGeometry(t,A,n||r);this.setState({fillVertexCount:i.attributes.POSITION.value.length/3,wireframeVertexCount:i.indices.value.length}),this.state.model.setProps({geometry:i})}},{key:"draw",value:function(e){var t=e.uniforms,A=this.props,n=A.lineWidthUnits,r=A.lineWidthScale,i=A.lineWidthMinPixels,o=A.lineWidthMaxPixels,a=A.radiusUnits,s=A.elevationScale,g=A.extruded,c=A.filled,u=A.stroked,l=A.wireframe,C=A.offset,h=A.coverage,f=A.radius,d=A.angle,B=this.state,p=B.model,E=B.fillVertexCount,Q=B.wireframeVertexCount,y=B.edgeDistance;p.setUniforms(t).setUniforms({radius:f,angle:d/180*Math.PI,offset:C,extruded:g,coverage:h,elevationScale:s,edgeDistance:y,radiusUnits:I.d[a],widthUnits:I.d[n],widthScale:r,widthMinPixels:i,widthMaxPixels:o}),g&&l&&(p.setProps({isIndexed:!0}),p.setVertexCount(Q).setDrawMode(1).setUniforms({isStroke:!0}).draw()),c&&(p.setProps({isIndexed:!1}),p.setVertexCount(E).setDrawMode(5).setUniforms({isStroke:!1}).draw()),!g&&u&&(p.setProps({isIndexed:!1}),p.setVertexCount(2*E/3).setDrawMode(5).setUniforms({isStroke:!0}).draw())}}]),A}(C.a);m.layerName="ColumnLayer",m.defaultProps=v},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(575),u=A(576),l=A(36),I=A(384),C=A(422),h=A(135);A.d(t,"a",(function(){return B}));var f=[0,0,0,255],d={radiusUnits:"meters",radiusScale:{type:"number",min:0,value:1},radiusMinPixels:{type:"number",min:0,value:0},radiusMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},lineWidthUnits:"meters",lineWidthScale:{type:"number",min:0,value:1},lineWidthMinPixels:{type:"number",min:0,value:0},lineWidthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},stroked:!1,filled:!0,billboard:!1,antialiasing:!0,getPosition:{type:"accessor",value:function(e){return e.position}},getRadius:{type:"accessor",value:1},getFillColor:{type:"accessor",value:f},getLineColor:{type:"accessor",value:f},getLineWidth:{type:"accessor",value:1},strokeWidth:{deprecatedFor:"getLineWidth"},outline:{deprecatedFor:"stroked"},getColor:{deprecatedFor:["getFillColor","getLineColor"]}},B=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"getShaders",value:function(){return Object(a.a)(Object(o.a)(A.prototype),"getShaders",this).call(this,{vs:"#define SHADER_NAME scatterplot-layer-vertex-shader\n\nattribute vec3 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute float instanceRadius;\nattribute float instanceLineWidths;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\nuniform float opacity;\nuniform float radiusScale;\nuniform float radiusMinPixels;\nuniform float radiusMaxPixels;\nuniform float lineWidthScale;\nuniform float lineWidthMinPixels;\nuniform float lineWidthMaxPixels;\nuniform float stroked;\nuniform bool filled;\nuniform bool billboard;\nuniform int radiusUnits;\nuniform int lineWidthUnits;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying vec2 unitPosition;\nvarying float innerUnitRadius;\nvarying float outerRadiusPixels;\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n outerRadiusPixels = clamp(\n project_size_to_pixel(radiusScale * instanceRadius, radiusUnits),\n radiusMinPixels, radiusMaxPixels\n );\n float lineWidthPixels = clamp(\n project_size_to_pixel(lineWidthScale * instanceLineWidths, lineWidthUnits),\n lineWidthMinPixels, lineWidthMaxPixels\n );\n outerRadiusPixels += stroked * lineWidthPixels / 2.0;\n unitPosition = positions.xy;\n geometry.uv = unitPosition;\n geometry.pickingColor = instancePickingColors;\n\n innerUnitRadius = 1.0 - stroked * lineWidthPixels / outerRadiusPixels;\n \n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n vec3 offset = positions * outerRadiusPixels;\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n } else {\n vec3 offset = positions * project_pixel_size(outerRadiusPixels);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position);\n }\n\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * opacity);\n DECKGL_FILTER_COLOR(vFillColor, geometry);\n vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity);\n DECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n",fs:"#define SHADER_NAME scatterplot-layer-fragment-shader\n\nprecision highp float;\n\nuniform bool filled;\nuniform float stroked;\nuniform bool antialiasing;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying vec2 unitPosition;\nvarying float innerUnitRadius;\nvarying float outerRadiusPixels;\n\nvoid main(void) {\n geometry.uv = unitPosition;\n\n float distToCenter = length(unitPosition) * outerRadiusPixels;\n float inCircle = antialiasing ? \n smoothedge(distToCenter, outerRadiusPixels) : \n step(distToCenter, outerRadiusPixels);\n\n if (inCircle == 0.0) {\n discard;\n }\n\n if (stroked > 0.5) {\n float isLine = antialiasing ? \n smoothedge(innerUnitRadius * outerRadiusPixels, distToCenter) :\n step(innerUnitRadius * outerRadiusPixels, distToCenter);\n\n if (filled) {\n gl_FragColor = mix(vFillColor, vLineColor, isLine);\n } else {\n if (isLine == 0.0) {\n discard;\n }\n gl_FragColor = vec4(vLineColor.rgb, vLineColor.a * isLine);\n }\n } else if (filled) {\n gl_FragColor = vFillColor;\n } else {\n discard;\n }\n\n gl_FragColor.a *= inCircle;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[c.a,u.a]})}},{key:"initializeState",value:function(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceRadius:{size:1,transition:!0,accessor:"getRadius",defaultValue:1},instanceFillColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}},{key:"updateState",value:function(e){var t=e.props,n=e.oldProps,r=e.changeFlags;if(Object(a.a)(Object(o.a)(A.prototype),"updateState",this).call(this,{props:t,oldProps:n,changeFlags:r}),r.extensionsChanged){var i,s=this.context.gl;null===(i=this.state.model)||void 0===i||i.delete(),this.state.model=this._getModel(s),this.getAttributeManager().invalidateAll()}}},{key:"draw",value:function(e){var t=e.uniforms,A=this.props,n=A.radiusUnits,r=A.radiusScale,i=A.radiusMinPixels,o=A.radiusMaxPixels,a=A.stroked,s=A.filled,g=A.billboard,c=A.antialiasing,u=A.lineWidthUnits,I=A.lineWidthScale,C=A.lineWidthMinPixels,h=A.lineWidthMaxPixels;this.state.model.setUniforms(t).setUniforms({stroked:a?1:0,filled:s,billboard:g,antialiasing:c,radiusUnits:l.d[n],radiusScale:r,radiusMinPixels:i,radiusMaxPixels:o,lineWidthUnits:l.d[u],lineWidthScale:I,lineWidthMinPixels:C,lineWidthMaxPixels:h}).draw()}},{key:"_getModel",value:function(e){return new C.a(e,Object(n.a)({},this.getShaders(),{id:this.props.id,geometry:new h.a({drawMode:6,vertexCount:4,attributes:{positions:{size:3,value:new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,1,0])}}}),isInstanced:!0}))}}]),A}(I.a);B.layerName="ScatterplotLayer",B.defaultProps=d},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(575),u=A(576),l=A(36),I=A(384),C=A(422),h=A(135);A.d(t,"a",(function(){return d}));var f={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,padding:{type:"array",value:[0,0,0,0]},getPosition:{type:"accessor",value:function(e){return e.position}},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},getBoundingRect:{type:"accessor",value:[0,0,0,0]},getFillColor:{type:"accessor",value:[0,0,0,255]},getLineColor:{type:"accessor",value:[0,0,0,255]},getLineWidth:{type:"accessor",value:1}},d=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"getShaders",value:function(){return Object(a.a)(Object(o.a)(A.prototype),"getShaders",this).call(this,{vs:"#define SHADER_NAME text-background-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute vec4 instanceRects;\nattribute float instanceSizes;\nattribute float instanceAngles;\nattribute vec2 instancePixelOffsets;\nattribute float instanceLineWidths;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\nuniform bool billboard;\nuniform float opacity;\nuniform float sizeScale;\nuniform float sizeMinPixels;\nuniform float sizeMaxPixels;\nuniform vec4 padding;\nuniform int sizeUnits;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying float vLineWidth;\nvarying vec2 uv;\nvarying vec2 dimensions;\n\nvec2 rotate_by_angle(vec2 vertex, float angle) {\n float angle_radian = radians(angle);\n float cos_angle = cos(angle_radian);\n float sin_angle = sin(angle_radian);\n mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\n return rotationMatrix * vertex;\n}\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = positions;\n geometry.pickingColor = instancePickingColors;\n uv = positions;\n vLineWidth = instanceLineWidths;\n float sizePixels = clamp(\n project_size_to_pixel(instanceSizes * sizeScale, sizeUnits),\n sizeMinPixels, sizeMaxPixels\n );\n\n dimensions = instanceRects.zw * sizePixels + padding.xy + padding.zw;\n\n vec2 pixelOffset = (positions * instanceRects.zw + instanceRects.xy) * sizePixels + mix(-padding.xy, padding.zw, positions);\n pixelOffset = rotate_by_angle(pixelOffset, instanceAngles);\n pixelOffset += instancePixelOffsets;\n pixelOffset.y *= -1.0;\n\n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n vec3 offset = vec3(pixelOffset, 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n } else {\n vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\n DECKGL_FILTER_SIZE(offset_common, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position);\n }\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * opacity);\n DECKGL_FILTER_COLOR(vFillColor, geometry);\n vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity);\n DECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n",fs:"#define SHADER_NAME text-background-layer-fragment-shader\n\nprecision highp float;\n\nuniform bool stroked;\n\nvarying vec4 vFillColor;\nvarying vec4 vLineColor;\nvarying float vLineWidth;\nvarying vec2 uv;\nvarying vec2 dimensions;\n\nvoid main(void) {\n geometry.uv = uv;\n\n vec2 pixelPosition = uv * dimensions;\n if (stroked) {\n float distToEdge = min(\n min(pixelPosition.x, dimensions.x - pixelPosition.x),\n min(pixelPosition.y, dimensions.y - pixelPosition.y)\n );\n float isBorder = smoothedge(distToEdge, vLineWidth);\n gl_FragColor = mix(vFillColor, vLineColor, isBorder);\n } else {\n gl_FragColor = vFillColor;\n }\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[c.a,u.a]})}},{key:"initializeState",value:function(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instanceRects:{size:4,accessor:"getBoundingRect"},instancePixelOffsets:{size:2,transition:!0,accessor:"getPixelOffset"},instanceFillColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}},{key:"updateState",value:function(e){var t=e.props,n=e.oldProps,r=e.changeFlags;if(Object(a.a)(Object(o.a)(A.prototype),"updateState",this).call(this,{props:t,oldProps:n,changeFlags:r}),r.extensionsChanged){var i,s=this.context.gl;null===(i=this.state.model)||void 0===i||i.delete(),this.state.model=this._getModel(s),this.getAttributeManager().invalidateAll()}}},{key:"draw",value:function(e){var t=e.uniforms,A=this.props,n=A.billboard,r=A.sizeScale,i=A.sizeUnits,o=A.sizeMinPixels,a=A.sizeMaxPixels,s=A.getLineWidth,g=this.props.padding;g.length<4&&(g=[g[0],g[1],g[0],g[1]]),this.state.model.setUniforms(t).setUniforms({billboard:n,stroked:Boolean(s),padding:g,sizeUnits:l.d[i],sizeScale:r,sizeMinPixels:o,sizeMaxPixels:a}).draw()}},{key:"_getModel",value:function(e){return new C.a(e,Object(n.a)({},this.getShaders(),{id:this.props.id,geometry:new h.a({drawMode:6,vertexCount:4,attributes:{positions:{size:2,value:new Float32Array([0,0,1,0,1,1,0,1])}}}),isInstanced:!0}))}}]),A}(I.a);d.layerName="TextBackgroundLayer",d.defaultProps=f},function(e,t,A){"use strict";var n=A(6),r=A(7),i=A(1),o=A(4),a=A(1247),s=A(78),g=A(41),c=A(77),u=A(147),l=A(1165),I=A(1283),C=function(){function e(t,A,n){Object(i.a)(this,e),this.id=t,this.context=n,this._loadCount=0,this._subscribers=new Set,this.setData(A)}return Object(o.a)(e,[{key:"subscribe",value:function(e){this._subscribers.add(e)}},{key:"unsubscribe",value:function(e){this._subscribers.delete(e)}},{key:"inUse",value:function(){return this._subscribers.size>0}},{key:"delete",value:function(){}},{key:"getData",value:function(){var e=this;return this.isLoaded?this._error?Promise.reject(this._error):this._content:this._loader.then((function(){return e.getData()}))}},{key:"setData",value:function(e,t){var A=this;if(e!==this._data||t){this._data=e;var r=++this._loadCount,i=e;"string"===typeof e&&(i=Object(I.a)(e)),i instanceof Promise?(this.isLoaded=!1,this._loader=i.then((function(e){A._loadCount===r&&(A.isLoaded=!0,A._error=null,A._content=e)})).catch((function(e){A._loadCount===r&&(A.isLoaded=!0,A._error=e||!0)}))):(this.isLoaded=!0,this._error=null,this._content=e);var o,a=Object(n.a)(this._subscribers);try{for(a.s();!(o=a.n()).done;){o.value.onChange(this.getData())}}catch(s){a.e(s)}finally{a.f()}}}}]),e}(),h=function(){function e(t){var A=t.gl,n=t.protocol;Object(i.a)(this,e),this.protocol=n||"resource://",this._context={gl:A,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}return Object(o.a)(e,[{key:"contains",value:function(e){return!!e.startsWith(this.protocol)||e in this._resources}},{key:"add",value:function(e){var t=e.resourceId,A=e.data,n=e.forceUpdate,r=void 0!==n&&n,i=e.persistent,o=void 0===i||i,a=this._resources[t];a?a.setData(A,r):(a=new C(t,A,this._context),this._resources[t]=a),a.persistent=o}},{key:"remove",value:function(e){var t=this._resources[e];t&&(t.delete(),delete this._resources[e])}},{key:"unsubscribe",value:function(e){var t=e.consumerId,A=this._consumers[t];if(A){for(var n in A){var r=A[n];r.resource&&r.resource.unsubscribe(r)}delete this._consumers[t],this.prune()}}},{key:"subscribe",value:function(e){var t=e.resourceId,A=e.onChange,n=e.consumerId,r=e.requestId,i=void 0===r?"default":r,o=this._resources,a=this.protocol;t.startsWith(a)&&(o[t=t.replace(a,"")]||this.add({resourceId:t,data:null,persistent:!1}));var s=o[t];if(this._track(n,i,s,A),s)return s.getData()}},{key:"prune",value:function(){var e=this;this._pruneRequest||(this._pruneRequest=setTimeout((function(){return e._prune()}),0))}},{key:"finalize",value:function(){for(var e in this._resources)this._resources[e].delete()}},{key:"_track",value:function(e,t,A,n){var r=this._consumers,i=r[e]=r[e]||{},o=i[t]||{};o.resource&&(o.resource.unsubscribe(o),o.resource=null,this.prune()),A&&(i[t]=o,o.onChange=n,o.resource=A,A.subscribe(o))}},{key:"_prune",value:function(){this._pruneRequest=null;for(var e=0,t=Object.keys(this._resources);e<t.length;e++){var A=t[e],n=this._resources[A];n.persistent||n.inUse()||(n.delete(),delete this._resources[A])}}}]),e}(),f=A(96),d=A(382);A.d(t,"a",(function(){return p}));var B=Object.seal({layerManager:null,resourceManager:null,deck:null,gl:null,stats:null,shaderCache:null,pickingFBO:null,mousePosition:null,userData:{}}),p=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=A.deck,o=A.stats,s=A.viewport,g=A.timeline;Object(i.a)(this,e),this.lastRenderedLayers=[],this.layers=[],this.resourceManager=new h({gl:t,protocol:"deck://"}),this.context=Object(r.a)({},B,{layerManager:this,gl:t,deck:n,programManager:t&&Object(d.a)(t),stats:o||new l.a({id:"deck.gl"}),viewport:s||new f.a({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:g||new a.a,resourceManager:this.resourceManager}),this._nextLayers=null,this._needsRedraw="Initial render",this._needsUpdate=!1,this._debug=!1,this.activateViewport=this.activateViewport.bind(this),Object.seal(this)}return Object(o.a)(e,[{key:"finalize",value:function(){this.resourceManager.finalize();var e,t=Object(n.a)(this.layers);try{for(t.s();!(e=t.n()).done;){var A=e.value;this._finalizeLayer(A)}}catch(r){t.e(r)}finally{t.f()}}},{key:"needsRedraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1},t=this._needsRedraw;e.clearRedrawFlags&&(this._needsRedraw=!1);var A,r=Object(n.a)(this.layers);try{for(r.s();!(A=r.n()).done;){var i=A.value,o=i.getNeedsRedraw(e);t=t||o}}catch(a){r.e(a)}finally{r.f()}return t}},{key:"needsUpdate",value:function(){return this._nextLayers&&this._nextLayers!==this.lastRenderedLayers?"layers changed":this._needsUpdate}},{key:"setNeedsRedraw",value:function(e){this._needsRedraw=this._needsRedraw||e}},{key:"setNeedsUpdate",value:function(e){this._needsUpdate=this._needsUpdate||e}},{key:"getLayers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.layerIds,A=void 0===t?null:t;return A?this.layers.filter((function(e){return A.find((function(t){return 0===e.id.indexOf(t)}))})):this.layers}},{key:"setProps",value:function(e){"debug"in e&&(this._debug=e.debug),"userData"in e&&(this.context.userData=e.userData),"layers"in e&&(this._nextLayers=e.layers),"onError"in e&&(this.context.onError=e.onError)}},{key:"setLayers",value:function(e,t){Object(c.a)("layerManager.setLayers",this,t,e),this.lastRenderedLayers=e,e=Object(u.b)(e,Boolean);var A,r=Object(n.a)(e);try{for(r.s();!(A=r.n()).done;){A.value.context=this.context}}catch(i){r.e(i)}finally{r.f()}return this._updateLayers(this.layers,e),this}},{key:"updateLayers",value:function(){var e=this.needsUpdate();e&&(this.setNeedsRedraw("updating layers: ".concat(e)),this.setLayers(this._nextLayers||this.lastRenderedLayers,e)),this._nextLayers=null}},{key:"activateViewport",value:function(e){return Object(c.a)("layerManager.activateViewport",this,e),e&&(this.context.viewport=e),this}},{key:"_handleError",value:function(e,t,A){A.raiseError(t,"".concat(e," of ").concat(A))}},{key:"_updateLayers",value:function(e,t){var A,r={},i=Object(n.a)(e);try{for(i.s();!(A=i.n()).done;){var o=A.value;r[o.id]?g.a.warn("Multiple old layers with same id ".concat(o.id))():r[o.id]=o}}catch(l){i.e(l)}finally{i.f()}var a=[];this._updateSublayersRecursively(t,r,a),this._finalizeOldLayers(r);for(var s=!1,c=0,u=a;c<u.length;c++){if(u[c].hasUniformTransition()){s=!0;break}}this._needsUpdate=s,this.layers=a}},{key:"_updateSublayersRecursively",value:function(e,t,A){var r,i=Object(n.a)(e);try{for(i.s();!(r=i.n()).done;){var o=r.value;o.context=this.context;var a=t[o.id];null===a&&g.a.warn("Multiple new layers with same id ".concat(o.id))(),t[o.id]=null;var s=null;try{this._debug&&a!==o&&o.validateProps(),a?(this._transferLayerState(a,o),this._updateLayer(o)):this._initializeLayer(o),A.push(o),s=o.isComposite&&o.getSubLayers()}catch(c){this._handleError("matching",c,o)}s&&this._updateSublayersRecursively(s,t,A)}}catch(c){i.e(c)}finally{i.f()}}},{key:"_finalizeOldLayers",value:function(e){for(var t in e){var A=e[t];A&&this._finalizeLayer(A)}}},{key:"_initializeLayer",value:function(e){try{e._initialize(),e.lifecycle=s.a.INITIALIZED}catch(t){this._handleError("initialization",t,e)}}},{key:"_transferLayerState",value:function(e,t){t._transferState(e),t.lifecycle=s.a.MATCHED,t!==e&&(e.lifecycle=s.a.AWAITING_GC)}},{key:"_updateLayer",value:function(e){try{e._update()}catch(t){this._handleError("update",t,e)}}},{key:"_finalizeLayer",value:function(e){this._needsRedraw=this._needsRedraw||"finalized ".concat(e),e.lifecycle=s.a.AWAITING_FINALIZATION;try{e._finalize(),e.lifecycle=s.a.FINALIZED}catch(t){this._handleError("finalization",t,e)}}}]),e}()},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(41),u=A(269);A.d(t,"a",(function(){return I}));var l=[],I=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"getShaders",value:function(){return Object(n.a)({},Object(a.a)(Object(o.a)(A.prototype),"getShaders",this).call(this),{fs:"#define SHADER_NAME multi-icon-layer-fragment-shader\n\nprecision highp float;\n\nuniform float opacity;\nuniform sampler2D iconsTexture;\nuniform float gamma;\nuniform bool sdf;\nuniform float alphaCutoff;\nuniform float buffer;\nuniform float outlineBuffer;\nuniform vec4 outlineColor;\n\nvarying vec4 vColor;\nvarying vec2 vTextureCoords;\nvarying vec2 uv;\n\nvoid main(void) {\n geometry.uv = uv;\n\n if (!picking_uActive) {\n float alpha = texture2D(iconsTexture, vTextureCoords).a;\n vec4 color = vColor;\n if (sdf) {\n float distance = alpha;\n alpha = smoothstep(buffer - gamma, buffer + gamma, distance);\n\n if (outlineBuffer > 0.0) {\n float inFill = alpha;\n float inBorder = smoothstep(outlineBuffer - gamma, outlineBuffer + gamma, distance);\n color = mix(outlineColor, vColor, inFill);\n alpha = inBorder;\n }\n }\n float a = alpha * color.a;\n \n if (a < alphaCutoff) {\n discard;\n }\n\n gl_FragColor = vec4(color.rgb, a * opacity);\n }\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n"})}},{key:"initializeState",value:function(){var e=this;Object(a.a)(Object(o.a)(A.prototype),"initializeState",this).call(this),this.getAttributeManager().addInstanced({instanceOffsets:{size:2,accessor:"getIconOffsets"},instancePickingColors:{type:5121,size:3,accessor:function(t,A){var n=A.index,r=A.target;return e.encodePickingColor(n,r)}}})}},{key:"updateState",value:function(e){Object(a.a)(Object(o.a)(A.prototype),"updateState",this).call(this,e);var t=e.props,n=e.oldProps,r=t.outlineColor;r!==n.outlineColor&&((r=r.map((function(e){return e/255})))[3]=Number.isFinite(r[3])?r[3]:1,this.setState({outlineColor:r})),!t.sdf&&t.outlineWidth&&c.a.warn("".concat(this.id,": fontSettings.sdf is required to render outline"))()}},{key:"draw",value:function(e){var t=this.props,r=t.sdf,i=t.smoothing,s=t.outlineWidth,g=this.state.outlineColor;e.uniforms=Object(n.a)({},e.uniforms,{buffer:.75,outlineBuffer:s?Math.max(i,.75*(1-s)):-1,gamma:i,sdf:Boolean(r),outlineColor:g}),Object(a.a)(Object(o.a)(A.prototype),"draw",this).call(this,e)}},{key:"getInstanceOffset",value:function(e){var t=this;return e?Array.from(e).map((function(e){return Object(a.a)(Object(o.a)(A.prototype),"getInstanceOffset",t).call(t,e)})):l}},{key:"getInstanceColorMode",value:function(e){return 1}},{key:"getInstanceIconFrame",value:function(e){var t=this;return e?Array.from(e).map((function(e){return Object(a.a)(Object(o.a)(A.prototype),"getInstanceIconFrame",t).call(t,e)})):l}}]),A}(u.a);I.layerName="MultiIconLayer",I.defaultProps={getIconOffsets:{type:"accessor",value:function(e){return e.offsets}},alphaCutoff:.001,smoothing:.1,outlineWidth:0,outlineColor:{type:"color",value:[0,0,0,255]}}},function(e,t,A){"use strict";var n=A(6),r=A(7),i=A(1),o=A(4),a=A(77),s=A(9),g=A(10),c=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(i.a)(this,A),t.apply(this,arguments)}return A}(A(199).a),u=A(411),l=A(161);A.d(t,"a",(function(){return I}));var I=function(){function e(t){Object(i.a)(this,e),this.gl=t,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new c(t),this.pickLayersPass=new u.a(t),this.renderCount=0,this._needsRedraw="Initial render",this.renderBuffers=[],this.lastPostProcessEffect=null}return Object(o.a)(e,[{key:"setProps",value:function(e){"layerFilter"in e&&this.layerFilter!==e.layerFilter&&(this.layerFilter=e.layerFilter,this._needsRedraw="layerFilter changed"),"drawPickingColors"in e&&this.drawPickingColors!==e.drawPickingColors&&(this.drawPickingColors=e.drawPickingColors,this._needsRedraw="drawPickingColors changed")}},{key:"renderLayers",value:function(e){var t=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass;e.layerFilter=e.layerFilter||this.layerFilter,e.effects=e.effects||[],e.target=e.target||l.a.getDefaultFramebuffer(this.gl),this._preRender(e.effects,e);var A=this.lastPostProcessEffect?this.renderBuffers[0]:e.target,n=t.render(Object(r.a)({},e,{target:A}));this._postRender(e.effects,e),this.renderCount++,Object(a.a)("deckRenderer.renderLayers",this,n,e)}},{key:"needsRedraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1},t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}},{key:"finalize",value:function(){var e,t=this.renderBuffers,A=Object(n.a)(t);try{for(A.s();!(e=A.n()).done;){e.value.delete()}}catch(r){A.e(r)}finally{A.f()}t.length=0}},{key:"_preRender",value:function(e,t){var A,r=null,i=Object(n.a)(e);try{for(i.s();!(A=i.n()).done;){var o=A.value;o.preRender(this.gl,t),o.postRender&&(r=o)}}catch(a){i.e(a)}finally{i.f()}r&&this._resizeRenderBuffers(),this.lastPostProcessEffect=r}},{key:"_resizeRenderBuffers",value:function(){var e=this.renderBuffers;0===e.length&&e.push(new l.a(this.gl),new l.a(this.gl));var t,A=Object(n.a)(e);try{for(A.s();!(t=A.n()).done;){t.value.resize()}}catch(r){A.e(r)}finally{A.f()}}},{key:"_postRender",value:function(e,t){var A,r=this.renderBuffers,i={inputBuffer:r[0],swapBuffer:r[1],target:null},o=Object(n.a)(e);try{for(o.s();!(A=o.n()).done;){var a=A.value;if(a.postRender){if(a===this.lastPostProcessEffect){i.target=t.target,a.postRender(this.gl,i);break}var s=a.postRender(this.gl,i);i.inputBuffer=s,i.swapBuffer=s===r[0]?r[1]:r[0]}}}catch(g){o.e(g)}finally{o.f()}}}]),e}()},function(e,t,A){"use strict";function n(e){if(Array.isArray(e))return e}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";var n=A(0),r=A.n(n).a.createContext(null);t.a=r},function(e,t,A){"use strict";function n(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";var n="function"===typeof Symbol&&Symbol.for;t.a=n?Symbol.for("mui.nested"):"__THEME_NESTED__"},function(e,t,A){"use strict";function n(e){if(Array.isArray(e))return e}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return o}));A(137),A(14);var n=A(220),r=(A(13),A(174),{xs:0,sm:600,md:960,lg:1280,xl:1920}),i={keys:["xs","sm","md","lg","xl"],up:function(e){return"@media (min-width:".concat(r[e],"px)")}};function o(e,t,A){if(Array.isArray(t)){var r=e.theme.breakpoints||i;return t.reduce((function(e,n,i){return e[r.up(r.keys[i])]=A(t[i]),e}),{})}if("object"===Object(n.a)(t)){var o=e.theme.breakpoints||i;return Object.keys(t).reduce((function(e,n){return e[o.up(n)]=A(t[n]),e}),{})}return A(t)}},function(e,t,A){"use strict";t.a={mobileStepper:1e3,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500}},function(e,t,A){"use strict";function n(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return u}));var n=A(1),r=A(4),i=A(9),o=A(10),a=A(206),s=A(33),g=A(32),c=A(97),u=function(e){Object(i.a)(A,e);var t=Object(o.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(r.a)(A,[{key:"toString",value:function(){var e="[";if(g.f.printRowMajor){e+="row-major:";for(var t=0;t<this.RANK;++t)for(var A=0;A<this.RANK;++A)e+=" ".concat(this[A*this.RANK+t])}else{e+="column-major:";for(var n=0;n<this.ELEMENTS;++n)e+=" ".concat(this[n])}return e+="]"}},{key:"getElementIndex",value:function(e,t){return t*this.RANK+e}},{key:"getElement",value:function(e,t){return this[t*this.RANK+e]}},{key:"setElement",value:function(e,t,A){return this[t*this.RANK+e]=Object(s.a)(A),this}},{key:"getColumn",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Array(this.RANK).fill(-0),A=e*this.RANK,n=0;n<this.RANK;++n)t[n]=this[A+n];return t}},{key:"setColumn",value:function(e,t){for(var A=e*this.RANK,n=0;n<this.RANK;++n)this[A+n]=t[n];return this}},{key:"ELEMENTS",get:function(){return Object(c.a)(!1),0}},{key:"RANK",get:function(){return Object(c.a)(!1),0}}]),A}(a.a)},function(e,t,A){"use strict";(function(e){A.d(t,"a",(function(){return r}));var n=A(406);function r(){return!("object"===typeof e&&"[object process]"===String(e)&&!e.browser)||Object(n.a)()}}).call(this,A(90))},function(e,t,A){"use strict";(function(e){function n(t){if("undefined"!==typeof window&&"object"===typeof window.process&&"renderer"===window.process.type)return!0;if("undefined"!==typeof e&&"object"===typeof e.versions&&Boolean(e.versions.electron))return!0;var A="object"===typeof navigator&&"string"===typeof navigator.userAgent&&navigator.userAgent,n=t||A;return!!(n&&n.indexOf("Electron")>=0)}A.d(t,"a",(function(){return n}))}).call(this,A(90))},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(18);function r(e,t,A,r){var i="See luma.gl ".concat(A," Upgrade Guide at https://luma.gl/docs/upgrade-guide"),o=Object.getPrototypeOf(e);r.forEach((function(e){o.methodName||(o[e]=function(){throw n.k.removed("Calling removed method ".concat(t,".").concat(e,": "),i)(),new Error(e)})}))}},function(e,t,A){"use strict";A.d(t,"a",(function(){return n}));function n(e){var t=r(e);return function(e){var t=r(e);if(!(t.byteLength>=24&&2303741511===t.getUint32(0,!1)))return null;return{mimeType:"image/png",width:t.getUint32(16,!1),height:t.getUint32(20,!1)}}(t)||function(e){var t=r(e);if(!(t.byteLength>=3&&65496===t.getUint16(0,!1)&&255===t.getUint8(2)))return null;var A=function(){for(var e=new Set([65499,65476,65484,65501,65534]),t=65504;t<65520;++t)e.add(t);var A=new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502]);return{tableMarkers:e,sofMarkers:A}}(),n=A.tableMarkers,i=A.sofMarkers,o=2;for(;o+9<t.byteLength;){var a=t.getUint16(o,!1);if(i.has(a))return{mimeType:"image/jpeg",height:t.getUint16(o+5,!1),width:t.getUint16(o+7,!1)};if(!n.has(a))return null;o+=2,o+=t.getUint16(o,!1)}return null}(t)||function(e){var t=r(e);if(!(t.byteLength>=10&&1195984440===t.getUint32(0,!1)))return null;return{mimeType:"image/gif",width:t.getUint16(6,!0),height:t.getUint16(8,!0)}}(t)||function(e){var t=r(e);if(!(t.byteLength>=14&&16973===t.getUint16(0,!1)&&t.getUint32(2,!0)===t.byteLength))return null;return{mimeType:"image/bmp",width:t.getUint32(18,!0),height:t.getUint32(22,!0)}}(t)}function r(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}},function(e,t,A){"use strict";function n(e){for(var t=e.data,A=e.getIndex,n=e.dataRange,r=e.replace,i=n.startRow,o=void 0===i?0:i,a=n.endRow,s=void 0===a?1/0:a,g=t.length,c=g,u=g,l=0;l<g;l++){var I=A(t[l]);if(c>l&&I>=o&&(c=l),I>=s){u=l;break}}for(var C=c,h=u-c!==r.length,f=h&&t.slice(u),d=0;d<r.length;d++)t[C++]=r[d];if(h){for(var B=0;B<f.length;B++)t[C++]=f[B];t.length=C}return{startRow:c,endRow:c+r.length}}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"a",(function(){return o}));var n=A(7),r=A(1),i=A(4),o=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e);var i=A.id,o=void 0===i?"pass":i;this.id=o,this.gl=t,this.props=Object(n.a)({},A)}return Object(i.a)(e,[{key:"setProps",value:function(e){Object.assign(this.props,e)}},{key:"render",value:function(){}},{key:"cleanup",value:function(){}}]),e}()},function(e,t,A){"use strict";A.d(t,"a",(function(){return C}));var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(199),u=A(18),l=A(41),I={blendFunc:[1,0,32771,0],blendEquation:32774},C=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"render",value:function(e){return e.pickingFBO?this._drawPickingBuffer(e):Object(a.a)(Object(o.a)(A.prototype),"render",this).call(this,e)}},{key:"_drawPickingBuffer",value:function(e){var t=this,r=e.layers,i=e.layerFilter,s=e.views,g=e.viewports,c=e.onViewportActive,l=e.pickingFBO,C=e.deviceRect,f=C.x,d=C.y,B=C.width,p=C.height,E=e.pass,Q=void 0===E?"picking":E,y=e.redrawReason,v=e.pickZ,m=this.gl;this.pickZ=v;var b=!v&&{byLayer:new Map,byAlpha:[]};this._colors=b;var w=Object(u.o)(m,Object(n.a)({scissorTest:!0,scissor:[f,d,B,p],clearColor:[0,0,0,0],depthMask:!0,depthTest:!0,depthRange:[0,1],colorMask:[!0,!0,!0,!0]},I,{blend:!v}),(function(){return Object(a.a)(Object(o.a)(A.prototype),"render",t).call(t,{target:l,layers:r,layerFilter:i,views:s,viewports:g,onViewportActive:c,pass:Q,redrawReason:y})}));return this._colors=null,{decodePickingColor:b&&h.bind(null,b),stats:w}}},{key:"shouldDrawLayer",value:function(e){return e.props.pickable}},{key:"getModuleParameters",value:function(){return{pickingActive:1,pickingAttribute:this.pickZ,lightSources:{}}}},{key:"getLayerParameters",value:function(e,t,A){var r=Object(n.a)({},e.props.parameters);return this.pickZ?r.blend=!1:(Object.assign(r,I),r.blend=!0,r.blendColor=function(e,t,A){var n,r=e.byLayer,i=e.byAlpha;if(r.has(t)){var o=r.get(t);o.viewports.push(A),n=o.a}else if((n=r.size+1)<=255){var a={a:n,layer:t,viewports:[A]};r.set(t,a),i[n]=a}else l.a.warn("Too many pickable layers, only picking the first 255")(),n=0;return[0,0,0,n/255]}(this._colors,e,A)),r}}]),A}(c.a);function h(e,t){var A=e.byAlpha[t[3]];return A&&{pickedLayer:A.layer,pickedViewports:A.viewports,pickedObjectIndex:A.layer.decodePickingColor(t)}}},function(e,t,A){var n;!function(r){var i=/^\s+/,o=/\s+$/,a=0,s=r.round,g=r.min,c=r.max,u=r.random;function l(e,t){if(t=t||{},(e=e||"")instanceof l)return e;if(!(this instanceof l))return new l(e,t);var A=function(e){var t={r:0,g:0,b:0},A=1,n=null,a=null,s=null,u=!1,l=!1;"string"==typeof e&&(e=function(e){e=e.replace(i,"").replace(o,"").toLowerCase();var t,A=!1;if(D[e])e=D[e],A=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(t=T.rgb.exec(e))return{r:t[1],g:t[2],b:t[3]};if(t=T.rgba.exec(e))return{r:t[1],g:t[2],b:t[3],a:t[4]};if(t=T.hsl.exec(e))return{h:t[1],s:t[2],l:t[3]};if(t=T.hsla.exec(e))return{h:t[1],s:t[2],l:t[3],a:t[4]};if(t=T.hsv.exec(e))return{h:t[1],s:t[2],v:t[3]};if(t=T.hsva.exec(e))return{h:t[1],s:t[2],v:t[3],a:t[4]};if(t=T.hex8.exec(e))return{r:U(t[1]),g:U(t[2]),b:U(t[3]),a:L(t[4]),format:A?"name":"hex8"};if(t=T.hex6.exec(e))return{r:U(t[1]),g:U(t[2]),b:U(t[3]),format:A?"name":"hex"};if(t=T.hex4.exec(e))return{r:U(t[1]+""+t[1]),g:U(t[2]+""+t[2]),b:U(t[3]+""+t[3]),a:L(t[4]+""+t[4]),format:A?"name":"hex8"};if(t=T.hex3.exec(e))return{r:U(t[1]+""+t[1]),g:U(t[2]+""+t[2]),b:U(t[3]+""+t[3]),format:A?"name":"hex"};return!1}(e));"object"==typeof e&&(Z(e.r)&&Z(e.g)&&Z(e.b)?(I=e.r,C=e.g,h=e.b,t={r:255*x(I,255),g:255*x(C,255),b:255*x(h,255)},u=!0,l="%"===String(e.r).substr(-1)?"prgb":"rgb"):Z(e.h)&&Z(e.s)&&Z(e.v)?(n=M(e.s),a=M(e.v),t=function(e,t,A){e=6*x(e,360),t=x(t,100),A=x(A,100);var n=r.floor(e),i=e-n,o=A*(1-t),a=A*(1-i*t),s=A*(1-(1-i)*t),g=n%6;return{r:255*[A,a,o,o,s,A][g],g:255*[s,A,A,a,o,o][g],b:255*[o,o,s,A,A,a][g]}}(e.h,n,a),u=!0,l="hsv"):Z(e.h)&&Z(e.s)&&Z(e.l)&&(n=M(e.s),s=M(e.l),t=function(e,t,A){var n,r,i;function o(e,t,A){return A<0&&(A+=1),A>1&&(A-=1),A<1/6?e+6*(t-e)*A:A<.5?t:A<2/3?e+(t-e)*(2/3-A)*6:e}if(e=x(e,360),t=x(t,100),A=x(A,100),0===t)n=r=i=A;else{var a=A<.5?A*(1+t):A+t-A*t,s=2*A-a;n=o(s,a,e+1/3),r=o(s,a,e),i=o(s,a,e-1/3)}return{r:255*n,g:255*r,b:255*i}}(e.h,n,s),u=!0,l="hsl"),e.hasOwnProperty("a")&&(A=e.a));var I,C,h;return A=k(A),{ok:u,format:e.format||l,r:g(255,c(t.r,0)),g:g(255,c(t.g,0)),b:g(255,c(t.b,0)),a:A}}(e);this._originalInput=e,this._r=A.r,this._g=A.g,this._b=A.b,this._a=A.a,this._roundA=s(100*this._a)/100,this._format=t.format||A.format,this._gradientType=t.gradientType,this._r<1&&(this._r=s(this._r)),this._g<1&&(this._g=s(this._g)),this._b<1&&(this._b=s(this._b)),this._ok=A.ok,this._tc_id=a++}function I(e,t,A){e=x(e,255),t=x(t,255),A=x(A,255);var n,r,i=c(e,t,A),o=g(e,t,A),a=(i+o)/2;if(i==o)n=r=0;else{var s=i-o;switch(r=a>.5?s/(2-i-o):s/(i+o),i){case e:n=(t-A)/s+(t<A?6:0);break;case t:n=(A-e)/s+2;break;case A:n=(e-t)/s+4}n/=6}return{h:n,s:r,l:a}}function C(e,t,A){e=x(e,255),t=x(t,255),A=x(A,255);var n,r,i=c(e,t,A),o=g(e,t,A),a=i,s=i-o;if(r=0===i?0:s/i,i==o)n=0;else{switch(i){case e:n=(t-A)/s+(t<A?6:0);break;case t:n=(A-e)/s+2;break;case A:n=(e-t)/s+4}n/=6}return{h:n,s:r,v:a}}function h(e,t,A,n){var r=[_(s(e).toString(16)),_(s(t).toString(16)),_(s(A).toString(16))];return n&&r[0].charAt(0)==r[0].charAt(1)&&r[1].charAt(0)==r[1].charAt(1)&&r[2].charAt(0)==r[2].charAt(1)?r[0].charAt(0)+r[1].charAt(0)+r[2].charAt(0):r.join("")}function f(e,t,A,n){return[_(O(n)),_(s(e).toString(16)),_(s(t).toString(16)),_(s(A).toString(16))].join("")}function d(e,t){t=0===t?0:t||10;var A=l(e).toHsl();return A.s-=t/100,A.s=N(A.s),l(A)}function B(e,t){t=0===t?0:t||10;var A=l(e).toHsl();return A.s+=t/100,A.s=N(A.s),l(A)}function p(e){return l(e).desaturate(100)}function E(e,t){t=0===t?0:t||10;var A=l(e).toHsl();return A.l+=t/100,A.l=N(A.l),l(A)}function Q(e,t){t=0===t?0:t||10;var A=l(e).toRgb();return A.r=c(0,g(255,A.r-s(-t/100*255))),A.g=c(0,g(255,A.g-s(-t/100*255))),A.b=c(0,g(255,A.b-s(-t/100*255))),l(A)}function y(e,t){t=0===t?0:t||10;var A=l(e).toHsl();return A.l-=t/100,A.l=N(A.l),l(A)}function v(e,t){var A=l(e).toHsl(),n=(A.h+t)%360;return A.h=n<0?360+n:n,l(A)}function m(e){var t=l(e).toHsl();return t.h=(t.h+180)%360,l(t)}function b(e){var t=l(e).toHsl(),A=t.h;return[l(e),l({h:(A+120)%360,s:t.s,l:t.l}),l({h:(A+240)%360,s:t.s,l:t.l})]}function w(e){var t=l(e).toHsl(),A=t.h;return[l(e),l({h:(A+90)%360,s:t.s,l:t.l}),l({h:(A+180)%360,s:t.s,l:t.l}),l({h:(A+270)%360,s:t.s,l:t.l})]}function S(e){var t=l(e).toHsl(),A=t.h;return[l(e),l({h:(A+72)%360,s:t.s,l:t.l}),l({h:(A+216)%360,s:t.s,l:t.l})]}function F(e,t,A){t=t||6,A=A||30;var n=l(e).toHsl(),r=360/A,i=[l(e)];for(n.h=(n.h-(r*t>>1)+720)%360;--t;)n.h=(n.h+r)%360,i.push(l(n));return i}function R(e,t){t=t||6;for(var A=l(e).toHsv(),n=A.h,r=A.s,i=A.v,o=[],a=1/t;t--;)o.push(l({h:n,s:r,v:i})),i=(i+a)%1;return o}l.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,A,n=this.toRgb();return e=n.r/255,t=n.g/255,A=n.b/255,.2126*(e<=.03928?e/12.92:r.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:r.pow((t+.055)/1.055,2.4))+.0722*(A<=.03928?A/12.92:r.pow((A+.055)/1.055,2.4))},setAlpha:function(e){return this._a=k(e),this._roundA=s(100*this._a)/100,this},toHsv:function(){var e=C(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=C(this._r,this._g,this._b),t=s(360*e.h),A=s(100*e.s),n=s(100*e.v);return 1==this._a?"hsv("+t+", "+A+"%, "+n+"%)":"hsva("+t+", "+A+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var e=I(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=I(this._r,this._g,this._b),t=s(360*e.h),A=s(100*e.s),n=s(100*e.l);return 1==this._a?"hsl("+t+", "+A+"%, "+n+"%)":"hsla("+t+", "+A+"%, "+n+"%, "+this._roundA+")"},toHex:function(e){return h(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,A,n,r){var i=[_(s(e).toString(16)),_(s(t).toString(16)),_(s(A).toString(16)),_(O(n))];if(r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)&&i[3].charAt(0)==i[3].charAt(1))return i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0);return i.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:s(this._r),g:s(this._g),b:s(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+s(this._r)+", "+s(this._g)+", "+s(this._b)+")":"rgba("+s(this._r)+", "+s(this._g)+", "+s(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:s(100*x(this._r,255))+"%",g:s(100*x(this._g,255))+"%",b:s(100*x(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+s(100*x(this._r,255))+"%, "+s(100*x(this._g,255))+"%, "+s(100*x(this._b,255))+"%)":"rgba("+s(100*x(this._r,255))+"%, "+s(100*x(this._g,255))+"%, "+s(100*x(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(G[h(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+f(this._r,this._g,this._b,this._a),A=t,n=this._gradientType?"GradientType = 1, ":"";if(e){var r=l(e);A="#"+f(r._r,r._g,r._b,r._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+t+",endColorstr="+A+")"},toString:function(e){var t=!!e;e=e||this._format;var A=!1,n=this._a<1&&this._a>=0;return t||!n||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(A=this.toRgbString()),"prgb"===e&&(A=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(A=this.toHexString()),"hex3"===e&&(A=this.toHexString(!0)),"hex4"===e&&(A=this.toHex8String(!0)),"hex8"===e&&(A=this.toHex8String()),"name"===e&&(A=this.toName()),"hsl"===e&&(A=this.toHslString()),"hsv"===e&&(A=this.toHsvString()),A||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return l(this.toString())},_applyModification:function(e,t){var A=e.apply(null,[this].concat([].slice.call(t)));return this._r=A._r,this._g=A._g,this._b=A._b,this.setAlpha(A._a),this},lighten:function(){return this._applyModification(E,arguments)},brighten:function(){return this._applyModification(Q,arguments)},darken:function(){return this._applyModification(y,arguments)},desaturate:function(){return this._applyModification(d,arguments)},saturate:function(){return this._applyModification(B,arguments)},greyscale:function(){return this._applyModification(p,arguments)},spin:function(){return this._applyModification(v,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(F,arguments)},complement:function(){return this._applyCombination(m,arguments)},monochromatic:function(){return this._applyCombination(R,arguments)},splitcomplement:function(){return this._applyCombination(S,arguments)},triad:function(){return this._applyCombination(b,arguments)},tetrad:function(){return this._applyCombination(w,arguments)}},l.fromRatio=function(e,t){if("object"==typeof e){var A={};for(var n in e)e.hasOwnProperty(n)&&(A[n]="a"===n?e[n]:M(e[n]));e=A}return l(e,t)},l.equals=function(e,t){return!(!e||!t)&&l(e).toRgbString()==l(t).toRgbString()},l.random=function(){return l.fromRatio({r:u(),g:u(),b:u()})},l.mix=function(e,t,A){A=0===A?0:A||50;var n=l(e).toRgb(),r=l(t).toRgb(),i=A/100;return l({r:(r.r-n.r)*i+n.r,g:(r.g-n.g)*i+n.g,b:(r.b-n.b)*i+n.b,a:(r.a-n.a)*i+n.a})},l.readability=function(e,t){var A=l(e),n=l(t);return(r.max(A.getLuminance(),n.getLuminance())+.05)/(r.min(A.getLuminance(),n.getLuminance())+.05)},l.isReadable=function(e,t,A){var n,r,i=l.readability(e,t);switch(r=!1,(n=function(e){var t,A;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),A=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==A&&"large"!==A&&(A="small");return{level:t,size:A}}(A)).level+n.size){case"AAsmall":case"AAAlarge":r=i>=4.5;break;case"AAlarge":r=i>=3;break;case"AAAsmall":r=i>=7}return r},l.mostReadable=function(e,t,A){var n,r,i,o,a=null,s=0;r=(A=A||{}).includeFallbackColors,i=A.level,o=A.size;for(var g=0;g<t.length;g++)(n=l.readability(e,t[g]))>s&&(s=n,a=l(t[g]));return l.isReadable(e,a,{level:i,size:o})||!r?a:(A.includeFallbackColors=!1,l.mostReadable(e,["#fff","#000"],A))};var D=l.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",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:"f0f",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:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",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:"f00",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",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},G=l.hexNames=function(e){var t={};for(var A in e)e.hasOwnProperty(A)&&(t[e[A]]=A);return t}(D);function k(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function x(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var A=function(e){return"string"===typeof e&&-1!=e.indexOf("%")}(e);return e=g(t,c(0,parseFloat(e))),A&&(e=parseInt(e*t,10)/100),r.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function N(e){return g(1,c(0,e))}function U(e){return parseInt(e,16)}function _(e){return 1==e.length?"0"+e:""+e}function M(e){return e<=1&&(e=100*e+"%"),e}function O(e){return r.round(255*parseFloat(e)).toString(16)}function L(e){return U(e)/255}var T=function(){var e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?",A="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?";return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+A),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+A),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"+A),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Z(e){return!!T.CSS_UNIT.exec(e)}e.exports?e.exports=l:void 0===(n=function(){return l}.call(t,A,t,e))||(e.exports=n)}(Math)},function(e,t,A){"use strict";var n=A(195),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},a={};function s(e){return n.isMemo(e)?o:a[e.$$typeof]||r}a[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},a[n.Memo]=o;var g=Object.defineProperty,c=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,l=Object.getOwnPropertyDescriptor,I=Object.getPrototypeOf,C=Object.prototype;e.exports=function e(t,A,n){if("string"!==typeof A){if(C){var r=I(A);r&&r!==C&&e(t,r,n)}var o=c(A);u&&(o=o.concat(u(A)));for(var a=s(t),h=s(A),f=0;f<o.length;++f){var d=o[f];if(!i[d]&&(!n||!n[d])&&(!h||!h[d])&&(!a||!a[d])){var B=l(A,d);try{g(t,d,B)}catch(p){}}}}return t}},function(e,t,A){"use strict";function n(){var e=document.createElement("div");e.style.width="99px",e.style.height="99px",e.style.position="absolute",e.style.top="-9999px",e.style.overflow="scroll",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),t}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";(function(e){function n(t,A){var n,r="undefined"!==typeof(n="undefined"!==typeof A?A:"undefined"!==typeof window?window:"undefined"!==typeof self?self:e).document&&n.document.attachEvent;if(!r){var i=function(){var e=n.requestAnimationFrame||n.mozRequestAnimationFrame||n.webkitRequestAnimationFrame||function(e){return n.setTimeout(e,20)};return function(t){return e(t)}}(),o=function(){var e=n.cancelAnimationFrame||n.mozCancelAnimationFrame||n.webkitCancelAnimationFrame||n.clearTimeout;return function(t){return e(t)}}(),a=function(e){var t=e.__resizeTriggers__,A=t.firstElementChild,n=t.lastElementChild,r=A.firstElementChild;n.scrollLeft=n.scrollWidth,n.scrollTop=n.scrollHeight,r.style.width=A.offsetWidth+1+"px",r.style.height=A.offsetHeight+1+"px",A.scrollLeft=A.scrollWidth,A.scrollTop=A.scrollHeight},s=function(e){if(!(e.target.className&&"function"===typeof e.target.className.indexOf&&e.target.className.indexOf("contract-trigger")<0&&e.target.className.indexOf("expand-trigger")<0)){var t=this;a(this),this.__resizeRAF__&&o(this.__resizeRAF__),this.__resizeRAF__=i((function(){(function(e){return e.offsetWidth!=e.__resizeLast__.width||e.offsetHeight!=e.__resizeLast__.height})(t)&&(t.__resizeLast__.width=t.offsetWidth,t.__resizeLast__.height=t.offsetHeight,t.__resizeListeners__.forEach((function(A){A.call(t,e)})))}))}},g=!1,c="",u="animationstart",l="Webkit Moz O ms".split(" "),I="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),C=n.document.createElement("fakeelement");if(void 0!==C.style.animationName&&(g=!0),!1===g)for(var h=0;h<l.length;h++)if(void 0!==C.style[l[h]+"AnimationName"]){c="-"+l[h].toLowerCase()+"-",u=I[h],g=!0;break}var f="resizeanim",d="@"+c+"keyframes "+f+" { from { opacity: 0; } to { opacity: 0; } } ",B=c+"animation: 1ms "+f+"; "}return{addResizeListener:function(e,A){if(r)e.attachEvent("onresize",A);else{if(!e.__resizeTriggers__){var i=e.ownerDocument,o=n.getComputedStyle(e);o&&"static"==o.position&&(e.style.position="relative"),function(e){if(!e.getElementById("detectElementResize")){var A=(d||"")+".resize-triggers { "+(B||"")+'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',n=e.head||e.getElementsByTagName("head")[0],r=e.createElement("style");r.id="detectElementResize",r.type="text/css",null!=t&&r.setAttribute("nonce",t),r.styleSheet?r.styleSheet.cssText=A:r.appendChild(e.createTextNode(A)),n.appendChild(r)}}(i),e.__resizeLast__={},e.__resizeListeners__=[],(e.__resizeTriggers__=i.createElement("div")).className="resize-triggers",e.__resizeTriggers__.innerHTML='<div class="expand-trigger"><div></div></div><div class="contract-trigger"></div>',e.appendChild(e.__resizeTriggers__),a(e),e.addEventListener("scroll",s,!0),u&&(e.__resizeTriggers__.__animationListener__=function(t){t.animationName==f&&a(e)},e.__resizeTriggers__.addEventListener(u,e.__resizeTriggers__.__animationListener__))}e.__resizeListeners__.push(A)}},removeResizeListener:function(e,t){if(r)e.detachEvent("onresize",t);else if(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),!e.__resizeListeners__.length){e.removeEventListener("scroll",s,!0),e.__resizeTriggers__.__animationListener__&&(e.__resizeTriggers__.removeEventListener(u,e.__resizeTriggers__.__animationListener__),e.__resizeTriggers__.__animationListener__=null);try{e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)}catch(A){}}}}}A.d(t,"a",(function(){return n}))}).call(this,A(86))},function(e,t,A){"use strict";t.__esModule=!0,t.default=function(e,t){var A={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(A[n]=e[n]);return A}},function(e,t,A){"use strict";var n=A(0),r=n.createContext();t.a=r},function(e,t,A){"use strict";var n=A(0),r=n.createContext({});t.a=r},function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");t.default=o},function(e,t,A){"use strict";A.d(t,"a",(function(){return c}));var n=A(1),r=A(4),i=A(6),o=A(5);function a(e,t){return JSON.stringify(e,function(e){var t=[];return function(A,n){if("object"!==typeof n||null===n)return n;var r=t.indexOf(this)+1;return t.length=r,t.length>e?"[Object]":t.indexOf(n)>=0?"[Circular]":(t.push(n),n)}}(t))}var s="vg-tooltip-element",g={offsetX:10,offsetY:10,id:s,styleId:"vega-tooltip-style",theme:"light",disableDefaultStyle:!1,sanitize:function(e){return String(e).replace(/&/g,"&").replace(/</g,"<")},maxDepth:2,formatTooltip:function(e,t,A){if(Object(o.B)(e))return"[".concat(e.map((function(e){return t(Object(o.J)(e)?e:a(e,A))})).join(", "),"]");if(Object(o.H)(e)){var n="",r=e,s=r.title,g=r.image,c=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A}(r,["title","image"]);s&&(n+="<h2>".concat(t(s),"</h2>")),g&&(n+='<img src="'.concat(t(g),'">'));var u=Object.keys(c);if(u.length>0){n+="<table>";var l,I=Object(i.a)(u);try{for(I.s();!(l=I.n()).done;){var C=l.value,h=c[C];void 0!==h&&(Object(o.H)(h)&&(h=a(h,A)),n+='<tr><td class="key">'.concat(t(C),':</td><td class="value">').concat(t(h),"</td></tr>"))}}catch(f){I.e(f)}finally{I.f()}n+="</table>"}return n||"{}"}return t(e)}};var c=function(){function e(t){Object(n.a)(this,e),this.options=Object.assign(Object.assign({},g),t);var A=this.options.id;if(this.el=null,this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){var r=document.createElement("style");r.setAttribute("id",this.options.styleId),r.innerHTML=function(e){if(!/^[A-Za-z]+[-:.\w]*$/.test(e))throw new Error("Invalid HTML ID");return"#vg-tooltip-element {\n visibility: hidden;\n padding: 8px;\n position: fixed;\n z-index: 1000;\n font-family: sans-serif;\n font-size: 11px;\n border-radius: 3px;\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n /* The default theme is the light theme. */\n background-color: rgba(255, 255, 255, 0.95);\n border: 1px solid #d9d9d9;\n color: black; }\n #vg-tooltip-element.visible {\n visibility: visible; }\n #vg-tooltip-element h2 {\n margin-top: 0;\n margin-bottom: 10px;\n font-size: 13px; }\n #vg-tooltip-element img {\n max-width: 200px;\n max-height: 200px; }\n #vg-tooltip-element table {\n border-spacing: 0; }\n #vg-tooltip-element table tr {\n border: none; }\n #vg-tooltip-element table tr td {\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n padding-bottom: 2px; }\n #vg-tooltip-element table tr td.key {\n color: #808080;\n max-width: 150px;\n text-align: right;\n padding-right: 4px; }\n #vg-tooltip-element table tr td.value {\n display: block;\n max-width: 300px;\n max-height: 7em;\n text-align: left; }\n #vg-tooltip-element.dark-theme {\n background-color: rgba(32, 32, 32, 0.9);\n border: 1px solid #f5f5f5;\n color: white; }\n #vg-tooltip-element.dark-theme td.key {\n color: #bfbfbf; }\n".toString().replace(s,e)}(A);var i=document.head;i.childNodes.length>0?i.insertBefore(r,i.childNodes[0]):i.appendChild(r)}}return Object(r.a)(e,[{key:"tooltipHandler",value:function(e,t,A,n){var r;if(this.el=document.getElementById(this.options.id),this.el||(this.el=document.createElement("div"),this.el.setAttribute("id",this.options.id),this.el.classList.add("vg-tooltip"),document.body.appendChild(this.el)),(null!==(r=document.fullscreenElement)&&void 0!==r?r:document.body).appendChild(this.el),null!=n&&""!==n){this.el.innerHTML=this.options.formatTooltip(n,this.options.sanitize,this.options.maxDepth),this.el.classList.add("visible","".concat(this.options.theme,"-theme"));var i=function(e,t,A,n){var r=e.clientX+A;r+t.width>window.innerWidth&&(r=+e.clientX-A-t.width);var i=e.clientY+n;return i+t.height>window.innerHeight&&(i=+e.clientY-n-t.height),{x:r,y:i}}(t,this.el.getBoundingClientRect(),this.options.offsetX,this.options.offsetY),o=i.x,a=i.y;this.el.setAttribute("style","top: ".concat(a,"px; left: ").concat(o,"px"))}else this.el.classList.remove("visible","".concat(this.options.theme,"-theme"))}}]),e}()},function(e,t,A){"use strict";var n=A(3),r=A.n(n),i=A(12),o=A(7),a={name:"Draco",id:"draco",module:"draco",version:"3.0.12",worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:"object"===typeof WebAssembly?"wasm":"js",libraryPath:"libs/",extraAttributes:{},attributeNameEntry:void 0}}},s=A(6),g=A(11),c=A(8),u=A(1),l=A(4),I=A(25);function C(e){for(var t=1/0,A=1/0,n=1/0,r=-1/0,i=-1/0,o=-1/0,a=e.POSITION?e.POSITION.value:[],s=a&&a.length,g=0;g<s;g+=3){var c=a[g],u=a[g+1],l=a[g+2];t=c<t?c:t,A=u<A?u:A,n=l<n?l:n,r=c>r?c:r,i=u>i?u:i,o=l>o?l:o}return[[t,A,n],[r,i,o]]}var h=function(){function e(t,A){Object(u.a)(this,e),Object(I.a)(this,"fields",void 0),Object(I.a)(this,"metadata",void 0),function(e,t){if(!e)throw new Error(t||"loader assertion failed.")}(Array.isArray(t)),function(e){var t,A={},n=Object(s.a)(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;A[r.name]&&console.warn("Schema: duplicated field name",r.name,r),A[r.name]=!0}}catch(i){n.e(i)}finally{n.f()}}(t),this.fields=t,this.metadata=A||new Map}return Object(l.a)(e,[{key:"compareTo",value:function(e){if(this.metadata!==e.metadata)return!1;if(this.fields.length!==e.fields.length)return!1;for(var t=0;t<this.fields.length;++t)if(!this.fields[t].compareTo(e.fields[t]))return!1;return!0}},{key:"select",value:function(){for(var t=Object.create(null),A=arguments.length,n=new Array(A),r=0;r<A;r++)n[r]=arguments[r];for(var i=0,o=n;i<o.length;i++){var a=o[i];t[a]=!0}var s=this.fields.filter((function(e){return t[e.name]}));return new e(s,this.metadata)}},{key:"selectAt",value:function(){for(var t=this,A=arguments.length,n=new Array(A),r=0;r<A;r++)n[r]=arguments[r];var i=n.map((function(e){return t.fields[e]})).filter(Boolean);return new e(i,this.metadata)}},{key:"assign",value:function(t){var A,n=this.metadata;if(t instanceof e){var r=t;A=r.fields,n=f(f(new Map,this.metadata),r.metadata)}else A=t;var i,o=Object.create(null),a=Object(s.a)(this.fields);try{for(a.s();!(i=a.n()).done;){var g=i.value;o[g.name]=g}}catch(I){a.e(I)}finally{a.f()}var c,u=Object(s.a)(A);try{for(u.s();!(c=u.n()).done;){var l=c.value;o[l.name]=l}}catch(I){u.e(I)}finally{u.f()}return new e(Object.values(o),n)}}]),e}();function f(e,t){return new Map([].concat(Object(g.a)(e||new Map),Object(g.a)(t||new Map)))}var d,B,p,E,Q=A(24),y=A(9),v=A(10);!function(e){e[e.NONE=0]="NONE",e[e.Null=1]="Null",e[e.Int=2]="Int",e[e.Float=3]="Float",e[e.Binary=4]="Binary",e[e.Utf8=5]="Utf8",e[e.Bool=6]="Bool",e[e.Decimal=7]="Decimal",e[e.Date=8]="Date",e[e.Time=9]="Time",e[e.Timestamp=10]="Timestamp",e[e.Interval=11]="Interval",e[e.List=12]="List",e[e.Struct=13]="Struct",e[e.Union=14]="Union",e[e.FixedSizeBinary=15]="FixedSizeBinary",e[e.FixedSizeList=16]="FixedSizeList",e[e.Map=17]="Map",e[e.Dictionary=-1]="Dictionary",e[e.Int8=-2]="Int8",e[e.Int16=-3]="Int16",e[e.Int32=-4]="Int32",e[e.Int64=-5]="Int64",e[e.Uint8=-6]="Uint8",e[e.Uint16=-7]="Uint16",e[e.Uint32=-8]="Uint32",e[e.Uint64=-9]="Uint64",e[e.Float16=-10]="Float16",e[e.Float32=-11]="Float32",e[e.Float64=-12]="Float64",e[e.DateDay=-13]="DateDay",e[e.DateMillisecond=-14]="DateMillisecond",e[e.TimestampSecond=-15]="TimestampSecond",e[e.TimestampMillisecond=-16]="TimestampMillisecond",e[e.TimestampMicrosecond=-17]="TimestampMicrosecond",e[e.TimestampNanosecond=-18]="TimestampNanosecond",e[e.TimeSecond=-19]="TimeSecond",e[e.TimeMillisecond=-20]="TimeMillisecond",e[e.TimeMicrosecond=-21]="TimeMicrosecond",e[e.TimeNanosecond=-22]="TimeNanosecond",e[e.DenseUnion=-23]="DenseUnion",e[e.SparseUnion=-24]="SparseUnion",e[e.IntervalDayTime=-25]="IntervalDayTime",e[e.IntervalYearMonth=-26]="IntervalYearMonth"}(d||(d={}));var m=function(){function e(){Object(u.a)(this,e)}return Object(l.a)(e,[{key:"compareTo",value:function(e){return this===e}},{key:"typeId",get:function(){return d.NONE}}],[{key:"isNull",value:function(e){return e&&e.typeId===d.Null}},{key:"isInt",value:function(e){return e&&e.typeId===d.Int}},{key:"isFloat",value:function(e){return e&&e.typeId===d.Float}},{key:"isBinary",value:function(e){return e&&e.typeId===d.Binary}},{key:"isUtf8",value:function(e){return e&&e.typeId===d.Utf8}},{key:"isBool",value:function(e){return e&&e.typeId===d.Bool}},{key:"isDecimal",value:function(e){return e&&e.typeId===d.Decimal}},{key:"isDate",value:function(e){return e&&e.typeId===d.Date}},{key:"isTime",value:function(e){return e&&e.typeId===d.Time}},{key:"isTimestamp",value:function(e){return e&&e.typeId===d.Timestamp}},{key:"isInterval",value:function(e){return e&&e.typeId===d.Interval}},{key:"isList",value:function(e){return e&&e.typeId===d.List}},{key:"isStruct",value:function(e){return e&&e.typeId===d.Struct}},{key:"isUnion",value:function(e){return e&&e.typeId===d.Union}},{key:"isFixedSizeBinary",value:function(e){return e&&e.typeId===d.FixedSizeBinary}},{key:"isFixedSizeList",value:function(e){return e&&e.typeId===d.FixedSizeList}},{key:"isMap",value:function(e){return e&&e.typeId===d.Map}},{key:"isDictionary",value:function(e){return e&&e.typeId===d.Dictionary}}]),e}();B=Symbol.toStringTag;var b=function(e){Object(y.a)(A,e);var t=Object(v.a)(A);function A(e,n){var r;return Object(u.a)(this,A),r=t.call(this),Object(I.a)(Object(Q.a)(r),"isSigned",void 0),Object(I.a)(Object(Q.a)(r),"bitWidth",void 0),r.isSigned=e,r.bitWidth=n,r}return Object(l.a)(A,[{key:"toString",value:function(){return"".concat(this.isSigned?"I":"Ui","nt").concat(this.bitWidth)}},{key:"typeId",get:function(){return d.Int}},{key:B,get:function(){return"Int"}}]),A}(m),w=function(e){Object(y.a)(A,e);var t=Object(v.a)(A);function A(){return Object(u.a)(this,A),t.call(this,!0,8)}return A}(b),S=function(e){Object(y.a)(A,e);var t=Object(v.a)(A);function A(){return Object(u.a)(this,A),t.call(this,!0,16)}return A}(b),F=function(e){Object(y.a)(A,e);var t=Object(v.a)(A);function A(){return Object(u.a)(this,A),t.call(this,!0,32)}return A}(b),R=function(e){Object(y.a)(A,e);var t=Object(v.a)(A);function A(){return Object(u.a)(this,A),t.call(this,!1,8)}return A}(b),D=function(e){Object(y.a)(A,e);var t=Object(v.a)(A);function A(){return Object(u.a)(this,A),t.call(this,!1,16)}return A}(b),G=function(e){Object(y.a)(A,e);var t=Object(v.a)(A);function A(){return Object(u.a)(this,A),t.call(this,!1,32)}return A}(b),k=32,x=64;p=Symbol.toStringTag;var N=function(e){Object(y.a)(A,e);var t=Object(v.a)(A);function A(e){var n;return Object(u.a)(this,A),n=t.call(this),Object(I.a)(Object(Q.a)(n),"precision",void 0),n.precision=e,n}return Object(l.a)(A,[{key:"toString",value:function(){return"Float".concat(this.precision)}},{key:"typeId",get:function(){return d.Float}},{key:p,get:function(){return"Float"}}]),A}(m),U=function(e){Object(y.a)(A,e);var t=Object(v.a)(A);function A(){return Object(u.a)(this,A),t.call(this,k)}return A}(N),_=function(e){Object(y.a)(A,e);var t=Object(v.a)(A);function A(){return Object(u.a)(this,A),t.call(this,x)}return A}(N);Symbol.toStringTag;Symbol.toStringTag;Symbol.toStringTag;Symbol.toStringTag;E=Symbol.toStringTag;var M=function(e){Object(y.a)(A,e);var t=Object(v.a)(A);function A(e,n){var r;return Object(u.a)(this,A),r=t.call(this),Object(I.a)(Object(Q.a)(r),"listSize",void 0),Object(I.a)(Object(Q.a)(r),"children",void 0),r.listSize=e,r.children=[n],r}return Object(l.a)(A,[{key:"toString",value:function(){return"FixedSizeList[".concat(this.listSize,"]<").concat(this.valueType,">")}},{key:"typeId",get:function(){return d.FixedSizeList}},{key:"valueType",get:function(){return this.children[0].type}},{key:"valueField",get:function(){return this.children[0]}},{key:E,get:function(){return"FixedSizeList"}}]),A}(m);var O=function(){function e(t,A){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new Map;Object(u.a)(this,e),Object(I.a)(this,"name",void 0),Object(I.a)(this,"type",void 0),Object(I.a)(this,"nullable",void 0),Object(I.a)(this,"metadata",void 0),this.name=t,this.type=A,this.nullable=n,this.metadata=r}return Object(l.a)(e,[{key:"clone",value:function(){return new e(this.name,this.type,this.nullable,this.metadata)}},{key:"compareTo",value:function(e){return this.name===e.name&&this.type===e.type&&this.nullable===e.nullable&&this.metadata===e.metadata}},{key:"toString",value:function(){return"".concat(this.type).concat(this.nullable?", nullable":"").concat(this.metadata?", metadata: ".concat(this.metadata):"")}},{key:"typeId",get:function(){return this.type&&this.type.typeId}}]),e}();function L(e,t,A){var n=Z(t.metadata),r=[],i=function(e){var t={};for(var A in e){var n=e[A];t[n.name||"undefined"]=n}return t}(t.attributes);for(var o in e){var a=T(o,e[o],i[o]);r.push(a)}if(A){var s=T("indices",A);r.push(s)}return new h(r,n)}function T(e,t,A){var n=A?Z(A.metadata):void 0,r=function(e){switch(e.constructor){case Int8Array:return new w;case Uint8Array:return new R;case Int16Array:return new S;case Uint16Array:return new D;case Int32Array:return new F;case Uint32Array:return new G;case Float32Array:return new U;case Float64Array:return new _;default:throw new Error("array type not supported")}}(t.value);return new O(e,new M(t.size,new O("value",r)),!1,n)}function Z(e){var t=new Map;for(var A in e)t.set("".concat(A,".string"),JSON.stringify(e[A]));return t}var H={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},Y={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},J=function(){function e(t){Object(u.a)(this,e),Object(I.a)(this,"draco",void 0),Object(I.a)(this,"decoder",void 0),Object(I.a)(this,"metadataQuerier",void 0),this.draco=t,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}return Object(l.a)(e,[{key:"destroy",value:function(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}},{key:"parseSync",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=new this.draco.DecoderBuffer;A.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(t);var n=this.decoder.GetEncodedGeometryType(A),r=n===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{var i;switch(n){case this.draco.TRIANGULAR_MESH:i=this.decoder.DecodeBufferToMesh(A,r);break;case this.draco.POINT_CLOUD:i=this.decoder.DecodeBufferToPointCloud(A,r);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!i.ok()||!r.ptr){var a="DRACO decompression failed: ".concat(i.error_msg());throw new Error(a)}var s=this._getDracoLoaderData(r,n,t),g=this._getMeshData(r,s,t),c=C(g.attributes),u=L(g.attributes,s,g.indices),l=Object(o.a)({loader:"draco",loaderData:s,header:{vertexCount:r.num_points(),boundingBox:c}},g,{schema:u});return l}finally{this.draco.destroy(A),r&&this.draco.destroy(r)}}},{key:"_getDracoLoaderData",value:function(e,t,A){var n=this._getTopLevelMetadata(e),r=this._getDracoAttributes(e,A);return{geometry_type:t,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:n,attributes:r}}},{key:"_getDracoAttributes",value:function(e,t){for(var A={},n=0;n<e.num_attributes();n++){var r=this.decoder.GetAttribute(e,n),i=this._getAttributeMetadata(e,n);A[r.unique_id()]={unique_id:r.unique_id(),attribute_type:r.attribute_type(),data_type:r.data_type(),num_components:r.num_components(),byte_offset:r.byte_offset(),byte_stride:r.byte_stride(),normalized:r.normalized(),attribute_index:n,metadata:i};var o=this._getQuantizationTransform(r,t);o&&(A[r.unique_id()].quantization_transform=o);var a=this._getOctahedronTransform(r,t);a&&(A[r.unique_id()].octahedron_transform=a)}return A}},{key:"_getMeshData",value:function(e,t,A){var n=this._getMeshAttributes(t,e,A);if(!n.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(A.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:n,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:n,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:n}}},{key:"_getMeshAttributes",value:function(e,t,A){for(var n={},r=0,i=Object.values(e.attributes);r<i.length;r++){var o=i[r],a=this._deduceAttributeName(o,A);o.name=a;var s=this._getAttributeValues(t,o),g=s.value,c=s.size;n[a]={value:g,size:c,byteOffset:o.byte_offset,byteStride:o.byte_stride,normalized:o.normalized}}return n}},{key:"_getTriangleListIndices",value:function(e){var t=3*e.num_faces(),A=4*t,n=this.draco._malloc(A);try{return this.decoder.GetTrianglesUInt32Array(e,A,n),new Uint32Array(this.draco.HEAPF32.buffer,n,t).slice()}finally{this.draco._free(n)}}},{key:"_getTriangleStripIndices",value:function(e){var t=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,t),function(e){for(var t=e.size(),A=new Int32Array(t),n=0;n<t;n++)A[n]=e.GetValue(n);return A}(t)}finally{this.draco.destroy(t)}}},{key:"_getAttributeValues",value:function(e,t){var A,n=Y[t.data_type],r=t.num_components,i=e.num_points()*r,o=i*n.BYTES_PER_ELEMENT,a=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32;default:return e.DT_INVALID}}(this.draco,n),s=this.draco._malloc(o);try{var g=this.decoder.GetAttribute(e,t.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,g,a,o,s),A=new n(this.draco.HEAPF32.buffer,s,i).slice()}finally{this.draco._free(s)}return{value:A,size:r}}},{key:"_deduceAttributeName",value:function(e,t){for(var A=e.unique_id,n=0,r=Object.entries(t.extraAttributes||{});n<r.length;n++){var i=Object(c.a)(r[n],2),o=i[0];if(i[1]===A)return o}var a=e.attribute_type;for(var s in H){if(this.draco[s]===a)return H[s]}var g=t.attributeNameEntry||"name";return e.metadata[g]?e.metadata[g].string:"CUSTOM_ATTRIBUTE_".concat(A)}},{key:"_getTopLevelMetadata",value:function(e){var t=this.decoder.GetMetadata(e);return this._getDracoMetadata(t)}},{key:"_getAttributeMetadata",value:function(e,t){var A=this.decoder.GetAttributeMetadata(e,t);return this._getDracoMetadata(A)}},{key:"_getDracoMetadata",value:function(e){if(!e||!e.ptr)return{};for(var t={},A=this.metadataQuerier.NumEntries(e),n=0;n<A;n++){var r=this.metadataQuerier.GetEntryName(e,n);t[r]=this._getDracoMetadataField(e,r)}return t}},{key:"_getDracoMetadataField",value:function(e,t){var A=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,t,A);var n=function(e){for(var t=e.size(),A=new Int32Array(t),n=0;n<t;n++)A[n]=e.GetValue(n);return A}(A);return{int:this.metadataQuerier.GetIntEntry(e,t),string:this.metadataQuerier.GetStringEntry(e,t),double:this.metadataQuerier.GetDoubleEntry(e,t),intArray:n}}finally{this.draco.destroy(A)}}},{key:"_disableAttributeTransforms",value:function(e){var t,A=e.quantizedAttributes,n=void 0===A?[]:A,r=e.octahedronAttributes,i=void 0===r?[]:r,o=[].concat(Object(g.a)(n),Object(g.a)(i)),a=Object(s.a)(o);try{for(a.s();!(t=a.n()).done;){var c=t.value;this.decoder.SkipAttributeTransform(this.draco[c])}}catch(u){a.e(u)}finally{a.f()}}},{key:"_getQuantizationTransform",value:function(e,t){var A=this,n=t.quantizedAttributes,r=void 0===n?[]:n,i=e.attribute_type();if(r.map((function(e){return A.decoder[e]})).includes(i)){var o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits(),range:o.range(),min_values:new Float32Array([1,2,3]).map((function(e){return o.min_value(e)}))}}finally{this.draco.destroy(o)}}return null}},{key:"_getOctahedronTransform",value:function(e,t){var A=this,n=t.octahedronAttributes,r=void 0===n?[]:n,i=e.attribute_type();if(r.map((function(e){return A.decoder[e]})).includes(i)){var o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits()}}finally{this.draco.destroy(o)}}return null}}]),e}();var j=A(170),P=A(334),V=A(115),K={};function W(e){return X.apply(this,arguments)}function X(){return(X=Object(i.a)(r.a.mark((function e(t){var A,n,i=arguments;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=i.length>1&&void 0!==i[1]?i[1]:null,n=i.length>2&&void 0!==i[2]?i[2]:{},A&&(t=q(t,A,n)),K[t]=K[t]||z(t),e.next=6,K[t];case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function q(e,t,A){if(e.startsWith("http"))return e;var n=A.modules||{};return n[e]?n[e]:j.b?A.CDN?(Object(V.a)(A.CDN.startsWith("http")),"".concat(A.CDN,"/").concat(t,"@").concat("3.0.12","/dist/libs/").concat(e)):j.d?"../src/libs/".concat(e):"modules/".concat(t,"/src/libs/").concat(e):"modules/".concat(t,"/dist/libs/").concat(e)}function z(e){return $.apply(this,arguments)}function $(){return($=Object(i.a)(r.a.mark((function e(t){var A,n,i;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.endsWith("wasm")){e.next=7;break}return e.next=3,fetch(t);case 3:return A=e.sent,e.next=6,A.arrayBuffer();case 6:return e.abrupt("return",e.sent);case 7:if(j.b){e.next=14;break}if(e.t0=P.requireFromFile,!e.t0){e.next=13;break}return e.next=12,P.requireFromFile(t);case 12:e.t0=e.sent;case 13:return e.abrupt("return",e.t0);case 14:if(!j.d){e.next=16;break}return e.abrupt("return",importScripts(t));case 16:return e.next=18,fetch(t);case 18:return n=e.sent,e.next=21,n.text();case 21:return i=e.sent,e.abrupt("return",ee(i,t));case 23:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ee(e,t){if(!j.b)return P.requireFromString&&P.requireFromString(e,t);if(j.d)return eval.call(j.a,e),null;var A=document.createElement("script");A.id=t;try{A.appendChild(document.createTextNode(e))}catch(n){A.text=e}return document.body.appendChild(A),null}var te,Ae="https://www.gstatic.com/draco/versioned/decoders/".concat("1.4.1","/draco_decoder.js"),ne="https://www.gstatic.com/draco/versioned/decoders/".concat("1.4.1","/draco_wasm_wrapper.js"),re="https://www.gstatic.com/draco/versioned/decoders/".concat("1.4.1","/draco_decoder.wasm");"https://raw.githubusercontent.com/google/draco/".concat("1.4.1","/javascript/draco_encoder.js");function ie(e){return oe.apply(this,arguments)}function oe(){return(oe=Object(i.a)(r.a.mark((function e(t){var A;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=t.modules||{},te=A.draco3d?te||A.draco3d.createDecoderModule({}).then((function(e){return{draco:e}})):te||ae(t),e.next=4,te;case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ae(e){return se.apply(this,arguments)}function se(){return(se=Object(i.a)(r.a.mark((function e(t){var A,n,i,o;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=t.draco&&t.draco.decoderType,e.next="js"===e.t0?3:(e.t0,7);break;case 3:return e.next=5,W(Ae,"draco",t);case 5:return A=e.sent,e.abrupt("break",21);case 7:return e.t1=Promise,e.next=10,W(ne,"draco",t);case 10:return e.t2=e.sent,e.next=13,W(re,"draco",t);case 13:return e.t3=e.sent,e.t4=[e.t2,e.t3],e.next=17,e.t1.all.call(e.t1,e.t4);case 17:i=e.sent,o=Object(c.a)(i,2),A=o[0],n=o[1];case 21:return A=A||globalThis.DracoDecoderModule,e.next=24,ge(A,n);case 24:return e.abrupt("return",e.sent);case 25:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ge(e,t){var A={};return t&&(A.wasmBinary=t),new Promise((function(t){e(Object(o.a)({},A,{onModuleLoaded:function(e){return t({draco:e})}}))}))}A.d(t,"a",(function(){return ce}));var ce=Object(o.a)({},a,{parse:function(e,t){return ue.apply(this,arguments)}});function ue(){return(ue=Object(i.a)(r.a.mark((function e(t,A){var n,i,o;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ie(A);case 2:return n=e.sent,i=n.draco,o=new J(i),e.prev=5,e.abrupt("return",o.parseSync(t,null===A||void 0===A?void 0:A.draco));case 7:return e.prev=7,o.destroy(),e.finish(7);case 10:case"end":return e.stop()}}),e,null,[[5,,7,10]])})))).apply(this,arguments)}},function(e,t,A){"use strict";var n=A(2),r=A(1),i=A(4),o=A(18),a=A(528),s=A(108),g=A(26),c=A(428),u=A(1288),l=A(139),I=A(80),C=A(24),h=A(16),f=A(17),d=A(9),B=A(10),p=A(92),E=null;function Q(e,t){var A;return new e((A=e.BYTES_PER_ELEMENT*t,(!E||E.byteLength<A)&&(E=new ArrayBuffer(A)),E),0,t)}var y=A(132),v=A(405),m=A(406);function b(e){if(!e&&!Object(v.a)())return"Node";if(Object(m.a)(e))return"Electron";var t="undefined"!==typeof navigator?navigator:{},A=e||t.userAgent||"";if(A.indexOf("Edge")>-1)return"Edge";var n=-1!==A.indexOf("MSIE "),r=-1!==A.indexOf("Trident/");return n||r?"IE":y.b.chrome?"Chrome":y.b.safari?"Safari":y.b.mozInnerScreenX?"Firefox":"Unknown"}var w="elements must be GL.ELEMENT_ARRAY_BUFFER",S=function(e){Object(d.a)(A,e);var t=Object(B.a)(A);function A(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,A);var o=i.id||i.program&&i.program.id;return(n=t.call(this,e,Object.assign({},i,{id:o}))).buffer=null,n.bufferValue=null,n.isDefaultArray=i.isDefaultArray||!1,n.gl2=e,n.initialize(i),Object.seal(Object(C.a)(n)),n}return Object(i.a)(A,null,[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return!t.constantAttributeZero||(Object(o.j)(e)||"Chrome"===b())}},{key:"getDefaultArray",value:function(e){return e.luma=e.luma||{},e.luma.defaultVertexArray||(e.luma.defaultVertexArray=new A(e,{handle:null,isDefaultArray:!0})),e.luma.defaultVertexArray}},{key:"getMaxAttributes",value:function(e){return A.MAX_ATTRIBUTES=A.MAX_ATTRIBUTES||e.getParameter(34921),A.MAX_ATTRIBUTES}},{key:"setConstant",value:function(e,t,n){switch(n.constructor){case Float32Array:A._setConstantFloatArray(e,t,n);break;case Int32Array:A._setConstantIntArray(e,t,n);break;case Uint32Array:A._setConstantUintArray(e,t,n);break;default:Object(g.a)(!1)}}}]),Object(i.a)(A,[{key:"delete",value:function(){return Object(f.a)(Object(h.a)(A.prototype),"delete",this).call(this),this.buffer&&this.buffer.delete(),this}},{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setProps(e)}},{key:"setProps",value:function(e){return this}},{key:"setElementBuffer",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Object(g.a)(!t||34963===t.target,w),this.bind((function(){e.gl.bindBuffer(34963,t?t.handle:null)})),this}},{key:"setBuffer",value:function(e,t,A){if(34963===t.target)return this.setElementBuffer(t,A);var n=A.size,r=A.type,i=A.stride,a=A.offset,s=A.normalized,c=A.integer,u=A.divisor,l=this.gl,I=this.gl2;return e=Number(e),this.bind((function(){l.bindBuffer(34962,t.handle),c?(Object(g.a)(Object(o.j)(l)),I.vertexAttribIPointer(e,n,r,i,a)):l.vertexAttribPointer(e,n,r,s,i,a),l.enableVertexAttribArray(e),I.vertexAttribDivisor(e,u||0)})),this}},{key:"enable",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=!n&&0===e&&!A.isSupported(this.gl,{constantAttributeZero:!0});return r||(e=Number(e),this.bind((function(){return n?t.gl.enableVertexAttribArray(e):t.gl.disableVertexAttribArray(e)}))),this}},{key:"getConstantBuffer",value:function(e,t){var A=this._normalizeConstantArrayValue(t),n=A.byteLength*e,r=A.length*e,i=!this.buffer;if(this.buffer=this.buffer||new I.a(this.gl,n),i=(i=i||this.buffer.reallocate(n))||!this._compareConstantArrayValues(A,this.bufferValue)){var o=Q(t.constructor,r);!function(e){for(var t=e.target,A=e.source,n=e.start,r=void 0===n?0:n,i=e.count,o=void 0===i?1:i,a=A.length,s=o*a,g=0,c=r;g<a;g++)t[c++]=A[g];for(;g<s;)g<s-g?(t.copyWithin(r+g,r,r+g),g*=2):(t.copyWithin(r+g,r,r+s-g),g=s)}({target:o,source:A,start:0,count:r}),this.buffer.subData(o),this.bufferValue=t}return this.buffer}},{key:"_normalizeConstantArrayValue",value:function(e){return Array.isArray(e)?new Float32Array(e):e}},{key:"_compareConstantArrayValues",value:function(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(var A=0;A<e.length;++A)if(e[A]!==t[A])return!1;return!0}},{key:"_createHandle",value:function(){return this.gl.createVertexArray()}},{key:"_deleteHandle",value:function(e){return this.gl2.deleteVertexArray(e),[this.elements]}},{key:"_bindHandle",value:function(e){this.gl2.bindVertexArray(e)}},{key:"_getParameter",value:function(e,t){var A=this,n=t.location;return Object(g.a)(Number.isFinite(n)),this.bind((function(){switch(e){case 34373:return A.gl.getVertexAttribOffset(n,e);default:return A.gl.getVertexAttrib(n,e)}}))}},{key:"MAX_ATTRIBUTES",get:function(){return A.getMaxAttributes(this.gl)}}],[{key:"_setConstantFloatArray",value:function(e,t,A){switch(A.length){case 1:e.vertexAttrib1fv(t,A);break;case 2:e.vertexAttrib2fv(t,A);break;case 3:e.vertexAttrib3fv(t,A);break;case 4:e.vertexAttrib4fv(t,A);break;default:Object(g.a)(!1)}}},{key:"_setConstantIntArray",value:function(e,t,A){switch(Object(g.a)(Object(o.j)(e)),A.length){case 1:e.vertexAttribI1iv(t,A);break;case 2:e.vertexAttribI2iv(t,A);break;case 3:e.vertexAttribI3iv(t,A);break;case 4:e.vertexAttribI4iv(t,A);break;default:Object(g.a)(!1)}}},{key:"_setConstantUintArray",value:function(e,t,A){switch(Object(g.a)(Object(o.j)(e)),A.length){case 1:e.vertexAttribI1uiv(t,A);break;case 2:e.vertexAttribI2uiv(t,A);break;case 3:e.vertexAttribI3uiv(t,A);break;case 4:e.vertexAttribI4uiv(t,A);break;default:Object(g.a)(!1)}}}]),A}(p.a),F=A(407),R=/^(.+)__LOCATION_([0-9]+)$/,D=["setBuffers","setGeneric","clearBindings","setLocations","setGenericValues","setDivisor","enable","disable"],G=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e);var n=A.id||A.program&&A.program.id;this.id=n,this.gl=t,this.configuration=null,this.elements=null,this.elementsAccessor=null,this.values=null,this.accessors=null,this.unused=null,this.drawParams=null,this.buffer=null,this.attributes={},this.vertexArrayObject=new S(t),Object(F.a)(this,"VertexArray","v6.0",D),this.initialize(A),Object.seal(this)}return Object(i.a)(e,[{key:"delete",value:function(){this.buffer&&this.buffer.delete(),this.vertexArrayObject.delete()}},{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.reset(),this.configuration=null,this.bindOnUse=!1,this.setProps(e)}},{key:"reset",value:function(){this.elements=null,this.elementsAccessor=null;var e=this.vertexArrayObject.MAX_ATTRIBUTES;return this.values=new Array(e).fill(null),this.accessors=new Array(e).fill(null),this.unused={},this.drawParams=null,this}},{key:"setProps",value:function(e){return"program"in e&&(this.configuration=e.program&&e.program.configuration),"configuration"in e&&(this.configuration=e.configuration),"attributes"in e&&this.setAttributes(e.attributes),"elements"in e&&this.setElementBuffer(e.elements),"bindOnUse"in e&&(e=e.bindOnUse),this}},{key:"clearDrawParams",value:function(){this.drawParams=null}},{key:"getDrawParams",value:function(){return this.drawParams=this.drawParams||this._updateDrawParams(),this.drawParams}},{key:"setAttributes",value:function(e){var t=this;return Object.assign(this.attributes,e),this.vertexArrayObject.bind((function(){for(var A in e){var n=e[A];t._setAttribute(A,n)}t.gl.bindBuffer(34962,null)})),this}},{key:"setElementBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.elements=e,this.elementsAccessor=t,this.clearDrawParams(),this.vertexArrayObject.setElementBuffer(e,t),this}},{key:"setBuffer",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(34963===t.target)return this.setElementBuffer(t,A);var n=this._resolveLocationAndAccessor(e,t,t.accessor,A),r=n.location,i=n.accessor;return r>=0&&(this.values[r]=t,this.accessors[r]=i,this.clearDrawParams(),this.vertexArrayObject.setBuffer(r,t,i)),this}},{key:"setConstant",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this._resolveLocationAndAccessor(e,t,Object.assign({size:t.length},A)),r=n.location,i=n.accessor;return r>=0&&(t=this.vertexArrayObject._normalizeConstantArrayValue(t),this.values[r]=t,this.accessors[r]=i,this.clearDrawParams(),this.vertexArrayObject.enable(r,!1)),this}},{key:"unbindBuffers",value:function(){var e=this;return this.vertexArrayObject.bind((function(){e.elements&&e.vertexArrayObject.setElementBuffer(null),e.buffer=e.buffer||new I.a(e.gl,{accessor:{size:4}});for(var t=0;t<e.vertexArrayObject.MAX_ATTRIBUTES;t++)e.values[t]instanceof I.a&&(e.gl.disableVertexAttribArray(t),e.gl.bindBuffer(34962,e.buffer.handle),e.gl.vertexAttribPointer(t,1,5126,!1,0,0))})),this}},{key:"bindBuffers",value:function(){var e=this;return this.vertexArrayObject.bind((function(){e.elements&&e.setElementBuffer(e.elements);for(var t=0;t<e.vertexArrayObject.MAX_ATTRIBUTES;t++){var A=e.values[t];A instanceof I.a&&e.setBuffer(t,A)}})),this}},{key:"bindForDraw",value:function(e,t,A){var n,r=this;return this.vertexArrayObject.bind((function(){r._setConstantAttributes(e,t),n=A()})),n}},{key:"_resolveLocationAndAccessor",value:function(e,t,A,n){var r=this,i={location:-1,accessor:null},a=this._getAttributeIndex(e),s=a.location,c=a.name;if(!Number.isFinite(s)||s<0)return this.unused[e]=t,o.k.once(3,(function(){return"unused value ".concat(e," in ").concat(r.id)}))(),i;var u=this._getAttributeInfo(c||s);if(!u)return i;var I=this.accessors[s]||{},C=l.a.resolve(u.accessor,I,A,n),h=C.size,f=C.type;return Object(g.a)(Number.isFinite(h)&&Number.isFinite(f)),{location:s,accessor:C}}},{key:"_getAttributeInfo",value:function(e){return this.configuration&&this.configuration.getAttributeInfo(e)}},{key:"_getAttributeIndex",value:function(e){var t=Number(e);if(Number.isFinite(t))return{location:t};var A=R.exec(e),n=A?A[1]:e,r=A?Number(A[2]):0;return this.configuration?{location:this.configuration.getAttributeLocation(n)+r,name:n}:{location:-1}}},{key:"_setAttribute",value:function(e,t){if(t instanceof I.a)this.setBuffer(e,t);else if(Array.isArray(t)&&t.length&&t[0]instanceof I.a){var A=t[0],n=t[1];this.setBuffer(e,A,n)}else if(ArrayBuffer.isView(t)||Array.isArray(t)){var r=t;this.setConstant(e,r)}else{if(!(t.buffer instanceof I.a))throw new Error("VertexArray: attributes must be Buffers or constants (i.e. typed array)");var i=t;this.setBuffer(e,i.buffer,i)}}},{key:"_setConstantAttributes",value:function(e,t){var A=Math.max(0|e,0|t),n=this.values[0];ArrayBuffer.isView(n)&&this._setConstantAttributeZero(n,A);for(var r=1;r<this.vertexArrayObject.MAX_ATTRIBUTES;r++)n=this.values[r],ArrayBuffer.isView(n)&&this._setConstantAttribute(r,n)}},{key:"_setConstantAttributeZero",value:function(e,t){if(S.isSupported(this.gl,{constantAttributeZero:!0}))this._setConstantAttribute(0,e);else{var A=this.vertexArrayObject.getConstantBuffer(t,e);this.vertexArrayObject.setBuffer(0,A,this.accessors[0])}}},{key:"_setConstantAttribute",value:function(e,t){S.setConstant(this.gl,e,t)}},{key:"_updateDrawParams",value:function(){for(var e={isIndexed:!1,isInstanced:!1,indexCount:1/0,vertexCount:1/0,instanceCount:1/0},t=0;t<this.vertexArrayObject.MAX_ATTRIBUTES;t++)this._updateDrawParamsForLocation(e,t);return this.elements&&(e.elementCount=this.elements.getElementCount(this.elements.accessor),e.isIndexed=!0,e.indexType=this.elementsAccessor.type||this.elements.accessor.type,e.indexOffset=this.elementsAccessor.offset||0),e.indexCount===1/0&&(e.indexCount=0),e.vertexCount===1/0&&(e.vertexCount=0),e.instanceCount===1/0&&(e.instanceCount=0),e}},{key:"_updateDrawParamsForLocation",value:function(e,t){var A=this.values[t],n=this.accessors[t];if(A){var r=n.divisor>0;if(e.isInstanced=e.isInstanced||r,A instanceof I.a){var i=A;if(r){var o=i.getVertexCount(n);e.instanceCount=Math.min(e.instanceCount,o)}else{var a=i.getVertexCount(n);e.vertexCount=Math.min(e.vertexCount,a)}}}}},{key:"setElements",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o.k.deprecated("setElements","setElementBuffer")(),this.setElementBuffer(e,t)}}]),e}(),k=A(1246),x=A(109),N=A(175);function U(e,t){for(var A=t.maxElts,n=void 0===A?16:A,r=t.size,i=void 0===r?1:r,o="[",a=0;a<e.length&&a<n;++a)a>0&&(o+=",".concat(a%i===0?" ":"")),o+=_(e[a],t);var s=e.length>n?"...":"]";return"".concat(o).concat(s)}function _(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=1e-16,n=t.isInteger,r=void 0!==n&&n;if(Array.isArray(e)||ArrayBuffer.isView(e))return U(e,t);if(!Number.isFinite(e))return String(e);if(Math.abs(e)<A)return r?"0":"0.";if(r)return e.toFixed(0);if(Math.abs(e)>100&&Math.abs(e)<1e4)return e.toFixed(0);var i=e.toPrecision(2),o=i.indexOf(".0");return o===i.length-2?i.slice(0,-1):i}function M(e,t,A,r){var i,o,a=e.gl;if(!t)return o={},Object(n.a)(o,r,"null"),Object(n.a)(o,"Format ","N/A"),o;var s,g,c,u="NOT PROVIDED",l=1,C=0,h=0;if(A&&(u=A.type,l=A.size,s=-1!==(u=String(u).replace("Array","")).indexOf("nt")),t instanceof I.a){var f,d,B=t,p=B.getDebugData(),E=p.data;if(g=p.changed?"*":"",c=E,C=(h=B.byteLength)/E.BYTES_PER_ELEMENT/l,A){var Q=A.divisor>0;d="".concat(Q?"I ":"P "," ").concat(C," (x").concat(l,"=").concat(h," bytes ").concat(Object(x.a)(a,u),")")}else s=!0,d="".concat(h," bytes");return f={},Object(n.a)(f,r,"".concat(g).concat(_(c,{size:l,isInteger:s}))),Object(n.a)(f,"Format ",d),f}return c=t,l=t.length,s=-1!==(u=String(t.constructor.name).replace("Array","")).indexOf("nt"),i={},Object(n.a)(i,r,"".concat(_(c,{size:l,isInteger:s})," (constant)")),Object(n.a)(i,"Format ","".concat(l,"x").concat(u," (constant)")),i}function O(e,t){var A=t.type,n=t.size,r=Object(N.b)(A,n);return r?"".concat(e," (").concat(r.name,")"):e}var L=A(6);function T(e){var t=e.header,A=void 0===t?"Uniforms":t,r=e.program,i=e.uniforms,o=e.undefinedOnly,a=void 0!==o&&o;Object(g.a)(r);var s,c=r._uniformSetters,u={},l=Object.keys(c).sort(),I=0,C=Object(L.a)(l);try{for(C.s();!(s=C.n()).done;){var h=s.value;h.match(".*_.*")||h.match(".*Matrix")||Z({table:u,header:A,uniforms:i,uniformName:h,undefinedOnly:a})&&I++}}catch(w){C.e(w)}finally{C.f()}var f,d=Object(L.a)(l);try{for(d.s();!(f=d.n()).done;){var B=f.value;B.match(".*Matrix")&&Z({table:u,header:A,uniforms:i,uniformName:B,undefinedOnly:a})&&I++}}catch(w){d.e(w)}finally{d.f()}var p,E=Object(L.a)(l);try{for(E.s();!(p=E.n()).done;){var Q=p.value;u[Q]||Z({table:u,header:A,uniforms:i,uniformName:Q,undefinedOnly:a})&&I++}}catch(w){E.e(w)}finally{E.f()}var y=0,v={};if(!a)for(var m in i){var b=i[m];u[m]||(y++,v[m]=Object(n.a)({Type:"NOT USED: ".concat(b)},A,_(b)))}return{table:u,count:I,unusedTable:v,unusedCount:y}}function Z(e){var t,A=e.table,r=e.header,i=e.uniforms,o=e.uniformName,a=e.undefinedOnly,s=i[o],g=function(e){return void 0!==e&&null!==e}(s);return(!a||!g)&&(A[o]=(t={},Object(n.a)(t,r,g?_(s):"N/A"),Object(n.a)(t,"Uniform Type",g?s:"NOT PROVIDED"),t),!0)}function H(e){var t=e.accessor,A=t.type,n=t.size,r=Object(N.b)(A,n);return r?"".concat(r.name," ").concat(e.name):e.name}var Y=A(7),J={POSITION:"positions",NORMAL:"normals",COLOR_0:"colors",TEXCOORD_0:"texCoords",TEXCOORD_1:"texCoords1",TEXCOORD_2:"texCoords2"};function j(e,t){var A=(t||{}).attributeMap,n=void 0===A?J:A;return n&&n[e]||e}function P(e,t){var A;switch(e){case"texCoords":case"texCoord1":case"texCoord2":case"texCoord3":A="uvs";break;case"vertices":case"positions":case"normals":case"pickingColors":A="vectors"}switch(A){case"vectors":t.size=t.size||3;break;case"uvs":t.size=t.size||2}Object(g.a)(Number.isFinite(t.size),"attribute ".concat(e," needs size"))}A.d(t,"a",(function(){return W}));var V=function(){},K={},W=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e);var n=A.id,i=void 0===n?Object(s.c)("model"):n;Object(g.a)(Object(o.i)(t)),this.id=i,this.gl=t,this.id=A.id||Object(s.c)("Model"),this.lastLogTime=0,this.animated=!1,this.initialize(A)}return Object(i.a)(e,[{key:"initialize",value:function(e){this.props={},this.programManager=e.programManager||a.a.getDefaultProgramManager(this.gl),this._programManagerState=-1,this._managedProgram=!1;var t=e.program,A=void 0===t?null:t,n=e.vs,r=e.fs,i=e.modules,o=e.defines,s=e.inject,c=e.varyings,u=e.bufferMode,l=e.transpileToGLSL100;this.programProps={program:A,vs:n,fs:r,modules:i,defines:o,inject:s,varyings:c,bufferMode:u,transpileToGLSL100:l},this.program=null,this.vertexArray=null,this._programDirty=!0,this.userData={},this.needsRedraw=!0,this._attributes={},this.attributes={},this.uniforms={},this.pickable=!0,this._checkProgram(),this.setUniforms(Object.assign({},this.getModuleUniforms(e.moduleSettings))),this.drawMode=void 0!==e.drawMode?e.drawMode:4,this.vertexCount=e.vertexCount||0,this.geometryBuffers={},this.isInstanced=e.isInstanced||e.instanced||e.instanceCount>0,this._setModelProps(e),this.geometry={},Object(g.a)(void 0!==this.drawMode&&Number.isFinite(this.vertexCount),"Model needs drawMode and vertexCount")}},{key:"setProps",value:function(e){this._setModelProps(e)}},{key:"delete",value:function(){for(var e in this._attributes)this._attributes[e]!==this.attributes[e]&&this._attributes[e].delete();this._managedProgram&&(this.programManager.release(this.program),this._managedProgram=!1),this.vertexArray.delete(),this._deleteGeometryBuffers()}},{key:"getDrawMode",value:function(){return this.drawMode}},{key:"getVertexCount",value:function(){return this.vertexCount}},{key:"getInstanceCount",value:function(){return this.instanceCount}},{key:"getAttributes",value:function(){return this.attributes}},{key:"getProgram",value:function(){return this.program}},{key:"setProgram",value:function(e){var t=e.program,A=e.vs,n=e.fs,r=e.modules,i=e.defines,o=e.inject,a=e.varyings,s=e.bufferMode,g=e.transpileToGLSL100;this.programProps={program:t,vs:A,fs:n,modules:r,defines:i,inject:o,varyings:a,bufferMode:s,transpileToGLSL100:g},this._programDirty=!0}},{key:"getUniforms",value:function(){return this.uniforms}},{key:"setDrawMode",value:function(e){return this.drawMode=e,this}},{key:"setVertexCount",value:function(e){return Object(g.a)(Number.isFinite(e)),this.vertexCount=e,this}},{key:"setInstanceCount",value:function(e){return Object(g.a)(Number.isFinite(e)),this.instanceCount=e,this}},{key:"setGeometry",value:function(e){return this.drawMode=e.drawMode,this.vertexCount=e.getVertexCount(),this._deleteGeometryBuffers(),this.geometryBuffers=function(e,t,A){var n={},r=t.indices;for(var i in t.attributes){var o=t.attributes[i],a=j(i,A);if("indices"===i)r=o;else if(o.constant)n[a]=o.value;else{var s=o.value,c=Object(Y.a)({},o);delete c.value,n[a]=[new I.a(e,s),c],P(i,c)}}if(r){var u=r.value||r;Object(g.a)(u instanceof Uint16Array||u instanceof Uint32Array,'attribute array for "indices" must be of integer type');var l={size:1,isIndexed:void 0===r.isIndexed||r.isIndexed};n.indices=[new I.a(e,{data:u,target:34963}),l]}return n}(this.gl,e),this.vertexArray.setAttributes(this.geometryBuffers),this}},{key:"setAttributes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Object(s.a)(e))return this;var t={};for(var A in e){var n=e[A];t[A]=n.getValue?n.getValue():n}return this.vertexArray.setAttributes(t),this}},{key:"setUniforms",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.assign(this.uniforms,e),this}},{key:"getModuleUniforms",value:function(e){this._checkProgram();var t=this.programManager.getUniforms(this.program);return t?t(e):{}}},{key:"updateModuleSettings",value:function(e){var t=this.getModuleUniforms(e||{});return this.setUniforms(t)}},{key:"clear",value:function(e){return Object(c.a)(this.program.gl,e),this}},{key:"draw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._checkProgram();var t,A=e.moduleSettings,n=void 0===A?null:A,r=e.framebuffer,i=e.uniforms,a=void 0===i?{}:i,s=e.attributes,g=void 0===s?{}:s,c=e.transformFeedback,u=void 0===c?this.transformFeedback:c,l=e.parameters,I=void 0===l?{}:l,C=e.vertexArray,h=void 0===C?this.vertexArray:C;this.setAttributes(g),this.updateModuleSettings(n),this.setUniforms(a),o.k.priority>=2&&(t=this._logDrawCallStart(2));var f=this.vertexArray.getDrawParams(),d=this.props,B=d.isIndexed,p=void 0===B?f.isIndexed:B,E=d.indexType,Q=void 0===E?f.indexType:E,y=d.indexOffset,v=void 0===y?f.indexOffset:y,m=d.vertexArrayInstanced,b=void 0===m?f.isInstanced:m;b&&!this.isInstanced&&o.k.warn("Found instanced attributes on non-instanced model",this.id)();var w=this.isInstanced,S=this.instanceCount,F=this.props,R=F.onBeforeRender,D=void 0===R?V:R,G=F.onAfterRender,k=void 0===G?V:G;D(),this.program.setUniforms(this.uniforms);var x=this.program.draw(Object.assign(K,e,{logPriority:t,uniforms:null,framebuffer:r,parameters:I,drawMode:this.getDrawMode(),vertexCount:this.getVertexCount(),vertexArray:h,transformFeedback:u,isIndexed:p,indexType:Q,isInstanced:w,instanceCount:S,offset:p?v:0}));return k(),o.k.priority>=2&&this._logDrawCallEnd(t,h,r),x}},{key:"transform",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.discard,A=void 0===t||t,r=e.feedbackBuffers,i=e.unbindModels,o=void 0===i?[]:i,a=e.parameters;r&&this._setFeedbackBuffers(r),A&&(a=Object.assign({},a,Object(n.a)({},35977,A))),o.forEach((function(e){return e.vertexArray.unbindBuffers()}));try{this.draw(Object.assign({},e,{parameters:a}))}finally{o.forEach((function(e){return e.vertexArray.bindBuffers()}))}return this}},{key:"render",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o.k.warn("Model.render() is deprecated. Use Model.setUniforms() and Model.draw()")(),this.setUniforms(e).draw()}},{key:"_setModelProps",value:function(e){Object.assign(this.props,e),"uniforms"in e&&this.setUniforms(e.uniforms),"pickable"in e&&(this.pickable=e.pickable),"instanceCount"in e&&(this.instanceCount=e.instanceCount),"geometry"in e&&this.setGeometry(e.geometry),"attributes"in e&&this.setAttributes(e.attributes),"_feedbackBuffers"in e&&this._setFeedbackBuffers(e._feedbackBuffers)}},{key:"_checkProgram",value:function(){if(this._programDirty||this.programManager.stateHash!==this._programManagerState){var e=this.programProps.program;if(e)this._managedProgram=!1;else{var t=this.programProps,A=t.vs,n=t.fs,r=t.modules,i=t.inject,o=t.defines,a=t.varyings,s=t.bufferMode,c=t.transpileToGLSL100;e=this.programManager.get({vs:A,fs:n,modules:r,inject:i,defines:o,varyings:a,bufferMode:s,transpileToGLSL100:c}),this.program&&this._managedProgram&&this.programManager.release(this.program),this._programManagerState=this.programManager.stateHash,this._managedProgram=!0}Object(g.a)(e instanceof u.a,"Model needs a program"),this._programDirty=!1,e!==this.program&&(this.program=e,this.vertexArray?this.vertexArray.setProps({program:this.program,attributes:this.vertexArray.attributes}):this.vertexArray=new G(this.gl,{program:this.program}),this.setUniforms(Object.assign({},this.getModuleUniforms())))}}},{key:"_deleteGeometryBuffers",value:function(){for(var e in this.geometryBuffers){var t=this.geometryBuffers[e][0]||this.geometryBuffers[e];t instanceof I.a&&t.delete()}}},{key:"_setAnimationProps",value:function(e){this.animated&&Object(g.a)(e,"Model.draw(): animated uniforms but no animationProps")}},{key:"_setFeedbackBuffers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Object(s.a)(e))return this;var t=this.program.gl;return this.transformFeedback=this.transformFeedback||new k.a(t,{program:this.program}),this.transformFeedback.setBuffers(e),this}},{key:"_logDrawCallStart",value:function(e){var t=e>3?0:1e4;if(!(Date.now()-this.lastLogTime<t))return this.lastLogTime=Date.now(),o.k.group(2,">>> DRAWING MODEL ".concat(this.id),{collapsed:o.k.level<=2})(),e}},{key:"_logDrawCallEnd",value:function(e,t,A,r){if(void 0!==e){var i=function(e){var t=e.vertexArray,A=e.header,n=void 0===A?"Attributes":A;if(!t.configuration)return{};var r={};t.elements&&(r.ELEMENT_ARRAY_BUFFER=M(t,t.elements,null,n));var i=t.values;for(var o in i){var a=t._getAttributeInfo(o);if(a){var s="".concat(o,": ").concat(a.name),g=t.accessors[a.location];g&&(s="".concat(o,": ").concat(O(a.name,g))),r[s]=M(t,i[o],g,n)}}return r}({vertexArray:t,header:"".concat(this.id," attributes"),attributes:this._attributes}),a=T({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,A)}),s=a.table,g=a.unusedTable,c=a.unusedCount,u=T({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,A),undefinedOnly:!0}),l=u.table;u.count>0&&o.k.log("MISSING UNIFORMS",Object.keys(l))(),c>0&&o.k.log("UNUSED UNIFORMS",Object.keys(g))();var I=function(e){var t,A={},r="Accessors for ".concat(e.id),i=Object(L.a)(e.attributeInfos);try{for(i.s();!(t=i.n()).done;){var o=t.value;if(o){var a=H(o);A["in ".concat(a)]=Object(n.a)({},r,JSON.stringify(o.accessor))}}}catch(l){i.e(l)}finally{i.f()}var s,g=Object(L.a)(e.varyingInfos);try{for(g.s();!(s=g.n()).done;){var c=s.value;if(c){var u=H(c);A["out ".concat(u)]=Object(n.a)({},r,JSON.stringify(c.accessor))}}}catch(l){g.e(l)}finally{g.f()}return A}(this.vertexArray.configuration);o.k.table(e,i)(),o.k.table(e,s)(),o.k.table(e+1,I)(),r&&r.log({logLevel:2,message:"Rendered to ".concat(r.id)}),o.k.groupEnd(2,">>> DRAWING MODEL ".concat(this.id))()}}}]),e}()},function(e,t,A){"use strict";var n=A(1),r=A(4),i=A(314),o=function(){function e(t,A){Object(n.a)(this,e),this.name=t,this.type=A,this.sampleSize=1,this.reset()}return Object(r.a)(e,[{key:"setSampleSize",value:function(e){return this.sampleSize=e,this}},{key:"incrementCount",value:function(){return this.addCount(1),this}},{key:"decrementCount",value:function(){return this.subtractCount(1),this}},{key:"addCount",value:function(e){return this._count+=e,this._samples++,this._checkSampling(),this}},{key:"subtractCount",value:function(e){return this._count-=e,this._samples++,this._checkSampling(),this}},{key:"addTime",value:function(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}},{key:"timeStart",value:function(){return this._startTime=Object(i.a)(),this._timerPending=!0,this}},{key:"timeEnd",value:function(){return this._timerPending?(this.addTime(Object(i.a)()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}},{key:"getSampleAverageCount",value:function(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}},{key:"getSampleAverageTime",value:function(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}},{key:"getSampleHz",value:function(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}},{key:"getAverageCount",value:function(){return this.samples>0?this.count/this.samples:0}},{key:"getAverageTime",value:function(){return this.samples>0?this.time/this.samples:0}},{key:"getHz",value:function(){return this.time>0?this.samples/(this.time/1e3):0}},{key:"reset",value:function(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}},{key:"_checkSampling",value:function(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}}]),e}(),a=function(){function e(t){var A=t.id,r=t.stats;Object(n.a)(this,e),this.id=A,this.stats={},this._initializeStats(r),Object.seal(this)}return Object(r.a)(e,[{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"count";return this._getOrCreate({name:e,type:t})}},{key:"reset",value:function(){for(var e in this.stats)this.stats[e].reset();return this}},{key:"forEach",value:function(e){for(var t in this.stats)e(this.stats[t])}},{key:"getTable",value:function(){var e={};return this.forEach((function(t){e[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}})),e}},{key:"_initializeStats",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.forEach((function(t){return e._getOrCreate(t)}))}},{key:"_getOrCreate",value:function(e){if(!e||!e.name)return null;var t=e.name,A=e.type;return this.stats[t]||(this.stats[t]=e instanceof o?e:new o(t,A)),this.stats[t]}},{key:"size",get:function(){return Object.keys(this.stats).length}}]),e}();A.d(t,"a",(function(){return a}))},function(e,t,A){"use strict";function n(e){return 180*(e%(2*Math.PI))/Math.PI}function r(e){return e%360*Math.PI/180}function i(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function o(e,t){var A=r(e[1]),i=r(t[1]),o=r(t[0]-e[0]);o>Math.PI&&(o-=2*Math.PI),o<-Math.PI&&(o+=2*Math.PI);var a=Math.log(Math.tan(i/2+Math.PI/4)/Math.tan(A/2+Math.PI/4));return(n(Math.atan2(o,a))+360)%360}t.a=function(e,t,A){var n;return void 0===A&&(A={}),(n=A.final?o(i(t),i(e)):o(i(e),i(t)))>180?-(360-n):n}},function(e,t,A){"use strict";var n=A(93),r=A.n(n),i=A(98),o=A.n(i),a=A(278),s=A.n(a),g=A(279),c=A.n(g),u=A(280),l=A.n(u),I=A(281),C=A.n(I),h=A(0),f=A.n(h),d=A(13),B=A.n(d),p=A(61),E=A.n(p),Q=A(237),y=A.n(Q),v=A(229),m=A(100),b=A(328),w=A(52),S=function(e){function t(e){s()(this,t);var A=l()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return A.onNodeDragStart=function(e,t){var n=A.state.expandedKeys,r=A.props.onDragStart,i=t.props,o=i.eventKey,a=i.children;A.dragNode=t,A.setState({dragNodesKeys:Object(w.j)(a,t),expandedKeys:Object(w.b)(n,o)}),r&&r({event:e,node:t})},A.onNodeDragEnter=function(e,t){var n=A.state.expandedKeys,r=A.props.onDragEnter,i=t.props,o=i.pos,a=i.eventKey;if(A.dragNode){var s=Object(w.c)(e,t);A.dragNode.props.eventKey!==a||0!==s?setTimeout((function(){A.setState({dragOverNodeKey:a,dropPosition:s}),A.delayedDragEnterLogic||(A.delayedDragEnterLogic={}),Object.keys(A.delayedDragEnterLogic).forEach((function(e){clearTimeout(A.delayedDragEnterLogic[e])})),A.delayedDragEnterLogic[o]=setTimeout((function(){var i=Object(w.a)(n,a);"expandedKeys"in A.props||A.setState({expandedKeys:i}),r&&r({event:e,node:t,expandedKeys:i})}),400)}),0):A.setState({dragOverNodeKey:"",dropPosition:null})}},A.onNodeDragOver=function(e,t){var n=A.props.onDragOver,r=t.props.eventKey;if(A.dragNode&&r===A.state.dragOverNodeKey){var i=Object(w.c)(e,t);if(i===A.state.dropPosition)return;A.setState({dropPosition:i})}n&&n({event:e,node:t})},A.onNodeDragLeave=function(e,t){var n=A.props.onDragLeave;A.setState({dragOverNodeKey:""}),n&&n({event:e,node:t})},A.onNodeDragEnd=function(e,t){var n=A.props.onDragEnd;A.setState({dragOverNodeKey:""}),n&&n({event:e,node:t}),A.dragNode=null},A.onNodeDrop=function(e,t){var n=A.state,r=n.dragNodesKeys,i=void 0===r?[]:r,o=n.dropPosition,a=A.props.onDrop,s=t.props,g=s.eventKey,c=s.pos;if(A.setState({dragOverNodeKey:""}),-1===i.indexOf(g)){var u=Object(w.o)(c),l={event:e,node:t,dragNode:A.dragNode,dragNodesKeys:i.slice(),dropPosition:o+Number(u[u.length-1])};0!==o&&(l.dropToGap=!0),a&&a(l),A.dragNode=null}else y()(!1,"Can not drop to dragNode(include it's children node)")},A.onNodeClick=function(e,t){var n=A.props.onClick;n&&n(e,t)},A.onNodeDoubleClick=function(e,t){var n=A.props.onDoubleClick;n&&n(e,t)},A.onNodeSelect=function(e,t){var n=A.state.selectedKeys,r=A.state.keyEntities,i=A.props,o=i.onSelect,a=i.multiple,s=t.props,g=s.selected,c=s.eventKey,u=!g,l=(n=u?a?Object(w.a)(n,c):[c]:Object(w.b)(n,c)).map((function(e){var t=r[e];return t?t.node:null})).filter((function(e){return e}));(A.setUncontrolledState({selectedKeys:n}),o)&&o(n,{event:"select",selected:u,node:t,selectedNodes:l,nativeEvent:e.nativeEvent})},A.onNodeCheck=function(e,t,n){var r=A.state,i=r.keyEntities,o=r.checkedKeys,a=r.halfCheckedKeys,s=A.props,g=s.checkStrictly,c=s.onCheck,u=t.props.eventKey,l=void 0,I={event:"check",node:t,checked:n,nativeEvent:e.nativeEvent};if(g){var C=n?Object(w.a)(o,u):Object(w.b)(o,u);l={checked:C,halfChecked:Object(w.b)(a,u)},I.checkedNodes=C.map((function(e){return i[e]})).filter((function(e){return e})).map((function(e){return e.node})),A.setUncontrolledState({checkedKeys:C})}else{var h=Object(w.e)([u],n,i,{checkedKeys:o,halfCheckedKeys:a}),f=h.checkedKeys,d=h.halfCheckedKeys;l=f,I.checkedNodes=[],I.checkedNodesPositions=[],I.halfCheckedKeys=d,f.forEach((function(e){var t=i[e];if(t){var A=t.node,n=t.pos;I.checkedNodes.push(A),I.checkedNodesPositions.push({node:A,pos:n})}})),A.setUncontrolledState({checkedKeys:f,halfCheckedKeys:d})}c&&c(l,I)},A.onNodeLoad=function(e){return new Promise((function(t){A.setState((function(n){var r=n.loadedKeys,i=void 0===r?[]:r,o=n.loadingKeys,a=void 0===o?[]:o,s=A.props,g=s.loadData,c=s.onLoad,u=e.props.eventKey;return g&&-1===i.indexOf(u)&&-1===a.indexOf(u)?(g(e).then((function(){var n=Object(w.a)(A.state.loadedKeys,u),r=Object(w.b)(A.state.loadingKeys,u);c&&c(n,{event:"load",node:e});A.setUncontrolledState({loadedKeys:n}),A.setState({loadingKeys:r}),t()})),{loadingKeys:Object(w.a)(a,u)}):{}}))}))},A.onNodeExpand=function(e,t){var n=A.state.expandedKeys,r=A.props,i=r.onExpand,o=r.loadData,a=t.props,s=a.eventKey,g=a.expanded,c=n.indexOf(s),u=!g;if(y()(g&&-1!==c||!g&&-1===c,"Expand state not sync with index check"),n=u?Object(w.a)(n,s):Object(w.b)(n,s),A.setUncontrolledState({expandedKeys:n}),i&&i(n,{node:t,expanded:u,nativeEvent:e.nativeEvent}),u&&o){var l=A.onNodeLoad(t);return l?l.then((function(){A.setUncontrolledState({expandedKeys:n})})):null}return null},A.onNodeMouseEnter=function(e,t){var n=A.props.onMouseEnter;n&&n({event:e,node:t})},A.onNodeMouseLeave=function(e,t){var n=A.props.onMouseLeave;n&&n({event:e,node:t})},A.onNodeContextMenu=function(e,t){var n=A.props.onRightClick;n&&(e.preventDefault(),n({event:e,node:t}))},A.setUncontrolledState=function(e){var t=!1,n={};Object.keys(e).forEach((function(r){r in A.props||(t=!0,n[r]=e[r])})),t&&A.setState(n)},A.registerTreeNode=function(e,t){t?A.domTreeNodes[e]=t:delete A.domTreeNodes[e]},A.isKeyChecked=function(e){var t=A.state.checkedKeys;return-1!==(void 0===t?[]:t).indexOf(e)},A.renderTreeNode=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=A.state,i=r.keyEntities,o=r.expandedKeys,a=void 0===o?[]:o,s=r.selectedKeys,g=void 0===s?[]:s,c=r.halfCheckedKeys,u=void 0===c?[]:c,l=r.loadedKeys,I=void 0===l?[]:l,C=r.loadingKeys,h=void 0===C?[]:C,d=r.dragOverNodeKey,B=r.dropPosition,p=Object(w.l)(n,t),E=e.key||p;return i[E]?f.a.cloneElement(e,{key:E,eventKey:E,expanded:-1!==a.indexOf(E),selected:-1!==g.indexOf(E),loaded:-1!==I.indexOf(E),loading:-1!==h.indexOf(E),checked:A.isKeyChecked(E),halfChecked:-1!==u.indexOf(E),pos:p,dragOver:d===E&&0===B,dragOverGapTop:d===E&&-1===B,dragOverGapBottom:d===E&&1===B}):(Object(w.p)(),null)},A.state={posEntities:{},keyEntities:{},selectedKeys:[],checkedKeys:[],halfCheckedKeys:[],loadedKeys:[],loadingKeys:[],treeNode:[]},A.domTreeNodes={},A}return C()(t,e),c()(t,[{key:"getChildContext",value:function(){var e=this.props,t=e.prefixCls,A=e.selectable,n=e.showIcon,r=e.icon,i=e.draggable,o=e.checkable,a=e.checkStrictly,s=e.disabled,g=e.loadData,c=e.filterTreeNode,u=e.motion;return{rcTree:{prefixCls:t,selectable:A,showIcon:n,icon:r,switcherIcon:e.switcherIcon,draggable:i,checkable:o,checkStrictly:a,disabled:s,motion:u,loadData:g,filterTreeNode:c,renderTreeNode:this.renderTreeNode,isKeyChecked:this.isKeyChecked,onNodeClick:this.onNodeClick,onNodeDoubleClick:this.onNodeDoubleClick,onNodeExpand:this.onNodeExpand,onNodeSelect:this.onNodeSelect,onNodeCheck:this.onNodeCheck,onNodeLoad:this.onNodeLoad,onNodeMouseEnter:this.onNodeMouseEnter,onNodeMouseLeave:this.onNodeMouseLeave,onNodeContextMenu:this.onNodeContextMenu,onNodeDragStart:this.onNodeDragStart,onNodeDragEnter:this.onNodeDragEnter,onNodeDragOver:this.onNodeDragOver,onNodeDragLeave:this.onNodeDragLeave,onNodeDragEnd:this.onNodeDragEnd,onNodeDrop:this.onNodeDrop,registerTreeNode:this.registerTreeNode}}}},{key:"render",value:function(){var e=this,t=this.state.treeNode,A=this.props,n=A.prefixCls,i=A.className,a=A.focusable,s=A.style,g=A.showLine,c=A.tabIndex,u=void 0===c?0:c,l=Object(w.i)(this.props);return a&&(l.tabIndex=u,l.onKeyDown=this.onKeyDown),f.a.createElement("ul",r()({},l,{className:E()(n,i,o()({},n+"-show-line",g)),style:s,role:"tree",unselectable:"on"}),Object(w.m)(t,(function(t,A){return e.renderTreeNode(t,A)})))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var A=t.prevProps,n={prevProps:e};function r(t){return!A&&t in e||A&&A[t]!==e[t]}var i=null;if(r("treeData")?i=Object(w.g)(e.treeData):r("children")&&(i=Object(v.a)(e.children)),i){n.treeNode=i;var o=Object(w.h)(i);n.posEntities=o.posEntities,n.keyEntities=o.keyEntities}var a=n.keyEntities||t.keyEntities;if(r("expandedKeys")||A&&r("autoExpandParent")?n.expandedKeys=e.autoExpandParent||!A&&e.defaultExpandParent?Object(w.f)(e.expandedKeys,a):e.expandedKeys:!A&&e.defaultExpandAll?n.expandedKeys=Object.keys(a):!A&&e.defaultExpandedKeys&&(n.expandedKeys=e.autoExpandParent||e.defaultExpandParent?Object(w.f)(e.defaultExpandedKeys,a):e.defaultExpandedKeys),e.selectable&&(r("selectedKeys")?n.selectedKeys=Object(w.d)(e.selectedKeys,e):!A&&e.defaultSelectedKeys&&(n.selectedKeys=Object(w.d)(e.defaultSelectedKeys,e))),e.checkable){var s=void 0;if(r("checkedKeys")?s=Object(w.n)(e.checkedKeys)||{}:!A&&e.defaultCheckedKeys?s=Object(w.n)(e.defaultCheckedKeys)||{}:i&&(s=Object(w.n)(e.checkedKeys)||{checkedKeys:t.checkedKeys,halfCheckedKeys:t.halfCheckedKeys}),s){var g=s,c=g.checkedKeys,u=void 0===c?[]:c,l=g.halfCheckedKeys,I=void 0===l?[]:l;if(!e.checkStrictly){var C=Object(w.e)(u,!0,a);u=C.checkedKeys,I=C.halfCheckedKeys}n.checkedKeys=u,n.halfCheckedKeys=I}}return r("loadedKeys")&&(n.loadedKeys=e.loadedKeys),n}}]),t}(f.a.Component);S.propTypes={prefixCls:B.a.string,className:B.a.string,style:B.a.object,tabIndex:B.a.oneOfType([B.a.string,B.a.number]),children:B.a.any,treeData:B.a.array,showLine:B.a.bool,showIcon:B.a.bool,icon:B.a.oneOfType([B.a.node,B.a.func]),focusable:B.a.bool,selectable:B.a.bool,disabled:B.a.bool,multiple:B.a.bool,checkable:B.a.oneOfType([B.a.bool,B.a.node]),checkStrictly:B.a.bool,draggable:B.a.bool,defaultExpandParent:B.a.bool,autoExpandParent:B.a.bool,defaultExpandAll:B.a.bool,defaultExpandedKeys:B.a.arrayOf(B.a.string),expandedKeys:B.a.arrayOf(B.a.string),defaultCheckedKeys:B.a.arrayOf(B.a.string),checkedKeys:B.a.oneOfType([B.a.arrayOf(B.a.oneOfType([B.a.string,B.a.number])),B.a.object]),defaultSelectedKeys:B.a.arrayOf(B.a.string),selectedKeys:B.a.arrayOf(B.a.string),onClick:B.a.func,onDoubleClick:B.a.func,onExpand:B.a.func,onCheck:B.a.func,onSelect:B.a.func,onLoad:B.a.func,loadData:B.a.func,loadedKeys:B.a.arrayOf(B.a.string),onMouseEnter:B.a.func,onMouseLeave:B.a.func,onRightClick:B.a.func,onDragStart:B.a.func,onDragEnter:B.a.func,onDragOver:B.a.func,onDragLeave:B.a.func,onDragEnd:B.a.func,onDrop:B.a.func,filterTreeNode:B.a.func,motion:B.a.object,switcherIcon:B.a.oneOfType([B.a.node,B.a.func])},S.childContextTypes=b.b,S.defaultProps={prefixCls:"rc-tree",showLine:!1,showIcon:!0,selectable:!0,multiple:!1,checkable:!1,disabled:!1,checkStrictly:!1,draggable:!1,defaultExpandParent:!0,autoExpandParent:!1,defaultExpandAll:!1,defaultExpandedKeys:[],defaultCheckedKeys:[],defaultSelectedKeys:[]},Object(m.a)(S);var F=S,R=A(317);A.d(t,"a",(function(){return R.a})),F.TreeNode=R.a;t.b=F},function(e,t,A){"use strict";t.a={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"}},function(e,t,A){"use strict";A.d(t,"a",(function(){return a}));var n,r=A(2),i=A(161),o=A(232),a={WEBGL2:"WEBGL2",VERTEX_ARRAY_OBJECT:"VERTEX_ARRAY_OBJECT",TIMER_QUERY:"TIMER_QUERY",INSTANCED_RENDERING:"INSTANCED_RENDERING",MULTIPLE_RENDER_TARGETS:"MULTIPLE_RENDER_TARGETS",ELEMENT_INDEX_UINT32:"ELEMENT_INDEX_UINT32",BLEND_EQUATION_MINMAX:"BLEND_EQUATION_MINMAX",FLOAT_BLEND:"FLOAT_BLEND",COLOR_ENCODING_SRGB:"COLOR_ENCODING_SRGB",TEXTURE_DEPTH:"TEXTURE_DEPTH",TEXTURE_FLOAT:"TEXTURE_FLOAT",TEXTURE_HALF_FLOAT:"TEXTURE_HALF_FLOAT",TEXTURE_FILTER_LINEAR_FLOAT:"TEXTURE_FILTER_LINEAR_FLOAT",TEXTURE_FILTER_LINEAR_HALF_FLOAT:"TEXTURE_FILTER_LINEAR_HALF_FLOAT",TEXTURE_FILTER_ANISOTROPIC:"TEXTURE_FILTER_ANISOTROPIC",COLOR_ATTACHMENT_RGBA32F:"COLOR_ATTACHMENT_RGBA32F",COLOR_ATTACHMENT_FLOAT:"COLOR_ATTACHMENT_FLOAT",COLOR_ATTACHMENT_HALF_FLOAT:"COLOR_ATTACHMENT_HALF_FLOAT",GLSL_FRAG_DATA:"GLSL_FRAG_DATA",GLSL_FRAG_DEPTH:"GLSL_FRAG_DEPTH",GLSL_DERIVATIVES:"GLSL_DERIVATIVES",GLSL_TEXTURE_LOD:"GLSL_TEXTURE_LOD"};t.b=(n={},Object(r.a)(n,a.WEBGL2,[!1,!0]),Object(r.a)(n,a.VERTEX_ARRAY_OBJECT,["OES_vertex_array_object",!0]),Object(r.a)(n,a.TIMER_QUERY,["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"]),Object(r.a)(n,a.INSTANCED_RENDERING,["ANGLE_instanced_arrays",!0]),Object(r.a)(n,a.MULTIPLE_RENDER_TARGETS,["WEBGL_draw_buffers",!0]),Object(r.a)(n,a.ELEMENT_INDEX_UINT32,["OES_element_index_uint",!0]),Object(r.a)(n,a.BLEND_EQUATION_MINMAX,["EXT_blend_minmax",!0]),Object(r.a)(n,a.FLOAT_BLEND,["EXT_float_blend"]),Object(r.a)(n,a.COLOR_ENCODING_SRGB,["EXT_sRGB",!0]),Object(r.a)(n,a.TEXTURE_DEPTH,["WEBGL_depth_texture",!0]),Object(r.a)(n,a.TEXTURE_FLOAT,["OES_texture_float",!0]),Object(r.a)(n,a.TEXTURE_HALF_FLOAT,["OES_texture_half_float",!0]),Object(r.a)(n,a.TEXTURE_FILTER_LINEAR_FLOAT,["OES_texture_float_linear"]),Object(r.a)(n,a.TEXTURE_FILTER_LINEAR_HALF_FLOAT,["OES_texture_half_float_linear"]),Object(r.a)(n,a.TEXTURE_FILTER_ANISOTROPIC,["EXT_texture_filter_anisotropic"]),Object(r.a)(n,a.COLOR_ATTACHMENT_RGBA32F,[function(e){var t=new o.a(e,{format:6408,type:5126,dataFormat:6408}),A=new i.a(e,{id:"test-framebuffer",check:!1,attachments:Object(r.a)({},36064,t)}),n=A.getStatus();return t.delete(),A.delete(),36053===n},"EXT_color_buffer_float"]),Object(r.a)(n,a.COLOR_ATTACHMENT_FLOAT,[!1,"EXT_color_buffer_float"]),Object(r.a)(n,a.COLOR_ATTACHMENT_HALF_FLOAT,["EXT_color_buffer_half_float"]),Object(r.a)(n,a.GLSL_FRAG_DATA,["WEBGL_draw_buffers",!0]),Object(r.a)(n,a.GLSL_FRAG_DEPTH,["EXT_frag_depth",!0]),Object(r.a)(n,a.GLSL_DERIVATIVES,["OES_standard_derivatives",!0]),Object(r.a)(n,a.GLSL_TEXTURE_LOD,["EXT_shader_texture_lod",!0]),n)},function(e,t,A){"use strict";A.d(t,"a",(function(){return o})),A.d(t,"b",(function(){return a}));var n=A(8),r=A(18),i=A(26);function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.framebuffer,n=void 0===A?null:A,o=t.color,a=void 0===o?null:o,s=t.depth,g=void 0===s?null:s,c=t.stencil,u=void 0===c?null:c,l={};n&&(l.framebuffer=n);var I=0;a&&(I|=16384,!0!==a&&(l.clearColor=a)),g&&(I|=256,!0!==g&&(l.clearDepth=g)),u&&(I|=1024,!0!==g&&(l.clearStencil=g)),Object(i.a)(0!==I,"clear: bad arguments"),Object(r.o)(e,l,(function(){e.clear(I)}))}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.framebuffer,o=void 0===A?null:A,a=t.buffer,s=void 0===a?6144:a,g=t.drawBuffer,c=void 0===g?0:g,u=t.value,l=void 0===u?[0,0,0,0]:u;Object(r.a)(e),Object(r.o)(e,{framebuffer:o},(function(){switch(s){case 6144:switch(l.constructor){case Int32Array:e.clearBufferiv(s,c,l);break;case Uint32Array:e.clearBufferuiv(s,c,l);break;case Float32Array:default:e.clearBufferfv(s,c,l)}break;case 6145:e.clearBufferfv(6145,0,[l]);break;case 6146:e.clearBufferiv(6146,0,[l]);break;case 34041:var t=Object(n.a)(l,2),A=t[0],r=t[1];e.clearBufferfi(34041,0,A,r);break;default:Object(i.a)(!1,"clear: bad arguments")}}))}},function(e,t,A){"use strict";function n(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}A.d(t,"a",(function(){return n}))},function(e,t,A){!function(e){"use strict";function t(){}function A(e){this.message=e||""}function n(e){this.message=e||""}function r(e){this.message=e||""}function i(){}function o(e){return null===e?Ne:e.color}function a(e){return null===e?null:e.parent}function s(e,t){null!==e&&(e.color=t)}function g(e){return null===e?null:e.left}function c(e){return null===e?null:e.right}function u(){this.root_=null,this.size_=0}function l(){}function I(){this.array_=[],arguments[0]instanceof Ee&&this.addAll(arguments[0])}function C(){}function h(e){this.message=e||""}function f(){this.array_=[]}"fill"in Array.prototype||Object.defineProperty(Array.prototype,"fill",{configurable:!0,value:function(e){if(void 0===this||null===this)throw new TypeError(this+" is not an object");var t=Object(this),A=Math.max(Math.min(t.length,9007199254740991),0)||0,n=1 in arguments&&parseInt(Number(arguments[1]),10)||0;n=n<0?Math.max(A+n,0):Math.min(n,A);var r=2 in arguments&&void 0!==arguments[2]?parseInt(Number(arguments[2]),10)||0:A;for(r=r<0?Math.max(A+arguments[2],0):Math.min(r,A);n<r;)t[n]=e,++n;return t},writable:!0}),Number.isFinite=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)},Number.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},Number.parseFloat=Number.parseFloat||parseFloat,Number.isNaN=Number.isNaN||function(e){return e!=e},Math.trunc=Math.trunc||function(e){return e<0?Math.ceil(e):Math.floor(e)};var d=function(){};d.prototype.interfaces_=function(){return[]},d.prototype.getClass=function(){return d},d.prototype.equalsWithTolerance=function(e,t,A){return Math.abs(e-t)<=A};var B=function(e){function t(t){e.call(this,t),this.name="IllegalArgumentException",this.message=t,this.stack=(new e).stack}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(Error),p=function(){},E={MAX_VALUE:{configurable:!0}};p.isNaN=function(e){return Number.isNaN(e)},p.doubleToLongBits=function(e){return e},p.longBitsToDouble=function(e){return e},p.isInfinite=function(e){return!Number.isFinite(e)},E.MAX_VALUE.get=function(){return Number.MAX_VALUE},Object.defineProperties(p,E);var Q=function(){},y=function(){},v=function(){},m=function e(){if(this.x=null,this.y=null,this.z=null,0===arguments.length)this.x=0,this.y=0,this.z=e.NULL_ORDINATE;else if(1===arguments.length){var t=arguments[0];this.x=t.x,this.y=t.y,this.z=t.z}else 2===arguments.length?(this.x=arguments[0],this.y=arguments[1],this.z=e.NULL_ORDINATE):3===arguments.length&&(this.x=arguments[0],this.y=arguments[1],this.z=arguments[2])},b={DimensionalComparator:{configurable:!0},serialVersionUID:{configurable:!0},NULL_ORDINATE:{configurable:!0},X:{configurable:!0},Y:{configurable:!0},Z:{configurable:!0}};m.prototype.setOrdinate=function(e,t){switch(e){case m.X:this.x=t;break;case m.Y:this.y=t;break;case m.Z:this.z=t;break;default:throw new B("Invalid ordinate index: "+e)}},m.prototype.equals2D=function(){if(1===arguments.length){var e=arguments[0];return this.x===e.x&&this.y===e.y}if(2===arguments.length){var t=arguments[0],A=arguments[1];return!!d.equalsWithTolerance(this.x,t.x,A)&&!!d.equalsWithTolerance(this.y,t.y,A)}},m.prototype.getOrdinate=function(e){switch(e){case m.X:return this.x;case m.Y:return this.y;case m.Z:return this.z}throw new B("Invalid ordinate index: "+e)},m.prototype.equals3D=function(e){return this.x===e.x&&this.y===e.y&&(this.z===e.z||p.isNaN(this.z))&&p.isNaN(e.z)},m.prototype.equals=function(e){return e instanceof m&&this.equals2D(e)},m.prototype.equalInZ=function(e,t){return d.equalsWithTolerance(this.z,e.z,t)},m.prototype.compareTo=function(e){var t=e;return this.x<t.x?-1:this.x>t.x?1:this.y<t.y?-1:this.y>t.y?1:0},m.prototype.clone=function(){},m.prototype.copy=function(){return new m(this)},m.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},m.prototype.distance3D=function(e){var t=this.x-e.x,A=this.y-e.y,n=this.z-e.z;return Math.sqrt(t*t+A*A+n*n)},m.prototype.distance=function(e){var t=this.x-e.x,A=this.y-e.y;return Math.sqrt(t*t+A*A)},m.prototype.hashCode=function(){var e=17;return 37*(e=37*e+m.hashCode(this.x))+m.hashCode(this.y)},m.prototype.setCoordinate=function(e){this.x=e.x,this.y=e.y,this.z=e.z},m.prototype.interfaces_=function(){return[Q,y,t]},m.prototype.getClass=function(){return m},m.hashCode=function(){if(1===arguments.length){var e=arguments[0],t=p.doubleToLongBits(e);return Math.trunc((t^t)>>>32)}},b.DimensionalComparator.get=function(){return w},b.serialVersionUID.get=function(){return 0x5cbf2c235c7e5800},b.NULL_ORDINATE.get=function(){return p.NaN},b.X.get=function(){return 0},b.Y.get=function(){return 1},b.Z.get=function(){return 2},Object.defineProperties(m,b);var w=function(e){if(this._dimensionsToTest=2,0===arguments.length);else if(1===arguments.length){var t=arguments[0];if(2!==t&&3!==t)throw new B("only 2 or 3 dimensions may be specified");this._dimensionsToTest=t}};w.prototype.compare=function(e,t){var A=e,n=t,r=w.compare(A.x,n.x);if(0!==r)return r;var i=w.compare(A.y,n.y);return 0!==i?i:this._dimensionsToTest<=2?0:w.compare(A.z,n.z)},w.prototype.interfaces_=function(){return[v]},w.prototype.getClass=function(){return w},w.compare=function(e,t){return e<t?-1:e>t?1:p.isNaN(e)?p.isNaN(t)?0:-1:p.isNaN(t)?1:0};var S=function(){};S.prototype.create=function(){},S.prototype.interfaces_=function(){return[]},S.prototype.getClass=function(){return S};var F=function(){},R={INTERIOR:{configurable:!0},BOUNDARY:{configurable:!0},EXTERIOR:{configurable:!0},NONE:{configurable:!0}};F.prototype.interfaces_=function(){return[]},F.prototype.getClass=function(){return F},F.toLocationSymbol=function(e){switch(e){case F.EXTERIOR:return"e";case F.BOUNDARY:return"b";case F.INTERIOR:return"i";case F.NONE:return"-"}throw new B("Unknown location value: "+e)},R.INTERIOR.get=function(){return 0},R.BOUNDARY.get=function(){return 1},R.EXTERIOR.get=function(){return 2},R.NONE.get=function(){return-1},Object.defineProperties(F,R);var D=function(e,t){return e.interfaces_&&e.interfaces_().indexOf(t)>-1},G=function(){},k={LOG_10:{configurable:!0}};G.prototype.interfaces_=function(){return[]},G.prototype.getClass=function(){return G},G.log10=function(e){var t=Math.log(e);return p.isInfinite(t)||p.isNaN(t)?t:t/G.LOG_10},G.min=function(e,t,A,n){var r=e;return t<r&&(r=t),A<r&&(r=A),n<r&&(r=n),r},G.clamp=function(){if("number"==typeof arguments[2]&&"number"==typeof arguments[0]&&"number"==typeof arguments[1]){var e=arguments[0],t=arguments[1],A=arguments[2];return e<t?t:e>A?A:e}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var n=arguments[0],r=arguments[1],i=arguments[2];return n<r?r:n>i?i:n}},G.wrap=function(e,t){return e<0?t- -e%t:e%t},G.max=function(){if(3===arguments.length){var e=arguments[0],t=arguments[1],A=arguments[2],n=e;return t>n&&(n=t),A>n&&(n=A),n}if(4===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2],a=arguments[3],s=r;return i>s&&(s=i),o>s&&(s=o),a>s&&(s=a),s}},G.average=function(e,t){return(e+t)/2},k.LOG_10.get=function(){return Math.log(10)},Object.defineProperties(G,k);var x=function(e){this.str=e};x.prototype.append=function(e){this.str+=e},x.prototype.setCharAt=function(e,t){this.str=this.str.substr(0,e)+t+this.str.substr(e+1)},x.prototype.toString=function(e){return this.str};var N=function(e){this.value=e};N.prototype.intValue=function(){return this.value},N.prototype.compareTo=function(e){return this.value<e?-1:this.value>e?1:0},N.isNaN=function(e){return Number.isNaN(e)};var U=function(){};U.isWhitespace=function(e){return e<=32&&e>=0||127===e},U.toUpperCase=function(e){return e.toUpperCase()};var _=function e(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if("number"==typeof arguments[0]){var t=arguments[0];this.init(t)}else if(arguments[0]instanceof e){var A=arguments[0];this.init(A)}else if("string"==typeof arguments[0]){var n=arguments[0];e.call(this,e.parse(n))}}else if(2===arguments.length){var r=arguments[0],i=arguments[1];this.init(r,i)}},M={PI:{configurable:!0},TWO_PI:{configurable:!0},PI_2:{configurable:!0},E:{configurable:!0},NaN:{configurable:!0},EPS:{configurable:!0},SPLIT:{configurable:!0},MAX_PRINT_DIGITS:{configurable:!0},TEN:{configurable:!0},ONE:{configurable:!0},SCI_NOT_EXPONENT_CHAR:{configurable:!0},SCI_NOT_ZERO:{configurable:!0}};_.prototype.le=function(e){return(this._hi<e._hi||this._hi===e._hi)&&this._lo<=e._lo},_.prototype.extractSignificantDigits=function(e,t){var A=this.abs(),n=_.magnitude(A._hi),r=_.TEN.pow(n);(A=A.divide(r)).gt(_.TEN)?(A=A.divide(_.TEN),n+=1):A.lt(_.ONE)&&(A=A.multiply(_.TEN),n-=1);for(var i=n+1,o=new x,a=_.MAX_PRINT_DIGITS-1,s=0;s<=a;s++){e&&s===i&&o.append(".");var g=Math.trunc(A._hi);if(g<0)break;var c=!1,u=0;g>9?(c=!0,u="9"):u="0"+g,o.append(u),A=A.subtract(_.valueOf(g)).multiply(_.TEN),c&&A.selfAdd(_.TEN);var l=!0,I=_.magnitude(A._hi);if(I<0&&Math.abs(I)>=a-s&&(l=!1),!l)break}return t[0]=n,o.toString()},_.prototype.sqr=function(){return this.multiply(this)},_.prototype.doubleValue=function(){return this._hi+this._lo},_.prototype.subtract=function(){if(arguments[0]instanceof _){var e=arguments[0];return this.add(e.negate())}if("number"==typeof arguments[0]){var t=arguments[0];return this.add(-t)}},_.prototype.equals=function(){if(1===arguments.length){var e=arguments[0];return this._hi===e._hi&&this._lo===e._lo}},_.prototype.isZero=function(){return 0===this._hi&&0===this._lo},_.prototype.selfSubtract=function(){if(arguments[0]instanceof _){var e=arguments[0];return this.isNaN()?this:this.selfAdd(-e._hi,-e._lo)}if("number"==typeof arguments[0]){var t=arguments[0];return this.isNaN()?this:this.selfAdd(-t,0)}},_.prototype.getSpecialNumberString=function(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null},_.prototype.min=function(e){return this.le(e)?this:e},_.prototype.selfDivide=function(){if(1===arguments.length){if(arguments[0]instanceof _){var e=arguments[0];return this.selfDivide(e._hi,e._lo)}if("number"==typeof arguments[0]){var t=arguments[0];return this.selfDivide(t,0)}}else if(2===arguments.length){var A=arguments[0],n=arguments[1],r=null,i=null,o=null,a=null,s=null,g=null,c=null,u=null;return s=this._hi/A,u=(r=(g=_.SPLIT*s)-(r=g-s))*(o=(u=_.SPLIT*A)-(o=u-A))-(c=s*A)+r*(a=A-o)+(i=s-r)*o+i*a,u=s+(g=(this._hi-c-u+this._lo-s*n)/A),this._hi=u,this._lo=s-u+g,this}},_.prototype.dump=function(){return"DD<"+this._hi+", "+this._lo+">"},_.prototype.divide=function(){if(arguments[0]instanceof _){var e=arguments[0],t=null,A=null,n=null,r=null,i=null,o=null,a=null,s=null;return A=(i=this._hi/e._hi)-(t=(o=_.SPLIT*i)-(t=o-i)),s=t*(n=(s=_.SPLIT*e._hi)-(n=s-e._hi))-(a=i*e._hi)+t*(r=e._hi-n)+A*n+A*r,o=(this._hi-a-s+this._lo-i*e._lo)/e._hi,new _(s=i+o,i-s+o)}if("number"==typeof arguments[0]){var g=arguments[0];return p.isNaN(g)?_.createNaN():_.copy(this).selfDivide(g,0)}},_.prototype.ge=function(e){return(this._hi>e._hi||this._hi===e._hi)&&this._lo>=e._lo},_.prototype.pow=function(e){if(0===e)return _.valueOf(1);var t=new _(this),A=_.valueOf(1),n=Math.abs(e);if(n>1)for(;n>0;)n%2==1&&A.selfMultiply(t),(n/=2)>0&&(t=t.sqr());else A=t;return e<0?A.reciprocal():A},_.prototype.ceil=function(){if(this.isNaN())return _.NaN;var e=Math.ceil(this._hi),t=0;return e===this._hi&&(t=Math.ceil(this._lo)),new _(e,t)},_.prototype.compareTo=function(e){var t=e;return this._hi<t._hi?-1:this._hi>t._hi?1:this._lo<t._lo?-1:this._lo>t._lo?1:0},_.prototype.rint=function(){return this.isNaN()?this:this.add(.5).floor()},_.prototype.setValue=function(){if(arguments[0]instanceof _){var e=arguments[0];return this.init(e),this}if("number"==typeof arguments[0]){var t=arguments[0];return this.init(t),this}},_.prototype.max=function(e){return this.ge(e)?this:e},_.prototype.sqrt=function(){if(this.isZero())return _.valueOf(0);if(this.isNegative())return _.NaN;var e=1/Math.sqrt(this._hi),t=this._hi*e,A=_.valueOf(t),n=this.subtract(A.sqr())._hi*(.5*e);return A.add(n)},_.prototype.selfAdd=function(){if(1===arguments.length){if(arguments[0]instanceof _){var e=arguments[0];return this.selfAdd(e._hi,e._lo)}if("number"==typeof arguments[0]){var t=arguments[0],A=null,n=null,r=null,i=null,o=null,a=null;return i=(r=this._hi+t)-(o=r-this._hi),n=(a=(i=t-o+(this._hi-i))+this._lo)+(r-(A=r+a)),this._hi=A+n,this._lo=n+(A-this._hi),this}}else if(2===arguments.length){var s=arguments[0],g=arguments[1],c=null,u=null,l=null,I=null,C=null,h=null,f=null;I=this._hi+s,u=this._lo+g,C=I-(h=I-this._hi),l=u-(f=u-this._lo);var d=(c=I+(h=(C=s-h+(this._hi-C))+u))+(h=(l=g-f+(this._lo-l))+(h+(I-c))),B=h+(c-d);return this._hi=d,this._lo=B,this}},_.prototype.selfMultiply=function(){if(1===arguments.length){if(arguments[0]instanceof _){var e=arguments[0];return this.selfMultiply(e._hi,e._lo)}if("number"==typeof arguments[0]){var t=arguments[0];return this.selfMultiply(t,0)}}else if(2===arguments.length){var A=arguments[0],n=arguments[1],r=null,i=null,o=null,a=null,s=null,g=null;r=(s=_.SPLIT*this._hi)-this._hi,g=_.SPLIT*A,r=s-r,i=this._hi-r,o=g-A;var c=(s=this._hi*A)+(g=r*(o=g-o)-s+r*(a=A-o)+i*o+i*a+(this._hi*n+this._lo*A)),u=g+(r=s-c);return this._hi=c,this._lo=u,this}},_.prototype.selfSqr=function(){return this.selfMultiply(this)},_.prototype.floor=function(){if(this.isNaN())return _.NaN;var e=Math.floor(this._hi),t=0;return e===this._hi&&(t=Math.floor(this._lo)),new _(e,t)},_.prototype.negate=function(){return this.isNaN()?this:new _(-this._hi,-this._lo)},_.prototype.clone=function(){},_.prototype.multiply=function(){if(arguments[0]instanceof _){var e=arguments[0];return e.isNaN()?_.createNaN():_.copy(this).selfMultiply(e)}if("number"==typeof arguments[0]){var t=arguments[0];return p.isNaN(t)?_.createNaN():_.copy(this).selfMultiply(t,0)}},_.prototype.isNaN=function(){return p.isNaN(this._hi)},_.prototype.intValue=function(){return Math.trunc(this._hi)},_.prototype.toString=function(){var e=_.magnitude(this._hi);return e>=-3&&e<=20?this.toStandardNotation():this.toSciNotation()},_.prototype.toStandardNotation=function(){var e=this.getSpecialNumberString();if(null!==e)return e;var t=new Array(1).fill(null),A=this.extractSignificantDigits(!0,t),n=t[0]+1,r=A;if("."===A.charAt(0))r="0"+A;else if(n<0)r="0."+_.stringOfChar("0",-n)+A;else if(-1===A.indexOf(".")){var i=n-A.length;r=A+_.stringOfChar("0",i)+".0"}return this.isNegative()?"-"+r:r},_.prototype.reciprocal=function(){var e,t,A,n,r=null,i=null,o=null,a=null;e=(A=1/this._hi)-(r=(o=_.SPLIT*A)-(r=o-A)),i=(a=_.SPLIT*this._hi)-this._hi;var s=A+(o=(1-(n=A*this._hi)-(a=r*(i=a-i)-n+r*(t=this._hi-i)+e*i+e*t)-A*this._lo)/this._hi);return new _(s,A-s+o)},_.prototype.toSciNotation=function(){if(this.isZero())return _.SCI_NOT_ZERO;var e=this.getSpecialNumberString();if(null!==e)return e;var t=new Array(1).fill(null),A=this.extractSignificantDigits(!1,t),n=_.SCI_NOT_EXPONENT_CHAR+t[0];if("0"===A.charAt(0))throw new Error("Found leading zero: "+A);var r="";A.length>1&&(r=A.substring(1));var i=A.charAt(0)+"."+r;return this.isNegative()?"-"+i+n:i+n},_.prototype.abs=function(){return this.isNaN()?_.NaN:this.isNegative()?this.negate():new _(this)},_.prototype.isPositive=function(){return(this._hi>0||0===this._hi)&&this._lo>0},_.prototype.lt=function(e){return(this._hi<e._hi||this._hi===e._hi)&&this._lo<e._lo},_.prototype.add=function(){if(arguments[0]instanceof _){var e=arguments[0];return _.copy(this).selfAdd(e)}if("number"==typeof arguments[0]){var t=arguments[0];return _.copy(this).selfAdd(t)}},_.prototype.init=function(){if(1===arguments.length){if("number"==typeof arguments[0]){var e=arguments[0];this._hi=e,this._lo=0}else if(arguments[0]instanceof _){var t=arguments[0];this._hi=t._hi,this._lo=t._lo}}else if(2===arguments.length){var A=arguments[0],n=arguments[1];this._hi=A,this._lo=n}},_.prototype.gt=function(e){return(this._hi>e._hi||this._hi===e._hi)&&this._lo>e._lo},_.prototype.isNegative=function(){return(this._hi<0||0===this._hi)&&this._lo<0},_.prototype.trunc=function(){return this.isNaN()?_.NaN:this.isPositive()?this.floor():this.ceil()},_.prototype.signum=function(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0},_.prototype.interfaces_=function(){return[t,Q,y]},_.prototype.getClass=function(){return _},_.sqr=function(e){return _.valueOf(e).selfMultiply(e)},_.valueOf=function(){if("string"==typeof arguments[0]){var e=arguments[0];return _.parse(e)}if("number"==typeof arguments[0]){var t=arguments[0];return new _(t)}},_.sqrt=function(e){return _.valueOf(e).sqrt()},_.parse=function(e){for(var t=0,A=e.length;U.isWhitespace(e.charAt(t));)t++;var n=!1;if(t<A){var r=e.charAt(t);"-"!==r&&"+"!==r||(t++,"-"===r&&(n=!0))}for(var i=new _,o=0,a=0,s=0;!(t>=A);){var g=e.charAt(t);if(t++,U.isDigit(g)){var c=g-"0";i.selfMultiply(_.TEN),i.selfAdd(c),o++}else{if("."!==g){if("e"===g||"E"===g){var u=e.substring(t);try{s=N.parseInt(u)}catch(t){throw t instanceof Error?new Error("Invalid exponent "+u+" in string "+e):t}break}throw new Error("Unexpected character '"+g+"' at position "+t+" in string "+e)}a=o}}var l=i,I=o-a-s;if(0===I)l=i;else if(I>0){var C=_.TEN.pow(I);l=i.divide(C)}else if(I<0){var h=_.TEN.pow(-I);l=i.multiply(h)}return n?l.negate():l},_.createNaN=function(){return new _(p.NaN,p.NaN)},_.copy=function(e){return new _(e)},_.magnitude=function(e){var t=Math.abs(e),A=Math.log(t)/Math.log(10),n=Math.trunc(Math.floor(A));return 10*Math.pow(10,n)<=t&&(n+=1),n},_.stringOfChar=function(e,t){for(var A=new x,n=0;n<t;n++)A.append(e);return A.toString()},M.PI.get=function(){return new _(3.141592653589793,12246467991473532e-32)},M.TWO_PI.get=function(){return new _(6.283185307179586,24492935982947064e-32)},M.PI_2.get=function(){return new _(1.5707963267948966,6123233995736766e-32)},M.E.get=function(){return new _(2.718281828459045,14456468917292502e-32)},M.NaN.get=function(){return new _(p.NaN,p.NaN)},M.EPS.get=function(){return 123259516440783e-46},M.SPLIT.get=function(){return 134217729},M.MAX_PRINT_DIGITS.get=function(){return 32},M.TEN.get=function(){return _.valueOf(10)},M.ONE.get=function(){return _.valueOf(1)},M.SCI_NOT_EXPONENT_CHAR.get=function(){return"E"},M.SCI_NOT_ZERO.get=function(){return"0.0E0"},Object.defineProperties(_,M);var O=function(){},L={DP_SAFE_EPSILON:{configurable:!0}};O.prototype.interfaces_=function(){return[]},O.prototype.getClass=function(){return O},O.orientationIndex=function(e,t,A){var n=O.orientationIndexFilter(e,t,A);if(n<=1)return n;var r=_.valueOf(t.x).selfAdd(-e.x),i=_.valueOf(t.y).selfAdd(-e.y),o=_.valueOf(A.x).selfAdd(-t.x),a=_.valueOf(A.y).selfAdd(-t.y);return r.selfMultiply(a).selfSubtract(i.selfMultiply(o)).signum()},O.signOfDet2x2=function(e,t,A,n){return e.multiply(n).selfSubtract(t.multiply(A)).signum()},O.intersection=function(e,t,A,n){var r=_.valueOf(n.y).selfSubtract(A.y).selfMultiply(_.valueOf(t.x).selfSubtract(e.x)),i=_.valueOf(n.x).selfSubtract(A.x).selfMultiply(_.valueOf(t.y).selfSubtract(e.y)),o=r.subtract(i),a=_.valueOf(n.x).selfSubtract(A.x).selfMultiply(_.valueOf(e.y).selfSubtract(A.y)),s=_.valueOf(n.y).selfSubtract(A.y).selfMultiply(_.valueOf(e.x).selfSubtract(A.x)),g=a.subtract(s).selfDivide(o).doubleValue(),c=_.valueOf(e.x).selfAdd(_.valueOf(t.x).selfSubtract(e.x).selfMultiply(g)).doubleValue(),u=_.valueOf(t.x).selfSubtract(e.x).selfMultiply(_.valueOf(e.y).selfSubtract(A.y)),l=_.valueOf(t.y).selfSubtract(e.y).selfMultiply(_.valueOf(e.x).selfSubtract(A.x)),I=u.subtract(l).selfDivide(o).doubleValue(),C=_.valueOf(A.y).selfAdd(_.valueOf(n.y).selfSubtract(A.y).selfMultiply(I)).doubleValue();return new m(c,C)},O.orientationIndexFilter=function(e,t,A){var n=null,r=(e.x-A.x)*(t.y-A.y),i=(e.y-A.y)*(t.x-A.x),o=r-i;if(r>0){if(i<=0)return O.signum(o);n=r+i}else{if(!(r<0))return O.signum(o);if(i>=0)return O.signum(o);n=-r-i}var a=O.DP_SAFE_EPSILON*n;return o>=a||-o>=a?O.signum(o):2},O.signum=function(e){return e>0?1:e<0?-1:0},L.DP_SAFE_EPSILON.get=function(){return 1e-15},Object.defineProperties(O,L);var T=function(){},Z={X:{configurable:!0},Y:{configurable:!0},Z:{configurable:!0},M:{configurable:!0}};Z.X.get=function(){return 0},Z.Y.get=function(){return 1},Z.Z.get=function(){return 2},Z.M.get=function(){return 3},T.prototype.setOrdinate=function(e,t,A){},T.prototype.size=function(){},T.prototype.getOrdinate=function(e,t){},T.prototype.getCoordinate=function(){},T.prototype.getCoordinateCopy=function(e){},T.prototype.getDimension=function(){},T.prototype.getX=function(e){},T.prototype.clone=function(){},T.prototype.expandEnvelope=function(e){},T.prototype.copy=function(){},T.prototype.getY=function(e){},T.prototype.toCoordinateArray=function(){},T.prototype.interfaces_=function(){return[y]},T.prototype.getClass=function(){return T},Object.defineProperties(T,Z);var H=function(){},Y=function(e){function t(){e.call(this,"Projective point not representable on the Cartesian plane.")}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(H),J=function(){};J.arraycopy=function(e,t,A,n,r){for(var i=0,o=t;o<t+r;o++)A[n+i]=e[o],i++},J.getProperty=function(e){return{"line.separator":"\n"}[e]};var j=function e(){if(this.x=null,this.y=null,this.w=null,0===arguments.length)this.x=0,this.y=0,this.w=1;else if(1===arguments.length){var t=arguments[0];this.x=t.x,this.y=t.y,this.w=1}else if(2===arguments.length){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){var A=arguments[0],n=arguments[1];this.x=A,this.y=n,this.w=1}else if(arguments[0]instanceof e&&arguments[1]instanceof e){var r=arguments[0],i=arguments[1];this.x=r.y*i.w-i.y*r.w,this.y=i.x*r.w-r.x*i.w,this.w=r.x*i.y-i.x*r.y}else if(arguments[0]instanceof m&&arguments[1]instanceof m){var o=arguments[0],a=arguments[1];this.x=o.y-a.y,this.y=a.x-o.x,this.w=o.x*a.y-a.x*o.y}}else if(3===arguments.length){var s=arguments[0],g=arguments[1],c=arguments[2];this.x=s,this.y=g,this.w=c}else if(4===arguments.length){var u=arguments[0],l=arguments[1],I=arguments[2],C=arguments[3],h=u.y-l.y,f=l.x-u.x,d=u.x*l.y-l.x*u.y,B=I.y-C.y,p=C.x-I.x,E=I.x*C.y-C.x*I.y;this.x=f*E-p*d,this.y=B*d-h*E,this.w=h*p-B*f}};j.prototype.getY=function(){var e=this.y/this.w;if(p.isNaN(e)||p.isInfinite(e))throw new Y;return e},j.prototype.getX=function(){var e=this.x/this.w;if(p.isNaN(e)||p.isInfinite(e))throw new Y;return e},j.prototype.getCoordinate=function(){var e=new m;return e.x=this.getX(),e.y=this.getY(),e},j.prototype.interfaces_=function(){return[]},j.prototype.getClass=function(){return j},j.intersection=function(e,t,A,n){var r=e.y-t.y,i=t.x-e.x,o=e.x*t.y-t.x*e.y,a=A.y-n.y,s=n.x-A.x,g=A.x*n.y-n.x*A.y,c=r*s-a*i,u=(i*g-s*o)/c,l=(a*o-r*g)/c;if(p.isNaN(u)||p.isInfinite(u)||p.isNaN(l)||p.isInfinite(l))throw new Y;return new m(u,l)};var P=function e(){if(this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,0===arguments.length)this.init();else if(1===arguments.length){if(arguments[0]instanceof m){var t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof e){var A=arguments[0];this.init(A)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.init(n.x,r.x,n.y,r.y)}else if(4===arguments.length){var i=arguments[0],o=arguments[1],a=arguments[2],s=arguments[3];this.init(i,o,a,s)}},V={serialVersionUID:{configurable:!0}};P.prototype.getArea=function(){return this.getWidth()*this.getHeight()},P.prototype.equals=function(e){if(!(e instanceof P))return!1;var t=e;return this.isNull()?t.isNull():this._maxx===t.getMaxX()&&this._maxy===t.getMaxY()&&this._minx===t.getMinX()&&this._miny===t.getMinY()},P.prototype.intersection=function(e){if(this.isNull()||e.isNull()||!this.intersects(e))return new P;var t=this._minx>e._minx?this._minx:e._minx,A=this._miny>e._miny?this._miny:e._miny,n=this._maxx<e._maxx?this._maxx:e._maxx,r=this._maxy<e._maxy?this._maxy:e._maxy;return new P(t,n,A,r)},P.prototype.isNull=function(){return this._maxx<this._minx},P.prototype.getMaxX=function(){return this._maxx},P.prototype.covers=function(){if(1===arguments.length){if(arguments[0]instanceof m){var e=arguments[0];return this.covers(e.x,e.y)}if(arguments[0]instanceof P){var t=arguments[0];return!this.isNull()&&!t.isNull()&&t.getMinX()>=this._minx&&t.getMaxX()<=this._maxx&&t.getMinY()>=this._miny&&t.getMaxY()<=this._maxy}}else if(2===arguments.length){var A=arguments[0],n=arguments[1];return!this.isNull()&&A>=this._minx&&A<=this._maxx&&n>=this._miny&&n<=this._maxy}},P.prototype.intersects=function(){if(1===arguments.length){if(arguments[0]instanceof P){var e=arguments[0];return!this.isNull()&&!e.isNull()&&!(e._minx>this._maxx||e._maxx<this._minx||e._miny>this._maxy||e._maxy<this._miny)}if(arguments[0]instanceof m){var t=arguments[0];return this.intersects(t.x,t.y)}}else if(2===arguments.length){var A=arguments[0],n=arguments[1];return!this.isNull()&&!(A>this._maxx||A<this._minx||n>this._maxy||n<this._miny)}},P.prototype.getMinY=function(){return this._miny},P.prototype.getMinX=function(){return this._minx},P.prototype.expandToInclude=function(){if(1===arguments.length){if(arguments[0]instanceof m){var e=arguments[0];this.expandToInclude(e.x,e.y)}else if(arguments[0]instanceof P){var t=arguments[0];if(t.isNull())return null;this.isNull()?(this._minx=t.getMinX(),this._maxx=t.getMaxX(),this._miny=t.getMinY(),this._maxy=t.getMaxY()):(t._minx<this._minx&&(this._minx=t._minx),t._maxx>this._maxx&&(this._maxx=t._maxx),t._miny<this._miny&&(this._miny=t._miny),t._maxy>this._maxy&&(this._maxy=t._maxy))}}else if(2===arguments.length){var A=arguments[0],n=arguments[1];this.isNull()?(this._minx=A,this._maxx=A,this._miny=n,this._maxy=n):(A<this._minx&&(this._minx=A),A>this._maxx&&(this._maxx=A),n<this._miny&&(this._miny=n),n>this._maxy&&(this._maxy=n))}},P.prototype.minExtent=function(){if(this.isNull())return 0;var e=this.getWidth(),t=this.getHeight();return e<t?e:t},P.prototype.getWidth=function(){return this.isNull()?0:this._maxx-this._minx},P.prototype.compareTo=function(e){var t=e;return this.isNull()?t.isNull()?0:-1:t.isNull()?1:this._minx<t._minx?-1:this._minx>t._minx?1:this._miny<t._miny?-1:this._miny>t._miny?1:this._maxx<t._maxx?-1:this._maxx>t._maxx?1:this._maxy<t._maxy?-1:this._maxy>t._maxy?1:0},P.prototype.translate=function(e,t){if(this.isNull())return null;this.init(this.getMinX()+e,this.getMaxX()+e,this.getMinY()+t,this.getMaxY()+t)},P.prototype.toString=function(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"},P.prototype.setToNull=function(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1},P.prototype.getHeight=function(){return this.isNull()?0:this._maxy-this._miny},P.prototype.maxExtent=function(){if(this.isNull())return 0;var e=this.getWidth(),t=this.getHeight();return e>t?e:t},P.prototype.expandBy=function(){if(1===arguments.length){var e=arguments[0];this.expandBy(e,e)}else if(2===arguments.length){var t=arguments[0],A=arguments[1];if(this.isNull())return null;this._minx-=t,this._maxx+=t,this._miny-=A,this._maxy+=A,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}},P.prototype.contains=function(){if(1===arguments.length){if(arguments[0]instanceof P){var e=arguments[0];return this.covers(e)}if(arguments[0]instanceof m){var t=arguments[0];return this.covers(t)}}else if(2===arguments.length){var A=arguments[0],n=arguments[1];return this.covers(A,n)}},P.prototype.centre=function(){return this.isNull()?null:new m((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)},P.prototype.init=function(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof m){var e=arguments[0];this.init(e.x,e.x,e.y,e.y)}else if(arguments[0]instanceof P){var t=arguments[0];this._minx=t._minx,this._maxx=t._maxx,this._miny=t._miny,this._maxy=t._maxy}}else if(2===arguments.length){var A=arguments[0],n=arguments[1];this.init(A.x,n.x,A.y,n.y)}else if(4===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2],a=arguments[3];r<i?(this._minx=r,this._maxx=i):(this._minx=i,this._maxx=r),o<a?(this._miny=o,this._maxy=a):(this._miny=a,this._maxy=o)}},P.prototype.getMaxY=function(){return this._maxy},P.prototype.distance=function(e){if(this.intersects(e))return 0;var t=0;this._maxx<e._minx?t=e._minx-this._maxx:this._minx>e._maxx&&(t=this._minx-e._maxx);var A=0;return this._maxy<e._miny?A=e._miny-this._maxy:this._miny>e._maxy&&(A=this._miny-e._maxy),0===t?A:0===A?t:Math.sqrt(t*t+A*A)},P.prototype.hashCode=function(){var e=17;return 37*(e=37*(e=37*(e=37*e+m.hashCode(this._minx))+m.hashCode(this._maxx))+m.hashCode(this._miny))+m.hashCode(this._maxy)},P.prototype.interfaces_=function(){return[Q,t]},P.prototype.getClass=function(){return P},P.intersects=function(){if(3===arguments.length){var e=arguments[0],t=arguments[1],A=arguments[2];return A.x>=(e.x<t.x?e.x:t.x)&&A.x<=(e.x>t.x?e.x:t.x)&&A.y>=(e.y<t.y?e.y:t.y)&&A.y<=(e.y>t.y?e.y:t.y)}if(4===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2],o=arguments[3],a=Math.min(i.x,o.x),s=Math.max(i.x,o.x),g=Math.min(n.x,r.x),c=Math.max(n.x,r.x);return!(g>s)&&!(c<a)&&(a=Math.min(i.y,o.y),s=Math.max(i.y,o.y),g=Math.min(n.y,r.y),c=Math.max(n.y,r.y),!(g>s)&&!(c<a))}},V.serialVersionUID.get=function(){return 0x51845cd552189800},Object.defineProperties(P,V);var K={typeStr:/^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/,emptyTypeStr:/^\s*(\w+)\s*EMPTY\s*$/,spaces:/\s+/,parenComma:/\)\s*,\s*\(/,doubleParenComma:/\)\s*\)\s*,\s*\(\s*\(/,trimParens:/^\s*\(?(.*?)\)?\s*$/},W=function(e){this.geometryFactory=e||new dt};W.prototype.read=function(e){var t,A,n;e=e.replace(/[\n\r]/g," ");var r=K.typeStr.exec(e);if(-1!==e.search("EMPTY")&&((r=K.emptyTypeStr.exec(e))[2]=void 0),r&&(A=r[1].toLowerCase(),n=r[2],q[A]&&(t=q[A].apply(this,[n]))),void 0===t)throw new Error("Could not parse WKT "+e);return t},W.prototype.write=function(e){return this.extractGeometry(e)},W.prototype.extractGeometry=function(e){var t=e.getGeometryType().toLowerCase();if(!X[t])return null;var A=t.toUpperCase();return e.isEmpty()?A+" EMPTY":A+"("+X[t].apply(this,[e])+")"};var X={coordinate:function(e){return e.x+" "+e.y},point:function(e){return X.coordinate.call(this,e._coordinates._coordinates[0])},multipoint:function(e){for(var t=[],A=0,n=e._geometries.length;A<n;++A)t.push("("+X.point.apply(this,[e._geometries[A]])+")");return t.join(",")},linestring:function(e){for(var t=[],A=0,n=e._points._coordinates.length;A<n;++A)t.push(X.coordinate.apply(this,[e._points._coordinates[A]]));return t.join(",")},linearring:function(e){for(var t=[],A=0,n=e._points._coordinates.length;A<n;++A)t.push(X.coordinate.apply(this,[e._points._coordinates[A]]));return t.join(",")},multilinestring:function(e){for(var t=[],A=0,n=e._geometries.length;A<n;++A)t.push("("+X.linestring.apply(this,[e._geometries[A]])+")");return t.join(",")},polygon:function(e){var t=[];t.push("("+X.linestring.apply(this,[e._shell])+")");for(var A=0,n=e._holes.length;A<n;++A)t.push("("+X.linestring.apply(this,[e._holes[A]])+")");return t.join(",")},multipolygon:function(e){for(var t=[],A=0,n=e._geometries.length;A<n;++A)t.push("("+X.polygon.apply(this,[e._geometries[A]])+")");return t.join(",")},geometrycollection:function(e){for(var t=[],A=0,n=e._geometries.length;A<n;++A)t.push(this.extractGeometry(e._geometries[A]));return t.join(",")}},q={point:function(e){if(void 0===e)return this.geometryFactory.createPoint();var t=e.trim().split(K.spaces);return this.geometryFactory.createPoint(new m(Number.parseFloat(t[0]),Number.parseFloat(t[1])))},multipoint:function(e){if(void 0===e)return this.geometryFactory.createMultiPoint();for(var t,A=e.trim().split(","),n=[],r=0,i=A.length;r<i;++r)t=A[r].replace(K.trimParens,"$1"),n.push(q.point.apply(this,[t]));return this.geometryFactory.createMultiPoint(n)},linestring:function(e){if(void 0===e)return this.geometryFactory.createLineString();for(var t,A=e.trim().split(","),n=[],r=0,i=A.length;r<i;++r)t=A[r].trim().split(K.spaces),n.push(new m(Number.parseFloat(t[0]),Number.parseFloat(t[1])));return this.geometryFactory.createLineString(n)},linearring:function(e){if(void 0===e)return this.geometryFactory.createLinearRing();for(var t,A=e.trim().split(","),n=[],r=0,i=A.length;r<i;++r)t=A[r].trim().split(K.spaces),n.push(new m(Number.parseFloat(t[0]),Number.parseFloat(t[1])));return this.geometryFactory.createLinearRing(n)},multilinestring:function(e){if(void 0===e)return this.geometryFactory.createMultiLineString();for(var t,A=e.trim().split(K.parenComma),n=[],r=0,i=A.length;r<i;++r)t=A[r].replace(K.trimParens,"$1"),n.push(q.linestring.apply(this,[t]));return this.geometryFactory.createMultiLineString(n)},polygon:function(e){if(void 0===e)return this.geometryFactory.createPolygon();for(var t,A,n,r,i=e.trim().split(K.parenComma),o=[],a=0,s=i.length;a<s;++a)t=i[a].replace(K.trimParens,"$1"),A=q.linestring.apply(this,[t]),n=this.geometryFactory.createLinearRing(A._points),0===a?r=n:o.push(n);return this.geometryFactory.createPolygon(r,o)},multipolygon:function(e){if(void 0===e)return this.geometryFactory.createMultiPolygon();for(var t,A=e.trim().split(K.doubleParenComma),n=[],r=0,i=A.length;r<i;++r)t=A[r].replace(K.trimParens,"$1"),n.push(q.polygon.apply(this,[t]));return this.geometryFactory.createMultiPolygon(n)},geometrycollection:function(e){if(void 0===e)return this.geometryFactory.createGeometryCollection();for(var t=(e=e.replace(/,\s*([A-Za-z])/g,"|$1")).trim().split("|"),A=[],n=0,r=t.length;n<r;++n)A.push(this.read(t[n]));return this.geometryFactory.createGeometryCollection(A)}},z=function(e){this.parser=new W(e)};z.prototype.write=function(e){return this.parser.write(e)},z.toLineString=function(e,t){if(2!==arguments.length)throw new Error("Not implemented");return"LINESTRING ( "+e.x+" "+e.y+", "+t.x+" "+t.y+" )"};var $=function(e){function t(t){e.call(this,t),this.name="RuntimeException",this.message=t,this.stack=(new e).stack}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(Error),ee=function(e){function t(){if(e.call(this),0===arguments.length)e.call(this);else if(1===arguments.length){var t=arguments[0];e.call(this,t)}}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}($),te=function(){};te.prototype.interfaces_=function(){return[]},te.prototype.getClass=function(){return te},te.shouldNeverReachHere=function(){if(0===arguments.length)te.shouldNeverReachHere(null);else if(1===arguments.length){var e=arguments[0];throw new ee("Should never reach here"+(null!==e?": "+e:""))}},te.isTrue=function(){var e,t;if(1===arguments.length)e=arguments[0],te.isTrue(e,null);else if(2===arguments.length&&(e=arguments[0],t=arguments[1],!e))throw null===t?new ee:new ee(t)},te.equals=function(){var e,t,A;if(2===arguments.length)e=arguments[0],t=arguments[1],te.equals(e,t,null);else if(3===arguments.length&&(e=arguments[0],t=arguments[1],A=arguments[2],!t.equals(e)))throw new ee("Expected "+e+" but encountered "+t+(null!==A?": "+A:""))};var Ae=function(){this._result=null,this._inputLines=Array(2).fill().map((function(){return Array(2)})),this._intPt=new Array(2).fill(null),this._intLineIndex=null,this._isProper=null,this._pa=null,this._pb=null,this._precisionModel=null,this._intPt[0]=new m,this._intPt[1]=new m,this._pa=this._intPt[0],this._pb=this._intPt[1],this._result=0},ne={DONT_INTERSECT:{configurable:!0},DO_INTERSECT:{configurable:!0},COLLINEAR:{configurable:!0},NO_INTERSECTION:{configurable:!0},POINT_INTERSECTION:{configurable:!0},COLLINEAR_INTERSECTION:{configurable:!0}};Ae.prototype.getIndexAlongSegment=function(e,t){return this.computeIntLineIndex(),this._intLineIndex[e][t]},Ae.prototype.getTopologySummary=function(){var e=new x;return this.isEndPoint()&&e.append(" endpoint"),this._isProper&&e.append(" proper"),this.isCollinear()&&e.append(" collinear"),e.toString()},Ae.prototype.computeIntersection=function(e,t,A,n){this._inputLines[0][0]=e,this._inputLines[0][1]=t,this._inputLines[1][0]=A,this._inputLines[1][1]=n,this._result=this.computeIntersect(e,t,A,n)},Ae.prototype.getIntersectionNum=function(){return this._result},Ae.prototype.computeIntLineIndex=function(){if(0===arguments.length)null===this._intLineIndex&&(this._intLineIndex=Array(2).fill().map((function(){return Array(2)})),this.computeIntLineIndex(0),this.computeIntLineIndex(1));else if(1===arguments.length){var e=arguments[0];this.getEdgeDistance(e,0)>this.getEdgeDistance(e,1)?(this._intLineIndex[e][0]=0,this._intLineIndex[e][1]=1):(this._intLineIndex[e][0]=1,this._intLineIndex[e][1]=0)}},Ae.prototype.isProper=function(){return this.hasIntersection()&&this._isProper},Ae.prototype.setPrecisionModel=function(e){this._precisionModel=e},Ae.prototype.isInteriorIntersection=function(){if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){for(var e=arguments[0],t=0;t<this._result;t++)if(!this._intPt[t].equals2D(this._inputLines[e][0])&&!this._intPt[t].equals2D(this._inputLines[e][1]))return!0;return!1}},Ae.prototype.getIntersection=function(e){return this._intPt[e]},Ae.prototype.isEndPoint=function(){return this.hasIntersection()&&!this._isProper},Ae.prototype.hasIntersection=function(){return this._result!==Ae.NO_INTERSECTION},Ae.prototype.getEdgeDistance=function(e,t){return Ae.computeEdgeDistance(this._intPt[t],this._inputLines[e][0],this._inputLines[e][1])},Ae.prototype.isCollinear=function(){return this._result===Ae.COLLINEAR_INTERSECTION},Ae.prototype.toString=function(){return z.toLineString(this._inputLines[0][0],this._inputLines[0][1])+" - "+z.toLineString(this._inputLines[1][0],this._inputLines[1][1])+this.getTopologySummary()},Ae.prototype.getEndpoint=function(e,t){return this._inputLines[e][t]},Ae.prototype.isIntersection=function(e){for(var t=0;t<this._result;t++)if(this._intPt[t].equals2D(e))return!0;return!1},Ae.prototype.getIntersectionAlongSegment=function(e,t){return this.computeIntLineIndex(),this._intPt[this._intLineIndex[e][t]]},Ae.prototype.interfaces_=function(){return[]},Ae.prototype.getClass=function(){return Ae},Ae.computeEdgeDistance=function(e,t,A){var n=Math.abs(A.x-t.x),r=Math.abs(A.y-t.y),i=-1;if(e.equals(t))i=0;else if(e.equals(A))i=n>r?n:r;else{var o=Math.abs(e.x-t.x),a=Math.abs(e.y-t.y);0!==(i=n>r?o:a)||e.equals(t)||(i=Math.max(o,a))}return te.isTrue(!(0===i&&!e.equals(t)),"Bad distance calculation"),i},Ae.nonRobustComputeEdgeDistance=function(e,t,A){var n=e.x-t.x,r=e.y-t.y,i=Math.sqrt(n*n+r*r);return te.isTrue(!(0===i&&!e.equals(t)),"Invalid distance calculation"),i},ne.DONT_INTERSECT.get=function(){return 0},ne.DO_INTERSECT.get=function(){return 1},ne.COLLINEAR.get=function(){return 2},ne.NO_INTERSECTION.get=function(){return 0},ne.POINT_INTERSECTION.get=function(){return 1},ne.COLLINEAR_INTERSECTION.get=function(){return 2},Object.defineProperties(Ae,ne);var re=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.isInSegmentEnvelopes=function(e){var t=new P(this._inputLines[0][0],this._inputLines[0][1]),A=new P(this._inputLines[1][0],this._inputLines[1][1]);return t.contains(e)&&A.contains(e)},t.prototype.computeIntersection=function(){if(3!==arguments.length)return e.prototype.computeIntersection.apply(this,arguments);var t=arguments[0],A=arguments[1],n=arguments[2];if(this._isProper=!1,P.intersects(A,n,t)&&0===ae.orientationIndex(A,n,t)&&0===ae.orientationIndex(n,A,t))return this._isProper=!0,(t.equals(A)||t.equals(n))&&(this._isProper=!1),this._result=e.POINT_INTERSECTION,null;this._result=e.NO_INTERSECTION},t.prototype.normalizeToMinimum=function(e,t,A,n,r){r.x=this.smallestInAbsValue(e.x,t.x,A.x,n.x),r.y=this.smallestInAbsValue(e.y,t.y,A.y,n.y),e.x-=r.x,e.y-=r.y,t.x-=r.x,t.y-=r.y,A.x-=r.x,A.y-=r.y,n.x-=r.x,n.y-=r.y},t.prototype.safeHCoordinateIntersection=function(e,A,n,r){var i=null;try{i=j.intersection(e,A,n,r)}catch(o){if(!(o instanceof Y))throw o;i=t.nearestEndpoint(e,A,n,r)}return i},t.prototype.intersection=function(e,A,n,r){var i=this.intersectionWithNormalization(e,A,n,r);return this.isInSegmentEnvelopes(i)||(i=new m(t.nearestEndpoint(e,A,n,r))),null!==this._precisionModel&&this._precisionModel.makePrecise(i),i},t.prototype.smallestInAbsValue=function(e,t,A,n){var r=e,i=Math.abs(r);return Math.abs(t)<i&&(r=t,i=Math.abs(t)),Math.abs(A)<i&&(r=A,i=Math.abs(A)),Math.abs(n)<i&&(r=n),r},t.prototype.checkDD=function(e,t,A,n,r){var i=O.intersection(e,t,A,n),o=this.isInSegmentEnvelopes(i);J.out.println("DD in env = "+o+" --------------------- "+i),r.distance(i)>1e-4&&J.out.println("Distance = "+r.distance(i))},t.prototype.intersectionWithNormalization=function(e,t,A,n){var r=new m(e),i=new m(t),o=new m(A),a=new m(n),s=new m;this.normalizeToEnvCentre(r,i,o,a,s);var g=this.safeHCoordinateIntersection(r,i,o,a);return g.x+=s.x,g.y+=s.y,g},t.prototype.computeCollinearIntersection=function(t,A,n,r){var i=P.intersects(t,A,n),o=P.intersects(t,A,r),a=P.intersects(n,r,t),s=P.intersects(n,r,A);return i&&o?(this._intPt[0]=n,this._intPt[1]=r,e.COLLINEAR_INTERSECTION):a&&s?(this._intPt[0]=t,this._intPt[1]=A,e.COLLINEAR_INTERSECTION):i&&a?(this._intPt[0]=n,this._intPt[1]=t,!n.equals(t)||o||s?e.COLLINEAR_INTERSECTION:e.POINT_INTERSECTION):i&&s?(this._intPt[0]=n,this._intPt[1]=A,!n.equals(A)||o||a?e.COLLINEAR_INTERSECTION:e.POINT_INTERSECTION):o&&a?(this._intPt[0]=r,this._intPt[1]=t,!r.equals(t)||i||s?e.COLLINEAR_INTERSECTION:e.POINT_INTERSECTION):o&&s?(this._intPt[0]=r,this._intPt[1]=A,!r.equals(A)||i||a?e.COLLINEAR_INTERSECTION:e.POINT_INTERSECTION):e.NO_INTERSECTION},t.prototype.normalizeToEnvCentre=function(e,t,A,n,r){var i=e.x<t.x?e.x:t.x,o=e.y<t.y?e.y:t.y,a=e.x>t.x?e.x:t.x,s=e.y>t.y?e.y:t.y,g=A.x<n.x?A.x:n.x,c=A.y<n.y?A.y:n.y,u=A.x>n.x?A.x:n.x,l=A.y>n.y?A.y:n.y,I=((i>g?i:g)+(a<u?a:u))/2,C=((o>c?o:c)+(s<l?s:l))/2;r.x=I,r.y=C,e.x-=r.x,e.y-=r.y,t.x-=r.x,t.y-=r.y,A.x-=r.x,A.y-=r.y,n.x-=r.x,n.y-=r.y},t.prototype.computeIntersect=function(t,A,n,r){if(this._isProper=!1,!P.intersects(t,A,n,r))return e.NO_INTERSECTION;var i=ae.orientationIndex(t,A,n),o=ae.orientationIndex(t,A,r);if(i>0&&o>0||i<0&&o<0)return e.NO_INTERSECTION;var a=ae.orientationIndex(n,r,t),s=ae.orientationIndex(n,r,A);return a>0&&s>0||a<0&&s<0?e.NO_INTERSECTION:0===i&&0===o&&0===a&&0===s?this.computeCollinearIntersection(t,A,n,r):(0===i||0===o||0===a||0===s?(this._isProper=!1,t.equals2D(n)||t.equals2D(r)?this._intPt[0]=t:A.equals2D(n)||A.equals2D(r)?this._intPt[0]=A:0===i?this._intPt[0]=new m(n):0===o?this._intPt[0]=new m(r):0===a?this._intPt[0]=new m(t):0===s&&(this._intPt[0]=new m(A))):(this._isProper=!0,this._intPt[0]=this.intersection(t,A,n,r)),e.POINT_INTERSECTION)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t.nearestEndpoint=function(e,t,A,n){var r=e,i=ae.distancePointLine(e,A,n),o=ae.distancePointLine(t,A,n);return o<i&&(i=o,r=t),(o=ae.distancePointLine(A,e,t))<i&&(i=o,r=A),(o=ae.distancePointLine(n,e,t))<i&&(i=o,r=n),r},t}(Ae),ie=function(){};ie.prototype.interfaces_=function(){return[]},ie.prototype.getClass=function(){return ie},ie.orientationIndex=function(e,t,A){var n=t.x-e.x,r=t.y-e.y,i=A.x-t.x,o=A.y-t.y;return ie.signOfDet2x2(n,r,i,o)},ie.signOfDet2x2=function(e,t,A,n){var r=null,i=null,o=null;if(r=1,0===e||0===n)return 0===t||0===A?0:t>0?A>0?-r:r:A>0?r:-r;if(0===t||0===A)return n>0?e>0?r:-r:e>0?-r:r;if(t>0?n>0?t<=n||(r=-r,i=e,e=A,A=i,i=t,t=n,n=i):t<=-n?(r=-r,A=-A,n=-n):(i=e,e=-A,A=i,i=t,t=-n,n=i):n>0?-t<=n?(r=-r,e=-e,t=-t):(i=-e,e=A,A=i,i=-t,t=n,n=i):t>=n?(e=-e,t=-t,A=-A,n=-n):(r=-r,i=-e,e=-A,A=i,i=-t,t=-n,n=i),e>0){if(!(A>0))return r;if(!(e<=A))return r}else{if(A>0)return-r;if(!(e>=A))return-r;r=-r,e=-e,A=-A}for(;;){if((n-=(o=Math.floor(A/e))*t)<0)return-r;if(n>t)return r;if(e>(A-=o*e)+A){if(t<n+n)return r}else{if(t>n+n)return-r;A=e-A,n=t-n,r=-r}if(0===n)return 0===A?0:-r;if(0===A)return r;if((t-=(o=Math.floor(e/A))*n)<0)return r;if(t>n)return-r;if(A>(e-=o*A)+e){if(n<t+t)return-r}else{if(n>t+t)return r;e=A-e,t=n-t,r=-r}if(0===t)return 0===e?0:r;if(0===e)return-r}};var oe=function(){this._p=null,this._crossingCount=0,this._isPointOnSegment=!1;var e=arguments[0];this._p=e};oe.prototype.countSegment=function(e,t){if(e.x<this._p.x&&t.x<this._p.x)return null;if(this._p.x===t.x&&this._p.y===t.y)return this._isPointOnSegment=!0,null;if(e.y===this._p.y&&t.y===this._p.y){var A=e.x,n=t.x;return A>n&&(A=t.x,n=e.x),this._p.x>=A&&this._p.x<=n&&(this._isPointOnSegment=!0),null}if(e.y>this._p.y&&t.y<=this._p.y||t.y>this._p.y&&e.y<=this._p.y){var r=e.x-this._p.x,i=e.y-this._p.y,o=t.x-this._p.x,a=t.y-this._p.y,s=ie.signOfDet2x2(r,i,o,a);if(0===s)return this._isPointOnSegment=!0,null;a<i&&(s=-s),s>0&&this._crossingCount++}},oe.prototype.isPointInPolygon=function(){return this.getLocation()!==F.EXTERIOR},oe.prototype.getLocation=function(){return this._isPointOnSegment?F.BOUNDARY:this._crossingCount%2==1?F.INTERIOR:F.EXTERIOR},oe.prototype.isOnSegment=function(){return this._isPointOnSegment},oe.prototype.interfaces_=function(){return[]},oe.prototype.getClass=function(){return oe},oe.locatePointInRing=function(){if(arguments[0]instanceof m&&D(arguments[1],T)){for(var e=arguments[0],t=arguments[1],A=new oe(e),n=new m,r=new m,i=1;i<t.size();i++)if(t.getCoordinate(i,n),t.getCoordinate(i-1,r),A.countSegment(n,r),A.isOnSegment())return A.getLocation();return A.getLocation()}if(arguments[0]instanceof m&&arguments[1]instanceof Array){for(var o=arguments[0],a=arguments[1],s=new oe(o),g=1;g<a.length;g++){var c=a[g],u=a[g-1];if(s.countSegment(c,u),s.isOnSegment())return s.getLocation()}return s.getLocation()}};var ae=function(){},se={CLOCKWISE:{configurable:!0},RIGHT:{configurable:!0},COUNTERCLOCKWISE:{configurable:!0},LEFT:{configurable:!0},COLLINEAR:{configurable:!0},STRAIGHT:{configurable:!0}};ae.prototype.interfaces_=function(){return[]},ae.prototype.getClass=function(){return ae},ae.orientationIndex=function(e,t,A){return O.orientationIndex(e,t,A)},ae.signedArea=function(){if(arguments[0]instanceof Array){var e=arguments[0];if(e.length<3)return 0;for(var t=0,A=e[0].x,n=1;n<e.length-1;n++){var r=e[n].x-A,i=e[n+1].y;t+=r*(e[n-1].y-i)}return t/2}if(D(arguments[0],T)){var o=arguments[0],a=o.size();if(a<3)return 0;var s=new m,g=new m,c=new m;o.getCoordinate(0,g),o.getCoordinate(1,c);var u=g.x;c.x-=u;for(var l=0,I=1;I<a-1;I++)s.y=g.y,g.x=c.x,g.y=c.y,o.getCoordinate(I+1,c),c.x-=u,l+=g.x*(s.y-c.y);return l/2}},ae.distanceLineLine=function(e,t,A,n){if(e.equals(t))return ae.distancePointLine(e,A,n);if(A.equals(n))return ae.distancePointLine(n,e,t);var r=!1;if(P.intersects(e,t,A,n)){var i=(t.x-e.x)*(n.y-A.y)-(t.y-e.y)*(n.x-A.x);if(0===i)r=!0;else{var o=(e.y-A.y)*(n.x-A.x)-(e.x-A.x)*(n.y-A.y),a=((e.y-A.y)*(t.x-e.x)-(e.x-A.x)*(t.y-e.y))/i,s=o/i;(s<0||s>1||a<0||a>1)&&(r=!0)}}else r=!0;return r?G.min(ae.distancePointLine(e,A,n),ae.distancePointLine(t,A,n),ae.distancePointLine(A,e,t),ae.distancePointLine(n,e,t)):0},ae.isPointInRing=function(e,t){return ae.locatePointInRing(e,t)!==F.EXTERIOR},ae.computeLength=function(e){var t=e.size();if(t<=1)return 0;var A=0,n=new m;e.getCoordinate(0,n);for(var r=n.x,i=n.y,o=1;o<t;o++){e.getCoordinate(o,n);var a=n.x,s=n.y,g=a-r,c=s-i;A+=Math.sqrt(g*g+c*c),r=a,i=s}return A},ae.isCCW=function(e){var t=e.length-1;if(t<3)throw new B("Ring has fewer than 4 points, so orientation cannot be determined");for(var A=e[0],n=0,r=1;r<=t;r++){var i=e[r];i.y>A.y&&(A=i,n=r)}var o=n;do{(o-=1)<0&&(o=t)}while(e[o].equals2D(A)&&o!==n);var a=n;do{a=(a+1)%t}while(e[a].equals2D(A)&&a!==n);var s=e[o],g=e[a];if(s.equals2D(A)||g.equals2D(A)||s.equals2D(g))return!1;var c=ae.computeOrientation(s,A,g);return 0===c?s.x>g.x:c>0},ae.locatePointInRing=function(e,t){return oe.locatePointInRing(e,t)},ae.distancePointLinePerpendicular=function(e,t,A){var n=(A.x-t.x)*(A.x-t.x)+(A.y-t.y)*(A.y-t.y),r=((t.y-e.y)*(A.x-t.x)-(t.x-e.x)*(A.y-t.y))/n;return Math.abs(r)*Math.sqrt(n)},ae.computeOrientation=function(e,t,A){return ae.orientationIndex(e,t,A)},ae.distancePointLine=function(){if(2===arguments.length){var e=arguments[0],t=arguments[1];if(0===t.length)throw new B("Line array must contain at least one vertex");for(var A=e.distance(t[0]),n=0;n<t.length-1;n++){var r=ae.distancePointLine(e,t[n],t[n+1]);r<A&&(A=r)}return A}if(3===arguments.length){var i=arguments[0],o=arguments[1],a=arguments[2];if(o.x===a.x&&o.y===a.y)return i.distance(o);var s=(a.x-o.x)*(a.x-o.x)+(a.y-o.y)*(a.y-o.y),g=((i.x-o.x)*(a.x-o.x)+(i.y-o.y)*(a.y-o.y))/s;if(g<=0)return i.distance(o);if(g>=1)return i.distance(a);var c=((o.y-i.y)*(a.x-o.x)-(o.x-i.x)*(a.y-o.y))/s;return Math.abs(c)*Math.sqrt(s)}},ae.isOnLine=function(e,t){for(var A=new re,n=1;n<t.length;n++){var r=t[n-1],i=t[n];if(A.computeIntersection(e,r,i),A.hasIntersection())return!0}return!1},se.CLOCKWISE.get=function(){return-1},se.RIGHT.get=function(){return ae.CLOCKWISE},se.COUNTERCLOCKWISE.get=function(){return 1},se.LEFT.get=function(){return ae.COUNTERCLOCKWISE},se.COLLINEAR.get=function(){return 0},se.STRAIGHT.get=function(){return ae.COLLINEAR},Object.defineProperties(ae,se);var ge=function(){};ge.prototype.filter=function(e){},ge.prototype.interfaces_=function(){return[]},ge.prototype.getClass=function(){return ge};var ce=function(){var e=arguments[0];this._envelope=null,this._factory=null,this._SRID=null,this._userData=null,this._factory=e,this._SRID=e.getSRID()},ue={serialVersionUID:{configurable:!0},SORTINDEX_POINT:{configurable:!0},SORTINDEX_MULTIPOINT:{configurable:!0},SORTINDEX_LINESTRING:{configurable:!0},SORTINDEX_LINEARRING:{configurable:!0},SORTINDEX_MULTILINESTRING:{configurable:!0},SORTINDEX_POLYGON:{configurable:!0},SORTINDEX_MULTIPOLYGON:{configurable:!0},SORTINDEX_GEOMETRYCOLLECTION:{configurable:!0},geometryChangedFilter:{configurable:!0}};ce.prototype.isGeometryCollection=function(){return this.getSortIndex()===ce.SORTINDEX_GEOMETRYCOLLECTION},ce.prototype.getFactory=function(){return this._factory},ce.prototype.getGeometryN=function(e){return this},ce.prototype.getArea=function(){return 0},ce.prototype.isRectangle=function(){return!1},ce.prototype.equals=function(){if(arguments[0]instanceof ce){var e=arguments[0];return null!==e&&this.equalsTopo(e)}if(arguments[0]instanceof Object){var t=arguments[0];if(!(t instanceof ce))return!1;var A=t;return this.equalsExact(A)}},ce.prototype.equalsExact=function(e){return this===e||this.equalsExact(e,0)},ce.prototype.geometryChanged=function(){this.apply(ce.geometryChangedFilter)},ce.prototype.geometryChangedAction=function(){this._envelope=null},ce.prototype.equalsNorm=function(e){return null!==e&&this.norm().equalsExact(e.norm())},ce.prototype.getLength=function(){return 0},ce.prototype.getNumGeometries=function(){return 1},ce.prototype.compareTo=function(){if(1===arguments.length){var e=arguments[0],t=e;return this.getSortIndex()!==t.getSortIndex()?this.getSortIndex()-t.getSortIndex():this.isEmpty()&&t.isEmpty()?0:this.isEmpty()?-1:t.isEmpty()?1:this.compareToSameClass(e)}if(2===arguments.length){var A=arguments[0],n=arguments[1];return this.getSortIndex()!==A.getSortIndex()?this.getSortIndex()-A.getSortIndex():this.isEmpty()&&A.isEmpty()?0:this.isEmpty()?-1:A.isEmpty()?1:this.compareToSameClass(A,n)}},ce.prototype.getUserData=function(){return this._userData},ce.prototype.getSRID=function(){return this._SRID},ce.prototype.getEnvelope=function(){return this.getFactory().toGeometry(this.getEnvelopeInternal())},ce.prototype.checkNotGeometryCollection=function(e){if(e.getSortIndex()===ce.SORTINDEX_GEOMETRYCOLLECTION)throw new B("This method does not support GeometryCollection arguments")},ce.prototype.equal=function(e,t,A){return 0===A?e.equals(t):e.distance(t)<=A},ce.prototype.norm=function(){var e=this.copy();return e.normalize(),e},ce.prototype.getPrecisionModel=function(){return this._factory.getPrecisionModel()},ce.prototype.getEnvelopeInternal=function(){return null===this._envelope&&(this._envelope=this.computeEnvelopeInternal()),new P(this._envelope)},ce.prototype.setSRID=function(e){this._SRID=e},ce.prototype.setUserData=function(e){this._userData=e},ce.prototype.compare=function(e,t){for(var A=e.iterator(),n=t.iterator();A.hasNext()&&n.hasNext();){var r=A.next(),i=n.next(),o=r.compareTo(i);if(0!==o)return o}return A.hasNext()?1:n.hasNext()?-1:0},ce.prototype.hashCode=function(){return this.getEnvelopeInternal().hashCode()},ce.prototype.isGeometryCollectionOrDerived=function(){return this.getSortIndex()===ce.SORTINDEX_GEOMETRYCOLLECTION||this.getSortIndex()===ce.SORTINDEX_MULTIPOINT||this.getSortIndex()===ce.SORTINDEX_MULTILINESTRING||this.getSortIndex()===ce.SORTINDEX_MULTIPOLYGON},ce.prototype.interfaces_=function(){return[y,Q,t]},ce.prototype.getClass=function(){return ce},ce.hasNonEmptyElements=function(e){for(var t=0;t<e.length;t++)if(!e[t].isEmpty())return!0;return!1},ce.hasNullElements=function(e){for(var t=0;t<e.length;t++)if(null===e[t])return!0;return!1},ue.serialVersionUID.get=function(){return 0x799ea46522854c00},ue.SORTINDEX_POINT.get=function(){return 0},ue.SORTINDEX_MULTIPOINT.get=function(){return 1},ue.SORTINDEX_LINESTRING.get=function(){return 2},ue.SORTINDEX_LINEARRING.get=function(){return 3},ue.SORTINDEX_MULTILINESTRING.get=function(){return 4},ue.SORTINDEX_POLYGON.get=function(){return 5},ue.SORTINDEX_MULTIPOLYGON.get=function(){return 6},ue.SORTINDEX_GEOMETRYCOLLECTION.get=function(){return 7},ue.geometryChangedFilter.get=function(){return le},Object.defineProperties(ce,ue);var le=function(){};le.interfaces_=function(){return[ge]},le.filter=function(e){e.geometryChangedAction()};var Ie=function(){};Ie.prototype.filter=function(e){},Ie.prototype.interfaces_=function(){return[]},Ie.prototype.getClass=function(){return Ie};var Ce=function(){},he={Mod2BoundaryNodeRule:{configurable:!0},EndPointBoundaryNodeRule:{configurable:!0},MultiValentEndPointBoundaryNodeRule:{configurable:!0},MonoValentEndPointBoundaryNodeRule:{configurable:!0},MOD2_BOUNDARY_RULE:{configurable:!0},ENDPOINT_BOUNDARY_RULE:{configurable:!0},MULTIVALENT_ENDPOINT_BOUNDARY_RULE:{configurable:!0},MONOVALENT_ENDPOINT_BOUNDARY_RULE:{configurable:!0},OGC_SFS_BOUNDARY_RULE:{configurable:!0}};Ce.prototype.isInBoundary=function(e){},Ce.prototype.interfaces_=function(){return[]},Ce.prototype.getClass=function(){return Ce},he.Mod2BoundaryNodeRule.get=function(){return fe},he.EndPointBoundaryNodeRule.get=function(){return de},he.MultiValentEndPointBoundaryNodeRule.get=function(){return Be},he.MonoValentEndPointBoundaryNodeRule.get=function(){return pe},he.MOD2_BOUNDARY_RULE.get=function(){return new fe},he.ENDPOINT_BOUNDARY_RULE.get=function(){return new de},he.MULTIVALENT_ENDPOINT_BOUNDARY_RULE.get=function(){return new Be},he.MONOVALENT_ENDPOINT_BOUNDARY_RULE.get=function(){return new pe},he.OGC_SFS_BOUNDARY_RULE.get=function(){return Ce.MOD2_BOUNDARY_RULE},Object.defineProperties(Ce,he);var fe=function(){};fe.prototype.isInBoundary=function(e){return e%2==1},fe.prototype.interfaces_=function(){return[Ce]},fe.prototype.getClass=function(){return fe};var de=function(){};de.prototype.isInBoundary=function(e){return e>0},de.prototype.interfaces_=function(){return[Ce]},de.prototype.getClass=function(){return de};var Be=function(){};Be.prototype.isInBoundary=function(e){return e>1},Be.prototype.interfaces_=function(){return[Ce]},Be.prototype.getClass=function(){return Be};var pe=function(){};pe.prototype.isInBoundary=function(e){return 1===e},pe.prototype.interfaces_=function(){return[Ce]},pe.prototype.getClass=function(){return pe};var Ee=function(){};Ee.prototype.add=function(){},Ee.prototype.addAll=function(){},Ee.prototype.isEmpty=function(){},Ee.prototype.iterator=function(){},Ee.prototype.size=function(){},Ee.prototype.toArray=function(){},Ee.prototype.remove=function(){},(A.prototype=new Error).name="IndexOutOfBoundsException";var Qe=function(){};Qe.prototype.hasNext=function(){},Qe.prototype.next=function(){},Qe.prototype.remove=function(){};var ye=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.get=function(){},t.prototype.set=function(){},t.prototype.isEmpty=function(){},t}(Ee);(n.prototype=new Error).name="NoSuchElementException";var ve=function(e){function t(){e.call(this),this.array_=[],arguments[0]instanceof Ee&&this.addAll(arguments[0])}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.ensureCapacity=function(){},t.prototype.interfaces_=function(){return[e,Ee]},t.prototype.add=function(e){return 1===arguments.length?this.array_.push(e):this.array_.splice(arguments[0],arguments[1]),!0},t.prototype.clear=function(){this.array_=[]},t.prototype.addAll=function(e){for(var t=e.iterator();t.hasNext();)this.add(t.next());return!0},t.prototype.set=function(e,t){var A=this.array_[e];return this.array_[e]=t,A},t.prototype.iterator=function(){return new me(this)},t.prototype.get=function(e){if(e<0||e>=this.size())throw new A;return this.array_[e]},t.prototype.isEmpty=function(){return 0===this.array_.length},t.prototype.size=function(){return this.array_.length},t.prototype.toArray=function(){for(var e=[],t=0,A=this.array_.length;t<A;t++)e.push(this.array_[t]);return e},t.prototype.remove=function(e){for(var t=!1,A=0,n=this.array_.length;A<n;A++)if(this.array_[A]===e){this.array_.splice(A,1),t=!0;break}return t},t}(ye),me=function(e){function t(t){e.call(this),this.arrayList_=t,this.position_=0}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.next=function(){if(this.position_===this.arrayList_.size())throw new n;return this.arrayList_.get(this.position_++)},t.prototype.hasNext=function(){return this.position_<this.arrayList_.size()},t.prototype.set=function(e){return this.arrayList_.set(this.position_-1,e)},t.prototype.remove=function(){this.arrayList_.remove(this.arrayList_.get(this.position_))},t}(Qe),be=function(e){function t(){if(e.call(this),0===arguments.length);else if(1===arguments.length){var t=arguments[0];this.ensureCapacity(t.length),this.add(t,!0)}else if(2===arguments.length){var A=arguments[0],n=arguments[1];this.ensureCapacity(A.length),this.add(A,n)}}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={coordArrayType:{configurable:!0}};return A.coordArrayType.get=function(){return new Array(0).fill(null)},t.prototype.getCoordinate=function(e){return this.get(e)},t.prototype.addAll=function(){if(2===arguments.length){for(var t=arguments[0],A=arguments[1],n=!1,r=t.iterator();r.hasNext();)this.add(r.next(),A),n=!0;return n}return e.prototype.addAll.apply(this,arguments)},t.prototype.clone=function(){for(var t=e.prototype.clone.call(this),A=0;A<this.size();A++)t.add(A,this.get(A).copy());return t},t.prototype.toCoordinateArray=function(){return this.toArray(t.coordArrayType)},t.prototype.add=function(){if(1===arguments.length){var t=arguments[0];e.prototype.add.call(this,t)}else if(2===arguments.length){if(arguments[0]instanceof Array&&"boolean"==typeof arguments[1]){var A=arguments[0],n=arguments[1];return this.add(A,n,!0),!0}if(arguments[0]instanceof m&&"boolean"==typeof arguments[1]){var r=arguments[0];if(!arguments[1]&&this.size()>=1&&this.get(this.size()-1).equals2D(r))return null;e.prototype.add.call(this,r)}else if(arguments[0]instanceof Object&&"boolean"==typeof arguments[1]){var i=arguments[0],o=arguments[1];return this.add(i,o),!0}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&arguments[0]instanceof Array&&"boolean"==typeof arguments[1]){var a=arguments[0],s=arguments[1];if(arguments[2])for(var g=0;g<a.length;g++)this.add(a[g],s);else for(var c=a.length-1;c>=0;c--)this.add(a[c],s);return!0}if("boolean"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof m){var u=arguments[0],l=arguments[1];if(!arguments[2]){var I=this.size();if(I>0){if(u>0&&this.get(u-1).equals2D(l))return null;if(u<I&&this.get(u).equals2D(l))return null}}e.prototype.add.call(this,u,l)}}else if(4===arguments.length){var C=arguments[0],h=arguments[1],f=arguments[2],d=arguments[3],B=1;f>d&&(B=-1);for(var p=f;p!==d;p+=B)this.add(C[p],h);return!0}},t.prototype.closeRing=function(){this.size()>0&&this.add(new m(this.get(0)),!1)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},Object.defineProperties(t,A),t}(ve),we=function(){},Se={ForwardComparator:{configurable:!0},BidirectionalComparator:{configurable:!0},coordArrayType:{configurable:!0}};Se.ForwardComparator.get=function(){return Fe},Se.BidirectionalComparator.get=function(){return Re},Se.coordArrayType.get=function(){return new Array(0).fill(null)},we.prototype.interfaces_=function(){return[]},we.prototype.getClass=function(){return we},we.isRing=function(e){return!(e.length<4)&&!!e[0].equals2D(e[e.length-1])},we.ptNotInList=function(e,t){for(var A=0;A<e.length;A++){var n=e[A];if(we.indexOf(n,t)<0)return n}return null},we.scroll=function(e,t){var A=we.indexOf(t,e);if(A<0)return null;var n=new Array(e.length).fill(null);J.arraycopy(e,A,n,0,e.length-A),J.arraycopy(e,0,n,e.length-A,A),J.arraycopy(n,0,e,0,e.length)},we.equals=function(){if(2===arguments.length){var e=arguments[0],t=arguments[1];if(e===t)return!0;if(null===e||null===t)return!1;if(e.length!==t.length)return!1;for(var A=0;A<e.length;A++)if(!e[A].equals(t[A]))return!1;return!0}if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2];if(n===r)return!0;if(null===n||null===r)return!1;if(n.length!==r.length)return!1;for(var o=0;o<n.length;o++)if(0!==i.compare(n[o],r[o]))return!1;return!0}},we.intersection=function(e,t){for(var A=new be,n=0;n<e.length;n++)t.intersects(e[n])&&A.add(e[n],!0);return A.toCoordinateArray()},we.hasRepeatedPoints=function(e){for(var t=1;t<e.length;t++)if(e[t-1].equals(e[t]))return!0;return!1},we.removeRepeatedPoints=function(e){return we.hasRepeatedPoints(e)?new be(e,!1).toCoordinateArray():e},we.reverse=function(e){for(var t=e.length-1,A=Math.trunc(t/2),n=0;n<=A;n++){var r=e[n];e[n]=e[t-n],e[t-n]=r}},we.removeNull=function(e){for(var t=0,A=0;A<e.length;A++)null!==e[A]&&t++;var n=new Array(t).fill(null);if(0===t)return n;for(var r=0,i=0;i<e.length;i++)null!==e[i]&&(n[r++]=e[i]);return n},we.copyDeep=function(){if(1===arguments.length){for(var e=arguments[0],t=new Array(e.length).fill(null),A=0;A<e.length;A++)t[A]=new m(e[A]);return t}if(5===arguments.length)for(var n=arguments[0],r=arguments[1],i=arguments[2],o=arguments[3],a=arguments[4],s=0;s<a;s++)i[o+s]=new m(n[r+s])},we.isEqualReversed=function(e,t){for(var A=0;A<e.length;A++){var n=e[A],r=t[e.length-A-1];if(0!==n.compareTo(r))return!1}return!0},we.envelope=function(e){for(var t=new P,A=0;A<e.length;A++)t.expandToInclude(e[A]);return t},we.toCoordinateArray=function(e){return e.toArray(we.coordArrayType)},we.atLeastNCoordinatesOrNothing=function(e,t){return t.length>=e?t:[]},we.indexOf=function(e,t){for(var A=0;A<t.length;A++)if(e.equals(t[A]))return A;return-1},we.increasingDirection=function(e){for(var t=0;t<Math.trunc(e.length/2);t++){var A=e.length-1-t,n=e[t].compareTo(e[A]);if(0!==n)return n}return 1},we.compare=function(e,t){for(var A=0;A<e.length&&A<t.length;){var n=e[A].compareTo(t[A]);if(0!==n)return n;A++}return A<t.length?-1:A<e.length?1:0},we.minCoordinate=function(e){for(var t=null,A=0;A<e.length;A++)(null===t||t.compareTo(e[A])>0)&&(t=e[A]);return t},we.extract=function(e,t,A){t=G.clamp(t,0,e.length);var n=(A=G.clamp(A,-1,e.length))-t+1;A<0&&(n=0),t>=e.length&&(n=0),A<t&&(n=0);var r=new Array(n).fill(null);if(0===n)return r;for(var i=0,o=t;o<=A;o++)r[i++]=e[o];return r},Object.defineProperties(we,Se);var Fe=function(){};Fe.prototype.compare=function(e,t){return we.compare(e,t)},Fe.prototype.interfaces_=function(){return[v]},Fe.prototype.getClass=function(){return Fe};var Re=function(){};Re.prototype.compare=function(e,t){var A=e,n=t;if(A.length<n.length)return-1;if(A.length>n.length)return 1;if(0===A.length)return 0;var r=we.compare(A,n);return we.isEqualReversed(A,n)?0:r},Re.prototype.OLDcompare=function(e,t){var A=e,n=t;if(A.length<n.length)return-1;if(A.length>n.length)return 1;if(0===A.length)return 0;for(var r=we.increasingDirection(A),i=we.increasingDirection(n),o=r>0?0:A.length-1,a=i>0?0:A.length-1,s=0;s<A.length;s++){var g=A[o].compareTo(n[a]);if(0!==g)return g;o+=r,a+=i}return 0},Re.prototype.interfaces_=function(){return[v]},Re.prototype.getClass=function(){return Re};var De=function(){};De.prototype.get=function(){},De.prototype.put=function(){},De.prototype.size=function(){},De.prototype.values=function(){},De.prototype.entrySet=function(){};var Ge=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(De);(r.prototype=new Error).name="OperationNotSupported",(i.prototype=new Ee).contains=function(){};var ke=function(e){function t(){e.call(this),this.array_=[],arguments[0]instanceof Ee&&this.addAll(arguments[0])}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.contains=function(e){for(var t=0,A=this.array_.length;t<A;t++)if(this.array_[t]===e)return!0;return!1},t.prototype.add=function(e){return!this.contains(e)&&(this.array_.push(e),!0)},t.prototype.addAll=function(e){for(var t=e.iterator();t.hasNext();)this.add(t.next());return!0},t.prototype.remove=function(e){throw new Error},t.prototype.size=function(){return this.array_.length},t.prototype.isEmpty=function(){return 0===this.array_.length},t.prototype.toArray=function(){for(var e=[],t=0,A=this.array_.length;t<A;t++)e.push(this.array_[t]);return e},t.prototype.iterator=function(){return new xe(this)},t}(i),xe=function(e){function t(t){e.call(this),this.hashSet_=t,this.position_=0}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.next=function(){if(this.position_===this.hashSet_.size())throw new n;return this.hashSet_.array_[this.position_++]},t.prototype.hasNext=function(){return this.position_<this.hashSet_.size()},t.prototype.remove=function(){throw new r},t}(Qe),Ne=0;(u.prototype=new Ge).get=function(e){for(var t=this.root_;null!==t;){var A=e.compareTo(t.key);if(A<0)t=t.left;else{if(!(A>0))return t.value;t=t.right}}return null},u.prototype.put=function(e,t){if(null===this.root_)return this.root_={key:e,value:t,left:null,right:null,parent:null,color:Ne,getValue:function(){return this.value},getKey:function(){return this.key}},this.size_=1,null;var A,n,r=this.root_;do{if(A=r,(n=e.compareTo(r.key))<0)r=r.left;else{if(!(n>0)){var i=r.value;return r.value=t,i}r=r.right}}while(null!==r);var o={key:e,left:null,right:null,value:t,parent:A,color:Ne,getValue:function(){return this.value},getKey:function(){return this.key}};return n<0?A.left=o:A.right=o,this.fixAfterInsertion(o),this.size_++,null},u.prototype.fixAfterInsertion=function(e){for(e.color=1;null!=e&&e!==this.root_&&1===e.parent.color;)if(a(e)===g(a(a(e)))){var t=c(a(a(e)));1===o(t)?(s(a(e),Ne),s(t,Ne),s(a(a(e)),1),e=a(a(e))):(e===c(a(e))&&(e=a(e),this.rotateLeft(e)),s(a(e),Ne),s(a(a(e)),1),this.rotateRight(a(a(e))))}else{var A=g(a(a(e)));1===o(A)?(s(a(e),Ne),s(A,Ne),s(a(a(e)),1),e=a(a(e))):(e===g(a(e))&&(e=a(e),this.rotateRight(e)),s(a(e),Ne),s(a(a(e)),1),this.rotateLeft(a(a(e))))}this.root_.color=Ne},u.prototype.values=function(){var e=new ve,t=this.getFirstEntry();if(null!==t)for(e.add(t.value);null!==(t=u.successor(t));)e.add(t.value);return e},u.prototype.entrySet=function(){var e=new ke,t=this.getFirstEntry();if(null!==t)for(e.add(t);null!==(t=u.successor(t));)e.add(t);return e},u.prototype.rotateLeft=function(e){if(null!=e){var t=e.right;e.right=t.left,null!=t.left&&(t.left.parent=e),t.parent=e.parent,null===e.parent?this.root_=t:e.parent.left===e?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t}},u.prototype.rotateRight=function(e){if(null!=e){var t=e.left;e.left=t.right,null!=t.right&&(t.right.parent=e),t.parent=e.parent,null===e.parent?this.root_=t:e.parent.right===e?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t}},u.prototype.getFirstEntry=function(){var e=this.root_;if(null!=e)for(;null!=e.left;)e=e.left;return e},u.successor=function(e){if(null===e)return null;if(null!==e.right){for(var t=e.right;null!==t.left;)t=t.left;return t}for(var A=e.parent,n=e;null!==A&&n===A.right;)n=A,A=A.parent;return A},u.prototype.size=function(){return this.size_};var Ue=function(){};Ue.prototype.interfaces_=function(){return[]},Ue.prototype.getClass=function(){return Ue},l.prototype=new i,(I.prototype=new l).contains=function(e){for(var t=0,A=this.array_.length;t<A;t++)if(0===this.array_[t].compareTo(e))return!0;return!1},I.prototype.add=function(e){if(this.contains(e))return!1;for(var t=0,A=this.array_.length;t<A;t++)if(1===this.array_[t].compareTo(e))return this.array_.splice(t,0,e),!0;return this.array_.push(e),!0},I.prototype.addAll=function(e){for(var t=e.iterator();t.hasNext();)this.add(t.next());return!0},I.prototype.remove=function(e){throw new r},I.prototype.size=function(){return this.array_.length},I.prototype.isEmpty=function(){return 0===this.array_.length},I.prototype.toArray=function(){for(var e=[],t=0,A=this.array_.length;t<A;t++)e.push(this.array_[t]);return e},I.prototype.iterator=function(){return new _e(this)};var _e=function(e){this.treeSet_=e,this.position_=0};_e.prototype.next=function(){if(this.position_===this.treeSet_.size())throw new n;return this.treeSet_.array_[this.position_++]},_e.prototype.hasNext=function(){return this.position_<this.treeSet_.size()},_e.prototype.remove=function(){throw new r};var Me=function(){};Me.sort=function(){var e,t,A,n,r=arguments[0];if(1===arguments.length)n=function(e,t){return e.compareTo(t)},r.sort(n);else if(2===arguments.length)A=arguments[1],n=function(e,t){return A.compare(e,t)},r.sort(n);else if(3===arguments.length){(t=r.slice(arguments[1],arguments[2])).sort();var i=r.slice(0,arguments[1]).concat(t,r.slice(arguments[2],r.length));for(r.splice(0,r.length),e=0;e<i.length;e++)r.push(i[e])}else if(4===arguments.length)for(t=r.slice(arguments[1],arguments[2]),A=arguments[3],n=function(e,t){return A.compare(e,t)},t.sort(n),i=r.slice(0,arguments[1]).concat(t,r.slice(arguments[2],r.length)),r.splice(0,r.length),e=0;e<i.length;e++)r.push(i[e])},Me.asList=function(e){for(var t=new ve,A=0,n=e.length;A<n;A++)t.add(e[A]);return t};var Oe=function(){},Le={P:{configurable:!0},L:{configurable:!0},A:{configurable:!0},FALSE:{configurable:!0},TRUE:{configurable:!0},DONTCARE:{configurable:!0},SYM_FALSE:{configurable:!0},SYM_TRUE:{configurable:!0},SYM_DONTCARE:{configurable:!0},SYM_P:{configurable:!0},SYM_L:{configurable:!0},SYM_A:{configurable:!0}};Le.P.get=function(){return 0},Le.L.get=function(){return 1},Le.A.get=function(){return 2},Le.FALSE.get=function(){return-1},Le.TRUE.get=function(){return-2},Le.DONTCARE.get=function(){return-3},Le.SYM_FALSE.get=function(){return"F"},Le.SYM_TRUE.get=function(){return"T"},Le.SYM_DONTCARE.get=function(){return"*"},Le.SYM_P.get=function(){return"0"},Le.SYM_L.get=function(){return"1"},Le.SYM_A.get=function(){return"2"},Oe.prototype.interfaces_=function(){return[]},Oe.prototype.getClass=function(){return Oe},Oe.toDimensionSymbol=function(e){switch(e){case Oe.FALSE:return Oe.SYM_FALSE;case Oe.TRUE:return Oe.SYM_TRUE;case Oe.DONTCARE:return Oe.SYM_DONTCARE;case Oe.P:return Oe.SYM_P;case Oe.L:return Oe.SYM_L;case Oe.A:return Oe.SYM_A}throw new B("Unknown dimension value: "+e)},Oe.toDimensionValue=function(e){switch(U.toUpperCase(e)){case Oe.SYM_FALSE:return Oe.FALSE;case Oe.SYM_TRUE:return Oe.TRUE;case Oe.SYM_DONTCARE:return Oe.DONTCARE;case Oe.SYM_P:return Oe.P;case Oe.SYM_L:return Oe.L;case Oe.SYM_A:return Oe.A}throw new B("Unknown dimension symbol: "+e)},Object.defineProperties(Oe,Le);var Te=function(){};Te.prototype.filter=function(e){},Te.prototype.interfaces_=function(){return[]},Te.prototype.getClass=function(){return Te};var Ze=function(){};Ze.prototype.filter=function(e,t){},Ze.prototype.isDone=function(){},Ze.prototype.isGeometryChanged=function(){},Ze.prototype.interfaces_=function(){return[]},Ze.prototype.getClass=function(){return Ze};var He=function(e){function t(t,A){if(e.call(this,A),this._geometries=t||[],e.hasNullElements(this._geometries))throw new B("geometries must not contain null elements")}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={serialVersionUID:{configurable:!0}};return t.prototype.computeEnvelopeInternal=function(){for(var e=new P,t=0;t<this._geometries.length;t++)e.expandToInclude(this._geometries[t].getEnvelopeInternal());return e},t.prototype.getGeometryN=function(e){return this._geometries[e]},t.prototype.getSortIndex=function(){return e.SORTINDEX_GEOMETRYCOLLECTION},t.prototype.getCoordinates=function(){for(var e=new Array(this.getNumPoints()).fill(null),t=-1,A=0;A<this._geometries.length;A++)for(var n=this._geometries[A].getCoordinates(),r=0;r<n.length;r++)e[++t]=n[r];return e},t.prototype.getArea=function(){for(var e=0,t=0;t<this._geometries.length;t++)e+=this._geometries[t].getArea();return e},t.prototype.equalsExact=function(){if(2===arguments.length){var t=arguments[0],A=arguments[1];if(!this.isEquivalentClass(t))return!1;var n=t;if(this._geometries.length!==n._geometries.length)return!1;for(var r=0;r<this._geometries.length;r++)if(!this._geometries[r].equalsExact(n._geometries[r],A))return!1;return!0}return e.prototype.equalsExact.apply(this,arguments)},t.prototype.normalize=function(){for(var e=0;e<this._geometries.length;e++)this._geometries[e].normalize();Me.sort(this._geometries)},t.prototype.getCoordinate=function(){return this.isEmpty()?null:this._geometries[0].getCoordinate()},t.prototype.getBoundaryDimension=function(){for(var e=Oe.FALSE,t=0;t<this._geometries.length;t++)e=Math.max(e,this._geometries[t].getBoundaryDimension());return e},t.prototype.getDimension=function(){for(var e=Oe.FALSE,t=0;t<this._geometries.length;t++)e=Math.max(e,this._geometries[t].getDimension());return e},t.prototype.getLength=function(){for(var e=0,t=0;t<this._geometries.length;t++)e+=this._geometries[t].getLength();return e},t.prototype.getNumPoints=function(){for(var e=0,t=0;t<this._geometries.length;t++)e+=this._geometries[t].getNumPoints();return e},t.prototype.getNumGeometries=function(){return this._geometries.length},t.prototype.reverse=function(){for(var e=this._geometries.length,t=new Array(e).fill(null),A=0;A<this._geometries.length;A++)t[A]=this._geometries[A].reverse();return this.getFactory().createGeometryCollection(t)},t.prototype.compareToSameClass=function(){if(1===arguments.length){var e=arguments[0],t=new I(Me.asList(this._geometries)),A=new I(Me.asList(e._geometries));return this.compare(t,A)}if(2===arguments.length){for(var n=arguments[0],r=arguments[1],i=n,o=this.getNumGeometries(),a=i.getNumGeometries(),s=0;s<o&&s<a;){var g=this.getGeometryN(s),c=i.getGeometryN(s),u=g.compareToSameClass(c,r);if(0!==u)return u;s++}return s<o?1:s<a?-1:0}},t.prototype.apply=function(){if(D(arguments[0],Ie))for(var e=arguments[0],t=0;t<this._geometries.length;t++)this._geometries[t].apply(e);else if(D(arguments[0],Ze)){var A=arguments[0];if(0===this._geometries.length)return null;for(var n=0;n<this._geometries.length&&(this._geometries[n].apply(A),!A.isDone());n++);A.isGeometryChanged()&&this.geometryChanged()}else if(D(arguments[0],Te)){var r=arguments[0];r.filter(this);for(var i=0;i<this._geometries.length;i++)this._geometries[i].apply(r)}else if(D(arguments[0],ge)){var o=arguments[0];o.filter(this);for(var a=0;a<this._geometries.length;a++)this._geometries[a].apply(o)}},t.prototype.getBoundary=function(){return this.checkNotGeometryCollection(this),te.shouldNeverReachHere(),null},t.prototype.clone=function(){var t=e.prototype.clone.call(this);t._geometries=new Array(this._geometries.length).fill(null);for(var A=0;A<this._geometries.length;A++)t._geometries[A]=this._geometries[A].clone();return t},t.prototype.getGeometryType=function(){return"GeometryCollection"},t.prototype.copy=function(){for(var e=new Array(this._geometries.length).fill(null),A=0;A<e.length;A++)e[A]=this._geometries[A].copy();return new t(e,this._factory)},t.prototype.isEmpty=function(){for(var e=0;e<this._geometries.length;e++)if(!this._geometries[e].isEmpty())return!1;return!0},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},A.serialVersionUID.get=function(){return-0x4f07bcb1f857d800},Object.defineProperties(t,A),t}(ce),Ye=function(e){function t(){e.apply(this,arguments)}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={serialVersionUID:{configurable:!0}};return t.prototype.getSortIndex=function(){return ce.SORTINDEX_MULTILINESTRING},t.prototype.equalsExact=function(){if(2===arguments.length){var t=arguments[0],A=arguments[1];return!!this.isEquivalentClass(t)&&e.prototype.equalsExact.call(this,t,A)}return e.prototype.equalsExact.apply(this,arguments)},t.prototype.getBoundaryDimension=function(){return this.isClosed()?Oe.FALSE:0},t.prototype.isClosed=function(){if(this.isEmpty())return!1;for(var e=0;e<this._geometries.length;e++)if(!this._geometries[e].isClosed())return!1;return!0},t.prototype.getDimension=function(){return 1},t.prototype.reverse=function(){for(var e=this._geometries.length,t=new Array(e).fill(null),A=0;A<this._geometries.length;A++)t[e-1-A]=this._geometries[A].reverse();return this.getFactory().createMultiLineString(t)},t.prototype.getBoundary=function(){return new Je(this).getBoundary()},t.prototype.getGeometryType=function(){return"MultiLineString"},t.prototype.copy=function(){for(var e=new Array(this._geometries.length).fill(null),A=0;A<e.length;A++)e[A]=this._geometries[A].copy();return new t(e,this._factory)},t.prototype.interfaces_=function(){return[Ue]},t.prototype.getClass=function(){return t},A.serialVersionUID.get=function(){return 0x7155d2ab4afa8000},Object.defineProperties(t,A),t}(He),Je=function(){if(this._geom=null,this._geomFact=null,this._bnRule=null,this._endpointMap=null,1===arguments.length){var e=arguments[0],t=Ce.MOD2_BOUNDARY_RULE;this._geom=e,this._geomFact=e.getFactory(),this._bnRule=t}else if(2===arguments.length){var A=arguments[0],n=arguments[1];this._geom=A,this._geomFact=A.getFactory(),this._bnRule=n}};Je.prototype.boundaryMultiLineString=function(e){if(this._geom.isEmpty())return this.getEmptyMultiPoint();var t=this.computeBoundaryCoordinates(e);return 1===t.length?this._geomFact.createPoint(t[0]):this._geomFact.createMultiPointFromCoords(t)},Je.prototype.getBoundary=function(){return this._geom instanceof We?this.boundaryLineString(this._geom):this._geom instanceof Ye?this.boundaryMultiLineString(this._geom):this._geom.getBoundary()},Je.prototype.boundaryLineString=function(e){return this._geom.isEmpty()?this.getEmptyMultiPoint():e.isClosed()?this._bnRule.isInBoundary(2)?e.getStartPoint():this._geomFact.createMultiPoint():this._geomFact.createMultiPoint([e.getStartPoint(),e.getEndPoint()])},Je.prototype.getEmptyMultiPoint=function(){return this._geomFact.createMultiPoint()},Je.prototype.computeBoundaryCoordinates=function(e){var t=new ve;this._endpointMap=new u;for(var A=0;A<e.getNumGeometries();A++){var n=e.getGeometryN(A);0!==n.getNumPoints()&&(this.addEndpoint(n.getCoordinateN(0)),this.addEndpoint(n.getCoordinateN(n.getNumPoints()-1)))}for(var r=this._endpointMap.entrySet().iterator();r.hasNext();){var i=r.next(),o=i.getValue().count;this._bnRule.isInBoundary(o)&&t.add(i.getKey())}return we.toCoordinateArray(t)},Je.prototype.addEndpoint=function(e){var t=this._endpointMap.get(e);null===t&&(t=new je,this._endpointMap.put(e,t)),t.count++},Je.prototype.interfaces_=function(){return[]},Je.prototype.getClass=function(){return Je},Je.getBoundary=function(){if(1===arguments.length){var e=arguments[0];return new Je(e).getBoundary()}if(2===arguments.length){var t=arguments[0],A=arguments[1];return new Je(t,A).getBoundary()}};var je=function(){this.count=null};je.prototype.interfaces_=function(){return[]},je.prototype.getClass=function(){return je};var Pe=function(){},Ve={NEWLINE:{configurable:!0},SIMPLE_ORDINATE_FORMAT:{configurable:!0}};Pe.prototype.interfaces_=function(){return[]},Pe.prototype.getClass=function(){return Pe},Pe.chars=function(e,t){for(var A=new Array(t).fill(null),n=0;n<t;n++)A[n]=e;return String(A)},Pe.getStackTrace=function(){if(1===arguments.length){var e=arguments[0],t=new function(){},A=new function(){}(t);return e.printStackTrace(A),t.toString()}if(2===arguments.length){for(var n=arguments[0],r=arguments[1],i="",o=new function(){}(new function(){}(Pe.getStackTrace(n))),a=0;a<r;a++)try{i+=o.readLine()+Pe.NEWLINE}catch(e){if(!(e instanceof C))throw e;te.shouldNeverReachHere()}return i}},Pe.split=function(e,t){for(var A=t.length,n=new ve,r=""+e,i=r.indexOf(t);i>=0;){var o=r.substring(0,i);n.add(o),i=(r=r.substring(i+A)).indexOf(t)}r.length>0&&n.add(r);for(var a=new Array(n.size()).fill(null),s=0;s<a.length;s++)a[s]=n.get(s);return a},Pe.toString=function(){if(1===arguments.length){var e=arguments[0];return Pe.SIMPLE_ORDINATE_FORMAT.format(e)}},Pe.spaces=function(e){return Pe.chars(" ",e)},Ve.NEWLINE.get=function(){return J.getProperty("line.separator")},Ve.SIMPLE_ORDINATE_FORMAT.get=function(){return new function(){}("0.#")},Object.defineProperties(Pe,Ve);var Ke=function(){};Ke.prototype.interfaces_=function(){return[]},Ke.prototype.getClass=function(){return Ke},Ke.copyCoord=function(e,t,A,n){for(var r=Math.min(e.getDimension(),A.getDimension()),i=0;i<r;i++)A.setOrdinate(n,i,e.getOrdinate(t,i))},Ke.isRing=function(e){var t=e.size();return 0===t||!(t<=3)&&e.getOrdinate(0,T.X)===e.getOrdinate(t-1,T.X)&&e.getOrdinate(0,T.Y)===e.getOrdinate(t-1,T.Y)},Ke.isEqual=function(e,t){var A=e.size();if(A!==t.size())return!1;for(var n=Math.min(e.getDimension(),t.getDimension()),r=0;r<A;r++)for(var i=0;i<n;i++){var o=e.getOrdinate(r,i),a=t.getOrdinate(r,i);if(e.getOrdinate(r,i)!==t.getOrdinate(r,i)&&(!p.isNaN(o)||!p.isNaN(a)))return!1}return!0},Ke.extend=function(e,t,A){var n=e.create(A,t.getDimension()),r=t.size();if(Ke.copy(t,0,n,0,r),r>0)for(var i=r;i<A;i++)Ke.copy(t,r-1,n,i,1);return n},Ke.reverse=function(e){for(var t=e.size()-1,A=Math.trunc(t/2),n=0;n<=A;n++)Ke.swap(e,n,t-n)},Ke.swap=function(e,t,A){if(t===A)return null;for(var n=0;n<e.getDimension();n++){var r=e.getOrdinate(t,n);e.setOrdinate(t,n,e.getOrdinate(A,n)),e.setOrdinate(A,n,r)}},Ke.copy=function(e,t,A,n,r){for(var i=0;i<r;i++)Ke.copyCoord(e,t+i,A,n+i)},Ke.toString=function(){if(1===arguments.length){var e=arguments[0],t=e.size();if(0===t)return"()";var A=e.getDimension(),n=new x;n.append("(");for(var r=0;r<t;r++){r>0&&n.append(" ");for(var i=0;i<A;i++)i>0&&n.append(","),n.append(Pe.toString(e.getOrdinate(r,i)))}return n.append(")"),n.toString()}},Ke.ensureValidRing=function(e,t){var A=t.size();return 0===A?t:A<=3?Ke.createClosedRing(e,t,4):t.getOrdinate(0,T.X)===t.getOrdinate(A-1,T.X)&&t.getOrdinate(0,T.Y)===t.getOrdinate(A-1,T.Y)?t:Ke.createClosedRing(e,t,A+1)},Ke.createClosedRing=function(e,t,A){var n=e.create(A,t.getDimension()),r=t.size();Ke.copy(t,0,n,0,r);for(var i=r;i<A;i++)Ke.copy(t,0,n,i,1);return n};var We=function(e){function t(t,A){e.call(this,A),this._points=null,this.init(t)}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={serialVersionUID:{configurable:!0}};return t.prototype.computeEnvelopeInternal=function(){return this.isEmpty()?new P:this._points.expandEnvelope(new P)},t.prototype.isRing=function(){return this.isClosed()&&this.isSimple()},t.prototype.getSortIndex=function(){return e.SORTINDEX_LINESTRING},t.prototype.getCoordinates=function(){return this._points.toCoordinateArray()},t.prototype.equalsExact=function(){if(2===arguments.length){var t=arguments[0],A=arguments[1];if(!this.isEquivalentClass(t))return!1;var n=t;if(this._points.size()!==n._points.size())return!1;for(var r=0;r<this._points.size();r++)if(!this.equal(this._points.getCoordinate(r),n._points.getCoordinate(r),A))return!1;return!0}return e.prototype.equalsExact.apply(this,arguments)},t.prototype.normalize=function(){for(var e=0;e<Math.trunc(this._points.size()/2);e++){var t=this._points.size()-1-e;if(!this._points.getCoordinate(e).equals(this._points.getCoordinate(t)))return this._points.getCoordinate(e).compareTo(this._points.getCoordinate(t))>0&&Ke.reverse(this._points),null}},t.prototype.getCoordinate=function(){return this.isEmpty()?null:this._points.getCoordinate(0)},t.prototype.getBoundaryDimension=function(){return this.isClosed()?Oe.FALSE:0},t.prototype.isClosed=function(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))},t.prototype.getEndPoint=function(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)},t.prototype.getDimension=function(){return 1},t.prototype.getLength=function(){return ae.computeLength(this._points)},t.prototype.getNumPoints=function(){return this._points.size()},t.prototype.reverse=function(){var e=this._points.copy();return Ke.reverse(e),this.getFactory().createLineString(e)},t.prototype.compareToSameClass=function(){if(1===arguments.length){for(var e=arguments[0],t=0,A=0;t<this._points.size()&&A<e._points.size();){var n=this._points.getCoordinate(t).compareTo(e._points.getCoordinate(A));if(0!==n)return n;t++,A++}return t<this._points.size()?1:A<e._points.size()?-1:0}if(2===arguments.length){var r=arguments[0];return arguments[1].compare(this._points,r._points)}},t.prototype.apply=function(){if(D(arguments[0],Ie))for(var e=arguments[0],t=0;t<this._points.size();t++)e.filter(this._points.getCoordinate(t));else if(D(arguments[0],Ze)){var A=arguments[0];if(0===this._points.size())return null;for(var n=0;n<this._points.size()&&(A.filter(this._points,n),!A.isDone());n++);A.isGeometryChanged()&&this.geometryChanged()}else(D(arguments[0],Te)||D(arguments[0],ge))&&arguments[0].filter(this)},t.prototype.getBoundary=function(){return new Je(this).getBoundary()},t.prototype.isEquivalentClass=function(e){return e instanceof t},t.prototype.clone=function(){var t=e.prototype.clone.call(this);return t._points=this._points.clone(),t},t.prototype.getCoordinateN=function(e){return this._points.getCoordinate(e)},t.prototype.getGeometryType=function(){return"LineString"},t.prototype.copy=function(){return new t(this._points.copy(),this._factory)},t.prototype.getCoordinateSequence=function(){return this._points},t.prototype.isEmpty=function(){return 0===this._points.size()},t.prototype.init=function(e){if(null===e&&(e=this.getFactory().getCoordinateSequenceFactory().create([])),1===e.size())throw new B("Invalid number of points in LineString (found "+e.size()+" - must be 0 or >= 2)");this._points=e},t.prototype.isCoordinate=function(e){for(var t=0;t<this._points.size();t++)if(this._points.getCoordinate(t).equals(e))return!0;return!1},t.prototype.getStartPoint=function(){return this.isEmpty()?null:this.getPointN(0)},t.prototype.getPointN=function(e){return this.getFactory().createPoint(this._points.getCoordinate(e))},t.prototype.interfaces_=function(){return[Ue]},t.prototype.getClass=function(){return t},A.serialVersionUID.get=function(){return 0x2b2b51ba435c8e00},Object.defineProperties(t,A),t}(ce),Xe=function(){};Xe.prototype.interfaces_=function(){return[]},Xe.prototype.getClass=function(){return Xe};var qe=function(e){function t(t,A){e.call(this,A),this._coordinates=t||null,this.init(this._coordinates)}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={serialVersionUID:{configurable:!0}};return t.prototype.computeEnvelopeInternal=function(){if(this.isEmpty())return new P;var e=new P;return e.expandToInclude(this._coordinates.getX(0),this._coordinates.getY(0)),e},t.prototype.getSortIndex=function(){return e.SORTINDEX_POINT},t.prototype.getCoordinates=function(){return this.isEmpty()?[]:[this.getCoordinate()]},t.prototype.equalsExact=function(){if(2===arguments.length){var t=arguments[0],A=arguments[1];return!!this.isEquivalentClass(t)&&(!(!this.isEmpty()||!t.isEmpty())||this.isEmpty()===t.isEmpty()&&this.equal(t.getCoordinate(),this.getCoordinate(),A))}return e.prototype.equalsExact.apply(this,arguments)},t.prototype.normalize=function(){},t.prototype.getCoordinate=function(){return 0!==this._coordinates.size()?this._coordinates.getCoordinate(0):null},t.prototype.getBoundaryDimension=function(){return Oe.FALSE},t.prototype.getDimension=function(){return 0},t.prototype.getNumPoints=function(){return this.isEmpty()?0:1},t.prototype.reverse=function(){return this.copy()},t.prototype.getX=function(){if(null===this.getCoordinate())throw new Error("getX called on empty Point");return this.getCoordinate().x},t.prototype.compareToSameClass=function(){if(1===arguments.length){var e=arguments[0];return this.getCoordinate().compareTo(e.getCoordinate())}if(2===arguments.length){var t=arguments[0];return arguments[1].compare(this._coordinates,t._coordinates)}},t.prototype.apply=function(){if(D(arguments[0],Ie)){var e=arguments[0];if(this.isEmpty())return null;e.filter(this.getCoordinate())}else if(D(arguments[0],Ze)){var t=arguments[0];if(this.isEmpty())return null;t.filter(this._coordinates,0),t.isGeometryChanged()&&this.geometryChanged()}else(D(arguments[0],Te)||D(arguments[0],ge))&&arguments[0].filter(this)},t.prototype.getBoundary=function(){return this.getFactory().createGeometryCollection(null)},t.prototype.clone=function(){var t=e.prototype.clone.call(this);return t._coordinates=this._coordinates.clone(),t},t.prototype.getGeometryType=function(){return"Point"},t.prototype.copy=function(){return new t(this._coordinates.copy(),this._factory)},t.prototype.getCoordinateSequence=function(){return this._coordinates},t.prototype.getY=function(){if(null===this.getCoordinate())throw new Error("getY called on empty Point");return this.getCoordinate().y},t.prototype.isEmpty=function(){return 0===this._coordinates.size()},t.prototype.init=function(e){null===e&&(e=this.getFactory().getCoordinateSequenceFactory().create([])),te.isTrue(e.size()<=1),this._coordinates=e},t.prototype.isSimple=function(){return!0},t.prototype.interfaces_=function(){return[Xe]},t.prototype.getClass=function(){return t},A.serialVersionUID.get=function(){return 0x44077bad161cbc00},Object.defineProperties(t,A),t}(ce),ze=function(){};ze.prototype.interfaces_=function(){return[]},ze.prototype.getClass=function(){return ze};var $e=function(e){function t(t,A,n){if(e.call(this,n),this._shell=null,this._holes=null,null===t&&(t=this.getFactory().createLinearRing()),null===A&&(A=[]),e.hasNullElements(A))throw new B("holes must not contain null elements");if(t.isEmpty()&&e.hasNonEmptyElements(A))throw new B("shell is empty but holes are not");this._shell=t,this._holes=A}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={serialVersionUID:{configurable:!0}};return t.prototype.computeEnvelopeInternal=function(){return this._shell.getEnvelopeInternal()},t.prototype.getSortIndex=function(){return e.SORTINDEX_POLYGON},t.prototype.getCoordinates=function(){if(this.isEmpty())return[];for(var e=new Array(this.getNumPoints()).fill(null),t=-1,A=this._shell.getCoordinates(),n=0;n<A.length;n++)e[++t]=A[n];for(var r=0;r<this._holes.length;r++)for(var i=this._holes[r].getCoordinates(),o=0;o<i.length;o++)e[++t]=i[o];return e},t.prototype.getArea=function(){var e=0;e+=Math.abs(ae.signedArea(this._shell.getCoordinateSequence()));for(var t=0;t<this._holes.length;t++)e-=Math.abs(ae.signedArea(this._holes[t].getCoordinateSequence()));return e},t.prototype.isRectangle=function(){if(0!==this.getNumInteriorRing())return!1;if(null===this._shell)return!1;if(5!==this._shell.getNumPoints())return!1;for(var e=this._shell.getCoordinateSequence(),t=this.getEnvelopeInternal(),A=0;A<5;A++){var n=e.getX(A);if(n!==t.getMinX()&&n!==t.getMaxX())return!1;var r=e.getY(A);if(r!==t.getMinY()&&r!==t.getMaxY())return!1}for(var i=e.getX(0),o=e.getY(0),a=1;a<=4;a++){var s=e.getX(a),g=e.getY(a);if(s!==i===(g!==o))return!1;i=s,o=g}return!0},t.prototype.equalsExact=function(){if(2===arguments.length){var t=arguments[0],A=arguments[1];if(!this.isEquivalentClass(t))return!1;var n=t,r=this._shell,i=n._shell;if(!r.equalsExact(i,A))return!1;if(this._holes.length!==n._holes.length)return!1;for(var o=0;o<this._holes.length;o++)if(!this._holes[o].equalsExact(n._holes[o],A))return!1;return!0}return e.prototype.equalsExact.apply(this,arguments)},t.prototype.normalize=function(){if(0===arguments.length){this.normalize(this._shell,!0);for(var e=0;e<this._holes.length;e++)this.normalize(this._holes[e],!1);Me.sort(this._holes)}else if(2===arguments.length){var t=arguments[0],A=arguments[1];if(t.isEmpty())return null;var n=new Array(t.getCoordinates().length-1).fill(null);J.arraycopy(t.getCoordinates(),0,n,0,n.length);var r=we.minCoordinate(t.getCoordinates());we.scroll(n,r),J.arraycopy(n,0,t.getCoordinates(),0,n.length),t.getCoordinates()[n.length]=n[0],ae.isCCW(t.getCoordinates())===A&&we.reverse(t.getCoordinates())}},t.prototype.getCoordinate=function(){return this._shell.getCoordinate()},t.prototype.getNumInteriorRing=function(){return this._holes.length},t.prototype.getBoundaryDimension=function(){return 1},t.prototype.getDimension=function(){return 2},t.prototype.getLength=function(){var e=0;e+=this._shell.getLength();for(var t=0;t<this._holes.length;t++)e+=this._holes[t].getLength();return e},t.prototype.getNumPoints=function(){for(var e=this._shell.getNumPoints(),t=0;t<this._holes.length;t++)e+=this._holes[t].getNumPoints();return e},t.prototype.reverse=function(){var e=this.copy();e._shell=this._shell.copy().reverse(),e._holes=new Array(this._holes.length).fill(null);for(var t=0;t<this._holes.length;t++)e._holes[t]=this._holes[t].copy().reverse();return e},t.prototype.convexHull=function(){return this.getExteriorRing().convexHull()},t.prototype.compareToSameClass=function(){if(1===arguments.length){var e=arguments[0],t=this._shell,A=e._shell;return t.compareToSameClass(A)}if(2===arguments.length){var n=arguments[0],r=arguments[1],i=n,o=this._shell,a=i._shell,s=o.compareToSameClass(a,r);if(0!==s)return s;for(var g=this.getNumInteriorRing(),c=i.getNumInteriorRing(),u=0;u<g&&u<c;){var l=this.getInteriorRingN(u),I=i.getInteriorRingN(u),C=l.compareToSameClass(I,r);if(0!==C)return C;u++}return u<g?1:u<c?-1:0}},t.prototype.apply=function(e){if(D(e,Ie)){this._shell.apply(e);for(var t=0;t<this._holes.length;t++)this._holes[t].apply(e)}else if(D(e,Ze)){if(this._shell.apply(e),!e.isDone())for(var A=0;A<this._holes.length&&(this._holes[A].apply(e),!e.isDone());A++);e.isGeometryChanged()&&this.geometryChanged()}else if(D(e,Te))e.filter(this);else if(D(e,ge)){e.filter(this),this._shell.apply(e);for(var n=0;n<this._holes.length;n++)this._holes[n].apply(e)}},t.prototype.getBoundary=function(){if(this.isEmpty())return this.getFactory().createMultiLineString();var e=new Array(this._holes.length+1).fill(null);e[0]=this._shell;for(var t=0;t<this._holes.length;t++)e[t+1]=this._holes[t];return e.length<=1?this.getFactory().createLinearRing(e[0].getCoordinateSequence()):this.getFactory().createMultiLineString(e)},t.prototype.clone=function(){var t=e.prototype.clone.call(this);t._shell=this._shell.clone(),t._holes=new Array(this._holes.length).fill(null);for(var A=0;A<this._holes.length;A++)t._holes[A]=this._holes[A].clone();return t},t.prototype.getGeometryType=function(){return"Polygon"},t.prototype.copy=function(){for(var e=this._shell.copy(),A=new Array(this._holes.length).fill(null),n=0;n<A.length;n++)A[n]=this._holes[n].copy();return new t(e,A,this._factory)},t.prototype.getExteriorRing=function(){return this._shell},t.prototype.isEmpty=function(){return this._shell.isEmpty()},t.prototype.getInteriorRingN=function(e){return this._holes[e]},t.prototype.interfaces_=function(){return[ze]},t.prototype.getClass=function(){return t},A.serialVersionUID.get=function(){return-0x307ffefd8dc97200},Object.defineProperties(t,A),t}(ce),et=function(e){function t(){e.apply(this,arguments)}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={serialVersionUID:{configurable:!0}};return t.prototype.getSortIndex=function(){return ce.SORTINDEX_MULTIPOINT},t.prototype.isValid=function(){return!0},t.prototype.equalsExact=function(){if(2===arguments.length){var t=arguments[0],A=arguments[1];return!!this.isEquivalentClass(t)&&e.prototype.equalsExact.call(this,t,A)}return e.prototype.equalsExact.apply(this,arguments)},t.prototype.getCoordinate=function(){if(1===arguments.length){var t=arguments[0];return this._geometries[t].getCoordinate()}return e.prototype.getCoordinate.apply(this,arguments)},t.prototype.getBoundaryDimension=function(){return Oe.FALSE},t.prototype.getDimension=function(){return 0},t.prototype.getBoundary=function(){return this.getFactory().createGeometryCollection(null)},t.prototype.getGeometryType=function(){return"MultiPoint"},t.prototype.copy=function(){for(var e=new Array(this._geometries.length).fill(null),A=0;A<e.length;A++)e[A]=this._geometries[A].copy();return new t(e,this._factory)},t.prototype.interfaces_=function(){return[Xe]},t.prototype.getClass=function(){return t},A.serialVersionUID.get=function(){return-0x6fb1ed4162e0fc00},Object.defineProperties(t,A),t}(He),tt=function(e){function t(t,A){t instanceof m&&A instanceof dt&&(t=A.getCoordinateSequenceFactory().create(t)),e.call(this,t,A),this.validateConstruction()}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={MINIMUM_VALID_SIZE:{configurable:!0},serialVersionUID:{configurable:!0}};return t.prototype.getSortIndex=function(){return ce.SORTINDEX_LINEARRING},t.prototype.getBoundaryDimension=function(){return Oe.FALSE},t.prototype.isClosed=function(){return!!this.isEmpty()||e.prototype.isClosed.call(this)},t.prototype.reverse=function(){var e=this._points.copy();return Ke.reverse(e),this.getFactory().createLinearRing(e)},t.prototype.validateConstruction=function(){if(!this.isEmpty()&&!e.prototype.isClosed.call(this))throw new B("Points of LinearRing do not form a closed linestring");if(this.getCoordinateSequence().size()>=1&&this.getCoordinateSequence().size()<t.MINIMUM_VALID_SIZE)throw new B("Invalid number of points in LinearRing (found "+this.getCoordinateSequence().size()+" - must be 0 or >= 4)")},t.prototype.getGeometryType=function(){return"LinearRing"},t.prototype.copy=function(){return new t(this._points.copy(),this._factory)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},A.MINIMUM_VALID_SIZE.get=function(){return 4},A.serialVersionUID.get=function(){return-0x3b229e262367a600},Object.defineProperties(t,A),t}(We),At=function(e){function t(){e.apply(this,arguments)}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={serialVersionUID:{configurable:!0}};return t.prototype.getSortIndex=function(){return ce.SORTINDEX_MULTIPOLYGON},t.prototype.equalsExact=function(){if(2===arguments.length){var t=arguments[0],A=arguments[1];return!!this.isEquivalentClass(t)&&e.prototype.equalsExact.call(this,t,A)}return e.prototype.equalsExact.apply(this,arguments)},t.prototype.getBoundaryDimension=function(){return 1},t.prototype.getDimension=function(){return 2},t.prototype.reverse=function(){for(var e=this._geometries.length,t=new Array(e).fill(null),A=0;A<this._geometries.length;A++)t[A]=this._geometries[A].reverse();return this.getFactory().createMultiPolygon(t)},t.prototype.getBoundary=function(){if(this.isEmpty())return this.getFactory().createMultiLineString();for(var e=new ve,t=0;t<this._geometries.length;t++)for(var A=this._geometries[t].getBoundary(),n=0;n<A.getNumGeometries();n++)e.add(A.getGeometryN(n));var r=new Array(e.size()).fill(null);return this.getFactory().createMultiLineString(e.toArray(r))},t.prototype.getGeometryType=function(){return"MultiPolygon"},t.prototype.copy=function(){for(var e=new Array(this._geometries.length).fill(null),A=0;A<e.length;A++)e[A]=this._geometries[A].copy();return new t(e,this._factory)},t.prototype.interfaces_=function(){return[ze]},t.prototype.getClass=function(){return t},A.serialVersionUID.get=function(){return-0x7a5aa1369171980},Object.defineProperties(t,A),t}(He),nt=function(e){this._factory=e||null,this._isUserDataCopied=!1},rt={NoOpGeometryOperation:{configurable:!0},CoordinateOperation:{configurable:!0},CoordinateSequenceOperation:{configurable:!0}};nt.prototype.setCopyUserData=function(e){this._isUserDataCopied=e},nt.prototype.edit=function(e,t){if(null===e)return null;var A=this.editInternal(e,t);return this._isUserDataCopied&&A.setUserData(e.getUserData()),A},nt.prototype.editInternal=function(e,t){return null===this._factory&&(this._factory=e.getFactory()),e instanceof He?this.editGeometryCollection(e,t):e instanceof $e?this.editPolygon(e,t):e instanceof qe||e instanceof We?t.edit(e,this._factory):(te.shouldNeverReachHere("Unsupported Geometry class: "+e.getClass().getName()),null)},nt.prototype.editGeometryCollection=function(e,t){for(var A=t.edit(e,this._factory),n=new ve,r=0;r<A.getNumGeometries();r++){var i=this.edit(A.getGeometryN(r),t);null===i||i.isEmpty()||n.add(i)}return A.getClass()===et?this._factory.createMultiPoint(n.toArray([])):A.getClass()===Ye?this._factory.createMultiLineString(n.toArray([])):A.getClass()===At?this._factory.createMultiPolygon(n.toArray([])):this._factory.createGeometryCollection(n.toArray([]))},nt.prototype.editPolygon=function(e,t){var A=t.edit(e,this._factory);if(null===A&&(A=this._factory.createPolygon(null)),A.isEmpty())return A;var n=this.edit(A.getExteriorRing(),t);if(null===n||n.isEmpty())return this._factory.createPolygon();for(var r=new ve,i=0;i<A.getNumInteriorRing();i++){var o=this.edit(A.getInteriorRingN(i),t);null===o||o.isEmpty()||r.add(o)}return this._factory.createPolygon(n,r.toArray([]))},nt.prototype.interfaces_=function(){return[]},nt.prototype.getClass=function(){return nt},nt.GeometryEditorOperation=function(){},rt.NoOpGeometryOperation.get=function(){return it},rt.CoordinateOperation.get=function(){return ot},rt.CoordinateSequenceOperation.get=function(){return at},Object.defineProperties(nt,rt);var it=function(){};it.prototype.edit=function(e,t){return e},it.prototype.interfaces_=function(){return[nt.GeometryEditorOperation]},it.prototype.getClass=function(){return it};var ot=function(){};ot.prototype.edit=function(e,t){var A=this.editCoordinates(e.getCoordinates(),e);return null===A?e:e instanceof tt?t.createLinearRing(A):e instanceof We?t.createLineString(A):e instanceof qe?A.length>0?t.createPoint(A[0]):t.createPoint():e},ot.prototype.interfaces_=function(){return[nt.GeometryEditorOperation]},ot.prototype.getClass=function(){return ot};var at=function(){};at.prototype.edit=function(e,t){return e instanceof tt?t.createLinearRing(this.edit(e.getCoordinateSequence(),e)):e instanceof We?t.createLineString(this.edit(e.getCoordinateSequence(),e)):e instanceof qe?t.createPoint(this.edit(e.getCoordinateSequence(),e)):e},at.prototype.interfaces_=function(){return[nt.GeometryEditorOperation]},at.prototype.getClass=function(){return at};var st=function(){if(this._dimension=3,this._coordinates=null,1===arguments.length){if(arguments[0]instanceof Array)this._coordinates=arguments[0],this._dimension=3;else if(Number.isInteger(arguments[0])){var e=arguments[0];this._coordinates=new Array(e).fill(null);for(var t=0;t<e;t++)this._coordinates[t]=new m}else if(D(arguments[0],T)){var A=arguments[0];if(null===A)return this._coordinates=new Array(0).fill(null),null;this._dimension=A.getDimension(),this._coordinates=new Array(A.size()).fill(null);for(var n=0;n<this._coordinates.length;n++)this._coordinates[n]=A.getCoordinateCopy(n)}}else if(2===arguments.length)if(arguments[0]instanceof Array&&Number.isInteger(arguments[1])){var r=arguments[0],i=arguments[1];this._coordinates=r,this._dimension=i,null===r&&(this._coordinates=new Array(0).fill(null))}else if(Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var o=arguments[0],a=arguments[1];this._coordinates=new Array(o).fill(null),this._dimension=a;for(var s=0;s<o;s++)this._coordinates[s]=new m}},gt={serialVersionUID:{configurable:!0}};st.prototype.setOrdinate=function(e,t,A){switch(t){case T.X:this._coordinates[e].x=A;break;case T.Y:this._coordinates[e].y=A;break;case T.Z:this._coordinates[e].z=A;break;default:throw new B("invalid ordinateIndex")}},st.prototype.size=function(){return this._coordinates.length},st.prototype.getOrdinate=function(e,t){switch(t){case T.X:return this._coordinates[e].x;case T.Y:return this._coordinates[e].y;case T.Z:return this._coordinates[e].z}return p.NaN},st.prototype.getCoordinate=function(){if(1===arguments.length){var e=arguments[0];return this._coordinates[e]}if(2===arguments.length){var t=arguments[0],A=arguments[1];A.x=this._coordinates[t].x,A.y=this._coordinates[t].y,A.z=this._coordinates[t].z}},st.prototype.getCoordinateCopy=function(e){return new m(this._coordinates[e])},st.prototype.getDimension=function(){return this._dimension},st.prototype.getX=function(e){return this._coordinates[e].x},st.prototype.clone=function(){for(var e=new Array(this.size()).fill(null),t=0;t<this._coordinates.length;t++)e[t]=this._coordinates[t].clone();return new st(e,this._dimension)},st.prototype.expandEnvelope=function(e){for(var t=0;t<this._coordinates.length;t++)e.expandToInclude(this._coordinates[t]);return e},st.prototype.copy=function(){for(var e=new Array(this.size()).fill(null),t=0;t<this._coordinates.length;t++)e[t]=this._coordinates[t].copy();return new st(e,this._dimension)},st.prototype.toString=function(){if(this._coordinates.length>0){var e=new x(17*this._coordinates.length);e.append("("),e.append(this._coordinates[0]);for(var t=1;t<this._coordinates.length;t++)e.append(", "),e.append(this._coordinates[t]);return e.append(")"),e.toString()}return"()"},st.prototype.getY=function(e){return this._coordinates[e].y},st.prototype.toCoordinateArray=function(){return this._coordinates},st.prototype.interfaces_=function(){return[T,t]},st.prototype.getClass=function(){return st},gt.serialVersionUID.get=function(){return-0xcb44a778db18e00},Object.defineProperties(st,gt);var ct=function(){},ut={serialVersionUID:{configurable:!0},instanceObject:{configurable:!0}};ct.prototype.readResolve=function(){return ct.instance()},ct.prototype.create=function(){if(1===arguments.length){if(arguments[0]instanceof Array){var e=arguments[0];return new st(e)}if(D(arguments[0],T)){var t=arguments[0];return new st(t)}}else if(2===arguments.length){var A=arguments[0],n=arguments[1];return n>3&&(n=3),n<2?new st(A):new st(A,n)}},ct.prototype.interfaces_=function(){return[S,t]},ct.prototype.getClass=function(){return ct},ct.instance=function(){return ct.instanceObject},ut.serialVersionUID.get=function(){return-0x38e49fa6cf6f2e00},ut.instanceObject.get=function(){return new ct},Object.defineProperties(ct,ut);var lt=function(e){function t(){e.call(this),this.map_=new Map}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.get=function(e){return this.map_.get(e)||null},t.prototype.put=function(e,t){return this.map_.set(e,t),t},t.prototype.values=function(){for(var e=new ve,t=this.map_.values(),A=t.next();!A.done;)e.add(A.value),A=t.next();return e},t.prototype.entrySet=function(){var e=new ke;return this.map_.entries().forEach((function(t){return e.add(t)})),e},t.prototype.size=function(){return this.map_.size()},t}(De),It=function e(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=e.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof ht){var t=arguments[0];this._modelType=t,t===e.FIXED&&this.setScale(1)}else if("number"==typeof arguments[0]){var A=arguments[0];this._modelType=e.FIXED,this.setScale(A)}else if(arguments[0]instanceof e){var n=arguments[0];this._modelType=n._modelType,this._scale=n._scale}},Ct={serialVersionUID:{configurable:!0},maximumPreciseValue:{configurable:!0}};It.prototype.equals=function(e){if(!(e instanceof It))return!1;var t=e;return this._modelType===t._modelType&&this._scale===t._scale},It.prototype.compareTo=function(e){var t=e,A=this.getMaximumSignificantDigits(),n=t.getMaximumSignificantDigits();return new N(A).compareTo(new N(n))},It.prototype.getScale=function(){return this._scale},It.prototype.isFloating=function(){return this._modelType===It.FLOATING||this._modelType===It.FLOATING_SINGLE},It.prototype.getType=function(){return this._modelType},It.prototype.toString=function(){var e="UNKNOWN";return this._modelType===It.FLOATING?e="Floating":this._modelType===It.FLOATING_SINGLE?e="Floating-Single":this._modelType===It.FIXED&&(e="Fixed (Scale="+this.getScale()+")"),e},It.prototype.makePrecise=function(){if("number"==typeof arguments[0]){var e=arguments[0];return p.isNaN(e)||this._modelType===It.FLOATING_SINGLE?e:this._modelType===It.FIXED?Math.round(e*this._scale)/this._scale:e}if(arguments[0]instanceof m){var t=arguments[0];if(this._modelType===It.FLOATING)return null;t.x=this.makePrecise(t.x),t.y=this.makePrecise(t.y)}},It.prototype.getMaximumSignificantDigits=function(){var e=16;return this._modelType===It.FLOATING?e=16:this._modelType===It.FLOATING_SINGLE?e=6:this._modelType===It.FIXED&&(e=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),e},It.prototype.setScale=function(e){this._scale=Math.abs(e)},It.prototype.interfaces_=function(){return[t,Q]},It.prototype.getClass=function(){return It},It.mostPrecise=function(e,t){return e.compareTo(t)>=0?e:t},Ct.serialVersionUID.get=function(){return 0x6bee6404e9a25c00},Ct.maximumPreciseValue.get=function(){return 9007199254740992},Object.defineProperties(It,Ct);var ht=function e(t){this._name=t||null,e.nameToTypeMap.put(t,this)},ft={serialVersionUID:{configurable:!0},nameToTypeMap:{configurable:!0}};ht.prototype.readResolve=function(){return ht.nameToTypeMap.get(this._name)},ht.prototype.toString=function(){return this._name},ht.prototype.interfaces_=function(){return[t]},ht.prototype.getClass=function(){return ht},ft.serialVersionUID.get=function(){return-552860263173159e4},ft.nameToTypeMap.get=function(){return new lt},Object.defineProperties(ht,ft),It.Type=ht,It.FIXED=new ht("FIXED"),It.FLOATING=new ht("FLOATING"),It.FLOATING_SINGLE=new ht("FLOATING SINGLE");var dt=function e(){this._precisionModel=new It,this._SRID=0,this._coordinateSequenceFactory=e.getDefaultCoordinateSequenceFactory(),0===arguments.length||(1===arguments.length?D(arguments[0],S)?this._coordinateSequenceFactory=arguments[0]:arguments[0]instanceof It&&(this._precisionModel=arguments[0]):2===arguments.length?(this._precisionModel=arguments[0],this._SRID=arguments[1]):3===arguments.length&&(this._precisionModel=arguments[0],this._SRID=arguments[1],this._coordinateSequenceFactory=arguments[2]))},Bt={serialVersionUID:{configurable:!0}};dt.prototype.toGeometry=function(e){return e.isNull()?this.createPoint(null):e.getMinX()===e.getMaxX()&&e.getMinY()===e.getMaxY()?this.createPoint(new m(e.getMinX(),e.getMinY())):e.getMinX()===e.getMaxX()||e.getMinY()===e.getMaxY()?this.createLineString([new m(e.getMinX(),e.getMinY()),new m(e.getMaxX(),e.getMaxY())]):this.createPolygon(this.createLinearRing([new m(e.getMinX(),e.getMinY()),new m(e.getMinX(),e.getMaxY()),new m(e.getMaxX(),e.getMaxY()),new m(e.getMaxX(),e.getMinY()),new m(e.getMinX(),e.getMinY())]),null)},dt.prototype.createLineString=function(e){return e?e instanceof Array?new We(this.getCoordinateSequenceFactory().create(e),this):D(e,T)?new We(e,this):void 0:new We(this.getCoordinateSequenceFactory().create([]),this)},dt.prototype.createMultiLineString=function(){if(0===arguments.length)return new Ye(null,this);if(1===arguments.length){var e=arguments[0];return new Ye(e,this)}},dt.prototype.buildGeometry=function(e){for(var t=null,A=!1,n=!1,r=e.iterator();r.hasNext();){var i=r.next(),o=i.getClass();null===t&&(t=o),o!==t&&(A=!0),i.isGeometryCollectionOrDerived()&&(n=!0)}if(null===t)return this.createGeometryCollection();if(A||n)return this.createGeometryCollection(dt.toGeometryArray(e));var a=e.iterator().next();if(e.size()>1){if(a instanceof $e)return this.createMultiPolygon(dt.toPolygonArray(e));if(a instanceof We)return this.createMultiLineString(dt.toLineStringArray(e));if(a instanceof qe)return this.createMultiPoint(dt.toPointArray(e));te.shouldNeverReachHere("Unhandled class: "+a.getClass().getName())}return a},dt.prototype.createMultiPointFromCoords=function(e){return this.createMultiPoint(null!==e?this.getCoordinateSequenceFactory().create(e):null)},dt.prototype.createPoint=function(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof m){var e=arguments[0];return this.createPoint(null!==e?this.getCoordinateSequenceFactory().create([e]):null)}if(D(arguments[0],T)){var t=arguments[0];return new qe(t,this)}}},dt.prototype.getCoordinateSequenceFactory=function(){return this._coordinateSequenceFactory},dt.prototype.createPolygon=function(){if(0===arguments.length)return new $e(null,null,this);if(1===arguments.length){if(D(arguments[0],T)){var e=arguments[0];return this.createPolygon(this.createLinearRing(e))}if(arguments[0]instanceof Array){var t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof tt){var A=arguments[0];return this.createPolygon(A,null)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];return new $e(n,r,this)}},dt.prototype.getSRID=function(){return this._SRID},dt.prototype.createGeometryCollection=function(){if(0===arguments.length)return new He(null,this);if(1===arguments.length){var e=arguments[0];return new He(e,this)}},dt.prototype.createGeometry=function(e){return new nt(this).edit(e,{edit:function(){if(2===arguments.length){var e=arguments[0];return this._coordinateSequenceFactory.create(e)}}})},dt.prototype.getPrecisionModel=function(){return this._precisionModel},dt.prototype.createLinearRing=function(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){var e=arguments[0];return this.createLinearRing(null!==e?this.getCoordinateSequenceFactory().create(e):null)}if(D(arguments[0],T)){var t=arguments[0];return new tt(t,this)}}},dt.prototype.createMultiPolygon=function(){if(0===arguments.length)return new At(null,this);if(1===arguments.length){var e=arguments[0];return new At(e,this)}},dt.prototype.createMultiPoint=function(){if(0===arguments.length)return new et(null,this);if(1===arguments.length){if(arguments[0]instanceof Array){var e=arguments[0];return new et(e,this)}if(arguments[0]instanceof Array){var t=arguments[0];return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(D(arguments[0],T)){var A=arguments[0];if(null===A)return this.createMultiPoint(new Array(0).fill(null));for(var n=new Array(A.size()).fill(null),r=0;r<A.size();r++){var i=this.getCoordinateSequenceFactory().create(1,A.getDimension());Ke.copy(A,r,i,0,1),n[r]=this.createPoint(i)}return this.createMultiPoint(n)}}},dt.prototype.interfaces_=function(){return[t]},dt.prototype.getClass=function(){return dt},dt.toMultiPolygonArray=function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)},dt.toGeometryArray=function(e){if(null===e)return null;var t=new Array(e.size()).fill(null);return e.toArray(t)},dt.getDefaultCoordinateSequenceFactory=function(){return ct.instance()},dt.toMultiLineStringArray=function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)},dt.toLineStringArray=function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)},dt.toMultiPointArray=function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)},dt.toLinearRingArray=function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)},dt.toPointArray=function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)},dt.toPolygonArray=function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)},dt.createPointFromInternalCoord=function(e,t){return t.getPrecisionModel().makePrecise(e),t.getFactory().createPoint(e)},Bt.serialVersionUID.get=function(){return-0x5ea75f2051eeb400},Object.defineProperties(dt,Bt);var pt=["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"],Et=function(e){this.geometryFactory=e||new dt};Et.prototype.read=function(e){var t,A=(t="string"==typeof e?JSON.parse(e):e).type;if(!Qt[A])throw new Error("Unknown GeoJSON type: "+t.type);return-1!==pt.indexOf(A)?Qt[A].apply(this,[t.coordinates]):"GeometryCollection"===A?Qt[A].apply(this,[t.geometries]):Qt[A].apply(this,[t])},Et.prototype.write=function(e){var t=e.getGeometryType();if(!yt[t])throw new Error("Geometry is not supported");return yt[t].apply(this,[e])};var Qt={Feature:function(e){var t={};for(var A in e)t[A]=e[A];if(e.geometry){var n=e.geometry.type;if(!Qt[n])throw new Error("Unknown GeoJSON type: "+e.type);t.geometry=this.read(e.geometry)}return e.bbox&&(t.bbox=Qt.bbox.apply(this,[e.bbox])),t},FeatureCollection:function(e){var t={};if(e.features){t.features=[];for(var A=0;A<e.features.length;++A)t.features.push(this.read(e.features[A]))}return e.bbox&&(t.bbox=this.parse.bbox.apply(this,[e.bbox])),t},coordinates:function(e){for(var t=[],A=0;A<e.length;++A){var n=e[A];t.push(new m(n[0],n[1]))}return t},bbox:function(e){return this.geometryFactory.createLinearRing([new m(e[0],e[1]),new m(e[2],e[1]),new m(e[2],e[3]),new m(e[0],e[3]),new m(e[0],e[1])])},Point:function(e){var t=new m(e[0],e[1]);return this.geometryFactory.createPoint(t)},MultiPoint:function(e){for(var t=[],A=0;A<e.length;++A)t.push(Qt.Point.apply(this,[e[A]]));return this.geometryFactory.createMultiPoint(t)},LineString:function(e){var t=Qt.coordinates.apply(this,[e]);return this.geometryFactory.createLineString(t)},MultiLineString:function(e){for(var t=[],A=0;A<e.length;++A)t.push(Qt.LineString.apply(this,[e[A]]));return this.geometryFactory.createMultiLineString(t)},Polygon:function(e){for(var t=Qt.coordinates.apply(this,[e[0]]),A=this.geometryFactory.createLinearRing(t),n=[],r=1;r<e.length;++r){var i=e[r],o=Qt.coordinates.apply(this,[i]),a=this.geometryFactory.createLinearRing(o);n.push(a)}return this.geometryFactory.createPolygon(A,n)},MultiPolygon:function(e){for(var t=[],A=0;A<e.length;++A){var n=e[A];t.push(Qt.Polygon.apply(this,[n]))}return this.geometryFactory.createMultiPolygon(t)},GeometryCollection:function(e){for(var t=[],A=0;A<e.length;++A){var n=e[A];t.push(this.read(n))}return this.geometryFactory.createGeometryCollection(t)}},yt={coordinate:function(e){return[e.x,e.y]},Point:function(e){return{type:"Point",coordinates:yt.coordinate.apply(this,[e.getCoordinate()])}},MultiPoint:function(e){for(var t=[],A=0;A<e._geometries.length;++A){var n=e._geometries[A],r=yt.Point.apply(this,[n]);t.push(r.coordinates)}return{type:"MultiPoint",coordinates:t}},LineString:function(e){for(var t=[],A=e.getCoordinates(),n=0;n<A.length;++n){var r=A[n];t.push(yt.coordinate.apply(this,[r]))}return{type:"LineString",coordinates:t}},MultiLineString:function(e){for(var t=[],A=0;A<e._geometries.length;++A){var n=e._geometries[A],r=yt.LineString.apply(this,[n]);t.push(r.coordinates)}return{type:"MultiLineString",coordinates:t}},Polygon:function(e){var t=[],A=yt.LineString.apply(this,[e._shell]);t.push(A.coordinates);for(var n=0;n<e._holes.length;++n){var r=e._holes[n],i=yt.LineString.apply(this,[r]);t.push(i.coordinates)}return{type:"Polygon",coordinates:t}},MultiPolygon:function(e){for(var t=[],A=0;A<e._geometries.length;++A){var n=e._geometries[A],r=yt.Polygon.apply(this,[n]);t.push(r.coordinates)}return{type:"MultiPolygon",coordinates:t}},GeometryCollection:function(e){for(var t=[],A=0;A<e._geometries.length;++A){var n=e._geometries[A],r=n.getGeometryType();t.push(yt[r].apply(this,[n]))}return{type:"GeometryCollection",geometries:t}}},vt=function(e){this.geometryFactory=e||new dt,this.precisionModel=this.geometryFactory.getPrecisionModel(),this.parser=new Et(this.geometryFactory)};vt.prototype.read=function(e){var t=this.parser.read(e);return this.precisionModel.getType()===It.FIXED&&this.reducePrecision(t),t},vt.prototype.reducePrecision=function(e){var t,A;if(e.coordinate)this.precisionModel.makePrecise(e.coordinate);else if(e.points)for(t=0,A=e.points.length;t<A;t++)this.precisionModel.makePrecise(e.points[t]);else if(e.geometries)for(t=0,A=e.geometries.length;t<A;t++)this.reducePrecision(e.geometries[t])};var mt=function(){this.parser=new Et(this.geometryFactory)};mt.prototype.write=function(e){return this.parser.write(e)};var bt=function(){},wt={ON:{configurable:!0},LEFT:{configurable:!0},RIGHT:{configurable:!0}};bt.prototype.interfaces_=function(){return[]},bt.prototype.getClass=function(){return bt},bt.opposite=function(e){return e===bt.LEFT?bt.RIGHT:e===bt.RIGHT?bt.LEFT:e},wt.ON.get=function(){return 0},wt.LEFT.get=function(){return 1},wt.RIGHT.get=function(){return 2},Object.defineProperties(bt,wt),(h.prototype=new Error).name="EmptyStackException",(f.prototype=new ye).add=function(e){return this.array_.push(e),!0},f.prototype.get=function(e){if(e<0||e>=this.size())throw new Error;return this.array_[e]},f.prototype.push=function(e){return this.array_.push(e),e},f.prototype.pop=function(e){if(0===this.array_.length)throw new h;return this.array_.pop()},f.prototype.peek=function(){if(0===this.array_.length)throw new h;return this.array_[this.array_.length-1]},f.prototype.empty=function(){return 0===this.array_.length},f.prototype.isEmpty=function(){return this.empty()},f.prototype.search=function(e){return this.array_.indexOf(e)},f.prototype.size=function(){return this.array_.length},f.prototype.toArray=function(){for(var e=[],t=0,A=this.array_.length;t<A;t++)e.push(this.array_[t]);return e};var St=function(){this._minIndex=-1,this._minCoord=null,this._minDe=null,this._orientedDe=null};St.prototype.getCoordinate=function(){return this._minCoord},St.prototype.getRightmostSide=function(e,t){var A=this.getRightmostSideOfSegment(e,t);return A<0&&(A=this.getRightmostSideOfSegment(e,t-1)),A<0&&(this._minCoord=null,this.checkForRightmostCoordinate(e)),A},St.prototype.findRightmostEdgeAtVertex=function(){var e=this._minDe.getEdge().getCoordinates();te.isTrue(this._minIndex>0&&this._minIndex<e.length,"rightmost point expected to be interior vertex of edge");var t=e[this._minIndex-1],A=e[this._minIndex+1],n=ae.computeOrientation(this._minCoord,A,t),r=!1;(t.y<this._minCoord.y&&A.y<this._minCoord.y&&n===ae.COUNTERCLOCKWISE||t.y>this._minCoord.y&&A.y>this._minCoord.y&&n===ae.CLOCKWISE)&&(r=!0),r&&(this._minIndex=this._minIndex-1)},St.prototype.getRightmostSideOfSegment=function(e,t){var A=e.getEdge().getCoordinates();if(t<0||t+1>=A.length)return-1;if(A[t].y===A[t+1].y)return-1;var n=bt.LEFT;return A[t].y<A[t+1].y&&(n=bt.RIGHT),n},St.prototype.getEdge=function(){return this._orientedDe},St.prototype.checkForRightmostCoordinate=function(e){for(var t=e.getEdge().getCoordinates(),A=0;A<t.length-1;A++)(null===this._minCoord||t[A].x>this._minCoord.x)&&(this._minDe=e,this._minIndex=A,this._minCoord=t[A])},St.prototype.findRightmostEdgeAtNode=function(){var e=this._minDe.getNode().getEdges();this._minDe=e.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)},St.prototype.findEdge=function(e){for(var t=e.iterator();t.hasNext();){var A=t.next();A.isForward()&&this.checkForRightmostCoordinate(A)}te.isTrue(0!==this._minIndex||this._minCoord.equals(this._minDe.getCoordinate()),"inconsistency in rightmost processing"),0===this._minIndex?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe,this.getRightmostSide(this._minDe,this._minIndex)===bt.LEFT&&(this._orientedDe=this._minDe.getSym())},St.prototype.interfaces_=function(){return[]},St.prototype.getClass=function(){return St};var Ft=function(e){function t(A,n){e.call(this,t.msgWithCoord(A,n)),this.pt=n?new m(n):null,this.name="TopologyException"}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.getCoordinate=function(){return this.pt},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t.msgWithCoord=function(e,t){return t?e:e+" [ "+t+" ]"},t}($),Rt=function(){this.array_=[]};Rt.prototype.addLast=function(e){this.array_.push(e)},Rt.prototype.removeFirst=function(){return this.array_.shift()},Rt.prototype.isEmpty=function(){return 0===this.array_.length};var Dt=function(){this._finder=null,this._dirEdgeList=new ve,this._nodes=new ve,this._rightMostCoord=null,this._env=null,this._finder=new St};Dt.prototype.clearVisitedEdges=function(){for(var e=this._dirEdgeList.iterator();e.hasNext();)e.next().setVisited(!1)},Dt.prototype.getRightmostCoordinate=function(){return this._rightMostCoord},Dt.prototype.computeNodeDepth=function(e){for(var t=null,A=e.getEdges().iterator();A.hasNext();){var n=A.next();if(n.isVisited()||n.getSym().isVisited()){t=n;break}}if(null===t)throw new Ft("unable to find edge to compute depths at "+e.getCoordinate());e.getEdges().computeDepths(t);for(var r=e.getEdges().iterator();r.hasNext();){var i=r.next();i.setVisited(!0),this.copySymDepths(i)}},Dt.prototype.computeDepth=function(e){this.clearVisitedEdges();var t=this._finder.getEdge();t.setEdgeDepths(bt.RIGHT,e),this.copySymDepths(t),this.computeDepths(t)},Dt.prototype.create=function(e){this.addReachable(e),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()},Dt.prototype.findResultEdges=function(){for(var e=this._dirEdgeList.iterator();e.hasNext();){var t=e.next();t.getDepth(bt.RIGHT)>=1&&t.getDepth(bt.LEFT)<=0&&!t.isInteriorAreaEdge()&&t.setInResult(!0)}},Dt.prototype.computeDepths=function(e){var t=new ke,A=new Rt,n=e.getNode();for(A.addLast(n),t.add(n),e.setVisited(!0);!A.isEmpty();){var r=A.removeFirst();t.add(r),this.computeNodeDepth(r);for(var i=r.getEdges().iterator();i.hasNext();){var o=i.next().getSym();if(!o.isVisited()){var a=o.getNode();t.contains(a)||(A.addLast(a),t.add(a))}}}},Dt.prototype.compareTo=function(e){var t=e;return this._rightMostCoord.x<t._rightMostCoord.x?-1:this._rightMostCoord.x>t._rightMostCoord.x?1:0},Dt.prototype.getEnvelope=function(){if(null===this._env){for(var e=new P,t=this._dirEdgeList.iterator();t.hasNext();)for(var A=t.next().getEdge().getCoordinates(),n=0;n<A.length-1;n++)e.expandToInclude(A[n]);this._env=e}return this._env},Dt.prototype.addReachable=function(e){var t=new f;for(t.add(e);!t.empty();){var A=t.pop();this.add(A,t)}},Dt.prototype.copySymDepths=function(e){var t=e.getSym();t.setDepth(bt.LEFT,e.getDepth(bt.RIGHT)),t.setDepth(bt.RIGHT,e.getDepth(bt.LEFT))},Dt.prototype.add=function(e,t){e.setVisited(!0),this._nodes.add(e);for(var A=e.getEdges().iterator();A.hasNext();){var n=A.next();this._dirEdgeList.add(n);var r=n.getSym().getNode();r.isVisited()||t.push(r)}},Dt.prototype.getNodes=function(){return this._nodes},Dt.prototype.getDirectedEdges=function(){return this._dirEdgeList},Dt.prototype.interfaces_=function(){return[Q]},Dt.prototype.getClass=function(){return Dt};var Gt=function e(){if(this.location=null,1===arguments.length){if(arguments[0]instanceof Array){var t=arguments[0];this.init(t.length)}else if(Number.isInteger(arguments[0])){var A=arguments[0];this.init(1),this.location[bt.ON]=A}else if(arguments[0]instanceof e){var n=arguments[0];if(this.init(n.location.length),null!==n)for(var r=0;r<this.location.length;r++)this.location[r]=n.location[r]}}else if(3===arguments.length){var i=arguments[0],o=arguments[1],a=arguments[2];this.init(3),this.location[bt.ON]=i,this.location[bt.LEFT]=o,this.location[bt.RIGHT]=a}};Gt.prototype.setAllLocations=function(e){for(var t=0;t<this.location.length;t++)this.location[t]=e},Gt.prototype.isNull=function(){for(var e=0;e<this.location.length;e++)if(this.location[e]!==F.NONE)return!1;return!0},Gt.prototype.setAllLocationsIfNull=function(e){for(var t=0;t<this.location.length;t++)this.location[t]===F.NONE&&(this.location[t]=e)},Gt.prototype.isLine=function(){return 1===this.location.length},Gt.prototype.merge=function(e){if(e.location.length>this.location.length){var t=new Array(3).fill(null);t[bt.ON]=this.location[bt.ON],t[bt.LEFT]=F.NONE,t[bt.RIGHT]=F.NONE,this.location=t}for(var A=0;A<this.location.length;A++)this.location[A]===F.NONE&&A<e.location.length&&(this.location[A]=e.location[A])},Gt.prototype.getLocations=function(){return this.location},Gt.prototype.flip=function(){if(this.location.length<=1)return null;var e=this.location[bt.LEFT];this.location[bt.LEFT]=this.location[bt.RIGHT],this.location[bt.RIGHT]=e},Gt.prototype.toString=function(){var e=new x;return this.location.length>1&&e.append(F.toLocationSymbol(this.location[bt.LEFT])),e.append(F.toLocationSymbol(this.location[bt.ON])),this.location.length>1&&e.append(F.toLocationSymbol(this.location[bt.RIGHT])),e.toString()},Gt.prototype.setLocations=function(e,t,A){this.location[bt.ON]=e,this.location[bt.LEFT]=t,this.location[bt.RIGHT]=A},Gt.prototype.get=function(e){return e<this.location.length?this.location[e]:F.NONE},Gt.prototype.isArea=function(){return this.location.length>1},Gt.prototype.isAnyNull=function(){for(var e=0;e<this.location.length;e++)if(this.location[e]===F.NONE)return!0;return!1},Gt.prototype.setLocation=function(){if(1===arguments.length){var e=arguments[0];this.setLocation(bt.ON,e)}else if(2===arguments.length){var t=arguments[0],A=arguments[1];this.location[t]=A}},Gt.prototype.init=function(e){this.location=new Array(e).fill(null),this.setAllLocations(F.NONE)},Gt.prototype.isEqualOnSide=function(e,t){return this.location[t]===e.location[t]},Gt.prototype.allPositionsEqual=function(e){for(var t=0;t<this.location.length;t++)if(this.location[t]!==e)return!1;return!0},Gt.prototype.interfaces_=function(){return[]},Gt.prototype.getClass=function(){return Gt};var kt=function e(){if(this.elt=new Array(2).fill(null),1===arguments.length){if(Number.isInteger(arguments[0])){var t=arguments[0];this.elt[0]=new Gt(t),this.elt[1]=new Gt(t)}else if(arguments[0]instanceof e){var A=arguments[0];this.elt[0]=new Gt(A.elt[0]),this.elt[1]=new Gt(A.elt[1])}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.elt[0]=new Gt(F.NONE),this.elt[1]=new Gt(F.NONE),this.elt[n].setLocation(r)}else if(3===arguments.length){var i=arguments[0],o=arguments[1],a=arguments[2];this.elt[0]=new Gt(i,o,a),this.elt[1]=new Gt(i,o,a)}else if(4===arguments.length){var s=arguments[0],g=arguments[1],c=arguments[2],u=arguments[3];this.elt[0]=new Gt(F.NONE,F.NONE,F.NONE),this.elt[1]=new Gt(F.NONE,F.NONE,F.NONE),this.elt[s].setLocations(g,c,u)}};kt.prototype.getGeometryCount=function(){var e=0;return this.elt[0].isNull()||e++,this.elt[1].isNull()||e++,e},kt.prototype.setAllLocations=function(e,t){this.elt[e].setAllLocations(t)},kt.prototype.isNull=function(e){return this.elt[e].isNull()},kt.prototype.setAllLocationsIfNull=function(){if(1===arguments.length){var e=arguments[0];this.setAllLocationsIfNull(0,e),this.setAllLocationsIfNull(1,e)}else if(2===arguments.length){var t=arguments[0],A=arguments[1];this.elt[t].setAllLocationsIfNull(A)}},kt.prototype.isLine=function(e){return this.elt[e].isLine()},kt.prototype.merge=function(e){for(var t=0;t<2;t++)null===this.elt[t]&&null!==e.elt[t]?this.elt[t]=new Gt(e.elt[t]):this.elt[t].merge(e.elt[t])},kt.prototype.flip=function(){this.elt[0].flip(),this.elt[1].flip()},kt.prototype.getLocation=function(){if(1===arguments.length){var e=arguments[0];return this.elt[e].get(bt.ON)}if(2===arguments.length){var t=arguments[0],A=arguments[1];return this.elt[t].get(A)}},kt.prototype.toString=function(){var e=new x;return null!==this.elt[0]&&(e.append("A:"),e.append(this.elt[0].toString())),null!==this.elt[1]&&(e.append(" B:"),e.append(this.elt[1].toString())),e.toString()},kt.prototype.isArea=function(){if(0===arguments.length)return this.elt[0].isArea()||this.elt[1].isArea();if(1===arguments.length){var e=arguments[0];return this.elt[e].isArea()}},kt.prototype.isAnyNull=function(e){return this.elt[e].isAnyNull()},kt.prototype.setLocation=function(){if(2===arguments.length){var e=arguments[0],t=arguments[1];this.elt[e].setLocation(bt.ON,t)}else if(3===arguments.length){var A=arguments[0],n=arguments[1],r=arguments[2];this.elt[A].setLocation(n,r)}},kt.prototype.isEqualOnSide=function(e,t){return this.elt[0].isEqualOnSide(e.elt[0],t)&&this.elt[1].isEqualOnSide(e.elt[1],t)},kt.prototype.allPositionsEqual=function(e,t){return this.elt[e].allPositionsEqual(t)},kt.prototype.toLine=function(e){this.elt[e].isArea()&&(this.elt[e]=new Gt(this.elt[e].location[0]))},kt.prototype.interfaces_=function(){return[]},kt.prototype.getClass=function(){return kt},kt.toLineLabel=function(e){for(var t=new kt(F.NONE),A=0;A<2;A++)t.setLocation(A,e.getLocation(A));return t};var xt=function(){this._startDe=null,this._maxNodeDegree=-1,this._edges=new ve,this._pts=new ve,this._label=new kt(F.NONE),this._ring=null,this._isHole=null,this._shell=null,this._holes=new ve,this._geometryFactory=null;var e=arguments[0],t=arguments[1];this._geometryFactory=t,this.computePoints(e),this.computeRing()};xt.prototype.computeRing=function(){if(null!==this._ring)return null;for(var e=new Array(this._pts.size()).fill(null),t=0;t<this._pts.size();t++)e[t]=this._pts.get(t);this._ring=this._geometryFactory.createLinearRing(e),this._isHole=ae.isCCW(this._ring.getCoordinates())},xt.prototype.isIsolated=function(){return 1===this._label.getGeometryCount()},xt.prototype.computePoints=function(e){this._startDe=e;var t=e,A=!0;do{if(null===t)throw new Ft("Found null DirectedEdge");if(t.getEdgeRing()===this)throw new Ft("Directed Edge visited twice during ring-building at "+t.getCoordinate());this._edges.add(t);var n=t.getLabel();te.isTrue(n.isArea()),this.mergeLabel(n),this.addPoints(t.getEdge(),t.isForward(),A),A=!1,this.setEdgeRing(t,this),t=this.getNext(t)}while(t!==this._startDe)},xt.prototype.getLinearRing=function(){return this._ring},xt.prototype.getCoordinate=function(e){return this._pts.get(e)},xt.prototype.computeMaxNodeDegree=function(){this._maxNodeDegree=0;var e=this._startDe;do{var t=e.getNode().getEdges().getOutgoingDegree(this);t>this._maxNodeDegree&&(this._maxNodeDegree=t),e=this.getNext(e)}while(e!==this._startDe);this._maxNodeDegree*=2},xt.prototype.addPoints=function(e,t,A){var n=e.getCoordinates();if(t){var r=1;A&&(r=0);for(var i=r;i<n.length;i++)this._pts.add(n[i])}else{var o=n.length-2;A&&(o=n.length-1);for(var a=o;a>=0;a--)this._pts.add(n[a])}},xt.prototype.isHole=function(){return this._isHole},xt.prototype.setInResult=function(){var e=this._startDe;do{e.getEdge().setInResult(!0),e=e.getNext()}while(e!==this._startDe)},xt.prototype.containsPoint=function(e){var t=this.getLinearRing();if(!t.getEnvelopeInternal().contains(e))return!1;if(!ae.isPointInRing(e,t.getCoordinates()))return!1;for(var A=this._holes.iterator();A.hasNext();)if(A.next().containsPoint(e))return!1;return!0},xt.prototype.addHole=function(e){this._holes.add(e)},xt.prototype.isShell=function(){return null===this._shell},xt.prototype.getLabel=function(){return this._label},xt.prototype.getEdges=function(){return this._edges},xt.prototype.getMaxNodeDegree=function(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree},xt.prototype.getShell=function(){return this._shell},xt.prototype.mergeLabel=function(){if(1===arguments.length){var e=arguments[0];this.mergeLabel(e,0),this.mergeLabel(e,1)}else if(2===arguments.length){var t=arguments[0],A=arguments[1],n=t.getLocation(A,bt.RIGHT);if(n===F.NONE)return null;if(this._label.getLocation(A)===F.NONE)return this._label.setLocation(A,n),null}},xt.prototype.setShell=function(e){this._shell=e,null!==e&&e.addHole(this)},xt.prototype.toPolygon=function(e){for(var t=new Array(this._holes.size()).fill(null),A=0;A<this._holes.size();A++)t[A]=this._holes.get(A).getLinearRing();return e.createPolygon(this.getLinearRing(),t)},xt.prototype.interfaces_=function(){return[]},xt.prototype.getClass=function(){return xt};var Nt=function(e){function t(){var t=arguments[0],A=arguments[1];e.call(this,t,A)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setEdgeRing=function(e,t){e.setMinEdgeRing(t)},t.prototype.getNext=function(e){return e.getNextMin()},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(xt),Ut=function(e){function t(){var t=arguments[0],A=arguments[1];e.call(this,t,A)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.buildMinimalRings=function(){var e=new ve,t=this._startDe;do{if(null===t.getMinEdgeRing()){var A=new Nt(t,this._geometryFactory);e.add(A)}t=t.getNext()}while(t!==this._startDe);return e},t.prototype.setEdgeRing=function(e,t){e.setEdgeRing(t)},t.prototype.linkDirectedEdgesForMinimalEdgeRings=function(){var e=this._startDe;do{e.getNode().getEdges().linkMinimalDirectedEdges(this),e=e.getNext()}while(e!==this._startDe)},t.prototype.getNext=function(e){return e.getNext()},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(xt),_t=function(){if(this._label=null,this._isInResult=!1,this._isCovered=!1,this._isCoveredSet=!1,this._isVisited=!1,0===arguments.length);else if(1===arguments.length){var e=arguments[0];this._label=e}};_t.prototype.setVisited=function(e){this._isVisited=e},_t.prototype.setInResult=function(e){this._isInResult=e},_t.prototype.isCovered=function(){return this._isCovered},_t.prototype.isCoveredSet=function(){return this._isCoveredSet},_t.prototype.setLabel=function(e){this._label=e},_t.prototype.getLabel=function(){return this._label},_t.prototype.setCovered=function(e){this._isCovered=e,this._isCoveredSet=!0},_t.prototype.updateIM=function(e){te.isTrue(this._label.getGeometryCount()>=2,"found partial label"),this.computeIM(e)},_t.prototype.isInResult=function(){return this._isInResult},_t.prototype.isVisited=function(){return this._isVisited},_t.prototype.interfaces_=function(){return[]},_t.prototype.getClass=function(){return _t};var Mt=function(e){function t(){e.call(this),this._coord=null,this._edges=null;var t=arguments[0],A=arguments[1];this._coord=t,this._edges=A,this._label=new kt(0,F.NONE)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.isIncidentEdgeInResult=function(){for(var e=this.getEdges().getEdges().iterator();e.hasNext();)if(e.next().getEdge().isInResult())return!0;return!1},t.prototype.isIsolated=function(){return 1===this._label.getGeometryCount()},t.prototype.getCoordinate=function(){return this._coord},t.prototype.print=function(e){e.println("node "+this._coord+" lbl: "+this._label)},t.prototype.computeIM=function(e){},t.prototype.computeMergedLocation=function(e,t){var A=F.NONE;if(A=this._label.getLocation(t),!e.isNull(t)){var n=e.getLocation(t);A!==F.BOUNDARY&&(A=n)}return A},t.prototype.setLabel=function(){if(2!==arguments.length)return e.prototype.setLabel.apply(this,arguments);var t=arguments[0],A=arguments[1];null===this._label?this._label=new kt(t,A):this._label.setLocation(t,A)},t.prototype.getEdges=function(){return this._edges},t.prototype.mergeLabel=function(){if(arguments[0]instanceof t){var e=arguments[0];this.mergeLabel(e._label)}else if(arguments[0]instanceof kt)for(var A=arguments[0],n=0;n<2;n++){var r=this.computeMergedLocation(A,n);this._label.getLocation(n)===F.NONE&&this._label.setLocation(n,r)}},t.prototype.add=function(e){this._edges.insert(e),e.setNode(this)},t.prototype.setLabelBoundary=function(e){if(null===this._label)return null;var t=F.NONE;null!==this._label&&(t=this._label.getLocation(e));var A=null;switch(t){case F.BOUNDARY:A=F.INTERIOR;break;case F.INTERIOR:default:A=F.BOUNDARY}this._label.setLocation(e,A)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(_t),Ot=function(){this.nodeMap=new u,this.nodeFact=null;var e=arguments[0];this.nodeFact=e};Ot.prototype.find=function(e){return this.nodeMap.get(e)},Ot.prototype.addNode=function(){if(arguments[0]instanceof m){var e=arguments[0],t=this.nodeMap.get(e);return null===t&&(t=this.nodeFact.createNode(e),this.nodeMap.put(e,t)),t}if(arguments[0]instanceof Mt){var A=arguments[0],n=this.nodeMap.get(A.getCoordinate());return null===n?(this.nodeMap.put(A.getCoordinate(),A),A):(n.mergeLabel(A),n)}},Ot.prototype.print=function(e){for(var t=this.iterator();t.hasNext();)t.next().print(e)},Ot.prototype.iterator=function(){return this.nodeMap.values().iterator()},Ot.prototype.values=function(){return this.nodeMap.values()},Ot.prototype.getBoundaryNodes=function(e){for(var t=new ve,A=this.iterator();A.hasNext();){var n=A.next();n.getLabel().getLocation(e)===F.BOUNDARY&&t.add(n)}return t},Ot.prototype.add=function(e){var t=e.getCoordinate();this.addNode(t).add(e)},Ot.prototype.interfaces_=function(){return[]},Ot.prototype.getClass=function(){return Ot};var Lt=function(){},Tt={NE:{configurable:!0},NW:{configurable:!0},SW:{configurable:!0},SE:{configurable:!0}};Lt.prototype.interfaces_=function(){return[]},Lt.prototype.getClass=function(){return Lt},Lt.isNorthern=function(e){return e===Lt.NE||e===Lt.NW},Lt.isOpposite=function(e,t){return e!==t&&2===(e-t+4)%4},Lt.commonHalfPlane=function(e,t){if(e===t)return e;if(2===(e-t+4)%4)return-1;var A=e<t?e:t;return 0===A&&3===(e>t?e:t)?3:A},Lt.isInHalfPlane=function(e,t){return t===Lt.SE?e===Lt.SE||e===Lt.SW:e===t||e===t+1},Lt.quadrant=function(){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){var e=arguments[0],t=arguments[1];if(0===e&&0===t)throw new B("Cannot compute the quadrant for point ( "+e+", "+t+" )");return e>=0?t>=0?Lt.NE:Lt.SE:t>=0?Lt.NW:Lt.SW}if(arguments[0]instanceof m&&arguments[1]instanceof m){var A=arguments[0],n=arguments[1];if(n.x===A.x&&n.y===A.y)throw new B("Cannot compute the quadrant for two identical points "+A);return n.x>=A.x?n.y>=A.y?Lt.NE:Lt.SE:n.y>=A.y?Lt.NW:Lt.SW}},Tt.NE.get=function(){return 0},Tt.NW.get=function(){return 1},Tt.SW.get=function(){return 2},Tt.SE.get=function(){return 3},Object.defineProperties(Lt,Tt);var Zt=function(){if(this._edge=null,this._label=null,this._node=null,this._p0=null,this._p1=null,this._dx=null,this._dy=null,this._quadrant=null,1===arguments.length){var e=arguments[0];this._edge=e}else if(3===arguments.length){var t=arguments[0],A=arguments[1],n=arguments[2];this._edge=t,this.init(A,n),this._label=null}else if(4===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2],a=arguments[3];this._edge=r,this.init(i,o),this._label=a}};Zt.prototype.compareDirection=function(e){return this._dx===e._dx&&this._dy===e._dy?0:this._quadrant>e._quadrant?1:this._quadrant<e._quadrant?-1:ae.computeOrientation(e._p0,e._p1,this._p1)},Zt.prototype.getDy=function(){return this._dy},Zt.prototype.getCoordinate=function(){return this._p0},Zt.prototype.setNode=function(e){this._node=e},Zt.prototype.print=function(e){var t=Math.atan2(this._dy,this._dx),A=this.getClass().getName(),n=A.lastIndexOf("."),r=A.substring(n+1);e.print(" "+r+": "+this._p0+" - "+this._p1+" "+this._quadrant+":"+t+" "+this._label)},Zt.prototype.compareTo=function(e){var t=e;return this.compareDirection(t)},Zt.prototype.getDirectedCoordinate=function(){return this._p1},Zt.prototype.getDx=function(){return this._dx},Zt.prototype.getLabel=function(){return this._label},Zt.prototype.getEdge=function(){return this._edge},Zt.prototype.getQuadrant=function(){return this._quadrant},Zt.prototype.getNode=function(){return this._node},Zt.prototype.toString=function(){var e=Math.atan2(this._dy,this._dx),t=this.getClass().getName(),A=t.lastIndexOf(".");return" "+t.substring(A+1)+": "+this._p0+" - "+this._p1+" "+this._quadrant+":"+e+" "+this._label},Zt.prototype.computeLabel=function(e){},Zt.prototype.init=function(e,t){this._p0=e,this._p1=t,this._dx=t.x-e.x,this._dy=t.y-e.y,this._quadrant=Lt.quadrant(this._dx,this._dy),te.isTrue(!(0===this._dx&&0===this._dy),"EdgeEnd with identical endpoints found")},Zt.prototype.interfaces_=function(){return[Q]},Zt.prototype.getClass=function(){return Zt};var Ht=function(e){function t(){var t=arguments[0],A=arguments[1];if(e.call(this,t),this._isForward=null,this._isInResult=!1,this._isVisited=!1,this._sym=null,this._next=null,this._nextMin=null,this._edgeRing=null,this._minEdgeRing=null,this._depth=[0,-999,-999],this._isForward=A,A)this.init(t.getCoordinate(0),t.getCoordinate(1));else{var n=t.getNumPoints()-1;this.init(t.getCoordinate(n),t.getCoordinate(n-1))}this.computeDirectedLabel()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.getNextMin=function(){return this._nextMin},t.prototype.getDepth=function(e){return this._depth[e]},t.prototype.setVisited=function(e){this._isVisited=e},t.prototype.computeDirectedLabel=function(){this._label=new kt(this._edge.getLabel()),this._isForward||this._label.flip()},t.prototype.getNext=function(){return this._next},t.prototype.setDepth=function(e,t){if(-999!==this._depth[e]&&this._depth[e]!==t)throw new Ft("assigned depths do not match",this.getCoordinate());this._depth[e]=t},t.prototype.isInteriorAreaEdge=function(){for(var e=!0,t=0;t<2;t++)this._label.isArea(t)&&this._label.getLocation(t,bt.LEFT)===F.INTERIOR&&this._label.getLocation(t,bt.RIGHT)===F.INTERIOR||(e=!1);return e},t.prototype.setNextMin=function(e){this._nextMin=e},t.prototype.print=function(t){e.prototype.print.call(this,t),t.print(" "+this._depth[bt.LEFT]+"/"+this._depth[bt.RIGHT]),t.print(" ("+this.getDepthDelta()+")"),this._isInResult&&t.print(" inResult")},t.prototype.setMinEdgeRing=function(e){this._minEdgeRing=e},t.prototype.isLineEdge=function(){var e=this._label.isLine(0)||this._label.isLine(1),t=!this._label.isArea(0)||this._label.allPositionsEqual(0,F.EXTERIOR),A=!this._label.isArea(1)||this._label.allPositionsEqual(1,F.EXTERIOR);return e&&t&&A},t.prototype.setEdgeRing=function(e){this._edgeRing=e},t.prototype.getMinEdgeRing=function(){return this._minEdgeRing},t.prototype.getDepthDelta=function(){var e=this._edge.getDepthDelta();return this._isForward||(e=-e),e},t.prototype.setInResult=function(e){this._isInResult=e},t.prototype.getSym=function(){return this._sym},t.prototype.isForward=function(){return this._isForward},t.prototype.getEdge=function(){return this._edge},t.prototype.printEdge=function(e){this.print(e),e.print(" "),this._isForward?this._edge.print(e):this._edge.printReverse(e)},t.prototype.setSym=function(e){this._sym=e},t.prototype.setVisitedEdge=function(e){this.setVisited(e),this._sym.setVisited(e)},t.prototype.setEdgeDepths=function(e,t){var A=this.getEdge().getDepthDelta();this._isForward||(A=-A);var n=1;e===bt.LEFT&&(n=-1);var r=bt.opposite(e),i=t+A*n;this.setDepth(e,t),this.setDepth(r,i)},t.prototype.getEdgeRing=function(){return this._edgeRing},t.prototype.isInResult=function(){return this._isInResult},t.prototype.setNext=function(e){this._next=e},t.prototype.isVisited=function(){return this._isVisited},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t.depthFactor=function(e,t){return e===F.EXTERIOR&&t===F.INTERIOR?1:e===F.INTERIOR&&t===F.EXTERIOR?-1:0},t}(Zt),Yt=function(){};Yt.prototype.createNode=function(e){return new Mt(e,null)},Yt.prototype.interfaces_=function(){return[]},Yt.prototype.getClass=function(){return Yt};var Jt=function(){if(this._edges=new ve,this._nodes=null,this._edgeEndList=new ve,0===arguments.length)this._nodes=new Ot(new Yt);else if(1===arguments.length){var e=arguments[0];this._nodes=new Ot(e)}};Jt.prototype.printEdges=function(e){e.println("Edges:");for(var t=0;t<this._edges.size();t++){e.println("edge "+t+":");var A=this._edges.get(t);A.print(e),A.eiList.print(e)}},Jt.prototype.find=function(e){return this._nodes.find(e)},Jt.prototype.addNode=function(){if(arguments[0]instanceof Mt){var e=arguments[0];return this._nodes.addNode(e)}if(arguments[0]instanceof m){var t=arguments[0];return this._nodes.addNode(t)}},Jt.prototype.getNodeIterator=function(){return this._nodes.iterator()},Jt.prototype.linkResultDirectedEdges=function(){for(var e=this._nodes.iterator();e.hasNext();)e.next().getEdges().linkResultDirectedEdges()},Jt.prototype.debugPrintln=function(e){J.out.println(e)},Jt.prototype.isBoundaryNode=function(e,t){var A=this._nodes.find(t);if(null===A)return!1;var n=A.getLabel();return null!==n&&n.getLocation(e)===F.BOUNDARY},Jt.prototype.linkAllDirectedEdges=function(){for(var e=this._nodes.iterator();e.hasNext();)e.next().getEdges().linkAllDirectedEdges()},Jt.prototype.matchInSameDirection=function(e,t,A,n){return!!e.equals(A)&&ae.computeOrientation(e,t,n)===ae.COLLINEAR&&Lt.quadrant(e,t)===Lt.quadrant(A,n)},Jt.prototype.getEdgeEnds=function(){return this._edgeEndList},Jt.prototype.debugPrint=function(e){J.out.print(e)},Jt.prototype.getEdgeIterator=function(){return this._edges.iterator()},Jt.prototype.findEdgeInSameDirection=function(e,t){for(var A=0;A<this._edges.size();A++){var n=this._edges.get(A),r=n.getCoordinates();if(this.matchInSameDirection(e,t,r[0],r[1]))return n;if(this.matchInSameDirection(e,t,r[r.length-1],r[r.length-2]))return n}return null},Jt.prototype.insertEdge=function(e){this._edges.add(e)},Jt.prototype.findEdgeEnd=function(e){for(var t=this.getEdgeEnds().iterator();t.hasNext();){var A=t.next();if(A.getEdge()===e)return A}return null},Jt.prototype.addEdges=function(e){for(var t=e.iterator();t.hasNext();){var A=t.next();this._edges.add(A);var n=new Ht(A,!0),r=new Ht(A,!1);n.setSym(r),r.setSym(n),this.add(n),this.add(r)}},Jt.prototype.add=function(e){this._nodes.add(e),this._edgeEndList.add(e)},Jt.prototype.getNodes=function(){return this._nodes.values()},Jt.prototype.findEdge=function(e,t){for(var A=0;A<this._edges.size();A++){var n=this._edges.get(A),r=n.getCoordinates();if(e.equals(r[0])&&t.equals(r[1]))return n}return null},Jt.prototype.interfaces_=function(){return[]},Jt.prototype.getClass=function(){return Jt},Jt.linkResultDirectedEdges=function(e){for(var t=e.iterator();t.hasNext();)t.next().getEdges().linkResultDirectedEdges()};var jt=function(){this._geometryFactory=null,this._shellList=new ve;var e=arguments[0];this._geometryFactory=e};jt.prototype.sortShellsAndHoles=function(e,t,A){for(var n=e.iterator();n.hasNext();){var r=n.next();r.isHole()?A.add(r):t.add(r)}},jt.prototype.computePolygons=function(e){for(var t=new ve,A=e.iterator();A.hasNext();){var n=A.next().toPolygon(this._geometryFactory);t.add(n)}return t},jt.prototype.placeFreeHoles=function(e,t){for(var A=t.iterator();A.hasNext();){var n=A.next();if(null===n.getShell()){var r=this.findEdgeRingContaining(n,e);if(null===r)throw new Ft("unable to assign hole to a shell",n.getCoordinate(0));n.setShell(r)}}},jt.prototype.buildMinimalEdgeRings=function(e,t,A){for(var n=new ve,r=e.iterator();r.hasNext();){var i=r.next();if(i.getMaxNodeDegree()>2){i.linkDirectedEdgesForMinimalEdgeRings();var o=i.buildMinimalRings(),a=this.findShell(o);null!==a?(this.placePolygonHoles(a,o),t.add(a)):A.addAll(o)}else n.add(i)}return n},jt.prototype.containsPoint=function(e){for(var t=this._shellList.iterator();t.hasNext();)if(t.next().containsPoint(e))return!0;return!1},jt.prototype.buildMaximalEdgeRings=function(e){for(var t=new ve,A=e.iterator();A.hasNext();){var n=A.next();if(n.isInResult()&&n.getLabel().isArea()&&null===n.getEdgeRing()){var r=new Ut(n,this._geometryFactory);t.add(r),r.setInResult()}}return t},jt.prototype.placePolygonHoles=function(e,t){for(var A=t.iterator();A.hasNext();){var n=A.next();n.isHole()&&n.setShell(e)}},jt.prototype.getPolygons=function(){return this.computePolygons(this._shellList)},jt.prototype.findEdgeRingContaining=function(e,t){for(var A=e.getLinearRing(),n=A.getEnvelopeInternal(),r=A.getCoordinateN(0),i=null,o=null,a=t.iterator();a.hasNext();){var s=a.next(),g=s.getLinearRing(),c=g.getEnvelopeInternal();null!==i&&(o=i.getLinearRing().getEnvelopeInternal());var u=!1;c.contains(n)&&ae.isPointInRing(r,g.getCoordinates())&&(u=!0),u&&(null===i||o.contains(c))&&(i=s)}return i},jt.prototype.findShell=function(e){for(var t=0,A=null,n=e.iterator();n.hasNext();){var r=n.next();r.isHole()||(A=r,t++)}return te.isTrue(t<=1,"found two shells in MinimalEdgeRing list"),A},jt.prototype.add=function(){if(1===arguments.length){var e=arguments[0];this.add(e.getEdgeEnds(),e.getNodes())}else if(2===arguments.length){var t=arguments[0],A=arguments[1];Jt.linkResultDirectedEdges(A);var n=this.buildMaximalEdgeRings(t),r=new ve,i=this.buildMinimalEdgeRings(n,this._shellList,r);this.sortShellsAndHoles(i,this._shellList,r),this.placeFreeHoles(this._shellList,r)}},jt.prototype.interfaces_=function(){return[]},jt.prototype.getClass=function(){return jt};var Pt=function(){};Pt.prototype.getBounds=function(){},Pt.prototype.interfaces_=function(){return[]},Pt.prototype.getClass=function(){return Pt};var Vt=function(){this._bounds=null,this._item=null;var e=arguments[0],t=arguments[1];this._bounds=e,this._item=t};Vt.prototype.getItem=function(){return this._item},Vt.prototype.getBounds=function(){return this._bounds},Vt.prototype.interfaces_=function(){return[Pt,t]},Vt.prototype.getClass=function(){return Vt};var Kt=function(){this._size=null,this._items=null,this._size=0,this._items=new ve,this._items.add(null)};Kt.prototype.poll=function(){if(this.isEmpty())return null;var e=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),e},Kt.prototype.size=function(){return this._size},Kt.prototype.reorder=function(e){for(var t=null,A=this._items.get(e);2*e<=this._size&&((t=2*e)!==this._size&&this._items.get(t+1).compareTo(this._items.get(t))<0&&t++,this._items.get(t).compareTo(A)<0);e=t)this._items.set(e,this._items.get(t));this._items.set(e,A)},Kt.prototype.clear=function(){this._size=0,this._items.clear()},Kt.prototype.isEmpty=function(){return 0===this._size},Kt.prototype.add=function(e){this._items.add(null),this._size+=1;var t=this._size;for(this._items.set(0,e);e.compareTo(this._items.get(Math.trunc(t/2)))<0;t/=2)this._items.set(t,this._items.get(Math.trunc(t/2)));this._items.set(t,e)},Kt.prototype.interfaces_=function(){return[]},Kt.prototype.getClass=function(){return Kt};var Wt=function(){};Wt.prototype.visitItem=function(e){},Wt.prototype.interfaces_=function(){return[]},Wt.prototype.getClass=function(){return Wt};var Xt=function(){};Xt.prototype.insert=function(e,t){},Xt.prototype.remove=function(e,t){},Xt.prototype.query=function(){},Xt.prototype.interfaces_=function(){return[]},Xt.prototype.getClass=function(){return Xt};var qt=function(){if(this._childBoundables=new ve,this._bounds=null,this._level=null,0===arguments.length);else if(1===arguments.length){var e=arguments[0];this._level=e}},zt={serialVersionUID:{configurable:!0}};qt.prototype.getLevel=function(){return this._level},qt.prototype.size=function(){return this._childBoundables.size()},qt.prototype.getChildBoundables=function(){return this._childBoundables},qt.prototype.addChildBoundable=function(e){te.isTrue(null===this._bounds),this._childBoundables.add(e)},qt.prototype.isEmpty=function(){return this._childBoundables.isEmpty()},qt.prototype.getBounds=function(){return null===this._bounds&&(this._bounds=this.computeBounds()),this._bounds},qt.prototype.interfaces_=function(){return[Pt,t]},qt.prototype.getClass=function(){return qt},zt.serialVersionUID.get=function(){return 0x5a1e55ec41369800},Object.defineProperties(qt,zt);var $t=function(){};$t.reverseOrder=function(){return{compare:function(e,t){return t.compareTo(e)}}},$t.min=function(e){return $t.sort(e),e.get(0)},$t.sort=function(e,t){var A=e.toArray();t?Me.sort(A,t):Me.sort(A);for(var n=e.iterator(),r=0,i=A.length;r<i;r++)n.next(),n.set(A[r])},$t.singletonList=function(e){var t=new ve;return t.add(e),t};var eA=function(){this._boundable1=null,this._boundable2=null,this._distance=null,this._itemDistance=null;var e=arguments[0],t=arguments[1],A=arguments[2];this._boundable1=e,this._boundable2=t,this._itemDistance=A,this._distance=this.distance()};eA.prototype.expandToQueue=function(e,t){var A=eA.isComposite(this._boundable1),n=eA.isComposite(this._boundable2);if(A&&n)return eA.area(this._boundable1)>eA.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,e,t),null):(this.expand(this._boundable2,this._boundable1,e,t),null);if(A)return this.expand(this._boundable1,this._boundable2,e,t),null;if(n)return this.expand(this._boundable2,this._boundable1,e,t),null;throw new B("neither boundable is composite")},eA.prototype.isLeaves=function(){return!(eA.isComposite(this._boundable1)||eA.isComposite(this._boundable2))},eA.prototype.compareTo=function(e){var t=e;return this._distance<t._distance?-1:this._distance>t._distance?1:0},eA.prototype.expand=function(e,t,A,n){for(var r=e.getChildBoundables().iterator();r.hasNext();){var i=r.next(),o=new eA(i,t,this._itemDistance);o.getDistance()<n&&A.add(o)}},eA.prototype.getBoundable=function(e){return 0===e?this._boundable1:this._boundable2},eA.prototype.getDistance=function(){return this._distance},eA.prototype.distance=function(){return this.isLeaves()?this._itemDistance.distance(this._boundable1,this._boundable2):this._boundable1.getBounds().distance(this._boundable2.getBounds())},eA.prototype.interfaces_=function(){return[Q]},eA.prototype.getClass=function(){return eA},eA.area=function(e){return e.getBounds().getArea()},eA.isComposite=function(e){return e instanceof qt};var tA=function e(){if(this._root=null,this._built=!1,this._itemBoundables=new ve,this._nodeCapacity=null,0===arguments.length){var t=e.DEFAULT_NODE_CAPACITY;this._nodeCapacity=t}else if(1===arguments.length){var A=arguments[0];te.isTrue(A>1,"Node capacity must be greater than 1"),this._nodeCapacity=A}},AA={IntersectsOp:{configurable:!0},serialVersionUID:{configurable:!0},DEFAULT_NODE_CAPACITY:{configurable:!0}};tA.prototype.getNodeCapacity=function(){return this._nodeCapacity},tA.prototype.lastNode=function(e){return e.get(e.size()-1)},tA.prototype.size=function(){if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.size(this._root));if(1===arguments.length){for(var e=0,t=arguments[0].getChildBoundables().iterator();t.hasNext();){var A=t.next();A instanceof qt?e+=this.size(A):A instanceof Vt&&(e+=1)}return e}},tA.prototype.removeItem=function(e,t){for(var A=null,n=e.getChildBoundables().iterator();n.hasNext();){var r=n.next();r instanceof Vt&&r.getItem()===t&&(A=r)}return null!==A&&(e.getChildBoundables().remove(A),!0)},tA.prototype.itemsTree=function(){if(0===arguments.length){this.build();var e=this.itemsTree(this._root);return null===e?new ve:e}if(1===arguments.length){for(var t=arguments[0],A=new ve,n=t.getChildBoundables().iterator();n.hasNext();){var r=n.next();if(r instanceof qt){var i=this.itemsTree(r);null!==i&&A.add(i)}else r instanceof Vt?A.add(r.getItem()):te.shouldNeverReachHere()}return A.size()<=0?null:A}},tA.prototype.insert=function(e,t){te.isTrue(!this._built,"Cannot insert items into an STR packed R-tree after it has been built."),this._itemBoundables.add(new Vt(e,t))},tA.prototype.boundablesAtLevel=function(){if(1===arguments.length){var e=arguments[0],t=new ve;return this.boundablesAtLevel(e,this._root,t),t}if(3===arguments.length){var A=arguments[0],n=arguments[1],r=arguments[2];if(te.isTrue(A>-2),n.getLevel()===A)return r.add(n),null;for(var i=n.getChildBoundables().iterator();i.hasNext();){var o=i.next();o instanceof qt?this.boundablesAtLevel(A,o,r):(te.isTrue(o instanceof Vt),-1===A&&r.add(o))}return null}},tA.prototype.query=function(){if(1===arguments.length){var e=arguments[0];this.build();var t=new ve;return this.isEmpty()||this.getIntersectsOp().intersects(this._root.getBounds(),e)&&this.query(e,this._root,t),t}if(2===arguments.length){var A=arguments[0],n=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),A)&&this.query(A,this._root,n)}else if(3===arguments.length)if(D(arguments[2],Wt)&&arguments[0]instanceof Object&&arguments[1]instanceof qt)for(var r=arguments[0],i=arguments[1],o=arguments[2],a=i.getChildBoundables(),s=0;s<a.size();s++){var g=a.get(s);this.getIntersectsOp().intersects(g.getBounds(),r)&&(g instanceof qt?this.query(r,g,o):g instanceof Vt?o.visitItem(g.getItem()):te.shouldNeverReachHere())}else if(D(arguments[2],ye)&&arguments[0]instanceof Object&&arguments[1]instanceof qt)for(var c=arguments[0],u=arguments[1],l=arguments[2],I=u.getChildBoundables(),C=0;C<I.size();C++){var h=I.get(C);this.getIntersectsOp().intersects(h.getBounds(),c)&&(h instanceof qt?this.query(c,h,l):h instanceof Vt?l.add(h.getItem()):te.shouldNeverReachHere())}},tA.prototype.build=function(){if(this._built)return null;this._root=this._itemBoundables.isEmpty()?this.createNode(0):this.createHigherLevels(this._itemBoundables,-1),this._itemBoundables=null,this._built=!0},tA.prototype.getRoot=function(){return this.build(),this._root},tA.prototype.remove=function(){if(2===arguments.length){var e=arguments[0],t=arguments[1];return this.build(),!!this.getIntersectsOp().intersects(this._root.getBounds(),e)&&this.remove(e,this._root,t)}if(3===arguments.length){var A=arguments[0],n=arguments[1],r=arguments[2],i=this.removeItem(n,r);if(i)return!0;for(var o=null,a=n.getChildBoundables().iterator();a.hasNext();){var s=a.next();if(this.getIntersectsOp().intersects(s.getBounds(),A)&&s instanceof qt&&(i=this.remove(A,s,r))){o=s;break}}return null!==o&&o.getChildBoundables().isEmpty()&&n.getChildBoundables().remove(o),i}},tA.prototype.createHigherLevels=function(e,t){te.isTrue(!e.isEmpty());var A=this.createParentBoundables(e,t+1);return 1===A.size()?A.get(0):this.createHigherLevels(A,t+1)},tA.prototype.depth=function(){if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.depth(this._root));if(1===arguments.length){for(var e=0,t=arguments[0].getChildBoundables().iterator();t.hasNext();){var A=t.next();if(A instanceof qt){var n=this.depth(A);n>e&&(e=n)}}return e+1}},tA.prototype.createParentBoundables=function(e,t){te.isTrue(!e.isEmpty());var A=new ve;A.add(this.createNode(t));var n=new ve(e);$t.sort(n,this.getComparator());for(var r=n.iterator();r.hasNext();){var i=r.next();this.lastNode(A).getChildBoundables().size()===this.getNodeCapacity()&&A.add(this.createNode(t)),this.lastNode(A).addChildBoundable(i)}return A},tA.prototype.isEmpty=function(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()},tA.prototype.interfaces_=function(){return[t]},tA.prototype.getClass=function(){return tA},tA.compareDoubles=function(e,t){return e>t?1:e<t?-1:0},AA.IntersectsOp.get=function(){return nA},AA.serialVersionUID.get=function(){return-0x35ef64c82d4c5400},AA.DEFAULT_NODE_CAPACITY.get=function(){return 10},Object.defineProperties(tA,AA);var nA=function(){},rA=function(){};rA.prototype.distance=function(e,t){},rA.prototype.interfaces_=function(){return[]},rA.prototype.getClass=function(){return rA};var iA=function(e){function A(t){t=t||A.DEFAULT_NODE_CAPACITY,e.call(this,t)}e&&(A.__proto__=e),(A.prototype=Object.create(e&&e.prototype)).constructor=A;var n={STRtreeNode:{configurable:!0},serialVersionUID:{configurable:!0},xComparator:{configurable:!0},yComparator:{configurable:!0},intersectsOp:{configurable:!0},DEFAULT_NODE_CAPACITY:{configurable:!0}};return A.prototype.createParentBoundablesFromVerticalSlices=function(e,t){te.isTrue(e.length>0);for(var A=new ve,n=0;n<e.length;n++)A.addAll(this.createParentBoundablesFromVerticalSlice(e[n],t));return A},A.prototype.createNode=function(e){return new oA(e)},A.prototype.size=function(){return 0===arguments.length?e.prototype.size.call(this):e.prototype.size.apply(this,arguments)},A.prototype.insert=function(){if(2!==arguments.length)return e.prototype.insert.apply(this,arguments);var t=arguments[0],A=arguments[1];if(t.isNull())return null;e.prototype.insert.call(this,t,A)},A.prototype.getIntersectsOp=function(){return A.intersectsOp},A.prototype.verticalSlices=function(e,t){for(var A=Math.trunc(Math.ceil(e.size()/t)),n=new Array(t).fill(null),r=e.iterator(),i=0;i<t;i++){n[i]=new ve;for(var o=0;r.hasNext()&&o<A;){var a=r.next();n[i].add(a),o++}}return n},A.prototype.query=function(){if(1===arguments.length){var t=arguments[0];return e.prototype.query.call(this,t)}if(2===arguments.length){var A=arguments[0],n=arguments[1];e.prototype.query.call(this,A,n)}else if(3===arguments.length)if(D(arguments[2],Wt)&&arguments[0]instanceof Object&&arguments[1]instanceof qt){var r=arguments[0],i=arguments[1],o=arguments[2];e.prototype.query.call(this,r,i,o)}else if(D(arguments[2],ye)&&arguments[0]instanceof Object&&arguments[1]instanceof qt){var a=arguments[0],s=arguments[1],g=arguments[2];e.prototype.query.call(this,a,s,g)}},A.prototype.getComparator=function(){return A.yComparator},A.prototype.createParentBoundablesFromVerticalSlice=function(t,A){return e.prototype.createParentBoundables.call(this,t,A)},A.prototype.remove=function(){if(2===arguments.length){var t=arguments[0],A=arguments[1];return e.prototype.remove.call(this,t,A)}return e.prototype.remove.apply(this,arguments)},A.prototype.depth=function(){return 0===arguments.length?e.prototype.depth.call(this):e.prototype.depth.apply(this,arguments)},A.prototype.createParentBoundables=function(e,t){te.isTrue(!e.isEmpty());var n=Math.trunc(Math.ceil(e.size()/this.getNodeCapacity())),r=new ve(e);$t.sort(r,A.xComparator);var i=this.verticalSlices(r,Math.trunc(Math.ceil(Math.sqrt(n))));return this.createParentBoundablesFromVerticalSlices(i,t)},A.prototype.nearestNeighbour=function(){if(1===arguments.length){if(D(arguments[0],rA)){var e=arguments[0],t=new eA(this.getRoot(),this.getRoot(),e);return this.nearestNeighbour(t)}if(arguments[0]instanceof eA){var n=arguments[0];return this.nearestNeighbour(n,p.POSITIVE_INFINITY)}}else if(2===arguments.length){if(arguments[0]instanceof A&&D(arguments[1],rA)){var r=arguments[0],i=arguments[1],o=new eA(this.getRoot(),r.getRoot(),i);return this.nearestNeighbour(o)}if(arguments[0]instanceof eA&&"number"==typeof arguments[1]){var a=arguments[0],s=arguments[1],g=null,c=new Kt;for(c.add(a);!c.isEmpty()&&s>0;){var u=c.poll(),l=u.getDistance();if(l>=s)break;u.isLeaves()?(s=l,g=u):u.expandToQueue(c,s)}return[g.getBoundable(0).getItem(),g.getBoundable(1).getItem()]}}else if(3===arguments.length){var I=arguments[0],C=arguments[1],h=arguments[2],f=new Vt(I,C),d=new eA(this.getRoot(),f,h);return this.nearestNeighbour(d)[0]}},A.prototype.interfaces_=function(){return[Xt,t]},A.prototype.getClass=function(){return A},A.centreX=function(e){return A.avg(e.getMinX(),e.getMaxX())},A.avg=function(e,t){return(e+t)/2},A.centreY=function(e){return A.avg(e.getMinY(),e.getMaxY())},n.STRtreeNode.get=function(){return oA},n.serialVersionUID.get=function(){return 0x39920f7d5f261e0},n.xComparator.get=function(){return{interfaces_:function(){return[v]},compare:function(t,n){return e.compareDoubles(A.centreX(t.getBounds()),A.centreX(n.getBounds()))}}},n.yComparator.get=function(){return{interfaces_:function(){return[v]},compare:function(t,n){return e.compareDoubles(A.centreY(t.getBounds()),A.centreY(n.getBounds()))}}},n.intersectsOp.get=function(){return{interfaces_:function(){return[e.IntersectsOp]},intersects:function(e,t){return e.intersects(t)}}},n.DEFAULT_NODE_CAPACITY.get=function(){return 10},Object.defineProperties(A,n),A}(tA),oA=function(e){function t(){var t=arguments[0];e.call(this,t)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.computeBounds=function(){for(var e=null,t=this.getChildBoundables().iterator();t.hasNext();){var A=t.next();null===e?e=new P(A.getBounds()):e.expandToInclude(A.getBounds())}return e},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(qt),aA=function(){};aA.prototype.interfaces_=function(){return[]},aA.prototype.getClass=function(){return aA},aA.relativeSign=function(e,t){return e<t?-1:e>t?1:0},aA.compare=function(e,t,A){if(t.equals2D(A))return 0;var n=aA.relativeSign(t.x,A.x),r=aA.relativeSign(t.y,A.y);switch(e){case 0:return aA.compareValue(n,r);case 1:return aA.compareValue(r,n);case 2:return aA.compareValue(r,-n);case 3:return aA.compareValue(-n,r);case 4:return aA.compareValue(-n,-r);case 5:return aA.compareValue(-r,-n);case 6:return aA.compareValue(-r,n);case 7:return aA.compareValue(n,-r)}return te.shouldNeverReachHere("invalid octant value"),0},aA.compareValue=function(e,t){return e<0?-1:e>0?1:t<0?-1:t>0?1:0};var sA=function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;var e=arguments[0],t=arguments[1],A=arguments[2],n=arguments[3];this._segString=e,this.coord=new m(t),this.segmentIndex=A,this._segmentOctant=n,this._isInterior=!t.equals2D(e.getCoordinate(A))};sA.prototype.getCoordinate=function(){return this.coord},sA.prototype.print=function(e){e.print(this.coord),e.print(" seg # = "+this.segmentIndex)},sA.prototype.compareTo=function(e){var t=e;return this.segmentIndex<t.segmentIndex?-1:this.segmentIndex>t.segmentIndex?1:this.coord.equals2D(t.coord)?0:aA.compare(this._segmentOctant,this.coord,t.coord)},sA.prototype.isEndPoint=function(e){return 0===this.segmentIndex&&!this._isInterior||this.segmentIndex===e},sA.prototype.isInterior=function(){return this._isInterior},sA.prototype.interfaces_=function(){return[Q]},sA.prototype.getClass=function(){return sA};var gA=function(){this._nodeMap=new u,this._edge=null;var e=arguments[0];this._edge=e};gA.prototype.getSplitCoordinates=function(){var e=new be;this.addEndpoints();for(var t=this.iterator(),A=t.next();t.hasNext();){var n=t.next();this.addEdgeCoordinates(A,n,e),A=n}return e.toCoordinateArray()},gA.prototype.addCollapsedNodes=function(){var e=new ve;this.findCollapsesFromInsertedNodes(e),this.findCollapsesFromExistingVertices(e);for(var t=e.iterator();t.hasNext();){var A=t.next().intValue();this.add(this._edge.getCoordinate(A),A)}},gA.prototype.print=function(e){e.println("Intersections:");for(var t=this.iterator();t.hasNext();)t.next().print(e)},gA.prototype.findCollapsesFromExistingVertices=function(e){for(var t=0;t<this._edge.size()-2;t++){var A=this._edge.getCoordinate(t),n=this._edge.getCoordinate(t+2);A.equals2D(n)&&e.add(new N(t+1))}},gA.prototype.addEdgeCoordinates=function(e,t,A){var n=this._edge.getCoordinate(t.segmentIndex),r=t.isInterior()||!t.coord.equals2D(n);A.add(new m(e.coord),!1);for(var i=e.segmentIndex+1;i<=t.segmentIndex;i++)A.add(this._edge.getCoordinate(i));r&&A.add(new m(t.coord))},gA.prototype.iterator=function(){return this._nodeMap.values().iterator()},gA.prototype.addSplitEdges=function(e){this.addEndpoints(),this.addCollapsedNodes();for(var t=this.iterator(),A=t.next();t.hasNext();){var n=t.next(),r=this.createSplitEdge(A,n);e.add(r),A=n}},gA.prototype.findCollapseIndex=function(e,t,A){if(!e.coord.equals2D(t.coord))return!1;var n=t.segmentIndex-e.segmentIndex;return t.isInterior()||n--,1===n&&(A[0]=e.segmentIndex+1,!0)},gA.prototype.findCollapsesFromInsertedNodes=function(e){for(var t=new Array(1).fill(null),A=this.iterator(),n=A.next();A.hasNext();){var r=A.next();this.findCollapseIndex(n,r,t)&&e.add(new N(t[0])),n=r}},gA.prototype.getEdge=function(){return this._edge},gA.prototype.addEndpoints=function(){var e=this._edge.size()-1;this.add(this._edge.getCoordinate(0),0),this.add(this._edge.getCoordinate(e),e)},gA.prototype.createSplitEdge=function(e,t){var A=t.segmentIndex-e.segmentIndex+2,n=this._edge.getCoordinate(t.segmentIndex),r=t.isInterior()||!t.coord.equals2D(n);r||A--;var i=new Array(A).fill(null),o=0;i[o++]=new m(e.coord);for(var a=e.segmentIndex+1;a<=t.segmentIndex;a++)i[o++]=this._edge.getCoordinate(a);return r&&(i[o]=new m(t.coord)),new IA(i,this._edge.getData())},gA.prototype.add=function(e,t){var A=new sA(this._edge,e,t,this._edge.getSegmentOctant(t)),n=this._nodeMap.get(A);return null!==n?(te.isTrue(n.coord.equals2D(e),"Found equal nodes with different coordinates"),n):(this._nodeMap.put(A,A),A)},gA.prototype.checkSplitEdgesCorrectness=function(e){var t=this._edge.getCoordinates(),A=e.get(0).getCoordinate(0);if(!A.equals2D(t[0]))throw new $("bad split edge start point at "+A);var n=e.get(e.size()-1).getCoordinates(),r=n[n.length-1];if(!r.equals2D(t[t.length-1]))throw new $("bad split edge end point at "+r)},gA.prototype.interfaces_=function(){return[]},gA.prototype.getClass=function(){return gA};var cA=function(){};cA.prototype.interfaces_=function(){return[]},cA.prototype.getClass=function(){return cA},cA.octant=function(){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){var e=arguments[0],t=arguments[1];if(0===e&&0===t)throw new B("Cannot compute the octant for point ( "+e+", "+t+" )");var A=Math.abs(e),n=Math.abs(t);return e>=0?t>=0?A>=n?0:1:A>=n?7:6:t>=0?A>=n?3:2:A>=n?4:5}if(arguments[0]instanceof m&&arguments[1]instanceof m){var r=arguments[0],i=arguments[1],o=i.x-r.x,a=i.y-r.y;if(0===o&&0===a)throw new B("Cannot compute the octant for two identical points "+r);return cA.octant(o,a)}};var uA=function(){};uA.prototype.getCoordinates=function(){},uA.prototype.size=function(){},uA.prototype.getCoordinate=function(e){},uA.prototype.isClosed=function(){},uA.prototype.setData=function(e){},uA.prototype.getData=function(){},uA.prototype.interfaces_=function(){return[]},uA.prototype.getClass=function(){return uA};var lA=function(){};lA.prototype.addIntersection=function(e,t){},lA.prototype.interfaces_=function(){return[uA]},lA.prototype.getClass=function(){return lA};var IA=function(){this._nodeList=new gA(this),this._pts=null,this._data=null;var e=arguments[0],t=arguments[1];this._pts=e,this._data=t};IA.prototype.getCoordinates=function(){return this._pts},IA.prototype.size=function(){return this._pts.length},IA.prototype.getCoordinate=function(e){return this._pts[e]},IA.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])},IA.prototype.getSegmentOctant=function(e){return e===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(e),this.getCoordinate(e+1))},IA.prototype.setData=function(e){this._data=e},IA.prototype.safeOctant=function(e,t){return e.equals2D(t)?0:cA.octant(e,t)},IA.prototype.getData=function(){return this._data},IA.prototype.addIntersection=function(){if(2===arguments.length){var e=arguments[0],t=arguments[1];this.addIntersectionNode(e,t)}else if(4===arguments.length){var A=arguments[0],n=arguments[1],r=arguments[3],i=new m(A.getIntersection(r));this.addIntersection(i,n)}},IA.prototype.toString=function(){return z.toLineString(new st(this._pts))},IA.prototype.getNodeList=function(){return this._nodeList},IA.prototype.addIntersectionNode=function(e,t){var A=t,n=A+1;if(n<this._pts.length){var r=this._pts[n];e.equals2D(r)&&(A=n)}return this._nodeList.add(e,A)},IA.prototype.addIntersections=function(e,t,A){for(var n=0;n<e.getIntersectionNum();n++)this.addIntersection(e,t,A,n)},IA.prototype.interfaces_=function(){return[lA]},IA.prototype.getClass=function(){return IA},IA.getNodedSubstrings=function(){if(1===arguments.length){var e=arguments[0],t=new ve;return IA.getNodedSubstrings(e,t),t}if(2===arguments.length)for(var A=arguments[0],n=arguments[1],r=A.iterator();r.hasNext();)r.next().getNodeList().addSplitEdges(n)};var CA=function(){if(this.p0=null,this.p1=null,0===arguments.length)this.p0=new m,this.p1=new m;else if(1===arguments.length){var e=arguments[0];this.p0=new m(e.p0),this.p1=new m(e.p1)}else if(2===arguments.length)this.p0=arguments[0],this.p1=arguments[1];else if(4===arguments.length){var t=arguments[0],A=arguments[1],n=arguments[2],r=arguments[3];this.p0=new m(t,A),this.p1=new m(n,r)}},hA={serialVersionUID:{configurable:!0}};CA.prototype.minX=function(){return Math.min(this.p0.x,this.p1.x)},CA.prototype.orientationIndex=function(){if(arguments[0]instanceof CA){var e=arguments[0],t=ae.orientationIndex(this.p0,this.p1,e.p0),A=ae.orientationIndex(this.p0,this.p1,e.p1);return t>=0&&A>=0||t<=0&&A<=0?Math.max(t,A):0}if(arguments[0]instanceof m){var n=arguments[0];return ae.orientationIndex(this.p0,this.p1,n)}},CA.prototype.toGeometry=function(e){return e.createLineString([this.p0,this.p1])},CA.prototype.isVertical=function(){return this.p0.x===this.p1.x},CA.prototype.equals=function(e){if(!(e instanceof CA))return!1;var t=e;return this.p0.equals(t.p0)&&this.p1.equals(t.p1)},CA.prototype.intersection=function(e){var t=new re;return t.computeIntersection(this.p0,this.p1,e.p0,e.p1),t.hasIntersection()?t.getIntersection(0):null},CA.prototype.project=function(){if(arguments[0]instanceof m){var e=arguments[0];if(e.equals(this.p0)||e.equals(this.p1))return new m(e);var t=this.projectionFactor(e),A=new m;return A.x=this.p0.x+t*(this.p1.x-this.p0.x),A.y=this.p0.y+t*(this.p1.y-this.p0.y),A}if(arguments[0]instanceof CA){var n=arguments[0],r=this.projectionFactor(n.p0),i=this.projectionFactor(n.p1);if(r>=1&&i>=1)return null;if(r<=0&&i<=0)return null;var o=this.project(n.p0);r<0&&(o=this.p0),r>1&&(o=this.p1);var a=this.project(n.p1);return i<0&&(a=this.p0),i>1&&(a=this.p1),new CA(o,a)}},CA.prototype.normalize=function(){this.p1.compareTo(this.p0)<0&&this.reverse()},CA.prototype.angle=function(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)},CA.prototype.getCoordinate=function(e){return 0===e?this.p0:this.p1},CA.prototype.distancePerpendicular=function(e){return ae.distancePointLinePerpendicular(e,this.p0,this.p1)},CA.prototype.minY=function(){return Math.min(this.p0.y,this.p1.y)},CA.prototype.midPoint=function(){return CA.midPoint(this.p0,this.p1)},CA.prototype.projectionFactor=function(e){if(e.equals(this.p0))return 0;if(e.equals(this.p1))return 1;var t=this.p1.x-this.p0.x,A=this.p1.y-this.p0.y,n=t*t+A*A;return n<=0?p.NaN:((e.x-this.p0.x)*t+(e.y-this.p0.y)*A)/n},CA.prototype.closestPoints=function(e){var t=this.intersection(e);if(null!==t)return[t,t];var A=new Array(2).fill(null),n=p.MAX_VALUE,r=null,i=this.closestPoint(e.p0);n=i.distance(e.p0),A[0]=i,A[1]=e.p0;var o=this.closestPoint(e.p1);(r=o.distance(e.p1))<n&&(n=r,A[0]=o,A[1]=e.p1);var a=e.closestPoint(this.p0);(r=a.distance(this.p0))<n&&(n=r,A[0]=this.p0,A[1]=a);var s=e.closestPoint(this.p1);return(r=s.distance(this.p1))<n&&(n=r,A[0]=this.p1,A[1]=s),A},CA.prototype.closestPoint=function(e){var t=this.projectionFactor(e);return t>0&&t<1?this.project(e):this.p0.distance(e)<this.p1.distance(e)?this.p0:this.p1},CA.prototype.maxX=function(){return Math.max(this.p0.x,this.p1.x)},CA.prototype.getLength=function(){return this.p0.distance(this.p1)},CA.prototype.compareTo=function(e){var t=e,A=this.p0.compareTo(t.p0);return 0!==A?A:this.p1.compareTo(t.p1)},CA.prototype.reverse=function(){var e=this.p0;this.p0=this.p1,this.p1=e},CA.prototype.equalsTopo=function(e){return this.p0.equals(e.p0)&&(this.p1.equals(e.p1)||this.p0.equals(e.p1))&&this.p1.equals(e.p0)},CA.prototype.lineIntersection=function(e){try{return j.intersection(this.p0,this.p1,e.p0,e.p1)}catch(e){if(!(e instanceof Y))throw e}return null},CA.prototype.maxY=function(){return Math.max(this.p0.y,this.p1.y)},CA.prototype.pointAlongOffset=function(e,t){var A=this.p0.x+e*(this.p1.x-this.p0.x),n=this.p0.y+e*(this.p1.y-this.p0.y),r=this.p1.x-this.p0.x,i=this.p1.y-this.p0.y,o=Math.sqrt(r*r+i*i),a=0,s=0;if(0!==t){if(o<=0)throw new Error("Cannot compute offset from zero-length line segment");a=t*r/o,s=t*i/o}return new m(A-s,n+a)},CA.prototype.setCoordinates=function(){if(1===arguments.length){var e=arguments[0];this.setCoordinates(e.p0,e.p1)}else if(2===arguments.length){var t=arguments[0],A=arguments[1];this.p0.x=t.x,this.p0.y=t.y,this.p1.x=A.x,this.p1.y=A.y}},CA.prototype.segmentFraction=function(e){var t=this.projectionFactor(e);return t<0?t=0:(t>1||p.isNaN(t))&&(t=1),t},CA.prototype.toString=function(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"},CA.prototype.isHorizontal=function(){return this.p0.y===this.p1.y},CA.prototype.distance=function(){if(arguments[0]instanceof CA){var e=arguments[0];return ae.distanceLineLine(this.p0,this.p1,e.p0,e.p1)}if(arguments[0]instanceof m){var t=arguments[0];return ae.distancePointLine(t,this.p0,this.p1)}},CA.prototype.pointAlong=function(e){var t=new m;return t.x=this.p0.x+e*(this.p1.x-this.p0.x),t.y=this.p0.y+e*(this.p1.y-this.p0.y),t},CA.prototype.hashCode=function(){var e=p.doubleToLongBits(this.p0.x);e^=31*p.doubleToLongBits(this.p0.y);var t=Math.trunc(e)^Math.trunc(e>>32),A=p.doubleToLongBits(this.p1.x);return A^=31*p.doubleToLongBits(this.p1.y),t^Math.trunc(A)^Math.trunc(A>>32)},CA.prototype.interfaces_=function(){return[Q,t]},CA.prototype.getClass=function(){return CA},CA.midPoint=function(e,t){return new m((e.x+t.x)/2,(e.y+t.y)/2)},hA.serialVersionUID.get=function(){return 0x2d2172135f411c00},Object.defineProperties(CA,hA);var fA=function(){this.tempEnv1=new P,this.tempEnv2=new P,this._overlapSeg1=new CA,this._overlapSeg2=new CA};fA.prototype.overlap=function(){if(2===arguments.length);else if(4===arguments.length){var e=arguments[0],t=arguments[1],A=arguments[2],n=arguments[3];e.getLineSegment(t,this._overlapSeg1),A.getLineSegment(n,this._overlapSeg2),this.overlap(this._overlapSeg1,this._overlapSeg2)}},fA.prototype.interfaces_=function(){return[]},fA.prototype.getClass=function(){return fA};var dA=function(){this._pts=null,this._start=null,this._end=null,this._env=null,this._context=null,this._id=null;var e=arguments[0],t=arguments[1],A=arguments[2],n=arguments[3];this._pts=e,this._start=t,this._end=A,this._context=n};dA.prototype.getLineSegment=function(e,t){t.p0=this._pts[e],t.p1=this._pts[e+1]},dA.prototype.computeSelect=function(e,t,A,n){var r=this._pts[t],i=this._pts[A];if(n.tempEnv1.init(r,i),A-t==1)return n.select(this,t),null;if(!e.intersects(n.tempEnv1))return null;var o=Math.trunc((t+A)/2);t<o&&this.computeSelect(e,t,o,n),o<A&&this.computeSelect(e,o,A,n)},dA.prototype.getCoordinates=function(){for(var e=new Array(this._end-this._start+1).fill(null),t=0,A=this._start;A<=this._end;A++)e[t++]=this._pts[A];return e},dA.prototype.computeOverlaps=function(e,t){this.computeOverlapsInternal(this._start,this._end,e,e._start,e._end,t)},dA.prototype.setId=function(e){this._id=e},dA.prototype.select=function(e,t){this.computeSelect(e,this._start,this._end,t)},dA.prototype.getEnvelope=function(){if(null===this._env){var e=this._pts[this._start],t=this._pts[this._end];this._env=new P(e,t)}return this._env},dA.prototype.getEndIndex=function(){return this._end},dA.prototype.getStartIndex=function(){return this._start},dA.prototype.getContext=function(){return this._context},dA.prototype.getId=function(){return this._id},dA.prototype.computeOverlapsInternal=function(e,t,A,n,r,i){var o=this._pts[e],a=this._pts[t],s=A._pts[n],g=A._pts[r];if(t-e==1&&r-n==1)return i.overlap(this,e,A,n),null;if(i.tempEnv1.init(o,a),i.tempEnv2.init(s,g),!i.tempEnv1.intersects(i.tempEnv2))return null;var c=Math.trunc((e+t)/2),u=Math.trunc((n+r)/2);e<c&&(n<u&&this.computeOverlapsInternal(e,c,A,n,u,i),u<r&&this.computeOverlapsInternal(e,c,A,u,r,i)),c<t&&(n<u&&this.computeOverlapsInternal(c,t,A,n,u,i),u<r&&this.computeOverlapsInternal(c,t,A,u,r,i))},dA.prototype.interfaces_=function(){return[]},dA.prototype.getClass=function(){return dA};var BA=function(){};BA.prototype.interfaces_=function(){return[]},BA.prototype.getClass=function(){return BA},BA.getChainStartIndices=function(e){var t=0,A=new ve;A.add(new N(t));do{var n=BA.findChainEnd(e,t);A.add(new N(n)),t=n}while(t<e.length-1);return BA.toIntArray(A)},BA.findChainEnd=function(e,t){for(var A=t;A<e.length-1&&e[A].equals2D(e[A+1]);)A++;if(A>=e.length-1)return e.length-1;for(var n=Lt.quadrant(e[A],e[A+1]),r=t+1;r<e.length&&(e[r-1].equals2D(e[r])||Lt.quadrant(e[r-1],e[r])===n);)r++;return r-1},BA.getChains=function(){if(1===arguments.length){var e=arguments[0];return BA.getChains(e,null)}if(2===arguments.length){for(var t=arguments[0],A=arguments[1],n=new ve,r=BA.getChainStartIndices(t),i=0;i<r.length-1;i++){var o=new dA(t,r[i],r[i+1],A);n.add(o)}return n}},BA.toIntArray=function(e){for(var t=new Array(e.size()).fill(null),A=0;A<t.length;A++)t[A]=e.get(A).intValue();return t};var pA=function(){};pA.prototype.computeNodes=function(e){},pA.prototype.getNodedSubstrings=function(){},pA.prototype.interfaces_=function(){return[]},pA.prototype.getClass=function(){return pA};var EA=function(){if(this._segInt=null,0===arguments.length);else if(1===arguments.length){var e=arguments[0];this.setSegmentIntersector(e)}};EA.prototype.setSegmentIntersector=function(e){this._segInt=e},EA.prototype.interfaces_=function(){return[pA]},EA.prototype.getClass=function(){return EA};var QA=function(e){function t(t){t?e.call(this,t):e.call(this),this._monoChains=new ve,this._index=new iA,this._idCounter=0,this._nodedSegStrings=null,this._nOverlaps=0}e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t;var A={SegmentOverlapAction:{configurable:!0}};return t.prototype.getMonotoneChains=function(){return this._monoChains},t.prototype.getNodedSubstrings=function(){return IA.getNodedSubstrings(this._nodedSegStrings)},t.prototype.getIndex=function(){return this._index},t.prototype.add=function(e){for(var t=BA.getChains(e.getCoordinates(),e).iterator();t.hasNext();){var A=t.next();A.setId(this._idCounter++),this._index.insert(A.getEnvelope(),A),this._monoChains.add(A)}},t.prototype.computeNodes=function(e){this._nodedSegStrings=e;for(var t=e.iterator();t.hasNext();)this.add(t.next());this.intersectChains()},t.prototype.intersectChains=function(){for(var e=new yA(this._segInt),t=this._monoChains.iterator();t.hasNext();)for(var A=t.next(),n=this._index.query(A.getEnvelope()).iterator();n.hasNext();){var r=n.next();if(r.getId()>A.getId()&&(A.computeOverlaps(r,e),this._nOverlaps++),this._segInt.isDone())return null}},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},A.SegmentOverlapAction.get=function(){return yA},Object.defineProperties(t,A),t}(EA),yA=function(e){function t(){e.call(this),this._si=null;var t=arguments[0];this._si=t}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.overlap=function(){if(4!==arguments.length)return e.prototype.overlap.apply(this,arguments);var t=arguments[0],A=arguments[1],n=arguments[2],r=arguments[3],i=t.getContext(),o=n.getContext();this._si.processIntersections(i,A,o,r)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(fA),vA=function e(){if(this._quadrantSegments=e.DEFAULT_QUADRANT_SEGMENTS,this._endCapStyle=e.CAP_ROUND,this._joinStyle=e.JOIN_ROUND,this._mitreLimit=e.DEFAULT_MITRE_LIMIT,this._isSingleSided=!1,this._simplifyFactor=e.DEFAULT_SIMPLIFY_FACTOR,0===arguments.length);else if(1===arguments.length){var t=arguments[0];this.setQuadrantSegments(t)}else if(2===arguments.length){var A=arguments[0],n=arguments[1];this.setQuadrantSegments(A),this.setEndCapStyle(n)}else if(4===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2],a=arguments[3];this.setQuadrantSegments(r),this.setEndCapStyle(i),this.setJoinStyle(o),this.setMitreLimit(a)}},mA={CAP_ROUND:{configurable:!0},CAP_FLAT:{configurable:!0},CAP_SQUARE:{configurable:!0},JOIN_ROUND:{configurable:!0},JOIN_MITRE:{configurable:!0},JOIN_BEVEL:{configurable:!0},DEFAULT_QUADRANT_SEGMENTS:{configurable:!0},DEFAULT_MITRE_LIMIT:{configurable:!0},DEFAULT_SIMPLIFY_FACTOR:{configurable:!0}};vA.prototype.getEndCapStyle=function(){return this._endCapStyle},vA.prototype.isSingleSided=function(){return this._isSingleSided},vA.prototype.setQuadrantSegments=function(e){this._quadrantSegments=e,0===this._quadrantSegments&&(this._joinStyle=vA.JOIN_BEVEL),this._quadrantSegments<0&&(this._joinStyle=vA.JOIN_MITRE,this._mitreLimit=Math.abs(this._quadrantSegments)),e<=0&&(this._quadrantSegments=1),this._joinStyle!==vA.JOIN_ROUND&&(this._quadrantSegments=vA.DEFAULT_QUADRANT_SEGMENTS)},vA.prototype.getJoinStyle=function(){return this._joinStyle},vA.prototype.setJoinStyle=function(e){this._joinStyle=e},vA.prototype.setSimplifyFactor=function(e){this._simplifyFactor=e<0?0:e},vA.prototype.getSimplifyFactor=function(){return this._simplifyFactor},vA.prototype.getQuadrantSegments=function(){return this._quadrantSegments},vA.prototype.setEndCapStyle=function(e){this._endCapStyle=e},vA.prototype.getMitreLimit=function(){return this._mitreLimit},vA.prototype.setMitreLimit=function(e){this._mitreLimit=e},vA.prototype.setSingleSided=function(e){this._isSingleSided=e},vA.prototype.interfaces_=function(){return[]},vA.prototype.getClass=function(){return vA},vA.bufferDistanceError=function(e){var t=Math.PI/2/e;return 1-Math.cos(t/2)},mA.CAP_ROUND.get=function(){return 1},mA.CAP_FLAT.get=function(){return 2},mA.CAP_SQUARE.get=function(){return 3},mA.JOIN_ROUND.get=function(){return 1},mA.JOIN_MITRE.get=function(){return 2},mA.JOIN_BEVEL.get=function(){return 3},mA.DEFAULT_QUADRANT_SEGMENTS.get=function(){return 8},mA.DEFAULT_MITRE_LIMIT.get=function(){return 5},mA.DEFAULT_SIMPLIFY_FACTOR.get=function(){return.01},Object.defineProperties(vA,mA);var bA=function(e){this._distanceTol=null,this._isDeleted=null,this._angleOrientation=ae.COUNTERCLOCKWISE,this._inputLine=e||null},wA={INIT:{configurable:!0},DELETE:{configurable:!0},KEEP:{configurable:!0},NUM_PTS_TO_CHECK:{configurable:!0}};bA.prototype.isDeletable=function(e,t,A,n){var r=this._inputLine[e],i=this._inputLine[t],o=this._inputLine[A];return!!this.isConcave(r,i,o)&&!!this.isShallow(r,i,o,n)&&this.isShallowSampled(r,i,e,A,n)},bA.prototype.deleteShallowConcavities=function(){for(var e=1,t=this.findNextNonDeletedIndex(e),A=this.findNextNonDeletedIndex(t),n=!1;A<this._inputLine.length;){var r=!1;this.isDeletable(e,t,A,this._distanceTol)&&(this._isDeleted[t]=bA.DELETE,r=!0,n=!0),e=r?A:t,t=this.findNextNonDeletedIndex(e),A=this.findNextNonDeletedIndex(t)}return n},bA.prototype.isShallowConcavity=function(e,t,A,n){return ae.computeOrientation(e,t,A)===this._angleOrientation&&ae.distancePointLine(t,e,A)<n},bA.prototype.isShallowSampled=function(e,t,A,n,r){var i=Math.trunc((n-A)/bA.NUM_PTS_TO_CHECK);i<=0&&(i=1);for(var o=A;o<n;o+=i)if(!this.isShallow(e,t,this._inputLine[o],r))return!1;return!0},bA.prototype.isConcave=function(e,t,A){return ae.computeOrientation(e,t,A)===this._angleOrientation},bA.prototype.simplify=function(e){this._distanceTol=Math.abs(e),e<0&&(this._angleOrientation=ae.CLOCKWISE),this._isDeleted=new Array(this._inputLine.length).fill(null);var t=!1;do{t=this.deleteShallowConcavities()}while(t);return this.collapseLine()},bA.prototype.findNextNonDeletedIndex=function(e){for(var t=e+1;t<this._inputLine.length&&this._isDeleted[t]===bA.DELETE;)t++;return t},bA.prototype.isShallow=function(e,t,A,n){return ae.distancePointLine(t,e,A)<n},bA.prototype.collapseLine=function(){for(var e=new be,t=0;t<this._inputLine.length;t++)this._isDeleted[t]!==bA.DELETE&&e.add(this._inputLine[t]);return e.toCoordinateArray()},bA.prototype.interfaces_=function(){return[]},bA.prototype.getClass=function(){return bA},bA.simplify=function(e,t){return new bA(e).simplify(t)},wA.INIT.get=function(){return 0},wA.DELETE.get=function(){return 1},wA.KEEP.get=function(){return 1},wA.NUM_PTS_TO_CHECK.get=function(){return 10},Object.defineProperties(bA,wA);var SA=function(){this._ptList=null,this._precisionModel=null,this._minimimVertexDistance=0,this._ptList=new ve},FA={COORDINATE_ARRAY_TYPE:{configurable:!0}};SA.prototype.getCoordinates=function(){return this._ptList.toArray(SA.COORDINATE_ARRAY_TYPE)},SA.prototype.setPrecisionModel=function(e){this._precisionModel=e},SA.prototype.addPt=function(e){var t=new m(e);if(this._precisionModel.makePrecise(t),this.isRedundant(t))return null;this._ptList.add(t)},SA.prototype.revere=function(){},SA.prototype.addPts=function(e,t){if(t)for(var A=0;A<e.length;A++)this.addPt(e[A]);else for(var n=e.length-1;n>=0;n--)this.addPt(e[n])},SA.prototype.isRedundant=function(e){if(this._ptList.size()<1)return!1;var t=this._ptList.get(this._ptList.size()-1);return e.distance(t)<this._minimimVertexDistance},SA.prototype.toString=function(){return(new dt).createLineString(this.getCoordinates()).toString()},SA.prototype.closeRing=function(){if(this._ptList.size()<1)return null;var e=new m(this._ptList.get(0)),t=this._ptList.get(this._ptList.size()-1);if(e.equals(t))return null;this._ptList.add(e)},SA.prototype.setMinimumVertexDistance=function(e){this._minimimVertexDistance=e},SA.prototype.interfaces_=function(){return[]},SA.prototype.getClass=function(){return SA},FA.COORDINATE_ARRAY_TYPE.get=function(){return new Array(0).fill(null)},Object.defineProperties(SA,FA);var RA=function(){},DA={PI_TIMES_2:{configurable:!0},PI_OVER_2:{configurable:!0},PI_OVER_4:{configurable:!0},COUNTERCLOCKWISE:{configurable:!0},CLOCKWISE:{configurable:!0},NONE:{configurable:!0}};RA.prototype.interfaces_=function(){return[]},RA.prototype.getClass=function(){return RA},RA.toDegrees=function(e){return 180*e/Math.PI},RA.normalize=function(e){for(;e>Math.PI;)e-=RA.PI_TIMES_2;for(;e<=-Math.PI;)e+=RA.PI_TIMES_2;return e},RA.angle=function(){if(1===arguments.length){var e=arguments[0];return Math.atan2(e.y,e.x)}if(2===arguments.length){var t=arguments[0],A=arguments[1],n=A.x-t.x,r=A.y-t.y;return Math.atan2(r,n)}},RA.isAcute=function(e,t,A){var n=e.x-t.x,r=e.y-t.y;return n*(A.x-t.x)+r*(A.y-t.y)>0},RA.isObtuse=function(e,t,A){var n=e.x-t.x,r=e.y-t.y;return n*(A.x-t.x)+r*(A.y-t.y)<0},RA.interiorAngle=function(e,t,A){var n=RA.angle(t,e),r=RA.angle(t,A);return Math.abs(r-n)},RA.normalizePositive=function(e){if(e<0){for(;e<0;)e+=RA.PI_TIMES_2;e>=RA.PI_TIMES_2&&(e=0)}else{for(;e>=RA.PI_TIMES_2;)e-=RA.PI_TIMES_2;e<0&&(e=0)}return e},RA.angleBetween=function(e,t,A){var n=RA.angle(t,e),r=RA.angle(t,A);return RA.diff(n,r)},RA.diff=function(e,t){var A=null;return(A=e<t?t-e:e-t)>Math.PI&&(A=2*Math.PI-A),A},RA.toRadians=function(e){return e*Math.PI/180},RA.getTurn=function(e,t){var A=Math.sin(t-e);return A>0?RA.COUNTERCLOCKWISE:A<0?RA.CLOCKWISE:RA.NONE},RA.angleBetweenOriented=function(e,t,A){var n=RA.angle(t,e),r=RA.angle(t,A)-n;return r<=-Math.PI?r+RA.PI_TIMES_2:r>Math.PI?r-RA.PI_TIMES_2:r},DA.PI_TIMES_2.get=function(){return 2*Math.PI},DA.PI_OVER_2.get=function(){return Math.PI/2},DA.PI_OVER_4.get=function(){return Math.PI/4},DA.COUNTERCLOCKWISE.get=function(){return ae.COUNTERCLOCKWISE},DA.CLOCKWISE.get=function(){return ae.CLOCKWISE},DA.NONE.get=function(){return ae.COLLINEAR},Object.defineProperties(RA,DA);var GA=function e(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new CA,this._seg1=new CA,this._offset0=new CA,this._offset1=new CA,this._side=0,this._hasNarrowConcaveAngle=!1;var t=arguments[0],A=arguments[1],n=arguments[2];this._precisionModel=t,this._bufParams=A,this._li=new re,this._filletAngleQuantum=Math.PI/2/A.getQuadrantSegments(),A.getQuadrantSegments()>=8&&A.getJoinStyle()===vA.JOIN_ROUND&&(this._closingSegLengthFactor=e.MAX_CLOSING_SEG_LEN_FACTOR),this.init(n)},kA={OFFSET_SEGMENT_SEPARATION_FACTOR:{configurable:!0},INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},CURVE_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},MAX_CLOSING_SEG_LEN_FACTOR:{configurable:!0}};GA.prototype.addNextSegment=function(e,t){if(this._s0=this._s1,this._s1=this._s2,this._s2=e,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var A=ae.computeOrientation(this._s0,this._s1,this._s2),n=A===ae.CLOCKWISE&&this._side===bt.LEFT||A===ae.COUNTERCLOCKWISE&&this._side===bt.RIGHT;0===A?this.addCollinear(t):n?this.addOutsideTurn(A,t):this.addInsideTurn(A,t)},GA.prototype.addLineEndCap=function(e,t){var A=new CA(e,t),n=new CA;this.computeOffsetSegment(A,bt.LEFT,this._distance,n);var r=new CA;this.computeOffsetSegment(A,bt.RIGHT,this._distance,r);var i=t.x-e.x,o=t.y-e.y,a=Math.atan2(o,i);switch(this._bufParams.getEndCapStyle()){case vA.CAP_ROUND:this._segList.addPt(n.p1),this.addFilletArc(t,a+Math.PI/2,a-Math.PI/2,ae.CLOCKWISE,this._distance),this._segList.addPt(r.p1);break;case vA.CAP_FLAT:this._segList.addPt(n.p1),this._segList.addPt(r.p1);break;case vA.CAP_SQUARE:var s=new m;s.x=Math.abs(this._distance)*Math.cos(a),s.y=Math.abs(this._distance)*Math.sin(a);var g=new m(n.p1.x+s.x,n.p1.y+s.y),c=new m(r.p1.x+s.x,r.p1.y+s.y);this._segList.addPt(g),this._segList.addPt(c)}},GA.prototype.getCoordinates=function(){return this._segList.getCoordinates()},GA.prototype.addMitreJoin=function(e,t,A,n){var r=!0,i=null;try{i=j.intersection(t.p0,t.p1,A.p0,A.p1),(n<=0?1:i.distance(e)/Math.abs(n))>this._bufParams.getMitreLimit()&&(r=!1)}catch(e){if(!(e instanceof Y))throw e;i=new m(0,0),r=!1}r?this._segList.addPt(i):this.addLimitedMitreJoin(t,A,n,this._bufParams.getMitreLimit())},GA.prototype.addFilletCorner=function(e,t,A,n,r){var i=t.x-e.x,o=t.y-e.y,a=Math.atan2(o,i),s=A.x-e.x,g=A.y-e.y,c=Math.atan2(g,s);n===ae.CLOCKWISE?a<=c&&(a+=2*Math.PI):a>=c&&(a-=2*Math.PI),this._segList.addPt(t),this.addFilletArc(e,a,c,n,r),this._segList.addPt(A)},GA.prototype.addOutsideTurn=function(e,t){if(this._offset0.p1.distance(this._offset1.p0)<this._distance*GA.OFFSET_SEGMENT_SEPARATION_FACTOR)return this._segList.addPt(this._offset0.p1),null;this._bufParams.getJoinStyle()===vA.JOIN_MITRE?this.addMitreJoin(this._s1,this._offset0,this._offset1,this._distance):this._bufParams.getJoinStyle()===vA.JOIN_BEVEL?this.addBevelJoin(this._offset0,this._offset1):(t&&this._segList.addPt(this._offset0.p1),this.addFilletCorner(this._s1,this._offset0.p1,this._offset1.p0,e,this._distance),this._segList.addPt(this._offset1.p0))},GA.prototype.createSquare=function(e){this._segList.addPt(new m(e.x+this._distance,e.y+this._distance)),this._segList.addPt(new m(e.x+this._distance,e.y-this._distance)),this._segList.addPt(new m(e.x-this._distance,e.y-this._distance)),this._segList.addPt(new m(e.x-this._distance,e.y+this._distance)),this._segList.closeRing()},GA.prototype.addSegments=function(e,t){this._segList.addPts(e,t)},GA.prototype.addFirstSegment=function(){this._segList.addPt(this._offset1.p0)},GA.prototype.addLastSegment=function(){this._segList.addPt(this._offset1.p1)},GA.prototype.initSideSegments=function(e,t,A){this._s1=e,this._s2=t,this._side=A,this._seg1.setCoordinates(e,t),this.computeOffsetSegment(this._seg1,A,this._distance,this._offset1)},GA.prototype.addLimitedMitreJoin=function(e,t,A,n){var r=this._seg0.p1,i=RA.angle(r,this._seg0.p0),o=RA.angleBetweenOriented(this._seg0.p0,r,this._seg1.p1)/2,a=RA.normalize(i+o),s=RA.normalize(a+Math.PI),g=n*A,c=A-g*Math.abs(Math.sin(o)),u=r.x+g*Math.cos(s),l=r.y+g*Math.sin(s),I=new m(u,l),C=new CA(r,I),h=C.pointAlongOffset(1,c),f=C.pointAlongOffset(1,-c);this._side===bt.LEFT?(this._segList.addPt(h),this._segList.addPt(f)):(this._segList.addPt(f),this._segList.addPt(h))},GA.prototype.computeOffsetSegment=function(e,t,A,n){var r=t===bt.LEFT?1:-1,i=e.p1.x-e.p0.x,o=e.p1.y-e.p0.y,a=Math.sqrt(i*i+o*o),s=r*A*i/a,g=r*A*o/a;n.p0.x=e.p0.x-g,n.p0.y=e.p0.y+s,n.p1.x=e.p1.x-g,n.p1.y=e.p1.y+s},GA.prototype.addFilletArc=function(e,t,A,n,r){var i=n===ae.CLOCKWISE?-1:1,o=Math.abs(t-A),a=Math.trunc(o/this._filletAngleQuantum+.5);if(a<1)return null;for(var s=o/a,g=0,c=new m;g<o;){var u=t+i*g;c.x=e.x+r*Math.cos(u),c.y=e.y+r*Math.sin(u),this._segList.addPt(c),g+=s}},GA.prototype.addInsideTurn=function(e,t){if(this._li.computeIntersection(this._offset0.p0,this._offset0.p1,this._offset1.p0,this._offset1.p1),this._li.hasIntersection())this._segList.addPt(this._li.getIntersection(0));else if(this._hasNarrowConcaveAngle=!0,this._offset0.p1.distance(this._offset1.p0)<this._distance*GA.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR)this._segList.addPt(this._offset0.p1);else{if(this._segList.addPt(this._offset0.p1),this._closingSegLengthFactor>0){var A=new m((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(A);var n=new m((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(n)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}},GA.prototype.createCircle=function(e){var t=new m(e.x+this._distance,e.y);this._segList.addPt(t),this.addFilletArc(e,0,2*Math.PI,-1,this._distance),this._segList.closeRing()},GA.prototype.addBevelJoin=function(e,t){this._segList.addPt(e.p1),this._segList.addPt(t.p0)},GA.prototype.init=function(e){this._distance=e,this._maxCurveSegmentError=e*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new SA,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(e*GA.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)},GA.prototype.addCollinear=function(e){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2),this._li.getIntersectionNum()>=2&&(this._bufParams.getJoinStyle()===vA.JOIN_BEVEL||this._bufParams.getJoinStyle()===vA.JOIN_MITRE?(e&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addFilletCorner(this._s1,this._offset0.p1,this._offset1.p0,ae.CLOCKWISE,this._distance))},GA.prototype.closeRing=function(){this._segList.closeRing()},GA.prototype.hasNarrowConcaveAngle=function(){return this._hasNarrowConcaveAngle},GA.prototype.interfaces_=function(){return[]},GA.prototype.getClass=function(){return GA},kA.OFFSET_SEGMENT_SEPARATION_FACTOR.get=function(){return.001},kA.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return.001},kA.CURVE_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return 1e-6},kA.MAX_CLOSING_SEG_LEN_FACTOR.get=function(){return 80},Object.defineProperties(GA,kA);var xA=function(){this._distance=0,this._precisionModel=null,this._bufParams=null;var e=arguments[0],t=arguments[1];this._precisionModel=e,this._bufParams=t};xA.prototype.getOffsetCurve=function(e,t){if(this._distance=t,0===t)return null;var A=t<0,n=Math.abs(t),r=this.getSegGen(n);e.length<=1?this.computePointCurve(e[0],r):this.computeOffsetCurve(e,A,r);var i=r.getCoordinates();return A&&we.reverse(i),i},xA.prototype.computeSingleSidedBufferCurve=function(e,t,A){var n=this.simplifyTolerance(this._distance);if(t){A.addSegments(e,!0);var r=bA.simplify(e,-n),i=r.length-1;A.initSideSegments(r[i],r[i-1],bt.LEFT),A.addFirstSegment();for(var o=i-2;o>=0;o--)A.addNextSegment(r[o],!0)}else{A.addSegments(e,!1);var a=bA.simplify(e,n),s=a.length-1;A.initSideSegments(a[0],a[1],bt.LEFT),A.addFirstSegment();for(var g=2;g<=s;g++)A.addNextSegment(a[g],!0)}A.addLastSegment(),A.closeRing()},xA.prototype.computeRingBufferCurve=function(e,t,A){var n=this.simplifyTolerance(this._distance);t===bt.RIGHT&&(n=-n);var r=bA.simplify(e,n),i=r.length-1;A.initSideSegments(r[i-1],r[0],t);for(var o=1;o<=i;o++){var a=1!==o;A.addNextSegment(r[o],a)}A.closeRing()},xA.prototype.computeLineBufferCurve=function(e,t){var A=this.simplifyTolerance(this._distance),n=bA.simplify(e,A),r=n.length-1;t.initSideSegments(n[0],n[1],bt.LEFT);for(var i=2;i<=r;i++)t.addNextSegment(n[i],!0);t.addLastSegment(),t.addLineEndCap(n[r-1],n[r]);var o=bA.simplify(e,-A),a=o.length-1;t.initSideSegments(o[a],o[a-1],bt.LEFT);for(var s=a-2;s>=0;s--)t.addNextSegment(o[s],!0);t.addLastSegment(),t.addLineEndCap(o[1],o[0]),t.closeRing()},xA.prototype.computePointCurve=function(e,t){switch(this._bufParams.getEndCapStyle()){case vA.CAP_ROUND:t.createCircle(e);break;case vA.CAP_SQUARE:t.createSquare(e)}},xA.prototype.getLineCurve=function(e,t){if(this._distance=t,t<0&&!this._bufParams.isSingleSided())return null;if(0===t)return null;var A=Math.abs(t),n=this.getSegGen(A);if(e.length<=1)this.computePointCurve(e[0],n);else if(this._bufParams.isSingleSided()){var r=t<0;this.computeSingleSidedBufferCurve(e,r,n)}else this.computeLineBufferCurve(e,n);return n.getCoordinates()},xA.prototype.getBufferParameters=function(){return this._bufParams},xA.prototype.simplifyTolerance=function(e){return e*this._bufParams.getSimplifyFactor()},xA.prototype.getRingCurve=function(e,t,A){if(this._distance=A,e.length<=2)return this.getLineCurve(e,A);if(0===A)return xA.copyCoordinates(e);var n=this.getSegGen(A);return this.computeRingBufferCurve(e,t,n),n.getCoordinates()},xA.prototype.computeOffsetCurve=function(e,t,A){var n=this.simplifyTolerance(this._distance);if(t){var r=bA.simplify(e,-n),i=r.length-1;A.initSideSegments(r[i],r[i-1],bt.LEFT),A.addFirstSegment();for(var o=i-2;o>=0;o--)A.addNextSegment(r[o],!0)}else{var a=bA.simplify(e,n),s=a.length-1;A.initSideSegments(a[0],a[1],bt.LEFT),A.addFirstSegment();for(var g=2;g<=s;g++)A.addNextSegment(a[g],!0)}A.addLastSegment()},xA.prototype.getSegGen=function(e){return new GA(this._precisionModel,this._bufParams,e)},xA.prototype.interfaces_=function(){return[]},xA.prototype.getClass=function(){return xA},xA.copyCoordinates=function(e){for(var t=new Array(e.length).fill(null),A=0;A<t.length;A++)t[A]=new m(e[A]);return t};var NA=function(){this._subgraphs=null,this._seg=new CA,this._cga=new ae;var e=arguments[0];this._subgraphs=e},UA={DepthSegment:{configurable:!0}};NA.prototype.findStabbedSegments=function(){if(1===arguments.length){for(var e=arguments[0],t=new ve,A=this._subgraphs.iterator();A.hasNext();){var n=A.next(),r=n.getEnvelope();e.y<r.getMinY()||e.y>r.getMaxY()||this.findStabbedSegments(e,n.getDirectedEdges(),t)}return t}if(3===arguments.length)if(D(arguments[2],ye)&&arguments[0]instanceof m&&arguments[1]instanceof Ht){for(var i=arguments[0],o=arguments[1],a=arguments[2],s=o.getEdge().getCoordinates(),g=0;g<s.length-1;g++)if(this._seg.p0=s[g],this._seg.p1=s[g+1],this._seg.p0.y>this._seg.p1.y&&this._seg.reverse(),!(Math.max(this._seg.p0.x,this._seg.p1.x)<i.x)&&!(this._seg.isHorizontal()||i.y<this._seg.p0.y||i.y>this._seg.p1.y||ae.computeOrientation(this._seg.p0,this._seg.p1,i)===ae.RIGHT)){var c=o.getDepth(bt.LEFT);this._seg.p0.equals(s[g])||(c=o.getDepth(bt.RIGHT));var u=new _A(this._seg,c);a.add(u)}}else if(D(arguments[2],ye)&&arguments[0]instanceof m&&D(arguments[1],ye))for(var l=arguments[0],I=arguments[1],C=arguments[2],h=I.iterator();h.hasNext();){var f=h.next();f.isForward()&&this.findStabbedSegments(l,f,C)}},NA.prototype.getDepth=function(e){var t=this.findStabbedSegments(e);return 0===t.size()?0:$t.min(t)._leftDepth},NA.prototype.interfaces_=function(){return[]},NA.prototype.getClass=function(){return NA},UA.DepthSegment.get=function(){return _A},Object.defineProperties(NA,UA);var _A=function(){this._upwardSeg=null,this._leftDepth=null;var e=arguments[0],t=arguments[1];this._upwardSeg=new CA(e),this._leftDepth=t};_A.prototype.compareTo=function(e){var t=e;if(this._upwardSeg.minX()>=t._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=t._upwardSeg.minX())return-1;var A=this._upwardSeg.orientationIndex(t._upwardSeg);return 0!==A||0!=(A=-1*t._upwardSeg.orientationIndex(this._upwardSeg))?A:this._upwardSeg.compareTo(t._upwardSeg)},_A.prototype.compareX=function(e,t){var A=e.p0.compareTo(t.p0);return 0!==A?A:e.p1.compareTo(t.p1)},_A.prototype.toString=function(){return this._upwardSeg.toString()},_A.prototype.interfaces_=function(){return[Q]},_A.prototype.getClass=function(){return _A};var MA=function(e,t,A){this.p0=e||null,this.p1=t||null,this.p2=A||null};MA.prototype.area=function(){return MA.area(this.p0,this.p1,this.p2)},MA.prototype.signedArea=function(){return MA.signedArea(this.p0,this.p1,this.p2)},MA.prototype.interpolateZ=function(e){if(null===e)throw new B("Supplied point is null.");return MA.interpolateZ(e,this.p0,this.p1,this.p2)},MA.prototype.longestSideLength=function(){return MA.longestSideLength(this.p0,this.p1,this.p2)},MA.prototype.isAcute=function(){return MA.isAcute(this.p0,this.p1,this.p2)},MA.prototype.circumcentre=function(){return MA.circumcentre(this.p0,this.p1,this.p2)},MA.prototype.area3D=function(){return MA.area3D(this.p0,this.p1,this.p2)},MA.prototype.centroid=function(){return MA.centroid(this.p0,this.p1,this.p2)},MA.prototype.inCentre=function(){return MA.inCentre(this.p0,this.p1,this.p2)},MA.prototype.interfaces_=function(){return[]},MA.prototype.getClass=function(){return MA},MA.area=function(e,t,A){return Math.abs(((A.x-e.x)*(t.y-e.y)-(t.x-e.x)*(A.y-e.y))/2)},MA.signedArea=function(e,t,A){return((A.x-e.x)*(t.y-e.y)-(t.x-e.x)*(A.y-e.y))/2},MA.det=function(e,t,A,n){return e*n-t*A},MA.interpolateZ=function(e,t,A,n){var r=t.x,i=t.y,o=A.x-r,a=n.x-r,s=A.y-i,g=n.y-i,c=o*g-a*s,u=e.x-r,l=e.y-i,I=(g*u-a*l)/c,C=(-s*u+o*l)/c;return t.z+I*(A.z-t.z)+C*(n.z-t.z)},MA.longestSideLength=function(e,t,A){var n=e.distance(t),r=t.distance(A),i=A.distance(e),o=n;return r>o&&(o=r),i>o&&(o=i),o},MA.isAcute=function(e,t,A){return!!RA.isAcute(e,t,A)&&!!RA.isAcute(t,A,e)&&!!RA.isAcute(A,e,t)},MA.circumcentre=function(e,t,A){var n=A.x,r=A.y,i=e.x-n,o=e.y-r,a=t.x-n,s=t.y-r,g=2*MA.det(i,o,a,s),c=MA.det(o,i*i+o*o,s,a*a+s*s),u=MA.det(i,i*i+o*o,a,a*a+s*s);return new m(n-c/g,r+u/g)},MA.perpendicularBisector=function(e,t){var A=t.x-e.x,n=t.y-e.y,r=new j(e.x+A/2,e.y+n/2,1),i=new j(e.x-n+A/2,e.y+A+n/2,1);return new j(r,i)},MA.angleBisector=function(e,t,A){var n=t.distance(e),r=n/(n+t.distance(A)),i=A.x-e.x,o=A.y-e.y;return new m(e.x+r*i,e.y+r*o)},MA.area3D=function(e,t,A){var n=t.x-e.x,r=t.y-e.y,i=t.z-e.z,o=A.x-e.x,a=A.y-e.y,s=A.z-e.z,g=r*s-i*a,c=i*o-n*s,u=n*a-r*o,l=g*g+c*c+u*u;return Math.sqrt(l)/2},MA.centroid=function(e,t,A){var n=(e.x+t.x+A.x)/3,r=(e.y+t.y+A.y)/3;return new m(n,r)},MA.inCentre=function(e,t,A){var n=t.distance(A),r=e.distance(A),i=e.distance(t),o=n+r+i,a=(n*e.x+r*t.x+i*A.x)/o,s=(n*e.y+r*t.y+i*A.y)/o;return new m(a,s)};var OA=function(){this._inputGeom=null,this._distance=null,this._curveBuilder=null,this._curveList=new ve;var e=arguments[0],t=arguments[1],A=arguments[2];this._inputGeom=e,this._distance=t,this._curveBuilder=A};OA.prototype.addPoint=function(e){if(this._distance<=0)return null;var t=e.getCoordinates(),A=this._curveBuilder.getLineCurve(t,this._distance);this.addCurve(A,F.EXTERIOR,F.INTERIOR)},OA.prototype.addPolygon=function(e){var t=this._distance,A=bt.LEFT;this._distance<0&&(t=-this._distance,A=bt.RIGHT);var n=e.getExteriorRing(),r=we.removeRepeatedPoints(n.getCoordinates());if(this._distance<0&&this.isErodedCompletely(n,this._distance))return null;if(this._distance<=0&&r.length<3)return null;this.addPolygonRing(r,t,A,F.EXTERIOR,F.INTERIOR);for(var i=0;i<e.getNumInteriorRing();i++){var o=e.getInteriorRingN(i),a=we.removeRepeatedPoints(o.getCoordinates());this._distance>0&&this.isErodedCompletely(o,-this._distance)||this.addPolygonRing(a,t,bt.opposite(A),F.INTERIOR,F.EXTERIOR)}},OA.prototype.isTriangleErodedCompletely=function(e,t){var A=new MA(e[0],e[1],e[2]),n=A.inCentre();return ae.distancePointLine(n,A.p0,A.p1)<Math.abs(t)},OA.prototype.addLineString=function(e){if(this._distance<=0&&!this._curveBuilder.getBufferParameters().isSingleSided())return null;var t=we.removeRepeatedPoints(e.getCoordinates()),A=this._curveBuilder.getLineCurve(t,this._distance);this.addCurve(A,F.EXTERIOR,F.INTERIOR)},OA.prototype.addCurve=function(e,t,A){if(null===e||e.length<2)return null;var n=new IA(e,new kt(0,F.BOUNDARY,t,A));this._curveList.add(n)},OA.prototype.getCurves=function(){return this.add(this._inputGeom),this._curveList},OA.prototype.addPolygonRing=function(e,t,A,n,r){if(0===t&&e.length<tt.MINIMUM_VALID_SIZE)return null;var i=n,o=r;e.length>=tt.MINIMUM_VALID_SIZE&&ae.isCCW(e)&&(i=r,o=n,A=bt.opposite(A));var a=this._curveBuilder.getRingCurve(e,A,t);this.addCurve(a,i,o)},OA.prototype.add=function(e){if(e.isEmpty())return null;e instanceof $e?this.addPolygon(e):e instanceof We?this.addLineString(e):e instanceof qe?this.addPoint(e):(e instanceof et||e instanceof Ye||e instanceof At||e instanceof He)&&this.addCollection(e)},OA.prototype.isErodedCompletely=function(e,t){var A=e.getCoordinates();if(A.length<4)return t<0;if(4===A.length)return this.isTriangleErodedCompletely(A,t);var n=e.getEnvelopeInternal(),r=Math.min(n.getHeight(),n.getWidth());return t<0&&2*Math.abs(t)>r},OA.prototype.addCollection=function(e){for(var t=0;t<e.getNumGeometries();t++){var A=e.getGeometryN(t);this.add(A)}},OA.prototype.interfaces_=function(){return[]},OA.prototype.getClass=function(){return OA};var LA=function(){};LA.prototype.locate=function(e){},LA.prototype.interfaces_=function(){return[]},LA.prototype.getClass=function(){return LA};var TA=function(){this._parent=null,this._atStart=null,this._max=null,this._index=null,this._subcollectionIterator=null;var e=arguments[0];this._parent=e,this._atStart=!0,this._index=0,this._max=e.getNumGeometries()};TA.prototype.next=function(){if(this._atStart)return this._atStart=!1,TA.isAtomic(this._parent)&&this._index++,this._parent;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return this._subcollectionIterator.next();this._subcollectionIterator=null}if(this._index>=this._max)throw new n;var e=this._parent.getGeometryN(this._index++);return e instanceof He?(this._subcollectionIterator=new TA(e),this._subcollectionIterator.next()):e},TA.prototype.remove=function(){throw new Error(this.getClass().getName())},TA.prototype.hasNext=function(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)},TA.prototype.interfaces_=function(){return[Qe]},TA.prototype.getClass=function(){return TA},TA.isAtomic=function(e){return!(e instanceof He)};var ZA=function(){this._geom=null;var e=arguments[0];this._geom=e};ZA.prototype.locate=function(e){return ZA.locate(e,this._geom)},ZA.prototype.interfaces_=function(){return[LA]},ZA.prototype.getClass=function(){return ZA},ZA.isPointInRing=function(e,t){return!!t.getEnvelopeInternal().intersects(e)&&ae.isPointInRing(e,t.getCoordinates())},ZA.containsPointInPolygon=function(e,t){if(t.isEmpty())return!1;var A=t.getExteriorRing();if(!ZA.isPointInRing(e,A))return!1;for(var n=0;n<t.getNumInteriorRing();n++){var r=t.getInteriorRingN(n);if(ZA.isPointInRing(e,r))return!1}return!0},ZA.containsPoint=function(e,t){if(t instanceof $e)return ZA.containsPointInPolygon(e,t);if(t instanceof He)for(var A=new TA(t);A.hasNext();){var n=A.next();if(n!==t&&ZA.containsPoint(e,n))return!0}return!1},ZA.locate=function(e,t){return t.isEmpty()?F.EXTERIOR:ZA.containsPoint(e,t)?F.INTERIOR:F.EXTERIOR};var HA=function(){this._edgeMap=new u,this._edgeList=null,this._ptInAreaLocation=[F.NONE,F.NONE]};HA.prototype.getNextCW=function(e){this.getEdges();var t=this._edgeList.indexOf(e),A=t-1;return 0===t&&(A=this._edgeList.size()-1),this._edgeList.get(A)},HA.prototype.propagateSideLabels=function(e){for(var t=F.NONE,A=this.iterator();A.hasNext();){var n=A.next().getLabel();n.isArea(e)&&n.getLocation(e,bt.LEFT)!==F.NONE&&(t=n.getLocation(e,bt.LEFT))}if(t===F.NONE)return null;for(var r=t,i=this.iterator();i.hasNext();){var o=i.next(),a=o.getLabel();if(a.getLocation(e,bt.ON)===F.NONE&&a.setLocation(e,bt.ON,r),a.isArea(e)){var s=a.getLocation(e,bt.LEFT),g=a.getLocation(e,bt.RIGHT);if(g!==F.NONE){if(g!==r)throw new Ft("side location conflict",o.getCoordinate());s===F.NONE&&te.shouldNeverReachHere("found single null side (at "+o.getCoordinate()+")"),r=s}else te.isTrue(a.getLocation(e,bt.LEFT)===F.NONE,"found single null side"),a.setLocation(e,bt.RIGHT,r),a.setLocation(e,bt.LEFT,r)}}},HA.prototype.getCoordinate=function(){var e=this.iterator();return e.hasNext()?e.next().getCoordinate():null},HA.prototype.print=function(e){J.out.println("EdgeEndStar: "+this.getCoordinate());for(var t=this.iterator();t.hasNext();)t.next().print(e)},HA.prototype.isAreaLabelsConsistent=function(e){return this.computeEdgeEndLabels(e.getBoundaryNodeRule()),this.checkAreaLabelsConsistent(0)},HA.prototype.checkAreaLabelsConsistent=function(e){var t=this.getEdges();if(t.size()<=0)return!0;var A=t.size()-1,n=t.get(A).getLabel().getLocation(e,bt.LEFT);te.isTrue(n!==F.NONE,"Found unlabelled area edge");for(var r=n,i=this.iterator();i.hasNext();){var o=i.next().getLabel();te.isTrue(o.isArea(e),"Found non-area edge");var a=o.getLocation(e,bt.LEFT),s=o.getLocation(e,bt.RIGHT);if(a===s)return!1;if(s!==r)return!1;r=a}return!0},HA.prototype.findIndex=function(e){this.iterator();for(var t=0;t<this._edgeList.size();t++)if(this._edgeList.get(t)===e)return t;return-1},HA.prototype.iterator=function(){return this.getEdges().iterator()},HA.prototype.getEdges=function(){return null===this._edgeList&&(this._edgeList=new ve(this._edgeMap.values())),this._edgeList},HA.prototype.getLocation=function(e,t,A){return this._ptInAreaLocation[e]===F.NONE&&(this._ptInAreaLocation[e]=ZA.locate(t,A[e].getGeometry())),this._ptInAreaLocation[e]},HA.prototype.toString=function(){var e=new x;e.append("EdgeEndStar: "+this.getCoordinate()),e.append("\n");for(var t=this.iterator();t.hasNext();){var A=t.next();e.append(A),e.append("\n")}return e.toString()},HA.prototype.computeEdgeEndLabels=function(e){for(var t=this.iterator();t.hasNext();)t.next().computeLabel(e)},HA.prototype.computeLabelling=function(e){this.computeEdgeEndLabels(e[0].getBoundaryNodeRule()),this.propagateSideLabels(0),this.propagateSideLabels(1);for(var t=[!1,!1],A=this.iterator();A.hasNext();)for(var n=A.next().getLabel(),r=0;r<2;r++)n.isLine(r)&&n.getLocation(r)===F.BOUNDARY&&(t[r]=!0);for(var i=this.iterator();i.hasNext();)for(var o=i.next(),a=o.getLabel(),s=0;s<2;s++)if(a.isAnyNull(s)){var g=F.NONE;if(t[s])g=F.EXTERIOR;else{var c=o.getCoordinate();g=this.getLocation(s,c,e)}a.setAllLocationsIfNull(s,g)}},HA.prototype.getDegree=function(){return this._edgeMap.size()},HA.prototype.insertEdgeEnd=function(e,t){this._edgeMap.put(e,t),this._edgeList=null},HA.prototype.interfaces_=function(){return[]},HA.prototype.getClass=function(){return HA};var YA=function(e){function t(){e.call(this),this._resultAreaEdgeList=null,this._label=null,this._SCANNING_FOR_INCOMING=1,this._LINKING_TO_OUTGOING=2}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.linkResultDirectedEdges=function(){this.getResultAreaEdges();for(var e=null,t=null,A=this._SCANNING_FOR_INCOMING,n=0;n<this._resultAreaEdgeList.size();n++){var r=this._resultAreaEdgeList.get(n),i=r.getSym();if(r.getLabel().isArea())switch(null===e&&r.isInResult()&&(e=r),A){case this._SCANNING_FOR_INCOMING:if(!i.isInResult())continue;t=i,A=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(!r.isInResult())continue;t.setNext(r),A=this._SCANNING_FOR_INCOMING}}if(A===this._LINKING_TO_OUTGOING){if(null===e)throw new Ft("no outgoing dirEdge found",this.getCoordinate());te.isTrue(e.isInResult(),"unable to link last incoming dirEdge"),t.setNext(e)}},t.prototype.insert=function(e){var t=e;this.insertEdgeEnd(t,t)},t.prototype.getRightmostEdge=function(){var e=this.getEdges(),t=e.size();if(t<1)return null;var A=e.get(0);if(1===t)return A;var n=e.get(t-1),r=A.getQuadrant(),i=n.getQuadrant();return Lt.isNorthern(r)&&Lt.isNorthern(i)?A:Lt.isNorthern(r)||Lt.isNorthern(i)?0!==A.getDy()?A:0!==n.getDy()?n:(te.shouldNeverReachHere("found two horizontal edges incident on node"),null):n},t.prototype.print=function(e){J.out.println("DirectedEdgeStar: "+this.getCoordinate());for(var t=this.iterator();t.hasNext();){var A=t.next();e.print("out "),A.print(e),e.println(),e.print("in "),A.getSym().print(e),e.println()}},t.prototype.getResultAreaEdges=function(){if(null!==this._resultAreaEdgeList)return this._resultAreaEdgeList;this._resultAreaEdgeList=new ve;for(var e=this.iterator();e.hasNext();){var t=e.next();(t.isInResult()||t.getSym().isInResult())&&this._resultAreaEdgeList.add(t)}return this._resultAreaEdgeList},t.prototype.updateLabelling=function(e){for(var t=this.iterator();t.hasNext();){var A=t.next().getLabel();A.setAllLocationsIfNull(0,e.getLocation(0)),A.setAllLocationsIfNull(1,e.getLocation(1))}},t.prototype.linkAllDirectedEdges=function(){this.getEdges();for(var e=null,t=null,A=this._edgeList.size()-1;A>=0;A--){var n=this._edgeList.get(A),r=n.getSym();null===t&&(t=r),null!==e&&r.setNext(e),e=n}t.setNext(e)},t.prototype.computeDepths=function(){if(1===arguments.length){var e=arguments[0],t=this.findIndex(e),A=e.getDepth(bt.LEFT),n=e.getDepth(bt.RIGHT),r=this.computeDepths(t+1,this._edgeList.size(),A);if(this.computeDepths(0,t,r)!==n)throw new Ft("depth mismatch at "+e.getCoordinate())}else if(3===arguments.length){for(var i=arguments[0],o=arguments[1],a=arguments[2],s=i;s<o;s++){var g=this._edgeList.get(s);g.setEdgeDepths(bt.RIGHT,a),a=g.getDepth(bt.LEFT)}return a}},t.prototype.mergeSymLabels=function(){for(var e=this.iterator();e.hasNext();){var t=e.next();t.getLabel().merge(t.getSym().getLabel())}},t.prototype.linkMinimalDirectedEdges=function(e){for(var t=null,A=null,n=this._SCANNING_FOR_INCOMING,r=this._resultAreaEdgeList.size()-1;r>=0;r--){var i=this._resultAreaEdgeList.get(r),o=i.getSym();switch(null===t&&i.getEdgeRing()===e&&(t=i),n){case this._SCANNING_FOR_INCOMING:if(o.getEdgeRing()!==e)continue;A=o,n=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(i.getEdgeRing()!==e)continue;A.setNextMin(i),n=this._SCANNING_FOR_INCOMING}}n===this._LINKING_TO_OUTGOING&&(te.isTrue(null!==t,"found null for first outgoing dirEdge"),te.isTrue(t.getEdgeRing()===e,"unable to link last incoming dirEdge"),A.setNextMin(t))},t.prototype.getOutgoingDegree=function(){if(0===arguments.length){for(var e=0,t=this.iterator();t.hasNext();)t.next().isInResult()&&e++;return e}if(1===arguments.length){for(var A=arguments[0],n=0,r=this.iterator();r.hasNext();)r.next().getEdgeRing()===A&&n++;return n}},t.prototype.getLabel=function(){return this._label},t.prototype.findCoveredLineEdges=function(){for(var e=F.NONE,t=this.iterator();t.hasNext();){var A=t.next(),n=A.getSym();if(!A.isLineEdge()){if(A.isInResult()){e=F.INTERIOR;break}if(n.isInResult()){e=F.EXTERIOR;break}}}if(e===F.NONE)return null;for(var r=e,i=this.iterator();i.hasNext();){var o=i.next(),a=o.getSym();o.isLineEdge()?o.getEdge().setCovered(r===F.INTERIOR):(o.isInResult()&&(r=F.EXTERIOR),a.isInResult()&&(r=F.INTERIOR))}},t.prototype.computeLabelling=function(t){e.prototype.computeLabelling.call(this,t),this._label=new kt(F.NONE);for(var A=this.iterator();A.hasNext();)for(var n=A.next().getEdge().getLabel(),r=0;r<2;r++){var i=n.getLocation(r);i!==F.INTERIOR&&i!==F.BOUNDARY||this._label.setLocation(r,F.INTERIOR)}},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(HA),JA=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.createNode=function(e){return new Mt(e,new YA)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(Yt),jA=function e(){this._pts=null,this._orientation=null;var t=arguments[0];this._pts=t,this._orientation=e.orientation(t)};jA.prototype.compareTo=function(e){var t=e;return jA.compareOriented(this._pts,this._orientation,t._pts,t._orientation)},jA.prototype.interfaces_=function(){return[Q]},jA.prototype.getClass=function(){return jA},jA.orientation=function(e){return 1===we.increasingDirection(e)},jA.compareOriented=function(e,t,A,n){for(var r=t?1:-1,i=n?1:-1,o=t?e.length:-1,a=n?A.length:-1,s=t?0:e.length-1,g=n?0:A.length-1;;){var c=e[s].compareTo(A[g]);if(0!==c)return c;var u=(s+=r)===o,l=(g+=i)===a;if(u&&!l)return-1;if(!u&&l)return 1;if(u&&l)return 0}};var PA=function(){this._edges=new ve,this._ocaMap=new u};PA.prototype.print=function(e){e.print("MULTILINESTRING ( ");for(var t=0;t<this._edges.size();t++){var A=this._edges.get(t);t>0&&e.print(","),e.print("(");for(var n=A.getCoordinates(),r=0;r<n.length;r++)r>0&&e.print(","),e.print(n[r].x+" "+n[r].y);e.println(")")}e.print(") ")},PA.prototype.addAll=function(e){for(var t=e.iterator();t.hasNext();)this.add(t.next())},PA.prototype.findEdgeIndex=function(e){for(var t=0;t<this._edges.size();t++)if(this._edges.get(t).equals(e))return t;return-1},PA.prototype.iterator=function(){return this._edges.iterator()},PA.prototype.getEdges=function(){return this._edges},PA.prototype.get=function(e){return this._edges.get(e)},PA.prototype.findEqualEdge=function(e){var t=new jA(e.getCoordinates());return this._ocaMap.get(t)},PA.prototype.add=function(e){this._edges.add(e);var t=new jA(e.getCoordinates());this._ocaMap.put(t,e)},PA.prototype.interfaces_=function(){return[]},PA.prototype.getClass=function(){return PA};var VA=function(){};VA.prototype.processIntersections=function(e,t,A,n){},VA.prototype.isDone=function(){},VA.prototype.interfaces_=function(){return[]},VA.prototype.getClass=function(){return VA};var KA=function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._hasInterior=!1,this._properIntersectionPoint=null,this._li=null,this._isSelfIntersection=null,this.numIntersections=0,this.numInteriorIntersections=0,this.numProperIntersections=0,this.numTests=0;var e=arguments[0];this._li=e};KA.prototype.isTrivialIntersection=function(e,t,A,n){if(e===A&&1===this._li.getIntersectionNum()){if(KA.isAdjacentSegments(t,n))return!0;if(e.isClosed()){var r=e.size()-1;if(0===t&&n===r||0===n&&t===r)return!0}}return!1},KA.prototype.getProperIntersectionPoint=function(){return this._properIntersectionPoint},KA.prototype.hasProperInteriorIntersection=function(){return this._hasProperInterior},KA.prototype.getLineIntersector=function(){return this._li},KA.prototype.hasProperIntersection=function(){return this._hasProper},KA.prototype.processIntersections=function(e,t,A,n){if(e===A&&t===n)return null;this.numTests++;var r=e.getCoordinates()[t],i=e.getCoordinates()[t+1],o=A.getCoordinates()[n],a=A.getCoordinates()[n+1];this._li.computeIntersection(r,i,o,a),this._li.hasIntersection()&&(this.numIntersections++,this._li.isInteriorIntersection()&&(this.numInteriorIntersections++,this._hasInterior=!0),this.isTrivialIntersection(e,t,A,n)||(this._hasIntersection=!0,e.addIntersections(this._li,t,0),A.addIntersections(this._li,n,1),this._li.isProper()&&(this.numProperIntersections++,this._hasProper=!0,this._hasProperInterior=!0)))},KA.prototype.hasIntersection=function(){return this._hasIntersection},KA.prototype.isDone=function(){return!1},KA.prototype.hasInteriorIntersection=function(){return this._hasInterior},KA.prototype.interfaces_=function(){return[VA]},KA.prototype.getClass=function(){return KA},KA.isAdjacentSegments=function(e,t){return 1===Math.abs(e-t)};var WA=function(){this.coord=null,this.segmentIndex=null,this.dist=null;var e=arguments[0],t=arguments[1],A=arguments[2];this.coord=new m(e),this.segmentIndex=t,this.dist=A};WA.prototype.getSegmentIndex=function(){return this.segmentIndex},WA.prototype.getCoordinate=function(){return this.coord},WA.prototype.print=function(e){e.print(this.coord),e.print(" seg # = "+this.segmentIndex),e.println(" dist = "+this.dist)},WA.prototype.compareTo=function(e){var t=e;return this.compare(t.segmentIndex,t.dist)},WA.prototype.isEndPoint=function(e){return 0===this.segmentIndex&&0===this.dist||this.segmentIndex===e},WA.prototype.toString=function(){return this.coord+" seg # = "+this.segmentIndex+" dist = "+this.dist},WA.prototype.getDistance=function(){return this.dist},WA.prototype.compare=function(e,t){return this.segmentIndex<e?-1:this.segmentIndex>e?1:this.dist<t?-1:this.dist>t?1:0},WA.prototype.interfaces_=function(){return[Q]},WA.prototype.getClass=function(){return WA};var XA=function(){this._nodeMap=new u,this.edge=null;var e=arguments[0];this.edge=e};XA.prototype.print=function(e){e.println("Intersections:");for(var t=this.iterator();t.hasNext();)t.next().print(e)},XA.prototype.iterator=function(){return this._nodeMap.values().iterator()},XA.prototype.addSplitEdges=function(e){this.addEndpoints();for(var t=this.iterator(),A=t.next();t.hasNext();){var n=t.next(),r=this.createSplitEdge(A,n);e.add(r),A=n}},XA.prototype.addEndpoints=function(){var e=this.edge.pts.length-1;this.add(this.edge.pts[0],0,0),this.add(this.edge.pts[e],e,0)},XA.prototype.createSplitEdge=function(e,t){var A=t.segmentIndex-e.segmentIndex+2,n=this.edge.pts[t.segmentIndex],r=t.dist>0||!t.coord.equals2D(n);r||A--;var i=new Array(A).fill(null),o=0;i[o++]=new m(e.coord);for(var a=e.segmentIndex+1;a<=t.segmentIndex;a++)i[o++]=this.edge.pts[a];return r&&(i[o]=t.coord),new tn(i,new kt(this.edge._label))},XA.prototype.add=function(e,t,A){var n=new WA(e,t,A),r=this._nodeMap.get(n);return null!==r?r:(this._nodeMap.put(n,n),n)},XA.prototype.isIntersection=function(e){for(var t=this.iterator();t.hasNext();)if(t.next().coord.equals(e))return!0;return!1},XA.prototype.interfaces_=function(){return[]},XA.prototype.getClass=function(){return XA};var qA=function(){};qA.prototype.getChainStartIndices=function(e){var t=0,A=new ve;A.add(new N(t));do{var n=this.findChainEnd(e,t);A.add(new N(n)),t=n}while(t<e.length-1);return qA.toIntArray(A)},qA.prototype.findChainEnd=function(e,t){for(var A=Lt.quadrant(e[t],e[t+1]),n=t+1;n<e.length&&Lt.quadrant(e[n-1],e[n])===A;)n++;return n-1},qA.prototype.interfaces_=function(){return[]},qA.prototype.getClass=function(){return qA},qA.toIntArray=function(e){for(var t=new Array(e.size()).fill(null),A=0;A<t.length;A++)t[A]=e.get(A).intValue();return t};var zA=function(){this.e=null,this.pts=null,this.startIndex=null,this.env1=new P,this.env2=new P;var e=arguments[0];this.e=e,this.pts=e.getCoordinates();var t=new qA;this.startIndex=t.getChainStartIndices(this.pts)};zA.prototype.getCoordinates=function(){return this.pts},zA.prototype.getMaxX=function(e){var t=this.pts[this.startIndex[e]].x,A=this.pts[this.startIndex[e+1]].x;return t>A?t:A},zA.prototype.getMinX=function(e){var t=this.pts[this.startIndex[e]].x,A=this.pts[this.startIndex[e+1]].x;return t<A?t:A},zA.prototype.computeIntersectsForChain=function(){if(4===arguments.length){var e=arguments[0],t=arguments[1],A=arguments[2],n=arguments[3];this.computeIntersectsForChain(this.startIndex[e],this.startIndex[e+1],t,t.startIndex[A],t.startIndex[A+1],n)}else if(6===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2],a=arguments[3],s=arguments[4],g=arguments[5],c=this.pts[r],u=this.pts[i],l=o.pts[a],I=o.pts[s];if(i-r==1&&s-a==1)return g.addIntersections(this.e,r,o.e,a),null;if(this.env1.init(c,u),this.env2.init(l,I),!this.env1.intersects(this.env2))return null;var C=Math.trunc((r+i)/2),h=Math.trunc((a+s)/2);r<C&&(a<h&&this.computeIntersectsForChain(r,C,o,a,h,g),h<s&&this.computeIntersectsForChain(r,C,o,h,s,g)),C<i&&(a<h&&this.computeIntersectsForChain(C,i,o,a,h,g),h<s&&this.computeIntersectsForChain(C,i,o,h,s,g))}},zA.prototype.getStartIndexes=function(){return this.startIndex},zA.prototype.computeIntersects=function(e,t){for(var A=0;A<this.startIndex.length-1;A++)for(var n=0;n<e.startIndex.length-1;n++)this.computeIntersectsForChain(A,e,n,t)},zA.prototype.interfaces_=function(){return[]},zA.prototype.getClass=function(){return zA};var $A=function e(){this._depth=Array(2).fill().map((function(){return Array(3)}));for(var t=0;t<2;t++)for(var A=0;A<3;A++)this._depth[t][A]=e.NULL_VALUE},en={NULL_VALUE:{configurable:!0}};$A.prototype.getDepth=function(e,t){return this._depth[e][t]},$A.prototype.setDepth=function(e,t,A){this._depth[e][t]=A},$A.prototype.isNull=function(){if(0===arguments.length){for(var e=0;e<2;e++)for(var t=0;t<3;t++)if(this._depth[e][t]!==$A.NULL_VALUE)return!1;return!0}if(1===arguments.length){var A=arguments[0];return this._depth[A][1]===$A.NULL_VALUE}if(2===arguments.length){var n=arguments[0],r=arguments[1];return this._depth[n][r]===$A.NULL_VALUE}},$A.prototype.normalize=function(){for(var e=0;e<2;e++)if(!this.isNull(e)){var t=this._depth[e][1];this._depth[e][2]<t&&(t=this._depth[e][2]),t<0&&(t=0);for(var A=1;A<3;A++){var n=0;this._depth[e][A]>t&&(n=1),this._depth[e][A]=n}}},$A.prototype.getDelta=function(e){return this._depth[e][bt.RIGHT]-this._depth[e][bt.LEFT]},$A.prototype.getLocation=function(e,t){return this._depth[e][t]<=0?F.EXTERIOR:F.INTERIOR},$A.prototype.toString=function(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]},$A.prototype.add=function(){if(1===arguments.length)for(var e=arguments[0],t=0;t<2;t++)for(var A=1;A<3;A++){var n=e.getLocation(t,A);n!==F.EXTERIOR&&n!==F.INTERIOR||(this.isNull(t,A)?this._depth[t][A]=$A.depthAtLocation(n):this._depth[t][A]+=$A.depthAtLocation(n))}else if(3===arguments.length){var r=arguments[0],i=arguments[1];arguments[2]===F.INTERIOR&&this._depth[r][i]++}},$A.prototype.interfaces_=function(){return[]},$A.prototype.getClass=function(){return $A},$A.depthAtLocation=function(e){return e===F.EXTERIOR?0:e===F.INTERIOR?1:$A.NULL_VALUE},en.NULL_VALUE.get=function(){return-1},Object.defineProperties($A,en);var tn=function(e){function t(){if(e.call(this),this.pts=null,this._env=null,this.eiList=new XA(this),this._name=null,this._mce=null,this._isIsolated=!0,this._depth=new $A,this._depthDelta=0,1===arguments.length){var A=arguments[0];t.call(this,A,null)}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.pts=n,this._label=r}}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.getDepth=function(){return this._depth},t.prototype.getCollapsedEdge=function(){var e=new Array(2).fill(null);return e[0]=this.pts[0],e[1]=this.pts[1],new t(e,kt.toLineLabel(this._label))},t.prototype.isIsolated=function(){return this._isIsolated},t.prototype.getCoordinates=function(){return this.pts},t.prototype.setIsolated=function(e){this._isIsolated=e},t.prototype.setName=function(e){this._name=e},t.prototype.equals=function(e){if(!(e instanceof t))return!1;var A=e;if(this.pts.length!==A.pts.length)return!1;for(var n=!0,r=!0,i=this.pts.length,o=0;o<this.pts.length;o++)if(this.pts[o].equals2D(A.pts[o])||(n=!1),this.pts[o].equals2D(A.pts[--i])||(r=!1),!n&&!r)return!1;return!0},t.prototype.getCoordinate=function(){if(0===arguments.length)return this.pts.length>0?this.pts[0]:null;if(1===arguments.length){var e=arguments[0];return this.pts[e]}},t.prototype.print=function(e){e.print("edge "+this._name+": "),e.print("LINESTRING (");for(var t=0;t<this.pts.length;t++)t>0&&e.print(","),e.print(this.pts[t].x+" "+this.pts[t].y);e.print(") "+this._label+" "+this._depthDelta)},t.prototype.computeIM=function(e){t.updateIM(this._label,e)},t.prototype.isCollapsed=function(){return!!this._label.isArea()&&3===this.pts.length&&!!this.pts[0].equals(this.pts[2])},t.prototype.isClosed=function(){return this.pts[0].equals(this.pts[this.pts.length-1])},t.prototype.getMaximumSegmentIndex=function(){return this.pts.length-1},t.prototype.getDepthDelta=function(){return this._depthDelta},t.prototype.getNumPoints=function(){return this.pts.length},t.prototype.printReverse=function(e){e.print("edge "+this._name+": ");for(var t=this.pts.length-1;t>=0;t--)e.print(this.pts[t]+" ");e.println("")},t.prototype.getMonotoneChainEdge=function(){return null===this._mce&&(this._mce=new zA(this)),this._mce},t.prototype.getEnvelope=function(){if(null===this._env){this._env=new P;for(var e=0;e<this.pts.length;e++)this._env.expandToInclude(this.pts[e])}return this._env},t.prototype.addIntersection=function(e,t,A,n){var r=new m(e.getIntersection(n)),i=t,o=e.getEdgeDistance(A,n),a=i+1;if(a<this.pts.length){var s=this.pts[a];r.equals2D(s)&&(i=a,o=0)}this.eiList.add(r,i,o)},t.prototype.toString=function(){var e=new x;e.append("edge "+this._name+": "),e.append("LINESTRING (");for(var t=0;t<this.pts.length;t++)t>0&&e.append(","),e.append(this.pts[t].x+" "+this.pts[t].y);return e.append(") "+this._label+" "+this._depthDelta),e.toString()},t.prototype.isPointwiseEqual=function(e){if(this.pts.length!==e.pts.length)return!1;for(var t=0;t<this.pts.length;t++)if(!this.pts[t].equals2D(e.pts[t]))return!1;return!0},t.prototype.setDepthDelta=function(e){this._depthDelta=e},t.prototype.getEdgeIntersectionList=function(){return this.eiList},t.prototype.addIntersections=function(e,t,A){for(var n=0;n<e.getIntersectionNum();n++)this.addIntersection(e,t,A,n)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t.updateIM=function(){if(2!==arguments.length)return e.prototype.updateIM.apply(this,arguments);var t=arguments[0],A=arguments[1];A.setAtLeastIfValid(t.getLocation(0,bt.ON),t.getLocation(1,bt.ON),1),t.isArea()&&(A.setAtLeastIfValid(t.getLocation(0,bt.LEFT),t.getLocation(1,bt.LEFT),2),A.setAtLeastIfValid(t.getLocation(0,bt.RIGHT),t.getLocation(1,bt.RIGHT),2))},t}(_t),An=function(e){this._workingPrecisionModel=null,this._workingNoder=null,this._geomFact=null,this._graph=null,this._edgeList=new PA,this._bufParams=e||null};An.prototype.setWorkingPrecisionModel=function(e){this._workingPrecisionModel=e},An.prototype.insertUniqueEdge=function(e){var t=this._edgeList.findEqualEdge(e);if(null!==t){var A=t.getLabel(),n=e.getLabel();t.isPointwiseEqual(e)||(n=new kt(e.getLabel())).flip(),A.merge(n);var r=An.depthDelta(n),i=t.getDepthDelta()+r;t.setDepthDelta(i)}else this._edgeList.add(e),e.setDepthDelta(An.depthDelta(e.getLabel()))},An.prototype.buildSubgraphs=function(e,t){for(var A=new ve,n=e.iterator();n.hasNext();){var r=n.next(),i=r.getRightmostCoordinate(),o=new NA(A).getDepth(i);r.computeDepth(o),r.findResultEdges(),A.add(r),t.add(r.getDirectedEdges(),r.getNodes())}},An.prototype.createSubgraphs=function(e){for(var t=new ve,A=e.getNodes().iterator();A.hasNext();){var n=A.next();if(!n.isVisited()){var r=new Dt;r.create(n),t.add(r)}}return $t.sort(t,$t.reverseOrder()),t},An.prototype.createEmptyResultGeometry=function(){return this._geomFact.createPolygon()},An.prototype.getNoder=function(e){if(null!==this._workingNoder)return this._workingNoder;var t=new QA,A=new re;return A.setPrecisionModel(e),t.setSegmentIntersector(new KA(A)),t},An.prototype.buffer=function(e,t){var A=this._workingPrecisionModel;null===A&&(A=e.getPrecisionModel()),this._geomFact=e.getFactory();var n=new xA(A,this._bufParams),r=new OA(e,t,n).getCurves();if(r.size()<=0)return this.createEmptyResultGeometry();this.computeNodedEdges(r,A),this._graph=new Jt(new JA),this._graph.addEdges(this._edgeList.getEdges());var i=this.createSubgraphs(this._graph),o=new jt(this._geomFact);this.buildSubgraphs(i,o);var a=o.getPolygons();return a.size()<=0?this.createEmptyResultGeometry():this._geomFact.buildGeometry(a)},An.prototype.computeNodedEdges=function(e,t){var A=this.getNoder(t);A.computeNodes(e);for(var n=A.getNodedSubstrings().iterator();n.hasNext();){var r=n.next(),i=r.getCoordinates();if(2!==i.length||!i[0].equals2D(i[1])){var o=r.getData(),a=new tn(r.getCoordinates(),new kt(o));this.insertUniqueEdge(a)}}},An.prototype.setNoder=function(e){this._workingNoder=e},An.prototype.interfaces_=function(){return[]},An.prototype.getClass=function(){return An},An.depthDelta=function(e){var t=e.getLocation(0,bt.LEFT),A=e.getLocation(0,bt.RIGHT);return t===F.INTERIOR&&A===F.EXTERIOR?1:t===F.EXTERIOR&&A===F.INTERIOR?-1:0},An.convertSegStrings=function(e){for(var t=new dt,A=new ve;e.hasNext();){var n=e.next(),r=t.createLineString(n.getCoordinates());A.add(r)}return t.buildGeometry(A)};var nn=function(){if(this._noder=null,this._scaleFactor=null,this._offsetX=null,this._offsetY=null,this._isScaled=!1,2===arguments.length){var e=arguments[0],t=arguments[1];this._noder=e,this._scaleFactor=t,this._offsetX=0,this._offsetY=0,this._isScaled=!this.isIntegerPrecision()}else if(4===arguments.length){var A=arguments[0],n=arguments[1],r=arguments[2],i=arguments[3];this._noder=A,this._scaleFactor=n,this._offsetX=r,this._offsetY=i,this._isScaled=!this.isIntegerPrecision()}};nn.prototype.rescale=function(){if(D(arguments[0],Ee))for(var e=arguments[0].iterator();e.hasNext();){var t=e.next();this.rescale(t.getCoordinates())}else if(arguments[0]instanceof Array){for(var A=arguments[0],n=0;n<A.length;n++)A[n].x=A[n].x/this._scaleFactor+this._offsetX,A[n].y=A[n].y/this._scaleFactor+this._offsetY;2===A.length&&A[0].equals2D(A[1])&&J.out.println(A)}},nn.prototype.scale=function(){if(D(arguments[0],Ee)){for(var e=arguments[0],t=new ve,A=e.iterator();A.hasNext();){var n=A.next();t.add(new IA(this.scale(n.getCoordinates()),n.getData()))}return t}if(arguments[0]instanceof Array){for(var r=arguments[0],i=new Array(r.length).fill(null),o=0;o<r.length;o++)i[o]=new m(Math.round((r[o].x-this._offsetX)*this._scaleFactor),Math.round((r[o].y-this._offsetY)*this._scaleFactor),r[o].z);return we.removeRepeatedPoints(i)}},nn.prototype.isIntegerPrecision=function(){return 1===this._scaleFactor},nn.prototype.getNodedSubstrings=function(){var e=this._noder.getNodedSubstrings();return this._isScaled&&this.rescale(e),e},nn.prototype.computeNodes=function(e){var t=e;this._isScaled&&(t=this.scale(e)),this._noder.computeNodes(t)},nn.prototype.interfaces_=function(){return[pA]},nn.prototype.getClass=function(){return nn};var rn=function(){this._li=new re,this._segStrings=null;var e=arguments[0];this._segStrings=e},on={fact:{configurable:!0}};rn.prototype.checkEndPtVertexIntersections=function(){if(0===arguments.length)for(var e=this._segStrings.iterator();e.hasNext();){var t=e.next().getCoordinates();this.checkEndPtVertexIntersections(t[0],this._segStrings),this.checkEndPtVertexIntersections(t[t.length-1],this._segStrings)}else if(2===arguments.length)for(var A=arguments[0],n=arguments[1].iterator();n.hasNext();)for(var r=n.next().getCoordinates(),i=1;i<r.length-1;i++)if(r[i].equals(A))throw new $("found endpt/interior pt intersection at index "+i+" :pt "+A)},rn.prototype.checkInteriorIntersections=function(){if(0===arguments.length)for(var e=this._segStrings.iterator();e.hasNext();)for(var t=e.next(),A=this._segStrings.iterator();A.hasNext();){var n=A.next();this.checkInteriorIntersections(t,n)}else if(2===arguments.length)for(var r=arguments[0],i=arguments[1],o=r.getCoordinates(),a=i.getCoordinates(),s=0;s<o.length-1;s++)for(var g=0;g<a.length-1;g++)this.checkInteriorIntersections(r,s,i,g);else if(4===arguments.length){var c=arguments[0],u=arguments[1],l=arguments[2],I=arguments[3];if(c===l&&u===I)return null;var C=c.getCoordinates()[u],h=c.getCoordinates()[u+1],f=l.getCoordinates()[I],d=l.getCoordinates()[I+1];if(this._li.computeIntersection(C,h,f,d),this._li.hasIntersection()&&(this._li.isProper()||this.hasInteriorIntersection(this._li,C,h)||this.hasInteriorIntersection(this._li,f,d)))throw new $("found non-noded intersection at "+C+"-"+h+" and "+f+"-"+d)}},rn.prototype.checkValid=function(){this.checkEndPtVertexIntersections(),this.checkInteriorIntersections(),this.checkCollapses()},rn.prototype.checkCollapses=function(){if(0===arguments.length)for(var e=this._segStrings.iterator();e.hasNext();){var t=e.next();this.checkCollapses(t)}else if(1===arguments.length)for(var A=arguments[0].getCoordinates(),n=0;n<A.length-2;n++)this.checkCollapse(A[n],A[n+1],A[n+2])},rn.prototype.hasInteriorIntersection=function(e,t,A){for(var n=0;n<e.getIntersectionNum();n++){var r=e.getIntersection(n);if(!r.equals(t)&&!r.equals(A))return!0}return!1},rn.prototype.checkCollapse=function(e,t,A){if(e.equals(A))throw new $("found non-noded collapse at "+rn.fact.createLineString([e,t,A]))},rn.prototype.interfaces_=function(){return[]},rn.prototype.getClass=function(){return rn},on.fact.get=function(){return new dt},Object.defineProperties(rn,on);var an=function(){this._li=null,this._pt=null,this._originalPt=null,this._ptScaled=null,this._p0Scaled=null,this._p1Scaled=null,this._scaleFactor=null,this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,this._corner=new Array(4).fill(null),this._safeEnv=null;var e=arguments[0],t=arguments[1],A=arguments[2];if(this._originalPt=e,this._pt=e,this._scaleFactor=t,this._li=A,t<=0)throw new B("Scale factor must be non-zero");1!==t&&(this._pt=new m(this.scale(e.x),this.scale(e.y)),this._p0Scaled=new m,this._p1Scaled=new m),this.initCorners(this._pt)},sn={SAFE_ENV_EXPANSION_FACTOR:{configurable:!0}};an.prototype.intersectsScaled=function(e,t){var A=Math.min(e.x,t.x),n=Math.max(e.x,t.x),r=Math.min(e.y,t.y),i=Math.max(e.y,t.y),o=this._maxx<A||this._minx>n||this._maxy<r||this._miny>i;if(o)return!1;var a=this.intersectsToleranceSquare(e,t);return te.isTrue(!(o&&a),"Found bad envelope test"),a},an.prototype.initCorners=function(e){this._minx=e.x-.5,this._maxx=e.x+.5,this._miny=e.y-.5,this._maxy=e.y+.5,this._corner[0]=new m(this._maxx,this._maxy),this._corner[1]=new m(this._minx,this._maxy),this._corner[2]=new m(this._minx,this._miny),this._corner[3]=new m(this._maxx,this._miny)},an.prototype.intersects=function(e,t){return 1===this._scaleFactor?this.intersectsScaled(e,t):(this.copyScaled(e,this._p0Scaled),this.copyScaled(t,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))},an.prototype.scale=function(e){return Math.round(e*this._scaleFactor)},an.prototype.getCoordinate=function(){return this._originalPt},an.prototype.copyScaled=function(e,t){t.x=this.scale(e.x),t.y=this.scale(e.y)},an.prototype.getSafeEnvelope=function(){if(null===this._safeEnv){var e=an.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new P(this._originalPt.x-e,this._originalPt.x+e,this._originalPt.y-e,this._originalPt.y+e)}return this._safeEnv},an.prototype.intersectsPixelClosure=function(e,t){return this._li.computeIntersection(e,t,this._corner[0],this._corner[1]),!!this._li.hasIntersection()||(this._li.computeIntersection(e,t,this._corner[1],this._corner[2]),!!this._li.hasIntersection()||(this._li.computeIntersection(e,t,this._corner[2],this._corner[3]),!!this._li.hasIntersection()||(this._li.computeIntersection(e,t,this._corner[3],this._corner[0]),!!this._li.hasIntersection())))},an.prototype.intersectsToleranceSquare=function(e,t){var A=!1,n=!1;return this._li.computeIntersection(e,t,this._corner[0],this._corner[1]),!!this._li.isProper()||(this._li.computeIntersection(e,t,this._corner[1],this._corner[2]),!!this._li.isProper()||(this._li.hasIntersection()&&(A=!0),this._li.computeIntersection(e,t,this._corner[2],this._corner[3]),!!this._li.isProper()||(this._li.hasIntersection()&&(n=!0),this._li.computeIntersection(e,t,this._corner[3],this._corner[0]),!!this._li.isProper()||!(!A||!n)||!!e.equals(this._pt)||!!t.equals(this._pt))))},an.prototype.addSnappedNode=function(e,t){var A=e.getCoordinate(t),n=e.getCoordinate(t+1);return!!this.intersects(A,n)&&(e.addIntersection(this.getCoordinate(),t),!0)},an.prototype.interfaces_=function(){return[]},an.prototype.getClass=function(){return an},sn.SAFE_ENV_EXPANSION_FACTOR.get=function(){return.75},Object.defineProperties(an,sn);var gn=function(){this.tempEnv1=new P,this.selectedSegment=new CA};gn.prototype.select=function(){if(1===arguments.length);else if(2===arguments.length){var e=arguments[0],t=arguments[1];e.getLineSegment(t,this.selectedSegment),this.select(this.selectedSegment)}},gn.prototype.interfaces_=function(){return[]},gn.prototype.getClass=function(){return gn};var cn=function(){this._index=null;var e=arguments[0];this._index=e},un={HotPixelSnapAction:{configurable:!0}};cn.prototype.snap=function(){if(1===arguments.length){var e=arguments[0];return this.snap(e,null,-1)}if(3===arguments.length){var t=arguments[0],A=arguments[1],n=arguments[2],r=t.getSafeEnvelope(),i=new ln(t,A,n);return this._index.query(r,{interfaces_:function(){return[Wt]},visitItem:function(e){e.select(r,i)}}),i.isNodeAdded()}},cn.prototype.interfaces_=function(){return[]},cn.prototype.getClass=function(){return cn},un.HotPixelSnapAction.get=function(){return ln},Object.defineProperties(cn,un);var ln=function(e){function t(){e.call(this),this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;var t=arguments[0],A=arguments[1],n=arguments[2];this._hotPixel=t,this._parentEdge=A,this._hotPixelVertexIndex=n}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.isNodeAdded=function(){return this._isNodeAdded},t.prototype.select=function(){if(2!==arguments.length)return e.prototype.select.apply(this,arguments);var t=arguments[0],A=arguments[1],n=t.getContext();if(null!==this._parentEdge&&n===this._parentEdge&&A===this._hotPixelVertexIndex)return null;this._isNodeAdded=this._hotPixel.addSnappedNode(n,A)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(gn),In=function(){this._li=null,this._interiorIntersections=null;var e=arguments[0];this._li=e,this._interiorIntersections=new ve};In.prototype.processIntersections=function(e,t,A,n){if(e===A&&t===n)return null;var r=e.getCoordinates()[t],i=e.getCoordinates()[t+1],o=A.getCoordinates()[n],a=A.getCoordinates()[n+1];if(this._li.computeIntersection(r,i,o,a),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var s=0;s<this._li.getIntersectionNum();s++)this._interiorIntersections.add(this._li.getIntersection(s));e.addIntersections(this._li,t,0),A.addIntersections(this._li,n,1)}},In.prototype.isDone=function(){return!1},In.prototype.getInteriorIntersections=function(){return this._interiorIntersections},In.prototype.interfaces_=function(){return[VA]},In.prototype.getClass=function(){return In};var Cn=function(){this._pm=null,this._li=null,this._scaleFactor=null,this._noder=null,this._pointSnapper=null,this._nodedSegStrings=null;var e=arguments[0];this._pm=e,this._li=new re,this._li.setPrecisionModel(e),this._scaleFactor=e.getScale()};Cn.prototype.checkCorrectness=function(e){var t=IA.getNodedSubstrings(e),A=new rn(t);try{A.checkValid()}catch(e){if(!(e instanceof H))throw e;e.printStackTrace()}},Cn.prototype.getNodedSubstrings=function(){return IA.getNodedSubstrings(this._nodedSegStrings)},Cn.prototype.snapRound=function(e,t){var A=this.findInteriorIntersections(e,t);this.computeIntersectionSnaps(A),this.computeVertexSnaps(e)},Cn.prototype.findInteriorIntersections=function(e,t){var A=new In(t);return this._noder.setSegmentIntersector(A),this._noder.computeNodes(e),A.getInteriorIntersections()},Cn.prototype.computeVertexSnaps=function(){if(D(arguments[0],Ee))for(var e=arguments[0].iterator();e.hasNext();){var t=e.next();this.computeVertexSnaps(t)}else if(arguments[0]instanceof IA)for(var A=arguments[0],n=A.getCoordinates(),r=0;r<n.length;r++){var i=new an(n[r],this._scaleFactor,this._li);this._pointSnapper.snap(i,A,r)&&A.addIntersection(n[r],r)}},Cn.prototype.computeNodes=function(e){this._nodedSegStrings=e,this._noder=new QA,this._pointSnapper=new cn(this._noder.getIndex()),this.snapRound(e,this._li)},Cn.prototype.computeIntersectionSnaps=function(e){for(var t=e.iterator();t.hasNext();){var A=t.next(),n=new an(A,this._scaleFactor,this._li);this._pointSnapper.snap(n)}},Cn.prototype.interfaces_=function(){return[pA]},Cn.prototype.getClass=function(){return Cn};var hn=function(){if(this._argGeom=null,this._distance=null,this._bufParams=new vA,this._resultGeometry=null,this._saveException=null,1===arguments.length){var e=arguments[0];this._argGeom=e}else if(2===arguments.length){var t=arguments[0],A=arguments[1];this._argGeom=t,this._bufParams=A}},fn={CAP_ROUND:{configurable:!0},CAP_BUTT:{configurable:!0},CAP_FLAT:{configurable:!0},CAP_SQUARE:{configurable:!0},MAX_PRECISION_DIGITS:{configurable:!0}};hn.prototype.bufferFixedPrecision=function(e){var t=new nn(new Cn(new It(1)),e.getScale()),A=new An(this._bufParams);A.setWorkingPrecisionModel(e),A.setNoder(t),this._resultGeometry=A.buffer(this._argGeom,this._distance)},hn.prototype.bufferReducedPrecision=function(){var e=this;if(0===arguments.length){for(var t=hn.MAX_PRECISION_DIGITS;t>=0;t--){try{e.bufferReducedPrecision(t)}catch(t){if(!(t instanceof Ft))throw t;e._saveException=t}if(null!==e._resultGeometry)return null}throw this._saveException}if(1===arguments.length){var A=arguments[0],n=hn.precisionScaleFactor(this._argGeom,this._distance,A),r=new It(n);this.bufferFixedPrecision(r)}},hn.prototype.computeGeometry=function(){if(this.bufferOriginalPrecision(),null!==this._resultGeometry)return null;var e=this._argGeom.getFactory().getPrecisionModel();e.getType()===It.FIXED?this.bufferFixedPrecision(e):this.bufferReducedPrecision()},hn.prototype.setQuadrantSegments=function(e){this._bufParams.setQuadrantSegments(e)},hn.prototype.bufferOriginalPrecision=function(){try{var e=new An(this._bufParams);this._resultGeometry=e.buffer(this._argGeom,this._distance)}catch(e){if(!(e instanceof $))throw e;this._saveException=e}},hn.prototype.getResultGeometry=function(e){return this._distance=e,this.computeGeometry(),this._resultGeometry},hn.prototype.setEndCapStyle=function(e){this._bufParams.setEndCapStyle(e)},hn.prototype.interfaces_=function(){return[]},hn.prototype.getClass=function(){return hn},hn.bufferOp=function(){if(2===arguments.length){var e=arguments[0],t=arguments[1];return new hn(e).getResultGeometry(t)}if(3===arguments.length){if(Number.isInteger(arguments[2])&&arguments[0]instanceof ce&&"number"==typeof arguments[1]){var A=arguments[0],n=arguments[1],r=arguments[2],i=new hn(A);return i.setQuadrantSegments(r),i.getResultGeometry(n)}if(arguments[2]instanceof vA&&arguments[0]instanceof ce&&"number"==typeof arguments[1]){var o=arguments[0],a=arguments[1],s=arguments[2];return new hn(o,s).getResultGeometry(a)}}else if(4===arguments.length){var g=arguments[0],c=arguments[1],u=arguments[2],l=arguments[3],I=new hn(g);return I.setQuadrantSegments(u),I.setEndCapStyle(l),I.getResultGeometry(c)}},hn.precisionScaleFactor=function(e,t,A){var n=e.getEnvelopeInternal(),r=G.max(Math.abs(n.getMaxX()),Math.abs(n.getMaxY()),Math.abs(n.getMinX()),Math.abs(n.getMinY()))+2*(t>0?t:0),i=A-Math.trunc(Math.log(r)/Math.log(10)+1);return Math.pow(10,i)},fn.CAP_ROUND.get=function(){return vA.CAP_ROUND},fn.CAP_BUTT.get=function(){return vA.CAP_FLAT},fn.CAP_FLAT.get=function(){return vA.CAP_FLAT},fn.CAP_SQUARE.get=function(){return vA.CAP_SQUARE},fn.MAX_PRECISION_DIGITS.get=function(){return 12},Object.defineProperties(hn,fn);var dn=function(){this._pt=[new m,new m],this._distance=p.NaN,this._isNull=!0};dn.prototype.getCoordinates=function(){return this._pt},dn.prototype.getCoordinate=function(e){return this._pt[e]},dn.prototype.setMinimum=function(){if(1===arguments.length){var e=arguments[0];this.setMinimum(e._pt[0],e._pt[1])}else if(2===arguments.length){var t=arguments[0],A=arguments[1];if(this._isNull)return this.initialize(t,A),null;var n=t.distance(A);n<this._distance&&this.initialize(t,A,n)}},dn.prototype.initialize=function(){if(0===arguments.length)this._isNull=!0;else if(2===arguments.length){var e=arguments[0],t=arguments[1];this._pt[0].setCoordinate(e),this._pt[1].setCoordinate(t),this._distance=e.distance(t),this._isNull=!1}else if(3===arguments.length){var A=arguments[0],n=arguments[1],r=arguments[2];this._pt[0].setCoordinate(A),this._pt[1].setCoordinate(n),this._distance=r,this._isNull=!1}},dn.prototype.getDistance=function(){return this._distance},dn.prototype.setMaximum=function(){if(1===arguments.length){var e=arguments[0];this.setMaximum(e._pt[0],e._pt[1])}else if(2===arguments.length){var t=arguments[0],A=arguments[1];if(this._isNull)return this.initialize(t,A),null;var n=t.distance(A);n>this._distance&&this.initialize(t,A,n)}},dn.prototype.interfaces_=function(){return[]},dn.prototype.getClass=function(){return dn};var Bn=function(){};Bn.prototype.interfaces_=function(){return[]},Bn.prototype.getClass=function(){return Bn},Bn.computeDistance=function(){if(arguments[2]instanceof dn&&arguments[0]instanceof We&&arguments[1]instanceof m)for(var e=arguments[0],t=arguments[1],A=arguments[2],n=e.getCoordinates(),r=new CA,i=0;i<n.length-1;i++){r.setCoordinates(n[i],n[i+1]);var o=r.closestPoint(t);A.setMinimum(o,t)}else if(arguments[2]instanceof dn&&arguments[0]instanceof $e&&arguments[1]instanceof m){var a=arguments[0],s=arguments[1],g=arguments[2];Bn.computeDistance(a.getExteriorRing(),s,g);for(var c=0;c<a.getNumInteriorRing();c++)Bn.computeDistance(a.getInteriorRingN(c),s,g)}else if(arguments[2]instanceof dn&&arguments[0]instanceof ce&&arguments[1]instanceof m){var u=arguments[0],l=arguments[1],I=arguments[2];if(u instanceof We)Bn.computeDistance(u,l,I);else if(u instanceof $e)Bn.computeDistance(u,l,I);else if(u instanceof He)for(var C=u,h=0;h<C.getNumGeometries();h++){var f=C.getGeometryN(h);Bn.computeDistance(f,l,I)}else I.setMinimum(u.getCoordinate(),l)}else if(arguments[2]instanceof dn&&arguments[0]instanceof CA&&arguments[1]instanceof m){var d=arguments[0],B=arguments[1],p=arguments[2],E=d.closestPoint(B);p.setMinimum(E,B)}};var pn=function(e){this._maxPtDist=new dn,this._inputGeom=e||null},En={MaxPointDistanceFilter:{configurable:!0},MaxMidpointDistanceFilter:{configurable:!0}};pn.prototype.computeMaxMidpointDistance=function(e){var t=new yn(this._inputGeom);e.apply(t),this._maxPtDist.setMaximum(t.getMaxPointDistance())},pn.prototype.computeMaxVertexDistance=function(e){var t=new Qn(this._inputGeom);e.apply(t),this._maxPtDist.setMaximum(t.getMaxPointDistance())},pn.prototype.findDistance=function(e){return this.computeMaxVertexDistance(e),this.computeMaxMidpointDistance(e),this._maxPtDist.getDistance()},pn.prototype.getDistancePoints=function(){return this._maxPtDist},pn.prototype.interfaces_=function(){return[]},pn.prototype.getClass=function(){return pn},En.MaxPointDistanceFilter.get=function(){return Qn},En.MaxMidpointDistanceFilter.get=function(){return yn},Object.defineProperties(pn,En);var Qn=function(e){this._maxPtDist=new dn,this._minPtDist=new dn,this._geom=e||null};Qn.prototype.filter=function(e){this._minPtDist.initialize(),Bn.computeDistance(this._geom,e,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)},Qn.prototype.getMaxPointDistance=function(){return this._maxPtDist},Qn.prototype.interfaces_=function(){return[Ie]},Qn.prototype.getClass=function(){return Qn};var yn=function(e){this._maxPtDist=new dn,this._minPtDist=new dn,this._geom=e||null};yn.prototype.filter=function(e,t){if(0===t)return null;var A=e.getCoordinate(t-1),n=e.getCoordinate(t),r=new m((A.x+n.x)/2,(A.y+n.y)/2);this._minPtDist.initialize(),Bn.computeDistance(this._geom,r,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)},yn.prototype.isDone=function(){return!1},yn.prototype.isGeometryChanged=function(){return!1},yn.prototype.getMaxPointDistance=function(){return this._maxPtDist},yn.prototype.interfaces_=function(){return[Ze]},yn.prototype.getClass=function(){return yn};var vn=function(e){this._comps=e||null};vn.prototype.filter=function(e){e instanceof $e&&this._comps.add(e)},vn.prototype.interfaces_=function(){return[Te]},vn.prototype.getClass=function(){return vn},vn.getPolygons=function(){if(1===arguments.length){var e=arguments[0];return vn.getPolygons(e,new ve)}if(2===arguments.length){var t=arguments[0],A=arguments[1];return t instanceof $e?A.add(t):t instanceof He&&t.apply(new vn(A)),A}};var mn=function(){if(this._lines=null,this._isForcedToLineString=!1,1===arguments.length){var e=arguments[0];this._lines=e}else if(2===arguments.length){var t=arguments[0],A=arguments[1];this._lines=t,this._isForcedToLineString=A}};mn.prototype.filter=function(e){if(this._isForcedToLineString&&e instanceof tt){var t=e.getFactory().createLineString(e.getCoordinateSequence());return this._lines.add(t),null}e instanceof We&&this._lines.add(e)},mn.prototype.setForceToLineString=function(e){this._isForcedToLineString=e},mn.prototype.interfaces_=function(){return[ge]},mn.prototype.getClass=function(){return mn},mn.getGeometry=function(){if(1===arguments.length){var e=arguments[0];return e.getFactory().buildGeometry(mn.getLines(e))}if(2===arguments.length){var t=arguments[0],A=arguments[1];return t.getFactory().buildGeometry(mn.getLines(t,A))}},mn.getLines=function(){if(1===arguments.length){var e=arguments[0];return mn.getLines(e,!1)}if(2===arguments.length){if(D(arguments[0],Ee)&&D(arguments[1],Ee)){for(var t=arguments[0],A=arguments[1],n=t.iterator();n.hasNext();){var r=n.next();mn.getLines(r,A)}return A}if(arguments[0]instanceof ce&&"boolean"==typeof arguments[1]){var i=arguments[0],o=arguments[1],a=new ve;return i.apply(new mn(a,o)),a}if(arguments[0]instanceof ce&&D(arguments[1],Ee)){var s=arguments[0],g=arguments[1];return s instanceof We?g.add(s):s.apply(new mn(g)),g}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&D(arguments[0],Ee)&&D(arguments[1],Ee)){for(var c=arguments[0],u=arguments[1],l=arguments[2],I=c.iterator();I.hasNext();){var C=I.next();mn.getLines(C,u,l)}return u}if("boolean"==typeof arguments[2]&&arguments[0]instanceof ce&&D(arguments[1],Ee)){var h=arguments[0],f=arguments[1],d=arguments[2];return h.apply(new mn(f,d)),f}}};var bn=function(){if(this._boundaryRule=Ce.OGC_SFS_BOUNDARY_RULE,this._isIn=null,this._numBoundaries=null,0===arguments.length);else if(1===arguments.length){var e=arguments[0];if(null===e)throw new B("Rule must be non-null");this._boundaryRule=e}};bn.prototype.locateInternal=function(){if(arguments[0]instanceof m&&arguments[1]instanceof $e){var e=arguments[0],t=arguments[1];if(t.isEmpty())return F.EXTERIOR;var A=t.getExteriorRing(),n=this.locateInPolygonRing(e,A);if(n===F.EXTERIOR)return F.EXTERIOR;if(n===F.BOUNDARY)return F.BOUNDARY;for(var r=0;r<t.getNumInteriorRing();r++){var i=t.getInteriorRingN(r),o=this.locateInPolygonRing(e,i);if(o===F.INTERIOR)return F.EXTERIOR;if(o===F.BOUNDARY)return F.BOUNDARY}return F.INTERIOR}if(arguments[0]instanceof m&&arguments[1]instanceof We){var a=arguments[0],s=arguments[1];if(!s.getEnvelopeInternal().intersects(a))return F.EXTERIOR;var g=s.getCoordinates();return s.isClosed()||!a.equals(g[0])&&!a.equals(g[g.length-1])?ae.isOnLine(a,g)?F.INTERIOR:F.EXTERIOR:F.BOUNDARY}if(arguments[0]instanceof m&&arguments[1]instanceof qe){var c=arguments[0];return arguments[1].getCoordinate().equals2D(c)?F.INTERIOR:F.EXTERIOR}},bn.prototype.locateInPolygonRing=function(e,t){return t.getEnvelopeInternal().intersects(e)?ae.locatePointInRing(e,t.getCoordinates()):F.EXTERIOR},bn.prototype.intersects=function(e,t){return this.locate(e,t)!==F.EXTERIOR},bn.prototype.updateLocationInfo=function(e){e===F.INTERIOR&&(this._isIn=!0),e===F.BOUNDARY&&this._numBoundaries++},bn.prototype.computeLocation=function(e,t){if(t instanceof qe&&this.updateLocationInfo(this.locateInternal(e,t)),t instanceof We)this.updateLocationInfo(this.locateInternal(e,t));else if(t instanceof $e)this.updateLocationInfo(this.locateInternal(e,t));else if(t instanceof Ye)for(var A=t,n=0;n<A.getNumGeometries();n++){var r=A.getGeometryN(n);this.updateLocationInfo(this.locateInternal(e,r))}else if(t instanceof At)for(var i=t,o=0;o<i.getNumGeometries();o++){var a=i.getGeometryN(o);this.updateLocationInfo(this.locateInternal(e,a))}else if(t instanceof He)for(var s=new TA(t);s.hasNext();){var g=s.next();g!==t&&this.computeLocation(e,g)}},bn.prototype.locate=function(e,t){return t.isEmpty()?F.EXTERIOR:t instanceof We||t instanceof $e?this.locateInternal(e,t):(this._isIn=!1,this._numBoundaries=0,this.computeLocation(e,t),this._boundaryRule.isInBoundary(this._numBoundaries)?F.BOUNDARY:this._numBoundaries>0||this._isIn?F.INTERIOR:F.EXTERIOR)},bn.prototype.interfaces_=function(){return[]},bn.prototype.getClass=function(){return bn};var wn=function e(){if(this._component=null,this._segIndex=null,this._pt=null,2===arguments.length){var t=arguments[0],A=arguments[1];e.call(this,t,e.INSIDE_AREA,A)}else if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2];this._component=n,this._segIndex=r,this._pt=i}},Sn={INSIDE_AREA:{configurable:!0}};wn.prototype.isInsideArea=function(){return this._segIndex===wn.INSIDE_AREA},wn.prototype.getCoordinate=function(){return this._pt},wn.prototype.getGeometryComponent=function(){return this._component},wn.prototype.getSegmentIndex=function(){return this._segIndex},wn.prototype.interfaces_=function(){return[]},wn.prototype.getClass=function(){return wn},Sn.INSIDE_AREA.get=function(){return-1},Object.defineProperties(wn,Sn);var Fn=function(e){this._pts=e||null};Fn.prototype.filter=function(e){e instanceof qe&&this._pts.add(e)},Fn.prototype.interfaces_=function(){return[Te]},Fn.prototype.getClass=function(){return Fn},Fn.getPoints=function(){if(1===arguments.length){var e=arguments[0];return e instanceof qe?$t.singletonList(e):Fn.getPoints(e,new ve)}if(2===arguments.length){var t=arguments[0],A=arguments[1];return t instanceof qe?A.add(t):t instanceof He&&t.apply(new Fn(A)),A}};var Rn=function(){this._locations=null;var e=arguments[0];this._locations=e};Rn.prototype.filter=function(e){(e instanceof qe||e instanceof We||e instanceof $e)&&this._locations.add(new wn(e,0,e.getCoordinate()))},Rn.prototype.interfaces_=function(){return[Te]},Rn.prototype.getClass=function(){return Rn},Rn.getLocations=function(e){var t=new ve;return e.apply(new Rn(t)),t};var Dn=function(){if(this._geom=null,this._terminateDistance=0,this._ptLocator=new bn,this._minDistanceLocation=null,this._minDistance=p.MAX_VALUE,2===arguments.length){var e=arguments[0],t=arguments[1];this._geom=[e,t],this._terminateDistance=0}else if(3===arguments.length){var A=arguments[0],n=arguments[1],r=arguments[2];this._geom=new Array(2).fill(null),this._geom[0]=A,this._geom[1]=n,this._terminateDistance=r}};Dn.prototype.computeContainmentDistance=function(){if(0===arguments.length){var e=new Array(2).fill(null);if(this.computeContainmentDistance(0,e),this._minDistance<=this._terminateDistance)return null;this.computeContainmentDistance(1,e)}else if(2===arguments.length){var t=arguments[0],A=arguments[1],n=1-t,r=vn.getPolygons(this._geom[t]);if(r.size()>0){var i=Rn.getLocations(this._geom[n]);if(this.computeContainmentDistance(i,r,A),this._minDistance<=this._terminateDistance)return this._minDistanceLocation[n]=A[0],this._minDistanceLocation[t]=A[1],null}}else if(3===arguments.length)if(arguments[2]instanceof Array&&D(arguments[0],ye)&&D(arguments[1],ye)){for(var o=arguments[0],a=arguments[1],s=arguments[2],g=0;g<o.size();g++)for(var c=o.get(g),u=0;u<a.size();u++)if(this.computeContainmentDistance(c,a.get(u),s),this._minDistance<=this._terminateDistance)return null}else if(arguments[2]instanceof Array&&arguments[0]instanceof wn&&arguments[1]instanceof $e){var l=arguments[0],I=arguments[1],C=arguments[2],h=l.getCoordinate();if(F.EXTERIOR!==this._ptLocator.locate(h,I))return this._minDistance=0,C[0]=l,C[1]=new wn(I,h),null}},Dn.prototype.computeMinDistanceLinesPoints=function(e,t,A){for(var n=0;n<e.size();n++)for(var r=e.get(n),i=0;i<t.size();i++){var o=t.get(i);if(this.computeMinDistance(r,o,A),this._minDistance<=this._terminateDistance)return null}},Dn.prototype.computeFacetDistance=function(){var e=new Array(2).fill(null),t=mn.getLines(this._geom[0]),A=mn.getLines(this._geom[1]),n=Fn.getPoints(this._geom[0]),r=Fn.getPoints(this._geom[1]);return this.computeMinDistanceLines(t,A,e),this.updateMinDistance(e,!1),this._minDistance<=this._terminateDistance?null:(e[0]=null,e[1]=null,this.computeMinDistanceLinesPoints(t,r,e),this.updateMinDistance(e,!1),this._minDistance<=this._terminateDistance?null:(e[0]=null,e[1]=null,this.computeMinDistanceLinesPoints(A,n,e),this.updateMinDistance(e,!0),this._minDistance<=this._terminateDistance?null:(e[0]=null,e[1]=null,this.computeMinDistancePoints(n,r,e),void this.updateMinDistance(e,!1))))},Dn.prototype.nearestLocations=function(){return this.computeMinDistance(),this._minDistanceLocation},Dn.prototype.updateMinDistance=function(e,t){if(null===e[0])return null;t?(this._minDistanceLocation[0]=e[1],this._minDistanceLocation[1]=e[0]):(this._minDistanceLocation[0]=e[0],this._minDistanceLocation[1]=e[1])},Dn.prototype.nearestPoints=function(){return this.computeMinDistance(),[this._minDistanceLocation[0].getCoordinate(),this._minDistanceLocation[1].getCoordinate()]},Dn.prototype.computeMinDistance=function(){if(0===arguments.length){if(null!==this._minDistanceLocation)return null;if(this._minDistanceLocation=new Array(2).fill(null),this.computeContainmentDistance(),this._minDistance<=this._terminateDistance)return null;this.computeFacetDistance()}else if(3===arguments.length)if(arguments[2]instanceof Array&&arguments[0]instanceof We&&arguments[1]instanceof qe){var e=arguments[0],t=arguments[1],A=arguments[2];if(e.getEnvelopeInternal().distance(t.getEnvelopeInternal())>this._minDistance)return null;for(var n=e.getCoordinates(),r=t.getCoordinate(),i=0;i<n.length-1;i++){var o=ae.distancePointLine(r,n[i],n[i+1]);if(o<this._minDistance){this._minDistance=o;var a=new CA(n[i],n[i+1]).closestPoint(r);A[0]=new wn(e,i,a),A[1]=new wn(t,0,r)}if(this._minDistance<=this._terminateDistance)return null}}else if(arguments[2]instanceof Array&&arguments[0]instanceof We&&arguments[1]instanceof We){var s=arguments[0],g=arguments[1],c=arguments[2];if(s.getEnvelopeInternal().distance(g.getEnvelopeInternal())>this._minDistance)return null;for(var u=s.getCoordinates(),l=g.getCoordinates(),I=0;I<u.length-1;I++)for(var C=0;C<l.length-1;C++){var h=ae.distanceLineLine(u[I],u[I+1],l[C],l[C+1]);if(h<this._minDistance){this._minDistance=h;var f=new CA(u[I],u[I+1]),d=new CA(l[C],l[C+1]),B=f.closestPoints(d);c[0]=new wn(s,I,B[0]),c[1]=new wn(g,C,B[1])}if(this._minDistance<=this._terminateDistance)return null}}},Dn.prototype.computeMinDistancePoints=function(e,t,A){for(var n=0;n<e.size();n++)for(var r=e.get(n),i=0;i<t.size();i++){var o=t.get(i),a=r.getCoordinate().distance(o.getCoordinate());if(a<this._minDistance&&(this._minDistance=a,A[0]=new wn(r,0,r.getCoordinate()),A[1]=new wn(o,0,o.getCoordinate())),this._minDistance<=this._terminateDistance)return null}},Dn.prototype.distance=function(){if(null===this._geom[0]||null===this._geom[1])throw new B("null geometries are not supported");return this._geom[0].isEmpty()||this._geom[1].isEmpty()?0:(this.computeMinDistance(),this._minDistance)},Dn.prototype.computeMinDistanceLines=function(e,t,A){for(var n=0;n<e.size();n++)for(var r=e.get(n),i=0;i<t.size();i++){var o=t.get(i);if(this.computeMinDistance(r,o,A),this._minDistance<=this._terminateDistance)return null}},Dn.prototype.interfaces_=function(){return[]},Dn.prototype.getClass=function(){return Dn},Dn.distance=function(e,t){return new Dn(e,t).distance()},Dn.isWithinDistance=function(e,t,A){return new Dn(e,t,A).distance()<=A},Dn.nearestPoints=function(e,t){return new Dn(e,t).nearestPoints()};var Gn=function(){this._pt=[new m,new m],this._distance=p.NaN,this._isNull=!0};Gn.prototype.getCoordinates=function(){return this._pt},Gn.prototype.getCoordinate=function(e){return this._pt[e]},Gn.prototype.setMinimum=function(){if(1===arguments.length){var e=arguments[0];this.setMinimum(e._pt[0],e._pt[1])}else if(2===arguments.length){var t=arguments[0],A=arguments[1];if(this._isNull)return this.initialize(t,A),null;var n=t.distance(A);n<this._distance&&this.initialize(t,A,n)}},Gn.prototype.initialize=function(){if(0===arguments.length)this._isNull=!0;else if(2===arguments.length){var e=arguments[0],t=arguments[1];this._pt[0].setCoordinate(e),this._pt[1].setCoordinate(t),this._distance=e.distance(t),this._isNull=!1}else if(3===arguments.length){var A=arguments[0],n=arguments[1],r=arguments[2];this._pt[0].setCoordinate(A),this._pt[1].setCoordinate(n),this._distance=r,this._isNull=!1}},Gn.prototype.toString=function(){return z.toLineString(this._pt[0],this._pt[1])},Gn.prototype.getDistance=function(){return this._distance},Gn.prototype.setMaximum=function(){if(1===arguments.length){var e=arguments[0];this.setMaximum(e._pt[0],e._pt[1])}else if(2===arguments.length){var t=arguments[0],A=arguments[1];if(this._isNull)return this.initialize(t,A),null;var n=t.distance(A);n>this._distance&&this.initialize(t,A,n)}},Gn.prototype.interfaces_=function(){return[]},Gn.prototype.getClass=function(){return Gn};var kn=function(){};kn.prototype.interfaces_=function(){return[]},kn.prototype.getClass=function(){return kn},kn.computeDistance=function(){if(arguments[2]instanceof Gn&&arguments[0]instanceof We&&arguments[1]instanceof m)for(var e=arguments[0],t=arguments[1],A=arguments[2],n=new CA,r=e.getCoordinates(),i=0;i<r.length-1;i++){n.setCoordinates(r[i],r[i+1]);var o=n.closestPoint(t);A.setMinimum(o,t)}else if(arguments[2]instanceof Gn&&arguments[0]instanceof $e&&arguments[1]instanceof m){var a=arguments[0],s=arguments[1],g=arguments[2];kn.computeDistance(a.getExteriorRing(),s,g);for(var c=0;c<a.getNumInteriorRing();c++)kn.computeDistance(a.getInteriorRingN(c),s,g)}else if(arguments[2]instanceof Gn&&arguments[0]instanceof ce&&arguments[1]instanceof m){var u=arguments[0],l=arguments[1],I=arguments[2];if(u instanceof We)kn.computeDistance(u,l,I);else if(u instanceof $e)kn.computeDistance(u,l,I);else if(u instanceof He)for(var C=u,h=0;h<C.getNumGeometries();h++){var f=C.getGeometryN(h);kn.computeDistance(f,l,I)}else I.setMinimum(u.getCoordinate(),l)}else if(arguments[2]instanceof Gn&&arguments[0]instanceof CA&&arguments[1]instanceof m){var d=arguments[0],B=arguments[1],p=arguments[2],E=d.closestPoint(B);p.setMinimum(E,B)}};var xn=function(){this._g0=null,this._g1=null,this._ptDist=new Gn,this._densifyFrac=0;var e=arguments[0],t=arguments[1];this._g0=e,this._g1=t},Nn={MaxPointDistanceFilter:{configurable:!0},MaxDensifiedByFractionDistanceFilter:{configurable:!0}};xn.prototype.getCoordinates=function(){return this._ptDist.getCoordinates()},xn.prototype.setDensifyFraction=function(e){if(e>1||e<=0)throw new B("Fraction is not in range (0.0 - 1.0]");this._densifyFrac=e},xn.prototype.compute=function(e,t){this.computeOrientedDistance(e,t,this._ptDist),this.computeOrientedDistance(t,e,this._ptDist)},xn.prototype.distance=function(){return this.compute(this._g0,this._g1),this._ptDist.getDistance()},xn.prototype.computeOrientedDistance=function(e,t,A){var n=new Un(t);if(e.apply(n),A.setMaximum(n.getMaxPointDistance()),this._densifyFrac>0){var r=new _n(t,this._densifyFrac);e.apply(r),A.setMaximum(r.getMaxPointDistance())}},xn.prototype.orientedDistance=function(){return this.computeOrientedDistance(this._g0,this._g1,this._ptDist),this._ptDist.getDistance()},xn.prototype.interfaces_=function(){return[]},xn.prototype.getClass=function(){return xn},xn.distance=function(){if(2===arguments.length){var e=arguments[0],t=arguments[1];return new xn(e,t).distance()}if(3===arguments.length){var A=arguments[0],n=arguments[1],r=arguments[2],i=new xn(A,n);return i.setDensifyFraction(r),i.distance()}},Nn.MaxPointDistanceFilter.get=function(){return Un},Nn.MaxDensifiedByFractionDistanceFilter.get=function(){return _n},Object.defineProperties(xn,Nn);var Un=function(){this._maxPtDist=new Gn,this._minPtDist=new Gn,this._euclideanDist=new kn,this._geom=null;var e=arguments[0];this._geom=e};Un.prototype.filter=function(e){this._minPtDist.initialize(),kn.computeDistance(this._geom,e,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)},Un.prototype.getMaxPointDistance=function(){return this._maxPtDist},Un.prototype.interfaces_=function(){return[Ie]},Un.prototype.getClass=function(){return Un};var _n=function(){this._maxPtDist=new Gn,this._minPtDist=new Gn,this._geom=null,this._numSubSegs=0;var e=arguments[0],t=arguments[1];this._geom=e,this._numSubSegs=Math.trunc(Math.round(1/t))};_n.prototype.filter=function(e,t){if(0===t)return null;for(var A=e.getCoordinate(t-1),n=e.getCoordinate(t),r=(n.x-A.x)/this._numSubSegs,i=(n.y-A.y)/this._numSubSegs,o=0;o<this._numSubSegs;o++){var a=A.x+o*r,s=A.y+o*i,g=new m(a,s);this._minPtDist.initialize(),kn.computeDistance(this._geom,g,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)}},_n.prototype.isDone=function(){return!1},_n.prototype.isGeometryChanged=function(){return!1},_n.prototype.getMaxPointDistance=function(){return this._maxPtDist},_n.prototype.interfaces_=function(){return[Ze]},_n.prototype.getClass=function(){return _n};var Mn=function(e,t,A){this._minValidDistance=null,this._maxValidDistance=null,this._minDistanceFound=null,this._maxDistanceFound=null,this._isValid=!0,this._errMsg=null,this._errorLocation=null,this._errorIndicator=null,this._input=e||null,this._bufDistance=t||null,this._result=A||null},On={VERBOSE:{configurable:!0},MAX_DISTANCE_DIFF_FRAC:{configurable:!0}};Mn.prototype.checkMaximumDistance=function(e,t,A){var n=new xn(t,e);if(n.setDensifyFraction(.25),this._maxDistanceFound=n.orientedDistance(),this._maxDistanceFound>A){this._isValid=!1;var r=n.getCoordinates();this._errorLocation=r[1],this._errorIndicator=e.getFactory().createLineString(r),this._errMsg="Distance between buffer curve and input is too large ("+this._maxDistanceFound+" at "+z.toLineString(r[0],r[1])+")"}},Mn.prototype.isValid=function(){var e=Math.abs(this._bufDistance),t=Mn.MAX_DISTANCE_DIFF_FRAC*e;return this._minValidDistance=e-t,this._maxValidDistance=e+t,!(!this._input.isEmpty()&&!this._result.isEmpty())||(this._bufDistance>0?this.checkPositiveValid():this.checkNegativeValid(),Mn.VERBOSE&&J.out.println("Min Dist= "+this._minDistanceFound+" err= "+(1-this._minDistanceFound/this._bufDistance)+" Max Dist= "+this._maxDistanceFound+" err= "+(this._maxDistanceFound/this._bufDistance-1)),this._isValid)},Mn.prototype.checkNegativeValid=function(){if(!(this._input instanceof $e||this._input instanceof At||this._input instanceof He))return null;var e=this.getPolygonLines(this._input);if(this.checkMinimumDistance(e,this._result,this._minValidDistance),!this._isValid)return null;this.checkMaximumDistance(e,this._result,this._maxValidDistance)},Mn.prototype.getErrorIndicator=function(){return this._errorIndicator},Mn.prototype.checkMinimumDistance=function(e,t,A){var n=new Dn(e,t,A);if(this._minDistanceFound=n.distance(),this._minDistanceFound<A){this._isValid=!1;var r=n.nearestPoints();this._errorLocation=n.nearestPoints()[1],this._errorIndicator=e.getFactory().createLineString(r),this._errMsg="Distance between buffer curve and input is too small ("+this._minDistanceFound+" at "+z.toLineString(r[0],r[1])+" )"}},Mn.prototype.checkPositiveValid=function(){var e=this._result.getBoundary();if(this.checkMinimumDistance(this._input,e,this._minValidDistance),!this._isValid)return null;this.checkMaximumDistance(this._input,e,this._maxValidDistance)},Mn.prototype.getErrorLocation=function(){return this._errorLocation},Mn.prototype.getPolygonLines=function(e){for(var t=new ve,A=new mn(t),n=vn.getPolygons(e).iterator();n.hasNext();)n.next().apply(A);return e.getFactory().buildGeometry(t)},Mn.prototype.getErrorMessage=function(){return this._errMsg},Mn.prototype.interfaces_=function(){return[]},Mn.prototype.getClass=function(){return Mn},On.VERBOSE.get=function(){return!1},On.MAX_DISTANCE_DIFF_FRAC.get=function(){return.012},Object.defineProperties(Mn,On);var Ln=function(e,t,A){this._isValid=!0,this._errorMsg=null,this._errorLocation=null,this._errorIndicator=null,this._input=e||null,this._distance=t||null,this._result=A||null},Tn={VERBOSE:{configurable:!0},MAX_ENV_DIFF_FRAC:{configurable:!0}};Ln.prototype.isValid=function(){return this.checkPolygonal(),this._isValid?(this.checkExpectedEmpty(),this._isValid?(this.checkEnvelope(),this._isValid?(this.checkArea(),this._isValid?(this.checkDistance(),this._isValid):this._isValid):this._isValid):this._isValid):this._isValid},Ln.prototype.checkEnvelope=function(){if(this._distance<0)return null;var e=this._distance*Ln.MAX_ENV_DIFF_FRAC;0===e&&(e=.001);var t=new P(this._input.getEnvelopeInternal());t.expandBy(this._distance);var A=new P(this._result.getEnvelopeInternal());A.expandBy(e),A.contains(t)||(this._isValid=!1,this._errorMsg="Buffer envelope is incorrect",this._errorIndicator=this._input.getFactory().toGeometry(A)),this.report("Envelope")},Ln.prototype.checkDistance=function(){var e=new Mn(this._input,this._distance,this._result);e.isValid()||(this._isValid=!1,this._errorMsg=e.getErrorMessage(),this._errorLocation=e.getErrorLocation(),this._errorIndicator=e.getErrorIndicator()),this.report("Distance")},Ln.prototype.checkArea=function(){var e=this._input.getArea(),t=this._result.getArea();this._distance>0&&e>t&&(this._isValid=!1,this._errorMsg="Area of positive buffer is smaller than input",this._errorIndicator=this._result),this._distance<0&&e<t&&(this._isValid=!1,this._errorMsg="Area of negative buffer is larger than input",this._errorIndicator=this._result),this.report("Area")},Ln.prototype.checkPolygonal=function(){this._result instanceof $e||this._result instanceof At||(this._isValid=!1),this._errorMsg="Result is not polygonal",this._errorIndicator=this._result,this.report("Polygonal")},Ln.prototype.getErrorIndicator=function(){return this._errorIndicator},Ln.prototype.getErrorLocation=function(){return this._errorLocation},Ln.prototype.checkExpectedEmpty=function(){return this._input.getDimension()>=2||this._distance>0?null:(this._result.isEmpty()||(this._isValid=!1,this._errorMsg="Result is non-empty",this._errorIndicator=this._result),void this.report("ExpectedEmpty"))},Ln.prototype.report=function(e){if(!Ln.VERBOSE)return null;J.out.println("Check "+e+": "+(this._isValid?"passed":"FAILED"))},Ln.prototype.getErrorMessage=function(){return this._errorMsg},Ln.prototype.interfaces_=function(){return[]},Ln.prototype.getClass=function(){return Ln},Ln.isValidMsg=function(e,t,A){var n=new Ln(e,t,A);return n.isValid()?null:n.getErrorMessage()},Ln.isValid=function(e,t,A){return!!new Ln(e,t,A).isValid()},Tn.VERBOSE.get=function(){return!1},Tn.MAX_ENV_DIFF_FRAC.get=function(){return.012},Object.defineProperties(Ln,Tn);var Zn=function(){this._pts=null,this._data=null;var e=arguments[0],t=arguments[1];this._pts=e,this._data=t};Zn.prototype.getCoordinates=function(){return this._pts},Zn.prototype.size=function(){return this._pts.length},Zn.prototype.getCoordinate=function(e){return this._pts[e]},Zn.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])},Zn.prototype.getSegmentOctant=function(e){return e===this._pts.length-1?-1:cA.octant(this.getCoordinate(e),this.getCoordinate(e+1))},Zn.prototype.setData=function(e){this._data=e},Zn.prototype.getData=function(){return this._data},Zn.prototype.toString=function(){return z.toLineString(new st(this._pts))},Zn.prototype.interfaces_=function(){return[uA]},Zn.prototype.getClass=function(){return Zn};var Hn=function(){this._findAllIntersections=!1,this._isCheckEndSegmentsOnly=!1,this._li=null,this._interiorIntersection=null,this._intSegments=null,this._intersections=new ve,this._intersectionCount=0,this._keepIntersections=!0;var e=arguments[0];this._li=e,this._interiorIntersection=null};Hn.prototype.getInteriorIntersection=function(){return this._interiorIntersection},Hn.prototype.setCheckEndSegmentsOnly=function(e){this._isCheckEndSegmentsOnly=e},Hn.prototype.getIntersectionSegments=function(){return this._intSegments},Hn.prototype.count=function(){return this._intersectionCount},Hn.prototype.getIntersections=function(){return this._intersections},Hn.prototype.setFindAllIntersections=function(e){this._findAllIntersections=e},Hn.prototype.setKeepIntersections=function(e){this._keepIntersections=e},Hn.prototype.processIntersections=function(e,t,A,n){if(!this._findAllIntersections&&this.hasIntersection())return null;if(e===A&&t===n)return null;if(this._isCheckEndSegmentsOnly&&!this.isEndSegment(e,t)&&!this.isEndSegment(A,n))return null;var r=e.getCoordinates()[t],i=e.getCoordinates()[t+1],o=A.getCoordinates()[n],a=A.getCoordinates()[n+1];this._li.computeIntersection(r,i,o,a),this._li.hasIntersection()&&this._li.isInteriorIntersection()&&(this._intSegments=new Array(4).fill(null),this._intSegments[0]=r,this._intSegments[1]=i,this._intSegments[2]=o,this._intSegments[3]=a,this._interiorIntersection=this._li.getIntersection(0),this._keepIntersections&&this._intersections.add(this._interiorIntersection),this._intersectionCount++)},Hn.prototype.isEndSegment=function(e,t){return 0===t||t>=e.size()-2},Hn.prototype.hasIntersection=function(){return null!==this._interiorIntersection},Hn.prototype.isDone=function(){return!this._findAllIntersections&&null!==this._interiorIntersection},Hn.prototype.interfaces_=function(){return[VA]},Hn.prototype.getClass=function(){return Hn},Hn.createAllIntersectionsFinder=function(e){var t=new Hn(e);return t.setFindAllIntersections(!0),t},Hn.createAnyIntersectionFinder=function(e){return new Hn(e)},Hn.createIntersectionCounter=function(e){var t=new Hn(e);return t.setFindAllIntersections(!0),t.setKeepIntersections(!1),t};var Yn=function(){this._li=new re,this._segStrings=null,this._findAllIntersections=!1,this._segInt=null,this._isValid=!0;var e=arguments[0];this._segStrings=e};Yn.prototype.execute=function(){if(null!==this._segInt)return null;this.checkInteriorIntersections()},Yn.prototype.getIntersections=function(){return this._segInt.getIntersections()},Yn.prototype.isValid=function(){return this.execute(),this._isValid},Yn.prototype.setFindAllIntersections=function(e){this._findAllIntersections=e},Yn.prototype.checkInteriorIntersections=function(){this._isValid=!0,this._segInt=new Hn(this._li),this._segInt.setFindAllIntersections(this._findAllIntersections);var e=new QA;if(e.setSegmentIntersector(this._segInt),e.computeNodes(this._segStrings),this._segInt.hasIntersection())return this._isValid=!1,null},Yn.prototype.checkValid=function(){if(this.execute(),!this._isValid)throw new Ft(this.getErrorMessage(),this._segInt.getInteriorIntersection())},Yn.prototype.getErrorMessage=function(){if(this._isValid)return"no intersections found";var e=this._segInt.getIntersectionSegments();return"found non-noded intersection between "+z.toLineString(e[0],e[1])+" and "+z.toLineString(e[2],e[3])},Yn.prototype.interfaces_=function(){return[]},Yn.prototype.getClass=function(){return Yn},Yn.computeIntersections=function(e){var t=new Yn(e);return t.setFindAllIntersections(!0),t.isValid(),t.getIntersections()};var Jn=function e(){this._nv=null;var t=arguments[0];this._nv=new Yn(e.toSegmentStrings(t))};Jn.prototype.checkValid=function(){this._nv.checkValid()},Jn.prototype.interfaces_=function(){return[]},Jn.prototype.getClass=function(){return Jn},Jn.toSegmentStrings=function(e){for(var t=new ve,A=e.iterator();A.hasNext();){var n=A.next();t.add(new Zn(n.getCoordinates(),n))}return t},Jn.checkValid=function(e){new Jn(e).checkValid()};var jn=function(e){this._mapOp=e};jn.prototype.map=function(e){for(var t=new ve,A=0;A<e.getNumGeometries();A++){var n=this._mapOp.map(e.getGeometryN(A));n.isEmpty()||t.add(n)}return e.getFactory().createGeometryCollection(dt.toGeometryArray(t))},jn.prototype.interfaces_=function(){return[]},jn.prototype.getClass=function(){return jn},jn.map=function(e,t){return new jn(t).map(e)};var Pn=function(){this._op=null,this._geometryFactory=null,this._ptLocator=null,this._lineEdgesList=new ve,this._resultLineList=new ve;var e=arguments[0],t=arguments[1],A=arguments[2];this._op=e,this._geometryFactory=t,this._ptLocator=A};Pn.prototype.collectLines=function(e){for(var t=this._op.getGraph().getEdgeEnds().iterator();t.hasNext();){var A=t.next();this.collectLineEdge(A,e,this._lineEdgesList),this.collectBoundaryTouchEdge(A,e,this._lineEdgesList)}},Pn.prototype.labelIsolatedLine=function(e,t){var A=this._ptLocator.locate(e.getCoordinate(),this._op.getArgGeometry(t));e.getLabel().setLocation(t,A)},Pn.prototype.build=function(e){return this.findCoveredLineEdges(),this.collectLines(e),this.buildLines(e),this._resultLineList},Pn.prototype.collectLineEdge=function(e,t,A){var n=e.getLabel(),r=e.getEdge();e.isLineEdge()&&(e.isVisited()||!wr.isResultOfOp(n,t)||r.isCovered()||(A.add(r),e.setVisitedEdge(!0)))},Pn.prototype.findCoveredLineEdges=function(){for(var e=this._op.getGraph().getNodes().iterator();e.hasNext();)e.next().getEdges().findCoveredLineEdges();for(var t=this._op.getGraph().getEdgeEnds().iterator();t.hasNext();){var A=t.next(),n=A.getEdge();if(A.isLineEdge()&&!n.isCoveredSet()){var r=this._op.isCoveredByA(A.getCoordinate());n.setCovered(r)}}},Pn.prototype.labelIsolatedLines=function(e){for(var t=e.iterator();t.hasNext();){var A=t.next(),n=A.getLabel();A.isIsolated()&&(n.isNull(0)?this.labelIsolatedLine(A,0):this.labelIsolatedLine(A,1))}},Pn.prototype.buildLines=function(e){for(var t=this._lineEdgesList.iterator();t.hasNext();){var A=t.next(),n=this._geometryFactory.createLineString(A.getCoordinates());this._resultLineList.add(n),A.setInResult(!0)}},Pn.prototype.collectBoundaryTouchEdge=function(e,t,A){var n=e.getLabel();return e.isLineEdge()||e.isVisited()||e.isInteriorAreaEdge()||e.getEdge().isInResult()?null:(te.isTrue(!(e.isInResult()||e.getSym().isInResult())||!e.getEdge().isInResult()),void(wr.isResultOfOp(n,t)&&t===wr.INTERSECTION&&(A.add(e.getEdge()),e.setVisitedEdge(!0))))},Pn.prototype.interfaces_=function(){return[]},Pn.prototype.getClass=function(){return Pn};var Vn=function(){this._op=null,this._geometryFactory=null,this._resultPointList=new ve;var e=arguments[0],t=arguments[1];this._op=e,this._geometryFactory=t};Vn.prototype.filterCoveredNodeToPoint=function(e){var t=e.getCoordinate();if(!this._op.isCoveredByLA(t)){var A=this._geometryFactory.createPoint(t);this._resultPointList.add(A)}},Vn.prototype.extractNonCoveredResultNodes=function(e){for(var t=this._op.getGraph().getNodes().iterator();t.hasNext();){var A=t.next();if(!A.isInResult()&&!A.isIncidentEdgeInResult()&&(0===A.getEdges().getDegree()||e===wr.INTERSECTION)){var n=A.getLabel();wr.isResultOfOp(n,e)&&this.filterCoveredNodeToPoint(A)}}},Vn.prototype.build=function(e){return this.extractNonCoveredResultNodes(e),this._resultPointList},Vn.prototype.interfaces_=function(){return[]},Vn.prototype.getClass=function(){return Vn};var Kn=function(){this._inputGeom=null,this._factory=null,this._pruneEmptyGeometry=!0,this._preserveGeometryCollectionType=!0,this._preserveCollections=!1,this._preserveType=!1};Kn.prototype.transformPoint=function(e,t){return this._factory.createPoint(this.transformCoordinates(e.getCoordinateSequence(),e))},Kn.prototype.transformPolygon=function(e,t){var A=!0,n=this.transformLinearRing(e.getExteriorRing(),e);null!==n&&n instanceof tt&&!n.isEmpty()||(A=!1);for(var r=new ve,i=0;i<e.getNumInteriorRing();i++){var o=this.transformLinearRing(e.getInteriorRingN(i),e);null===o||o.isEmpty()||(o instanceof tt||(A=!1),r.add(o))}if(A)return this._factory.createPolygon(n,r.toArray([]));var a=new ve;return null!==n&&a.add(n),a.addAll(r),this._factory.buildGeometry(a)},Kn.prototype.createCoordinateSequence=function(e){return this._factory.getCoordinateSequenceFactory().create(e)},Kn.prototype.getInputGeometry=function(){return this._inputGeom},Kn.prototype.transformMultiLineString=function(e,t){for(var A=new ve,n=0;n<e.getNumGeometries();n++){var r=this.transformLineString(e.getGeometryN(n),e);null!==r&&(r.isEmpty()||A.add(r))}return this._factory.buildGeometry(A)},Kn.prototype.transformCoordinates=function(e,t){return this.copy(e)},Kn.prototype.transformLineString=function(e,t){return this._factory.createLineString(this.transformCoordinates(e.getCoordinateSequence(),e))},Kn.prototype.transformMultiPoint=function(e,t){for(var A=new ve,n=0;n<e.getNumGeometries();n++){var r=this.transformPoint(e.getGeometryN(n),e);null!==r&&(r.isEmpty()||A.add(r))}return this._factory.buildGeometry(A)},Kn.prototype.transformMultiPolygon=function(e,t){for(var A=new ve,n=0;n<e.getNumGeometries();n++){var r=this.transformPolygon(e.getGeometryN(n),e);null!==r&&(r.isEmpty()||A.add(r))}return this._factory.buildGeometry(A)},Kn.prototype.copy=function(e){return e.copy()},Kn.prototype.transformGeometryCollection=function(e,t){for(var A=new ve,n=0;n<e.getNumGeometries();n++){var r=this.transform(e.getGeometryN(n));null!==r&&(this._pruneEmptyGeometry&&r.isEmpty()||A.add(r))}return this._preserveGeometryCollectionType?this._factory.createGeometryCollection(dt.toGeometryArray(A)):this._factory.buildGeometry(A)},Kn.prototype.transform=function(e){if(this._inputGeom=e,this._factory=e.getFactory(),e instanceof qe)return this.transformPoint(e,null);if(e instanceof et)return this.transformMultiPoint(e,null);if(e instanceof tt)return this.transformLinearRing(e,null);if(e instanceof We)return this.transformLineString(e,null);if(e instanceof Ye)return this.transformMultiLineString(e,null);if(e instanceof $e)return this.transformPolygon(e,null);if(e instanceof At)return this.transformMultiPolygon(e,null);if(e instanceof He)return this.transformGeometryCollection(e,null);throw new B("Unknown Geometry subtype: "+e.getClass().getName())},Kn.prototype.transformLinearRing=function(e,t){var A=this.transformCoordinates(e.getCoordinateSequence(),e);if(null===A)return this._factory.createLinearRing(null);var n=A.size();return n>0&&n<4&&!this._preserveType?this._factory.createLineString(A):this._factory.createLinearRing(A)},Kn.prototype.interfaces_=function(){return[]},Kn.prototype.getClass=function(){return Kn};var Wn=function e(){if(this._snapTolerance=0,this._srcPts=null,this._seg=new CA,this._allowSnappingToSourceVertices=!1,this._isClosed=!1,arguments[0]instanceof We&&"number"==typeof arguments[1]){var t=arguments[0],A=arguments[1];e.call(this,t.getCoordinates(),A)}else if(arguments[0]instanceof Array&&"number"==typeof arguments[1]){var n=arguments[0],r=arguments[1];this._srcPts=n,this._isClosed=e.isClosed(n),this._snapTolerance=r}};Wn.prototype.snapVertices=function(e,t){for(var A=this._isClosed?e.size()-1:e.size(),n=0;n<A;n++){var r=e.get(n),i=this.findSnapForVertex(r,t);null!==i&&(e.set(n,new m(i)),0===n&&this._isClosed&&e.set(e.size()-1,new m(i)))}},Wn.prototype.findSnapForVertex=function(e,t){for(var A=0;A<t.length;A++){if(e.equals2D(t[A]))return null;if(e.distance(t[A])<this._snapTolerance)return t[A]}return null},Wn.prototype.snapTo=function(e){var t=new be(this._srcPts);return this.snapVertices(t,e),this.snapSegments(t,e),t.toCoordinateArray()},Wn.prototype.snapSegments=function(e,t){if(0===t.length)return null;var A=t.length;t[0].equals2D(t[t.length-1])&&(A=t.length-1);for(var n=0;n<A;n++){var r=t[n],i=this.findSegmentIndexToSnap(r,e);i>=0&&e.add(i+1,new m(r),!1)}},Wn.prototype.findSegmentIndexToSnap=function(e,t){for(var A=p.MAX_VALUE,n=-1,r=0;r<t.size()-1;r++){if(this._seg.p0=t.get(r),this._seg.p1=t.get(r+1),this._seg.p0.equals2D(e)||this._seg.p1.equals2D(e)){if(this._allowSnappingToSourceVertices)continue;return-1}var i=this._seg.distance(e);i<this._snapTolerance&&i<A&&(A=i,n=r)}return n},Wn.prototype.setAllowSnappingToSourceVertices=function(e){this._allowSnappingToSourceVertices=e},Wn.prototype.interfaces_=function(){return[]},Wn.prototype.getClass=function(){return Wn},Wn.isClosed=function(e){return!(e.length<=1)&&e[0].equals2D(e[e.length-1])};var Xn=function(e){this._srcGeom=e||null},qn={SNAP_PRECISION_FACTOR:{configurable:!0}};Xn.prototype.snapTo=function(e,t){var A=this.extractTargetCoordinates(e);return new zn(t,A).transform(this._srcGeom)},Xn.prototype.snapToSelf=function(e,t){var A=this.extractTargetCoordinates(this._srcGeom),n=new zn(e,A,!0).transform(this._srcGeom),r=n;return t&&D(r,ze)&&(r=n.buffer(0)),r},Xn.prototype.computeSnapTolerance=function(e){return this.computeMinimumSegmentLength(e)/10},Xn.prototype.extractTargetCoordinates=function(e){for(var t=new I,A=e.getCoordinates(),n=0;n<A.length;n++)t.add(A[n]);return t.toArray(new Array(0).fill(null))},Xn.prototype.computeMinimumSegmentLength=function(e){for(var t=p.MAX_VALUE,A=0;A<e.length-1;A++){var n=e[A].distance(e[A+1]);n<t&&(t=n)}return t},Xn.prototype.interfaces_=function(){return[]},Xn.prototype.getClass=function(){return Xn},Xn.snap=function(e,t,A){var n=new Array(2).fill(null),r=new Xn(e);n[0]=r.snapTo(t,A);var i=new Xn(t);return n[1]=i.snapTo(n[0],A),n},Xn.computeOverlaySnapTolerance=function(){if(1===arguments.length){var e=arguments[0],t=Xn.computeSizeBasedSnapTolerance(e),A=e.getPrecisionModel();if(A.getType()===It.FIXED){var n=1/A.getScale()*2/1.415;n>t&&(t=n)}return t}if(2===arguments.length){var r=arguments[0],i=arguments[1];return Math.min(Xn.computeOverlaySnapTolerance(r),Xn.computeOverlaySnapTolerance(i))}},Xn.computeSizeBasedSnapTolerance=function(e){var t=e.getEnvelopeInternal();return Math.min(t.getHeight(),t.getWidth())*Xn.SNAP_PRECISION_FACTOR},Xn.snapToSelf=function(e,t,A){return new Xn(e).snapToSelf(t,A)},qn.SNAP_PRECISION_FACTOR.get=function(){return 1e-9},Object.defineProperties(Xn,qn);var zn=function(e){function t(t,A,n){e.call(this),this._snapTolerance=t||null,this._snapPts=A||null,this._isSelfSnap=void 0!==n&&n}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.snapLine=function(e,t){var A=new Wn(e,this._snapTolerance);return A.setAllowSnappingToSourceVertices(this._isSelfSnap),A.snapTo(t)},t.prototype.transformCoordinates=function(e,t){var A=e.toCoordinateArray(),n=this.snapLine(A,this._snapPts);return this._factory.getCoordinateSequenceFactory().create(n)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(Kn),$n=function(){this._isFirst=!0,this._commonMantissaBitsCount=53,this._commonBits=0,this._commonSignExp=null};$n.prototype.getCommon=function(){return p.longBitsToDouble(this._commonBits)},$n.prototype.add=function(e){var t=p.doubleToLongBits(e);return this._isFirst?(this._commonBits=t,this._commonSignExp=$n.signExpBits(this._commonBits),this._isFirst=!1,null):$n.signExpBits(t)!==this._commonSignExp?(this._commonBits=0,null):(this._commonMantissaBitsCount=$n.numCommonMostSigMantissaBits(this._commonBits,t),void(this._commonBits=$n.zeroLowerBits(this._commonBits,64-(12+this._commonMantissaBitsCount))))},$n.prototype.toString=function(){if(1===arguments.length){var e=arguments[0],t=p.longBitsToDouble(e),A="0000000000000000000000000000000000000000000000000000000000000000"+p.toBinaryString(e),n=A.substring(A.length-64);return n.substring(0,1)+" "+n.substring(1,12)+"(exp) "+n.substring(12)+" [ "+t+" ]"}},$n.prototype.interfaces_=function(){return[]},$n.prototype.getClass=function(){return $n},$n.getBit=function(e,t){return 0!=(e&1<<t)?1:0},$n.signExpBits=function(e){return e>>52},$n.zeroLowerBits=function(e,t){return e&~((1<<t)-1)},$n.numCommonMostSigMantissaBits=function(e,t){for(var A=0,n=52;n>=0;n--){if($n.getBit(e,n)!==$n.getBit(t,n))return A;A++}return 52};var er=function(){this._commonCoord=null,this._ccFilter=new Ar},tr={CommonCoordinateFilter:{configurable:!0},Translater:{configurable:!0}};er.prototype.addCommonBits=function(e){var t=new nr(this._commonCoord);e.apply(t),e.geometryChanged()},er.prototype.removeCommonBits=function(e){if(0===this._commonCoord.x&&0===this._commonCoord.y)return e;var t=new m(this._commonCoord);t.x=-t.x,t.y=-t.y;var A=new nr(t);return e.apply(A),e.geometryChanged(),e},er.prototype.getCommonCoordinate=function(){return this._commonCoord},er.prototype.add=function(e){e.apply(this._ccFilter),this._commonCoord=this._ccFilter.getCommonCoordinate()},er.prototype.interfaces_=function(){return[]},er.prototype.getClass=function(){return er},tr.CommonCoordinateFilter.get=function(){return Ar},tr.Translater.get=function(){return nr},Object.defineProperties(er,tr);var Ar=function(){this._commonBitsX=new $n,this._commonBitsY=new $n};Ar.prototype.filter=function(e){this._commonBitsX.add(e.x),this._commonBitsY.add(e.y)},Ar.prototype.getCommonCoordinate=function(){return new m(this._commonBitsX.getCommon(),this._commonBitsY.getCommon())},Ar.prototype.interfaces_=function(){return[Ie]},Ar.prototype.getClass=function(){return Ar};var nr=function(){this.trans=null;var e=arguments[0];this.trans=e};nr.prototype.filter=function(e,t){var A=e.getOrdinate(t,0)+this.trans.x,n=e.getOrdinate(t,1)+this.trans.y;e.setOrdinate(t,0,A),e.setOrdinate(t,1,n)},nr.prototype.isDone=function(){return!1},nr.prototype.isGeometryChanged=function(){return!0},nr.prototype.interfaces_=function(){return[Ze]},nr.prototype.getClass=function(){return nr};var rr=function(e,t){this._geom=new Array(2).fill(null),this._snapTolerance=null,this._cbr=null,this._geom[0]=e,this._geom[1]=t,this.computeSnapTolerance()};rr.prototype.selfSnap=function(e){return new Xn(e).snapTo(e,this._snapTolerance)},rr.prototype.removeCommonBits=function(e){this._cbr=new er,this._cbr.add(e[0]),this._cbr.add(e[1]);var t=new Array(2).fill(null);return t[0]=this._cbr.removeCommonBits(e[0].copy()),t[1]=this._cbr.removeCommonBits(e[1].copy()),t},rr.prototype.prepareResult=function(e){return this._cbr.addCommonBits(e),e},rr.prototype.getResultGeometry=function(e){var t=this.snap(this._geom),A=wr.overlayOp(t[0],t[1],e);return this.prepareResult(A)},rr.prototype.checkValid=function(e){e.isValid()||J.out.println("Snapped geometry is invalid")},rr.prototype.computeSnapTolerance=function(){this._snapTolerance=Xn.computeOverlaySnapTolerance(this._geom[0],this._geom[1])},rr.prototype.snap=function(e){var t=this.removeCommonBits(e);return Xn.snap(t[0],t[1],this._snapTolerance)},rr.prototype.interfaces_=function(){return[]},rr.prototype.getClass=function(){return rr},rr.overlayOp=function(e,t,A){return new rr(e,t).getResultGeometry(A)},rr.union=function(e,t){return rr.overlayOp(e,t,wr.UNION)},rr.intersection=function(e,t){return rr.overlayOp(e,t,wr.INTERSECTION)},rr.symDifference=function(e,t){return rr.overlayOp(e,t,wr.SYMDIFFERENCE)},rr.difference=function(e,t){return rr.overlayOp(e,t,wr.DIFFERENCE)};var ir=function(e,t){this._geom=new Array(2).fill(null),this._geom[0]=e,this._geom[1]=t};ir.prototype.getResultGeometry=function(e){var t=null,A=!1,n=null;try{t=wr.overlayOp(this._geom[0],this._geom[1],e),A=!0}catch(e){if(!(e instanceof $))throw e;n=e}if(!A)try{t=rr.overlayOp(this._geom[0],this._geom[1],e)}catch(e){throw e instanceof $?n:e}return t},ir.prototype.interfaces_=function(){return[]},ir.prototype.getClass=function(){return ir},ir.overlayOp=function(e,t,A){return new ir(e,t).getResultGeometry(A)},ir.union=function(e,t){return ir.overlayOp(e,t,wr.UNION)},ir.intersection=function(e,t){return ir.overlayOp(e,t,wr.INTERSECTION)},ir.symDifference=function(e,t){return ir.overlayOp(e,t,wr.SYMDIFFERENCE)},ir.difference=function(e,t){return ir.overlayOp(e,t,wr.DIFFERENCE)};var or=function(){this.mce=null,this.chainIndex=null;var e=arguments[0],t=arguments[1];this.mce=e,this.chainIndex=t};or.prototype.computeIntersections=function(e,t){this.mce.computeIntersectsForChain(this.chainIndex,e.mce,e.chainIndex,t)},or.prototype.interfaces_=function(){return[]},or.prototype.getClass=function(){return or};var ar=function e(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,2===arguments.length){var t=arguments[0],A=arguments[1];this._eventType=e.DELETE,this._xValue=t,this._insertEvent=A}else if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2];this._eventType=e.INSERT,this._label=n,this._xValue=r,this._obj=i}},sr={INSERT:{configurable:!0},DELETE:{configurable:!0}};ar.prototype.isDelete=function(){return this._eventType===ar.DELETE},ar.prototype.setDeleteEventIndex=function(e){this._deleteEventIndex=e},ar.prototype.getObject=function(){return this._obj},ar.prototype.compareTo=function(e){var t=e;return this._xValue<t._xValue?-1:this._xValue>t._xValue?1:this._eventType<t._eventType?-1:this._eventType>t._eventType?1:0},ar.prototype.getInsertEvent=function(){return this._insertEvent},ar.prototype.isInsert=function(){return this._eventType===ar.INSERT},ar.prototype.isSameLabel=function(e){return null!==this._label&&this._label===e._label},ar.prototype.getDeleteEventIndex=function(){return this._deleteEventIndex},ar.prototype.interfaces_=function(){return[Q]},ar.prototype.getClass=function(){return ar},sr.INSERT.get=function(){return 1},sr.DELETE.get=function(){return 2},Object.defineProperties(ar,sr);var gr=function(){};gr.prototype.interfaces_=function(){return[]},gr.prototype.getClass=function(){return gr};var cr=function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._properIntersectionPoint=null,this._li=null,this._includeProper=null,this._recordIsolated=null,this._isSelfIntersection=null,this._numIntersections=0,this.numTests=0,this._bdyNodes=null,this._isDone=!1,this._isDoneWhenProperInt=!1;var e=arguments[0],t=arguments[1],A=arguments[2];this._li=e,this._includeProper=t,this._recordIsolated=A};cr.prototype.isTrivialIntersection=function(e,t,A,n){if(e===A&&1===this._li.getIntersectionNum()){if(cr.isAdjacentSegments(t,n))return!0;if(e.isClosed()){var r=e.getNumPoints()-1;if(0===t&&n===r||0===n&&t===r)return!0}}return!1},cr.prototype.getProperIntersectionPoint=function(){return this._properIntersectionPoint},cr.prototype.setIsDoneIfProperInt=function(e){this._isDoneWhenProperInt=e},cr.prototype.hasProperInteriorIntersection=function(){return this._hasProperInterior},cr.prototype.isBoundaryPointInternal=function(e,t){for(var A=t.iterator();A.hasNext();){var n=A.next().getCoordinate();if(e.isIntersection(n))return!0}return!1},cr.prototype.hasProperIntersection=function(){return this._hasProper},cr.prototype.hasIntersection=function(){return this._hasIntersection},cr.prototype.isDone=function(){return this._isDone},cr.prototype.isBoundaryPoint=function(e,t){return null!==t&&(!!this.isBoundaryPointInternal(e,t[0])||!!this.isBoundaryPointInternal(e,t[1]))},cr.prototype.setBoundaryNodes=function(e,t){this._bdyNodes=new Array(2).fill(null),this._bdyNodes[0]=e,this._bdyNodes[1]=t},cr.prototype.addIntersections=function(e,t,A,n){if(e===A&&t===n)return null;this.numTests++;var r=e.getCoordinates()[t],i=e.getCoordinates()[t+1],o=A.getCoordinates()[n],a=A.getCoordinates()[n+1];this._li.computeIntersection(r,i,o,a),this._li.hasIntersection()&&(this._recordIsolated&&(e.setIsolated(!1),A.setIsolated(!1)),this._numIntersections++,this.isTrivialIntersection(e,t,A,n)||(this._hasIntersection=!0,!this._includeProper&&this._li.isProper()||(e.addIntersections(this._li,t,0),A.addIntersections(this._li,n,1)),this._li.isProper()&&(this._properIntersectionPoint=this._li.getIntersection(0).copy(),this._hasProper=!0,this._isDoneWhenProperInt&&(this._isDone=!0),this.isBoundaryPoint(this._li,this._bdyNodes)||(this._hasProperInterior=!0))))},cr.prototype.interfaces_=function(){return[]},cr.prototype.getClass=function(){return cr},cr.isAdjacentSegments=function(e,t){return 1===Math.abs(e-t)};var ur=function(e){function t(){e.call(this),this.events=new ve,this.nOverlaps=null}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.prepareEvents=function(){$t.sort(this.events);for(var e=0;e<this.events.size();e++){var t=this.events.get(e);t.isDelete()&&t.getInsertEvent().setDeleteEventIndex(e)}},t.prototype.computeIntersections=function(){if(1===arguments.length){var e=arguments[0];this.nOverlaps=0,this.prepareEvents();for(var t=0;t<this.events.size();t++){var A=this.events.get(t);if(A.isInsert()&&this.processOverlaps(t,A.getDeleteEventIndex(),A,e),e.isDone())break}}else if(3===arguments.length)if(arguments[2]instanceof cr&&D(arguments[0],ye)&&D(arguments[1],ye)){var n=arguments[0],r=arguments[1],i=arguments[2];this.addEdges(n,n),this.addEdges(r,r),this.computeIntersections(i)}else if("boolean"==typeof arguments[2]&&D(arguments[0],ye)&&arguments[1]instanceof cr){var o=arguments[0],a=arguments[1];arguments[2]?this.addEdges(o,null):this.addEdges(o),this.computeIntersections(a)}},t.prototype.addEdge=function(e,t){for(var A=e.getMonotoneChainEdge(),n=A.getStartIndexes(),r=0;r<n.length-1;r++){var i=new or(A,r),o=new ar(t,A.getMinX(r),i);this.events.add(o),this.events.add(new ar(A.getMaxX(r),o))}},t.prototype.processOverlaps=function(e,t,A,n){for(var r=A.getObject(),i=e;i<t;i++){var o=this.events.get(i);if(o.isInsert()){var a=o.getObject();A.isSameLabel(o)||(r.computeIntersections(a,n),this.nOverlaps++)}}},t.prototype.addEdges=function(){if(1===arguments.length)for(var e=arguments[0].iterator();e.hasNext();){var t=e.next();this.addEdge(t,t)}else if(2===arguments.length)for(var A=arguments[0],n=arguments[1],r=A.iterator();r.hasNext();){var i=r.next();this.addEdge(i,n)}},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(gr),lr=function(){this._min=p.POSITIVE_INFINITY,this._max=p.NEGATIVE_INFINITY},Ir={NodeComparator:{configurable:!0}};lr.prototype.getMin=function(){return this._min},lr.prototype.intersects=function(e,t){return!(this._min>t||this._max<e)},lr.prototype.getMax=function(){return this._max},lr.prototype.toString=function(){return z.toLineString(new m(this._min,0),new m(this._max,0))},lr.prototype.interfaces_=function(){return[]},lr.prototype.getClass=function(){return lr},Ir.NodeComparator.get=function(){return Cr},Object.defineProperties(lr,Ir);var Cr=function(){};Cr.prototype.compare=function(e,t){var A=e,n=t,r=(A._min+A._max)/2,i=(n._min+n._max)/2;return r<i?-1:r>i?1:0},Cr.prototype.interfaces_=function(){return[v]},Cr.prototype.getClass=function(){return Cr};var hr=function(e){function t(){e.call(this),this._item=null;var t=arguments[0],A=arguments[1],n=arguments[2];this._min=t,this._max=A,this._item=n}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.query=function(e,t,A){if(!this.intersects(e,t))return null;A.visitItem(this._item)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(lr),fr=function(e){function t(){e.call(this),this._node1=null,this._node2=null;var t=arguments[0],A=arguments[1];this._node1=t,this._node2=A,this.buildExtent(this._node1,this._node2)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.buildExtent=function(e,t){this._min=Math.min(e._min,t._min),this._max=Math.max(e._max,t._max)},t.prototype.query=function(e,t,A){if(!this.intersects(e,t))return null;null!==this._node1&&this._node1.query(e,t,A),null!==this._node2&&this._node2.query(e,t,A)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(lr),dr=function(){this._leaves=new ve,this._root=null,this._level=0};dr.prototype.buildTree=function(){$t.sort(this._leaves,new lr.NodeComparator);for(var e=this._leaves,t=null,A=new ve;;){if(this.buildLevel(e,A),1===A.size())return A.get(0);t=e,e=A,A=t}},dr.prototype.insert=function(e,t,A){if(null!==this._root)throw new Error("Index cannot be added to once it has been queried");this._leaves.add(new hr(e,t,A))},dr.prototype.query=function(e,t,A){this.init(),this._root.query(e,t,A)},dr.prototype.buildRoot=function(){if(null!==this._root)return null;this._root=this.buildTree()},dr.prototype.printNode=function(e){J.out.println(z.toLineString(new m(e._min,this._level),new m(e._max,this._level)))},dr.prototype.init=function(){if(null!==this._root)return null;this.buildRoot()},dr.prototype.buildLevel=function(e,t){this._level++,t.clear();for(var A=0;A<e.size();A+=2){var n=e.get(A);if(null===(A+1<e.size()?e.get(A):null))t.add(n);else{var r=new fr(e.get(A),e.get(A+1));t.add(r)}}},dr.prototype.interfaces_=function(){return[]},dr.prototype.getClass=function(){return dr};var Br=function(){this._items=new ve};Br.prototype.visitItem=function(e){this._items.add(e)},Br.prototype.getItems=function(){return this._items},Br.prototype.interfaces_=function(){return[Wt]},Br.prototype.getClass=function(){return Br};var pr=function(){this._index=null;var e=arguments[0];if(!D(e,ze))throw new B("Argument must be Polygonal");this._index=new yr(e)},Er={SegmentVisitor:{configurable:!0},IntervalIndexedGeometry:{configurable:!0}};pr.prototype.locate=function(e){var t=new oe(e),A=new Qr(t);return this._index.query(e.y,e.y,A),t.getLocation()},pr.prototype.interfaces_=function(){return[LA]},pr.prototype.getClass=function(){return pr},Er.SegmentVisitor.get=function(){return Qr},Er.IntervalIndexedGeometry.get=function(){return yr},Object.defineProperties(pr,Er);var Qr=function(){this._counter=null;var e=arguments[0];this._counter=e};Qr.prototype.visitItem=function(e){var t=e;this._counter.countSegment(t.getCoordinate(0),t.getCoordinate(1))},Qr.prototype.interfaces_=function(){return[Wt]},Qr.prototype.getClass=function(){return Qr};var yr=function(){this._index=new dr;var e=arguments[0];this.init(e)};yr.prototype.init=function(e){for(var t=mn.getLines(e).iterator();t.hasNext();){var A=t.next().getCoordinates();this.addLine(A)}},yr.prototype.addLine=function(e){for(var t=1;t<e.length;t++){var A=new CA(e[t-1],e[t]),n=Math.min(A.p0.y,A.p1.y),r=Math.max(A.p0.y,A.p1.y);this._index.insert(n,r,A)}},yr.prototype.query=function(){if(2===arguments.length){var e=arguments[0],t=arguments[1],A=new Br;return this._index.query(e,t,A),A.getItems()}if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2];this._index.query(n,r,i)}},yr.prototype.interfaces_=function(){return[]},yr.prototype.getClass=function(){return yr};var vr=function(e){function t(){if(e.call(this),this._parentGeom=null,this._lineEdgeMap=new lt,this._boundaryNodeRule=null,this._useBoundaryDeterminationRule=!0,this._argIndex=null,this._boundaryNodes=null,this._hasTooFewPoints=!1,this._invalidPoint=null,this._areaPtLocator=null,this._ptLocator=new bn,2===arguments.length){var t=arguments[0],A=arguments[1],n=Ce.OGC_SFS_BOUNDARY_RULE;this._argIndex=t,this._parentGeom=A,this._boundaryNodeRule=n,null!==A&&this.add(A)}else if(3===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2];this._argIndex=r,this._parentGeom=i,this._boundaryNodeRule=o,null!==i&&this.add(i)}}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.insertBoundaryPoint=function(e,A){var n=this._nodes.addNode(A).getLabel(),r=1;n.getLocation(e,bt.ON)===F.BOUNDARY&&r++;var i=t.determineBoundary(this._boundaryNodeRule,r);n.setLocation(e,i)},t.prototype.computeSelfNodes=function(){if(2===arguments.length){var e=arguments[0],t=arguments[1];return this.computeSelfNodes(e,t,!1)}if(3===arguments.length){var A=arguments[0],n=arguments[1],r=arguments[2],i=new cr(A,!0,!1);i.setIsDoneIfProperInt(r);var o=this.createEdgeSetIntersector(),a=this._parentGeom instanceof tt||this._parentGeom instanceof $e||this._parentGeom instanceof At,s=n||!a;return o.computeIntersections(this._edges,i,s),this.addSelfIntersectionNodes(this._argIndex),i}},t.prototype.computeSplitEdges=function(e){for(var t=this._edges.iterator();t.hasNext();)t.next().eiList.addSplitEdges(e)},t.prototype.computeEdgeIntersections=function(e,t,A){var n=new cr(t,A,!0);return n.setBoundaryNodes(this.getBoundaryNodes(),e.getBoundaryNodes()),this.createEdgeSetIntersector().computeIntersections(this._edges,e._edges,n),n},t.prototype.getGeometry=function(){return this._parentGeom},t.prototype.getBoundaryNodeRule=function(){return this._boundaryNodeRule},t.prototype.hasTooFewPoints=function(){return this._hasTooFewPoints},t.prototype.addPoint=function(){if(arguments[0]instanceof qe){var e=arguments[0].getCoordinate();this.insertPoint(this._argIndex,e,F.INTERIOR)}else if(arguments[0]instanceof m){var t=arguments[0];this.insertPoint(this._argIndex,t,F.INTERIOR)}},t.prototype.addPolygon=function(e){this.addPolygonRing(e.getExteriorRing(),F.EXTERIOR,F.INTERIOR);for(var t=0;t<e.getNumInteriorRing();t++){var A=e.getInteriorRingN(t);this.addPolygonRing(A,F.INTERIOR,F.EXTERIOR)}},t.prototype.addEdge=function(e){this.insertEdge(e);var t=e.getCoordinates();this.insertPoint(this._argIndex,t[0],F.BOUNDARY),this.insertPoint(this._argIndex,t[t.length-1],F.BOUNDARY)},t.prototype.addLineString=function(e){var t=we.removeRepeatedPoints(e.getCoordinates());if(t.length<2)return this._hasTooFewPoints=!0,this._invalidPoint=t[0],null;var A=new tn(t,new kt(this._argIndex,F.INTERIOR));this._lineEdgeMap.put(e,A),this.insertEdge(A),te.isTrue(t.length>=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,t[0]),this.insertBoundaryPoint(this._argIndex,t[t.length-1])},t.prototype.getInvalidPoint=function(){return this._invalidPoint},t.prototype.getBoundaryPoints=function(){for(var e=this.getBoundaryNodes(),t=new Array(e.size()).fill(null),A=0,n=e.iterator();n.hasNext();){var r=n.next();t[A++]=r.getCoordinate().copy()}return t},t.prototype.getBoundaryNodes=function(){return null===this._boundaryNodes&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes},t.prototype.addSelfIntersectionNode=function(e,t,A){if(this.isBoundaryNode(e,t))return null;A===F.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(e,t):this.insertPoint(e,t,A)},t.prototype.addPolygonRing=function(e,t,A){if(e.isEmpty())return null;var n=we.removeRepeatedPoints(e.getCoordinates());if(n.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=n[0],null;var r=t,i=A;ae.isCCW(n)&&(r=A,i=t);var o=new tn(n,new kt(this._argIndex,F.BOUNDARY,r,i));this._lineEdgeMap.put(e,o),this.insertEdge(o),this.insertPoint(this._argIndex,n[0],F.BOUNDARY)},t.prototype.insertPoint=function(e,t,A){var n=this._nodes.addNode(t),r=n.getLabel();null===r?n._label=new kt(e,A):r.setLocation(e,A)},t.prototype.createEdgeSetIntersector=function(){return new ur},t.prototype.addSelfIntersectionNodes=function(e){for(var t=this._edges.iterator();t.hasNext();)for(var A=t.next(),n=A.getLabel().getLocation(e),r=A.eiList.iterator();r.hasNext();){var i=r.next();this.addSelfIntersectionNode(e,i.coord,n)}},t.prototype.add=function(){if(1!==arguments.length)return e.prototype.add.apply(this,arguments);var t=arguments[0];if(t.isEmpty())return null;if(t instanceof At&&(this._useBoundaryDeterminationRule=!1),t instanceof $e)this.addPolygon(t);else if(t instanceof We)this.addLineString(t);else if(t instanceof qe)this.addPoint(t);else if(t instanceof et)this.addCollection(t);else if(t instanceof Ye)this.addCollection(t);else if(t instanceof At)this.addCollection(t);else{if(!(t instanceof He))throw new Error(t.getClass().getName());this.addCollection(t)}},t.prototype.addCollection=function(e){for(var t=0;t<e.getNumGeometries();t++){var A=e.getGeometryN(t);this.add(A)}},t.prototype.locate=function(e){return D(this._parentGeom,ze)&&this._parentGeom.getNumGeometries()>50?(null===this._areaPtLocator&&(this._areaPtLocator=new pr(this._parentGeom)),this._areaPtLocator.locate(e)):this._ptLocator.locate(e,this._parentGeom)},t.prototype.findEdge=function(){if(1===arguments.length){var t=arguments[0];return this._lineEdgeMap.get(t)}return e.prototype.findEdge.apply(this,arguments)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t.determineBoundary=function(e,t){return e.isInBoundary(t)?F.BOUNDARY:F.INTERIOR},t}(Jt),mr=function(){if(this._li=new re,this._resultPrecisionModel=null,this._arg=null,1===arguments.length){var e=arguments[0];this.setComputationPrecision(e.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new vr(0,e)}else if(2===arguments.length){var t=arguments[0],A=arguments[1],n=Ce.OGC_SFS_BOUNDARY_RULE;t.getPrecisionModel().compareTo(A.getPrecisionModel())>=0?this.setComputationPrecision(t.getPrecisionModel()):this.setComputationPrecision(A.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new vr(0,t,n),this._arg[1]=new vr(1,A,n)}else if(3===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2];r.getPrecisionModel().compareTo(i.getPrecisionModel())>=0?this.setComputationPrecision(r.getPrecisionModel()):this.setComputationPrecision(i.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new vr(0,r,o),this._arg[1]=new vr(1,i,o)}};mr.prototype.getArgGeometry=function(e){return this._arg[e].getGeometry()},mr.prototype.setComputationPrecision=function(e){this._resultPrecisionModel=e,this._li.setPrecisionModel(this._resultPrecisionModel)},mr.prototype.interfaces_=function(){return[]},mr.prototype.getClass=function(){return mr};var br=function(){};br.prototype.interfaces_=function(){return[]},br.prototype.getClass=function(){return br},br.map=function(){if(arguments[0]instanceof ce&&D(arguments[1],br.MapOp)){for(var e=arguments[0],t=arguments[1],A=new ve,n=0;n<e.getNumGeometries();n++){var r=t.map(e.getGeometryN(n));null!==r&&A.add(r)}return e.getFactory().buildGeometry(A)}if(D(arguments[0],Ee)&&D(arguments[1],br.MapOp)){for(var i=arguments[0],o=arguments[1],a=new ve,s=i.iterator();s.hasNext();){var g=s.next(),c=o.map(g);null!==c&&a.add(c)}return a}},br.MapOp=function(){};var wr=function(e){function t(){var t=arguments[0],A=arguments[1];e.call(this,t,A),this._ptLocator=new bn,this._geomFact=null,this._resultGeom=null,this._graph=null,this._edgeList=new PA,this._resultPolyList=new ve,this._resultLineList=new ve,this._resultPointList=new ve,this._graph=new Jt(new JA),this._geomFact=t.getFactory()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.insertUniqueEdge=function(e){var t=this._edgeList.findEqualEdge(e);if(null!==t){var A=t.getLabel(),n=e.getLabel();t.isPointwiseEqual(e)||(n=new kt(e.getLabel())).flip();var r=t.getDepth();r.isNull()&&r.add(A),r.add(n),A.merge(n)}else this._edgeList.add(e)},t.prototype.getGraph=function(){return this._graph},t.prototype.cancelDuplicateResultEdges=function(){for(var e=this._graph.getEdgeEnds().iterator();e.hasNext();){var t=e.next(),A=t.getSym();t.isInResult()&&A.isInResult()&&(t.setInResult(!1),A.setInResult(!1))}},t.prototype.isCoveredByLA=function(e){return!!this.isCovered(e,this._resultLineList)||!!this.isCovered(e,this._resultPolyList)},t.prototype.computeGeometry=function(e,A,n,r){var i=new ve;return i.addAll(e),i.addAll(A),i.addAll(n),i.isEmpty()?t.createEmptyResult(r,this._arg[0].getGeometry(),this._arg[1].getGeometry(),this._geomFact):this._geomFact.buildGeometry(i)},t.prototype.mergeSymLabels=function(){for(var e=this._graph.getNodes().iterator();e.hasNext();)e.next().getEdges().mergeSymLabels()},t.prototype.isCovered=function(e,t){for(var A=t.iterator();A.hasNext();){var n=A.next();if(this._ptLocator.locate(e,n)!==F.EXTERIOR)return!0}return!1},t.prototype.replaceCollapsedEdges=function(){for(var e=new ve,t=this._edgeList.iterator();t.hasNext();){var A=t.next();A.isCollapsed()&&(t.remove(),e.add(A.getCollapsedEdge()))}this._edgeList.addAll(e)},t.prototype.updateNodeLabelling=function(){for(var e=this._graph.getNodes().iterator();e.hasNext();){var t=e.next(),A=t.getEdges().getLabel();t.getLabel().merge(A)}},t.prototype.getResultGeometry=function(e){return this.computeOverlay(e),this._resultGeom},t.prototype.insertUniqueEdges=function(e){for(var t=e.iterator();t.hasNext();){var A=t.next();this.insertUniqueEdge(A)}},t.prototype.computeOverlay=function(e){this.copyPoints(0),this.copyPoints(1),this._arg[0].computeSelfNodes(this._li,!1),this._arg[1].computeSelfNodes(this._li,!1),this._arg[0].computeEdgeIntersections(this._arg[1],this._li,!0);var t=new ve;this._arg[0].computeSplitEdges(t),this._arg[1].computeSplitEdges(t),this.insertUniqueEdges(t),this.computeLabelsFromDepths(),this.replaceCollapsedEdges(),Jn.checkValid(this._edgeList.getEdges()),this._graph.addEdges(this._edgeList.getEdges()),this.computeLabelling(),this.labelIncompleteNodes(),this.findResultAreaEdges(e),this.cancelDuplicateResultEdges();var A=new jt(this._geomFact);A.add(this._graph),this._resultPolyList=A.getPolygons();var n=new Pn(this,this._geomFact,this._ptLocator);this._resultLineList=n.build(e);var r=new Vn(this,this._geomFact,this._ptLocator);this._resultPointList=r.build(e),this._resultGeom=this.computeGeometry(this._resultPointList,this._resultLineList,this._resultPolyList,e)},t.prototype.labelIncompleteNode=function(e,t){var A=this._ptLocator.locate(e.getCoordinate(),this._arg[t].getGeometry());e.getLabel().setLocation(t,A)},t.prototype.copyPoints=function(e){for(var t=this._arg[e].getNodeIterator();t.hasNext();){var A=t.next();this._graph.addNode(A.getCoordinate()).setLabel(e,A.getLabel().getLocation(e))}},t.prototype.findResultAreaEdges=function(e){for(var A=this._graph.getEdgeEnds().iterator();A.hasNext();){var n=A.next(),r=n.getLabel();r.isArea()&&!n.isInteriorAreaEdge()&&t.isResultOfOp(r.getLocation(0,bt.RIGHT),r.getLocation(1,bt.RIGHT),e)&&n.setInResult(!0)}},t.prototype.computeLabelsFromDepths=function(){for(var e=this._edgeList.iterator();e.hasNext();){var t=e.next(),A=t.getLabel(),n=t.getDepth();if(!n.isNull()){n.normalize();for(var r=0;r<2;r++)A.isNull(r)||!A.isArea()||n.isNull(r)||(0===n.getDelta(r)?A.toLine(r):(te.isTrue(!n.isNull(r,bt.LEFT),"depth of LEFT side has not been initialized"),A.setLocation(r,bt.LEFT,n.getLocation(r,bt.LEFT)),te.isTrue(!n.isNull(r,bt.RIGHT),"depth of RIGHT side has not been initialized"),A.setLocation(r,bt.RIGHT,n.getLocation(r,bt.RIGHT))))}}},t.prototype.computeLabelling=function(){for(var e=this._graph.getNodes().iterator();e.hasNext();)e.next().getEdges().computeLabelling(this._arg);this.mergeSymLabels(),this.updateNodeLabelling()},t.prototype.labelIncompleteNodes=function(){for(var e=this._graph.getNodes().iterator();e.hasNext();){var t=e.next(),A=t.getLabel();t.isIsolated()&&(A.isNull(0)?this.labelIncompleteNode(t,0):this.labelIncompleteNode(t,1)),t.getEdges().updateLabelling(A)}},t.prototype.isCoveredByA=function(e){return!!this.isCovered(e,this._resultPolyList)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(mr);wr.overlayOp=function(e,t,A){return new wr(e,t).getResultGeometry(A)},wr.intersection=function(e,t){if(e.isEmpty()||t.isEmpty())return wr.createEmptyResult(wr.INTERSECTION,e,t,e.getFactory());if(e.isGeometryCollection()){var A=t;return jn.map(e,{interfaces_:function(){return[br.MapOp]},map:function(e){return e.intersection(A)}})}return e.checkNotGeometryCollection(e),e.checkNotGeometryCollection(t),ir.overlayOp(e,t,wr.INTERSECTION)},wr.symDifference=function(e,t){if(e.isEmpty()||t.isEmpty()){if(e.isEmpty()&&t.isEmpty())return wr.createEmptyResult(wr.SYMDIFFERENCE,e,t,e.getFactory());if(e.isEmpty())return t.copy();if(t.isEmpty())return e.copy()}return e.checkNotGeometryCollection(e),e.checkNotGeometryCollection(t),ir.overlayOp(e,t,wr.SYMDIFFERENCE)},wr.resultDimension=function(e,t,A){var n=t.getDimension(),r=A.getDimension(),i=-1;switch(e){case wr.INTERSECTION:i=Math.min(n,r);break;case wr.UNION:i=Math.max(n,r);break;case wr.DIFFERENCE:i=n;break;case wr.SYMDIFFERENCE:i=Math.max(n,r)}return i},wr.createEmptyResult=function(e,t,A,n){var r=null;switch(wr.resultDimension(e,t,A)){case-1:r=n.createGeometryCollection(new Array(0).fill(null));break;case 0:r=n.createPoint();break;case 1:r=n.createLineString();break;case 2:r=n.createPolygon()}return r},wr.difference=function(e,t){return e.isEmpty()?wr.createEmptyResult(wr.DIFFERENCE,e,t,e.getFactory()):t.isEmpty()?e.copy():(e.checkNotGeometryCollection(e),e.checkNotGeometryCollection(t),ir.overlayOp(e,t,wr.DIFFERENCE))},wr.isResultOfOp=function(){if(2===arguments.length){var e=arguments[0],t=arguments[1],A=e.getLocation(0),n=e.getLocation(1);return wr.isResultOfOp(A,n,t)}if(3===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2];switch(r===F.BOUNDARY&&(r=F.INTERIOR),i===F.BOUNDARY&&(i=F.INTERIOR),o){case wr.INTERSECTION:return r===F.INTERIOR&&i===F.INTERIOR;case wr.UNION:return r===F.INTERIOR||i===F.INTERIOR;case wr.DIFFERENCE:return r===F.INTERIOR&&i!==F.INTERIOR;case wr.SYMDIFFERENCE:return r===F.INTERIOR&&i!==F.INTERIOR||r!==F.INTERIOR&&i===F.INTERIOR}return!1}},wr.INTERSECTION=1,wr.UNION=2,wr.DIFFERENCE=3,wr.SYMDIFFERENCE=4;var Sr=function(){this._g=null,this._boundaryDistanceTolerance=null,this._linework=null,this._ptLocator=new bn,this._seg=new CA;var e=arguments[0],t=arguments[1];this._g=e,this._boundaryDistanceTolerance=t,this._linework=this.extractLinework(e)};Sr.prototype.isWithinToleranceOfBoundary=function(e){for(var t=0;t<this._linework.getNumGeometries();t++)for(var A=this._linework.getGeometryN(t).getCoordinateSequence(),n=0;n<A.size()-1;n++)if(A.getCoordinate(n,this._seg.p0),A.getCoordinate(n+1,this._seg.p1),this._seg.distance(e)<=this._boundaryDistanceTolerance)return!0;return!1},Sr.prototype.getLocation=function(e){return this.isWithinToleranceOfBoundary(e)?F.BOUNDARY:this._ptLocator.locate(e,this._g)},Sr.prototype.extractLinework=function(e){var t=new Fr;e.apply(t);var A=t.getLinework(),n=dt.toLineStringArray(A);return e.getFactory().createMultiLineString(n)},Sr.prototype.interfaces_=function(){return[]},Sr.prototype.getClass=function(){return Sr};var Fr=function(){this._linework=null,this._linework=new ve};Fr.prototype.getLinework=function(){return this._linework},Fr.prototype.filter=function(e){if(e instanceof $e){var t=e;this._linework.add(t.getExteriorRing());for(var A=0;A<t.getNumInteriorRing();A++)this._linework.add(t.getInteriorRingN(A))}},Fr.prototype.interfaces_=function(){return[Te]},Fr.prototype.getClass=function(){return Fr};var Rr=function(){this._g=null,this._doLeft=!0,this._doRight=!0;var e=arguments[0];this._g=e};Rr.prototype.extractPoints=function(e,t,A){for(var n=e.getCoordinates(),r=0;r<n.length-1;r++)this.computeOffsetPoints(n[r],n[r+1],t,A)},Rr.prototype.setSidesToGenerate=function(e,t){this._doLeft=e,this._doRight=t},Rr.prototype.getPoints=function(e){for(var t=new ve,A=mn.getLines(this._g).iterator();A.hasNext();){var n=A.next();this.extractPoints(n,e,t)}return t},Rr.prototype.computeOffsetPoints=function(e,t,A,n){var r=t.x-e.x,i=t.y-e.y,o=Math.sqrt(r*r+i*i),a=A*r/o,s=A*i/o,g=(t.x+e.x)/2,c=(t.y+e.y)/2;if(this._doLeft){var u=new m(g-s,c+a);n.add(u)}if(this._doRight){var l=new m(g+s,c-a);n.add(l)}},Rr.prototype.interfaces_=function(){return[]},Rr.prototype.getClass=function(){return Rr};var Dr=function e(){this._geom=null,this._locFinder=null,this._location=new Array(3).fill(null),this._invalidLocation=null,this._boundaryDistanceTolerance=e.TOLERANCE,this._testCoords=new ve;var t=arguments[0],A=arguments[1],n=arguments[2];this._boundaryDistanceTolerance=e.computeBoundaryDistanceTolerance(t,A),this._geom=[t,A,n],this._locFinder=[new Sr(this._geom[0],this._boundaryDistanceTolerance),new Sr(this._geom[1],this._boundaryDistanceTolerance),new Sr(this._geom[2],this._boundaryDistanceTolerance)]},Gr={TOLERANCE:{configurable:!0}};Dr.prototype.reportResult=function(e,t,A){J.out.println("Overlay result invalid - A:"+F.toLocationSymbol(t[0])+" B:"+F.toLocationSymbol(t[1])+" expected:"+(A?"i":"e")+" actual:"+F.toLocationSymbol(t[2]))},Dr.prototype.isValid=function(e){return this.addTestPts(this._geom[0]),this.addTestPts(this._geom[1]),this.checkValid(e)},Dr.prototype.checkValid=function(){if(1===arguments.length){for(var e=arguments[0],t=0;t<this._testCoords.size();t++){var A=this._testCoords.get(t);if(!this.checkValid(e,A))return this._invalidLocation=A,!1}return!0}if(2===arguments.length){var n=arguments[0],r=arguments[1];return this._location[0]=this._locFinder[0].getLocation(r),this._location[1]=this._locFinder[1].getLocation(r),this._location[2]=this._locFinder[2].getLocation(r),!!Dr.hasLocation(this._location,F.BOUNDARY)||this.isValidResult(n,this._location)}},Dr.prototype.addTestPts=function(e){var t=new Rr(e);this._testCoords.addAll(t.getPoints(5*this._boundaryDistanceTolerance))},Dr.prototype.isValidResult=function(e,t){var A=wr.isResultOfOp(t[0],t[1],e),n=!(A^t[2]===F.INTERIOR);return n||this.reportResult(e,t,A),n},Dr.prototype.getInvalidLocation=function(){return this._invalidLocation},Dr.prototype.interfaces_=function(){return[]},Dr.prototype.getClass=function(){return Dr},Dr.hasLocation=function(e,t){for(var A=0;A<3;A++)if(e[A]===t)return!0;return!1},Dr.computeBoundaryDistanceTolerance=function(e,t){return Math.min(Xn.computeSizeBasedSnapTolerance(e),Xn.computeSizeBasedSnapTolerance(t))},Dr.isValid=function(e,t,A,n){return new Dr(e,t,n).isValid(A)},Gr.TOLERANCE.get=function(){return 1e-6},Object.defineProperties(Dr,Gr);var kr=function e(t){this._geomFactory=null,this._skipEmpty=!1,this._inputGeoms=null,this._geomFactory=e.extractFactory(t),this._inputGeoms=t};kr.prototype.extractElements=function(e,t){if(null===e)return null;for(var A=0;A<e.getNumGeometries();A++){var n=e.getGeometryN(A);this._skipEmpty&&n.isEmpty()||t.add(n)}},kr.prototype.combine=function(){for(var e=new ve,t=this._inputGeoms.iterator();t.hasNext();){var A=t.next();this.extractElements(A,e)}return 0===e.size()?null!==this._geomFactory?this._geomFactory.createGeometryCollection(null):null:this._geomFactory.buildGeometry(e)},kr.prototype.interfaces_=function(){return[]},kr.prototype.getClass=function(){return kr},kr.combine=function(){if(1===arguments.length){var e=arguments[0];return new kr(e).combine()}if(2===arguments.length){var t=arguments[0],A=arguments[1];return new kr(kr.createList(t,A)).combine()}if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2];return new kr(kr.createList(n,r,i)).combine()}},kr.extractFactory=function(e){return e.isEmpty()?null:e.iterator().next().getFactory()},kr.createList=function(){if(2===arguments.length){var e=arguments[0],t=arguments[1],A=new ve;return A.add(e),A.add(t),A}if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2],o=new ve;return o.add(n),o.add(r),o.add(i),o}};var xr=function(){this._inputPolys=null,this._geomFactory=null;var e=arguments[0];this._inputPolys=e,null===this._inputPolys&&(this._inputPolys=new ve)},Nr={STRTREE_NODE_CAPACITY:{configurable:!0}};xr.prototype.reduceToGeometries=function(e){for(var t=new ve,A=e.iterator();A.hasNext();){var n=A.next(),r=null;D(n,ye)?r=this.unionTree(n):n instanceof ce&&(r=n),t.add(r)}return t},xr.prototype.extractByEnvelope=function(e,t,A){for(var n=new ve,r=0;r<t.getNumGeometries();r++){var i=t.getGeometryN(r);i.getEnvelopeInternal().intersects(e)?n.add(i):A.add(i)}return this._geomFactory.buildGeometry(n)},xr.prototype.unionOptimized=function(e,t){var A=e.getEnvelopeInternal(),n=t.getEnvelopeInternal();if(!A.intersects(n))return kr.combine(e,t);if(e.getNumGeometries()<=1&&t.getNumGeometries()<=1)return this.unionActual(e,t);var r=A.intersection(n);return this.unionUsingEnvelopeIntersection(e,t,r)},xr.prototype.union=function(){if(null===this._inputPolys)throw new Error("union() method cannot be called twice");if(this._inputPolys.isEmpty())return null;this._geomFactory=this._inputPolys.iterator().next().getFactory();for(var e=new iA(xr.STRTREE_NODE_CAPACITY),t=this._inputPolys.iterator();t.hasNext();){var A=t.next();e.insert(A.getEnvelopeInternal(),A)}this._inputPolys=null;var n=e.itemsTree();return this.unionTree(n)},xr.prototype.binaryUnion=function(){if(1===arguments.length){var e=arguments[0];return this.binaryUnion(e,0,e.size())}if(3===arguments.length){var t=arguments[0],A=arguments[1],n=arguments[2];if(n-A<=1){var r=xr.getGeometry(t,A);return this.unionSafe(r,null)}if(n-A==2)return this.unionSafe(xr.getGeometry(t,A),xr.getGeometry(t,A+1));var i=Math.trunc((n+A)/2),o=this.binaryUnion(t,A,i),a=this.binaryUnion(t,i,n);return this.unionSafe(o,a)}},xr.prototype.repeatedUnion=function(e){for(var t=null,A=e.iterator();A.hasNext();){var n=A.next();t=null===t?n.copy():t.union(n)}return t},xr.prototype.unionSafe=function(e,t){return null===e&&null===t?null:null===e?t.copy():null===t?e.copy():this.unionOptimized(e,t)},xr.prototype.unionActual=function(e,t){return xr.restrictToPolygons(e.union(t))},xr.prototype.unionTree=function(e){var t=this.reduceToGeometries(e);return this.binaryUnion(t)},xr.prototype.unionUsingEnvelopeIntersection=function(e,t,A){var n=new ve,r=this.extractByEnvelope(A,e,n),i=this.extractByEnvelope(A,t,n),o=this.unionActual(r,i);return n.add(o),kr.combine(n)},xr.prototype.bufferUnion=function(){if(1===arguments.length){var e=arguments[0];return e.get(0).getFactory().buildGeometry(e).buffer(0)}if(2===arguments.length){var t=arguments[0],A=arguments[1];return t.getFactory().createGeometryCollection([t,A]).buffer(0)}},xr.prototype.interfaces_=function(){return[]},xr.prototype.getClass=function(){return xr},xr.restrictToPolygons=function(e){if(D(e,ze))return e;var t=vn.getPolygons(e);return 1===t.size()?t.get(0):e.getFactory().createMultiPolygon(dt.toPolygonArray(t))},xr.getGeometry=function(e,t){return t>=e.size()?null:e.get(t)},xr.union=function(e){return new xr(e).union()},Nr.STRTREE_NODE_CAPACITY.get=function(){return 4},Object.defineProperties(xr,Nr);var Ur=function(){};Ur.prototype.interfaces_=function(){return[]},Ur.prototype.getClass=function(){return Ur},Ur.union=function(e,t){if(e.isEmpty()||t.isEmpty()){if(e.isEmpty()&&t.isEmpty())return wr.createEmptyResult(wr.UNION,e,t,e.getFactory());if(e.isEmpty())return t.copy();if(t.isEmpty())return e.copy()}return e.checkNotGeometryCollection(e),e.checkNotGeometryCollection(t),ir.overlayOp(e,t,wr.UNION)},e.GeoJSONReader=vt,e.GeoJSONWriter=mt,e.OverlayOp=wr,e.UnionOp=Ur,e.BufferOp=hn,Object.defineProperty(e,"__esModule",{value:!0})}(t)},function(e,t,A){"use strict";var n=/("(?:[^\\"]|\\.)*")|[:,]/g;e.exports=function(e,t){var A,r,i;return t=t||{},A=JSON.stringify([1],void 0,void 0===t.indent?2:t.indent).slice(2,-3),r=""===A?1/0:void 0===t.maxLength?80:t.maxLength,i=t.replacer,function e(t,o,a){var s,g,c,u,l,I,C,h,f,d,B,p;if(t&&"function"===typeof t.toJSON&&(t=t.toJSON()),void 0===(B=JSON.stringify(t,i)))return B;if(C=r-o.length-a,B.length<=C&&(f=B.replace(n,(function(e,t){return t||e+" "}))).length<=C)return f;if(null!=i&&(t=JSON.parse(B),i=void 0),"object"===typeof t&&null!==t){if(h=o+A,c=[],g=0,Array.isArray(t))for(d="[",s="]",C=t.length;g<C;g++)c.push(e(t[g],h,g===C-1?0:1)||"null");else for(d="{",s="}",C=(I=Object.keys(t)).length;g<C;g++)u=I[g],l=JSON.stringify(u)+": ",void 0!==(p=e(t[u],h,l.length+(g===C-1?0:1)))&&c.push(l+p);if(c.length>0)return[d,A+c.join(",\n"+h),s].join("\n"+o)}return B}(e,"",0)}},function(e,t,A){"use strict";var n,r=A(2),i=A(169),o=A(429);A.d(t,"a",(function(){return s})),A.d(t,"c",(function(){return l})),A.d(t,"b",(function(){return I}));var a=(n={},Object(r.a)(n,i.b,"#ifdef MODULE_LOGDEPTH\n logdepth_adjustPosition(gl_Position);\n#endif\n"),Object(r.a)(n,i.a,"#ifdef MODULE_MATERIAL\n gl_FragColor = material_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LIGHTING\n gl_FragColor = lighting_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_FOG\n gl_FragColor = fog_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_PICKING\n gl_FragColor = picking_filterHighlightColor(gl_FragColor);\n gl_FragColor = picking_filterPickingColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LOGDEPTH\n logdepth_setFragDepth();\n#endif\n"),n),s="__LUMA_INJECT_DECLARATIONS__",g=/void\s+main\s*\([^)]*\)\s*\{\n?/,c=/}\n?[^{}]*$/,u=[];function l(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=t===i.b,o=function(t){var n=A[t];n.sort((function(e,t){return e.order-t.order})),u.length=n.length;for(var i=0,o=n.length;i<o;++i)u[i]=n[i].injection;var a="".concat(u.join("\n"),"\n");switch(t){case"vs:#decl":r&&(e=e.replace(s,a));break;case"vs:#main-start":r&&(e=e.replace(g,(function(e){return e+a})));break;case"vs:#main-end":r&&(e=e.replace(c,(function(e){return a+e})));break;case"fs:#decl":r||(e=e.replace(s,a));break;case"fs:#main-start":r||(e=e.replace(g,(function(e){return e+a})));break;case"fs:#main-end":r||(e=e.replace(c,(function(e){return a+e})));break;default:e=e.replace(t,(function(e){return e+a}))}};for(var l in A)o(l);return e=e.replace(s,""),n&&(e=e.replace(/\}\s*$/,(function(e){return e+a[t]}))),e}function I(e){var t={};return Object(o.a)(Array.isArray(e)&&e.length>1),e.forEach((function(e){for(var A in e)t[A]=t[A]?"".concat(t[A],"\n").concat(e[A]):e[A]})),t}},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=A.n(i),a=(A(13),A(39)),s=A(19),g=A(51),c=A(66),u=A(28),l=A(200),I=A(137),C=A(204),h=A(321),f=A(225),d=A(288);function B(e,t){var A=Object.create(null);return e&&i.Children.map(e,(function(e){return e})).forEach((function(e){A[e.key]=function(e){return t&&Object(i.isValidElement)(e)?t(e):e}(e)})),A}function p(e,t,A){return null!=A[t]?A[t]:e.props[t]}function E(e,t,A){var n=B(e.children),r=function(e,t){function A(A){return A in t?t[A]:e[A]}e=e||{},t=t||{};var n,r=Object.create(null),i=[];for(var o in e)o in t?i.length&&(r[o]=i,i=[]):i.push(o);var a={};for(var s in t){if(r[s])for(n=0;n<r[s].length;n++){var g=r[s][n];a[r[s][n]]=A(g)}a[s]=A(s)}for(n=0;n<i.length;n++)a[i[n]]=A(i[n]);return a}(t,n);return Object.keys(r).forEach((function(o){var a=r[o];if(Object(i.isValidElement)(a)){var s=o in t,g=o in n,c=t[o],u=Object(i.isValidElement)(c)&&!c.props.in;!g||s&&!u?g||!s||u?g&&s&&Object(i.isValidElement)(c)&&(r[o]=Object(i.cloneElement)(a,{onExited:A.bind(null,a),in:c.props.in,exit:p(a,"exit",e),enter:p(a,"enter",e)})):r[o]=Object(i.cloneElement)(a,{in:!1}):r[o]=Object(i.cloneElement)(a,{onExited:A.bind(null,a),in:!0,exit:p(a,"exit",e),enter:p(a,"enter",e)})}})),r}var Q=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},y=function(e){function t(t,A){var n,r=(n=e.call(this,t,A)||this).handleExited.bind(Object(h.a)(n));return n.state={contextValue:{isMounting:!0},handleExited:r,firstRender:!0},n}Object(f.a)(t,e);var A=t.prototype;return A.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},A.componentWillUnmount=function(){this.mounted=!1},t.getDerivedStateFromProps=function(e,t){var A,n,r=t.children,o=t.handleExited;return{children:t.firstRender?(A=e,n=o,B(A.children,(function(e){return Object(i.cloneElement)(e,{onExited:n.bind(null,e),in:!0,appear:p(e,"appear",A),enter:p(e,"enter",A),exit:p(e,"exit",A)})}))):E(e,r,o),firstRender:!1}},A.handleExited=function(e,t){var A=B(this.props.children);e.key in A||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var A=Object(n.a)({},t.children);return delete A[e.key],{children:A}})))},A.render=function(){var e=this.props,t=e.component,A=e.childFactory,n=Object(C.a)(e,["component","childFactory"]),r=this.state.contextValue,i=Q(this.state.children).map(A);return delete n.appear,delete n.enter,delete n.exit,null===t?o.a.createElement(d.a.Provider,{value:r},i):o.a.createElement(d.a.Provider,{value:r},o.a.createElement(t,n,i))},t}(o.a.Component);y.propTypes={},y.defaultProps={component:"div",childFactory:function(e){return e}};var v=y,m="undefined"===typeof window?i.useEffect:i.useLayoutEffect;var b=function(e){var t=e.classes,A=e.pulsate,n=void 0!==A&&A,r=e.rippleX,o=e.rippleY,a=e.rippleSize,g=e.in,u=e.onExited,l=void 0===u?function(){}:u,I=e.timeout,C=i.useState(!1),h=C[0],f=C[1],d=Object(s.a)(t.ripple,t.rippleVisible,n&&t.ripplePulsate),B={width:a,height:a,top:-a/2+o,left:-a/2+r},p=Object(s.a)(t.child,h&&t.childLeaving,n&&t.childPulsate),E=Object(c.a)(l);return m((function(){if(!g){f(!0);var e=setTimeout(E,I);return function(){clearTimeout(e)}}}),[E,g,I]),i.createElement("span",{className:d,style:B},i.createElement("span",{className:p}))},w=i.forwardRef((function(e,t){var A=e.center,o=void 0!==A&&A,a=e.classes,g=e.className,c=Object(r.a)(e,["center","classes","className"]),u=i.useState([]),l=u[0],C=u[1],h=i.useRef(0),f=i.useRef(null);i.useEffect((function(){f.current&&(f.current(),f.current=null)}),[l]);var d=i.useRef(!1),B=i.useRef(null),p=i.useRef(null),E=i.useRef(null);i.useEffect((function(){return function(){clearTimeout(B.current)}}),[]);var Q=i.useCallback((function(e){var t=e.pulsate,A=e.rippleX,n=e.rippleY,r=e.rippleSize,o=e.cb;C((function(e){return[].concat(Object(I.a)(e),[i.createElement(b,{key:h.current,classes:a,timeout:550,pulsate:t,rippleX:A,rippleY:n,rippleSize:r})])})),h.current+=1,f.current=o}),[a]),y=i.useCallback((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=arguments.length>2?arguments[2]:void 0,n=t.pulsate,r=void 0!==n&&n,i=t.center,a=void 0===i?o||t.pulsate:i,s=t.fakeElement,g=void 0!==s&&s;if("mousedown"===e.type&&d.current)d.current=!1;else{"touchstart"===e.type&&(d.current=!0);var c,u,l,I=g?null:E.current,C=I?I.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(a||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)c=Math.round(C.width/2),u=Math.round(C.height/2);else{var h=e.touches?e.touches[0]:e,f=h.clientX,y=h.clientY;c=Math.round(f-C.left),u=Math.round(y-C.top)}if(a)(l=Math.sqrt((2*Math.pow(C.width,2)+Math.pow(C.height,2))/3))%2===0&&(l+=1);else{var v=2*Math.max(Math.abs((I?I.clientWidth:0)-c),c)+2,m=2*Math.max(Math.abs((I?I.clientHeight:0)-u),u)+2;l=Math.sqrt(Math.pow(v,2)+Math.pow(m,2))}e.touches?null===p.current&&(p.current=function(){Q({pulsate:r,rippleX:c,rippleY:u,rippleSize:l,cb:A})},B.current=setTimeout((function(){p.current&&(p.current(),p.current=null)}),80)):Q({pulsate:r,rippleX:c,rippleY:u,rippleSize:l,cb:A})}}),[o,Q]),m=i.useCallback((function(){y({},{pulsate:!0})}),[y]),w=i.useCallback((function(e,t){if(clearTimeout(B.current),"touchend"===e.type&&p.current)return e.persist(),p.current(),p.current=null,void(B.current=setTimeout((function(){w(e,t)})));p.current=null,C((function(e){return e.length>0?e.slice(1):e})),f.current=t}),[]);return i.useImperativeHandle(t,(function(){return{pulsate:m,start:y,stop:w}}),[m,y,w]),i.createElement("span",Object(n.a)({className:Object(s.a)(a.root,g),ref:E},c),i.createElement(v,{component:null,exit:!0},l))})),S=Object(u.a)((function(e){return{root:{overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"},ripple:{opacity:0,position:"absolute"},rippleVisible:{opacity:.3,transform:"scale(1)",animation:"$enter ".concat(550,"ms ").concat(e.transitions.easing.easeInOut)},ripplePulsate:{animationDuration:"".concat(e.transitions.duration.shorter,"ms")},child:{opacity:1,display:"block",width:"100%",height:"100%",borderRadius:"50%",backgroundColor:"currentColor"},childLeaving:{opacity:0,animation:"$exit ".concat(550,"ms ").concat(e.transitions.easing.easeInOut)},childPulsate:{position:"absolute",left:0,top:0,animation:"$pulsate 2500ms ".concat(e.transitions.easing.easeInOut," 200ms infinite")},"@keyframes enter":{"0%":{transform:"scale(0)",opacity:.1},"100%":{transform:"scale(1)",opacity:.3}},"@keyframes exit":{"0%":{opacity:1},"100%":{opacity:0}},"@keyframes pulsate":{"0%":{transform:"scale(1)"},"50%":{transform:"scale(0.92)"},"100%":{transform:"scale(1)"}}}}),{flip:!1,name:"MuiTouchRipple"})(i.memo(w)),F=i.forwardRef((function(e,t){var A=e.action,o=e.buttonRef,u=e.centerRipple,I=void 0!==u&&u,C=e.children,h=e.classes,f=e.className,d=e.component,B=void 0===d?"button":d,p=e.disabled,E=void 0!==p&&p,Q=e.disableRipple,y=void 0!==Q&&Q,v=e.disableTouchRipple,m=void 0!==v&&v,b=e.focusRipple,w=void 0!==b&&b,F=e.focusVisibleClassName,R=e.onBlur,D=e.onClick,G=e.onFocus,k=e.onFocusVisible,x=e.onKeyDown,N=e.onKeyUp,U=e.onMouseDown,_=e.onMouseLeave,M=e.onMouseUp,O=e.onTouchEnd,L=e.onTouchMove,T=e.onTouchStart,Z=e.onDragLeave,H=e.tabIndex,Y=void 0===H?0:H,J=e.TouchRippleProps,j=e.type,P=void 0===j?"button":j,V=Object(r.a)(e,["action","buttonRef","centerRipple","children","classes","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","onBlur","onClick","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","tabIndex","TouchRippleProps","type"]),K=i.useRef(null);var W=i.useRef(null),X=i.useState(!1),q=X[0],z=X[1];E&&q&&z(!1);var $=Object(l.a)(),ee=$.isFocusVisible,te=$.onBlurVisible,Ae=$.ref;function ne(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:m;return Object(c.a)((function(n){return t&&t(n),!A&&W.current&&W.current[e](n),!0}))}i.useImperativeHandle(A,(function(){return{focusVisible:function(){z(!0),K.current.focus()}}}),[]),i.useEffect((function(){q&&w&&!y&&W.current.pulsate()}),[y,w,q]);var re=ne("start",U),ie=ne("stop",Z),oe=ne("stop",M),ae=ne("stop",(function(e){q&&e.preventDefault(),_&&_(e)})),se=ne("start",T),ge=ne("stop",O),ce=ne("stop",L),ue=ne("stop",(function(e){q&&(te(e),z(!1)),R&&R(e)}),!1),le=Object(c.a)((function(e){K.current||(K.current=e.currentTarget),ee(e)&&(z(!0),k&&k(e)),G&&G(e)})),Ie=function(){var e=a.findDOMNode(K.current);return B&&"button"!==B&&!("A"===e.tagName&&e.href)},Ce=i.useRef(!1),he=Object(c.a)((function(e){w&&!Ce.current&&q&&W.current&&" "===e.key&&(Ce.current=!0,e.persist(),W.current.stop(e,(function(){W.current.start(e)}))),e.target===e.currentTarget&&Ie()&&" "===e.key&&e.preventDefault(),x&&x(e),e.target===e.currentTarget&&Ie()&&"Enter"===e.key&&!E&&(e.preventDefault(),D&&D(e))})),fe=Object(c.a)((function(e){w&&" "===e.key&&W.current&&q&&!e.defaultPrevented&&(Ce.current=!1,e.persist(),W.current.stop(e,(function(){W.current.pulsate(e)}))),N&&N(e),D&&e.target===e.currentTarget&&Ie()&&" "===e.key&&!e.defaultPrevented&&D(e)})),de=B;"button"===de&&V.href&&(de="a");var Be={};"button"===de?(Be.type=P,Be.disabled=E):("a"===de&&V.href||(Be.role="button"),Be["aria-disabled"]=E);var pe=Object(g.a)(o,t),Ee=Object(g.a)(Ae,K),Qe=Object(g.a)(pe,Ee),ye=i.useState(!1),ve=ye[0],me=ye[1];i.useEffect((function(){me(!0)}),[]);var be=ve&&!y&&!E;return i.createElement(de,Object(n.a)({className:Object(s.a)(h.root,f,q&&[h.focusVisible,F],E&&h.disabled),onBlur:ue,onClick:D,onFocus:le,onKeyDown:he,onKeyUp:fe,onMouseDown:re,onMouseLeave:ae,onMouseUp:oe,onDragLeave:ie,onTouchEnd:ge,onTouchMove:ce,onTouchStart:se,ref:Qe,tabIndex:E?-1:Y},Be,V),C,be?i.createElement(S,Object(n.a)({ref:W,center:I},J)):null)}));t.a=Object(u.a)({root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},"&$disabled":{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}},disabled:{},focusVisible:{}},{name:"MuiButtonBase"})(F)},,,,,,,,,,function(e,t,A){"use strict";var n=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function o(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},A=0;A<10;A++)t["_"+String.fromCharCode(A)]=A;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(r){return!1}}()?Object.assign:function(e,t){for(var A,a,s=o(e),g=1;g<arguments.length;g++){for(var c in A=Object(arguments[g]))r.call(A,c)&&(s[c]=A[c]);if(n){a=n(A);for(var u=0;u<a.length;u++)i.call(A,a[u])&&(s[a[u]]=A[a[u]])}}return s}},function(e,t,A){var n=A(753),r=A(154);e.exports=function e(t,A,i,o,a){return t===A||(null==t||null==A||!r(t)&&!r(A)?t!==t&&A!==A:n(t,A,i,o,e,a))}},function(e,t,A){var n=A(215)(A(140),"Map");e.exports=n},function(e,t,A){var n=A(216),r=A(127);e.exports=function(e){if(!r(e))return!1;var t=n(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},function(e,t,A){var n=A(770),r=A(777),i=A(779),o=A(780),a=A(781);function s(e){var t=-1,A=null==e?0:e.length;for(this.clear();++t<A;){var n=e[t];this.set(n[0],n[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=o,s.prototype.set=a,e.exports=s},function(e,t,A){var n=A(447),r=A(782),i=A(783);function o(e){var t=-1,A=null==e?0:e.length;for(this.__data__=new n;++t<A;)this.add(e[t])}o.prototype.add=o.prototype.push=r,o.prototype.has=i,e.exports=o},function(e,t){e.exports=function(e,t){return e.has(t)}},function(e,t){e.exports=function(e){var t=-1,A=Array(e.size);return e.forEach((function(e){A[++t]=e})),A}},function(e,t){e.exports=function(e,t){for(var A=-1,n=t.length,r=e.length;++A<n;)e[r+A]=t[A];return e}},function(e,t,A){var n=A(788),r=A(549),i=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols,a=o?function(e){return null==e?[]:(e=Object(e),n(o(e),(function(t){return i.call(e,t)})))}:r;e.exports=a},function(e,t){var A=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&A.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t,A){var n=A(792),r=A(350),i=A(456),o=i&&i.isTypedArray,a=o?r(o):n;e.exports=a},function(e,t){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},function(e,t,A){(function(e){var n=A(543),r=t&&!t.nodeType&&t,i=r&&"object"==typeof e&&e&&!e.nodeType&&e,o=i&&i.exports===r&&n.process,a=function(){try{var e=i&&i.require&&i.require("util").types;return e||o&&o.binding&&o.binding("util")}catch(t){}}();e.exports=a}).call(this,A(155)(e))},function(e,t){var A=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||A)}},function(e,t,A){(function(e,A){var n="[object Arguments]",r="[object Map]",i="[object Object]",o="[object Set]",a=/^\[object .+?Constructor\]$/,s=/^(?:0|[1-9]\d*)$/,g={};g["[object Float32Array]"]=g["[object Float64Array]"]=g["[object Int8Array]"]=g["[object Int16Array]"]=g["[object Int32Array]"]=g["[object Uint8Array]"]=g["[object Uint8ClampedArray]"]=g["[object Uint16Array]"]=g["[object Uint32Array]"]=!0,g[n]=g["[object Array]"]=g["[object ArrayBuffer]"]=g["[object Boolean]"]=g["[object DataView]"]=g["[object Date]"]=g["[object Error]"]=g["[object Function]"]=g[r]=g["[object Number]"]=g[i]=g["[object RegExp]"]=g[o]=g["[object String]"]=g["[object WeakMap]"]=!1;var c="object"==typeof e&&e&&e.Object===Object&&e,u="object"==typeof self&&self&&self.Object===Object&&self,l=c||u||Function("return this")(),I=t&&!t.nodeType&&t,C=I&&"object"==typeof A&&A&&!A.nodeType&&A,h=C&&C.exports===I,f=h&&c.process,d=function(){try{return f&&f.binding&&f.binding("util")}catch(e){}}(),B=d&&d.isTypedArray;function p(e,t){for(var A=-1,n=null==e?0:e.length;++A<n;)if(t(e[A],A,e))return!0;return!1}function E(e){var t=-1,A=Array(e.size);return e.forEach((function(e,n){A[++t]=[n,e]})),A}function Q(e){var t=-1,A=Array(e.size);return e.forEach((function(e){A[++t]=e})),A}var y,v,m=Array.prototype,b=Function.prototype,w=Object.prototype,S=l["__core-js_shared__"],F=b.toString,R=w.hasOwnProperty,D=function(){var e=/[^.]+$/.exec(S&&S.keys&&S.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),G=w.toString,k=RegExp("^"+F.call(R).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),x=h?l.Buffer:void 0,N=l.Symbol,U=l.Uint8Array,_=w.propertyIsEnumerable,M=m.splice,O=N?N.toStringTag:void 0,L=Object.getOwnPropertySymbols,T=x?x.isBuffer:void 0,Z=(y=Object.keys,v=Object,function(e){return y(v(e))}),H=fe(l,"DataView"),Y=fe(l,"Map"),J=fe(l,"Promise"),j=fe(l,"Set"),P=fe(l,"WeakMap"),V=fe(Object,"create"),K=Ee(H),W=Ee(Y),X=Ee(J),q=Ee(j),z=Ee(P),$=N?N.prototype:void 0,ee=$?$.valueOf:void 0;function te(e){var t=-1,A=null==e?0:e.length;for(this.clear();++t<A;){var n=e[t];this.set(n[0],n[1])}}function Ae(e){var t=-1,A=null==e?0:e.length;for(this.clear();++t<A;){var n=e[t];this.set(n[0],n[1])}}function ne(e){var t=-1,A=null==e?0:e.length;for(this.clear();++t<A;){var n=e[t];this.set(n[0],n[1])}}function re(e){var t=-1,A=null==e?0:e.length;for(this.__data__=new ne;++t<A;)this.add(e[t])}function ie(e){var t=this.__data__=new Ae(e);this.size=t.size}function oe(e,t){var A=ve(e),n=!A&&ye(e),r=!A&&!n&&me(e),i=!A&&!n&&!r&&Re(e),o=A||n||r||i,a=o?function(e,t){for(var A=-1,n=Array(e);++A<e;)n[A]=t(A);return n}(e.length,String):[],s=a.length;for(var g in e)!t&&!R.call(e,g)||o&&("length"==g||r&&("offset"==g||"parent"==g)||i&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||pe(g,s))||a.push(g);return a}function ae(e,t){for(var A=e.length;A--;)if(Qe(e[A][0],t))return A;return-1}function se(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":O&&O in Object(e)?function(e){var t=R.call(e,O),A=e[O];try{e[O]=void 0;var n=!0}catch(i){}var r=G.call(e);n&&(t?e[O]=A:delete e[O]);return r}(e):function(e){return G.call(e)}(e)}function ge(e){return Fe(e)&&se(e)==n}function ce(e,t,A,a,s){return e===t||(null==e||null==t||!Fe(e)&&!Fe(t)?e!==e&&t!==t:function(e,t,A,a,s,g){var c=ve(e),u=ve(t),l=c?"[object Array]":Be(e),I=u?"[object Array]":Be(t),C=(l=l==n?i:l)==i,h=(I=I==n?i:I)==i,f=l==I;if(f&&me(e)){if(!me(t))return!1;c=!0,C=!1}if(f&&!C)return g||(g=new ie),c||Re(e)?Ie(e,t,A,a,s,g):function(e,t,A,n,i,a,s){switch(A){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!a(new U(e),new U(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Qe(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case r:var g=E;case o:var c=1&n;if(g||(g=Q),e.size!=t.size&&!c)return!1;var u=s.get(e);if(u)return u==t;n|=2,s.set(e,t);var l=Ie(g(e),g(t),n,i,a,s);return s.delete(e),l;case"[object Symbol]":if(ee)return ee.call(e)==ee.call(t)}return!1}(e,t,l,A,a,s,g);if(!(1&A)){var d=C&&R.call(e,"__wrapped__"),B=h&&R.call(t,"__wrapped__");if(d||B){var p=d?e.value():e,y=B?t.value():t;return g||(g=new ie),s(p,y,A,a,g)}}if(!f)return!1;return g||(g=new ie),function(e,t,A,n,r,i){var o=1&A,a=Ce(e),s=a.length,g=Ce(t).length;if(s!=g&&!o)return!1;var c=s;for(;c--;){var u=a[c];if(!(o?u in t:R.call(t,u)))return!1}var l=i.get(e);if(l&&i.get(t))return l==t;var I=!0;i.set(e,t),i.set(t,e);var C=o;for(;++c<s;){u=a[c];var h=e[u],f=t[u];if(n)var d=o?n(f,h,u,t,e,i):n(h,f,u,e,t,i);if(!(void 0===d?h===f||r(h,f,A,n,i):d)){I=!1;break}C||(C="constructor"==u)}if(I&&!C){var B=e.constructor,p=t.constructor;B==p||!("constructor"in e)||!("constructor"in t)||"function"==typeof B&&B instanceof B&&"function"==typeof p&&p instanceof p||(I=!1)}return i.delete(e),i.delete(t),I}(e,t,A,a,s,g)}(e,t,A,a,ce,s))}function ue(e){return!(!Se(e)||function(e){return!!D&&D in e}(e))&&(be(e)?k:a).test(Ee(e))}function le(e){if(!function(e){var t=e&&e.constructor,A="function"==typeof t&&t.prototype||w;return e===A}(e))return Z(e);var t=[];for(var A in Object(e))R.call(e,A)&&"constructor"!=A&&t.push(A);return t}function Ie(e,t,A,n,r,i){var o=1&A,a=e.length,s=t.length;if(a!=s&&!(o&&s>a))return!1;var g=i.get(e);if(g&&i.get(t))return g==t;var c=-1,u=!0,l=2&A?new re:void 0;for(i.set(e,t),i.set(t,e);++c<a;){var I=e[c],C=t[c];if(n)var h=o?n(C,I,c,t,e,i):n(I,C,c,e,t,i);if(void 0!==h){if(h)continue;u=!1;break}if(l){if(!p(t,(function(e,t){if(o=t,!l.has(o)&&(I===e||r(I,e,A,n,i)))return l.push(t);var o}))){u=!1;break}}else if(I!==C&&!r(I,C,A,n,i)){u=!1;break}}return i.delete(e),i.delete(t),u}function Ce(e){return function(e,t,A){var n=t(e);return ve(e)?n:function(e,t){for(var A=-1,n=t.length,r=e.length;++A<n;)e[r+A]=t[A];return e}(n,A(e))}(e,De,de)}function he(e,t){var A=e.__data__;return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?A["string"==typeof t?"string":"hash"]:A.map}function fe(e,t){var A=function(e,t){return null==e?void 0:e[t]}(e,t);return ue(A)?A:void 0}te.prototype.clear=function(){this.__data__=V?V(null):{},this.size=0},te.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},te.prototype.get=function(e){var t=this.__data__;if(V){var A=t[e];return"__lodash_hash_undefined__"===A?void 0:A}return R.call(t,e)?t[e]:void 0},te.prototype.has=function(e){var t=this.__data__;return V?void 0!==t[e]:R.call(t,e)},te.prototype.set=function(e,t){var A=this.__data__;return this.size+=this.has(e)?0:1,A[e]=V&&void 0===t?"__lodash_hash_undefined__":t,this},Ae.prototype.clear=function(){this.__data__=[],this.size=0},Ae.prototype.delete=function(e){var t=this.__data__,A=ae(t,e);return!(A<0)&&(A==t.length-1?t.pop():M.call(t,A,1),--this.size,!0)},Ae.prototype.get=function(e){var t=this.__data__,A=ae(t,e);return A<0?void 0:t[A][1]},Ae.prototype.has=function(e){return ae(this.__data__,e)>-1},Ae.prototype.set=function(e,t){var A=this.__data__,n=ae(A,e);return n<0?(++this.size,A.push([e,t])):A[n][1]=t,this},ne.prototype.clear=function(){this.size=0,this.__data__={hash:new te,map:new(Y||Ae),string:new te}},ne.prototype.delete=function(e){var t=he(this,e).delete(e);return this.size-=t?1:0,t},ne.prototype.get=function(e){return he(this,e).get(e)},ne.prototype.has=function(e){return he(this,e).has(e)},ne.prototype.set=function(e,t){var A=he(this,e),n=A.size;return A.set(e,t),this.size+=A.size==n?0:1,this},re.prototype.add=re.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},re.prototype.has=function(e){return this.__data__.has(e)},ie.prototype.clear=function(){this.__data__=new Ae,this.size=0},ie.prototype.delete=function(e){var t=this.__data__,A=t.delete(e);return this.size=t.size,A},ie.prototype.get=function(e){return this.__data__.get(e)},ie.prototype.has=function(e){return this.__data__.has(e)},ie.prototype.set=function(e,t){var A=this.__data__;if(A instanceof Ae){var n=A.__data__;if(!Y||n.length<199)return n.push([e,t]),this.size=++A.size,this;A=this.__data__=new ne(n)}return A.set(e,t),this.size=A.size,this};var de=L?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var A=-1,n=null==e?0:e.length,r=0,i=[];++A<n;){var o=e[A];t(o,A,e)&&(i[r++]=o)}return i}(L(e),(function(t){return _.call(e,t)})))}:function(){return[]},Be=se;function pe(e,t){return!!(t=null==t?9007199254740991:t)&&("number"==typeof e||s.test(e))&&e>-1&&e%1==0&&e<t}function Ee(e){if(null!=e){try{return F.call(e)}catch(t){}try{return e+""}catch(t){}}return""}function Qe(e,t){return e===t||e!==e&&t!==t}(H&&"[object DataView]"!=Be(new H(new ArrayBuffer(1)))||Y&&Be(new Y)!=r||J&&"[object Promise]"!=Be(J.resolve())||j&&Be(new j)!=o||P&&"[object WeakMap]"!=Be(new P))&&(Be=function(e){var t=se(e),A=t==i?e.constructor:void 0,n=A?Ee(A):"";if(n)switch(n){case K:return"[object DataView]";case W:return r;case X:return"[object Promise]";case q:return o;case z:return"[object WeakMap]"}return t});var ye=ge(function(){return arguments}())?ge:function(e){return Fe(e)&&R.call(e,"callee")&&!_.call(e,"callee")},ve=Array.isArray;var me=T||function(){return!1};function be(e){if(!Se(e))return!1;var t=se(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}function we(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Se(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Fe(e){return null!=e&&"object"==typeof e}var Re=B?function(e){return function(t){return e(t)}}(B):function(e){return Fe(e)&&we(e.length)&&!!g[se(e)]};function De(e){return null!=(t=e)&&we(t.length)&&!be(t)?oe(e):le(e);var t}A.exports=function(e,t){return ce(e,t)}}).call(this,A(86),A(155)(e))},function(e,t,A){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.matchesSelector=u,t.matchesSelectorAndParentsTo=function(e,t,A){var n=e;do{if(u(n,t))return!0;if(n===A)return!1;n=n.parentNode}while(n);return!1},t.addEvent=function(e,t,A,n){if(!e)return;var r=s({capture:!0},n);e.addEventListener?e.addEventListener(t,A,r):e.attachEvent?e.attachEvent("on"+t,A):e["on"+t]=A},t.removeEvent=function(e,t,A,n){if(!e)return;var r=s({capture:!0},n);e.removeEventListener?e.removeEventListener(t,A,r):e.detachEvent?e.detachEvent("on"+t,A):e["on"+t]=null},t.outerHeight=function(e){var t=e.clientHeight,A=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,r.int)(A.borderTopWidth),t+=(0,r.int)(A.borderBottomWidth)},t.outerWidth=function(e){var t=e.clientWidth,A=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,r.int)(A.borderLeftWidth),t+=(0,r.int)(A.borderRightWidth)},t.innerHeight=function(e){var t=e.clientHeight,A=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,r.int)(A.paddingTop),t-=(0,r.int)(A.paddingBottom)},t.innerWidth=function(e){var t=e.clientWidth,A=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,r.int)(A.paddingLeft),t-=(0,r.int)(A.paddingRight)},t.offsetXYFromParent=function(e,t,A){var n=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),r=(e.clientX+t.scrollLeft-n.left)/A,i=(e.clientY+t.scrollTop-n.top)/A;return{x:r,y:i}},t.createCSSTransform=function(e,t){var A=l(e,t,"px");return g({},(0,i.browserPrefixToKey)("transform",i.default),A)},t.createSVGTransform=function(e,t){return l(e,t,"")},t.getTranslation=l,t.getTouch=function(e,t){return e.targetTouches&&(0,r.findInArray)(e.targetTouches,(function(e){return t===e.identifier}))||e.changedTouches&&(0,r.findInArray)(e.changedTouches,(function(e){return t===e.identifier}))},t.getTouchIdentifier=function(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier},t.addUserSelectStyles=function(e){if(!e)return;var t=e.getElementById("react-draggable-style-el");t||((t=e.createElement("style")).type="text/css",t.id="react-draggable-style-el",t.innerHTML=".react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n",t.innerHTML+=".react-draggable-transparent-selection *::selection {all: inherit;}\n",e.getElementsByTagName("head")[0].appendChild(t));e.body&&I(e.body,"react-draggable-transparent-selection")},t.removeUserSelectStyles=function(e){if(!e)return;try{if(e.body&&C(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{var t=(e.defaultView||window).getSelection();t&&"Caret"!==t.type&&t.removeAllRanges()}}catch(A){}},t.addClassName=I,t.removeClassName=C;var r=A(352),i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!==typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var A={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=r?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(A,i,a):A[i]=e[i]}A.default=e,t&&t.set(e,A);return A}(A(804));function o(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function a(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function s(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?a(Object(A),!0).forEach((function(t){g(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):a(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function g(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var c="";function u(e,t){return c||(c=(0,r.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],(function(t){return(0,r.isFunction)(e[t])}))),!!(0,r.isFunction)(e[c])&&e[c](t)}function l(e,t,A){var n=e.x,r=e.y,i="translate(".concat(n).concat(A,",").concat(r).concat(A,")");if(t){var o="".concat("string"===typeof t.x?t.x:t.x+A),a="".concat("string"===typeof t.y?t.y:t.y+A);i="translate(".concat(o,", ").concat(a,")")+i}return i}function I(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)")))||(e.className+=" ".concat(t))}function C(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)"),"g"),"")}},function(e,t,A){var n=A(127),r=A(353),i=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,s=/^0o[0-7]+$/i,g=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(r(e))return NaN;if(n(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=n(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(i,"");var A=a.test(e);return A||s.test(e)?g(e.slice(2),A?2:8):o.test(e)?NaN:+e}},function(e,t,A){"use strict";var n=A(817),r=A(146),i=A(250),o=A(560),a=A(819);function s(e,t,A){var n=this._refs[A];if("string"==typeof n){if(!this._refs[n])return s.call(this,e,t,n);n=this._refs[n]}if((n=n||this._schemas[A])instanceof o)return C(n.schema,this._opts.inlineRefs)?n.schema:n.validate||this._compile(n);var r,i,a,c=g.call(this,t,A);return c&&(r=c.schema,t=c.root,a=c.baseId),r instanceof o?i=r.validate||e.call(this,r.schema,t,void 0,a):void 0!==r&&(i=C(r,this._opts.inlineRefs)?r:e.call(this,r,t,void 0,a)),i}function g(e,t){var A=n.parse(t),r=f(A),i=h(this._getId(e.schema));if(0===Object.keys(e.schema).length||r!==i){var a=B(r),s=this._refs[a];if("string"==typeof s)return c.call(this,e,s,A);if(s instanceof o)s.validate||this._compile(s),e=s;else{if(!((s=this._schemas[a])instanceof o))return;if(s.validate||this._compile(s),a==B(t))return{schema:s,root:e,baseId:i};e=s}if(!e.schema)return;i=h(this._getId(e.schema))}return l.call(this,A,i,e.schema,e)}function c(e,t,A){var n=g.call(this,e,t);if(n){var r=n.schema,i=n.baseId;e=n.root;var o=this._getId(r);return o&&(i=p(i,o)),l.call(this,A,i,r,e)}}e.exports=s,s.normalizeId=B,s.fullPath=h,s.url=p,s.ids=function(e){var t=B(this._getId(e)),A={"":t},o={"":h(t,!1)},s={},g=this;return a(e,{allKeys:!0},(function(e,t,a,c,u,l,I){if(""!==t){var C=g._getId(e),h=A[c],f=o[c]+"/"+u;if(void 0!==I&&(f+="/"+("number"==typeof I?I:i.escapeFragment(I))),"string"==typeof C){C=h=B(h?n.resolve(h,C):C);var d=g._refs[C];if("string"==typeof d&&(d=g._refs[d]),d&&d.schema){if(!r(e,d.schema))throw new Error('id "'+C+'" resolves to more than one schema')}else if(C!=B(f))if("#"==C[0]){if(s[C]&&!r(e,s[C]))throw new Error('id "'+C+'" resolves to more than one schema');s[C]=e}else g._refs[C]=f}A[t]=h,o[t]=f}})),s},s.inlineRef=C,s.schema=g;var u=i.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function l(e,t,A,n){if(e.fragment=e.fragment||"","/"==e.fragment.slice(0,1)){for(var r=e.fragment.split("/"),o=1;o<r.length;o++){var a=r[o];if(a){if(void 0===(A=A[a=i.unescapeFragment(a)]))break;var s;if(!u[a]&&((s=this._getId(A))&&(t=p(t,s)),A.$ref)){var c=p(t,A.$ref),l=g.call(this,n,c);l&&(A=l.schema,n=l.root,t=l.baseId)}}}return void 0!==A&&A!==n.schema?{schema:A,root:n,baseId:t}:void 0}}var I=i.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]);function C(e,t){return!1!==t&&(void 0===t||!0===t?function e(t){var A;if(Array.isArray(t)){for(var n=0;n<t.length;n++)if("object"==typeof(A=t[n])&&!e(A))return!1}else for(var r in t){if("$ref"==r)return!1;if("object"==typeof(A=t[r])&&!e(A))return!1}return!0}(e):t?function e(t){var A,n=0;if(Array.isArray(t)){for(var r=0;r<t.length;r++)if("object"==typeof(A=t[r])&&(n+=e(A)),n==1/0)return 1/0}else for(var i in t){if("$ref"==i)return 1/0;if(I[i])n++;else if("object"==typeof(A=t[i])&&(n+=e(A)+1),n==1/0)return 1/0}return n}(e)<=t:void 0)}function h(e,t){return!1!==t&&(e=B(e)),f(n.parse(e))}function f(e){return n.serialize(e).split("#")[0]+"#"}var d=/#\/?$/;function B(e){return e?e.replace(d,""):""}function p(e,t){return t=B(t),n.resolve(e,t)}},function(e,t,A){"use strict";var n=A(461);function r(e,t,A){this.message=A||r.message(e,t),this.missingRef=n.url(e,t),this.missingSchema=n.normalizeId(n.fullPath(this.missingRef))}function i(e){return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}e.exports={Validation:i((function(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0})),MissingRef:i(r)},r.message=function(e,t){return"can't resolve reference "+t+" from id "+e}},function(e,t,A){"use strict";(function(e){var n=A(95);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(t){if("undefined"!==typeof window&&"object"===(0,r.default)(window.process)&&"renderer"===window.process.type)return!0;if("undefined"!==typeof e&&"object"===(0,r.default)(e.versions)&&Boolean(e.versions.electron))return!0;var A="object"===("undefined"===typeof navigator?"undefined":(0,r.default)(navigator))&&"string"===typeof navigator.userAgent&&navigator.userAgent,n=t||A;if(n&&n.indexOf("Electron")>=0)return!0;return!1};var r=n(A(251))}).call(this,A(90))},function(e,t,A){"use strict";A.d(t,"a",(function(){return s}));var n=A(3),r=A.n(n),i=A(12),o=A(228),a=A(194);function s(e){return g.apply(this,arguments)}function g(){return(g=Object(i.a)(r.a.mark((function e(t){var A,n,i,s,g,c,u,l;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:A=[],n=!0,i=!1,e.prev=3,g=Object(o.a)(t);case 5:return e.next=7,g.next();case 7:return c=e.sent,n=c.done,e.next=11,c.value;case 11:if(u=e.sent,n){e.next=18;break}l=u,A.push(l);case 15:n=!0,e.next=5;break;case 18:e.next=24;break;case 20:e.prev=20,e.t0=e.catch(3),i=!0,s=e.t0;case 24:if(e.prev=24,e.prev=25,n||null==g.return){e.next=29;break}return e.next=29,g.return();case 29:if(e.prev=29,!i){e.next=32;break}throw s;case 32:return e.finish(29);case 33:return e.finish(24);case 34:return e.abrupt("return",a.b.apply(void 0,A));case 35:case"end":return e.stop()}}),e,null,[[3,20,24,34],[25,,29,33]])})))).apply(this,arguments)}},function(e,t,A){var n=A(585);e.exports=function(e,t,A){"__proto__"==t&&n?n(e,t,{configurable:!0,enumerable:!0,value:A,writable:!0}):e[t]=A}},function(e,t,A){var n=A(551)(Object.getPrototypeOf,Object);e.exports=n},function(e,t,A){var n=A(546);e.exports=function(e){var t=new e.constructor(e.byteLength);return new n(t).set(new n(e)),t}},function(e,t,A){"use strict";function n(e){return function(){return null}}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";function n(e,t,A,n,r){return null}A.d(t,"a",(function(){return n}))},function(e,t,A){var n=A(358),r=A(911),i=A(913);e.exports=function(e,t){return i(r(e,t,n),e+"")}},function(e,t,A){var n=A(248),r=A(154);e.exports=function(e){return r(e)&&n(e)}},function(e,t){e.exports=function(e,t){for(var A=-1,n=null==e?0:e.length,r=Array(n);++A<n;)r[A]=t(e[A],A,e);return r}},function(e,t,A){var n=A(256);e.exports=function(e,t){if(!n(e))return e;var A,r;if(t&&"function"==typeof(A=e.toString)&&!n(r=A.call(e)))return r;if("function"==typeof(A=e.valueOf)&&!n(r=A.call(e)))return r;if(!t&&"function"==typeof(A=e.toString)&&!n(r=A.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var A=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:A)(e)}},function(e,t,A){var n=A(477)("keys"),r=A(362);e.exports=function(e){return n[e]||(n[e]=r(e))}},function(e,t,A){var n=A(191),r=A(190),i=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:A(361)?"pure":"global",copyright:"\xa9 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,A){var n=A(474);e.exports=function(e){return Object(n(e))}},function(e,t){e.exports={}},function(e,t,A){var n=A(302),r=A(940),i=A(478),o=A(476)("IE_PROTO"),a=function(){},s=function(){var e,t=A(596)("iframe"),n=i.length;for(t.style.display="none",A(941).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),s=e.F;n--;)delete s.prototype[i[n]];return s()};e.exports=Object.create||function(e,t){var A;return null!==e?(a.prototype=n(e),A=new a,a.prototype=null,A[o]=e):A=s(),void 0===t?A:r(A,t)}},function(e,t,A){var n=A(217).f,r=A(218),i=A(258)("toStringTag");e.exports=function(e,t,A){e&&!r(e=A?e:e.prototype,i)&&n(e,i,{configurable:!0,value:t})}},function(e,t,A){t.f=A(258)},function(e,t,A){var n=A(190),r=A(191),i=A(361),o=A(484),a=A(217).f;e.exports=function(e){var t=r.Symbol||(r.Symbol=i?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:o.f(e)})}},function(e,t,A){var n=A(606),r=A(608);e.exports=function(e,t){return e&&n(e,r(t))}},function(e,t,A){var n=A(111),r=A(353),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var A=typeof e;return!("number"!=A&&"symbol"!=A&&"boolean"!=A&&null!=e&&!r(e))||(o.test(e)||!i.test(e)||null!=t&&e in Object(t))}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Checkboard=void 0;var n=o(A(0)),r=o(A(49)),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var A in e)Object.prototype.hasOwnProperty.call(e,A)&&(t[A]=e[A]);return t.default=e,t}(A(995));function o(e){return e&&e.__esModule?e:{default:e}}var a=t.Checkboard=function(e){var t=e.white,A=e.grey,o=e.size,a=e.renderers,s=e.borderRadius,g=e.boxShadow,c=(0,r.default)({default:{grid:{borderRadius:s,boxShadow:g,absolute:"0px 0px 0px 0px",background:"url("+i.get(t,A,o,a.canvas)+") center left"}}});return n.default.createElement("div",{style:c.grid})};a.defaultProps={size:8,white:"transparent",grey:"rgba(0,0,0,.08)",renderers:{}},t.default=a},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(105);function r(e,t,A,n){var r=A[0],i=A[1],o=e[0],a=e[1],s=t[0],g=t[1],c=s-o,u=g-a;return 0===(A[0]-o)*u-(A[1]-a)*c&&(n?"start"===n?Math.abs(c)>=Math.abs(u)?c>0?o<r&&r<=s:s<=r&&r<o:u>0?a<i&&i<=g:g<=i&&i<a:"end"===n?Math.abs(c)>=Math.abs(u)?c>0?o<=r&&r<s:s<r&&r<=o:u>0?a<=i&&i<g:g<i&&i<=a:"both"===n&&(Math.abs(c)>=Math.abs(u)?c>0?o<r&&r<s:s<r&&r<o:u>0?a<i&&i<g:g<i&&i<a):Math.abs(c)>=Math.abs(u)?c>0?o<=r&&r<=s:s<=r&&r<=o:u>0?a<=i&&i<=g:g<=i&&i<=a)}t.default=function(e,t,A){void 0===A&&(A={});for(var i=n.getCoord(e),o=n.getCoords(t),a=0;a<o.length-1;a++){var s=!1;if(A.ignoreEndVertices&&(0===a&&(s="start"),a===o.length-2&&(s="end"),0===a&&a+1===o.length-1&&(s="both")),r(o[a],o[a+1],i,s))return!0}return!1}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(143),r=A(112),i=A(304),o=A(365),a=A(141),s=A(59),g=A(105);t.default=function(e,t,A){void 0===A&&(A={});var c=s.point([1/0,1/0],{dist:1/0}),u=0;return a.flattenEach(e,(function(e){for(var a=g.getCoords(e),l=0;l<a.length-1;l++){var I=s.point(a[l]);I.properties.dist=r.default(t,I,A);var C=s.point(a[l+1]);C.properties.dist=r.default(t,C,A);var h=r.default(I,C,A),f=Math.max(I.properties.dist,C.properties.dist),d=n.default(I,C),B=i.default(t,f,d+90,A),p=i.default(t,f,d-90,A),E=o.default(s.lineString([B.geometry.coordinates,p.geometry.coordinates]),s.lineString([I.geometry.coordinates,C.geometry.coordinates])),Q=null;E.features.length>0&&((Q=E.features[0]).properties.dist=r.default(t,Q,A),Q.properties.location=u+r.default(I,Q,A)),I.properties.dist<c.properties.dist&&((c=I).properties.index=l,c.properties.location=u),C.properties.dist<c.properties.dist&&((c=C).properties.index=l+1,c.properties.location=u+h),Q&&Q.properties.dist<c.properties.dist&&((c=Q).properties.index=l),u+=h}})),c}},function(e,t,A){"use strict";var n=A(1057);e.exports=Function.prototype.bind||n},function(e,t,A){"use strict";var n=A(622),r="function"===typeof Symbol&&"symbol"===typeof Symbol("foo"),i=Object.prototype.toString,o=Array.prototype.concat,a=Object.defineProperty,s=a&&function(){var e={};try{for(var t in a(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(A){return!1}}(),g=function(e,t,A,n){var r;(!(t in e)||"function"===typeof(r=n)&&"[object Function]"===i.call(r)&&n())&&(s?a(e,t,{configurable:!0,enumerable:!1,value:A,writable:!0}):e[t]=A)},c=function(e,t){var A=arguments.length>2?arguments[2]:{},i=n(t);r&&(i=o.call(i,Object.getOwnPropertySymbols(t)));for(var a=0;a<i.length;a+=1)g(e,i[a],t[i[a]],A[i[a]])};c.supportsDescriptors=!!s,e.exports=c},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,r=A(75),i=A(202),o=(n=A(636))&&n.__esModule?n:{default:n};function a(e){return(a="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t,A){return(c="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=I(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function u(e,t){return!t||"object"!==a(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function l(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function I(e){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e,t){return(C=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var f=[0,0,0,153],d=[0,0,0,144],B=[0,0,0,255],p=[0,0,144,144],E=[144,144,144,255],Q=[144,144,144,144],y=[192,0,0,255],v=[0,0,0,128],m=[124,0,192,255],b=[255,255,255,255],w=i.DrawPolygonMode;function S(e){return e&&"function"===typeof e?function(t){return e(function(e){if(e.__source)return e.__source.object;if(e.sourceFeature)return e.sourceFeature.feature;return e}(t))}:e}function F(e){switch(e.properties.editHandleType){case"existing":return y;case"snap-source":return m;case"intermediate":default:return v}}var R={mode:w,onEdit:function(){},pickable:!0,pickingRadius:10,pickingDepth:5,fp64:!1,filled:!0,stroked:!0,lineWidthScale:1,lineWidthMinPixels:1,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,lineWidthUnits:"pixels",lineJointRounded:!1,lineMiterLimit:4,pointRadiusScale:1,pointRadiusMinPixels:2,pointRadiusMaxPixels:Number.MAX_SAFE_INTEGER,getLineColor:function(e,t,A){return t?B:f},getFillColor:function(e,t,A){return t?p:d},getRadius:function(e){return e&&e.properties&&e.properties.radius||e&&e.properties&&e.properties.size||1},getLineWidth:function(e){return e&&e.properties&&e.properties.lineWidth||3},getTentativeLineColor:function(e){return E},getTentativeFillColor:function(e){return Q},getTentativeLineWidth:function(e){return e&&e.properties&&e.properties.lineWidth||3},editHandleType:"point",editHandlePointRadiusScale:1,editHandlePointOutline:!0,editHandlePointStrokeWidth:2,editHandlePointRadiusMinPixels:4,editHandlePointRadiusMaxPixels:8,getEditHandlePointColor:F,getEditHandlePointOutlineColor:function(e){return b},getEditHandlePointRadius:function(e){switch(e.properties.editHandleType){case"existing":return 5;case"snap":return 7;case"intermediate":default:return 3}},editHandleIconAtlas:null,editHandleIconMapping:null,editHandleIconSizeScale:1,getEditHandleIcon:function(e){return e.properties.editHandleType},getEditHandleIconSize:10,getEditHandleIconColor:F,getEditHandleIconAngle:0,billboard:!0},D={view:i.ViewMode,modify:i.ModifyMode,translate:new i.SnappableMode(new i.TranslateMode),transform:new i.SnappableMode(new i.TransformMode),scale:i.ScaleMode,rotate:i.RotateMode,duplicate:i.DuplicateMode,split:i.SplitPolygonMode,extrude:i.ExtrudeMode,elevation:i.ElevationMode,drawPoint:i.DrawPointMode,drawLineString:i.DrawLineStringMode,drawPolygon:i.DrawPolygonMode,drawRectangle:i.DrawRectangleMode,drawSquareFromCenter:i.DrawSquareFromCenterMode,drawCircleFromCenter:i.DrawCircleFromCenterMode,drawCircleByBoundingBox:i.DrawCircleByDiameterMode,drawEllipseByBoundingBox:i.DrawEllipseByBoundingBoxMode,drawRectangleUsing3Points:i.DrawRectangleUsingThreePointsMode,drawEllipseUsing3Points:i.DrawEllipseUsingThreePointsMode,draw90DegreePolygon:i.Draw90DegreePolygonMode,drawPolygonByDragging:i.DrawPolygonByDraggingMode},G=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&C(e,t)}(a,e);var t,A,n,i,o=(t=a,function(){var e,A=I(t);if(l()){var n=I(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return u(this,e)});function a(){return s(this,a),o.apply(this,arguments)}return A=a,(n=[{key:"renderLayers",value:function(){var e=this.getSubLayerProps({id:"geojson",data:this.props.data,fp64:this.props.fp64,filled:this.props.filled,stroked:this.props.stroked,lineWidthScale:this.props.lineWidthScale,lineWidthMinPixels:this.props.lineWidthMinPixels,lineWidthMaxPixels:this.props.lineWidthMaxPixels,lineWidthUnits:this.props.lineWidthUnits,lineJointRounded:this.props.lineJointRounded,lineMiterLimit:this.props.lineMiterLimit,pointRadiusScale:this.props.pointRadiusScale,pointRadiusMinPixels:this.props.pointRadiusMinPixels,pointRadiusMaxPixels:this.props.pointRadiusMaxPixels,getLineColor:this.selectionAwareAccessor(this.props.getLineColor),getFillColor:this.selectionAwareAccessor(this.props.getFillColor),getRadius:this.selectionAwareAccessor(this.props.getRadius),getLineWidth:this.selectionAwareAccessor(this.props.getLineWidth),_subLayerProps:{"line-strings":{billboard:this.props.billboard},"polygons-stroke":{billboard:this.props.billboard}},updateTriggers:{getLineColor:[this.props.selectedFeatureIndexes,this.props.mode],getFillColor:[this.props.selectedFeatureIndexes,this.props.mode],getRadius:[this.props.selectedFeatureIndexes,this.props.mode],getLineWidth:[this.props.selectedFeatureIndexes,this.props.mode]}}),t=[new r.GeoJsonLayer(e)];return t=t.concat(this.createGuidesLayers(),this.createTooltipsLayers())}},{key:"initializeState",value:function(){c(I(a.prototype),"initializeState",this).call(this),this.setState({selectedFeatures:[],editHandles:[]})}},{key:"shouldUpdateState",value:function(e){return c(I(a.prototype),"shouldUpdateState",this).call(this,e)||e.changeFlags.stateChanged}},{key:"updateState",value:function(e){var t,A=e.props,n=e.oldProps,r=e.changeFlags;(c(I(a.prototype),"updateState",this).call(this,{oldProps:n,props:A,changeFlags:r}),!r.propsOrDataChanged||0!==Object.keys(n).length&&A.mode===n.mode)||("function"===typeof A.mode?t=new(0,A.mode):"string"===typeof A.mode?(t=D[A.mode],console.warn("Deprecated use of passing `mode` as a string. Pass the mode's class constructor instead.")):t=A.mode,t||(console.warn("No mode configured for ".concat(String(A.mode))),t=new w),t!==this.state.mode&&this.setState({mode:t,cursor:null}));var i=[];Array.isArray(A.selectedFeatureIndexes)&&(i=A.selectedFeatureIndexes.map((function(e){return A.data.features[e]}))),this.setState({selectedFeatures:i})}},{key:"getModeProps",value:function(e){var t=this;return{modeConfig:e.modeConfig,data:e.data,selectedIndexes:e.selectedFeatureIndexes,lastPointerMoveEvent:this.state.lastPointerMoveEvent,cursor:this.state.cursor,onEdit:function(A){t.setNeedsUpdate(),e.onEdit(A)},onUpdateCursor:function(e){t.setState({cursor:e})}}}},{key:"selectionAwareAccessor",value:function(e){var t=this;return"function"!==typeof e?e:function(A){return e(A,t.isFeatureSelected(A),t.props.mode)}}},{key:"isFeatureSelected",value:function(e){if(!this.props.data||!this.props.selectedFeatureIndexes)return!1;if(!this.props.selectedFeatureIndexes.length)return!1;var t=this.props.data.features.indexOf(e);return this.props.selectedFeatureIndexes.includes(t)}},{key:"getPickingInfo",value:function(e){var t=e.info;return e.sourceLayer.id.endsWith("guides")&&(t.isGuide=!0),t}},{key:"createGuidesLayers",value:function(){var e,t=this.getActiveMode().getGuides(this.getModeProps(this.props));return t&&t.features.length?(e="icon"===this.props.editHandleType?{type:r.IconLayer,iconAtlas:this.props.editHandleIconAtlas,iconMapping:this.props.editHandleIconMapping,sizeScale:this.props.editHandleIconSizeScale,getIcon:S(this.props.getEditHandleIcon),getSize:S(this.props.getEditHandleIconSize),getColor:S(this.props.getEditHandleIconColor),getAngle:S(this.props.getEditHandleIconAngle)}:{type:r.ScatterplotLayer,radiusScale:this.props.editHandlePointRadiusScale,stroked:this.props.editHandlePointOutline,getLineWidth:this.props.editHandlePointStrokeWidth,radiusMinPixels:this.props.editHandlePointRadiusMinPixels,radiusMaxPixels:this.props.editHandlePointRadiusMaxPixels,getRadius:S(this.props.getEditHandlePointRadius),getFillColor:S(this.props.getEditHandlePointColor),getLineColor:S(this.props.getEditHandlePointOutlineColor)},[new r.GeoJsonLayer(this.getSubLayerProps({id:"guides",data:t,fp64:this.props.fp64,_subLayerProps:{points:e},lineWidthScale:this.props.lineWidthScale,lineWidthMinPixels:this.props.lineWidthMinPixels,lineWidthMaxPixels:this.props.lineWidthMaxPixels,lineWidthUnits:this.props.lineWidthUnits,lineJointRounded:this.props.lineJointRounded,lineMiterLimit:this.props.lineMiterLimit,getLineColor:S(this.props.getTentativeLineColor),getLineWidth:S(this.props.getTentativeLineWidth),getFillColor:S(this.props.getTentativeFillColor)}))]):[]}},{key:"createTooltipsLayers",value:function(){var e=this.getActiveMode().getTooltips(this.getModeProps(this.props));return[new r.TextLayer(this.getSubLayerProps({id:"tooltips",data:e}))]}},{key:"onLayerClick",value:function(e){this.getActiveMode().handleClick(e,this.getModeProps(this.props))}},{key:"onLayerKeyUp",value:function(e){this.getActiveMode().handleKeyUp(e,this.getModeProps(this.props))}},{key:"onStartDragging",value:function(e){this.getActiveMode().handleStartDragging(e,this.getModeProps(this.props))}},{key:"onDragging",value:function(e){this.getActiveMode().handleDragging(e,this.getModeProps(this.props))}},{key:"onStopDragging",value:function(e){this.getActiveMode().handleStopDragging(e,this.getModeProps(this.props))}},{key:"onPointerMove",value:function(e){this.setState({lastPointerMoveEvent:e}),this.getActiveMode().handlePointerMove(e,this.getModeProps(this.props))}},{key:"getCursor",value:function(e){var t=e.isDragging;if(null===this.state)return null;var A=this.state.cursor;return A||(A=t?"grabbing":"grab"),A}},{key:"getActiveMode",value:function(){return this.state.mode}}])&&g(A.prototype,n),i&&g(A,i),a}(o.default);t.default=G,h(G,"layerName","EditableGeoJsonLayer"),h(G,"defaultProps",R)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModifyMode=void 0;var n=A(59),r=A(99),i=A(79),o=A(158);function a(e){return(a="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||g(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){if(e){if("string"===typeof e)return c(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function I(e,t){return!t||"object"!==a(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function C(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var d=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(d,e);var t,A,i,a,c=(t=d,function(){var e,A=h(t);if(C()){var n=h(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return I(this,e)});function d(){return u(this,d),c.apply(this,arguments)}return A=d,(i=[{key:"getGuides",value:function(e){var t,A=this,i=[],o=e.data,a=e.lastPointerMoveEvent,c=o.features,u=a&&a.picks,l=a&&a.mapCoords,I=function(e){if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=g(e))){var t=0,A=function(){};return{s:A,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:A}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,i=!0,o=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){o=!0,r=e},f:function(){try{i||null==n.return||n.return()}finally{if(o)throw r}}}}(e.selectedIndexes);try{for(I.s();!(t=I.n()).done;){var C=t.value;if(C<c.length){var h=c[C].geometry;i.push.apply(i,s((0,r.getEditHandlesForGeometry)(h,C)))}else console.warn("selectedFeatureIndexes out of range ".concat(C))}}catch(v){I.e(v)}finally{I.f()}if(u&&u.length&&l){var f=!(0,r.getPickedExistingEditHandle)(u)&&u.find((function(e){return!e.isGuide}));if(f&&!f.object.geometry.type.includes("Point")&&e.selectedIndexes.includes(f.index)){var d=null,B=[],p=(0,n.point)(l);if((0,r.recursivelyTraverseNestedArrays)(f.object.geometry.coordinates,[],(function(t,r){var i=(0,n.lineString)(t),o=A.getNearestPoint(i,p,e.modeConfig&&e.modeConfig.viewport);(!d||o.properties.dist<d.properties.dist)&&(d=o,B=r)})),d){var E=d,Q=E.geometry.coordinates,y=E.properties.index;i.push({type:"Feature",properties:{guideType:"editHandle",editHandleType:"intermediate",featureIndex:f.index,positionIndexes:[].concat(s(B),[y+1])},geometry:{type:"Point",coordinates:Q}})}}}return{type:"FeatureCollection",features:i}}},{key:"getNearestPoint",value:function(e,t,A){if(e.geometry.coordinates.some((function(e){return e.length>2}))){if(A)return(0,r.nearestPointOnProjectedLine)(e,t,A);console.log("Editing 3D point but modeConfig.viewport not provided. Falling back to 2D logic.")}return(0,r.nearestPointOnLine)(e,t,A)}},{key:"handleClick",value:function(e,t){var A=(0,r.getPickedExistingEditHandle)(e.picks),n=(0,r.getPickedIntermediateEditHandle)(e.picks);if(A){var i,a=A.properties,s=a.featureIndex,g=a.positionIndexes;try{i=new o.ImmutableFeatureCollection(t.data).removePosition(s,g).getObject()}catch(C){}i&&t.onEdit({updatedData:i,editType:"removePosition",editContext:{featureIndexes:[s],positionIndexes:g,position:A.geometry.coordinates}})}else if(n){var c=n.properties,u=c.featureIndex,l=c.positionIndexes,I=new o.ImmutableFeatureCollection(t.data).addPosition(u,l,n.geometry.coordinates).getObject();I&&t.onEdit({updatedData:I,editType:"addPosition",editContext:{featureIndexes:[u],positionIndexes:l,position:n.geometry.coordinates}})}}},{key:"handleDragging",value:function(e,t){var A=(0,r.getPickedEditHandle)(e.pointerDownPicks);if(A){e.cancelPan();var n=A.properties,i=new o.ImmutableFeatureCollection(t.data).replacePosition(n.featureIndex,n.positionIndexes,e.mapCoords).getObject();t.onEdit({updatedData:i,editType:"movePosition",editContext:{featureIndexes:[n.featureIndex],positionIndexes:n.positionIndexes,position:e.mapCoords}})}}},{key:"handlePointerMove",value:function(e,t){var A=this.getCursor(e);t.onUpdateCursor(A)}},{key:"handleStartDragging",value:function(e,t){var A=t.selectedIndexes,n=(0,r.getPickedIntermediateEditHandle)(e.picks);if(A.length&&n){var i=n.properties,a=new o.ImmutableFeatureCollection(t.data).addPosition(i.featureIndex,i.positionIndexes,e.mapCoords).getObject();t.onEdit({updatedData:a,editType:"addPosition",editContext:{featureIndexes:[i.featureIndex],positionIndexes:i.positionIndexes,position:e.mapCoords}})}}},{key:"handleStopDragging",value:function(e,t){var A=t.selectedIndexes,n=(0,r.getPickedEditHandle)(e.picks);if(A.length&&n){var i=n.properties,a=new o.ImmutableFeatureCollection(t.data).replacePosition(i.featureIndex,i.positionIndexes,e.mapCoords).getObject();t.onEdit({updatedData:a,editType:"finishMovePosition",editContext:{featureIndexes:[i.featureIndex],positionIndexes:i.positionIndexes,position:e.mapCoords}})}}},{key:"getCursor",value:function(e){var t=e&&e.picks||[];return(0,r.getPickedEditHandles)(t).length?"cell":null}}])&&l(A.prototype,i),a&&l(A,a),d}(i.GeoJsonEditMode);t.ModifyMode=d},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TranslateMode=void 0;var n=g(A(143)),r=g(A(112)),i=g(A(1153)),o=A(59),a=A(79),s=A(158);function g(e){return e&&e.__esModule?e:{default:e}}function c(e){return(c="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function I(e,t){return!t||"object"!==c(t)&&"function"!==typeof t?C(e):t}function C(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function B(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var p=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(p,e);var t,A,a,g,c=(t=p,function(){var e,A=f(t);if(h()){var n=f(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return I(this,e)});function p(){var e;u(this,p);for(var t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return B(C(e=c.call.apply(c,[this].concat(A))),"_geometryBeforeTranslate",void 0),B(C(e),"_isTranslatable",void 0),e}return A=p,(a=[{key:"handleDragging",value:function(e,t){if(this._isTranslatable){if(this._geometryBeforeTranslate){var A=this.getTranslateAction(e.pointerDownMapCoords,e.mapCoords,"translating",t);A&&t.onEdit(A)}e.cancelPan()}}},{key:"handlePointerMove",value:function(e,t){this._isTranslatable=this.isSelectionPicked(e.pointerDownPicks||e.picks,t),this.updateCursor(t)}},{key:"handleStartDragging",value:function(e,t){this._isTranslatable&&(this._geometryBeforeTranslate=this.getSelectedFeaturesAsFeatureCollection(t))}},{key:"handleStopDragging",value:function(e,t){if(this._geometryBeforeTranslate){var A=this.getTranslateAction(e.pointerDownMapCoords,e.mapCoords,"translated",t);A&&t.onEdit(A),this._geometryBeforeTranslate=null}}},{key:"updateCursor",value:function(e){this._isTranslatable?e.onUpdateCursor("move"):e.onUpdateCursor(null)}},{key:"getTranslateAction",value:function(e,t,A,a){if(!this._geometryBeforeTranslate)return null;for(var g=(0,o.point)(e),c=(0,o.point)(t),u=(0,r.default)(g,c),l=(0,n.default)(g,c),I=(0,i.default)(this._geometryBeforeTranslate,u,l),C=new s.ImmutableFeatureCollection(a.data),h=a.selectedIndexes,f=0;f<h.length;f++){var d=h[f],B=I.features[f];C=C.replaceGeometry(d,B.geometry)}return{updatedData:C.getObject(),editType:A,editContext:{featureIndexes:h}}}}])&&l(A.prototype,a),g&&l(A,g),p}(a.GeoJsonEditMode);t.TranslateMode=p},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DrawPolygonMode=void 0;var n=A(99);function r(e){return(r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return o(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return o(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function g(e,t,A){return(g="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=l(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function c(e,t){return!t||"object"!==r(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function u(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function I(e,t){return(I=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var C=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&I(e,t)}(h,e);var t,A,r,o,C=(t=h,function(){var e,A=l(t);if(u()){var n=l(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return c(this,e)});function h(){return a(this,h),C.apply(this,arguments)}return A=h,(r=[{key:"createTentativeFeature",value:function(e){var t,A=e.lastPointerMoveEvent,n=this.getClickSequence(),r=A?[A.mapCoords]:[];return 1===n.length||2===n.length?t={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[].concat(i(n),r)}}:n.length>2&&(t={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Polygon",coordinates:[[].concat(i(n),r,[n[0]])]}}),t}},{key:"getGuides",value:function(e){var t,A=this.getClickSequence(),n={type:"FeatureCollection",features:[]},r=this.createTentativeFeature(e);r&&n.features.push(r);var o=A.map((function(e,t){return{type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[t]},geometry:{type:"Point",coordinates:e}}}));return(t=n.features).push.apply(t,i(o)),n}},{key:"handleClick",value:function(e,t){var A=e.picks,r=(0,n.getPickedEditHandle)(A),o=!1;r||(this.addClickSequence(e),o=!0);var a=this.getClickSequence();if(a.length>2&&r&&Array.isArray(r.properties.positionIndexes)&&(0===r.properties.positionIndexes[0]||r.properties.positionIndexes[0]===a.length-1)){var s={type:"Polygon",coordinates:[[].concat(i(a),[a[0]])]};this.resetClickSequence();var g=this.getAddFeatureOrBooleanPolygonAction(s,t);g&&t.onEdit(g)}else o&&t.onEdit({updatedData:t.data,editType:"addTentativePosition",editContext:{position:e.mapCoords}})}},{key:"handleKeyUp",value:function(e,t){if("Enter"===e.key){var A=this.getClickSequence();if(A.length>2){var n={type:"Polygon",coordinates:[[].concat(i(A),[A[0]])]};this.resetClickSequence();var r=this.getAddFeatureOrBooleanPolygonAction(n,t);r&&t.onEdit(r)}}}},{key:"handlePointerMove",value:function(e,t){t.onUpdateCursor("cell"),g(l(h.prototype),"handlePointerMove",this).call(this,e,t)}}])&&s(A.prototype,r),o&&s(A,o),h}(A(79).GeoJsonEditMode);t.DrawPolygonMode=C},function(e,t,A){"use strict";function n(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function r(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(){function e(t,A){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),r(this,"objects",void 0),r(this,"originals",void 0),r(this,"updateTrigger",void 0),r(this,"_idToPosition",void 0),r(this,"_getData",void 0),r(this,"_convert",void 0),this.objects=[],this.originals=[],this.updateTrigger=0,this._idToPosition=new Map,this._getData=t,this._convert=A}var t,A,i;return t=e,(A=[{key:"updateAllDeckObjects",value:function(){var e=this;this._getData&&this._convert&&(this.originals.length=0,this.objects.length=0,this._idToPosition.clear(),this._getData().forEach((function(t){e._idToPosition.set(t.id,e.objects.length),e.originals.push(t),e.objects.push(e._convert(t))})),this.triggerUpdate())}},{key:"updateDeckObjectsByIds",value:function(e){var t=this;this._getData&&this._convert&&(e.forEach((function(e){var A=t._idToPosition.get(e);void 0!==A&&(t.objects[A]=t._convert(t.originals[A]))})),this.triggerUpdate())}},{key:"triggerUpdate",value:function(){this.updateTrigger++}},{key:"getDeckObjectById",value:function(e){var t=this._idToPosition.get(e);return void 0!==t?this.objects[t]:null}},{key:"getOriginalById",value:function(e){var t=this._idToPosition.get(e);return void 0!==t?this.originals[t]:null}}])&&n(t.prototype,A),i&&n(t,i),e}();t.default=i},function(e,t){var A=/^[0-9]+$/,n=function(e,t){var n=A.test(e),r=A.test(t);return n&&r&&(e=+e,t=+t),e===t?0:n&&!r?-1:r&&!n?1:e<t?-1:1};e.exports={compareIdentifiers:n,rcompareIdentifiers:function(e,t){return n(t,e)}}},function(e,t,A){var n=A(144);e.exports=function(e,t,A){return 0===n(e,t,A)}},function(e,t,A){var n=A(106);e.exports=function(e,t,A){var r=new n(e,A),i=new n(t,A);return r.compare(i)||r.compareBuild(i)}},function(e,t,A){var n=A(144);e.exports=function(e,t,A){return n(e,t,A)<0}},function(e,t,A){var n=A(144);e.exports=function(e,t,A){return n(e,t,A)>=0}},function(e,t,A){var n=A(144);e.exports=function(e,t,A){return n(e,t,A)<=0}},function(e,t,A){var n=A(642);e.exports=function(e,t){if(e){if("string"===typeof e)return n(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?n(e,t):void 0}}},function(e,t,A){var n=A(504);e.exports=function(e){if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=n(e))){var t=0,A=function(){};return{s:A,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:A}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,i,o=!0,a=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(a)throw i}}}}},function(e,t,A){var n=A(106),r=A(374),i=r.ANY,o=A(145),a=A(375),s=A(373),g=A(501),c=A(503),u=A(502);e.exports=function(e,t,A,l){var I,C,h,f,d;switch(e=new n(e,l),t=new o(t,l),A){case">":I=s,C=c,h=g,f=">",d=">=";break;case"<":I=g,C=u,h=s,f="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(a(e,t,l))return!1;for(var B=function(A){var n=t.set[A],o=null,a=null;return n.forEach((function(e){e.semver===i&&(e=new r(">=0.0.0")),o=o||e,a=a||e,I(e.semver,o.semver,l)?o=e:h(e.semver,a.semver,l)&&(a=e)})),o.operator===f||o.operator===d?{v:!1}:a.operator&&a.operator!==f||!C(e,a.semver)?a.operator===d&&h(e,a.semver)?{v:!1}:void 0:{v:!1}},p=0;p<t.set.length;++p){var E=B(p);if("object"===typeof E)return E.v}return!0}},function(e,t,A){"use strict";A.r(t);var n=A(270),r=A(430),i={centimeters:637100880,centimetres:637100880,degrees:6371008.8/111325,feet:20902260.511392,inches:6371008.8*39.37,kilometers:6371.0088,kilometres:6371.0088,meters:6371008.8,metres:6371008.8,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:6371008.8/1852,radians:1,yards:6371008.8*1.0936};function o(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function a(e,t){void 0===t&&(t={});var A={type:"FeatureCollection"};return t.id&&(A.id=t.id),t.bbox&&(A.bbox=t.bbox),A.features=e,A}function s(e,t){void 0===t&&(t="kilometers");var A=i[t];if(!A)throw new Error(t+" units is invalid");return e*A}function g(e,t){void 0===t&&(t="kilometers");var A=i[t];if(!A)throw new Error(t+" units is invalid");return e/A}function c(e,t){if("Feature"===e.type)t(e,0);else if("FeatureCollection"===e.type)for(var A=0;A<e.features.length&&!1!==t(e.features[A],A);A++);}function u(e,t){var A,n,r,i,o,a,s,g,c,u,l=0,I="FeatureCollection"===e.type,C="Feature"===e.type,h=I?e.features.length:1;for(A=0;A<h;A++){for(a=I?e.features[A].geometry:C?e.geometry:e,g=I?e.features[A].properties:C?e.properties:{},c=I?e.features[A].bbox:C?e.bbox:void 0,u=I?e.features[A].id:C?e.id:void 0,o=(s=!!a&&"GeometryCollection"===a.type)?a.geometries.length:1,r=0;r<o;r++)if(null!==(i=s?a.geometries[r]:a))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,l,g,c,u))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],l,g,c,u))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,l,g,c,u))return!1;l++}}var l=function(){return new I};function I(){this.reset()}I.prototype={constructor:I,reset:function(){this.s=this.t=0},add:function(e){h(C,e,this.t),h(this,C.s,this.s),this.s?this.t+=C.t:this.s=C.t},valueOf:function(){return this.s}};var C=new I;function h(e,t,A){var n=e.s=t+A,r=n-t,i=n-r;e.t=t-i+(A-r)}var f=1e-6,d=Math.PI,B=d/2,p=d/4,E=2*d,Q=180/d,y=d/180,v=Math.abs,m=Math.atan,b=Math.atan2,w=Math.cos,S=(Math.ceil,Math.exp),F=(Math.floor,Math.log),R=(Math.pow,Math.sin),D=(Math.sign,Math.sqrt),G=Math.tan;function k(e){return e>1?0:e<-1?d:Math.acos(e)}function x(e){return e>1?B:e<-1?-B:Math.asin(e)}function N(){}function U(e,t){e&&M.hasOwnProperty(e.type)&&M[e.type](e,t)}var _={Feature:function(e,t){U(e.geometry,t)},FeatureCollection:function(e,t){for(var A=e.features,n=-1,r=A.length;++n<r;)U(A[n].geometry,t)}},M={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)e=A[n],t.point(e[0],e[1],e[2])},LineString:function(e,t){O(e.coordinates,t,0)},MultiLineString:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)O(A[n],t,0)},Polygon:function(e,t){L(e.coordinates,t)},MultiPolygon:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)L(A[n],t)},GeometryCollection:function(e,t){for(var A=e.geometries,n=-1,r=A.length;++n<r;)U(A[n],t)}};function O(e,t,A){var n,r=-1,i=e.length-A;for(t.lineStart();++r<i;)n=e[r],t.point(n[0],n[1],n[2]);t.lineEnd()}function L(e,t){var A=-1,n=e.length;for(t.polygonStart();++A<n;)O(e[A],t,1);t.polygonEnd()}var T=function(e,t){e&&_.hasOwnProperty(e.type)?_[e.type](e,t):U(e,t)};l(),l();function Z(e){return[b(e[1],e[0]),x(e[2])]}function H(e){var t=e[0],A=e[1],n=w(A);return[n*w(t),n*R(t),R(A)]}function Y(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function J(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function j(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function P(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function V(e){var t=D(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}l();var K=function(e,t){function A(A,n){return A=e(A,n),t(A[0],A[1])}return e.invert&&t.invert&&(A.invert=function(A,n){return(A=t.invert(A,n))&&e.invert(A[0],A[1])}),A};function W(e,t){return[e>d?e-E:e<-d?e+E:e,t]}function X(e,t,A){return(e%=E)?t||A?K(z(e),$(t,A)):z(e):t||A?$(t,A):W}function q(e){return function(t,A){return[(t+=e)>d?t-E:t<-d?t+E:t,A]}}function z(e){var t=q(e);return t.invert=q(-e),t}function $(e,t){var A=w(e),n=R(e),r=w(t),i=R(t);function o(e,t){var o=w(t),a=w(e)*o,s=R(e)*o,g=R(t),c=g*A+a*n;return[b(s*r-c*i,a*A-g*n),x(c*r+s*i)]}return o.invert=function(e,t){var o=w(t),a=w(e)*o,s=R(e)*o,g=R(t),c=g*r-s*i;return[b(s*r+g*i,a*A+c*n),x(c*A-a*n)]},o}W.invert=W;function ee(e,t,A,n,r,i){if(A){var o=w(t),a=R(t),s=n*A;null==r?(r=t+n*E,i=t-s/2):(r=te(o,r),i=te(o,i),(n>0?r<i:r>i)&&(r+=n*E));for(var g,c=r;n>0?c>i:c<i;c-=s)g=Z([o,-a*w(c),-a*R(c)]),e.point(g[0],g[1])}}function te(e,t){(t=H(t))[0]-=e,V(t);var A=k(-t[1]);return((-t[2]<0?-A:A)+E-f)%E}var Ae=function(){var e,t=[];return{point:function(t,A){e.push([t,A])},lineStart:function(){t.push(e=[])},lineEnd:N,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var A=t;return t=[],e=null,A}}},ne=function(e,t){return v(e[0]-t[0])<f&&v(e[1]-t[1])<f};function re(e,t,A,n){this.x=e,this.z=t,this.o=A,this.e=n,this.v=!1,this.n=this.p=null}var ie=function(e,t,A,n,r){var i,o,a=[],s=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,A,n=e[0],o=e[t];if(ne(n,o)){for(r.lineStart(),i=0;i<t;++i)r.point((n=e[i])[0],n[1]);r.lineEnd()}else a.push(A=new re(n,e,null,!0)),s.push(A.o=new re(n,null,A,!1)),a.push(A=new re(o,e,null,!1)),s.push(A.o=new re(o,null,A,!0))}})),a.length){for(s.sort(t),oe(a),oe(s),i=0,o=s.length;i<o;++i)s[i].e=A=!A;for(var g,c,u=a[0];;){for(var l=u,I=!0;l.v;)if((l=l.n)===u)return;g=l.z,r.lineStart();do{if(l.v=l.o.v=!0,l.e){if(I)for(i=0,o=g.length;i<o;++i)r.point((c=g[i])[0],c[1]);else n(l.x,l.n.x,1,r);l=l.n}else{if(I)for(g=l.p.z,i=g.length-1;i>=0;--i)r.point((c=g[i])[0],c[1]);else n(l.x,l.p.x,-1,r);l=l.p}g=(l=l.o).z,I=!I}while(!l.v);r.lineEnd()}}};function oe(e){if(t=e.length){for(var t,A,n=0,r=e[0];++n<t;)r.n=A=e[n],A.p=r,r=A;r.n=A=e[0],A.p=r}}var ae=function(e,t){return e<t?-1:e>t?1:e>=t?0:NaN};var se=function(e){var t;return 1===e.length&&(t=e,e=function(e,A){return ae(t(e),A)}),{left:function(t,A,n,r){for(null==n&&(n=0),null==r&&(r=t.length);n<r;){var i=n+r>>>1;e(t[i],A)<0?n=i+1:r=i}return n},right:function(t,A,n,r){for(null==n&&(n=0),null==r&&(r=t.length);n<r;){var i=n+r>>>1;e(t[i],A)>0?r=i:n=i+1}return n}}}(ae);se.right,se.left;var ge=Array.prototype;ge.slice,ge.map,Math.sqrt(50),Math.sqrt(10),Math.sqrt(2);var ce=function(e){for(var t,A,n,r=e.length,i=-1,o=0;++i<r;)o+=e[i].length;for(A=new Array(o);--r>=0;)for(t=(n=e[r]).length;--t>=0;)A[--o]=n[t];return A};function ue(e,t,A,n){function r(r,i){return e<=r&&r<=A&&t<=i&&i<=n}function i(r,i,a,g){var c=0,u=0;if(null==r||(c=o(r,a))!==(u=o(i,a))||s(r,i)<0^a>0)do{g.point(0===c||3===c?e:A,c>1?n:t)}while((c=(c+a+4)%4)!==u);else g.point(i[0],i[1])}function o(n,r){return v(n[0]-e)<f?r>0?0:3:v(n[0]-A)<f?r>0?2:1:v(n[1]-t)<f?r>0?1:0:r>0?3:2}function a(e,t){return s(e.x,t.x)}function s(e,t){var A=o(e,1),n=o(t,1);return A!==n?A-n:0===A?t[1]-e[1]:1===A?e[0]-t[0]:2===A?e[1]-t[1]:t[0]-e[0]}return function(o){var s,g,c,u,l,I,C,h,f,d,B,p=o,E=Ae(),Q={point:y,lineStart:function(){Q.point=v,g&&g.push(c=[]);d=!0,f=!1,C=h=NaN},lineEnd:function(){s&&(v(u,l),I&&f&&E.rejoin(),s.push(E.result()));Q.point=y,f&&p.lineEnd()},polygonStart:function(){p=E,s=[],g=[],B=!0},polygonEnd:function(){var t=function(){for(var t=0,A=0,r=g.length;A<r;++A)for(var i,o,a=g[A],s=1,c=a.length,u=a[0],l=u[0],I=u[1];s<c;++s)i=l,o=I,u=a[s],l=u[0],I=u[1],o<=n?I>n&&(l-i)*(n-o)>(I-o)*(e-i)&&++t:I<=n&&(l-i)*(n-o)<(I-o)*(e-i)&&--t;return t}(),A=B&&t,r=(s=ce(s)).length;(A||r)&&(o.polygonStart(),A&&(o.lineStart(),i(null,null,1,o),o.lineEnd()),r&&ie(s,a,t,i,o),o.polygonEnd());p=o,s=g=c=null}};function y(e,t){r(e,t)&&p.point(e,t)}function v(i,o){var a=r(i,o);if(g&&c.push([i,o]),d)u=i,l=o,I=a,d=!1,a&&(p.lineStart(),p.point(i,o));else if(a&&f)p.point(i,o);else{var s=[C=Math.max(-1e9,Math.min(1e9,C)),h=Math.max(-1e9,Math.min(1e9,h))],E=[i=Math.max(-1e9,Math.min(1e9,i)),o=Math.max(-1e9,Math.min(1e9,o))];!function(e,t,A,n,r,i){var o,a=e[0],s=e[1],g=0,c=1,u=t[0]-a,l=t[1]-s;if(o=A-a,u||!(o>0)){if(o/=u,u<0){if(o<g)return;o<c&&(c=o)}else if(u>0){if(o>c)return;o>g&&(g=o)}if(o=r-a,u||!(o<0)){if(o/=u,u<0){if(o>c)return;o>g&&(g=o)}else if(u>0){if(o<g)return;o<c&&(c=o)}if(o=n-s,l||!(o>0)){if(o/=l,l<0){if(o<g)return;o<c&&(c=o)}else if(l>0){if(o>c)return;o>g&&(g=o)}if(o=i-s,l||!(o<0)){if(o/=l,l<0){if(o>c)return;o>g&&(g=o)}else if(l>0){if(o<g)return;o<c&&(c=o)}return g>0&&(e[0]=a+g*u,e[1]=s+g*l),c<1&&(t[0]=a+c*u,t[1]=s+c*l),!0}}}}}(s,E,e,t,A,n)?a&&(p.lineStart(),p.point(i,o),B=!1):(f||(p.lineStart(),p.point(s[0],s[1])),p.point(E[0],E[1]),a||p.lineEnd(),B=!1)}C=i,h=o,f=a}return Q}}var le=l(),Ie=function(e,t){var A=t[0],n=t[1],r=[R(A),-w(A),0],i=0,o=0;le.reset();for(var a=0,s=e.length;a<s;++a)if(c=(g=e[a]).length)for(var g,c,u=g[c-1],l=u[0],I=u[1]/2+p,C=R(I),h=w(I),B=0;B<c;++B,l=y,C=m,h=S,u=Q){var Q=g[B],y=Q[0],v=Q[1]/2+p,m=R(v),S=w(v),F=y-l,D=F>=0?1:-1,G=D*F,k=G>d,N=C*m;if(le.add(b(N*D*R(G),h*S+N*w(G))),i+=k?F+D*E:F,k^l>=A^y>=A){var U=J(H(u),H(Q));V(U);var _=J(r,U);V(_);var M=(k^F>=0?-1:1)*x(_[2]);(n>M||n===M&&(U[0]||U[1]))&&(o+=k^F>=0?1:-1)}}return(i<-f||i<f&&le<-f)^1&o};l();var Ce=function(e){return e};l(),l();var he=1/0,fe=he,de=-he,Be=de;var pe={point:function(e,t){e<he&&(he=e);e>de&&(de=e);t<fe&&(fe=t);t>Be&&(Be=t)},lineStart:N,lineEnd:N,polygonStart:N,polygonEnd:N,result:function(){var e=[[he,fe],[de,Be]];return de=Be=-(fe=he=1/0),e}};function Ee(e){this._context=e}Ee.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,E)}},result:N};l();function Qe(){this._string=[]}function ye(e){return"m0,"+e+"a"+e+","+e+" 0 1,1 0,"+-2*e+"a"+e+","+e+" 0 1,1 0,"+2*e+"z"}Qe.prototype={_radius:4.5,_circle:ye(4.5),pointRadius:function(e){return(e=+e)!==this._radius&&(this._radius=e,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._string.push("M",e,",",t),this._point=1;break;case 1:this._string.push("L",e,",",t);break;default:null==this._circle&&(this._circle=ye(this._radius)),this._string.push("M",e,",",t,this._circle)}},result:function(){if(this._string.length){var e=this._string.join("");return this._string=[],e}return null}};var ve=function(e,t,A,n){return function(r,i){var o,a,s,g=t(i),c=r.invert(n[0],n[1]),u=Ae(),l=t(u),I=!1,C={point:h,lineStart:d,lineEnd:B,polygonStart:function(){C.point=p,C.lineStart=E,C.lineEnd=Q,a=[],o=[]},polygonEnd:function(){C.point=h,C.lineStart=d,C.lineEnd=B,a=ce(a);var e=Ie(o,c);a.length?(I||(i.polygonStart(),I=!0),ie(a,be,e,A,i)):e&&(I||(i.polygonStart(),I=!0),i.lineStart(),A(null,null,1,i),i.lineEnd()),I&&(i.polygonEnd(),I=!1),a=o=null},sphere:function(){i.polygonStart(),i.lineStart(),A(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(t,A){var n=r(t,A);e(t=n[0],A=n[1])&&i.point(t,A)}function f(e,t){var A=r(e,t);g.point(A[0],A[1])}function d(){C.point=f,g.lineStart()}function B(){C.point=h,g.lineEnd()}function p(e,t){s.push([e,t]);var A=r(e,t);l.point(A[0],A[1])}function E(){l.lineStart(),s=[]}function Q(){p(s[0][0],s[0][1]),l.lineEnd();var e,t,A,n,r=l.clean(),g=u.result(),c=g.length;if(s.pop(),o.push(s),s=null,c)if(1&r){if((t=(A=g[0]).length-1)>0){for(I||(i.polygonStart(),I=!0),i.lineStart(),e=0;e<t;++e)i.point((n=A[e])[0],n[1]);i.lineEnd()}}else c>1&&2&r&&g.push(g.pop().concat(g.shift())),a.push(g.filter(me))}return C}};function me(e){return e.length>1}function be(e,t){return((e=e.x)[0]<0?e[1]-B-f:B-e[1])-((t=t.x)[0]<0?t[1]-B-f:B-t[1])}var we=ve((function(){return!0}),(function(e){var t,A=NaN,n=NaN,r=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(i,o){var a=i>0?d:-d,s=v(i-A);v(s-d)<f?(e.point(A,n=(n+o)/2>0?B:-B),e.point(r,n),e.lineEnd(),e.lineStart(),e.point(a,n),e.point(i,n),t=0):r!==a&&s>=d&&(v(A-r)<f&&(A-=r*f),v(i-a)<f&&(i-=a*f),n=function(e,t,A,n){var r,i,o=R(e-A);return v(o)>f?m((R(t)*(i=w(n))*R(A)-R(n)*(r=w(t))*R(e))/(r*i*o)):(t+n)/2}(A,n,i,o),e.point(r,n),e.lineEnd(),e.lineStart(),e.point(a,n),t=0),e.point(A=i,n=o),r=a},lineEnd:function(){e.lineEnd(),A=n=NaN},clean:function(){return 2-t}}}),(function(e,t,A,n){var r;if(null==e)r=A*B,n.point(-d,r),n.point(0,r),n.point(d,r),n.point(d,0),n.point(d,-r),n.point(0,-r),n.point(-d,-r),n.point(-d,0),n.point(-d,r);else if(v(e[0]-t[0])>f){var i=e[0]<t[0]?d:-d;r=A*i/2,n.point(-i,r),n.point(0,r),n.point(i,r)}else n.point(t[0],t[1])}),[-d,-B]);var Se=function(e,t){var A=w(e),n=A>0,r=v(A)>f;function i(e,t){return w(e)*w(t)>A}function o(e,t,n){var r=[1,0,0],i=J(H(e),H(t)),o=Y(i,i),a=i[0],s=o-a*a;if(!s)return!n&&e;var g=A*o/s,c=-A*a/s,u=J(r,i),l=P(r,g);j(l,P(i,c));var I=u,C=Y(l,I),h=Y(I,I),B=C*C-h*(Y(l,l)-1);if(!(B<0)){var p=D(B),E=P(I,(-C-p)/h);if(j(E,l),E=Z(E),!n)return E;var Q,y=e[0],m=t[0],b=e[1],w=t[1];m<y&&(Q=y,y=m,m=Q);var S=m-y,F=v(S-d)<f;if(!F&&w<b&&(Q=b,b=w,w=Q),F||S<f?F?b+w>0^E[1]<(v(E[0]-y)<f?b:w):b<=E[1]&&E[1]<=w:S>d^(y<=E[0]&&E[0]<=m)){var R=P(I,(-C+p)/h);return j(R,l),[E,Z(R)]}}}function a(t,A){var r=n?e:d-e,i=0;return t<-r?i|=1:t>r&&(i|=2),A<-r?i|=4:A>r&&(i|=8),i}return ve(i,(function(e){var t,A,s,g,c;return{lineStart:function(){g=s=!1,c=1},point:function(u,l){var I,C=[u,l],h=i(u,l),B=n?h?0:a(u,l):h?a(u+(u<0?d:-d),l):0;if(!t&&(g=s=h)&&e.lineStart(),h!==s&&(!(I=o(t,C))||ne(t,I)||ne(C,I))&&(C[0]+=f,C[1]+=f,h=i(C[0],C[1])),h!==s)c=0,h?(e.lineStart(),I=o(C,t),e.point(I[0],I[1])):(I=o(t,C),e.point(I[0],I[1]),e.lineEnd()),t=I;else if(r&&t&&n^h){var p;B&A||!(p=o(C,t,!0))||(c=0,n?(e.lineStart(),e.point(p[0][0],p[0][1]),e.point(p[1][0],p[1][1]),e.lineEnd()):(e.point(p[1][0],p[1][1]),e.lineEnd(),e.lineStart(),e.point(p[0][0],p[0][1])))}!h||t&&ne(t,C)||e.point(C[0],C[1]),t=C,s=h,A=B},lineEnd:function(){s&&e.lineEnd(),t=null},clean:function(){return c|(g&&s)<<1}}}),(function(A,n,r,i){ee(i,e,t,r,A,n)}),n?[0,-e]:[-d,e-d])};function Fe(e){return function(t){var A=new Re;for(var n in e)A[n]=e[n];return A.stream=t,A}}function Re(){}function De(e,t,A){var n=t[1][0]-t[0][0],r=t[1][1]-t[0][1],i=e.clipExtent&&e.clipExtent();e.scale(150).translate([0,0]),null!=i&&e.clipExtent(null),T(A,e.stream(pe));var o=pe.result(),a=Math.min(n/(o[1][0]-o[0][0]),r/(o[1][1]-o[0][1])),s=+t[0][0]+(n-a*(o[1][0]+o[0][0]))/2,g=+t[0][1]+(r-a*(o[1][1]+o[0][1]))/2;return null!=i&&e.clipExtent(i),e.scale(150*a).translate([s,g])}function Ge(e,t,A){return De(e,[[0,0],t],A)}Re.prototype={constructor:Re,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var ke=w(30*y),xe=function(e,t){return+t?function(e,t){function A(n,r,i,o,a,s,g,c,u,l,I,C,h,d){var B=g-n,p=c-r,E=B*B+p*p;if(E>4*t&&h--){var Q=o+l,y=a+I,m=s+C,w=D(Q*Q+y*y+m*m),S=x(m/=w),F=v(v(m)-1)<f||v(i-u)<f?(i+u)/2:b(y,Q),R=e(F,S),G=R[0],k=R[1],N=G-n,U=k-r,_=p*N-B*U;(_*_/E>t||v((B*N+p*U)/E-.5)>.3||o*l+a*I+s*C<ke)&&(A(n,r,i,o,a,s,G,k,F,Q/=w,y/=w,m,h,d),d.point(G,k),A(G,k,F,Q,y,m,g,c,u,l,I,C,h,d))}}return function(t){var n,r,i,o,a,s,g,c,u,l,I,C,h={point:f,lineStart:d,lineEnd:p,polygonStart:function(){t.polygonStart(),h.lineStart=E},polygonEnd:function(){t.polygonEnd(),h.lineStart=d}};function f(A,n){A=e(A,n),t.point(A[0],A[1])}function d(){c=NaN,h.point=B,t.lineStart()}function B(n,r){var i=H([n,r]),o=e(n,r);A(c,u,g,l,I,C,c=o[0],u=o[1],g=n,l=i[0],I=i[1],C=i[2],16,t),t.point(c,u)}function p(){h.point=f,t.lineEnd()}function E(){d(),h.point=Q,h.lineEnd=y}function Q(e,t){B(n=e,t),r=c,i=u,o=l,a=I,s=C,h.point=B}function y(){A(c,u,g,l,I,C,r,i,n,o,a,s,16,t),h.lineEnd=p,p()}return h}}(e,t):function(e){return Fe({point:function(t,A){t=e(t,A),this.stream.point(t[0],t[1])}})}(e)};var Ne=Fe({point:function(e,t){this.stream.point(e*y,t*y)}});function Ue(e){return _e((function(){return e}))()}function _e(e){var t,A,n,r,i,o,a,s,g,c,u=150,l=480,I=250,C=0,h=0,f=0,d=0,B=0,p=null,E=we,v=null,m=Ce,b=.5,w=xe(R,b);function S(e){return[(e=i(e[0]*y,e[1]*y))[0]*u+A,n-e[1]*u]}function F(e){return(e=i.invert((e[0]-A)/u,(n-e[1])/u))&&[e[0]*Q,e[1]*Q]}function R(e,r){return[(e=t(e,r))[0]*u+A,n-e[1]*u]}function G(){i=K(r=X(f,d,B),t);var e=t(C,h);return A=l-e[0]*u,n=I+e[1]*u,k()}function k(){return g=c=null,S}return S.stream=function(e){return g&&c===e?g:g=Ne(E(r,w(m(c=e))))},S.clipAngle=function(e){return arguments.length?(E=+e?Se(p=e*y,6*y):(p=null,we),k()):p*Q},S.clipExtent=function(e){return arguments.length?(m=null==e?(v=o=a=s=null,Ce):ue(v=+e[0][0],o=+e[0][1],a=+e[1][0],s=+e[1][1]),k()):null==v?null:[[v,o],[a,s]]},S.scale=function(e){return arguments.length?(u=+e,G()):u},S.translate=function(e){return arguments.length?(l=+e[0],I=+e[1],G()):[l,I]},S.center=function(e){return arguments.length?(C=e[0]%360*y,h=e[1]%360*y,G()):[C*Q,h*Q]},S.rotate=function(e){return arguments.length?(f=e[0]%360*y,d=e[1]%360*y,B=e.length>2?e[2]%360*y:0,G()):[f*Q,d*Q,B*Q]},S.precision=function(e){return arguments.length?(w=xe(R,b=e*e),k()):D(b)},S.fitExtent=function(e,t){return De(S,e,t)},S.fitSize=function(e,t){return Ge(S,e,t)},function(){return t=e.apply(this,arguments),S.invert=t.invert&&F,G()}}function Me(e){return function(t,A){var n=w(t),r=w(A),i=e(n*r);return[i*r*R(t),i*R(A)]}}function Oe(e){return function(t,A){var n=D(t*t+A*A),r=e(n),i=R(r),o=w(r);return[b(t*i,n*o),x(n&&A*i/n)]}}var Le=Me((function(e){return D(2/(1+e))}));Le.invert=Oe((function(e){return 2*x(e/2)}));var Te=Me((function(e){return(e=k(e))&&e/R(e)}));Te.invert=Oe((function(e){return e}));function Ze(e,t){return[e,F(G((B+t)/2))]}Ze.invert=function(e,t){return[e,2*m(S(t))-B]};function He(e,t){return[e,t]}He.invert=He;function Ye(e,t){var A=w(t),n=w(e)*A;return[A*R(e)/n,R(t)/n]}Ye.invert=Oe(m);function Je(e,t){var A=t*t,n=A*A;return[e*(.8707-.131979*A+n*(n*(.003971*A-.001529*n)-.013791)),t*(1.007226+A*(.015085+n*(.028874*A-.044475-.005916*n)))]}Je.invert=function(e,t){var A,n=t,r=25;do{var i=n*n,o=i*i;n-=A=(n*(1.007226+i*(.015085+o*(.028874*i-.044475-.005916*o)))-t)/(1.007226+i*(.045255+o*(.259866*i-.311325-.005916*11*o)))}while(v(A)>f&&--r>0);return[e/(.8707+(i=n*n)*(i*(i*i*i*(.003971-.001529*i)-.013791)-.131979)),n]};function je(e,t){return[w(t)*R(e),R(t)]}je.invert=Oe(x);function Pe(e,t){var A=w(t),n=1+w(e)*A;return[A*R(e)/n,R(t)/n]}Pe.invert=Oe((function(e){return 2*m(e)}));function Ve(e,t){return[F(G((B+t)/2)),-e]}Ve.invert=function(e,t){return[-t,2*m(S(e))-B]};function Ke(e,t,A,i){var c=e.properties||{},l="Feature"===e.type?e.geometry:e;if("GeometryCollection"===l.type){var I=[];return u(e,(function(e){var n=Ke(e,t,A,i);n&&I.push(n)})),a(I)}var C=function(e){var t=Object(n.default)(e).geometry.coordinates,A=[-t[0],-t[1]];return Ue(Te).scale(79.4188).clipAngle(179.999).rotate(A).scale(6371008.8)}(l),h={type:l.type,coordinates:We(l.coordinates,C)},f=(new r.GeoJSONReader).read(h),d=s(g(t,A),"meters"),B=r.BufferOp.bufferOp(f,d,i);if(!function e(t){return Array.isArray(t[0])?e(t[0]):isNaN(t[0])}((B=(new r.GeoJSONWriter).write(B)).coordinates))return o({type:B.type,coordinates:Xe(B.coordinates,C)},c)}function We(e,t){return"object"!==typeof e[0]?t(e):e.map((function(e){return We(e,t)}))}function Xe(e,t){return"object"!==typeof e[0]?t.invert(e):e.map((function(e){return Xe(e,t)}))}t.default=function(e,t,A){var n=(A=A||{}).units||"kilometers",r=A.steps||8;if(!e)throw new Error("geojson is required");if("object"!==typeof A)throw new Error("options must be an object");if("number"!==typeof r)throw new Error("steps must be an number");if(void 0===t)throw new Error("radius is required");if(r<=0)throw new Error("steps must be greater than 0");var i=[];switch(e.type){case"GeometryCollection":return u(e,(function(e){var A=Ke(e,t,n,r);A&&i.push(A)})),a(i);case"FeatureCollection":return c(e,(function(e){var A=Ke(e,t,n,r);A&&c(A,(function(e){e&&i.push(e)}))})),a(i)}return Ke(e,t,n,r)}},function(e,t,A){"use strict";var n=A(3),r=A.n(n),i=A(12),o=A(6),a=A(7),s=A(1),g=A(4),c=A(25),u=A(170),l=A(115),I=new Map;function C(e){Object(l.a)(e.source&&!e.url||!e.source&&e.url);var t=I.get(e.source||e.url);return t||(e.url&&(t=function(e){if(!e.startsWith("http"))return e;return h((t=e,"try {\n importScripts('".concat(t,"');\n} catch (error) {\n console.error(error);\n throw error;\n}")));var t}(e.url),I.set(e.url,t)),e.source&&(t=h(e.source),I.set(e.source,t))),Object(l.a)(t),t}function h(e){var t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function f(e){return!!e&&(e instanceof ArrayBuffer||("undefined"!==typeof MessagePort&&e instanceof MessagePort||("undefined"!==typeof ImageBitmap&&e instanceof ImageBitmap||"undefined"!==typeof OffscreenCanvas&&e instanceof OffscreenCanvas)))}var d=function(){},B=function(){function e(t){Object(s.a)(this,e),Object(c.a)(this,"name",void 0),Object(c.a)(this,"source",void 0),Object(c.a)(this,"url",void 0),Object(c.a)(this,"terminated",!1),Object(c.a)(this,"worker",void 0),Object(c.a)(this,"onMessage",void 0),Object(c.a)(this,"onError",void 0),Object(c.a)(this,"_loadableURL","");var A=t.name,n=t.source,r=t.url;Object(l.a)(n||r),this.name=A,this.source=n,this.url=r,this.onMessage=d,this.onError=function(e){return console.log(e)},this.worker=this._createBrowserWorker()}return Object(g.a)(e,null,[{key:"isSupported",value:function(){return"undefined"!==typeof Worker}}]),Object(g.a)(e,[{key:"destroy",value:function(){this.onMessage=d,this.onError=d,this.worker.terminate(),this.terminated=!0}},{key:"postMessage",value:function(e,t){t=t||function e(t){var A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0,r=n||new Set;if(t){if(f(t))r.add(t);else if(f(t.buffer))r.add(t.buffer);else if(ArrayBuffer.isView(t));else if(A&&"object"===typeof t)for(var i in t)e(t[i],A,r)}else;return void 0===n?Array.from(r):[]}(e),this.worker.postMessage(e,t)}},{key:"_getErrorFromErrorEvent",value:function(e){var t="Failed to load ";return t+="worker ".concat(this.name,". "),e.message&&(t+="".concat(e.message," in ")),e.lineno&&(t+=":".concat(e.lineno,":").concat(e.colno)),new Error(t)}},{key:"_createBrowserWorker",value:function(){var e=this;this._loadableURL=C({source:this.source,url:this.url});var t=new Worker(this._loadableURL,{name:this.name});return t.onmessage=function(t){t.data?e.onMessage(t.data):e.onError(new Error("No data received"))},t.onerror=function(t){e.onError(e._getErrorFromErrorEvent(t)),e.terminated=!0},t.onmessageerror=function(e){return console.error(e)},t}},{key:"isRunning",get:function(){return Boolean(this.onMessage)}}]),e}(),p=function(){function e(t,A){var n=this;Object(s.a)(this,e),Object(c.a)(this,"name",void 0),Object(c.a)(this,"workerThread",void 0),Object(c.a)(this,"isRunning",void 0),Object(c.a)(this,"result",void 0),Object(c.a)(this,"_resolve",void 0),Object(c.a)(this,"_reject",void 0),this.name=t,this.workerThread=A,this.isRunning=!0,this._resolve=function(){},this._reject=function(){},this.result=new Promise((function(e,t){n._resolve=e,n._reject=t}))}return Object(g.a)(e,[{key:"postMessage",value:function(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}},{key:"done",value:function(e){Object(l.a)(this.isRunning),this.isRunning=!1,this._resolve(e)}},{key:"error",value:function(e){Object(l.a)(this.isRunning),this.isRunning=!1,this._reject(e)}}]),e}(),E=function(){function e(t){Object(s.a)(this,e),Object(c.a)(this,"name","unnamed"),Object(c.a)(this,"source",void 0),Object(c.a)(this,"url",void 0),Object(c.a)(this,"maxConcurrency",1),Object(c.a)(this,"maxMobileConcurrency",1),Object(c.a)(this,"onDebug",(function(){})),Object(c.a)(this,"reuseWorkers",!0),Object(c.a)(this,"props",{}),Object(c.a)(this,"jobQueue",[]),Object(c.a)(this,"idleQueue",[]),Object(c.a)(this,"count",0),Object(c.a)(this,"isDestroyed",!1),this.source=t.source,this.url=t.url,this.setProps(t)}return Object(g.a)(e,[{key:"destroy",value:function(){this.idleQueue.forEach((function(e){return e.destroy()})),this.isDestroyed=!0}},{key:"setProps",value:function(e){this.props=Object(a.a)({},this.props,{},e),void 0!==e.name&&(this.name=e.name),void 0!==e.maxConcurrency&&(this.maxConcurrency=e.maxConcurrency),void 0!==e.maxMobileConcurrency&&(this.maxMobileConcurrency=e.maxMobileConcurrency),void 0!==e.reuseWorkers&&(this.reuseWorkers=e.reuseWorkers),void 0!==e.onDebug&&(this.onDebug=e.onDebug)}},{key:"startJob",value:function(){var e=Object(i.a)(r.a.mark((function e(t){var A,n,i,o=this,a=arguments;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=a.length>1&&void 0!==a[1]?a[1]:function(e,t,A){return e.done(A)},n=a.length>2&&void 0!==a[2]?a[2]:function(e,t){return e.error(t)},i=new Promise((function(e){return o.jobQueue.push({name:t,onMessage:A,onError:n,onStart:e}),o})),this._startQueuedJob(),e.next=6,i;case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"_startQueuedJob",value:function(){var e=Object(i.a)(r.a.mark((function e(){var t,A,n;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.jobQueue.length){e.next=2;break}return e.abrupt("return");case 2:if(t=this._getAvailableWorker()){e.next=5;break}return e.abrupt("return");case 5:if(!(A=this.jobQueue.shift())){e.next=18;break}return this.onDebug({message:"Starting job",name:A.name,workerThread:t,backlog:this.jobQueue.length}),n=new p(A.name,t),t.onMessage=function(e){return A.onMessage(n,e.type,e.payload)},t.onError=function(e){return A.onError(n,e)},A.onStart(n),e.prev=12,e.next=15,n.result;case 15:return e.prev=15,this.returnWorkerToQueue(t),e.finish(15);case 18:case"end":return e.stop()}}),e,this,[[12,,15,18]])})));return function(){return e.apply(this,arguments)}}()},{key:"returnWorkerToQueue",value:function(e){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(e.destroy(),this.count--):this.idleQueue.push(e),this.isDestroyed||this._startQueuedJob()}},{key:"_getAvailableWorker",value:function(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count<this._getMaxConcurrency()){this.count++;var e="".concat(this.name.toLowerCase()," (#").concat(this.count," of ").concat(this.maxConcurrency,")");return new B({name:e,source:this.source,url:this.url})}return null}},{key:"_getMaxConcurrency",value:function(){return u.c?this.maxMobileConcurrency:this.maxConcurrency}}]),e}(),Q={maxConcurrency:3,maxMobileConcurrency:1,onDebug:function(){},reuseWorkers:!0},y=function(){function e(t){Object(s.a)(this,e),Object(c.a)(this,"props",void 0),Object(c.a)(this,"workerPools",new Map),this.props=Object(a.a)({},Q),this.setProps(t),this.workerPools=new Map}return Object(g.a)(e,null,[{key:"isSupported",value:function(){return B.isSupported()}},{key:"getWorkerFarm",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e._workerFarm=e._workerFarm||new e({}),e._workerFarm.setProps(t),e._workerFarm}}]),Object(g.a)(e,[{key:"destroy",value:function(){var e,t=Object(o.a)(this.workerPools.values());try{for(t.s();!(e=t.n()).done;){e.value.destroy()}}catch(A){t.e(A)}finally{t.f()}}},{key:"setProps",value:function(e){this.props=Object(a.a)({},this.props,{},e);var t,A=Object(o.a)(this.workerPools.values());try{for(A.s();!(t=A.n()).done;){t.value.setProps(this._getWorkerPoolProps())}}catch(n){A.e(n)}finally{A.f()}}},{key:"getWorkerPool",value:function(e){var t=e.name,A=e.source,n=e.url,r=this.workerPools.get(t);return r||((r=new E({name:t,source:A,url:n})).setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}},{key:"_getWorkerPoolProps",value:function(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}]),e}();Object(c.a)(y,"_workerFarm",void 0);function v(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t[e.id]||{},n="".concat(e.id,"-worker.js"),r=A.workerUrl;if("test"===t._workerType&&(r="modules/".concat(e.module,"/dist/").concat(n)),!r){var i=e.version;"latest"===i&&(i="latest");var o=i?"@".concat(i):"";r="https://unpkg.com/@loaders.gl/".concat(e.module).concat(o,"/dist/").concat(n)}return Object(l.a)(r),r}function m(e,t){return!!y.isSupported()&&(e.worker&&(null===t||void 0===t?void 0:t.worker))}function b(e,t,A,n,r){return w.apply(this,arguments)}function w(){return(w=Object(i.a)(r.a.mark((function e(t,A,n,i,o){var a,s,g,c,u,l;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.id,s=v(t,n),g=y.getWorkerFarm(n),c=g.getWorkerPool({name:a,url:s}),n=JSON.parse(JSON.stringify(n)),e.next=7,c.startJob("process-on-worker",S.bind(null,o));case 7:return(u=e.sent).postMessage("process",{input:A,options:n}),e.next=11,u.result;case 11:return l=e.sent,e.next=14,l.result;case 14:return e.abrupt("return",e.sent);case 15:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function S(e,t,A,n){return F.apply(this,arguments)}function F(){return(F=Object(i.a)(r.a.mark((function e(t,A,n,i){var o,a,s,g,c;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=n,e.next="done"===e.t0?3:"error"===e.t0?5:"process"===e.t0?7:20;break;case 3:return A.done(i),e.abrupt("break",21);case 5:return A.error(i.error),e.abrupt("break",21);case 7:return o=i.id,a=i.input,s=i.options,e.prev=8,e.next=11,t(a,s);case 11:g=e.sent,A.postMessage("done",{id:o,result:g}),e.next=19;break;case 15:e.prev=15,e.t1=e.catch(8),c=e.t1 instanceof Error?e.t1.message:"unknown error",A.postMessage("error",{id:o,error:c});case 19:return e.abrupt("break",21);case 20:console.warn("parse-with-worker unknown message ".concat(n));case 21:case"end":return e.stop()}}),e,null,[[8,15]])})))).apply(this,arguments)}A.d(t,"a",(function(){return m})),A.d(t,"b",(function(){return b}))},function(e,t,A){"use strict";A.r(t);var n={centimeters:637100880,centimetres:637100880,degrees:6371008.8/111325,feet:20902260.511392,inches:6371008.8*39.37,kilometers:6371.0088,kilometres:6371.0088,meters:6371008.8,metres:6371008.8,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:6371008.8/1852,radians:1,yards:6371008.8*1.0936};function r(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function i(e,t,A){if(void 0===A&&(A={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!c(e[0])||!c(e[1]))throw new Error("coordinates must contain numbers");return r({type:"Point",coordinates:e},t,A)}function o(e,t,A){void 0===A&&(A={});for(var n=0,i=e;n<i.length;n++){var o=i[n];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var a=0;a<o[o.length-1].length;a++)if(o[o.length-1][a]!==o[0][a])throw new Error("First and last Position are not equivalent.")}return r({type:"Polygon",coordinates:e},t,A)}function a(e,t){void 0===t&&(t="kilometers");var A=n[t];if(!A)throw new Error(t+" units is invalid");return e/A}function s(e){return 180*(e%(2*Math.PI))/Math.PI}function g(e){return e%360*Math.PI/180}function c(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function u(e,t,A,n){void 0===n&&(n={});var r=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")}(e),o=g(r[0]),c=g(r[1]),u=g(A),l=a(t,n.units),I=Math.asin(Math.sin(c)*Math.cos(l)+Math.cos(c)*Math.sin(l)*Math.cos(u));return i([s(o+Math.atan2(Math.sin(u)*Math.sin(l)*Math.cos(c),Math.cos(l)-Math.sin(c)*Math.sin(I))),s(I)],n.properties)}t.default=function(e,t,A){void 0===A&&(A={});for(var n=A.steps||64,r=A.properties?A.properties:!Array.isArray(e)&&"Feature"===e.type&&e.properties?e.properties:{},i=[],a=0;a<n;a++)i.push(u(e,t,-360*a/n,A).geometry.coordinates);return i.push(i[0]),o([i],r)}},function(e,t,A){"use strict";A.r(t);function n(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function r(e,t,A){if(void 0===A&&(A={}),e.length<2)throw new Error("coordinates must be an array of two or more positions");return n({type:"LineString",coordinates:e},t,A)}function i(e,t){void 0===t&&(t={});var A={type:"FeatureCollection"};return t.id&&(A.id=t.id),t.bbox&&(A.bbox=t.bbox),A.features=e,A}function o(e,t,A){return void 0===A&&(A={}),n({type:"MultiLineString",coordinates:e},t,A)}function a(e){return"Feature"===e.type?e.geometry:e}A.d(t,"polygonToLine",(function(){return s})),A.d(t,"multiPolygonToLine",(function(){return g})),A.d(t,"coordsToLine",(function(){return c}));t.default=function(e,t){void 0===t&&(t={});var A=a(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),A.type){case"Polygon":return s(A,t);case"MultiPolygon":return g(A,t);default:throw new Error("invalid poly")}};function s(e,t){return void 0===t&&(t={}),c(a(e).coordinates,t.properties?t.properties:"Feature"===e.type?e.properties:{})}function g(e,t){void 0===t&&(t={});var A=a(e).coordinates,n=t.properties?t.properties:"Feature"===e.type?e.properties:{},r=[];return A.forEach((function(e){r.push(c(e,n))})),i(r)}function c(e,t){return e.length>1?o(e,t):r(e[0],t)}},function(e,t,A){"use strict";A.d(t,"a",(function(){return C}));var n=A(6),r=A(7),i=A(1),o=A(4),a=A(16),s=A(17),g=A(9),c=A(10),u=A(384),l=A(77),I=A(147),C=function(e){Object(g.a)(A,e);var t=Object(c.a)(A);function A(){return Object(i.a)(this,A),t.apply(this,arguments)}return Object(o.a)(A,[{key:"getSubLayers",value:function(){return this.internalState&&this.internalState.subLayers||[]}},{key:"initializeState",value:function(){}},{key:"setState",value:function(e){Object(s.a)(Object(a.a)(A.prototype),"setState",this).call(this,e),this.setNeedsUpdate()}},{key:"getPickingInfo",value:function(e){var t=e.info,A=t.object;return A&&A.__source&&A.__source.parent&&A.__source.parent.id===this.id?(t.object=A.__source.object,t.index=A.__source.index,t):t}},{key:"renderLayers",value:function(){return null}},{key:"filterSubLayer",value:function(e){return!0}},{key:"shouldRenderSubLayer",value:function(e,t){return t&&t.length}},{key:"getSubLayerClass",value:function(e,t){var A=this.props._subLayerProps;return A&&A[e]&&A[e].type||t}},{key:"getSubLayerRow",value:function(e,t,A){return e.__source={parent:this,object:t,index:A},e}},{key:"getSubLayerAccessor",value:function(e){if("function"===typeof e){var t={data:this.props.data,target:[]};return function(A,n){return A&&A.__source?(t.index=A.__source.index,e(A.__source.object,t)):e(A,n)}}return e}},{key:"getSubLayerProps",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.props,A=t.opacity,i=t.pickable,o=t.visible,a=t.parameters,s=t.getPolygonOffset,g=t.highlightedObjectIndex,c=t.autoHighlight,u=t.highlightColor,l=t.coordinateSystem,I=t.coordinateOrigin,C=t.wrapLongitude,h=t.positionFormat,f=t.modelMatrix,d=t.extensions,B=t.fetch,p=t._subLayerProps,E={opacity:A,pickable:i,visible:o,parameters:a,getPolygonOffset:s,highlightedObjectIndex:g,autoHighlight:c,highlightColor:u,coordinateSystem:l,coordinateOrigin:I,wrapLongitude:C,positionFormat:h,modelMatrix:f,extensions:d,fetch:B},Q=p&&p[e.id],y=Q&&Q.updateTriggers,v=e.id||"sublayer";if(Q){var m=this.constructor._propTypes,b=e.type?e.type._propTypes:{};for(var w in Q){var S=b[w]||m[w];S&&"accessor"===S.type&&(Q[w]=this.getSubLayerAccessor(Q[w]))}}Object.assign(E,e,Q),E.id="".concat(this.props.id,"-").concat(v),E.updateTriggers=Object(r.a)({all:this.props.updateTriggers.all},e.updateTriggers,{},y);var F,R=Object(n.a)(d);try{for(R.s();!(F=R.n()).done;){var D=F.value,G=D.getSubLayerProps.call(this,D);G&&Object.assign(E,G,{updateTriggers:Object.assign(E.updateTriggers,G.updateTriggers)})}}catch(k){R.e(k)}finally{R.f()}return E}},{key:"_updateAutoHighlight",value:function(e){var t,A=Object(n.a)(this.getSubLayers());try{for(A.s();!(t=A.n()).done;){t.value.updateAutoHighlight(e)}}catch(r){A.e(r)}finally{A.f()}}},{key:"_getAttributeManager",value:function(){return null}},{key:"_renderLayers",value:function(){var e=this.internalState.subLayers,t=!e||this.needsUpdate();t&&(e=this.renderLayers(),e=Object(I.b)(e,Boolean),this.internalState.subLayers=e),Object(l.a)("compositeLayer.renderLayers",this,t,e);var A,r=Object(n.a)(e);try{for(r.s();!(A=r.n()).done;){A.value.parent=this}}catch(i){r.e(i)}finally{r.f()}}},{key:"isComposite",get:function(){return!0}},{key:"isLoaded",get:function(){return Object(s.a)(Object(a.a)(A.prototype),"isLoaded",this)&&this.getSubLayers().every((function(e){return e.isLoaded}))}}]),A}(u.a);C.layerName="CompositeLayer"},function(e,t,A){"use strict";A.r(t);function n(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function r(e,t,A){if(void 0===A&&(A={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!i(e[0])||!i(e[1]))throw new Error("coordinates must contain numbers");return n({type:"Point",coordinates:e},t,A)}function i(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function o(e){return!!e&&e.constructor===Object}function a(e,t,A){if(null!==e)for(var n,r,i,o,s,g,c,u,l=0,I=0,C=e.type,h="FeatureCollection"===C,f="Feature"===C,d=h?e.features.length:1,B=0;B<d;B++){s=(u=!!(c=h?e.features[B].geometry:f?e.geometry:e)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var p=0;p<s;p++){var E=0,Q=0;if(null!==(o=u?c.geometries[p]:c)){g=o.coordinates;var y=o.type;switch(l=!A||"Polygon"!==y&&"MultiPolygon"!==y?0:1,y){case null:break;case"Point":if(!1===t(g,I,B,E,Q))return!1;I++,E++;break;case"LineString":case"MultiPoint":for(n=0;n<g.length;n++){if(!1===t(g[n],I,B,E,Q))return!1;I++,"MultiPoint"===y&&E++}"LineString"===y&&E++;break;case"Polygon":case"MultiLineString":for(n=0;n<g.length;n++){for(r=0;r<g[n].length-l;r++){if(!1===t(g[n][r],I,B,E,Q))return!1;I++}"MultiLineString"===y&&E++,"Polygon"===y&&Q++}"Polygon"===y&&E++;break;case"MultiPolygon":for(n=0;n<g.length;n++){for(Q=0,r=0;r<g[n].length;r++){for(i=0;i<g[n][r].length-l;i++){if(!1===t(g[n][r][i],I,B,E,Q))return!1;I++}Q++}E++}break;case"GeometryCollection":for(n=0;n<o.geometries.length;n++)if(!1===a(o.geometries[n],t,A))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}var s=function(e,t){void 0===t&&(t={});var A=0,n=0,i=0;return a(e,(function(e){A+=e[0],n+=e[1],i++}),!0),r([A/i,n/i],t.properties)},g=A(424),c=A(285),u=A(179),l=A(208);t.default=function(e,t,A){if(!o(A=A||{}))throw new Error("options is invalid");var n=A.pivot,r=A.mutate;if(!e)throw new Error("geojson is required");if(void 0===t||null===t||isNaN(t))throw new Error("angle is required");return 0===t||(n||(n=s(e)),!1!==r&&void 0!==r||(e=Object(l.a)(e)),a(e,(function(e){var A=Object(g.a)(n,e)+t,r=Object(c.a)(n,e),i=function(e){if(Array.isArray(e))return e;if("Feature"===e.type){if(null!==e.geometry)return e.geometry.coordinates}else if(e.coordinates)return e.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}(Object(u.a)(n,r,A));e[0]=i[0],e[1]=i[1]}))),e}},function(e,t,A){"use strict";var n=A(666),r=A(1286),i=A(62),o=A(41),a=A(77);var s={name:"JSON",extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:function(e){var t=e[0],A=e[e.length-1];return"{"===t&&"}"===A||"["===t&&"]"===A},parseTextSync:JSON.parse},g=i.global.deck&&i.global.deck.VERSION;if(g&&"8.6.0"!==g)throw new Error("deck.gl - multiple versions detected: ".concat(g," vs ").concat("8.6.0"));g||(o.a.log(1,"deck.gl ".concat("8.6.0"))(),i.global.deck=Object.assign(i.global.deck||{},{VERSION:"8.6.0",version:"8.6.0",log:o.a,_registerLoggers:a.b}),Object(n.b)([s,[r.a,{imagebitmap:{premultiplyAlpha:"none"}}]]));t.a=i.global.deck},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(0);t.default=function(){var e=n.createContext(void 0);return{Provider:function(t){var A=t.initialStore,r=t.createStore,i=t.children,o=n.useRef();return o.current||(A&&(console.warn("Provider initialStore is deprecated and will be removed in the next version."),r||(r=function(){return A})),o.current=r()),n.createElement(e.Provider,{value:o.current},i)},useStore:function(t,A){void 0===A&&(A=Object.is);var r=n.useContext(e);if(!r)throw new Error("Seems like you have not used zustand provider as an ancestor.");return r(t,A)},useStoreApi:function(){var t=n.useContext(e);if(!t)throw new Error("Seems like you have not used zustand provider as an ancestor.");return n.useMemo((function(){return{getState:t.getState,setState:t.setState,subscribe:t.subscribe,destroy:t.destroy}}),[t])}}}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if(Object.is(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var A=Object.keys(e);if(A.length!==Object.keys(t).length)return!1;for(var n=0;n<A.length;n++)if(!Object.prototype.hasOwnProperty.call(t,A[n])||!Object.is(e[A[n]],t[A[n]]))return!1;return!0}},function(e,t,A){e.exports=A(553).default,e.exports.utils=A(249),e.exports.Responsive=A(811).default,e.exports.Responsive.utils=A(558),e.exports.WidthProvider=A(812).default},function(e,t,A){"use strict";var n,r,i;r=[],void 0===(i="function"===typeof(n=function(){function e(){return!0}function t(){return!1}function A(){}return function n(){var r=[{name:"number",test:function(e){return"number"===typeof e}},{name:"string",test:function(e){return"string"===typeof e}},{name:"boolean",test:function(e){return"boolean"===typeof e}},{name:"Function",test:function(e){return"function"===typeof e}},{name:"Array",test:Array.isArray},{name:"Date",test:function(e){return e instanceof Date}},{name:"RegExp",test:function(e){return e instanceof RegExp}},{name:"Object",test:function(e){return"object"===typeof e&&null!==e&&e.constructor===Object}},{name:"null",test:function(e){return null===e}},{name:"undefined",test:function(e){return void 0===e}}],i={name:"any",test:e},o=[],a=[],s={types:r,conversions:a,ignore:o};function g(e){var t=L(s.types,(function(t){return t.name===e}));if(t)return t;if("any"===e)return i;var A=L(s.types,(function(t){return t.name.toLowerCase()===e.toLowerCase()}));throw new TypeError('Unknown type "'+e+'"'+(A?'. Did you mean "'+A.name+'"?':""))}function c(e){return e===i?999:s.types.indexOf(e)}function u(e){var t=L(s.types,(function(t){return t.test(e)}));if(t)return t.name;throw new TypeError("Value has unknown type. Value: "+e)}function l(e){return e.map((function(e){var t=e.types.map(E);return(e.restParam?"...":"")+t.join("|")})).join(",")}function I(e,t){var A=0===e.indexOf("..."),n=(A?e.length>3?e.slice(3):"any":e).split("|").map(k).filter(x).filter(G),r=function(e,t){var A={};return e.forEach((function(e){-1!==t.indexOf(e.from)||-1===t.indexOf(e.to)||A[e.from]||(A[e.from]=e)})),Object.keys(A).map((function(e){return A[e]}))}(t,n),i=n.map((function(e){var t=g(e);return{name:e,typeIndex:c(t),test:t.test,conversion:null,conversionIndex:-1}})),o=r.map((function(e){var A=g(e.from);return{name:e.from,typeIndex:c(A),test:A.test,conversion:e,conversionIndex:t.indexOf(e)}}));return{types:i.concat(o),restParam:A}}function C(e){var t=_(e);return!!t&&t.restParam}function h(e){return e.types.some((function(e){return null!=e.conversion}))}function f(t){if(t&&0!==t.types.length){if(1===t.types.length)return g(t.types[0].name).test;if(2===t.types.length){var A=g(t.types[0].name).test,n=g(t.types[1].name).test;return function(e){return A(e)||n(e)}}var r=t.types.map((function(e){return g(e.name).test}));return function(e){for(var t=0;t<r.length;t++)if(r[t](e))return!0;return!1}}return e}function d(e){var t,A,n,r;if(C(e)){var i=(t=(r=e,r.slice(0,r.length-1)).map(f)).length,o=f(_(e));return function(e){for(var A=0;A<t.length;A++)if(!t[A](e[A]))return!1;return function(e){for(var t=i;t<e.length;t++)if(!o(e[t]))return!1;return!0}(e)&&e.length>=i+1}}return 0===e.length?function(e){return 0===e.length}:1===e.length?(A=f(e[0]),function(e){return A(e[0])&&1===e.length}):2===e.length?(A=f(e[0]),n=f(e[1]),function(e){return A(e[0])&&n(e[1])&&2===e.length}):(t=e.map(f),function(e){for(var A=0;A<t.length;A++)if(!t[A](e[A]))return!1;return e.length===t.length})}function B(e,t){return t<e.params.length?e.params[t]:C(e.params)?_(e.params):null}function p(e,t,A){var n=B(e,t);return(n?A?n.types.filter(Q):n.types:[]).map(E)}function E(e){return e.name}function Q(e){return null===e.conversion||void 0===e.conversion}function y(e,t){var A=function(e){for(var t={},A=0;A<e.length;A++)t[e[A]]=!0;return Object.keys(t)}(T(e,(function(e){return p(e,t,!1)})));return-1!==A.indexOf("any")?["any"]:A}function v(e,t,A){var n,r,i,o=e||"unnamed",a=A;for(i=0;i<t.length;i++){var s=a.filter((function(e){var A=f(B(e,i));return(i<e.params.length||C(e.params))&&A(t[i])}));if(0===s.length){if((r=y(a,i)).length>0){var g=u(t[i]);return(n=new TypeError("Unexpected type of argument in function "+o+" (expected: "+r.join(" or ")+", actual: "+g+", index: "+i+")")).data={category:"wrongType",fn:o,index:i,actual:g,expected:r},n}}else a=s}var c=a.map((function(e){return C(e.params)?1/0:e.params.length}));if(t.length<Math.min.apply(null,c))return r=y(a,i),(n=new TypeError("Too few arguments in function "+o+" (expected: "+r.join(" or ")+", index: "+t.length+")")).data={category:"tooFewArgs",fn:o,index:t.length,expected:r},n;var l=Math.max.apply(null,c);return t.length>l?((n=new TypeError("Too many arguments in function "+o+" (expected: "+l+", actual: "+t.length+")")).data={category:"tooManyArgs",fn:o,index:t.length,expectedLength:l},n):((n=new TypeError('Arguments of type "'+t.join(", ")+'" do not match any of the defined signatures of function '+o+".")).data={category:"mismatch",actual:t.map(u)},n)}function m(e){for(var t=999,A=0;A<e.types.length;A++)Q(e.types[A])&&(t=Math.min(t,e.types[A].typeIndex));return t}function b(e){for(var t=999,A=0;A<e.types.length;A++)Q(e.types[A])||(t=Math.min(t,e.types[A].conversionIndex));return t}function w(e,t){var A;return 0!==(A=e.restParam-t.restParam)||0!==(A=h(e)-h(t))||0!==(A=m(e)-m(t))?A:b(e)-b(t)}function S(e,t){var A,n,r=Math.min(e.params.length,t.params.length);if(0!==(n=e.params.some(h)-t.params.some(h)))return n;for(A=0;A<r;A++)if(0!==(n=h(e.params[A])-h(t.params[A])))return n;for(A=0;A<r;A++)if(0!==(n=w(e.params[A],t.params[A])))return n;return e.params.length-t.params.length}function F(e){var t,A,n,r,i=[],o=[];switch(e.types.forEach((function(e){e.conversion&&(i.push(g(e.conversion.from).test),o.push(e.conversion.convert))})),o.length){case 0:return function(e){return e};case 1:return t=i[0],n=o[0],function(e){return t(e)?n(e):e};case 2:return t=i[0],A=i[1],n=o[0],r=o[1],function(e){return t(e)?n(e):A(e)?r(e):e};default:return function(e){for(var t=0;t<o.length;t++)if(i[t](e))return o[t](e);return e}}}function R(e,t){return function e(A,n,r){if(n<A.length){var i,o=A[n],a=t?o.types.filter(Q):o.types;if(o.restParam){var s=a.filter(Q);i=s.length<a.length?[s,a]:[a]}else i=a.map((function(e){return[e]}));return T(i,(function(t){return e(A,n+1,r.concat([t]))}))}return[r.map((function(e,t){return{types:e,restParam:t===A.length-1&&C(A)}}))]}(e,0,[])}function D(e,n){if(0===Object.keys(n).length)throw new SyntaxError("No signatures provided");var r=[];Object.keys(n).map((function(e){return function(e,t,A){var n=[];return""!==e.trim()&&(n=e.split(",").map(k).map((function(e,t,n){var r=I(e,A);if(r.restParam&&t!==n.length-1)throw new SyntaxError('Unexpected rest parameter "'+e+'": only allowed for the last parameter');return r}))),n.some(U)?null:{params:n,fn:t}}(e,n[e],s.conversions)})).filter(N).forEach((function(e){var t=L(r,(function(t){return function(e,t){for(var A=Math.max(e.params.length,t.params.length),n=0;n<A;n++)if(!O(p(e,n,!0),p(t,n,!0)))return!1;var r=e.params.length,i=t.params.length,o=C(e.params),a=C(t.params);return o?a?r===i:i>=r:a?r>=i:r===i}(t,e)}));if(t)throw new TypeError('Conflicting signatures "'+l(t.params)+'" and "'+l(e.params)+'".');r.push(e)}));var i=T(r,(function(e){return(e?R(e.params,!1):[]).map((function(t){return{params:t,fn:e.fn}}))})).filter(N);i.sort(S);var o=i[0]&&i[0].params.length<=2&&!C(i[0].params),a=i[1]&&i[1].params.length<=2&&!C(i[1].params),g=i[2]&&i[2].params.length<=2&&!C(i[2].params),c=i[3]&&i[3].params.length<=2&&!C(i[3].params),u=i[4]&&i[4].params.length<=2&&!C(i[4].params),B=i[5]&&i[5].params.length<=2&&!C(i[5].params),E=o&&a&&g&&c&&u&&B,Q=i.map((function(e){return d(e.params)})),y=o?f(i[0].params[0]):t,m=a?f(i[1].params[0]):t,b=g?f(i[2].params[0]):t,w=c?f(i[3].params[0]):t,D=u?f(i[4].params[0]):t,G=B?f(i[5].params[0]):t,x=o?f(i[0].params[1]):t,_=a?f(i[1].params[1]):t,Z=g?f(i[2].params[1]):t,H=c?f(i[3].params[1]):t,Y=u?f(i[4].params[1]):t,J=B?f(i[5].params[1]):t,j=i.map((function(e){return function(e,t){var A=t;if(e.some(h)){var n=C(e),r=e.map(F);A=function(){for(var e=[],A=n?arguments.length-1:arguments.length,i=0;i<A;i++)e[i]=r[i](arguments[i]);return n&&(e[A]=arguments[A].map(r[A])),t.apply(this,e)}}var i=A;if(C(e)){var o=e.length-1;i=function(){return A.apply(this,M(arguments,0,o).concat([M(arguments,o)]))}}return i}(e.params,e.fn)})),P=o?j[0]:A,V=a?j[1]:A,K=g?j[2]:A,W=c?j[3]:A,X=u?j[4]:A,q=B?j[5]:A,z=o?i[0].params.length:-1,$=a?i[1].params.length:-1,ee=g?i[2].params.length:-1,te=c?i[3].params.length:-1,Ae=u?i[4].params.length:-1,ne=B?i[5].params.length:-1,re=E?6:0,ie=i.length,oe=function(){for(var t=re;t<ie;t++)if(Q[t](arguments))return j[t].apply(this,arguments);throw v(e,arguments,i)},ae=function e(t,A){return arguments.length===z&&y(t)&&x(A)?P.apply(e,arguments):arguments.length===$&&m(t)&&_(A)?V.apply(e,arguments):arguments.length===ee&&b(t)&&Z(A)?K.apply(e,arguments):arguments.length===te&&w(t)&&H(A)?W.apply(e,arguments):arguments.length===Ae&&D(t)&&Y(A)?X.apply(e,arguments):arguments.length===ne&&G(t)&&J(A)?q.apply(e,arguments):oe.apply(e,arguments)};try{Object.defineProperty(ae,"name",{value:e})}catch(se){}return ae.signatures=function(e){var t={};return e.forEach((function(e){e.params.some(h)||R(e.params,!0).forEach((function(A){t[l(A)]=e.fn}))})),t}(i),ae}function G(e){return-1===s.ignore.indexOf(e)}function k(e){return e.trim()}function x(e){return!!e}function N(e){return null!==e}function U(e){return 0===e.types.length}function _(e){return e[e.length-1]}function M(e,t,A){return Array.prototype.slice.call(e,t,A)}function O(e,t){for(var A=0;A<e.length;A++)if(n=t,r=e[A],-1!==n.indexOf(r))return!0;var n,r;return!1}function L(e,t){for(var A=0;A<e.length;A++)if(t(e[A]))return e[A]}function T(e,t){return Array.prototype.concat.apply([],e.map(t))}function Z(e){for(var t="",A=0;A<e.length;A++){var n=e[A];if(("object"===typeof n.signatures||"string"===typeof n.signature)&&""!==n.name)if(""===t)t=n.name;else if(t!==n.name){var r=new Error("Function names do not match (expected: "+t+", actual: "+n.name+")");throw r.data={actual:n.name,expected:t},r}}return t}function H(e){var t,A={};function n(e,n){if(A.hasOwnProperty(e)&&n!==A[e])throw(t=new Error('Signature "'+e+'" is defined twice')).data={signature:e},t}for(var r=0;r<e.length;r++){var i=e[r];if("object"===typeof i.signatures)for(var o in i.signatures)i.signatures.hasOwnProperty(o)&&(n(o,i.signatures[o]),A[o]=i.signatures[o]);else{if("string"!==typeof i.signature)throw(t=new TypeError("Function is no typed-function (index: "+r+")")).data={index:r},t;n(i.signature,i),A[i.signature]=i}}return A}return(s=D("typed",{"string, Object":D,Object:function(e){var t=[];for(var A in e)e.hasOwnProperty(A)&&t.push(e[A]);return D(Z(t),e)},"...Function":function(e){return D(Z(e),H(e))},"string, ...Function":function(e,t){return D(e,H(t))}})).create=n,s.types=r,s.conversions=a,s.ignore=o,s.convert=function(e,t){var A=u(e);if(t===A)return e;for(var n=0;n<s.conversions.length;n++){var r=s.conversions[n];if(r.from===A&&r.to===t)return r.convert(e)}throw new Error("Cannot convert from "+A+" to "+t)},s.find=function(e,t){if(!e.signatures)throw new TypeError("Function is no typed-function");var A;if("string"===typeof t){A=t.split(",");for(var n=0;n<A.length;n++)A[n]=A[n].trim()}else{if(!Array.isArray(t))throw new TypeError("String array or a comma separated string expected");A=t}var r=A.join(","),i=e.signatures[r];if(i)return i;throw new TypeError("Signature not found (signature: "+(e.name||"unnamed")+"("+A.join(", ")+"))")},s.addType=function(e,t){if(!e||"string"!==typeof e.name||"function"!==typeof e.test)throw new TypeError("Object with properties {name: string, test: function} expected");if(!1!==t)for(var A=0;A<s.types.length;A++)if("Object"===s.types[A].name)return void s.types.splice(A,0,e);s.types.push(e)},s.addConversion=function(e){if(!e||"string"!==typeof e.from||"string"!==typeof e.to||"function"!==typeof e.convert)throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");s.conversions.push(e)},s}()})?n.apply(t,r):n)||(e.exports=i)},function(e,t,A){var n=A(868),r=A(869),i=A(870),o=A(871),a=A(872),s=A(873),g=A(874);g.alea=n,g.xor128=r,g.xorwow=i,g.xorshift7=o,g.xor4096=a,g.tychei=s,e.exports=g},function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("path",{d:"M7 14l5-5 5 5z"}),"ArrowDropUp");t.default=o},function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown");t.default=o},function(e,t,A){"use strict";e.exports=r;var n=A(567);function r(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}r.Varint=0,r.Fixed64=1,r.Bytes=2,r.Fixed32=5;var i="undefined"===typeof TextDecoder?null:new TextDecoder("utf8");function o(e){return e.type===r.Bytes?e.readVarint()+e.pos:e.pos+1}function a(e,t,A){return A?4294967296*t+(e>>>0):4294967296*(t>>>0)+(e>>>0)}function s(e,t,A){var n=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.floor(Math.log(t)/(7*Math.LN2));A.realloc(n);for(var r=A.pos-1;r>=e;r--)A.buf[r+n]=A.buf[r]}function g(e,t){for(var A=0;A<e.length;A++)t.writeVarint(e[A])}function c(e,t){for(var A=0;A<e.length;A++)t.writeSVarint(e[A])}function u(e,t){for(var A=0;A<e.length;A++)t.writeFloat(e[A])}function l(e,t){for(var A=0;A<e.length;A++)t.writeDouble(e[A])}function I(e,t){for(var A=0;A<e.length;A++)t.writeBoolean(e[A])}function C(e,t){for(var A=0;A<e.length;A++)t.writeFixed32(e[A])}function h(e,t){for(var A=0;A<e.length;A++)t.writeSFixed32(e[A])}function f(e,t){for(var A=0;A<e.length;A++)t.writeFixed64(e[A])}function d(e,t){for(var A=0;A<e.length;A++)t.writeSFixed64(e[A])}function B(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+16777216*e[t+3]}function p(e,t,A){e[A]=t,e[A+1]=t>>>8,e[A+2]=t>>>16,e[A+3]=t>>>24}function E(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+(e[t+3]<<24)}r.prototype={destroy:function(){this.buf=null},readFields:function(e,t,A){for(A=A||this.length;this.pos<A;){var n=this.readVarint(),r=n>>3,i=this.pos;this.type=7&n,e(r,t,this),this.pos===i&&this.skip(n)}return t},readMessage:function(e,t){return this.readFields(e,t,this.readVarint()+this.pos)},readFixed32:function(){var e=B(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=E(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=B(this.buf,this.pos)+4294967296*B(this.buf,this.pos+4);return this.pos+=8,e},readSFixed64:function(){var e=B(this.buf,this.pos)+4294967296*E(this.buf,this.pos+4);return this.pos+=8,e},readFloat:function(){var e=n.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=n.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var t,A,n=this.buf;return t=127&(A=n[this.pos++]),A<128?t:(t|=(127&(A=n[this.pos++]))<<7,A<128?t:(t|=(127&(A=n[this.pos++]))<<14,A<128?t:(t|=(127&(A=n[this.pos++]))<<21,A<128?t:function(e,t,A){var n,r,i=A.buf;if(r=i[A.pos++],n=(112&r)>>4,r<128)return a(e,n,t);if(r=i[A.pos++],n|=(127&r)<<3,r<128)return a(e,n,t);if(r=i[A.pos++],n|=(127&r)<<10,r<128)return a(e,n,t);if(r=i[A.pos++],n|=(127&r)<<17,r<128)return a(e,n,t);if(r=i[A.pos++],n|=(127&r)<<24,r<128)return a(e,n,t);if(r=i[A.pos++],n|=(1&r)<<31,r<128)return a(e,n,t);throw new Error("Expected varint not more than 10 bytes")}(t|=(15&(A=n[this.pos]))<<28,e,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2===1?(e+1)/-2:e/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=12&&i?function(e,t,A){return i.decode(e.subarray(t,A))}(this.buf,t,e):function(e,t,A){var n="",r=t;for(;r<A;){var i,o,a,s=e[r],g=null,c=s>239?4:s>223?3:s>191?2:1;if(r+c>A)break;1===c?s<128&&(g=s):2===c?128===(192&(i=e[r+1]))&&(g=(31&s)<<6|63&i)<=127&&(g=null):3===c?(i=e[r+1],o=e[r+2],128===(192&i)&&128===(192&o)&&((g=(15&s)<<12|(63&i)<<6|63&o)<=2047||g>=55296&&g<=57343)&&(g=null)):4===c&&(i=e[r+1],o=e[r+2],a=e[r+3],128===(192&i)&&128===(192&o)&&128===(192&a)&&((g=(15&s)<<18|(63&i)<<12|(63&o)<<6|63&a)<=65535||g>=1114112)&&(g=null)),null===g?(g=65533,c=1):g>65535&&(g-=65536,n+=String.fromCharCode(g>>>10&1023|55296),g=56320|1023&g),n+=String.fromCharCode(g),r+=c}return n}(this.buf,t,e)},readBytes:function(){var e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t},readPackedVarint:function(e,t){if(this.type!==r.Bytes)return e.push(this.readVarint(t));var A=o(this);for(e=e||[];this.pos<A;)e.push(this.readVarint(t));return e},readPackedSVarint:function(e){if(this.type!==r.Bytes)return e.push(this.readSVarint());var t=o(this);for(e=e||[];this.pos<t;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){if(this.type!==r.Bytes)return e.push(this.readBoolean());var t=o(this);for(e=e||[];this.pos<t;)e.push(this.readBoolean());return e},readPackedFloat:function(e){if(this.type!==r.Bytes)return e.push(this.readFloat());var t=o(this);for(e=e||[];this.pos<t;)e.push(this.readFloat());return e},readPackedDouble:function(e){if(this.type!==r.Bytes)return e.push(this.readDouble());var t=o(this);for(e=e||[];this.pos<t;)e.push(this.readDouble());return e},readPackedFixed32:function(e){if(this.type!==r.Bytes)return e.push(this.readFixed32());var t=o(this);for(e=e||[];this.pos<t;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){if(this.type!==r.Bytes)return e.push(this.readSFixed32());var t=o(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){if(this.type!==r.Bytes)return e.push(this.readFixed64());var t=o(this);for(e=e||[];this.pos<t;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){if(this.type!==r.Bytes)return e.push(this.readSFixed64());var t=o(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed64());return e},skip:function(e){var t=7&e;if(t===r.Varint)for(;this.buf[this.pos++]>127;);else if(t===r.Bytes)this.pos=this.readVarint()+this.pos;else if(t===r.Fixed32)this.pos+=4;else{if(t!==r.Fixed64)throw new Error("Unimplemented type: "+t);this.pos+=8}},writeTag:function(e,t){this.writeVarint(e<<3|t)},realloc:function(e){for(var t=this.length||16;t<this.pos+e;)t*=2;if(t!==this.length){var A=new Uint8Array(t);A.set(this.buf),this.buf=A,this.length=t}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),p(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),p(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),p(this.buf,-1&e,this.pos),p(this.buf,Math.floor(e*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),p(this.buf,-1&e,this.pos),p(this.buf,Math.floor(e*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(e){(e=+e||0)>268435455||e<0?function(e,t){var A,n;e>=0?(A=e%4294967296|0,n=e/4294967296|0):(n=~(-e/4294967296),4294967295^(A=~(-e%4294967296))?A=A+1|0:(A=0,n=n+1|0));if(e>=0x10000000000000000||e<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");t.realloc(10),function(e,t,A){A.buf[A.pos++]=127&e|128,e>>>=7,A.buf[A.pos++]=127&e|128,e>>>=7,A.buf[A.pos++]=127&e|128,e>>>=7,A.buf[A.pos++]=127&e|128,e>>>=7,A.buf[A.pos]=127&e}(A,0,t),function(e,t){var A=(7&e)<<4;if(t.buf[t.pos++]|=A|((e>>>=3)?128:0),!e)return;if(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),!e)return;if(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),!e)return;if(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),!e)return;if(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),!e)return;t.buf[t.pos++]=127&e}(n,t)}(e,this):(this.realloc(4),this.buf[this.pos++]=127&e|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=e>>>7&127))))},writeSVarint:function(e){this.writeVarint(e<0?2*-e-1:2*e)},writeBoolean:function(e){this.writeVarint(Boolean(e))},writeString:function(e){e=String(e),this.realloc(4*e.length),this.pos++;var t=this.pos;this.pos=function(e,t,A){for(var n,r,i=0;i<t.length;i++){if((n=t.charCodeAt(i))>55295&&n<57344){if(!r){n>56319||i+1===t.length?(e[A++]=239,e[A++]=191,e[A++]=189):r=n;continue}if(n<56320){e[A++]=239,e[A++]=191,e[A++]=189,r=n;continue}n=r-55296<<10|n-56320|65536,r=null}else r&&(e[A++]=239,e[A++]=191,e[A++]=189,r=null);n<128?e[A++]=n:(n<2048?e[A++]=n>>6|192:(n<65536?e[A++]=n>>12|224:(e[A++]=n>>18|240,e[A++]=n>>12&63|128),e[A++]=n>>6&63|128),e[A++]=63&n|128)}return A}(this.buf,e,this.pos);var A=this.pos-t;A>=128&&s(t,A,this),this.pos=t-1,this.writeVarint(A),this.pos+=A},writeFloat:function(e){this.realloc(4),n.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),n.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var t=e.length;this.writeVarint(t),this.realloc(t);for(var A=0;A<t;A++)this.buf[this.pos++]=e[A]},writeRawMessage:function(e,t){this.pos++;var A=this.pos;e(t,this);var n=this.pos-A;n>=128&&s(A,n,this),this.pos=A-1,this.writeVarint(n),this.pos+=n},writeMessage:function(e,t,A){this.writeTag(e,r.Bytes),this.writeRawMessage(t,A)},writePackedVarint:function(e,t){t.length&&this.writeMessage(e,g,t)},writePackedSVarint:function(e,t){t.length&&this.writeMessage(e,c,t)},writePackedBoolean:function(e,t){t.length&&this.writeMessage(e,I,t)},writePackedFloat:function(e,t){t.length&&this.writeMessage(e,u,t)},writePackedDouble:function(e,t){t.length&&this.writeMessage(e,l,t)},writePackedFixed32:function(e,t){t.length&&this.writeMessage(e,C,t)},writePackedSFixed32:function(e,t){t.length&&this.writeMessage(e,h,t)},writePackedFixed64:function(e,t){t.length&&this.writeMessage(e,f,t)},writePackedSFixed64:function(e,t){t.length&&this.writeMessage(e,d,t)},writeBytesField:function(e,t){this.writeTag(e,r.Bytes),this.writeBytes(t)},writeFixed32Field:function(e,t){this.writeTag(e,r.Fixed32),this.writeFixed32(t)},writeSFixed32Field:function(e,t){this.writeTag(e,r.Fixed32),this.writeSFixed32(t)},writeFixed64Field:function(e,t){this.writeTag(e,r.Fixed64),this.writeFixed64(t)},writeSFixed64Field:function(e,t){this.writeTag(e,r.Fixed64),this.writeSFixed64(t)},writeVarintField:function(e,t){this.writeTag(e,r.Varint),this.writeVarint(t)},writeSVarintField:function(e,t){this.writeTag(e,r.Varint),this.writeSVarint(t)},writeStringField:function(e,t){this.writeTag(e,r.Bytes),this.writeString(t)},writeFloatField:function(e,t){this.writeTag(e,r.Fixed32),this.writeFloat(t)},writeDoubleField:function(e,t){this.writeTag(e,r.Fixed64),this.writeDouble(t)},writeBooleanField:function(e,t){this.writeVarintField(e,Boolean(t))}}},function(e,t,A){"use strict";var n=Object.freeze({initialize:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.modulePath,A=void 0===t?".":t,n=e.importFunctionName,r=void 0===n?"__import__":n;try{self[r]=new Function("u","return import(u)")}catch(a){var i=new URL(A,location),o=function(e){URL.revokeObjectURL(e.src),e.remove()};self[r]=function(e){return new Promise((function(t,A){var n=new URL(e,i);if(self[r].moduleMap[n])return t(self[r].moduleMap[n]);var a=new Blob(["import * as m from '".concat(n,"';"),"".concat(r,".moduleMap['").concat(n,"']=m;")],{type:"text/javascript"}),s=Object.assign(document.createElement("script"),{type:"module",src:URL.createObjectURL(a),onerror:function(){A(new Error("Failed to import: ".concat(e))),o(s)},onload:function(){t(self[r].moduleMap[n]),o(s)}});document.head.appendChild(s)}))},self[r].moduleMap={}}}});t.a=n},function(e,t,A){"use strict";A.d(t,"a",(function(){return B}));var n=A(335);function r(e,t,A){return(r=i()?Reflect.construct:function(e,t,A){var n=[null];n.push.apply(n,t);var r=new(Function.bind.apply(e,n));return A&&o(r,A.prototype),r}).apply(null,arguments)}function i(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function o(e,t){return(o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||h(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function g(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?s(Object(A),!0).forEach((function(t){c(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):s(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function c(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function I(e,t,A){return t&&l(e.prototype,t),A&&l(e,A),e}function C(e,t){var A;if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(A=h(e))||t&&e&&"number"===typeof e.length){A&&(e=A);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,a=!1;return{s:function(){A=e[Symbol.iterator]()},n:function(){var e=A.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==A.return||A.return()}finally{if(a)throw i}}}}function h(e,t){if(e){if("string"===typeof e)return f(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(e):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function d(e,t,A){var n=A?t[1]:t[0]*t[1],r=new Float32Array(n),i=0;if(A){var o,a=C(e);try{for(a.s();!(o=a.n()).done;){var s=o.value.data;r.set(s,i),i+=s.length}}catch(h){a.e(h)}finally{a.f()}}else for(var g=t[0],c=0;c<g;c++){var u,l=C(e);try{for(l.s();!(u=l.n()).done;){var I=u.value.data[c];r.set(I,i),i+=I.length}}catch(h){l.e(h)}finally{l.f()}}return r}var B=function e(t){if(!(this instanceof e?this.constructor:void 0))throw new Error('Uncaught TypeError: Class constructor cannot be invoked without "new"');for(var A=t.libraries.slugid,i=t.utils,o=i.absToChr,s=i.parseChromsizesRows,c=i.genomicRangeToChromosomeChunks,l=i.DenseDataExtrema1D,h=i.minNonZero,f=i.maxNonZero,B=function(){function e(t){u(this,e),this.dataConfig=t,this.trackUid=A.nice(),t.url&&(this.store=new n.a(t.url,{supportedMethods:["GET"]})),void 0!==t.row&&(this.row=t.row)}return I(e,[{key:"tilesetInfo",value:function(e){var t=this;return this.tilesetInfoLoading=!0,this.store.getItem(".zattrs").then((function(e){var t=new TextDecoder("utf-8");return JSON.parse(t.decode(e))})).then((function(A){t.tilesetInfoLoading=!1;var n=A.multiscales.map((function(e){return[e.name,e.metadata.chromsize]})),r=A.multiscales[A.multiscales.length-1],i=r.metadata.chromoffset+r.metadata.chromsize,o=A.shape[1],a=g(g({},A),{},{shape:[A.shape[1],A.shape[0]],chromSizes:n,tile_size:o,max_width:i,min_pos:[0],max_pos:[i],max_zoom:Math.ceil(Math.log(i/o)/Math.log(2))});return e&&e(a),a})).catch((function(A){t.tilesetInfoLoading=!1,e&&e({error:"Error parsing zarr multivec: ".concat(A)})}))}},{key:"fetchTilesDebounced",value:function(e,t){var A,n={},r=[],i=[],o=C(t);try{for(o.s();!(A=o.n()).done;){var a=A.value,s=a.split("."),g=parseInt(s[0],10),c=parseInt(s[1],10);Number.isNaN(c)||Number.isNaN(g)?console.warn("Invalid tile zoom or position:",g,c):(r.push(a),i.push(this.tile(g,c,a)))}}catch(u){o.e(u)}finally{o.f()}return Promise.all(i).then((function(t){for(var A=0;A<t.length;A++){var i=r[A];n[i]=t[A],n[i].tilePositionId=i}e(n)})),n}},{key:"tile",value:function(e,t,A){var r=this,i=this.store;return this.tilesetInfo().then((function(g){var u=+g.resolutions[e],I=+g.tile_size,C=u,B=t*I*u,p=B+I*u,E=g.chromSizes,Q=s(E),y=a(o(B,Q),2),v=y[0],m=y[1],b=a(o(p,Q),2),w=b[0],S=b[1],F=c(E,{chr:v,pos:m},{chr:w,pos:S},C,I);return Promise.all(F.map((function(e){var t=a(e,3),A=t[0],o=t[1],s=t[2];return Object(n.b)({store:i,path:"/chromosomes/".concat(A,"/").concat(u,"/"),mode:"r"}).then((function(e){return void 0!==r.row?e.getRaw([r.row,Object(n.c)(o,s)]):e.get([null,Object(n.c)(o,s)])}))}))).then((function(n){var i=d(n,[g.shape[1],g.shape[0]],void 0!==r.row);return Promise.resolve({dense:i,denseDataExtrema:new l(i),dtype:"float32",min_value:Math.min.apply(null,i),max_value:Math.max.apply(null,i),minNonZero:h(i),maxNonZero:f(i),server:null,size:1,shape:g.shape,tileId:A,tilePos:[t],tilePositionId:A,tilesetUid:null,zoomLevel:e})}))}))}}]),e}(),p=arguments.length,E=new Array(p>1?p-1:0),Q=1;Q<p;Q++)E[Q-1]=arguments[Q];return r(B,E)};B.config={type:"zarr-multivec"}},function(e,t,A){var n=A(260);e.exports={re:n.re,src:n.src,tokens:n.t,SEMVER_SPEC_VERSION:A(370).SEMVER_SPEC_VERSION,SemVer:A(106),compareIdentifiers:A(498).compareIdentifiers,rcompareIdentifiers:A(498).rcompareIdentifiers,parse:A(261),valid:A(1110),clean:A(1111),inc:A(1112),diff:A(1113),major:A(1114),minor:A(1115),patch:A(1116),prerelease:A(1117),compare:A(144),rcompare:A(1118),compareLoose:A(1119),compareBuild:A(500),sort:A(1120),rsort:A(1121),gt:A(373),lt:A(501),eq:A(499),neq:A(640),gte:A(502),lte:A(503),cmp:A(641),coerce:A(1122),Comparator:A(374),Range:A(145),satisfies:A(375),toComparators:A(1130),maxSatisfying:A(1131),minSatisfying:A(1132),minVersion:A(1133),validRange:A(1134),outside:A(506),gtr:A(1135),ltr:A(1136),intersects:A(1137),simplifyRange:A(1138),subset:A(1143)}},function(e,t,A){var n,r=function(){var e=String.fromCharCode,t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",n={};function r(e,t){if(!n[e]){n[e]={};for(var A=0;A<e.length;A++)n[e][e.charAt(A)]=A}return n[e][t]}var i={compressToBase64:function(e){if(null==e)return"";var A=i._compress(e,6,(function(e){return t.charAt(e)}));switch(A.length%4){default:case 0:return A;case 1:return A+"===";case 2:return A+"==";case 3:return A+"="}},decompressFromBase64:function(e){return null==e?"":""==e?null:i._decompress(e.length,32,(function(A){return r(t,e.charAt(A))}))},compressToUTF16:function(t){return null==t?"":i._compress(t,15,(function(t){return e(t+32)}))+" "},decompressFromUTF16:function(e){return null==e?"":""==e?null:i._decompress(e.length,16384,(function(t){return e.charCodeAt(t)-32}))},compressToUint8Array:function(e){for(var t=i.compress(e),A=new Uint8Array(2*t.length),n=0,r=t.length;n<r;n++){var o=t.charCodeAt(n);A[2*n]=o>>>8,A[2*n+1]=o%256}return A},decompressFromUint8Array:function(t){if(null===t||void 0===t)return i.decompress(t);for(var A=new Array(t.length/2),n=0,r=A.length;n<r;n++)A[n]=256*t[2*n]+t[2*n+1];var o=[];return A.forEach((function(t){o.push(e(t))})),i.decompress(o.join(""))},compressToEncodedURIComponent:function(e){return null==e?"":i._compress(e,6,(function(e){return A.charAt(e)}))},decompressFromEncodedURIComponent:function(e){return null==e?"":""==e?null:(e=e.replace(/ /g,"+"),i._decompress(e.length,32,(function(t){return r(A,e.charAt(t))})))},compress:function(t){return i._compress(t,16,(function(t){return e(t)}))},_compress:function(e,t,A){if(null==e)return"";var n,r,i,o={},a={},s="",g="",c="",u=2,l=3,I=2,C=[],h=0,f=0;for(i=0;i<e.length;i+=1)if(s=e.charAt(i),Object.prototype.hasOwnProperty.call(o,s)||(o[s]=l++,a[s]=!0),g=c+s,Object.prototype.hasOwnProperty.call(o,g))c=g;else{if(Object.prototype.hasOwnProperty.call(a,c)){if(c.charCodeAt(0)<256){for(n=0;n<I;n++)h<<=1,f==t-1?(f=0,C.push(A(h)),h=0):f++;for(r=c.charCodeAt(0),n=0;n<8;n++)h=h<<1|1&r,f==t-1?(f=0,C.push(A(h)),h=0):f++,r>>=1}else{for(r=1,n=0;n<I;n++)h=h<<1|r,f==t-1?(f=0,C.push(A(h)),h=0):f++,r=0;for(r=c.charCodeAt(0),n=0;n<16;n++)h=h<<1|1&r,f==t-1?(f=0,C.push(A(h)),h=0):f++,r>>=1}0==--u&&(u=Math.pow(2,I),I++),delete a[c]}else for(r=o[c],n=0;n<I;n++)h=h<<1|1&r,f==t-1?(f=0,C.push(A(h)),h=0):f++,r>>=1;0==--u&&(u=Math.pow(2,I),I++),o[g]=l++,c=String(s)}if(""!==c){if(Object.prototype.hasOwnProperty.call(a,c)){if(c.charCodeAt(0)<256){for(n=0;n<I;n++)h<<=1,f==t-1?(f=0,C.push(A(h)),h=0):f++;for(r=c.charCodeAt(0),n=0;n<8;n++)h=h<<1|1&r,f==t-1?(f=0,C.push(A(h)),h=0):f++,r>>=1}else{for(r=1,n=0;n<I;n++)h=h<<1|r,f==t-1?(f=0,C.push(A(h)),h=0):f++,r=0;for(r=c.charCodeAt(0),n=0;n<16;n++)h=h<<1|1&r,f==t-1?(f=0,C.push(A(h)),h=0):f++,r>>=1}0==--u&&(u=Math.pow(2,I),I++),delete a[c]}else for(r=o[c],n=0;n<I;n++)h=h<<1|1&r,f==t-1?(f=0,C.push(A(h)),h=0):f++,r>>=1;0==--u&&(u=Math.pow(2,I),I++)}for(r=2,n=0;n<I;n++)h=h<<1|1&r,f==t-1?(f=0,C.push(A(h)),h=0):f++,r>>=1;for(;;){if(h<<=1,f==t-1){C.push(A(h));break}f++}return C.join("")},decompress:function(e){return null==e?"":""==e?null:i._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(t,A,n){var r,i,o,a,s,g,c,u=[],l=4,I=4,C=3,h="",f=[],d={val:n(0),position:A,index:1};for(r=0;r<3;r+=1)u[r]=r;for(o=0,s=Math.pow(2,2),g=1;g!=s;)a=d.val&d.position,d.position>>=1,0==d.position&&(d.position=A,d.val=n(d.index++)),o|=(a>0?1:0)*g,g<<=1;switch(o){case 0:for(o=0,s=Math.pow(2,8),g=1;g!=s;)a=d.val&d.position,d.position>>=1,0==d.position&&(d.position=A,d.val=n(d.index++)),o|=(a>0?1:0)*g,g<<=1;c=e(o);break;case 1:for(o=0,s=Math.pow(2,16),g=1;g!=s;)a=d.val&d.position,d.position>>=1,0==d.position&&(d.position=A,d.val=n(d.index++)),o|=(a>0?1:0)*g,g<<=1;c=e(o);break;case 2:return""}for(u[3]=c,i=c,f.push(c);;){if(d.index>t)return"";for(o=0,s=Math.pow(2,C),g=1;g!=s;)a=d.val&d.position,d.position>>=1,0==d.position&&(d.position=A,d.val=n(d.index++)),o|=(a>0?1:0)*g,g<<=1;switch(c=o){case 0:for(o=0,s=Math.pow(2,8),g=1;g!=s;)a=d.val&d.position,d.position>>=1,0==d.position&&(d.position=A,d.val=n(d.index++)),o|=(a>0?1:0)*g,g<<=1;u[I++]=e(o),c=I-1,l--;break;case 1:for(o=0,s=Math.pow(2,16),g=1;g!=s;)a=d.val&d.position,d.position>>=1,0==d.position&&(d.position=A,d.val=n(d.index++)),o|=(a>0?1:0)*g,g<<=1;u[I++]=e(o),c=I-1,l--;break;case 2:return f.join("")}if(0==l&&(l=Math.pow(2,C),C++),u[c])h=u[c];else{if(c!==I)return null;h=i+i.charAt(0)}f.push(h),u[I++]=i+h.charAt(0),i=h,0==--l&&(l=Math.pow(2,C),C++)}}};return i}();void 0===(n=function(){return r}.call(t,A,t,e))||(e.exports=n)},function(e,t,A){"use strict";var n=A(45),r=A.n(n),i=A(50),o=A.n(i),a=A(63),s=A.n(a),g=A(64),c=A.n(g),u=A(20),l=A.n(u),I=A(65),C=A.n(I),h=A(15),f=A.n(h),d=A(0),B=A(100),p=A(103),E=A.n(p),Q=A(19);function y(e){var t=e.cellCount,A=e.cellSize,n=e.computeMetadataCallback,r=e.computeMetadataCallbackProps,i=e.nextCellsCount,o=e.nextCellSize,a=e.nextScrollToIndex,s=e.scrollToIndex,g=e.updateScrollOffsetForScrollToIndex;t===i&&("number"!==typeof A&&"number"!==typeof o||A===o)||(n(r),s>=0&&s===a&&g())}var v=A(236),m=A.n(v),b=(A(13),function(){function e(t){var A=t.cellCount,n=t.cellSizeGetter,i=t.estimatedCellSize;r()(this,e),f()(this,"_cellSizeAndPositionData",{}),f()(this,"_lastMeasuredIndex",-1),f()(this,"_lastBatchedIndex",-1),f()(this,"_cellCount",void 0),f()(this,"_cellSizeGetter",void 0),f()(this,"_estimatedCellSize",void 0),this._cellSizeGetter=n,this._cellCount=A,this._estimatedCellSize=i}return o()(e,[{key:"areOffsetsAdjusted",value:function(){return!1}},{key:"configure",value:function(e){var t=e.cellCount,A=e.estimatedCellSize,n=e.cellSizeGetter;this._cellCount=t,this._estimatedCellSize=A,this._cellSizeGetter=n}},{key:"getCellCount",value:function(){return this._cellCount}},{key:"getEstimatedCellSize",value:function(){return this._estimatedCellSize}},{key:"getLastMeasuredIndex",value:function(){return this._lastMeasuredIndex}},{key:"getOffsetAdjustment",value:function(){return 0}},{key:"getSizeAndPositionOfCell",value:function(e){if(e<0||e>=this._cellCount)throw Error("Requested index ".concat(e," is outside of range 0..").concat(this._cellCount));if(e>this._lastMeasuredIndex)for(var t=this.getSizeAndPositionOfLastMeasuredCell(),A=t.offset+t.size,n=this._lastMeasuredIndex+1;n<=e;n++){var r=this._cellSizeGetter({index:n});if(void 0===r||isNaN(r))throw Error("Invalid size returned for cell ".concat(n," of value ").concat(r));null===r?(this._cellSizeAndPositionData[n]={offset:A,size:0},this._lastBatchedIndex=e):(this._cellSizeAndPositionData[n]={offset:A,size:r},A+=r,this._lastMeasuredIndex=e)}return this._cellSizeAndPositionData[e]}},{key:"getSizeAndPositionOfLastMeasuredCell",value:function(){return this._lastMeasuredIndex>=0?this._cellSizeAndPositionData[this._lastMeasuredIndex]:{offset:0,size:0}}},{key:"getTotalSize",value:function(){var e=this.getSizeAndPositionOfLastMeasuredCell();return e.offset+e.size+(this._cellCount-this._lastMeasuredIndex-1)*this._estimatedCellSize}},{key:"getUpdatedOffsetForIndex",value:function(e){var t=e.align,A=void 0===t?"auto":t,n=e.containerSize,r=e.currentOffset,i=e.targetIndex;if(n<=0)return 0;var o,a=this.getSizeAndPositionOfCell(i),s=a.offset,g=s-n+a.size;switch(A){case"start":o=s;break;case"end":o=g;break;case"center":o=s-(n-a.size)/2;break;default:o=Math.max(g,Math.min(s,r))}var c=this.getTotalSize();return Math.max(0,Math.min(c-n,o))}},{key:"getVisibleCellRange",value:function(e){var t=e.containerSize,A=e.offset;if(0===this.getTotalSize())return{};var n=A+t,r=this._findNearestCell(A),i=this.getSizeAndPositionOfCell(r);A=i.offset+i.size;for(var o=r;A<n&&o<this._cellCount-1;)o++,A+=this.getSizeAndPositionOfCell(o).size;return{start:r,stop:o}}},{key:"resetCell",value:function(e){this._lastMeasuredIndex=Math.min(this._lastMeasuredIndex,e-1)}},{key:"_binarySearch",value:function(e,t,A){for(;t<=e;){var n=t+Math.floor((e-t)/2),r=this.getSizeAndPositionOfCell(n).offset;if(r===A)return n;r<A?t=n+1:r>A&&(e=n-1)}return t>0?t-1:0}},{key:"_exponentialSearch",value:function(e,t){for(var A=1;e<this._cellCount&&this.getSizeAndPositionOfCell(e).offset<t;)e+=A,A*=2;return this._binarySearch(Math.min(e,this._cellCount-1),Math.floor(e/2),t)}},{key:"_findNearestCell",value:function(e){if(isNaN(e))throw Error("Invalid offset ".concat(e," specified"));e=Math.max(0,e);var t=this.getSizeAndPositionOfLastMeasuredCell(),A=Math.max(0,this._lastMeasuredIndex);return t.offset>=e?this._binarySearch(A,0,e):this._exponentialSearch(A,e)}}]),e}()),w=function(){return"undefined"!==typeof window&&window.chrome?16777100:15e5},S=function(){function e(t){var A=t.maxScrollSize,n=void 0===A?w():A,i=m()(t,["maxScrollSize"]);r()(this,e),f()(this,"_cellSizeAndPositionManager",void 0),f()(this,"_maxScrollSize",void 0),this._cellSizeAndPositionManager=new b(i),this._maxScrollSize=n}return o()(e,[{key:"areOffsetsAdjusted",value:function(){return this._cellSizeAndPositionManager.getTotalSize()>this._maxScrollSize}},{key:"configure",value:function(e){this._cellSizeAndPositionManager.configure(e)}},{key:"getCellCount",value:function(){return this._cellSizeAndPositionManager.getCellCount()}},{key:"getEstimatedCellSize",value:function(){return this._cellSizeAndPositionManager.getEstimatedCellSize()}},{key:"getLastMeasuredIndex",value:function(){return this._cellSizeAndPositionManager.getLastMeasuredIndex()}},{key:"getOffsetAdjustment",value:function(e){var t=e.containerSize,A=e.offset,n=this._cellSizeAndPositionManager.getTotalSize(),r=this.getTotalSize(),i=this._getOffsetPercentage({containerSize:t,offset:A,totalSize:r});return Math.round(i*(r-n))}},{key:"getSizeAndPositionOfCell",value:function(e){return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(e)}},{key:"getSizeAndPositionOfLastMeasuredCell",value:function(){return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell()}},{key:"getTotalSize",value:function(){return Math.min(this._maxScrollSize,this._cellSizeAndPositionManager.getTotalSize())}},{key:"getUpdatedOffsetForIndex",value:function(e){var t=e.align,A=void 0===t?"auto":t,n=e.containerSize,r=e.currentOffset,i=e.targetIndex;r=this._safeOffsetToOffset({containerSize:n,offset:r});var o=this._cellSizeAndPositionManager.getUpdatedOffsetForIndex({align:A,containerSize:n,currentOffset:r,targetIndex:i});return this._offsetToSafeOffset({containerSize:n,offset:o})}},{key:"getVisibleCellRange",value:function(e){var t=e.containerSize,A=e.offset;return A=this._safeOffsetToOffset({containerSize:t,offset:A}),this._cellSizeAndPositionManager.getVisibleCellRange({containerSize:t,offset:A})}},{key:"resetCell",value:function(e){this._cellSizeAndPositionManager.resetCell(e)}},{key:"_getOffsetPercentage",value:function(e){var t=e.containerSize,A=e.offset,n=e.totalSize;return n<=t?0:A/(n-t)}},{key:"_offsetToSafeOffset",value:function(e){var t=e.containerSize,A=e.offset,n=this._cellSizeAndPositionManager.getTotalSize(),r=this.getTotalSize();if(n===r)return A;var i=this._getOffsetPercentage({containerSize:t,offset:A,totalSize:n});return Math.round(i*(r-t))}},{key:"_safeOffsetToOffset",value:function(e){var t=e.containerSize,A=e.offset,n=this._cellSizeAndPositionManager.getTotalSize(),r=this.getTotalSize();if(n===r)return A;var i=this._getOffsetPercentage({containerSize:t,offset:A,totalSize:r});return Math.round(i*(n-t))}}]),e}();function F(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t={};return function(A){var n=A.callback,r=A.indices,i=Object.keys(r),o=!e||i.every((function(e){var t=r[e];return Array.isArray(t)?t.length>0:t>=0})),a=i.length!==Object.keys(t).length||i.some((function(e){var A=t[e],n=r[e];return Array.isArray(n)?A.join(",")!==n.join(","):A!==n}));t=r,o&&a&&n(r)}}function R(e){var t=e.cellSize,A=e.cellSizeAndPositionManager,n=e.previousCellsCount,r=e.previousCellSize,i=e.previousScrollToAlignment,o=e.previousScrollToIndex,a=e.previousSize,s=e.scrollOffset,g=e.scrollToAlignment,c=e.scrollToIndex,u=e.size,l=e.sizeJustIncreasedFromZero,I=e.updateScrollIndexCallback,C=A.getCellCount(),h=c>=0&&c<C;h&&(u!==a||l||!r||"number"===typeof t&&t!==r||g!==i||c!==o)?I(c):!h&&C>0&&(u<a||C<n)&&s>A.getTotalSize()-u&&I(C-1)}var D,G,k=!("undefined"===typeof window||!window.document||!window.document.createElement);function x(e){if((!D&&0!==D||e)&&k){var t=document.createElement("div");t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),D=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return D}var N,U,_=(G="undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).requestAnimationFrame||G.webkitRequestAnimationFrame||G.mozRequestAnimationFrame||G.oRequestAnimationFrame||G.msRequestAnimationFrame||function(e){return G.setTimeout(e,1e3/60)},M=G.cancelAnimationFrame||G.webkitCancelAnimationFrame||G.mozCancelAnimationFrame||G.oCancelAnimationFrame||G.msCancelAnimationFrame||function(e){G.clearTimeout(e)},O=_,L=M,T=function(e){return L(e.id)},Z=function(e,t){var A;Promise.resolve().then((function(){A=Date.now()}));var n={id:O((function r(){Date.now()-A>=t?e.call():n.id=O(r)}))};return n};function H(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function Y(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?H(A,!0).forEach((function(t){f()(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):H(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}var J="observed",j="requested",P=(U=N=function(e){function t(e){var A;r()(this,t),A=s()(this,c()(t).call(this,e)),f()(l()(A),"_onGridRenderedMemoizer",F()),f()(l()(A),"_onScrollMemoizer",F(!1)),f()(l()(A),"_deferredInvalidateColumnIndex",null),f()(l()(A),"_deferredInvalidateRowIndex",null),f()(l()(A),"_recomputeScrollLeftFlag",!1),f()(l()(A),"_recomputeScrollTopFlag",!1),f()(l()(A),"_horizontalScrollBarSize",0),f()(l()(A),"_verticalScrollBarSize",0),f()(l()(A),"_scrollbarPresenceChanged",!1),f()(l()(A),"_scrollingContainer",void 0),f()(l()(A),"_childrenToDisplay",void 0),f()(l()(A),"_columnStartIndex",void 0),f()(l()(A),"_columnStopIndex",void 0),f()(l()(A),"_rowStartIndex",void 0),f()(l()(A),"_rowStopIndex",void 0),f()(l()(A),"_renderedColumnStartIndex",0),f()(l()(A),"_renderedColumnStopIndex",0),f()(l()(A),"_renderedRowStartIndex",0),f()(l()(A),"_renderedRowStopIndex",0),f()(l()(A),"_initialScrollTop",void 0),f()(l()(A),"_initialScrollLeft",void 0),f()(l()(A),"_disablePointerEventsTimeoutId",void 0),f()(l()(A),"_styleCache",{}),f()(l()(A),"_cellCache",{}),f()(l()(A),"_debounceScrollEndedCallback",(function(){A._disablePointerEventsTimeoutId=null,A.setState({isScrolling:!1,needToResetStyleCache:!1})})),f()(l()(A),"_invokeOnGridRenderedHelper",(function(){var e=A.props.onSectionRendered;A._onGridRenderedMemoizer({callback:e,indices:{columnOverscanStartIndex:A._columnStartIndex,columnOverscanStopIndex:A._columnStopIndex,columnStartIndex:A._renderedColumnStartIndex,columnStopIndex:A._renderedColumnStopIndex,rowOverscanStartIndex:A._rowStartIndex,rowOverscanStopIndex:A._rowStopIndex,rowStartIndex:A._renderedRowStartIndex,rowStopIndex:A._renderedRowStopIndex}})})),f()(l()(A),"_setScrollingContainerRef",(function(e){A._scrollingContainer=e})),f()(l()(A),"_onScroll",(function(e){e.target===A._scrollingContainer&&A.handleScrollEvent(e.target)}));var n=new S({cellCount:e.columnCount,cellSizeGetter:function(A){return t._wrapSizeGetter(e.columnWidth)(A)},estimatedCellSize:t._getEstimatedColumnSize(e)}),i=new S({cellCount:e.rowCount,cellSizeGetter:function(A){return t._wrapSizeGetter(e.rowHeight)(A)},estimatedCellSize:t._getEstimatedRowSize(e)});return A.state={instanceProps:{columnSizeAndPositionManager:n,rowSizeAndPositionManager:i,prevColumnWidth:e.columnWidth,prevRowHeight:e.rowHeight,prevColumnCount:e.columnCount,prevRowCount:e.rowCount,prevIsScrolling:!0===e.isScrolling,prevScrollToColumn:e.scrollToColumn,prevScrollToRow:e.scrollToRow,scrollbarSize:0,scrollbarSizeMeasured:!1},isScrolling:!1,scrollDirectionHorizontal:1,scrollDirectionVertical:1,scrollLeft:0,scrollTop:0,scrollPositionChangeReason:null,needToResetStyleCache:!1},e.scrollToRow>0&&(A._initialScrollTop=A._getCalculatedScrollTop(e,A.state)),e.scrollToColumn>0&&(A._initialScrollLeft=A._getCalculatedScrollLeft(e,A.state)),A}return C()(t,e),o()(t,[{key:"getOffsetForCell",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.alignment,A=void 0===t?this.props.scrollToAlignment:t,n=e.columnIndex,r=void 0===n?this.props.scrollToColumn:n,i=e.rowIndex,o=void 0===i?this.props.scrollToRow:i,a=Y({},this.props,{scrollToAlignment:A,scrollToColumn:r,scrollToRow:o});return{scrollLeft:this._getCalculatedScrollLeft(a),scrollTop:this._getCalculatedScrollTop(a)}}},{key:"getTotalRowsHeight",value:function(){return this.state.instanceProps.rowSizeAndPositionManager.getTotalSize()}},{key:"getTotalColumnsWidth",value:function(){return this.state.instanceProps.columnSizeAndPositionManager.getTotalSize()}},{key:"handleScrollEvent",value:function(e){var t=e.scrollLeft,A=void 0===t?0:t,n=e.scrollTop,r=void 0===n?0:n;if(!(r<0)){this._debounceScrollEnded();var i=this.props,o=i.autoHeight,a=i.autoWidth,s=i.height,g=i.width,c=this.state.instanceProps,u=c.scrollbarSize,l=c.rowSizeAndPositionManager.getTotalSize(),I=c.columnSizeAndPositionManager.getTotalSize(),C=Math.min(Math.max(0,I-g+u),A),h=Math.min(Math.max(0,l-s+u),r);if(this.state.scrollLeft!==C||this.state.scrollTop!==h){var f={isScrolling:!0,scrollDirectionHorizontal:C!==this.state.scrollLeft?C>this.state.scrollLeft?1:-1:this.state.scrollDirectionHorizontal,scrollDirectionVertical:h!==this.state.scrollTop?h>this.state.scrollTop?1:-1:this.state.scrollDirectionVertical,scrollPositionChangeReason:J};o||(f.scrollTop=h),a||(f.scrollLeft=C),f.needToResetStyleCache=!1,this.setState(f)}this._invokeOnScrollMemoizer({scrollLeft:C,scrollTop:h,totalColumnsWidth:I,totalRowsHeight:l})}}},{key:"invalidateCellSizeAfterRender",value:function(e){var t=e.columnIndex,A=e.rowIndex;this._deferredInvalidateColumnIndex="number"===typeof this._deferredInvalidateColumnIndex?Math.min(this._deferredInvalidateColumnIndex,t):t,this._deferredInvalidateRowIndex="number"===typeof this._deferredInvalidateRowIndex?Math.min(this._deferredInvalidateRowIndex,A):A}},{key:"measureAllCells",value:function(){var e=this.props,t=e.columnCount,A=e.rowCount,n=this.state.instanceProps;n.columnSizeAndPositionManager.getSizeAndPositionOfCell(t-1),n.rowSizeAndPositionManager.getSizeAndPositionOfCell(A-1)}},{key:"recomputeGridSize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.columnIndex,A=void 0===t?0:t,n=e.rowIndex,r=void 0===n?0:n,i=this.props,o=i.scrollToColumn,a=i.scrollToRow,s=this.state.instanceProps;s.columnSizeAndPositionManager.resetCell(A),s.rowSizeAndPositionManager.resetCell(r),this._recomputeScrollLeftFlag=o>=0&&(1===this.state.scrollDirectionHorizontal?A<=o:A>=o),this._recomputeScrollTopFlag=a>=0&&(1===this.state.scrollDirectionVertical?r<=a:r>=a),this._styleCache={},this._cellCache={},this.forceUpdate()}},{key:"scrollToCell",value:function(e){var t=e.columnIndex,A=e.rowIndex,n=this.props.columnCount,r=this.props;n>1&&void 0!==t&&this._updateScrollLeftForScrollToColumn(Y({},r,{scrollToColumn:t})),void 0!==A&&this._updateScrollTopForScrollToRow(Y({},r,{scrollToRow:A}))}},{key:"componentDidMount",value:function(){var e=this.props,A=e.getScrollbarSize,n=e.height,r=e.scrollLeft,i=e.scrollToColumn,o=e.scrollTop,a=e.scrollToRow,s=e.width,g=this.state.instanceProps;if(this._initialScrollTop=0,this._initialScrollLeft=0,this._handleInvalidatedGridSize(),g.scrollbarSizeMeasured||this.setState((function(e){var t=Y({},e,{needToResetStyleCache:!1});return t.instanceProps.scrollbarSize=A(),t.instanceProps.scrollbarSizeMeasured=!0,t})),"number"===typeof r&&r>=0||"number"===typeof o&&o>=0){var c=t._getScrollToPositionStateUpdate({prevState:this.state,scrollLeft:r,scrollTop:o});c&&(c.needToResetStyleCache=!1,this.setState(c))}this._scrollingContainer&&(this._scrollingContainer.scrollLeft!==this.state.scrollLeft&&(this._scrollingContainer.scrollLeft=this.state.scrollLeft),this._scrollingContainer.scrollTop!==this.state.scrollTop&&(this._scrollingContainer.scrollTop=this.state.scrollTop));var u=n>0&&s>0;i>=0&&u&&this._updateScrollLeftForScrollToColumn(),a>=0&&u&&this._updateScrollTopForScrollToRow(),this._invokeOnGridRenderedHelper(),this._invokeOnScrollMemoizer({scrollLeft:r||0,scrollTop:o||0,totalColumnsWidth:g.columnSizeAndPositionManager.getTotalSize(),totalRowsHeight:g.rowSizeAndPositionManager.getTotalSize()}),this._maybeCallOnScrollbarPresenceChange()}},{key:"componentDidUpdate",value:function(e,t){var A=this,n=this.props,r=n.autoHeight,i=n.autoWidth,o=n.columnCount,a=n.height,s=n.rowCount,g=n.scrollToAlignment,c=n.scrollToColumn,u=n.scrollToRow,l=n.width,I=this.state,C=I.scrollLeft,h=I.scrollPositionChangeReason,f=I.scrollTop,d=I.instanceProps;this._handleInvalidatedGridSize();var B=o>0&&0===e.columnCount||s>0&&0===e.rowCount;h===j&&(!i&&C>=0&&(C!==this._scrollingContainer.scrollLeft||B)&&(this._scrollingContainer.scrollLeft=C),!r&&f>=0&&(f!==this._scrollingContainer.scrollTop||B)&&(this._scrollingContainer.scrollTop=f));var p=(0===e.width||0===e.height)&&a>0&&l>0;if(this._recomputeScrollLeftFlag?(this._recomputeScrollLeftFlag=!1,this._updateScrollLeftForScrollToColumn(this.props)):R({cellSizeAndPositionManager:d.columnSizeAndPositionManager,previousCellsCount:e.columnCount,previousCellSize:e.columnWidth,previousScrollToAlignment:e.scrollToAlignment,previousScrollToIndex:e.scrollToColumn,previousSize:e.width,scrollOffset:C,scrollToAlignment:g,scrollToIndex:c,size:l,sizeJustIncreasedFromZero:p,updateScrollIndexCallback:function(){return A._updateScrollLeftForScrollToColumn(A.props)}}),this._recomputeScrollTopFlag?(this._recomputeScrollTopFlag=!1,this._updateScrollTopForScrollToRow(this.props)):R({cellSizeAndPositionManager:d.rowSizeAndPositionManager,previousCellsCount:e.rowCount,previousCellSize:e.rowHeight,previousScrollToAlignment:e.scrollToAlignment,previousScrollToIndex:e.scrollToRow,previousSize:e.height,scrollOffset:f,scrollToAlignment:g,scrollToIndex:u,size:a,sizeJustIncreasedFromZero:p,updateScrollIndexCallback:function(){return A._updateScrollTopForScrollToRow(A.props)}}),this._invokeOnGridRenderedHelper(),C!==t.scrollLeft||f!==t.scrollTop){var E=d.rowSizeAndPositionManager.getTotalSize(),Q=d.columnSizeAndPositionManager.getTotalSize();this._invokeOnScrollMemoizer({scrollLeft:C,scrollTop:f,totalColumnsWidth:Q,totalRowsHeight:E})}this._maybeCallOnScrollbarPresenceChange()}},{key:"componentWillUnmount",value:function(){this._disablePointerEventsTimeoutId&&T(this._disablePointerEventsTimeoutId)}},{key:"render",value:function(){var e=this.props,t=e.autoContainerWidth,A=e.autoHeight,n=e.autoWidth,r=e.className,i=e.containerProps,o=e.containerRole,a=e.containerStyle,s=e.height,g=e.id,c=e.noContentRenderer,u=e.role,l=e.style,I=e.tabIndex,C=e.width,h=this.state,f=h.instanceProps,B=h.needToResetStyleCache,p=this._isScrolling(),y={boxSizing:"border-box",direction:"ltr",height:A?"auto":s,position:"relative",width:n?"auto":C,WebkitOverflowScrolling:"touch",willChange:"transform"};B&&(this._styleCache={}),this.state.isScrolling||this._resetStyleCache(),this._calculateChildrenToRender(this.props,this.state);var v=f.columnSizeAndPositionManager.getTotalSize(),m=f.rowSizeAndPositionManager.getTotalSize(),b=m>s?f.scrollbarSize:0,w=v>C?f.scrollbarSize:0;w===this._horizontalScrollBarSize&&b===this._verticalScrollBarSize||(this._horizontalScrollBarSize=w,this._verticalScrollBarSize=b,this._scrollbarPresenceChanged=!0),y.overflowX=v+b<=C?"hidden":"auto",y.overflowY=m+w<=s?"hidden":"auto";var S=this._childrenToDisplay,F=0===S.length&&s>0&&C>0;return d.createElement("div",E()({ref:this._setScrollingContainerRef},i,{"aria-label":this.props["aria-label"],"aria-readonly":this.props["aria-readonly"],className:Object(Q.a)("ReactVirtualized__Grid",r),id:g,onScroll:this._onScroll,role:u,style:Y({},y,{},l),tabIndex:I}),S.length>0&&d.createElement("div",{className:"ReactVirtualized__Grid__innerScrollContainer",role:o,style:Y({width:t?"auto":v,height:m,maxWidth:v,maxHeight:m,overflow:"hidden",pointerEvents:p?"none":"",position:"relative"},a)},S),F&&c())}},{key:"_calculateChildrenToRender",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state,A=e.cellRenderer,n=e.cellRangeRenderer,r=e.columnCount,i=e.deferredMeasurementCache,o=e.height,a=e.overscanColumnCount,s=e.overscanIndicesGetter,g=e.overscanRowCount,c=e.rowCount,u=e.width,l=e.isScrollingOptOut,I=t.scrollDirectionHorizontal,C=t.scrollDirectionVertical,h=t.instanceProps,f=this._initialScrollTop>0?this._initialScrollTop:t.scrollTop,d=this._initialScrollLeft>0?this._initialScrollLeft:t.scrollLeft,B=this._isScrolling(e,t);if(this._childrenToDisplay=[],o>0&&u>0){var p=h.columnSizeAndPositionManager.getVisibleCellRange({containerSize:u,offset:d}),E=h.rowSizeAndPositionManager.getVisibleCellRange({containerSize:o,offset:f}),Q=h.columnSizeAndPositionManager.getOffsetAdjustment({containerSize:u,offset:d}),y=h.rowSizeAndPositionManager.getOffsetAdjustment({containerSize:o,offset:f});this._renderedColumnStartIndex=p.start,this._renderedColumnStopIndex=p.stop,this._renderedRowStartIndex=E.start,this._renderedRowStopIndex=E.stop;var v=s({direction:"horizontal",cellCount:r,overscanCellsCount:a,scrollDirection:I,startIndex:"number"===typeof p.start?p.start:0,stopIndex:"number"===typeof p.stop?p.stop:-1}),m=s({direction:"vertical",cellCount:c,overscanCellsCount:g,scrollDirection:C,startIndex:"number"===typeof E.start?E.start:0,stopIndex:"number"===typeof E.stop?E.stop:-1}),b=v.overscanStartIndex,w=v.overscanStopIndex,S=m.overscanStartIndex,F=m.overscanStopIndex;if(i){if(!i.hasFixedHeight())for(var R=S;R<=F;R++)if(!i.has(R,0)){b=0,w=r-1;break}if(!i.hasFixedWidth())for(var D=b;D<=w;D++)if(!i.has(0,D)){S=0,F=c-1;break}}this._childrenToDisplay=n({cellCache:this._cellCache,cellRenderer:A,columnSizeAndPositionManager:h.columnSizeAndPositionManager,columnStartIndex:b,columnStopIndex:w,deferredMeasurementCache:i,horizontalOffsetAdjustment:Q,isScrolling:B,isScrollingOptOut:l,parent:this,rowSizeAndPositionManager:h.rowSizeAndPositionManager,rowStartIndex:S,rowStopIndex:F,scrollLeft:d,scrollTop:f,styleCache:this._styleCache,verticalOffsetAdjustment:y,visibleColumnIndices:p,visibleRowIndices:E}),this._columnStartIndex=b,this._columnStopIndex=w,this._rowStartIndex=S,this._rowStopIndex=F}}},{key:"_debounceScrollEnded",value:function(){var e=this.props.scrollingResetTimeInterval;this._disablePointerEventsTimeoutId&&T(this._disablePointerEventsTimeoutId),this._disablePointerEventsTimeoutId=Z(this._debounceScrollEndedCallback,e)}},{key:"_handleInvalidatedGridSize",value:function(){if("number"===typeof this._deferredInvalidateColumnIndex&&"number"===typeof this._deferredInvalidateRowIndex){var e=this._deferredInvalidateColumnIndex,t=this._deferredInvalidateRowIndex;this._deferredInvalidateColumnIndex=null,this._deferredInvalidateRowIndex=null,this.recomputeGridSize({columnIndex:e,rowIndex:t})}}},{key:"_invokeOnScrollMemoizer",value:function(e){var t=this,A=e.scrollLeft,n=e.scrollTop,r=e.totalColumnsWidth,i=e.totalRowsHeight;this._onScrollMemoizer({callback:function(e){var A=e.scrollLeft,n=e.scrollTop,o=t.props,a=o.height;(0,o.onScroll)({clientHeight:a,clientWidth:o.width,scrollHeight:i,scrollLeft:A,scrollTop:n,scrollWidth:r})},indices:{scrollLeft:A,scrollTop:n}})}},{key:"_isScrolling",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state;return Object.hasOwnProperty.call(e,"isScrolling")?Boolean(e.isScrolling):Boolean(t.isScrolling)}},{key:"_maybeCallOnScrollbarPresenceChange",value:function(){if(this._scrollbarPresenceChanged){var e=this.props.onScrollbarPresenceChange;this._scrollbarPresenceChanged=!1,e({horizontal:this._horizontalScrollBarSize>0,size:this.state.instanceProps.scrollbarSize,vertical:this._verticalScrollBarSize>0})}}},{key:"scrollToPosition",value:function(e){var A=e.scrollLeft,n=e.scrollTop,r=t._getScrollToPositionStateUpdate({prevState:this.state,scrollLeft:A,scrollTop:n});r&&(r.needToResetStyleCache=!1,this.setState(r))}},{key:"_getCalculatedScrollLeft",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state;return t._getCalculatedScrollLeft(e,A)}},{key:"_updateScrollLeftForScrollToColumn",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state,n=t._getScrollLeftForScrollToColumnStateUpdate(e,A);n&&(n.needToResetStyleCache=!1,this.setState(n))}},{key:"_getCalculatedScrollTop",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state;return t._getCalculatedScrollTop(e,A)}},{key:"_resetStyleCache",value:function(){var e=this._styleCache,t=this._cellCache,A=this.props.isScrollingOptOut;this._cellCache={},this._styleCache={};for(var n=this._rowStartIndex;n<=this._rowStopIndex;n++)for(var r=this._columnStartIndex;r<=this._columnStopIndex;r++){var i="".concat(n,"-").concat(r);this._styleCache[i]=e[i],A&&(this._cellCache[i]=t[i])}}},{key:"_updateScrollTopForScrollToRow",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state,n=t._getScrollTopForScrollToRowStateUpdate(e,A);n&&(n.needToResetStyleCache=!1,this.setState(n))}}],[{key:"getDerivedStateFromProps",value:function(e,A){var n={};0===e.columnCount&&0!==A.scrollLeft||0===e.rowCount&&0!==A.scrollTop?(n.scrollLeft=0,n.scrollTop=0):(e.scrollLeft!==A.scrollLeft&&e.scrollToColumn<0||e.scrollTop!==A.scrollTop&&e.scrollToRow<0)&&Object.assign(n,t._getScrollToPositionStateUpdate({prevState:A,scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}));var r,i,o=A.instanceProps;return n.needToResetStyleCache=!1,e.columnWidth===o.prevColumnWidth&&e.rowHeight===o.prevRowHeight||(n.needToResetStyleCache=!0),o.columnSizeAndPositionManager.configure({cellCount:e.columnCount,estimatedCellSize:t._getEstimatedColumnSize(e),cellSizeGetter:t._wrapSizeGetter(e.columnWidth)}),o.rowSizeAndPositionManager.configure({cellCount:e.rowCount,estimatedCellSize:t._getEstimatedRowSize(e),cellSizeGetter:t._wrapSizeGetter(e.rowHeight)}),0!==o.prevColumnCount&&0!==o.prevRowCount||(o.prevColumnCount=0,o.prevRowCount=0),e.autoHeight&&!1===e.isScrolling&&!0===o.prevIsScrolling&&Object.assign(n,{isScrolling:!1}),y({cellCount:o.prevColumnCount,cellSize:"number"===typeof o.prevColumnWidth?o.prevColumnWidth:null,computeMetadataCallback:function(){return o.columnSizeAndPositionManager.resetCell(0)},computeMetadataCallbackProps:e,nextCellsCount:e.columnCount,nextCellSize:"number"===typeof e.columnWidth?e.columnWidth:null,nextScrollToIndex:e.scrollToColumn,scrollToIndex:o.prevScrollToColumn,updateScrollOffsetForScrollToIndex:function(){r=t._getScrollLeftForScrollToColumnStateUpdate(e,A)}}),y({cellCount:o.prevRowCount,cellSize:"number"===typeof o.prevRowHeight?o.prevRowHeight:null,computeMetadataCallback:function(){return o.rowSizeAndPositionManager.resetCell(0)},computeMetadataCallbackProps:e,nextCellsCount:e.rowCount,nextCellSize:"number"===typeof e.rowHeight?e.rowHeight:null,nextScrollToIndex:e.scrollToRow,scrollToIndex:o.prevScrollToRow,updateScrollOffsetForScrollToIndex:function(){i=t._getScrollTopForScrollToRowStateUpdate(e,A)}}),o.prevColumnCount=e.columnCount,o.prevColumnWidth=e.columnWidth,o.prevIsScrolling=!0===e.isScrolling,o.prevRowCount=e.rowCount,o.prevRowHeight=e.rowHeight,o.prevScrollToColumn=e.scrollToColumn,o.prevScrollToRow=e.scrollToRow,o.scrollbarSize=e.getScrollbarSize(),void 0===o.scrollbarSize?(o.scrollbarSizeMeasured=!1,o.scrollbarSize=0):o.scrollbarSizeMeasured=!0,n.instanceProps=o,Y({},n,{},r,{},i)}},{key:"_getEstimatedColumnSize",value:function(e){return"number"===typeof e.columnWidth?e.columnWidth:e.estimatedColumnSize}},{key:"_getEstimatedRowSize",value:function(e){return"number"===typeof e.rowHeight?e.rowHeight:e.estimatedRowSize}},{key:"_getScrollToPositionStateUpdate",value:function(e){var t=e.prevState,A=e.scrollLeft,n=e.scrollTop,r={scrollPositionChangeReason:j};return"number"===typeof A&&A>=0&&(r.scrollDirectionHorizontal=A>t.scrollLeft?1:-1,r.scrollLeft=A),"number"===typeof n&&n>=0&&(r.scrollDirectionVertical=n>t.scrollTop?1:-1,r.scrollTop=n),"number"===typeof A&&A>=0&&A!==t.scrollLeft||"number"===typeof n&&n>=0&&n!==t.scrollTop?r:{}}},{key:"_wrapSizeGetter",value:function(e){return"function"===typeof e?e:function(){return e}}},{key:"_getCalculatedScrollLeft",value:function(e,t){var A=e.columnCount,n=e.height,r=e.scrollToAlignment,i=e.scrollToColumn,o=e.width,a=t.scrollLeft,s=t.instanceProps;if(A>0){var g=A-1,c=i<0?g:Math.min(g,i),u=s.rowSizeAndPositionManager.getTotalSize(),l=s.scrollbarSizeMeasured&&u>n?s.scrollbarSize:0;return s.columnSizeAndPositionManager.getUpdatedOffsetForIndex({align:r,containerSize:o-l,currentOffset:a,targetIndex:c})}return 0}},{key:"_getScrollLeftForScrollToColumnStateUpdate",value:function(e,A){var n=A.scrollLeft,r=t._getCalculatedScrollLeft(e,A);return"number"===typeof r&&r>=0&&n!==r?t._getScrollToPositionStateUpdate({prevState:A,scrollLeft:r,scrollTop:-1}):{}}},{key:"_getCalculatedScrollTop",value:function(e,t){var A=e.height,n=e.rowCount,r=e.scrollToAlignment,i=e.scrollToRow,o=e.width,a=t.scrollTop,s=t.instanceProps;if(n>0){var g=n-1,c=i<0?g:Math.min(g,i),u=s.columnSizeAndPositionManager.getTotalSize(),l=s.scrollbarSizeMeasured&&u>o?s.scrollbarSize:0;return s.rowSizeAndPositionManager.getUpdatedOffsetForIndex({align:r,containerSize:A-l,currentOffset:a,targetIndex:c})}return 0}},{key:"_getScrollTopForScrollToRowStateUpdate",value:function(e,A){var n=A.scrollTop,r=t._getCalculatedScrollTop(e,A);return"number"===typeof r&&r>=0&&n!==r?t._getScrollToPositionStateUpdate({prevState:A,scrollLeft:-1,scrollTop:r}):{}}}]),t}(d.PureComponent),f()(N,"propTypes",null),U);f()(P,"defaultProps",{"aria-label":"grid","aria-readonly":!0,autoContainerWidth:!1,autoHeight:!1,autoWidth:!1,cellRangeRenderer:function(e){for(var t=e.cellCache,A=e.cellRenderer,n=e.columnSizeAndPositionManager,r=e.columnStartIndex,i=e.columnStopIndex,o=e.deferredMeasurementCache,a=e.horizontalOffsetAdjustment,s=e.isScrolling,g=e.isScrollingOptOut,c=e.parent,u=e.rowSizeAndPositionManager,l=e.rowStartIndex,I=e.rowStopIndex,C=e.styleCache,h=e.verticalOffsetAdjustment,f=e.visibleColumnIndices,d=e.visibleRowIndices,B=[],p=n.areOffsetsAdjusted()||u.areOffsetsAdjusted(),E=!s&&!p,Q=l;Q<=I;Q++)for(var y=u.getSizeAndPositionOfCell(Q),v=r;v<=i;v++){var m=n.getSizeAndPositionOfCell(v),b=v>=f.start&&v<=f.stop&&Q>=d.start&&Q<=d.stop,w="".concat(Q,"-").concat(v),S=void 0;E&&C[w]?S=C[w]:o&&!o.has(Q,v)?S={height:"auto",left:0,position:"absolute",top:0,width:"auto"}:(S={height:y.size,left:m.offset+a,position:"absolute",top:y.offset+h,width:m.size},C[w]=S);var F={columnIndex:v,isScrolling:s,isVisible:b,key:w,parent:c,rowIndex:Q,style:S},R=void 0;!g&&!s||a||h?R=A(F):(t[w]||(t[w]=A(F)),R=t[w]),null!=R&&!1!==R&&B.push(R)}return B},containerRole:"rowgroup",containerStyle:{},estimatedColumnSize:100,estimatedRowSize:30,getScrollbarSize:x,noContentRenderer:function(){return null},onScroll:function(){},onScrollbarPresenceChange:function(){},onSectionRendered:function(){},overscanColumnCount:0,overscanIndicesGetter:function(e){var t=e.cellCount,A=e.overscanCellsCount,n=e.scrollDirection,r=e.startIndex,i=e.stopIndex;return 1===n?{overscanStartIndex:Math.max(0,r),overscanStopIndex:Math.min(t-1,i+A)}:{overscanStartIndex:Math.max(0,r-A),overscanStopIndex:Math.min(t-1,i)}},overscanRowCount:10,role:"grid",scrollingResetTimeInterval:150,scrollToAlignment:"auto",scrollToColumn:-1,scrollToRow:-1,style:{},tabIndex:0,isScrollingOptOut:!1}),Object(B.a)(P);var V=P;function K(e){var t=e.cellCount,A=e.overscanCellsCount,n=e.scrollDirection,r=e.startIndex,i=e.stopIndex;return A=Math.max(1,A),1===n?{overscanStartIndex:Math.max(0,r-1),overscanStopIndex:Math.min(t-1,i+A)}:{overscanStartIndex:Math.max(0,r-A),overscanStopIndex:Math.min(t-1,i+1)}}var W,X;function q(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}var z=(X=W=function(e){function t(){var e,A;r()(this,t);for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return A=s()(this,(e=c()(t)).call.apply(e,[this].concat(i))),f()(l()(A),"state",{scrollToColumn:0,scrollToRow:0,instanceProps:{prevScrollToColumn:0,prevScrollToRow:0}}),f()(l()(A),"_columnStartIndex",0),f()(l()(A),"_columnStopIndex",0),f()(l()(A),"_rowStartIndex",0),f()(l()(A),"_rowStopIndex",0),f()(l()(A),"_onKeyDown",(function(e){var t=A.props,n=t.columnCount,r=t.disabled,i=t.mode,o=t.rowCount;if(!r){var a=A._getScrollState(),s=a.scrollToColumn,g=a.scrollToRow,c=A._getScrollState(),u=c.scrollToColumn,l=c.scrollToRow;switch(e.key){case"ArrowDown":l="cells"===i?Math.min(l+1,o-1):Math.min(A._rowStopIndex+1,o-1);break;case"ArrowLeft":u="cells"===i?Math.max(u-1,0):Math.max(A._columnStartIndex-1,0);break;case"ArrowRight":u="cells"===i?Math.min(u+1,n-1):Math.min(A._columnStopIndex+1,n-1);break;case"ArrowUp":l="cells"===i?Math.max(l-1,0):Math.max(A._rowStartIndex-1,0)}u===s&&l===g||(e.preventDefault(),A._updateScrollState({scrollToColumn:u,scrollToRow:l}))}})),f()(l()(A),"_onSectionRendered",(function(e){var t=e.columnStartIndex,n=e.columnStopIndex,r=e.rowStartIndex,i=e.rowStopIndex;A._columnStartIndex=t,A._columnStopIndex=n,A._rowStartIndex=r,A._rowStopIndex=i})),A}return C()(t,e),o()(t,[{key:"setScrollIndexes",value:function(e){var t=e.scrollToColumn,A=e.scrollToRow;this.setState({scrollToRow:A,scrollToColumn:t})}},{key:"render",value:function(){var e=this.props,t=e.className,A=e.children,n=this._getScrollState(),r=n.scrollToColumn,i=n.scrollToRow;return d.createElement("div",{className:t,onKeyDown:this._onKeyDown},A({onSectionRendered:this._onSectionRendered,scrollToColumn:r,scrollToRow:i}))}},{key:"_getScrollState",value:function(){return this.props.isControlled?this.props:this.state}},{key:"_updateScrollState",value:function(e){var t=e.scrollToColumn,A=e.scrollToRow,n=this.props,r=n.isControlled,i=n.onScrollToChange;"function"===typeof i&&i({scrollToColumn:t,scrollToRow:A}),r||this.setState({scrollToColumn:t,scrollToRow:A})}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.isControlled?{}:e.scrollToColumn!==t.instanceProps.prevScrollToColumn||e.scrollToRow!==t.instanceProps.prevScrollToRow?function(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?q(A,!0).forEach((function(t){f()(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):q(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}({},t,{scrollToColumn:e.scrollToColumn,scrollToRow:e.scrollToRow,instanceProps:{prevScrollToColumn:e.scrollToColumn,prevScrollToRow:e.scrollToRow}}):{}}}]),t}(d.PureComponent),f()(W,"propTypes",null),X);f()(z,"defaultProps",{disabled:!1,isControlled:!1,mode:"edges",scrollToColumn:0,scrollToRow:0}),Object(B.a)(z);var $,ee,te=A(415);function Ae(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function ne(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?Ae(A,!0).forEach((function(t){f()(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):Ae(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}var re=(ee=$=function(e){function t(){var e,A;r()(this,t);for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return A=s()(this,(e=c()(t)).call.apply(e,[this].concat(i))),f()(l()(A),"state",{height:A.props.defaultHeight||0,width:A.props.defaultWidth||0}),f()(l()(A),"_parentNode",void 0),f()(l()(A),"_autoSizer",void 0),f()(l()(A),"_window",void 0),f()(l()(A),"_detectElementResize",void 0),f()(l()(A),"_onResize",(function(){var e=A.props,t=e.disableHeight,n=e.disableWidth,r=e.onResize;if(A._parentNode){var i=A._parentNode.offsetHeight||0,o=A._parentNode.offsetWidth||0,a=(A._window||window).getComputedStyle(A._parentNode)||{},s=parseInt(a.paddingLeft,10)||0,g=parseInt(a.paddingRight,10)||0,c=parseInt(a.paddingTop,10)||0,u=parseInt(a.paddingBottom,10)||0,l=i-c-u,I=o-s-g;(!t&&A.state.height!==l||!n&&A.state.width!==I)&&(A.setState({height:i-c-u,width:o-s-g}),r({height:i,width:o}))}})),f()(l()(A),"_setRef",(function(e){A._autoSizer=e})),A}return C()(t,e),o()(t,[{key:"componentDidMount",value:function(){var e=this.props.nonce;this._autoSizer&&this._autoSizer.parentNode&&this._autoSizer.parentNode.ownerDocument&&this._autoSizer.parentNode.ownerDocument.defaultView&&this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement&&(this._parentNode=this._autoSizer.parentNode,this._window=this._autoSizer.parentNode.ownerDocument.defaultView,this._detectElementResize=Object(te.a)(e,this._window),this._detectElementResize.addResizeListener(this._parentNode,this._onResize),this._onResize())}},{key:"componentWillUnmount",value:function(){this._detectElementResize&&this._parentNode&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize)}},{key:"render",value:function(){var e=this.props,t=e.children,A=e.className,n=e.disableHeight,r=e.disableWidth,i=e.style,o=this.state,a=o.height,s=o.width,g={overflow:"visible"},c={};return n||(g.height=0,c.height=a),r||(g.width=0,c.width=s),d.createElement("div",{className:A,ref:this._setRef,style:ne({},g,{},i)},t(c))}}]),t}(d.Component),f()($,"propTypes",null),ee);f()(re,"defaultProps",{onResize:function(){},disableHeight:!1,disableWidth:!1,style:{}});var ie,oe,ae=A(39),se=(oe=ie=function(e){function t(){var e,A;r()(this,t);for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return A=s()(this,(e=c()(t)).call.apply(e,[this].concat(i))),f()(l()(A),"_child",void 0),f()(l()(A),"_measure",(function(){var e=A.props,t=e.cache,n=e.columnIndex,r=void 0===n?0:n,i=e.parent,o=e.rowIndex,a=void 0===o?A.props.index||0:o,s=A._getCellMeasurements(),g=s.height,c=s.width;g===t.getHeight(a,r)&&c===t.getWidth(a,r)||(t.set(a,r,c,g),i&&"function"===typeof i.recomputeGridSize&&i.recomputeGridSize({columnIndex:r,rowIndex:a}))})),f()(l()(A),"_registerChild",(function(e){!e||e instanceof Element||console.warn("CellMeasurer registerChild expects to be passed Element or null"),A._child=e,e&&A._maybeMeasureCell()})),A}return C()(t,e),o()(t,[{key:"componentDidMount",value:function(){this._maybeMeasureCell()}},{key:"componentDidUpdate",value:function(){this._maybeMeasureCell()}},{key:"render",value:function(){var e=this.props.children;return"function"===typeof e?e({measure:this._measure,registerChild:this._registerChild}):e}},{key:"_getCellMeasurements",value:function(){var e=this.props.cache,t=this._child||Object(ae.findDOMNode)(this);if(t&&t.ownerDocument&&t.ownerDocument.defaultView&&t instanceof t.ownerDocument.defaultView.HTMLElement){var A=t.style.width,n=t.style.height;e.hasFixedWidth()||(t.style.width="auto"),e.hasFixedHeight()||(t.style.height="auto");var r=Math.ceil(t.offsetHeight),i=Math.ceil(t.offsetWidth);return A&&(t.style.width=A),n&&(t.style.height=n),{height:r,width:i}}return{height:0,width:0}}},{key:"_maybeMeasureCell",value:function(){var e=this.props,t=e.cache,A=e.columnIndex,n=void 0===A?0:A,r=e.parent,i=e.rowIndex,o=void 0===i?this.props.index||0:i;if(!t.has(o,n)){var a=this._getCellMeasurements(),s=a.height,g=a.width;t.set(o,n,g,s),r&&"function"===typeof r.invalidateCellSizeAfterRender&&r.invalidateCellSizeAfterRender({columnIndex:n,rowIndex:o})}}}]),t}(d.PureComponent),f()(ie,"propTypes",null),oe);f()(se,"__internalCellMeasurerFlag",!1);function ge(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function ce(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?ge(A,!0).forEach((function(t){f()(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):ge(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}var ue="observed",le="requested",Ie=function(e){function t(){var e,A;r()(this,t);for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return A=s()(this,(e=c()(t)).call.apply(e,[this].concat(i))),f()(l()(A),"state",{isScrolling:!1,scrollLeft:0,scrollTop:0}),f()(l()(A),"_calculateSizeAndPositionDataOnNextUpdate",!1),f()(l()(A),"_onSectionRenderedMemoizer",F()),f()(l()(A),"_onScrollMemoizer",F(!1)),f()(l()(A),"_invokeOnSectionRenderedHelper",(function(){var e=A.props,t=e.cellLayoutManager,n=e.onSectionRendered;A._onSectionRenderedMemoizer({callback:n,indices:{indices:t.getLastRenderedIndices()}})})),f()(l()(A),"_setScrollingContainerRef",(function(e){A._scrollingContainer=e})),f()(l()(A),"_updateScrollPositionForScrollToCell",(function(){var e=A.props,t=e.cellLayoutManager,n=e.height,r=e.scrollToAlignment,i=e.scrollToCell,o=e.width,a=A.state,s=a.scrollLeft,g=a.scrollTop;if(i>=0){var c=t.getScrollPositionForCell({align:r,cellIndex:i,height:n,scrollLeft:s,scrollTop:g,width:o});c.scrollLeft===s&&c.scrollTop===g||A._setScrollPosition(c)}})),f()(l()(A),"_onScroll",(function(e){if(e.target===A._scrollingContainer){A._enablePointerEventsAfterDelay();var t=A.props,n=t.cellLayoutManager,r=t.height,i=t.isScrollingChange,o=t.width,a=A._scrollbarSize,s=n.getTotalSize(),g=s.height,c=s.width,u=Math.max(0,Math.min(c-o+a,e.target.scrollLeft)),l=Math.max(0,Math.min(g-r+a,e.target.scrollTop));if(A.state.scrollLeft!==u||A.state.scrollTop!==l){var I=e.cancelable?ue:le;A.state.isScrolling||i(!0),A.setState({isScrolling:!0,scrollLeft:u,scrollPositionChangeReason:I,scrollTop:l})}A._invokeOnScrollMemoizer({scrollLeft:u,scrollTop:l,totalWidth:c,totalHeight:g})}})),A._scrollbarSize=x(),void 0===A._scrollbarSize?(A._scrollbarSizeMeasured=!1,A._scrollbarSize=0):A._scrollbarSizeMeasured=!0,A}return C()(t,e),o()(t,[{key:"recomputeCellSizesAndPositions",value:function(){this._calculateSizeAndPositionDataOnNextUpdate=!0,this.forceUpdate()}},{key:"componentDidMount",value:function(){var e=this.props,t=e.cellLayoutManager,A=e.scrollLeft,n=e.scrollToCell,r=e.scrollTop;this._scrollbarSizeMeasured||(this._scrollbarSize=x(),this._scrollbarSizeMeasured=!0,this.setState({})),n>=0?this._updateScrollPositionForScrollToCell():(A>=0||r>=0)&&this._setScrollPosition({scrollLeft:A,scrollTop:r}),this._invokeOnSectionRenderedHelper();var i=t.getTotalSize(),o=i.height,a=i.width;this._invokeOnScrollMemoizer({scrollLeft:A||0,scrollTop:r||0,totalHeight:o,totalWidth:a})}},{key:"componentDidUpdate",value:function(e,t){var A=this.props,n=A.height,r=A.scrollToAlignment,i=A.scrollToCell,o=A.width,a=this.state,s=a.scrollLeft,g=a.scrollPositionChangeReason,c=a.scrollTop;g===le&&(s>=0&&s!==t.scrollLeft&&s!==this._scrollingContainer.scrollLeft&&(this._scrollingContainer.scrollLeft=s),c>=0&&c!==t.scrollTop&&c!==this._scrollingContainer.scrollTop&&(this._scrollingContainer.scrollTop=c)),n===e.height&&r===e.scrollToAlignment&&i===e.scrollToCell&&o===e.width||this._updateScrollPositionForScrollToCell(),this._invokeOnSectionRenderedHelper()}},{key:"componentWillUnmount",value:function(){this._disablePointerEventsTimeoutId&&clearTimeout(this._disablePointerEventsTimeoutId)}},{key:"render",value:function(){var e=this.props,t=e.autoHeight,A=e.cellCount,n=e.cellLayoutManager,r=e.className,i=e.height,o=e.horizontalOverscanSize,a=e.id,s=e.noContentRenderer,g=e.style,c=e.verticalOverscanSize,u=e.width,l=this.state,I=l.isScrolling,C=l.scrollLeft,h=l.scrollTop;(this._lastRenderedCellCount!==A||this._lastRenderedCellLayoutManager!==n||this._calculateSizeAndPositionDataOnNextUpdate)&&(this._lastRenderedCellCount=A,this._lastRenderedCellLayoutManager=n,this._calculateSizeAndPositionDataOnNextUpdate=!1,n.calculateSizeAndPositionData());var f=n.getTotalSize(),B=f.height,p=f.width,E=Math.max(0,C-o),y=Math.max(0,h-c),v=Math.min(p,C+u+o),m=Math.min(B,h+i+c),b=i>0&&u>0?n.cellRenderers({height:m-y,isScrolling:I,width:v-E,x:E,y:y}):[],w={boxSizing:"border-box",direction:"ltr",height:t?"auto":i,position:"relative",WebkitOverflowScrolling:"touch",width:u,willChange:"transform"},S=B>i?this._scrollbarSize:0,F=p>u?this._scrollbarSize:0;return w.overflowX=p+S<=u?"hidden":"auto",w.overflowY=B+F<=i?"hidden":"auto",d.createElement("div",{ref:this._setScrollingContainerRef,"aria-label":this.props["aria-label"],className:Object(Q.a)("ReactVirtualized__Collection",r),id:a,onScroll:this._onScroll,role:"grid",style:ce({},w,{},g),tabIndex:0},A>0&&d.createElement("div",{className:"ReactVirtualized__Collection__innerScrollContainer",style:{height:B,maxHeight:B,maxWidth:p,overflow:"hidden",pointerEvents:I?"none":"",width:p}},b),0===A&&s())}},{key:"_enablePointerEventsAfterDelay",value:function(){var e=this;this._disablePointerEventsTimeoutId&&clearTimeout(this._disablePointerEventsTimeoutId),this._disablePointerEventsTimeoutId=setTimeout((function(){(0,e.props.isScrollingChange)(!1),e._disablePointerEventsTimeoutId=null,e.setState({isScrolling:!1})}),150)}},{key:"_invokeOnScrollMemoizer",value:function(e){var t=this,A=e.scrollLeft,n=e.scrollTop,r=e.totalHeight,i=e.totalWidth;this._onScrollMemoizer({callback:function(e){var A=e.scrollLeft,n=e.scrollTop,o=t.props,a=o.height;(0,o.onScroll)({clientHeight:a,clientWidth:o.width,scrollHeight:r,scrollLeft:A,scrollTop:n,scrollWidth:i})},indices:{scrollLeft:A,scrollTop:n}})}},{key:"_setScrollPosition",value:function(e){var t=e.scrollLeft,A=e.scrollTop,n={scrollPositionChangeReason:le};t>=0&&(n.scrollLeft=t),A>=0&&(n.scrollTop=A),(t>=0&&t!==this.state.scrollLeft||A>=0&&A!==this.state.scrollTop)&&this.setState(n)}}],[{key:"getDerivedStateFromProps",value:function(e,t){return 0!==e.cellCount||0===t.scrollLeft&&0===t.scrollTop?e.scrollLeft!==t.scrollLeft||e.scrollTop!==t.scrollTop?{scrollLeft:null!=e.scrollLeft?e.scrollLeft:t.scrollLeft,scrollTop:null!=e.scrollTop?e.scrollTop:t.scrollTop,scrollPositionChangeReason:le}:null:{scrollLeft:0,scrollTop:0,scrollPositionChangeReason:le}}}]),t}(d.PureComponent);f()(Ie,"defaultProps",{"aria-label":"grid",horizontalOverscanSize:0,noContentRenderer:function(){return null},onScroll:function(){return null},onSectionRendered:function(){return null},scrollToAlignment:"auto",scrollToCell:-1,style:{},verticalOverscanSize:0}),Ie.propTypes={},Object(B.a)(Ie);var Ce=Ie,he=function(){function e(t){var A=t.height,n=t.width,i=t.x,o=t.y;r()(this,e),this.height=A,this.width=n,this.x=i,this.y=o,this._indexMap={},this._indices=[]}return o()(e,[{key:"addCellIndex",value:function(e){var t=e.index;this._indexMap[t]||(this._indexMap[t]=!0,this._indices.push(t))}},{key:"getCellIndices",value:function(){return this._indices}},{key:"toString",value:function(){return"".concat(this.x,",").concat(this.y," ").concat(this.width,"x").concat(this.height)}}]),e}(),fe=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100;r()(this,e),this._sectionSize=t,this._cellMetadata=[],this._sections={}}return o()(e,[{key:"getCellIndices",value:function(e){var t=e.height,A=e.width,n=e.x,r=e.y,i={};return this.getSections({height:t,width:A,x:n,y:r}).forEach((function(e){return e.getCellIndices().forEach((function(e){i[e]=e}))})),Object.keys(i).map((function(e){return i[e]}))}},{key:"getCellMetadata",value:function(e){var t=e.index;return this._cellMetadata[t]}},{key:"getSections",value:function(e){for(var t=e.height,A=e.width,n=e.x,r=e.y,i=Math.floor(n/this._sectionSize),o=Math.floor((n+A-1)/this._sectionSize),a=Math.floor(r/this._sectionSize),s=Math.floor((r+t-1)/this._sectionSize),g=[],c=i;c<=o;c++)for(var u=a;u<=s;u++){var l="".concat(c,".").concat(u);this._sections[l]||(this._sections[l]=new he({height:this._sectionSize,width:this._sectionSize,x:c*this._sectionSize,y:u*this._sectionSize})),g.push(this._sections[l])}return g}},{key:"getTotalSectionCount",value:function(){return Object.keys(this._sections).length}},{key:"toString",value:function(){var e=this;return Object.keys(this._sections).map((function(t){return e._sections[t].toString()}))}},{key:"registerCell",value:function(e){var t=e.cellMetadatum,A=e.index;this._cellMetadata[A]=t,this.getSections(t).forEach((function(e){return e.addCellIndex({index:A})}))}}]),e}();function de(e){var t=e.align,A=void 0===t?"auto":t,n=e.cellOffset,r=e.cellSize,i=e.containerSize,o=e.currentOffset,a=n,s=a-i+r;switch(A){case"start":return a;case"end":return s;case"center":return a-(i-r)/2;default:return Math.max(s,Math.min(a,o))}}var Be=function(e){function t(e,A){var n;return r()(this,t),(n=s()(this,c()(t).call(this,e,A)))._cellMetadata=[],n._lastRenderedCellIndices=[],n._cellCache=[],n._isScrollingChange=n._isScrollingChange.bind(l()(n)),n._setCollectionViewRef=n._setCollectionViewRef.bind(l()(n)),n}return C()(t,e),o()(t,[{key:"forceUpdate",value:function(){void 0!==this._collectionView&&this._collectionView.forceUpdate()}},{key:"recomputeCellSizesAndPositions",value:function(){this._cellCache=[],this._collectionView.recomputeCellSizesAndPositions()}},{key:"render",value:function(){var e=E()({},this.props);return d.createElement(Ce,E()({cellLayoutManager:this,isScrollingChange:this._isScrollingChange,ref:this._setCollectionViewRef},e))}},{key:"calculateSizeAndPositionData",value:function(){var e=this.props,t=function(e){for(var t=e.cellCount,A=e.cellSizeAndPositionGetter,n=e.sectionSize,r=[],i=new fe(n),o=0,a=0,s=0;s<t;s++){var g=A({index:s});if(null==g.height||isNaN(g.height)||null==g.width||isNaN(g.width)||null==g.x||isNaN(g.x)||null==g.y||isNaN(g.y))throw Error("Invalid metadata returned for cell ".concat(s,":\n x:").concat(g.x,", y:").concat(g.y,", width:").concat(g.width,", height:").concat(g.height));o=Math.max(o,g.y+g.height),a=Math.max(a,g.x+g.width),r[s]=g,i.registerCell({cellMetadatum:g,index:s})}return{cellMetadata:r,height:o,sectionManager:i,width:a}}({cellCount:e.cellCount,cellSizeAndPositionGetter:e.cellSizeAndPositionGetter,sectionSize:e.sectionSize});this._cellMetadata=t.cellMetadata,this._sectionManager=t.sectionManager,this._height=t.height,this._width=t.width}},{key:"getLastRenderedIndices",value:function(){return this._lastRenderedCellIndices}},{key:"getScrollPositionForCell",value:function(e){var t=e.align,A=e.cellIndex,n=e.height,r=e.scrollLeft,i=e.scrollTop,o=e.width,a=this.props.cellCount;if(A>=0&&A<a){var s=this._cellMetadata[A];r=de({align:t,cellOffset:s.x,cellSize:s.width,containerSize:o,currentOffset:r,targetIndex:A}),i=de({align:t,cellOffset:s.y,cellSize:s.height,containerSize:n,currentOffset:i,targetIndex:A})}return{scrollLeft:r,scrollTop:i}}},{key:"getTotalSize",value:function(){return{height:this._height,width:this._width}}},{key:"cellRenderers",value:function(e){var t=this,A=e.height,n=e.isScrolling,r=e.width,i=e.x,o=e.y,a=this.props,s=a.cellGroupRenderer,g=a.cellRenderer;return this._lastRenderedCellIndices=this._sectionManager.getCellIndices({height:A,width:r,x:i,y:o}),s({cellCache:this._cellCache,cellRenderer:g,cellSizeAndPositionGetter:function(e){var A=e.index;return t._sectionManager.getCellMetadata({index:A})},indices:this._lastRenderedCellIndices,isScrolling:n})}},{key:"_isScrollingChange",value:function(e){e||(this._cellCache=[])}},{key:"_setCollectionViewRef",value:function(e){this._collectionView=e}}]),t}(d.PureComponent);f()(Be,"defaultProps",{"aria-label":"grid",cellGroupRenderer:function(e){var t=e.cellCache,A=e.cellRenderer,n=e.cellSizeAndPositionGetter,r=e.indices,i=e.isScrolling;return r.map((function(e){var r=n({index:e}),o={index:e,isScrolling:i,key:e,style:{height:r.height,left:r.x,position:"absolute",top:r.y,width:r.width}};return i?(e in t||(t[e]=A(o)),t[e]):A(o)})).filter((function(e){return!!e}))}}),Be.propTypes={};var pe=function(e){function t(e,A){var n;return r()(this,t),(n=s()(this,c()(t).call(this,e,A)))._registerChild=n._registerChild.bind(l()(n)),n}return C()(t,e),o()(t,[{key:"componentDidUpdate",value:function(e){var t=this.props,A=t.columnMaxWidth,n=t.columnMinWidth,r=t.columnCount,i=t.width;A===e.columnMaxWidth&&n===e.columnMinWidth&&r===e.columnCount&&i===e.width||this._registeredChild&&this._registeredChild.recomputeGridSize()}},{key:"render",value:function(){var e=this.props,t=e.children,A=e.columnMaxWidth,n=e.columnMinWidth,r=e.columnCount,i=e.width,o=n||1,a=A?Math.min(A,i):i,s=i/r;return s=Math.max(o,s),s=Math.min(a,s),s=Math.floor(s),t({adjustedWidth:Math.min(i,s*r),columnWidth:s,getColumnWidth:function(){return s},registerChild:this._registerChild})}},{key:"_registerChild",value:function(e){if(e&&"function"!==typeof e.recomputeGridSize)throw Error("Unexpected child type registered; only Grid/MultiGrid children are supported.");this._registeredChild=e,this._registeredChild&&this._registeredChild.recomputeGridSize()}}]),t}(d.PureComponent);pe.propTypes={};var Ee=A(693),Qe=A.n(Ee),ye=function(e){function t(e,A){var n;return r()(this,t),(n=s()(this,c()(t).call(this,e,A)))._loadMoreRowsMemoizer=F(),n._onRowsRendered=n._onRowsRendered.bind(l()(n)),n._registerChild=n._registerChild.bind(l()(n)),n}return C()(t,e),o()(t,[{key:"resetLoadMoreRowsCache",value:function(e){this._loadMoreRowsMemoizer=F(),e&&this._doStuff(this._lastRenderedStartIndex,this._lastRenderedStopIndex)}},{key:"render",value:function(){return(0,this.props.children)({onRowsRendered:this._onRowsRendered,registerChild:this._registerChild})}},{key:"_loadUnloadedRanges",value:function(e){var t=this,A=this.props.loadMoreRows;e.forEach((function(e){var n=A(e);n&&n.then((function(){(function(e){var t=e.lastRenderedStartIndex,A=e.lastRenderedStopIndex,n=e.startIndex,r=e.stopIndex;return!(n>A||r<t)})({lastRenderedStartIndex:t._lastRenderedStartIndex,lastRenderedStopIndex:t._lastRenderedStopIndex,startIndex:e.startIndex,stopIndex:e.stopIndex})&&t._registeredChild&&function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A="function"===typeof e.recomputeGridSize?e.recomputeGridSize:e.recomputeRowHeights;A?A.call(e,t):e.forceUpdate()}(t._registeredChild,t._lastRenderedStartIndex)}))}))}},{key:"_onRowsRendered",value:function(e){var t=e.startIndex,A=e.stopIndex;this._lastRenderedStartIndex=t,this._lastRenderedStopIndex=A,this._doStuff(t,A)}},{key:"_doStuff",value:function(e,t){var A,n=this,r=this.props,i=r.isRowLoaded,o=r.minimumBatchSize,a=r.rowCount,s=r.threshold,g=function(e){for(var t=e.isRowLoaded,A=e.minimumBatchSize,n=e.rowCount,r=e.startIndex,i=e.stopIndex,o=[],a=null,s=null,g=r;g<=i;g++){t({index:g})?null!==s&&(o.push({startIndex:a,stopIndex:s}),a=s=null):(s=g,null===a&&(a=g))}if(null!==s){for(var c=Math.min(Math.max(s,a+A-1),n-1),u=s+1;u<=c&&!t({index:u});u++)s=u;o.push({startIndex:a,stopIndex:s})}if(o.length)for(var l=o[0];l.stopIndex-l.startIndex+1<A&&l.startIndex>0;){var I=l.startIndex-1;if(t({index:I}))break;l.startIndex=I}return o}({isRowLoaded:i,minimumBatchSize:o,rowCount:a,startIndex:Math.max(0,e-s),stopIndex:Math.min(a-1,t+s)}),c=(A=[]).concat.apply(A,Qe()(g.map((function(e){return[e.startIndex,e.stopIndex]}))));this._loadMoreRowsMemoizer({callback:function(){n._loadUnloadedRanges(g)},indices:{squashedUnloadedRanges:c}})}},{key:"_registerChild",value:function(e){this._registeredChild=e}}]),t}(d.PureComponent);f()(ye,"defaultProps",{minimumBatchSize:10,rowCount:0,threshold:15}),ye.propTypes={};var ve,me,be=(me=ve=function(e){function t(){var e,A;r()(this,t);for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return A=s()(this,(e=c()(t)).call.apply(e,[this].concat(i))),f()(l()(A),"Grid",void 0),f()(l()(A),"_cellRenderer",(function(e){var t=e.parent,n=e.rowIndex,r=e.style,i=e.isScrolling,o=e.isVisible,a=e.key,s=A.props.rowRenderer,g=Object.getOwnPropertyDescriptor(r,"width");return g&&g.writable&&(r.width="100%"),s({index:n,style:r,isScrolling:i,isVisible:o,key:a,parent:t})})),f()(l()(A),"_setRef",(function(e){A.Grid=e})),f()(l()(A),"_onScroll",(function(e){var t=e.clientHeight,n=e.scrollHeight,r=e.scrollTop;(0,A.props.onScroll)({clientHeight:t,scrollHeight:n,scrollTop:r})})),f()(l()(A),"_onSectionRendered",(function(e){var t=e.rowOverscanStartIndex,n=e.rowOverscanStopIndex,r=e.rowStartIndex,i=e.rowStopIndex;(0,A.props.onRowsRendered)({overscanStartIndex:t,overscanStopIndex:n,startIndex:r,stopIndex:i})})),A}return C()(t,e),o()(t,[{key:"forceUpdateGrid",value:function(){this.Grid&&this.Grid.forceUpdate()}},{key:"getOffsetForRow",value:function(e){var t=e.alignment,A=e.index;return this.Grid?this.Grid.getOffsetForCell({alignment:t,rowIndex:A,columnIndex:0}).scrollTop:0}},{key:"invalidateCellSizeAfterRender",value:function(e){var t=e.columnIndex,A=e.rowIndex;this.Grid&&this.Grid.invalidateCellSizeAfterRender({rowIndex:A,columnIndex:t})}},{key:"measureAllRows",value:function(){this.Grid&&this.Grid.measureAllCells()}},{key:"recomputeGridSize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.columnIndex,A=void 0===t?0:t,n=e.rowIndex,r=void 0===n?0:n;this.Grid&&this.Grid.recomputeGridSize({rowIndex:r,columnIndex:A})}},{key:"recomputeRowHeights",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.Grid&&this.Grid.recomputeGridSize({rowIndex:e,columnIndex:0})}},{key:"scrollToPosition",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.Grid&&this.Grid.scrollToPosition({scrollTop:e})}},{key:"scrollToRow",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.Grid&&this.Grid.scrollToCell({columnIndex:0,rowIndex:e})}},{key:"render",value:function(){var e=this.props,t=e.className,A=e.noRowsRenderer,n=e.scrollToIndex,r=e.width,i=Object(Q.a)("ReactVirtualized__List",t);return d.createElement(V,E()({},this.props,{autoContainerWidth:!0,cellRenderer:this._cellRenderer,className:i,columnWidth:r,columnCount:1,noContentRenderer:A,onScroll:this._onScroll,onSectionRendered:this._onSectionRendered,ref:this._setRef,scrollToRow:n}))}}]),t}(d.PureComponent),f()(ve,"propTypes",null),me);f()(be,"defaultProps",{autoHeight:!1,estimatedRowSize:30,onScroll:function(){},noRowsRenderer:function(){return null},onRowsRendered:function(){},overscanIndicesGetter:K,overscanRowCount:10,scrollToAlignment:"auto",scrollToIndex:-1,style:{}});var we=A(694),Se=A.n(we);var Fe={ge:function(e,t,A,n,r){return"function"===typeof A?function(e,t,A,n,r){for(var i=A+1;t<=A;){var o=t+A>>>1;r(e[o],n)>=0?(i=o,A=o-1):t=o+1}return i}(e,void 0===n?0:0|n,void 0===r?e.length-1:0|r,t,A):function(e,t,A,n){for(var r=A+1;t<=A;){var i=t+A>>>1;e[i]>=n?(r=i,A=i-1):t=i+1}return r}(e,void 0===A?0:0|A,void 0===n?e.length-1:0|n,t)},gt:function(e,t,A,n,r){return"function"===typeof A?function(e,t,A,n,r){for(var i=A+1;t<=A;){var o=t+A>>>1;r(e[o],n)>0?(i=o,A=o-1):t=o+1}return i}(e,void 0===n?0:0|n,void 0===r?e.length-1:0|r,t,A):function(e,t,A,n){for(var r=A+1;t<=A;){var i=t+A>>>1;e[i]>n?(r=i,A=i-1):t=i+1}return r}(e,void 0===A?0:0|A,void 0===n?e.length-1:0|n,t)},lt:function(e,t,A,n,r){return"function"===typeof A?function(e,t,A,n,r){for(var i=t-1;t<=A;){var o=t+A>>>1;r(e[o],n)<0?(i=o,t=o+1):A=o-1}return i}(e,void 0===n?0:0|n,void 0===r?e.length-1:0|r,t,A):function(e,t,A,n){for(var r=t-1;t<=A;){var i=t+A>>>1;e[i]<n?(r=i,t=i+1):A=i-1}return r}(e,void 0===A?0:0|A,void 0===n?e.length-1:0|n,t)},le:function(e,t,A,n,r){return"function"===typeof A?function(e,t,A,n,r){for(var i=t-1;t<=A;){var o=t+A>>>1;r(e[o],n)<=0?(i=o,t=o+1):A=o-1}return i}(e,void 0===n?0:0|n,void 0===r?e.length-1:0|r,t,A):function(e,t,A,n){for(var r=t-1;t<=A;){var i=t+A>>>1;e[i]<=n?(r=i,t=i+1):A=i-1}return r}(e,void 0===A?0:0|A,void 0===n?e.length-1:0|n,t)},eq:function(e,t,A,n,r){return"function"===typeof A?function(e,t,A,n,r){for(;t<=A;){var i=t+A>>>1,o=r(e[i],n);if(0===o)return i;o<=0?t=i+1:A=i-1}return-1}(e,void 0===n?0:0|n,void 0===r?e.length-1:0|r,t,A):function(e,t,A,n){for(;t<=A;){var r=t+A>>>1,i=e[r];if(i===n)return r;i<=n?t=r+1:A=r-1}return-1}(e,void 0===A?0:0|A,void 0===n?e.length-1:0|n,t)}};function Re(e,t,A,n,r){this.mid=e,this.left=t,this.right=A,this.leftPoints=n,this.rightPoints=r,this.count=(t?t.count:0)+(A?A.count:0)+n.length}var De=Re.prototype;function Ge(e,t){e.mid=t.mid,e.left=t.left,e.right=t.right,e.leftPoints=t.leftPoints,e.rightPoints=t.rightPoints,e.count=t.count}function ke(e,t){var A=Ze(t);e.mid=A.mid,e.left=A.left,e.right=A.right,e.leftPoints=A.leftPoints,e.rightPoints=A.rightPoints,e.count=A.count}function xe(e,t){var A=e.intervals([]);A.push(t),ke(e,A)}function Ne(e,t){var A=e.intervals([]),n=A.indexOf(t);return n<0?0:(A.splice(n,1),ke(e,A),1)}function Ue(e,t,A){for(var n=0;n<e.length&&e[n][0]<=t;++n){var r=A(e[n]);if(r)return r}}function _e(e,t,A){for(var n=e.length-1;n>=0&&e[n][1]>=t;--n){var r=A(e[n]);if(r)return r}}function Me(e,t){for(var A=0;A<e.length;++A){var n=t(e[A]);if(n)return n}}function Oe(e,t){return e-t}function Le(e,t){var A=e[0]-t[0];return A||e[1]-t[1]}function Te(e,t){var A=e[1]-t[1];return A||e[0]-t[0]}function Ze(e){if(0===e.length)return null;for(var t=[],A=0;A<e.length;++A)t.push(e[A][0],e[A][1]);t.sort(Oe);var n=t[t.length>>1],r=[],i=[],o=[];for(A=0;A<e.length;++A){var a=e[A];a[1]<n?r.push(a):n<a[0]?i.push(a):o.push(a)}var s=o,g=o.slice();return s.sort(Le),g.sort(Te),new Re(n,Ze(r),Ze(i),s,g)}function He(e){this.root=e}De.intervals=function(e){return e.push.apply(e,this.leftPoints),this.left&&this.left.intervals(e),this.right&&this.right.intervals(e),e},De.insert=function(e){var t=this.count-this.leftPoints.length;if(this.count+=1,e[1]<this.mid)this.left?4*(this.left.count+1)>3*(t+1)?xe(this,e):this.left.insert(e):this.left=Ze([e]);else if(e[0]>this.mid)this.right?4*(this.right.count+1)>3*(t+1)?xe(this,e):this.right.insert(e):this.right=Ze([e]);else{var A=Fe.ge(this.leftPoints,e,Le),n=Fe.ge(this.rightPoints,e,Te);this.leftPoints.splice(A,0,e),this.rightPoints.splice(n,0,e)}},De.remove=function(e){var t=this.count-this.leftPoints;if(e[1]<this.mid)return this.left?4*(this.right?this.right.count:0)>3*(t-1)?Ne(this,e):2===(i=this.left.remove(e))?(this.left=null,this.count-=1,1):(1===i&&(this.count-=1),i):0;if(e[0]>this.mid)return this.right?4*(this.left?this.left.count:0)>3*(t-1)?Ne(this,e):2===(i=this.right.remove(e))?(this.right=null,this.count-=1,1):(1===i&&(this.count-=1),i):0;if(1===this.count)return this.leftPoints[0]===e?2:0;if(1===this.leftPoints.length&&this.leftPoints[0]===e){if(this.left&&this.right){for(var A=this,n=this.left;n.right;)A=n,n=n.right;if(A===this)n.right=this.right;else{var r=this.left,i=this.right;A.count-=n.count,A.right=n.left,n.left=r,n.right=i}Ge(this,n),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?Ge(this,this.left):Ge(this,this.right);return 1}for(r=Fe.ge(this.leftPoints,e,Le);r<this.leftPoints.length&&this.leftPoints[r][0]===e[0];++r)if(this.leftPoints[r]===e){this.count-=1,this.leftPoints.splice(r,1);for(i=Fe.ge(this.rightPoints,e,Te);i<this.rightPoints.length&&this.rightPoints[i][1]===e[1];++i)if(this.rightPoints[i]===e)return this.rightPoints.splice(i,1),1}return 0},De.queryPoint=function(e,t){if(e<this.mid){if(this.left)if(A=this.left.queryPoint(e,t))return A;return Ue(this.leftPoints,e,t)}if(e>this.mid){var A;if(this.right)if(A=this.right.queryPoint(e,t))return A;return _e(this.rightPoints,e,t)}return Me(this.leftPoints,t)},De.queryInterval=function(e,t,A){var n;if(e<this.mid&&this.left&&(n=this.left.queryInterval(e,t,A)))return n;if(t>this.mid&&this.right&&(n=this.right.queryInterval(e,t,A)))return n;return t<this.mid?Ue(this.leftPoints,t,A):e>this.mid?_e(this.rightPoints,e,A):Me(this.leftPoints,A)};var Ye=He.prototype;Ye.insert=function(e){this.root?this.root.insert(e):this.root=new Re(e[0],null,null,[e],[e])},Ye.remove=function(e){if(this.root){var t=this.root.remove(e);return 2===t&&(this.root=null),0!==t}return!1},Ye.queryPoint=function(e,t){if(this.root)return this.root.queryPoint(e,t)},Ye.queryInterval=function(e,t,A){if(e<=t&&this.root)return this.root.queryInterval(e,t,A)},Object.defineProperty(Ye,"count",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(Ye,"intervals",{get:function(){return this.root?this.root.intervals([]):[]}});var Je,je,Pe=function(){function e(){var t;r()(this,e),f()(this,"_columnSizeMap",{}),f()(this,"_intervalTree",t&&0!==t.length?new He(Ze(t)):new He(null)),f()(this,"_leftMap",{})}return o()(e,[{key:"estimateTotalHeight",value:function(e,t,A){var n=e-this.count;return this.tallestColumnSize+Math.ceil(n/t)*A}},{key:"range",value:function(e,t,A){var n=this;this._intervalTree.queryInterval(e,e+t,(function(e){var t=Se()(e,3),r=t[0],i=(t[1],t[2]);return A(i,n._leftMap[i],r)}))}},{key:"setPosition",value:function(e,t,A,n){this._intervalTree.insert([A,A+n,e]),this._leftMap[e]=t;var r=this._columnSizeMap,i=r[t];r[t]=void 0===i?A+n:Math.max(i,A+n)}},{key:"count",get:function(){return this._intervalTree.count}},{key:"shortestColumnSize",get:function(){var e=this._columnSizeMap,t=0;for(var A in e){var n=e[A];t=0===t?n:Math.min(t,n)}return t}},{key:"tallestColumnSize",get:function(){var e=this._columnSizeMap,t=0;for(var A in e){var n=e[A];t=Math.max(t,n)}return t}}]),e}();function Ve(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function Ke(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?Ve(A,!0).forEach((function(t){f()(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):Ve(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}var We=(je=Je=function(e){function t(){var e,A;r()(this,t);for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return A=s()(this,(e=c()(t)).call.apply(e,[this].concat(i))),f()(l()(A),"state",{isScrolling:!1,scrollTop:0}),f()(l()(A),"_debounceResetIsScrollingId",void 0),f()(l()(A),"_invalidateOnUpdateStartIndex",null),f()(l()(A),"_invalidateOnUpdateStopIndex",null),f()(l()(A),"_positionCache",new Pe),f()(l()(A),"_startIndex",null),f()(l()(A),"_startIndexMemoized",null),f()(l()(A),"_stopIndex",null),f()(l()(A),"_stopIndexMemoized",null),f()(l()(A),"_debounceResetIsScrollingCallback",(function(){A.setState({isScrolling:!1})})),f()(l()(A),"_setScrollingContainerRef",(function(e){A._scrollingContainer=e})),f()(l()(A),"_onScroll",(function(e){var t=A.props.height,n=e.currentTarget.scrollTop,r=Math.min(Math.max(0,A._getEstimatedTotalHeight()-t),n);n===r&&(A._debounceResetIsScrolling(),A.state.scrollTop!==r&&A.setState({isScrolling:!0,scrollTop:r}))})),A}return C()(t,e),o()(t,[{key:"clearCellPositions",value:function(){this._positionCache=new Pe,this.forceUpdate()}},{key:"invalidateCellSizeAfterRender",value:function(e){var t=e.rowIndex;null===this._invalidateOnUpdateStartIndex?(this._invalidateOnUpdateStartIndex=t,this._invalidateOnUpdateStopIndex=t):(this._invalidateOnUpdateStartIndex=Math.min(this._invalidateOnUpdateStartIndex,t),this._invalidateOnUpdateStopIndex=Math.max(this._invalidateOnUpdateStopIndex,t))}},{key:"recomputeCellPositions",value:function(){var e=this._positionCache.count-1;this._positionCache=new Pe,this._populatePositionCache(0,e),this.forceUpdate()}},{key:"componentDidMount",value:function(){this._checkInvalidateOnUpdate(),this._invokeOnScrollCallback(),this._invokeOnCellsRenderedCallback()}},{key:"componentDidUpdate",value:function(e,t){this._checkInvalidateOnUpdate(),this._invokeOnScrollCallback(),this._invokeOnCellsRenderedCallback(),this.props.scrollTop!==e.scrollTop&&this._debounceResetIsScrolling()}},{key:"componentWillUnmount",value:function(){this._debounceResetIsScrollingId&&T(this._debounceResetIsScrollingId)}},{key:"render",value:function(){var e,t=this,A=this.props,n=A.autoHeight,r=A.cellCount,i=A.cellMeasurerCache,o=A.cellRenderer,a=A.className,s=A.height,g=A.id,c=A.keyMapper,u=A.overscanByPixels,l=A.role,I=A.style,C=A.tabIndex,h=A.width,B=A.rowDirection,p=this.state,E=p.isScrolling,y=p.scrollTop,v=[],m=this._getEstimatedTotalHeight(),b=this._positionCache.shortestColumnSize,w=this._positionCache.count,S=0;if(this._positionCache.range(Math.max(0,y-u),s+2*u,(function(A,n,r){var a;"undefined"===typeof e?(S=A,e=A):(S=Math.min(S,A),e=Math.max(e,A)),v.push(o({index:A,isScrolling:E,key:c(A),parent:t,style:(a={height:i.getHeight(A)},f()(a,"ltr"===B?"left":"right",n),f()(a,"position","absolute"),f()(a,"top",r),f()(a,"width",i.getWidth(A)),a)}))})),b<y+s+u&&w<r)for(var F=Math.min(r-w,Math.ceil((y+s+u-b)/i.defaultHeight*h/i.defaultWidth)),R=w;R<w+F;R++)e=R,v.push(o({index:R,isScrolling:E,key:c(R),parent:this,style:{width:i.getWidth(R)}}));return this._startIndex=S,this._stopIndex=e,d.createElement("div",{ref:this._setScrollingContainerRef,"aria-label":this.props["aria-label"],className:Object(Q.a)("ReactVirtualized__Masonry",a),id:g,onScroll:this._onScroll,role:l,style:Ke({boxSizing:"border-box",direction:"ltr",height:n?"auto":s,overflowX:"hidden",overflowY:m<s?"hidden":"auto",position:"relative",width:h,WebkitOverflowScrolling:"touch",willChange:"transform"},I),tabIndex:C},d.createElement("div",{className:"ReactVirtualized__Masonry__innerScrollContainer",style:{width:"100%",height:m,maxWidth:"100%",maxHeight:m,overflow:"hidden",pointerEvents:E?"none":"",position:"relative"}},v))}},{key:"_checkInvalidateOnUpdate",value:function(){if("number"===typeof this._invalidateOnUpdateStartIndex){var e=this._invalidateOnUpdateStartIndex,t=this._invalidateOnUpdateStopIndex;this._invalidateOnUpdateStartIndex=null,this._invalidateOnUpdateStopIndex=null,this._populatePositionCache(e,t),this.forceUpdate()}}},{key:"_debounceResetIsScrolling",value:function(){var e=this.props.scrollingResetTimeInterval;this._debounceResetIsScrollingId&&T(this._debounceResetIsScrollingId),this._debounceResetIsScrollingId=Z(this._debounceResetIsScrollingCallback,e)}},{key:"_getEstimatedTotalHeight",value:function(){var e=this.props,t=e.cellCount,A=e.cellMeasurerCache,n=e.width,r=Math.max(1,Math.floor(n/A.defaultWidth));return this._positionCache.estimateTotalHeight(t,r,A.defaultHeight)}},{key:"_invokeOnScrollCallback",value:function(){var e=this.props,t=e.height,A=e.onScroll,n=this.state.scrollTop;this._onScrollMemoized!==n&&(A({clientHeight:t,scrollHeight:this._getEstimatedTotalHeight(),scrollTop:n}),this._onScrollMemoized=n)}},{key:"_invokeOnCellsRenderedCallback",value:function(){this._startIndexMemoized===this._startIndex&&this._stopIndexMemoized===this._stopIndex||((0,this.props.onCellsRendered)({startIndex:this._startIndex,stopIndex:this._stopIndex}),this._startIndexMemoized=this._startIndex,this._stopIndexMemoized=this._stopIndex)}},{key:"_populatePositionCache",value:function(e,t){for(var A=this.props,n=A.cellMeasurerCache,r=A.cellPositioner,i=e;i<=t;i++){var o=r(i),a=o.left,s=o.top;this._positionCache.setPosition(i,a,s,n.getHeight(i))}}}],[{key:"getDerivedStateFromProps",value:function(e,t){return void 0!==e.scrollTop&&t.scrollTop!==e.scrollTop?{isScrolling:!0,scrollTop:e.scrollTop}:null}}]),t}(d.PureComponent),f()(Je,"propTypes",null),je);function Xe(){}f()(We,"defaultProps",{autoHeight:!1,keyMapper:function(e){return e},onCellsRendered:Xe,onScroll:Xe,overscanByPixels:20,role:"grid",scrollingResetTimeInterval:150,style:{},tabIndex:0,rowDirection:"ltr"});Object(B.a)(We);var qe=function(){function e(){var t=this,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,e),f()(this,"_cellMeasurerCache",void 0),f()(this,"_columnIndexOffset",void 0),f()(this,"_rowIndexOffset",void 0),f()(this,"columnWidth",(function(e){var A=e.index;t._cellMeasurerCache.columnWidth({index:A+t._columnIndexOffset})})),f()(this,"rowHeight",(function(e){var A=e.index;t._cellMeasurerCache.rowHeight({index:A+t._rowIndexOffset})}));var n=A.cellMeasurerCache,i=A.columnIndexOffset,o=void 0===i?0:i,a=A.rowIndexOffset,s=void 0===a?0:a;this._cellMeasurerCache=n,this._columnIndexOffset=o,this._rowIndexOffset=s}return o()(e,[{key:"clear",value:function(e,t){this._cellMeasurerCache.clear(e+this._rowIndexOffset,t+this._columnIndexOffset)}},{key:"clearAll",value:function(){this._cellMeasurerCache.clearAll()}},{key:"hasFixedHeight",value:function(){return this._cellMeasurerCache.hasFixedHeight()}},{key:"hasFixedWidth",value:function(){return this._cellMeasurerCache.hasFixedWidth()}},{key:"getHeight",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._cellMeasurerCache.getHeight(e+this._rowIndexOffset,t+this._columnIndexOffset)}},{key:"getWidth",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._cellMeasurerCache.getWidth(e+this._rowIndexOffset,t+this._columnIndexOffset)}},{key:"has",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._cellMeasurerCache.has(e+this._rowIndexOffset,t+this._columnIndexOffset)}},{key:"set",value:function(e,t,A,n){this._cellMeasurerCache.set(e+this._rowIndexOffset,t+this._columnIndexOffset,A,n)}},{key:"defaultHeight",get:function(){return this._cellMeasurerCache.defaultHeight}},{key:"defaultWidth",get:function(){return this._cellMeasurerCache.defaultWidth}}]),e}();function ze(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function $e(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?ze(A,!0).forEach((function(t){f()(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):ze(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}var et=function(e){function t(e,A){var n;r()(this,t),n=s()(this,c()(t).call(this,e,A)),f()(l()(n),"state",{scrollLeft:0,scrollTop:0,scrollbarSize:0,showHorizontalScrollbar:!1,showVerticalScrollbar:!1}),f()(l()(n),"_deferredInvalidateColumnIndex",null),f()(l()(n),"_deferredInvalidateRowIndex",null),f()(l()(n),"_bottomLeftGridRef",(function(e){n._bottomLeftGrid=e})),f()(l()(n),"_bottomRightGridRef",(function(e){n._bottomRightGrid=e})),f()(l()(n),"_cellRendererBottomLeftGrid",(function(e){var t=e.rowIndex,A=m()(e,["rowIndex"]),r=n.props,i=r.cellRenderer,o=r.fixedRowCount;return t===r.rowCount-o?d.createElement("div",{key:A.key,style:$e({},A.style,{height:20})}):i($e({},A,{parent:l()(n),rowIndex:t+o}))})),f()(l()(n),"_cellRendererBottomRightGrid",(function(e){var t=e.columnIndex,A=e.rowIndex,r=m()(e,["columnIndex","rowIndex"]),i=n.props,o=i.cellRenderer,a=i.fixedColumnCount,s=i.fixedRowCount;return o($e({},r,{columnIndex:t+a,parent:l()(n),rowIndex:A+s}))})),f()(l()(n),"_cellRendererTopRightGrid",(function(e){var t=e.columnIndex,A=m()(e,["columnIndex"]),r=n.props,i=r.cellRenderer,o=r.columnCount,a=r.fixedColumnCount;return t===o-a?d.createElement("div",{key:A.key,style:$e({},A.style,{width:20})}):i($e({},A,{columnIndex:t+a,parent:l()(n)}))})),f()(l()(n),"_columnWidthRightGrid",(function(e){var t=e.index,A=n.props,r=A.columnCount,i=A.fixedColumnCount,o=A.columnWidth,a=n.state,s=a.scrollbarSize;return a.showHorizontalScrollbar&&t===r-i?s:"function"===typeof o?o({index:t+i}):o})),f()(l()(n),"_onScroll",(function(e){var t=e.scrollLeft,A=e.scrollTop;n.setState({scrollLeft:t,scrollTop:A});var r=n.props.onScroll;r&&r(e)})),f()(l()(n),"_onScrollbarPresenceChange",(function(e){var t=e.horizontal,A=e.size,r=e.vertical,i=n.state,o=i.showHorizontalScrollbar,a=i.showVerticalScrollbar;if(t!==o||r!==a){n.setState({scrollbarSize:A,showHorizontalScrollbar:t,showVerticalScrollbar:r});var s=n.props.onScrollbarPresenceChange;"function"===typeof s&&s({horizontal:t,size:A,vertical:r})}})),f()(l()(n),"_onScrollLeft",(function(e){var t=e.scrollLeft;n._onScroll({scrollLeft:t,scrollTop:n.state.scrollTop})})),f()(l()(n),"_onScrollTop",(function(e){var t=e.scrollTop;n._onScroll({scrollTop:t,scrollLeft:n.state.scrollLeft})})),f()(l()(n),"_rowHeightBottomGrid",(function(e){var t=e.index,A=n.props,r=A.fixedRowCount,i=A.rowCount,o=A.rowHeight,a=n.state,s=a.scrollbarSize;return a.showVerticalScrollbar&&t===i-r?s:"function"===typeof o?o({index:t+r}):o})),f()(l()(n),"_topLeftGridRef",(function(e){n._topLeftGrid=e})),f()(l()(n),"_topRightGridRef",(function(e){n._topRightGrid=e}));var i=e.deferredMeasurementCache,o=e.fixedColumnCount,a=e.fixedRowCount;return n._maybeCalculateCachedStyles(!0),i&&(n._deferredMeasurementCacheBottomLeftGrid=a>0?new qe({cellMeasurerCache:i,columnIndexOffset:0,rowIndexOffset:a}):i,n._deferredMeasurementCacheBottomRightGrid=o>0||a>0?new qe({cellMeasurerCache:i,columnIndexOffset:o,rowIndexOffset:a}):i,n._deferredMeasurementCacheTopRightGrid=o>0?new qe({cellMeasurerCache:i,columnIndexOffset:o,rowIndexOffset:0}):i),n}return C()(t,e),o()(t,[{key:"forceUpdateGrids",value:function(){this._bottomLeftGrid&&this._bottomLeftGrid.forceUpdate(),this._bottomRightGrid&&this._bottomRightGrid.forceUpdate(),this._topLeftGrid&&this._topLeftGrid.forceUpdate(),this._topRightGrid&&this._topRightGrid.forceUpdate()}},{key:"invalidateCellSizeAfterRender",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.columnIndex,A=void 0===t?0:t,n=e.rowIndex,r=void 0===n?0:n;this._deferredInvalidateColumnIndex="number"===typeof this._deferredInvalidateColumnIndex?Math.min(this._deferredInvalidateColumnIndex,A):A,this._deferredInvalidateRowIndex="number"===typeof this._deferredInvalidateRowIndex?Math.min(this._deferredInvalidateRowIndex,r):r}},{key:"measureAllCells",value:function(){this._bottomLeftGrid&&this._bottomLeftGrid.measureAllCells(),this._bottomRightGrid&&this._bottomRightGrid.measureAllCells(),this._topLeftGrid&&this._topLeftGrid.measureAllCells(),this._topRightGrid&&this._topRightGrid.measureAllCells()}},{key:"recomputeGridSize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.columnIndex,A=void 0===t?0:t,n=e.rowIndex,r=void 0===n?0:n,i=this.props,o=i.fixedColumnCount,a=i.fixedRowCount,s=Math.max(0,A-o),g=Math.max(0,r-a);this._bottomLeftGrid&&this._bottomLeftGrid.recomputeGridSize({columnIndex:A,rowIndex:g}),this._bottomRightGrid&&this._bottomRightGrid.recomputeGridSize({columnIndex:s,rowIndex:g}),this._topLeftGrid&&this._topLeftGrid.recomputeGridSize({columnIndex:A,rowIndex:r}),this._topRightGrid&&this._topRightGrid.recomputeGridSize({columnIndex:s,rowIndex:r}),this._leftGridWidth=null,this._topGridHeight=null,this._maybeCalculateCachedStyles(!0)}},{key:"componentDidMount",value:function(){var e=this.props,t=e.scrollLeft,A=e.scrollTop;if(t>0||A>0){var n={};t>0&&(n.scrollLeft=t),A>0&&(n.scrollTop=A),this.setState(n)}this._handleInvalidatedGridSize()}},{key:"componentDidUpdate",value:function(){this._handleInvalidatedGridSize()}},{key:"render",value:function(){var e=this.props,t=e.onScroll,A=e.onSectionRendered,n=(e.onScrollbarPresenceChange,e.scrollLeft,e.scrollToColumn),r=(e.scrollTop,e.scrollToRow),i=m()(e,["onScroll","onSectionRendered","onScrollbarPresenceChange","scrollLeft","scrollToColumn","scrollTop","scrollToRow"]);if(this._prepareForRender(),0===this.props.width||0===this.props.height)return null;var o=this.state,a=o.scrollLeft,s=o.scrollTop;return d.createElement("div",{style:this._containerOuterStyle},d.createElement("div",{style:this._containerTopStyle},this._renderTopLeftGrid(i),this._renderTopRightGrid($e({},i,{onScroll:t,scrollLeft:a}))),d.createElement("div",{style:this._containerBottomStyle},this._renderBottomLeftGrid($e({},i,{onScroll:t,scrollTop:s})),this._renderBottomRightGrid($e({},i,{onScroll:t,onSectionRendered:A,scrollLeft:a,scrollToColumn:n,scrollToRow:r,scrollTop:s}))))}},{key:"_getBottomGridHeight",value:function(e){return e.height-this._getTopGridHeight(e)}},{key:"_getLeftGridWidth",value:function(e){var t=e.fixedColumnCount,A=e.columnWidth;if(null==this._leftGridWidth)if("function"===typeof A){for(var n=0,r=0;r<t;r++)n+=A({index:r});this._leftGridWidth=n}else this._leftGridWidth=A*t;return this._leftGridWidth}},{key:"_getRightGridWidth",value:function(e){return e.width-this._getLeftGridWidth(e)}},{key:"_getTopGridHeight",value:function(e){var t=e.fixedRowCount,A=e.rowHeight;if(null==this._topGridHeight)if("function"===typeof A){for(var n=0,r=0;r<t;r++)n+=A({index:r});this._topGridHeight=n}else this._topGridHeight=A*t;return this._topGridHeight}},{key:"_handleInvalidatedGridSize",value:function(){if("number"===typeof this._deferredInvalidateColumnIndex){var e=this._deferredInvalidateColumnIndex,t=this._deferredInvalidateRowIndex;this._deferredInvalidateColumnIndex=null,this._deferredInvalidateRowIndex=null,this.recomputeGridSize({columnIndex:e,rowIndex:t}),this.forceUpdate()}}},{key:"_maybeCalculateCachedStyles",value:function(e){var t=this.props,A=t.columnWidth,n=t.enableFixedColumnScroll,r=t.enableFixedRowScroll,i=t.height,o=t.fixedColumnCount,a=t.fixedRowCount,s=t.rowHeight,g=t.style,c=t.styleBottomLeftGrid,u=t.styleBottomRightGrid,l=t.styleTopLeftGrid,I=t.styleTopRightGrid,C=t.width,h=e||i!==this._lastRenderedHeight||C!==this._lastRenderedWidth,f=e||A!==this._lastRenderedColumnWidth||o!==this._lastRenderedFixedColumnCount,d=e||a!==this._lastRenderedFixedRowCount||s!==this._lastRenderedRowHeight;(e||h||g!==this._lastRenderedStyle)&&(this._containerOuterStyle=$e({height:i,overflow:"visible",width:C},g)),(e||h||d)&&(this._containerTopStyle={height:this._getTopGridHeight(this.props),position:"relative",width:C},this._containerBottomStyle={height:i-this._getTopGridHeight(this.props),overflow:"visible",position:"relative",width:C}),(e||c!==this._lastRenderedStyleBottomLeftGrid)&&(this._bottomLeftGridStyle=$e({left:0,overflowX:"hidden",overflowY:n?"auto":"hidden",position:"absolute"},c)),(e||f||u!==this._lastRenderedStyleBottomRightGrid)&&(this._bottomRightGridStyle=$e({left:this._getLeftGridWidth(this.props),position:"absolute"},u)),(e||l!==this._lastRenderedStyleTopLeftGrid)&&(this._topLeftGridStyle=$e({left:0,overflowX:"hidden",overflowY:"hidden",position:"absolute",top:0},l)),(e||f||I!==this._lastRenderedStyleTopRightGrid)&&(this._topRightGridStyle=$e({left:this._getLeftGridWidth(this.props),overflowX:r?"auto":"hidden",overflowY:"hidden",position:"absolute",top:0},I)),this._lastRenderedColumnWidth=A,this._lastRenderedFixedColumnCount=o,this._lastRenderedFixedRowCount=a,this._lastRenderedHeight=i,this._lastRenderedRowHeight=s,this._lastRenderedStyle=g,this._lastRenderedStyleBottomLeftGrid=c,this._lastRenderedStyleBottomRightGrid=u,this._lastRenderedStyleTopLeftGrid=l,this._lastRenderedStyleTopRightGrid=I,this._lastRenderedWidth=C}},{key:"_prepareForRender",value:function(){this._lastRenderedColumnWidth===this.props.columnWidth&&this._lastRenderedFixedColumnCount===this.props.fixedColumnCount||(this._leftGridWidth=null),this._lastRenderedFixedRowCount===this.props.fixedRowCount&&this._lastRenderedRowHeight===this.props.rowHeight||(this._topGridHeight=null),this._maybeCalculateCachedStyles(),this._lastRenderedColumnWidth=this.props.columnWidth,this._lastRenderedFixedColumnCount=this.props.fixedColumnCount,this._lastRenderedFixedRowCount=this.props.fixedRowCount,this._lastRenderedRowHeight=this.props.rowHeight}},{key:"_renderBottomLeftGrid",value:function(e){var t=e.enableFixedColumnScroll,A=e.fixedColumnCount,n=e.fixedRowCount,r=e.rowCount,i=e.hideBottomLeftGridScrollbar,o=this.state.showVerticalScrollbar;if(!A)return null;var a=o?1:0,s=this._getBottomGridHeight(e),g=this._getLeftGridWidth(e),c=this.state.showVerticalScrollbar?this.state.scrollbarSize:0,u=i?g+c:g,l=d.createElement(V,E()({},e,{cellRenderer:this._cellRendererBottomLeftGrid,className:this.props.classNameBottomLeftGrid,columnCount:A,deferredMeasurementCache:this._deferredMeasurementCacheBottomLeftGrid,height:s,onScroll:t?this._onScrollTop:void 0,ref:this._bottomLeftGridRef,rowCount:Math.max(0,r-n)+a,rowHeight:this._rowHeightBottomGrid,style:this._bottomLeftGridStyle,tabIndex:null,width:u}));return i?d.createElement("div",{className:"BottomLeftGrid_ScrollWrapper",style:$e({},this._bottomLeftGridStyle,{height:s,width:g,overflowY:"hidden"})},l):l}},{key:"_renderBottomRightGrid",value:function(e){var t=e.columnCount,A=e.fixedColumnCount,n=e.fixedRowCount,r=e.rowCount,i=e.scrollToColumn,o=e.scrollToRow;return d.createElement(V,E()({},e,{cellRenderer:this._cellRendererBottomRightGrid,className:this.props.classNameBottomRightGrid,columnCount:Math.max(0,t-A),columnWidth:this._columnWidthRightGrid,deferredMeasurementCache:this._deferredMeasurementCacheBottomRightGrid,height:this._getBottomGridHeight(e),onScroll:this._onScroll,onScrollbarPresenceChange:this._onScrollbarPresenceChange,ref:this._bottomRightGridRef,rowCount:Math.max(0,r-n),rowHeight:this._rowHeightBottomGrid,scrollToColumn:i-A,scrollToRow:o-n,style:this._bottomRightGridStyle,width:this._getRightGridWidth(e)}))}},{key:"_renderTopLeftGrid",value:function(e){var t=e.fixedColumnCount,A=e.fixedRowCount;return t&&A?d.createElement(V,E()({},e,{className:this.props.classNameTopLeftGrid,columnCount:t,height:this._getTopGridHeight(e),ref:this._topLeftGridRef,rowCount:A,style:this._topLeftGridStyle,tabIndex:null,width:this._getLeftGridWidth(e)})):null}},{key:"_renderTopRightGrid",value:function(e){var t=e.columnCount,A=e.enableFixedRowScroll,n=e.fixedColumnCount,r=e.fixedRowCount,i=e.scrollLeft,o=e.hideTopRightGridScrollbar,a=this.state,s=a.showHorizontalScrollbar,g=a.scrollbarSize;if(!r)return null;var c=s?1:0,u=this._getTopGridHeight(e),l=this._getRightGridWidth(e),I=s?g:0,C=u,h=this._topRightGridStyle;o&&(C=u+I,h=$e({},this._topRightGridStyle,{left:0}));var f=d.createElement(V,E()({},e,{cellRenderer:this._cellRendererTopRightGrid,className:this.props.classNameTopRightGrid,columnCount:Math.max(0,t-n)+c,columnWidth:this._columnWidthRightGrid,deferredMeasurementCache:this._deferredMeasurementCacheTopRightGrid,height:C,onScroll:A?this._onScrollLeft:void 0,ref:this._topRightGridRef,rowCount:r,scrollLeft:i,style:h,tabIndex:null,width:l}));return o?d.createElement("div",{className:"TopRightGrid_ScrollWrapper",style:$e({},this._topRightGridStyle,{height:u,width:l,overflowX:"hidden"})},f):f}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.scrollLeft!==t.scrollLeft||e.scrollTop!==t.scrollTop?{scrollLeft:null!=e.scrollLeft&&e.scrollLeft>=0?e.scrollLeft:t.scrollLeft,scrollTop:null!=e.scrollTop&&e.scrollTop>=0?e.scrollTop:t.scrollTop}:null}}]),t}(d.PureComponent);f()(et,"defaultProps",{classNameBottomLeftGrid:"",classNameBottomRightGrid:"",classNameTopLeftGrid:"",classNameTopRightGrid:"",enableFixedColumnScroll:!1,enableFixedRowScroll:!1,fixedColumnCount:0,fixedRowCount:0,scrollToColumn:-1,scrollToRow:-1,style:{},styleBottomLeftGrid:{},styleBottomRightGrid:{},styleTopLeftGrid:{},styleTopRightGrid:{},hideTopRightGridScrollbar:!1,hideBottomLeftGridScrollbar:!1}),et.propTypes={},Object(B.a)(et);var tt=function(e){function t(e,A){var n;return r()(this,t),(n=s()(this,c()(t).call(this,e,A))).state={clientHeight:0,clientWidth:0,scrollHeight:0,scrollLeft:0,scrollTop:0,scrollWidth:0},n._onScroll=n._onScroll.bind(l()(n)),n}return C()(t,e),o()(t,[{key:"render",value:function(){var e=this.props.children,t=this.state,A=t.clientHeight,n=t.clientWidth,r=t.scrollHeight,i=t.scrollLeft,o=t.scrollTop,a=t.scrollWidth;return e({clientHeight:A,clientWidth:n,onScroll:this._onScroll,scrollHeight:r,scrollLeft:i,scrollTop:o,scrollWidth:a})}},{key:"_onScroll",value:function(e){var t=e.clientHeight,A=e.clientWidth,n=e.scrollHeight,r=e.scrollLeft,i=e.scrollTop,o=e.scrollWidth;this.setState({clientHeight:t,clientWidth:A,scrollHeight:n,scrollLeft:r,scrollTop:i,scrollWidth:o})}}]),t}(d.PureComponent);tt.propTypes={};function At(e){var t=e.className,A=e.columns,n=e.style;return d.createElement("div",{className:t,role:"row",style:n},A)}At.propTypes=null;var nt={ASC:"ASC",DESC:"DESC"};function rt(e){var t=e.sortDirection,A=Object(Q.a)("ReactVirtualized__Table__sortableHeaderIcon",{"ReactVirtualized__Table__sortableHeaderIcon--ASC":t===nt.ASC,"ReactVirtualized__Table__sortableHeaderIcon--DESC":t===nt.DESC});return d.createElement("svg",{className:A,width:18,height:18,viewBox:"0 0 24 24"},t===nt.ASC?d.createElement("path",{d:"M7 14l5-5 5 5z"}):d.createElement("path",{d:"M7 10l5 5 5-5z"}),d.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))}function it(e){var t=e.dataKey,A=e.label,n=e.sortBy,r=e.sortDirection,i=n===t,o=[d.createElement("span",{className:"ReactVirtualized__Table__headerTruncatedText",key:"label",title:"string"===typeof A?A:null},A)];return i&&o.push(d.createElement(rt,{key:"SortIndicator",sortDirection:r})),o}function ot(e){var t=e.className,A=e.columns,n=e.index,r=e.key,i=e.onRowClick,o=e.onRowDoubleClick,a=e.onRowMouseOut,s=e.onRowMouseOver,g=e.onRowRightClick,c=e.rowData,u=e.style,l={"aria-rowindex":n+1};return(i||o||a||s||g)&&(l["aria-label"]="row",l.tabIndex=0,i&&(l.onClick=function(e){return i({event:e,index:n,rowData:c})}),o&&(l.onDoubleClick=function(e){return o({event:e,index:n,rowData:c})}),a&&(l.onMouseOut=function(e){return a({event:e,index:n,rowData:c})}),s&&(l.onMouseOver=function(e){return s({event:e,index:n,rowData:c})}),g&&(l.onContextMenu=function(e){return g({event:e,index:n,rowData:c})})),d.createElement("div",E()({},l,{className:t,key:r,role:"row",style:u}),A)}rt.propTypes={},it.propTypes=null,ot.propTypes=null;var at=function(e){function t(){return r()(this,t),s()(this,c()(t).apply(this,arguments))}return C()(t,e),t}(d.Component);function st(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function gt(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?st(A,!0).forEach((function(t){f()(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):st(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}f()(at,"defaultProps",{cellDataGetter:function(e){var t=e.dataKey,A=e.rowData;return"function"===typeof A.get?A.get(t):A[t]},cellRenderer:function(e){var t=e.cellData;return null==t?"":String(t)},defaultSortDirection:nt.ASC,flexGrow:0,flexShrink:1,headerRenderer:it,style:{}}),at.propTypes={};var ct=function(e){function t(e){var A;return r()(this,t),(A=s()(this,c()(t).call(this,e))).state={scrollbarWidth:0},A._createColumn=A._createColumn.bind(l()(A)),A._createRow=A._createRow.bind(l()(A)),A._onScroll=A._onScroll.bind(l()(A)),A._onSectionRendered=A._onSectionRendered.bind(l()(A)),A._setRef=A._setRef.bind(l()(A)),A}return C()(t,e),o()(t,[{key:"forceUpdateGrid",value:function(){this.Grid&&this.Grid.forceUpdate()}},{key:"getOffsetForRow",value:function(e){var t=e.alignment,A=e.index;return this.Grid?this.Grid.getOffsetForCell({alignment:t,rowIndex:A}).scrollTop:0}},{key:"invalidateCellSizeAfterRender",value:function(e){var t=e.columnIndex,A=e.rowIndex;this.Grid&&this.Grid.invalidateCellSizeAfterRender({rowIndex:A,columnIndex:t})}},{key:"measureAllRows",value:function(){this.Grid&&this.Grid.measureAllCells()}},{key:"recomputeGridSize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.columnIndex,A=void 0===t?0:t,n=e.rowIndex,r=void 0===n?0:n;this.Grid&&this.Grid.recomputeGridSize({rowIndex:r,columnIndex:A})}},{key:"recomputeRowHeights",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.Grid&&this.Grid.recomputeGridSize({rowIndex:e})}},{key:"scrollToPosition",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.Grid&&this.Grid.scrollToPosition({scrollTop:e})}},{key:"scrollToRow",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.Grid&&this.Grid.scrollToCell({columnIndex:0,rowIndex:e})}},{key:"getScrollbarWidth",value:function(){if(this.Grid){var e=Object(ae.findDOMNode)(this.Grid),t=e.clientWidth||0;return(e.offsetWidth||0)-t}return 0}},{key:"componentDidMount",value:function(){this._setScrollbarWidth()}},{key:"componentDidUpdate",value:function(){this._setScrollbarWidth()}},{key:"render",value:function(){var e=this,t=this.props,A=t.children,n=t.className,r=t.disableHeader,i=t.gridClassName,o=t.gridStyle,a=t.headerHeight,s=t.headerRowRenderer,g=t.height,c=t.id,u=t.noRowsRenderer,l=t.rowClassName,I=t.rowStyle,C=t.scrollToIndex,h=t.style,f=t.width,B=this.state.scrollbarWidth,p=r?g:g-a,y="function"===typeof l?l({index:-1}):l,v="function"===typeof I?I({index:-1}):I;return this._cachedColumnStyles=[],d.Children.toArray(A).forEach((function(t,A){var n=e._getFlexStyleForColumn(t,t.props.style);e._cachedColumnStyles[A]=gt({overflow:"hidden"},n)})),d.createElement("div",{"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-colcount":d.Children.toArray(A).length,"aria-rowcount":this.props.rowCount,className:Object(Q.a)("ReactVirtualized__Table",n),id:c,role:"grid",style:h},!r&&s({className:Object(Q.a)("ReactVirtualized__Table__headerRow",y),columns:this._getHeaderColumns(),style:gt({height:a,overflow:"hidden",paddingRight:B,width:f},v)}),d.createElement(V,E()({},this.props,{"aria-readonly":null,autoContainerWidth:!0,className:Object(Q.a)("ReactVirtualized__Table__Grid",i),cellRenderer:this._createRow,columnWidth:f,columnCount:1,height:p,id:void 0,noContentRenderer:u,onScroll:this._onScroll,onSectionRendered:this._onSectionRendered,ref:this._setRef,role:"rowgroup",scrollbarWidth:B,scrollToRow:C,style:gt({},o,{overflowX:"hidden"})})))}},{key:"_createColumn",value:function(e){var t=e.column,A=e.columnIndex,n=e.isScrolling,r=e.parent,i=e.rowData,o=e.rowIndex,a=this.props.onColumnClick,s=t.props,g=s.cellDataGetter,c=s.cellRenderer,u=s.className,l=s.columnData,I=s.dataKey,C=s.id,h=c({cellData:g({columnData:l,dataKey:I,rowData:i}),columnData:l,columnIndex:A,dataKey:I,isScrolling:n,parent:r,rowData:i,rowIndex:o}),f=this._cachedColumnStyles[A],B="string"===typeof h?h:null;return d.createElement("div",{"aria-colindex":A+1,"aria-describedby":C,className:Object(Q.a)("ReactVirtualized__Table__rowColumn",u),key:"Row"+o+"-Col"+A,onClick:function(e){a&&a({columnData:l,dataKey:I,event:e})},role:"gridcell",style:f,title:B},h)}},{key:"_createHeader",value:function(e){var t,A,n,r,i,o=e.column,a=e.index,s=this.props,g=s.headerClassName,c=s.headerStyle,u=s.onHeaderClick,l=s.sort,I=s.sortBy,C=s.sortDirection,h=o.props,f=h.columnData,B=h.dataKey,p=h.defaultSortDirection,E=h.disableSort,y=h.headerRenderer,v=h.id,m=h.label,b=!E&&l,w=Object(Q.a)("ReactVirtualized__Table__headerColumn",g,o.props.headerClassName,{ReactVirtualized__Table__sortableHeaderColumn:b}),S=this._getFlexStyleForColumn(o,gt({},c,{},o.props.headerStyle)),F=y({columnData:f,dataKey:B,disableSort:E,label:m,sortBy:I,sortDirection:C});if(b||u){var R=I!==B?p:C===nt.DESC?nt.ASC:nt.DESC,D=function(e){b&&l({defaultSortDirection:p,event:e,sortBy:B,sortDirection:R}),u&&u({columnData:f,dataKey:B,event:e})};i=o.props["aria-label"]||m||B,r="none",n=0,t=D,A=function(e){"Enter"!==e.key&&" "!==e.key||D(e)}}return I===B&&(r=C===nt.ASC?"ascending":"descending"),d.createElement("div",{"aria-label":i,"aria-sort":r,className:w,id:v,key:"Header-Col"+a,onClick:t,onKeyDown:A,role:"columnheader",style:S,tabIndex:n},F)}},{key:"_createRow",value:function(e){var t=this,A=e.rowIndex,n=e.isScrolling,r=e.key,i=e.parent,o=e.style,a=this.props,s=a.children,g=a.onRowClick,c=a.onRowDoubleClick,u=a.onRowRightClick,l=a.onRowMouseOver,I=a.onRowMouseOut,C=a.rowClassName,h=a.rowGetter,f=a.rowRenderer,B=a.rowStyle,p=this.state.scrollbarWidth,E="function"===typeof C?C({index:A}):C,y="function"===typeof B?B({index:A}):B,v=h({index:A}),m=d.Children.toArray(s).map((function(e,r){return t._createColumn({column:e,columnIndex:r,isScrolling:n,parent:i,rowData:v,rowIndex:A,scrollbarWidth:p})})),b=Object(Q.a)("ReactVirtualized__Table__row",E),w=gt({},o,{height:this._getRowHeight(A),overflow:"hidden",paddingRight:p},y);return f({className:b,columns:m,index:A,isScrolling:n,key:r,onRowClick:g,onRowDoubleClick:c,onRowRightClick:u,onRowMouseOver:l,onRowMouseOut:I,rowData:v,style:w})}},{key:"_getFlexStyleForColumn",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A="".concat(e.props.flexGrow," ").concat(e.props.flexShrink," ").concat(e.props.width,"px"),n=gt({},t,{flex:A,msFlex:A,WebkitFlex:A});return e.props.maxWidth&&(n.maxWidth=e.props.maxWidth),e.props.minWidth&&(n.minWidth=e.props.minWidth),n}},{key:"_getHeaderColumns",value:function(){var e=this,t=this.props,A=t.children;return(t.disableHeader?[]:d.Children.toArray(A)).map((function(t,A){return e._createHeader({column:t,index:A})}))}},{key:"_getRowHeight",value:function(e){var t=this.props.rowHeight;return"function"===typeof t?t({index:e}):t}},{key:"_onScroll",value:function(e){var t=e.clientHeight,A=e.scrollHeight,n=e.scrollTop;(0,this.props.onScroll)({clientHeight:t,scrollHeight:A,scrollTop:n})}},{key:"_onSectionRendered",value:function(e){var t=e.rowOverscanStartIndex,A=e.rowOverscanStopIndex,n=e.rowStartIndex,r=e.rowStopIndex;(0,this.props.onRowsRendered)({overscanStartIndex:t,overscanStopIndex:A,startIndex:n,stopIndex:r})}},{key:"_setRef",value:function(e){this.Grid=e}},{key:"_setScrollbarWidth",value:function(){var e=this.getScrollbarWidth();this.setState({scrollbarWidth:e})}}]),t}(d.PureComponent);f()(ct,"defaultProps",{disableHeader:!1,estimatedRowSize:30,headerHeight:0,headerStyle:{},noRowsRenderer:function(){return null},onRowsRendered:function(){return null},onScroll:function(){return null},overscanIndicesGetter:K,overscanRowCount:10,rowRenderer:ot,headerRowRenderer:At,rowStyle:{},scrollToAlignment:"auto",scrollToIndex:-1,style:{}}),ct.propTypes={};var ut=[],lt=null,It=null;function Ct(){It&&(It=null,document.body&&null!=lt&&(document.body.style.pointerEvents=lt),lt=null)}function ht(){Ct(),ut.forEach((function(e){return e.__resetIsScrolling()}))}function ft(e){e.currentTarget===window&&null==lt&&document.body&&(lt=document.body.style.pointerEvents,document.body.style.pointerEvents="none"),function(){It&&T(It);var e=0;ut.forEach((function(t){e=Math.max(e,t.props.scrollingResetTimeInterval)})),It=Z(ht,e)}(),ut.forEach((function(t){t.props.scrollElement===e.currentTarget&&t.__handleWindowScrollEvent()}))}function dt(e,t){ut.some((function(e){return e.props.scrollElement===t}))||t.addEventListener("scroll",ft),ut.push(e)}function Bt(e,t){(ut=ut.filter((function(t){return t!==e}))).length||(t.removeEventListener("scroll",ft),It&&(T(It),Ct()))}var pt,Et,Qt=function(e){return e===window},yt=function(e){return e.getBoundingClientRect()};function vt(e,t){if(e){if(Qt(e)){var A=window,n=A.innerHeight,r=A.innerWidth;return{height:"number"===typeof n?n:0,width:"number"===typeof r?r:0}}return yt(e)}return{height:t.serverHeight,width:t.serverWidth}}function mt(e,t){if(Qt(t)&&document.documentElement){var A=document.documentElement,n=yt(e),r=yt(A);return{top:n.top-r.top,left:n.left-r.left}}var i=bt(t),o=yt(e),a=yt(t);return{top:o.top+i.top-a.top,left:o.left+i.left-a.left}}function bt(e){return Qt(e)&&document.documentElement?{top:"scrollY"in window?window.scrollY:document.documentElement.scrollTop,left:"scrollX"in window?window.scrollX:document.documentElement.scrollLeft}:{top:e.scrollTop,left:e.scrollLeft}}function wt(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function St(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?wt(A,!0).forEach((function(t){f()(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):wt(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}var Ft=function(){return"undefined"!==typeof window?window:void 0},Rt=(Et=pt=function(e){function t(){var e,A;r()(this,t);for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return A=s()(this,(e=c()(t)).call.apply(e,[this].concat(i))),f()(l()(A),"_window",Ft()),f()(l()(A),"_isMounted",!1),f()(l()(A),"_positionFromTop",0),f()(l()(A),"_positionFromLeft",0),f()(l()(A),"_detectElementResize",void 0),f()(l()(A),"_child",void 0),f()(l()(A),"state",St({},vt(A.props.scrollElement,A.props),{isScrolling:!1,scrollLeft:0,scrollTop:0})),f()(l()(A),"_registerChild",(function(e){!e||e instanceof Element||console.warn("WindowScroller registerChild expects to be passed Element or null"),A._child=e,A.updatePosition()})),f()(l()(A),"_onChildScroll",(function(e){var t=e.scrollTop;if(A.state.scrollTop!==t){var n=A.props.scrollElement;n&&("function"===typeof n.scrollTo?n.scrollTo(0,t+A._positionFromTop):n.scrollTop=t+A._positionFromTop)}})),f()(l()(A),"_registerResizeListener",(function(e){e===window?window.addEventListener("resize",A._onResize,!1):A._detectElementResize.addResizeListener(e,A._onResize)})),f()(l()(A),"_unregisterResizeListener",(function(e){e===window?window.removeEventListener("resize",A._onResize,!1):e&&A._detectElementResize.removeResizeListener(e,A._onResize)})),f()(l()(A),"_onResize",(function(){A.updatePosition()})),f()(l()(A),"__handleWindowScrollEvent",(function(){if(A._isMounted){var e=A.props.onScroll,t=A.props.scrollElement;if(t){var n=bt(t),r=Math.max(0,n.left-A._positionFromLeft),i=Math.max(0,n.top-A._positionFromTop);A.setState({isScrolling:!0,scrollLeft:r,scrollTop:i}),e({scrollLeft:r,scrollTop:i})}}})),f()(l()(A),"__resetIsScrolling",(function(){A.setState({isScrolling:!1})})),A}return C()(t,e),o()(t,[{key:"updatePosition",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.scrollElement,t=this.props.onResize,A=this.state,n=A.height,r=A.width,i=this._child||ae.findDOMNode(this);if(i instanceof Element&&e){var o=mt(i,e);this._positionFromTop=o.top,this._positionFromLeft=o.left}var a=vt(e,this.props);n===a.height&&r===a.width||(this.setState({height:a.height,width:a.width}),t({height:a.height,width:a.width}))}},{key:"componentDidMount",value:function(){var e=this.props.scrollElement;this._detectElementResize=Object(te.a)(),this.updatePosition(e),e&&(dt(this,e),this._registerResizeListener(e)),this._isMounted=!0}},{key:"componentDidUpdate",value:function(e,t){var A=this.props.scrollElement,n=e.scrollElement;n!==A&&null!=n&&null!=A&&(this.updatePosition(A),Bt(this,n),dt(this,A),this._unregisterResizeListener(n),this._registerResizeListener(A))}},{key:"componentWillUnmount",value:function(){var e=this.props.scrollElement;e&&(Bt(this,e),this._unregisterResizeListener(e)),this._isMounted=!1}},{key:"render",value:function(){var e=this.props.children,t=this.state,A=t.isScrolling,n=t.scrollTop,r=t.scrollLeft,i=t.height,o=t.width;return e({onChildScroll:this._onChildScroll,registerChild:this._registerChild,height:i,isScrolling:A,scrollLeft:r,scrollTop:n,width:o})}}]),t}(d.PureComponent),f()(pt,"propTypes",null),Et);f()(Rt,"defaultProps",{onResize:function(){},onScroll:function(){},scrollingResetTimeInterval:150,scrollElement:Ft(),serverHeight:0,serverWidth:0});A.d(t,"a",(function(){return re})),A.d(t,"b",(function(){return ct}))},function(e,t,A){"use strict";var n=function(e){return e},r=function(e){if(null==e)return n;var t,A,r=e.scale[0],i=e.scale[1],o=e.translate[0],a=e.translate[1];return function(e,n){n||(t=A=0);var s=2,g=e.length,c=new Array(g);for(c[0]=(t+=e[0])*r+o,c[1]=(A+=e[1])*i+a;s<g;)c[s]=e[s],++s;return c}},i=function(e,t){return"string"===typeof t&&(t=e.objects[t]),"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map((function(t){return o(e,t)}))}:o(e,t)};function o(e,t){var A=t.id,n=t.bbox,r=null==t.properties?{}:t.properties,i=a(e,t);return null==A&&null==n?{type:"Feature",properties:r,geometry:i}:null==n?{type:"Feature",id:A,properties:r,geometry:i}:{type:"Feature",id:A,bbox:n,properties:r,geometry:i}}function a(e,t){var A=r(e.transform),n=e.arcs;function i(e,t){t.length&&t.pop();for(var r=n[e<0?~e:e],i=0,o=r.length;i<o;++i)t.push(A(r[i],i));e<0&&function(e,t){for(var A,n=e.length,r=n-t;r<--n;)A=e[r],e[r++]=e[n],e[n]=A}(t,o)}function o(e){return A(e)}function a(e){for(var t=[],A=0,n=e.length;A<n;++A)i(e[A],t);return t.length<2&&t.push(t[0]),t}function s(e){for(var t=a(e);t.length<4;)t.push(t[0]);return t}function g(e){return e.map(s)}return function e(t){var A,n=t.type;switch(n){case"GeometryCollection":return{type:n,geometries:t.geometries.map(e)};case"Point":A=o(t.coordinates);break;case"MultiPoint":A=t.coordinates.map(o);break;case"LineString":A=a(t.arcs);break;case"MultiLineString":A=t.arcs.map(a);break;case"Polygon":A=g(t.arcs);break;case"MultiPolygon":A=t.arcs.map(g);break;default:return null}return{type:n,coordinates:A}}(t)}var s=function(e,t){var A={},n={},r={},i=[],o=-1;function a(e,t){for(var n in e){var r=e[n];delete t[r.start],delete r.start,delete r.end,r.forEach((function(e){A[e<0?~e:e]=1})),i.push(r)}}return t.forEach((function(A,n){var r,i=e.arcs[A<0?~A:A];i.length<3&&!i[1][0]&&!i[1][1]&&(r=t[++o],t[o]=A,t[n]=r)})),t.forEach((function(t){var A,i,o=function(t){var A,n=e.arcs[t<0?~t:t],r=n[0];e.transform?(A=[0,0],n.forEach((function(e){A[0]+=e[0],A[1]+=e[1]}))):A=n[n.length-1];return t<0?[A,r]:[r,A]}(t),a=o[0],s=o[1];if(A=r[a])if(delete r[A.end],A.push(t),A.end=s,i=n[s]){delete n[i.start];var g=i===A?A:A.concat(i);n[g.start=A.start]=r[g.end=i.end]=g}else n[A.start]=r[A.end]=A;else if(A=n[s])if(delete n[A.start],A.unshift(t),A.start=a,i=r[a]){delete r[i.end];var c=i===A?A:i.concat(A);n[c.start=i.start]=r[c.end=A.end]=c}else n[A.start]=r[A.end]=A;else n[(A=[t]).start=a]=r[A.end=s]=A})),a(r,n),a(n,r),t.forEach((function(e){A[e<0?~e:e]||i.push([e])})),i},g=function(e){return a(e,c.apply(this,arguments))};function c(e,t,A){var n,r,i;if(arguments.length>1)n=u(e,t,A);else for(r=0,n=new Array(i=e.arcs.length);r<i;++r)n[r]=r;return{type:"MultiLineString",arcs:s(e,n)}}function u(e,t,A){var n,r=[],i=[];function o(e){var t=e<0?~e:e;(i[t]||(i[t]=[])).push({i:e,g:n})}function a(e){e.forEach(o)}function s(e){e.forEach(a)}return function e(t){switch(n=t,t.type){case"GeometryCollection":t.geometries.forEach(e);break;case"LineString":a(t.arcs);break;case"MultiLineString":case"Polygon":s(t.arcs);break;case"MultiPolygon":!function(e){e.forEach(s)}(t.arcs)}}(t),i.forEach(null==A?function(e){r.push(e[0].i)}:function(e){A(e[0].g,e[e.length-1].g)&&r.push(e[0].i)}),r}A.d(t,"a",(function(){return i})),A.d(t,"b",(function(){return g}))},function(e,t,A){"use strict";var n=A(6),r=A(1),i=A(4),o=A(8),a=A(2),s=A(169),g=A(531),c=A(429);function u(e){return l(function e(t,A){return t.map((function(t){return t instanceof g.a||(Object(c.a)("string"!==typeof t,"Shader module use by name is deprecated. Import shader module '".concat(t,"' and use it directly.")),Object(c.a)(t.name,"shader module has no name"),(t=new g.a(t)).dependencies=e(t.dependencies)),t}))}(e))}function l(e){var t={},A={};return I({modules:e,level:0,moduleMap:t,moduleDepth:A}),Object.keys(A).sort((function(e,t){return A[t]-A[e]})).map((function(e){return t[e]}))}function I(e){var t=e.modules,A=e.level,r=e.moduleMap,i=e.moduleDepth;if(A>=5)throw new Error("Possible loop in shader dependency graph");var o,a=Object(n.a)(t);try{for(a.s();!(o=a.n()).done;){var s=o.value;r[s.name]=s,(void 0===i[s.name]||i[s.name]<A)&&(i[s.name]=A)}}catch(l){a.e(l)}finally{a.f()}var g,c=Object(n.a)(t);try{for(c.s();!(g=c.n()).done;){var u=g.value;u.dependencies&&I({modules:u.dependencies,level:A+1,moduleMap:r,moduleDepth:i})}}catch(l){c.e(l)}finally{c.f()}}function C(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t="undefined"!==typeof window&&window.navigator||{},A=e.userAgent||t.userAgent||"",n=-1!==A.indexOf("MSIE "),r=-1!==A.indexOf("Trident/");return n||r}var h={GLSL_FRAG_DATA:["WEBGL_draw_buffers",!0],GLSL_FRAG_DEPTH:["EXT_frag_depth",!0],GLSL_DERIVATIVES:["OES_standard_derivatives",!0],GLSL_TEXTURE_LOD:["EXT_shader_texture_lod",!0]},f={};Object.keys(h).forEach((function(e){f[e]=e}));var d={};function B(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=h[t];if(Object(c.a)(n,t),!C(A))return!0;if(t in d)return d[t];var r=n[0],i=A.behavior||"enable",o="#extension GL_".concat(r," : ").concat(i,"\nvoid main(void) {}"),a=e.createShader(35633);e.shaderSource(a,o),e.compileShader(a);var s=e.getShaderParameter(a,35713);return e.deleteShader(a),d[t]=s,s}function p(e,t){var A=h[t];Object(c.a)(A,t);var n=function(e){return"undefined"!==typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||Boolean(e&&2===e._version)}(e)&&A[1]||A[0],r="string"===typeof n?Boolean(e.getExtension(n)):n;return Object(c.a)(!1===r||!0===r),r}function E(e,t){return(t=Array.isArray(t)?t:[t]).every((function(t){return p(e,t)}))}var Q=A(432);function y(e){return new RegExp("\\b".concat(e,"[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)"),"g")}var v,m=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,"#version 300 es\n"],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],b=[].concat(m,[[y("attribute"),"in $1"],[y("varying"),"out $1"]]),w=[].concat(m,[[y("varying"),"in $1"]]),S=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],F=[].concat(S,[[y("in"),"attribute $1"],[y("out"),"varying $1"]]),R=[].concat(S,[[y("in"),"varying $1"]]),D=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/,G=/void\s+main\s*\([^)]*\)\s*\{\n?/;function k(e,t,A){switch(t){case 300:return A?x(e,b):function(e){var t=(e=x(e,w)).match(D);if(t){var A=t[1];e=e.replace(new RegExp("\\b".concat("gl_FragColor","\\b"),"g"),A)}else{e=e.replace(G,(function(e){return"out vec4 ".concat("fragmentColor",";\n").concat(e)})).replace(new RegExp("\\b".concat("gl_FragColor","\\b"),"g"),"fragmentColor")}return e}(e);case 100:return A?x(e,F):function(e){var t=(e=x(e,R)).match(D);if(t){var A=t[1];e=e.replace(D,"").replace(new RegExp("\\b".concat(A,"\\b"),"g"),"gl_FragColor")}return e}(e);default:throw new Error("unknown GLSL version ".concat(t))}}function x(e,t){var A,r=Object(n.a)(t);try{for(r.s();!(A=r.n()).done;){var i=Object(o.a)(A.value,2),a=i[0],s=i[1];e=e.replace(a,s)}}catch(g){r.e(g)}finally{r.f()}return e}var N="\n\n".concat(Q.a,"\n\n"),U=(v={},Object(a.a)(v,s.b,"vertex"),Object(a.a)(v,s.a,"fragment"),v);function _(e,t){var A=t.vs,n=t.fs,r=u(t.modules||[]);return{gl:e,vs:M(e,Object.assign({},t,{source:A,type:s.b,modules:r})),fs:M(e,Object.assign({},t,{source:n,type:s.a,modules:r})),getUniforms:O(r)}}function M(e,t){var A=t.id,r=t.source,i=t.type,a=t.modules,g=t.defines,u=void 0===g?{}:g,l=t.hookFunctions,I=void 0===l?[]:l,C=t.inject,h=void 0===C?{}:C,d=t.transpileToGLSL100,p=void 0!==d&&d,y=t.prologue,v=void 0===y||y,m=t.log;Object(c.a)("string"===typeof r,"shader source must be a string");var b=i===s.b,w=r.split("\n"),S=100,F="",R=r;0===w[0].indexOf("#version ")?(S=300,F=w[0],R=w.slice(1).join("\n")):F="#version ".concat(S);var D={};a.forEach((function(e){Object.assign(D,e.getDefines())})),Object.assign(D,u);var G=v?"".concat(F,"\n").concat(function(e){var t=e.id,A=e.source,n=e.type;return t&&"string"===typeof t&&-1===A.indexOf("SHADER_NAME")?"\n#define SHADER_NAME ".concat(t,"_").concat(U[n],"\n\n"):""}({id:A,source:r,type:i}),"\n").concat(function(e){var t=e.type;return"\n#define SHADER_TYPE_".concat(U[t].toUpperCase(),"\n")}({type:i}),"\n").concat(function(e){switch(function(e){var t=e.getExtension("WEBGL_debug_renderer_info"),A=e.getParameter(t&&t.UNMASKED_VENDOR_WEBGL||7936),n=e.getParameter(t&&t.UNMASKED_RENDERER_WEBGL||7937);return{gpuVendor:function(e,t){if(e.match(/NVIDIA/i)||t.match(/NVIDIA/i))return"NVIDIA";if(e.match(/INTEL/i)||t.match(/INTEL/i))return"INTEL";if(e.match(/AMD/i)||t.match(/AMD/i)||e.match(/ATI/i)||t.match(/ATI/i))return"AMD";return"UNKNOWN GPU"}(A,n),vendor:A,renderer:n,version:e.getParameter(7938),shadingLanguageVersion:e.getParameter(35724)}}(e).gpuVendor.toLowerCase()){case"nvidia":return"#define NVIDIA_GPU\n// Nvidia optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n";case"intel":return"#define INTEL_GPU\n// Intel optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n";case"amd":return"#define AMD_GPU\n";default:return"#define DEFAULT_GPU\n// Prevent driver from optimizing away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n"}}(e),"\n").concat(function(e,t,A){var n="#if (__VERSION__ > 120)\n\n# define FEATURE_GLSL_DERIVATIVES\n# define FEATURE_GLSL_DRAW_BUFFERS\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FEATURE_GLSL_TEXTURE_LOD\n\n// DEPRECATED FLAGS, remove in v9\n# define FRAG_DEPTH\n# define DERIVATIVES\n# define DRAW_BUFFERS\n# define TEXTURE_LOD\n\n#endif // __VERSION\n";return E(e,f.GLSL_FRAG_DEPTH)&&(n+="\n// FRAG_DEPTH => gl_FragDepth is available\n#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FRAG_DEPTH\n# define gl_FragDepth gl_FragDepthEXT\n#endif\n"),E(e,f.GLSL_DERIVATIVES)&&B(e,f.GLSL_DERIVATIVES)&&(n+="\n// DERIVATIVES => dxdF, dxdY and fwidth are available\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n# define FEATURE_GLSL_DERIVATIVES\n# define DERIVATIVES\n#endif\n"),E(e,f.GLSL_FRAG_DATA)&&B(e,f.GLSL_FRAG_DATA,{behavior:"require"})&&(n+="\n// DRAW_BUFFERS => gl_FragData[] is available\n#ifdef GL_EXT_draw_buffers\n#extension GL_EXT_draw_buffers : require\n#define FEATURE_GLSL_DRAW_BUFFERS\n#define DRAW_BUFFERS\n#endif\n"),E(e,f.GLSL_TEXTURE_LOD)&&(n+="// TEXTURE_LOD => texture2DLod etc are available\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod : enable\n\n# define FEATURE_GLSL_TEXTURE_LOD\n# define TEXTURE_LOD\n\n#endif\n"),n}(e),"\n").concat(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=0,A="";for(var n in e){0===t&&(A+="\n// APPLICATION DEFINES\n"),t++;var r=e[n];(r||Number.isFinite(r))&&(A+="#define ".concat(n.toUpperCase()," ").concat(e[n],"\n"))}0===t&&(A+="\n");return A}(D),"\n").concat(b?"":"precision highp float;\n\n","\n"):"".concat(F,"\n"),x=function(e){var t={vs:{},fs:{}};return e.forEach((function(e){var A;"string"!==typeof e?e=(A=e).hook:A={};var n=(e=e.trim()).split(":"),r=Object(o.a)(n,2),i=r[0],a=r[1],s=e.replace(/\(.+/,"");t[i][s]=Object.assign(A,{signature:a})})),t}(I),_={},M={},O={};for(var L in h){var T="string"===typeof h[L]?{injection:h[L],order:0}:h[L],Z=L.match(/^(v|f)s:(#)?([\w-]+)$/);if(Z){var H=Z[2],Y=Z[3];H?"decl"===Y?M[L]=[T]:O[L]=[T]:_[L]=[T]}else O[L]=[T]}var J,j=Object(n.a)(a);try{for(j.s();!(J=j.n()).done;){var P=J.value;m&&P.checkDeprecations(R,m),G+=P.getModuleSource(i,S);var V=P.injections[i];for(var K in V){var W=K.match(/^(v|f)s:#([\w-]+)$/);if(W){var X="decl"===W[2]?M:O;X[K]=X[K]||[],X[K].push(V[K])}else _[K]=_[K]||[],_[K].push(V[K])}}}catch(q){j.e(q)}finally{j.f()}return G+=N,G=Object(Q.c)(G,i,M),G+=function(e,t){var A="";for(var r in e){var i=e[r];if(A+="void ".concat(i.signature," {\n"),i.header&&(A+=" ".concat(i.header)),t[r]){var o=t[r];o.sort((function(e,t){return e.order-t.order}));var a,s=Object(n.a)(o);try{for(s.s();!(a=s.n()).done;){var g=a.value;A+=" ".concat(g.injection,"\n")}}catch(q){s.e(q)}finally{s.f()}}i.footer&&(A+=" ".concat(i.footer)),A+="}\n"}return A}(x[i],_),G+=R,G=k(G=Object(Q.c)(G,i,O),p?100:S,b)}function O(e){return function(t){var A,r={},i=Object(n.a)(e);try{for(i.s();!(A=i.n()).done;){var o=A.value.getUniforms(t,r);Object.assign(r,o)}}catch(a){i.e(a)}finally{i.f()}return r}}var L=A(1288);A.d(t,"a",(function(){return T}));var T=function(){function e(t){Object(r.a)(this,e),this.gl=t,this._programCache={},this._getUniforms={},this._registeredModules={},this._hookFunctions=[],this._defaultModules=[],this._hashes={},this._hashCounter=0,this.stateHash=0,this._useCounts={}}return Object(i.a)(e,null,[{key:"getDefaultProgramManager",value:function(t){return t.luma=t.luma||{},t.luma.defaultProgramManager=t.luma.defaultProgramManager||new e(t),t.luma.defaultProgramManager}}]),Object(i.a)(e,[{key:"addDefaultModule",value:function(e){this._defaultModules.find((function(t){return t.name===e.name}))||this._defaultModules.push(e),this.stateHash++}},{key:"removeDefaultModule",value:function(e){var t="string"===typeof e?e:e.name;this._defaultModules=this._defaultModules.filter((function(e){return e.name!==t})),this.stateHash++}},{key:"addShaderHook",value:function(e,t){t&&(e=Object.assign(t,{hook:e})),this._hookFunctions.push(e),this.stateHash++}},{key:"get",value:function(){var e,t=this,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=A.vs,i=void 0===r?"":r,o=A.fs,a=void 0===o?"":o,s=A.defines,g=void 0===s?{}:s,c=A.inject,u=void 0===c?{}:c,l=A.varyings,I=void 0===l?[]:l,C=A.bufferMode,h=void 0===C?35981:C,f=A.transpileToGLSL100,d=void 0!==f&&f,B=this._getModuleList(A.modules),p=this._getHash(i),E=this._getHash(a),Q=B.map((function(e){return t._getHash(e.name)})).sort(),y=I.map((function(e){return t._getHash(e)})),v=Object.keys(g).sort(),m=Object.keys(u).sort(),b=[],w=[],S=Object(n.a)(v);try{for(S.s();!(e=S.n()).done;){var F=e.value;b.push(this._getHash(F)),b.push(this._getHash(g[F]))}}catch(N){S.e(N)}finally{S.f()}var R,D=Object(n.a)(m);try{for(D.s();!(R=D.n()).done;){var G=R.value;w.push(this._getHash(G)),w.push(this._getHash(u[G]))}}catch(N){D.e(N)}finally{D.f()}var k="".concat(p,"/").concat(E,"D").concat(b.join("/"),"M").concat(Q.join("/"),"I").concat(w.join("/"),"V").concat(y.join("/"),"H").concat(this.stateHash,"B").concat(h).concat(d?"T":"");if(!this._programCache[k]){var x=_(this.gl,{vs:i,fs:a,modules:B,inject:u,defines:g,hookFunctions:this._hookFunctions,transpileToGLSL100:d});this._programCache[k]=new L.a(this.gl,{hash:k,vs:x.vs,fs:x.fs,varyings:I,bufferMode:h}),this._getUniforms[k]=x.getUniforms||function(e){},this._useCounts[k]=0}return this._useCounts[k]++,this._programCache[k]}},{key:"getUniforms",value:function(e){return this._getUniforms[e.hash]||null}},{key:"release",value:function(e){var t=e.hash;this._useCounts[t]--,0===this._useCounts[t]&&(this._programCache[t].delete(),delete this._programCache[t],delete this._getUniforms[t],delete this._useCounts[t])}},{key:"_getHash",value:function(e){return void 0===this._hashes[e]&&(this._hashes[e]=this._hashCounter++),this._hashes[e]}},{key:"_getModuleList",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Array(this._defaultModules.length+e.length),A={},n=0,r=0,i=this._defaultModules.length;r<i;++r){var o=this._defaultModules[r],a=o.name;t[n++]=o,A[a]=!0}for(var s=0,g=e.length;s<g;++s){var c=e[s],u=c.name;A[u]||(t[n++]=c,A[u]=!0)}return t.length=n,t}}]),e}()},function(e,t,A){"use strict";var n={value:function(){}};function r(){for(var e,t=0,A=arguments.length,n={};t<A;++t){if(!(e=arguments[t]+"")||e in n||/[\s.]/.test(e))throw new Error("illegal type: "+e);n[e]=[]}return new i(n)}function i(e){this._=e}function o(e,t){return e.trim().split(/^|\s+/).map((function(e){var A="",n=e.indexOf(".");if(n>=0&&(A=e.slice(n+1),e=e.slice(0,n)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:A}}))}function a(e,t){for(var A,n=0,r=e.length;n<r;++n)if((A=e[n]).name===t)return A.value}function s(e,t,A){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=n,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=A&&e.push({name:t,value:A}),e}i.prototype=r.prototype={constructor:i,on:function(e,t){var A,n=this._,r=o(e+"",n),i=-1,g=r.length;if(!(arguments.length<2)){if(null!=t&&"function"!==typeof t)throw new Error("invalid callback: "+t);for(;++i<g;)if(A=(e=r[i]).type)n[A]=s(n[A],e.name,t);else if(null==t)for(A in n)n[A]=s(n[A],e.name,null);return this}for(;++i<g;)if((A=(e=r[i]).type)&&(A=a(n[A],e.name)))return A},copy:function(){var e={},t=this._;for(var A in t)e[A]=t[A].slice();return new i(e)},call:function(e,t){if((A=arguments.length-2)>0)for(var A,n,r=new Array(A),i=0;i<A;++i)r[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=0,A=(n=this._[e]).length;i<A;++i)n[i].value.apply(t,r)},apply:function(e,t,A){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var n=this._[e],r=0,i=n.length;r<i;++r)n[r].value.apply(t,A)}};var g,c,u=r,l=0,I=0,C=0,h=0,f=0,d=0,B="object"===typeof performance&&performance.now?performance:Date,p="object"===typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function E(){return f||(p(Q),f=B.now()+d)}function Q(){f=0}function y(){this._call=this._time=this._next=null}function v(e,t,A){var n=new y;return n.restart(e,t,A),n}function m(){f=(h=B.now())+d,l=I=0;try{!function(){E(),++l;for(var e,t=g;t;)(e=f-t._time)>=0&&t._call.call(null,e),t=t._next;--l}()}finally{l=0,function(){var e,t,A=g,n=1/0;for(;A;)A._call?(n>A._time&&(n=A._time),e=A,A=A._next):(t=A._next,A._next=null,A=e?e._next=t:g=t);c=e,w(n)}(),f=0}}function b(){var e=B.now(),t=e-h;t>1e3&&(d-=t,h=e)}function w(e){l||(I&&(I=clearTimeout(I)),e-f>24?(e<1/0&&(I=setTimeout(m,e-B.now()-d)),C&&(C=clearInterval(C))):(C||(h=B.now(),C=setInterval(b,1e3)),l=1,p(m)))}y.prototype=v.prototype={constructor:y,restart:function(e,t,A){if("function"!==typeof e)throw new TypeError("callback is not a function");A=(null==A?E():+A)+(null==t?0:+t),this._next||c===this||(c?c._next=this:g=this,c=this),this._call=e,this._time=A,w()},stop:function(){this._call&&(this._call=null,this._time=1/0,w())}};var S=4294967296;function F(e){return e.x}function R(e){return e.y}A.d(t,"b",(function(){return F})),A.d(t,"c",(function(){return R}));var D=Math.PI*(3-Math.sqrt(5));t.a=function(e){var t,A=1,n=.001,r=1-Math.pow(n,1/300),i=0,o=.6,a=new Map,s=v(l),g=u("tick","end"),c=function(){var e=1;return function(){return(e=(1664525*e+1013904223)%S)/S}}();function l(){I(),g.call("tick",t),A<n&&(s.stop(),g.call("end",t))}function I(n){var s,g,c=e.length;void 0===n&&(n=1);for(var u=0;u<n;++u)for(A+=(i-A)*r,a.forEach((function(e){e(A)})),s=0;s<c;++s)null==(g=e[s]).fx?g.x+=g.vx*=o:(g.x=g.fx,g.vx=0),null==g.fy?g.y+=g.vy*=o:(g.y=g.fy,g.vy=0);return t}function C(){for(var t,A=0,n=e.length;A<n;++A){if((t=e[A]).index=A,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var r=10*Math.sqrt(.5+A),i=A*D;t.x=r*Math.cos(i),t.y=r*Math.sin(i)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function h(t){return t.initialize&&t.initialize(e,c),t}return null==e&&(e=[]),C(),t={tick:I,restart:function(){return s.restart(l),t},stop:function(){return s.stop(),t},nodes:function(A){return arguments.length?(e=A,C(),a.forEach(h),t):e},alpha:function(e){return arguments.length?(A=+e,t):A},alphaMin:function(e){return arguments.length?(n=+e,t):n},alphaDecay:function(e){return arguments.length?(r=+e,t):+r},alphaTarget:function(e){return arguments.length?(i=+e,t):i},velocityDecay:function(e){return arguments.length?(o=1-e,t):1-o},randomSource:function(e){return arguments.length?(c=e,a.forEach(h),t):c},force:function(e,A){return arguments.length>1?(null==A?a.delete(e):a.set(e,h(A)),t):a.get(e)},find:function(t,A,n){var r,i,o,a,s,g=0,c=e.length;for(null==n?n=1/0:n*=n,g=0;g<c;++g)(o=(r=t-(a=e[g]).x)*r+(i=A-a.y)*i)<n&&(s=a,n=o);return s},on:function(e,A){return arguments.length>1?(g.on(e,A),t):g.on(e)}}}},function(e,t,A){"use strict";var n=A(80),r=A(161),i=A(124),o=A(18),a=A(119),s=A(26);function g(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return Object(s.a)(!1),0}}var c=A(663);function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.sourceX,n=void 0===A?0:A,r=t.sourceY,i=void 0===r?0:r,o=t.sourceFormat,g=void 0===o?6408:o,c=t.sourceAttachment,u=void 0===c?36064:c,l=t.target,I=void 0===l?null:l,C=t.sourceWidth,d=t.sourceHeight,B=t.sourceType,p=h(e),E=p.framebuffer,Q=p.deleteFramebuffer;Object(s.a)(E);var y=E.gl,v=E.handle,m=E.attachments;C=C||E.width,d=d||E.height,36064===u&&null===v&&(u=1028),Object(s.a)(m[u]),I=f(I,B=B||m[u].type,g,C,d),B=B||Object(a.b)(I);var b=y.bindFramebuffer(36160,v);return y.readPixels(n,i,C,d,g,B,I),y.bindFramebuffer(36160,b||null),Q&&E.delete(),I}function l(e,t){var A=t.sourceX,r=void 0===A?0:A,i=t.sourceY,a=void 0===i?0:i,c=t.sourceFormat,u=void 0===c?6408:c,l=t.target,I=void 0===l?null:l,C=t.targetByteOffset,f=void 0===C?0:C,d=t.sourceWidth,B=t.sourceHeight,p=t.sourceType,E=h(e),Q=E.framebuffer,y=E.deleteFramebuffer;Object(s.a)(Q),d=d||Q.width,B=B||Q.height;var v=Object(o.a)(Q.gl);if(p=p||(I?I.type:5121),!I){var m=g(u),b=function(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return Object(s.a)(!1),0}}(p),w=f+d*B*m*b;I=new n.a(v,{byteLength:w,accessor:{type:p,size:m}})}return I.bind({target:35051}),Object(o.o)(v,{framebuffer:Q},(function(){v.readPixels(r,a,d,B,u,p,f)})),I.unbind({target:35051}),y&&Q.delete(),I}function I(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.sourceAttachment,n=void 0===A?36064:A,r=t.targetMaxHeight,i=void 0===r?Number.MAX_SAFE_INTEGER:r,o=u(e,{sourceAttachment:n}),s=e.width,g=e.height;g>i;){var c=Object(a.d)({data:o,width:s,height:g});o=c.data,s=c.width,g=c.height}Object(a.a)({data:o,width:s,height:g});var l=document.createElement("canvas");l.width=s,l.height=g;var I=l.getContext("2d"),C=I.createImageData(s,g);return C.data.set(o),I.putImageData(C,0,0),l.toDataURL()}function C(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=A.sourceX,r=void 0===n?0:n,a=A.sourceY,g=void 0===a?0:a,c=A.targetMipmaplevel,u=void 0===c?0:c,l=A.targetInternalFormat,I=void 0===l?6408:l,C=A.targetX,f=A.targetY,d=A.targetZ,B=A.width,p=A.height,E=h(e),Q=E.framebuffer,y=E.deleteFramebuffer;Object(s.a)(Q);var v=Q.gl,m=Q.handle,b="undefined"!==typeof C||"undefined"!==typeof f||"undefined"!==typeof d;C=C||0,f=f||0,d=d||0;var w=v.bindFramebuffer(36160,m);Object(s.a)(t);var S=null;if(t instanceof i.a&&(S=t,B=Number.isFinite(B)?B:S.width,p=Number.isFinite(p)?p:S.height,S.bind(0),t=S.target),b)switch(t){case 3553:case 34067:v.copyTexSubImage2D(t,u,C,f,r,g,B,p);break;case 35866:case 32879:var F=Object(o.a)(v);F.copyTexSubImage3D(t,u,C,f,d,r,g,B,p)}else v.copyTexImage2D(t,u,I,r,g,B,p,0);return S&&S.unbind(),v.bindFramebuffer(36160,w||null),y&&Q.delete(),S}function h(e){return e instanceof r.a?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:Object(c.b)(e),deleteFramebuffer:!0}}function f(e,t,A,n,r){return e||(t=t||5121,new(Object(a.c)(t,{clamped:!1}))(n*r*g(A)))}A.d(t,"c",(function(){return u})),A.d(t,"d",(function(){return l})),A.d(t,"a",(function(){return I})),A.d(t,"b",(function(){return C}))},function(e,t,A){"use strict";var n=A(1),r=A(4),i=A(429),o={number:{validate:function(e,t){return Number.isFinite(e)&&(!("max"in t)||e<=t.max)&&(!("min"in t)||e>=t.min)}},array:{validate:function(e,t){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function a(e){var t=s(e);return"object"===t?e?"type"in e?Object.assign({},e,o[e.type]):"value"in e?(t=s(e.value),Object.assign({type:t},e,o[t])):{type:"object",value:e}:{type:"object",value:null}:Object.assign({type:t,value:e},o[t])}function s(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}A.d(t,"a",(function(){return g})),A.d(t,"b",(function(){return c}));var g=function(){function e(t){var A=t.name,r=t.vs,o=t.fs,s=t.dependencies,g=void 0===s?[]:s,c=t.uniforms,u=t.getUniforms,l=t.deprecations,I=void 0===l?[]:l,C=t.defines,h=void 0===C?{}:C,f=t.inject,d=void 0===f?{}:f,B=t.vertexShader,p=t.fragmentShader;Object(n.a)(this,e),Object(i.a)("string"===typeof A),this.name=A,this.vs=r||B,this.fs=o||p,this.getModuleUniforms=u,this.dependencies=g,this.deprecations=this._parseDeprecationDefinitions(I),this.defines=h,this.injections=function(e){var t={vs:{},fs:{}};for(var A in e){var n=e[A],r=A.slice(0,2);"string"===typeof n&&(n={order:0,injection:n}),t[r][A]=n}return t}(d),c&&(this.uniforms=function(e){var t={};for(var A in e){var n=a(e[A]);t[A]=n}return t}(c))}return Object(r.a)(e,[{key:"getModuleSource",value:function(e){var t;switch(e){case"vs":t=this.vs||"";break;case"fs":t=this.fs||"";break;default:Object(i.a)(!1)}return"#define MODULE_".concat(this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_"),"\n").concat(t,"// END MODULE_").concat(this.name,"\n\n")}},{key:"getUniforms",value:function(e,t){return this.getModuleUniforms?this.getModuleUniforms(e,t):this.uniforms?this._defaultGetUniforms(e):{}}},{key:"getDefines",value:function(){return this.defines}},{key:"checkDeprecations",value:function(e,t){this.deprecations.forEach((function(A){A.regex.test(e)&&(A.deprecated?t.deprecated(A.old,A.new)():t.removed(A.old,A.new)())}))}},{key:"_parseDeprecationDefinitions",value:function(e){return e.forEach((function(e){switch(e.type){case"function":e.regex=new RegExp("\\b".concat(e.old,"\\("));break;default:e.regex=new RegExp("".concat(e.type," ").concat(e.old,";"))}})),e}},{key:"_defaultGetUniforms",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={},A=this.uniforms;for(var n in A){var r=A[n];n in e&&!r.private?(r.validate&&Object(i.a)(r.validate(e[n],r),"".concat(this.name,": invalid ").concat(n)),t[n]=e[n]):t[n]=r.value}return t}}]),e}();function c(e){if(!e.normalized&&(e.normalized=!0,e.uniforms&&!e.getUniforms)){var t=new g(e);e.getUniforms=t.getUniforms.bind(t)}return e}},function(e,t,A){"use strict";A.d(t,"a",(function(){return o}));var n=A(0),r=A.n(n),i=A(396);function o(){return r.a.useContext(i.a)}},,,,,,,,,,,function(e,t,A){(function(t){var A="object"==typeof t&&t&&t.Object===Object&&t;e.exports=A}).call(this,A(86))},function(e,t){var A=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return A.call(e)}catch(t){}try{return e+""}catch(t){}}return""}},function(e,t,A){var n=A(448),r=A(784),i=A(449);e.exports=function(e,t,A,o,a,s){var g=1&A,c=e.length,u=t.length;if(c!=u&&!(g&&u>c))return!1;var l=s.get(e);if(l&&s.get(t))return l==t;var I=-1,C=!0,h=2&A?new n:void 0;for(s.set(e,t),s.set(t,e);++I<c;){var f=e[I],d=t[I];if(o)var B=g?o(d,f,I,t,e,s):o(f,d,I,e,t,s);if(void 0!==B){if(B)continue;C=!1;break}if(h){if(!r(t,(function(e,t){if(!i(h,t)&&(f===e||a(f,e,A,o,s)))return h.push(t)}))){C=!1;break}}else if(f!==d&&!a(f,d,A,o,s)){C=!1;break}}return s.delete(e),s.delete(t),C}},function(e,t,A){var n=A(140).Uint8Array;e.exports=n},function(e,t,A){var n=A(548),r=A(452),i=A(298);e.exports=function(e){return n(e,i,r)}},function(e,t,A){var n=A(451),r=A(111);e.exports=function(e,t,A){var i=t(e);return r(e)?i:n(i,A(e))}},function(e,t){e.exports=function(){return[]}},function(e,t,A){var n=A(789),r=A(348),i=A(111),o=A(349),a=A(453),s=A(454),g=Object.prototype.hasOwnProperty;e.exports=function(e,t){var A=i(e),c=!A&&r(e),u=!A&&!c&&o(e),l=!A&&!c&&!u&&s(e),I=A||c||u||l,C=I?n(e.length,String):[],h=C.length;for(var f in e)!t&&!g.call(e,f)||I&&("length"==f||u&&("offset"==f||"parent"==f)||l&&("buffer"==f||"byteLength"==f||"byteOffset"==f)||a(f,h))||C.push(f);return C}},function(e,t){e.exports=function(e,t){return function(A){return e(t(A))}}},function(e,t,A){var n=A(215)(A(140),"Set");e.exports=n},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=c(A(0)),r=c(A(458)),i=c(A(61)),o=A(249),a=A(554),s=c(A(801)),g=c(A(810));function c(e){return e&&e.__esModule?e:{default:e}}function u(e){return(u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function I(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?l(Object(A),!0).forEach((function(t){y(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):l(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function C(e){return function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return h(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(e);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return h(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function f(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function B(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var A,n=Q(e);if(t){var r=Q(this).constructor;A=Reflect.construct(n,arguments,r)}else A=n.apply(this,arguments);return p(this,A)}}function p(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?E(e):t}function E(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Q(e){return(Q=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var v=!1;try{v=/firefox/i.test(navigator.userAgent)}catch(b){}var m=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(u,e);var t,A,g,c=B(u);function u(e,t){var A;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),y(E(A=c.call(this,e,t)),"state",{activeDrag:null,layout:(0,o.synchronizeLayoutWithChildren)(A.props.layout,A.props.children,A.props.cols,(0,o.compactType)(A.props)),mounted:!1,oldDragItem:null,oldLayout:null,oldResizeItem:null,droppingDOMNode:null,children:[]}),y(E(A),"dragEnterCounter",0),y(E(A),"onDragOver",(function(e){if(v&&-1===e.nativeEvent.target.className.indexOf("react-grid-layout"))return!1;var t=A.props,r=t.droppingItem,i=t.margin,o=t.cols,s=t.rowHeight,g=t.maxRows,c=t.width,u=t.containerPadding,l=A.state.layout,h=e.nativeEvent,f=h.layerX,d=h.layerY,B={left:f,top:d,e:e};if(A.state.droppingDOMNode){if(A.state.droppingPosition){var p=A.state.droppingPosition,E=p.left,Q=p.top;(E!=f||Q!=d)&&A.setState({droppingPosition:B})}}else{var y={cols:o,margin:i,maxRows:g,rowHeight:s,containerWidth:c,containerPadding:u||i},m=(0,a.calcXY)(y,d,f,r.w,r.h);A.setState({droppingDOMNode:n.default.createElement("div",{key:r.i}),droppingPosition:B,layout:[].concat(C(l),[I(I({},r),{},{x:m.x,y:m.y,static:!1,isDraggable:!0})])})}e.stopPropagation(),e.preventDefault()})),y(E(A),"removeDroppingPlaceholder",(function(){var e=A.props,t=e.droppingItem,n=e.cols,r=A.state.layout,i=(0,o.compact)(r.filter((function(e){return e.i!==t.i})),(0,o.compactType)(A.props),n);A.setState({layout:i,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})})),y(E(A),"onDragLeave",(function(){A.dragEnterCounter--,0===A.dragEnterCounter&&A.removeDroppingPlaceholder()})),y(E(A),"onDragEnter",(function(){A.dragEnterCounter++})),y(E(A),"onDrop",(function(e){var t=A.props.droppingItem,n=A.state.layout,r=n.find((function(e){return e.i===t.i}));A.dragEnterCounter=0,A.removeDroppingPlaceholder(),A.props.onDrop(n,r,e)})),(0,o.autoBindHandlers)(E(A),["onDragStart","onDrag","onDragStop","onResizeStart","onResize","onResizeStop"]),A}return t=u,g=[{key:"getDerivedStateFromProps",value:function(e,t){var A;return t.activeDrag?null:((0,r.default)(e.layout,t.propsLayout)&&e.compactType===t.compactType?(0,o.childrenEqual)(e.children,t.children)||(A=t.layout):A=e.layout,A?{layout:(0,o.synchronizeLayoutWithChildren)(A,e.children,e.cols,(0,o.compactType)(e)),compactType:e.compactType,children:e.children,propsLayout:e.layout}:null)}}],(A=[{key:"componentDidMount",value:function(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.children!==e.children||!(0,o.fastRGLPropsEqual)(this.props,e,r.default)||this.state.activeDrag!==t.activeDrag||this.state.mounted!==t.mounted||this.state.droppingPosition!==t.droppingPosition}},{key:"componentDidUpdate",value:function(e,t){if(!this.state.activeDrag){var A=this.state.layout,n=t.layout;this.onLayoutMaybeChanged(A,n)}}},{key:"containerHeight",value:function(){if(this.props.autoSize){var e=(0,o.bottom)(this.state.layout),t=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return e*this.props.rowHeight+(e-1)*this.props.margin[1]+2*t+"px"}}},{key:"onDragStart",value:function(e,t,A,n){var r=n.e,i=n.node,a=this.state.layout,s=(0,o.getLayoutItem)(a,e);if(s)return this.setState({oldDragItem:(0,o.cloneLayoutItem)(s),oldLayout:this.state.layout}),this.props.onDragStart(a,s,s,null,r,i)}},{key:"onDrag",value:function(e,t,A,n){var r=n.e,i=n.node,a=this.state.oldDragItem,s=this.state.layout,g=this.props.cols,c=(0,o.getLayoutItem)(s,e);if(c){var u={w:c.w,h:c.h,x:c.x,y:c.y,placeholder:!0,i:e};s=(0,o.moveElement)(s,c,t,A,!0,this.props.preventCollision,(0,o.compactType)(this.props),g),this.props.onDrag(s,a,c,u,r,i),this.setState({layout:(0,o.compact)(s,(0,o.compactType)(this.props),g),activeDrag:u})}}},{key:"onDragStop",value:function(e,t,A,n){var r=n.e,i=n.node;if(this.state.activeDrag){var a=this.state.oldDragItem,s=this.state.layout,g=this.props,c=g.cols,u=g.preventCollision,l=(0,o.getLayoutItem)(s,e);if(l){s=(0,o.moveElement)(s,l,t,A,!0,u,(0,o.compactType)(this.props),c),this.props.onDragStop(s,a,l,null,r,i);var I=(0,o.compact)(s,(0,o.compactType)(this.props),c),C=this.state.oldLayout;this.setState({activeDrag:null,layout:I,oldDragItem:null,oldLayout:null}),this.onLayoutMaybeChanged(I,C)}}}},{key:"onLayoutMaybeChanged",value:function(e,t){t||(t=this.state.layout),(0,r.default)(t,e)||this.props.onLayoutChange(e)}},{key:"onResizeStart",value:function(e,t,A,n){var r=n.e,i=n.node,a=this.state.layout,s=(0,o.getLayoutItem)(a,e);s&&(this.setState({oldResizeItem:(0,o.cloneLayoutItem)(s),oldLayout:this.state.layout}),this.props.onResizeStart(a,s,s,null,r,i))}},{key:"onResize",value:function(e,t,A,n){var r=n.e,i=n.node,a=this.state,s=a.layout,g=a.oldResizeItem,c=this.props,u=c.cols,l=c.preventCollision,C=(0,o.getLayoutItem)(s,e);if(C){var h;if(l){var f=(0,o.getAllCollisions)(s,I(I({},C),{},{w:t,h:A})).filter((function(e){return e.i!==C.i}));if(h=f.length>0){var d=1/0,B=1/0;f.forEach((function(e){e.x>C.x&&(d=Math.min(d,e.x)),e.y>C.y&&(B=Math.min(B,e.y))})),Number.isFinite(d)&&(C.w=d-C.x),Number.isFinite(B)&&(C.h=B-C.y)}}h||(C.w=t,C.h=A);var p={w:C.w,h:C.h,x:C.x,y:C.y,static:!0,i:e};this.props.onResize(s,g,C,p,r,i),this.setState({layout:(0,o.compact)(s,(0,o.compactType)(this.props),u),activeDrag:p})}}},{key:"onResizeStop",value:function(e,t,A,n){var r=n.e,i=n.node,a=this.state,s=a.layout,g=a.oldResizeItem,c=this.props.cols,u=(0,o.getLayoutItem)(s,e);this.props.onResizeStop(s,g,u,null,r,i);var l=(0,o.compact)(s,(0,o.compactType)(this.props),c),I=this.state.oldLayout;this.setState({activeDrag:null,layout:l,oldResizeItem:null,oldLayout:null}),this.onLayoutMaybeChanged(l,I)}},{key:"placeholder",value:function(){var e=this.state.activeDrag;if(!e)return null;var t=this.props,A=t.width,r=t.cols,i=t.margin,o=t.containerPadding,a=t.rowHeight,g=t.maxRows,c=t.useCSSTransforms,u=t.transformScale;return n.default.createElement(s.default,{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,className:"react-grid-placeholder",containerWidth:A,cols:r,margin:i,containerPadding:o||i,maxRows:g,rowHeight:a,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:c,transformScale:u},n.default.createElement("div",null))}},{key:"processGridItem",value:function(e,t){if(e&&e.key){var A=(0,o.getLayoutItem)(this.state.layout,String(e.key));if(!A)return null;var r=this.props,i=r.width,a=r.cols,g=r.margin,c=r.containerPadding,u=r.rowHeight,l=r.maxRows,I=r.isDraggable,C=r.isResizable,h=r.isBounded,f=r.useCSSTransforms,d=r.transformScale,B=r.draggableCancel,p=r.draggableHandle,E=r.resizeHandles,Q=this.state,y=Q.mounted,v=Q.droppingPosition,m="boolean"===typeof A.isDraggable?A.isDraggable:!A.static&&I,b="boolean"===typeof A.isResizable?A.isResizable:!A.static&&C,w=A.resizeHandles||E,S=m&&h&&!1!==A.isBounded;return n.default.createElement(s.default,{containerWidth:i,cols:a,margin:g,containerPadding:c||g,maxRows:l,rowHeight:u,cancel:B,handle:p,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:m,isResizable:b,isBounded:S,useCSSTransforms:f&&y,usePercentages:!y,transformScale:d,w:A.w,h:A.h,x:A.x,y:A.y,i:A.i,minH:A.minH,minW:A.minW,maxH:A.maxH,maxW:A.maxW,static:A.static,droppingPosition:t?v:void 0,resizeHandles:w},e)}}},{key:"render",value:function(){var e=this,t=this.props,A=t.className,r=t.style,a=t.isDroppable,s=t.innerRef,g=(0,i.default)("react-grid-layout",A),c=I({height:this.containerHeight()},r);return n.default.createElement("div",{ref:s,className:g,style:c,onDrop:a?this.onDrop:o.noop,onDragLeave:a?this.onDragLeave:o.noop,onDragEnter:a?this.onDragEnter:o.noop,onDragOver:a?this.onDragOver:o.noop},n.default.Children.map(this.props.children,(function(t){return e.processGridItem(t)})),a&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}}])&&f(t.prototype,A),g&&f(t,g),u}(n.default.Component);t.default=m,y(m,"displayName","ReactGridLayout"),y(m,"propTypes",g.default),y(m,"defaultProps",{autoSize:!0,cols:12,className:"",style:{},draggableHandle:"",draggableCancel:"",containerPadding:null,rowHeight:150,maxRows:1/0,layout:[],margin:[10,10],isBounded:!1,isDraggable:!0,isResizable:!0,isDroppable:!1,useCSSTransforms:!0,transformScale:1,verticalCompact:!0,compactType:"vertical",preventCollision:!1,droppingItem:{i:"__dropping-elem__",h:1,w:1},resizeHandles:["se"],onLayoutChange:o.noop,onDragStart:o.noop,onDrag:o.noop,onDragStop:o.noop,onResizeStart:o.noop,onResize:o.noop,onResizeStop:o.noop,onDrop:o.noop})},function(e,t,A){"use strict";function n(e){var t=e.margin,A=e.containerPadding,n=e.containerWidth,r=e.cols;return(n-t[0]*(r-1)-2*A[0])/r}function r(e,t,A){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*A):e}function i(e,t,A){return Math.max(Math.min(e,A),t)}Object.defineProperty(t,"__esModule",{value:!0}),t.calcGridColWidth=n,t.calcGridItemWHPx=r,t.calcGridItemPosition=function(e,t,A,i,o,a){var s=e.margin,g=e.containerPadding,c=e.rowHeight,u=n(e),l={};a&&a.resizing?(l.width=Math.round(a.resizing.width),l.height=Math.round(a.resizing.height)):(l.width=r(i,u,s[0]),l.height=r(o,c,s[1]));a&&a.dragging?(l.top=Math.round(a.dragging.top),l.left=Math.round(a.dragging.left)):(l.top=Math.round((c+s[1])*A+g[1]),l.left=Math.round((u+s[0])*t+g[0]));return l},t.calcXY=function(e,t,A,r,o){var a=e.margin,s=e.cols,g=e.rowHeight,c=e.maxRows,u=n(e),l=Math.round((A-a[0])/(u+a[0])),I=Math.round((t-a[1])/(g+a[1]));return l=i(l,0,s-r),I=i(I,0,c-o),{x:l,y:I}},t.calcWH=function(e,t,A,r,o){var a=e.margin,s=e.maxRows,g=e.cols,c=e.rowHeight,u=n(e),l=Math.round((t+a[0])/(u+a[0])),I=Math.round((A+a[1])/(c+a[1]));return l=i(l,0,g-r),I=i(I,0,s-o),{w:l,h:I}},t.clamp=i},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getBoundPosition=function(e,t,A){if(!e.props.bounds)return[t,A];var o=e.props.bounds;o="string"===typeof o?o:function(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}(o);var a=i(e);if("string"===typeof o){var s,g=a.ownerDocument,c=g.defaultView;if(!((s="parent"===o?a.parentNode:g.querySelector(o))instanceof c.HTMLElement))throw new Error('Bounds selector "'+o+'" could not find an element.');var u=c.getComputedStyle(a),l=c.getComputedStyle(s);o={left:-a.offsetLeft+(0,n.int)(l.paddingLeft)+(0,n.int)(u.marginLeft),top:-a.offsetTop+(0,n.int)(l.paddingTop)+(0,n.int)(u.marginTop),right:(0,r.innerWidth)(s)-(0,r.outerWidth)(a)-a.offsetLeft+(0,n.int)(l.paddingRight)-(0,n.int)(u.marginRight),bottom:(0,r.innerHeight)(s)-(0,r.outerHeight)(a)-a.offsetTop+(0,n.int)(l.paddingBottom)-(0,n.int)(u.marginBottom)}}(0,n.isNum)(o.right)&&(t=Math.min(t,o.right));(0,n.isNum)(o.bottom)&&(A=Math.min(A,o.bottom));(0,n.isNum)(o.left)&&(t=Math.max(t,o.left));(0,n.isNum)(o.top)&&(A=Math.max(A,o.top));return[t,A]},t.snapToGrid=function(e,t,A){var n=Math.round(t/e[0])*e[0],r=Math.round(A/e[1])*e[1];return[n,r]},t.canDragX=function(e){return"both"===e.props.axis||"x"===e.props.axis},t.canDragY=function(e){return"both"===e.props.axis||"y"===e.props.axis},t.getControlPosition=function(e,t,A){var n="number"===typeof t?(0,r.getTouch)(e,t):null;if("number"===typeof t&&!n)return null;var o=i(A),a=A.props.offsetParent||o.offsetParent||o.ownerDocument.body;return(0,r.offsetXYFromParent)(n||e,a,A.props.scale)},t.createCoreData=function(e,t,A){var r=e.state,o=!(0,n.isNum)(r.lastX),a=i(e);return o?{node:a,deltaX:0,deltaY:0,lastX:t,lastY:A,x:t,y:A}:{node:a,deltaX:t-r.lastX,deltaY:A-r.lastY,lastX:r.lastX,lastY:r.lastY,x:t,y:A}},t.createDraggableData=function(e,t){var A=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/A,y:e.state.y+t.deltaY/A,deltaX:t.deltaX/A,deltaY:t.deltaY/A,lastX:e.state.x,lastY:e.state.y}};var n=A(352),r=A(459);function i(e){var t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){void 0}},function(e,t,A){"use strict";t.__esModule=!0,t.default=void 0;var n=a(A(0)),r=a(A(13)),i=A(807),o=A(808);function a(e){return e&&e.__esModule?e:{default:e}}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e}).apply(this,arguments)}function g(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function c(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function u(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var l=function(e){var t,A;function r(){for(var t,A=arguments.length,n=new Array(A),r=0;r<A;r++)n[r]=arguments[r];return u(c(t=e.call.apply(e,[this].concat(n))||this),"state",{slackW:0,slackH:0}),t}A=e,(t=r).prototype=Object.create(A.prototype),t.prototype.constructor=t,t.__proto__=A;var a=r.prototype;return a.lockAspectRatio=function(e,t,A){return[e=(t=e/A)*A,t]},a.runConstraints=function(e,t){var A=[this.props.minConstraints,this.props.maxConstraints],n=A[0],r=A[1];if(!n&&!r)return[e,t];if(this.props.lockAspectRatio)if(t===this.props.height){var i=this.props.width/this.props.height;e=(t=e/i)*i}else{var o=this.props.height/this.props.width;t=(e=t/o)*o}var a=e,s=t,g=this.state,c=g.slackW,u=g.slackH;return e+=c,t+=u,n&&(e=Math.max(n[0],e),t=Math.max(n[1],t)),r&&(e=Math.min(r[0],e),t=Math.min(r[1],t)),u+=s-t,(c+=a-e)===this.state.slackW&&u===this.state.slackH||this.setState({slackW:c,slackH:u}),[e,t]},a.resizeHandler=function(e,t){var A=this;return function(n,r){var i=r.node,o=r.deltaX,a=r.deltaY;o/=A.props.transformScale,a/=A.props.transformScale;var s=("both"===A.props.axis||"x"===A.props.axis)&&-1===["n","s"].indexOf(t),g=("both"===A.props.axis||"y"===A.props.axis)&&-1===["e","w"].indexOf(t);s&&"w"===t[t.length-1]&&(o=-o),g&&"n"===t[0]&&(a=-a);var c=A.props.width+(s?o:0),u=A.props.height+(g?a:0),l=c!==A.props.width,I=u!==A.props.height;if("onResize"!==e||l||I){var C=A.runConstraints(c,u);c=C[0],u=C[1];var h={};if("onResizeStart"===e);else if("onResizeStop"===e)h.slackW=h.slackH=0;else if(c===A.props.width&&u===A.props.height)return;"function"===typeof A.props[e]?("function"===typeof n.persist&&n.persist(),A.setState(h,(function(){return A.props[e](n,{node:i,size:{width:c,height:u},handle:t})}))):A.setState(h)}}},a.renderResizeHandle=function(e){var t=this.props.handle;return t?"function"===typeof t?t(e):t:n.default.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+e})},a.render=function(){var e=this,t=this.props,A=t.children,r=t.draggableOpts,a=(t.width,t.height,t.handleSize,t.lockAspectRatio,t.axis,t.minConstraints,t.maxConstraints,t.onResize,t.onResizeStop,t.onResizeStart,t.resizeHandles),c=(t.transformScale,function(e,t){if(null==e)return{};var A,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||(r[A]=e[A]);return r}(t,["children","draggableOpts","width","height","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"])),l=c.className?c.className+" react-resizable":"react-resizable";return(0,o.cloneElement)(A,function(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?g(A,!0).forEach((function(t){u(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):g(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}({},c,{className:l,children:[A.props.children,a.map((function(t){return n.default.createElement(i.DraggableCore,s({},r,{key:"resizableHandle-"+t,onStop:e.resizeHandler("onResizeStop",t),onStart:e.resizeHandler("onResizeStart",t),onDrag:e.resizeHandler("onResize",t)}),e.renderResizeHandle(t))}))]}))},r}(n.default.Component);t.default=l,u(l,"propTypes",{children:r.default.element.isRequired,width:r.default.number.isRequired,height:r.default.number.isRequired,handle:r.default.element,handleSize:r.default.array,resizeHandles:r.default.arrayOf(r.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:r.default.number,lockAspectRatio:r.default.bool,axis:r.default.oneOf(["both","x","y","none"]),minConstraints:r.default.arrayOf(r.default.number),maxConstraints:r.default.arrayOf(r.default.number),onResizeStop:r.default.func,onResizeStart:r.default.func,onResize:r.default.func,draggableOpts:r.default.object}),u(l,"defaultProps",{handleSize:[20,20],lockAspectRatio:!1,axis:"both",minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1})},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getBreakpointFromWidth=function(e,t){for(var A=r(e),n=A[0],i=1,o=A.length;i<o;i++){var a=A[i];t>e[a]&&(n=a)}return n},t.getColsFromBreakpoint=function(e,t){if(!t[e])throw new Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+e+" is missing!");return t[e]},t.findOrGenerateResponsiveLayout=function(e,t,A,i,o,a){if(e[A])return(0,n.cloneLayout)(e[A]);for(var s=e[i],g=r(t),c=g.slice(g.indexOf(A)),u=0,l=c.length;u<l;u++){var I=c[u];if(e[I]){s=e[I];break}}return s=(0,n.cloneLayout)(s||[]),(0,n.compact)((0,n.correctBounds)(s,{cols:o}),a,o)},t.sortBreakpoints=r;var n=A(249);function r(e){return Object.keys(e).sort((function(t,A){return e[t]-e[A]}))}},function(e,t,A){var n=A(297),r=A(248),i=A(453),o=A(127);e.exports=function(e,t,A){if(!o(A))return!1;var a=typeof t;return!!("number"==a?r(A)&&i(t,A.length):"string"==a&&t in A)&&n(A[t],e)}},function(e,t,A){"use strict";var n=A(250);e.exports=function(e){n.copy(e,this)}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n="",r=!0===e.schema.$async,i=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),o=e.self._getId(e.schema);if(e.opts.strictKeywords){var a=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(a){var s="unknown keyword: "+a;if("log"!==e.opts.strictKeywords)throw new Error(s);e.logger.warn(s)}}if(e.isTop&&(n+=" var validate = ",r&&(e.async=!0,n+="async "),n+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(e.opts.sourceCode||e.opts.processCode)&&(n+=" /*# sourceURL="+o+" */ ")),"boolean"==typeof e.schema||!i&&!e.schema.$ref){var g=e.level,c=e.dataLevel,u=e.schema["false schema"],l=e.schemaPath+e.util.getProperty("false schema"),I=e.errSchemaPath+"/false schema",C=!e.opts.allErrors,h="data"+(c||""),f="valid"+g;if(!1===e.schema){e.isTop?C=!0:n+=" var "+f+" = false; ",(q=q||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(I)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'boolean schema is false' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var d=n;n=q.pop(),!e.compositeRule&&C?e.async?n+=" throw new ValidationError(["+d+"]); ":n+=" validate.errors = ["+d+"]; return false; ":n+=" var err = "+d+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else e.isTop?n+=r?" return data; ":" validate.errors = null; return true; ":n+=" var "+f+" = true; ";return e.isTop&&(n+=" }; return validate; "),n}if(e.isTop){var B=e.isTop;g=e.level=0,c=e.dataLevel=0,h="data";if(e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[void 0],void 0!==e.schema.default&&e.opts.useDefaults&&e.opts.strictDefaults){var p="default is ignored in the schema root";if("log"!==e.opts.strictDefaults)throw new Error(p);e.logger.warn(p)}n+=" var vErrors = null; ",n+=" var errors = 0; ",n+=" if (rootData === undefined) rootData = data; "}else{g=e.level,h="data"+((c=e.dataLevel)||"");if(o&&(e.baseId=e.resolve.url(e.baseId,o)),r&&!e.async)throw new Error("async schema in sync schema");n+=" var errs_"+g+" = errors;"}f="valid"+g,C=!e.opts.allErrors;var E="",Q="",y=e.schema.type,v=Array.isArray(y);if(y&&e.opts.nullable&&!0===e.schema.nullable&&(v?-1==y.indexOf("null")&&(y=y.concat("null")):"null"!=y&&(y=[y,"null"],v=!0)),v&&1==y.length&&(y=y[0],v=!1),e.schema.$ref&&i){if("fail"==e.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');!0!==e.opts.extendRefs&&(i=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(e.schema.$comment&&e.opts.$comment&&(n+=" "+e.RULES.all.$comment.code(e,"$comment")),y){if(e.opts.coerceTypes)var m=e.util.coerceToTypes(e.opts.coerceTypes,y);var b=e.RULES.types[y];if(m||v||!0===b||b&&!z(b)){l=e.schemaPath+".type",I=e.errSchemaPath+"/type",l=e.schemaPath+".type",I=e.errSchemaPath+"/type";var w=v?"checkDataTypes":"checkDataType";if(n+=" if ("+e.util[w](y,h,!0)+") { ",m){var S="dataType"+g,F="coerced"+g;n+=" var "+S+" = typeof "+h+"; ","array"==e.opts.coerceTypes&&(n+=" if ("+S+" == 'object' && Array.isArray("+h+")) "+S+" = 'array'; "),n+=" var "+F+" = undefined; ";var R="",D=m;if(D)for(var G,k=-1,x=D.length-1;k<x;)G=D[k+=1],k&&(n+=" if ("+F+" === undefined) { ",R+="}"),"array"==e.opts.coerceTypes&&"array"!=G&&(n+=" if ("+S+" == 'array' && "+h+".length == 1) { "+F+" = "+h+" = "+h+"[0]; "+S+" = typeof "+h+"; } "),"string"==G?n+=" if ("+S+" == 'number' || "+S+" == 'boolean') "+F+" = '' + "+h+"; else if ("+h+" === null) "+F+" = ''; ":"number"==G||"integer"==G?(n+=" if ("+S+" == 'boolean' || "+h+" === null || ("+S+" == 'string' && "+h+" && "+h+" == +"+h+" ","integer"==G&&(n+=" && !("+h+" % 1)"),n+=")) "+F+" = +"+h+"; "):"boolean"==G?n+=" if ("+h+" === 'false' || "+h+" === 0 || "+h+" === null) "+F+" = false; else if ("+h+" === 'true' || "+h+" === 1) "+F+" = true; ":"null"==G?n+=" if ("+h+" === '' || "+h+" === 0 || "+h+" === false) "+F+" = null; ":"array"==e.opts.coerceTypes&&"array"==G&&(n+=" if ("+S+" == 'string' || "+S+" == 'number' || "+S+" == 'boolean' || "+h+" == null) "+F+" = ["+h+"]; ");n+=" "+R+" if ("+F+" === undefined) { ",(q=q||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'type' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(I)+" , params: { type: '",n+=v?""+y.join(","):""+y,n+="' } ",!1!==e.opts.messages&&(n+=" , message: 'should be ",n+=v?""+y.join(","):""+y,n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";d=n;n=q.pop(),!e.compositeRule&&C?e.async?n+=" throw new ValidationError(["+d+"]); ":n+=" validate.errors = ["+d+"]; return false; ":n+=" var err = "+d+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { ";var N=c?"data"+(c-1||""):"parentData";n+=" "+h+" = "+F+"; ",c||(n+="if ("+N+" !== undefined)"),n+=" "+N+"["+(c?e.dataPathArr[c]:"parentDataProperty")+"] = "+F+"; } "}else{(q=q||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'type' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(I)+" , params: { type: '",n+=v?""+y.join(","):""+y,n+="' } ",!1!==e.opts.messages&&(n+=" , message: 'should be ",n+=v?""+y.join(","):""+y,n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";d=n;n=q.pop(),!e.compositeRule&&C?e.async?n+=" throw new ValidationError(["+d+"]); ":n+=" validate.errors = ["+d+"]; return false; ":n+=" var err = "+d+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}n+=" } "}}if(e.schema.$ref&&!i)n+=" "+e.RULES.all.$ref.code(e,"$ref")+" ",C&&(n+=" } if (errors === ",n+=B?"0":"errs_"+g,n+=") { ",Q+="}");else{var U=e.RULES;if(U)for(var _=-1,M=U.length-1;_<M;)if(z(b=U[_+=1])){if(b.type&&(n+=" if ("+e.util.checkDataType(b.type,h)+") { "),e.opts.useDefaults)if("object"==b.type&&e.schema.properties){u=e.schema.properties;var O=Object.keys(u);if(O)for(var L,T=-1,Z=O.length-1;T<Z;){if(void 0!==(J=u[L=O[T+=1]]).default){var H=h+e.util.getProperty(L);if(e.compositeRule){if(e.opts.strictDefaults){p="default is ignored for: "+H;if("log"!==e.opts.strictDefaults)throw new Error(p);e.logger.warn(p)}}else n+=" if ("+H+" === undefined ","empty"==e.opts.useDefaults&&(n+=" || "+H+" === null || "+H+" === '' "),n+=" ) "+H+" = ","shared"==e.opts.useDefaults?n+=" "+e.useDefault(J.default)+" ":n+=" "+JSON.stringify(J.default)+" ",n+="; "}}}else if("array"==b.type&&Array.isArray(e.schema.items)){var Y=e.schema.items;if(Y){k=-1;for(var J,j=Y.length-1;k<j;)if(void 0!==(J=Y[k+=1]).default){H=h+"["+k+"]";if(e.compositeRule){if(e.opts.strictDefaults){p="default is ignored for: "+H;if("log"!==e.opts.strictDefaults)throw new Error(p);e.logger.warn(p)}}else n+=" if ("+H+" === undefined ","empty"==e.opts.useDefaults&&(n+=" || "+H+" === null || "+H+" === '' "),n+=" ) "+H+" = ","shared"==e.opts.useDefaults?n+=" "+e.useDefault(J.default)+" ":n+=" "+JSON.stringify(J.default)+" ",n+="; "}}}var P=b.rules;if(P)for(var V,K=-1,W=P.length-1;K<W;)if($(V=P[K+=1])){var X=V.code(e,V.keyword,b.type);X&&(n+=" "+X+" ",C&&(E+="}"))}if(C&&(n+=" "+E+" ",E=""),b.type&&(n+=" } ",y&&y===b.type&&!m)){n+=" else { ";var q;l=e.schemaPath+".type",I=e.errSchemaPath+"/type";(q=q||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'type' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(I)+" , params: { type: '",n+=v?""+y.join(","):""+y,n+="' } ",!1!==e.opts.messages&&(n+=" , message: 'should be ",n+=v?""+y.join(","):""+y,n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";d=n;n=q.pop(),!e.compositeRule&&C?e.async?n+=" throw new ValidationError(["+d+"]); ":n+=" validate.errors = ["+d+"]; return false; ":n+=" var err = "+d+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } "}C&&(n+=" if (errors === ",n+=B?"0":"errs_"+g,n+=") { ",Q+="}")}}function z(e){for(var t=e.rules,A=0;A<t.length;A++)if($(t[A]))return!0}function $(t){return void 0!==e.schema[t.keyword]||t.implements&&function(t){for(var A=t.implements,n=0;n<A.length;n++)if(void 0!==e.schema[A[n]])return!0}(t)}return C&&(n+=" "+Q+" "),B?(r?(n+=" if (errors === 0) return data; ",n+=" else throw new ValidationError(vErrors); "):(n+=" validate.errors = vErrors; ",n+=" return errors === 0; "),n+=" }; return validate;"):n+=" var "+f+" = errors === errs_"+g+";",n=e.util.cleanUpCode(n),B&&(n=e.util.finalCleanUpCode(n,r)),n}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n,r=" ",i=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),g=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(o||""),l=e.opts.$data&&a&&a.$data;l?(r+=" var schema"+i+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=a;var I="maximum"==t,C=I?"exclusiveMaximum":"exclusiveMinimum",h=e.schema[C],f=e.opts.$data&&h&&h.$data,d=I?"<":">",B=I?">":"<",p=void 0;if(f){var E=e.util.getData(h.$data,o,e.dataPathArr),Q="exclusive"+i,y="exclType"+i,v="exclIsNumber"+i,m="' + "+(S="op"+i)+" + '";r+=" var schemaExcl"+i+" = "+E+"; ",r+=" var "+Q+"; var "+y+" = typeof "+(E="schemaExcl"+i)+"; if ("+y+" != 'boolean' && "+y+" != 'undefined' && "+y+" != 'number') { ";var b;p=C;(b=b||[]).push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(p||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(g)+" , params: {} ",!1!==e.opts.messages&&(r+=" , message: '"+C+" should be boolean' "),e.opts.verbose&&(r+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var w=r;r=b.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+w+"]); ":r+=" validate.errors = ["+w+"]; return false; ":r+=" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else if ( ",l&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" "+y+" == 'number' ? ( ("+Q+" = "+n+" === undefined || "+E+" "+d+"= "+n+") ? "+u+" "+B+"= "+E+" : "+u+" "+B+" "+n+" ) : ( ("+Q+" = "+E+" === true) ? "+u+" "+B+"= "+n+" : "+u+" "+B+" "+n+" ) || "+u+" !== "+u+") { var op"+i+" = "+Q+" ? '"+d+"' : '"+d+"='; ",void 0===a&&(p=C,g=e.errSchemaPath+"/"+C,n=E,l=f)}else{m=d;if((v="number"==typeof h)&&l){var S="'"+m+"'";r+=" if ( ",l&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" ( "+n+" === undefined || "+h+" "+d+"= "+n+" ? "+u+" "+B+"= "+h+" : "+u+" "+B+" "+n+" ) || "+u+" !== "+u+") { "}else{v&&void 0===a?(Q=!0,p=C,g=e.errSchemaPath+"/"+C,n=h,B+="="):(v&&(n=Math[I?"min":"max"](h,a)),h===(!v||n)?(Q=!0,p=C,g=e.errSchemaPath+"/"+C,B+="="):(Q=!1,m+="="));S="'"+m+"'";r+=" if ( ",l&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" "+u+" "+B+" "+n+" || "+u+" !== "+u+") { "}}p=p||t,(b=b||[]).push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(p||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(g)+" , params: { comparison: "+S+", limit: "+n+", exclusive: "+Q+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be "+m+" ",r+=l?"' + "+n:n+"'"),e.opts.verbose&&(r+=" , schema: ",r+=l?"validate.schema"+s:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";w=r;return r=b.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+w+"]); ":r+=" validate.errors = ["+w+"]; return false; ":r+=" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",c&&(r+=" else { "),r}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n,r=" ",i=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),g=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(o||""),l=e.opts.$data&&a&&a.$data;l?(r+=" var schema"+i+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=a,r+="if ( ",l&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" "+u+".length "+("maxItems"==t?">":"<")+" "+n+") { ";var I=t,C=C||[];C.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(I||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(g)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have ",r+="maxItems"==t?"more":"fewer",r+=" than ",r+=l?"' + "+n+" + '":""+a,r+=" items' "),e.opts.verbose&&(r+=" , schema: ",r+=l?"validate.schema"+s:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var h=r;return r=C.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+h+"]); ":r+=" validate.errors = ["+h+"]; return false; ":r+=" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",c&&(r+=" else { "),r}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n,r=" ",i=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),g=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(o||""),l=e.opts.$data&&a&&a.$data;l?(r+=" var schema"+i+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=a;var I="maxLength"==t?">":"<";r+="if ( ",l&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),!1===e.opts.unicode?r+=" "+u+".length ":r+=" ucs2length("+u+") ",r+=" "+I+" "+n+") { ";var C=t,h=h||[];h.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(C||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(g)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT be ",r+="maxLength"==t?"longer":"shorter",r+=" than ",r+=l?"' + "+n+" + '":""+a,r+=" characters' "),e.opts.verbose&&(r+=" , schema: ",r+=l?"validate.schema"+s:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var f=r;return r=h.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+f+"]); ":r+=" validate.errors = ["+f+"]; return false; ":r+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",c&&(r+=" else { "),r}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n,r=" ",i=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),g=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(o||""),l=e.opts.$data&&a&&a.$data;l?(r+=" var schema"+i+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=a,r+="if ( ",l&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" Object.keys("+u+").length "+("maxProperties"==t?">":"<")+" "+n+") { ";var I=t,C=C||[];C.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(I||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(g)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have ",r+="maxProperties"==t?"more":"fewer",r+=" than ",r+=l?"' + "+n+" + '":""+a,r+=" properties' "),e.opts.verbose&&(r+=" , schema: ",r+=l?"validate.schema"+s:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var h=r;return r=C.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+h+"]); ":r+=" validate.errors = ["+h+"]; return false; ":r+=" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",c&&(r+=" else { "),r}},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')},function(e,t){t.read=function(e,t,A,n,r){var i,o,a=8*r-n-1,s=(1<<a)-1,g=s>>1,c=-7,u=A?r-1:0,l=A?-1:1,I=e[t+u];for(u+=l,i=I&(1<<-c)-1,I>>=-c,c+=a;c>0;i=256*i+e[t+u],u+=l,c-=8);for(o=i&(1<<-c)-1,i>>=-c,c+=n;c>0;o=256*o+e[t+u],u+=l,c-=8);if(0===i)i=1-g;else{if(i===s)return o?NaN:1/0*(I?-1:1);o+=Math.pow(2,n),i-=g}return(I?-1:1)*o*Math.pow(2,i-n)},t.write=function(e,t,A,n,r,i){var o,a,s,g=8*i-r-1,c=(1<<g)-1,u=c>>1,l=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,I=n?0:i-1,C=n?1:-1,h=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-o))<1&&(o--,s*=2),(t+=o+u>=1?l/s:l*Math.pow(2,1-u))*s>=2&&(o++,s/=2),o+u>=c?(a=0,o=c):o+u>=1?(a=(t*s-1)*Math.pow(2,r),o+=u):(a=t*Math.pow(2,u-1)*Math.pow(2,r),o=0));r>=8;e[A+I]=255&a,I+=C,a/=256,r-=8);for(o=o<<r|a,g+=r;g>0;e[A+I]=255&o,I+=C,o/=256,g-=8);e[A+I-C]|=128*h}},function(e,t,A){"use strict";A.d(t,"a",(function(){return l}));var n=A(1),r=A(4),i=A(9),o=A(10),a=A(273),s=A(32),g=A(33),c=A(180),u=A(125),l=function(e){Object(i.a)(A,e);var t=Object(o.a)(A);function A(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Object(n.a)(this,A),e=t.call(this,2),Object(s.m)(r)&&1===arguments.length?e.copy(r):(s.f.debug&&(Object(g.a)(r),Object(g.a)(i)),e[0]=r,e[1]=i),e}return Object(r.a)(A,[{key:"set",value:function(e,t){return this[0]=e,this[1]=t,this.check()}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this.check()}},{key:"fromObject",value:function(e){return s.f.debug&&(Object(g.a)(e.x),Object(g.a)(e.y)),this[0]=e.x,this[1]=e.y,this.check()}},{key:"toObject",value:function(e){return e.x=this[0],e.y=this[1],e}},{key:"horizontalAngle",value:function(){return Math.atan2(this.y,this.x)}},{key:"verticalAngle",value:function(){return Math.atan2(this.x,this.y)}},{key:"transform",value:function(e){return this.transformAsPoint(e)}},{key:"transformAsPoint",value:function(e){return c.d(this,this,e),this.check()}},{key:"transformAsVector",value:function(e){return Object(u.a)(this,this,e),this.check()}},{key:"transformByMatrix3",value:function(e){return c.c(this,this,e),this.check()}},{key:"transformByMatrix2x3",value:function(e){return c.b(this,this,e),this.check()}},{key:"transformByMatrix2",value:function(e){return c.a(this,this,e),this.check()}},{key:"ELEMENTS",get:function(){return 2}}]),A}(a.a)},function(e,t,A){"use strict";A.d(t,"a",(function(){return I}));var n=A(1),r=A(4),i=A(9),o=A(10),a=A(273),s=A(32),g=A(33),c=A(67),u=A(125),l={},I=function(e){Object(i.a)(A,e);var t=Object(o.a)(A);function A(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return Object(n.a)(this,A),e=t.call(this,-0,-0,-0,-0),Object(s.m)(r)&&1===arguments.length?e.copy(r):(s.f.debug&&(Object(g.a)(r),Object(g.a)(i),Object(g.a)(o),Object(g.a)(a)),e[0]=r,e[1]=i,e[2]=o,e[3]=a),e}return Object(r.a)(A,null,[{key:"ZERO",get:function(){return l.ZERO=l.ZERO||Object.freeze(new A(0,0,0,0))}}]),Object(r.a)(A,[{key:"set",value:function(e,t,A,n){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this.check()}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}},{key:"fromObject",value:function(e){return s.f.debug&&(Object(g.a)(e.x),Object(g.a)(e.y),Object(g.a)(e.z),Object(g.a)(e.w)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this}},{key:"toObject",value:function(e){return e.x=this[0],e.y=this[1],e.z=this[2],e.w=this[3],e}},{key:"transform",value:function(e){return c.m(this,this,e),this.check()}},{key:"transformByMatrix3",value:function(e){return Object(u.e)(this,this,e),this.check()}},{key:"transformByMatrix2",value:function(e){return Object(u.d)(this,this,e),this.check()}},{key:"transformByQuaternion",value:function(e){return c.n(this,this,e),this.check()}},{key:"applyMatrix4",value:function(e){return e.transform(this,this),this}},{key:"ELEMENTS",get:function(){return 4}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=Object(g.a)(e)}},{key:"w",get:function(){return this[3]},set:function(e){this[3]=Object(g.a)(e)}}]),A}(a.a)},function(e,t,A){"use strict";A.d(t,"a",(function(){return d}));var n=A(1),r=A(4),i=A(9),o=A(10),a=A(404),s=A(33),g=A(125),c=A(126),u=A(180),l=A(67),I=Object.freeze([1,0,0,0,1,0,0,0,1]),C=Object.freeze([0,0,0,0,0,0,0,0,0]),h=Object.freeze({COL0ROW0:0,COL0ROW1:1,COL0ROW2:2,COL1ROW0:3,COL1ROW1:4,COL1ROW2:5,COL2ROW0:6,COL2ROW1:7,COL2ROW2:8}),f={},d=function(e){Object(i.a)(A,e);var t=Object(o.a)(A);function A(e){var r;return Object(n.a)(this,A),r=t.call(this,-0,-0,-0,-0,-0,-0,-0,-0,-0),1===arguments.length&&Array.isArray(e)?r.copy(e):r.identity(),r}return Object(r.a)(A,[{key:"ELEMENTS",get:function(){return 9}},{key:"RANK",get:function(){return 3}},{key:"INDICES",get:function(){return h}}],[{key:"IDENTITY",get:function(){return f.IDENTITY=f.IDENTITY||Object.freeze(new A(I)),f.IDENTITY}},{key:"ZERO",get:function(){return f.ZERO=f.ZERO||Object.freeze(new A(C)),f.ZERO}}]),Object(r.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}},{key:"set",value:function(e,t,A,n,r,i,o,a,s){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this[4]=r,this[5]=i,this[6]=o,this[7]=a,this[8]=s,this.check()}},{key:"setRowMajor",value:function(e,t,A,n,r,i,o,a,s){return this[0]=e,this[1]=n,this[2]=o,this[3]=t,this[4]=r,this[5]=a,this[6]=A,this[7]=i,this[8]=s,this.check()}},{key:"determinant",value:function(){return c.b(this)}},{key:"identity",value:function(){return this.copy(I)}},{key:"fromQuaternion",value:function(e){return c.c(this,e),this.check()}},{key:"transpose",value:function(){return c.i(this,this),this.check()}},{key:"invert",value:function(){return c.d(this,this),this.check()}},{key:"multiplyLeft",value:function(e){return c.e(this,e,this),this.check()}},{key:"multiplyRight",value:function(e){return c.e(this,this,e),this.check()}},{key:"rotate",value:function(e){return c.f(this,this,e),this.check()}},{key:"scale",value:function(e){return Array.isArray(e)?c.g(this,this,e):c.g(this,this,[e,e,e]),this.check()}},{key:"translate",value:function(e){return c.h(this,this,e),this.check()}},{key:"transform",value:function(e,t){switch(e.length){case 2:t=u.c(t||[-0,-0],e,this);break;case 3:t=l.l(t||[-0,-0,-0],e,this);break;case 4:t=Object(g.e)(t||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Object(s.b)(t,e.length),t}},{key:"transformVector",value:function(e,t){return Object(s.c)("Matrix3.transformVector"),this.transform(e,t)}},{key:"transformVector2",value:function(e,t){return Object(s.c)("Matrix3.transformVector"),this.transform(e,t)}},{key:"transformVector3",value:function(e,t){return Object(s.c)("Matrix3.transformVector"),this.transform(e,t)}}]),A}(a.a)},function(e,t,A){"use strict";t.a={EPSILON1:.1,EPSILON2:.01,EPSILON3:.001,EPSILON4:1e-4,EPSILON5:1e-5,EPSILON6:1e-6,EPSILON7:1e-7,EPSILON8:1e-8,EPSILON9:1e-9,EPSILON10:1e-10,EPSILON11:1e-11,EPSILON12:1e-12,EPSILON13:1e-13,EPSILON14:1e-14,EPSILON15:1e-15,EPSILON16:1e-16,EPSILON17:1e-17,EPSILON18:1e-18,EPSILON19:1e-19,EPSILON20:1e-20,PI_OVER_TWO:Math.PI/2,PI_OVER_FOUR:Math.PI/4,PI_OVER_SIX:Math.PI/6,TWO_PI:2*Math.PI}},function(e,t,A){"use strict";(function(e){var t=A(6),n=A(662),r=A(85),i=A(293);function o(e,t){var A=t.extension,n=t.target,o=t.target2,a=i.b[A];Object(r.a)(a);for(var s=a.meta,g=(void 0===s?{}:s).suffix,c=void 0===g?"":g,u=e.getExtension(A),l=function(){var t=C[I],A="".concat(t).concat(c),r=null;"meta"===t||"function"===typeof e[t]||(u&&"function"===typeof u[A]?r=function(){return u[A].apply(u,arguments)}:"function"===typeof a[t]&&(r=a[t].bind(n))),r&&(n[t]=r,o[t]=r)},I=0,C=Object.keys(a);I<C.length;I++)l()}("undefined"!==typeof e?e:window).polyfillContext=function(e){e.luma=e.luma||{};var A=e.luma;return A.polyfilled||(Object(n.a)(e),function(e){e.luma.extensions={};var A,n=e.getSupportedExtensions()||[],r=Object(t.a)(n);try{for(r.s();!(A=r.n()).done;){var i=A.value;e.luma[i]=e.getExtension(i)}}catch(o){r.e(o)}finally{r.f()}}(e),function(e,A){var n,r=Object(t.a)(Object.getOwnPropertyNames(A));try{for(r.s();!(n=r.n()).done;){var i=n.value;"overrides"!==i&&o(e,{extension:i,target:e.luma,target2:e})}}catch(a){r.e(a)}finally{r.f()}}(e,i.b),function(e,t){var A=t.target,n=t.target2;Object.keys(i.a).forEach((function(t){if("function"===typeof i.a[t]){var r=e[t]?e[t].bind(e):function(){},o=i.a[t].bind(null,e,r);A[t]=o,n[t]=o}}))}(e,{target:A,target2:e}),A.polyfilled=!0),e}}).call(this,A(86))},function(e,t,A){"use strict";(function(e,n){var r=A(95);Object.defineProperty(t,"__esModule",{value:!0}),t.console=t.process=t.document=t.global=t.window=t.self=void 0;var i=r(A(251)),o={self:"undefined"!==typeof self&&self,window:"undefined"!==typeof window&&window,global:"undefined"!==typeof e&&e,document:"undefined"!==typeof document&&document,process:"object"===("undefined"===typeof n?"undefined":(0,i.default)(n))&&n},a=o.self||o.window||o.global;t.self=a;var s=o.window||o.self||o.global;t.window=s;var g=o.global||o.self||o.window;t.global=g;var c=o.document||{};t.document=c;var u=o.process||{};t.process=u;var l=console;t.console=l}).call(this,A(86),A(90))},function(e,t,A){"use strict";(function(e){var n=A(95);Object.defineProperty(t,"__esModule",{value:!0}),t.default=o,t.isBrowserMainThread=function(){return o()&&"undefined"!==typeof document};var r=n(A(251)),i=n(A(463));function o(){return!("object"===("undefined"===typeof e?"undefined":(0,r.default)(e))&&"[object process]"===String(e)&&!e.browser)||(0,i.default)()}}).call(this,A(90))},function(e,t,A){"use strict";var n=A(223);t.a={name:"project32",dependencies:[n.a],vs:"\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset, out vec4 commonPosition\n) {\n vec3 projectedPosition = project_position(position, position64Low);\n if (project_uProjectionMode == PROJECTION_MODE_GLOBE) {\n // offset is specified as ENU\n // when in globe projection, rotate offset so that the ground alighs with the surface of the globe\n mat3 rotation = project_get_orientation_matrix(projectedPosition);\n offset = rotation * offset;\n }\n commonPosition = vec4(projectedPosition + offset, 1.0);\n return project_common_position_to_clipspace(commonPosition);\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset\n) {\n vec4 commonPosition;\n return project_position_to_clipspace(position, position64Low, offset, commonPosition);\n}\n"}},function(e,t,A){"use strict";var n=A(7),r=A(1158);t.a=Object(n.a)({inject:{"vs:DECKGL_FILTER_COLOR":"\n picking_setPickingColor(geometry.pickingColor);\n // for picking depth values\n picking_setPickingAttribute(geometry.position.z);\n ","fs:DECKGL_FILTER_COLOR":{order:99,injection:"\n // use highlight color if this fragment belongs to the selected object.\n color = picking_filterHighlightColor(color);\n\n // use picking color if rendering to picking FBO.\n color = picking_filterPickingColor(color);\n "}}},r.a)},function(e,t,A){"use strict";A.d(t,"a",(function(){return c}));var n=A(6),r=A(1),i=A(4),o=A(116),a=A(150),s=A(87),g=A(80),c=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(r.a)(this,e);var A=t.attributes,n=void 0===A?{}:A;this.typedArrayManager=a.a,this.indexStarts=null,this.vertexStarts=null,this.vertexCount=0,this.instanceCount=0,this.attributes={},this._attributeDefs=n,this.opts=t,this.updateGeometry(t),Object.seal(this)}return Object(i.a)(e,[{key:"updateGeometry",value:function(e){Object.assign(this.opts,e);var t=this.opts,A=t.data,r=t.buffers,i=void 0===r?{}:r,o=t.getGeometry,a=t.geometryBuffer,g=t.positionFormat,c=t.dataChanged,u=t.normalize,l=void 0===u||u;if(this.data=A,this.getGeometry=o,this.positionSize=a&&a.size||("XY"===g?2:3),this.buffers=i,this.normalize=l,a&&(Object(s.a)(A.startIndices),this.getGeometry=this.getGeometryFromBuffer(a),l||(i.positions=a)),this.geometryBuffer=i.positions,Array.isArray(c)){var I,C=Object(n.a)(c);try{for(C.s();!(I=C.n()).done;){var h=I.value;this._rebuildGeometry(h)}}catch(f){C.e(f)}finally{C.f()}}else this._rebuildGeometry()}},{key:"updatePartialGeometry",value:function(e){var t=e.startRow,A=e.endRow;this._rebuildGeometry({startRow:t,endRow:A})}},{key:"normalizeGeometry",value:function(e){return e}},{key:"updateGeometryAttributes",value:function(e,t,A){throw new Error("Not implemented")}},{key:"getGeometrySize",value:function(e){throw new Error("Not implemented")}},{key:"getGeometryFromBuffer",value:function(e){var t=e.value||e;return Object(s.a)(ArrayBuffer.isView(t)),Object(o.b)(t,{size:this.positionSize,offset:e.offset,stride:e.stride,startIndices:this.data.startIndices})}},{key:"_allocate",value:function(e,t){var A=this.attributes,n=this.buffers,r=this._attributeDefs,i=this.typedArrayManager;for(var o in r)if(o in n)i.release(A[o]),A[o]=null;else{var a=r[o];a.copy=t,A[o]=i.allocate(A[o],e,a)}}},{key:"_forEachGeometry",value:function(e,t,A){var r,i=this.data,a=this.getGeometry,s=Object(o.a)(i,t,A),g=s.iterable,c=s.objectInfo,u=Object(n.a)(g);try{for(u.s();!(r=u.n()).done;){var l=r.value;c.index++,e(a(l,c),c.index)}}catch(I){u.e(I)}finally{u.f()}}},{key:"_rebuildGeometry",value:function(e){var t=this;if(this.data&&this.getGeometry){var A=this.indexStarts,n=this.vertexStarts,r=this.instanceCount,i=this.data,o=this.geometryBuffer,a=e||{},s=a.startRow,c=void 0===s?0:s,u=a.endRow,l=void 0===u?1/0:u,I={};if(e||(A=[0],n=[0]),this.normalize||!o)this._forEachGeometry((function(e,A){e=t.normalizeGeometry(e),I[A]=e,n[A+1]=n[A]+t.getGeometrySize(e)}),c,l),r=n[n.length-1];else if(o.buffer instanceof g.a){var C=o.stride||4*this.positionSize;n=i.startIndices,r=n[i.length]||o.buffer.byteLength/C}else{var h=o.value||o,f=o.stride/h.BYTES_PER_ELEMENT||this.positionSize;n=i.startIndices,r=n[i.length]||h.length/f}this._allocate(r,Boolean(e)),this.indexStarts=A,this.vertexStarts=n,this.instanceCount=r;var d={};this._forEachGeometry((function(e,i){e=I[i]||e,d.vertexStart=n[i],d.indexStart=A[i];var o=i<n.length-1?n[i+1]:r;d.geometrySize=o-n[i],d.geometryIndex=i,t.updateGeometryAttributes(e,d)}),c,l),this.vertexCount=A[A.length-1]}}}]),e}()},function(e,t,A){"use strict";A.d(t,"a",(function(){return g}));var n=A(7),r=A(1),i=A(4),o=A(25),a=A(423),s={id:"request-scheduler",throttleRequests:!0,maxRequests:6},g=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(r.a)(this,e),Object(o.a)(this,"props",void 0),Object(o.a)(this,"stats",void 0),Object(o.a)(this,"activeRequestCount",0),Object(o.a)(this,"requestQueue",[]),Object(o.a)(this,"requestMap",new Map),Object(o.a)(this,"deferredUpdate",null),this.props=Object(n.a)({},s,{},t),this.stats=new a.a({id:this.props.id}),this.stats.get("Queued Requests"),this.stats.get("Active Requests"),this.stats.get("Cancelled Requests"),this.stats.get("Queued Requests Ever"),this.stats.get("Active Requests Ever")}return Object(i.a)(e,[{key:"scheduleRequest",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return 0};if(!this.props.throttleRequests)return Promise.resolve({done:function(){}});if(this.requestMap.has(e))return this.requestMap.get(e);var A={handle:e,priority:0,getPriority:t},n=new Promise((function(e){return A.resolve=e,A}));return this.requestQueue.push(A),this.requestMap.set(e,n),this._issueNewRequests(),n}},{key:"_issueRequest",value:function(e){var t=this,A=e.handle,n=e.resolve,r=!1,i=function(){r||(r=!0,t.requestMap.delete(A),t.activeRequestCount--,t._issueNewRequests())};return this.activeRequestCount++,n?n({done:i}):Promise.resolve({done:i})}},{key:"_issueNewRequests",value:function(){var e=this;this.deferredUpdate||(this.deferredUpdate=setTimeout((function(){return e._issueNewRequestsAsync()}),0))}},{key:"_issueNewRequestsAsync",value:function(){this.deferredUpdate=null;var e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(0!==e){this._updateAllRequests();for(var t=0;t<e;++t){var A=this.requestQueue.shift();A&&this._issueRequest(A)}}}},{key:"_updateAllRequests",value:function(){for(var e=this.requestQueue,t=0;t<e.length;++t){var A=e[t];this._updateRequest(A)||(e.splice(t,1),this.requestMap.delete(A.handle),t--)}e.sort((function(e,t){return e.priority-t.priority}))}},{key:"_updateRequest",value:function(e){return e.priority=e.getPriority(e.handle),!(e.priority<0)||(e.resolve(null),!1)}}]),e}()},function(e,t,A){"use strict";A.d(t,"a",(function(){return o}));var n=A(1),r=A(4),i=A(163),o=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(n.a)(this,e),this.opts=t}return Object(r.a)(e,[{key:"equals",value:function(e){return this===e||this.constructor===e.constructor&&Object(i.a)(this.opts,e.opts)}},{key:"getShaders",value:function(e){return null}},{key:"getSubLayerProps",value:function(e){var t=e.constructor.defaultProps,A=void 0===t?{}:t,n={updateTriggers:{}};for(var r in A)if(r in this.props){var i=A[r],o=this.props[r];n[r]=o,i&&"accessor"===i.type&&(n.updateTriggers[r]=this.props.updateTriggers[r],"function"===typeof o&&(n[r]=this.getSubLayerAccessor(o,!0)))}return n}},{key:"initializeState",value:function(e,t){}},{key:"updateState",value:function(e,t){}},{key:"draw",value:function(e,t){}},{key:"finalizeState",value:function(e){}}]),e}()},function(e,t,A){"use strict";A.d(t,"a",(function(){return d}));var n=A(6),r=A(1),i=A(4),o=A(9),a=A(10),s=A(41),g=A(116),c=A(511),u=A(267),l=A(268),I=A(326),C=A(409),h=[0,0,0,255],f={stroked:!0,filled:!0,extruded:!1,elevationScale:1,wireframe:!1,_normalize:!0,_windingOrder:"CW",lineWidthUnits:"meters",lineWidthScale:1,lineWidthMinPixels:0,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,lineJointRounded:!1,lineMiterLimit:4,getPolygon:{type:"accessor",value:function(e){return e.polygon}},getFillColor:{type:"accessor",value:[0,0,0,255]},getLineColor:{type:"accessor",value:h},getLineWidth:{type:"accessor",value:1},getElevation:{type:"accessor",value:1e3},material:!0},d=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"initializeState",value:function(){this.state={paths:[]},this.props.getLineDashArray&&s.a.removed("getLineDashArray","PathStyleExtension")()}},{key:"updateState",value:function(e){var t=this,A=(e.oldProps,e.props,e.changeFlags),n=A.dataChanged||A.updateTriggersChanged&&(A.updateTriggersChanged.all||A.updateTriggersChanged.getPolygon);if(n&&Array.isArray(A.dataChanged)){var r=this.state.paths.slice(),i=A.dataChanged.map((function(e){return Object(C.a)({data:r,getIndex:function(e){return e.__source.index},dataRange:e,replace:t._getPaths(e)})}));this.setState({paths:r,pathsDiff:i})}else n&&this.setState({paths:this._getPaths(),pathsDiff:null})}},{key:"_getPaths",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},A=this.props,r=A.data,i=A.getPolygon,o=A.positionFormat,a=A._normalize,s=[],c="XY"===o?2:3,u=t.startRow,l=t.endRow,C=Object(g.a)(r,u,l),h=C.iterable,f=C.objectInfo,d=Object(n.a)(h);try{for(d.s();!(e=d.n()).done;){var B=e.value;f.index++;var p=i(B,f);a&&(p=I.b(p,c));var E=p,Q=E.holeIndices,y=p.positions||p;if(Q)for(var v=0;v<=Q.length;v++){var m=y.slice(Q[v-1]||0,Q[v]||y.length);s.push(this.getSubLayerRow({path:m},B,f.index))}else s.push(this.getSubLayerRow({path:y},B,f.index))}}catch(b){d.e(b)}finally{d.f()}return s}},{key:"renderLayers",value:function(){var e=this.props,t=e.data,A=e._dataDiff,n=e.stroked,r=e.filled,i=e.extruded,o=e.wireframe,a=e._normalize,s=e._windingOrder,g=e.elevationScale,c=e.transitions,I=e.positionFormat,C=this.props,f=C.lineWidthUnits,d=C.lineWidthScale,B=C.lineWidthMinPixels,p=C.lineWidthMaxPixels,E=C.lineJointRounded,Q=C.lineMiterLimit,y=C.lineDashJustified,v=this.props,m=v.getFillColor,b=v.getLineColor,w=v.getLineWidth,S=v.getLineDashArray,F=v.getElevation,R=v.getPolygon,D=v.updateTriggers,G=v.material,k=this.state,x=k.paths,N=k.pathsDiff,U=this.getSubLayerClass("fill",u.a),_=this.getSubLayerClass("stroke",l.a),M=this.shouldRenderSubLayer("fill",x)&&new U({_dataDiff:A,extruded:i,elevationScale:g,filled:r,wireframe:o,_normalize:a,_windingOrder:s,getElevation:F,getFillColor:m,getLineColor:i&&o?b:h,material:G,transitions:c},this.getSubLayerProps({id:"fill",updateTriggers:{getPolygon:D.getPolygon,getElevation:D.getElevation,getFillColor:D.getFillColor,lineColors:i&&o,getLineColor:D.getLineColor}}),{data:t,positionFormat:I,getPolygon:R});return[!i&&M,!i&&n&&this.shouldRenderSubLayer("stroke",x)&&new _({_dataDiff:N&&function(){return N},widthUnits:f,widthScale:d,widthMinPixels:B,widthMaxPixels:p,jointRounded:E,miterLimit:Q,dashJustified:y,_pathType:"loop",transitions:c&&{getWidth:c.getLineWidth,getColor:c.getLineColor,getPath:c.getPolygon},getColor:this.getSubLayerAccessor(b),getWidth:this.getSubLayerAccessor(w),getDashArray:this.getSubLayerAccessor(S)},this.getSubLayerProps({id:"stroke",updateTriggers:{getWidth:D.getLineWidth,getColor:D.getLineColor,getDashArray:D.getLineDashArray}}),{data:x,positionFormat:I,getPath:function(e){return e.path}}),i&&M]}}]),A}(c.a);d.layerName="PolygonLayer",d.defaultProps=f},function(e,t,A){"use strict";A.d(t,"a",(function(){return B}));var n=A(8),r=A(7),i=A(1),o=A(4),a=A(9),s=A(10),g=A(134),c=A(96),u=A(23),l=A(42),I=A(70),C=A(380),h=(new u.Matrix4).lookAt({eye:[0,0,1]});function f(e){var t=e.width,A=e.height,n=e.near,r=e.far;return t=t||1,A=A||1,(new u.Matrix4).ortho({left:-t/2,right:t/2,bottom:-A/2,top:A/2,near:n,far:r})}var d=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(e){var n;Object(i.a)(this,A);var o=e.width,a=e.height,s=e.near,g=void 0===s?.1:s,c=e.far,u=void 0===c?1e3:c,l=e.zoom,I=void 0===l?0:l,C=e.target,d=void 0===C?[0,0,0]:C,B=e.flipY,p=void 0===B||B,E=Array.isArray(I)?I[0]:I,Q=Array.isArray(I)?I[1]:I,y=Math.min(E,Q),v=Math.pow(2,y);if(n=t.call(this,Object(r.a)({},e,{longitude:null,position:d,viewMatrix:h.clone().scale([v,v*(p?-1:1),v]),projectionMatrix:f({width:o,height:a,near:g,far:u}),zoom:y})),E!==Q){var m=Math.pow(2,E),b=Math.pow(2,Q);n.distanceScales={unitsPerMeter:[m/v,b/v,1],metersPerUnit:[v/m,v/b,1]}}return n}return Object(o.a)(A,[{key:"projectFlat",value:function(e){var t=Object(n.a)(e,2),A=t[0],r=t[1],i=this.distanceScales.unitsPerMeter;return[A*i[0],r*i[1]]}},{key:"unprojectFlat",value:function(e){var t=Object(n.a)(e,2),A=t[0],r=t[1],i=this.distanceScales.metersPerUnit;return[A*i[0],r*i[1]]}},{key:"panByPosition",value:function(e,t){var A=Object(l.p)(t,this.pixelUnprojectionMatrix),n=this.projectFlat(e),r=I.a([],n,I.b([],A));return{target:I.a([],this.center,r)}}}]),A}(c.a),B=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(e){return Object(i.a)(this,A),t.call(this,Object(r.a)({},e,{type:d}))}return Object(o.a)(A,[{key:"controller",get:function(){return this._getControllerProps({type:C.a})}}]),A}(g.a);B.displayName="OrthographicView"},function(e,t,A){"use strict";A.d(t,"a",(function(){return d}));var n=A(8),r=A(7),i=A(1),o=A(4),a=A(9),s=A(10),g=A(134),c=A(96),u=A(23),l=A(42),I=A(264),C=Math.PI/180;function h(e){var t=e.height,A=e.focalDistance,n=e.orbitAxis,r=e.rotationX,i=e.rotationOrbit,o=e.zoom,a="Z"===n?[0,0,1]:[0,1,0],s="Z"===n?[0,-A,0]:[0,0,A],g=(new u.Matrix4).lookAt({eye:s,up:a});g.rotateX(r*C),"Z"===n?g.rotateZ(i*C):g.rotateY(i*C);var c=Math.pow(2,o)/(t||1);return g.scale(c),g}var f=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(e){var n;Object(i.a)(this,A);var o=e.height,a=e.projectionMatrix,s=e.fovy,g=void 0===s?50:s,c=e.orbitAxis,u=e.target,I=void 0===u?[0,0,0]:u,C=e.rotationX,f=void 0===C?0:C,d=e.rotationOrbit,B=void 0===d?0:d,p=e.zoom,E=void 0===p?0:p,Q=a?a[5]/2:Object(l.f)(g);return(n=t.call(this,Object(r.a)({},e,{longitude:null,viewMatrix:h({height:o,focalDistance:Q,orbitAxis:c,rotationX:f,rotationOrbit:B,zoom:E}),fovy:g,focalDistance:Q,position:I,zoom:E}))).projectedCenter=n.project(n.center),n}return Object(o.a)(A,[{key:"unproject",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.topLeft,r=void 0===A||A,i=Object(n.a)(e,3),o=i[0],a=i[1],s=i[2],g=void 0===s?this.projectedCenter[2]:s,c=r?a:this.height-a,u=Object(l.p)([o,c,g],this.pixelUnprojectionMatrix),I=Object(n.a)(u,3),C=I[0],h=I[1],f=I[2];return[C,h,f]}},{key:"panByPosition",value:function(e,t){var A=this.project(e),n=[this.width/2+A[0]-t[0],this.height/2+A[1]-t[1],this.projectedCenter[2]];return{target:this.unproject(n)}}}]),A}(c.a),d=function(e){Object(a.a)(A,e);var t=Object(s.a)(A);function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(i.a)(this,A);var n=e.orbitAxis,o=void 0===n?"Z":n;return t.call(this,Object(r.a)({},e,{orbitAxis:o,type:f}))}return Object(o.a)(A,[{key:"controller",get:function(){return this._getControllerProps({type:I.b})}}]),A}(g.a);d.displayName="OrbitView"},function(e,t){e.exports=function(e,t){for(var A=-1,n=null==e?0:e.length;++A<n&&!1!==t(e[A],A,e););return e}},function(e,t,A){var n=A(465),r=A(297),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,A){var o=e[t];i.call(e,t)&&r(o,A)&&(void 0!==A||t in e)||n(e,t,A)}},function(e,t,A){var n=A(215),r=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=r},function(e,t,A){(function(e){var n=A(140),r=t&&!t.nodeType&&t,i=r&&"object"==typeof e&&e&&!e.nodeType&&e,o=i&&i.exports===r?n.Buffer:void 0,a=o?o.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var A=e.length,n=a?a(A):new e.constructor(A);return e.copy(n),n}}).call(this,A(155)(e))},function(e,t){e.exports=function(e,t){var A=-1,n=e.length;for(t||(t=Array(n));++A<n;)t[A]=e[A];return t}},function(e,t,A){var n=A(451),r=A(466),i=A(452),o=A(549),a=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)n(t,i(e)),e=r(e);return t}:o;e.exports=a},function(e,t,A){var n=A(467);e.exports=function(e,t){var A=t?n(e.buffer):e.buffer;return new e.constructor(A,e.byteOffset,e.length)}},function(e,t,A){var n=A(896),r=A(466),i=A(457);e.exports=function(e){return"function"!=typeof e.constructor||i(e)?{}:n(r(e))}},function(e,t,A){var n=A(451),r=A(910);e.exports=function e(t,A,i,o,a){var s=-1,g=t.length;for(i||(i=r),a||(a=[]);++s<g;){var c=t[s];A>0&&i(c)?A>1?e(c,A-1,i,o,a):n(a,c):o||(a[a.length]=c)}return a}},function(e,t,A){var n=A(918);e.exports=function(e,t){return!!(null==e?0:e.length)&&n(e,t,0)>-1}},function(e,t){e.exports=function(e,t,A){for(var n=-1,r=null==e?0:e.length;++n<r;)if(A(t,e[n]))return!0;return!1}},function(e,t,A){var n=A(928);e.exports=function(e,t,A){if(n(e),void 0===t)return e;switch(A){case 1:return function(A){return e.call(t,A)};case 2:return function(A,n){return e.call(t,A,n)};case 3:return function(A,n,r){return e.call(t,A,n,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,A){e.exports=!A(192)&&!A(303)((function(){return 7!=Object.defineProperty(A(596)("div"),"a",{get:function(){return 7}}).a}))},function(e,t,A){var n=A(256),r=A(190).document,i=n(r)&&n(r.createElement);e.exports=function(e){return i?r.createElement(e):{}}},function(e,t,A){var n=A(218),r=A(257),i=A(930)(!1),o=A(476)("IE_PROTO");e.exports=function(e,t){var A,a=r(e),s=0,g=[];for(A in a)A!=o&&n(a,A)&&g.push(A);for(;t.length>s;)n(a,A=t[s++])&&(~i(g,A)||g.push(A));return g}},function(e,t,A){var n=A(599);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t){var A={}.toString;e.exports=function(e){return A.call(e).slice(8,-1)}},function(e,t,A){e.exports={default:A(933),__esModule:!0}},function(e,t,A){"use strict";t.__esModule=!0;var n=o(A(935)),r=o(A(947)),i="function"===typeof r.default&&"symbol"===typeof n.default?function(e){return typeof e}:function(e){return e&&"function"===typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?"symbol":typeof e};function o(e){return e&&e.__esModule?e:{default:e}}t.default="function"===typeof r.default&&"symbol"===i(n.default)?function(e){return"undefined"===typeof e?"undefined":i(e)}:function(e){return e&&"function"===typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?"symbol":"undefined"===typeof e?"undefined":i(e)}},function(e,t,A){"use strict";var n=A(361),r=A(254),i=A(603),o=A(255),a=A(481),s=A(939),g=A(483),c=A(942),u=A(258)("iterator"),l=!([].keys&&"next"in[].keys()),I=function(){return this};e.exports=function(e,t,A,C,h,f,d){s(A,t,C);var B,p,E,Q=function(e){if(!l&&e in b)return b[e];switch(e){case"keys":case"values":return function(){return new A(this,e)}}return function(){return new A(this,e)}},y=t+" Iterator",v="values"==h,m=!1,b=e.prototype,w=b[u]||b["@@iterator"]||h&&b[h],S=w||Q(h),F=h?v?Q("entries"):S:void 0,R="Array"==t&&b.entries||w;if(R&&(E=c(R.call(new e)))!==Object.prototype&&E.next&&(g(E,y,!0),n||"function"==typeof E[u]||o(E,u,I)),v&&w&&"values"!==w.name&&(m=!0,S=function(){return w.call(this)}),n&&!d||!l&&!m&&b[u]||o(b,u,S),a[t]=S,a[y]=I,h)if(B={values:v?S:Q("values"),keys:f?S:Q("keys"),entries:F},d)for(p in B)p in b||i(b,p,B[p]);else r(r.P+r.F*(l||m),t,B);return B}},function(e,t,A){e.exports=A(255)},function(e,t,A){var n=A(597),r=A(478).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,r)}},function(e,t,A){var n=A(363),r=A(359),i=A(257),o=A(473),a=A(218),s=A(595),g=Object.getOwnPropertyDescriptor;t.f=A(192)?g:function(e,t){if(e=i(e),t=o(t,!0),s)try{return g(e,t)}catch(A){}if(a(e,t))return r(!n.f.call(e,t),e[t])}},function(e,t,A){var n=A(607),r=A(298);e.exports=function(e,t){return e&&n(e,t,r)}},function(e,t,A){var n=A(968)();e.exports=n},function(e,t,A){var n=A(358);e.exports=function(e){return"function"==typeof e?e:n}},function(e,t,A){var n=A(216),r=A(466),i=A(154),o=Function.prototype,a=Object.prototype,s=o.toString,g=a.hasOwnProperty,c=s.call(Object);e.exports=function(e){if(!i(e)||"[object Object]"!=n(e))return!1;var t=r(e);if(null===t)return!0;var A=g.call(t,"constructor")&&t.constructor;return"function"==typeof A&&A instanceof A&&s.call(A)==c}},function(e,t,A){var n=A(127);e.exports=function(e){return e===e&&!n(e)}},function(e,t){e.exports=function(e,t){return function(A){return null!=A&&(A[e]===t&&(void 0!==t||e in Object(A)))}}},function(e,t,A){var n=A(613),r=A(364);e.exports=function(e,t){for(var A=0,i=(t=n(t,e)).length;null!=e&&A<i;)e=e[r(t[A++])];return A&&A==i?e:void 0}},function(e,t,A){var n=A(111),r=A(487),i=A(975),o=A(978);e.exports=function(e,t){return n(e)?e:r(e,t)?[e]:i(o(e))}},function(e,t,A){var n=A(606),r=A(987)(n);e.exports=r},function(e,t,A){var n=A(465),r=A(297);e.exports=function(e,t,A){(void 0!==A&&!r(e[t],A)||void 0===A&&!(t in e))&&n(e,t,A)}},function(e,t){e.exports=function(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ColorWrap=void 0;var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},r=function(){function e(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,A,n){return A&&e(t.prototype,A),n&&e(t,n),t}}(),i=A(0),o=g(i),a=g(A(107)),s=g(A(142));function g(e){return e&&e.__esModule?e:{default:e}}var c=t.ColorWrap=function(e){var t=function(t){function A(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,A);var t=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(A.__proto__||Object.getPrototypeOf(A)).call(this));return t.handleChange=function(e,A){if(s.default.simpleCheckForValidColor(e)){var n=s.default.toState(e,e.h||t.state.oldHue);t.setState(n),t.props.onChangeComplete&&t.debounce(t.props.onChangeComplete,n,A),t.props.onChange&&t.props.onChange(n,A)}},t.handleSwatchHover=function(e,A){if(s.default.simpleCheckForValidColor(e)){var n=s.default.toState(e,e.h||t.state.oldHue);t.props.onSwatchHover&&t.props.onSwatchHover(n,A)}},t.state=n({},s.default.toState(e.color,0)),t.debounce=(0,a.default)((function(e,t,A){e(t,A)}),100),t}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(A,t),r(A,[{key:"render",value:function(){var t={};return this.props.onSwatchHover&&(t.onSwatchHover=this.handleSwatchHover),o.default.createElement(e,n({},this.props,this.state,{onChange:this.handleChange},t))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return n({},s.default.toState(e.color,t.oldHue))}}]),A}(i.PureComponent||i.Component);return t.propTypes=n({},e.propTypes),t.defaultProps=n({},e.defaultProps,{color:{h:250,s:.5,l:.2,a:1}}),t};t.default=c},function(e,t,A){"use strict";A.r(t),A.d(t,"red",(function(){return n})),A.d(t,"pink",(function(){return r})),A.d(t,"purple",(function(){return i})),A.d(t,"deepPurple",(function(){return o})),A.d(t,"indigo",(function(){return a})),A.d(t,"blue",(function(){return s})),A.d(t,"lightBlue",(function(){return g})),A.d(t,"cyan",(function(){return c})),A.d(t,"teal",(function(){return u})),A.d(t,"green",(function(){return l})),A.d(t,"lightGreen",(function(){return I})),A.d(t,"lime",(function(){return C})),A.d(t,"yellow",(function(){return h})),A.d(t,"amber",(function(){return f})),A.d(t,"orange",(function(){return d})),A.d(t,"deepOrange",(function(){return B})),A.d(t,"brown",(function(){return p})),A.d(t,"grey",(function(){return E})),A.d(t,"blueGrey",(function(){return Q})),A.d(t,"darkText",(function(){return y})),A.d(t,"lightText",(function(){return v})),A.d(t,"darkIcons",(function(){return m})),A.d(t,"lightIcons",(function(){return b})),A.d(t,"white",(function(){return w})),A.d(t,"black",(function(){return S}));var n={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",a100:"#ff8a80",a200:"#ff5252",a400:"#ff1744",a700:"#d50000"},r={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",a100:"#ff80ab",a200:"#ff4081",a400:"#f50057",a700:"#c51162"},i={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",a100:"#ea80fc",a200:"#e040fb",a400:"#d500f9",a700:"#aa00ff"},o={50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",a100:"#b388ff",a200:"#7c4dff",a400:"#651fff",a700:"#6200ea"},a={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",a100:"#8c9eff",a200:"#536dfe",a400:"#3d5afe",a700:"#304ffe"},s={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",a100:"#82b1ff",a200:"#448aff",a400:"#2979ff",a700:"#2962ff"},g={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",a100:"#80d8ff",a200:"#40c4ff",a400:"#00b0ff",a700:"#0091ea"},c={50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",a100:"#84ffff",a200:"#18ffff",a400:"#00e5ff",a700:"#00b8d4"},u={50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",a100:"#a7ffeb",a200:"#64ffda",a400:"#1de9b6",a700:"#00bfa5"},l={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",a100:"#b9f6ca",a200:"#69f0ae",a400:"#00e676",a700:"#00c853"},I={50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",a100:"#ccff90",a200:"#b2ff59",a400:"#76ff03",a700:"#64dd17"},C={50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",a100:"#f4ff81",a200:"#eeff41",a400:"#c6ff00",a700:"#aeea00"},h={50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",a100:"#ffff8d",a200:"#ffff00",a400:"#ffea00",a700:"#ffd600"},f={50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",a100:"#ffe57f",a200:"#ffd740",a400:"#ffc400",a700:"#ffab00"},d={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",a100:"#ffd180",a200:"#ffab40",a400:"#ff9100",a700:"#ff6d00"},B={50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",a100:"#ff9e80",a200:"#ff6e40",a400:"#ff3d00",a700:"#dd2c00"},p={50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723"},E={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121"},Q={50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238"},y={primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",dividers:"rgba(0, 0, 0, 0.12)"},v={primary:"rgba(255, 255, 255, 1)",secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",dividers:"rgba(255, 255, 255, 0.12)"},m={active:"rgba(0, 0, 0, 0.54)",inactive:"rgba(0, 0, 0, 0.38)"},b={active:"rgba(255, 255, 255, 1)",inactive:"rgba(255, 255, 255, 0.5)"},w="#ffffff",S="#000000";t.default={red:n,pink:r,purple:i,deepPurple:o,indigo:a,blue:s,lightBlue:g,cyan:c,teal:u,green:l,lightGreen:I,lime:C,yellow:h,amber:f,orange:d,deepOrange:B,brown:p,grey:E,blueGrey:Q,darkText:y,lightText:v,darkIcons:m,lightIcons:b,white:w,black:S}},function(e,t,A){var n=A(1050),r=A(59),i=A(141),o=A(259).default,a=i.featureEach,s=(i.coordEach,r.polygon,r.featureCollection);function g(e){var t=n(e);return t.insert=function(e){if("Feature"!==e.type)throw new Error("invalid feature");return e.bbox=e.bbox?e.bbox:o(e),n.prototype.insert.call(this,e)},t.load=function(e){var t=[];return Array.isArray(e)?e.forEach((function(e){if("Feature"!==e.type)throw new Error("invalid features");e.bbox=e.bbox?e.bbox:o(e),t.push(e)})):a(e,(function(e){if("Feature"!==e.type)throw new Error("invalid features");e.bbox=e.bbox?e.bbox:o(e),t.push(e)})),n.prototype.load.call(this,t)},t.remove=function(e,t){if("Feature"!==e.type)throw new Error("invalid feature");return e.bbox=e.bbox?e.bbox:o(e),n.prototype.remove.call(this,e,t)},t.clear=function(){return n.prototype.clear.call(this)},t.search=function(e){var t=n.prototype.search.call(this,this.toBBox(e));return s(t)},t.collides=function(e){return n.prototype.collides.call(this,this.toBBox(e))},t.all=function(){var e=n.prototype.all.call(this);return s(e)},t.toJSON=function(){return n.prototype.toJSON.call(this)},t.fromJSON=function(e){return n.prototype.fromJSON.call(this,e)},t.toBBox=function(e){var t;if(e.bbox)t=e.bbox;else if(Array.isArray(e)&&4===e.length)t=e;else if(Array.isArray(e)&&6===e.length)t=[e[0],e[1],e[3],e[4]];else if("Feature"===e.type)t=o(e);else{if("FeatureCollection"!==e.type)throw new Error("invalid geojson");t=o(e)}return{minX:t[0],minY:t[1],maxX:t[2],maxY:t[3]}},t}e.exports=g,e.exports.default=g},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(59),r=A(105),i=A(141);t.default=function(e){if(!e)throw new Error("geojson is required");var t=[];return i.flattenEach(e,(function(e){!function(e,t){var A=[],i=e.geometry;if(null!==i){switch(i.type){case"Polygon":A=r.getCoords(i);break;case"LineString":A=[r.getCoords(i)]}A.forEach((function(A){(function(e,t){var A=[];return e.reduce((function(e,r){var i=n.lineString([e,r],t);return i.bbox=function(e,t){var A=e[0],n=e[1],r=t[0],i=t[1];return[A<r?A:r,n<i?n:i,A>r?A:r,n>i?n:i]}(e,r),A.push(i),r})),A})(A,e.properties).forEach((function(e){e.id=t.length,t.push(e)}))}))}}(e,t)})),n.featureCollection(t)}},function(e,t,A){var n=A(622),r=A(1053),i=A(1054),o=A(1055),a=A(1058),s=A(1064),g=Date.prototype.getTime;function c(e,t,A){var I=A||{};return!!(I.strict?i(e,t):e===t)||(!e||!t||"object"!==typeof e&&"object"!==typeof t?I.strict?i(e,t):e==t:function(e,t,A){var i,I;if(typeof e!==typeof t)return!1;if(u(e)||u(t))return!1;if(e.prototype!==t.prototype)return!1;if(r(e)!==r(t))return!1;var C=o(e),h=o(t);if(C!==h)return!1;if(C||h)return e.source===t.source&&a(e)===a(t);if(s(e)&&s(t))return g.call(e)===g.call(t);var f=l(e),d=l(t);if(f!==d)return!1;if(f||d){if(e.length!==t.length)return!1;for(i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}if(typeof e!==typeof t)return!1;try{var B=n(e),p=n(t)}catch(E){return!1}if(B.length!==p.length)return!1;for(B.sort(),p.sort(),i=B.length-1;i>=0;i--)if(B[i]!=p[i])return!1;for(i=B.length-1;i>=0;i--)if(I=B[i],!c(e[I],t[I],A))return!1;return!0}(e,t,I))}function u(e){return null===e||void 0===e}function l(e){return!(!e||"object"!==typeof e||"number"!==typeof e.length)&&("function"===typeof e.copy&&"function"===typeof e.slice&&!(e.length>0&&"number"!==typeof e[0]))}e.exports=c},function(e,t,A){"use strict";var n=Array.prototype.slice,r=A(623),i=Object.keys,o=i?function(e){return i(e)}:A(1052),a=Object.keys;o.shim=function(){Object.keys?function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2)||(Object.keys=function(e){return r(e)?a(n.call(e)):a(e)}):Object.keys=o;return Object.keys||o},e.exports=o},function(e,t,A){"use strict";var n=Object.prototype.toString;e.exports=function(e){var t=n.call(e),A="[object Arguments]"===t;return A||(A="[object Array]"!==t&&null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Function]"===n.call(e.callee)),A}},function(e,t,A){"use strict";var n=Object,r=TypeError;e.exports=function(){if(null!=this&&this!==n(this))throw new r("RegExp.prototype.flags getter called on non-object");var e="";return this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.dotAll&&(e+="s"),this.unicode&&(e+="u"),this.sticky&&(e+="y"),e}},function(e,t,A){"use strict";var n=A(624),r=A(492).supportsDescriptors,i=Object.getOwnPropertyDescriptor,o=TypeError;e.exports=function(){if(!r)throw new o("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");if("gim"===/a/gim.flags){var e=i(RegExp.prototype,"flags");if(e&&"function"===typeof e.get&&"boolean"===typeof/a/.dotAll)return e.get}return n}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_STYLE=t.MAX_ARROWS=t.DEFAULT_ARROWS=t.ArrowStyles=void 0;var n={NONE:0,FORWARD:1,BACKWARD:2,BOTH:3};t.ArrowStyles=n;t.DEFAULT_ARROWS=1;t.MAX_ARROWS=3;var r={arrowColor:[0,0,0,1],arrowCount:1,arrowStyle:n.NONE,fillColor:[0,0,0,1],lineColor:[0,0,0,1],lineWidthMeters:5,outlineRadiusMeters:0,opacity:1,zLevel:0};t.DEFAULT_STYLE=r},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.SELECTION_TYPE=void 0;var n=A(75),r=A(59),i=c(A(259)),o=c(A(262)),a=c(A(507)),s=c(A(376)),g=c(A(112));function c(e){return e&&e.__esModule?e:{default:e}}function u(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||C(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e){return function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||C(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e,t){if(e){if("string"===typeof e)return h(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?h(e,t):void 0}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function f(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function d(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var B=[0,255,0,255],p=[255,255,255,90],E=[20,20],Q="DeckDrawerPick",y={NONE:null,RECTANGLE:"rectangle",POLYGON:"polygon"};t.SELECTION_TYPE=y;var v=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),d(this,"nebula",void 0),d(this,"usePolygon",void 0),d(this,"validPolygon",void 0),d(this,"landPoints",void 0),d(this,"mousePoints",void 0),this.nebula=t,this.usePolygon=!1,this.landPoints=[],this.mousePoints=[]}var t,A,c;return t=e,(A=[{key:"_getLayerIds",value:function(){return this.nebula.deckgl.props.layers.filter((function(e){return e&&e.props&&e.props.nebulaLayer&&e.props.nebulaLayer.enableSelection})).map((function(e){return e.id}))}},{key:"_selectFromPickingInfos",value:function(e){var t=e.map((function(e){var t=e.layer,A=e.index;return e.object.original||t.props.nebulaLayer.deckCache.originals[A]}));this.nebula.props.onSelection(t)}},{key:"_getBoundingBox",value:function(){var e=this.mousePoints,t=e.map((function(e){return e[0]})),A=e.map((function(e){return e[1]})),n=Math.min.apply(Math,I(t)),r=Math.min.apply(Math,I(A));return{x:n,y:r,width:Math.max.apply(Math,I(t))-n,height:Math.max.apply(Math,I(A))-r}}},{key:"_selectRectangleObjects",value:function(){if(2===this.landPoints.length){var e=l(this.mousePoints[0],2),t=e[0],A=e[1],n=l(this.mousePoints[1],2),r=n[0],i=n[1],o=this.nebula.deckgl.pickObjects({x:Math.min(t,r),y:Math.min(A,i),width:Math.abs(r-t),height:Math.abs(i-A),layerIds:this._getLayerIds()});this._selectFromPickingInfos(o)}}},{key:"_selectPolygonObjects",value:function(){var e=this.nebula.deckgl.pickObjects(function(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?u(Object(A),!0).forEach((function(t){d(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):u(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}({},this._getBoundingBox(),{layerIds:[Q].concat(I(this._getLayerIds()))}));this._selectFromPickingInfos(e.filter((function(e){return e.layer.id!==Q})))}},{key:"_getMousePosFromEvent",value:function(e){return[e.offsetX,e.offsetY]}},{key:"handleEvent",value:function(e,t,A){"mouseup"!==e.type&&e.stopPropagation(),this.usePolygon=A===y.POLYGON;var n=!1,r=!1,i=this.usePolygon,o=this.landPoints,a=this.mousePoints;if("mousedown"===e.type){if(i&&o.length)(this.landPoints.length<3||this.validPolygon)&&(o.push(t),a.push(this._getMousePosFromEvent(e)));else{this.landPoints=[t,t];var s=this._getMousePosFromEvent(e);this.mousePoints=[s,s]}n=!0}else"mousemove"===e.type&&o.length?(o[o.length-1]=t,a[a.length-1]=this._getMousePosFromEvent(e),n=!0):"mouseup"===e.type&&(i?o.length>4&&(0,g.default)(o[0],o[o.length-1])<.01&&this.validPolygon&&(this._selectPolygonObjects(),this.reset(),n=!0,r=!0):(this._selectRectangleObjects(),this.reset(),n=!0,r=!0));return{redraw:n,deactivate:r}}},{key:"reset",value:function(){this.landPoints=[],this.mousePoints=[]}},{key:"_makeStartPointHighlight",value:function(e){var t=(0,a.default)((0,r.point)(e),.0025);return(0,o.default)((0,i.default)(t)).geometry.coordinates}},{key:"render",value:function(){var e=this,t=[],A=[];if(this.usePolygon||2!==this.landPoints.length){if(this.usePolygon&&this.landPoints.length&&(t.push({polygon:this.landPoints,lineColor:B,fillColor:p}),this.landPoints.length>=3)){var i,o=(0,r.polygon)([[].concat(I(this.landPoints),[this.landPoints[0]])]),g=(0,a.default)((0,r.point)(this.landPoints[0]),10);try{i=(0,s.default)(g,o),A.push({polygon:i.geometry.coordinates,fillColor:[0,0,0,1]}),this.validPolygon=!0}catch(m){this.validPolygon=!1}}}else{var c=l(this.mousePoints,2),u=l(c[0],2),C=u[0],h=u[1],f=l(c[1],2),d=f[0],y=f[1],v=[[C,h],[C,y],[d,y],[d,h],[C,h]].map((function(t){return e.nebula.unprojectMousePosition(t)}));t.push({polygon:v,lineColor:B,fillColor:p})}return this.landPoints.length&&t.push({polygon:this._makeStartPointHighlight(this.landPoints[0]),lineColor:[0,0,0,0],fillColor:B}),t.push({polygon:[[0,0]]}),A.push({polygon:[[0,0]]}),[new n.PolygonLayer({id:"DeckDrawerView",data:t,fp64:!1,opacity:1,pickable:!1,lineWidthMinPixels:2,lineWidthMaxPixels:2,lineDashJustified:!0,getLineDashArray:function(e){return E},getLineColor:function(e){return e.lineColor||[0,0,0,255]},getFillColor:function(e){return e.fillColor||[0,0,0,255]},getPolygon:function(e){return e.polygon}}),new n.PolygonLayer({id:Q,data:A,getLineColor:function(e){return e.lineColor||[0,0,0,255]},getFillColor:function(e){return e.fillColor||[0,0,0,255]},fp64:!1,opacity:1,stroked:!1,pickable:!0,getPolygon:function(e){return e.polygon}})]}}])&&f(t.prototype,A),c&&f(t,c),e}();t.default=v},function(e,t,A){"use strict";function n(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function r(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(){function e(t,A){var n=A.data,i=A.groundPoint,o=A.nebula,a=A.metadata;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),r(this,"canceled",void 0),r(this,"data",void 0),r(this,"metadata",void 0),r(this,"groundPoint",void 0),r(this,"nativeEvent",void 0),r(this,"nebula",void 0),this.nativeEvent=t,this.data=n,this.groundPoint=i,this.nebula=o,this.metadata=a}var t,A,i;return t=e,(A=[{key:"stopPropagation",value:function(){this.nativeEvent.stopPropagation(),this.canceled=!0}}])&&n(t.prototype,A),i&&n(t,i),e}();t.default=i},function(e,t,A){"use strict";var n,r="object"===typeof Reflect?Reflect:null,i=r&&"function"===typeof r.apply?r.apply:function(e,t,A){return Function.prototype.apply.call(e,t,A)};n=r&&"function"===typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!==e};function a(){a.init.call(this)}e.exports=a,a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var s=10;function g(e){if("function"!==typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function u(e,t,A,n){var r,i,o,a;if(g(A),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,A.listener?A.listener:A),i=e._events),o=i[t]),void 0===o)o=i[t]=A,++e._eventsCount;else if("function"===typeof o?o=i[t]=n?[A,o]:[o,A]:n?o.unshift(A):o.push(A),(r=c(e))>0&&o.length>r&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,a=s,console&&console.warn&&console.warn(a)}return e}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function I(e,t,A){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:A},r=l.bind(n);return r.listener=A,n.wrapFn=r,r}function C(e,t,A){var n=e._events;if(void 0===n)return[];var r=n[t];return void 0===r?[]:"function"===typeof r?A?[r.listener||r]:[r]:A?function(e){for(var t=new Array(e.length),A=0;A<t.length;++A)t[A]=e[A].listener||e[A];return t}(r):f(r,r.length)}function h(e){var t=this._events;if(void 0!==t){var A=t[e];if("function"===typeof A)return 1;if(void 0!==A)return A.length}return 0}function f(e,t){for(var A=new Array(t),n=0;n<t;++n)A[n]=e[n];return A}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(e){if("number"!==typeof e||e<0||o(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");s=e}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(e){if("number"!==typeof e||e<0||o(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},a.prototype.getMaxListeners=function(){return c(this)},a.prototype.emit=function(e){for(var t=[],A=1;A<arguments.length;A++)t.push(arguments[A]);var n="error"===e,r=this._events;if(void 0!==r)n=n&&void 0===r.error;else if(!n)return!1;if(n){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var s=r[e];if(void 0===s)return!1;if("function"===typeof s)i(s,this,t);else{var g=s.length,c=f(s,g);for(A=0;A<g;++A)i(c[A],this,t)}return!0},a.prototype.addListener=function(e,t){return u(this,e,t,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(e,t){return u(this,e,t,!0)},a.prototype.once=function(e,t){return g(t),this.on(e,I(this,e,t)),this},a.prototype.prependOnceListener=function(e,t){return g(t),this.prependListener(e,I(this,e,t)),this},a.prototype.removeListener=function(e,t){var A,n,r,i,o;if(g(t),void 0===(n=this._events))return this;if(void 0===(A=n[e]))return this;if(A===t||A.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,A.listener||t));else if("function"!==typeof A){for(r=-1,i=A.length-1;i>=0;i--)if(A[i]===t||A[i].listener===t){o=A[i].listener,r=i;break}if(r<0)return this;0===r?A.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(A,r),1===A.length&&(n[e]=A[0]),void 0!==n.removeListener&&this.emit("removeListener",e,o||t)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(e){var t,A,n;if(void 0===(A=this._events))return this;if(void 0===A.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==A[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete A[e]),this;if(0===arguments.length){var r,i=Object.keys(A);for(n=0;n<i.length;++n)"removeListener"!==(r=i[n])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"===typeof(t=A[e]))this.removeListener(e,t);else if(void 0!==t)for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this},a.prototype.listeners=function(e){return C(this,e,!0)},a.prototype.rawListeners=function(e){return C(this,e,!1)},a.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},a.prototype.listenerCount=h,a.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,A){"use strict";A.r(t);var n=A(42);A.d(t,"default",(function(){return n.a})),A.d(t,"WebMercatorViewport",(function(){return n.a})),A.d(t,"getBounds",(function(){return n.g})),A.d(t,"fitBounds",(function(){return n.d})),A.d(t,"normalizeViewportProps",(function(){return n.o})),A.d(t,"flyToViewport",(function(){return n.e})),A.d(t,"getFlyToDuration",(function(){return n.i})),A.d(t,"lngLatToWorld",(function(){return n.n})),A.d(t,"worldToLngLat",(function(){return n.r})),A.d(t,"worldToPixels",(function(){return n.s})),A.d(t,"pixelsToWorld",(function(){return n.p})),A.d(t,"zoomToScale",(function(){return n.t})),A.d(t,"scaleToZoom",(function(){return n.q})),A.d(t,"altitudeToFovy",(function(){return n.c})),A.d(t,"fovyToAltitude",(function(){return n.f})),A.d(t,"getMeterZoom",(function(){return n.j})),A.d(t,"getDistanceScales",(function(){return n.h})),A.d(t,"addMetersToLngLat",(function(){return n.b})),A.d(t,"getViewMatrix",(function(){return n.m})),A.d(t,"getProjectionMatrix",(function(){return n.k})),A.d(t,"getProjectionParameters",(function(){return n.l}))},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScaleMode=void 0;var n=f(A(259)),r=f(A(307)),i=f(A(143)),o=f(A(262)),a=A(59),s=f(A(510)),g=A(141),c=f(A(112)),u=f(A(1151)),l=A(105),I=A(99),C=A(79),h=A(158);function f(e){return e&&e.__esModule?e:{default:e}}function d(e){return(d="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function B(e){return function(e){if(Array.isArray(e))return p(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return p(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return p(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function E(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Q(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function y(e,t){return!t||"object"!==d(t)&&"function"!==typeof t?v(e):t}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function w(e,t){return(w=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function S(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var F=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&w(e,t)}(d,e);var t,A,c,C,f=(t=d,function(){var e,A=b(t);if(m()){var n=b(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return y(this,e)});function d(){var e;E(this,d);for(var t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return S(v(e=f.call.apply(f,[this].concat(A))),"_geometryBeingScaled",void 0),S(v(e),"_selectedEditHandle",void 0),S(v(e),"_cornerGuidePoints",void 0),S(v(e),"_cursor",void 0),S(v(e),"_isScaling",!1),S(v(e),"_isSinglePointGeometrySelected",(function(e){var t=(e||{}).features;return!(!Array.isArray(t)||1!==t.length)&&"Point"===(0,l.getGeom)(t[0]).type})),S(v(e),"_getOppositeScaleHandle",(function(t){var A=t&&t.properties&&Array.isArray(t.properties.positionIndexes)&&t.properties.positionIndexes[0];if("number"!==typeof A)return null;var n=e._cornerGuidePoints.length,r=(A+n/2)%n;return e._cornerGuidePoints.find((function(e){return!!Array.isArray(e.properties.positionIndexes)&&e.properties.positionIndexes[0]===r}))})),S(v(e),"_getUpdatedData",(function(e,t){for(var A=new h.ImmutableFeatureCollection(e.data),n=e.selectedIndexes,r=0;r<n.length;r++){var i=n[r],o=t.features[r];A=A.replaceGeometry(i,o.geometry)}return A.getObject()})),S(v(e),"isEditHandleSelected",(function(){return Boolean(e._selectedEditHandle)})),S(v(e),"getScaleAction",(function(t,A,n,r){if(!e._selectedEditHandle)return null;var i=e._getOppositeScaleHandle(e._selectedEditHandle),o=(0,l.getCoord)(i),a=R(o,t,A),s=(0,u.default)(e._geometryBeingScaled,a,{origin:o});return{updatedData:e._getUpdatedData(r,s),editType:n,editContext:{featureIndexes:r.selectedIndexes}}})),S(v(e),"updateCursor",(function(t){if(e._selectedEditHandle){e._cursor&&t.onUpdateCursor(e._cursor);var A=e.getSelectedFeaturesAsFeatureCollection(t),n=(0,r.default)(A),o=(0,i.default)(n,e._selectedEditHandle),a=o<0?o+180:o;a>=0&&a<=90||a>=180&&a<=270?(e._cursor="nesw-resize",t.onUpdateCursor("nesw-resize")):(e._cursor="nwse-resize",t.onUpdateCursor("nwse-resize"))}else t.onUpdateCursor(null),e._cursor=null})),e}return A=d,(c=[{key:"handlePointerMove",value:function(e,t){if(!this._isScaling){var A=(0,I.getPickedEditHandle)(e.picks);this._selectedEditHandle=A&&"scale"===A.properties.editHandleType?A:null,A&&this.updateCursor(t)}}},{key:"handleStartDragging",value:function(e,t){this._selectedEditHandle&&(this._isScaling=!0,this._geometryBeingScaled=this.getSelectedFeaturesAsFeatureCollection(t))}},{key:"handleDragging",value:function(e,t){if(this._isScaling){t.onUpdateCursor(this._cursor);var A=this.getScaleAction(e.pointerDownMapCoords,e.mapCoords,"scaling",t);A&&t.onEdit(A),e.cancelPan()}}},{key:"handleStopDragging",value:function(e,t){if(this._isScaling){var A=this.getScaleAction(e.pointerDownMapCoords,e.mapCoords,"scaled",t);A&&t.onEdit(A),t.onUpdateCursor(null),this._geometryBeingScaled=null,this._selectedEditHandle=null,this._cursor=null,this._isScaling=!1}}},{key:"getGuides",value:function(e){this._cornerGuidePoints=[];var t=this.getSelectedFeaturesAsFeatureCollection(e);if(this._isSinglePointGeometrySelected(t))return{type:"FeatureCollection",features:[]};var A=(0,o.default)((0,n.default)(t));A.properties.mode="scale";var r=[];return(0,g.coordEach)(A,(function(e,t){if(t<4){var A=(0,a.point)(e,{guideType:"editHandle",editHandleType:"scale",positionIndexes:[t]});r.push(A)}})),this._cornerGuidePoints=r,(0,a.featureCollection)([(0,s.default)(A)].concat(B(this._cornerGuidePoints)))}}])&&Q(A.prototype,c),C&&Q(A,C),d}(C.GeoJsonEditMode);function R(e,t,A){var n=(0,c.default)(e,t);return(0,c.default)(e,A)/n}t.ScaleMode=F},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RotateMode=void 0;var n=f(A(259)),r=f(A(307)),i=f(A(143)),o=f(A(262)),a=f(A(112)),s=A(141),g=A(105),c=A(59),u=f(A(512)),l=f(A(510)),I=A(99),C=A(79),h=A(158);function f(e){return e&&e.__esModule?e:{default:e}}function d(e){return(d="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function B(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function E(e,t){return!t||"object"!==d(t)&&"function"!==typeof t?Q(e):t}function Q(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function b(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var w=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(S,e);var t,A,f,d,w=(t=S,function(){var e,A=v(t);if(y()){var n=v(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return E(this,e)});function S(){var e;B(this,S);for(var t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return b(Q(e=w.call.apply(w,[this].concat(A))),"_selectedEditHandle",void 0),b(Q(e),"_geometryBeingRotated",void 0),b(Q(e),"_isRotating",!1),b(Q(e),"_isSinglePointGeometrySelected",(function(e){var t=(e||{}).features;return!(!Array.isArray(t)||1!==t.length)&&"Point"===(0,g.getGeom)(t[0]).type})),b(Q(e),"getIsRotating",(function(){return e._isRotating})),e}return A=S,(f=[{key:"getGuides",value:function(e){var t=this._geometryBeingRotated||this.getSelectedFeaturesAsFeatureCollection(e);if(this._isSinglePointGeometrySelected(t))return{type:"FeatureCollection",features:[]};if(this._isRotating)return(0,c.featureCollection)([(0,r.default)(t)]);var A=(0,o.default)((0,n.default)(t)),i=null,g=null,u=0;(0,s.coordEach)(A,(function(e){if(i){var t=(0,C.getIntermediatePosition)(e,i);(!g||t[1]>g[1])&&(g=t);var A=(0,a.default)(e,i);u=Math.max(u,A)}i=e}));var I=g&&[g[0],g[1]+u/1e3],h=(0,c.lineString)([g,I]),f=(0,c.point)(I,{guideType:"editHandle",editHandleType:"rotate"});return(0,c.featureCollection)([(0,l.default)(A),f,h])}},{key:"handleDragging",value:function(e,t){if(this._isRotating){var A=this.getRotateAction(e.pointerDownMapCoords,e.mapCoords,"rotating",t);A&&t.onEdit(A),e.cancelPan()}}},{key:"handlePointerMove",value:function(e,t){if(!this._isRotating){var A=(0,I.getPickedEditHandle)(e.picks);this._selectedEditHandle=A&&"rotate"===A.properties.editHandleType?A:null}this.updateCursor(t)}},{key:"handleStartDragging",value:function(e,t){this._selectedEditHandle&&(this._isRotating=!0,this._geometryBeingRotated=this.getSelectedFeaturesAsFeatureCollection(t))}},{key:"handleStopDragging",value:function(e,t){if(this._isRotating){var A=this.getRotateAction(e.pointerDownMapCoords,e.mapCoords,"rotated",t);A&&t.onEdit(A),this._geometryBeingRotated=null,this._selectedEditHandle=null,this._isRotating=!1}}},{key:"updateCursor",value:function(e){this._selectedEditHandle?e.onUpdateCursor("crosshair"):e.onUpdateCursor(null)}},{key:"getRotateAction",value:function(e,t,A,n){if(!this._geometryBeingRotated)return null;for(var o=(0,r.default)(this._geometryBeingRotated),a=function(e,t,A){var n=(0,i.default)(e,t);return(0,i.default)(e,A)-n}(o,e,t),s=(0,u.default)(this._geometryBeingRotated,a,{pivot:o}),g=new h.ImmutableFeatureCollection(n.data),c=n.selectedIndexes,l=0;l<c.length;l++){var I=c[l],C=s.features[l];g=g.replaceGeometry(I,C.geometry)}return{updatedData:g.getObject(),editType:A,editContext:{featureIndexes:c}}}}])&&p(A.prototype,f),d&&p(A,d),S}(C.GeoJsonEditMode);t.RotateMode=w},function(e,t,A){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||i(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){if(e){if("string"===typeof e)return o(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?o(e,t):void 0}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function a(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function s(e,t){return!t||"object"!==n(t)&&"function"!==typeof t?g(e):t}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function c(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.CompositeMode=void 0;var I=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(C,e);var t,A,n,o,I=(t=C,function(){var e,A=u(t);if(c()){var n=u(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return s(this,e)});function C(e){var t,A,n,r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,C),t=I.call(this),A=g(t),r=void 0,(n="_modes")in A?Object.defineProperty(A,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[n]=r,t._modes=e,t}return A=C,(n=[{key:"_coalesce",value:function(e){for(var t,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=0;n<this._modes.length&&(t=e(this._modes[n]),!(A?A(t):t));n++);return t}},{key:"handleClick",value:function(e,t){this._coalesce((function(A){return A.handleClick(e,t)}))}},{key:"handlePointerMove",value:function(e,t){return this._coalesce((function(A){return A.handlePointerMove(e,t)}))}},{key:"handleStartDragging",value:function(e,t){return this._coalesce((function(A){return A.handleStartDragging(e,t)}))}},{key:"handleStopDragging",value:function(e,t){return this._coalesce((function(A){return A.handleStopDragging(e,t)}))}},{key:"handleDragging",value:function(e,t){return this._coalesce((function(A){return A.handleDragging(e,t)}))}},{key:"getGuides",value:function(e){var t,A=[],n=function(e){if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=i(e))){var t=0,A=function(){};return{s:A,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:A}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,o=!0,a=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){a=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(a)throw r}}}}(this._modes);try{for(n.s();!(t=n.n()).done;){var o=t.value;A.push.apply(A,r(o.getGuides(e).features))}}catch(a){n.e(a)}finally{n.f()}return{type:"FeatureCollection",features:A}}}])&&a(A.prototype,n),o&&a(A,o),C}(A(79).GeoJsonEditMode);t.CompositeMode=I},function(e,t,A){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function o(e,t,A){return(o="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=g(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function a(e,t){return!t||"object"!==n(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.ThreeClickPolygonMode=void 0;var u=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(I,e);var t,A,n,u,l=(t=I,function(){var e,A=g(t);if(s()){var n=g(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return a(this,e)});function I(){return r(this,I),l.apply(this,arguments)}return A=I,(n=[{key:"handleClick",value:function(e,t){this.addClickSequence(e);var A=this.getClickSequence(),n=this.getTentativeGuide(t);if(A.length>2&&n&&"Polygon"===n.geometry.type){var r=this.getAddFeatureOrBooleanPolygonAction(n.geometry,t);this.resetClickSequence(),r&&t.onEdit(r)}}},{key:"getGuides",value:function(e){var t=e.lastPointerMoveEvent,A=e.modeConfig,n=this.getClickSequence(),r={type:"FeatureCollection",features:[]};if(0===n.length)return r;var i=t.mapCoords;if(1===n.length)r.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[n[0],i]}});else{var o=this.getThreeClickPolygon(n[0],n[1],i,A);o&&r.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:o.geometry})}return r}},{key:"getThreeClickPolygon",value:function(e,t,A,n){return null}},{key:"handlePointerMove",value:function(e,t){t.onUpdateCursor("cell"),o(g(I.prototype),"handlePointerMove",this).call(this,e,t)}},{key:"createTentativeFeature",value:function(e){var t,A=e.lastPointerMoveEvent,n=this.getClickSequence(),r=A?[A.mapCoords]:[];return 2===n.length&&(t=this.getThreeClickPolygon(n[0],n[1],r[0],e.modeConfig)),t}}])&&i(A.prototype,n),u&&i(A,u),I}(A(79).GeoJsonEditMode);t.ThreeClickPolygonMode=u},function(e,t,A){"use strict";function n(e,t){if(e===t)return!0;if(Array.isArray(e)){var A=e.length;if(!t||t.length!==A)return!1;for(var n=0;n<A;n++)if(e[n]!==t[n])return!1;return!0}return!1}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,A={};return function(r){for(var i in r)if(!n(r[i],A[i])){t=e(r),A=r;break}return t}}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=A(35);function r(e){return(r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function o(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?i(Object(A),!0).forEach((function(t){h(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):i(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function a(e){if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"===typeof e)return s(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return s(e,t)}(e))){var t=0,A=function(){};return{s:A,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:A}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,i=!0,o=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){o=!0,r=e},f:function(){try{i||null==n.return||n.return()}finally{if(o)throw r}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function u(e,t){return!t||"object"!==r(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function l(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function I(e){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e,t){return(C=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var f=["anyclick","pointermove","panstart","panmove","panend","keyup"],d=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&C(e,t)}(s,e);var t,A,n,r,i=(t=s,function(){var e,A=I(t);if(l()){var n=I(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return u(this,e)});function s(){return g(this,s),i.apply(this,arguments)}return A=s,(n=[{key:"onLayerClick",value:function(e){}},{key:"onStartDragging",value:function(e){}},{key:"onStopDragging",value:function(e){}},{key:"onDragging",value:function(e){}},{key:"onPointerMove",value:function(e){}},{key:"onLayerKeyUp",value:function(e){}},{key:"initializeState",value:function(){this.setState({_editableLayerState:{pointerDownPicks:null,pointerDownScreenCoords:null,pointerDownMapCoords:null,eventHandler:this._forwardEventToCurrentLayer.bind(this)}}),this._addEventHandlers()}},{key:"finalizeState",value:function(){this._removeEventHandlers()}},{key:"_addEventHandlers",value:function(){var e,t=this.context.deck.eventManager,A=this.state._editableLayerState.eventHandler,n=a(f);try{for(n.s();!(e=n.n()).done;){var r=e.value;t.on(r,A,{priority:100})}}catch(i){n.e(i)}finally{n.f()}}},{key:"_removeEventHandlers",value:function(){var e,t=this.context.deck.eventManager,A=this.state._editableLayerState.eventHandler,n=a(f);try{for(n.s();!(e=n.n()).done;){var r=e.value;t.off(r,A)}}catch(i){n.e(i)}finally{n.f()}}},{key:"_forwardEventToCurrentLayer",value:function(e){var t=this.getCurrentLayer(),A=t["_on".concat(e.type)].bind(t);A?A(e):console.warn("no handler for mjolnir.js event ".concat(e.type))}},{key:"_onanyclick",value:function(e){var t=e.srcEvent,A=this.getScreenCoords(t),n=this.getMapCoords(A),r=this.getPicks(A);this.onLayerClick({mapCoords:n,screenCoords:A,picks:r,sourceEvent:t})}},{key:"_onkeyup",value:function(e){var t=e.srcEvent;this.onLayerKeyUp(t)}},{key:"_onpanstart",value:function(e){var t=this.getScreenCoords(e.srcEvent),A=this.getMapCoords(t),n=this.getPicks(t);this.setState({_editableLayerState:o({},this.state._editableLayerState,{pointerDownScreenCoords:t,pointerDownMapCoords:A,pointerDownPicks:n})}),this.onStartDragging({picks:n,screenCoords:t,mapCoords:A,pointerDownScreenCoords:t,pointerDownMapCoords:A,cancelPan:e.stopImmediatePropagation,sourceEvent:e.srcEvent})}},{key:"_onpanmove",value:function(e){var t=e.srcEvent,A=this.getScreenCoords(t),n=this.getMapCoords(A),r=this.state._editableLayerState,i=r.pointerDownPicks,o=r.pointerDownScreenCoords,a=r.pointerDownMapCoords,s=this.getPicks(A);this.onDragging({screenCoords:A,mapCoords:n,picks:s,pointerDownPicks:i,pointerDownScreenCoords:o,pointerDownMapCoords:a,sourceEvent:t,cancelPan:e.stopImmediatePropagation})}},{key:"_onpanend",value:function(e){var t=e.srcEvent,A=this.getScreenCoords(t),n=this.getMapCoords(A),r=this.state._editableLayerState,i=r.pointerDownPicks,a=r.pointerDownScreenCoords,s=r.pointerDownMapCoords,g=this.getPicks(A);this.onStopDragging({picks:g,screenCoords:A,mapCoords:n,pointerDownPicks:i,pointerDownScreenCoords:a,pointerDownMapCoords:s,sourceEvent:t}),this.setState({_editableLayerState:o({},this.state._editableLayerState,{pointerDownScreenCoords:null,pointerDownMapCoords:null,pointerDownPicks:null})})}},{key:"_onpointermove",value:function(e){var t=e.srcEvent,A=this.getScreenCoords(t),n=this.getMapCoords(A),r=this.state._editableLayerState,i=r.pointerDownPicks,o=r.pointerDownScreenCoords,a=r.pointerDownMapCoords,s=this.getPicks(A);this.onPointerMove({screenCoords:A,mapCoords:n,picks:s,pointerDownPicks:i,pointerDownScreenCoords:o,pointerDownMapCoords:a,sourceEvent:t})}},{key:"getPicks",value:function(e){return this.context.deck.pickMultipleObjects({x:e[0],y:e[1],layerIds:[this.props.id],radius:this.props.pickingRadius,depth:this.props.pickingDepth})}},{key:"getScreenCoords",value:function(e){return[e.clientX-this.context.gl.canvas.getBoundingClientRect().left,e.clientY-this.context.gl.canvas.getBoundingClientRect().top]}},{key:"getMapCoords",value:function(e){return this.context.viewport.unproject([e[0],e[1]])}}])&&c(A.prototype,n),r&&c(A,r),s}(n.CompositeLayer);t.default=d,h(d,"layerName","EditableLayer")},,function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(310);function r(e){try{return JSON.parse(e)}catch(t){throw new Error('Failed to parse JSON from data starting with "'.concat(Object(n.a)(e),'"'))}}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=A(75),r=a(A(22)),i=A(43),o=a(A(1096));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){return(s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function u(e,t,A){return(u="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=C(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function l(e,t){return!t||"object"!==s(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function I(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}function d(e){var t=e.source,A=e.code,n=void 0===A?"":A;return t.replace(/}[^{}]*$/,n.concat("\n}\n"))}var B=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(f,e);var t,A,n,a,s=(t=f,function(){var e,A=C(t);if(I()){var n=C(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return l(this,e)});function f(){return g(this,f),s.apply(this,arguments)}return A=f,(n=[{key:"getShaders",value:function(){var e=u(C(f.prototype),"getShaders",this).call(this);return Object.assign({},e,{modules:e.modules.concat([o.default]),vs:d({source:e.vs,code:" outline_setUV(gl_Position);\n outline_setZLevel(instanceZLevel);\n"}),fs:d({source:e.fs,code:" gl_FragColor = outline_filterColor(gl_FragColor);\n"})})}},{key:"initializeState",value:function(e){u(C(f.prototype),"initializeState",this).call(this,e),this.setState({outlineFramebuffer:new i.Framebuffer(e.gl),dummyTexture:new i.Texture2D(e.gl)}),this.state.attributeManager.addInstanced({instanceZLevel:{size:1,type:r.default.UNSIGNED_BYTE,update:this.calculateZLevels,accessor:"getZLevel"}})}},{key:"draw",value:function(e){e.moduleParameters,e.parameters;var t=e.uniforms,A=(e.context,this.props),n=A.rounded,i=A.miterLimit,o=A.widthScale,a=A.widthMinPixels,s=A.widthMaxPixels,g=A.dashJustified;t=Object.assign({},t,{jointType:Number(n),alignMode:Number(g),widthScale:o,miterLimit:i,widthMinPixels:a,widthMaxPixels:s});var c=this.state,u=c.outlineFramebuffer,l=c.dummyTexture;u.resize(),u.clear({color:!0,depth:!0}),this.state.model.updateModuleSettings({outlineEnabled:!0,outlineRenderShadowmap:!0,outlineShadowmap:l}),this.state.model.draw({uniforms:Object.assign({},t,{jointType:0,widthScale:1.3*this.props.widthScale}),parameters:{depthTest:!1,blendEquation:r.default.MAX},framebuffer:u}),this.state.model.updateModuleSettings({outlineEnabled:!0,outlineRenderShadowmap:!1,outlineShadowmap:u}),this.state.model.draw({uniforms:Object.assign({},t,{jointType:Number(n),widthScale:this.props.widthScale}),parameters:{depthTest:!1}})}},{key:"calculateZLevels",value:function(e){var t=this.props.getZLevel,A=this.state.pathTesselator;e.value=A._updateAttribute({target:e.value,size:1,getValue:function(e,A){return[t(e,A)||0]}})}}])&&c(A.prototype,n),a&&c(A,a),f}(n.PathLayer);t.default=B,f(B,"layerName","PathOutlineLayer"),f(B,"defaultProps",{getZLevel:{type:"accessor",value:0}})},function(e,t,A){var n=A(144);e.exports=function(e,t,A){return 0!==n(e,t,A)}},function(e,t,A){var n=A(499),r=A(640),i=A(373),o=A(502),a=A(501),s=A(503);e.exports=function(e,t,A,g){switch(t){case"===":return"object"===typeof e&&(e=e.version),"object"===typeof A&&(A=A.version),e===A;case"!==":return"object"===typeof e&&(e=e.version),"object"===typeof A&&(A=A.version),e!==A;case"":case"=":case"==":return n(e,A,g);case"!=":return r(e,A,g);case">":return i(e,A,g);case">=":return o(e,A,g);case"<":return a(e,A,g);case"<=":return s(e,A,g);default:throw new TypeError("Invalid operator: ".concat(t))}}},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}},function(e,t,A){"use strict";A.r(t);var n=A(1),r=A(9),i=A(10),o=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return A}(A(650).a);o.layerName="GreatCircleLayer",o.defaultProps={getHeight:{type:"accessor",value:0},greatCircle:!0};var a=A(4),s=A(7),g=A(511),c=A(580),u=A(8),l=A(290),I=A.n(l),C=180/Math.PI;function h(e,t,A){var n=1<<t;return[(e[0]+A[0])/n,(e[1]+A[1])/n]}function f(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function d(e){return[f(e[0]),f(e[1])]}function B(e,t){var A=Object(u.a)(t,2),n=A[0],r=A[1];switch(e){case 0:return[1,n,r];case 1:return[-n,1,r];case 2:return[-n,-r,1];case 3:return[-1,-r,-n];case 4:return[r,-1,-n];case 5:return[r,n,-1];default:throw new Error("Invalid face")}}function p(e){var t=Object(u.a)(e,3),A=t[0],n=t[1],r=t[2],i=Math.atan2(r,Math.sqrt(A*A+n*n));return[Math.atan2(n,A)*C,i*C]}function E(e,t,A,n){if(0===n){1===A&&(t[0]=e-1-t[0],t[1]=e-1-t[1]);var r=t[0];t[0]=t[1],t[1]=r}}function Q(e){if("string"===typeof e){if(e.indexOf("/")>0)return e;e=function(e){var t=e.padEnd(16,"0");return I.a.fromString(t,16)}(e)}return function(e){for(var t=I.a.fromString(e,!0,10).toString(2);t.length<64;)t="0"+t;for(var A=t.lastIndexOf("1"),n=t.substring(0,3),r=t.substring(3,A),i=r.length/2,o=I.a.fromString(n,!0,2).toString(10),a=I.a.fromString(r,!0,2).toString(4);a.length<i;)a="0"+a;return"".concat(o,"/").concat(a)}(e.toString())}function y(e){return function(e){for(var t=e.face,A=e.ij,n=e.level,r=[[0,0],[0,1],[1,1],[1,0],[0,0]],i=Math.max(1,Math.ceil(100*Math.pow(2,-n))),o=new Float64Array(4*i*2+2),a=0,s=0,g=0;g<4;g++)for(var c=r[g].slice(0),u=r[g+1],l=(u[0]-c[0])/i,I=(u[1]-c[1])/i,C=0;C<i;C++){c[0]+=l,c[1]+=I;var f=p(B(t,d(h(A,n,c))));Math.abs(f[1])>89.999&&(f[0]=s);var E=f[0]-s;f[0]+=E>180?-360:E<-180?360:0,o[a++]=f[0],o[a++]=f[1],s=f[0]}return o[a++]=o[0],o[a++]=o[1],o}(function(e){for(var t,A=e.split("/"),n=parseInt(A[0],10),r=A[1],i=r.length,o=[0,0],a=i-1;a>=0;a--){t=i-a;var s=r[a],g=0,c=0;"1"===s?c=1:"2"===s?(g=1,c=1):"3"===s&&(g=1);var u=Math.pow(2,t-1);E(u,o,g,c),o[0]+=u*g,o[1]+=u*c}if(n%2===1){var l=o[0];o[0]=o[1],o[1]=l}return{face:n,ij:o,level:t}}(Q(e)))}var v=Object(s.a)({},c.a.defaultProps,{getS2Token:{type:"accessor",value:function(e){return e.token}}}),m=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"renderLayers",value:function(){var e=this.props,t=e.data,A=e.getS2Token,n=this.props,r=n.elevationScale,i=n.extruded,o=n.wireframe,a=n.filled,s=n.stroked,g=n.lineWidthUnits,u=n.lineWidthScale,l=n.lineWidthMinPixels,I=n.lineWidthMaxPixels,C=n.lineJointRounded,h=n.lineMiterLimit,f=n.lineDashJustified,d=n.getElevation,B=n.getFillColor,p=n.getLineColor,E=n.getLineWidth,Q=n.getLineDashArray,v=this.props,m=v.updateTriggers,b=v.material;return new(this.getSubLayerClass("cell",c.a))({filled:a,wireframe:o,extruded:i,elevationScale:r,stroked:s,lineWidthUnits:g,lineWidthScale:u,lineWidthMinPixels:l,lineWidthMaxPixels:I,lineJointRounded:C,lineMiterLimit:h,lineDashJustified:f,material:b,getElevation:d,getFillColor:B,getLineColor:p,getLineWidth:E,getLineDashArray:Q},this.getSubLayerProps({id:"cell",updateTriggers:{getElevation:m.getElevation,getFillColor:m.getFillColor,getLineColor:m.getLineColor,getLineWidth:m.getLineWidth,getLineDashArray:m.getLineDashArray}}),{data:t,_normalize:!1,positionFormat:"XY",getPolygon:function(e,t){return y(A(e,t))}})}}]),A}(g.a);m.layerName="S2Layer",m.defaultProps=v;var b=A(224),w=A(16),S=A(17),F=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"getShaders",value:function(){var e=Object(S.a)(Object(w.a)(A.prototype),"getShaders",this).call(this);return e.inject={"vs:#decl":"uniform float trailLength;\nattribute float instanceTimestamps;\nattribute float instanceNextTimestamps;\nvarying float vTime;\n","vs:#main-end":"vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength;\n","fs:#decl":"uniform bool fadeTrail;\nuniform float trailLength;\nuniform float currentTime;\nvarying float vTime;\n","fs:#main-start":"if(vTime > currentTime || (fadeTrail && (vTime < currentTime - trailLength))) {\n discard;\n}\n","fs:DECKGL_FILTER_COLOR":"if(fadeTrail) {\n color.a *= 1.0 - (currentTime - vTime) / trailLength;\n}\n"},e}},{key:"initializeState",value:function(e){Object(S.a)(Object(w.a)(A.prototype),"initializeState",this).call(this,e),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}},{key:"draw",value:function(e){var t=this.props,n=t.fadeTrail,r=t.trailLength,i=t.currentTime;e.uniforms=Object(s.a)({},e.uniforms,{fadeTrail:n,trailLength:r,currentTime:i}),Object(S.a)(Object(w.a)(A.prototype),"draw",this).call(this,e)}}]),A}(A(268).a);F.layerName="TripsLayer",F.defaultProps={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:null}};var R=A(6),D=A(122),G=A(116),k=Object(s.a)({},c.a.defaultProps,{getHexagons:{type:"accessor",value:function(e){return e.hexagons}}}),x=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"updateState",value:function(e){var t=e.props,A=(e.oldProps,e.changeFlags);if(A.dataChanged||A.updateTriggers&&A.updateTriggers.getHexagons){var n,r=t.data,i=t.getHexagons,o=[],a=Object(G.a)(r),s=a.iterable,g=a.objectInfo,c=Object(R.a)(s);try{for(c.s();!(n=c.n()).done;){var u=n.value;g.index++;var l,I=i(u,g),C=Object(D.h3SetToMultiPolygon)(I,!0),h=Object(R.a)(C);try{for(h.s();!(l=h.n()).done;){var f=l.value;o.push(this.getSubLayerRow({polygon:f},u,g.index))}}catch(d){h.e(d)}finally{h.f()}}}catch(d){c.e(d)}finally{c.f()}this.setState({polygons:o})}}},{key:"renderLayers",value:function(){var e=this.props,t=e.elevationScale,A=e.extruded,n=e.wireframe,r=e.filled,i=e.stroked,o=e.lineWidthScale,a=e.lineWidthMinPixels,s=e.lineWidthMaxPixels,g=e.lineJointRounded,u=e.lineMiterLimit,l=e.lineDashJustified,I=e.material,C=e.getFillColor,h=e.getLineColor,f=e.getLineWidth,d=e.getLineDashArray,B=e.getElevation,p=e.transitions,E=e.updateTriggers;return new(this.getSubLayerClass("cluster-region",c.a))({filled:r,wireframe:n,extruded:A,elevationScale:t,stroked:i,lineWidthScale:o,lineWidthMinPixels:a,lineWidthMaxPixels:s,lineJointRounded:g,lineMiterLimit:u,lineDashJustified:l,material:I,transitions:p,getFillColor:this.getSubLayerAccessor(C),getLineColor:this.getSubLayerAccessor(h),getLineWidth:this.getSubLayerAccessor(f),getLineDashArray:this.getSubLayerAccessor(d),getElevation:this.getSubLayerAccessor(B)},this.getSubLayerProps({id:"cluster-region",updateTriggers:E}),{data:this.state.polygons,getPolygon:function(e){return e.polygon}})}}]),A}(g.a);x.defaultProps=k,x.layerName="H3ClusterLayer";var N=A(23),U=A(387);function _(e,t){t=void 0===t?e[0][0]:t;var A,n=Object(R.a)(e);try{for(n.s();!(A=n.n()).done;){var r=A.value,i=r[0]-t;i>180?r[0]-=360:i<-180&&(r[0]+=360)}}catch(o){n.e(o)}finally{n.f()}}function M(e,t,A){var n=Object(D.h3ToGeo)(e),r=Object(u.a)(n,2),i=r[0],o=r[1],a=t.length;_(t,o);for(var s=t[0]===t[a-1]?a-1:a,g=0;g<s;g++)t[g][0]=Object(N.lerp)(o,t[g][0],A),t[g][1]=Object(N.lerp)(i,t[g][1],A)}function O(e,t,A){var n=e(t,A),r=Object(D.h3ToGeo)(n),i=Object(u.a)(r,2),o=i[0];return[i[1],o]}function L(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,A=arguments.length>2?arguments[2]:void 0,n=Object(D.h3ToGeoBoundary)(e,!0);if(1!==t?M(e,n,t):_(n),A){var r,i=new Float64Array(2*n.length),o=0,a=Object(R.a)(n);try{for(a.s();!(r=a.n()).done;){var s=r.value;i[o++]=s[0],i[o++]=s[1]}}catch(g){a.e(g)}finally{a.f()}return i}return n}var T=Object(s.a)({},c.a.defaultProps,{highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:function(e){return e.hexagon}},extruded:!0});delete T.getLineDashArray;var Z=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"shouldUpdateState",value:function(e){var t=e.changeFlags;return this._shouldUseHighPrecision()?t.propsOrDataChanged:t.somethingChanged}},{key:"updateState",value:function(e){var t=e.props,A=(e.oldProps,e.changeFlags);if(!0!==t.highPrecision&&(A.dataChanged||A.updateTriggers&&A.updateTriggers.getHexagon)){var n=this._calculateH3DataProps(t);this.setState(n)}this._updateVertices(this.context.viewport)}},{key:"_calculateH3DataProps",value:function(e){var t,A=-1,n=!1,r=!1,i=Object(G.a)(e.data),o=i.iterable,a=i.objectInfo,s=Object(R.a)(o);try{for(s.s();!(t=s.n()).done;){var g=t.value;a.index++;var c=e.getHexagon(g,a),u=Object(D.h3GetResolution)(c);if(A<0){if(A=u,!e.highPrecision)break}else if(A!==u){r=!0;break}if(Object(D.h3IsPentagon)(c)){n=!0;break}}}catch(l){s.e(l)}finally{s.f()}return{resolution:A,edgeLengthKM:A>=0?Object(D.edgeLength)(A,D.UNITS.km):0,hasMultipleRes:r,hasPentagon:n}}},{key:"_shouldUseHighPrecision",value:function(){if("auto"===this.props.highPrecision){var e=this.state,t=e.resolution,A=e.hasPentagon,n=e.hasMultipleRes;return this.context.viewport.resolution||n||A||t>=0&&t<=5}return this.props.highPrecision}},{key:"_updateVertices",value:function(e){if(!this._shouldUseHighPrecision()){var t=this.state,A=t.resolution,n=t.edgeLengthKM,r=t.centerHex;if(!(A<0)){var i=this.props.centerHexagon||Object(D.geoToH3)(e.latitude,e.longitude,A);if(r!==i){if(r){var o=Object(D.h3Distance)(r,i);if(o>=0&&o*n<10)return}var a=e.distanceScales.unitsPerMeter,s=L(i),g=Object(D.h3ToGeo)(i),c=Object(u.a)(g,2),l=c[0],I=c[1],C=e.projectFlat([I,l]),h=Object(u.a)(C,2),f=h[0],d=h[1];s=s.map((function(t){var A=e.projectFlat(t);return[(A[0]-f)/a[0],(A[1]-d)/a[1]]})),this.setState({centerHex:i,vertices:s})}}}}},{key:"renderLayers",value:function(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}},{key:"_getForwardProps",value:function(){var e=this.props,t=e.elevationScale,A=e.material,n=e.coverage,r=e.extruded,i=e.wireframe,o=e.stroked,a=e.filled,s=e.lineWidthUnits,g=e.lineWidthScale,c=e.lineWidthMinPixels,u=e.lineWidthMaxPixels,l=e.getFillColor,I=e.getElevation,C=e.getLineColor,h=e.getLineWidth,f=e.transitions,d=e.updateTriggers;return{elevationScale:t,extruded:r,coverage:n,wireframe:i,stroked:o,filled:a,lineWidthUnits:s,lineWidthScale:g,lineWidthMinPixels:c,lineWidthMaxPixels:u,material:A,getElevation:I,getFillColor:l,getLineColor:C,getLineWidth:h,transitions:f,updateTriggers:{getFillColor:d.getFillColor,getElevation:d.getElevation,getLineColor:d.getLineColor,getLineWidth:d.getLineWidth}}}},{key:"_renderPolygonLayer",value:function(){var e=this.props,t=e.data,A=e.getHexagon,n=e.updateTriggers,r=e.coverage,i=this.getSubLayerClass("hexagon-cell-hifi",c.a),o=this._getForwardProps();return o.updateTriggers.getPolygon=function(e,t){return void 0===e||null===e?t:"object"===typeof e?Object(s.a)({},e,{coverage:t}):{getHexagon:e,coverage:t}}(n.getHexagon,r),new i(o,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:o.updateTriggers}),{data:t,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:function(e,t){return L(A(e,t),r,!0)}})}},{key:"_renderColumnLayer",value:function(){var e=this.props,t=e.data,A=e.getHexagon,n=e.updateTriggers,r=this.getSubLayerClass("hexagon-cell",U.a),i=this._getForwardProps();return i.updateTriggers.getPosition=n.getHexagon,new r(i,this.getSubLayerProps({id:"hexagon-cell",updateTriggers:i.updateTriggers}),{data:t,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:O.bind(null,A)})}}]),A}(g.a);Z.defaultProps=T,Z.layerName="H3HexagonLayer";var H=A(3),Y=A.n(H),J=A(12),j=A(135),P=A(36),V=A(651),K=A(645),W=A(703),X=A(1295),q=A(422),z=A(652);var $=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"getShaders",value:function(){var e=Object(S.a)(Object(w.a)(A.prototype),"getShaders",this).call(this);return e.modules.push(X.a),Object(s.a)({},e,{vs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-vs\nuniform float sizeScale;\nuniform bool composeModelMatrix;\nuniform bool u_pickFeatureIds;\nin vec3 positions;\nin vec3 normals;\nin vec3 colors;\nin vec2 texCoords;\nin vec4 uvRegions;\nin vec3 featureIdsPickingColors;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin mat3 instanceModelMatrix;\nout vec2 vTexCoord;\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec4 vColor;\n\nvoid main(void) {\n vec2 uv = fract(texCoords) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;\n\n geometry.uv = uv;\n geometry.uv = texCoords;\n\n if (u_pickFeatureIds) {\n geometry.pickingColor = featureIdsPickingColors;\n } else {\n geometry.pickingColor = instancePickingColors;\n }\n\n #ifdef MODULE_PBR\n #ifdef HAS_NORMALS\n pbr_vNormal = project_normal(instanceModelMatrix * normals);\n geometry.normal = pbr_vNormal;\n #endif\n\n #ifdef HAS_UV\n pbr_vUV = uv;\n #else\n pbr_vUV = vec2(0., 0.);\n #endif\n geometry.uv = pbr_vUV;\n #endif\n\n vTexCoord = uv;\n cameraPosition = project_uCameraPosition;\n normals_commonspace = project_normal(instanceModelMatrix * normals);\n vColor = vec4(colors * instanceColors.rgb, instanceColors.a);\n geometry.normal = normals_commonspace;\n\n vec3 pos = (instanceModelMatrix * positions) * sizeScale;\n vec3 projectedPosition = project_position(positions);\n position_commonspace = vec4(projectedPosition, 1.0);\n gl_Position = project_common_position_to_clipspace(position_commonspace);\n\n geometry.position = position_commonspace;\n\n #ifdef MODULE_PBR\n pbr_vPosition = geometry.position.xyz;\n #endif\n\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-fs\n\nprecision highp float;\n\nuniform bool hasTexture;\nuniform sampler2D sampler;\nuniform bool flatShading;\nuniform float opacity;\n\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\n\nout vec4 fragColor;\n\nvoid main(void) {\n \n#ifdef MODULE_PBR\n\n fragColor = vColor * pbr_filterColor(vec4(0));\n geometry.uv = pbr_vUV;\n fragColor.a *= opacity;\n\n#else\n\n geometry.uv = vTexCoord;\n\n vec3 normal;\n if (flatShading) {\n#ifdef DERIVATIVES_AVAILABLE\n normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n#else\n normal = vec3(0.0, 0.0, 1.0);\n#endif\n } else {\n normal = normals_commonspace;\n }\n\n vec4 color = hasTexture ? texture(sampler, vTexCoord) : vColor;\n vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);\n fragColor = vec4(lightColor, color.a * opacity);\n\n#endif\n\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n"})}},{key:"initializeState",value:function(){var e=this.props.featureIds;Object(S.a)(Object(w.a)(A.prototype),"initializeState",this).call(this),e&&this.state.attributeManager.add({featureIdsPickingColors:{type:5121,size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}},{key:"updateState",value:function(e){var t=e.props,n=e.oldProps,r=e.changeFlags;Object(S.a)(Object(w.a)(A.prototype),"updateState",this).call(this,{props:t,oldProps:n,changeFlags:r}),t.pbrMaterial!==n.pbrMaterial&&this.updatePbrMaterialUniforms(t.pbrMaterial)}},{key:"draw",value:function(e){var t=this.props.featureIds;this.state.model&&(this.state.model.setUniforms({u_Camera:this.state.model.getUniforms().project_uCameraPosition,u_pickFeatureIds:Boolean(t)}),Object(S.a)(Object(w.a)(A.prototype),"draw",this).call(this,e))}},{key:"getModel",value:function(e){var t,A=this.props,n=A.id,r=A.pbrMaterial,i=this.parseMaterial(r,e),o=this.getShaders();return(t=e.attributes).COLOR_0||t.colors||(t.colors={constant:!0,value:new Float32Array([1,1,1])}),t.uvRegions||(t.uvRegions={constant:!0,value:new Float32Array([0,0,1,1])}),new q.a(this.context.gl,Object(s.a)({},this.getShaders(),{id:n,geometry:e,defines:Object(s.a)({},o.defines,{},null===i||void 0===i?void 0:i.defines),parameters:null===i||void 0===i?void 0:i.parameters,isInstanced:!0}))}},{key:"updatePbrMaterialUniforms",value:function(e){var t=this.state.model;if(t){var A=this.props.mesh,n=this.parseMaterial(e,A);t.setUniforms(n.uniforms)}}},{key:"parseMaterial",value:function(e,t){var A=Boolean(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return new W.a(this.context.gl,{attributes:{NORMAL:t.attributes.normals,TEXCOORD_0:t.attributes.texCoords},material:Object(s.a)({unlit:A},e),pbrDebug:!1,imageBasedLightingEnvironment:null,lights:!0,useTangents:!1})}},{key:"calculateFeatureIdsPickingColors",value:function(e){for(var t=this.props.featureIds,A=new Uint8ClampedArray(t.length*e.size),n=[],r=0;r<t.length;r++)this.encodePickingColor(t[r],n),A[3*r]=n[0],A[3*r+1]=n[1],A[3*r+2]=n[2];e.value=A}}]),A}(z.a);$.layerName="_MeshLayer",$.defaultProps={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}};var ee=A(41),te=A(1283);function Ae(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}A(91);var ne=A(11);function re(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}var ie=1/Math.PI*180,oe=1/180*Math.PI,ae={};function se(e){return Math.round(e/ae.EPSILON)*ae.EPSILON}function ge(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.precision,n=void 0===A?ae.precision||4:A;return e=se(e),"".concat(parseFloat(e.toPrecision(n)))}function ce(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function ue(e,t,A){if(ce(e)){A=A||((r=e).clone?r.clone():new Array(r.length));for(var n=0;n<A.length&&n<e.length;++n)A[n]=t(e[n],n,A);return A}var r;return t(e)}function le(e){return function(e,t){return ue(e,(function(e){return e*oe}),t)}(e)}function Ie(e,t){return ue(e,(function(e){return e*ie}),t)}function Ce(e,t,A){var n=ae.EPSILON;A&&(ae.EPSILON=A);try{if(e===t)return!0;if(ce(e)&&ce(t)){if(e.length!==t.length)return!1;for(var r=0;r<e.length;++r)if(!Ce(e[r],t[r]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):!(!Number.isFinite(e)||!Number.isFinite(t))&&Math.abs(e-t)<=ae.EPSILON*Math.max(1,Math.abs(e),Math.abs(t))}finally{ae.EPSILON=n}}function he(e,t){if(e.length!==t)return!1;for(var A=0;A<e.length;++A)if(!Number.isFinite(e[A]))return!1;return!0}function fe(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(e));return e}function de(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(ae.debug&&!he(e,t))throw new Error("math.gl: ".concat(A," some fields set to invalid numbers'"));return e}ae.EPSILON=1e-12,ae.debug=!1,ae.precision=4,ae.printTypes=!1,ae.printDegrees=!1,ae.printRowMajor=!0;var Be={};function pe(e,t){Be[e]||(Be[e]=!0,console.warn("".concat(e," has been removed in version ").concat(t,", see upgrade guide for more information")))}var Ee=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"clone",value:function(){return(new this.constructor).copy(this)}},{key:"from",value:function(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}},{key:"fromArray",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)this[A]=e[A+t];return this.check()}},{key:"to",value:function(e){return e===this?this:ce(e)?this.toArray(e):this.toObject(e)}},{key:"toTarget",value:function(e){return e?this.to(e):this}},{key:"toArray",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)e[t+A]=this[A];return e}},{key:"toFloat32Array",value:function(){return new Float32Array(this)}},{key:"toString",value:function(){return this.formatString(ae)}},{key:"formatString",value:function(e){for(var t="",A=0;A<this.ELEMENTS;++A)t+=(A>0?", ":"")+ge(this[A],e);return"".concat(e.printTypes?this.constructor.name:"","[").concat(t,"]")}},{key:"equals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(!Ce(this[t],e[t]))return!1;return!0}},{key:"exactEquals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(this[t]!==e[t])return!1;return!0}},{key:"negate",value:function(){for(var e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}},{key:"lerp",value:function(e,t,A){void 0===A&&(A=t,t=e,e=this);for(var n=0;n<this.ELEMENTS;++n){var r=e[n];this[n]=r+A*(t[n]-r)}return this.check()}},{key:"min",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.min(e[t],this[t]);return this.check()}},{key:"max",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.max(e[t],this[t]);return this.check()}},{key:"clamp",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e[A]),t[A]);return this.check()}},{key:"add",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]+=i[o];return this.check()}},{key:"subtract",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]-=i[o];return this.check()}},{key:"scale",value:function(e){if(Array.isArray(e))return this.multiply(e);for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"sub",value:function(e){return this.subtract(e)}},{key:"setScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=e;return this.check()}},{key:"addScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]+=e;return this.check()}},{key:"subScalar",value:function(e){return this.addScalar(-e)}},{key:"multiplyScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"divideScalar",value:function(e){return this.scale(1/e)}},{key:"clampScalar",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e),t);return this.check()}},{key:"multiplyByScalar",value:function(e){return this.scale(e)}},{key:"check",value:function(){if(ae.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}},{key:"validate",value:function(){for(var e=this.length===this.ELEMENTS,t=0;t<this.ELEMENTS;++t)e=e&&Number.isFinite(this[t]);return e}},{key:"ELEMENTS",get:function(){return re(!1),0}},{key:"elements",get:function(){return this}}]),A}(function(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}(Array)),Qe=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"toString",value:function(){var e="[";if(ae.printRowMajor){e+="row-major:";for(var t=0;t<this.RANK;++t)for(var A=0;A<this.RANK;++A)e+=" ".concat(this[A*this.RANK+t])}else{e+="column-major:";for(var n=0;n<this.ELEMENTS;++n)e+=" ".concat(this[n])}return e+="]"}},{key:"getElementIndex",value:function(e,t){return t*this.RANK+e}},{key:"getElement",value:function(e,t){return this[t*this.RANK+e]}},{key:"setElement",value:function(e,t,A){return this[t*this.RANK+e]=fe(A),this}},{key:"getColumn",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Array(this.RANK).fill(-0),A=e*this.RANK,n=0;n<this.RANK;++n)t[n]=this[A+n];return t}},{key:"setColumn",value:function(e,t){for(var A=e*this.RANK,n=0;n<this.RANK;++n)this[A+n]=t[n];return this}},{key:"ELEMENTS",get:function(){return re(!1),0}},{key:"RANK",get:function(){return re(!1),0}}]),A}(Ee);function ye(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[3]*n+A[7]*r+A[11]*i||1;return e[0]=(A[0]*n+A[4]*r+A[8]*i)/o,e[1]=(A[1]*n+A[5]*r+A[9]*i)/o,e[2]=(A[2]*n+A[6]*r+A[10]*i)/o,e}var ve=A(27),me=A(70),be=A(29),we=A(56),Se=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),Fe=Object.freeze([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Re=Object.freeze({COL0ROW0:0,COL0ROW1:1,COL0ROW2:2,COL0ROW3:3,COL1ROW0:4,COL1ROW1:5,COL1ROW2:6,COL1ROW3:7,COL2ROW0:8,COL2ROW1:9,COL2ROW2:10,COL2ROW3:11,COL3ROW0:12,COL3ROW1:13,COL3ROW2:14,COL3ROW3:15}),De={},Ge=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(e){var r;return Object(n.a)(this,A),r=t.call(this,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),1===arguments.length&&Array.isArray(e)?r.copy(e):r.identity(),r}return Object(a.a)(A,[{key:"INDICES",get:function(){return Re}},{key:"ELEMENTS",get:function(){return 16}},{key:"RANK",get:function(){return 4}}],[{key:"IDENTITY",get:function(){return De.IDENTITY=De.IDENTITY||Object.freeze(new A(Se)),De.IDENTITY}},{key:"ZERO",get:function(){return De.ZERO=De.ZERO||Object.freeze(new A(Fe)),De.ZERO}}]),Object(a.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}},{key:"set",value:function(e,t,A,n,r,i,o,a,s,g,c,u,l,I,C,h){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this[4]=r,this[5]=i,this[6]=o,this[7]=a,this[8]=s,this[9]=g,this[10]=c,this[11]=u,this[12]=l,this[13]=I,this[14]=C,this[15]=h,this.check()}},{key:"setRowMajor",value:function(e,t,A,n,r,i,o,a,s,g,c,u,l,I,C,h){return this[0]=e,this[1]=r,this[2]=s,this[3]=l,this[4]=t,this[5]=i,this[6]=g,this[7]=I,this[8]=A,this[9]=o,this[10]=c,this[11]=C,this[12]=n,this[13]=a,this[14]=u,this[15]=h,this.check()}},{key:"toRowMajor",value:function(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}},{key:"identity",value:function(){return this.copy(Se)}},{key:"fromQuaternion",value:function(e){return ve.b(this,e),this.check()}},{key:"frustum",value:function(e){var t=e.left,n=e.right,r=e.bottom,i=e.top,o=e.near,a=e.far;return a===1/0?A._computeInfinitePerspectiveOffCenter(this,t,n,r,i,o):ve.c(this,t,n,r,i,o,a),this.check()}},{key:"lookAt",value:function(e,t,A){if(1===arguments.length){var n=e;e=n.eye,t=n.center,A=n.up}return t=t||[0,0,0],A=A||[0,1,0],ve.f(this,e,t,A),this.check()}},{key:"ortho",value:function(e){var t=e.left,A=e.right,n=e.bottom,r=e.top,i=e.near,o=void 0===i?.1:i,a=e.far,s=void 0===a?500:a;return ve.h(this,t,A,n,r,o,s),this.check()}},{key:"orthographic",value:function(e){var t=e.fovy,n=void 0===t?45*Math.PI/180:t,r=e.aspect,i=void 0===r?1:r,o=e.focalDistance,a=void 0===o?1:o,s=e.near,g=void 0===s?.1:s,c=e.far,u=void 0===c?500:c;if(n>2*Math.PI)throw Error("radians");var l=n/2,I=a*Math.tan(l),C=I*i;return(new A).ortho({left:-C,right:C,bottom:-I,top:I,near:g,far:u})}},{key:"perspective",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.fovy,A=void 0===t?void 0:t,n=e.fov,r=void 0===n?45*Math.PI/180:n,i=e.aspect,o=void 0===i?1:i,a=e.near,s=void 0===a?.1:a,g=e.far,c=void 0===g?500:g;if((A=A||r)>2*Math.PI)throw Error("radians");return ve.i(this,A,o,s,c),this.check()}},{key:"determinant",value:function(){return ve.a(this)}},{key:"getScale",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0];return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}},{key:"getTranslation",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0];return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}},{key:"getRotation",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,A=this.getScale(t||[-0,-0,-0]),n=1/A[0],r=1/A[1],i=1/A[2];return e[0]=this[0]*n,e[1]=this[1]*r,e[2]=this[2]*i,e[3]=0,e[4]=this[4]*n,e[5]=this[5]*r,e[6]=this[6]*i,e[7]=0,e[8]=this[8]*n,e[9]=this[9]*r,e[10]=this[10]*i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}},{key:"getRotationMatrix3",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0,-0,-0,-0,-0,-0,-0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,A=this.getScale(t||[-0,-0,-0]),n=1/A[0],r=1/A[1],i=1/A[2];return e[0]=this[0]*n,e[1]=this[1]*r,e[2]=this[2]*i,e[3]=this[4]*n,e[4]=this[5]*r,e[5]=this[6]*i,e[6]=this[8]*n,e[7]=this[9]*r,e[8]=this[10]*i,e}},{key:"transpose",value:function(){return ve.p(this,this),this.check()}},{key:"invert",value:function(){return ve.e(this,this),this.check()}},{key:"multiplyLeft",value:function(e){return ve.g(this,e,this),this.check()}},{key:"multiplyRight",value:function(e){return ve.g(this,this,e),this.check()}},{key:"rotateX",value:function(e){return ve.k(this,this,e),this.check()}},{key:"rotateY",value:function(e){return ve.l(this,this,e),this.check()}},{key:"rotateZ",value:function(e){return ve.m(this,this,e),this.check()}},{key:"rotateXYZ",value:function(e){var t=Object(u.a)(e,3),A=t[0],n=t[1],r=t[2];return this.rotateX(A).rotateY(n).rotateZ(r)}},{key:"rotateAxis",value:function(e,t){return ve.j(this,this,e,t),this.check()}},{key:"scale",value:function(e){return Array.isArray(e)?ve.n(this,this,e):ve.n(this,this,[e,e,e]),this.check()}},{key:"translate",value:function(e){return ve.o(this,this,e),this.check()}},{key:"transform",value:function(e,t){return 4===e.length?(de(t=we.n(t||[-0,-0,-0,-0],e,this),4),t):this.transformAsPoint(e,t)}},{key:"transformAsPoint",value:function(e,t){switch(e.length){case 2:t=me.f(t||[-0,-0],e,this);break;case 3:t=be.p(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return de(t,e.length),t}},{key:"transformAsVector",value:function(e,t){switch(e.length){case 2:t=function(e,t,A){var n=t[0],r=t[1],i=A[3]*n+A[7]*r||1;return e[0]=(A[0]*n+A[4]*r)/i,e[1]=(A[1]*n+A[5]*r)/i,e}(t||[-0,-0],e,this);break;case 3:t=ye(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return de(t,e.length),t}},{key:"makeRotationX",value:function(e){return this.identity().rotateX(e)}},{key:"makeTranslation",value:function(e,t,A){return this.identity().translate([e,t,A])}},{key:"transformPoint",value:function(e,t){return pe("Matrix4.transformPoint","3.0"),this.transformAsPoint(e,t)}},{key:"transformVector",value:function(e,t){return pe("Matrix4.transformVector","3.0"),this.transformAsPoint(e,t)}},{key:"transformDirection",value:function(e,t){return pe("Matrix4.transformDirection","3.0"),this.transformAsVector(e,t)}}],[{key:"_computeInfinitePerspectiveOffCenter",value:function(e,t,A,n,r,i){var o=2*i/(A-t),a=2*i/(r-n),s=(A+t)/(A-t),g=(r+n)/(r-n),c=-2*i;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=s,e[9]=g,e[10]=-1,e[11]=-1,e[12]=0,e[13]=0,e[14]=c,e[15]=0,e}}]),A}(Qe),ke=[0,0,0],xe={},Ne=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return Object(n.a)(this,A),e=t.call(this,-0,-0,-0),1===arguments.length&&ce(r)?e.copy(r):(ae.debug&&(fe(r),fe(i),fe(o)),e[0]=r,e[1]=i,e[2]=o),e}return Object(a.a)(A,null,[{key:"ZERO",get:function(){return xe.ZERO=xe.ZERO||Object.freeze(new A(0,0,0,0))}}]),Object(a.a)(A,[{key:"set",value:function(e,t,A){return this[0]=e,this[1]=t,this[2]=A,this.check()}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}},{key:"fromObject",value:function(e){return ae.debug&&(fe(e.x),fe(e.y),fe(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}},{key:"toObject",value:function(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}},{key:"angle",value:function(e){return be.a(this,e)}},{key:"cross",value:function(e){return be.c(this,this,e),this.check()}},{key:"rotateX",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?ke:A;return be.j(this,this,n,t),this.check()}},{key:"rotateY",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?ke:A;return be.k(this,this,n,t),this.check()}},{key:"rotateZ",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?ke:A;return be.l(this,this,n,t),this.check()}},{key:"transform",value:function(e){return this.transformAsPoint(e)}},{key:"transformAsPoint",value:function(e){return be.p(this,this,e),this.check()}},{key:"transformAsVector",value:function(e){return ye(this,this,e),this.check()}},{key:"transformByMatrix3",value:function(e){return be.o(this,this,e),this.check()}},{key:"transformByMatrix2",value:function(e){return function(e,t,A){var n=t[0],r=t[1];e[0]=A[0]*n+A[2]*r,e[1]=A[1]*n+A[3]*r,e[2]=t[2]}(this,this,e),this.check()}},{key:"transformByQuaternion",value:function(e){return be.q(this,this,e),this.check()}},{key:"ELEMENTS",get:function(){return 3}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=fe(e)}}]),A}(function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"copy",value:function(e){return re(!1),this}},{key:"len",value:function(){return Math.sqrt(this.lengthSquared())}},{key:"magnitude",value:function(){return this.len()}},{key:"lengthSquared",value:function(){for(var e=0,t=0;t<this.ELEMENTS;++t)e+=this[t]*this[t];return e}},{key:"magnitudeSquared",value:function(){return this.lengthSquared()}},{key:"distance",value:function(e){return Math.sqrt(this.distanceSquared(e))}},{key:"distanceSquared",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A){var n=this[A]-e[A];t+=n*n}return fe(t)}},{key:"dot",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A)t+=this[A]*e[A];return fe(t)}},{key:"normalize",value:function(){var e=this.magnitude();if(0!==e)for(var t=0;t<this.ELEMENTS;++t)this[t]/=e;return this.check()}},{key:"multiply",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]*=i[o];return this.check()}},{key:"divide",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]/=i[o];return this.check()}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"distanceTo",value:function(e){return this.distance(e)}},{key:"distanceToSquared",value:function(e){return this.distanceSquared(e)}},{key:"getComponent",value:function(e){return re(e>=0&&e<this.ELEMENTS,"index is out of range"),fe(this[e])}},{key:"setComponent",value:function(e,t){return re(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=t,this.check()}},{key:"addVectors",value:function(e,t){return this.copy(e).add(t)}},{key:"subVectors",value:function(e,t){return this.copy(e).subtract(t)}},{key:"multiplyVectors",value:function(e,t){return this.copy(e).multiply(t)}},{key:"addScaledVector",value:function(e,t){return this.add(new this.constructor(e).multiplyScalar(t))}},{key:"ELEMENTS",get:function(){return re(!1),0}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=fe(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=fe(e)}}]),A}(Ee));function Ue(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}var _e=1/Math.PI*180,Me=1/180*Math.PI,Oe={};function Le(e){return Math.round(e/Oe.EPSILON)*Oe.EPSILON}function Te(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.precision,n=void 0===A?Oe.precision||4:A;return e=Le(e),"".concat(parseFloat(e.toPrecision(n)))}function Ze(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function He(e,t,A){if(Ze(e)){A=A||((r=e).clone?r.clone():new Array(r.length));for(var n=0;n<A.length&&n<e.length;++n)A[n]=t(e[n],n,A);return A}var r;return t(e)}function Ye(e){return function(e,t){return He(e,(function(e){return e*Me}),t)}(e)}function Je(e){return function(e,t){return He(e,(function(e){return e*_e}),t)}(e)}function je(e,t,A){var n=Oe.EPSILON;A&&(Oe.EPSILON=A);try{if(e===t)return!0;if(Ze(e)&&Ze(t)){if(e.length!==t.length)return!1;for(var r=0;r<e.length;++r)if(!je(e[r],t[r]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):!(!Number.isFinite(e)||!Number.isFinite(t))&&Math.abs(e-t)<=Oe.EPSILON*Math.max(1,Math.abs(e),Math.abs(t))}finally{Oe.EPSILON=n}}Oe.EPSILON=1e-12,Oe.debug=!1,Oe.precision=4,Oe.printTypes=!1,Oe.printDegrees=!1,Oe.printRowMajor=!0;var Pe=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"clone",value:function(){return(new this.constructor).copy(this)}},{key:"from",value:function(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}},{key:"fromArray",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)this[A]=e[A+t];return this.check()}},{key:"to",value:function(e){return e===this?this:Ze(e)?this.toArray(e):this.toObject(e)}},{key:"toTarget",value:function(e){return e?this.to(e):this}},{key:"toArray",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)e[t+A]=this[A];return e}},{key:"toFloat32Array",value:function(){return new Float32Array(this)}},{key:"toString",value:function(){return this.formatString(Oe)}},{key:"formatString",value:function(e){for(var t="",A=0;A<this.ELEMENTS;++A)t+=(A>0?", ":"")+Te(this[A],e);return"".concat(e.printTypes?this.constructor.name:"","[").concat(t,"]")}},{key:"equals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(!je(this[t],e[t]))return!1;return!0}},{key:"exactEquals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(this[t]!==e[t])return!1;return!0}},{key:"negate",value:function(){for(var e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}},{key:"lerp",value:function(e,t,A){void 0===A&&(A=t,t=e,e=this);for(var n=0;n<this.ELEMENTS;++n){var r=e[n];this[n]=r+A*(t[n]-r)}return this.check()}},{key:"min",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.min(e[t],this[t]);return this.check()}},{key:"max",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.max(e[t],this[t]);return this.check()}},{key:"clamp",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e[A]),t[A]);return this.check()}},{key:"add",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]+=i[o];return this.check()}},{key:"subtract",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]-=i[o];return this.check()}},{key:"scale",value:function(e){if(Array.isArray(e))return this.multiply(e);for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"sub",value:function(e){return this.subtract(e)}},{key:"setScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=e;return this.check()}},{key:"addScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]+=e;return this.check()}},{key:"subScalar",value:function(e){return this.addScalar(-e)}},{key:"multiplyScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"divideScalar",value:function(e){return this.scale(1/e)}},{key:"clampScalar",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e),t);return this.check()}},{key:"multiplyByScalar",value:function(e){return this.scale(e)}},{key:"check",value:function(){if(Oe.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}},{key:"validate",value:function(){for(var e=this.length===this.ELEMENTS,t=0;t<this.ELEMENTS;++t)e=e&&Number.isFinite(this[t]);return e}},{key:"ELEMENTS",get:function(){return Ue(!1),0}},{key:"elements",get:function(){return this}}]),A}(function(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}(Array));function Ve(e,t){if(e.length!==t)return!1;for(var A=0;A<e.length;++A)if(!Number.isFinite(e[A]))return!1;return!0}function Ke(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(e));return e}function We(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(Oe.debug&&!Ve(e,t))throw new Error("math.gl: ".concat(A," some fields set to invalid numbers'"));return e}var Xe={};function qe(e,t){Xe[e]||(Xe[e]=!0,console.warn("".concat(e," has been removed in version ").concat(t,", see upgrade guide for more information")))}function ze(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[3]*n+A[7]*r+A[11]*i||1;return e[0]=(A[0]*n+A[4]*r+A[8]*i)/o,e[1]=(A[1]*n+A[5]*r+A[9]*i)/o,e[2]=(A[2]*n+A[6]*r+A[10]*i)/o,e}var $e=[0,0,0],et={},tt=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return Object(n.a)(this,A),e=t.call(this,-0,-0,-0),1===arguments.length&&Ze(r)?e.copy(r):(Oe.debug&&(Ke(r),Ke(i),Ke(o)),e[0]=r,e[1]=i,e[2]=o),e}return Object(a.a)(A,null,[{key:"ZERO",get:function(){return et.ZERO=et.ZERO||Object.freeze(new A(0,0,0,0))}}]),Object(a.a)(A,[{key:"set",value:function(e,t,A){return this[0]=e,this[1]=t,this[2]=A,this.check()}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}},{key:"fromObject",value:function(e){return Oe.debug&&(Ke(e.x),Ke(e.y),Ke(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}},{key:"toObject",value:function(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}},{key:"angle",value:function(e){return be.a(this,e)}},{key:"cross",value:function(e){return be.c(this,this,e),this.check()}},{key:"rotateX",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?$e:A;return be.j(this,this,n,t),this.check()}},{key:"rotateY",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?$e:A;return be.k(this,this,n,t),this.check()}},{key:"rotateZ",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?$e:A;return be.l(this,this,n,t),this.check()}},{key:"transform",value:function(e){return this.transformAsPoint(e)}},{key:"transformAsPoint",value:function(e){return be.p(this,this,e),this.check()}},{key:"transformAsVector",value:function(e){return ze(this,this,e),this.check()}},{key:"transformByMatrix3",value:function(e){return be.o(this,this,e),this.check()}},{key:"transformByMatrix2",value:function(e){return function(e,t,A){var n=t[0],r=t[1];e[0]=A[0]*n+A[2]*r,e[1]=A[1]*n+A[3]*r,e[2]=t[2]}(this,this,e),this.check()}},{key:"transformByQuaternion",value:function(e){return be.q(this,this,e),this.check()}},{key:"ELEMENTS",get:function(){return 3}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=Ke(e)}}]),A}(function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"copy",value:function(e){return Ue(!1),this}},{key:"len",value:function(){return Math.sqrt(this.lengthSquared())}},{key:"magnitude",value:function(){return this.len()}},{key:"lengthSquared",value:function(){for(var e=0,t=0;t<this.ELEMENTS;++t)e+=this[t]*this[t];return e}},{key:"magnitudeSquared",value:function(){return this.lengthSquared()}},{key:"distance",value:function(e){return Math.sqrt(this.distanceSquared(e))}},{key:"distanceSquared",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A){var n=this[A]-e[A];t+=n*n}return Ke(t)}},{key:"dot",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A)t+=this[A]*e[A];return Ke(t)}},{key:"normalize",value:function(){var e=this.magnitude();if(0!==e)for(var t=0;t<this.ELEMENTS;++t)this[t]/=e;return this.check()}},{key:"multiply",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]*=i[o];return this.check()}},{key:"divide",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]/=i[o];return this.check()}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"distanceTo",value:function(e){return this.distance(e)}},{key:"distanceToSquared",value:function(e){return this.distanceSquared(e)}},{key:"getComponent",value:function(e){return Ue(e>=0&&e<this.ELEMENTS,"index is out of range"),Ke(this[e])}},{key:"setComponent",value:function(e,t){return Ue(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=t,this.check()}},{key:"addVectors",value:function(e,t){return this.copy(e).add(t)}},{key:"subVectors",value:function(e,t){return this.copy(e).subtract(t)}},{key:"multiplyVectors",value:function(e,t){return this.copy(e).multiply(t)}},{key:"addScaledVector",value:function(e,t){return this.add(new this.constructor(e).multiplyScalar(t))}},{key:"ELEMENTS",get:function(){return Ue(!1),0}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=Ke(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=Ke(e)}}]),A}(Pe)),At=.1,nt=1e-12,rt=1e-15,it=(Math.PI,Math.PI,Math.PI,Math.PI,function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"toString",value:function(){var e="[";if(Oe.printRowMajor){e+="row-major:";for(var t=0;t<this.RANK;++t)for(var A=0;A<this.RANK;++A)e+=" ".concat(this[A*this.RANK+t])}else{e+="column-major:";for(var n=0;n<this.ELEMENTS;++n)e+=" ".concat(this[n])}return e+="]"}},{key:"getElementIndex",value:function(e,t){return t*this.RANK+e}},{key:"getElement",value:function(e,t){return this[t*this.RANK+e]}},{key:"setElement",value:function(e,t,A){return this[t*this.RANK+e]=Ke(A),this}},{key:"getColumn",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Array(this.RANK).fill(-0),A=e*this.RANK,n=0;n<this.RANK;++n)t[n]=this[A+n];return t}},{key:"setColumn",value:function(e,t){for(var A=e*this.RANK,n=0;n<this.RANK;++n)this[A+n]=t[n];return this}},{key:"ELEMENTS",get:function(){return Ue(!1),0}},{key:"RANK",get:function(){return Ue(!1),0}}]),A}(Pe)),ot=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),at=Object.freeze([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),st=Object.freeze({COL0ROW0:0,COL0ROW1:1,COL0ROW2:2,COL0ROW3:3,COL1ROW0:4,COL1ROW1:5,COL1ROW2:6,COL1ROW3:7,COL2ROW0:8,COL2ROW1:9,COL2ROW2:10,COL2ROW3:11,COL3ROW0:12,COL3ROW1:13,COL3ROW2:14,COL3ROW3:15}),gt={},ct=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(e){var r;return Object(n.a)(this,A),r=t.call(this,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),1===arguments.length&&Array.isArray(e)?r.copy(e):r.identity(),r}return Object(a.a)(A,[{key:"INDICES",get:function(){return st}},{key:"ELEMENTS",get:function(){return 16}},{key:"RANK",get:function(){return 4}}],[{key:"IDENTITY",get:function(){return gt.IDENTITY=gt.IDENTITY||Object.freeze(new A(ot)),gt.IDENTITY}},{key:"ZERO",get:function(){return gt.ZERO=gt.ZERO||Object.freeze(new A(at)),gt.ZERO}}]),Object(a.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}},{key:"set",value:function(e,t,A,n,r,i,o,a,s,g,c,u,l,I,C,h){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this[4]=r,this[5]=i,this[6]=o,this[7]=a,this[8]=s,this[9]=g,this[10]=c,this[11]=u,this[12]=l,this[13]=I,this[14]=C,this[15]=h,this.check()}},{key:"setRowMajor",value:function(e,t,A,n,r,i,o,a,s,g,c,u,l,I,C,h){return this[0]=e,this[1]=r,this[2]=s,this[3]=l,this[4]=t,this[5]=i,this[6]=g,this[7]=I,this[8]=A,this[9]=o,this[10]=c,this[11]=C,this[12]=n,this[13]=a,this[14]=u,this[15]=h,this.check()}},{key:"toRowMajor",value:function(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}},{key:"identity",value:function(){return this.copy(ot)}},{key:"fromQuaternion",value:function(e){return ve.b(this,e),this.check()}},{key:"frustum",value:function(e){var t=e.left,n=e.right,r=e.bottom,i=e.top,o=e.near,a=e.far;return a===1/0?A._computeInfinitePerspectiveOffCenter(this,t,n,r,i,o):ve.c(this,t,n,r,i,o,a),this.check()}},{key:"lookAt",value:function(e,t,A){if(1===arguments.length){var n=e;e=n.eye,t=n.center,A=n.up}return t=t||[0,0,0],A=A||[0,1,0],ve.f(this,e,t,A),this.check()}},{key:"ortho",value:function(e){var t=e.left,A=e.right,n=e.bottom,r=e.top,i=e.near,o=void 0===i?.1:i,a=e.far,s=void 0===a?500:a;return ve.h(this,t,A,n,r,o,s),this.check()}},{key:"orthographic",value:function(e){var t=e.fovy,n=void 0===t?45*Math.PI/180:t,r=e.aspect,i=void 0===r?1:r,o=e.focalDistance,a=void 0===o?1:o,s=e.near,g=void 0===s?.1:s,c=e.far,u=void 0===c?500:c;if(n>2*Math.PI)throw Error("radians");var l=n/2,I=a*Math.tan(l),C=I*i;return(new A).ortho({left:-C,right:C,bottom:-I,top:I,near:g,far:u})}},{key:"perspective",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.fovy,A=void 0===t?void 0:t,n=e.fov,r=void 0===n?45*Math.PI/180:n,i=e.aspect,o=void 0===i?1:i,a=e.near,s=void 0===a?.1:a,g=e.far,c=void 0===g?500:g;if((A=A||r)>2*Math.PI)throw Error("radians");return ve.i(this,A,o,s,c),this.check()}},{key:"determinant",value:function(){return ve.a(this)}},{key:"getScale",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0];return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}},{key:"getTranslation",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0];return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}},{key:"getRotation",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,A=this.getScale(t||[-0,-0,-0]),n=1/A[0],r=1/A[1],i=1/A[2];return e[0]=this[0]*n,e[1]=this[1]*r,e[2]=this[2]*i,e[3]=0,e[4]=this[4]*n,e[5]=this[5]*r,e[6]=this[6]*i,e[7]=0,e[8]=this[8]*n,e[9]=this[9]*r,e[10]=this[10]*i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}},{key:"getRotationMatrix3",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0,-0,-0,-0,-0,-0,-0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,A=this.getScale(t||[-0,-0,-0]),n=1/A[0],r=1/A[1],i=1/A[2];return e[0]=this[0]*n,e[1]=this[1]*r,e[2]=this[2]*i,e[3]=this[4]*n,e[4]=this[5]*r,e[5]=this[6]*i,e[6]=this[8]*n,e[7]=this[9]*r,e[8]=this[10]*i,e}},{key:"transpose",value:function(){return ve.p(this,this),this.check()}},{key:"invert",value:function(){return ve.e(this,this),this.check()}},{key:"multiplyLeft",value:function(e){return ve.g(this,e,this),this.check()}},{key:"multiplyRight",value:function(e){return ve.g(this,this,e),this.check()}},{key:"rotateX",value:function(e){return ve.k(this,this,e),this.check()}},{key:"rotateY",value:function(e){return ve.l(this,this,e),this.check()}},{key:"rotateZ",value:function(e){return ve.m(this,this,e),this.check()}},{key:"rotateXYZ",value:function(e){var t=Object(u.a)(e,3),A=t[0],n=t[1],r=t[2];return this.rotateX(A).rotateY(n).rotateZ(r)}},{key:"rotateAxis",value:function(e,t){return ve.j(this,this,e,t),this.check()}},{key:"scale",value:function(e){return Array.isArray(e)?ve.n(this,this,e):ve.n(this,this,[e,e,e]),this.check()}},{key:"translate",value:function(e){return ve.o(this,this,e),this.check()}},{key:"transform",value:function(e,t){return 4===e.length?(We(t=we.n(t||[-0,-0,-0,-0],e,this),4),t):this.transformAsPoint(e,t)}},{key:"transformAsPoint",value:function(e,t){switch(e.length){case 2:t=me.f(t||[-0,-0],e,this);break;case 3:t=be.p(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return We(t,e.length),t}},{key:"transformAsVector",value:function(e,t){switch(e.length){case 2:t=function(e,t,A){var n=t[0],r=t[1],i=A[3]*n+A[7]*r||1;return e[0]=(A[0]*n+A[4]*r)/i,e[1]=(A[1]*n+A[5]*r)/i,e}(t||[-0,-0],e,this);break;case 3:t=ze(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return We(t,e.length),t}},{key:"makeRotationX",value:function(e){return this.identity().rotateX(e)}},{key:"makeTranslation",value:function(e,t,A){return this.identity().translate([e,t,A])}},{key:"transformPoint",value:function(e,t){return qe("Matrix4.transformPoint","3.0"),this.transformAsPoint(e,t)}},{key:"transformVector",value:function(e,t){return qe("Matrix4.transformVector","3.0"),this.transformAsPoint(e,t)}},{key:"transformDirection",value:function(e,t){return qe("Matrix4.transformDirection","3.0"),this.transformAsVector(e,t)}}],[{key:"_computeInfinitePerspectiveOffCenter",value:function(e,t,A,n,r,i){var o=2*i/(A-t),a=2*i/(r-n),s=(A+t)/(A-t),g=(r+n)/(r-n),c=-2*i;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=s,e[9]=g,e[10]=-1,e[11]=-1,e[12]=0,e[13]=0,e[14]=c,e[15]=0,e}}]),A}(it),ut=(Math.max(6378137,6378137,6356752.314245179),function(e){return e}),lt=new tt;function It(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ut;return Ze(e)?(t[0]=A(e[0]),t[1]=A(e[1]),t[2]=e[2]):"longitude"in e?(t[0]=A(e.longitude),t[1]=A(e.latitude),t[2]=e.height):(t[0]=A(e.x),t[1]=A(e.y),t[2]=e.z),t}function Ct(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:lt;return It(e,t,Oe._cartographicRadians?ut:Ye)}function ht(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ut;return Ze(t)?(t[0]=A(e[0]),t[1]=A(e[1]),t[2]=e[2]):"longitude"in t?(t.longitude=A(e[0]),t.latitude=A(e[1]),t.height=e[2]):(t.x=A(e[0]),t.y=A(e[1]),t.z=e[2]),t}function ft(e,t){return ht(e,t,Oe._cartographicRadians?ut:Je)}var dt=new tt,Bt=new tt,pt=new tt;var Et=new tt,Qt={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},yt={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},vt={east:new tt,north:new tt,up:new tt,west:new tt,south:new tt,down:new tt},mt=new tt,bt=new tt,wt=new tt;function St(e,t,A,n,r,i){var o,a,s,g=Qt[t]&&Qt[t][A];Ue(g&&(!n||n===g));var c=Et.copy(r);if(je(c.x,0,1e-14)&&je(c.y,0,1e-14)){var u=Math.sign(c.z);o=mt.fromArray(yt[t]),"east"!==t&&"west"!==t&&o.scale(u),a=bt.fromArray(yt[A]),"east"!==A&&"west"!==A&&a.scale(u),s=wt.fromArray(yt[n]),"east"!==n&&"west"!==n&&s.scale(u)}else{var l=vt.up,I=vt.east,C=vt.north;I.set(-c.y,c.x,0).normalize(),e.geodeticSurfaceNormal(c,l),C.copy(l).cross(I);var h=vt.west,f=vt.south;vt.down.copy(l).scale(-1),h.copy(I).scale(-1),f.copy(C).scale(-1),o=vt[t],a=vt[A],s=vt[n]}return i[0]=o.x,i[1]=o.y,i[2]=o.z,i[3]=0,i[4]=a.x,i[5]=a.y,i[6]=a.z,i[7]=0,i[8]=s.x,i[9]=s.y,i[10]=s.z,i[11]=0,i[12]=c.x,i[13]=c.y,i[14]=c.z,i[15]=1,i}var Ft,Rt=new tt,Dt=new tt,Gt=new tt,kt=new tt,xt=new tt,Nt=new tt,Ut=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;Object(n.a)(this,e),Ue(t>=0),Ue(A>=0),Ue(r>=0),this.radii=new tt(t,A,r),this.radiiSquared=new tt(t*t,A*A,r*r),this.radiiToTheFourth=new tt(t*t*t*t,A*A*A*A,r*r*r*r),this.oneOverRadii=new tt(0===t?0:1/t,0===A?0:1/A,0===r?0:1/r),this.oneOverRadiiSquared=new tt(0===t?0:1/(t*t),0===A?0:1/(A*A),0===r?0:1/(r*r)),this.minimumRadius=Math.min(t,A,r),this.maximumRadius=Math.max(t,A,r),this.centerToleranceSquared=At,0!==this.radiiSquared.z&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}return Object(a.a)(e,null,[{key:"WGS84",get:function(){return Ft=Ft||new e(6378137,6378137,6356752.314245179)}}]),Object(a.a)(e,[{key:"equals",value:function(e){return this===e||Boolean(e&&this.radii.equals(e.radii))}},{key:"toString",value:function(){return this.radii.toString()}},{key:"cartographicToCartesian",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0],A=Dt,n=Gt,r=Object(u.a)(e,3),i=r[2];this.geodeticSurfaceNormalCartographic(e,A),n.copy(this.radiiSquared).scale(A);var o=Math.sqrt(A.dot(n));return n.scale(1/o),A.scale(i),n.add(A),n.to(t)}},{key:"cartesianToCartographic",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0];Nt.from(e);var A=this.scaleToGeodeticSurface(Nt,kt);if(A){var n=this.geodeticSurfaceNormal(A,Dt),r=xt;r.copy(Nt).subtract(A);var i=Math.atan2(n.y,n.x),o=Math.asin(n.z),a=Math.sign(be.d(r,Nt))*be.g(r);return ft([i,o,a],t)}}},{key:"eastNorthUpToFixedFrame",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new ct;return St(this,"east","north","up",e,t)}},{key:"localFrameToFixedFrame",value:function(e,t,A,n){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new ct;return St(this,e,t,A,n,r)}},{key:"geocentricSurfaceNormal",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0];return Rt.from(e).normalize().to(t)}},{key:"geodeticSurfaceNormalCartographic",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0],A=Ct(e),n=A[0],r=A[1],i=Math.cos(r);return Rt.set(i*Math.cos(n),i*Math.sin(n),Math.sin(r)).normalize(),Rt.to(t)}},{key:"geodeticSurfaceNormal",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0];return Rt.from(e).scale(this.oneOverRadiiSquared).normalize().to(t)}},{key:"scaleToGeodeticSurface",value:function(e,t){return function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new tt,n=t.oneOverRadii,r=t.oneOverRadiiSquared,i=t.centerToleranceSquared;dt.from(e);var o=e.x,a=e.y,s=e.z,g=n.x,c=n.y,u=n.z,l=o*o*g*g,I=a*a*c*c,C=s*s*u*u,h=l+I+C,f=Math.sqrt(1/h);if(Number.isFinite(f)){var d=Bt;if(d.copy(e).scale(f),h<i)return d.to(A);var B=r.x,p=r.y,E=r.z,Q=pt;Q.set(d.x*B*2,d.y*p*2,d.z*E*2);var y,v,m,b,w=(1-f)*e.len()/(.5*Q.len()),S=0;do{var F=(y=1/(1+(w-=S)*B))*y,R=(v=1/(1+w*p))*v,D=(m=1/(1+w*E))*m,G=F*y,k=R*v,x=D*m,N=l*G*B+I*k*p+C*x*E,U=-2*N;S=(b=l*F+I*R+C*D-1)/U}while(Math.abs(b)>nt);return dt.scale([y,v,m]).to(A)}}(e,this,t)}},{key:"scaleToGeocentricSurface",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0];kt.from(e);var A=kt.x,n=kt.y,r=kt.z,i=this.oneOverRadiiSquared,o=1/Math.sqrt(A*A*i.x+n*n*i.y+r*r*i.z);return kt.multiplyScalar(o).to(t)}},{key:"transformPositionToScaledSpace",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0];return kt.from(e).scale(this.oneOverRadii).to(t)}},{key:"transformPositionFromScaledSpace",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0];return kt.from(e).scale(this.radii).to(t)}},{key:"getSurfaceNormalIntersectionWithZAxis",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[0,0,0];Ue(je(this.radii.x,this.radii.y,rt)),Ue(this.radii.z>0),kt.from(e);var n=kt.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(n)>=this.radii.z-t))return kt.set(0,0,n).to(A)}}]),e}(),_t=A(423),Mt=A(227),Ot=A(76),Lt=A(578),Tt=function e(t,A,r){Object(n.a)(this,e),this.item=t,this.previous=A,this.next=r},Zt=function(){function e(){Object(n.a)(this,e),this.head=null,this.tail=null,this._length=0}return Object(a.a)(e,[{key:"add",value:function(e){var t=new Tt(e,this.tail,null);return this.tail?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t}},{key:"remove",value:function(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}},{key:"splice",value:function(e,t){e!==t&&(this.remove(t),this._insert(e,t))}},{key:"_insert",value:function(e,t){var A=e.next;e.next=t,this.tail===e?this.tail=t:A.previous=t,t.next=A,t.previous=e,++this._length}},{key:"length",get:function(){return this._length}}]),e}();function Ht(e){return void 0!==e&&null!==e}var Yt=function(){function e(){Object(n.a)(this,e),Ae(this,"_list",void 0),Ae(this,"_sentinel",void 0),Ae(this,"_trimTiles",void 0),this._list=new Zt,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}return Object(a.a)(e,[{key:"reset",value:function(){this._list.splice(this._list.tail,this._sentinel)}},{key:"touch",value:function(e){var t=e._cacheNode;Ht(t)&&this._list.splice(this._sentinel,t)}},{key:"add",value:function(e,t,A){Ht(t._cacheNode)||(t._cacheNode=this._list.add(t),A&&A(e,t))}},{key:"unloadTile",value:function(e,t,A){var n=t._cacheNode;Ht(n)&&(this._list.remove(n),t._cacheNode=void 0,A&&A(e,t))}},{key:"unloadTiles",value:function(e,t){var A=this._trimTiles;this._trimTiles=!1;for(var n=this._list,r=1024*e.maximumMemoryUsage*1024,i=this._sentinel,o=n.head;o!==i&&(e.gpuMemoryUsageInBytes>r||A);){var a=o.item;o=o.next,this.unloadTile(e,a,t)}}},{key:"trim",value:function(){this._trimTiles=!0}}]),e}();var Jt=A(81),jt=new Ne,Pt=new Ne,Vt=new Jt.c([new Jt.e,new Jt.e,new Jt.e,new Jt.e,new Jt.e,new Jt.e]);function Kt(e,t){var A=e.cameraDirection,n=e.cameraUp,r=e.height,i=e.distanceScales.metersPerUnit,o=[e.longitude,e.latitude,0],a=Ut.WGS84.cartographicToCartesian(o,new Ne),s=Ut.WGS84.eastNorthUpToFixedFrame(a),g=e.unprojectPosition(e.cameraPosition),c=Ut.WGS84.cartographicToCartesian(g,new Ne),u=new Ne(s.transformAsVector(new Ne(A).scale(i))).normalize(),l=new Ne(s.transformAsVector(new Ne(n).scale(i))).normalize();return function(e,t){var A=e.getFrustumPlanes(),n=0;for(var r in A){var i=A[r],o=i.normal.dot(e.center);Pt.copy(i.normal).scale(i.distance-o).add(e.center);var a=e.unprojectPosition(Pt),s=Ut.WGS84.cartographicToCartesian(a,new Ne);Vt.planes[n++].fromPointNormal(s,jt.copy(t).subtract(s))}}(e,a),{camera:{position:c,direction:u,up:l},viewport:e,height:r,cullingVolume:Vt,frameNumber:t,sseDenominator:1.15}}var Wt=new Ne;function Xt(e){var t=e.halfAxes,A=e.radius,n=e.width,r=e.height;if(t){var i=function(e){e.getColumn(0,Wt);var t=e.getColumn(1),A=e.getColumn(2);return Wt.add(t).add(A).len()}(t);return Math.log2(6356752.314245179/i)}return A?Math.log2(6356752.314245179/A):r&&n?(Math.log2(6378137/n)+Math.log2(6378137/r))/2:1}var qt=A(2),zt=0,$t=1,eA=3,tA=4,AA=5,nA=1,rA=2,iA="empty",oA="scenegraph",aA="pointcloud",sA="mesh",gA="I3S",cA="TILES3D",uA="geometricError",lA=1,IA=A(34),CA=[0,0,0,1],hA=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return Object(n.a)(this,A),e=t.call(this,-0,-0,-0,-0),Array.isArray(r)&&1===arguments.length?e.copy(r):e.set(r,i,o,a),e}return Object(a.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}},{key:"set",value:function(e,t,A,n){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this.check()}},{key:"fromMatrix3",value:function(e){return IA.e(this,e),this.check()}},{key:"identity",value:function(){return IA.f(this),this.check()}},{key:"fromAxisRotation",value:function(e,t){return IA.p(this,e,t),this.check()}},{key:"setAxisAngle",value:function(e,t){return this.fromAxisRotation(e,t)}},{key:"len",value:function(){return IA.h(this)}},{key:"lengthSquared",value:function(){return IA.r(this)}},{key:"dot",value:function(e,t){if(void 0!==t)throw new Error("Quaternion.dot only takes one argument");return IA.d(this,e)}},{key:"rotationTo",value:function(e,t){return IA.n(this,e,t),this.check()}},{key:"add",value:function(e,t){if(void 0!==t)throw new Error("Quaternion.add only takes one argument");return IA.a(this,this,e),this.check()}},{key:"calculateW",value:function(){return IA.b(this,this),this.check()}},{key:"conjugate",value:function(){return IA.c(this,this),this.check()}},{key:"invert",value:function(){return IA.g(this,this),this.check()}},{key:"lerp",value:function(e,t,A){return IA.i(this,e,t,A),this.check()}},{key:"multiplyRight",value:function(e,t){return re(!t),IA.j(this,this,e),this.check()}},{key:"multiplyLeft",value:function(e,t){return re(!t),IA.j(this,e,this),this.check()}},{key:"normalize",value:function(){var e=this.len(),t=e>0?1/e:0;return this[0]=this[0]*t,this[1]=this[1]*t,this[2]=this[2]*t,this[3]=this[3]*t,0===e&&(this[3]=1),this.check()}},{key:"rotateX",value:function(e){return IA.k(this,this,e),this.check()}},{key:"rotateY",value:function(e){return IA.l(this,this,e),this.check()}},{key:"rotateZ",value:function(e){return IA.m(this,this,e),this.check()}},{key:"scale",value:function(e){return IA.o(this,this,e),this.check()}},{key:"slerp",value:function(e,t,A){switch(arguments.length){case 1:var n=arguments[0],r=n.start;e=void 0===r?CA:r,t=n.target,A=n.ratio;break;case 2:var i=Array.prototype.slice.call(arguments);t=i[0],A=i[1],e=this}return IA.q(this,e,t,A),this.check()}},{key:"transformVector4",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return we.o(t,e,this),de(t,4)}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"setFromAxisAngle",value:function(e,t){return this.setAxisAngle(e,t)}},{key:"premultiply",value:function(e,t){return this.multiplyLeft(e,t)}},{key:"multiply",value:function(e,t){return this.multiplyRight(e,t)}},{key:"ELEMENTS",get:function(){return 4}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=fe(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=fe(e)}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=fe(e)}},{key:"w",get:function(){return this[3]},set:function(e){this[3]=fe(e)}}]),A}(Ee),fA=A(58),dA=Object.freeze([1,0,0,0,1,0,0,0,1]),BA=Object.freeze([0,0,0,0,0,0,0,0,0]),pA=Object.freeze({COL0ROW0:0,COL0ROW1:1,COL0ROW2:2,COL1ROW0:3,COL1ROW1:4,COL1ROW2:5,COL2ROW0:6,COL2ROW1:7,COL2ROW2:8}),EA={},QA=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(e){var r;return Object(n.a)(this,A),r=t.call(this,-0,-0,-0,-0,-0,-0,-0,-0,-0),1===arguments.length&&Array.isArray(e)?r.copy(e):r.identity(),r}return Object(a.a)(A,[{key:"ELEMENTS",get:function(){return 9}},{key:"RANK",get:function(){return 3}},{key:"INDICES",get:function(){return pA}}],[{key:"IDENTITY",get:function(){return EA.IDENTITY=EA.IDENTITY||Object.freeze(new A(dA)),EA.IDENTITY}},{key:"ZERO",get:function(){return EA.ZERO=EA.ZERO||Object.freeze(new A(BA)),EA.ZERO}}]),Object(a.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}},{key:"set",value:function(e,t,A,n,r,i,o,a,s){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this[4]=r,this[5]=i,this[6]=o,this[7]=a,this[8]=s,this.check()}},{key:"setRowMajor",value:function(e,t,A,n,r,i,o,a,s){return this[0]=e,this[1]=n,this[2]=o,this[3]=t,this[4]=r,this[5]=a,this[6]=A,this[7]=i,this[8]=s,this.check()}},{key:"determinant",value:function(){return fA.b(this)}},{key:"identity",value:function(){return this.copy(dA)}},{key:"fromQuaternion",value:function(e){return fA.c(this,e),this.check()}},{key:"transpose",value:function(){return fA.i(this,this),this.check()}},{key:"invert",value:function(){return fA.d(this,this),this.check()}},{key:"multiplyLeft",value:function(e){return fA.e(this,e,this),this.check()}},{key:"multiplyRight",value:function(e){return fA.e(this,this,e),this.check()}},{key:"rotate",value:function(e){return fA.f(this,this,e),this.check()}},{key:"scale",value:function(e){return Array.isArray(e)?fA.g(this,this,e):fA.g(this,this,[e,e,e]),this.check()}},{key:"translate",value:function(e){return fA.h(this,this,e),this.check()}},{key:"transform",value:function(e,t){switch(e.length){case 2:t=me.e(t||[-0,-0],e,this);break;case 3:t=be.o(t||[-0,-0,-0],e,this);break;case 4:t=function(e,t,A){var n=t[0],r=t[1],i=t[2];return e[0]=A[0]*n+A[3]*r+A[6]*i,e[1]=A[1]*n+A[4]*r+A[7]*i,e[2]=A[2]*n+A[5]*r+A[8]*i,e[3]=t[3],e}(t||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return de(t,e.length),t}},{key:"transformVector",value:function(e,t){return pe("Matrix3.transformVector"),this.transform(e,t)}},{key:"transformVector2",value:function(e,t){return pe("Matrix3.transformVector"),this.transform(e,t)}},{key:"transformVector3",value:function(e,t){return pe("Matrix3.transformVector"),this.transform(e,t)}}]),A}(Qe);function yA(e){return void 0!==e&&null!==e}var vA=new Ne,mA=new Ne,bA=new Ne;function wA(e,t,A){if(Object(Mt.a)(e,"3D Tile: boundingVolume must be defined"),e.box)return function(e,t,A){var n=new Ne(e[0],e[1],e[2]);t.transform(n,n);var r=[];if(10===e.length){var i=e.slice(3,6),o=new hA;o.fromArray(e,6);var a=new Ne([1,0,0]),s=new Ne([0,1,0]),g=new Ne([0,0,1]);a.transformByQuaternion(o),a.scale(i[0]),s.transformByQuaternion(o),s.scale(i[1]),g.transformByQuaternion(o),g.scale(i[2]),r=[].concat(Object(ne.a)(a.toArray()),Object(ne.a)(s.toArray()),Object(ne.a)(g.toArray()))}else r=[].concat(Object(ne.a)(e.slice(3,6)),Object(ne.a)(e.slice(6,9)),Object(ne.a)(e.slice(9,12)));var c=t.transformAsVector(r.slice(0,3)),u=t.transformAsVector(r.slice(3,6)),l=t.transformAsVector(r.slice(6,9)),I=new QA([c[0],c[1],c[2],u[0],u[1],u[2],l[0],l[1],l[2]]);if(yA(A))return A.center=n,A.halfAxes=I,A;return new Jt.d(n,I)}(e.box,t,A);if(e.region){var n=Object(u.a)(e.region,6),r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],g=n[5],c=Ut.WGS84.cartographicToCartesian([Ie(r),Ie(a),s],mA),l=Ut.WGS84.cartographicToCartesian([Ie(o),Ie(i),g],bA),I=(new Ne).addVectors(c,l).multiplyScalar(.5),C=(new Ne).subVectors(c,l).len()/2;return SA([I[0],I[1],I[2],C],new Ge)}if(e.sphere)return SA(e.sphere,t,A);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function SA(e,t,A){var n=new Ne(e[0],e[1],e[2]);t.transform(n,n);var r=t.getScale(vA),i=Math.max(Math.max(r[0],r[1]),r[2]),o=e[3]*i;return yA(A)?(A.center=n,A.radius=o,A):new Jt.b(n,o)}new Ne,new Ne,new Ge,new Ne,new Ne,new Ne;function FA(e,t){if(e.dynamicScreenSpaceError&&e.dynamicScreenSpaceErrorComputedDensity){var A=e.dynamicScreenSpaceErrorComputedDensity,n=e.dynamicScreenSpaceErrorFactor;return function(e,t){var A=e*t;return 1-Math.exp(-A*A)}(t,A)*n}return 0}var RA=Math.PI/2;function DA(e){var t=Object(u.a)(e,3),A=t[0],n=t[1],r=t[2],i=le(A),o=le(n),a=1+r/6378137,s=a*Math.cos(o);return[A=s*Math.cos(i),n=s*Math.sin(i),r=a*Math.sin(o)]}function GA(e,t){var A=Object(u.a)(e,3),n=A[0],r=A[1],i=A[2],o=void 0===i?0:i,a=Object(u.a)(t,3),s=a[0],g=a[1],c=a[2],l=DA([s,g,void 0===c?0:c]),I=DA([n,r,o]),C=I[0]-l[0],h=I[1]-l[1],f=I[2]-l[2];return C*C+h*h+f*f}function kA(e,t){var A=t.viewport,n=e.header.mbs[1],r=[e.header.mbs[0],n,e.header.mbs[2]],i=e.header.mbs[3]/6378137,o=GA(A.unprojectPosition(A.cameraPosition),r)-i*i;return o<=0?170141175e30:function(e){return e.viewport.projectionMatrix[5]}(t)*i/Math.sqrt(o)*300}var xA=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;Object(n.a)(this,e),this._array=new Array(t),this._map=new Map,this._length=t}return Object(a.a)(e,[{key:"get",value:function(e){return Object(Mt.a)(e<this._array.length),this._array[e]}},{key:"set",value:function(e,t){Object(Mt.a)(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=t,this._map.set(t,e)}},{key:"delete",value:function(e){var t=this._map.get(e);t>=0&&(this._array.splice(t,1),this._map.delete(e),this.length--)}},{key:"peek",value:function(){return this._array[this._length-1]}},{key:"push",value:function(e){if(!this._map.has(e)){var t=this.length++;this._array[t]=e,this._map.set(e,t)}}},{key:"pop",value:function(){var e=this._array[--this.length];return this._map.delete(e),e}},{key:"reserve",value:function(e){Object(Mt.a)(e>=0),e>this._array.length&&(this._array.length=e)}},{key:"resize",value:function(e){Object(Mt.a)(e>=0),this.length=e}},{key:"trim",value:function(e){null!==e&&void 0!==e||(e=this.length),this._array.length=e}},{key:"reset",value:function(){this._array=[],this._map=new Map,this._length=0}},{key:"find",value:function(e){return this._map.has(e)}},{key:"length",get:function(){return this._length},set:function(e){this._length=e,e>this._array.length&&(this._array.length=e)}},{key:"values",get:function(){return this._array}}]),e}(),NA={loadSiblings:!1,skipLevelOfDetail:!1,maximumScreenSpaceError:2,updateTransforms:!0,onTraversalEnd:function(){},viewportTraversersMap:{},basePath:""},UA=function(){function e(t){Object(n.a)(this,e),Ae(this,"options",void 0),Ae(this,"root",void 0),Ae(this,"requestedTiles",void 0),Ae(this,"selectedTiles",void 0),Ae(this,"emptyTiles",void 0),Ae(this,"_traversalStack",void 0),Ae(this,"_emptyTraversalStack",void 0),Ae(this,"_frameNumber",void 0),this.options=Object(s.a)({},NA,{},t),this._traversalStack=new xA,this._emptyTraversalStack=new xA,this._frameNumber=null,this.root=null,this.selectedTiles={},this.requestedTiles={},this.emptyTiles={}}return Object(a.a)(e,[{key:"traverse",value:function(e,t,A){this.root=e,this.options=Object(s.a)({},this.options,{},A),this.reset(),this.updateTile(e,t),this._frameNumber=t.frameNumber,this.executeTraversal(e,t)}},{key:"reset",value:function(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}},{key:"executeTraversal",value:function(e,t){var A=this._traversalStack;for(e._selectionDepth=1,A.push(e);A.length>0;){var n=A.pop(),r=!1;this.canTraverse(n,t)&&(this.updateChildTiles(n,t),r=this.updateAndPushChildren(n,t,A,n.hasRenderContent?n._selectionDepth+1:n._selectionDepth));var i=n.parent,o=Boolean(!i||i._shouldRefine),a=!r;n.hasRenderContent?n.refine===nA?(this.loadTile(n,t),this.selectTile(n,t)):n.refine===rA&&(this.loadTile(n,t),a&&this.selectTile(n,t)):(this.emptyTiles[n.id]=n,this.loadTile(n,t),a&&this.selectTile(n,t)),this.touchTile(n,t),n._shouldRefine=r&&o}this.options.onTraversalEnd(t)}},{key:"updateChildTiles",value:function(e,t){var A,n=e.children,r=Object(R.a)(n);try{for(r.s();!(A=r.n()).done;){var i=A.value;this.updateTile(i,t)}}catch(o){r.e(o)}finally{r.f()}return!0}},{key:"updateAndPushChildren",value:function(e,t,A,n){var r=this.options,i=r.loadSiblings,o=r.skipLevelOfDetail,a=e.children;a.sort(this.compareDistanceToCamera.bind(this));var s,g=e.refine===rA&&e.hasRenderContent&&!o,c=!1,u=!0,l=Object(R.a)(a);try{for(l.s();!(s=l.n()).done;){var I=s.value;if(I._selectionDepth=n,I.isVisibleAndInRequestVolume?(A.find(I)&&A.delete(I),A.push(I),c=!0):(g||i)&&(this.loadTile(I,t),this.touchTile(I,t)),g){var C=void 0;if(C=!!I._inRequestVolume&&(I.hasRenderContent?I.contentAvailable:this.executeEmptyTraversal(I,t)),!(u=u&&C))return!1}}}catch(h){l.e(h)}finally{l.f()}return c||(u=!1),u}},{key:"updateTile",value:function(e,t){this.updateTileVisibility(e,t)}},{key:"selectTile",value:function(e,t){this.shouldSelectTile(e)&&(e._selectedFrame=t.frameNumber,this.selectedTiles[e.id]=e)}},{key:"loadTile",value:function(e,t){this.shouldLoadTile(e)&&(e._requestedFrame=t.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}},{key:"touchTile",value:function(e,t){e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber}},{key:"canTraverse",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return!!e.hasChildren&&(e.hasTilesetContent?!e.contentExpired:!(!n&&!e.isVisibleAndInRequestVolume)&&this.shouldRefine(e,t,A))}},{key:"shouldLoadTile",value:function(e){return e.hasUnloadedContent||e.contentExpired}},{key:"shouldSelectTile",value:function(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}},{key:"shouldRefine",value:function(e,t,A){var n=e._screenSpaceError;return A&&(n=e.getScreenSpaceError(t,!0)),n>this.options.maximumScreenSpaceError}},{key:"updateTileVisibility",value:function(e,t){var A=[];if(this.options.viewportTraversersMap)for(var n in this.options.viewportTraversersMap){this.options.viewportTraversersMap[n]===t.viewport.id&&A.push(n)}else A.push(t.viewport.id);e.updateVisibility(t,A)}},{key:"compareDistanceToCamera",value:function(e,t){return e._distanceToCamera-t._distanceToCamera}},{key:"anyChildrenVisible",value:function(e,t){var A,n=!1,r=Object(R.a)(e.children);try{for(r.s();!(A=r.n()).done;){var i=A.value;i.updateVisibility(t),n=n||i.isVisibleAndInRequestVolume}}catch(o){r.e(o)}finally{r.f()}return n}},{key:"executeEmptyTraversal",value:function(e,t){var A=!0,n=this._emptyTraversalStack;for(n.push(e);n.length>0&&A;){var r=n.pop();if(this.updateTile(r,t),r.isVisibleAndInRequestVolume||this.loadTile(r,t),this.touchTile(r,t),!r.hasRenderContent&&this.canTraverse(r,t,!1,!0)){var i,o=r.children,a=Object(R.a)(o);try{for(a.s();!(i=a.n()).done;){var s=i.value;n.find(s)&&n.delete(s),n.push(s)}}catch(g){a.e(g)}finally{a.f()}}else r.contentAvailable||(A=!1)}return A}}]),e}(),_A=new Ne;var MA=function(){function e(t,A,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object(n.a)(this,e),Ae(this,"tileset",void 0),Ae(this,"header",void 0),Ae(this,"id",void 0),Ae(this,"url",void 0),Ae(this,"parent",void 0),Ae(this,"refine",void 0),Ae(this,"type",void 0),Ae(this,"contentUrl",void 0),Ae(this,"lodMetricType",void 0),Ae(this,"lodMetricValue",void 0),Ae(this,"boundingVolume",void 0),Ae(this,"content",void 0),Ae(this,"contentState",void 0),Ae(this,"gpuMemoryUsageInBytes",void 0),Ae(this,"children",void 0),Ae(this,"depth",void 0),Ae(this,"viewportIds",void 0),Ae(this,"transform",void 0),Ae(this,"userData",void 0),Ae(this,"computedTransform",void 0),Ae(this,"hasEmptyContent",void 0),Ae(this,"hasTilesetContent",void 0),Ae(this,"traverser",void 0),Ae(this,"_cacheNode",void 0),Ae(this,"_frameNumber",void 0),Ae(this,"_lodJudge",void 0),Ae(this,"_expireDate",void 0),Ae(this,"_expiredContent",void 0),Ae(this,"_shouldRefine",void 0),Ae(this,"_distanceToCamera",void 0),Ae(this,"_centerZDepth",void 0),Ae(this,"_screenSpaceError",void 0),Ae(this,"_visibilityPlaneMask",void 0),Ae(this,"_visible",void 0),Ae(this,"_inRequestVolume",void 0),Ae(this,"_stackLength",void 0),Ae(this,"_selectionDepth",void 0),Ae(this,"_touchedFrame",void 0),Ae(this,"_visitedFrame",void 0),Ae(this,"_selectedFrame",void 0),Ae(this,"_requestedFrame",void 0),Ae(this,"_priority",void 0),Ae(this,"_contentBoundingVolume",void 0),Ae(this,"_viewerRequestVolume",void 0),Ae(this,"_initialTransform",void 0),this.header=A,this.tileset=t,this.id=i||A.id,this.url=A.url,this.parent=r,this.refine=this._getRefine(A.refine),this.type=A.type,this.contentUrl=A.contentUrl,this.lodMetricType="geometricError",this.lodMetricValue=0,this.boundingVolume=null,this.content=null,this.contentState=zt,this.gpuMemoryUsageInBytes=0,this.children=[],this.hasEmptyContent=!1,this.hasTilesetContent=!1,this.depth=0,this.viewportIds=[],this.userData={},this._priority=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._screenSpaceError=0,this._cacheNode=null,this._frameNumber=null,this._cacheNode=null,this.traverser=new UA({}),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._initialTransform=new Ge,this.transform=new Ge,this._initializeLodMetric(A),this._initializeTransforms(A),this._initializeBoundingVolumes(A),this._initializeContent(A),this._initializeRenderingState(A),this._lodJudge=null,this._expireDate=null,this._expiredContent=null,Object.seal(this)}return Object(a.a)(e,[{key:"destroy",value:function(){this.header=null}},{key:"isDestroyed",value:function(){return null===this.header}},{key:"getScreenSpaceError",value:function(e,t){switch(this.tileset.type){case gA:return kA(this,e);case cA:return function(e,t,A){var n=e.tileset,r=e.parent&&e.parent.lodMetricValue||e.lodMetricValue,i=A?r:e.lodMetricValue;if(0===i)return 0;var o=Math.max(e._distanceToCamera,1e-7),a=t.height,s=t.sseDenominator,g=i*a*(n.options.viewDistanceScale||1)/(o*s);return g-=FA(n,o)}(this,e,t);default:throw new Error("Unsupported tileset type")}}},{key:"_getPriority",value:function(){var e=this.tileset._traverser,t=e.options.skipLevelOfDetail,A=this.refine===nA||t;if(A&&!this.isVisible&&void 0!==this._visible)return-1;if(this.tileset._frameNumber-this._touchedFrame>=1)return-1;if(this.contentState===zt)return-1;var n=this.parent,r=n&&(!A||0===this._screenSpaceError||n.hasTilesetContent)?n._screenSpaceError:this._screenSpaceError,i=e.root?e.root._screenSpaceError:0;return Math.max(i-r,0)}},{key:"loadContent",value:function(){var e=Object(J.a)(Y.a.mark((function e(){var t,A,n,r;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.hasEmptyContent){e.next=2;break}return e.abrupt("return",!1);case 2:if(!this.content){e.next=4;break}return e.abrupt("return",!0);case 4:return this.contentExpired&&(this._expireDate=null),this.contentState=$t,e.next=9,this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));case 9:if(t=e.sent){e.next=13;break}return this.contentState=zt,e.abrupt("return",!1);case 13:return e.prev=13,A=this.tileset.getTileUrl(this.contentUrl),n=this.tileset.loader,r=Object(s.a)({},this.tileset.loadOptions,Object(qt.a)({},n.id,Object(s.a)({},this.tileset.loadOptions[n.id],{isTileset:"json"===this.type},this._getLoaderSpecificOptions(n.id)))),e.next=19,Object(te.a)(A,n,r);case 19:if(this.content=e.sent,!this.tileset.options.contentLoader){e.next=23;break}return e.next=23,this.tileset.options.contentLoader(this);case 23:return this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=eA,this._onContentLoaded(),e.abrupt("return",!0);case 29:throw e.prev=29,e.t0=e.catch(13),this.contentState=AA,e.t0;case 33:return e.prev=33,t.done(),e.finish(33);case 36:case"end":return e.stop()}}),e,this,[[13,29,33,36]])})));return function(){return e.apply(this,arguments)}}()},{key:"unloadContent",value:function(){return this.content&&this.content.destroy&&this.content.destroy(),this.content=null,this.header.content&&this.header.content.destroy&&this.header.content.destroy(),this.header.content=null,this.contentState=zt,!0}},{key:"updateVisibility",value:function(e,t){if(this._frameNumber!==e.frameNumber){var A=this.parent,n=A?A._visibilityPlaneMask:Jt.c.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){var r=A?A.computedTransform:this.tileset.modelMatrix;this._updateTransform(r)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,n),this._visible=this._visibilityPlaneMask!==Jt.c.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=t}}},{key:"visibility",value:function(e,t){var A=e.cullingVolume,n=this.boundingVolume;return A.computeVisibilityWithPlaneMask(n,t)}},{key:"contentVisibility",value:function(){return!0}},{key:"distanceToTile",value:function(e){var t=this.boundingVolume;return Math.sqrt(Math.max(t.distanceSquaredTo(e.camera.position),0))}},{key:"cameraSpaceZDepth",value:function(e){var t=e.camera,A=this.boundingVolume;return _A.subVectors(A.center,t.position),t.direction.dot(_A)}},{key:"insideViewerRequestVolume",value:function(e){var t=this._viewerRequestVolume;return!t||t.distanceSquaredTo(e.camera.position)<=0}},{key:"updateExpiration",value:function(){if(void 0!==(t=this._expireDate)&&null!==t&&this.contentReady&&!this.hasEmptyContent){var e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=tA,this._expiredContent=this.content)}var t}},{key:"_initializeLodMetric",value:function(e){"lodMetricType"in e?this.lodMetricType=e.lodMetricType:(this.lodMetricType=this.parent&&this.parent.lodMetricType||this.tileset.lodMetricType,console.warn("3D Tile: Required prop lodMetricType is undefined. Using parent lodMetricType")),"lodMetricValue"in e?this.lodMetricValue=e.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}},{key:"_initializeTransforms",value:function(e){this.transform=e.transform?new Ge(e.transform):new Ge;var t=this.parent,A=this.tileset,n=t&&t.computedTransform?t.computedTransform.clone():A.modelMatrix.clone();this.computedTransform=new Ge(n).multiplyRight(this.transform);var r=t&&t._initialTransform?t._initialTransform.clone():new Ge;this._initialTransform=new Ge(r).multiplyRight(this.transform)}},{key:"_initializeBoundingVolumes",value:function(e){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(e)}},{key:"_initializeContent",value:function(e){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=zt,this.hasTilesetContent=!1,e.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}},{key:"_initializeRenderingState",value:function(e){this.depth=e.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=Jt.c.MASK_INDETERMINATE,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._frameNumber=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._priority=0}},{key:"_getRefine",value:function(e){return e||this.parent&&this.parent.refine||rA}},{key:"_isTileset",value:function(){return-1!==this.contentUrl.indexOf(".json")}},{key:"_onContentLoaded",value:function(){switch(this.content&&this.content.type){case"vctr":case"geom":this.tileset._traverser.disableSkipLevelOfDetail=!0}this._isTileset()&&(this.hasTilesetContent=!0)}},{key:"_updateBoundingVolume",value:function(e){this.boundingVolume=wA(e.boundingVolume,this.computedTransform,this.boundingVolume);var t=e.content;t&&(t.boundingVolume&&(this._contentBoundingVolume=wA(t.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=wA(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}},{key:"_updateTransform",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Ge,t=e.clone().multiplyRight(this.transform),A=!t.equals(this.computedTransform);A&&(this.computedTransform=t,this._updateBoundingVolume(this.header))}},{key:"_getLoaderSpecificOptions",value:function(e){switch(e){case"i3s":return Object(s.a)({},this.tileset.options.i3s,{tile:this.header,tileset:this.tileset.tileset,isTileHeader:!1});case"3d-tiles":case"cesium-ion":default:return{assetGltfUpAxis:(t=this.tileset.tileset).asset&&t.asset.gltfUpAxis||"Y"}}var t}},{key:"selected",get:function(){return this._selectedFrame===this.tileset._frameNumber}},{key:"isVisible",get:function(){return this._visible}},{key:"isVisibleAndInRequestVolume",get:function(){return this._visible&&this._inRequestVolume}},{key:"hasRenderContent",get:function(){return!this.hasEmptyContent&&!this.hasTilesetContent}},{key:"hasChildren",get:function(){return this.children.length>0||this.header.children&&this.header.children.length>0}},{key:"contentReady",get:function(){return this.contentState===eA||this.hasEmptyContent}},{key:"contentAvailable",get:function(){return Boolean(this.contentReady&&this.hasRenderContent||this._expiredContent&&!this.contentFailed)}},{key:"hasUnloadedContent",get:function(){return this.hasRenderContent&&this.contentUnloaded}},{key:"contentUnloaded",get:function(){return this.contentState===zt}},{key:"contentExpired",get:function(){return this.contentState===tA}},{key:"contentFailed",get:function(){return this.contentState===AA}},{key:"extras",get:function(){return this.header.extras}}]),e}(),OA=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"compareDistanceToCamera",value:function(e,t){return 0===t._distanceToCamera&&0===e._distanceToCamera?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera}},{key:"updateTileVisibility",value:function(e,t){if(Object(S.a)(Object(w.a)(A.prototype),"updateTileVisibility",this).call(this,e,t),e.isVisibleAndInRequestVolume){var n=e.children.length>0;if(e.hasTilesetContent&&n){var r=e.children[0];return this.updateTileVisibility(r,t),void(e._visible=r._visible)}if(this.meetsScreenSpaceErrorEarly(e,t))e._visible=!1;else{var i=e.refine===rA,o=e._optimChildrenWithinParent===lA;i&&o&&n&&!this.anyChildrenVisible(e,t)&&(e._visible=!1)}}}},{key:"meetsScreenSpaceErrorEarly",value:function(e,t){var A=e.parent;return!(!A||A.hasTilesetContent||A.refine!==nA)&&!this.shouldRefine(e,t,!0)}}]),A}(UA),LA=A(24),TA="REQUESTED",ZA="COMPLETED",HA="ERROR",YA=function(){function e(){Object(n.a)(this,e),Ae(this,"_statusMap",void 0),this._statusMap={}}return Object(a.a)(e,[{key:"add",value:function(e,t,A,n){var r=this;this._statusMap[t]||(this._statusMap[t]={request:e,callback:A,key:t,frameState:n,status:TA},e().then((function(e){r._statusMap[t].status=ZA,r._statusMap[t].callback(e,n)})).catch((function(e){r._statusMap[t].status=HA,A(e)})))}},{key:"update",value:function(e,t){this._statusMap[e]&&(this._statusMap[e].frameState=t)}},{key:"find",value:function(e){return this._statusMap[e]}}]),e}(),JA=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(e){var r;return Object(n.a)(this,A),r=t.call(this,e),Ae(Object(LA.a)(r),"_tileManager",void 0),r._tileManager=new YA,r}return Object(a.a)(A,[{key:"shouldRefine",value:function(e,t){return e._lodJudge=function(e,t){var A=t.viewport,n=A.metersPerPixel,r=e.header.mbs[1],i=e.header.mbs[0],o=e.header.mbs[2],a=e.header.mbs[3],s=A.height,g=A.width,c=A.latitude,u=A.longitude,l=[u,c],I=[i,r,o],C=[u,r],h=[i,c],f=Math.sqrt(s*s+g*g)*n[0],d=.5*s+a/6378137,B=.5*g+a/6378137;if(GA(l,I)>f+a/6378137)return"OUT";if(GA(l,C)>d)return"OUT";if(GA(l,h)>B)return"OUT";if(0===e.lodMetricValue)return"DIG";var p=kA(e,t);return(p*=RA)<.5?"OUT":!e.header.children||p<=e.lodMetricValue?"DRAW":e.header.children?"DIG":"OUT"}(e,t),"DIG"===e._lodJudge}},{key:"updateChildTiles",value:function(e,t){var A,n=this,r=e.header.children||[],i=e.children,o=e.tileset,a=Object(R.a)(r);try{var s=function(){var r=A.value,a="".concat(r.id,"-").concat(t.viewport.id),s=i&&i.find((function(e){return e.id===a}));if(s)s&&n.updateTile(s,t);else{var g=function(){return n._loadTile(r.id,o)};n._tileManager.find(a)?n._tileManager.update(a,t):(o.tileset.nodePages&&(g=function(){return o.tileset.nodePagesTile.formTileFromNodePages(r.id)}),n._tileManager.add(g,a,(function(t){return n._onTileLoad(t,e,a)}),t))}};for(a.s();!(A=a.n()).done;)s()}catch(g){a.e(g)}finally{a.f()}return!1}},{key:"_loadTile",value:function(){var e=Object(J.a)(Y.a.mark((function e(t,A){var n,r,i;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=A.loader,r=A.getTileUrl("".concat(A.url,"/nodes/").concat(t)),i=Object(s.a)({},A.loadOptions,{i3s:Object(s.a)({},A.loadOptions.i3s,{isTileHeader:!0,loadContent:!1})}),e.next=5,Object(te.a)(r,n,i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})));return function(t,A){return e.apply(this,arguments)}}()},{key:"_onTileLoad",value:function(e,t,A){var n=new MA(t.tileset,e,t,A);t.children.push(n);var r=this._tileManager.find(n.id).frameState;this.updateTile(n,r),this._frameNumber===r.frameNumber&&this.executeTraversal(n,r)}}]),A}(UA),jA={description:"",ellipsoid:Ut.WGS84,modelMatrix:new Ge,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,onTileLoad:function(){},onTileUnload:function(){},onTileError:function(){},onTraversalComplete:function(e){return e},contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},PA=function(){function e(t,A){Object(n.a)(this,e),Ae(this,"options",void 0),Ae(this,"loadOptions",void 0),Ae(this,"type",void 0),Ae(this,"tileset",void 0),Ae(this,"loader",void 0),Ae(this,"url",void 0),Ae(this,"basePath",void 0),Ae(this,"modelMatrix",void 0),Ae(this,"ellipsoid",void 0),Ae(this,"lodMetricType",void 0),Ae(this,"lodMetricValue",void 0),Ae(this,"refine",void 0),Ae(this,"root",void 0),Ae(this,"roots",void 0),Ae(this,"asset",void 0),Ae(this,"description",void 0),Ae(this,"properties",void 0),Ae(this,"extras",void 0),Ae(this,"attributions",void 0),Ae(this,"credits",void 0),Ae(this,"stats",void 0),Ae(this,"traverseCounter",void 0),Ae(this,"geometricError",void 0),Ae(this,"selectedTiles",void 0),Ae(this,"cartographicCenter",void 0),Ae(this,"cartesianCenter",void 0),Ae(this,"zoom",void 0),Ae(this,"boundingVolume",void 0),Ae(this,"gpuMemoryUsageInBytes",void 0),Ae(this,"dynamicScreenSpaceErrorComputedDensity",void 0),Ae(this,"_traverser",void 0),Ae(this,"_cache",void 0),Ae(this,"_requestScheduler",void 0),Ae(this,"_frameNumber",void 0),Ae(this,"_queryParamsString",void 0),Ae(this,"_queryParams",void 0),Ae(this,"_extensionsUsed",void 0),Ae(this,"_tiles",void 0),Ae(this,"_pendingCount",void 0),Ae(this,"lastUpdatedVieports",void 0),Ae(this,"_requestedTiles",void 0),Ae(this,"_emptyTiles",void 0),Ae(this,"frameStateData",void 0),Ae(this,"maximumMemoryUsage",void 0),Object(Mt.a)(t),this.options=Object(s.a)({},jA,{},A),this.tileset=t,this.loader=t.loader,this.type=t.type,this.url=t.url,this.basePath=t.basePath||Ot.a.dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=t.lodMetricType,this.lodMetricValue=t.lodMetricValue,this.refine=t.root.refine,this.loadOptions=this.options.loadOptions||{},this.root=null,this.roots={},this.cartographicCenter=null,this.cartesianCenter=null,this.zoom=1,this.boundingVolume=null,this.traverseCounter=0,this.geometricError=0,this._traverser=this._initializeTraverser(),this._cache=new Yt,this._requestScheduler=new Lt.a({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this._frameNumber=0,this._pendingCount=0,this._tiles={},this.selectedTiles=[],this._emptyTiles=[],this._requestedTiles=[],this.frameStateData={},this.lastUpdatedVieports=null,this._queryParams={},this._queryParamsString="",this.maximumMemoryUsage=this.options.maximumMemoryUsage||32,this.gpuMemoryUsageInBytes=0,this.stats=new _t.a({id:this.url}),this._initializeStats(),this._extensionsUsed=void 0,this.dynamicScreenSpaceErrorComputedDensity=0,this.extras=null,this.asset={},this.credits={},this.description=this.options.description||"",this._initializeTileSet(t)}return Object(a.a)(e,[{key:"destroy",value:function(){this._destroy()}},{key:"isLoaded",value:function(){return 0===this._pendingCount&&0!==this._frameNumber}},{key:"setProps",value:function(e){this.options=Object(s.a)({},this.options,{},e)}},{key:"setOptions",value:function(e){this.options=Object(s.a)({},this.options,{},e)}},{key:"getTileUrl",value:function(e){return e.startsWith("data:")?e:"".concat(e).concat(this.queryParams)}},{key:"hasExtension",value:function(e){return Boolean(this._extensionsUsed&&this._extensionsUsed.indexOf(e)>-1)}},{key:"update",value:function(e){if((!("loadTiles"in this.options)||this.options.loadTiles)&&!(this.traverseCounter>0)){!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e instanceof Array||(e=[e]),this._cache.reset(),this._frameNumber++,this.traverseCounter=e.length;var t,A=[],n=Object(R.a)(e);try{for(n.s();!(t=n.n()).done;){var r=t.value.id;this._needTraverse(r)?A.push(r):this.traverseCounter--}}catch(c){n.e(c)}finally{n.f()}var i,o=Object(R.a)(e);try{for(o.s();!(i=o.n()).done;){var a=i.value,s=a.id;if(this.roots[s]||(this.roots[s]=this._initializeTileHeaders(this.tileset,null)),A.includes(s)){var g=Kt(a,this._frameNumber);this._traverser.traverse(this.roots[s],g,this.options)}}}catch(c){o.e(c)}finally{o.f()}}}},{key:"_needTraverse",value:function(e){var t=e;return this.options.viewportTraversersMap&&(t=this.options.viewportTraversersMap[e]),t===e}},{key:"_onTraversalEnd",value:function(e){var t=e.viewport.id;this.frameStateData[t]||(this.frameStateData[t]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});var A=this.frameStateData[t],n=Object.values(this._traverser.selectedTiles);A.selectedTiles=n,A._requestedTiles=Object.values(this._traverser.requestedTiles),A._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,this.traverseCounter>0||this._updateTiles()}},{key:"_updateTiles",value:function(){for(var e in this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[],this.frameStateData){var t=this.frameStateData[e];this.selectedTiles=this.selectedTiles.concat(t.selectedTiles),this._requestedTiles=this._requestedTiles.concat(t._requestedTiles),this._emptyTiles=this._emptyTiles.concat(t._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);var A,n=Object(R.a)(this.selectedTiles);try{for(n.s();!(A=n.n()).done;){var r=A.value;this._tiles[r.id]=r}}catch(i){n.e(i)}finally{n.f()}this._loadTiles(),this._unloadTiles(),this._updateStats()}},{key:"_tilesChanged",value:function(e,t){if(e.length!==t.length)return!0;var A=new Set(e.map((function(e){return e.id}))),n=new Set(t.map((function(e){return e.id}))),r=e.filter((function(e){return!n.has(e.id)})).length>0;return r=r||t.filter((function(e){return!A.has(e.id)})).length>0}},{key:"_loadTiles",value:function(){var e,t=Object(R.a)(this._requestedTiles);try{for(t.s();!(e=t.n()).done;){var A=e.value;A.contentUnloaded&&this._loadTile(A)}}catch(n){t.e(n)}finally{t.f()}}},{key:"_unloadTiles",value:function(){this._cache.unloadTiles(this,(function(e,t){return e._unloadTile(t)}))}},{key:"_updateStats",value:function(){var e,t=0,A=0,n=Object(R.a)(this.selectedTiles);try{for(n.s();!(e=n.n()).done;){var r=e.value;r.contentAvailable&&r.content&&(t++,r.content.pointCount&&(A+=r.content.pointCount))}}catch(i){n.e(i)}finally{n.f()}this.stats.get("Tiles In View").count=this.selectedTiles.length,this.stats.get("Tiles To Render").count=t,this.stats.get("Points").count=A}},{key:"_initializeTileSet",value:function(e){this.root=this._initializeTileHeaders(e,null),this.type===cA&&this._initializeCesiumTileset(e),this.type===gA&&this._initializeI3STileset(),this._calculateViewProps()}},{key:"_calculateViewProps",value:function(){var e=this.root;Object(Mt.a)(e);var t=e.boundingVolume.center;if(!t)return console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new Ne,void(this.zoom=1);this.cartographicCenter=Ut.WGS84.cartesianToCartographic(t,new Ne),this.cartesianCenter=t,this.zoom=Xt(e.boundingVolume)}},{key:"_initializeStats",value:function(){this.stats.get("Tiles In Tileset(s)"),this.stats.get("Tiles Loading"),this.stats.get("Tiles In Memory"),this.stats.get("Tiles In View"),this.stats.get("Tiles To Render"),this.stats.get("Tiles Loaded"),this.stats.get("Tiles Unloaded"),this.stats.get("Failed Tile Loads"),this.stats.get("Points","memory"),this.stats.get("Tile Memory Use","memory")}},{key:"_initializeTileHeaders",value:function(e,t){var A=new MA(this,e.root,t);if(t&&(t.children.push(A),A.depth=t.depth+1),this.type===cA){var n=[];for(n.push(A);n.length>0;){var r=n.pop();this.stats.get("Tiles In Tileset(s)").incrementCount();var i,o=r.header.children||[],a=Object(R.a)(o);try{for(a.s();!(i=a.n()).done;){var s=i.value,g=new MA(this,s,r);r.children.push(g),g.depth=r.depth+1,n.push(g)}}catch(c){a.e(c)}finally{a.f()}}}return A}},{key:"_initializeTraverser",value:function(){var e;switch(this.type){case cA:e=OA;break;case gA:e=JA;break;default:e=UA}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}},{key:"_destroyTileHeaders",value:function(e){this._destroySubtree(e)}},{key:"_loadTile",value:function(){var e=Object(J.a)(Y.a.mark((function e(t){var A;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._onStartTileLoading(),e.next=4,t.loadContent();case 4:A=e.sent,e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),this._onTileLoadError(t,e.t0);case 10:return e.prev=10,this._onEndTileLoading(),this._onTileLoad(t,A),e.finish(10);case 14:case"end":return e.stop()}}),e,this,[[0,7,10,14]])})));return function(t){return e.apply(this,arguments)}}()},{key:"_onTileLoadError",value:function(e,t){this.stats.get("Failed Tile Loads").incrementCount();var A=t.message||t.toString(),n=e.url;console.error("A 3D tile failed to load: ".concat(e.url," ").concat(A)),this.options.onTileError(e,A,n)}},{key:"_onTileLoad",value:function(e,t){t&&(e&&e.content&&function(e,t){Object(Mt.a)(e),Object(Mt.a)(t);var A=t.rtcCenter,n=t.gltfUpAxis,r=e.computedTransform,i=e.boundingVolume.center,o=new Ge(r);switch(A&&o.translate(A),n){case"Z":break;case"Y":var a=(new Ge).rotateX(Math.PI/2);o=o.multiplyRight(a);break;case"X":var s=(new Ge).rotateY(-Math.PI/2);o=o.multiplyRight(s)}t.isQuantized&&o.translate(t.quantizedVolumeOffset).scale(t.quantizedVolumeScale);var g=new Ne(i);t.cartesianModelMatrix=o,t.cartesianOrigin=g;var c=Ut.WGS84.cartesianToCartographic(g,new Ne),u=Ut.WGS84.eastNorthUpToFixedFrame(g).invert();t.cartographicModelMatrix=u.multiplyRight(o),t.cartographicOrigin=c,t.modelMatrix=t.cartographicModelMatrix}(e,e.content),this._addTileToCache(e),this.options.onTileLoad(e))}},{key:"_onStartTileLoading",value:function(){this._pendingCount++,this.stats.get("Tiles Loading").incrementCount()}},{key:"_onEndTileLoading",value:function(){this._pendingCount--,this.stats.get("Tiles Loading").decrementCount()}},{key:"_addTileToCache",value:function(e){this._cache.add(this,e,(function(t){return t._updateCacheStats(e)}))}},{key:"_updateCacheStats",value:function(e){this.stats.get("Tiles Loaded").incrementCount(),this.stats.get("Tiles In Memory").incrementCount(),this.gpuMemoryUsageInBytes+=e.content.byteLength||0,this.stats.get("Tile Memory Use").count=this.gpuMemoryUsageInBytes}},{key:"_unloadTile",value:function(e){this.gpuMemoryUsageInBytes-=e.content&&e.content.byteLength||0,this.stats.get("Tiles In Memory").decrementCount(),this.stats.get("Tiles Unloaded").incrementCount(),this.stats.get("Tile Memory Use").count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}},{key:"_destroy",value:function(){var e=[];for(this.root&&e.push(this.root);e.length>0;){var t,A=e.pop(),n=Object(R.a)(A.children);try{for(n.s();!(t=n.n()).done;){var r=t.value;e.push(r)}}catch(i){n.e(i)}finally{n.f()}this._destroyTile(A)}this.root=null}},{key:"_destroySubtree",value:function(e){var t=e,A=[];for(A.push(t);A.length>0;){e=A.pop();var n,r=Object(R.a)(e.children);try{for(r.s();!(n=r.n()).done;){var i=n.value;A.push(i)}}catch(o){r.e(o)}finally{r.f()}e!==t&&this._destroyTile(e)}t.children=[]}},{key:"_destroyTile",value:function(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}},{key:"_initializeCesiumTileset",value:function(e){if(this.asset=e.asset,!this.asset)throw new Error("Tileset must have an asset property.");if("0.0"!==this.asset.version&&"1.0"!==this.asset.version)throw new Error("The tileset must be 3D Tiles version 0.0 or 1.0.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=e.properties,this.geometricError=e.geometricError,this._extensionsUsed=e.extensionsUsed,this.extras=e.extras}},{key:"_initializeI3STileset",value:function(){this.loadOptions.i3s&&"token"in this.loadOptions.i3s&&(this._queryParams.token=this.loadOptions.i3s.token)}},{key:"tiles",get:function(){return Object.values(this._tiles)}},{key:"frameNumber",get:function(){return this._frameNumber}},{key:"queryParams",get:function(){return this._queryParamsString||(this._queryParamsString=function(e){for(var t=[],A=0,n=Object.keys(e);A<n.length;A++){var r=n[A];t.push("".concat(r,"=").concat(e[r]))}switch(t.length){case 0:return"";case 1:return"?".concat(t[0]);default:return"?".concat(t.join("&"))}}(this._queryParams)),this._queryParamsString}}]),e}();var VA={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect"};Object.keys(VA);function KA(e,t,A){Object(Mt.a)(e instanceof ArrayBuffer);var n=new TextDecoder("utf8"),r=new Uint8Array(e,t,A);return n.decode(r)}function WA(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=new DataView(e);return"".concat(String.fromCharCode(A.getUint8(t+0))).concat(String.fromCharCode(A.getUint8(t+1))).concat(String.fromCharCode(A.getUint8(t+2))).concat(String.fromCharCode(A.getUint8(t+3)))}var XA=A(421),qA={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},zA=Object(s.a)({},{POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},{},qA);function $A(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}Math.PI,Math.PI;var en={};function tn(e){return Math.round(e/en.EPSILON)*en.EPSILON}function An(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.precision,n=void 0===A?en.precision||4:A;return e=tn(e),"".concat(parseFloat(e.toPrecision(n)))}function nn(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function rn(e,t,A){var n=en.EPSILON;A&&(en.EPSILON=A);try{if(e===t)return!0;if(nn(e)&&nn(t)){if(e.length!==t.length)return!1;for(var r=0;r<e.length;++r)if(!rn(e[r],t[r]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):!(!Number.isFinite(e)||!Number.isFinite(t))&&Math.abs(e-t)<=en.EPSILON*Math.max(1,Math.abs(e),Math.abs(t))}finally{en.EPSILON=n}}en.EPSILON=1e-12,en.debug=!1,en.precision=4,en.printTypes=!1,en.printDegrees=!1,en.printRowMajor=!0;var on=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"clone",value:function(){return(new this.constructor).copy(this)}},{key:"from",value:function(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}},{key:"fromArray",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)this[A]=e[A+t];return this.check()}},{key:"to",value:function(e){return e===this?this:nn(e)?this.toArray(e):this.toObject(e)}},{key:"toTarget",value:function(e){return e?this.to(e):this}},{key:"toArray",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)e[t+A]=this[A];return e}},{key:"toFloat32Array",value:function(){return new Float32Array(this)}},{key:"toString",value:function(){return this.formatString(en)}},{key:"formatString",value:function(e){for(var t="",A=0;A<this.ELEMENTS;++A)t+=(A>0?", ":"")+An(this[A],e);return"".concat(e.printTypes?this.constructor.name:"","[").concat(t,"]")}},{key:"equals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(!rn(this[t],e[t]))return!1;return!0}},{key:"exactEquals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(this[t]!==e[t])return!1;return!0}},{key:"negate",value:function(){for(var e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}},{key:"lerp",value:function(e,t,A){void 0===A&&(A=t,t=e,e=this);for(var n=0;n<this.ELEMENTS;++n){var r=e[n];this[n]=r+A*(t[n]-r)}return this.check()}},{key:"min",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.min(e[t],this[t]);return this.check()}},{key:"max",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.max(e[t],this[t]);return this.check()}},{key:"clamp",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e[A]),t[A]);return this.check()}},{key:"add",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]+=i[o];return this.check()}},{key:"subtract",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]-=i[o];return this.check()}},{key:"scale",value:function(e){if(Array.isArray(e))return this.multiply(e);for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"sub",value:function(e){return this.subtract(e)}},{key:"setScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=e;return this.check()}},{key:"addScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]+=e;return this.check()}},{key:"subScalar",value:function(e){return this.addScalar(-e)}},{key:"multiplyScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"divideScalar",value:function(e){return this.scale(1/e)}},{key:"clampScalar",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e),t);return this.check()}},{key:"multiplyByScalar",value:function(e){return this.scale(e)}},{key:"check",value:function(){if(en.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}},{key:"validate",value:function(){for(var e=this.length===this.ELEMENTS,t=0;t<this.ELEMENTS;++t)e=e&&Number.isFinite(this[t]);return e}},{key:"ELEMENTS",get:function(){return $A(!1),0}},{key:"elements",get:function(){return this}}]),A}(function(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}(Array));function an(e,t){if(e.length!==t)return!1;for(var A=0;A<e.length;++A)if(!Number.isFinite(e[A]))return!1;return!0}function sn(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(e));return e}function gn(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(en.debug&&!an(e,t))throw new Error("math.gl: ".concat(A," some fields set to invalid numbers'"));return e}var cn={};function un(e,t){cn[e]||(cn[e]=!0,console.warn("".concat(e," has been removed in version ").concat(t,", see upgrade guide for more information")))}function ln(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[3]*n+A[7]*r+A[11]*i||1;return e[0]=(A[0]*n+A[4]*r+A[8]*i)/o,e[1]=(A[1]*n+A[5]*r+A[9]*i)/o,e[2]=(A[2]*n+A[6]*r+A[10]*i)/o,e}var In,Cn=[0,0,0],hn={},fn=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return Object(n.a)(this,A),e=t.call(this,-0,-0,-0),1===arguments.length&&nn(r)?e.copy(r):(en.debug&&(sn(r),sn(i),sn(o)),e[0]=r,e[1]=i,e[2]=o),e}return Object(a.a)(A,null,[{key:"ZERO",get:function(){return hn.ZERO=hn.ZERO||Object.freeze(new A(0,0,0,0))}}]),Object(a.a)(A,[{key:"set",value:function(e,t,A){return this[0]=e,this[1]=t,this[2]=A,this.check()}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}},{key:"fromObject",value:function(e){return en.debug&&(sn(e.x),sn(e.y),sn(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}},{key:"toObject",value:function(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}},{key:"angle",value:function(e){return be.a(this,e)}},{key:"cross",value:function(e){return be.c(this,this,e),this.check()}},{key:"rotateX",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?Cn:A;return be.j(this,this,n,t),this.check()}},{key:"rotateY",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?Cn:A;return be.k(this,this,n,t),this.check()}},{key:"rotateZ",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?Cn:A;return be.l(this,this,n,t),this.check()}},{key:"transform",value:function(e){return this.transformAsPoint(e)}},{key:"transformAsPoint",value:function(e){return be.p(this,this,e),this.check()}},{key:"transformAsVector",value:function(e){return ln(this,this,e),this.check()}},{key:"transformByMatrix3",value:function(e){return be.o(this,this,e),this.check()}},{key:"transformByMatrix2",value:function(e){return function(e,t,A){var n=t[0],r=t[1];e[0]=A[0]*n+A[2]*r,e[1]=A[1]*n+A[3]*r,e[2]=t[2]}(this,this,e),this.check()}},{key:"transformByQuaternion",value:function(e){return be.q(this,this,e),this.check()}},{key:"ELEMENTS",get:function(){return 3}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=sn(e)}}]),A}(function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"copy",value:function(e){return $A(!1),this}},{key:"len",value:function(){return Math.sqrt(this.lengthSquared())}},{key:"magnitude",value:function(){return this.len()}},{key:"lengthSquared",value:function(){for(var e=0,t=0;t<this.ELEMENTS;++t)e+=this[t]*this[t];return e}},{key:"magnitudeSquared",value:function(){return this.lengthSquared()}},{key:"distance",value:function(e){return Math.sqrt(this.distanceSquared(e))}},{key:"distanceSquared",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A){var n=this[A]-e[A];t+=n*n}return sn(t)}},{key:"dot",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A)t+=this[A]*e[A];return sn(t)}},{key:"normalize",value:function(){var e=this.magnitude();if(0!==e)for(var t=0;t<this.ELEMENTS;++t)this[t]/=e;return this.check()}},{key:"multiply",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]*=i[o];return this.check()}},{key:"divide",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]/=i[o];return this.check()}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"distanceTo",value:function(e){return this.distance(e)}},{key:"distanceToSquared",value:function(e){return this.distanceSquared(e)}},{key:"getComponent",value:function(e){return $A(e>=0&&e<this.ELEMENTS,"index is out of range"),sn(this[e])}},{key:"setComponent",value:function(e,t){return $A(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=t,this.check()}},{key:"addVectors",value:function(e,t){return this.copy(e).add(t)}},{key:"subVectors",value:function(e,t){return this.copy(e).subtract(t)}},{key:"multiplyVectors",value:function(e,t){return this.copy(e).multiply(t)}},{key:"addScaledVector",value:function(e,t){return this.add(new this.constructor(e).multiplyScalar(t))}},{key:"ELEMENTS",get:function(){return $A(!1),0}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=sn(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=sn(e)}}]),A}(on)),dn=(In={},Object(qt.a)(In,qA.DOUBLE,Float64Array),Object(qt.a)(In,qA.FLOAT,Float32Array),Object(qt.a)(In,qA.UNSIGNED_SHORT,Uint16Array),Object(qt.a)(In,qA.UNSIGNED_INT,Uint32Array),Object(qt.a)(In,qA.UNSIGNED_BYTE,Uint8Array),Object(qt.a)(In,qA.BYTE,Int8Array),Object(qt.a)(In,qA.SHORT,Int16Array),Object(qt.a)(In,qA.INT,Int32Array),In),Bn={DOUBLE:qA.DOUBLE,FLOAT:qA.FLOAT,UNSIGNED_SHORT:qA.UNSIGNED_SHORT,UNSIGNED_INT:qA.UNSIGNED_INT,UNSIGNED_BYTE:qA.UNSIGNED_BYTE,BYTE:qA.BYTE,SHORT:qA.SHORT,INT:qA.INT},pn=function(){function e(){Object(n.a)(this,e)}return Object(a.a)(e,null,[{key:"fromTypedArray",value:function(e){for(var t in e=ArrayBuffer.isView(e)?e.constructor:e,dn){if(dn[t]===e)return t}throw new Error("Failed to convert GL type")}},{key:"fromName",value:function(e){var t=Bn[e];if(!t)throw new Error("Failed to convert GL type");return t}},{key:"getArrayType",value:function(e){switch(e){case qA.UNSIGNED_SHORT_5_6_5:case qA.UNSIGNED_SHORT_4_4_4_4:case qA.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:var t=dn[e];if(!t)throw new Error("Failed to convert GL type");return t}}},{key:"getByteSize",value:function(t){return e.getArrayType(t).BYTES_PER_ELEMENT}},{key:"validate",value:function(t){return Boolean(e.getArrayType(t))}},{key:"createTypedArray",value:function(t,A){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0;void 0===r&&(r=(A.byteLength-n)/e.getByteSize(t));var i=e.getArrayType(t);return new i(A,n,r)}}]),e}(),En=function(){function e(t,A){Object(n.a)(this,e),this.json=t,this.buffer=A,this.featuresLength=0,this._cachedTypedArrays={}}return Object(a.a)(e,[{key:"getExtension",value:function(e){return this.json.extensions&&this.json.extensions[e]}},{key:"hasProperty",value:function(e){return Boolean(this.json[e])}},{key:"getGlobalProperty",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:zA.UNSIGNED_INT,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=this.json[e];return n&&Number.isFinite(n.byteOffset)?this._getTypedArrayFromBinary(e,t,A,1,n.byteOffset):n}},{key:"getPropertyArray",value:function(e,t,A){var n=this.json[e];return n&&Number.isFinite(n.byteOffset)?("componentType"in n&&(t=pn.fromName(n.componentType)),this._getTypedArrayFromBinary(e,t,A,this.featuresLength,n.byteOffset)):this._getTypedArrayFromArray(e,t,n)}},{key:"getProperty",value:function(e,t,A,n,r){var i=this.json[e];if(!i)return i;var o=this.getPropertyArray(e,t,A);if(1===A)return o[n];for(var a=0;a<A;++a)r[a]=o[A*n+a];return r}},{key:"_getTypedArrayFromBinary",value:function(e,t,A,n,r){var i=this._cachedTypedArrays,o=i[e];return o||(o=pn.createTypedArray(t,this.buffer.buffer,this.buffer.byteOffset+r,n*A),i[e]=o),o}},{key:"_getTypedArrayFromArray",value:function(e,t,A){var n=this._cachedTypedArrays,r=n[e];return r||(r=pn.createTypedArray(t,A),n[e]=r),r}}]),e}(),Qn={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},yn={SCALAR:function(e,t){return e[t]},VEC2:function(e,t){return[e[2*t+0],e[2*t+1]]},VEC3:function(e,t){return[e[3*t+0],e[3*t+1],e[3*t+2]]},VEC4:function(e,t){return[e[4*t+0],e[4*t+1],e[4*t+2],e[4*t+3]]},MAT2:function(e,t){return[e[4*t+0],e[4*t+1],e[4*t+2],e[4*t+3]]},MAT3:function(e,t){return[e[9*t+0],e[9*t+1],e[9*t+2],e[9*t+3],e[9*t+4],e[9*t+5],e[9*t+6],e[9*t+7],e[9*t+8]]},MAT4:function(e,t){return[e[16*t+0],e[16*t+1],e[16*t+2],e[16*t+3],e[16*t+4],e[16*t+5],e[16*t+6],e[16*t+7],e[16*t+8],e[16*t+9],e[16*t+10],e[16*t+11],e[16*t+12],e[16*t+13],e[16*t+14],e[16*t+15]]}},vn={SCALAR:function(e,t,A){t[A]=e},VEC2:function(e,t,A){t[2*A+0]=e[0],t[2*A+1]=e[1]},VEC3:function(e,t,A){t[3*A+0]=e[0],t[3*A+1]=e[1],t[3*A+2]=e[2]},VEC4:function(e,t,A){t[4*A+0]=e[0],t[4*A+1]=e[1],t[4*A+2]=e[2],t[4*A+3]=e[3]},MAT2:function(e,t,A){t[4*A+0]=e[0],t[4*A+1]=e[1],t[4*A+2]=e[2],t[4*A+3]=e[3]},MAT3:function(e,t,A){t[9*A+0]=e[0],t[9*A+1]=e[1],t[9*A+2]=e[2],t[9*A+3]=e[3],t[9*A+4]=e[4],t[9*A+5]=e[5],t[9*A+6]=e[6],t[9*A+7]=e[7],t[9*A+8]=e[8],t[9*A+9]=e[9]},MAT4:function(e,t,A){t[16*A+0]=e[0],t[16*A+1]=e[1],t[16*A+2]=e[2],t[16*A+3]=e[3],t[16*A+4]=e[4],t[16*A+5]=e[5],t[16*A+6]=e[6],t[16*A+7]=e[7],t[16*A+8]=e[8],t[16*A+9]=e[9],t[16*A+10]=e[10],t[16*A+11]=e[11],t[16*A+12]=e[12],t[16*A+13]=e[13],t[16*A+14]=e[14],t[16*A+15]=e[15]}};var mn=function(e){return void 0!==e};function bn(e,t,A){if(!t)return null;var n=e.getExtension("3DTILES_batch_table_hierarchy"),r=t.HIERARCHY;return r&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),t.extensions=t.extensions||{},t.extensions["3DTILES_batch_table_hierarchy"]=r,n=r),n?function(e,t){var A,n,r,i,o=e.instancesLength,a=e.classes,s=e.classIds,g=e.parentCounts,c=e.parentIds,u=o;mn(s.byteOffset)&&(s.componentType=defaultValue(s.componentType,GL.UNSIGNED_SHORT),s.type=AttributeType.SCALAR,r=getBinaryAccessor(s),s=r.createArrayBufferView(t.buffer,t.byteOffset+s.byteOffset,o));if(mn(g))for(mn(g.byteOffset)&&(g.componentType=defaultValue(g.componentType,GL.UNSIGNED_SHORT),g.type=AttributeType.SCALAR,r=getBinaryAccessor(g),g=r.createArrayBufferView(t.buffer,t.byteOffset+g.byteOffset,o)),i=new Uint16Array(o),u=0,A=0;A<o;++A)i[A]=u,u+=g[A];mn(c)&&mn(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,r=getBinaryAccessor(c),c=r.createArrayBufferView(t.buffer,t.byteOffset+c.byteOffset,u));var l=a.length;for(A=0;A<l;++A){var I=a[A].length,C=a[A].instances,h=getBinaryProperties(I,C,t);a[A].instances=combine(h,C)}var f=new Array(l).fill(0),d=new Uint16Array(o);for(A=0;A<o;++A)n=s[A],d[A]=f[n],++f[n];var B={classes:a,classIds:s,classIndexes:d,parentCounts:g,parentIndexes:i,parentIds:c};return function(e){for(var t=e.classIds.length,A=0;A<t;++A)Sn(e,A,stack)}(B),B}(n,A):null}function wn(e,t,A){if(e){var n=e.parentCounts;return e.parentIds?A(e,t):n>0?function(e,t,A){var n=e.classIds,r=e.parentCounts,i=e.parentIds,o=e.parentIndexes,a=n.length,s=scratchVisited;s.length=Math.max(s.length,a);var g=++marker,c=scratchStack;c.length=0,c.push(t);for(;c.length>0;)if(t=c.pop(),s[t]!==g){s[t]=g;var u=A(e,t);if(mn(u))return u;for(var l=r[t],I=o[t],C=0;C<l;++C){var h=i[I+C];h!==t&&c.push(h)}}return null}(e,t,A):function(e,t,A){var n=!0;for(;n;){var r=A(e,t);if(mn(r))return r;var i=e.parentIds[t];n=i!==t,t=i}throw new Error("traverseHierarchySingleParent")}(e,t,A)}}function Sn(e,t,A){var n=e.parentCounts,r=e.parentIds,i=e.parentIndexes,o=e.classIds.length;if(mn(r)){assert(t<o,"Parent index ".concat(t," exceeds the total number of instances: ").concat(o)),assert(-1===A.indexOf(t),"Circular dependency detected in the batch table hierarchy."),A.push(t);for(var a=mn(n)?n[t]:1,s=mn(n)?i[t]:t,g=0;g<a;++g){var c=r[s+g];c!==t&&Sn(e,c,A)}A.pop(t)}}function Fn(e){return void 0!==e&&null!==e}var Rn=function(e,t){return e},Dn={HIERARCHY:!0,extensions:!0,extras:!0},Gn=function(){function e(t,A,r){var i,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};for(var a in Object(n.a)(this,e),Object(Mt.a)(r>=0),this.json=t||{},this.binary=A,this.featureCount=r,this._extensions=(null===(i=this.json)||void 0===i?void 0:i.extensions)||{},this._properties={},this.json)Dn[a]||(this._properties[a]=this.json[a]);this._binaryProperties=this._initializeBinaryProperties(),o["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=bn(this,this.json,this.binary))}return Object(a.a)(e,[{key:"getExtension",value:function(e){return this.json&&this.json.extensions&&this.json.extensions[e]}},{key:"memorySizeInBytes",value:function(){return 0}},{key:"isClass",value:function(e,t){return this._checkBatchId(e),Object(Mt.a)("string"===typeof t,t),!!this._hierarchy&&Fn(wn(this._hierarchy,e,(function(e,A){var n=e.classIds[A];return e.classes[n].name===t})))}},{key:"isExactClass",value:function(e,t){return Object(Mt.a)("string"===typeof t,t),this.getExactClassName(e)===t}},{key:"getExactClassName",value:function(e){if(this._checkBatchId(e),this._hierarchy){var t=this._hierarchy.classIds[e];return this._hierarchy.classes[t].name}}},{key:"hasProperty",value:function(e,t){return this._checkBatchId(e),Object(Mt.a)("string"===typeof t,t),Fn(this._properties[t])||this._hasPropertyInHierarchy(e,t)}},{key:"getPropertyNames",value:function(e,t){var A;this._checkBatchId(e),(t=Fn(t)?t:[]).length=0;var n=Object.keys(this._properties);return(A=t).push.apply(A,Object(ne.a)(n)),this._hierarchy&&this._getPropertyNamesInHierarchy(e,t),t}},{key:"getProperty",value:function(e,t){if(this._checkBatchId(e),Object(Mt.a)("string"===typeof t,t),this._binaryProperties){var A=this._binaryProperties[t];if(Fn(A))return this._getBinaryProperty(A,e)}var n=this._properties[t];if(Fn(n))return Rn(n[e]);if(this._hierarchy){var r=this._getHierarchyProperty(e,t);if(Fn(r))return r}}},{key:"setProperty",value:function(e,t,A){var n=this.featureCount;if(this._checkBatchId(e),Object(Mt.a)("string"===typeof t,t),this._binaryProperties){var r=this._binaryProperties[t];if(r)return void this._setBinaryProperty(r,e,A)}if(!this._hierarchy||!this._setHierarchyProperty(this,e,t,A)){var i=this._properties[t];Fn(i)||(this._properties[t]=new Array(n),i=this._properties[t]),i[e]=Rn(A)}}},{key:"_checkBatchId",value:function(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}},{key:"_getBinaryProperty",value:function(e,t){return e.unpack(e.typedArray,t)}},{key:"_setBinaryProperty",value:function(e,t,A){e.pack(A,e.typedArray,t)}},{key:"_initializeBinaryProperties",value:function(){var e=null;for(var t in this._properties){var A=this._properties[t],n=this._initializeBinaryProperty(t,A);n&&((e=e||{})[t]=n)}return e}},{key:"_initializeBinaryProperty",value:function(e,t){if("byteOffset"in t){var A=t;Object(Mt.a)(this.binary,"Property ".concat(e," requires a batch table binary.")),Object(Mt.a)(A.type,"Property ".concat(e," requires a type."));var n=function(e,t,A,n){var r=e.componentType;Object(Mt.a)(e.componentType);var i="string"===typeof r?pn.fromName(r):r,o=Qn[e.type],a=yn[e.type],s=vn[e.type];return A+=e.byteOffset,{values:pn.createTypedArray(i,t,A,o*n),type:i,size:o,unpacker:a,packer:s}}(A,this.binary.buffer,0|this.binary.byteOffset,this.featureCount);return{typedArray:n.values,componentCount:n.size,unpack:n.unpacker,pack:n.packer}}return null}},{key:"_hasPropertyInHierarchy",value:function(e,t){if(!this._hierarchy)return!1;var A=wn(this._hierarchy,e,(function(e,A){var n=e.classIds[A];return Fn(e.classes[n].instances[t])}));return Fn(A)}},{key:"_getPropertyNamesInHierarchy",value:function(e,t){wn(this._hierarchy,e,(function(e,A){var n=e.classIds[A],r=e.classes[n].instances;for(var i in r)r.hasOwnProperty(i)&&-1===t.indexOf(i)&&t.push(i)}))}},{key:"_getHierarchyProperty",value:function(e,t){var A=this;return wn(this._hierarchy,e,(function(e,n){var r=e.classIds[n],i=e.classes[r],o=e.classIndexes[n],a=i.instances[t];return Fn(a)?Fn(a.typedArray)?A._getBinaryProperty(a,o):Rn(a[o]):null}))}},{key:"_setHierarchyProperty",value:function(e,t,A,n){var r=this,i=wn(this._hierarchy,t,(function(e,i){var o=e.classIds[i],a=e.classes[o],s=e.classIndexes[i],g=a.instances[A];return!!Fn(g)&&(Object(Mt.a)(i===t,'Inherited property "'.concat(A,'" is read-only.')),Fn(g.typedArray)?r._setBinaryProperty(g,s,n):g[s]=Rn(n),!0)}));return Fn(i)}}]),e}();function kn(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=new DataView(t);if(e.magic=n.getUint32(A,!0),A+=4,e.version=n.getUint32(A,!0),A+=4,e.byteLength=n.getUint32(A,!0),A+=4,1!==e.version)throw new Error("3D Tile Version ".concat(e.version," not supported"));return A}function xn(e,t,A){var n,r=new DataView(t);e.header=e.header||{};var i=r.getUint32(A,!0);A+=4;var o=r.getUint32(A,!0);A+=4;var a=r.getUint32(A,!0);A+=4;var s=r.getUint32(A,!0);return A+=4,a>=570425344?(A-=8,n=i,a=o,s=0,i=0,o=0,console.warn("b3dm tile in legacy format.")):s>=570425344&&(A-=4,n=a,a=i,s=o,i=0,o=0,console.warn("b3dm tile in legacy format.")),e.header.featureTableJsonByteLength=i,e.header.featureTableBinaryByteLength=o,e.header.batchTableJsonByteLength=a,e.header.batchTableBinaryByteLength=s,e.header.batchLength=n,A}function Nn(e,t,A,n){return A=function(e,t,A,n){var r=e.header,i=r.featureTableJsonByteLength,o=r.featureTableBinaryByteLength,a=r.batchLength;if(e.featureTableJson={BATCH_LENGTH:a||0},i>0){var s=KA(t,A,i);e.featureTableJson=JSON.parse(s)}return A+=i,e.featureTableBinary=new Uint8Array(t,A,o),A+=o}(e,t,A),A=function(e,t,A,n){var r=e.header,i=r.batchTableJsonByteLength,o=r.batchTableBinaryByteLength;if(i>0){var a=KA(t,A,i);e.batchTableJson=JSON.parse(a),A+=i,o>0&&(e.batchTableBinary=new Uint8Array(t,A,o),e.batchTableBinary=new Uint8Array(e.batchTableBinary),A+=o)}return A}(e,t,A)}function Un(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0],A=e>>11&31,n=e>>5&63,r=31&e;return t[0]=A<<3,t[1]=n<<2,t[2]=r<<3,t}function _n(e,t,A){if(!t&&(!e||!e.batchIds||!A))return null;var n=e.batchIds,r=e.isRGB565,i=e.pointCount;if(n&&A){for(var o=new Uint8ClampedArray(3*i),a=0;a<i;a++){var s=n[a],g=A.getProperty(s,"dimensions").map((function(e){return 255*e}));o[3*a]=g[0],o[3*a+1]=g[1],o[3*a+2]=g[2]}return{type:zA.UNSIGNED_BYTE,value:o,size:3,normalized:!0}}if(r){for(var c=new Uint8ClampedArray(3*i),u=0;u<i;u++){var l=Un(t[u]);c[3*u]=l[0],c[3*u+1]=l[1],c[3*u+2]=l[2]}return{type:zA.UNSIGNED_BYTE,value:c,size:3,normalized:!0}}return t&&t.length===3*i?{type:zA.UNSIGNED_BYTE,value:t,size:3,normalized:!0}:{type:zA.UNSIGNED_BYTE,value:t,size:4,normalized:!0}}function Mn(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}Math.PI,Math.PI;var On={};function Ln(e){return Math.round(e/On.EPSILON)*On.EPSILON}function Tn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.precision,n=void 0===A?On.precision||4:A;return e=Ln(e),"".concat(parseFloat(e.toPrecision(n)))}function Zn(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Hn(e,t,A){if(Zn(e)){A=A||((r=e).clone?r.clone():new Array(r.length));for(var n=0;n<A.length&&n<e.length;++n)A[n]=t(e[n],n,A);return A}var r;return t(e)}function Yn(e,t,A){return Hn(e,(function(e){return Math.max(t,Math.min(A,e))}))}function Jn(e,t,A){var n=On.EPSILON;A&&(On.EPSILON=A);try{if(e===t)return!0;if(Zn(e)&&Zn(t)){if(e.length!==t.length)return!1;for(var r=0;r<e.length;++r)if(!Jn(e[r],t[r]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):!(!Number.isFinite(e)||!Number.isFinite(t))&&Math.abs(e-t)<=On.EPSILON*Math.max(1,Math.abs(e),Math.abs(t))}finally{On.EPSILON=n}}On.EPSILON=1e-12,On.debug=!1,On.precision=4,On.printTypes=!1,On.printDegrees=!1,On.printRowMajor=!0;var jn=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"clone",value:function(){return(new this.constructor).copy(this)}},{key:"from",value:function(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}},{key:"fromArray",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)this[A]=e[A+t];return this.check()}},{key:"to",value:function(e){return e===this?this:Zn(e)?this.toArray(e):this.toObject(e)}},{key:"toTarget",value:function(e){return e?this.to(e):this}},{key:"toArray",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=0;A<this.ELEMENTS;++A)e[t+A]=this[A];return e}},{key:"toFloat32Array",value:function(){return new Float32Array(this)}},{key:"toString",value:function(){return this.formatString(On)}},{key:"formatString",value:function(e){for(var t="",A=0;A<this.ELEMENTS;++A)t+=(A>0?", ":"")+Tn(this[A],e);return"".concat(e.printTypes?this.constructor.name:"","[").concat(t,"]")}},{key:"equals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(!Jn(this[t],e[t]))return!1;return!0}},{key:"exactEquals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(this[t]!==e[t])return!1;return!0}},{key:"negate",value:function(){for(var e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}},{key:"lerp",value:function(e,t,A){void 0===A&&(A=t,t=e,e=this);for(var n=0;n<this.ELEMENTS;++n){var r=e[n];this[n]=r+A*(t[n]-r)}return this.check()}},{key:"min",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.min(e[t],this[t]);return this.check()}},{key:"max",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.max(e[t],this[t]);return this.check()}},{key:"clamp",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e[A]),t[A]);return this.check()}},{key:"add",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]+=i[o];return this.check()}},{key:"subtract",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]-=i[o];return this.check()}},{key:"scale",value:function(e){if(Array.isArray(e))return this.multiply(e);for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"sub",value:function(e){return this.subtract(e)}},{key:"setScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=e;return this.check()}},{key:"addScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]+=e;return this.check()}},{key:"subScalar",value:function(e){return this.addScalar(-e)}},{key:"multiplyScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"divideScalar",value:function(e){return this.scale(1/e)}},{key:"clampScalar",value:function(e,t){for(var A=0;A<this.ELEMENTS;++A)this[A]=Math.min(Math.max(this[A],e),t);return this.check()}},{key:"multiplyByScalar",value:function(e){return this.scale(e)}},{key:"check",value:function(){if(On.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}},{key:"validate",value:function(){for(var e=this.length===this.ELEMENTS,t=0;t<this.ELEMENTS;++t)e=e&&Number.isFinite(this[t]);return e}},{key:"ELEMENTS",get:function(){return Mn(!1),0}},{key:"elements",get:function(){return this}}]),A}(function(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}(Array));function Pn(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(e));return e}var Vn=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"copy",value:function(e){return Mn(!1),this}},{key:"len",value:function(){return Math.sqrt(this.lengthSquared())}},{key:"magnitude",value:function(){return this.len()}},{key:"lengthSquared",value:function(){for(var e=0,t=0;t<this.ELEMENTS;++t)e+=this[t]*this[t];return e}},{key:"magnitudeSquared",value:function(){return this.lengthSquared()}},{key:"distance",value:function(e){return Math.sqrt(this.distanceSquared(e))}},{key:"distanceSquared",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A){var n=this[A]-e[A];t+=n*n}return Pn(t)}},{key:"dot",value:function(e){for(var t=0,A=0;A<this.ELEMENTS;++A)t+=this[A]*e[A];return Pn(t)}},{key:"normalize",value:function(){var e=this.magnitude();if(0!==e)for(var t=0;t<this.ELEMENTS;++t)this[t]/=e;return this.check()}},{key:"multiply",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]*=i[o];return this.check()}},{key:"divide",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0;o<this.ELEMENTS;++o)this[o]/=i[o];return this.check()}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"distanceTo",value:function(e){return this.distance(e)}},{key:"distanceToSquared",value:function(e){return this.distanceSquared(e)}},{key:"getComponent",value:function(e){return Mn(e>=0&&e<this.ELEMENTS,"index is out of range"),Pn(this[e])}},{key:"setComponent",value:function(e,t){return Mn(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=t,this.check()}},{key:"addVectors",value:function(e,t){return this.copy(e).add(t)}},{key:"subVectors",value:function(e,t){return this.copy(e).subtract(t)}},{key:"multiplyVectors",value:function(e,t){return this.copy(e).multiply(t)}},{key:"addScaledVector",value:function(e,t){return this.add(new this.constructor(e).multiplyScalar(t))}},{key:"ELEMENTS",get:function(){return Mn(!1),0}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=Pn(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=Pn(e)}}]),A}(jn);var Kn=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Object(n.a)(this,A),e=t.call(this,2),Zn(r)&&1===arguments.length?e.copy(r):(On.debug&&(Pn(r),Pn(i)),e[0]=r,e[1]=i),e}return Object(a.a)(A,[{key:"set",value:function(e,t){return this[0]=e,this[1]=t,this.check()}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this.check()}},{key:"fromObject",value:function(e){return On.debug&&(Pn(e.x),Pn(e.y)),this[0]=e.x,this[1]=e.y,this.check()}},{key:"toObject",value:function(e){return e.x=this[0],e.y=this[1],e}},{key:"horizontalAngle",value:function(){return Math.atan2(this.y,this.x)}},{key:"verticalAngle",value:function(){return Math.atan2(this.x,this.y)}},{key:"transform",value:function(e){return this.transformAsPoint(e)}},{key:"transformAsPoint",value:function(e){return me.f(this,this,e),this.check()}},{key:"transformAsVector",value:function(e){return function(e,t,A){var n=t[0],r=t[1],i=A[3]*n+A[7]*r||1;e[0]=(A[0]*n+A[4]*r)/i,e[1]=(A[1]*n+A[5]*r)/i}(this,this,e),this.check()}},{key:"transformByMatrix3",value:function(e){return me.e(this,this,e),this.check()}},{key:"transformByMatrix2x3",value:function(e){return me.d(this,this,e),this.check()}},{key:"transformByMatrix2",value:function(e){return me.c(this,this,e),this.check()}},{key:"ELEMENTS",get:function(){return 2}}]),A}(Vn),Wn=[0,0,0],Xn={},qn=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return Object(n.a)(this,A),e=t.call(this,-0,-0,-0),1===arguments.length&&Zn(r)?e.copy(r):(On.debug&&(Pn(r),Pn(i),Pn(o)),e[0]=r,e[1]=i,e[2]=o),e}return Object(a.a)(A,null,[{key:"ZERO",get:function(){return Xn.ZERO=Xn.ZERO||Object.freeze(new A(0,0,0,0))}}]),Object(a.a)(A,[{key:"set",value:function(e,t,A){return this[0]=e,this[1]=t,this[2]=A,this.check()}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}},{key:"fromObject",value:function(e){return On.debug&&(Pn(e.x),Pn(e.y),Pn(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}},{key:"toObject",value:function(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}},{key:"angle",value:function(e){return be.a(this,e)}},{key:"cross",value:function(e){return be.c(this,this,e),this.check()}},{key:"rotateX",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?Wn:A;return be.j(this,this,n,t),this.check()}},{key:"rotateY",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?Wn:A;return be.k(this,this,n,t),this.check()}},{key:"rotateZ",value:function(e){var t=e.radians,A=e.origin,n=void 0===A?Wn:A;return be.l(this,this,n,t),this.check()}},{key:"transform",value:function(e){return this.transformAsPoint(e)}},{key:"transformAsPoint",value:function(e){return be.p(this,this,e),this.check()}},{key:"transformAsVector",value:function(e){return function(e,t,A){var n=t[0],r=t[1],i=t[2],o=A[3]*n+A[7]*r+A[11]*i||1;e[0]=(A[0]*n+A[4]*r+A[8]*i)/o,e[1]=(A[1]*n+A[5]*r+A[9]*i)/o,e[2]=(A[2]*n+A[6]*r+A[10]*i)/o}(this,this,e),this.check()}},{key:"transformByMatrix3",value:function(e){return be.o(this,this,e),this.check()}},{key:"transformByMatrix2",value:function(e){return function(e,t,A){var n=t[0],r=t[1];e[0]=A[0]*n+A[2]*r,e[1]=A[1]*n+A[3]*r,e[2]=t[2]}(this,this,e),this.check()}},{key:"transformByQuaternion",value:function(e){return be.q(this,this,e),this.check()}},{key:"ELEMENTS",get:function(){return 3}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=Pn(e)}}]),A}(Vn);Math.PI,Math.PI,Math.PI,Math.PI;function zn(e,t){if(!e)throw new Error("math.gl assertion failed. ".concat(t))}new Kn,new qn,new Kn,new Kn,new Uint8Array(1);function $n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:255;return Yn(e,0,t)/t*2-1}function er(e){return e<0?-1:1}function tr(e,t,A,n){if(zn(n),e<0||e>A||t<0||t>A)throw new Error("x and y must be unsigned normalized integers between 0 and ".concat(A));if(n.x=$n(e,A),n.y=$n(t,A),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){var r=n.x;n.x=(1-Math.abs(n.y))*er(r),n.y=(1-Math.abs(r))*er(n.y)}return n.normalize()}function Ar(e,t,A){return tr(e,t,255,A)}var nr=new fn;function rr(e,t,A){return e.isQuantized?A["3d-tiles"]&&A["3d-tiles"].decodeQuantizedPositions?(e.isQuantized=!1,function(e,t){for(var A=new fn,n=new Float32Array(3*e.pointCount),r=0;r<e.pointCount;r++)A.set(t[3*r],t[3*r+1],t[3*r+2]).scale(1/e.quantizedRange).multiply(e.quantizedVolumeScale).add(e.quantizedVolumeOffset).toArray(n,3*r);return n}(e,t)):{type:zA.UNSIGNED_SHORT,value:t,size:3,normalized:!0}:t}function ir(e,t,A,n,r){return or.apply(this,arguments)}function or(){return(or=Object(J.a)(Y.a.mark((function e(t,A,n,r,i){var o,a,s;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=kn(t,A,n),n=xn(t,A,n),n=Nn(t,A,n),ar(t),o=sr(t),a=o.featureTable,s=o.batchTable,e.next=7,lr(t,a,s,r,i);case 7:return gr(t,a,r),cr(t,a,s),ur(t,a),e.abrupt("return",n);case 11:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ar(e){e.attributes={positions:null,colors:null,normals:null,batchIds:null},e.isQuantized=!1,e.isTranslucent=!1,e.isRGB565=!1,e.isOctEncoded16P=!1}function sr(e){var t=new En(e.featureTableJson,e.featureTableBinary),A=t.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(A))throw new Error("POINTS_LENGTH must be defined");t.featuresLength=A,e.featuresLength=A,e.pointsLength=A,e.pointCount=A,e.rtcCenter=t.getGlobalProperty("RTC_CENTER",zA.FLOAT,3);var n=function(e,t){var A=null;if(!e.batchIds&&t.hasProperty("BATCH_ID")&&(e.batchIds=t.getPropertyArray("BATCH_ID",zA.UNSIGNED_SHORT,1),e.batchIds)){var n=t.getGlobalProperty("BATCH_LENGTH");if(!n)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");var r=e.batchTableJson,i=e.batchTableBinary;A=new Gn(r,i,n)}return A}(e,t);return{featureTable:t,batchTable:n}}function gr(e,t,A){if(!e.attributes.positions)if(t.hasProperty("POSITION"))e.attributes.positions=t.getPropertyArray("POSITION",zA.FLOAT,3);else if(t.hasProperty("POSITION_QUANTIZED")){var n=t.getPropertyArray("POSITION_QUANTIZED",zA.UNSIGNED_SHORT,3);if(e.isQuantized=!0,e.quantizedRange=65535,e.quantizedVolumeScale=t.getGlobalProperty("QUANTIZED_VOLUME_SCALE",zA.FLOAT,3),!e.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(e.quantizedVolumeOffset=t.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",zA.FLOAT,3),!e.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");e.attributes.positions=rr(e,n,A)}if(!e.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function cr(e,t,A){if(!e.attributes.colors){var n=null;t.hasProperty("RGBA")?(n=t.getPropertyArray("RGBA",zA.UNSIGNED_BYTE,4),e.isTranslucent=!0):t.hasProperty("RGB")?n=t.getPropertyArray("RGB",zA.UNSIGNED_BYTE,3):t.hasProperty("RGB565")&&(n=t.getPropertyArray("RGB565",zA.UNSIGNED_SHORT,1),e.isRGB565=!0),e.attributes.colors=_n(e,n,A)}t.hasProperty("CONSTANT_RGBA")&&(e.constantRGBA=t.getGlobalProperty("CONSTANT_RGBA",zA.UNSIGNED_BYTE,4))}function ur(e,t){if(!e.attributes.normals){var A=null;t.hasProperty("NORMAL")?A=t.getPropertyArray("NORMAL",zA.FLOAT,3):t.hasProperty("NORMAL_OCT16P")&&(A=t.getPropertyArray("NORMAL_OCT16P",zA.UNSIGNED_BYTE,2),e.isOctEncoded16P=!0),e.attributes.normals=function(e,t){if(!t)return null;if(e.isOctEncoded16P){for(var A=new Float32Array(3*e.pointsLength),n=0;n<e.pointsLength;n++)Ar(t[2*n],t[2*n+1],nr),nr.toArray(A,3*n);return{type:zA.FLOAT,size:2,value:A}}return{type:zA.FLOAT,size:2,value:t}}(e,A)}}function lr(e,t,A,n,r){return Ir.apply(this,arguments)}function Ir(){return(Ir=Object(J.a)(Y.a.mark((function e(t,A,n,r,i){var o,a,g,c,u,l,I,C;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((c=t.batchTableJson&&t.batchTableJson.extensions&&t.batchTableJson.extensions["3DTILES_draco_point_compression"])&&(g=c.properties),!(u=A.getExtension("3DTILES_draco_point_compression"))){e.next=15;break}if(a=u.properties,l=u.byteOffset,I=u.byteLength,a&&Number.isFinite(l)&&I){e.next=9;break}throw new Error("Draco properties, byteOffset, and byteLength must be defined");case 9:o=t.featureTableBinary.slice(l,l+I),t.hasPositions=Number.isFinite(a.POSITION),t.hasColors=Number.isFinite(a.RGB)||Number.isFinite(a.RGBA),t.hasNormals=Number.isFinite(a.NORMAL),t.hasBatchIds=Number.isFinite(a.BATCH_ID),t.isTranslucent=Number.isFinite(a.RGBA);case 15:if(o){e.next=17;break}return e.abrupt("return",!0);case 17:return C={buffer:o,properties:Object(s.a)({},a,{},g),featureTableProperties:a,batchTableProperties:g,dequantizeInShader:!1},e.next=20,Cr(t,C,r,i);case 20:return e.abrupt("return",e.sent);case 21:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Cr(e,t,A,n){return hr.apply(this,arguments)}function hr(){return(hr=Object(J.a)(Y.a.mark((function e(t,A,n,r){var i,o,a,g,c,u,l,I,C,h,f,d,B,p,E;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=r.parse,delete(o=Object(s.a)({},n,{draco:Object(s.a)({},n.draco,{extraAttributes:A.batchTableProperties||{}})}))["3d-tiles"],e.next=5,i(A.buffer,XA.a,o);case 5:if(a=e.sent,g=a.attributes.POSITION&&a.attributes.POSITION.value,c=a.attributes.COLOR_0&&a.attributes.COLOR_0.value,u=a.attributes.NORMAL&&a.attributes.NORMAL.value,l=a.attributes.BATCH_ID&&a.attributes.BATCH_ID.value,I=g&&a.attributes.POSITION.value.quantization,C=u&&a.attributes.NORMAL.value.quantization,I&&(h=a.POSITION.data.quantization,f=h.range,t.quantizedVolumeScale=new fn(f,f,f),t.quantizedVolumeOffset=new fn(h.minValues),t.quantizedRange=(1<<h.quantizationBits)-1,t.isQuantizedDraco=!0),C&&(t.octEncodedRange=(1<<a.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0),d={},A.batchTableProperties)for(B=0,p=Object.keys(A.batchTableProperties);B<p.length;B++)E=p[B],a.attributes[E]&&a.attributes[E].value&&(d[E.toLowerCase()]=a.attributes[E].value);t.attributes=Object(s.a)({positions:g,colors:_n(t,c),normals:u,batchIds:l},d);case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var fr=A(1281),dr=A(194),Br=0,pr=1;function Er(e,t,A,n){e.rotateYtoZ=!0;var r=e.byteOffset+e.byteLength-A;if(0===r)throw new Error("glTF byte length must be greater than 0.");return e.gltfUpAxis=n["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",e.gltfArrayBuffer=Object(dr.c)(t,A,r),e.gltfByteOffset=0,e.gltfByteLength=r,A%4===0||console.warn("".concat(e.type,": embedded glb is not aligned to a 4-byte boundary.")),e.byteOffset+e.byteLength}function Qr(e,t,A,n){return yr.apply(this,arguments)}function yr(){return(yr=Object(J.a)(Y.a.mark((function e(t,A,n,r){var i,o,a;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=n["3d-tiles"]||{},vr(t,A,n),!i.loadGLTF){e.next=16;break}if(o=r.parse,a=r.fetch,!t.gltfUrl){e.next=9;break}return e.next=7,a(t.gltfUrl,n);case 7:t.gltfArrayBuffer=e.sent,t.gltfByteOffset=0;case 9:if(!t.gltfArrayBuffer){e.next=16;break}return e.next=12,o(t.gltfArrayBuffer,fr.a,n,r);case 12:t.gltf=e.sent,delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function vr(e,t,A){switch(t){case Br:var n=new Uint8Array(e.gltfArrayBuffer,e.gltfByteOffset),r=(new TextDecoder).decode(n);e.gltfUrl=r.replace(/[\s\0]+$/,""),delete e.gltfArrayBuffer,delete e.gltfByteOffset,delete e.gltfByteLength;break;case pr:break;default:throw new Error("b3dm: Illegal glTF format field")}}function mr(e,t,A,n,r){return br.apply(this,arguments)}function br(){return(br=Object(J.a)(Y.a.mark((function e(t,A,n,r,i){var o,a;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=wr(t,A,n,r,i),e.next=3,Qr(t,pr,r,i);case 3:return(a=null===t||void 0===t||null===(o=t.gltf)||void 0===o?void 0:o.extensions)&&a.CESIUM_RTC&&(t.rtcCenter=a.CESIUM_RTC.center),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function wr(e,t,A,n,r){A=Er(e,t,A=Nn(e,t,A=xn(e,t,A=kn(e,t,A))),n);var i=new En(e.featureTableJson,e.featureTableBinary);return e.rtcCenter=i.getGlobalProperty("RTC_CENTER",zA.FLOAT,3),A}var Sr=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"toString",value:function(){var e="[";if(en.printRowMajor){e+="row-major:";for(var t=0;t<this.RANK;++t)for(var A=0;A<this.RANK;++A)e+=" ".concat(this[A*this.RANK+t])}else{e+="column-major:";for(var n=0;n<this.ELEMENTS;++n)e+=" ".concat(this[n])}return e+="]"}},{key:"getElementIndex",value:function(e,t){return t*this.RANK+e}},{key:"getElement",value:function(e,t){return this[t*this.RANK+e]}},{key:"setElement",value:function(e,t,A){return this[t*this.RANK+e]=sn(A),this}},{key:"getColumn",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Array(this.RANK).fill(-0),A=e*this.RANK,n=0;n<this.RANK;++n)t[n]=this[A+n];return t}},{key:"setColumn",value:function(e,t){for(var A=e*this.RANK,n=0;n<this.RANK;++n)this[A+n]=t[n];return this}},{key:"ELEMENTS",get:function(){return $A(!1),0}},{key:"RANK",get:function(){return $A(!1),0}}]),A}(on),Fr=Object.freeze([1,0,0,0,1,0,0,0,1]),Rr=Object.freeze([0,0,0,0,0,0,0,0,0]),Dr=Object.freeze({COL0ROW0:0,COL0ROW1:1,COL0ROW2:2,COL1ROW0:3,COL1ROW1:4,COL1ROW2:5,COL2ROW0:6,COL2ROW1:7,COL2ROW2:8}),Gr={},kr=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(e){var r;return Object(n.a)(this,A),r=t.call(this,-0,-0,-0,-0,-0,-0,-0,-0,-0),1===arguments.length&&Array.isArray(e)?r.copy(e):r.identity(),r}return Object(a.a)(A,[{key:"ELEMENTS",get:function(){return 9}},{key:"RANK",get:function(){return 3}},{key:"INDICES",get:function(){return Dr}}],[{key:"IDENTITY",get:function(){return Gr.IDENTITY=Gr.IDENTITY||Object.freeze(new A(Fr)),Gr.IDENTITY}},{key:"ZERO",get:function(){return Gr.ZERO=Gr.ZERO||Object.freeze(new A(Rr)),Gr.ZERO}}]),Object(a.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}},{key:"set",value:function(e,t,A,n,r,i,o,a,s){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this[4]=r,this[5]=i,this[6]=o,this[7]=a,this[8]=s,this.check()}},{key:"setRowMajor",value:function(e,t,A,n,r,i,o,a,s){return this[0]=e,this[1]=n,this[2]=o,this[3]=t,this[4]=r,this[5]=a,this[6]=A,this[7]=i,this[8]=s,this.check()}},{key:"determinant",value:function(){return fA.b(this)}},{key:"identity",value:function(){return this.copy(Fr)}},{key:"fromQuaternion",value:function(e){return fA.c(this,e),this.check()}},{key:"transpose",value:function(){return fA.i(this,this),this.check()}},{key:"invert",value:function(){return fA.d(this,this),this.check()}},{key:"multiplyLeft",value:function(e){return fA.e(this,e,this),this.check()}},{key:"multiplyRight",value:function(e){return fA.e(this,this,e),this.check()}},{key:"rotate",value:function(e){return fA.f(this,this,e),this.check()}},{key:"scale",value:function(e){return Array.isArray(e)?fA.g(this,this,e):fA.g(this,this,[e,e,e]),this.check()}},{key:"translate",value:function(e){return fA.h(this,this,e),this.check()}},{key:"transform",value:function(e,t){switch(e.length){case 2:t=me.e(t||[-0,-0],e,this);break;case 3:t=be.o(t||[-0,-0,-0],e,this);break;case 4:t=function(e,t,A){var n=t[0],r=t[1],i=t[2];return e[0]=A[0]*n+A[3]*r+A[6]*i,e[1]=A[1]*n+A[4]*r+A[7]*i,e[2]=A[2]*n+A[5]*r+A[8]*i,e[3]=t[3],e}(t||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return gn(t,e.length),t}},{key:"transformVector",value:function(e,t){return un("Matrix3.transformVector"),this.transform(e,t)}},{key:"transformVector2",value:function(e,t){return un("Matrix3.transformVector"),this.transform(e,t)}},{key:"transformVector3",value:function(e,t){return un("Matrix3.transformVector"),this.transform(e,t)}}]),A}(Sr),xr=[0,0,0,1],Nr=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return Object(n.a)(this,A),e=t.call(this,-0,-0,-0,-0),Array.isArray(r)&&1===arguments.length?e.copy(r):e.set(r,i,o,a),e}return Object(a.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}},{key:"set",value:function(e,t,A,n){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this.check()}},{key:"fromMatrix3",value:function(e){return IA.e(this,e),this.check()}},{key:"identity",value:function(){return IA.f(this),this.check()}},{key:"fromAxisRotation",value:function(e,t){return IA.p(this,e,t),this.check()}},{key:"setAxisAngle",value:function(e,t){return this.fromAxisRotation(e,t)}},{key:"len",value:function(){return IA.h(this)}},{key:"lengthSquared",value:function(){return IA.r(this)}},{key:"dot",value:function(e,t){if(void 0!==t)throw new Error("Quaternion.dot only takes one argument");return IA.d(this,e)}},{key:"rotationTo",value:function(e,t){return IA.n(this,e,t),this.check()}},{key:"add",value:function(e,t){if(void 0!==t)throw new Error("Quaternion.add only takes one argument");return IA.a(this,this,e),this.check()}},{key:"calculateW",value:function(){return IA.b(this,this),this.check()}},{key:"conjugate",value:function(){return IA.c(this,this),this.check()}},{key:"invert",value:function(){return IA.g(this,this),this.check()}},{key:"lerp",value:function(e,t,A){return IA.i(this,e,t,A),this.check()}},{key:"multiplyRight",value:function(e,t){return $A(!t),IA.j(this,this,e),this.check()}},{key:"multiplyLeft",value:function(e,t){return $A(!t),IA.j(this,e,this),this.check()}},{key:"normalize",value:function(){var e=this.len(),t=e>0?1/e:0;return this[0]=this[0]*t,this[1]=this[1]*t,this[2]=this[2]*t,this[3]=this[3]*t,0===e&&(this[3]=1),this.check()}},{key:"rotateX",value:function(e){return IA.k(this,this,e),this.check()}},{key:"rotateY",value:function(e){return IA.l(this,this,e),this.check()}},{key:"rotateZ",value:function(e){return IA.m(this,this,e),this.check()}},{key:"scale",value:function(e){return IA.o(this,this,e),this.check()}},{key:"slerp",value:function(e,t,A){switch(arguments.length){case 1:var n=arguments[0],r=n.start;e=void 0===r?xr:r,t=n.target,A=n.ratio;break;case 2:var i=Array.prototype.slice.call(arguments);t=i[0],A=i[1],e=this}return IA.q(this,e,t,A),this.check()}},{key:"transformVector4",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return we.o(t,e,this),gn(t,4)}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"setFromAxisAngle",value:function(e,t){return this.setAxisAngle(e,t)}},{key:"premultiply",value:function(e,t){return this.multiplyLeft(e,t)}},{key:"multiply",value:function(e,t){return this.multiplyRight(e,t)}},{key:"ELEMENTS",get:function(){return 4}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=sn(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=sn(e)}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=sn(e)}},{key:"w",get:function(){return this[3]},set:function(e){this[3]=sn(e)}}]),A}(on),Ur=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),_r=Object.freeze([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Mr=Object.freeze({COL0ROW0:0,COL0ROW1:1,COL0ROW2:2,COL0ROW3:3,COL1ROW0:4,COL1ROW1:5,COL1ROW2:6,COL1ROW3:7,COL2ROW0:8,COL2ROW1:9,COL2ROW2:10,COL2ROW3:11,COL3ROW0:12,COL3ROW1:13,COL3ROW2:14,COL3ROW3:15}),Or={},Lr=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(e){var r;return Object(n.a)(this,A),r=t.call(this,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),1===arguments.length&&Array.isArray(e)?r.copy(e):r.identity(),r}return Object(a.a)(A,[{key:"INDICES",get:function(){return Mr}},{key:"ELEMENTS",get:function(){return 16}},{key:"RANK",get:function(){return 4}}],[{key:"IDENTITY",get:function(){return Or.IDENTITY=Or.IDENTITY||Object.freeze(new A(Ur)),Or.IDENTITY}},{key:"ZERO",get:function(){return Or.ZERO=Or.ZERO||Object.freeze(new A(_r)),Or.ZERO}}]),Object(a.a)(A,[{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}},{key:"set",value:function(e,t,A,n,r,i,o,a,s,g,c,u,l,I,C,h){return this[0]=e,this[1]=t,this[2]=A,this[3]=n,this[4]=r,this[5]=i,this[6]=o,this[7]=a,this[8]=s,this[9]=g,this[10]=c,this[11]=u,this[12]=l,this[13]=I,this[14]=C,this[15]=h,this.check()}},{key:"setRowMajor",value:function(e,t,A,n,r,i,o,a,s,g,c,u,l,I,C,h){return this[0]=e,this[1]=r,this[2]=s,this[3]=l,this[4]=t,this[5]=i,this[6]=g,this[7]=I,this[8]=A,this[9]=o,this[10]=c,this[11]=C,this[12]=n,this[13]=a,this[14]=u,this[15]=h,this.check()}},{key:"toRowMajor",value:function(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}},{key:"identity",value:function(){return this.copy(Ur)}},{key:"fromQuaternion",value:function(e){return ve.b(this,e),this.check()}},{key:"frustum",value:function(e){var t=e.left,n=e.right,r=e.bottom,i=e.top,o=e.near,a=e.far;return a===1/0?A._computeInfinitePerspectiveOffCenter(this,t,n,r,i,o):ve.c(this,t,n,r,i,o,a),this.check()}},{key:"lookAt",value:function(e,t,A){if(1===arguments.length){var n=e;e=n.eye,t=n.center,A=n.up}return t=t||[0,0,0],A=A||[0,1,0],ve.f(this,e,t,A),this.check()}},{key:"ortho",value:function(e){var t=e.left,A=e.right,n=e.bottom,r=e.top,i=e.near,o=void 0===i?.1:i,a=e.far,s=void 0===a?500:a;return ve.h(this,t,A,n,r,o,s),this.check()}},{key:"orthographic",value:function(e){var t=e.fovy,n=void 0===t?45*Math.PI/180:t,r=e.aspect,i=void 0===r?1:r,o=e.focalDistance,a=void 0===o?1:o,s=e.near,g=void 0===s?.1:s,c=e.far,u=void 0===c?500:c;if(n>2*Math.PI)throw Error("radians");var l=n/2,I=a*Math.tan(l),C=I*i;return(new A).ortho({left:-C,right:C,bottom:-I,top:I,near:g,far:u})}},{key:"perspective",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.fovy,A=void 0===t?void 0:t,n=e.fov,r=void 0===n?45*Math.PI/180:n,i=e.aspect,o=void 0===i?1:i,a=e.near,s=void 0===a?.1:a,g=e.far,c=void 0===g?500:g;if((A=A||r)>2*Math.PI)throw Error("radians");return ve.i(this,A,o,s,c),this.check()}},{key:"determinant",value:function(){return ve.a(this)}},{key:"getScale",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0];return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}},{key:"getTranslation",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0];return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}},{key:"getRotation",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,A=this.getScale(t||[-0,-0,-0]),n=1/A[0],r=1/A[1],i=1/A[2];return e[0]=this[0]*n,e[1]=this[1]*r,e[2]=this[2]*i,e[3]=0,e[4]=this[4]*n,e[5]=this[5]*r,e[6]=this[6]*i,e[7]=0,e[8]=this[8]*n,e[9]=this[9]*r,e[10]=this[10]*i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}},{key:"getRotationMatrix3",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-0,-0,-0,-0,-0,-0,-0,-0,-0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,A=this.getScale(t||[-0,-0,-0]),n=1/A[0],r=1/A[1],i=1/A[2];return e[0]=this[0]*n,e[1]=this[1]*r,e[2]=this[2]*i,e[3]=this[4]*n,e[4]=this[5]*r,e[5]=this[6]*i,e[6]=this[8]*n,e[7]=this[9]*r,e[8]=this[10]*i,e}},{key:"transpose",value:function(){return ve.p(this,this),this.check()}},{key:"invert",value:function(){return ve.e(this,this),this.check()}},{key:"multiplyLeft",value:function(e){return ve.g(this,e,this),this.check()}},{key:"multiplyRight",value:function(e){return ve.g(this,this,e),this.check()}},{key:"rotateX",value:function(e){return ve.k(this,this,e),this.check()}},{key:"rotateY",value:function(e){return ve.l(this,this,e),this.check()}},{key:"rotateZ",value:function(e){return ve.m(this,this,e),this.check()}},{key:"rotateXYZ",value:function(e){var t=Object(u.a)(e,3),A=t[0],n=t[1],r=t[2];return this.rotateX(A).rotateY(n).rotateZ(r)}},{key:"rotateAxis",value:function(e,t){return ve.j(this,this,e,t),this.check()}},{key:"scale",value:function(e){return Array.isArray(e)?ve.n(this,this,e):ve.n(this,this,[e,e,e]),this.check()}},{key:"translate",value:function(e){return ve.o(this,this,e),this.check()}},{key:"transform",value:function(e,t){return 4===e.length?(gn(t=we.n(t||[-0,-0,-0,-0],e,this),4),t):this.transformAsPoint(e,t)}},{key:"transformAsPoint",value:function(e,t){switch(e.length){case 2:t=me.f(t||[-0,-0],e,this);break;case 3:t=be.p(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return gn(t,e.length),t}},{key:"transformAsVector",value:function(e,t){switch(e.length){case 2:t=function(e,t,A){var n=t[0],r=t[1],i=A[3]*n+A[7]*r||1;return e[0]=(A[0]*n+A[4]*r)/i,e[1]=(A[1]*n+A[5]*r)/i,e}(t||[-0,-0],e,this);break;case 3:t=ln(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return gn(t,e.length),t}},{key:"makeRotationX",value:function(e){return this.identity().rotateX(e)}},{key:"makeTranslation",value:function(e,t,A){return this.identity().translate([e,t,A])}},{key:"transformPoint",value:function(e,t){return un("Matrix4.transformPoint","3.0"),this.transformAsPoint(e,t)}},{key:"transformVector",value:function(e,t){return un("Matrix4.transformVector","3.0"),this.transformAsPoint(e,t)}},{key:"transformDirection",value:function(e,t){return un("Matrix4.transformDirection","3.0"),this.transformAsVector(e,t)}}],[{key:"_computeInfinitePerspectiveOffCenter",value:function(e,t,A,n,r,i){var o=2*i/(A-t),a=2*i/(r-n),s=(A+t)/(A-t),g=(r+n)/(r-n),c=-2*i;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=s,e[9]=g,e[10]=-1,e[11]=-1,e[12]=0,e[13]=0,e[14]=c,e[15]=0,e}}]),A}(Sr);function Tr(e,t,A,n,r){return Zr.apply(this,arguments)}function Zr(){return(Zr=Object(J.a)(Y.a.mark((function e(t,A,n,r,i){return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=Hr(t,A,n,r,i),e.next=3,Qr(t,t.gltfFormat,r,i);case 3:return e.abrupt("return",n);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Hr(e,t,A,n,r){if(A=kn(e,t,A),1!==e.version)throw new Error("Instanced 3D Model version ".concat(e.version," is not supported"));A=xn(e,t,A);var i=new DataView(t);if(e.gltfFormat=i.getUint32(A,!0),A=Er(e,t,A=Nn(e,t,A+=4),n),0===e.featureTableJsonByteLength)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");var o=new En(e.featureTableJson,e.featureTableBinary),a=o.getGlobalProperty("INSTANCES_LENGTH");if(o.featuresLength=a,!Number.isFinite(a))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");e.eastNorthUp=o.getGlobalProperty("EAST_NORTH_UP"),e.rtcCenter=o.getGlobalProperty("RTC_CENTER",zA.FLOAT,3);new Gn(e.batchTableJson,e.batchTableBinary,a);return function(e,t,A,n){for(var r=[new Array(n),e._batchTable][0],i=new fn,o=(new fn,new fn,new fn,new kr),a=new Nr,s=new fn,g={},c=new Lr,u=[],l=[],I=new fn,C=new fn,h=0;h<n;h++){var f=void 0;if(t.hasProperty("POSITION"))f=t.getProperty("POSITION",zA.FLOAT,3,h,i);else if(t.hasProperty("POSITION_QUANTIZED")){f=t.getProperty("POSITION_QUANTIZED",zA.UNSIGNED_SHORT,3,h,i);var d=t.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",zA.FLOAT,3,I);if(!d)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");var B=t.getGlobalProperty("QUANTIZED_VOLUME_SCALE",zA.FLOAT,3,C);if(!B)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");for(var p=0;p<3;p++)f[p]=f[p]/65535*B[p]+d[p]}if(!f)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");i.copy(f),g.translation=i,e.normalUp=t.getProperty("NORMAL_UP",zA.FLOAT,3,h,u),e.normalRight=t.getProperty("NORMAL_RIGHT",zA.FLOAT,3,h,l);if(e.normalUp){if(!e.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");e.hasCustomOrientation=!0}else{if(e.octNormalUp=t.getProperty("NORMAL_UP_OCT32P",zA.UNSIGNED_SHORT,2,u),e.octNormalRight=t.getProperty("NORMAL_RIGHT_OCT32P",zA.UNSIGNED_SHORT,2,l),e.octNormalUp){if(!e.octNormalRight)throw new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");throw new Error("i3dm: oct-encoded orientation not implemented")}e.eastNorthUp?(Ut.WGS84.eastNorthUpToFixedFrame(i,c),c.getRotationMatrix3(o)):o.identity()}!1,a.fromMatrix3(o),g.rotation=a,s.set(1,1,1);var E=t.getProperty("SCALE",zA.FLOAT,1,h);Number.isFinite(E)&&s.multiplyByScalar(E);var Q=t.getProperty("SCALE_NON_UNIFORM",zA.FLOAT,3,h,u);Q&&s.scale(Q),g.scale=s;var y=t.getProperty("BATCH_ID",zA.UNSIGNED_SHORT,1,h);void 0===y&&(y=h);var v=(new Lr).fromQuaternion(g.rotation);c.identity(),c.translate(g.translation),c.multiplyRight(v),c.scale(g.scale);var m=c.clone();r[h]={modelMatrix:m,batchId:y}}e.instances=r}(e,o,0,a),A}function Yr(e,t,A,n,r,i){return Jr.apply(this,arguments)}function Jr(){return(Jr=Object(J.a)(Y.a.mark((function e(t,A,n,r,i,o){var a,s;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=kn(t,A,n),a=new DataView(A),t.tilesLength=a.getUint32(n,!0),n+=4,t.tiles=[];case 5:if(!(t.tiles.length<t.tilesLength&&t.byteLength-n>12)){e.next=13;break}return s={},t.tiles.push(s),e.next=10,o(A,n,r,i,s);case 10:n=e.sent,e.next=5;break;case 13:return e.abrupt("return",n);case 14:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function jr(e){return Pr.apply(this,arguments)}function Pr(){return(Pr=Object(J.a)(Y.a.mark((function e(t){var A,n,r,i,o=arguments;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:A=o.length>1&&void 0!==o[1]?o[1]:0,n=o.length>2?o[2]:void 0,r=o.length>3?o[3]:void 0,(i=o.length>4&&void 0!==o[4]?o[4]:{}).byteOffset=A,i.type=WA(t,A),e.t0=i.type,e.next=e.t0===VA.COMPOSITE?9:e.t0===VA.BATCHED_3D_MODEL?12:e.t0===VA.INSTANCED_3D_MODEL?15:e.t0===VA.POINT_CLOUD?18:21;break;case 9:return e.next=11,Yr(i,t,A,n,r,jr);case 11:return e.abrupt("return",e.sent);case 12:return e.next=14,mr(i,t,A,n,r);case 14:return e.abrupt("return",e.sent);case 15:return e.next=17,Tr(i,t,A,n,r);case 17:return e.abrupt("return",e.sent);case 18:return e.next=20,ir(i,t,A,n,r);case 20:return e.abrupt("return",e.sent);case 21:throw new Error("3DTileLoader: unknown type ".concat(i.type));case 22:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Vr(e,t){if(e.content){var A=e.content.uri||e.content.url;e.contentUrl="".concat(t.basePath,"/").concat(A)}return e.id=e.contentUrl,e.lodMetricType=uA,e.lodMetricValue=e.geometricError,e.transformMatrix=e.transform,e.type=function(e){if(!e.contentUrl)return iA;var t=e.contentUrl.split(".").pop();switch(t){case"pnts":return aA;case"i3dm":case"b3dm":return oA;default:return t}}(e),e.refine=function(e){switch(e){case"REPLACE":case"replace":return rA;case"ADD":case"add":return nA;default:return e}}(e.refine),e}function Kr(e){var t=e.basePath,A=Vr(e.root,e),n=[];for(n.push(A);n.length>0;){var r,i=n.pop().children||[],o=Object(R.a)(i);try{for(o.s();!(r=o.n()).done;){var a=r.value;Vr(a,{basePath:t}),n.push(a)}}catch(s){o.e(s)}finally{o.f()}}return A}var Wr={id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:"3.0.12",extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:function(e,t,A){return ti.apply(this,arguments)},options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};function Xr(e){return Ot.a.dirname(e.url)}function qr(e,t,A){return zr.apply(this,arguments)}function zr(){return(zr=Object(J.a)(Y.a.mark((function e(t,A,n){var r;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r={content:{featureIds:null}},0,e.next=4,jr(t,0,A,n,r.content);case 4:return e.abrupt("return",r.content);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function $r(e,t,A){return ei.apply(this,arguments)}function ei(){return(ei=Object(J.a)(Y.a.mark((function e(t,A,n){var r;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(r=JSON.parse((new TextDecoder).decode(t))).loader=A.loader||Wr,r.url=n.url,r.basePath=Xr(r),r.root=Kr(r),r.type=cA,r.lodMetricType=uA,r.lodMetricValue=r.root.lodMetricValue,e.abrupt("return",r);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ti(){return(ti=Object(J.a)(Y.a.mark((function e(t,A,n){var r;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=A["3d-tiles"]||{},!("auto"===r.isTileset?n.url&&-1!==n.url.indexOf(".json"):r.isTileset)){e.next=8;break}return e.next=5,$r(t,A,n);case 5:t=e.sent,e.next=11;break;case 8:return e.next=10,qr(t,A,n);case 10:t=e.sent;case 11:return e.abrupt("return",t);case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Ai=[0],ni={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:null,loader:Wr,onTilesetLoad:{type:"function",value:function(e){},compare:!1},onTileLoad:{type:"function",value:function(e){},compare:!1},onTileUnload:{type:"function",value:function(e){},compare:!1},onTileError:{type:"function",value:function(e,t,A){},compare:!1},_getMeshColor:{type:"function",value:function(e){return[255,255,255]},compare:!1}},ri=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"initializeState",value:function(){"onTileLoadFail"in this.props&&ee.a.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}},{key:"shouldUpdateState",value:function(e){return e.changeFlags.somethingChanged}},{key:"updateState",value:function(e){var t=e.props,A=e.oldProps,n=e.changeFlags;if(t.data&&t.data!==A.data&&this._loadTileset(t.data),n.viewportChanged){var r=this.state.activeViewports;Object.keys(r).length&&(this._updateTileset(r),this.state.lastUpdatedViewports=r,this.state.activeViewports={})}if(n.propsChanged){var i=this.state.layerMap;for(var o in i)i[o].needsUpdate=!0}}},{key:"activateViewport",value:function(e){var t=this.state,A=t.activeViewports,n=t.lastUpdatedViewports;this.internalState.viewport=e,A[e.id]=e;var r=null===n||void 0===n?void 0:n[e.id];r&&e.equals(r)||(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}},{key:"getPickingInfo",value:function(e){var t=e.info,A=e.sourceLayer,n=this.state.layerMap,r=A&&A.id;if(r){var i=r.substring(this.id.length+1),o=i.substring(i.indexOf("-")+1);t.object=n[o]&&n[o].tile}return t}},{key:"filterSubLayer",value:function(e){var t=e.layer,A=e.viewport,n=t.props.tile,r=A.id;return n.selected&&n.viewportIds.includes(r)}},{key:"_updateAutoHighlight",value:function(e){e.sourceLayer&&e.sourceLayer.updateAutoHighlight(e)}},{key:"_loadTileset",value:function(){var e=Object(J.a)(Y.a.mark((function e(t){var A,n,r,i,o,a,g;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=this.props.loadOptions,n=void 0===A?{}:A,r=this.props.loader||this.props.loaders,Array.isArray(r)&&(r=r[0]),i={loadOptions:Object(s.a)({},n)},!r.preload){e.next=10;break}return e.next=7,r.preload(t,n);case 7:(o=e.sent).headers&&(i.loadOptions.fetch=Object(s.a)({},i.loadOptions.fetch,{headers:o.headers})),Object.assign(i,o);case 10:return e.next=12,Object(te.a)(t,r,i.loadOptions);case 12:a=e.sent,g=new PA(a,Object(s.a)({onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileLoadFail:this.props.onTileError},i)),this.setState({tileset3d:g,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(g);case 17:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"_onTileLoad",value:function(e){var t=this.state.lastUpdatedViewports;this.props.onTileLoad(e),this._updateTileset(t),this.setNeedsUpdate()}},{key:"_onTileUnload",value:function(e){delete this.state.layerMap[e.id],this.props.onTileUnload(e)}},{key:"_updateTileset",value:function(e){var t=this.state.tileset3d,A=this.context.timeline,n=Object.keys(e).length;if(A&&n&&t){var r=t.update(Object.values(e));this.state.frameNumber!==r&&this.setState({frameNumber:r})}}},{key:"_getSubLayer",value:function(e,t){if(!e.content)return null;switch(e.type){case aA:return this._makePointCloudLayer(e,t);case oA:return this._make3DModelLayer(e,t);case sA:return this._makeSimpleMeshLayer(e,t);default:throw new Error("Tile3DLayer: Failed to render layer of type ".concat(e.content.type))}}},{key:"_makePointCloudLayer",value:function(e,t){var A=e.content,n=A.attributes,r=A.pointCount,i=A.constantRGBA,o=A.cartographicOrigin,a=A.modelMatrix,s=n.positions,g=n.normals,c=n.colors;if(!s)return null;var u=t&&t.props.data||{header:{vertexCount:r},attributes:{POSITION:s,NORMAL:g,COLOR_0:c}},l=this.props,I=l.pointSize,C=l.getPointColor;return new(this.getSubLayerClass("pointcloud",V.a))({pointSize:I},this.getSubLayerProps({id:"pointcloud"}),{id:"".concat(this.id,"-pointcloud-").concat(e.id),tile:e,data:u,coordinateSystem:P.a.METER_OFFSETS,coordinateOrigin:o,modelMatrix:a,getColor:i||C,_offset:0})}},{key:"_make3DModelLayer",value:function(e){var t=e.content,A=t.gltf,n=t.instances,r=t.cartographicOrigin,i=t.modelMatrix;return new(this.getSubLayerClass("scenegraph",K.a))({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:"".concat(this.id,"-scenegraph-").concat(e.id),tile:e,data:n||Ai,scenegraph:A,coordinateSystem:P.a.METER_OFFSETS,coordinateOrigin:r,modelMatrix:i,getTransformMatrix:function(e){return e.modelMatrix},getPosition:[0,0,0],_offset:0})}},{key:"_makeSimpleMeshLayer",value:function(e,t){var A=e.content,n=A.attributes,r=A.indices,i=A.modelMatrix,o=A.cartographicOrigin,a=A.material,s=A.featureIds,g=this.props._getMeshColor,c=t&&t.props.mesh||new j.a({drawMode:4,attributes:ii(n),indices:r});return new(this.getSubLayerClass("mesh",$))(this.getSubLayerProps({id:"mesh"}),{id:"".concat(this.id,"-mesh-").concat(e.id),tile:e,mesh:c,data:Ai,getColor:g(e),pbrMaterial:a,modelMatrix:i,coordinateOrigin:o,coordinateSystem:P.a.METER_OFFSETS,featureIds:s,_offset:0})}},{key:"renderLayers",value:function(){var e=this,t=this.state,A=t.tileset3d,n=t.layerMap;return A?A.tiles.map((function(t){var A=n[t.id]=n[t.id]||{tile:t},r=A.layer;return t.selected&&(r?A.needsUpdate&&(r=e._getSubLayer(t,r),A.needsUpdate=!1):r=e._getSubLayer(t)),A.layer=r,r})).filter(Boolean):null}},{key:"isLoaded",get:function(){var e=this.state.tileset3d;return e&&e.isLoaded()}}]),A}(g.a);function ii(e){var t={};return t.positions=Object(s.a)({},e.positions,{value:new Float32Array(e.positions.value)}),e.normals&&(t.normals=e.normals),e.texCoords&&(t.texCoords=e.texCoords),e.colors&&(t.colors=e.colors),e.uvRegions&&(t.uvRegions=e.uvRegions),t}ri.layerName="Tile3DLayer",ri.defaultProps=ni;var oi=A(263),ai={name:"Terrain",id:"terrain",module:"terrain",version:"3.0.14",worker:!0,extensions:["png","pngraw"],mimeTypes:["image/png"],options:{terrain:{tesselator:"auto",bounds:null,meshMaxError:10,elevationDecoder:{rScaler:1,gScaler:0,bScaler:0,offset:0},skirtHeight:null}}},si=A(120),gi=[1],ci=Object(s.a)({},b.a.defaultProps,{elevationData:si.f,texture:Object(s.a)({},si.f,{optional:!0}),meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:{type:"string",value:null},wireframe:!1,material:!0,loaders:[ai]});function ui(e){return Array.isArray(e)?e.join(";"):e}var li=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"updateState",value:function(e){var t=e.props,A=e.oldProps,n=t.elevationData!==A.elevationData;if(n){var r=t.elevationData,i=r&&(Array.isArray(r)||r.includes("{x}")&&r.includes("{y}"));this.setState({isTiled:i})}var o=n||t.meshMaxError!==A.meshMaxError||t.elevationDecoder!==A.elevationDecoder||t.bounds!==A.bounds;if(!this.state.isTiled&&o){var a=this.loadTerrain(t);this.setState({terrain:a})}t.workerUrl&&ee.a.removed("workerUrl","loadOptions.terrain.workerUrl")()}},{key:"loadTerrain",value:function(e){var t,A=e.elevationData,n=e.bounds,r=e.elevationDecoder,i=e.meshMaxError,o=e.signal;if(!A)return null;var a=this.getLoadOptions();return a=Object(s.a)({},a,{terrain:Object(s.a)({skirtHeight:this.state.isTiled?2*i:0},null===(t=a)||void 0===t?void 0:t.terrain,{bounds:n,meshMaxError:i,elevationDecoder:r})}),(0,this.props.fetch)(A,{propName:"elevationData",layer:this,loadOptions:a,signal:o})}},{key:"getTiledTerrainData",value:function(e){var t=this.props,A=t.elevationData,n=t.fetch,r=t.texture,i=t.elevationDecoder,o=t.meshMaxError,a=Object(si.b)(A,e),s=Object(si.b)(r,e),g=e.bbox,c=e.signal,u=e.z,l=new oi.a({longitude:(g.west+g.east)/2,latitude:(g.north+g.south)/2,zoom:u}),I=l.projectFlat([g.west,g.south]),C=l.projectFlat([g.east,g.north]),h=[I[0],I[1],C[0],C[1]],f=this.loadTerrain({elevationData:a,bounds:h,elevationDecoder:i,meshMaxError:o,signal:c}),d=s?n(s,{propName:"texture",layer:this,loaders:[],signal:c}).catch((function(e){return null})):Promise.resolve(null);return Promise.all([f,d])}},{key:"renderSubLayers",value:function(e){var t=this.getSubLayerClass("mesh",z.a),A=e.data,n=e.color;if(!A)return null;var r=Object(u.a)(A,2),i=r[0],o=r[1];return new t(e,{data:gi,mesh:i,texture:o,coordinateSystem:P.a.CARTESIAN,getPosition:function(e){return[0,0,0]},getColor:n})}},{key:"onViewportLoad",value:function(e){if(e){var t=this.state.zRange,A=e.map((function(e){return e.content})).filter(Boolean).map((function(e){return e[0].header.boundingBox.map((function(e){return e[2]}))}));if(0!==A.length){var n=Math.min.apply(Math,Object(ne.a)(A.map((function(e){return e[0]})))),r=Math.max.apply(Math,Object(ne.a)(A.map((function(e){return e[1]}))));(!t||n<t[0]||r>t[1])&&this.setState({zRange:[n,r]})}}}},{key:"renderLayers",value:function(){var e=this.props,t=e.color,A=e.material,n=e.elevationData,r=e.texture,i=e.wireframe,o=e.meshMaxError,a=e.elevationDecoder,s=e.tileSize,g=e.maxZoom,c=e.minZoom,u=e.extent,l=e.maxRequests,I=e.onTileLoad,C=e.onTileUnload,h=e.onTileError,f=e.maxCacheSize,d=e.maxCacheByteSize,B=e.refinementStrategy;return this.state.isTiled?new b.a(this.getSubLayerProps({id:"tiles"}),{wireframe:i,color:t,material:A,getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:ui(n),texture:ui(r),meshMaxError:o,elevationDecoder:a}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:s,maxZoom:g,minZoom:c,extent:u,maxRequests:l,onTileLoad:I,onTileUnload:C,onTileError:h,maxCacheSize:f,maxCacheByteSize:d,refinementStrategy:B}):new(this.getSubLayerClass("mesh",z.a))(this.getSubLayerProps({id:"mesh"}),{data:gi,mesh:this.state.terrain,texture:r,_instanced:!1,getPosition:function(e){return[0,0,0]},getColor:t,material:A,wireframe:i})}}]),A}(g.a);li.layerName="TerrainLayer",li.defaultProps=ci;var Ii=function(){function e(t,A,r,i,o){Object(n.a)(this,e),this.properties={},this.extent=r,this.type=0,this.id=null,this._pbf=t,this._geometry=-1,this._keys=i,this._values=o,t.readFields(hi,this,A)}return Object(a.a)(e,null,[{key:"types",get:function(){return["Unknown","Point","LineString","Polygon"]}}]),Object(a.a)(e,[{key:"loadGeometry",value:function(){var e=this._pbf;e.pos=this._geometry;for(var t,A=e.readVarint()+e.pos,n=1,r=0,i=0,o=0,a=[];e.pos<A;){if(r<=0){var s=e.readVarint();n=7&s,r=s>>3}if(r--,1===n||2===n)i+=e.readSVarint(),o+=e.readSVarint(),1===n&&(t&&a.push(t),t=[]),t.push([i,o]);else{if(7!==n)throw new Error("unknown command ".concat(n));t&&t.push(t[0].slice())}}return t&&a.push(t),a}},{key:"bbox",value:function(){var e=this._pbf;e.pos=this._geometry;for(var t=e.readVarint()+e.pos,A=1,n=0,r=0,i=0,o=1/0,a=-1/0,s=1/0,g=-1/0;e.pos<t;){if(n<=0){var c=e.readVarint();A=7&c,n=c>>3}if(n--,1===A||2===A)(r+=e.readSVarint())<o&&(o=r),r>a&&(a=r),(i+=e.readSVarint())<s&&(s=i),i>g&&(g=i);else if(7!==A)throw new Error("unknown command ".concat(A))}return[o,s,a,g]}},{key:"_toGeoJSON",value:function(t){var A,n,r=this.loadGeometry(),i=e.types[this.type];switch(this.type){case 1:var o=[];for(A=0;A<r.length;A++)o[A]=r[A][0];t(r=o,this);break;case 2:for(A=0;A<r.length;A++)t(r[A],this);break;case 3:for(r=function(e){var t=e.length;if(t<=1)return[e];for(var A,n,r=[],i=0;i<t;i++){var o=Ci(e[i]);0!==o&&(void 0===n&&(n=o<0),n===o<0?(A&&r.push(A),A=[e[i]]):A.push(e[i]))}A&&r.push(A);return r}(r),A=0;A<r.length;A++)for(n=0;n<r[A].length;n++)t(r[A][n],this)}1===r.length?r=r[0]:i="Multi".concat(i);var a={type:"Feature",geometry:{type:i,coordinates:r},properties:this.properties};return null!==this.id&&(a.id=this.id),a}},{key:"toGeoJSON",value:function(e){if("function"===typeof e)return this._toGeoJSON(e);var t=e.x,A=e.y,n=e.z,r=this.extent*Math.pow(2,n),i=this.extent*t,o=this.extent*A;return this._toGeoJSON((function(e){for(var t=0;t<e.length;t++){var A=e[t];A[0]=360*(A[0]+i)/r-180;var n=180-360*(A[1]+o)/r;A[1]=360/Math.PI*Math.atan(Math.exp(n*Math.PI/180))-90}}))}}]),e}();function Ci(e){for(var t,A,n=0,r=0,i=e.length-1;r<e.length;i=r++)t=e[r],n+=((A=e[i])[0]-t[0])*(t[1]+A[1]);return n}function hi(e,t,A){1===e?t.id=A.readVarint():2===e?function(e,t){var A=e.readVarint()+e.pos;for(;e.pos<A;){var n=t._keys[e.readVarint()],r=t._values[e.readVarint()];t.properties[n]=r}}(A,t):3===e?t.type=A.readVarint():4===e&&(t._geometry=A.pos)}var fi=function(){function e(t,A){Object(n.a)(this,e),this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(di,this,A),this.length=this._features.length}return Object(a.a)(e,[{key:"feature",value:function(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];var t=this._pbf.readVarint()+this._pbf.pos;return new Ii(this._pbf,t,this.extent,this._keys,this._values)}}]),e}();function di(e,t,A){15===e?t.version=A.readVarint():1===e?t.name=A.readString():5===e?t.extent=A.readVarint():2===e?t._features.push(A.pos):3===e?t._keys.push(A.readString()):4===e&&t._values.push(function(e){var t=null,A=e.readVarint()+e.pos;for(;e.pos<A;){var n=e.readVarint()>>3;t=1===n?e.readString():2===n?e.readFloat():3===n?e.readDouble():4===n?e.readVarint64():5===n?e.readVarint():6===n?e.readSVarint():7===n?e.readBoolean():null}return t}(A))}var Bi=function e(t,A){Object(n.a)(this,e),this.layers=t.readFields(pi,{},A)};function pi(e,t,A){if(3===e){var n=new fi(A,A.readVarint()+A.pos);n.length&&(t[n.name]=n)}}var Ei,Qi,yi,vi,mi,bi,wi,Si=A(89),Fi=function(){function e(t,A,r,i,o,a){Object(n.a)(this,e),this.properties={},this.extent=r,this.type=0,this.id=null,this._pbf=t,this._geometry=-1,this._keys=i,this._values=o,this._firstPassData=a,t.readFields(Di,this,A)}return Object(a.a)(e,null,[{key:"types",get:function(){return["Unknown","Point","LineString","Polygon"]}}]),Object(a.a)(e,[{key:"loadGeometry",value:function(){var e=this._pbf;e.pos=this._geometry,Ei=e.readVarint()+e.pos,Qi=1,vi=0,mi=0,bi=0,wi=0;for(var t=[],A=[];e.pos<Ei;)if(vi<=0&&(yi=e.readVarint(),Qi=7&yi,vi=yi>>3),vi--,1===Qi||2===Qi)mi+=e.readSVarint(),bi+=e.readSVarint(),1===Qi&&t.push(wi),A.push(mi,bi),wi+=2;else{if(7!==Qi)throw new Error("unknown command ".concat(Qi));if(wi>0){var n=t[t.length-1];A.push(A[n],A[n+1]),wi+=2}}return{data:A,lines:t}}},{key:"_toBinaryCoordinates",value:function(t){var A=this.loadGeometry();t(A.data,this);switch(this.type){case 1:this._firstPassData.pointFeaturesCount++,this._firstPassData.pointPositionsCount+=A.lines.length;break;case 2:this._firstPassData.lineFeaturesCount++,this._firstPassData.linePathsCount+=A.lines.length,this._firstPassData.linePositionsCount+=A.data.length/2;break;case 3:var n=Ri(A);this._firstPassData.polygonFeaturesCount++,this._firstPassData.polygonObjectsCount+=n.lines.length;var r,i=Object(R.a)(n.lines);try{for(i.s();!(r=i.n()).done;){var o=r.value;this._firstPassData.polygonRingsCount+=o.length}}catch(s){i.e(s)}finally{i.f()}this._firstPassData.polygonPositionsCount+=n.data.length/2,A=n}A.type=e.types[this.type],A.lines.length>1&&(A.type="Multi".concat(A.type));var a={type:"Feature",geometry:A,properties:this.properties};return null!==this.id&&(a.id=this.id),a}},{key:"toBinaryCoordinates",value:function(e){if("function"===typeof e)return this._toBinaryCoordinates(e);var t=e.x,A=e.y,n=e.z,r=this.extent*Math.pow(2,n),i=this.extent*t,o=this.extent*A;return this._toBinaryCoordinates((function(e){for(var t=0,A=e.length;t<A;t+=2){e[t]=360*(e[t]+i)/r-180;var n=180-360*(e[t+1]+o)/r;e[t+1]=360/Math.PI*Math.atan(Math.exp(n*Math.PI/180))-90}}))}}]),e}();function Ri(e){var t=e.lines.length;if(t<=1)return{data:e.data,areas:[[Object(Si.g)(e.data)]],lines:[e.lines]};for(var A,n,r,i,o,a=[],s=[],g=0,c=0;c<t;c++){i=e.lines[c]-g,o=e.lines[c+1]-g||e.data.length;var u=e.data.slice(i,o),l=Object(Si.g)(u);if(0!==l)void 0===r&&(r=l<0),r===l<0?(n&&(a.push(A),s.push(n)),n=[i],A=[l]):(A.push(l),n.push(i));else{var I=e.data.slice(0,i),C=e.data.slice(o);e.data=I.concat(C),g+=o-i}}return A&&a.push(A),n&&s.push(n),{areas:a,lines:s,data:e.data}}function Di(e,t,A){1===e?t.id=A.readVarint():2===e?function(e,t){var A=e.readVarint()+e.pos;for(;e.pos<A;){var n=t._keys[e.readVarint()],r=t._values[e.readVarint()];t.properties[n]=r}}(A,t):3===e?t.type=A.readVarint():4===e&&(t._geometry=A.pos)}var Gi=function(){function e(t,A){Object(n.a)(this,e),this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(ki,this,A),this.length=this._features.length}return Object(a.a)(e,[{key:"feature",value:function(e,t){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];var A=this._pbf.readVarint()+this._pbf.pos;return new Fi(this._pbf,A,this.extent,this._keys,this._values,t)}}]),e}();function ki(e,t,A){15===e?t.version=A.readVarint():1===e?t.name=A.readString():5===e?t.extent=A.readVarint():2===e?t._features.push(A.pos):3===e?t._keys.push(A.readString()):4===e&&t._values.push(function(e){var t=null,A=e.readVarint()+e.pos;for(;e.pos<A;){var n=e.readVarint()>>3;t=1===n?e.readString():2===n?e.readFloat():3===n?e.readDouble():4===n?e.readVarint64():5===n?e.readVarint():6===n?e.readSVarint():7===n?e.readBoolean():null}return t}(A))}var xi=function e(t,A){Object(n.a)(this,e),this.layers=t.readFields(Ni,{},A)};function Ni(e,t,A){if(3===e){var n=new Gi(A,A.readVarint()+A.pos);n.length&&(t[n.name]=n)}}function Ui(e){var t,A,n={},r=Object(R.a)(e);try{for(r.s();!(t=r.n()).done;){var i=t.value;if(i.properties)for(var o in i.properties){var a=n[o];if(a||void 0===a){var s=i.properties[o];n[o]=(A=s,Number.isFinite(A))}}}}catch(g){r.e(g)}finally{r.f()}return Object.keys(n).filter((function(e){return n[e]}))}function _i(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=t.pointPositionsCount,r=t.pointFeaturesCount,i=t.linePositionsCount,o=t.linePathsCount,a=t.lineFeaturesCount,s=t.polygonPositionsCount,g=t.polygonObjectsCount,c=t.polygonRingsCount,u=t.polygonFeaturesCount,l=A.numericPropKeys,I=A.PositionDataType,C=void 0===I?Float32Array:I,h=(e[0]&&"id"in e[0]),f=2,d=e.length>65535?Uint32Array:Uint16Array,B={positions:new C(n*f),globalFeatureIds:new d(n),featureIds:r>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},p={pathIndices:i>65535?new Uint32Array(o+1):new Uint16Array(o+1),positions:new C(i*f),globalFeatureIds:new d(i),featureIds:a>65535?new Uint32Array(i):new Uint16Array(i),numericProps:{},properties:[],fields:[]},E={polygonIndices:s>65535?new Uint32Array(g+1):new Uint16Array(g+1),primitivePolygonIndices:s>65535?new Uint32Array(c+1):new Uint16Array(c+1),positions:new C(s*f),triangles:[],globalFeatureIds:new d(s),featureIds:u>65535?new Uint32Array(s):new Uint16Array(s),numericProps:{},properties:[],fields:[]},Q=0,y=[B,p,E];Q<y.length;Q++){var v,m=y[Q],b=Object(R.a)(l);try{for(b.s();!(v=b.n()).done;){var w=v.value;m.numericProps[w]=new Float32Array(m.positions.length/f)}}catch(N){b.e(N)}finally{b.f()}}p.pathIndices[o]=i,E.polygonIndices[g]=s,E.primitivePolygonIndices[c]=s;var S,F={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0},D=Object(R.a)(e);try{for(D.s();!(S=D.n()).done;){var G=S.value,k=G.geometry,x=G.properties||{};switch(k.type){case"Point":case"MultiPoint":Mi(k,B,F,f,x),B.properties.push(Yi(x,l)),h&&B.fields.push({id:G.id}),F.pointFeature++;break;case"LineString":case"MultiLineString":Oi(k,p,F,f,x),p.properties.push(Yi(x,l)),h&&p.fields.push({id:G.id}),F.lineFeature++;break;case"Polygon":case"MultiPolygon":Li(k,E,F,f,x),E.properties.push(Yi(x,l)),h&&E.fields.push({id:G.id}),F.polygonFeature++;break;default:throw new Error("Invalid geometry type")}F.feature++}}catch(N){D.e(N)}finally{D.f()}return Zi(B,p,E,f)}function Mi(e,t,A,n,r){t.positions.set(e.data,A.pointPosition*n);var i=e.data.length/n;Hi(t,r,A.pointPosition,i),t.globalFeatureIds.fill(A.feature,A.pointPosition,A.pointPosition+i),t.featureIds.fill(A.pointFeature,A.pointPosition,A.pointPosition+i),A.pointPosition+=i}function Oi(e,t,A,n,r){t.positions.set(e.data,A.linePosition*n);var i=e.data.length/n;Hi(t,r,A.linePosition,i),t.globalFeatureIds.fill(A.feature,A.linePosition,A.linePosition+i),t.featureIds.fill(A.lineFeature,A.linePosition,A.linePosition+i);for(var o=0,a=e.lines.length;o<a;++o){var s=e.lines[o],g=o===a-1?e.data.length:e.lines[o+1];t.pathIndices[A.linePath++]=A.linePosition,A.linePosition+=(g-s)/n}}function Li(e,t,A,n,r){t.positions.set(e.data,A.polygonPosition*n);var i=e.data.length/n;Hi(t,r,A.polygonPosition,i),t.globalFeatureIds.fill(A.feature,A.polygonPosition,A.polygonPosition+i),t.featureIds.fill(A.polygonFeature,A.polygonPosition,A.polygonPosition+i);for(var o=0,a=e.lines.length;o<a;++o){var s=A.polygonPosition;t.polygonIndices[A.polygonObject++]=s;for(var g=e.areas[o],c=e.lines[o],u=e.lines[o+1],l=0,I=c.length;l<I;++l){var C=c[l],h=l===I-1?void 0===u?e.data.length:u[0]:c[l+1];t.primitivePolygonIndices[A.polygonRing++]=A.polygonPosition,A.polygonPosition+=(h-C)/n}Ti(t,g,c,{startPosition:s,endPosition:A.polygonPosition,coordLength:n})}}function Ti(e,t,A,n){for(var r=n.startPosition,i=n.endPosition,o=n.coordLength,a=r*o,s=i*o,g=e.positions.subarray(a,s),c=A[0],u=A.slice(1).map((function(e){return(e-c)/o})),l=Object(Si.f)(g,u,o,t),I=0,C=l.length;I<C;++I)e.triangles.push(r+l[I])}function Zi(e,t,A,n){var r={points:Object(s.a)({},e,{positions:{value:e.positions,size:n},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1}}),lines:Object(s.a)({},t,{pathIndices:{value:t.pathIndices,size:1},positions:{value:t.positions,size:n},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1}}),polygons:Object(s.a)({},A,{polygonIndices:{value:A.polygonIndices,size:1},primitivePolygonIndices:{value:A.primitivePolygonIndices,size:1},positions:{value:A.positions,size:n},triangles:{value:new Uint32Array(A.triangles),size:1},globalFeatureIds:{value:A.globalFeatureIds,size:1},featureIds:{value:A.featureIds,size:1}})};for(var i in r)for(var o in r[i].numericProps)r[i].numericProps[o]={value:r[i].numericProps[o],size:1};return r}function Hi(e,t,A,n){for(var r in e.numericProps)r in t&&e.numericProps[r].fill(t[r],A,A+n)}function Yi(e,t){var A={};for(var n in e)t.includes(n)||(A[n]=e[n]);return A}var Ji=A(521),ji=A.n(Ji);function Pi(e,t){var A="binary"===(t=function(e){var t="wgs84"===(e=Object(s.a)({},e,{mvt:e.mvt||{},gis:e.gis||{}})).coordinates,A=e.tileIndex,n=A&&Number.isFinite(A.x)&&Number.isFinite(A.y)&&Number.isFinite(A.z);if(t&&!n)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property. Check documentation.");return e}(t)).gis.format,n=[],r={pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(e.byteLength>0){var i=A?new xi(new ji.a(e)):new Bi(new ji.a(e)),o=t.mvt;(Array.isArray(o.layers)?o.layers:Object.keys(i.layers)).forEach((function(e){var t=i.layers[e],a=Object(s.a)({},o,{layerName:e});if(t)for(var g=0;g<t.length;g++){var c=t.feature(g,r),u=A?Ki(c,a):Vi(c,a);n.push(u)}}))}if(A){var a=function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return _i(e,t,{numericPropKeys:A.numericPropKeys||Ui(e),PositionDataType:A.PositionDataType||Float32Array})}(n,r,t.gis);return a.byteLength=e.byteLength,a}return n}function Vi(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=e.toGeoJSON("wgs84"===t.coordinates?t.tileIndex:Wi);return t.layerProperty&&(A.properties[t.layerProperty]=t.layerName),A}function Ki(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=e.toBinaryCoordinates("wgs84"===t.coordinates?t.tileIndex:Xi);return t.layerProperty&&(A.properties[t.layerProperty]=t.layerName),A}function Wi(e,t){for(var A=t.extent,n=0;n<e.length;n++){var r=e[n];r[0]/=A,r[1]/=A}}function Xi(e,t){for(var A=t.extent,n=0,r=e.length;n<r;++n)e[n]/=A}var qi={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:"3.0.14",extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{coordinates:"local",layerProperty:"layerName",layers:null,tileIndex:null}}};Object(s.a)({},qi,{parse:function(){var e=Object(J.a)(Y.a.mark((function e(t,A){return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Pi(t,A));case 1:case"end":return e.stop()}}),e)})));return function(t,A){return e.apply(this,arguments)}}(),parseSync:Pi,binary:!0});function zi(e,t){var A=null===t||void 0===t?void 0:t.globalFeatureId;return void 0!==A?function(e,t){var A,n=to(e),r=Object(R.a)(n);try{for(r.s();!(A=r.n()).done;){for(var i=A.value,o=0,a=i.featureIds.value[0],s=0;s<i.featureIds.value.length;s++){var g=i.featureIds.value[s];if(g!==a){if(t===i.globalFeatureIds.value[o])return Ao(i,o,s);o=s,a=g}}if(t===i.globalFeatureIds.value[o])return Ao(i,o,i.featureIds.value.length)}}catch(c){r.e(c)}finally{r.f()}throw new Error("featureId:".concat(t," not found"))}(e,A):$i(e,null===t||void 0===t?void 0:t.type)}function $i(e,t){return function(e){var t,A=[],n=Object(R.a)(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(0!==r.featureIds.value.length){for(var i=0,o=r.featureIds.value[0],a=0;a<r.featureIds.value.length;a++){var s=r.featureIds.value[a];s!==o&&(A.push(Ao(r,i,a)),i=a,o=s)}A.push(Ao(r,i,r.featureIds.value.length))}}}catch(g){n.e(g)}finally{n.f()}return A}(to(e,t))}function eo(e,t,A){switch(e.type){case"Point":return function(e,t,A){var n=no(e.positions,t,A);if(n.length>1)return{type:"MultiPoint",coordinates:n};return{type:"Point",coordinates:n[0]}}(e,t,A);case"LineString":return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1/0,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,n=e.positions,r=e.pathIndices.value.filter((function(e){return e>=t&&e<=A})),i=r.length>2;if(!i){var o=no(n,r[0],r[1]);return{type:"LineString",coordinates:o}}for(var a=[],s=0;s<r.length-1;s++){var g=no(n,r[s],r[s+1]);a.push(g)}return{type:"MultiLineString",coordinates:a}}(e,t,A);case"Polygon":return function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1/0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,r=t.positions,i=t.polygonIndices.value.filter((function(e){return e>=A&&e<=n})),o=t.primitivePolygonIndices.value.filter((function(e){return e>=A&&e<=n})),a=i.length>2;if(!a){for(var s=[],g=0;g<o.length-1;g++){var c=o[g],u=o[g+1],l=no(r,c,u);s.push(l)}return{type:"Polygon",coordinates:s}}for(var I=[],C=0;C<i.length-1;C++){var h=i[C],f=i[C+1],d=e(t,h,f).coordinates;I.push(d)}return{type:"MultiPolygon",coordinates:I}}(e,t,A);default:throw new Error("Unsupported geometry type: ".concat(null===e||void 0===e?void 0:e.type))}}function to(e,t){if(!Boolean(e.points||e.lines||e.polygons))return e.type=t||function(e){if(e.pathIndices)return"LineString";if(e.polygonIndices)return"Polygon";return"Point"}(e),[e];var A=[];return e.points&&(e.points.type="Point",A.push(e.points)),e.lines&&(e.lines.type="LineString",A.push(e.lines)),e.polygons&&(e.polygons.type="Polygon",A.push(e.polygons)),A}function Ao(e,t,A){var n=eo(e,t,A),r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=(arguments.length>2&&arguments[2],Object.assign({},e.properties[e.featureIds.value[t]]));for(var n in e.numericProps)A[n]=e.numericProps[n].value[t];return A}(e,t,A),i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;arguments.length>2&&arguments[2];return e.fields&&e.fields[e.featureIds.value[t]]}(e,t,A);return Object(s.a)({type:"Feature",geometry:n,properties:r},i)}function no(e,t,A){t=t||0,A=A||e.value.length/e.size;for(var n=[],r=t;r<A;r++){for(var i=Array(),o=r*e.size;o<(r+1)*e.size;o++)i.push(Number(e.value[o]));n.push(i)}return n}var ro=A(579),io={clipBounds:[0,0,1,1]},oo="\nuniform vec4 clip_bounds;\n\nbool clip_isInBounds(vec2 position) {\n return position.x >= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3];\n}\n",ao={name:"clip-vs",vs:oo},so={"vs:#decl":"\nvarying float clip_isVisible;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));\n","fs:#decl":"\nvarying float clip_isVisible;\n","fs:DECKGL_FILTER_COLOR":"\n if (clip_isVisible < 0.5) discard;\n"},go={name:"clip-fs",fs:oo},co={"vs:#decl":"\nvarying vec2 clip_commonPosition;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_commonPosition = geometry.position.xy;\n","fs:#decl":"\nvarying vec2 clip_commonPosition;\n","fs:DECKGL_FILTER_COLOR":"\n if (!clip_isInBounds(clip_commonPosition)) discard;\n"},uo=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"getShaders",value:function(){var e="instancePositions"in this.getAttributeManager().attributes;return"clipByInstance"in this.props&&(e=this.props.clipByInstance),this.state.clipByInstance=e,e?{modules:[ao],inject:so}:{modules:[go],inject:co}}},{key:"draw",value:function(e){var t=e.uniforms,A=this.props.clipBounds,n=void 0===A?io.clipBounds:A;if(this.state.clipByInstance)t.clip_bounds=n;else{var r=this.projectPosition([n[0],n[1],0]),i=this.projectPosition([n[2],n[3],0]);t.clip_bounds=[Math.min(r[0],i[0]),Math.min(r[1],i[1]),Math.max(r[0],i[0]),Math.max(r[1],i[1])]}}}]),A}(ro.a);uo.extensionName="ClipExtension",uo.defaultProps=io;var lo={Point:Io,MultiPoint:function(e,t,A){return Co(e,t,A)},LineString:ho,MultiLineString:function(e,t,A){return e.map((function(e){return ho(e,t,A)}))},Polygon:fo,MultiPolygon:function(e,t,A){return e.map((function(e){return fo(e,t,A)}))}};function Io(e,t,A){var n=Object(u.a)(e,2),r=n[0],i=n[1],o=Object(u.a)(t,2),a=o[0],s=o[1],g=Object(N.lerp)(a[0],s[0],r),c=Object(N.lerp)(a[1],s[1],i);return A.unprojectFlat([g,c])}function Co(e,t,A){return e.map((function(e){return Io(e,t,A)}))}function ho(e,t,A){return Co(e,t,A)}function fo(e,t,A){return e.map((function(e){return Co(e,t,A)}))}var Bo=["points","lines","polygons"];function po(e,t,A,n){var r=e.featureIds.value;if(!r.length)return-1;var i=0,o=r[r.length-1]+1;if(n){var a=function(e,t){if(!e.__layers){for(var A={},n=e.properties,r=0;r<n.length;r++){var i=n[r].layerName;i&&(A[i]?A[i][1]=r:A[i]=[r,r])}e.__layers=A}return e.__layers[t]}(e,n);if(!a)return-1;i=a[0],o=a[1]+1}var s=-1;if(t in e.numericProps){var g=e.numericProps[t].value.findIndex((function(e,t){return e===A&&r[t]>=i&&r[t]<o}));return g>=0?e.globalFeatureIds.value[g]:-1}return(s=t?Eo(e.properties,(function(e){return e[t]===A}),i,o):Eo(e.fields,(function(e){return e.id===A}),i,o))>=0?function(e,t){if(!e.__ids){for(var A=[],n=e.featureIds.value,r=e.globalFeatureIds.value,i=0;i<n.length;i++)A[n[i]]=r[i];e.__ids=A}return e.__ids[t]}(e,s):-1}function Eo(e,t,A,n){for(var r=A;r<n;r++)if(t(e[r],r))return r;return-1}var Qo=A(646),yo={uniqueIdProperty:{type:"string",value:""},highlightedFeatureId:null,loaders:[qi],binary:!0},vo=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(){return Object(n.a)(this,A),t.apply(this,arguments)}return Object(a.a)(A,[{key:"initializeState",value:function(){Object(S.a)(Object(w.a)(A.prototype),"initializeState",this).call(this),this.setState({data:null,tileJSON:null})}},{key:"updateState",value:function(e){var t=e.props,n=e.oldProps,r=e.context,i=e.changeFlags;i.dataChanged&&this._updateTileData(),this.state.data&&(Object(S.a)(Object(w.a)(A.prototype),"updateState",this).call(this,{props:t,oldProps:n,context:r,changeFlags:i}),this._setWGS84PropertyForTiles())}},{key:"_updateTileData",value:function(){var e=Object(J.a)(Y.a.mark((function e(){var t,A,n,r,i;return Y.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.props.data,A=null,"string"!==typeof t||Object(si.c)(t)){e.next=18;break}return n=this.props,r=n.onDataLoad,i=n.fetch,this.setState({data:null,tileJSON:null}),e.prev=5,e.next=8,i(t,{propName:"data",layer:this,loaders:[]});case 8:A=e.sent,e.next=15;break;case 11:e.prev=11,e.t0=e.catch(5),this.raiseError(e.t0,"loading TileJSON"),t=null;case 15:r&&r(A),e.next=19;break;case 18:t.tilejson&&(A=t);case 19:A&&(t=A.tiles),this.setState({data:t,tileJSON:A});case 21:case"end":return e.stop()}}),e,this,[[5,11]])})));return function(){return e.apply(this,arguments)}}()},{key:"_getTilesetOptions",value:function(e){var t=Object(S.a)(Object(w.a)(A.prototype),"_getTilesetOptions",this).call(this,e),n=this.state.tileJSON;return n&&(Number.isFinite(n.minzoom)&&n.minzoom>e.minZoom&&(t.minZoom=n.minzoom),Number.isFinite(n.maxzoom)&&(!Number.isFinite(e.maxZoom)||n.maxzoom<e.maxZoom)&&(t.maxZoom=n.maxzoom)),t}},{key:"renderLayers",value:function(){return this.state.data?Object(S.a)(Object(w.a)(A.prototype),"renderLayers",this).call(this):null}},{key:"getTileData",value:function(e){var t,A=Object(si.b)(this.state.data,e);if(!A)return Promise.reject("Invalid URL");var n=this.getLoadOptions(),r=this.props,i=r.binary,o=r.fetch,a=e.signal,g=e.x,c=e.y,u=e.z;return o(A,{propName:"data",layer:this,loadOptions:n=Object(s.a)({},n,{mimeType:"application/x-protobuf",mvt:Object(s.a)({},null===(t=n)||void 0===t?void 0:t.mvt,{coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:{x:g,y:c,z:u}}),gis:i?{format:"binary"}:{}}),signal:a})}},{key:"renderSubLayers",value:function(e){var t=e.tile,n=Math.pow(2,t.z),r=512/n,i=-r,o=512*t.x/n,a=512*(1-t.y/n),s=(new N.Matrix4).scale([r,i,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=s,e.coordinateOrigin=[o,a,0],e.coordinateSystem=P.a.CARTESIAN,e.extensions=[].concat(Object(ne.a)(e.extensions||[]),[new uo]));var g=Object(S.a)(Object(w.a)(A.prototype),"renderSubLayers",this).call(this,e);return!this.props.binary||g instanceof Qo.a||ee.a.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),g}},{key:"_updateAutoHighlight",value:function(e){var t,A,n=this.props.uniqueIdProperty,r=this.state,i=r.hoveredFeatureId,o=r.hoveredFeatureLayerName,a=e.object;a&&(t=mo(a,n),A=bo(a)),i===t&&o===A||this.setState({hoveredFeatureId:t,hoveredFeatureLayerName:A})}},{key:"getPickingInfo",value:function(e){var t=Object(S.a)(Object(w.a)(A.prototype),"getPickingInfo",this).call(this,e),n=this.context.viewport.resolution;if(this.props.binary&&-1!==t.index){var r=e.sourceLayer.props.data;t.object=zi(r,{globalFeatureId:t.index})}return t.object&&!n&&(t.object=So(t.object,t.tile.bbox,this.context.viewport)),t}},{key:"getHighlightedObjectIndex",value:function(e){var t=this.state,A=t.hoveredFeatureId,n=t.hoveredFeatureLayerName,r=this.props,i=r.uniqueIdProperty,o=r.highlightedFeatureId,a=r.binary,s=e.content,g=wo(o);if(!(wo(A)||g))return-1;var c=g?o:A;return Array.isArray(s)?s.findIndex((function(e){var t=mo(e,i)===c,A=g||bo(e)===n;return t&&A})):s&&a?function(e,t,A,n){var r,i=Object(R.a)(Bo);try{for(i.s();!(r=i.n()).done;){var o=r.value,a=e[o]&&po(e[o],t,A,n);if(a>=0)return a}}catch(s){i.e(s)}finally{i.f()}return-1}(s,i,c,g?"":n):-1}},{key:"_pickObjects",value:function(e){var t=this.context,A=t.deck,n=t.viewport,r=n.width,i=n.height,o=n.x,a=n.y,s=[this.id];return A.pickObjects({x:o,y:a,width:r,height:i,layerIds:s,maxObjects:e})}},{key:"getRenderedFeatures",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,A=this._pickObjects(t),n=new Set,r=[],i=Object(R.a)(A);try{for(i.s();!(e=i.n()).done;){var o=e.value,a=mo(o.object,this.props.uniqueIdProperty);void 0===a?r.push(o.object):n.has(a)||(n.add(a),r.push(o.object))}}catch(s){i.e(s)}finally{i.f()}return r}},{key:"_setWGS84PropertyForTiles",value:function(){var e=this;this.state.tileset.selectedTiles.forEach((function(t){t.hasOwnProperty("dataInWGS84")||Object.defineProperty(t,"dataInWGS84",{get:function(){if(!t.content)return null;if(e.props.binary&&Array.isArray(t.content)&&!t.content.length)return[];if(void 0===t._contentWGS84){var A=e.props.binary?zi(t.content):t.content;t._contentWGS84=A.map((function(A){return So(A,t.bbox,e.context.viewport)}))}return t._contentWGS84}})}))}},{key:"isLoaded",get:function(){return this.state.data&&this.state.tileset&&Object(S.a)(Object(w.a)(A.prototype),"isLoaded",this)}}]),A}(b.a);function mo(e,t){return t?e.properties[t]:"id"in e?e.id:void 0}function bo(e){var t;return(null===(t=e.properties)||void 0===t?void 0:t.layerName)||null}function wo(e){return void 0!==e&&null!==e&&""!==e}function So(e,t,A){var n=Object(s.a)({},e,{geometry:{type:e.geometry.type}});return Object.defineProperty(n.geometry,"coordinates",{get:function(){return function(e,t,A){var n=[A.projectFlat([t.west,t.north]),A.projectFlat([t.east,t.south])];return Object(s.a)({},e,{coordinates:lo[e.type](e.coordinates,n,A)})}(e.geometry,t,A).coordinates}}),n}vo.layerName="MVTLayer",vo.defaultProps=yo,A.d(t,"GreatCircleLayer",(function(){return o})),A.d(t,"S2Layer",(function(){return m})),A.d(t,"TileLayer",(function(){return b.a})),A.d(t,"TripsLayer",(function(){return F})),A.d(t,"H3ClusterLayer",(function(){return x})),A.d(t,"H3HexagonLayer",(function(){return Z})),A.d(t,"Tile3DLayer",(function(){return ri})),A.d(t,"TerrainLayer",(function(){return li})),A.d(t,"MVTLayer",(function(){return vo}))},function(e,t,A){"use strict";var n=A(2),r=A(6),i=A(7),o=A(1),a=A(4),s=A(390),g=A(163),c=A(41),u=A(147),l=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(o.a)(this,e),this.views=[],this.width=100,this.height=100,this.viewState={},this.controllers={},this.timeline=t.timeline,this._viewports=[],this._viewportMap={},this._isUpdating=!1,this._needsRedraw="Initial render",this._needsUpdate=!0,this._eventManager=t.eventManager,this._eventCallbacks={onViewStateChange:t.onViewStateChange,onInteractionStateChange:t.onInteractionStateChange},Object.seal(this),this.setProps(t)}return Object(a.a)(e,[{key:"finalize",value:function(){for(var e in this.controllers)this.controllers[e]&&this.controllers[e].finalize();this.controllers={}}},{key:"needsRedraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1},t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}},{key:"setNeedsUpdate",value:function(e){this._needsUpdate=this._needsUpdate||e,this._needsRedraw=this._needsRedraw||e}},{key:"updateViewStates",value:function(){for(var e in this.controllers){var t=this.controllers[e];t&&t.updateTransition()}}},{key:"getViewports",value:function(e){return e?this._viewports.filter((function(t){return t.containsPixel(e)})):this._viewports}},{key:"getViews",value:function(){var e={};return this.views.forEach((function(t){e[t.id]=t})),e}},{key:"getView",value:function(e){return"string"===typeof e?this.views.find((function(t){return t.id===e})):e}},{key:"getViewState",value:function(e){var t=this.getView(e),A=t&&this.viewState[t.getViewStateId()]||this.viewState;return t?t.filterViewState(A):A}},{key:"getViewport",value:function(e){return this._viewportMap[e]}},{key:"unproject",value:function(e,t){for(var A=this.getViewports(),n={x:e[0],y:e[1]},r=A.length-1;r>=0;--r){var i=A[r];if(i.containsPixel(n)){var o=e.slice();return o[0]-=i.x,o[1]-=i.y,i.unproject(o,t)}}return null}},{key:"setProps",value:function(e){"views"in e&&this._setViews(e.views),"viewState"in e&&this._setViewState(e.viewState),("width"in e||"height"in e)&&this._setSize(e.width,e.height),this._isUpdating||this._update()}},{key:"_update",value:function(){this._isUpdating=!0,this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._isUpdating=!1}},{key:"_setSize",value:function(e,t){e===this.width&&t===this.height||(this.width=e,this.height=t,this.setNeedsUpdate("Size changed"))}},{key:"_setViews",value:function(e){e=Object(u.b)(e,Boolean),this._diffViews(e,this.views)&&this.setNeedsUpdate("views changed"),this.views=e}},{key:"_setViewState",value:function(e){e?(!Object(g.a)(e,this.viewState)&&this.setNeedsUpdate("viewState changed"),this.viewState=e):c.a.warn("missing `viewState` or `initialViewState`")()}},{key:"_onViewStateChange",value:function(e,t){t.viewId=e,this._eventCallbacks.onViewStateChange&&this._eventCallbacks.onViewStateChange(t)}},{key:"_createController",value:function(e,t){return new(0,t.type)(Object(i.a)({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._onViewStateChange.bind(this,t.id),onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:function(t){return e._getViewport(t,{width:t.width,height:t.height})}},t))}},{key:"_updateController",value:function(e,t,A,n){var r=e.controller;return r?(r=Object(i.a)({},t,{},e.props,{},r,{id:e.id,x:A.x,y:A.y,width:A.width,height:A.height}),n?n.setProps(r):n=this._createController(e,r),n):null}},{key:"_rebuildViewports",value:function(){var e=this.width,t=this.height,A=this.views,n=this.controllers;this._viewports=[],this.controllers={};for(var r=!1,i=A.length;i--;){var o=A[i],a=this.getViewState(o),s=o.makeViewport({width:e,height:t,viewState:a}),g=n[o.id];o.controller&&!g&&(r=!0),!r&&o.controller||!g||(g.finalize(),g=null),this.controllers[o.id]=this._updateController(o,a,s,g),this._viewports.unshift(s)}for(var c in n)n[c]&&!this.controllers[c]&&n[c].finalize();this._buildViewportMap()}},{key:"_buildViewportMap",value:function(){var e=this;this._viewportMap={},this._viewports.forEach((function(t){t.id&&(e._viewportMap[t.id]=e._viewportMap[t.id]||t)}))}},{key:"_diffViews",value:function(e,t){return e.length!==t.length||e.some((function(A,n){return!e[n].equals(t[n])}))}}]),e}(),I=A(381),C=A(318),h=new C.a,f=function(){function e(){Object(o.a)(this,e),this.effects=[],this._internalEffects=[],this._needsRedraw="Initial render",this.setEffects()}return Object(a.a)(e,[{key:"setProps",value:function(e){"effects"in e&&(e.effects.length===this.effects.length&&Object(g.a)(e.effects,this.effects)||(this.setEffects(e.effects),this._needsRedraw="effects changed"))}},{key:"needsRedraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1},t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}},{key:"getEffects",value:function(){return this._internalEffects}},{key:"finalize",value:function(){this.cleanup()}},{key:"setEffects",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.cleanup(),this.effects=e,this._createInternalEffects()}},{key:"cleanup",value:function(){var e,t=Object(r.a)(this.effects);try{for(t.s();!(e=t.n()).done;){e.value.cleanup()}}catch(i){t.e(i)}finally{t.f()}var A,n=Object(r.a)(this._internalEffects);try{for(n.s();!(A=n.n()).done;){A.value.cleanup()}}catch(i){n.e(i)}finally{n.f()}this.effects.length=0,this._internalEffects.length=0}},{key:"_createInternalEffects",value:function(){this._internalEffects=this.effects.slice(),this.effects.some((function(e){return e instanceof C.a}))||this._internalEffects.push(h)}}]),e}(),d=A(198),B=A(392),p=A(161),E=A(232),Q=A(18),y=A(530),v=A(411),m={pickedColor:null,pickedLayer:null,pickedObjectIndex:-1};function b(e){var t=e.pickedColors,A=e.decodePickingColor,n=e.deviceX,r=e.deviceY,o=e.deviceRadius,a=e.deviceRect;if(t){for(var s=a.x,g=a.y,u=a.width,l=a.height,I=o*o,C=-1,h=0,f=0;f<l;f++){var d=f+g-r,B=d*d;if(B>I)h+=4*u;else for(var p=0;p<u;p++){if(t[h+3]-1>=0){var E=p+s-n,Q=E*E+B;Q<=I&&(I=Q,C=h)}h+=4}}if(C>=0){var y=t.slice(C,C+4),v=A(y);if(v){var b=Math.floor(C/4/u),w=C/4-b*u;return Object(i.a)({},v,{pickedColor:y,pickedX:s+w,pickedY:g+b})}c.a.error("Picked non-existent layer. Is picking buffer corrupt?")()}}return m}function w(e){var t=e.pickInfo,A=e.viewports,n=e.pixelRatio,r=e.x,i=e.y,o=e.z,a=A[0];A.length>1&&(a=function(e,t){for(var A=e.length-1;A>=0;A--){var n=e[A];if(n.containsPixel(t))return n}return e[0]}((null===t||void 0===t?void 0:t.pickedViewports)||A,{x:r,y:i}));var s=a&&a.unproject([r-a.x,i-a.y],{targetZ:o});return{color:null,layer:null,viewport:a,index:-1,picked:!1,x:r,y:i,pixel:[r,i],coordinate:s,devicePixel:t&&[t.pickedX,t.pickedY],pixelRatio:n}}function S(e){var t=e.pickInfo,A=e.lastPickedInfo,n=e.mode,r=e.layers,o=t.pickedColor,a=t.pickedLayer,s=t.pickedObjectIndex,g=a?[a]:[];if("hover"===n){var c=A.index,u=A.layerId,l=a&&a.props.id;if(l!==u||s!==c){if(l!==u){var I=r.find((function(e){return e.props.id===u}));I&&g.unshift(I)}A.layerId=l,A.index=s,A.info=null}}var C=w(e),h=new Map;return h.set(null,C),g.forEach((function(e){var t=Object(i.a)({},C);e===a&&(t.color=o,t.index=s,t.picked=!0),t=F({layer:e,info:t,mode:n}),e===a&&"hover"===n&&(A.info=t),h.set(t.layer.id,t),"hover"===n&&t.layer.updateAutoHighlight(t)})),h}function F(e){for(var t=e.layer,A=e.info,n=e.mode;t&&A;){var r=A.layer||null;A.sourceLayer=r,A.layer=t,A=t.getPickingInfo({info:A,mode:n,sourceLayer:r}),t=t.parent}return A}var R=function(){function e(t){Object(o.a)(this,e),this.gl=t,this.pickingFBO=null,this.pickLayersPass=new v.a(t),this.layerFilter=null,this.lastPickedInfo={index:-1,layerId:null,info:null}}return Object(a.a)(e,[{key:"setProps",value:function(e){"layerFilter"in e&&(this.layerFilter=e.layerFilter),"_pickable"in e&&(this._pickable=e._pickable)}},{key:"finalize",value:function(){this.pickingFBO&&this.pickingFBO.delete(),this.depthFBO&&(this.depthFBO.color.delete(),this.depthFBO.delete())}},{key:"pickObject",value:function(e){return this._pickClosestObject(e)}},{key:"pickObjects",value:function(e){return this._pickVisibleObjects(e)}},{key:"getLastPickedObject",value:function(e){var t=e.x,A=e.y,n=e.layers,r=e.viewports,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.lastPickedInfo.info,a=o&&o.layer&&o.layer.id,s=o&&o.viewport&&o.viewport.id,g=a?n.find((function(e){return e.id===a})):null,c=s&&r.find((function(e){return e.id===s}))||r[0],u=c&&c.unproject([t-c.x,A-c.y]),l={x:t,y:A,viewport:c,coordinate:u,layer:g};return g?Object(i.a)({},o,{},l):Object.assign(l,{color:null,object:null,index:-1})}},{key:"_resizeBuffer",value:function(){var e=this.gl;return this.pickingFBO||(this.pickingFBO=new p.a(e),p.a.isSupported(e,{colorBufferFloat:!0})&&(this.depthFBO=new p.a(e),this.depthFBO.attach(Object(n.a)({},36064,new E.a(e,{format:Object(Q.j)(e)?34836:6408,type:5126}))))),this.pickingFBO.resize({width:e.canvas.width,height:e.canvas.height}),this.depthFBO&&this.depthFBO.resize({width:e.canvas.width,height:e.canvas.height}),this.pickingFBO}},{key:"_getPickable",value:function(e){if(!1===this._pickable)return null;var t=e.filter((function(e){return e.isPickable()&&!e.isComposite}));return t.length?t:null}},{key:"_pickClosestObject",value:function(e){var t=e.layers,A=e.views,n=e.viewports,o=e.x,a=e.y,s=e.radius,g=void 0===s?0:s,c=e.depth,u=void 0===c?1:c,l=e.mode,I=void 0===l?"query":l,C=e.unproject3D,h=e.onViewportActive;if(!(t=this._getPickable(t)))return{result:[],emptyInfo:w({viewports:n,x:o,y:a})};this._resizeBuffer();for(var f,d=Object(Q.e)(this.gl),B=Object(Q.d)(this.gl,[o,a],!0),p=[B.x+Math.floor(B.width/2),B.y+Math.floor(B.height/2)],E=Math.round(g*d),y=this.pickingFBO,v=y.width,m=y.height,F=this._getPickingRect({deviceX:p[0],deviceY:p[1],deviceRadius:E,deviceWidth:v,deviceHeight:m}),R=[],D={},G=0;G<u;G++){var k=F&&this._drawAndSample({layers:t,views:A,viewports:n,onViewportActive:h,deviceRect:F,pass:"picking:".concat(I),redrawReason:I}),x=b(Object(i.a)({},k,{deviceX:p[0],deviceY:p[1],deviceRadius:E,deviceRect:F})),N=void 0;if(x.pickedLayer&&C&&this.depthFBO)N=this._drawAndSample({layers:[x.pickedLayer],views:A,viewports:n,onViewportActive:h,deviceRect:{x:x.pickedX,y:x.pickedY,width:1,height:1},pass:"picking:".concat(I),redrawReason:"pick-z",pickZ:!0}).pickedColors[0]*n[0].distanceScales.metersPerUnit[2]+n[0].position[2];if(x.pickedColor&&G+1<u){var U=x.pickedColor[3]-1;D[U]=!0,t[U].disablePickingIndex(x.pickedObjectIndex)}f=S({pickInfo:x,lastPickedInfo:this.lastPickedInfo,mode:I,layers:t,viewports:n,x:o,y:a,z:N,pixelRatio:d});var _,M=Object(r.a)(f.values());try{for(M.s();!(_=M.n()).done;){var O=_.value;O.layer&&R.push(O)}}catch(T){M.e(T)}finally{M.f()}if(!x.pickedColor)break}for(var L in D)t[L].restorePickingColors();return{result:R,emptyInfo:f&&f.get(null)}}},{key:"_pickVisibleObjects",value:function(e){var t=e.layers,A=e.views,n=e.viewports,r=e.x,o=e.y,a=e.width,s=void 0===a?1:a,g=e.height,u=void 0===g?1:g,l=e.mode,I=void 0===l?"query":l,C=e.maxObjects,h=void 0===C?null:C,f=e.onViewportActive;if(!(t=this._getPickable(t)))return[];this._resizeBuffer();for(var d=Object(Q.e)(this.gl),B=Object(Q.d)(this.gl,[r,o],!0),p=B.x,E=B.y+B.height,y=Object(Q.d)(this.gl,[r+s,o+u],!0),v=y.x+y.width,m=y.y,b={x:p,y:m,width:v-p,height:E-m},w=function(e){var t=e.pickedColors,A=e.decodePickingColor,n=new Map;if(t)for(var r=0;r<t.length;r+=4){if(t[r+3]-1>=0){var o=t.slice(r,r+4),a=o.join(",");if(!n.has(a)){var s=A(o);s?n.set(a,Object(i.a)({},s,{pickedColor:o})):c.a.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(n.values())}(this._drawAndSample({layers:t,views:A,viewports:n,onViewportActive:f,deviceRect:b,pass:"picking:".concat(I),redrawReason:I})),S=new Map,R=Number.isFinite(h),D=0;D<w.length&&!(R&&S.size>=h);D++){var G=w[D],k={color:G.pickedColor,layer:null,index:G.pickedObjectIndex,picked:!0,x:r,y:o,width:s,height:u,pixelRatio:d};k=F({layer:G.pickedLayer,info:k,mode:I}),S.has(k.object)||S.set(k.object,k)}return Array.from(S.values())}},{key:"_drawAndSample",value:function(e){var t=e.layers,A=e.views,n=e.viewports,r=e.onViewportActive,i=e.deviceRect,o=e.pass,a=e.redrawReason,s=e.pickZ,g=s?this.depthFBO:this.pickingFBO,c=this.pickLayersPass.render({layers:t,layerFilter:this.layerFilter,views:A,viewports:n,onViewportActive:r,pickingFBO:g,deviceRect:i,pass:o,redrawReason:a,pickZ:s}).decodePickingColor,u=i.x,l=i.y,I=i.width,C=i.height,h=new(s?Float32Array:Uint8Array)(I*C*4);return Object(y.c)(g,{sourceX:u,sourceY:l,sourceWidth:I,sourceHeight:C,target:h}),{pickedColors:h,decodePickingColor:c}}},{key:"_getPickingRect",value:function(e){var t=e.deviceX,A=e.deviceY,n=e.deviceRadius,r=e.deviceWidth,i=e.deviceHeight,o=Math.max(0,t-n),a=Math.max(0,A-n),s=Math.min(r,t+n+1)-o,g=Math.min(i,A+n+1)-a;return s<=0||g<=0?null:{x:o,y:a,width:s,height:g}}}]),e}(),D={zIndex:1,position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:0,left:0,display:"none"},G=function(){function e(t){Object(o.a)(this,e);var A=t.parentElement;A&&(this.el=document.createElement("div"),this.el.className="deck-tooltip",Object.assign(this.el.style,D),A.appendChild(this.el)),this.isVisible=!1}return Object(a.a)(e,[{key:"setTooltip",value:function(e,t,A){var n=this.el;if("string"===typeof e)n.innerText=e;else{if(!e)return this.isVisible=!1,void(n.style.display="none");"text"in e&&(n.innerText=e.text),"html"in e&&(n.innerHTML=e.html),"className"in e&&(n.className=e.className),Object.assign(n.style,e.style)}this.isVisible=!0,n.style.display="block",n.style.transform="translate(".concat(t,"px, ").concat(A,"px)")}},{key:"remove",value:function(){this.el&&this.el.remove()}}]),e}(),k=A(150),x=A(513),N=A(62),U=A(1293),_=A(1247),M=A(330),O=A(1165),L=A(8),T=A(332),Z=A.n(T),H={mousedown:1,mousemove:2,mouseup:4};!function(e){var t=e.prototype.handler;e.prototype.handler=function(e){var A=this.store;e.button>0&&"pointerdown"===e.type&&(function(e,t){for(var A=0;A<e.length;A++)if(t(e[A]))return!0;return!1}(A,(function(t){return t.pointerId===e.pointerId}))||A.push(e)),t.call(this,e)}}(Z.a.PointerEventInput),Z.a.MouseInput.prototype.handler=function(e){var t=H[e.type];1&t&&e.button>=0&&(this.pressed=!0),2&t&&0===e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:"mouse",srcEvent:e}))};var Y=Z.a.Manager,J=Z.a,j=J?[[J.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[J.Rotate,{enable:!1}],[J.Pinch,{enable:!1}],[J.Swipe,{enable:!1}],[J.Pan,{threshold:0,enable:!1}],[J.Press,{enable:!1}],[J.Tap,{event:"doubletap",taps:2,enable:!1}],[J.Tap,{event:"anytap",enable:!1}],[J.Tap,{enable:!1}]]:null,P={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},V={doubletap:["tap"]},K={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},W=["keydown","keyup"],X=["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],q=["wheel","mousewheel"],z={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},$={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"},ee=A(240),te=-1!==ee.b.indexOf("firefox"),Ae=q,ne=function(){function e(t,A){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object(o.a)(this,e),this.element=t,this.callback=A,this.options=Object.assign({enable:!0},r),this.events=Ae.concat(r.events||[]),this.handleEvent=this.handleEvent.bind(this),this.events.forEach((function(e){return t.addEventListener(e,n.handleEvent,!!ee.a&&{passive:!1})}))}return Object(a.a)(e,[{key:"destroy",value:function(){var e=this;this.events.forEach((function(t){return e.element.removeEventListener(t,e.handleEvent)}))}},{key:"enableEventType",value:function(e,t){"wheel"===e&&(this.options.enable=t)}},{key:"handleEvent",value:function(e){if(this.options.enable){var t=e.deltaY;ee.c.WheelEvent&&(te&&e.deltaMode===ee.c.WheelEvent.DOM_DELTA_PIXEL&&(t/=ee.c.devicePixelRatio),e.deltaMode===ee.c.WheelEvent.DOM_DELTA_LINE&&(t*=40));var A={x:e.clientX,y:e.clientY};0!==t&&t%4.000244140625===0&&(t=Math.floor(t/4.000244140625)),e.shiftKey&&t&&(t*=.25),this._onWheel(e,-t,A)}}},{key:"_onWheel",value:function(e,t,A){this.callback({type:"wheel",center:A,delta:t,srcEvent:e,pointerType:"mouse",target:e.target})}}]),e}(),re=X,ie=function(){function e(t,A){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object(o.a)(this,e),this.element=t,this.callback=A,this.pressed=!1,this.options=Object.assign({enable:!0},r),this.enableMoveEvent=this.options.enable,this.enableLeaveEvent=this.options.enable,this.enableOutEvent=this.options.enable,this.enableOverEvent=this.options.enable,this.events=re.concat(r.events||[]),this.handleEvent=this.handleEvent.bind(this),this.events.forEach((function(e){return t.addEventListener(e,n.handleEvent)}))}return Object(a.a)(e,[{key:"destroy",value:function(){var e=this;this.events.forEach((function(t){return e.element.removeEventListener(t,e.handleEvent)}))}},{key:"enableEventType",value:function(e,t){"pointermove"===e&&(this.enableMoveEvent=t),"pointerover"===e&&(this.enableOverEvent=t),"pointerout"===e&&(this.enableOutEvent=t),"pointerleave"===e&&(this.enableLeaveEvent=t)}},{key:"handleEvent",value:function(e){this.handleOverEvent(e),this.handleOutEvent(e),this.handleLeaveEvent(e),this.handleMoveEvent(e)}},{key:"handleOverEvent",value:function(e){this.enableOverEvent&&"mouseover"===e.type&&this.callback({type:"pointerover",srcEvent:e,pointerType:"mouse",target:e.target})}},{key:"handleOutEvent",value:function(e){this.enableOutEvent&&"mouseout"===e.type&&this.callback({type:"pointerout",srcEvent:e,pointerType:"mouse",target:e.target})}},{key:"handleLeaveEvent",value:function(e){this.enableLeaveEvent&&"mouseleave"===e.type&&this.callback({type:"pointerleave",srcEvent:e,pointerType:"mouse",target:e.target})}},{key:"handleMoveEvent",value:function(e){if(this.enableMoveEvent)switch(e.type){case"mousedown":e.button>=0&&(this.pressed=!0);break;case"mousemove":0===e.which&&(this.pressed=!1),this.pressed||this.callback({type:"pointermove",srcEvent:e,pointerType:"mouse",target:e.target});break;case"mouseup":this.pressed=!1}}}]),e}(),oe=W,ae=function(){function e(t,A){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object(o.a)(this,e),this.element=t,this.callback=A,this.options=Object.assign({enable:!0},r),this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=oe.concat(r.events||[]),this.handleEvent=this.handleEvent.bind(this),t.tabIndex=r.tabIndex||0,t.style.outline="none",this.events.forEach((function(e){return t.addEventListener(e,n.handleEvent)}))}return Object(a.a)(e,[{key:"destroy",value:function(){var e=this;this.events.forEach((function(t){return e.element.removeEventListener(t,e.handleEvent)}))}},{key:"enableEventType",value:function(e,t){"keydown"===e&&(this.enableDownEvent=t),"keyup"===e&&(this.enableUpEvent=t)}},{key:"handleEvent",value:function(e){var t=e.target||e.srcElement;"INPUT"===t.tagName&&"text"===t.type||"TEXTAREA"===t.tagName||(this.enableDownEvent&&"keydown"===e.type&&this.callback({type:"keydown",srcEvent:e,key:e.key,target:e.target}),this.enableUpEvent&&"keyup"===e.type&&this.callback({type:"keyup",srcEvent:e,key:e.key,target:e.target}))}}]),e}(),se=function(){function e(t,A){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object(o.a)(this,e),this.element=t,this.callback=A,this.options=Object.assign({enable:!0},n),this.handleEvent=this.handleEvent.bind(this),t.addEventListener("contextmenu",this.handleEvent)}return Object(a.a)(e,[{key:"destroy",value:function(){this.element.removeEventListener("contextmenu",this.handleEvent)}},{key:"enableEventType",value:function(e,t){"contextmenu"===e&&(this.options.enable=t)}},{key:"handleEvent",value:function(e){this.options.enable&&this.callback({type:"contextmenu",center:{x:e.clientX,y:e.clientY},srcEvent:e,pointerType:"mouse",target:e.target})}}]),e}(),ge={pointerdown:1,pointermove:2,pointerup:4,mousedown:1,mousemove:2,mouseup:4};var ce={srcElement:"root",priority:0},ue=function(){function e(t){Object(o.a)(this,e),this.eventManager=t,this.handlers=[],this.handlersByElement=new Map,this.handleEvent=this.handleEvent.bind(this),this._active=!1}return Object(a.a)(e,[{key:"isEmpty",value:function(){return!this._active}},{key:"add",value:function(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i=this.handlers,o=this.handlersByElement;A&&("object"!==typeof A||A.addEventListener)&&(A={srcElement:A}),A=A?Object.assign({},ce,A):ce;var a=o.get(A.srcElement);a||(a=[],o.set(A.srcElement,a));var s={type:e,handler:t,srcElement:A.srcElement,priority:A.priority};n&&(s.once=!0),r&&(s.passive=!0),i.push(s),this._active=this._active||!s.passive;for(var g=a.length-1;g>=0&&!(a[g].priority>=s.priority);)g--;a.splice(g+1,0,s)}},{key:"remove",value:function(e,t){for(var A=this.handlers,n=this.handlersByElement,r=A.length-1;r>=0;r--){var i=A[r];if(i.type===e&&i.handler===t){A.splice(r,1);var o=n.get(i.srcElement);o.splice(o.indexOf(i),1),0===o.length&&n.delete(i.srcElement)}}this._active=A.some((function(e){return!e.passive}))}},{key:"handleEvent",value:function(e){if(!this.isEmpty()){for(var t=this._normalizeEvent(e),A=e.srcEvent.target;A&&A!==t.rootElement;){if(this._emit(t,A),t.handled)return;A=A.parentNode}this._emit(t,"root")}}},{key:"_emit",value:function(e,t){var A=this.handlersByElement.get(t);if(A){for(var n=!1,r=function(){e.handled=!0},i=function(){e.handled=!0,n=!0},o=[],a=0;a<A.length;a++){var s=A[a],g=s.type,c=s.handler,u=s.once;if(c(Object.assign({},e,{type:g,stopPropagation:r,stopImmediatePropagation:i})),u&&o.push(A[a]),n)break}for(var l=0;l<o.length;l++){var I=o[l],C=I.type,h=I.handler;this.remove(C,h)}}}},{key:"_normalizeEvent",value:function(e){var t=this.eventManager.element;return Object.assign({},e,function(e){var t=ge[e.srcEvent.type];if(!t)return null;var A=e.srcEvent,n=A.buttons,r=A.button,i=A.which,o=!1,a=!1,s=!1;return 4===t||2===t&&!Number.isFinite(n)?(o=1===i,a=2===i,s=3===i):2===t?(o=Boolean(1&n),a=Boolean(4&n),s=Boolean(2&n)):1===t&&(o=0===r,a=1===r,s=2===r),{leftButton:o,middleButton:a,rightButton:s}}(e),function(e,t){var A=e.srcEvent;if(!e.center&&!Number.isFinite(A.clientX))return null;var n=e.center||{x:A.clientX,y:A.clientY},r=t.getBoundingClientRect(),i=r.width/t.offsetWidth||1,o=r.height/t.offsetHeight||1;return{center:n,offsetCenter:{x:(n.x-r.left-t.clientLeft)/i,y:(n.y-r.top-t.clientTop)/o}}}(e,t),{handled:!1,rootElement:t})}}]),e}(),le={events:null,recognizers:null,recognizerOptions:{},Manager:Y,touchAction:"none",tabIndex:0},Ie=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(o.a)(this,e),this.options=Object.assign({},le,A),this.events=new Map,this._onBasicInput=this._onBasicInput.bind(this),this._onOtherEvent=this._onOtherEvent.bind(this),this.setElement(t);var n=A.events;n&&this.on(n)}return Object(a.a)(e,[{key:"setElement",value:function(e){var t=this;if(this.element&&this.destroy(),this.element=e,e){var A=this.options,n=A.Manager;for(var i in this.manager=new n(e,{touchAction:A.touchAction,recognizers:A.recognizers||j}).on("hammer.input",this._onBasicInput),A.recognizers||Object.keys(P).forEach((function(e){var A=t.manager.get(e);A&&P[e].forEach((function(e){A.recognizeWith(e)}))})),A.recognizerOptions){var o=this.manager.get(i);if(o){var a=A.recognizerOptions[i];delete a.enable,o.set(a)}}this.wheelInput=new ne(e,this._onOtherEvent,{enable:!1}),this.moveInput=new ie(e,this._onOtherEvent,{enable:!1}),this.keyInput=new ae(e,this._onOtherEvent,{enable:!1,tabIndex:A.tabIndex}),this.contextmenuInput=new se(e,this._onOtherEvent,{enable:!1});var s,g=Object(r.a)(this.events);try{for(g.s();!(s=g.n()).done;){var c=Object(L.a)(s.value,2),u=c[0],l=c[1];l.isEmpty()||(this._toggleRecognizer(l.recognizerName,!0),this.manager.on(u,l.handleEvent))}}catch(I){g.e(I)}finally{g.f()}}}},{key:"destroy",value:function(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}},{key:"on",value:function(e,t,A){this._addEventHandler(e,t,A,!1)}},{key:"once",value:function(e,t,A){this._addEventHandler(e,t,A,!0)}},{key:"watch",value:function(e,t,A){this._addEventHandler(e,t,A,!1,!0)}},{key:"off",value:function(e,t){this._removeEventHandler(e,t)}},{key:"_toggleRecognizer",value:function(e,t){var A=this.manager;if(A){var n=A.get(e);if(n&&n.options.enable!==t){n.set({enable:t});var r=V[e];r&&!this.options.recognizers&&r.forEach((function(r){var i=A.get(r);t?(i.requireFailure(e),n.dropRequireFailure(r)):i.dropRequireFailure(e)}))}this.wheelInput.enableEventType(e,t),this.moveInput.enableEventType(e,t),this.keyInput.enableEventType(e,t),this.contextmenuInput.enableEventType(e,t)}}},{key:"_addEventHandler",value:function(e,t,A,n,r){if("string"===typeof e){var i=this.manager,o=this.events,a=$[e]||e,s=o.get(a);s||(s=new ue(this),o.set(a,s),s.recognizerName=z[a]||a,i&&i.on(a,s.handleEvent)),s.add(e,t,A,n,r),s.isEmpty()||this._toggleRecognizer(s.recognizerName,!0)}else for(var g in A=t,e)this._addEventHandler(g,e[g],A,n,r)}},{key:"_removeEventHandler",value:function(e,t){if("string"===typeof e){var A=this.events,n=$[e]||e,i=A.get(n);if(i&&(i.remove(e,t),i.isEmpty())){var o,a=i.recognizerName,s=!1,g=Object(r.a)(A.values());try{for(g.s();!(o=g.n()).done;){var c=o.value;if(c.recognizerName===a&&!c.isEmpty()){s=!0;break}}}catch(l){g.e(l)}finally{g.f()}s||this._toggleRecognizer(a,!1)}}else for(var u in e)this._removeEventHandler(u,e[u])}},{key:"_onBasicInput",value:function(e){var t=e.srcEvent,A=K[t.type];A&&this.manager.emit(A,e)}},{key:"_onOtherEvent",value:function(e){this.manager.emit(e.type,e)}}]),e}(),Ce=A(87),he=A(36);function fe(){}A.d(t,"a",(function(){return Be}));var de={id:"",width:"100%",height:"100%",pickingRadius:0,layerFilter:null,glOptions:{},gl:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:"none",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},onWebGLInitialized:fe,onResize:fe,onViewStateChange:fe,onInteractionStateChange:fe,onBeforeRender:fe,onAfterRender:fe,onLoad:fe,onError:function(e,t){return c.a.error(e)()},_onMetrics:null,getCursor:function(e){return e.isDragging?"grabbing":"grab"},debug:!1,drawPickingColors:!1},Be=function(){function e(t){Object(o.a)(this,e),t=Object(i.a)({},de,{},t),this.props={},this.width=0,this.height=0,this.viewManager=null,this.layerManager=null,this.effectManager=null,this.deckRenderer=null,this.deckPicker=null,this._needsRedraw=!0,this._pickRequest={},this._lastPointerDownInfo=null,this.viewState=null,this.interactiveState={isHovering:!1,isDragging:!1},this._onEvent=this._onEvent.bind(this),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),t.viewState&&t.initialViewState&&c.a.warn("View state tracking is disabled. Use either `initialViewState` for auto update or `viewState` for manual update.")(),"IE"===Object(N.getBrowser)()&&c.a.warn("IE 11 support will be deprecated in v8.0")(),t.gl||"undefined"!==typeof document&&(this.canvas=this._createCanvas(t)),this.animationLoop=this._createAnimationLoop(t),this.stats=new O.a({id:"deck.gl"}),this.metrics={fps:0,setPropsTime:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this.setProps(t),t._typedArrayManagerProps&&k.a.setProps(t._typedArrayManagerProps),this.animationLoop.start()}return Object(a.a)(e,[{key:"finalize",value:function(){this.animationLoop.stop(),this.animationLoop=null,this._lastPointerDownInfo=null,this.layerManager&&(this.layerManager.finalize(),this.layerManager=null,this.viewManager.finalize(),this.viewManager=null,this.effectManager.finalize(),this.effectManager=null,this.deckRenderer.finalize(),this.deckRenderer=null,this.deckPicker.finalize(),this.deckPicker=null,this.eventManager.destroy(),this.eventManager=null,this.tooltip.remove(),this.tooltip=null),this.props.canvas||this.props.gl||!this.canvas||(this.canvas.parentElement.removeChild(this.canvas),this.canvas=null)}},{key:"setProps",value:function(e){this.stats.get("setProps Time").timeStart(),"onLayerHover"in e&&c.a.removed("onLayerHover","onHover")(),"onLayerClick"in e&&c.a.removed("onLayerClick","onClick")(),e.initialViewState&&!Object(g.a)(this.props.initialViewState,e.initialViewState)&&(this.viewState=e.initialViewState),Object.assign(this.props,e),this._setCanvasSize(this.props);var t=Object.create(this.props);Object.assign(t,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),this.animationLoop.setProps(t),this.layerManager&&(this.viewManager.setProps(t),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(t),this.effectManager.setProps(t),this.deckRenderer.setProps(t),this.deckPicker.setProps(t)),this.stats.get("setProps Time").timeEnd()}},{key:"needsRedraw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1};if(this.props._animate)return"Deck._animate";var t=this._needsRedraw;e.clearRedrawFlags&&(this._needsRedraw=!1);var A=this.viewManager.needsRedraw(e),n=this.layerManager.needsRedraw(e),r=this.effectManager.needsRedraw(e),i=this.deckRenderer.needsRedraw(e);return t=t||A||n||r||i}},{key:"redraw",value:function(e){if(this.layerManager){var t=e||this.needsRedraw({clearRedrawFlags:!0});t&&(this.stats.get("Redraw Count").incrementCount(),this.props._customRender?this.props._customRender(t):this._drawLayers(t))}}},{key:"getViews",value:function(){return this.viewManager.views}},{key:"getViewports",value:function(e){return this.viewManager.getViewports(e)}},{key:"pickObject",value:function(e){var t=this._pick("pickObject","pickObject Time",e).result;return t.length?t[0]:null}},{key:"pickMultipleObjects",value:function(e){return e.depth=e.depth||10,this._pick("pickObject","pickMultipleObjects Time",e).result}},{key:"pickObjects",value:function(e){return this._pick("pickObjects","pickObjects Time",e)}},{key:"_addResources",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(var A in e)this.layerManager.resourceManager.add({resourceId:A,data:e[A],forceUpdate:t})}},{key:"_removeResources",value:function(e){var t,A=Object(r.a)(e);try{for(A.s();!(t=A.n()).done;){var n=t.value;this.layerManager.resourceManager.remove(n)}}catch(i){A.e(i)}finally{A.f()}}},{key:"_pick",value:function(e,t,A){var n=this.stats;n.get("Pick Count").incrementCount(),n.get(t).timeStart();var r=this.deckPicker[e](Object(i.a)({layers:this.layerManager.getLayers(A),views:this.viewManager.getViews(),viewports:this.getViewports(A),onViewportActive:this.layerManager.activateViewport},A));return n.get(t).timeEnd(),r}},{key:"_createCanvas",value:function(e){var t=e.canvas;("string"===typeof t&&(t=document.getElementById(t),Object(Ce.a)(t)),t)||((t=document.createElement("canvas")).id=e.id||"deckgl-overlay",(e.parent||document.body).appendChild(t));return Object.assign(t.style,e.style),t}},{key:"_setCanvasSize",value:function(e){if(this.canvas){var t=e.width,A=e.height;(t||0===t)&&(t=Number.isFinite(t)?"".concat(t,"px"):t,this.canvas.style.width=t),(A||0===A)&&(A=Number.isFinite(A)?"".concat(A,"px"):A,this.canvas.style.position="absolute",this.canvas.style.height=A)}}},{key:"_updateCanvasSize",value:function(){if(this._checkForCanvasSizeChange()){var e=this.width,t=this.height;this.viewManager.setProps({width:e,height:t}),this.props.onResize({width:this.width,height:this.height})}}},{key:"_checkForCanvasSizeChange",value:function(){var e=this.canvas;if(!e)return!1;var t=e.clientWidth||e.width,A=e.clientHeight||e.height;return(t!==this.width||A!==this.height)&&(this.width=t,this.height=A,!0)}},{key:"_createAnimationLoop",value:function(e){var t=this,A=e.width,n=e.height,r=e.gl,o=e.glOptions,a=e.debug,s=e.onError,g=e.onBeforeRender,c=e.onAfterRender,u=e.useDevicePixels,l=e.autoResizeDrawingBuffer;return new U.a({width:A,height:n,useDevicePixels:u,autoResizeDrawingBuffer:l,autoResizeViewport:!1,gl:r,onCreateContext:function(e){return Object(Q.c)(Object(i.a)({},o,{},e,{canvas:t.canvas,debug:a,onContextLost:function(){return t._onContextLost()}}))},onInitialize:function(e){return t._setGLContext(e.gl)},onRender:this._onRenderFrame.bind(this),onBeforeRender:g,onAfterRender:c,onError:s})}},{key:"_getViewState",value:function(){return this.props.viewState||this.viewState}},{key:"_getViews",value:function(){var e=this.props.views||[new I.a({id:"default-view"})];return(e=Array.isArray(e)?e:[e]).length&&this.props.controller&&(e[0].props.controller=this.props.controller),e}},{key:"_onContextLost",value:function(){var e=this.props.onError;this.animationLoop&&e&&e(new Error("WebGL context is lost"))}},{key:"_onPointerMove",value:function(e){var t=this._pickRequest;if("pointerleave"===e.type)t.x=-1,t.y=-1,t.radius=0;else{if(e.leftButton||e.rightButton)return;var A=e.offsetCenter;if(!A)return;t.x=A.x,t.y=A.y,t.radius=this.props.pickingRadius}this.layerManager&&(this.layerManager.context.mousePosition={x:t.x,y:t.y}),t.event=e,t.mode="hover"}},{key:"_pickAndCallback",value:function(){var e=this._pickRequest;if(e.event){var t=this._pick("pickObject","pickObject Time",e),A=t.result,n=t.emptyInfo;this.interactiveState.isHovering=A.length>0;var i,o=n,a=!1,s=Object(r.a)(A);try{for(s.s();!(i=s.n()).done;){var g=i.value;o=g,a=g.layer.onHover(g,e.event)}}catch(u){s.e(u)}finally{s.f()}if(!a&&this.props.onHover&&this.props.onHover(o,e.event),this.props.getTooltip){var c=this.props.getTooltip(o);this.tooltip.setTooltip(c,o.x,o.y)}e.event=null}}},{key:"_updateCursor",value:function(){var e=this.props.parent||this.canvas;e&&(e.style.cursor=this.props.getCursor(this.interactiveState))}},{key:"_setGLContext",value:function(e){if(!this.layerManager){this.canvas||(this.canvas=e.canvas,Object(Q.h)(e,{enable:!0,copyState:!0})),this.tooltip=new G(this.canvas),Object(Q.n)(e,{blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onWebGLInitialized(e);var t=new _.a;for(var A in t.play(),this.animationLoop.attachTimeline(t),this.eventManager=new Ie(this.props.parent||e.canvas,{touchAction:this.props.touchAction,recognizerOptions:this.props.eventRecognizerOptions,events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}}),he.b)this.eventManager.on(A,this._onEvent);this.viewManager=new l({timeline:t,eventManager:this.eventManager,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});var n=this.viewManager.getViewports()[0];this.layerManager=new s.a(e,{deck:this,stats:this.stats,viewport:n,timeline:t}),this.effectManager=new f,this.deckRenderer=new B.a(e),this.deckPicker=new R(e),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}}},{key:"_drawLayers",value:function(e,t){var A=this.layerManager.context.gl;Object(Q.n)(A,this.props.parameters),this.props.onBeforeRender({gl:A}),this.deckRenderer.renderLayers(Object(i.a)({target:this.props._framebuffer,layers:this.layerManager.getLayers(),viewports:this.viewManager.getViewports(),onViewportActive:this.layerManager.activateViewport,views:this.viewManager.getViews(),pass:"screen",redrawReason:e,effects:this.effectManager.getEffects()},t)),this.props.onAfterRender({gl:A})}},{key:"_onRenderFrame",value:function(e){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),c.a.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.tooltip.isVisible&&this.viewManager.needsRedraw()&&this.tooltip.setTooltip(null),this.layerManager.updateLayers(),this._pickAndCallback(),this.redraw(!1),this.viewManager&&this.viewManager.updateViewStates()}},{key:"_onViewStateChange",value:function(e){var t=this.props.onViewStateChange(e)||e.viewState;this.viewState&&(this.viewState=Object(i.a)({},this.viewState,Object(n.a)({},e.viewId,t)),this.props.viewState||this.viewManager&&this.viewManager.setProps({viewState:this.viewState}))}},{key:"_onInteractionStateChange",value:function(e){this.interactiveState.isDragging=e.isDragging,this.props.onInteractionStateChange(e)}},{key:"_onEvent",value:function(e){var t=he.b[e.type],A=e.offsetCenter;if(t&&A){var n=this.layerManager.getLayers(),r=this.deckPicker.getLastPickedObject({x:A.x,y:A.y,layers:n,viewports:this.getViewports(A)},this._lastPointerDownInfo),i=r.layer,o=i&&(i[t.handler]||i.props[t.handler]),a=this.props[t.handler],s=!1;o&&(s=o.call(i,r,e)),!s&&a&&a(r,e)}}},{key:"_onPointerDown",value:function(e){var t=e.offsetCenter;this._lastPointerDownInfo=this.pickObject({x:t.x,y:t.y,radius:this.props.pickingRadius})}},{key:"_getFrameStats",value:function(){var e=this.stats;e.get("frameRate").timeEnd(),e.get("frameRate").timeStart();var t=this.animationLoop.stats;e.get("GPU Time").addTime(t.get("GPU Time").lastTiming),e.get("CPU Time").addTime(t.get("CPU Time").lastTiming)}},{key:"_getMetrics",value:function(){var e=this.metrics,t=this.stats;e.fps=t.get("frameRate").getHz(),e.setPropsTime=t.get("setProps Time").time,e.updateAttributesTime=t.get("Update Attributes").time,e.framesRedrawn=t.get("Redraw Count").count,e.pickTime=t.get("pickObject Time").time+t.get("pickMultipleObjects Time").time+t.get("pickObjects Time").time,e.pickCount=t.get("Pick Count").count,e.gpuTime=t.get("GPU Time").time,e.cpuTime=t.get("CPU Time").time,e.gpuTimePerFrame=t.get("GPU Time").getAverageTime(),e.cpuTimePerFrame=t.get("CPU Time").getAverageTime();var A=M.a.get("Memory Usage");e.bufferMemory=A.get("Buffer Memory").count,e.textureMemory=A.get("Texture Memory").count,e.renderbufferMemory=A.get("Renderbuffer Memory").count,e.gpuMemory=A.get("GPU Memory").count}}]),e}();Be.getPropTypes=function(e){return{id:e.string,width:e.oneOfType([e.number,e.string]),height:e.oneOfType([e.number,e.string]),layers:e.oneOfType([e.object,e.array]),layerFilter:e.func,views:e.oneOfType([e.object,e.array]),viewState:e.object,effects:e.arrayOf(e.instanceOf(d.a)),controller:e.oneOfType([e.func,e.bool,e.object]),gl:e.object,glOptions:e.object,parameters:e.object,pickingRadius:e.number,useDevicePixels:e.oneOfType([e.bool,e.number]),touchAction:e.string,eventRecognizerOptions:e.object,onWebGLInitialized:e.func,onResize:e.func,onViewStateChange:e.func,onInteractionStateChange:e.func,onBeforeRender:e.func,onAfterRender:e.func,onLoad:e.func,onError:e.func,debug:e.bool,drawPickingColors:e.bool,_framebuffer:e.object,_animate:e.bool,_pickable:e.bool,_typedArrayManagerProps:e.object}},Be.defaultProps=de,Be.VERSION=x.a.VERSION},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(575),u=A(576),l=A(41),I=A(384),C=A(18),h=A(1295),f=A(221),d=A(286),B=A(108),p=A(26),E=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(r.a)(this,e);var A=t.id;this.id=A||Object(B.c)(this.constructor.name),this.display=!0,this.position=new f.a,this.rotation=new f.a,this.scale=new f.a(1,1,1),this.matrix=new d.a,this.userData={},this.props={},this._setScenegraphNodeProps(t)}return Object(i.a)(e,[{key:"delete",value:function(){}},{key:"setProps",value:function(e){return this._setScenegraphNodeProps(e),this}},{key:"toString",value:function(){return"{type: ScenegraphNode, id: ".concat(this.id,")}")}},{key:"setPosition",value:function(e){return Object(p.a)(3===e.length,"setPosition requires vector argument"),this.position=e,this}},{key:"setRotation",value:function(e){return Object(p.a)(3===e.length,"setRotation requires vector argument"),this.rotation=e,this}},{key:"setScale",value:function(e){return Object(p.a)(3===e.length,"setScale requires vector argument"),this.scale=e,this}},{key:"setMatrix",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t?this.matrix.copy(e):this.matrix=e}},{key:"setMatrixComponents",value:function(e){var t=e.position,A=e.rotation,n=e.scale,r=e.update,i=void 0===r||r;return t&&this.setPosition(t),A&&this.setRotation(A),n&&this.setScale(n),i&&this.updateMatrix(),this}},{key:"updateMatrix",value:function(){var e=this.position,t=this.rotation,A=this.scale;return this.matrix.identity(),this.matrix.translate(e),this.matrix.rotateXYZ(t),this.matrix.scale(A),this}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.position,A=e.rotation,n=e.scale;return t&&this.setPosition(t),A&&this.setRotation(A),n&&this.setScale(n),this.updateMatrix(),this}},{key:"getCoordinateUniforms",value:function(e,t){Object(p.a)(e),t=t||this.matrix;var A=new d.a(e).multiplyRight(t),n=A.invert(),r=n.transpose();return{viewMatrix:e,modelMatrix:t,objectMatrix:t,worldMatrix:A,worldInverseMatrix:n,worldInverseTransposeMatrix:r}}},{key:"_setScenegraphNodeProps",value:function(e){"display"in e&&(this.display=e.display),"position"in e&&this.setPosition(e.position),"rotation"in e&&this.setRotation(e.rotation),"scale"in e&&this.setScale(e.scale),"matrix"in e&&this.setMatrix(e.matrix),Object.assign(this.props,e)}}]),e}(),Q=A(80),y=A(139),v=A(6),m=A(11),b=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(r.a)(this,A);var i=n=Array.isArray(n)?{children:n}:n,o=i.children,a=void 0===o?[]:o;return C.k.assert(a.every((function(e){return e instanceof E})),"every child must an instance of ScenegraphNode"),(e=t.call(this,n)).children=a,e}return Object(i.a)(A,[{key:"add",value:function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++){var i=r[n];Array.isArray(i)?this.add.apply(this,Object(m.a)(i)):this.children.push(i)}return this}},{key:"remove",value:function(e){var t=this.children,A=t.indexOf(e);return A>-1&&t.splice(A,1),this}},{key:"removeAll",value:function(){return this.children=[],this}},{key:"delete",value:function(){this.children.forEach((function(e){return e.delete()})),this.removeAll(),Object(a.a)(Object(o.a)(A.prototype),"delete",this).call(this)}},{key:"traverse",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.worldMatrix,i=void 0===r?new d.a:r,o=new d.a(i).multiplyRight(this.matrix),a=Object(v.a)(this.children);try{for(a.s();!(t=a.n()).done;){var s=t.value;s instanceof A?s.traverse(e,{worldMatrix:o}):e(s,{worldMatrix:o})}}catch(g){a.e(g)}finally{a.f()}}}]),A}(E),w=A(319),S={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},F={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function R(e){if(!e._animation){var t=F[e.componentType],A=S[e.type],n=A*e.count,r=e.bufferView.data,i=new t(r.buffer,r.byteOffset+(e.byteOffset||0),n);if(1===A)e._animation=Array.from(i);else{for(var o=[],a=0;a<i.length;a+=A)o.push(Array.from(i.slice(a,a+A)));e._animation=o}}return e._animation}var D=new d.a;var G=new w.a;function k(e,t,A,n){var r=t.input,i=t.interpolation,o=t.output,a=e%r[r.length-1],s=r.findIndex((function(e){return e>=a})),g=Math.max(0,s-1);if(!Array.isArray(A[n]))switch(n){case"translation":A[n]=[0,0,0];break;case"rotation":A[n]=[0,0,0,1];break;case"scale":A[n]=[1,1,1];break;default:C.k.warn("Bad animation path ".concat(n))()}Object(p.a)(A[n].length===o[g].length);var c=r[g],u=r[s];switch(i){case"STEP":!function(e,t,A){for(var n=0;n<A.length;n++)e[t][n]=A[n]}(A,n,o[g]);break;case"LINEAR":if(u>c){var l=(a-c)/(u-c);!function(e,t,A,n,r){if("rotation"===t){G.slerp({start:A,target:n,ratio:r});for(var i=0;i<G.length;i++)e[t][i]=G[i]}else for(var o=0;o<A.length;o++)e[t][o]=r*n[o]+(1-r)*A[o]}(A,n,o[g],o[s],l)}break;case"CUBICSPLINE":if(u>c){var I=(a-c)/(u-c),h=u-c;!function(e,t,A){for(var n=A.p0,r=A.outTangent0,i=A.inTangent1,o=A.p1,a=A.tDiff,s=A.ratio,g=0;g<e[t].length;g++){var c=r[g]*a,u=i[g]*a;e[t][g]=(2*Math.pow(s,3)-3*Math.pow(s,2)+1)*n[g]+(Math.pow(s,3)-2*Math.pow(s,2)+s)*c+(-2*Math.pow(s,3)+3*Math.pow(s,2))*o[g]+(Math.pow(s,3)-Math.pow(s,2))*u}}(A,n,{p0:o[3*g+1],outTangent0:o[3*g+2],inTangent1:o[3*s+0],p1:o[3*s+1],tDiff:h,ratio:I})}break;default:C.k.warn("Interpolation ".concat(i," not supported"))()}}var x=function(){function e(t){Object(r.a)(this,e),this.startTime=0,this.playing=!0,this.speed=1,this.channels=[],Object.assign(this,t)}return Object(i.a)(e,[{key:"animate",value:function(e){if(this.playing){var t=(e/1e3-this.startTime)*this.speed;this.channels.forEach((function(e){var A=e.sampler,n=e.target,r=e.path;k(t,A,n,r),function(e,t){if(t.matrix.identity(),e.translation&&t.matrix.translate(e.translation),e.rotation){var A=D.fromQuaternion(e.rotation);t.matrix.multiplyRight(A)}e.scale&&t.matrix.scale(e.scale)}(n,n._node)}))}}}]),e}(),N=function(){function e(t){Object(r.a)(this,e),this.animations=t.animations.map((function(e,A){var n=e.name||"Animation-".concat(A),r=e.samplers.map((function(e){var A=e.input,n=e.interpolation,r=void 0===n?"LINEAR":n,i=e.output;return{input:R(t.accessors[A]),interpolation:r,output:R(t.accessors[i])}})),i=e.channels.map((function(e){var A=e.sampler,n=e.target;return{sampler:r[A],target:t.nodes[n.node],path:n.path}}));return new x({name:n,channels:i})}))}return Object(i.a)(e,[{key:"animate",value:function(e){this.setTime(e)}},{key:"setTime",value:function(e){this.animations.forEach((function(t){return t.animate(e)}))}},{key:"getAnimations",value:function(){return this.animations}}]),e}(),U=A(422),_=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(r.a)(this,A),(n=t.call(this,i)).onBeforeRender=null,n.AfterRender=null,e instanceof U.a?(n.model=e,n._setModelNodeProps(i)):n.model=new U.a(e,i),n.managedResources=i.managedResources||[],n}return Object(i.a)(A,[{key:"setProps",value:function(e){return Object(a.a)(Object(o.a)(A.prototype),"setProps",this).call(this,e),this._setModelNodeProps(e),this}},{key:"delete",value:function(){this.model&&(this.model.delete(),this.model=null),this.managedResources.forEach((function(e){return e.delete()})),this.managedResources=[]}},{key:"draw",value:function(){var e;return(e=this.model).draw.apply(e,arguments)}},{key:"setUniforms",value:function(){var e;return(e=this.model).setUniforms.apply(e,arguments),this}},{key:"setAttributes",value:function(){var e;return(e=this.model).setAttributes.apply(e,arguments),this}},{key:"updateModuleSettings",value:function(){var e;return(e=this.model).updateModuleSettings.apply(e,arguments),this}},{key:"_setModelNodeProps",value:function(e){this.model.setProps(e)}}]),A}(E),M=A(703);function O(e,t){return Object(C.j)(e)?"#version 300 es\n".concat(t):t}var L={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},T={modelOptions:{},pbrDebug:!1,imageBasedLightingEnvironment:null,lights:!0,useTangents:!1},Z=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e),this.gl=t,this.options=Object.assign({},T,A)}return Object(i.a)(e,[{key:"instantiate",value:function(e){var t=this;return this.gltf=e,(e.scenes||[]).map((function(e){return t.createScene(e)}))}},{key:"createAnimator",value:function(){return Array.isArray(this.gltf.animations)?new N(this.gltf):null}},{key:"createScene",value:function(e){var t=this,A=(e.nodes||[]).map((function(e){return t.createNode(e)}));return new b({id:e.name||e.id,children:A})}},{key:"createNode",value:function(e){var t=this;if(!e._node){var A=(e.children||[]).map((function(e){return t.createNode(e)}));e.mesh&&A.push(this.createMesh(e.mesh));var n=new b({id:e.name||e.id,children:A});if(e.matrix)n.setMatrix(e.matrix);else{if(n.matrix.identity(),e.translation&&n.matrix.translate(e.translation),e.rotation){var r=(new d.a).fromQuaternion(e.rotation);n.matrix.multiplyRight(r)}e.scale&&n.matrix.scale(e.scale)}e._node=n}return e._node}},{key:"createMesh",value:function(e){var t=this;if(!e._mesh){var A=(e.primitives||[]).map((function(A,n){return t.createPrimitive(A,n,e)})),n=new b({id:e.name||e.id,children:A});e._mesh=n}return e._mesh}},{key:"getVertexCount",value:function(e){C.k.warn("getVertexCount() not found")()}},{key:"createPrimitive",value:function(e,t,A){return function(e,t){var A=t.id,n=t.drawMode,r=t.vertexCount,i=t.attributes,o=t.modelOptions,a=new M.a(e,t);C.k.info(4,"createGLTFModel defines: ",a.defines)();var s=[];s.push.apply(s,Object(m.a)(a.generatedTextures)),s.push.apply(s,Object(m.a)(Object.values(i).map((function(e){return e.buffer}))));var g=new _(e,Object.assign({id:A,drawMode:n,vertexCount:r,modules:[h.a],defines:a.defines,parameters:a.parameters,vs:O(e,"\n#if (__VERSION__ < 300)\n #define _attr attribute\n#else\n #define _attr in\n#endif\n\n _attr vec4 POSITION;\n\n #ifdef HAS_NORMALS\n _attr vec4 NORMAL;\n #endif\n\n #ifdef HAS_TANGENTS\n _attr vec4 TANGENT;\n #endif\n\n #ifdef HAS_UV\n _attr vec2 TEXCOORD_0;\n #endif\n\n void main(void) {\n vec4 _NORMAL = vec4(0.);\n vec4 _TANGENT = vec4(0.);\n vec2 _TEXCOORD_0 = vec2(0.);\n\n #ifdef HAS_NORMALS\n _NORMAL = NORMAL;\n #endif\n\n #ifdef HAS_TANGENTS\n _TANGENT = TANGENT;\n #endif\n\n #ifdef HAS_UV\n _TEXCOORD_0 = TEXCOORD_0;\n #endif\n\n pbr_setPositionNormalTangentUV(POSITION, _NORMAL, _TANGENT, _TEXCOORD_0);\n gl_Position = u_MVPMatrix * POSITION;\n }\n"),fs:O(e,"\n#if (__VERSION__ < 300)\n #define fragmentColor gl_FragColor\n#else\n out vec4 fragmentColor;\n#endif\n\n void main(void) {\n fragmentColor = pbr_filterColor(vec4(0));\n }\n"),managedResources:s},o));return g.setProps({attributes:i}),g.setUniforms(a.uniforms),g}(this.gl,Object.assign({id:e.name||"".concat(A.name||A.id,"-primitive-").concat(t),drawMode:e.mode||4,vertexCount:e.indices?e.indices.count:this.getVertexCount(e.attributes),attributes:this.createAttributes(e.attributes,e.indices),material:e.material},this.options))}},{key:"createAttributes",value:function(e,t){var A=this,n={};return Object.keys(e).forEach((function(t){n[t]=A.createAccessor(e[t],A.createBuffer(e[t],A.gl.ARRAY_BUFFER))})),t&&(n.indices=this.createAccessor(t,this.createBuffer(t,this.gl.ELEMENT_ARRAY_BUFFER))),C.k.info(4,"glTF Attributes",{attributes:e,indices:t,generated:n})(),n}},{key:"createBuffer",value:function(e,t){e.bufferView||(e.bufferView={});var A=e.bufferView;return A.lumaBuffers||(A.lumaBuffers={}),A.lumaBuffers[t]||(A.lumaBuffers[t]=new Q.a(this.gl,{id:"from-".concat(A.id),data:A.data||e.value,target:t})),A.lumaBuffers[t]}},{key:"createAccessor",value:function(e,t){return new y.a({buffer:t,offset:e.byteOffset||0,stride:e.bufferView.byteStride||0,type:e.componentType,size:L[e.type]})}},{key:"createSampler",value:function(e){return e}},{key:"needsPOT",value:function(){return!1}}]),e}();var H=A(1281),Y=A(3),J=A.n(Y),j=A(12);function P(){return(P=Object(j.a)(J.a.mark((function e(t){var A;return J.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=[],t.scenes.forEach((function(e){e.traverse((function(e){Object.values(e.model.getUniforms()).forEach((function(e){!1===e.loaded&&A.push(e)}))}))})),e.next=4,V((function(){return A.some((function(e){return!e.loaded}))}));case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function V(e){return K.apply(this,arguments)}function K(){return(K=Object(j.a)(J.a.mark((function e(t){return J.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t()){e.next=5;break}return e.next=3,new Promise((function(e){return requestAnimationFrame(e)}));case 3:e.next=0;break;case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var W=A(291);A.d(t,"a",(function(){return z}));var X=[255,255,255,255],q={scenegraph:{type:"object",value:null,async:!0},getScene:function(e){return e&&e.scenes?"object"===typeof e.scene?e.scene:e.scenes[e.scene||0]:e},getAnimator:function(e){return e&&e.animator},_animations:null,sizeScale:{type:"number",value:1,min:0},sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},getPosition:{type:"accessor",value:function(e){return e.position}},getColor:{type:"accessor",value:X},_lighting:"flat",_imageBasedLightingEnvironment:null,getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]},loaders:[H.a]},z=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"getShaders",value:function(){var e=[c.a,u.a];return"pbr"===this.props._lighting&&e.push(h.a),{vs:"#version 300 es\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin mat3 instanceModelMatrix;\nin vec3 instanceTranslation;\nuniform float sizeScale;\nuniform float sizeMinPixels;\nuniform float sizeMaxPixels;\nuniform mat4 sceneModelMatrix;\nuniform bool composeModelMatrix;\nin vec4 POSITION;\n\n#ifdef HAS_UV\n in vec2 TEXCOORD_0;\n#endif\n\n#ifdef MODULE_PBR\n #ifdef HAS_NORMALS\n in vec4 NORMAL;\n #endif\n#endif\nout vec4 vColor;\n#ifndef MODULE_PBR\n #ifdef HAS_UV\n out vec2 vTEXCOORD_0;\n #endif\n#endif\nvoid main(void) {\n #if defined(HAS_UV) && !defined(MODULE_PBR)\n vTEXCOORD_0 = TEXCOORD_0;\n geometry.uv = vTEXCOORD_0;\n #endif\n\n geometry.worldPosition = instancePositions;\n geometry.pickingColor = instancePickingColors;\n\n #ifdef MODULE_PBR\n #ifdef HAS_NORMALS\n pbr_vNormal = project_normal(instanceModelMatrix * (sceneModelMatrix * vec4(NORMAL.xyz, 0.0)).xyz);\n geometry.normal = pbr_vNormal;\n #endif\n\n #ifdef HAS_UV\n pbr_vUV = TEXCOORD_0;\n #else\n pbr_vUV = vec2(0., 0.);\n #endif\n geometry.uv = pbr_vUV;\n #endif\n\n float originalSize = project_size_to_pixel(sizeScale);\n float clampedSize = clamp(originalSize, sizeMinPixels, sizeMaxPixels);\n\n vec3 pos = (instanceModelMatrix * (sceneModelMatrix * POSITION).xyz) * sizeScale * (clampedSize / originalSize) + instanceTranslation;\n if(composeModelMatrix) {\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n }\n else {\n pos = project_size(pos);\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, geometry.position);\n }\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n #ifdef MODULE_PBR\n pbr_vPosition = geometry.position.xyz;\n #endif\n\n vColor = instanceColors;\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\nuniform float opacity;\nin vec4 vColor;\n\nout vec4 fragmentColor;\n#ifndef MODULE_PBR\n #if defined(HAS_UV) && defined(HAS_BASECOLORMAP)\n in vec2 vTEXCOORD_0;\n uniform sampler2D u_BaseColorSampler;\n #endif\n#endif\n\nvoid main(void) {\n #ifdef MODULE_PBR\n fragmentColor = vColor * pbr_filterColor(vec4(0));\n geometry.uv = pbr_vUV;\n #else\n #if defined(HAS_UV) && defined(HAS_BASECOLORMAP)\n fragmentColor = vColor * texture2D(u_BaseColorSampler, vTEXCOORD_0);\n geometry.uv = vTEXCOORD_0;\n #else\n fragmentColor = vColor;\n #endif\n #endif\n\n fragmentColor.a *= opacity;\n DECKGL_FILTER_COLOR(fragmentColor, geometry);\n}\n",modules:e}}},{key:"initializeState",value:function(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),accessor:"getPosition",transition:!0},instanceColors:{type:5121,size:this.props.colorFormat.length,accessor:"getColor",normalized:!0,defaultValue:X,transition:!0},instanceModelMatrix:W.a})}},{key:"updateState",value:function(e){Object(a.a)(Object(o.a)(A.prototype),"updateState",this).call(this,e);var t=e.props,n=e.oldProps;t.scenegraph!==n.scenegraph?this._updateScenegraph(t):t._animations!==n._animations&&this._applyAnimationsProp(this.state.scenegraph,this.state.animator,t._animations)}},{key:"finalizeState",value:function(){Object(a.a)(Object(o.a)(A.prototype),"finalizeState",this).call(this),this._deleteScenegraph()}},{key:"_updateScenegraph",value:function(e){var t=this,A=this.context.gl,r=null;if(e.scenegraph instanceof E)r={scenes:[e.scenegraph]};else if(e.scenegraph&&!e.scenegraph.gltf){var i=e.scenegraph,o=function(e,t,A){var n=new Z(e,A);return{scenes:n.instantiate(t),animator:n.createAnimator()}}(A,i,this._getModelOptions());r=Object(n.a)({gltf:i},o),function(e){return P.apply(this,arguments)}(o).then((function(){return t.setNeedsRedraw()}))}else e.scenegraph&&(l.a.deprecated("ScenegraphLayer.props.scenegraph","Use GLTFLoader instead of GLTFScenegraphLoader")(),r=e.scenegraph);var a={layer:this,gl:A},s=e.getScene(r,a),g=e.getAnimator(r,a);s instanceof E?(this._deleteScenegraph(),this._applyAllAttributes(s),this._applyAnimationsProp(s,g,e._animations),this.setState({scenegraph:s,animator:g})):null!==s&&l.a.warn("invalid scenegraph:",s)()}},{key:"_applyAllAttributes",value:function(e){var t=this;if(this.state.attributesAvailable){var A=this.getAttributeManager().getAttributes();e.traverse((function(e){t._setModelAttributes(e.model,A)}))}}},{key:"_applyAnimationsProp",value:function(e,t,A){if(e&&t&&A){var n=t.getAnimations();Object.keys(A).sort().forEach((function(e){var t=A[e];if("*"===e)n.forEach((function(e){Object.assign(e,t)}));else if(Number.isFinite(Number(e))){var r=Number(e);r>=0&&r<n.length?Object.assign(n[r],t):l.a.warn("animation ".concat(e," not found"))()}else{var i=n.find((function(t){return t.name===e}));i?Object.assign(i,t):l.a.warn("animation ".concat(e," not found"))()}}))}}},{key:"_deleteScenegraph",value:function(){var e=this.state.scenegraph;e instanceof E&&e.delete()}},{key:"_getModelOptions",value:function(){var e=this.props._imageBasedLightingEnvironment,t=null;return e&&(t="function"===typeof e?e({gl:this.context.gl,layer:this}):e),{gl:this.context.gl,waitForFullLoad:!0,imageBasedLightingEnvironment:t,modelOptions:Object(n.a)({isInstanced:!0,transpileToGLSL100:!Object(C.j)(this.context.gl)},this.getShaders()),useTangents:!1}}},{key:"updateAttributes",value:function(e){var t=this;this.setState({attributesAvailable:!0}),this.state.scenegraph&&this.state.scenegraph.traverse((function(A){t._setModelAttributes(A.model,e)}))}},{key:"draw",value:function(e){var t=e.moduleParameters,A=void 0===t?null:t,n=e.parameters,r=void 0===n?{}:n,i=e.context;if(this.state.scenegraph){this.props._animations&&this.state.animator&&(this.state.animator.animate(i.timeline.getTime()),this.setNeedsRedraw());var o=this.context.viewport,a=this.props,s=a.sizeScale,g=a.sizeMinPixels,c=a.sizeMaxPixels,u=a.opacity,l=a.coordinateSystem,I=this.getNumInstances();this.state.scenegraph.traverse((function(e,t){var n=t.worldMatrix;e.model.setInstanceCount(I),e.updateModuleSettings(A),e.draw({parameters:r,uniforms:{sizeScale:s,opacity:u,sizeMinPixels:g,sizeMaxPixels:c,composeModelMatrix:Object(W.b)(o,l),sceneModelMatrix:n,u_Camera:e.model.getUniforms().project_uCameraPosition}})}))}}}]),A}(I.a);z.layerName="ScenegraphLayer",z.defaultProps=q},function(e,t,A){"use strict";var n=A(6),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(7),u=A(41),l=A(511),I=A(409);function C(e,t){if(!e)return null;var A="startIndices"in e?e.startIndices[t]:t,n=e.featureIds.value[A];return-1!==A?function(e,t,A){var n={properties:Object(c.a)({},e.properties[t])};for(var r in e.numericProps)n.properties[r]=e.numericProps[r].value[A];return n}(e,n,A):null}var h=A(269),f=A(388),d=A(386),B=A(268),p=A(267),E={circle:{type:f.a,props:{filled:"filled",stroked:"stroked",lineWidthMaxPixels:"lineWidthMaxPixels",lineWidthMinPixels:"lineWidthMinPixels",lineWidthScale:"lineWidthScale",lineWidthUnits:"lineWidthUnits",pointRadiusMaxPixels:"radiusMaxPixels",pointRadiusMinPixels:"radiusMinPixels",pointRadiusScale:"radiusScale",pointRadiusUnits:"radiusUnits",pointAntialiasing:"antialiasing",getFillColor:"getFillColor",getLineColor:"getLineColor",getLineWidth:"getLineWidth",getPointRadius:"getRadius"}},icon:{type:h.a,props:{iconAtlas:"iconAtlas",iconMapping:"iconMapping",iconSizeMaxPixels:"sizeMaxPixels",iconSizeMinPixels:"sizeMinPixels",iconSizeScale:"sizeScale",iconSizeUnits:"sizeUnits",getIcon:"getIcon",getIconAngle:"getAngle",getIconColor:"getColor",getIconPixelOffset:"getPixelOffset",getIconSize:"getSize"}},text:{type:d.a,props:{textSizeMaxPixels:"sizeMaxPixels",textSizeMinPixels:"sizeMinPixels",textSizeScale:"sizeScale",textSizeUnits:"sizeUnits",textBackground:"background",textBackgroundPadding:"backgroundPadding",textFontFamily:"fontFamily",textFontWeight:"fontWeight",textLineHeight:"lineHeight",textMaxWidth:"maxWidth",textOutlineColor:"outlineColor",textOutlineWidth:"outlineWidth",textWordBreak:"wordBreak",textCharacterSet:"characterSet",getText:"getText",getTextAngle:"getAngle",getTextColor:"getColor",getTextPixelOffset:"getPixelOffset",getTextSize:"getSize",getTextAnchor:"getTextAnchor",getTextAlignmentBaseline:"getAlignmentBaseline",getTextBackgroundColor:"getBackgroundColor",getTextBorderColor:"getBorderColor",getTextBorderWidth:"getBorderWidth"}}},Q={type:B.a,props:{lineWidthUnits:"widthUnits",lineWidthScale:"widthScale",lineWidthMinPixels:"widthMinPixels",lineWidthMaxPixels:"widthMaxPixels",lineJointRounded:"jointRounded",lineCapRounded:"capRounded",lineMiterLimit:"miterLimit",getLineColor:"getColor",getLineWidth:"getWidth"}},y={type:p.a,props:{extruded:"extruded",filled:"filled",wireframe:"wireframe",elevationScale:"elevationScale",material:"material",getElevation:"getElevation",getFillColor:"getFillColor",getLineColor:"getLineColor"}};function v(e){var t=e.type,A=e.props,n={};for(var r in A)n[r]=t.defaultProps[A[r]];return n}function m(e,t){var A=e.props,n=A.transitions,r=A.updateTriggers,i={updateTriggers:{},transitions:n&&{getPosition:n.geometry}};for(var o in t){var a=t[o],s=e.props[o];o.startsWith("get")&&(s=e.getSubLayerAccessor(s),i.updateTriggers[a]=r[o],n&&(i.transitions[a]=n[o])),i[a]=s}return i}function b(e,t){for(var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},r=A.startRow,i=void 0===r?0:r,o=A.endRow,a=void 0===o?e.length:o,s=i;s<a;s++){var g=e[s];u.a.assert(g&&g.geometry,"GeoJSON does not have geometry");var c=g.geometry;if("GeometryCollection"===c.type){u.a.assert(Array.isArray(c.geometries),"GeoJSON does not have geometries array");for(var l=c.geometries,I=0;I<l.length;I++){var C=l[I];w(C,n,t,g,s)}}else w(c,n,t,g,s)}return n}function w(e,t,A,n,r){var i=e.type,o=e.coordinates,a=t.pointFeatures,s=t.lineFeatures,g=t.polygonFeatures,c=t.polygonOutlineFeatures;if(function(e,t){var A=S[e];u.a.assert(A,"Unknown GeoJSON type ".concat(e));for(;t&&--A>0;)t=t[0];return t&&Number.isFinite(t[0])}(i,o))switch(i){case"Point":a.push(A({geometry:e},n,r));break;case"MultiPoint":o.forEach((function(e){a.push(A({geometry:{type:"Point",coordinates:e}},n,r))}));break;case"LineString":s.push(A({geometry:e},n,r));break;case"MultiLineString":o.forEach((function(e){s.push(A({geometry:{type:"LineString",coordinates:e}},n,r))}));break;case"Polygon":g.push(A({geometry:e},n,r)),o.forEach((function(e){c.push(A({geometry:{type:"LineString",coordinates:e}},n,r))}));break;case"MultiPolygon":o.forEach((function(e){g.push(A({geometry:{type:"Polygon",coordinates:e}},n,r)),e.forEach((function(e){c.push(A({geometry:{type:"LineString",coordinates:e}},n,r))}))}))}else u.a.warn("".concat(i," coordinates are malformed"))()}var S={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function F(e){return e.geometry.coordinates}function R(e,t){var A={points:{},lines:{},polygons:{},polygonsOutline:{}},n=e.points,r=e.lines,i=e.polygons,o=function(e,t){var A={points:null,lines:null,polygons:null};for(var n in A){var r=e[n].globalFeatureIds.value;A[n]=new Uint8ClampedArray(3*r.length);for(var i=[],o=0;o<r.length;o++)t(r[o],i),A[n][3*o+0]=i[0],A[n][3*o+1]=i[1],A[n][3*o+2]=i[2]}return A}(e,t);return A.points.data={length:n.positions.value.length/n.positions.size,attributes:{getPosition:n.positions,instancePickingColors:{size:3,value:o.points}},properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},A.lines.data={length:r.pathIndices.value.length-1,startIndices:r.pathIndices.value,attributes:{getPath:r.positions,instancePickingColors:{size:3,value:o.lines}},properties:r.properties,numericProps:r.numericProps,featureIds:r.featureIds},A.lines._pathType="open",A.polygons.data={length:i.polygonIndices.value.length-1,startIndices:i.polygonIndices.value,attributes:{getPolygon:i.positions,pickingColors:{size:3,value:o.polygons}},properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},A.polygons._normalize=!1,i.triangles&&(A.polygons.data.attributes.indices=i.triangles.value),A.polygonsOutline.data={length:i.primitivePolygonIndices.value.length-1,startIndices:i.primitivePolygonIndices.value,attributes:{getPath:i.positions,instancePickingColors:{size:3,value:o.polygons}},properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},A.polygonsOutline._pathType="open",A}A.d(t,"a",(function(){return G}));var D=Object(c.a)({},v(E.circle),{},v(E.icon),{},v(E.text),{},v(Q),{},v(y),{stroked:!0,filled:!0,extruded:!1,wireframe:!1,iconAtlas:{type:"object",value:null},iconMapping:{type:"object",value:{}},getIcon:{type:"accessor",value:function(e){return e.properties.icon}},getText:{type:"accessor",value:function(e){return e.properties.text}},pointType:"circle",getRadius:{deprecatedFor:"getPointRadius"}}),G=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"initializeState",value:function(){this.state={layerProps:{},features:{}},this.props.getLineDashArray&&u.a.removed("getLineDashArray","PathStyleExtension")()}},{key:"updateState",value:function(e){var t=e.props,A=e.changeFlags;if(A.dataChanged){var n=this.props.data,r=n&&"points"in n&&"polygons"in n&&"lines"in n;this.setState({binary:r}),r?this._updateStateBinary({props:t,changeFlags:A}):this._updateStateJSON({props:t,changeFlags:A})}}},{key:"_updateStateBinary",value:function(e){var t=e.props,A=(e.changeFlags,R(t.data,this.encodePickingColor));this.setState({layerProps:A})}},{key:"_updateStateJSON",value:function(e){var t=e.props,A=e.changeFlags,r=function(e){if(Array.isArray(e))return e;switch(u.a.assert(e.type,"GeoJSON does not have type"),e.type){case"Feature":return[e];case"FeatureCollection":return u.a.assert(Array.isArray(e.features),"GeoJSON does not have features array"),e.features;default:return[{geometry:e}]}}(t.data),i=this.getSubLayerRow.bind(this),o={},a={};if(Array.isArray(A.dataChanged)){var s=this.state.features;for(var g in s)o[g]=s[g].slice(),a[g]=[];var c,l=Object(n.a)(A.dataChanged);try{for(l.s();!(c=l.n()).done;){var C=c.value,h=b(r,i,C);for(var f in s)a[f].push(Object(I.a)({data:o[f],getIndex:function(e){return e.__source.index},dataRange:C,replace:h[f]}))}}catch(B){l.e(B)}finally{l.f()}}else o=b(r,i);var d=function(e,t){var A={points:{},lines:{},polygons:{},polygonsOutline:{}},n=e.pointFeatures,r=e.lineFeatures,i=e.polygonFeatures,o=e.polygonOutlineFeatures;return A.points.data=n,A.points._dataDiff=t.pointFeatures&&function(){return t.pointFeatures},A.points.getPosition=F,A.lines.data=r,A.lines._dataDiff=t.lineFeatures&&function(){return t.lineFeatures},A.lines.getPath=F,A.polygons.data=i,A.polygons._dataDiff=t.polygonFeatures&&function(){return t.polygonFeatures},A.polygons.getPolygon=F,A.polygonsOutline.data=o,A.polygonsOutline._dataDiff=t.polygonOutlineFeatures&&function(){return t.polygonOutlineFeatures},A.polygonsOutline.getPath=F,A}(o,a);this.setState({features:o,featuresDiff:a,layerProps:d})}},{key:"_updateAutoHighlight",value:function(e){var t,A="".concat(this.id,"-points-"),r=e.sourceLayer.id.startsWith(A),i=Object(n.a)(this.getSubLayers());try{for(i.s();!(t=i.n()).done;){var o=t.value;o.id.startsWith(A)===r&&o.updateAutoHighlight(e)}}catch(a){i.e(a)}finally{i.f()}}},{key:"_renderPolygonLayer",value:function(){var e=this.props,t=e.extruded,A=e.wireframe,n=this.state.layerProps,r="polygons-fill",i=this.shouldRenderSubLayer(r,n.polygons.data)&&this.getSubLayerClass(r,y.type);if(i){var o=m(this,y.props),a=t&&A;return a||delete o.getLineColor,o.updateTriggers.lineColors=a,new i(o,this.getSubLayerProps({id:r,updateTriggers:o.updateTriggers}),n.polygons)}return null}},{key:"_renderLineLayers",value:function(){var e=this.props,t=e.extruded,A=e.stroked,n=this.state.layerProps,r=!t&&A&&this.shouldRenderSubLayer("polygons-stroke",n.polygonsOutline.data)&&this.getSubLayerClass("polygons-stroke",Q.type),i=this.shouldRenderSubLayer("linestrings",n.lines.data)&&this.getSubLayerClass("linestrings",Q.type);if(r||i){var o=m(this,Q.props);return[r&&new r(o,this.getSubLayerProps({id:"polygons-stroke",updateTriggers:o.updateTriggers}),n.polygonsOutline),i&&new i(o,this.getSubLayerProps({id:"linestrings",updateTriggers:o.updateTriggers}),n.lines)]}return null}},{key:"_renderPointLayers",value:function(){var e=this.props.pointType,t=this.state,A=t.layerProps,r=t.binary,i=this.props.highlightedObjectIndex;!r&&Number.isFinite(i)&&(i=A.points.data.findIndex((function(e){return e.__source.index===i})));var o,a=new Set(e.split("+")),s=[],g=Object(n.a)(a);try{for(g.s();!(o=g.n()).done;){var c=o.value,u="points-".concat(c),l=E[c],I=l&&this.shouldRenderSubLayer(u,A.points.data)&&this.getSubLayerClass(u,l.type);if(I){var C=m(this,l.props);s.push(new I(C,this.getSubLayerProps({id:u,updateTriggers:C.updateTriggers,highlightedObjectIndex:i}),A.points))}}}catch(h){g.e(h)}finally{g.f()}return s}},{key:"renderLayers",value:function(){var e=this.props.extruded,t=this._renderPolygonLayer();return[!e&&t,this._renderLineLayers(),this._renderPointLayers(),e&&t]}},{key:"getSubLayerAccessor",value:function(e){return this.state.binary&&"function"===typeof e?function(t,A){var n=C(A.data,A.index);return e(n,A)}:Object(a.a)(Object(o.a)(A.prototype),"getSubLayerAccessor",this).call(this,e)}}]),A}(l.a);G.layerName="GeoJsonLayer",G.defaultProps=D},function(e,t,A){"use strict";A.r(t);var n={centimeters:637100880,centimetres:637100880,degrees:6371008.8/111325,feet:20902260.511392,inches:6371008.8*39.37,kilometers:6371.0088,kilometres:6371.0088,meters:6371008.8,metres:6371008.8,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:6371008.8/1852,radians:1,yards:6371008.8*1.0936};function r(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function i(e,t,A){if(void 0===A&&(A={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!c(e[0])||!c(e[1]))throw new Error("coordinates must contain numbers");return r({type:"Point",coordinates:e},t,A)}function o(e,t,A){if(void 0===A&&(A={}),e.length<2)throw new Error("coordinates must be an array of two or more positions");return r({type:"LineString",coordinates:e},t,A)}function a(e,t){void 0===t&&(t="kilometers");var A=n[t];if(!A)throw new Error(t+" units is invalid");return e*A}function s(e,t){void 0===t&&(t="kilometers");var A=n[t];if(!A)throw new Error(t+" units is invalid");return e/A}function g(e){return e%360*Math.PI/180}function c(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function u(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function l(e,t,A){if(!e)throw new Error("No feature passed");if(!A)throw new Error(".featureOf() requires a name");if(!e||"Feature"!==e.type||!e.geometry)throw new Error("Invalid input to "+A+", Feature with geometry required");if(!e.geometry||e.geometry.type!==t)throw new Error("Invalid input to "+A+": must be a "+t+", given "+e.geometry.type)}var I=function(e,t,A){void 0===A&&(A={});var n=u(e),r=u(t),i=g(r[1]-n[1]),o=g(r[0]-n[0]),s=g(n[1]),c=g(r[1]),l=Math.pow(Math.sin(i/2),2)+Math.pow(Math.sin(o/2),2)*Math.cos(s)*Math.cos(c);return a(2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l)),A.units)};function C(e,t,A){if(null!==e)for(var n,r,i,o,a,s,g,c,u=0,l=0,I=e.type,h="FeatureCollection"===I,f="Feature"===I,d=h?e.features.length:1,B=0;B<d;B++){a=(c=!!(g=h?e.features[B].geometry:f?e.geometry:e)&&"GeometryCollection"===g.type)?g.geometries.length:1;for(var p=0;p<a;p++){var E=0,Q=0;if(null!==(o=c?g.geometries[p]:g)){s=o.coordinates;var y=o.type;switch(u=!A||"Polygon"!==y&&"MultiPolygon"!==y?0:1,y){case null:break;case"Point":if(!1===t(s,l,B,E,Q))return!1;l++,E++;break;case"LineString":case"MultiPoint":for(n=0;n<s.length;n++){if(!1===t(s[n],l,B,E,Q))return!1;l++,"MultiPoint"===y&&E++}"LineString"===y&&E++;break;case"Polygon":case"MultiLineString":for(n=0;n<s.length;n++){for(r=0;r<s[n].length-u;r++){if(!1===t(s[n][r],l,B,E,Q))return!1;l++}"MultiLineString"===y&&E++,"Polygon"===y&&Q++}"Polygon"===y&&E++;break;case"MultiPolygon":for(n=0;n<s.length;n++){for(Q=0,r=0;r<s[n].length;r++){for(i=0;i<s[n][r].length-u;i++){if(!1===t(s[n][r][i],l,B,E,Q))return!1;l++}Q++}E++}break;case"GeometryCollection":for(n=0;n<o.geometries.length;n++)if(!1===C(o.geometries[n],t,A))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function h(e,t){var A,n,r,i,o,a,s,g,c,u,l=0,I="FeatureCollection"===e.type,C="Feature"===e.type,h=I?e.features.length:1;for(A=0;A<h;A++){for(a=I?e.features[A].geometry:C?e.geometry:e,g=I?e.features[A].properties:C?e.properties:{},c=I?e.features[A].bbox:C?e.bbox:void 0,u=I?e.features[A].id:C?e.id:void 0,o=(s=!!a&&"GeometryCollection"===a.type)?a.geometries.length:1,r=0;r<o;r++)if(null!==(i=s?a.geometries[r]:a))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,l,g,c,u))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],l,g,c,u))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,l,g,c,u))return!1;l++}}function f(e,t){h(e,(function(e,A,n,i,o){var a,s=null===e?null:e.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return!1!==t(r(e,n,{bbox:i,id:o}),A,0)&&void 0}switch(s){case"MultiPoint":a="Point";break;case"MultiLineString":a="LineString";break;case"MultiPolygon":a="Polygon"}for(var g=0;g<e.coordinates.length;g++){var c=e.coordinates[g];if(!1===t(r({type:a,coordinates:c},n),A,g))return!1}}))}function d(e,t){f(e,(function(e,A,n){var r=0;if(e.geometry){var i=e.geometry.type;if("Point"!==i&&"MultiPoint"!==i){var a,s=0,g=0,c=0;return!1!==C(e,(function(i,u,l,I,C){if(void 0===a||A>s||I>g||C>c)return a=i,s=A,g=I,c=C,void(r=0);var h=o([a,i],e.properties);if(!1===t(h,A,n,C,r))return!1;r++,a=i}))&&void 0}}}))}var B=A(285);function p(e,t){return e[0]*t[0]+e[1]*t[1]}function E(e,t,A){return"planar"===A.method?Object(B.a)(e,t,A):I(e,t,A)}t.default=function(e,t,A){if(void 0===A&&(A={}),A.method||(A.method="geodesic"),A.units||(A.units="kilometers"),!e)throw new Error("pt is required");if(Array.isArray(e)?e=i(e):"Point"===e.type?e=r(e):l(e,"Point","point"),!t)throw new Error("line is required");Array.isArray(t)?t=o(t):"LineString"===t.type?t=r(t):l(t,"LineString","line");var n=1/0,g=e.geometry.coordinates;return d(t,(function(e){var t=e.geometry.coordinates[0],r=e.geometry.coordinates[1],i=function(e,t,A,n){var r=[A[0]-t[0],A[1]-t[1]],i=p([e[0]-t[0],e[1]-t[1]],r);if(i<=0)return E(e,t,{method:n.method,units:"degrees"});var o=p(r,r);if(o<=i)return E(e,A,{method:n.method,units:"degrees"});var a=i/o,s=[t[0]+a*r[0],t[1]+a*r[1]];return E(e,s,{method:n.method,units:"degrees"})}(g,t,r,A);i<n&&(n=i)})),function(e,t,A){if(void 0===t&&(t="kilometers"),void 0===A&&(A="kilometers"),!(e>=0))throw new Error("length must be a positive number");return a(s(e,t),A)}(n,"degrees",A.units)}},function(e,t,A){"use strict";var n=A(8),r=A(7),i=A(1),o=A(4),a=A(16),s=A(17),g=A(9),c=A(10),u=A(36),l=A(575),I=A(576),C=A(384),h=A(422),f=A(135),d=A(42),B=A(23),p=new Uint16Array([0,2,1,0,3,2]),E=new Float32Array([0,1,0,0,1,0,1,1]);function Q(e,t){if(!t)return function(e){for(var t=new Float64Array(12),A=0;A<e.length;A++)t[3*A+0]=e[A][0],t[3*A+1]=e[A][1],t[3*A+2]=e[A][2]||0;return{vertexCount:6,positions:t,indices:p,texCoords:E}}(e);for(var A=Math.max(Math.abs(e[0][0]-e[3][0]),Math.abs(e[1][0]-e[2][0])),n=Math.max(Math.abs(e[1][1]-e[0][1]),Math.abs(e[2][1]-e[3][1])),r=Math.ceil(A/t)+1,i=Math.ceil(n/t)+1,o=(r-1)*(i-1)*6,a=new Uint32Array(o),s=new Float32Array(r*i*2),g=new Float64Array(r*i*3),c=0,u=0,l=0;l<r;l++)for(var I=l/(r-1),C=0;C<i;C++){var h=C/(i-1),f=y(e,I,h);g[3*c+0]=f[0],g[3*c+1]=f[1],g[3*c+2]=f[2]||0,s[2*c+0]=I,s[2*c+1]=1-h,l>0&&C>0&&(a[u++]=c-i,a[u++]=c-i-1,a[u++]=c-1,a[u++]=c-i,a[u++]=c-1,a[u++]=c),c++}return{vertexCount:o,positions:g,indices:a,texCoords:s}}function y(e,t,A){return Object(B.lerp)(Object(B.lerp)(e[0],e[1],A),Object(B.lerp)(e[3],e[2],A),t)}var v="\n#define SHADER_NAME bitmap-layer-fragment-shader\n\n#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform sampler2D bitmapTexture;\n\nvarying vec2 vTexCoord;\nvarying vec2 vTexPos;\n\nuniform float desaturate;\nuniform vec4 transparentColor;\nuniform vec3 tintColor;\nuniform float opacity;\n\nuniform float coordinateConversion;\nuniform vec4 bounds;\n\n/* projection utils */\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / PI / 2.0;\n\n// from degrees to Web Mercator\nvec2 lnglat_to_mercator(vec2 lnglat) {\n float x = lnglat.x;\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\n// from Web Mercator to degrees\nvec2 mercator_to_lnglat(vec2 xy) {\n xy /= WORLD_SCALE;\n return degrees(vec2(\n xy.x - PI,\n atan(exp(xy.y - PI)) * 2.0 - PI * 0.5\n ));\n}\n/* End projection utils */\n\n// apply desaturation\nvec3 color_desaturate(vec3 color) {\n float luminance = (color.r + color.g + color.b) * 0.333333333;\n return mix(color, vec3(luminance), desaturate);\n}\n\n// apply tint\nvec3 color_tint(vec3 color) {\n return color * tintColor;\n}\n\n// blend with background color\nvec4 apply_opacity(vec3 color, float alpha) {\n return mix(transparentColor, vec4(color, 1.0), alpha);\n}\n\nvec2 getUV(vec2 pos) {\n return vec2(\n (pos.x - bounds[0]) / (bounds[2] - bounds[0]),\n (pos.y - bounds[3]) / (bounds[1] - bounds[3])\n );\n}\n\n".concat("\nvec3 packUVsIntoRGB(vec2 uv) {\n // Extract the top 8 bits. We want values to be truncated down so we can add a fraction\n vec2 uv8bit = floor(uv * 256.);\n\n // Calculate the normalized remainders of u and v parts that do not fit into 8 bits\n // Scale and clamp to 0-1 range\n vec2 uvFraction = fract(uv * 256.);\n vec2 uvFraction4bit = floor(uvFraction * 16.);\n\n // Remainder can be encoded in blue channel, encode as 4 bits for pixel coordinates\n float fractions = uvFraction4bit.x + uvFraction4bit.y * 16.;\n\n return vec3(uv8bit, fractions) / 255.;\n}\n","\n\nvoid main(void) {\n vec2 uv = vTexCoord;\n if (coordinateConversion < -0.5) {\n vec2 lnglat = mercator_to_lnglat(vTexPos);\n uv = getUV(lnglat);\n } else if (coordinateConversion > 0.5) {\n vec2 commonPos = lnglat_to_mercator(vTexPos);\n uv = getUV(commonPos);\n }\n vec4 bitmapColor = texture2D(bitmapTexture, uv);\n\n gl_FragColor = apply_opacity(color_tint(color_desaturate(bitmapColor.rgb)), bitmapColor.a * opacity);\n\n geometry.uv = uv;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n\n if (picking_uActive) {\n // Since instance information is not used, we can use picking color for pixel index\n gl_FragColor.rgb = packUVsIntoRGB(uv);\n }\n}\n");A.d(t,"a",(function(){return b}));var m={image:{type:"image",value:null,async:!0},bounds:{type:"array",value:[1,0,0,1],compare:!0},_imageCoordinateSystem:u.a.DEFAULT,desaturate:{type:"number",min:0,max:1,value:0},transparentColor:{type:"color",value:[0,0,0,0]},tintColor:{type:"color",value:[255,255,255]}},b=function(e){Object(g.a)(A,e);var t=Object(c.a)(A);function A(){return Object(i.a)(this,A),t.apply(this,arguments)}return Object(o.a)(A,[{key:"getShaders",value:function(){return Object(s.a)(Object(a.a)(A.prototype),"getShaders",this).call(this,{vs:"\n#define SHADER_NAME bitmap-layer-vertex-shader\n\nattribute vec2 texCoords;\nattribute vec3 positions;\nattribute vec3 positions64Low;\n\nvarying vec2 vTexCoord;\nvarying vec2 vTexPos;\n\nuniform float coordinateConversion;\n\nconst vec3 pickingColor = vec3(1.0, 0.0, 0.0);\n\nvoid main(void) {\n geometry.worldPosition = positions;\n geometry.uv = texCoords;\n geometry.pickingColor = pickingColor;\n\n gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vTexCoord = texCoords;\n\n if (coordinateConversion < -0.5) {\n vTexPos = geometry.position.xy;\n } else if (coordinateConversion > 0.5) {\n vTexPos = geometry.worldPosition.xy;\n }\n\n vec4 color = vec4(0.0);\n DECKGL_FILTER_COLOR(color, geometry);\n}\n",fs:v,modules:[l.a,I.a]})}},{key:"initializeState",value:function(){var e=this,t=this.getAttributeManager();t.remove(["instancePickingColors"]);t.add({indices:{size:1,isIndexed:!0,update:function(t){return t.value=e.state.mesh.indices},noAlloc:!0},positions:{size:3,type:5130,fp64:this.use64bitPositions(),update:function(t){return t.value=e.state.mesh.positions},noAlloc:!0},texCoords:{size:2,update:function(t){return t.value=e.state.mesh.texCoords},noAlloc:!0}})}},{key:"updateState",value:function(e){var t=e.props,A=e.oldProps;if(e.changeFlags.extensionsChanged){var n,i=this.context.gl;null===(n=this.state.model)||void 0===n||n.delete(),this.state.model=this._getModel(i),this.getAttributeManager().invalidateAll()}var o=this.getAttributeManager();if(t.bounds!==A.bounds){var a=this.state.mesh,s=this._createMesh();for(var g in this.state.model.setVertexCount(s.vertexCount),s)a&&a[g]!==s[g]&&o.invalidate(g);this.setState(Object(r.a)({mesh:s},this._getCoordinateUniforms()))}else t._imageCoordinateSystem!==A._imageCoordinateSystem&&this.setState(this._getCoordinateUniforms())}},{key:"getPickingInfo",value:function(e){var t=e.info,A=this.props.image;if(!t.color||!A)return t.bitmap=null,t;var r=A.width,i=A.height;t.index=0;var o=function(e){var t=Object(n.a)(e,3),A=t[0],r=t[1],i=t[2];return[(A+(15&i)/16)/256,(r+(240&i)/256)/256]}(t.color),a=[Math.floor(o[0]*r),Math.floor(o[1]*i)];return t.bitmap={size:{width:r,height:i},uv:o,pixel:a},t}},{key:"disablePickingIndex",value:function(){this.setState({disablePicking:!0})}},{key:"restorePickingColors",value:function(){this.setState({disablePicking:!1})}},{key:"_updateAutoHighlight",value:function(e){Object(s.a)(Object(a.a)(A.prototype),"_updateAutoHighlight",this).call(this,Object(r.a)({},e,{color:this.encodePickingColor(0)}))}},{key:"_createMesh",value:function(){var e=this.props.bounds,t=e;return Number.isFinite(e[0])&&(t=[[e[0],e[1]],[e[0],e[3]],[e[2],e[3]],[e[2],e[1]]]),Q(t,this.context.viewport.resolution)}},{key:"_getModel",value:function(e){return e?new h.a(e,Object(r.a)({},this.getShaders(),{id:this.props.id,geometry:new f.a({drawMode:4,vertexCount:6}),isInstanced:!1})):null}},{key:"draw",value:function(e){var t=e.uniforms,A=e.moduleParameters,n=this.state,r=n.model,i=n.coordinateConversion,o=n.bounds,a=n.disablePicking,s=this.props,g=s.image,c=s.desaturate,u=s.transparentColor,l=s.tintColor;A.pickingActive&&a||g&&r&&r.setUniforms(t).setUniforms({bitmapTexture:g,desaturate:c,transparentColor:u.map((function(e){return e/255})),tintColor:l.slice(0,3).map((function(e){return e/255})),coordinateConversion:i,bounds:o}).draw()}},{key:"_getCoordinateUniforms",value:function(){var e=u.a.LNGLAT,t=u.a.CARTESIAN,A=u.a.DEFAULT,n=this.props._imageCoordinateSystem;if(n!==A){var r=this.props.bounds;if(!Number.isFinite(r[0]))throw new Error("_imageCoordinateSystem only supports rectangular bounds");var i=this.context.viewport.resolution?e:t;if((n=n===e?e:t)===e&&i===t)return{coordinateConversion:-1,bounds:r};if(n===t&&i===e){var o=Object(d.n)([r[0],r[1]]),a=Object(d.n)([r[2],r[3]]);return{coordinateConversion:1,bounds:[o[0],o[1],a[0],a[1]]}}}return{coordinateConversion:0,bounds:[0,0,0,0]}}}]),A}(C.a);b.layerName="BitmapLayer",b.defaultProps=m},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(575),u=A(576),l=A(36),I=A(384),C=A(422),h=A(135);A.d(t,"a",(function(){return d}));var f={getSourcePosition:{type:"accessor",value:function(e){return e.sourcePosition}},getTargetPosition:{type:"accessor",value:function(e){return e.targetPosition}},getColor:{type:"accessor",value:[0,0,0,255]},getWidth:{type:"accessor",value:1},widthUnits:"pixels",widthScale:{type:"number",value:1,min:0},widthMinPixels:{type:"number",value:0,min:0},widthMaxPixels:{type:"number",value:Number.MAX_SAFE_INTEGER,min:0}},d=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"getShaders",value:function(){return Object(a.a)(Object(o.a)(A.prototype),"getShaders",this).call(this,{vs:"#define SHADER_NAME line-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec3 instanceSourcePositions;\nattribute vec3 instanceTargetPositions;\nattribute vec3 instanceSourcePositions64Low;\nattribute vec3 instanceTargetPositions64Low;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\nattribute float instanceWidths;\n\nuniform float opacity;\nuniform float widthScale;\nuniform float widthMinPixels;\nuniform float widthMaxPixels;\nuniform float useShortestPath;\nuniform int widthUnits;\n\nvarying vec4 vColor;\nvarying vec2 uv;\nvec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) {\n vec2 dir_screenspace = normalize(line_clipspace * project_uViewportSize);\n dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);\n\n return dir_screenspace * offset_direction * width / 2.0;\n}\n\nvec3 splitLine(vec3 a, vec3 b, float x) {\n float t = (x - a.x) / (b.x - a.x);\n return vec3(x, mix(a.yz, b.yz, t));\n}\n\nvoid main(void) {\n geometry.worldPosition = instanceSourcePositions;\n geometry.worldPositionAlt = instanceTargetPositions;\n\n vec3 source_world = instanceSourcePositions;\n vec3 target_world = instanceTargetPositions;\n vec3 source_world_64low = instanceSourcePositions64Low;\n vec3 target_world_64low = instanceTargetPositions64Low;\n\n if (useShortestPath > 0.5 || useShortestPath < -0.5) {\n source_world.x = mod(source_world.x + 180., 360.0) - 180.;\n target_world.x = mod(target_world.x + 180., 360.0) - 180.;\n float deltaLng = target_world.x - source_world.x;\n\n if (deltaLng * useShortestPath > 180.) {\n source_world.x += 360. * useShortestPath;\n source_world = splitLine(source_world, target_world, 180. * useShortestPath);\n source_world_64low = vec3(0.0);\n } else if (deltaLng * useShortestPath < -180.) {\n target_world.x += 360. * useShortestPath;\n target_world = splitLine(source_world, target_world, 180. * useShortestPath);\n target_world_64low = vec3(0.0);\n } else if (useShortestPath < 0.) {\n gl_Position = vec4(0.);\n return;\n }\n }\n vec4 source_commonspace;\n vec4 target_commonspace;\n vec4 source = project_position_to_clipspace(source_world, source_world_64low, vec3(0.), source_commonspace);\n vec4 target = project_position_to_clipspace(target_world, target_world_64low, vec3(0.), target_commonspace);\n float segmentIndex = positions.x;\n vec4 p = mix(source, target, segmentIndex);\n geometry.position = mix(source_commonspace, target_commonspace, segmentIndex);\n uv = positions.xy;\n geometry.uv = uv;\n geometry.pickingColor = instancePickingColors;\n float widthPixels = clamp(\n project_size_to_pixel(instanceWidths * widthScale, widthUnits),\n widthMinPixels, widthMaxPixels\n );\n vec3 offset = vec3(\n getExtrusionOffset(target.xy - source.xy, positions.y, widthPixels),\n 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position = p + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vColor = vec4(instanceColors.rgb, instanceColors.a * opacity);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#define SHADER_NAME line-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\nvarying vec2 uv;\n\nvoid main(void) {\n geometry.uv = uv;\n\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[c.a,u.a]})}},{key:"initializeState",value:function(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getSourcePosition"},instanceTargetPositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getTargetPosition"},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getColor",defaultValue:[0,0,0,255]},instanceWidths:{size:1,transition:!0,accessor:"getWidth",defaultValue:1}})}},{key:"updateState",value:function(e){var t=e.props,n=e.oldProps,r=e.changeFlags;if(Object(a.a)(Object(o.a)(A.prototype),"updateState",this).call(this,{props:t,oldProps:n,changeFlags:r}),r.extensionsChanged){var i,s=this.context.gl;null===(i=this.state.model)||void 0===i||i.delete(),this.state.model=this._getModel(s),this.getAttributeManager().invalidateAll()}}},{key:"draw",value:function(e){var t=e.uniforms,A=this.props,n=A.widthUnits,r=A.widthScale,i=A.widthMinPixels,o=A.widthMaxPixels,a=A.wrapLongitude;this.state.model.setUniforms(t).setUniforms({widthUnits:l.d[n],widthScale:r,widthMinPixels:i,widthMaxPixels:o,useShortestPath:a?1:0}).draw(),a&&this.state.model.setUniforms({useShortestPath:-1}).draw()}},{key:"_getModel",value:function(e){return new C.a(e,Object(n.a)({},this.getShaders(),{id:this.props.id,geometry:new h.a({drawMode:5,attributes:{positions:new Float32Array([0,-1,0,0,1,0,1,-1,0,1,1,0])}}),isInstanced:!0}))}},{key:"wrapLongitude",get:function(){return!1}}]),A}(I.a);d.layerName="LineLayer",d.defaultProps=f},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(575),u=A(576),l=A(36),I=A(384),C=A(422),h=A(135);A.d(t,"a",(function(){return B}));var f=[0,0,0,255],d={getSourcePosition:{type:"accessor",value:function(e){return e.sourcePosition}},getTargetPosition:{type:"accessor",value:function(e){return e.targetPosition}},getSourceColor:{type:"accessor",value:f},getTargetColor:{type:"accessor",value:f},getWidth:{type:"accessor",value:1},getHeight:{type:"accessor",value:1},getTilt:{type:"accessor",value:0},greatCircle:!1,widthUnits:"pixels",widthScale:{type:"number",value:1,min:0},widthMinPixels:{type:"number",value:0,min:0},widthMaxPixels:{type:"number",value:Number.MAX_SAFE_INTEGER,min:0}},B=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"getShaders",value:function(){return Object(a.a)(Object(o.a)(A.prototype),"getShaders",this).call(this,{vs:"#define SHADER_NAME arc-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec4 instanceSourceColors;\nattribute vec4 instanceTargetColors;\nattribute vec3 instanceSourcePositions;\nattribute vec3 instanceSourcePositions64Low;\nattribute vec3 instanceTargetPositions;\nattribute vec3 instanceTargetPositions64Low;\nattribute vec3 instancePickingColors;\nattribute float instanceWidths;\nattribute float instanceHeights;\nattribute float instanceTilts;\n\nuniform bool greatCircle;\nuniform bool useShortestPath;\nuniform float numSegments;\nuniform float opacity;\nuniform float widthScale;\nuniform float widthMinPixels;\nuniform float widthMaxPixels;\nuniform int widthUnits;\n\nvarying vec4 vColor;\nvarying vec2 uv;\nvarying float isValid;\n\nfloat paraboloid(float distance, float sourceZ, float targetZ, float ratio) {\n\n float deltaZ = targetZ - sourceZ;\n float dh = distance * instanceHeights;\n if (dh == 0.0) {\n return sourceZ + deltaZ * ratio;\n }\n float unitZ = deltaZ / dh;\n float p2 = unitZ * unitZ + 1.0;\n float dir = step(deltaZ, 0.0);\n float z0 = mix(sourceZ, targetZ, dir);\n float r = mix(ratio, 1.0 - ratio, dir);\n return sqrt(r * (p2 - r)) * dh + z0;\n}\nvec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) {\n vec2 dir_screenspace = normalize(line_clipspace * project_uViewportSize);\n dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);\n\n return dir_screenspace * offset_direction * width / 2.0;\n}\n\nfloat getSegmentRatio(float index) {\n return smoothstep(0.0, 1.0, index / (numSegments - 1.0));\n}\n\nvec3 interpolateFlat(vec3 source, vec3 target, float segmentRatio) {\n float distance = length(source.xy - target.xy);\n float z = paraboloid(distance, source.z, target.z, segmentRatio);\n\n float tiltAngle = radians(instanceTilts);\n vec2 tiltDirection = normalize(target.xy - source.xy);\n vec2 tilt = vec2(-tiltDirection.y, tiltDirection.x) * z * sin(tiltAngle);\n\n return vec3(\n mix(source.xy, target.xy, segmentRatio) + tilt,\n z * cos(tiltAngle)\n );\n}\nfloat getAngularDist (vec2 source, vec2 target) {\n vec2 sourceRadians = radians(source);\n vec2 targetRadians = radians(target);\n vec2 sin_half_delta = sin((sourceRadians - targetRadians) / 2.0);\n vec2 shd_sq = sin_half_delta * sin_half_delta;\n\n float a = shd_sq.y + cos(sourceRadians.y) * cos(targetRadians.y) * shd_sq.x;\n return 2.0 * asin(sqrt(a));\n}\n\nvec3 interpolateGreatCircle(vec3 source, vec3 target, vec3 source3D, vec3 target3D, float angularDist, float t) {\n vec2 lngLat;\n if(abs(angularDist - PI) < 0.001) {\n lngLat = (1.0 - t) * source.xy + t * target.xy;\n } else {\n float a = sin((1.0 - t) * angularDist);\n float b = sin(t * angularDist);\n vec3 p = source3D.yxz * a + target3D.yxz * b;\n lngLat = degrees(vec2(atan(p.y, -p.x), atan(p.z, length(p.xy))));\n }\n\n float z = paraboloid(angularDist * EARTH_RADIUS, source.z, target.z, t);\n\n return vec3(lngLat, z);\n}\n\nvoid main(void) {\n geometry.worldPosition = instanceSourcePositions;\n geometry.worldPositionAlt = instanceTargetPositions;\n\n float segmentIndex = positions.x;\n float segmentRatio = getSegmentRatio(segmentIndex);\n float prevSegmentRatio = getSegmentRatio(max(0.0, segmentIndex - 1.0));\n float nextSegmentRatio = getSegmentRatio(min(numSegments - 1.0, segmentIndex + 1.0));\n float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0));\n isValid = 1.0;\n\n uv = vec2(segmentRatio, positions.y);\n geometry.uv = uv;\n geometry.pickingColor = instancePickingColors;\n\n vec4 curr;\n vec4 next;\n vec3 source;\n vec3 target;\n\n if ((greatCircle || project_uProjectionMode == PROJECTION_MODE_GLOBE) && project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n source = project_globe_(vec3(instanceSourcePositions.xy, 0.0));\n target = project_globe_(vec3(instanceTargetPositions.xy, 0.0));\n float angularDist = getAngularDist(instanceSourcePositions.xy, instanceTargetPositions.xy);\n\n vec3 prevPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, prevSegmentRatio);\n vec3 currPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, segmentRatio);\n vec3 nextPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, nextSegmentRatio);\n\n if (abs(currPos.x - prevPos.x) > 180.0) {\n indexDir = -1.0;\n isValid = 0.0;\n } else if (abs(currPos.x - nextPos.x) > 180.0) {\n indexDir = 1.0;\n isValid = 0.0;\n }\n nextPos = indexDir < 0.0 ? prevPos : nextPos;\n nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\n\n if (isValid == 0.0) {\n nextPos.x += nextPos.x > 0.0 ? -360.0 : 360.0;\n float t = ((currPos.x > 0.0 ? 180.0 : -180.0) - currPos.x) / (nextPos.x - currPos.x);\n currPos = mix(currPos, nextPos, t);\n segmentRatio = mix(segmentRatio, nextSegmentRatio, t);\n }\n\n vec3 currPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, segmentRatio);\n vec3 nextPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, nextSegmentRatio);\n \n curr = project_position_to_clipspace(currPos, currPos64Low, vec3(0.0), geometry.position);\n next = project_position_to_clipspace(nextPos, nextPos64Low, vec3(0.0));\n \n } else {\n vec3 source_world = instanceSourcePositions;\n vec3 target_world = instanceTargetPositions;\n if (useShortestPath) {\n source_world.x = mod(source_world.x + 180., 360.0) - 180.;\n target_world.x = mod(target_world.x + 180., 360.0) - 180.;\n\n float deltaLng = target_world.x - source_world.x;\n if (deltaLng > 180.) target_world.x -= 360.;\n if (deltaLng < -180.) source_world.x -= 360.;\n }\n source = project_position(source_world, instanceSourcePositions64Low);\n target = project_position(target_world, instanceTargetPositions64Low);\n float antiMeridianX = 0.0;\n\n if (useShortestPath) {\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n antiMeridianX = -(project_uCoordinateOrigin.x + 180.) / 360. * TILE_SIZE;\n }\n float thresholdRatio = (antiMeridianX - source.x) / (target.x - source.x);\n\n if (prevSegmentRatio <= thresholdRatio && nextSegmentRatio > thresholdRatio) {\n isValid = 0.0;\n indexDir = sign(segmentRatio - thresholdRatio);\n segmentRatio = thresholdRatio;\n }\n }\n\n nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\n vec3 currPos = interpolateFlat(source, target, segmentRatio);\n vec3 nextPos = interpolateFlat(source, target, nextSegmentRatio);\n\n if (useShortestPath) {\n if (nextPos.x < antiMeridianX) {\n currPos.x += TILE_SIZE;\n nextPos.x += TILE_SIZE;\n }\n }\n\n curr = project_common_position_to_clipspace(vec4(currPos, 1.0));\n next = project_common_position_to_clipspace(vec4(nextPos, 1.0));\n geometry.position = vec4(currPos, 1.0);\n }\n float widthPixels = clamp(\n project_size_to_pixel(instanceWidths * widthScale, widthUnits),\n widthMinPixels, widthMaxPixels\n );\n vec3 offset = vec3(\n getExtrusionOffset((next.xy - curr.xy) * indexDir, positions.y, widthPixels),\n 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position = curr + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vec4 color = mix(instanceSourceColors, instanceTargetColors, segmentRatio);\n vColor = vec4(color.rgb, color.a * opacity);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#define SHADER_NAME arc-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\nvarying vec2 uv;\nvarying float isValid;\n\nvoid main(void) {\n if (isValid == 0.0) {\n discard;\n }\n\n gl_FragColor = vColor;\n geometry.uv = uv;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[c.a,u.a]})}},{key:"initializeState",value:function(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getSourcePosition"},instanceTargetPositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getTargetPosition"},instanceSourceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getSourceColor",defaultValue:f},instanceTargetColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getTargetColor",defaultValue:f},instanceWidths:{size:1,transition:!0,accessor:"getWidth",defaultValue:1},instanceHeights:{size:1,transition:!0,accessor:"getHeight",defaultValue:1},instanceTilts:{size:1,transition:!0,accessor:"getTilt",defaultValue:0}})}},{key:"updateState",value:function(e){var t=e.props,n=e.oldProps,r=e.changeFlags;if(Object(a.a)(Object(o.a)(A.prototype),"updateState",this).call(this,{props:t,oldProps:n,changeFlags:r}),r.extensionsChanged){var i,s=this.context.gl;null===(i=this.state.model)||void 0===i||i.delete(),this.state.model=this._getModel(s),this.getAttributeManager().invalidateAll()}}},{key:"draw",value:function(e){var t=e.uniforms,A=this.props,n=A.widthUnits,r=A.widthScale,i=A.widthMinPixels,o=A.widthMaxPixels,a=A.greatCircle,s=A.wrapLongitude;this.state.model.setUniforms(t).setUniforms({greatCircle:a,widthUnits:l.d[n],widthScale:r,widthMinPixels:i,widthMaxPixels:o,useShortestPath:s}).draw()}},{key:"_getModel",value:function(e){for(var t=[],A=0;A<50;A++)t=t.concat([A,1,0,A,-1,0]);var r=new C.a(e,Object(n.a)({},this.getShaders(),{id:this.props.id,geometry:new h.a({drawMode:5,attributes:{positions:new Float32Array(t)}}),isInstanced:!0}));return r.setUniforms({numSegments:50}),r}},{key:"wrapLongitude",get:function(){return!1}}]),A}(I.a);B.layerName="ArcLayer",B.defaultProps=d},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(575),u=A(655),l=A(576),I=A(36),C=A(384),h=A(422),f=A(135);A.d(t,"a",(function(){return E}));var d=[0,0,0,255],B=[0,0,1],p={sizeUnits:"pixels",pointSize:{type:"number",min:0,value:10},getPosition:{type:"accessor",value:function(e){return e.position}},getNormal:{type:"accessor",value:B},getColor:{type:"accessor",value:d},material:!0,radiusPixels:{deprecatedFor:"pointSize"}};var E=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"getShaders",value:function(){return Object(a.a)(Object(o.a)(A.prototype),"getShaders",this).call(this,{vs:"#define SHADER_NAME point-cloud-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec3 instanceNormals;\nattribute vec4 instanceColors;\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute vec3 instancePickingColors;\n\nuniform float opacity;\nuniform float radiusPixels;\nuniform int sizeUnits;\n\nvarying vec4 vColor;\nvarying vec2 unitPosition;\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.normal = project_normal(instanceNormals);\n unitPosition = positions.xy;\n geometry.uv = unitPosition;\n geometry.pickingColor = instancePickingColors;\n vec3 offset = vec3(positions.xy * project_size_to_pixel(radiusPixels, sizeUnits), 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.), geometry.position);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n vec3 lightColor = lighting_getLightColor(instanceColors.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal);\n vColor = vec4(lightColor, instanceColors.a * opacity);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#define SHADER_NAME point-cloud-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\nvarying vec2 unitPosition;\n\nvoid main(void) {\n geometry.uv = unitPosition;\n\n float distToCenter = length(unitPosition);\n\n if (distToCenter > 1.0) {\n discard;\n }\n\n gl_FragColor = vColor;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n",modules:[c.a,u.a,l.a]})}},{key:"initializeState",value:function(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceNormals:{size:3,transition:!0,accessor:"getNormal",defaultValue:B},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getColor",defaultValue:d}})}},{key:"updateState",value:function(e){var t=e.props,n=e.oldProps,r=e.changeFlags;if(Object(a.a)(Object(o.a)(A.prototype),"updateState",this).call(this,{props:t,oldProps:n,changeFlags:r}),r.extensionsChanged){var i,s=this.context.gl;null===(i=this.state.model)||void 0===i||i.delete(),this.state.model=this._getModel(s),this.getAttributeManager().invalidateAll()}r.dataChanged&&function(e){var t=e.header,A=e.attributes;t&&A&&(e.length=t.vertexCount,A.POSITION&&(A.instancePositions=A.POSITION),A.NORMAL&&(A.instanceNormals=A.NORMAL),A.COLOR_0&&(A.instanceColors=A.COLOR_0))}(t.data)}},{key:"draw",value:function(e){var t=e.uniforms,A=this.props,n=A.pointSize,r=A.sizeUnits;this.state.model.setUniforms(t).setUniforms({sizeUnits:I.d[r],radiusPixels:n}).draw()}},{key:"_getModel",value:function(e){for(var t=[],A=0;A<3;A++){var r=A/3*Math.PI*2;t.push(2*Math.cos(r),2*Math.sin(r),0)}return new h.a(e,Object(n.a)({},this.getShaders(),{id:this.props.id,geometry:new f.a({drawMode:4,attributes:{positions:new Float32Array(t)}}),isInstanced:!0}))}}]),A}(C.a);E.layerName="PointCloudLayer",E.defaultProps=p},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(16),a=A(17),s=A(9),g=A(10),c=A(41),u=A(575),l=A(655),I=A(576),C=A(384),h=A(135),f=A(18),d=A(232),B=A(422),p=A(718),E=A(427),Q=A(291);function y(e,t){(e.COLOR_0||e.colors)&&t||(e.colors={constant:!0,value:new Float32Array([1,1,1])}),c.a.assert(e.positions||e.POSITION,'no "postions" or "POSITION" attribute in mesh')}function v(e,t){if(e.attributes)return y(e.attributes,t),e instanceof h.a?e:new h.a(e);if(e.positions||e.POSITION)return y(e,t),new h.a({attributes:e});throw Error("Invalid mesh")}A.d(t,"a",(function(){return b}));var m={mesh:{value:null,type:"object",async:!0},texture:{type:"image",value:null,async:!0},sizeScale:{type:"number",value:1,min:0},_useMeshColors:{type:"boolean",value:!1},_instanced:!0,wireframe:!1,material:!0,getPosition:{type:"accessor",value:function(e){return e.position}},getColor:{type:"accessor",value:[0,0,0,255]},getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]}},b=function(e){Object(s.a)(A,e);var t=Object(g.a)(A);function A(){return Object(r.a)(this,A),t.apply(this,arguments)}return Object(i.a)(A,[{key:"getShaders",value:function(){var e=!Object(f.j)(this.context.gl),t={};return Object(p.b)(this.context.gl,E.a.GLSL_DERIVATIVES)&&(t.DERIVATIVES_AVAILABLE=1),Object(a.a)(Object(o.a)(A.prototype),"getShaders",this).call(this,{vs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-vs\nuniform float sizeScale;\nuniform bool composeModelMatrix;\nin vec3 positions;\nin vec3 normals;\nin vec3 colors;\nin vec2 texCoords;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin mat3 instanceModelMatrix;\nin vec3 instanceTranslation;\nout vec2 vTexCoord;\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec4 vColor;\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = texCoords;\n geometry.pickingColor = instancePickingColors;\n\n vTexCoord = texCoords;\n cameraPosition = project_uCameraPosition;\n normals_commonspace = project_normal(instanceModelMatrix * normals);\n vColor = vec4(colors * instanceColors.rgb, instanceColors.a);\n geometry.normal = normals_commonspace;\n\n vec3 pos = (instanceModelMatrix * positions) * sizeScale + instanceTranslation;\n\n if (composeModelMatrix) {\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace);\n }\n else {\n pos = project_size(pos);\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace);\n }\n\n geometry.position = position_commonspace;\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-fs\n\nprecision highp float;\n\nuniform bool hasTexture;\nuniform sampler2D sampler;\nuniform bool flatShading;\nuniform float opacity;\n\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\n\nout vec4 fragColor;\n\nvoid main(void) {\n geometry.uv = vTexCoord;\n\n vec3 normal;\n if (flatShading) {\n#ifdef DERIVATIVES_AVAILABLE\n normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n#else\n normal = vec3(0.0, 0.0, 1.0);\n#endif\n } else {\n normal = normals_commonspace;\n }\n\n vec4 color = hasTexture ? texture(sampler, vTexCoord) : vColor;\n vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);\n fragColor = vec4(lightColor, color.a * opacity);\n\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",modules:[u.a,l.b,I.a],transpileToGLSL100:e,defines:t})}},{key:"initializeState",value:function(){this.getAttributeManager().addInstanced({instancePositions:{transition:!0,type:5130,fp64:this.use64bitPositions(),size:3,accessor:"getPosition"},instanceColors:{type:5121,transition:!0,size:this.props.colorFormat.length,normalized:!0,accessor:"getColor",defaultValue:[0,0,0,255]},instanceModelMatrix:Q.a}),this.setState({emptyTexture:new d.a(this.context.gl,{data:new Uint8Array(4),width:1,height:1})})}},{key:"updateState",value:function(e){var t=e.props,n=e.oldProps,r=e.changeFlags;if(Object(a.a)(Object(o.a)(A.prototype),"updateState",this).call(this,{props:t,oldProps:n,changeFlags:r}),t.mesh!==n.mesh||r.extensionsChanged){var i;if(null===(i=this.state.model)||void 0===i||i.delete(),t.mesh){this.state.model=this.getModel(t.mesh);var s=t.mesh.attributes||t.mesh;this.setState({hasNormals:Boolean(s.NORMAL||s.normals)})}this.getAttributeManager().invalidateAll()}t.texture!==n.texture&&this.setTexture(t.texture),this.state.model&&this.state.model.setDrawMode(this.props.wireframe?3:4)}},{key:"finalizeState",value:function(){Object(a.a)(Object(o.a)(A.prototype),"finalizeState",this).call(this),this.state.emptyTexture.delete()}},{key:"draw",value:function(e){var t=e.uniforms;if(this.state.model){var A=this.context.viewport,n=this.props,r=n.sizeScale,i=n.coordinateSystem,o=n._instanced;this.state.model.setUniforms(t).setUniforms({sizeScale:r,composeModelMatrix:!o||Object(Q.b)(A,i),flatShading:!this.state.hasNormals}).draw()}}},{key:"getModel",value:function(e){var t=new B.a(this.context.gl,Object(n.a)({},this.getShaders(),{id:this.props.id,geometry:v(e,this.props._useMeshColors),isInstanced:!0})),A=this.props.texture,r=this.state.emptyTexture;return t.setUniforms({sampler:A||r,hasTexture:Boolean(A)}),t}},{key:"setTexture",value:function(e){var t=this.state,A=t.emptyTexture,n=t.model;null===n||void 0===n||n.setUniforms({sampler:e||A,hasTexture:Boolean(e)})}}]),A}(C.a);b.layerName="SimpleMeshLayer",b.defaultProps=m},function(e,t,A){"use strict";A.r(t);function n(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function r(e,t,A){void 0===A&&(A={});for(var r=0,i=e;r<i.length;r++){var o=i[r];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var a=0;a<o[o.length-1].length;a++)if(o[o.length-1][a]!==o[0][a])throw new Error("First and last Position are not equivalent.")}return n({type:"Polygon",coordinates:e},t,A)}function i(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}var o=A(179),a=A(512);function s(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function g(e){var t=e*Math.PI/180;return Math.tan(t)}t.default=function(e,t,A,n){var c,u=(n=n||{}).steps||64,l=n.units||"kilometers",I=n.angle||0,C=n.pivot||e,h=n.properties||e.properties||{};if(!e)throw new Error("center is required");if(!t)throw new Error("xSemiAxis is required");if(!A)throw new Error("ySemiAxis is required");if(!(c=n)||c.constructor!==Object)throw new Error("options must be an object");if(!i(u))throw new Error("steps must be a number");if(!i(I))throw new Error("angle must be a number");var f=s(e);if("degrees"===l)var d=I%360*Math.PI/180;else t=Object(o.a)(e,t,90,{units:l}),A=Object(o.a)(e,A,0,{units:l}),t=s(t)[0]-f[0],A=s(A)[1]-f[1];for(var B=[],p=0;p<u;p+=1){var E=-360*p/u,Q=t*A/Math.sqrt(Math.pow(A,2)+Math.pow(t,2)*Math.pow(g(E),2)),y=t*A/Math.sqrt(Math.pow(t,2)+Math.pow(A,2)/Math.pow(g(E),2));if(E<-90&&E>=-270&&(Q=-Q),E<-180&&E>=-360&&(y=-y),"degrees"===l){var v=Q*Math.cos(d)+y*Math.sin(d),m=y*Math.cos(d)-Q*Math.sin(d);Q=v,y=m}B.push([Q+f[0],y+f[1]])}return B.push(B[0]),"degrees"===l?r([B],h):Object(a.default)(r([B],h),I,{pivot:C})}},function(e,t,A){"use strict";A.r(t);var n=A(40),r=A(165),i=A(113),o=A(148),a=A(157),s=A(207),g=A(69),c=A(201),u=A(468),l=A(136),I=A(469),C=A(160),h=A(66),f=A(51),d=A(0);function B(e){var t=d.useState(e),A=t[0],n=t[1],r=e||A;return d.useEffect((function(){null==A&&n("mui-".concat(Math.round(1e5*Math.random())))}),[A]),r}var p=A(200);A.d(t,"capitalize",(function(){return n.a})),A.d(t,"createChainedFunction",(function(){return r.a})),A.d(t,"createSvgIcon",(function(){return i.a})),A.d(t,"debounce",(function(){return o.a})),A.d(t,"deprecatedPropType",(function(){return a.a})),A.d(t,"isMuiElement",(function(){return s.a})),A.d(t,"ownerDocument",(function(){return g.a})),A.d(t,"ownerWindow",(function(){return c.a})),A.d(t,"requirePropFactory",(function(){return u.a})),A.d(t,"setRef",(function(){return l.a})),A.d(t,"unsupportedProp",(function(){return I.a})),A.d(t,"useControlled",(function(){return C.a})),A.d(t,"useEventCallback",(function(){return h.a})),A.d(t,"useForkRef",(function(){return f.a})),A.d(t,"unstable_useId",(function(){return B})),A.d(t,"useIsFocusVisible",(function(){return p.a}))},function(e,t,A){"use strict";var n=A(329),r="\nuniform float lighting_uAmbient;\nuniform float lighting_uDiffuse;\nuniform float lighting_uShininess;\nuniform vec3 lighting_uSpecularColor;\n\nvec3 lighting_getLightColor(vec3 surfaceColor, vec3 light_direction, vec3 view_direction, vec3 normal_worldspace, vec3 color) {\n vec3 halfway_direction = normalize(light_direction + view_direction);\n float lambertian = dot(light_direction, normal_worldspace);\n float specular = 0.0;\n if (lambertian > 0.0) {\n float specular_angle = max(dot(normal_worldspace, halfway_direction), 0.0);\n specular = pow(specular_angle, lighting_uShininess);\n }\n lambertian = max(lambertian, 0.0);\n return (lambertian * lighting_uDiffuse * surfaceColor + specular * lighting_uSpecularColor) * color;\n}\n\nvec3 lighting_getLightColor(vec3 surfaceColor, vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) {\n vec3 lightColor = surfaceColor;\n\n if (lighting_uEnabled) {\n vec3 view_direction = normalize(cameraPosition - position_worldspace);\n lightColor = lighting_uAmbient * surfaceColor * lighting_uAmbientLight.color;\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uPointLightCount) {\n break;\n }\n PointLight pointLight = lighting_uPointLight[i];\n vec3 light_position_worldspace = pointLight.position;\n vec3 light_direction = normalize(light_position_worldspace - position_worldspace);\n lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color);\n }\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uDirectionalLightCount) {\n break;\n }\n DirectionalLight directionalLight = lighting_uDirectionalLight[i];\n lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color);\n }\n }\n return lightColor;\n}\n\nvec3 lighting_getSpecularLightColor(vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) {\n vec3 lightColor = vec3(0, 0, 0);\n vec3 surfaceColor = vec3(0, 0, 0);\n\n if (lighting_uEnabled) {\n vec3 view_direction = normalize(cameraPosition - position_worldspace);\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uPointLightCount) {\n break;\n }\n PointLight pointLight = lighting_uPointLight[i];\n vec3 light_position_worldspace = pointLight.position;\n vec3 light_direction = normalize(light_position_worldspace - position_worldspace);\n lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color);\n }\n\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= lighting_uDirectionalLightCount) {\n break;\n }\n DirectionalLight directionalLight = lighting_uDirectionalLight[i];\n lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color);\n }\n }\n return lightColor;\n}\n";A.d(t,"a",(function(){return s})),A.d(t,"b",(function(){return g}));var i={};function o(e){var t=e.ambient,A=void 0===t?.35:t,n=e.diffuse,r=void 0===n?.6:n,i=e.shininess,o=void 0===i?32:i,a=e.specularColor;return{lighting_uAmbient:A,lighting_uDiffuse:r,lighting_uShininess:o,lighting_uSpecularColor:(void 0===a?[30,30,30]:a).map((function(e){return e/255}))}}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;if(!("material"in e))return{};var t=e.material;return t?o(t):{lighting_uEnabled:!1}}var s={name:"gouraud-lighting",dependencies:[n.a],vs:r,defines:{LIGHTING_VERTEX:1},getUniforms:a},g={name:"phong-lighting",dependencies:[n.a],fs:r,defines:{LIGHTING_FRAGMENT:1},getUniforms:a}},,,,,,function(e,t,A){"use strict";var n=A(855),r=A(356),i=A(356),o=A(172).buildOptions,a=A(858);t.parse=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=arguments.length>2?arguments[2]:void 0;if(A){!0===A&&(A={});var s=a.validate(e,A);if(!0!==s)throw Error(s.err.msg)}t.parseTrueNumberOnly&&!1!==t.parseNodeValue&&!t.numParseOptions&&(t.numParseOptions={leadingZeros:!1});var g=o(t,i.defaultOptions,i.props),c=r.getTraversalObj(e,g);return n.convertToJson(c,g)},t.convertTonimn=A(859).convert2nimn,t.getTraversalObj=r.getTraversalObj,t.convertToJson=n.convertToJson,t.convertToJsonString=A(860).convertToJsonString,t.validate=a.validate,t.j2xParser=A(861),t.parseToNimn=function(e,A,n){return t.convertTonimn(t.getTraversalObj(e,n),A,n)}},function(e,t,A){"use strict";A.d(t,"a",(function(){return s}));var n=A(62),r={};function i(e,t){var A;r[e]=!0,void 0!==t&&(A=t,n.global.console&&n.global.console.error&&n.global.console.error(A))}var o=function e(t){var A=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(var n=0;n<this.attribs.length;n++){var r=new e.VertexAttrib(A);this.attribs[n]=r}this.maxAttrib=0};(o.VertexAttrib=function(e){this.enabled=!1,this.buffer=null,this.size=4,this.type=5126,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()}).prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var a=function(e){var t=this;this.gl=e,function(e){var t=e.getError;e.getError=function(){var A;do{0!==(A=t.apply(e))&&(r[A]=!0)}while(0!==A);for(A in r)if(r[A])return delete r[A],parseInt(A,10);return 0}}(e);var A=this.original={getParameter:e.getParameter,enableVertexAttribArray:e.enableVertexAttribArray,disableVertexAttribArray:e.disableVertexAttribArray,bindBuffer:e.bindBuffer,getVertexAttrib:e.getVertexAttrib,vertexAttribPointer:e.vertexAttribPointer};e.getParameter=function(e){return e===t.VERTEX_ARRAY_BINDING_OES?t.currentVertexArrayObject===t.defaultVertexArrayObject?null:t.currentVertexArrayObject:A.getParameter.apply(this,arguments)},e.enableVertexAttribArray=function(e){var n=t.currentVertexArrayObject;n.maxAttrib=Math.max(n.maxAttrib,e);var r=n.attribs[e];return r.enabled=!0,A.enableVertexAttribArray.apply(this,arguments)},e.disableVertexAttribArray=function(e){var n=t.currentVertexArrayObject;n.maxAttrib=Math.max(n.maxAttrib,e);var r=n.attribs[e];return r.enabled=!1,A.disableVertexAttribArray.apply(this,arguments)},e.bindBuffer=function(e,n){switch(e){case 34962:t.currentArrayBuffer=n;break;case 34963:t.currentVertexArrayObject.elementArrayBuffer=n}return A.bindBuffer.apply(this,arguments)},e.getVertexAttrib=function(e,n){var r=t.currentVertexArrayObject,i=r.attribs[e];switch(n){case 34975:return i.buffer;case 34338:return i.enabled;case 34339:return i.size;case 34340:return i.stride;case 34341:return i.type;case 34922:return i.normalized;default:return A.getVertexAttrib.apply(this,arguments)}},e.vertexAttribPointer=function(e,n,r,i,o,a){var s=t.currentVertexArrayObject;s.maxAttrib=Math.max(s.maxAttrib,e);var g=s.attribs[e];return g.buffer=t.currentArrayBuffer,g.size=n,g.type=r,g.normalized=i,g.stride=o,g.offset=a,g.recache(),A.vertexAttribPointer.apply(this,arguments)},e.instrumentExtension&&e.instrumentExtension(this,"OES_vertex_array_object"),e.canvas&&e.canvas.addEventListener("webglcontextrestored",(function(){var e;e="OESVertexArrayObject emulation library context restored",n.global.console&&n.global.console.log&&n.global.console.log(e),t.reset_()}),!0),this.reset_()};function s(e){if("function"!==typeof e.createVertexArray){var t=e.getSupportedExtensions;e.getSupportedExtensions=function(){var e=t.call(this)||[];return e.indexOf("OES_vertex_array_object")<0&&e.push("OES_vertex_array_object"),e};var A=e.getExtension;e.getExtension=function(t){var n=A.call(this,t);return n||("OES_vertex_array_object"!==t?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new a(this)),this.__OESVertexArrayObject))}}}a.prototype.VERTEX_ARRAY_BINDING_OES=34229,a.prototype.reset_=function(){if(void 0!==this.vertexArrayObjects)for(var e=0;e<this.vertexArrayObjects.length;++e)this.vertexArrayObjects.isAlive=!1;var t=this.gl;this.maxVertexAttribs=t.getParameter(34921),this.defaultVertexArrayObject=new o(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)},a.prototype.createVertexArrayOES=function(){var e=new o(this);return this.vertexArrayObjects.push(e),e},a.prototype.deleteVertexArrayOES=function(e){e.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(e),1),this.currentVertexArrayObject===e&&this.bindVertexArrayOES(null)},a.prototype.isVertexArrayOES=function(e){return!!(e&&e instanceof o&&e.hasBeenBound&&e.ext===this)},a.prototype.bindVertexArrayOES=function(e){var t=this.gl;if(!e||e.isAlive){var A=this.original,n=this.currentVertexArrayObject;this.currentVertexArrayObject=e||this.defaultVertexArrayObject,this.currentVertexArrayObject.hasBeenBound=!0;var r=this.currentVertexArrayObject;if(n!==r){n&&r.elementArrayBuffer===n.elementArrayBuffer||A.bindBuffer.call(t,34963,r.elementArrayBuffer);for(var o=this.currentArrayBuffer,a=Math.max(n?n.maxAttrib:0,r.maxAttrib),s=0;s<=a;s++){var g=r.attribs[s],c=n?n.attribs[s]:null;if(n&&g.enabled===c.enabled||(g.enabled?A.enableVertexAttribArray.call(t,s):A.disableVertexAttribArray.call(t,s)),g.enabled){var u=!1;n&&g.buffer===c.buffer||(o!==g.buffer&&(A.bindBuffer.call(t,34962,g.buffer),o=g.buffer),u=!0),(u||g.cached!==c.cached)&&A.vertexAttribPointer.call(t,s,g.size,g.type,g.normalized,g.stride,g.offset)}}this.currentArrayBuffer!==o&&A.bindBuffer.call(t,34962,this.currentArrayBuffer)}}else i(1282,"bindVertexArrayOES: attempt to bind deleted arrayObject")}},function(e,t,A){"use strict";A.d(t,"a",(function(){return g})),A.d(t,"b",(function(){return c}));var n=A(2),r=A(232),i=A(664),o=A(665),a=A(161),s=A(26);function g(e,t){Object(s.a)(e instanceof r.a||e instanceof i.a||e instanceof o.a);var A=e.constructor,n=e.gl,a=e.width,g=e.height,c=e.format,u=e.type,l=e.dataFormat,I=e.border,C=e.mipmaps;return new A(n,Object.assign({width:a,height:g,format:c,type:u,dataFormat:l,border:I,mipmaps:C},t))}function c(e,t){var A=e.gl,r=e.width,i=e.height,o=e.id;return new a.a(A,Object.assign({},t,{id:"framebuffer-for-".concat(o),width:r,height:i,attachments:Object(n.a)({},36064,e)}))}},function(e,t,A){"use strict";A.d(t,"a",(function(){return C}));var n=A(3),r=A.n(n),i=A(12),o=A(1),a=A(4),s=A(24),g=A(9),c=A(10),u=A(18),l=A(124),I=[34069,34070,34071,34072,34073,34074],C=function(e){Object(g.a)(A,e);var t=Object(c.a)(A);function A(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(o.a)(this,A),Object(u.b)(e),(n=t.call(this,e,Object.assign({},r,{target:34067}))).initialize(r),Object.seal(Object(s.a)(n)),n}return Object(a.a)(A,[{key:"initialize",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},A=t.mipmaps,n=void 0===A||A,r=t.parameters,i=void 0===r?{}:r;return this.opts=t,this.setCubeMapImageData(t).then((function(){e.loaded=!0,n&&e.generateMipmap(t),e.setParameters(i)})),this}},{key:"subImage",value:function(e){var t=e.face,A=e.data,n=e.x,r=void 0===n?0:n,i=e.y,o=void 0===i?0:i,a=e.mipmapLevel,s=void 0===a?0:a;return this._subImage({target:t,data:A,x:r,y:o,mipmapLevel:s})}},{key:"setCubeMapImageData",value:function(){var e=Object(i.a)(r.a.mark((function e(t){var A,n,i,o,a,s,g,c,l,C,h,f,d,B=this;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=t.width,n=t.height,i=t.pixels,o=t.data,a=t.border,s=void 0===a?0:a,g=t.format,c=void 0===g?6408:g,l=t.type,C=void 0===l?5121:l,h=this.gl,f=i||o,e.next=5,Promise.all(I.map((function(e){var t=f[e];return Promise.all(Array.isArray(t)?t:[t])})));case 5:d=e.sent,this.bind(),I.forEach((function(e,t){d[t].length>1&&!1!==B.opts.mipmaps&&u.k.warn("".concat(B.id," has mipmap and multiple LODs."))(),d[t].forEach((function(t,r){A&&n?h.texImage2D(e,r,c,A,n,s,c,C,t):h.texImage2D(e,r,c,c,C,t)}))})),this.unbind();case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"setImageDataForFace",value:function(e){var t=this,A=e.face,n=e.width,r=e.height,i=e.pixels,o=e.data,a=e.border,s=void 0===a?0:a,g=e.format,c=void 0===g?6408:g,u=e.type,l=void 0===u?5121:u,I=this.gl,C=i||o;return this.bind(),C instanceof Promise?C.then((function(n){return t.setImageDataForFace(Object.assign({},e,{face:A,data:n,pixels:n}))})):this.width||this.height?I.texImage2D(A,0,c,n,r,s,c,l,C):I.texImage2D(A,0,c,c,l,C),this}}]),A}(l.a);C.FACES=I},function(e,t,A){"use strict";A.d(t,"a",(function(){return l}));var n=A(1),r=A(24),i=A(4),o=A(9),a=A(10),s=A(18),g=A(124),c=A(184),u=A(80),l=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(n.a)(this,A),Object(s.a)(e),o=Object.assign({depth:1},o,{target:32879,unpackFlipY:!1}),(i=t.call(this,e,o)).initialize(o),Object.seal(Object(r.a)(i)),i}return Object(i.a)(A,null,[{key:"isSupported",value:function(e){return Object(s.j)(e)}}]),Object(i.a)(A,[{key:"setImageData",value:function(e){var t=this,A=e.level,n=void 0===A?0:A,r=e.dataFormat,i=void 0===r?6408:r,o=e.width,a=e.height,g=e.depth,l=void 0===g?1:g,I=e.border,C=void 0===I?0:I,h=e.format,f=e.type,d=void 0===f?5121:f,B=e.offset,p=void 0===B?0:B,E=e.data,Q=e.parameters,y=void 0===Q?{}:Q;if(this._trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle),Object(s.o)(this.gl,y,(function(){ArrayBuffer.isView(E)&&t.gl.texImage3D(t.target,n,i,o,a,l,C,h,d,E),E instanceof u.a&&(t.gl.bindBuffer(35052,E.handle),t.gl.texImage3D(t.target,n,i,o,a,l,C,h,d,p))})),E&&E.byteLength)this._trackAllocatedMemory(E.byteLength,"Texture");else{var v=c.a[this.dataFormat]||4,m=c.c[this.type]||1;this._trackAllocatedMemory(this.width*this.height*this.depth*v*m,"Texture")}return this.loaded=!0,this}}]),A}(g.a)},function(e,t,A){"use strict";A.d(t,"b",(function(){return a})),A.d(t,"a",(function(){return s}));var n=A(6),r=A(176),i=A(178),o=function(){var e=Object(i.b)();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function a(e){var t=o();e=Array.isArray(e)?e:[e];var A,i=Object(n.a)(e);try{var a=function(){var e=A.value,n=Object(r.b)(e);t.find((function(e){return n===e}))||t.unshift(n)};for(i.s();!(A=i.n()).done;)a()}catch(s){i.e(s)}finally{i.f()}}function s(){return o()}},function(e,t,A){"use strict";e.exports=r,e.exports.default=r;var n=1e20;function r(e,t,A,n,r,i){this.fontSize=e||24,this.buffer=void 0===t?3:t,this.cutoff=n||.25,this.fontFamily=r||"sans-serif",this.fontWeight=i||"normal",this.radius=A||8;var o=this.size=this.fontSize+2*this.buffer,a=o+2*this.buffer;this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=o,this.ctx=this.canvas.getContext("2d"),this.ctx.font=this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textAlign="left",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(a*a),this.gridInner=new Float64Array(a*a),this.f=new Float64Array(a),this.z=new Float64Array(a+1),this.v=new Uint16Array(a),this.useMetrics=void 0!==this.ctx.measureText("A").actualBoundingBoxLeft,this.middle=Math.round(o/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function i(e,t,A,n,r,i){for(var a=0;a<t;a++)o(e,a,t,A,n,r,i);for(var s=0;s<A;s++)o(e,s*t,1,t,n,r,i)}function o(e,t,A,r,i,o,a){var s,g,c,u;for(o[0]=0,a[0]=-n,a[1]=n,s=0;s<r;s++)i[s]=e[t+s*A];for(s=1,g=0,c=0;s<r;s++){do{u=o[g],c=(i[s]-i[u]+s*s-u*u)/(s-u)/2}while(c<=a[g]&&--g>-1);o[++g]=s,a[g]=c,a[g+1]=n}for(s=0,g=0;s<r;s++){for(;a[g+1]<s;)g++;u=o[g],e[t+s*A]=i[u]+(s-u)*(s-u)}}r.prototype._draw=function(e,t){var A,r,o,a,s,g,c,u,l,I=this.ctx.measureText(e),C=I.width,h=2*this.buffer;t&&this.useMetrics?(s=Math.floor(I.actualBoundingBoxAscent),u=this.buffer+Math.ceil(I.actualBoundingBoxAscent),g=this.buffer,c=this.buffer,A=(r=Math.min(this.size,Math.ceil(I.actualBoundingBoxRight-I.actualBoundingBoxLeft)))+h,o=(a=Math.min(this.size-g,Math.ceil(I.actualBoundingBoxAscent+I.actualBoundingBoxDescent)))+h,this.ctx.textBaseline="alphabetic"):(A=r=this.size,o=a=this.size,s=19*this.fontSize/24,g=c=0,u=this.middle,this.ctx.textBaseline="middle"),r&&a&&(this.ctx.clearRect(c,g,r,a),this.ctx.fillText(e,this.buffer,u),l=this.ctx.getImageData(c,g,r,a));var f=new Uint8ClampedArray(A*o);return function(e,t,A,r,i,o,a){o.fill(n,0,t*A),a.fill(0,0,t*A);for(var s=(t-r)/2,g=0;g<i;g++)for(var c=0;c<r;c++){var u=(g+s)*t+c+s,l=e.data[4*(g*r+c)+3]/255;if(1===l)o[u]=0,a[u]=n;else if(0===l)o[u]=n,a[u]=0;else{var I=Math.max(0,.5-l),C=Math.max(0,l-.5);o[u]=I*I,a[u]=C*C}}}(l,A,o,r,a,this.gridOuter,this.gridInner),i(this.gridOuter,A,o,this.f,this.v,this.z),i(this.gridInner,A,o,this.f,this.v,this.z),function(e,t,A,n,r,i,o){for(var a=0;a<t*A;a++){var s=Math.sqrt(n[a])-Math.sqrt(r[a]);e[a]=Math.round(255-255*(s/i+o))}}(f,A,o,this.gridOuter,this.gridInner,this.radius,this.cutoff),{data:f,metrics:{width:r,height:a,sdfWidth:A,sdfHeight:o,top:s,left:0,advance:C}}},r.prototype.draw=function(e){return this._draw(e,!1).data},r.prototype.drawWithMetrics=function(e){return this._draw(e,!0)}},function(e,t,A){"use strict";function n(e,t,A){A=A||2;var n,a,s,g,c,I,C,f=t&&t.length,d=f?t[0]*A:e.length,B=r(e,0,d,A,!0),p=[];if(!B||B.next===B.prev)return p;if(f&&(B=function(e,t,A,n){var o,a,s,g,c,I=[];for(o=0,a=t.length;o<a;o++)s=t[o]*n,g=o<a-1?t[o+1]*n:e.length,(c=r(e,s,g,n,!1))===c.next&&(c.steiner=!0),I.push(h(c));for(I.sort(u),o=0;o<I.length;o++)A=i(A=l(I[o],A),A.next);return A}(e,t,B,A)),e.length>80*A){n=s=e[0],a=g=e[1];for(var E=A;E<d;E+=A)(c=e[E])<n&&(n=c),(I=e[E+1])<a&&(a=I),c>s&&(s=c),I>g&&(g=I);C=0!==(C=Math.max(s-n,g-a))?1/C:0}return o(B,p,A,n,a,C),p}function r(e,t,A,n,r){var i,o;if(r===F(e,t,A,n)>0)for(i=t;i<A;i+=n)o=b(i,e[i],e[i+1],o);else for(i=A-n;i>=t;i-=n)o=b(i,e[i],e[i+1],o);return o&&p(o,o.next)&&(w(o),o=o.next),o}function i(e,t){if(!e)return e;t||(t=e);var A,n=e;do{if(A=!1,n.steiner||!p(n,n.next)&&0!==B(n.prev,n,n.next))n=n.next;else{if(w(n),(n=t=n.prev)===n.next)break;A=!0}}while(A||n!==t);return t}function o(e,t,A,n,r,u,l){if(e){!l&&u&&function(e,t,A,n){var r=e;do{null===r.z&&(r.z=C(r.x,r.y,t,A,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,function(e){var t,A,n,r,i,o,a,s,g=1;do{for(A=e,e=null,i=null,o=0;A;){for(o++,n=A,a=0,t=0;t<g&&(a++,n=n.nextZ);t++);for(s=g;a>0||s>0&&n;)0!==a&&(0===s||!n||A.z<=n.z)?(r=A,A=A.nextZ,a--):(r=n,n=n.nextZ,s--),i?i.nextZ=r:e=r,r.prevZ=i,i=r;A=n}i.nextZ=null,g*=2}while(o>1)}(r)}(e,n,r,u);for(var I,h,f=e;e.prev!==e.next;)if(I=e.prev,h=e.next,u?s(e,n,r,u):a(e))t.push(I.i/A),t.push(e.i/A),t.push(h.i/A),w(e),e=h.next,f=h.next;else if((e=h)===f){l?1===l?o(e=g(i(e),t,A),t,A,n,r,u,2):2===l&&c(e,t,A,n,r,u):o(i(e),t,A,n,r,u,1);break}}}function a(e){var t=e.prev,A=e,n=e.next;if(B(t,A,n)>=0)return!1;for(var r=e.next.next;r!==e.prev;){if(f(t.x,t.y,A.x,A.y,n.x,n.y,r.x,r.y)&&B(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function s(e,t,A,n){var r=e.prev,i=e,o=e.next;if(B(r,i,o)>=0)return!1;for(var a=r.x<i.x?r.x<o.x?r.x:o.x:i.x<o.x?i.x:o.x,s=r.y<i.y?r.y<o.y?r.y:o.y:i.y<o.y?i.y:o.y,g=r.x>i.x?r.x>o.x?r.x:o.x:i.x>o.x?i.x:o.x,c=r.y>i.y?r.y>o.y?r.y:o.y:i.y>o.y?i.y:o.y,u=C(a,s,t,A,n),l=C(g,c,t,A,n),I=e.prevZ,h=e.nextZ;I&&I.z>=u&&h&&h.z<=l;){if(I!==e.prev&&I!==e.next&&f(r.x,r.y,i.x,i.y,o.x,o.y,I.x,I.y)&&B(I.prev,I,I.next)>=0)return!1;if(I=I.prevZ,h!==e.prev&&h!==e.next&&f(r.x,r.y,i.x,i.y,o.x,o.y,h.x,h.y)&&B(h.prev,h,h.next)>=0)return!1;h=h.nextZ}for(;I&&I.z>=u;){if(I!==e.prev&&I!==e.next&&f(r.x,r.y,i.x,i.y,o.x,o.y,I.x,I.y)&&B(I.prev,I,I.next)>=0)return!1;I=I.prevZ}for(;h&&h.z<=l;){if(h!==e.prev&&h!==e.next&&f(r.x,r.y,i.x,i.y,o.x,o.y,h.x,h.y)&&B(h.prev,h,h.next)>=0)return!1;h=h.nextZ}return!0}function g(e,t,A){var n=e;do{var r=n.prev,o=n.next.next;!p(r,o)&&E(r,n,n.next,o)&&v(r,o)&&v(o,r)&&(t.push(r.i/A),t.push(n.i/A),t.push(o.i/A),w(n),w(n.next),n=e=o),n=n.next}while(n!==e);return i(n)}function c(e,t,A,n,r,a){var s=e;do{for(var g=s.next.next;g!==s.prev;){if(s.i!==g.i&&d(s,g)){var c=m(s,g);return s=i(s,s.next),c=i(c,c.next),o(s,t,A,n,r,a),void o(c,t,A,n,r,a)}g=g.next}s=s.next}while(s!==e)}function u(e,t){return e.x-t.x}function l(e,t){var A=function(e,t){var A,n=t,r=e.x,i=e.y,o=-1/0;do{if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){var a=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=r&&a>o){if(o=a,a===r){if(i===n.y)return n;if(i===n.next.y)return n.next}A=n.x<n.next.x?n:n.next}}n=n.next}while(n!==t);if(!A)return null;if(r===o)return A;var s,g=A,c=A.x,u=A.y,l=1/0;n=A;do{r>=n.x&&n.x>=c&&r!==n.x&&f(i<u?r:o,i,c,u,i<u?o:r,i,n.x,n.y)&&(s=Math.abs(i-n.y)/(r-n.x),v(n,e)&&(s<l||s===l&&(n.x>A.x||n.x===A.x&&I(A,n)))&&(A=n,l=s)),n=n.next}while(n!==g);return A}(e,t);if(!A)return t;var n=m(A,e),r=i(A,A.next);return i(n,n.next),t===A?r:t}function I(e,t){return B(e.prev,e,t.prev)<0&&B(t.next,e,e.next)<0}function C(e,t,A,n,r){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-A)*r)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*r)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function h(e){var t=e,A=e;do{(t.x<A.x||t.x===A.x&&t.y<A.y)&&(A=t),t=t.next}while(t!==e);return A}function f(e,t,A,n,r,i,o,a){return(r-o)*(t-a)-(e-o)*(i-a)>=0&&(e-o)*(n-a)-(A-o)*(t-a)>=0&&(A-o)*(i-a)-(r-o)*(n-a)>=0}function d(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var A=e;do{if(A.i!==e.i&&A.next.i!==e.i&&A.i!==t.i&&A.next.i!==t.i&&E(A,A.next,e,t))return!0;A=A.next}while(A!==e);return!1}(e,t)&&(v(e,t)&&v(t,e)&&function(e,t){var A=e,n=!1,r=(e.x+t.x)/2,i=(e.y+t.y)/2;do{A.y>i!==A.next.y>i&&A.next.y!==A.y&&r<(A.next.x-A.x)*(i-A.y)/(A.next.y-A.y)+A.x&&(n=!n),A=A.next}while(A!==e);return n}(e,t)&&(B(e.prev,e,t.prev)||B(e,t.prev,t))||p(e,t)&&B(e.prev,e,e.next)>0&&B(t.prev,t,t.next)>0)}function B(e,t,A){return(t.y-e.y)*(A.x-t.x)-(t.x-e.x)*(A.y-t.y)}function p(e,t){return e.x===t.x&&e.y===t.y}function E(e,t,A,n){var r=y(B(e,t,A)),i=y(B(e,t,n)),o=y(B(A,n,e)),a=y(B(A,n,t));return r!==i&&o!==a||(!(0!==r||!Q(e,A,t))||(!(0!==i||!Q(e,n,t))||(!(0!==o||!Q(A,e,n))||!(0!==a||!Q(A,t,n)))))}function Q(e,t,A){return t.x<=Math.max(e.x,A.x)&&t.x>=Math.min(e.x,A.x)&&t.y<=Math.max(e.y,A.y)&&t.y>=Math.min(e.y,A.y)}function y(e){return e>0?1:e<0?-1:0}function v(e,t){return B(e.prev,e,e.next)<0?B(e,t,e.next)>=0&&B(e,e.prev,t)>=0:B(e,t,e.prev)<0||B(e,e.next,t)<0}function m(e,t){var A=new S(e.i,e.x,e.y),n=new S(t.i,t.x,t.y),r=e.next,i=t.prev;return e.next=t,t.prev=e,A.next=r,r.prev=A,n.next=A,A.prev=n,i.next=n,n.prev=i,n}function b(e,t,A,n){var r=new S(e,t,A);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function w(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function S(e,t,A){this.i=e,this.x=t,this.y=A,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function F(e,t,A,n){for(var r=0,i=t,o=A-n;i<A;i+=n)r+=(e[o]-e[i])*(e[i+1]+e[o+1]),o=i;return r}e.exports=n,e.exports.default=n,n.deviation=function(e,t,A,n){var r=t&&t.length,i=r?t[0]*A:e.length,o=Math.abs(F(e,0,i,A));if(r)for(var a=0,s=t.length;a<s;a++){var g=t[a]*A,c=a<s-1?t[a+1]*A:e.length;o-=Math.abs(F(e,g,c,A))}var u=0;for(a=0;a<n.length;a+=3){var l=n[a]*A,I=n[a+1]*A,C=n[a+2]*A;u+=Math.abs((e[l]-e[C])*(e[I+1]-e[l+1])-(e[l]-e[I])*(e[C+1]-e[l+1]))}return 0===o&&0===u?0:Math.abs((u-o)/o)},n.flatten=function(e){for(var t=e[0][0].length,A={vertices:[],holes:[],dimensions:t},n=0,r=0;r<e.length;r++){for(var i=0;i<e[r].length;i++)for(var o=0;o<t;o++)A.vertices.push(e[r][i][o]);r>0&&(n+=e[r-1].length,A.holes.push(n))}return A}},function(e,t,A){var n;!function(){var A=function(){var e={defaultNoDataValue:-34027999387901484e22,decode:function(i,o){var a=(o=o||{}).encodedMaskData||null===o.encodedMaskData,s=r(i,o.inputOffset||0,a),g=null!==o.noDataValue?o.noDataValue:e.defaultNoDataValue,c=t(s,o.pixelType||Float32Array,o.encodedMaskData,g,o.returnMask),u={width:s.width,height:s.height,pixelData:c.resultPixels,minValue:c.minValue,maxValue:s.pixels.maxValue,noDataValue:g};return c.resultMask&&(u.maskData=c.resultMask),o.returnEncodedMask&&s.mask&&(u.encodedMaskData=s.mask.bitset?s.mask.bitset:null),o.returnFileInfo&&(u.fileInfo=A(s),o.computeUsedBitDepths&&(u.fileInfo.bitDepths=n(s))),u}},t=function(e,t,A,n,r){var o,a,s,g=0,c=e.pixels.numBlocksX,u=e.pixels.numBlocksY,l=Math.floor(e.width/c),I=Math.floor(e.height/u),C=2*e.maxZError,h=Number.MAX_VALUE;A=A||(e.mask?e.mask.bitset:null),a=new t(e.width*e.height),r&&A&&(s=new Uint8Array(e.width*e.height));for(var f,d,B=new Float32Array(l*I),p=0;p<=u;p++){var E=p!==u?I:e.height%u;if(0!==E)for(var Q=0;Q<=c;Q++){var y=Q!==c?l:e.width%c;if(0!==y){var v,m,b,w,S=p*e.width*I+Q*l,F=e.width-y,R=e.pixels.blocks[g];if(R.encoding<2?(0===R.encoding?v=R.rawData:(i(R.stuffedData,R.bitsPerPixel,R.numValidPixels,R.offset,C,B,e.pixels.maxValue),v=B),m=0):b=2===R.encoding?0:R.offset,A)for(d=0;d<E;d++){for(7&S&&(w=A[S>>3],w<<=7&S),f=0;f<y;f++)7&S||(w=A[S>>3]),128&w?(s&&(s[S]=1),h=h>(o=R.encoding<2?v[m++]:b)?o:h,a[S++]=o):(s&&(s[S]=0),a[S++]=n),w<<=1;S+=F}else if(R.encoding<2)for(d=0;d<E;d++){for(f=0;f<y;f++)h=h>(o=v[m++])?o:h,a[S++]=o;S+=F}else for(h=h>b?b:h,d=0;d<E;d++){for(f=0;f<y;f++)a[S++]=b;S+=F}if(1===R.encoding&&m!==R.numValidPixels)throw"Block and Mask do not match";g++}}}return{resultPixels:a,resultMask:s,minValue:h}},A=function(e){return{fileIdentifierString:e.fileIdentifierString,fileVersion:e.fileVersion,imageType:e.imageType,height:e.height,width:e.width,maxZError:e.maxZError,eofOffset:e.eofOffset,mask:e.mask?{numBlocksX:e.mask.numBlocksX,numBlocksY:e.mask.numBlocksY,numBytes:e.mask.numBytes,maxValue:e.mask.maxValue}:null,pixels:{numBlocksX:e.pixels.numBlocksX,numBlocksY:e.pixels.numBlocksY,numBytes:e.pixels.numBytes,maxValue:e.pixels.maxValue,noDataValue:e.noDataValue}}},n=function(e){for(var t=e.pixels.numBlocksX*e.pixels.numBlocksY,A={},n=0;n<t;n++){var r=e.pixels.blocks[n];0===r.encoding?A.float32=!0:1===r.encoding?A[r.bitsPerPixel]=!0:A[0]=!0}return Object.keys(A)},r=function(e,t,A){var n={},r=new Uint8Array(e,t,10);if(n.fileIdentifierString=String.fromCharCode.apply(null,r),"CntZImage"!==n.fileIdentifierString.trim())throw"Unexpected file identifier string: "+n.fileIdentifierString;t+=10;var i=new DataView(e,t,24);if(n.fileVersion=i.getInt32(0,!0),n.imageType=i.getInt32(4,!0),n.height=i.getUint32(8,!0),n.width=i.getUint32(12,!0),n.maxZError=i.getFloat64(16,!0),t+=24,!A)if(i=new DataView(e,t,16),n.mask={},n.mask.numBlocksY=i.getUint32(0,!0),n.mask.numBlocksX=i.getUint32(4,!0),n.mask.numBytes=i.getUint32(8,!0),n.mask.maxValue=i.getFloat32(12,!0),t+=16,n.mask.numBytes>0){var o=new Uint8Array(Math.ceil(n.width*n.height/8)),a=(i=new DataView(e,t,n.mask.numBytes)).getInt16(0,!0),s=2,g=0;do{if(a>0)for(;a--;)o[g++]=i.getUint8(s++);else{var c=i.getUint8(s++);for(a=-a;a--;)o[g++]=c}a=i.getInt16(s,!0),s+=2}while(s<n.mask.numBytes);if(-32768!==a||g<o.length)throw"Unexpected end of mask RLE encoding";n.mask.bitset=o,t+=n.mask.numBytes}else 0===(n.mask.numBytes|n.mask.numBlocksY|n.mask.maxValue)&&(n.mask.bitset=new Uint8Array(Math.ceil(n.width*n.height/8)));i=new DataView(e,t,16),n.pixels={},n.pixels.numBlocksY=i.getUint32(0,!0),n.pixels.numBlocksX=i.getUint32(4,!0),n.pixels.numBytes=i.getUint32(8,!0),n.pixels.maxValue=i.getFloat32(12,!0),t+=16;var u=n.pixels.numBlocksX,l=n.pixels.numBlocksY,I=u+(n.width%u>0?1:0),C=l+(n.height%l>0?1:0);n.pixels.blocks=new Array(I*C);for(var h=0,f=0;f<C;f++)for(var d=0;d<I;d++){var B=0,p=e.byteLength-t;i=new DataView(e,t,Math.min(10,p));var E={};n.pixels.blocks[h++]=E;var Q=i.getUint8(0);if(B++,E.encoding=63&Q,E.encoding>3)throw"Invalid block encoding ("+E.encoding+")";if(2!==E.encoding){if(0!==Q&&2!==Q){if(Q>>=6,E.offsetType=Q,2===Q)E.offset=i.getInt8(1),B++;else if(1===Q)E.offset=i.getInt16(1,!0),B+=2;else{if(0!==Q)throw"Invalid block offset type";E.offset=i.getFloat32(1,!0),B+=4}if(1===E.encoding)if(Q=i.getUint8(B),B++,E.bitsPerPixel=63&Q,Q>>=6,E.numValidPixelsType=Q,2===Q)E.numValidPixels=i.getUint8(B),B++;else if(1===Q)E.numValidPixels=i.getUint16(B,!0),B+=2;else{if(0!==Q)throw"Invalid valid pixel count type";E.numValidPixels=i.getUint32(B,!0),B+=4}}var y;if(t+=B,3!==E.encoding)if(0===E.encoding){var v=(n.pixels.numBytes-1)/4;if(v!==Math.floor(v))throw"uncompressed block has invalid length";y=new ArrayBuffer(4*v),new Uint8Array(y).set(new Uint8Array(e,t,4*v));var m=new Float32Array(y);E.rawData=m,t+=4*v}else if(1===E.encoding){var b=Math.ceil(E.numValidPixels*E.bitsPerPixel/8),w=Math.ceil(b/4);y=new ArrayBuffer(4*w),new Uint8Array(y).set(new Uint8Array(e,t,b)),E.stuffedData=new Uint32Array(y),t+=b}}else t++}return n.eofOffset=t,n},i=function(e,t,A,n,r,i,o){var a,s,g,c=(1<<t)-1,u=0,l=0,I=Math.ceil((o-n)/r),C=4*e.length-Math.ceil(t*A/8);for(e[e.length-1]<<=8*C,a=0;a<A;a++){if(0===l&&(g=e[u++],l=32),l>=t)s=g>>>l-t&c,l-=t;else{var h=t-l;s=(g&c)<<h&c,s+=(g=e[u++])>>>(l=32-h)}i[a]=s<I?n+s*r:o}return i};return e}(),r=function(){"use strict";var e=function(e,t,A,n,r,i,o,a){var s,g,c,u,l,I=(1<<A)-1,C=0,h=0,f=4*e.length-Math.ceil(A*n/8);if(e[e.length-1]<<=8*f,r)for(s=0;s<n;s++)0===h&&(c=e[C++],h=32),h>=A?(g=c>>>h-A&I,h-=A):(g=(c&I)<<(u=A-h)&I,g+=(c=e[C++])>>>(h=32-u)),t[s]=r[g];else for(l=Math.ceil((a-i)/o),s=0;s<n;s++)0===h&&(c=e[C++],h=32),h>=A?(g=c>>>h-A&I,h-=A):(g=(c&I)<<(u=A-h)&I,g+=(c=e[C++])>>>(h=32-u)),t[s]=g<l?i+g*o:a},t=function(e,t,A,n,r,i){var o,a=(1<<t)-1,s=0,g=0,c=0,u=0,l=0,I=[],C=4*e.length-Math.ceil(t*A/8);e[e.length-1]<<=8*C;var h=Math.ceil((i-n)/r);for(g=0;g<A;g++)0===u&&(o=e[s++],u=32),u>=t?(l=o>>>u-t&a,u-=t):(l=(o&a)<<(c=t-u)&a,l+=(o=e[s++])>>>(u=32-c)),I[g]=l<h?n+l*r:i;return I.unshift(n),I},A=function(e,t,A,n,r,i,o,a){var s,g,c,u,l=(1<<A)-1,I=0,C=0,h=0;if(r)for(s=0;s<n;s++)0===C&&(c=e[I++],C=32,h=0),C>=A?(g=c>>>h&l,C-=A,h+=A):(g=c>>>h&l,C=32-(u=A-C),g|=((c=e[I++])&(1<<u)-1)<<A-u,h=u),t[s]=r[g];else{var f=Math.ceil((a-i)/o);for(s=0;s<n;s++)0===C&&(c=e[I++],C=32,h=0),C>=A?(g=c>>>h&l,C-=A,h+=A):(g=c>>>h&l,C=32-(u=A-C),g|=((c=e[I++])&(1<<u)-1)<<A-u,h=u),t[s]=g<f?i+g*o:a}return t},n=function(e,t,A,n,r,i){var o,a=(1<<t)-1,s=0,g=0,c=0,u=0,l=0,I=0,C=[],h=Math.ceil((i-n)/r);for(g=0;g<A;g++)0===u&&(o=e[s++],u=32,I=0),u>=t?(l=o>>>I&a,u-=t,I+=t):(l=o>>>I&a,u=32-(c=t-u),l|=((o=e[s++])&(1<<c)-1)<<t-c,I=c),C[g]=l<h?n+l*r:i;return C.unshift(n),C},r=function(e,t,A,n){var r,i,o,a,s=(1<<A)-1,g=0,c=0,u=4*e.length-Math.ceil(A*n/8);for(e[e.length-1]<<=8*u,r=0;r<n;r++)0===c&&(o=e[g++],c=32),c>=A?(i=o>>>c-A&s,c-=A):(i=(o&s)<<(a=A-c)&s,i+=(o=e[g++])>>>(c=32-a)),t[r]=i;return t},i=function(e,t,A,n){var r,i,o,a,s=(1<<A)-1,g=0,c=0,u=0;for(r=0;r<n;r++)0===c&&(o=e[g++],c=32,u=0),c>=A?(i=o>>>u&s,c-=A,u+=A):(i=o>>>u&s,c=32-(a=A-c),i|=((o=e[g++])&(1<<a)-1)<<A-a,u=a),t[r]=i;return t},o={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(e){for(var t=65535,A=65535,n=e.length,r=Math.floor(n/2),i=0;r;){var o=r>=359?359:r;r-=o;do{t+=e[i++]<<8,A+=t+=e[i++]}while(--o);t=(65535&t)+(t>>>16),A=(65535&A)+(A>>>16)}return 1&n&&(A+=t+=e[i]<<8),((A=(65535&A)+(A>>>16))<<16|(t=(65535&t)+(t>>>16)))>>>0},readHeaderInfo:function(e,t){var A=t.ptr,n=new Uint8Array(e,A,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,n),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;A+=6;var i,o=new DataView(e,A,8),a=o.getInt32(0,!0);if(r.fileVersion=a,A+=4,a>=3&&(r.checksum=o.getUint32(4,!0),A+=4),o=new DataView(e,A,12),r.height=o.getUint32(0,!0),r.width=o.getUint32(4,!0),A+=8,a>=4?(r.numDims=o.getUint32(8,!0),A+=4):r.numDims=1,o=new DataView(e,A,40),r.numValidPixel=o.getUint32(0,!0),r.microBlockSize=o.getInt32(4,!0),r.blobSize=o.getInt32(8,!0),r.imageType=o.getInt32(12,!0),r.maxZError=o.getFloat64(16,!0),r.zMin=o.getFloat64(24,!0),r.zMax=o.getFloat64(32,!0),A+=40,t.headerInfo=r,t.ptr=A,a>=3&&(i=a>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(e,A-i,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(e,t){var A=t.headerInfo,n=this.getDataTypeArray(A.imageType),r=A.numDims*this.getDataTypeSize(A.imageType),i=this.readSubArray(e,t.ptr,n,r),o=this.readSubArray(e,t.ptr+r,n,r);t.ptr+=2*r;var a,s=!0;for(a=0;a<A.numDims;a++)if(i[a]!==o[a]){s=!1;break}return A.minValues=i,A.maxValues=o,s},readSubArray:function(e,t,A,n){var r;if(A===Uint8Array)r=new Uint8Array(e,t,n);else{var i=new ArrayBuffer(n);new Uint8Array(i).set(new Uint8Array(e,t,n)),r=new A(i)}return r},readMask:function(e,t){var A,n,r=t.ptr,i=t.headerInfo,o=i.width*i.height,a=i.numValidPixel,s=new DataView(e,r,4),g={};if(g.numBytes=s.getUint32(0,!0),r+=4,(0===a||o===a)&&0!==g.numBytes)throw"invalid mask";if(0===a)A=new Uint8Array(Math.ceil(o/8)),g.bitset=A,n=new Uint8Array(o),t.pixels.resultMask=n,r+=g.numBytes;else if(g.numBytes>0){A=new Uint8Array(Math.ceil(o/8));var c=(s=new DataView(e,r,g.numBytes)).getInt16(0,!0),u=2,l=0,I=0;do{if(c>0)for(;c--;)A[l++]=s.getUint8(u++);else for(I=s.getUint8(u++),c=-c;c--;)A[l++]=I;c=s.getInt16(u,!0),u+=2}while(u<g.numBytes);if(-32768!==c||l<A.length)throw"Unexpected end of mask RLE encoding";n=new Uint8Array(o);var C=0,h=0;for(h=0;h<o;h++)7&h?(C=A[h>>3],C<<=7&h):C=A[h>>3],128&C&&(n[h]=1);t.pixels.resultMask=n,g.bitset=A,r+=g.numBytes}return t.ptr=r,t.mask=g,!0},readDataOneSweep:function(e,t,A){var n,r=t.ptr,i=t.headerInfo,a=i.numDims,s=i.width*i.height,g=i.imageType,c=i.numValidPixel*o.getDataTypeSize(g)*a,u=t.pixels.resultMask;if(A===Uint8Array)n=new Uint8Array(e,r,c);else{var l=new ArrayBuffer(c);new Uint8Array(l).set(new Uint8Array(e,r,c)),n=new A(l)}if(n.length===s*a)t.pixels.resultPixels=n;else{t.pixels.resultPixels=new A(s*a);var I=0,C=0,h=0,f=0;if(a>1)for(h=0;h<a;h++)for(f=h*s,C=0;C<s;C++)u[C]&&(t.pixels.resultPixels[f+C]=n[I++]);else for(C=0;C<s;C++)u[C]&&(t.pixels.resultPixels[C]=n[I++])}return r+=c,t.ptr=r,!0},readHuffmanTree:function(e,t){var A=this.HUFFMAN_LUT_BITS_MAX,n=new DataView(e,t.ptr,16);if(t.ptr+=16,n.getInt32(0,!0)<2)throw"unsupported Huffman version";var r=n.getInt32(4,!0),i=n.getInt32(8,!0),s=n.getInt32(12,!0);if(i>=s)return!1;var g=new Uint32Array(s-i);o.decodeBits(e,t,g);var c,u,l,I,C=[];for(c=i;c<s;c++)C[u=c-(c<r?0:r)]={first:g[c-i],second:null};var h=e.byteLength-t.ptr,f=Math.ceil(h/4),d=new ArrayBuffer(4*f);new Uint8Array(d).set(new Uint8Array(e,t.ptr,h));var B,p=new Uint32Array(d),E=0,Q=0;for(B=p[0],c=i;c<s;c++)(I=C[u=c-(c<r?0:r)].first)>0&&(C[u].second=B<<E>>>32-I,32-E>=I?32===(E+=I)&&(E=0,B=p[++Q]):(E+=I-32,B=p[++Q],C[u].second|=B>>>32-E));var y=0,v=0,m=new a;for(c=0;c<C.length;c++)void 0!==C[c]&&(y=Math.max(y,C[c].first));v=y>=A?A:y,y>=30&&console.log("WARning, large NUM LUT BITS IS "+y);var b,w,S,F,R,D=[];for(c=i;c<s;c++)if((I=C[u=c-(c<r?0:r)].first)>0)if(b=[I,u],I<=v)for(w=C[u].second<<v-I,S=1<<v-I,l=0;l<S;l++)D[w|l]=b;else for(w=C[u].second,R=m,F=I-1;F>=0;F--)w>>>F&1?(R.right||(R.right=new a),R=R.right):(R.left||(R.left=new a),R=R.left),0!==F||R.val||(R.val=b[1]);return{decodeLut:D,numBitsLUTQick:v,numBitsLUT:y,tree:m,stuffedData:p,srcPtr:Q,bitPos:E}},readHuffman:function(e,t,A){var n,r,i,o,a,s,g,c,u,l=t.headerInfo,I=l.numDims,C=t.headerInfo.height,h=t.headerInfo.width,f=h*C,d=this.readHuffmanTree(e,t),B=d.decodeLut,p=d.tree,E=d.stuffedData,Q=d.srcPtr,y=d.bitPos,v=d.numBitsLUTQick,m=d.numBitsLUT,b=0===t.headerInfo.imageType?128:0,w=t.pixels.resultMask,S=0;y>0&&(Q++,y=0);var F,R=E[Q],D=1===t.encodeMode,G=new A(f*I),k=G;for(F=0;F<l.numDims;F++){if(I>1&&(k=new A(G.buffer,f*F,f),S=0),t.headerInfo.numValidPixel===h*C)for(c=0,s=0;s<C;s++)for(g=0;g<h;g++,c++){if(r=0,a=o=R<<y>>>32-v,32-y<v&&(a=o|=E[Q+1]>>>64-y-v),B[a])r=B[a][1],y+=B[a][0];else for(a=o=R<<y>>>32-m,32-y<m&&(a=o|=E[Q+1]>>>64-y-m),n=p,u=0;u<m;u++)if(!(n=o>>>m-u-1&1?n.right:n.left).left&&!n.right){r=n.val,y=y+u+1;break}y>=32&&(y-=32,R=E[++Q]),i=r-b,D?(i+=g>0?S:s>0?k[c-h]:S,i&=255,k[c]=i,S=i):k[c]=i}else for(c=0,s=0;s<C;s++)for(g=0;g<h;g++,c++)if(w[c]){if(r=0,a=o=R<<y>>>32-v,32-y<v&&(a=o|=E[Q+1]>>>64-y-v),B[a])r=B[a][1],y+=B[a][0];else for(a=o=R<<y>>>32-m,32-y<m&&(a=o|=E[Q+1]>>>64-y-m),n=p,u=0;u<m;u++)if(!(n=o>>>m-u-1&1?n.right:n.left).left&&!n.right){r=n.val,y=y+u+1;break}y>=32&&(y-=32,R=E[++Q]),i=r-b,D?(g>0&&w[c-1]?i+=S:s>0&&w[c-h]?i+=k[c-h]:i+=S,i&=255,k[c]=i,S=i):k[c]=i}t.ptr=t.ptr+4*(Q+1)+(y>0?4:0)}t.pixels.resultPixels=G},decodeBits:function(o,a,s,g,c){var u=a.headerInfo,l=u.fileVersion,I=0,C=new DataView(o,a.ptr,5),h=C.getUint8(0);I++;var f=h>>6,d=0===f?4:3-f,B=(32&h)>0,p=31&h,E=0;if(1===d)E=C.getUint8(I),I++;else if(2===d)E=C.getUint16(I,!0),I+=2;else{if(4!==d)throw"Invalid valid pixel count type";E=C.getUint32(I,!0),I+=4}var Q,y,v,m,b,w,S,F,R,D=2*u.maxZError,G=u.numDims>1?u.maxValues[c]:u.zMax;if(B){for(a.counter.lut++,F=C.getUint8(I),p,I++,m=Math.ceil((F-1)*p/8),b=Math.ceil(m/4),y=new ArrayBuffer(4*b),v=new Uint8Array(y),a.ptr+=I,v.set(new Uint8Array(o,a.ptr,m)),S=new Uint32Array(y),a.ptr+=m,R=0;F-1>>>R;)R++;m=Math.ceil(E*R/8),b=Math.ceil(m/4),y=new ArrayBuffer(4*b),(v=new Uint8Array(y)).set(new Uint8Array(o,a.ptr,m)),Q=new Uint32Array(y),a.ptr+=m,w=l>=3?n(S,p,F-1,g,D,G):t(S,p,F-1,g,D,G),l>=3?A(Q,s,R,E,w):e(Q,s,R,E,w)}else a.counter.bitstuffer++,R=p,a.ptr+=I,R>0&&(m=Math.ceil(E*R/8),b=Math.ceil(m/4),y=new ArrayBuffer(4*b),(v=new Uint8Array(y)).set(new Uint8Array(o,a.ptr,m)),Q=new Uint32Array(y),a.ptr+=m,l>=3?null==g?i(Q,s,R,E):A(Q,s,R,E,!1,g,D,G):null==g?r(Q,s,R,E):e(Q,s,R,E,!1,g,D,G))},readTiles:function(e,t,A){var n=t.headerInfo,r=n.width,i=n.height,a=n.microBlockSize,s=n.imageType,g=o.getDataTypeSize(s),c=Math.ceil(r/a),u=Math.ceil(i/a);t.pixels.numBlocksY=u,t.pixels.numBlocksX=c,t.pixels.ptr=0;var l,I,C,h,f,d,B,p,E=0,Q=0,y=0,v=0,m=0,b=0,w=0,S=0,F=0,R=0,D=0,G=0,k=0,x=0,N=0,U=new A(a*a),_=i%a||a,M=r%a||a,O=n.numDims,L=t.pixels.resultMask,T=t.pixels.resultPixels;for(y=0;y<u;y++)for(m=y!==u-1?a:_,v=0;v<c;v++)for(R=y*r*a+v*a,D=r-(b=v!==c-1?a:M),p=0;p<O;p++){if(O>1&&(T=new A(t.pixels.resultPixels.buffer,r*i*p*g,r*i)),w=e.byteLength-t.ptr,I={},N=0,N++,F=(S=(l=new DataView(e,t.ptr,Math.min(10,w))).getUint8(0))>>6&255,(S>>2&15)!==(v*a>>3&15))throw"integrity issue";if((f=3&S)>3)throw t.ptr+=N,"Invalid block encoding ("+f+")";if(2!==f)if(0===f){if(t.counter.uncompressed++,t.ptr+=N,G=(G=m*b*g)<(k=e.byteLength-t.ptr)?G:k,C=new ArrayBuffer(G%g===0?G:G+g-G%g),new Uint8Array(C).set(new Uint8Array(e,t.ptr,G)),h=new A(C),x=0,L)for(E=0;E<m;E++){for(Q=0;Q<b;Q++)L[R]&&(T[R]=h[x++]),R++;R+=D}else for(E=0;E<m;E++){for(Q=0;Q<b;Q++)T[R++]=h[x++];R+=D}t.ptr+=x*g}else if(d=o.getDataTypeUsed(s,F),B=o.getOnePixel(I,N,d,l),N+=o.getDataTypeSize(d),3===f)if(t.ptr+=N,t.counter.constantoffset++,L)for(E=0;E<m;E++){for(Q=0;Q<b;Q++)L[R]&&(T[R]=B),R++;R+=D}else for(E=0;E<m;E++){for(Q=0;Q<b;Q++)T[R++]=B;R+=D}else if(t.ptr+=N,o.decodeBits(e,t,U,B,p),N=0,L)for(E=0;E<m;E++){for(Q=0;Q<b;Q++)L[R]&&(T[R]=U[N++]),R++;R+=D}else for(E=0;E<m;E++){for(Q=0;Q<b;Q++)T[R++]=U[N++];R+=D}else t.counter.constant++,t.ptr+=N}},formatFileInfo:function(e){return{fileIdentifierString:e.headerInfo.fileIdentifierString,fileVersion:e.headerInfo.fileVersion,imageType:e.headerInfo.imageType,height:e.headerInfo.height,width:e.headerInfo.width,numValidPixel:e.headerInfo.numValidPixel,microBlockSize:e.headerInfo.microBlockSize,blobSize:e.headerInfo.blobSize,maxZError:e.headerInfo.maxZError,pixelType:o.getPixelType(e.headerInfo.imageType),eofOffset:e.eofOffset,mask:e.mask?{numBytes:e.mask.numBytes}:null,pixels:{numBlocksX:e.pixels.numBlocksX,numBlocksY:e.pixels.numBlocksY,maxValue:e.headerInfo.zMax,minValue:e.headerInfo.zMin,noDataValue:e.noDataValue}}},constructConstantSurface:function(e){var t=e.headerInfo.zMax,A=e.headerInfo.numDims,n=e.headerInfo.height*e.headerInfo.width,r=n*A,i=0,o=0,a=0,s=e.pixels.resultMask;if(s)if(A>1)for(i=0;i<A;i++)for(a=i*n,o=0;o<n;o++)s[o]&&(e.pixels.resultPixels[a+o]=t);else for(o=0;o<n;o++)s[o]&&(e.pixels.resultPixels[o]=t);else if(e.pixels.resultPixels.fill)e.pixels.resultPixels.fill(t);else for(o=0;o<r;o++)e.pixels.resultPixels[o]=t},getDataTypeArray:function(e){var t;switch(e){case 0:t=Int8Array;break;case 1:t=Uint8Array;break;case 2:t=Int16Array;break;case 3:t=Uint16Array;break;case 4:t=Int32Array;break;case 5:t=Uint32Array;break;case 6:t=Float32Array;break;case 7:t=Float64Array;break;default:t=Float32Array}return t},getPixelType:function(e){var t;switch(e){case 0:t="S8";break;case 1:t="U8";break;case 2:t="S16";break;case 3:t="U16";break;case 4:t="S32";break;case 5:t="U32";break;case 6:t="F32";break;case 7:t="F64";break;default:t="F32"}return t},isValidPixelValue:function(e,t){if(null==t)return!1;var A;switch(e){case 0:A=t>=-128&&t<=127;break;case 1:A=t>=0&&t<=255;break;case 2:A=t>=-32768&&t<=32767;break;case 3:A=t>=0&&t<=65536;break;case 4:A=t>=-2147483648&&t<=2147483647;break;case 5:A=t>=0&&t<=4294967296;break;case 6:A=t>=-34027999387901484e22&&t<=34027999387901484e22;break;case 7:A=t>=5e-324&&t<=17976931348623157e292;break;default:A=!1}return A},getDataTypeSize:function(e){var t=0;switch(e){case 0:case 1:t=1;break;case 2:case 3:t=2;break;case 4:case 5:case 6:t=4;break;case 7:t=8;break;default:t=e}return t},getDataTypeUsed:function(e,t){var A=e;switch(e){case 2:case 4:A=e-t;break;case 3:case 5:A=e-2*t;break;case 6:A=0===t?e:1===t?2:1;break;case 7:A=0===t?e:e-2*t+1;break;default:A=e}return A},getOnePixel:function(e,t,A,n){var r=0;switch(A){case 0:r=n.getInt8(t);break;case 1:r=n.getUint8(t);break;case 2:r=n.getInt16(t,!0);break;case 3:r=n.getUint16(t,!0);break;case 4:r=n.getInt32(t,!0);break;case 5:r=n.getUInt32(t,!0);break;case 6:r=n.getFloat32(t,!0);break;case 7:r=n.getFloat64(t,!0);break;default:throw"the decoder does not understand this pixel type"}return r}},a=function(e,t,A){this.val=e,this.left=t,this.right=A};return{decode:function(e,t){var A=(t=t||{}).noDataValue,n=0,r={};if(r.ptr=t.inputOffset||0,r.pixels={},o.readHeaderInfo(e,r)){var i=r.headerInfo,a=i.fileVersion,s=o.getDataTypeArray(i.imageType);o.readMask(e,r),i.numValidPixel===i.width*i.height||r.pixels.resultMask||(r.pixels.resultMask=t.maskData);var g,c=i.width*i.height;if(r.pixels.resultPixels=new s(c*i.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},0!==i.numValidPixel)if(i.zMax===i.zMin)o.constructConstantSurface(r);else if(a>=4&&o.checkMinMaxRanges(e,r))o.constructConstantSurface(r);else{var u=new DataView(e,r.ptr,2),l=u.getUint8(0);if(r.ptr++,l)o.readDataOneSweep(e,r,s);else if(a>1&&i.imageType<=1&&Math.abs(i.maxZError-.5)<1e-5){var I=u.getUint8(1);if(r.ptr++,r.encodeMode=I,I>2||a<4&&I>1)throw"Invalid Huffman flag "+I;I?o.readHuffman(e,r,s):o.readTiles(e,r,s)}else o.readTiles(e,r,s)}r.eofOffset=r.ptr,t.inputOffset?(g=r.headerInfo.blobSize+t.inputOffset-r.ptr,Math.abs(g)>=1&&(r.eofOffset=t.inputOffset+r.headerInfo.blobSize)):(g=r.headerInfo.blobSize-r.ptr,Math.abs(g)>=1&&(r.eofOffset=r.headerInfo.blobSize));var C={width:i.width,height:i.height,pixelData:r.pixels.resultPixels,minValue:i.zMin,maxValue:i.zMax,validPixelCount:i.numValidPixel,dimCount:i.numDims,dimStats:{minValues:i.minValues,maxValues:i.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&o.isValidPixelValue(i.imageType,A)){var h=r.pixels.resultMask;for(n=0;n<c;n++)h[n]||(C.pixelData[n]=A);C.noDataValue=A}return r.noDataValue=A,t.returnFileInfo&&(C.fileInfo=o.formatFileInfo(r)),C}},getBandCount:function(e){for(var t=0,A=0,n={ptr:0,pixels:{}};A<e.byteLength-58;)o.readHeaderInfo(e,n),A+=n.headerInfo.blobSize,t++,n.ptr=A;return t}}}(),i=function(){var e=new ArrayBuffer(4),t=new Uint8Array(e);return new Uint32Array(e)[0]=1,1===t[0]}(),o={decode:function(e,t){if(!i)throw"Big endian system is not supported.";var n,o,a=(t=t||{}).inputOffset||0,s=new Uint8Array(e,a,10),g=String.fromCharCode.apply(null,s);if("CntZImage"===g.trim())n=A,o=1;else{if("Lerc2"!==g.substring(0,5))throw"Unexpected file identifier string: "+g;n=r,o=2}for(var c,u,l,I,C,h,f=0,d=e.byteLength-10,B=[],p={width:0,height:0,pixels:[],pixelType:t.pixelType,mask:null,statistics:[]};a<d;){var E=n.decode(e,{inputOffset:a,encodedMaskData:c,maskData:l,returnMask:0===f,returnEncodedMask:0===f,returnFileInfo:!0,pixelType:t.pixelType||null,noDataValue:t.noDataValue||null});a=E.fileInfo.eofOffset,0===f&&(c=E.encodedMaskData,l=E.maskData,p.width=E.width,p.height=E.height,p.dimCount=E.dimCount||1,p.pixelType=E.pixelType||E.fileInfo.pixelType,p.mask=E.maskData),o>1&&E.fileInfo.mask&&E.fileInfo.mask.numBytes>0&&B.push(E.maskData),f++,p.pixels.push(E.pixelData),p.statistics.push({minValue:E.minValue,maxValue:E.maxValue,noDataValue:E.noDataValue,dimStats:E.dimStats})}if(o>1&&B.length>1){for(h=p.width*p.height,p.bandMasks=B,(l=new Uint8Array(h)).set(B[0]),I=1;I<B.length;I++)for(u=B[I],C=0;C<h;C++)l[C]=l[C]&u[C];p.maskData=l}return p}};void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},function(e,t,A){"use strict";var n=A(299),r=A(300),i=A(866),o=Symbol("max"),a=Symbol("length"),s=Symbol("lengthCalculator"),g=Symbol("allowStale"),c=Symbol("maxAge"),u=Symbol("dispose"),l=Symbol("noDisposeOnSet"),I=Symbol("lruList"),C=Symbol("cache"),h=Symbol("updateAgeOnGet"),f=function(){return 1},d=function(){function e(t){if(n(this,e),"number"===typeof t&&(t={max:t}),t||(t={}),t.max&&("number"!==typeof t.max||t.max<0))throw new TypeError("max must be a non-negative number");this[o]=t.max||1/0;var A=t.length||f;if(this[s]="function"!==typeof A?f:A,this[g]=t.stale||!1,t.maxAge&&"number"!==typeof t.maxAge)throw new TypeError("maxAge must be a number");this[c]=t.maxAge||0,this[u]=t.dispose,this[l]=t.noDisposeOnSet||!1,this[h]=t.updateAgeOnGet||!1,this.reset()}return r(e,[{key:"rforEach",value:function(e,t){t=t||this;for(var A=this[I].tail;null!==A;){var n=A.prev;v(this,e,A,t),A=n}}},{key:"forEach",value:function(e,t){t=t||this;for(var A=this[I].head;null!==A;){var n=A.next;v(this,e,A,t),A=n}}},{key:"keys",value:function(){return this[I].toArray().map((function(e){return e.key}))}},{key:"values",value:function(){return this[I].toArray().map((function(e){return e.value}))}},{key:"reset",value:function(){var e=this;this[u]&&this[I]&&this[I].length&&this[I].forEach((function(t){return e[u](t.key,t.value)})),this[C]=new Map,this[I]=new i,this[a]=0}},{key:"dump",value:function(){var e=this;return this[I].map((function(t){return!p(e,t)&&{k:t.key,v:t.value,e:t.now+(t.maxAge||0)}})).toArray().filter((function(e){return e}))}},{key:"dumpLru",value:function(){return this[I]}},{key:"set",value:function(e,t,A){if((A=A||this[c])&&"number"!==typeof A)throw new TypeError("maxAge must be a number");var n=A?Date.now():0,r=this[s](t,e);if(this[C].has(e)){if(r>this[o])return Q(this,this[C].get(e)),!1;var i=this[C].get(e).value;return this[u]&&(this[l]||this[u](e,i.value)),i.now=n,i.maxAge=A,i.value=t,this[a]+=r-i.length,i.length=r,this.get(e),E(this),!0}var g=new y(e,t,r,n,A);return g.length>this[o]?(this[u]&&this[u](e,t),!1):(this[a]+=g.length,this[I].unshift(g),this[C].set(e,this[I].head),E(this),!0)}},{key:"has",value:function(e){if(!this[C].has(e))return!1;var t=this[C].get(e).value;return!p(this,t)}},{key:"get",value:function(e){return B(this,e,!0)}},{key:"peek",value:function(e){return B(this,e,!1)}},{key:"pop",value:function(){var e=this[I].tail;return e?(Q(this,e),e.value):null}},{key:"del",value:function(e){Q(this,this[C].get(e))}},{key:"load",value:function(e){this.reset();for(var t=Date.now(),A=e.length-1;A>=0;A--){var n=e[A],r=n.e||0;if(0===r)this.set(n.k,n.v);else{var i=r-t;i>0&&this.set(n.k,n.v,i)}}}},{key:"prune",value:function(){var e=this;this[C].forEach((function(t,A){return B(e,A,!1)}))}},{key:"max",set:function(e){if("number"!==typeof e||e<0)throw new TypeError("max must be a non-negative number");this[o]=e||1/0,E(this)},get:function(){return this[o]}},{key:"allowStale",set:function(e){this[g]=!!e},get:function(){return this[g]}},{key:"maxAge",set:function(e){if("number"!==typeof e)throw new TypeError("maxAge must be a non-negative number");this[c]=e,E(this)},get:function(){return this[c]}},{key:"lengthCalculator",set:function(e){var t=this;"function"!==typeof e&&(e=f),e!==this[s]&&(this[s]=e,this[a]=0,this[I].forEach((function(e){e.length=t[s](e.value,e.key),t[a]+=e.length}))),E(this)},get:function(){return this[s]}},{key:"length",get:function(){return this[a]}},{key:"itemCount",get:function(){return this[I].length}}]),e}(),B=function(e,t,A){var n=e[C].get(t);if(n){var r=n.value;if(p(e,r)){if(Q(e,n),!e[g])return}else A&&(e[h]&&(n.value.now=Date.now()),e[I].unshiftNode(n));return r.value}},p=function(e,t){if(!t||!t.maxAge&&!e[c])return!1;var A=Date.now()-t.now;return t.maxAge?A>t.maxAge:e[c]&&A>e[c]},E=function(e){if(e[a]>e[o])for(var t=e[I].tail;e[a]>e[o]&&null!==t;){var A=t.prev;Q(e,t),t=A}},Q=function(e,t){if(t){var A=t.value;e[u]&&e[u](A.key,A.value),e[a]-=A.length,e[C].delete(A.key),e[I].removeNode(t)}},y=function e(t,A,r,i,o){n(this,e),this.key=t,this.value=A,this.length=r,this.now=i,this.maxAge=o||0},v=function(e,t,A,n){var r=A.value;p(e,r)&&(Q(e,A),e[g]||(r=void 0)),r&&t.call(n,r.value,r.key,e)};e.exports=d},function(e,t,A){"use strict";(function(e){A.d(t,"a",(function(){return E}));var n=A(7),r=A(3),i=A.n(r),o=A(12),a=A(1),s=A(4),g=A(9),c=A(10),u=A(672),l=A.n(u),I=A(673),C=A.n(I),h=A(674),f=A.n(h),d=A(181),B=A(57),p=function(e){Object(g.a)(A,e);var t=Object(c.a)(A);function A(e,n){var r;return Object(a.a)(this,A),(r=t.call(this)).response=e,r.dataPromise=n,r}return Object(s.a)(A,[{key:"getHeader",value:function(e){return this.response.headers[e]}},{key:"getData",value:function(){var e=Object(o.a)(i.a.mark((function e(){var t;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.dataPromise;case 2:return t=e.sent,e.abrupt("return",t);case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"status",get:function(){return this.response.statusCode}}]),A}(d.b),E=function(t){Object(g.a)(r,t);var A=Object(c.a)(r);function r(e){var t;return Object(a.a)(this,r),(t=A.call(this,e)).parsedUrl=f.a.parse(t.url),t.httpApi="http:"===t.parsedUrl.protocol?l.a:C.a,t}return Object(s.a)(r,[{key:"constructRequest",value:function(t,A){var r=this;return new Promise((function(i,o){var a=r.httpApi.get(Object(n.a)({},r.parsedUrl,{headers:t}),(function(t){var A=new Promise((function(A){var n=[];t.on("data",(function(e){n.push(e)})),t.on("end",(function(){var t=e.concat(n).buffer;A(t)})),t.on("error",o)}));i(new p(t,A))}));a.on("error",o),A&&(A.aborted&&a.destroy(new B.a("Request aborted")),A.addEventListener("abort",(function(){return a.destroy(new B.a("Request aborted"))})))}))}},{key:"request",value:function(){var e=Object(o.a)(i.a.mark((function e(){var t,A,n,r,o=arguments;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=o.length>0&&void 0!==o[0]?o[0]:{},A=t.headers,n=t.signal,e.next=3,this.constructRequest(A,n);case 3:return r=e.sent,e.abrupt("return",r);case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()}]),r}(d.a)}).call(this,A(188).Buffer)},,,,function(e,t,A){"use strict";(function(e){A.d(t,"a",(function(){return h}));var n=A(3),r=A.n(n),i=A(12),o=A(1),a=A(4),s=A(9),g=A(10),c=A(333),u=A.n(c);function l(e){return new Promise((function(t,A){u.a.close(e,(function(e){e?A(e):t()}))}))}function I(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];return new Promise((function(e,A){u.a.read.apply(u.a,t.concat([function(t,n,r){t?A(t):e({bytesRead:n,buffer:r})}]))}))}var C=function(t){Object(s.a)(n,t);var A=Object(g.a)(n);function n(e){var t;return Object(o.a)(this,n),(t=A.call(this)).path=e,t.openRequest=function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return new Promise((function(n,r){u.a.open(e,t,A,(function(e,t){e?r(e):n(t)}))}))}(e,"r"),t}return Object(a.a)(n,[{key:"fetchSlice",value:function(){var t=Object(i.a)(r.a.mark((function t(A){var n,i,o;return r.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.openRequest;case 2:return n=t.sent,t.next=5,I(n,e.alloc(A.length),0,A.length,A.offset);case 5:return i=t.sent,o=i.buffer,t.abrupt("return",o.buffer);case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"close",value:function(){var e=Object(i.a)(r.a.mark((function e(){var t;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.openRequest;case 2:return t=e.sent,e.next=5,l(t);case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()}]),n}(A(164).a);function h(e){return new C(e)}}).call(this,A(188).Buffer)},function(e,t,A){e.exports=function(e){"use strict";return function(e){if("number"!==typeof e)throw new TypeError("Expected a number");if(e>1e19)throw new RangeError("Input expected to be < 1e19");if(e<-1e19)throw new RangeError("Input expected to be > 1e19");if(Math.abs(e)<1e3)return e;var t,A,n,r=e<0?"-":"",i={K:6,M:9,B:12,T:16};for(var o in e=Math.abs(e),A=(n=Math.floor(e).toString().length)%3===0?n-3:n-n%3,t=Math.round(e/Math.pow(10,A)*10)/10,i)if(A<i[o]){t+=o;break}return r+t}}()},,function(e,t,A){(function(e){(function(t){"use strict";function A(){}function n(){n.init.call(this)}function r(e){return void 0===e._maxListeners?n.defaultMaxListeners:e._maxListeners}function i(e,t,A){if(t)e.call(A);else for(var n=e.length,r=I(e,n),i=0;i<n;++i)r[i].call(A)}function o(e,t,A,n){if(t)e.call(A,n);else for(var r=e.length,i=I(e,r),o=0;o<r;++o)i[o].call(A,n)}function a(e,t,A,n,r){if(t)e.call(A,n,r);else for(var i=e.length,o=I(e,i),a=0;a<i;++a)o[a].call(A,n,r)}function s(e,t,A,n,r,i){if(t)e.call(A,n,r,i);else for(var o=e.length,a=I(e,o),s=0;s<o;++s)a[s].call(A,n,r,i)}function g(e,t,A,n){if(t)e.apply(A,n);else for(var r=e.length,i=I(e,r),o=0;o<r;++o)i[o].apply(A,n)}function c(e,t,n,i){var o,a,s,g;if("function"!==typeof n)throw new TypeError('"listener" argument must be a function');if((a=e._events)?(a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),s=a[t]):(a=e._events=new A,e._eventsCount=0),s){if("function"===typeof s?s=a[t]=i?[n,s]:[s,n]:i?s.unshift(n):s.push(n),!s.warned&&(o=r(e))&&o>0&&s.length>o){s.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=s.length,g=c,"function"===typeof console.warn?console.warn(g):console.log(g)}}else s=a[t]=n,++e._eventsCount;return e}function u(e,t,A){var n=!1;function r(){e.removeListener(t,r),n||(n=!0,A.apply(e,arguments))}return r.listener=A,r}function l(e){var t=this._events;if(t){var A=t[e];if("function"===typeof A)return 1;if(A)return A.length}return 0}function I(e,t){for(var A=new Array(t);t--;)A[t]=e[t];return A}A.prototype=Object.create(null),n.EventEmitter=n,n.usingDomains=!1,n.prototype.domain=void 0,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.init=function(){this.domain=null,n.usingDomains&&(void 0).active&&(void 0).Domain,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new A,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},n.prototype.setMaxListeners=function(e){if("number"!==typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},n.prototype.getMaxListeners=function(){return r(this)},n.prototype.emit=function(e){var t,A,n,r,c,u,l,I="error"===e;if(u=this._events)I=I&&null==u.error;else if(!I)return!1;if(l=this.domain,I){if(t=arguments[1],!l){if(t instanceof Error)throw t;var C=new Error('Uncaught, unspecified "error" event. ('+t+")");throw C.context=t,C}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=l,t.domainThrown=!1,l.emit("error",t),!1}if(!(A=u[e]))return!1;var h="function"===typeof A;switch(n=arguments.length){case 1:i(A,h,this);break;case 2:o(A,h,this,arguments[1]);break;case 3:a(A,h,this,arguments[1],arguments[2]);break;case 4:s(A,h,this,arguments[1],arguments[2],arguments[3]);break;default:for(r=new Array(n-1),c=1;c<n;c++)r[c-1]=arguments[c];g(A,h,this,r)}return!0},n.prototype.addListener=function(e,t){return c(this,e,t,!1)},n.prototype.on=n.prototype.addListener,n.prototype.prependListener=function(e,t){return c(this,e,t,!0)},n.prototype.once=function(e,t){if("function"!==typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,u(this,e,t)),this},n.prototype.prependOnceListener=function(e,t){if("function"!==typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,u(this,e,t)),this},n.prototype.removeListener=function(e,t){var n,r,i,o,a;if("function"!==typeof t)throw new TypeError('"listener" argument must be a function');if(!(r=this._events))return this;if(!(n=r[e]))return this;if(n===t||n.listener&&n.listener===t)0===--this._eventsCount?this._events=new A:(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!==typeof n){for(i=-1,o=n.length;o-- >0;)if(n[o]===t||n[o].listener&&n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;if(1===n.length){if(n[0]=void 0,0===--this._eventsCount)return this._events=new A,this;delete r[e]}else!function(e,t){for(var A=t,n=A+1,r=e.length;n<r;A+=1,n+=1)e[A]=e[n];e.pop()}(n,i);r.removeListener&&this.emit("removeListener",e,a||t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new A,this._eventsCount=0):n[e]&&(0===--this._eventsCount?this._events=new A:delete n[e]),this;if(0===arguments.length){for(var r,i=Object.keys(n),o=0;o<i.length;++o)"removeListener"!==(r=i[o])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=new A,this._eventsCount=0,this}if("function"===typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},n.prototype.listeners=function(e){var t,A=this._events;return A&&(t=A[e])?"function"===typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),A=0;A<t.length;++A)t[A]=e[A].listener||e[A];return t}(t):[]},n.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):l.call(e,t)},n.prototype.listenerCount=l,n.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var C="undefined"!==typeof e?e:"undefined"!==typeof self?self:"undefined"!==typeof window?window:{},h=[],f=[],d="undefined"!==typeof Uint8Array?Uint8Array:Array,B=!1;function p(){B=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,A=e.length;t<A;++t)h[t]=e[t],f[e.charCodeAt(t)]=t;f["-".charCodeAt(0)]=62,f["_".charCodeAt(0)]=63}function E(e,t,A){for(var n,r,i=[],o=t;o<A;o+=3)n=(e[o]<<16)+(e[o+1]<<8)+e[o+2],i.push(h[(r=n)>>18&63]+h[r>>12&63]+h[r>>6&63]+h[63&r]);return i.join("")}function Q(e){var t;B||p();for(var A=e.length,n=A%3,r="",i=[],o=0,a=A-n;o<a;o+=16383)i.push(E(e,o,o+16383>a?a:o+16383));return 1===n?(t=e[A-1],r+=h[t>>2],r+=h[t<<4&63],r+="=="):2===n&&(t=(e[A-2]<<8)+e[A-1],r+=h[t>>10],r+=h[t>>4&63],r+=h[t<<2&63],r+="="),i.push(r),i.join("")}function y(e,t,A,n,r){var i,o,a=8*r-n-1,s=(1<<a)-1,g=s>>1,c=-7,u=A?r-1:0,l=A?-1:1,I=e[t+u];for(u+=l,i=I&(1<<-c)-1,I>>=-c,c+=a;c>0;i=256*i+e[t+u],u+=l,c-=8);for(o=i&(1<<-c)-1,i>>=-c,c+=n;c>0;o=256*o+e[t+u],u+=l,c-=8);if(0===i)i=1-g;else{if(i===s)return o?NaN:1/0*(I?-1:1);o+=Math.pow(2,n),i-=g}return(I?-1:1)*o*Math.pow(2,i-n)}function v(e,t,A,n,r,i){var o,a,s,g=8*i-r-1,c=(1<<g)-1,u=c>>1,l=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,I=n?0:i-1,C=n?1:-1,h=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-o))<1&&(o--,s*=2),(t+=o+u>=1?l/s:l*Math.pow(2,1-u))*s>=2&&(o++,s/=2),o+u>=c?(a=0,o=c):o+u>=1?(a=(t*s-1)*Math.pow(2,r),o+=u):(a=t*Math.pow(2,u-1)*Math.pow(2,r),o=0));r>=8;e[A+I]=255&a,I+=C,a/=256,r-=8);for(o=o<<r|a,g+=r;g>0;e[A+I]=255&o,I+=C,o/=256,g-=8);e[A+I-C]|=128*h}var m={}.toString,b=Array.isArray||function(e){return"[object Array]"==m.call(e)};function w(){return F.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function S(e,t){if(w()<t)throw new RangeError("Invalid typed array length");return F.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=F.prototype:(null===e&&(e=new F(t)),e.length=t),e}function F(e,t,A){if(!F.TYPED_ARRAY_SUPPORT&&!(this instanceof F))return new F(e,t,A);if("number"===typeof e){if("string"===typeof t)throw new Error("If encoding is specified then the first argument must be a string");return G(this,e)}return R(this,e,t,A)}function R(e,t,A,n){if("number"===typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!==typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,A,n){if(t.byteLength,A<0||t.byteLength<A)throw new RangeError("'offset' is out of bounds");if(t.byteLength<A+(n||0))throw new RangeError("'length' is out of bounds");return t=void 0===A&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,A):new Uint8Array(t,A,n),F.TYPED_ARRAY_SUPPORT?(e=t).__proto__=F.prototype:e=k(e,t),e}(e,t,A,n):"string"===typeof t?function(e,t,A){if("string"===typeof A&&""!==A||(A="utf8"),!F.isEncoding(A))throw new TypeError('"encoding" must be a valid string encoding');var n=0|U(t,A),r=(e=S(e,n)).write(t,A);return r!==n&&(e=e.slice(0,r)),e}(e,t,A):function(e,t){if(N(t)){var A=0|x(t.length);return 0===(e=S(e,A)).length||t.copy(e,0,0,A),e}if(t){if("undefined"!==typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!==typeof t.length||(n=t.length)!==n?S(e,0):k(e,t);if("Buffer"===t.type&&b(t.data))return k(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function D(e){if("number"!==typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function G(e,t){if(D(t),e=S(e,t<0?0:0|x(t)),!F.TYPED_ARRAY_SUPPORT)for(var A=0;A<t;++A)e[A]=0;return e}function k(e,t){var A=t.length<0?0:0|x(t.length);e=S(e,A);for(var n=0;n<A;n+=1)e[n]=255&t[n];return e}function x(e){if(e>=w())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+w().toString(16)+" bytes");return 0|e}function N(e){return!(null==e||!e._isBuffer)}function U(e,t){if(N(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var A=e.length;if(0===A)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return A;case"utf8":case"utf-8":case void 0:return oe(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*A;case"hex":return A>>>1;case"base64":return ae(e).length;default:if(n)return oe(e).length;t=(""+t).toLowerCase(),n=!0}}function _(e,t,A){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===A||A>this.length)&&(A=this.length),A<=0)return"";if((A>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return X(this,t,A);case"utf8":case"utf-8":return V(this,t,A);case"ascii":return K(this,t,A);case"latin1":case"binary":return W(this,t,A);case"base64":return P(this,t,A);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return q(this,t,A);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function M(e,t,A){var n=e[t];e[t]=e[A],e[A]=n}function O(e,t,A,n,r){if(0===e.length)return-1;if("string"===typeof A?(n=A,A=0):A>2147483647?A=2147483647:A<-2147483648&&(A=-2147483648),A=+A,isNaN(A)&&(A=r?0:e.length-1),A<0&&(A=e.length+A),A>=e.length){if(r)return-1;A=e.length-1}else if(A<0){if(!r)return-1;A=0}if("string"===typeof t&&(t=F.from(t,n)),N(t))return 0===t.length?-1:L(e,t,A,n,r);if("number"===typeof t)return t&=255,F.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,A):Uint8Array.prototype.lastIndexOf.call(e,t,A):L(e,[t],A,n,r);throw new TypeError("val must be string, number or Buffer")}function L(e,t,A,n,r){var i,o=1,a=e.length,s=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o=2,a/=2,s/=2,A/=2}function g(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(r){var c=-1;for(i=A;i<a;i++)if(g(e,i)===g(t,-1===c?0:i-c)){if(-1===c&&(c=i),i-c+1===s)return c*o}else-1!==c&&(i-=i-c),c=-1}else for(A+s>a&&(A=a-s),i=A;i>=0;i--){for(var u=!0,l=0;l<s;l++)if(g(e,i+l)!==g(t,l)){u=!1;break}if(u)return i}return-1}function T(e,t,A,n){A=Number(A)||0;var r=e.length-A;n?(n=Number(n))>r&&(n=r):n=r;var i=t.length;if(i%2!==0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var o=0;o<n;++o){var a=parseInt(t.substr(2*o,2),16);if(isNaN(a))return o;e[A+o]=a}return o}function Z(e,t,A,n){return se(oe(t,e.length-A),e,A,n)}function H(e,t,A,n){return se(function(e){for(var t=[],A=0;A<e.length;++A)t.push(255&e.charCodeAt(A));return t}(t),e,A,n)}function Y(e,t,A,n){return H(e,t,A,n)}function J(e,t,A,n){return se(ae(t),e,A,n)}function j(e,t,A,n){return se(function(e,t){for(var A,n,r,i=[],o=0;o<e.length&&!((t-=2)<0);++o)A=e.charCodeAt(o),n=A>>8,r=A%256,i.push(r),i.push(n);return i}(t,e.length-A),e,A,n)}function P(e,t,A){return 0===t&&A===e.length?Q(e):Q(e.slice(t,A))}function V(e,t,A){A=Math.min(e.length,A);for(var n=[],r=t;r<A;){var i,o,a,s,g=e[r],c=null,u=g>239?4:g>223?3:g>191?2:1;if(r+u<=A)switch(u){case 1:g<128&&(c=g);break;case 2:128===(192&(i=e[r+1]))&&(s=(31&g)<<6|63&i)>127&&(c=s);break;case 3:i=e[r+1],o=e[r+2],128===(192&i)&&128===(192&o)&&(s=(15&g)<<12|(63&i)<<6|63&o)>2047&&(s<55296||s>57343)&&(c=s);break;case 4:i=e[r+1],o=e[r+2],a=e[r+3],128===(192&i)&&128===(192&o)&&128===(192&a)&&(s=(15&g)<<18|(63&i)<<12|(63&o)<<6|63&a)>65535&&s<1114112&&(c=s)}null===c?(c=65533,u=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),r+=u}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);for(var A="",n=0;n<t;)A+=String.fromCharCode.apply(String,e.slice(n,n+=4096));return A}(n)}function K(e,t,A){var n="";A=Math.min(e.length,A);for(var r=t;r<A;++r)n+=String.fromCharCode(127&e[r]);return n}function W(e,t,A){var n="";A=Math.min(e.length,A);for(var r=t;r<A;++r)n+=String.fromCharCode(e[r]);return n}function X(e,t,A){var n,r=e.length;(!t||t<0)&&(t=0),(!A||A<0||A>r)&&(A=r);for(var i="",o=t;o<A;++o)i+=(n=e[o])<16?"0"+n.toString(16):n.toString(16);return i}function q(e,t,A){for(var n=e.slice(t,A),r="",i=0;i<n.length;i+=2)r+=String.fromCharCode(n[i]+256*n[i+1]);return r}function z(e,t,A){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>A)throw new RangeError("Trying to access beyond buffer length")}function $(e,t,A,n,r,i){if(!N(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||t<i)throw new RangeError('"value" argument is out of bounds');if(A+n>e.length)throw new RangeError("Index out of range")}function ee(e,t,A,n){t<0&&(t=65535+t+1);for(var r=0,i=Math.min(e.length-A,2);r<i;++r)e[A+r]=(t&255<<8*(n?r:1-r))>>>8*(n?r:1-r)}function te(e,t,A,n){t<0&&(t=4294967295+t+1);for(var r=0,i=Math.min(e.length-A,4);r<i;++r)e[A+r]=t>>>8*(n?r:3-r)&255}function Ae(e,t,A,n,r,i){if(A+n>e.length)throw new RangeError("Index out of range");if(A<0)throw new RangeError("Index out of range")}function ne(e,t,A,n,r){return r||Ae(e,0,A,4),v(e,t,A,n,23,4),A+4}function re(e,t,A,n,r){return r||Ae(e,0,A,8),v(e,t,A,n,52,8),A+8}F.TYPED_ARRAY_SUPPORT=void 0===C.TYPED_ARRAY_SUPPORT||C.TYPED_ARRAY_SUPPORT,F.poolSize=8192,F._augment=function(e){return e.__proto__=F.prototype,e},F.from=function(e,t,A){return R(null,e,t,A)},F.TYPED_ARRAY_SUPPORT&&(F.prototype.__proto__=Uint8Array.prototype,F.__proto__=Uint8Array),F.alloc=function(e,t,A){return function(e,t,A,n){return D(t),t<=0?S(e,t):void 0!==A?"string"===typeof n?S(e,t).fill(A,n):S(e,t).fill(A):S(e,t)}(null,e,t,A)},F.allocUnsafe=function(e){return G(null,e)},F.allocUnsafeSlow=function(e){return G(null,e)},F.isBuffer=ge,F.compare=function(e,t){if(!N(e)||!N(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var A=e.length,n=t.length,r=0,i=Math.min(A,n);r<i;++r)if(e[r]!==t[r]){A=e[r],n=t[r];break}return A<n?-1:n<A?1:0},F.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},F.concat=function(e,t){if(!b(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return F.alloc(0);var A;if(void 0===t)for(t=0,A=0;A<e.length;++A)t+=e[A].length;var n=F.allocUnsafe(t),r=0;for(A=0;A<e.length;++A){var i=e[A];if(!N(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(n,r),r+=i.length}return n},F.byteLength=U,F.prototype._isBuffer=!0,F.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)M(this,t,t+1);return this},F.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)M(this,t,t+3),M(this,t+1,t+2);return this},F.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)M(this,t,t+7),M(this,t+1,t+6),M(this,t+2,t+5),M(this,t+3,t+4);return this},F.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?V(this,0,e):_.apply(this,arguments)},F.prototype.equals=function(e){if(!N(e))throw new TypeError("Argument must be a Buffer");return this===e||0===F.compare(this,e)},F.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},F.prototype.compare=function(e,t,A,n,r){if(!N(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===A&&(A=e?e.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),t<0||A>e.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&t>=A)return 0;if(n>=r)return-1;if(t>=A)return 1;if(this===e)return 0;for(var i=(r>>>=0)-(n>>>=0),o=(A>>>=0)-(t>>>=0),a=Math.min(i,o),s=this.slice(n,r),g=e.slice(t,A),c=0;c<a;++c)if(s[c]!==g[c]){i=s[c],o=g[c];break}return i<o?-1:o<i?1:0},F.prototype.includes=function(e,t,A){return-1!==this.indexOf(e,t,A)},F.prototype.indexOf=function(e,t,A){return O(this,e,t,A,!0)},F.prototype.lastIndexOf=function(e,t,A){return O(this,e,t,A,!1)},F.prototype.write=function(e,t,A,n){if(void 0===t)n="utf8",A=this.length,t=0;else if(void 0===A&&"string"===typeof t)n=t,A=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(A)?(A|=0,void 0===n&&(n="utf8")):(n=A,A=void 0)}var r=this.length-t;if((void 0===A||A>r)&&(A=r),e.length>0&&(A<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return T(this,e,t,A);case"utf8":case"utf-8":return Z(this,e,t,A);case"ascii":return H(this,e,t,A);case"latin1":case"binary":return Y(this,e,t,A);case"base64":return J(this,e,t,A);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j(this,e,t,A);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},F.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},F.prototype.slice=function(e,t){var A,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),F.TYPED_ARRAY_SUPPORT)(A=this.subarray(e,t)).__proto__=F.prototype;else{var r=t-e;A=new F(r,void 0);for(var i=0;i<r;++i)A[i]=this[i+e]}return A},F.prototype.readUIntLE=function(e,t,A){e|=0,t|=0,A||z(e,t,this.length);for(var n=this[e],r=1,i=0;++i<t&&(r*=256);)n+=this[e+i]*r;return n},F.prototype.readUIntBE=function(e,t,A){e|=0,t|=0,A||z(e,t,this.length);for(var n=this[e+--t],r=1;t>0&&(r*=256);)n+=this[e+--t]*r;return n},F.prototype.readUInt8=function(e,t){return t||z(e,1,this.length),this[e]},F.prototype.readUInt16LE=function(e,t){return t||z(e,2,this.length),this[e]|this[e+1]<<8},F.prototype.readUInt16BE=function(e,t){return t||z(e,2,this.length),this[e]<<8|this[e+1]},F.prototype.readUInt32LE=function(e,t){return t||z(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},F.prototype.readUInt32BE=function(e,t){return t||z(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},F.prototype.readIntLE=function(e,t,A){e|=0,t|=0,A||z(e,t,this.length);for(var n=this[e],r=1,i=0;++i<t&&(r*=256);)n+=this[e+i]*r;return n>=(r*=128)&&(n-=Math.pow(2,8*t)),n},F.prototype.readIntBE=function(e,t,A){e|=0,t|=0,A||z(e,t,this.length);for(var n=t,r=1,i=this[e+--n];n>0&&(r*=256);)i+=this[e+--n]*r;return i>=(r*=128)&&(i-=Math.pow(2,8*t)),i},F.prototype.readInt8=function(e,t){return t||z(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},F.prototype.readInt16LE=function(e,t){t||z(e,2,this.length);var A=this[e]|this[e+1]<<8;return 32768&A?4294901760|A:A},F.prototype.readInt16BE=function(e,t){t||z(e,2,this.length);var A=this[e+1]|this[e]<<8;return 32768&A?4294901760|A:A},F.prototype.readInt32LE=function(e,t){return t||z(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},F.prototype.readInt32BE=function(e,t){return t||z(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},F.prototype.readFloatLE=function(e,t){return t||z(e,4,this.length),y(this,e,!0,23,4)},F.prototype.readFloatBE=function(e,t){return t||z(e,4,this.length),y(this,e,!1,23,4)},F.prototype.readDoubleLE=function(e,t){return t||z(e,8,this.length),y(this,e,!0,52,8)},F.prototype.readDoubleBE=function(e,t){return t||z(e,8,this.length),y(this,e,!1,52,8)},F.prototype.writeUIntLE=function(e,t,A,n){e=+e,t|=0,A|=0,n||$(this,e,t,A,Math.pow(2,8*A)-1,0);var r=1,i=0;for(this[t]=255&e;++i<A&&(r*=256);)this[t+i]=e/r&255;return t+A},F.prototype.writeUIntBE=function(e,t,A,n){e=+e,t|=0,A|=0,n||$(this,e,t,A,Math.pow(2,8*A)-1,0);var r=A-1,i=1;for(this[t+r]=255&e;--r>=0&&(i*=256);)this[t+r]=e/i&255;return t+A},F.prototype.writeUInt8=function(e,t,A){return e=+e,t|=0,A||$(this,e,t,1,255,0),F.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},F.prototype.writeUInt16LE=function(e,t,A){return e=+e,t|=0,A||$(this,e,t,2,65535,0),F.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):ee(this,e,t,!0),t+2},F.prototype.writeUInt16BE=function(e,t,A){return e=+e,t|=0,A||$(this,e,t,2,65535,0),F.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):ee(this,e,t,!1),t+2},F.prototype.writeUInt32LE=function(e,t,A){return e=+e,t|=0,A||$(this,e,t,4,4294967295,0),F.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):te(this,e,t,!0),t+4},F.prototype.writeUInt32BE=function(e,t,A){return e=+e,t|=0,A||$(this,e,t,4,4294967295,0),F.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):te(this,e,t,!1),t+4},F.prototype.writeIntLE=function(e,t,A,n){if(e=+e,t|=0,!n){var r=Math.pow(2,8*A-1);$(this,e,t,A,r-1,-r)}var i=0,o=1,a=0;for(this[t]=255&e;++i<A&&(o*=256);)e<0&&0===a&&0!==this[t+i-1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+A},F.prototype.writeIntBE=function(e,t,A,n){if(e=+e,t|=0,!n){var r=Math.pow(2,8*A-1);$(this,e,t,A,r-1,-r)}var i=A-1,o=1,a=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+A},F.prototype.writeInt8=function(e,t,A){return e=+e,t|=0,A||$(this,e,t,1,127,-128),F.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},F.prototype.writeInt16LE=function(e,t,A){return e=+e,t|=0,A||$(this,e,t,2,32767,-32768),F.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):ee(this,e,t,!0),t+2},F.prototype.writeInt16BE=function(e,t,A){return e=+e,t|=0,A||$(this,e,t,2,32767,-32768),F.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):ee(this,e,t,!1),t+2},F.prototype.writeInt32LE=function(e,t,A){return e=+e,t|=0,A||$(this,e,t,4,2147483647,-2147483648),F.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):te(this,e,t,!0),t+4},F.prototype.writeInt32BE=function(e,t,A){return e=+e,t|=0,A||$(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),F.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):te(this,e,t,!1),t+4},F.prototype.writeFloatLE=function(e,t,A){return ne(this,e,t,!0,A)},F.prototype.writeFloatBE=function(e,t,A){return ne(this,e,t,!1,A)},F.prototype.writeDoubleLE=function(e,t,A){return re(this,e,t,!0,A)},F.prototype.writeDoubleBE=function(e,t,A){return re(this,e,t,!1,A)},F.prototype.copy=function(e,t,A,n){if(A||(A=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<A&&(n=A),n===A)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(A<0||A>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-A&&(n=e.length-t+A);var r,i=n-A;if(this===e&&A<t&&t<n)for(r=i-1;r>=0;--r)e[r+t]=this[r+A];else if(i<1e3||!F.TYPED_ARRAY_SUPPORT)for(r=0;r<i;++r)e[r+t]=this[r+A];else Uint8Array.prototype.set.call(e,this.subarray(A,A+i),t);return i},F.prototype.fill=function(e,t,A,n){if("string"===typeof e){if("string"===typeof t?(n=t,t=0,A=this.length):"string"===typeof A&&(n=A,A=this.length),1===e.length){var r=e.charCodeAt(0);r<256&&(e=r)}if(void 0!==n&&"string"!==typeof n)throw new TypeError("encoding must be a string");if("string"===typeof n&&!F.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"===typeof e&&(e&=255);if(t<0||this.length<t||this.length<A)throw new RangeError("Out of range index");if(A<=t)return this;var i;if(t>>>=0,A=void 0===A?this.length:A>>>0,e||(e=0),"number"===typeof e)for(i=t;i<A;++i)this[i]=e;else{var o=N(e)?e:oe(new F(e,n).toString()),a=o.length;for(i=0;i<A-t;++i)this[i+t]=o[i%a]}return this};var ie=/[^+\/0-9A-Za-z-_]/g;function oe(e,t){var A;t=t||1/0;for(var n=e.length,r=null,i=[],o=0;o<n;++o){if((A=e.charCodeAt(o))>55295&&A<57344){if(!r){if(A>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&i.push(239,191,189);continue}r=A;continue}if(A<56320){(t-=3)>-1&&i.push(239,191,189),r=A;continue}A=65536+(r-55296<<10|A-56320)}else r&&(t-=3)>-1&&i.push(239,191,189);if(r=null,A<128){if((t-=1)<0)break;i.push(A)}else if(A<2048){if((t-=2)<0)break;i.push(A>>6|192,63&A|128)}else if(A<65536){if((t-=3)<0)break;i.push(A>>12|224,A>>6&63|128,63&A|128)}else{if(!(A<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(A>>18|240,A>>12&63|128,A>>6&63|128,63&A|128)}}return i}function ae(e){return function(e){var t,A,n,r,i,o;B||p();var a=e.length;if(a%4>0)throw new Error("Invalid string. Length must be a multiple of 4");i="="===e[a-2]?2:"="===e[a-1]?1:0,o=new d(3*a/4-i),n=i>0?a-4:a;var s=0;for(t=0,A=0;t<n;t+=4,A+=3)r=f[e.charCodeAt(t)]<<18|f[e.charCodeAt(t+1)]<<12|f[e.charCodeAt(t+2)]<<6|f[e.charCodeAt(t+3)],o[s++]=r>>16&255,o[s++]=r>>8&255,o[s++]=255&r;return 2===i?(r=f[e.charCodeAt(t)]<<2|f[e.charCodeAt(t+1)]>>4,o[s++]=255&r):1===i&&(r=f[e.charCodeAt(t)]<<10|f[e.charCodeAt(t+1)]<<4|f[e.charCodeAt(t+2)]>>2,o[s++]=r>>8&255,o[s++]=255&r),o}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(ie,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}(e))}function se(e,t,A,n){for(var r=0;r<n&&!(r+A>=t.length||r>=e.length);++r)t[r+A]=e[r];return r}function ge(e){return null!=e&&(!!e._isBuffer||ce(e)||function(e){return"function"===typeof e.readFloatLE&&"function"===typeof e.slice&&ce(e.slice(0,0))}(e))}function ce(e){return!!e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function ue(){throw new Error("setTimeout has not been defined")}function le(){throw new Error("clearTimeout has not been defined")}var Ie=ue,Ce=le;function he(e){if(Ie===setTimeout)return setTimeout(e,0);if((Ie===ue||!Ie)&&setTimeout)return Ie=setTimeout,setTimeout(e,0);try{return Ie(e,0)}catch(t){try{return Ie.call(null,e,0)}catch(t){return Ie.call(this,e,0)}}}"function"===typeof C.setTimeout&&(Ie=setTimeout),"function"===typeof C.clearTimeout&&(Ce=clearTimeout);var fe,de=[],Be=!1,pe=-1;function Ee(){Be&&fe&&(Be=!1,fe.length?de=fe.concat(de):pe=-1,de.length&&Qe())}function Qe(){if(!Be){var e=he(Ee);Be=!0;for(var t=de.length;t;){for(fe=de,de=[];++pe<t;)fe&&fe[pe].run();pe=-1,t=de.length}fe=null,Be=!1,function(e){if(Ce===clearTimeout)return clearTimeout(e);if((Ce===le||!Ce)&&clearTimeout)return Ce=clearTimeout,clearTimeout(e);try{Ce(e)}catch(t){try{return Ce.call(null,e)}catch(t){return Ce.call(this,e)}}}(e)}}function ye(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var A=1;A<arguments.length;A++)t[A-1]=arguments[A];de.push(new ve(e,t)),1!==de.length||Be||he(Qe)}function ve(e,t){this.fun=e,this.array=t}function me(){}ve.prototype.run=function(){this.fun.apply(null,this.array)};var be=me,we=me,Se=me,Fe=me,Re=me,De=me,Ge=me,ke=C.performance||{},xe=ke.now||ke.mozNow||ke.msNow||ke.oNow||ke.webkitNow||function(){return(new Date).getTime()},Ne=new Date,Ue={nextTick:ye,title:"browser",browser:!0,env:{},argv:[],version:"",versions:{},on:be,addListener:we,once:Se,off:Fe,removeListener:Re,removeAllListeners:De,emit:Ge,binding:function(e){throw new Error("process.binding is not supported")},cwd:function(){return"/"},chdir:function(e){throw new Error("process.chdir is not supported")},umask:function(){return 0},hrtime:function(e){var t=.001*xe.call(ke),A=Math.floor(t),n=Math.floor(t%1*1e9);return e&&(A-=e[0],(n-=e[1])<0&&(A--,n+=1e9)),[A,n]},platform:"browser",release:{},config:{},uptime:function(){return(new Date-Ne)/1e3}},_e="function"===typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var A=function(){};A.prototype=t.prototype,e.prototype=new A,e.prototype.constructor=e},Me=/%[sdj%]/g;function Oe(e){if(!Xe(e)){for(var t=[],A=0;A<arguments.length;A++)t.push(He(arguments[A]));return t.join(" ")}A=1;for(var n=arguments,r=n.length,i=String(e).replace(Me,(function(e){if("%%"===e)return"%";if(A>=r)return e;switch(e){case"%s":return String(n[A++]);case"%d":return Number(n[A++]);case"%j":try{return JSON.stringify(n[A++])}catch(t){return"[Circular]"}default:return e}})),o=n[A];A<r;o=n[++A])We(o)||!$e(o)?i+=" "+o:i+=" "+He(o);return i}function Le(e,t){if(qe(C.process))return function(){return Le(e,t).apply(this,arguments)};var A=!1;return function(){return A||(console.error(t),A=!0),e.apply(this,arguments)}}var Te,Ze={};function He(e,t){var A={seen:[],stylize:Je};return arguments.length>=3&&(A.depth=arguments[2]),arguments.length>=4&&(A.colors=arguments[3]),Ke(t)?A.showHidden=t:t&&rt(A,t),qe(A.showHidden)&&(A.showHidden=!1),qe(A.depth)&&(A.depth=2),qe(A.colors)&&(A.colors=!1),qe(A.customInspect)&&(A.customInspect=!0),A.colors&&(A.stylize=Ye),je(A,e,A.depth)}function Ye(e,t){var A=He.styles[t];return A?"\x1b["+He.colors[A][0]+"m"+e+"\x1b["+He.colors[A][1]+"m":e}function Je(e,t){return e}function je(e,t,A){if(e.customInspect&&t&&At(t.inspect)&&t.inspect!==He&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(A,e);return Xe(n)||(n=je(e,n,A)),n}var r=function(e,t){if(qe(t))return e.stylize("undefined","undefined");if(Xe(t)){var A="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(A,"string")}return"number"===typeof t?e.stylize(""+t,"number"):Ke(t)?e.stylize(""+t,"boolean"):We(t)?e.stylize("null","null"):void 0}(e,t);if(r)return r;var i=Object.keys(t),o=function(e){var t={};return e.forEach((function(e,A){t[e]=!0})),t}(i);if(e.showHidden&&(i=Object.getOwnPropertyNames(t)),tt(t)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return Pe(t);if(0===i.length){if(At(t)){var a=t.name?": "+t.name:"";return e.stylize("[Function"+a+"]","special")}if(ze(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(et(t))return e.stylize(Date.prototype.toString.call(t),"date");if(tt(t))return Pe(t)}var s,g,c="",u=!1,l=["{","}"];return s=t,Array.isArray(s)&&(u=!0,l=["[","]"]),At(t)&&(c=" [Function"+(t.name?": "+t.name:"")+"]"),ze(t)&&(c=" "+RegExp.prototype.toString.call(t)),et(t)&&(c=" "+Date.prototype.toUTCString.call(t)),tt(t)&&(c=" "+Pe(t)),0!==i.length||u&&0!=t.length?A<0?ze(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),g=u?function(e,t,A,n,r){for(var i=[],o=0,a=t.length;o<a;++o)it(t,String(o))?i.push(Ve(e,t,A,n,String(o),!0)):i.push("");return r.forEach((function(r){r.match(/^\d+$/)||i.push(Ve(e,t,A,n,r,!0))})),i}(e,t,A,o,i):i.map((function(n){return Ve(e,t,A,o,n,u)})),e.seen.pop(),function(e,t,A){return e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60?A[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+A[1]:A[0]+t+" "+e.join(", ")+" "+A[1]}(g,c,l)):l[0]+c+l[1]}function Pe(e){return"["+Error.prototype.toString.call(e)+"]"}function Ve(e,t,A,n,r,i){var o,a,s;if((s=Object.getOwnPropertyDescriptor(t,r)||{value:t[r]}).get?a=s.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):s.set&&(a=e.stylize("[Setter]","special")),it(n,r)||(o="["+r+"]"),a||(e.seen.indexOf(s.value)<0?(a=We(A)?je(e,s.value,null):je(e,s.value,A-1)).indexOf("\n")>-1&&(a=i?a.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),qe(o)){if(i&&r.match(/^\d+$/))return a;(o=JSON.stringify(""+r)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+a}function Ke(e){return"boolean"===typeof e}function We(e){return null===e}function Xe(e){return"string"===typeof e}function qe(e){return void 0===e}function ze(e){return $e(e)&&"[object RegExp]"===nt(e)}function $e(e){return"object"===typeof e&&null!==e}function et(e){return $e(e)&&"[object Date]"===nt(e)}function tt(e){return $e(e)&&("[object Error]"===nt(e)||e instanceof Error)}function At(e){return"function"===typeof e}function nt(e){return Object.prototype.toString.call(e)}function rt(e,t){if(!t||!$e(t))return e;for(var A=Object.keys(t),n=A.length;n--;)e[A[n]]=t[A[n]];return e}function it(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ot(){this.head=null,this.tail=null,this.length=0}He.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},He.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},ot.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},ot.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},ot.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},ot.prototype.clear=function(){this.head=this.tail=null,this.length=0},ot.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,A=""+t.data;t=t.next;)A+=e+t.data;return A},ot.prototype.concat=function(e){if(0===this.length)return F.alloc(0);if(1===this.length)return this.head.data;for(var t=F.allocUnsafe(e>>>0),A=this.head,n=0;A;)A.data.copy(t,n),n+=A.data.length,A=A.next;return t};var at=F.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function st(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),function(e){if(e&&!at(e))throw new Error("Unknown encoding: "+e)}(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=ct;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=ut;break;default:return void(this.write=gt)}this.charBuffer=new F(6),this.charReceived=0,this.charLength=0}function gt(e){return e.toString(this.encoding)}function ct(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function ut(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}st.prototype.write=function(e){for(var t="";this.charLength;){var A=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,A),this.charReceived+=A,this.charReceived<this.charLength)return"";if(e=e.slice(A,e.length),!((n=(t=this.charBuffer.slice(0,this.charLength).toString(this.encoding)).charCodeAt(t.length-1))>=55296&&n<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var n,r=e.length;if(this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,r),r-=this.charReceived),r=(t+=e.toString(this.encoding,0,r)).length-1,(n=t.charCodeAt(r))>=55296&&n<=56319){var i=this.surrogateSize;return this.charLength+=i,this.charReceived+=i,this.charBuffer.copy(this.charBuffer,i,0,i),e.copy(this.charBuffer,0,0,i),t.substring(0,r)}return t},st.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var A=e[e.length-t];if(1==t&&A>>5==6){this.charLength=2;break}if(t<=2&&A>>4==14){this.charLength=3;break}if(t<=3&&A>>3==30){this.charLength=4;break}}this.charReceived=t},st.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var A=this.charReceived,n=this.charBuffer,r=this.encoding;t+=n.slice(0,A).toString(r)}return t},ht.ReadableState=Ct;var lt,It=(lt="stream",qe(Te)&&(Te=Ue.env.NODE_DEBUG||""),lt=lt.toUpperCase(),Ze[lt]||(new RegExp("\\b"+lt+"\\b","i").test(Te)?Ze[lt]=function(){var e=Oe.apply(null,arguments);console.error("%s %d: %s",lt,0,e)}:Ze[lt]=function(){}),Ze[lt]);function Ct(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof Ht&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var A=e.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=A||0===A?A:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new ot,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new st(e.encoding),this.encoding=e.encoding)}function ht(e){if(!(this instanceof ht))return new ht(e);this._readableState=new Ct(e,this),this.readable=!0,e&&"function"===typeof e.read&&(this._read=e.read),n.call(this)}function ft(e,t,A,n,r){var i=function(e,t){var A=null;return ge(t)||"string"===typeof t||null===t||void 0===t||e.objectMode||(A=new TypeError("Invalid non-string/buffer chunk")),A}(t,A);if(i)e.emit("error",i);else if(null===A)t.reading=!1,function(e,t){if(!t.ended){if(t.decoder){var A=t.decoder.end();A&&A.length&&(t.buffer.push(A),t.length+=t.objectMode?1:A.length)}t.ended=!0,Bt(e)}}(e,t);else if(t.objectMode||A&&A.length>0)if(t.ended&&!r){var o=new Error("stream.push() after EOF");e.emit("error",o)}else if(t.endEmitted&&r){var a=new Error("stream.unshift() after end event");e.emit("error",a)}else{var s;!t.decoder||r||n||(A=t.decoder.write(A),s=!t.objectMode&&0===A.length),r||(t.reading=!1),s||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",A),e.read(0)):(t.length+=t.objectMode?1:A.length,r?t.buffer.unshift(A):t.buffer.push(A),t.needReadable&&Bt(e))),function(e,t){t.readingMore||(t.readingMore=!0,ye(Et,e,t))}(e,t)}else r||(t.reading=!1);return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(t)}function dt(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function Bt(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(It("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?ye(pt,e):pt(e))}function pt(e){It("emit readable"),e.emit("readable"),vt(e)}function Et(e,t){for(var A=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(It("maybeReadMore read 0"),e.read(0),A!==t.length);)A=t.length;t.readingMore=!1}function Qt(e){It("readable nexttick read 0"),e.read(0)}function yt(e,t){t.reading||(It("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),vt(e),t.flowing&&!t.reading&&e.read(0)}function vt(e){var t=e._readableState;for(It("flow",t.flowing);t.flowing&&null!==e.read(););}function mt(e,t){return 0===t.length?null:(t.objectMode?A=t.buffer.shift():!e||e>=t.length?(A=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):A=function(e,t,A){var n;return e<t.head.data.length?(n=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):n=e===t.head.data.length?t.shift():A?function(e,t){var A=t.head,n=1,r=A.data;for(e-=r.length;A=A.next;){var i=A.data,o=e>i.length?i.length:e;if(o===i.length?r+=i:r+=i.slice(0,e),0===(e-=o)){o===i.length?(++n,A.next?t.head=A.next:t.head=t.tail=null):(t.head=A,A.data=i.slice(o));break}++n}return t.length-=n,r}(e,t):function(e,t){var A=F.allocUnsafe(e),n=t.head,r=1;for(n.data.copy(A),e-=n.data.length;n=n.next;){var i=n.data,o=e>i.length?i.length:e;if(i.copy(A,A.length-e,0,o),0===(e-=o)){o===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(o));break}++r}return t.length-=r,A}(e,t),n}(e,t.buffer,t.decoder),A);var A}function bt(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,ye(wt,t,e))}function wt(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function St(e,t){for(var A=0,n=e.length;A<n;A++)if(e[A]===t)return A;return-1}function Ft(){}function Rt(e,t,A){this.chunk=e,this.encoding=t,this.callback=A,this.next=null}function Dt(e,t){Object.defineProperty(this,"buffer",{get:Le((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),e=e||{},this.objectMode=!!e.objectMode,t instanceof Ht&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var A=e.highWaterMark,n=this.objectMode?16:16384;this.highWaterMark=A||0===A?A:n,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var r=!1===e.decodeStrings;this.decodeStrings=!r,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var A=e._writableState,n=A.sync,r=A.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(A),t)!function(e,t,A,n,r){--t.pendingcb,A?ye(r,n):r(n),e._writableState.errorEmitted=!0,e.emit("error",n)}(e,A,n,t,r);else{var i=Ut(A);i||A.corked||A.bufferProcessing||!A.bufferedRequest||Nt(e,A),n?ye(xt,e,A,i,r):xt(e,A,i,r)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new Ot(this)}function Gt(e){if(!(this instanceof Gt)&&!(this instanceof Ht))return new Gt(e);this._writableState=new Dt(e,this),this.writable=!0,e&&("function"===typeof e.write&&(this._write=e.write),"function"===typeof e.writev&&(this._writev=e.writev)),n.call(this)}function kt(e,t,A,n,r,i,o){t.writelen=n,t.writecb=o,t.writing=!0,t.sync=!0,A?e._writev(r,t.onwrite):e._write(r,i,t.onwrite),t.sync=!1}function xt(e,t,A,n){A||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),Mt(e,t)}function Nt(e,t){t.bufferProcessing=!0;var A=t.bufferedRequest;if(e._writev&&A&&A.next){var n=t.bufferedRequestCount,r=new Array(n),i=t.corkedRequestsFree;i.entry=A;for(var o=0;A;)r[o]=A,A=A.next,o+=1;kt(e,t,!0,t.length,r,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new Ot(t)}else{for(;A;){var a=A.chunk,s=A.encoding,g=A.callback;if(kt(e,t,!1,t.objectMode?1:a.length,a,s,g),A=A.next,t.writing)break}null===A&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=A,t.bufferProcessing=!1}function Ut(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _t(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function Mt(e,t){var A=Ut(t);return A&&(0===t.pendingcb?(_t(e,t),t.finished=!0,e.emit("finish")):_t(e,t)),A}function Ot(e){var t=this;this.next=null,this.entry=null,this.finish=function(A){var n=t.entry;for(t.entry=null;n;){var r=n.callback;e.pendingcb--,r(A),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}_e(ht,n),ht.prototype.push=function(e,t){var A=this._readableState;return A.objectMode||"string"!==typeof e||(t=t||A.defaultEncoding)!==A.encoding&&(e=F.from(e,t),t=""),ft(this,A,e,t,!1)},ht.prototype.unshift=function(e){return ft(this,this._readableState,e,"",!0)},ht.prototype.isPaused=function(){return!1===this._readableState.flowing},ht.prototype.setEncoding=function(e){return this._readableState.decoder=new st(e),this._readableState.encoding=e,this},ht.prototype.read=function(e){It("read",e),e=parseInt(e,10);var t=this._readableState,A=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return It("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?bt(this):Bt(this),null;if(0===(e=dt(e,t))&&t.ended)return 0===t.length&&bt(this),null;var n,r=t.needReadable;return It("need readable",r),(0===t.length||t.length-e<t.highWaterMark)&&It("length less than watermark",r=!0),t.ended||t.reading?It("reading or ended",r=!1):r&&(It("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=dt(A,t))),null===(n=e>0?mt(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),A!==e&&t.ended&&bt(this)),null!==n&&this.emit("data",n),n},ht.prototype._read=function(e){this.emit("error",new Error("not implemented"))},ht.prototype.pipe=function(e,t){var A=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,It("pipe count=%d opts=%j",n.pipesCount,t);var r=t&&!1===t.end?g:o;function i(e){It("onunpipe"),e===A&&g()}function o(){It("onend"),e.end()}n.endEmitted?ye(r):A.once("end",r),e.on("unpipe",i);var a=function(e){return function(){var t=e._readableState;It("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&e.listeners("data").length&&(t.flowing=!0,vt(e))}}(A);e.on("drain",a);var s=!1;function g(){It("cleanup"),e.removeListener("close",I),e.removeListener("finish",C),e.removeListener("drain",a),e.removeListener("error",l),e.removeListener("unpipe",i),A.removeListener("end",o),A.removeListener("end",g),A.removeListener("data",u),s=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||a()}var c=!1;function u(t){It("ondata"),c=!1,!1!==e.write(t)||c||((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==St(n.pipes,e))&&!s&&(It("false write response, pause",A._readableState.awaitDrain),A._readableState.awaitDrain++,c=!0),A.pause())}function l(t){It("onerror",t),h(),e.removeListener("error",l),0===function(e,t){return e.listeners(t).length}(e,"error")&&e.emit("error",t)}function I(){e.removeListener("finish",C),h()}function C(){It("onfinish"),e.removeListener("close",I),h()}function h(){It("unpipe"),A.unpipe(e)}return A.on("data",u),function(e,t,A){if("function"===typeof e.prependListener)return e.prependListener(t,A);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(A):e._events[t]=[A,e._events[t]]:e.on(t,A)}(e,"error",l),e.once("close",I),e.once("finish",C),e.emit("pipe",A),n.flowing||(It("pipe resume"),A.resume()),e},ht.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this)),this;if(!e){var A=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var r=0;r<n;r++)A[r].emit("unpipe",this);return this}var i=St(t.pipes,e);return-1===i||(t.pipes.splice(i,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this)),this},ht.prototype.on=function(e,t){var A=n.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&Bt(this):ye(Qt,this))}return A},ht.prototype.addListener=ht.prototype.on,ht.prototype.resume=function(){var e=this._readableState;return e.flowing||(It("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,ye(yt,e,t))}(this,e)),this},ht.prototype.pause=function(){return It("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(It("pause"),this._readableState.flowing=!1,this.emit("pause")),this},ht.prototype.wrap=function(e){var t=this._readableState,A=!1,n=this;for(var r in e.on("end",(function(){if(It("wrapped end"),t.decoder&&!t.ended){var e=t.decoder.end();e&&e.length&&n.push(e)}n.push(null)})),e.on("data",(function(r){It("wrapped data"),t.decoder&&(r=t.decoder.write(r)),(!t.objectMode||null!==r&&void 0!==r)&&(t.objectMode||r&&r.length)&&(n.push(r)||(A=!0,e.pause()))})),e)void 0===this[r]&&"function"===typeof e[r]&&(this[r]=function(t){return function(){return e[t].apply(e,arguments)}}(r));return function(e,t){for(var A=0,n=e.length;A<n;A++)t(e[A],A)}(["error","close","destroy","pause","resume"],(function(t){e.on(t,n.emit.bind(n,t))})),n._read=function(t){It("wrapped _read",t),A&&(A=!1,e.resume())},n},ht._fromList=mt,Gt.WritableState=Dt,_e(Gt,n),Dt.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},Gt.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Gt.prototype.write=function(e,t,A){var n=this._writableState,r=!1;return"function"===typeof t&&(A=t,t=null),F.isBuffer(e)?t="buffer":t||(t=n.defaultEncoding),"function"!==typeof A&&(A=Ft),n.ended?function(e,t){var A=new Error("write after end");e.emit("error",A),ye(t,A)}(this,A):function(e,t,A,n){var r=!0,i=!1;return null===A?i=new TypeError("May not write null values to stream"):F.isBuffer(A)||"string"===typeof A||void 0===A||t.objectMode||(i=new TypeError("Invalid non-string/buffer chunk")),i&&(e.emit("error",i),ye(n,i),r=!1),r}(this,n,e,A)&&(n.pendingcb++,r=function(e,t,A,n,r){A=function(e,t,A){return e.objectMode||!1===e.decodeStrings||"string"!==typeof t||(t=F.from(t,A)),t}(t,A,n),F.isBuffer(A)&&(n="buffer");var i=t.objectMode?1:A.length;t.length+=i;var o=t.length<t.highWaterMark;if(o||(t.needDrain=!0),t.writing||t.corked){var a=t.lastBufferedRequest;t.lastBufferedRequest=new Rt(A,n,r),a?a.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else kt(e,t,!1,i,A,n,r);return o}(this,n,e,t,A)),r},Gt.prototype.cork=function(){this._writableState.corked++},Gt.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||Nt(this,e))},Gt.prototype.setDefaultEncoding=function(e){if("string"===typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Gt.prototype._write=function(e,t,A){A(new Error("not implemented"))},Gt.prototype._writev=null,Gt.prototype.end=function(e,t,A){var n=this._writableState;"function"===typeof e?(A=e,e=null,t=null):"function"===typeof t&&(A=t,t=null),null!==e&&void 0!==e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,A){t.ending=!0,Mt(e,t),A&&(t.finished?ye(A):e.once("finish",A)),t.ended=!0,e.writable=!1}(this,n,A)},_e(Ht,ht);for(var Lt=Object.keys(Gt.prototype),Tt=0;Tt<Lt.length;Tt++){var Zt=Lt[Tt];Ht.prototype[Zt]||(Ht.prototype[Zt]=Gt.prototype[Zt])}function Ht(e){if(!(this instanceof Ht))return new Ht(e);ht.call(this,e),Gt.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",Yt)}function Yt(){this.allowHalfOpen||this._writableState.ended||ye(Jt,this)}function Jt(e){e.end()}function jt(e){this.afterTransform=function(t,A){return function(e,t,A){var n=e._transformState;n.transforming=!1;var r=n.writecb;if(!r)return e.emit("error",new Error("no writecb in Transform class"));n.writechunk=null,n.writecb=null,null!==A&&void 0!==A&&e.push(A),r(t);var i=e._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&e._read(i.highWaterMark)}(e,t,A)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function Pt(e){if(!(this instanceof Pt))return new Pt(e);Ht.call(this,e),this._transformState=new jt(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"===typeof e.transform&&(this._transform=e.transform),"function"===typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",(function(){"function"===typeof this._flush?this._flush((function(e){Vt(t,e)})):Vt(t)}))}function Vt(e,t){if(t)return e.emit("error",t);var A=e._writableState,n=e._transformState;if(A.length)throw new Error("Calling transform done when ws.length != 0");if(n.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}function Kt(e){if(!(this instanceof Kt))return new Kt(e);Pt.call(this,e)}function Wt(){n.call(this)}function Xt(e){return(Xt="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function qt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function zt(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function $t(e,t,A){return t&&zt(e.prototype,t),A&&zt(e,A),e}function eA(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&AA(e,t)}function tA(e){return(tA=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function AA(e,t){return(AA=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function nA(e,t){return!t||"object"!==typeof t&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function rA(e){return function(e){if(Array.isArray(e)){for(var t=0,A=new Array(e.length);t<e.length;t++)A[t]=e[t];return A}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}_e(Pt,Ht),Pt.prototype.push=function(e,t){return this._transformState.needTransform=!1,Ht.prototype.push.call(this,e,t)},Pt.prototype._transform=function(e,t,A){throw new Error("Not implemented")},Pt.prototype._write=function(e,t,A){var n=this._transformState;if(n.writecb=A,n.writechunk=e,n.writeencoding=t,!n.transforming){var r=this._readableState;(n.needTransform||r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}},Pt.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},_e(Kt,Pt),Kt.prototype._transform=function(e,t,A){A(null,e)},_e(Wt,n),Wt.Readable=ht,Wt.Writable=Gt,Wt.Duplex=Ht,Wt.Transform=Pt,Wt.PassThrough=Kt,Wt.Stream=Wt,Wt.prototype.pipe=function(e,t){var A=this;function r(t){e.writable&&!1===e.write(t)&&A.pause&&A.pause()}function i(){A.readable&&A.resume&&A.resume()}A.on("data",r),e.on("drain",i),e._isStdio||t&&!1===t.end||(A.on("end",a),A.on("close",s));var o=!1;function a(){o||(o=!0,e.end())}function s(){o||(o=!0,"function"===typeof e.destroy&&e.destroy())}function g(e){if(c(),0===n.listenerCount(this,"error"))throw e}function c(){A.removeListener("data",r),e.removeListener("drain",i),A.removeListener("end",a),A.removeListener("close",s),A.removeListener("error",g),e.removeListener("error",g),A.removeListener("end",c),A.removeListener("close",c),e.removeListener("close",c)}return A.on("error",g),e.on("error",g),A.on("end",c),A.on("close",c),e.on("close",c),e.emit("pipe",A),e};var iA="\n",oA="undefined"!==typeof window?window:"undefined"!==typeof e?e:"undefined"!==typeof self?self:{},aA=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,sA=/^\w*$/,gA=/^\./,cA=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,uA=/\\(\\)?/g,lA=/^\[object .+?Constructor\]$/,IA="object"==typeof oA&&oA&&oA.Object===Object&&oA,CA="object"==typeof self&&self&&self.Object===Object&&self,hA=IA||CA||Function("return this")(),fA=Array.prototype,dA=Function.prototype,BA=Object.prototype,pA=hA["__core-js_shared__"],EA=function(){var e=/[^.]+$/.exec(pA&&pA.keys&&pA.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),QA=dA.toString,yA=BA.hasOwnProperty,vA=BA.toString,mA=RegExp("^"+QA.call(yA).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),bA=hA.Symbol,wA=fA.splice,SA=OA(hA,"Map"),FA=OA(Object,"create"),RA=bA?bA.prototype:void 0,DA=RA?RA.toString:void 0;function GA(e){var t=-1,A=e?e.length:0;for(this.clear();++t<A;){var n=e[t];this.set(n[0],n[1])}}function kA(e){var t=-1,A=e?e.length:0;for(this.clear();++t<A;){var n=e[t];this.set(n[0],n[1])}}function xA(e){var t=-1,A=e?e.length:0;for(this.clear();++t<A;){var n=e[t];this.set(n[0],n[1])}}function NA(e,t){for(var A,n,r=e.length;r--;)if((A=e[r][0])===(n=t)||A!==A&&n!==n)return r;return-1}function UA(e,t){for(var A,n=0,r=(t=function(e,t){if(HA(e))return!1;var A=typeof e;return!("number"!=A&&"symbol"!=A&&"boolean"!=A&&null!=e&&!JA(e))||(sA.test(e)||!aA.test(e)||null!=t&&e in Object(t))}(t,e)?[t]:HA(A=t)?A:LA(A)).length;null!=e&&n<r;)e=e[TA(t[n++])];return n&&n==r?e:void 0}function _A(e){return!(!YA(e)||(t=e,EA&&EA in t))&&(function(e){var t=YA(e)?vA.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(A){}return t}(e)?mA:lA).test(function(e){if(null!=e){try{return QA.call(e)}catch(t){}try{return e+""}catch(t){}}return""}(e));var t}function MA(e,t){var A=e.__data__;return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?A["string"==typeof t?"string":"hash"]:A.map}function OA(e,t){var A=function(e,t){return null==e?void 0:e[t]}(e,t);return _A(A)?A:void 0}GA.prototype.clear=function(){this.__data__=FA?FA(null):{}},GA.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},GA.prototype.get=function(e){var t=this.__data__;if(FA){var A=t[e];return"__lodash_hash_undefined__"===A?void 0:A}return yA.call(t,e)?t[e]:void 0},GA.prototype.has=function(e){var t=this.__data__;return FA?void 0!==t[e]:yA.call(t,e)},GA.prototype.set=function(e,t){return this.__data__[e]=FA&&void 0===t?"__lodash_hash_undefined__":t,this},kA.prototype.clear=function(){this.__data__=[]},kA.prototype.delete=function(e){var t=this.__data__,A=NA(t,e);return!(A<0)&&(A==t.length-1?t.pop():wA.call(t,A,1),!0)},kA.prototype.get=function(e){var t=this.__data__,A=NA(t,e);return A<0?void 0:t[A][1]},kA.prototype.has=function(e){return NA(this.__data__,e)>-1},kA.prototype.set=function(e,t){var A=this.__data__,n=NA(A,e);return n<0?A.push([e,t]):A[n][1]=t,this},xA.prototype.clear=function(){this.__data__={hash:new GA,map:new(SA||kA),string:new GA}},xA.prototype.delete=function(e){return MA(this,e).delete(e)},xA.prototype.get=function(e){return MA(this,e).get(e)},xA.prototype.has=function(e){return MA(this,e).has(e)},xA.prototype.set=function(e,t){return MA(this,e).set(e,t),this};var LA=ZA((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(JA(e))return DA?DA.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(t);var A=[];return gA.test(e)&&A.push(""),e.replace(cA,(function(e,t,n,r){A.push(n?r.replace(uA,"$1"):t||e)})),A}));function TA(e){if("string"==typeof e||JA(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function ZA(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var A=function A(){var n=arguments,r=t?t.apply(this,n):n[0],i=A.cache;if(i.has(r))return i.get(r);var o=e.apply(this,n);return A.cache=i.set(r,o),o};return A.cache=new(ZA.Cache||xA),A}ZA.Cache=xA;var HA=Array.isArray;function YA(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function JA(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==vA.call(e)}var jA=function(e,t,A){var n=null==e?void 0:UA(e,t);return void 0===n?A:n},PA=function(e,t){var A=!0;return e.reduce((function(e,n){return null!==n&&void 0!==n||(n=""),A?(A=!1,"".concat(n)):"".concat(e).concat(t).concat(n)}),"")},VA=function(e,t){try{return e.push.apply(e,rA(t)),e}catch(A){return e.concat(t)}},KA=function(e,t,A){return void 0===e[t]||null===e[t]?A:e[t]},WA=function e(t,A,n){var r=Array.isArray(A)?A:A.split("."),i=r[0],o=r.length>1?e(t[i]||{},r.slice(1),n):n;return Object.assign({},t,function(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}({},i,o))},XA=PA,qA=VA,zA=function(){function e(t){qt(this,e),this.opts=this.preprocessOpts(t),this.preprocessRow=this.memoizePreprocessRow()}return $t(e,[{key:"preprocessOpts",value:function(e){var t=Object.assign({},e);return t.unwind=Array.isArray(t.unwind)?t.unwind:t.unwind?[t.unwind]:[],t.delimiter=t.delimiter||",",t.flattenSeparator=t.flattenSeparator||".",t.eol=t.eol||iA,t.quote="string"===typeof t.quote?e.quote:'"',t.doubleQuote="string"===typeof t.doubleQuote?t.doubleQuote:t.quote+t.quote,t.header=!1!==t.header,t.includeEmptyRows=t.includeEmptyRows||!1,t.withBOM=t.withBOM||!1,t}},{key:"preprocessFieldsInfo",value:function(e){var t=this;return e.map((function(e){if("string"===typeof e)return{label:e,value:e.includes(".")||e.includes("[")?function(A){return jA(A,e,t.opts.defaultValue)}:function(A){return KA(A,e,t.opts.defaultValue)},stringify:!0};if("object"===Xt(e)){var A="default"in e?e.default:t.opts.defaultValue;if("string"===typeof e.value)return{label:e.label||e.value,value:e.value.includes(".")||e.value.includes("[")?function(t){return jA(t,e.value,A)}:function(t){return KA(t,e.value,A)},stringify:void 0===e.stringify||e.stringify};if("function"===typeof e.value){var n=e.label||e.value.name||"",r={label:n,default:A};return{label:n,value:function(t){var n=e.value(t,r);return null===n||void 0===n?A:n},stringify:void 0===e.stringify||e.stringify}}}throw new Error("Invalid field info option. "+JSON.stringify(e))}))}},{key:"getHeader",value:function(){var e=this;return XA(this.opts.fields.map((function(t){return e.processValue(t.label,!0)})),this.opts.delimiter)}},{key:"memoizePreprocessRow",value:function(){return this.opts.unwind&&this.opts.unwind.length?this.opts.flatten?function(e){var t=this;return this.unwindData(e,this.opts.unwind).map((function(e){return t.flatten(e,t.opts.flattenSeparator)}))}:function(e){return this.unwindData(e,this.opts.unwind)}:this.opts.flatten?function(e){return[this.flatten(e,this.opts.flattenSeparator)]}:function(e){return[e]}}},{key:"preprocessRow",value:function(){}},{key:"processRow",value:function(e){var t=this;if(e){var A=this.opts.fields.map((function(A){return t.processCell(e,A)}));if(this.opts.includeEmptyRows||!A.every((function(e){return void 0===e})))return XA(A,this.opts.delimiter)}}},{key:"processCell",value:function(e,t){return this.processValue(t.value(e),t.stringify)}},{key:"processValue",value:function(e,t){if(null!==e&&void 0!==e){var A=Xt(e);if("boolean"!==A&&"number"!==A&&"string"!==A){if(void 0===(e=JSON.stringify(e)))return;'"'===e[0]&&(e=e.replace(/^"(.+)"$/,"$1"))}return"string"===typeof e&&(e.includes(this.opts.quote)&&(e=e.replace(new RegExp(this.opts.quote,"g"),this.opts.doubleQuote)),e=t?"".concat(this.opts.quote).concat(e).concat(this.opts.quote):e.replace(new RegExp("^".concat(this.opts.doubleQuote)),this.opts.quote).replace(new RegExp("".concat(this.opts.doubleQuote,"$")),this.opts.quote),this.opts.excelStrings&&(e='"="'.concat(e,'""'))),e}}},{key:"flatten",value:function(e,t){return function e(A,n,r){return Object.keys(A).forEach((function(i){var o=A[i],a=r?"".concat(r).concat(t).concat(i):i;"object"===Xt(o)&&null!==o&&!Array.isArray(o)&&"[object Function]"!==Object.prototype.toString.call(o.toJSON)&&Object.keys(o).length?e(o,n,a):n[a]=o})),n}(e,{})}},{key:"unwindData",value:function(e,t){var A=this;return t.reduce((function(e,t){return e.map((function(e){var n=jA(e,t);return Array.isArray(n)?n.length?n.map((function(n,r){var i=A.opts.unwindBlank&&r>0?{}:e;return WA(i,t,n)})):WA(e,t,void 0):e})).reduce(qA,[])}),[e])}}]),e}(),$A=PA,en=VA,tn=function(e){function t(e){var A;return qt(this,t),(A=nA(this,tA(t).call(this,e))).opts.fields&&(A.opts.fields=A.preprocessFieldsInfo(A.opts.fields)),A}return eA(t,e),$t(t,[{key:"parse",value:function(e){var t=this.preprocessData(e);this.opts.fields||(this.opts.fields=t.reduce((function(e,t){return Object.keys(t).forEach((function(t){e.includes(t)||e.push(t)})),e}),[]),this.opts.fields=this.preprocessFieldsInfo(this.opts.fields));var A=this.opts.header?this.getHeader():"",n=this.processData(t);return(this.opts.withBOM?"\ufeff":"")+A+(A&&n?this.opts.eol:"")+n}},{key:"preprocessData",value:function(e){var t=this,A=Array.isArray(e)?e:[e];if(!this.opts.fields&&(0===A.length||"object"!==Xt(A[0])))throw new Error('Data should not be empty or the "fields" option should be included');return this.opts.unwind&&this.opts.unwind.length||this.opts.flatten?A.map((function(e){return t.preprocessRow(e)})).reduce(en,[]):A}},{key:"processData",value:function(e){var t=this;return $A(e.map((function(e){return t.processRow(e)})).filter((function(e){return e})),this.opts.eol)}}]),t}(zA),An={},nn=An.LEFT_BRACE=1,rn=An.RIGHT_BRACE=2,on=An.LEFT_BRACKET=3,an=An.RIGHT_BRACKET=4,sn=An.COLON=5,gn=An.COMMA=6,cn=An.TRUE=7,un=An.FALSE=8,ln=An.NULL=9,In=An.STRING=10,Cn=An.NUMBER=11,hn=An.START=17,fn=An.STOP=18,dn=An.TRUE1=33,Bn=An.TRUE2=34,pn=An.TRUE3=35,En=An.FALSE1=49,Qn=An.FALSE2=50,yn=An.FALSE3=51,vn=An.FALSE4=52,mn=An.NULL1=65,bn=An.NULL2=66,wn=An.NULL3=67,Sn=An.NUMBER1=81,Fn=An.NUMBER3=83,Rn=An.STRING1=97,Dn=An.STRING2=98,Gn=An.STRING3=99,kn=An.STRING4=100,xn=An.STRING5=101,Nn=An.STRING6=102,Un=An.VALUE=113,_n=An.KEY=114,Mn=An.OBJECT=129,On=An.ARRAY=130,Ln="\\".charCodeAt(0),Tn="/".charCodeAt(0),Zn="\b".charCodeAt(0),Hn="\f".charCodeAt(0),Yn="\n".charCodeAt(0),Jn="\r".charCodeAt(0),jn="\t".charCodeAt(0);function Pn(){this.tState=hn,this.value=void 0,this.string=void 0,this.stringBuffer=F.alloc?F.alloc(65536):new F(65536),this.stringBufferOffset=0,this.unicode=void 0,this.highSurrogate=void 0,this.key=void 0,this.mode=void 0,this.stack=[],this.state=Un,this.bytes_remaining=0,this.bytes_in_sequence=0,this.temp_buffs={2:new F(2),3:new F(3),4:new F(4)},this.offset=-1}Pn.toknam=function(e){for(var t=Object.keys(An),A=0,n=t.length;A<n;A++){var r=t[A];if(An[r]===e)return r}return e&&"0x"+e.toString(16)};var Vn=Pn.prototype;Vn.onError=function(e){throw e},Vn.charError=function(e,t){this.tState=fn,this.onError(new Error("Unexpected "+JSON.stringify(String.fromCharCode(e[t]))+" at position "+t+" in state "+Pn.toknam(this.tState)))},Vn.appendStringChar=function(e){this.stringBufferOffset>=65536&&(this.string+=this.stringBuffer.toString("utf8"),this.stringBufferOffset=0),this.stringBuffer[this.stringBufferOffset++]=e},Vn.appendStringBuf=function(e,t,A){var n=e.length;"number"===typeof t&&(n="number"===typeof A?A<0?e.length-t+A:A-t:e.length-t),n<0&&(n=0),this.stringBufferOffset+n>65536&&(this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0),e.copy(this.stringBuffer,this.stringBufferOffset,t,A),this.stringBufferOffset+=n},Vn.write=function(e){var t;"string"===typeof e&&(e=new F(e));for(var A=0,n=e.length;A<n;A++)if(this.tState===hn){if(t=e[A],this.offset++,123===t)this.onToken(nn,"{");else if(125===t)this.onToken(rn,"}");else if(91===t)this.onToken(on,"[");else if(93===t)this.onToken(an,"]");else if(58===t)this.onToken(sn,":");else if(44===t)this.onToken(gn,",");else if(116===t)this.tState=dn;else if(102===t)this.tState=En;else if(110===t)this.tState=mn;else if(34===t)this.string="",this.stringBufferOffset=0,this.tState=Rn;else if(45===t)this.string="-",this.tState=Sn;else if(t>=48&&t<64)this.string=String.fromCharCode(t),this.tState=Fn;else if(32!==t&&9!==t&&10!==t&&13!==t)return this.charError(e,A)}else if(this.tState===Rn)if(t=e[A],this.bytes_remaining>0){for(var r=0;r<this.bytes_remaining;r++)this.temp_buffs[this.bytes_in_sequence][this.bytes_in_sequence-this.bytes_remaining+r]=e[r];this.appendStringBuf(this.temp_buffs[this.bytes_in_sequence]),this.bytes_in_sequence=this.bytes_remaining=0,A=A+r-1}else if(0===this.bytes_remaining&&t>=128){if(t<=193||t>244)return this.onError(new Error("Invalid UTF-8 character at position "+A+" in state "+Pn.toknam(this.tState)));if(t>=194&&t<=223&&(this.bytes_in_sequence=2),t>=224&&t<=239&&(this.bytes_in_sequence=3),t>=240&&t<=244&&(this.bytes_in_sequence=4),this.bytes_in_sequence+A>e.length){for(var i=0;i<=e.length-1-A;i++)this.temp_buffs[this.bytes_in_sequence][i]=e[A+i];this.bytes_remaining=A+this.bytes_in_sequence-e.length,A=e.length-1}else this.appendStringBuf(e,A,A+this.bytes_in_sequence),A=A+this.bytes_in_sequence-1}else if(34===t)this.tState=hn,this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0,this.onToken(In,this.string),this.offset+=F.byteLength(this.string,"utf8")+1,this.string=void 0;else if(92===t)this.tState=Dn;else{if(!(t>=32))return this.charError(e,A);this.appendStringChar(t)}else if(this.tState===Dn)if(34===(t=e[A]))this.appendStringChar(t),this.tState=Rn;else if(92===t)this.appendStringChar(Ln),this.tState=Rn;else if(47===t)this.appendStringChar(Tn),this.tState=Rn;else if(98===t)this.appendStringChar(Zn),this.tState=Rn;else if(102===t)this.appendStringChar(Hn),this.tState=Rn;else if(110===t)this.appendStringChar(Yn),this.tState=Rn;else if(114===t)this.appendStringChar(Jn),this.tState=Rn;else if(116===t)this.appendStringChar(jn),this.tState=Rn;else{if(117!==t)return this.charError(e,A);this.unicode="",this.tState=Gn}else if(this.tState===Gn||this.tState===kn||this.tState===xn||this.tState===Nn){if(!((t=e[A])>=48&&t<64||t>64&&t<=70||t>96&&t<=102))return this.charError(e,A);if(this.unicode+=String.fromCharCode(t),this.tState++===Nn){var o=parseInt(this.unicode,16);this.unicode=void 0,void 0!==this.highSurrogate&&o>=56320&&o<57344?(this.appendStringBuf(new F(String.fromCharCode(this.highSurrogate,o))),this.highSurrogate=void 0):void 0===this.highSurrogate&&o>=55296&&o<56320?this.highSurrogate=o:(void 0!==this.highSurrogate&&(this.appendStringBuf(new F(String.fromCharCode(this.highSurrogate))),this.highSurrogate=void 0),this.appendStringBuf(new F(String.fromCharCode(o)))),this.tState=Rn}}else if(this.tState===Sn||this.tState===Fn)switch(t=e[A]){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 46:case 101:case 69:case 43:case 45:this.string+=String.fromCharCode(t),this.tState=Fn;break;default:this.tState=hn;var a=Number(this.string);if(isNaN(a))return this.charError(e,A);this.string.match(/[0-9]+/)==this.string&&a.toString()!=this.string?this.onToken(In,this.string):this.onToken(Cn,a),this.offset+=this.string.length-1,this.string=void 0,A--}else if(this.tState===dn){if(114!==e[A])return this.charError(e,A);this.tState=Bn}else if(this.tState===Bn){if(117!==e[A])return this.charError(e,A);this.tState=pn}else if(this.tState===pn){if(101!==e[A])return this.charError(e,A);this.tState=hn,this.onToken(cn,!0),this.offset+=3}else if(this.tState===En){if(97!==e[A])return this.charError(e,A);this.tState=Qn}else if(this.tState===Qn){if(108!==e[A])return this.charError(e,A);this.tState=yn}else if(this.tState===yn){if(115!==e[A])return this.charError(e,A);this.tState=vn}else if(this.tState===vn){if(101!==e[A])return this.charError(e,A);this.tState=hn,this.onToken(un,!1),this.offset+=4}else if(this.tState===mn){if(117!==e[A])return this.charError(e,A);this.tState=bn}else if(this.tState===bn){if(108!==e[A])return this.charError(e,A);this.tState=wn}else if(this.tState===wn){if(108!==e[A])return this.charError(e,A);this.tState=hn,this.onToken(ln,null),this.offset+=3}},Vn.onToken=function(e,t){},Vn.parseError=function(e,t){this.tState=fn,this.onError(new Error("Unexpected "+Pn.toknam(e)+(t?"("+JSON.stringify(t)+")":"")+" in state "+Pn.toknam(this.state)))},Vn.push=function(){this.stack.push({value:this.value,key:this.key,mode:this.mode})},Vn.pop=function(){var e=this.value,t=this.stack.pop();this.value=t.value,this.key=t.key,this.mode=t.mode,this.emit(e),this.mode||(this.state=Un)},Vn.emit=function(e){this.mode&&(this.state=gn),this.onValue(e)},Vn.onValue=function(e){},Vn.onToken=function(e,t){if(this.state===Un)if(e===In||e===Cn||e===cn||e===un||e===ln)this.value&&(this.value[this.key]=t),this.emit(t);else if(e===nn)this.push(),this.value?this.value=this.value[this.key]={}:this.value={},this.key=void 0,this.state=_n,this.mode=Mn;else if(e===on)this.push(),this.value?this.value=this.value[this.key]=[]:this.value=[],this.key=0,this.mode=On,this.state=Un;else if(e===rn){if(this.mode!==Mn)return this.parseError(e,t);this.pop()}else{if(e!==an)return this.parseError(e,t);if(this.mode!==On)return this.parseError(e,t);this.pop()}else if(this.state===_n)if(e===In)this.key=t,this.state=sn;else{if(e!==rn)return this.parseError(e,t);this.pop()}else if(this.state===sn){if(e!==sn)return this.parseError(e,t);this.state=Un}else{if(this.state!==gn)return this.parseError(e,t);if(e===gn)this.mode===On?(this.key++,this.state=Un):this.mode===Mn&&(this.state=_n);else{if(!(e===an&&this.mode===On||e===rn&&this.mode===Mn))return this.parseError(e,t);this.pop()}}},Pn.C=An;var Kn=Pn,Wn=function(e){function t(e,A){var n;return qt(this,t),n=nA(this,tA(t).call(this,A)),Object.getOwnPropertyNames(zA.prototype).forEach((function(e){return n[e]=zA.prototype[e]})),n.opts=n.preprocessOpts(e),n.preprocessRow=n.memoizePreprocessRow(),n._data="",n._hasWritten=!1,n._readableState.objectMode?n.initObjectModeParse():n.opts.ndjson?n.initNDJSONParse():n.initJSONParser(),n.opts.withBOM&&n.push("\ufeff"),n.opts.fields&&(n.opts.fields=n.preprocessFieldsInfo(n.opts.fields),n.pushHeader()),n}return eA(t,e),$t(t,[{key:"initObjectModeParse",value:function(){var e=this;this.parser={write:function(t){e.pushLine(t)},getPendingData:function(){}}}},{key:"initNDJSONParse",value:function(){var e=this;this.parser={_data:"",write:function(t){this._data+=t.toString();var A=this._data.split("\n").map((function(e){return e.trim()})).filter((function(e){return""!==e})),n=!1;A.forEach((function(t,r){try{e.pushLine(JSON.parse(t))}catch(i){r===A.length-1?n=!0:(i.message="Invalid JSON ("+t+")",e.emit("error",i))}})),this._data=n?this._data.slice(this._data.lastIndexOf("\n")):""},getPendingData:function(){return this._data}}}},{key:"initJSONParser",value:function(){var e=this;this.parser=new Kn,this.parser.onValue=function(t){this.stack.length===this.depthToEmit&&e.pushLine(t)},this.parser._onToken=this.parser.onToken,this.parser.onToken=function(t,A){e.parser._onToken(t,A),0!==this.stack.length||e.opts.fields||this.mode===Kn.C.ARRAY||this.mode===Kn.C.OBJECT||this.onError(new Error('Data should not be empty or the "fields" option should be included')),1===this.stack.length&&(void 0===this.depthToEmit&&(this.depthToEmit=this.mode===Kn.C.ARRAY?1:0),0!==this.depthToEmit&&1===this.stack.length&&(this.value=void 0))},this.parser.getPendingData=function(){return this.value},this.parser.onError=function(t){t.message.includes("Unexpected")&&(t.message="Invalid JSON ("+t.message+")"),e.emit("error",t)}}},{key:"_transform",value:function(e,t,A){this.parser.write(e),A()}},{key:"_flush",value:function(e){this.parser.getPendingData()&&e(new Error("Invalid data received from stdin",this.parser.getPendingData())),e()}},{key:"pushHeader",value:function(){if(this.opts.header){var e=this.getHeader();this.emit("header",e),this.push(e),this._hasWritten=!0}}},{key:"pushLine",value:function(e){var t=this,A=this.preprocessRow(e);this._hasWritten||(this.opts.fields=this.opts.fields||this.preprocessFieldsInfo(Object.keys(A[0])),this.pushHeader()),A.forEach((function(e){var A=t.processRow(e,t.opts);void 0!==A&&(t.emit("line",A),t.push(t._hasWritten?t.opts.eol+A:A),t._hasWritten=!0)}))}}]),t}(Wt.Transform),Xn=Wt.Transform,qn=PA,zn=function(){function e(t,A){qt(this,e),this.input=new Xn(A),this.input._read=function(){},this.transform=new Wn(t,A),this.processor=this.input.pipe(this.transform)}return $t(e,[{key:"fromInput",value:function(e){if(this._input)throw new Error("Async parser already has an input.");return this._input=e,this.input=this._input.pipe(this.processor),this}},{key:"throughTransform",value:function(e){if(this._output)throw new Error("Can't add transforms once an output has been added.");return this.processor=this.processor.pipe(e),this}},{key:"toOutput",value:function(e){if(this._output)throw new Error("Async parser already has an output.");return this._output=e,this.processor=this.processor.pipe(e),this}},{key:"promise",value:function(){var e=this;return new Promise((function(t,A){var n=[];e.processor.on("data",(function(e){return n.push(e.toString())})).on("finish",(function(){return t(qn(n,""))})).on("error",(function(e){return A(e)}))}))}}]),e}(),$n=Wt.Readable,er=tn,tr=zn,Ar=Wn,nr=function(e,t){return new tn(t).parse(e)},rr=function(e,t,A){try{e instanceof $n||(A=Object.assign({},A,{objectMode:!0}));var n=new zn(t,A),r=n.promise();return Array.isArray(e)?(e.forEach((function(e){return n.input.push(e)})),n.input.push(null)):e instanceof $n?n.fromInput(e):(n.input.push(e),n.input.push(null)),r}catch(i){return Promise.reject(i)}},ir={Parser:er,AsyncParser:tr,Transform:Ar,parse:nr,parseAsync:rr};t.default=ir,t.Parser=er,t.AsyncParser=tr,t.Transform=Ar,t.parse=nr,t.parseAsync=rr,Object.defineProperty(t,"__esModule",{value:!0})})(t)}).call(this,A(86))},function(e,t,A){"use strict";var n=A(876),r=A(877),i=A(878),o=A(881).orient2d;function a(e,t,A){t=Math.max(0,void 0===t?2:t),A=A||0;var r=function(e){for(var t=e[0],A=e[0],n=e[0],r=e[0],o=0;o<e.length;o++){var a=e[o];a[0]<t[0]&&(t=a),a[0]>n[0]&&(n=a),a[1]<A[1]&&(A=a),a[1]>r[1]&&(r=a)}var s=[t,A,n,r],g=s.slice();for(o=0;o<e.length;o++)i(e[o],s)||g.push(e[o]);return function(e){e.sort(p);for(var t=[],A=0;A<e.length;A++){for(;t.length>=2&&I(t[t.length-2],t[t.length-1],e[A])<=0;)t.pop();t.push(e[A])}for(var n=[],r=e.length-1;r>=0;r--){for(;n.length>=2&&I(n[n.length-2],n[n.length-1],e[r])<=0;)n.pop();n.push(e[r])}return n.pop(),t.pop(),t.concat(n)}(g)}(e),o=new n(16);o.toBBox=function(e){return{minX:e[0],minY:e[1],maxX:e[0],maxY:e[1]}},o.compareMinX=function(e,t){return e[0]-t[0]},o.compareMinY=function(e,t){return e[1]-t[1]},o.load(e);for(var a,g=[],c=0;c<r.length;c++){var u=r[c];o.remove(u),a=h(u,a),g.push(a)}var l=new n(16);for(c=0;c<g.length;c++)l.insert(C(g[c]));for(var d=t*t,B=A*A;g.length;){var E=g.shift(),Q=E.p,y=E.next.p,v=f(Q,y);if(!(v<B)){var m=v/d;(u=s(o,E.prev.p,Q,y,E.next.next.p,m,l))&&Math.min(f(u,Q),f(u,y))<=m&&(g.push(E),g.push(h(u,E)),o.remove(u),l.remove(E),l.insert(C(E)),l.insert(C(E.next)))}}E=a;var b=[];do{b.push(E.p),E=E.next}while(E!==a);return b.push(E.p),b}function s(e,t,A,n,i,o,a){for(var s=new r([],g),u=e.data;u;){for(var I=0;I<u.children.length;I++){var C=u.children[I],h=u.leaf?d(C,A,n):c(A,n,C);h>o||s.push({node:C,dist:h})}for(;s.length&&!s.peek().node.children;){var f=s.pop(),B=f.node,p=d(B,t,A),E=d(B,n,i);if(f.dist<p&&f.dist<E&&l(A,B,a)&&l(n,B,a))return B}(u=s.pop())&&(u=u.node)}return null}function g(e,t){return e.dist-t.dist}function c(e,t,A){if(u(e,A)||u(t,A))return 0;var n=B(e[0],e[1],t[0],t[1],A.minX,A.minY,A.maxX,A.minY);if(0===n)return 0;var r=B(e[0],e[1],t[0],t[1],A.minX,A.minY,A.minX,A.maxY);if(0===r)return 0;var i=B(e[0],e[1],t[0],t[1],A.maxX,A.minY,A.maxX,A.maxY);if(0===i)return 0;var o=B(e[0],e[1],t[0],t[1],A.minX,A.maxY,A.maxX,A.maxY);return 0===o?0:Math.min(n,r,i,o)}function u(e,t){return e[0]>=t.minX&&e[0]<=t.maxX&&e[1]>=t.minY&&e[1]<=t.maxY}function l(e,t,A){for(var n,r,i,o,a=Math.min(e[0],t[0]),s=Math.min(e[1],t[1]),g=Math.max(e[0],t[0]),c=Math.max(e[1],t[1]),u=A.search({minX:a,minY:s,maxX:g,maxY:c}),l=0;l<u.length;l++)if(n=u[l].p,r=u[l].next.p,i=e,n!==(o=t)&&r!==i&&I(n,r,i)>0!==I(n,r,o)>0&&I(i,o,n)>0!==I(i,o,r)>0)return!1;return!0}function I(e,t,A){return o(e[0],e[1],t[0],t[1],A[0],A[1])}function C(e){var t=e.p,A=e.next.p;return e.minX=Math.min(t[0],A[0]),e.minY=Math.min(t[1],A[1]),e.maxX=Math.max(t[0],A[0]),e.maxY=Math.max(t[1],A[1]),e}function h(e,t){var A={p:e,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return t?(A.next=t.next,A.prev=t,t.next.prev=A,t.next=A):(A.prev=A,A.next=A),A}function f(e,t){var A=e[0]-t[0],n=e[1]-t[1];return A*A+n*n}function d(e,t,A){var n=t[0],r=t[1],i=A[0]-n,o=A[1]-r;if(0!==i||0!==o){var a=((e[0]-n)*i+(e[1]-r)*o)/(i*i+o*o);a>1?(n=A[0],r=A[1]):a>0&&(n+=i*a,r+=o*a)}return(i=e[0]-n)*i+(o=e[1]-r)*o}function B(e,t,A,n,r,i,o,a){var s,g,c,u,l=A-e,I=n-t,C=o-r,h=a-i,f=e-r,d=t-i,B=l*l+I*I,p=l*C+I*h,E=C*C+h*h,Q=l*f+I*d,y=C*f+h*d,v=B*E-p*p,m=v,b=v;0===v?(g=0,m=1,u=y,b=E):(u=B*y-p*Q,(g=p*y-E*Q)<0?(g=0,u=y,b=E):g>m&&(g=m,u=y+p,b=E)),u<0?(u=0,-Q<0?g=0:-Q>B?g=m:(g=-Q,m=B)):u>b&&(u=b,-Q+p<0?g=0:-Q+p>B?g=m:(g=-Q+p,m=B));var w=(1-(c=0===u?0:u/b))*r+c*o-((1-(s=0===g?0:g/m))*e+s*A),S=(1-c)*i+c*a-((1-s)*t+s*n);return w*w+S*S}function p(e,t){return e[0]===t[0]?e[1]-t[1]:e[0]-t[0]}r.default&&(r=r.default),e.exports=a,e.exports.default=a},function(e,t,A){"use strict";A.d(t,"a",(function(){return I}));var n=A(8),r=A(6),i=A(1),o=A(4),a=A(24),s=A(16),g=A(17),c=A(9),u=A(10),l=A(54),I=function(e){Object(c.a)(A,e);var t=Object(u.a)(A);function A(e){var o,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d;if(Object(i.a)(this,A),o=t.call(this),Object.defineProperties(Object(a.a)(o),{_intern:{value:new Map},_key:{value:s}}),null!=e){var g,c=Object(r.a)(e);try{for(c.s();!(g=c.n()).done;){var u=Object(n.a)(g.value,2),l=u[0],I=u[1];o.set(l,I)}}catch(C){c.e(C)}finally{c.f()}}return o}return Object(o.a)(A,[{key:"get",value:function(e){return Object(g.a)(Object(s.a)(A.prototype),"get",this).call(this,C(this,e))}},{key:"has",value:function(e){return Object(g.a)(Object(s.a)(A.prototype),"has",this).call(this,C(this,e))}},{key:"set",value:function(e,t){return Object(g.a)(Object(s.a)(A.prototype),"set",this).call(this,h(this,e),t)}},{key:"delete",value:function(e){return Object(g.a)(Object(s.a)(A.prototype),"delete",this).call(this,f(this,e))}}]),A}(Object(l.a)(Map));Set;function C(e,t){var A=e._intern,n=(0,e._key)(t);return A.has(n)?A.get(n):t}function h(e,t){var A=e._intern,n=(0,e._key)(t);return A.has(n)?A.get(n):(A.set(n,t),t)}function f(e,t){var A=e._intern,n=(0,e._key)(t);return A.has(n)&&(t=A.get(n),A.delete(n)),t}function d(e){return null!==e&&"object"===typeof e?e.valueOf():e}},,,,,,,,,function(e,t,A){"use strict";(function(e){var A="undefined"!==typeof window&&"undefined"!==typeof document&&"undefined"!==typeof navigator,n=function(){for(var e=["Edge","Trident","Firefox"],t=0;t<e.length;t+=1)if(A&&navigator.userAgent.indexOf(e[t])>=0)return 1;return 0}();var r=A&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then((function(){t=!1,e()})))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout((function(){t=!1,e()}),n))}};function i(e){return e&&"[object Function]"==={}.toString.call(e)}function o(e,t){if(1!==e.nodeType)return[];var A=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?A[t]:A}function a(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function s(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=o(e),A=t.overflow,n=t.overflowX,r=t.overflowY;return/(auto|scroll|overlay)/.test(A+r+n)?e:s(a(e))}function g(e){return e&&e.referenceNode?e.referenceNode:e}var c=A&&!(!window.MSInputMethodContext||!document.documentMode),u=A&&/MSIE 10/.test(navigator.userAgent);function l(e){return 11===e?c:10===e?u:c||u}function I(e){if(!e)return document.documentElement;for(var t=l(10)?document.body:null,A=e.offsetParent||null;A===t&&e.nextElementSibling;)A=(e=e.nextElementSibling).offsetParent;var n=A&&A.nodeName;return n&&"BODY"!==n&&"HTML"!==n?-1!==["TH","TD","TABLE"].indexOf(A.nodeName)&&"static"===o(A,"position")?I(A):A:e?e.ownerDocument.documentElement:document.documentElement}function C(e){return null!==e.parentNode?C(e.parentNode):e}function h(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var A=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=A?e:t,r=A?t:e,i=document.createRange();i.setStart(n,0),i.setEnd(r,0);var o=i.commonAncestorContainer;if(e!==o&&t!==o||n.contains(r))return function(e){var t=e.nodeName;return"BODY"!==t&&("HTML"===t||I(e.firstElementChild)===e)}(o)?o:I(o);var a=C(e);return a.host?h(a.host,t):h(e,C(t).host)}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",A="top"===t?"scrollTop":"scrollLeft",n=e.nodeName;if("BODY"===n||"HTML"===n){var r=e.ownerDocument.documentElement,i=e.ownerDocument.scrollingElement||r;return i[A]}return e[A]}function d(e,t){var A=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=f(t,"top"),r=f(t,"left"),i=A?-1:1;return e.top+=n*i,e.bottom+=n*i,e.left+=r*i,e.right+=r*i,e}function B(e,t){var A="x"===t?"Left":"Top",n="Left"===A?"Right":"Bottom";return parseFloat(e["border"+A+"Width"])+parseFloat(e["border"+n+"Width"])}function p(e,t,A,n){return Math.max(t["offset"+e],t["scroll"+e],A["client"+e],A["offset"+e],A["scroll"+e],l(10)?parseInt(A["offset"+e])+parseInt(n["margin"+("Height"===e?"Top":"Left")])+parseInt(n["margin"+("Height"===e?"Bottom":"Right")]):0)}function E(e){var t=e.body,A=e.documentElement,n=l(10)&&getComputedStyle(A);return{height:p("Height",t,A,n),width:p("Width",t,A,n)}}var Q=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},y=function(){function e(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,A,n){return A&&e(t.prototype,A),n&&e(t,n),t}}(),v=function(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e},m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e};function b(e){return m({},e,{right:e.left+e.width,bottom:e.top+e.height})}function w(e){var t={};try{if(l(10)){t=e.getBoundingClientRect();var A=f(e,"top"),n=f(e,"left");t.top+=A,t.left+=n,t.bottom+=A,t.right+=n}else t=e.getBoundingClientRect()}catch(I){}var r={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},i="HTML"===e.nodeName?E(e.ownerDocument):{},a=i.width||e.clientWidth||r.width,s=i.height||e.clientHeight||r.height,g=e.offsetWidth-a,c=e.offsetHeight-s;if(g||c){var u=o(e);g-=B(u,"x"),c-=B(u,"y"),r.width-=g,r.height-=c}return b(r)}function S(e,t){var A=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=l(10),r="HTML"===t.nodeName,i=w(e),a=w(t),g=s(e),c=o(t),u=parseFloat(c.borderTopWidth),I=parseFloat(c.borderLeftWidth);A&&r&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var C=b({top:i.top-a.top-u,left:i.left-a.left-I,width:i.width,height:i.height});if(C.marginTop=0,C.marginLeft=0,!n&&r){var h=parseFloat(c.marginTop),f=parseFloat(c.marginLeft);C.top-=u-h,C.bottom-=u-h,C.left-=I-f,C.right-=I-f,C.marginTop=h,C.marginLeft=f}return(n&&!A?t.contains(g):t===g&&"BODY"!==g.nodeName)&&(C=d(C,t)),C}function F(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],A=e.ownerDocument.documentElement,n=S(e,A),r=Math.max(A.clientWidth,window.innerWidth||0),i=Math.max(A.clientHeight,window.innerHeight||0),o=t?0:f(A),a=t?0:f(A,"left"),s={top:o-n.top+n.marginTop,left:a-n.left+n.marginLeft,width:r,height:i};return b(s)}function R(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===o(e,"position"))return!0;var A=a(e);return!!A&&R(A)}function D(e){if(!e||!e.parentElement||l())return document.documentElement;for(var t=e.parentElement;t&&"none"===o(t,"transform");)t=t.parentElement;return t||document.documentElement}function G(e,t,A,n){var r=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i={top:0,left:0},o=r?D(e):h(e,g(t));if("viewport"===n)i=F(o,r);else{var c=void 0;"scrollParent"===n?"BODY"===(c=s(a(t))).nodeName&&(c=e.ownerDocument.documentElement):c="window"===n?e.ownerDocument.documentElement:n;var u=S(c,o,r);if("HTML"!==c.nodeName||R(o))i=u;else{var l=E(e.ownerDocument),I=l.height,C=l.width;i.top+=u.top-u.marginTop,i.bottom=I+u.top,i.left+=u.left-u.marginLeft,i.right=C+u.left}}var f="number"===typeof(A=A||0);return i.left+=f?A:A.left||0,i.top+=f?A:A.top||0,i.right-=f?A:A.right||0,i.bottom-=f?A:A.bottom||0,i}function k(e){return e.width*e.height}function x(e,t,A,n,r){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var o=G(A,n,i,r),a={top:{width:o.width,height:t.top-o.top},right:{width:o.right-t.right,height:o.height},bottom:{width:o.width,height:o.bottom-t.bottom},left:{width:t.left-o.left,height:o.height}},s=Object.keys(a).map((function(e){return m({key:e},a[e],{area:k(a[e])})})).sort((function(e,t){return t.area-e.area})),g=s.filter((function(e){var t=e.width,n=e.height;return t>=A.clientWidth&&n>=A.clientHeight})),c=g.length>0?g[0].key:s[0].key,u=e.split("-")[1];return c+(u?"-"+u:"")}function N(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=n?D(t):h(t,g(A));return S(A,r,n)}function U(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),A=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),n=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+n,height:e.offsetHeight+A}}function _(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,(function(e){return t[e]}))}function M(e,t,A){A=A.split("-")[0];var n=U(e),r={width:n.width,height:n.height},i=-1!==["right","left"].indexOf(A),o=i?"top":"left",a=i?"left":"top",s=i?"height":"width",g=i?"width":"height";return r[o]=t[o]+t[s]/2-n[s]/2,r[a]=A===a?t[a]-n[g]:t[_(a)],r}function O(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function L(e,t,A){return(void 0===A?e:e.slice(0,function(e,t,A){if(Array.prototype.findIndex)return e.findIndex((function(e){return e[t]===A}));var n=O(e,(function(e){return e[t]===A}));return e.indexOf(n)}(e,"name",A))).forEach((function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var A=e.function||e.fn;e.enabled&&i(A)&&(t.offsets.popper=b(t.offsets.popper),t.offsets.reference=b(t.offsets.reference),t=A(t,e))})),t}function T(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=N(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=x(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=M(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=L(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function Z(e,t){return e.some((function(e){var A=e.name;return e.enabled&&A===t}))}function H(e){for(var t=[!1,"ms","Webkit","Moz","O"],A=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var r=t[n],i=r?""+r+A:e;if("undefined"!==typeof document.body.style[i])return i}return null}function Y(){return this.state.isDestroyed=!0,Z(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[H("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function J(e){var t=e.ownerDocument;return t?t.defaultView:window}function j(e,t,A,n){A.updateBound=n,J(e).addEventListener("resize",A.updateBound,{passive:!0});var r=s(e);return function e(t,A,n,r){var i="BODY"===t.nodeName,o=i?t.ownerDocument.defaultView:t;o.addEventListener(A,n,{passive:!0}),i||e(s(o.parentNode),A,n,r),r.push(o)}(r,"scroll",A.updateBound,A.scrollParents),A.scrollElement=r,A.eventsEnabled=!0,A}function P(){this.state.eventsEnabled||(this.state=j(this.reference,this.options,this.state,this.scheduleUpdate))}function V(){var e,t;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(e=this.reference,t=this.state,J(e).removeEventListener("resize",t.updateBound),t.scrollParents.forEach((function(e){e.removeEventListener("scroll",t.updateBound)})),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t))}function K(e){return""!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function W(e,t){Object.keys(t).forEach((function(A){var n="";-1!==["width","height","top","right","bottom","left"].indexOf(A)&&K(t[A])&&(n="px"),e.style[A]=t[A]+n}))}var X=A&&/Firefox/i.test(navigator.userAgent);function q(e,t,A){var n=O(e,(function(e){return e.name===t})),r=!!n&&e.some((function(e){return e.name===A&&e.enabled&&e.order<n.order}));if(!r){var i="`"+t+"`",o="`"+A+"`";console.warn(o+" modifier is required by "+i+" modifier in order to work, be sure to include it before "+i+"!")}return r}var z=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],$=z.slice(3);function ee(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],A=$.indexOf(e),n=$.slice(A+1).concat($.slice(0,A));return t?n.reverse():n}var te="flip",Ae="clockwise",ne="counterclockwise";function re(e,t,A,n){var r=[0,0],i=-1!==["right","left"].indexOf(n),o=e.split(/(\+|\-)/).map((function(e){return e.trim()})),a=o.indexOf(O(o,(function(e){return-1!==e.search(/,|\s/)})));o[a]&&-1===o[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var s=/\s*,\s*|\s+/,g=-1!==a?[o.slice(0,a).concat([o[a].split(s)[0]]),[o[a].split(s)[1]].concat(o.slice(a+1))]:[o];return(g=g.map((function(e,n){var r=(1===n?!i:i)?"height":"width",o=!1;return e.reduce((function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,o=!0,e):o?(e[e.length-1]+=t,o=!1,e):e.concat(t)}),[]).map((function(e){return function(e,t,A,n){var r=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),i=+r[1],o=r[2];if(!i)return e;if(0===o.indexOf("%")){var a=void 0;switch(o){case"%p":a=A;break;case"%":case"%r":default:a=n}return b(a)[t]/100*i}if("vh"===o||"vw"===o){return("vh"===o?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*i}return i}(e,r,t,A)}))}))).forEach((function(e,t){e.forEach((function(A,n){K(A)&&(r[t]+=A*("-"===e[n-1]?-1:1))}))})),r}var ie={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,A=t.split("-")[0],n=t.split("-")[1];if(n){var r=e.offsets,i=r.reference,o=r.popper,a=-1!==["bottom","top"].indexOf(A),s=a?"left":"top",g=a?"width":"height",c={start:v({},s,i[s]),end:v({},s,i[s]+i[g]-o[g])};e.offsets.popper=m({},o,c[n])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var A=t.offset,n=e.placement,r=e.offsets,i=r.popper,o=r.reference,a=n.split("-")[0],s=void 0;return s=K(+A)?[+A,0]:re(A,i,o,a),"left"===a?(i.top+=s[0],i.left-=s[1]):"right"===a?(i.top+=s[0],i.left+=s[1]):"top"===a?(i.left+=s[0],i.top-=s[1]):"bottom"===a&&(i.left+=s[0],i.top+=s[1]),e.popper=i,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var A=t.boundariesElement||I(e.instance.popper);e.instance.reference===A&&(A=I(A));var n=H("transform"),r=e.instance.popper.style,i=r.top,o=r.left,a=r[n];r.top="",r.left="",r[n]="";var s=G(e.instance.popper,e.instance.reference,t.padding,A,e.positionFixed);r.top=i,r.left=o,r[n]=a,t.boundaries=s;var g=t.priority,c=e.offsets.popper,u={primary:function(e){var A=c[e];return c[e]<s[e]&&!t.escapeWithReference&&(A=Math.max(c[e],s[e])),v({},e,A)},secondary:function(e){var A="right"===e?"left":"top",n=c[A];return c[e]>s[e]&&!t.escapeWithReference&&(n=Math.min(c[A],s[e]-("right"===e?c.width:c.height))),v({},A,n)}};return g.forEach((function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";c=m({},c,u[t](e))})),e.offsets.popper=c,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,A=t.popper,n=t.reference,r=e.placement.split("-")[0],i=Math.floor,o=-1!==["top","bottom"].indexOf(r),a=o?"right":"bottom",s=o?"left":"top",g=o?"width":"height";return A[a]<i(n[s])&&(e.offsets.popper[s]=i(n[s])-A[g]),A[s]>i(n[a])&&(e.offsets.popper[s]=i(n[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var A;if(!q(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"===typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,a=i.popper,s=i.reference,g=-1!==["left","right"].indexOf(r),c=g?"height":"width",u=g?"Top":"Left",l=u.toLowerCase(),I=g?"left":"top",C=g?"bottom":"right",h=U(n)[c];s[C]-h<a[l]&&(e.offsets.popper[l]-=a[l]-(s[C]-h)),s[l]+h>a[C]&&(e.offsets.popper[l]+=s[l]+h-a[C]),e.offsets.popper=b(e.offsets.popper);var f=s[l]+s[c]/2-h/2,d=o(e.instance.popper),B=parseFloat(d["margin"+u]),p=parseFloat(d["border"+u+"Width"]),E=f-e.offsets.popper[l]-B-p;return E=Math.max(Math.min(a[c]-h,E),0),e.arrowElement=n,e.offsets.arrow=(v(A={},l,Math.round(E)),v(A,I,""),A),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(Z(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var A=G(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split("-")[0],r=_(n),i=e.placement.split("-")[1]||"",o=[];switch(t.behavior){case te:o=[n,r];break;case Ae:o=ee(n);break;case ne:o=ee(n,!0);break;default:o=t.behavior}return o.forEach((function(a,s){if(n!==a||o.length===s+1)return e;n=e.placement.split("-")[0],r=_(n);var g=e.offsets.popper,c=e.offsets.reference,u=Math.floor,l="left"===n&&u(g.right)>u(c.left)||"right"===n&&u(g.left)<u(c.right)||"top"===n&&u(g.bottom)>u(c.top)||"bottom"===n&&u(g.top)<u(c.bottom),I=u(g.left)<u(A.left),C=u(g.right)>u(A.right),h=u(g.top)<u(A.top),f=u(g.bottom)>u(A.bottom),d="left"===n&&I||"right"===n&&C||"top"===n&&h||"bottom"===n&&f,B=-1!==["top","bottom"].indexOf(n),p=!!t.flipVariations&&(B&&"start"===i&&I||B&&"end"===i&&C||!B&&"start"===i&&h||!B&&"end"===i&&f),E=!!t.flipVariationsByContent&&(B&&"start"===i&&C||B&&"end"===i&&I||!B&&"start"===i&&f||!B&&"end"===i&&h),Q=p||E;(l||d||Q)&&(e.flipped=!0,(l||d)&&(n=o[s+1]),Q&&(i=function(e){return"end"===e?"start":"start"===e?"end":e}(i)),e.placement=n+(i?"-"+i:""),e.offsets.popper=m({},e.offsets.popper,M(e.instance.popper,e.offsets.reference,e.placement)),e=L(e.instance.modifiers,e,"flip"))})),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,A=t.split("-")[0],n=e.offsets,r=n.popper,i=n.reference,o=-1!==["left","right"].indexOf(A),a=-1===["top","left"].indexOf(A);return r[o?"left":"top"]=i[A]-(a?r[o?"width":"height"]:0),e.placement=_(t),e.offsets.popper=b(r),e}},hide:{order:800,enabled:!0,fn:function(e){if(!q(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,A=O(e.instance.modifiers,(function(e){return"preventOverflow"===e.name})).boundaries;if(t.bottom<A.top||t.left>A.right||t.top>A.bottom||t.right<A.left){if(!0===e.hide)return e;e.hide=!0,e.attributes["x-out-of-boundaries"]=""}else{if(!1===e.hide)return e;e.hide=!1,e.attributes["x-out-of-boundaries"]=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var A=t.x,n=t.y,r=e.offsets.popper,i=O(e.instance.modifiers,(function(e){return"applyStyle"===e.name})).gpuAcceleration;void 0!==i&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var o=void 0!==i?i:t.gpuAcceleration,a=I(e.instance.popper),s=w(a),g={position:r.position},c=function(e,t){var A=e.offsets,n=A.popper,r=A.reference,i=Math.round,o=Math.floor,a=function(e){return e},s=i(r.width),g=i(n.width),c=-1!==["left","right"].indexOf(e.placement),u=-1!==e.placement.indexOf("-"),l=t?c||u||s%2===g%2?i:o:a,I=t?i:a;return{left:l(s%2===1&&g%2===1&&!u&&t?n.left-1:n.left),top:I(n.top),bottom:I(n.bottom),right:l(n.right)}}(e,window.devicePixelRatio<2||!X),u="bottom"===A?"top":"bottom",l="right"===n?"left":"right",C=H("transform"),h=void 0,f=void 0;if(f="bottom"===u?"HTML"===a.nodeName?-a.clientHeight+c.bottom:-s.height+c.bottom:c.top,h="right"===l?"HTML"===a.nodeName?-a.clientWidth+c.right:-s.width+c.right:c.left,o&&C)g[C]="translate3d("+h+"px, "+f+"px, 0)",g[u]=0,g[l]=0,g.willChange="transform";else{var d="bottom"===u?-1:1,B="right"===l?-1:1;g[u]=f*d,g[l]=h*B,g.willChange=u+", "+l}var p={"x-placement":e.placement};return e.attributes=m({},p,e.attributes),e.styles=m({},g,e.styles),e.arrowStyles=m({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(e){var t,A;return W(e.instance.popper,e.styles),t=e.instance.popper,A=e.attributes,Object.keys(A).forEach((function(e){!1!==A[e]?t.setAttribute(e,A[e]):t.removeAttribute(e)})),e.arrowElement&&Object.keys(e.arrowStyles).length&&W(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,A,n,r){var i=N(r,t,e,A.positionFixed),o=x(A.placement,i,t,e,A.modifiers.flip.boundariesElement,A.modifiers.flip.padding);return t.setAttribute("x-placement",o),W(t,{position:A.positionFixed?"fixed":"absolute"}),A},gpuAcceleration:void 0}}},oe=function(){function e(t,A){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Q(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=r(this.update.bind(this)),this.options=m({},e.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=A&&A.jquery?A[0]:A,this.options.modifiers={},Object.keys(m({},e.Defaults.modifiers,o.modifiers)).forEach((function(t){n.options.modifiers[t]=m({},e.Defaults.modifiers[t]||{},o.modifiers?o.modifiers[t]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(e){return m({name:e},n.options.modifiers[e])})).sort((function(e,t){return e.order-t.order})),this.modifiers.forEach((function(e){e.enabled&&i(e.onLoad)&&e.onLoad(n.reference,n.popper,n.options,e,n.state)})),this.update();var a=this.options.eventsEnabled;a&&this.enableEventListeners(),this.state.eventsEnabled=a}return y(e,[{key:"update",value:function(){return T.call(this)}},{key:"destroy",value:function(){return Y.call(this)}},{key:"enableEventListeners",value:function(){return P.call(this)}},{key:"disableEventListeners",value:function(){return V.call(this)}}]),e}();oe.Utils=("undefined"!==typeof window?window:e).PopperUtils,oe.placements=z,oe.Defaults=ie,t.a=oe}).call(this,A(86))},function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.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.58c-.18.14-.23.41-.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"}),"Settings");t.default=o},function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 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"}),"CloudDownload");t.default=o},function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("path",{d:"M19 6.41L17.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"}),"Close");t.default=o},function(e,t,A){var n=A(904),r=A(905),i=A(906);e.exports=function(e){return n(e)||r(e)||i()}},function(e,t,A){var n=A(907),r=A(908),i=A(909);e.exports=function(e,t){return n(e)||r(e,t)||i()}},function(e,t,A){var n=A(591),r=A(470),i=A(917),o=A(471),a=r((function(e){return i(n(e,1,o,!0))}));e.exports=a},function(e,t,A){var n=A(924),r=A(591),i=A(470),o=A(471),a=i((function(e,t){return o(e)?n(e,r(t,1,o,!0)):[]}));e.exports=a},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CustomPicker=t.TwitterPicker=t.SwatchesPicker=t.SliderPicker=t.SketchPicker=t.PhotoshopPicker=t.MaterialPicker=t.HuePicker=t.GithubPicker=t.CompactPicker=t.ChromePicker=t.default=t.CirclePicker=t.BlockPicker=t.AlphaPicker=void 0;var n=A(965);Object.defineProperty(t,"AlphaPicker",{enumerable:!0,get:function(){return B(n).default}});var r=A(1012);Object.defineProperty(t,"BlockPicker",{enumerable:!0,get:function(){return B(r).default}});var i=A(1014);Object.defineProperty(t,"CirclePicker",{enumerable:!0,get:function(){return B(i).default}});var o=A(1016);Object.defineProperty(t,"ChromePicker",{enumerable:!0,get:function(){return B(o).default}});var a=A(1021);Object.defineProperty(t,"CompactPicker",{enumerable:!0,get:function(){return B(a).default}});var s=A(1024);Object.defineProperty(t,"GithubPicker",{enumerable:!0,get:function(){return B(s).default}});var g=A(1026);Object.defineProperty(t,"HuePicker",{enumerable:!0,get:function(){return B(g).default}});var c=A(1028);Object.defineProperty(t,"MaterialPicker",{enumerable:!0,get:function(){return B(c).default}});var u=A(1029);Object.defineProperty(t,"PhotoshopPicker",{enumerable:!0,get:function(){return B(u).default}});var l=A(1035);Object.defineProperty(t,"SketchPicker",{enumerable:!0,get:function(){return B(l).default}});var I=A(1038);Object.defineProperty(t,"SliderPicker",{enumerable:!0,get:function(){return B(I).default}});var C=A(1042);Object.defineProperty(t,"SwatchesPicker",{enumerable:!0,get:function(){return B(C).default}});var h=A(1046);Object.defineProperty(t,"TwitterPicker",{enumerable:!0,get:function(){return B(h).default}});var f=A(617);Object.defineProperty(t,"CustomPicker",{enumerable:!0,get:function(){return B(f).default}});var d=B(o);function B(e){return e&&e.__esModule?e:{default:e}}t.default=d.default},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,A,n){function r(t){var n=new i.default(t);A.call(e,n)}if(e.addEventListener){var o=function(){var A=!1;return"object"===typeof n?A=n.capture||!1:"boolean"===typeof n&&(A=n),e.addEventListener(t,r,n||!1),{v:{remove:function(){e.removeEventListener(t,r,A)}}}}();if("object"===typeof o)return o.v}else if(e.attachEvent)return e.attachEvent("on"+t,r),{remove:function(){e.detachEvent("on"+t,r)}}};var n,r=A(1047),i=(n=r)&&n.__esModule?n:{default:n};e.exports=t.default},function(e,t,A){"use strict";(function(e){var A=function(){if("undefined"!==typeof Map)return Map;function e(e,t){var A=-1;return e.some((function(e,n){return e[0]===t&&(A=n,!0)})),A}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var A=e(this.__entries__,t),n=this.__entries__[A];return n&&n[1]},t.prototype.set=function(t,A){var n=e(this.__entries__,t);~n?this.__entries__[n][1]=A:this.__entries__.push([t,A])},t.prototype.delete=function(t){var A=this.__entries__,n=e(A,t);~n&&A.splice(n,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var A=0,n=this.__entries__;A<n.length;A++){var r=n[A];e.call(t,r[1],r[0])}},t}()}(),n="undefined"!==typeof window&&"undefined"!==typeof document&&window.document===document,r="undefined"!==typeof e&&e.Math===Math?e:"undefined"!==typeof self&&self.Math===Math?self:"undefined"!==typeof window&&window.Math===Math?window:Function("return this")(),i="function"===typeof requestAnimationFrame?requestAnimationFrame.bind(r):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var o=["top","right","bottom","left","width","height","size","weight"],a="undefined"!==typeof MutationObserver,s=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var A=!1,n=!1,r=0;function o(){A&&(A=!1,e()),n&&s()}function a(){i(o)}function s(){var e=Date.now();if(A){if(e-r<2)return;n=!0}else A=!0,n=!1,setTimeout(a,t);r=e}return s}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,A=t.indexOf(e);~A&&t.splice(A,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){n&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),a?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){n&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,A=void 0===t?"":t;o.some((function(e){return!!~A.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),g=function(e,t){for(var A=0,n=Object.keys(t);A<n.length;A++){var r=n[A];Object.defineProperty(e,r,{value:t[r],enumerable:!1,writable:!1,configurable:!0})}return e},c=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||r},u=d(0,0,0,0);function l(e){return parseFloat(e)||0}function I(e){for(var t=[],A=1;A<arguments.length;A++)t[A-1]=arguments[A];return t.reduce((function(t,A){return t+l(e["border-"+A+"-width"])}),0)}function C(e){var t=e.clientWidth,A=e.clientHeight;if(!t&&!A)return u;var n=c(e).getComputedStyle(e),r=function(e){for(var t={},A=0,n=["top","right","bottom","left"];A<n.length;A++){var r=n[A],i=e["padding-"+r];t[r]=l(i)}return t}(n),i=r.left+r.right,o=r.top+r.bottom,a=l(n.width),s=l(n.height);if("border-box"===n.boxSizing&&(Math.round(a+i)!==t&&(a-=I(n,"left","right")+i),Math.round(s+o)!==A&&(s-=I(n,"top","bottom")+o)),!function(e){return e===c(e).document.documentElement}(e)){var g=Math.round(a+i)-t,C=Math.round(s+o)-A;1!==Math.abs(g)&&(a-=g),1!==Math.abs(C)&&(s-=C)}return d(r.left,r.top,a,s)}var h="undefined"!==typeof SVGGraphicsElement?function(e){return e instanceof c(e).SVGGraphicsElement}:function(e){return e instanceof c(e).SVGElement&&"function"===typeof e.getBBox};function f(e){return n?h(e)?function(e){var t=e.getBBox();return d(0,0,t.width,t.height)}(e):C(e):u}function d(e,t,A,n){return{x:e,y:t,width:A,height:n}}var B=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=d(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=f(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),p=function(e,t){var A=function(e){var t=e.x,A=e.y,n=e.width,r=e.height,i="undefined"!==typeof DOMRectReadOnly?DOMRectReadOnly:Object,o=Object.create(i.prototype);return g(o,{x:t,y:A,width:n,height:r,top:A,right:t+n,bottom:r+A,left:t}),o}(t);g(this,{target:e,contentRect:A})},E=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new A,"function"!==typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof c(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new B(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof c(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new p(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),Q="undefined"!==typeof WeakMap?new WeakMap:new A,y=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var A=s.getInstance(),n=new E(t,A,this);Q.set(this,n)};["observe","unobserve","disconnect"].forEach((function(e){y.prototype[e]=function(){var t;return(t=Q.get(this))[e].apply(t,arguments)}}));var v="undefined"!==typeof r.ResizeObserver?r.ResizeObserver:y;t.a=v}).call(this,A(86))},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(259),r=A(489),i=A(308),o=A(105);function a(e,t){return!(e[0]>t[0])&&(!(e[2]<t[2])&&(!(e[1]>t[1])&&!(e[3]<t[3])))}function s(e,t){return e[0]===t[0]&&e[1]===t[1]}t.default=function(e,t){var A=o.getType(e),g=o.getType(t),c=o.getGeom(e),u=o.getGeom(t);switch(A){case"Point":switch(g){case"MultiPoint":return function(e,t){var A,n=!1;for(A=0;A<t.coordinates.length;A++)if(s(t.coordinates[A],e.coordinates)){n=!0;break}return n}(c,u);case"LineString":return r.default(c,u,{ignoreEndVertices:!0});case"Polygon":case"MultiPolygon":return i.default(c,u,{ignoreBoundary:!0});default:throw new Error("feature2 "+g+" geometry not supported")}case"MultiPoint":switch(g){case"MultiPoint":return function(e,t){for(var A=0;A<e.coordinates.length;A++){for(var n=!1,r=0;r<t.coordinates.length;r++)s(e.coordinates[A],t.coordinates[r])&&(n=!0);if(!n)return!1}return!0}(c,u);case"LineString":return function(e,t){for(var A=!1,n=0;n<e.coordinates.length;n++){if(!r.default(e.coordinates[n],t))return!1;A||(A=r.default(e.coordinates[n],t,{ignoreEndVertices:!0}))}return A}(c,u);case"Polygon":case"MultiPolygon":return function(e,t){for(var A=!0,n=0;n<e.coordinates.length;n++){var r=i.default(e.coordinates[1],t);if(!r){A=!1;break}r=i.default(e.coordinates[1],t,{ignoreBoundary:!0})}return A&&r}(c,u);default:throw new Error("feature2 "+g+" geometry not supported")}case"LineString":switch(g){case"LineString":return function(e,t){for(var A=0;A<e.coordinates.length;A++)if(!r.default(e.coordinates[A],t))return!1;return!0}(c,u);case"Polygon":case"MultiPolygon":return function(e,t){var A=n.default(t),r=n.default(e);if(!a(A,r))return!1;for(var o=!1,s=0;s<e.coordinates.length-1;s++){if(!i.default(e.coordinates[s],t))return!1;if(o||(o=i.default(e.coordinates[s],t,{ignoreBoundary:!0})),!o){var g=(c=e.coordinates[s],u=e.coordinates[s+1],[(c[0]+u[0])/2,(c[1]+u[1])/2]);o=i.default(g,t,{ignoreBoundary:!0})}}var c,u;return o}(c,u);default:throw new Error("feature2 "+g+" geometry not supported")}case"Polygon":switch(g){case"Polygon":case"MultiPolygon":return function(e,t){var A=n.default(e);if(!a(n.default(t),A))return!1;for(var r=0;r<e.coordinates[0].length;r++)if(!i.default(e.coordinates[0][r],t))return!1;return!0}(c,u);default:throw new Error("feature2 "+g+" geometry not supported")}default:throw new Error("feature1 "+A+" geometry not supported")}}},function(e,t,A){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var r=n(A(259)),i=n(A(308)),o=n(A(489)),a=A(105);function s(e,t){var A,n=!1;for(A=0;A<e.coordinates.length;A++)if(f(e.coordinates[A],t.coordinates)){n=!0;break}return n}function g(e,t){for(var A=0,n=t.coordinates;A<n.length;A++){for(var r=n[A],i=!1,o=0,a=e.coordinates;o<a.length;o++){if(f(r,a[o])){i=!0;break}}if(!i)return!1}return!0}function c(e,t){for(var A=!1,n=0,r=t.coordinates;n<r.length;n++){var i=r[n];if(o.default(i,e,{ignoreEndVertices:!0})&&(A=!0),!o.default(i,e))return!1}return!!A}function u(e,t){for(var A=0,n=t.coordinates;A<n.length;A++){var r=n[A];if(!i.default(r,e,{ignoreBoundary:!0}))return!1}return!0}function l(e,t){for(var A=!1,n=0,r=t.coordinates;n<r.length;n++){var i=r[n];if(o.default({type:"Point",coordinates:i},e,{ignoreEndVertices:!0})&&(A=!0),!o.default({type:"Point",coordinates:i},e,{ignoreEndVertices:!1}))return!1}return A}function I(e,t){var A=!1,n=0;if(!h(r.default(e),r.default(t)))return!1;for(;n<t.coordinates.length-1;n++){var o=d(t.coordinates[n],t.coordinates[n+1]);if(i.default({type:"Point",coordinates:o},e,{ignoreBoundary:!0})){A=!0;break}}return A}function C(e,t){if("Feature"===e.type&&null===e.geometry)return!1;if("Feature"===t.type&&null===t.geometry)return!1;if(!h(r.default(e),r.default(t)))return!1;for(var A=0,n=a.getGeom(t).coordinates;A<n.length;A++)for(var o=0,s=n[A];o<s.length;o++){var g=s[o];if(!i.default(g,e))return!1}return!0}function h(e,t){return!(e[0]>t[0])&&(!(e[2]<t[2])&&(!(e[1]>t[1])&&!(e[3]<t[3])))}function f(e,t){return e[0]===t[0]&&e[1]===t[1]}function d(e,t){return[(e[0]+t[0])/2,(e[1]+t[1])/2]}t.default=function(e,t){var A=a.getGeom(e),n=a.getGeom(t),r=a.getType(e),h=a.getType(t),d=a.getCoords(e),B=a.getCoords(t);switch(r){case"Point":switch(h){case"Point":return f(d,B);default:throw new Error("feature2 "+h+" geometry not supported")}case"MultiPoint":switch(h){case"Point":return s(A,n);case"MultiPoint":return g(A,n);default:throw new Error("feature2 "+h+" geometry not supported")}case"LineString":switch(h){case"Point":return o.default(n,A,{ignoreEndVertices:!0});case"LineString":return l(A,n);case"MultiPoint":return c(A,n);default:throw new Error("feature2 "+h+" geometry not supported")}case"Polygon":switch(h){case"Point":return i.default(n,A,{ignoreBoundary:!0});case"LineString":return I(A,n);case"Polygon":return C(A,n);case"MultiPoint":return u(A,n);default:throw new Error("feature2 "+h+" geometry not supported")}default:throw new Error("feature1 "+r+" geometry not supported")}},t.isPointInMultiPoint=s,t.isMultiPointInMultiPoint=g,t.isMultiPointOnLine=c,t.isMultiPointInPoly=u,t.isLineOnLine=l,t.isLineInPoly=I,t.isPolyInPoly=C,t.doBBoxOverlap=h,t.compareCoords=f,t.getMidpoint=d},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(141),r=A(105),i=A(1049),o=A(365),a=A(1065);t.default=function(e,t){if(!e)throw new Error("feature1 is required");if(!t)throw new Error("feature2 is required");var A=r.getType(e);if(A!==r.getType(t))throw new Error("features must be of the same type");if("Point"===A)throw new Error("Point geometry not supported");if(new a({precision:6}).compare(e,t))return!1;var s=0;switch(A){case"MultiPoint":var g=n.coordAll(e),c=n.coordAll(t);g.forEach((function(e){c.forEach((function(t){e[0]===t[0]&&e[1]===t[1]&&s++}))}));break;case"LineString":case"MultiLineString":n.segmentEach(e,(function(e){n.segmentEach(t,(function(t){i.default(e,t).features.length&&s++}))}));break;case"Polygon":case"MultiPolygon":n.segmentEach(e,(function(e){n.segmentEach(t,(function(t){o.default(e,t).features.length&&s++}))}))}return s>0}},function(e,t,A){"use strict";A.d(t,"a",(function(){return u}));var n=A(7),r=A(2),i=A(1),o=A(4),a=A(718),s=A(427),g=A(232),c=A(18),u=function(){function e(t,A){var n=A.attributes,r=A.material,o=A.pbrDebug,g=A.imageBasedLightingEnvironment,c=A.lights,u=A.useTangents;Object(i.a)(this,e),this.gl=t,this.defines={MANUAL_SRGB:1,SRGB_FAST_APPROXIMATION:1},Object(a.b)(t,s.a.GLSL_TEXTURE_LOD)&&(this.defines.USE_TEX_LOD=1),this.uniforms={u_Camera:[0,0,0],u_MetallicRoughnessValues:[1,1]},this.parameters={},this.generatedTextures=[],g&&(this.uniforms.u_DiffuseEnvSampler=g.getDiffuseEnvSampler(),this.uniforms.u_SpecularEnvSampler=g.getSpecularEnvSampler(),this.uniforms.u_brdfLUT=g.getBrdfTexture(),this.uniforms.u_ScaleIBLAmbient=[1,1]),o&&(this.uniforms.u_ScaleDiffBaseMR=[0,0,0,0],this.uniforms.u_ScaleFGDSpec=[0,0,0,0]),this.defineIfPresent(n.NORMAL,"HAS_NORMALS"),this.defineIfPresent(n.TANGENT&&u,"HAS_TANGENTS"),this.defineIfPresent(n.TEXCOORD_0,"HAS_UV"),this.defineIfPresent(g,"USE_IBL"),this.defineIfPresent(c,"USE_LIGHTS"),this.defineIfPresent(o,"PBR_DEBUG"),r&&this.parseMaterial(r)}return Object(o.a)(e,[{key:"defineIfPresent",value:function(e,t){e&&(this.defines[t]=1)}},{key:"parseTexture",value:function(e,t){var A,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=e.texture&&e.texture.sampler&&e.texture.sampler.parameters||{},a=e.texture.source.image,s={};a.compressed?(A=a,s=Object(r.a)({},this.gl.TEXTURE_MIN_FILTER,a.data.length>1?this.gl.LINEAR_MIPMAP_NEAREST:this.gl.LINEAR)):A={data:a};var c=new g.a(this.gl,Object(n.a)({id:e.name||e.id,parameters:Object(n.a)({},o,{},s),pixelStore:Object(r.a)({},this.gl.UNPACK_FLIP_Y_WEBGL,!1)},A));this.uniforms[t]=c,this.defineIfPresent(i,i),this.generatedTextures.push(c)}},{key:"parsePbrMetallicRoughness",value:function(e){e.baseColorTexture&&this.parseTexture(e.baseColorTexture,"u_BaseColorSampler","HAS_BASECOLORMAP"),this.uniforms.u_BaseColorFactor=e.baseColorFactor||[1,1,1,1],e.metallicRoughnessTexture&&this.parseTexture(e.metallicRoughnessTexture,"u_MetallicRoughnessSampler","HAS_METALROUGHNESSMAP");var t=e.metallicFactor,A=void 0===t?1:t,n=e.roughnessFactor,r=void 0===n?1:n;this.uniforms.u_MetallicRoughnessValues=[A,r]}},{key:"parseMaterial",value:function(e){if(this.uniforms.pbr_uUnlit=Boolean(e.unlit),e.pbrMetallicRoughness&&this.parsePbrMetallicRoughness(e.pbrMetallicRoughness),e.normalTexture){this.parseTexture(e.normalTexture,"u_NormalSampler","HAS_NORMALMAP");var t=e.normalTexture.scale,A=void 0===t?1:t;this.uniforms.u_NormalScale=A}if(e.occlusionTexture){this.parseTexture(e.occlusionTexture,"u_OcclusionSampler","HAS_OCCLUSIONMAP");var n=e.occlusionTexture.strength,r=void 0===n?1:n;this.uniforms.u_OcclusionStrength=r}if(e.emissiveTexture&&(this.parseTexture(e.emissiveTexture,"u_EmissiveSampler","HAS_EMISSIVEMAP"),this.uniforms.u_EmissiveFactor=e.emissiveFactor||[0,0,0]),"MASK"===e.alphaMode){var i=e.alphaCutoff,o=void 0===i?.5:i;this.defines.ALPHA_CUTOFF=1,this.uniforms.u_AlphaCutoff=o}else"BLEND"===e.alphaMode&&(c.k.warn("BLEND alphaMode might not work well because it requires mesh sorting")(),Object.assign(this.parameters,{blend:!0,blendEquation:this.gl.FUNC_ADD,blendFunc:[this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA,this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA]}))}}]),e}()},,function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"}),"Lens");t.default=o},function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("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"}),"MoreVert");t.default=o},function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("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"}),"RemoveCircle");t.default=o},function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("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"}),"Visibility");t.default=o},function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("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.46C3.08 8.3 1.78 10.02 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-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");t.default=o},function(e,t,A){"use strict";var n=A(95),r=A(129);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(A(0)),o=(0,n(A(130)).default)(i.createElement("path",{d:"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore");t.default=o},function(e,t,A){"use strict";window.higlassTracks=window.higlassTracks||{},window.higlassTracksByType=window.higlassTracksByType||{},window.higlassDataFetchersByType=window.higlassDataFetchersByType||{};var n=function(){return Math.random().toString(36).substring(2,8)},r=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.force,r=void 0!==A&&A,i=n();window.higlassTracks[i];)i=n();e.name=i,window.higlassTracks[e.name]=e,window.higlassTracksByType[e.config.type]&&!r?console.warn("A track with the same type (".concat(e.config.type,") was already ")+"registered. To override it, set force to true."):window.higlassTracksByType[e.config.type]=e},i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.force,n=void 0!==A&&A;window.higlassDataFetchersByType[e.config.type]&&!n?console.warn("A data fetcher with the same type (".concat(e.config.type,") was already ")+"registered. To override it, set force to true."):window.higlassDataFetchersByType[e.config.type]=e};t.a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.pluginType,n=void 0===A?"track":A;"track"===n?r(e,t):"dataFetcher"===n&&i(e,t)}},function(e){e.exports=JSON.parse('{"name":"vega-lite","author":"Dominik Moritz, Kanit \\"Ham\\" Wongsuphasawat, Arvind Satyanarayan, Jeffrey Heer","version":"5.1.1","collaborators":["Kanit Wongsuphasawat (http://kanitw.yellowpigz.com)","Dominik Moritz (https://www.domoritz.de)","Arvind Satyanarayan (https://arvindsatya.com)","Jeffrey Heer (https://jheer.org)"],"homepage":"https://vega.github.io/vega-lite/","description":"Vega-Lite is a concise high-level language for interactive visualization.","main":"build/vega-lite.js","unpkg":"build/vega-lite.min.js","jsdelivr":"build/vega-lite.min.js","module":"build/src/index","types":"build/src/index.d.ts","bin":{"vl2png":"./bin/vl2png","vl2svg":"./bin/vl2svg","vl2pdf":"./bin/vl2pdf","vl2vg":"./bin/vl2vg"},"directories":{"test":"test"},"files":["bin","build","src","vega-lite*","tsconfig.json"],"scripts":{"changelog":"conventional-changelog -p angular -r 2","prebuild":"yarn clean:build","build":"yarn build:only","build:only":"tsc -p tsconfig.build.json && rollup -c","prebuild:examples":"yarn build:only","build:examples":"yarn data && TZ=America/Los_Angeles scripts/build-examples.sh","prebuild:examples-full":"yarn build:only","build:examples-full":"TZ=America/Los_Angeles scripts/build-examples.sh 1","build:example":"TZ=America/Los_Angeles scripts/build-example.sh","build:toc":"yarn build:jekyll && scripts/generate-toc","build:site":"rollup -c site/rollup.config.js","build:jekyll":"pushd site && bundle exec jekyll build -q && popd","build:versions":"scripts/update-version.sh","clean":"yarn clean:build && del-cli \'site/data/*\' \'examples/compiled/*.png\' && find site/examples ! -name \'index.md\' ! -name \'data\' -type f -delete","clean:build":"del-cli \'build/*\' !build/vega-lite-schema.json","predeploy:site":"yarn presite","deploy:site":"gh-pages -d site","data":"rsync -r node_modules/vega-datasets/data/* site/data","schema":"mkdir -p build && ts-json-schema-generator -f tsconfig.json -p src/index.ts -t TopLevelSpec --no-type-check --no-ref-encode > build/vega-lite-schema.json && yarn renameschema && cp build/vega-lite-schema.json site/_data/","renameschema":"scripts/rename-schema.sh","presite":"yarn data && yarn schema && yarn build:site && yarn build:versions && scripts/create-example-pages.sh","site":"yarn site:only","site:only":"pushd site && bundle exec jekyll serve -I -l && popd","prettierbase":"prettier \'**/*.{md,css,yml}\'","eslintbase":"eslint .","format":"yarn eslintbase --fix && yarn prettierbase --write","lint":"yarn eslintbase && yarn prettierbase --check","jest":"NODE_OPTIONS=--experimental-vm-modules npx jest","test":"yarn jest test/ && yarn lint && yarn schema && yarn jest examples/ && yarn test:runtime","test:cover":"yarn jest --collectCoverage test/","test:inspect":"node --inspect-brk --experimental-vm-modules ./node_modules/.bin/jest --runInBand test","test:runtime":"NODE_OPTIONS=--experimental-vm-modules TZ=America/Los_Angeles npx jest test-runtime/ --config test-runtime/jest-config.json","test:runtime:generate":"yarn build:only && del-cli test-runtime/resources && VL_GENERATE_TESTS=true yarn test:runtime","watch":"tsc -p tsconfig.build.json -w","watch:site":"yarn build:site -w","watch:test":"yarn jest --watch test/"},"repository":{"type":"git","url":"https://github.com/vega/vega-lite.git"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/vega/vega-lite/issues"},"devDependencies":{"@babel/core":"^7.15.0","@babel/preset-env":"^7.15.0","@babel/preset-typescript":"^7.15.0","@rollup/plugin-babel":"^5.3.0","@rollup/plugin-commonjs":"^20.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.0.4","@types/chai":"^4.2.21","@types/d3":"^7.0.0","@types/jest":"^27.0.1","@types/mkdirp":"^1.0.2","@types/pako":"^1.0.2","@typescript-eslint/eslint-plugin":"^4.29.2","@typescript-eslint/parser":"^4.29.2","ajv":"^8.6.2","ajv-formats":"^2.1.1","chai":"^4.3.4","cheerio":"^1.0.0-rc.10","conventional-changelog-cli":"^2.1.1","d3":"^7.0.1","del-cli":"^4.0.1","eslint":"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-jest":"^24.4.0","eslint-plugin-prettier":"^4.0.0","gh-pages":"^3.2.3","highlight.js":"^11.2.0","jest":"^27.0.6","jest-dev-server":"^5.0.3","mkdirp":"^1.0.4","pako":"^2.0.4","prettier":"^2.3.2","puppeteer":"^10.2.0","rollup":"^2.56.3","rollup-plugin-bundle-size":"^1.0.3","rollup-plugin-sourcemaps":"^0.6.3","rollup-plugin-terser":"^7.0.2","serve":"^12.0.0","terser":"^5.7.1","ts-jest":"^27.0.5","ts-json-schema-generator":"^0.95.0","typescript":"~4.4.2","vega-cli":"^5.20.2","vega-datasets":"~2.2.0","vega-embed":"^6.18.2","vega-tooltip":"^0.27.0","yaml-front-matter":"^4.1.1"},"dependencies":{"@types/clone":"~2.1.1","array-flat-polyfill":"^1.0.1","clone":"~2.1.2","fast-deep-equal":"~3.1.3","fast-json-stable-stringify":"~2.1.0","json-stringify-pretty-compact":"~3.0.0","tslib":"~2.3.1","vega-event-selector":"~2.0.6","vega-expression":"~4.0.1","vega-util":"~1.16.1","yargs":"~17.1.1"},"peerDependencies":{"vega":"^5.20.2"},"engines":{"node":">=12"}}')},function(e,t,A){(function(t){var A=function(){"use strict";function e(e,t){return null!=t&&e instanceof t}var A,n,r;try{A=Map}catch(s){A=function(){}}try{n=Set}catch(s){n=function(){}}try{r=Promise}catch(s){r=function(){}}function i(o,s,g,c,u){"object"===typeof s&&(g=s.depth,c=s.prototype,u=s.includeNonEnumerable,s=s.circular);var l=[],I=[],C="undefined"!=typeof t;return"undefined"==typeof s&&(s=!0),"undefined"==typeof g&&(g=1/0),function o(g,h){if(null===g)return null;if(0===h)return g;var f,d;if("object"!=typeof g)return g;if(e(g,A))f=new A;else if(e(g,n))f=new n;else if(e(g,r))f=new r((function(e,t){g.then((function(t){e(o(t,h-1))}),(function(e){t(o(e,h-1))}))}));else if(i.__isArray(g))f=[];else if(i.__isRegExp(g))f=new RegExp(g.source,a(g)),g.lastIndex&&(f.lastIndex=g.lastIndex);else if(i.__isDate(g))f=new Date(g.getTime());else{if(C&&t.isBuffer(g))return f=t.allocUnsafe?t.allocUnsafe(g.length):new t(g.length),g.copy(f),f;e(g,Error)?f=Object.create(g):"undefined"==typeof c?(d=Object.getPrototypeOf(g),f=Object.create(d)):(f=Object.create(c),d=c)}if(s){var B=l.indexOf(g);if(-1!=B)return I[B];l.push(g),I.push(f)}for(var p in e(g,A)&&g.forEach((function(e,t){var A=o(t,h-1),n=o(e,h-1);f.set(A,n)})),e(g,n)&&g.forEach((function(e){var t=o(e,h-1);f.add(t)})),g){var E;d&&(E=Object.getOwnPropertyDescriptor(d,p)),E&&null==E.set||(f[p]=o(g[p],h-1))}if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(g);for(p=0;p<Q.length;p++){var y=Q[p];(!(m=Object.getOwnPropertyDescriptor(g,y))||m.enumerable||u)&&(f[y]=o(g[y],h-1),m.enumerable||Object.defineProperty(f,y,{enumerable:!1}))}}if(u){var v=Object.getOwnPropertyNames(g);for(p=0;p<v.length;p++){var m,b=v[p];(m=Object.getOwnPropertyDescriptor(g,b))&&m.enumerable||(f[b]=o(g[b],h-1),Object.defineProperty(f,b,{enumerable:!1}))}}return f}(o,g)}function o(e){return Object.prototype.toString.call(e)}function a(e){var t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),t}return i.clonePrototype=function(e){if(null===e)return null;var t=function(){};return t.prototype=e,new t},i.__objToStr=o,i.__isDate=function(e){return"object"===typeof e&&"[object Date]"===o(e)},i.__isArray=function(e){return"object"===typeof e&&"[object Array]"===o(e)},i.__isRegExp=function(e){return"object"===typeof e&&"[object RegExp]"===o(e)},i.__getRegExpFlags=a,i}();e.exports&&(e.exports=A)}).call(this,A(188).Buffer)},function(e,t,A){e.exports=function(e){var t={};function A(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,A),r.l=!0,r.exports}return A.m=e,A.c=t,A.d=function(e,t,n){A.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},A.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},A.t=function(e,t){if(1&t&&(e=A(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(A.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)A.d(n,r,function(t){return e[t]}.bind(null,r));return n},A.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return A.d(t,"a",t),t},A.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},A.p="",A(A.s=90)}({17:function(e,t,A){"use strict";t.__esModule=!0,t.default=void 0;var n=A(18),r=function(){function e(){}return e.getFirstMatch=function(e,t){var A=t.match(e);return A&&A.length>0&&A[1]||""},e.getSecondMatch=function(e,t){var A=t.match(e);return A&&A.length>1&&A[2]||""},e.matchAndReturnConst=function(e,t,A){if(e.test(t))return A},e.getWindowsVersionName=function(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,A,n){void 0===n&&(n=!1);var r=e.getVersionPrecision(t),i=e.getVersionPrecision(A),o=Math.max(r,i),a=0,s=e.map([t,A],(function(t){var A=o-e.getVersionPrecision(t),n=t+new Array(A+1).join(".0");return e.map(n.split("."),(function(e){return new Array(20-e.length).join("0")+e})).reverse()}));for(n&&(a=o-Math.min(r,i)),o-=1;o>=a;){if(s[0][o]>s[1][o])return 1;if(s[0][o]===s[1][o]){if(o===a)return 0;o-=1}else if(s[0][o]<s[1][o])return-1}},e.map=function(e,t){var A,n=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(A=0;A<e.length;A+=1)n.push(t(e[A]));return n},e.find=function(e,t){var A,n;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(A=0,n=e.length;A<n;A+=1){var r=e[A];if(t(r,A))return r}},e.assign=function(e){for(var t,A,n=e,r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];if(Object.assign)return Object.assign.apply(Object,[e].concat(i));var a=function(){var e=i[t];"object"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){n[t]=e[t]}))};for(t=0,A=i.length;t<A;t+=1)a();return e},e.getBrowserAlias=function(e){return n.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return n.BROWSER_MAP[e]||""},e}();t.default=r,e.exports=t.default},18:function(e,t,A){"use strict";t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0,t.BROWSER_ALIASES_MAP={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},t.BROWSER_MAP={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},t.PLATFORMS_MAP={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},t.OS_MAP={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},t.ENGINE_MAP={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"}},90:function(e,t,A){"use strict";t.__esModule=!0,t.default=void 0;var n,r=(n=A(91))&&n.__esModule?n:{default:n},i=A(18);function o(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var a=function(){function e(){}var t,A;return e.getParser=function(e,t){if(void 0===t&&(t=!1),"string"!=typeof e)throw new Error("UserAgent should be a string");return new r.default(e,t)},e.parse=function(e){return new r.default(e).getResult()},t=e,(A=[{key:"BROWSER_MAP",get:function(){return i.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return i.ENGINE_MAP}},{key:"OS_MAP",get:function(){return i.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return i.PLATFORMS_MAP}}])&&o(t,A),e}();t.default=a,e.exports=t.default},91:function(e,t,A){"use strict";t.__esModule=!0,t.default=void 0;var n=s(A(92)),r=s(A(93)),i=s(A(94)),o=s(A(95)),a=s(A(17));function s(e){return e&&e.__esModule?e:{default:e}}var g=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||""===e)throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=a.default.find(n.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=a.default.find(r.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||"":t||""},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||"":t||""},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=a.default.find(i.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=a.default.find(o.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return a.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,A={},n=0,r={},i=0;if(Object.keys(e).forEach((function(t){var o=e[t];"string"==typeof o?(r[t]=o,i+=1):"object"==typeof o&&(A[t]=o,n+=1)})),n>0){var o=Object.keys(A),s=a.default.find(o,(function(e){return t.isOS(e)}));if(s){var g=this.satisfies(A[s]);if(void 0!==g)return g}var c=a.default.find(o,(function(e){return t.isPlatform(e)}));if(c){var u=this.satisfies(A[c]);if(void 0!==u)return u}}if(i>0){var l=Object.keys(r),I=a.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==I)return this.compareVersion(r[I])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var A=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),r=a.default.getBrowserTypeByAlias(n);return t&&r&&(n=r.toLowerCase()),n===A},t.compareVersion=function(e){var t=[0],A=e,n=!1,r=this.getBrowserVersion();if("string"==typeof r)return">"===e[0]||"<"===e[0]?(A=e.substr(1),"="===e[1]?(n=!0,A=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?A=e.substr(1):"~"===e[0]&&(n=!0,A=e.substr(1)),t.indexOf(a.default.compareVersions(r,A,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=g,e.exports=t.default},92:function(e,t,A){"use strict";t.__esModule=!0,t.default=void 0;var n,r=(n=A(17))&&n.__esModule?n:{default:n},i=/version\/(\d+(\.?_?\d+)+)/i,o=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},A=r.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},A=r.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},A=r.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},A=r.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},A=r.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},A=r.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},A=r.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},A=r.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},A=r.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},A=r.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},A=r.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},A=r.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},A=r.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},A=r.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},A=r.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return A&&(t.version=A),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},A=r.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},A=r.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},A=r.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},A=r.default.getFirstMatch(i,e)||r.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},A=r.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},A=r.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},A=r.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},A=r.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},A=r.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},A=r.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},A=r.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},A=r.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},A=r.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:function(e){var t=!e.test(/like android/i),A=e.test(/android/i);return t&&A},describe:function(e){var t={name:"Android Browser"},A=r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},A=r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},A=r.default.getFirstMatch(i,e);return A&&(t.version=A),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:r.default.getFirstMatch(t,e),version:r.default.getSecondMatch(t,e)}}}];t.default=o,e.exports=t.default},93:function(e,t,A){"use strict";t.__esModule=!0,t.default=void 0;var n,r=(n=A(17))&&n.__esModule?n:{default:n},i=A(18),o=[{test:[/Roku\/DVP/],describe:function(e){var t=r.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:i.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=r.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:i.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=r.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),A=r.default.getWindowsVersionName(t);return{name:i.OS_MAP.Windows,version:t,versionName:A}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:i.OS_MAP.iOS},A=r.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return A&&(t.version=A),t}},{test:[/macintosh/i],describe:function(e){var t=r.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),A=r.default.getMacOSVersionName(t),n={name:i.OS_MAP.MacOS,version:t};return A&&(n.versionName=A),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=r.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:i.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),A=e.test(/android/i);return t&&A},describe:function(e){var t=r.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),A=r.default.getAndroidVersionName(t),n={name:i.OS_MAP.Android,version:t};return A&&(n.versionName=A),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=r.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),A={name:i.OS_MAP.WebOS};return t&&t.length&&(A.version=t),A}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=r.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||r.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||r.default.getFirstMatch(/\bbb(\d+)/i,e);return{name:i.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=r.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:i.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=r.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:i.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:i.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:i.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=r.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:i.OS_MAP.PlayStation4,version:t}}}];t.default=o,e.exports=t.default},94:function(e,t,A){"use strict";t.__esModule=!0,t.default=void 0;var n,r=(n=A(17))&&n.__esModule?n:{default:n},i=A(18),o=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=r.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",A={type:i.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(A.model=t),A}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:i.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:i.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:i.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:i.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:i.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:i.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),A=e.test(/like (ipod|iphone)/i);return t&&!A},describe:function(e){var t=r.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:i.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:i.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:i.PLATFORMS_MAP.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:i.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:i.PLATFORMS_MAP.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:i.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:function(){return{type:i.PLATFORMS_MAP.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:i.PLATFORMS_MAP.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:i.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:i.PLATFORMS_MAP.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:i.PLATFORMS_MAP.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:i.PLATFORMS_MAP.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:i.PLATFORMS_MAP.tv}}}];t.default=o,e.exports=t.default},95:function(e,t,A){"use strict";t.__esModule=!0,t.default=void 0;var n,r=(n=A(17))&&n.__esModule?n:{default:n},i=A(18),o=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:i.ENGINE_MAP.Blink};var t=r.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:i.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:i.ENGINE_MAP.Trident},A=r.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:i.ENGINE_MAP.Presto},A=r.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:function(e){var t=e.test(/gecko/i),A=e.test(/like gecko/i);return t&&!A},describe:function(e){var t={name:i.ENGINE_MAP.Gecko},A=r.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:i.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:i.ENGINE_MAP.WebKit},A=r.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return A&&(t.version=A),t}}];t.default=o,e.exports=t.default}})},function(e,t,A){"use strict";var n=A(0),r=A.n(n),i=A(39),o=A.n(i);function a(e,t){for(var A=t;A;){if(A===e)return!0;A=A.parentNode}return!1}var s=A(282);function g(e){return(g="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){"function"===typeof e?e(t):"object"===g(e)&&e&&"current"in e&&(e.current=t)}function u(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];return function(e){t.forEach((function(t){c(t,e)}))}}var l=A(698),I=A.n(l);function C(e,t,A,n){var r=o.a.unstable_batchedUpdates?function(e){o.a.unstable_batchedUpdates(A,e)}:A;return I()(e,t,r,n)}var h=A(13),f=A.n(h);function d(e){return(d="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function B(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function E(e,t){return!t||"object"!==d(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Q(e){return(Q=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var v=function(e){function t(){return B(this,t),E(this,Q(t).apply(this,arguments))}var A,n,r;return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(t,e),A=t,(n=[{key:"componentDidMount",value:function(){this.createContainer()}},{key:"componentDidUpdate",value:function(e){var t=this.props.didUpdate;t&&t(e)}},{key:"componentWillUnmount",value:function(){this.removeContainer()}},{key:"createContainer",value:function(){this._container=this.props.getContainer(),this.forceUpdate()}},{key:"removeContainer",value:function(){this._container&&this._container.parentNode.removeChild(this._container)}},{key:"render",value:function(){return this._container?o.a.createPortal(this.props.children,this._container):null}}])&&p(A.prototype,n),r&&p(A,r),t}(r.a.Component);v.propTypes={getContainer:f.a.func.isRequired,children:f.a.node.isRequired,didUpdate:f.a.func};var m=A(61),b=A.n(m);function w(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function S(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?w(Object(A),!0).forEach((function(t){F(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):w(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function F(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}function R(e,t,A){return A?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}var D,G=A(183),k=A.n(G);function x(e){return(x="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function N(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}function U(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}var _={Webkit:"-webkit-",Moz:"-moz-",ms:"-ms-",O:"-o-"};function M(){if(void 0!==D)return D;D="";var e=document.createElement("p").style;for(var t in _)t+"Transform"in e&&(D=t);return D}function O(){return M()?"".concat(M(),"TransitionProperty"):"transitionProperty"}function L(){return M()?"".concat(M(),"Transform"):"transform"}function T(e,t){var A=O();A&&(e.style[A]=t,"transitionProperty"!==A&&(e.style.transitionProperty=t))}function Z(e,t){var A=L();A&&(e.style[A]=t,"transform"!==A&&(e.style.transform=t))}var H,Y=/matrix\((.*)\)/,J=/matrix3d\((.*)\)/;function j(e){var t=e.style.display;e.style.display="none",e.offsetHeight,e.style.display=t}function P(e,t,A){var n=A;if("object"!==x(t))return"undefined"!==typeof n?("number"===typeof n&&(n="".concat(n,"px")),void(e.style[t]=n)):H(e,t);for(var r in t)t.hasOwnProperty(r)&&P(e,r,t[r])}function V(e,t){var A=e["page".concat(t?"Y":"X","Offset")],n="scroll".concat(t?"Top":"Left");if("number"!==typeof A){var r=e.document;"number"!==typeof(A=r.documentElement[n])&&(A=r.body[n])}return A}function K(e){return V(e)}function W(e){return V(e,!0)}function X(e){var t=function(e){var t,A,n,r=e.ownerDocument,i=r.body,o=r&&r.documentElement;return A=(t=e.getBoundingClientRect()).left,n=t.top,{left:A-=o.clientLeft||i.clientLeft||0,top:n-=o.clientTop||i.clientTop||0}}(e),A=e.ownerDocument,n=A.defaultView||A.parentWindow;return t.left+=K(n),t.top+=W(n),t}function q(e){return null!==e&&void 0!==e&&e==e.window}function z(e){return q(e)?e.document:9===e.nodeType?e:e.ownerDocument}var $=new RegExp("^(".concat(/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,")(?!px)[a-z%]+$"),"i"),ee=/^(top|right|bottom|left)$/,te="left";function Ae(e,t){return"left"===e?t.useCssRight?"right":e:t.useCssBottom?"bottom":e}function ne(e){return"left"===e?"right":"right"===e?"left":"top"===e?"bottom":"bottom"===e?"top":void 0}function re(e,t,A){"static"===P(e,"position")&&(e.style.position="relative");var n=-999,r=-999,i=Ae("left",A),o=Ae("top",A),a=ne(i),s=ne(o);"left"!==i&&(n=999),"top"!==o&&(r=999);var g,c="",u=X(e);("left"in t||"top"in t)&&(c=(g=e).style.transitionProperty||g.style[O()]||"",T(e,"none")),"left"in t&&(e.style[a]="",e.style[i]="".concat(n,"px")),"top"in t&&(e.style[s]="",e.style[o]="".concat(r,"px")),j(e);var l=X(e),I={};for(var C in t)if(t.hasOwnProperty(C)){var h=Ae(C,A),f="left"===C?n:r,d=u[C]-l[C];I[h]=h===C?f+d:f-d}P(e,I),j(e),("left"in t||"top"in t)&&T(e,c);var B={};for(var p in t)if(t.hasOwnProperty(p)){var E=Ae(p,A),Q=t[p]-u[p];B[E]=p===E?I[E]+Q:I[E]-Q}P(e,B)}function ie(e,t){var A=X(e),n=function(e){var t=window.getComputedStyle(e,null),A=t.getPropertyValue("transform")||t.getPropertyValue(L());if(A&&"none"!==A){var n=A.replace(/[^0-9\-.,]/g,"").split(",");return{x:parseFloat(n[12]||n[4],0),y:parseFloat(n[13]||n[5],0)}}return{x:0,y:0}}(e),r={x:n.x,y:n.y};"left"in t&&(r.x=n.x+t.left-A.left),"top"in t&&(r.y=n.y+t.top-A.top),function(e,t){var A=window.getComputedStyle(e,null),n=A.getPropertyValue("transform")||A.getPropertyValue(L());if(n&&"none"!==n){var r,i=n.match(Y);if(i)(r=(i=i[1]).split(",").map((function(e){return parseFloat(e,10)})))[4]=t.x,r[5]=t.y,Z(e,"matrix(".concat(r.join(","),")"));else(r=n.match(J)[1].split(",").map((function(e){return parseFloat(e,10)})))[12]=t.x,r[13]=t.y,Z(e,"matrix3d(".concat(r.join(","),")"))}else Z(e,"translateX(".concat(t.x,"px) translateY(").concat(t.y,"px) translateZ(0)"))}(e,r)}function oe(e,t){for(var A=0;A<e.length;A++)t(e[A])}function ae(e){return"border-box"===H(e,"boxSizing")}"undefined"!==typeof window&&(H=window.getComputedStyle?function(e,t,A){var n=A,r="",i=z(e);return(n=n||i.defaultView.getComputedStyle(e,null))&&(r=n.getPropertyValue(t)||n[t]),r}:function(e,t){var A=e.currentStyle&&e.currentStyle[t];if($.test(A)&&!ee.test(t)){var n=e.style,r=n[te],i=e.runtimeStyle[te];e.runtimeStyle[te]=e.currentStyle[te],n[te]="fontSize"===t?"1em":A||0,A=n.pixelLeft+"px",n[te]=r,e.runtimeStyle[te]=i}return""===A?"auto":A});var se=["margin","border","padding"];function ge(e,t,A){var n,r={},i=e.style;for(n in t)t.hasOwnProperty(n)&&(r[n]=i[n],i[n]=t[n]);for(n in A.call(e),t)t.hasOwnProperty(n)&&(i[n]=r[n])}function ce(e,t,A){var n,r,i,o=0;for(r=0;r<t.length;r++)if(n=t[r])for(i=0;i<A.length;i++){var a=void 0;a="border"===n?"".concat(n).concat(A[i],"Width"):n+A[i],o+=parseFloat(H(e,a))||0}return o}var ue={getParent:function(e){var t=e;do{t=11===t.nodeType&&t.host?t.host:t.parentNode}while(t&&1!==t.nodeType&&9!==t.nodeType);return t}};function le(e,t,A){var n=A;if(q(e))return"width"===t?ue.viewportWidth(e):ue.viewportHeight(e);if(9===e.nodeType)return"width"===t?ue.docWidth(e):ue.docHeight(e);var r="width"===t?["Left","Right"]:["Top","Bottom"],i="width"===t?e.getBoundingClientRect().width:e.getBoundingClientRect().height,o=(H(e),ae(e)),a=0;(null===i||void 0===i||i<=0)&&(i=void 0,(null===(a=H(e,t))||void 0===a||Number(a)<0)&&(a=e.style[t]||0),a=parseFloat(a)||0),void 0===n&&(n=o?1:-1);var s=void 0!==i||o,g=i||a;return-1===n?s?g-ce(e,["border","padding"],r):a:s?1===n?g:g+(2===n?-ce(e,["border"],r):ce(e,["margin"],r)):a+ce(e,se.slice(n),r)}oe(["Width","Height"],(function(e){ue["doc".concat(e)]=function(t){var A=t.document;return Math.max(A.documentElement["scroll".concat(e)],A.body["scroll".concat(e)],ue["viewport".concat(e)](A))},ue["viewport".concat(e)]=function(t){var A="client".concat(e),n=t.document,r=n.body,i=n.documentElement[A];return"CSS1Compat"===n.compatMode&&i||r&&r[A]||i}}));var Ie={position:"absolute",visibility:"hidden",display:"block"};function Ce(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];var n,r=t[0];return 0!==r.offsetWidth?n=le.apply(void 0,t):ge(r,Ie,(function(){n=le.apply(void 0,t)})),n}function he(e,t){for(var A in t)t.hasOwnProperty(A)&&(e[A]=t[A]);return e}oe(["width","height"],(function(e){var t=e.charAt(0).toUpperCase()+e.slice(1);ue["outer".concat(t)]=function(t,A){return t&&Ce(t,e,A?0:1)};var A="width"===e?["Left","Right"]:["Top","Bottom"];ue[e]=function(t,n){var r=n;if(void 0===r)return t&&Ce(t,e,-1);if(t){H(t);return ae(t)&&(r+=ce(t,["padding","border"],A)),P(t,e,r)}}}));var fe={getWindow:function(e){if(e&&e.document&&e.setTimeout)return e;var t=e.ownerDocument||e;return t.defaultView||t.parentWindow},getDocument:z,offset:function(e,t,A){if("undefined"===typeof t)return X(e);!function(e,t,A){if(A.ignoreShake){var n=X(e),r=n.left.toFixed(0),i=n.top.toFixed(0),o=t.left.toFixed(0),a=t.top.toFixed(0);if(r===o&&i===a)return}A.useCssRight||A.useCssBottom?re(e,t,A):A.useCssTransform&&L()in document.body.style?ie(e,t):re(e,t,A)}(e,t,A||{})},isWindow:q,each:oe,css:P,clone:function(e){var t,A={};for(t in e)e.hasOwnProperty(t)&&(A[t]=e[t]);if(e.overflow)for(t in e)e.hasOwnProperty(t)&&(A.overflow[t]=e.overflow[t]);return A},mix:he,getWindowScrollLeft:function(e){return K(e)},getWindowScrollTop:function(e){return W(e)},merge:function(){for(var e={},t=0;t<arguments.length;t++)fe.mix(e,t<0||arguments.length<=t?void 0:arguments[t]);return e},viewportWidth:0,viewportHeight:0};he(fe,ue);var de=fe.getParent;function Be(e){if(fe.isWindow(e)||9===e.nodeType)return null;var t,A=fe.getDocument(e).body,n=fe.css(e,"position");if(!("fixed"===n||"absolute"===n))return"html"===e.nodeName.toLowerCase()?null:de(e);for(t=de(e);t&&t!==A&&9!==t.nodeType;t=de(t))if("static"!==(n=fe.css(t,"position")))return t;return null}var pe=fe.getParent;function Ee(e,t){for(var A={left:0,right:1/0,top:0,bottom:1/0},n=Be(e),r=fe.getDocument(e),i=r.defaultView||r.parentWindow,o=r.body,a=r.documentElement;n;){if(-1!==navigator.userAgent.indexOf("MSIE")&&0===n.clientWidth||n===o||n===a||"visible"===fe.css(n,"overflow")){if(n===o||n===a)break}else{var s=fe.offset(n);s.left+=n.clientLeft,s.top+=n.clientTop,A.top=Math.max(A.top,s.top),A.right=Math.min(A.right,s.left+n.clientWidth),A.bottom=Math.min(A.bottom,s.top+n.clientHeight),A.left=Math.max(A.left,s.left)}n=Be(n)}var g=null;fe.isWindow(e)||9===e.nodeType||(g=e.style.position,"absolute"===fe.css(e,"position")&&(e.style.position="fixed"));var c=fe.getWindowScrollLeft(i),u=fe.getWindowScrollTop(i),l=fe.viewportWidth(i),I=fe.viewportHeight(i),C=a.scrollWidth,h=a.scrollHeight,f=window.getComputedStyle(o);if("hidden"===f.overflowX&&(C=i.innerWidth),"hidden"===f.overflowY&&(h=i.innerHeight),e.style&&(e.style.position=g),t||function(e){if(fe.isWindow(e)||9===e.nodeType)return!1;var t=fe.getDocument(e).body,A=null;for(A=pe(e);A&&A!==t;A=pe(A)){if("fixed"===fe.css(A,"position"))return!0}return!1}(e))A.left=Math.max(A.left,c),A.top=Math.max(A.top,u),A.right=Math.min(A.right,c+l),A.bottom=Math.min(A.bottom,u+I);else{var d=Math.max(C,c+l);A.right=Math.min(A.right,d);var B=Math.max(h,u+I);A.bottom=Math.min(A.bottom,B)}return A.top>=0&&A.left>=0&&A.bottom>A.top&&A.right>A.left?A:null}function Qe(e){var t,A,n;if(fe.isWindow(e)||9===e.nodeType){var r=fe.getWindow(e);t={left:fe.getWindowScrollLeft(r),top:fe.getWindowScrollTop(r)},A=fe.viewportWidth(r),n=fe.viewportHeight(r)}else t=fe.offset(e),A=fe.outerWidth(e),n=fe.outerHeight(e);return t.width=A,t.height=n,t}function ye(e,t){var A=t.charAt(0),n=t.charAt(1),r=e.width,i=e.height,o=e.left,a=e.top;return"c"===A?a+=i/2:"b"===A&&(a+=i),"c"===n?o+=r/2:"r"===n&&(o+=r),{left:o,top:a}}function ve(e,t,A,n,r){var i=ye(t,A[1]),o=ye(e,A[0]),a=[o.left-i.left,o.top-i.top];return{left:Math.round(e.left-a[0]+n[0]-r[0]),top:Math.round(e.top-a[1]+n[1]-r[1])}}function me(e,t,A){return e.left<A.left||e.left+t.width>A.right}function be(e,t,A){return e.top<A.top||e.top+t.height>A.bottom}function we(e,t,A){var n=[];return fe.each(e,(function(e){n.push(e.replace(t,(function(e){return A[e]})))})),n}function Se(e,t){return e[t]=-e[t],e}function Fe(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function Re(e,t){e[0]=Fe(e[0],t.width),e[1]=Fe(e[1],t.height)}function De(e,t,A,n){var r=A.points,i=A.offset||[0,0],o=A.targetOffset||[0,0],a=A.overflow,s=A.source||e;i=[].concat(i),o=[].concat(o);var g={},c=0,u=Ee(s,!(!(a=a||{})||!a.alwaysByViewport)),l=Qe(s);Re(i,l),Re(o,t);var I=ve(l,t,r,i,o),C=fe.merge(l,I);if(u&&(a.adjustX||a.adjustY)&&n){if(a.adjustX&&me(I,l,u)){var h=we(r,/[lr]/gi,{l:"r",r:"l"}),f=Se(i,0),d=Se(o,0);(function(e,t,A){return e.left>A.right||e.left+t.width<A.left})(ve(l,t,h,f,d),l,u)||(c=1,r=h,i=f,o=d)}if(a.adjustY&&be(I,l,u)){var B=we(r,/[tb]/gi,{t:"b",b:"t"}),p=Se(i,1),E=Se(o,1);(function(e,t,A){return e.top>A.bottom||e.top+t.height<A.top})(ve(l,t,B,p,E),l,u)||(c=1,r=B,i=p,o=E)}c&&(I=ve(l,t,r,i,o),fe.mix(C,I));var Q=me(I,l,u),y=be(I,l,u);(Q||y)&&(r=A.points,i=A.offset||[0,0],o=A.targetOffset||[0,0]),g.adjustX=a.adjustX&&Q,g.adjustY=a.adjustY&&y,(g.adjustX||g.adjustY)&&(C=function(e,t,A,n){var r=fe.clone(e),i={width:t.width,height:t.height};return n.adjustX&&r.left<A.left&&(r.left=A.left),n.resizeWidth&&r.left>=A.left&&r.left+i.width>A.right&&(i.width-=r.left+i.width-A.right),n.adjustX&&r.left+i.width>A.right&&(r.left=Math.max(A.right-i.width,A.left)),n.adjustY&&r.top<A.top&&(r.top=A.top),n.resizeHeight&&r.top>=A.top&&r.top+i.height>A.bottom&&(i.height-=r.top+i.height-A.bottom),n.adjustY&&r.top+i.height>A.bottom&&(r.top=Math.max(A.bottom-i.height,A.top)),fe.mix(r,i)}(I,l,u,g))}return C.width!==l.width&&fe.css(s,"width",fe.width(s)+C.width-l.width),C.height!==l.height&&fe.css(s,"height",fe.height(s)+C.height-l.height),fe.offset(s,{left:C.left,top:C.top},{useCssRight:A.useCssRight,useCssBottom:A.useCssBottom,useCssTransform:A.useCssTransform,ignoreShake:A.ignoreShake}),{points:r,offset:i,targetOffset:o,overflow:g}}function Ge(e,t,A){var n=A.target||t;return De(e,Qe(n),A,!function(e,t){var A=Ee(e,t),n=Qe(e);return!A||n.left+n.width<=A.left||n.top+n.height<=A.top||n.left>=A.right||n.top>=A.bottom}(n,A.overflow&&A.overflow.alwaysByViewport))}function ke(e,t,A){var n,r,i=fe.getDocument(e),o=i.defaultView||i.parentWindow,a=fe.getWindowScrollLeft(o),s=fe.getWindowScrollTop(o),g=fe.viewportWidth(o),c=fe.viewportHeight(o);n="pageX"in t?t.pageX:a+t.clientX,r="pageY"in t?t.pageY:s+t.clientY;var u=n>=0&&n<=a+g&&r>=0&&r<=s+c;return De(e,{left:n,top:r,width:0,height:0},function(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?U(A,!0).forEach((function(t){N(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):U(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}({},A,{points:[A.points[0],"cc"]}),u)}Ge.__getOffsetParent=Be,Ge.__getVisibleRectForElement=Ee;var xe=A(699);function Ne(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Ue(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(e);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return Ue(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ue(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function _e(e,t){var A=null,n=null;var r=new xe.a((function(e){var r=Ne(e,1)[0].target.getBoundingClientRect(),i=r.width,o=r.height,a=Math.floor(i),s=Math.floor(o);A===a&&n===s||t({width:a,height:s}),A=a,n=s}));return e&&r.observe(e),function(){r.disconnect()}}function Me(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Oe(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(e);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return Oe(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function Le(e){return(Le="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Te(e){return"function"!==typeof e?null:e()}function Ze(e){return"object"===Le(e)&&e?e:null}var He=r.a.forwardRef((function(e,t){var A=e.children,n=e.disabled,i=e.target,o=e.align,s=e.onAlign,g=e.monitorWindowResize,c=e.monitorBufferTime,l=void 0===c?0:c,I=r.a.useRef({}),h=r.a.useRef(),f=r.a.Children.only(A),d=r.a.useRef({});d.current.disabled=n,d.current.target=i,d.current.onAlign=s;var B=Me(function(e,t){var A=r.a.useRef(!1),n=r.a.useRef(null);function i(){window.clearTimeout(n.current)}return[function r(o){if(A.current&&!0!==o)i(),n.current=window.setTimeout((function(){A.current=!1,r()}),t);else{if(!1===e())return;A.current=!0,i(),n.current=window.setTimeout((function(){A.current=!1}),t)}},function(){A.current=!1,i()}]}((function(){var e=d.current,t=e.disabled,A=e.target;if(!t&&A){var n,r=h.current,i=Te(A),g=Ze(A);I.current.element=i,I.current.point=g;var c=document.activeElement;return i?n=Ge(r,i,o):g&&(n=ke(r,g,o)),function(e,t){e!==document.activeElement&&a(t,e)&&e.focus()}(c,r),s&&s(r,n),!0}return!1}),l),2),p=B[0],E=B[1],Q=r.a.useRef({cancel:function(){}}),y=r.a.useRef({cancel:function(){}});r.a.useEffect((function(){var e,t,A=Te(i),n=Ze(i);h.current!==y.current.element&&(y.current.cancel(),y.current.element=h.current,y.current.cancel=_e(h.current,p)),I.current.element===A&&((e=I.current.point)===(t=n)||e&&t&&("pageX"in t&&"pageY"in t?e.pageX===t.pageX&&e.pageY===t.pageY:"clientX"in t&&"clientY"in t&&e.clientX===t.clientX&&e.clientY===t.clientY))||(p(),Q.current.element!==A&&(Q.current.cancel(),Q.current.element=A,Q.current.cancel=_e(A,p)))})),r.a.useEffect((function(){n?E():p()}),[n]);var v=r.a.useRef(null);return r.a.useEffect((function(){g?v.current||(v.current=C(window,"resize",p)):v.current&&(v.current.remove(),v.current=null)}),[g]),r.a.useEffect((function(){return function(){Q.current.cancel(),y.current.cancel(),v.current&&v.current.remove(),E()}}),[]),r.a.useImperativeHandle(t,(function(){return{forceAlign:function(){return p(!0)}}})),r.a.isValidElement(f)&&(f=r.a.cloneElement(f,{ref:u(f.ref,h)})),f}));He.displayName="Align";var Ye=He,Je=!("undefined"===typeof window||!window.document||!window.document.createElement);function je(e,t){var A={};return A[e.toLowerCase()]=t.toLowerCase(),A["Webkit"+e]="webkit"+t,A["Moz"+e]="moz"+t,A["ms"+e]="MS"+t,A["O"+e]="o"+t.toLowerCase(),A}var Pe=function(e,t){var A={animationend:je("Animation","AnimationEnd"),transitionend:je("Transition","TransitionEnd")};return e&&("AnimationEvent"in t||delete A.animationend.animation,"TransitionEvent"in t||delete A.transitionend.transition),A}(Je,"undefined"!==typeof window?window:{}),Ve={};Je&&(Ve=document.createElement("div").style);var Ke={};function We(e){if(Ke[e])return Ke[e];var t=Pe[e];if(t)for(var A=Object.keys(t),n=A.length,r=0;r<n;r+=1){var i=A[r];if(Object.prototype.hasOwnProperty.call(t,i)&&i in Ve)return Ke[e]=t[i],Ke[e]}return""}var Xe=We("animationend"),qe=We("transitionend"),ze=!(!Xe||!qe);function $e(e,t){return e?"object"===typeof e?e[t.replace(/-\w/g,(function(e){return e[1].toUpperCase()}))]:e+"-"+t:null}var et=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},tt=function(){function e(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,A,n){return A&&e(t.prototype,A),n&&e(t,n),t}}();function At(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var nt=function(e){var t=e,A=!!r.a.forwardRef;function n(e){return!(!e.motionName||!t)}"object"===typeof e&&(t=e.transitionSupport,A="forwardRef"in e?e.forwardRef:A);var i=function(e){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var e=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.onDomUpdate=function(){var t=e.state,A=t.status,r=t.newStatus,i=e.props,o=i.onAppearStart,a=i.onEnterStart,s=i.onLeaveStart,g=i.onAppearActive,c=i.onEnterActive,u=i.onLeaveActive,l=i.motionAppear,I=i.motionEnter,C=i.motionLeave;if(n(e.props)){var h=e.getElement();e.$cacheEle!==h&&(e.removeEventListener(e.$cacheEle),e.addEventListener(h),e.$cacheEle=h),r&&"appear"===A&&l?e.updateStatus(o,null,null,(function(){e.updateActiveStatus(g,"appear")})):r&&"enter"===A&&I?e.updateStatus(a,null,null,(function(){e.updateActiveStatus(c,"enter")})):r&&"leave"===A&&C&&e.updateStatus(s,null,null,(function(){e.updateActiveStatus(u,"leave")}))}},e.onMotionEnd=function(t){var A=e.state,n=A.status,r=A.statusActive,i=e.props,o=i.onAppearEnd,a=i.onEnterEnd,s=i.onLeaveEnd;"appear"===n&&r?e.updateStatus(o,{status:"none"},t):"enter"===n&&r?e.updateStatus(a,{status:"none"},t):"leave"===n&&r&&e.updateStatus(s,{status:"none"},t)},e.setNodeRef=function(t){var A=e.props.internalRef;e.node=t,"function"===typeof A?A(t):A&&"current"in A&&(A.current=t)},e.getElement=function(){try{return Object(s.a)(e.node||e)}catch(t){return e.$cacheEle}},e.addEventListener=function(t){t&&(t.addEventListener(qe,e.onMotionEnd),t.addEventListener(Xe,e.onMotionEnd))},e.removeEventListener=function(t){t&&(t.removeEventListener(qe,e.onMotionEnd),t.removeEventListener(Xe,e.onMotionEnd))},e.updateStatus=function(t,A,n,r){var i=t?t(e.getElement(),n):null;if(!1!==i&&!e._destroyed){var o=void 0;r&&(o=function(){e.nextFrame(r)}),e.setState(et({statusStyle:"object"===typeof i?i:null,newStatus:!1},A),o)}},e.updateActiveStatus=function(t,A){e.nextFrame((function(){if(e.state.status===A){var n=e.props.motionDeadline;e.updateStatus(t,{statusActive:!0}),n>0&&setTimeout((function(){e.onMotionEnd({deadline:!0})}),n)}}))},e.nextFrame=function(t){e.cancelNextFrame(),e.raf=k()(t)},e.cancelNextFrame=function(){e.raf&&(k.a.cancel(e.raf),e.raf=null)},e.state={status:"none",statusActive:!1,newStatus:!1,statusStyle:null},e.$cacheEle=null,e.node=null,e.raf=null,e}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),tt(t,[{key:"componentDidMount",value:function(){this.onDomUpdate()}},{key:"componentDidUpdate",value:function(){this.onDomUpdate()}},{key:"componentWillUnmount",value:function(){this._destroyed=!0,this.removeEventListener(this.$cacheEle),this.cancelNextFrame()}},{key:"render",value:function(){var e,t=this.state,A=t.status,r=t.statusActive,i=t.statusStyle,o=this.props,a=o.children,s=o.motionName,g=o.visible,c=o.removeOnLeave,u=o.leavedClassName,l=o.eventProps;return a?"none"!==A&&n(this.props)?a(et({},l,{className:b()((e={},At(e,$e(s,A),"none"!==A),At(e,$e(s,A+"-active"),"none"!==A&&r),At(e,s,"string"===typeof s),e)),style:i}),this.setNodeRef):g?a(et({},l),this.setNodeRef):c?null:a(et({},l,{className:u}),this.setNodeRef):null}}],[{key:"getDerivedStateFromProps",value:function(e,t){var A=t.prevProps,r=t.status;if(!n(e))return{};var i=e.visible,o=e.motionAppear,a=e.motionEnter,s=e.motionLeave,g=e.motionLeaveImmediately,c={prevProps:e};return("appear"===r&&!o||"enter"===r&&!a||"leave"===r&&!s)&&(c.status="none",c.statusActive=!1,c.newStatus=!1),!A&&i&&o&&(c.status="appear",c.statusActive=!1,c.newStatus=!0),A&&!A.visible&&i&&a&&(c.status="enter",c.statusActive=!1,c.newStatus=!0),(A&&A.visible&&!i&&s||!A&&g&&!i&&s)&&(c.status="leave",c.statusActive=!1,c.newStatus=!0),c}}]),t}(r.a.Component);return i.defaultProps={visible:!0,motionEnter:!0,motionAppear:!0,motionLeave:!0,removeOnLeave:!0},A?r.a.forwardRef((function(e,t){return r.a.createElement(i,et({internalRef:t},e))})):i}(ze),rt=r.a.forwardRef((function(e,t){var A=e.prefixCls,n=e.className,i=e.visible,o=e.style,a=e.children,s=e.onMouseEnter,g=e.onMouseLeave,c=e.onMouseDown,u=e.onTouchStart,l=a;return r.a.Children.count(a)>1&&(l=r.a.createElement("div",{className:"".concat(A,"-content")},a)),r.a.createElement("div",{ref:t,className:b()(n,!i&&"".concat(e.hiddenClassName)),onMouseEnter:s,onMouseLeave:g,onMouseDown:c,onTouchStart:u,style:o},l)}));rt.displayName="PopupInner";var it=rt;function ot(e){var t=e.prefixCls,A=e.motion,n=e.animation,r=e.transitionName;return A||(n?{motionName:"".concat(t,"-").concat(n)}:r?{motionName:r}:null)}function at(e){return(at="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function st(e,t){if(null==e)return{};var A,n,r=function(e,t){if(null==e)return{};var A,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||(r[A]=e[A]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||Object.prototype.propertyIsEnumerable.call(e,A)&&(r[A]=e[A])}return r}function gt(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function ct(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?gt(Object(A),!0).forEach((function(t){ut(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):gt(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function ut(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}function lt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function It(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Ct(e,t){return(Ct=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ht(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var A,n=dt(e);if(t){var r=dt(this).constructor;A=Reflect.construct(n,arguments,r)}else A=n.apply(this,arguments);return ft(this,A)}}function ft(e,t){return!t||"object"!==at(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function dt(e){return(dt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Bt=nt;function pt(e){return e&&e.motionName}var Et=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ct(e,t)}(o,e);var t,A,n,i=ht(o);function o(){var e;return lt(this,o),(e=i.apply(this,arguments)).state={targetWidth:void 0,targetHeight:void 0,status:null,prevVisible:null,alignClassName:null},e.popupRef=r.a.createRef(),e.alignRef=r.a.createRef(),e.nextFrameState=null,e.nextFrameId=null,e.onAlign=function(t,A){var n=e.state.status,r=e.props,i=r.getClassNameFromAlign,o=r.onAlign,a=i(A);"align"===n?e.setState({alignClassName:a,status:"aligned"},(function(){e.alignRef.current.forceAlign()})):"aligned"===n?(e.setState({alignClassName:a,status:"afterAlign"}),o(t,A)):e.setState({alignClassName:a})},e.onMotionEnd=function(){var t=e.props.visible;e.setState({status:t?"AfterMotion":"stable"})},e.setStateOnNextFrame=function(t){e.cancelFrameState(),e.nextFrameState=ct(ct({},e.nextFrameState),t),e.nextFrameId=k()((function(){var t=ct({},e.nextFrameState);e.nextFrameState=null,e.setState(t)}))},e.getMotion=function(){return ct({},ot(e.props))},e.getAlignTarget=function(){var t=e.props,A=t.point,n=t.getRootDomNode;return A||n},e.cancelFrameState=function(){k.a.cancel(e.nextFrameId)},e.renderPopupElement=function(){var t=e.state,A=t.status,n=t.targetHeight,i=t.targetWidth,o=t.alignClassName,a=e.props,s=a.prefixCls,g=a.className,c=a.style,l=a.stretch,I=a.visible,C=a.align,h=a.destroyPopupOnHide,f=a.onMouseEnter,d=a.onMouseLeave,B=a.onMouseDown,p=a.onTouchStart,E=a.children,Q=b()(s,g,o),y="".concat(s,"-hidden"),v={};l&&(-1!==l.indexOf("height")?v.height=n:-1!==l.indexOf("minHeight")&&(v.minHeight=n),-1!==l.indexOf("width")?v.width=i:-1!==l.indexOf("minWidth")&&(v.minWidth=i));var m=ct(ct(ct(ct({},v),e.getZIndexStyle()),c),{},{opacity:"stable"!==A&&I?0:void 0}),w=e.getMotion(),S=I;I&&"beforeMotion"!==A&&"motion"!==A&&"stable"!==A&&(w.motionAppear=!1,w.motionEnter=!1,w.motionLeave=!1),"afterAlign"!==A&&"beforeMotion"!==A||(S=!1);var F=!I||"align"!==A&&"aligned"!==A&&"stable"!==A,R=!0;return"stable"===A&&(R=I),h&&!R?null:r.a.createElement(Bt,Object.assign({visible:S},w,{removeOnLeave:!1,onEnterEnd:e.onMotionEnd,onLeaveEnd:e.onMotionEnd}),(function(t,A){var n=t.style,i=t.className;return r.a.createElement(Ye,{target:e.getAlignTarget(),key:"popup",ref:e.alignRef,monitorWindowResize:!0,disabled:F,align:C,onAlign:e.onAlign},r.a.createElement(it,{prefixCls:s,visible:R,hiddenClassName:y,className:b()(Q,i),ref:u(A,e.popupRef),onMouseEnter:f,onMouseLeave:d,onMouseDown:B,onTouchStart:p,style:ct(ct({},m),n)},E))}))},e.renderMaskElement=function(){var t=e.props,A=t.mask,n=t.maskMotion,i=t.maskTransitionName,o=t.maskAnimation,a=t.prefixCls,s=t.visible;if(!A)return null;var g={};return n&&n.motionName&&(g=ct({motionAppear:!0},ot({motion:n,prefixCls:a,transitionName:i,animation:o}))),r.a.createElement(Bt,Object.assign({},g,{visible:s,removeOnLeave:!0}),(function(t){var A=t.className;return r.a.createElement("div",{style:e.getZIndexStyle(),key:"mask",className:b()("".concat(a,"-mask"),A)})}))},e}return t=o,n=[{key:"getDerivedStateFromProps",value:function(e,t){var A=e.visible,n=st(e,["visible"]),r=t.prevVisible,i=t.status,o={prevVisible:A,status:i},a=ot(n);return null===r&&!1===A?o.status="stable":A!==r&&(A||pt(a)&&["motion","AfterMotion","stable"].includes(i)?o.status=null:o.status="stable",A&&(o.alignClassName=null)),o}}],(A=[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e=this.state.status,t=this.props,A=t.getRootDomNode,n=t.visible,r=t.stretch;if(this.cancelFrameState(),n&&"stable"!==e)switch(e){case null:this.setStateOnNextFrame({status:r?"measure":"align"});break;case"afterAlign":this.setStateOnNextFrame({status:pt(this.getMotion())?"beforeMotion":"stable"});break;case"AfterMotion":this.setStateOnNextFrame({status:"stable"});break;default:var i=["measure","align",null,"beforeMotion","motion"],o=i.indexOf(e),a=i[o+1];-1!==o&&a&&this.setStateOnNextFrame({status:a})}if("measure"===e){var s=A();s&&this.setStateOnNextFrame({targetHeight:s.offsetHeight,targetWidth:s.offsetWidth})}}},{key:"componentWillUnmount",value:function(){this.cancelFrameState()}},{key:"getZIndexStyle",value:function(){return{zIndex:this.props.zIndex}}},{key:"render",value:function(){return r.a.createElement("div",null,this.renderMaskElement(),this.renderPopupElement())}}])&&It(t.prototype,A),n&&It(t,n),o}(n.Component),Qt=r.a.createContext(null);function yt(e){return(yt="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function vt(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function mt(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}function bt(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function wt(e,t){return(wt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function St(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var A,n=Dt(e);if(t){var r=Dt(this).constructor;A=Reflect.construct(n,arguments,r)}else A=n.apply(this,arguments);return Ft(this,A)}}function Ft(e,t){return!t||"object"!==yt(t)&&"function"!==typeof t?Rt(e):t}function Rt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Dt(e){return(Dt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Gt(){}function kt(){return""}function xt(){return window.document}var Nt=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"];var Ut=function(e){var t=function(t){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&wt(e,t)}(c,t);var A,n,i,g=St(c);function c(e){var t,A;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c),(t=g.call(this,e)).popupRef=r.a.createRef(),t.triggerRef=r.a.createRef(),t.onMouseEnter=function(e){var A=t.props.mouseEnterDelay;t.fireEvents("onMouseEnter",e),t.delaySetPopupVisible(!0,A,A?null:e)},t.onMouseMove=function(e){t.fireEvents("onMouseMove",e),t.setPoint(e)},t.onMouseLeave=function(e){t.fireEvents("onMouseLeave",e),t.delaySetPopupVisible(!1,t.props.mouseLeaveDelay)},t.onPopupMouseEnter=function(){t.clearDelayTimer()},t.onPopupMouseLeave=function(e){e.relatedTarget&&!e.relatedTarget.setTimeout&&t.popupRef.current&&t.popupRef.current.popupRef.current&&a(t.popupRef.current.popupRef.current,e.relatedTarget)||t.delaySetPopupVisible(!1,t.props.mouseLeaveDelay)},t.onFocus=function(e){t.fireEvents("onFocus",e),t.clearDelayTimer(),t.isFocusToShow()&&(t.focusTime=Date.now(),t.delaySetPopupVisible(!0,t.props.focusDelay))},t.onMouseDown=function(e){t.fireEvents("onMouseDown",e),t.preClickTime=Date.now()},t.onTouchStart=function(e){t.fireEvents("onTouchStart",e),t.preTouchTime=Date.now()},t.onBlur=function(e){t.fireEvents("onBlur",e),t.clearDelayTimer(),t.isBlurToHide()&&t.delaySetPopupVisible(!1,t.props.blurDelay)},t.onContextMenu=function(e){e.preventDefault(),t.fireEvents("onContextMenu",e),t.setPopupVisible(!0,e)},t.onContextMenuClose=function(){t.isContextMenuToShow()&&t.close()},t.onClick=function(e){if(t.fireEvents("onClick",e),t.focusTime){var A;if(t.preClickTime&&t.preTouchTime?A=Math.min(t.preClickTime,t.preTouchTime):t.preClickTime?A=t.preClickTime:t.preTouchTime&&(A=t.preTouchTime),Math.abs(A-t.focusTime)<20)return;t.focusTime=0}t.preClickTime=0,t.preTouchTime=0,t.isClickToShow()&&(t.isClickToHide()||t.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault();var n=!t.state.popupVisible;(t.isClickToHide()&&!n||n&&t.isClickToShow())&&t.setPopupVisible(!t.state.popupVisible,e)},t.onPopupMouseDown=function(){var e;(t.hasPopupMouseDown=!0,clearTimeout(t.mouseDownTimeout),t.mouseDownTimeout=window.setTimeout((function(){t.hasPopupMouseDown=!1}),0),t.context)&&(e=t.context).onPopupMouseDown.apply(e,arguments)},t.onDocumentClick=function(e){if(!t.props.mask||t.props.maskClosable){var A=e.target,n=t.getRootDomNode(),r=t.getPopupDomNode();a(n,A)||a(r,A)||t.hasPopupMouseDown||t.close()}},t.getRootDomNode=function(){var e=t.props.getTriggerDOMNode;if(e)return e(t.triggerRef.current);try{var A=Object(s.a)(t.triggerRef.current);if(A)return A}catch(n){}return o.a.findDOMNode(Rt(t))},t.getPopupClassNameFromAlign=function(e){var A=[],n=t.props,r=n.popupPlacement,i=n.builtinPlacements,o=n.prefixCls,a=n.alignPoint,s=n.getPopupClassNameFromAlign;return r&&i&&A.push(function(e,t,A,n){for(var r=A.points,i=Object.keys(e),o=0;o<i.length;o+=1){var a=i[o];if(R(e[a].points,r,n))return"".concat(t,"-placement-").concat(a)}return""}(i,o,e,a)),s&&A.push(s(e)),A.join(" ")},t.getComponent=function(){var e=t.props,A=e.prefixCls,n=e.destroyPopupOnHide,i=e.popupClassName,o=e.onPopupAlign,a=e.popupMotion,s=e.popupAnimation,g=e.popupTransitionName,c=e.popupStyle,u=e.mask,l=e.maskAnimation,I=e.maskTransitionName,C=e.maskMotion,h=e.zIndex,f=e.popup,d=e.stretch,B=e.alignPoint,p=t.state,E=p.popupVisible,Q=p.point,y=t.getPopupAlign(),v={};return t.isMouseEnterToShow()&&(v.onMouseEnter=t.onPopupMouseEnter),t.isMouseLeaveToHide()&&(v.onMouseLeave=t.onPopupMouseLeave),v.onMouseDown=t.onPopupMouseDown,v.onTouchStart=t.onPopupMouseDown,r.a.createElement(Et,Object.assign({prefixCls:A,destroyPopupOnHide:n,visible:E,point:B&&Q,className:i,align:y,onAlign:o,animation:s,getClassNameFromAlign:t.getPopupClassNameFromAlign},v,{stretch:d,getRootDomNode:t.getRootDomNode,style:c,mask:u,zIndex:h,transitionName:g,maskAnimation:l,maskTransitionName:I,maskMotion:C,ref:t.popupRef,motion:a}),"function"===typeof f?f():f)},t.getContainer=function(){var e=Rt(t).props,A=document.createElement("div");return A.style.position="absolute",A.style.top="0",A.style.left="0",A.style.width="100%",(e.getPopupContainer?e.getPopupContainer(t.getRootDomNode()):e.getDocument().body).appendChild(A),A},t.setPoint=function(e){t.props.alignPoint&&e&&t.setState({point:{pageX:e.pageX,pageY:e.pageY}})},t.handlePortalUpdate=function(){t.state.prevPopupVisible!==t.state.popupVisible&&t.props.afterPopupVisibleChange(t.state.popupVisible)},A="popupVisible"in e?!!e.popupVisible:!!e.defaultPopupVisible,t.state={prevPopupVisible:A,popupVisible:A},Nt.forEach((function(e){t["fire".concat(e)]=function(A){t.fireEvents(e,A)}})),t}return A=c,i=[{key:"getDerivedStateFromProps",value:function(e,t){var A=e.popupVisible,n={};return void 0!==A&&t.popupVisible!==A&&(n.popupVisible=A,n.prevPopupVisible=t.popupVisible),n}}],(n=[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e,t=this.props;if(this.state.popupVisible)return this.clickOutsideHandler||!this.isClickToHide()&&!this.isContextMenuToShow()||(e=t.getDocument(),this.clickOutsideHandler=C(e,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(e=e||t.getDocument(),this.touchOutsideHandler=C(e,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(e=e||t.getDocument(),this.contextMenuOutsideHandler1=C(e,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=C(window,"blur",this.onContextMenuClose)));this.clearOutsideHandler()}},{key:"componentWillUnmount",value:function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout)}},{key:"getPopupDomNode",value:function(){return this.popupRef.current&&this.popupRef.current.popupRef.current?this.popupRef.current.popupRef.current:null}},{key:"getPopupAlign",value:function(){var e=this.props,t=e.popupPlacement,A=e.popupAlign,n=e.builtinPlacements;return t&&n?function(e,t,A){return S(S({},e[t]||{}),A)}(n,t,A):A}},{key:"setPopupVisible",value:function(e,t){var A=this.props.alignPoint,n=this.state.popupVisible;this.clearDelayTimer(),n!==e&&("popupVisible"in this.props||this.setState({popupVisible:e,prevPopupVisible:n}),this.props.onPopupVisibleChange(e)),A&&t&&this.setPoint(t)}},{key:"delaySetPopupVisible",value:function(e,t,A){var n=this,r=1e3*t;if(this.clearDelayTimer(),r){var i=A?{pageX:A.pageX,pageY:A.pageY}:null;this.delayTimer=window.setTimeout((function(){n.setPopupVisible(e,i),n.clearDelayTimer()}),r)}else this.setPopupVisible(e,A)}},{key:"clearDelayTimer",value:function(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=null)}},{key:"clearOutsideHandler",value:function(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextMenuOutsideHandler1&&(this.contextMenuOutsideHandler1.remove(),this.contextMenuOutsideHandler1=null),this.contextMenuOutsideHandler2&&(this.contextMenuOutsideHandler2.remove(),this.contextMenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)}},{key:"createTwoChains",value:function(e){var t=this.props.children.props,A=this.props;return t[e]&&A[e]?this["fire".concat(e)]:t[e]||A[e]}},{key:"isClickToShow",value:function(){var e=this.props,t=e.action,A=e.showAction;return-1!==t.indexOf("click")||-1!==A.indexOf("click")}},{key:"isContextMenuToShow",value:function(){var e=this.props,t=e.action,A=e.showAction;return-1!==t.indexOf("contextMenu")||-1!==A.indexOf("contextMenu")}},{key:"isClickToHide",value:function(){var e=this.props,t=e.action,A=e.hideAction;return-1!==t.indexOf("click")||-1!==A.indexOf("click")}},{key:"isMouseEnterToShow",value:function(){var e=this.props,t=e.action,A=e.showAction;return-1!==t.indexOf("hover")||-1!==A.indexOf("mouseEnter")}},{key:"isMouseLeaveToHide",value:function(){var e=this.props,t=e.action,A=e.hideAction;return-1!==t.indexOf("hover")||-1!==A.indexOf("mouseLeave")}},{key:"isFocusToShow",value:function(){var e=this.props,t=e.action,A=e.showAction;return-1!==t.indexOf("focus")||-1!==A.indexOf("focus")}},{key:"isBlurToHide",value:function(){var e=this.props,t=e.action,A=e.hideAction;return-1!==t.indexOf("focus")||-1!==A.indexOf("blur")}},{key:"forcePopupAlign",value:function(){this.state.popupVisible&&this.popupRef.current&&this.popupRef.current.alignRef.current&&this.popupRef.current.alignRef.current.forceAlign()}},{key:"fireEvents",value:function(e,t){var A=this.props.children.props[e];A&&A(t);var n=this.props[e];n&&n(t)}},{key:"close",value:function(){this.setPopupVisible(!1)}},{key:"render",value:function(){var t=this.state.popupVisible,A=this.props,n=A.children,i=A.forceRender,o=A.alignPoint,a=A.className,s=r.a.Children.only(n),g={key:"trigger"};this.isContextMenuToShow()?g.onContextMenu=this.onContextMenu:g.onContextMenu=this.createTwoChains("onContextMenu"),this.isClickToHide()||this.isClickToShow()?(g.onClick=this.onClick,g.onMouseDown=this.onMouseDown,g.onTouchStart=this.onTouchStart):(g.onClick=this.createTwoChains("onClick"),g.onMouseDown=this.createTwoChains("onMouseDown"),g.onTouchStart=this.createTwoChains("onTouchStart")),this.isMouseEnterToShow()?(g.onMouseEnter=this.onMouseEnter,o&&(g.onMouseMove=this.onMouseMove)):g.onMouseEnter=this.createTwoChains("onMouseEnter"),this.isMouseLeaveToHide()?g.onMouseLeave=this.onMouseLeave:g.onMouseLeave=this.createTwoChains("onMouseLeave"),this.isFocusToShow()||this.isBlurToHide()?(g.onFocus=this.onFocus,g.onBlur=this.onBlur):(g.onFocus=this.createTwoChains("onFocus"),g.onBlur=this.createTwoChains("onBlur"));var c=b()(s&&s.props&&s.props.className,a);c&&(g.className=c);var l,I=function(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?vt(Object(A),!0).forEach((function(t){mt(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):vt(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}({},g);(l=s).type&&l.type.prototype&&!l.type.prototype.render||"function"===typeof l&&l.prototype&&!l.prototype.render||(I.ref=u(this.triggerRef,s.ref));var C,h=r.a.cloneElement(s,I);return(t||this.popupRef.current||i)&&(C=r.a.createElement(e,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),r.a.createElement(Qt.Provider,{value:{onPopupMouseDown:this.onPopupMouseDown}},h,C)}}])&&bt(A.prototype,n),i&&bt(A,i),c}(r.a.Component);return t.contextType=Qt,t.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:kt,getDocument:xt,onPopupVisibleChange:Gt,afterPopupVisibleChange:Gt,onPopupAlign:Gt,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[]},t}(v),_t={adjustX:1,adjustY:1},Mt=[0,0],Ot={left:{points:["cr","cl"],overflow:_t,offset:[-4,0],targetOffset:Mt},right:{points:["cl","cr"],overflow:_t,offset:[4,0],targetOffset:Mt},top:{points:["bc","tc"],overflow:_t,offset:[0,-4],targetOffset:Mt},bottom:{points:["tc","bc"],overflow:_t,offset:[0,4],targetOffset:Mt},topLeft:{points:["bl","tl"],overflow:_t,offset:[0,-4],targetOffset:Mt},leftTop:{points:["tr","tl"],overflow:_t,offset:[-4,0],targetOffset:Mt},topRight:{points:["br","tr"],overflow:_t,offset:[0,-4],targetOffset:Mt},rightTop:{points:["tl","tr"],overflow:_t,offset:[4,0],targetOffset:Mt},bottomRight:{points:["tr","br"],overflow:_t,offset:[0,4],targetOffset:Mt},rightBottom:{points:["bl","br"],overflow:_t,offset:[4,0],targetOffset:Mt},bottomLeft:{points:["tl","bl"],overflow:_t,offset:[0,4],targetOffset:Mt},leftBottom:{points:["br","bl"],overflow:_t,offset:[-4,0],targetOffset:Mt}},Lt=function(e){var t=e.overlay,A=e.prefixCls,n=e.id;return r.a.createElement("div",{className:"".concat(A,"-inner"),id:n,role:"tooltip"},"function"===typeof t?t():t)};function Tt(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function Zt(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}function Ht(e,t){if(null==e)return{};var A,n,r=function(e,t){if(null==e)return{};var A,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||(r[A]=e[A]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||Object.prototype.propertyIsEnumerable.call(e,A)&&(r[A]=e[A])}return r}var Yt=Object(n.forwardRef)((function(e,t){var A=e.overlayClassName,i=e.trigger,o=void 0===i?["hover"]:i,a=e.mouseEnterDelay,s=void 0===a?0:a,g=e.mouseLeaveDelay,c=void 0===g?.1:g,u=e.overlayStyle,l=e.prefixCls,I=void 0===l?"rc-tooltip":l,C=e.children,h=e.onVisibleChange,f=e.afterVisibleChange,d=e.transitionName,B=e.animation,p=e.placement,E=void 0===p?"right":p,Q=e.align,y=void 0===Q?{}:Q,v=e.destroyTooltipOnHide,m=void 0!==v&&v,b=e.defaultVisible,w=e.getTooltipContainer,S=Ht(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),F=Object(n.useRef)(null);Object(n.useImperativeHandle)(t,(function(){return F.current}));var R=function(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?Tt(Object(A),!0).forEach((function(t){Zt(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):Tt(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}({},S);"visible"in e&&(R.popupVisible=e.visible);return r.a.createElement(Ut,Object.assign({popupClassName:A,prefixCls:I,popup:function(){var t=e.arrowContent,A=void 0===t?null:t,n=e.overlay,i=e.id;return[r.a.createElement("div",{className:"".concat(I,"-arrow"),key:"arrow"},A),r.a.createElement(Lt,{key:"content",prefixCls:I,id:i,overlay:n})]},action:o,builtinPlacements:Ot,popupPlacement:E,ref:F,popupAlign:y,getPopupContainer:w,onPopupVisibleChange:h,afterPopupVisibleChange:f,popupTransitionName:d,popupAnimation:B,defaultPopupVisible:b,destroyPopupOnHide:m,mouseLeaveDelay:c,popupStyle:u,mouseEnterDelay:s},R),C)}));t.a=Yt},function(e,t,A){"use strict";var n=A(25),r=A(21),i=A(1157),o=A(14),a=["xs","sm","md","lg","xl"];function s(e){var t=e.values,A=void 0===t?{xs:0,sm:600,md:960,lg:1280,xl:1920}:t,n=e.unit,i=void 0===n?"px":n,s=e.step,g=void 0===s?5:s,c=Object(r.a)(e,["values","unit","step"]);function u(e){var t="number"===typeof A[e]?A[e]:e;return"@media (min-width:".concat(t).concat(i,")")}function l(e,t){var n=a.indexOf(t);return n===a.length-1?u(e):"@media (min-width:".concat("number"===typeof A[e]?A[e]:e).concat(i,") and ")+"(max-width:".concat((-1!==n&&"number"===typeof A[a[n+1]]?A[a[n+1]]:t)-g/100).concat(i,")")}return Object(o.a)({keys:a,values:A,up:u,down:function(e){var t=a.indexOf(e)+1,n=A[a[t]];return t===a.length?u("xs"):"@media (max-width:".concat(("number"===typeof n&&t>0?n:e)-g/100).concat(i,")")},between:l,only:function(e){return l(e,e)},width:function(e){return A[e]}},c)}function g(e,t,A){var r;return Object(o.a)({gutters:function(){var A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return console.warn(["Material-UI: theme.mixins.gutters() is deprecated.","You can use the source of the mixin directly:","\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n "].join("\n")),Object(o.a)({paddingLeft:t(2),paddingRight:t(2)},A,Object(n.a)({},e.up("sm"),Object(o.a)({paddingLeft:t(3),paddingRight:t(3)},A[e.up("sm")])))},toolbar:(r={minHeight:56},Object(n.a)(r,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),Object(n.a)(r,e.up("sm"),{minHeight:64}),r)},A)}var c=A(717),u={black:"#000",white:"#fff"},l=A(426),I={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},C={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},h={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},f={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},d={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},B={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},p=A(60),E={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:u.white,default:l.a[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},Q={text:{primary:u.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:l.a[800],default:"#303030"},action:{active:u.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function y(e,t,A,n){var r=n.light||n,i=n.dark||1.5*n;e[t]||(e.hasOwnProperty(A)?e[t]=e[A]:"light"===t?e.light=Object(p.d)(e.main,r):"dark"===t&&(e.dark=Object(p.b)(e.main,i)))}function v(e){var t=e.primary,A=void 0===t?{light:I[300],main:I[500],dark:I[700]}:t,n=e.secondary,a=void 0===n?{light:C.A200,main:C.A400,dark:C.A700}:n,s=e.error,g=void 0===s?{light:h[300],main:h[500],dark:h[700]}:s,v=e.warning,m=void 0===v?{light:f[300],main:f[500],dark:f[700]}:v,b=e.info,w=void 0===b?{light:d[300],main:d[500],dark:d[700]}:b,S=e.success,F=void 0===S?{light:B[300],main:B[500],dark:B[700]}:S,R=e.type,D=void 0===R?"light":R,G=e.contrastThreshold,k=void 0===G?3:G,x=e.tonalOffset,N=void 0===x?.2:x,U=Object(r.a)(e,["primary","secondary","error","warning","info","success","type","contrastThreshold","tonalOffset"]);function _(e){return Object(p.c)(e,Q.text.primary)>=k?Q.text.primary:E.text.primary}var M=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:700;if(!(e=Object(o.a)({},e)).main&&e[t]&&(e.main=e[t]),!e.main)throw new Error(Object(c.a)(4,t));if("string"!==typeof e.main)throw new Error(Object(c.a)(5,JSON.stringify(e.main)));return y(e,"light",A,N),y(e,"dark",n,N),e.contrastText||(e.contrastText=_(e.main)),e},O={dark:Q,light:E};return Object(i.a)(Object(o.a)({common:u,type:D,primary:M(A),secondary:M(a,"A400","A200","A700"),error:M(g),warning:M(m),info:M(w),success:M(F),grey:l.a,contrastThreshold:k,getContrastText:_,augmentColor:M,tonalOffset:N},O[D]),U)}function m(e){return Math.round(1e5*e)/1e5}function b(e){return m(e)}var w={textTransform:"uppercase"};function S(e,t){var A="function"===typeof t?t(e):t,n=A.fontFamily,a=void 0===n?'"Roboto", "Helvetica", "Arial", sans-serif':n,s=A.fontSize,g=void 0===s?14:s,c=A.fontWeightLight,u=void 0===c?300:c,l=A.fontWeightRegular,I=void 0===l?400:l,C=A.fontWeightMedium,h=void 0===C?500:C,f=A.fontWeightBold,d=void 0===f?700:f,B=A.htmlFontSize,p=void 0===B?16:B,E=A.allVariants,Q=A.pxToRem,y=Object(r.a)(A,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"]);var v=g/14,S=Q||function(e){return"".concat(e/p*v,"rem")},F=function(e,t,A,n,r){return Object(o.a)({fontFamily:a,fontWeight:e,fontSize:S(t),lineHeight:A},'"Roboto", "Helvetica", "Arial", sans-serif'===a?{letterSpacing:"".concat(m(n/t),"em")}:{},r,E)},R={h1:F(u,96,1.167,-1.5),h2:F(u,60,1.2,-.5),h3:F(I,48,1.167,0),h4:F(I,34,1.235,.25),h5:F(I,24,1.334,0),h6:F(h,20,1.6,.15),subtitle1:F(I,16,1.75,.15),subtitle2:F(h,14,1.57,.1),body1:F(I,16,1.5,.15),body2:F(I,14,1.43,.15),button:F(h,14,1.75,.4,w),caption:F(I,12,1.66,.4),overline:F(I,12,2.66,1,w)};return Object(i.a)(Object(o.a)({htmlFontSize:p,pxToRem:S,round:b,fontFamily:a,fontSize:g,fontWeightLight:u,fontWeightRegular:I,fontWeightMedium:h,fontWeightBold:d},R),y,{clone:!1})}function F(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(.2,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(.14,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(.12,")")].join(",")}var R=["none",F(0,2,1,-1,0,1,1,0,0,1,3,0),F(0,3,1,-2,0,2,2,0,0,1,5,0),F(0,3,3,-2,0,3,4,0,0,1,8,0),F(0,2,4,-1,0,4,5,0,0,1,10,0),F(0,3,5,-1,0,5,8,0,0,1,14,0),F(0,3,5,-1,0,6,10,0,0,1,18,0),F(0,4,5,-2,0,7,10,1,0,2,16,1),F(0,5,5,-3,0,8,10,1,0,3,14,2),F(0,5,6,-3,0,9,12,1,0,3,16,2),F(0,6,6,-3,0,10,14,1,0,4,18,3),F(0,6,7,-4,0,11,15,1,0,4,20,3),F(0,7,8,-4,0,12,17,2,0,5,22,4),F(0,7,8,-4,0,13,19,2,0,5,24,4),F(0,7,9,-4,0,14,21,2,0,5,26,4),F(0,8,9,-5,0,15,22,2,0,6,28,5),F(0,8,10,-5,0,16,24,2,0,6,30,5),F(0,8,11,-5,0,17,26,2,0,6,32,5),F(0,9,11,-5,0,18,28,2,0,7,34,6),F(0,9,12,-6,0,19,29,2,0,7,36,6),F(0,10,13,-6,0,20,31,3,0,8,38,7),F(0,10,13,-6,0,21,33,3,0,8,40,7),F(0,10,14,-6,0,22,35,3,0,8,42,7),F(0,11,14,-7,0,23,36,3,0,9,44,8),F(0,11,15,-7,0,24,38,3,0,9,46,8)],D={borderRadius:4},G=A(1297);function k(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;if(e.mui)return e;var t=Object(G.a)({spacing:e}),A=function(){for(var e=arguments.length,A=new Array(e),n=0;n<e;n++)A[n]=arguments[n];return 0===A.length?t(1):1===A.length?t(A[0]):A.map((function(e){if("string"===typeof e)return e;var A=t(e);return"number"===typeof A?"".concat(A,"px"):A})).join(" ")};return Object.defineProperty(A,"unit",{get:function(){return e}}),A.mui=!0,A}var x=A(226),N=A(402);function U(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,A=void 0===t?{}:t,n=e.mixins,o=void 0===n?{}:n,a=e.palette,c=void 0===a?{}:a,u=e.spacing,l=e.typography,I=void 0===l?{}:l,C=Object(r.a)(e,["breakpoints","mixins","palette","spacing","typography"]),h=v(c),f=s(A),d=k(u),B=Object(i.a)({breakpoints:f,direction:"ltr",mixins:g(f,d,o),overrides:{},palette:h,props:{},shadows:R,typography:S(h,I),spacing:d,shape:D,transitions:x.a,zIndex:N.a},C),p=arguments.length,E=new Array(p>1?p-1:0),Q=1;Q<p;Q++)E[Q-1]=arguments[Q];return B=E.reduce((function(e,t){return Object(i.a)(e,t)}),B)}t.a=U},function(e,t,A){"use strict";function n(e){for(var t="https://material-ui.com/production-error/?code="+e,A=1;A<arguments.length;A+=1)t+="&args[]="+encodeURIComponent(arguments[A]);return"Minified Material-UI error #"+e+"; visit "+t+" for the full message."}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";A.d(t,"b",(function(){return a})),A.d(t,"c",(function(){return s})),A.d(t,"a",(function(){return g}));var n=A(6),r=A(427),i=A(18),o=A(26);function a(e,t){return s(e,t)}function s(e,t){return(t=Array.isArray(t)?t:[t]).every((function(t){return c(e,t)}))}function g(e){for(var t in e.luma=e.luma||{},e.luma.caps=e.luma.caps||{},r.b)void 0===e.luma.caps[t]&&(e.luma.caps[t]=c(e,t));return e.luma.caps}function c(e,t){return e.luma=e.luma||{},e.luma.caps=e.luma.caps||{},void 0===e.luma.caps[t]&&(e.luma.caps[t]=function(e,t){var A,a=r.b[t];Object(o.a)(a,t);var s=Object(i.j)(e)&&a[1]||a[0];if("function"===typeof s)A=s(e);else if(Array.isArray(s)){A=!0;var g,c=Object(n.a)(s);try{for(c.s();!(g=c.n()).done;){var u=g.value;A=A&&Boolean(e.getExtension(u))}}catch(l){c.e(l)}finally{c.f()}}else"string"===typeof s?A=Boolean(e.getExtension(s)):"boolean"===typeof s?A=s:Object(o.a)(!1);return A}(e,t)),e.luma.caps[t]||i.k.log(2,"Feature: ".concat(t," not supported"))(),e.luma.caps[t]}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,A){"use strict";var n="URLSearchParams"in self,r="Symbol"in self&&"iterator"in Symbol,i="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(e){return!1}}(),o="FormData"in self,a="ArrayBuffer"in self;if(a)var s=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=ArrayBuffer.isView||function(e){return e&&s.indexOf(Object.prototype.toString.call(e))>-1};function c(e){if("string"!==typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function u(e){return"string"!==typeof e&&(e=String(e)),e}function l(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return r&&(t[Symbol.iterator]=function(){return t}),t}function I(e){this.map={},e instanceof I?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function C(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function h(e){return new Promise((function(t,A){e.onload=function(){t(e.result)},e.onerror=function(){A(e.error)}}))}function f(e){var t=new FileReader,A=h(t);return t.readAsArrayBuffer(e),A}function d(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function B(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"===typeof e?this._bodyText=e:i&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:o&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:n&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():a&&i&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=d(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):a&&(ArrayBuffer.prototype.isPrototypeOf(e)||g(e))?this._bodyArrayBuffer=d(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"===typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var e=C(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?C(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(f)}),this.text=function(){var e=C(this);if(e)return e;if(this._bodyBlob)return function(e){var t=new FileReader,A=h(t);return t.readAsText(e),A}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),A=new Array(t.length),n=0;n<t.length;n++)A[n]=String.fromCharCode(t[n]);return A.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},o&&(this.formData=function(){return this.text().then(Q)}),this.json=function(){return this.text().then(JSON.parse)},this}I.prototype.append=function(e,t){e=c(e),t=u(t);var A=this.map[e];this.map[e]=A?A+", "+t:t},I.prototype.delete=function(e){delete this.map[c(e)]},I.prototype.get=function(e){return e=c(e),this.has(e)?this.map[e]:null},I.prototype.has=function(e){return this.map.hasOwnProperty(c(e))},I.prototype.set=function(e,t){this.map[c(e)]=u(t)},I.prototype.forEach=function(e,t){for(var A in this.map)this.map.hasOwnProperty(A)&&e.call(t,this.map[A],A,this)},I.prototype.keys=function(){var e=[];return this.forEach((function(t,A){e.push(A)})),l(e)},I.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),l(e)},I.prototype.entries=function(){var e=[];return this.forEach((function(t,A){e.push([A,t])})),l(e)},r&&(I.prototype[Symbol.iterator]=I.prototype.entries);var p=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function E(e,t){var A=(t=t||{}).body;if(e instanceof E){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new I(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,A||null==e._bodyInit||(A=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new I(t.headers)),this.method=function(e){var t=e.toUpperCase();return p.indexOf(t)>-1?t:e}(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&A)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(A)}function Q(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var A=e.split("="),n=A.shift().replace(/\+/g," "),r=A.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(r))}})),t}function y(e){var t=new I;return e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var A=e.split(":"),n=A.shift().trim();if(n){var r=A.join(":").trim();t.append(n,r)}})),t}function v(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new I(t.headers),this.url=t.url||"",this._initBody(e)}E.prototype.clone=function(){return new E(this,{body:this._bodyInit})},B.call(E.prototype),B.call(v.prototype),v.prototype.clone=function(){return new v(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new I(this.headers),url:this.url})},v.error=function(){var e=new v(null,{status:0,statusText:""});return e.type="error",e};var m=[301,302,303,307,308];v.redirect=function(e,t){if(-1===m.indexOf(t))throw new RangeError("Invalid status code");return new v(null,{status:t,headers:{location:e}})};var b=self.DOMException;try{new b}catch(S){(b=function(e,t){this.message=e,this.name=t;var A=Error(e);this.stack=A.stack}).prototype=Object.create(Error.prototype),b.prototype.constructor=b}function w(e,t){return new Promise((function(A,n){var r=new E(e,t);if(r.signal&&r.signal.aborted)return n(new b("Aborted","AbortError"));var o=new XMLHttpRequest;function a(){o.abort()}o.onload=function(){var e={status:o.status,statusText:o.statusText,headers:y(o.getAllResponseHeaders()||"")};e.url="responseURL"in o?o.responseURL:e.headers.get("X-Request-URL");var t="response"in o?o.response:o.responseText;A(new v(t,e))},o.onerror=function(){n(new TypeError("Network request failed"))},o.ontimeout=function(){n(new TypeError("Network request failed"))},o.onabort=function(){n(new b("Aborted","AbortError"))},o.open(r.method,r.url,!0),"include"===r.credentials?o.withCredentials=!0:"omit"===r.credentials&&(o.withCredentials=!1),"responseType"in o&&i&&(o.responseType="blob"),r.headers.forEach((function(e,t){o.setRequestHeader(t,e)})),r.signal&&(r.signal.addEventListener("abort",a),o.onreadystatechange=function(){4===o.readyState&&r.signal.removeEventListener("abort",a)}),o.send("undefined"===typeof r._bodyInit?null:r._bodyInit)}))}w.polyfill=!0,self.fetch||(self.fetch=w,self.Headers=I,self.Request=E,self.Response=v)},function(e,t,A){"use strict";var n=A(0),r=A(443),i=A(751);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,A=1;A<arguments.length;A++)t+="&args[]="+encodeURIComponent(arguments[A]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!n)throw Error(o(227));function a(e,t,A,n,r,i,o,a,s){var g=Array.prototype.slice.call(arguments,3);try{t.apply(A,g)}catch(c){this.onError(c)}}var s=!1,g=null,c=!1,u=null,l={onError:function(e){s=!0,g=e}};function I(e,t,A,n,r,i,o,c,u){s=!1,g=null,a.apply(l,arguments)}var C=null,h=null,f=null;function d(e,t,A){var n=e.type||"unknown-event";e.currentTarget=f(A),function(e,t,A,n,r,i,a,l,C){if(I.apply(this,arguments),s){if(!s)throw Error(o(198));var h=g;s=!1,g=null,c||(c=!0,u=h)}}(n,t,void 0,e),e.currentTarget=null}var B=null,p={};function E(){if(B)for(var e in p){var t=p[e],A=B.indexOf(e);if(!(-1<A))throw Error(o(96,e));if(!y[A]){if(!t.extractEvents)throw Error(o(97,e));for(var n in y[A]=t,A=t.eventTypes){var r=void 0,i=A[n],a=t,s=n;if(v.hasOwnProperty(s))throw Error(o(99,s));v[s]=i;var g=i.phasedRegistrationNames;if(g){for(r in g)g.hasOwnProperty(r)&&Q(g[r],a,s);r=!0}else i.registrationName?(Q(i.registrationName,a,s),r=!0):r=!1;if(!r)throw Error(o(98,n,e))}}}}function Q(e,t,A){if(m[e])throw Error(o(100,e));m[e]=t,b[e]=t.eventTypes[A].dependencies}var y=[],v={},m={},b={};function w(e){var t,A=!1;for(t in e)if(e.hasOwnProperty(t)){var n=e[t];if(!p.hasOwnProperty(t)||p[t]!==n){if(p[t])throw Error(o(102,t));p[t]=n,A=!0}}A&&E()}var S=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),F=null,R=null,D=null;function G(e){if(e=h(e)){if("function"!==typeof F)throw Error(o(280));var t=e.stateNode;t&&(t=C(t),F(e.stateNode,e.type,t))}}function k(e){R?D?D.push(e):D=[e]:R=e}function x(){if(R){var e=R,t=D;if(D=R=null,G(e),t)for(e=0;e<t.length;e++)G(t[e])}}function N(e,t){return e(t)}function U(e,t,A,n,r){return e(t,A,n,r)}function _(){}var M=N,O=!1,L=!1;function T(){null===R&&null===D||(_(),x())}function Z(e,t,A){if(L)return e(t,A);L=!0;try{return M(e,t,A)}finally{L=!1,T()}}var H=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Y=Object.prototype.hasOwnProperty,J={},j={};function P(e,t,A,n,r,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=n,this.attributeNamespace=r,this.mustUseProperty=A,this.propertyName=e,this.type=t,this.sanitizeURL=i}var V={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){V[e]=new P(e,0,!1,e,null,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];V[t]=new P(t,1,!1,e[1],null,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){V[e]=new P(e,2,!1,e.toLowerCase(),null,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){V[e]=new P(e,2,!1,e,null,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){V[e]=new P(e,3,!1,e.toLowerCase(),null,!1)})),["checked","multiple","muted","selected"].forEach((function(e){V[e]=new P(e,3,!0,e,null,!1)})),["capture","download"].forEach((function(e){V[e]=new P(e,4,!1,e,null,!1)})),["cols","rows","size","span"].forEach((function(e){V[e]=new P(e,6,!1,e,null,!1)})),["rowSpan","start"].forEach((function(e){V[e]=new P(e,5,!1,e.toLowerCase(),null,!1)}));var K=/[\-:]([a-z])/g;function W(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(K,W);V[t]=new P(t,1,!1,e,null,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(K,W);V[t]=new P(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(K,W);V[t]=new P(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)})),["tabIndex","crossOrigin"].forEach((function(e){V[e]=new P(e,1,!1,e.toLowerCase(),null,!1)})),V.xlinkHref=new P("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach((function(e){V[e]=new P(e,1,!1,e.toLowerCase(),null,!0)}));var X=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function q(e,t,A,n){var r=V.hasOwnProperty(t)?V[t]:null;(null!==r?0===r.type:!n&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,A,n){if(null===t||"undefined"===typeof t||function(e,t,A,n){if(null!==A&&0===A.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!n&&(null!==A?!A.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,A,n))return!0;if(n)return!1;if(null!==A)switch(A.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,A,r,n)&&(A=null),n||null===r?function(e){return!!Y.call(j,e)||!Y.call(J,e)&&(H.test(e)?j[e]=!0:(J[e]=!0,!1))}(t)&&(null===A?e.removeAttribute(t):e.setAttribute(t,""+A)):r.mustUseProperty?e[r.propertyName]=null===A?3!==r.type&&"":A:(t=r.attributeName,n=r.attributeNamespace,null===A?e.removeAttribute(t):(A=3===(r=r.type)||4===r&&!0===A?"":""+A,n?e.setAttributeNS(n,t,A):e.setAttribute(t,A))))}X.hasOwnProperty("ReactCurrentDispatcher")||(X.ReactCurrentDispatcher={current:null}),X.hasOwnProperty("ReactCurrentBatchConfig")||(X.ReactCurrentBatchConfig={suspense:null});var z=/^(.*)[\\\/]/,$="function"===typeof Symbol&&Symbol.for,ee=$?Symbol.for("react.element"):60103,te=$?Symbol.for("react.portal"):60106,Ae=$?Symbol.for("react.fragment"):60107,ne=$?Symbol.for("react.strict_mode"):60108,re=$?Symbol.for("react.profiler"):60114,ie=$?Symbol.for("react.provider"):60109,oe=$?Symbol.for("react.context"):60110,ae=$?Symbol.for("react.concurrent_mode"):60111,se=$?Symbol.for("react.forward_ref"):60112,ge=$?Symbol.for("react.suspense"):60113,ce=$?Symbol.for("react.suspense_list"):60120,ue=$?Symbol.for("react.memo"):60115,le=$?Symbol.for("react.lazy"):60116,Ie=$?Symbol.for("react.block"):60121,Ce="function"===typeof Symbol&&Symbol.iterator;function he(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=Ce&&e[Ce]||e["@@iterator"])?e:null}function fe(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case Ae:return"Fragment";case te:return"Portal";case re:return"Profiler";case ne:return"StrictMode";case ge:return"Suspense";case ce:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case oe:return"Context.Consumer";case ie:return"Context.Provider";case se:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case ue:return fe(e.type);case Ie:return fe(e.render);case le:if(e=1===e._status?e._result:null)return fe(e)}return null}function de(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var A="";break e;default:var n=e._debugOwner,r=e._debugSource,i=fe(e.type);A=null,n&&(A=fe(n.type)),n=i,i="",r?i=" (at "+r.fileName.replace(z,"")+":"+r.lineNumber+")":A&&(i=" (created by "+A+")"),A="\n in "+(n||"Unknown")+i}t+=A,e=e.return}while(e);return t}function Be(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function pe(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Ee(e){e._valueTracker||(e._valueTracker=function(e){var t=pe(e)?"checked":"value",A=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof A&&"function"===typeof A.get&&"function"===typeof A.set){var r=A.get,i=A.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(e){n=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:A.enumerable}),{getValue:function(){return n},setValue:function(e){n=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Qe(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var A=t.getValue(),n="";return e&&(n=pe(e)?e.checked?"true":"false":e.value),(e=n)!==A&&(t.setValue(e),!0)}function ye(e,t){var A=t.checked;return r({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=A?A:e._wrapperState.initialChecked})}function ve(e,t){var A=null==t.defaultValue?"":t.defaultValue,n=null!=t.checked?t.checked:t.defaultChecked;A=Be(null!=t.value?t.value:A),e._wrapperState={initialChecked:n,initialValue:A,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function me(e,t){null!=(t=t.checked)&&q(e,"checked",t,!1)}function be(e,t){me(e,t);var A=Be(t.value),n=t.type;if(null!=A)"number"===n?(0===A&&""===e.value||e.value!=A)&&(e.value=""+A):e.value!==""+A&&(e.value=""+A);else if("submit"===n||"reset"===n)return void e.removeAttribute("value");t.hasOwnProperty("value")?Se(e,t.type,A):t.hasOwnProperty("defaultValue")&&Se(e,t.type,Be(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function we(e,t,A){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!("submit"!==n&&"reset"!==n||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,A||t===e.value||(e.value=t),e.defaultValue=t}""!==(A=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==A&&(e.name=A)}function Se(e,t,A){"number"===t&&e.ownerDocument.activeElement===e||(null==A?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+A&&(e.defaultValue=""+A))}function Fe(e,t){return e=r({children:void 0},t),(t=function(e){var t="";return n.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function Re(e,t,A,n){if(e=e.options,t){t={};for(var r=0;r<A.length;r++)t["$"+A[r]]=!0;for(A=0;A<e.length;A++)r=t.hasOwnProperty("$"+e[A].value),e[A].selected!==r&&(e[A].selected=r),r&&n&&(e[A].defaultSelected=!0)}else{for(A=""+Be(A),t=null,r=0;r<e.length;r++){if(e[r].value===A)return e[r].selected=!0,void(n&&(e[r].defaultSelected=!0));null!==t||e[r].disabled||(t=e[r])}null!==t&&(t.selected=!0)}}function De(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return r({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Ge(e,t){var A=t.value;if(null==A){if(A=t.children,t=t.defaultValue,null!=A){if(null!=t)throw Error(o(92));if(Array.isArray(A)){if(!(1>=A.length))throw Error(o(93));A=A[0]}t=A}null==t&&(t=""),A=t}e._wrapperState={initialValue:Be(A)}}function ke(e,t){var A=Be(t.value),n=Be(t.defaultValue);null!=A&&((A=""+A)!==e.value&&(e.value=A),null==t.defaultValue&&e.defaultValue!==A&&(e.defaultValue=A)),null!=n&&(e.defaultValue=""+n)}function xe(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var Ne="http://www.w3.org/1999/xhtml",Ue="http://www.w3.org/2000/svg";function _e(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Me(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?_e(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var Oe,Le=function(e){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,A,n,r){MSApp.execUnsafeLocalFunction((function(){return e(t,A)}))}:e}((function(e,t){if(e.namespaceURI!==Ue||"innerHTML"in e)e.innerHTML=t;else{for((Oe=Oe||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Oe.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}));function Te(e,t){if(t){var A=e.firstChild;if(A&&A===e.lastChild&&3===A.nodeType)return void(A.nodeValue=t)}e.textContent=t}function Ze(e,t){var A={};return A[e.toLowerCase()]=t.toLowerCase(),A["Webkit"+e]="webkit"+t,A["Moz"+e]="moz"+t,A}var He={animationend:Ze("Animation","AnimationEnd"),animationiteration:Ze("Animation","AnimationIteration"),animationstart:Ze("Animation","AnimationStart"),transitionend:Ze("Transition","TransitionEnd")},Ye={},Je={};function je(e){if(Ye[e])return Ye[e];if(!He[e])return e;var t,A=He[e];for(t in A)if(A.hasOwnProperty(t)&&t in Je)return Ye[e]=A[t];return e}S&&(Je=document.createElement("div").style,"AnimationEvent"in window||(delete He.animationend.animation,delete He.animationiteration.animation,delete He.animationstart.animation),"TransitionEvent"in window||delete He.transitionend.transition);var Pe=je("animationend"),Ve=je("animationiteration"),Ke=je("animationstart"),We=je("transitionend"),Xe="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),qe=new("function"===typeof WeakMap?WeakMap:Map);function ze(e){var t=qe.get(e);return void 0===t&&(t=new Map,qe.set(e,t)),t}function $e(e){var t=e,A=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(1026&(t=e).effectTag)&&(A=t.return),e=t.return}while(e)}return 3===t.tag?A:null}function et(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function tt(e){if($e(e)!==e)throw Error(o(188))}function At(e){if(!(e=function(e){var t=e.alternate;if(!t){if(null===(t=$e(e)))throw Error(o(188));return t!==e?null:e}for(var A=e,n=t;;){var r=A.return;if(null===r)break;var i=r.alternate;if(null===i){if(null!==(n=r.return)){A=n;continue}break}if(r.child===i.child){for(i=r.child;i;){if(i===A)return tt(r),e;if(i===n)return tt(r),t;i=i.sibling}throw Error(o(188))}if(A.return!==n.return)A=r,n=i;else{for(var a=!1,s=r.child;s;){if(s===A){a=!0,A=r,n=i;break}if(s===n){a=!0,n=r,A=i;break}s=s.sibling}if(!a){for(s=i.child;s;){if(s===A){a=!0,A=i,n=r;break}if(s===n){a=!0,n=i,A=r;break}s=s.sibling}if(!a)throw Error(o(189))}}if(A.alternate!==n)throw Error(o(190))}if(3!==A.tag)throw Error(o(188));return A.stateNode.current===A?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function nt(e,t){if(null==t)throw Error(o(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function rt(e,t,A){Array.isArray(e)?e.forEach(t,A):e&&t.call(A,e)}var it=null;function ot(e){if(e){var t=e._dispatchListeners,A=e._dispatchInstances;if(Array.isArray(t))for(var n=0;n<t.length&&!e.isPropagationStopped();n++)d(e,t[n],A[n]);else t&&d(e,t,A);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function at(e){if(null!==e&&(it=nt(it,e)),e=it,it=null,e){if(rt(e,ot),it)throw Error(o(95));if(c)throw e=u,c=!1,u=null,e}}function st(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function gt(e){if(!S)return!1;var t=(e="on"+e)in document;return t||((t=document.createElement("div")).setAttribute(e,"return;"),t="function"===typeof t[e]),t}var ct=[];function ut(e){e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,10>ct.length&&ct.push(e)}function lt(e,t,A,n){if(ct.length){var r=ct.pop();return r.topLevelType=e,r.eventSystemFlags=n,r.nativeEvent=t,r.targetInst=A,r}return{topLevelType:e,eventSystemFlags:n,nativeEvent:t,targetInst:A,ancestors:[]}}function It(e){var t=e.targetInst,A=t;do{if(!A){e.ancestors.push(A);break}var n=A;if(3===n.tag)n=n.stateNode.containerInfo;else{for(;n.return;)n=n.return;n=3!==n.tag?null:n.stateNode.containerInfo}if(!n)break;5!==(t=A.tag)&&6!==t||e.ancestors.push(A),A=wA(n)}while(A);for(A=0;A<e.ancestors.length;A++){t=e.ancestors[A];var r=st(e.nativeEvent);n=e.topLevelType;var i=e.nativeEvent,o=e.eventSystemFlags;0===A&&(o|=64);for(var a=null,s=0;s<y.length;s++){var g=y[s];g&&(g=g.extractEvents(n,t,i,r,o))&&(a=nt(a,g))}at(a)}}function Ct(e,t,A){if(!A.has(e)){switch(e){case"scroll":Kt(t,"scroll",!0);break;case"focus":case"blur":Kt(t,"focus",!0),Kt(t,"blur",!0),A.set("blur",null),A.set("focus",null);break;case"cancel":case"close":gt(e)&&Kt(t,e,!0);break;case"invalid":case"submit":case"reset":break;default:-1===Xe.indexOf(e)&&Vt(e,t)}A.set(e,null)}}var ht,ft,dt,Bt=!1,pt=[],Et=null,Qt=null,yt=null,vt=new Map,mt=new Map,bt=[],wt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "),St="focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");function Ft(e,t,A,n,r){return{blockedOn:e,topLevelType:t,eventSystemFlags:32|A,nativeEvent:r,container:n}}function Rt(e,t){switch(e){case"focus":case"blur":Et=null;break;case"dragenter":case"dragleave":Qt=null;break;case"mouseover":case"mouseout":yt=null;break;case"pointerover":case"pointerout":vt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":mt.delete(t.pointerId)}}function Dt(e,t,A,n,r,i){return null===e||e.nativeEvent!==i?(e=Ft(t,A,n,r,i),null!==t&&(null!==(t=SA(t))&&ft(t)),e):(e.eventSystemFlags|=n,e)}function Gt(e){var t=wA(e.target);if(null!==t){var A=$e(t);if(null!==A)if(13===(t=A.tag)){if(null!==(t=et(A)))return e.blockedOn=t,void i.unstable_runWithPriority(e.priority,(function(){dt(A)}))}else if(3===t&&A.stateNode.hydrate)return void(e.blockedOn=3===A.tag?A.stateNode.containerInfo:null)}e.blockedOn=null}function kt(e){if(null!==e.blockedOn)return!1;var t=zt(e.topLevelType,e.eventSystemFlags,e.container,e.nativeEvent);if(null!==t){var A=SA(t);return null!==A&&ft(A),e.blockedOn=t,!1}return!0}function xt(e,t,A){kt(e)&&A.delete(t)}function Nt(){for(Bt=!1;0<pt.length;){var e=pt[0];if(null!==e.blockedOn){null!==(e=SA(e.blockedOn))&&ht(e);break}var t=zt(e.topLevelType,e.eventSystemFlags,e.container,e.nativeEvent);null!==t?e.blockedOn=t:pt.shift()}null!==Et&&kt(Et)&&(Et=null),null!==Qt&&kt(Qt)&&(Qt=null),null!==yt&&kt(yt)&&(yt=null),vt.forEach(xt),mt.forEach(xt)}function Ut(e,t){e.blockedOn===t&&(e.blockedOn=null,Bt||(Bt=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,Nt)))}function _t(e){function t(t){return Ut(t,e)}if(0<pt.length){Ut(pt[0],e);for(var A=1;A<pt.length;A++){var n=pt[A];n.blockedOn===e&&(n.blockedOn=null)}}for(null!==Et&&Ut(Et,e),null!==Qt&&Ut(Qt,e),null!==yt&&Ut(yt,e),vt.forEach(t),mt.forEach(t),A=0;A<bt.length;A++)(n=bt[A]).blockedOn===e&&(n.blockedOn=null);for(;0<bt.length&&null===(A=bt[0]).blockedOn;)Gt(A),null===A.blockedOn&&bt.shift()}var Mt={},Ot=new Map,Lt=new Map,Tt=["abort","abort",Pe,"animationEnd",Ve,"animationIteration",Ke,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",We,"transitionEnd","waiting","waiting"];function Zt(e,t){for(var A=0;A<e.length;A+=2){var n=e[A],r=e[A+1],i="on"+(r[0].toUpperCase()+r.slice(1));i={phasedRegistrationNames:{bubbled:i,captured:i+"Capture"},dependencies:[n],eventPriority:t},Lt.set(n,t),Ot.set(n,i),Mt[r]=i}}Zt("blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Zt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Zt(Tt,2);for(var Ht="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Yt=0;Yt<Ht.length;Yt++)Lt.set(Ht[Yt],0);var Jt=i.unstable_UserBlockingPriority,jt=i.unstable_runWithPriority,Pt=!0;function Vt(e,t){Kt(t,e,!1)}function Kt(e,t,A){var n=Lt.get(t);switch(void 0===n?2:n){case 0:n=Wt.bind(null,t,1,e);break;case 1:n=Xt.bind(null,t,1,e);break;default:n=qt.bind(null,t,1,e)}A?e.addEventListener(t,n,!0):e.addEventListener(t,n,!1)}function Wt(e,t,A,n){O||_();var r=qt,i=O;O=!0;try{U(r,e,t,A,n)}finally{(O=i)||T()}}function Xt(e,t,A,n){jt(Jt,qt.bind(null,e,t,A,n))}function qt(e,t,A,n){if(Pt)if(0<pt.length&&-1<wt.indexOf(e))e=Ft(null,e,t,A,n),pt.push(e);else{var r=zt(e,t,A,n);if(null===r)Rt(e,n);else if(-1<wt.indexOf(e))e=Ft(r,e,t,A,n),pt.push(e);else if(!function(e,t,A,n,r){switch(t){case"focus":return Et=Dt(Et,e,t,A,n,r),!0;case"dragenter":return Qt=Dt(Qt,e,t,A,n,r),!0;case"mouseover":return yt=Dt(yt,e,t,A,n,r),!0;case"pointerover":var i=r.pointerId;return vt.set(i,Dt(vt.get(i)||null,e,t,A,n,r)),!0;case"gotpointercapture":return i=r.pointerId,mt.set(i,Dt(mt.get(i)||null,e,t,A,n,r)),!0}return!1}(r,e,t,A,n)){Rt(e,n),e=lt(e,n,null,t);try{Z(It,e)}finally{ut(e)}}}}function zt(e,t,A,n){if(null!==(A=wA(A=st(n)))){var r=$e(A);if(null===r)A=null;else{var i=r.tag;if(13===i){if(null!==(A=et(r)))return A;A=null}else if(3===i){if(r.stateNode.hydrate)return 3===r.tag?r.stateNode.containerInfo:null;A=null}else r!==A&&(A=null)}}e=lt(e,n,A,t);try{Z(It,e)}finally{ut(e)}return null}var $t={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},eA=["Webkit","ms","Moz","O"];function tA(e,t,A){return null==t||"boolean"===typeof t||""===t?"":A||"number"!==typeof t||0===t||$t.hasOwnProperty(e)&&$t[e]?(""+t).trim():t+"px"}function AA(e,t){for(var A in e=e.style,t)if(t.hasOwnProperty(A)){var n=0===A.indexOf("--"),r=tA(A,t[A],n);"float"===A&&(A="cssFloat"),n?e.setProperty(A,r):e[A]=r}}Object.keys($t).forEach((function(e){eA.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),$t[t]=$t[e]}))}));var nA=r({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function rA(e,t){if(t){if(nA[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e,""));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!==typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!==typeof t.style)throw Error(o(62,""))}}function iA(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var oA=Ne;function aA(e,t){var A=ze(e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument);t=b[t];for(var n=0;n<t.length;n++)Ct(t[n],e,A)}function sA(){}function gA(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function cA(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function uA(e,t){var A,n=cA(e);for(e=0;n;){if(3===n.nodeType){if(A=e+n.textContent.length,e<=t&&A>=t)return{node:n,offset:t-e};e=A}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=cA(n)}}function lA(){for(var e=window,t=gA();t instanceof e.HTMLIFrameElement;){try{var A="string"===typeof t.contentWindow.location.href}catch(n){A=!1}if(!A)break;t=gA((e=t.contentWindow).document)}return t}function IA(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var CA=null,hA=null;function fA(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function dA(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var BA="function"===typeof setTimeout?setTimeout:void 0,pA="function"===typeof clearTimeout?clearTimeout:void 0;function EA(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function QA(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var A=e.data;if("$"===A||"$!"===A||"$?"===A){if(0===t)return e;t--}else"/$"===A&&t++}e=e.previousSibling}return null}var yA=Math.random().toString(36).slice(2),vA="__reactInternalInstance$"+yA,mA="__reactEventHandlers$"+yA,bA="__reactContainere$"+yA;function wA(e){var t=e[vA];if(t)return t;for(var A=e.parentNode;A;){if(t=A[bA]||A[vA]){if(A=t.alternate,null!==t.child||null!==A&&null!==A.child)for(e=QA(e);null!==e;){if(A=e[vA])return A;e=QA(e)}return t}A=(e=A).parentNode}return null}function SA(e){return!(e=e[vA]||e[bA])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function FA(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function RA(e){return e[mA]||null}function DA(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function GA(e,t){var A=e.stateNode;if(!A)return null;var n=C(A);if(!n)return null;A=n[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(n=!n.disabled)||(n=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!n;break e;default:e=!1}if(e)return null;if(A&&"function"!==typeof A)throw Error(o(231,t,typeof A));return A}function kA(e,t,A){(t=GA(e,A.dispatchConfig.phasedRegistrationNames[t]))&&(A._dispatchListeners=nt(A._dispatchListeners,t),A._dispatchInstances=nt(A._dispatchInstances,e))}function xA(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,A=[];t;)A.push(t),t=DA(t);for(t=A.length;0<t--;)kA(A[t],"captured",e);for(t=0;t<A.length;t++)kA(A[t],"bubbled",e)}}function NA(e,t,A){e&&A&&A.dispatchConfig.registrationName&&(t=GA(e,A.dispatchConfig.registrationName))&&(A._dispatchListeners=nt(A._dispatchListeners,t),A._dispatchInstances=nt(A._dispatchInstances,e))}function UA(e){e&&e.dispatchConfig.registrationName&&NA(e._targetInst,null,e)}function _A(e){rt(e,xA)}var MA=null,OA=null,LA=null;function TA(){if(LA)return LA;var e,t,A=OA,n=A.length,r="value"in MA?MA.value:MA.textContent,i=r.length;for(e=0;e<n&&A[e]===r[e];e++);var o=n-e;for(t=1;t<=o&&A[n-t]===r[i-t];t++);return LA=r.slice(e,1<t?1-t:void 0)}function ZA(){return!0}function HA(){return!1}function YA(e,t,A,n){for(var r in this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=A,e=this.constructor.Interface)e.hasOwnProperty(r)&&((t=e[r])?this[r]=t(A):"target"===r?this.target=n:this[r]=A[r]);return this.isDefaultPrevented=(null!=A.defaultPrevented?A.defaultPrevented:!1===A.returnValue)?ZA:HA,this.isPropagationStopped=HA,this}function JA(e,t,A,n){if(this.eventPool.length){var r=this.eventPool.pop();return this.call(r,e,t,A,n),r}return new this(e,t,A,n)}function jA(e){if(!(e instanceof this))throw Error(o(279));e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function PA(e){e.eventPool=[],e.getPooled=JA,e.release=jA}r(YA.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ZA)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ZA)},persist:function(){this.isPersistent=ZA},isPersistent:HA,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=HA,this._dispatchInstances=this._dispatchListeners=null}}),YA.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},YA.extend=function(e){function t(){}function A(){return n.apply(this,arguments)}var n=this;t.prototype=n.prototype;var i=new t;return r(i,A.prototype),A.prototype=i,A.prototype.constructor=A,A.Interface=r({},n.Interface,e),A.extend=n.extend,PA(A),A},PA(YA);var VA=YA.extend({data:null}),KA=YA.extend({data:null}),WA=[9,13,27,32],XA=S&&"CompositionEvent"in window,qA=null;S&&"documentMode"in document&&(qA=document.documentMode);var zA=S&&"TextEvent"in window&&!qA,$A=S&&(!XA||qA&&8<qA&&11>=qA),en=String.fromCharCode(32),tn={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},An=!1;function nn(e,t){switch(e){case"keyup":return-1!==WA.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function rn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var on=!1;var an={eventTypes:tn,extractEvents:function(e,t,A,n){var r;if(XA)e:{switch(e){case"compositionstart":var i=tn.compositionStart;break e;case"compositionend":i=tn.compositionEnd;break e;case"compositionupdate":i=tn.compositionUpdate;break e}i=void 0}else on?nn(e,A)&&(i=tn.compositionEnd):"keydown"===e&&229===A.keyCode&&(i=tn.compositionStart);return i?($A&&"ko"!==A.locale&&(on||i!==tn.compositionStart?i===tn.compositionEnd&&on&&(r=TA()):(OA="value"in(MA=n)?MA.value:MA.textContent,on=!0)),i=VA.getPooled(i,t,A,n),r?i.data=r:null!==(r=rn(A))&&(i.data=r),_A(i),r=i):r=null,(e=zA?function(e,t){switch(e){case"compositionend":return rn(t);case"keypress":return 32!==t.which?null:(An=!0,en);case"textInput":return(e=t.data)===en&&An?null:e;default:return null}}(e,A):function(e,t){if(on)return"compositionend"===e||!XA&&nn(e,t)?(e=TA(),LA=OA=MA=null,on=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return $A&&"ko"!==t.locale?null:t.data;default:return null}}(e,A))?((t=KA.getPooled(tn.beforeInput,t,A,n)).data=e,_A(t)):t=null,null===r?t:null===t?r:[r,t]}},sn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function gn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!sn[e.type]:"textarea"===t}var cn={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}};function un(e,t,A){return(e=YA.getPooled(cn.change,e,t,A)).type="change",k(A),_A(e),e}var ln=null,In=null;function Cn(e){at(e)}function hn(e){if(Qe(FA(e)))return e}function fn(e,t){if("change"===e)return t}var dn=!1;function Bn(){ln&&(ln.detachEvent("onpropertychange",pn),In=ln=null)}function pn(e){if("value"===e.propertyName&&hn(In))if(e=un(In,e,st(e)),O)at(e);else{O=!0;try{N(Cn,e)}finally{O=!1,T()}}}function En(e,t,A){"focus"===e?(Bn(),In=A,(ln=t).attachEvent("onpropertychange",pn)):"blur"===e&&Bn()}function Qn(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return hn(In)}function yn(e,t){if("click"===e)return hn(t)}function vn(e,t){if("input"===e||"change"===e)return hn(t)}S&&(dn=gt("input")&&(!document.documentMode||9<document.documentMode));var mn={eventTypes:cn,_isInputEventSupported:dn,extractEvents:function(e,t,A,n){var r=t?FA(t):window,i=r.nodeName&&r.nodeName.toLowerCase();if("select"===i||"input"===i&&"file"===r.type)var o=fn;else if(gn(r))if(dn)o=vn;else{o=Qn;var a=En}else(i=r.nodeName)&&"input"===i.toLowerCase()&&("checkbox"===r.type||"radio"===r.type)&&(o=yn);if(o&&(o=o(e,t)))return un(o,A,n);a&&a(e,r,t),"blur"===e&&(e=r._wrapperState)&&e.controlled&&"number"===r.type&&Se(r,"number",r.value)}},bn=YA.extend({view:null,detail:null}),wn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Sn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=wn[e])&&!!t[e]}function Fn(){return Sn}var Rn=0,Dn=0,Gn=!1,kn=!1,xn=bn.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Fn,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if("movementX"in e)return e.movementX;var t=Rn;return Rn=e.screenX,Gn?"mousemove"===e.type?e.screenX-t:0:(Gn=!0,0)},movementY:function(e){if("movementY"in e)return e.movementY;var t=Dn;return Dn=e.screenY,kn?"mousemove"===e.type?e.screenY-t:0:(kn=!0,0)}}),Nn=xn.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Un={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},_n={eventTypes:Un,extractEvents:function(e,t,A,n,r){var i="mouseover"===e||"pointerover"===e,o="mouseout"===e||"pointerout"===e;if(i&&0===(32&r)&&(A.relatedTarget||A.fromElement)||!o&&!i)return null;(i=n.window===n?n:(i=n.ownerDocument)?i.defaultView||i.parentWindow:window,o)?(o=t,null!==(t=(t=A.relatedTarget||A.toElement)?wA(t):null)&&(t!==$e(t)||5!==t.tag&&6!==t.tag)&&(t=null)):o=null;if(o===t)return null;if("mouseout"===e||"mouseover"===e)var a=xn,s=Un.mouseLeave,g=Un.mouseEnter,c="mouse";else"pointerout"!==e&&"pointerover"!==e||(a=Nn,s=Un.pointerLeave,g=Un.pointerEnter,c="pointer");if(e=null==o?i:FA(o),i=null==t?i:FA(t),(s=a.getPooled(s,o,A,n)).type=c+"leave",s.target=e,s.relatedTarget=i,(A=a.getPooled(g,t,A,n)).type=c+"enter",A.target=i,A.relatedTarget=e,c=t,(n=o)&&c)e:{for(g=c,o=0,e=a=n;e;e=DA(e))o++;for(e=0,t=g;t;t=DA(t))e++;for(;0<o-e;)a=DA(a),o--;for(;0<e-o;)g=DA(g),e--;for(;o--;){if(a===g||a===g.alternate)break e;a=DA(a),g=DA(g)}a=null}else a=null;for(g=a,a=[];n&&n!==g&&(null===(o=n.alternate)||o!==g);)a.push(n),n=DA(n);for(n=[];c&&c!==g&&(null===(o=c.alternate)||o!==g);)n.push(c),c=DA(c);for(c=0;c<a.length;c++)NA(a[c],"bubbled",s);for(c=n.length;0<c--;)NA(n[c],"captured",A);return 0===(64&r)?[s]:[s,A]}};var Mn="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},On=Object.prototype.hasOwnProperty;function Ln(e,t){if(Mn(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var A=Object.keys(e),n=Object.keys(t);if(A.length!==n.length)return!1;for(n=0;n<A.length;n++)if(!On.call(t,A[n])||!Mn(e[A[n]],t[A[n]]))return!1;return!0}var Tn=S&&"documentMode"in document&&11>=document.documentMode,Zn={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Hn=null,Yn=null,Jn=null,jn=!1;function Pn(e,t){var A=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return jn||null==Hn||Hn!==gA(A)?null:("selectionStart"in(A=Hn)&&IA(A)?A={start:A.selectionStart,end:A.selectionEnd}:A={anchorNode:(A=(A.ownerDocument&&A.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:A.anchorOffset,focusNode:A.focusNode,focusOffset:A.focusOffset},Jn&&Ln(Jn,A)?null:(Jn=A,(e=YA.getPooled(Zn.select,Yn,e,t)).type="select",e.target=Hn,_A(e),e))}var Vn={eventTypes:Zn,extractEvents:function(e,t,A,n,r,i){if(!(i=!(r=i||(n.window===n?n.document:9===n.nodeType?n:n.ownerDocument)))){e:{r=ze(r),i=b.onSelect;for(var o=0;o<i.length;o++)if(!r.has(i[o])){r=!1;break e}r=!0}i=!r}if(i)return null;switch(r=t?FA(t):window,e){case"focus":(gn(r)||"true"===r.contentEditable)&&(Hn=r,Yn=t,Jn=null);break;case"blur":Jn=Yn=Hn=null;break;case"mousedown":jn=!0;break;case"contextmenu":case"mouseup":case"dragend":return jn=!1,Pn(A,n);case"selectionchange":if(Tn)break;case"keydown":case"keyup":return Pn(A,n)}return null}},Kn=YA.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Wn=YA.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Xn=bn.extend({relatedTarget:null});function qn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}var zn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},$n={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},er=bn.extend({key:function(e){if(e.key){var t=zn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=qn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?$n[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Fn,charCode:function(e){return"keypress"===e.type?qn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?qn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),tr=xn.extend({dataTransfer:null}),Ar=bn.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Fn}),nr=YA.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),rr=xn.extend({deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),ir={eventTypes:Mt,extractEvents:function(e,t,A,n){var r=Ot.get(e);if(!r)return null;switch(e){case"keypress":if(0===qn(A))return null;case"keydown":case"keyup":e=er;break;case"blur":case"focus":e=Xn;break;case"click":if(2===A.button)return null;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":e=xn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":e=tr;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":e=Ar;break;case Pe:case Ve:case Ke:e=Kn;break;case We:e=nr;break;case"scroll":e=bn;break;case"wheel":e=rr;break;case"copy":case"cut":case"paste":e=Wn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":e=Nn;break;default:e=YA}return _A(t=e.getPooled(r,t,A,n)),t}};if(B)throw Error(o(101));B=Array.prototype.slice.call("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),E(),C=RA,h=SA,f=FA,w({SimpleEventPlugin:ir,EnterLeaveEventPlugin:_n,ChangeEventPlugin:mn,SelectEventPlugin:Vn,BeforeInputEventPlugin:an});var or=[],ar=-1;function sr(e){0>ar||(e.current=or[ar],or[ar]=null,ar--)}function gr(e,t){ar++,or[ar]=e.current,e.current=t}var cr={},ur={current:cr},lr={current:!1},Ir=cr;function Cr(e,t){var A=e.type.contextTypes;if(!A)return cr;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var r,i={};for(r in A)i[r]=t[r];return n&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function hr(e){return null!==(e=e.childContextTypes)&&void 0!==e}function fr(){sr(lr),sr(ur)}function dr(e,t,A){if(ur.current!==cr)throw Error(o(168));gr(ur,t),gr(lr,A)}function Br(e,t,A){var n=e.stateNode;if(e=t.childContextTypes,"function"!==typeof n.getChildContext)return A;for(var i in n=n.getChildContext())if(!(i in e))throw Error(o(108,fe(t)||"Unknown",i));return r({},A,{},n)}function pr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||cr,Ir=ur.current,gr(ur,e),gr(lr,lr.current),!0}function Er(e,t,A){var n=e.stateNode;if(!n)throw Error(o(169));A?(e=Br(e,t,Ir),n.__reactInternalMemoizedMergedChildContext=e,sr(lr),sr(ur),gr(ur,e)):sr(lr),gr(lr,A)}var Qr=i.unstable_runWithPriority,yr=i.unstable_scheduleCallback,vr=i.unstable_cancelCallback,mr=i.unstable_requestPaint,br=i.unstable_now,wr=i.unstable_getCurrentPriorityLevel,Sr=i.unstable_ImmediatePriority,Fr=i.unstable_UserBlockingPriority,Rr=i.unstable_NormalPriority,Dr=i.unstable_LowPriority,Gr=i.unstable_IdlePriority,kr={},xr=i.unstable_shouldYield,Nr=void 0!==mr?mr:function(){},Ur=null,_r=null,Mr=!1,Or=br(),Lr=1e4>Or?br:function(){return br()-Or};function Tr(){switch(wr()){case Sr:return 99;case Fr:return 98;case Rr:return 97;case Dr:return 96;case Gr:return 95;default:throw Error(o(332))}}function Zr(e){switch(e){case 99:return Sr;case 98:return Fr;case 97:return Rr;case 96:return Dr;case 95:return Gr;default:throw Error(o(332))}}function Hr(e,t){return e=Zr(e),Qr(e,t)}function Yr(e,t,A){return e=Zr(e),yr(e,t,A)}function Jr(e){return null===Ur?(Ur=[e],_r=yr(Sr,Pr)):Ur.push(e),kr}function jr(){if(null!==_r){var e=_r;_r=null,vr(e)}Pr()}function Pr(){if(!Mr&&null!==Ur){Mr=!0;var e=0;try{var t=Ur;Hr(99,(function(){for(;e<t.length;e++){var A=t[e];do{A=A(!0)}while(null!==A)}})),Ur=null}catch(A){throw null!==Ur&&(Ur=Ur.slice(e+1)),yr(Sr,jr),A}finally{Mr=!1}}}function Vr(e,t,A){return 1073741821-(1+((1073741821-e+t/10)/(A/=10)|0))*A}function Kr(e,t){if(e&&e.defaultProps)for(var A in t=r({},t),e=e.defaultProps)void 0===t[A]&&(t[A]=e[A]);return t}var Wr={current:null},Xr=null,qr=null,zr=null;function $r(){zr=qr=Xr=null}function ei(e){var t=Wr.current;sr(Wr),e.type._context._currentValue=t}function ti(e,t){for(;null!==e;){var A=e.alternate;if(e.childExpirationTime<t)e.childExpirationTime=t,null!==A&&A.childExpirationTime<t&&(A.childExpirationTime=t);else{if(!(null!==A&&A.childExpirationTime<t))break;A.childExpirationTime=t}e=e.return}}function Ai(e,t){Xr=e,zr=qr=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(e.expirationTime>=t&&(Do=!0),e.firstContext=null)}function ni(e,t){if(zr!==e&&!1!==t&&0!==t)if("number"===typeof t&&1073741823!==t||(zr=e,t=1073741823),t={context:e,observedBits:t,next:null},null===qr){if(null===Xr)throw Error(o(308));qr=t,Xr.dependencies={expirationTime:0,firstContext:t,responders:null}}else qr=qr.next=t;return e._currentValue}var ri=!1;function ii(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function oi(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function ai(e,t){return(e={expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null}).next=e}function si(e,t){if(null!==(e=e.updateQueue)){var A=(e=e.shared).pending;null===A?t.next=t:(t.next=A.next,A.next=t),e.pending=t}}function gi(e,t){var A=e.alternate;null!==A&&oi(A,e),null===(A=(e=e.updateQueue).baseQueue)?(e.baseQueue=t.next=t,t.next=t):(t.next=A.next,A.next=t)}function ci(e,t,A,n){var i=e.updateQueue;ri=!1;var o=i.baseQueue,a=i.shared.pending;if(null!==a){if(null!==o){var s=o.next;o.next=a.next,a.next=s}o=a,i.shared.pending=null,null!==(s=e.alternate)&&(null!==(s=s.updateQueue)&&(s.baseQueue=a))}if(null!==o){s=o.next;var g=i.baseState,c=0,u=null,l=null,I=null;if(null!==s)for(var C=s;;){if((a=C.expirationTime)<n){var h={expirationTime:C.expirationTime,suspenseConfig:C.suspenseConfig,tag:C.tag,payload:C.payload,callback:C.callback,next:null};null===I?(l=I=h,u=g):I=I.next=h,a>c&&(c=a)}else{null!==I&&(I=I.next={expirationTime:1073741823,suspenseConfig:C.suspenseConfig,tag:C.tag,payload:C.payload,callback:C.callback,next:null}),is(a,C.suspenseConfig);e:{var f=e,d=C;switch(a=t,h=A,d.tag){case 1:if("function"===typeof(f=d.payload)){g=f.call(h,g,a);break e}g=f;break e;case 3:f.effectTag=-4097&f.effectTag|64;case 0:if(null===(a="function"===typeof(f=d.payload)?f.call(h,g,a):f)||void 0===a)break e;g=r({},g,a);break e;case 2:ri=!0}}null!==C.callback&&(e.effectTag|=32,null===(a=i.effects)?i.effects=[C]:a.push(C))}if(null===(C=C.next)||C===s){if(null===(a=i.shared.pending))break;C=o.next=a.next,a.next=s,i.baseQueue=o=a,i.shared.pending=null}}null===I?u=g:I.next=l,i.baseState=u,i.baseQueue=I,os(c),e.expirationTime=c,e.memoizedState=g}}function ui(e,t,A){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var n=e[t],r=n.callback;if(null!==r){if(n.callback=null,n=r,r=A,"function"!==typeof n)throw Error(o(191,n));n.call(r)}}}var li=X.ReactCurrentBatchConfig,Ii=(new n.Component).refs;function Ci(e,t,A,n){A=null===(A=A(n,t=e.memoizedState))||void 0===A?t:r({},t,A),e.memoizedState=A,0===e.expirationTime&&(e.updateQueue.baseState=A)}var hi={isMounted:function(e){return!!(e=e._reactInternalFiber)&&$e(e)===e},enqueueSetState:function(e,t,A){e=e._reactInternalFiber;var n=Pa(),r=li.suspense;(r=ai(n=Va(n,e,r),r)).payload=t,void 0!==A&&null!==A&&(r.callback=A),si(e,r),Ka(e,n)},enqueueReplaceState:function(e,t,A){e=e._reactInternalFiber;var n=Pa(),r=li.suspense;(r=ai(n=Va(n,e,r),r)).tag=1,r.payload=t,void 0!==A&&null!==A&&(r.callback=A),si(e,r),Ka(e,n)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var A=Pa(),n=li.suspense;(n=ai(A=Va(A,e,n),n)).tag=2,void 0!==t&&null!==t&&(n.callback=t),si(e,n),Ka(e,A)}};function fi(e,t,A,n,r,i,o){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(n,i,o):!t.prototype||!t.prototype.isPureReactComponent||(!Ln(A,n)||!Ln(r,i))}function di(e,t,A){var n=!1,r=cr,i=t.contextType;return"object"===typeof i&&null!==i?i=ni(i):(r=hr(t)?Ir:ur.current,i=(n=null!==(n=t.contextTypes)&&void 0!==n)?Cr(e,r):cr),t=new t(A,i),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=hi,e.stateNode=t,t._reactInternalFiber=e,n&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=r,e.__reactInternalMemoizedMaskedChildContext=i),t}function Bi(e,t,A,n){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(A,n),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(A,n),t.state!==e&&hi.enqueueReplaceState(t,t.state,null)}function pi(e,t,A,n){var r=e.stateNode;r.props=A,r.state=e.memoizedState,r.refs=Ii,ii(e);var i=t.contextType;"object"===typeof i&&null!==i?r.context=ni(i):(i=hr(t)?Ir:ur.current,r.context=Cr(e,i)),ci(e,A,r,n),r.state=e.memoizedState,"function"===typeof(i=t.getDerivedStateFromProps)&&(Ci(e,t,i,A),r.state=e.memoizedState),"function"===typeof t.getDerivedStateFromProps||"function"===typeof r.getSnapshotBeforeUpdate||"function"!==typeof r.UNSAFE_componentWillMount&&"function"!==typeof r.componentWillMount||(t=r.state,"function"===typeof r.componentWillMount&&r.componentWillMount(),"function"===typeof r.UNSAFE_componentWillMount&&r.UNSAFE_componentWillMount(),t!==r.state&&hi.enqueueReplaceState(r,r.state,null),ci(e,A,r,n),r.state=e.memoizedState),"function"===typeof r.componentDidMount&&(e.effectTag|=4)}var Ei=Array.isArray;function Qi(e,t,A){if(null!==(e=A.ref)&&"function"!==typeof e&&"object"!==typeof e){if(A._owner){if(A=A._owner){if(1!==A.tag)throw Error(o(309));var n=A.stateNode}if(!n)throw Error(o(147,e));var r=""+e;return null!==t&&null!==t.ref&&"function"===typeof t.ref&&t.ref._stringRef===r?t.ref:((t=function(e){var t=n.refs;t===Ii&&(t=n.refs={}),null===e?delete t[r]:t[r]=e})._stringRef=r,t)}if("string"!==typeof e)throw Error(o(284));if(!A._owner)throw Error(o(290,e))}return e}function yi(e,t){if("textarea"!==e.type)throw Error(o(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,""))}function vi(e){function t(t,A){if(e){var n=t.lastEffect;null!==n?(n.nextEffect=A,t.lastEffect=A):t.firstEffect=t.lastEffect=A,A.nextEffect=null,A.effectTag=8}}function A(A,n){if(!e)return null;for(;null!==n;)t(A,n),n=n.sibling;return null}function n(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function r(e,t){return(e=ws(e,t)).index=0,e.sibling=null,e}function i(t,A,n){return t.index=n,e?null!==(n=t.alternate)?(n=n.index)<A?(t.effectTag=2,A):n:(t.effectTag=2,A):A}function a(t){return e&&null===t.alternate&&(t.effectTag=2),t}function s(e,t,A,n){return null===t||6!==t.tag?((t=Rs(A,e.mode,n)).return=e,t):((t=r(t,A)).return=e,t)}function g(e,t,A,n){return null!==t&&t.elementType===A.type?((n=r(t,A.props)).ref=Qi(e,t,A),n.return=e,n):((n=Ss(A.type,A.key,A.props,null,e.mode,n)).ref=Qi(e,t,A),n.return=e,n)}function c(e,t,A,n){return null===t||4!==t.tag||t.stateNode.containerInfo!==A.containerInfo||t.stateNode.implementation!==A.implementation?((t=Ds(A,e.mode,n)).return=e,t):((t=r(t,A.children||[])).return=e,t)}function u(e,t,A,n,i){return null===t||7!==t.tag?((t=Fs(A,e.mode,n,i)).return=e,t):((t=r(t,A)).return=e,t)}function l(e,t,A){if("string"===typeof t||"number"===typeof t)return(t=Rs(""+t,e.mode,A)).return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case ee:return(A=Ss(t.type,t.key,t.props,null,e.mode,A)).ref=Qi(e,null,t),A.return=e,A;case te:return(t=Ds(t,e.mode,A)).return=e,t}if(Ei(t)||he(t))return(t=Fs(t,e.mode,A,null)).return=e,t;yi(e,t)}return null}function I(e,t,A,n){var r=null!==t?t.key:null;if("string"===typeof A||"number"===typeof A)return null!==r?null:s(e,t,""+A,n);if("object"===typeof A&&null!==A){switch(A.$$typeof){case ee:return A.key===r?A.type===Ae?u(e,t,A.props.children,n,r):g(e,t,A,n):null;case te:return A.key===r?c(e,t,A,n):null}if(Ei(A)||he(A))return null!==r?null:u(e,t,A,n,null);yi(e,A)}return null}function C(e,t,A,n,r){if("string"===typeof n||"number"===typeof n)return s(t,e=e.get(A)||null,""+n,r);if("object"===typeof n&&null!==n){switch(n.$$typeof){case ee:return e=e.get(null===n.key?A:n.key)||null,n.type===Ae?u(t,e,n.props.children,r,n.key):g(t,e,n,r);case te:return c(t,e=e.get(null===n.key?A:n.key)||null,n,r)}if(Ei(n)||he(n))return u(t,e=e.get(A)||null,n,r,null);yi(t,n)}return null}function h(r,o,a,s){for(var g=null,c=null,u=o,h=o=0,f=null;null!==u&&h<a.length;h++){u.index>h?(f=u,u=null):f=u.sibling;var d=I(r,u,a[h],s);if(null===d){null===u&&(u=f);break}e&&u&&null===d.alternate&&t(r,u),o=i(d,o,h),null===c?g=d:c.sibling=d,c=d,u=f}if(h===a.length)return A(r,u),g;if(null===u){for(;h<a.length;h++)null!==(u=l(r,a[h],s))&&(o=i(u,o,h),null===c?g=u:c.sibling=u,c=u);return g}for(u=n(r,u);h<a.length;h++)null!==(f=C(u,r,h,a[h],s))&&(e&&null!==f.alternate&&u.delete(null===f.key?h:f.key),o=i(f,o,h),null===c?g=f:c.sibling=f,c=f);return e&&u.forEach((function(e){return t(r,e)})),g}function f(r,a,s,g){var c=he(s);if("function"!==typeof c)throw Error(o(150));if(null==(s=c.call(s)))throw Error(o(151));for(var u=c=null,h=a,f=a=0,d=null,B=s.next();null!==h&&!B.done;f++,B=s.next()){h.index>f?(d=h,h=null):d=h.sibling;var p=I(r,h,B.value,g);if(null===p){null===h&&(h=d);break}e&&h&&null===p.alternate&&t(r,h),a=i(p,a,f),null===u?c=p:u.sibling=p,u=p,h=d}if(B.done)return A(r,h),c;if(null===h){for(;!B.done;f++,B=s.next())null!==(B=l(r,B.value,g))&&(a=i(B,a,f),null===u?c=B:u.sibling=B,u=B);return c}for(h=n(r,h);!B.done;f++,B=s.next())null!==(B=C(h,r,f,B.value,g))&&(e&&null!==B.alternate&&h.delete(null===B.key?f:B.key),a=i(B,a,f),null===u?c=B:u.sibling=B,u=B);return e&&h.forEach((function(e){return t(r,e)})),c}return function(e,n,i,s){var g="object"===typeof i&&null!==i&&i.type===Ae&&null===i.key;g&&(i=i.props.children);var c="object"===typeof i&&null!==i;if(c)switch(i.$$typeof){case ee:e:{for(c=i.key,g=n;null!==g;){if(g.key===c){switch(g.tag){case 7:if(i.type===Ae){A(e,g.sibling),(n=r(g,i.props.children)).return=e,e=n;break e}break;default:if(g.elementType===i.type){A(e,g.sibling),(n=r(g,i.props)).ref=Qi(e,g,i),n.return=e,e=n;break e}}A(e,g);break}t(e,g),g=g.sibling}i.type===Ae?((n=Fs(i.props.children,e.mode,s,i.key)).return=e,e=n):((s=Ss(i.type,i.key,i.props,null,e.mode,s)).ref=Qi(e,n,i),s.return=e,e=s)}return a(e);case te:e:{for(g=i.key;null!==n;){if(n.key===g){if(4===n.tag&&n.stateNode.containerInfo===i.containerInfo&&n.stateNode.implementation===i.implementation){A(e,n.sibling),(n=r(n,i.children||[])).return=e,e=n;break e}A(e,n);break}t(e,n),n=n.sibling}(n=Ds(i,e.mode,s)).return=e,e=n}return a(e)}if("string"===typeof i||"number"===typeof i)return i=""+i,null!==n&&6===n.tag?(A(e,n.sibling),(n=r(n,i)).return=e,e=n):(A(e,n),(n=Rs(i,e.mode,s)).return=e,e=n),a(e);if(Ei(i))return h(e,n,i,s);if(he(i))return f(e,n,i,s);if(c&&yi(e,i),"undefined"===typeof i&&!g)switch(e.tag){case 1:case 0:throw e=e.type,Error(o(152,e.displayName||e.name||"Component"))}return A(e,n)}}var mi=vi(!0),bi=vi(!1),wi={},Si={current:wi},Fi={current:wi},Ri={current:wi};function Di(e){if(e===wi)throw Error(o(174));return e}function Gi(e,t){switch(gr(Ri,t),gr(Fi,e),gr(Si,wi),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Me(null,"");break;default:t=Me(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}sr(Si),gr(Si,t)}function ki(){sr(Si),sr(Fi),sr(Ri)}function xi(e){Di(Ri.current);var t=Di(Si.current),A=Me(t,e.type);t!==A&&(gr(Fi,e),gr(Si,A))}function Ni(e){Fi.current===e&&(sr(Si),sr(Fi))}var Ui={current:0};function _i(e){for(var t=e;null!==t;){if(13===t.tag){var A=t.memoizedState;if(null!==A&&(null===(A=A.dehydrated)||"$?"===A.data||"$!"===A.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function Mi(e,t){return{responder:e,props:t}}var Oi=X.ReactCurrentDispatcher,Li=X.ReactCurrentBatchConfig,Ti=0,Zi=null,Hi=null,Yi=null,Ji=!1;function ji(){throw Error(o(321))}function Pi(e,t){if(null===t)return!1;for(var A=0;A<t.length&&A<e.length;A++)if(!Mn(e[A],t[A]))return!1;return!0}function Vi(e,t,A,n,r,i){if(Ti=i,Zi=t,t.memoizedState=null,t.updateQueue=null,t.expirationTime=0,Oi.current=null===e||null===e.memoizedState?fo:Bo,e=A(n,r),t.expirationTime===Ti){i=0;do{if(t.expirationTime=0,!(25>i))throw Error(o(301));i+=1,Yi=Hi=null,t.updateQueue=null,Oi.current=po,e=A(n,r)}while(t.expirationTime===Ti)}if(Oi.current=ho,t=null!==Hi&&null!==Hi.next,Ti=0,Yi=Hi=Zi=null,Ji=!1,t)throw Error(o(300));return e}function Ki(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===Yi?Zi.memoizedState=Yi=e:Yi=Yi.next=e,Yi}function Wi(){if(null===Hi){var e=Zi.alternate;e=null!==e?e.memoizedState:null}else e=Hi.next;var t=null===Yi?Zi.memoizedState:Yi.next;if(null!==t)Yi=t,Hi=e;else{if(null===e)throw Error(o(310));e={memoizedState:(Hi=e).memoizedState,baseState:Hi.baseState,baseQueue:Hi.baseQueue,queue:Hi.queue,next:null},null===Yi?Zi.memoizedState=Yi=e:Yi=Yi.next=e}return Yi}function Xi(e,t){return"function"===typeof t?t(e):t}function qi(e){var t=Wi(),A=t.queue;if(null===A)throw Error(o(311));A.lastRenderedReducer=e;var n=Hi,r=n.baseQueue,i=A.pending;if(null!==i){if(null!==r){var a=r.next;r.next=i.next,i.next=a}n.baseQueue=r=i,A.pending=null}if(null!==r){r=r.next,n=n.baseState;var s=a=i=null,g=r;do{var c=g.expirationTime;if(c<Ti){var u={expirationTime:g.expirationTime,suspenseConfig:g.suspenseConfig,action:g.action,eagerReducer:g.eagerReducer,eagerState:g.eagerState,next:null};null===s?(a=s=u,i=n):s=s.next=u,c>Zi.expirationTime&&(Zi.expirationTime=c,os(c))}else null!==s&&(s=s.next={expirationTime:1073741823,suspenseConfig:g.suspenseConfig,action:g.action,eagerReducer:g.eagerReducer,eagerState:g.eagerState,next:null}),is(c,g.suspenseConfig),n=g.eagerReducer===e?g.eagerState:e(n,g.action);g=g.next}while(null!==g&&g!==r);null===s?i=n:s.next=a,Mn(n,t.memoizedState)||(Do=!0),t.memoizedState=n,t.baseState=i,t.baseQueue=s,A.lastRenderedState=n}return[t.memoizedState,A.dispatch]}function zi(e){var t=Wi(),A=t.queue;if(null===A)throw Error(o(311));A.lastRenderedReducer=e;var n=A.dispatch,r=A.pending,i=t.memoizedState;if(null!==r){A.pending=null;var a=r=r.next;do{i=e(i,a.action),a=a.next}while(a!==r);Mn(i,t.memoizedState)||(Do=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),A.lastRenderedState=i}return[i,n]}function $i(e){var t=Ki();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:Xi,lastRenderedState:e}).dispatch=Co.bind(null,Zi,e),[t.memoizedState,e]}function eo(e,t,A,n){return e={tag:e,create:t,destroy:A,deps:n,next:null},null===(t=Zi.updateQueue)?(t={lastEffect:null},Zi.updateQueue=t,t.lastEffect=e.next=e):null===(A=t.lastEffect)?t.lastEffect=e.next=e:(n=A.next,A.next=e,e.next=n,t.lastEffect=e),e}function to(){return Wi().memoizedState}function Ao(e,t,A,n){var r=Ki();Zi.effectTag|=e,r.memoizedState=eo(1|t,A,void 0,void 0===n?null:n)}function no(e,t,A,n){var r=Wi();n=void 0===n?null:n;var i=void 0;if(null!==Hi){var o=Hi.memoizedState;if(i=o.destroy,null!==n&&Pi(n,o.deps))return void eo(t,A,i,n)}Zi.effectTag|=e,r.memoizedState=eo(1|t,A,i,n)}function ro(e,t){return Ao(516,4,e,t)}function io(e,t){return no(516,4,e,t)}function oo(e,t){return no(4,2,e,t)}function ao(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function so(e,t,A){return A=null!==A&&void 0!==A?A.concat([e]):null,no(4,2,ao.bind(null,t,e),A)}function go(){}function co(e,t){return Ki().memoizedState=[e,void 0===t?null:t],e}function uo(e,t){var A=Wi();t=void 0===t?null:t;var n=A.memoizedState;return null!==n&&null!==t&&Pi(t,n[1])?n[0]:(A.memoizedState=[e,t],e)}function lo(e,t){var A=Wi();t=void 0===t?null:t;var n=A.memoizedState;return null!==n&&null!==t&&Pi(t,n[1])?n[0]:(e=e(),A.memoizedState=[e,t],e)}function Io(e,t,A){var n=Tr();Hr(98>n?98:n,(function(){e(!0)})),Hr(97<n?97:n,(function(){var n=Li.suspense;Li.suspense=void 0===t?null:t;try{e(!1),A()}finally{Li.suspense=n}}))}function Co(e,t,A){var n=Pa(),r=li.suspense;r={expirationTime:n=Va(n,e,r),suspenseConfig:r,action:A,eagerReducer:null,eagerState:null,next:null};var i=t.pending;if(null===i?r.next=r:(r.next=i.next,i.next=r),t.pending=r,i=e.alternate,e===Zi||null!==i&&i===Zi)Ji=!0,r.expirationTime=Ti,Zi.expirationTime=Ti;else{if(0===e.expirationTime&&(null===i||0===i.expirationTime)&&null!==(i=t.lastRenderedReducer))try{var o=t.lastRenderedState,a=i(o,A);if(r.eagerReducer=i,r.eagerState=a,Mn(a,o))return}catch(s){}Ka(e,n)}}var ho={readContext:ni,useCallback:ji,useContext:ji,useEffect:ji,useImperativeHandle:ji,useLayoutEffect:ji,useMemo:ji,useReducer:ji,useRef:ji,useState:ji,useDebugValue:ji,useResponder:ji,useDeferredValue:ji,useTransition:ji},fo={readContext:ni,useCallback:co,useContext:ni,useEffect:ro,useImperativeHandle:function(e,t,A){return A=null!==A&&void 0!==A?A.concat([e]):null,Ao(4,2,ao.bind(null,t,e),A)},useLayoutEffect:function(e,t){return Ao(4,2,e,t)},useMemo:function(e,t){var A=Ki();return t=void 0===t?null:t,e=e(),A.memoizedState=[e,t],e},useReducer:function(e,t,A){var n=Ki();return t=void 0!==A?A(t):t,n.memoizedState=n.baseState=t,e=(e=n.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Co.bind(null,Zi,e),[n.memoizedState,e]},useRef:function(e){return e={current:e},Ki().memoizedState=e},useState:$i,useDebugValue:go,useResponder:Mi,useDeferredValue:function(e,t){var A=$i(e),n=A[0],r=A[1];return ro((function(){var A=Li.suspense;Li.suspense=void 0===t?null:t;try{r(e)}finally{Li.suspense=A}}),[e,t]),n},useTransition:function(e){var t=$i(!1),A=t[0];return t=t[1],[co(Io.bind(null,t,e),[t,e]),A]}},Bo={readContext:ni,useCallback:uo,useContext:ni,useEffect:io,useImperativeHandle:so,useLayoutEffect:oo,useMemo:lo,useReducer:qi,useRef:to,useState:function(){return qi(Xi)},useDebugValue:go,useResponder:Mi,useDeferredValue:function(e,t){var A=qi(Xi),n=A[0],r=A[1];return io((function(){var A=Li.suspense;Li.suspense=void 0===t?null:t;try{r(e)}finally{Li.suspense=A}}),[e,t]),n},useTransition:function(e){var t=qi(Xi),A=t[0];return t=t[1],[uo(Io.bind(null,t,e),[t,e]),A]}},po={readContext:ni,useCallback:uo,useContext:ni,useEffect:io,useImperativeHandle:so,useLayoutEffect:oo,useMemo:lo,useReducer:zi,useRef:to,useState:function(){return zi(Xi)},useDebugValue:go,useResponder:Mi,useDeferredValue:function(e,t){var A=zi(Xi),n=A[0],r=A[1];return io((function(){var A=Li.suspense;Li.suspense=void 0===t?null:t;try{r(e)}finally{Li.suspense=A}}),[e,t]),n},useTransition:function(e){var t=zi(Xi),A=t[0];return t=t[1],[uo(Io.bind(null,t,e),[t,e]),A]}},Eo=null,Qo=null,yo=!1;function vo(e,t){var A=ms(5,null,null,0);A.elementType="DELETED",A.type="DELETED",A.stateNode=t,A.return=e,A.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=A,e.lastEffect=A):e.firstEffect=e.lastEffect=A}function mo(e,t){switch(e.tag){case 5:var A=e.type;return null!==(t=1!==t.nodeType||A.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function bo(e){if(yo){var t=Qo;if(t){var A=t;if(!mo(e,t)){if(!(t=EA(A.nextSibling))||!mo(e,t))return e.effectTag=-1025&e.effectTag|2,yo=!1,void(Eo=e);vo(Eo,A)}Eo=e,Qo=EA(t.firstChild)}else e.effectTag=-1025&e.effectTag|2,yo=!1,Eo=e}}function wo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Eo=e}function So(e){if(e!==Eo)return!1;if(!yo)return wo(e),yo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!dA(t,e.memoizedProps))for(t=Qo;t;)vo(e,t),t=EA(t.nextSibling);if(wo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var A=e.data;if("/$"===A){if(0===t){Qo=EA(e.nextSibling);break e}t--}else"$"!==A&&"$!"!==A&&"$?"!==A||t++}e=e.nextSibling}Qo=null}}else Qo=Eo?EA(e.stateNode.nextSibling):null;return!0}function Fo(){Qo=Eo=null,yo=!1}var Ro=X.ReactCurrentOwner,Do=!1;function Go(e,t,A,n){t.child=null===e?bi(t,null,A,n):mi(t,e.child,A,n)}function ko(e,t,A,n,r){A=A.render;var i=t.ref;return Ai(t,r),n=Vi(e,t,A,n,i,r),null===e||Do?(t.effectTag|=1,Go(e,t,n,r),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=r&&(e.expirationTime=0),Ko(e,t,r))}function xo(e,t,A,n,r,i){if(null===e){var o=A.type;return"function"!==typeof o||bs(o)||void 0!==o.defaultProps||null!==A.compare||void 0!==A.defaultProps?((e=Ss(A.type,null,n,null,t.mode,i)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,No(e,t,o,n,r,i))}return o=e.child,r<i&&(r=o.memoizedProps,(A=null!==(A=A.compare)?A:Ln)(r,n)&&e.ref===t.ref)?Ko(e,t,i):(t.effectTag|=1,(e=ws(o,n)).ref=t.ref,e.return=t,t.child=e)}function No(e,t,A,n,r,i){return null!==e&&Ln(e.memoizedProps,n)&&e.ref===t.ref&&(Do=!1,r<i)?(t.expirationTime=e.expirationTime,Ko(e,t,i)):_o(e,t,A,n,i)}function Uo(e,t){var A=t.ref;(null===e&&null!==A||null!==e&&e.ref!==A)&&(t.effectTag|=128)}function _o(e,t,A,n,r){var i=hr(A)?Ir:ur.current;return i=Cr(t,i),Ai(t,r),A=Vi(e,t,A,n,i,r),null===e||Do?(t.effectTag|=1,Go(e,t,A,r),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=r&&(e.expirationTime=0),Ko(e,t,r))}function Mo(e,t,A,n,r){if(hr(A)){var i=!0;pr(t)}else i=!1;if(Ai(t,r),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),di(t,A,n),pi(t,A,n,r),n=!0;else if(null===e){var o=t.stateNode,a=t.memoizedProps;o.props=a;var s=o.context,g=A.contextType;"object"===typeof g&&null!==g?g=ni(g):g=Cr(t,g=hr(A)?Ir:ur.current);var c=A.getDerivedStateFromProps,u="function"===typeof c||"function"===typeof o.getSnapshotBeforeUpdate;u||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(a!==n||s!==g)&&Bi(t,o,n,g),ri=!1;var l=t.memoizedState;o.state=l,ci(t,n,o,r),s=t.memoizedState,a!==n||l!==s||lr.current||ri?("function"===typeof c&&(Ci(t,A,c,n),s=t.memoizedState),(a=ri||fi(t,A,a,n,l,s,g))?(u||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||("function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"===typeof o.componentDidMount&&(t.effectTag|=4)):("function"===typeof o.componentDidMount&&(t.effectTag|=4),t.memoizedProps=n,t.memoizedState=s),o.props=n,o.state=s,o.context=g,n=a):("function"===typeof o.componentDidMount&&(t.effectTag|=4),n=!1)}else o=t.stateNode,oi(e,t),a=t.memoizedProps,o.props=t.type===t.elementType?a:Kr(t.type,a),s=o.context,"object"===typeof(g=A.contextType)&&null!==g?g=ni(g):g=Cr(t,g=hr(A)?Ir:ur.current),(u="function"===typeof(c=A.getDerivedStateFromProps)||"function"===typeof o.getSnapshotBeforeUpdate)||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(a!==n||s!==g)&&Bi(t,o,n,g),ri=!1,s=t.memoizedState,o.state=s,ci(t,n,o,r),l=t.memoizedState,a!==n||s!==l||lr.current||ri?("function"===typeof c&&(Ci(t,A,c,n),l=t.memoizedState),(c=ri||fi(t,A,a,n,s,l,g))?(u||"function"!==typeof o.UNSAFE_componentWillUpdate&&"function"!==typeof o.componentWillUpdate||("function"===typeof o.componentWillUpdate&&o.componentWillUpdate(n,l,g),"function"===typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(n,l,g)),"function"===typeof o.componentDidUpdate&&(t.effectTag|=4),"function"===typeof o.getSnapshotBeforeUpdate&&(t.effectTag|=256)):("function"!==typeof o.componentDidUpdate||a===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!==typeof o.getSnapshotBeforeUpdate||a===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),t.memoizedProps=n,t.memoizedState=l),o.props=n,o.state=l,o.context=g,n=c):("function"!==typeof o.componentDidUpdate||a===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!==typeof o.getSnapshotBeforeUpdate||a===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),n=!1);return Oo(e,t,A,n,i,r)}function Oo(e,t,A,n,r,i){Uo(e,t);var o=0!==(64&t.effectTag);if(!n&&!o)return r&&Er(t,A,!1),Ko(e,t,i);n=t.stateNode,Ro.current=t;var a=o&&"function"!==typeof A.getDerivedStateFromError?null:n.render();return t.effectTag|=1,null!==e&&o?(t.child=mi(t,e.child,null,i),t.child=mi(t,null,a,i)):Go(e,t,a,i),t.memoizedState=n.state,r&&Er(t,A,!0),t.child}function Lo(e){var t=e.stateNode;t.pendingContext?dr(0,t.pendingContext,t.pendingContext!==t.context):t.context&&dr(0,t.context,!1),Gi(e,t.containerInfo)}var To,Zo,Ho,Yo={dehydrated:null,retryTime:0};function Jo(e,t,A){var n,r=t.mode,i=t.pendingProps,o=Ui.current,a=!1;if((n=0!==(64&t.effectTag))||(n=0!==(2&o)&&(null===e||null!==e.memoizedState)),n?(a=!0,t.effectTag&=-65):null!==e&&null===e.memoizedState||void 0===i.fallback||!0===i.unstable_avoidThisFallback||(o|=1),gr(Ui,1&o),null===e){if(void 0!==i.fallback&&bo(t),a){if(a=i.fallback,(i=Fs(null,r,0,null)).return=t,0===(2&t.mode))for(e=null!==t.memoizedState?t.child.child:t.child,i.child=e;null!==e;)e.return=i,e=e.sibling;return(A=Fs(a,r,A,null)).return=t,i.sibling=A,t.memoizedState=Yo,t.child=i,A}return r=i.children,t.memoizedState=null,t.child=bi(t,null,r,A)}if(null!==e.memoizedState){if(r=(e=e.child).sibling,a){if(i=i.fallback,(A=ws(e,e.pendingProps)).return=t,0===(2&t.mode)&&(a=null!==t.memoizedState?t.child.child:t.child)!==e.child)for(A.child=a;null!==a;)a.return=A,a=a.sibling;return(r=ws(r,i)).return=t,A.sibling=r,A.childExpirationTime=0,t.memoizedState=Yo,t.child=A,r}return A=mi(t,e.child,i.children,A),t.memoizedState=null,t.child=A}if(e=e.child,a){if(a=i.fallback,(i=Fs(null,r,0,null)).return=t,i.child=e,null!==e&&(e.return=i),0===(2&t.mode))for(e=null!==t.memoizedState?t.child.child:t.child,i.child=e;null!==e;)e.return=i,e=e.sibling;return(A=Fs(a,r,A,null)).return=t,i.sibling=A,A.effectTag|=2,i.childExpirationTime=0,t.memoizedState=Yo,t.child=i,A}return t.memoizedState=null,t.child=mi(t,e,i.children,A)}function jo(e,t){e.expirationTime<t&&(e.expirationTime=t);var A=e.alternate;null!==A&&A.expirationTime<t&&(A.expirationTime=t),ti(e.return,t)}function Po(e,t,A,n,r,i){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:n,tail:A,tailExpiration:0,tailMode:r,lastEffect:i}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=n,o.tail=A,o.tailExpiration=0,o.tailMode=r,o.lastEffect=i)}function Vo(e,t,A){var n=t.pendingProps,r=n.revealOrder,i=n.tail;if(Go(e,t,n.children,A),0!==(2&(n=Ui.current)))n=1&n|2,t.effectTag|=64;else{if(null!==e&&0!==(64&e.effectTag))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&jo(e,A);else if(19===e.tag)jo(e,A);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}n&=1}if(gr(Ui,n),0===(2&t.mode))t.memoizedState=null;else switch(r){case"forwards":for(A=t.child,r=null;null!==A;)null!==(e=A.alternate)&&null===_i(e)&&(r=A),A=A.sibling;null===(A=r)?(r=t.child,t.child=null):(r=A.sibling,A.sibling=null),Po(t,!1,r,A,i,t.lastEffect);break;case"backwards":for(A=null,r=t.child,t.child=null;null!==r;){if(null!==(e=r.alternate)&&null===_i(e)){t.child=r;break}e=r.sibling,r.sibling=A,A=r,r=e}Po(t,!0,A,null,i,t.lastEffect);break;case"together":Po(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function Ko(e,t,A){null!==e&&(t.dependencies=e.dependencies);var n=t.expirationTime;if(0!==n&&os(n),t.childExpirationTime<A)return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(A=ws(e=t.child,e.pendingProps),t.child=A,A.return=t;null!==e.sibling;)e=e.sibling,(A=A.sibling=ws(e,e.pendingProps)).return=t;A.sibling=null}return t.child}function Wo(e,t){switch(e.tailMode){case"hidden":t=e.tail;for(var A=null;null!==t;)null!==t.alternate&&(A=t),t=t.sibling;null===A?e.tail=null:A.sibling=null;break;case"collapsed":A=e.tail;for(var n=null;null!==A;)null!==A.alternate&&(n=A),A=A.sibling;null===n?t||null===e.tail?e.tail=null:e.tail.sibling=null:n.sibling=null}}function Xo(e,t,A){var n=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return hr(t.type)&&fr(),null;case 3:return ki(),sr(lr),sr(ur),(A=t.stateNode).pendingContext&&(A.context=A.pendingContext,A.pendingContext=null),null!==e&&null!==e.child||!So(t)||(t.effectTag|=4),null;case 5:Ni(t),A=Di(Ri.current);var i=t.type;if(null!==e&&null!=t.stateNode)Zo(e,t,i,n,A),e.ref!==t.ref&&(t.effectTag|=128);else{if(!n){if(null===t.stateNode)throw Error(o(166));return null}if(e=Di(Si.current),So(t)){n=t.stateNode,i=t.type;var a=t.memoizedProps;switch(n[vA]=t,n[mA]=a,i){case"iframe":case"object":case"embed":Vt("load",n);break;case"video":case"audio":for(e=0;e<Xe.length;e++)Vt(Xe[e],n);break;case"source":Vt("error",n);break;case"img":case"image":case"link":Vt("error",n),Vt("load",n);break;case"form":Vt("reset",n),Vt("submit",n);break;case"details":Vt("toggle",n);break;case"input":ve(n,a),Vt("invalid",n),aA(A,"onChange");break;case"select":n._wrapperState={wasMultiple:!!a.multiple},Vt("invalid",n),aA(A,"onChange");break;case"textarea":Ge(n,a),Vt("invalid",n),aA(A,"onChange")}for(var s in rA(i,a),e=null,a)if(a.hasOwnProperty(s)){var g=a[s];"children"===s?"string"===typeof g?n.textContent!==g&&(e=["children",g]):"number"===typeof g&&n.textContent!==""+g&&(e=["children",""+g]):m.hasOwnProperty(s)&&null!=g&&aA(A,s)}switch(i){case"input":Ee(n),we(n,a,!0);break;case"textarea":Ee(n),xe(n);break;case"select":case"option":break;default:"function"===typeof a.onClick&&(n.onclick=sA)}A=e,t.updateQueue=A,null!==A&&(t.effectTag|=4)}else{switch(s=9===A.nodeType?A:A.ownerDocument,e===oA&&(e=_e(i)),e===oA?"script"===i?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof n.is?e=s.createElement(i,{is:n.is}):(e=s.createElement(i),"select"===i&&(s=e,n.multiple?s.multiple=!0:n.size&&(s.size=n.size))):e=s.createElementNS(e,i),e[vA]=t,e[mA]=n,To(e,t),t.stateNode=e,s=iA(i,n),i){case"iframe":case"object":case"embed":Vt("load",e),g=n;break;case"video":case"audio":for(g=0;g<Xe.length;g++)Vt(Xe[g],e);g=n;break;case"source":Vt("error",e),g=n;break;case"img":case"image":case"link":Vt("error",e),Vt("load",e),g=n;break;case"form":Vt("reset",e),Vt("submit",e),g=n;break;case"details":Vt("toggle",e),g=n;break;case"input":ve(e,n),g=ye(e,n),Vt("invalid",e),aA(A,"onChange");break;case"option":g=Fe(e,n);break;case"select":e._wrapperState={wasMultiple:!!n.multiple},g=r({},n,{value:void 0}),Vt("invalid",e),aA(A,"onChange");break;case"textarea":Ge(e,n),g=De(e,n),Vt("invalid",e),aA(A,"onChange");break;default:g=n}rA(i,g);var c=g;for(a in c)if(c.hasOwnProperty(a)){var u=c[a];"style"===a?AA(e,u):"dangerouslySetInnerHTML"===a?null!=(u=u?u.__html:void 0)&&Le(e,u):"children"===a?"string"===typeof u?("textarea"!==i||""!==u)&&Te(e,u):"number"===typeof u&&Te(e,""+u):"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&"autoFocus"!==a&&(m.hasOwnProperty(a)?null!=u&&aA(A,a):null!=u&&q(e,a,u,s))}switch(i){case"input":Ee(e),we(e,n,!1);break;case"textarea":Ee(e),xe(e);break;case"option":null!=n.value&&e.setAttribute("value",""+Be(n.value));break;case"select":e.multiple=!!n.multiple,null!=(A=n.value)?Re(e,!!n.multiple,A,!1):null!=n.defaultValue&&Re(e,!!n.multiple,n.defaultValue,!0);break;default:"function"===typeof g.onClick&&(e.onclick=sA)}fA(i,n)&&(t.effectTag|=4)}null!==t.ref&&(t.effectTag|=128)}return null;case 6:if(e&&null!=t.stateNode)Ho(0,t,e.memoizedProps,n);else{if("string"!==typeof n&&null===t.stateNode)throw Error(o(166));A=Di(Ri.current),Di(Si.current),So(t)?(A=t.stateNode,n=t.memoizedProps,A[vA]=t,A.nodeValue!==n&&(t.effectTag|=4)):((A=(9===A.nodeType?A:A.ownerDocument).createTextNode(n))[vA]=t,t.stateNode=A)}return null;case 13:return sr(Ui),n=t.memoizedState,0!==(64&t.effectTag)?(t.expirationTime=A,t):(A=null!==n,n=!1,null===e?void 0!==t.memoizedProps.fallback&&So(t):(n=null!==(i=e.memoizedState),A||null===i||null!==(i=e.child.sibling)&&(null!==(a=t.firstEffect)?(t.firstEffect=i,i.nextEffect=a):(t.firstEffect=t.lastEffect=i,i.nextEffect=null),i.effectTag=8)),A&&!n&&0!==(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!==(1&Ui.current)?Sa===Ea&&(Sa=Qa):(Sa!==Ea&&Sa!==Qa||(Sa=ya),0!==ka&&null!==ma&&(xs(ma,wa),Ns(ma,ka)))),(A||n)&&(t.effectTag|=4),null);case 4:return ki(),null;case 10:return ei(t),null;case 17:return hr(t.type)&&fr(),null;case 19:if(sr(Ui),null===(n=t.memoizedState))return null;if(i=0!==(64&t.effectTag),null===(a=n.rendering)){if(i)Wo(n,!1);else if(Sa!==Ea||null!==e&&0!==(64&e.effectTag))for(a=t.child;null!==a;){if(null!==(e=_i(a))){for(t.effectTag|=64,Wo(n,!1),null!==(i=e.updateQueue)&&(t.updateQueue=i,t.effectTag|=4),null===n.lastEffect&&(t.firstEffect=null),t.lastEffect=n.lastEffect,n=t.child;null!==n;)a=A,(i=n).effectTag&=2,i.nextEffect=null,i.firstEffect=null,i.lastEffect=null,null===(e=i.alternate)?(i.childExpirationTime=0,i.expirationTime=a,i.child=null,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null):(i.childExpirationTime=e.childExpirationTime,i.expirationTime=e.expirationTime,i.child=e.child,i.memoizedProps=e.memoizedProps,i.memoizedState=e.memoizedState,i.updateQueue=e.updateQueue,a=e.dependencies,i.dependencies=null===a?null:{expirationTime:a.expirationTime,firstContext:a.firstContext,responders:a.responders}),n=n.sibling;return gr(Ui,1&Ui.current|2),t.child}a=a.sibling}}else{if(!i)if(null!==(e=_i(a))){if(t.effectTag|=64,i=!0,null!==(A=e.updateQueue)&&(t.updateQueue=A,t.effectTag|=4),Wo(n,!0),null===n.tail&&"hidden"===n.tailMode&&!a.alternate)return null!==(t=t.lastEffect=n.lastEffect)&&(t.nextEffect=null),null}else 2*Lr()-n.renderingStartTime>n.tailExpiration&&1<A&&(t.effectTag|=64,i=!0,Wo(n,!1),t.expirationTime=t.childExpirationTime=A-1);n.isBackwards?(a.sibling=t.child,t.child=a):(null!==(A=n.last)?A.sibling=a:t.child=a,n.last=a)}return null!==n.tail?(0===n.tailExpiration&&(n.tailExpiration=Lr()+500),A=n.tail,n.rendering=A,n.tail=A.sibling,n.lastEffect=t.lastEffect,n.renderingStartTime=Lr(),A.sibling=null,t=Ui.current,gr(Ui,i?1&t|2:1&t),A):null}throw Error(o(156,t.tag))}function qo(e){switch(e.tag){case 1:hr(e.type)&&fr();var t=e.effectTag;return 4096&t?(e.effectTag=-4097&t|64,e):null;case 3:if(ki(),sr(lr),sr(ur),0!==(64&(t=e.effectTag)))throw Error(o(285));return e.effectTag=-4097&t|64,e;case 5:return Ni(e),null;case 13:return sr(Ui),4096&(t=e.effectTag)?(e.effectTag=-4097&t|64,e):null;case 19:return sr(Ui),null;case 4:return ki(),null;case 10:return ei(e),null;default:return null}}function zo(e,t){return{value:e,source:t,stack:de(t)}}To=function(e,t){for(var A=t.child;null!==A;){if(5===A.tag||6===A.tag)e.appendChild(A.stateNode);else if(4!==A.tag&&null!==A.child){A.child.return=A,A=A.child;continue}if(A===t)break;for(;null===A.sibling;){if(null===A.return||A.return===t)return;A=A.return}A.sibling.return=A.return,A=A.sibling}},Zo=function(e,t,A,n,i){var o=e.memoizedProps;if(o!==n){var a,s,g=t.stateNode;switch(Di(Si.current),e=null,A){case"input":o=ye(g,o),n=ye(g,n),e=[];break;case"option":o=Fe(g,o),n=Fe(g,n),e=[];break;case"select":o=r({},o,{value:void 0}),n=r({},n,{value:void 0}),e=[];break;case"textarea":o=De(g,o),n=De(g,n),e=[];break;default:"function"!==typeof o.onClick&&"function"===typeof n.onClick&&(g.onclick=sA)}for(a in rA(A,n),A=null,o)if(!n.hasOwnProperty(a)&&o.hasOwnProperty(a)&&null!=o[a])if("style"===a)for(s in g=o[a])g.hasOwnProperty(s)&&(A||(A={}),A[s]="");else"dangerouslySetInnerHTML"!==a&&"children"!==a&&"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&"autoFocus"!==a&&(m.hasOwnProperty(a)?e||(e=[]):(e=e||[]).push(a,null));for(a in n){var c=n[a];if(g=null!=o?o[a]:void 0,n.hasOwnProperty(a)&&c!==g&&(null!=c||null!=g))if("style"===a)if(g){for(s in g)!g.hasOwnProperty(s)||c&&c.hasOwnProperty(s)||(A||(A={}),A[s]="");for(s in c)c.hasOwnProperty(s)&&g[s]!==c[s]&&(A||(A={}),A[s]=c[s])}else A||(e||(e=[]),e.push(a,A)),A=c;else"dangerouslySetInnerHTML"===a?(c=c?c.__html:void 0,g=g?g.__html:void 0,null!=c&&g!==c&&(e=e||[]).push(a,c)):"children"===a?g===c||"string"!==typeof c&&"number"!==typeof c||(e=e||[]).push(a,""+c):"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&(m.hasOwnProperty(a)?(null!=c&&aA(i,a),e||g===c||(e=[])):(e=e||[]).push(a,c))}A&&(e=e||[]).push("style",A),i=e,(t.updateQueue=i)&&(t.effectTag|=4)}},Ho=function(e,t,A,n){A!==n&&(t.effectTag|=4)};var $o="function"===typeof WeakSet?WeakSet:Set;function ea(e,t){var A=t.source,n=t.stack;null===n&&null!==A&&(n=de(A)),null!==A&&fe(A.type),t=t.value,null!==e&&1===e.tag&&fe(e.type);try{console.error(t)}catch(r){setTimeout((function(){throw r}))}}function ta(e){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(A){Bs(e,A)}else t.current=null}function Aa(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(256&t.effectTag&&null!==e){var A=e.memoizedProps,n=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?A:Kr(t.type,A),n),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:case 5:case 6:case 4:case 17:return}throw Error(o(163))}function na(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var A=t=t.next;do{if((A.tag&e)===e){var n=A.destroy;A.destroy=void 0,void 0!==n&&n()}A=A.next}while(A!==t)}}function ra(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var A=t=t.next;do{if((A.tag&e)===e){var n=A.create;A.destroy=n()}A=A.next}while(A!==t)}}function ia(e,t,A){switch(A.tag){case 0:case 11:case 15:case 22:return void ra(3,A);case 1:if(e=A.stateNode,4&A.effectTag)if(null===t)e.componentDidMount();else{var n=A.elementType===A.type?t.memoizedProps:Kr(A.type,t.memoizedProps);e.componentDidUpdate(n,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate)}return void(null!==(t=A.updateQueue)&&ui(A,t,e));case 3:if(null!==(t=A.updateQueue)){if(e=null,null!==A.child)switch(A.child.tag){case 5:e=A.child.stateNode;break;case 1:e=A.child.stateNode}ui(A,t,e)}return;case 5:return e=A.stateNode,void(null===t&&4&A.effectTag&&fA(A.type,A.memoizedProps)&&e.focus());case 6:case 4:case 12:return;case 13:return void(null===A.memoizedState&&(A=A.alternate,null!==A&&(A=A.memoizedState,null!==A&&(A=A.dehydrated,null!==A&&_t(A)))));case 19:case 17:case 20:case 21:return}throw Error(o(163))}function oa(e,t,A){switch("function"===typeof ys&&ys(t),t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e.next;Hr(97<A?97:A,(function(){var e=n;do{var A=e.destroy;if(void 0!==A){var r=t;try{A()}catch(i){Bs(r,i)}}e=e.next}while(e!==n)}))}break;case 1:ta(t),"function"===typeof(A=t.stateNode).componentWillUnmount&&function(e,t){try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(A){Bs(e,A)}}(t,A);break;case 5:ta(t);break;case 4:ca(e,t,A)}}function aa(e){var t=e.alternate;e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.alternate=null,e.firstEffect=null,e.lastEffect=null,e.pendingProps=null,e.memoizedProps=null,e.stateNode=null,null!==t&&aa(t)}function sa(e){return 5===e.tag||3===e.tag||4===e.tag}function ga(e){e:{for(var t=e.return;null!==t;){if(sa(t)){var A=t;break e}t=t.return}throw Error(o(160))}switch(t=A.stateNode,A.tag){case 5:var n=!1;break;case 3:case 4:t=t.containerInfo,n=!0;break;default:throw Error(o(161))}16&A.effectTag&&(Te(t,""),A.effectTag&=-17);e:t:for(A=e;;){for(;null===A.sibling;){if(null===A.return||sa(A.return)){A=null;break e}A=A.return}for(A.sibling.return=A.return,A=A.sibling;5!==A.tag&&6!==A.tag&&18!==A.tag;){if(2&A.effectTag)continue t;if(null===A.child||4===A.tag)continue t;A.child.return=A,A=A.child}if(!(2&A.effectTag)){A=A.stateNode;break e}}n?function e(t,A,n){var r=t.tag,i=5===r||6===r;if(i)t=i?t.stateNode:t.stateNode.instance,A?8===n.nodeType?n.parentNode.insertBefore(t,A):n.insertBefore(t,A):(8===n.nodeType?(A=n.parentNode).insertBefore(t,n):(A=n).appendChild(t),null!==(n=n._reactRootContainer)&&void 0!==n||null!==A.onclick||(A.onclick=sA));else if(4!==r&&null!==(t=t.child))for(e(t,A,n),t=t.sibling;null!==t;)e(t,A,n),t=t.sibling}(e,A,t):function e(t,A,n){var r=t.tag,i=5===r||6===r;if(i)t=i?t.stateNode:t.stateNode.instance,A?n.insertBefore(t,A):n.appendChild(t);else if(4!==r&&null!==(t=t.child))for(e(t,A,n),t=t.sibling;null!==t;)e(t,A,n),t=t.sibling}(e,A,t)}function ca(e,t,A){for(var n,r,i=t,a=!1;;){if(!a){a=i.return;e:for(;;){if(null===a)throw Error(o(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===i.tag||6===i.tag){e:for(var s=e,g=i,c=A,u=g;;)if(oa(s,u,c),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===g)break e;for(;null===u.sibling;){if(null===u.return||u.return===g)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(s=n,g=i.stateNode,8===s.nodeType?s.parentNode.removeChild(g):s.removeChild(g)):n.removeChild(i.stateNode)}else if(4===i.tag){if(null!==i.child){n=i.stateNode.containerInfo,r=!0,i.child.return=i,i=i.child;continue}}else if(oa(e,i,A),null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)return;4===(i=i.return).tag&&(a=!1)}i.sibling.return=i.return,i=i.sibling}}function ua(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:return void na(3,t);case 1:return;case 5:var A=t.stateNode;if(null!=A){var n=t.memoizedProps,r=null!==e?e.memoizedProps:n;e=t.type;var i=t.updateQueue;if(t.updateQueue=null,null!==i){for(A[mA]=n,"input"===e&&"radio"===n.type&&null!=n.name&&me(A,n),iA(e,r),t=iA(e,n),r=0;r<i.length;r+=2){var a=i[r],s=i[r+1];"style"===a?AA(A,s):"dangerouslySetInnerHTML"===a?Le(A,s):"children"===a?Te(A,s):q(A,a,s,t)}switch(e){case"input":be(A,n);break;case"textarea":ke(A,n);break;case"select":t=A._wrapperState.wasMultiple,A._wrapperState.wasMultiple=!!n.multiple,null!=(e=n.value)?Re(A,!!n.multiple,e,!1):t!==!!n.multiple&&(null!=n.defaultValue?Re(A,!!n.multiple,n.defaultValue,!0):Re(A,!!n.multiple,n.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(o(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((t=t.stateNode).hydrate&&(t.hydrate=!1,_t(t.containerInfo)));case 12:return;case 13:if(A=t,null===t.memoizedState?n=!1:(n=!0,A=t.child,Na=Lr()),null!==A)e:for(e=A;;){if(5===e.tag)i=e.stateNode,n?"function"===typeof(i=i.style).setProperty?i.setProperty("display","none","important"):i.display="none":(i=e.stateNode,r=void 0!==(r=e.memoizedProps.style)&&null!==r&&r.hasOwnProperty("display")?r.display:null,i.style.display=tA("display",r));else if(6===e.tag)e.stateNode.nodeValue=n?"":e.memoizedProps;else{if(13===e.tag&&null!==e.memoizedState&&null===e.memoizedState.dehydrated){(i=e.child.sibling).return=e,e=i;continue}if(null!==e.child){e.child.return=e,e=e.child;continue}}if(e===A)break;for(;null===e.sibling;){if(null===e.return||e.return===A)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}return void la(t);case 19:return void la(t);case 17:return}throw Error(o(163))}function la(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var A=e.stateNode;null===A&&(A=e.stateNode=new $o),t.forEach((function(t){var n=Es.bind(null,e,t);A.has(t)||(A.add(t),t.then(n,n))}))}}var Ia="function"===typeof WeakMap?WeakMap:Map;function Ca(e,t,A){(A=ai(A,null)).tag=3,A.payload={element:null};var n=t.value;return A.callback=function(){_a||(_a=!0,Ma=n),ea(e,t)},A}function ha(e,t,A){(A=ai(A,null)).tag=3;var n=e.type.getDerivedStateFromError;if("function"===typeof n){var r=t.value;A.payload=function(){return ea(e,t),n(r)}}var i=e.stateNode;return null!==i&&"function"===typeof i.componentDidCatch&&(A.callback=function(){"function"!==typeof n&&(null===Oa?Oa=new Set([this]):Oa.add(this),ea(e,t));var A=t.stack;this.componentDidCatch(t.value,{componentStack:null!==A?A:""})}),A}var fa,da=Math.ceil,Ba=X.ReactCurrentDispatcher,pa=X.ReactCurrentOwner,Ea=0,Qa=3,ya=4,va=0,ma=null,ba=null,wa=0,Sa=Ea,Fa=null,Ra=1073741823,Da=1073741823,Ga=null,ka=0,xa=!1,Na=0,Ua=null,_a=!1,Ma=null,Oa=null,La=!1,Ta=null,Za=90,Ha=null,Ya=0,Ja=null,ja=0;function Pa(){return 0!==(48&va)?1073741821-(Lr()/10|0):0!==ja?ja:ja=1073741821-(Lr()/10|0)}function Va(e,t,A){if(0===(2&(t=t.mode)))return 1073741823;var n=Tr();if(0===(4&t))return 99===n?1073741823:1073741822;if(0!==(16&va))return wa;if(null!==A)e=Vr(e,0|A.timeoutMs||5e3,250);else switch(n){case 99:e=1073741823;break;case 98:e=Vr(e,150,100);break;case 97:case 96:e=Vr(e,5e3,250);break;case 95:e=2;break;default:throw Error(o(326))}return null!==ma&&e===wa&&--e,e}function Ka(e,t){if(50<Ya)throw Ya=0,Ja=null,Error(o(185));if(null!==(e=Wa(e,t))){var A=Tr();1073741823===t?0!==(8&va)&&0===(48&va)?$a(e):(qa(e),0===va&&jr()):qa(e),0===(4&va)||98!==A&&99!==A||(null===Ha?Ha=new Map([[e,t]]):(void 0===(A=Ha.get(e))||A>t)&&Ha.set(e,t))}}function Wa(e,t){e.expirationTime<t&&(e.expirationTime=t);var A=e.alternate;null!==A&&A.expirationTime<t&&(A.expirationTime=t);var n=e.return,r=null;if(null===n&&3===e.tag)r=e.stateNode;else for(;null!==n;){if(A=n.alternate,n.childExpirationTime<t&&(n.childExpirationTime=t),null!==A&&A.childExpirationTime<t&&(A.childExpirationTime=t),null===n.return&&3===n.tag){r=n.stateNode;break}n=n.return}return null!==r&&(ma===r&&(os(t),Sa===ya&&xs(r,wa)),Ns(r,t)),r}function Xa(e){var t=e.lastExpiredTime;if(0!==t)return t;if(!ks(e,t=e.firstPendingTime))return t;var A=e.lastPingedTime;return 2>=(e=A>(e=e.nextKnownPendingLevel)?A:e)&&t!==e?0:e}function qa(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=Jr($a.bind(null,e));else{var t=Xa(e),A=e.callbackNode;if(0===t)null!==A&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var n=Pa();if(1073741823===t?n=99:1===t||2===t?n=95:n=0>=(n=10*(1073741821-t)-10*(1073741821-n))?99:250>=n?98:5250>=n?97:95,null!==A){var r=e.callbackPriority;if(e.callbackExpirationTime===t&&r>=n)return;A!==kr&&vr(A)}e.callbackExpirationTime=t,e.callbackPriority=n,t=1073741823===t?Jr($a.bind(null,e)):Yr(n,za.bind(null,e),{timeout:10*(1073741821-t)-Lr()}),e.callbackNode=t}}}function za(e,t){if(ja=0,t)return Us(e,t=Pa()),qa(e),null;var A=Xa(e);if(0!==A){if(t=e.callbackNode,0!==(48&va))throw Error(o(327));if(hs(),e===ma&&A===wa||As(e,A),null!==ba){var n=va;va|=16;for(var r=rs();;)try{ss();break}catch(s){ns(e,s)}if($r(),va=n,Ba.current=r,1===Sa)throw t=Fa,As(e,A),xs(e,A),qa(e),t;if(null===ba)switch(r=e.finishedWork=e.current.alternate,e.finishedExpirationTime=A,n=Sa,ma=null,n){case Ea:case 1:throw Error(o(345));case 2:Us(e,2<A?2:A);break;case Qa:if(xs(e,A),A===(n=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=us(r)),1073741823===Ra&&10<(r=Na+500-Lr())){if(xa){var i=e.lastPingedTime;if(0===i||i>=A){e.lastPingedTime=A,As(e,A);break}}if(0!==(i=Xa(e))&&i!==A)break;if(0!==n&&n!==A){e.lastPingedTime=n;break}e.timeoutHandle=BA(ls.bind(null,e),r);break}ls(e);break;case ya:if(xs(e,A),A===(n=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=us(r)),xa&&(0===(r=e.lastPingedTime)||r>=A)){e.lastPingedTime=A,As(e,A);break}if(0!==(r=Xa(e))&&r!==A)break;if(0!==n&&n!==A){e.lastPingedTime=n;break}if(1073741823!==Da?n=10*(1073741821-Da)-Lr():1073741823===Ra?n=0:(n=10*(1073741821-Ra)-5e3,0>(n=(r=Lr())-n)&&(n=0),(A=10*(1073741821-A)-r)<(n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*da(n/1960))-n)&&(n=A)),10<n){e.timeoutHandle=BA(ls.bind(null,e),n);break}ls(e);break;case 5:if(1073741823!==Ra&&null!==Ga){i=Ra;var a=Ga;if(0>=(n=0|a.busyMinDurationMs)?n=0:(r=0|a.busyDelayMs,n=(i=Lr()-(10*(1073741821-i)-(0|a.timeoutMs||5e3)))<=r?0:r+n-i),10<n){xs(e,A),e.timeoutHandle=BA(ls.bind(null,e),n);break}}ls(e);break;default:throw Error(o(329))}if(qa(e),e.callbackNode===t)return za.bind(null,e)}}return null}function $a(e){var t=e.lastExpiredTime;if(t=0!==t?t:1073741823,0!==(48&va))throw Error(o(327));if(hs(),e===ma&&t===wa||As(e,t),null!==ba){var A=va;va|=16;for(var n=rs();;)try{as();break}catch(r){ns(e,r)}if($r(),va=A,Ba.current=n,1===Sa)throw A=Fa,As(e,t),xs(e,t),qa(e),A;if(null!==ba)throw Error(o(261));e.finishedWork=e.current.alternate,e.finishedExpirationTime=t,ma=null,ls(e),qa(e)}return null}function es(e,t){var A=va;va|=1;try{return e(t)}finally{0===(va=A)&&jr()}}function ts(e,t){var A=va;va&=-2,va|=8;try{return e(t)}finally{0===(va=A)&&jr()}}function As(e,t){e.finishedWork=null,e.finishedExpirationTime=0;var A=e.timeoutHandle;if(-1!==A&&(e.timeoutHandle=-1,pA(A)),null!==ba)for(A=ba.return;null!==A;){var n=A;switch(n.tag){case 1:null!==(n=n.type.childContextTypes)&&void 0!==n&&fr();break;case 3:ki(),sr(lr),sr(ur);break;case 5:Ni(n);break;case 4:ki();break;case 13:case 19:sr(Ui);break;case 10:ei(n)}A=A.return}ma=e,ba=ws(e.current,null),wa=t,Sa=Ea,Fa=null,Da=Ra=1073741823,Ga=null,ka=0,xa=!1}function ns(e,t){for(;;){try{if($r(),Oi.current=ho,Ji)for(var A=Zi.memoizedState;null!==A;){var n=A.queue;null!==n&&(n.pending=null),A=A.next}if(Ti=0,Yi=Hi=Zi=null,Ji=!1,null===ba||null===ba.return)return Sa=1,Fa=t,ba=null;e:{var r=e,i=ba.return,o=ba,a=t;if(t=wa,o.effectTag|=2048,o.firstEffect=o.lastEffect=null,null!==a&&"object"===typeof a&&"function"===typeof a.then){var s=a;if(0===(2&o.mode)){var g=o.alternate;g?(o.updateQueue=g.updateQueue,o.memoizedState=g.memoizedState,o.expirationTime=g.expirationTime):(o.updateQueue=null,o.memoizedState=null)}var c=0!==(1&Ui.current),u=i;do{var l;if(l=13===u.tag){var I=u.memoizedState;if(null!==I)l=null!==I.dehydrated;else{var C=u.memoizedProps;l=void 0!==C.fallback&&(!0!==C.unstable_avoidThisFallback||!c)}}if(l){var h=u.updateQueue;if(null===h){var f=new Set;f.add(s),u.updateQueue=f}else h.add(s);if(0===(2&u.mode)){if(u.effectTag|=64,o.effectTag&=-2981,1===o.tag)if(null===o.alternate)o.tag=17;else{var d=ai(1073741823,null);d.tag=2,si(o,d)}o.expirationTime=1073741823;break e}a=void 0,o=t;var B=r.pingCache;if(null===B?(B=r.pingCache=new Ia,a=new Set,B.set(s,a)):void 0===(a=B.get(s))&&(a=new Set,B.set(s,a)),!a.has(o)){a.add(o);var p=ps.bind(null,r,s,o);s.then(p,p)}u.effectTag|=4096,u.expirationTime=t;break e}u=u.return}while(null!==u);a=Error((fe(o.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+de(o))}5!==Sa&&(Sa=2),a=zo(a,o),u=i;do{switch(u.tag){case 3:s=a,u.effectTag|=4096,u.expirationTime=t,gi(u,Ca(u,s,t));break e;case 1:s=a;var E=u.type,Q=u.stateNode;if(0===(64&u.effectTag)&&("function"===typeof E.getDerivedStateFromError||null!==Q&&"function"===typeof Q.componentDidCatch&&(null===Oa||!Oa.has(Q)))){u.effectTag|=4096,u.expirationTime=t,gi(u,ha(u,s,t));break e}}u=u.return}while(null!==u)}ba=cs(ba)}catch(y){t=y;continue}break}}function rs(){var e=Ba.current;return Ba.current=ho,null===e?ho:e}function is(e,t){e<Ra&&2<e&&(Ra=e),null!==t&&e<Da&&2<e&&(Da=e,Ga=t)}function os(e){e>ka&&(ka=e)}function as(){for(;null!==ba;)ba=gs(ba)}function ss(){for(;null!==ba&&!xr();)ba=gs(ba)}function gs(e){var t=fa(e.alternate,e,wa);return e.memoizedProps=e.pendingProps,null===t&&(t=cs(e)),pa.current=null,t}function cs(e){ba=e;do{var t=ba.alternate;if(e=ba.return,0===(2048&ba.effectTag)){if(t=Xo(t,ba,wa),1===wa||1!==ba.childExpirationTime){for(var A=0,n=ba.child;null!==n;){var r=n.expirationTime,i=n.childExpirationTime;r>A&&(A=r),i>A&&(A=i),n=n.sibling}ba.childExpirationTime=A}if(null!==t)return t;null!==e&&0===(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=ba.firstEffect),null!==ba.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=ba.firstEffect),e.lastEffect=ba.lastEffect),1<ba.effectTag&&(null!==e.lastEffect?e.lastEffect.nextEffect=ba:e.firstEffect=ba,e.lastEffect=ba))}else{if(null!==(t=qo(ba)))return t.effectTag&=2047,t;null!==e&&(e.firstEffect=e.lastEffect=null,e.effectTag|=2048)}if(null!==(t=ba.sibling))return t;ba=e}while(null!==ba);return Sa===Ea&&(Sa=5),null}function us(e){var t=e.expirationTime;return t>(e=e.childExpirationTime)?t:e}function ls(e){var t=Tr();return Hr(99,Is.bind(null,e,t)),null}function Is(e,t){do{hs()}while(null!==Ta);if(0!==(48&va))throw Error(o(327));var A=e.finishedWork,n=e.finishedExpirationTime;if(null===A)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,A===e.current)throw Error(o(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var r=us(A);if(e.firstPendingTime=r,n<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:n<=e.firstSuspendedTime&&(e.firstSuspendedTime=n-1),n<=e.lastPingedTime&&(e.lastPingedTime=0),n<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===ma&&(ba=ma=null,wa=0),1<A.effectTag?null!==A.lastEffect?(A.lastEffect.nextEffect=A,r=A.firstEffect):r=A:r=A.firstEffect,null!==r){var i=va;va|=32,pa.current=null,CA=Pt;var a=lA();if(IA(a)){if("selectionStart"in a)var s={start:a.selectionStart,end:a.selectionEnd};else e:{var g=(s=(s=a.ownerDocument)&&s.defaultView||window).getSelection&&s.getSelection();if(g&&0!==g.rangeCount){s=g.anchorNode;var c=g.anchorOffset,u=g.focusNode;g=g.focusOffset;try{s.nodeType,u.nodeType}catch(w){s=null;break e}var l=0,I=-1,C=-1,h=0,f=0,d=a,B=null;t:for(;;){for(var p;d!==s||0!==c&&3!==d.nodeType||(I=l+c),d!==u||0!==g&&3!==d.nodeType||(C=l+g),3===d.nodeType&&(l+=d.nodeValue.length),null!==(p=d.firstChild);)B=d,d=p;for(;;){if(d===a)break t;if(B===s&&++h===c&&(I=l),B===u&&++f===g&&(C=l),null!==(p=d.nextSibling))break;B=(d=B).parentNode}d=p}s=-1===I||-1===C?null:{start:I,end:C}}else s=null}s=s||{start:0,end:0}}else s=null;hA={activeElementDetached:null,focusedElem:a,selectionRange:s},Pt=!1,Ua=r;do{try{Cs()}catch(w){if(null===Ua)throw Error(o(330));Bs(Ua,w),Ua=Ua.nextEffect}}while(null!==Ua);Ua=r;do{try{for(a=e,s=t;null!==Ua;){var E=Ua.effectTag;if(16&E&&Te(Ua.stateNode,""),128&E){var Q=Ua.alternate;if(null!==Q){var y=Q.ref;null!==y&&("function"===typeof y?y(null):y.current=null)}}switch(1038&E){case 2:ga(Ua),Ua.effectTag&=-3;break;case 6:ga(Ua),Ua.effectTag&=-3,ua(Ua.alternate,Ua);break;case 1024:Ua.effectTag&=-1025;break;case 1028:Ua.effectTag&=-1025,ua(Ua.alternate,Ua);break;case 4:ua(Ua.alternate,Ua);break;case 8:ca(a,c=Ua,s),aa(c)}Ua=Ua.nextEffect}}catch(w){if(null===Ua)throw Error(o(330));Bs(Ua,w),Ua=Ua.nextEffect}}while(null!==Ua);if(y=hA,Q=lA(),E=y.focusedElem,s=y.selectionRange,Q!==E&&E&&E.ownerDocument&&function e(t,A){return!(!t||!A)&&(t===A||(!t||3!==t.nodeType)&&(A&&3===A.nodeType?e(t,A.parentNode):"contains"in t?t.contains(A):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(A))))}(E.ownerDocument.documentElement,E)){null!==s&&IA(E)&&(Q=s.start,void 0===(y=s.end)&&(y=Q),"selectionStart"in E?(E.selectionStart=Q,E.selectionEnd=Math.min(y,E.value.length)):(y=(Q=E.ownerDocument||document)&&Q.defaultView||window).getSelection&&(y=y.getSelection(),c=E.textContent.length,a=Math.min(s.start,c),s=void 0===s.end?a:Math.min(s.end,c),!y.extend&&a>s&&(c=s,s=a,a=c),c=uA(E,a),u=uA(E,s),c&&u&&(1!==y.rangeCount||y.anchorNode!==c.node||y.anchorOffset!==c.offset||y.focusNode!==u.node||y.focusOffset!==u.offset)&&((Q=Q.createRange()).setStart(c.node,c.offset),y.removeAllRanges(),a>s?(y.addRange(Q),y.extend(u.node,u.offset)):(Q.setEnd(u.node,u.offset),y.addRange(Q))))),Q=[];for(y=E;y=y.parentNode;)1===y.nodeType&&Q.push({element:y,left:y.scrollLeft,top:y.scrollTop});for("function"===typeof E.focus&&E.focus(),E=0;E<Q.length;E++)(y=Q[E]).element.scrollLeft=y.left,y.element.scrollTop=y.top}Pt=!!CA,hA=CA=null,e.current=A,Ua=r;do{try{for(E=e;null!==Ua;){var v=Ua.effectTag;if(36&v&&ia(E,Ua.alternate,Ua),128&v){Q=void 0;var m=Ua.ref;if(null!==m){var b=Ua.stateNode;switch(Ua.tag){case 5:Q=b;break;default:Q=b}"function"===typeof m?m(Q):m.current=Q}}Ua=Ua.nextEffect}}catch(w){if(null===Ua)throw Error(o(330));Bs(Ua,w),Ua=Ua.nextEffect}}while(null!==Ua);Ua=null,Nr(),va=i}else e.current=A;if(La)La=!1,Ta=e,Za=t;else for(Ua=r;null!==Ua;)t=Ua.nextEffect,Ua.nextEffect=null,Ua=t;if(0===(t=e.firstPendingTime)&&(Oa=null),1073741823===t?e===Ja?Ya++:(Ya=0,Ja=e):Ya=0,"function"===typeof Qs&&Qs(A.stateNode,n),qa(e),_a)throw _a=!1,e=Ma,Ma=null,e;return 0!==(8&va)||jr(),null}function Cs(){for(;null!==Ua;){var e=Ua.effectTag;0!==(256&e)&&Aa(Ua.alternate,Ua),0===(512&e)||La||(La=!0,Yr(97,(function(){return hs(),null}))),Ua=Ua.nextEffect}}function hs(){if(90!==Za){var e=97<Za?97:Za;return Za=90,Hr(e,fs)}}function fs(){if(null===Ta)return!1;var e=Ta;if(Ta=null,0!==(48&va))throw Error(o(331));var t=va;for(va|=32,e=e.current.firstEffect;null!==e;){try{var A=e;if(0!==(512&A.effectTag))switch(A.tag){case 0:case 11:case 15:case 22:na(5,A),ra(5,A)}}catch(n){if(null===e)throw Error(o(330));Bs(e,n)}A=e.nextEffect,e.nextEffect=null,e=A}return va=t,jr(),!0}function ds(e,t,A){si(e,t=Ca(e,t=zo(A,t),1073741823)),null!==(e=Wa(e,1073741823))&&qa(e)}function Bs(e,t){if(3===e.tag)ds(e,e,t);else for(var A=e.return;null!==A;){if(3===A.tag){ds(A,e,t);break}if(1===A.tag){var n=A.stateNode;if("function"===typeof A.type.getDerivedStateFromError||"function"===typeof n.componentDidCatch&&(null===Oa||!Oa.has(n))){si(A,e=ha(A,e=zo(t,e),1073741823)),null!==(A=Wa(A,1073741823))&&qa(A);break}}A=A.return}}function ps(e,t,A){var n=e.pingCache;null!==n&&n.delete(t),ma===e&&wa===A?Sa===ya||Sa===Qa&&1073741823===Ra&&Lr()-Na<500?As(e,wa):xa=!0:ks(e,A)&&(0!==(t=e.lastPingedTime)&&t<A||(e.lastPingedTime=A,qa(e)))}function Es(e,t){var A=e.stateNode;null!==A&&A.delete(t),0===(t=0)&&(t=Va(t=Pa(),e,null)),null!==(e=Wa(e,t))&&qa(e)}fa=function(e,t,A){var n=t.expirationTime;if(null!==e){var r=t.pendingProps;if(e.memoizedProps!==r||lr.current)Do=!0;else{if(n<A){switch(Do=!1,t.tag){case 3:Lo(t),Fo();break;case 5:if(xi(t),4&t.mode&&1!==A&&r.hidden)return t.expirationTime=t.childExpirationTime=1,null;break;case 1:hr(t.type)&&pr(t);break;case 4:Gi(t,t.stateNode.containerInfo);break;case 10:n=t.memoizedProps.value,r=t.type._context,gr(Wr,r._currentValue),r._currentValue=n;break;case 13:if(null!==t.memoizedState)return 0!==(n=t.child.childExpirationTime)&&n>=A?Jo(e,t,A):(gr(Ui,1&Ui.current),null!==(t=Ko(e,t,A))?t.sibling:null);gr(Ui,1&Ui.current);break;case 19:if(n=t.childExpirationTime>=A,0!==(64&e.effectTag)){if(n)return Vo(e,t,A);t.effectTag|=64}if(null!==(r=t.memoizedState)&&(r.rendering=null,r.tail=null),gr(Ui,Ui.current),!n)return null}return Ko(e,t,A)}Do=!1}}else Do=!1;switch(t.expirationTime=0,t.tag){case 2:if(n=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,r=Cr(t,ur.current),Ai(t,A),r=Vi(null,t,n,e,r,A),t.effectTag|=1,"object"===typeof r&&null!==r&&"function"===typeof r.render&&void 0===r.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,hr(n)){var i=!0;pr(t)}else i=!1;t.memoizedState=null!==r.state&&void 0!==r.state?r.state:null,ii(t);var a=n.getDerivedStateFromProps;"function"===typeof a&&Ci(t,n,a,e),r.updater=hi,t.stateNode=r,r._reactInternalFiber=t,pi(t,n,e,A),t=Oo(null,t,n,!0,i,A)}else t.tag=0,Go(null,t,r,A),t=t.child;return t;case 16:e:{if(r=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,function(e){if(-1===e._status){e._status=0;var t=e._ctor;t=t(),e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}}(r),1!==r._status)throw r._result;switch(r=r._result,t.type=r,i=t.tag=function(e){if("function"===typeof e)return bs(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===se)return 11;if(e===ue)return 14}return 2}(r),e=Kr(r,e),i){case 0:t=_o(null,t,r,e,A);break e;case 1:t=Mo(null,t,r,e,A);break e;case 11:t=ko(null,t,r,e,A);break e;case 14:t=xo(null,t,r,Kr(r.type,e),n,A);break e}throw Error(o(306,r,""))}return t;case 0:return n=t.type,r=t.pendingProps,_o(e,t,n,r=t.elementType===n?r:Kr(n,r),A);case 1:return n=t.type,r=t.pendingProps,Mo(e,t,n,r=t.elementType===n?r:Kr(n,r),A);case 3:if(Lo(t),n=t.updateQueue,null===e||null===n)throw Error(o(282));if(n=t.pendingProps,r=null!==(r=t.memoizedState)?r.element:null,oi(e,t),ci(t,n,null,A),(n=t.memoizedState.element)===r)Fo(),t=Ko(e,t,A);else{if((r=t.stateNode.hydrate)&&(Qo=EA(t.stateNode.containerInfo.firstChild),Eo=t,r=yo=!0),r)for(A=bi(t,null,n,A),t.child=A;A;)A.effectTag=-3&A.effectTag|1024,A=A.sibling;else Go(e,t,n,A),Fo();t=t.child}return t;case 5:return xi(t),null===e&&bo(t),n=t.type,r=t.pendingProps,i=null!==e?e.memoizedProps:null,a=r.children,dA(n,r)?a=null:null!==i&&dA(n,i)&&(t.effectTag|=16),Uo(e,t),4&t.mode&&1!==A&&r.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(Go(e,t,a,A),t=t.child),t;case 6:return null===e&&bo(t),null;case 13:return Jo(e,t,A);case 4:return Gi(t,t.stateNode.containerInfo),n=t.pendingProps,null===e?t.child=mi(t,null,n,A):Go(e,t,n,A),t.child;case 11:return n=t.type,r=t.pendingProps,ko(e,t,n,r=t.elementType===n?r:Kr(n,r),A);case 7:return Go(e,t,t.pendingProps,A),t.child;case 8:case 12:return Go(e,t,t.pendingProps.children,A),t.child;case 10:e:{n=t.type._context,r=t.pendingProps,a=t.memoizedProps,i=r.value;var s=t.type._context;if(gr(Wr,s._currentValue),s._currentValue=i,null!==a)if(s=a.value,0===(i=Mn(s,i)?0:0|("function"===typeof n._calculateChangedBits?n._calculateChangedBits(s,i):1073741823))){if(a.children===r.children&&!lr.current){t=Ko(e,t,A);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var g=s.dependencies;if(null!==g){a=s.child;for(var c=g.firstContext;null!==c;){if(c.context===n&&0!==(c.observedBits&i)){1===s.tag&&((c=ai(A,null)).tag=2,si(s,c)),s.expirationTime<A&&(s.expirationTime=A),null!==(c=s.alternate)&&c.expirationTime<A&&(c.expirationTime=A),ti(s.return,A),g.expirationTime<A&&(g.expirationTime=A);break}c=c.next}}else a=10===s.tag&&s.type===t.type?null:s.child;if(null!==a)a.return=s;else for(a=s;null!==a;){if(a===t){a=null;break}if(null!==(s=a.sibling)){s.return=a.return,a=s;break}a=a.return}s=a}Go(e,t,r.children,A),t=t.child}return t;case 9:return r=t.type,n=(i=t.pendingProps).children,Ai(t,A),n=n(r=ni(r,i.unstable_observedBits)),t.effectTag|=1,Go(e,t,n,A),t.child;case 14:return i=Kr(r=t.type,t.pendingProps),xo(e,t,r,i=Kr(r.type,i),n,A);case 15:return No(e,t,t.type,t.pendingProps,n,A);case 17:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:Kr(n,r),null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),t.tag=1,hr(n)?(e=!0,pr(t)):e=!1,Ai(t,A),di(t,n,r),pi(t,n,r,A),Oo(null,t,n,!0,e,A);case 19:return Vo(e,t,A)}throw Error(o(156,t.tag))};var Qs=null,ys=null;function vs(e,t,A,n){this.tag=e,this.key=A,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function ms(e,t,A,n){return new vs(e,t,A,n)}function bs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function ws(e,t){var A=e.alternate;return null===A?((A=ms(e.tag,t,e.key,e.mode)).elementType=e.elementType,A.type=e.type,A.stateNode=e.stateNode,A.alternate=e,e.alternate=A):(A.pendingProps=t,A.effectTag=0,A.nextEffect=null,A.firstEffect=null,A.lastEffect=null),A.childExpirationTime=e.childExpirationTime,A.expirationTime=e.expirationTime,A.child=e.child,A.memoizedProps=e.memoizedProps,A.memoizedState=e.memoizedState,A.updateQueue=e.updateQueue,t=e.dependencies,A.dependencies=null===t?null:{expirationTime:t.expirationTime,firstContext:t.firstContext,responders:t.responders},A.sibling=e.sibling,A.index=e.index,A.ref=e.ref,A}function Ss(e,t,A,n,r,i){var a=2;if(n=e,"function"===typeof e)bs(e)&&(a=1);else if("string"===typeof e)a=5;else e:switch(e){case Ae:return Fs(A.children,r,i,t);case ae:a=8,r|=7;break;case ne:a=8,r|=1;break;case re:return(e=ms(12,A,t,8|r)).elementType=re,e.type=re,e.expirationTime=i,e;case ge:return(e=ms(13,A,t,r)).type=ge,e.elementType=ge,e.expirationTime=i,e;case ce:return(e=ms(19,A,t,r)).elementType=ce,e.expirationTime=i,e;default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case ie:a=10;break e;case oe:a=9;break e;case se:a=11;break e;case ue:a=14;break e;case le:a=16,n=null;break e;case Ie:a=22;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=ms(a,A,t,r)).elementType=e,t.type=n,t.expirationTime=i,t}function Fs(e,t,A,n){return(e=ms(7,e,n,t)).expirationTime=A,e}function Rs(e,t,A){return(e=ms(6,e,null,t)).expirationTime=A,e}function Ds(e,t,A){return(t=ms(4,null!==e.children?e.children:[],e.key,t)).expirationTime=A,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Gs(e,t,A){this.tag=t,this.current=null,this.containerInfo=e,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=A,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function ks(e,t){var A=e.firstSuspendedTime;return e=e.lastSuspendedTime,0!==A&&A>=t&&e<=t}function xs(e,t){var A=e.firstSuspendedTime,n=e.lastSuspendedTime;A<t&&(e.firstSuspendedTime=t),(n>t||0===A)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function Ns(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var A=e.firstSuspendedTime;0!==A&&(t>=A?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function Us(e,t){var A=e.lastExpiredTime;(0===A||A>t)&&(e.lastExpiredTime=t)}function _s(e,t,A,n){var r=t.current,i=Pa(),a=li.suspense;i=Va(i,r,a);e:if(A){t:{if($e(A=A._reactInternalFiber)!==A||1!==A.tag)throw Error(o(170));var s=A;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(hr(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(o(171))}if(1===A.tag){var g=A.type;if(hr(g)){A=Br(A,g,s);break e}}A=s}else A=cr;return null===t.context?t.context=A:t.pendingContext=A,(t=ai(i,a)).payload={element:e},null!==(n=void 0===n?null:n)&&(t.callback=n),si(r,t),Ka(r,i),i}function Ms(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function Os(e,t){null!==(e=e.memoizedState)&&null!==e.dehydrated&&e.retryTime<t&&(e.retryTime=t)}function Ls(e,t){Os(e,t),(e=e.alternate)&&Os(e,t)}function Ts(e,t,A){var n=new Gs(e,t,A=null!=A&&!0===A.hydrate),r=ms(3,null,null,2===t?7:1===t?3:0);n.current=r,r.stateNode=n,ii(r),e[bA]=n.current,A&&0!==t&&function(e,t){var A=ze(t);wt.forEach((function(e){Ct(e,t,A)})),St.forEach((function(e){Ct(e,t,A)}))}(0,9===e.nodeType?e:e.ownerDocument),this._internalRoot=n}function Zs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Hs(e,t,A,n,r){var i=A._reactRootContainer;if(i){var o=i._internalRoot;if("function"===typeof r){var a=r;r=function(){var e=Ms(o);a.call(e)}}_s(t,o,e,r)}else{if(i=A._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var A;A=e.lastChild;)e.removeChild(A);return new Ts(e,0,t?{hydrate:!0}:void 0)}(A,n),o=i._internalRoot,"function"===typeof r){var s=r;r=function(){var e=Ms(o);s.call(e)}}ts((function(){_s(t,o,e,r)}))}return Ms(o)}function Ys(e,t,A){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:te,key:null==n?null:""+n,children:e,containerInfo:t,implementation:A}}function Js(e,t){var A=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Zs(t))throw Error(o(200));return Ys(e,t,null,A)}Ts.prototype.render=function(e){_s(e,this._internalRoot,null,null)},Ts.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;_s(null,e,null,(function(){t[bA]=null}))},ht=function(e){if(13===e.tag){var t=Vr(Pa(),150,100);Ka(e,t),Ls(e,t)}},ft=function(e){13===e.tag&&(Ka(e,3),Ls(e,3))},dt=function(e){if(13===e.tag){var t=Pa();Ka(e,t=Va(t,e,null)),Ls(e,t)}},F=function(e,t,A){switch(t){case"input":if(be(e,A),t=A.name,"radio"===A.type&&null!=t){for(A=e;A.parentNode;)A=A.parentNode;for(A=A.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<A.length;t++){var n=A[t];if(n!==e&&n.form===e.form){var r=RA(n);if(!r)throw Error(o(90));Qe(n),be(n,r)}}}break;case"textarea":ke(e,A);break;case"select":null!=(t=A.value)&&Re(e,!!A.multiple,t,!1)}},N=es,U=function(e,t,A,n,r){var i=va;va|=4;try{return Hr(98,e.bind(null,t,A,n,r))}finally{0===(va=i)&&jr()}},_=function(){0===(49&va)&&(function(){if(null!==Ha){var e=Ha;Ha=null,e.forEach((function(e,t){Us(t,e),qa(t)})),jr()}}(),hs())},M=function(e,t){var A=va;va|=2;try{return e(t)}finally{0===(va=A)&&jr()}};var js={Events:[SA,FA,RA,w,v,_A,function(e){rt(e,UA)},k,x,qt,at,hs,{current:!1}]};!function(e){var t=e.findFiberByHostInstance;(function(e){if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var A=t.inject(e);Qs=function(e){try{t.onCommitFiberRoot(A,e,void 0,64===(64&e.current.effectTag))}catch(n){}},ys=function(e){try{t.onCommitFiberUnmount(A,e)}catch(n){}}}catch(n){}})(r({},e,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:X.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=At(e))?null:e.stateNode},findFiberByHostInstance:function(e){return t?t(e):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))}({findFiberByHostInstance:wA,bundleType:0,version:"16.14.0",rendererPackageName:"react-dom"}),t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=js,t.createPortal=Js,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternalFiber;if(void 0===t){if("function"===typeof e.render)throw Error(o(188));throw Error(o(268,Object.keys(e)))}return e=null===(e=At(t))?null:e.stateNode},t.flushSync=function(e,t){if(0!==(48&va))throw Error(o(187));var A=va;va|=1;try{return Hr(99,e.bind(null,t))}finally{va=A,jr()}},t.hydrate=function(e,t,A){if(!Zs(t))throw Error(o(200));return Hs(null,e,t,!0,A)},t.render=function(e,t,A){if(!Zs(t))throw Error(o(200));return Hs(null,e,t,!1,A)},t.unmountComponentAtNode=function(e){if(!Zs(e))throw Error(o(40));return!!e._reactRootContainer&&(ts((function(){Hs(null,null,e,!1,(function(){e._reactRootContainer=null,e[bA]=null}))})),!0)},t.unstable_batchedUpdates=es,t.unstable_createPortal=function(e,t){return Js(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,A,n){if(!Zs(A))throw Error(o(200));if(null==e||void 0===e._reactInternalFiber)throw Error(o(38));return Hs(e,t,A,!1,n)},t.version="16.14.0"},function(e,t,A){"use strict";var n=A(443),r="function"===typeof Symbol&&Symbol.for,i=r?Symbol.for("react.element"):60103,o=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,s=r?Symbol.for("react.strict_mode"):60108,g=r?Symbol.for("react.profiler"):60114,c=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,l=r?Symbol.for("react.forward_ref"):60112,I=r?Symbol.for("react.suspense"):60113,C=r?Symbol.for("react.memo"):60115,h=r?Symbol.for("react.lazy"):60116,f="function"===typeof Symbol&&Symbol.iterator;function d(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,A=1;A<arguments.length;A++)t+="&args[]="+encodeURIComponent(arguments[A]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},p={};function E(e,t,A){this.props=e,this.context=t,this.refs=p,this.updater=A||B}function Q(){}function y(e,t,A){this.props=e,this.context=t,this.refs=p,this.updater=A||B}E.prototype.isReactComponent={},E.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error(d(85));this.updater.enqueueSetState(this,e,t,"setState")},E.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},Q.prototype=E.prototype;var v=y.prototype=new Q;v.constructor=y,n(v,E.prototype),v.isPureReactComponent=!0;var m={current:null},b=Object.prototype.hasOwnProperty,w={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,A){var n,r={},o=null,a=null;if(null!=t)for(n in void 0!==t.ref&&(a=t.ref),void 0!==t.key&&(o=""+t.key),t)b.call(t,n)&&!w.hasOwnProperty(n)&&(r[n]=t[n]);var s=arguments.length-2;if(1===s)r.children=A;else if(1<s){for(var g=Array(s),c=0;c<s;c++)g[c]=arguments[c+2];r.children=g}if(e&&e.defaultProps)for(n in s=e.defaultProps)void 0===r[n]&&(r[n]=s[n]);return{$$typeof:i,type:e,key:o,ref:a,props:r,_owner:m.current}}function F(e){return"object"===typeof e&&null!==e&&e.$$typeof===i}var R=/\/+/g,D=[];function G(e,t,A,n){if(D.length){var r=D.pop();return r.result=e,r.keyPrefix=t,r.func=A,r.context=n,r.count=0,r}return{result:e,keyPrefix:t,func:A,context:n,count:0}}function k(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>D.length&&D.push(e)}function x(e,t,A){return null==e?0:function e(t,A,n,r){var a=typeof t;"undefined"!==a&&"boolean"!==a||(t=null);var s=!1;if(null===t)s=!0;else switch(a){case"string":case"number":s=!0;break;case"object":switch(t.$$typeof){case i:case o:s=!0}}if(s)return n(r,t,""===A?"."+N(t,0):A),1;if(s=0,A=""===A?".":A+":",Array.isArray(t))for(var g=0;g<t.length;g++){var c=A+N(a=t[g],g);s+=e(a,c,n,r)}else if(null===t||"object"!==typeof t?c=null:c="function"===typeof(c=f&&t[f]||t["@@iterator"])?c:null,"function"===typeof c)for(t=c.call(t),g=0;!(a=t.next()).done;)s+=e(a=a.value,c=A+N(a,g++),n,r);else if("object"===a)throw n=""+t,Error(d(31,"[object Object]"===n?"object with keys {"+Object.keys(t).join(", ")+"}":n,""));return s}(e,"",t,A)}function N(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function U(e,t){e.func.call(e.context,t,e.count++)}function _(e,t,A){var n=e.result,r=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?M(e,n,A,(function(e){return e})):null!=e&&(F(e)&&(e=function(e,t){return{$$typeof:i,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,r+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(R,"$&/")+"/")+A)),n.push(e))}function M(e,t,A,n,r){var i="";null!=A&&(i=(""+A).replace(R,"$&/")+"/"),x(e,_,t=G(t,i,n,r)),k(t)}var O={current:null};function L(){var e=O.current;if(null===e)throw Error(d(321));return e}var T={ReactCurrentDispatcher:O,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:m,IsSomeRendererActing:{current:!1},assign:n};t.Children={map:function(e,t,A){if(null==e)return e;var n=[];return M(e,n,null,t,A),n},forEach:function(e,t,A){if(null==e)return e;x(e,U,t=G(null,null,t,A)),k(t)},count:function(e){return x(e,(function(){return null}),null)},toArray:function(e){var t=[];return M(e,t,null,(function(e){return e})),t},only:function(e){if(!F(e))throw Error(d(143));return e}},t.Component=E,t.Fragment=a,t.Profiler=g,t.PureComponent=y,t.StrictMode=s,t.Suspense=I,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T,t.cloneElement=function(e,t,A){if(null===e||void 0===e)throw Error(d(267,e));var r=n({},e.props),o=e.key,a=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,s=m.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var g=e.type.defaultProps;for(c in t)b.call(t,c)&&!w.hasOwnProperty(c)&&(r[c]=void 0===t[c]&&void 0!==g?g[c]:t[c])}var c=arguments.length-2;if(1===c)r.children=A;else if(1<c){g=Array(c);for(var u=0;u<c;u++)g[u]=arguments[u+2];r.children=g}return{$$typeof:i,type:e.type,key:o,ref:a,props:r,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:u,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:c,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:l,render:e}},t.isValidElement=F,t.lazy=function(e){return{$$typeof:h,_ctor:e,_status:-1,_result:null}},t.memo=function(e,t){return{$$typeof:C,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return L().useCallback(e,t)},t.useContext=function(e,t){return L().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return L().useEffect(e,t)},t.useImperativeHandle=function(e,t,A){return L().useImperativeHandle(e,t,A)},t.useLayoutEffect=function(e,t){return L().useLayoutEffect(e,t)},t.useMemo=function(e,t){return L().useMemo(e,t)},t.useReducer=function(e,t,A){return L().useReducer(e,t,A)},t.useRef=function(e){return L().useRef(e)},t.useState=function(e){return L().useState(e)},t.version="16.14.0"},function(e,t,A){"use strict";e.exports=A(752)},function(e,t,A){"use strict";var n,r,i,o,a;if("undefined"===typeof window||"function"!==typeof MessageChannel){var s=null,g=null,c=function e(){if(null!==s)try{var A=t.unstable_now();s(!0,A),s=null}catch(n){throw setTimeout(e,0),n}},u=Date.now();t.unstable_now=function(){return Date.now()-u},n=function(e){null!==s?setTimeout(n,0,e):(s=e,setTimeout(c,0))},r=function(e,t){g=setTimeout(e,t)},i=function(){clearTimeout(g)},o=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var l=window.performance,I=window.Date,C=window.setTimeout,h=window.clearTimeout;if("undefined"!==typeof console){var f=window.cancelAnimationFrame;"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!==typeof f&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"===typeof l&&"function"===typeof l.now)t.unstable_now=function(){return l.now()};else{var d=I.now();t.unstable_now=function(){return I.now()-d}}var B=!1,p=null,E=-1,Q=5,y=0;o=function(){return t.unstable_now()>=y},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):Q=0<e?Math.floor(1e3/e):5};var v=new MessageChannel,m=v.port2;v.port1.onmessage=function(){if(null!==p){var e=t.unstable_now();y=e+Q;try{p(!0,e)?m.postMessage(null):(B=!1,p=null)}catch(A){throw m.postMessage(null),A}}else B=!1},n=function(e){p=e,B||(B=!0,m.postMessage(null))},r=function(e,A){E=C((function(){e(t.unstable_now())}),A)},i=function(){h(E),E=-1}}function b(e,t){var A=e.length;e.push(t);e:for(;;){var n=A-1>>>1,r=e[n];if(!(void 0!==r&&0<F(r,t)))break e;e[n]=t,e[A]=r,A=n}}function w(e){return void 0===(e=e[0])?null:e}function S(e){var t=e[0];if(void 0!==t){var A=e.pop();if(A!==t){e[0]=A;e:for(var n=0,r=e.length;n<r;){var i=2*(n+1)-1,o=e[i],a=i+1,s=e[a];if(void 0!==o&&0>F(o,A))void 0!==s&&0>F(s,o)?(e[n]=s,e[a]=A,n=a):(e[n]=o,e[i]=A,n=i);else{if(!(void 0!==s&&0>F(s,A)))break e;e[n]=s,e[a]=A,n=a}}}return t}return null}function F(e,t){var A=e.sortIndex-t.sortIndex;return 0!==A?A:e.id-t.id}var R=[],D=[],G=1,k=null,x=3,N=!1,U=!1,_=!1;function M(e){for(var t=w(D);null!==t;){if(null===t.callback)S(D);else{if(!(t.startTime<=e))break;S(D),t.sortIndex=t.expirationTime,b(R,t)}t=w(D)}}function O(e){if(_=!1,M(e),!U)if(null!==w(R))U=!0,n(L);else{var t=w(D);null!==t&&r(O,t.startTime-e)}}function L(e,A){U=!1,_&&(_=!1,i()),N=!0;var n=x;try{for(M(A),k=w(R);null!==k&&(!(k.expirationTime>A)||e&&!o());){var a=k.callback;if(null!==a){k.callback=null,x=k.priorityLevel;var s=a(k.expirationTime<=A);A=t.unstable_now(),"function"===typeof s?k.callback=s:k===w(R)&&S(R),M(A)}else S(R);k=w(R)}if(null!==k)var g=!0;else{var c=w(D);null!==c&&r(O,c.startTime-A),g=!1}return g}finally{k=null,x=n,N=!1}}function T(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var Z=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){U||N||(U=!0,n(L))},t.unstable_getCurrentPriorityLevel=function(){return x},t.unstable_getFirstCallbackNode=function(){return w(R)},t.unstable_next=function(e){switch(x){case 1:case 2:case 3:var t=3;break;default:t=x}var A=x;x=t;try{return e()}finally{x=A}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=Z,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var A=x;x=e;try{return t()}finally{x=A}},t.unstable_scheduleCallback=function(e,A,o){var a=t.unstable_now();if("object"===typeof o&&null!==o){var s=o.delay;s="number"===typeof s&&0<s?a+s:a,o="number"===typeof o.timeout?o.timeout:T(e)}else o=T(e),s=a;return e={id:G++,callback:A,priorityLevel:e,startTime:s,expirationTime:o=s+o,sortIndex:-1},s>a?(e.sortIndex=s,b(D,e),null===w(R)&&e===w(D)&&(_?i():_=!0,r(O,s-a))):(e.sortIndex=o,b(R,e),U||N||(U=!0,n(L))),e},t.unstable_shouldYield=function(){var e=t.unstable_now();M(e);var A=w(R);return A!==k&&null!==k&&null!==A&&null!==A.callback&&A.startTime<=e&&A.expirationTime<k.expirationTime||o()},t.unstable_wrapCallback=function(e){var t=x;return function(){var A=x;x=t;try{return e.apply(this,arguments)}finally{x=A}}}},function(e,t,A){var n=A(343),r=A(545),i=A(785),o=A(787),a=A(351),s=A(111),g=A(349),c=A(454),u="[object Object]",l=Object.prototype.hasOwnProperty;e.exports=function(e,t,A,I,C,h){var f=s(e),d=s(t),B=f?"[object Array]":a(e),p=d?"[object Array]":a(t),E=(B="[object Arguments]"==B?u:B)==u,Q=(p="[object Arguments]"==p?u:p)==u,y=B==p;if(y&&g(e)){if(!g(t))return!1;f=!0,E=!1}if(y&&!E)return h||(h=new n),f||c(e)?r(e,t,A,I,C,h):i(e,t,B,A,I,C,h);if(!(1&A)){var v=E&&l.call(e,"__wrapped__"),m=Q&&l.call(t,"__wrapped__");if(v||m){var b=v?e.value():e,w=m?t.value():t;return h||(h=new n),C(b,w,A,I,h)}}return!!y&&(h||(h=new n),o(e,t,A,I,C,h))}},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,A){var n=A(345),r=Array.prototype.splice;e.exports=function(e){var t=this.__data__,A=n(t,e);return!(A<0)&&(A==t.length-1?t.pop():r.call(t,A,1),--this.size,!0)}},function(e,t,A){var n=A(345);e.exports=function(e){var t=this.__data__,A=n(t,e);return A<0?void 0:t[A][1]}},function(e,t,A){var n=A(345);e.exports=function(e){return n(this.__data__,e)>-1}},function(e,t,A){var n=A(345);e.exports=function(e,t){var A=this.__data__,r=n(A,e);return r<0?(++this.size,A.push([e,t])):A[r][1]=t,this}},function(e,t,A){var n=A(344);e.exports=function(){this.__data__=new n,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,A=t.delete(e);return this.size=t.size,A}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,A){var n=A(344),r=A(445),i=A(447);e.exports=function(e,t){var A=this.__data__;if(A instanceof n){var o=A.__data__;if(!r||o.length<199)return o.push([e,t]),this.size=++A.size,this;A=this.__data__=new i(o)}return A.set(e,t),this.size=A.size,this}},function(e,t,A){var n=A(446),r=A(767),i=A(127),o=A(544),a=/^\[object .+?Constructor\]$/,s=Function.prototype,g=Object.prototype,c=s.toString,u=g.hasOwnProperty,l=RegExp("^"+c.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||r(e))&&(n(e)?l:a).test(o(e))}},function(e,t,A){var n=A(247),r=Object.prototype,i=r.hasOwnProperty,o=r.toString,a=n?n.toStringTag:void 0;e.exports=function(e){var t=i.call(e,a),A=e[a];try{e[a]=void 0;var n=!0}catch(s){}var r=o.call(e);return n&&(t?e[a]=A:delete e[a]),r}},function(e,t){var A=Object.prototype.toString;e.exports=function(e){return A.call(e)}},function(e,t,A){var n=A(768),r=function(){var e=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!r&&r in e}},function(e,t,A){var n=A(140)["__core-js_shared__"];e.exports=n},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,A){var n=A(771),r=A(344),i=A(445);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(i||r),string:new n}}},function(e,t,A){var n=A(772),r=A(773),i=A(774),o=A(775),a=A(776);function s(e){var t=-1,A=null==e?0:e.length;for(this.clear();++t<A;){var n=e[t];this.set(n[0],n[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=o,s.prototype.set=a,e.exports=s},function(e,t,A){var n=A(346);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},function(e,t){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,A){var n=A(346),r=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var A=t[e];return"__lodash_hash_undefined__"===A?void 0:A}return r.call(t,e)?t[e]:void 0}},function(e,t,A){var n=A(346),r=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?void 0!==t[e]:r.call(t,e)}},function(e,t,A){var n=A(346);e.exports=function(e,t){var A=this.__data__;return this.size+=this.has(e)?0:1,A[e]=n&&void 0===t?"__lodash_hash_undefined__":t,this}},function(e,t,A){var n=A(347);e.exports=function(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}},function(e,t){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},function(e,t,A){var n=A(347);e.exports=function(e){return n(this,e).get(e)}},function(e,t,A){var n=A(347);e.exports=function(e){return n(this,e).has(e)}},function(e,t,A){var n=A(347);e.exports=function(e,t){var A=n(this,e),r=A.size;return A.set(e,t),this.size+=A.size==r?0:1,this}},function(e,t){e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t){e.exports=function(e,t){for(var A=-1,n=null==e?0:e.length;++A<n;)if(t(e[A],A,e))return!0;return!1}},function(e,t,A){var n=A(247),r=A(546),i=A(297),o=A(545),a=A(786),s=A(450),g=n?n.prototype:void 0,c=g?g.valueOf:void 0;e.exports=function(e,t,A,n,g,u,l){switch(A){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!u(new r(e),new r(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return i(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var I=a;case"[object Set]":var C=1&n;if(I||(I=s),e.size!=t.size&&!C)return!1;var h=l.get(e);if(h)return h==t;n|=2,l.set(e,t);var f=o(I(e),I(t),n,g,u,l);return l.delete(e),f;case"[object Symbol]":if(c)return c.call(e)==c.call(t)}return!1}},function(e,t){e.exports=function(e){var t=-1,A=Array(e.size);return e.forEach((function(e,n){A[++t]=[n,e]})),A}},function(e,t,A){var n=A(547),r=Object.prototype.hasOwnProperty;e.exports=function(e,t,A,i,o,a){var s=1&A,g=n(e),c=g.length;if(c!=n(t).length&&!s)return!1;for(var u=c;u--;){var l=g[u];if(!(s?l in t:r.call(t,l)))return!1}var I=a.get(e);if(I&&a.get(t))return I==t;var C=!0;a.set(e,t),a.set(t,e);for(var h=s;++u<c;){var f=e[l=g[u]],d=t[l];if(i)var B=s?i(d,f,l,t,e,a):i(f,d,l,e,t,a);if(!(void 0===B?f===d||o(f,d,A,i,a):B)){C=!1;break}h||(h="constructor"==l)}if(C&&!h){var p=e.constructor,E=t.constructor;p==E||!("constructor"in e)||!("constructor"in t)||"function"==typeof p&&p instanceof p&&"function"==typeof E&&E instanceof E||(C=!1)}return a.delete(e),a.delete(t),C}},function(e,t){e.exports=function(e,t){for(var A=-1,n=null==e?0:e.length,r=0,i=[];++A<n;){var o=e[A];t(o,A,e)&&(i[r++]=o)}return i}},function(e,t){e.exports=function(e,t){for(var A=-1,n=Array(e);++A<e;)n[A]=t(A);return n}},function(e,t,A){var n=A(216),r=A(154);e.exports=function(e){return r(e)&&"[object Arguments]"==n(e)}},function(e,t){e.exports=function(){return!1}},function(e,t,A){var n=A(216),r=A(455),i=A(154),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&r(e.length)&&!!o[n(e)]}},function(e,t,A){var n=A(457),r=A(794),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return r(e);var t=[];for(var A in Object(e))i.call(e,A)&&"constructor"!=A&&t.push(A);return t}},function(e,t,A){var n=A(551)(Object.keys,Object);e.exports=n},function(e,t,A){var n=A(215)(A(140),"DataView");e.exports=n},function(e,t,A){var n=A(215)(A(140),"Promise");e.exports=n},function(e,t,A){var n=A(215)(A(140),"WeakMap");e.exports=n},function(e,t,A){"use strict";var n=A(799);function r(){}function i(){}i.resetWarningCache=r,e.exports=function(){function e(e,t,A,r,i,o){if(o!==n){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var A={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return A.PropTypes=A,A}},function(e,t,A){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t){e.exports=function(e,t,A){return e===t||e.className===t.className&&A(e.style,t.style)&&e.width===t.width&&e.autoSize===t.autoSize&&e.cols===t.cols&&e.draggableCancel===t.draggableCancel&&e.draggableHandle===t.draggableHandle&&A(e.verticalCompact,t.verticalCompact)&&A(e.compactType,t.compactType)&&A(e.layout,t.layout)&&A(e.margin,t.margin)&&A(e.containerPadding,t.containerPadding)&&e.rowHeight===t.rowHeight&&e.maxRows===t.maxRows&&e.isBounded===t.isBounded&&e.isDraggable===t.isDraggable&&e.isResizable===t.isResizable&&e.preventCollision===t.preventCollision&&e.useCSSTransforms===t.useCSSTransforms&&e.transformScale===t.transformScale&&e.isDroppable===t.isDroppable&&A(e.resizeHandles,t.resizeHandles)&&e.onLayoutChange===t.onLayoutChange&&e.onDragStart===t.onDragStart&&e.onDrag===t.onDrag&&e.onDragStop===t.onDragStop&&e.onResizeStart===t.onResizeStart&&e.onResize===t.onResize&&e.onResizeStop===t.onResizeStop&&e.onDrop===t.onDrop&&A(e.droppingItem,t.droppingItem)&&A(e.innerRef,t.innerRef)}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=u(A(0)),r=u(A(39)),i=u(A(13)),o=A(802),a=A(806),s=A(249),g=A(554),c=u(A(61));function u(e){return e&&e.__esModule?e:{default:e}}function l(e){return(l="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function I(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function C(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?I(Object(A),!0).forEach((function(t){y(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):I(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function B(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var A,n=Q(e);if(t){var r=Q(this).constructor;A=Reflect.construct(n,arguments,r)}else A=n.apply(this,arguments);return p(this,A)}}function p(e,t){return!t||"object"!==l(t)&&"function"!==typeof t?E(e):t}function E(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Q(e){return(Q=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var v=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(l,e);var t,A,i,u=B(l);function l(){var e;h(this,l);for(var t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return y(E(e=u.call.apply(u,[this].concat(A))),"state",{resizing:null,dragging:null,className:""}),y(E(e),"currentNode",void 0),y(E(e),"onDragStart",(function(t,A){var n=A.node,r=e.props.onDragStart;if(r){var i={top:0,left:0},o=n.offsetParent;if(o){var a=o.getBoundingClientRect(),s=n.getBoundingClientRect(),c=s.left/e.props.transformScale,u=a.left/e.props.transformScale,l=s.top/e.props.transformScale,I=a.top/e.props.transformScale;i.left=c-u+o.scrollLeft,i.top=l-I+o.scrollTop,e.setState({dragging:i});var C=(0,g.calcXY)(e.getPositionParams(),i.top,i.left,e.props.w,e.props.h),h=C.x,f=C.y;return r.call(E(e),e.props.i,h,f,{e:t,node:n,newPosition:i})}}})),y(E(e),"onDrag",(function(t,A){var n=A.node,r=A.deltaX,i=A.deltaY,o=e.props,a=o.onDrag,s=o.transformScale;if(a){if(r/=s,i/=s,!e.state.dragging)throw new Error("onDrag called before onDragStart.");var c=e.state.dragging.top+i,u=e.state.dragging.left+r,l=e.props,I=l.isBounded,C=l.i,h=l.w,f=l.h,d=l.containerWidth,B=e.getPositionParams();if(I){var p=n.offsetParent;if(p){var Q=e.props,y=Q.margin,v=Q.rowHeight,m=p.clientHeight-(0,g.calcGridItemWHPx)(f,v,y[1]);c=(0,g.clamp)(c,0,m);var b=(0,g.calcGridColWidth)(B),w=d-(0,g.calcGridItemWHPx)(h,b,y[0]);u=(0,g.clamp)(u,0,w)}}var S={top:c,left:u};e.setState({dragging:S});var F=(0,g.calcXY)(B,c,u,h,f),R=F.x,D=F.y;return a.call(E(e),C,R,D,{e:t,node:n,newPosition:S})}})),y(E(e),"onDragStop",(function(t,A){var n=A.node,r=e.props.onDragStop;if(r){if(!e.state.dragging)throw new Error("onDragEnd called before onDragStart.");var i=e.props,o=i.w,a=i.h,s=i.i,c=e.state.dragging,u=c.left,l=c.top,I={top:l,left:u};e.setState({dragging:null});var C=(0,g.calcXY)(e.getPositionParams(),l,u,o,a),h=C.x,f=C.y;return r.call(E(e),s,h,f,{e:t,node:n,newPosition:I})}})),y(E(e),"onResizeStop",(function(t,A){e.onResizeHandler(t,A,"onResizeStop")})),y(E(e),"onResizeStart",(function(t,A){e.onResizeHandler(t,A,"onResizeStart")})),y(E(e),"onResize",(function(t,A){e.onResizeHandler(t,A,"onResize")})),e}return t=l,(A=[{key:"shouldComponentUpdate",value:function(e,t){if(this.props.children!==e.children)return!0;if(this.props.droppingPosition!==e.droppingPosition)return!0;var A=(0,g.calcGridItemPosition)(this.getPositionParams(this.props),this.props.x,this.props.y,this.props.w,this.props.h,this.state),n=(0,g.calcGridItemPosition)(this.getPositionParams(e),e.x,e.y,e.w,e.h,t);return!(0,s.fastPositionEqual)(A,n)||this.props.useCSSTransforms!==e.useCSSTransforms}},{key:"componentDidMount",value:function(){this.moveDroppingItem({})}},{key:"componentDidUpdate",value:function(e){this.moveDroppingItem(e)}},{key:"moveDroppingItem",value:function(e){var t=this.props.droppingPosition;if(t){var A=e.droppingPosition||{left:0,top:0},n=this.state.dragging;this.currentNode||(this.currentNode=r.default.findDOMNode(this));var i=n&&t.left!==A.left||t.top!==A.top;if(n){if(i){var o=t.left-n.left,a=t.top-n.top;this.onDrag(t.e,{node:this.currentNode,deltaX:o,deltaY:a})}}else this.onDragStart(t.e,{node:this.currentNode,deltaX:t.left,deltaY:t.top})}}},{key:"getPositionParams",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;return{cols:e.cols,containerPadding:e.containerPadding,containerWidth:e.containerWidth,margin:e.margin,maxRows:e.maxRows,rowHeight:e.rowHeight}}},{key:"createStyle",value:function(e){var t,A=this.props,n=A.usePercentages,r=A.containerWidth;return A.useCSSTransforms?t=(0,s.setTransform)(e):(t=(0,s.setTopLeft)(e),n&&(t.left=(0,s.perc)(e.left/r),t.width=(0,s.perc)(e.width/r))),t}},{key:"mixinDraggable",value:function(e,t){return n.default.createElement(o.DraggableCore,{disabled:!t,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop,handle:this.props.handle,cancel:".react-resizable-handle"+(this.props.cancel?","+this.props.cancel:""),scale:this.props.transformScale},e)}},{key:"mixinResizable",value:function(e,t,A){var r=this.props,i=r.cols,o=r.x,s=r.minW,c=r.minH,u=r.maxW,l=r.maxH,I=r.transformScale,C=r.resizeHandles,h=this.getPositionParams(),f=(0,g.calcGridItemPosition)(h,0,0,i-o,0).width,d=(0,g.calcGridItemPosition)(h,0,0,s,c),B=(0,g.calcGridItemPosition)(h,0,0,u,l),p=[d.width,d.height],E=[Math.min(B.width,f),Math.min(B.height,1/0)];return n.default.createElement(a.Resizable,{draggableOpts:{disabled:!A},className:A?void 0:"react-resizable-hide",width:t.width,height:t.height,minConstraints:p,maxConstraints:E,onResizeStop:this.onResizeStop,onResizeStart:this.onResizeStart,onResize:this.onResize,transformScale:I,resizeHandles:C},e)}},{key:"onResizeHandler",value:function(e,t,A){var n=t.node,r=t.size,i=this.props[A];if(i){var o=this.props,a=o.cols,s=o.x,c=o.y,u=o.i,l=o.maxH,I=o.minH,C=this.props,h=C.minW,f=C.maxW,d=(0,g.calcWH)(this.getPositionParams(),r.width,r.height,s,c),B=d.w,p=d.h;h=Math.max(h,1),f=Math.min(f,a-s),B=(0,g.clamp)(B,h,f),p=(0,g.clamp)(p,I,l),this.setState({resizing:"onResizeStop"===A?null:r}),i.call(this,u,B,p,{e:e,node:n,size:r})}}},{key:"render",value:function(){var e=this.props,t=e.x,A=e.y,r=e.w,i=e.h,o=e.isDraggable,a=e.isResizable,s=e.droppingPosition,u=e.useCSSTransforms,l=(0,g.calcGridItemPosition)(this.getPositionParams(),t,A,r,i,this.state),I=n.default.Children.only(this.props.children),h=n.default.cloneElement(I,{className:(0,c.default)("react-grid-item",I.props.className,this.props.className,{static:this.props.static,resizing:Boolean(this.state.resizing),"react-draggable":o,"react-draggable-dragging":Boolean(this.state.dragging),dropping:Boolean(s),cssTransforms:u}),style:C(C(C({},this.props.style),I.props.style),this.createStyle(l))});return h=this.mixinResizable(h,l,a),h=this.mixinDraggable(h,o)}}])&&f(t.prototype,A),i&&f(t,i),l}(n.default.Component);t.default=v,y(v,"propTypes",{children:i.default.element,cols:i.default.number.isRequired,containerWidth:i.default.number.isRequired,rowHeight:i.default.number.isRequired,margin:i.default.array.isRequired,maxRows:i.default.number.isRequired,containerPadding:i.default.array.isRequired,x:i.default.number.isRequired,y:i.default.number.isRequired,w:i.default.number.isRequired,h:i.default.number.isRequired,minW:function(e,t){var A=e[t];return"number"!==typeof A?new Error("minWidth not Number"):A>e.w||A>e.maxW?new Error("minWidth larger than item width/maxWidth"):void 0},maxW:function(e,t){var A=e[t];return"number"!==typeof A?new Error("maxWidth not Number"):A<e.w||A<e.minW?new Error("maxWidth smaller than item width/minWidth"):void 0},minH:function(e,t){var A=e[t];return"number"!==typeof A?new Error("minHeight not Number"):A>e.h||A>e.maxH?new Error("minHeight larger than item height/maxHeight"):void 0},maxH:function(e,t){var A=e[t];return"number"!==typeof A?new Error("maxHeight not Number"):A<e.h||A<e.minH?new Error("maxHeight smaller than item height/minHeight"):void 0},i:i.default.string.isRequired,onDragStop:i.default.func,onDragStart:i.default.func,onDrag:i.default.func,onResizeStop:i.default.func,onResizeStart:i.default.func,onResize:i.default.func,isDraggable:i.default.bool.isRequired,isResizable:i.default.bool.isRequired,isBounded:i.default.bool.isRequired,static:i.default.bool,useCSSTransforms:i.default.bool.isRequired,transformScale:i.default.number,className:i.default.string,handle:i.default.string,cancel:i.default.string,droppingPosition:i.default.shape({e:i.default.object.isRequired,left:i.default.number.isRequired,top:i.default.number.isRequired})}),y(v,"defaultProps",{className:"",cancel:"",handle:"",minH:1,minW:1,maxH:1/0,maxW:1/0,transformScale:1})},function(e,t,A){"use strict";var n=A(803),r=n.default,i=n.DraggableCore;e.exports=r,e.exports.default=r,e.exports.DraggableCore=i},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"DraggableCore",{enumerable:!0,get:function(){return c.default}}),t.default=void 0;var n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==C(e)&&"function"!==typeof e)return{default:e};var t=I();if(t&&t.has(e))return t.get(e);var A={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var i=n?Object.getOwnPropertyDescriptor(e,r):null;i&&(i.get||i.set)?Object.defineProperty(A,r,i):A[r]=e[r]}A.default=e,t&&t.set(e,A);return A}(A(0)),r=l(A(13)),i=l(A(39)),o=l(A(61)),a=A(459),s=A(555),g=A(352),c=l(A(805)),u=l(A(556));function l(e){return e&&e.__esModule?e:{default:e}}function I(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return I=function(){return e},e}function C(e){return(C="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e}).apply(this,arguments)}function f(e,t){if(null==e)return{};var A,n,r=function(e,t){if(null==e)return{};var A,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||(r[A]=e[A]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||Object.prototype.propertyIsEnumerable.call(e,A)&&(r[A]=e[A])}return r}function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return B(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(e);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return B(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function B(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function p(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function E(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?p(Object(A),!0).forEach((function(t){F(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):p(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function Q(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function y(e,t,A){return t&&Q(e.prototype,t),A&&Q(e,A),e}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var A,n=S(e);if(t){var r=S(this).constructor;A=Reflect.construct(n,arguments,r)}else A=n.apply(this,arguments);return b(this,A)}}function b(e,t){return!t||"object"!==C(t)&&"function"!==typeof t?w(e):t}function w(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function F(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var R=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(A,e);var t=m(A);function A(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,A),F(w(n=t.call(this,e)),"onDragStart",(function(e,t){if((0,u.default)("Draggable: onDragStart: %j",t),!1===n.props.onStart(e,(0,s.createDraggableData)(w(n),t)))return!1;n.setState({dragging:!0,dragged:!0})})),F(w(n),"onDrag",(function(e,t){if(!n.state.dragging)return!1;(0,u.default)("Draggable: onDrag: %j",t);var A=(0,s.createDraggableData)(w(n),t),r={x:A.x,y:A.y};if(n.props.bounds){var i=r.x,o=r.y;r.x+=n.state.slackX,r.y+=n.state.slackY;var a=d((0,s.getBoundPosition)(w(n),r.x,r.y),2),g=a[0],c=a[1];r.x=g,r.y=c,r.slackX=n.state.slackX+(i-r.x),r.slackY=n.state.slackY+(o-r.y),A.x=r.x,A.y=r.y,A.deltaX=r.x-n.state.x,A.deltaY=r.y-n.state.y}if(!1===n.props.onDrag(e,A))return!1;n.setState(r)})),F(w(n),"onDragStop",(function(e,t){if(!n.state.dragging)return!1;if(!1===n.props.onStop(e,(0,s.createDraggableData)(w(n),t)))return!1;(0,u.default)("Draggable: onDragStop: %j",t);var A={dragging:!1,slackX:0,slackY:0};if(Boolean(n.props.position)){var r=n.props.position,i=r.x,o=r.y;A.x=i,A.y=o}n.setState(A)})),n.state={dragging:!1,dragged:!1,x:e.position?e.position.x:e.defaultPosition.x,y:e.position?e.position.y:e.defaultPosition.y,prevPropsPosition:E({},e.position),slackX:0,slackY:0,isElementSVG:!1},!e.position||e.onDrag||e.onStop||console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element."),n}return y(A,null,[{key:"getDerivedStateFromProps",value:function(e,t){var A=e.position,n=t.prevPropsPosition;return!A||n&&A.x===n.x&&A.y===n.y?null:((0,u.default)("Draggable: getDerivedStateFromProps %j",{position:A,prevPropsPosition:n}),{x:A.x,y:A.y,prevPropsPosition:E({},A)})}}]),y(A,[{key:"componentDidMount",value:function(){"undefined"!==typeof window.SVGElement&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"findDOMNode",value:function(){return this.props.nodeRef?this.props.nodeRef.current:i.default.findDOMNode(this)}},{key:"render",value:function(){var e,t=this.props,A=(t.axis,t.bounds,t.children),r=t.defaultPosition,i=t.defaultClassName,g=t.defaultClassNameDragging,u=t.defaultClassNameDragged,l=t.position,I=t.positionOffset,C=(t.scale,f(t,["axis","bounds","children","defaultPosition","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","position","positionOffset","scale"])),d={},B=null,p=!Boolean(l)||this.state.dragging,Q=l||r,y={x:(0,s.canDragX)(this)&&p?this.state.x:Q.x,y:(0,s.canDragY)(this)&&p?this.state.y:Q.y};this.state.isElementSVG?B=(0,a.createSVGTransform)(y,I):d=(0,a.createCSSTransform)(y,I);var v=(0,o.default)(A.props.className||"",i,(F(e={},g,this.state.dragging),F(e,u,this.state.dragged),e));return n.createElement(c.default,h({},C,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),n.cloneElement(n.Children.only(A),{className:v,style:E(E({},A.props.style),d),transform:B}))}}]),A}(n.Component);t.default=R,F(R,"displayName","Draggable"),F(R,"propTypes",E(E({},c.default.propTypes),{},{axis:r.default.oneOf(["both","x","y","none"]),bounds:r.default.oneOfType([r.default.shape({left:r.default.number,right:r.default.number,top:r.default.number,bottom:r.default.number}),r.default.string,r.default.oneOf([!1])]),defaultClassName:r.default.string,defaultClassNameDragging:r.default.string,defaultClassNameDragged:r.default.string,defaultPosition:r.default.shape({x:r.default.number,y:r.default.number}),positionOffset:r.default.shape({x:r.default.oneOfType([r.default.number,r.default.string]),y:r.default.oneOfType([r.default.number,r.default.string])}),position:r.default.shape({x:r.default.number,y:r.default.number}),className:g.dontSetMe,style:g.dontSetMe,transform:g.dontSetMe})),F(R,"defaultProps",E(E({},c.default.defaultProps),{},{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}))},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getPrefix=r,t.browserPrefixToKey=i,t.browserPrefixToStyle=function(e,t){return t?"-".concat(t.toLowerCase(),"-").concat(e):e},t.default=void 0;var n=["Moz","Webkit","O","ms"];function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"===typeof window||"undefined"===typeof window.document)return"";var t=window.document.documentElement.style;if(e in t)return"";for(var A=0;A<n.length;A++)if(i(e,n[A])in t)return n[A];return""}function i(e,t){return t?"".concat(t).concat(function(e){for(var t="",A=!0,n=0;n<e.length;n++)A?(t+=e[n].toUpperCase(),A=!1):"-"===e[n]?A=!0:t+=e[n];return t}(e)):e}var o=r();t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==l(e)&&"function"!==typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var A={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var i=n?Object.getOwnPropertyDescriptor(e,r):null;i&&(i.get||i.set)?Object.defineProperty(A,r,i):A[r]=e[r]}A.default=e,t&&t.set(e,A);return A}(A(0)),r=c(A(13)),i=c(A(39)),o=A(459),a=A(555),s=A(352),g=c(A(556));function c(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e){return(l="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function I(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return C(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(e);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return C(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function B(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var A,n=Q(e);if(t){var r=Q(this).constructor;A=Reflect.construct(n,arguments,r)}else A=n.apply(this,arguments);return p(this,A)}}function p(e,t){return!t||"object"!==l(t)&&"function"!==typeof t?E(e):t}function E(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Q(e){return(Q=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var v={start:"touchstart",move:"touchmove",stop:"touchend"},m={start:"mousedown",move:"mousemove",stop:"mouseup"},b=m,w=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(c,e);var t,A,r,s=B(c);function c(){var e;h(this,c);for(var t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return y(E(e=s.call.apply(s,[this].concat(A))),"state",{dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null}),y(E(e),"mounted",!1),y(E(e),"handleDragStart",(function(t){if(e.props.onMouseDown(t),!e.props.allowAnyClick&&"number"===typeof t.button&&0!==t.button)return!1;var A=e.findDOMNode();if(!A||!A.ownerDocument||!A.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");var n=A.ownerDocument;if(!(e.props.disabled||!(t.target instanceof n.defaultView.Node)||e.props.handle&&!(0,o.matchesSelectorAndParentsTo)(t.target,e.props.handle,A)||e.props.cancel&&(0,o.matchesSelectorAndParentsTo)(t.target,e.props.cancel,A))){"touchstart"===t.type&&t.preventDefault();var r=(0,o.getTouchIdentifier)(t);e.setState({touchIdentifier:r});var i=(0,a.getControlPosition)(t,r,E(e));if(null!=i){var s=i.x,c=i.y,u=(0,a.createCoreData)(E(e),s,c);(0,g.default)("DraggableCore: handleDragStart: %j",u),(0,g.default)("calling",e.props.onStart),!1!==e.props.onStart(t,u)&&!1!==e.mounted&&(e.props.enableUserSelectHack&&(0,o.addUserSelectStyles)(n),e.setState({dragging:!0,lastX:s,lastY:c}),(0,o.addEvent)(n,b.move,e.handleDrag),(0,o.addEvent)(n,b.stop,e.handleDragStop))}}})),y(E(e),"handleDrag",(function(t){var A=(0,a.getControlPosition)(t,e.state.touchIdentifier,E(e));if(null!=A){var n=A.x,r=A.y;if(Array.isArray(e.props.grid)){var i=n-e.state.lastX,o=r-e.state.lastY,s=I((0,a.snapToGrid)(e.props.grid,i,o),2);if(i=s[0],o=s[1],!i&&!o)return;n=e.state.lastX+i,r=e.state.lastY+o}var c=(0,a.createCoreData)(E(e),n,r);if((0,g.default)("DraggableCore: handleDrag: %j",c),!1!==e.props.onDrag(t,c)&&!1!==e.mounted)e.setState({lastX:n,lastY:r});else try{e.handleDragStop(new MouseEvent("mouseup"))}catch(l){var u=document.createEvent("MouseEvents");u.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),e.handleDragStop(u)}}})),y(E(e),"handleDragStop",(function(t){if(e.state.dragging){var A=(0,a.getControlPosition)(t,e.state.touchIdentifier,E(e));if(null!=A){var n=A.x,r=A.y,i=(0,a.createCoreData)(E(e),n,r);if(!1===e.props.onStop(t,i)||!1===e.mounted)return!1;var s=e.findDOMNode();s&&e.props.enableUserSelectHack&&(0,o.removeUserSelectStyles)(s.ownerDocument),(0,g.default)("DraggableCore: handleDragStop: %j",i),e.setState({dragging:!1,lastX:NaN,lastY:NaN}),s&&((0,g.default)("DraggableCore: Removing handlers"),(0,o.removeEvent)(s.ownerDocument,b.move,e.handleDrag),(0,o.removeEvent)(s.ownerDocument,b.stop,e.handleDragStop))}}})),y(E(e),"onMouseDown",(function(t){return b=m,e.handleDragStart(t)})),y(E(e),"onMouseUp",(function(t){return b=m,e.handleDragStop(t)})),y(E(e),"onTouchStart",(function(t){return b=v,e.handleDragStart(t)})),y(E(e),"onTouchEnd",(function(t){return b=v,e.handleDragStop(t)})),e}return t=c,(A=[{key:"componentDidMount",value:function(){this.mounted=!0;var e=this.findDOMNode();e&&(0,o.addEvent)(e,v.start,this.onTouchStart,{passive:!1})}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var e=this.findDOMNode();if(e){var t=e.ownerDocument;(0,o.removeEvent)(t,m.move,this.handleDrag),(0,o.removeEvent)(t,v.move,this.handleDrag),(0,o.removeEvent)(t,m.stop,this.handleDragStop),(0,o.removeEvent)(t,v.stop,this.handleDragStop),(0,o.removeEvent)(e,v.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,o.removeUserSelectStyles)(t)}}},{key:"findDOMNode",value:function(){return this.props.nodeRef?this.props.nodeRef.current:i.default.findDOMNode(this)}},{key:"render",value:function(){return n.cloneElement(n.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}])&&f(t.prototype,A),r&&f(t,r),c}(n.Component);t.default=w,y(w,"displayName","DraggableCore"),y(w,"propTypes",{allowAnyClick:r.default.bool,disabled:r.default.bool,enableUserSelectHack:r.default.bool,offsetParent:function(e,t){if(e[t]&&1!==e[t].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:r.default.arrayOf(r.default.number),handle:r.default.string,cancel:r.default.string,nodeRef:r.default.object,onStart:r.default.func,onDrag:r.default.func,onStop:r.default.func,onMouseDown:r.default.func,scale:r.default.number,className:s.dontSetMe,style:s.dontSetMe,transform:s.dontSetMe}),y(w,"defaultProps",{allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1})},function(e,t,A){"use strict";e.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},e.exports.Resizable=A(557).default,e.exports.ResizableBox=A(809).default},function(e,t,A){var n,r;window,e.exports=(n=A(0),r=A(39),function(e){var t={};function A(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,A),r.l=!0,r.exports}return A.m=e,A.c=t,A.d=function(e,t,n){A.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},A.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},A.t=function(e,t){if(1&t&&(e=A(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(A.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)A.d(n,r,function(t){return e[t]}.bind(null,r));return n},A.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return A.d(t,"a",t),t},A.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},A.p="",A(A.s=4)}([function(e,t,A){e.exports=A(5)()},function(e,t){e.exports=n},function(e,t){e.exports=r},function(e,t,A){var n;!function(){"use strict";var A={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var i=typeof n;if("string"===i||"number"===i)e.push(n);else if(Array.isArray(n)&&n.length){var o=r.apply(null,n);o&&e.push(o)}else if("object"===i)for(var a in n)A.call(n,a)&&n[a]&&e.push(a)}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},function(e,t,A){var n=A(7),r=n.default,i=n.DraggableCore;e.exports=r,e.exports.default=r,e.exports.DraggableCore=i},function(e,t,A){"use strict";var n=A(6);function r(){}function i(){}i.resetWarningCache=r,e.exports=function(){function e(e,t,A,r,i,o){if(o!==n){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var A={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return A.PropTypes=A,A}},function(e,t,A){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,A){"use strict";A.r(t);var n=A(1),r=A.n(n),i=A(0),o=A.n(i),a=A(2),s=A.n(a),g=A(3),c=A.n(g);function u(e,t){for(var A=0,n=e.length;A<n;A++)if(t.apply(t,[e[A],A,e]))return e[A]}function l(e){return"function"==typeof e||"[object Function]"===Object.prototype.toString.call(e)}function I(e){return"number"==typeof e&&!isNaN(e)}function C(e){return parseInt(e,10)}function h(e,t,A){if(e[t])return new Error("Invalid prop ".concat(t," passed to ").concat(A," - do not set this, set it on the child."))}var f=["Moz","Webkit","O","ms"];function d(e,t){return t?"".concat(t).concat(function(e){for(var t="",A=!0,n=0;n<e.length;n++)A?(t+=e[n].toUpperCase(),A=!1):"-"===e[n]?A=!0:t+=e[n];return t}(e)):e}var B=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window||void 0===window.document)return"";var t=window.document.documentElement.style;if(e in t)return"";for(var A=0;A<f.length;A++)if(d(e,f[A])in t)return f[A];return""}();function p(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function E(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var Q="";function y(e,t){return Q||(Q=u(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],(function(t){return l(e[t])}))),!!l(e[Q])&&e[Q](t)}function v(e,t,A){var n=e;do{if(y(n,t))return!0;if(n===A)return!1;n=n.parentNode}while(n);return!1}function m(e,t,A){e&&(e.attachEvent?e.attachEvent("on"+t,A):e.addEventListener?e.addEventListener(t,A,!0):e["on"+t]=A)}function b(e,t,A){e&&(e.detachEvent?e.detachEvent("on"+t,A):e.removeEventListener?e.removeEventListener(t,A,!0):e["on"+t]=null)}function w(e){var t=e.clientHeight,A=e.ownerDocument.defaultView.getComputedStyle(e);return(t+=C(A.borderTopWidth))+C(A.borderBottomWidth)}function S(e){var t=e.clientWidth,A=e.ownerDocument.defaultView.getComputedStyle(e);return(t+=C(A.borderLeftWidth))+C(A.borderRightWidth)}function F(e){var t=e.clientHeight,A=e.ownerDocument.defaultView.getComputedStyle(e);return(t-=C(A.paddingTop))-C(A.paddingBottom)}function R(e){var t=e.clientWidth,A=e.ownerDocument.defaultView.getComputedStyle(e);return(t-=C(A.paddingLeft))-C(A.paddingRight)}function D(e,t,A){var n=e.x,r=e.y,i="translate(".concat(n).concat(A,",").concat(r).concat(A,")");if(t){var o="".concat("string"==typeof t.x?t.x:t.x+A),a="".concat("string"==typeof t.y?t.y:t.y+A);i="translate(".concat(o,", ").concat(a,")")+i}return i}function G(e){if(e){var t,A,n=e.getElementById("react-draggable-style-el");n||((n=e.createElement("style")).type="text/css",n.id="react-draggable-style-el",n.innerHTML=".react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n",n.innerHTML+=".react-draggable-transparent-selection *::selection {all: inherit;}\n",e.getElementsByTagName("head")[0].appendChild(n)),e.body&&(A="react-draggable-transparent-selection",(t=e.body).classList?t.classList.add(A):t.className.match(new RegExp("(?:^|\\s)".concat(A,"(?!\\S)")))||(t.className+=" ".concat(A)))}}function k(e){try{e&&e.body&&(t=e.body,A="react-draggable-transparent-selection",t.classList?t.classList.remove(A):t.className=t.className.replace(new RegExp("(?:^|\\s)".concat(A,"(?!\\S)"),"g"),"")),e.selection?e.selection.empty():window.getSelection().removeAllRanges()}catch(e){}var t,A}function x(){return function(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?p(A,!0).forEach((function(t){E(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):p(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}({touchAction:"none"},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}function N(e){return"both"===e.props.axis||"x"===e.props.axis}function U(e){return"both"===e.props.axis||"y"===e.props.axis}function _(e,t,A){var n="number"==typeof t?function(e,t){return e.targetTouches&&u(e.targetTouches,(function(e){return t===e.identifier}))||e.changedTouches&&u(e.changedTouches,(function(e){return t===e.identifier}))}(e,t):null;if("number"==typeof t&&!n)return null;var r=L(A);return function(e,t,A){var n=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect();return{x:(e.clientX+t.scrollLeft-n.left)/A,y:(e.clientY+t.scrollTop-n.top)/A}}(n||e,A.props.offsetParent||r.offsetParent||r.ownerDocument.body,A.props.scale)}function M(e,t,A){var n=e.state,r=!I(n.lastX),i=L(e);return r?{node:i,deltaX:0,deltaY:0,lastX:t,lastY:A,x:t,y:A}:{node:i,deltaX:t-n.lastX,deltaY:A-n.lastY,lastX:n.lastX,lastY:n.lastY,x:t,y:A}}function O(e,t){var A=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/A,y:e.state.y+t.deltaY/A,deltaX:t.deltaX/A,deltaY:t.deltaY/A,lastX:e.state.x,lastY:e.state.y}}function L(e){var t=s.a.findDOMNode(e);if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}function T(e){return(T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Z(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function H(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Y(e){return(Y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function J(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function j(e,t){return(j=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function P(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var V={start:"touchstart",move:"touchmove",stop:"touchend"},K={start:"mousedown",move:"mousemove",stop:"mouseup"},W=K,X=function(e){function t(){var e,A,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,o=new Array(i),a=0;a<i;a++)o[a]=arguments[a];return n=this,r=(e=Y(t)).call.apply(e,[this].concat(o)),A=!r||"object"!==T(r)&&"function"!=typeof r?J(n):r,P(J(A),"state",{dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null}),P(J(A),"handleDragStart",(function(e){if(A.props.onMouseDown(e),!A.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;var t=s.a.findDOMNode(J(A));if(!t||!t.ownerDocument||!t.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");var n=t.ownerDocument;if(!(A.props.disabled||!(e.target instanceof n.defaultView.Node)||A.props.handle&&!v(e.target,A.props.handle,t)||A.props.cancel&&v(e.target,A.props.cancel,t))){var r=function(e){return e.targetTouches&&e.targetTouches[0]?e.targetTouches[0].identifier:e.changedTouches&&e.changedTouches[0]?e.changedTouches[0].identifier:void 0}(e);A.setState({touchIdentifier:r});var i=_(e,r,J(A));if(null!=i){var o=i.x,a=i.y,g=M(J(A),o,a);A.props.onStart,!1!==A.props.onStart(e,g)&&(A.props.enableUserSelectHack&&G(n),A.setState({dragging:!0,lastX:o,lastY:a}),m(n,W.move,A.handleDrag),m(n,W.stop,A.handleDragStop))}}})),P(J(A),"handleDrag",(function(e){"touchmove"===e.type&&e.preventDefault();var t=_(e,A.state.touchIdentifier,J(A));if(null!=t){var n,r,i,o=t.x,a=t.y;if(Array.isArray(A.props.grid)){var s=o-A.state.lastX,g=a-A.state.lastY,c=Z((n=A.props.grid,r=s,i=g,[Math.round(r/n[0])*n[0],Math.round(i/n[1])*n[1]]),2);if(s=c[0],g=c[1],!s&&!g)return;o=A.state.lastX+s,a=A.state.lastY+g}var u=M(J(A),o,a);if(!1!==A.props.onDrag(e,u))A.setState({lastX:o,lastY:a});else try{A.handleDragStop(new MouseEvent("mouseup"))}catch(e){var l=document.createEvent("MouseEvents");l.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),A.handleDragStop(l)}}})),P(J(A),"handleDragStop",(function(e){if(A.state.dragging){var t=_(e,A.state.touchIdentifier,J(A));if(null!=t){var n=t.x,r=t.y,i=M(J(A),n,r),o=s.a.findDOMNode(J(A));o&&A.props.enableUserSelectHack&&k(o.ownerDocument),A.setState({dragging:!1,lastX:NaN,lastY:NaN}),A.props.onStop(e,i),o&&(b(o.ownerDocument,W.move,A.handleDrag),b(o.ownerDocument,W.stop,A.handleDragStop))}}})),P(J(A),"onMouseDown",(function(e){return W=K,A.handleDragStart(e)})),P(J(A),"onMouseUp",(function(e){return W=K,A.handleDragStop(e)})),P(J(A),"onTouchStart",(function(e){return W=V,A.handleDragStart(e)})),P(J(A),"onTouchEnd",(function(e){return W=V,A.handleDragStop(e)})),A}var A,n;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&j(e,t)}(t,r.a.Component),A=t,(n=[{key:"componentWillUnmount",value:function(){var e=s.a.findDOMNode(this);if(e){var t=e.ownerDocument;b(t,K.move,this.handleDrag),b(t,V.move,this.handleDrag),b(t,K.stop,this.handleDragStop),b(t,V.stop,this.handleDragStop),this.props.enableUserSelectHack&&k(t)}}},{key:"render",value:function(){return r.a.cloneElement(r.a.Children.only(this.props.children),{style:x(this.props.children.props.style),onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}])&&H(A.prototype,n),t}();function q(e){return(q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function z(){return(z=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e}).apply(this,arguments)}function $(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function ee(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?$(A,!0).forEach((function(t){oe(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):$(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function te(e){return(te=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ae(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ne(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function re(e,t,A){return t&&ne(e.prototype,t),A&&ne(e,A),e}function ie(e,t){return(ie=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function oe(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}P(X,"displayName","DraggableCore"),P(X,"propTypes",{allowAnyClick:o.a.bool,disabled:o.a.bool,enableUserSelectHack:o.a.bool,offsetParent:function(e,t){if(e[t]&&1!==e[t].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:o.a.arrayOf(o.a.number),handle:o.a.string,cancel:o.a.string,onStart:o.a.func,onDrag:o.a.func,onStop:o.a.func,onMouseDown:o.a.func,scale:o.a.number,className:h,style:h,transform:h}),P(X,"defaultProps",{allowAnyClick:!1,cancel:null,disabled:!1,enableUserSelectHack:!0,offsetParent:null,handle:null,grid:null,transform:null,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),A.d(t,"default",(function(){return ae})),A.d(t,"DraggableCore",(function(){return X}));var ae=function(e){function t(e){var A,n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=te(t).call(this,e),A=!n||"object"!==q(n)&&"function"!=typeof n?Ae(this):n,oe(Ae(A),"onDragStart",(function(e,t){if(!1===A.props.onStart(e,O(Ae(A),t)))return!1;A.setState({dragging:!0,dragged:!0})})),oe(Ae(A),"onDrag",(function(e,t){if(!A.state.dragging)return!1;var n=O(Ae(A),t),r={x:n.x,y:n.y};if(A.props.bounds){var i=r.x,o=r.y;r.x+=A.state.slackX,r.y+=A.state.slackY;var a=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}(function(e,t,A){if(!e.props.bounds)return[t,A];var n=e.props.bounds;n="string"==typeof n?n:function(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}(n);var r=L(e);if("string"==typeof n){var i,o=r.ownerDocument,a=o.defaultView;if(!((i="parent"===n?r.parentNode:o.querySelector(n))instanceof a.HTMLElement))throw new Error('Bounds selector "'+n+'" could not find an element.');var s=a.getComputedStyle(r),g=a.getComputedStyle(i);n={left:-r.offsetLeft+C(g.paddingLeft)+C(s.marginLeft),top:-r.offsetTop+C(g.paddingTop)+C(s.marginTop),right:R(i)-S(r)-r.offsetLeft+C(g.paddingRight)-C(s.marginRight),bottom:F(i)-w(r)-r.offsetTop+C(g.paddingBottom)-C(s.marginBottom)}}return I(n.right)&&(t=Math.min(t,n.right)),I(n.bottom)&&(A=Math.min(A,n.bottom)),I(n.left)&&(t=Math.max(t,n.left)),I(n.top)&&(A=Math.max(A,n.top)),[t,A]}(Ae(A),r.x,r.y),2),s=a[0],g=a[1];r.x=s,r.y=g,r.slackX=A.state.slackX+(i-r.x),r.slackY=A.state.slackY+(o-r.y),n.x=r.x,n.y=r.y,n.deltaX=r.x-A.state.x,n.deltaY=r.y-A.state.y}if(!1===A.props.onDrag(e,n))return!1;A.setState(r)})),oe(Ae(A),"onDragStop",(function(e,t){if(!A.state.dragging)return!1;if(!1===A.props.onStop(e,O(Ae(A),t)))return!1;var n={dragging:!1,slackX:0,slackY:0};if(Boolean(A.props.position)){var r=A.props.position,i=r.x,o=r.y;n.x=i,n.y=o}A.setState(n)})),A.state={dragging:!1,dragged:!1,x:e.position?e.position.x:e.defaultPosition.x,y:e.position?e.position.y:e.defaultPosition.y,prevPropsPosition:ee({},e.position),slackX:0,slackY:0,isElementSVG:!1},!e.position||e.onDrag||e.onStop||console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element."),A}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ie(e,t)}(t,r.a.Component),re(t,null,[{key:"getDerivedStateFromProps",value:function(e,t){var A=e.position,n=t.prevPropsPosition;return!A||n&&A.x===n.x&&A.y===n.y?null:{x:A.x,y:A.y,prevPropsPosition:ee({},A)}}}]),re(t,[{key:"componentDidMount",value:function(){void 0!==window.SVGElement&&s.a.findDOMNode(this)instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"render",value:function(){var e,t=this.props,A=(t.axis,t.bounds,t.children),n=t.defaultPosition,i=t.defaultClassName,o=t.defaultClassNameDragging,a=t.defaultClassNameDragged,s=t.position,g=t.positionOffset,u=(t.scale,function(e,t){if(null==e)return{};var A,n,r=function(e,t){if(null==e)return{};var A,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||(r[A]=e[A]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||Object.prototype.propertyIsEnumerable.call(e,A)&&(r[A]=e[A])}return r}(t,["axis","bounds","children","defaultPosition","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","position","positionOffset","scale"])),l={},I=null,C=!Boolean(s)||this.state.dragging,h=s||n,f={x:N(this)&&C?this.state.x:h.x,y:U(this)&&C?this.state.y:h.y};this.state.isElementSVG?I=function(e,t){return D(e,t,"")}(f,g):l=function(e,t){var A=D(e,t,"px");return E({},d("transform",B),A)}(f,g);var p=c()(A.props.className||"",i,(oe(e={},o,this.state.dragging),oe(e,a,this.state.dragged),e));return r.a.createElement(X,z({},u,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),r.a.cloneElement(r.a.Children.only(A),{className:p,style:ee({},A.props.style,{},l),transform:I}))}}]),t}();oe(ae,"displayName","Draggable"),oe(ae,"propTypes",ee({},X.propTypes,{axis:o.a.oneOf(["both","x","y","none"]),bounds:o.a.oneOfType([o.a.shape({left:o.a.number,right:o.a.number,top:o.a.number,bottom:o.a.number}),o.a.string,o.a.oneOf([!1])]),defaultClassName:o.a.string,defaultClassNameDragging:o.a.string,defaultClassNameDragged:o.a.string,defaultPosition:o.a.shape({x:o.a.number,y:o.a.number}),positionOffset:o.a.shape({x:o.a.oneOfType([o.a.number,o.a.string]),y:o.a.oneOfType([o.a.number,o.a.string])}),position:o.a.shape({x:o.a.number,y:o.a.number}),className:h,style:h,transform:h})),oe(ae,"defaultProps",ee({},X.defaultProps,{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},position:null,scale:1}))}]))},function(e,t,A){"use strict";t.__esModule=!0,t.cloneElement=function(e,t){t.style&&e.props.style&&(t.style=function(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?i(A,!0).forEach((function(t){o(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):i(A).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}({},e.props.style,{},t.style));t.className&&e.props.className&&(t.className=e.props.className+" "+t.className);return r.default.cloneElement(e,t)};var n,r=(n=A(0))&&n.__esModule?n:{default:n};function i(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function o(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}},function(e,t,A){"use strict";t.__esModule=!0,t.default=void 0;var n=o(A(0)),r=o(A(13)),i=o(A(557));function o(e){return e&&e.__esModule?e:{default:e}}function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e}).apply(this,arguments)}function s(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var c=function(e){var t,A;function r(){for(var t,A=arguments.length,n=new Array(A),r=0;r<A;r++)n[r]=arguments[r];return g(s(t=e.call.apply(e,[this].concat(n))||this),"state",{width:t.props.width,height:t.props.height,propsWidth:t.props.width,propsHeight:t.props.height}),g(s(t),"onResize",(function(e,A){var n=A.size;n.width,n.height;t.props.onResize?(e.persist&&e.persist(),t.setState(n,(function(){return t.props.onResize&&t.props.onResize(e,A)}))):t.setState(n)})),t}return A=e,(t=r).prototype=Object.create(A.prototype),t.prototype.constructor=t,t.__proto__=A,r.getDerivedStateFromProps=function(e,t){return t.propsWidth!==e.width||t.propsHeight!==e.height?{width:e.width,height:e.height,propsWidth:e.width,propsHeight:e.height}:null},r.prototype.render=function(){var e=this.props,t=e.handle,A=e.handleSize,r=(e.onResize,e.onResizeStart),o=e.onResizeStop,s=e.draggableOpts,g=e.minConstraints,c=e.maxConstraints,u=e.lockAspectRatio,l=e.axis,I=(e.width,e.height,e.resizeHandles),C=function(e,t){if(null==e)return{};var A,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||(r[A]=e[A]);return r}(e,["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles"]);return n.default.createElement(i.default,{handle:t,handleSize:A,width:this.state.width,height:this.state.height,onResizeStart:r,onResize:this.onResize,onResizeStop:o,draggableOpts:s,minConstraints:g,maxConstraints:c,lockAspectRatio:u,axis:l,resizeHandles:I},n.default.createElement("div",a({style:{width:this.state.width+"px",height:this.state.height+"px"}},C)))},r}(n.default.Component);t.default=c,g(c,"propTypes",{height:r.default.number,width:r.default.number}),g(c,"defaultProps",{handleSize:[20,20]})},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=i(A(13)),r=i(A(0));function i(e){return e&&e.__esModule?e:{default:e}}var o={className:n.default.string,style:n.default.object,width:n.default.number,autoSize:n.default.bool,cols:n.default.number,draggableCancel:n.default.string,draggableHandle:n.default.string,verticalCompact:function(e){e.verticalCompact,0},compactType:n.default.oneOf(["vertical","horizontal"]),layout:function(e){var t=e.layout;void 0!==t&&A(249).validateLayout(t,"layout")},margin:n.default.arrayOf(n.default.number),containerPadding:n.default.arrayOf(n.default.number),rowHeight:n.default.number,maxRows:n.default.number,isBounded:n.default.bool,isDraggable:n.default.bool,isResizable:n.default.bool,preventCollision:n.default.bool,useCSSTransforms:n.default.bool,transformScale:n.default.number,isDroppable:n.default.bool,resizeHandles:n.default.arrayOf(n.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),onLayoutChange:n.default.func,onDragStart:n.default.func,onDrag:n.default.func,onDragStop:n.default.func,onResizeStart:n.default.func,onResize:n.default.func,onResizeStop:n.default.func,onDrop:n.default.func,droppingItem:n.default.shape({i:n.default.string.isRequired,w:n.default.number.isRequired,h:n.default.number.isRequired}),children:function(e,t){var A=e[t],n={};r.default.Children.forEach(A,(function(e){if(n[e.key])throw new Error('Duplicate child key "'+e.key+'" found! This will cause problems in ReactGridLayout.');n[e.key]=!0}))},innerRef:n.default.any};t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==u(e)&&"function"!==typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var A={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var i=n?Object.getOwnPropertyDescriptor(e,r):null;i&&(i.get||i.set)?Object.defineProperty(A,r,i):A[r]=e[r]}A.default=e,t&&t.set(e,A);return A}(A(0)),r=g(A(13)),i=g(A(458)),o=A(249),a=A(558),s=g(A(553));function g(e){return e&&e.__esModule?e:{default:e}}function c(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function u(e){return(u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e}).apply(this,arguments)}function I(e,t){if(null==e)return{};var A,n,r=function(e,t){if(null==e)return{};var A,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||(r[A]=e[A]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||Object.prototype.propertyIsEnumerable.call(e,A)&&(r[A]=e[A])}return r}function C(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function h(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?C(Object(A),!0).forEach((function(t){v(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):C(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var A,n=y(e);if(t){var r=y(this).constructor;A=Reflect.construct(n,arguments,r)}else A=n.apply(this,arguments);return E(this,A)}}function E(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?Q(e):t}function Q(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var m=function(e){return Object.prototype.toString.call(e)};function b(e,t){return null==e?null:Array.isArray(e)?e:e[t]}var w=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&B(e,t)}(c,e);var t,A,r,g=p(c);function c(){var e;f(this,c);for(var t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return v(Q(e=g.call.apply(g,[this].concat(A))),"state",e.generateInitialState()),v(Q(e),"onLayoutChange",(function(t){e.props.onLayoutChange(t,h(h({},e.props.layouts),{},v({},e.state.breakpoint,t)))})),e}return t=c,r=[{key:"getDerivedStateFromProps",value:function(e,t){if(!(0,i.default)(e.layouts,t.layouts)){var A=t.breakpoint,n=t.cols;return{layout:(0,a.findOrGenerateResponsiveLayout)(e.layouts,e.breakpoints,A,A,n,e.compactType),layouts:e.layouts}}return null}}],(A=[{key:"generateInitialState",value:function(){var e=this.props,t=e.width,A=e.breakpoints,n=e.layouts,r=e.cols,i=(0,a.getBreakpointFromWidth)(A,t),o=(0,a.getColsFromBreakpoint)(i,r),s=!1===this.props.verticalCompact?null:this.props.compactType;return{layout:(0,a.findOrGenerateResponsiveLayout)(n,A,i,i,o,s),breakpoint:i,cols:o}}},{key:"componentDidUpdate",value:function(e){this.props.width==e.width&&this.props.breakpoint===e.breakpoint&&(0,i.default)(this.props.breakpoints,e.breakpoints)&&(0,i.default)(this.props.cols,e.cols)||this.onWidthChange(e)}},{key:"onWidthChange",value:function(e){var t=this.props,A=t.breakpoints,n=t.cols,r=t.layouts,i=t.compactType,s=this.props.breakpoint||(0,a.getBreakpointFromWidth)(this.props.breakpoints,this.props.width),g=this.state.breakpoint,c=(0,a.getColsFromBreakpoint)(s,n),u=h({},r);if(g!==s||e.breakpoints!==A||e.cols!==n){g in u||(u[g]=(0,o.cloneLayout)(this.state.layout));var l=(0,a.findOrGenerateResponsiveLayout)(u,A,s,g,c,i);l=(0,o.synchronizeLayoutWithChildren)(l,this.props.children,c,i),u[s]=l,this.props.onLayoutChange(l,u),this.props.onBreakpointChange(s,c),this.setState({breakpoint:s,layout:l,cols:c})}var I=b(this.props.margin,s),C=b(this.props.containerPadding,s);this.props.onWidthChange(this.props.width,I,c,C)}},{key:"render",value:function(){var e=this.props,t=(e.breakpoint,e.breakpoints,e.cols,e.layouts,e.margin),A=e.containerPadding,r=(e.onBreakpointChange,e.onLayoutChange,e.onWidthChange,I(e,["breakpoint","breakpoints","cols","layouts","margin","containerPadding","onBreakpointChange","onLayoutChange","onWidthChange"]));return n.createElement(s.default,l({},r,{margin:b(t,this.state.breakpoint),containerPadding:b(A,this.state.breakpoint),onLayoutChange:this.onLayoutChange,layout:this.state.layout,cols:this.state.cols}))}}])&&d(t.prototype,A),r&&d(t,r),c}(n.Component);t.default=w,v(w,"propTypes",{breakpoint:r.default.string,breakpoints:r.default.object,cols:r.default.object,margin:r.default.oneOfType([r.default.array,r.default.object]),containerPadding:r.default.oneOfType([r.default.array,r.default.object]),layouts:function(e,t){if("[object Object]"!==m(e[t]))throw new Error("Layout property must be an object. Received: "+m(e[t]));Object.keys(e[t]).forEach((function(t){if(!(t in e.breakpoints))throw new Error("Each key in layouts must align with a key in breakpoints.");(0,o.validateLayout)(e.layouts[t],"layouts."+t)}))},width:r.default.number.isRequired,onBreakpointChange:r.default.func,onLayoutChange:r.default.func,onWidthChange:r.default.func}),v(w,"defaultProps",{breakpoints:{lg:1200,md:996,sm:768,xs:480,xxs:0},cols:{lg:12,md:10,sm:6,xs:4,xxs:2},layouts:{},margin:[10,10],containerPadding:{lg:null,md:null,sm:null,xs:null,xxs:null},onBreakpointChange:o.noop,onLayoutChange:o.noop,onWidthChange:o.noop})},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,A;return A=t=function(t){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(r,t);var A=function(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var A,n=h(e);if(t){var r=h(this).constructor;A=Reflect.construct(n,arguments,r)}else A=n.apply(this,arguments);return I(this,A)}}(r);function r(){var e;c(this,r);for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return f(C(e=A.call.apply(A,[this].concat(n))),"state",{width:1280}),f(C(e),"mounted",!1),f(C(e),"onWindowResize",(function(){if(e.mounted){var t=i.default.findDOMNode(C(e));t instanceof HTMLElement&&e.setState({width:t.offsetWidth})}})),e}return function(e,t,A){t&&u(e.prototype,t);A&&u(e,A)}(r,[{key:"componentDidMount",value:function(){this.mounted=!0,window.addEventListener("resize",this.onWindowResize),this.onWindowResize()}},{key:"componentWillUnmount",value:function(){this.mounted=!1,window.removeEventListener("resize",this.onWindowResize)}},{key:"render",value:function(){var t=this.props,A=t.measureBeforeMount,r=function(e,t){if(null==e)return{};var A,n,r=function(e,t){if(null==e)return{};var A,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||(r[A]=e[A]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||Object.prototype.propertyIsEnumerable.call(e,A)&&(r[A]=e[A])}return r}(t,["measureBeforeMount"]);return A&&!this.mounted?n.createElement("div",{className:this.props.className,style:this.props.style}):n.createElement(e,g({},r,this.state))}}]),r}(n.Component),f(t,"defaultProps",{measureBeforeMount:!1}),f(t,"propTypes",{measureBeforeMount:r.default.bool}),A};var n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==s(e)&&"function"!==typeof e)return{default:e};var t=a();if(t&&t.has(e))return t.get(e);var A={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var i=n?Object.getOwnPropertyDescriptor(e,r):null;i&&(i.get||i.set)?Object.defineProperty(A,r,i):A[r]=e[r]}A.default=e,t&&t.set(e,A);return A}(A(0)),r=o(A(13)),i=o(A(39));function o(e){return e&&e.__esModule?e:{default:e}}function a(){if("function"!==typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function s(e){return(s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(){return(g=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e}).apply(this,arguments)}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function I(e,t){return!t||"object"!==s(t)&&"function"!==typeof t?C(e):t}function C(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}},function(e,t,A){var n=A(814),r=A(559),i=A(815);e.exports=function(e){return function(t,A,o){return o&&"number"!=typeof o&&r(t,A,o)&&(A=o=void 0),t=i(t),void 0===A?(A=t,t=0):A=i(A),o=void 0===o?t<A?1:-1:i(o),n(t,A,o,e)}}},function(e,t){var A=Math.ceil,n=Math.max;e.exports=function(e,t,r,i){for(var o=-1,a=n(A((t-e)/(r||1)),0),s=Array(a);a--;)s[i?a:++o]=e,e+=r;return s}},function(e,t,A){var n=A(460);e.exports=function(e){return e?(e=n(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e===e?e:0:0===e?e:0}},function(e,t,A){"use strict";var n=A(461),r=A(250),i=A(462),o=A(272),a=A(561),s=r.ucs2length,g=A(146),c=i.Validation;function u(e,t,A){var n=I.call(this,e,t,A);return n>=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:A},{index:n,compiling:!1})}function l(e,t,A){var n=I.call(this,e,t,A);n>=0&&this._compilations.splice(n,1)}function I(e,t,A){for(var n=0;n<this._compilations.length;n++){var r=this._compilations[n];if(r.schema==e&&r.root==t&&r.baseId==A)return n}return-1}function C(e,t){return"var pattern"+e+" = new RegExp("+r.toQuotedString(t[e])+");"}function h(e){return"var default"+e+" = defaults["+e+"];"}function f(e,t){return void 0===t[e]?"":"var refVal"+e+" = refVal["+e+"];"}function d(e){return"var customRule"+e+" = customRules["+e+"];"}function B(e,t){if(!e.length)return"";for(var A="",n=0;n<e.length;n++)A+=t(n,e);return A}e.exports=function e(t,A,I,p){var E=this,Q=this._opts,y=[void 0],v={},m=[],b={},w=[],S={},F=[];A=A||{schema:t,refVal:y,refs:v};var R=u.call(this,t,A,p),D=this._compilations[R.index];if(R.compiling)return D.callValidate=function e(){var t=D.validate,A=t.apply(this,arguments);return e.errors=t.errors,A};var G=this._formats,k=this.RULES;try{var x=U(t,A,I,p);D.validate=x;var N=D.callValidate;return N&&(N.schema=x.schema,N.errors=null,N.refs=x.refs,N.refVal=x.refVal,N.root=x.root,N.$async=x.$async,Q.sourceCode&&(N.source=x.source)),x}finally{l.call(this,t,A,p)}function U(t,o,u,l){var I=!o||o&&o.schema==t;if(o.schema!=A.schema)return e.call(E,t,o,u,l);var p,b=!0===t.$async,S=a({isTop:!0,schema:t,isRoot:I,baseId:l,root:o,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:i.MissingRef,RULES:k,validate:a,util:r,resolve:n,resolveRef:_,usePattern:L,useDefault:T,useCustomRule:Z,opts:Q,formats:G,logger:E.logger,self:E});S=B(y,f)+B(m,C)+B(w,h)+B(F,d)+S,Q.processCode&&(S=Q.processCode(S));try{p=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",S)(E,k,G,A,y,w,F,g,s,c),y[0]=p}catch(R){throw E.logger.error("Error compiling schema, function code:",S),R}return p.schema=t,p.errors=null,p.refs=v,p.refVal=y,p.root=I?p:o,b&&(p.$async=!0),!0===Q.sourceCode&&(p.source={code:S,patterns:m,defaults:w}),p}function _(t,r,i){r=n.url(t,r);var o,a,s=v[r];if(void 0!==s)return O(o=y[s],a="refVal["+s+"]");if(!i&&A.refs){var g=A.refs[r];if(void 0!==g)return O(o=A.refVal[g],a=M(r,o))}a=M(r);var c=n.call(E,U,A,r);if(void 0===c){var u=I&&I[r];u&&(c=n.inlineRef(u,Q.inlineRefs)?u:e.call(E,u,A,I,t))}if(void 0!==c)return function(e,t){var A=v[e];y[A]=t}(r,c),O(c,a);!function(e){delete v[e]}(r)}function M(e,t){var A=y.length;return y[A]=t,v[e]=A,"refVal"+A}function O(e,t){return"object"==typeof e||"boolean"==typeof e?{code:t,schema:e,inline:!0}:{code:t,$async:e&&!!e.$async}}function L(e){var t=b[e];return void 0===t&&(t=b[e]=m.length,m[t]=e),"pattern"+t}function T(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return r.toQuotedString(e);case"object":if(null===e)return"null";var t=o(e),A=S[t];return void 0===A&&(A=S[t]=w.length,w[A]=e),"default"+A}}function Z(e,t,A,n){if(!1!==E._opts.validateSchema){var r=e.definition.dependencies;if(r&&!r.every((function(e){return Object.prototype.hasOwnProperty.call(A,e)})))throw new Error("parent schema must have all required keywords: "+r.join(","));var i=e.definition.validateSchema;if(i)if(!i(t)){var o="keyword schema is invalid: "+E.errorsText(i.errors);if("log"!=E._opts.validateSchema)throw new Error(o);E.logger.error(o)}}var a,s=e.definition.compile,g=e.definition.inline,c=e.definition.macro;if(s)a=s.call(E,t,A,n);else if(c)a=c.call(E,t,A,n),!1!==Q.validateSchema&&E.validateSchema(a,!0);else if(g)a=g.call(E,n,e.keyword,t,A);else if(!(a=e.definition.validate))return;if(void 0===a)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var u=F.length;return F[u]=a,{code:"customRule"+u,validate:a}}}},function(e,t,A){!function(e){"use strict";function t(){for(var e=arguments.length,t=Array(e),A=0;A<e;A++)t[A]=arguments[A];if(t.length>1){t[0]=t[0].slice(0,-1);for(var n=t.length-1,r=1;r<n;++r)t[r]=t[r].slice(1,-1);return t[n]=t[n].slice(1),t.join("")}return t[0]}function A(e){return"(?:"+e+")"}function n(e){return void 0===e?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function r(e){return e.toUpperCase()}function i(e){var n=t("[0-9]","[A-Fa-f]"),r=A(A("%[EFef]"+n+"%"+n+n+"%"+n+n)+"|"+A("%[89A-Fa-f]"+n+"%"+n+n)+"|"+A("%"+n+n)),i="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",o=t("[\\:\\/\\?\\#\\[\\]\\@]",i),a=e?"[\\uE000-\\uF8FF]":"[]",s=t("[A-Za-z]","[0-9]","[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),g=A("[A-Za-z]"+t("[A-Za-z]","[0-9]","[\\+\\-\\.]")+"*"),c=A(A(r+"|"+t(s,i,"[\\:]"))+"*"),u=(A(A("25[0-5]")+"|"+A("2[0-4][0-9]")+"|"+A("1[0-9][0-9]")+"|"+A("[1-9][0-9]")+"|[0-9]"),A(A("25[0-5]")+"|"+A("2[0-4][0-9]")+"|"+A("1[0-9][0-9]")+"|"+A("0?[1-9][0-9]")+"|0?0?[0-9]")),l=A(u+"\\."+u+"\\."+u+"\\."+u),I=A(n+"{1,4}"),C=A(A(I+"\\:"+I)+"|"+l),h=A(A(I+"\\:")+"{6}"+C),f=A("\\:\\:"+A(I+"\\:")+"{5}"+C),d=A(A(I)+"?\\:\\:"+A(I+"\\:")+"{4}"+C),B=A(A(A(I+"\\:")+"{0,1}"+I)+"?\\:\\:"+A(I+"\\:")+"{3}"+C),p=A(A(A(I+"\\:")+"{0,2}"+I)+"?\\:\\:"+A(I+"\\:")+"{2}"+C),E=A(A(A(I+"\\:")+"{0,3}"+I)+"?\\:\\:"+I+"\\:"+C),Q=A(A(A(I+"\\:")+"{0,4}"+I)+"?\\:\\:"+C),y=A(A(A(I+"\\:")+"{0,5}"+I)+"?\\:\\:"+I),v=A(A(A(I+"\\:")+"{0,6}"+I)+"?\\:\\:"),m=A([h,f,d,B,p,E,Q,y,v].join("|")),b=A(A(s+"|"+r)+"+"),w=(A(m+"\\%25"+b),A(m+A("\\%25|\\%(?!"+n+"{2})")+b)),S=A("[vV]"+n+"+\\."+t(s,i,"[\\:]")+"+"),F=A("\\["+A(w+"|"+m+"|"+S)+"\\]"),R=A(A(r+"|"+t(s,i))+"*"),D=A(F+"|"+l+"(?!"+R+")|"+R),G=A("[0-9]*"),k=A(A(c+"@")+"?"+D+A("\\:"+G)+"?"),x=A(r+"|"+t(s,i,"[\\:\\@]")),N=A(x+"*"),U=A(x+"+"),_=A(A(r+"|"+t(s,i,"[\\@]"))+"+"),M=A(A("\\/"+N)+"*"),O=A("\\/"+A(U+M)+"?"),L=A(_+M),T=A(U+M),Z="(?!"+x+")",H=(A(M+"|"+O+"|"+L+"|"+T+"|"+Z),A(A(x+"|"+t("[\\/\\?]",a))+"*")),Y=A(A(x+"|[\\/\\?]")+"*"),J=A(A("\\/\\/"+k+M)+"|"+O+"|"+T+"|"+Z),j=A(g+"\\:"+J+A("\\?"+H)+"?"+A("\\#"+Y)+"?"),P=A(A("\\/\\/"+k+M)+"|"+O+"|"+L+"|"+Z),V=A(P+A("\\?"+H)+"?"+A("\\#"+Y)+"?");return A(j+"|"+V),A(g+"\\:"+J+A("\\?"+H)+"?"),A(A("\\/\\/("+A("("+c+")@")+"?("+D+")"+A("\\:("+G+")")+"?)")+"?("+M+"|"+O+"|"+T+"|"+Z+")"),A("\\?("+H+")"),A("\\#("+Y+")"),A(A("\\/\\/("+A("("+c+")@")+"?("+D+")"+A("\\:("+G+")")+"?)")+"?("+M+"|"+O+"|"+L+"|"+Z+")"),A("\\?("+H+")"),A("\\#("+Y+")"),A(A("\\/\\/("+A("("+c+")@")+"?("+D+")"+A("\\:("+G+")")+"?)")+"?("+M+"|"+O+"|"+T+"|"+Z+")"),A("\\?("+H+")"),A("\\#("+Y+")"),A("("+c+")@"),A("\\:("+G+")"),{NOT_SCHEME:new RegExp(t("[^]","[A-Za-z]","[0-9]","[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(t("[^\\%\\:]",s,i),"g"),NOT_HOST:new RegExp(t("[^\\%\\[\\]\\:]",s,i),"g"),NOT_PATH:new RegExp(t("[^\\%\\/\\:\\@]",s,i),"g"),NOT_PATH_NOSCHEME:new RegExp(t("[^\\%\\/\\@]",s,i),"g"),NOT_QUERY:new RegExp(t("[^\\%]",s,i,"[\\:\\@\\/\\?]",a),"g"),NOT_FRAGMENT:new RegExp(t("[^\\%]",s,i,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(t("[^]",s,i),"g"),UNRESERVED:new RegExp(s,"g"),OTHER_CHARS:new RegExp(t("[^\\%]",s,o),"g"),PCT_ENCODED:new RegExp(r,"g"),IPV4ADDRESS:new RegExp("^("+l+")$"),IPV6ADDRESS:new RegExp("^\\[?("+m+")"+A(A("\\%25|\\%(?!"+n+"{2})")+"("+b+")")+"?\\]?$")}}var o=i(!1),a=i(!0),s=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{!n&&a.return&&a.return()}finally{if(r)throw i}}return A}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},g=2147483647,c=/^xn--/,u=/[^\0-\x7E]/,l=/[\x2E\u3002\uFF0E\uFF61]/g,I={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},C=Math.floor,h=String.fromCharCode;function f(e){throw new RangeError(I[e])}function d(e,t){var A=e.split("@"),n="";A.length>1&&(n=A[0]+"@",e=A[1]);var r=function(e,t){for(var A=[],n=e.length;n--;)A[n]=t(e[n]);return A}((e=e.replace(l,".")).split("."),t).join(".");return n+r}function B(e){for(var t=[],A=0,n=e.length;A<n;){var r=e.charCodeAt(A++);if(r>=55296&&r<=56319&&A<n){var i=e.charCodeAt(A++);56320==(64512&i)?t.push(((1023&r)<<10)+(1023&i)+65536):(t.push(r),A--)}else t.push(r)}return t}var p=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},E=function(e,t,A){var n=0;for(e=A?C(e/700):e>>1,e+=C(e/t);e>455;n+=36)e=C(e/35);return C(n+36*e/(e+38))},Q=function(e){var t,A=[],n=e.length,r=0,i=128,o=72,a=e.lastIndexOf("-");a<0&&(a=0);for(var s=0;s<a;++s)e.charCodeAt(s)>=128&&f("not-basic"),A.push(e.charCodeAt(s));for(var c=a>0?a+1:0;c<n;){for(var u=r,l=1,I=36;;I+=36){c>=n&&f("invalid-input");var h=(t=e.charCodeAt(c++))-48<10?t-22:t-65<26?t-65:t-97<26?t-97:36;(h>=36||h>C((g-r)/l))&&f("overflow"),r+=h*l;var d=I<=o?1:I>=o+26?26:I-o;if(h<d)break;var B=36-d;l>C(g/B)&&f("overflow"),l*=B}var p=A.length+1;o=E(r-u,p,0==u),C(r/p)>g-i&&f("overflow"),i+=C(r/p),r%=p,A.splice(r++,0,i)}return String.fromCodePoint.apply(String,A)},y=function(e){var t=[],A=(e=B(e)).length,n=128,r=0,i=72,o=!0,a=!1,s=void 0;try{for(var c,u=e[Symbol.iterator]();!(o=(c=u.next()).done);o=!0){var l=c.value;l<128&&t.push(h(l))}}catch(T){a=!0,s=T}finally{try{!o&&u.return&&u.return()}finally{if(a)throw s}}var I=t.length,d=I;for(I&&t.push("-");d<A;){var Q=g,y=!0,v=!1,m=void 0;try{for(var b,w=e[Symbol.iterator]();!(y=(b=w.next()).done);y=!0){var S=b.value;S>=n&&S<Q&&(Q=S)}}catch(T){v=!0,m=T}finally{try{!y&&w.return&&w.return()}finally{if(v)throw m}}var F=d+1;Q-n>C((g-r)/F)&&f("overflow"),r+=(Q-n)*F,n=Q;var R=!0,D=!1,G=void 0;try{for(var k,x=e[Symbol.iterator]();!(R=(k=x.next()).done);R=!0){var N=k.value;if(N<n&&++r>g&&f("overflow"),N==n){for(var U=r,_=36;;_+=36){var M=_<=i?1:_>=i+26?26:_-i;if(U<M)break;var O=U-M,L=36-M;t.push(h(p(M+O%L,0))),U=C(O/L)}t.push(h(p(U,0))),i=E(r,F,d==I),r=0,++d}}}catch(T){D=!0,G=T}finally{try{!R&&x.return&&x.return()}finally{if(D)throw G}}++r,++n}return t.join("")},v=function(e){return d(e,(function(e){return u.test(e)?"xn--"+y(e):e}))},m=function(e){return d(e,(function(e){return c.test(e)?Q(e.slice(4).toLowerCase()):e}))},b={};function w(e){var t=e.charCodeAt(0);return t<16?"%0"+t.toString(16).toUpperCase():t<128?"%"+t.toString(16).toUpperCase():t<2048?"%"+(t>>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase()}function S(e){for(var t="",A=0,n=e.length;A<n;){var r=parseInt(e.substr(A+1,2),16);if(r<128)t+=String.fromCharCode(r),A+=3;else if(r>=194&&r<224){if(n-A>=6){var i=parseInt(e.substr(A+4,2),16);t+=String.fromCharCode((31&r)<<6|63&i)}else t+=e.substr(A,6);A+=6}else if(r>=224){if(n-A>=9){var o=parseInt(e.substr(A+4,2),16),a=parseInt(e.substr(A+7,2),16);t+=String.fromCharCode((15&r)<<12|(63&o)<<6|63&a)}else t+=e.substr(A,9);A+=9}else t+=e.substr(A,3),A+=3}return t}function F(e,t){function A(e){var A=S(e);return A.match(t.UNRESERVED)?A:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,A).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,A).replace(t.NOT_USERINFO,w).replace(t.PCT_ENCODED,r)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,A).toLowerCase().replace(t.NOT_HOST,w).replace(t.PCT_ENCODED,r)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,A).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,w).replace(t.PCT_ENCODED,r)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,A).replace(t.NOT_QUERY,w).replace(t.PCT_ENCODED,r)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,A).replace(t.NOT_FRAGMENT,w).replace(t.PCT_ENCODED,r)),e}function R(e){return e.replace(/^0*(.*)/,"$1")||"0"}function D(e,t){var A=e.match(t.IPV4ADDRESS)||[],n=s(A,2)[1];return n?n.split(".").map(R).join("."):e}function G(e,t){var A=e.match(t.IPV6ADDRESS)||[],n=s(A,3),r=n[1],i=n[2];if(r){for(var o=r.toLowerCase().split("::").reverse(),a=s(o,2),g=a[0],c=a[1],u=c?c.split(":").map(R):[],l=g.split(":").map(R),I=t.IPV4ADDRESS.test(l[l.length-1]),C=I?7:8,h=l.length-C,f=Array(C),d=0;d<C;++d)f[d]=u[d]||l[h+d]||"";I&&(f[C-1]=D(f[C-1],t));var B=f.reduce((function(e,t,A){if(!t||"0"===t){var n=e[e.length-1];n&&n.index+n.length===A?n.length++:e.push({index:A,length:1})}return e}),[]).sort((function(e,t){return t.length-e.length}))[0],p=void 0;if(B&&B.length>1){var E=f.slice(0,B.index),Q=f.slice(B.index+B.length);p=E.join(":")+"::"+Q.join(":")}else p=f.join(":");return i&&(p+="%"+i),p}return e}var k=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,x=void 0==="".match(/(){0}/)[1];function N(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A={},n=!1!==t.iri?a:o;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var r=e.match(k);if(r){x?(A.scheme=r[1],A.userinfo=r[3],A.host=r[4],A.port=parseInt(r[5],10),A.path=r[6]||"",A.query=r[7],A.fragment=r[8],isNaN(A.port)&&(A.port=r[5])):(A.scheme=r[1]||void 0,A.userinfo=-1!==e.indexOf("@")?r[3]:void 0,A.host=-1!==e.indexOf("//")?r[4]:void 0,A.port=parseInt(r[5],10),A.path=r[6]||"",A.query=-1!==e.indexOf("?")?r[7]:void 0,A.fragment=-1!==e.indexOf("#")?r[8]:void 0,isNaN(A.port)&&(A.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?r[4]:void 0)),A.host&&(A.host=G(D(A.host,n),n)),void 0!==A.scheme||void 0!==A.userinfo||void 0!==A.host||void 0!==A.port||A.path||void 0!==A.query?void 0===A.scheme?A.reference="relative":void 0===A.fragment?A.reference="absolute":A.reference="uri":A.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==A.reference&&(A.error=A.error||"URI is not a "+t.reference+" reference.");var i=b[(t.scheme||A.scheme||"").toLowerCase()];if(t.unicodeSupport||i&&i.unicodeSupport)F(A,n);else{if(A.host&&(t.domainHost||i&&i.domainHost))try{A.host=v(A.host.replace(n.PCT_ENCODED,S).toLowerCase())}catch(s){A.error=A.error||"Host's domain name can not be converted to ASCII via punycode: "+s}F(A,o)}i&&i.parse&&i.parse(A,t)}else A.error=A.error||"URI can not be parsed.";return A}function U(e,t){var A=!1!==t.iri?a:o,n=[];return void 0!==e.userinfo&&(n.push(e.userinfo),n.push("@")),void 0!==e.host&&n.push(G(D(String(e.host),A),A).replace(A.IPV6ADDRESS,(function(e,t,A){return"["+t+(A?"%25"+A:"")+"]"}))),"number"===typeof e.port&&(n.push(":"),n.push(e.port.toString(10))),n.length?n.join(""):void 0}var _=/^\.\.?\//,M=/^\/\.(\/|$)/,O=/^\/\.\.(\/|$)/,L=/^\/?(?:.|\n)*?(?=\/|$)/;function T(e){for(var t=[];e.length;)if(e.match(_))e=e.replace(_,"");else if(e.match(M))e=e.replace(M,"/");else if(e.match(O))e=e.replace(O,"/"),t.pop();else if("."===e||".."===e)e="";else{var A=e.match(L);if(!A)throw new Error("Unexpected dot segment condition");var n=A[0];e=e.slice(n.length),t.push(n)}return t.join("")}function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.iri?a:o,n=[],r=b[(t.scheme||e.scheme||"").toLowerCase()];if(r&&r.serialize&&r.serialize(e,t),e.host)if(A.IPV6ADDRESS.test(e.host));else if(t.domainHost||r&&r.domainHost)try{e.host=t.iri?m(e.host):v(e.host.replace(A.PCT_ENCODED,S).toLowerCase())}catch(g){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+g}F(e,A),"suffix"!==t.reference&&e.scheme&&(n.push(e.scheme),n.push(":"));var i=U(e,t);if(void 0!==i&&("suffix"!==t.reference&&n.push("//"),n.push(i),e.path&&"/"!==e.path.charAt(0)&&n.push("/")),void 0!==e.path){var s=e.path;t.absolutePath||r&&r.absolutePath||(s=T(s)),void 0===i&&(s=s.replace(/^\/\//,"/%2F")),n.push(s)}return void 0!==e.query&&(n.push("?"),n.push(e.query)),void 0!==e.fragment&&(n.push("#"),n.push(e.fragment)),n.join("")}function H(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments[3],r={};return n||(e=N(Z(e,A),A),t=N(Z(t,A),A)),!(A=A||{}).tolerant&&t.scheme?(r.scheme=t.scheme,r.userinfo=t.userinfo,r.host=t.host,r.port=t.port,r.path=T(t.path||""),r.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(r.userinfo=t.userinfo,r.host=t.host,r.port=t.port,r.path=T(t.path||""),r.query=t.query):(t.path?("/"===t.path.charAt(0)?r.path=T(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?r.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:r.path=t.path:r.path="/"+t.path,r.path=T(r.path)),r.query=t.query):(r.path=e.path,void 0!==t.query?r.query=t.query:r.query=e.query),r.userinfo=e.userinfo,r.host=e.host,r.port=e.port),r.scheme=e.scheme),r.fragment=t.fragment,r}function Y(e,t){return e&&e.toString().replace(t&&t.iri?a.PCT_ENCODED:o.PCT_ENCODED,S)}var J={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){return e.port!==("https"!==String(e.scheme).toLowerCase()?80:443)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},j={scheme:"https",domainHost:J.domainHost,parse:J.parse,serialize:J.serialize},P={},V="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",K="[0-9A-Fa-f]",W=A(A("%[EFef]"+K+"%"+K+K+"%"+K+K)+"|"+A("%[89A-Fa-f]"+K+"%"+K+K)+"|"+A("%"+K+K)),X=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),q=new RegExp(V,"g"),z=new RegExp(W,"g"),$=new RegExp(t("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',X),"g"),ee=new RegExp(t("[^]",V,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),te=ee;function Ae(e){var t=S(e);return t.match(q)?t:e}var ne={scheme:"mailto",parse:function(e,t){var A=e,n=A.to=A.path?A.path.split(","):[];if(A.path=void 0,A.query){for(var r=!1,i={},o=A.query.split("&"),a=0,s=o.length;a<s;++a){var g=o[a].split("=");switch(g[0]){case"to":for(var c=g[1].split(","),u=0,l=c.length;u<l;++u)n.push(c[u]);break;case"subject":A.subject=Y(g[1],t);break;case"body":A.body=Y(g[1],t);break;default:r=!0,i[Y(g[0],t)]=Y(g[1],t)}}r&&(A.headers=i)}A.query=void 0;for(var I=0,C=n.length;I<C;++I){var h=n[I].split("@");if(h[0]=Y(h[0]),t.unicodeSupport)h[1]=Y(h[1],t).toLowerCase();else try{h[1]=v(Y(h[1],t).toLowerCase())}catch(f){A.error=A.error||"Email address's domain name can not be converted to ASCII via punycode: "+f}n[I]=h.join("@")}return A},serialize:function(e,t){var A,n=e,i=void 0!==(A=e.to)&&null!==A?A instanceof Array?A:"number"!==typeof A.length||A.split||A.setInterval||A.call?[A]:Array.prototype.slice.call(A):[];if(i){for(var o=0,a=i.length;o<a;++o){var s=String(i[o]),g=s.lastIndexOf("@"),c=s.slice(0,g).replace(z,Ae).replace(z,r).replace($,w),u=s.slice(g+1);try{u=t.iri?m(u):v(Y(u,t).toLowerCase())}catch(h){n.error=n.error||"Email address's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+h}i[o]=c+"@"+u}n.path=i.join(",")}var l=e.headers=e.headers||{};e.subject&&(l.subject=e.subject),e.body&&(l.body=e.body);var I=[];for(var C in l)l[C]!==P[C]&&I.push(C.replace(z,Ae).replace(z,r).replace(ee,w)+"="+l[C].replace(z,Ae).replace(z,r).replace(te,w));return I.length&&(n.query=I.join("&")),n}},re=/^([^\:]+)\:(.*)/,ie={scheme:"urn",parse:function(e,t){var A=e.path&&e.path.match(re),n=e;if(A){var r=t.scheme||n.scheme||"urn",i=A[1].toLowerCase(),o=A[2],a=r+":"+(t.nid||i),s=b[a];n.nid=i,n.nss=o,n.path=void 0,s&&(n=s.parse(n,t))}else n.error=n.error||"URN can not be parsed.";return n},serialize:function(e,t){var A=t.scheme||e.scheme||"urn",n=e.nid,r=A+":"+(t.nid||n),i=b[r];i&&(e=i.serialize(e,t));var o=e,a=e.nss;return o.path=(n||t.nid)+":"+a,o}},oe=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,ae={scheme:"urn:uuid",parse:function(e,t){var A=e;return A.uuid=A.nss,A.nss=void 0,t.tolerant||A.uuid&&A.uuid.match(oe)||(A.error=A.error||"UUID is not valid."),A},serialize:function(e,t){var A=e;return A.nss=(e.uuid||"").toLowerCase(),A}};b[J.scheme]=J,b[j.scheme]=j,b[ne.scheme]=ne,b[ie.scheme]=ie,b[ae.scheme]=ae,e.SCHEMES=b,e.pctEncChar=w,e.pctDecChars=S,e.parse=N,e.removeDotSegments=T,e.serialize=Z,e.resolveComponents=H,e.resolve=function(e,t,A){var n=function(e,t){var A=e;if(t)for(var n in t)A[n]=t[n];return A}({scheme:"null"},A);return Z(H(N(e,n),N(t,n),n,!0),n)},e.normalize=function(e,t){return"string"===typeof e?e=Z(N(e,t),t):"object"===n(e)&&(e=N(Z(e,t),t)),e},e.equal=function(e,t,A){return"string"===typeof e?e=Z(N(e,A),A):"object"===n(e)&&(e=Z(e,A)),"string"===typeof t?t=Z(N(t,A),A):"object"===n(t)&&(t=Z(t,A)),e===t},e.escapeComponent=function(e,t){return e&&e.toString().replace(t&&t.iri?a.ESCAPE:o.ESCAPE,w)},e.unescapeComponent=Y,Object.defineProperty(e,"__esModule",{value:!0})}(t)},function(e,t,A){"use strict";e.exports=function(e){for(var t,A=0,n=e.length,r=0;r<n;)A++,(t=e.charCodeAt(r++))>=55296&&t<=56319&&r<n&&56320==(64512&(t=e.charCodeAt(r)))&&r++;return A}},function(e,t,A){"use strict";var n=e.exports=function(e,t,A){"function"==typeof t&&(A=t,t={}),function e(t,A,r,i,o,a,s,g,c,u){if(i&&"object"==typeof i&&!Array.isArray(i)){for(var l in A(i,o,a,s,g,c,u),i){var I=i[l];if(Array.isArray(I)){if(l in n.arrayKeywords)for(var C=0;C<I.length;C++)e(t,A,r,I[C],o+"/"+l+"/"+C,a,o,l,i,C)}else if(l in n.propsKeywords){if(I&&"object"==typeof I)for(var h in I)e(t,A,r,I[h],o+"/"+l+"/"+h.replace(/~/g,"~0").replace(/\//g,"~1"),a,o,l,i,h)}else(l in n.keywords||t.allKeys&&!(l in n.skipKeywords))&&e(t,A,r,I,o+"/"+l,a,o,l,i)}r(i,o,a,s,g,c,u)}}(t,"function"==typeof(A=t.cb||A)?A:A.pre||function(){},A.post||function(){},e,"",e)};n.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},n.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},n.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},n.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},function(e,t,A){"use strict";var n=e.exports=function(){this._cache={}};n.prototype.put=function(e,t){this._cache[e]=t},n.prototype.get=function(e){return this._cache[e]},n.prototype.del=function(e){delete this._cache[e]},n.prototype.clear=function(){this._cache={}}},function(e,t,A){"use strict";var n=A(250),r=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31],o=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,a=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,s=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,g=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,c=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,u=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,l=/^(?:\/(?:[^~/]|~0|~1)*)*$/,I=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,C=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function h(e){return e="full"==e?"full":"fast",n.copy(h[e])}function f(e){var t=e.match(r);if(!t)return!1;var A=+t[1],n=+t[2],o=+t[3];return n>=1&&n<=12&&o>=1&&o<=(2==n&&function(e){return e%4===0&&(e%100!==0||e%400===0)}(A)?29:i[n])}function d(e,t){var A=e.match(o);if(!A)return!1;var n=A[1],r=A[2],i=A[3],a=A[5];return(n<=23&&r<=59&&i<=59||23==n&&59==r&&60==i)&&(!t||a)}e.exports=h,h.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":g,url:c,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Q,uuid:u,"json-pointer":l,"json-pointer-uri-fragment":I,"relative-json-pointer":C},h.full={date:f,time:d,"date-time":function(e){var t=e.split(B);return 2==t.length&&f(t[0])&&d(t[1],!0)},uri:function(e){return p.test(e)&&s.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":g,url:c,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Q,uuid:u,"json-pointer":l,"json-pointer-uri-fragment":I,"relative-json-pointer":C};var B=/t|\s/i;var p=/\/|:/;var E=/[^\\]\\Z/;function Q(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(t){return!1}}},function(e,t,A){"use strict";var n=A(823),r=A(250).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],t=["type","$comment"];return e.all=r(t),e.types=r(["number","integer","string","array","object","boolean","null"]),e.forEach((function(A){A.rules=A.rules.map((function(A){var r;if("object"==typeof A){var i=Object.keys(A)[0];r=A[i],A=i,r.forEach((function(A){t.push(A),e.all[A]=!0}))}return t.push(A),e.all[A]={keyword:A,code:n[A],implements:r}})),e.all.$comment={keyword:"$comment",code:n.$comment},A.type&&(e.types[A.type]=A)})),e.keywords=r(t.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),e.custom={},e}},function(e,t,A){"use strict";e.exports={$ref:A(824),allOf:A(825),anyOf:A(826),$comment:A(827),const:A(828),contains:A(829),dependencies:A(830),enum:A(831),format:A(832),if:A(833),items:A(834),maximum:A(562),minimum:A(562),maxItems:A(563),minItems:A(563),maxLength:A(564),minLength:A(564),maxProperties:A(565),minProperties:A(565),multipleOf:A(835),not:A(836),oneOf:A(837),pattern:A(838),properties:A(839),propertyNames:A(840),required:A(841),uniqueItems:A(842),validate:A(561)}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n,r,i=" ",o=e.level,a=e.dataLevel,s=e.schema[t],g=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(a||""),l="valid"+o;if("#"==s||"#/"==s)e.isRoot?(n=e.async,r="validate"):(n=!0===e.root.schema.$async,r="root.refVal[0]");else{var I=e.resolveRef(e.baseId,s,e.isRoot);if(void 0===I){var C=e.MissingRefError.message(e.baseId,s);if("fail"==e.opts.missingRefs){e.logger.error(C),(B=B||[]).push(i),i="",!1!==e.createErrors?(i+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(g)+" , params: { ref: '"+e.util.escapeQuotes(s)+"' } ",!1!==e.opts.messages&&(i+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(s)+"' "),e.opts.verbose&&(i+=" , schema: "+e.util.toQuotedString(s)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),i+=" } "):i+=" {} ";var h=i;i=B.pop(),!e.compositeRule&&c?e.async?i+=" throw new ValidationError(["+h+"]); ":i+=" validate.errors = ["+h+"]; return false; ":i+=" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(i+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,s,C);e.logger.warn(C),c&&(i+=" if (true) { ")}}else if(I.inline){var f=e.util.copy(e);f.level++;var d="valid"+f.level;f.schema=I.schema,f.schemaPath="",f.errSchemaPath=s,i+=" "+e.validate(f).replace(/validate\.schema/g,I.code)+" ",c&&(i+=" if ("+d+") { ")}else n=!0===I.$async||e.async&&!1!==I.$async,r=I.code}if(r){var B;(B=B||[]).push(i),i="",e.opts.passContext?i+=" "+r+".call(this, ":i+=" "+r+"( ",i+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(i+=" + "+e.errorPath);var p=i+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";if(i=B.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");c&&(i+=" var "+l+"; "),i+=" try { await "+p+"; ",c&&(i+=" "+l+" = true; "),i+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",c&&(i+=" "+l+" = false; "),i+=" } ",c&&(i+=" if ("+l+") { ")}else i+=" if (!"+p+") { if (vErrors === null) vErrors = "+r+".errors; else vErrors = vErrors.concat("+r+".errors); errors = vErrors.length; } ",c&&(i+=" else { ")}return i}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.schema[t],i=e.schemaPath+e.util.getProperty(t),o=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,s=e.util.copy(e),g="";s.level++;var c="valid"+s.level,u=s.baseId,l=!0,I=r;if(I)for(var C,h=-1,f=I.length-1;h<f;)C=I[h+=1],(e.opts.strictKeywords?"object"==typeof C&&Object.keys(C).length>0:e.util.schemaHasRules(C,e.RULES.all))&&(l=!1,s.schema=C,s.schemaPath=i+"["+h+"]",s.errSchemaPath=o+"/"+h,n+=" "+e.validate(s)+" ",s.baseId=u,a&&(n+=" if ("+c+") { ",g+="}"));return a&&(n+=l?" if (true) { ":" "+g.slice(0,-1)+" "),n=e.util.cleanUpCode(n)}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="valid"+r,l="errs__"+r,I=e.util.copy(e),C="";I.level++;var h="valid"+I.level;if(o.every((function(t){return e.opts.strictKeywords?"object"==typeof t&&Object.keys(t).length>0:e.util.schemaHasRules(t,e.RULES.all)}))){var f=I.baseId;n+=" var "+l+" = errors; var "+u+" = false; ";var d=e.compositeRule;e.compositeRule=I.compositeRule=!0;var B=o;if(B)for(var p,E=-1,Q=B.length-1;E<Q;)p=B[E+=1],I.schema=p,I.schemaPath=a+"["+E+"]",I.errSchemaPath=s+"/"+E,n+=" "+e.validate(I)+" ",I.baseId=f,n+=" "+u+" = "+u+" || "+h+"; if (!"+u+") { ",C+="}";e.compositeRule=I.compositeRule=d,n+=" "+C+" if (!"+u+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should match some schema in anyOf' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&g&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+=" } else { errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } "),n=e.util.cleanUpCode(n)}else g&&(n+=" if (true) { ");return n}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.schema[t],i=e.errSchemaPath+"/"+t,o=(e.opts.allErrors,e.util.toQuotedString(r));return!0===e.opts.$comment?n+=" console.log("+o+");":"function"==typeof e.opts.$comment&&(n+=" self._opts.$comment("+o+", "+e.util.toQuotedString(i)+", validate.root.schema);"),n}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="valid"+r,l=e.opts.$data&&o&&o.$data;l&&(n+=" var schema"+r+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; "),l||(n+=" var schema"+r+" = validate.schema"+a+";"),n+="var "+u+" = equal("+c+", schema"+r+"); if (!"+u+") { ";var I=I||[];I.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { allowedValue: schema"+r+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be equal to constant' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ";var C=n;return n=I.pop(),!e.compositeRule&&g?e.async?n+=" throw new ValidationError(["+C+"]); ":n+=" validate.errors = ["+C+"]; return false; ":n+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",g&&(n+=" else { "),n}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="valid"+r,l="errs__"+r,I=e.util.copy(e);I.level++;var C="valid"+I.level,h="i"+r,f=I.dataLevel=e.dataLevel+1,d="data"+f,B=e.baseId,p=e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all);if(n+="var "+l+" = errors;var "+u+";",p){var E=e.compositeRule;e.compositeRule=I.compositeRule=!0,I.schema=o,I.schemaPath=a,I.errSchemaPath=s,n+=" var "+C+" = false; for (var "+h+" = 0; "+h+" < "+c+".length; "+h+"++) { ",I.errorPath=e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers,!0);var Q=c+"["+h+"]";I.dataPathArr[f]=h;var y=e.validate(I);I.baseId=B,e.util.varOccurences(y,d)<2?n+=" "+e.util.varReplace(y,d,Q)+" ":n+=" var "+d+" = "+Q+"; "+y+" ",n+=" if ("+C+") break; } ",e.compositeRule=I.compositeRule=E,n+=" if (!"+C+") {"}else n+=" if ("+c+".length == 0) {";var v=v||[];v.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should contain a valid item' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ";var m=n;return n=v.pop(),!e.compositeRule&&g?e.async?n+=" throw new ValidationError(["+m+"]); ":n+=" validate.errors = ["+m+"]; return false; ":n+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { ",p&&(n+=" errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } "),e.opts.allErrors&&(n+=" } "),n=e.util.cleanUpCode(n)}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="errs__"+r,l=e.util.copy(e),I="";l.level++;var C="valid"+l.level,h={},f={},d=e.opts.ownProperties;for(Q in o){var B=o[Q],p=Array.isArray(B)?f:h;p[Q]=B}n+="var "+u+" = errors;";var E=e.errorPath;for(var Q in n+="var missing"+r+";",f)if((p=f[Q]).length){if(n+=" if ( "+c+e.util.getProperty(Q)+" !== undefined ",d&&(n+=" && Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(Q)+"') "),g){n+=" && ( ";var y=p;if(y)for(var v=-1,m=y.length-1;v<m;){D=y[v+=1],v&&(n+=" || "),n+=" ( ( "+(N=c+(x=e.util.getProperty(D)))+" === undefined ",d&&(n+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(D)+"') "),n+=") && (missing"+r+" = "+e.util.toQuotedString(e.opts.jsonPointers?D:x)+") ) "}n+=")) { ";var b="missing"+r,w="' + "+b+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,b,!0):E+" + "+b);var S=S||[];S.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { property: '"+e.util.escapeQuotes(Q)+"', missingProperty: '"+w+"', depsCount: "+p.length+", deps: '"+e.util.escapeQuotes(1==p.length?p[0]:p.join(", "))+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should have ",1==p.length?n+="property "+e.util.escapeQuotes(p[0]):n+="properties "+e.util.escapeQuotes(p.join(", ")),n+=" when property "+e.util.escapeQuotes(Q)+" is present' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ";var F=n;n=S.pop(),!e.compositeRule&&g?e.async?n+=" throw new ValidationError(["+F+"]); ":n+=" validate.errors = ["+F+"]; return false; ":n+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{n+=" ) { ";var R=p;if(R)for(var D,G=-1,k=R.length-1;G<k;){D=R[G+=1];var x=e.util.getProperty(D),N=(w=e.util.escapeQuotes(D),c+x);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,D,e.opts.jsonPointers)),n+=" if ( "+N+" === undefined ",d&&(n+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(D)+"') "),n+=") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { property: '"+e.util.escapeQuotes(Q)+"', missingProperty: '"+w+"', depsCount: "+p.length+", deps: '"+e.util.escapeQuotes(1==p.length?p[0]:p.join(", "))+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should have ",1==p.length?n+="property "+e.util.escapeQuotes(p[0]):n+="properties "+e.util.escapeQuotes(p.join(", ")),n+=" when property "+e.util.escapeQuotes(Q)+" is present' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}n+=" } ",g&&(I+="}",n+=" else { ")}e.errorPath=E;var U=l.baseId;for(var Q in h){B=h[Q];(e.opts.strictKeywords?"object"==typeof B&&Object.keys(B).length>0:e.util.schemaHasRules(B,e.RULES.all))&&(n+=" "+C+" = true; if ( "+c+e.util.getProperty(Q)+" !== undefined ",d&&(n+=" && Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(Q)+"') "),n+=") { ",l.schema=B,l.schemaPath=a+e.util.getProperty(Q),l.errSchemaPath=s+"/"+e.util.escapeFragment(Q),n+=" "+e.validate(l)+" ",l.baseId=U,n+=" } ",g&&(n+=" if ("+C+") { ",I+="}"))}return g&&(n+=" "+I+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="valid"+r,l=e.opts.$data&&o&&o.$data;l&&(n+=" var schema"+r+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ");var I="i"+r,C="schema"+r;l||(n+=" var "+C+" = validate.schema"+a+";"),n+="var "+u+";",l&&(n+=" if (schema"+r+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+r+")) "+u+" = false; else {"),n+=u+" = false;for (var "+I+"=0; "+I+"<"+C+".length; "+I+"++) if (equal("+c+", "+C+"["+I+"])) { "+u+" = true; break; }",l&&(n+=" } "),n+=" if (!"+u+") { ";var h=h||[];h.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { allowedValues: schema"+r+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ";var f=n;return n=h.pop(),!e.compositeRule&&g?e.async?n+=" throw new ValidationError(["+f+"]); ":n+=" validate.errors = ["+f+"]; return false; ":n+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",g&&(n+=" else { "),n}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||"");if(!1===e.opts.format)return g&&(n+=" if (true) { "),n;var u,l=e.opts.$data&&o&&o.$data;l?(n+=" var schema"+r+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ",u="schema"+r):u=o;var I=e.opts.unknownFormats,C=Array.isArray(I);if(l){n+=" var "+(h="format"+r)+" = formats["+u+"]; var "+(f="isObject"+r)+" = typeof "+h+" == 'object' && !("+h+" instanceof RegExp) && "+h+".validate; var "+(d="formatType"+r)+" = "+f+" && "+h+".type || 'string'; if ("+f+") { ",e.async&&(n+=" var async"+r+" = "+h+".async; "),n+=" "+h+" = "+h+".validate; } if ( ",l&&(n+=" ("+u+" !== undefined && typeof "+u+" != 'string') || "),n+=" (","ignore"!=I&&(n+=" ("+u+" && !"+h+" ",C&&(n+=" && self._opts.unknownFormats.indexOf("+u+") == -1 "),n+=") || "),n+=" ("+h+" && "+d+" == '"+A+"' && !(typeof "+h+" == 'function' ? ",e.async?n+=" (async"+r+" ? await "+h+"("+c+") : "+h+"("+c+")) ":n+=" "+h+"("+c+") ",n+=" : "+h+".test("+c+"))))) {"}else{var h;if(!(h=e.formats[o])){if("ignore"==I)return e.logger.warn('unknown format "'+o+'" ignored in schema at path "'+e.errSchemaPath+'"'),g&&(n+=" if (true) { "),n;if(C&&I.indexOf(o)>=0)return g&&(n+=" if (true) { "),n;throw new Error('unknown format "'+o+'" is used in schema at path "'+e.errSchemaPath+'"')}var f,d=(f="object"==typeof h&&!(h instanceof RegExp)&&h.validate)&&h.type||"string";if(f){var B=!0===h.async;h=h.validate}if(d!=A)return g&&(n+=" if (true) { "),n;if(B){if(!e.async)throw new Error("async format in sync schema");n+=" if (!(await "+(p="formats"+e.util.getProperty(o)+".validate")+"("+c+"))) { "}else{n+=" if (! ";var p="formats"+e.util.getProperty(o);f&&(p+=".validate"),n+="function"==typeof h?" "+p+"("+c+") ":" "+p+".test("+c+") ",n+=") { "}}var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { format: ",n+=l?""+u:""+e.util.toQuotedString(o),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=l?"' + "+u+" + '":""+e.util.escapeQuotes(o),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=l?"validate.schema"+a:""+e.util.toQuotedString(o),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ";var Q=n;return n=E.pop(),!e.compositeRule&&g?e.async?n+=" throw new ValidationError(["+Q+"]); ":n+=" validate.errors = ["+Q+"]; return false; ":n+=" var err = "+Q+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",g&&(n+=" else { "),n}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="valid"+r,l="errs__"+r,I=e.util.copy(e);I.level++;var C="valid"+I.level,h=e.schema.then,f=e.schema.else,d=void 0!==h&&(e.opts.strictKeywords?"object"==typeof h&&Object.keys(h).length>0:e.util.schemaHasRules(h,e.RULES.all)),B=void 0!==f&&(e.opts.strictKeywords?"object"==typeof f&&Object.keys(f).length>0:e.util.schemaHasRules(f,e.RULES.all)),p=I.baseId;if(d||B){var E;I.createErrors=!1,I.schema=o,I.schemaPath=a,I.errSchemaPath=s,n+=" var "+l+" = errors; var "+u+" = true; ";var Q=e.compositeRule;e.compositeRule=I.compositeRule=!0,n+=" "+e.validate(I)+" ",I.baseId=p,I.createErrors=!0,n+=" errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",e.compositeRule=I.compositeRule=Q,d?(n+=" if ("+C+") { ",I.schema=e.schema.then,I.schemaPath=e.schemaPath+".then",I.errSchemaPath=e.errSchemaPath+"/then",n+=" "+e.validate(I)+" ",I.baseId=p,n+=" "+u+" = "+C+"; ",d&&B?n+=" var "+(E="ifClause"+r)+" = 'then'; ":E="'then'",n+=" } ",B&&(n+=" else { ")):n+=" if (!"+C+") { ",B&&(I.schema=e.schema.else,I.schemaPath=e.schemaPath+".else",I.errSchemaPath=e.errSchemaPath+"/else",n+=" "+e.validate(I)+" ",I.baseId=p,n+=" "+u+" = "+C+"; ",d&&B?n+=" var "+(E="ifClause"+r)+" = 'else'; ":E="'else'",n+=" } "),n+=" if (!"+u+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { failingKeyword: "+E+" } ",!1!==e.opts.messages&&(n+=" , message: 'should match \"' + "+E+" + '\" schema' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&g&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+=" } ",g&&(n+=" else { "),n=e.util.cleanUpCode(n)}else g&&(n+=" if (true) { ");return n}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="valid"+r,l="errs__"+r,I=e.util.copy(e),C="";I.level++;var h="valid"+I.level,f="i"+r,d=I.dataLevel=e.dataLevel+1,B="data"+d,p=e.baseId;if(n+="var "+l+" = errors;var "+u+";",Array.isArray(o)){var E=e.schema.additionalItems;if(!1===E){n+=" "+u+" = "+c+".length <= "+o.length+"; ";var Q=s;s=e.errSchemaPath+"/additionalItems",n+=" if (!"+u+") { ";var y=y||[];y.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { limit: "+o.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ";var v=n;n=y.pop(),!e.compositeRule&&g?e.async?n+=" throw new ValidationError(["+v+"]); ":n+=" validate.errors = ["+v+"]; return false; ":n+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",s=Q,g&&(C+="}",n+=" else { ")}var m=o;if(m)for(var b,w=-1,S=m.length-1;w<S;)if(b=m[w+=1],e.opts.strictKeywords?"object"==typeof b&&Object.keys(b).length>0:e.util.schemaHasRules(b,e.RULES.all)){n+=" "+h+" = true; if ("+c+".length > "+w+") { ";var F=c+"["+w+"]";I.schema=b,I.schemaPath=a+"["+w+"]",I.errSchemaPath=s+"/"+w,I.errorPath=e.util.getPathExpr(e.errorPath,w,e.opts.jsonPointers,!0),I.dataPathArr[d]=w;var R=e.validate(I);I.baseId=p,e.util.varOccurences(R,B)<2?n+=" "+e.util.varReplace(R,B,F)+" ":n+=" var "+B+" = "+F+"; "+R+" ",n+=" } ",g&&(n+=" if ("+h+") { ",C+="}")}if("object"==typeof E&&(e.opts.strictKeywords?"object"==typeof E&&Object.keys(E).length>0:e.util.schemaHasRules(E,e.RULES.all))){I.schema=E,I.schemaPath=e.schemaPath+".additionalItems",I.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+h+" = true; if ("+c+".length > "+o.length+") { for (var "+f+" = "+o.length+"; "+f+" < "+c+".length; "+f+"++) { ",I.errorPath=e.util.getPathExpr(e.errorPath,f,e.opts.jsonPointers,!0);F=c+"["+f+"]";I.dataPathArr[d]=f;R=e.validate(I);I.baseId=p,e.util.varOccurences(R,B)<2?n+=" "+e.util.varReplace(R,B,F)+" ":n+=" var "+B+" = "+F+"; "+R+" ",g&&(n+=" if (!"+h+") break; "),n+=" } } ",g&&(n+=" if ("+h+") { ",C+="}")}}else if(e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all)){I.schema=o,I.schemaPath=a,I.errSchemaPath=s,n+=" for (var "+f+" = 0; "+f+" < "+c+".length; "+f+"++) { ",I.errorPath=e.util.getPathExpr(e.errorPath,f,e.opts.jsonPointers,!0);F=c+"["+f+"]";I.dataPathArr[d]=f;R=e.validate(I);I.baseId=p,e.util.varOccurences(R,B)<2?n+=" "+e.util.varReplace(R,B,F)+" ":n+=" var "+B+" = "+F+"; "+R+" ",g&&(n+=" if (!"+h+") break; "),n+=" }"}return g&&(n+=" "+C+" if ("+l+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n,r=" ",i=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),g=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(o||""),l=e.opts.$data&&a&&a.$data;l?(r+=" var schema"+i+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=a,r+="var division"+i+";if (",l&&(r+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),r+=" (division"+i+" = "+u+" / "+n+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+i+") - division"+i+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+i+" !== parseInt(division"+i+") ",r+=" ) ",l&&(r+=" ) "),r+=" ) { ";var I=I||[];I.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(g)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be multiple of ",r+=l?"' + "+n:n+"'"),e.opts.verbose&&(r+=" , schema: ",r+=l?"validate.schema"+s:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var C=r;return r=I.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+C+"]); ":r+=" validate.errors = ["+C+"]; return false; ":r+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",c&&(r+=" else { "),r}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="errs__"+r,l=e.util.copy(e);l.level++;var I="valid"+l.level;if(e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all)){l.schema=o,l.schemaPath=a,l.errSchemaPath=s,n+=" var "+u+" = errors; ";var C,h=e.compositeRule;e.compositeRule=l.compositeRule=!0,l.createErrors=!1,l.opts.allErrors&&(C=l.opts.allErrors,l.opts.allErrors=!1),n+=" "+e.validate(l)+" ",l.createErrors=!0,C&&(l.opts.allErrors=C),e.compositeRule=l.compositeRule=h,n+=" if ("+I+") { ";var f=f||[];f.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ";var d=n;n=f.pop(),!e.compositeRule&&g?e.async?n+=" throw new ValidationError(["+d+"]); ":n+=" validate.errors = ["+d+"]; return false; ":n+=" var err = "+d+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",g&&(n+=" if (false) { ");return n}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="valid"+r,l="errs__"+r,I=e.util.copy(e),C="";I.level++;var h="valid"+I.level,f=I.baseId,d="prevValid"+r,B="passingSchemas"+r;n+="var "+l+" = errors , "+d+" = false , "+u+" = false , "+B+" = null; ";var p=e.compositeRule;e.compositeRule=I.compositeRule=!0;var E=o;if(E)for(var Q,y=-1,v=E.length-1;y<v;)Q=E[y+=1],(e.opts.strictKeywords?"object"==typeof Q&&Object.keys(Q).length>0:e.util.schemaHasRules(Q,e.RULES.all))?(I.schema=Q,I.schemaPath=a+"["+y+"]",I.errSchemaPath=s+"/"+y,n+=" "+e.validate(I)+" ",I.baseId=f):n+=" var "+h+" = true; ",y&&(n+=" if ("+h+" && "+d+") { "+u+" = false; "+B+" = ["+B+", "+y+"]; } else { ",C+="}"),n+=" if ("+h+") { "+u+" = "+d+" = true; "+B+" = "+y+"; }";return e.compositeRule=I.compositeRule=p,n+=C+"if (!"+u+") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { passingSchemas: "+B+" } ",!1!==e.opts.messages&&(n+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&g&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+="} else { errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; }",e.opts.allErrors&&(n+=" } "),n}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n,r=" ",i=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),g=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(o||""),l=e.opts.$data&&a&&a.$data;l?(r+=" var schema"+i+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=a,r+="if ( ",l&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'string') || "),r+=" !"+(l?"(new RegExp("+n+"))":e.usePattern(a))+".test("+u+") ) { ";var I=I||[];I.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(g)+" , params: { pattern: ",r+=l?""+n:""+e.util.toQuotedString(a),r+=" } ",!1!==e.opts.messages&&(r+=" , message: 'should match pattern \"",r+=l?"' + "+n+" + '":""+e.util.escapeQuotes(a),r+="\"' "),e.opts.verbose&&(r+=" , schema: ",r+=l?"validate.schema"+s:""+e.util.toQuotedString(a),r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var C=r;return r=I.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+C+"]); ":r+=" validate.errors = ["+C+"]; return false; ":r+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",c&&(r+=" else { "),r}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="errs__"+r,l=e.util.copy(e),I="";l.level++;var C="valid"+l.level,h="key"+r,f="idx"+r,d=l.dataLevel=e.dataLevel+1,B="data"+d,p="dataProperties"+r,E=Object.keys(o||{}),Q=e.schema.patternProperties||{},y=Object.keys(Q),v=e.schema.additionalProperties,m=E.length||y.length,b=!1===v,w="object"==typeof v&&Object.keys(v).length,S=e.opts.removeAdditional,F=b||w||S,R=e.opts.ownProperties,D=e.baseId,G=e.schema.required;if(G&&(!e.opts.$data||!G.$data)&&G.length<e.opts.loopRequired)var k=e.util.toHash(G);if(n+="var "+u+" = errors;var "+C+" = true;",R&&(n+=" var "+p+" = undefined;"),F){if(n+=R?" "+p+" = "+p+" || Object.keys("+c+"); for (var "+f+"=0; "+f+"<"+p+".length; "+f+"++) { var "+h+" = "+p+"["+f+"]; ":" for (var "+h+" in "+c+") { ",m){if(n+=" var isAdditional"+r+" = !(false ",E.length)if(E.length>8)n+=" || validate.schema"+a+".hasOwnProperty("+h+") ";else{var x=E;if(x)for(var N=-1,U=x.length-1;N<U;)K=x[N+=1],n+=" || "+h+" == "+e.util.toQuotedString(K)+" "}if(y.length){var _=y;if(_)for(var M=-1,O=_.length-1;M<O;)re=_[M+=1],n+=" || "+e.usePattern(re)+".test("+h+") "}n+=" ); if (isAdditional"+r+") { "}if("all"==S)n+=" delete "+c+"["+h+"]; ";else{var L=e.errorPath,T="' + "+h+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers)),b)if(S)n+=" delete "+c+"["+h+"]; ";else{n+=" "+C+" = false; ";var Z=s;s=e.errSchemaPath+"/additionalProperties",(te=te||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { additionalProperty: '"+T+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is an invalid additional property":n+="should NOT have additional properties",n+="' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ";var H=n;n=te.pop(),!e.compositeRule&&g?e.async?n+=" throw new ValidationError(["+H+"]); ":n+=" validate.errors = ["+H+"]; return false; ":n+=" var err = "+H+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s=Z,g&&(n+=" break; ")}else if(w)if("failing"==S){n+=" var "+u+" = errors; ";var Y=e.compositeRule;e.compositeRule=l.compositeRule=!0,l.schema=v,l.schemaPath=e.schemaPath+".additionalProperties",l.errSchemaPath=e.errSchemaPath+"/additionalProperties",l.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers);var J=c+"["+h+"]";l.dataPathArr[d]=h;var j=e.validate(l);l.baseId=D,e.util.varOccurences(j,B)<2?n+=" "+e.util.varReplace(j,B,J)+" ":n+=" var "+B+" = "+J+"; "+j+" ",n+=" if (!"+C+") { errors = "+u+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+c+"["+h+"]; } ",e.compositeRule=l.compositeRule=Y}else{l.schema=v,l.schemaPath=e.schemaPath+".additionalProperties",l.errSchemaPath=e.errSchemaPath+"/additionalProperties",l.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers);J=c+"["+h+"]";l.dataPathArr[d]=h;j=e.validate(l);l.baseId=D,e.util.varOccurences(j,B)<2?n+=" "+e.util.varReplace(j,B,J)+" ":n+=" var "+B+" = "+J+"; "+j+" ",g&&(n+=" if (!"+C+") break; ")}e.errorPath=L}m&&(n+=" } "),n+=" } ",g&&(n+=" if ("+C+") { ",I+="}")}var P=e.opts.useDefaults&&!e.compositeRule;if(E.length){var V=E;if(V)for(var K,W=-1,X=V.length-1;W<X;){var q=o[K=V[W+=1]];if(e.opts.strictKeywords?"object"==typeof q&&Object.keys(q).length>0:e.util.schemaHasRules(q,e.RULES.all)){var z=e.util.getProperty(K),$=(J=c+z,P&&void 0!==q.default);l.schema=q,l.schemaPath=a+z,l.errSchemaPath=s+"/"+e.util.escapeFragment(K),l.errorPath=e.util.getPath(e.errorPath,K,e.opts.jsonPointers),l.dataPathArr[d]=e.util.toQuotedString(K);j=e.validate(l);if(l.baseId=D,e.util.varOccurences(j,B)<2){j=e.util.varReplace(j,B,J);var ee=J}else{ee=B;n+=" var "+B+" = "+J+"; "}if($)n+=" "+j+" ";else{if(k&&k[K]){n+=" if ( "+ee+" === undefined ",R&&(n+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(K)+"') "),n+=") { "+C+" = false; ";L=e.errorPath,Z=s;var te,Ae=e.util.escapeQuotes(K);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(L,K,e.opts.jsonPointers)),s=e.errSchemaPath+"/required",(te=te||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+Ae+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+Ae+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ";H=n;n=te.pop(),!e.compositeRule&&g?e.async?n+=" throw new ValidationError(["+H+"]); ":n+=" validate.errors = ["+H+"]; return false; ":n+=" var err = "+H+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s=Z,e.errorPath=L,n+=" } else { "}else g?(n+=" if ( "+ee+" === undefined ",R&&(n+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(K)+"') "),n+=") { "+C+" = true; } else { "):(n+=" if ("+ee+" !== undefined ",R&&(n+=" && Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(K)+"') "),n+=" ) { ");n+=" "+j+" } "}}g&&(n+=" if ("+C+") { ",I+="}")}}if(y.length){var ne=y;if(ne)for(var re,ie=-1,oe=ne.length-1;ie<oe;){q=Q[re=ne[ie+=1]];if(e.opts.strictKeywords?"object"==typeof q&&Object.keys(q).length>0:e.util.schemaHasRules(q,e.RULES.all)){l.schema=q,l.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(re),l.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(re),n+=R?" "+p+" = "+p+" || Object.keys("+c+"); for (var "+f+"=0; "+f+"<"+p+".length; "+f+"++) { var "+h+" = "+p+"["+f+"]; ":" for (var "+h+" in "+c+") { ",n+=" if ("+e.usePattern(re)+".test("+h+")) { ",l.errorPath=e.util.getPathExpr(e.errorPath,h,e.opts.jsonPointers);J=c+"["+h+"]";l.dataPathArr[d]=h;j=e.validate(l);l.baseId=D,e.util.varOccurences(j,B)<2?n+=" "+e.util.varReplace(j,B,J)+" ":n+=" var "+B+" = "+J+"; "+j+" ",g&&(n+=" if (!"+C+") break; "),n+=" } ",g&&(n+=" else "+C+" = true; "),n+=" } ",g&&(n+=" if ("+C+") { ",I+="}")}}}return g&&(n+=" "+I+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="errs__"+r,l=e.util.copy(e);l.level++;var I="valid"+l.level;if(n+="var "+u+" = errors;",e.opts.strictKeywords?"object"==typeof o&&Object.keys(o).length>0:e.util.schemaHasRules(o,e.RULES.all)){l.schema=o,l.schemaPath=a,l.errSchemaPath=s;var C="key"+r,h="idx"+r,f="i"+r,d="' + "+C+" + '",B="data"+(l.dataLevel=e.dataLevel+1),p="dataProperties"+r,E=e.opts.ownProperties,Q=e.baseId;E&&(n+=" var "+p+" = undefined; "),n+=E?" "+p+" = "+p+" || Object.keys("+c+"); for (var "+h+"=0; "+h+"<"+p+".length; "+h+"++) { var "+C+" = "+p+"["+h+"]; ":" for (var "+C+" in "+c+") { ",n+=" var startErrs"+r+" = errors; ";var y=C,v=e.compositeRule;e.compositeRule=l.compositeRule=!0;var m=e.validate(l);l.baseId=Q,e.util.varOccurences(m,B)<2?n+=" "+e.util.varReplace(m,B,y)+" ":n+=" var "+B+" = "+y+"; "+m+" ",e.compositeRule=l.compositeRule=v,n+=" if (!"+I+") { for (var "+f+"=startErrs"+r+"; "+f+"<errors; "+f+"++) { vErrors["+f+"].propertyName = "+C+"; } var err = ",!1!==e.createErrors?(n+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { propertyName: '"+d+"' } ",!1!==e.opts.messages&&(n+=" , message: 'property name \\'"+d+"\\' is invalid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&g&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),g&&(n+=" break; "),n+=" } }"}return g&&(n+=" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n=" ",r=e.level,i=e.dataLevel,o=e.schema[t],a=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,g=!e.opts.allErrors,c="data"+(i||""),u="valid"+r,l=e.opts.$data&&o&&o.$data;l&&(n+=" var schema"+r+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ");var I="schema"+r;if(!l)if(o.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var C=[],h=o;if(h)for(var f,d=-1,B=h.length-1;d<B;){f=h[d+=1];var p=e.schema.properties[f];p&&(e.opts.strictKeywords?"object"==typeof p&&Object.keys(p).length>0:e.util.schemaHasRules(p,e.RULES.all))||(C[C.length]=f)}}else C=o;if(l||C.length){var E=e.errorPath,Q=l||C.length>=e.opts.loopRequired,y=e.opts.ownProperties;if(g)if(n+=" var missing"+r+"; ",Q){l||(n+=" var "+I+" = validate.schema"+a+"; ");var v="' + "+(R="schema"+r+"["+(w="i"+r)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,R,e.opts.jsonPointers)),n+=" var "+u+" = true; ",l&&(n+=" if (schema"+r+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+r+")) "+u+" = false; else {"),n+=" for (var "+w+" = 0; "+w+" < "+I+".length; "+w+"++) { "+u+" = "+c+"["+I+"["+w+"]] !== undefined ",y&&(n+=" && Object.prototype.hasOwnProperty.call("+c+", "+I+"["+w+"]) "),n+="; if (!"+u+") break; } ",l&&(n+=" } "),n+=" if (!"+u+") { ",(F=F||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+v+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+v+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ";var m=n;n=F.pop(),!e.compositeRule&&g?e.async?n+=" throw new ValidationError(["+m+"]); ":n+=" validate.errors = ["+m+"]; return false; ":n+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var b=C;if(b)for(var w=-1,S=b.length-1;w<S;){G=b[w+=1],w&&(n+=" || "),n+=" ( ( "+(U=c+(N=e.util.getProperty(G)))+" === undefined ",y&&(n+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(G)+"') "),n+=") && (missing"+r+" = "+e.util.toQuotedString(e.opts.jsonPointers?G:N)+") ) "}n+=") { ";var F;v="' + "+(R="missing"+r)+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,R,!0):E+" + "+R),(F=F||[]).push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+v+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+v+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ";m=n;n=F.pop(),!e.compositeRule&&g?e.async?n+=" throw new ValidationError(["+m+"]); ":n+=" validate.errors = ["+m+"]; return false; ":n+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else if(Q){l||(n+=" var "+I+" = validate.schema"+a+"; ");var R;v="' + "+(R="schema"+r+"["+(w="i"+r)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,R,e.opts.jsonPointers)),l&&(n+=" if ("+I+" && !Array.isArray("+I+")) { var err = ",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+v+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+v+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+I+" !== undefined) { "),n+=" for (var "+w+" = 0; "+w+" < "+I+".length; "+w+"++) { if ("+c+"["+I+"["+w+"]] === undefined ",y&&(n+=" || ! Object.prototype.hasOwnProperty.call("+c+", "+I+"["+w+"]) "),n+=") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+v+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+v+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",l&&(n+=" } ")}else{var D=C;if(D)for(var G,k=-1,x=D.length-1;k<x;){G=D[k+=1];var N=e.util.getProperty(G),U=(v=e.util.escapeQuotes(G),c+N);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,G,e.opts.jsonPointers)),n+=" if ( "+U+" === undefined ",y&&(n+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(G)+"') "),n+=") { var err = ",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(s)+" , params: { missingProperty: '"+v+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+v+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=E}else g&&(n+=" if (true) {");return n}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n,r=" ",i=e.level,o=e.dataLevel,a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),g=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,u="data"+(o||""),l="valid"+i,I=e.opts.$data&&a&&a.$data;if(I?(r+=" var schema"+i+" = "+e.util.getData(a.$data,o,e.dataPathArr)+"; ",n="schema"+i):n=a,(a||I)&&!1!==e.opts.uniqueItems){I&&(r+=" var "+l+"; if ("+n+" === false || "+n+" === undefined) "+l+" = true; else if (typeof "+n+" != 'boolean') "+l+" = false; else { "),r+=" var i = "+u+".length , "+l+" = true , j; if (i > 1) { ";var C=e.schema.items&&e.schema.items.type,h=Array.isArray(C);if(!C||"object"==C||"array"==C||h&&(C.indexOf("object")>=0||C.indexOf("array")>=0))r+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+u+"[i], "+u+"[j])) { "+l+" = false; break outer; } } } ";else{r+=" var itemIndices = {}, item; for (;i--;) { var item = "+u+"[i]; ";var f="checkDataType"+(h?"s":"");r+=" if ("+e.util[f](C,"item",!0)+") continue; ",h&&(r+=" if (typeof item == 'string') item = '\"' + item; "),r+=" if (typeof itemIndices[item] == 'number') { "+l+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}r+=" } ",I&&(r+=" } "),r+=" if (!"+l+") { ";var d=d||[];d.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(g)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(r+=" , schema: ",r+=I?"validate.schema"+s:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var B=r;r=d.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+B+"]); ":r+=" validate.errors = ["+B+"]; return false; ":r+=" var err = "+B+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",c&&(r+=" else { ")}else c&&(r+=" if (true) { ");return r}},function(e,t,A){"use strict";var n=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var A=0;A<t.length;A++){e=JSON.parse(JSON.stringify(e));var r,i=t[A].split("/"),o=e;for(r=1;r<i.length;r++)o=o[i[r]];for(r=0;r<n.length;r++){var a=n[r],s=o[a];s&&(o[a]={anyOf:[s,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#"}]})}}return e}},function(e,t,A){"use strict";var n=A(462).MissingRef;e.exports=function e(t,A,r){var i=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof A&&(r=A,A=void 0);var o=a(t).then((function(){var e=i._addSchema(t,void 0,A);return e.validate||function e(t){try{return i._compile(t)}catch(o){if(o instanceof n)return r(o);throw o}function r(n){var r=n.missingSchema;if(g(r))throw new Error("Schema "+r+" is loaded but "+n.missingRef+" cannot be resolved");var o=i._loadingSchemas[r];return o||(o=i._loadingSchemas[r]=i._opts.loadSchema(r)).then(s,s),o.then((function(e){if(!g(r))return a(e).then((function(){g(r)||i.addSchema(e,r,void 0,A)}))})).then((function(){return e(t)}));function s(){delete i._loadingSchemas[r]}function g(e){return i._refs[e]||i._schemas[e]}}}(e)}));r&&o.then((function(e){r(null,e)}),r);return o;function a(t){var A=t.$schema;return A&&!i.getSchema(A)?e.call(i,{$ref:A},!0):Promise.resolve()}}},function(e,t,A){"use strict";var n=/^[a-z_$][a-z0-9_$-]*$/i,r=A(846),i=A(847);e.exports={add:function(e,t){var A=this.RULES;if(A.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!n.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(t){this.validateKeyword(t,!0);var i=t.type;if(Array.isArray(i))for(var o=0;o<i.length;o++)s(e,i[o],t);else s(e,i,t);var a=t.metaSchema;a&&(t.$data&&this._opts.$data&&(a={anyOf:[a,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#"}]}),t.validateSchema=this.compile(a,!0))}function s(e,t,n){for(var i,o=0;o<A.length;o++){var a=A[o];if(a.type==t){i=a;break}}i||(i={type:t,rules:[]},A.push(i));var s={keyword:e,definition:n,custom:!0,code:r,implements:n.implements};i.rules.push(s),A.custom[e]=s}return A.keywords[e]=A.all[e]=!0,this},get:function(e){var t=this.RULES.custom[e];return t?t.definition:this.RULES.keywords[e]||!1},remove:function(e){var t=this.RULES;delete t.keywords[e],delete t.all[e],delete t.custom[e];for(var A=0;A<t.length;A++)for(var n=t[A].rules,r=0;r<n.length;r++)if(n[r].keyword==e){n.splice(r,1);break}return this},validate:function e(t,A){e.errors=null;var n=this._validateKeyword=this._validateKeyword||this.compile(i,!0);if(n(t))return!0;if(e.errors=n.errors,A)throw new Error("custom keyword definition is invalid: "+this.errorsText(n.errors));return!1}}},function(e,t,A){"use strict";e.exports=function(e,t,A){var n,r,i=" ",o=e.level,a=e.dataLevel,s=e.schema[t],g=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,l="data"+(a||""),I="valid"+o,C="errs__"+o,h=e.opts.$data&&s&&s.$data;h?(i+=" var schema"+o+" = "+e.util.getData(s.$data,a,e.dataPathArr)+"; ",r="schema"+o):r=s;var f,d,B,p,E,Q="definition"+o,y=this.definition,v="";if(h&&y.$data){E="keywordValidate"+o;var m=y.validateSchema;i+=" var "+Q+" = RULES.custom['"+t+"'].definition; var "+E+" = "+Q+".validate;"}else{if(!(p=e.useCustomRule(this,s,e.schema,e)))return;r="validate.schema"+g,E=p.code,f=y.compile,d=y.inline,B=y.macro}var b=E+".errors",w="i"+o,S="ruleErr"+o,F=y.async;if(F&&!e.async)throw new Error("async keyword in sync schema");if(d||B||(i+=b+" = null;"),i+="var "+C+" = errors;var "+I+";",h&&y.$data&&(v+="}",i+=" if ("+r+" === undefined) { "+I+" = true; } else { ",m&&(v+="}",i+=" "+I+" = "+Q+".validateSchema("+r+"); if ("+I+") { ")),d)y.statements?i+=" "+p.validate+" ":i+=" "+I+" = "+p.validate+"; ";else if(B){var R=e.util.copy(e);v="";R.level++;var D="valid"+R.level;R.schema=p.validate,R.schemaPath="";var G=e.compositeRule;e.compositeRule=R.compositeRule=!0;var k=e.validate(R).replace(/validate\.schema/g,E);e.compositeRule=R.compositeRule=G,i+=" "+k}else{(_=_||[]).push(i),i="",i+=" "+E+".call( ",e.opts.passContext?i+="this":i+="self",f||!1===y.schema?i+=" , "+l+" ":i+=" , "+r+" , "+l+" , validate.schema"+e.schemaPath+" ",i+=" , (dataPath || '')",'""'!=e.errorPath&&(i+=" + "+e.errorPath);var x=a?"data"+(a-1||""):"parentData",N=a?e.dataPathArr[a]:"parentDataProperty",U=i+=" , "+x+" , "+N+" , rootData ) ";i=_.pop(),!1===y.errors?(i+=" "+I+" = ",F&&(i+="await "),i+=U+"; "):i+=F?" var "+(b="customErrors"+o)+" = null; try { "+I+" = await "+U+"; } catch (e) { "+I+" = false; if (e instanceof ValidationError) "+b+" = e.errors; else throw e; } ":" "+b+" = null; "+I+" = "+U+"; "}if(y.modifying&&(i+=" if ("+x+") "+l+" = "+x+"["+N+"];"),i+=""+v,y.valid)u&&(i+=" if (true) { ");else{var _;i+=" if ( ",void 0===y.valid?(i+=" !",i+=B?""+D:""+I):i+=" "+!y.valid+" ",i+=") { ",n=this.keyword,(_=_||[]).push(i),i="",(_=_||[]).push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(n||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+this.keyword+"' } ",!1!==e.opts.messages&&(i+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),e.opts.verbose&&(i+=" , schema: validate.schema"+g+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ";var M=i;i=_.pop(),!e.compositeRule&&u?e.async?i+=" throw new ValidationError(["+M+"]); ":i+=" validate.errors = ["+M+"]; return false; ":i+=" var err = "+M+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var O=i;i=_.pop(),d?y.errors?"full"!=y.errors&&(i+=" for (var "+w+"="+C+"; "+w+"<errors; "+w+"++) { var "+S+" = vErrors["+w+"]; if ("+S+".dataPath === undefined) "+S+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+S+".schemaPath === undefined) { "+S+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(i+=" "+S+".schema = "+r+"; "+S+".data = "+l+"; "),i+=" } "):!1===y.errors?i+=" "+O+" ":(i+=" if ("+C+" == errors) { "+O+" } else { for (var "+w+"="+C+"; "+w+"<errors; "+w+"++) { var "+S+" = vErrors["+w+"]; if ("+S+".dataPath === undefined) "+S+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+S+".schemaPath === undefined) { "+S+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(i+=" "+S+".schema = "+r+"; "+S+".data = "+l+"; "),i+=" } } "):B?(i+=" var err = ",!1!==e.createErrors?(i+=" { keyword: '"+(n||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+this.keyword+"' } ",!1!==e.opts.messages&&(i+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),e.opts.verbose&&(i+=" , schema: validate.schema"+g+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),i+=" } "):i+=" {} ",i+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(e.async?i+=" throw new ValidationError(vErrors); ":i+=" validate.errors = vErrors; return false; ")):!1===y.errors?i+=" "+O+" ":(i+=" if (Array.isArray("+b+")) { if (vErrors === null) vErrors = "+b+"; else vErrors = vErrors.concat("+b+"); errors = vErrors.length; for (var "+w+"="+C+"; "+w+"<errors; "+w+"++) { var "+S+" = vErrors["+w+"]; if ("+S+".dataPath === undefined) "+S+".dataPath = (dataPath || '') + "+e.errorPath+"; "+S+'.schemaPath = "'+c+'"; ',e.opts.verbose&&(i+=" "+S+".schema = "+r+"; "+S+".data = "+l+"; "),i+=" } } else { "+O+" } "),i+=" } ",u&&(i+=" else { ")}return i}},function(e,t,A){"use strict";var n=A(566);e.exports={$id:"https://github.com/epoberezkin/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:n.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:n.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},function(e,t){var A="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(A){var n=new Uint8Array(16);e.exports=function(){return A(n),n}}else{var r=new Array(16);e.exports=function(){for(var e,t=0;t<16;t++)0===(3&t)&&(e=4294967296*Math.random()),r[t]=e>>>((3&t)<<3)&255;return r}}},function(e,t){for(var A=[],n=0;n<256;++n)A[n]=(n+256).toString(16).substr(1);e.exports=function(e,t){var n=t||0,r=A;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("")}},function(e,t,A){"use strict";t.byteLength=function(e){var t=g(e),A=t[0],n=t[1];return 3*(A+n)/4-n},t.toByteArray=function(e){var t,A,n=g(e),o=n[0],a=n[1],s=new i(function(e,t,A){return 3*(t+A)/4-A}(0,o,a)),c=0,u=a>0?o-4:o;for(A=0;A<u;A+=4)t=r[e.charCodeAt(A)]<<18|r[e.charCodeAt(A+1)]<<12|r[e.charCodeAt(A+2)]<<6|r[e.charCodeAt(A+3)],s[c++]=t>>16&255,s[c++]=t>>8&255,s[c++]=255&t;2===a&&(t=r[e.charCodeAt(A)]<<2|r[e.charCodeAt(A+1)]>>4,s[c++]=255&t);1===a&&(t=r[e.charCodeAt(A)]<<10|r[e.charCodeAt(A+1)]<<4|r[e.charCodeAt(A+2)]>>2,s[c++]=t>>8&255,s[c++]=255&t);return s},t.fromByteArray=function(e){for(var t,A=e.length,r=A%3,i=[],o=0,a=A-r;o<a;o+=16383)i.push(c(e,o,o+16383>a?a:o+16383));1===r?(t=e[A-1],i.push(n[t>>2]+n[t<<4&63]+"==")):2===r&&(t=(e[A-2]<<8)+e[A-1],i.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return i.join("")};for(var n=[],r=[],i="undefined"!==typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=o.length;a<s;++a)n[a]=o[a],r[o.charCodeAt(a)]=a;function g(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var A=e.indexOf("=");return-1===A&&(A=t),[A,A===t?0:4-A%4]}function c(e,t,A){for(var r,i,o=[],a=t;a<A;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(n[(i=r)>>18&63]+n[i>>12&63]+n[i>>6&63]+n[63&i]);return o.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},function(e,t){var A={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==A.call(e)}},function(e,t,A){var n=function(e){"use strict";var t=Object.prototype,A=t.hasOwnProperty,n="function"===typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",i=n.asyncIterator||"@@asyncIterator",o=n.toStringTag||"@@toStringTag";function a(e,t,A,n){var r=t&&t.prototype instanceof c?t:c,i=Object.create(r.prototype),o=new y(n||[]);return i._invoke=function(e,t,A){var n="suspendedStart";return function(r,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===r)throw i;return m()}for(A.method=r,A.arg=i;;){var o=A.delegate;if(o){var a=p(o,A);if(a){if(a===g)continue;return a}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if("suspendedStart"===n)throw n="completed",A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n="executing";var c=s(e,t,A);if("normal"===c.type){if(n=A.done?"completed":"suspendedYield",c.arg===g)continue;return{value:c.arg,done:A.done}}"throw"===c.type&&(n="completed",A.method="throw",A.arg=c.arg)}}}(e,A,o),i}function s(e,t,A){try{return{type:"normal",arg:e.call(t,A)}}catch(n){return{type:"throw",arg:n}}}e.wrap=a;var g={};function c(){}function u(){}function l(){}var I={};I[r]=function(){return this};var C=Object.getPrototypeOf,h=C&&C(C(v([])));h&&h!==t&&A.call(h,r)&&(I=h);var f=l.prototype=c.prototype=Object.create(I);function d(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function B(e,t){var n;this._invoke=function(r,i){function o(){return new t((function(n,o){!function n(r,i,o,a){var g=s(e[r],e,i);if("throw"!==g.type){var c=g.arg,u=c.value;return u&&"object"===typeof u&&A.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,a)}),(function(e){n("throw",e,o,a)})):t.resolve(u).then((function(e){c.value=e,o(c)}),(function(e){return n("throw",e,o,a)}))}a(g.arg)}(r,i,n,o)}))}return n=n?n.then(o,o):o()}}function p(e,t){var A=e.iterator[t.method];if(void 0===A){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,p(e,t),"throw"===t.method))return g;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return g}var n=s(A,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,g;var r=n.arg;return r?r.done?(t[e.resultName]=r.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,g):r:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,g)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function Q(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function y(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function v(e){if(e){var t=e[r];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var n=-1,i=function t(){for(;++n<e.length;)if(A.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:m}}function m(){return{value:void 0,done:!0}}return u.prototype=f.constructor=l,l.constructor=u,l[o]=u.displayName="GeneratorFunction",e.isGeneratorFunction=function(e){var t="function"===typeof e&&e.constructor;return!!t&&(t===u||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,o in e||(e[o]="GeneratorFunction")),e.prototype=Object.create(f),e},e.awrap=function(e){return{__await:e}},d(B.prototype),B.prototype[i]=function(){return this},e.AsyncIterator=B,e.async=function(t,A,n,r,i){void 0===i&&(i=Promise);var o=new B(a(t,A,n,r),i);return e.isGeneratorFunction(A)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},d(f),f[o]="Generator",f[r]=function(){return this},f.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var A in e)t.push(A);return t.reverse(),function A(){for(;t.length;){var n=t.pop();if(n in e)return A.value=n,A.done=!1,A}return A.done=!0,A}},e.values=v,y.prototype={constructor:y,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(Q),!e)for(var t in this)"t"===t.charAt(0)&&A.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(A,n){return o.type="throw",o.arg=e,t.next=A,n&&(t.method="next",t.arg=void 0),!!n}for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],o=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var a=A.call(i,"catchLoc"),s=A.call(i,"finallyLoc");if(a&&s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(a){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&A.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,g):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var A=this.tryEntries[t];if(A.finallyLoc===e)return this.complete(A.completion,A.afterLoc),Q(A),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var A=this.tryEntries[t];if(A.tryLoc===e){var n=A.completion;if("throw"===n.type){var r=n.arg;Q(A)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,A){return this.delegate={iterator:v(e),resultName:t,nextLoc:A},"next"===this.method&&(this.arg=void 0),g}},e}(e.exports);try{regeneratorRuntime=n}catch(r){Function("r","regeneratorRuntime = r")(n)}},function(e,t,A){"use strict";if(A(0),t.Fragment=60107,"function"===typeof Symbol&&Symbol.for){var n=Symbol.for;t.Fragment=n("react.fragment")}t.jsxDEV=void 0},function(e,t,A){"use strict";var n=A(172);t.convertToJson=function e(t,A,r){var i={};if(!A.alwaysCreateTextNode&&(!t.child||n.isEmptyObject(t.child))&&(!t.attrsMap||n.isEmptyObject(t.attrsMap)))return n.isExist(t.val)?t.val:"";if(n.isExist(t.val)&&("string"!==typeof t.val||""!==t.val&&t.val!==A.cdataPositionChar)){var o=n.isTagNameInArrayMode(t.tagname,A.arrayMode,r);i[A.textNodeName]=o?[t.val]:t.val}n.merge(i,t.attrsMap,A.arrayMode);for(var a=Object.keys(t.child),s=0;s<a.length;s++){var g=a[s];if(t.child[g]&&t.child[g].length>1)for(var c in i[g]=[],t.child[g])t.child[g].hasOwnProperty(c)&&i[g].push(e(t.child[g][c],A,g));else{var u=e(t.child[g][0],A,g),l=!0===A.arrayMode&&"object"===typeof u||n.isTagNameInArrayMode(g,A.arrayMode,r);i[g]=l?[u]:u}}return i}},function(e,t,A){"use strict";e.exports=function(e,t,A){this.tagname=e,this.parent=t,this.child={},this.attrsMap={},this.val=A,this.addChild=function(e){Array.isArray(this.child[e.tagname])?this.child[e.tagname].push(e):this.child[e.tagname]=[e]}}},function(e,t){var A=/^[-+]?0x[a-fA-F0-9]+$/,n=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);var r={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function i(e){return e&&-1!==e.indexOf(".")?("."===(e=e.replace(/0+$/,""))?e="0":"."===e[0]?e="0"+e:"."===e[e.length-1]&&(e=e.substr(0,e.length-1)),e):e}e.exports=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t=Object.assign({},r,t),!e||"string"!==typeof e)return e;var o=e.trim();if(void 0!==t.skipLike&&t.skipLike.test(o))return e;if(t.hex&&A.test(o))return Number.parseInt(o,16);var a=n.exec(o);if(a){var s=a[1],g=a[2],c=i(a[3]),u=a[4]||a[6];if(!t.leadingZeros&&g.length>0&&s&&"."!==o[2])return e;if(!t.leadingZeros&&g.length>0&&!s&&"."!==o[1])return e;var l=Number(o),I=""+l;return-1!==I.search(/[eE]/)||u?t.eNotation?l:e:-1!==o.indexOf(".")?"0"===I&&""===c||I===c||s&&I==="-"+c?l:e:g?c===I||s+c===I?l:e:o===I||o===s+I?l:e}return e}},function(e,t,A){"use strict";var n=A(172),r={allowBooleanAttributes:!1},i=["allowBooleanAttributes"];function o(e,t){for(var A=t;t<e.length;t++)if("?"!=e[t]&&" "!=e[t]);else{var n=e.substr(A,t-A);if(t>5&&"xml"===n)return l("InvalidXml","XML declaration allowed only at the start of the document.",C(e,t));if("?"==e[t]&&">"==e[t+1]){t++;break}}return t}function a(e,t){if(e.length>t+5&&"-"===e[t+1]&&"-"===e[t+2]){for(t+=3;t<e.length;t++)if("-"===e[t]&&"-"===e[t+1]&&">"===e[t+2]){t+=2;break}}else if(e.length>t+8&&"D"===e[t+1]&&"O"===e[t+2]&&"C"===e[t+3]&&"T"===e[t+4]&&"Y"===e[t+5]&&"P"===e[t+6]&&"E"===e[t+7]){var A=1;for(t+=8;t<e.length;t++)if("<"===e[t])A++;else if(">"===e[t]&&0===--A)break}else if(e.length>t+9&&"["===e[t+1]&&"C"===e[t+2]&&"D"===e[t+3]&&"A"===e[t+4]&&"T"===e[t+5]&&"A"===e[t+6]&&"["===e[t+7])for(t+=8;t<e.length;t++)if("]"===e[t]&&"]"===e[t+1]&&">"===e[t+2]){t+=2;break}return t}t.validate=function(e,t){t=n.buildOptions(t,r,i);var A,g=[],I=!1,h=!1;"\ufeff"===e[0]&&(e=e.substr(1));for(var f=0;f<e.length;f++)if("<"===e[f]&&"?"===e[f+1]){if((f=o(e,f+=2)).err)return f}else{if("<"!==e[f]){if(" "===e[f]||"\t"===e[f]||"\n"===e[f]||"\r"===e[f])continue;return l("InvalidChar","char '"+e[f]+"' is not expected.",C(e,f))}var d=f;if("!"===e[++f]){f=a(e,f);continue}var B=!1;"/"===e[f]&&(B=!0,f++);for(var p="";f<e.length&&">"!==e[f]&&" "!==e[f]&&"\t"!==e[f]&&"\n"!==e[f]&&"\r"!==e[f];f++)p+=e[f];if("/"===(p=p.trim())[p.length-1]&&(p=p.substring(0,p.length-1),f--),A=p,!n.isName(A)){return l("InvalidTag",0===p.trim().length?"Invalid space after '<'.":"Tag '"+p+"' is an invalid name.",C(e,f))}var E=s(e,f);if(!1===E)return l("InvalidAttr","Attributes for '"+p+"' have open quote.",C(e,f));var Q=E.value;if(f=E.index,"/"===Q[Q.length-1]){var y=f-Q.length,v=c(Q=Q.substring(0,Q.length-1),t);if(!0!==v)return l(v.err.code,v.err.msg,C(e,y+v.err.line));I=!0}else if(B){if(!E.tagClosed)return l("InvalidTag","Closing tag '"+p+"' doesn't have proper closing.",C(e,f));if(Q.trim().length>0)return l("InvalidTag","Closing tag '"+p+"' can't have attributes or invalid starting.",C(e,d));var m=g.pop();if(p!==m.tagName){var b=C(e,m.tagStartPos);return l("InvalidTag","Expected closing tag '"+m.tagName+"' (opened in line "+b.line+", col "+b.col+") instead of closing tag '"+p+"'.",C(e,d))}0==g.length&&(h=!0)}else{var w=c(Q,t);if(!0!==w)return l(w.err.code,w.err.msg,C(e,f-Q.length+w.err.line));if(!0===h)return l("InvalidXml","Multiple possible root nodes found.",C(e,f));g.push({tagName:p,tagStartPos:d}),I=!0}for(f++;f<e.length;f++)if("<"===e[f]){if("!"===e[f+1]){f=a(e,++f);continue}if("?"!==e[f+1])break;if((f=o(e,++f)).err)return f}else if("&"===e[f]){var S=u(e,f);if(-1==S)return l("InvalidChar","char '&' is not expected.",C(e,f));f=S}"<"===e[f]&&f--}return I?1==g.length?l("InvalidTag","Unclosed tag '"+g[0].tagName+"'.",C(e,g[0].tagStartPos)):!(g.length>0)||l("InvalidXml","Invalid '"+JSON.stringify(g.map((function(e){return e.tagName})),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):l("InvalidXml","Start tag expected.",1)};function s(e,t){for(var A="",n="",r=!1;t<e.length;t++){if('"'===e[t]||"'"===e[t])""===n?n=e[t]:n!==e[t]||(n="");else if(">"===e[t]&&""===n){r=!0;break}A+=e[t]}return""===n&&{value:A,index:t,tagClosed:r}}var g=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function c(e,t){for(var A=n.getAllMatches(e,g),r={},i=0;i<A.length;i++){if(0===A[i][1].length)return l("InvalidAttr","Attribute '"+A[i][2]+"' has no space in starting.",h(A[i]));if(void 0===A[i][3]&&!t.allowBooleanAttributes)return l("InvalidAttr","boolean attribute '"+A[i][2]+"' is not allowed.",h(A[i]));var o=A[i][2];if(!I(o))return l("InvalidAttr","Attribute '"+o+"' is an invalid name.",h(A[i]));if(r.hasOwnProperty(o))return l("InvalidAttr","Attribute '"+o+"' is repeated.",h(A[i]));r[o]=1}return!0}function u(e,t){if(";"===e[++t])return-1;if("#"===e[t])return function(e,t){var A=/\d/;for("x"===e[t]&&(t++,A=/[\da-fA-F]/);t<e.length;t++){if(";"===e[t])return t;if(!e[t].match(A))break}return-1}(e,++t);for(var A=0;t<e.length;t++,A++)if(!(e[t].match(/\w/)&&A<20)){if(";"===e[t])break;return-1}return t}function l(e,t,A){return{err:{code:e,msg:t,line:A.line||A,col:A.col}}}function I(e){return n.isName(e)}function C(e,t){var A=e.substring(0,t).split(/\r?\n/);return{line:A.length,col:A[A.length-1].length+1}}function h(e){return e.startIndex+e[1].length}},function(e,t,A){"use strict";var n=function(e){return String.fromCharCode(e)},r={nilChar:n(176),missingChar:n(201),nilPremitive:n(175),missingPremitive:n(200),emptyChar:n(178),emptyValue:n(177),boundryChar:n(179),objStart:n(198),arrStart:n(204),arrayEnd:n(185)},i=[r.nilChar,r.nilPremitive,r.missingChar,r.missingPremitive,r.boundryChar,r.emptyChar,r.emptyValue,r.arrayEnd,r.objStart,r.arrStart],o=function e(t,A,n){if("string"===typeof A)return t&&t[0]&&void 0!==t[0].val?a(t[0].val,A):a(t,A);var i,o=void 0===(i=t)?r.missingChar:null===i?r.nilChar:!(i.child&&0===Object.keys(i.child).length&&(!i.attrsMap||0===Object.keys(i.attrsMap).length))||r.emptyChar;if(!0===o){var g="";if(Array.isArray(A)){g+=r.arrStart;var c=A[0],u=t.length;if("string"===typeof c)for(var l=0;l<u;l++){var I=a(t[l].val,c);g=s(g,I)}else for(var C=0;C<u;C++){var h=e(t[C],c,n);g=s(g,h)}g+=r.arrayEnd}else{g+=r.objStart;var f=Object.keys(A);for(var d in Array.isArray(t)&&(t=t[0]),f){var B=f[d],p=void 0;p=!n.ignoreAttributes&&t.attrsMap&&t.attrsMap[B]?e(t.attrsMap[B],A[B],n):B===n.textNodeName?e(t.val,A[B],n):e(t.child[B],A[B],n),g=s(g,p)}}return g}return o},a=function(e){switch(e){case void 0:return r.missingPremitive;case null:return r.nilPremitive;case"":return r.emptyValue;default:return e}},s=function(e,t){return g(t[0])||g(e[e.length-1])||(e+=r.boundryChar),e+t},g=function(e){return-1!==i.indexOf(e)};var c=A(356),u=A(172).buildOptions;t.convert2nimn=function(e,t,A){return A=u(A,c.defaultOptions,c.props),o(e,t,A)}},function(e,t,A){"use strict";var n=A(172),r=A(172).buildOptions,i=A(356),o=function e(t,A,r){for(var i,o="{",a=Object.keys(t.child),s=0;s<a.length;s++){var g=a[s];if(t.child[g]&&t.child[g].length>1){for(var c in o+='"'+g+'" : [ ',t.child[g])o+=e(t.child[g][c],A)+" , ";o=o.substr(0,o.length-1)+" ] "}else o+='"'+g+'" : '+e(t.child[g][0],A)+" ,"}return n.merge(o,t.attrsMap),n.isEmptyObject(o)?n.isExist(t.val)?t.val:"":(n.isExist(t.val)&&("string"!==typeof t.val||""!==t.val&&t.val!==A.cdataPositionChar)&&(o+='"'+A.textNodeName+'" : '+(!0!==(i=t.val)&&!1!==i&&isNaN(i)?'"'+i+'"':i)),","===o[o.length-1]&&(o=o.substr(0,o.length-2)),o+"}")};t.convertToJsonString=function(e,t){return(t=r(t,i.defaultOptions,i.props)).indentBy=t.indentBy||"",o(e,t,0)}},function(e,t,A){"use strict";var n=A(862),r=A(172).buildOptions,i={attributeNamePrefix:"@_",attrNodeName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataTagName:!1,cdataPositionChar:"\\c",format:!1,indentBy:" ",supressEmptyNode:!1,tagValueProcessor:function(e){return e},attrValueProcessor:function(e){return e}},o=["attributeNamePrefix","attrNodeName","textNodeName","ignoreAttributes","cdataTagName","cdataPositionChar","format","indentBy","supressEmptyNode","tagValueProcessor","attrValueProcessor","rootNodeName"];function a(e){this.options=r(e,i,o),this.options.ignoreAttributes||this.options.attrNodeName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=f),this.options.cdataTagName?this.isCDATA=d:this.isCDATA=function(){return!1},this.replaceCDATAstr=g,this.replaceCDATAarr=c,this.processTextOrObjNode=s,this.options.format?(this.indentate=h,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine=""),this.options.supressEmptyNode?(this.buildTextNode=C,this.buildObjNode=l):(this.buildTextNode=I,this.buildObjNode=u),this.buildTextValNode=I,this.buildObjectNode=u}function s(e,t,A){var n=this.j2x(e,A+1);return void 0!==e[this.options.textNodeName]&&1===Object.keys(e).length?this.buildTextNode(n.val,t,n.attrStr,A):this.buildObjNode(n.val,t,n.attrStr,A)}function g(e,t){return e=this.options.tagValueProcessor(""+e),""===this.options.cdataPositionChar||""===e?e+"<![CDATA["+t+"]]"+this.tagEndChar:e.replace(this.options.cdataPositionChar,"<![CDATA["+t+"]]"+this.tagEndChar)}function c(e,t){if(e=this.options.tagValueProcessor(""+e),""===this.options.cdataPositionChar||""===e)return e+"<![CDATA["+t.join("]]><![CDATA[")+"]]"+this.tagEndChar;for(var A in t)e=e.replace(this.options.cdataPositionChar,"<![CDATA["+t[A]+"]]>");return e+this.newLine}function u(e,t,A,n){return A&&-1===e.indexOf("<")?this.indentate(n)+"<"+t+A+">"+e+"</"+t+this.tagEndChar:this.indentate(n)+"<"+t+A+this.tagEndChar+e+this.indentate(n)+"</"+t+this.tagEndChar}function l(e,t,A,n){return""!==e?this.buildObjectNode(e,t,A,n):this.indentate(n)+"<"+t+A+"/"+this.tagEndChar}function I(e,t,A,n){return this.indentate(n)+"<"+t+A+">"+this.options.tagValueProcessor(e)+"</"+t+this.tagEndChar}function C(e,t,A,n){return""!==e?this.buildTextValNode(e,t,A,n):this.indentate(n)+"<"+t+A+"/"+this.tagEndChar}function h(e){return this.options.indentBy.repeat(e)}function f(e){return!!e.startsWith(this.options.attributeNamePrefix)&&e.substr(this.attrPrefixLen)}function d(e){return e===this.options.cdataTagName}a.prototype.parse=function(e){return Array.isArray(e)&&this.options.rootNodeName&&this.options.rootNodeName.length>1&&(e=n({},this.options.rootNodeName,e)),this.j2x(e,0).val},a.prototype.j2x=function(e,t){var A="",n="";for(var r in e)if("undefined"===typeof e[r]);else if(null===e[r])n+=this.indentate(t)+"<"+r+"/"+this.tagEndChar;else if(e[r]instanceof Date)n+=this.buildTextNode(e[r],r,"",t);else if("object"!==typeof e[r]){var i=this.isAttribute(r);i?A+=" "+i+'="'+this.options.attrValueProcessor(""+e[r])+'"':this.isCDATA(r)?e[this.options.textNodeName]?n+=this.replaceCDATAstr(e[this.options.textNodeName],e[r]):n+=this.replaceCDATAstr("",e[r]):r===this.options.textNodeName?e[this.options.cdataTagName]||(n+=this.options.tagValueProcessor(""+e[r])):n+=this.buildTextNode(e[r],r,"",t)}else if(Array.isArray(e[r]))if(this.isCDATA(r))n+=this.indentate(t),e[this.options.textNodeName]?n+=this.replaceCDATAarr(e[this.options.textNodeName],e[r]):n+=this.replaceCDATAarr("",e[r]);else for(var o=e[r].length,a=0;a<o;a++){var s=e[r][a];"undefined"===typeof s||(n+=null===s?this.indentate(t)+"<"+r+"/"+this.tagEndChar:"object"===typeof s?this.processTextOrObjNode(s,r,t):this.buildTextNode(s,r,"",t))}else if(this.options.attrNodeName&&r===this.options.attrNodeName)for(var g=Object.keys(e[r]),c=g.length,u=0;u<c;u++)A+=" "+g[u]+'="'+this.options.attrValueProcessor(""+e[r][g[u]])+'"';else n+=this.processTextOrObjNode(e[r],r,t);return{attrStr:A,val:n}},e.exports=a},function(e,t){e.exports=function(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}},,function(e,t,A){"use strict";var n=A(95),r=A(251);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"self",{enumerable:!0,get:function(){return i.self}}),Object.defineProperty(t,"window",{enumerable:!0,get:function(){return i.window}}),Object.defineProperty(t,"global",{enumerable:!0,get:function(){return i.global}}),Object.defineProperty(t,"document",{enumerable:!0,get:function(){return i.document}}),Object.defineProperty(t,"process",{enumerable:!0,get:function(){return i.process}}),Object.defineProperty(t,"console",{enumerable:!0,get:function(){return i.console}}),Object.defineProperty(t,"isBrowser",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"isBrowserMainThread",{enumerable:!0,get:function(){return o.isBrowserMainThread}}),Object.defineProperty(t,"getBrowser",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"isMobile",{enumerable:!0,get:function(){return a.isMobile}}),Object.defineProperty(t,"isElectron",{enumerable:!0,get:function(){return s.default}});var i=A(573),o=c(A(574)),a=c(A(865)),s=n(A(463));function g(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,A=new WeakMap;return(g=function(e){return e?A:t})(e)}function c(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var A=g(t);if(A&&A.has(e))return A.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var a=i?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(n,o,a):n[o]=e[o]}return n.default=e,A&&A.set(e,n),n}},function(e,t,A){"use strict";var n=A(95);Object.defineProperty(t,"__esModule",{value:!0}),t.isMobile=function(){return"undefined"!==typeof r.window.orientation},t.default=function(e){if(!e&&!(0,i.default)())return"Node";if((0,o.default)(e))return"Electron";var t="undefined"!==typeof navigator?navigator:{},A=e||t.userAgent||"";if(A.indexOf("Edge")>-1)return"Edge";var n=-1!==A.indexOf("MSIE "),a=-1!==A.indexOf("Trident/");if(n||a)return"IE";if(r.window.chrome)return"Chrome";if(r.window.safari)return"Safari";if(r.window.mozInnerScreenX)return"Firefox";return"Unknown"};var r=A(573),i=n(A(574)),o=n(A(463))},function(e,t,A){"use strict";function n(e){var t=this;if(t instanceof n||(t=new n),t.tail=null,t.head=null,t.length=0,e&&"function"===typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var A=0,r=arguments.length;A<r;A++)t.push(arguments[A]);return t}function r(e,t,A){var n=t===e.head?new a(A,null,t,e):new a(A,t,t.next,e);return null===n.next&&(e.tail=n),null===n.prev&&(e.head=n),e.length++,n}function i(e,t){e.tail=new a(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function o(e,t){e.head=new a(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function a(e,t,A,n){if(!(this instanceof a))return new a(e,t,A,n);this.list=n,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,A?(A.prev=this,this.next=A):this.next=null}e.exports=n,n.Node=a,n.create=n,n.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,A=e.prev;return t&&(t.prev=A),A&&(A.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=A),e.list.length--,e.next=null,e.prev=null,e.list=null,t},n.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}},n.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}},n.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)i(this,arguments[e]);return this.length},n.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)o(this,arguments[e]);return this.length},n.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},n.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},n.prototype.forEach=function(e,t){t=t||this;for(var A=this.head,n=0;null!==A;n++)e.call(t,A.value,n,this),A=A.next},n.prototype.forEachReverse=function(e,t){t=t||this;for(var A=this.tail,n=this.length-1;null!==A;n--)e.call(t,A.value,n,this),A=A.prev},n.prototype.get=function(e){for(var t=0,A=this.head;null!==A&&t<e;t++)A=A.next;if(t===e&&null!==A)return A.value},n.prototype.getReverse=function(e){for(var t=0,A=this.tail;null!==A&&t<e;t++)A=A.prev;if(t===e&&null!==A)return A.value},n.prototype.map=function(e,t){t=t||this;for(var A=new n,r=this.head;null!==r;)A.push(e.call(t,r.value,this)),r=r.next;return A},n.prototype.mapReverse=function(e,t){t=t||this;for(var A=new n,r=this.tail;null!==r;)A.push(e.call(t,r.value,this)),r=r.prev;return A},n.prototype.reduce=function(e,t){var A,n=this.head;if(arguments.length>1)A=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");n=this.head.next,A=this.head.value}for(var r=0;null!==n;r++)A=e(A,n.value,r),n=n.next;return A},n.prototype.reduceReverse=function(e,t){var A,n=this.tail;if(arguments.length>1)A=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");n=this.tail.prev,A=this.tail.value}for(var r=this.length-1;null!==n;r--)A=e(A,n.value,r),n=n.prev;return A},n.prototype.toArray=function(){for(var e=new Array(this.length),t=0,A=this.head;null!==A;t++)e[t]=A.value,A=A.next;return e},n.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,A=this.tail;null!==A;t++)e[t]=A.value,A=A.prev;return e},n.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var A=new n;if(t<e||t<0)return A;e<0&&(e=0),t>this.length&&(t=this.length);for(var r=0,i=this.head;null!==i&&r<e;r++)i=i.next;for(;null!==i&&r<t;r++,i=i.next)A.push(i.value);return A},n.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var A=new n;if(t<e||t<0)return A;e<0&&(e=0),t>this.length&&(t=this.length);for(var r=this.length,i=this.tail;null!==i&&r>t;r--)i=i.prev;for(;null!==i&&r>e;r--,i=i.prev)A.push(i.value);return A},n.prototype.splice=function(e,t){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var A=0,n=this.head;null!==n&&A<e;A++)n=n.next;var i=[];for(A=0;n&&A<t;A++)i.push(n.value),n=this.removeNode(n);null===n&&(n=this.tail),n!==this.head&&n!==this.tail&&(n=n.prev);for(A=0;A<(arguments.length<=2?0:arguments.length-2);A++)n=r(this,n,A+2<2||arguments.length<=A+2?void 0:arguments[A+2]);return i},n.prototype.reverse=function(){for(var e=this.head,t=this.tail,A=e;null!==A;A=A.prev){var n=A.prev;A.prev=A.next,A.next=n}return this.head=t,this.tail=e,this};try{A(867)(n)}catch(s){}},function(e,t,A){"use strict";var n=A(3);e.exports=function(e){e.prototype[Symbol.iterator]=n.mark((function e(){var t;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=this.head;case 1:if(!t){e.next=7;break}return e.next=4,t.value;case 4:t=t.next,e.next=1;break;case 7:case"end":return e.stop()}}),e,this)}))}},function(e,t,A){(function(e){var n;!function(e,r,i){function o(e){var t=this,A=function(){var e=4022871197;return function(t){t=String(t);for(var A=0;A<t.length;A++){var n=.02519603282416938*(e+=t.charCodeAt(A));n-=e=n>>>0,e=(n*=e)>>>0,e+=4294967296*(n-=e)}return 2.3283064365386963e-10*(e>>>0)}}();t.next=function(){var e=2091639*t.s0+2.3283064365386963e-10*t.c;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=0|e)},t.c=1,t.s0=A(" "),t.s1=A(" "),t.s2=A(" "),t.s0-=A(e),t.s0<0&&(t.s0+=1),t.s1-=A(e),t.s1<0&&(t.s1+=1),t.s2-=A(e),t.s2<0&&(t.s2+=1),A=null}function a(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function s(e,t){var A=new o(e),n=t&&t.state,r=A.next;return r.int32=function(){return 4294967296*A.next()|0},r.double=function(){return r()+11102230246251565e-32*(2097152*r()|0)},r.quick=r,n&&("object"==typeof n&&a(n,A),r.state=function(){return a(A,{})}),r}r&&r.exports?r.exports=s:A(128)&&A(253)?void 0===(n=function(){return s}.call(t,A,t,r))||(r.exports=n):this.alea=s}(0,e,A(128))}).call(this,A(155)(e))},function(e,t,A){(function(e){var n;!function(e,r,i){function o(e){var t=this,A="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:A+=e;for(var n=0;n<A.length+64;n++)t.x^=0|A.charCodeAt(n),t.next()}function a(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function s(e,t){var A=new o(e),n=t&&t.state,r=function(){return(A.next()>>>0)/4294967296};return r.double=function(){do{var e=((A.next()>>>11)+(A.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=A.next,r.quick=r,n&&("object"==typeof n&&a(n,A),r.state=function(){return a(A,{})}),r}r&&r.exports?r.exports=s:A(128)&&A(253)?void 0===(n=function(){return s}.call(t,A,t,r))||(r.exports=n):this.xor128=s}(0,e,A(128))}).call(this,A(155)(e))},function(e,t,A){(function(e){var n;!function(e,r,i){function o(e){var t=this,A="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:A+=e;for(var n=0;n<A.length+64;n++)t.x^=0|A.charCodeAt(n),n==A.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function a(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function s(e,t){var A=new o(e),n=t&&t.state,r=function(){return(A.next()>>>0)/4294967296};return r.double=function(){do{var e=((A.next()>>>11)+(A.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=A.next,r.quick=r,n&&("object"==typeof n&&a(n,A),r.state=function(){return a(A,{})}),r}r&&r.exports?r.exports=s:A(128)&&A(253)?void 0===(n=function(){return s}.call(t,A,t,r))||(r.exports=n):this.xorwow=s}(0,e,A(128))}).call(this,A(155)(e))},function(e,t,A){(function(e){var n;!function(e,r,i){function o(e){var t=this;t.next=function(){var e,A,n=t.x,r=t.i;return e=n[r],A=(e^=e>>>7)^e<<24,A^=(e=n[r+1&7])^e>>>10,A^=(e=n[r+3&7])^e>>>3,A^=(e=n[r+4&7])^e<<7,e=n[r+7&7],A^=(e^=e<<13)^e<<9,n[r]=A,t.i=r+1&7,A},function(e,t){var A,n=[];if(t===(0|t))n[0]=t;else for(t=""+t,A=0;A<t.length;++A)n[7&A]=n[7&A]<<15^t.charCodeAt(A)+n[A+1&7]<<13;for(;n.length<8;)n.push(0);for(A=0;A<8&&0===n[A];++A);for(8==A?n[7]=-1:n[A],e.x=n,e.i=0,A=256;A>0;--A)e.next()}(t,e)}function a(e,t){return t.x=e.x.slice(),t.i=e.i,t}function s(e,t){null==e&&(e=+new Date);var A=new o(e),n=t&&t.state,r=function(){return(A.next()>>>0)/4294967296};return r.double=function(){do{var e=((A.next()>>>11)+(A.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=A.next,r.quick=r,n&&(n.x&&a(n,A),r.state=function(){return a(A,{})}),r}r&&r.exports?r.exports=s:A(128)&&A(253)?void 0===(n=function(){return s}.call(t,A,t,r))||(r.exports=n):this.xorshift7=s}(0,e,A(128))}).call(this,A(155)(e))},function(e,t,A){(function(e){var n;!function(e,r,i){function o(e){var t=this;t.next=function(){var e,A,n=t.w,r=t.X,i=t.i;return t.w=n=n+1640531527|0,A=r[i+34&127],e=r[i=i+1&127],A^=A<<13,e^=e<<17,A^=A>>>15,e^=e>>>12,A=r[i]=A^e,t.i=i,A+(n^n>>>16)|0},function(e,t){var A,n,r,i,o,a=[],s=128;for(t===(0|t)?(n=t,t=null):(t+="\0",n=0,s=Math.max(s,t.length)),r=0,i=-32;i<s;++i)t&&(n^=t.charCodeAt((i+32)%t.length)),0===i&&(o=n),n^=n<<10,n^=n>>>15,n^=n<<4,n^=n>>>13,i>=0&&(o=o+1640531527|0,r=0==(A=a[127&i]^=n+o)?r+1:0);for(r>=128&&(a[127&(t&&t.length||0)]=-1),r=127,i=512;i>0;--i)n=a[r+34&127],A=a[r=r+1&127],n^=n<<13,A^=A<<17,n^=n>>>15,A^=A>>>12,a[r]=n^A;e.w=o,e.X=a,e.i=r}(t,e)}function a(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function s(e,t){null==e&&(e=+new Date);var A=new o(e),n=t&&t.state,r=function(){return(A.next()>>>0)/4294967296};return r.double=function(){do{var e=((A.next()>>>11)+(A.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=A.next,r.quick=r,n&&(n.X&&a(n,A),r.state=function(){return a(A,{})}),r}r&&r.exports?r.exports=s:A(128)&&A(253)?void 0===(n=function(){return s}.call(t,A,t,r))||(r.exports=n):this.xor4096=s}(0,e,A(128))}).call(this,A(155)(e))},function(e,t,A){(function(e){var n;!function(e,r,i){function o(e){var t=this,A="";t.next=function(){var e=t.b,A=t.c,n=t.d,r=t.a;return e=e<<25^e>>>7^A,A=A-n|0,n=n<<24^n>>>8^r,r=r-e|0,t.b=e=e<<20^e>>>12^A,t.c=A=A-n|0,t.d=n<<16^A>>>16^r,t.a=r-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):A+=e;for(var n=0;n<A.length+20;n++)t.b^=0|A.charCodeAt(n),t.next()}function a(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function s(e,t){var A=new o(e),n=t&&t.state,r=function(){return(A.next()>>>0)/4294967296};return r.double=function(){do{var e=((A.next()>>>11)+(A.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=A.next,r.quick=r,n&&("object"==typeof n&&a(n,A),r.state=function(){return a(A,{})}),r}r&&r.exports?r.exports=s:A(128)&&A(253)?void 0===(n=function(){return s}.call(t,A,t,r))||(r.exports=n):this.tychei=s}(0,e,A(128))}).call(this,A(155)(e))},function(e,t,A){var n;!function(r,i,o){var a,s=o.pow(256,6),g=o.pow(2,52),c=2*g;function u(e,t,A){var n=[],u=C(function e(t,A){var n,r=[],i=typeof t;if(A&&"object"==i)for(n in t)try{r.push(e(t[n],A-1))}catch(o){}return r.length?r:"string"==i?t:t+"\0"}((t=1==t?{entropy:!0}:t||{}).entropy?[e,h(i)]:null==e?function(){try{var e;return a&&(e=a.randomBytes)?e=e(256):(e=new Uint8Array(256),(r.crypto||r.msCrypto).getRandomValues(e)),h(e)}catch(n){var t=r.navigator,A=t&&t.plugins;return[+new Date,r,A,r.screen,h(i)]}}():e,3),n),f=new l(n),d=function(){for(var e=f.g(6),t=s,A=0;e<g;)e=256*(e+A),t*=256,A=f.g(1);for(;e>=c;)e/=2,t/=2,A>>>=1;return(e+A)/t};return d.int32=function(){return 0|f.g(4)},d.quick=function(){return f.g(4)/4294967296},d.double=d,C(h(f.S),i),(t.pass||A||function(e,t,A,n){return n&&(n.S&&I(n,f),e.state=function(){return I(f,{})}),A?(o.random=e,t):e})(d,u,"global"in t?t.global:this==o,t.state)}function l(e){var t,A=e.length,n=this,r=0,i=n.i=n.j=0,o=n.S=[];for(A||(e=[A++]);r<256;)o[r]=r++;for(r=0;r<256;r++)o[r]=o[i=255&i+e[r%A]+(t=o[r])],o[i]=t;(n.g=function(e){for(var t,A=0,r=n.i,i=n.j,o=n.S;e--;)t=o[r=255&r+1],A=256*A+o[255&(o[r]=o[i=255&i+t])+(o[i]=t)];return n.i=r,n.j=i,A})(256)}function I(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function C(e,t){for(var A,n=e+"",r=0;r<n.length;)t[255&r]=255&(A^=19*t[255&r])+n.charCodeAt(r++);return h(t)}function h(e){return String.fromCharCode.apply(0,e)}if(C(o.random(),i),e.exports){e.exports=u;try{a=A(875)}catch(f){}}else void 0===(n=function(){return u}.call(t,A,t,e))||(e.exports=n)}("undefined"!==typeof self?self:this,[],Math)},,function(e,t,A){e.exports=function(){"use strict";function e(e,n,r,i,o){!function e(A,n,r,i,o){for(;i>r;){if(i-r>600){var a=i-r+1,s=n-r+1,g=Math.log(a),c=.5*Math.exp(2*g/3),u=.5*Math.sqrt(g*c*(a-c)/a)*(s-a/2<0?-1:1);e(A,n,Math.max(r,Math.floor(n-s*c/a+u)),Math.min(i,Math.floor(n+(a-s)*c/a+u)),o)}var l=A[n],I=r,C=i;for(t(A,r,n),o(A[i],l)>0&&t(A,r,i);I<C;){for(t(A,I,C),I++,C--;o(A[I],l)<0;)I++;for(;o(A[C],l)>0;)C--}0===o(A[r],l)?t(A,r,C):t(A,++C,i),C<=n&&(r=C+1),n<=C&&(i=C-1)}}(e,n,r||0,i||e.length-1,o||A)}function t(e,t,A){var n=e[t];e[t]=e[A],e[A]=n}function A(e,t){return e<t?-1:e>t?1:0}var n=function(e){void 0===e&&(e=9),this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function r(e,t,A){if(!A)return t.indexOf(e);for(var n=0;n<t.length;n++)if(A(e,t[n]))return n;return-1}function i(e,t){o(e,0,e.children.length,t,e)}function o(e,t,A,n,r){r||(r=C(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(var i=t;i<A;i++){var o=e.children[i];a(r,e.leaf?n(o):o)}return r}function a(e,t){return e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY),e}function s(e,t){return e.minX-t.minX}function g(e,t){return e.minY-t.minY}function c(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function u(e){return e.maxX-e.minX+(e.maxY-e.minY)}function l(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function I(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function C(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function h(t,A,n,r,i){for(var o=[A,n];o.length;)if(!((n=o.pop())-(A=o.pop())<=r)){var a=A+Math.ceil((n-A)/r/2)*r;e(t,a,A,n,i),o.push(A,a,a,n)}}return n.prototype.all=function(){return this._all(this.data,[])},n.prototype.search=function(e){var t=this.data,A=[];if(!I(e,t))return A;for(var n=this.toBBox,r=[];t;){for(var i=0;i<t.children.length;i++){var o=t.children[i],a=t.leaf?n(o):o;I(e,a)&&(t.leaf?A.push(o):l(e,a)?this._all(o,A):r.push(o))}t=r.pop()}return A},n.prototype.collides=function(e){var t=this.data;if(!I(e,t))return!1;for(var A=[];t;){for(var n=0;n<t.children.length;n++){var r=t.children[n],i=t.leaf?this.toBBox(r):r;if(I(e,i)){if(t.leaf||l(e,i))return!0;A.push(r)}}t=A.pop()}return!1},n.prototype.load=function(e){if(!e||!e.length)return this;if(e.length<this._minEntries){for(var t=0;t<e.length;t++)this.insert(e[t]);return this}var A=this._build(e.slice(),0,e.length-1,0);if(this.data.children.length)if(this.data.height===A.height)this._splitRoot(this.data,A);else{if(this.data.height<A.height){var n=this.data;this.data=A,A=n}this._insert(A,this.data.height-A.height-1,!0)}else this.data=A;return this},n.prototype.insert=function(e){return e&&this._insert(e,this.data.height-1),this},n.prototype.clear=function(){return this.data=C([]),this},n.prototype.remove=function(e,t){if(!e)return this;for(var A,n,i,o=this.data,a=this.toBBox(e),s=[],g=[];o||s.length;){if(o||(o=s.pop(),n=s[s.length-1],A=g.pop(),i=!0),o.leaf){var c=r(e,o.children,t);if(-1!==c)return o.children.splice(c,1),s.push(o),this._condense(s),this}i||o.leaf||!l(o,a)?n?(A++,o=n.children[A],i=!1):o=null:(s.push(o),g.push(A),A=0,n=o,o=o.children[0])}return this},n.prototype.toBBox=function(e){return e},n.prototype.compareMinX=function(e,t){return e.minX-t.minX},n.prototype.compareMinY=function(e,t){return e.minY-t.minY},n.prototype.toJSON=function(){return this.data},n.prototype.fromJSON=function(e){return this.data=e,this},n.prototype._all=function(e,t){for(var A=[];e;)e.leaf?t.push.apply(t,e.children):A.push.apply(A,e.children),e=A.pop();return t},n.prototype._build=function(e,t,A,n){var r,o=A-t+1,a=this._maxEntries;if(o<=a)return i(r=C(e.slice(t,A+1)),this.toBBox),r;n||(n=Math.ceil(Math.log(o)/Math.log(a)),a=Math.ceil(o/Math.pow(a,n-1))),(r=C([])).leaf=!1,r.height=n;var s=Math.ceil(o/a),g=s*Math.ceil(Math.sqrt(a));h(e,t,A,g,this.compareMinX);for(var c=t;c<=A;c+=g){var u=Math.min(c+g-1,A);h(e,c,u,s,this.compareMinY);for(var l=c;l<=u;l+=s){var I=Math.min(l+s-1,u);r.children.push(this._build(e,l,I,n-1))}}return i(r,this.toBBox),r},n.prototype._chooseSubtree=function(e,t,A,n){for(;n.push(t),!t.leaf&&n.length-1!==A;){for(var r=1/0,i=1/0,o=void 0,a=0;a<t.children.length;a++){var s=t.children[a],g=c(s),u=(l=e,I=s,(Math.max(I.maxX,l.maxX)-Math.min(I.minX,l.minX))*(Math.max(I.maxY,l.maxY)-Math.min(I.minY,l.minY))-g);u<i?(i=u,r=g<r?g:r,o=s):u===i&&g<r&&(r=g,o=s)}t=o||t.children[0]}var l,I;return t},n.prototype._insert=function(e,t,A){var n=A?e:this.toBBox(e),r=[],i=this._chooseSubtree(n,this.data,t,r);for(i.children.push(e),a(i,n);t>=0&&r[t].children.length>this._maxEntries;)this._split(r,t),t--;this._adjustParentBBoxes(n,r,t)},n.prototype._split=function(e,t){var A=e[t],n=A.children.length,r=this._minEntries;this._chooseSplitAxis(A,r,n);var o=this._chooseSplitIndex(A,r,n),a=C(A.children.splice(o,A.children.length-o));a.height=A.height,a.leaf=A.leaf,i(A,this.toBBox),i(a,this.toBBox),t?e[t-1].children.push(a):this._splitRoot(A,a)},n.prototype._splitRoot=function(e,t){this.data=C([e,t]),this.data.height=e.height+1,this.data.leaf=!1,i(this.data,this.toBBox)},n.prototype._chooseSplitIndex=function(e,t,A){for(var n,r,i,a,s,g,u,l=1/0,I=1/0,C=t;C<=A-t;C++){var h=o(e,0,C,this.toBBox),f=o(e,C,A,this.toBBox),d=(r=h,i=f,a=Math.max(r.minX,i.minX),s=Math.max(r.minY,i.minY),g=Math.min(r.maxX,i.maxX),u=Math.min(r.maxY,i.maxY),Math.max(0,g-a)*Math.max(0,u-s)),B=c(h)+c(f);d<l?(l=d,n=C,I=B<I?B:I):d===l&&B<I&&(I=B,n=C)}return n||A-t},n.prototype._chooseSplitAxis=function(e,t,A){var n=e.leaf?this.compareMinX:s,r=e.leaf?this.compareMinY:g;this._allDistMargin(e,t,A,n)<this._allDistMargin(e,t,A,r)&&e.children.sort(n)},n.prototype._allDistMargin=function(e,t,A,n){e.children.sort(n);for(var r=this.toBBox,i=o(e,0,t,r),s=o(e,A-t,A,r),g=u(i)+u(s),c=t;c<A-t;c++){var l=e.children[c];a(i,e.leaf?r(l):l),g+=u(i)}for(var I=A-t-1;I>=t;I--){var C=e.children[I];a(s,e.leaf?r(C):C),g+=u(s)}return g},n.prototype._adjustParentBBoxes=function(e,t,A){for(var n=A;n>=0;n--)a(t[n],e)},n.prototype._condense=function(e){for(var t=e.length-1,A=void 0;t>=0;t--)0===e[t].children.length?t>0?(A=e[t-1].children).splice(A.indexOf(e[t]),1):this.clear():i(e[t],this.toBBox)},n}()},function(e,t,A){e.exports=function(){"use strict";var e=function(e,A){if(void 0===e&&(e=[]),void 0===A&&(A=t),this.data=e,this.length=this.data.length,this.compare=A,this.length>0)for(var n=(this.length>>1)-1;n>=0;n--)this._down(n)};function t(e,t){return e<t?-1:e>t?1:0}return e.prototype.push=function(e){this.data.push(e),this.length++,this._up(this.length-1)},e.prototype.pop=function(){if(0!==this.length){var e=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),e}},e.prototype.peek=function(){return this.data[0]},e.prototype._up=function(e){for(var t=this.data,A=this.compare,n=t[e];e>0;){var r=e-1>>1,i=t[r];if(A(n,i)>=0)break;t[e]=i,e=r}t[e]=n},e.prototype._down=function(e){for(var t=this.data,A=this.compare,n=this.length>>1,r=t[e];e<n;){var i=1+(e<<1),o=t[i],a=i+1;if(a<this.length&&A(t[a],o)<0&&(i=a,o=t[a]),A(o,r)>=0)break;t[e]=o,e=i}t[e]=r},e}()},function(e,t,A){var n=A(879),r=A(880);e.exports=function(e,t,A,i){return t.length>0&&Array.isArray(t[0])?r(e,t,A,i):n(e,t,A,i)},e.exports.nested=r,e.exports.flat=n},function(e,t){e.exports=function(e,t,A,n){var r=e[0],i=e[1],o=!1;void 0===A&&(A=0),void 0===n&&(n=t.length);for(var a=(n-A)/2,s=0,g=a-1;s<a;g=s++){var c=t[A+2*s+0],u=t[A+2*s+1],l=t[A+2*g+0],I=t[A+2*g+1];u>i!==I>i&&r<(l-c)*(i-u)/(I-u)+c&&(o=!o)}return o}},function(e,t){e.exports=function(e,t,A,n){var r=e[0],i=e[1],o=!1;void 0===A&&(A=0),void 0===n&&(n=t.length);for(var a=n-A,s=0,g=a-1;s<a;g=s++){var c=t[s+A][0],u=t[s+A][1],l=t[g+A][0],I=t[g+A][1];u>i!==I>i&&r<(l-c)*(i-u)/(I-u)+c&&(o=!o)}return o}},function(e,t,A){!function(e){"use strict";var t=134217729;function A(e,t,A,n,r){var i,o,a,s,g=t[0],c=n[0],u=0,l=0;c>g==c>-g?(i=g,g=t[++u]):(i=c,c=n[++l]);var I=0;if(u<e&&l<A)for(c>g==c>-g?(a=i-((o=g+i)-g),g=t[++u]):(a=i-((o=c+i)-c),c=n[++l]),i=o,0!==a&&(r[I++]=a);u<e&&l<A;)c>g==c>-g?(a=i-((o=i+g)-(s=o-i))+(g-s),g=t[++u]):(a=i-((o=i+c)-(s=o-i))+(c-s),c=n[++l]),i=o,0!==a&&(r[I++]=a);for(;u<e;)a=i-((o=i+g)-(s=o-i))+(g-s),g=t[++u],i=o,0!==a&&(r[I++]=a);for(;l<A;)a=i-((o=i+c)-(s=o-i))+(c-s),c=n[++l],i=o,0!==a&&(r[I++]=a);return 0===i&&0!==I||(r[I++]=i),I}function n(e){return new Float64Array(e)}var r=n(4),i=n(8),o=n(12),a=n(16),s=n(4);e.orient2d=function(e,n,g,c,u,l){var I=(n-l)*(g-u),C=(e-u)*(c-l),h=I-C;if(0===I||0===C||I>0!=C>0)return h;var f=Math.abs(I+C);return Math.abs(h)>=33306690738754716e-32*f?h:-function(e,n,g,c,u,l,I){var C,h,f,d,B,p,E,Q,y,v,m,b,w,S,F,R,D,G,k=e-u,x=g-u,N=n-l,U=c-l;B=(F=(Q=k-(E=(p=t*k)-(p-k)))*(v=U-(y=(p=t*U)-(p-U)))-((S=k*U)-E*y-Q*y-E*v))-(m=F-(D=(Q=N-(E=(p=t*N)-(p-N)))*(v=x-(y=(p=t*x)-(p-x)))-((R=N*x)-E*y-Q*y-E*v))),r[0]=F-(m+B)+(B-D),B=(w=S-((b=S+m)-(B=b-S))+(m-B))-(m=w-R),r[1]=w-(m+B)+(B-R),B=(G=b+m)-b,r[2]=b-(G-B)+(m-B),r[3]=G;var _=function(e,t){for(var A=t[0],n=1;n<4;n++)A+=t[n];return A}(0,r),M=22204460492503146e-32*I;if(_>=M||-_>=M)return _;if(C=e-(k+(B=e-k))+(B-u),f=g-(x+(B=g-x))+(B-u),h=n-(N+(B=n-N))+(B-l),d=c-(U+(B=c-U))+(B-l),0===C&&0===h&&0===f&&0===d)return _;if(M=11093356479670487e-47*I+33306690738754706e-32*Math.abs(_),(_+=k*d+U*C-(N*f+x*h))>=M||-_>=M)return _;B=(F=(Q=C-(E=(p=t*C)-(p-C)))*(v=U-(y=(p=t*U)-(p-U)))-((S=C*U)-E*y-Q*y-E*v))-(m=F-(D=(Q=h-(E=(p=t*h)-(p-h)))*(v=x-(y=(p=t*x)-(p-x)))-((R=h*x)-E*y-Q*y-E*v))),s[0]=F-(m+B)+(B-D),B=(w=S-((b=S+m)-(B=b-S))+(m-B))-(m=w-R),s[1]=w-(m+B)+(B-R),B=(G=b+m)-b,s[2]=b-(G-B)+(m-B),s[3]=G;var O=A(4,r,4,s,i);B=(F=(Q=k-(E=(p=t*k)-(p-k)))*(v=d-(y=(p=t*d)-(p-d)))-((S=k*d)-E*y-Q*y-E*v))-(m=F-(D=(Q=N-(E=(p=t*N)-(p-N)))*(v=f-(y=(p=t*f)-(p-f)))-((R=N*f)-E*y-Q*y-E*v))),s[0]=F-(m+B)+(B-D),B=(w=S-((b=S+m)-(B=b-S))+(m-B))-(m=w-R),s[1]=w-(m+B)+(B-R),B=(G=b+m)-b,s[2]=b-(G-B)+(m-B),s[3]=G;var L=A(O,i,4,s,o);B=(F=(Q=C-(E=(p=t*C)-(p-C)))*(v=d-(y=(p=t*d)-(p-d)))-((S=C*d)-E*y-Q*y-E*v))-(m=F-(D=(Q=h-(E=(p=t*h)-(p-h)))*(v=f-(y=(p=t*f)-(p-f)))-((R=h*f)-E*y-Q*y-E*v))),s[0]=F-(m+B)+(B-D),B=(w=S-((b=S+m)-(B=b-S))+(m-B))-(m=w-R),s[1]=w-(m+B)+(B-R),B=(G=b+m)-b,s[2]=b-(G-B)+(m-B),s[3]=G;var T=A(L,o,4,s,a);return a[T-1]}(e,n,g,c,u,l,f)},e.orient2dfast=function(e,t,A,n,r,i){return(t-i)*(A-r)-(e-r)*(n-i)},Object.defineProperty(e,"__esModule",{value:!0})}(t)},function(e,t,A){var n=A(140);e.exports=function(){return n.Date.now()}},function(e,t,A){var n=A(343),r=A(583),i=A(584),o=A(884),a=A(885),s=A(586),g=A(587),c=A(888),u=A(889),l=A(547),I=A(890),C=A(351),h=A(891),f=A(892),d=A(590),B=A(111),p=A(349),E=A(897),Q=A(127),y=A(899),v=A(298),m={};m["[object Arguments]"]=m["[object Array]"]=m["[object ArrayBuffer]"]=m["[object DataView]"]=m["[object Boolean]"]=m["[object Date]"]=m["[object Float32Array]"]=m["[object Float64Array]"]=m["[object Int8Array]"]=m["[object Int16Array]"]=m["[object Int32Array]"]=m["[object Map]"]=m["[object Number]"]=m["[object Object]"]=m["[object RegExp]"]=m["[object Set]"]=m["[object String]"]=m["[object Symbol]"]=m["[object Uint8Array]"]=m["[object Uint8ClampedArray]"]=m["[object Uint16Array]"]=m["[object Uint32Array]"]=!0,m["[object Error]"]=m["[object Function]"]=m["[object WeakMap]"]=!1,e.exports=function e(t,A,b,w,S,F){var R,D=1&A,G=2&A,k=4&A;if(b&&(R=S?b(t,w,S,F):b(t)),void 0!==R)return R;if(!Q(t))return t;var x=B(t);if(x){if(R=h(t),!D)return g(t,R)}else{var N=C(t),U="[object Function]"==N||"[object GeneratorFunction]"==N;if(p(t))return s(t,D);if("[object Object]"==N||"[object Arguments]"==N||U&&!S){if(R=G||U?{}:d(t),!D)return G?u(t,a(R,t)):c(t,o(R,t))}else{if(!m[N])return S?t:{};R=f(t,N,D)}}F||(F=new n);var _=F.get(t);if(_)return _;F.set(t,R),y(t)?t.forEach((function(n){R.add(e(n,A,b,n,t,F))})):E(t)&&t.forEach((function(n,r){R.set(r,e(n,A,b,r,t,F))}));var M=k?G?I:l:G?keysIn:v,O=x?void 0:M(t);return r(O||t,(function(n,r){O&&(n=t[r=n]),i(R,r,e(n,A,b,r,t,F))})),R}},function(e,t,A){var n=A(301),r=A(298);e.exports=function(e,t){return e&&n(t,r(t),e)}},function(e,t,A){var n=A(301),r=A(357);e.exports=function(e,t){return e&&n(t,r(t),e)}},function(e,t,A){var n=A(127),r=A(457),i=A(887),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return i(e);var t=r(e),A=[];for(var a in e)("constructor"!=a||!t&&o.call(e,a))&&A.push(a);return A}},function(e,t){e.exports=function(e){var t=[];if(null!=e)for(var A in Object(e))t.push(A);return t}},function(e,t,A){var n=A(301),r=A(452);e.exports=function(e,t){return n(e,r(e),t)}},function(e,t,A){var n=A(301),r=A(588);e.exports=function(e,t){return n(e,r(e),t)}},function(e,t,A){var n=A(548),r=A(588),i=A(357);e.exports=function(e){return n(e,i,r)}},function(e,t){var A=Object.prototype.hasOwnProperty;e.exports=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&A.call(e,"index")&&(n.index=e.index,n.input=e.input),n}},function(e,t,A){var n=A(467),r=A(893),i=A(894),o=A(895),a=A(589);e.exports=function(e,t,A){var s=e.constructor;switch(t){case"[object ArrayBuffer]":return n(e);case"[object Boolean]":case"[object Date]":return new s(+e);case"[object DataView]":return r(e,A);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return a(e,A);case"[object Map]":return new s;case"[object Number]":case"[object String]":return new s(e);case"[object RegExp]":return i(e);case"[object Set]":return new s;case"[object Symbol]":return o(e)}}},function(e,t,A){var n=A(467);e.exports=function(e,t){var A=t?n(e.buffer):e.buffer;return new e.constructor(A,e.byteOffset,e.byteLength)}},function(e,t){var A=/\w*$/;e.exports=function(e){var t=new e.constructor(e.source,A.exec(e));return t.lastIndex=e.lastIndex,t}},function(e,t,A){var n=A(247),r=n?n.prototype:void 0,i=r?r.valueOf:void 0;e.exports=function(e){return i?Object(i.call(e)):{}}},function(e,t,A){var n=A(127),r=Object.create,i=function(){function e(){}return function(t){if(!n(t))return{};if(r)return r(t);e.prototype=t;var A=new e;return e.prototype=void 0,A}}();e.exports=i},function(e,t,A){var n=A(898),r=A(350),i=A(456),o=i&&i.isMap,a=o?r(o):n;e.exports=a},function(e,t,A){var n=A(351),r=A(154);e.exports=function(e){return r(e)&&"[object Map]"==n(e)}},function(e,t,A){var n=A(900),r=A(350),i=A(456),o=i&&i.isSet,a=o?r(o):n;e.exports=a},function(e,t,A){var n=A(351),r=A(154);e.exports=function(e){return r(e)&&"[object Set]"==n(e)}},function(e,t,A){"use strict";var n="function"===typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,g=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,l=n?Symbol.for("react.concurrent_mode"):60111,I=n?Symbol.for("react.forward_ref"):60112,C=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,f=n?Symbol.for("react.memo"):60115,d=n?Symbol.for("react.lazy"):60116,B=n?Symbol.for("react.block"):60121,p=n?Symbol.for("react.fundamental"):60117,E=n?Symbol.for("react.responder"):60118,Q=n?Symbol.for("react.scope"):60119;function y(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case l:case o:case s:case a:case C:return e;default:switch(e=e&&e.$$typeof){case c:case I:case d:case f:case g:return e;default:return t}}case i:return t}}}function v(e){return y(e)===l}t.AsyncMode=u,t.ConcurrentMode=l,t.ContextConsumer=c,t.ContextProvider=g,t.Element=r,t.ForwardRef=I,t.Fragment=o,t.Lazy=d,t.Memo=f,t.Portal=i,t.Profiler=s,t.StrictMode=a,t.Suspense=C,t.isAsyncMode=function(e){return v(e)||y(e)===u},t.isConcurrentMode=v,t.isContextConsumer=function(e){return y(e)===c},t.isContextProvider=function(e){return y(e)===g},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return y(e)===I},t.isFragment=function(e){return y(e)===o},t.isLazy=function(e){return y(e)===d},t.isMemo=function(e){return y(e)===f},t.isPortal=function(e){return y(e)===i},t.isProfiler=function(e){return y(e)===s},t.isStrictMode=function(e){return y(e)===a},t.isSuspense=function(e){return y(e)===C},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===o||e===l||e===s||e===a||e===C||e===h||"object"===typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===f||e.$$typeof===g||e.$$typeof===c||e.$$typeof===I||e.$$typeof===p||e.$$typeof===E||e.$$typeof===Q||e.$$typeof===B)},t.typeOf=y},function(e,t){function A(t,n){return e.exports=A=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},A(t,n)}e.exports=A},function(e,t){e.exports=function(e,t){if(null==e)return{};var A,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)A=i[n],t.indexOf(A)>=0||(r[A]=e[A]);return r}},function(e,t){e.exports=function(e){if(Array.isArray(e)){for(var t=0,A=new Array(e.length);t<e.length;t++)A[t]=e[t];return A}}},function(e,t){e.exports=function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t,A){var n=A(247),r=A(348),i=A(111),o=n?n.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||r(e)||!!(o&&e&&e[o])}},function(e,t,A){var n=A(912),r=Math.max;e.exports=function(e,t,A){return t=r(void 0===t?e.length-1:t,0),function(){for(var i=arguments,o=-1,a=r(i.length-t,0),s=Array(a);++o<a;)s[o]=i[t+o];o=-1;for(var g=Array(t+1);++o<t;)g[o]=i[o];return g[t]=A(s),n(e,this,g)}}},function(e,t){e.exports=function(e,t,A){switch(A.length){case 0:return e.call(t);case 1:return e.call(t,A[0]);case 2:return e.call(t,A[0],A[1]);case 3:return e.call(t,A[0],A[1],A[2])}return e.apply(t,A)}},function(e,t,A){var n=A(914),r=A(916)(n);e.exports=r},function(e,t,A){var n=A(915),r=A(585),i=A(358),o=r?function(e,t){return r(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:i;e.exports=o},function(e,t){e.exports=function(e){return function(){return e}}},function(e,t){var A=Date.now;e.exports=function(e){var t=0,n=0;return function(){var r=A(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,A){var n=A(448),r=A(592),i=A(593),o=A(449),a=A(922),s=A(450);e.exports=function(e,t,A){var g=-1,c=r,u=e.length,l=!0,I=[],C=I;if(A)l=!1,c=i;else if(u>=200){var h=t?null:a(e);if(h)return s(h);l=!1,c=o,C=new n}else C=t?[]:I;e:for(;++g<u;){var f=e[g],d=t?t(f):f;if(f=A||0!==f?f:0,l&&d===d){for(var B=C.length;B--;)if(C[B]===d)continue e;t&&C.push(d),I.push(f)}else c(C,d,A)||(C!==I&&C.push(d),I.push(f))}return I}},function(e,t,A){var n=A(919),r=A(920),i=A(921);e.exports=function(e,t,A){return t===t?i(e,t,A):n(e,r,A)}},function(e,t){e.exports=function(e,t,A,n){for(var r=e.length,i=A+(n?1:-1);n?i--:++i<r;)if(t(e[i],i,e))return i;return-1}},function(e,t){e.exports=function(e){return e!==e}},function(e,t){e.exports=function(e,t,A){for(var n=A-1,r=e.length;++n<r;)if(e[n]===t)return n;return-1}},function(e,t,A){var n=A(552),r=A(923),i=A(450),o=n&&1/i(new n([,-0]))[1]==1/0?function(e){return new n(e)}:r;e.exports=o},function(e,t){e.exports=function(){}},function(e,t,A){var n=A(448),r=A(592),i=A(593),o=A(472),a=A(350),s=A(449);e.exports=function(e,t,A,g){var c=-1,u=r,l=!0,I=e.length,C=[],h=t.length;if(!I)return C;A&&(t=o(t,a(A))),g?(u=i,l=!1):t.length>=200&&(u=s,l=!1,t=new n(t));e:for(;++c<I;){var f=e[c],d=null==A?f:A(f);if(f=g||0!==f?f:0,l&&d===d){for(var B=h;B--;)if(t[B]===d)continue e;C.push(f)}else u(t,d,g)||C.push(f)}return C}},function(e,t,A){e.exports={default:A(926),__esModule:!0}},function(e,t,A){A(927),e.exports=A(191).Object.assign},function(e,t,A){var n=A(254);n(n.S+n.F,"Object",{assign:A(929)})},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,A){"use strict";var n=A(192),r=A(360),i=A(479),o=A(363),a=A(480),s=A(598),g=Object.assign;e.exports=!g||A(303)((function(){var e={},t={},A=Symbol(),n="abcdefghijklmnopqrst";return e[A]=7,n.split("").forEach((function(e){t[e]=e})),7!=g({},e)[A]||Object.keys(g({},t)).join("")!=n}))?function(e,t){for(var A=a(e),g=arguments.length,c=1,u=i.f,l=o.f;g>c;)for(var I,C=s(arguments[c++]),h=u?r(C).concat(u(C)):r(C),f=h.length,d=0;f>d;)I=h[d++],n&&!l.call(C,I)||(A[I]=C[I]);return A}:g},function(e,t,A){var n=A(257),r=A(931),i=A(932);e.exports=function(e){return function(t,A,o){var a,s=n(t),g=r(s.length),c=i(o,g);if(e&&A!=A){for(;g>c;)if((a=s[c++])!=a)return!0}else for(;g>c;c++)if((e||c in s)&&s[c]===A)return e||c||0;return!e&&-1}}},function(e,t,A){var n=A(475),r=Math.min;e.exports=function(e){return e>0?r(n(e),9007199254740991):0}},function(e,t,A){var n=A(475),r=Math.max,i=Math.min;e.exports=function(e,t){return(e=n(e))<0?r(e+t,0):i(e,t)}},function(e,t,A){A(934);var n=A(191).Object;e.exports=function(e,t,A){return n.defineProperty(e,t,A)}},function(e,t,A){var n=A(254);n(n.S+n.F*!A(192),"Object",{defineProperty:A(217).f})},function(e,t,A){e.exports={default:A(936),__esModule:!0}},function(e,t,A){A(937),A(943),e.exports=A(484).f("iterator")},function(e,t,A){"use strict";var n=A(938)(!0);A(602)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,A=this._i;return A>=t.length?{value:void 0,done:!0}:(e=n(t,A),this._i+=e.length,{value:e,done:!1})}))},function(e,t,A){var n=A(475),r=A(474);e.exports=function(e){return function(t,A){var i,o,a=String(r(t)),s=n(A),g=a.length;return s<0||s>=g?e?"":void 0:(i=a.charCodeAt(s))<55296||i>56319||s+1===g||(o=a.charCodeAt(s+1))<56320||o>57343?e?a.charAt(s):i:e?a.slice(s,s+2):o-56320+(i-55296<<10)+65536}}},function(e,t,A){"use strict";var n=A(482),r=A(359),i=A(483),o={};A(255)(o,A(258)("iterator"),(function(){return this})),e.exports=function(e,t,A){e.prototype=n(o,{next:r(1,A)}),i(e,t+" Iterator")}},function(e,t,A){var n=A(217),r=A(302),i=A(360);e.exports=A(192)?Object.defineProperties:function(e,t){r(e);for(var A,o=i(t),a=o.length,s=0;a>s;)n.f(e,A=o[s++],t[A]);return e}},function(e,t,A){var n=A(190).document;e.exports=n&&n.documentElement},function(e,t,A){var n=A(218),r=A(480),i=A(476)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),n(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},function(e,t,A){A(944);for(var n=A(190),r=A(255),i=A(481),o=A(258)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s<a.length;s++){var g=a[s],c=n[g],u=c&&c.prototype;u&&!u[o]&&r(u,o,g),i[g]=i.Array}},function(e,t,A){"use strict";var n=A(945),r=A(946),i=A(481),o=A(257);e.exports=A(602)(Array,"Array",(function(e,t){this._t=o(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,A=this._i++;return!e||A>=e.length?(this._t=void 0,r(1)):r(0,"keys"==t?A:"values"==t?e[A]:[A,e[A]])}),"values"),i.Arguments=i.Array,n("keys"),n("values"),n("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,A){e.exports={default:A(948),__esModule:!0}},function(e,t,A){A(949),A(954),A(955),A(956),e.exports=A(191).Symbol},function(e,t,A){"use strict";var n=A(190),r=A(218),i=A(192),o=A(254),a=A(603),s=A(950).KEY,g=A(303),c=A(477),u=A(483),l=A(362),I=A(258),C=A(484),h=A(485),f=A(951),d=A(952),B=A(302),p=A(256),E=A(480),Q=A(257),y=A(473),v=A(359),m=A(482),b=A(953),w=A(605),S=A(479),F=A(217),R=A(360),D=w.f,G=F.f,k=b.f,x=n.Symbol,N=n.JSON,U=N&&N.stringify,_=I("_hidden"),M=I("toPrimitive"),O={}.propertyIsEnumerable,L=c("symbol-registry"),T=c("symbols"),Z=c("op-symbols"),H=Object.prototype,Y="function"==typeof x&&!!S.f,J=n.QObject,j=!J||!J.prototype||!J.prototype.findChild,P=i&&g((function(){return 7!=m(G({},"a",{get:function(){return G(this,"a",{value:7}).a}})).a}))?function(e,t,A){var n=D(H,t);n&&delete H[t],G(e,t,A),n&&e!==H&&G(H,t,n)}:G,V=function(e){var t=T[e]=m(x.prototype);return t._k=e,t},K=Y&&"symbol"==typeof x.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof x},W=function(e,t,A){return e===H&&W(Z,t,A),B(e),t=y(t,!0),B(A),r(T,t)?(A.enumerable?(r(e,_)&&e[_][t]&&(e[_][t]=!1),A=m(A,{enumerable:v(0,!1)})):(r(e,_)||G(e,_,v(1,{})),e[_][t]=!0),P(e,t,A)):G(e,t,A)},X=function(e,t){B(e);for(var A,n=f(t=Q(t)),r=0,i=n.length;i>r;)W(e,A=n[r++],t[A]);return e},q=function(e){var t=O.call(this,e=y(e,!0));return!(this===H&&r(T,e)&&!r(Z,e))&&(!(t||!r(this,e)||!r(T,e)||r(this,_)&&this[_][e])||t)},z=function(e,t){if(e=Q(e),t=y(t,!0),e!==H||!r(T,t)||r(Z,t)){var A=D(e,t);return!A||!r(T,t)||r(e,_)&&e[_][t]||(A.enumerable=!0),A}},$=function(e){for(var t,A=k(Q(e)),n=[],i=0;A.length>i;)r(T,t=A[i++])||t==_||t==s||n.push(t);return n},ee=function(e){for(var t,A=e===H,n=k(A?Z:Q(e)),i=[],o=0;n.length>o;)!r(T,t=n[o++])||A&&!r(H,t)||i.push(T[t]);return i};Y||(a((x=function(){if(this instanceof x)throw TypeError("Symbol is not a constructor!");var e=l(arguments.length>0?arguments[0]:void 0),t=function t(A){this===H&&t.call(Z,A),r(this,_)&&r(this[_],e)&&(this[_][e]=!1),P(this,e,v(1,A))};return i&&j&&P(H,e,{configurable:!0,set:t}),V(e)}).prototype,"toString",(function(){return this._k})),w.f=z,F.f=W,A(604).f=b.f=$,A(363).f=q,S.f=ee,i&&!A(361)&&a(H,"propertyIsEnumerable",q,!0),C.f=function(e){return V(I(e))}),o(o.G+o.W+o.F*!Y,{Symbol:x});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),Ae=0;te.length>Ae;)I(te[Ae++]);for(var ne=R(I.store),re=0;ne.length>re;)h(ne[re++]);o(o.S+o.F*!Y,"Symbol",{for:function(e){return r(L,e+="")?L[e]:L[e]=x(e)},keyFor:function(e){if(!K(e))throw TypeError(e+" is not a symbol!");for(var t in L)if(L[t]===e)return t},useSetter:function(){j=!0},useSimple:function(){j=!1}}),o(o.S+o.F*!Y,"Object",{create:function(e,t){return void 0===t?m(e):X(m(e),t)},defineProperty:W,defineProperties:X,getOwnPropertyDescriptor:z,getOwnPropertyNames:$,getOwnPropertySymbols:ee});var ie=g((function(){S.f(1)}));o(o.S+o.F*ie,"Object",{getOwnPropertySymbols:function(e){return S.f(E(e))}}),N&&o(o.S+o.F*(!Y||g((function(){var e=x();return"[null]"!=U([e])||"{}"!=U({a:e})||"{}"!=U(Object(e))}))),"JSON",{stringify:function(e){for(var t,A,n=[e],r=1;arguments.length>r;)n.push(arguments[r++]);if(A=t=n[1],(p(t)||void 0!==e)&&!K(e))return d(t)||(t=function(e,t){if("function"==typeof A&&(t=A.call(this,e,t)),!K(t))return t}),n[1]=t,U.apply(N,n)}}),x.prototype[M]||A(255)(x.prototype,M,x.prototype.valueOf),u(x,"Symbol"),u(Math,"Math",!0),u(n.JSON,"JSON",!0)},function(e,t,A){var n=A(362)("meta"),r=A(256),i=A(218),o=A(217).f,a=0,s=Object.isExtensible||function(){return!0},g=!A(303)((function(){return s(Object.preventExtensions({}))})),c=function(e){o(e,n,{value:{i:"O"+ ++a,w:{}}})},u=e.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,n)){if(!s(e))return"F";if(!t)return"E";c(e)}return e[n].i},getWeak:function(e,t){if(!i(e,n)){if(!s(e))return!0;if(!t)return!1;c(e)}return e[n].w},onFreeze:function(e){return g&&u.NEED&&s(e)&&!i(e,n)&&c(e),e}}},function(e,t,A){var n=A(360),r=A(479),i=A(363);e.exports=function(e){var t=n(e),A=r.f;if(A)for(var o,a=A(e),s=i.f,g=0;a.length>g;)s.call(e,o=a[g++])&&t.push(o);return t}},function(e,t,A){var n=A(599);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t,A){var n=A(257),r=A(604).f,i={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return o&&"[object Window]"==i.call(e)?function(e){try{return r(e)}catch(t){return o.slice()}}(e):r(n(e))}},function(e,t){},function(e,t,A){A(485)("asyncIterator")},function(e,t,A){A(485)("observable")},function(e,t,A){e.exports={default:A(958),__esModule:!0}},function(e,t,A){A(959),e.exports=A(191).Object.setPrototypeOf},function(e,t,A){var n=A(254);n(n.S,"Object",{setPrototypeOf:A(960).set})},function(e,t,A){var n=A(256),r=A(302),i=function(e,t){if(r(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,n){try{(n=A(594)(Function.call,A(605).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(r){t=!0}return function(e,A){return i(e,A),t?e.__proto__=A:n(e,A),e}}({},!1):void 0),check:i}},function(e,t,A){e.exports={default:A(962),__esModule:!0}},function(e,t,A){A(963);var n=A(191).Object;e.exports=function(e,t){return n.create(e,t)}},function(e,t,A){var n=A(254);n(n.S,"Object",{create:A(482)})},function(e,t,A){(function(t){(function(){var A,n,r,i,o,a;"undefined"!==typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:"undefined"!==typeof t&&null!==t&&t.hrtime?(e.exports=function(){return(A()-o)/1e6},n=t.hrtime,i=(A=function(){var e;return 1e9*(e=n())[0]+e[1]})(),a=1e9*t.uptime(),o=i-a):Date.now?(e.exports=function(){return Date.now()-r},r=Date.now()):(e.exports=function(){return(new Date).getTime()-r},r=(new Date).getTime())}).call(this)}).call(this,A(90))},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AlphaPicker=void 0;var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},r=s(A(0)),i=s(A(49)),o=A(74),a=s(A(1011));function s(e){return e&&e.__esModule?e:{default:e}}var g=t.AlphaPicker=function(e){var t=e.rgb,A=e.hsl,a=e.width,s=e.height,g=e.onChange,c=e.direction,u=e.style,l=e.renderers,I=e.pointer,C=e.className,h=void 0===C?"":C,f=(0,i.default)({default:{picker:{position:"relative",width:a,height:s},alpha:{radius:"2px",style:u}}});return r.default.createElement("div",{style:f.picker,className:"alpha-picker "+h},r.default.createElement(o.Alpha,n({},f.alpha,{rgb:t,hsl:A,pointer:I,renderers:l,onChange:g,direction:c})))};g.defaultProps={width:"316px",height:"16px",direction:"horizontal",pointer:a.default},t.default=(0,o.ColorWrap)(g)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.flattenNames=void 0;var n=a(A(967)),r=a(A(486)),i=a(A(609)),o=a(A(193));function a(e){return e&&e.__esModule?e:{default:e}}var s=t.flattenNames=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],A=[];return(0,o.default)(t,(function(t){Array.isArray(t)?e(t).map((function(e){return A.push(e)})):(0,i.default)(t)?(0,r.default)(t,(function(e,t){!0===e&&A.push(t),A.push(t+"-"+e)})):(0,n.default)(t)&&A.push(t)})),A};t.default=s},function(e,t,A){var n=A(216),r=A(111),i=A(154);e.exports=function(e){return"string"==typeof e||!r(e)&&i(e)&&"[object String]"==n(e)}},function(e,t){e.exports=function(e){return function(t,A,n){for(var r=-1,i=Object(t),o=n(t),a=o.length;a--;){var s=o[e?a:++r];if(!1===A(i[s],s,i))break}return t}}},function(e,t,A){var n=A(970),r=A(973),i=A(358),o=A(111),a=A(983);e.exports=function(e){return"function"==typeof e?e:null==e?i:"object"==typeof e?o(e)?r(e[0],e[1]):n(e):a(e)}},function(e,t,A){var n=A(971),r=A(972),i=A(611);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?i(t[0][0],t[0][1]):function(A){return A===e||n(A,e,t)}}},function(e,t,A){var n=A(343),r=A(444);e.exports=function(e,t,A,i){var o=A.length,a=o,s=!i;if(null==e)return!a;for(e=Object(e);o--;){var g=A[o];if(s&&g[2]?g[1]!==e[g[0]]:!(g[0]in e))return!1}for(;++o<a;){var c=(g=A[o])[0],u=e[c],l=g[1];if(s&&g[2]){if(void 0===u&&!(c in e))return!1}else{var I=new n;if(i)var C=i(u,l,c,e,t,I);if(!(void 0===C?r(l,u,3,i,I):C))return!1}}return!0}},function(e,t,A){var n=A(610),r=A(298);e.exports=function(e){for(var t=r(e),A=t.length;A--;){var i=t[A],o=e[i];t[A]=[i,o,n(o)]}return t}},function(e,t,A){var n=A(444),r=A(974),i=A(980),o=A(487),a=A(610),s=A(611),g=A(364);e.exports=function(e,t){return o(e)&&a(t)?s(g(e),t):function(A){var o=r(A,e);return void 0===o&&o===t?i(A,e):n(t,o,3)}}},function(e,t,A){var n=A(612);e.exports=function(e,t,A){var r=null==e?void 0:n(e,t);return void 0===r?A:r}},function(e,t,A){var n=A(976),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,o=n((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(r,(function(e,A,n,r){t.push(n?r.replace(i,"$1"):A||e)})),t}));e.exports=o},function(e,t,A){var n=A(977);e.exports=function(e){var t=n(e,(function(e){return 500===A.size&&A.clear(),e})),A=t.cache;return t}},function(e,t,A){var n=A(447);function r(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var A=function A(){var n=arguments,r=t?t.apply(this,n):n[0],i=A.cache;if(i.has(r))return i.get(r);var o=e.apply(this,n);return A.cache=i.set(r,o)||i,o};return A.cache=new(r.Cache||n),A}r.Cache=n,e.exports=r},function(e,t,A){var n=A(979);e.exports=function(e){return null==e?"":n(e)}},function(e,t,A){var n=A(247),r=A(472),i=A(111),o=A(353),a=n?n.prototype:void 0,s=a?a.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(i(t))return r(t,e)+"";if(o(t))return s?s.call(t):"";var A=t+"";return"0"==A&&1/t==-1/0?"-0":A}},function(e,t,A){var n=A(981),r=A(982);e.exports=function(e,t){return null!=e&&r(e,t,n)}},function(e,t){e.exports=function(e,t){return null!=e&&t in Object(e)}},function(e,t,A){var n=A(613),r=A(348),i=A(111),o=A(453),a=A(455),s=A(364);e.exports=function(e,t,A){for(var g=-1,c=(t=n(t,e)).length,u=!1;++g<c;){var l=s(t[g]);if(!(u=null!=e&&A(e,l)))break;e=e[l]}return u||++g!=c?u:!!(c=null==e?0:e.length)&&a(c)&&o(l,c)&&(i(e)||r(e))}},function(e,t,A){var n=A(984),r=A(985),i=A(487),o=A(364);e.exports=function(e){return i(e)?n(o(e)):r(e)}},function(e,t){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},function(e,t,A){var n=A(612);e.exports=function(e){return function(t){return n(t,e)}}},function(e,t,A){var n=A(614),r=A(248);e.exports=function(e,t){var A=-1,i=r(e)?Array(e.length):[];return n(e,(function(e,n,r){i[++A]=t(e,n,r)})),i}},function(e,t,A){var n=A(248);e.exports=function(e,t){return function(A,r){if(null==A)return A;if(!n(A))return e(A,r);for(var i=A.length,o=t?i:-1,a=Object(A);(t?o--:++o<i)&&!1!==r(a[o],o,a););return A}}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mergeClasses=void 0;var n=o(A(486)),r=o(A(235)),i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e};function o(e){return e&&e.__esModule?e:{default:e}}var a=t.mergeClasses=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],A=e.default&&(0,r.default)(e.default)||{};return t.map((function(t){var r=e[t];return r&&(0,n.default)(r,(function(e,t){A[t]||(A[t]={}),A[t]=i({},A[t],r[t])})),t})),A};t.default=a},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.autoprefix=void 0;var n,r=A(486),i=(n=r)&&n.__esModule?n:{default:n},o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e};var a={borderRadius:function(e){return{msBorderRadius:e,MozBorderRadius:e,OBorderRadius:e,WebkitBorderRadius:e,borderRadius:e}},boxShadow:function(e){return{msBoxShadow:e,MozBoxShadow:e,OBoxShadow:e,WebkitBoxShadow:e,boxShadow:e}},userSelect:function(e){return{WebkitTouchCallout:e,KhtmlUserSelect:e,MozUserSelect:e,msUserSelect:e,WebkitUserSelect:e,userSelect:e}},flex:function(e){return{WebkitBoxFlex:e,MozBoxFlex:e,WebkitFlex:e,msFlex:e,flex:e}},flexBasis:function(e){return{WebkitFlexBasis:e,flexBasis:e}},justifyContent:function(e){return{WebkitJustifyContent:e,justifyContent:e}},transition:function(e){return{msTransition:e,MozTransition:e,OTransition:e,WebkitTransition:e,transition:e}},transform:function(e){return{msTransform:e,MozTransform:e,OTransform:e,WebkitTransform:e,transform:e}},absolute:function(e){var t=e&&e.split(" ");return{position:"absolute",top:t&&t[0],right:t&&t[1],bottom:t&&t[2],left:t&&t[3]}},extend:function(e,t){var A=t[e];return A||{extend:e}}},s=t.autoprefix=function(e){var t={};return(0,i.default)(e,(function(e,A){var n={};(0,i.default)(e,(function(e,t){var A=a[t];A?n=o({},n,A(e)):n[t]=e})),t[A]=n})),t};t.default=s},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hover=void 0;var n,r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},i=A(0),o=(n=i)&&n.__esModule?n:{default:n};function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function g(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var c=t.hover=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"span";return function(A){function n(){var A,i,g;a(this,n);for(var c=arguments.length,u=Array(c),l=0;l<c;l++)u[l]=arguments[l];return i=g=s(this,(A=n.__proto__||Object.getPrototypeOf(n)).call.apply(A,[this].concat(u))),g.state={hover:!1},g.handleMouseOver=function(){return g.setState({hover:!0})},g.handleMouseOut=function(){return g.setState({hover:!1})},g.render=function(){return o.default.createElement(t,{onMouseOver:g.handleMouseOver,onMouseOut:g.handleMouseOut},o.default.createElement(e,r({},g.props,g.state)))},s(g,i)}return g(n,A),n}(o.default.Component)};t.default=c},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.active=void 0;var n,r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},i=A(0),o=(n=i)&&n.__esModule?n:{default:n};function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function g(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var c=t.active=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"span";return function(A){function n(){var A,i,g;a(this,n);for(var c=arguments.length,u=Array(c),l=0;l<c;l++)u[l]=arguments[l];return i=g=s(this,(A=n.__proto__||Object.getPrototypeOf(n)).call.apply(A,[this].concat(u))),g.state={active:!1},g.handleMouseDown=function(){return g.setState({active:!0})},g.handleMouseUp=function(){return g.setState({active:!1})},g.render=function(){return o.default.createElement(t,{onMouseDown:g.handleMouseDown,onMouseUp:g.handleMouseUp},o.default.createElement(e,r({},g.props,g.state)))},s(g,i)}return g(n,A),n}(o.default.Component)};t.default=c},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=function(e,t){var A={},n=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];A[e]=t};return 0===e&&n("first-child"),e===t-1&&n("last-child"),(0===e||e%2===0)&&n("even"),1===Math.abs(e%2)&&n("odd"),n("nth-child",e),A}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Alpha=void 0;var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},r=function(){function e(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,A,n){return A&&e(t.prototype,A),n&&e(t,n),t}}(),i=A(0),o=c(i),a=c(A(49)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var A in e)Object.prototype.hasOwnProperty.call(e,A)&&(t[A]=e[A]);return t.default=e,t}(A(994)),g=c(A(488));function c(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}var I=t.Alpha=function(e){function t(){var e,A,n;u(this,t);for(var r=arguments.length,i=Array(r),o=0;o<r;o++)i[o]=arguments[o];return A=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.handleChange=function(e){var t=s.calculateChange(e,n.props.hsl,n.props.direction,n.props.a,n.container);t&&"function"===typeof n.props.onChange&&n.props.onChange(t,e)},n.handleMouseDown=function(e){n.handleChange(e),window.addEventListener("mousemove",n.handleChange),window.addEventListener("mouseup",n.handleMouseUp)},n.handleMouseUp=function(){n.unbindEventListeners()},n.unbindEventListeners=function(){window.removeEventListener("mousemove",n.handleChange),window.removeEventListener("mouseup",n.handleMouseUp)},l(n,A)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"render",value:function(){var e=this,t=this.props.rgb,A=(0,a.default)({default:{alpha:{absolute:"0px 0px 0px 0px",borderRadius:this.props.radius},checkboard:{absolute:"0px 0px 0px 0px",overflow:"hidden",borderRadius:this.props.radius},gradient:{absolute:"0px 0px 0px 0px",background:"linear-gradient(to right, rgba("+t.r+","+t.g+","+t.b+", 0) 0%,\n rgba("+t.r+","+t.g+","+t.b+", 1) 100%)",boxShadow:this.props.shadow,borderRadius:this.props.radius},container:{position:"relative",height:"100%",margin:"0 3px"},pointer:{position:"absolute",left:100*t.a+"%"},slider:{width:"4px",borderRadius:"1px",height:"8px",boxShadow:"0 0 2px rgba(0, 0, 0, .6)",background:"#fff",marginTop:"1px",transform:"translateX(-2px)"}},vertical:{gradient:{background:"linear-gradient(to bottom, rgba("+t.r+","+t.g+","+t.b+", 0) 0%,\n rgba("+t.r+","+t.g+","+t.b+", 1) 100%)"},pointer:{left:0,top:100*t.a+"%"}},overwrite:n({},this.props.style)},{vertical:"vertical"===this.props.direction,overwrite:!0});return o.default.createElement("div",{style:A.alpha},o.default.createElement("div",{style:A.checkboard},o.default.createElement(g.default,{renderers:this.props.renderers})),o.default.createElement("div",{style:A.gradient}),o.default.createElement("div",{style:A.container,ref:function(t){return e.container=t},onMouseDown:this.handleMouseDown,onTouchMove:this.handleChange,onTouchStart:this.handleChange},o.default.createElement("div",{style:A.pointer},this.props.pointer?o.default.createElement(this.props.pointer,this.props):o.default.createElement("div",{style:A.slider}))))}}]),t}(i.PureComponent||i.Component);t.default=I},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.calculateChange=function(e,t,A,n,r){var i=r.clientWidth,o=r.clientHeight,a="number"===typeof e.pageX?e.pageX:e.touches[0].pageX,s="number"===typeof e.pageY?e.pageY:e.touches[0].pageY,g=a-(r.getBoundingClientRect().left+window.pageXOffset),c=s-(r.getBoundingClientRect().top+window.pageYOffset);if("vertical"===A){var u=void 0;if(u=c<0?0:c>o?1:Math.round(100*c/o)/100,t.a!==u)return{h:t.h,s:t.s,l:t.l,a:u,source:"rgb"}}else{var l=void 0;if(n!==(l=g<0?0:g>i?1:Math.round(100*g/i)/100))return{h:t.h,s:t.s,l:t.l,a:l,source:"rgb"}}return null}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={},r=t.render=function(e,t,A,n){if("undefined"===typeof document&&!n)return null;var r=n?new n:document.createElement("canvas");r.width=2*A,r.height=2*A;var i=r.getContext("2d");return i?(i.fillStyle=e,i.fillRect(0,0,r.width,r.height),i.fillStyle=t,i.fillRect(0,0,A,A),i.translate(A,A),i.fillRect(0,0,A,A),r.toDataURL()):null};t.get=function(e,t,A,i){var o=e+"-"+t+"-"+A+(i?"-server":"");if(n[o])return n[o];var a=r(e,t,A,i);return n[o]=a,a}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditableInput=void 0;var n=function(){function e(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,A,n){return A&&e(t.prototype,A),n&&e(t,n),t}}(),r=A(0),i=a(r),o=a(A(49));function a(e){return e&&e.__esModule?e:{default:e}}var s=[38,40],g=t.EditableInput=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var A=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return A.handleBlur=function(){A.state.blurValue&&A.setState({value:A.state.blurValue,blurValue:null})},A.handleChange=function(e){A.setUpdatedValue(e.target.value,e)},A.handleKeyDown=function(e){var t,n=function(e){return Number(String(e).replace(/%/g,""))}(e.target.value);if(!isNaN(n)&&(t=e.keyCode,s.indexOf(t)>-1)){var r=A.getArrowOffset(),i=38===e.keyCode?n+r:n-r;A.setUpdatedValue(i,e)}},A.handleDrag=function(e){if(A.props.dragLabel){var t=Math.round(A.props.value+e.movementX);t>=0&&t<=A.props.dragMax&&A.props.onChange&&A.props.onChange(A.getValueObjectWithLabel(t),e)}},A.handleMouseDown=function(e){A.props.dragLabel&&(e.preventDefault(),A.handleDrag(e),window.addEventListener("mousemove",A.handleDrag),window.addEventListener("mouseup",A.handleMouseUp))},A.handleMouseUp=function(){A.unbindEventListeners()},A.unbindEventListeners=function(){window.removeEventListener("mousemove",A.handleDrag),window.removeEventListener("mouseup",A.handleMouseUp)},A.state={value:String(e.value).toUpperCase(),blurValue:String(e.value).toUpperCase()},A}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"componentDidUpdate",value:function(e,t){this.props.value===this.state.value||e.value===this.props.value&&t.value===this.state.value||(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(e){return function(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}({},this.props.label,e)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||1}},{key:"setUpdatedValue",value:function(e,t){var A=this.props.label?this.getValueObjectWithLabel(e):e;this.props.onChange&&this.props.onChange(A,t);var n,r=function(e){return String(e).indexOf("%")>-1}(t.target.value);this.setState({value:r?(n=e,n+"%"):e})}},{key:"render",value:function(){var e=this,t=(0,o.default)({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return i.default.createElement("div",{style:t.wrap},i.default.createElement("input",{style:t.input,ref:function(t){return e.input=t},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?i.default.createElement("span",{style:t.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),t}(r.PureComponent||r.Component);t.default=g},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hue=void 0;var n=function(){function e(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,A,n){return A&&e(t.prototype,A),n&&e(t,n),t}}(),r=A(0),i=s(r),o=s(A(49)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var A in e)Object.prototype.hasOwnProperty.call(e,A)&&(t[A]=e[A]);return t.default=e,t}(A(998));function s(e){return e&&e.__esModule?e:{default:e}}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}var u=t.Hue=function(e){function t(){var e,A,n;g(this,t);for(var r=arguments.length,i=Array(r),o=0;o<r;o++)i[o]=arguments[o];return A=n=c(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.handleChange=function(e){var t=a.calculateChange(e,n.props.direction,n.props.hsl,n.container);t&&"function"===typeof n.props.onChange&&n.props.onChange(t,e)},n.handleMouseDown=function(e){n.handleChange(e),window.addEventListener("mousemove",n.handleChange),window.addEventListener("mouseup",n.handleMouseUp)},n.handleMouseUp=function(){n.unbindEventListeners()},c(n,A)}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"unbindEventListeners",value:function(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}},{key:"render",value:function(){var e=this,t=this.props.direction,A=void 0===t?"horizontal":t,n=(0,o.default)({default:{hue:{absolute:"0px 0px 0px 0px",borderRadius:this.props.radius,boxShadow:this.props.shadow},container:{padding:"0 2px",position:"relative",height:"100%",borderRadius:this.props.radius},pointer:{position:"absolute",left:100*this.props.hsl.h/360+"%"},slider:{marginTop:"1px",width:"4px",borderRadius:"1px",height:"8px",boxShadow:"0 0 2px rgba(0, 0, 0, .6)",background:"#fff",transform:"translateX(-2px)"}},vertical:{pointer:{left:"0px",top:-100*this.props.hsl.h/360+100+"%"}}},{vertical:"vertical"===A});return i.default.createElement("div",{style:n.hue},i.default.createElement("div",{className:"hue-"+A,style:n.container,ref:function(t){return e.container=t},onMouseDown:this.handleMouseDown,onTouchMove:this.handleChange,onTouchStart:this.handleChange},i.default.createElement("style",null,"\n .hue-horizontal {\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n }\n\n .hue-vertical {\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n }\n "),i.default.createElement("div",{style:n.pointer},this.props.pointer?i.default.createElement(this.props.pointer,this.props):i.default.createElement("div",{style:n.slider}))))}}]),t}(r.PureComponent||r.Component);t.default=u},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.calculateChange=function(e,t,A,n){var r=n.clientWidth,i=n.clientHeight,o="number"===typeof e.pageX?e.pageX:e.touches[0].pageX,a="number"===typeof e.pageY?e.pageY:e.touches[0].pageY,s=o-(n.getBoundingClientRect().left+window.pageXOffset),g=a-(n.getBoundingClientRect().top+window.pageYOffset);if("vertical"===t){var c=void 0;if(g<0)c=359;else if(g>i)c=0;else{c=360*(-100*g/i+100)/100}if(A.h!==c)return{h:c,s:A.s,l:A.l,a:A.a,source:"rgb"}}else{var u=void 0;if(s<0)u=0;else if(s>r)u=359;else{u=360*(100*s/r)/100}if(A.h!==u)return{h:u,s:A.s,l:A.l,a:A.a,source:"rgb"}}return null}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Raised=void 0;var n=a(A(0)),r=a(A(13)),i=a(A(49)),o=a(A(123));function a(e){return e&&e.__esModule?e:{default:e}}var s=t.Raised=function(e){var t=e.zDepth,A=e.radius,r=e.background,a=e.children,s=e.styles,g=void 0===s?{}:s,c=(0,i.default)((0,o.default)({default:{wrap:{position:"relative",display:"inline-block"},content:{position:"relative"},bg:{absolute:"0px 0px 0px 0px",boxShadow:"0 "+t+"px "+4*t+"px rgba(0,0,0,.24)",borderRadius:A,background:r}},"zDepth-0":{bg:{boxShadow:"none"}},"zDepth-1":{bg:{boxShadow:"0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)"}},"zDepth-2":{bg:{boxShadow:"0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)"}},"zDepth-3":{bg:{boxShadow:"0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)"}},"zDepth-4":{bg:{boxShadow:"0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)"}},"zDepth-5":{bg:{boxShadow:"0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)"}},square:{bg:{borderRadius:"0"}},circle:{bg:{borderRadius:"50%"}}},g),{"zDepth-1":1===t});return n.default.createElement("div",{style:c.wrap},n.default.createElement("div",{style:c.bg}),n.default.createElement("div",{style:c.content},a))};s.propTypes={background:r.default.string,zDepth:r.default.oneOf([0,1,2,3,4,5]),radius:r.default.number,styles:r.default.object},s.defaultProps={background:"#fff",zDepth:1,radius:2,styles:{}},t.default=s},function(e,t,A){var n=A(343),r=A(615),i=A(607),o=A(1001),a=A(127),s=A(357),g=A(616);e.exports=function e(t,A,c,u,l){t!==A&&i(A,(function(i,s){if(l||(l=new n),a(i))o(t,A,s,c,e,u,l);else{var I=u?u(g(t,s),i,s+"",t,A,l):void 0;void 0===I&&(I=i),r(t,s,I)}}),s)}},function(e,t,A){var n=A(615),r=A(586),i=A(589),o=A(587),a=A(590),s=A(348),g=A(111),c=A(471),u=A(349),l=A(446),I=A(127),C=A(609),h=A(454),f=A(616),d=A(1002);e.exports=function(e,t,A,B,p,E,Q){var y=f(e,A),v=f(t,A),m=Q.get(v);if(m)n(e,A,m);else{var b=E?E(y,v,A+"",e,t,Q):void 0,w=void 0===b;if(w){var S=g(v),F=!S&&u(v),R=!S&&!F&&h(v);b=v,S||F||R?g(y)?b=y:c(y)?b=o(y):F?(w=!1,b=r(v,!0)):R?(w=!1,b=i(v,!0)):b=[]:C(v)||s(v)?(b=y,s(y)?b=d(y):I(y)&&!l(y)||(b=a(v))):w=!1}w&&(Q.set(v,b),p(b,v,B,E,Q),Q.delete(v)),n(e,A,b)}}},function(e,t,A){var n=A(301),r=A(357);e.exports=function(e){return n(e,r(e))}},function(e,t,A){var n=A(470),r=A(559);e.exports=function(e){return n((function(t,A){var n=-1,i=A.length,o=i>1?A[i-1]:void 0,a=i>2?A[2]:void 0;for(o=e.length>3&&"function"==typeof o?(i--,o):void 0,a&&r(A[0],A[1],a)&&(o=i<3?void 0:o,i=1),t=Object(t);++n<i;){var s=A[n];s&&e(t,s,n,o)}return t}))}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Saturation=void 0;var n=function(){function e(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,A,n){return A&&e(t.prototype,A),n&&e(t,n),t}}(),r=A(0),i=g(r),o=g(A(49)),a=g(A(1005)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var A in e)Object.prototype.hasOwnProperty.call(e,A)&&(t[A]=e[A]);return t.default=e,t}(A(1006));function g(e){return e&&e.__esModule?e:{default:e}}var c=t.Saturation=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var A=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return A.handleChange=function(e){"function"===typeof A.props.onChange&&A.throttle(A.props.onChange,s.calculateChange(e,A.props.hsl,A.container),e)},A.handleMouseDown=function(e){A.handleChange(e),window.addEventListener("mousemove",A.handleChange),window.addEventListener("mouseup",A.handleMouseUp)},A.handleMouseUp=function(){A.unbindEventListeners()},A.throttle=(0,a.default)((function(e,t,A){e(t,A)}),50),A}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"componentWillUnmount",value:function(){this.throttle.cancel(),this.unbindEventListeners()}},{key:"unbindEventListeners",value:function(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}},{key:"render",value:function(){var e=this,t=this.props.style||{},A=t.color,n=t.white,r=t.black,a=t.pointer,s=t.circle,g=(0,o.default)({default:{color:{absolute:"0px 0px 0px 0px",background:"hsl("+this.props.hsl.h+",100%, 50%)",borderRadius:this.props.radius},white:{absolute:"0px 0px 0px 0px",borderRadius:this.props.radius},black:{absolute:"0px 0px 0px 0px",boxShadow:this.props.shadow,borderRadius:this.props.radius},pointer:{position:"absolute",top:-100*this.props.hsv.v+100+"%",left:100*this.props.hsv.s+"%",cursor:"default"},circle:{width:"4px",height:"4px",boxShadow:"0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\n 0 0 1px 2px rgba(0,0,0,.4)",borderRadius:"50%",cursor:"hand",transform:"translate(-2px, -2px)"}},custom:{color:A,white:n,black:r,pointer:a,circle:s}},{custom:!!this.props.style});return i.default.createElement("div",{style:g.color,ref:function(t){return e.container=t},onMouseDown:this.handleMouseDown,onTouchMove:this.handleChange,onTouchStart:this.handleChange},i.default.createElement("style",null,"\n .saturation-white {\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\n }\n .saturation-black {\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\n }\n "),i.default.createElement("div",{style:g.white,className:"saturation-white"},i.default.createElement("div",{style:g.black,className:"saturation-black"}),i.default.createElement("div",{style:g.pointer},this.props.pointer?i.default.createElement(this.props.pointer,this.props):i.default.createElement("div",{style:g.circle}))))}}]),t}(r.PureComponent||r.Component);t.default=c},function(e,t,A){var n=A(107),r=A(127);e.exports=function(e,t,A){var i=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return r(A)&&(i="leading"in A?!!A.leading:i,o="trailing"in A?!!A.trailing:o),n(e,t,{leading:i,maxWait:t,trailing:o})}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.calculateChange=function(e,t,A){var n=A.getBoundingClientRect(),r=n.width,i=n.height,o="number"===typeof e.pageX?e.pageX:e.touches[0].pageX,a="number"===typeof e.pageY?e.pageY:e.touches[0].pageY,s=o-(A.getBoundingClientRect().left+window.pageXOffset),g=a-(A.getBoundingClientRect().top+window.pageYOffset);s<0?s=0:s>r&&(s=r),g<0?g=0:g>i&&(g=i);var c=s/r,u=1-g/i;return{h:t.h,s:c,v:u,a:t.a,source:"rgb"}}},function(e,t,A){e.exports=A(1008)},function(e,t,A){var n=A(583),r=A(614),i=A(608),o=A(111);e.exports=function(e,t){return(o(e)?n:r)(e,i(t))}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Swatch=void 0;var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},r=s(A(0)),i=s(A(49)),o=A(1010),a=s(A(488));function s(e){return e&&e.__esModule?e:{default:e}}var g=t.Swatch=function(e){var t=e.color,A=e.style,o=e.onClick,s=void 0===o?function(){}:o,g=e.onHover,c=e.title,u=void 0===c?t:c,l=e.children,I=e.focus,C=e.focusStyle,h=void 0===C?{}:C,f="transparent"===t,d=(0,i.default)({default:{swatch:n({background:t,height:"100%",width:"100%",cursor:"pointer",position:"relative",outline:"none"},A,I?h:{})}}),B={};return g&&(B.onMouseOver=function(e){return g(t,e)}),r.default.createElement("div",n({style:d.swatch,onClick:function(e){return s(t,e)},title:u,tabIndex:0,onKeyDown:function(e){return 13===e.keyCode&&s(t,e)}},B),l,f&&r.default.createElement(a.default,{borderRadius:d.swatch.borderRadius,boxShadow:"inset 0 0 0 1px rgba(0,0,0,0.1)"}))};t.default=(0,o.handleFocus)(g)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handleFocus=void 0;var n,r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},i=function(){function e(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,A,n){return A&&e(t.prototype,A),n&&e(t,n),t}}(),o=A(0),a=(n=o)&&n.__esModule?n:{default:n};function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function c(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.handleFocus=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"span";return function(A){function n(){var e,t,A;s(this,n);for(var r=arguments.length,i=Array(r),o=0;o<r;o++)i[o]=arguments[o];return t=A=g(this,(e=n.__proto__||Object.getPrototypeOf(n)).call.apply(e,[this].concat(i))),A.state={focus:!1},A.handleFocus=function(){return A.setState({focus:!0})},A.handleBlur=function(){return A.setState({focus:!1})},g(A,t)}return c(n,A),i(n,[{key:"render",value:function(){return a.default.createElement(t,{onFocus:this.handleFocus,onBlur:this.handleBlur},a.default.createElement(e,r({},this.props,this.state)))}}]),n}(a.default.Component)}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AlphaPointer=void 0;var n=i(A(0)),r=i(A(49));function i(e){return e&&e.__esModule?e:{default:e}}var o=t.AlphaPointer=function(e){var t=e.direction,A=(0,r.default)({default:{picker:{width:"18px",height:"18px",borderRadius:"50%",transform:"translate(-9px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}},vertical:{picker:{transform:"translate(-3px, -9px)"}}},{vertical:"vertical"===t});return n.default.createElement("div",{style:A.picker})};t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Block=void 0;var n=c(A(0)),r=c(A(13)),i=c(A(49)),o=c(A(123)),a=c(A(142)),s=A(74),g=c(A(1013));function c(e){return e&&e.__esModule?e:{default:e}}var u=t.Block=function(e){var t=e.onChange,A=e.onSwatchHover,r=e.hex,c=e.colors,u=e.width,l=e.triangle,I=e.styles,C=void 0===I?{}:I,h=e.className,f=void 0===h?"":h,d="transparent"===r,B=function(e,A){a.default.isValidHex(e)&&t({hex:e,source:"hex"},A)},p=(0,i.default)((0,o.default)({default:{card:{width:u,background:"#fff",boxShadow:"0 1px rgba(0,0,0,.1)",borderRadius:"6px",position:"relative"},head:{height:"110px",background:r,borderRadius:"6px 6px 0 0",display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},body:{padding:"10px"},label:{fontSize:"18px",color:a.default.getContrastingColor(r),position:"relative"},triangle:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 10px 10px 10px",borderColor:"transparent transparent "+r+" transparent",position:"absolute",top:"-10px",left:"50%",marginLeft:"-10px"},input:{width:"100%",fontSize:"12px",color:"#666",border:"0px",outline:"none",height:"22px",boxShadow:"inset 0 0 0 1px #ddd",borderRadius:"4px",padding:"0 7px",boxSizing:"border-box"}},"hide-triangle":{triangle:{display:"none"}}},C),{"hide-triangle":"hide"===l});return n.default.createElement("div",{style:p.card,className:"block-picker "+f},n.default.createElement("div",{style:p.triangle}),n.default.createElement("div",{style:p.head},d&&n.default.createElement(s.Checkboard,{borderRadius:"6px 6px 0 0"}),n.default.createElement("div",{style:p.label},r)),n.default.createElement("div",{style:p.body},n.default.createElement(g.default,{colors:c,onClick:B,onSwatchHover:A}),n.default.createElement(s.EditableInput,{style:{input:p.input},value:r,onChange:B})))};u.propTypes={width:r.default.oneOfType([r.default.string,r.default.number]),colors:r.default.arrayOf(r.default.string),triangle:r.default.oneOf(["top","hide"]),styles:r.default.object},u.defaultProps={width:170,colors:["#D9E3F0","#F47373","#697689","#37D67A","#2CCCE4","#555555","#dce775","#ff8a65","#ba68c8"],triangle:"top",styles:{}},t.default=(0,s.ColorWrap)(u)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BlockSwatches=void 0;var n=a(A(0)),r=a(A(49)),i=a(A(193)),o=A(74);function a(e){return e&&e.__esModule?e:{default:e}}var s=t.BlockSwatches=function(e){var t=e.colors,A=e.onClick,a=e.onSwatchHover,s=(0,r.default)({default:{swatches:{marginRight:"-10px"},swatch:{width:"22px",height:"22px",float:"left",marginRight:"10px",marginBottom:"10px",borderRadius:"4px"},clear:{clear:"both"}}});return n.default.createElement("div",{style:s.swatches},(0,i.default)(t,(function(e){return n.default.createElement(o.Swatch,{key:e,color:e,style:s.swatch,onClick:A,onHover:a,focusStyle:{boxShadow:"0 0 4px "+e}})})),n.default.createElement("div",{style:s.clear}))};t.default=s},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Circle=void 0;var n=u(A(0)),r=u(A(13)),i=u(A(49)),o=u(A(193)),a=u(A(123)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var A in e)Object.prototype.hasOwnProperty.call(e,A)&&(t[A]=e[A]);return t.default=e,t}(A(618)),g=A(74),c=u(A(1015));function u(e){return e&&e.__esModule?e:{default:e}}var l=t.Circle=function(e){var t=e.width,A=e.onChange,r=e.onSwatchHover,s=e.colors,g=e.hex,u=e.circleSize,l=e.styles,I=void 0===l?{}:l,C=e.circleSpacing,h=e.className,f=void 0===h?"":h,d=(0,i.default)((0,a.default)({default:{card:{width:t,display:"flex",flexWrap:"wrap",marginRight:-C,marginBottom:-C}}},I)),B=function(e,t){return A({hex:e,source:"hex"},t)};return n.default.createElement("div",{style:d.card,className:"circle-picker "+f},(0,o.default)(s,(function(e){return n.default.createElement(c.default,{key:e,color:e,onClick:B,onSwatchHover:r,active:g===e.toLowerCase(),circleSize:u,circleSpacing:C})})))};l.propTypes={width:r.default.oneOfType([r.default.string,r.default.number]),circleSize:r.default.number,circleSpacing:r.default.number,styles:r.default.object},l.defaultProps={width:252,circleSize:28,circleSpacing:14,colors:[s.red[500],s.pink[500],s.purple[500],s.deepPurple[500],s.indigo[500],s.blue[500],s.lightBlue[500],s.cyan[500],s.teal[500],s.green[500],s.lightGreen[500],s.lime[500],s.yellow[500],s.amber[500],s.orange[500],s.deepOrange[500],s.brown[500],s.blueGrey[500]],styles:{}},t.default=(0,g.ColorWrap)(l)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CircleSwatch=void 0;var n=a(A(0)),r=A(49),i=a(r),o=A(74);function a(e){return e&&e.__esModule?e:{default:e}}var s=t.CircleSwatch=function(e){var t=e.color,A=e.onClick,r=e.onSwatchHover,a=e.hover,s=e.active,g=e.circleSize,c=e.circleSpacing,u=(0,i.default)({default:{swatch:{width:g,height:g,marginRight:c,marginBottom:c,transform:"scale(1)",transition:"100ms transform ease"},Swatch:{borderRadius:"50%",background:"transparent",boxShadow:"inset 0 0 0 "+g/2+"px "+t,transition:"100ms box-shadow ease"}},hover:{swatch:{transform:"scale(1.2)"}},active:{Swatch:{boxShadow:"inset 0 0 0 3px "+t}}},{hover:a,active:s});return n.default.createElement("div",{style:u.swatch},n.default.createElement(o.Swatch,{style:u.Swatch,color:t,onClick:A,onHover:r,focusStyle:{boxShadow:u.Swatch.boxShadow+", 0 0 5px "+t}}))};s.defaultProps={circleSize:28,circleSpacing:14},t.default=(0,r.handleHover)(s)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Chrome=void 0;var n=u(A(0)),r=u(A(13)),i=u(A(49)),o=u(A(123)),a=A(74),s=u(A(1017)),g=u(A(1019)),c=u(A(1020));function u(e){return e&&e.__esModule?e:{default:e}}var l=t.Chrome=function(e){var t=e.width,A=e.onChange,r=e.disableAlpha,u=e.rgb,l=e.hsl,I=e.hsv,C=e.hex,h=e.renderers,f=e.styles,d=void 0===f?{}:f,B=e.className,p=void 0===B?"":B,E=e.defaultView,Q=(0,i.default)((0,o.default)({default:{picker:{width:t,background:"#fff",borderRadius:"2px",boxShadow:"0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)",boxSizing:"initial",fontFamily:"Menlo"},saturation:{width:"100%",paddingBottom:"55%",position:"relative",borderRadius:"2px 2px 0 0",overflow:"hidden"},Saturation:{radius:"2px 2px 0 0"},body:{padding:"16px 16px 12px"},controls:{display:"flex"},color:{width:"32px"},swatch:{marginTop:"6px",width:"16px",height:"16px",borderRadius:"8px",position:"relative",overflow:"hidden"},active:{absolute:"0px 0px 0px 0px",borderRadius:"8px",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.1)",background:"rgba("+u.r+", "+u.g+", "+u.b+", "+u.a+")",zIndex:"2"},toggles:{flex:"1"},hue:{height:"10px",position:"relative",marginBottom:"8px"},Hue:{radius:"2px"},alpha:{height:"10px",position:"relative"},Alpha:{radius:"2px"}},disableAlpha:{color:{width:"22px"},alpha:{display:"none"},hue:{marginBottom:"0px"},swatch:{width:"10px",height:"10px",marginTop:"0px"}}},d),{disableAlpha:r});return n.default.createElement("div",{style:Q.picker,className:"chrome-picker "+p},n.default.createElement("div",{style:Q.saturation},n.default.createElement(a.Saturation,{style:Q.Saturation,hsl:l,hsv:I,pointer:c.default,onChange:A})),n.default.createElement("div",{style:Q.body},n.default.createElement("div",{style:Q.controls,className:"flexbox-fix"},n.default.createElement("div",{style:Q.color},n.default.createElement("div",{style:Q.swatch},n.default.createElement("div",{style:Q.active}),n.default.createElement(a.Checkboard,{renderers:h}))),n.default.createElement("div",{style:Q.toggles},n.default.createElement("div",{style:Q.hue},n.default.createElement(a.Hue,{style:Q.Hue,hsl:l,pointer:g.default,onChange:A})),n.default.createElement("div",{style:Q.alpha},n.default.createElement(a.Alpha,{style:Q.Alpha,rgb:u,hsl:l,pointer:g.default,renderers:h,onChange:A})))),n.default.createElement(s.default,{rgb:u,hsl:l,hex:C,view:E,onChange:A,disableAlpha:r})))};l.propTypes={width:r.default.oneOfType([r.default.string,r.default.number]),disableAlpha:r.default.bool,styles:r.default.object,defaultView:r.default.oneOf(["hex","rgb","hsl"])},l.defaultProps={width:225,disableAlpha:!1,styles:{}},t.default=(0,a.ColorWrap)(l)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChromeFields=void 0;var n=function(){function e(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,A,n){return A&&e(t.prototype,A),n&&e(t,n),t}}(),r=g(A(0)),i=g(A(49)),o=g(A(142)),a=A(74),s=g(A(1018));function g(e){return e&&e.__esModule?e:{default:e}}var c=t.ChromeFields=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var A=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return A.toggleViews=function(){"hex"===A.state.view?A.setState({view:"rgb"}):"rgb"===A.state.view?A.setState({view:"hsl"}):"hsl"===A.state.view&&(1===A.props.hsl.a?A.setState({view:"hex"}):A.setState({view:"rgb"}))},A.handleChange=function(e,t){e.hex?o.default.isValidHex(e.hex)&&A.props.onChange({hex:e.hex,source:"hex"},t):e.r||e.g||e.b?A.props.onChange({r:e.r||A.props.rgb.r,g:e.g||A.props.rgb.g,b:e.b||A.props.rgb.b,source:"rgb"},t):e.a?(e.a<0?e.a=0:e.a>1&&(e.a=1),A.props.onChange({h:A.props.hsl.h,s:A.props.hsl.s,l:A.props.hsl.l,a:Math.round(100*e.a)/100,source:"rgb"},t)):(e.h||e.s||e.l)&&("string"===typeof e.s&&e.s.includes("%")&&(e.s=e.s.replace("%","")),"string"===typeof e.l&&e.l.includes("%")&&(e.l=e.l.replace("%","")),A.props.onChange({h:e.h||A.props.hsl.h,s:Number(e.s&&e.s||A.props.hsl.s),l:Number(e.l&&e.l||A.props.hsl.l),source:"hsl"},t))},A.showHighlight=function(e){e.currentTarget.style.background="#eee"},A.hideHighlight=function(e){e.currentTarget.style.background="transparent"},1!==e.hsl.a&&"hex"===e.view?A.state={view:"rgb"}:A.state={view:e.view},A}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"render",value:function(){var e=this,t=(0,i.default)({default:{wrap:{paddingTop:"16px",display:"flex"},fields:{flex:"1",display:"flex",marginLeft:"-6px"},field:{paddingLeft:"6px",width:"100%"},alpha:{paddingLeft:"6px",width:"100%"},toggle:{width:"32px",textAlign:"right",position:"relative"},icon:{marginRight:"-4px",marginTop:"12px",cursor:"pointer",position:"relative"},iconHighlight:{position:"absolute",width:"24px",height:"28px",background:"#eee",borderRadius:"4px",top:"10px",left:"12px",display:"none"},input:{fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px",textAlign:"center"},label:{textTransform:"uppercase",fontSize:"11px",lineHeight:"11px",color:"#969696",textAlign:"center",display:"block",marginTop:"12px"},svg:{fill:"#333",width:"24px",height:"24px",border:"1px transparent solid",borderRadius:"5px"}},disableAlpha:{alpha:{display:"none"}}},this.props,this.state),A=void 0;return"hex"===this.state.view?A=r.default.createElement("div",{style:t.fields,className:"flexbox-fix"},r.default.createElement("div",{style:t.field},r.default.createElement(a.EditableInput,{style:{input:t.input,label:t.label},label:"hex",value:this.props.hex,onChange:this.handleChange}))):"rgb"===this.state.view?A=r.default.createElement("div",{style:t.fields,className:"flexbox-fix"},r.default.createElement("div",{style:t.field},r.default.createElement(a.EditableInput,{style:{input:t.input,label:t.label},label:"r",value:this.props.rgb.r,onChange:this.handleChange})),r.default.createElement("div",{style:t.field},r.default.createElement(a.EditableInput,{style:{input:t.input,label:t.label},label:"g",value:this.props.rgb.g,onChange:this.handleChange})),r.default.createElement("div",{style:t.field},r.default.createElement(a.EditableInput,{style:{input:t.input,label:t.label},label:"b",value:this.props.rgb.b,onChange:this.handleChange})),r.default.createElement("div",{style:t.alpha},r.default.createElement(a.EditableInput,{style:{input:t.input,label:t.label},label:"a",value:this.props.rgb.a,arrowOffset:.01,onChange:this.handleChange}))):"hsl"===this.state.view&&(A=r.default.createElement("div",{style:t.fields,className:"flexbox-fix"},r.default.createElement("div",{style:t.field},r.default.createElement(a.EditableInput,{style:{input:t.input,label:t.label},label:"h",value:Math.round(this.props.hsl.h),onChange:this.handleChange})),r.default.createElement("div",{style:t.field},r.default.createElement(a.EditableInput,{style:{input:t.input,label:t.label},label:"s",value:Math.round(100*this.props.hsl.s)+"%",onChange:this.handleChange})),r.default.createElement("div",{style:t.field},r.default.createElement(a.EditableInput,{style:{input:t.input,label:t.label},label:"l",value:Math.round(100*this.props.hsl.l)+"%",onChange:this.handleChange})),r.default.createElement("div",{style:t.alpha},r.default.createElement(a.EditableInput,{style:{input:t.input,label:t.label},label:"a",value:this.props.hsl.a,arrowOffset:.01,onChange:this.handleChange})))),r.default.createElement("div",{style:t.wrap,className:"flexbox-fix"},A,r.default.createElement("div",{style:t.toggle},r.default.createElement("div",{style:t.icon,onClick:this.toggleViews,ref:function(t){return e.icon=t}},r.default.createElement(s.default,{style:t.svg,onMouseOver:this.showHighlight,onMouseEnter:this.showHighlight,onMouseOut:this.hideHighlight}))))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return 1!==e.hsl.a&&"hex"===t.view?{view:"rgb"}:null}}]),t}(r.default.Component);c.defaultProps={view:"hex"},t.default=c},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},i=A(0),o=(n=i)&&n.__esModule?n:{default:n};t.default=function(e){var t=e.fill,A=void 0===t?"currentColor":t,n=e.width,i=void 0===n?24:n,a=e.height,s=void 0===a?24:a,g=e.style,c=void 0===g?{}:g,u=function(e,t){var A={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(A[n]=e[n]);return A}(e,["fill","width","height","style"]);return o.default.createElement("svg",r({viewBox:"0 0 24 24",style:r({fill:A,width:i,height:s},c)},u),o.default.createElement("path",{d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}))}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChromePointer=void 0;var n=i(A(0)),r=i(A(49));function i(e){return e&&e.__esModule?e:{default:e}}var o=t.ChromePointer=function(){var e=(0,r.default)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return n.default.createElement("div",{style:e.picker})};t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChromePointerCircle=void 0;var n=i(A(0)),r=i(A(49));function i(e){return e&&e.__esModule?e:{default:e}}var o=t.ChromePointerCircle=function(){var e=(0,r.default)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}}});return n.default.createElement("div",{style:e.picker})};t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Compact=void 0;var n=l(A(0)),r=l(A(13)),i=l(A(49)),o=l(A(193)),a=l(A(123)),s=l(A(142)),g=A(74),c=l(A(1022)),u=l(A(1023));function l(e){return e&&e.__esModule?e:{default:e}}var I=t.Compact=function(e){var t=e.onChange,A=e.onSwatchHover,r=e.colors,l=e.hex,I=e.rgb,C=e.styles,h=void 0===C?{}:C,f=e.className,d=void 0===f?"":f,B=(0,i.default)((0,a.default)({default:{Compact:{background:"#f6f6f6",radius:"4px"},compact:{paddingTop:"5px",paddingLeft:"5px",boxSizing:"initial",width:"240px"},clear:{clear:"both"}}},h)),p=function(e,A){e.hex?s.default.isValidHex(e.hex)&&t({hex:e.hex,source:"hex"},A):t(e,A)};return n.default.createElement(g.Raised,{style:B.Compact,styles:h},n.default.createElement("div",{style:B.compact,className:"compact-picker "+d},n.default.createElement("div",null,(0,o.default)(r,(function(e){return n.default.createElement(c.default,{key:e,color:e,active:e.toLowerCase()===l,onClick:p,onSwatchHover:A})})),n.default.createElement("div",{style:B.clear})),n.default.createElement(u.default,{hex:l,rgb:I,onChange:p})))};I.propTypes={colors:r.default.arrayOf(r.default.string),styles:r.default.object},I.defaultProps={colors:["#4D4D4D","#999999","#FFFFFF","#F44E3B","#FE9200","#FCDC00","#DBDF00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#FDA1FF","#333333","#808080","#cccccc","#D33115","#E27300","#FCC400","#B0BC00","#68BC00","#16A5A5","#009CE0","#7B64FF","#FA28FF","#000000","#666666","#B3B3B3","#9F0500","#C45100","#FB9E00","#808900","#194D33","#0C797D","#0062B1","#653294","#AB149E"],styles:{}},t.default=(0,g.ColorWrap)(I)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CompactColor=void 0;var n=a(A(0)),r=a(A(49)),i=a(A(142)),o=A(74);function a(e){return e&&e.__esModule?e:{default:e}}var s=t.CompactColor=function(e){var t=e.color,A=e.onClick,a=void 0===A?function(){}:A,s=e.onSwatchHover,g=e.active,c=(0,r.default)({default:{color:{background:t,width:"15px",height:"15px",float:"left",marginRight:"5px",marginBottom:"5px",position:"relative",cursor:"pointer"},dot:{absolute:"5px 5px 5px 5px",background:i.default.getContrastingColor(t),borderRadius:"50%",opacity:"0"}},active:{dot:{opacity:"1"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},dot:{background:"#000"}},transparent:{dot:{background:"#000"}}},{active:g,"color-#FFFFFF":"#FFFFFF"===t,transparent:"transparent"===t});return n.default.createElement(o.Swatch,{style:c.color,color:t,onClick:a,onHover:s,focusStyle:{boxShadow:"0 0 4px "+t}},n.default.createElement("div",{style:c.dot}))};t.default=s},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CompactFields=void 0;var n=o(A(0)),r=o(A(49)),i=A(74);function o(e){return e&&e.__esModule?e:{default:e}}var a=t.CompactFields=function(e){var t=e.hex,A=e.rgb,o=e.onChange,a=(0,r.default)({default:{fields:{display:"flex",paddingBottom:"6px",paddingRight:"5px",position:"relative"},active:{position:"absolute",top:"6px",left:"5px",height:"9px",width:"9px",background:t},HEXwrap:{flex:"6",position:"relative"},HEXinput:{width:"80%",padding:"0px",paddingLeft:"20%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},HEXlabel:{display:"none"},RGBwrap:{flex:"3",position:"relative"},RGBinput:{width:"70%",padding:"0px",paddingLeft:"30%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},RGBlabel:{position:"absolute",top:"3px",left:"0px",lineHeight:"16px",textTransform:"uppercase",fontSize:"12px",color:"#999"}}}),s=function(e,t){e.r||e.g||e.b?o({r:e.r||A.r,g:e.g||A.g,b:e.b||A.b,source:"rgb"},t):o({hex:e.hex,source:"hex"},t)};return n.default.createElement("div",{style:a.fields,className:"flexbox-fix"},n.default.createElement("div",{style:a.active}),n.default.createElement(i.EditableInput,{style:{wrap:a.HEXwrap,input:a.HEXinput,label:a.HEXlabel},label:"hex",value:t,onChange:s}),n.default.createElement(i.EditableInput,{style:{wrap:a.RGBwrap,input:a.RGBinput,label:a.RGBlabel},label:"r",value:A.r,onChange:s}),n.default.createElement(i.EditableInput,{style:{wrap:a.RGBwrap,input:a.RGBinput,label:a.RGBlabel},label:"g",value:A.g,onChange:s}),n.default.createElement(i.EditableInput,{style:{wrap:a.RGBwrap,input:a.RGBinput,label:a.RGBlabel},label:"b",value:A.b,onChange:s}))};t.default=a},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Github=void 0;var n=c(A(0)),r=c(A(13)),i=c(A(49)),o=c(A(193)),a=c(A(123)),s=A(74),g=c(A(1025));function c(e){return e&&e.__esModule?e:{default:e}}var u=t.Github=function(e){var t=e.width,A=e.colors,r=e.onChange,s=e.onSwatchHover,c=e.triangle,u=e.styles,l=void 0===u?{}:u,I=e.className,C=void 0===I?"":I,h=(0,i.default)((0,a.default)({default:{card:{width:t,background:"#fff",border:"1px solid rgba(0,0,0,0.2)",boxShadow:"0 3px 12px rgba(0,0,0,0.15)",borderRadius:"4px",position:"relative",padding:"5px",display:"flex",flexWrap:"wrap"},triangle:{position:"absolute",border:"7px solid transparent",borderBottomColor:"#fff"},triangleShadow:{position:"absolute",border:"8px solid transparent",borderBottomColor:"rgba(0,0,0,0.15)"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-14px",left:"10px"},triangleShadow:{top:"-16px",left:"9px"}},"top-right-triangle":{triangle:{top:"-14px",right:"10px"},triangleShadow:{top:"-16px",right:"9px"}},"bottom-left-triangle":{triangle:{top:"35px",left:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",left:"9px",transform:"rotate(180deg)"}},"bottom-right-triangle":{triangle:{top:"35px",right:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",right:"9px",transform:"rotate(180deg)"}}},l),{"hide-triangle":"hide"===c,"top-left-triangle":"top-left"===c,"top-right-triangle":"top-right"===c,"bottom-left-triangle":"bottom-left"===c,"bottom-right-triangle":"bottom-right"===c}),f=function(e,t){return r({hex:e,source:"hex"},t)};return n.default.createElement("div",{style:h.card,className:"github-picker "+C},n.default.createElement("div",{style:h.triangleShadow}),n.default.createElement("div",{style:h.triangle}),(0,o.default)(A,(function(e){return n.default.createElement(g.default,{color:e,key:e,onClick:f,onSwatchHover:s})})))};u.propTypes={width:r.default.oneOfType([r.default.string,r.default.number]),colors:r.default.arrayOf(r.default.string),triangle:r.default.oneOf(["hide","top-left","top-right","bottom-left","bottom-right"]),styles:r.default.object},u.defaultProps={width:200,colors:["#B80000","#DB3E00","#FCCB00","#008B02","#006B76","#1273DE","#004DCF","#5300EB","#EB9694","#FAD0C3","#FEF3BD","#C1E1C5","#BEDADC","#C4DEF6","#BED3F3","#D4C4FB"],triangle:"top-left",styles:{}},t.default=(0,s.ColorWrap)(u)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GithubSwatch=void 0;var n=a(A(0)),r=A(49),i=a(r),o=A(74);function a(e){return e&&e.__esModule?e:{default:e}}var s=t.GithubSwatch=function(e){var t=e.hover,A=e.color,r=e.onClick,a=e.onSwatchHover,s={position:"relative",zIndex:"2",outline:"2px solid #fff",boxShadow:"0 0 5px 2px rgba(0,0,0,0.25)"},g=(0,i.default)({default:{swatch:{width:"25px",height:"25px",fontSize:"0"}},hover:{swatch:s}},{hover:t});return n.default.createElement("div",{style:g.swatch},n.default.createElement(o.Swatch,{color:A,onClick:r,onHover:a,focusStyle:s}))};t.default=(0,r.handleHover)(s)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HuePicker=void 0;var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},r=c(A(0)),i=c(A(13)),o=c(A(49)),a=c(A(123)),s=A(74),g=c(A(1027));function c(e){return e&&e.__esModule?e:{default:e}}var u=t.HuePicker=function(e){var t=e.width,A=e.height,i=e.onChange,g=e.hsl,c=e.direction,u=e.pointer,l=e.styles,I=void 0===l?{}:l,C=e.className,h=void 0===C?"":C,f=(0,o.default)((0,a.default)({default:{picker:{position:"relative",width:t,height:A},hue:{radius:"2px"}}},I));return r.default.createElement("div",{style:f.picker,className:"hue-picker "+h},r.default.createElement(s.Hue,n({},f.hue,{hsl:g,pointer:u,onChange:function(e){return i({a:1,h:e.h,l:.5,s:1})},direction:c})))};u.propTypes={styles:i.default.object},u.defaultProps={width:"316px",height:"16px",direction:"horizontal",pointer:g.default,styles:{}},t.default=(0,s.ColorWrap)(u)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SliderPointer=void 0;var n=i(A(0)),r=i(A(49));function i(e){return e&&e.__esModule?e:{default:e}}var o=t.SliderPointer=function(e){var t=e.direction,A=(0,r.default)({default:{picker:{width:"18px",height:"18px",borderRadius:"50%",transform:"translate(-9px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}},vertical:{picker:{transform:"translate(-3px, -9px)"}}},{vertical:"vertical"===t});return n.default.createElement("div",{style:A.picker})};t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Material=void 0;var n=s(A(0)),r=s(A(49)),i=s(A(123)),o=s(A(142)),a=A(74);function s(e){return e&&e.__esModule?e:{default:e}}var g=t.Material=function(e){var t=e.onChange,A=e.hex,s=e.rgb,g=e.styles,c=void 0===g?{}:g,u=e.className,l=void 0===u?"":u,I=(0,r.default)((0,i.default)({default:{material:{width:"98px",height:"98px",padding:"16px",fontFamily:"Roboto"},HEXwrap:{position:"relative"},HEXinput:{width:"100%",marginTop:"12px",fontSize:"15px",color:"#333",padding:"0px",border:"0px",borderBottom:"2px solid "+A,outline:"none",height:"30px"},HEXlabel:{position:"absolute",top:"0px",left:"0px",fontSize:"11px",color:"#999999",textTransform:"capitalize"},Hex:{style:{}},RGBwrap:{position:"relative"},RGBinput:{width:"100%",marginTop:"12px",fontSize:"15px",color:"#333",padding:"0px",border:"0px",borderBottom:"1px solid #eee",outline:"none",height:"30px"},RGBlabel:{position:"absolute",top:"0px",left:"0px",fontSize:"11px",color:"#999999",textTransform:"capitalize"},split:{display:"flex",marginRight:"-10px",paddingTop:"11px"},third:{flex:"1",paddingRight:"10px"}}},c)),C=function(e,A){e.hex?o.default.isValidHex(e.hex)&&t({hex:e.hex,source:"hex"},A):(e.r||e.g||e.b)&&t({r:e.r||s.r,g:e.g||s.g,b:e.b||s.b,source:"rgb"},A)};return n.default.createElement(a.Raised,{styles:c},n.default.createElement("div",{style:I.material,className:"material-picker "+l},n.default.createElement(a.EditableInput,{style:{wrap:I.HEXwrap,input:I.HEXinput,label:I.HEXlabel},label:"hex",value:A,onChange:C}),n.default.createElement("div",{style:I.split,className:"flexbox-fix"},n.default.createElement("div",{style:I.third},n.default.createElement(a.EditableInput,{style:{wrap:I.RGBwrap,input:I.RGBinput,label:I.RGBlabel},label:"r",value:s.r,onChange:C})),n.default.createElement("div",{style:I.third},n.default.createElement(a.EditableInput,{style:{wrap:I.RGBwrap,input:I.RGBinput,label:I.RGBlabel},label:"g",value:s.g,onChange:C})),n.default.createElement("div",{style:I.third},n.default.createElement(a.EditableInput,{style:{wrap:I.RGBwrap,input:I.RGBinput,label:I.RGBlabel},label:"b",value:s.b,onChange:C})))))};t.default=(0,a.ColorWrap)(g)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Photoshop=void 0;var n=function(){function e(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,A,n){return A&&e(t.prototype,A),n&&e(t,n),t}}(),r=C(A(0)),i=C(A(13)),o=C(A(49)),a=C(A(123)),s=A(74),g=C(A(1030)),c=C(A(1031)),u=C(A(1032)),l=C(A(1033)),I=C(A(1034));function C(e){return e&&e.__esModule?e:{default:e}}var h=t.Photoshop=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var A=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return A.state={currentColor:e.hex},A}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"render",value:function(){var e=this.props,t=e.styles,A=void 0===t?{}:t,n=e.className,i=void 0===n?"":n,C=(0,o.default)((0,a.default)({default:{picker:{background:"#DCDCDC",borderRadius:"4px",boxShadow:"0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)",boxSizing:"initial",width:"513px"},head:{backgroundImage:"linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)",borderBottom:"1px solid #B1B1B1",boxShadow:"inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)",height:"23px",lineHeight:"24px",borderRadius:"4px 4px 0 0",fontSize:"13px",color:"#4D4D4D",textAlign:"center"},body:{padding:"15px 15px 0",display:"flex"},saturation:{width:"256px",height:"256px",position:"relative",border:"2px solid #B3B3B3",borderBottom:"2px solid #F0F0F0",overflow:"hidden"},hue:{position:"relative",height:"256px",width:"19px",marginLeft:"10px",border:"2px solid #B3B3B3",borderBottom:"2px solid #F0F0F0"},controls:{width:"180px",marginLeft:"10px"},top:{display:"flex"},previews:{width:"60px"},actions:{flex:"1",marginLeft:"20px"}}},A));return r.default.createElement("div",{style:C.picker,className:"photoshop-picker "+i},r.default.createElement("div",{style:C.head},this.props.header),r.default.createElement("div",{style:C.body,className:"flexbox-fix"},r.default.createElement("div",{style:C.saturation},r.default.createElement(s.Saturation,{hsl:this.props.hsl,hsv:this.props.hsv,pointer:c.default,onChange:this.props.onChange})),r.default.createElement("div",{style:C.hue},r.default.createElement(s.Hue,{direction:"vertical",hsl:this.props.hsl,pointer:u.default,onChange:this.props.onChange})),r.default.createElement("div",{style:C.controls},r.default.createElement("div",{style:C.top,className:"flexbox-fix"},r.default.createElement("div",{style:C.previews},r.default.createElement(I.default,{rgb:this.props.rgb,currentColor:this.state.currentColor})),r.default.createElement("div",{style:C.actions},r.default.createElement(l.default,{label:"OK",onClick:this.props.onAccept,active:!0}),r.default.createElement(l.default,{label:"Cancel",onClick:this.props.onCancel}),r.default.createElement(g.default,{onChange:this.props.onChange,rgb:this.props.rgb,hsv:this.props.hsv,hex:this.props.hex}))))))}}]),t}(r.default.Component);h.propTypes={header:i.default.string,styles:i.default.object},h.defaultProps={header:"Color Picker",styles:{}},t.default=(0,s.ColorWrap)(h)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopPicker=void 0;var n=a(A(0)),r=a(A(49)),i=a(A(142)),o=A(74);function a(e){return e&&e.__esModule?e:{default:e}}var s=t.PhotoshopPicker=function(e){var t=e.onChange,A=e.rgb,a=e.hsv,s=e.hex,g=(0,r.default)({default:{fields:{paddingTop:"5px",paddingBottom:"9px",width:"80px",position:"relative"},divider:{height:"5px"},RGBwrap:{position:"relative"},RGBinput:{marginLeft:"40%",width:"40%",height:"18px",border:"1px solid #888888",boxShadow:"inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC",marginBottom:"5px",fontSize:"13px",paddingLeft:"3px",marginRight:"10px"},RGBlabel:{left:"0px",width:"34px",textTransform:"uppercase",fontSize:"13px",height:"18px",lineHeight:"22px",position:"absolute"},HEXwrap:{position:"relative"},HEXinput:{marginLeft:"20%",width:"80%",height:"18px",border:"1px solid #888888",boxShadow:"inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC",marginBottom:"6px",fontSize:"13px",paddingLeft:"3px"},HEXlabel:{position:"absolute",top:"0px",left:"0px",width:"14px",textTransform:"uppercase",fontSize:"13px",height:"18px",lineHeight:"22px"},fieldSymbols:{position:"absolute",top:"5px",right:"-7px",fontSize:"13px"},symbol:{height:"20px",lineHeight:"22px",paddingBottom:"7px"}}}),c=function(e,n){e["#"]?i.default.isValidHex(e["#"])&&t({hex:e["#"],source:"hex"},n):e.r||e.g||e.b?t({r:e.r||A.r,g:e.g||A.g,b:e.b||A.b,source:"rgb"},n):(e.h||e.s||e.v)&&t({h:e.h||a.h,s:e.s||a.s,v:e.v||a.v,source:"hsv"},n)};return n.default.createElement("div",{style:g.fields},n.default.createElement(o.EditableInput,{style:{wrap:g.RGBwrap,input:g.RGBinput,label:g.RGBlabel},label:"h",value:Math.round(a.h),onChange:c}),n.default.createElement(o.EditableInput,{style:{wrap:g.RGBwrap,input:g.RGBinput,label:g.RGBlabel},label:"s",value:Math.round(100*a.s),onChange:c}),n.default.createElement(o.EditableInput,{style:{wrap:g.RGBwrap,input:g.RGBinput,label:g.RGBlabel},label:"v",value:Math.round(100*a.v),onChange:c}),n.default.createElement("div",{style:g.divider}),n.default.createElement(o.EditableInput,{style:{wrap:g.RGBwrap,input:g.RGBinput,label:g.RGBlabel},label:"r",value:A.r,onChange:c}),n.default.createElement(o.EditableInput,{style:{wrap:g.RGBwrap,input:g.RGBinput,label:g.RGBlabel},label:"g",value:A.g,onChange:c}),n.default.createElement(o.EditableInput,{style:{wrap:g.RGBwrap,input:g.RGBinput,label:g.RGBlabel},label:"b",value:A.b,onChange:c}),n.default.createElement("div",{style:g.divider}),n.default.createElement(o.EditableInput,{style:{wrap:g.HEXwrap,input:g.HEXinput,label:g.HEXlabel},label:"#",value:s.replace("#",""),onChange:c}),n.default.createElement("div",{style:g.fieldSymbols},n.default.createElement("div",{style:g.symbol},"\xb0"),n.default.createElement("div",{style:g.symbol},"%"),n.default.createElement("div",{style:g.symbol},"%")))};t.default=s},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopPointerCircle=void 0;var n=i(A(0)),r=i(A(49));function i(e){return e&&e.__esModule?e:{default:e}}var o=t.PhotoshopPointerCircle=function(e){var t=e.hsl,A=(0,r.default)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}},"black-outline":{picker:{boxShadow:"inset 0 0 0 1px #000"}}},{"black-outline":t.l>.5});return n.default.createElement("div",{style:A.picker})};t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopPointerCircle=void 0;var n=i(A(0)),r=i(A(49));function i(e){return e&&e.__esModule?e:{default:e}}var o=t.PhotoshopPointerCircle=function(){var e=(0,r.default)({default:{triangle:{width:0,height:0,borderStyle:"solid",borderWidth:"4px 0 4px 6px",borderColor:"transparent transparent transparent #fff",position:"absolute",top:"1px",left:"1px"},triangleBorder:{width:0,height:0,borderStyle:"solid",borderWidth:"5px 0 5px 8px",borderColor:"transparent transparent transparent #555"},left:{Extend:"triangleBorder",transform:"translate(-13px, -4px)"},leftInside:{Extend:"triangle",transform:"translate(-8px, -5px)"},right:{Extend:"triangleBorder",transform:"translate(20px, -14px) rotate(180deg)"},rightInside:{Extend:"triangle",transform:"translate(-8px, -5px)"}}});return n.default.createElement("div",{style:e.pointer},n.default.createElement("div",{style:e.left},n.default.createElement("div",{style:e.leftInside})),n.default.createElement("div",{style:e.right},n.default.createElement("div",{style:e.rightInside})))};t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopButton=void 0;var n=i(A(0)),r=i(A(49));function i(e){return e&&e.__esModule?e:{default:e}}var o=t.PhotoshopButton=function(e){var t=e.onClick,A=e.label,i=e.children,o=e.active,a=(0,r.default)({default:{button:{backgroundImage:"linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)",border:"1px solid #878787",borderRadius:"2px",height:"20px",boxShadow:"0 1px 0 0 #EAEAEA",fontSize:"14px",color:"#000",lineHeight:"20px",textAlign:"center",marginBottom:"10px",cursor:"pointer"}},active:{button:{boxShadow:"0 0 0 1px #878787"}}},{active:o});return n.default.createElement("div",{style:a.button,onClick:t},A||i)};t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PhotoshopPreviews=void 0;var n=i(A(0)),r=i(A(49));function i(e){return e&&e.__esModule?e:{default:e}}var o=t.PhotoshopPreviews=function(e){var t=e.rgb,A=e.currentColor,i=(0,r.default)({default:{swatches:{border:"1px solid #B3B3B3",borderBottom:"1px solid #F0F0F0",marginBottom:"2px",marginTop:"1px"},new:{height:"34px",background:"rgb("+t.r+","+t.g+", "+t.b+")",boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000"},current:{height:"34px",background:A,boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000"},label:{fontSize:"14px",color:"#000",textAlign:"center"}}});return n.default.createElement("div",null,n.default.createElement("div",{style:i.label},"new"),n.default.createElement("div",{style:i.swatches},n.default.createElement("div",{style:i.new}),n.default.createElement("div",{style:i.current})),n.default.createElement("div",{style:i.label},"current"))};t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Sketch=void 0;var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},r=u(A(0)),i=u(A(13)),o=u(A(49)),a=u(A(123)),s=A(74),g=u(A(1036)),c=u(A(1037));function u(e){return e&&e.__esModule?e:{default:e}}var l=t.Sketch=function(e){var t=e.width,A=e.rgb,i=e.hex,u=e.hsv,l=e.hsl,I=e.onChange,C=e.onSwatchHover,h=e.disableAlpha,f=e.presetColors,d=e.renderers,B=e.styles,p=void 0===B?{}:B,E=e.className,Q=void 0===E?"":E,y=(0,o.default)((0,a.default)({default:n({picker:{width:t,padding:"10px 10px 0",boxSizing:"initial",background:"#fff",borderRadius:"4px",boxShadow:"0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)"},saturation:{width:"100%",paddingBottom:"75%",position:"relative",overflow:"hidden"},Saturation:{radius:"3px",shadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"},controls:{display:"flex"},sliders:{padding:"4px 0",flex:"1"},color:{width:"24px",height:"24px",position:"relative",marginTop:"4px",marginLeft:"4px",borderRadius:"3px"},activeColor:{absolute:"0px 0px 0px 0px",borderRadius:"2px",background:"rgba("+A.r+","+A.g+","+A.b+","+A.a+")",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"},hue:{position:"relative",height:"10px",overflow:"hidden"},Hue:{radius:"2px",shadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"},alpha:{position:"relative",height:"10px",marginTop:"4px",overflow:"hidden"},Alpha:{radius:"2px",shadow:"inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)"}},p),disableAlpha:{color:{height:"10px"},hue:{height:"10px"},alpha:{display:"none"}}},p),{disableAlpha:h});return r.default.createElement("div",{style:y.picker,className:"sketch-picker "+Q},r.default.createElement("div",{style:y.saturation},r.default.createElement(s.Saturation,{style:y.Saturation,hsl:l,hsv:u,onChange:I})),r.default.createElement("div",{style:y.controls,className:"flexbox-fix"},r.default.createElement("div",{style:y.sliders},r.default.createElement("div",{style:y.hue},r.default.createElement(s.Hue,{style:y.Hue,hsl:l,onChange:I})),r.default.createElement("div",{style:y.alpha},r.default.createElement(s.Alpha,{style:y.Alpha,rgb:A,hsl:l,renderers:d,onChange:I}))),r.default.createElement("div",{style:y.color},r.default.createElement(s.Checkboard,null),r.default.createElement("div",{style:y.activeColor}))),r.default.createElement(g.default,{rgb:A,hsl:l,hex:i,onChange:I,disableAlpha:h}),r.default.createElement(c.default,{colors:f,onClick:I,onSwatchHover:C}))};l.propTypes={disableAlpha:i.default.bool,width:i.default.oneOfType([i.default.string,i.default.number]),styles:i.default.object},l.defaultProps={disableAlpha:!1,width:200,styles:{},presetColors:["#D0021B","#F5A623","#F8E71C","#8B572A","#7ED321","#417505","#BD10E0","#9013FE","#4A90E2","#50E3C2","#B8E986","#000000","#4A4A4A","#9B9B9B","#FFFFFF"]},t.default=(0,s.ColorWrap)(l)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SketchFields=void 0;var n=a(A(0)),r=a(A(49)),i=a(A(142)),o=A(74);function a(e){return e&&e.__esModule?e:{default:e}}var s=t.SketchFields=function(e){var t=e.onChange,A=e.rgb,a=e.hsl,s=e.hex,g=e.disableAlpha,c=(0,r.default)({default:{fields:{display:"flex",paddingTop:"4px"},single:{flex:"1",paddingLeft:"6px"},alpha:{flex:"1",paddingLeft:"6px"},double:{flex:"2"},input:{width:"80%",padding:"4px 10% 3px",border:"none",boxShadow:"inset 0 0 0 1px #ccc",fontSize:"11px"},label:{display:"block",textAlign:"center",fontSize:"11px",color:"#222",paddingTop:"3px",paddingBottom:"4px",textTransform:"capitalize"}},disableAlpha:{alpha:{display:"none"}}},{disableAlpha:g}),u=function(e,n){e.hex?i.default.isValidHex(e.hex)&&t({hex:e.hex,source:"hex"},n):e.r||e.g||e.b?t({r:e.r||A.r,g:e.g||A.g,b:e.b||A.b,a:A.a,source:"rgb"},n):e.a&&(e.a<0?e.a=0:e.a>100&&(e.a=100),e.a/=100,t({h:a.h,s:a.s,l:a.l,a:e.a,source:"rgb"},n))};return n.default.createElement("div",{style:c.fields,className:"flexbox-fix"},n.default.createElement("div",{style:c.double},n.default.createElement(o.EditableInput,{style:{input:c.input,label:c.label},label:"hex",value:s.replace("#",""),onChange:u})),n.default.createElement("div",{style:c.single},n.default.createElement(o.EditableInput,{style:{input:c.input,label:c.label},label:"r",value:A.r,onChange:u,dragLabel:"true",dragMax:"255"})),n.default.createElement("div",{style:c.single},n.default.createElement(o.EditableInput,{style:{input:c.input,label:c.label},label:"g",value:A.g,onChange:u,dragLabel:"true",dragMax:"255"})),n.default.createElement("div",{style:c.single},n.default.createElement(o.EditableInput,{style:{input:c.input,label:c.label},label:"b",value:A.b,onChange:u,dragLabel:"true",dragMax:"255"})),n.default.createElement("div",{style:c.alpha},n.default.createElement(o.EditableInput,{style:{input:c.input,label:c.label},label:"a",value:Math.round(100*A.a),onChange:u,dragLabel:"true",dragMax:"100"})))};t.default=s},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SketchPresetColors=void 0;var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},r=s(A(0)),i=s(A(13)),o=s(A(49)),a=A(74);function s(e){return e&&e.__esModule?e:{default:e}}var g=t.SketchPresetColors=function(e){var t=e.colors,A=e.onClick,i=void 0===A?function(){}:A,s=e.onSwatchHover,g=(0,o.default)({default:{colors:{margin:"0 -10px",padding:"10px 0 0 10px",borderTop:"1px solid #eee",display:"flex",flexWrap:"wrap",position:"relative"},swatchWrap:{width:"16px",height:"16px",margin:"0 10px 10px 0"},swatch:{borderRadius:"3px",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.15)"}},"no-presets":{colors:{display:"none"}}},{"no-presets":!t||!t.length}),c=function(e,t){i({hex:e,source:"hex"},t)};return r.default.createElement("div",{style:g.colors,className:"flexbox-fix"},t.map((function(e){var t="string"===typeof e?{color:e}:e,A=""+t.color+(t.title||"");return r.default.createElement("div",{key:A,style:g.swatchWrap},r.default.createElement(a.Swatch,n({},t,{style:g.swatch,onClick:c,onHover:s,focusStyle:{boxShadow:"inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px "+t.color}})))})))};g.propTypes={colors:i.default.arrayOf(i.default.oneOfType([i.default.string,i.default.shape({color:i.default.string,title:i.default.string})])).isRequired},t.default=g},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Slider=void 0;var n=c(A(0)),r=c(A(13)),i=c(A(49)),o=c(A(123)),a=A(74),s=c(A(1039)),g=c(A(1041));function c(e){return e&&e.__esModule?e:{default:e}}var u=t.Slider=function(e){var t=e.hsl,A=e.onChange,r=e.pointer,g=e.styles,c=void 0===g?{}:g,u=e.className,l=void 0===u?"":u,I=(0,i.default)((0,o.default)({default:{hue:{height:"12px",position:"relative"},Hue:{radius:"2px"}}},c));return n.default.createElement("div",{style:I.wrap||{},className:"slider-picker "+l},n.default.createElement("div",{style:I.hue},n.default.createElement(a.Hue,{style:I.Hue,hsl:t,pointer:r,onChange:A})),n.default.createElement("div",{style:I.swatches},n.default.createElement(s.default,{hsl:t,onClick:A})))};u.propTypes={styles:r.default.object},u.defaultProps={pointer:g.default,styles:{}},t.default=(0,a.ColorWrap)(u)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SliderSwatches=void 0;var n=o(A(0)),r=o(A(49)),i=o(A(1040));function o(e){return e&&e.__esModule?e:{default:e}}var a=t.SliderSwatches=function(e){var t=e.onClick,A=e.hsl,o=(0,r.default)({default:{swatches:{marginTop:"20px"},swatch:{boxSizing:"border-box",width:"20%",paddingRight:"1px",float:"left"},clear:{clear:"both"}}});return n.default.createElement("div",{style:o.swatches},n.default.createElement("div",{style:o.swatch},n.default.createElement(i.default,{hsl:A,offset:".80",active:Math.abs(A.l-.8)<.1&&Math.abs(A.s-.5)<.1,onClick:t,first:!0})),n.default.createElement("div",{style:o.swatch},n.default.createElement(i.default,{hsl:A,offset:".65",active:Math.abs(A.l-.65)<.1&&Math.abs(A.s-.5)<.1,onClick:t})),n.default.createElement("div",{style:o.swatch},n.default.createElement(i.default,{hsl:A,offset:".50",active:Math.abs(A.l-.5)<.1&&Math.abs(A.s-.5)<.1,onClick:t})),n.default.createElement("div",{style:o.swatch},n.default.createElement(i.default,{hsl:A,offset:".35",active:Math.abs(A.l-.35)<.1&&Math.abs(A.s-.5)<.1,onClick:t})),n.default.createElement("div",{style:o.swatch},n.default.createElement(i.default,{hsl:A,offset:".20",active:Math.abs(A.l-.2)<.1&&Math.abs(A.s-.5)<.1,onClick:t,last:!0})),n.default.createElement("div",{style:o.clear}))};t.default=a},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SliderSwatch=void 0;var n=i(A(0)),r=i(A(49));function i(e){return e&&e.__esModule?e:{default:e}}var o=t.SliderSwatch=function(e){var t=e.hsl,A=e.offset,i=e.onClick,o=void 0===i?function(){}:i,a=e.active,s=e.first,g=e.last,c=(0,r.default)({default:{swatch:{height:"12px",background:"hsl("+t.h+", 50%, "+100*A+"%)",cursor:"pointer"}},first:{swatch:{borderRadius:"2px 0 0 2px"}},last:{swatch:{borderRadius:"0 2px 2px 0"}},active:{swatch:{transform:"scaleY(1.8)",borderRadius:"3.6px/2px"}}},{active:a,first:s,last:g});return n.default.createElement("div",{style:c.swatch,onClick:function(e){return o({h:t.h,s:.5,l:A,source:"hsl"},e)}})};t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SliderPointer=void 0;var n=i(A(0)),r=i(A(49));function i(e){return e&&e.__esModule?e:{default:e}}var o=t.SliderPointer=function(){var e=(0,r.default)({default:{picker:{width:"14px",height:"14px",borderRadius:"6px",transform:"translate(-7px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return n.default.createElement("div",{style:e.picker})};t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Swatches=void 0;var n=l(A(0)),r=l(A(13)),i=l(A(49)),o=l(A(193)),a=l(A(123)),s=l(A(142)),g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var A in e)Object.prototype.hasOwnProperty.call(e,A)&&(t[A]=e[A]);return t.default=e,t}(A(618)),c=A(74),u=l(A(1043));function l(e){return e&&e.__esModule?e:{default:e}}var I=t.Swatches=function(e){var t=e.width,A=e.height,r=e.onChange,g=e.onSwatchHover,l=e.colors,I=e.hex,C=e.styles,h=void 0===C?{}:C,f=e.className,d=void 0===f?"":f,B=(0,i.default)((0,a.default)({default:{picker:{width:t,height:A},overflow:{height:A,overflowY:"scroll"},body:{padding:"16px 0 6px 16px"},clear:{clear:"both"}}},h)),p=function(e,t){s.default.isValidHex(e)&&r({hex:e,source:"hex"},t)};return n.default.createElement("div",{style:B.picker,className:"swatches-picker "+d},n.default.createElement(c.Raised,null,n.default.createElement("div",{style:B.overflow},n.default.createElement("div",{style:B.body},(0,o.default)(l,(function(e){return n.default.createElement(u.default,{key:e.toString(),group:e,active:I,onClick:p,onSwatchHover:g})})),n.default.createElement("div",{style:B.clear})))))};I.propTypes={width:r.default.oneOfType([r.default.string,r.default.number]),height:r.default.oneOfType([r.default.string,r.default.number]),colors:r.default.arrayOf(r.default.arrayOf(r.default.string)),styles:r.default.object},I.defaultProps={width:320,height:240,colors:[[g.red[900],g.red[700],g.red[500],g.red[300],g.red[100]],[g.pink[900],g.pink[700],g.pink[500],g.pink[300],g.pink[100]],[g.purple[900],g.purple[700],g.purple[500],g.purple[300],g.purple[100]],[g.deepPurple[900],g.deepPurple[700],g.deepPurple[500],g.deepPurple[300],g.deepPurple[100]],[g.indigo[900],g.indigo[700],g.indigo[500],g.indigo[300],g.indigo[100]],[g.blue[900],g.blue[700],g.blue[500],g.blue[300],g.blue[100]],[g.lightBlue[900],g.lightBlue[700],g.lightBlue[500],g.lightBlue[300],g.lightBlue[100]],[g.cyan[900],g.cyan[700],g.cyan[500],g.cyan[300],g.cyan[100]],[g.teal[900],g.teal[700],g.teal[500],g.teal[300],g.teal[100]],["#194D33",g.green[700],g.green[500],g.green[300],g.green[100]],[g.lightGreen[900],g.lightGreen[700],g.lightGreen[500],g.lightGreen[300],g.lightGreen[100]],[g.lime[900],g.lime[700],g.lime[500],g.lime[300],g.lime[100]],[g.yellow[900],g.yellow[700],g.yellow[500],g.yellow[300],g.yellow[100]],[g.amber[900],g.amber[700],g.amber[500],g.amber[300],g.amber[100]],[g.orange[900],g.orange[700],g.orange[500],g.orange[300],g.orange[100]],[g.deepOrange[900],g.deepOrange[700],g.deepOrange[500],g.deepOrange[300],g.deepOrange[100]],[g.brown[900],g.brown[700],g.brown[500],g.brown[300],g.brown[100]],[g.blueGrey[900],g.blueGrey[700],g.blueGrey[500],g.blueGrey[300],g.blueGrey[100]],["#000000","#525252","#969696","#D9D9D9","#FFFFFF"]],styles:{}},t.default=(0,c.ColorWrap)(I)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SwatchesGroup=void 0;var n=a(A(0)),r=a(A(49)),i=a(A(193)),o=a(A(1044));function a(e){return e&&e.__esModule?e:{default:e}}var s=t.SwatchesGroup=function(e){var t=e.onClick,A=e.onSwatchHover,a=e.group,s=e.active,g=(0,r.default)({default:{group:{paddingBottom:"10px",width:"40px",float:"left",marginRight:"10px"}}});return n.default.createElement("div",{style:g.group},(0,i.default)(a,(function(e,r){return n.default.createElement(o.default,{key:e,color:e,active:e.toLowerCase()===s,first:0===r,last:r===a.length-1,onClick:t,onSwatchHover:A})})))};t.default=s},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SwatchesColor=void 0;var n=s(A(0)),r=s(A(49)),i=s(A(142)),o=A(74),a=s(A(1045));function s(e){return e&&e.__esModule?e:{default:e}}var g=t.SwatchesColor=function(e){var t=e.color,A=e.onClick,s=void 0===A?function(){}:A,g=e.onSwatchHover,c=e.first,u=e.last,l=e.active,I=(0,r.default)({default:{color:{width:"40px",height:"24px",cursor:"pointer",background:t,marginBottom:"1px"},check:{color:i.default.getContrastingColor(t),marginLeft:"8px",display:"none"}},first:{color:{overflow:"hidden",borderRadius:"2px 2px 0 0"}},last:{color:{overflow:"hidden",borderRadius:"0 0 2px 2px"}},active:{check:{display:"block"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},check:{color:"#333"}},transparent:{check:{color:"#333"}}},{first:c,last:u,active:l,"color-#FFFFFF":"#FFFFFF"===t,transparent:"transparent"===t});return n.default.createElement(o.Swatch,{color:t,style:I.color,onClick:s,onHover:g,focusStyle:{boxShadow:"0 0 4px "+t}},n.default.createElement("div",{style:I.check},n.default.createElement(a.default,null)))};t.default=g},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e},i=A(0),o=(n=i)&&n.__esModule?n:{default:n};t.default=function(e){var t=e.fill,A=void 0===t?"currentColor":t,n=e.width,i=void 0===n?24:n,a=e.height,s=void 0===a?24:a,g=e.style,c=void 0===g?{}:g,u=function(e,t){var A={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(A[n]=e[n]);return A}(e,["fill","width","height","style"]);return o.default.createElement("svg",r({viewBox:"0 0 24 24",style:r({fill:A,width:i,height:s},c)},u),o.default.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Twitter=void 0;var n=c(A(0)),r=c(A(13)),i=c(A(49)),o=c(A(193)),a=c(A(123)),s=c(A(142)),g=A(74);function c(e){return e&&e.__esModule?e:{default:e}}var u=t.Twitter=function(e){var t=e.onChange,A=e.onSwatchHover,r=e.hex,c=e.colors,u=e.width,l=e.triangle,I=e.styles,C=void 0===I?{}:I,h=e.className,f=void 0===h?"":h,d=(0,i.default)((0,a.default)({default:{card:{width:u,background:"#fff",border:"0 solid rgba(0,0,0,0.25)",boxShadow:"0 1px 4px rgba(0,0,0,0.25)",borderRadius:"4px",position:"relative"},body:{padding:"15px 9px 9px 15px"},label:{fontSize:"18px",color:"#fff"},triangle:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent #fff transparent",position:"absolute"},triangleShadow:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent rgba(0,0,0,.1) transparent",position:"absolute"},hash:{background:"#F0F0F0",height:"30px",width:"30px",borderRadius:"4px 0 0 4px",float:"left",color:"#98A1A4",display:"flex",alignItems:"center",justifyContent:"center"},input:{width:"100px",fontSize:"14px",color:"#666",border:"0px",outline:"none",height:"28px",boxShadow:"inset 0 0 0 1px #F0F0F0",boxSizing:"content-box",borderRadius:"0 4px 4px 0",float:"left",paddingLeft:"8px"},swatch:{width:"30px",height:"30px",float:"left",borderRadius:"4px",margin:"0 6px 6px 0"},clear:{clear:"both"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-10px",left:"12px"},triangleShadow:{top:"-11px",left:"12px"}},"top-right-triangle":{triangle:{top:"-10px",right:"12px"},triangleShadow:{top:"-11px",right:"12px"}}},C),{"hide-triangle":"hide"===l,"top-left-triangle":"top-left"===l,"top-right-triangle":"top-right"===l}),B=function(e,A){s.default.isValidHex(e)&&t({hex:e,source:"hex"},A)};return n.default.createElement("div",{style:d.card,className:"twitter-picker "+f},n.default.createElement("div",{style:d.triangleShadow}),n.default.createElement("div",{style:d.triangle}),n.default.createElement("div",{style:d.body},(0,o.default)(c,(function(e,t){return n.default.createElement(g.Swatch,{key:t,color:e,hex:e,style:d.swatch,onClick:B,onHover:A,focusStyle:{boxShadow:"0 0 4px "+e}})})),n.default.createElement("div",{style:d.hash},"#"),n.default.createElement(g.EditableInput,{label:null,style:{input:d.input},value:r.replace("#",""),onChange:B}),n.default.createElement("div",{style:d.clear})))};u.propTypes={width:r.default.oneOfType([r.default.string,r.default.number]),triangle:r.default.oneOf(["hide","top-left","top-right"]),colors:r.default.arrayOf(r.default.string),styles:r.default.object},u.defaultProps={width:276,colors:["#FF6900","#FCB900","#7BDCB5","#00D084","#8ED1FC","#0693E3","#ABB8C3","#EB144C","#F78DA7","#9900EF"],triangle:"top-left",styles:{}},t.default=(0,g.ColorWrap)(u)},function(e,t,A){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(A(1048)),i=n(A(443)),o=["altKey","bubbles","cancelable","ctrlKey","currentTarget","eventPhase","metaKey","shiftKey","target","timeStamp","view","type"];function a(e){return null===e||void 0===e}var s=[{reg:/^key/,props:["char","charCode","key","keyCode","which"],fix:function(e,t){a(e.which)&&(e.which=a(t.charCode)?t.keyCode:t.charCode),void 0===e.metaKey&&(e.metaKey=e.ctrlKey)}},{reg:/^touch/,props:["touches","changedTouches","targetTouches"]},{reg:/^hashchange$/,props:["newURL","oldURL"]},{reg:/^gesturechange$/i,props:["rotation","scale"]},{reg:/^(mousewheel|DOMMouseScroll)$/,props:[],fix:function(e,t){var A=void 0,n=void 0,r=void 0,i=t.wheelDelta,o=t.axis,a=t.wheelDeltaY,s=t.wheelDeltaX,g=t.detail;i&&(r=i/120),g&&(r=0-(g%3===0?g/3:g)),void 0!==o&&(o===e.HORIZONTAL_AXIS?(n=0,A=0-r):o===e.VERTICAL_AXIS&&(A=0,n=r)),void 0!==a&&(n=a/120),void 0!==s&&(A=-1*s/120),A||n||(n=r),void 0!==A&&(e.deltaX=A),void 0!==n&&(e.deltaY=n),void 0!==r&&(e.delta=r)}},{reg:/^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,props:["buttons","clientX","clientY","button","offsetX","relatedTarget","which","fromElement","toElement","offsetY","pageX","pageY","screenX","screenY"],fix:function(e,t){var A=void 0,n=void 0,r=void 0,i=e.target,o=t.button;return i&&a(e.pageX)&&!a(t.clientX)&&(n=(A=i.ownerDocument||document).documentElement,r=A.body,e.pageX=t.clientX+(n&&n.scrollLeft||r&&r.scrollLeft||0)-(n&&n.clientLeft||r&&r.clientLeft||0),e.pageY=t.clientY+(n&&n.scrollTop||r&&r.scrollTop||0)-(n&&n.clientTop||r&&r.clientTop||0)),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),!e.relatedTarget&&e.fromElement&&(e.relatedTarget=e.fromElement===i?e.toElement:e.fromElement),e}}];function g(){return!0}function c(){return!1}function u(e){var t=e.type,A="function"===typeof e.stopPropagation||"boolean"===typeof e.cancelBubble;r.default.call(this),this.nativeEvent=e;var n=c;"defaultPrevented"in e?n=e.defaultPrevented?g:c:"getPreventDefault"in e?n=e.getPreventDefault()?g:c:"returnValue"in e&&(n=!1===e.returnValue?g:c),this.isDefaultPrevented=n;var i=[],a=void 0,u=void 0,l=o.concat();for(s.forEach((function(e){t.match(e.reg)&&(l=l.concat(e.props),e.fix&&i.push(e.fix))})),a=l.length;a;)this[u=l[--a]]=e[u];for(!this.target&&A&&(this.target=e.srcElement||document),this.target&&3===this.target.nodeType&&(this.target=this.target.parentNode),a=i.length;a;)(0,i[--a])(this,e);this.timeStamp=e.timeStamp||Date.now()}var l=r.default.prototype;(0,i.default)(u.prototype,l,{constructor:u,preventDefault:function(){var e=this.nativeEvent;e.preventDefault?e.preventDefault():e.returnValue=!1,l.preventDefault.call(this)},stopPropagation:function(){var e=this.nativeEvent;e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,l.stopPropagation.call(this)}}),t.default=u,e.exports=t.default},function(e,t,A){"use strict";function n(){return!1}function r(){return!0}function i(){this.timeStamp=Date.now(),this.target=void 0,this.currentTarget=void 0}Object.defineProperty(t,"__esModule",{value:!0}),i.prototype={isEventObject:1,constructor:i,isDefaultPrevented:n,isPropagationStopped:n,isImmediatePropagationStopped:n,preventDefault:function(){this.isDefaultPrevented=r},stopPropagation:function(){this.isPropagationStopped=r},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=r,this.stopPropagation()},halt:function(e){e?this.stopImmediatePropagation():this.stopPropagation(),this.preventDefault()}},t.default=i,e.exports=t.default},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=A(619),r=A(620),i=A(490),o=A(489),a=A(105),s=A(141),g=A(59),c=A(621);function u(e,t){var A=a.getCoords(t),n=a.getCoords(e),r=n[0],i=n[n.length-1],o=e.geometry.coordinates;return c(A[0],r)?o.unshift(A[1]):c(A[0],i)?o.push(A[1]):c(A[1],r)?o.unshift(A[0]):c(A[1],i)&&o.push(A[0]),e}t.default=function(e,t,A){if(void 0===A&&(A={}),A=A||{},!g.isObject(A))throw new Error("options is invalid");var l,I=A.tolerance||0,C=[],h=n.default(),f=r.default(e);return h.load(f),s.segmentEach(t,(function(e){var t=!1;s.featureEach(h.search(e),(function(A){if(!1===t){var n=a.getCoords(e).sort(),r=a.getCoords(A).sort();c(n,r)||(0===I?o.default(n[0],A)&&o.default(n[1],A):i.default(A,n[0]).properties.dist<=I&&i.default(A,n[1]).properties.dist<=I)?(t=!0,l=l?u(l,e):e):(0===I?o.default(r[0],e)&&o.default(r[1],e):i.default(e,r[0]).properties.dist<=I&&i.default(e,r[1]).properties.dist<=I)&&(l=l?u(l,A):A)}})),!1===t&&l&&(C.push(l),l=void 0)})),l&&C.push(l),g.featureCollection(C)}},function(e,t,A){"use strict";e.exports=r,e.exports.default=r;var n=A(1051);function r(e,t){if(!(this instanceof r))return new r(e,t);this._maxEntries=Math.max(4,e||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),t&&this._initFormat(t),this.clear()}function i(e,t,A){if(!A)return t.indexOf(e);for(var n=0;n<t.length;n++)if(A(e,t[n]))return n;return-1}function o(e,t){a(e,0,e.children.length,t,e)}function a(e,t,A,n,r){r||(r=f(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(var i,o=t;o<A;o++)i=e.children[o],s(r,e.leaf?n(i):i);return r}function s(e,t){return e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY),e}function g(e,t){return e.minX-t.minX}function c(e,t){return e.minY-t.minY}function u(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function l(e){return e.maxX-e.minX+(e.maxY-e.minY)}function I(e,t){var A=Math.max(e.minX,t.minX),n=Math.max(e.minY,t.minY),r=Math.min(e.maxX,t.maxX),i=Math.min(e.maxY,t.maxY);return Math.max(0,r-A)*Math.max(0,i-n)}function C(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function h(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function f(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function d(e,t,A,r,i){for(var o,a=[t,A];a.length;)(A=a.pop())-(t=a.pop())<=r||(o=t+Math.ceil((A-t)/r/2)*r,n(e,o,t,A,i),a.push(t,o,o,A))}r.prototype={all:function(){return this._all(this.data,[])},search:function(e){var t=this.data,A=[],n=this.toBBox;if(!h(e,t))return A;for(var r,i,o,a,s=[];t;){for(r=0,i=t.children.length;r<i;r++)o=t.children[r],h(e,a=t.leaf?n(o):o)&&(t.leaf?A.push(o):C(e,a)?this._all(o,A):s.push(o));t=s.pop()}return A},collides:function(e){var t=this.data,A=this.toBBox;if(!h(e,t))return!1;for(var n,r,i,o,a=[];t;){for(n=0,r=t.children.length;n<r;n++)if(i=t.children[n],h(e,o=t.leaf?A(i):i)){if(t.leaf||C(e,o))return!0;a.push(i)}t=a.pop()}return!1},load:function(e){if(!e||!e.length)return this;if(e.length<this._minEntries){for(var t=0,A=e.length;t<A;t++)this.insert(e[t]);return this}var n=this._build(e.slice(),0,e.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this._splitRoot(this.data,n);else{if(this.data.height<n.height){var r=this.data;this.data=n,n=r}this._insert(n,this.data.height-n.height-1,!0)}else this.data=n;return this},insert:function(e){return e&&this._insert(e,this.data.height-1),this},clear:function(){return this.data=f([]),this},remove:function(e,t){if(!e)return this;for(var A,n,r,o,a=this.data,s=this.toBBox(e),g=[],c=[];a||g.length;){if(a||(a=g.pop(),n=g[g.length-1],A=c.pop(),o=!0),a.leaf&&-1!==(r=i(e,a.children,t)))return a.children.splice(r,1),g.push(a),this._condense(g),this;o||a.leaf||!C(a,s)?n?(A++,a=n.children[A],o=!1):a=null:(g.push(a),c.push(A),A=0,n=a,a=a.children[0])}return this},toBBox:function(e){return e},compareMinX:g,compareMinY:c,toJSON:function(){return this.data},fromJSON:function(e){return this.data=e,this},_all:function(e,t){for(var A=[];e;)e.leaf?t.push.apply(t,e.children):A.push.apply(A,e.children),e=A.pop();return t},_build:function(e,t,A,n){var r,i=A-t+1,a=this._maxEntries;if(i<=a)return o(r=f(e.slice(t,A+1)),this.toBBox),r;n||(n=Math.ceil(Math.log(i)/Math.log(a)),a=Math.ceil(i/Math.pow(a,n-1))),(r=f([])).leaf=!1,r.height=n;var s,g,c,u,l=Math.ceil(i/a),I=l*Math.ceil(Math.sqrt(a));for(d(e,t,A,I,this.compareMinX),s=t;s<=A;s+=I)for(d(e,s,c=Math.min(s+I-1,A),l,this.compareMinY),g=s;g<=c;g+=l)u=Math.min(g+l-1,c),r.children.push(this._build(e,g,u,n-1));return o(r,this.toBBox),r},_chooseSubtree:function(e,t,A,n){for(var r,i,o,a,s,g,c,l,I,C;n.push(t),!t.leaf&&n.length-1!==A;){for(c=l=1/0,r=0,i=t.children.length;r<i;r++)s=u(o=t.children[r]),I=e,C=o,(g=(Math.max(C.maxX,I.maxX)-Math.min(C.minX,I.minX))*(Math.max(C.maxY,I.maxY)-Math.min(C.minY,I.minY))-s)<l?(l=g,c=s<c?s:c,a=o):g===l&&s<c&&(c=s,a=o);t=a||t.children[0]}return t},_insert:function(e,t,A){var n=this.toBBox,r=A?e:n(e),i=[],o=this._chooseSubtree(r,this.data,t,i);for(o.children.push(e),s(o,r);t>=0&&i[t].children.length>this._maxEntries;)this._split(i,t),t--;this._adjustParentBBoxes(r,i,t)},_split:function(e,t){var A=e[t],n=A.children.length,r=this._minEntries;this._chooseSplitAxis(A,r,n);var i=this._chooseSplitIndex(A,r,n),a=f(A.children.splice(i,A.children.length-i));a.height=A.height,a.leaf=A.leaf,o(A,this.toBBox),o(a,this.toBBox),t?e[t-1].children.push(a):this._splitRoot(A,a)},_splitRoot:function(e,t){this.data=f([e,t]),this.data.height=e.height+1,this.data.leaf=!1,o(this.data,this.toBBox)},_chooseSplitIndex:function(e,t,A){var n,r,i,o,s,g,c,l;for(g=c=1/0,n=t;n<=A-t;n++)o=I(r=a(e,0,n,this.toBBox),i=a(e,n,A,this.toBBox)),s=u(r)+u(i),o<g?(g=o,l=n,c=s<c?s:c):o===g&&s<c&&(c=s,l=n);return l},_chooseSplitAxis:function(e,t,A){var n=e.leaf?this.compareMinX:g,r=e.leaf?this.compareMinY:c;this._allDistMargin(e,t,A,n)<this._allDistMargin(e,t,A,r)&&e.children.sort(n)},_allDistMargin:function(e,t,A,n){e.children.sort(n);var r,i,o=this.toBBox,g=a(e,0,t,o),c=a(e,A-t,A,o),u=l(g)+l(c);for(r=t;r<A-t;r++)i=e.children[r],s(g,e.leaf?o(i):i),u+=l(g);for(r=A-t-1;r>=t;r--)i=e.children[r],s(c,e.leaf?o(i):i),u+=l(c);return u},_adjustParentBBoxes:function(e,t,A){for(var n=A;n>=0;n--)s(t[n],e)},_condense:function(e){for(var t,A=e.length-1;A>=0;A--)0===e[A].children.length?A>0?(t=e[A-1].children).splice(t.indexOf(e[A]),1):this.clear():o(e[A],this.toBBox)},_initFormat:function(e){var t=["return a"," - b",";"];this.compareMinX=new Function("a","b",t.join(e[0])),this.compareMinY=new Function("a","b",t.join(e[1])),this.toBBox=new Function("a","return {minX: a"+e[0]+", minY: a"+e[1]+", maxX: a"+e[2]+", maxY: a"+e[3]+"};")}}},function(e,t,A){e.exports=function(){"use strict";function e(e,t,A){var n=e[t];e[t]=e[A],e[A]=n}function t(e,t){return e<t?-1:e>t?1:0}return function(A,n,r,i,o){!function t(A,n,r,i,o){for(;i>r;){if(i-r>600){var a=i-r+1,s=n-r+1,g=Math.log(a),c=.5*Math.exp(2*g/3),u=.5*Math.sqrt(g*c*(a-c)/a)*(s-a/2<0?-1:1),l=Math.max(r,Math.floor(n-s*c/a+u)),I=Math.min(i,Math.floor(n+(a-s)*c/a+u));t(A,n,l,I,o)}var C=A[n],h=r,f=i;for(e(A,r,n),o(A[i],C)>0&&e(A,r,i);h<f;){for(e(A,h,f),h++,f--;o(A[h],C)<0;)h++;for(;o(A[f],C)>0;)f--}0===o(A[r],C)?e(A,r,f):(f++,e(A,f,i)),f<=n&&(r=f+1),n<=f&&(i=f-1)}}(A,n,r||0,i||A.length-1,o||t)}}()},function(e,t,A){"use strict";var n;if(!Object.keys){var r=Object.prototype.hasOwnProperty,i=Object.prototype.toString,o=A(623),a=Object.prototype.propertyIsEnumerable,s=!a.call({toString:null},"toString"),g=a.call((function(){}),"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(e){var t=e.constructor;return t&&t.prototype===e},l={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},I=function(){if("undefined"===typeof window)return!1;for(var e in window)try{if(!l["$"+e]&&r.call(window,e)&&null!==window[e]&&"object"===typeof window[e])try{u(window[e])}catch(t){return!0}}catch(t){return!0}return!1}();n=function(e){var t=null!==e&&"object"===typeof e,A="[object Function]"===i.call(e),n=o(e),a=t&&"[object String]"===i.call(e),l=[];if(!t&&!A&&!n)throw new TypeError("Object.keys called on a non-object");var C=g&&A;if(a&&e.length>0&&!r.call(e,0))for(var h=0;h<e.length;++h)l.push(String(h));if(n&&e.length>0)for(var f=0;f<e.length;++f)l.push(String(f));else for(var d in e)C&&"prototype"===d||!r.call(e,d)||l.push(String(d));if(s)for(var B=function(e){if("undefined"===typeof window||!I)return u(e);try{return u(e)}catch(t){return!1}}(e),p=0;p<c.length;++p)B&&"constructor"===c[p]||!r.call(e,c[p])||l.push(c[p]);return l}}e.exports=n},function(e,t,A){"use strict";var n="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag,r=Object.prototype.toString,i=function(e){return!(n&&e&&"object"===typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===r.call(e)},o=function(e){return!!i(e)||null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Array]"!==r.call(e)&&"[object Function]"===r.call(e.callee)},a=function(){return i(arguments)}();i.isLegacyArguments=o,e.exports=a?i:o},function(e,t,A){"use strict";var n=function(e){return e!==e};e.exports=function(e,t){return 0===e&&0===t?1/e===1/t:e===t||!(!n(e)||!n(t))}},function(e,t,A){"use strict";var n=A(1056),r=RegExp.prototype.exec,i=Object.getOwnPropertyDescriptor,o=Object.prototype.toString,a="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;e.exports=function(e){if(!e||"object"!==typeof e)return!1;if(!a)return"[object RegExp]"===o.call(e);var t=i(e,"lastIndex");return!(!t||!n(t,"value"))&&function(e){try{var t=e.lastIndex;return e.lastIndex=0,r.call(e),!0}catch(A){return!1}finally{e.lastIndex=t}}(e)}},function(e,t,A){"use strict";var n=A(491);e.exports=n.call(Function.call,Object.prototype.hasOwnProperty)},function(e,t,A){"use strict";var n="Function.prototype.bind called on incompatible ",r=Array.prototype.slice,i=Object.prototype.toString;e.exports=function(e){var t=this;if("function"!==typeof t||"[object Function]"!==i.call(t))throw new TypeError(n+t);for(var A,o=r.call(arguments,1),a=function(){if(this instanceof A){var n=t.apply(this,o.concat(r.call(arguments)));return Object(n)===n?n:this}return t.apply(e,o.concat(r.call(arguments)))},s=Math.max(0,t.length-o.length),g=[],c=0;c<s;c++)g.push("$"+c);if(A=Function("binder","return function ("+g.join(",")+"){ return binder.apply(this,arguments); }")(a),t.prototype){var u=function(){};u.prototype=t.prototype,A.prototype=new u,u.prototype=null}return A}},function(e,t,A){"use strict";var n=A(492),r=A(1059),i=A(624),o=A(625),a=A(1063),s=r(i);n(s,{getPolyfill:o,implementation:i,shim:a}),e.exports=s},function(e,t,A){"use strict";var n=A(491),r=A(1060)("%Function%"),i=r.apply,o=r.call;e.exports=function(){return n.apply(o,arguments)},e.exports.apply=function(){return n.apply(i,arguments)}},function(e,t,A){"use strict";var n=TypeError,r=Object.getOwnPropertyDescriptor;if(r)try{r({},"")}catch(d){r=null}var i=function(){throw new n},o=r?function(){try{return arguments.callee,i}catch(e){try{return r(arguments,"callee").get}catch(t){return i}}}():i,a=A(1061)(),s=Object.getPrototypeOf||function(e){return e.__proto__},g=void 0,c="undefined"===typeof Uint8Array?void 0:s(Uint8Array),u={"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?void 0:ArrayBuffer,"%ArrayBufferPrototype%":"undefined"===typeof ArrayBuffer?void 0:ArrayBuffer.prototype,"%ArrayIteratorPrototype%":a?s([][Symbol.iterator]()):void 0,"%ArrayPrototype%":Array.prototype,"%ArrayProto_entries%":Array.prototype.entries,"%ArrayProto_forEach%":Array.prototype.forEach,"%ArrayProto_keys%":Array.prototype.keys,"%ArrayProto_values%":Array.prototype.values,"%AsyncFromSyncIteratorPrototype%":void 0,"%AsyncFunction%":void 0,"%AsyncFunctionPrototype%":void 0,"%AsyncGenerator%":void 0,"%AsyncGeneratorFunction%":void 0,"%AsyncGeneratorPrototype%":void 0,"%AsyncIteratorPrototype%":g&&a&&Symbol.asyncIterator?g[Symbol.asyncIterator]():void 0,"%Atomics%":"undefined"===typeof Atomics?void 0:Atomics,"%Boolean%":Boolean,"%BooleanPrototype%":Boolean.prototype,"%DataView%":"undefined"===typeof DataView?void 0:DataView,"%DataViewPrototype%":"undefined"===typeof DataView?void 0:DataView.prototype,"%Date%":Date,"%DatePrototype%":Date.prototype,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%ErrorPrototype%":Error.prototype,"%eval%":eval,"%EvalError%":EvalError,"%EvalErrorPrototype%":EvalError.prototype,"%Float32Array%":"undefined"===typeof Float32Array?void 0:Float32Array,"%Float32ArrayPrototype%":"undefined"===typeof Float32Array?void 0:Float32Array.prototype,"%Float64Array%":"undefined"===typeof Float64Array?void 0:Float64Array,"%Float64ArrayPrototype%":"undefined"===typeof Float64Array?void 0:Float64Array.prototype,"%Function%":Function,"%FunctionPrototype%":Function.prototype,"%Generator%":void 0,"%GeneratorFunction%":void 0,"%GeneratorPrototype%":void 0,"%Int8Array%":"undefined"===typeof Int8Array?void 0:Int8Array,"%Int8ArrayPrototype%":"undefined"===typeof Int8Array?void 0:Int8Array.prototype,"%Int16Array%":"undefined"===typeof Int16Array?void 0:Int16Array,"%Int16ArrayPrototype%":"undefined"===typeof Int16Array?void 0:Int8Array.prototype,"%Int32Array%":"undefined"===typeof Int32Array?void 0:Int32Array,"%Int32ArrayPrototype%":"undefined"===typeof Int32Array?void 0:Int32Array.prototype,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":a?s(s([][Symbol.iterator]())):void 0,"%JSON%":"object"===typeof JSON?JSON:void 0,"%JSONParse%":"object"===typeof JSON?JSON.parse:void 0,"%Map%":"undefined"===typeof Map?void 0:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&a?s((new Map)[Symbol.iterator]()):void 0,"%MapPrototype%":"undefined"===typeof Map?void 0:Map.prototype,"%Math%":Math,"%Number%":Number,"%NumberPrototype%":Number.prototype,"%Object%":Object,"%ObjectPrototype%":Object.prototype,"%ObjProto_toString%":Object.prototype.toString,"%ObjProto_valueOf%":Object.prototype.valueOf,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?void 0:Promise,"%PromisePrototype%":"undefined"===typeof Promise?void 0:Promise.prototype,"%PromiseProto_then%":"undefined"===typeof Promise?void 0:Promise.prototype.then,"%Promise_all%":"undefined"===typeof Promise?void 0:Promise.all,"%Promise_reject%":"undefined"===typeof Promise?void 0:Promise.reject,"%Promise_resolve%":"undefined"===typeof Promise?void 0:Promise.resolve,"%Proxy%":"undefined"===typeof Proxy?void 0:Proxy,"%RangeError%":RangeError,"%RangeErrorPrototype%":RangeError.prototype,"%ReferenceError%":ReferenceError,"%ReferenceErrorPrototype%":ReferenceError.prototype,"%Reflect%":"undefined"===typeof Reflect?void 0:Reflect,"%RegExp%":RegExp,"%RegExpPrototype%":RegExp.prototype,"%Set%":"undefined"===typeof Set?void 0:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&a?s((new Set)[Symbol.iterator]()):void 0,"%SetPrototype%":"undefined"===typeof Set?void 0:Set.prototype,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?void 0:SharedArrayBuffer,"%SharedArrayBufferPrototype%":"undefined"===typeof SharedArrayBuffer?void 0:SharedArrayBuffer.prototype,"%String%":String,"%StringIteratorPrototype%":a?s(""[Symbol.iterator]()):void 0,"%StringPrototype%":String.prototype,"%Symbol%":a?Symbol:void 0,"%SymbolPrototype%":a?Symbol.prototype:void 0,"%SyntaxError%":SyntaxError,"%SyntaxErrorPrototype%":SyntaxError.prototype,"%ThrowTypeError%":o,"%TypedArray%":c,"%TypedArrayPrototype%":c?c.prototype:void 0,"%TypeError%":n,"%TypeErrorPrototype%":n.prototype,"%Uint8Array%":"undefined"===typeof Uint8Array?void 0:Uint8Array,"%Uint8ArrayPrototype%":"undefined"===typeof Uint8Array?void 0:Uint8Array.prototype,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?void 0:Uint8ClampedArray,"%Uint8ClampedArrayPrototype%":"undefined"===typeof Uint8ClampedArray?void 0:Uint8ClampedArray.prototype,"%Uint16Array%":"undefined"===typeof Uint16Array?void 0:Uint16Array,"%Uint16ArrayPrototype%":"undefined"===typeof Uint16Array?void 0:Uint16Array.prototype,"%Uint32Array%":"undefined"===typeof Uint32Array?void 0:Uint32Array,"%Uint32ArrayPrototype%":"undefined"===typeof Uint32Array?void 0:Uint32Array.prototype,"%URIError%":URIError,"%URIErrorPrototype%":URIError.prototype,"%WeakMap%":"undefined"===typeof WeakMap?void 0:WeakMap,"%WeakMapPrototype%":"undefined"===typeof WeakMap?void 0:WeakMap.prototype,"%WeakSet%":"undefined"===typeof WeakSet?void 0:WeakSet,"%WeakSetPrototype%":"undefined"===typeof WeakSet?void 0:WeakSet.prototype},l=A(491).call(Function.call,String.prototype.replace),I=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,C=/\\(\\)?/g,h=function(e){var t=[];return l(e,I,(function(e,A,n,r){t[t.length]=n?l(r,C,"$1"):A||e})),t},f=function(e,t){if(!(e in u))throw new SyntaxError("intrinsic "+e+" does not exist!");if("undefined"===typeof u[e]&&!t)throw new n("intrinsic "+e+" exists, but is not available. Please file an issue!");return u[e]};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new TypeError("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new TypeError('"allowMissing" argument must be a boolean');for(var A=h(e),i=f("%"+(A.length>0?A[0]:"")+"%",t),o=1;o<A.length;o+=1)if(null!=i)if(r&&o+1>=A.length){var a=r(i,A[o]);if(!t&&!(A[o]in i))throw new n("base intrinsic for "+e+" exists, but the property is not available.");i=a?a.get||a.value:i[A[o]]}else i=i[A[o]];return i}},function(e,t,A){"use strict";(function(t){var n=t.Symbol,r=A(1062);e.exports=function(){return"function"===typeof n&&("function"===typeof Symbol&&("symbol"===typeof n("foo")&&("symbol"===typeof Symbol("bar")&&r())))}}).call(this,A(86))},function(e,t,A){"use strict";e.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),A=Object(t);if("string"===typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(A))return!1;for(t in e[t]=42,e)return!1;if("function"===typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var r=Object.getOwnPropertyDescriptor(e,t);if(42!==r.value||!0!==r.enumerable)return!1}return!0}},function(e,t,A){"use strict";var n=A(492).supportsDescriptors,r=A(625),i=Object.getOwnPropertyDescriptor,o=Object.defineProperty,a=TypeError,s=Object.getPrototypeOf,g=/a/;e.exports=function(){if(!n||!s)throw new a("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var e=r(),t=s(g),A=i(t,"flags");return A&&A.get===e||o(t,"flags",{configurable:!0,enumerable:!1,get:e}),e}},function(e,t,A){"use strict";var n=Date.prototype.getDay,r=Object.prototype.toString,i="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;e.exports=function(e){return"object"===typeof e&&null!==e&&(i?function(e){try{return n.call(e),!0}catch(t){return!1}}(e):"[object Date]"===r.call(e))}},function(e,t,A){var n=A(621),r=function(e){this.precision=e&&e.precision?e.precision:17,this.direction=!(!e||!e.direction)&&e.direction,this.pseudoNode=!(!e||!e.pseudoNode)&&e.pseudoNode,this.objectComparator=e&&e.objectComparator?e.objectComparator:a};function i(e){return e.coordinates.map((function(t){return{type:e.type.replace("Multi",""),coordinates:t}}))}function o(e,t){return e.hasOwnProperty("coordinates")?e.coordinates.length===t.coordinates.length:e.length===t.length}function a(e,t){return n(e,t,{strict:!0})}r.prototype.compare=function(e,t){if(e.type!==t.type||!o(e,t))return!1;switch(e.type){case"Point":return this.compareCoord(e.coordinates,t.coordinates);case"LineString":return this.compareLine(e.coordinates,t.coordinates,0,!1);case"Polygon":return this.comparePolygon(e,t);case"Feature":return this.compareFeature(e,t);default:if(0===e.type.indexOf("Multi")){var A=this,n=i(e),r=i(t);return n.every((function(e){return this.some((function(t){return A.compare(e,t)}))}),r)}}return!1},r.prototype.compareCoord=function(e,t){if(e.length!==t.length)return!1;for(var A=0;A<e.length;A++)if(e[A].toFixed(this.precision)!==t[A].toFixed(this.precision))return!1;return!0},r.prototype.compareLine=function(e,t,A,n){if(!o(e,t))return!1;var r=this.pseudoNode?e:this.removePseudo(e),i=this.pseudoNode?t:this.removePseudo(t);if(!n||this.compareCoord(r[0],i[0])||(i=this.fixStartIndex(i,r))){var a=this.compareCoord(r[A],i[A]);return this.direction||a?this.comparePath(r,i):!!this.compareCoord(r[A],i[i.length-(1+A)])&&this.comparePath(r.slice().reverse(),i)}},r.prototype.fixStartIndex=function(e,t){for(var A,n=-1,r=0;r<e.length;r++)if(this.compareCoord(e[r],t[0])){n=r;break}return n>=0&&(A=[].concat(e.slice(n,e.length),e.slice(1,n+1))),A},r.prototype.comparePath=function(e,t){var A=this;return e.every((function(e,t){return A.compareCoord(e,this[t])}),t)},r.prototype.comparePolygon=function(e,t){if(this.compareLine(e.coordinates[0],t.coordinates[0],1,!0)){var A=e.coordinates.slice(1,e.coordinates.length),n=t.coordinates.slice(1,t.coordinates.length),r=this;return A.every((function(e){return this.some((function(t){return r.compareLine(e,t,1,!0)}))}),n)}return!1},r.prototype.compareFeature=function(e,t){return!(e.id!==t.id||!this.objectComparator(e.properties,t.properties)||!this.compareBBox(e,t))&&this.compare(e.geometry,t.geometry)},r.prototype.compareBBox=function(e,t){return!!(!e.bbox&&!t.bbox||e.bbox&&t.bbox&&this.compareCoord(e.bbox,t.bbox))},r.prototype.removePseudo=function(e){return e},e.exports=r},function(e,t,A){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function i(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(){function e(t,A){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n(this,e),i(this,"geoJson",void 0),i(this,"style",void 0),i(this,"original",void 0),i(this,"metadata",void 0),this.geoJson=t,this.style=A,this.original=r,this.metadata=o}var t,A,o;return t=e,(A=[{key:"getCoords",value:function(){return this.geoJson.geometry.coordinates}}])&&r(t.prototype,A),o&&r(t,o),e}();t.default=o},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=A(309),r=a(A(305)),i=A(369),o=a(A(497));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){return(s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t){return!t||"object"!==s(t)&&"function"!==typeof t?u(e):t}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function l(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function I(e){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e,t){return(C=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var h=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&C(e,t)}(h,e);var t,A,r,a,s=(t=h,function(){var e,A=I(t);if(l()){var n=I(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return c(this,e)});function h(e){var t,A,n,r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,h),t=s.call(this,e),A=u(t),r=void 0,(n="deckCache")in A?Object.defineProperty(A,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[n]=r,t.deckCache=new o.default(e.getData,(function(t){return e.toNebulaFeature(t)})),t.enablePicking=!0,t}return A=h,(r=[{key:"render",value:function(e){e.nebula;var t=[0,0,0,255],A=this.deckCache,r=A.objects,o=A.updateTrigger;return new n.JunctionScatterplotLayer({id:"junctions-".concat(this.id),data:r,opacity:1,fp64:!1,pickable:!0,getPosition:function(e){return e.geoJson.geometry.coordinates},getFillColor:function(e){return(0,i.toDeckColor)(e.style.fillColor)||t},getStrokeColor:function(e){return(0,i.toDeckColor)(e.style.outlineColor)||(0,i.toDeckColor)(e.style.fillColor)||t},getRadius:function(e){return e.style.pointRadiusMeters+e.style.outlineRadiusMeters||1},getInnerRadius:function(e){return e.style.pointRadiusMeters||.5},parameters:{depthTest:!1,blend:!1},updateTriggers:{all:o},nebulaLayer:this})}}])&&g(A.prototype,r),a&&g(A,a),h}(r.default);t.default=h},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MAX_ARROWS=t.DEFAULT_ARROWS=t.ArrowStyles=void 0;t.ArrowStyles={NONE:0,FORWARD:1,BACKWARD:2,BOTH:3};t.DEFAULT_ARROWS=1;t.MAX_ARROWS=3},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResizeCircleMode=void 0;var n=u(A(490)),r=A(59),i=u(A(509)),o=u(A(112)),a=u(A(270)),s=A(99),g=A(79),c=A(158);function u(e){return e&&e.__esModule?e:{default:e}}function l(e){return(l="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function I(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return C(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return C(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function d(e,t){return!t||"object"!==l(t)&&"function"!==typeof t?B(e):t}function B(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function E(e){return(E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Q(e,t){return(Q=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var v=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Q(e,t)}(C,e);var t,A,g,u,l=(t=C,function(){var e,A=E(t);if(p()){var n=E(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return d(this,e)});function C(){var e;h(this,C);for(var t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return y(B(e=l.call.apply(l,[this].concat(A))),"_selectedEditHandle",void 0),y(B(e),"_isResizing",!1),e}return A=C,(g=[{key:"getGuides",value:function(e){var t=this,A=[],n=e.selectedIndexes,i=e.lastPointerMoveEvent,o=i&&i.picks,a=i&&i.mapCoords;if(o&&o.length&&a&&1===n.length&&!this._isResizing){var g=o.find((function(e){return!e.isGuide}));if(g&&g.object.properties.shape&&g.object.properties.shape.includes("Circle")&&e.selectedIndexes.includes(g.index)){var c=null,u=[],l=(0,r.point)(a);if((0,s.recursivelyTraverseNestedArrays)(g.object.geometry.coordinates,[],(function(A,n){var i=(0,r.lineString)(A),o=t.getNearestPoint(i,l,e.modeConfig&&e.modeConfig.viewport);(!c||o.properties.dist<c.properties.dist)&&(c=o,u=n)})),c){var C=c,h=C.geometry.coordinates,f=C.properties.index;A.push({type:"Feature",properties:{guideType:"editHandle",editHandleType:"intermediate",featureIndex:g.index,positionIndexes:[].concat(I(u),[f+1])},geometry:{type:"Point",coordinates:h}})}}}return{type:"FeatureCollection",features:A}}},{key:"getNearestPoint",value:function(e,t,A){if(e.geometry.coordinates.some((function(e){return e.length>2}))){if(A)return(0,s.nearestPointOnProjectedLine)(e,t,A);console.log("Editing 3D point but modeConfig.viewport not provided. Falling back to 2D logic.")}return(0,n.default)(e,t)}},{key:"handleDragging",value:function(e,t){var A=(0,s.getPickedEditHandle)(e.pointerDownPicks);if(A){e.cancelPan();var n=A.properties,r=this.getSelectedFeature(t),g=(0,a.default)(r).geometry.coordinates,u=Object.entries(r.geometry.coordinates[0]).length-1,l=Math.max((0,o.default)(g,e.mapCoords),.001),I={}.steps,C={steps:void 0===I?u:I},h=(0,i.default)(g,l,C).geometry,f=new c.ImmutableFeatureCollection(t.data).replaceGeometry(n.featureIndex,h).getObject();t.onEdit({updatedData:f,editType:"unionGeometry",editContext:{featureIndexes:[n.featureIndex]}})}}},{key:"handlePointerMove",value:function(e,t){if(!this._isResizing){var A=(0,s.getPickedEditHandle)(e.picks);this._selectedEditHandle=A&&"intermediate"===A.properties.editHandleType?A:null}var n=this.getCursor(e);t.onUpdateCursor(n)}},{key:"handleStartDragging",value:function(e,t){this._selectedEditHandle&&(this._isResizing=!0)}},{key:"handleStopDragging",value:function(e,t){this._isResizing&&(this._selectedEditHandle=null,this._isResizing=!1)}},{key:"getCursor",value:function(e){var t=e&&e.picks||[];return(0,s.getPickedEditHandles)(t).length?"cell":null}}])&&f(A.prototype,g),u&&f(A,u),C}(g.GeoJsonEditMode);t.ResizeCircleMode=v},function(e,t,A){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function o(e,t,A){return(o="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=g(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function a(e,t){return!t||"object"!==n(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.DuplicateMode=void 0;var u=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(I,e);var t,A,n,u,l=(t=I,function(){var e,A=g(t);if(s()){var n=g(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return a(this,e)});function I(){return r(this,I),l.apply(this,arguments)}return A=I,(n=[{key:"handleStartDragging",value:function(e,t){o(g(I.prototype),"handleStartDragging",this).call(this,e,t),this._geometryBeforeTranslate&&t.onEdit(this.getAddManyFeaturesAction(this._geometryBeforeTranslate,t.data))}},{key:"updateCursor",value:function(e){this._isTranslatable?e.onUpdateCursor("copy"):e.onUpdateCursor(null)}}])&&i(A.prototype,n),u&&i(A,u),I}(A(495).TranslateMode);t.DuplicateMode=u},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendLineStringMode=void 0;var n=A(79),r=A(158);function i(e){return(i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function s(e,t){return!t||"object"!==i(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function g(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var l=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&u(e,t)}(I,e);var t,A,n,i,l=(t=I,function(){var e,A=c(t);if(g()){var n=c(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return s(this,e)});function I(){return o(this,I),l.apply(this,arguments)}return A=I,(n=[{key:"getSingleSelectedLineString",value:function(e){var t=this.getSelectedGeometry(e);return t&&"LineString"===t.type?t:null}},{key:"handleClick",value:function(e,t){var A=t.selectedIndexes,n=this.getSingleSelectedLineString(t);if(n){var i=[n.coordinates.length],o=t.modeConfig;o&&o.drawAtFront&&(i=[0]);var a=A[0],s=new r.ImmutableFeatureCollection(t.data).addPosition(a,i,e.mapCoords).getObject();t.onEdit({updatedData:s,editType:"addPosition",editContext:{featureIndexes:[a],positionIndexes:i,position:e.mapCoords}})}else console.warn("ExtendLineStringMode only supported for single LineString selection")}},{key:"getGuides",value:function(e){var t={type:"FeatureCollection",features:[]},A=this.getSingleSelectedLineString(e);if(!A)return t;var n=e.lastPointerMoveEvent&&e.lastPointerMoveEvent.mapCoords,r=null,i=e.modeConfig;return r=i&&i.drawAtFront?A.coordinates[0]:A.coordinates[A.coordinates.length-1],t.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[r,n]}}),t}},{key:"handlePointerMove",value:function(e,t){t.onUpdateCursor("cell")}}])&&a(A.prototype,n),i&&a(A,i),I}(n.GeoJsonEditMode);t.ExtendLineStringMode=l},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SplitPolygonMode=void 0;var n=f(A(308)),r=f(A(376)),i=f(A(507)),o=f(A(365)),a=A(59),s=f(A(143)),g=f(A(112)),c=f(A(304)),u=f(A(510)),l=f(A(490)),I=A(99),C=A(79),h=A(158);function f(e){return e&&e.__esModule?e:{default:e}}function d(e){return(d="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function B(e){return function(e){if(Array.isArray(e))return Q(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||E(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||E(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){if(e){if("string"===typeof e)return Q(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?Q(e,t):void 0}}function Q(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function y(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function m(e,t){return!t||"object"!==d(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function b(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function S(e,t){return(S=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var F=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&S(e,t)}(E,e);var t,A,C,f,d=(t=E,function(){var e,A=w(t);if(b()){var n=w(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return m(this,e)});function E(){return y(this,E),d.apply(this,arguments)}return A=E,(C=[{key:"calculateMapCoords",value:function(e,t,A){var n=A.modeConfig;if(!n||!n.lock90Degree||!e.length)return t;if(1===e.length){var r=e[0],i=this.getSelectedGeometry(A),o=(0,u.default)(i),C="FeatureCollection"===o.type?o.features:[o],h=Number.MAX_SAFE_INTEGER,f=null;if(C.forEach((function(e){var t=(0,l.default)(e,r),A=(0,g.default)(t,r);h>A&&(h=A,f=t)})),f){var d=(0,s.default)(r,f),B=(0,g.default)(r,t,{units:"meters"});return(0,c.default)(r,B,d,{units:"meters"}).geometry.coordinates}return t}var E=e[e.length-1],Q=p((0,I.generatePointsParallelToLinePoints)(e[e.length-2],E,t),1)[0];return(0,l.default)((0,a.lineString)([E,Q]),t).geometry.coordinates}},{key:"getGuides",value:function(e){var t=this.getClickSequence(),A={type:"FeatureCollection",features:[]};if(0===t.length||!e.lastPointerMoveEvent)return A;var n=e.lastPointerMoveEvent.mapCoords;return A.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[].concat(B(t),[this.calculateMapCoords(t,n,e)])}}),A}},{key:"handleClick",value:function(e,t){var A=this.getTentativeGuide(t),r=this.getSelectedGeometry(t);if(r){var i=this.getClickSequence();A&&"LineString"===A.geometry.type?i.push(A.geometry.coordinates[A.geometry.coordinates.length-1]):this.addClickSequence(e);var a={type:"Point",coordinates:i[i.length-1]},s=(0,n.default)(a,r);if(i.length>1&&A&&!s){if(this.resetClickSequence(),0===(0,o.default)(A,r).features.length)return;var g=this.splitPolygon(A,t);g&&t.onEdit(g)}}else console.warn("A polygon must be selected for splitting")}},{key:"handlePointerMove",value:function(e,t){t.onUpdateCursor("cell")}},{key:"splitPolygon",value:function(e,t){var A=this.getSelectedGeometry(t),n=t.selectedIndexes[0],o=t.modeConfig||{},a=o.gap,s=void 0===a?.1:a,g=o.units,c=void 0===g?"centimeters":g;0===s&&(s=.1,c="centimeters");var u=(0,i.default)(e,s,{units:c}),l=(0,r.default)(A,u);if(!l)return console.warn("Canceling edit. Split Polygon erased"),null;var I=l.geometry,C=I.type,f=I.coordinates,d=[];return d="Polygon"===C?f.map((function(e){return[e]})):f.reduce((function(e,t){return t.forEach((function(t){e.push([t])})),e}),[]),{updatedData:new h.ImmutableFeatureCollection(t.data).replaceGeometry(n,{type:"MultiPolygon",coordinates:d}).getObject(),editType:"split",editContext:{featureIndexes:[n]}}}}])&&v(A.prototype,C),f&&v(A,f),E}(C.GeoJsonEditMode);t.SplitPolygonMode=F},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExtrudeMode=void 0;var n,r=(n=A(143))&&n.__esModule?n:{default:n},i=A(99),o=A(494),a=A(158);function s(e){return(s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){if(e){if("string"===typeof e)return l(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?l(e,t):void 0}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function I(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function C(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function h(e,t){return!t||"object"!==s(t)&&"function"!==typeof t?f(e):t}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function B(e){return(B=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function E(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var Q=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(u,e);var t,A,n,o,s=(t=u,function(){var e,A=B(t);if(d()){var n=B(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return h(this,e)});function u(){var e;I(this,u);for(var t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return E(f(e=s.call.apply(s,[this].concat(A))),"isPointAdded",!1),e}return A=u,(n=[{key:"handleDragging",value:function(e,t){var A=(0,i.getPickedEditHandle)(e.pointerDownPicks);if(A){var n=A.properties.featureIndex,r=A.properties.positionIndexes,o=this.coordinatesSize(r,n,t.data);r=this.isPointAdded?this.nextPositionIndexes(r,o):r;var s=this.getPointForPositionIndexes(this.prevPositionIndexes(r,o),n,t.data),g=this.getPointForPositionIndexes(r,n,t.data);if(s&&g){var u=c((0,i.generatePointsParallelToLinePoints)(s,g,e.mapCoords),2),l=u[0],I=u[1],C=new a.ImmutableFeatureCollection(t.data).replacePosition(n,this.prevPositionIndexes(r,o),I).replacePosition(n,r,l).getObject();t.onEdit({updatedData:C,editType:"extruding",editContext:{featureIndexes:[n],positionIndexes:this.nextPositionIndexes(r,o),position:l}}),e.cancelPan()}}}},{key:"handleStartDragging",value:function(e,t){var A=t.selectedIndexes,n=(0,i.getPickedIntermediateEditHandle)(e.picks);if(A.length&&n){var r=n.properties,o=r.positionIndexes,s=r.featureIndex,g=this.coordinatesSize(o,s,t.data),c=this.getPointForPositionIndexes(this.prevPositionIndexes(o,g),s,t.data),u=this.getPointForPositionIndexes(o,s,t.data);if(c&&u){var l=new a.ImmutableFeatureCollection(t.data);this.isOrthogonal(o,s,g,t.data)||(l=l.addPosition(s,o,u)),this.isOrthogonal(this.prevPositionIndexes(o,g),s,g,t.data)||(l=l.addPosition(s,o,c),this.isPointAdded=!0),t.onEdit({updatedData:l.getObject(),editType:"startExtruding",editContext:{featureIndexes:[s],positionIndexes:o,position:c}})}}}},{key:"handleStopDragging",value:function(e,t){var A=t.selectedIndexes,n=(0,i.getPickedEditHandle)(e.pointerDownPicks);if(A.length&&n){var r=n.properties.featureIndex,o=n.properties.positionIndexes,s=this.coordinatesSize(o,r,t.data);o=this.isPointAdded?this.nextPositionIndexes(o,s):o;var g=this.getPointForPositionIndexes(this.prevPositionIndexes(o,s),r,t.data),u=this.getPointForPositionIndexes(o,r,t.data);if(g&&u){var l=c((0,i.generatePointsParallelToLinePoints)(g,u,e.mapCoords),2),I=l[0],C=l[1],h=new a.ImmutableFeatureCollection(t.data).replacePosition(r,this.prevPositionIndexes(o,s),C).replacePosition(r,o,I).getObject();t.onEdit({updatedData:h,editType:"extruded",editContext:{featureIndexes:[r],positionIndexes:o,position:I}})}}this.isPointAdded=!1}},{key:"coordinatesSize",value:function(e,t,A){var n=A.features,r=0;if(Array.isArray(e)){var i=n[t].geometry.coordinates;if(3===e.length){var o=c(e,2),a=o[0],s=o[1];i.length&&i[a].length&&(r=i[a][s].length)}else{var g=c(e,1)[0];i.length&&i[g].length&&(r=i[g].length)}}return r}},{key:"getBearing",value:function(e,t){var A=(0,r.default)(e,t);return A<0?Math.floor(360+A):Math.floor(A)}},{key:"isOrthogonal",value:function(e,t,A,n){if(!Array.isArray(e))return!1;e[e.length-1]===A-1&&(e[e.length-1]=0);var r=this.getPointForPositionIndexes(this.prevPositionIndexes(e,A),t,n),i=this.getPointForPositionIndexes(this.nextPositionIndexes(e,A),t,n),o=this.getPointForPositionIndexes(e,t,n),a=this.getBearing(o,r),s=this.getBearing(o,i);return[89,90,91,269,270,271].includes(Math.abs(a-s))}},{key:"nextPositionIndexes",value:function(e,t){if(!Array.isArray(e))return[];var A=g(e);return A.length&&(A[A.length-1]=A[A.length-1]===t-1?0:A[A.length-1]+1),A}},{key:"prevPositionIndexes",value:function(e,t){if(!Array.isArray(e))return[];var A=g(e);return A.length&&(A[A.length-1]=0===A[A.length-1]?t-2:A[A.length-1]-1),A}},{key:"getPointForPositionIndexes",value:function(e,t,A){var n,r=A.features;if(Array.isArray(e)){var i=r[t].geometry.coordinates;if(3===e.length){var o=c(e,3),a=o[0],s=o[1],g=o[2];i.length&&i[a].length&&(n=i[a][s][g])}else{var u=c(e,2),l=u[0],I=u[1];i.length&&i[l].length&&(n=i[l][I])}}return n}}])&&C(A.prototype,n),o&&C(A,o),u}(o.ModifyMode);t.ExtrudeMode=Q},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ElevationMode=void 0;var n=A(99);function r(e){return(r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function a(e,t,A){return(a="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=c(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function s(e,t){return!t||"object"!==r(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function g(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function l(e){var t=e.pointerDownScreenCoords,A=e.screenCoords;return 10*(t[1]-A[1])}var I=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&u(e,t)}(h,e);var t,A,r,I,C=(t=h,function(){var e,A=c(t);if(g()){var n=c(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return s(this,e)});function h(){return i(this,h),C.apply(this,arguments)}return A=h,I=[{key:"calculateElevationChangeWithViewport",value:function(e,t){var A=t.pointerDownScreenCoords,n=t.screenCoords;return 156543.03392*Math.cos(e.latitude*Math.PI/180)/Math.pow(2,e.zoom)*(A[1]-n[1])/2}}],(r=[{key:"makeElevatedEvent",value:function(e,t,A){var n=A.modeConfig||{},r=n.minElevation,i=void 0===r?0:r,o=n.maxElevation,a=void 0===o?2e4:o,s=n.calculateElevationChange,g=void 0===s?l:s;if(!e.pointerDownScreenCoords)return e;var c=3===t.length?t[2]:0;return c+=g({pointerDownScreenCoords:e.pointerDownScreenCoords,screenCoords:e.screenCoords}),c=Math.min(c,a),c=Math.max(c,i),Object.assign({},e,{mapCoords:[t[0],t[1],c]})}},{key:"handlePointerMove",value:function(e,t){var A=(0,n.getPickedEditHandle)(e.pointerDownPicks),r=A?A.geometry.coordinates:e.mapCoords;a(c(h.prototype),"handlePointerMove",this).call(this,this.makeElevatedEvent(e,r,t),t)}},{key:"handleStopDragging",value:function(e,t){var A=(0,n.getPickedEditHandle)(e.picks),r=A?A.geometry.coordinates:e.mapCoords;a(c(h.prototype),"handleStopDragging",this).call(this,this.makeElevatedEvent(e,r,t),t)}},{key:"getCursor",value:function(e){var t=a(c(h.prototype),"getCursor",this).call(this,e);return"cell"===t&&(t="ns-resize"),t}}])&&o(A.prototype,r),I&&o(A,I),h}(A(494).ModifyMode);t.ElevationMode=I},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TransformMode=void 0;var n=A(59),r=A(495),i=A(631),o=A(632);function a(e){return(a="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function g(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}function c(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function u(e,t,A){return(u="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=C(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function l(e,t){return!t||"object"!==a(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function I(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var f=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(B,e);var t,A,a,f,d=(t=B,function(){var e,A=C(t);if(I()){var n=C(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return l(this,e)});function B(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,B),d.call(this,[new r.TranslateMode,new i.ScaleMode,new o.RotateMode])}return A=B,(a=[{key:"handlePointerMove",value:function(e,t){var A=null;u(C(B.prototype),"handlePointerMove",this).call(this,e,function(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?s(Object(A),!0).forEach((function(t){g(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):s(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}({},t,{onUpdateCursor:function(e){A=e||A}})),t.onUpdateCursor(A)}},{key:"handleStartDragging",value:function(e,t){var A=null,n=null,o=[];this._modes.forEach((function(e){e instanceof r.TranslateMode?n=e:(e instanceof i.ScaleMode&&(A=e),o.push(e))})),A instanceof i.ScaleMode&&!A.isEditHandleSelected()&&o.push(n),o.filter(Boolean).forEach((function(A){return A.handleStartDragging(e,t)}))}},{key:"getGuides",value:function(e){var t=u(C(B.prototype),"getGuides",this).call(this,e),A=(this._modes||[]).find((function(e){return e instanceof o.RotateMode}));if(A instanceof o.RotateMode){var r=t.features.filter((function(e){var t=e.properties||{},n=t.editHandleType,r=[t.mode];return A.getIsRotating()&&r.push(n),!r.includes("scale")}));t=(0,n.featureCollection)(r)}return t}}])&&c(A.prototype,a),f&&c(A,f),B}(A(633).CompositeMode);t.TransformMode=f},function(e,t,A){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function o(e,t,A){return(o="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=g(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function a(e,t){return!t||"object"!==n(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.DrawPointMode=void 0;var u=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(I,e);var t,A,n,u,l=(t=I,function(){var e,A=g(t);if(s()){var n=g(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return a(this,e)});function I(){return r(this,I),l.apply(this,arguments)}return A=I,(n=[{key:"createTentativeFeature",value:function(e){var t=e.lastPointerMoveEvent;return{type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Point",coordinates:(t?[t.mapCoords]:[])[0]}}}},{key:"handleClick",value:function(e,t){var A={type:"Point",coordinates:e.mapCoords};t.onEdit(this.getAddFeatureAction(A,t.data))}},{key:"handlePointerMove",value:function(e,t){t.onUpdateCursor("cell"),o(g(I.prototype),"handlePointerMove",this).call(this,e,t)}}])&&i(A.prototype,n),u&&i(A,u),I}(A(79).GeoJsonEditMode);t.DrawPointMode=u},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DrawLineStringMode=void 0;var n=A(99);function r(e){return(r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return o(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return o(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function g(e,t){return!t||"object"!==r(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function c(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var I=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(C,e);var t,A,r,o,I=(t=C,function(){var e,A=u(t);if(c()){var n=u(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return g(this,e)});function C(){return a(this,C),I.apply(this,arguments)}return A=C,(r=[{key:"handleClick",value:function(e,t){var A=e.picks,r=(0,n.getPickedEditHandle)(A),o=!1;r||(this.addClickSequence(e),o=!0);var a=this.getClickSequence();if(a.length>1&&r&&Array.isArray(r.properties.positionIndexes)&&r.properties.positionIndexes[0]===a.length-1){var s={type:"LineString",coordinates:i(a)};this.resetClickSequence();var g=this.getAddFeatureAction(s,t.data);g&&t.onEdit(g)}else o&&t.onEdit({updatedData:t.data,editType:"addTentativePosition",editContext:{position:e.mapCoords}})}},{key:"handleKeyUp",value:function(e,t){if("Enter"===e.key){var A=this.getClickSequence();if(A.length>1){var n={type:"LineString",coordinates:i(A)};this.resetClickSequence();var r=this.getAddFeatureAction(n,t.data);r&&t.onEdit(r)}}}},{key:"getGuides",value:function(e){var t,A,n=e.lastPointerMoveEvent,r=this.getClickSequence(),o=n?[n.mapCoords]:[],a={type:"FeatureCollection",features:[]};r.length>0&&(A={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[].concat(i(r),o)}}),A&&a.features.push(A);var s=r.map((function(e,t){return{type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[t]},geometry:{type:"Point",coordinates:e}}}));return(t=a.features).push.apply(t,i(s)),a}},{key:"handlePointerMove",value:function(e,t){t.onUpdateCursor("cell")}}])&&s(A.prototype,r),o&&s(A,o),C}(A(79).GeoJsonEditMode);t.DrawLineStringMode=I},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DrawRectangleMode=void 0;var n,r=(n=A(262))&&n.__esModule?n:{default:n};function i(e){return(i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function s(e,t){return!t||"object"!==i(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function g(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var l=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&u(e,t)}(I,e);var t,A,n,i,l=(t=I,function(){var e,A=c(t);if(g()){var n=c(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return s(this,e)});function I(){return o(this,I),l.apply(this,arguments)}return A=I,(n=[{key:"getTwoClickPolygon",value:function(e,t,A){var n=(0,r.default)([e[0],e[1],t[0],t[1]]);return n.properties=n.properties||{},n.properties.shape="Rectangle",n}}])&&a(A.prototype,n),i&&a(A,i),I}(A(306).TwoClickPolygonMode);t.DrawRectangleMode=l},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DrawSquareFromCenterMode=void 0;var n=a(A(262)),r=a(A(112)),i=a(A(1152)),o=A(59);function a(e){return e&&e.__esModule?e:{default:e}}function s(e){return(s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function u(e,t){return!t||"object"!==s(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function l(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function I(e){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e,t){return(C=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var h=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&C(e,t)}(f,e);var t,A,a,s,h=(t=f,function(){var e,A=I(t);if(l()){var n=I(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return u(this,e)});function f(){return g(this,f),h.apply(this,arguments)}return A=f,(a=[{key:"getTwoClickPolygon",value:function(e,t,A){var a=[t[0],e[1]],s=[e[0],t[1]],g=(0,r.default)((0,o.point)(a),(0,o.point)(e)),c=(0,r.default)((0,o.point)(s),(0,o.point)(e)),u=g<=c?g:c,l=g<=c?a:s,I=(0,o.lineString)([l,t]),C=(0,i.default)(I,u).geometry.coordinates,h=e[0]>C[0]?e[0]+Math.abs(e[0]-C[0]):e[0]-Math.abs(e[0]-C[0]),f=e[1]>C[1]?e[1]+Math.abs(e[1]-C[1]):e[1]-Math.abs(e[1]-C[1]),d=(0,n.default)([h,f,C[0],C[1]]);return d.properties=d.properties||{},d.properties.shape="Square",d}}])&&c(A.prototype,a),s&&c(A,s),f}(A(306).TwoClickPolygonMode);t.DrawSquareFromCenterMode=h},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DrawCircleByDiameterMode=void 0;var n=o(A(509)),r=o(A(112)),i=A(79);function o(e){return e&&e.__esModule?e:{default:e}}function a(e){return(a="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t){return!t||"object"!==a(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function u(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function I(e,t){return(I=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var C=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&I(e,t)}(h,e);var t,A,o,a,C=(t=h,function(){var e,A=l(t);if(u()){var n=l(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return c(this,e)});function h(){return s(this,h),C.apply(this,arguments)}return A=h,(o=[{key:"getTwoClickPolygon",value:function(e,t,A){var o=(A||{}).steps,a=void 0===o?64:o,s={steps:a};a<4&&(console.warn("Minimum steps to draw a circle is 4 "),s.steps=4);var g=(0,i.getIntermediatePosition)(e,t),c=Math.max((0,r.default)(e,g),.001),u=(0,n.default)(g,c,s);return u.properties=u.properties||{},u.properties.shape="Circle",u}}])&&g(A.prototype,o),a&&g(A,a),h}(A(306).TwoClickPolygonMode);t.DrawCircleByDiameterMode=C},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DrawCircleFromCenterMode=void 0;var n=i(A(509)),r=i(A(112));function i(e){return e&&e.__esModule?e:{default:e}}function o(e){return(o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function g(e,t){return!t||"object"!==o(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function c(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var I=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(C,e);var t,A,i,o,I=(t=C,function(){var e,A=u(t);if(c()){var n=u(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return g(this,e)});function C(){return a(this,C),I.apply(this,arguments)}return A=C,(i=[{key:"getTwoClickPolygon",value:function(e,t,A){var i=(A||{}).steps,o=void 0===i?64:i,a={steps:o};o<4&&(console.warn("Minimum steps to draw a circle is 4 "),a.steps=4);var s=Math.max((0,r.default)(e,t),.001),g=(0,n.default)(e,s,a);return g.properties=g.properties||{},g.properties.shape="Circle",g}}])&&s(A.prototype,i),o&&s(A,o),C}(A(306).TwoClickPolygonMode);t.DrawCircleFromCenterMode=I},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DrawEllipseByBoundingBoxMode=void 0;var n=s(A(262)),r=s(A(112)),i=s(A(653)),o=A(59),a=A(79);function s(e){return e&&e.__esModule?e:{default:e}}function g(e){return(g="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t){return!t||"object"!==g(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function I(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var f=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(d,e);var t,A,s,g,f=(t=d,function(){var e,A=C(t);if(I()){var n=C(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return l(this,e)});function d(){return c(this,d),f.apply(this,arguments)}return A=d,(s=[{key:"getTwoClickPolygon",value:function(e,t,A){var s=Math.min(e[0],t[0]),g=Math.min(e[1],t[1]),c=Math.max(e[0],t[0]),u=Math.max(e[1],t[1]),l=(0,n.default)([s,g,c,u]).geometry.coordinates[0],I=(0,a.getIntermediatePosition)(e,t),C=Math.max((0,r.default)((0,o.point)(l[0]),(0,o.point)(l[1])),.001),h=Math.max((0,r.default)((0,o.point)(l[0]),(0,o.point)(l[3])),.001);return(0,i.default)(I,C,h)}}])&&u(A.prototype,s),g&&u(A,g),d}(A(306).TwoClickPolygonMode);t.DrawEllipseByBoundingBoxMode=f},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DrawEllipseUsingThreePointsMode=void 0;var n=s(A(112)),r=s(A(653)),i=s(A(143)),o=A(59),a=A(79);function s(e){return e&&e.__esModule?e:{default:e}}function g(e){return(g="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t){return!t||"object"!==g(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function I(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var f=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(d,e);var t,A,s,g,f=(t=d,function(){var e,A=C(t);if(I()){var n=C(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return l(this,e)});function d(){return c(this,d),f.apply(this,arguments)}return A=d,(s=[{key:"getThreeClickPolygon",value:function(e,t,A,s){var g=(0,a.getIntermediatePosition)(e,t),c=Math.max((0,n.default)(g,(0,o.point)(A)),.001),u=Math.max((0,n.default)(e,t),.001)/2,l={angle:(0,i.default)(e,t)};return(0,r.default)(g,c,u,l)}}])&&u(A.prototype,s),g&&u(A,g),d}(A(634).ThreeClickPolygonMode);t.DrawEllipseUsingThreePointsMode=f},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DrawRectangleUsingThreePointsMode=void 0;var n=A(99);function r(e){return(r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return o(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return o(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function g(e,t){return!t||"object"!==r(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function c(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var I=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(C,e);var t,A,r,o,I=(t=C,function(){var e,A=u(t);if(c()){var n=u(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return g(this,e)});function C(){return a(this,C),I.apply(this,arguments)}return A=C,(r=[{key:"getThreeClickPolygon",value:function(e,t,A,r){var o=i((0,n.generatePointsParallelToLinePoints)(e,t,A),2);return{type:"Feature",properties:{shape:"Rectangle"},geometry:{type:"Polygon",coordinates:[[e,t,o[0],o[1],e]]}}}}])&&s(A.prototype,r),o&&s(A,o),C}(A(634).ThreeClickPolygonMode);t.DrawRectangleUsingThreePointsMode=I},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Draw90DegreePolygonMode=void 0;var n=g(A(304)),r=g(A(143)),i=g(A(365)),o=g(A(112)),a=A(59),s=A(99);function g(e){return e&&e.__esModule?e:{default:e}}function c(e){return(c="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||I(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||I(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){if(e){if("string"===typeof e)return C(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?C(e,t):void 0}}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function d(e,t,A){return(d="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=E(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function B(e,t){return!t||"object"!==c(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function p(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function E(e){return(E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Q(e,t){return(Q=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var y=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Q(e,t)}(C,e);var t,A,g,c,I=(t=C,function(){var e,A=E(t);if(p()){var n=E(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return B(this,e)});function C(){return h(this,C),I.apply(this,arguments)}return A=C,(g=[{key:"createTentativeFeature",value:function(e){var t,A=this.getClickSequence(),n=e.lastPointerMoveEvent.mapCoords;if(1===A.length)t=n;else{var r=A[A.length-2],i=A[A.length-1];t=l((0,s.generatePointsParallelToLinePoints)(r,i,n),1)[0]}return A.length<3?{type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[].concat(u(A),[t])}}:{type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Polygon",coordinates:[[].concat(u(A),[t,A[0]])]}}}},{key:"getGuides",value:function(e){var t={type:"FeatureCollection",features:[]};if(0===this.getClickSequence().length||!e.lastPointerMoveEvent)return t;var A=this.createTentativeFeature(e);return t.features.push(A),t.features=t.features.concat((0,s.getEditHandlesForGeometry)(A.geometry,-1)),t.features=t.features.slice(0,-1),t}},{key:"handlePointerMove",value:function(e,t){t.onUpdateCursor("cell"),d(E(C.prototype),"handlePointerMove",this).call(this,e,t)}},{key:"handleClick",value:function(e,t){var A=e.picks,n=this.getTentativeGuide(t);this.addClickSequence(e);var r=this.getClickSequence();if(n){if(3===r.length&&"LineString"===n.geometry.type){var i=n.geometry;r[r.length-1]=i.coordinates[i.coordinates.length-1]}else if(r.length>3&&"Polygon"===n.geometry.type){var o=n.geometry;r[r.length-1]=o.coordinates[0][o.coordinates[0].length-2];var a=(0,s.getPickedEditHandle)(A);if(a&&Array.isArray(a.properties.positionIndexes)&&(0===a.properties.positionIndexes[1]||a.properties.positionIndexes[1]===o.coordinates[0].length-3)){var g={type:"Polygon",coordinates:this.finalizedCoordinates(u(o.coordinates[0]))};this.resetClickSequence();var c=this.getAddFeatureOrBooleanPolygonAction(g,t);c&&t.onEdit(c)}}var l={screenCoords:[-1,-1],mapCoords:e.mapCoords,picks:[],pointerDownPicks:null,pointerDownScreenCoords:null,pointerDownMapCoords:null,cancelPan:function(){},sourceEvent:null};this.handlePointerMove(l,t)}}},{key:"finalizedCoordinates",value:function(e){var t=[[].concat(u(e.slice(0,-2)),[e[0]])],A=this.getIntermediatePoint(u(e));if(A)t=[[].concat(u(e.slice(0,-2)),[A,e[0]])];else{var n=u(e);n.splice(-3,1),(A=this.getIntermediatePoint(u(n)))&&(t=[[].concat(u(e.slice(0,-3)),[A,e[0]])])}return t}},{key:"getIntermediatePoint",value:function(e){var t;if(e.length>4){var A=u(e),s=A[0],g=A[1],c=(0,r.default)(s,g),l=e[e.length-3],I=e[e.length-4],C=(0,r.default)(l,I),h={first:[],second:[]};[1,2,3].forEach((function(e){var t=c+90*e;h.first.push(t>180?t-360:t);var A=C+90*e;h.second.push(A>180?A-360:A)}));var f=(0,o.default)((0,a.point)(s),(0,a.point)(l));[0,1,2].forEach((function(e){var A=(0,a.lineString)([s,(0,n.default)(s,f,h.first[e]).geometry.coordinates]);[0,1,2].forEach((function(e){var r=(0,a.lineString)([l,(0,n.default)(l,f,h.second[e]).geometry.coordinates]),o=(0,i.default)(A,r);o&&o.features.length&&(t=o.features[0].geometry.coordinates)}))}))}return t}}])&&f(A.prototype,g),c&&f(A,c),C}(A(79).GeoJsonEditMode);t.Draw90DegreePolygonMode=y},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DrawPolygonByDraggingMode=void 0;var n,r=(n=A(1087))&&n.__esModule?n:{default:n},i=A(99);function o(e){return(o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return s(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return s(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function u(e,t){return!t||"object"!==o(t)&&"function"!==typeof t?l(e):t}function l(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function I(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var d=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(d,e);var t,A,n,o,s=(t=d,function(){var e,A=C(t);if(I()){var n=C(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return u(this,e)});function d(){var e;g(this,d);for(var t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return f(l(e=s.call.apply(s,[this].concat(A))),"handleDraggingThrottled",null),e}return A=d,(n=[{key:"handleClick",value:function(e,t){}},{key:"handleStartDragging",value:function(e,t){e.cancelPan(),t.modeConfig&&t.modeConfig.throttleMs?this.handleDraggingThrottled=(0,r.default)(this.handleDraggingAux,t.modeConfig.throttleMs):this.handleDraggingThrottled=this.handleDraggingAux}},{key:"handleStopDragging",value:function(e,t){this.addClickSequence(e);var A=this.getClickSequence();if(this.handleDraggingThrottled&&this.handleDraggingThrottled.cancel&&this.handleDraggingThrottled.cancel(),A.length>2){var n={type:"Polygon",coordinates:[[].concat(a(A),[A[0]])]};this.resetClickSequence();var r=this.getAddFeatureOrBooleanPolygonAction(n,t);r&&t.onEdit(r)}}},{key:"handleDraggingAux",value:function(e,t){var A=e.picks;(0,i.getPickedEditHandle)(A)||this.addClickSequence(e)}},{key:"handleDragging",value:function(e,t){this.handleDraggingThrottled&&this.handleDraggingThrottled(e,t)}}])&&c(A.prototype,n),o&&c(A,o),d}(A(496).DrawPolygonMode);t.DrawPolygonByDraggingMode=d},function(e,t,A){(function(t){var A=/^\s+|\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,i=/^0o[0-7]+$/i,o=parseInt,a="object"==typeof t&&t&&t.Object===Object&&t,s="object"==typeof self&&self&&self.Object===Object&&self,g=a||s||Function("return this")(),c=Object.prototype.toString,u=Math.max,l=Math.min,I=function(){return g.Date.now()};function C(e,t,A){var n,r,i,o,a,s,g=0,c=!1,C=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function B(t){var A=n,i=r;return n=r=void 0,g=t,o=e.apply(i,A)}function p(e){return g=e,a=setTimeout(Q,t),c?B(e):o}function E(e){var A=e-s;return void 0===s||A>=t||A<0||C&&e-g>=i}function Q(){var e=I();if(E(e))return y(e);a=setTimeout(Q,function(e){var A=t-(e-s);return C?l(A,i-(e-g)):A}(e))}function y(e){return a=void 0,d&&n?B(e):(n=r=void 0,o)}function v(){var e=I(),A=E(e);if(n=arguments,r=this,s=e,A){if(void 0===a)return p(s);if(C)return a=setTimeout(Q,t),B(s)}return void 0===a&&(a=setTimeout(Q,t)),o}return t=f(t)||0,h(A)&&(c=!!A.leading,i=(C="maxWait"in A)?u(f(A.maxWait)||0,t):i,d="trailing"in A?!!A.trailing:d),v.cancel=function(){void 0!==a&&clearTimeout(a),g=0,n=s=r=a=void 0},v.flush=function(){return void 0===a?o:y(I())},v}function h(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function f(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==c.call(e)}(e))return NaN;if(h(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=h(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(A,"");var a=r.test(e);return a||i.test(e)?o(e.slice(2),a?2:8):n.test(e)?NaN:+e}e.exports=function(e,t,A){var n=!0,r=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return h(A)&&(n="leading"in A?!!A.leading:n,r="trailing"in A?!!A.trailing:r),C(e,t,{leading:n,maxWait:t,trailing:r})}}).call(this,A(86))},function(e,t,A){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){return!t||"object"!==n(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.ViewMode=void 0;var g=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(n,e);var t,A=(t=n,function(){var e,A=a(t);if(o()){var n=a(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return i(this,e)});function n(){return r(this,n),A.apply(this,arguments)}return n}(A(79).GeoJsonEditMode);t.ViewMode=g},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MeasureDistanceMode=void 0;var n,r=(n=A(112))&&n.__esModule?n:{default:n},i=A(99);function o(e){return(o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return s(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return s(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function u(e,t){return!t||"object"!==o(t)&&"function"!==typeof t?l(e):t}function l(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function I(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var d=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(d,e);var t,A,n,o,s=(t=d,function(){var e,A=C(t);if(I()){var n=C(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return u(this,e)});function d(){var e;g(this,d);for(var t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];return f(l(e=s.call.apply(s,[this].concat(A))),"_isMeasuringSessionFinished",!1),f(l(e),"_currentTooltips",[]),f(l(e),"_currentDistance",0),f(l(e),"_calculateDistanceForTooltip",(function(e){var t=e.positionA,A=e.positionB,n=e.modeConfig||{},i=n.turfOptions,o=n.measurementCallback,a=(0,r.default)(t,A,i);return o&&o(a),a})),e}return A=d,(n=[{key:"_formatTooltip",value:function(e,t){var A=t||{},n=A.formatTooltip,r=A.turfOptions,i=r&&r.units||"kilometers";return n?n(e):"".concat(parseFloat(e).toFixed(2)," ").concat(i)}},{key:"handleClick",value:function(e,t){var A=t.modeConfig,n=t.data,r=t.onEdit;this._isMeasuringSessionFinished&&(this._isMeasuringSessionFinished=!1,this.resetClickSequence(),this._currentTooltips=[],this._currentDistance=0);var o=e.picks,a=(0,i.getPickedEditHandle)(o),s=!1;a||(this.addClickSequence(e),s=!0);var g=this.getClickSequence();g.length>1&&a&&Array.isArray(a.properties.positionIndexes)&&a.properties.positionIndexes[0]===g.length-1?this._isMeasuringSessionFinished=!0:s&&(g.length>1&&(this._currentDistance+=this._calculateDistanceForTooltip({positionA:g[g.length-2],positionB:g[g.length-1],modeConfig:A}),this._currentTooltips.push({position:e.mapCoords,text:this._formatTooltip(this._currentDistance,A)})),r({updatedData:n,editType:"addTentativePosition",editContext:{position:e.mapCoords}}))}},{key:"handleKeyUp",value:function(e,t){if(!this._isMeasuringSessionFinished){e.stopPropagation();var A=e.key,n=this.getClickSequence().length;switch(A){case"Escape":this._isMeasuringSessionFinished=!0,1===n&&(this.resetClickSequence(),this._currentTooltips=[]),t.onUpdateCursor("cell");break;case"Enter":this.handleClick(t.lastPointerMoveEvent,t),this._isMeasuringSessionFinished=!0}}}},{key:"getGuides",value:function(e){var t,A=e.lastPointerMoveEvent,n=this.getClickSequence(),r=A&&!this._isMeasuringSessionFinished?[A.mapCoords]:[],i={type:"FeatureCollection",features:[]};n.length>0&&i.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[].concat(a(n),r)}});var o=n.map((function(e,t){return{type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[t]},geometry:{type:"Point",coordinates:e}}}));return(t=i.features).push.apply(t,a(o)),i}},{key:"handlePointerMove",value:function(e,t){t.onUpdateCursor("cell")}},{key:"getTooltips",value:function(e){var t=e.lastPointerMoveEvent,A=e.modeConfig,n=this.getClickSequence();if(n.length>0&&t&&!this._isMeasuringSessionFinished){var r=this._calculateDistanceForTooltip({positionA:n[n.length-1],positionB:t.mapCoords,modeConfig:e.modeConfig});return[].concat(a(this._currentTooltips),[{position:t.mapCoords,text:this._formatTooltip(this._currentDistance+r,A)}])}return this._currentTooltips}}])&&c(A.prototype,n),o&&c(A,o),d}(A(79).GeoJsonEditMode);t.MeasureDistanceMode=d},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MeasureAreaMode=void 0;var n=o(A(1156)),r=o(A(307)),i=A(496);function o(e){return e&&e.__esModule?e:{default:e}}function a(e){return(a="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function g(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,t,A){return(l="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=h(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function I(e,t){return!t||"object"!==a(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function C(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var d=[],B=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(B,e);var t,A,i,o,a=(t=B,function(){var e,A=h(t);if(C()){var n=h(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return I(this,e)});function B(){return c(this,B),a.apply(this,arguments)}return A=B,(i=[{key:"handleClick",value:function(e,t){var A=function(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?s(Object(A),!0).forEach((function(t){g(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):s(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}({},t,{onEdit:function(){}});l(h(B.prototype),"handleClick",this).call(this,e,A)}},{key:"getTooltips",value:function(e){var t=this.getTentativeGuide(e);if(t&&"Polygon"===t.geometry.type){var A,i=e.modeConfig||{},o=i.formatTooltip,a=i.measurementCallback,s=(0,r.default)(t),g=(0,n.default)(t);return A=o?o(g):"".concat(parseFloat(g).toFixed(2)," ").concat("sq. m"),a&&a(g),[{position:s.geometry.coordinates,text:A}]}return d}}])&&u(A.prototype,i),o&&u(A,o),B}(i.DrawPolygonMode);t.MeasureAreaMode=B},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MeasureAngleMode=void 0;var n=a(A(143)),r=a(A(270)),i=a(A(635)),o=A(79);function a(e){return e&&e.__esModule?e:{default:e}}function s(e){return(s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return c(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return c(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function I(e,t){return!t||"object"!==s(t)&&"function"!==typeof t?C(e):t}function C(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function B(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var p=[],E=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(c,e);var t,A,o,a,s=(t=c,function(){var e,A=f(t);if(h()){var n=f(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return I(this,e)});function c(){var e;u(this,c);for(var t=arguments.length,A=new Array(t),o=0;o<t;o++)A[o]=arguments[o];return B(C(e=s.call.apply(s,[this].concat(A))),"_getTooltips",(0,i.default)((function(e){var t=e.modeConfig,A=e.vertex,i=e.point1,o=e.point2,a=p;if(A&&i&&o){var s,g=t||{},c=g.formatTooltip,u=g.measurementCallback,l=(0,n.default)(A,i),I=(0,n.default)(A,o),C=Math.abs(l-I);C>180&&(C=360-C),s=c?c(C):"".concat(parseFloat(C).toFixed(2)," ").concat("deg"),u&&u(C),a=[{position:(0,r.default)({type:"FeatureCollection",features:[i,o].map((function(e){return{type:"Feature",geometry:{type:"Point",coordinates:e}}}))}).geometry.coordinates,text:s}]}return a}))),e}return A=c,(o=[{key:"handleClick",value:function(e,t){this.getClickSequence().length>=3&&this.resetClickSequence(),this.addClickSequence(e)}},{key:"handlePointerMove",value:function(e,t){t.onUpdateCursor("cell")}},{key:"getPoints",value:function(e){var t=this.getClickSequence(),A=g(t);return t.length<3&&e.lastPointerMoveEvent&&A.push(e.lastPointerMoveEvent.mapCoords),A}},{key:"getGuides",value:function(e){var t={type:"FeatureCollection",features:[]},A=t.features,n=this.getPoints(e);return n.length>2?A.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[n[1],n[0],n[2]]}}):n.length>1&&A.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[n[1],n[0]]}}),t}},{key:"getTooltips",value:function(e){var t=this.getPoints(e);return this._getTooltips({modeConfig:e.modeConfig,vertex:t[0],point1:t[1],point2:t[2]})}}])&&l(A.prototype,o),a&&l(A,a),c}(o.GeoJsonEditMode);t.MeasureAngleMode=E},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SnappableMode=void 0;var n=A(99);function r(e){return(r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){if(e){if("string"===typeof e)return a(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?a(e,t):void 0}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function s(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function g(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t){return!t||"object"!==r(t)&&"function"!==typeof t?u(e):t}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function l(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function I(e){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e,t){return(C=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var f=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&C(e,t)}(d,e);var t,A,r,a,f=(t=d,function(){var e,A=I(t);if(l()){var n=I(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return c(this,e)});function d(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),h(u(t=f.call(this)),"_handler",void 0),t._handler=e,t}return A=d,(r=[{key:"_getSnappedMouseEvent",value:function(e,t,A){return Object.assign(e,{mapCoords:A.geometry.coordinates,pointerDownMapCoords:t&&t.geometry.coordinates})}},{key:"_getPickedSnapTarget",value:function(e){return(0,n.getPickedEditHandles)(e).find((function(e){return"snap-target"===e.properties.editHandleType}))}},{key:"_getPickedSnapSource",value:function(e){return(0,n.getPickedSnapSourceEditHandle)(e)}},{key:"_getUpdatedSnapSourceHandle",value:function(e,t){var A=e.properties,n=A.featureIndex,r=A.positionIndexes;if(!Array.isArray(r))return e;var i=t.features[n];return function(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?s(Object(A),!0).forEach((function(t){h(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):s(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}({},e,{geometry:{type:"Point",coordinates:r.reduce((function(e,t){return e[t]}),i.geometry.coordinates)}})}},{key:"_getSnapTargets",value:function(e){var t=(e.modeConfig||{}).additionalSnapTargets;return t=t||[],[].concat(i(e.data.features),i(t))}},{key:"_getSnapTargetHandles",value:function(e){for(var t=[],A=this._getSnapTargets(e),r=0;r<A.length;r++)if(!e.selectedIndexes.includes(r)){var o=A[r].geometry;t.push.apply(t,i((0,n.getEditHandlesForGeometry)(o,r,"snap-target")))}return t}},{key:"getGuides",value:function(e){var t=e.modeConfig,A=e.lastPointerMoveEvent,r=(t||{}).enableSnapping,a={type:"FeatureCollection",features:i(this._handler.getGuides(e).features)};if(!r)return a;var s,g=A&&this._getPickedSnapSource(A.pointerDownPicks);if(g)return(s=a.features).push.apply(s,i(this._getSnapTargetHandles(e)).concat([this._getUpdatedSnapSourceHandle(g,e.data)])),a;var c,u=e.data.features,l=function(e){if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=o(e))){var t=0,A=function(){};return{s:A,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:A}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,i=!0,a=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){a=!0,r=e},f:function(){try{i||null==n.return||n.return()}finally{if(a)throw r}}}}(e.selectedIndexes);try{for(l.s();!(c=l.n()).done;){var I=c.value;if(I<u.length){var C,h=u[I].geometry;(C=a.features).push.apply(C,i((0,n.getEditHandlesForGeometry)(h,I,"snap-source")))}}}catch(f){l.e(f)}finally{l.f()}return a}},{key:"_getSnapAwareEvent",value:function(e,t){var A=this._getPickedSnapSource(t.lastPointerMoveEvent.pointerDownPicks),n=this._getPickedSnapTarget(e.picks);return A&&n?this._getSnappedMouseEvent(e,A,n):e}},{key:"handleStartDragging",value:function(e,t){this._handler.handleStartDragging(e,t)}},{key:"handleStopDragging",value:function(e,t){this._handler.handleStopDragging(this._getSnapAwareEvent(e,t),t)}},{key:"handleDragging",value:function(e,t){this._handler.handleDragging(this._getSnapAwareEvent(e,t),t)}},{key:"handlePointerMove",value:function(e,t){this._handler.handlePointerMove(this._getSnapAwareEvent(e,t),t)}}])&&g(A.prototype,r),a&&g(A,a),d}(A(79).GeoJsonEditMode);t.SnappableMode=f},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=A(643),r=A(202),i=A(122),o=s(A(493)),a=s(A(636));function s(e){return e&&e.__esModule?e:{default:e}}function g(e){return(g="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return u(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return u(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function I(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function C(e,t,A){return(C="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,A){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=d(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(A):r.value}})(e,t,A||e)}function h(e,t){return!t||"object"!==g(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function f(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function E(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?p(Object(A),!0).forEach((function(t){Q(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):p(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function Q(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var y=r.ViewMode,v={type:"FeatureCollection",features:[]},m=E({mode:y},o.default.defaultProps,{data:[],selectedIndexes:[],filled:!1,stroked:!0,lineWidthScale:1,lineWidthMinPixels:1,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,lineWidthUnits:"pixels",getHexagons:function(e){return e.hexIds},getEditedCluster:function(e,t){return t?E({},t,{hexIds:e}):{hexIds:e}},resolution:9}),b=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&B(e,t)}(g,e);var t,A,r,a,s=(t=g,function(){var e,A=d(t);if(f()){var n=d(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return h(this,e)});function g(){return l(this,g),s.apply(this,arguments)}return A=g,(r=[{key:"initializeState",value:function(){C(d(g.prototype),"initializeState",this).call(this),this.setState({tentativeHexagonIDs:[]})}},{key:"getDerivedHexagonIDs",value:function(e){return(0,i.polyfill)(e,this.props.resolution,!0)}},{key:"getDerivedHexagonID",value:function(e){return(0,i.geoToH3)(e[1],e[0],this.props.resolution)}},{key:"renderLayers",value:function(){var e=this;return[new o.default(this.getSubLayerProps({id:"editable-geojson",mode:this.props.mode,data:v,selectedFeatureIndexes:[],onEdit:function(t){var A=t.editType,n=t.editContext;switch(A){case"updateTentativeFeature":if("Polygon"===n.feature.geometry.type){var r=n.feature.geometry.coordinates,i=e.getDerivedHexagonIDs(r);e.setState({tentativeHexagonIDs:i})}else if("Point"===n.feature.geometry.type){var o=n.feature.geometry.coordinates,a=e.getDerivedHexagonID(o);e.setState({tentativeHexagonIDs:[a]})}break;case"addFeature":var s=c(e.props.data),g=e.props.modeConfig;if(g&&g.booleanOperation)if(1!==e.props.selectedIndexes.length)console.warn("booleanOperation only supported for single cluster selection");else{var u,l=new Set(e.getSelectedHexIDs()),I=new Set(e.state.tentativeHexagonIDs);switch(g.booleanOperation){case"union":default:u=c(new Set([].concat(c(l),c(I))));break;case"intersection":u=c(l).filter((function(e){return I.has(e)}));break;case"difference":u=c(l).filter((function(e){return!I.has(e)}))}var C=e.props.selectedIndexes[0],h=e.props.data[C];s[C]=e.props.getEditedCluster(u,h)}else s.push(e.props.getEditedCluster(e.state.tentativeHexagonIDs,null));e.setState({tentativeHexagonIDs:[]}),e.props.onEdit({updatedData:s})}}})),new n.H3ClusterLayer(this.getSubLayerProps({id:"hexagons",data:this.props.data,getHexagons:this.props.getHexagons})),new n.H3ClusterLayer(this.getSubLayerProps({id:"tentative-hexagons",data:[{hexIds:this.state.tentativeHexagonIDs}],getHexagons:function(e){return e.hexIds}}))]}},{key:"getSelectedHexIDs",value:function(){var e=this,t=[];return this.props.selectedIndexes.forEach((function(A){var n=e.props.data[A],r=e.props.getHexagons(n);t=t.concat(r)})),t}},{key:"getCursor",value:function(e){var t=e.isDragging,A=this.state.cursor;return A||(A=t?"grabbing":"grab"),A}}])&&I(A.prototype,r),a&&I(A,a),g}(a.default);t.default=b,Q(b,"layerName","EditableH3ClusterLayer"),Q(b,"defaultProps",m)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.SELECTION_TYPE=void 0;var n,r=A(35),i=A(75),o=A(59),a=u(A(507)),s=u(A(376)),g=A(202),c=u(A(493));function u(e){return e&&e.__esModule?e:{default:e}}function l(e){return(l="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function I(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function C(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?I(Object(A),!0).forEach((function(t){b(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):I(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function h(e){return function(e){if(Array.isArray(e))return B(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||d(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){if(e){if("string"===typeof e)return B(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?B(e,t):void 0}}function B(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function E(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Q(e,t){return!t||"object"!==l(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function y(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function b(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var w={NONE:null,RECTANGLE:"rectangle",POLYGON:"polygon"};t.SELECTION_TYPE=w;var S=(b(n={},w.RECTANGLE,g.DrawRectangleMode),b(n,w.POLYGON,g.DrawPolygonMode),n),F=b({},w.RECTANGLE,{dragToDraw:!0}),R={selectionType:w.RECTANGLE,layerIds:[],onSelect:function(){}},D={type:"FeatureCollection",features:[]},G=["lineWidthScale","lineWidthMinPixels","lineWidthMaxPixels","lineWidthUnits","lineJointRounded","lineMiterLimit","pointRadiusScale","pointRadiusMinPixels","pointRadiusMaxPixels","lineDashJustified","getLineColor","getFillColor","getRadius","getLineWidth","getLineDashArray","getTentativeLineDashArray","getTentativeLineColor","getTentativeFillColor","getTentativeLineWidth"],k=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(l,e);var t,A,n,r,u=(t=l,function(){var e,A=v(t);if(y()){var n=v(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return Q(this,e)});function l(){return p(this,l),u.apply(this,arguments)}return A=l,(n=[{key:"_selectRectangleObjects",value:function(e){var t=this.props,A=t.layerIds,n=t.onSelect,r=f(this.context.viewport.project(e[0][0]),2),i=r[0],o=r[1],a=f(this.context.viewport.project(e[0][2]),2),s=a[0],g=a[1];n({pickingInfos:this.context.deck.pickObjects({x:Math.min(i,s),y:Math.min(o,g),width:Math.abs(s-i),height:Math.abs(g-o),layerIds:A})})}},{key:"_selectPolygonObjects",value:function(e){var t,A=this,n=this.props,r=n.layerIds,i=n.onSelect,g=e[0].map((function(e){return A.context.viewport.project(e)})),c=g.map((function(e){return e[0]})),u=g.map((function(e){return e[1]})),l=Math.min.apply(Math,h(c)),I=Math.min.apply(Math,h(u)),C=Math.max.apply(Math,h(c)),f=Math.max.apply(Math,h(u)),d=(0,o.polygon)(e),B=(0,a.default)(d,50);try{t=(0,s.default)(B,d)}catch(E){return void console.log("turfDifference() error",E)}this.setState({pendingPolygonSelection:{bigPolygon:t}});var p="".concat(this.props.id,"-").concat("selection-blocker");setTimeout((function(){var e=A.context.deck.pickObjects({x:l,y:I,width:C-l,height:f-I,layerIds:[p].concat(h(r))});i({pickingInfos:e.filter((function(e){return e.layer.id!==A.props.id}))})}),250)}},{key:"renderLayers",value:function(){var e=this,t=this.state.pendingPolygonSelection,A=S[this.props.selectionType]||g.ViewMode,n=F[this.props.selectionType],r={};G.forEach((function(t){void 0!==e.props[t]&&(r[t]=e.props[t])}));var o=[new c.default(this.getSubLayerProps(C({id:"selection-geojson",pickable:!0,mode:A,modeConfig:n,selectedFeatureIndexes:[],data:D,onEdit:function(t){var A=t.updatedData;if("addFeature"===t.editType){var n=A.features[0].geometry.coordinates;e.props.selectionType===w.RECTANGLE?e._selectRectangleObjects(n):e.props.selectionType===w.POLYGON&&e._selectPolygonObjects(n)}}},r)))];if(t){var a=t.bigPolygon;o.push(new i.PolygonLayer(this.getSubLayerProps({id:"selection-blocker",pickable:!0,stroked:!1,opacity:1,data:[a],getLineColor:function(e){return[0,0,0,1]},getFillColor:function(e){return[0,0,0,1]},getPolygon:function(e){return e.geometry.coordinates}})))}return o}},{key:"shouldUpdateState",value:function(e){var t=e.changeFlags,A=t.stateChanged,n=t.propsOrDataChanged;return A||n}}])&&E(A.prototype,n),r&&E(A,r),l}(r.CompositeLayer);t.default=k,b(k,"layerName","SelectionLayer"),b(k,"defaultProps",R)},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=A(35),r=A(75);function i(e){return(i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function s(e,t){return!t||"object"!==i(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function g(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function l(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var I=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&u(e,t)}(I,e);var t,A,n,i,l=(t=I,function(){var e,A=c(t);if(g()){var n=c(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return s(this,e)});function I(){return o(this,I),l.apply(this,arguments)}return A=I,(n=[{key:"renderLayers",value:function(){return[new r.ScatterplotLayer(Object.assign({},this.props,{id:"".concat(this.props.id,"-ScatterplotLayer"),data:this.props.data})),new r.LineLayer(Object.assign({},this.props,{id:"".concat(this.props.id,"-LineLayer"),data:this.props.data,pickable:!1,getSourcePosition:function(e){var t=e.position;return[t[0],t[1],0]},getTargetPosition:function(e){var t=e.position;return[t[0],t[1],t[2]||0]},getColor:[150,150,150,200],getStrokeWidth:3}))]}}])&&a(A.prototype,n),i&&a(A,i),I}(n.CompositeLayer);t.default=I,l(I,"layerName","ElevatedEditHandleLayer"),l(I,"defaultProps",{})},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={outlineEnabled:!1,outlineRenderShadowmap:!1,outlineShadowmap:null};var r={name:"outline",vs:"attribute float instanceZLevel;\nvarying float outline_vzLevel;\nvarying vec4 outline_vPosition;\n\n// Set the z level for the outline shadowmap rendering\nvoid outline_setZLevel(float zLevel) {\n outline_vzLevel = zLevel;\n}\n\n// Store an adjusted position for texture2DProj\nvoid outline_setUV(vec4 position) {\n // mat4(\n // 0.5, 0.0, 0.0, 0.0,\n // 0.0, 0.5, 0.0, 0.0,\n // 0.0, 0.0, 0.5, 0.0,\n // 0.5, 0.5, 0.5, 1.0\n // ) * position;\n outline_vPosition = vec4(position.xyz * 0.5 + position.w * 0.5, position.w);\n}\n",fs:"uniform bool outline_uEnabled;\nuniform bool outline_uRenderOutlines;\nuniform sampler2D outline_uShadowmap;\n\nvarying float outline_vzLevel;\n// varying vec2 outline_vUV;\nvarying vec4 outline_vPosition;\n\nconst float OUTLINE_Z_LEVEL_ERROR = 0.01;\n\n// Return a darker color in shadowmap\nvec4 outline_filterShadowColor(vec4 color) {\n return vec4(outline_vzLevel / 255., outline_vzLevel / 255., outline_vzLevel / 255., 1.);\n}\n\n// Return a darker color if in shadowmap\nvec4 outline_filterDarkenColor(vec4 color) {\n if (outline_uEnabled) {\n float maxZLevel;\n if (outline_vPosition.q > 0.0) {\n maxZLevel = texture2DProj(outline_uShadowmap, outline_vPosition).r * 255.;\n } else {\n discard;\n }\n if (maxZLevel < outline_vzLevel + OUTLINE_Z_LEVEL_ERROR) {\n vec4(color.rgb * 0.5, color.a);\n } else {\n discard;\n }\n }\n return color;\n}\n\n// if enabled and rendering outlines - Render depth to shadowmap\n// if enabled and rendering colors - Return a darker color if in shadowmap\n// if disabled, just return color\nvec4 outline_filterColor(vec4 color) {\n if (outline_uEnabled) {\n return outline_uRenderOutlines ?\n outline_filterShadowColor(color) :\n outline_filterDarkenColor(color);\n }\n return color;\n}\n",getUniforms:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n,t=e.outlineEnabled,A=e.outlineRenderShadowmap,r=e.outlineShadowmap,i={};return void 0!==t&&(i.outline_uEnabled=t),void 0!==A&&(i.outline_uRenderOutlines=A),void 0!==r&&(i.outline_uShadowmap=r),i}};t.default=r},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=A(35),r=A(75),i=A(368),o=c(A(639)),a=c(A(1098)),s=c(A(1099)),g=A(1100);function c(e){return e&&e.__esModule?e:{default:e}}function u(e){return(u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return I(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return I(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function C(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function f(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function d(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function B(e){return(B=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function E(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var Q=i.SimpleMeshLayer,y={mesh:new a.default({headSize:.2,tailWidth:.05})},v=Object.assign({},o.default.defaultProps,{MarkerLayer:Q,markerLayerProps:y,sizeScale:100,fp64:!1,hightlightIndex:-1,highlightPoint:null,getPath:function(e){return e.path},getColor:function(e){return e.color},getMarkerColor:function(e){return[0,0,0,255]},getDirection:function(e){return e.direction},getMarkerPercentages:function(e,t){return t.lineLength>.1?[.25,.5,.75]:[.5]}}),m=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(I,e);var t,A,i,c,u=(t=I,function(){var e,A=B(t);if(d()){var n=B(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return f(this,e)});function I(){return C(this,I),u.apply(this,arguments)}return A=I,(i=[{key:"initializeState",value:function(){this.state={markers:[],mesh:new a.default({headSize:.2,tailWidth:.05}),closestPoint:null}}},{key:"projectFlat",value:function(e,t,A,r){if(A===n.COORDINATE_SYSTEM.METER_OFFSETS){var i=l(t.metersToLngLatDelta(e),2),o=i[0],a=i[1],s=l(r,2),g=s[0],c=s[1];return t.projectFlat([g+o,a+c])}if(A===n.COORDINATE_SYSTEM.LNGLAT_OFFSETS){var u=l(e,2),I=u[0],C=u[1],h=l(r,2),f=h[0],d=h[1];return t.projectFlat([f+I,C+d])}return t.projectFlat(e)}},{key:"updateState",value:function(e){var t=this,A=e.props,n=e.oldProps,r=e.changeFlags;if(r.dataChanged||r.updateTriggersChanged){var i=this.props,o=i.data,a=i.getPath,g=i.getDirection,c=i.getMarkerColor,u=i.getMarkerPercentages,l=i.coordinateSystem,I=i.coordinateOrigin,C=this.context.viewport;this.state.markers=(0,s.default)({data:o,getPath:a,getDirection:g,getColor:c,getMarkerPercentages:u,projectFlat:function(e){return t.projectFlat(e,C,l,I)}}),this._recalculateClosestPoint()}r.propsChanged&&A.point!==n.point&&this._recalculateClosestPoint()}},{key:"_recalculateClosestPoint",value:function(){var e=this.props,t=e.highlightPoint,A=e.highlightIndex;if(t&&A>=0){var n=this.props.data[A],r=this.props.getPath(n),i=(0,g.getClosestPointOnPolyline)({points:r,p:t}).point;this.state.closestPoints=[{position:i}]}else this.state.closestPoints=[]}},{key:"getPickingInfo",value:function(e){var t=e.info;return Object.assign(t,{object:t.object&&t.object.path||t.object})}},{key:"renderLayers",value:function(){return[new o.default(this.props,this.getSubLayerProps({id:"paths",data:this.props.data})),new this.props.MarkerLayer(this.getSubLayerProps(Object.assign({},this.props.markerLayerProps,{id:"markers",data:this.state.markers,getOrientation:function(e){return[0,-e.angle,0]},getColor:function(e){return e.color},sizeScale:this.props.sizeScale,fp64:this.props.fp64,pickable:!1,parameters:{blend:!1,depthTest:!1}}))),this.state.closestPoints&&new r.ScatterplotLayer({id:"".concat(this.props.id,"-highlight"),data:this.state.closestPoints,fp64:this.props.fp64})]}}])&&h(A.prototype,i),c&&h(A,c),I}(n.CompositeLayer);t.default=m,E(m,"layerName","PathMarkerLayer"),E(m,"defaultProps",v)},function(e,t,A){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){return!t||"object"!==n(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var g=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(n,e);var t,A=(t=n,function(){var e,A=a(t);if(o()){var n=a(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return i(this,e)});function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r(this,n),A.call(this,Object.assign({},e,{attributes:c(e)}))}return n}(A(43).Geometry);function c(e){for(var t=e.length,A=void 0===t?1:t,n=e.headSize,r=void 0===n?.2:n,i=e.tailWidth,o=void 0===i?.05:i,a=e.tailStart,s=void 0===a?.05:a,g=[.5,1,0,.5-r/2,1-r,0,.5+r/2,1-r,0,.5-o/2,s,0,.5+o/2,1-r,0,.5+o/2,s,0,.5-o/2,s,0,.5-o/2,1-r,0,.5+o/2,1-r,0],c=new Array(g.length),u=0;u<g.length/3;u++){var l=3*u;c[l+0]=(g[l+0]-.5)*A,c[l+1]=(g[l+1]-.5)*A,c[l+2]=0}return{positions:new Float32Array(c),normals:new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1]),texCoords:new Float32Array(g)}}t.default=g},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,A=e.data,i=e.getPath,c=void 0===i?function(e){return e.path}:i,u=e.getDirection,l=void 0===u?function(e){return e.direction}:u,I=e.getColor,C=void 0===I?function(e){return a}:I,h=e.getMarkerPercentages,f=void 0===h?function(e){return[.5]}:h,d=e.projectFlat,B=[],p=r(A);try{for(p.s();!(t=p.n()).done;){var E,Q=t.value,y=c(Q),v=l(Q)||s,m=C(Q),b=y.map((function(e){return new n.Vector2(e)})),w=b.slice(0).reverse(),S=o(b),F=r(f(Q,{lineLength:S}));try{for(F.s();!(E=F.n()).done;){var R=E.value;if(v.forward){var D=g({path:b,percentage:R,lineLength:S,color:m,object:Q,projectFlat:d});B.push(D)}if(v.backward){var G=g({path:w,percentage:R,lineLength:S,color:m,object:Q,projectFlat:d});B.push(G)}}}catch(k){F.e(k)}finally{F.f()}}}catch(k){p.e(k)}finally{p.f()}return B};var n=A(23);function r(e){if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"===typeof e)return i(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return i(e,t)}(e))){var t=0,A=function(){};return{s:A,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:A}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,r,o=!0,a=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){a=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(a)throw r}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function o(e){for(var t=0,A=0;A<e.length-1;A++)t+=e[A].distance(e[A+1]);return t}var a=[0,0,0,255],s={forward:!0,backward:!1};function g(e){var t=e.path,A=e.percentage,r=e.lineLength,i=e.color,o=e.object,a=e.projectFlat,s=r*A,g=0,c=0,u=0;for(u=0;u<t.length-1&&!((g+=t[u].distance(t[u+1]))>s);u++)c=g;var l=s-c,I=t[u+1].clone().subtract(t[u]).normalize().clone().multiply(new n.Vector2(l,l)).add(t[u]),C=180*new n.Vector2(a(t[u+1])).subtract(a(t[u])).verticalAngle()/Math.PI;return{position:[I.x,I.y,0],angle:C,color:i,object:o}}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getClosestPointOnLine=r,t.getClosestPointOnPolyline=function(e){var t=e.p,A=e.points;t=new n.Vector3(t);for(var i=null,o=1/0,a=-1,s=0;s<A.length-1;++s){var g=A[s],c=A[s+1],u=r({p:t,p1:g,p2:c}),l=t.distanceSquared(u);l<o&&(o=l,i=u,a=s)}return{point:i,index:a,p1:A[a],p2:A[a+1],distanceSquared:o,distance:Math.sqrt(o)}};var n=A(23);function r(e){var t=e.p,A=e.p1,r=e.p2,i=e.clampToLine,o=void 0===i||i,a=new n.Vector3(r).subtract(A),s=new n.Vector3(t).subtract(A),g=a.dot(s);return o&&(g=(0,n.clamp)(g,0,1)),a.lerp(g)}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=A(35),r=A(75);function i(e){return(i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function a(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?o(Object(A),!0).forEach((function(t){C(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):o(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t){return!t||"object"!==i(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function u(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function I(e,t){return(I=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function C(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var h=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&I(e,t)}(C,e);var t,A,n,i,o=(t=C,function(){var e,A=l(t);if(u()){var n=l(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return c(this,e)});function C(){return s(this,C),o.apply(this,arguments)}return A=C,(n=[{key:"renderLayers",value:function(){var e=this.props,t=e.id,A=e.getFillColor,n=e.getStrokeColor,i=e.getInnerRadius,o=e.updateTriggers;return[new r.ScatterplotLayer(a({},this.props,{id:"".concat(t,"-full"),data:this.props.data,getLineColor:n,updateTriggers:a({},o,{getStrokeColor:o.getStrokeColor})})),new r.ScatterplotLayer(a({},this.props,{id:"".concat(t,"-inner"),data:this.props.data,getFillColor:A,getRadius:i,pickable:!1,updateTriggers:a({},o,{getFillColor:o.getFillColor,getRadius:o.getInnerRadius})}))]}}])&&g(A.prototype,n),i&&g(A,i),C}(n.CompositeLayer);t.default=h,C(h,"layerName","JunctionScatterplotLayer"),C(h,"defaultProps",a({},r.ScatterplotLayer.defaultProps,{getFillColor:function(e){return[0,0,0,255]},getStrokeColor:function(e){return[255,255,255,255]},getInnerRadius:function(e){return 1}}))},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toDeckColor=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[255,0,0,255];if(!Array.isArray(e))return t;return[255*e[0],255*e[1],255*e[2],255*e[3]]},t.recursivelyTraverseNestedArrays=function e(t,A,n){if(!Array.isArray(t[0]))return!0;for(var r=0;r<t.length;r++)if(e(t[r],[].concat(function(e){if(Array.isArray(e))return u(e)}(i=A)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(i)||c(i)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[r]),n)){n(t,A);break}var i;return!1},t.generatePointsParallelToLinePoints=function(e,t,A){var a={type:"LineString",coordinates:[e,t]},s=(0,o.point)(A),g=(0,i.default)(s,a),c=(0,r.default)(e,t),u=(A[0]-e[0])*(t[1]-e[1])-(A[1]-e[1])*(t[0]-e[0])<0?c-90:c-270,l=(0,n.default)(t,g,u),I=(0,n.default)(e,g,u);return[l.geometry.coordinates,I.geometry.coordinates]},t.distance2d=l,t.mix=I,t.nearestPointOnProjectedLine=function(e,t,A){var n=new a.default(A),r=e.geometry.coordinates.map((function(e){var t=g(e,3),A=t[0],r=t[1],i=t[2],o=void 0===i?0:i;return n.project([A,r,o])})),i=g(n.project(t.geometry.coordinates),2),o=i[0],s=i[1],c=1/0,u={};r.forEach((function(e,t){var A=g(e,2),n=A[0],i=A[1];if(0!==t){var a=g(r[t-1],2),l=a[0],I=a[1],C=I-i,h=n-l,f=l*i-n*I,d=C*C+h*h,B=Math.abs(C*o+h*s+f)/Math.sqrt(d);B<c&&(c=B,u={index:t,x0:(h*(h*o-C*s)-C*f)/d,y0:(C*(-h*o+C*s)-h*f)/d})}}));var C=u,h=C.index,f=C.x0,d=C.y0,B=g(r[h-1],3),p=B[0],E=B[1],Q=B[2],y=void 0===Q?0:Q,v=g(r[h],3),m=v[0],b=v[1],w=v[2],S=void 0===w?0:w,F=l(p,E,m,b),R=l(p,E,f,d),D=I(y,S,R/F);return{type:"Feature",geometry:{type:"Point",coordinates:n.unproject([f,d,D])},properties:{dist:c,index:h-1}}};var n=s(A(304)),r=s(A(143)),i=s(A(647)),o=A(59),a=s(A(630));function s(e){return e&&e.__esModule?e:{default:e}}function g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}(e,t)||c(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){if(e){if("string"===typeof e)return u(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);return"Object"===A&&e.constructor&&(A=e.constructor.name),"Map"===A||"Set"===A?Array.from(A):"Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function l(e,t,A,n){var r=e-A,i=t-n;return Math.sqrt(r*r+i*i)}function I(e,t,A){return t*A+e*(1-A)}},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=A(75),r=a(A(305)),i=A(369),o=a(A(497));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){return(s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t){return!t||"object"!==s(t)&&"function"!==typeof t?u(e):t}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function l(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function I(e){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e,t){return(C=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var h=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&C(e,t)}(h,e);var t,A,r,a,s=(t=h,function(){var e,A=I(t);if(l()){var n=I(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return c(this,e)});function h(e){var t,A,n,r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,h),t=s.call(this,e),A=u(t),r=void 0,(n="deckCache")in A?Object.defineProperty(A,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[n]=r,t.deckCache=new o.default(e.getData,(function(t){return e.toNebulaFeature(t)})),t}return A=h,(r=[{key:"render",value:function(e){var t=e.nebula,A=[0,0,0,255],r=this.deckCache,o=r.objects,a=r.updateTrigger,s=t.props.viewport.zoom;return new n.TextLayer({id:"texts-".concat(this.id),data:o,opacity:1,fp64:!1,pickable:!1,getText:function(e){return e.style.text},getPosition:function(e){return e.geoJson.geometry.coordinates},getColor:function(e){return(0,i.toDeckColor)(e.style.fillColor)||A},sizeScale:1/Math.pow(2,20-s),updateTriggers:{all:a},nebulaLayer:this})}}])&&g(A.prototype,r),a&&g(A,a),h}(r.default);t.default=h},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,r=A(309),i=A(22),o=A(626),a=c(A(305)),s=A(369),g=c(A(497));function c(e){return e&&e.__esModule?e:{default:e}}function u(e){return(u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function I(e,t){return!t||"object"!==u(t)&&"function"!==typeof t?C(e):t}function C(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function B(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var p=(B(n={},o.ArrowStyles.NONE,{forward:!1,backward:!1}),B(n,o.ArrowStyles.FORWARD,{forward:!0,backward:!1}),B(n,o.ArrowStyles.BACKWARD,{forward:!1,backward:!0}),B(n,o.ArrowStyles.BOTH,{forward:!0,backward:!0}),n),E=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(u,e);var t,A,n,a,c=(t=u,function(){var e,A=f(t);if(h()){var n=f(this).constructor;e=Reflect.construct(A,arguments,n)}else e=A.apply(this,arguments);return I(this,e)});function u(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),B(C(t=c.call(this,e)),"deckCache",void 0),B(C(t),"noBlend",void 0),B(C(t),"highlightColor",void 0),B(C(t),"arrowSize",void 0),B(C(t),"rounded",void 0),B(C(t),"dashed",void 0),B(C(t),"markerLayerProps",void 0),t.deckCache=new g.default(e.getData,(function(t){return e.toNebulaFeature(t)})),t.enableSelection=!0;var A=e.enablePicking,n=void 0===A||A,r=e.noBlend,i=void 0!==r&&r,o=e.rounded,a=void 0===o||o,s=e.dashed,l=void 0!==s&&s,I=e.markerLayerProps,h=void 0===I?null:I;return Object.assign(C(t),{enablePicking:n,noBlend:i,rounded:a,dashed:l,markerLayerProps:h}),t}return A=u,(n=[{key:"getMouseOverSegment",value:function(){return null}},{key:"_calcMarkerPercentages",value:function(e){var t=e.style.arrowPercentages;return t||((e.style.arrowStyle||o.DEFAULT_STYLE.arrowStyle)===o.ArrowStyles.NONE?[]:[[.5],[.33,.66],[.25,.5,.75]][Math.min(e.style.arrowCount||o.DEFAULT_STYLE.arrowCount,o.MAX_ARROWS)-1])}},{key:"_getHighlightedObjectIndex",value:function(e){var t=e.nebula.deckglMouseOverInfo;if(t){var A=t.originalLayer,n=t.index;if(A===this)return n}return-1}},{key:"render",value:function(e){var t=e.nebula,A=[0,0,0,255],n=this.deckCache,o=n.objects,a=n.updateTrigger;return new r.PathMarkerLayer({id:"segments-".concat(this.id),data:o,opacity:1,fp64:!1,rounded:this.rounded,pickable:!0,sizeScale:this.arrowSize||6,parameters:{depthTest:!1,blend:!this.noBlend,blendEquation:i.GL.MAX},getPath:function(e){return e.geoJson.geometry.coordinates},getColor:function(e){return(0,s.toDeckColor)(e.style.lineColor,A)},getWidth:function(e){return e.style.lineWidthMeters||1},getZLevel:function(e){return 255*e.style.zLevel},getDirection:function(e){return p[e.style.arrowStyle]},getMarkerColor:function(e){return(0,s.toDeckColor)(e.style.arrowColor,A)},getMarkerPercentages:this._calcMarkerPercentages,updateTriggers:{all:a},highlightedObjectIndex:this._getHighlightedObjectIndex({nebula:t}),highlightColor:(0,s.toDeckColor)(this.highlightColor),dashJustified:this.dashed,getDashArray:this.dashed?function(e){return e.style.dashArray}:null,markerLayerProps:this.markerLayerProps||r.PathMarkerLayer.defaultProps.markerLayerProps,nebulaLayer:this})}}])&&l(A.prototype,n),a&&l(A,a),u}(a.default);t.default=E},function(e,t,A){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=A(629),r=g(A(1106)),i=A(35),o=g(A(627)),a=g(A(628)),s=g(A(305));function g(e){return e&&e.__esModule?e:{default:e}}function c(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return u(e,t);var A=Object.prototype.toString.call(e).slice(8,-1);"Object"===A&&e.constructor&&(A=e.constructor.name);if("Map"===A||"Set"===A)return Array.from(A);if("Arguments"===A||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(A))return u(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var A=0,n=new Array(t);A<t;A++)n[A]=e[A];return n}function l(e,t){for(var A=0;A<t.length;A++){var n=t[A];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function I(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var C=function(){function e(){var t=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),I(this,"props",void 0),I(this,"deckgl",void 0),I(this,"mainContainer",void 0),I(this,"deckglMouseOverInfo",void 0),I(this,"_deckDrawer",void 0),I(this,"_mouseWasDown",void 0),I(this,"wmViewport",void 0),I(this,"queryObjectEvents",new n.EventEmitter),I(this,"forceUpdate",void 0),I(this,"inited",void 0),I(this,"_onMouseEvent",(function(e){if(t._isNebulaEvent(e)){"mousedown"===e.type&&(t._mouseWasDown=!0);var A=t.mainContainer?t.mainContainer.getBoundingClientRect():{},n=A.top,r=void 0===n?0:n,i=A.left,o=void 0===i?0:i,a=new Proxy(e,{get:function(e,t){if("offsetX"===t)return e.pageX-o;if("offsetY"===t)return e.pageY-r;if("type"===t)return e.type.replace("pointer","mouse");var A=e[t];return"function"===typeof A?A.bind(e):A}});t._handleDeckGLEvent(a)}}))}var t,A,g;return t=e,(A=[{key:"init",value:function(e){var t=this;this.props=e,this.wmViewport=new i.WebMercatorViewport(this.props.viewport),["click","mousemove","mouseup","mousedown"].forEach((function(e){return r.default.addEventListener(e,t._onMouseEvent,!0)}))}},{key:"detach",value:function(){var e=this;["click","mousemove","mouseup","mousedown"].forEach((function(t){return r.default.removeEventListener(t,e._onMouseEvent,!0)}))}},{key:"updateProps",value:function(e){this.props=e;var t=this.props.viewport;this.wmViewport=new i.WebMercatorViewport(t)}},{key:"log",value:function(e){var t=this.props.logger;t&&t.info&&t.info("Nebula: "+e)}},{key:"updateAllDeckObjects",value:function(){this.getAllLayers().forEach((function(e){e&&e.deckCache&&e.deckCache.updateAllDeckObjects()})),this.forceUpdate()}},{key:"updateDeckObjectsByIds",value:function(e){this.getAllLayers().forEach((function(t){t&&t.deckCache&&t.deckCache.updateDeckObjectsByIds(e)})),this.forceUpdate()}},{key:"rerenderLayers",value:function(){this.updateAllDeckObjects()}},{key:"_isNebulaEvent",value:function(e){var t=e.buttons,A=e.target,n=e.type,r=this.props.viewport;if(this._mouseWasDown&&"mouseup"===n)return this._mouseWasDown=!1,!0;if("mousemove"===n&&t>0)return!0;if(!A.getBoundingClientRect)return!1;var i=A.getBoundingClientRect();return Math.round(i.width)===Math.round(r.width)&&Math.round(i.height)===Math.round(r.height)}},{key:"getMouseGroundPosition",value:function(e){return this.wmViewport.unproject([e.offsetX,e.offsetY])}},{key:"unprojectMousePosition",value:function(e){return this.wmViewport.unproject(e)}},{key:"_handleDeckGLEvent",value:function(e){var t=this.deckgl,A=this.props,n=A.onMapMouseEvent,i=A.selectionType,s=A.eventFilter,g=!0,c="auto";if(e&&t&&i){this._deckDrawer||(this._deckDrawer=new o.default(this));var u=this.getMouseGroundPosition(e);if(s&&!s(u,e))return;this._deckDrawer.handleEvent(e,u,i).redraw&&this.forceUpdate()}else{if(e&&t&&(!e.buttons||"mousemove"!==e.type)){var l=t.props.layers.filter((function(e){return e&&e.props&&e.props.nebulaLayer&&e.props.nebulaLayer.enablePicking})).map((function(e){return e.id})),I=t.pickObject({x:e.offsetX,y:e.offsetY,radius:5,layerIds:l});if(this.queryObjectEvents.emit("pick",{event:e,pickingInfo:I}),I){g=!1;var C=I.index,h=I.lngLat;if(s&&!s(h,e))return;var f=I.layer,d=I.object;f&&f.props&&f.props.nebulaLayer&&f.props.nebulaLayer.eventHandler&&f.props.nebulaLayer.eventHandler(e,I);var B=d.original||f.props.nebulaLayer&&f.props.nebulaLayer.deckCache&&f.props.nebulaLayer.deckCache.originals[C];if(B){this.deckglMouseOverInfo={originalLayer:f.props.nebulaLayer,index:C};var p=new a.default(e,{data:B,metadata:d.metadata,groundPoint:h,nebula:this});f.props.nebulaLayer.emit(e.type,p),this.forceUpdate()}c="pointer"}}if(r.default.documentElement&&(r.default.documentElement.style.cursor=c),g){this.deckglMouseOverInfo=null;var E=this.getMouseGroundPosition(e);if(s&&!s(E,e))return;var Q=new a.default(e,{groundPoint:E,nebula:this});this.getAllLayers().filter((function(e){return e&&e.usesMapEvents})).forEach((function(e){return e.emit("mapMouseEvent",Q)})),this.getAllLayers().filter((function(e){return e&&e.props&&e.props.nebulaLayer&&e.props.nebulaLayer.mapMouseEvent})).forEach((function(e){return e.props.nebulaLayer.mapMouseEvent(Q,e)})),n&&n(e,E)}}}},{key:"getExtraDeckLayers",value:function(){var e=[];return this._deckDrawer&&e.push.apply(e,c(this._deckDrawer.render())),e}},{key:"renderDeckLayers",value:function(){var e=this;return this.getAllLayers().map((function(t){return t instanceof s.default?t.render({nebula:e}):t})).filter(Boolean)}},{key:"getAllLayers",value:function(){var e=[];return this.props.layers.filter(Boolean).forEach((function(t){e.push(t),t instanceof s.default&&e.push.apply(e,c(t.helperLayers))})),e.filter(Boolean)}},{key:"getRenderedLayers",value:function(){return[].concat(c(this.renderDeckLayers()),c(this.getExtraDeckLayers()))}},{key:"updateAndGetRenderedLayers",value:function(e,t,A){return this.inited?(this.updateProps({layers:e,viewport:t}),this.forceUpdate=function(){return A.forceUpdate()}):(this.inited=!0,this.init({layers:e,viewport:t}),this.forceUpdate=function(){return A.forceUpdate()},this.updateAllDeckObjects()),this.getRenderedLayers()}},{key:"setDeck",value:function(e){e&&(this.deckgl=e)}},{key:"setMainContainer",value:function(e){e&&(this.mainContainer=e)}}])&&l(t.prototype,A),g&&l(t,g),e}();t.default=C},function(e,t,A){(function(t){var n,r="undefined"!==typeof t?t:"undefined"!==typeof window?window:{},i=A(1107);"undefined"!==typeof document?n=document:(n=r["__GLOBAL_DOCUMENT_CACHE@4"])||(n=r["__GLOBAL_DOCUMENT_CACHE@4"]=i),e.exports=n}).call(this,A(86))},,function(e,t){e.exports=function(e,t,A){return e===e&&(void 0!==A&&(e=e<=A?e:A),void 0!==t&&(e=e>=t?e:t)),e}},function(e,t,A){"use strict";var n=window.URL||window.webkitURL;e.exports=function(e,t){try{try{var A;try{(A=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder)).append(e),A=A.getBlob()}catch(r){A=new Blob([e])}return new Worker(n.createObjectURL(A))}catch(r){return new Worker("data:application/javascript,"+encodeURIComponent(e))}}catch(r){if(!t)throw Error("Inline worker is not supported");return new Worker(t)}}},function(e,t,A){var n=A(261);e.exports=function(e,t){var A=n(e,t);return A?A.version:null}},function(e,t,A){var n=A(261);e.exports=function(e,t){var A=n(e.trim().replace(/^[=v]+/,""),t);return A?A.version:null}},function(e,t,A){var n=A(106);e.exports=function(e,t,A,r){"string"===typeof A&&(r=A,A=void 0);try{return new n(e,A).inc(t,r).version}catch(i){return null}}},function(e,t,A){var n=A(261),r=A(499);e.exports=function(e,t){if(r(e,t))return null;var A=n(e),i=n(t),o=A.prerelease.length||i.prerelease.length,a=o?"pre":"",s=o?"prerelease":"";for(var g in A)if(("major"===g||"minor"===g||"patch"===g)&&A[g]!==i[g])return a+g;return s}},function(e,t,A){var n=A(106);e.exports=function(e,t){return new n(e,t).major}},function(e,t,A){var n=A(106);e.exports=function(e,t){return new n(e,t).minor}},function(e,t,A){var n=A(106);e.exports=function(e,t){return new n(e,t).patch}},function(e,t,A){var n=A(261);e.exports=function(e,t){var A=n(e,t);return A&&A.prerelease.length?A.prerelease:null}},function(e,t,A){var n=A(144);e.exports=function(e,t,A){return n(t,e,A)}},function(e,t,A){var n=A(144);e.exports=function(e,t){return n(e,t,!0)}},function(e,t,A){var n=A(500);e.exports=function(e,t){return e.sort((function(e,A){return n(e,A,t)}))}},function(e,t,A){var n=A(500);e.exports=function(e,t){return e.sort((function(e,A){return n(A,e,t)}))}},function(e,t,A){var n=A(106),r=A(261),i=A(260),o=i.re,a=i.t;e.exports=function(e,t){if(e instanceof n)return e;if("number"===typeof e&&(e=String(e)),"string"!==typeof e)return null;var A=null;if((t=t||{}).rtl){for(var i;(i=o[a.COERCERTL].exec(e))&&(!A||A.index+A[0].length!==e.length);)A&&i.index+i[0].length===A.index+A[0].length||(A=i),o[a.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;o[a.COERCERTL].lastIndex=-1}else A=e.match(o[a.COERCE]);return null===A?null:r("".concat(A[2],".").concat(A[3]||"0",".").concat(A[4]||"0"),t)}},function(e,t,A){var n=A(1124),r=A(1125),i=A(504),o=A(1126);e.exports=function(e){return n(e)||r(e)||i(e)||o()}},function(e,t,A){var n=A(642);e.exports=function(e){if(Array.isArray(e))return n(e)}},function(e,t){e.exports=function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},function(e,t,A){"use strict";var n=A(299),r=A(300),i=A(1128),o=Symbol("max"),a=Symbol("length"),s=Symbol("lengthCalculator"),g=Symbol("allowStale"),c=Symbol("maxAge"),u=Symbol("dispose"),l=Symbol("noDisposeOnSet"),I=Symbol("lruList"),C=Symbol("cache"),h=Symbol("updateAgeOnGet"),f=function(){return 1},d=function(){function e(t){if(n(this,e),"number"===typeof t&&(t={max:t}),t||(t={}),t.max&&("number"!==typeof t.max||t.max<0))throw new TypeError("max must be a non-negative number");this[o]=t.max||1/0;var A=t.length||f;if(this[s]="function"!==typeof A?f:A,this[g]=t.stale||!1,t.maxAge&&"number"!==typeof t.maxAge)throw new TypeError("maxAge must be a number");this[c]=t.maxAge||0,this[u]=t.dispose,this[l]=t.noDisposeOnSet||!1,this[h]=t.updateAgeOnGet||!1,this.reset()}return r(e,[{key:"rforEach",value:function(e,t){t=t||this;for(var A=this[I].tail;null!==A;){var n=A.prev;v(this,e,A,t),A=n}}},{key:"forEach",value:function(e,t){t=t||this;for(var A=this[I].head;null!==A;){var n=A.next;v(this,e,A,t),A=n}}},{key:"keys",value:function(){return this[I].toArray().map((function(e){return e.key}))}},{key:"values",value:function(){return this[I].toArray().map((function(e){return e.value}))}},{key:"reset",value:function(){var e=this;this[u]&&this[I]&&this[I].length&&this[I].forEach((function(t){return e[u](t.key,t.value)})),this[C]=new Map,this[I]=new i,this[a]=0}},{key:"dump",value:function(){var e=this;return this[I].map((function(t){return!p(e,t)&&{k:t.key,v:t.value,e:t.now+(t.maxAge||0)}})).toArray().filter((function(e){return e}))}},{key:"dumpLru",value:function(){return this[I]}},{key:"set",value:function(e,t,A){if((A=A||this[c])&&"number"!==typeof A)throw new TypeError("maxAge must be a number");var n=A?Date.now():0,r=this[s](t,e);if(this[C].has(e)){if(r>this[o])return Q(this,this[C].get(e)),!1;var i=this[C].get(e).value;return this[u]&&(this[l]||this[u](e,i.value)),i.now=n,i.maxAge=A,i.value=t,this[a]+=r-i.length,i.length=r,this.get(e),E(this),!0}var g=new y(e,t,r,n,A);return g.length>this[o]?(this[u]&&this[u](e,t),!1):(this[a]+=g.length,this[I].unshift(g),this[C].set(e,this[I].head),E(this),!0)}},{key:"has",value:function(e){if(!this[C].has(e))return!1;var t=this[C].get(e).value;return!p(this,t)}},{key:"get",value:function(e){return B(this,e,!0)}},{key:"peek",value:function(e){return B(this,e,!1)}},{key:"pop",value:function(){var e=this[I].tail;return e?(Q(this,e),e.value):null}},{key:"del",value:function(e){Q(this,this[C].get(e))}},{key:"load",value:function(e){this.reset();for(var t=Date.now(),A=e.length-1;A>=0;A--){var n=e[A],r=n.e||0;if(0===r)this.set(n.k,n.v);else{var i=r-t;i>0&&this.set(n.k,n.v,i)}}}},{key:"prune",value:function(){var e=this;this[C].forEach((function(t,A){return B(e,A,!1)}))}},{key:"max",set:function(e){if("number"!==typeof e||e<0)throw new TypeError("max must be a non-negative number");this[o]=e||1/0,E(this)},get:function(){return this[o]}},{key:"allowStale",set:function(e){this[g]=!!e},get:function(){return this[g]}},{key:"maxAge",set:function(e){if("number"!==typeof e)throw new TypeError("maxAge must be a non-negative number");this[c]=e,E(this)},get:function(){return this[c]}},{key:"lengthCalculator",set:function(e){var t=this;"function"!==typeof e&&(e=f),e!==this[s]&&(this[s]=e,this[a]=0,this[I].forEach((function(e){e.length=t[s](e.value,e.key),t[a]+=e.length}))),E(this)},get:function(){return this[s]}},{key:"length",get:function(){return this[a]}},{key:"itemCount",get:function(){return this[I].length}}]),e}(),B=function(e,t,A){var n=e[C].get(t);if(n){var r=n.value;if(p(e,r)){if(Q(e,n),!e[g])return}else A&&(e[h]&&(n.value.now=Date.now()),e[I].unshiftNode(n));return r.value}},p=function(e,t){if(!t||!t.maxAge&&!e[c])return!1;var A=Date.now()-t.now;return t.maxAge?A>t.maxAge:e[c]&&A>e[c]},E=function(e){if(e[a]>e[o])for(var t=e[I].tail;e[a]>e[o]&&null!==t;){var A=t.prev;Q(e,t),t=A}},Q=function(e,t){if(t){var A=t.value;e[u]&&e[u](A.key,A.value),e[a]-=A.length,e[C].delete(A.key),e[I].removeNode(t)}},y=function e(t,A,r,i,o){n(this,e),this.key=t,this.value=A,this.length=r,this.now=i,this.maxAge=o||0},v=function(e,t,A,n){var r=A.value;p(e,r)&&(Q(e,A),e[g]||(r=void 0)),r&&t.call(n,r.value,r.key,e)};e.exports=d},function(e,t,A){"use strict";function n(e){var t=this;if(t instanceof n||(t=new n),t.tail=null,t.head=null,t.length=0,e&&"function"===typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var A=0,r=arguments.length;A<r;A++)t.push(arguments[A]);return t}function r(e,t,A){var n=t===e.head?new a(A,null,t,e):new a(A,t,t.next,e);return null===n.next&&(e.tail=n),null===n.prev&&(e.head=n),e.length++,n}function i(e,t){e.tail=new a(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function o(e,t){e.head=new a(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function a(e,t,A,n){if(!(this instanceof a))return new a(e,t,A,n);this.list=n,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,A?(A.prev=this,this.next=A):this.next=null}e.exports=n,n.Node=a,n.create=n,n.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,A=e.prev;return t&&(t.prev=A),A&&(A.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=A),e.list.length--,e.next=null,e.prev=null,e.list=null,t},n.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}},n.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}},n.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)i(this,arguments[e]);return this.length},n.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)o(this,arguments[e]);return this.length},n.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},n.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},n.prototype.forEach=function(e,t){t=t||this;for(var A=this.head,n=0;null!==A;n++)e.call(t,A.value,n,this),A=A.next},n.prototype.forEachReverse=function(e,t){t=t||this;for(var A=this.tail,n=this.length-1;null!==A;n--)e.call(t,A.value,n,this),A=A.prev},n.prototype.get=function(e){for(var t=0,A=this.head;null!==A&&t<e;t++)A=A.next;if(t===e&&null!==A)return A.value},n.prototype.getReverse=function(e){for(var t=0,A=this.tail;null!==A&&t<e;t++)A=A.prev;if(t===e&&null!==A)return A.value},n.prototype.map=function(e,t){t=t||this;for(var A=new n,r=this.head;null!==r;)A.push(e.call(t,r.value,this)),r=r.next;return A},n.prototype.mapReverse=function(e,t){t=t||this;for(var A=new n,r=this.tail;null!==r;)A.push(e.call(t,r.value,this)),r=r.prev;return A},n.prototype.reduce=function(e,t){var A,n=this.head;if(arguments.length>1)A=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");n=this.head.next,A=this.head.value}for(var r=0;null!==n;r++)A=e(A,n.value,r),n=n.next;return A},n.prototype.reduceReverse=function(e,t){var A,n=this.tail;if(arguments.length>1)A=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");n=this.tail.prev,A=this.tail.value}for(var r=this.length-1;null!==n;r--)A=e(A,n.value,r),n=n.prev;return A},n.prototype.toArray=function(){for(var e=new Array(this.length),t=0,A=this.head;null!==A;t++)e[t]=A.value,A=A.next;return e},n.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,A=this.tail;null!==A;t++)e[t]=A.value,A=A.prev;return e},n.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var A=new n;if(t<e||t<0)return A;e<0&&(e=0),t>this.length&&(t=this.length);for(var r=0,i=this.head;null!==i&&r<e;r++)i=i.next;for(;null!==i&&r<t;r++,i=i.next)A.push(i.value);return A},n.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var A=new n;if(t<e||t<0)return A;e<0&&(e=0),t>this.length&&(t=this.length);for(var r=this.length,i=this.tail;null!==i&&r>t;r--)i=i.prev;for(;null!==i&&r>e;r--,i=i.prev)A.push(i.value);return A},n.prototype.splice=function(e,t){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var A=0,n=this.head;null!==n&&A<e;A++)n=n.next;var i=[];for(A=0;n&&A<t;A++)i.push(n.value),n=this.removeNode(n);null===n&&(n=this.tail),n!==this.head&&n!==this.tail&&(n=n.prev);for(A=0;A<(arguments.length<=2?0:arguments.length-2);A++)n=r(this,n,A+2<2||arguments.length<=A+2?void 0:arguments[A+2]);return i},n.prototype.reverse=function(){for(var e=this.head,t=this.tail,A=e;null!==A;A=A.prev){var n=A.prev;A.prev=A.next,A.next=n}return this.head=t,this.tail=e,this};try{A(1129)(n)}catch(s){}},function(e,t,A){"use strict";var n=A(3);e.exports=function(e){e.prototype[Symbol.iterator]=n.mark((function e(){var t;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=this.head;case 1:if(!t){e.next=7;break}return e.next=4,t.value;case 4:t=t.next,e.next=1;break;case 7:case"end":return e.stop()}}),e,this)}))}},function(e,t,A){var n=A(145);e.exports=function(e,t){return new n(e,t).set.map((function(e){return e.map((function(e){return e.value})).join(" ").trim().split(" ")}))}},function(e,t,A){var n=A(106),r=A(145);e.exports=function(e,t,A){var i=null,o=null,a=null;try{a=new r(t,A)}catch(s){return null}return e.forEach((function(e){a.test(e)&&(i&&-1!==o.compare(e)||(o=new n(i=e,A)))})),i}},function(e,t,A){var n=A(106),r=A(145);e.exports=function(e,t,A){var i=null,o=null,a=null;try{a=new r(t,A)}catch(s){return null}return e.forEach((function(e){a.test(e)&&(i&&1!==o.compare(e)||(o=new n(i=e,A)))})),i}},function(e,t,A){var n=A(106),r=A(145),i=A(373);e.exports=function(e,t){e=new r(e,t);var A=new n("0.0.0");if(e.test(A))return A;if(A=new n("0.0.0-0"),e.test(A))return A;A=null;for(var o=function(t){var r=e.set[t],o=null;r.forEach((function(e){var t=new n(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":o&&!i(t,o)||(o=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: ".concat(e.operator))}})),!o||A&&!i(A,o)||(A=o)},a=0;a<e.set.length;++a)o(a);return A&&e.test(A)?A:null}},function(e,t,A){var n=A(145);e.exports=function(e,t){try{return new n(e,t).range||"*"}catch(A){return null}}},function(e,t,A){var n=A(506);e.exports=function(e,t,A){return n(e,t,">",A)}},function(e,t,A){var n=A(506);e.exports=function(e,t,A){return n(e,t,"<",A)}},function(e,t,A){var n=A(145);e.exports=function(e,t,A){return e=new n(e,A),t=new n(t,A),e.intersects(t)}},function(e,t,A){var n=A(1139),r=A(505),i=A(375),o=A(144);e.exports=function(e,t,A){var a,s=[],g=null,c=null,u=e.sort((function(e,t){return o(e,t,A)})),l=r(u);try{for(l.s();!(a=l.n()).done;){var I=a.value;i(I,t,A)?(c=I,g||(g=I)):(c&&s.push([g,c]),c=null,g=null)}}catch(y){l.e(y)}finally{l.f()}g&&s.push([g,null]);for(var C=[],h=0,f=s;h<f.length;h++){var d=n(f[h],2),B=d[0],p=d[1];B===p?C.push(B):p||B!==u[0]?p?B===u[0]?C.push("<=".concat(p)):C.push("".concat(B," - ").concat(p)):C.push(">=".concat(B)):C.push("*")}var E=C.join(" || "),Q="string"===typeof t.raw?t.raw:String(t);return E.length<Q.length?E:t}},function(e,t,A){var n=A(1140),r=A(1141),i=A(504),o=A(1142);e.exports=function(e,t){return n(e)||r(e,t)||i(e,t)||o()}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e)){var A=[],n=!0,r=!1,i=void 0;try{for(var o,a=e[Symbol.iterator]();!(n=(o=a.next()).done)&&(A.push(o.value),!t||A.length!==t);n=!0);}catch(s){r=!0,i=s}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A}}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},function(e,t,A){var n=A(505),r=A(145),i=A(374),o=i.ANY,a=A(375),s=A(144),g=function(e,t,A){if(e===t)return!0;if(1===e.length&&e[0].semver===o){if(1===t.length&&t[0].semver===o)return!0;e=A.includePrerelease?[new i(">=0.0.0-0")]:[new i(">=0.0.0")]}if(1===t.length&&t[0].semver===o){if(A.includePrerelease)return!0;t=[new i(">=0.0.0")]}var r,g,l,I,C=new Set,h=n(e);try{for(h.s();!(l=h.n()).done;){var f=l.value;">"===f.operator||">="===f.operator?r=c(r,f,A):"<"===f.operator||"<="===f.operator?g=u(g,f,A):C.add(f.semver)}}catch(k){h.e(k)}finally{h.f()}if(C.size>1)return null;if(r&&g){if((I=s(r.semver,g.semver,A))>0)return null;if(0===I&&(">="!==r.operator||"<="!==g.operator))return null}var d,B,p,E,Q,y=n(C);try{for(y.s();!(d=y.n()).done;){var v=d.value;if(r&&!a(v,String(r),A))return null;if(g&&!a(v,String(g),A))return null;var m,b=n(t);try{for(b.s();!(m=b.n()).done;){var w=m.value;if(!a(v,String(w),A))return!1}}catch(k){b.e(k)}finally{b.f()}return!0}}catch(k){y.e(k)}finally{y.f()}var S=!(!g||A.includePrerelease||!g.semver.prerelease.length)&&g.semver,F=!(!r||A.includePrerelease||!r.semver.prerelease.length)&&r.semver;S&&1===S.prerelease.length&&"<"===g.operator&&0===S.prerelease[0]&&(S=!1);var R,D=n(t);try{for(D.s();!(R=D.n()).done;){var G=R.value;if(Q=Q||">"===G.operator||">="===G.operator,E=E||"<"===G.operator||"<="===G.operator,r)if(F&&G.semver.prerelease&&G.semver.prerelease.length&&G.semver.major===F.major&&G.semver.minor===F.minor&&G.semver.patch===F.patch&&(F=!1),">"===G.operator||">="===G.operator){if((B=c(r,G,A))===G&&B!==r)return!1}else if(">="===r.operator&&!a(r.semver,String(G),A))return!1;if(g)if(S&&G.semver.prerelease&&G.semver.prerelease.length&&G.semver.major===S.major&&G.semver.minor===S.minor&&G.semver.patch===S.patch&&(S=!1),"<"===G.operator||"<="===G.operator){if((p=u(g,G,A))===G&&p!==g)return!1}else if("<="===g.operator&&!a(g.semver,String(G),A))return!1;if(!G.operator&&(g||r)&&0!==I)return!1}}catch(k){D.e(k)}finally{D.f()}return!(r&&E&&!g&&0!==I)&&(!(g&&Q&&!r&&0!==I)&&(!F&&!S))},c=function(e,t,A){if(!e)return t;var n=s(e.semver,t.semver,A);return n>0?e:n<0||">"===t.operator&&">="===e.operator?t:e},u=function(e,t,A){if(!e)return t;var n=s(e.semver,t.semver,A);return n<0?e:n>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e===t)return!0;e=new r(e,A),t=new r(t,A);var i,o=!1,a=n(e.set);try{e:for(a.s();!(i=a.n()).done;){var s,c=i.value,u=n(t.set);try{for(u.s();!(s=u.n()).done;){var l=s.value,I=g(c,l,A);if(o=o||null!==I,I)continue e}}catch(C){u.e(C)}finally{u.f()}if(o)return!1}}catch(C){a.e(C)}finally{a.f()}return!0}},function(e,t){Array.prototype.flat||Object.defineProperty(Array.prototype,"flat",{configurable:!0,value:function e(){var t=isNaN(arguments[0])?1:Number(arguments[0]);return t?Array.prototype.reduce.call(this,(function(A,n){return Array.isArray(n)?A.push.apply(A,e.call(n,t-1)):A.push(n),A}),[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,"flatMap",{configurable:!0,value:function(e){return Array.prototype.map.apply(this,arguments).flat()},writable:!0})},,function(e,t,A){},function(e,t,A){},,function(e,t,A){"use strict";A.r(t);var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),r=new Uint8Array(16);function i(){if(!n)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(r)}for(var o=[],a=0;a<256;++a)o[a]=(a+256).toString(16).substr(1);var s,g,c=function(e,t){var A=t||0,n=o;return[n[e[A++]],n[e[A++]],n[e[A++]],n[e[A++]],"-",n[e[A++]],n[e[A++]],"-",n[e[A++]],n[e[A++]],"-",n[e[A++]],n[e[A++]],"-",n[e[A++]],n[e[A++]],n[e[A++]],n[e[A++]],n[e[A++]],n[e[A++]]].join("")},u=0,l=0;var I=function(e,t,A){var n=t&&A||0,r=t||[],o=(e=e||{}).node||s,a=void 0!==e.clockseq?e.clockseq:g;if(null==o||null==a){var I=e.random||(e.rng||i)();null==o&&(o=s=[1|I[0],I[1],I[2],I[3],I[4],I[5]]),null==a&&(a=g=16383&(I[6]<<8|I[7]))}var C=void 0!==e.msecs?e.msecs:(new Date).getTime(),h=void 0!==e.nsecs?e.nsecs:l+1,f=C-u+(h-l)/1e4;if(f<0&&void 0===e.clockseq&&(a=a+1&16383),(f<0||C>u)&&void 0===e.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");u=C,l=h,g=a;var d=(1e4*(268435455&(C+=122192928e5))+h)%4294967296;r[n++]=d>>>24&255,r[n++]=d>>>16&255,r[n++]=d>>>8&255,r[n++]=255&d;var B=C/4294967296*1e4&268435455;r[n++]=B>>>8&255,r[n++]=255&B,r[n++]=B>>>24&15|16,r[n++]=B>>>16&255,r[n++]=a>>>8|128,r[n++]=255&a;for(var p=0;p<6;++p)r[n+p]=o[p];return t||c(r)};var C=function(e,t,A){var n=function(e,n,r,i){var o=r&&i||0;if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var t=new Array(e.length),A=0;A<e.length;A++)t[A]=e.charCodeAt(A);return t}(e)),"string"==typeof n&&(n=function(e){var t=[];return e.replace(/[a-fA-F0-9]{2}/g,(function(e){t.push(parseInt(e,16))})),t}(n)),!Array.isArray(e))throw TypeError("value must be an array of bytes");if(!Array.isArray(n)||16!==n.length)throw TypeError("namespace must be uuid string or an Array of 16 byte values");var a=A(n.concat(e));if(a[6]=15&a[6]|t,a[8]=63&a[8]|128,r)for(var s=0;s<16;++s)r[o+s]=a[s];return r||c(a)};try{n.name=e}catch(r){}return n.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",n.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",n};function h(e,t){var A=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(A>>16)<<16|65535&A}function f(e,t,A,n,r,i){return h((o=h(h(t,e),h(n,i)))<<(a=r)|o>>>32-a,A);var o,a}function d(e,t,A,n,r,i,o){return f(t&A|~t&n,e,t,r,i,o)}function B(e,t,A,n,r,i,o){return f(t&n|A&~n,e,t,r,i,o)}function p(e,t,A,n,r,i,o){return f(t^A^n,e,t,r,i,o)}function E(e,t,A,n,r,i,o){return f(A^(t|~n),e,t,r,i,o)}var Q=C("v3",48,(function(e){if("string"==typeof e){var t=unescape(encodeURIComponent(e));e=new Array(t.length);for(var A=0;A<t.length;A++)e[A]=t.charCodeAt(A)}return function(e){var t,A,n,r=[],i=32*e.length;for(t=0;t<i;t+=8)A=e[t>>5]>>>t%32&255,n=parseInt("0123456789abcdef".charAt(A>>>4&15)+"0123456789abcdef".charAt(15&A),16),r.push(n);return r}(function(e,t){var A,n,r,i,o;e[t>>5]|=128<<t%32,e[14+(t+64>>>9<<4)]=t;var a=1732584193,s=-271733879,g=-1732584194,c=271733878;for(A=0;A<e.length;A+=16)n=a,r=s,i=g,o=c,a=d(a,s,g,c,e[A],7,-680876936),c=d(c,a,s,g,e[A+1],12,-389564586),g=d(g,c,a,s,e[A+2],17,606105819),s=d(s,g,c,a,e[A+3],22,-1044525330),a=d(a,s,g,c,e[A+4],7,-176418897),c=d(c,a,s,g,e[A+5],12,1200080426),g=d(g,c,a,s,e[A+6],17,-1473231341),s=d(s,g,c,a,e[A+7],22,-45705983),a=d(a,s,g,c,e[A+8],7,1770035416),c=d(c,a,s,g,e[A+9],12,-1958414417),g=d(g,c,a,s,e[A+10],17,-42063),s=d(s,g,c,a,e[A+11],22,-1990404162),a=d(a,s,g,c,e[A+12],7,1804603682),c=d(c,a,s,g,e[A+13],12,-40341101),g=d(g,c,a,s,e[A+14],17,-1502002290),s=d(s,g,c,a,e[A+15],22,1236535329),a=B(a,s,g,c,e[A+1],5,-165796510),c=B(c,a,s,g,e[A+6],9,-1069501632),g=B(g,c,a,s,e[A+11],14,643717713),s=B(s,g,c,a,e[A],20,-373897302),a=B(a,s,g,c,e[A+5],5,-701558691),c=B(c,a,s,g,e[A+10],9,38016083),g=B(g,c,a,s,e[A+15],14,-660478335),s=B(s,g,c,a,e[A+4],20,-405537848),a=B(a,s,g,c,e[A+9],5,568446438),c=B(c,a,s,g,e[A+14],9,-1019803690),g=B(g,c,a,s,e[A+3],14,-187363961),s=B(s,g,c,a,e[A+8],20,1163531501),a=B(a,s,g,c,e[A+13],5,-1444681467),c=B(c,a,s,g,e[A+2],9,-51403784),g=B(g,c,a,s,e[A+7],14,1735328473),s=B(s,g,c,a,e[A+12],20,-1926607734),a=p(a,s,g,c,e[A+5],4,-378558),c=p(c,a,s,g,e[A+8],11,-2022574463),g=p(g,c,a,s,e[A+11],16,1839030562),s=p(s,g,c,a,e[A+14],23,-35309556),a=p(a,s,g,c,e[A+1],4,-1530992060),c=p(c,a,s,g,e[A+4],11,1272893353),g=p(g,c,a,s,e[A+7],16,-155497632),s=p(s,g,c,a,e[A+10],23,-1094730640),a=p(a,s,g,c,e[A+13],4,681279174),c=p(c,a,s,g,e[A],11,-358537222),g=p(g,c,a,s,e[A+3],16,-722521979),s=p(s,g,c,a,e[A+6],23,76029189),a=p(a,s,g,c,e[A+9],4,-640364487),c=p(c,a,s,g,e[A+12],11,-421815835),g=p(g,c,a,s,e[A+15],16,530742520),s=p(s,g,c,a,e[A+2],23,-995338651),a=E(a,s,g,c,e[A],6,-198630844),c=E(c,a,s,g,e[A+7],10,1126891415),g=E(g,c,a,s,e[A+14],15,-1416354905),s=E(s,g,c,a,e[A+5],21,-57434055),a=E(a,s,g,c,e[A+12],6,1700485571),c=E(c,a,s,g,e[A+3],10,-1894986606),g=E(g,c,a,s,e[A+10],15,-1051523),s=E(s,g,c,a,e[A+1],21,-2054922799),a=E(a,s,g,c,e[A+8],6,1873313359),c=E(c,a,s,g,e[A+15],10,-30611744),g=E(g,c,a,s,e[A+6],15,-1560198380),s=E(s,g,c,a,e[A+13],21,1309151649),a=E(a,s,g,c,e[A+4],6,-145523070),c=E(c,a,s,g,e[A+11],10,-1120210379),g=E(g,c,a,s,e[A+2],15,718787259),s=E(s,g,c,a,e[A+9],21,-343485551),a=h(a,n),s=h(s,r),g=h(g,i),c=h(c,o);return[a,s,g,c]}(function(e){var t,A=[];for(A[(e.length>>2)-1]=void 0,t=0;t<A.length;t+=1)A[t]=0;var n=8*e.length;for(t=0;t<n;t+=8)A[t>>5]|=(255&e[t/8])<<t%32;return A}(e),8*e.length))}));var y=function(e,t,A){var n=t&&A||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var r=(e=e||{}).random||(e.rng||i)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t)for(var o=0;o<16;++o)t[n+o]=r[o];return t||c(r)};function v(e,t,A,n){switch(e){case 0:return t&A^~t&n;case 1:return t^A^n;case 2:return t&A^t&n^A&n;case 3:return t^A^n}}function m(e,t){return e<<t|e>>>32-t}var b=C("v5",80,(function(e){var t=[1518500249,1859775393,2400959708,3395469782],A=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var n=unescape(encodeURIComponent(e));e=new Array(n.length);for(var r=0;r<n.length;r++)e[r]=n.charCodeAt(r)}e.push(128);var i=e.length/4+2,o=Math.ceil(i/16),a=new Array(o);for(r=0;r<o;r++){a[r]=new Array(16);for(var s=0;s<16;s++)a[r][s]=e[64*r+4*s]<<24|e[64*r+4*s+1]<<16|e[64*r+4*s+2]<<8|e[64*r+4*s+3]}for(a[o-1][14]=8*(e.length-1)/Math.pow(2,32),a[o-1][14]=Math.floor(a[o-1][14]),a[o-1][15]=8*(e.length-1)&4294967295,r=0;r<o;r++){for(var g=new Array(80),c=0;c<16;c++)g[c]=a[r][c];for(c=16;c<80;c++)g[c]=m(g[c-3]^g[c-8]^g[c-14]^g[c-16],1);var u=A[0],l=A[1],I=A[2],C=A[3],h=A[4];for(c=0;c<80;c++){var f=Math.floor(c/20),d=m(u,5)+v(f,l,I,C)+h+t[f]+g[c]>>>0;h=C,C=I,I=m(l,30)>>>0,l=u,u=d}A[0]=A[0]+u>>>0,A[1]=A[1]+l>>>0,A[2]=A[2]+I>>>0,A[3]=A[3]+C>>>0,A[4]=A[4]+h>>>0}return[A[0]>>24&255,A[0]>>16&255,A[0]>>8&255,255&A[0],A[1]>>24&255,A[1]>>16&255,A[1]>>8&255,255&A[1],A[2]>>24&255,A[2]>>16&255,A[2]>>8&255,255&A[2],A[3]>>24&255,A[3]>>16&255,A[3]>>8&255,255&A[3],A[4]>>24&255,A[4]>>16&255,A[4]>>8&255,255&A[4]]}));A.d(t,"v1",(function(){return I})),A.d(t,"v3",(function(){return Q})),A.d(t,"v4",(function(){return y})),A.d(t,"v5",(function(){return b}))},function(e,t,A){"use strict";A.r(t);var n=A(208);function r(e){for(var t,A,n=function(e){if(Array.isArray(e))return e;if("Feature"===e.type){if(null!==e.geometry)return e.geometry.coordinates}else if(e.coordinates)return e.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}(e),r=0,i=1;i<n.length;)t=A||n[0],r+=((A=n[i])[0]-t[0])*(A[1]+t[1]),i++;return r>0}function i(e,t){void 0===t&&(t={});var A={type:"FeatureCollection"};return t.id&&(A.id=t.id),t.bbox&&(A.bbox=t.bbox),A.features=e,A}function o(e){return!!e&&e.constructor===Object}function a(e,t){if("Feature"===e.type)t(e,0);else if("FeatureCollection"===e.type)for(var A=0;A<e.features.length&&!1!==t(e.features[A],A);A++);}function s(e,t){var A,n,r,i,o,a,s,g,c,u,l=0,I="FeatureCollection"===e.type,C="Feature"===e.type,h=I?e.features.length:1;for(A=0;A<h;A++){for(a=I?e.features[A].geometry:C?e.geometry:e,g=I?e.features[A].properties:C?e.properties:{},c=I?e.features[A].bbox:C?e.bbox:void 0,u=I?e.features[A].id:C?e.id:void 0,o=(s=!!a&&"GeometryCollection"===a.type)?a.geometries.length:1,r=0;r<o;r++)if(null!==(i=s?a.geometries[r]:a))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,l,g,c,u))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],l,g,c,u))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,l,g,c,u))return!1;l++}}function g(e){if(Array.isArray(e))return e;if("Feature"===e.type){if(null!==e.geometry)return e.geometry.coordinates}else if(e.coordinates)return e.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function c(e,t){switch("Feature"===e.type?e.geometry.type:e.type){case"GeometryCollection":return s(e,(function(e){c(e,t)})),e;case"LineString":return u(g(e),t),e;case"Polygon":return l(g(e),t),e;case"MultiLineString":return g(e).forEach((function(e){u(e,t)})),e;case"MultiPolygon":return g(e).forEach((function(e){l(e,t)})),e;case"Point":case"MultiPoint":return e}}function u(e,t){r(e)===t&&e.reverse()}function l(e,t){r(e[0])!==t&&e[0].reverse();for(var A=1;A<e.length;A++)r(e[A])===t&&e[A].reverse()}t.default=function(e,t){if(!o(t=t||{}))throw new Error("options is invalid");var A=t.reverse||!1,r=t.mutate||!1;if(!e)throw new Error("<geojson> is required");if("boolean"!==typeof A)throw new Error("<reverse> must be a boolean");if("boolean"!==typeof r)throw new Error("<mutate> must be a boolean");!1===r&&(e=Object(n.a)(e));var g=[];switch(e.type){case"GeometryCollection":return s(e,(function(e){c(e,A)})),e;case"FeatureCollection":return a(e,(function(e){a(c(e,A),(function(e){g.push(e)}))})),i(g)}return c(e,A)}},function(e,t,A){"use strict";A.r(t);var n=A(208),r=A(270);function i(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function o(e,t,A){if(void 0===A&&(A={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!a(e[0])||!a(e[1]))throw new Error("coordinates must contain numbers");return i({type:"Point",coordinates:e},t,A)}function a(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function s(e){return!!e&&e.constructor===Object}function g(e,t,A){if(null!==e)for(var n,r,i,o,a,s,c,u,l=0,I=0,C=e.type,h="FeatureCollection"===C,f="Feature"===C,d=h?e.features.length:1,B=0;B<d;B++){a=(u=!!(c=h?e.features[B].geometry:f?e.geometry:e)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var p=0;p<a;p++){var E=0,Q=0;if(null!==(o=u?c.geometries[p]:c)){s=o.coordinates;var y=o.type;switch(l=!A||"Polygon"!==y&&"MultiPolygon"!==y?0:1,y){case null:break;case"Point":if(!1===t(s,I,B,E,Q))return!1;I++,E++;break;case"LineString":case"MultiPoint":for(n=0;n<s.length;n++){if(!1===t(s[n],I,B,E,Q))return!1;I++,"MultiPoint"===y&&E++}"LineString"===y&&E++;break;case"Polygon":case"MultiLineString":for(n=0;n<s.length;n++){for(r=0;r<s[n].length-l;r++){if(!1===t(s[n][r],I,B,E,Q))return!1;I++}"MultiLineString"===y&&E++,"Polygon"===y&&Q++}"Polygon"===y&&E++;break;case"MultiPolygon":for(n=0;n<s.length;n++){for(Q=0,r=0;r<s[n].length;r++){for(i=0;i<s[n][r].length-l;i++){if(!1===t(s[n][r][i],I,B,E,Q))return!1;I++}Q++}E++}break;case"GeometryCollection":for(n=0;n<o.geometries.length;n++)if(!1===g(o.geometries[n],t,A))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function c(e,t){if("Feature"===e.type)t(e,0);else if("FeatureCollection"===e.type)for(var A=0;A<e.features.length&&!1!==t(e.features[A],A);A++);}var u=function(e,t){void 0===t&&(t={});var A=0,n=0,r=0;return g(e,(function(e){A+=e[0],n+=e[1],r++}),!0),o([A/r,n/r],t.properties)};function l(e){var t=[1/0,1/0,-1/0,-1/0];return g(e,(function(e){t[0]>e[0]&&(t[0]=e[0]),t[1]>e[1]&&(t[1]=e[1]),t[2]<e[0]&&(t[2]=e[0]),t[3]<e[1]&&(t[3]=e[1])})),t}l.default=l;var I=l,C=A(424),h=A(285),f=A(179);function d(e,t,A){var n,i="Point"===("FeatureCollection"===(n=e).type?"FeatureCollection":"GeometryCollection"===n.type?"GeometryCollection":"Feature"===n.type&&null!==n.geometry?n.geometry.type:n.type);return A=function(e,t){void 0!==t&&null!==t||(t="centroid");if(Array.isArray(t)||"object"===typeof t)return function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")}(t);var A=e.bbox?e.bbox:I(e),n=A[0],i=A[1],a=A[2],s=A[3];switch(t){case"sw":case"southwest":case"westsouth":case"bottomleft":return o([n,i]);case"se":case"southeast":case"eastsouth":case"bottomright":return o([a,i]);case"nw":case"northwest":case"westnorth":case"topleft":return o([n,s]);case"ne":case"northeast":case"eastnorth":case"topright":return o([a,s]);case"center":return Object(r.default)(e);case void 0:case null:case"centroid":return u(e);default:throw new Error("invalid origin")}}(e,A),1===t||i||g(e,(function(e){var n=Object(h.a)(A,e),r=Object(C.a)(A,e),i=n*t,o=function(e){if(Array.isArray(e))return e;if("Feature"===e.type){if(null!==e.geometry)return e.geometry.coordinates}else if(e.coordinates)return e.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}(Object(f.a)(A,i,r));e[0]=o[0],e[1]=o[1],3===e.length&&(e[2]*=t)})),e}t.default=function(e,t,A){if(!s(A=A||{}))throw new Error("options is invalid");var r=A.origin,i=A.mutate;if(!e)throw new Error("geojson required");if("number"!==typeof t||0===t)throw new Error("invalid factor");var o=Array.isArray(r)||"object"===typeof r;return!0!==i&&(e=Object(n.a)(e)),"FeatureCollection"!==e.type||o?d(e,t,r):(c(e,(function(A,n){e.features[n]=d(A,t,r)})),e)}},function(e,t,A){"use strict";A.r(t);var n={centimeters:637100880,centimetres:637100880,degrees:6371008.8/111325,feet:20902260.511392,inches:6371008.8*39.37,kilometers:6371.0088,kilometres:6371.0088,meters:6371008.8,metres:6371008.8,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:6371008.8/1852,radians:1,yards:6371008.8*1.0936};function r(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function i(e,t,A){if(void 0===A&&(A={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!c(e[0])||!c(e[1]))throw new Error("coordinates must contain numbers");return r({type:"Point",coordinates:e},t,A)}function o(e,t){void 0===t&&(t="kilometers");var A=n[t];if(!A)throw new Error(t+" units is invalid");return e*A}function a(e,t){void 0===t&&(t="kilometers");var A=n[t];if(!A)throw new Error(t+" units is invalid");return e/A}function s(e){return 180*(e%(2*Math.PI))/Math.PI}function g(e){return e%360*Math.PI/180}function c(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function u(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function l(e,t,A){if(void 0===A&&(A={}),!0===A.final)return function(e,t){var A=l(t,e);return A=(A+180)%360}(e,t);var n=u(e),r=u(t),i=g(n[0]),o=g(r[0]),a=g(n[1]),c=g(r[1]),I=Math.sin(o-i)*Math.cos(c),C=Math.cos(a)*Math.sin(c)-Math.sin(a)*Math.cos(c)*Math.cos(o-i);return s(Math.atan2(I,C))}function I(e,t,A,n){void 0===n&&(n={});var r=u(e),o=g(r[0]),c=g(r[1]),l=g(A),I=a(t,n.units),C=Math.asin(Math.sin(c)*Math.cos(I)+Math.cos(c)*Math.sin(I)*Math.cos(l));return i([s(o+Math.atan2(Math.sin(l)*Math.sin(I)*Math.cos(c),Math.cos(I)-Math.sin(c)*Math.sin(C))),s(C)],n.properties)}var C=function(e,t,A){void 0===A&&(A={});var n=u(e),r=u(t),i=g(r[1]-n[1]),a=g(r[0]-n[0]),s=g(n[1]),c=g(r[1]),l=Math.pow(Math.sin(i/2),2)+Math.pow(Math.sin(a/2),2)*Math.cos(s)*Math.cos(c);return o(2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l)),A.units)};function h(e,t,A){void 0===A&&(A={});for(var n,r=("Feature"===(n=e).type?n.geometry:n).coordinates,o=0,a=0;a<r.length&&!(t>=o&&a===r.length-1);a++){if(o>=t){var s=t-o;if(s){var g=l(r[a],r[a-1])-180;return I(r[a],s,g,A)}return i(r[a])}o+=C(r[a],r[a+1],A)}return i(r[r.length-1])}A.d(t,"default",(function(){return h}))},function(e,t,A){"use strict";A.r(t);function n(e){return!!e&&e.constructor===Object}function r(e,t,A){if(null!==e)for(var n,i,o,a,s,g,c,u,l=0,I=0,C=e.type,h="FeatureCollection"===C,f="Feature"===C,d=h?e.features.length:1,B=0;B<d;B++){s=(u=!!(c=h?e.features[B].geometry:f?e.geometry:e)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var p=0;p<s;p++){var E=0,Q=0;if(null!==(a=u?c.geometries[p]:c)){g=a.coordinates;var y=a.type;switch(l=!A||"Polygon"!==y&&"MultiPolygon"!==y?0:1,y){case null:break;case"Point":if(!1===t(g,I,B,E,Q))return!1;I++,E++;break;case"LineString":case"MultiPoint":for(n=0;n<g.length;n++){if(!1===t(g[n],I,B,E,Q))return!1;I++,"MultiPoint"===y&&E++}"LineString"===y&&E++;break;case"Polygon":case"MultiLineString":for(n=0;n<g.length;n++){for(i=0;i<g[n].length-l;i++){if(!1===t(g[n][i],I,B,E,Q))return!1;I++}"MultiLineString"===y&&E++,"Polygon"===y&&Q++}"Polygon"===y&&E++;break;case"MultiPolygon":for(n=0;n<g.length;n++){for(Q=0,i=0;i<g[n].length;i++){for(o=0;o<g[n][i].length-l;o++){if(!1===t(g[n][i][o],I,B,E,Q))return!1;I++}Q++}E++}break;case"GeometryCollection":for(n=0;n<a.geometries.length;n++)if(!1===r(a.geometries[n],t,A))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}var i=A(208),o=A(179);t.default=function(e,t,A,a){if(!n(a=a||{}))throw new Error("options is invalid");var s=a.units,g=a.zTranslation,c=a.mutate;if(!e)throw new Error("geojson is required");if(void 0===t||null===t||isNaN(t))throw new Error("distance is required");if(g&&"number"!==typeof g&&isNaN(g))throw new Error("zTranslation is not a number");if(g=void 0!==g?g:0,0===t&&0===g)return e;if(void 0===A||null===A||isNaN(A))throw new Error("direction is required");return t<0&&(t=-t,A+=180),!1!==c&&void 0!==c||(e=Object(i.a)(e)),r(e,(function(e){var n=function(e){if(Array.isArray(e))return e;if("Feature"===e.type){if(null!==e.geometry)return e.geometry.coordinates}else if(e.coordinates)return e.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}(Object(o.a)(e,t,A,{units:s}));e[0]=n[0],e[1]=n[1],g&&3===e.length&&(e[2]+=g)})),e}},function(e,t,A){"use strict";A.r(t);var n=A(283),r=A.n(n);function i(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function o(e,t,A){void 0===A&&(A={});for(var n=0,r=e;n<r.length;n++){var o=r[n];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var a=0;a<o[o.length-1].length;a++)if(o[o.length-1][a]!==o[0][a])throw new Error("First and last Position are not equivalent.")}return i({type:"Polygon",coordinates:e},t,A)}function a(e,t,A){return void 0===A&&(A={}),i({type:"MultiPolygon",coordinates:e},t,A)}function s(e){return"Feature"===e.type?e.geometry:e}t.default=function(e,t,A){void 0===A&&(A={});var n=s(e),i=s(t),g=r.a.union(n.coordinates,i.coordinates);return 0===g.length?null:1===g.length?o(g[0],A.properties):a(g,A.properties)}},function(e,t,A){"use strict";A.r(t);function n(e,t,A){void 0===A&&(A={});var n={type:"Feature"};return(0===A.id||A.id)&&(n.id=A.id),A.bbox&&(n.bbox=A.bbox),n.properties=t||{},n.geometry=e,n}function r(e,t,A){void 0===A&&(A={});for(var r=0,i=e;r<i.length;r++){var o=i[r];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var a=0;a<o[o.length-1].length;a++)if(o[o.length-1][a]!==o[0][a])throw new Error("First and last Position are not equivalent.")}return n({type:"Polygon",coordinates:e},t,A)}function i(e,t,A){return void 0===A&&(A={}),n({type:"MultiPolygon",coordinates:e},t,A)}function o(e){return"Feature"===e.type?e.geometry:e}var a=A(283),s=A.n(a);function g(e,t,A){void 0===A&&(A={});var n=o(e),a=o(t),g=s.a.intersection(n.coordinates,a.coordinates);return 0===g.length?null:1===g.length?r(g[0],A.properties):i(g,A.properties)}A.d(t,"default",(function(){return g}))},function(e,t,A){"use strict";A.r(t);function n(e,t){var A,n,r,i,o,a,s,g,c,u,l=0,I="FeatureCollection"===e.type,C="Feature"===e.type,h=I?e.features.length:1;for(A=0;A<h;A++){for(a=I?e.features[A].geometry:C?e.geometry:e,g=I?e.features[A].properties:C?e.properties:{},c=I?e.features[A].bbox:C?e.bbox:void 0,u=I?e.features[A].id:C?e.id:void 0,o=(s=!!a&&"GeometryCollection"===a.type)?a.geometries.length:1,r=0;r<o;r++)if(null!==(i=s?a.geometries[r]:a))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,l,g,c,u))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],l,g,c,u))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,l,g,c,u))return!1;l++}}A.d(t,"default",(function(){return r}));function r(e){return function(e,t,A){var r=A;return n(e,(function(e,n,i,o,a){r=0===n&&void 0===A?e:t(r,e,n,i,o,a)})),r}(e,(function(e,t){return e+function(e){var t,A=0;switch(e.type){case"Polygon":return i(e.coordinates);case"MultiPolygon":for(t=0;t<e.coordinates.length;t++)A+=i(e.coordinates[t]);return A;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}(t)}),0)}function i(e){var t=0;if(e&&e.length>0){t+=Math.abs(o(e[0]));for(var A=1;A<e.length;A++)t-=Math.abs(o(e[A]))}return t}function o(e){var t,A,n,r,i,o,s=0,g=e.length;if(g>2){for(o=0;o<g;o++)o===g-2?(n=g-2,r=g-1,i=0):o===g-1?(n=g-1,r=0,i=1):(n=o,r=o+1,i=o+2),t=e[n],A=e[r],s+=(a(e[i][0])-a(t[0]))*Math.sin(a(A[1]));s=6378137*s*6378137/2}return s}function a(e){return e*Math.PI/180}},function(e,t,A){"use strict";A.d(t,"a",(function(){return o}));var n=A(14),r=A(220);function i(e){return e&&"object"===Object(r.a)(e)&&e.constructor===Object}function o(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{clone:!0},r=A.clone?Object(n.a)({},e):e;return i(e)&&i(t)&&Object.keys(t).forEach((function(n){"__proto__"!==n&&(i(t[n])&&n in e?r[n]=o(e[n],t[n],A):r[n]=t[n])})),r}},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n={pickingSelectedColor:null,pickingHighlightColor:new Uint8Array([0,255,255,255]),pickingActive:!1,pickingAttribute:!1};var r={name:"picking",vs:"uniform bool picking_uActive;\nuniform bool picking_uAttribute;\nuniform vec3 picking_uSelectedColor;\nuniform bool picking_uSelectedColorValid;\n\nout vec4 picking_vRGBcolor_Avalid;\n\nconst float COLOR_SCALE = 1. / 255.;\n\nbool picking_isColorValid(vec3 color) {\n return dot(color, vec3(1.0)) > 0.001;\n}\n\nbool isVertexPicked(vec3 vertexColor) {\n return\n picking_uSelectedColorValid &&\n !picking_isColorValid(abs(vertexColor - picking_uSelectedColor));\n}\n\nvoid picking_setPickingColor(vec3 pickingColor) {\n if (picking_uActive) {\n picking_vRGBcolor_Avalid.a = float(picking_isColorValid(pickingColor));\n\n if (!picking_uAttribute) {\n picking_vRGBcolor_Avalid.rgb = pickingColor * COLOR_SCALE;\n }\n } else {\n picking_vRGBcolor_Avalid.a = float(isVertexPicked(pickingColor));\n }\n}\n\nvoid picking_setPickingAttribute(float value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.r = value;\n }\n}\nvoid picking_setPickingAttribute(vec2 value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.rg = value;\n }\n}\nvoid picking_setPickingAttribute(vec3 value) {\n if (picking_uAttribute) {\n picking_vRGBcolor_Avalid.rgb = value;\n }\n}\n",fs:"uniform bool picking_uActive;\nuniform vec3 picking_uSelectedColor;\nuniform vec4 picking_uHighlightColor;\n\nin vec4 picking_vRGBcolor_Avalid;\nvec4 picking_filterHighlightColor(vec4 color) {\n if (picking_uActive) {\n return color;\n }\n bool selected = bool(picking_vRGBcolor_Avalid.a);\n\n if (selected) {\n float highLightAlpha = picking_uHighlightColor.a;\n float blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n float highLightRatio = highLightAlpha / blendedAlpha;\n\n vec3 blendedRGB = mix(color.rgb, picking_uHighlightColor.rgb, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n } else {\n return color;\n }\n}\nvec4 picking_filterPickingColor(vec4 color) {\n if (picking_uActive) {\n if (picking_vRGBcolor_Avalid.a == 0.0) {\n discard;\n }\n return picking_vRGBcolor_Avalid;\n }\n return color;\n}\nvec4 picking_filterColor(vec4 color) {\n vec4 highightColor = picking_filterHighlightColor(color);\n return picking_filterPickingColor(highightColor);\n}\n\n",getUniforms:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n,t={};if(void 0!==e.pickingSelectedColor)if(e.pickingSelectedColor){var A=e.pickingSelectedColor.slice(0,3);t.picking_uSelectedColorValid=1,t.picking_uSelectedColor=A}else t.picking_uSelectedColorValid=0;if(e.pickingHighlightColor){var r=Array.from(e.pickingHighlightColor,(function(e){return e/255}));Number.isFinite(r[3])||(r[3]=1),t.picking_uHighlightColor=r}return void 0!==e.pickingActive&&(t.picking_uActive=Boolean(e.pickingActive),t.picking_uAttribute=Boolean(e.pickingAttribute)),t}}},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(28),s=A(60),g=A(433),c=A(40),u=i.forwardRef((function(e,t){var A=e.edge,a=void 0!==A&&A,s=e.children,u=e.classes,l=e.className,I=e.color,C=void 0===I?"default":I,h=e.disabled,f=void 0!==h&&h,d=e.disableFocusRipple,B=void 0!==d&&d,p=e.size,E=void 0===p?"medium":p,Q=Object(r.a)(e,["edge","children","classes","className","color","disabled","disableFocusRipple","size"]);return i.createElement(g.a,Object(n.a)({className:Object(o.a)(u.root,l,"default"!==C&&u["color".concat(Object(c.a)(C))],f&&u.disabled,"small"===E&&u["size".concat(Object(c.a)(E))],{start:u.edgeStart,end:u.edgeEnd}[a]),centerRipple:!0,focusRipple:!B,disabled:f,ref:t},Q),i.createElement("span",{className:u.label},s))}));t.a=Object(a.a)((function(e){return{root:{textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:12,borderRadius:"50%",overflow:"visible",color:e.palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{backgroundColor:Object(s.a)(e.palette.action.active,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{backgroundColor:"transparent",color:e.palette.action.disabled}},edgeStart:{marginLeft:-12,"$sizeSmall&":{marginLeft:-3}},edgeEnd:{marginRight:-12,"$sizeSmall&":{marginRight:-3}},colorInherit:{color:"inherit"},colorPrimary:{color:e.palette.primary.main,"&:hover":{backgroundColor:Object(s.a)(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},colorSecondary:{color:e.palette.secondary.main,"&:hover":{backgroundColor:Object(s.a)(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},disabled:{},sizeSmall:{padding:3,fontSize:e.typography.pxToRem(18)},label:{width:"100%",display:"flex",alignItems:"inherit",justifyContent:"inherit"}}}),{name:"MuiIconButton"})(u)},function(e,t,A){"use strict";var n=A(0),r=A(39),i=(A(13),A(136)),o=A(51);var a="undefined"!==typeof window?n.useLayoutEffect:n.useEffect,s=n.forwardRef((function(e,t){var A=e.children,s=e.container,g=e.disablePortal,c=void 0!==g&&g,u=e.onRendered,l=n.useState(null),I=l[0],C=l[1],h=Object(o.a)(n.isValidElement(A)?A.ref:null,t);return a((function(){c||C(function(e){return e="function"===typeof e?e():e,r.findDOMNode(e)}(s)||document.body)}),[s,c]),a((function(){if(I&&!c)return Object(i.a)(t,I),function(){Object(i.a)(t,null)}}),[t,I,c]),a((function(){u&&(I||c)&&u()}),[u,I,c]),c?n.isValidElement(A)?n.cloneElement(A,{ref:h}):A:I?r.createPortal(A,I):I}));t.a=s},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(28),s=A(40),g={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"},c=i.forwardRef((function(e,t){var A=e.align,a=void 0===A?"inherit":A,c=e.classes,u=e.className,l=e.color,I=void 0===l?"initial":l,C=e.component,h=e.display,f=void 0===h?"initial":h,d=e.gutterBottom,B=void 0!==d&&d,p=e.noWrap,E=void 0!==p&&p,Q=e.paragraph,y=void 0!==Q&&Q,v=e.variant,m=void 0===v?"body1":v,b=e.variantMapping,w=void 0===b?g:b,S=Object(r.a)(e,["align","classes","className","color","component","display","gutterBottom","noWrap","paragraph","variant","variantMapping"]),F=C||(y?"p":w[m]||g[m])||"span";return i.createElement(F,Object(n.a)({className:Object(o.a)(c.root,u,"inherit"!==m&&c[m],"initial"!==I&&c["color".concat(Object(s.a)(I))],E&&c.noWrap,B&&c.gutterBottom,y&&c.paragraph,"inherit"!==a&&c["align".concat(Object(s.a)(a))],"initial"!==f&&c["display".concat(Object(s.a)(f))]),ref:t},S))}));t.a=Object(a.a)((function(e){return{root:{margin:0},body2:e.typography.body2,body1:e.typography.body1,caption:e.typography.caption,button:e.typography.button,h1:e.typography.h1,h2:e.typography.h2,h3:e.typography.h3,h4:e.typography.h4,h5:e.typography.h5,h6:e.typography.h6,subtitle1:e.typography.subtitle1,subtitle2:e.typography.subtitle2,overline:e.typography.overline,srOnly:{position:"absolute",height:1,width:1,overflow:"hidden"},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right"},alignJustify:{textAlign:"justify"},noWrap:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},gutterBottom:{marginBottom:"0.35em"},paragraph:{marginBottom:16},colorInherit:{color:"inherit"},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},colorTextPrimary:{color:e.palette.text.primary},colorTextSecondary:{color:e.palette.text.secondary},colorError:{color:e.palette.error.main},displayInline:{display:"inline"},displayBlock:{display:"block"}}}),{name:"MuiTypography"})(c)},function(e,t,A){"use strict";var n={},r={};function i(e){return new Function("d","return {"+e.map((function(e,t){return JSON.stringify(e)+": d["+t+'] || ""'})).join(",")+"}")}function o(e){var t=Object.create(null),A=[];return e.forEach((function(e){for(var n in e)n in t||A.push(t[n]=n)})),A}function a(e,t){var A=e+"",n=A.length;return n<t?new Array(t-n+1).join(0)+A:A}function s(e){var t,A=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":((t=e.getUTCFullYear())<0?"-"+a(-t,6):t>9999?"+"+a(t,6):a(t,4))+"-"+a(e.getUTCMonth()+1,2)+"-"+a(e.getUTCDate(),2)+(i?"T"+a(A,2)+":"+a(n,2)+":"+a(r,2)+"."+a(i,3)+"Z":r?"T"+a(A,2)+":"+a(n,2)+":"+a(r,2)+"Z":n||A?"T"+a(A,2)+":"+a(n,2)+"Z":"")}t.a=function(e){var t=new RegExp('["'+e+"\n\r]"),A=e.charCodeAt(0);function a(e,t){var i,o=[],a=e.length,s=0,g=0,c=a<=0,u=!1;function l(){if(c)return r;if(u)return u=!1,n;var t,i,o=s;if(34===e.charCodeAt(o)){for(;s++<a&&34!==e.charCodeAt(s)||34===e.charCodeAt(++s););return(t=s)>=a?c=!0:10===(i=e.charCodeAt(s++))?u=!0:13===i&&(u=!0,10===e.charCodeAt(s)&&++s),e.slice(o+1,t-1).replace(/""/g,'"')}for(;s<a;){if(10===(i=e.charCodeAt(t=s++)))u=!0;else if(13===i)u=!0,10===e.charCodeAt(s)&&++s;else if(i!==A)continue;return e.slice(o,t)}return c=!0,e.slice(o,a)}for(10===e.charCodeAt(a-1)&&--a,13===e.charCodeAt(a-1)&&--a;(i=l())!==r;){for(var I=[];i!==n&&i!==r;)I.push(i),i=l();t&&null==(I=t(I,g++))||o.push(I)}return o}function g(t,A){return t.map((function(t){return A.map((function(e){return u(t[e])})).join(e)}))}function c(t){return t.map(u).join(e)}function u(e){return null==e?"":e instanceof Date?s(e):t.test(e+="")?'"'+e.replace(/"/g,'""')+'"':e}return{parse:function(e,t){var A,n,r=a(e,(function(e,r){if(A)return A(e,r-1);n=e,A=t?function(e,t){var A=i(e);return function(n,r){return t(A(n),r,e)}}(e,t):i(e)}));return r.columns=n||[],r},parseRows:a,format:function(t,A){return null==A&&(A=o(t)),[A.map(u).join(e)].concat(g(t,A)).join("\n")},formatBody:function(e,t){return null==t&&(t=o(e)),g(e,t).join("\n")},formatRows:function(e){return e.map(c).join("\n")},formatRow:c,formatValue:u}}},function(e,t,A){"use strict";var n=A(11),r=A(2),i=A(1),o=A(4),a=A(405),s="undefined"!==typeof __VERSION__?__VERSION__:"untranspiled source",g=Object(a.a)();function c(e){try{var t=window[e],A="__storage_test__";return t.setItem(A,A),t.removeItem(A),t}catch(n){return null}}var u=function(){function e(t,A){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";Object(i.a)(this,e),this.storage=c(n),this.id=t,this.config={},Object.assign(this.config,A),this._loadConfiguration()}return Object(o.a)(e,[{key:"getConfiguration",value:function(){return this.config}},{key:"setConfiguration",value:function(e){return this.config={},this.updateConfiguration(e)}},{key:"updateConfiguration",value:function(e){if(Object.assign(this.config,e),this.storage){var t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}return this}},{key:"_loadConfiguration",value:function(){var e={};if(this.storage){var t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}]),e}();function l(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600,r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>n&&(A=Math.min(A,n/e.width));var i=e.width*A,o=e.height*A,a=["font-size:1px;","padding:".concat(Math.floor(o/2),"px ").concat(Math.floor(i/2),"px;"),"line-height:".concat(o,"px;"),"background:url(".concat(r,");"),"background-size:".concat(i,"px ").concat(o,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}var I={BLACK:30,RED:31,GREEN:32,YELLOW:33,BLUE:34,MAGENTA:35,CYAN:36,WHITE:37,BRIGHT_BLACK:90,BRIGHT_RED:91,BRIGHT_GREEN:92,BRIGHT_YELLOW:93,BRIGHT_BLUE:94,BRIGHT_MAGENTA:95,BRIGHT_CYAN:96,BRIGHT_WHITE:97};function C(e){return"string"===typeof e?I[e.toUpperCase()]||I.WHITE:e}var h=A(6);function f(e){var t,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["constructor"],n=Object.getPrototypeOf(e),r=Object.getOwnPropertyNames(n),i=Object(h.a)(r);try{var o=function(){var n=t.value;"function"===typeof e[n]&&(A.find((function(e){return n===e}))||(e[n]=e[n].bind(e)))};for(i.s();!(t=i.n()).done;)o()}catch(a){i.e(a)}finally{i.f()}}function d(e,t){if(!e)throw new Error(t||"Assertion failed")}var B=A(132);function p(){var e;if(g&&B.b.performance)e=B.b.performance.now();else if(B.a.hrtime){var t=B.a.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}A.d(t,"a",(function(){return w}));var E={debug:g&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Q={enabled:!0,level:0};function y(){}var v={},m={once:!0};function b(e){for(var t in e)for(var A in e[t])return A||"untitled";return"empty"}var w=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""},A=t.id;Object(i.a)(this,e),this.id=A,this.VERSION=s,this._startTs=p(),this._deltaTs=p(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new u("__probe-".concat(this.id,"__"),Q),this.userData={},this.timeStamp("".concat(this.id," started")),f(this),Object.seal(this)}return Object(o.a)(e,[{key:"isEnabled",value:function(){return this._storage.config.enabled}},{key:"getLevel",value:function(){return this._storage.config.level}},{key:"getTotal",value:function(){return Number((p()-this._startTs).toPrecision(10))}},{key:"getDelta",value:function(){return Number((p()-this._deltaTs).toPrecision(10))}},{key:"getPriority",value:function(){return this.level}},{key:"enable",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._storage.updateConfiguration({enabled:e}),this}},{key:"setLevel",value:function(e){return this._storage.updateConfiguration({level:e}),this}},{key:"assert",value:function(e,t){d(e,t)}},{key:"warn",value:function(e){return this._getLogFunction(0,e,E.warn,arguments,m)}},{key:"error",value:function(e){return this._getLogFunction(0,e,E.error,arguments)}},{key:"deprecated",value:function(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}},{key:"removed",value:function(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}},{key:"probe",value:function(e,t){return this._getLogFunction(e,t,E.log,arguments,{time:!0,once:!0})}},{key:"log",value:function(e,t){return this._getLogFunction(e,t,E.debug,arguments)}},{key:"info",value:function(e,t){return this._getLogFunction(e,t,console.info,arguments)}},{key:"once",value:function(e,t){return this._getLogFunction(e,t,E.debug||E.info,arguments,m)}},{key:"table",value:function(e,t,A){return t?this._getLogFunction(e,t,console.table||y,A&&[A],{tag:b(t)}):y}},{key:"image",value:function(e){var t=e.logLevel,r=e.priority,i=e.image,o=e.message,a=void 0===o?"":o,s=e.scale,c=void 0===s?1:s;return this._shouldLog(t||r)?g?function(e){var t=e.image,A=e.message,r=void 0===A?"":A,i=e.scale,o=void 0===i?1:i;if("string"===typeof t){var a=new Image;return a.onload=function(){var e,t=l(a,r,o);(e=console).log.apply(e,Object(n.a)(t))},a.src=t,y}var s=t.nodeName||"";if("img"===s.toLowerCase()){var g;return(g=console).log.apply(g,Object(n.a)(l(t,r,o))),y}if("canvas"===s.toLowerCase()){var c=new Image;return c.onload=function(){var e;return(e=console).log.apply(e,Object(n.a)(l(c,r,o)))},c.src=t.toDataURL(),y}return y}({image:i,message:a,scale:c}):function(e){var t=e.image,n=(e.message,e.scale),r=void 0===n?1:n,i=null;try{i=A(863)}catch(o){}if(i)return function(){return i(t,{fit:"box",width:"".concat(Math.round(80*r),"%")}).then((function(e){return console.log(e)}))};return y}({image:i,message:a,scale:c}):y}},{key:"settings",value:function(){console.table?console.table(this._storage.config):console.log(this._storage.config)}},{key:"get",value:function(e){return this._storage.config[e]}},{key:"set",value:function(e,t){this._storage.updateConfiguration(Object(r.a)({},e,t))}},{key:"time",value:function(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}},{key:"timeEnd",value:function(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}},{key:"timeStamp",value:function(e,t){return this._getLogFunction(e,t,console.timeStamp||y)}},{key:"group",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1},n=A=F({logLevel:e,message:t,opts:A}),r=n.collapsed;return A.method=(r?console.groupCollapsed:console.group)||console.info,this._getLogFunction(A)}},{key:"groupCollapsed",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.group(e,t,Object.assign({},A,{collapsed:!0}))}},{key:"groupEnd",value:function(e){return this._getLogFunction(e,"",console.groupEnd||y)}},{key:"withGroup",value:function(e,t,A){this.group(e,t)();try{A()}finally{this.groupEnd(e)()}}},{key:"trace",value:function(){console.trace&&console.trace()}},{key:"_shouldLog",value:function(e){return this.isEnabled()&&this.getLevel()>=S(e)}},{key:"_getLogFunction",value:function(e,t,A){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],i=arguments.length>4?arguments[4]:void 0;if(this._shouldLog(e)){var o;i=F({logLevel:e,message:t,args:r,opts:i}),d(A=A||i.method),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=p();var a=i.tag||i.message;if(i.once){if(v[a])return y;v[a]=p()}return t=R(this.id,i.message,i),(o=A).bind.apply(o,[console,t].concat(Object(n.a)(i.args)))}return y}},{key:"level",set:function(e){this.setLevel(e)},get:function(){return this.getLevel()}},{key:"priority",set:function(e){this.level=e},get:function(){return this.level}}]),e}();function S(e){if(!e)return 0;var t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return d(Number.isFinite(t)&&t>=0),t}function F(e){var t=e.logLevel,A=e.message;e.logLevel=S(t);for(var n=e.args?Array.from(e.args):[];n.length&&n.shift()!==A;);switch(e.args=n,typeof t){case"string":case"function":void 0!==A&&n.unshift(A),e.message=t;break;case"object":Object.assign(e,t)}"function"===typeof e.message&&(e.message=e.message());var r=typeof e.message;return d("string"===r||"object"===r),Object.assign(e,e.opts)}function R(e,t,A){if("string"===typeof t){var n=A.time?function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,A=Math.max(t-e.length,0);return"".concat(" ".repeat(A)).concat(e)}((a=A.total)<10?"".concat(a.toFixed(2),"ms"):a<100?"".concat(a.toFixed(1),"ms"):a<1e3?"".concat(a.toFixed(0),"ms"):"".concat((a/1e3).toFixed(2),"s")):"";t=A.time?"".concat(e,": ").concat(n," ").concat(t):"".concat(e,": ").concat(t),r=t,i=A.color,o=A.background,g||"string"!==typeof r||(i&&(i=C(i),r="\x1b[".concat(i,"m").concat(r,"\x1b[39m")),o&&(i=C(o),r="\x1b[".concat(o+10,"m").concat(r,"\x1b[49m"))),t=r}var r,i,o,a;return t}w.VERSION=s},function(e,t,A){"use strict";var n=A(21),r=A(14),i=A(0),o=A.n(i),a=A(102),s=A(1242),g={set:function(e,t,A,n){var r=e.get(t);r||(r=new Map,e.set(t,r)),r.set(A,n)},get:function(e,t,A){var n=e.get(t);return n?n.get(A):void 0},delete:function(e,t,A){e.get(t).delete(A)}},c=A(532),u=A(1285),l=-1e9;function I(){return l+=1}A(220);var C=A(1157);function h(e){var t="function"===typeof e;return{create:function(A,n){var i;try{i=t?e(A):e}catch(s){throw s}if(!n||!A.overrides||!A.overrides[n])return i;var o=A.overrides[n],a=Object(r.a)({},i);return Object.keys(o).forEach((function(e){a[e]=Object(C.a)(a[e],o[e])})),a},options:{}}}var f={};function d(e,t,A){var n=e.state;if(e.stylesOptions.disableGeneration)return t||{};n.cacheClasses||(n.cacheClasses={value:null,lastProp:null,lastJSS:{}});var r=!1;return n.classes!==n.cacheClasses.lastJSS&&(n.cacheClasses.lastJSS=n.classes,r=!0),t!==n.cacheClasses.lastProp&&(n.cacheClasses.lastProp=t,r=!0),r&&(n.cacheClasses.value=Object(s.a)({baseClasses:n.cacheClasses.lastJSS,newClasses:t,Component:A})),n.cacheClasses.value}function B(e,t){var A=e.state,n=e.theme,i=e.stylesOptions,o=e.stylesCreator,c=e.name;if(!i.disableGeneration){var u=g.get(i.sheetsManager,o,n);u||(u={refs:0,staticSheet:null,dynamicStyles:null},g.set(i.sheetsManager,o,n,u));var l=Object(r.a)({},o.options,i,{theme:n,flip:"boolean"===typeof i.flip?i.flip:"rtl"===n.direction});l.generateId=l.serverGenerateClassName||l.generateClassName;var I=i.sheetsRegistry;if(0===u.refs){var C;i.sheetsCache&&(C=g.get(i.sheetsCache,o,n));var h=o.create(n,c);C||((C=i.jss.createStyleSheet(h,Object(r.a)({link:!1},l))).attach(),i.sheetsCache&&g.set(i.sheetsCache,o,n,C)),I&&I.add(C),u.staticSheet=C,u.dynamicStyles=Object(a.d)(h)}if(u.dynamicStyles){var f=i.jss.createStyleSheet(u.dynamicStyles,Object(r.a)({link:!0},l));f.update(t),f.attach(),A.dynamicSheet=f,A.classes=Object(s.a)({baseClasses:u.staticSheet.classes,newClasses:f.classes}),I&&I.add(f)}else A.classes=u.staticSheet.classes;u.refs+=1}}function p(e,t){var A=e.state;A.dynamicSheet&&A.dynamicSheet.update(t)}function E(e){var t=e.state,A=e.theme,n=e.stylesOptions,r=e.stylesCreator;if(!n.disableGeneration){var i=g.get(n.sheetsManager,r,A);i.refs-=1;var o=n.sheetsRegistry;0===i.refs&&(g.delete(n.sheetsManager,r,A),n.jss.removeStyleSheet(i.staticSheet),o&&o.remove(i.staticSheet)),t.dynamicSheet&&(n.jss.removeStyleSheet(t.dynamicSheet),o&&o.remove(t.dynamicSheet))}}function Q(e,t){var A,n=o.a.useRef([]),r=o.a.useMemo((function(){return{}}),t);n.current!==r&&(n.current=r,A=e()),o.a.useEffect((function(){return function(){A&&A()}}),[r])}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.name,i=t.classNamePrefix,a=t.Component,s=t.defaultTheme,g=void 0===s?f:s,l=Object(n.a)(t,["name","classNamePrefix","Component","defaultTheme"]),C=h(e),y=A||i||"makeStyles";C.options={index:I(),name:A,meta:y,classNamePrefix:y};var v=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(c.a)()||g,n=Object(r.a)({},o.a.useContext(u.a),l),i=o.a.useRef(),s=o.a.useRef();Q((function(){var r={name:A,state:{},stylesCreator:C,stylesOptions:n,theme:t};return B(r,e),s.current=!1,i.current=r,function(){E(r)}}),[t,C]),o.a.useEffect((function(){s.current&&p(i.current,e),s.current=!0}));var I=d(i.current,e.classes,a);return I};return v}A.d(t,"a",(function(){return y}))},function(e,t,A){"use strict";var n=A(1),r=A(4),i=A(312),o=function(){function e(t,A){Object(n.a)(this,e),this.name=t,this.type=A,this.sampleSize=1,this.reset()}return Object(r.a)(e,[{key:"setSampleSize",value:function(e){return this.sampleSize=e,this}},{key:"incrementCount",value:function(){return this.addCount(1),this}},{key:"decrementCount",value:function(){return this.subtractCount(1),this}},{key:"addCount",value:function(e){return this._count+=e,this._samples++,this._checkSampling(),this}},{key:"subtractCount",value:function(e){return this._count-=e,this._samples++,this._checkSampling(),this}},{key:"addTime",value:function(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}},{key:"timeStart",value:function(){return this._startTime=Object(i.a)(),this._timerPending=!0,this}},{key:"timeEnd",value:function(){return this._timerPending?(this.addTime(Object(i.a)()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}},{key:"getSampleAverageCount",value:function(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}},{key:"getSampleAverageTime",value:function(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}},{key:"getSampleHz",value:function(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}},{key:"getAverageCount",value:function(){return this.samples>0?this.count/this.samples:0}},{key:"getAverageTime",value:function(){return this.samples>0?this.time/this.samples:0}},{key:"getHz",value:function(){return this.time>0?this.samples/(this.time/1e3):0}},{key:"reset",value:function(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}},{key:"_checkSampling",value:function(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}}]),e}(),a=function(){function e(t){var A=t.id,r=t.stats;Object(n.a)(this,e),this.id=A,this.stats={},this._initializeStats(r),Object.seal(this)}return Object(r.a)(e,[{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"count";return this._getOrCreate({name:e,type:t})}},{key:"reset",value:function(){for(var e in this.stats)this.stats[e].reset();return this}},{key:"forEach",value:function(e){for(var t in this.stats)e(this.stats[t])}},{key:"getTable",value:function(){var e={};return this.forEach((function(t){e[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}})),e}},{key:"_initializeStats",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.forEach((function(t){return e._getOrCreate(t)}))}},{key:"_getOrCreate",value:function(e){if(!e||!e.name)return null;var t=e.name,A=e.type;return this.stats[t]||(this.stats[t]=e instanceof o?e:new o(t,A)),this.stats[t]}},{key:"size",get:function(){return Object.keys(this.stats).length}}]),e}();A.d(t,"a",(function(){return a}))},function(e,t,A){"use strict";var n=A(204),r=A(225),i=(A(13),A(0)),o=A.n(i),a=A(39),s=A.n(a),g=!1,c=A(288),u=function(e){function t(t,A){var n;n=e.call(this,t,A)||this;var r,i=A&&!A.isMounting?t.enter:t.appear;return n.appearStatus=null,t.in?i?(r="exited",n.appearStatus="entering"):r="entered":r=t.unmountOnExit||t.mountOnEnter?"unmounted":"exited",n.state={status:r},n.nextCallback=null,n}Object(r.a)(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&"unmounted"===t.status?{status:"exited"}:null};var A=t.prototype;return A.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},A.componentDidUpdate=function(e){var t=null;if(e!==this.props){var A=this.state.status;this.props.in?"entering"!==A&&"entered"!==A&&(t="entering"):"entering"!==A&&"entered"!==A||(t="exiting")}this.updateStatus(!1,t)},A.componentWillUnmount=function(){this.cancelNextCallback()},A.getTimeouts=function(){var e,t,A,n=this.props.timeout;return e=t=A=n,null!=n&&"number"!==typeof n&&(e=n.exit,t=n.enter,A=void 0!==n.appear?n.appear:t),{exit:e,enter:t,appear:A}},A.updateStatus=function(e,t){void 0===e&&(e=!1),null!==t?(this.cancelNextCallback(),"entering"===t?this.performEnter(e):this.performExit()):this.props.unmountOnExit&&"exited"===this.state.status&&this.setState({status:"unmounted"})},A.performEnter=function(e){var t=this,A=this.props.enter,n=this.context?this.context.isMounting:e,r=this.props.nodeRef?[n]:[s.a.findDOMNode(this),n],i=r[0],o=r[1],a=this.getTimeouts(),c=n?a.appear:a.enter;!e&&!A||g?this.safeSetState({status:"entered"},(function(){t.props.onEntered(i)})):(this.props.onEnter(i,o),this.safeSetState({status:"entering"},(function(){t.props.onEntering(i,o),t.onTransitionEnd(c,(function(){t.safeSetState({status:"entered"},(function(){t.props.onEntered(i,o)}))}))})))},A.performExit=function(){var e=this,t=this.props.exit,A=this.getTimeouts(),n=this.props.nodeRef?void 0:s.a.findDOMNode(this);t&&!g?(this.props.onExit(n),this.safeSetState({status:"exiting"},(function(){e.props.onExiting(n),e.onTransitionEnd(A.exit,(function(){e.safeSetState({status:"exited"},(function(){e.props.onExited(n)}))}))}))):this.safeSetState({status:"exited"},(function(){e.props.onExited(n)}))},A.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},A.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},A.setNextCallback=function(e){var t=this,A=!0;return this.nextCallback=function(n){A&&(A=!1,t.nextCallback=null,e(n))},this.nextCallback.cancel=function(){A=!1},this.nextCallback},A.onTransitionEnd=function(e,t){this.setNextCallback(t);var A=this.props.nodeRef?this.props.nodeRef.current:s.a.findDOMNode(this),n=null==e&&!this.props.addEndListener;if(A&&!n){if(this.props.addEndListener){var r=this.props.nodeRef?[this.nextCallback]:[A,this.nextCallback],i=r[0],o=r[1];this.props.addEndListener(i,o)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},A.render=function(){var e=this.state.status;if("unmounted"===e)return null;var t=this.props,A=t.children,r=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,Object(n.a)(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return o.a.createElement(c.a.Provider,{value:null},"function"===typeof A?A(e,r):o.a.cloneElement(o.a.Children.only(A),r))},t}(o.a.Component);function l(){}u.contextType=c.a,u.propTypes={},u.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:l,onEntering:l,onEntered:l,onExit:l,onExiting:l,onExited:l},u.UNMOUNTED="unmounted",u.EXITED="exited",u.ENTERING="entering",u.ENTERED="entered",u.EXITING="exiting";t.a=u},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,A){"use strict";var n=A(14),r=A(1164),i=A(205);t.a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(r.a)(e,Object(n.a)({defaultTheme:i.a},t))}},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(14);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.baseClasses,A=e.newClasses;e.Component;if(!A)return t;var r=Object(n.a)({},t);return Object.keys(A).forEach((function(e){A[e]&&(r[e]="".concat(t[e]," ").concat(A[e]))})),r}},function(e,t,A){"use strict";A.d(t,"a",(function(){return i}));var n=A(398),r=["checked","disabled","error","focused","focusVisible","required","expanded","selected"];function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.disableGlobal,A=void 0!==t&&t,i=e.productionPrefix,o=void 0===i?"jss":i,a=e.seed,s=void 0===a?"":a,g=""===s?"":"".concat(s,"-"),c=0,u=function(){return c+=1};return function(e,t){var i=t.options.name;if(i&&0===i.indexOf("Mui")&&!t.options.link&&!A){if(-1!==r.indexOf(e.key))return"Mui-".concat(e.key);var a="".concat(g).concat(i,"-").concat(e.key);return t.options.theme[n.a]&&""===s?"".concat(a,"-").concat(u()):a}return"".concat(g).concat(o).concat(u())}}},function(e,t,A){"use strict";var n=A(6);t.a=function(e,t){var A,r;if(void 0===t){var i,o=Object(n.a)(e);try{for(o.s();!(i=o.n()).done;){var a=i.value;null!=a&&(void 0===A?a>=a&&(A=r=a):(A>a&&(A=a),r<a&&(r=a)))}}catch(l){o.e(l)}finally{o.f()}}else{var s,g=-1,c=Object(n.a)(e);try{for(c.s();!(s=c.n()).done;){var u=s.value;null!=(u=t(u,++g,e))&&(void 0===A?u>=u&&(A=r=u):(A>u&&(A=u),r<u&&(r=u)))}}catch(l){c.e(l)}finally{c.f()}}return[A,r]}},function(e,t,A){"use strict";A.d(t,"a",(function(){return n}));var n={name:"fp32",vs:"#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND\nconst float TWO_PI = 6.2831854820251465;\nconst float PI_2 = 1.5707963705062866;\nconst float PI_16 = 0.1963495463132858;\n\nconst float SIN_TABLE_0 = 0.19509032368659973;\nconst float SIN_TABLE_1 = 0.3826834261417389;\nconst float SIN_TABLE_2 = 0.5555702447891235;\nconst float SIN_TABLE_3 = 0.7071067690849304;\n\nconst float COS_TABLE_0 = 0.9807852506637573;\nconst float COS_TABLE_1 = 0.9238795042037964;\nconst float COS_TABLE_2 = 0.8314695954322815;\nconst float COS_TABLE_3 = 0.7071067690849304;\n\nconst float INVERSE_FACTORIAL_3 = 1.666666716337204e-01;\nconst float INVERSE_FACTORIAL_5 = 8.333333767950535e-03;\nconst float INVERSE_FACTORIAL_7 = 1.9841270113829523e-04;\nconst float INVERSE_FACTORIAL_9 = 2.75573188446287533e-06;\n\nfloat sin_taylor_fp32(float a) {\n float r, s, t, x;\n\n if (a == 0.0) {\n return 0.0;\n }\n\n x = -a * a;\n s = a;\n r = a;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_3;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_5;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_7;\n s = s + t;\n\n r = r * x;\n t = r * INVERSE_FACTORIAL_9;\n s = s + t;\n\n return s;\n}\n\nvoid sincos_taylor_fp32(float a, out float sin_t, out float cos_t) {\n if (a == 0.0) {\n sin_t = 0.0;\n cos_t = 1.0;\n }\n sin_t = sin_taylor_fp32(a);\n cos_t = sqrt(1.0 - sin_t * sin_t);\n}\n\nfloat tan_taylor_fp32(float a) {\n float sin_a;\n float cos_a;\n\n if (a == 0.0) {\n return 0.0;\n }\n float z = floor(a / TWO_PI);\n float r = a - TWO_PI * z;\n\n float t;\n float q = floor(r / PI_2 + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return 1.0 / 0.0;\n }\n\n t = r - PI_2 * q;\n\n q = floor(t / PI_16 + 0.5);\n int k = int(q);\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return 1.0 / 0.0;\n } else {\n t = t - PI_16 * q;\n }\n\n float u = 0.0;\n float v = 0.0;\n\n float sin_t, cos_t;\n float s, c;\n sincos_taylor_fp32(t, sin_t, cos_t);\n\n if (k == 0) {\n s = sin_t;\n c = cos_t;\n } else {\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0;\n v = SIN_TABLE_0;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1;\n v = SIN_TABLE_1;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2;\n v = SIN_TABLE_2;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3;\n v = SIN_TABLE_3;\n }\n if (k > 0) {\n s = u * sin_t + v * cos_t;\n c = u * cos_t - v * sin_t;\n } else {\n s = u * sin_t - v * cos_t;\n c = u * cos_t + v * sin_t;\n }\n }\n\n if (j == 0) {\n sin_a = s;\n cos_a = c;\n } else if (j == 1) {\n sin_a = c;\n cos_a = -s;\n } else if (j == -1) {\n sin_a = -c;\n cos_a = s;\n } else {\n sin_a = -s;\n cos_a = -c;\n }\n return sin_a / cos_a;\n}\n#endif\n\nfloat tan_fp32(float a) {\n#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND\n return tan_taylor_fp32(a);\n#else\n return tan(a);\n#endif\n}\n",fs:null}},function(e,t,A){"use strict";A.d(t,"a",(function(){return l}));var n=A(1),r=A(24),i=A(4),o=A(9),a=A(10),s=A(18),g=A(92),c=A(80),u=A(108),l=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(n.a)(this,A),Object(s.a)(e),(i=t.call(this,e,o)).initialize(o),i.stubRemovedMethods("TransformFeedback","v6.0",["pause","resume"]),Object.seal(Object(r.a)(i)),i}return Object(i.a)(A,null,[{key:"isSupported",value:function(e){return Object(s.j)(e)}}]),Object(i.a)(A,[{key:"initialize",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.buffers={},this.unused={},this.configuration=null,this.bindOnUse=!0,Object(u.a)(this.buffers)||this.bind((function(){return e._unbindBuffers()})),this.setProps(t),this}},{key:"setProps",value:function(e){"program"in e&&(this.configuration=e.program&&e.program.configuration),"configuration"in e&&(this.configuration=e.configuration),"bindOnUse"in e&&(e=e.bindOnUse),"buffers"in e&&this.setBuffers(e.buffers)}},{key:"setBuffers",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.bind((function(){for(var A in t)e.setBuffer(A,t[A])})),this}},{key:"setBuffer",value:function(e,t){var A=this,n=this._getVaryingIndex(e),r=this._getBufferParams(t),i=r.buffer,o=r.byteSize,a=r.byteOffset;return n<0?(this.unused[e]=i,s.k.warn((function(){return"".concat(A.id," unused varying buffer ").concat(e)}))(),this):(this.buffers[n]=t,this.bindOnUse||this._bindBuffer(n,i,a,o),this)}},{key:"begin",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.gl.bindTransformFeedback(36386,this.handle),this._bindBuffers(),this.gl.beginTransformFeedback(e),this}},{key:"end",value:function(){return this.gl.endTransformFeedback(),this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null),this}},{key:"_getBufferParams",value:function(e){var t,A,n;return e instanceof c.a===!1?(n=e.buffer,A=e.byteSize,t=e.byteOffset):n=e,void 0===t&&void 0===A||(t=t||0,A=A||n.byteLength-t),{buffer:n,byteOffset:t,byteSize:A}}},{key:"_getVaryingInfo",value:function(e){return this.configuration&&this.configuration.getVaryingInfo(e)}},{key:"_getVaryingIndex",value:function(e){if(this.configuration)return this.configuration.getVaryingInfo(e).location;var t=Number(e);return Number.isFinite(t)?t:-1}},{key:"_bindBuffers",value:function(){if(this.bindOnUse)for(var e in this.buffers){var t=this._getBufferParams(this.buffers[e]),A=t.buffer,n=t.byteSize,r=t.byteOffset;this._bindBuffer(e,A,r,n)}}},{key:"_unbindBuffers",value:function(){if(this.bindOnUse)for(var e in this.buffers)this._bindBuffer(e,null)}},{key:"_bindBuffer",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3?arguments[3]:void 0,r=t&&t.handle;return r&&void 0!==n?this.gl.bindBufferRange(35982,e,r,A,n):this.gl.bindBufferBase(35982,e,r),this}},{key:"_createHandle",value:function(){return this.gl.createTransformFeedback()}},{key:"_deleteHandle",value:function(){this.gl.deleteTransformFeedback(this.handle)}},{key:"_bindHandle",value:function(e){this.gl.bindTransformFeedback(36386,this.handle)}}]),A}(g.a)},function(e,t,A){"use strict";A.d(t,"a",(function(){return g}));var n=A(8),r=A(6),i=A(1),o=A(4),a=1,s=1,g=function(){function e(){Object(i.a)(this,e),this.time=0,this.channels=new Map,this.animations=new Map,this.playing=!1,this.lastEngineTime=-1}return Object(o.a)(e,[{key:"addChannel",value:function(e){var t=e.delay,A=void 0===t?0:t,n=e.duration,r=void 0===n?Number.POSITIVE_INFINITY:n,i=e.rate,o=void 0===i?1:i,s=e.repeat,g=a++,c={time:0,delay:A,duration:r,rate:o,repeat:void 0===s?1:s};return this._setChannelTime(c,this.time),this.channels.set(g,c),g}},{key:"removeChannel",value:function(e){this.channels.delete(e);var t,A=Object(r.a)(this.animations);try{for(A.s();!(t=A.n()).done;){var i=Object(n.a)(t.value,2),o=i[0];i[1].channel===e&&this.detachAnimation(o)}}catch(a){A.e(a)}finally{A.f()}}},{key:"isFinished",value:function(e){var t=this.channels.get(e);return void 0!==t&&this.time>=t.delay+t.duration*t.repeat}},{key:"getTime",value:function(e){if(void 0===e)return this.time;var t=this.channels.get(e);return void 0===t?-1:t.time}},{key:"setTime",value:function(e){this.time=Math.max(0,e);var t,A=this.channels.values(),n=Object(r.a)(A);try{for(n.s();!(t=n.n()).done;){var i=t.value;this._setChannelTime(i,this.time)}}catch(l){n.e(l)}finally{n.f()}var o,a=this.animations.values(),s=Object(r.a)(a);try{for(s.s();!(o=s.n()).done;){var g=o.value,c=g.animation,u=g.channel;c.setTime(this.getTime(u))}}catch(l){s.e(l)}finally{s.f()}}},{key:"play",value:function(){this.playing=!0}},{key:"pause",value:function(){this.playing=!1,this.lastEngineTime=-1}},{key:"reset",value:function(){this.setTime(0)}},{key:"attachAnimation",value:function(e,t){var A=s++;return this.animations.set(A,{animation:e,channel:t}),e.setTime(this.getTime(t)),A}},{key:"detachAnimation",value:function(e){this.animations.delete(e)}},{key:"update",value:function(e){this.playing&&(-1===this.lastEngineTime&&(this.lastEngineTime=e),this.setTime(this.time+(e-this.lastEngineTime)),this.lastEngineTime=e)}},{key:"_setChannelTime",value:function(e,t){var A=t-e.delay;A>=e.duration*e.repeat?e.time=e.duration*e.rate:(e.time=Math.max(0,A)%e.duration,e.time*=e.rate)}}]),e}()},function(e,t,A){"use strict";var n={},r={};function i(e){return new Function("d","return {"+e.map((function(e,t){return JSON.stringify(e)+": d["+t+'] || ""'})).join(",")+"}")}function o(e){var t=Object.create(null),A=[];return e.forEach((function(e){for(var n in e)n in t||A.push(t[n]=n)})),A}function a(e,t){var A=e+"",n=A.length;return n<t?new Array(t-n+1).join(0)+A:A}function s(e){var t,A=e.getUTCHours(),n=e.getUTCMinutes(),r=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":((t=e.getUTCFullYear())<0?"-"+a(-t,6):t>9999?"+"+a(t,6):a(t,4))+"-"+a(e.getUTCMonth()+1,2)+"-"+a(e.getUTCDate(),2)+(i?"T"+a(A,2)+":"+a(n,2)+":"+a(r,2)+"."+a(i,3)+"Z":r?"T"+a(A,2)+":"+a(n,2)+":"+a(r,2)+"Z":n||A?"T"+a(A,2)+":"+a(n,2)+"Z":"")}t.a=function(e){var t=new RegExp('["'+e+"\n\r]"),A=e.charCodeAt(0);function a(e,t){var i,o=[],a=e.length,s=0,g=0,c=a<=0,u=!1;function l(){if(c)return r;if(u)return u=!1,n;var t,i,o=s;if(34===e.charCodeAt(o)){for(;s++<a&&34!==e.charCodeAt(s)||34===e.charCodeAt(++s););return(t=s)>=a?c=!0:10===(i=e.charCodeAt(s++))?u=!0:13===i&&(u=!0,10===e.charCodeAt(s)&&++s),e.slice(o+1,t-1).replace(/""/g,'"')}for(;s<a;){if(10===(i=e.charCodeAt(t=s++)))u=!0;else if(13===i)u=!0,10===e.charCodeAt(s)&&++s;else if(i!==A)continue;return e.slice(o,t)}return c=!0,e.slice(o,a)}for(10===e.charCodeAt(a-1)&&--a,13===e.charCodeAt(a-1)&&--a;(i=l())!==r;){for(var I=[];i!==n&&i!==r;)I.push(i),i=l();t&&null==(I=t(I,g++))||o.push(I)}return o}function g(t,A){return t.map((function(t){return A.map((function(e){return u(t[e])})).join(e)}))}function c(t){return t.map(u).join(e)}function u(e){return null==e?"":e instanceof Date?s(e):t.test(e+="")?'"'+e.replace(/"/g,'""')+'"':e}return{parse:function(e,t){var A,n,r=a(e,(function(e,r){if(A)return A(e,r-1);n=e,A=t?function(e,t){var A=i(e);return function(n,r){return t(A(n),r,e)}}(e,t):i(e)}));return r.columns=n||[],r},parseRows:a,format:function(t,A){return null==A&&(A=o(t)),[A.map(u).join(e)].concat(g(t,A)).join("\n")},formatBody:function(e,t){return null==t&&(t=o(e)),g(e,t).join("\n")},formatRows:function(e){return e.map(c).join("\n")},formatRow:c,formatValue:u}}},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(28),s=A(40),g=i.forwardRef((function(e,t){var A=e.classes,a=e.className,g=e.color,c=void 0===g?"primary":g,u=e.disableShrink,l=void 0!==u&&u,I=e.size,C=void 0===I?40:I,h=e.style,f=e.thickness,d=void 0===f?3.6:f,B=e.value,p=void 0===B?0:B,E=e.variant,Q=void 0===E?"indeterminate":E,y=Object(r.a)(e,["classes","className","color","disableShrink","size","style","thickness","value","variant"]),v={},m={},b={};if("determinate"===Q||"static"===Q){var w=2*Math.PI*((44-d)/2);v.strokeDasharray=w.toFixed(3),b["aria-valuenow"]=Math.round(p),v.strokeDashoffset="".concat(((100-p)/100*w).toFixed(3),"px"),m.transform="rotate(-90deg)"}return i.createElement("div",Object(n.a)({className:Object(o.a)(A.root,a,"inherit"!==c&&A["color".concat(Object(s.a)(c))],{determinate:A.determinate,indeterminate:A.indeterminate,static:A.static}[Q]),style:Object(n.a)({width:C,height:C},m,h),ref:t,role:"progressbar"},b,y),i.createElement("svg",{className:A.svg,viewBox:"".concat(22," ").concat(22," ").concat(44," ").concat(44)},i.createElement("circle",{className:Object(o.a)(A.circle,l&&A.circleDisableShrink,{determinate:A.circleDeterminate,indeterminate:A.circleIndeterminate,static:A.circleStatic}[Q]),style:v,cx:44,cy:44,r:(44-d)/2,fill:"none",strokeWidth:d})))}));t.a=Object(a.a)((function(e){return{root:{display:"inline-block"},static:{transition:e.transitions.create("transform")},indeterminate:{animation:"$circular-rotate 1.4s linear infinite"},determinate:{transition:e.transitions.create("transform")},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},svg:{display:"block"},circle:{stroke:"currentColor"},circleStatic:{transition:e.transitions.create("stroke-dashoffset")},circleIndeterminate:{animation:"$circular-dash 1.4s ease-in-out infinite",strokeDasharray:"80px, 200px",strokeDashoffset:"0px"},circleDeterminate:{transition:e.transitions.create("stroke-dashoffset")},"@keyframes circular-rotate":{"0%":{transformOrigin:"50% 50%"},"100%":{transform:"rotate(360deg)"}},"@keyframes circular-dash":{"0%":{strokeDasharray:"1px, 200px",strokeDashoffset:"0px"},"50%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-15px"},"100%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-125px"}},circleDisableShrink:{animation:"none"}}}),{name:"MuiCircularProgress",flip:!1})(g)},function(e,t,A){"use strict";function n(e){var t=e.theme,A=e.name,n=e.props;if(!t||!t.props||!t.props[A])return n;var r,i=t.props[A];for(r in i)void 0===n[r]&&(n[r]=i[r]);return n}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(689)),a=A(532),s=A(1160),g=A(165),c=A(136),u=A(51);function l(e){return"function"===typeof e?e():e}var I="undefined"!==typeof window?i.useLayoutEffect:i.useEffect,C={},h=i.forwardRef((function(e,t){var A=e.anchorEl,h=e.children,f=e.container,d=e.disablePortal,B=void 0!==d&&d,p=e.keepMounted,E=void 0!==p&&p,Q=e.modifiers,y=e.open,v=e.placement,m=void 0===v?"bottom":v,b=e.popperOptions,w=void 0===b?C:b,S=e.popperRef,F=e.style,R=e.transition,D=void 0!==R&&R,G=Object(r.a)(e,["anchorEl","children","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition"]),k=i.useRef(null),x=Object(u.a)(k,t),N=i.useRef(null),U=Object(u.a)(N,S),_=i.useRef(U);I((function(){_.current=U}),[U]),i.useImperativeHandle(S,(function(){return N.current}),[]);var M=i.useState(!0),O=M[0],L=M[1],T=function(e,t){if("ltr"===(t&&t.direction||"ltr"))return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}(m,Object(a.a)()),Z=i.useState(T),H=Z[0],Y=Z[1];i.useEffect((function(){N.current&&N.current.update()}));var J=i.useCallback((function(){if(k.current&&A&&y){N.current&&(N.current.destroy(),_.current(null));var e=function(e){Y(e.placement)},t=(l(A),new o.a(l(A),k.current,Object(n.a)({placement:T},w,{modifiers:Object(n.a)({},B?{}:{preventOverflow:{boundariesElement:"window"}},Q,w.modifiers),onCreate:Object(g.a)(e,w.onCreate),onUpdate:Object(g.a)(e,w.onUpdate)})));_.current(t)}}),[A,B,Q,y,T,w]),j=i.useCallback((function(e){Object(c.a)(x,e),J()}),[x,J]),P=function(){N.current&&(N.current.destroy(),_.current(null))};if(i.useEffect((function(){return function(){P()}}),[]),i.useEffect((function(){y||D||P()}),[y,D]),!E&&!y&&(!D||O))return null;var V={placement:H};return D&&(V.TransitionProps={in:y,onEnter:function(){L(!1)},onExited:function(){L(!0),P()}}),i.createElement(s.a,{disablePortal:B,container:f},i.createElement("div",Object(n.a)({ref:j,role:"tooltip"},G,{style:Object(n.a)({position:"fixed",top:0,left:0,display:y||!E||D?null:"none"},F)}),"function"===typeof h?h(V):h))}));t.a=h},function(e,t,A){"use strict";var n=A(0),r=A(39),i=(A(13),A(69)),o=A(51),a=A(66);function s(e){return e.substring(2).toLowerCase()}t.a=function(e){var t=e.children,A=e.disableReactTree,g=void 0!==A&&A,c=e.mouseEvent,u=void 0===c?"onClick":c,l=e.onClickAway,I=e.touchEvent,C=void 0===I?"onTouchEnd":I,h=n.useRef(!1),f=n.useRef(null),d=n.useRef(!1),B=n.useRef(!1);n.useEffect((function(){return setTimeout((function(){d.current=!0}),0),function(){d.current=!1}}),[]);var p=n.useCallback((function(e){f.current=r.findDOMNode(e)}),[]),E=Object(o.a)(t.ref,p),Q=Object(a.a)((function(e){var t=B.current;if(B.current=!1,d.current&&f.current&&!function(e){return document.documentElement.clientWidth<e.clientX||document.documentElement.clientHeight<e.clientY}(e))if(h.current)h.current=!1;else{var A;if(e.composedPath)A=e.composedPath().indexOf(f.current)>-1;else A=!Object(i.a)(f.current).documentElement.contains(e.target)||f.current.contains(e.target);A||!g&&t||l(e)}})),y=function(e){return function(A){B.current=!0;var n=t.props[e];n&&n(A)}},v={ref:E};return!1!==C&&(v[C]=y(C)),n.useEffect((function(){if(!1!==C){var e=s(C),t=Object(i.a)(f.current),A=function(){h.current=!0};return t.addEventListener(e,Q),t.addEventListener("touchmove",A),function(){t.removeEventListener(e,Q),t.removeEventListener("touchmove",A)}}}),[Q,C]),!1!==u&&(v[u]=y(u)),n.useEffect((function(){if(!1!==u){var e=s(u),t=Object(i.a)(f.current);return t.addEventListener(e,Q),function(){t.removeEventListener(e,Q)}}}),[Q,u]),n.createElement(n.Fragment,null,n.cloneElement(t,v))}},function(e,t,A){"use strict";var n=A(14),r=A(101),i=A(21),o=A(0),a=(A(13),A(1166)),s=A(226),g=A(114),c=A(151),u=A(51),l={entering:{opacity:1},entered:{opacity:1}},I={enter:s.b.enteringScreen,exit:s.b.leavingScreen},C=o.forwardRef((function(e,t){var A=e.children,s=e.disableStrictModeCompat,C=void 0!==s&&s,h=e.in,f=e.onEnter,d=e.onEntered,B=e.onEntering,p=e.onExit,E=e.onExited,Q=e.onExiting,y=e.style,v=e.TransitionComponent,m=void 0===v?a.a:v,b=e.timeout,w=void 0===b?I:b,S=Object(i.a)(e,["children","disableStrictModeCompat","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","TransitionComponent","timeout"]),F=Object(g.a)(),R=F.unstable_strictMode&&!C,D=o.useRef(null),G=Object(u.a)(A.ref,t),k=Object(u.a)(R?D:void 0,G),x=function(e){return function(t,A){if(e){var n=R?[D.current,t]:[t,A],i=Object(r.a)(n,2),o=i[0],a=i[1];void 0===a?e(o):e(o,a)}}},N=x(B),U=x((function(e,t){Object(c.b)(e);var A=Object(c.a)({style:y,timeout:w},{mode:"enter"});e.style.webkitTransition=F.transitions.create("opacity",A),e.style.transition=F.transitions.create("opacity",A),f&&f(e,t)})),_=x(d),M=x(Q),O=x((function(e){var t=Object(c.a)({style:y,timeout:w},{mode:"exit"});e.style.webkitTransition=F.transitions.create("opacity",t),e.style.transition=F.transitions.create("opacity",t),p&&p(e)})),L=x(E);return o.createElement(m,Object(n.a)({appear:!0,in:h,nodeRef:R?D:void 0,onEnter:U,onEntered:_,onEntering:N,onExit:O,onExited:L,onExiting:M,timeout:w},S),(function(e,t){return o.cloneElement(A,Object(n.a)({style:Object(n.a)({opacity:0,visibility:"exited"!==e||h?void 0:"hidden"},l[e],y,A.props.style),ref:k},t))}))}));t.a=C},function(e,t,A){"use strict";var n=A(21),r=A(14),i=A(0),o=(A(13),A(19)),a=A(28),s=i.forwardRef((function(e,t){var A=e.classes,a=e.className,s=e.component,g=void 0===s?"div":s,c=e.square,u=void 0!==c&&c,l=e.elevation,I=void 0===l?1:l,C=e.variant,h=void 0===C?"elevation":C,f=Object(n.a)(e,["classes","className","component","square","elevation","variant"]);return i.createElement(g,Object(r.a)({className:Object(o.a)(A.root,a,"outlined"===h?A.outlined:A["elevation".concat(I)],!u&&A.rounded),ref:t},f))}));t.a=Object(a.a)((function(e){var t={};return e.shadows.forEach((function(e,A){t["elevation".concat(A)]={boxShadow:e}})),Object(r.a)({root:{backgroundColor:e.palette.background.paper,color:e.palette.text.primary,transition:e.transitions.create("box-shadow")},rounded:{borderRadius:e.shape.borderRadius},outlined:{border:"1px solid ".concat(e.palette.divider)}},t)}),{name:"MuiPaper"})(s)},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(40),s=A(28),g=A(200),c=A(51),u=A(1161),l=i.forwardRef((function(e,t){var A=e.classes,s=e.className,l=e.color,I=void 0===l?"primary":l,C=e.component,h=void 0===C?"a":C,f=e.onBlur,d=e.onFocus,B=e.TypographyClasses,p=e.underline,E=void 0===p?"hover":p,Q=e.variant,y=void 0===Q?"inherit":Q,v=Object(r.a)(e,["classes","className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"]),m=Object(g.a)(),b=m.isFocusVisible,w=m.onBlurVisible,S=m.ref,F=i.useState(!1),R=F[0],D=F[1],G=Object(c.a)(t,S);return i.createElement(u.a,Object(n.a)({className:Object(o.a)(A.root,A["underline".concat(Object(a.a)(E))],s,R&&A.focusVisible,"button"===h&&A.button),classes:B,color:I,component:h,onBlur:function(e){R&&(w(),D(!1)),f&&f(e)},onFocus:function(e){b(e)&&D(!0),d&&d(e)},ref:G,variant:y},v))}));t.a=Object(s.a)({root:{},underlineNone:{textDecoration:"none"},underlineHover:{textDecoration:"none","&:hover":{textDecoration:"underline"}},underlineAlways:{textDecoration:"underline"},button:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none","&::-moz-focus-inner":{borderStyle:"none"},"&$focusVisible":{outline:"auto"}},focusVisible:{}},{name:"MuiLink"})(l)},function(e,t,A){"use strict";A.d(t,"a",(function(){return C}));var n=A(7),r=A(1),i=A(9),o=A(10),a=A(135),s=A(108),g=new Uint16Array([0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]),c=new Float32Array([-1,-1,1,1,-1,1,1,1,1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1]),u=new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0]),l=new Float32Array([0,0,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1]),I={POSITION:{size:3,value:new Float32Array(c)},NORMAL:{size:3,value:new Float32Array(u)},TEXCOORD_0:{size:2,value:new Float32Array(l)}},C=function(e){Object(i.a)(A,e);var t=Object(o.a)(A);function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(r.a)(this,A);var i=e.id,o=void 0===i?Object(s.c)("cube-geometry"):i;return t.call(this,Object(n.a)({},e,{id:o,indices:{size:1,value:new Uint16Array(g)},attributes:Object(n.a)({},I,{},e.attributes)}))}return A}(a.a)},function(e,t,A){"use strict";A.d(t,"a",(function(){return g}));var n=A(1),r=A(9),i=A(10),o=A(422),a=A(135),s=[-1,-1,1,-1,-1,1,1,1],g=function(e){Object(r.a)(A,e);var t=Object(i.a)(A);function A(e,r){var i;Object(n.a)(this,A);var o=s.map((function(e){return-1===e?0:e}));return(i=t.call(this,e,Object.assign({},r,{vs:"attribute vec2 aClipSpacePosition;\nattribute vec2 aTexCoord;\nattribute vec2 aCoordinate;\n\nvarying vec2 position;\nvarying vec2 coordinate;\nvarying vec2 uv;\n\nvoid main(void) {\n gl_Position = vec4(aClipSpacePosition, 0., 1.);\n position = aClipSpacePosition;\n coordinate = aCoordinate;\n uv = aTexCoord;\n}\n",geometry:new a.a({drawMode:5,vertexCount:4,attributes:{aClipSpacePosition:{size:2,value:new Float32Array(s)},aTexCoord:{size:2,value:new Float32Array(o)},aCoordinate:{size:2,value:new Float32Array(o)}}})}))).setVertexCount(4),i}return A}(o.a)},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(28),s=i.forwardRef((function(e,t){var A=e.classes,a=e.className,s=e.component,g=void 0===s?"div":s,c=Object(r.a)(e,["classes","className","component"]);return i.createElement(g,Object(n.a)({ref:t,className:Object(o.a)(A.root,a)},c))}));t.a=Object(a.a)({root:{width:"100%",overflowX:"auto"}},{name:"MuiTableContainer"})(s)},function(e,t,A){"use strict";var n=A(21),r=A(14),i=A(0),o=(A(13),A(19)),a=A(28),s=A(417),g=i.forwardRef((function(e,t){var A=e.classes,a=e.className,g=e.component,c=void 0===g?"table":g,u=e.padding,l=void 0===u?"normal":u,I=e.size,C=void 0===I?"medium":I,h=e.stickyHeader,f=void 0!==h&&h,d=Object(n.a)(e,["classes","className","component","padding","size","stickyHeader"]),B=i.useMemo((function(){return{padding:l,size:C,stickyHeader:f}}),[l,C,f]);return i.createElement(s.a.Provider,{value:B},i.createElement(c,Object(r.a)({role:"table"===c?null:"table",ref:t,className:Object(o.a)(A.root,a,f&&A.stickyHeader)},d)))}));t.a=Object(a.a)((function(e){return{root:{display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":Object(r.a)({},e.typography.body2,{padding:e.spacing(2),color:e.palette.text.secondary,textAlign:"left",captionSide:"bottom"})},stickyHeader:{borderCollapse:"separate"}}}),{name:"MuiTable"})(g)},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(28),s=A(284),g={variant:"body"},c=i.forwardRef((function(e,t){var A=e.classes,a=e.className,c=e.component,u=void 0===c?"tbody":c,l=Object(r.a)(e,["classes","className","component"]);return i.createElement(s.a.Provider,{value:g},i.createElement(u,Object(n.a)({className:Object(o.a)(A.root,a),ref:t,role:"tbody"===u?null:"rowgroup"},l)))}));t.a=Object(a.a)({root:{display:"table-row-group"}},{name:"MuiTableBody"})(c)},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(28),s=A(284),g=A(60),c=i.forwardRef((function(e,t){var A=e.classes,a=e.className,g=e.component,c=void 0===g?"tr":g,u=e.hover,l=void 0!==u&&u,I=e.selected,C=void 0!==I&&I,h=Object(r.a)(e,["classes","className","component","hover","selected"]),f=i.useContext(s.a);return i.createElement(c,Object(n.a)({ref:t,className:Object(o.a)(A.root,a,f&&{head:A.head,footer:A.footer}[f.variant],l&&A.hover,C&&A.selected),role:"tr"===c?null:"row"},h))}));t.a=Object(a.a)((function(e){return{root:{color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,"&$hover:hover":{backgroundColor:e.palette.action.hover},"&$selected, &$selected:hover":{backgroundColor:Object(g.a)(e.palette.secondary.main,e.palette.action.selectedOpacity)}},selected:{},hover:{},head:{},footer:{}}}),{name:"MuiTableRow"})(c)},function(e,t,A){"use strict";var n=A(21),r=A(14),i=A(0),o=(A(13),A(19)),a=A(28),s=A(40),g=A(60),c=A(417),u=A(284),l=i.forwardRef((function(e,t){var A,a,g=e.align,l=void 0===g?"inherit":g,I=e.classes,C=e.className,h=e.component,f=e.padding,d=e.scope,B=e.size,p=e.sortDirection,E=e.variant,Q=Object(n.a)(e,["align","classes","className","component","padding","scope","size","sortDirection","variant"]),y=i.useContext(c.a),v=i.useContext(u.a),m=v&&"head"===v.variant;h?(a=h,A=m?"columnheader":"cell"):a=m?"th":"td";var b=d;!b&&m&&(b="col");var w=f||(y&&y.padding?y.padding:"normal"),S=B||(y&&y.size?y.size:"medium"),F=E||v&&v.variant,R=null;return p&&(R="asc"===p?"ascending":"descending"),i.createElement(a,Object(r.a)({ref:t,className:Object(o.a)(I.root,I[F],C,"inherit"!==l&&I["align".concat(Object(s.a)(l))],"normal"!==w&&I["padding".concat(Object(s.a)(w))],"medium"!==S&&I["size".concat(Object(s.a)(S))],"head"===F&&y&&y.stickyHeader&&I.stickyHeader),"aria-sort":R,role:A,scope:b},Q))}));t.a=Object(a.a)((function(e){return{root:Object(r.a)({},e.typography.body2,{display:"table-cell",verticalAlign:"inherit",borderBottom:"1px solid\n ".concat("light"===e.palette.type?Object(g.d)(Object(g.a)(e.palette.divider,1),.88):Object(g.b)(Object(g.a)(e.palette.divider,1),.68)),textAlign:"left",padding:16}),head:{color:e.palette.text.primary,lineHeight:e.typography.pxToRem(24),fontWeight:e.typography.fontWeightMedium},body:{color:e.palette.text.primary},footer:{color:e.palette.text.secondary,lineHeight:e.typography.pxToRem(21),fontSize:e.typography.pxToRem(12)},sizeSmall:{padding:"6px 24px 6px 16px","&:last-child":{paddingRight:16},"&$paddingCheckbox":{width:24,padding:"0 12px 0 16px","&:last-child":{paddingLeft:12,paddingRight:16},"& > *":{padding:0}}},paddingCheckbox:{width:48,padding:"0 0 0 4px","&:last-child":{paddingLeft:0,paddingRight:4}},paddingNone:{padding:0,"&:last-child":{padding:0}},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right",flexDirection:"row-reverse"},alignJustify:{textAlign:"justify"},stickyHeader:{position:"sticky",top:0,left:0,zIndex:2,backgroundColor:e.palette.background.default}}}),{name:"MuiTableCell"})(l)},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(6);function r(e,t){var A;if(void 0===t){var r,i=Object(n.a)(e);try{for(i.s();!(r=i.n()).done;){var o=r.value;null!=o&&(A<o||void 0===A&&o>=o)&&(A=o)}}catch(u){i.e(u)}finally{i.f()}}else{var a,s=-1,g=Object(n.a)(e);try{for(g.s();!(a=g.n()).done;){var c=a.value;null!=(c=t(c,++s,e))&&(A<c||void 0===A&&c>=c)&&(A=c)}}catch(u){g.e(u)}finally{g.f()}}return A}},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(28),s=i.forwardRef((function(e,t){var A=e.classes,a=e.className,s=Object(r.a)(e,["classes","className"]);return i.createElement("div",Object(n.a)({className:Object(o.a)(A.root,a),ref:t},s))}));t.a=Object(a.a)((function(e){return{root:{display:"flex",padding:e.spacing(1,2,2)}}}),{name:"MuiAccordionDetails"})(s)},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(433),s=A(1159),g=A(28),c=A(418),u=i.forwardRef((function(e,t){var A=e.children,g=e.classes,u=e.className,l=e.expandIcon,I=e.focusVisibleClassName,C=e.IconButtonProps,h=void 0===C?{}:C,f=e.onClick,d=Object(r.a)(e,["children","classes","className","expandIcon","focusVisibleClassName","IconButtonProps","onClick"]),B=i.useContext(c.a),p=B.disabled,E=void 0!==p&&p,Q=B.expanded,y=B.toggle;return i.createElement(a.a,Object(n.a)({focusRipple:!1,disableRipple:!0,disabled:E,component:"div","aria-expanded":Q,className:Object(o.a)(g.root,u,E&&g.disabled,Q&&g.expanded),focusVisibleClassName:Object(o.a)(g.focusVisible,g.focused,I),onClick:function(e){y&&y(e),f&&f(e)},ref:t},d),i.createElement("div",{className:Object(o.a)(g.content,Q&&g.expanded)},A),l&&i.createElement(s.a,Object(n.a)({className:Object(o.a)(g.expandIcon,Q&&g.expanded),edge:"end",component:"div",tabIndex:null,role:null,"aria-hidden":!0},h),l))}));t.a=Object(g.a)((function(e){var t={duration:e.transitions.duration.shortest};return{root:{display:"flex",minHeight:48,transition:e.transitions.create(["min-height","background-color"],t),padding:e.spacing(0,2),"&:hover:not($disabled)":{cursor:"pointer"},"&$expanded":{minHeight:64},"&$focused, &$focusVisible":{backgroundColor:e.palette.action.focus},"&$disabled":{opacity:e.palette.action.disabledOpacity}},expanded:{},focused:{},focusVisible:{},disabled:{},content:{display:"flex",flexGrow:1,transition:e.transitions.create(["margin"],t),margin:"12px 0","&$expanded":{margin:"20px 0"}},expandIcon:{transform:"rotate(0deg)",transition:e.transitions.create("transform",t),"&:hover":{backgroundColor:"transparent"},"&$expanded":{transform:"rotate(180deg)"}}}}),{name:"MuiAccordionSummary"})(u)},function(e,t,A){"use strict";var n=A(21),r=A(14),i=A(0),o=(A(13),A(19)),a=A(28),s=[0,1,2,3,4,5,6,7,8,9,10],g=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12];function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,A=parseFloat(e);return"".concat(A/t).concat(String(e).replace(String(A),"")||"px")}var u=i.forwardRef((function(e,t){var A=e.alignContent,a=void 0===A?"stretch":A,s=e.alignItems,g=void 0===s?"stretch":s,c=e.classes,u=e.className,l=e.component,I=void 0===l?"div":l,C=e.container,h=void 0!==C&&C,f=e.direction,d=void 0===f?"row":f,B=e.item,p=void 0!==B&&B,E=e.justify,Q=e.justifyContent,y=void 0===Q?"flex-start":Q,v=e.lg,m=void 0!==v&&v,b=e.md,w=void 0!==b&&b,S=e.sm,F=void 0!==S&&S,R=e.spacing,D=void 0===R?0:R,G=e.wrap,k=void 0===G?"wrap":G,x=e.xl,N=void 0!==x&&x,U=e.xs,_=void 0!==U&&U,M=e.zeroMinWidth,O=void 0!==M&&M,L=Object(n.a)(e,["alignContent","alignItems","classes","className","component","container","direction","item","justify","justifyContent","lg","md","sm","spacing","wrap","xl","xs","zeroMinWidth"]),T=Object(o.a)(c.root,u,h&&[c.container,0!==D&&c["spacing-xs-".concat(String(D))]],p&&c.item,O&&c.zeroMinWidth,"row"!==d&&c["direction-xs-".concat(String(d))],"wrap"!==k&&c["wrap-xs-".concat(String(k))],"stretch"!==g&&c["align-items-xs-".concat(String(g))],"stretch"!==a&&c["align-content-xs-".concat(String(a))],"flex-start"!==(E||y)&&c["justify-content-xs-".concat(String(E||y))],!1!==_&&c["grid-xs-".concat(String(_))],!1!==F&&c["grid-sm-".concat(String(F))],!1!==w&&c["grid-md-".concat(String(w))],!1!==m&&c["grid-lg-".concat(String(m))],!1!==N&&c["grid-xl-".concat(String(N))]);return i.createElement(I,Object(r.a)({className:T,ref:t},L))})),l=Object(a.a)((function(e){return Object(r.a)({root:{},container:{boxSizing:"border-box",display:"flex",flexWrap:"wrap",width:"100%"},item:{boxSizing:"border-box",margin:"0"},zeroMinWidth:{minWidth:0},"direction-xs-column":{flexDirection:"column"},"direction-xs-column-reverse":{flexDirection:"column-reverse"},"direction-xs-row-reverse":{flexDirection:"row-reverse"},"wrap-xs-nowrap":{flexWrap:"nowrap"},"wrap-xs-wrap-reverse":{flexWrap:"wrap-reverse"},"align-items-xs-center":{alignItems:"center"},"align-items-xs-flex-start":{alignItems:"flex-start"},"align-items-xs-flex-end":{alignItems:"flex-end"},"align-items-xs-baseline":{alignItems:"baseline"},"align-content-xs-center":{alignContent:"center"},"align-content-xs-flex-start":{alignContent:"flex-start"},"align-content-xs-flex-end":{alignContent:"flex-end"},"align-content-xs-space-between":{alignContent:"space-between"},"align-content-xs-space-around":{alignContent:"space-around"},"justify-content-xs-center":{justifyContent:"center"},"justify-content-xs-flex-end":{justifyContent:"flex-end"},"justify-content-xs-space-between":{justifyContent:"space-between"},"justify-content-xs-space-around":{justifyContent:"space-around"},"justify-content-xs-space-evenly":{justifyContent:"space-evenly"}},function(e,t){var A={};return s.forEach((function(n){var r=e.spacing(n);0!==r&&(A["spacing-".concat(t,"-").concat(n)]={margin:"-".concat(c(r,2)),width:"calc(100% + ".concat(c(r),")"),"& > $item":{padding:c(r,2)}})})),A}(e,"xs"),e.breakpoints.keys.reduce((function(t,A){return function(e,t,A){var n={};g.forEach((function(e){var t="grid-".concat(A,"-").concat(e);if(!0!==e)if("auto"!==e){var r="".concat(Math.round(e/12*1e8)/1e6,"%");n[t]={flexBasis:r,flexGrow:0,maxWidth:r}}else n[t]={flexBasis:"auto",flexGrow:0,maxWidth:"none"};else n[t]={flexBasis:0,flexGrow:1,maxWidth:"100%"}})),"xs"===A?Object(r.a)(e,n):e[t.breakpoints.up(A)]=n}(t,e,A),t}),{}))}),{name:"MuiGrid"})(u);t.a=l},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(231),s=A(28),g=A(40),c=A(207),u=A(230),l=i.forwardRef((function(e,t){var A=e.children,s=e.classes,l=e.className,I=e.color,C=void 0===I?"primary":I,h=e.component,f=void 0===h?"div":h,d=e.disabled,B=void 0!==d&&d,p=e.error,E=void 0!==p&&p,Q=e.fullWidth,y=void 0!==Q&&Q,v=e.focused,m=e.hiddenLabel,b=void 0!==m&&m,w=e.margin,S=void 0===w?"none":w,F=e.required,R=void 0!==F&&F,D=e.size,G=e.variant,k=void 0===G?"standard":G,x=Object(r.a)(e,["children","classes","className","color","component","disabled","error","fullWidth","focused","hiddenLabel","margin","required","size","variant"]),N=i.useState((function(){var e=!1;return A&&i.Children.forEach(A,(function(t){if(Object(c.a)(t,["Input","Select"])){var A=Object(c.a)(t,["Select"])?t.props.input:t;A&&Object(a.a)(A.props)&&(e=!0)}})),e})),U=N[0],_=N[1],M=i.useState((function(){var e=!1;return A&&i.Children.forEach(A,(function(t){Object(c.a)(t,["Input","Select"])&&Object(a.b)(t.props,!0)&&(e=!0)})),e})),O=M[0],L=M[1],T=i.useState(!1),Z=T[0],H=T[1],Y=void 0!==v?v:Z;B&&Y&&H(!1);var J=i.useCallback((function(){L(!0)}),[]),j={adornedStart:U,setAdornedStart:_,color:C,disabled:B,error:E,filled:O,focused:Y,fullWidth:y,hiddenLabel:b,margin:("small"===D?"dense":void 0)||S,onBlur:function(){H(!1)},onEmpty:i.useCallback((function(){L(!1)}),[]),onFilled:J,onFocus:function(){H(!0)},registerEffect:void 0,required:R,variant:k};return i.createElement(u.a.Provider,{value:j},i.createElement(f,Object(n.a)({className:Object(o.a)(s.root,l,"none"!==S&&s["margin".concat(Object(g.a)(S))],y&&s.fullWidth),ref:t},x),A))}));t.a=Object(s.a)({root:{display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},marginNormal:{marginTop:16,marginBottom:8},marginDense:{marginTop:8,marginBottom:4},fullWidth:{width:"100%"}},{name:"MuiFormControl"})(l)},function(e,t,A){"use strict";var n=A(21),r=A(14),i=A(0),o=(A(13),A(19)),a=A(28),s=A(60),g=A(433),c=A(40),u=i.forwardRef((function(e,t){var A=e.children,a=e.classes,s=e.className,u=e.color,l=void 0===u?"default":u,I=e.component,C=void 0===I?"button":I,h=e.disabled,f=void 0!==h&&h,d=e.disableElevation,B=void 0!==d&&d,p=e.disableFocusRipple,E=void 0!==p&&p,Q=e.endIcon,y=e.focusVisibleClassName,v=e.fullWidth,m=void 0!==v&&v,b=e.size,w=void 0===b?"medium":b,S=e.startIcon,F=e.type,R=void 0===F?"button":F,D=e.variant,G=void 0===D?"text":D,k=Object(n.a)(e,["children","classes","className","color","component","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"]),x=S&&i.createElement("span",{className:Object(o.a)(a.startIcon,a["iconSize".concat(Object(c.a)(w))])},S),N=Q&&i.createElement("span",{className:Object(o.a)(a.endIcon,a["iconSize".concat(Object(c.a)(w))])},Q);return i.createElement(g.a,Object(r.a)({className:Object(o.a)(a.root,a[G],s,"inherit"===l?a.colorInherit:"default"!==l&&a["".concat(G).concat(Object(c.a)(l))],"medium"!==w&&[a["".concat(G,"Size").concat(Object(c.a)(w))],a["size".concat(Object(c.a)(w))]],B&&a.disableElevation,f&&a.disabled,m&&a.fullWidth),component:C,disabled:f,focusRipple:!E,focusVisibleClassName:Object(o.a)(a.focusVisible,y),ref:t,type:R},k),i.createElement("span",{className:a.label},x,A,N))}));t.a=Object(a.a)((function(e){return{root:Object(r.a)({},e.typography.button,{boxSizing:"border-box",minWidth:64,padding:"6px 16px",borderRadius:e.shape.borderRadius,color:e.palette.text.primary,transition:e.transitions.create(["background-color","box-shadow","border"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none",backgroundColor:Object(s.a)(e.palette.text.primary,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"},"&$disabled":{backgroundColor:"transparent"}},"&$disabled":{color:e.palette.action.disabled}}),label:{width:"100%",display:"inherit",alignItems:"inherit",justifyContent:"inherit"},text:{padding:"6px 8px"},textPrimary:{color:e.palette.primary.main,"&:hover":{backgroundColor:Object(s.a)(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},textSecondary:{color:e.palette.secondary.main,"&:hover":{backgroundColor:Object(s.a)(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlined:{padding:"5px 15px",border:"1px solid ".concat("light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),"&$disabled":{border:"1px solid ".concat(e.palette.action.disabledBackground)}},outlinedPrimary:{color:e.palette.primary.main,border:"1px solid ".concat(Object(s.a)(e.palette.primary.main,.5)),"&:hover":{border:"1px solid ".concat(e.palette.primary.main),backgroundColor:Object(s.a)(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlinedSecondary:{color:e.palette.secondary.main,border:"1px solid ".concat(Object(s.a)(e.palette.secondary.main,.5)),"&:hover":{border:"1px solid ".concat(e.palette.secondary.main),backgroundColor:Object(s.a)(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{border:"1px solid ".concat(e.palette.action.disabled)}},contained:{color:e.palette.getContrastText(e.palette.grey[300]),backgroundColor:e.palette.grey[300],boxShadow:e.shadows[2],"&:hover":{backgroundColor:e.palette.grey.A100,boxShadow:e.shadows[4],"@media (hover: none)":{boxShadow:e.shadows[2],backgroundColor:e.palette.grey[300]},"&$disabled":{backgroundColor:e.palette.action.disabledBackground}},"&$focusVisible":{boxShadow:e.shadows[6]},"&:active":{boxShadow:e.shadows[8]},"&$disabled":{color:e.palette.action.disabled,boxShadow:e.shadows[0],backgroundColor:e.palette.action.disabledBackground}},containedPrimary:{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.main,"&:hover":{backgroundColor:e.palette.primary.dark,"@media (hover: none)":{backgroundColor:e.palette.primary.main}}},containedSecondary:{color:e.palette.secondary.contrastText,backgroundColor:e.palette.secondary.main,"&:hover":{backgroundColor:e.palette.secondary.dark,"@media (hover: none)":{backgroundColor:e.palette.secondary.main}}},disableElevation:{boxShadow:"none","&:hover":{boxShadow:"none"},"&$focusVisible":{boxShadow:"none"},"&:active":{boxShadow:"none"},"&$disabled":{boxShadow:"none"}},focusVisible:{},disabled:{},colorInherit:{color:"inherit",borderColor:"currentColor"},textSizeSmall:{padding:"4px 5px",fontSize:e.typography.pxToRem(13)},textSizeLarge:{padding:"8px 11px",fontSize:e.typography.pxToRem(15)},outlinedSizeSmall:{padding:"3px 9px",fontSize:e.typography.pxToRem(13)},outlinedSizeLarge:{padding:"7px 21px",fontSize:e.typography.pxToRem(15)},containedSizeSmall:{padding:"4px 10px",fontSize:e.typography.pxToRem(13)},containedSizeLarge:{padding:"8px 22px",fontSize:e.typography.pxToRem(15)},sizeSmall:{},sizeLarge:{},fullWidth:{width:"100%"},startIcon:{display:"inherit",marginRight:8,marginLeft:-4,"&$iconSizeSmall":{marginLeft:-2}},endIcon:{display:"inherit",marginRight:-4,marginLeft:8,"&$iconSizeSmall":{marginRight:-2}},iconSizeSmall:{"& > *:first-child":{fontSize:18}},iconSizeMedium:{"& > *:first-child":{fontSize:20}},iconSizeLarge:{"& > *:first-child":{fontSize:22}}}}),{name:"MuiButton"})(u)},function(e,t,A){"use strict";var n=A(21),r=A(25),i=A(14),o=A(0),a=(A(13),A(19)),s=A(28),g=A(433),c=A(40),u=o.forwardRef((function(e,t){var A=e.classes,r=e.className,s=e.disabled,u=void 0!==s&&s,l=e.disableFocusRipple,I=void 0!==l&&l,C=e.fullWidth,h=e.icon,f=e.indicator,d=e.label,B=e.onChange,p=e.onClick,E=e.onFocus,Q=e.selected,y=e.selectionFollowsFocus,v=e.textColor,m=void 0===v?"inherit":v,b=e.value,w=e.wrapped,S=void 0!==w&&w,F=Object(n.a)(e,["classes","className","disabled","disableFocusRipple","fullWidth","icon","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"]);return o.createElement(g.a,Object(i.a)({focusRipple:!I,className:Object(a.a)(A.root,A["textColor".concat(Object(c.a)(m))],r,u&&A.disabled,Q&&A.selected,d&&h&&A.labelIcon,C&&A.fullWidth,S&&A.wrapped),ref:t,role:"tab","aria-selected":Q,disabled:u,onClick:function(e){B&&B(e,b),p&&p(e)},onFocus:function(e){y&&!Q&&B&&B(e,b),E&&E(e)},tabIndex:Q?0:-1},F),o.createElement("span",{className:A.wrapper},h,d),f)}));t.a=Object(s.a)((function(e){var t;return{root:Object(i.a)({},e.typography.button,(t={maxWidth:264,minWidth:72,position:"relative",boxSizing:"border-box",minHeight:48,flexShrink:0,padding:"6px 12px"},Object(r.a)(t,e.breakpoints.up("sm"),{padding:"6px 24px"}),Object(r.a)(t,"overflow","hidden"),Object(r.a)(t,"whiteSpace","normal"),Object(r.a)(t,"textAlign","center"),Object(r.a)(t,e.breakpoints.up("sm"),{minWidth:160}),t)),labelIcon:{minHeight:72,paddingTop:9,"& $wrapper > *:first-child":{marginBottom:6}},textColorInherit:{color:"inherit",opacity:.7,"&$selected":{opacity:1},"&$disabled":{opacity:.5}},textColorPrimary:{color:e.palette.text.secondary,"&$selected":{color:e.palette.primary.main},"&$disabled":{color:e.palette.text.disabled}},textColorSecondary:{color:e.palette.text.secondary,"&$selected":{color:e.palette.secondary.main},"&$disabled":{color:e.palette.text.disabled}},selected:{},disabled:{},fullWidth:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},wrapped:{fontSize:e.typography.pxToRem(12),lineHeight:1.5},wrapper:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"100%",flexDirection:"column"}}}),{name:"MuiTab"})(u)},function(e,t,A){"use strict";A.d(t,"b",(function(){return o})),A.d(t,"a",(function(){return a})),A.d(t,"c",(function(){return c}));var n=A(117),r=A(168);function i(e){return Object(n.a)((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/r.c}))}var o=i(0),a=i(1),s=i(2),g=i(3),c=i(4),u=i(5),l=i(6);o.range,a.range,s.range,g.range,c.range,u.range,l.range},function(e,t,A){"use strict";var n=A(117),r=A(168),i=Object(n.a)((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/r.a}),(function(e){return e.getUTCDate()-1}));t.a=i;i.range},function(e,t,A){"use strict";A.d(t,"b",(function(){return o})),A.d(t,"a",(function(){return a})),A.d(t,"c",(function(){return c}));var n=A(117),r=A(168);function i(e){return Object(n.a)((function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*r.b)/r.c}))}var o=i(0),a=i(1),s=i(2),g=i(3),c=i(4),u=i(5),l=i(6);o.range,a.range,s.range,g.range,c.range,u.range,l.range},function(e,t,A){"use strict";var n=A(117),r=A(168),i=Object(n.a)((function(e){e.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*r.b)/r.a}),(function(e){return e.getDate()-1}));t.a=i;i.range},function(e,t,A){"use strict";var n=A(117),r=Object(n.a)((function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()}));r.every=function(e){return isFinite(e=Math.floor(e))&&e>0?Object(n.a)((function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,A){t.setFullYear(t.getFullYear()+A*e)})):null},t.a=r;r.range},function(e,t,A){"use strict";var n=A(117),r=Object(n.a)((function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()}));r.every=function(e){return isFinite(e=Math.floor(e))&&e>0?Object(n.a)((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,A){t.setUTCFullYear(t.getUTCFullYear()+A*e)})):null},t.a=r;r.range},function(e,t,A){"use strict";A.d(t,"a",(function(){return r}));var n=A(6);function r(e,t){var A=0;if(void 0===t){var r,i=Object(n.a)(e);try{for(i.s();!(r=i.n()).done;){var o=r.value;(o=+o)&&(A+=o)}}catch(u){i.e(u)}finally{i.f()}}else{var a,s=-1,g=Object(n.a)(e);try{for(g.s();!(a=g.n()).done;){var c=a.value;(c=+t(c,++s,e))&&(A+=c)}}catch(u){g.e(u)}finally{g.f()}}return A}},function(e,t,A){"use strict";var n=A(14),r=A(0),i=A.n(r),o=(A(13),A(396)),a=A(532),s=A(398);t.a=function(e){var t=e.children,A=e.theme,r=Object(a.a)(),g=i.a.useMemo((function(){var e=null===r?A:function(e,t){return"function"===typeof t?t(e):Object(n.a)({},e,t)}(r,A);return null!=e&&(e[s.a]=null!==r),e}),[A,r]);return i.a.createElement(o.a.Provider,{value:g},t)}},function(e,t,A){"use strict";var n={};A.r(n),A.d(n,"JsonPatchError",(function(){return Y})),A.d(n,"deepClone",(function(){return J})),A.d(n,"getValueByPointer",(function(){return V})),A.d(n,"applyOperation",(function(){return K})),A.d(n,"applyPatch",(function(){return W})),A.d(n,"applyReducer",(function(){return X})),A.d(n,"validator",(function(){return q})),A.d(n,"validate",(function(){return z})),A.d(n,"_areEquals",(function(){return $}));var r={};A.r(r),A.d(r,"unobserve",(function(){return ne})),A.d(r,"observe",(function(){return re})),A.d(r,"generate",(function(){return ie})),A.d(r,"compare",(function(){return ae}));var i={};A.r(i),A.d(i,"aggregate",(function(){return HA})),A.d(i,"bin",(function(){return YA})),A.d(i,"collect",(function(){return jA})),A.d(i,"compare",(function(){return PA})),A.d(i,"countpattern",(function(){return KA})),A.d(i,"cross",(function(){return WA})),A.d(i,"density",(function(){return qA})),A.d(i,"dotbin",(function(){return An})),A.d(i,"expression",(function(){return nn})),A.d(i,"extent",(function(){return on})),A.d(i,"facet",(function(){return sn})),A.d(i,"field",(function(){return gn})),A.d(i,"filter",(function(){return un})),A.d(i,"flatten",(function(){return ln})),A.d(i,"fold",(function(){return In})),A.d(i,"formula",(function(){return Cn})),A.d(i,"generate",(function(){return hn})),A.d(i,"impute",(function(){return Bn})),A.d(i,"joinaggregate",(function(){return pn})),A.d(i,"kde",(function(){return En})),A.d(i,"key",(function(){return Qn})),A.d(i,"load",(function(){return vn})),A.d(i,"lookup",(function(){return bn})),A.d(i,"multiextent",(function(){return wn})),A.d(i,"multivalues",(function(){return Fn})),A.d(i,"params",(function(){return Dn})),A.d(i,"pivot",(function(){return Gn})),A.d(i,"prefacet",(function(){return kn})),A.d(i,"project",(function(){return xn})),A.d(i,"proxy",(function(){return Nn})),A.d(i,"quantile",(function(){return Un})),A.d(i,"relay",(function(){return _n})),A.d(i,"sample",(function(){return Mn})),A.d(i,"sequence",(function(){return On})),A.d(i,"sieve",(function(){return Ln})),A.d(i,"subflow",(function(){return an})),A.d(i,"timeunit",(function(){return Tn})),A.d(i,"tupleindex",(function(){return Hn})),A.d(i,"values",(function(){return Yn})),A.d(i,"window",(function(){return Kn}));var o={};A.r(o),A.d(o,"interpolate",(function(){return jo})),A.d(o,"interpolateArray",(function(){return Mo})),A.d(o,"interpolateBasis",(function(){return mo})),A.d(o,"interpolateBasisClosed",(function(){return bo})),A.d(o,"interpolateDate",(function(){return Lo})),A.d(o,"interpolateDiscrete",(function(){return zg})),A.d(o,"interpolateHue",(function(){return $g})),A.d(o,"interpolateNumber",(function(){return To})),A.d(o,"interpolateNumberArray",(function(){return Uo})),A.d(o,"interpolateObject",(function(){return Zo})),A.d(o,"interpolateRound",(function(){return Po})),A.d(o,"interpolateString",(function(){return Jo})),A.d(o,"interpolateTransformCss",(function(){return rc})),A.d(o,"interpolateTransformSvg",(function(){return ic})),A.d(o,"interpolateZoom",(function(){return ac})),A.d(o,"interpolateRgb",(function(){return Go})),A.d(o,"interpolateRgbBasis",(function(){return xo})),A.d(o,"interpolateRgbBasisClosed",(function(){return No})),A.d(o,"interpolateHsl",(function(){return gc})),A.d(o,"interpolateHslLong",(function(){return cc})),A.d(o,"interpolateLab",(function(){return mc})),A.d(o,"interpolateHcl",(function(){return wc})),A.d(o,"interpolateHclLong",(function(){return Sc})),A.d(o,"interpolateCubehelix",(function(){return Lc})),A.d(o,"interpolateCubehelixLong",(function(){return Tc})),A.d(o,"piecewise",(function(){return Vg})),A.d(o,"quantize",(function(){return Zc}));var a={};A.r(a),A.d(a,"bound",(function(){return Af})),A.d(a,"identifier",(function(){return rf})),A.d(a,"mark",(function(){return of})),A.d(a,"overlap",(function(){return af})),A.d(a,"render",(function(){return Cf})),A.d(a,"viewlayout",(function(){return _f}));var s={};A.r(s),A.d(s,"axisticks",(function(){return Ad})),A.d(s,"datajoin",(function(){return nd})),A.d(s,"encode",(function(){return id})),A.d(s,"legendentries",(function(){return od})),A.d(s,"linkpath",(function(){return ud})),A.d(s,"pie",(function(){return fd})),A.d(s,"scale",(function(){return pd})),A.d(s,"sortitems",(function(){return vd})),A.d(s,"stack",(function(){return bd}));var g={};A.r(g),A.d(g,"contour",(function(){return Wy})),A.d(g,"geojson",(function(){return Xy})),A.d(g,"geopath",(function(){return qy})),A.d(g,"geopoint",(function(){return zy})),A.d(g,"geoshape",(function(){return $y})),A.d(g,"graticule",(function(){return ev})),A.d(g,"heatmap",(function(){return tv})),A.d(g,"isocontour",(function(){return Ly})),A.d(g,"kde2d",(function(){return Py})),A.d(g,"projection",(function(){return nv}));var c={};A.r(c),A.d(c,"force",(function(){return dv}));var u={};A.r(u),A.d(u,"nest",(function(){return Em})),A.d(u,"pack",(function(){return wm})),A.d(u,"partition",(function(){return Fm})),A.d(u,"stratify",(function(){return Rm})),A.d(u,"tree",(function(){return km})),A.d(u,"treelinks",(function(){return xm})),A.d(u,"treemap",(function(){return _m}));var l={};A.r(l),A.d(l,"label",(function(){return rb}));var I={};A.r(I),A.d(I,"loess",(function(){return ob})),A.d(I,"regression",(function(){return sb}));var C={};A.r(C),A.d(C,"voronoi",(function(){return xb}));var h={};A.r(h),A.d(h,"wordcloud",(function(){return Pb}));var f={};A.r(f),A.d(f,"crossfilter",(function(){return rw})),A.d(f,"resolvefilter",(function(){return iw}));var d={};A.r(d),A.d(d,"Debug",(function(){return ue.a})),A.d(d,"Error",(function(){return ue.b})),A.d(d,"Info",(function(){return ue.c})),A.d(d,"None",(function(){return ue.d})),A.d(d,"Warn",(function(){return ue.e})),A.d(d,"accessor",(function(){return ue.f})),A.d(d,"accessorFields",(function(){return ue.g})),A.d(d,"accessorName",(function(){return ue.h})),A.d(d,"array",(function(){return ue.i})),A.d(d,"ascending",(function(){return ue.j})),A.d(d,"clampRange",(function(){return ue.k})),A.d(d,"compare",(function(){return ue.l})),A.d(d,"constant",(function(){return ue.m})),A.d(d,"debounce",(function(){return ue.n})),A.d(d,"error",(function(){return ue.o})),A.d(d,"extend",(function(){return ue.p})),A.d(d,"extent",(function(){return ue.q})),A.d(d,"extentIndex",(function(){return ue.r})),A.d(d,"falsy",(function(){return ue.s})),A.d(d,"fastmap",(function(){return ue.t})),A.d(d,"field",(function(){return ue.u})),A.d(d,"flush",(function(){return ue.v})),A.d(d,"hasOwnProperty",(function(){return ue.w})),A.d(d,"id",(function(){return ue.x})),A.d(d,"identity",(function(){return ue.y})),A.d(d,"inherits",(function(){return ue.z})),A.d(d,"inrange",(function(){return ue.A})),A.d(d,"isArray",(function(){return ue.B})),A.d(d,"isBoolean",(function(){return ue.C})),A.d(d,"isDate",(function(){return ue.D})),A.d(d,"isFunction",(function(){return ue.E})),A.d(d,"isIterable",(function(){return ue.F})),A.d(d,"isNumber",(function(){return ue.G})),A.d(d,"isObject",(function(){return ue.H})),A.d(d,"isRegExp",(function(){return ue.I})),A.d(d,"isString",(function(){return ue.J})),A.d(d,"key",(function(){return ue.K})),A.d(d,"lerp",(function(){return ue.L})),A.d(d,"logger",(function(){return ue.M})),A.d(d,"lruCache",(function(){return ue.N})),A.d(d,"merge",(function(){return ue.O})),A.d(d,"mergeConfig",(function(){return ue.P})),A.d(d,"one",(function(){return ue.Q})),A.d(d,"pad",(function(){return ue.R})),A.d(d,"panLinear",(function(){return ue.S})),A.d(d,"panLog",(function(){return ue.T})),A.d(d,"panPow",(function(){return ue.U})),A.d(d,"panSymlog",(function(){return ue.V})),A.d(d,"peek",(function(){return ue.W})),A.d(d,"quarter",(function(){return ue.X})),A.d(d,"repeat",(function(){return ue.Y})),A.d(d,"span",(function(){return ue.Z})),A.d(d,"splitAccessPath",(function(){return ue.ab})),A.d(d,"stringValue",(function(){return ue.bb})),A.d(d,"toBoolean",(function(){return ue.cb})),A.d(d,"toDate",(function(){return ue.db})),A.d(d,"toNumber",(function(){return ue.eb})),A.d(d,"toSet",(function(){return ue.fb})),A.d(d,"toString",(function(){return ue.gb})),A.d(d,"truncate",(function(){return ue.hb})),A.d(d,"truthy",(function(){return ue.ib})),A.d(d,"utcquarter",(function(){return ue.jb})),A.d(d,"visitArray",(function(){return ue.kb})),A.d(d,"writeConfig",(function(){return ue.lb})),A.d(d,"zero",(function(){return ue.mb})),A.d(d,"zoomLinear",(function(){return ue.nb})),A.d(d,"zoomLog",(function(){return ue.ob})),A.d(d,"zoomPow",(function(){return ue.pb})),A.d(d,"zoomSymlog",(function(){return ue.qb})),A.d(d,"Dataflow",(function(){return it})),A.d(d,"EventStream",(function(){return Le})),A.d(d,"MultiPulse",(function(){return ze})),A.d(d,"Operator",(function(){return _e})),A.d(d,"Parameters",(function(){return xe})),A.d(d,"Pulse",(function(){return Ke})),A.d(d,"Transform",(function(){return at})),A.d(d,"changeset",(function(){return Ge})),A.d(d,"definition",(function(){return gt})),A.d(d,"ingest",(function(){return be})),A.d(d,"isTuple",(function(){return ye})),A.d(d,"transform",(function(){return ct})),A.d(d,"transforms",(function(){return st})),A.d(d,"tupleid",(function(){return ve})),A.d(d,"bandwidthNRD",(function(){return wt})),A.d(d,"bin",(function(){return St})),A.d(d,"bootstrapCI",(function(){return Dt})),A.d(d,"cumulativeLogNormal",(function(){return jt})),A.d(d,"cumulativeNormal",(function(){return Lt})),A.d(d,"cumulativeUniform",(function(){return qt})),A.d(d,"densityLogNormal",(function(){return Jt})),A.d(d,"densityNormal",(function(){return Ot})),A.d(d,"densityUniform",(function(){return Xt})),A.d(d,"dotbin",(function(){return Gt})),A.d(d,"quantileLogNormal",(function(){return Pt})),A.d(d,"quantileNormal",(function(){return Tt})),A.d(d,"quantileUniform",(function(){return zt})),A.d(d,"quantiles",(function(){return mt})),A.d(d,"quartiles",(function(){return bt})),A.d(d,"random",(function(){return Ft})),A.d(d,"randomInteger",(function(){return xt})),A.d(d,"randomKDE",(function(){return Ht})),A.d(d,"randomLCG",(function(){return kt})),A.d(d,"randomLogNormal",(function(){return Vt})),A.d(d,"randomMixture",(function(){return Kt})),A.d(d,"randomNormal",(function(){return Zt})),A.d(d,"randomUniform",(function(){return $t})),A.d(d,"regressionExp",(function(){return oA})),A.d(d,"regressionLinear",(function(){return rA})),A.d(d,"regressionLoess",(function(){return uA})),A.d(d,"regressionLog",(function(){return iA})),A.d(d,"regressionPoly",(function(){return gA})),A.d(d,"regressionPow",(function(){return aA})),A.d(d,"regressionQuad",(function(){return sA})),A.d(d,"sampleCurve",(function(){return hA})),A.d(d,"sampleLogNormal",(function(){return Yt})),A.d(d,"sampleNormal",(function(){return Mt})),A.d(d,"sampleUniform",(function(){return Wt})),A.d(d,"setRandom",(function(){return Rt})),A.d(d,"DATE",(function(){return wA.a})),A.d(d,"DAY",(function(){return wA.b})),A.d(d,"DAYOFYEAR",(function(){return wA.c})),A.d(d,"HOURS",(function(){return wA.d})),A.d(d,"MILLISECONDS",(function(){return wA.e})),A.d(d,"MINUTES",(function(){return wA.f})),A.d(d,"MONTH",(function(){return wA.g})),A.d(d,"QUARTER",(function(){return wA.h})),A.d(d,"SECONDS",(function(){return wA.i})),A.d(d,"TIME_UNITS",(function(){return wA.j})),A.d(d,"WEEK",(function(){return wA.k})),A.d(d,"YEAR",(function(){return wA.l})),A.d(d,"dayofyear",(function(){return wA.m})),A.d(d,"timeBin",(function(){return wA.n})),A.d(d,"timeFloor",(function(){return wA.o})),A.d(d,"timeInterval",(function(){return wA.p})),A.d(d,"timeOffset",(function(){return wA.q})),A.d(d,"timeSequence",(function(){return wA.r})),A.d(d,"timeUnitSpecifier",(function(){return wA.s})),A.d(d,"timeUnits",(function(){return wA.t})),A.d(d,"utcFloor",(function(){return wA.u})),A.d(d,"utcInterval",(function(){return wA.v})),A.d(d,"utcOffset",(function(){return wA.w})),A.d(d,"utcSequence",(function(){return wA.x})),A.d(d,"utcdayofyear",(function(){return wA.y})),A.d(d,"utcweek",(function(){return wA.z})),A.d(d,"week",(function(){return wA.A})),A.d(d,"format",(function(){return he.a})),A.d(d,"formats",(function(){return he.b})),A.d(d,"inferType",(function(){return he.c})),A.d(d,"inferTypes",(function(){return he.d})),A.d(d,"loader",(function(){return he.e})),A.d(d,"read",(function(){return he.f})),A.d(d,"responseType",(function(){return he.g})),A.d(d,"typeParsers",(function(){return he.h})),A.d(d,"Bounds",(function(){return xl})),A.d(d,"CanvasHandler",(function(){return eh})),A.d(d,"CanvasRenderer",(function(){return ih})),A.d(d,"Gradient",(function(){return Zu})),A.d(d,"GroupItem",(function(){return Ul})),A.d(d,"Handler",(function(){return HC})),A.d(d,"Item",(function(){return Nl})),A.d(d,"Marks",(function(){return SC})),A.d(d,"RenderType",(function(){return Lh})),A.d(d,"Renderer",(function(){return JC})),A.d(d,"ResourceLoader",(function(){return _l})),A.d(d,"SVGHandler",(function(){return ah})),A.d(d,"SVGRenderer",(function(){return mh})),A.d(d,"SVGStringRenderer",(function(){return Oh})),A.d(d,"Scenegraph",(function(){return NC})),A.d(d,"boundClip",(function(){return Vh})),A.d(d,"boundContext",(function(){return nI})),A.d(d,"boundItem",(function(){return FC})),A.d(d,"boundMark",(function(){return DC})),A.d(d,"boundStroke",(function(){return Ll})),A.d(d,"domChild",(function(){return OC})),A.d(d,"domClear",(function(){return LC})),A.d(d,"domCreate",(function(){return _C})),A.d(d,"domFind",(function(){return MC})),A.d(d,"font",(function(){return QC})),A.d(d,"fontFamily",(function(){return EC})),A.d(d,"fontSize",(function(){return hC})),A.d(d,"intersect",(function(){return Hh})),A.d(d,"intersectBoxLine",(function(){return CI})),A.d(d,"intersectPath",(function(){return cI})),A.d(d,"intersectPoint",(function(){return uI})),A.d(d,"intersectRule",(function(){return II})),A.d(d,"lineHeight",(function(){return fC})),A.d(d,"markup",(function(){return Bh})),A.d(d,"multiLineOffset",(function(){return BC})),A.d(d,"pathCurves",(function(){return Yu})),A.d(d,"pathEqual",(function(){return Wh})),A.d(d,"pathParse",(function(){return Pu})),A.d(d,"pathRectangle",(function(){return hl})),A.d(d,"pathRender",(function(){return nl})),A.d(d,"pathSymbols",(function(){return al})),A.d(d,"pathTrail",(function(){return fl})),A.d(d,"point",(function(){return ZC})),A.d(d,"renderModule",(function(){return Zh})),A.d(d,"resetSVGClipId",(function(){return Gl})),A.d(d,"resetSVGDefIds",(function(){return Xh})),A.d(d,"sceneEqual",(function(){return Kh})),A.d(d,"sceneFromJSON",(function(){return xC})),A.d(d,"scenePickVisit",(function(){return bI})),A.d(d,"sceneToJSON",(function(){return kC})),A.d(d,"sceneVisit",(function(){return mI})),A.d(d,"sceneZOrder",(function(){return vI})),A.d(d,"serializeXML",(function(){return ph})),A.d(d,"textMetrics",(function(){return gC})),A.d(d,"interpolate",(function(){return Iu})),A.d(d,"interpolateColors",(function(){return cu})),A.d(d,"interpolateRange",(function(){return gu})),A.d(d,"quantizeInterpolator",(function(){return uu})),A.d(d,"scale",(function(){return $c})),A.d(d,"scheme",(function(){return du})),A.d(d,"projection",(function(){return KQ})),A.d(d,"View",(function(){return _G})),A.d(d,"defaultLocale",(function(){return fe.a})),A.d(d,"formatLocale",(function(){return fe.c})),A.d(d,"locale",(function(){return fe.b})),A.d(d,"resetDefaultLocale",(function(){return fe.d})),A.d(d,"timeFormatLocale",(function(){return fe.e})),A.d(d,"expressionFunction",(function(){return BD})),A.d(d,"parse",(function(){return gU})),A.d(d,"runtimeContext",(function(){return FD})),A.d(d,"codegenExpression",(function(){return lS})),A.d(d,"parseExpression",(function(){return gS})),A.d(d,"parseSelector",(function(){return jG})),A.d(d,"version",(function(){return uU}));var B={};A.r(B),A.d(B,"invalidSpec",(function(){return wO})),A.d(B,"FIT_NON_SINGLE",(function(){return SO})),A.d(B,"containerSizeNonSingle",(function(){return FO})),A.d(B,"containerSizeNotCompatibleWithAutosize",(function(){return RO})),A.d(B,"droppingFit",(function(){return DO})),A.d(B,"unknownField",(function(){return GO})),A.d(B,"cannotProjectOnChannelWithoutField",(function(){return kO})),A.d(B,"cannotProjectAggregate",(function(){return xO})),A.d(B,"nearestNotSupportForContinuous",(function(){return NO})),A.d(B,"selectionNotSupported",(function(){return UO})),A.d(B,"selectionNotFound",(function(){return _O})),A.d(B,"SCALE_BINDINGS_CONTINUOUS",(function(){return MO})),A.d(B,"LEGEND_BINDINGS_MUST_HAVE_PROJECTION",(function(){return OO})),A.d(B,"cannotLookupVariableParameter",(function(){return LO})),A.d(B,"noSameUnitLookup",(function(){return TO})),A.d(B,"NEEDS_SAME_SELECTION",(function(){return ZO})),A.d(B,"INTERVAL_INITIALIZED_WITH_X_Y",(function(){return HO})),A.d(B,"noSuchRepeatedValue",(function(){return YO})),A.d(B,"columnsNotSupportByRowCol",(function(){return JO})),A.d(B,"CONCAT_CANNOT_SHARE_AXIS",(function(){return jO})),A.d(B,"unrecognizedParse",(function(){return PO})),A.d(B,"differentParse",(function(){return VO})),A.d(B,"ADD_SAME_CHILD_TWICE",(function(){return KO})),A.d(B,"invalidTransformIgnored",(function(){return WO})),A.d(B,"NO_FIELDS_NEEDS_AS",(function(){return XO})),A.d(B,"customFormatTypeNotAllowed",(function(){return qO})),A.d(B,"projectionOverridden",(function(){return zO})),A.d(B,"REPLACE_ANGLE_WITH_THETA",(function(){return $O})),A.d(B,"primitiveChannelDef",(function(){return eL})),A.d(B,"invalidFieldType",(function(){return tL})),A.d(B,"invalidFieldTypeForCountAggregate",(function(){return AL})),A.d(B,"invalidAggregate",(function(){return nL})),A.d(B,"missingFieldType",(function(){return rL})),A.d(B,"droppingColor",(function(){return iL})),A.d(B,"relativeBandSizeNotSupported",(function(){return oL})),A.d(B,"emptyFieldDef",(function(){return aL})),A.d(B,"LINE_WITH_VARYING_SIZE",(function(){return sL})),A.d(B,"incompatibleChannel",(function(){return gL})),A.d(B,"invalidEncodingChannel",(function(){return cL})),A.d(B,"channelShouldBeDiscrete",(function(){return uL})),A.d(B,"channelShouldBeDiscreteOrDiscretizing",(function(){return lL})),A.d(B,"facetChannelDropped",(function(){return IL})),A.d(B,"discreteChannelCannotEncode",(function(){return CL})),A.d(B,"rangeMarkAlignmentCannotBeExpression",(function(){return hL})),A.d(B,"lineWithRange",(function(){return fL})),A.d(B,"orientOverridden",(function(){return dL})),A.d(B,"CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN",(function(){return BL})),A.d(B,"cannotUseScalePropertyWithNonColor",(function(){return pL})),A.d(B,"cannotUseRelativeBandSizeWithNonBandScale",(function(){return EL})),A.d(B,"unaggregateDomainHasNoEffectForRawField",(function(){return QL})),A.d(B,"unaggregateDomainWithNonSharedDomainOp",(function(){return yL})),A.d(B,"unaggregatedDomainWithLogScale",(function(){return vL})),A.d(B,"cannotApplySizeToNonOrientedMark",(function(){return mL})),A.d(B,"scaleTypeNotWorkWithChannel",(function(){return bL})),A.d(B,"scaleTypeNotWorkWithFieldDef",(function(){return wL})),A.d(B,"scalePropertyNotWorkWithScaleType",(function(){return SL})),A.d(B,"scaleTypeNotWorkWithMark",(function(){return FL})),A.d(B,"stepDropped",(function(){return RL})),A.d(B,"mergeConflictingProperty",(function(){return DL})),A.d(B,"mergeConflictingDomainProperty",(function(){return GL})),A.d(B,"independentScaleMeansIndependentGuide",(function(){return kL})),A.d(B,"domainSortDropped",(function(){return xL})),A.d(B,"MORE_THAN_ONE_SORT",(function(){return NL})),A.d(B,"FACETED_INDEPENDENT_DIFFERENT_SOURCES",(function(){return UL})),A.d(B,"FACETED_INDEPENDENT_SAME_FIELDS_DIFFERENT_SOURCES",(function(){return _L})),A.d(B,"FACETED_INDEPENDENT_SAME_SOURCE",(function(){return ML})),A.d(B,"INVALID_CHANNEL_FOR_AXIS",(function(){return OL})),A.d(B,"cannotStackRangedMark",(function(){return LL})),A.d(B,"cannotStackNonLinearScale",(function(){return TL})),A.d(B,"stackNonSummativeAggregate",(function(){return ZL})),A.d(B,"invalidTimeUnit",(function(){return HL})),A.d(B,"droppedDay",(function(){return YL})),A.d(B,"errorBarCenterAndExtentAreNotNeeded",(function(){return JL})),A.d(B,"errorBarCenterIsUsedWithWrongExtent",(function(){return jL})),A.d(B,"errorBarContinuousAxisHasCustomizedAggregate",(function(){return PL})),A.d(B,"errorBand1DNotSupport",(function(){return VL})),A.d(B,"channelRequiredForBinned",(function(){return KL})),A.d(B,"channelShouldNotBeUsedForBinned",(function(){return WL})),A.d(B,"domainRequiredForThresholdScale",(function(){return XL}));var p={};A.r(p),A.d(p,"version",(function(){return wz})),A.d(p,"compile",(function(){return vz})),A.d(p,"normalize",(function(){return Xj})),A.d(p,"deepEqual",(function(){return n_})),A.d(p,"duplicate",(function(){return r_})),A.d(p,"pick",(function(){return i_})),A.d(p,"omit",(function(){return o_})),A.d(p,"stringify",(function(){return a_})),A.d(p,"hash",(function(){return s_})),A.d(p,"isNullOrFalse",(function(){return g_})),A.d(p,"contains",(function(){return c_})),A.d(p,"some",(function(){return u_})),A.d(p,"every",(function(){return l_})),A.d(p,"mergeDeep",(function(){return I_})),A.d(p,"unique",(function(){return h_})),A.d(p,"isEqual",(function(){return f_})),A.d(p,"setEqual",(function(){return d_})),A.d(p,"hasIntersection",(function(){return B_})),A.d(p,"prefixGenerator",(function(){return p_})),A.d(p,"fieldIntersection",(function(){return E_})),A.d(p,"isEmpty",(function(){return Q_})),A.d(p,"keys",(function(){return y_})),A.d(p,"vals",(function(){return v_})),A.d(p,"entries",(function(){return m_})),A.d(p,"isBoolean",(function(){return b_})),A.d(p,"varName",(function(){return w_})),A.d(p,"logicalExpr",(function(){return S_})),A.d(p,"deleteNestedProperty",(function(){return F_})),A.d(p,"titleCase",(function(){return R_})),A.d(p,"accessPathWithDatum",(function(){return D_})),A.d(p,"flatAccessWithDatum",(function(){return G_})),A.d(p,"replacePathInField",(function(){return x_})),A.d(p,"replaceAll",(function(){return N_})),A.d(p,"removePathFromField",(function(){return U_})),A.d(p,"accessPathDepth",(function(){return __})),A.d(p,"getFirstDefined",(function(){return M_})),A.d(p,"uniqueId",(function(){return L_})),A.d(p,"resetIdCounter",(function(){return T_})),A.d(p,"internalField",(function(){return Z_})),A.d(p,"isInternalField",(function(){return H_})),A.d(p,"normalizeAngle",(function(){return Y_})),A.d(p,"isNumeric",(function(){return J_}));var E={};A.r(E),A.d(E,"dark",(function(){return Fz})),A.d(E,"excel",(function(){return Rz})),A.d(E,"fivethirtyeight",(function(){return Dz})),A.d(E,"ggplot2",(function(){return Gz})),A.d(E,"googlecharts",(function(){return Lz})),A.d(E,"latimes",(function(){return Nz})),A.d(E,"quartz",(function(){return Uz})),A.d(E,"urbaninstitute",(function(){return Oz})),A.d(E,"version",(function(){return Tz})),A.d(E,"vox",(function(){return _z}));var Q=A(83),y=A(1),v=A(4),m=A(24),b=A(9),w=A(10),S=A(13),F=A.n(S),R=A(0),D=A.n(R),G={};function k(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:G,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:G,A=Object.keys(e),n=Object.keys(t);return e===t||A.length===n.length&&A.every((function(A){return e[A]===t[A]}))}var x=function(){var e=function(t,A){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var A in t)t.hasOwnProperty(A)&&(e[A]=t[A])})(t,A)};return function(t,A){function n(){this.constructor=t}e(t,A),t.prototype=null===A?Object.create(A):(n.prototype=A.prototype,new n)}}(),N=Object.prototype.hasOwnProperty;function U(e,t){return N.call(e,t)}function _(e){if(Array.isArray(e)){for(var t=new Array(e.length),A=0;A<t.length;A++)t[A]=""+A;return t}if(Object.keys)return Object.keys(e);t=[];for(var n in e)U(e,n)&&t.push(n);return t}function M(e){switch(typeof e){case"object":return JSON.parse(JSON.stringify(e));case"undefined":return null;default:return e}}function O(e){for(var t,A=0,n=e.length;A<n;){if(!((t=e.charCodeAt(A))>=48&&t<=57))return!1;A++}return!0}function L(e){return-1===e.indexOf("/")&&-1===e.indexOf("~")?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function T(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function Z(e,t){var A=[e];for(var n in t){var r="object"===typeof t[n]?JSON.stringify(t[n],null,2):t[n];"undefined"!==typeof r&&A.push(n+": "+r)}return A.join("\n")}var H=function(e){function t(t,A,n,r,i){var o=this.constructor,a=e.call(this,Z(t,{name:A,index:n,operation:r,tree:i}))||this;return a.name=A,a.index=n,a.operation=r,a.tree=i,Object.setPrototypeOf(a,o.prototype),a.message=Z(t,{name:A,index:n,operation:r,tree:i}),a}return x(t,e),t}(Error),Y=H,J=M,j={add:function(e,t,A){return e[t]=this.value,{newDocument:A}},remove:function(e,t,A){var n=e[t];return delete e[t],{newDocument:A,removed:n}},replace:function(e,t,A){var n=e[t];return e[t]=this.value,{newDocument:A,removed:n}},move:function(e,t,A){var n=V(A,this.path);n&&(n=M(n));var r=K(A,{op:"remove",path:this.from}).removed;return K(A,{op:"add",path:this.path,value:r}),{newDocument:A,removed:n}},copy:function(e,t,A){var n=V(A,this.from);return K(A,{op:"add",path:this.path,value:M(n)}),{newDocument:A}},test:function(e,t,A){return{newDocument:A,test:$(e[t],this.value)}},_get:function(e,t,A){return this.value=e[t],{newDocument:A}}},P={add:function(e,t,A){return O(t)?e.splice(t,0,this.value):e[t]=this.value,{newDocument:A,index:t}},remove:function(e,t,A){return{newDocument:A,removed:e.splice(t,1)[0]}},replace:function(e,t,A){var n=e[t];return e[t]=this.value,{newDocument:A,removed:n}},move:j.move,copy:j.copy,test:j.test,_get:j._get};function V(e,t){if(""==t)return e;var A={op:"_get",path:t};return K(e,A),A.value}function K(e,t,A,n,r,i){if(void 0===A&&(A=!1),void 0===n&&(n=!0),void 0===r&&(r=!0),void 0===i&&(i=0),A&&("function"==typeof A?A(t,0,e,t.path):q(t,0)),""===t.path){var o={newDocument:e};if("add"===t.op)return o.newDocument=t.value,o;if("replace"===t.op)return o.newDocument=t.value,o.removed=e,o;if("move"===t.op||"copy"===t.op)return o.newDocument=V(e,t.from),"move"===t.op&&(o.removed=e),o;if("test"===t.op){if(o.test=$(e,t.value),!1===o.test)throw new Y("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return o.newDocument=e,o}if("remove"===t.op)return o.removed=e,o.newDocument=null,o;if("_get"===t.op)return t.value=e,o;if(A)throw new Y("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",i,t,e);return o}n||(e=M(e));var a=(t.path||"").split("/"),s=e,g=1,c=a.length,u=void 0,l=void 0,I=void 0;for(I="function"==typeof A?A:q;;){if((l=a[g])&&-1!=l.indexOf("~")&&(l=T(l)),r&&"__proto__"==l)throw new TypeError("JSON-Patch: modifying `__proto__` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(A&&void 0===u&&(void 0===s[l]?u=a.slice(0,g).join("/"):g==c-1&&(u=t.path),void 0!==u&&I(t,0,e,u)),g++,Array.isArray(s)){if("-"===l)l=s.length;else{if(A&&!O(l))throw new Y("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",i,t,e);O(l)&&(l=~~l)}if(g>=c){if(A&&"add"===t.op&&l>s.length)throw new Y("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",i,t,e);if(!1===(o=P[t.op].call(t,s,l,e)).test)throw new Y("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return o}}else if(g>=c){if(!1===(o=j[t.op].call(t,s,l,e)).test)throw new Y("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return o}if(s=s[l],A&&g<c&&(!s||"object"!==typeof s))throw new Y("Cannot perform operation at the desired path","OPERATION_PATH_UNRESOLVABLE",i,t,e)}}function W(e,t,A,n,r){if(void 0===n&&(n=!0),void 0===r&&(r=!0),A&&!Array.isArray(t))throw new Y("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");n||(e=M(e));for(var i=new Array(t.length),o=0,a=t.length;o<a;o++)i[o]=K(e,t[o],A,!0,r,o),e=i[o].newDocument;return i.newDocument=e,i}function X(e,t,A){var n=K(e,t);if(!1===n.test)throw new Y("Test operation failed","TEST_OPERATION_FAILED",A,t,e);return n.newDocument}function q(e,t,A,n){if("object"!==typeof e||null===e||Array.isArray(e))throw new Y("Operation is not an object","OPERATION_NOT_AN_OBJECT",t,e,A);if(!j[e.op])throw new Y("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,A);if("string"!==typeof e.path)throw new Y("Operation `path` property is not a string","OPERATION_PATH_INVALID",t,e,A);if(0!==e.path.indexOf("/")&&e.path.length>0)throw new Y('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,A);if(("move"===e.op||"copy"===e.op)&&"string"!==typeof e.from)throw new Y("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,A);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&void 0===e.value)throw new Y("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,A);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&function e(t){if(void 0===t)return!0;if(t)if(Array.isArray(t)){for(var A=0,n=t.length;A<n;A++)if(e(t[A]))return!0}else if("object"===typeof t){var r=_(t),i=r.length;for(A=0;A<i;A++)if(e(t[r[A]]))return!0}return!1}(e.value))throw new Y("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,A);if(A)if("add"==e.op){var r=e.path.split("/").length,i=n.split("/").length;if(r!==i+1&&r!==i)throw new Y("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,A)}else if("replace"===e.op||"remove"===e.op||"_get"===e.op){if(e.path!==n)throw new Y("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,A)}else if("move"===e.op||"copy"===e.op){var o=z([{op:"_get",path:e.from,value:void 0}],A);if(o&&"OPERATION_PATH_UNRESOLVABLE"===o.name)throw new Y("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,A)}}function z(e,t,A){try{if(!Array.isArray(e))throw new Y("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)W(M(t),M(e),A||!0);else{A=A||q;for(var n=0;n<e.length;n++)A(e[n],n,t,void 0)}}catch(r){if(r instanceof Y)return r;throw r}}function $(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){var A,n,r,i=Array.isArray(e),o=Array.isArray(t);if(i&&o){if((n=e.length)!=t.length)return!1;for(A=n;0!==A--;)if(!$(e[A],t[A]))return!1;return!0}if(i!=o)return!1;var a=Object.keys(e);if((n=a.length)!==Object.keys(t).length)return!1;for(A=n;0!==A--;)if(!t.hasOwnProperty(a[A]))return!1;for(A=n;0!==A--;)if(!$(e[r=a[A]],t[r]))return!1;return!0}return e!==e&&t!==t}var ee=new WeakMap,te=function(e){this.observers=new Map,this.obj=e},Ae=function(e,t){this.callback=e,this.observer=t};function ne(e,t){t.unobserve()}function re(e,t){var A,n=function(e){return ee.get(e)}(e);if(n){var r=function(e,t){return e.observers.get(t)}(n,t);A=r&&r.observer}else n=new te(e),ee.set(e,n);if(A)return A;if(A={},n.value=M(e),t){A.callback=t,A.next=null;var i=function(){ie(A)},o=function(){clearTimeout(A.next),A.next=setTimeout(i)};"undefined"!==typeof window&&(window.addEventListener("mouseup",o),window.addEventListener("keyup",o),window.addEventListener("mousedown",o),window.addEventListener("keydown",o),window.addEventListener("change",o))}return A.patches=[],A.object=e,A.unobserve=function(){ie(A),clearTimeout(A.next),function(e,t){e.observers.delete(t.callback)}(n,A),"undefined"!==typeof window&&(window.removeEventListener("mouseup",o),window.removeEventListener("keyup",o),window.removeEventListener("mousedown",o),window.removeEventListener("keydown",o),window.removeEventListener("change",o))},n.observers.set(t,new Ae(t,A)),A}function ie(e,t){void 0===t&&(t=!1);var A=ee.get(e.object);oe(A.value,e.object,e.patches,"",t),e.patches.length&&W(A.value,e.patches);var n=e.patches;return n.length>0&&(e.patches=[],e.callback&&e.callback(n)),n}function oe(e,t,A,n,r){if(t!==e){"function"===typeof t.toJSON&&(t=t.toJSON());for(var i=_(t),o=_(e),a=!1,s=o.length-1;s>=0;s--){var g=e[u=o[s]];if(!U(t,u)||void 0===t[u]&&void 0!==g&&!1===Array.isArray(t))Array.isArray(e)===Array.isArray(t)?(r&&A.push({op:"test",path:n+"/"+L(u),value:M(g)}),A.push({op:"remove",path:n+"/"+L(u)}),a=!0):(r&&A.push({op:"test",path:n,value:e}),A.push({op:"replace",path:n,value:t}),!0);else{var c=t[u];"object"==typeof g&&null!=g&&"object"==typeof c&&null!=c&&Array.isArray(g)===Array.isArray(c)?oe(g,c,A,n+"/"+L(u),r):g!==c&&(!0,r&&A.push({op:"test",path:n+"/"+L(u),value:M(g)}),A.push({op:"replace",path:n+"/"+L(u),value:M(c)}))}}if(a||i.length!=o.length)for(s=0;s<i.length;s++){var u;U(e,u=i[s])||void 0===t[u]||A.push({op:"add",path:n+"/"+L(u),value:M(t[u])})}}}function ae(e,t,A){void 0===A&&(A=!1);var n=[];return oe(e,t,n,"",A),n}Object.assign({},n,r,{JsonPatchError:H,deepClone:M,escapePathComponent:L,unescapePathComponent:T});var se=A(431),ge=A.n(se),ce=A(524),ue=A(5),le=A(3),Ie=A.n(le),Ce=A(12),he=A(177),fe=A(131);function de(e){var t=e||ue.y,A=[],n={};return A.add=function(e){var r=t(e);return n[r]||(n[r]=1,A.push(e)),A},A.remove=function(e){var r=t(e);if(n[r]){n[r]=0;var i=A.indexOf(e);i>=0&&A.splice(i,1)}return A},A}function Be(e,t){return pe.apply(this,arguments)}function pe(){return(pe=Object(Ce.a)(Ie.a.mark((function e(t,A){return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,A(t);case 3:e.next=8;break;case 5:e.prev=5,e.t0=e.catch(0),t.error(e.t0);case 8:case"end":return e.stop()}}),e,null,[[0,5]])})))).apply(this,arguments)}var Ee=Symbol("vega_id"),Qe=1;function ye(e){return!(!e||!ve(e))}function ve(e){return e[Ee]}function me(e,t){return e[Ee]=t,e}function be(e){var t=e===Object(e)?e:{data:e};return ve(t)?t:me(t,Qe++)}function we(e){return Se(e,be({}))}function Se(e,t){for(var A in e)t[A]=e[A];return t}function Fe(e,t){return me(t,ve(e))}function Re(e,t){return e?t?function(A,n){return e(A,n)||ve(t(A))-ve(t(n))}:function(t,A){return e(t,A)||ve(t)-ve(A)}:null}function De(e){return e&&e.constructor===Ge}function Ge(){var e=[],t=[],A=[],n=[],r=[],i=null,o=!1;return{constructor:Ge,insert:function(t){for(var A=Object(ue.i)(t),n=A.length,r=0;r<n;++r)e.push(A[r]);return this},remove:function(e){for(var A=Object(ue.E)(e)?n:t,r=Object(ue.i)(e),i=r.length,o=0;o<i;++o)A.push(r[o]);return this},modify:function(e,t,n){var i={field:t,value:Object(ue.m)(n)};return Object(ue.E)(e)?(i.filter=e,r.push(i)):(i.tuple=e,A.push(i)),this},encode:function(e,t){return Object(ue.E)(e)?r.push({filter:e,field:t}):A.push({tuple:e,field:t}),this},clean:function(e){return i=e,this},reflow:function(){return o=!0,this},pulse:function(a,s){var g,c,u,l,I,C,h={},f={};for(g=0,c=s.length;g<c;++g)h[ve(s[g])]=1;for(g=0,c=t.length;g<c;++g)h[ve(I=t[g])]=-1;for(g=0,c=n.length;g<c;++g)l=n[g],s.forEach((function(e){l(e)&&(h[ve(e)]=-1)}));for(g=0,c=e.length;g<c;++g)C=ve(I=e[g]),h[C]?h[C]=1:a.add.push(be(e[g]));for(g=0,c=s.length;g<c;++g)I=s[g],h[ve(I)]<0&&a.rem.push(I);function d(e,t,A){A?e[t]=A(e):a.encode=t,o||(f[ve(e)]=e)}for(g=0,c=A.length;g<c;++g)I=(u=A[g]).tuple,l=u.field,(C=h[ve(I)])>0&&(d(I,l,u.value),a.modifies(l));for(g=0,c=r.length;g<c;++g)u=r[g],l=u.filter,s.forEach((function(e){l(e)&&h[ve(e)]>0&&d(e,u.field,u.value)})),a.modifies(u.field);if(o)a.mod=t.length||n.length?s.filter((function(e){return h[ve(e)]>0})):s.slice();else for(C in f)a.mod.push(f[C]);return(i||null==i&&(t.length||n.length))&&a.clean(!0),a}}}var ke="_:mod:_";function xe(){Object.defineProperty(this,ke,{writable:!0,value:{}})}xe.prototype={set:function(e,t,A,n){var r=this,i=r[e],o=r[ke];return null!=t&&t>=0?(i[t]!==A||n)&&(i[t]=A,o[t+":"+e]=-1,o[e]=-1):(i!==A||n)&&(r[e]=A,o[e]=Object(ue.B)(A)?1+A.length:-1),r},modified:function(e,t){var A=this[ke];if(!arguments.length){for(var n in A)if(A[n])return!0;return!1}if(Object(ue.B)(e)){for(var r=0;r<e.length;++r)if(A[e[r]])return!0;return!1}return null!=t&&t>=0?t+1<A[e]||!!A[t+":"+e]:!!A[e]},clear:function(){return this[ke]={},this}};var Ne=0,Ue=new xe;function _e(e,t,A,n){this.id=++Ne,this.value=e,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,t&&(this._update=t),A&&this.parameters(A,n)}function Me(e){return function(t){var A=this.flags;return 0===arguments.length?!!(A&e):(this.flags=t?A|e:A&~e,this)}}_e.prototype={targets:function(){return this._targets||(this._targets=de(ue.x))},set:function(e){return this.value!==e?(this.value=e,1):0},skip:Me(1),modified:Me(2),parameters:function(e,t,A){var n=this;t=!1!==t;var r,i,o,a,s=this._argval=this._argval||new xe,g=this._argops=this._argops||[],c=[],u=function(e,A,r){r instanceof _e?(r!==n&&(t&&r.targets().add(n),c.push(r)),g.push({op:r,name:e,index:A})):s.set(e,A,r)};for(r in e)if(i=e[r],"pulse"===r)Object(ue.i)(i).forEach((function(e){e instanceof _e?e!==n&&(e.targets().add(n),c.push(e)):Object(ue.o)("Pulse parameters must be operator instances.")})),this.source=i;else if(Object(ue.B)(i))for(s.set(r,-1,Array(o=i.length)),a=0;a<o;++a)u(r,a,i[a]);else u(r,-1,i);return this.marshall().clear(),A&&(g.initonly=!0),c},marshall:function(e){var t,A,n,r,i=this._argval||Ue,o=this._argops;if(o){var a=o.length;for(A=0;A<a;++A)r=(n=(t=o[A]).op).modified()&&n.stamp===e,i.set(t.name,t.index,n.value,r);if(o.initonly){for(A=0;A<a;++A)(t=o[A]).op.targets().remove(this);this._argops=null,this._update=null}}return i},detach:function(){var e,t,A,n=this._argops;if(n)for(e=0,t=n.length;e<t;++e)(A=n[e].op)._targets&&A._targets.remove(this);this.pulse=null,this.source=null},evaluate:function(e){var t=this._update;if(t){var A=this.marshall(e.stamp),n=t.call(this,A,e);if(A.clear(),n!==this.value)this.value=n;else if(!this.modified())return e.StopPropagation}},run:function(e){return e.stamp<this.stamp?e.StopPropagation:(this.skip()?(this.skip(!1),t=0):t=this.evaluate(e),this.pulse=t||e);var t}};var Oe=0;function Le(e,t,A){this.id=++Oe,this.value=null,A&&(this.receive=A),e&&(this._filter=e),t&&(this._apply=t)}function Te(e,t,A){return new Le(e,t,A)}function Ze(){return(Ze=Object(Ce.a)(Ie.a.mark((function e(t,A){var n,r,i;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this,r=0,e.prev=2,e.next=5,n.loader().load(t,{context:"dataflow",response:Object(he.g)(A&&A.type)});case 5:i=e.sent;try{i=n.parse(i,A)}catch(o){r=-2,n.warn("Data ingestion failed",t,o)}e.next=13;break;case 9:e.prev=9,e.t0=e.catch(2),r=-1,n.warn("Loading failed",t,e.t0);case 13:return e.abrupt("return",{data:i,status:r});case 14:case"end":return e.stop()}}),e,this,[[2,9]])})))).apply(this,arguments)}function He(){return(He=Object(Ce.a)(Ie.a.mark((function e(t,A,n){var r,i,o;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(i=(r=this)._pending||Ye(r)).requests+=1,e.next=4,r.request(A,n);case 4:return o=e.sent,r.pulse(t,r.changeset().remove(ue.ib).insert(o.data||[])),i.done(),e.abrupt("return",o);case 8:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}function Ye(e){var t,A=new Promise((function(e){return t=e}));return A.requests=0,A.done=function(){0===--A.requests&&(e._pending=null,t(e))},e._pending=A}Le.prototype={_filter:ue.ib,_apply:ue.y,targets:function(){return this._targets||(this._targets=de(ue.x))},consume:function(e){return arguments.length?(this._consume=!!e,this):!!this._consume},receive:function(e){if(this._filter(e)){for(var t=this.value=this._apply(e),A=this._targets,n=A?A.length:0,r=0;r<n;++r)A[r].receive(t);this._consume&&(e.preventDefault(),e.stopPropagation())}},filter:function(e){var t=Te(e);return this.targets().add(t),t},apply:function(e){var t=Te(null,e);return this.targets().add(t),t},merge:function(){var e=Te();this.targets().add(e);for(var t=0,A=arguments.length;t<A;++t)arguments[t].targets().add(e);return e},throttle:function(e){var t=-1;return this.filter((function(){var A=Date.now();return A-t>e?(t=A,1):0}))},debounce:function(e){var t=Te();return this.targets().add(Te(null,null,Object(ue.n)(e,(function(e){var A=e.dataflow;t.receive(e),A&&A.run&&A.run()})))),t},between:function(e,t){var A=!1;return e.targets().add(Te(null,null,(function(){return A=!0}))),t.targets().add(Te(null,null,(function(){return A=!1}))),this.filter((function(){return A}))},detach:function(){this._filter=ue.ib,this._targets=null}};var Je={skip:!0};function je(e,t,A,n,r,i){var o,a,s=Object(ue.p)({},i,Je);Object(ue.E)(A)||(A=Object(ue.m)(A)),void 0===n?o=function(t){return e.touch(A(t))}:Object(ue.E)(n)?(a=new _e(null,n,r,!1),o=function(t){a.evaluate(t);var n=A(t),r=a.value;De(r)?e.pulse(n,r,i):e.update(n,r,s)}):o=function(t){return e.update(A(t),n,s)},t.apply(o)}function Pe(e,t,A,n,r,i){if(void 0===n)t.targets().add(A);else{var o=i||{},a=new _e(null,function(e,t){return t=Object(ue.E)(t)?t:Object(ue.m)(t),e?function(A,n){var r=t(A,n);return e.skip()||(e.skip(r!==this.value).value=r),r}:t}(A,n),r,!1);a.modified(o.force),a.rank=t.rank,t.targets().add(a),A&&(a.skip(!0),a.value=A.value,a.targets().add(A),e.connect(A,[a]))}}var Ve={};function Ke(e,t,A){this.dataflow=e,this.stamp=null==t?-1:t,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=A||null}function We(e,t){var A=[];return Object(ue.kb)(e,t,(function(e){return A.push(e)})),A}function Xe(e,t){var A={};return e.visit(t,(function(e){A[ve(e)]=1})),function(e){return A[ve(e)]?null:e}}function qe(e,t){return e?function(A,n){return e(A,n)&&t(A,n)}:t}function ze(e,t,A,n){var r=this,i=A.length,o=0;this.dataflow=e,this.stamp=t,this.fields=null,this.encode=n||null,this.pulses=A;for(var a=0;a<i;++a){var s=A[a];if(s.stamp===t){if(s.fields){var g=r.fields||(r.fields={});for(var c in s.fields)g[c]=1}s.changed(r.ADD)&&(o|=r.ADD),s.changed(r.REM)&&(o|=r.REM),s.changed(r.MOD)&&(o|=r.MOD)}}this.changes=o}function $e(){return($e=Object(Ce.a)(Ie.a.mark((function e(t,A,n){var r,i,o,a,s,g,c,u,l;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=[],!(r=this)._pulse){e.next=3;break}return e.abrupt("return",tt(r));case 3:if(!r._pending){e.next=6;break}return e.next=6,r._pending;case 6:if(!A){e.next=9;break}return e.next=9,Be(r,A);case 9:if(r._touched.length){e.next=12;break}return r.debug("Dataflow invoked, but nothing to do."),e.abrupt("return",r);case 12:o=++r._clock,r._pulse=new Ke(r,o,t),r._touched.forEach((function(e){return r._enqueue(e,!0)})),r._touched=de(ue.x),a=0,e.prev=17;case 18:if(!(r._heap.size()>0)){e.next=35;break}if((s=r._heap.pop()).rank===s.qrank){e.next=23;break}return r._enqueue(s,!0),e.abrupt("continue",18);case 23:if(!(g=s.run(r._getPulse(s,t))).then){e.next=30;break}return e.next=27,g;case 27:g=e.sent,e.next=31;break;case 30:g.async&&(i.push(g.async),g=Ve);case 31:g!==Ve&&s._targets&&s._targets.forEach((function(e){return r._enqueue(e)})),++a,e.next=18;break;case 35:e.next=41;break;case 37:e.prev=37,e.t0=e.catch(17),r._heap.clear(),c=e.t0;case 41:if(r._input={},r._pulse=null,r.debug("Pulse ".concat(o,": ").concat(a," operators")),c&&(r._postrun=[],r.error(c)),!r._postrun.length){e.next=55;break}u=r._postrun.sort((function(e,t){return t.priority-e.priority})),r._postrun=[],l=0;case 49:if(!(l<u.length)){e.next=55;break}return e.next=52,Be(r,u[l].callback);case 52:++l,e.next=49;break;case 55:if(!n){e.next=58;break}return e.next=58,Be(r,n);case 58:return i.length&&Promise.all(i).then((function(e){return r.runAsync(null,(function(){e.forEach((function(e){try{e(r)}catch(t){r.error(t)}}))}))})),e.abrupt("return",r);case 60:case"end":return e.stop()}}),e,this,[[17,37]])})))).apply(this,arguments)}function et(){return(et=Object(Ce.a)(Ie.a.mark((function e(t,A,n){var r,i=this;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._running){e.next=5;break}return e.next=3,this._running;case 3:e.next=0;break;case 5:return r=function(){return i._running=null},(this._running=this.evaluate(t,A,n)).then(r,r),e.abrupt("return",this._running);case 8:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}function tt(e){return e.error("Dataflow already running. Use runAsync() to chain invocations."),e}Ke.prototype={StopPropagation:Ve,ADD:1,REM:2,MOD:4,ADD_REM:3,ADD_MOD:5,ALL:7,REFLOW:8,SOURCE:16,NO_SOURCE:32,NO_FIELDS:64,fork:function(e){return new Ke(this.dataflow).init(this,e)},clone:function(){var e=this.fork(7);return e.add=e.add.slice(),e.rem=e.rem.slice(),e.mod=e.mod.slice(),e.source&&(e.source=e.source.slice()),e.materialize(23)},addAll:function(){var e=this;return!e.source||e.add===e.rem||!e.rem.length&&e.source.length===e.add.length||((e=new Ke(this.dataflow).init(this)).add=e.source,e.rem=[]),e},init:function(e,t){var A=this;return A.stamp=e.stamp,A.encode=e.encode,!e.fields||64&t||(A.fields=e.fields),1&t?(A.addF=e.addF,A.add=e.add):(A.addF=null,A.add=[]),2&t?(A.remF=e.remF,A.rem=e.rem):(A.remF=null,A.rem=[]),4&t?(A.modF=e.modF,A.mod=e.mod):(A.modF=null,A.mod=[]),32&t?(A.srcF=null,A.source=null):(A.srcF=e.srcF,A.source=e.source,e.cleans&&(A.cleans=e.cleans)),A},runAfter:function(e){this.dataflow.runAfter(e)},changed:function(e){var t=e||7;return 1&t&&this.add.length||2&t&&this.rem.length||4&t&&this.mod.length},reflow:function(e){if(e)return this.fork(7).reflow();var t=this.add.length,A=this.source&&this.source.length;return A&&A!==t&&(this.mod=this.source,t&&this.filter(4,Xe(this,1))),this},clean:function(e){return arguments.length?(this.cleans=!!e,this):this.cleans},modifies:function(e){var t=this.fields||(this.fields={});return Object(ue.B)(e)?e.forEach((function(e){return t[e]=!0})):t[e]=!0,this},modified:function(e,t){var A=this.fields;return!(!t&&!this.mod.length||!A)&&(arguments.length?Object(ue.B)(e)?e.some((function(e){return A[e]})):A[e]:!!A)},filter:function(e,t){var A=this;return 1&e&&(A.addF=qe(A.addF,t)),2&e&&(A.remF=qe(A.remF,t)),4&e&&(A.modF=qe(A.modF,t)),16&e&&(A.srcF=qe(A.srcF,t)),A},materialize:function(e){var t=this;return 1&(e=e||7)&&t.addF&&(t.add=We(t.add,t.addF),t.addF=null),2&e&&t.remF&&(t.rem=We(t.rem,t.remF),t.remF=null),4&e&&t.modF&&(t.mod=We(t.mod,t.modF),t.modF=null),16&e&&t.srcF&&(t.source=t.source.filter(t.srcF),t.srcF=null),t},visit:function(e,t){var A=this,n=t;if(16&e)return Object(ue.kb)(A.source,A.srcF,n),A;1&e&&Object(ue.kb)(A.add,A.addF,n),2&e&&Object(ue.kb)(A.rem,A.remF,n),4&e&&Object(ue.kb)(A.mod,A.modF,n);var r=A.source;if(8&e&&r){var i=A.add.length+A.mod.length;i===r.length||(i?Object(ue.kb)(r,Xe(A,5),n):Object(ue.kb)(r,A.srcF,n))}return A}},Object(ue.z)(ze,Ke,{fork:function(e){var t=new Ke(this.dataflow).init(this,e&this.NO_FIELDS);return void 0!==e&&(e&t.ADD&&this.visit(t.ADD,(function(e){return t.add.push(e)})),e&t.REM&&this.visit(t.REM,(function(e){return t.rem.push(e)})),e&t.MOD&&this.visit(t.MOD,(function(e){return t.mod.push(e)}))),t},changed:function(e){return this.changes&e},modified:function(e){var t=this,A=t.fields;return A&&t.changes&t.MOD?Object(ue.B)(e)?e.some((function(e){return A[e]})):A[e]:0},filter:function(){Object(ue.o)("MultiPulse does not support filtering.")},materialize:function(){Object(ue.o)("MultiPulse does not support materialization.")},visit:function(e,t){var A=this,n=A.pulses,r=n.length,i=0;if(e&A.SOURCE)for(;i<r;++i)n[i].visit(e,t);else for(;i<r;++i)n[i].stamp===A.stamp&&n[i].visit(e,t);return A}});var At={skip:!1,force:!1};function nt(e){var t=[];return{clear:function(){return t=[]},size:function(){return t.length},peek:function(){return t[0]},push:function(A){return t.push(A),rt(t,0,t.length-1,e)},pop:function(){var A,n=t.pop();return t.length?(A=t[0],t[0]=n,function(e,t,A){var n,r=t,i=e.length,o=e[t],a=1+(t<<1);for(;a<i;)(n=a+1)<i&&A(e[a],e[n])>=0&&(a=n),e[t]=e[a],a=1+((t=a)<<1);e[t]=o,rt(e,r,t,A)}(t,0,e)):A=n,A}}}function rt(e,t,A,n){for(var r,i,o=e[A];A>t&&n(o,r=e[i=A-1>>1])<0;)e[A]=r,A=i;return e[A]=o}function it(){this.logger(Object(ue.M)()),this.logLevel(ue.b),this._clock=0,this._rank=0,this._locale=Object(fe.a)();try{this._loader=Object(he.e)()}catch(e){}this._touched=de(ue.x),this._input={},this._pulse=null,this._heap=nt((function(e,t){return e.qrank-t.qrank})),this._postrun=[]}function ot(e){return function(){return this._log[e].apply(this,arguments)}}function at(e,t){_e.call(this,e,null,t)}it.prototype={stamp:function(){return this._clock},loader:function(e){return arguments.length?(this._loader=e,this):this._loader},locale:function(e){return arguments.length?(this._locale=e,this):this._locale},logger:function(e){return arguments.length?(this._log=e,this):this._log},error:ot("error"),warn:ot("warn"),info:ot("info"),debug:ot("debug"),logLevel:ot("level"),cleanThreshold:1e4,add:function(e,t,A,n){var r,i=1;return e instanceof _e?r=e:e&&e.prototype instanceof _e?r=new e:Object(ue.E)(e)?r=new _e(null,e):(i=0,r=new _e(e,t)),this.rank(r),i&&(n=A,A=t),A&&this.connect(r,r.parameters(A,n)),this.touch(r),r},connect:function(e,t){for(var A=e.rank,n=t.length,r=0;r<n;++r)if(A<t[r].rank)return void this.rerank(e)},rank:function(e){e.rank=++this._rank},rerank:function(e){for(var t,A,n,r=[e];r.length;)if(this.rank(t=r.pop()),A=t._targets)for(n=A.length;--n>=0;)r.push(t=A[n]),t===e&&Object(ue.o)("Cycle detected in dataflow graph.")},pulse:function(e,t,A){this.touch(e,A||At);var n=new Ke(this,this._clock+(this._pulse?0:1)),r=e.pulse&&e.pulse.source||[];return n.target=e,this._input[e.id]=t.pulse(n,r),this},touch:function(e,t){var A=t||At;return this._pulse?this._enqueue(e):this._touched.add(e),A.skip&&e.skip(!0),this},update:function(e,t,A){var n=A||At;return(e.set(t)||n.force)&&this.touch(e,n),this},changeset:Ge,ingest:function(e,t,A){return t=this.parse(t,A),this.pulse(e,this.changeset().insert(t))},parse:function(e,t){var A=this.locale();return Object(he.f)(e,t,A.timeParse,A.utcParse)},preload:function(e,t,A){return He.apply(this,arguments)},request:function(e,t){return Ze.apply(this,arguments)},events:function(e,t,A,n){for(var r,i=this,o=Te(A,n),a=function(e){e.dataflow=i;try{o.receive(e)}catch(t){i.error(t)}finally{i.run()}},s=(r="string"===typeof e&&"undefined"!==typeof document?document.querySelectorAll(e):Object(ue.i)(e)).length,g=0;g<s;++g)r[g].addEventListener(t,a);return o},on:function(e,t,A,n,r){return(e instanceof _e?Pe:je)(this,e,t,A,n,r),this},evaluate:function(e,t,A){return $e.apply(this,arguments)},run:function(e,t,A){return this._pulse?tt(this):(this.evaluate(e,t,A),this)},runAsync:function(e,t,A){return et.apply(this,arguments)},runAfter:function(e,t,A){if(this._pulse||t)this._postrun.push({priority:A||0,callback:e});else try{e(this)}catch(n){this.error(n)}},_enqueue:function(e,t){var A=e.stamp<this._clock;A&&(e.stamp=this._clock),(A||t)&&(e.qrank=e.rank,this._heap.push(e))},_getPulse:function(e,t){var A=e.source,n=this._clock;return A&&Object(ue.B)(A)?new ze(this,n,A.map((function(e){return e.pulse})),t):this._input[e.id]||function(e,t){if(t&&t.stamp===e.stamp)return t;e=e.fork(),t&&t!==Ve&&(e.source=t.source);return e}(this._pulse,A&&A.pulse)}},Object(ue.z)(at,_e,{run:function(e){var t,A=this;return e.stamp<this.stamp?e.StopPropagation:(this.skip()?this.skip(!1):t=this.evaluate(e),(t=t||e).then?t=t.then((function(e){return A.pulse=e})):t!==e.StopPropagation&&(this.pulse=t),t)},evaluate:function(e){var t=this.marshall(e.stamp),A=this.transform(t,e);return t.clear(),A},transform:function(){}});var st={};function gt(e){var t=ct(e);return t&&t.Definition||null}function ct(e){return e=e&&e.toLowerCase(),Object(ue.w)(st,e)?st[e]:null}var ut=A(6),lt=A(8),It=function(e,t){return e<t?-1:e>t?1:e>=t?0:NaN};function Ct(e,t){var A;if(void 0===t){var n,r=Object(ut.a)(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;null!=i&&(A<i||void 0===A&&i>=i)&&(A=i)}}catch(c){r.e(c)}finally{r.f()}}else{var o,a=-1,s=Object(ut.a)(e);try{for(s.s();!(o=s.n()).done;){var g=o.value;null!=(g=t(g,++a,e))&&(A<g||void 0===A&&g>=g)&&(A=g)}}catch(c){s.e(c)}finally{s.f()}}return A}function ht(e,t){var A;if(void 0===t){var n,r=Object(ut.a)(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;null!=i&&(A>i||void 0===A&&i>=i)&&(A=i)}}catch(c){r.e(c)}finally{r.f()}}else{var o,a=-1,s=Object(ut.a)(e);try{for(s.s();!(o=s.n()).done;){var g=o.value;null!=(g=t(g,++a,e))&&(A>g||void 0===A&&g>=g)&&(A=g)}}catch(c){s.e(c)}finally{s.f()}}return A}function ft(e,t,A){var n=e[t];e[t]=e[A],e[A]=n}var dt=Ie.a.mark(pt),Bt=function(e){return null===e?NaN:+e};function pt(e,t){var A,n,r,i,o,a,s;return Ie.a.wrap((function(g){for(;;)switch(g.prev=g.next){case 0:if(void 0!==t){g.next=21;break}A=Object(ut.a)(e),g.prev=2,A.s();case 4:if((n=A.n()).done){g.next=11;break}if(!(null!=(r=n.value)&&(r=+r)>=r)){g.next=9;break}return g.next=9,r;case 9:g.next=4;break;case 11:g.next=16;break;case 13:g.prev=13,g.t0=g.catch(2),A.e(g.t0);case 16:return g.prev=16,A.f(),g.finish(16);case 19:g.next=40;break;case 21:i=-1,o=Object(ut.a)(e),g.prev=23,o.s();case 25:if((a=o.n()).done){g.next=32;break}if(s=a.value,!(null!=(s=t(s,++i,e))&&(s=+s)>=s)){g.next=30;break}return g.next=30,s;case 30:g.next=25;break;case 32:g.next=37;break;case 34:g.prev=34,g.t1=g.catch(23),o.e(g.t1);case 37:return g.prev=37,o.f(),g.finish(37);case 40:case"end":return g.stop()}}),dt,null,[[2,13,16,19],[23,34,37,40]])}function Et(e,t,A){if(n=(e=Float64Array.from(pt(e,A))).length){if((t=+t)<=0||n<2)return ht(e);if(t>=1)return Ct(e);var n,r=(n-1)*t,i=Math.floor(r),o=Ct(function e(t,A){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length-1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:It;r>n;){if(r-n>600){var o=r-n+1,a=A-n+1,s=Math.log(o),g=.5*Math.exp(2*s/3),c=.5*Math.sqrt(s*g*(o-g)/o)*(a-o/2<0?-1:1),u=Math.max(n,Math.floor(A-a*g/o+c)),l=Math.min(r,Math.floor(A+(o-a)*g/o+c));e(t,A,u,l,i)}var I=t[A],C=n,h=r;for(ft(t,n,A),i(t[r],I)>0&&ft(t,n,r);C<h;){for(ft(t,C,h),++C,--h;i(t[C],I)<0;)++C;for(;i(t[h],I)>0;)--h}0===i(t[n],I)?ft(t,n,h):ft(t,++h,r),h<=A&&(n=h+1),A<=h&&(r=h-1)}return t}(e,i).subarray(0,i+1));return o+(ht(e.subarray(i+1))-o)*(r-i)}}function Qt(e,t){var A=function(e,t){var A,n=0,r=0,i=0;if(void 0===t){var o,a=Object(ut.a)(e);try{for(a.s();!(o=a.n()).done;){var s=o.value;null!=s&&(s=+s)>=s&&(i+=(A=s-r)*(s-(r+=A/++n)))}}catch(I){a.e(I)}finally{a.f()}}else{var g,c=-1,u=Object(ut.a)(e);try{for(u.s();!(g=u.n()).done;){var l=g.value;null!=(l=t(l,++c,e))&&(l=+l)>=l&&(i+=(A=l-r)*(l-(r+=A/++n)))}}catch(I){u.e(I)}finally{u.f()}}if(n>1)return i/(n-1)}(e,t);return A?Math.sqrt(A):A}var yt=Ie.a.mark(vt);function vt(e,t){var A,n,r,i,o,a,s;return Ie.a.wrap((function(g){for(;;)switch(g.prev=g.next){case 0:if(null!=t){g.next=21;break}A=Object(ut.a)(e),g.prev=2,A.s();case 4:if((n=A.n()).done){g.next=11;break}if(!(null!=(r=n.value)&&""!==r&&(r=+r)>=r)){g.next=9;break}return g.next=9,r;case 9:g.next=4;break;case 11:g.next=16;break;case 13:g.prev=13,g.t0=g.catch(2),A.e(g.t0);case 16:return g.prev=16,A.f(),g.finish(16);case 19:g.next=41;break;case 21:i=-1,o=Object(ut.a)(e),g.prev=23,o.s();case 25:if((a=o.n()).done){g.next=33;break}if(s=a.value,!(null!=(s=t(s,++i,e))&&""!==s&&(s=+s)>=s)){g.next=31;break}return g.next=31,s;case 31:g.next=25;break;case 33:g.next=38;break;case 35:g.prev=35,g.t1=g.catch(23),o.e(g.t1);case 38:return g.prev=38,o.f(),g.finish(38);case 41:case"end":return g.stop()}}),yt,null,[[2,13,16,19],[23,35,38,41]])}function mt(e,t,A){var n=Float64Array.from(vt(e,A));return n.sort(It),t.map((function(e){return function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Bt;if(n=e.length){if((t=+t)<=0||n<2)return+A(e[0],0,e);if(t>=1)return+A(e[n-1],n-1,e);var n,r=(n-1)*t,i=Math.floor(r),o=+A(e[i],i,e),a=+A(e[i+1],i+1,e);return o+(a-o)*(r-i)}}(n,e)}))}function bt(e,t){return mt(e,[.25,.5,.75],t)}function wt(e,t){var A=e.length,n=Qt(e,t),r=bt(e,t),i=(r[2]-r[0])/1.34;return 1.06*(Math.min(n,i)||n||Math.abs(r[0])||1)*Math.pow(A,-.2)}function St(e){var t,A,n,r,i,o,a=e.maxbins||20,s=e.base||10,g=Math.log(s),c=e.divide||[5,2],u=e.extent[0],l=e.extent[1],I=e.span||l-u||Math.abs(u)||1;if(e.step)t=e.step;else if(e.steps){for(r=I/a,i=0,o=e.steps.length;i<o&&e.steps[i]<r;++i);t=e.steps[Math.max(0,i-1)]}else{for(A=Math.ceil(Math.log(a)/g),n=e.minstep||0,t=Math.max(n,Math.pow(s,Math.round(Math.log(I)/g)-A));Math.ceil(I/t)>a;)t*=s;for(i=0,o=c.length;i<o;++i)(r=t/c[i])>=n&&I/r<=a&&(t=r)}var C=(r=Math.log(t))>=0?0:1+~~(-r/g),h=Math.pow(s,-C-1);return(e.nice||void 0===e.nice)&&(u=u<(r=Math.floor(u/t+h)*t)?r-t:r,l=Math.ceil(l/t)*t),{start:u,stop:l===u?u+t:l,step:t}}var Ft=Math.random;function Rt(e){Ft=e}function Dt(e,t,A,n){if(!e.length)return[void 0,void 0];var r,i,o,a,s=Float64Array.from(vt(e,n)),g=s.length,c=t;for(o=0,a=Array(c);o<c;++o){for(r=0,i=0;i<g;++i)r+=s[~~(Ft()*g)];a[o]=r/g}return a.sort(It),[Et(a,A/2),Et(a,1-A/2)]}function Gt(e,t,A,n){n=n||function(e){return e};for(var r,i=e.length,o=new Float64Array(i),a=0,s=1,g=n(e[0]),c=g,u=g+t;s<i;++s){if((r=n(e[s]))>=u){for(c=(g+c)/2;a<s;++a)o[a]=c;u=r+t,g=r}c=r}for(c=(g+c)/2;a<s;++a)o[a]=c;return A?function(e,t){var A,n,r=e.length,i=0,o=1;for(;e[i]===e[o];)++o;for(;o<r;){for(A=o+1;e[o]===e[A];)++A;if(e[o]-e[o-1]<t){for(n=o+(i+A-o-o>>1);n<o;)e[n++]=e[o];for(;n>o;)e[n--]=e[i]}i=o,o=A}return e}(o,t+t/4):o}function kt(e){return function(){return(e=(1103515245*e+12345)%2147483647)/2147483647}}function xt(e,t){var A,n,r;null==t&&(t=e,e=0);var i={min:function(e){return arguments.length?(r=n-(A=e||0),i):A},max:function(e){return arguments.length?(r=(n=e||0)-A,i):n},sample:function(){return A+Math.floor(r*Ft())},pdf:function(e){return e===Math.floor(e)&&e>=A&&e<n?1/r:0},cdf:function(e){var t=Math.floor(e);return t<A?0:t>=n?1:(t-A+1)/r},icdf:function(e){return e>=0&&e<=1?A-1+Math.floor(e*r):NaN}};return i.min(e).max(t)}var Nt=Math.sqrt(2*Math.PI),Ut=Math.SQRT2,_t=NaN;function Mt(e,t){e=e||0,t=null==t?1:t;var A,n,r=0,i=0;if(_t===_t)r=_t,_t=NaN;else{do{A=(r=2*Ft()-1)*r+(i=2*Ft()-1)*i}while(0===A||A>1);r*=n=Math.sqrt(-2*Math.log(A)/A),_t=i*n}return e+r*t}function Ot(e,t,A){var n=(e-(t||0))/(A=null==A?1:A);return Math.exp(-.5*n*n)/(A*Nt)}function Lt(e,t,A){var n,r=(e-(t=t||0))/(A=null==A?1:A),i=Math.abs(r);if(i>37)n=0;else{var o=Math.exp(-i*i/2);i<7.07106781186547?(n=o*((((((.0352624965998911*i+.700383064443688)*i+6.37396220353165)*i+33.912866078383)*i+112.079291497871)*i+221.213596169931)*i+220.206867912376),n/=((((((.0883883476483184*i+1.75566716318264)*i+16.064177579207)*i+86.7807322029461)*i+296.564248779674)*i+637.333633378831)*i+793.826512519948)*i+440.413735824752):n=o/(i+1/(i+2/(i+3/(i+4/(i+.65)))))/2.506628274631}return r>0?1-n:n}function Tt(e,t,A){return e<0||e>1?NaN:(t||0)+(null==A?1:A)*Ut*function(e){var t,A=-Math.log((1-e)*(1+e));A<6.25?t=1.6536545626831027+(t=.24015818242558962+(t=(t=(t=.00018673420803405714+(t=(t=(t=4.2347877827932404e-7+(t=(t=(t=1.0512122733215323e-9+(t=(t=(t=26335093153082323e-28+(t=(t=(t=6637638134358324e-30+(t=20972767875968562e-33+(t=(t=11157877678025181e-33+(t=128584807152564e-32+(t=(t=-364441206401782e-35)*(A-=3.125)-16850591381820166e-35)*A)*A)*A-1333171662854621e-31)*A)*A)*A-4054566272975207e-29)*A-8151934197605472e-29)*A)*A-12975133253453532e-27)*A-5415412054294628e-26)*A)*A-4.112633980346984e-9)*A-2.9070369957882005e-8)*A)*A-13654692000834679e-22)*A-13882523362786469e-21)*A)*A-.000740702534166267)*A-.006033670871430149)*A)*A:A<16?(A=Math.sqrt(A)-3.25,t=3.0838856104922208+(t=1.0052589676941592+(t=.005370914553590064+(t=(t=.002491442096107851+(t=(t=.0009532893797373805+(t=(t=24031110387097894e-21+(t=6828485145957318e-20+(t=(t=12475304481671779e-21+(t=29234449089955446e-22+(t=(t=15027403968909828e-22+(t=1.8239629214389228e-8+(t=(t=9.075656193888539e-8+(t=2.2137376921775787e-9)*A)*A-2.7517406297064545e-7)*A)*A)*A-4013867526981546e-21)*A)*A)*A-47318229009055734e-21)*A)*A)*A-.0003550375203628475)*A)*A-.0016882755560235047)*A)*A-.003751208507569241)*A)*A)*A):Number.isFinite(A)?(A=Math.sqrt(A)-5,t=4.849906401408584+(t=1.0103004648645344+(t=(t=(t=7599527703001776e-20+(t=(t=4526062597223154e-21+(t=(t=2.2900482228026655e-7+(t=(t=2.914795345090108e-8+(t=(t=7.61570120807834e-9+(t=(t=1.5076572693500548e-9+(t=(t=-27109920616438573e-27)*A-2.555641816996525e-10)*A)*A-3.789465440126737e-9)*A)*A-1.496002662714924e-8)*A)*A-6.771199775845234e-8)*A)*A-9.9298272942317e-7)*A)*A-1968177810553167e-20)*A)*A-.00021503011930044477)*A-.00013871931833623122)*A)*A):t=1/0;return t*e}(2*e-1)}function Zt(e,t){var A,n,r={mean:function(e){return arguments.length?(A=e||0,r):A},stdev:function(e){return arguments.length?(n=null==e?1:e,r):n},sample:function(){return Mt(A,n)},pdf:function(e){return Ot(e,A,n)},cdf:function(e){return Lt(e,A,n)},icdf:function(e){return Tt(e,A,n)}};return r.mean(e).stdev(t)}function Ht(e,t){var A=Zt(),n=0,r={data:function(A){return arguments.length?(e=A,n=A?A.length:0,r.bandwidth(t)):e},bandwidth:function(A){return arguments.length?(!(t=A)&&e&&(t=wt(e)),r):t},sample:function(){return e[~~(Ft()*n)]+t*A.sample()},pdf:function(r){for(var i=0,o=0;o<n;++o)i+=A.pdf((r-e[o])/t);return i/t/n},cdf:function(r){for(var i=0,o=0;o<n;++o)i+=A.cdf((r-e[o])/t);return i/n},icdf:function(){throw Error("KDE icdf not supported.")}};return r.data(e)}function Yt(e,t){return e=e||0,t=null==t?1:t,Math.exp(e+Mt()*t)}function Jt(e,t,A){if(e<=0)return 0;t=t||0,A=null==A?1:A;var n=(Math.log(e)-t)/A;return Math.exp(-.5*n*n)/(A*Nt*e)}function jt(e,t,A){return Lt(Math.log(e),t,A)}function Pt(e,t,A){return Math.exp(Tt(e,t,A))}function Vt(e,t){var A,n,r={mean:function(e){return arguments.length?(A=e||0,r):A},stdev:function(e){return arguments.length?(n=null==e?1:e,r):n},sample:function(){return Yt(A,n)},pdf:function(e){return Jt(e,A,n)},cdf:function(e){return jt(e,A,n)},icdf:function(e){return Pt(e,A,n)}};return r.mean(e).stdev(t)}function Kt(e,t){var A,n=0;function r(e){var t,A=[],r=0;for(t=0;t<n;++t)r+=A[t]=null==e[t]?1:+e[t];for(t=0;t<n;++t)A[t]/=r;return A}var i={weights:function(e){return arguments.length?(A=r(t=e||[]),i):t},distributions:function(A){return arguments.length?(A?(n=A.length,e=A):(n=0,e=[]),i.weights(t)):e},sample:function(){for(var t=Ft(),r=e[n-1],i=A[0],o=0;o<n-1;i+=A[++o])if(t<i){r=e[o];break}return r.sample()},pdf:function(t){for(var r=0,i=0;i<n;++i)r+=A[i]*e[i].pdf(t);return r},cdf:function(t){for(var r=0,i=0;i<n;++i)r+=A[i]*e[i].cdf(t);return r},icdf:function(){throw Error("Mixture icdf not supported.")}};return i.distributions(e).weights(t)}function Wt(e,t){return null==t&&(t=null==e?1:e,e=0),e+(t-e)*Ft()}function Xt(e,t,A){return null==A&&(A=null==t?1:t,t=0),e>=t&&e<=A?1/(A-t):0}function qt(e,t,A){return null==A&&(A=null==t?1:t,t=0),e<t?0:e>A?1:(e-t)/(A-t)}function zt(e,t,A){return null==A&&(A=null==t?1:t,t=0),e>=0&&e<=1?t+e*(A-t):NaN}function $t(e,t){var A,n,r={min:function(e){return arguments.length?(A=e||0,r):A},max:function(e){return arguments.length?(n=null==e?1:e,r):n},sample:function(){return Wt(A,n)},pdf:function(e){return Xt(e,A,n)},cdf:function(e){return qt(e,A,n)},icdf:function(e){return zt(e,A,n)}};return null==t&&(t=null==e?1:e,e=0),r.min(e).max(t)}function eA(e,t,A,n){var r=n-e*e,i=Math.abs(r)<1e-24?0:(A-e*t)/r;return[t-i*e,i]}function tA(e,t,A,n){e=e.filter((function(e){var n=t(e),r=A(e);return null!=n&&(n=+n)>=n&&null!=r&&(r=+r)>=r})),n&&e.sort((function(e,A){return t(e)-t(A)}));var r,i,o,a,s=e.length,g=new Float64Array(s),c=new Float64Array(s),u=0,l=0,I=0,C=Object(ut.a)(e);try{for(C.s();!(a=C.n()).done;)o=a.value,g[u]=r=+t(o),c[u]=i=+A(o),l+=(r-l)/++u,I+=(i-I)/u}catch(h){C.e(h)}finally{C.f()}for(u=0;u<s;++u)g[u]-=l,c[u]-=I;return[g,c,l,I]}function AA(e,t,A,n){var r,i,o,a=-1,s=Object(ut.a)(e);try{for(s.s();!(o=s.n()).done;){var g=o.value;r=t(g),i=A(g),null!=r&&(r=+r)>=r&&null!=i&&(i=+i)>=i&&n(r,i,++a)}}catch(c){s.e(c)}finally{s.f()}}function nA(e,t,A,n,r){var i=0,o=0;return AA(e,t,A,(function(e,t){var A=t-r(e),a=t-n;i+=A*A,o+=a*a})),1-i/o}function rA(e,t,A){var n=0,r=0,i=0,o=0,a=0;AA(e,t,A,(function(e,t){++a,n+=(e-n)/a,r+=(t-r)/a,i+=(e*t-i)/a,o+=(e*e-o)/a}));var s=eA(n,r,i,o),g=function(e){return s[0]+s[1]*e};return{coef:s,predict:g,rSquared:nA(e,t,A,r,g)}}function iA(e,t,A){var n=0,r=0,i=0,o=0,a=0;AA(e,t,A,(function(e,t){++a,e=Math.log(e),n+=(e-n)/a,r+=(t-r)/a,i+=(e*t-i)/a,o+=(e*e-o)/a}));var s=eA(n,r,i,o),g=function(e){return s[0]+s[1]*Math.log(e)};return{coef:s,predict:g,rSquared:nA(e,t,A,r,g)}}function oA(e,t,A){var n,r,i,o=tA(e,t,A),a=Object(lt.a)(o,4),s=a[0],g=(a[1],a[2]),c=a[3],u=0,l=0,I=0,C=0,h=0;AA(e,t,A,(function(e,t){n=s[h++],r=Math.log(t),u+=(t*r-u)/h,l+=((i=n*t)-l)/h,I+=(i*r-I)/h,C+=(n*i-C)/h}));var f=eA(l/c,u/c,I/c,C/c),d=Object(lt.a)(f,2),B=d[0],p=d[1],E=function(e){return Math.exp(B+p*(e-g))};return{coef:[Math.exp(B-p*g),p],predict:E,rSquared:nA(e,t,A,c,E)}}function aA(e,t,A){var n=0,r=0,i=0,o=0,a=0,s=0;AA(e,t,A,(function(e,t){var A=Math.log(e),g=Math.log(t);++s,n+=(A-n)/s,r+=(g-r)/s,i+=(A*g-i)/s,o+=(A*A-o)/s,a+=(t-a)/s}));var g=eA(n,r,i,o),c=function(e){return g[0]*Math.pow(e,g[1])};return g[0]=Math.exp(g[0]),{coef:g,predict:c,rSquared:nA(e,t,A,a,c)}}function sA(e,t,A){var n,r,i,o,a=tA(e,t,A),s=Object(lt.a)(a,4),g=s[0],c=s[1],u=s[2],l=s[3],I=g.length,C=0,h=0,f=0,d=0,B=0;for(n=0;n<I;)r=g[n],i=c[n++],C+=((o=r*r)-C)/n,h+=(o*r-h)/n,f+=(o*o-f)/n,d+=(r*i-d)/n,B+=(o*i-B)/n;var p=f-C*C,E=C*p-h*h,Q=(B*C-d*h)/E,y=(d*p-B*h)/E,v=-Q*C,m=function(e){return Q*(e-=u)*e+y*e+v+l};return{coef:[v-y*u+Q*u*u+l,y-2*Q*u,Q],predict:m,rSquared:nA(e,t,A,l,m)}}function gA(e,t,A,n){if(1===n)return rA(e,t,A);if(2===n)return sA(e,t,A);var r,i,o,a,s,g=tA(e,t,A),c=Object(lt.a)(g,4),u=c[0],l=c[1],I=c[2],C=c[3],h=u.length,f=[],d=[],B=n+1;for(r=0;r<B;++r){for(o=0,a=0;o<h;++o)a+=Math.pow(u[o],r)*l[o];for(f.push(a),s=new Float64Array(B),i=0;i<B;++i){for(o=0,a=0;o<h;++o)a+=Math.pow(u[o],r+i);s[i]=a}d.push(s)}d.push(f);var p=function(e){var t,A,n,r,i,o=e.length-1,a=[];for(t=0;t<o;++t){for(r=t,A=t+1;A<o;++A)Math.abs(e[t][A])>Math.abs(e[t][r])&&(r=A);for(n=t;n<o+1;++n)i=e[n][t],e[n][t]=e[n][r],e[n][r]=i;for(A=t+1;A<o;++A)for(n=o;n>=t;n--)e[n][A]-=e[n][t]*e[t][A]/e[t][t]}for(A=o-1;A>=0;--A){for(i=0,n=A+1;n<o;++n)i+=e[n][A]*a[n];a[A]=(e[o][A]-i)/e[A][A]}return a}(d),E=function(e){e-=I;var t=C+p[0]+p[1]*e+p[2]*e*e;for(r=3;r<B;++r)t+=p[r]*Math.pow(e,r);return t};return{coef:cA(B,p,-I,C),predict:E,rSquared:nA(e,t,A,C,E)}}function cA(e,t,A,n){var r,i,o,a,s=Array(e);for(r=0;r<e;++r)s[r]=0;for(r=e-1;r>=0;--r)for(o=t[r],a=1,s[r]+=o,i=1;i<=r;++i)a*=(r+1-i)/i,s[r-i]+=o*Math.pow(A,i)*a;return s[0]+=n,s}function uA(e,t,A,n){for(var r=tA(e,t,A,!0),i=Object(lt.a)(r,4),o=i[0],a=i[1],s=i[2],g=i[3],c=o.length,u=Math.max(2,~~(n*c)),l=new Float64Array(c),I=new Float64Array(c),C=new Float64Array(c).fill(1),h=-1;++h<=2;){for(var f=[0,u-1],d=0;d<c;++d){for(var B=o[d],p=f[0],E=f[1],Q=B-o[p]>o[E]-B?p:E,y=0,v=0,m=0,b=0,w=0,S=1/Math.abs(o[Q]-B||1),F=p;F<=E;++F){var R=o[F],D=a[F],G=lA(Math.abs(B-R)*S)*C[F],k=R*G;y+=G,v+=k,m+=D*G,b+=D*k,w+=R*k}var x=eA(v/y,m/y,b/y,w/y),N=Object(lt.a)(x,2),U=N[0],_=N[1];l[d]=U+_*B,I[d]=Math.abs(a[d]-l[d]),IA(o,d+1,f)}if(2===h)break;var M=Et(I,.5,void 0);if(Math.abs(M)<1e-12)break;for(var O,L,T=0;T<c;++T)O=I[T]/(6*M),C[T]=O>=1?1e-12:(L=1-O*O)*L}return function(e,t,A,n){for(var r,i=e.length,o=[],a=0,s=0,g=[];a<i;++a)r=e[a]+A,g[0]===r?g[1]+=(t[a]-g[1])/++s:(s=0,g[1]+=n,g=[r,t[a]],o.push(g));return g[1]+=n,o}(o,l,s,g)}function lA(e){return(e=1-e*e*e)*e*e}function IA(e,t,A){var n=e[t],r=A[0],i=A[1]+1;if(!(i>=e.length))for(;t>r&&e[i]-n<=n-e[r];)A[0]=++r,A[1]=i,++i}var CA=.5*Math.PI/180;function hA(e,t,A,n){A=A||25,n=Math.max(A,n||200);var r=function(t){return[t,e(t)]},i=t[0],o=t[1],a=o-i,s=a/n,g=[r(i)],c=[];if(A===n){for(var u=1;u<n;++u)g.push(r(i+u/A*a));return g.push(r(o)),g}c.push(r(o));for(var l=A;--l>0;)c.push(r(i+l/A*a));for(var I=g[0],C=c[c.length-1],h=1/a,f=function(e,t){for(var A=e,n=e,r=t.length,i=0;i<r;++i){var o=t[i][1];o<A&&(A=o),o>n&&(n=o)}return 1/(n-A)}(I[1],c);C;){var d=r((I[0]+C[0])/2);d[0]-I[0]>=s&&fA(I,d,C,h,f)>CA?c.push(d):(I=C,g.push(C),c.pop()),C=c[c.length-1]}return g}function fA(e,t,A,n,r){var i=Math.atan2(r*(A[1]-e[1]),n*(A[0]-e[0])),o=Math.atan2(r*(t[1]-e[1]),n*(t[0]-e[0]));return Math.abs(i-o)}function dA(e,t){var A;if(void 0===t){var n,r=Object(ut.a)(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;null!=i&&(A<i||void 0===A&&i>=i)&&(A=i)}}catch(c){r.e(c)}finally{r.f()}}else{var o,a=-1,s=Object(ut.a)(e);try{for(s.s();!(o=s.n()).done;){var g=o.value;null!=(g=t(g,++a,e))&&(A<g||void 0===A&&g>=g)&&(A=g)}}catch(c){s.e(c)}finally{s.f()}}return A}function BA(e,t){var A;if(void 0===t){var n,r=Object(ut.a)(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;null!=i&&(A>i||void 0===A&&i>=i)&&(A=i)}}catch(c){r.e(c)}finally{r.f()}}else{var o,a=-1,s=Object(ut.a)(e);try{for(s.s();!(o=s.n()).done;){var g=o.value;null!=(g=t(g,++a,e))&&(A>g||void 0===A&&g>=g)&&(A=g)}}catch(c){s.e(c)}finally{s.f()}}return A}var pA=function(e,t){return e<t?-1:e>t?1:e>=t?0:NaN};function EA(e,t,A){var n=e[t];e[t]=e[A],e[A]=n}var QA=Ie.a.mark(yA);function yA(e,t){var A,n,r,i,o,a,s;return Ie.a.wrap((function(g){for(;;)switch(g.prev=g.next){case 0:if(void 0!==t){g.next=21;break}A=Object(ut.a)(e),g.prev=2,A.s();case 4:if((n=A.n()).done){g.next=11;break}if(!(null!=(r=n.value)&&(r=+r)>=r)){g.next=9;break}return g.next=9,r;case 9:g.next=4;break;case 11:g.next=16;break;case 13:g.prev=13,g.t0=g.catch(2),A.e(g.t0);case 16:return g.prev=16,A.f(),g.finish(16);case 19:g.next=40;break;case 21:i=-1,o=Object(ut.a)(e),g.prev=23,o.s();case 25:if((a=o.n()).done){g.next=32;break}if(s=a.value,!(null!=(s=t(s,++i,e))&&(s=+s)>=s)){g.next=30;break}return g.next=30,s;case 30:g.next=25;break;case 32:g.next=37;break;case 34:g.prev=34,g.t1=g.catch(23),o.e(g.t1);case 37:return g.prev=37,o.f(),g.finish(37);case 40:case"end":return g.stop()}}),QA,null,[[2,13,16,19],[23,34,37,40]])}function vA(e,t,A){if(n=(e=Float64Array.from(yA(e,A))).length){if((t=+t)<=0||n<2)return BA(e);if(t>=1)return dA(e);var n,r=(n-1)*t,i=Math.floor(r),o=dA(function e(t,A){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length-1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:pA;r>n;){if(r-n>600){var o=r-n+1,a=A-n+1,s=Math.log(o),g=.5*Math.exp(2*s/3),c=.5*Math.sqrt(s*g*(o-g)/o)*(a-o/2<0?-1:1),u=Math.max(n,Math.floor(A-a*g/o+c)),l=Math.min(r,Math.floor(A+(o-a)*g/o+c));e(t,A,u,l,i)}var I=t[A],C=n,h=r;for(EA(t,n,A),i(t[r],I)>0&&EA(t,n,r);C<h;){for(EA(t,C,h),++C,--h;i(t[C],I)<0;)++C;for(;i(t[h],I)>0;)--h}0===i(t[n],I)?EA(t,n,h):EA(t,++h,r),h<=A&&(n=h+1),A<=h&&(r=h-1)}return t}(e,i).subarray(0,i+1));return o+(BA(e.subarray(i+1))-o)*(r-i)}}var mA=function(e,t,A){e=+e,t=+t,A=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+A;for(var n=-1,r=0|Math.max(0,Math.ceil((t-e)/A)),i=new Array(r);++n<r;)i[n]=e+n*A;return i},bA=function(e){var t=e,A=e;function n(e,t,n,r){for(null==n&&(n=0),null==r&&(r=e.length);n<r;){var i=n+r>>>1;A(e[i],t)<0?n=i+1:r=i}return n}return 1===e.length&&(t=function(t,A){return e(t)-A},A=function(e){return function(t,A){return pA(e(t),A)}}(e)),{left:n,center:function(e,A,r,i){null==r&&(r=0),null==i&&(i=e.length);var o=n(e,A,r,i-1);return o>r&&t(e[o-1],A)>-t(e[o],A)?o-1:o},right:function(e,t,n,r){for(null==n&&(n=0),null==r&&(r=e.length);n<r;){var i=n+r>>>1;A(e[i],t)>0?r=i:n=i+1}return n}}};var wA=A(46);function SA(e){return e&&e.length?1===e.length?e[0]:(t=e,function(e){for(var A=t.length,n=1,r=String(t[0](e));n<A;++n)r+="|"+t[n](e);return r}):function(){return""};var t}function FA(e,t,A){return A||e+(t?"_"+t:"")}var RA=function(){},DA={init:RA,add:RA,rem:RA,idx:0},GA={values:{init:function(e){return e.cell.store=!0},value:function(e){return e.cell.data.values()},idx:-1},count:{value:function(e){return e.cell.num}},__count__:{value:function(e){return e.missing+e.valid}},missing:{value:function(e){return e.missing}},valid:{value:function(e){return e.valid}},sum:{init:function(e){return e.sum=0},value:function(e){return e.sum},add:function(e,t){return e.sum+=+t},rem:function(e,t){return e.sum-=t}},product:{init:function(e){return e.product=1},value:function(e){return e.valid?e.product:void 0},add:function(e,t){return e.product*=t},rem:function(e,t){return e.product/=t}},mean:{init:function(e){return e.mean=0},value:function(e){return e.valid?e.mean:void 0},add:function(e,t){return e.mean_d=t-e.mean,e.mean+=e.mean_d/e.valid},rem:function(e,t){return e.mean_d=t-e.mean,e.mean-=e.valid?e.mean_d/e.valid:e.mean}},average:{value:function(e){return e.valid?e.mean:void 0},req:["mean"],idx:1},variance:{init:function(e){return e.dev=0},value:function(e){return e.valid>1?e.dev/(e.valid-1):void 0},add:function(e,t){return e.dev+=e.mean_d*(t-e.mean)},rem:function(e,t){return e.dev-=e.mean_d*(t-e.mean)},req:["mean"],idx:1},variancep:{value:function(e){return e.valid>1?e.dev/e.valid:void 0},req:["variance"],idx:2},stdev:{value:function(e){return e.valid>1?Math.sqrt(e.dev/(e.valid-1)):void 0},req:["variance"],idx:2},stdevp:{value:function(e){return e.valid>1?Math.sqrt(e.dev/e.valid):void 0},req:["variance"],idx:2},stderr:{value:function(e){return e.valid>1?Math.sqrt(e.dev/(e.valid*(e.valid-1))):void 0},req:["variance"],idx:2},distinct:{value:function(e){return e.cell.data.distinct(e.get)},req:["values"],idx:3},ci0:{value:function(e){return e.cell.data.ci0(e.get)},req:["values"],idx:3},ci1:{value:function(e){return e.cell.data.ci1(e.get)},req:["values"],idx:3},median:{value:function(e){return e.cell.data.q2(e.get)},req:["values"],idx:3},q1:{value:function(e){return e.cell.data.q1(e.get)},req:["values"],idx:3},q3:{value:function(e){return e.cell.data.q3(e.get)},req:["values"],idx:3},min:{init:function(e){return e.min=void 0},value:function(e){return e.min=Number.isNaN(e.min)?e.cell.data.min(e.get):e.min},add:function(e,t){(t<e.min||void 0===e.min)&&(e.min=t)},rem:function(e,t){t<=e.min&&(e.min=NaN)},req:["values"],idx:4},max:{init:function(e){return e.max=void 0},value:function(e){return e.max=Number.isNaN(e.max)?e.cell.data.max(e.get):e.max},add:function(e,t){(t>e.max||void 0===e.max)&&(e.max=t)},rem:function(e,t){t>=e.max&&(e.max=NaN)},req:["values"],idx:4},argmin:{init:function(e){return e.argmin=void 0},value:function(e){return e.argmin||e.cell.data.argmin(e.get)},add:function(e,t,A){t<e.min&&(e.argmin=A)},rem:function(e,t){t<=e.min&&(e.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:function(e){return e.argmax=void 0},value:function(e){return e.argmax||e.cell.data.argmax(e.get)},add:function(e,t,A){t>e.max&&(e.argmax=A)},rem:function(e,t){t>=e.max&&(e.argmax=void 0)},req:["max","values"],idx:3}},kA=Object.keys(GA);function xA(e,t){return GA[e](t)}function NA(e,t){return e.idx-t.idx}function UA(){var e=this;this.valid=0,this.missing=0,this._ops.forEach((function(t){return t.init(e)}))}function _A(e,t){var A=this;null!=e&&""!==e?e===e&&(++this.valid,this._ops.forEach((function(n){return n.add(A,e,t)}))):++this.missing}function MA(e,t){var A=this;null!=e&&""!==e?e===e&&(--this.valid,this._ops.forEach((function(n){return n.rem(A,e,t)}))):--this.missing}function OA(e){var t=this;return this._out.forEach((function(A){return e[A.out]=A.value(t)})),e}function LA(e,t){var A=t||ue.y,n=function(e){var t={};return e.forEach((function(e){return t[e.name]=e})),e.forEach((function e(A){A.req&&A.req.forEach((function(A){t[A]||e(t[A]=GA[A]())}))})),Object.values(t).sort(NA)}(e),r=e.slice().sort(NA);function i(e){this._ops=n,this._out=r,this.cell=e,this.init()}return i.prototype.init=UA,i.prototype.add=_A,i.prototype.rem=MA,i.prototype.set=OA,i.prototype.get=A,i.fields=e.map((function(e){return e.out})),i}function TA(e){this._key=e?Object(ue.u)(e):ve,this.reset()}kA.forEach((function(e){GA[e]=function(e,t){return function(A){return Object(ue.p)({name:e,out:A||e},DA,t)}}(e,GA[e])}));var ZA=TA.prototype;function HA(e){at.call(this,null,e),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}ZA.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},ZA.add=function(e){this._add.push(e)},ZA.rem=function(e){this._rem.push(e)},ZA.values=function(){if(this._get=null,0===this._rem.length)return this._add;var e,t,A,n=this._add,r=this._rem,i=this._key,o=n.length,a=r.length,s=Array(o-a),g={};for(e=0;e<a;++e)g[i(r[e])]=1;for(e=0,t=0;e<o;++e)g[i(A=n[e])]?g[i(A)]=0:s[t++]=A;return this._rem=[],this._add=s},ZA.distinct=function(e){for(var t,A=this.values(),n={},r=A.length,i=0;--r>=0;)t=e(A[r])+"",Object(ue.w)(n,t)||(n[t]=1,++i);return i},ZA.extent=function(e){if(this._get!==e||!this._ext){var t=this.values(),A=Object(ue.r)(t,e);this._ext=[t[A[0]],t[A[1]]],this._get=e}return this._ext},ZA.argmin=function(e){return this.extent(e)[0]||{}},ZA.argmax=function(e){return this.extent(e)[1]||{}},ZA.min=function(e){var t=this.extent(e)[0];return null!=t?e(t):void 0},ZA.max=function(e){var t=this.extent(e)[1];return null!=t?e(t):void 0},ZA.quartile=function(e){return this._get===e&&this._q||(this._q=bt(this.values(),e),this._get=e),this._q},ZA.q1=function(e){return this.quartile(e)[0]},ZA.q2=function(e){return this.quartile(e)[1]},ZA.q3=function(e){return this.quartile(e)[2]},ZA.ci=function(e){return this._get===e&&this._ci||(this._ci=Dt(this.values(),1e3,.05,e),this._get=e),this._ci},ZA.ci0=function(e){return this.ci(e)[0]},ZA.ci1=function(e){return this.ci(e)[1]},HA.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:kA},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"drop",type:"boolean",default:!0},{name:"cross",type:"boolean",default:!1},{name:"key",type:"field"}]},Object(ue.z)(HA,at,{transform:function(e,t){var A=this,n=this,r=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.modified();return n.stamp=r.stamp,n.value&&(i||t.modified(n._inputs,!0))?(n._prev=n.value,n.value=i?n.init(e):{},t.visit(t.SOURCE,(function(e){return n.add(e)}))):(n.value=n.value||n.init(e),t.visit(t.REM,(function(e){return n.rem(e)})),t.visit(t.ADD,(function(e){return n.add(e)}))),r.modifies(n._outputs),n._drop=!1!==e.drop,e.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),t.clean()&&n._drop&&r.clean(!0).runAfter((function(){return A.clean()})),n.changes(r)},cross:function(){var e=this,t=e.value,A=e._dnames,n=A.map((function(){return{}})),r=A.length;function i(e){var t,i,o,a;for(t in e)for(o=e[t].tuple,i=0;i<r;++i)n[i][a=o[A[i]]]=a}i(e._prev),i(t),function i(o,a,s){var g=A[s],c=n[s++];for(var u in c){var l=o?o+"|"+u:u;a[g]=c[u],s<r?i(l,a,s):t[l]||e.cell(l,a)}}("",{},0)},init:function(e){var t=this._inputs=[],A=this._outputs=[],n={};function r(e){for(var A,r=Object(ue.i)(Object(ue.g)(e)),i=r.length,o=0;o<i;++o)n[A=r[o]]||(n[A]=1,t.push(A))}this._dims=Object(ue.i)(e.groupby),this._dnames=this._dims.map((function(e){var t=Object(ue.h)(e);return r(e),A.push(t),t})),this.cellkey=e.key?e.key:SA(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];var i,o,a,s,g,c,u=e.fields||[null],l=e.ops||["count"],I=e.as||[],C=u.length,h={};for(C!==l.length&&Object(ue.o)("Unmatched number of fields and aggregate ops."),c=0;c<C;++c)i=u[c],o=l[c],null==i&&"count"!==o&&Object(ue.o)("Null aggregate field specified."),g=FA(o,s=Object(ue.h)(i),I[c]),A.push(g),"count"!==o?((a=h[s])||(r(i),(a=h[s]=[]).field=i,this._measures.push(a)),"count"!==o&&(this._countOnly=!1),a.push(xA(o,g))):this._counts.push(g);return this._measures=this._measures.map((function(e){return LA(e,e.field)})),{}},cellkey:SA(),cell:function(e,t){var A=this.value[e];return A?0===A.num&&this._drop&&A.stamp<this.stamp?(A.stamp=this.stamp,this._adds[this._alen++]=A):A.stamp<this.stamp&&(A.stamp=this.stamp,this._mods[this._mlen++]=A):(A=this.value[e]=this.newcell(e,t),this._adds[this._alen++]=A),A},newcell:function(e,t){var A={key:e,num:0,agg:null,tuple:this.newtuple(t,this._prev&&this._prev[e]),stamp:this.stamp,store:!1};if(!this._countOnly){var n=this._measures,r=n.length;A.agg=Array(r);for(var i=0;i<r;++i)A.agg[i]=new n[i](A)}return A.store&&(A.data=new TA),A},newtuple:function(e,t){for(var A=this._dnames,n=this._dims,r=n.length,i={},o=0;o<r;++o)i[A[o]]=n[o](e);return t?Fe(t.tuple,i):be(i)},clean:function(){var e=this.value;for(var t in e)0===e[t].num&&delete e[t]},add:function(e){var t=this.cellkey(e),A=this.cell(t,e);if(A.num+=1,!this._countOnly){A.store&&A.data.add(e);for(var n=A.agg,r=0,i=n.length;r<i;++r)n[r].add(n[r].get(e),e)}},rem:function(e){var t=this.cellkey(e),A=this.cell(t,e);if(A.num-=1,!this._countOnly){A.store&&A.data.rem(e);for(var n=A.agg,r=0,i=n.length;r<i;++r)n[r].rem(n[r].get(e),e)}},celltuple:function(e){var t=e.tuple,A=this._counts;e.store&&e.data.values();for(var n=0,r=A.length;n<r;++n)t[A[n]]=e.num;if(!this._countOnly)for(var i=e.agg,o=0,a=i.length;o<a;++o)i[o].set(t);return t},changes:function(e){var t,A,n,r,i=this._adds,o=this._mods,a=this._prev,s=this._drop,g=e.add,c=e.rem,u=e.mod;if(a)for(A in a)t=a[A],s&&!t.num||c.push(t.tuple);for(n=0,r=this._alen;n<r;++n)g.push(this.celltuple(i[n])),i[n]=null;for(n=0,r=this._mlen;n<r;++n)(0===(t=o[n]).num&&s?c:u).push(this.celltuple(t)),o[n]=null;return this._alen=this._mlen=0,this._prev=null,e}});function YA(e){at.call(this,null,e)}function JA(e,t,A){var n=e,r=t||[],i=A||[],o={},a=0;return{add:function(e){return i.push(e)},remove:function(e){return o[n(e)]=++a},size:function(){return r.length},data:function(e,t){return a&&(r=r.filter((function(e){return!o[n(e)]})),o={},a=0),t&&e&&r.sort(e),i.length&&(r=e?Object(ue.O)(e,r,i.sort(e)):r.concat(i),i=[]),r}}}function jA(e){at.call(this,[],e)}function PA(e){_e.call(this,null,VA,e)}function VA(e){return this.value&&!e.modified()?this.value:Object(ue.l)(e.fields,e.orders)}function KA(e){at.call(this,null,e)}function WA(e){at.call(this,null,e)}YA.Definition={type:"Bin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"anchor",type:"number"},{name:"maxbins",type:"number",default:20},{name:"base",type:"number",default:10},{name:"divide",type:"number",array:!0,default:[5,2]},{name:"extent",type:"number",array:!0,length:2,required:!0},{name:"span",type:"number"},{name:"step",type:"number"},{name:"steps",type:"number",array:!0},{name:"minstep",type:"number",default:0},{name:"nice",type:"boolean",default:!0},{name:"name",type:"string"},{name:"as",type:"string",array:!0,length:2,default:["bin0","bin1"]}]},Object(ue.z)(YA,at,{transform:function(e,t){var A,n=!1!==e.interval,r=this._bins(e),i=r.start,o=r.step,a=e.as||["bin0","bin1"],s=a[0],g=a[1];return A=e.modified()?(t=t.reflow(!0)).SOURCE:t.modified(Object(ue.g)(e.field))?t.ADD_MOD:t.ADD,t.visit(A,n?function(e){var t=r(e);e[s]=t,e[g]=null==t?null:i+o*(1+(t-i)/o)}:function(e){return e[s]=r(e)}),t.modifies(n?a:s)},_bins:function(e){if(this.value&&!e.modified())return this.value;var t,A,n=e.field,r=St(e),i=r.step,o=r.start,a=o+Math.ceil((r.stop-o)/i)*i;null!=(t=e.anchor)&&(A=t-(o+i*Math.floor((t-o)/i)),o+=A,a+=A);var s=function(e){var t=Object(ue.eb)(n(e));return null==t?null:t<o?-1/0:t>a?1/0:(t=Math.max(o,Math.min(t,a-i)),o+i*Math.floor(1e-14+(t-o)/i))};return s.start=o,s.stop=r.stop,s.step=i,this.value=Object(ue.f)(s,Object(ue.g)(n),e.name||"bin_"+Object(ue.h)(n))}}),jA.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},Object(ue.z)(jA,at,{transform:function(e,t){var A=t.fork(t.ALL),n=JA(ve,this.value,A.materialize(A.ADD).add),r=e.sort,i=t.changed()||r&&(e.modified("sort")||t.modified(r.fields));return A.visit(A.REM,n.remove),this.modified(i),this.value=A.source=n.data(Re(r),i),t.source&&t.source.root&&(this.value.root=t.source.root),A}}),Object(ue.z)(PA,_e),KA.Definition={type:"CountPattern",metadata:{generates:!0,changes:!0},params:[{name:"field",type:"field",required:!0},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:!0,length:2,default:["text","count"]}]},Object(ue.z)(KA,at,{transform:function(e,t){var A=function(t){return function(A){for(var n,r=function(e,t,A){switch(t){case"upper":e=e.toUpperCase();break;case"lower":e=e.toLowerCase()}return e.match(A)}(a(A),e.case,i)||[],s=0,g=r.length;s<g;++s)o.test(n=r[s])||t(n)}},n=this._parameterCheck(e,t),r=this._counts,i=this._match,o=this._stop,a=e.field,s=e.as||["text","count"],g=A((function(e){return r[e]=1+(r[e]||0)})),c=A((function(e){return r[e]-=1}));return n?t.visit(t.SOURCE,g):(t.visit(t.ADD,g),t.visit(t.REM,c)),this._finish(t,s)},_parameterCheck:function(e,t){var A=!1;return!e.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(e.stopwords||"")+"$","i"),A=!0),!e.modified("pattern")&&this._match||(this._match=new RegExp(e.pattern||"[\\w']+","g"),A=!0),(e.modified("field")||t.modified(e.field.fields))&&(A=!0),A&&(this._counts={}),A},_finish:function(e,t){var A,n,r,i=this._counts,o=this._tuples||(this._tuples={}),a=t[0],s=t[1],g=e.fork(e.NO_SOURCE|e.NO_FIELDS);for(A in i)n=o[A],r=i[A]||0,!n&&r?(o[A]=n=be({}),n[a]=A,n[s]=r,g.add.push(n)):0===r?(n&&g.rem.push(n),i[A]=null,o[A]=null):n[s]!==r&&(n[s]=r,g.mod.push(n));return g.modifies(t)}}),WA.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},Object(ue.z)(WA,at,{transform:function(e,t){var A=t.fork(t.NO_SOURCE),n=e.as||["a","b"],r=n[0],i=n[1],o=!this.value||t.changed(t.ADD_REM)||e.modified("as")||e.modified("filter"),a=this.value;return o?(a&&(A.rem=a),a=t.materialize(t.SOURCE).source,A.add=this.value=function(e,t,A,n){for(var r,i,o=[],a={},s=e.length,g=0;g<s;++g)for(a[t]=i=e[g],r=0;r<s;++r)a[A]=e[r],n(a)&&(o.push(be(a)),(a={})[t]=i);return o}(a,r,i,e.filter||ue.ib)):A.mod=a,A.source=this.value,A.modifies(n)}});var XA={kde:Ht,mixture:Kt,normal:Zt,lognormal:Vt,uniform:$t};function qA(e){at.call(this,null,e)}var zA=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:!0},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}],$A={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:zA},{name:"weights",type:"number",array:!0}]};function en(e,t){return e?e.map((function(e,A){return t[A]||Object(ue.h)(e)})):null}function tn(e,t,A){var n,r,i,o,a,s,g=[],c=function(e){return e(o)};if(null==t)g.push(e.map(A));else for(n={},r=0,i=e.length;r<i;++r)o=e[r],(s=n[a=t.map(c)])||(n[a]=s=[],s.dims=a,g.push(s)),s.push(A(o));return g}qA.Definition={type:"Density",metadata:{generates:!0},params:[{name:"extent",type:"number",array:!0,length:2},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"method",type:"string",default:"pdf",values:["pdf","cdf"]},{name:"distribution",type:"param",params:zA.concat($A)},{name:"as",type:"string",array:!0,default:["value","density"]}]},Object(ue.z)(qA,at,{transform:function(e,t){var A=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){var n=function e(t,A){var n=t.function;Object(ue.w)(XA,n)||Object(ue.o)("Unknown distribution function: "+n);var r=XA[n]();for(var i in t)"field"===i?r.data((t.from||A()).map(t[i])):"distributions"===i?r[i](t[i].map((function(t){return e(t,A)}))):"function"===typeof r[i]&&r[i](t[i]);return r}(e.distribution,function(e){return function(){return e.materialize(e.SOURCE).source}}(t)),r=e.steps||e.minsteps||25,i=e.steps||e.maxsteps||200,o=e.method||"pdf";"pdf"!==o&&"cdf"!==o&&Object(ue.o)("Invalid density method: "+o),e.extent||n.data||Object(ue.o)("Missing density extent parameter."),o=n[o];var a=e.as||["value","density"],s=hA(o,e.extent||Object(ue.q)(n.data()),r,i).map((function(e){var t={};return t[a[0]]=e[0],t[a[1]]=e[1],be(t)}));this.value&&(A.rem=this.value),this.value=A.add=A.source=s}return A}});function An(e){at.call(this,null,e)}An.Definition={type:"DotBin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"step",type:"number"},{name:"smooth",type:"boolean",default:!1},{name:"as",type:"string",default:"bin"}]};function nn(e){_e.call(this,null,rn,e),this.modified(!0)}function rn(e){var t=e.expr;return this.value&&!e.modified("expr")?this.value:Object(ue.f)((function(A){return t(A,e)}),Object(ue.g)(t),Object(ue.h)(t))}function on(e){at.call(this,[void 0,void 0],e)}function an(e,t){_e.call(this,e),this.parent=t,this.count=0}function sn(e){at.call(this,{},e),this._keys=Object(ue.t)();var t=this._targets=[];t.active=0,t.forEach=function(e){for(var A=0,n=t.active;A<n;++A)e(t[A],A,t)}}function gn(e){_e.call(this,null,cn,e)}function cn(e){return this.value&&!e.modified()?this.value:Object(ue.B)(e.name)?Object(ue.i)(e.name).map((function(e){return Object(ue.u)(e)})):Object(ue.u)(e.name,e.as)}function un(e){at.call(this,Object(ue.t)(),e)}function ln(e){at.call(this,[],e)}function In(e){at.call(this,[],e)}function Cn(e){at.call(this,null,e)}function hn(e){at.call(this,[],e)}Object(ue.z)(An,at,{transform:function(e,t){if(this.value&&!e.modified()&&!t.changed())return t;for(var A,n=t.materialize(t.SOURCE).source,r=tn(t.source,e.groupby,ue.y),i=e.smooth||!1,o=e.field,a=e.step||function(e,t){return Object(ue.Z)(Object(ue.q)(e,t))/30}(n,o),s=Re((function(e,t){return o(e)-o(t)})),g=e.as||"bin",c=r.length,u=1/0,l=-1/0,I=0;I<c;++I){var C=r[I].sort(s);A=-1;var h,f=Object(ut.a)(Gt(C,a,i,o));try{for(f.s();!(h=f.n()).done;){var d=h.value;d<u&&(u=d),d>l&&(l=d),C[++A][g]=d}}catch(B){f.e(B)}finally{f.f()}}return this.value={start:u,stop:l,step:a},t.reflow(!0).modifies(g)}}),Object(ue.z)(nn,_e),on.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},Object(ue.z)(on,at,{transform:function(e,t){var A=this.value,n=e.field,r=t.changed()||t.modified(n.fields)||e.modified("field"),i=A[0],o=A[1];if((r||null==i)&&(i=1/0,o=-1/0),t.visit(r?t.SOURCE:t.ADD,(function(e){var t=Object(ue.eb)(n(e));null!=t&&(t<i&&(i=t),t>o&&(o=t))})),!Number.isFinite(i)||!Number.isFinite(o)){var a=Object(ue.h)(n);a&&(a=' for field "'.concat(a,'"')),t.dataflow.warn("Infinite extent".concat(a,": [").concat(i,", ").concat(o,"]")),i=o=void 0}this.value=[i,o]}}),Object(ue.z)(an,_e,{connect:function(e){return this.detachSubflow=e.detachSubflow,this.targets().add(e),e.source=this},add:function(e){this.count+=1,this.value.add.push(e)},rem:function(e){this.count-=1,this.value.rem.push(e)},mod:function(e){this.value.mod.push(e)},init:function(e){this.value.init(e,e.NO_SOURCE)},evaluate:function(){return this.value}}),Object(ue.z)(sn,at,{activate:function(e){this._targets[this._targets.active++]=e},subflow:function(e,t,A,n){var r,i,o=this.value,a=Object(ue.w)(o,e)&&o[e];return a?a.value.stamp<A.stamp&&(a.init(A),this.activate(a)):(i=n||(i=this._group[e])&&i.tuple,r=A.dataflow,a=new an(A.fork(A.NO_SOURCE),this),r.add(a).connect(t(r,e,i)),o[e]=a,this.activate(a)),a},clean:function(){var e=this.value,t=0;for(var A in e)if(0===e[A].count){var n=e[A].detachSubflow;n&&n(),delete e[A],++t}if(t){var r=this._targets.filter((function(e){return e&&e.count>0}));this.initTargets(r)}},initTargets:function(e){for(var t=this._targets,A=t.length,n=e?e.length:0,r=0;r<n;++r)t[r]=e[r];for(;r<A&&null!=t[r];++r)t[r]=null;t.active=n},transform:function(e,t){var A=this,n=t.dataflow,r=e.key,i=e.subflow,o=this._keys,a=e.modified("key"),s=function(e){return A.subflow(e,i,t)};return this._group=e.group||{},this.initTargets(),t.visit(t.REM,(function(e){var t=ve(e),A=o.get(t);void 0!==A&&(o.delete(t),s(A).rem(e))})),t.visit(t.ADD,(function(e){var t=r(e);o.set(ve(e),t),s(t).add(e)})),a||t.modified(r.fields)?t.visit(t.MOD,(function(e){var t=ve(e),A=o.get(t),n=r(e);A===n?s(n).mod(e):(o.set(t,n),s(A).rem(e),s(n).add(e))})):t.changed(t.MOD)&&t.visit(t.MOD,(function(e){s(o.get(ve(e))).mod(e)})),a&&t.visit(t.REFLOW,(function(e){var t=ve(e),A=o.get(t),n=r(e);A!==n&&(o.set(t,n),s(A).rem(e),s(n).add(e))})),t.clean()?n.runAfter((function(){A.clean(),o.clean()})):o.empty>n.cleanThreshold&&n.runAfter(o.clean),t}}),Object(ue.z)(gn,_e),un.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},Object(ue.z)(un,at,{transform:function(e,t){var A=t.dataflow,n=this.value,r=t.fork(),i=r.add,o=r.rem,a=r.mod,s=e.expr,g=!0;function c(t){var A=ve(t),r=s(t,e),c=n.get(A);r&&c?(n.delete(A),i.push(t)):r||c?g&&r&&!c&&a.push(t):(n.set(A,1),o.push(t))}return t.visit(t.REM,(function(e){var t=ve(e);n.has(t)?n.delete(t):o.push(e)})),t.visit(t.ADD,(function(t){s(t,e)?i.push(t):n.set(ve(t),1)})),t.visit(t.MOD,c),e.modified()&&(g=!1,t.visit(t.REFLOW,c)),n.empty>A.cleanThreshold&&A.runAfter(n.clean),r}}),ln.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"index",type:"string"},{name:"as",type:"string",array:!0}]},Object(ue.z)(ln,at,{transform:function(e,t){var A=t.fork(t.NO_SOURCE),n=e.fields,r=en(n,e.as||[]),i=e.index||null,o=r.length;return A.rem=this.value,t.visit(t.SOURCE,(function(e){for(var t,a,s,g=n.map((function(t){return t(e)})),c=g.reduce((function(e,t){return Math.max(e,t.length)}),0),u=0;u<c;++u){for(a=we(e),t=0;t<o;++t)a[r[t]]=null==(s=g[t][u])?null:s;i&&(a[i]=u),A.add.push(a)}})),this.value=A.source=A.add,i&&A.modifies(i),A.modifies(r)}}),In.Definition={type:"Fold",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0,length:2,default:["key","value"]}]},Object(ue.z)(In,at,{transform:function(e,t){var A=t.fork(t.NO_SOURCE),n=e.fields,r=n.map(ue.h),i=e.as||["key","value"],o=i[0],a=i[1],s=n.length;return A.rem=this.value,t.visit(t.SOURCE,(function(e){for(var t,i=0;i<s;++i)(t=we(e))[o]=r[i],t[a]=n[i](e),A.add.push(t)})),this.value=A.source=A.add,A.modifies(i)}}),Cn.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},Object(ue.z)(Cn,at,{transform:function(e,t){var A=e.expr,n=e.as,r=e.modified(),i=e.initonly?t.ADD:r?t.SOURCE:t.modified(A.fields)||t.modified(n)?t.ADD_MOD:t.ADD;return r&&(t=t.materialize().reflow(!0)),e.initonly||t.modifies(n),t.visit(i,(function(t){return t[n]=A(t,e)}))}}),Object(ue.z)(hn,at,{transform:function(e,t){var A,n,r,i=t.fork(t.ALL),o=e.generator,a=this.value,s=e.size-a.length;if(s>0){for(A=[];--s>=0;)A.push(r=be(o(e))),a.push(r);i.add=i.add.length?i.materialize(i.ADD).add.concat(A):A}else n=a.slice(0,-s),i.rem=i.rem.length?i.materialize(i.REM).rem.concat(n):n,a=a.slice(-s);return i.source=this.value=a,i}});var fn={value:"value",median:function(e,t){return vA(e,.5,t)},mean:function(e,t){var A=0,n=0;if(void 0===t){var r,i=Object(ut.a)(e);try{for(i.s();!(r=i.n()).done;){var o=r.value;null!=o&&(o=+o)>=o&&(++A,n+=o)}}catch(u){i.e(u)}finally{i.f()}}else{var a,s=-1,g=Object(ut.a)(e);try{for(g.s();!(a=g.n()).done;){var c=a.value;null!=(c=t(c,++s,e))&&(c=+c)>=c&&(++A,n+=c)}}catch(u){g.e(u)}finally{g.f()}}if(A)return n/A},min:BA,max:dA},dn=[];function Bn(e){at.call(this,[],e)}function pn(e){HA.call(this,e)}function En(e){at.call(this,null,e)}function Qn(e){_e.call(this,null,yn,e)}function yn(e){return this.value&&!e.modified()?this.value:Object(ue.K)(e.fields,e.flat)}function vn(e){at.call(this,[],e),this._pending=null}function mn(e,t,A){A.forEach(be);var n=t.fork(t.NO_FIELDS&t.NO_SOURCE);return n.rem=e.value,e.value=n.source=n.add=A,e._pending=null,n.rem.length&&n.clean(!0),n}function bn(e){at.call(this,{},e)}function wn(e){_e.call(this,null,Sn,e)}function Sn(e){if(this.value&&!e.modified())return this.value;var t,A,n=e.extents,r=n.length,i=1/0,o=-1/0;for(t=0;t<r;++t)(A=n[t])[0]<i&&(i=A[0]),A[1]>o&&(o=A[1]);return[i,o]}function Fn(e){_e.call(this,null,Rn,e)}function Rn(e){return this.value&&!e.modified()?this.value:e.values.reduce((function(e,t){return e.concat(t)}),[])}function Dn(e){at.call(this,null,e)}function Gn(e){HA.call(this,e)}function kn(e){sn.call(this,e)}function xn(e){at.call(this,null,e)}function Nn(e){at.call(this,null,e)}function Un(e){at.call(this,null,e)}Bn.Definition={type:"Impute",metadata:{changes:!0},params:[{name:"field",type:"field",required:!0},{name:"key",type:"field",required:!0},{name:"keyvals",array:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]},Object(ue.z)(Bn,at,{transform:function(e,t){var A,n,r,i,o,a,s,g,c,u,l=t.fork(t.ALL),I=function(e){var t,A=e.method||fn.value;if(null!=fn[A])return A===fn.value?(t=void 0!==e.value?e.value:0,function(){return t}):fn[A];Object(ue.o)("Unrecognized imputation method: "+A)}(e),C=function(e){var t=e.field;return function(e){return e?t(e):NaN}}(e),h=Object(ue.h)(e.field),f=Object(ue.h)(e.key),d=(e.groupby||[]).map(ue.h),B=function(e,t,A,n){var r,i,o,a,s,g,c,u,l=function(e){return e(u)},I=[],C=n?n.slice():[],h={},f={};for(C.forEach((function(e,t){return h[e]=t+1})),a=0,c=e.length;a<c;++a)u=e[a],g=A(u),s=h[g]||(h[g]=C.push(g)),i=(r=t?t.map(l):dn)+"",(o=f[i])||(o=f[i]=[],I.push(o),o.values=r),o[s-1]=u;return I.domain=C,I}(t.source,e.groupby,e.key,e.keyvals),p=[],E=this.value,Q=B.domain.length;for(o=0,g=B.length;o<g;++o)for(r=(A=B[o]).values,n=NaN,s=0;s<Q;++s)if(null==A[s]){for(i=B.domain[s],u={_impute:!0},a=0,c=r.length;a<c;++a)u[d[a]]=r[a];u[f]=i,u[h]=Number.isNaN(n)?n=I(A,C):n,p.push(be(u))}return p.length&&(l.add=l.materialize(l.ADD).add.concat(p)),E.length&&(l.rem=l.materialize(l.REM).rem.concat(E)),this.value=p,l}}),pn.Definition={type:"JoinAggregate",metadata:{modifies:!0},params:[{name:"groupby",type:"field",array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"ops",type:"enum",array:!0,values:kA},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]},Object(ue.z)(pn,HA,{transform:function(e,t){var A,n=this,r=e.modified();return n.value&&(r||t.modified(n._inputs,!0))?(A=n.value=r?n.init(e):{},t.visit(t.SOURCE,(function(e){return n.add(e)}))):(A=n.value=n.value||this.init(e),t.visit(t.REM,(function(e){return n.rem(e)})),t.visit(t.ADD,(function(e){return n.add(e)}))),n.changes(),t.visit(t.SOURCE,(function(e){Object(ue.p)(e,A[n.cellkey(e)].tuple)})),t.reflow(r).modifies(this._outputs)},changes:function(){var e,t,A=this._adds,n=this._mods;for(e=0,t=this._alen;e<t;++e)this.celltuple(A[e]),A[e]=null;for(e=0,t=this._mlen;e<t;++e)this.celltuple(n[e]),n[e]=null;this._alen=this._mlen=0}}),En.Definition={type:"KDE",metadata:{generates:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"cumulative",type:"boolean",default:!1},{name:"counts",type:"boolean",default:!1},{name:"bandwidth",type:"number",default:0},{name:"extent",type:"number",array:!0,length:2},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"as",type:"string",array:!0,default:["value","density"]}]},Object(ue.z)(En,at,{transform:function(e,t){var A=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){var n=t.materialize(t.SOURCE).source,r=tn(n,e.groupby,e.field),i=(e.groupby||[]).map(ue.h),o=e.bandwidth,a=e.cumulative?"cdf":"pdf",s=e.as||["value","density"],g=[],c=e.extent,u=e.steps||e.minsteps||25,l=e.steps||e.maxsteps||200;"pdf"!==a&&"cdf"!==a&&Object(ue.o)("Invalid density method: "+a),"shared"===e.resolve&&(c||(c=Object(ue.q)(n,e.field)),u=l=e.steps||l),r.forEach((function(t){var A=Ht(t,o)[a],n=e.counts?t.length:1;hA(A,c||Object(ue.q)(t),u,l).forEach((function(e){for(var A={},r=0;r<i.length;++r)A[i[r]]=t.dims[r];A[s[0]]=e[0],A[s[1]]=e[1]*n,g.push(be(A))}))})),this.value&&(A.rem=this.value),this.value=A.add=A.source=g}return A}}),Object(ue.z)(Qn,_e),Object(ue.z)(vn,at,{transform:function(e,t){var A=this,n=t.dataflow;return this._pending?mn(this,t,this._pending):function(e){return e.modified("async")&&!(e.modified("values")||e.modified("url")||e.modified("format"))}(e)?t.StopPropagation:e.values?mn(this,t,n.parse(e.values,e.format)):e.async?{async:n.request(e.url,e.format).then((function(e){return A._pending=Object(ue.i)(e.data),function(e){return e.touch(A)}}))}:n.request(e.url,e.format).then((function(e){return mn(A,t,Object(ue.i)(e.data))}))}}),bn.Definition={type:"Lookup",metadata:{modifies:!0},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:!0},{name:"key",type:"field",required:!0}]},{name:"values",type:"field",array:!0},{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0},{name:"default",default:null}]},Object(ue.z)(bn,at,{transform:function(e,t){var A,n,r=e.fields,i=e.index,o=e.values,a=null==e.default?null:e.default,s=e.modified(),g=r.length,c=s?t.SOURCE:t.ADD,u=t,l=e.as;return o?(n=o.length,g>1&&!l&&Object(ue.o)('Multi-field lookup requires explicit "as" parameter.'),l&&l.length!==g*n&&Object(ue.o)('The "as" parameter has too few output field names.'),l=l||o.map(ue.h),A=function(e){for(var t,A,s=0,c=0;s<g;++s)if(null==(A=i.get(r[s](e))))for(t=0;t<n;++t,++c)e[l[c]]=a;else for(t=0;t<n;++t,++c)e[l[c]]=o[t](A)}):(l||Object(ue.o)("Missing output field names."),A=function(e){for(var t,A=0;A<g;++A)t=i.get(r[A](e)),e[l[A]]=null==t?a:t}),s?u=t.reflow(!0):c|=r.some((function(e){return t.modified(e.fields)}))?t.MOD:0,t.visit(c,A),u.modifies(l)}}),Object(ue.z)(wn,_e),Object(ue.z)(Fn,_e),Object(ue.z)(Dn,at,{transform:function(e,t){return this.modified(e.modified()),this.value=e,t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),Gn.Definition={type:"Pivot",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"value",type:"field",required:!0},{name:"op",type:"enum",values:kA,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},Object(ue.z)(Gn,HA,{_transform:HA.prototype.transform,transform:function(e,t){return this._transform(function(e,t){var A=e.field,n=e.value,r=("count"===e.op?"__count__":e.op)||"sum",i=Object(ue.g)(A).concat(Object(ue.g)(n)),o=function(e,t,A){var n={},r=[];return A.visit(A.SOURCE,(function(t){var A=e(t);n[A]||(n[A]=1,r.push(A))})),r.sort(ue.j),t?r.slice(0,t):r}(A,e.limit||0,t);t.changed()&&e.set("__pivot__",null,null,!0);return{key:e.key,groupby:e.groupby,ops:o.map((function(){return r})),fields:o.map((function(e){return function(e,t,A,n){return Object(ue.f)((function(n){return t(n)===e?A(n):NaN}),n,e+"")}(e,A,n,i)})),as:o.map((function(e){return e+""})),modified:e.modified.bind(e)}}(e,t),t)}}),Object(ue.z)(kn,sn,{transform:function(e,t){var A=this,n=e.subflow,r=e.field,i=function(e){return A.subflow(ve(e),n,t,e)};return(e.modified("field")||r&&t.modified(Object(ue.g)(r)))&&Object(ue.o)("PreFacet does not support field modification."),this.initTargets(),r?(t.visit(t.MOD,(function(e){var t=i(e);r(e).forEach((function(e){return t.mod(e)}))})),t.visit(t.ADD,(function(e){var t=i(e);r(e).forEach((function(e){return t.add(be(e))}))})),t.visit(t.REM,(function(e){var t=i(e);r(e).forEach((function(e){return t.rem(e)}))}))):(t.visit(t.MOD,(function(e){return i(e).mod(e)})),t.visit(t.ADD,(function(e){return i(e).add(e)})),t.visit(t.REM,(function(e){return i(e).rem(e)}))),t.clean()&&t.runAfter((function(){return A.clean()})),t}}),xn.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},Object(ue.z)(xn,at,{transform:function(e,t){var A,n=t.fork(t.NO_SOURCE),r=e.fields,i=en(e.fields,e.as||[]),o=r?function(e,t){return function(e,t,A,n){for(var r=0,i=A.length;r<i;++r)t[n[r]]=A[r](e);return t}(e,t,r,i)}:Se;return this.value?A=this.value:(t=t.addAll(),A=this.value={}),t.visit(t.REM,(function(e){var t=ve(e);n.rem.push(A[t]),A[t]=null})),t.visit(t.ADD,(function(e){var t=o(e,be({}));A[ve(e)]=t,n.add.push(t)})),t.visit(t.MOD,(function(e){n.mod.push(o(e,A[ve(e)]))})),n}}),Object(ue.z)(Nn,at,{transform:function(e,t){return this.value=e.value,e.modified("value")?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}}),Un.Definition={type:"Quantile",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"probs",type:"number",array:!0},{name:"step",type:"number",default:.01},{name:"as",type:"string",array:!0,default:["prob","value"]}]};function _n(e){at.call(this,null,e)}function Mn(e){at.call(this,[],e),this.count=0}function On(e){at.call(this,null,e)}function Ln(e){at.call(this,null,e),this.modified(!0)}function Tn(e){at.call(this,null,e)}Object(ue.z)(Un,at,{transform:function(e,t){var A=t.fork(t.NO_SOURCE|t.NO_FIELDS),n=e.as||["prob","value"];if(this.value&&!e.modified()&&!t.changed())return A.source=this.value,A;var r=tn(t.materialize(t.SOURCE).source,e.groupby,e.field),i=(e.groupby||[]).map(ue.h),o=[],a=e.step||.01,s=e.probs||mA(a/2,1-1e-14,a),g=s.length;return r.forEach((function(e){for(var t=mt(e,s),A=0;A<g;++A){for(var r={},a=0;a<i.length;++a)r[i[a]]=e.dims[a];r[n[0]]=s[A],r[n[1]]=t[A],o.push(be(r))}})),this.value&&(A.rem=this.value),this.value=A.add=A.source=o,A}}),Object(ue.z)(_n,at,{transform:function(e,t){var A,n;return this.value?n=this.value:(A=t=t.addAll(),n=this.value={}),e.derive&&(A=t.fork(t.NO_SOURCE),t.visit(t.REM,(function(e){var t=ve(e);A.rem.push(n[t]),n[t]=null})),t.visit(t.ADD,(function(e){var t=we(e);n[ve(e)]=t,A.add.push(t)})),t.visit(t.MOD,(function(e){var t=n[ve(e)];for(var r in e)t[r]=e[r],A.modifies(r);A.mod.push(t)}))),A}}),Mn.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},Object(ue.z)(Mn,at,{transform:function(e,t){var A=t.fork(t.NO_SOURCE),n=e.modified("size"),r=e.size,i=this.value.reduce((function(e,t){return e[ve(t)]=1,e}),{}),o=this.value,a=this.count,s=0;function g(e){var t,n;o.length<r?o.push(e):(n=~~((a+1)*Ft()))<o.length&&n>=s&&(t=o[n],i[ve(t)]&&A.rem.push(t),o[n]=e),++a}if(t.rem.length&&(t.visit(t.REM,(function(e){var t=ve(e);i[t]&&(i[t]=-1,A.rem.push(e)),--a})),o=o.filter((function(e){return-1!==i[ve(e)]}))),(t.rem.length||n)&&o.length<r&&t.source&&(s=a=o.length,t.visit(t.SOURCE,(function(e){i[ve(e)]||g(e)})),s=-1),n&&o.length>r){for(var c=o.length-r,u=0;u<c;++u)i[ve(o[u])]=-1,A.rem.push(o[u]);o=o.slice(c)}return t.mod.length&&t.visit(t.MOD,(function(e){i[ve(e)]&&A.mod.push(e)})),t.add.length&&t.visit(t.ADD,g),(t.add.length||s<0)&&(A.add=o.filter((function(e){return!i[ve(e)]}))),this.count=a,this.value=A.source=o,A}}),On.Definition={type:"Sequence",metadata:{generates:!0,changes:!0},params:[{name:"start",type:"number",required:!0},{name:"stop",type:"number",required:!0},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]},Object(ue.z)(On,at,{transform:function(e,t){if(!this.value||e.modified()){var A=t.materialize().fork(t.MOD),n=e.as||"data";return A.rem=this.value?t.rem.concat(this.value):t.rem,this.value=mA(e.start,e.stop,e.step||1).map((function(e){var t={};return t[n]=e,be(t)})),A.add=t.add.concat(this.value),A}}}),Object(ue.z)(Ln,at,{transform:function(e,t){return this.value=t.source,t.changed()?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});var Zn=["unit0","unit1"];function Hn(e){at.call(this,Object(ue.t)(),e)}function Yn(e){at.call(this,null,e)}Tn.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:wA.j,array:!0},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:!0},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:!0,length:2,default:Zn}]},Object(ue.z)(Tn,at,{transform:function(e,t){var A=e.field,n=!1!==e.interval,r="utc"===e.timezone,i=this._floor(e,t),o=(r?wA.v:wA.p)(i.unit).offset,a=e.as||Zn,s=a[0],g=a[1],c=i.step,u=i.start||1/0,l=i.stop||-1/0,I=t.ADD;return(e.modified()||t.modified(Object(ue.g)(A)))&&(I=(t=t.reflow(!0)).SOURCE,u=1/0,l=-1/0),t.visit(I,(function(e){var t,r,a=A(e);null==a?(e[s]=null,n&&(e[g]=null)):(e[s]=t=r=i(a),n&&(e[g]=r=o(t,c)),t<u&&(u=t),r>l&&(l=r))})),i.start=u,i.stop=l,t.modifies(n?a:s)},_floor:function(e,t){var A="utc"===e.timezone,n=e.units?{units:e.units,step:e.step||1}:Object(wA.n)({extent:e.extent||Object(ue.q)(t.materialize(t.SOURCE).source,e.field),maxbins:e.maxbins}),r=n.units,i=n.step,o=Object(wA.t)(r),a=this.value||{},s=(A?wA.u:wA.o)(o,i);return s.unit=Object(ue.W)(o),s.units=o,s.step=i,s.start=a.start,s.stop=a.stop,this.value=s}}),Object(ue.z)(Hn,at,{transform:function(e,t){var A=t.dataflow,n=e.field,r=this.value,i=function(e){return r.set(n(e),e)},o=!0;return e.modified("field")||t.modified(n.fields)?(r.clear(),t.visit(t.SOURCE,i)):t.changed()?(t.visit(t.REM,(function(e){return r.delete(n(e))})),t.visit(t.ADD,i)):o=!1,this.modified(o),r.empty>A.cleanThreshold&&A.runAfter(r.clean),t.fork()}}),Object(ue.z)(Yn,at,{transform:function(e,t){(!this.value||e.modified("field")||e.modified("sort")||t.changed()||e.sort&&t.modified(e.sort.fields))&&(this.value=(e.sort?t.source.slice().sort(Re(e.sort)):t.source).map(e.field))}});var Jn={row_number:function(){return{next:function(e){return e.index+1}}},rank:function(){var e;return{init:function(){return e=1},next:function(t){var A=t.index,n=t.data;return A&&t.compare(n[A-1],n[A])?e=A+1:e}}},dense_rank:function(){var e;return{init:function(){return e=1},next:function(t){var A=t.index,n=t.data;return A&&t.compare(n[A-1],n[A])?++e:e}}},percent_rank:function(){var e=Jn.rank(),t=e.next;return{init:e.init,next:function(e){return(t(e)-1)/(e.data.length-1)}}},cume_dist:function(){var e;return{init:function(){return e=0},next:function(t){var A=t.data,n=t.compare,r=t.index;if(e<r){for(;r+1<A.length&&!n(A[r],A[r+1]);)++r;e=r}return(1+e)/A.length}}},ntile:function(e,t){(t=+t)>0||Object(ue.o)("ntile num must be greater than zero.");var A=Jn.cume_dist(),n=A.next;return{init:A.init,next:function(e){return Math.ceil(t*n(e))}}},lag:function(e,t){return t=+t||1,{next:function(A){var n=A.index-t;return n>=0?e(A.data[n]):null}}},lead:function(e,t){return t=+t||1,{next:function(A){var n=A.index+t,r=A.data;return n<r.length?e(r[n]):null}}},first_value:function(e){return{next:function(t){return e(t.data[t.i0])}}},last_value:function(e){return{next:function(t){return e(t.data[t.i1-1])}}},nth_value:function(e,t){return(t=+t)>0||Object(ue.o)("nth_value nth must be greater than zero."),{next:function(A){var n=A.i0+(t-1);return n<A.i1?e(A.data[n]):null}}},prev_value:function(e){var t;return{init:function(){return t=null},next:function(A){var n=e(A.data[A.index]);return null!=n?t=n:t}}},next_value:function(e){var t,A;return{init:function(){return t=null,A=-1},next:function(n){var r=n.data;return n.index<=A?t:(A=function(e,t,A){for(var n=t.length;A<n;++A){if(null!=e(t[A]))return A}return-1}(e,r,n.index))<0?(A=r.length,t=null):t=e(r[A])}}}};var jn=Object.keys(Jn);function Pn(e){var t=Object(ue.i)(e.ops),A=Object(ue.i)(e.fields),n=Object(ue.i)(e.params),r=Object(ue.i)(e.as),i=this.outputs=[],o=this.windows=[],a={},s={},g=[],c=[],u=!0;function l(e){Object(ue.i)(Object(ue.g)(e)).forEach((function(e){return a[e]=1}))}l(e.sort),t.forEach((function(e,t){var a=A[t],I=Object(ue.h)(a),C=FA(e,I,r[t]);if(l(a),i.push(C),Object(ue.w)(Jn,e))o.push(function(e,t,A,n){var r=Jn[e](t,A);return{init:r.init||ue.mb,update:function(e,t){t[n]=r.next(e)}}}(e,A[t],n[t],C));else{if(null==a&&"count"!==e&&Object(ue.o)("Null aggregate field specified."),"count"===e)return void g.push(C);u=!1;var h=s[I];h||((h=s[I]=[]).field=a,c.push(h)),h.push(xA(e,C))}})),(g.length||c.length)&&(this.cell=function(e,t,A){e=e.map((function(e){return LA(e,e.field)}));var n={num:0,agg:null,store:!1,count:t};if(!A)for(var r=e.length,i=n.agg=Array(r),o=0;o<r;++o)i[o]=new e[o](n);if(n.store)var a=n.data=new TA;return n.add=function(e){if(n.num+=1,!A){a&&a.add(e);for(var t=0;t<r;++t)i[t].add(i[t].get(e),e)}},n.rem=function(e){if(n.num-=1,!A){a&&a.rem(e);for(var t=0;t<r;++t)i[t].rem(i[t].get(e),e)}},n.set=function(e){var r,o;for(a&&a.values(),r=0,o=t.length;r<o;++r)e[t[r]]=n.num;if(!A)for(r=0,o=i.length;r<o;++r)i[r].set(e)},n.init=function(){n.num=0,a&&a.reset();for(var e=0;e<r;++e)i[e].init()},n}(c,g,u)),this.inputs=Object.keys(a)}var Vn=Pn.prototype;function Kn(e){at.call(this,{},e),this._mlen=0,this._mods=[]}function Wn(e,t,A,n){var r=n.sort,i=r&&!n.ignorePeers,o=n.frame||[null,0],a=e.data(A),s=a.length,g=i?bA(r):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:a,compare:r||Object(ue.m)(-1)};t.init();for(var u=0;u<s;++u)Xn(c,o,u,s),i&&qn(c,g),t.update(c,a[u])}function Xn(e,t,A,n){e.p0=e.i0,e.p1=e.i1,e.i0=null==t[0]?0:Math.max(0,A-Math.abs(t[0])),e.i1=null==t[1]?n:Math.min(n,A+Math.abs(t[1])+1),e.index=A}function qn(e,t){var A=e.i0,n=e.i1-1,r=e.compare,i=e.data,o=i.length-1;A>0&&!r(i[A],i[A-1])&&(e.i0=t.left(i,i[A])),n<o&&!r(i[n],i[n+1])&&(e.i1=t.right(i,i[n]))}Vn.init=function(){this.windows.forEach((function(e){return e.init()})),this.cell&&this.cell.init()},Vn.update=function(e,t){var A,n=this.cell,r=this.windows,i=e.data,o=r&&r.length;if(n){for(A=e.p0;A<e.i0;++A)n.rem(i[A]);for(A=e.p1;A<e.i1;++A)n.add(i[A]);n.set(t)}for(A=0;A<o;++A)r[A].update(e,t)},Kn.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:jn.concat(kA)},{name:"params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"frame",type:"number",null:!0,array:!0,length:2,default:[null,0]},{name:"ignorePeers",type:"boolean",default:!1}]},Object(ue.z)(Kn,at,{transform:function(e,t){var A=this;this.stamp=t.stamp;var n=e.modified(),r=Re(e.sort),i=SA(e.groupby),o=function(e){return A.group(i(e))},a=this.state;a&&!n||(a=this.state=new Pn(e)),n||t.modified(a.inputs)?(this.value={},t.visit(t.SOURCE,(function(e){return o(e).add(e)}))):(t.visit(t.REM,(function(e){return o(e).remove(e)})),t.visit(t.ADD,(function(e){return o(e).add(e)})));for(var s=0,g=this._mlen;s<g;++s)Wn(this._mods[s],a,r,e);return this._mlen=0,this._mods=[],t.reflow(n).modifies(a.outputs)},group:function(e){var t=this.value[e];return t||(t=this.value[e]=JA(ve),t.stamp=-1),t.stamp<this.stamp&&(t.stamp=this.stamp,this._mods[this._mlen++]=t),t}});var zn=A(11),$n=A(2);function er(e,t,A){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+A)/6)}function tr(e){this._context=e}tr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:er(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);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:er(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};var Ar=function(){};function nr(e){this._context=e}nr.prototype={areaStart:Ar,areaEnd:Ar,lineStart: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},lineEnd: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)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:er(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function rr(e){this._context=e}rr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var A=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(A,n):this._context.moveTo(A,n);break;case 3:this._point=4;default:er(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function ir(e,t){this._basis=new tr(e),this._beta=t}ir.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,A=e.length-1;if(A>0)for(var n,r=e[0],i=t[0],o=e[A]-r,a=t[A]-i,s=-1;++s<=A;)n=s/A,this._basis.point(this._beta*e[s]+(1-this._beta)*(r+n*o),this._beta*t[s]+(1-this._beta)*(i+n*a));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};var or=function e(t){function A(e){return 1===t?new tr(e):new ir(e,t)}return A.beta=function(t){return e(+t)},A}(.85);function ar(e,t,A){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-A),e._x2,e._y2)}function sr(e,t){this._context=e,this._k=(1-t)/6}sr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:ar(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:ar(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var gr=function e(t){function A(e){return new sr(e,t)}return A.tension=function(t){return e(+t)},A}(0);function cr(e,t){this._context=e,this._k=(1-t)/6}cr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,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:ar(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var ur=function e(t){function A(e){return new cr(e,t)}return A.tension=function(t){return e(+t)},A}(0);function lr(e,t){this._context=e,this._k=(1-t)/6}lr.prototype={areaStart:Ar,areaEnd:Ar,lineStart: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},lineEnd: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)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:ar(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var Ir=function e(t){function A(e){return new lr(e,t)}return A.tension=function(t){return e(+t)},A}(0),Cr=Math.abs,hr=Math.atan2,fr=Math.cos,dr=Math.max,Br=Math.min,pr=Math.sin,Er=Math.sqrt,Qr=Math.PI,yr=Qr/2,vr=2*Qr;function mr(e){return e>1?0:e<-1?Qr:Math.acos(e)}function br(e){return e>=1?yr:e<=-1?-yr:Math.asin(e)}function wr(e,t,A){var n=e._x1,r=e._y1,i=e._x2,o=e._y2;if(e._l01_a>1e-12){var a=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,s=3*e._l01_a*(e._l01_a+e._l12_a);n=(n*a-e._x0*e._l12_2a+e._x2*e._l01_2a)/s,r=(r*a-e._y0*e._l12_2a+e._y2*e._l01_2a)/s}if(e._l23_a>1e-12){var g=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,c=3*e._l23_a*(e._l23_a+e._l12_a);i=(i*g+e._x1*e._l23_2a-t*e._l12_2a)/c,o=(o*g+e._y1*e._l23_2a-A*e._l12_2a)/c}e._context.bezierCurveTo(n,r,i,o,e._x2,e._y2)}function Sr(e,t){this._context=e,this._alpha=t}Sr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart: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},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var A=this._x2-e,n=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(A*A+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:wr(this,e,t)}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=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var Fr=function e(t){function A(e){return t?new Sr(e,t):new sr(e,0)}return A.alpha=function(t){return e(+t)},A}(.5);function Rr(e,t){this._context=e,this._alpha=t}Rr.prototype={areaStart:Ar,areaEnd:Ar,lineStart: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},lineEnd: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)}},point:function(e,t){if(e=+e,t=+t,this._point){var A=this._x2-e,n=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(A*A+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:wr(this,e,t)}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=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var Dr=function e(t){function A(e){return t?new Rr(e,t):new lr(e,0)}return A.alpha=function(t){return e(+t)},A}(.5);function Gr(e,t){this._context=e,this._alpha=t}Gr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart: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},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var A=this._x2-e,n=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(A*A+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:wr(this,e,t)}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=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var kr=function e(t){function A(e){return t?new Gr(e,t):new cr(e,0)}return A.alpha=function(t){return e(+t)},A}(.5);function xr(e){this._context=e}xr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};var Nr=function(e){return new xr(e)};function Ur(e){this._context=e}Ur.prototype={areaStart:Ar,areaEnd:Ar,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function _r(e){return e<0?-1:1}function Mr(e,t,A){var n=e._x1-e._x0,r=t-e._x1,i=(e._y1-e._y0)/(n||r<0&&-0),o=(A-e._y1)/(r||n<0&&-0),a=(i*r+o*n)/(n+r);return(_r(i)+_r(o))*Math.min(Math.abs(i),Math.abs(o),.5*Math.abs(a))||0}function Or(e,t){var A=e._x1-e._x0;return A?(3*(e._y1-e._y0)/A-t)/2:t}function Lr(e,t,A){var n=e._x0,r=e._y0,i=e._x1,o=e._y1,a=(i-n)/3;e._context.bezierCurveTo(n+a,r+a*t,i-a,o-a*A,i,o)}function Tr(e){this._context=e}function Zr(e){this._context=new Hr(e)}function Hr(e){this._context=e}function Yr(e){this._context=e}function Jr(e){var t,A,n=e.length-1,r=new Array(n),i=new Array(n),o=new Array(n);for(r[0]=0,i[0]=2,o[0]=e[0]+2*e[1],t=1;t<n-1;++t)r[t]=1,i[t]=4,o[t]=4*e[t]+2*e[t+1];for(r[n-1]=2,i[n-1]=7,o[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)A=r[t]/i[t-1],i[t]-=A,o[t]-=A*o[t-1];for(r[n-1]=o[n-1]/i[n-1],t=n-2;t>=0;--t)r[t]=(o[t]-r[t+1])/i[t];for(i[n-1]=(e[n]+r[n-1])/2,t=0;t<n-1;++t)i[t]=2*e[t+1]-r[t+1];return[r,i]}Tr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Lr(this,this._t0,Or(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var A=NaN;if(t=+t,(e=+e)!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Lr(this,Or(this,A=Mr(this,e,t)),A);break;default:Lr(this,this._t0,A=Mr(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=A}}},(Zr.prototype=Object.create(Tr.prototype)).point=function(e,t){Tr.prototype.point.call(this,t,e)},Hr.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,A,n,r,i){this._context.bezierCurveTo(t,e,n,A,i,r)}},Yr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,A=e.length;if(A)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),2===A)this._context.lineTo(e[1],t[1]);else for(var n=Jr(e),r=Jr(t),i=0,o=1;o<A;++i,++o)this._context.bezierCurveTo(n[0][i],r[0][i],n[1][i],r[1][i],e[o],t[o]);(this._line||0!==this._line&&1===A)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function jr(e,t){this._context=e,this._t=t}jr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var A=this._x*(1-this._t)+e*this._t;this._context.lineTo(A,this._y),this._context.lineTo(A,t)}}this._x=e,this._y=t}};var Pr=Math.PI,Vr=2*Pr,Kr=Vr-1e-6;function Wr(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Xr(){return new Wr}Wr.prototype=Xr.prototype={constructor:Wr,moveTo:function(e,t){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(e,t){this._+="L"+(this._x1=+e)+","+(this._y1=+t)},quadraticCurveTo:function(e,t,A,n){this._+="Q"+ +e+","+ +t+","+(this._x1=+A)+","+(this._y1=+n)},bezierCurveTo:function(e,t,A,n,r,i){this._+="C"+ +e+","+ +t+","+ +A+","+ +n+","+(this._x1=+r)+","+(this._y1=+i)},arcTo:function(e,t,A,n,r){e=+e,t=+t,A=+A,n=+n,r=+r;var i=this._x1,o=this._y1,a=A-e,s=n-t,g=i-e,c=o-t,u=g*g+c*c;if(r<0)throw new Error("negative radius: "+r);if(null===this._x1)this._+="M"+(this._x1=e)+","+(this._y1=t);else if(u>1e-6)if(Math.abs(c*a-s*g)>1e-6&&r){var l=A-i,I=n-o,C=a*a+s*s,h=l*l+I*I,f=Math.sqrt(C),d=Math.sqrt(u),B=r*Math.tan((Pr-Math.acos((C+u-h)/(2*f*d)))/2),p=B/d,E=B/f;Math.abs(p-1)>1e-6&&(this._+="L"+(e+p*g)+","+(t+p*c)),this._+="A"+r+","+r+",0,0,"+ +(c*l>g*I)+","+(this._x1=e+E*a)+","+(this._y1=t+E*s)}else this._+="L"+(this._x1=e)+","+(this._y1=t);else;},arc:function(e,t,A,n,r,i){e=+e,t=+t,i=!!i;var o=(A=+A)*Math.cos(n),a=A*Math.sin(n),s=e+o,g=t+a,c=1^i,u=i?n-r:r-n;if(A<0)throw new Error("negative radius: "+A);null===this._x1?this._+="M"+s+","+g:(Math.abs(this._x1-s)>1e-6||Math.abs(this._y1-g)>1e-6)&&(this._+="L"+s+","+g),A&&(u<0&&(u=u%Vr+Vr),u>Kr?this._+="A"+A+","+A+",0,1,"+c+","+(e-o)+","+(t-a)+"A"+A+","+A+",0,1,"+c+","+(this._x1=s)+","+(this._y1=g):u>1e-6&&(this._+="A"+A+","+A+",0,"+ +(u>=Pr)+","+c+","+(this._x1=e+A*Math.cos(r))+","+(this._y1=t+A*Math.sin(r))))},rect:function(e,t,A,n){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)+"h"+ +A+"v"+ +n+"h"+-A+"Z"},toString:function(){return this._}};var qr=Xr,zr=function(e){return function(){return e}};function $r(e){return e.innerRadius}function ei(e){return e.outerRadius}function ti(e){return e.startAngle}function Ai(e){return e.endAngle}function ni(e){return e&&e.padAngle}function ri(e,t,A,n,r,i,o,a){var s=A-e,g=n-t,c=o-r,u=a-i,l=u*s-c*g;if(!(l*l<1e-12))return[e+(l=(c*(t-i)-u*(e-r))/l)*s,t+l*g]}function ii(e,t,A,n,r,i,o){var a=e-A,s=t-n,g=(o?i:-i)/Er(a*a+s*s),c=g*s,u=-g*a,l=e+c,I=t+u,C=A+c,h=n+u,f=(l+C)/2,d=(I+h)/2,B=C-l,p=h-I,E=B*B+p*p,Q=r-i,y=l*h-C*I,v=(p<0?-1:1)*Er(dr(0,Q*Q*E-y*y)),m=(y*p-B*v)/E,b=(-y*B-p*v)/E,w=(y*p+B*v)/E,S=(-y*B+p*v)/E,F=m-f,R=b-d,D=w-f,G=S-d;return F*F+R*R>D*D+G*G&&(m=w,b=S),{cx:m,cy:b,x01:-c,y01:-u,x11:m*(r/Q-1),y11:b*(r/Q-1)}}Array.prototype.slice;var oi=function(e){return"object"===typeof e&&"length"in e?e:Array.from(e)};function ai(e){return e[0]}function si(e){return e[1]}var gi=function(e,t){var A=zr(!0),n=null,r=Nr,i=null;function o(o){var a,s,g,c=(o=oi(o)).length,u=!1;for(null==n&&(i=r(g=qr())),a=0;a<=c;++a)!(a<c&&A(s=o[a],a,o))===u&&((u=!u)?i.lineStart():i.lineEnd()),u&&i.point(+e(s,a,o),+t(s,a,o));if(g)return i=null,g+""||null}return e="function"===typeof e?e:void 0===e?ai:zr(e),t="function"===typeof t?t:void 0===t?si:zr(t),o.x=function(t){return arguments.length?(e="function"===typeof t?t:zr(+t),o):e},o.y=function(e){return arguments.length?(t="function"===typeof e?e:zr(+e),o):t},o.defined=function(e){return arguments.length?(A="function"===typeof e?e:zr(!!e),o):A},o.curve=function(e){return arguments.length?(r=e,null!=n&&(i=r(n)),o):r},o.context=function(e){return arguments.length?(null==e?n=i=null:i=r(n=e),o):n},o},ci=function(e,t,A){var n=null,r=zr(!0),i=null,o=Nr,a=null;function s(s){var g,c,u,l,I,C=(s=oi(s)).length,h=!1,f=new Array(C),d=new Array(C);for(null==i&&(a=o(I=qr())),g=0;g<=C;++g){if(!(g<C&&r(l=s[g],g,s))===h)if(h=!h)c=g,a.areaStart(),a.lineStart();else{for(a.lineEnd(),a.lineStart(),u=g-1;u>=c;--u)a.point(f[u],d[u]);a.lineEnd(),a.areaEnd()}h&&(f[g]=+e(l,g,s),d[g]=+t(l,g,s),a.point(n?+n(l,g,s):f[g],A?+A(l,g,s):d[g]))}if(I)return a=null,I+""||null}function g(){return gi().defined(r).curve(o).context(i)}return e="function"===typeof e?e:void 0===e?ai:zr(+e),t="function"===typeof t?t:zr(void 0===t?0:+t),A="function"===typeof A?A:void 0===A?si:zr(+A),s.x=function(t){return arguments.length?(e="function"===typeof t?t:zr(+t),n=null,s):e},s.x0=function(t){return arguments.length?(e="function"===typeof t?t:zr(+t),s):e},s.x1=function(e){return arguments.length?(n=null==e?null:"function"===typeof e?e:zr(+e),s):n},s.y=function(e){return arguments.length?(t="function"===typeof e?e:zr(+e),A=null,s):t},s.y0=function(e){return arguments.length?(t="function"===typeof e?e:zr(+e),s):t},s.y1=function(e){return arguments.length?(A=null==e?null:"function"===typeof e?e:zr(+e),s):A},s.lineX0=s.lineY0=function(){return g().x(e).y(t)},s.lineY1=function(){return g().x(e).y(A)},s.lineX1=function(){return g().x(n).y(t)},s.defined=function(e){return arguments.length?(r="function"===typeof e?e:zr(!!e),s):r},s.curve=function(e){return arguments.length?(o=e,null!=i&&(a=o(i)),s):o},s.context=function(e){return arguments.length?(null==e?i=a=null:a=o(i=e),s):i},s},ui={draw:function(e,t){var A=Math.sqrt(t/Qr);e.moveTo(A,0),e.arc(0,0,A,0,vr)}},li=(Math.sqrt(1/3),Math.sin(Qr/10)/Math.sin(7*Qr/10));Math.sin(vr/10),Math.cos(vr/10),Math.sqrt(3),Math.sqrt(3),Math.sqrt(12);function Ii(e,t){if("undefined"!==typeof document&&document.createElement){var A=document.createElement("canvas");if(A&&A.getContext)return A.width=e,A.height=t,A}return null}var Ci=function(){return"undefined"!==typeof Image?Image:null},hi=function(e,t){return e<t?-1:e>t?1:e>=t?0:NaN},fi=function(e){var t=e,A=e;function n(e,t,n,r){for(null==n&&(n=0),null==r&&(r=e.length);n<r;){var i=n+r>>>1;A(e[i],t)<0?n=i+1:r=i}return n}return 1===e.length&&(t=function(t,A){return e(t)-A},A=function(e){return function(t,A){return hi(e(t),A)}}(e)),{left:n,center:function(e,A,r,i){null==r&&(r=0),null==i&&(i=e.length);var o=n(e,A,r,i-1);return o>r&&t(e[o-1],A)>-t(e[o],A)?o-1:o},right:function(e,t,n,r){for(null==n&&(n=0),null==r&&(r=e.length);n<r;){var i=n+r>>>1;A(e[i],t)>0?r=i:n=i+1}return n}}};var di=function(e){return null===e?NaN:+e};var Bi=fi(hi),pi=Bi.right,Ei=(Bi.left,fi(di).center,pi);function Qi(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function yi(e,t){switch(arguments.length){case 0:break;case 1:"function"===typeof e?this.interpolator(e):this.range(e);break;default:this.domain(e),"function"===typeof t?this.interpolator(t):this.range(t)}return this}var vi=Symbol("implicit");function mi(){var e=new Map,t=[],A=[],n=vi;function r(r){var i=r+"",o=e.get(i);if(!o){if(n!==vi)return n;e.set(i,o=t.push(r))}return A[(o-1)%A.length]}return r.domain=function(A){if(!arguments.length)return t.slice();t=[],e=new Map;var n,i=Object(ut.a)(A);try{for(i.s();!(n=i.n()).done;){var o=n.value,a=o+"";e.has(a)||e.set(a,t.push(o))}}catch(s){i.e(s)}finally{i.f()}return r},r.range=function(e){return arguments.length?(A=Array.from(e),r):A.slice()},r.unknown=function(e){return arguments.length?(n=e,r):n},r.copy=function(){return mi(t,A).unknown(n)},Qi.apply(r,arguments),r}var bi=Math.sqrt(50),wi=Math.sqrt(10),Si=Math.sqrt(2),Fi=function(e,t,A){var n,r,i,o,a=-1;if(A=+A,(e=+e)===(t=+t)&&A>0)return[e];if((n=t<e)&&(r=e,e=t,t=r),0===(o=Ri(e,t,A))||!isFinite(o))return[];if(o>0){var s=Math.round(e/o),g=Math.round(t/o);for(s*o<e&&++s,g*o>t&&--g,i=new Array(r=g-s+1);++a<r;)i[a]=(s+a)*o}else{o=-o;var c=Math.round(e*o),u=Math.round(t*o);for(c/o<e&&++c,u/o>t&&--u,i=new Array(r=u-c+1);++a<r;)i[a]=(c+a)/o}return n&&i.reverse(),i};function Ri(e,t,A){var n=(t-e)/Math.max(0,A),r=Math.floor(Math.log(n)/Math.LN10),i=n/Math.pow(10,r);return r>=0?(i>=bi?10:i>=wi?5:i>=Si?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(i>=bi?10:i>=wi?5:i>=Si?2:1)}function Di(e,t,A){var n=Math.abs(t-e)/Math.max(0,A),r=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),i=n/r;return i>=bi?r*=10:i>=wi?r*=5:i>=Si&&(r*=2),t<e?-r:r}var Gi=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ki(e){if(!(t=Gi.exec(e)))throw new Error("invalid format: "+e);var t;return new xi({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function xi(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}ki.prototype=xi.prototype,xi.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Ni,Ui,_i,Mi,Oi=function(e,t){if((A=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var A,n=e.slice(0,A);return[n.length>1?n[0]+n.slice(2):n,+e.slice(A+1)]},Li=function(e){return(e=Oi(Math.abs(e)))?e[1]:NaN},Ti=function(e,t){var A=Oi(e,t);if(!A)return e+"";var n=A[0],r=A[1];return r<0?"0."+new Array(-r).join("0")+n:n.length>r+1?n.slice(0,r+1)+"."+n.slice(r+1):n+new Array(r-n.length+2).join("0")},Zi={"%":function(e,t){return(100*e).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:function(e){return Math.round(e).toString(10)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return Ti(100*e,t)},r:Ti,s:function(e,t){var A=Oi(e,t);if(!A)return e+"";var n=A[0],r=A[1],i=r-(Ni=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,o=n.length;return i===o?n:i>o?n+new Array(i-o+1).join("0"):i>0?n.slice(0,i)+"."+n.slice(i):"0."+new Array(1-i).join("0")+Oi(e,Math.max(0,t+i-1))[0]},X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}},Hi=function(e){return e},Yi=Array.prototype.map,Ji=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];Ui=function(e){var t,A,n=void 0===e.grouping||void 0===e.thousands?Hi:(t=Yi.call(e.grouping,Number),A=e.thousands+"",function(e,n){for(var r=e.length,i=[],o=0,a=t[0],s=0;r>0&&a>0&&(s+a+1>n&&(a=Math.max(1,n-s)),i.push(e.substring(r-=a,r+a)),!((s+=a+1)>n));)a=t[o=(o+1)%t.length];return i.reverse().join(A)}),r=void 0===e.currency?"":e.currency[0]+"",i=void 0===e.currency?"":e.currency[1]+"",o=void 0===e.decimal?".":e.decimal+"",a=void 0===e.numerals?Hi:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(Yi.call(e.numerals,String)),s=void 0===e.percent?"%":e.percent+"",g=void 0===e.minus?"-":e.minus+"",c=void 0===e.nan?"NaN":e.nan+"";function u(e){var t=(e=ki(e)).fill,A=e.align,u=e.sign,l=e.symbol,I=e.zero,C=e.width,h=e.comma,f=e.precision,d=e.trim,B=e.type;"n"===B?(h=!0,B="g"):Zi[B]||(void 0===f&&(f=12),d=!0,B="g"),(I||"0"===t&&"="===A)&&(I=!0,t="0",A="=");var p="$"===l?r:"#"===l&&/[boxX]/.test(B)?"0"+B.toLowerCase():"",E="$"===l?i:/[%p]/.test(B)?s:"",Q=Zi[B],y=/[defgprs%]/.test(B);function v(e){var r,i,s,l=p,v=E;if("c"===B)v=Q(e)+v,e="";else{var m=(e=+e)<0||1/e<0;if(e=isNaN(e)?c:Q(Math.abs(e),f),d&&(e=function(e){e:for(var t,A=e.length,n=1,r=-1;n<A;++n)switch(e[n]){case".":r=t=n;break;case"0":0===r&&(r=n),t=n;break;default:if(!+e[n])break e;r>0&&(r=0)}return r>0?e.slice(0,r)+e.slice(t+1):e}(e)),m&&0===+e&&"+"!==u&&(m=!1),l=(m?"("===u?u:g:"-"===u||"("===u?"":u)+l,v=("s"===B?Ji[8+Ni/3]:"")+v+(m&&"("===u?")":""),y)for(r=-1,i=e.length;++r<i;)if(48>(s=e.charCodeAt(r))||s>57){v=(46===s?o+e.slice(r+1):e.slice(r))+v,e=e.slice(0,r);break}}h&&!I&&(e=n(e,1/0));var b=l.length+e.length+v.length,w=b<C?new Array(C-b+1).join(t):"";switch(h&&I&&(e=n(w+e,w.length?C-v.length:1/0),w=""),A){case"<":e=l+e+v+w;break;case"=":e=l+w+e+v;break;case"^":e=w.slice(0,b=w.length>>1)+l+e+v+w.slice(b);break;default:e=w+l+e+v}return a(e)}return f=void 0===f?6:/[gprs]/.test(B)?Math.max(1,Math.min(21,f)):Math.max(0,Math.min(20,f)),v.toString=function(){return e+""},v}return{format:u,formatPrefix:function(e,t){var A=u(((e=ki(e)).type="f",e)),n=3*Math.max(-8,Math.min(8,Math.floor(Li(t)/3))),r=Math.pow(10,-n),i=Ji[8+n/3];return function(e){return A(r*e)+i}}}}({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),_i=Ui.format,Mi=Ui.formatPrefix;function ji(e,t,A,n){var r,i=Di(e,t,A);switch((n=ki(null==n?",f":n)).type){case"s":var o=Math.max(Math.abs(e),Math.abs(t));return null!=n.precision||isNaN(r=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Li(t)/3)))-Li(Math.abs(e)))}(i,o))||(n.precision=r),Mi(n,o);case"":case"e":case"g":case"p":case"r":null!=n.precision||isNaN(r=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Li(t)-Li(e))+1}(i,Math.max(Math.abs(e),Math.abs(t))))||(n.precision=r-("e"===n.type));break;case"f":case"%":null!=n.precision||isNaN(r=function(e){return Math.max(0,-Li(Math.abs(e)))}(i))||(n.precision=r-2*("%"===n.type))}return _i(n)}var Pi=function(e,t,A){e.prototype=t.prototype=A,A.constructor=e};function Vi(e,t){var A=Object.create(e.prototype);for(var n in t)A[n]=t[n];return A}function Ki(){}var Wi="\\s*([+-]?\\d+)\\s*",Xi="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",qi="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",zi=/^#([0-9a-f]{3,8})$/,$i=new RegExp("^rgb\\("+[Wi,Wi,Wi]+"\\)$"),eo=new RegExp("^rgb\\("+[qi,qi,qi]+"\\)$"),to=new RegExp("^rgba\\("+[Wi,Wi,Wi,Xi]+"\\)$"),Ao=new RegExp("^rgba\\("+[qi,qi,qi,Xi]+"\\)$"),no=new RegExp("^hsl\\("+[Xi,qi,qi]+"\\)$"),ro=new RegExp("^hsla\\("+[Xi,qi,qi,Xi]+"\\)$"),io={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};function oo(){return this.rgb().formatHex()}function ao(){return this.rgb().formatRgb()}function so(e){var t,A;return e=(e+"").trim().toLowerCase(),(t=zi.exec(e))?(A=t[1].length,t=parseInt(t[1],16),6===A?go(t):3===A?new Io(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===A?new Io(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===A?new Io(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=$i.exec(e))?new Io(t[1],t[2],t[3],1):(t=eo.exec(e))?new Io(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=to.exec(e))?co(t[1],t[2],t[3],t[4]):(t=Ao.exec(e))?co(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=no.exec(e))?Bo(t[1],t[2]/100,t[3]/100,1):(t=ro.exec(e))?Bo(t[1],t[2]/100,t[3]/100,t[4]):io.hasOwnProperty(e)?go(io[e]):"transparent"===e?new Io(NaN,NaN,NaN,0):null}function go(e){return new Io(e>>16&255,e>>8&255,255&e,1)}function co(e,t,A,n){return n<=0&&(e=t=A=NaN),new Io(e,t,A,n)}function uo(e){return e instanceof Ki||(e=so(e)),e?new Io((e=e.rgb()).r,e.g,e.b,e.opacity):new Io}function lo(e,t,A,n){return 1===arguments.length?uo(e):new Io(e,t,A,null==n?1:n)}function Io(e,t,A,n){this.r=+e,this.g=+t,this.b=+A,this.opacity=+n}function Co(){return"#"+fo(this.r)+fo(this.g)+fo(this.b)}function ho(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?")":", "+e+")")}function fo(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function Bo(e,t,A,n){return n<=0?e=t=A=NaN:A<=0||A>=1?e=t=NaN:t<=0&&(e=NaN),new Qo(e,t,A,n)}function po(e){if(e instanceof Qo)return new Qo(e.h,e.s,e.l,e.opacity);if(e instanceof Ki||(e=so(e)),!e)return new Qo;if(e instanceof Qo)return e;var t=(e=e.rgb()).r/255,A=e.g/255,n=e.b/255,r=Math.min(t,A,n),i=Math.max(t,A,n),o=NaN,a=i-r,s=(i+r)/2;return a?(o=t===i?(A-n)/a+6*(A<n):A===i?(n-t)/a+2:(t-A)/a+4,a/=s<.5?i+r:2-i-r,o*=60):a=s>0&&s<1?0:o,new Qo(o,a,s,e.opacity)}function Eo(e,t,A,n){return 1===arguments.length?po(e):new Qo(e,t,A,null==n?1:n)}function Qo(e,t,A,n){this.h=+e,this.s=+t,this.l=+A,this.opacity=+n}function yo(e,t,A){return 255*(e<60?t+(A-t)*e/60:e<180?A:e<240?t+(A-t)*(240-e)/60:t)}function vo(e,t,A,n,r){var i=e*e,o=i*e;return((1-3*e+3*i-o)*t+(4-6*i+3*o)*A+(1+3*e+3*i-3*o)*n+o*r)/6}Pi(Ki,so,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:oo,formatHex:oo,formatHsl:function(){return po(this).formatHsl()},formatRgb:ao,toString:ao}),Pi(Io,lo,Vi(Ki,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new Io(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new Io(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){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:Co,formatHex:Co,formatRgb:ho,toString:ho})),Pi(Qo,Eo,Vi(Ki,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new Qo(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new Qo(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,A=this.l,n=A+(A<.5?A:1-A)*t,r=2*A-n;return new Io(yo(e>=240?e-240:e+120,r,n),yo(e,r,n),yo(e<120?e+240:e-120,r,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}));var mo=function(e){var t=e.length-1;return function(A){var n=A<=0?A=0:A>=1?(A=1,t-1):Math.floor(A*t),r=e[n],i=e[n+1],o=n>0?e[n-1]:2*r-i,a=n<t-1?e[n+2]:2*i-r;return vo((A-n/t)*t,o,r,i,a)}},bo=function(e){var t=e.length;return function(A){var n=Math.floor(((A%=1)<0?++A:A)*t),r=e[(n+t-1)%t],i=e[n%t],o=e[(n+1)%t],a=e[(n+2)%t];return vo((A-n/t)*t,r,i,o,a)}},wo=function(e){return function(){return e}};function So(e,t){return function(A){return e+A*t}}function Fo(e,t){var A=t-e;return A?So(e,A>180||A<-180?A-360*Math.round(A/360):A):wo(isNaN(e)?t:e)}function Ro(e){return 1===(e=+e)?Do:function(t,A){return A-t?function(e,t,A){return e=Math.pow(e,A),t=Math.pow(t,A)-e,A=1/A,function(n){return Math.pow(e+n*t,A)}}(t,A,e):wo(isNaN(t)?A:t)}}function Do(e,t){var A=t-e;return A?So(e,A):wo(isNaN(e)?t:e)}var Go=function e(t){var A=Ro(t);function n(e,t){var n=A((e=lo(e)).r,(t=lo(t)).r),r=A(e.g,t.g),i=A(e.b,t.b),o=Do(e.opacity,t.opacity);return function(t){return e.r=n(t),e.g=r(t),e.b=i(t),e.opacity=o(t),e+""}}return n.gamma=e,n}(1);function ko(e){return function(t){var A,n,r=t.length,i=new Array(r),o=new Array(r),a=new Array(r);for(A=0;A<r;++A)n=lo(t[A]),i[A]=n.r||0,o[A]=n.g||0,a[A]=n.b||0;return i=e(i),o=e(o),a=e(a),n.opacity=1,function(e){return n.r=i(e),n.g=o(e),n.b=a(e),n+""}}}var xo=ko(mo),No=ko(bo),Uo=function(e,t){t||(t=[]);var A,n=e?Math.min(t.length,e.length):0,r=t.slice();return function(i){for(A=0;A<n;++A)r[A]=e[A]*(1-i)+t[A]*i;return r}};function _o(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}var Mo=function(e,t){return(_o(t)?Uo:Oo)(e,t)};function Oo(e,t){var A,n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),o=new Array(n);for(A=0;A<r;++A)i[A]=jo(e[A],t[A]);for(;A<n;++A)o[A]=t[A];return function(e){for(A=0;A<r;++A)o[A]=i[A](e);return o}}var Lo=function(e,t){var A=new Date;return e=+e,t=+t,function(n){return A.setTime(e*(1-n)+t*n),A}},To=function(e,t){return e=+e,t=+t,function(A){return e*(1-A)+t*A}},Zo=function(e,t){var A,n={},r={};for(A in null!==e&&"object"===typeof e||(e={}),null!==t&&"object"===typeof t||(t={}),t)A in e?n[A]=jo(e[A],t[A]):r[A]=t[A];return function(e){for(A in n)r[A]=n[A](e);return r}},Ho=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Yo=new RegExp(Ho.source,"g");var Jo=function(e,t){var A,n,r,i=Ho.lastIndex=Yo.lastIndex=0,o=-1,a=[],s=[];for(e+="",t+="";(A=Ho.exec(e))&&(n=Yo.exec(t));)(r=n.index)>i&&(r=t.slice(i,r),a[o]?a[o]+=r:a[++o]=r),(A=A[0])===(n=n[0])?a[o]?a[o]+=n:a[++o]=n:(a[++o]=null,s.push({i:o,x:To(A,n)})),i=Yo.lastIndex;return i<t.length&&(r=t.slice(i),a[o]?a[o]+=r:a[++o]=r),a.length<2?s[0]?function(e){return function(t){return e(t)+""}}(s[0].x):function(e){return function(){return e}}(t):(t=s.length,function(e){for(var A,n=0;n<t;++n)a[(A=s[n]).i]=A.x(e);return a.join("")})},jo=function(e,t){var A,n=typeof t;return null==t||"boolean"===n?wo(t):("number"===n?To:"string"===n?(A=so(t))?(t=A,Go):Jo:t instanceof so?Go:t instanceof Date?Lo:_o(t)?Uo:Array.isArray(t)?Oo:"function"!==typeof t.valueOf&&"function"!==typeof t.toString||isNaN(t)?Zo:To)(e,t)},Po=function(e,t){return e=+e,t=+t,function(A){return Math.round(e*(1-A)+t*A)}};function Vo(e){return+e}var Ko=[0,1];function Wo(e){return e}function Xo(e,t){return(t-=e=+e)?function(A){return(A-e)/t}:(A=isNaN(t)?NaN:.5,function(){return A});var A}function qo(e,t,A){var n=e[0],r=e[1],i=t[0],o=t[1];return r<n?(n=Xo(r,n),i=A(o,i)):(n=Xo(n,r),i=A(i,o)),function(e){return i(n(e))}}function zo(e,t,A){var n=Math.min(e.length,t.length)-1,r=new Array(n),i=new Array(n),o=-1;for(e[n]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<n;)r[o]=Xo(e[o],e[o+1]),i[o]=A(t[o],t[o+1]);return function(t){var A=Ei(e,t,1,n)-1;return i[A](r[A](t))}}function $o(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function ea(){var e,t,A,n,r,i,o=Ko,a=Ko,s=jo,g=Wo;function c(){var e=Math.min(o.length,a.length);return g!==Wo&&(g=function(e,t){var A;return e>t&&(A=e,e=t,t=A),function(A){return Math.max(e,Math.min(t,A))}}(o[0],o[e-1])),n=e>2?zo:qo,r=i=null,u}function u(t){return null==t||isNaN(t=+t)?A:(r||(r=n(o.map(e),a,s)))(e(g(t)))}return u.invert=function(A){return g(t((i||(i=n(a,o.map(e),To)))(A)))},u.domain=function(e){return arguments.length?(o=Array.from(e,Vo),c()):o.slice()},u.range=function(e){return arguments.length?(a=Array.from(e),c()):a.slice()},u.rangeRound=function(e){return a=Array.from(e),s=Po,c()},u.clamp=function(e){return arguments.length?(g=!!e||Wo,c()):g!==Wo},u.interpolate=function(e){return arguments.length?(s=e,c()):s},u.unknown=function(e){return arguments.length?(A=e,u):A},function(A,n){return e=A,t=n,c()}}function ta(){return ea()(Wo,Wo)}function Aa(e){var t=e.domain;return e.ticks=function(e){var A=t();return Fi(A[0],A[A.length-1],null==e?10:e)},e.tickFormat=function(e,A){var n=t();return ji(n[0],n[n.length-1],null==e?10:e,A)},e.nice=function(A){null==A&&(A=10);var n,r,i=t(),o=0,a=i.length-1,s=i[o],g=i[a],c=10;for(g<s&&(r=s,s=g,g=r,r=o,o=a,a=r);c-- >0;){if((r=Ri(s,g,A))===n)return i[o]=s,i[a]=g,t(i);if(r>0)s=Math.floor(s/r)*r,g=Math.ceil(g/r)*r;else{if(!(r<0))break;s=Math.ceil(s*r)/r,g=Math.floor(g*r)/r}n=r}return e},e}function na(e,t){var A,n=0,r=(e=e.slice()).length-1,i=e[n],o=e[r];return o<i&&(A=n,n=r,r=A,A=i,i=o,o=A),e[n]=t.floor(i),e[r]=t.ceil(o),e}function ra(e){return Math.log(e)}function ia(e){return Math.exp(e)}function oa(e){return-Math.log(-e)}function aa(e){return-Math.exp(-e)}function sa(e){return isFinite(e)?+("1e"+e):e<0?0:e}function ga(e){return function(t){return-e(-t)}}function ca(e){var t,A,n=e(ra,ia),r=n.domain,i=10;function o(){return t=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),function(t){return Math.log(t)/e})}(i),A=function(e){return 10===e?sa:e===Math.E?Math.exp:function(t){return Math.pow(e,t)}}(i),r()[0]<0?(t=ga(t),A=ga(A),e(oa,aa)):e(ra,ia),n}return n.base=function(e){return arguments.length?(i=+e,o()):i},n.domain=function(e){return arguments.length?(r(e),o()):r()},n.ticks=function(e){var n,o=r(),a=o[0],s=o[o.length-1];(n=s<a)&&(l=a,a=s,s=l);var g,c,u,l=t(a),I=t(s),C=null==e?10:+e,h=[];if(!(i%1)&&I-l<C){if(l=Math.floor(l),I=Math.ceil(I),a>0){for(;l<=I;++l)for(c=1,g=A(l);c<i;++c)if(!((u=g*c)<a)){if(u>s)break;h.push(u)}}else for(;l<=I;++l)for(c=i-1,g=A(l);c>=1;--c)if(!((u=g*c)<a)){if(u>s)break;h.push(u)}2*h.length<C&&(h=Fi(a,s,C))}else h=Fi(l,I,Math.min(I-l,C)).map(A);return n?h.reverse():h},n.tickFormat=function(e,r){if(null==r&&(r=10===i?".0e":","),"function"!==typeof r&&(r=_i(r)),e===1/0)return r;null==e&&(e=10);var o=Math.max(1,i*e/n.ticks().length);return function(e){var n=e/A(Math.round(t(e)));return n*i<i-.5&&(n*=i),n<=o?r(e):""}},n.nice=function(){return r(na(r(),{floor:function(e){return A(Math.floor(t(e)))},ceil:function(e){return A(Math.ceil(t(e)))}}))},n}function ua(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function la(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Ia(e){return e<0?-e*e:e*e}function Ca(e){var t=e(Wo,Wo),A=1;function n(){return 1===A?e(Wo,Wo):.5===A?e(la,Ia):e(ua(A),ua(1/A))}return t.exponent=function(e){return arguments.length?(A=+e,n()):A},Aa(t)}function ha(){var e=Ca(ea());return e.copy=function(){return $o(e,ha()).exponent(e.exponent())},Qi.apply(e,arguments),e}function fa(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function da(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Ba(e){var t=1,A=e(fa(t),da(t));return A.constant=function(A){return arguments.length?e(fa(t=+A),da(t)):t},Aa(A)}var pa=new Date,Ea=new Date;function Qa(e,t,A,n){function r(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return r.floor=function(t){return e(t=new Date(+t)),t},r.ceil=function(A){return e(A=new Date(A-1)),t(A,1),e(A),A},r.round=function(e){var t=r(e),A=r.ceil(e);return e-t<A-e?t:A},r.offset=function(e,A){return t(e=new Date(+e),null==A?1:Math.floor(A)),e},r.range=function(A,n,i){var o,a=[];if(A=r.ceil(A),i=null==i?1:Math.floor(i),!(A<n)||!(i>0))return a;do{a.push(o=new Date(+A)),t(A,i),e(A)}while(o<A&&A<n);return a},r.filter=function(A){return Qa((function(t){if(t>=t)for(;e(t),!A(t);)t.setTime(t-1)}),(function(e,n){if(e>=e)if(n<0)for(;++n<=0;)for(;t(e,-1),!A(e););else for(;--n>=0;)for(;t(e,1),!A(e););}))},A&&(r.count=function(t,n){return pa.setTime(+t),Ea.setTime(+n),e(pa),e(Ea),Math.floor(A(pa,Ea))},r.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?r.filter(n?function(t){return n(t)%e===0}:function(t){return r.count(0,t)%e===0}):r:null}),r}var ya=Qa((function(){}),(function(e,t){e.setTime(+e+t)}),(function(e,t){return t-e}));ya.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?Qa((function(t){t.setTime(Math.floor(t/e)*e)}),(function(t,A){t.setTime(+t+A*e)}),(function(t,A){return(A-t)/e})):ya:null};var va=ya,ma=(ya.range,Qa((function(e){e.setTime(e-e.getMilliseconds())}),(function(e,t){e.setTime(+e+1e3*t)}),(function(e,t){return(t-e)/1e3}),(function(e){return e.getUTCSeconds()}))),ba=ma,wa=(ma.range,Qa((function(e){e.setTime(e-e.getMilliseconds()-1e3*e.getSeconds())}),(function(e,t){e.setTime(+e+6e4*t)}),(function(e,t){return(t-e)/6e4}),(function(e){return e.getMinutes()}))),Sa=wa,Fa=(wa.range,Qa((function(e){e.setTime(e-e.getMilliseconds()-1e3*e.getSeconds()-6e4*e.getMinutes())}),(function(e,t){e.setTime(+e+36e5*t)}),(function(e,t){return(t-e)/36e5}),(function(e){return e.getHours()}))),Ra=Fa,Da=(Fa.range,Qa((function(e){return e.setHours(0,0,0,0)}),(function(e,t){return e.setDate(e.getDate()+t)}),(function(e,t){return(t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5}),(function(e){return e.getDate()-1}))),Ga=Da;Da.range;function ka(e){return Qa((function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/6048e5}))}var xa=ka(0),Na=ka(1),Ua=ka(2),_a=ka(3),Ma=ka(4),Oa=ka(5),La=ka(6),Ta=(xa.range,Na.range,Ua.range,_a.range,Ma.range,Oa.range,La.range,Qa((function(e){e.setDate(1),e.setHours(0,0,0,0)}),(function(e,t){e.setMonth(e.getMonth()+t)}),(function(e,t){return t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())}),(function(e){return e.getMonth()}))),Za=Ta,Ha=(Ta.range,Qa((function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()})));Ha.every=function(e){return isFinite(e=Math.floor(e))&&e>0?Qa((function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,A){t.setFullYear(t.getFullYear()+A*e)})):null};var Ya=Ha,Ja=(Ha.range,Qa((function(e){e.setUTCSeconds(0,0)}),(function(e,t){e.setTime(+e+6e4*t)}),(function(e,t){return(t-e)/6e4}),(function(e){return e.getUTCMinutes()}))),ja=Ja,Pa=(Ja.range,Qa((function(e){e.setUTCMinutes(0,0,0)}),(function(e,t){e.setTime(+e+36e5*t)}),(function(e,t){return(t-e)/36e5}),(function(e){return e.getUTCHours()}))),Va=Pa,Ka=(Pa.range,Qa((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/864e5}),(function(e){return e.getUTCDate()-1}))),Wa=Ka;Ka.range;function Xa(e){return Qa((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/6048e5}))}var qa=Xa(0),za=Xa(1),$a=Xa(2),es=Xa(3),ts=Xa(4),As=Xa(5),ns=Xa(6),rs=(qa.range,za.range,$a.range,es.range,ts.range,As.range,ns.range,Qa((function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCMonth(e.getUTCMonth()+t)}),(function(e,t){return t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return e.getUTCMonth()}))),is=rs,os=(rs.range,Qa((function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()})));os.every=function(e){return isFinite(e=Math.floor(e))&&e>0?Qa((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,A){t.setUTCFullYear(t.getUTCFullYear()+A*e)})):null};var as=os;os.range;function ss(e,t,A,n,r,i){var o=[[ba,1,1e3],[ba,5,5e3],[ba,15,15e3],[ba,30,3e4],[i,1,6e4],[i,5,3e5],[i,15,9e5],[i,30,18e5],[r,1,36e5],[r,3,108e5],[r,6,216e5],[r,12,432e5],[n,1,864e5],[n,2,1728e5],[A,1,6048e5],[t,1,2592e6],[t,3,7776e6],[e,1,31536e6]];function a(t,A,n){var r=Math.abs(A-t)/n,i=fi((function(e){return Object(lt.a)(e,3)[2]})).right(o,r);if(i===o.length)return e.every(Di(t/31536e6,A/31536e6,n));if(0===i)return va.every(Math.max(Di(t,A,n),1));var a=Object(lt.a)(o[r/o[i-1][2]<o[i][2]/r?i-1:i],2),s=a[0],g=a[1];return s.every(g)}return[function(e,t,A){var n=t<e;if(n){var r=[t,e];e=r[0],t=r[1]}var i=A&&"function"===typeof A.range?A:a(e,t,A),o=i?i.range(e,+t+1):[];return n?o.reverse():o},a]}var gs=ss(as,is,qa,Wa,Va,ja),cs=Object(lt.a)(gs,2),us=cs[0],ls=cs[1],Is=ss(Ya,Za,xa,Ga,Ra,Sa),Cs=Object(lt.a)(Is,2),hs=Cs[0],fs=Cs[1],ds=A(1270),Bs=A(1271),ps=A(1272),Es=A(1273),Qs=A(1274),ys=A(1275);function vs(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function ms(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function bs(e,t,A){return{y:e,m:t,d:A,H:0,M:0,S:0,L:0}}var ws,Ss,Fs,Rs={"-":"",_:" ",0:"0"},Ds=/^\s*\d+/,Gs=/^%/,ks=/[\\^$*+?|[\]().{}]/g;function xs(e,t,A){var n=e<0?"-":"",r=(n?-e:e)+"",i=r.length;return n+(i<A?new Array(A-i+1).join(t)+r:r)}function Ns(e){return e.replace(ks,"\\$&")}function Us(e){return new RegExp("^(?:"+e.map(Ns).join("|")+")","i")}function _s(e){for(var t={},A=-1,n=e.length;++A<n;)t[e[A].toLowerCase()]=A;return t}function Ms(e,t,A){var n=Ds.exec(t.slice(A,A+1));return n?(e.w=+n[0],A+n[0].length):-1}function Os(e,t,A){var n=Ds.exec(t.slice(A,A+1));return n?(e.u=+n[0],A+n[0].length):-1}function Ls(e,t,A){var n=Ds.exec(t.slice(A,A+2));return n?(e.U=+n[0],A+n[0].length):-1}function Ts(e,t,A){var n=Ds.exec(t.slice(A,A+2));return n?(e.V=+n[0],A+n[0].length):-1}function Zs(e,t,A){var n=Ds.exec(t.slice(A,A+2));return n?(e.W=+n[0],A+n[0].length):-1}function Hs(e,t,A){var n=Ds.exec(t.slice(A,A+4));return n?(e.y=+n[0],A+n[0].length):-1}function Ys(e,t,A){var n=Ds.exec(t.slice(A,A+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),A+n[0].length):-1}function Js(e,t,A){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(A,A+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),A+n[0].length):-1}function js(e,t,A){var n=Ds.exec(t.slice(A,A+1));return n?(e.q=3*n[0]-3,A+n[0].length):-1}function Ps(e,t,A){var n=Ds.exec(t.slice(A,A+2));return n?(e.m=n[0]-1,A+n[0].length):-1}function Vs(e,t,A){var n=Ds.exec(t.slice(A,A+2));return n?(e.d=+n[0],A+n[0].length):-1}function Ks(e,t,A){var n=Ds.exec(t.slice(A,A+3));return n?(e.m=0,e.d=+n[0],A+n[0].length):-1}function Ws(e,t,A){var n=Ds.exec(t.slice(A,A+2));return n?(e.H=+n[0],A+n[0].length):-1}function Xs(e,t,A){var n=Ds.exec(t.slice(A,A+2));return n?(e.M=+n[0],A+n[0].length):-1}function qs(e,t,A){var n=Ds.exec(t.slice(A,A+2));return n?(e.S=+n[0],A+n[0].length):-1}function zs(e,t,A){var n=Ds.exec(t.slice(A,A+3));return n?(e.L=+n[0],A+n[0].length):-1}function $s(e,t,A){var n=Ds.exec(t.slice(A,A+6));return n?(e.L=Math.floor(n[0]/1e3),A+n[0].length):-1}function eg(e,t,A){var n=Gs.exec(t.slice(A,A+1));return n?A+n[0].length:-1}function tg(e,t,A){var n=Ds.exec(t.slice(A));return n?(e.Q=+n[0],A+n[0].length):-1}function Ag(e,t,A){var n=Ds.exec(t.slice(A));return n?(e.s=+n[0],A+n[0].length):-1}function ng(e,t){return xs(e.getDate(),t,2)}function rg(e,t){return xs(e.getHours(),t,2)}function ig(e,t){return xs(e.getHours()%12||12,t,2)}function og(e,t){return xs(1+Es.a.count(Object(Qs.a)(e),e),t,3)}function ag(e,t){return xs(e.getMilliseconds(),t,3)}function sg(e,t){return ag(e,t)+"000"}function gg(e,t){return xs(e.getMonth()+1,t,2)}function cg(e,t){return xs(e.getMinutes(),t,2)}function ug(e,t){return xs(e.getSeconds(),t,2)}function lg(e){var t=e.getDay();return 0===t?7:t}function Ig(e,t){return xs(ps.b.count(Object(Qs.a)(e)-1,e),t,2)}function Cg(e,t){var A=e.getDay();return e=A>=4||0===A?Object(ps.c)(e):ps.c.ceil(e),xs(ps.c.count(Object(Qs.a)(e),e)+(4===Object(Qs.a)(e).getDay()),t,2)}function hg(e){return e.getDay()}function fg(e,t){return xs(ps.a.count(Object(Qs.a)(e)-1,e),t,2)}function dg(e,t){return xs(e.getFullYear()%100,t,2)}function Bg(e,t){return xs(e.getFullYear()%1e4,t,4)}function pg(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+xs(t/60|0,"0",2)+xs(t%60,"0",2)}function Eg(e,t){return xs(e.getUTCDate(),t,2)}function Qg(e,t){return xs(e.getUTCHours(),t,2)}function yg(e,t){return xs(e.getUTCHours()%12||12,t,2)}function vg(e,t){return xs(1+Bs.a.count(Object(ys.a)(e),e),t,3)}function mg(e,t){return xs(e.getUTCMilliseconds(),t,3)}function bg(e,t){return mg(e,t)+"000"}function wg(e,t){return xs(e.getUTCMonth()+1,t,2)}function Sg(e,t){return xs(e.getUTCMinutes(),t,2)}function Fg(e,t){return xs(e.getUTCSeconds(),t,2)}function Rg(e){var t=e.getUTCDay();return 0===t?7:t}function Dg(e,t){return xs(ds.b.count(Object(ys.a)(e)-1,e),t,2)}function Gg(e,t){var A=e.getUTCDay();return e=A>=4||0===A?Object(ds.c)(e):ds.c.ceil(e),xs(ds.c.count(Object(ys.a)(e),e)+(4===Object(ys.a)(e).getUTCDay()),t,2)}function kg(e){return e.getUTCDay()}function xg(e,t){return xs(ds.a.count(Object(ys.a)(e)-1,e),t,2)}function Ng(e,t){return xs(e.getUTCFullYear()%100,t,2)}function Ug(e,t){return xs(e.getUTCFullYear()%1e4,t,4)}function _g(){return"+0000"}function Mg(){return"%"}function Og(e){return+e}function Lg(e){return Math.floor(+e/1e3)}function Tg(e){return new Date(e)}function Zg(e){return e instanceof Date?+e:+new Date(+e)}function Hg(e,t,A,n,r,i,o,a,s,g){var c=ta(),u=c.invert,l=c.domain,I=g(".%L"),C=g(":%S"),h=g("%I:%M"),f=g("%I %p"),d=g("%a %d"),B=g("%b %d"),p=g("%B"),E=g("%Y");function Q(e){return(s(e)<e?I:a(e)<e?C:o(e)<e?h:i(e)<e?f:n(e)<e?r(e)<e?d:B:A(e)<e?p:E)(e)}return c.invert=function(e){return new Date(u(e))},c.domain=function(e){return arguments.length?l(Array.from(e,Zg)):l().map(Tg)},c.ticks=function(t){var A=l();return e(A[0],A[A.length-1],null==t?10:t)},c.tickFormat=function(e,t){return null==t?Q:g(t)},c.nice=function(e){var A=l();return e&&"function"===typeof e.range||(e=t(A[0],A[A.length-1],null==e?10:e)),e?l(na(A,e)):c},c.copy=function(){return $o(c,Hg(e,t,A,n,r,i,o,a,s,g))},c}function Yg(){var e,t,A,n,r,i=0,o=1,a=Wo,s=!1;function g(t){return null==t||isNaN(t=+t)?r:a(0===A?.5:(t=(n(t)-e)*A,s?Math.max(0,Math.min(1,t)):t))}function c(e){return function(t){var A,n,r,i;return arguments.length?(A=t,r=(n=Object(lt.a)(A,2))[0],i=n[1],a=e(r,i),g):[a(0),a(1)]}}return g.domain=function(r){var a,s;return arguments.length?(a=r,s=Object(lt.a)(a,2),i=s[0],o=s[1],e=n(i=+i),t=n(o=+o),A=e===t?0:1/(t-e),g):[i,o]},g.clamp=function(e){return arguments.length?(s=!!e,g):s},g.interpolator=function(e){return arguments.length?(a=e,g):a},g.range=c(jo),g.rangeRound=c(Po),g.unknown=function(e){return arguments.length?(r=e,g):r},function(r){return n=r,e=r(i),t=r(o),A=e===t?0:1/(t-e),g}}function Jg(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function jg(){var e=Aa(Yg()(Wo));return e.copy=function(){return Jg(e,jg())},yi.apply(e,arguments)}function Pg(){var e=Ca(Yg());return e.copy=function(){return Jg(e,Pg()).exponent(e.exponent())},yi.apply(e,arguments)}function Vg(e,t){void 0===t&&(t=e,e=jo);for(var A=0,n=t.length-1,r=t[0],i=new Array(n<0?0:n);A<n;)i[A]=e(r,r=t[++A]);return function(e){var t=Math.max(0,Math.min(n-1,Math.floor(e*=n)));return i[t](e-t)}}function Kg(){var e,t,A,n,r,i,o,a=0,s=.5,g=1,c=1,u=Wo,l=!1;function I(e){return isNaN(e=+e)?o:(e=.5+((e=+i(e))-t)*(c*e<c*t?n:r),u(l?Math.max(0,Math.min(1,e)):e))}function C(e){return function(t){var A,n,r,i,o;return arguments.length?(A=t,r=(n=Object(lt.a)(A,3))[0],i=n[1],o=n[2],u=Vg(e,[r,i,o]),I):[u(0),u(.5),u(1)]}}return I.domain=function(o){var u,l;return arguments.length?(u=o,l=Object(lt.a)(u,3),a=l[0],s=l[1],g=l[2],e=i(a=+a),t=i(s=+s),A=i(g=+g),n=e===t?0:.5/(t-e),r=t===A?0:.5/(A-t),c=t<e?-1:1,I):[a,s,g]},I.clamp=function(e){return arguments.length?(l=!!e,I):l},I.interpolator=function(e){return arguments.length?(u=e,I):u},I.range=C(jo),I.rangeRound=C(Po),I.unknown=function(e){return arguments.length?(o=e,I):o},function(o){return i=o,e=o(a),t=o(s),A=o(g),n=e===t?0:.5/(t-e),r=t===A?0:.5/(A-t),c=t<e?-1:1,I}}function Wg(){var e=Ca(Kg());return e.copy=function(){return Jg(e,Wg()).exponent(e.exponent())},yi.apply(e,arguments)}function Xg(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:di;if(n=e.length){if((t=+t)<=0||n<2)return+A(e[0],0,e);if(t>=1)return+A(e[n-1],n-1,e);var n,r=(n-1)*t,i=Math.floor(r),o=+A(e[i],i,e),a=+A(e[i+1],i+1,e);return o+(a-o)*(r-i)}}!function(e){ws=function(e){var t=e.dateTime,A=e.date,n=e.time,r=e.periods,i=e.days,o=e.shortDays,a=e.months,s=e.shortMonths,g=Us(r),c=_s(r),u=Us(i),l=_s(i),I=Us(o),C=_s(o),h=Us(a),f=_s(a),d=Us(s),B=_s(s),p={a:function(e){return o[e.getDay()]},A:function(e){return i[e.getDay()]},b:function(e){return s[e.getMonth()]},B:function(e){return a[e.getMonth()]},c:null,d:ng,e:ng,f:sg,H:rg,I:ig,j:og,L:ag,m:gg,M:cg,p:function(e){return r[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:Og,s:Lg,S:ug,u:lg,U:Ig,V:Cg,w:hg,W:fg,x:null,X:null,y:dg,Y:Bg,Z:pg,"%":Mg},E={a:function(e){return o[e.getUTCDay()]},A:function(e){return i[e.getUTCDay()]},b:function(e){return s[e.getUTCMonth()]},B:function(e){return a[e.getUTCMonth()]},c:null,d:Eg,e:Eg,f:bg,H:Qg,I:yg,j:vg,L:mg,m:wg,M:Sg,p:function(e){return r[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:Og,s:Lg,S:Fg,u:Rg,U:Dg,V:Gg,w:kg,W:xg,x:null,X:null,y:Ng,Y:Ug,Z:_g,"%":Mg},Q={a:function(e,t,A){var n=I.exec(t.slice(A));return n?(e.w=C[n[0].toLowerCase()],A+n[0].length):-1},A:function(e,t,A){var n=u.exec(t.slice(A));return n?(e.w=l[n[0].toLowerCase()],A+n[0].length):-1},b:function(e,t,A){var n=d.exec(t.slice(A));return n?(e.m=B[n[0].toLowerCase()],A+n[0].length):-1},B:function(e,t,A){var n=h.exec(t.slice(A));return n?(e.m=f[n[0].toLowerCase()],A+n[0].length):-1},c:function(e,A,n){return m(e,t,A,n)},d:Vs,e:Vs,f:$s,H:Ws,I:Ws,j:Ks,L:zs,m:Ps,M:Xs,p:function(e,t,A){var n=g.exec(t.slice(A));return n?(e.p=c[n[0].toLowerCase()],A+n[0].length):-1},q:js,Q:tg,s:Ag,S:qs,u:Os,U:Ls,V:Ts,w:Ms,W:Zs,x:function(e,t,n){return m(e,A,t,n)},X:function(e,t,A){return m(e,n,t,A)},y:Ys,Y:Hs,Z:Js,"%":eg};function y(e,t){return function(A){var n,r,i,o=[],a=-1,s=0,g=e.length;for(A instanceof Date||(A=new Date(+A));++a<g;)37===e.charCodeAt(a)&&(o.push(e.slice(s,a)),null!=(r=Rs[n=e.charAt(++a)])?n=e.charAt(++a):r="e"===n?" ":"0",(i=t[n])&&(n=i(A,r)),o.push(n),s=a+1);return o.push(e.slice(s,a)),o.join("")}}function v(e,t){return function(A){var n,r,i=bs(1900,void 0,1);if(m(i,e,A+="",0)!=A.length)return null;if("Q"in i)return new Date(i.Q);if("s"in i)return new Date(1e3*i.s+("L"in i?i.L:0));if(t&&!("Z"in i)&&(i.Z=0),"p"in i&&(i.H=i.H%12+12*i.p),void 0===i.m&&(i.m="q"in i?i.q:0),"V"in i){if(i.V<1||i.V>53)return null;"w"in i||(i.w=1),"Z"in i?(r=(n=ms(bs(i.y,0,1))).getUTCDay(),n=r>4||0===r?ds.a.ceil(n):Object(ds.a)(n),n=Bs.a.offset(n,7*(i.V-1)),i.y=n.getUTCFullYear(),i.m=n.getUTCMonth(),i.d=n.getUTCDate()+(i.w+6)%7):(r=(n=vs(bs(i.y,0,1))).getDay(),n=r>4||0===r?ps.a.ceil(n):Object(ps.a)(n),n=Es.a.offset(n,7*(i.V-1)),i.y=n.getFullYear(),i.m=n.getMonth(),i.d=n.getDate()+(i.w+6)%7)}else("W"in i||"U"in i)&&("w"in i||(i.w="u"in i?i.u%7:"W"in i?1:0),r="Z"in i?ms(bs(i.y,0,1)).getUTCDay():vs(bs(i.y,0,1)).getDay(),i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(r+5)%7:i.w+7*i.U-(r+6)%7);return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,ms(i)):vs(i)}}function m(e,t,A,n){for(var r,i,o=0,a=t.length,s=A.length;o<a;){if(n>=s)return-1;if(37===(r=t.charCodeAt(o++))){if(r=t.charAt(o++),!(i=Q[r in Rs?t.charAt(o++):r])||(n=i(e,A,n))<0)return-1}else if(r!=A.charCodeAt(n++))return-1}return n}return p.x=y(A,p),p.X=y(n,p),p.c=y(t,p),E.x=y(A,E),E.X=y(n,E),E.c=y(t,E),{format:function(e){var t=y(e+="",p);return t.toString=function(){return e},t},parse:function(e){var t=v(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=y(e+="",E);return t.toString=function(){return e},t},utcParse:function(e){var t=v(e+="",!0);return t.toString=function(){return e},t}}}(e),Ss=ws.format,ws.parse,Fs=ws.utcFormat,ws.utcParse}({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"]});var qg,zg=function(e){var t=e.length;return function(A){return e[Math.max(0,Math.min(t-1,Math.floor(A*t)))]}},$g=function(e,t){var A=Fo(+e,+t);return function(e){var t=A(e);return t-360*Math.floor(t/360)}},ec=180/Math.PI,tc={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},Ac=function(e,t,A,n,r,i){var o,a,s;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(s=e*A+t*n)&&(A-=e*s,n-=t*s),(a=Math.sqrt(A*A+n*n))&&(A/=a,n/=a,s/=a),e*n<t*A&&(e=-e,t=-t,s=-s,o=-o),{translateX:r,translateY:i,rotate:Math.atan2(t,e)*ec,skewX:Math.atan(s)*ec,scaleX:o,scaleY:a}};function nc(e,t,A,n){function r(e){return e.length?e.pop()+" ":""}return function(i,o){var a=[],s=[];return i=e(i),o=e(o),function(e,n,r,i,o,a){if(e!==r||n!==i){var s=o.push("translate(",null,t,null,A);a.push({i:s-4,x:To(e,r)},{i:s-2,x:To(n,i)})}else(r||i)&&o.push("translate("+r+t+i+A)}(i.translateX,i.translateY,o.translateX,o.translateY,a,s),function(e,t,A,i){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),i.push({i:A.push(r(A)+"rotate(",null,n)-2,x:To(e,t)})):t&&A.push(r(A)+"rotate("+t+n)}(i.rotate,o.rotate,a,s),function(e,t,A,i){e!==t?i.push({i:A.push(r(A)+"skewX(",null,n)-2,x:To(e,t)}):t&&A.push(r(A)+"skewX("+t+n)}(i.skewX,o.skewX,a,s),function(e,t,A,n,i,o){if(e!==A||t!==n){var a=i.push(r(i)+"scale(",null,",",null,")");o.push({i:a-4,x:To(e,A)},{i:a-2,x:To(t,n)})}else 1===A&&1===n||i.push(r(i)+"scale("+A+","+n+")")}(i.scaleX,i.scaleY,o.scaleX,o.scaleY,a,s),i=o=null,function(e){for(var t,A=-1,n=s.length;++A<n;)a[(t=s[A]).i]=t.x(e);return a.join("")}}}var rc=nc((function(e){var t=new("function"===typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?tc:Ac(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),ic=nc((function(e){return null==e?tc:(qg||(qg=document.createElementNS("http://www.w3.org/2000/svg","g")),qg.setAttribute("transform",e),(e=qg.transform.baseVal.consolidate())?(e=e.matrix,Ac(e.a,e.b,e.c,e.d,e.e,e.f)):tc)}),", ",")",")");function oc(e){return((e=Math.exp(e))+1/e)/2}var ac=function e(t,A,n){function r(e,r){var i,o,a=e[0],s=e[1],g=e[2],c=r[0],u=r[1],l=r[2],I=c-a,C=u-s,h=I*I+C*C;if(h<1e-12)o=Math.log(l/g)/t,i=function(e){return[a+e*I,s+e*C,g*Math.exp(t*e*o)]};else{var f=Math.sqrt(h),d=(l*l-g*g+n*h)/(2*g*A*f),B=(l*l-g*g-n*h)/(2*l*A*f),p=Math.log(Math.sqrt(d*d+1)-d),E=Math.log(Math.sqrt(B*B+1)-B);o=(E-p)/t,i=function(e){var n,r=e*o,i=oc(p),c=g/(A*f)*(i*(n=t*r+p,((n=Math.exp(2*n))-1)/(n+1))-function(e){return((e=Math.exp(e))-1/e)/2}(p));return[a+c*I,s+c*C,g*i/oc(t*r+p)]}}return i.duration=1e3*o*t/Math.SQRT2,i}return r.rho=function(t){var A=Math.max(.001,+t),n=A*A;return e(A,n,n*n)},r}(Math.SQRT2,2,4);function sc(e){return function(t,A){var n=e((t=Eo(t)).h,(A=Eo(A)).h),r=Do(t.s,A.s),i=Do(t.l,A.l),o=Do(t.opacity,A.opacity);return function(e){return t.h=n(e),t.s=r(e),t.l=i(e),t.opacity=o(e),t+""}}}var gc=sc(Fo),cc=sc(Do),uc=Math.PI/180,lc=180/Math.PI;function Ic(e){if(e instanceof hc)return new hc(e.l,e.a,e.b,e.opacity);if(e instanceof yc)return vc(e);e instanceof Io||(e=uo(e));var t,A,n=pc(e.r),r=pc(e.g),i=pc(e.b),o=fc((.2225045*n+.7168786*r+.0606169*i)/1);return n===r&&r===i?t=A=o:(t=fc((.4360747*n+.3850649*r+.1430804*i)/.96422),A=fc((.0139322*n+.0971045*r+.7141733*i)/.82521)),new hc(116*o-16,500*(t-o),200*(o-A),e.opacity)}function Cc(e,t,A,n){return 1===arguments.length?Ic(e):new hc(e,t,A,null==n?1:n)}function hc(e,t,A,n){this.l=+e,this.a=+t,this.b=+A,this.opacity=+n}function fc(e){return e>6/29*(6/29)*(6/29)?Math.pow(e,1/3):e/(6/29*3*(6/29))+4/29}function dc(e){return e>6/29?e*e*e:6/29*3*(6/29)*(e-4/29)}function Bc(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function pc(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Ec(e){if(e instanceof yc)return new yc(e.h,e.c,e.l,e.opacity);if(e instanceof hc||(e=Ic(e)),0===e.a&&0===e.b)return new yc(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*lc;return new yc(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Qc(e,t,A,n){return 1===arguments.length?Ec(e):new yc(e,t,A,null==n?1:n)}function yc(e,t,A,n){this.h=+e,this.c=+t,this.l=+A,this.opacity=+n}function vc(e){if(isNaN(e.h))return new hc(e.l,0,0,e.opacity);var t=e.h*uc;return new hc(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}function mc(e,t){var A=Do((e=Cc(e)).l,(t=Cc(t)).l),n=Do(e.a,t.a),r=Do(e.b,t.b),i=Do(e.opacity,t.opacity);return function(t){return e.l=A(t),e.a=n(t),e.b=r(t),e.opacity=i(t),e+""}}function bc(e){return function(t,A){var n=e((t=Qc(t)).h,(A=Qc(A)).h),r=Do(t.c,A.c),i=Do(t.l,A.l),o=Do(t.opacity,A.opacity);return function(e){return t.h=n(e),t.c=r(e),t.l=i(e),t.opacity=o(e),t+""}}}Pi(hc,Cc,Vi(Ki,{brighter:function(e){return new hc(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker:function(e){return new hc(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb:function(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,A=isNaN(this.b)?e:e-this.b/200;return new Io(Bc(3.1338561*(t=.96422*dc(t))-1.6168667*(e=1*dc(e))-.4906146*(A=.82521*dc(A))),Bc(-.9787684*t+1.9161415*e+.033454*A),Bc(.0719453*t-.2289914*e+1.4052427*A),this.opacity)}})),Pi(yc,Qc,Vi(Ki,{brighter:function(e){return new yc(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker:function(e){return new yc(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb:function(){return vc(this).rgb()}}));var wc=bc(Fo),Sc=bc(Do),Fc=-.29227,Rc=1.97294,Dc=-.90649*Rc,Gc=1.78277*Rc,kc=-.6557636667999999;function xc(e){if(e instanceof Uc)return new Uc(e.h,e.s,e.l,e.opacity);e instanceof Io||(e=uo(e));var t=e.r/255,A=e.g/255,n=e.b/255,r=(kc*n+Dc*t-Gc*A)/(kc+Dc-Gc),i=n-r,o=(Rc*(A-r)-Fc*i)/-.90649,a=Math.sqrt(o*o+i*i)/(Rc*r*(1-r)),s=a?Math.atan2(o,i)*lc-120:NaN;return new Uc(s<0?s+360:s,a,r,e.opacity)}function Nc(e,t,A,n){return 1===arguments.length?xc(e):new Uc(e,t,A,null==n?1:n)}function Uc(e,t,A,n){this.h=+e,this.s=+t,this.l=+A,this.opacity=+n}function _c(e){return function t(A){function n(t,n){var r=e((t=Nc(t)).h,(n=Nc(n)).h),i=Do(t.s,n.s),o=Do(t.l,n.l),a=Do(t.opacity,n.opacity);return function(e){return t.h=r(e),t.s=i(e),t.l=o(Math.pow(e,A)),t.opacity=a(e),t+""}}return A=+A,n.gamma=t,n}(1)}Pi(Uc,Nc,Vi(Ki,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new Uc(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new Uc(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=isNaN(this.h)?0:(this.h+120)*uc,t=+this.l,A=isNaN(this.s)?0:this.s*t*(1-t),n=Math.cos(e),r=Math.sin(e);return new Io(255*(t+A*(-.14861*n+1.78277*r)),255*(t+A*(Fc*n+-.90649*r)),255*(t+A*(Rc*n)),this.opacity)}}));var Mc,Oc,Lc=_c(Fo),Tc=_c(Do),Zc=function(e,t){for(var A=new Array(t),n=0;n<t;++n)A[n]=e(n/(t-1));return A};function Hc(e,t,A){var n=e-t+2*A;return e?n>0?n:1:0}var Yc="log",Jc="time",jc="utc",Pc="continuous";function Vc(){var e,t,A=mi().unknown(void 0),n=A.domain,r=A.range,i=[0,1],o=!1,a=0,s=0,g=.5;function c(){var A=n().length,c=i[1]<i[0],u=i[1-c],l=Hc(A,a,s),I=i[c-0];e=(u-I)/(l||1),o&&(e=Math.floor(e)),I+=(u-I-e*(A-a))*g,t=e*(1-a),o&&(I=Math.round(I),t=Math.round(t));var C=function(e,t,A){e=+e,t=+t,A=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+A;for(var n=-1,r=0|Math.max(0,Math.ceil((t-e)/A)),i=new Array(r);++n<r;)i[n]=e+n*A;return i}(A).map((function(t){return I+e*t}));return r(c?C.reverse():C)}return delete A.unknown,A.domain=function(e){return arguments.length?(n(e),c()):n()},A.range=function(e){return arguments.length?(i=[+e[0],+e[1]],c()):i.slice()},A.rangeRound=function(e){return i=[+e[0],+e[1]],o=!0,c()},A.bandwidth=function(){return t},A.step=function(){return e},A.round=function(e){return arguments.length?(o=!!e,c()):o},A.padding=function(e){return arguments.length?(s=Math.max(0,Math.min(1,e)),a=s,c()):a},A.paddingInner=function(e){return arguments.length?(a=Math.max(0,Math.min(1,e)),c()):a},A.paddingOuter=function(e){return arguments.length?(s=Math.max(0,Math.min(1,e)),c()):s},A.align=function(e){return arguments.length?(g=Math.max(0,Math.min(1,e)),c()):g},A.invertRange=function(e){if(null!=e[0]&&null!=e[1]){var A,o,a,s=i[1]<i[0],g=s?r().reverse():r(),c=g.length-1,u=+e[0],l=+e[1];if(u===u&&l===l&&(l<u&&(a=u,u=l,l=a),!(l<g[0]||u>i[1-s])))return A=Math.max(0,pi(g,u)-1),o=u===l?A:pi(g,l)-1,u-g[A]>t+1e-10&&++A,s&&(a=A,A=c-o,o=c-a),A>o?void 0:n().slice(A,o+1)}},A.invert=function(e){var t=A.invertRange([e,e]);return t?t[0]:t},A.copy=function(){return Vc().domain(n()).range(i).round(o).paddingInner(a).paddingOuter(s).align(g)},c()}var Kc=Array.prototype.map;function Wc(e){return Kc.call(e,ue.eb)}var Xc=Array.prototype.slice;var qc={};function zc(e,t,A){var n=function(){var A=t();return A.invertRange||(A.invertRange=A.invert?function(e){return function(t){var A,n=t[0],r=t[1];return r<n&&(A=n,n=r,r=A),[e.invert(n),e.invert(r)]}}(A):A.invertExtent?function(e){return function(t){var A,n,r,i,o=e.range(),a=t[0],s=t[1],g=-1;for(s<a&&(n=a,a=s,s=n),r=0,i=o.length;r<i;++r)o[r]>=a&&o[r]<=s&&(g<0&&(g=r),A=r);if(!(g<0))return a=e.invertExtent(o[g]),s=e.invertExtent(o[A]),[void 0===a[0]?a[1]:a[0],void 0===s[1]?s[0]:s[1]]}}(A):void 0),A.type=e,A};return n.metadata=Object(ue.fb)(Object(ue.i)(A)),n}function $c(e,t,A){return arguments.length>1?(qc[e]=zc(e,t,A),this):eu(e)?qc[e]:void 0}function eu(e){return Object(ue.w)(qc,e)}function tu(e,t){var A=qc[e];return A&&A.metadata[t]}function Au(e){return tu(e,Pc)}function nu(e){return tu(e,"discrete")}function ru(e){return tu(e,"discretizing")}function iu(e){return tu(e,Yc)}function ou(e){return tu(e,"interpolating")}function au(e){return tu(e,"quantile")}$c("identity",(function e(t){var A;function n(e){return null==e||isNaN(e=+e)?A:e}return n.invert=n,n.domain=n.range=function(e){return arguments.length?(t=Array.from(e,Vo),n):t.slice()},n.unknown=function(e){return arguments.length?(A=e,n):A},n.copy=function(){return e(t).unknown(A)},t=arguments.length?Array.from(t,Vo):[0,1],Aa(n)})),$c("linear",(function e(){var t=ta();return t.copy=function(){return $o(t,e())},Qi.apply(t,arguments),Aa(t)}),Pc),$c(Yc,(function e(){var t=ca(ea()).domain([1,10]);return t.copy=function(){return $o(t,e()).base(t.base())},Qi.apply(t,arguments),t}),[Pc,Yc]),$c("pow",ha,Pc),$c("sqrt",(function(){return ha.apply(null,arguments).exponent(.5)}),Pc),$c("symlog",(function e(){var t=Ba(ea());return t.copy=function(){return $o(t,e()).constant(t.constant())},Qi.apply(t,arguments)}),Pc),$c(Jc,(function(){return Qi.apply(Hg(hs,fs,Ya,Za,xa,Ga,Ra,Sa,ba,Ss).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}),[Pc,"temporal"]),$c(jc,(function(){return Qi.apply(Hg(us,ls,as,is,qa,Wa,Va,ja,ba,Fs).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}),[Pc,"temporal"]),$c("sequential",jg,[Pc,"interpolating"]),$c("".concat("sequential","-").concat("linear"),jg,[Pc,"interpolating"]),$c("".concat("sequential","-").concat(Yc),(function e(){var t=ca(Yg()).domain([1,10]);return t.copy=function(){return Jg(t,e()).base(t.base())},yi.apply(t,arguments)}),[Pc,"interpolating",Yc]),$c("".concat("sequential","-").concat("pow"),Pg,[Pc,"interpolating"]),$c("".concat("sequential","-").concat("sqrt"),(function(){return Pg.apply(null,arguments).exponent(.5)}),[Pc,"interpolating"]),$c("".concat("sequential","-").concat("symlog"),(function e(){var t=Ba(Yg());return t.copy=function(){return Jg(t,e()).constant(t.constant())},yi.apply(t,arguments)}),[Pc,"interpolating"]),$c("".concat("diverging","-").concat("linear"),(function e(){var t=Aa(Kg()(Wo));return t.copy=function(){return Jg(t,e())},yi.apply(t,arguments)}),[Pc,"interpolating"]),$c("".concat("diverging","-").concat(Yc),(function e(){var t=ca(Kg()).domain([.1,1,10]);return t.copy=function(){return Jg(t,e()).base(t.base())},yi.apply(t,arguments)}),[Pc,"interpolating",Yc]),$c("".concat("diverging","-").concat("pow"),Wg,[Pc,"interpolating"]),$c("".concat("diverging","-").concat("sqrt"),(function(){return Wg.apply(null,arguments).exponent(.5)}),[Pc,"interpolating"]),$c("".concat("diverging","-").concat("symlog"),(function e(){var t=Ba(Kg());return t.copy=function(){return Jg(t,e()).constant(t.constant())},yi.apply(t,arguments)}),[Pc,"interpolating"]),$c("quantile",(function e(){var t,A=[],n=[],r=[];function i(){var e=0,t=Math.max(1,n.length);for(r=new Array(t-1);++e<t;)r[e-1]=Xg(A,e/t);return o}function o(e){return null==e||isNaN(e=+e)?t:n[Ei(r,e)]}return o.invertExtent=function(e){var t=n.indexOf(e);return t<0?[NaN,NaN]:[t>0?r[t-1]:A[0],t<r.length?r[t]:A[A.length-1]]},o.domain=function(e){if(!arguments.length)return A.slice();A=[];var t,n=Object(ut.a)(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;null==r||isNaN(r=+r)||A.push(r)}}catch(o){n.e(o)}finally{n.f()}return A.sort(hi),i()},o.range=function(e){return arguments.length?(n=Array.from(e),i()):n.slice()},o.unknown=function(e){return arguments.length?(t=e,o):t},o.quantiles=function(){return r.slice()},o.copy=function(){return e().domain(A).range(n).unknown(t)},Qi.apply(o,arguments)}),["discretizing","quantile"]),$c("quantize",(function e(){var t,A=0,n=1,r=1,i=[.5],o=[0,1];function a(e){return null!=e&&e<=e?o[Ei(i,e,0,r)]:t}function s(){var e=-1;for(i=new Array(r);++e<r;)i[e]=((e+1)*n-(e-r)*A)/(r+1);return a}return a.domain=function(e){var t,r;return arguments.length?(t=e,r=Object(lt.a)(t,2),A=r[0],n=r[1],A=+A,n=+n,s()):[A,n]},a.range=function(e){return arguments.length?(r=(o=Array.from(e)).length-1,s()):o.slice()},a.invertExtent=function(e){var t=o.indexOf(e);return t<0?[NaN,NaN]:t<1?[A,i[0]]:t>=r?[i[r-1],n]:[i[t-1],i[t]]},a.unknown=function(e){return arguments.length?(t=e,a):a},a.thresholds=function(){return i.slice()},a.copy=function(){return e().domain([A,n]).range(o).unknown(t)},Qi.apply(Aa(a),arguments)}),"discretizing"),$c("threshold",(function e(){var t,A=[.5],n=[0,1],r=1;function i(e){return null!=e&&e<=e?n[Ei(A,e,0,r)]:t}return i.domain=function(e){return arguments.length?(A=Array.from(e),r=Math.min(A.length,n.length-1),i):A.slice()},i.range=function(e){return arguments.length?(n=Array.from(e),r=Math.min(A.length,n.length-1),i):n.slice()},i.invertExtent=function(e){var t=n.indexOf(e);return[A[t-1],A[t]]},i.unknown=function(e){return arguments.length?(t=e,i):t},i.copy=function(){return e().domain(A).range(n).unknown(t)},Qi.apply(i,arguments)}),"discretizing"),$c("bin-ordinal",(function e(){var t=[],A=[];function n(e){return null==e||e!==e?void 0:A[(Ei(t,e)-1)%A.length]}return n.domain=function(e){return arguments.length?(t=Wc(e),n):t.slice()},n.range=function(e){return arguments.length?(A=Xc.call(e),n):A.slice()},n.tickFormat=function(e,A){return ji(t[0],Object(ue.W)(t),null==e?10:e,A)},n.copy=function(){return e().domain(n.domain()).range(n.range())},n}),["discrete","discretizing"]),$c("ordinal",mi,"discrete"),$c("band",Vc,"discrete"),$c("point",(function(){return function e(t){var A=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return e(A())},t}(Vc().paddingInner(1))}),"discrete");var su=["clamp","base","constant","exponent"];function gu(e,t){var A=t[0],n=Object(ue.W)(t)-A;return function(t){return e(A+t*n)}}function cu(e,t,A){return Vg(Iu(t||"rgb",A),e)}function uu(e,t){for(var A=new Array(t),n=t+1,r=0;r<t;)A[r]=e(++r/n);return A}function lu(e,t,A){var n,r,i,o=A-t;return o&&Number.isFinite(o)?(n=(r=e.type).indexOf("-"),r=n<0?r:r.slice(n+1),i=$c(r)().domain([t,A]).range([0,1]),su.forEach((function(t){return e[t]?i[t](e[t]()):0})),i):Object(ue.m)(.5)}function Iu(e,t){var A=o[function(e){return"interpolate"+e.toLowerCase().split("-").map((function(e){return e[0].toUpperCase()+e.slice(1)})).join("")}(e)];return null!=t&&A&&A.gamma?A.gamma(t):A}function Cu(e){for(var t=e.length/6|0,A=new Array(t),n=0;n<t;)A[n]="#"+e.slice(6*n,6*++n);return A}function hu(e,t){for(var A in e)du(A,t(e[A]))}var fu={};function du(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(fu[e]=t,this):fu[e]}hu({category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"},Cu),hu({blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},(function(e){return cu(Cu(e))}));var Bu=function(e){return Object(ue.B)(e)?e.map((function(e){return String(e)})):String(e)},pu=function(e,t){return e[1]-t[1]},Eu=function(e,t){return t[1]-e[1]};function Qu(e,t,A){var n;return Object(ue.G)(t)&&(e.bins&&(t=Math.max(t,e.bins.length)),null!=A&&(t=Math.min(t,Math.floor(Object(ue.Z)(e.domain())/A||1)))),Object(ue.H)(t)&&(n=t.step,t=t.interval),Object(ue.J)(t)&&(t=e.type===Jc?Object(wA.p)(t):e.type==jc?Object(wA.v)(t):Object(ue.o)("Only time and utc scales accept interval strings."),n&&(t=t.every(n))),t}function yu(e,t,A){var n=e.range(),r=n[0],i=Object(ue.W)(n),o=pu;if(r>i&&(n=i,i=r,r=n,o=Eu),r=Math.floor(r),i=Math.ceil(i),t=t.map((function(t){return[t,e(t)]})).filter((function(e){return r<=e[1]&&e[1]<=i})).sort(o).map((function(e){return e[0]})),A>0&&t.length>1){for(var a=[t[0],Object(ue.W)(t)];t.length>A&&t.length>=3;)t=t.filter((function(e,t){return!(t%2)}));t.length<3&&(t=a)}return t}function vu(e,t){return e.bins?yu(e,e.bins):e.ticks?e.ticks(t):e.domain()}function mu(e,t,A,n,r,i){var o=t.type,a=Bu;if(o===Jc||r===Jc)a=e.timeFormat(n);else if(o===jc||r===jc)a=e.utcFormat(n);else if(iu(o)){var s=e.formatFloat(n);if(i||t.bins)a=s;else{var g=bu(t,A,!1);a=function(e){return g(e)?s(e):""}}}else if(t.tickFormat){var c=t.domain();a=e.formatSpan(c[0],c[c.length-1],A,n)}else n&&(a=e.format(n));return a}function bu(e,t,A){var n=vu(e,t),r=e.base(),i=Math.log(r),o=Math.max(1,r*t/n.length),a=function(e){var t=e/Math.pow(r,Math.round(Math.log(e)/i));return t*r<r-.5&&(t*=r),t<=o};return A?n.filter(a):a}var wu=(Mc={},Object($n.a)(Mc,"quantile","quantiles"),Object($n.a)(Mc,"quantize","thresholds"),Object($n.a)(Mc,"threshold","domain"),Mc),Su=(Oc={},Object($n.a)(Oc,"quantile","quantiles"),Object($n.a)(Oc,"quantize","domain"),Oc);function Fu(e,t){return e.bins?function(e){var t=e.slice(0,-1);return t.max=Object(ue.W)(e),t}(e.bins):e.type===Yc?bu(e,t,!0):wu[e.type]?function(e){var t=[-1/0].concat(e);return t.max=1/0,t}(e[wu[e.type]]()):vu(e,t)}function Ru(e,t,A,n,r,i,o){var a=Su[t.type]&&i!==Jc&&i!==jc?function(e,t,A){var n,r=t[Su[t.type]](),i=r.length,o=i>1?r[1]-r[0]:r[0];for(n=1;n<i;++n)o=Math.min(o,r[n]-r[n-1]);return e.formatSpan(0,o,30,A)}(e,t,r):mu(e,t,A,r,i,o);return"symbol"===n&&function(e){return wu[e.type]||e.bins}(t)?Du(a):"discrete"===n?ku(a):xu(a)}var Du=function(e){return function(t,A,n){var r=Gu(n[A+1],Gu(n.max,1/0)),i=Nu(t,e),o=Nu(r,e);return i&&o?i+" \u2013 "+o:o?"< "+o:"\u2265 "+i}},Gu=function(e,t){return null!=e?e:t},ku=function(e){return function(t,A){return A?e(t):null}},xu=function(e){return function(t){return e(t)}},Nu=function(e,t){return Number.isFinite(e)?t(e):null};function Uu(e,t,A,n){var r=n||t.type;return Object(ue.J)(A)&&tu(r,"temporal")&&(A=A.replace(/%a/g,"%A").replace(/%b/g,"%B")),A||r!==Jc?A||r!==jc?Ru(e,t,5,null,A,n,!0):e.utcFormat("%A, %d %B %Y, %X UTC"):e.timeFormat("%A, %d %B %Y, %X")}function _u(e,t,A){A=A||{};var n=Math.max(3,A.maxlen||7),r=Uu(e,t,A.format,A.formatType);if(ru(t.type)){var i=Fu(t).slice(1).map(r),o=i.length;return"".concat(o," boundar").concat(1===o?"y":"ies",": ").concat(i.join(", "))}if(nu(t.type)){var a=t.domain(),s=a.length,g=s>n?a.slice(0,n-2).map(r).join(", ")+", ending with "+a.slice(-1).map(r):a.map(r).join(", ");return"".concat(s," value").concat(1===s?"":"s",": ").concat(g)}var c=t.domain();return"values from ".concat(r(c[0])," to ").concat(r(Object(ue.W)(c)))}var Mu=0;function Ou(e){return e&&e.gradient}function Lu(e,t,A){var n=e.gradient,r=e.id,i="radial"===n?"p_":"";return r||(r=e.id="gradient_"+Mu++,"radial"===n?(e.x1=Tu(e.x1,.5),e.y1=Tu(e.y1,.5),e.r1=Tu(e.r1,0),e.x2=Tu(e.x2,.5),e.y2=Tu(e.y2,.5),e.r2=Tu(e.r2,.5),i="p_"):(e.x1=Tu(e.x1,0),e.y1=Tu(e.y1,0),e.x2=Tu(e.x2,1),e.y2=Tu(e.y2,0))),t[r]=e,"url("+(A||"")+"#"+i+r+")"}function Tu(e,t){return null!=e?e:t}function Zu(e,t){var A,n=[];return A={gradient:"linear",x1:e?e[0]:0,y1:e?e[1]:0,x2:t?t[0]:1,y2:t?t[1]:0,stops:n,stop:function(e,t){return n.push({offset:e,color:t}),A}}}var Hu={basis:{curve:function(e){return new tr(e)}},"basis-closed":{curve:function(e){return new nr(e)}},"basis-open":{curve:function(e){return new rr(e)}},bundle:{curve:or,tension:"beta",value:.85},cardinal:{curve:gr,tension:"tension",value:0},"cardinal-open":{curve:ur,tension:"tension",value:0},"cardinal-closed":{curve:Ir,tension:"tension",value:0},"catmull-rom":{curve:Fr,tension:"alpha",value:.5},"catmull-rom-closed":{curve:Dr,tension:"alpha",value:.5},"catmull-rom-open":{curve:kr,tension:"alpha",value:.5},linear:{curve:Nr},"linear-closed":{curve:function(e){return new Ur(e)}},monotone:{horizontal:function(e){return new Zr(e)},vertical:function(e){return new Tr(e)}},natural:{curve:function(e){return new Yr(e)}},step:{curve:function(e){return new jr(e,.5)}},"step-after":{curve:function(e){return new jr(e,1)}},"step-before":{curve:function(e){return new jr(e,0)}}};function Yu(e,t,A){var n=Object(ue.w)(Hu,e)&&Hu[e],r=null;return n&&(r=n.curve||n[t||"vertical"],n.tension&&null!=A&&(r=r[n.tension](A))),r}var Ju={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},ju=[/([MLHVCSQTAZmlhvcsqtaz])/g,/###/,/(\.\d+)(\.\d)/g,/(\d)([-+])/g,/\s|,|###/];function Pu(e){var t,A,n,r,i,o,a,s,g,c,u=[],l=e.slice().replace(ju[0],"###$1").split(ju[1]).slice(1);for(a=0,g=l.length;a<g;++a){for(A=(t=l[a]).slice(1).trim().replace(ju[2],"$1###$2").replace(ju[3],"$1###$2").split(ju[4]),n=[i=t.charAt(0)],s=0,c=A.length;s<c;++s)(r=+A[s])===r&&n.push(r);if(o=Ju[i.toLowerCase()],n.length-1>o){var I=n.length;for(s=1,u.push([i].concat(n.slice(s,s+=o))),i="M"===i?"L":"m"===i?"l":i;s<I;s+=o)u.push([i].concat(n.slice(s,s+o)))}else u.push(n)}return u}var Vu=Math.PI/180,Ku=Math.PI/2,Wu=2*Math.PI,Xu=Math.sqrt(3)/2,qu={},zu={},$u=[].join;function el(e){var t=$u.call(e);if(zu[t])return zu[t];var A=e[0],n=e[1],r=e[2],i=e[3],o=e[4],a=e[5],s=e[6],g=e[7],c=g*o,u=-s*a,l=s*o,I=g*a,C=Math.cos(r),h=Math.sin(r),f=Math.cos(i),d=Math.sin(i),B=.5*(i-r),p=Math.sin(.5*B),E=8/3*p*p/Math.sin(B),Q=A+C-E*h,y=n+h+E*C,v=A+f,m=n+d,b=v+E*d,w=m-E*f;return zu[t]=[c*Q+u*y,l*Q+I*y,c*b+u*w,l*b+I*w,c*v+u*m,l*v+I*m]}var tl=["l",0,0,0,0,0,0,0];function Al(e,t,A){var n=tl[0]=e[0];if("a"===n||"A"===n)tl[1]=t*e[1],tl[2]=A*e[2],tl[3]=e[3],tl[4]=e[4],tl[5]=e[5],tl[6]=t*e[6],tl[7]=A*e[7];else if("h"===n||"H"===n)tl[1]=t*e[1];else if("v"===n||"V"===n)tl[1]=A*e[1];else for(var r=1,i=e.length;r<i;++r)tl[r]=(r%2==1?t:A)*e[r];return tl}function nl(e,t,A,n,r,i){var o,a,s,g,c,u=null,l=0,I=0,C=0,h=0;null==A&&(A=0),null==n&&(n=0),null==r&&(r=1),null==i&&(i=r),e.beginPath&&e.beginPath();for(var f=0,d=t.length;f<d;++f){switch(o=t[f],1===r&&1===i||(o=Al(o,r,i)),o[0]){case"l":l+=o[1],I+=o[2],e.lineTo(l+A,I+n);break;case"L":l=o[1],I=o[2],e.lineTo(l+A,I+n);break;case"h":l+=o[1],e.lineTo(l+A,I+n);break;case"H":l=o[1],e.lineTo(l+A,I+n);break;case"v":I+=o[1],e.lineTo(l+A,I+n);break;case"V":I=o[1],e.lineTo(l+A,I+n);break;case"m":l+=o[1],I+=o[2],e.moveTo(l+A,I+n);break;case"M":l=o[1],I=o[2],e.moveTo(l+A,I+n);break;case"c":a=l+o[5],s=I+o[6],C=l+o[3],h=I+o[4],e.bezierCurveTo(l+o[1]+A,I+o[2]+n,C+A,h+n,a+A,s+n),l=a,I=s;break;case"C":l=o[5],I=o[6],C=o[3],h=o[4],e.bezierCurveTo(o[1]+A,o[2]+n,C+A,h+n,l+A,I+n);break;case"s":a=l+o[3],s=I+o[4],C=2*l-C,h=2*I-h,e.bezierCurveTo(C+A,h+n,l+o[1]+A,I+o[2]+n,a+A,s+n),C=l+o[1],h=I+o[2],l=a,I=s;break;case"S":a=o[3],s=o[4],C=2*l-C,h=2*I-h,e.bezierCurveTo(C+A,h+n,o[1]+A,o[2]+n,a+A,s+n),l=a,I=s,C=o[1],h=o[2];break;case"q":a=l+o[3],s=I+o[4],C=l+o[1],h=I+o[2],e.quadraticCurveTo(C+A,h+n,a+A,s+n),l=a,I=s;break;case"Q":a=o[3],s=o[4],e.quadraticCurveTo(o[1]+A,o[2]+n,a+A,s+n),l=a,I=s,C=o[1],h=o[2];break;case"t":a=l+o[1],s=I+o[2],null===u[0].match(/[QqTt]/)?(C=l,h=I):"t"===u[0]?(C=2*l-g,h=2*I-c):"q"===u[0]&&(C=2*l-C,h=2*I-h),g=C,c=h,e.quadraticCurveTo(C+A,h+n,a+A,s+n),I=s,C=(l=a)+o[1],h=I+o[2];break;case"T":a=o[1],s=o[2],C=2*l-C,h=2*I-h,e.quadraticCurveTo(C+A,h+n,a+A,s+n),l=a,I=s;break;case"a":rl(e,l+A,I+n,[o[1],o[2],o[3],o[4],o[5],o[6]+l+A,o[7]+I+n]),l+=o[6],I+=o[7];break;case"A":rl(e,l+A,I+n,[o[1],o[2],o[3],o[4],o[5],o[6]+A,o[7]+n]),l=o[6],I=o[7];break;case"z":case"Z":e.closePath()}u=o}}function rl(e,t,A,n){for(var r=function(e,t,A,n,r,i,o,a,s){var g=$u.call(arguments);if(qu[g])return qu[g];var c=o*Vu,u=Math.sin(c),l=Math.cos(c),I=l*(a-e)*.5+u*(s-t)*.5,C=l*(s-t)*.5-u*(a-e)*.5,h=I*I/((A=Math.abs(A))*A)+C*C/((n=Math.abs(n))*n);h>1&&(A*=h=Math.sqrt(h),n*=h);var f=l/A,d=u/A,B=-u/n,p=l/n,E=f*a+d*s,Q=B*a+p*s,y=f*e+d*t,v=B*e+p*t,m=(y-E)*(y-E)+(v-Q)*(v-Q),b=1/m-.25;b<0&&(b=0);var w=Math.sqrt(b);i==r&&(w=-w);var S=.5*(E+y)-w*(v-Q),F=.5*(Q+v)+w*(y-E),R=Math.atan2(Q-F,E-S),D=Math.atan2(v-F,y-S),G=D-R;G<0&&1===i?G+=Wu:G>0&&0===i&&(G-=Wu);for(var k=Math.ceil(Math.abs(G/(Ku+.001))),x=[],N=0;N<k;++N){var U=R+N*G/k,_=R+(N+1)*G/k;x[N]=[S,F,U,_,A,n,u,l]}return qu[g]=x}(n[5],n[6],n[0],n[1],n[3],n[4],n[2],t,A),i=0;i<r.length;++i){var o=el(r[i]);e.bezierCurveTo(o[0],o[1],o[2],o[3],o[4],o[5])}}var il=.5773502691896257,ol={circle:{draw:function(e,t){var A=Math.sqrt(t)/2;e.moveTo(A,0),e.arc(0,0,A,0,Wu)}},cross:{draw:function(e,t){var A=Math.sqrt(t)/2,n=A/2.5;e.moveTo(-A,-n),e.lineTo(-A,n),e.lineTo(-n,n),e.lineTo(-n,A),e.lineTo(n,A),e.lineTo(n,n),e.lineTo(A,n),e.lineTo(A,-n),e.lineTo(n,-n),e.lineTo(n,-A),e.lineTo(-n,-A),e.lineTo(-n,-n),e.closePath()}},diamond:{draw:function(e,t){var A=Math.sqrt(t)/2;e.moveTo(-A,0),e.lineTo(0,-A),e.lineTo(A,0),e.lineTo(0,A),e.closePath()}},square:{draw:function(e,t){var A=Math.sqrt(t),n=-A/2;e.rect(n,n,A,A)}},arrow:{draw:function(e,t){var A=Math.sqrt(t)/2,n=A/7,r=A/2.5,i=A/8;e.moveTo(-n,A),e.lineTo(n,A),e.lineTo(n,-i),e.lineTo(r,-i),e.lineTo(0,-A),e.lineTo(-r,-i),e.lineTo(-n,-i),e.closePath()}},wedge:{draw:function(e,t){var A=Math.sqrt(t)/2,n=Xu*A,r=n-A*il,i=A/4;e.moveTo(0,-n-r),e.lineTo(-i,n-r),e.lineTo(i,n-r),e.closePath()}},triangle:{draw:function(e,t){var A=Math.sqrt(t)/2,n=Xu*A,r=n-A*il;e.moveTo(0,-n-r),e.lineTo(-A,n-r),e.lineTo(A,n-r),e.closePath()}},"triangle-up":{draw:function(e,t){var A=Math.sqrt(t)/2,n=Xu*A;e.moveTo(0,-n),e.lineTo(-A,n),e.lineTo(A,n),e.closePath()}},"triangle-down":{draw:function(e,t){var A=Math.sqrt(t)/2,n=Xu*A;e.moveTo(0,n),e.lineTo(-A,-n),e.lineTo(A,-n),e.closePath()}},"triangle-right":{draw:function(e,t){var A=Math.sqrt(t)/2,n=Xu*A;e.moveTo(n,0),e.lineTo(-n,-A),e.lineTo(-n,A),e.closePath()}},"triangle-left":{draw:function(e,t){var A=Math.sqrt(t)/2,n=Xu*A;e.moveTo(-n,0),e.lineTo(n,-A),e.lineTo(n,A),e.closePath()}},stroke:{draw:function(e,t){var A=Math.sqrt(t)/2;e.moveTo(-A,0),e.lineTo(A,0)}}};function al(e){return Object(ue.w)(ol,e)?ol[e]:function(e){if(!Object(ue.w)(sl,e)){var t=Pu(e);sl[e]={draw:function(e,A){nl(e,t,0,0,Math.sqrt(A)/2)}}}return sl[e]}(e)}var sl={};function gl(e){return e.x}function cl(e){return e.y}function ul(e){return e.width}function ll(e){return e.height}function Il(e){return"function"===typeof e?e:function(){return+e}}function Cl(e,t,A){return Math.max(t,Math.min(e,A))}function hl(){var e=gl,t=cl,A=ul,n=ll,r=Il(0),i=r,o=r,a=r,s=null;function g(g,c,u){var l,I=null!=c?c:+e.call(this,g),C=null!=u?u:+t.call(this,g),h=+A.call(this,g),f=+n.call(this,g),d=Math.min(h,f)/2,B=Cl(+r.call(this,g),0,d),p=Cl(+i.call(this,g),0,d),E=Cl(+o.call(this,g),0,d),Q=Cl(+a.call(this,g),0,d);if(s||(s=l=qr()),B<=0&&p<=0&&E<=0&&Q<=0)s.rect(I,C,h,f);else{var y=I+h,v=C+f;s.moveTo(I+B,C),s.lineTo(y-p,C),s.bezierCurveTo(y-.448084975506*p,C,y,C+.448084975506*p,y,C+p),s.lineTo(y,v-Q),s.bezierCurveTo(y,v-.448084975506*Q,y-.448084975506*Q,v,y-Q,v),s.lineTo(I+E,v),s.bezierCurveTo(I+.448084975506*E,v,I,v-.448084975506*E,I,v-E),s.lineTo(I,C+B),s.bezierCurveTo(I,C+.448084975506*B,I+.448084975506*B,C,I+B,C),s.closePath()}if(l)return s=null,l+""||null}return g.x=function(t){return arguments.length?(e=Il(t),g):e},g.y=function(e){return arguments.length?(t=Il(e),g):t},g.width=function(e){return arguments.length?(A=Il(e),g):A},g.height=function(e){return arguments.length?(n=Il(e),g):n},g.cornerRadius=function(e,t,A,n){return arguments.length?(r=Il(e),i=null!=t?Il(t):r,a=null!=A?Il(A):r,o=null!=n?Il(n):i,g):r},g.context=function(e){return arguments.length?(s=null==e?null:e,g):s},g}function fl(){var e,t,A,n,r,i,o,a,s=null;function g(e,t,A){var n=A/2;if(r){var g=o-t,c=e-i;if(g||c){var u=Math.sqrt(g*g+c*c),l=(g/=u)*a,I=(c/=u)*a,C=Math.atan2(c,g);s.moveTo(i-l,o-I),s.lineTo(e-g*n,t-c*n),s.arc(e,t,n,C-Math.PI,C),s.lineTo(i+l,o+I),s.arc(i,o,a,C,C+Math.PI)}else s.arc(e,t,n,0,Wu);s.closePath()}else r=1;i=e,o=t,a=n}function c(i){var o,a,c,u=i.length,l=!1;for(null==s&&(s=c=qr()),o=0;o<=u;++o)!(o<u&&n(a=i[o],o,i))===l&&(l=!l)&&(r=0),l&&g(+e(a,o,i),+t(a,o,i),+A(a,o,i));if(c)return s=null,c+""||null}return c.x=function(t){return arguments.length?(e=t,c):e},c.y=function(e){return arguments.length?(t=e,c):t},c.size=function(e){return arguments.length?(A=e,c):A},c.defined=function(e){return arguments.length?(n=e,c):n},c.context=function(e){return arguments.length?(s=null==e?null:e,c):s},c}function dl(e,t){return null!=e?e:t}var Bl=function(e){return e.x||0},pl=function(e){return e.y||0},El=function(e){return!(!1===e.defined)},Ql=function(){var e=$r,t=ei,A=zr(0),n=null,r=ti,i=Ai,o=ni,a=null;function s(){var s,g,c=+e.apply(this,arguments),u=+t.apply(this,arguments),l=r.apply(this,arguments)-yr,I=i.apply(this,arguments)-yr,C=Cr(I-l),h=I>l;if(a||(a=s=qr()),u<c&&(g=u,u=c,c=g),u>1e-12)if(C>vr-1e-12)a.moveTo(u*fr(l),u*pr(l)),a.arc(0,0,u,l,I,!h),c>1e-12&&(a.moveTo(c*fr(I),c*pr(I)),a.arc(0,0,c,I,l,h));else{var f,d,B=l,p=I,E=l,Q=I,y=C,v=C,m=o.apply(this,arguments)/2,b=m>1e-12&&(n?+n.apply(this,arguments):Er(c*c+u*u)),w=Br(Cr(u-c)/2,+A.apply(this,arguments)),S=w,F=w;if(b>1e-12){var R=br(b/c*pr(m)),D=br(b/u*pr(m));(y-=2*R)>1e-12?(E+=R*=h?1:-1,Q-=R):(y=0,E=Q=(l+I)/2),(v-=2*D)>1e-12?(B+=D*=h?1:-1,p-=D):(v=0,B=p=(l+I)/2)}var G=u*fr(B),k=u*pr(B),x=c*fr(Q),N=c*pr(Q);if(w>1e-12){var U,_=u*fr(p),M=u*pr(p),O=c*fr(E),L=c*pr(E);if(C<Qr&&(U=ri(G,k,O,L,_,M,x,N))){var T=G-U[0],Z=k-U[1],H=_-U[0],Y=M-U[1],J=1/pr(mr((T*H+Z*Y)/(Er(T*T+Z*Z)*Er(H*H+Y*Y)))/2),j=Er(U[0]*U[0]+U[1]*U[1]);S=Br(w,(c-j)/(J-1)),F=Br(w,(u-j)/(J+1))}}v>1e-12?F>1e-12?(f=ii(O,L,G,k,u,F,h),d=ii(_,M,x,N,u,F,h),a.moveTo(f.cx+f.x01,f.cy+f.y01),F<w?a.arc(f.cx,f.cy,F,hr(f.y01,f.x01),hr(d.y01,d.x01),!h):(a.arc(f.cx,f.cy,F,hr(f.y01,f.x01),hr(f.y11,f.x11),!h),a.arc(0,0,u,hr(f.cy+f.y11,f.cx+f.x11),hr(d.cy+d.y11,d.cx+d.x11),!h),a.arc(d.cx,d.cy,F,hr(d.y11,d.x11),hr(d.y01,d.x01),!h))):(a.moveTo(G,k),a.arc(0,0,u,B,p,!h)):a.moveTo(G,k),c>1e-12&&y>1e-12?S>1e-12?(f=ii(x,N,_,M,c,-S,h),d=ii(G,k,O,L,c,-S,h),a.lineTo(f.cx+f.x01,f.cy+f.y01),S<w?a.arc(f.cx,f.cy,S,hr(f.y01,f.x01),hr(d.y01,d.x01),!h):(a.arc(f.cx,f.cy,S,hr(f.y01,f.x01),hr(f.y11,f.x11),!h),a.arc(0,0,c,hr(f.cy+f.y11,f.cx+f.x11),hr(d.cy+d.y11,d.cx+d.x11),h),a.arc(d.cx,d.cy,S,hr(d.y11,d.x11),hr(d.y01,d.x01),!h))):a.arc(0,0,c,Q,E,h):a.lineTo(x,N)}else a.moveTo(0,0);if(a.closePath(),s)return a=null,s+""||null}return s.centroid=function(){var A=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,n=(+r.apply(this,arguments)+ +i.apply(this,arguments))/2-Qr/2;return[fr(n)*A,pr(n)*A]},s.innerRadius=function(t){return arguments.length?(e="function"===typeof t?t:zr(+t),s):e},s.outerRadius=function(e){return arguments.length?(t="function"===typeof e?e:zr(+e),s):t},s.cornerRadius=function(e){return arguments.length?(A="function"===typeof e?e:zr(+e),s):A},s.padRadius=function(e){return arguments.length?(n=null==e?null:"function"===typeof e?e:zr(+e),s):n},s.startAngle=function(e){return arguments.length?(r="function"===typeof e?e:zr(+e),s):r},s.endAngle=function(e){return arguments.length?(i="function"===typeof e?e:zr(+e),s):i},s.padAngle=function(e){return arguments.length?(o="function"===typeof e?e:zr(+e),s):o},s.context=function(e){return arguments.length?(a=null==e?null:e,s):a},s}().startAngle((function(e){return e.startAngle||0})).endAngle((function(e){return e.endAngle||0})).padAngle((function(e){return e.padAngle||0})).innerRadius((function(e){return e.innerRadius||0})).outerRadius((function(e){return e.outerRadius||0})).cornerRadius((function(e){return e.cornerRadius||0})),yl=ci().x(Bl).y1(pl).y0((function(e){return(e.y||0)+(e.height||0)})).defined(El),vl=ci().y(pl).x1(Bl).x0((function(e){return(e.x||0)+(e.width||0)})).defined(El),ml=gi().x(Bl).y(pl).defined(El),bl=hl().x(Bl).y(pl).width((function(e){return e.width||0})).height((function(e){return e.height||0})).cornerRadius((function(e){return dl(e.cornerRadiusTopLeft,e.cornerRadius)||0}),(function(e){return dl(e.cornerRadiusTopRight,e.cornerRadius)||0}),(function(e){return dl(e.cornerRadiusBottomRight,e.cornerRadius)||0}),(function(e){return dl(e.cornerRadiusBottomLeft,e.cornerRadius)||0})),wl=function(e,t){var A=null;function n(){var n;if(A||(A=n=qr()),e.apply(this,arguments).draw(A,+t.apply(this,arguments)),n)return A=null,n+""||null}return e="function"===typeof e?e:zr(e||ui),t="function"===typeof t?t:zr(void 0===t?64:+t),n.type=function(t){return arguments.length?(e="function"===typeof t?t:zr(t),n):e},n.size=function(e){return arguments.length?(t="function"===typeof e?e:zr(+e),n):t},n.context=function(e){return arguments.length?(A=null==e?null:e,n):A},n}().type((function(e){return al(e.shape||"circle")})).size((function(e){return dl(e.size,64)})),Sl=fl().x(Bl).y(pl).defined(El).size((function(e){return e.size||1}));function Fl(e){return e.cornerRadius||e.cornerRadiusTopLeft||e.cornerRadiusTopRight||e.cornerRadiusBottomRight||e.cornerRadiusBottomLeft}function Rl(e,t,A,n){return bl.context(e)(t,A,n)}var Dl=1;function Gl(){Dl=1}function kl(e,t,A){var n=t.clip,r=e._defs,i=t.clip_id||(t.clip_id="clip"+Dl++),o=r.clipping[i]||(r.clipping[i]={id:i});return Object(ue.E)(n)?o.path=n(null):Fl(A)?o.path=Rl(null,A,0,0):(o.width=A.width||0,o.height=A.height||0),"url(#"+i+")"}function xl(e){this.clear(),e&&this.union(e)}function Nl(e){this.mark=e,this.bounds=this.bounds||new xl}function Ul(e){Nl.call(this,e),this.items=this.items||[]}function _l(e){this._pending=0,this._loader=e||Object(he.e)()}function Ml(e){e._pending+=1}function Ol(e){e._pending-=1}function Ll(e,t,A){if(t.stroke&&0!==t.opacity&&0!==t.strokeOpacity){var n=null!=t.strokeWidth?+t.strokeWidth:1;e.expand(n+(A?function(e,t){return e.strokeJoin&&"miter"!==e.strokeJoin?0:t}(t,n):0))}return e}xl.prototype={clone:function(){return new xl(this)},clear:function(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty:function(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals:function(e){return this.x1===e.x1&&this.y1===e.y1&&this.x2===e.x2&&this.y2===e.y2},set:function(e,t,A,n){return A<e?(this.x2=e,this.x1=A):(this.x1=e,this.x2=A),n<t?(this.y2=t,this.y1=n):(this.y1=t,this.y2=n),this},add:function(e,t){return e<this.x1&&(this.x1=e),t<this.y1&&(this.y1=t),e>this.x2&&(this.x2=e),t>this.y2&&(this.y2=t),this},expand:function(e){return this.x1-=e,this.y1-=e,this.x2+=e,this.y2+=e,this},round:function(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale:function(e){return this.x1*=e,this.y1*=e,this.x2*=e,this.y2*=e,this},translate:function(e,t){return this.x1+=e,this.x2+=e,this.y1+=t,this.y2+=t,this},rotate:function(e,t,A){var n=this.rotatedPoints(e,t,A);return this.clear().add(n[0],n[1]).add(n[2],n[3]).add(n[4],n[5]).add(n[6],n[7])},rotatedPoints:function(e,t,A){var n=this.x1,r=this.y1,i=this.x2,o=this.y2,a=Math.cos(e),s=Math.sin(e),g=t-t*a+A*s,c=A-t*s-A*a;return[a*n-s*r+g,s*n+a*r+c,a*n-s*o+g,s*n+a*o+c,a*i-s*r+g,s*i+a*r+c,a*i-s*o+g,s*i+a*o+c]},union:function(e){return e.x1<this.x1&&(this.x1=e.x1),e.y1<this.y1&&(this.y1=e.y1),e.x2>this.x2&&(this.x2=e.x2),e.y2>this.y2&&(this.y2=e.y2),this},intersect:function(e){return e.x1>this.x1&&(this.x1=e.x1),e.y1>this.y1&&(this.y1=e.y1),e.x2<this.x2&&(this.x2=e.x2),e.y2<this.y2&&(this.y2=e.y2),this},encloses:function(e){return e&&this.x1<=e.x1&&this.x2>=e.x2&&this.y1<=e.y1&&this.y2>=e.y2},alignsWith:function(e){return e&&(this.x1==e.x1||this.x2==e.x2||this.y1==e.y1||this.y2==e.y2)},intersects:function(e){return e&&!(this.x2<e.x1||this.x1>e.x2||this.y2<e.y1||this.y1>e.y2)},contains:function(e,t){return!(e<this.x1||e>this.x2||t<this.y1||t>this.y2)},width:function(){return this.x2-this.x1},height:function(){return this.y2-this.y1}},Object(ue.z)(Ul,Nl),_l.prototype={pending:function(){return this._pending},sanitizeURL:function(e){var t=this;return Ml(t),t._loader.sanitize(e,{context:"href"}).then((function(e){return Ol(t),e})).catch((function(){return Ol(t),null}))},loadImage:function(e){var t=this,A=Ci();return Ml(t),t._loader.sanitize(e,{context:"image"}).then((function(e){var n=e.href;if(!n||!A)throw{url:n};var r=new A,i=Object(ue.w)(e,"crossOrigin")?e.crossOrigin:"anonymous";return null!=i&&(r.crossOrigin=i),r.onload=function(){return Ol(t)},r.onerror=function(){return Ol(t)},r.src=n,r})).catch((function(e){return Ol(t),{complete:!1,width:0,height:0,src:e&&e.url||""}}))},ready:function(){var e=this;return new Promise((function(t){!function A(n){e.pending()?setTimeout((function(){A(!0)}),10):t(n)}(!1)}))}};var Tl,Zl,Hl,Yl,Jl,jl,Pl,Vl,Kl=Wu-1e-8,Wl=function(e,t){return Tl.add(e,t)},Xl=function(e,t){return Wl(Zl=e,Hl=t)},ql=function(e){return Wl(e,Tl.y1)},zl=function(e){return Wl(Tl.x1,e)},$l=function(e,t){return Jl*e+Pl*t},eI=function(e,t){return jl*e+Vl*t},tI=function(e,t){return Wl($l(e,t),eI(e,t))},AI=function(e,t){return Xl($l(e,t),eI(e,t))};function nI(e,t){return Tl=e,t?(Yl=t*Vu,Jl=Vl=Math.cos(Yl),jl=Math.sin(Yl),Pl=-jl):(Jl=Vl=1,Yl=jl=Pl=0),rI}var rI={beginPath:function(){},closePath:function(){},moveTo:AI,lineTo:AI,rect:function(e,t,A,n){Yl?(tI(e+A,t),tI(e+A,t+n),tI(e,t+n),AI(e,t)):(Wl(e+A,t+n),Xl(e,t))},quadraticCurveTo:function(e,t,A,n){var r=$l(e,t),i=eI(e,t),o=$l(A,n),a=eI(A,n);iI(Zl,r,o,ql),iI(Hl,i,a,zl),Xl(o,a)},bezierCurveTo:function(e,t,A,n,r,i){var o=$l(e,t),a=eI(e,t),s=$l(A,n),g=eI(A,n),c=$l(r,i),u=eI(r,i);oI(Zl,o,s,c,ql),oI(Hl,a,g,u,zl),Xl(c,u)},arc:function(e,t,A,n,r,i){if(n+=Yl,r+=Yl,Zl=A*Math.cos(r)+e,Hl=A*Math.sin(r)+t,Math.abs(r-n)>Kl)Wl(e-A,t-A),Wl(e+A,t+A);else{var o,a,s=function(n){return Wl(A*Math.cos(n)+e,A*Math.sin(n)+t)};if(s(n),s(r),r!==n)if((n%=Wu)<0&&(n+=Wu),(r%=Wu)<0&&(r+=Wu),r<n&&(i=!i,o=n,n=r,r=o),i)for(r-=Wu,o=n-n%Ku,a=0;a<4&&o>r;++a,o-=Ku)s(o);else for(o=n-n%Ku+Ku,a=0;a<4&&o<r;++a,o+=Ku)s(o)}}};function iI(e,t,A,n){var r=(e-t)/(e+A-2*t);0<r&&r<1&&n(e+(t-e)*r)}function oI(e,t,A,n,r){var i,o=n-e+3*t-3*A,a=e+A-2*t,s=e-t,g=0,c=0;Math.abs(o)>1e-14?(i=a*a+s*o)>=0&&(g=(-a+(i=Math.sqrt(i)))/o,c=(-a-i)/o):g=.5*s/a,0<g&&g<1&&r(aI(g,e,t,A,n)),0<c&&c<1&&r(aI(c,e,t,A,n))}function aI(e,t,A,n,r){var i=1-e,o=i*i,a=e*e;return o*i*t+3*o*e*A+3*i*a*n+a*e*r}var sI=(sI=Ii(1,1))?sI.getContext("2d"):null,gI=new xl;function cI(e){return function(t,A){if(!sI)return!0;e(sI,t),gI.clear().union(t.bounds).intersect(A).round();for(var n=gI.x1,r=gI.y1,i=gI.x2,o=gI.y2,a=r;a<=o;++a)for(var s=n;s<=i;++s)if(sI.isPointInPath(s,a))return!0;return!1}}function uI(e,t){return t.contains(e.x||0,e.y||0)}function lI(e,t){var A=e.x||0,n=e.y||0,r=e.width||0,i=e.height||0;return t.intersects(gI.set(A,n,A+r,n+i))}function II(e,t){var A=e.x||0,n=e.y||0;return CI(t,A,n,null!=e.x2?e.x2:A,null!=e.y2?e.y2:n)}function CI(e,t,A,n,r){var i,o,a,s,g=e.x1,c=e.y1,u=e.x2,l=e.y2,I=n-t,C=r-A,h=0,f=1;for(s=0;s<4;++s){if(0===s&&(i=-I,o=-(g-t)),1===s&&(i=I,o=u-t),2===s&&(i=-C,o=-(c-A)),3===s&&(i=C,o=l-A),Math.abs(i)<1e-10&&o<0)return!1;if(a=o/i,i<0){if(a>f)return!1;a>h&&(h=a)}else if(i>0){if(a<h)return!1;a<f&&(f=a)}}return!0}function hI(e,t){e.globalCompositeOperation=t.blend||"source-over"}function fI(e,t){return null==e?t:e}function dI(e,t){for(var A=t.length,n=0;n<A;++n)e.addColorStop(t[n].offset,t[n].color);return e}function BI(e,t,A){return Ou(A)?function(e,t,A){var n,r=A.width(),i=A.height();if("radial"===t.gradient)n=e.createRadialGradient(A.x1+fI(t.x1,.5)*r,A.y1+fI(t.y1,.5)*i,Math.max(r,i)*fI(t.r1,0),A.x1+fI(t.x2,.5)*r,A.y1+fI(t.y2,.5)*i,Math.max(r,i)*fI(t.r2,.5));else{var o=fI(t.x1,0),a=fI(t.y1,0),s=fI(t.x2,1),g=fI(t.y2,0);if(o!==s&&a!==g&&r!==i){var c=Ii(Math.ceil(r),Math.ceil(i)),u=c.getContext("2d");return u.scale(r,i),u.fillStyle=dI(u.createLinearGradient(o,a,s,g),t.stops),u.fillRect(0,0,r,i),e.createPattern(c,"no-repeat")}n=e.createLinearGradient(A.x1+o*r,A.y1+a*i,A.x1+s*r,A.y1+g*i)}return dI(n,t.stops)}(e,A,t.bounds):A}function pI(e,t,A){return(A*=null==t.fillOpacity?1:t.fillOpacity)>0&&(e.globalAlpha=A,e.fillStyle=BI(e,t,t.fill),!0)}var EI=[];function QI(e,t,A){var n=null!=(n=t.strokeWidth)?n:1;return!(n<=0)&&((A*=null==t.strokeOpacity?1:t.strokeOpacity)>0&&(e.globalAlpha=A,e.strokeStyle=BI(e,t,t.stroke),e.lineWidth=n,e.lineCap=t.strokeCap||"butt",e.lineJoin=t.strokeJoin||"miter",e.miterLimit=t.strokeMiterLimit||10,e.setLineDash&&(e.setLineDash(t.strokeDash||EI),e.lineDashOffset=t.strokeDashOffset||0),!0))}function yI(e,t){return e.zindex-t.zindex||e.index-t.index}function vI(e){if(!e.zdirty)return e.zitems;var t,A,n,r=e.items,i=[];for(A=0,n=r.length;A<n;++A)(t=r[A]).index=A,t.zindex&&i.push(t);return e.zdirty=!1,e.zitems=i.sort(yI)}function mI(e,t){var A,n,r=e.items;if(r&&r.length){var i=vI(e);if(i&&i.length){for(A=0,n=r.length;A<n;++A)r[A].zindex||t(r[A]);r=i}for(A=0,n=r.length;A<n;++A)t(r[A])}}function bI(e,t){var A,n,r=e.items;if(!r||!r.length)return null;var i=vI(e);for(i&&i.length&&(r=i),n=r.length;--n>=0;)if(A=t(r[n]))return A;if(r===i)for(n=(r=e.items).length;--n>=0;)if(!r[n].zindex&&(A=t(r[n])))return A;return null}function wI(e){return function(t,A,n){mI(A,(function(A){n&&!n.intersects(A.bounds)||SI(e,t,A,A)}))}}function SI(e,t,A,n){var r=null==A.opacity?1:A.opacity;0!==r&&(e(t,n)||(hI(t,A),A.fill&&pI(t,A,r)&&t.fill(),A.stroke&&QI(t,A,r)&&t.stroke()))}function FI(e){return e=e||ue.ib,function(t,A,n,r,i,o){return n*=t.pixelRatio,r*=t.pixelRatio,bI(A,(function(A){var a=A.bounds;if((!a||a.contains(i,o))&&a)return e(t,A,n,r,i,o)?A:void 0}))}}function RI(e,t){return function(A,n,r,i){var o,a,s=Array.isArray(n)?n[0]:n,g=null==t?s.fill:t,c=s.stroke&&A.isPointInStroke;return c&&(o=s.strokeWidth,a=s.strokeCap,A.lineWidth=null!=o?o:1,A.lineCap=null!=a?a:"butt"),!e(A,n)&&(g&&A.isPointInPath(r,i)||c&&A.isPointInStroke(r,i))}}function DI(e){return FI(RI(e))}function GI(e,t){return"translate("+e+","+t+")"}function kI(e){return"rotate("+e+")"}function xI(e){return GI(e.x||0,e.y||0)}function NI(e,t,A){function n(e,A){var n=A.x||0,r=A.y||0,i=A.angle||0;e.translate(n,r),i&&e.rotate(i*=Vu),e.beginPath(),t(e,A),i&&e.rotate(-i),e.translate(-n,-r)}return{type:e,tag:"path",nested:!1,attr:function(e,A){e("transform",function(e){return GI(e.x||0,e.y||0)+(e.angle?" "+kI(e.angle):"")}(A)),e("d",t(null,A))},bound:function(e,A){return t(nI(e,A.angle),A),Ll(e,A).translate(A.x||0,A.y||0)},draw:wI(n),pick:DI(n),isect:A||cI(n)}}var UI=NI("arc",(function(e,t){return Ql.context(e)(t)}));function _I(e,t,A){function n(e,A){e.beginPath(),t(e,A)}var r,i=RI(n);return{type:e,tag:"path",nested:!0,attr:function(e,A){var n=A.mark.items;n.length&&e("d",t(null,n))},bound:function(e,A){var n=A.items;return 0===n.length?e:(t(nI(e),n),Ll(e,n[0]))},draw:(r=n,function(e,t,A){!t.items.length||A&&!A.intersects(t.bounds)||SI(r,e,t.items[0],t.items)}),pick:function(e,t,A,n,r,o){var a=t.items,s=t.bounds;return!a||!a.length||s&&!s.contains(r,o)?null:(A*=e.pixelRatio,n*=e.pixelRatio,i(e,a,A,n)?a[0]:null)},isect:uI,tip:A}}var MI=_I("area",(function(e,t){var A=t[0],n=A.interpolate||"linear";return("horizontal"===A.orient?vl:yl).curve(Yu(n,A.orient,A.tension)).context(e)(t)}),(function(e,t){for(var A,n,r="horizontal"===e[0].orient?t[1]:t[0],i="horizontal"===e[0].orient?"y":"x",o=e.length,a=1/0;--o>=0;)!1!==e[o].defined&&(n=Math.abs(e[o][i]-r))<a&&(a=n,A=e[o]);return A}));function OI(e,t){e.beginPath(),Fl(t)?Rl(e,t,0,0):e.rect(0,0,t.width||0,t.height||0),e.clip()}function LI(e){var t=fI(e.strokeWidth,1);return null!=e.strokeOffset?e.strokeOffset:e.stroke&&t>.5&&t<1.5?.5-Math.abs(t-1):0}function TI(e,t){var A=LI(t);e("d",Rl(null,t,A,A))}function ZI(e,t,A,n){var r=LI(t);e.beginPath(),Rl(e,t,(A||0)+r,(n||0)+r)}var HI=RI(ZI),YI=RI(ZI,!1),JI=RI(ZI,!0);var jI={type:"group",tag:"g",nested:!1,attr:function(e,t){e("transform",xI(t))},bound:function(e,t){if(!t.clip&&t.items)for(var A=t.items,n=A.length,r=0;r<n;++r)e.union(A[r].bounds);return(t.clip||t.width||t.height)&&!t.noBound&&e.add(0,0).add(t.width||0,t.height||0),Ll(e,t),e.translate(t.x||0,t.y||0)},draw:function(e,t,A){var n=this;mI(t,(function(t){var r=t.x||0,i=t.y||0,o=t.strokeForeground,a=null==t.opacity?1:t.opacity;(t.stroke||t.fill)&&a&&(ZI(e,t,r,i),hI(e,t),t.fill&&pI(e,t,a)&&e.fill(),t.stroke&&!o&&QI(e,t,a)&&e.stroke()),e.save(),e.translate(r,i),t.clip&&OI(e,t),A&&A.translate(-r,-i),mI(t,(function(t){n.draw(e,t,A)})),A&&A.translate(r,i),e.restore(),o&&t.stroke&&a&&(ZI(e,t,r,i),hI(e,t),QI(e,t,a)&&e.stroke())}))},pick:function(e,t,A,n,r,i){var o=this;if(t.bounds&&!t.bounds.contains(r,i)||!t.items)return null;var a=A*e.pixelRatio,s=n*e.pixelRatio;return bI(t,(function(g){var c,u,l,I=g.bounds;if(!I||I.contains(r,i)){u=g.x||0,l=g.y||0;var C=u+(g.width||0),h=l+(g.height||0),f=g.clip;if(!f||!(r<u||r>C||i<l||i>h)){if(e.save(),e.translate(u,l),u=r-u,l=i-l,f&&Fl(g)&&!JI(e,g,a,s))return e.restore(),null;var d=g.strokeForeground,B=!1!==t.interactive;return B&&d&&g.stroke&&YI(e,g,a,s)?(e.restore(),g):(!(c=bI(g,(function(e){return function(e,t,A){return(!1!==e.interactive||"group"===e.marktype)&&e.bounds&&e.bounds.contains(t,A)}(e,u,l)?o.pick(e,A,n,u,l):null})))&&B&&(g.fill||!d&&g.stroke)&&HI(e,g,a,s)&&(c=g),e.restore(),c||null)}}}))},isect:lI,content:function(e,t,A){e("clip-path",t.clip?kl(A,t,t):null)},background:function(e,t){e("class","background"),e("aria-hidden",!0),TI(e,t)},foreground:function(e,t){e("class","foreground"),e("aria-hidden",!0),t.strokeForeground?TI(e,t):e("d","")}},PI={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function VI(e,t){var A=e.image;return(!A||e.url&&e.url!==A.url)&&(A={complete:!1,width:0,height:0},t.loadImage(e.url).then((function(t){e.image=t,e.image.url=e.url}))),A}function KI(e,t){return null!=e.width?e.width:t&&t.width?!1!==e.aspect&&e.height?e.height*t.width/t.height:t.width:0}function WI(e,t){return null!=e.height?e.height:t&&t.height?!1!==e.aspect&&e.width?e.width*t.height/t.width:t.height:0}function XI(e,t){return"center"===e?t/2:"right"===e?t:0}function qI(e,t){return"middle"===e?t/2:"bottom"===e?t:0}var zI={type:"image",tag:"image",nested:!1,attr:function(e,t,A){var n=VI(t,A),r=KI(t,n),i=WI(t,n),o=(t.x||0)-XI(t.align,r),a=(t.y||0)-qI(t.baseline,i);e("href",!n.src&&n.toDataURL?n.toDataURL():n.src||"",PI["xmlns:xlink"],"xlink:href"),e("transform",GI(o,a)),e("width",r),e("height",i),e("preserveAspectRatio",!1===t.aspect?"none":"xMidYMid")},bound:function(e,t){var A=t.image,n=KI(t,A),r=WI(t,A),i=(t.x||0)-XI(t.align,n),o=(t.y||0)-qI(t.baseline,r);return e.set(i,o,i+n,o+r)},draw:function(e,t,A){var n=this;mI(t,(function(t){if(!A||A.intersects(t.bounds)){var r=VI(t,n),i=KI(t,r),o=WI(t,r);if(0!==i&&0!==o){var a,s,g,c,u=(t.x||0)-XI(t.align,i),l=(t.y||0)-qI(t.baseline,o);!1!==t.aspect&&(s=r.width/r.height,g=t.width/t.height,s===s&&g===g&&s!==g&&(g<s?(l+=(o-(c=i/s))/2,o=c):(u+=(i-(c=o*s))/2,i=c))),(r.complete||r.toDataURL)&&(hI(e,t),e.globalAlpha=null!=(a=t.opacity)?a:1,e.imageSmoothingEnabled=!1!==t.smooth,e.drawImage(r,u,l,i,o))}}}))},pick:FI(),isect:ue.ib,get:VI,xOffset:XI,yOffset:qI},$I=_I("line",(function(e,t){var A=t[0],n=A.interpolate||"linear";return ml.curve(Yu(n,A.orient,A.tension)).context(e)(t)}),(function(e,t){for(var A,n,r=Math.pow(e[0].strokeWidth||1,2),i=e.length;--i>=0;)if(!1!==e[i].defined&&(A=e[i].x-t[0])*A+(n=e[i].y-t[1])*n<r)return e[i];return null}));function eC(e,t){var A=t.path;if(null==A)return!0;var n=t.x||0,r=t.y||0,i=t.scaleX||1,o=t.scaleY||1,a=(t.angle||0)*Vu,s=t.pathCache;s&&s.path===A||((t.pathCache=s=Pu(A)).path=A),a&&e.rotate&&e.translate?(e.translate(n,r),e.rotate(a),nl(e,s,0,0,i,o),e.rotate(-a),e.translate(-n,-r)):nl(e,s,n,r,i,o)}var tC={type:"path",tag:"path",nested:!1,attr:function(e,t){var A=t.scaleX||1,n=t.scaleY||1;1===A&&1===n||e("vector-effect","non-scaling-stroke"),e("transform",function(e){return GI(e.x||0,e.y||0)+(e.angle?" "+kI(e.angle):"")+(e.scaleX||e.scaleY?" "+function(e,t){return"scale("+e+","+t+")"}(e.scaleX||1,e.scaleY||1):"")}(t)),e("d",t.path)},bound:function(e,t){return eC(nI(e,t.angle),t)?e.set(0,0,0,0):Ll(e,t,!0)},draw:wI(eC),pick:DI(eC),isect:cI(eC)};function AC(e,t){e.beginPath(),Rl(e,t)}var nC={type:"rect",tag:"path",nested:!1,attr:function(e,t){e("d",Rl(null,t))},bound:function(e,t){var A,n;return Ll(e.set(A=t.x||0,n=t.y||0,A+t.width||0,n+t.height||0),t)},draw:wI(AC),pick:DI(AC),isect:lI};function rC(e,t,A){var n,r,i,o;return!(!t.stroke||!QI(e,t,A))&&(n=t.x||0,r=t.y||0,i=null!=t.x2?t.x2:n,o=null!=t.y2?t.y2:r,e.beginPath(),e.moveTo(n,r),e.lineTo(i,o),!0)}var iC={type:"rule",tag:"line",nested:!1,attr:function(e,t){e("transform",xI(t)),e("x2",null!=t.x2?t.x2-(t.x||0):0),e("y2",null!=t.y2?t.y2-(t.y||0):0)},bound:function(e,t){var A,n;return Ll(e.set(A=t.x||0,n=t.y||0,null!=t.x2?t.x2:A,null!=t.y2?t.y2:n),t)},draw:function(e,t,A){mI(t,(function(t){if(!A||A.intersects(t.bounds)){var n=null==t.opacity?1:t.opacity;n&&rC(e,t,n)&&(hI(e,t),e.stroke())}}))},pick:FI((function(e,t,A,n){return!!e.isPointInStroke&&(rC(e,t,1)&&e.isPointInStroke(A,n))})),isect:II},oC=NI("shape",(function(e,t){return(t.mark.shape||t.shape).context(e)(t)})),aC=NI("symbol",(function(e,t){return wl.context(e)(t)}),uI),sC=Object(ue.N)(),gC={height:hC,measureWidth:IC,estimateWidth:uC,width:uC,canvas:cC};function cC(e){gC.width=e&&sI?IC:uC}function uC(e,t){return lC(pC(e,t),hC(e))}function lC(e,t){return~~(.8*e.length*t)}function IC(e,t){return hC(e)<=0||!(t=pC(e,t))?0:CC(t,QC(e))}function CC(e,t){var A="(".concat(t,") ").concat(e),n=sC.get(A);return void 0===n&&(sI.font=t,n=sI.measureText(e).width,sC.set(A,n)),n}function hC(e){return null!=e.fontSize?+e.fontSize||0:11}function fC(e){return null!=e.lineHeight?e.lineHeight:hC(e)+2}function dC(e){return t=e.lineBreak&&e.text&&!Object(ue.B)(e.text)?e.text.split(e.lineBreak):e.text,Object(ue.B)(t)?t.length>1?t:t[0]:t;var t}function BC(e){var t=dC(e);return(Object(ue.B)(t)?t.length-1:0)*fC(e)}function pC(e,t){var A=null==t?"":(t+"").trim();return e.limit>0&&A.length?function(e,t){var A=+e.limit,n=function(e){if(gC.width===IC){var t=QC(e);return function(e){return CC(e,t)}}var A=hC(e);return function(e){return lC(e,A)}}(e);if(n(t)<A)return t;var r,i=e.ellipsis||"\u2026",o="rtl"===e.dir,a=0,s=t.length;if(A-=n(i),o){for(;a<s;)r=a+s>>>1,n(t.slice(r))>A?a=r+1:s=r;return i+t.slice(a)}for(;a<s;)r=1+(a+s>>>1),n(t.slice(0,r))<A?a=r:s=r-1;return t.slice(0,a)+i}(e,A):A}function EC(e,t){var A=e.font;return(t&&A?String(A).replace(/"/g,"'"):A)||"sans-serif"}function QC(e,t){return(e.fontStyle?e.fontStyle+" ":"")+(e.fontVariant?e.fontVariant+" ":"")+(e.fontWeight?e.fontWeight+" ":"")+hC(e)+"px "+EC(e,t)}function yC(e){var t=e.baseline,A=hC(e);return Math.round("top"===t?.79*A:"middle"===t?.3*A:"bottom"===t?-.21*A:"line-top"===t?.29*A+.5*fC(e):"line-bottom"===t?.29*A-.5*fC(e):0)}cC(!0);var vC={left:"start",center:"middle",right:"end"},mC=new xl;function bC(e){var t,A=e.x||0,n=e.y||0,r=e.radius||0;return r&&(t=(e.theta||0)-Ku,A+=r*Math.cos(t),n+=r*Math.sin(t)),mC.x1=A,mC.y1=n,mC}function wC(e,t,A){var n,r=gC.height(t),i=t.align,o=bC(t),a=o.x1,s=o.y1,g=t.dx||0,c=(t.dy||0)+yC(t)-Math.round(.8*r),u=dC(t);if(Object(ue.B)(u)?(r+=fC(t)*(u.length-1),n=u.reduce((function(e,A){return Math.max(e,gC.width(t,A))}),0)):n=gC.width(t,u),"center"===i?g-=n/2:"right"===i&&(g-=n),e.set(g+=a,c+=s,g+n,c+r),t.angle&&!A)e.rotate(t.angle*Vu,a,s);else if(2===A)return e.rotatedPoints(t.angle*Vu,a,s);return e}var SC={arc:UI,area:MI,group:jI,image:zI,line:$I,path:tC,rect:nC,rule:iC,shape:oC,symbol:aC,text:{type:"text",tag:"text",nested:!1,attr:function(e,t){var A,n=t.dx||0,r=(t.dy||0)+yC(t),i=bC(t),o=i.x1,a=i.y1,s=t.angle||0;e("text-anchor",vC[t.align]||"start"),s?(A=GI(o,a)+" "+kI(s),(n||r)&&(A+=" "+GI(n,r))):A=GI(o+n,a+r),e("transform",A)},bound:wC,draw:function(e,t,A){mI(t,(function(t){var n,r,i,o,a,s,g,c=null==t.opacity?1:t.opacity;if(!(A&&!A.intersects(t.bounds)||0===c||t.fontSize<=0||null==t.text||0===t.text.length)){if(e.font=QC(t),e.textAlign=t.align||"left",r=(n=bC(t)).x1,i=n.y1,t.angle&&(e.save(),e.translate(r,i),e.rotate(t.angle*Vu),r=i=0),r+=t.dx||0,i+=(t.dy||0)+yC(t),s=dC(t),hI(e,t),Object(ue.B)(s))for(a=fC(t),o=0;o<s.length;++o)g=pC(t,s[o]),t.fill&&pI(e,t,c)&&e.fillText(g,r,i),t.stroke&&QI(e,t,c)&&e.strokeText(g,r,i),i+=a;else g=pC(t,s),t.fill&&pI(e,t,c)&&e.fillText(g,r,i),t.stroke&&QI(e,t,c)&&e.strokeText(g,r,i);t.angle&&e.restore()}}))},pick:FI((function(e,t,A,n,r,i){if(t.fontSize<=0)return!1;if(!t.angle)return!0;var o=bC(t),a=o.x1,s=o.y1,g=wC(mC,t,1),c=-t.angle*Vu,u=Math.cos(c),l=Math.sin(c),I=u*r-l*i+(a-u*a+l*s),C=l*r+u*i+(s-l*a-u*s);return g.contains(I,C)})),isect:function(e,t){var A=wC(mC,e,2);return CI(t,A[0],A[1],A[2],A[3])||CI(t,A[0],A[1],A[4],A[5])||CI(t,A[4],A[5],A[6],A[7])||CI(t,A[2],A[3],A[6],A[7])}},trail:_I("trail",(function(e,t){return Sl.context(e)(t)}),(function(e,t){for(var A,n,r=e.length;--r>=0;)if(!1!==e[r].defined&&(A=e[r].x-t[0])*A+(n=e[r].y-t[1])*n<(A=e[r].size||1)*A)return e[r];return null}))};function FC(e,t,A){var n=SC[e.mark.marktype],r=t||n.bound;return n.nested&&(e=e.mark),r(e.bounds||(e.bounds=new xl),e,A)}var RC={mark:null};function DC(e,t,A){var n,r,i,o,a=SC[e.marktype],s=a.bound,g=e.items,c=g&&g.length;if(a.nested)return c?i=g[0]:(RC.mark=e,i=RC),o=FC(i,s,A),t=t&&t.union(o)||o;if(t=t||e.bounds&&e.bounds.clear()||new xl,c)for(n=0,r=g.length;n<r;++n)t.union(FC(g[n],s,A));return e.bounds=t}var GC=["marktype","name","role","interactive","clip","items","zindex","x","y","width","height","align","baseline","fill","fillOpacity","opacity","blend","stroke","strokeOpacity","strokeWidth","strokeCap","strokeDash","strokeDashOffset","strokeForeground","strokeOffset","startAngle","endAngle","innerRadius","outerRadius","cornerRadius","padAngle","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight","interpolate","tension","orient","defined","url","aspect","smooth","path","scaleX","scaleY","x2","y2","size","shape","text","angle","theta","radius","dir","dx","dy","ellipsis","limit","lineBreak","lineHeight","font","fontSize","fontWeight","fontStyle","fontVariant","description","aria","ariaRole","ariaRoleDescription"];function kC(e,t){return JSON.stringify(e,GC,t)}function xC(e){return function e(t){var A,n,r,i=t.marktype,o=t.items;if(o)for(n=0,r=o.length;n<r;++n)A=i?"mark":"group",o[n][A]=t,o[n].zindex&&(o[n][A].zdirty=!0),"group"===(i||A)&&e(o[n]);i&&DC(t);return t}("string"===typeof e?JSON.parse(e):e)}function NC(e){arguments.length?this.root=xC(e):(this.root=UC({marktype:"group",name:"root",role:"frame"}),this.root.items=[new Ul(this.root)])}function UC(e,t){var A={bounds:new xl,clip:!!e.clip,group:t,interactive:!1!==e.interactive,items:[],marktype:e.marktype,name:e.name||void 0,role:e.role||void 0,zindex:e.zindex||0};return null!=e.aria&&(A.aria=e.aria),e.description&&(A.description=e.description),A}function _C(e,t,A){return!e&&"undefined"!==typeof document&&document.createElement&&(e=document),e?A?e.createElementNS(A,t):e.createElement(t):null}function MC(e,t){t=t.toLowerCase();for(var A=e.childNodes,n=0,r=A.length;n<r;++n)if(A[n].tagName.toLowerCase()===t)return A[n]}function OC(e,t,A,n){var r,i=e.childNodes[t];return i&&i.tagName.toLowerCase()===A.toLowerCase()||(r=i||null,i=_C(e.ownerDocument,A,n),e.insertBefore(i,r)),i}function LC(e,t){for(var A=e.childNodes,n=A.length;n>t;)e.removeChild(A[--n]);return e}function TC(e){return"mark-"+e.marktype+(e.role?" role-"+e.role:"")+(e.name?" "+e.name:"")}function ZC(e,t){var A=t.getBoundingClientRect();return[e.clientX-A.left-(t.clientLeft||0),e.clientY-A.top-(t.clientTop||0)]}function HC(e,t){this._active=null,this._handlers={},this._loader=e||Object(he.e)(),this._tooltip=t||YC}function YC(e,t,A,n){e.element().setAttribute("title",n||"")}function JC(e){this._el=null,this._bgcolor=null,this._loader=new _l(e)}NC.prototype={toJSON:function(e){return kC(this.root,e||0)},mark:function(e,t,A){var n=UC(e,t=t||this.root.items[0]);return t.items[A]=n,n.zindex&&(n.group.zdirty=!0),n}},HC.prototype={initialize:function(e,t,A){return this._el=e,this._obj=A||null,this.origin(t)},element:function(){return this._el},canvas:function(){return this._el&&this._el.firstChild},origin:function(e){return arguments.length?(this._origin=e||[0,0],this):this._origin.slice()},scene:function(e){return arguments.length?(this._scene=e,this):this._scene},on:function(){},off:function(){},_handlerIndex:function(e,t,A){for(var n=e?e.length:0;--n>=0;)if(e[n].type===t&&(!A||e[n].handler===A))return n;return-1},handlers:function(e){var t=this._handlers,A=[];if(e)A.push.apply(A,Object(zn.a)(t[this.eventName(e)]));else for(var n in t)A.push.apply(A,Object(zn.a)(t[n]));return A},eventName:function(e){var t=e.indexOf(".");return t<0?e:e.slice(0,t)},handleHref:function(e,t,A){this._loader.sanitize(A,{context:"href"}).then((function(t){var A=new MouseEvent(e.type,e),n=_C(null,"a");for(var r in t)n.setAttribute(r,t[r]);n.dispatchEvent(A)})).catch((function(){}))},handleTooltip:function(e,t,A){if(t&&null!=t.tooltip){t=function(e,t,A,n){var r,i,o=e&&e.mark;if(o&&(r=SC[o.marktype]).tip){for((i=ZC(t,A))[0]-=n[0],i[1]-=n[1];e=e.mark.group;)i[0]-=e.x||0,i[1]-=e.y||0;e=r.tip(o.items,i)}return e}(t,e,this.canvas(),this._origin);var n=A&&t&&t.tooltip||null;this._tooltip.call(this._obj,this,e,t,n)}},getItemBoundingClientRect:function(e){var t=this.canvas();if(t){for(var A=t.getBoundingClientRect(),n=this._origin,r=e.bounds,i=r.width(),o=r.height(),a=r.x1+n[0]+A.left,s=r.y1+n[1]+A.top;e.mark&&(e=e.mark.group);)a+=e.x||0,s+=e.y||0;return{x:a,y:s,width:i,height:o,left:a,top:s,right:a+i,bottom:s+o}}}},JC.prototype={initialize:function(e,t,A,n,r){return this._el=e,this.resize(t,A,n,r)},element:function(){return this._el},canvas:function(){return this._el&&this._el.firstChild},background:function(e){return 0===arguments.length?this._bgcolor:(this._bgcolor=e,this)},resize:function(e,t,A,n){return this._width=e,this._height=t,this._origin=A||[0,0],this._scale=n||1,this},dirty:function(){},render:function(e){var t=this;return t._call=function(){t._render(e)},t._call(),t._call=null,t},_render:function(){},renderAsync:function(e){var t=this.render(e);return this._ready?this._ready.then((function(){return t})):Promise.resolve(t)},_load:function(e,t){var A=this,n=A._loader[e](t);if(!A._ready){var r=A._call;A._ready=A._loader.ready().then((function(e){e&&r(),A._ready=null}))}return n},sanitizeURL:function(e){return this._load("sanitizeURL",e)},loadImage:function(e){return this._load("loadImage",e)}};var jC="dragleave",PC="mousedown",VC="mousemove",KC="mouseout",WC="click",XC=["keydown","keypress","keyup","dragenter",jC,"dragover",PC,"mouseup",VC,KC,"mouseover",WC,"dblclick","wheel","mousewheel","touchstart","touchmove","touchend"],qC=VC,zC=KC,$C=WC;function eh(e,t){HC.call(this,e,t),this._down=null,this._touch=null,this._first=!0,this._events={}}function th(e,t){(function(e){return"touchstart"===e||"touchmove"===e||"touchend"===e?["touchstart","touchmove","touchend"]:[e]})(t).forEach((function(t){return function(e,t){var A=e.canvas();A&&!e._events[t]&&(e._events[t]=1,A.addEventListener(t,e[t]?function(A){return e[t](A)}:function(A){return e.fire(t,A)}))}(e,t)}))}function Ah(e,t,A){return function(n){var r=this._active,i=this.pickEvent(n);i===r||(r&&r.exit||this.fire(A,n),this._active=i,this.fire(t,n)),this.fire(e,n)}}function nh(e){return function(t){this.fire(e,t),this._active=null}}Object(ue.z)(eh,HC,{initialize:function(e,t,A){var n=this;return this._canvas=e&&MC(e,"canvas"),[WC,PC,VC,KC,jC].forEach((function(e){return th(n,e)})),HC.prototype.initialize.call(this,e,t,A)},canvas:function(){return this._canvas},context:function(){return this._canvas.getContext("2d")},events:XC,DOMMouseScroll:function(e){this.fire("mousewheel",e)},mousemove:Ah(VC,"mouseover",KC),dragover:Ah("dragover","dragenter",jC),mouseout:nh(KC),dragleave:nh(jC),mousedown:function(e){this._down=this._active,this.fire(PC,e)},click:function(e){this._down===this._active&&(this.fire(WC,e),this._down=null)},touchstart:function(e){this._touch=this.pickEvent(e.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire("touchstart",e,!0)},touchmove:function(e){this.fire("touchmove",e,!0)},touchend:function(e){this.fire("touchend",e,!0),this._touch=null},fire:function(e,t,A){var n=A?this._touch:this._active,r=this._handlers[e];if(t.vegaType=e,e===$C&&n&&n.href?this.handleHref(t,n,n.href):e!==qC&&e!==zC||this.handleTooltip(t,n,e!==zC),r)for(var i=0,o=r.length;i<o;++i)r[i].handler.call(this._obj,t,n)},on:function(e,t){var A=this.eventName(e),n=this._handlers;return this._handlerIndex(n[A],e,t)<0&&(th(this,e),(n[A]||(n[A]=[])).push({type:e,handler:t})),this},off:function(e,t){var A=this.eventName(e),n=this._handlers[A],r=this._handlerIndex(n,e,t);return r>=0&&n.splice(r,1),this},pickEvent:function(e){var t=ZC(e,this._canvas),A=this._origin;return this.pick(this._scene,t[0],t[1],t[0]-A[0],t[1]-A[1])},pick:function(e,t,A,n,r){var i=this.context();return SC[e.marktype].pick.call(this,i,e,t,A,n,r)}});var rh="undefined"!==typeof window&&window.devicePixelRatio||1;function ih(e){JC.call(this,e),this._options={},this._redraw=!1,this._dirty=new xl,this._tempb=new xl}var oh=JC.prototype;function ah(e,t){HC.call(this,e,t);var A=this;A._hrefHandler=sh(A,(function(e,t){t&&t.href&&A.handleHref(e,t,t.href)})),A._tooltipHandler=sh(A,(function(e,t){A.handleTooltip(e,t,e.type!==zC)}))}Object(ue.z)(ih,JC,{initialize:function(e,t,A,n,r,i){return this._options=i||{},this._canvas=this._options.externalContext?null:Ii(1,1,this._options.type),e&&this._canvas&&(LC(e,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),oh.initialize.call(this,e,t,A,n,r)},resize:function(e,t,A,n){if(oh.resize.call(this,e,t,A,n),this._canvas)!function(e,t,A,n,r,i){var o="undefined"!==typeof HTMLElement&&e instanceof HTMLElement&&null!=e.parentNode,a=e.getContext("2d"),s=o?rh:r;for(var g in e.width=t*s,e.height=A*s,i)a[g]=i[g];o&&1!==s&&(e.style.width=t+"px",e.style.height=A+"px"),a.pixelRatio=s,a.setTransform(s,0,0,s,s*n[0],s*n[1])}(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{var r=this._options.externalContext;r||Object(ue.o)("CanvasRenderer is missing a valid canvas or context"),r.scale(this._scale,this._scale),r.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this},canvas:function(){return this._canvas},context:function(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)},dirty:function(e){for(var t=this._tempb.clear().union(e.bounds),A=e.mark.group;A;)t.translate(A.x||0,A.y||0),A=A.mark.group;this._dirty.union(t)},_render:function(e){var t,A,n,r=this.context(),i=this._origin,o=this._width,a=this._height,s=this._dirty,g=(t=i,A=o,n=a,(new xl).set(0,0,A,n).translate(-t[0],-t[1]));r.save();var c=this._redraw||s.empty()?(this._redraw=!1,g.expand(1)):function(e,t,A){return t.expand(1).round(),e.pixelRatio%1&&t.scale(e.pixelRatio).round().scale(1/e.pixelRatio),t.translate(-A[0]%1,-A[1]%1),e.beginPath(),e.rect(t.x1,t.y1,t.width(),t.height()),e.clip(),t}(r,g.intersect(s),i);return this.clear(-i[0],-i[1],o,a),this.draw(r,e,c),r.restore(),s.clear(),this},draw:function(e,t,A){var n=SC[t.marktype];t.clip&&function(e,t){var A=t.clip;e.save(),Object(ue.E)(A)?(e.beginPath(),A(e),e.clip()):OI(e,t.group)}(e,t),n.draw.call(this,e,t,A),t.clip&&e.restore()},clear:function(e,t,A,n){var r=this._options,i=this.context();"pdf"===r.type||r.externalContext||i.clearRect(e,t,A,n),null!=this._bgcolor&&(i.fillStyle=this._bgcolor,i.fillRect(e,t,A,n))}});var sh=function(e,t){return function(A){var n=A.target.__data__;n=Array.isArray(n)?n[0]:n,A.vegaType=A.type,t.call(e._obj,A,n)}};Object(ue.z)(ah,HC,{initialize:function(e,t,A){var n=this._svg;return n&&(n.removeEventListener($C,this._hrefHandler),n.removeEventListener(qC,this._tooltipHandler),n.removeEventListener(zC,this._tooltipHandler)),this._svg=n=e&&MC(e,"svg"),n&&(n.addEventListener($C,this._hrefHandler),n.addEventListener(qC,this._tooltipHandler),n.addEventListener(zC,this._tooltipHandler)),HC.prototype.initialize.call(this,e,t,A)},canvas:function(){return this._svg},on:function(e,t){var A=this.eventName(e),n=this._handlers;if(this._handlerIndex(n[A],e,t)<0){var r={type:e,handler:t,listener:sh(this,t)};(n[A]||(n[A]=[])).push(r),this._svg&&this._svg.addEventListener(A,r.listener)}return this},off:function(e,t){var A=this.eventName(e),n=this._handlers[A],r=this._handlerIndex(n,e,t);return r>=0&&(this._svg&&this._svg.removeEventListener(A,n[r].listener),n.splice(r,1)),this}});var gh=function(e,t,A){var n;return n={},Object($n.a)(n,"role",e),Object($n.a)(n,"aria-roledescription",t),Object($n.a)(n,"aria-label",A||void 0),n},ch=Object(ue.fb)(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),uh={axis:{desc:"axis",caption:function(e){var t=e.datum,A=e.orient,n=t.title?fh(e):null,r=e.context,i=r.scales[t.scale].value,o=r.dataflow.locale(),a=i.type;return"".concat("left"===A||"right"===A?"Y":"X","-axis")+(n?" titled '".concat(n,"'"):"")+" for a ".concat(nu(a)?"discrete":a," scale")+" with ".concat(_u(o,i,e))}},legend:{desc:"legend",caption:function(e){var t=e.datum,A=t.title?fh(e):null,n="".concat(t.type||""," legend").trim(),r=t.scales,i=Object.keys(r),o=e.context,a=o.scales[r[i[0]]].value,s=o.dataflow.locale();return g=n,(g.length?g[0].toUpperCase()+g.slice(1):g)+(A?" titled '".concat(A,"'"):"")+" for ".concat(function(e){return(e=e.map((function(e){return e+("fill"===e||"stroke"===e?" color":"")}))).length<2?e[0]:e.slice(0,-1).join(", ")+" and "+Object(ue.W)(e)}(i))+" with ".concat(_u(s,a,e));var g}},"title-text":{desc:"title",caption:function(e){return"Title text '".concat(hh(e),"'")}},"title-subtitle":{desc:"subtitle",caption:function(e){return"Subtitle text '".concat(hh(e),"'")}}},lh={ariaRole:"role",ariaRoleDescription:"aria-roledescription",description:"aria-label"};function Ih(e,t){var A=!1===t.aria;if(e("aria-hidden",A||void 0),A||null==t.description)for(var n in lh)e(lh[n],void 0);else{var r=t.mark.marktype;e("aria-label",t.description),e("role",t.ariaRole||("group"===r?"graphics-object":"graphics-symbol")),e("aria-roledescription",t.ariaRoleDescription||"".concat(r," mark"))}}function Ch(e){return!1===e.aria?Object($n.a)({},"aria-hidden",!0):ch[e.role]?null:uh[e.role]?function(e,t){try{var A=e.items[0],n=t.caption||function(){return""};return gh(t.role||"graphics-symbol",t.desc,A.description||n(A))}catch(r){return null}}(e,uh[e.role]):function(e){var t=e.marktype,A="group"===t||"text"===t||e.items.some((function(e){return null!=e.description&&!1!==e.aria}));return gh(A?"graphics-object":"graphics-symbol","".concat(t," mark container"),e.description)}(e)}function hh(e){return Object(ue.i)(e.text).join(" ")}function fh(e){try{return Object(ue.i)(Object(ue.W)(e.items).items[0].text).join(" ")}catch(t){return null}}var dh=function(e){return(e+"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")};function Bh(){var e="",t="",A="",n=[],r=function(){return t=A=""},i=function(i){t&&(e+="".concat(t,">").concat(A),r()),n.push(i)},o=function(e,A){return null!=A&&(t+=" ".concat(e,'="').concat(dh(A).replace(/"/g,""").replace(/\t/g,"	").replace(/\n/g,"
").replace(/\r/g,"
"),'"')),a},a={open:function(e){i(e),t="<"+e;for(var A=arguments.length,n=new Array(A>1?A-1:0),r=1;r<A;r++)n[r-1]=arguments[r];for(var s=0,g=n;s<g.length;s++){var c=g[s];for(var u in c)o(u,c[u])}return a},close:function(){var i=n.pop();return e+=t?t+(A?">".concat(A,"</").concat(i,">"):"/>"):"</".concat(i,">"),r(),a},attr:o,text:function(e){return A+=dh(e),a},toString:function(){return e}};return a}var ph=function(e){return function e(t,A){if(t.open(A.tagName),A.hasAttributes())for(var n=A.attributes,r=n.length,i=0;i<r;++i)t.attr(n[i].name,n[i].value);if(A.hasChildNodes())for(var o=A.childNodes,a=o.length,s=0;s<a;s++){var g=o[s];3===g.nodeType?t.text(g.nodeValue):e(t,g)}return t.close()}(Bh(),e)+""};var Eh={fill:"fill",fillOpacity:"fill-opacity",stroke:"stroke",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",strokeCap:"stroke-linecap",strokeJoin:"stroke-linejoin",strokeDash:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeMiterLimit:"stroke-miterlimit",opacity:"opacity",blend:"mix-blend-mode"},Qh={fill:"none","stroke-miterlimit":10},yh="http://www.w3.org/2000/xmlns/",vh=PI.xmlns;function mh(e){JC.call(this,e),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}var bh=JC.prototype;function wh(e,t){for(;e&&e.dirty!==t;e=e.mark.group){if(e.dirty=t,!e.mark||e.mark.dirty===t)return;e.mark.dirty=t}}function Sh(e,t,A){var n,r,i;if("radial"===t.gradient){var o=OC(e,A++,"pattern",vh);Uh(o,{id:"p_"+t.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),Uh(o=OC(o,0,"rect",vh),{width:1,height:1,fill:"url(".concat(Mh(),"#").concat(t.id,")")}),Uh(e=OC(e,A++,"radialGradient",vh),{id:t.id,fx:t.x1,fy:t.y1,fr:t.r1,cx:t.x2,cy:t.y2,r:t.r2})}else Uh(e=OC(e,A++,"linearGradient",vh),{id:t.id,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2});for(n=0,r=t.stops.length;n<r;++n)(i=OC(e,n,"stop",vh)).setAttribute("offset",t.stops[n].offset),i.setAttribute("stop-color",t.stops[n].color);return LC(e,n),A}function Fh(e,t,A){return(e=OC(e,A,"clipPath",vh)).setAttribute("id",t.id),t.path?OC(e,0,"path",vh).setAttribute("d",t.path):Uh(OC(e,0,"rect",vh),{x:0,y:0,width:t.width,height:t.height}),LC(e,1),A+1}function Rh(e,t,A,n,r){var i,o=e._svg;if(!o&&(o=_C(i=t.ownerDocument,n,vh),e._svg=o,e.mark&&(o.__data__=e,o.__values__={fill:"default"},"g"===n))){var a=_C(i,"path",vh);o.appendChild(a),a.__data__=e;var s=_C(i,"g",vh);o.appendChild(s),s.__data__=e;var g=_C(i,"path",vh);o.appendChild(g),g.__data__=e,g.__values__={fill:"default"}}return(o.ownerSVGElement!==r||function(e,t){return e.parentNode&&e.parentNode.childNodes.length>1&&e.previousSibling!=t}(o,A))&&t.insertBefore(o,A?A.nextSibling:t.firstChild),o}Object(ue.z)(mh,JC,{initialize:function(e,t,A,n,r){return this._defs={},this._clearDefs(),e&&(this._svg=OC(e,0,"svg",vh),this._svg.setAttributeNS(yh,"xmlns",vh),this._svg.setAttributeNS(yh,"xmlns:xlink",PI["xmlns:xlink"]),this._svg.setAttribute("version",PI.version),this._svg.setAttribute("class","marks"),LC(e,1),this._root=OC(this._svg,0,"g",vh),Uh(this._root,Qh),LC(this._svg,1)),this.background(this._bgcolor),bh.initialize.call(this,e,t,A,n,r)},background:function(e){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",e),bh.background.apply(this,arguments)},resize:function(e,t,A,n){return bh.resize.call(this,e,t,A,n),this._svg&&(Uh(this._svg,{width:this._width*this._scale,height:this._height*this._scale,viewBox:"0 0 ".concat(this._width," ").concat(this._height)}),this._root.setAttribute("transform","translate(".concat(this._origin,")"))),this._dirty=[],this},canvas:function(){return this._svg},svg:function(){var e,t=this._svg,A=this._bgcolor;if(!t)return null;A&&(t.removeAttribute("style"),Uh(e=OC(t,0,"rect",vh),{width:this._width,height:this._height,fill:A}));var n=ph(t);return A&&(t.removeChild(e),this._svg.style.setProperty("background-color",A)),n},_render:function(e){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,e),LC(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this},dirty:function(e){e.dirty!==this._dirtyID&&(e.dirty=this._dirtyID,this._dirty.push(e))},isDirty:function(e){return this._dirtyAll||!e._svg||e.dirty===this._dirtyID},_dirtyCheck:function(){this._dirtyAll=!0;var e=this._dirty;if(!e.length||!this._dirtyID)return!0;var t,A,n,r,i,o,a,s=++this._dirtyID;for(i=0,o=e.length;i<o;++i)(A=(t=e[i]).mark).marktype!==n&&(n=A.marktype,r=SC[n]),A.zdirty&&A.dirty!==s&&(this._dirtyAll=!1,wh(t,s),A.items.forEach((function(e){e.dirty=s}))),A.zdirty||(t.exit?(r.nested&&A.items.length?(a=A.items[0])._svg&&this._update(r,a._svg,a):t._svg&&(a=t._svg.parentNode)&&a.removeChild(t._svg),t._svg=null):(t=r.nested?A.items[0]:t)._update!==s&&(t._svg&&t._svg.ownerSVGElement?this._update(r,t._svg,t):(this._dirtyAll=!1,wh(t,s)),t._update=s));return!this._dirtyAll},mark:function(e,t,A){var n=this;if(!this.isDirty(t))return t._svg;var r=this._svg,i=SC[t.marktype],o=!1===t.interactive?"none":null,a="g"===i.tag,s=null,g=0,c=Rh(t,e,A,"g",r);c.setAttribute("class",TC(t));var u=Ch(t);for(var l in u)_h(c,l,u[l]);a||_h(c,"pointer-events",o),_h(c,"clip-path",t.clip?kl(this,t,t.group):null);var I=function(e){var t=n.isDirty(e),A=Rh(e,c,s,i.tag,r);t&&(n._update(i,A,e),a&&function(e,t,A){t=t.lastChild.previousSibling;var n,r=0;mI(A,(function(A){n=e.mark(t,A,n),++r})),LC(t,1+r)}(n,A,e)),s=A,++g};return i.nested?t.items.length&&I(t.items[0]):mI(t,I),LC(c,g),c},_update:function(e,t,A){Dh=t,Gh=t.__values__,Ih(xh,A),e.attr(xh,A,this);var n=kh[e.type];n&&n.call(this,e,t,A),Dh&&this.style(Dh,A)},style:function(e,t){if(null!=t)for(var A in Eh){var n="font"===A?EC(t):t[A];if(n!==Gh[A]){var r=Eh[A];null==n?e.removeAttribute(r):(Ou(n)&&(n=Lu(n,this._defs.gradient,Mh())),e.setAttribute(r,n+"")),Gh[A]=n}}},defs:function(){var e=this._svg,t=this._defs,A=t.el,n=0;for(var r in t.gradient)A||(t.el=A=OC(e,1,"defs",vh)),n=Sh(A,t.gradient[r],n);for(var i in t.clipping)A||(t.el=A=OC(e,1,"defs",vh)),n=Fh(A,t.clipping[i],n);A&&(0===n?(e.removeChild(A),t.el=null):LC(A,n))},_clearDefs:function(){var e=this._defs;e.gradient={},e.clipping={}}});var Dh=null,Gh=null,kh={group:function(e,t,A){var n=Dh=t.childNodes[2];Gh=n.__values__,e.foreground(xh,A,this),Gh=t.__values__,Dh=t.childNodes[1],e.content(xh,A,this);var r=Dh=t.childNodes[0];e.background(xh,A,this);var i=!1===A.mark.interactive?"none":null;if(i!==Gh.events&&(_h(n,"pointer-events",i),_h(r,"pointer-events",i),Gh.events=i),A.strokeForeground&&A.stroke){var o=A.fill;_h(n,"display",null),this.style(r,A),_h(r,"stroke",null),o&&(A.fill=null),Gh=n.__values__,this.style(n,A),o&&(A.fill=o),Dh=null}else _h(n,"display","none")},image:function(e,t,A){!1===A.smooth?(Nh(t,"image-rendering","optimizeSpeed"),Nh(t,"image-rendering","pixelated")):Nh(t,"image-rendering",null)},text:function(e,t,A){var n,r,i,o,a=dC(A);Object(ue.B)(a)?(n=(r=a.map((function(e){return pC(A,e)}))).join("\n"))!==Gh.text&&(LC(t,0),i=t.ownerDocument,o=fC(A),r.forEach((function(e,n){var r=_C(i,"tspan",vh);r.__data__=A,r.textContent=e,n&&(r.setAttribute("x",0),r.setAttribute("dy",o)),t.appendChild(r)})),Gh.text=n):(r=pC(A,a))!==Gh.text&&(t.textContent=r,Gh.text=r),_h(t,"font-family",EC(A)),_h(t,"font-size",hC(A)+"px"),_h(t,"font-style",A.fontStyle),_h(t,"font-variant",A.fontVariant),_h(t,"font-weight",A.fontWeight)}};function xh(e,t,A){t!==Gh[e]&&(A?function(e,t,A,n){null!=A?e.setAttributeNS(n,t,A):e.removeAttributeNS(n,t)}(Dh,e,t,A):_h(Dh,e,t),Gh[e]=t)}function Nh(e,t,A){A!==Gh[t]&&(null==A?e.style.removeProperty(t):e.style.setProperty(t,A+""),Gh[t]=A)}function Uh(e,t){for(var A in t)_h(e,A,t[A])}function _h(e,t,A){null!=A?e.setAttribute(t,A):e.removeAttribute(t)}function Mh(){var e;return"undefined"===typeof window?"":(e=window.location).hash?e.href.slice(0,-e.hash.length):e.href}function Oh(e){JC.call(this,e),this._text=null,this._defs={gradient:{},clipping:{}}}Object(ue.z)(Oh,JC,{svg:function(){return this._text},_render:function(e){var t=Bh();t.open("svg",Object(ue.p)({},PI,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:"0 0 ".concat(this._width," ").concat(this._height)}));var A=this._bgcolor;return A&&"transparent"!==A&&"none"!==A&&t.open("rect",{width:this._width,height:this._height,fill:A}).close(),t.open("g",Qh,{transform:"translate("+this._origin+")"}),this.mark(t,e),t.close(),this.defs(t),this._text=t.close()+"",this},mark:function(e,t){var A=this,n=SC[t.marktype],r=n.tag,i=[Ih,n.attr];e.open("g",{class:TC(t),"clip-path":t.clip?kl(this,t,t.group):null},Ch(t),{"pointer-events":"g"!==r&&!1===t.interactive?"none":null});var o=function(o){var a=A.href(o);if(a&&e.open("a",a),e.open(r,A.attr(t,o,i,"g"!==r?r:null)),"text"===r){var s=dC(o);if(Object(ue.B)(s))for(var g={x:0,dy:fC(o)},c=0;c<s.length;++c)e.open("tspan",c?g:null).text(pC(o,s[c])).close();else e.text(pC(o,s))}else if("g"===r){var u=o.strokeForeground,l=o.fill,I=o.stroke;u&&I&&(o.stroke=null),e.open("path",A.attr(t,o,n.background,"bgrect")).close(),e.open("g",A.attr(t,o,n.content)),mI(o,(function(t){return A.mark(e,t)})),e.close(),u&&I?(l&&(o.fill=null),o.stroke=I,e.open("path",A.attr(t,o,n.foreground,"bgrect")).close(),l&&(o.fill=l)):e.open("path",A.attr(t,o,n.foreground,"bgfore")).close()}e.close(),a&&e.close()};return n.nested?t.items&&t.items.length&&o(t.items[0]):mI(t,o),e.close()},href:function(e){var t,A=this,n=e.href;if(n){if(t=this._hrefs&&this._hrefs[n])return t;this.sanitizeURL(n).then((function(e){e["xlink:href"]=e.href,e.href=null,(A._hrefs||(A._hrefs={}))[n]=e}))}return null},attr:function(e,t,A,n){var r=this,i={},o=function(e,t,A,n){i[n||e]=t};return Array.isArray(A)?A.forEach((function(e){return e(o,t,r)})):A(o,t,this),n&&function(e,t,A,n,r){if(null==t)return e;"bgrect"===n&&!1===A.interactive&&(e["pointer-events"]="none");if("bgfore"===n&&(!1===A.interactive&&(e["pointer-events"]="none"),e.display="none",null!==t.fill))return e;"image"===n&&!1===t.smooth&&(e.style="image-rendering: optimizeSpeed; image-rendering: pixelated;");"text"===n&&(e["font-family"]=EC(t),e["font-size"]=hC(t)+"px",e["font-style"]=t.fontStyle,e["font-variant"]=t.fontVariant,e["font-weight"]=t.fontWeight);for(var i in Eh){var o=t[i],a=Eh[i];("transparent"!==o||"fill"!==a&&"stroke"!==a)&&null!=o&&(Ou(o)&&(o=Lu(o,r.gradient,"")),e[a]=o)}}(i,t,e,n,this._defs),i},defs:function(e){var t=this._defs.gradient,A=this._defs.clipping;if(0!==Object.keys(t).length+Object.keys(A).length){for(var n in e.open("defs"),t){var r=t[n],i=r.stops;"radial"===r.gradient?(e.open("pattern",{id:"p_"+n,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),e.open("rect",{width:"1",height:"1",fill:"url(#"+n+")"}).close(),e.close(),e.open("radialGradient",{id:n,fx:r.x1,fy:r.y1,fr:r.r1,cx:r.x2,cy:r.y2,r:r.r2})):e.open("linearGradient",{id:n,x1:r.x1,x2:r.x2,y1:r.y1,y2:r.y2});for(var o=0;o<i.length;++o)e.open("stop",{offset:i[o].offset,"stop-color":i[o].color}).close();e.close()}for(var a in A){var s=A[a];e.open("clipPath",{id:a}),s.path?e.open("path",{d:s.path}).close():e.open("rect",{x:0,y:0,width:s.width,height:s.height}).close(),e.close()}e.close()}}});var Lh={Canvas:"canvas",PNG:"png",SVG:"svg",None:"none"},Th={};function Zh(e,t){return e=String(e||"").toLowerCase(),arguments.length>1?(Th[e]=t,this):Th[e]}function Hh(e,t,A){var n=[],r=(new xl).union(t),i=e.marktype;return i?Yh(e,r,A,n):"group"===i?Jh(e,r,A,n):Object(ue.o)("Intersect scene must be mark node or group item.")}function Yh(e,t,A,n){if(function(e,t,A){return e.bounds&&t.intersects(e.bounds)&&("group"===e.marktype||!1!==e.interactive&&(!A||A(e)))}(e,t,A)){var r=e.items,i=e.marktype,o=r.length,a=0;if("group"===i)for(;a<o;++a)Jh(r[a],t,A,n);else for(var s=SC[i].isect;a<o;++a){var g=r[a];jh(g,t,s)&&n.push(g)}}return n}function Jh(e,t,A,n){A&&A(e.mark)&&jh(e,t,SC.group.isect)&&n.push(e);var r=e.items,i=r&&r.length;if(i){var o=e.x||0,a=e.y||0;t.translate(-o,-a);for(var s=0;s<i;++s)Yh(r[s],t,A,n);t.translate(o,a)}return n}function jh(e,t,A){var n=e.bounds;return t.encloses(n)||t.intersects(n)&&A(e,t)}Th.canvas=Th.png={renderer:ih,headless:ih,handler:eh},Th.svg={renderer:mh,headless:Oh,handler:ah},Th.none={};var Ph=new xl;function Vh(e){var t=e.clip;if(Object(ue.E)(t))t(nI(Ph.clear()));else{if(!t)return;Ph.set(0,0,e.group.width,e.group.height)}e.bounds.intersect(Ph)}function Kh(e,t,A){return e===t||("path"===A?Wh(e,t):e instanceof Date&&t instanceof Date?+e===+t:Object(ue.G)(e)&&Object(ue.G)(t)?Math.abs(e-t)<=1e-9:e&&t&&(Object(ue.H)(e)||Object(ue.H)(t))?function(e,t){var A,n,r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(r.sort(),i.sort(),n=r.length-1;n>=0;n--)if(r[n]!=i[n])return!1;for(n=r.length-1;n>=0;n--)if(A=r[n],!Kh(e[A],t[A],A))return!1;return typeof e===typeof t}(e,t):e==t)}function Wh(e,t){return Kh(Pu(e),Pu(t))}function Xh(){Gl(),Mu=0}var qh="top",zh="left",$h="right",ef="end",tf="row";function Af(e){at.call(this,null,e)}function nf(e,t,A){return t(e.bounds.clear(),e,A)}Object(ue.z)(Af,at,{transform:function(e,t){var A,n=t.dataflow,r=e.mark,i=r.marktype,o=SC[i],a=o.bound,s=r.bounds;if(o.nested)r.items.length&&n.dirty(r.items[0]),s=nf(r,a),r.items.forEach((function(e){e.bounds.clear().union(s)}));else if("group"===i||e.modified())switch(t.visit(t.MOD,(function(e){return n.dirty(e)})),s.clear(),r.items.forEach((function(e){return s.union(nf(e,a))})),r.role){case"axis":case"legend":case"title":t.reflow()}else A=t.changed(t.REM),t.visit(t.ADD,(function(e){s.union(nf(e,a))})),t.visit(t.MOD,(function(e){A=A||s.alignsWith(e.bounds),n.dirty(e),s.union(nf(e,a))})),A&&(s.clear(),r.items.forEach((function(e){return s.union(e.bounds)})));return Vh(r),t.modifies("bounds")}});function rf(e){at.call(this,0,e)}function of(e){at.call(this,null,e)}function af(e){at.call(this,null,e)}rf.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},Object(ue.z)(rf,at,{transform:function(e,t){var A,n=(A=t.dataflow)._signals[":vega_identifier:"]||(A._signals[":vega_identifier:"]=A.add(0)),r=e.as,i=n.value;return t.visit(t.ADD,(function(e){return e[r]=e[r]||++i})),n.set(this.value=i),t}}),Object(ue.z)(of,at,{transform:function(e,t){var A=this.value;A||((A=t.dataflow.scenegraph().mark(e.markdef,function(e){var t=e.groups,A=e.parent;return t&&1===t.size?t.get(Object.keys(t.object)[0]):t&&A?t.lookup(A):null}(e),e.index)).group.context=e.context,e.context.group||(e.context.group=A.group),A.source=this.source,A.clip=e.clip,A.interactive=e.interactive,this.value=A);var n="group"===A.marktype?Ul:Nl;return t.visit(t.ADD,(function(e){return n.call(e,A)})),(e.modified("clip")||e.modified("interactive"))&&(A.clip=e.clip,A.interactive=!!e.interactive,A.zdirty=!0,t.reflow()),A.items=t.source,t}});var sf={parity:function(e){return e.filter((function(e,t){return t%2?e.opacity=0:1}))},greedy:function(e,t){var A;return e.filter((function(e,n){return n&&gf(A.bounds,e.bounds,t)?e.opacity=0:(A=e,1)}))}},gf=function(e,t,A){return A>Math.max(t.x1-e.x2,e.x1-t.x2,t.y1-e.y2,e.y1-t.y2)},cf=function(e,t){for(var A,n=1,r=e.length,i=e[0].bounds;n<r;i=A,++n)if(gf(i,A=e[n].bounds,t))return!0},uf=function(e){var t=e.bounds;return t.width()>1&&t.height()>1},lf=function(e){return e.forEach((function(e){return e.opacity=1})),e},If=function(e,t){return e.reflow(t.modified()).modifies("opacity")};function Cf(e){at.call(this,null,e)}Object(ue.z)(af,at,{transform:function(e,t){var A,n,r=sf[e.method]||sf.parity,i=e.separation||0,o=t.materialize(t.SOURCE).source;if(o&&o.length){if(!e.method)return e.modified("method")&&(lf(o),t=If(t,e)),t;if((o=o.filter(uf)).length){if(e.sort&&(o=o.slice().sort(e.sort)),A=lf(o),t=If(t,e),A.length>=3&&cf(A,i)){do{A=r(A,i)}while(A.length>=3&&cf(A,i));A.length<3&&!Object(ue.W)(o).opacity&&(A.length>1&&(Object(ue.W)(A).opacity=0),Object(ue.W)(o).opacity=1)}e.boundScale&&e.boundTolerance>=0&&(n=function(e,t,A){var n=e.range(),r=new xl;return t===qh||"bottom"===t?r.set(n[0],-1/0,n[1],1/0):r.set(-1/0,n[0],1/0,n[1]),r.expand(A||1),function(e){return r.encloses(e.bounds)}}(e.boundScale,e.boundOrient,+e.boundTolerance),o.forEach((function(e){n(e)||(e.opacity=0)})));var a=A[0].mark.bounds.clear();return o.forEach((function(e){e.opacity&&a.union(e.bounds)})),t}}}}),Object(ue.z)(Cf,at,{transform:function(e,t){var A=t.dataflow;if(t.visit(t.ALL,(function(e){return A.dirty(e)})),t.fields&&t.fields.zindex){var n=t.source&&t.source[0];n&&(n.mark.zdirty=!0)}}});var hf=new xl;function ff(e,t,A){return e[t]===A?0:(e[t]=A,1)}function df(e){var t=e.items[0].orient;return t===zh||t===$h}function Bf(e,t,A,n){var r,i,o=t.items[0],a=o.datum,s=null!=o.translate?o.translate:.5,g=o.orient,c=function(e){var t=+e.grid;return[e.ticks?t++:-1,e.labels?t++:-1,t+ +e.domain]}(a),u=o.range,l=o.offset,I=o.position,C=o.minExtent,h=o.maxExtent,f=a.title&&o.items[c[2]].items[0],d=o.titlePadding,B=o.bounds,p=f&&BC(f),E=0,Q=0;switch(hf.clear().union(B),B.clear(),(r=c[0])>-1&&B.union(o.items[r].bounds),(r=c[1])>-1&&B.union(o.items[r].bounds),g){case qh:E=I||0,Q=-l,i=Math.max(C,Math.min(h,-B.y1)),B.add(0,-i).add(u,0),f&&pf(e,f,i,d,p,0,-1,B);break;case zh:E=-l,Q=I||0,i=Math.max(C,Math.min(h,-B.x1)),B.add(-i,0).add(0,u),f&&pf(e,f,i,d,p,1,-1,B);break;case $h:E=A+l,Q=I||0,i=Math.max(C,Math.min(h,B.x2)),B.add(0,0).add(i,u),f&&pf(e,f,i,d,p,1,1,B);break;case"bottom":E=I||0,Q=n+l,i=Math.max(C,Math.min(h,B.y2)),B.add(0,0).add(u,i),f&&pf(e,f,i,d,0,0,1,B);break;default:E=o.x,Q=o.y}return Ll(B.translate(E,Q),o),ff(o,"x",E+s)|ff(o,"y",Q+s)&&(o.bounds=hf,e.dirty(o),o.bounds=B,e.dirty(o)),o.mark.bounds.clear().union(B)}function pf(e,t,A,n,r,i,o,a){var s=t.bounds;if(t.auto){var g=o*(A+r+n),c=0,u=0;e.dirty(t),i?c=(t.x||0)-(t.x=g):u=(t.y||0)-(t.y=g),t.mark.bounds.clear().union(s.translate(-c,-u)),e.dirty(t)}a.union(s)}var Ef=function(e,t){return Math.floor(Math.min(e,t))},Qf=function(e,t){return Math.ceil(Math.max(e,t))};function yf(e){return(new xl).set(0,0,e.width||0,e.height||0)}function vf(e){var t=e.bounds.clone();return t.empty()?t.set(0,0,0,0):t.translate(-(e.x||0),-(e.y||0))}function mf(e,t,A){var n=Object(ue.H)(e)?e[t]:e;return null!=n?n:void 0!==A?A:0}function bf(e){return e<0?Math.ceil(-e):0}function wf(e,t,A){var n,r,i,o,a,s,g,c,u,l,I,C=!A.nodirty,h="flush"===A.bounds?yf:vf,f=hf.set(0,0,0,0),d=mf(A.align,"column"),B=mf(A.align,tf),p=mf(A.padding,"column"),E=mf(A.padding,tf),Q=A.columns||t.length,y=Q<=0?1:Math.ceil(t.length/Q),v=t.length,m=Array(v),b=Array(Q),w=0,S=Array(v),F=Array(y),R=0,D=Array(v),G=Array(v),k=Array(v);for(r=0;r<Q;++r)b[r]=0;for(r=0;r<y;++r)F[r]=0;for(r=0;r<v;++r)s=t[r],a=k[r]=h(s),s.x=s.x||0,D[r]=0,s.y=s.y||0,G[r]=0,i=r%Q,o=~~(r/Q),w=Math.max(w,g=Math.ceil(a.x2)),R=Math.max(R,c=Math.ceil(a.y2)),b[i]=Math.max(b[i],g),F[o]=Math.max(F[o],c),m[r]=p+bf(a.x1),S[r]=E+bf(a.y1),C&&e.dirty(t[r]);for(r=0;r<v;++r)r%Q===0&&(m[r]=0),r<Q&&(S[r]=0);if("each"===d)for(i=1;i<Q;++i){for(I=0,r=i;r<v;r+=Q)I<m[r]&&(I=m[r]);for(r=i;r<v;r+=Q)m[r]=I+b[i-1]}else if("all"===d){for(I=0,r=0;r<v;++r)r%Q&&I<m[r]&&(I=m[r]);for(r=0;r<v;++r)r%Q&&(m[r]=I+w)}else for(d=!1,i=1;i<Q;++i)for(r=i;r<v;r+=Q)m[r]+=b[i-1];if("each"===B)for(o=1;o<y;++o){for(I=0,n=(r=o*Q)+Q;r<n;++r)I<S[r]&&(I=S[r]);for(r=o*Q;r<n;++r)S[r]=I+F[o-1]}else if("all"===B){for(I=0,r=Q;r<v;++r)I<S[r]&&(I=S[r]);for(r=Q;r<v;++r)S[r]=I+R}else for(B=!1,o=1;o<y;++o)for(n=(r=o*Q)+Q;r<n;++r)S[r]+=F[o-1];for(u=0,r=0;r<v;++r)u=m[r]+(r%Q?u:0),D[r]+=u-t[r].x;for(i=0;i<Q;++i)for(l=0,r=i;r<v;r+=Q)l+=S[r],G[r]+=l-t[r].y;if(d&&mf(A.center,"column")&&y>1)for(r=0;r<v;++r)(u=(a="all"===d?w:b[r%Q])-k[r].x2-t[r].x-D[r])>0&&(D[r]+=u/2);if(B&&mf(A.center,tf)&&1!==Q)for(r=0;r<v;++r)(l=(a="all"===B?R:F[~~(r/Q)])-k[r].y2-t[r].y-G[r])>0&&(G[r]+=l/2);for(r=0;r<v;++r)f.union(k[r].translate(D[r],G[r]));switch(u=mf(A.anchor,"x"),l=mf(A.anchor,"y"),mf(A.anchor,"column")){case ef:u-=f.width();break;case"middle":u-=f.width()/2}switch(mf(A.anchor,tf)){case ef:l-=f.height();break;case"middle":l-=f.height()/2}for(u=Math.round(u),l=Math.round(l),f.clear(),r=0;r<v;++r)t[r].mark.bounds.clear();for(r=0;r<v;++r)(s=t[r]).x+=D[r]+=u,s.y+=G[r]+=l,f.union(s.mark.bounds.union(s.bounds.translate(D[r],G[r]))),C&&e.dirty(s);return f}function Sf(e,t,A){var n,r,i,o,a,s,g,c=function(e){for(var t,A,n,r,i,o,a,s=e.items,g=s.length,c=0,u={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};c<g;++c)if(a=(o=s[c]).items,"group"===o.marktype)switch(o.role){case"axis":case"legend":case"title":break;case"row-header":(t=u.rowheaders).push.apply(t,Object(zn.a)(a));break;case"row-footer":(A=u.rowfooters).push.apply(A,Object(zn.a)(a));break;case"column-header":(n=u.colheaders).push.apply(n,Object(zn.a)(a));break;case"column-footer":(r=u.colfooters).push.apply(r,Object(zn.a)(a));break;case"row-title":u.rowtitle=a[0];break;case"column-title":u.coltitle=a[0];break;default:(i=u.marks).push.apply(i,Object(zn.a)(a))}return u}(t),u=c.marks,l="flush"===A.bounds?Ff:Rf,I=A.offset,C=A.columns||u.length,h=C<=0?1:Math.ceil(u.length/C),f=h*C,d=wf(e,u,A);d.empty()&&d.set(0,0,0,0),c.rowheaders&&(s=mf(A.headerBand,tf,null),n=Df(e,c.rowheaders,u,C,h,-mf(I,"rowHeader"),Ef,0,l,"x1",0,C,1,s)),c.colheaders&&(s=mf(A.headerBand,"column",null),r=Df(e,c.colheaders,u,C,C,-mf(I,"columnHeader"),Ef,1,l,"y1",0,1,C,s)),c.rowfooters&&(s=mf(A.footerBand,tf,null),i=Df(e,c.rowfooters,u,C,h,mf(I,"rowFooter"),Qf,0,l,"x2",C-1,C,1,s)),c.colfooters&&(s=mf(A.footerBand,"column",null),o=Df(e,c.colfooters,u,C,C,mf(I,"columnFooter"),Qf,1,l,"y2",f-C,1,C,s)),c.rowtitle&&(a=mf(A.titleAnchor,tf),g=mf(I,"rowTitle"),g=a===ef?i+g:n-g,s=mf(A.titleBand,tf,.5),Gf(e,c.rowtitle,g,0,d,s)),c.coltitle&&(a=mf(A.titleAnchor,"column"),g=mf(I,"columnTitle"),g=a===ef?o+g:r-g,s=mf(A.titleBand,"column",.5),Gf(e,c.coltitle,g,1,d,s))}function Ff(e,t){return"x1"===t?e.x||0:"y1"===t?e.y||0:"x2"===t?(e.x||0)+(e.width||0):"y2"===t?(e.y||0)+(e.height||0):void 0}function Rf(e,t){return e.bounds[t]}function Df(e,t,A,n,r,i,o,a,s,g,c,u,l,I){var C,h,f,d,B,p,E,Q,y,v=A.length,m=0,b=0;if(!v)return m;for(C=c;C<v;C+=u)A[C]&&(m=o(m,s(A[C],g)));if(!t.length)return m;for(t.length>r&&(e.warn("Grid headers exceed limit: "+r),t=t.slice(0,r)),m+=i,h=0,d=t.length;h<d;++h)e.dirty(t[h]),t[h].mark.bounds.clear();for(C=c,h=0,d=t.length;h<d;++h,C+=u){for(B=(p=t[h]).mark.bounds,f=C;f>=0&&null==(E=A[f]);f-=l);a?(Q=null==I?E.x:Math.round(E.bounds.x1+I*E.bounds.width()),y=m):(Q=m,y=null==I?E.y:Math.round(E.bounds.y1+I*E.bounds.height())),B.union(p.bounds.translate(Q-(p.x||0),y-(p.y||0))),p.x=Q,p.y=y,e.dirty(p),b=o(b,B[g])}return b}function Gf(e,t,A,n,r,i){if(t){e.dirty(t);var o=A,a=A;n?o=Math.round(r.x1+i*r.width()):a=Math.round(r.y1+i*r.height()),t.bounds.translate(o-(t.x||0),a-(t.y||0)),t.mark.bounds.clear().union(t.bounds),t.x=o,t.y=a,e.dirty(t)}}function kf(e,t,A,n,r,i,o){var a=function(e,t){var A=e[t]||{};return function(t,n){return null!=A[t]?A[t]:null!=e[t]?e[t]:n}}(A,t),s=function(e,t){var A=-1/0;return e.forEach((function(e){null!=e.offset&&(A=Math.max(A,e.offset))})),A>-1/0?A:t}(e,a("offset",0)),g=a("anchor","start"),c=g===ef?1:"middle"===g?.5:0,u={align:"each",bounds:a("bounds","flush"),columns:"vertical"===a("direction")?1:e.length,padding:a("margin",8),center:a("center"),nodirty:!0};switch(t){case zh:u.anchor={x:Math.floor(n.x1)-s,column:ef,y:c*(o||n.height()+2*n.y1),row:g};break;case $h:u.anchor={x:Math.ceil(n.x2)+s,y:c*(o||n.height()+2*n.y1),row:g};break;case qh:u.anchor={y:Math.floor(r.y1)-s,row:ef,x:c*(i||r.width()+2*r.x1),column:g};break;case"bottom":u.anchor={y:Math.ceil(r.y2)+s,x:c*(i||r.width()+2*r.x1),column:g};break;case"top-left":u.anchor={x:s,y:s};break;case"top-right":u.anchor={x:i-s,y:s,column:ef};break;case"bottom-left":u.anchor={x:s,y:o-s,row:ef};break;case"bottom-right":u.anchor={x:i-s,y:o-s,column:ef,row:ef}}return u}function xf(e,t){var A,n,r=t.items[0],i=r.datum,o=r.orient,a=r.bounds,s=r.x,g=r.y;return r._bounds?r._bounds.clear().union(a):r._bounds=a.clone(),a.clear(),function(e,t,A){var n=t.padding,r=n-A.x,i=n-A.y;if(t.datum.title){var o=t.items[1].items[0],a=o.anchor,s=t.titlePadding||0,g=n-o.x,c=n-o.y;switch(o.orient){case zh:r+=Math.ceil(o.bounds.width())+s;break;case $h:case"bottom":break;default:i+=o.bounds.height()+s}switch((r||i)&&Uf(e,A,r,i),o.orient){case zh:c+=Nf(t,A,o,a,1,1);break;case $h:g+=Nf(t,A,o,ef,0,0)+s,c+=Nf(t,A,o,a,1,1);break;case"bottom":g+=Nf(t,A,o,a,0,0),c+=Nf(t,A,o,ef,-1,0,1)+s;break;default:g+=Nf(t,A,o,a,0,0)}(g||c)&&Uf(e,o,g,c),(g=Math.round(o.bounds.x1-n))<0&&(Uf(e,A,-g,0),Uf(e,o,-g,0))}else(r||i)&&Uf(e,A,r,i)}(e,r,r.items[0].items[0]),a=function(e,t){return e.items.forEach((function(e){return t.union(e.bounds)})),t.x1=e.padding,t.y1=e.padding,t}(r,a),A=2*r.padding,n=2*r.padding,a.empty()||(A=Math.ceil(a.width()+A),n=Math.ceil(a.height()+n)),"symbol"===i.type&&function(e){var t=e.reduce((function(e,t){return e[t.column]=Math.max(t.bounds.x2-t.x,e[t.column]||0),e}),{});e.forEach((function(e){e.width=t[e.column],e.height=e.bounds.y2-e.y}))}(r.items[0].items[0].items[0].items),"none"!==o&&(r.x=s=0,r.y=g=0),r.width=A,r.height=n,Ll(a.set(s,g,s+A,g+n),r),r.mark.bounds.clear().union(a),r}function Nf(e,t,A,n,r,i,o){var a="symbol"!==e.datum.type,s=A.datum.vgrad,g=(!a||!i&&s||o?t:t.items[0]).bounds[r?"y2":"x2"]-e.padding,c=s&&i?g:0,u=s&&i?0:g,l=r<=0?0:BC(A);return Math.round("start"===n?c:n===ef?u-l:.5*(g-l))}function Uf(e,t,A,n){t.x+=A,t.y+=n,t.bounds.translate(A,n),t.mark.bounds.translate(A,n),e.dirty(t)}function _f(e){at.call(this,null,e)}Object(ue.z)(_f,at,{transform:function(e,t){var A,n=t.dataflow;return e.mark.items.forEach((function(t){e.layout&&Sf(n,t,e.layout),function(e,t,A){var n,r,i,o,a,s=t.items,g=Math.max(0,t.width||0),c=Math.max(0,t.height||0),u=(new xl).set(0,0,g,c),l=u.clone(),I=u.clone(),C=[];for(o=0,a=s.length;o<a;++o)switch((r=s[o]).role){case"axis":(df(r)?l:I).union(Bf(e,r,g,c));break;case"title":n=r;break;case"legend":C.push(xf(e,r));break;case"frame":case"scope":case"row-header":case"row-footer":case"row-title":case"column-header":case"column-footer":case"column-title":l.union(r.bounds),I.union(r.bounds);break;default:u.union(r.bounds)}if(C.length){var h={};for(var f in C.forEach((function(e){"none"!==(i=e.orient||$h)&&(h[i]||(h[i]=[])).push(e)})),h){var d=h[f];wf(e,d,kf(d,f,A.legends,l,I,g,c))}C.forEach((function(t){var n=t.bounds;if(n.equals(t._bounds)||(t.bounds=t._bounds,e.dirty(t),t.bounds=n,e.dirty(t)),A.autosize&&"fit"===A.autosize.type)switch(t.orient){case zh:case $h:u.add(n.x1,0).add(n.x2,0);break;case qh:case"bottom":u.add(0,n.y1).add(0,n.y2)}else u.union(n)}))}u.union(l).union(I),n&&u.union(function(e,t,A,n,r){var i,o=t.items[0],a=o.frame,s=o.orient,g=o.anchor,c=o.offset,u=o.padding,l=o.items[0].items[0],I=o.items[1]&&o.items[1].items[0],C=s===zh||s===$h?n:A,h=0,f=0,d=0,B=0,p=0;if("group"!==a?s===zh?(h=r.y2,C=r.y1):s===$h?(h=r.y1,C=r.y2):(h=r.x1,C=r.x2):s===zh&&(h=n,C=0),i="start"===g?h:g===ef?C:(h+C)/2,I&&I.text){switch(s){case qh:case"bottom":p=l.bounds.height()+u;break;case zh:B=l.bounds.width()+u;break;case $h:B=-l.bounds.width()-u}hf.clear().union(I.bounds),hf.translate(B-(I.x||0),p-(I.y||0)),ff(I,"x",B)|ff(I,"y",p)&&(e.dirty(I),I.bounds.clear().union(hf),I.mark.bounds.clear().union(hf),e.dirty(I)),hf.clear().union(I.bounds)}else hf.clear();switch(hf.union(l.bounds),s){case qh:f=i,d=r.y1-hf.height()-c;break;case zh:f=r.x1-hf.width()-c,d=i;break;case $h:f=r.x2+hf.width()+c,d=i;break;case"bottom":f=i,d=r.y2+c;break;default:f=o.x,d=o.y}return ff(o,"x",f)|ff(o,"y",d)&&(hf.translate(f,d),e.dirty(o),o.bounds.clear().union(hf),t.bounds.clear().union(hf),e.dirty(o)),o.bounds}(e,n,g,c,u));t.clip&&u.set(0,0,t.width||0,t.height||0);!function(e,t,A,n){var r=n.autosize||{},i=r.type;if(e._autosize<1||!i)return;var o=e._width,a=e._height,s=Math.max(0,t.width||0),g=Math.max(0,Math.ceil(-A.x1)),c=Math.max(0,t.height||0),u=Math.max(0,Math.ceil(-A.y1)),l=Math.max(0,Math.ceil(A.x2-s)),I=Math.max(0,Math.ceil(A.y2-c));if("padding"===r.contains){var C=e.padding();o-=C.left+C.right,a-=C.top+C.bottom}"none"===i?(g=0,u=0,s=o,c=a):"fit"===i?(s=Math.max(0,o-g-l),c=Math.max(0,a-u-I)):"fit-x"===i?(s=Math.max(0,o-g-l),a=c+u+I):"fit-y"===i?(o=s+g+l,c=Math.max(0,a-u-I)):"pad"===i&&(o=s+g+l,a=c+u+I);e._resizeView(o,a,s,c,[g,u],r.resize)}(e,t,u,A)}(n,t,e)})),(A=e.mark.group)&&"legend-entry"!==A.mark.role?t.reflow():t}});var Mf=function(e,t,A){e=+e,t=+t,A=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+A;for(var n=-1,r=0|Math.max(0,Math.ceil((t-e)/A)),i=new Array(r);++n<r;)i[n]=e+n*A;return i},Of=function(e,t){return e=+e,t=+t,function(A){return Math.round(e*(1-A)+t*A)}};function Lf(e,t,A,n,r){var i=e*e,o=i*e;return((1-3*e+3*i-o)*t+(4-6*i+3*o)*A+(1+3*e+3*i-3*o)*n+o*r)/6}var Tf=function(e){return function(){return e}};function Zf(e,t){return function(A){return e+A*t}}function Hf(e){return 1===(e=+e)?Yf:function(t,A){return A-t?function(e,t,A){return e=Math.pow(e,A),t=Math.pow(t,A)-e,A=1/A,function(n){return Math.pow(e+n*t,A)}}(t,A,e):Tf(isNaN(t)?A:t)}}function Yf(e,t){var A=t-e;return A?Zf(e,A):Tf(isNaN(e)?t:e)}var Jf=function e(t){var A=Hf(t);function n(e,t){var n=A((e=lo(e)).r,(t=lo(t)).r),r=A(e.g,t.g),i=A(e.b,t.b),o=Yf(e.opacity,t.opacity);return function(t){return e.r=n(t),e.g=r(t),e.b=i(t),e.opacity=o(t),e+""}}return n.gamma=e,n}(1);function jf(e){return function(t){var A,n,r=t.length,i=new Array(r),o=new Array(r),a=new Array(r);for(A=0;A<r;++A)n=lo(t[A]),i[A]=n.r||0,o[A]=n.g||0,a[A]=n.b||0;return i=e(i),o=e(o),a=e(a),n.opacity=1,function(e){return n.r=i(e),n.g=o(e),n.b=a(e),n+""}}}jf((function(e){var t=e.length-1;return function(A){var n=A<=0?A=0:A>=1?(A=1,t-1):Math.floor(A*t),r=e[n],i=e[n+1],o=n>0?e[n-1]:2*r-i,a=n<t-1?e[n+2]:2*i-r;return Lf((A-n/t)*t,o,r,i,a)}})),jf((function(e){var t=e.length;return function(A){var n=Math.floor(((A%=1)<0?++A:A)*t),r=e[(n+t-1)%t],i=e[n%t],o=e[(n+1)%t],a=e[(n+2)%t];return Lf((A-n/t)*t,r,i,o,a)}}));var Pf=function(e,t){t||(t=[]);var A,n=e?Math.min(t.length,e.length):0,r=t.slice();return function(i){for(A=0;A<n;++A)r[A]=e[A]*(1-i)+t[A]*i;return r}};function Vf(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Kf(e,t){var A,n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),o=new Array(n);for(A=0;A<r;++A)i[A]=td(e[A],t[A]);for(;A<n;++A)o[A]=t[A];return function(e){for(A=0;A<r;++A)o[A]=i[A](e);return o}}var Wf=function(e,t){var A=new Date;return e=+e,t=+t,function(n){return A.setTime(e*(1-n)+t*n),A}},Xf=function(e,t){return e=+e,t=+t,function(A){return e*(1-A)+t*A}},qf=function(e,t){var A,n={},r={};for(A in null!==e&&"object"===typeof e||(e={}),null!==t&&"object"===typeof t||(t={}),t)A in e?n[A]=td(e[A],t[A]):r[A]=t[A];return function(e){for(A in n)r[A]=n[A](e);return r}},zf=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,$f=new RegExp(zf.source,"g");var ed=function(e,t){var A,n,r,i=zf.lastIndex=$f.lastIndex=0,o=-1,a=[],s=[];for(e+="",t+="";(A=zf.exec(e))&&(n=$f.exec(t));)(r=n.index)>i&&(r=t.slice(i,r),a[o]?a[o]+=r:a[++o]=r),(A=A[0])===(n=n[0])?a[o]?a[o]+=n:a[++o]=n:(a[++o]=null,s.push({i:o,x:Xf(A,n)})),i=$f.lastIndex;return i<t.length&&(r=t.slice(i),a[o]?a[o]+=r:a[++o]=r),a.length<2?s[0]?function(e){return function(t){return e(t)+""}}(s[0].x):function(e){return function(){return e}}(t):(t=s.length,function(e){for(var A,n=0;n<t;++n)a[(A=s[n]).i]=A.x(e);return a.join("")})},td=function(e,t){var A,n=typeof t;return null==t||"boolean"===n?Tf(t):("number"===n?Xf:"string"===n?(A=so(t))?(t=A,Jf):ed:t instanceof so?Jf:t instanceof Date?Wf:Vf(t)?Pf:Array.isArray(t)?Kf:"function"!==typeof t.valueOf&&"function"!==typeof t.toString||isNaN(t)?qf:Xf)(e,t)};function Ad(e){at.call(this,null,e)}function nd(e){at.call(this,null,e)}function rd(){return be({})}function id(e){at.call(this,null,e)}function od(e){at.call(this,[],e)}Object(ue.z)(Ad,at,{transform:function(e,t){if(this.value&&!e.modified())return t.StopPropagation;var A=t.dataflow.locale(),n=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=this.value,i=e.scale,o=Qu(i,null==e.count?e.values?e.values.length:10:e.count,e.minstep),a=e.format||mu(A,i,o,e.formatSpecifier,e.formatType,!!e.values),s=e.values?yu(i,e.values,o):vu(i,o);return r&&(n.rem=r),r=s.map((function(e,t){return be({index:t/(s.length-1||1),value:e,label:a(e)})})),e.extra&&r.length&&r.push(be({index:-1,extra:{value:r[0].value},label:""})),n.source=r,n.add=r,this.value=r,n}}),Object(ue.z)(nd,at,{transform:function(e,t){var A=t.dataflow,n=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.item||rd,i=e.key||ve,o=this.value;return Object(ue.B)(n.encode)&&(n.encode=null),o&&(e.modified("key")||t.modified(i))&&Object(ue.o)("DataJoin does not support modified key function or fields."),o||(t=t.addAll(),this.value=o=function(e){var t=Object(ue.t)().test((function(e){return e.exit}));return t.lookup=function(A){return t.get(e(A))},t}(i)),t.visit(t.ADD,(function(e){var t=i(e),A=o.get(t);A?A.exit?(o.empty--,n.add.push(A)):n.mod.push(A):(A=r(e),o.set(t,A),n.add.push(A)),A.datum=e,A.exit=!1})),t.visit(t.MOD,(function(e){var t=i(e),A=o.get(t);A&&(A.datum=e,n.mod.push(A))})),t.visit(t.REM,(function(e){var t=i(e),A=o.get(t);e!==A.datum||A.exit||(n.rem.push(A),A.exit=!0,++o.empty)})),t.changed(t.ADD_MOD)&&n.modifies("datum"),(t.clean()||e.clean&&o.empty>A.cleanThreshold)&&A.runAfter(o.clean),n}}),Object(ue.z)(id,at,{transform:function(e,t){var A=t.fork(t.ADD_REM),n=e.mod||!1,r=e.encoders,i=t.encode;if(Object(ue.B)(i)){if(!A.changed()&&!i.every((function(e){return r[e]})))return t.StopPropagation;i=i[0],A.encode=null}var o="enter"===i,a=r.update||ue.s,s=r.enter||ue.s,g=r.exit||ue.s,c=(i&&!o?r[i]:a)||ue.s;if(t.changed(t.ADD)&&(t.visit(t.ADD,(function(t){s(t,e),a(t,e)})),A.modifies(s.output),A.modifies(a.output),c!==ue.s&&c!==a&&(t.visit(t.ADD,(function(t){c(t,e)})),A.modifies(c.output))),t.changed(t.REM)&&g!==ue.s&&(t.visit(t.REM,(function(t){g(t,e)})),A.modifies(g.output)),o||c!==ue.s){var u=t.MOD|(e.modified()?t.REFLOW:0);o?(t.visit(u,(function(t){var r=s(t,e)||n;(c(t,e)||r)&&A.mod.push(t)})),A.mod.length&&A.modifies(s.output)):t.visit(u,(function(t){(c(t,e)||n)&&A.mod.push(t)})),A.mod.length&&A.modifies(c.output)}return A.changed()?A:t.StopPropagation}}),Object(ue.z)(od,at,{transform:function(e,t){if(null!=this.value&&!e.modified())return t.StopPropagation;var A,n,r,i,o,a=t.dataflow.locale(),s=t.fork(t.NO_SOURCE|t.NO_FIELDS),g=this.value,c=e.type||"symbol",u=e.scale,l=+e.limit,I=Qu(u,null==e.count?5:e.count,e.minstep),C=!!e.values||"symbol"===c,h=e.format||Ru(a,u,I,c,e.formatSpecifier,e.formatType,C),f=e.values||Fu(u,I);return g&&(s.rem=g),"symbol"===c?(l&&f.length>l?(t.dataflow.warn("Symbol legend count exceeds limit, filtering items."),g=f.slice(0,l-1),o=!0):g=f,Object(ue.E)(r=e.size)?(e.values||0!==u(g[0])||(g=g.slice(1)),i=g.reduce((function(t,A){return Math.max(t,r(A,e))}),0)):r=Object(ue.m)(i=r||8),g=g.map((function(t,A){return be({index:A,label:h(t,A,g),value:t,offset:i,size:r(t,e)})})),o&&(o=f[g.length],g.push(be({index:g.length,label:"\u2026".concat(f.length-g.length," entries"),value:o,offset:i,size:r(o,e)})))):"gradient"===c?(A=u.domain(),n=lu(u,A[0],Object(ue.W)(A)),f.length<3&&!e.values&&A[0]!==Object(ue.W)(A)&&(f=[A[0],Object(ue.W)(A)]),g=f.map((function(e,t){return be({index:t,label:h(e,t,f),value:e,perc:n(e)})}))):(r=f.length-1,n=function(e){var t=e.domain(),A=t.length-1,n=+t[0],r=+Object(ue.W)(t),i=r-n;if("threshold"===e.type){var o=A?i/A:.1;i=(r+=o)-(n-=o)}return function(e){return(e-n)/i}}(u),g=f.map((function(e,t){return be({index:t,label:h(e,t,f),value:e,perc:t?n(e):0,perc2:t===r?1:n(f[t+1])})}))),s.source=g,s.add=g,this.value=g,s}});var ad=function(e){return e.source.x},sd=function(e){return e.source.y},gd=function(e){return e.target.x},cd=function(e){return e.target.y};function ud(e){at.call(this,{},e)}ud.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},Object(ue.z)(ud,at,{transform:function(e,t){var A=e.sourceX||ad,n=e.sourceY||sd,r=e.targetX||gd,i=e.targetY||cd,o=e.as||"path",a=e.orient||"vertical",s=e.shape||"line",g=hd.get(s+"-"+a)||hd.get(s);return g||Object(ue.o)("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,(function(e){e[o]=g(A(e),n(e),r(e),i(e))})),t.reflow(e.modified()).modifies(o)}});var ld=function(e,t,A,n){return"M"+e+","+t+"L"+A+","+n},Id=function(e,t,A,n){var r=A-e,i=n-t,o=Math.sqrt(r*r+i*i)/2;return"M"+e+","+t+"A"+o+","+o+" "+180*Math.atan2(i,r)/Math.PI+" 0 1 "+A+","+n},Cd=function(e,t,A,n){var r=A-e,i=n-t,o=.2*(r+i),a=.2*(i-r);return"M"+e+","+t+"C"+(e+o)+","+(t+a)+" "+(A+a)+","+(n-o)+" "+A+","+n},hd=Object(ue.t)({line:ld,"line-radial":function(e,t,A,n){return ld(t*Math.cos(e),t*Math.sin(e),n*Math.cos(A),n*Math.sin(A))},arc:Id,"arc-radial":function(e,t,A,n){return Id(t*Math.cos(e),t*Math.sin(e),n*Math.cos(A),n*Math.sin(A))},curve:Cd,"curve-radial":function(e,t,A,n){return Cd(t*Math.cos(e),t*Math.sin(e),n*Math.cos(A),n*Math.sin(A))},"orthogonal-horizontal":function(e,t,A,n){return"M"+e+","+t+"V"+n+"H"+A},"orthogonal-vertical":function(e,t,A,n){return"M"+e+","+t+"H"+A+"V"+n},"orthogonal-radial":function(e,t,A,n){var r=Math.cos(e),i=Math.sin(e),o=Math.cos(A),a=Math.sin(A);return"M"+t*r+","+t*i+"A"+t+","+t+" 0 0,"+((Math.abs(A-e)>Math.PI?A<=e:A>e)?1:0)+" "+t*o+","+t*a+"L"+n*o+","+n*a},"diagonal-horizontal":function(e,t,A,n){var r=(e+A)/2;return"M"+e+","+t+"C"+r+","+t+" "+r+","+n+" "+A+","+n},"diagonal-vertical":function(e,t,A,n){var r=(t+n)/2;return"M"+e+","+t+"C"+e+","+r+" "+A+","+r+" "+A+","+n},"diagonal-radial":function(e,t,A,n){var r=Math.cos(e),i=Math.sin(e),o=Math.cos(A),a=Math.sin(A),s=(t+n)/2;return"M"+t*r+","+t*i+"C"+s*r+","+s*i+" "+s*o+","+s*a+" "+n*o+","+n*a}});function fd(e){at.call(this,null,e)}fd.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},Object(ue.z)(fd,at,{transform:function(e,t){var A,n,r,i=e.as||["startAngle","endAngle"],o=i[0],a=i[1],s=e.field||ue.Q,g=e.startAngle||0,c=null!=e.endAngle?e.endAngle:2*Math.PI,u=t.source,l=u.map(s),I=l.length,C=g,h=(c-g)/function(e,t){var A=0;if(void 0===t){var n,r=Object(ut.a)(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;(i=+i)&&(A+=i)}}catch(c){r.e(c)}finally{r.f()}}else{var o,a=-1,s=Object(ut.a)(e);try{for(s.s();!(o=s.n()).done;){var g=o.value;(g=+t(g,++a,e))&&(A+=g)}}catch(c){s.e(c)}finally{s.f()}}return A}(l),f=Mf(I);for(e.sort&&f.sort((function(e,t){return l[e]-l[t]})),A=0;A<I;++A)r=l[f[A]],(n=u[f[A]])[o]=C,n[a]=C+=r*h;return this.value=l,t.reflow(e.modified()).modifies(i)}});function dd(e){return Au(e)&&"sequential"!==e}var Bd=Object(ue.fb)(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function pd(e){at.call(this,null,e),this.modified(!0)}function Ed(e,t,A){iu(e)&&(Math.abs(t.reduce((function(e,t){return e+(t<0?-1:t>0?1:0)}),0))!==t.length&&A.warn("Log scale domain includes zero: "+Object(ue.bb)(t)));return t}function Qd(e,t,A){return Object(ue.E)(e)&&(t||A)?gu(e,yd(t||[0,1],A)):e}function yd(e,t){return t?e.slice().reverse():e}function vd(e){at.call(this,null,e)}Object(ue.z)(pd,at,{transform:function(e,t){var A=t.dataflow,n=this.value,r=function(e){var t,A=e.type,n="";if("sequential"===A)return"sequential-linear";(function(e){var t=e.type;return Au(t)&&t!==Jc&&t!==jc&&(e.scheme||e.range&&e.range.length&&e.range.every(ue.J))})(e)&&(t=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(null!=e.domainMid):0,n=2===t?"sequential-":3===t?"diverging-":"");return(n+A||"linear").toLowerCase()}(e);for(r in n&&r===n.type||(this.value=n=$c(r)()),e)if(!Bd[r]){if("padding"===r&&dd(n.type))continue;Object(ue.E)(n[r])?n[r](e[r]):A.warn("Unsupported scale property: "+r)}return function(e,t,A){var n=e.type,r=t.round||!1,i=t.range;if(null!=t.rangeStep)i=function(e,t,A){"band"!==e&&"point"!==e&&Object(ue.o)("Only band and point scales support rangeStep.");var n=(null!=t.paddingOuter?t.paddingOuter:t.padding)||0,r="point"===e?1:(null!=t.paddingInner?t.paddingInner:t.padding)||0;return[0,t.rangeStep*Hc(A,r,n)]}(n,t,A);else if(t.scheme&&(i=function(e,t,A){var n,r,i=t.schemeExtent;Object(ue.B)(t.scheme)?r=cu(t.scheme,t.interpolate,t.interpolateGamma):(n=t.scheme.toLowerCase(),(r=du(n))||Object(ue.o)("Unrecognized scheme name: ".concat(t.scheme)));return A="threshold"===e?A+1:"bin-ordinal"===e?A-1:"quantile"===e||"quantize"===e?+t.schemeCount||5:A,ou(e)?Qd(r,i,t.reverse):Object(ue.E)(r)?uu(Qd(r,i),A):"ordinal"===e?r:r.slice(0,A)}(n,t,A),Object(ue.E)(i))){if(e.interpolator)return e.interpolator(i);Object(ue.o)("Scale type ".concat(n," does not support interpolating color schemes."))}if(i&&ou(n))return e.interpolator(cu(yd(i,t.reverse),t.interpolate,t.interpolateGamma));i&&t.interpolate&&e.interpolate?e.interpolate(Iu(t.interpolate,t.interpolateGamma)):Object(ue.E)(e.round)?e.round(r):Object(ue.E)(e.rangeRound)&&e.interpolate(r?Of:td);i&&e.range(yd(i,t.reverse))}(n,e,function(e,t,A){var n=t.bins;if(n&&!Object(ue.B)(n)){var r=e.domain(),i=r[0],o=Object(ue.W)(r),a=n.step,s=null==n.start?i:n.start,g=null==n.stop?o:n.stop;a||Object(ue.o)("Scale bins parameter missing step property."),s<i&&(s=a*Math.ceil(i/a)),g>o&&(g=a*Math.floor(o/a)),n=Mf(s,g+a/2,a)}n?e.bins=n:e.bins&&delete e.bins;"bin-ordinal"===e.type&&(n?t.domain||t.domainRaw||(e.domain(n),A=n.length):e.bins=e.domain());return A}(n,e,function(e,t,A){var n=function(e,t,A){return t?(e.domain(Ed(e.type,t,A)),t.length):-1}(e,t.domainRaw,A);if(n>-1)return n;var r,i,o=t.domain,a=e.type,s=t.zero||void 0===t.zero&&function(e){var t=e.type;return!e.bins&&("linear"===t||"pow"===t||"sqrt"===t)}(e);if(!o)return 0;dd(a)&&t.padding&&o[0]!==Object(ue.W)(o)&&(o=function(e,t,A,n,r,i){var o=Math.abs(Object(ue.W)(A)-A[0]),a=o/(o-2*n),s=e===Yc?Object(ue.ob)(t,null,a):"sqrt"===e?Object(ue.pb)(t,null,a,.5):"pow"===e?Object(ue.pb)(t,null,a,r||1):"symlog"===e?Object(ue.qb)(t,null,a,i||1):Object(ue.nb)(t,null,a);return(t=t.slice())[0]=s[0],t[t.length-1]=s[1],t}(a,o,t.range,t.padding,t.exponent,t.constant));if((s||null!=t.domainMin||null!=t.domainMax||null!=t.domainMid)&&(r=(o=o.slice()).length-1||1,s&&(o[0]>0&&(o[0]=0),o[r]<0&&(o[r]=0)),null!=t.domainMin&&(o[0]=t.domainMin),null!=t.domainMax&&(o[r]=t.domainMax),null!=t.domainMid)){var g=(i=t.domainMid)>o[r]?r+1:i<o[0]?0:r;g!==r&&A.warn("Scale domainMid exceeds domain min or max.",i),o.splice(g,0,i)}e.domain(Ed(a,o,A)),"ordinal"===a&&e.unknown(t.domainImplicit?vi:void 0);t.nice&&e.nice&&e.nice(!0!==t.nice&&Qu(e,t.nice)||null);return o.length}(n,e,A))),t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),Object(ue.z)(vd,at,{transform:function(e,t){var A=e.modified("sort")||t.changed(t.ADD)||t.modified(e.sort.fields)||t.modified("datum");return A&&t.source.sort(Re(e.sort)),this.modified(A),t}});var md=["y0","y1"];function bd(e){at.call(this,null,e)}function wd(e,t,A,n,r){for(var i,o=(t-e.sum)/2,a=e.length,s=0;s<a;++s)(i=e[s])[n]=o,i[r]=o+=Math.abs(A(i))}function Sd(e,t,A,n,r){for(var i,o=1/e.sum,a=0,s=e.length,g=0,c=0;g<s;++g)(i=e[g])[n]=a,i[r]=a=o*(c+=Math.abs(A(i)))}function Fd(e,t,A,n,r){for(var i,o,a=0,s=0,g=e.length,c=0;c<g;++c)(i=+A(o=e[c]))<0?(o[n]=s,o[r]=s+=i):(o[n]=a,o[r]=a+=i)}bd.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:"zero",values:["zero","center","normalize"]},{name:"as",type:"string",array:!0,length:2,default:md}]},Object(ue.z)(bd,at,{transform:function(e,t){var A,n,r,i,o=e.as||md,a=o[0],s=o[1],g=Re(e.sort),c=e.field||ue.Q,u="center"===e.offset?wd:"normalize"===e.offset?Sd:Fd;for(A=function(e,t,A,n){var r,i,o,a,s,g,c,u,l,I=[],C=function(e){return e(s)};if(null==t)I.push(e.slice());else for(r={},i=0,o=e.length;i<o;++i)s=e[i],g=t.map(C),(c=r[g])||(r[g]=c=[],I.push(c)),c.push(s);for(g=0,l=0,a=I.length;g<a;++g){for(c=I[g],i=0,u=0,o=c.length;i<o;++i)u+=Math.abs(n(c[i]));c.sum=u,u>l&&(l=u),A&&c.sort(A)}return I.max=l,I}(t.source,e.groupby,g,c),n=0,r=A.length,i=A.max;n<r;++n)u(A[n],i,c,a,s);return t.reflow(e.modified()).modifies(o)}});var Rd=Math.sqrt(50),Dd=Math.sqrt(10),Gd=Math.sqrt(2);var kd=function(e,t,A){e=+e,t=+t,A=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+A;for(var n=-1,r=0|Math.max(0,Math.ceil((t-e)/A)),i=new Array(r);++n<r;)i[n]=e+n*A;return i};function xd(e,t){var A;if(void 0===t){var n,r=Object(ut.a)(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;null!=i&&(A<i||void 0===A&&i>=i)&&(A=i)}}catch(c){r.e(c)}finally{r.f()}}else{var o,a=-1,s=Object(ut.a)(e);try{for(s.s();!(o=s.n()).done;){var g=o.value;null!=(g=t(g,++a,e))&&(A<g||void 0===A&&g>=g)&&(A=g)}}catch(c){s.e(c)}finally{s.f()}}return A}var Nd=function(e){return e};function Ud(e,t){e&&Md.hasOwnProperty(e.type)&&Md[e.type](e,t)}var _d={Feature:function(e,t){Ud(e.geometry,t)},FeatureCollection:function(e,t){for(var A=e.features,n=-1,r=A.length;++n<r;)Ud(A[n].geometry,t)}},Md={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)e=A[n],t.point(e[0],e[1],e[2])},LineString:function(e,t){Od(e.coordinates,t,0)},MultiLineString:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)Od(A[n],t,0)},Polygon:function(e,t){Ld(e.coordinates,t)},MultiPolygon:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)Ld(A[n],t)},GeometryCollection:function(e,t){for(var A=e.geometries,n=-1,r=A.length;++n<r;)Ud(A[n],t)}};function Od(e,t,A){var n,r=-1,i=e.length-A;for(t.lineStart();++r<i;)n=e[r],t.point(n[0],n[1],n[2]);t.lineEnd()}function Ld(e,t){var A=-1,n=e.length;for(t.polygonStart();++A<n;)Od(e[A],t,1);t.polygonEnd()}var Td=function(e,t){e&&_d.hasOwnProperty(e.type)?_d[e.type](e,t):Ud(e,t)},Zd=function(){function e(){Object(y.a)(this,e),this._partials=new Float64Array(32),this._n=0}return Object(v.a)(e,[{key:"add",value:function(e){for(var t=this._partials,A=0,n=0;n<this._n&&n<32;n++){var r=t[n],i=e+r,o=Math.abs(e)<Math.abs(r)?e-(i-r):r-(i-e);o&&(t[A++]=o),e=i}return t[A]=e,this._n=A+1,this}},{key:"valueOf",value:function(){var e,t,A,n=this._partials,r=this._n,i=0;if(r>0){for(i=n[--r];r>0&&(e=i,!(A=(t=n[--r])-((i=e+t)-e))););r>0&&(A<0&&n[r-1]<0||A>0&&n[r-1]>0)&&(t=2*A)==(e=i+t)-i&&(i=e)}return i}}]),e}();var Hd=Math.PI,Yd=Hd/2,Jd=Hd/4,jd=2*Hd,Pd=180/Hd,Vd=Hd/180,Kd=Math.abs,Wd=Math.atan,Xd=Math.atan2,qd=Math.cos,zd=(Math.ceil,Math.exp),$d=(Math.floor,Math.hypot,Math.log),eB=Math.pow,tB=Math.sin,AB=Math.sign||function(e){return e>0?1:e<0?-1:0},nB=Math.sqrt,rB=Math.tan;function iB(e){return e>1?0:e<-1?Hd:Math.acos(e)}function oB(e){return e>1?Yd:e<-1?-Yd:Math.asin(e)}function aB(){}var sB,gB,cB,uB,lB=new Zd,IB=new Zd,CB={point:aB,lineStart:aB,lineEnd:aB,polygonStart:function(){CB.lineStart=hB,CB.lineEnd=BB},polygonEnd:function(){CB.lineStart=CB.lineEnd=CB.point=aB,lB.add(Kd(IB)),IB=new Zd},result:function(){var e=lB/2;return lB=new Zd,e}};function hB(){CB.point=fB}function fB(e,t){CB.point=dB,sB=cB=e,gB=uB=t}function dB(e,t){IB.add(uB*e-cB*t),cB=e,uB=t}function BB(){dB(sB,gB)}var pB=CB,EB=1/0,QB=EB,yB=-EB,vB=yB;var mB,bB,wB,SB,FB={point:function(e,t){e<EB&&(EB=e);e>yB&&(yB=e);t<QB&&(QB=t);t>vB&&(vB=t)},lineStart:aB,lineEnd:aB,polygonStart:aB,polygonEnd:aB,result:function(){var e=[[EB,QB],[yB,vB]];return yB=vB=-(QB=EB=1/0),e}},RB=0,DB=0,GB=0,kB=0,xB=0,NB=0,UB=0,_B=0,MB=0,OB={point:LB,lineStart:TB,lineEnd:YB,polygonStart:function(){OB.lineStart=JB,OB.lineEnd=jB},polygonEnd:function(){OB.point=LB,OB.lineStart=TB,OB.lineEnd=YB},result:function(){var e=MB?[UB/MB,_B/MB]:NB?[kB/NB,xB/NB]:GB?[RB/GB,DB/GB]:[NaN,NaN];return RB=DB=GB=kB=xB=NB=UB=_B=MB=0,e}};function LB(e,t){RB+=e,DB+=t,++GB}function TB(){OB.point=ZB}function ZB(e,t){OB.point=HB,LB(wB=e,SB=t)}function HB(e,t){var A=e-wB,n=t-SB,r=nB(A*A+n*n);kB+=r*(wB+e)/2,xB+=r*(SB+t)/2,NB+=r,LB(wB=e,SB=t)}function YB(){OB.point=LB}function JB(){OB.point=PB}function jB(){VB(mB,bB)}function PB(e,t){OB.point=VB,LB(mB=wB=e,bB=SB=t)}function VB(e,t){var A=e-wB,n=t-SB,r=nB(A*A+n*n);kB+=r*(wB+e)/2,xB+=r*(SB+t)/2,NB+=r,UB+=(r=SB*e-wB*t)*(wB+e),_B+=r*(SB+t),MB+=3*r,LB(wB=e,SB=t)}var KB=OB;function WB(e){this._context=e}WB.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,jd)}},result:aB};var XB,qB,zB,$B,ep,tp=new Zd,Ap={point:aB,lineStart:function(){Ap.point=np},lineEnd:function(){XB&&rp(qB,zB),Ap.point=aB},polygonStart:function(){XB=!0},polygonEnd:function(){XB=null},result:function(){var e=+tp;return tp=new Zd,e}};function np(e,t){Ap.point=rp,qB=$B=e,zB=ep=t}function rp(e,t){$B-=e,ep-=t,tp.add(nB($B*$B+ep*ep)),$B=e,ep=t}var ip=Ap;function op(){this._string=[]}function ap(e){return"m0,"+e+"a"+e+","+e+" 0 1,1 0,"+-2*e+"a"+e+","+e+" 0 1,1 0,"+2*e+"z"}op.prototype={_radius:4.5,_circle:ap(4.5),pointRadius:function(e){return(e=+e)!==this._radius&&(this._radius=e,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._string.push("M",e,",",t),this._point=1;break;case 1:this._string.push("L",e,",",t);break;default:null==this._circle&&(this._circle=ap(this._radius)),this._string.push("M",e,",",t,this._circle)}},result:function(){if(this._string.length){var e=this._string.join("");return this._string=[],e}return null}};var sp=function(e,t){var A,n,r=4.5;function i(e){return e&&("function"===typeof r&&n.pointRadius(+r.apply(this,arguments)),Td(e,A(n))),n.result()}return i.area=function(e){return Td(e,A(pB)),pB.result()},i.measure=function(e){return Td(e,A(ip)),ip.result()},i.bounds=function(e){return Td(e,A(FB)),FB.result()},i.centroid=function(e){return Td(e,A(KB)),KB.result()},i.projection=function(t){return arguments.length?(A=null==t?(e=null,Nd):(e=t).stream,i):e},i.context=function(e){return arguments.length?(n=null==e?(t=null,new op):new WB(t=e),"function"!==typeof r&&n.pointRadius(r),i):t},i.pointRadius=function(e){return arguments.length?(r="function"===typeof e?e:(n.pointRadius(+e),+e),i):r},i.projection(e).context(t)},gp=function(){var e,t=[];return{point:function(t,A,n){e.push([t,A,n])},lineStart:function(){t.push(e=[])},lineEnd:aB,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var A=t;return t=[],e=null,A}}},cp=function(e,t){return Kd(e[0]-t[0])<1e-6&&Kd(e[1]-t[1])<1e-6};function up(e,t,A,n){this.x=e,this.z=t,this.o=A,this.e=n,this.v=!1,this.n=this.p=null}var lp=function(e,t,A,n,r){var i,o,a=[],s=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,A,n=e[0],o=e[t];if(cp(n,o)){if(!n[2]&&!o[2]){for(r.lineStart(),i=0;i<t;++i)r.point((n=e[i])[0],n[1]);return void r.lineEnd()}o[0]+=2e-6}a.push(A=new up(n,e,null,!0)),s.push(A.o=new up(n,null,A,!1)),a.push(A=new up(o,e,null,!1)),s.push(A.o=new up(o,null,A,!0))}})),a.length){for(s.sort(t),Ip(a),Ip(s),i=0,o=s.length;i<o;++i)s[i].e=A=!A;for(var g,c,u=a[0];;){for(var l=u,I=!0;l.v;)if((l=l.n)===u)return;g=l.z,r.lineStart();do{if(l.v=l.o.v=!0,l.e){if(I)for(i=0,o=g.length;i<o;++i)r.point((c=g[i])[0],c[1]);else n(l.x,l.n.x,1,r);l=l.n}else{if(I)for(g=l.p.z,i=g.length-1;i>=0;--i)r.point((c=g[i])[0],c[1]);else n(l.x,l.p.x,-1,r);l=l.p}g=(l=l.o).z,I=!I}while(!l.v);r.lineEnd()}}};function Ip(e){if(t=e.length){for(var t,A,n=0,r=e[0];++n<t;)r.n=A=e[n],A.p=r,r=A;r.n=A=e[0],A.p=r}}function Cp(e){return[Xd(e[1],e[0]),oB(e[2])]}function hp(e){var t=e[0],A=e[1],n=qd(A);return[n*qd(t),n*tB(t),tB(A)]}function fp(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function dp(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function Bp(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function pp(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function Ep(e){var t=nB(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}function Qp(e){return Kd(e[0])<=Hd?e[0]:AB(e[0])*((Kd(e[0])+Hd)%jd-Hd)}var yp=Ie.a.mark(vp);function vp(e){var t,A,n;return Ie.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:t=Object(ut.a)(e),r.prev=1,t.s();case 3:if((A=t.n()).done){r.next=8;break}return n=A.value,r.delegateYield(n,"t0",6);case 6:r.next=3;break;case 8:r.next=13;break;case 10:r.prev=10,r.t1=r.catch(1),t.e(r.t1);case 13:return r.prev=13,t.f(),r.finish(13);case 16:case"end":return r.stop()}}),yp,null,[[1,10,13,16]])}function mp(e){return Array.from(vp(e))}var bp=function(e,t,A,n){return function(r){var i,o,a,s=t(r),g=gp(),c=t(g),u=!1,l={point:I,lineStart:h,lineEnd:f,polygonStart:function(){l.point=d,l.lineStart=B,l.lineEnd=p,o=[],i=[]},polygonEnd:function(){l.point=I,l.lineStart=h,l.lineEnd=f,o=mp(o);var e=function(e,t){var A=Qp(t),n=t[1],r=tB(n),i=[tB(A),-qd(A),0],o=0,a=0,s=new Zd;1===r?n=Yd+1e-6:-1===r&&(n=-Yd-1e-6);for(var g=0,c=e.length;g<c;++g)if(l=(u=e[g]).length)for(var u,l,I=u[l-1],C=Qp(I),h=I[1]/2+Jd,f=tB(h),d=qd(h),B=0;B<l;++B,C=E,f=y,d=v,I=p){var p=u[B],E=Qp(p),Q=p[1]/2+Jd,y=tB(Q),v=qd(Q),m=E-C,b=m>=0?1:-1,w=b*m,S=w>Hd,F=f*y;if(s.add(Xd(F*b*tB(w),d*v+F*qd(w))),o+=S?m+b*jd:m,S^C>=A^E>=A){var R=dp(hp(I),hp(p));Ep(R);var D=dp(i,R);Ep(D);var G=(S^m>=0?-1:1)*oB(D[2]);(n>G||n===G&&(R[0]||R[1]))&&(a+=S^m>=0?1:-1)}}return(o<-1e-6||o<1e-6&&s<-1e-12)^1&a}(i,n);o.length?(u||(r.polygonStart(),u=!0),lp(o,Sp,e,A,r)):e&&(u||(r.polygonStart(),u=!0),r.lineStart(),A(null,null,1,r),r.lineEnd()),u&&(r.polygonEnd(),u=!1),o=i=null},sphere:function(){r.polygonStart(),r.lineStart(),A(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function I(t,A){e(t,A)&&r.point(t,A)}function C(e,t){s.point(e,t)}function h(){l.point=C,s.lineStart()}function f(){l.point=I,s.lineEnd()}function d(e,t){a.push([e,t]),c.point(e,t)}function B(){c.lineStart(),a=[]}function p(){d(a[0][0],a[0][1]),c.lineEnd();var e,t,A,n,s=c.clean(),l=g.result(),I=l.length;if(a.pop(),i.push(a),a=null,I)if(1&s){if((t=(A=l[0]).length-1)>0){for(u||(r.polygonStart(),u=!0),r.lineStart(),e=0;e<t;++e)r.point((n=A[e])[0],n[1]);r.lineEnd()}}else I>1&&2&s&&l.push(l.pop().concat(l.shift())),o.push(l.filter(wp))}return l}};function wp(e){return e.length>1}function Sp(e,t){return((e=e.x)[0]<0?e[1]-Yd-1e-6:Yd-e[1])-((t=t.x)[0]<0?t[1]-Yd-1e-6:Yd-t[1])}var Fp=bp((function(){return!0}),(function(e){var t,A=NaN,n=NaN,r=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(i,o){var a=i>0?Hd:-Hd,s=Kd(i-A);Kd(s-Hd)<1e-6?(e.point(A,n=(n+o)/2>0?Yd:-Yd),e.point(r,n),e.lineEnd(),e.lineStart(),e.point(a,n),e.point(i,n),t=0):r!==a&&s>=Hd&&(Kd(A-r)<1e-6&&(A-=1e-6*r),Kd(i-a)<1e-6&&(i-=1e-6*a),n=function(e,t,A,n){var r,i,o=tB(e-A);return Kd(o)>1e-6?Wd((tB(t)*(i=qd(n))*tB(A)-tB(n)*(r=qd(t))*tB(e))/(r*i*o)):(t+n)/2}(A,n,i,o),e.point(r,n),e.lineEnd(),e.lineStart(),e.point(a,n),t=0),e.point(A=i,n=o),r=a},lineEnd:function(){e.lineEnd(),A=n=NaN},clean:function(){return 2-t}}}),(function(e,t,A,n){var r;if(null==e)r=A*Yd,n.point(-Hd,r),n.point(0,r),n.point(Hd,r),n.point(Hd,0),n.point(Hd,-r),n.point(0,-r),n.point(-Hd,-r),n.point(-Hd,0),n.point(-Hd,r);else if(Kd(e[0]-t[0])>1e-6){var i=e[0]<t[0]?Hd:-Hd;r=A*i/2,n.point(-i,r),n.point(0,r),n.point(i,r)}else n.point(t[0],t[1])}),[-Hd,-Yd]);var Rp=function(e,t){function A(A,n){return A=e(A,n),t(A[0],A[1])}return e.invert&&t.invert&&(A.invert=function(A,n){return(A=t.invert(A,n))&&e.invert(A[0],A[1])}),A};function Dp(e,t){return[Kd(e)>Hd?e+Math.round(-e/jd)*jd:e,t]}function Gp(e,t,A){return(e%=jd)?t||A?Rp(xp(e),Np(t,A)):xp(e):t||A?Np(t,A):Dp}function kp(e){return function(t,A){return[(t+=e)>Hd?t-jd:t<-Hd?t+jd:t,A]}}function xp(e){var t=kp(e);return t.invert=kp(-e),t}function Np(e,t){var A=qd(e),n=tB(e),r=qd(t),i=tB(t);function o(e,t){var o=qd(t),a=qd(e)*o,s=tB(e)*o,g=tB(t),c=g*A+a*n;return[Xd(s*r-c*i,a*A-g*n),oB(c*r+s*i)]}return o.invert=function(e,t){var o=qd(t),a=qd(e)*o,s=tB(e)*o,g=tB(t),c=g*r-s*i;return[Xd(s*r+g*i,a*A+c*n),oB(c*A-a*n)]},o}Dp.invert=Dp;function Up(e,t,A,n,r,i){if(A){var o=qd(t),a=tB(t),s=n*A;null==r?(r=t+n*jd,i=t-s/2):(r=_p(o,r),i=_p(o,i),(n>0?r<i:r>i)&&(r+=n*jd));for(var g,c=r;n>0?c>i:c<i;c-=s)g=Cp([o,-a*qd(c),-a*tB(c)]),e.point(g[0],g[1])}}function _p(e,t){(t=hp(t))[0]-=e,Ep(t);var A=iB(-t[1]);return((-t[2]<0?-A:A)+jd-1e-6)%jd}var Mp=function(e){var t=qd(e),A=6*Vd,n=t>0,r=Kd(t)>1e-6;function i(e,A){return qd(e)*qd(A)>t}function o(e,A,n){var r=[1,0,0],i=dp(hp(e),hp(A)),o=fp(i,i),a=i[0],s=o-a*a;if(!s)return!n&&e;var g=t*o/s,c=-t*a/s,u=dp(r,i),l=pp(r,g);Bp(l,pp(i,c));var I=u,C=fp(l,I),h=fp(I,I),f=C*C-h*(fp(l,l)-1);if(!(f<0)){var d=nB(f),B=pp(I,(-C-d)/h);if(Bp(B,l),B=Cp(B),!n)return B;var p,E=e[0],Q=A[0],y=e[1],v=A[1];Q<E&&(p=E,E=Q,Q=p);var m=Q-E,b=Kd(m-Hd)<1e-6;if(!b&&v<y&&(p=y,y=v,v=p),b||m<1e-6?b?y+v>0^B[1]<(Kd(B[0]-E)<1e-6?y:v):y<=B[1]&&B[1]<=v:m>Hd^(E<=B[0]&&B[0]<=Q)){var w=pp(I,(-C+d)/h);return Bp(w,l),[B,Cp(w)]}}}function a(t,A){var r=n?e:Hd-e,i=0;return t<-r?i|=1:t>r&&(i|=2),A<-r?i|=4:A>r&&(i|=8),i}return bp(i,(function(e){var t,A,s,g,c;return{lineStart:function(){g=s=!1,c=1},point:function(u,l){var I,C=[u,l],h=i(u,l),f=n?h?0:a(u,l):h?a(u+(u<0?Hd:-Hd),l):0;if(!t&&(g=s=h)&&e.lineStart(),h!==s&&(!(I=o(t,C))||cp(t,I)||cp(C,I))&&(C[2]=1),h!==s)c=0,h?(e.lineStart(),I=o(C,t),e.point(I[0],I[1])):(I=o(t,C),e.point(I[0],I[1],2),e.lineEnd()),t=I;else if(r&&t&&n^h){var d;f&A||!(d=o(C,t,!0))||(c=0,n?(e.lineStart(),e.point(d[0][0],d[0][1]),e.point(d[1][0],d[1][1]),e.lineEnd()):(e.point(d[1][0],d[1][1]),e.lineEnd(),e.lineStart(),e.point(d[0][0],d[0][1],3)))}!h||t&&cp(t,C)||e.point(C[0],C[1]),t=C,s=h,A=f},lineEnd:function(){s&&e.lineEnd(),t=null},clean:function(){return c|(g&&s)<<1}}}),(function(t,n,r,i){Up(i,e,A,r,t,n)}),n?[0,-e]:[-Hd,e-Hd])};function Op(e,t,A,n){function r(r,i){return e<=r&&r<=A&&t<=i&&i<=n}function i(r,i,a,g){var c=0,u=0;if(null==r||(c=o(r,a))!==(u=o(i,a))||s(r,i)<0^a>0)do{g.point(0===c||3===c?e:A,c>1?n:t)}while((c=(c+a+4)%4)!==u);else g.point(i[0],i[1])}function o(n,r){return Kd(n[0]-e)<1e-6?r>0?0:3:Kd(n[0]-A)<1e-6?r>0?2:1:Kd(n[1]-t)<1e-6?r>0?1:0:r>0?3:2}function a(e,t){return s(e.x,t.x)}function s(e,t){var A=o(e,1),n=o(t,1);return A!==n?A-n:0===A?t[1]-e[1]:1===A?e[0]-t[0]:2===A?e[1]-t[1]:t[0]-e[0]}return function(o){var s,g,c,u,l,I,C,h,f,d,B,p=o,E=gp(),Q={point:y,lineStart:function(){Q.point=v,g&&g.push(c=[]);d=!0,f=!1,C=h=NaN},lineEnd:function(){s&&(v(u,l),I&&f&&E.rejoin(),s.push(E.result()));Q.point=y,f&&p.lineEnd()},polygonStart:function(){p=E,s=[],g=[],B=!0},polygonEnd:function(){var t=function(){for(var t=0,A=0,r=g.length;A<r;++A)for(var i,o,a=g[A],s=1,c=a.length,u=a[0],l=u[0],I=u[1];s<c;++s)i=l,o=I,u=a[s],l=u[0],I=u[1],o<=n?I>n&&(l-i)*(n-o)>(I-o)*(e-i)&&++t:I<=n&&(l-i)*(n-o)<(I-o)*(e-i)&&--t;return t}(),A=B&&t,r=(s=mp(s)).length;(A||r)&&(o.polygonStart(),A&&(o.lineStart(),i(null,null,1,o),o.lineEnd()),r&&lp(s,a,t,i,o),o.polygonEnd());p=o,s=g=c=null}};function y(e,t){r(e,t)&&p.point(e,t)}function v(i,o){var a=r(i,o);if(g&&c.push([i,o]),d)u=i,l=o,I=a,d=!1,a&&(p.lineStart(),p.point(i,o));else if(a&&f)p.point(i,o);else{var s=[C=Math.max(-1e9,Math.min(1e9,C)),h=Math.max(-1e9,Math.min(1e9,h))],E=[i=Math.max(-1e9,Math.min(1e9,i)),o=Math.max(-1e9,Math.min(1e9,o))];!function(e,t,A,n,r,i){var o,a=e[0],s=e[1],g=0,c=1,u=t[0]-a,l=t[1]-s;if(o=A-a,u||!(o>0)){if(o/=u,u<0){if(o<g)return;o<c&&(c=o)}else if(u>0){if(o>c)return;o>g&&(g=o)}if(o=r-a,u||!(o<0)){if(o/=u,u<0){if(o>c)return;o>g&&(g=o)}else if(u>0){if(o<g)return;o<c&&(c=o)}if(o=n-s,l||!(o>0)){if(o/=l,l<0){if(o<g)return;o<c&&(c=o)}else if(l>0){if(o>c)return;o>g&&(g=o)}if(o=i-s,l||!(o<0)){if(o/=l,l<0){if(o>c)return;o>g&&(g=o)}else if(l>0){if(o<g)return;o<c&&(c=o)}return g>0&&(e[0]=a+g*u,e[1]=s+g*l),c<1&&(t[0]=a+c*u,t[1]=s+c*l),!0}}}}}(s,E,e,t,A,n)?a&&(p.lineStart(),p.point(i,o),B=!1):(f||(p.lineStart(),p.point(s[0],s[1])),p.point(E[0],E[1]),a||p.lineEnd(),B=!1)}C=i,h=o,f=a}return Q}}function Lp(e){return function(t){var A=new Tp;for(var n in e)A[n]=e[n];return A.stream=t,A}}function Tp(){}function Zp(e,t,A){var n=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=n&&e.clipExtent(null),Td(A,e.stream(FB)),t(FB.result()),null!=n&&e.clipExtent(n),e}function Hp(e,t,A){return Zp(e,(function(A){var n=t[1][0]-t[0][0],r=t[1][1]-t[0][1],i=Math.min(n/(A[1][0]-A[0][0]),r/(A[1][1]-A[0][1])),o=+t[0][0]+(n-i*(A[1][0]+A[0][0]))/2,a=+t[0][1]+(r-i*(A[1][1]+A[0][1]))/2;e.scale(150*i).translate([o,a])}),A)}function Yp(e,t,A){return Hp(e,[[0,0],t],A)}function Jp(e,t,A){return Zp(e,(function(A){var n=+t,r=n/(A[1][0]-A[0][0]),i=(n-r*(A[1][0]+A[0][0]))/2,o=-r*A[0][1];e.scale(150*r).translate([i,o])}),A)}function jp(e,t,A){return Zp(e,(function(A){var n=+t,r=n/(A[1][1]-A[0][1]),i=-r*A[0][0],o=(n-r*(A[1][1]+A[0][1]))/2;e.scale(150*r).translate([i,o])}),A)}Tp.prototype={constructor:Tp,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Pp=qd(30*Vd),Vp=function(e,t){return+t?function(e,t){function A(n,r,i,o,a,s,g,c,u,l,I,C,h,f){var d=g-n,B=c-r,p=d*d+B*B;if(p>4*t&&h--){var E=o+l,Q=a+I,y=s+C,v=nB(E*E+Q*Q+y*y),m=oB(y/=v),b=Kd(Kd(y)-1)<1e-6||Kd(i-u)<1e-6?(i+u)/2:Xd(Q,E),w=e(b,m),S=w[0],F=w[1],R=S-n,D=F-r,G=B*R-d*D;(G*G/p>t||Kd((d*R+B*D)/p-.5)>.3||o*l+a*I+s*C<Pp)&&(A(n,r,i,o,a,s,S,F,b,E/=v,Q/=v,y,h,f),f.point(S,F),A(S,F,b,E,Q,y,g,c,u,l,I,C,h,f))}}return function(t){var n,r,i,o,a,s,g,c,u,l,I,C,h={point:f,lineStart:d,lineEnd:p,polygonStart:function(){t.polygonStart(),h.lineStart=E},polygonEnd:function(){t.polygonEnd(),h.lineStart=d}};function f(A,n){A=e(A,n),t.point(A[0],A[1])}function d(){c=NaN,h.point=B,t.lineStart()}function B(n,r){var i=hp([n,r]),o=e(n,r);A(c,u,g,l,I,C,c=o[0],u=o[1],g=n,l=i[0],I=i[1],C=i[2],16,t),t.point(c,u)}function p(){h.point=f,t.lineEnd()}function E(){d(),h.point=Q,h.lineEnd=y}function Q(e,t){B(n=e,t),r=c,i=u,o=l,a=I,s=C,h.point=B}function y(){A(c,u,g,l,I,C,r,i,n,o,a,s,16,t),h.lineEnd=p,p()}return h}}(e,t):function(e){return Lp({point:function(t,A){t=e(t,A),this.stream.point(t[0],t[1])}})}(e)};var Kp=Lp({point:function(e,t){this.stream.point(e*Vd,t*Vd)}});function Wp(e,t,A,n,r,i){if(!i)return function(e,t,A,n,r){function i(i,o){return[t+e*(i*=n),A-e*(o*=r)]}return i.invert=function(i,o){return[(i-t)/e*n,(A-o)/e*r]},i}(e,t,A,n,r);var o=qd(i),a=tB(i),s=o*e,g=a*e,c=o/e,u=a/e,l=(a*A-o*t)/e,I=(a*t+o*A)/e;function C(e,i){return[s*(e*=n)-g*(i*=r)+t,A-g*e-s*i]}return C.invert=function(e,t){return[n*(c*e-u*t+l),r*(I-u*e-c*t)]},C}function Xp(e){return qp((function(){return e}))()}function qp(e){var t,A,n,r,i,o,a,s,g,c,u=150,l=480,I=250,C=0,h=0,f=0,d=0,B=0,p=0,E=1,Q=1,y=null,v=Fp,m=null,b=Nd,w=.5;function S(e){return s(e[0]*Vd,e[1]*Vd)}function F(e){return(e=s.invert(e[0],e[1]))&&[e[0]*Pd,e[1]*Pd]}function R(){var e=Wp(u,0,0,E,Q,p).apply(null,t(C,h)),n=Wp(u,l-e[0],I-e[1],E,Q,p);return A=Gp(f,d,B),a=Rp(t,n),s=Rp(A,a),o=Vp(a,w),D()}function D(){return g=c=null,S}return S.stream=function(e){return g&&c===e?g:g=Kp(function(e){return Lp({point:function(t,A){var n=e(t,A);return this.stream.point(n[0],n[1])}})}(A)(v(o(b(c=e)))))},S.preclip=function(e){return arguments.length?(v=e,y=void 0,D()):v},S.postclip=function(e){return arguments.length?(b=e,m=n=r=i=null,D()):b},S.clipAngle=function(e){return arguments.length?(v=+e?Mp(y=e*Vd):(y=null,Fp),D()):y*Pd},S.clipExtent=function(e){return arguments.length?(b=null==e?(m=n=r=i=null,Nd):Op(m=+e[0][0],n=+e[0][1],r=+e[1][0],i=+e[1][1]),D()):null==m?null:[[m,n],[r,i]]},S.scale=function(e){return arguments.length?(u=+e,R()):u},S.translate=function(e){return arguments.length?(l=+e[0],I=+e[1],R()):[l,I]},S.center=function(e){return arguments.length?(C=e[0]%360*Vd,h=e[1]%360*Vd,R()):[C*Pd,h*Pd]},S.rotate=function(e){return arguments.length?(f=e[0]%360*Vd,d=e[1]%360*Vd,B=e.length>2?e[2]%360*Vd:0,R()):[f*Pd,d*Pd,B*Pd]},S.angle=function(e){return arguments.length?(p=e%360*Vd,R()):p*Pd},S.reflectX=function(e){return arguments.length?(E=e?-1:1,R()):E<0},S.reflectY=function(e){return arguments.length?(Q=e?-1:1,R()):Q<0},S.precision=function(e){return arguments.length?(o=Vp(a,w=e*e),D()):nB(w)},S.fitExtent=function(e,t){return Hp(S,e,t)},S.fitSize=function(e,t){return Yp(S,e,t)},S.fitWidth=function(e,t){return Jp(S,e,t)},S.fitHeight=function(e,t){return jp(S,e,t)},function(){return t=e.apply(this,arguments),S.invert=t.invert&&F,R()}}function zp(e){var t=0,A=Hd/3,n=qp(e),r=n(t,A);return r.parallels=function(e){return arguments.length?n(t=e[0]*Vd,A=e[1]*Vd):[t*Pd,A*Pd]},r}function $p(e,t){var A=tB(e),n=(A+tB(t))/2;if(Kd(n)<1e-6)return function(e){var t=qd(e);function A(e,A){return[e*t,tB(A)/t]}return A.invert=function(e,A){return[e/t,oB(A*t)]},A}(e);var r=1+A*(2*n-A),i=nB(r)/n;function o(e,t){var A=nB(r-2*n*tB(t))/n;return[A*tB(e*=n),i-A*qd(e)]}return o.invert=function(e,t){var A=i-t,o=Xd(e,Kd(A))*AB(A);return A*n<0&&(o-=Hd*AB(e)*AB(A)),[o/n,oB((r-(e*e+A*A)*n*n)/(2*n))]},o}var eE=function(){return zp($p).scale(155.424).center([0,33.6442])},tE=function(){return eE().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])};function AE(e){return function(t,A){var n=qd(t),r=qd(A),i=e(n*r);return i===1/0?[2,0]:[i*r*tB(t),i*tB(A)]}}function nE(e){return function(t,A){var n=nB(t*t+A*A),r=e(n),i=tB(r),o=qd(r);return[Xd(t*i,n*o),oB(n&&A*i/n)]}}var rE=AE((function(e){return nB(2/(1+e))}));rE.invert=nE((function(e){return 2*oB(e/2)}));var iE=AE((function(e){return(e=iB(e))&&e/tB(e)}));iE.invert=nE((function(e){return e}));function oE(e,t){return[e,$d(rB((Yd+t)/2))]}oE.invert=function(e,t){return[e,2*Wd(zd(t))-Yd]};function aE(e){var t,A,n,r=Xp(e),i=r.center,o=r.scale,a=r.translate,s=r.clipExtent,g=null;function c(){var i=Hd*o(),a=r(function(e){function t(t){return(t=e(t[0]*Vd,t[1]*Vd))[0]*=Pd,t[1]*=Pd,t}return e=Gp(e[0]*Vd,e[1]*Vd,e.length>2?e[2]*Vd:0),t.invert=function(t){return(t=e.invert(t[0]*Vd,t[1]*Vd))[0]*=Pd,t[1]*=Pd,t},t}(r.rotate()).invert([0,0]));return s(null==g?[[a[0]-i,a[1]-i],[a[0]+i,a[1]+i]]:e===oE?[[Math.max(a[0]-i,g),t],[Math.min(a[0]+i,A),n]]:[[g,Math.max(a[1]-i,t)],[A,Math.min(a[1]+i,n)]])}return r.scale=function(e){return arguments.length?(o(e),c()):o()},r.translate=function(e){return arguments.length?(a(e),c()):a()},r.center=function(e){return arguments.length?(i(e),c()):i()},r.clipExtent=function(e){return arguments.length?(null==e?g=t=A=n=null:(g=+e[0][0],t=+e[0][1],A=+e[1][0],n=+e[1][1]),c()):null==g?null:[[g,t],[A,n]]},c()}function sE(e){return rB((Yd+e)/2)}function gE(e,t){var A=qd(e),n=e===t?tB(e):$d(A/qd(t))/$d(sE(t)/sE(e)),r=A*eB(sE(e),n)/n;if(!n)return oE;function i(e,t){r>0?t<1e-6-Yd&&(t=1e-6-Yd):t>Yd-1e-6&&(t=Yd-1e-6);var A=r/eB(sE(t),n);return[A*tB(n*e),r-A*qd(n*e)]}return i.invert=function(e,t){var A=r-t,i=AB(n)*nB(e*e+A*A),o=Xd(e,Kd(A))*AB(A);return A*n<0&&(o-=Hd*AB(e)*AB(A)),[o/n,2*Wd(eB(r/i,1/n))-Yd]},i}function cE(e,t){return[e,t]}cE.invert=cE;function uE(e,t){var A=qd(e),n=e===t?tB(e):(A-qd(t))/(t-e),r=A/n+e;if(Kd(n)<1e-6)return cE;function i(e,t){var A=r-t,i=n*e;return[A*tB(i),r-A*qd(i)]}return i.invert=function(e,t){var A=r-t,i=Xd(e,Kd(A))*AB(A);return A*n<0&&(i-=Hd*AB(e)*AB(A)),[i/n,r-AB(n)*nB(e*e+A*A)]},i}var lE=1.340264,IE=-.081106,CE=893e-6,hE=.003796,fE=nB(3)/2;function dE(e,t){var A=oB(fE*tB(t)),n=A*A,r=n*n*n;return[e*qd(A)/(fE*(lE+3*IE*n+r*(7*CE+9*hE*n))),A*(lE+IE*n+r*(CE+hE*n))]}dE.invert=function(e,t){for(var A,n=t,r=n*n,i=r*r*r,o=0;o<12&&(i=(r=(n-=A=(n*(lE+IE*r+i*(CE+hE*r))-t)/(lE+3*IE*r+i*(7*CE+9*hE*r)))*n)*r*r,!(Kd(A)<1e-12));++o);return[fE*e*(lE+3*IE*r+i*(7*CE+9*hE*r))/qd(n),oB(tB(n)/fE)]};function BE(e,t){var A=qd(t),n=qd(e)*A;return[A*tB(e)/n,tB(t)/n]}BE.invert=nE(Wd);function pE(e,t){var A=t*t,n=A*A;return[e*(.8707-.131979*A+n*(n*(.003971*A-.001529*n)-.013791)),t*(1.007226+A*(.015085+n*(.028874*A-.044475-.005916*n)))]}pE.invert=function(e,t){var A,n=t,r=25;do{var i=n*n,o=i*i;n-=A=(n*(1.007226+i*(.015085+o*(.028874*i-.044475-.005916*o)))-t)/(1.007226+i*(.045255+o*(.259866*i-.311325-.005916*11*o)))}while(Kd(A)>1e-6&&--r>0);return[e/(.8707+(i=n*n)*(i*(i*i*i*(.003971-.001529*i)-.013791)-.131979)),n]};function EE(e,t){return[qd(t)*tB(e),tB(t)]}EE.invert=nE(oB);function QE(e,t){var A=qd(t),n=1+qd(e)*A;return[A*tB(e)/n,tB(t)/n]}QE.invert=nE((function(e){return 2*Wd(e)}));function yE(e,t){return[$d(rB((Yd+t)/2)),-e]}yE.invert=function(e,t){return[-t,2*Wd(zd(e))-Yd]};function vE(){}var mE=function(){var e,t=[];return{point:function(t,A,n){e.push([t,A,n])},lineStart:function(){t.push(e=[])},lineEnd:vE,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var A=t;return t=[],e=null,A}}},bE=Math.PI,wE=bE/2,SE=bE/4,FE=2*bE,RE=180/bE,DE=bE/180,GE=Math.abs,kE=Math.atan,xE=Math.atan2,NE=Math.cos,UE=(Math.ceil,Math.exp,Math.floor,Math.hypot,Math.log,Math.pow,Math.sin),_E=Math.sign||function(e){return e>0?1:e<0?-1:0},ME=Math.sqrt;Math.tan;function OE(e){return e>1?wE:e<-1?-wE:Math.asin(e)}var LE=function(e,t){return GE(e[0]-t[0])<1e-6&&GE(e[1]-t[1])<1e-6};function TE(e,t,A,n){this.x=e,this.z=t,this.o=A,this.e=n,this.v=!1,this.n=this.p=null}var ZE=function(e,t,A,n,r){var i,o,a=[],s=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,A,n=e[0],o=e[t];if(LE(n,o)){if(!n[2]&&!o[2]){for(r.lineStart(),i=0;i<t;++i)r.point((n=e[i])[0],n[1]);return void r.lineEnd()}o[0]+=2e-6}a.push(A=new TE(n,e,null,!0)),s.push(A.o=new TE(n,null,A,!1)),a.push(A=new TE(o,e,null,!1)),s.push(A.o=new TE(o,null,A,!0))}})),a.length){for(s.sort(t),HE(a),HE(s),i=0,o=s.length;i<o;++i)s[i].e=A=!A;for(var g,c,u=a[0];;){for(var l=u,I=!0;l.v;)if((l=l.n)===u)return;g=l.z,r.lineStart();do{if(l.v=l.o.v=!0,l.e){if(I)for(i=0,o=g.length;i<o;++i)r.point((c=g[i])[0],c[1]);else n(l.x,l.n.x,1,r);l=l.n}else{if(I)for(g=l.p.z,i=g.length-1;i>=0;--i)r.point((c=g[i])[0],c[1]);else n(l.x,l.p.x,-1,r);l=l.p}g=(l=l.o).z,I=!I}while(!l.v);r.lineEnd()}}};function HE(e){if(t=e.length){for(var t,A,n=0,r=e[0];++n<t;)r.n=A=e[n],A.p=r,r=A;r.n=A=e[0],A.p=r}}var YE=function(){function e(){Object(y.a)(this,e),this._partials=new Float64Array(32),this._n=0}return Object(v.a)(e,[{key:"add",value:function(e){for(var t=this._partials,A=0,n=0;n<this._n&&n<32;n++){var r=t[n],i=e+r,o=Math.abs(e)<Math.abs(r)?e-(i-r):r-(i-e);o&&(t[A++]=o),e=i}return t[A]=e,this._n=A+1,this}},{key:"valueOf",value:function(){var e,t,A,n=this._partials,r=this._n,i=0;if(r>0){for(i=n[--r];r>0&&(e=i,!(A=(t=n[--r])-((i=e+t)-e))););r>0&&(A<0&&n[r-1]<0||A>0&&n[r-1]>0)&&(t=2*A)==(e=i+t)-i&&(i=e)}return i}}]),e}();function JE(e){return[xE(e[1],e[0]),OE(e[2])]}function jE(e){var t=e[0],A=e[1],n=NE(A);return[n*NE(t),n*UE(t),UE(A)]}function PE(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function VE(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function KE(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function WE(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function XE(e){var t=ME(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}function qE(e){return GE(e[0])<=bE?e[0]:_E(e[0])*((GE(e[0])+bE)%FE-bE)}var zE=Ie.a.mark($E);function $E(e){var t,A,n;return Ie.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:t=Object(ut.a)(e),r.prev=1,t.s();case 3:if((A=t.n()).done){r.next=8;break}return n=A.value,r.delegateYield(n,"t0",6);case 6:r.next=3;break;case 8:r.next=13;break;case 10:r.prev=10,r.t1=r.catch(1),t.e(r.t1);case 13:return r.prev=13,t.f(),r.finish(13);case 16:case"end":return r.stop()}}),zE,null,[[1,10,13,16]])}function eQ(e){return Array.from($E(e))}var tQ=function(e,t,A,n){return function(r){var i,o,a,s=t(r),g=mE(),c=t(g),u=!1,l={point:I,lineStart:h,lineEnd:f,polygonStart:function(){l.point=d,l.lineStart=B,l.lineEnd=p,o=[],i=[]},polygonEnd:function(){l.point=I,l.lineStart=h,l.lineEnd=f,o=eQ(o);var e=function(e,t){var A=qE(t),n=t[1],r=UE(n),i=[UE(A),-NE(A),0],o=0,a=0,s=new YE;1===r?n=wE+1e-6:-1===r&&(n=-wE-1e-6);for(var g=0,c=e.length;g<c;++g)if(l=(u=e[g]).length)for(var u,l,I=u[l-1],C=qE(I),h=I[1]/2+SE,f=UE(h),d=NE(h),B=0;B<l;++B,C=E,f=y,d=v,I=p){var p=u[B],E=qE(p),Q=p[1]/2+SE,y=UE(Q),v=NE(Q),m=E-C,b=m>=0?1:-1,w=b*m,S=w>bE,F=f*y;if(s.add(xE(F*b*UE(w),d*v+F*NE(w))),o+=S?m+b*FE:m,S^C>=A^E>=A){var R=VE(jE(I),jE(p));XE(R);var D=VE(i,R);XE(D);var G=(S^m>=0?-1:1)*OE(D[2]);(n>G||n===G&&(R[0]||R[1]))&&(a+=S^m>=0?1:-1)}}return(o<-1e-6||o<1e-6&&s<-1e-12)^1&a}(i,n);o.length?(u||(r.polygonStart(),u=!0),ZE(o,nQ,e,A,r)):e&&(u||(r.polygonStart(),u=!0),r.lineStart(),A(null,null,1,r),r.lineEnd()),u&&(r.polygonEnd(),u=!1),o=i=null},sphere:function(){r.polygonStart(),r.lineStart(),A(null,null,1,r),r.lineEnd(),r.polygonEnd()}};function I(t,A){e(t,A)&&r.point(t,A)}function C(e,t){s.point(e,t)}function h(){l.point=C,s.lineStart()}function f(){l.point=I,s.lineEnd()}function d(e,t){a.push([e,t]),c.point(e,t)}function B(){c.lineStart(),a=[]}function p(){d(a[0][0],a[0][1]),c.lineEnd();var e,t,A,n,s=c.clean(),l=g.result(),I=l.length;if(a.pop(),i.push(a),a=null,I)if(1&s){if((t=(A=l[0]).length-1)>0){for(u||(r.polygonStart(),u=!0),r.lineStart(),e=0;e<t;++e)r.point((n=A[e])[0],n[1]);r.lineEnd()}}else I>1&&2&s&&l.push(l.pop().concat(l.shift())),o.push(l.filter(AQ))}return l}};function AQ(e){return e.length>1}function nQ(e,t){return((e=e.x)[0]<0?e[1]-wE-1e-6:wE-e[1])-((t=t.x)[0]<0?t[1]-wE-1e-6:wE-t[1])}var rQ=tQ((function(){return!0}),(function(e){var t,A=NaN,n=NaN,r=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(i,o){var a=i>0?bE:-bE,s=GE(i-A);GE(s-bE)<1e-6?(e.point(A,n=(n+o)/2>0?wE:-wE),e.point(r,n),e.lineEnd(),e.lineStart(),e.point(a,n),e.point(i,n),t=0):r!==a&&s>=bE&&(GE(A-r)<1e-6&&(A-=1e-6*r),GE(i-a)<1e-6&&(i-=1e-6*a),n=function(e,t,A,n){var r,i,o=UE(e-A);return GE(o)>1e-6?kE((UE(t)*(i=NE(n))*UE(A)-UE(n)*(r=NE(t))*UE(e))/(r*i*o)):(t+n)/2}(A,n,i,o),e.point(r,n),e.lineEnd(),e.lineStart(),e.point(a,n),t=0),e.point(A=i,n=o),r=a},lineEnd:function(){e.lineEnd(),A=n=NaN},clean:function(){return 2-t}}}),(function(e,t,A,n){var r;if(null==e)r=A*wE,n.point(-bE,r),n.point(0,r),n.point(bE,r),n.point(bE,0),n.point(bE,-r),n.point(0,-r),n.point(-bE,-r),n.point(-bE,0),n.point(-bE,r);else if(GE(e[0]-t[0])>1e-6){var i=e[0]<t[0]?bE:-bE;r=A*i/2,n.point(-i,r),n.point(0,r),n.point(i,r)}else n.point(t[0],t[1])}),[-bE,-wE]);var iQ=function(e,t){function A(A,n){return A=e(A,n),t(A[0],A[1])}return e.invert&&t.invert&&(A.invert=function(A,n){return(A=t.invert(A,n))&&e.invert(A[0],A[1])}),A};function oQ(e,t){return[GE(e)>bE?e+Math.round(-e/FE)*FE:e,t]}function aQ(e,t,A){return(e%=FE)?t||A?iQ(gQ(e),cQ(t,A)):gQ(e):t||A?cQ(t,A):oQ}function sQ(e){return function(t,A){return[(t+=e)>bE?t-FE:t<-bE?t+FE:t,A]}}function gQ(e){var t=sQ(e);return t.invert=sQ(-e),t}function cQ(e,t){var A=NE(e),n=UE(e),r=NE(t),i=UE(t);function o(e,t){var o=NE(t),a=NE(e)*o,s=UE(e)*o,g=UE(t),c=g*A+a*n;return[xE(s*r-c*i,a*A-g*n),OE(c*r+s*i)]}return o.invert=function(e,t){var o=NE(t),a=NE(e)*o,s=UE(e)*o,g=UE(t),c=g*r-s*i;return[xE(s*r+g*i,a*A+c*n),OE(c*A-a*n)]},o}oQ.invert=oQ;function uQ(e,t,A,n,r,i){if(A){var o=NE(t),a=UE(t),s=n*A;null==r?(r=t+n*FE,i=t-s/2):(r=lQ(o,r),i=lQ(o,i),(n>0?r<i:r>i)&&(r+=n*FE));for(var g,c=r;n>0?c>i:c<i;c-=s)g=JE([o,-a*NE(c),-a*UE(c)]),e.point(g[0],g[1])}}function lQ(e,t){(t=jE(t))[0]-=e,XE(t);var A,n=(A=-t[1])>1?0:A<-1?bE:Math.acos(A);return((-t[2]<0?-n:n)+FE-1e-6)%FE}var IQ=function(e){var t=NE(e),A=6*DE,n=t>0,r=GE(t)>1e-6;function i(e,A){return NE(e)*NE(A)>t}function o(e,A,n){var r=[1,0,0],i=VE(jE(e),jE(A)),o=PE(i,i),a=i[0],s=o-a*a;if(!s)return!n&&e;var g=t*o/s,c=-t*a/s,u=VE(r,i),l=WE(r,g);KE(l,WE(i,c));var I=u,C=PE(l,I),h=PE(I,I),f=C*C-h*(PE(l,l)-1);if(!(f<0)){var d=ME(f),B=WE(I,(-C-d)/h);if(KE(B,l),B=JE(B),!n)return B;var p,E=e[0],Q=A[0],y=e[1],v=A[1];Q<E&&(p=E,E=Q,Q=p);var m=Q-E,b=GE(m-bE)<1e-6;if(!b&&v<y&&(p=y,y=v,v=p),b||m<1e-6?b?y+v>0^B[1]<(GE(B[0]-E)<1e-6?y:v):y<=B[1]&&B[1]<=v:m>bE^(E<=B[0]&&B[0]<=Q)){var w=WE(I,(-C+d)/h);return KE(w,l),[B,JE(w)]}}}function a(t,A){var r=n?e:bE-e,i=0;return t<-r?i|=1:t>r&&(i|=2),A<-r?i|=4:A>r&&(i|=8),i}return tQ(i,(function(e){var t,A,s,g,c;return{lineStart:function(){g=s=!1,c=1},point:function(u,l){var I,C=[u,l],h=i(u,l),f=n?h?0:a(u,l):h?a(u+(u<0?bE:-bE),l):0;if(!t&&(g=s=h)&&e.lineStart(),h!==s&&(!(I=o(t,C))||LE(t,I)||LE(C,I))&&(C[2]=1),h!==s)c=0,h?(e.lineStart(),I=o(C,t),e.point(I[0],I[1])):(I=o(t,C),e.point(I[0],I[1],2),e.lineEnd()),t=I;else if(r&&t&&n^h){var d;f&A||!(d=o(C,t,!0))||(c=0,n?(e.lineStart(),e.point(d[0][0],d[0][1]),e.point(d[1][0],d[1][1]),e.lineEnd()):(e.point(d[1][0],d[1][1]),e.lineEnd(),e.lineStart(),e.point(d[0][0],d[0][1],3)))}!h||t&&LE(t,C)||e.point(C[0],C[1]),t=C,s=h,A=f},lineEnd:function(){s&&e.lineEnd(),t=null},clean:function(){return c|(g&&s)<<1}}}),(function(t,n,r,i){uQ(i,e,A,r,t,n)}),n?[0,-e]:[-bE,e-bE])};function CQ(e,t,A,n){function r(r,i){return e<=r&&r<=A&&t<=i&&i<=n}function i(r,i,a,g){var c=0,u=0;if(null==r||(c=o(r,a))!==(u=o(i,a))||s(r,i)<0^a>0)do{g.point(0===c||3===c?e:A,c>1?n:t)}while((c=(c+a+4)%4)!==u);else g.point(i[0],i[1])}function o(n,r){return GE(n[0]-e)<1e-6?r>0?0:3:GE(n[0]-A)<1e-6?r>0?2:1:GE(n[1]-t)<1e-6?r>0?1:0:r>0?3:2}function a(e,t){return s(e.x,t.x)}function s(e,t){var A=o(e,1),n=o(t,1);return A!==n?A-n:0===A?t[1]-e[1]:1===A?e[0]-t[0]:2===A?e[1]-t[1]:t[0]-e[0]}return function(o){var s,g,c,u,l,I,C,h,f,d,B,p=o,E=mE(),Q={point:y,lineStart:function(){Q.point=v,g&&g.push(c=[]);d=!0,f=!1,C=h=NaN},lineEnd:function(){s&&(v(u,l),I&&f&&E.rejoin(),s.push(E.result()));Q.point=y,f&&p.lineEnd()},polygonStart:function(){p=E,s=[],g=[],B=!0},polygonEnd:function(){var t=function(){for(var t=0,A=0,r=g.length;A<r;++A)for(var i,o,a=g[A],s=1,c=a.length,u=a[0],l=u[0],I=u[1];s<c;++s)i=l,o=I,u=a[s],l=u[0],I=u[1],o<=n?I>n&&(l-i)*(n-o)>(I-o)*(e-i)&&++t:I<=n&&(l-i)*(n-o)<(I-o)*(e-i)&&--t;return t}(),A=B&&t,r=(s=eQ(s)).length;(A||r)&&(o.polygonStart(),A&&(o.lineStart(),i(null,null,1,o),o.lineEnd()),r&&ZE(s,a,t,i,o),o.polygonEnd());p=o,s=g=c=null}};function y(e,t){r(e,t)&&p.point(e,t)}function v(i,o){var a=r(i,o);if(g&&c.push([i,o]),d)u=i,l=o,I=a,d=!1,a&&(p.lineStart(),p.point(i,o));else if(a&&f)p.point(i,o);else{var s=[C=Math.max(-1e9,Math.min(1e9,C)),h=Math.max(-1e9,Math.min(1e9,h))],E=[i=Math.max(-1e9,Math.min(1e9,i)),o=Math.max(-1e9,Math.min(1e9,o))];!function(e,t,A,n,r,i){var o,a=e[0],s=e[1],g=0,c=1,u=t[0]-a,l=t[1]-s;if(o=A-a,u||!(o>0)){if(o/=u,u<0){if(o<g)return;o<c&&(c=o)}else if(u>0){if(o>c)return;o>g&&(g=o)}if(o=r-a,u||!(o<0)){if(o/=u,u<0){if(o>c)return;o>g&&(g=o)}else if(u>0){if(o<g)return;o<c&&(c=o)}if(o=n-s,l||!(o>0)){if(o/=l,l<0){if(o<g)return;o<c&&(c=o)}else if(l>0){if(o>c)return;o>g&&(g=o)}if(o=i-s,l||!(o<0)){if(o/=l,l<0){if(o>c)return;o>g&&(g=o)}else if(l>0){if(o<g)return;o<c&&(c=o)}return g>0&&(e[0]=a+g*u,e[1]=s+g*l),c<1&&(t[0]=a+c*u,t[1]=s+c*l),!0}}}}}(s,E,e,t,A,n)?a&&(p.lineStart(),p.point(i,o),B=!1):(f||(p.lineStart(),p.point(s[0],s[1])),p.point(E[0],E[1]),a||p.lineEnd(),B=!1)}C=i,h=o,f=a}return Q}}var hQ=function(e){return e};function fQ(e){return function(t){var A=new dQ;for(var n in e)A[n]=e[n];return A.stream=t,A}}function dQ(){}function BQ(e,t){e&&EQ.hasOwnProperty(e.type)&&EQ[e.type](e,t)}dQ.prototype={constructor:dQ,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var pQ={Feature:function(e,t){BQ(e.geometry,t)},FeatureCollection:function(e,t){for(var A=e.features,n=-1,r=A.length;++n<r;)BQ(A[n].geometry,t)}},EQ={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)e=A[n],t.point(e[0],e[1],e[2])},LineString:function(e,t){QQ(e.coordinates,t,0)},MultiLineString:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)QQ(A[n],t,0)},Polygon:function(e,t){yQ(e.coordinates,t)},MultiPolygon:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)yQ(A[n],t)},GeometryCollection:function(e,t){for(var A=e.geometries,n=-1,r=A.length;++n<r;)BQ(A[n],t)}};function QQ(e,t,A){var n,r=-1,i=e.length-A;for(t.lineStart();++r<i;)n=e[r],t.point(n[0],n[1],n[2]);t.lineEnd()}function yQ(e,t){var A=-1,n=e.length;for(t.polygonStart();++A<n;)QQ(e[A],t,1);t.polygonEnd()}var vQ=1/0,mQ=vQ,bQ=-vQ,wQ=bQ;var SQ={point:function(e,t){e<vQ&&(vQ=e);e>bQ&&(bQ=e);t<mQ&&(mQ=t);t>wQ&&(wQ=t)},lineStart:vE,lineEnd:vE,polygonStart:vE,polygonEnd:vE,result:function(){var e=[[vQ,mQ],[bQ,wQ]];return bQ=wQ=-(mQ=vQ=1/0),e}};function FQ(e,t,A){var n=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=n&&e.clipExtent(null),function(e,t){e&&pQ.hasOwnProperty(e.type)?pQ[e.type](e,t):BQ(e,t)}(A,e.stream(SQ)),t(SQ.result()),null!=n&&e.clipExtent(n),e}function RQ(e,t,A){return FQ(e,(function(A){var n=t[1][0]-t[0][0],r=t[1][1]-t[0][1],i=Math.min(n/(A[1][0]-A[0][0]),r/(A[1][1]-A[0][1])),o=+t[0][0]+(n-i*(A[1][0]+A[0][0]))/2,a=+t[0][1]+(r-i*(A[1][1]+A[0][1]))/2;e.scale(150*i).translate([o,a])}),A)}var DQ=NE(30*DE),GQ=function(e,t){return+t?function(e,t){function A(n,r,i,o,a,s,g,c,u,l,I,C,h,f){var d=g-n,B=c-r,p=d*d+B*B;if(p>4*t&&h--){var E=o+l,Q=a+I,y=s+C,v=ME(E*E+Q*Q+y*y),m=OE(y/=v),b=GE(GE(y)-1)<1e-6||GE(i-u)<1e-6?(i+u)/2:xE(Q,E),w=e(b,m),S=w[0],F=w[1],R=S-n,D=F-r,G=B*R-d*D;(G*G/p>t||GE((d*R+B*D)/p-.5)>.3||o*l+a*I+s*C<DQ)&&(A(n,r,i,o,a,s,S,F,b,E/=v,Q/=v,y,h,f),f.point(S,F),A(S,F,b,E,Q,y,g,c,u,l,I,C,h,f))}}return function(t){var n,r,i,o,a,s,g,c,u,l,I,C,h={point:f,lineStart:d,lineEnd:p,polygonStart:function(){t.polygonStart(),h.lineStart=E},polygonEnd:function(){t.polygonEnd(),h.lineStart=d}};function f(A,n){A=e(A,n),t.point(A[0],A[1])}function d(){c=NaN,h.point=B,t.lineStart()}function B(n,r){var i=jE([n,r]),o=e(n,r);A(c,u,g,l,I,C,c=o[0],u=o[1],g=n,l=i[0],I=i[1],C=i[2],16,t),t.point(c,u)}function p(){h.point=f,t.lineEnd()}function E(){d(),h.point=Q,h.lineEnd=y}function Q(e,t){B(n=e,t),r=c,i=u,o=l,a=I,s=C,h.point=B}function y(){A(c,u,g,l,I,C,r,i,n,o,a,s,16,t),h.lineEnd=p,p()}return h}}(e,t):function(e){return fQ({point:function(t,A){t=e(t,A),this.stream.point(t[0],t[1])}})}(e)};var kQ=fQ({point:function(e,t){this.stream.point(e*DE,t*DE)}});function xQ(e,t,A,n,r,i){if(!i)return function(e,t,A,n,r){function i(i,o){return[t+e*(i*=n),A-e*(o*=r)]}return i.invert=function(i,o){return[(i-t)/e*n,(A-o)/e*r]},i}(e,t,A,n,r);var o=NE(i),a=UE(i),s=o*e,g=a*e,c=o/e,u=a/e,l=(a*A-o*t)/e,I=(a*t+o*A)/e;function C(e,i){return[s*(e*=n)-g*(i*=r)+t,A-g*e-s*i]}return C.invert=function(e,t){return[n*(c*e-u*t+l),r*(I-u*e-c*t)]},C}function NQ(e){return function(e){var t,A,n,r,i,o,a,s,g,c,u=150,l=480,I=250,C=0,h=0,f=0,d=0,B=0,p=0,E=1,Q=1,y=null,v=rQ,m=null,b=hQ,w=.5;function S(e){return s(e[0]*DE,e[1]*DE)}function F(e){return(e=s.invert(e[0],e[1]))&&[e[0]*RE,e[1]*RE]}function R(){var e=xQ(u,0,0,E,Q,p).apply(null,t(C,h)),n=xQ(u,l-e[0],I-e[1],E,Q,p);return A=aQ(f,d,B),a=iQ(t,n),s=iQ(A,a),o=GQ(a,w),D()}function D(){return g=c=null,S}return S.stream=function(e){return g&&c===e?g:g=kQ(function(e){return fQ({point:function(t,A){var n=e(t,A);return this.stream.point(n[0],n[1])}})}(A)(v(o(b(c=e)))))},S.preclip=function(e){return arguments.length?(v=e,y=void 0,D()):v},S.postclip=function(e){return arguments.length?(b=e,m=n=r=i=null,D()):b},S.clipAngle=function(e){return arguments.length?(v=+e?IQ(y=e*DE):(y=null,rQ),D()):y*RE},S.clipExtent=function(e){return arguments.length?(b=null==e?(m=n=r=i=null,hQ):CQ(m=+e[0][0],n=+e[0][1],r=+e[1][0],i=+e[1][1]),D()):null==m?null:[[m,n],[r,i]]},S.scale=function(e){return arguments.length?(u=+e,R()):u},S.translate=function(e){return arguments.length?(l=+e[0],I=+e[1],R()):[l,I]},S.center=function(e){return arguments.length?(C=e[0]%360*DE,h=e[1]%360*DE,R()):[C*RE,h*RE]},S.rotate=function(e){return arguments.length?(f=e[0]%360*DE,d=e[1]%360*DE,B=e.length>2?e[2]%360*DE:0,R()):[f*RE,d*RE,B*RE]},S.angle=function(e){return arguments.length?(p=e%360*DE,R()):p*RE},S.reflectX=function(e){return arguments.length?(E=e?-1:1,R()):E<0},S.reflectY=function(e){return arguments.length?(Q=e?-1:1,R()):Q<0},S.precision=function(e){return arguments.length?(o=GQ(a,w=e*e),D()):ME(w)},S.fitExtent=function(e,t){return RQ(S,e,t)},S.fitSize=function(e,t){return function(e,t,A){return RQ(e,[[0,0],t],A)}(S,e,t)},S.fitWidth=function(e,t){return function(e,t,A){return FQ(e,(function(A){var n=+t,r=n/(A[1][0]-A[0][0]),i=(n-r*(A[1][0]+A[0][0]))/2,o=-r*A[0][1];e.scale(150*r).translate([i,o])}),A)}(S,e,t)},S.fitHeight=function(e,t){return function(e,t,A){return FQ(e,(function(A){var n=+t,r=n/(A[1][1]-A[0][1]),i=-r*A[0][0],o=(n-r*(A[1][1]+A[0][1]))/2;e.scale(150*r).translate([i,o])}),A)}(S,e,t)},function(){return t=e.apply(this,arguments),S.invert=t.invert&&F,R()}}((function(){return e}))()}var UQ=Math.abs,_Q=(Math.atan,Math.atan2,Math.ceil,Math.cos),MQ=(Math.exp,Math.floor,Math.log,Math.max,Math.min,Math.pow,Math.round,Math.sign,Math.sin),OQ=(Math.tan,Math.PI),LQ=OQ/2,TQ=(Math.SQRT1_2,HQ(2));HQ(OQ);function ZQ(e){return e>1?LQ:e<-1?-LQ:Math.asin(e)}function HQ(e){return e>0?Math.sqrt(e):0}function YQ(e,t){var A,n=e*MQ(t),r=30;do{t-=A=(t+MQ(t)-n)/(1+_Q(t))}while(UQ(A)>1e-6&&--r>0);return t/2}var JQ=function(e,t,A){function n(n,r){return[e*n*_Q(r=YQ(A,r)),t*MQ(r)]}return n.invert=function(n,r){return r=ZQ(r/t),[n/(e*_Q(r)),ZQ((2*r+MQ(2*r))/A)]},n}(TQ/LQ,TQ,OQ),jQ=sp(),PQ=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function VQ(e,t){return function A(){var n=t();return n.type=e,n.path=sp().projection(n),n.copy=n.copy||function(){var e=A();return PQ.forEach((function(t){n[t]&&e[t](n[t]())})),e.path.pointRadius(n.path.pointRadius()),e},n}}function KQ(e,t){if(!e||"string"!==typeof e)throw new Error("Projection type must be a name string.");return e=e.toLowerCase(),arguments.length>1?(XQ[e]=VQ(e,t),this):XQ[e]||null}function WQ(e){return e&&e.path||jQ}var XQ={albers:tE,albersusa:function(){var e,t,A,n,r,i,o=tE(),a=eE().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=eE().rotate([157,0]).center([-3,19.9]).parallels([8,18]),g={point:function(e,t){i=[e,t]}};function c(e){var t=e[0],o=e[1];return i=null,A.point(t,o),i||(n.point(t,o),i)||(r.point(t,o),i)}function u(){return e=t=null,c}return c.invert=function(e){var t=o.scale(),A=o.translate(),n=(e[0]-A[0])/t,r=(e[1]-A[1])/t;return(r>=.12&&r<.234&&n>=-.425&&n<-.214?a:r>=.166&&r<.234&&n>=-.214&&n<-.115?s:o).invert(e)},c.stream=function(A){return e&&t===A?e:e=function(e){var t=e.length;return{point:function(A,n){for(var r=-1;++r<t;)e[r].point(A,n)},sphere:function(){for(var A=-1;++A<t;)e[A].sphere()},lineStart:function(){for(var A=-1;++A<t;)e[A].lineStart()},lineEnd:function(){for(var A=-1;++A<t;)e[A].lineEnd()},polygonStart:function(){for(var A=-1;++A<t;)e[A].polygonStart()},polygonEnd:function(){for(var A=-1;++A<t;)e[A].polygonEnd()}}}([o.stream(t=A),a.stream(A),s.stream(A)])},c.precision=function(e){return arguments.length?(o.precision(e),a.precision(e),s.precision(e),u()):o.precision()},c.scale=function(e){return arguments.length?(o.scale(e),a.scale(.35*e),s.scale(e),c.translate(o.translate())):o.scale()},c.translate=function(e){if(!arguments.length)return o.translate();var t=o.scale(),i=+e[0],c=+e[1];return A=o.translate(e).clipExtent([[i-.455*t,c-.238*t],[i+.455*t,c+.238*t]]).stream(g),n=a.translate([i-.307*t,c+.201*t]).clipExtent([[i-.425*t+1e-6,c+.12*t+1e-6],[i-.214*t-1e-6,c+.234*t-1e-6]]).stream(g),r=s.translate([i-.205*t,c+.212*t]).clipExtent([[i-.214*t+1e-6,c+.166*t+1e-6],[i-.115*t-1e-6,c+.234*t-1e-6]]).stream(g),u()},c.fitExtent=function(e,t){return Hp(c,e,t)},c.fitSize=function(e,t){return Yp(c,e,t)},c.fitWidth=function(e,t){return Jp(c,e,t)},c.fitHeight=function(e,t){return jp(c,e,t)},c.scale(1070)},azimuthalequalarea:function(){return Xp(rE).scale(124.75).clipAngle(179.999)},azimuthalequidistant:function(){return Xp(iE).scale(79.4188).clipAngle(179.999)},conicconformal:function(){return zp(gE).scale(109.5).parallels([30,30])},conicequalarea:eE,conicequidistant:function(){return zp(uE).scale(131.154).center([0,13.9389])},equalEarth:function(){return Xp(dE).scale(177.158)},equirectangular:function(){return Xp(cE).scale(152.63)},gnomonic:function(){return Xp(BE).scale(144.049).clipAngle(60)},identity:function(){var e,t,A,n,r,i,o,a=1,s=0,g=0,c=1,u=1,l=0,I=null,C=1,h=1,f=Lp({point:function(e,t){var A=p([e,t]);this.stream.point(A[0],A[1])}}),d=Nd;function B(){return C=a*c,h=a*u,i=o=null,p}function p(A){var n=A[0]*C,r=A[1]*h;if(l){var i=r*e-n*t;n=n*e+r*t,r=i}return[n+s,r+g]}return p.invert=function(A){var n=A[0]-s,r=A[1]-g;if(l){var i=r*e+n*t;n=n*e-r*t,r=i}return[n/C,r/h]},p.stream=function(e){return i&&o===e?i:i=f(d(o=e))},p.postclip=function(e){return arguments.length?(d=e,I=A=n=r=null,B()):d},p.clipExtent=function(e){return arguments.length?(d=null==e?(I=A=n=r=null,Nd):Op(I=+e[0][0],A=+e[0][1],n=+e[1][0],r=+e[1][1]),B()):null==I?null:[[I,A],[n,r]]},p.scale=function(e){return arguments.length?(a=+e,B()):a},p.translate=function(e){return arguments.length?(s=+e[0],g=+e[1],B()):[s,g]},p.angle=function(A){return arguments.length?(t=tB(l=A%360*Vd),e=qd(l),B()):l*Pd},p.reflectX=function(e){return arguments.length?(c=e?-1:1,B()):c<0},p.reflectY=function(e){return arguments.length?(u=e?-1:1,B()):u<0},p.fitExtent=function(e,t){return Hp(p,e,t)},p.fitSize=function(e,t){return Yp(p,e,t)},p.fitWidth=function(e,t){return Jp(p,e,t)},p.fitHeight=function(e,t){return jp(p,e,t)},p},mercator:function(){return aE(oE).scale(961/jd)},mollweide:function(){return NQ(JQ).scale(169.529)},naturalEarth1:function(){return Xp(pE).scale(175.295)},orthographic:function(){return Xp(EE).scale(249.5).clipAngle(90.000001)},stereographic:function(){return Xp(QE).scale(250).clipAngle(142)},transversemercator:function(){var e=aE(yE),t=e.center,A=e.rotate;return e.center=function(e){return arguments.length?t([-e[1],e[0]]):[(e=t())[1],-e[0]]},e.rotate=function(e){return arguments.length?A([e[0],e[1],e.length>2?e[2]+90:90]):[(e=A())[0],e[1],e[2]-90]},A([0,0,90]).scale(159.155)}};for(var qQ in XQ)KQ(qQ,XQ[qQ]);Math.PI;var zQ=Math.abs,$Q=(Math.atan,Math.atan2,Math.cos,Math.ceil);Math.exp,Math.floor,Math.hypot,Math.log,Math.pow,Math.sin,Math.sign,Math.sqrt,Math.tan;function ey(e,t,A){var n=kd(e,t-1e-6,A).concat(t);return function(e){return n.map((function(t){return[e,t]}))}}function ty(e,t,A){var n=kd(e,t-1e-6,A).concat(t);return function(e){return n.map((function(t){return[t,e]}))}}function Ay(){var e,t,A,n,r,i,o,a,s,g,c,u,l=10,I=l,C=90,h=360,f=2.5;function d(){return{type:"MultiLineString",coordinates:B()}}function B(){return kd($Q(n/C)*C,A,C).map(c).concat(kd($Q(a/h)*h,o,h).map(u)).concat(kd($Q(t/l)*l,e,l).filter((function(e){return zQ(e%C)>1e-6})).map(s)).concat(kd($Q(i/I)*I,r,I).filter((function(e){return zQ(e%h)>1e-6})).map(g))}return d.lines=function(){return B().map((function(e){return{type:"LineString",coordinates:e}}))},d.outline=function(){return{type:"Polygon",coordinates:[c(n).concat(u(o).slice(1),c(A).reverse().slice(1),u(a).reverse().slice(1))]}},d.extent=function(e){return arguments.length?d.extentMajor(e).extentMinor(e):d.extentMinor()},d.extentMajor=function(e){return arguments.length?(n=+e[0][0],A=+e[1][0],a=+e[0][1],o=+e[1][1],n>A&&(e=n,n=A,A=e),a>o&&(e=a,a=o,o=e),d.precision(f)):[[n,a],[A,o]]},d.extentMinor=function(A){return arguments.length?(t=+A[0][0],e=+A[1][0],i=+A[0][1],r=+A[1][1],t>e&&(A=t,t=e,e=A),i>r&&(A=i,i=r,r=A),d.precision(f)):[[t,i],[e,r]]},d.step=function(e){return arguments.length?d.stepMajor(e).stepMinor(e):d.stepMinor()},d.stepMajor=function(e){return arguments.length?(C=+e[0],h=+e[1],d):[C,h]},d.stepMinor=function(e){return arguments.length?(l=+e[0],I=+e[1],d):[l,I]},d.precision=function(l){return arguments.length?(f=+l,s=ey(i,r,90),g=ty(t,e,f),c=ey(a,o,90),u=ty(n,A,f),d):f},d.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}var ny=function(e,t,A){e.prototype=t.prototype=A,A.constructor=e};function ry(e,t){var A=Object.create(e.prototype);for(var n in t)A[n]=t[n];return A}function iy(){}var oy="\\s*([+-]?\\d+)\\s*",ay="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",sy="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",gy=/^#([0-9a-f]{3,8})$/,cy=new RegExp("^rgb\\("+[oy,oy,oy]+"\\)$"),uy=new RegExp("^rgb\\("+[sy,sy,sy]+"\\)$"),ly=new RegExp("^rgba\\("+[oy,oy,oy,ay]+"\\)$"),Iy=new RegExp("^rgba\\("+[sy,sy,sy,ay]+"\\)$"),Cy=new RegExp("^hsl\\("+[ay,sy,sy]+"\\)$"),hy=new RegExp("^hsla\\("+[ay,sy,sy,ay]+"\\)$"),fy={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};function dy(){return this.rgb().formatHex()}function By(){return this.rgb().formatRgb()}function py(e){var t,A;return e=(e+"").trim().toLowerCase(),(t=gy.exec(e))?(A=t[1].length,t=parseInt(t[1],16),6===A?Ey(t):3===A?new my(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===A?Qy(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===A?Qy(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=cy.exec(e))?new my(t[1],t[2],t[3],1):(t=uy.exec(e))?new my(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=ly.exec(e))?Qy(t[1],t[2],t[3],t[4]):(t=Iy.exec(e))?Qy(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Cy.exec(e))?Fy(t[1],t[2]/100,t[3]/100,1):(t=hy.exec(e))?Fy(t[1],t[2]/100,t[3]/100,t[4]):fy.hasOwnProperty(e)?Ey(fy[e]):"transparent"===e?new my(NaN,NaN,NaN,0):null}function Ey(e){return new my(e>>16&255,e>>8&255,255&e,1)}function Qy(e,t,A,n){return n<=0&&(e=t=A=NaN),new my(e,t,A,n)}function yy(e){return e instanceof iy||(e=py(e)),e?new my((e=e.rgb()).r,e.g,e.b,e.opacity):new my}function vy(e,t,A,n){return 1===arguments.length?yy(e):new my(e,t,A,null==n?1:n)}function my(e,t,A,n){this.r=+e,this.g=+t,this.b=+A,this.opacity=+n}function by(){return"#"+Sy(this.r)+Sy(this.g)+Sy(this.b)}function wy(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?")":", "+e+")")}function Sy(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function Fy(e,t,A,n){return n<=0?e=t=A=NaN:A<=0||A>=1?e=t=NaN:t<=0&&(e=NaN),new Dy(e,t,A,n)}function Ry(e){if(e instanceof Dy)return new Dy(e.h,e.s,e.l,e.opacity);if(e instanceof iy||(e=py(e)),!e)return new Dy;if(e instanceof Dy)return e;var t=(e=e.rgb()).r/255,A=e.g/255,n=e.b/255,r=Math.min(t,A,n),i=Math.max(t,A,n),o=NaN,a=i-r,s=(i+r)/2;return a?(o=t===i?(A-n)/a+6*(A<n):A===i?(n-t)/a+2:(t-A)/a+4,a/=s<.5?i+r:2-i-r,o*=60):a=s>0&&s<1?0:o,new Dy(o,a,s,e.opacity)}function Dy(e,t,A,n){this.h=+e,this.s=+t,this.l=+A,this.opacity=+n}function Gy(e,t,A){return 255*(e<60?t+(A-t)*e/60:e<180?A:e<240?t+(A-t)*(240-e)/60:t)}function ky(){}ny(iy,py,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:dy,formatHex:dy,formatHsl:function(){return Ry(this).formatHsl()},formatRgb:By,toString:By}),ny(my,vy,ry(iy,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new my(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new my(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){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:by,formatHex:by,formatRgb:wy,toString:wy})),ny(Dy,(function(e,t,A,n){return 1===arguments.length?Ry(e):new Dy(e,t,A,null==n?1:n)}),ry(iy,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new Dy(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new Dy(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,A=this.l,n=A+(A<.5?A:1-A)*t,r=2*A-n;return new my(Gy(e>=240?e-240:e+120,r,n),Gy(e,r,n),Gy(e<120?e+240:e-120,r,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}));var xy=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function Ny(){var e=1,t=1,A=o;function n(e,t){return t.map((function(t){return r(e,t)}))}function r(n,r){var o=[],a=[];return function(A,n,r){var o,a,s,g,c,u,l=new Array,I=new Array;o=a=-1,g=A[0]>=n,xy[g<<1].forEach(C);for(;++o<e-1;)s=g,g=A[o+1]>=n,xy[s|g<<1].forEach(C);xy[g<<0].forEach(C);for(;++a<t-1;){for(o=-1,g=A[a*e+e]>=n,c=A[a*e]>=n,xy[g<<1|c<<2].forEach(C);++o<e-1;)s=g,g=A[a*e+e+o+1]>=n,u=c,c=A[a*e+o+1]>=n,xy[s|g<<1|c<<2|u<<3].forEach(C);xy[g|c<<3].forEach(C)}o=-1,c=A[a*e]>=n,xy[c<<2].forEach(C);for(;++o<e-1;)u=c,c=A[a*e+o+1]>=n,xy[c<<2|u<<3].forEach(C);function C(e){var t,A,n=[e[0][0]+o,e[0][1]+a],s=[e[1][0]+o,e[1][1]+a],g=i(n),c=i(s);(t=I[g])?(A=l[c])?(delete I[t.end],delete l[A.start],t===A?(t.ring.push(s),r(t.ring)):l[t.start]=I[A.end]={start:t.start,end:A.end,ring:t.ring.concat(A.ring)}):(delete I[t.end],t.ring.push(s),I[t.end=c]=t):(t=l[c])?(A=I[g])?(delete l[t.start],delete I[A.end],t===A?(t.ring.push(s),r(t.ring)):l[A.start]=I[t.end]={start:A.start,end:t.end,ring:A.ring.concat(t.ring)}):(delete l[t.start],t.ring.unshift(n),l[t.start=g]=t):l[g]=I[c]={start:g,end:c,ring:[n,s]}}xy[c<<3].forEach(C)}(n,r,(function(e){A(e,n,r),function(e){var t=0,A=e.length,n=e[A-1][1]*e[0][0]-e[A-1][0]*e[0][1];for(;++t<A;)n+=e[t-1][1]*e[t][0]-e[t-1][0]*e[t][1];return n}(e)>0?o.push([e]):a.push(e)})),a.forEach((function(e){for(var t,A=0,n=o.length;A<n;++A)if(-1!==Uy((t=o[A])[0],e))return void t.push(e)})),{type:"MultiPolygon",value:r,coordinates:o}}function i(t){return 2*t[0]+t[1]*(e+1)*4}function o(A,n,r){A.forEach((function(A){var i,o=A[0],a=A[1],s=0|o,g=0|a,c=n[g*e+s];o>0&&o<e&&s===o&&(i=n[g*e+s-1],A[0]=o+(r-i)/(c-i)-.5),a>0&&a<t&&g===a&&(i=n[(g-1)*e+s],A[1]=a+(r-i)/(c-i)-.5)}))}return n.contour=r,n.size=function(A){if(!arguments.length)return[e,t];var r=Math.floor(A[0]),i=Math.floor(A[1]);return r>=0&&i>=0||Object(ue.o)("invalid size"),e=r,t=i,n},n.smooth=function(e){return arguments.length?(A=e?o:ky,n):A===o},n}function Uy(e,t){for(var A,n=-1,r=t.length;++n<r;)if(A=_y(e,t[n]))return A;return 0}function _y(e,t){for(var A=t[0],n=t[1],r=-1,i=0,o=e.length,a=o-1;i<o;a=i++){var s=e[i],g=s[0],c=s[1],u=e[a],l=u[0],I=u[1];if(My(s,u,t))return 0;c>n!==I>n&&A<(l-g)*(n-c)/(I-c)+g&&(r=-r)}return r}function My(e,t,A){var n,r,i,o;return function(e,t,A){return(t[0]-e[0])*(A[1]-e[1])===(A[0]-e[0])*(t[1]-e[1])}(e,t,A)&&(r=e[n=+(e[0]===t[0])],i=A[n],o=t[n],r<=i&&i<=o||o<=i&&i<=r)}function Oy(e,t,A){return function(n){var r=Object(ue.q)(n),i=A?Math.min(r[0],0):r[0],o=r[1],a=o-i,s=t?function(e,t,A){var n=Math.abs(t-e)/Math.max(0,A),r=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),i=n/r;return i>=Rd?r*=10:i>=Dd?r*=5:i>=Gd&&(r*=2),t<e?-r:r}(i,o,e):a/(e+1);return kd(i+s,o,s)}}function Ly(e){at.call(this,null,e)}function Ty(e,t,A,n,r){var i=e.x1||0,o=e.y1||0,a=t*A<0;function s(e){e.forEach(g)}function g(e){a&&e.reverse(),e.forEach(c)}function c(e){e[0]=(e[0]-i)*t+n,e[1]=(e[1]-o)*A+r}return function(e){return e.coordinates.forEach(s),e}}function Zy(e,t,A){var n=e>=0?e:wt(t,A);return Math.round((Math.sqrt(4*n*n+1)-1)/2)}function Hy(e){return Object(ue.E)(e)?e:Object(ue.m)(+e)}function Yy(){var e=function(e){return e[0]},t=function(e){return e[1]},A=ue.Q,n=[-1,-1],r=960,i=500,o=2;function a(a,s){var g=Zy(n[0],a,e)>>o,c=Zy(n[1],a,t)>>o,u=g?g+2:0,l=c?c+2:0,I=2*u+(r>>o),C=2*l+(i>>o),h=new Float32Array(I*C),f=new Float32Array(I*C),d=h;a.forEach((function(n){var r=u+(+e(n)>>o),i=l+(+t(n)>>o);r>=0&&r<I&&i>=0&&i<C&&(h[r+i*I]+=+A(n))})),g>0&&c>0?(Jy(I,C,h,f,g),jy(I,C,f,h,c),Jy(I,C,h,f,g),jy(I,C,f,h,c),Jy(I,C,h,f,g),jy(I,C,f,h,c)):g>0?(Jy(I,C,h,f,g),Jy(I,C,f,h,g),Jy(I,C,h,f,g),d=f):c>0&&(jy(I,C,h,f,c),jy(I,C,f,h,c),jy(I,C,h,f,c),d=f);for(var B=s?Math.pow(2,-2*o):1/function(e,t){var A=0;if(void 0===t){var n,r=Object(ut.a)(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;(i=+i)&&(A+=i)}}catch(c){r.e(c)}finally{r.f()}}else{var o,a=-1,s=Object(ut.a)(e);try{for(s.s();!(o=s.n()).done;){var g=o.value;(g=+t(g,++a,e))&&(A+=g)}}catch(c){s.e(c)}finally{s.f()}}return A}(d),p=0,E=I*C;p<E;++p)d[p]*=B;return{values:d,scale:1<<o,width:I,height:C,x1:u,y1:l,x2:u+(r>>o),y2:l+(i>>o)}}return a.x=function(t){return arguments.length?(e=Hy(t),a):e},a.y=function(e){return arguments.length?(t=Hy(e),a):t},a.weight=function(e){return arguments.length?(A=Hy(e),a):A},a.size=function(e){if(!arguments.length)return[r,i];var t=+e[0],A=+e[1];return t>=0&&A>=0||Object(ue.o)("invalid size"),r=t,i=A,a},a.cellSize=function(e){return arguments.length?((e=+e)>=1||Object(ue.o)("invalid cell size"),o=Math.floor(Math.log(e)/Math.LN2),a):1<<o},a.bandwidth=function(e){return arguments.length?(1===(e=Object(ue.i)(e)).length&&(e=[+e[0],+e[0]]),2!==e.length&&Object(ue.o)("invalid bandwidth"),n=e,a):n},a}function Jy(e,t,A,n,r){for(var i=1+(r<<1),o=0;o<t;++o)for(var a=0,s=0;a<e+r;++a)a<e&&(s+=A[a+o*e]),a>=r&&(a>=i&&(s-=A[a-i+o*e]),n[a-r+o*e]=s/Math.min(a+1,e-1+i-a,i))}function jy(e,t,A,n,r){for(var i=1+(r<<1),o=0;o<e;++o)for(var a=0,s=0;a<t+r;++a)a<t&&(s+=A[o+a*e]),a>=r&&(a>=i&&(s-=A[o+(a-i)*e]),n[o+(a-r)*e]=s/Math.min(a+1,t-1+i-a,i))}function Py(e){at.call(this,null,e)}Ly.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},Object(ue.z)(Ly,at,{transform:function(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var A=t.fork(t.NO_SOURCE|t.NO_FIELDS),n=t.materialize(t.SOURCE).source,r=e.field||ue.y,i=Ny().smooth(!1!==e.smooth),o=e.thresholds||function(e,t,A){var n=Oy(A.levels||10,A.nice,!1!==A.zero);return"shared"!==A.resolve?n:n(e.map((function(e){return xd(t(e).values)})))}(n,r,e),a=null===e.as?null:e.as||"contour",s=[];return n.forEach((function(t){var A=r(t),n=i.size([A.width,A.height])(A.values,Object(ue.B)(o)?o:o(A.values));!function(e,t,A,n){var r=n.scale||t.scale,i=n.translate||t.translate;Object(ue.E)(r)&&(r=r(A,n));Object(ue.E)(i)&&(i=i(A,n));if((1===r||null==r)&&!i)return;var o=(Object(ue.G)(r)?r:r[0])||1,a=(Object(ue.G)(r)?r:r[1])||1,s=i&&i[0]||0,g=i&&i[1]||0;e.forEach(Ty(t,o,a,s,g))}(n,A,t,e),n.forEach((function(e){s.push(Se(t,be(null!=a?Object($n.a)({},a,e):e)))}))})),this.value&&(A.rem=this.value),this.value=A.source=A.add=s,A}}),Py.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};var Vy=["x","y","weight","size","cellSize","bandwidth"];function Ky(e,t){return Vy.forEach((function(A){return null!=t[A]?e[A](t[A]):0})),e}function Wy(e){at.call(this,null,e)}Object(ue.z)(Py,at,{transform:function(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var A,n=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=function(e,t){var A,n,r,i,o,a,s=[],g=function(e){return e(i)};if(null==t)s.push(e);else for(A={},n=0,r=e.length;n<r;++n)i=e[n],o=t.map(g),(a=A[o])||(A[o]=a=[],a.dims=o,s.push(a)),a.push(i);return s}(t.materialize(t.SOURCE).source,e.groupby),i=(e.groupby||[]).map(ue.h),o=Ky(Yy(),e),a=e.as||"grid";return A=r.map((function(t){return be(function(e,t){for(var A=0;A<i.length;++A)e[i[A]]=t[A];return e}(Object($n.a)({},a,o(t,e.counts)),t.dims))})),this.value&&(n.rem=this.value),this.value=n.source=n.add=A,n}}),Wy.Definition={type:"Contour",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"values",type:"number",array:!0},{name:"x",type:"field"},{name:"y",type:"field"},{name:"weight",type:"field"},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number"},{name:"count",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"thresholds",type:"number",array:!0},{name:"smooth",type:"boolean",default:!0}]},Object(ue.z)(Wy,at,{transform:function(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var A,n,r=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=Ny().smooth(!1!==e.smooth),o=e.values,a=e.thresholds||Oy(e.count||10,e.nice,!!o),s=e.size;return o||(o=t.materialize(t.SOURCE).source,n=Ty(A=Ky(Yy(),e)(o,!0),A.scale||1,A.scale||1,0,0),s=[A.width,A.height],o=A.values),a=Object(ue.B)(a)?a:a(o),o=i.size(s)(o,a),n&&o.forEach(n),this.value&&(r.rem=this.value),this.value=r.source=r.add=(o||[]).map(be),r}});function Xy(e){at.call(this,null,e)}function qy(e){at.call(this,null,e)}function zy(e){at.call(this,null,e)}function $y(e){at.call(this,null,e)}function ev(e){at.call(this,[],e),this.generator=Ay()}function tv(e){at.call(this,null,e)}function Av(e){if(!Object(ue.E)(e))return!1;var t=Object(ue.fb)(Object(ue.g)(e));return t.$x||t.$y||t.$value||t.$max}function nv(e){at.call(this,null,e),this.modified(!0)}function rv(e,t,A){Object(ue.E)(e[t])&&e[t](A)}Xy.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},Object(ue.z)(Xy,at,{transform:function(e,t){var A,n=this._features,r=this._points,i=e.fields,o=i&&i[0],a=i&&i[1],s=e.geojson||!i&&ue.y,g=t.ADD;A=e.modified()||t.changed(t.REM)||t.modified(Object(ue.g)(s))||o&&t.modified(Object(ue.g)(o))||a&&t.modified(Object(ue.g)(a)),this.value&&!A||(g=t.SOURCE,this._features=n=[],this._points=r=[]),s&&t.visit(g,(function(e){return n.push(s(e))})),o&&a&&(t.visit(g,(function(e){var t=o(e),A=a(e);null!=t&&null!=A&&(t=+t)===t&&(A=+A)===A&&r.push([t,A])})),n=n.concat({type:"Feature",geometry:{type:"MultiPoint",coordinates:r}})),this.value={type:"FeatureCollection",features:n}}}),qy.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},Object(ue.z)(qy,at,{transform:function(e,t){var A=t.fork(t.ALL),n=this.value,r=e.field||ue.y,i=e.as||"path",o=A.SOURCE;!n||e.modified()?(this.value=n=WQ(e.projection),A.materialize().reflow()):o=r===ue.y||t.modified(r.fields)?A.ADD_MOD:A.ADD;var a=function(e,t){var A=e.pointRadius();e.context(null),null!=t&&e.pointRadius(t);return A}(n,e.pointRadius);return A.visit(o,(function(e){return e[i]=n(r(e))})),n.pointRadius(a),A.modifies(i)}}),zy.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},Object(ue.z)(zy,at,{transform:function(e,t){var A,n=e.projection,r=e.fields[0],i=e.fields[1],o=e.as||["x","y"],a=o[0],s=o[1];function g(e){var t=n([r(e),i(e)]);t?(e[a]=t[0],e[s]=t[1]):(e[a]=void 0,e[s]=void 0)}return e.modified()?t=t.materialize().reflow(!0).visit(t.SOURCE,g):(A=t.modified(r.fields)||t.modified(i.fields),t.visit(A?t.ADD_MOD:t.ADD,g)),t.modifies(o)}}),$y.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},Object(ue.z)($y,at,{transform:function(e,t){var A=t.fork(t.ALL),n=this.value,r=e.as||"shape",i=A.ADD;return n&&!e.modified()||(this.value=n=function(e,t,A){var n=null==A?function(A){return e(t(A))}:function(n){var r=e.pointRadius(),i=e.pointRadius(A)(t(n));return e.pointRadius(r),i};return n.context=function(t){return e.context(t),n},n}(WQ(e.projection),e.field||Object(ue.u)("datum"),e.pointRadius),A.materialize().reflow(),i=A.SOURCE),A.visit(i,(function(e){return e[r]=n})),A.modifies(r)}}),ev.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},Object(ue.z)(ev,at,{transform:function(e,t){var A,n=this.value,r=this.generator;if(!n.length||e.modified())for(var i in e)Object(ue.E)(r[i])&&r[i](e[i]);return A=r(),n.length?t.mod.push(Fe(n[0],A)):t.add.push(be(A)),n[0]=A,t}}),tv.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},Object(ue.z)(tv,at,{transform:function(e,t){if(!t.changed()&&!e.modified())return t.StopPropagation;var A=t.materialize(t.SOURCE).source,n="shared"===e.resolve,r=e.field||ue.y,i=function(e,t){var A;Object(ue.E)(e)?(A=function(A){return e(A,t)}).dep=Av(e):e?A=Object(ue.m)(e):(A=function(e){return e.$value/e.$max||0}).dep=!0;return A}(e.opacity,e),o=function(e,t){var A;Object(ue.E)(e)?(A=function(A){return vy(e(A,t))}).dep=Av(e):A=Object(ue.m)(vy(e||"#888"));return A}(e.color,e),a=e.as||"image",s={$x:0,$y:0,$value:0,$max:n?xd(A.map((function(e){return xd(r(e).values)}))):0};return A.forEach((function(e){var t=r(e),A=Object(ue.p)({},e,s);n||(A.$max=xd(t.values||[])),e[a]=function(e,t,A,n){for(var r=e.width,i=e.height,o=e.x1||0,a=e.y1||0,s=e.x2||r,g=e.y2||i,c=e.values,u=c?function(e){return c[e]}:ue.mb,l=Ii(s-o,g-a),I=l.getContext("2d"),C=I.getImageData(0,0,s-o,g-a),h=C.data,f=a,d=0;f<g;++f){t.$y=f-a;for(var B=o,p=f*r;B<s;++B,d+=4){t.$x=B-o,t.$value=u(B+p);var E=A(t);h[d+0]=E.r,h[d+1]=E.g,h[d+2]=E.b,h[d+3]=~~(255*n(t))}}return I.putImageData(C,0,0),l}(t,A,o.dep?o:Object(ue.m)(o(A)),i.dep?i:Object(ue.m)(i(A)))})),t.reflow(!0).modifies(a)}}),Object(ue.z)(nv,at,{transform:function(e,t){var A=this.value;return!A||e.modified("type")?(this.value=A=function(e){var t=KQ((e||"mercator").toLowerCase());t||Object(ue.o)("Unrecognized projection type: "+e);return t()}(e.type),PQ.forEach((function(t){null!=e[t]&&rv(A,t,e[t])}))):PQ.forEach((function(t){e.modified(t)&&rv(A,t,e[t])})),null!=e.pointRadius&&A.path.pointRadius(e.pointRadius),e.fit&&function(e,t){var A=function(e){return 1===(e=Object(ue.i)(e)).length?e[0]:{type:"FeatureCollection",features:e.reduce((function(e,t){return e.concat(function(e){return"FeatureCollection"===e.type?e.features:Object(ue.i)(e).filter((function(e){return null!=e})).map((function(e){return"Feature"===e.type?e:{type:"Feature",geometry:e}}))}(t))}),[])}}(t.fit);t.extent?e.fitExtent(t.extent,A):t.size&&e.fitSize(t.size,A)}(A,e),t.fork(t.NO_SOURCE|t.NO_FIELDS)}});var iv=A(1284),ov=function(e){return function(){return e}},av=function(e){return 1e-6*(e()-.5)};function sv(e){return e.x+e.vx}function gv(e){return e.y+e.vy}var cv=A(529);function uv(e){return e.index}function lv(e,t){var A=e.get(t);if(!A)throw new Error("node not found: "+t);return A}var Iv={center:function(e,t){var A,n=1;function r(){var r,i,o=A.length,a=0,s=0;for(r=0;r<o;++r)a+=(i=A[r]).x,s+=i.y;for(a=(a/o-e)*n,s=(s/o-t)*n,r=0;r<o;++r)(i=A[r]).x-=a,i.y-=s}return null==e&&(e=0),null==t&&(t=0),r.initialize=function(e){A=e},r.x=function(t){return arguments.length?(e=+t,r):e},r.y=function(e){return arguments.length?(t=+e,r):t},r.strength=function(e){return arguments.length?(n=+e,r):n},r},collide:function(e){var t,A,n,r=1,i=1;function o(){for(var e,o,s,g,c,u,l,I=t.length,C=0;C<i;++C)for(o=Object(iv.a)(t,sv,gv).visitAfter(a),e=0;e<I;++e)s=t[e],u=A[s.index],l=u*u,g=s.x+s.vx,c=s.y+s.vy,o.visit(h);function h(e,t,A,i,o){var a=e.data,I=e.r,C=u+I;if(!a)return t>g+C||i<g-C||A>c+C||o<c-C;if(a.index>s.index){var h=g-a.x-a.vx,f=c-a.y-a.vy,d=h*h+f*f;d<C*C&&(0===h&&(d+=(h=av(n))*h),0===f&&(d+=(f=av(n))*f),d=(C-(d=Math.sqrt(d)))/d*r,s.vx+=(h*=d)*(C=(I*=I)/(l+I)),s.vy+=(f*=d)*C,a.vx-=h*(C=1-C),a.vy-=f*C)}}}function a(e){if(e.data)return e.r=A[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function s(){if(t){var n,r,i=t.length;for(A=new Array(i),n=0;n<i;++n)r=t[n],A[r.index]=+e(r,n,t)}}return"function"!==typeof e&&(e=ov(null==e?1:+e)),o.initialize=function(e,A){t=e,n=A,s()},o.iterations=function(e){return arguments.length?(i=+e,o):i},o.strength=function(e){return arguments.length?(r=+e,o):r},o.radius=function(t){return arguments.length?(e="function"===typeof t?t:ov(+t),s(),o):e},o},nbody:function(){var e,t,A,n,r,i=ov(-30),o=1,a=1/0,s=.81;function g(A){var r,i=e.length,o=Object(iv.a)(e,cv.b,cv.c).visitAfter(u);for(n=A,r=0;r<i;++r)t=e[r],o.visit(l)}function c(){if(e){var t,A,n=e.length;for(r=new Array(n),t=0;t<n;++t)A=e[t],r[A.index]=+i(A,t,e)}}function u(e){var t,A,n,i,o,a=0,s=0;if(e.length){for(n=i=o=0;o<4;++o)(t=e[o])&&(A=Math.abs(t.value))&&(a+=t.value,s+=A,n+=A*t.x,i+=A*t.y);e.x=n/s,e.y=i/s}else{(t=e).x=t.data.x,t.y=t.data.y;do{a+=r[t.data.index]}while(t=t.next)}e.value=a}function l(e,i,g,c){if(!e.value)return!0;var u=e.x-t.x,l=e.y-t.y,I=c-i,C=u*u+l*l;if(I*I/s<C)return C<a&&(0===u&&(C+=(u=av(A))*u),0===l&&(C+=(l=av(A))*l),C<o&&(C=Math.sqrt(o*C)),t.vx+=u*e.value*n/C,t.vy+=l*e.value*n/C),!0;if(!(e.length||C>=a)){(e.data!==t||e.next)&&(0===u&&(C+=(u=av(A))*u),0===l&&(C+=(l=av(A))*l),C<o&&(C=Math.sqrt(o*C)));do{e.data!==t&&(I=r[e.data.index]*n/C,t.vx+=u*I,t.vy+=l*I)}while(e=e.next)}}return g.initialize=function(t,n){e=t,A=n,c()},g.strength=function(e){return arguments.length?(i="function"===typeof e?e:ov(+e),c(),g):i},g.distanceMin=function(e){return arguments.length?(o=e*e,g):Math.sqrt(o)},g.distanceMax=function(e){return arguments.length?(a=e*e,g):Math.sqrt(a)},g.theta=function(e){return arguments.length?(s=e*e,g):Math.sqrt(s)},g},link:function(e){var t,A,n,r,i,o,a=uv,s=function(e){return 1/Math.min(r[e.source.index],r[e.target.index])},g=ov(30),c=1;function u(n){for(var r=0,a=e.length;r<c;++r)for(var s,g,u,l,I,C,h,f=0;f<a;++f)g=(s=e[f]).source,l=(u=s.target).x+u.vx-g.x-g.vx||av(o),I=u.y+u.vy-g.y-g.vy||av(o),l*=C=((C=Math.sqrt(l*l+I*I))-A[f])/C*n*t[f],I*=C,u.vx-=l*(h=i[f]),u.vy-=I*h,g.vx+=l*(h=1-h),g.vy+=I*h}function l(){if(n){var o,s,g=n.length,c=e.length,u=new Map(n.map((function(e,t){return[a(e,t,n),e]})));for(o=0,r=new Array(g);o<c;++o)(s=e[o]).index=o,"object"!==typeof s.source&&(s.source=lv(u,s.source)),"object"!==typeof s.target&&(s.target=lv(u,s.target)),r[s.source.index]=(r[s.source.index]||0)+1,r[s.target.index]=(r[s.target.index]||0)+1;for(o=0,i=new Array(c);o<c;++o)s=e[o],i[o]=r[s.source.index]/(r[s.source.index]+r[s.target.index]);t=new Array(c),I(),A=new Array(c),C()}}function I(){if(n)for(var A=0,r=e.length;A<r;++A)t[A]=+s(e[A],A,e)}function C(){if(n)for(var t=0,r=e.length;t<r;++t)A[t]=+g(e[t],t,e)}return null==e&&(e=[]),u.initialize=function(e,t){n=e,o=t,l()},u.links=function(t){return arguments.length?(e=t,l(),u):e},u.id=function(e){return arguments.length?(a=e,u):a},u.iterations=function(e){return arguments.length?(c=+e,u):c},u.strength=function(e){return arguments.length?(s="function"===typeof e?e:ov(+e),I(),u):s},u.distance=function(e){return arguments.length?(g="function"===typeof e?e:ov(+e),C(),u):g},u},x:function(e){var t,A,n,r=ov(.1);function i(e){for(var r,i=0,o=t.length;i<o;++i)(r=t[i]).vx+=(n[i]-r.x)*A[i]*e}function o(){if(t){var i,o=t.length;for(A=new Array(o),n=new Array(o),i=0;i<o;++i)A[i]=isNaN(n[i]=+e(t[i],i,t))?0:+r(t[i],i,t)}}return"function"!==typeof e&&(e=ov(null==e?0:+e)),i.initialize=function(e){t=e,o()},i.strength=function(e){return arguments.length?(r="function"===typeof e?e:ov(+e),o(),i):r},i.x=function(t){return arguments.length?(e="function"===typeof t?t:ov(+t),o(),i):e},i},y:function(e){var t,A,n,r=ov(.1);function i(e){for(var r,i=0,o=t.length;i<o;++i)(r=t[i]).vy+=(n[i]-r.y)*A[i]*e}function o(){if(t){var i,o=t.length;for(A=new Array(o),n=new Array(o),i=0;i<o;++i)A[i]=isNaN(n[i]=+e(t[i],i,t))?0:+r(t[i],i,t)}}return"function"!==typeof e&&(e=ov(null==e?0:+e)),i.initialize=function(e){t=e,o()},i.strength=function(e){return arguments.length?(r="function"===typeof e?e:ov(+e),o(),i):r},i.y=function(t){return arguments.length?(e="function"===typeof t?t:ov(+t),o(),i):e},i}},Cv=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],hv=["static","iterations"],fv=["x","y","vx","vy"];function dv(e){at.call(this,null,e)}function Bv(e,t,A,n){var r,i,o,a,s=Object(ue.i)(t.forces);for(r=0,i=Cv.length;r<i;++r)"forces"!==(o=Cv[r])&&t.modified(o)&&e[o](t[o]);for(r=0,i=s.length;r<i;++r)a="forces"+r,(o=A||t.modified("forces",r)?Ev(s[r]):n&&pv(s[r],n)?e.force(a):null)&&e.force(a,o);for(i=e.numForces||0;r<i;++r)e.force("forces"+r,null);return e.numForces=s.length,e}function pv(e,t){var A,n;for(A in e)if(Object(ue.E)(n=e[A])&&t.modified(Object(ue.g)(n)))return 1;return 0}function Ev(e){var t,A;for(A in Object(ue.w)(Iv,e.force)||Object(ue.o)("Unrecognized force: "+e.force),t=Iv[e.force](),e)Object(ue.E)(t[A])&&Qv(t[A],e[A],e);return t}function Qv(e,t,A){e(Object(ue.E)(t)?function(e){return t(e,A)}:t)}function yv(e){var t=0,A=e.children,n=A&&A.length;if(n)for(;--n>=0;)t+=A[n].value;else t=1;e.value=t}dv.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:fv}]},Object(ue.z)(dv,at,{transform:function(e,t){var A,n,r=this.value,i=t.changed(t.ADD_REM),o=e.modified(Cv),a=e.iterations||300;if(r?(i&&(t.modifies("index"),r.nodes(t.source)),(o||t.changed(t.MOD))&&Bv(r,e,0,t)):(this.value=r=function(e,t){var A=Object(cv.a)(e),n=A.stop,r=A.restart,i=!1;return A.stopped=function(){return i},A.restart=function(){return i=!1,r()},A.stop=function(){return i=!0,n()},Bv(A,t,!0).on("end",(function(){return i=!0}))}(t.source,e),r.on("tick",(A=t.dataflow,n=this,function(){return A.touch(n).run()})),e.static||(i=!0,r.tick()),t.modifies("index")),o||i||e.modified(hv)||t.changed()&&e.restart)if(r.alpha(Math.max(r.alpha(),e.alpha||1)).alphaDecay(1-Math.pow(r.alphaMin(),1/a)),e.static)for(r.stop();--a>=0;)r.tick();else if(r.stopped()&&r.restart(),!i)return t.StopPropagation;return this.finish(e,t)},finish:function(e,t){for(var A,n=t.dataflow,r=this._argops,i=0,o=r.length;i<o;++i)if("forces"===(A=r[i]).name&&"link"===A.op._argval.force)for(var a,s=A.op._argops,g=0,c=s.length;g<c;++g)if("links"===s[g].name&&(a=s[g].op.source)){n.pulse(a,n.changeset().reflow());break}return t.reflow(e.modified()).modifies(fv)}});var vv=Ie.a.mark(mv);function mv(){var e,t,A,n,r,i;return Ie.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:A=[e=this];case 1:t=A.reverse(),A=[];case 2:if(!(e=t.pop())){o.next=8;break}return o.next=5,e;case 5:if(n=e.children)for(r=0,i=n.length;r<i;++r)A.push(n[r]);o.next=2;break;case 8:if(A.length){o.next=1;break}case 9:case"end":return o.stop()}}),vv,this)}function bv(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=Sv)):void 0===t&&(t=wv);for(var A,n,r,i,o,a=new Dv(e),s=[a];A=s.pop();)if((r=t(A.data))&&(o=(r=Array.from(r)).length))for(A.children=r,i=o-1;i>=0;--i)s.push(n=r[i]=new Dv(r[i])),n.parent=A,n.depth=A.depth+1;return a.eachBefore(Rv)}function wv(e){return e.children}function Sv(e){return Array.isArray(e)?e[1]:null}function Fv(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function Rv(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function Dv(e){this.data=e,this.depth=this.height=0,this.parent=null}Dv.prototype=bv.prototype=Object($n.a)({constructor:Dv,count:function(){return this.eachAfter(yv)},each:function(e,t){var A,n=-1,r=Object(ut.a)(this);try{for(r.s();!(A=r.n()).done;){var i=A.value;e.call(t,i,++n,this)}}catch(o){r.e(o)}finally{r.f()}return this},eachAfter:function(e,t){for(var A,n,r,i=this,o=[i],a=[],s=-1;i=o.pop();)if(a.push(i),A=i.children)for(n=0,r=A.length;n<r;++n)o.push(A[n]);for(;i=a.pop();)e.call(t,i,++s,this);return this},eachBefore:function(e,t){for(var A,n,r=this,i=[r],o=-1;r=i.pop();)if(e.call(t,r,++o,this),A=r.children)for(n=A.length-1;n>=0;--n)i.push(A[n]);return this},find:function(e,t){var A,n=-1,r=Object(ut.a)(this);try{for(r.s();!(A=r.n()).done;){var i=A.value;if(e.call(t,i,++n,this))return i}}catch(o){r.e(o)}finally{r.f()}},sum:function(e){return this.eachAfter((function(t){for(var A=+e(t.data)||0,n=t.children,r=n&&n.length;--r>=0;)A+=n[r].value;t.value=A}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,A=function(e,t){if(e===t)return e;var A=e.ancestors(),n=t.ancestors(),r=null;e=A.pop(),t=n.pop();for(;e===t;)r=e,e=A.pop(),t=n.pop();return r}(t,e),n=[t];t!==A;)t=t.parent,n.push(t);for(var r=n.length;e!==A;)n.splice(r,0,e),e=e.parent;return n},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(A){A!==e&&t.push({source:A.parent,target:A})})),t},copy:function(){return bv(this).eachBefore(Fv)}},Symbol.iterator,mv);var Gv=function(e){for(var t,A,n=0,r=(e=function(e){for(var t,A,n=e.length;n;)A=Math.random()*n--|0,t=e[n],e[n]=e[A],e[A]=t;return e}(Array.from(e))).length,i=[];n<r;)t=e[n],A&&Nv(A,t)?++n:(A=_v(i=kv(i,t)),n=0);return A};function kv(e,t){var A,n;if(Uv(t,e))return[t];for(A=0;A<e.length;++A)if(xv(t,e[A])&&Uv(Mv(e[A],t),e))return[e[A],t];for(A=0;A<e.length-1;++A)for(n=A+1;n<e.length;++n)if(xv(Mv(e[A],e[n]),t)&&xv(Mv(e[A],t),e[n])&&xv(Mv(e[n],t),e[A])&&Uv(Ov(e[A],e[n],t),e))return[e[A],e[n],t];throw new Error}function xv(e,t){var A=e.r-t.r,n=t.x-e.x,r=t.y-e.y;return A<0||A*A<n*n+r*r}function Nv(e,t){var A=e.r-t.r+1e-9*Math.max(e.r,t.r,1),n=t.x-e.x,r=t.y-e.y;return A>0&&A*A>n*n+r*r}function Uv(e,t){for(var A=0;A<t.length;++A)if(!Nv(e,t[A]))return!1;return!0}function _v(e){switch(e.length){case 1:return{x:(t=e[0]).x,y:t.y,r:t.r};case 2:return Mv(e[0],e[1]);case 3:return Ov(e[0],e[1],e[2])}var t}function Mv(e,t){var A=e.x,n=e.y,r=e.r,i=t.x,o=t.y,a=t.r,s=i-A,g=o-n,c=a-r,u=Math.sqrt(s*s+g*g);return{x:(A+i+s/u*c)/2,y:(n+o+g/u*c)/2,r:(u+r+a)/2}}function Ov(e,t,A){var n=e.x,r=e.y,i=e.r,o=t.x,a=t.y,s=t.r,g=A.x,c=A.y,u=A.r,l=n-o,I=n-g,C=r-a,h=r-c,f=s-i,d=u-i,B=n*n+r*r-i*i,p=B-o*o-a*a+s*s,E=B-g*g-c*c+u*u,Q=I*C-l*h,y=(C*E-h*p)/(2*Q)-n,v=(h*f-C*d)/Q,m=(I*p-l*E)/(2*Q)-r,b=(l*d-I*f)/Q,w=v*v+b*b-1,S=2*(i+y*v+m*b),F=y*y+m*m-i*i,R=-(w?(S+Math.sqrt(S*S-4*w*F))/(2*w):F/S);return{x:n+y+v*R,y:r+m+b*R,r:R}}function Lv(e,t,A){var n,r,i,o,a=e.x-t.x,s=e.y-t.y,g=a*a+s*s;g?(r=t.r+A.r,r*=r,o=e.r+A.r,r>(o*=o)?(n=(g+o-r)/(2*g),i=Math.sqrt(Math.max(0,o/g-n*n)),A.x=e.x-n*a-i*s,A.y=e.y-n*s+i*a):(n=(g+r-o)/(2*g),i=Math.sqrt(Math.max(0,r/g-n*n)),A.x=t.x+n*a-i*s,A.y=t.y+n*s+i*a)):(A.x=t.x+A.r,A.y=t.y)}function Tv(e,t){var A=e.r+t.r-1e-6,n=t.x-e.x,r=t.y-e.y;return A>0&&A*A>n*n+r*r}function Zv(e){var t=e._,A=e.next._,n=t.r+A.r,r=(t.x*A.r+A.x*t.r)/n,i=(t.y*A.r+A.y*t.r)/n;return r*r+i*i}function Hv(e){this._=e,this.next=null,this.previous=null}function Yv(e){if(!(i=(t=e,e="object"===typeof t&&"length"in t?t:Array.from(t)).length))return 0;var t,A,n,r,i,o,a,s,g,c,u,l;if((A=e[0]).x=0,A.y=0,!(i>1))return A.r;if(n=e[1],A.x=-n.r,n.x=A.r,n.y=0,!(i>2))return A.r+n.r;Lv(n,A,r=e[2]),A=new Hv(A),n=new Hv(n),r=new Hv(r),A.next=r.previous=n,n.next=A.previous=r,r.next=n.previous=A;e:for(s=3;s<i;++s){Lv(A._,n._,r=e[s]),r=new Hv(r),g=n.next,c=A.previous,u=n._.r,l=A._.r;do{if(u<=l){if(Tv(g._,r._)){n=g,A.next=n,n.previous=A,--s;continue e}u+=g._.r,g=g.next}else{if(Tv(c._,r._)){(A=c).next=n,n.previous=A,--s;continue e}l+=c._.r,c=c.previous}}while(g!==c.next);for(r.previous=A,r.next=n,A.next=n.previous=n=r,o=Zv(A);(r=r.next)!==n;)(a=Zv(r))<o&&(A=r,o=a);n=A.next}for(A=[n._],r=n;(r=r.next)!==n;)A.push(r._);for(r=Gv(A),s=0;s<i;++s)(A=e[s]).x-=r.x,A.y-=r.y;return r.r}function Jv(e){return null==e?null:jv(e)}function jv(e){if("function"!==typeof e)throw new Error;return e}function Pv(){return 0}var Vv=function(e){return function(){return e}};function Kv(e){return Math.sqrt(e.value)}function Wv(e){return function(t){t.children||(t.r=Math.max(0,+e(t)||0))}}function Xv(e,t){return function(A){if(n=A.children){var n,r,i,o=n.length,a=e(A)*t||0;if(a)for(r=0;r<o;++r)n[r].r+=a;if(i=Yv(n),a)for(r=0;r<o;++r)n[r].r-=a;A.r=i+a}}}function qv(e){return function(t){var A=t.parent;t.r*=e,A&&(t.x=A.x+e*t.x,t.y=A.y+e*t.y)}}var zv=function(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)},$v=function(e,t,A,n,r){for(var i,o=e.children,a=-1,s=o.length,g=e.value&&(n-t)/e.value;++a<s;)(i=o[a]).y0=A,i.y1=r,i.x0=t,i.x1=t+=i.value*g},em={depth:-1},tm={};function Am(e){return e.id}function nm(e){return e.parentId}var rm=function(){var e=Am,t=nm;function A(A){var n,r,i,o,a,s,g,c=Array.from(A),u=c.length,l=new Map;for(r=0;r<u;++r)n=c[r],a=c[r]=new Dv(n),null!=(s=e(n,r,A))&&(s+="")&&(g=a.id=s,l.set(g,l.has(g)?tm:a)),null!=(s=t(n,r,A))&&(s+="")&&(a.parent=s);for(r=0;r<u;++r)if(s=(a=c[r]).parent){if(!(o=l.get(s)))throw new Error("missing: "+s);if(o===tm)throw new Error("ambiguous: "+s);o.children?o.children.push(a):o.children=[a],a.parent=o}else{if(i)throw new Error("multiple roots");i=a}if(!i)throw new Error("no root");if(i.parent=em,i.eachBefore((function(e){e.depth=e.parent.depth+1,--u})).eachBefore(Rv),i.parent=null,u>0)throw new Error("cycle");return i}return A.id=function(t){return arguments.length?(e=jv(t),A):e},A.parentId=function(e){return arguments.length?(t=jv(e),A):t},A};function im(e,t){return e.parent===t.parent?1:2}function om(e){var t=e.children;return t?t[0]:e.t}function am(e){var t=e.children;return t?t[t.length-1]:e.t}function sm(e,t,A){var n=A/(t.i-e.i);t.c-=n,t.s+=A,e.c+=n,t.z+=A,t.m+=A}function gm(e,t,A){return e.a.parent===t.parent?e.a:A}function cm(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}cm.prototype=Object.create(Dv.prototype);function um(e,t){return e.parent===t.parent?1:2}function lm(e,t){return e+t.x}function Im(e,t){return Math.max(e,t.y)}var Cm=function(e,t,A,n,r){for(var i,o=e.children,a=-1,s=o.length,g=e.value&&(r-A)/e.value;++a<s;)(i=o[a]).x0=t,i.x1=n,i.y0=A,i.y1=A+=i.value*g},hm=(1+Math.sqrt(5))/2;function fm(e,t,A,n,r,i){for(var o,a,s,g,c,u,l,I,C,h,f,d=[],B=t.children,p=0,E=0,Q=B.length,y=t.value;p<Q;){s=r-A,g=i-n;do{c=B[E++].value}while(!c&&E<Q);for(u=l=c,f=c*c*(h=Math.max(g/s,s/g)/(y*e)),C=Math.max(l/f,f/u);E<Q;++E){if(c+=a=B[E].value,a<u&&(u=a),a>l&&(l=a),f=c*c*h,(I=Math.max(l/f,f/u))>C){c-=a;break}C=I}d.push(o={value:c,dice:s<g,children:B.slice(p,E)}),o.dice?$v(o,A,n,r,y?n+=g*c/y:i):Cm(o,A,n,y?A+=s*c/y:r,i),y-=c,p=E}return d}var dm=function e(t){function A(e,A,n,r,i){fm(t,e,A,n,r,i)}return A.ratio=function(t){return e((t=+t)>1?t:1)},A}(hm),Bm=function e(t){function A(e,A,n,r,i){if((o=e._squarify)&&o.ratio===t)for(var o,a,s,g,c,u=-1,l=o.length,I=e.value;++u<l;){for(s=(a=o[u]).children,g=a.value=0,c=s.length;g<c;++g)a.value+=s[g].value;a.dice?$v(a,A,n,r,I?n+=(i-n)*a.value/I:i):Cm(a,A,n,I?A+=(r-A)*a.value/I:r,i),I-=a.value}else e._squarify=o=fm(t,e,A,n,r,i),o.ratio=t}return A.ratio=function(t){return e((t=+t)>1?t:1)},A}(hm);function pm(e,t,A){var n={};return e.each((function(e){var r=e.data;A(r)&&(n[t(r)]=e)})),e.lookup=n,e}function Em(e){at.call(this,null,e)}Em.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};var Qm=function(e){return e.values};function ym(){var e=[],t={entries:function(t){return function t(A,n){if(++n>e.length)return A;var r=[];for(var i in A)r.push({key:i,values:t(A[i],n)});return r}(function t(A,n){if(n>=e.length)return A;var r,i,o,a=A.length,s=e[n++],g={},c={},u=-1;for(;++u<a;)r=s(i=A[u])+"",(o=g[r])?o.push(i):g[r]=[i];for(r in g)c[r]=t(g[r],n);return c}(t,0),0)},key:function(A){return e.push(A),t}};return t}function vm(e){at.call(this,null,e)}Object(ue.z)(Em,at,{transform:function(e,t){t.source||Object(ue.o)("Nest transform requires an upstream data source.");var A=e.generate,n=e.modified(),r=t.clone(),i=this.value;return(!i||n||t.changed())&&(i&&i.each((function(e){e.children&&ye(e.data)&&r.rem.push(e.data)})),this.value=i=bv({values:Object(ue.i)(e.keys).reduce((function(e,t){return e.key(t),e}),ym()).entries(r.source)},Qm),A&&i.each((function(e){e.children&&(e=be(e.data),r.add.push(e),r.source.push(e))})),pm(i,ve,ve)),r.source.root=i,r}});var mm=function(e,t){return e.parent===t.parent?1:2};Object(ue.z)(vm,at,{transform:function(e,t){t.source&&t.source.root||Object(ue.o)(this.constructor.name+" transform requires a backing tree data source.");var A=this.layout(e.method),n=this.fields,r=t.source.root,i=e.as||n;e.field?r.sum(e.field):r.count(),e.sort&&r.sort(Re(e.sort,(function(e){return e.data}))),function(e,t,A){for(var n,r=0,i=t.length;r<i;++r)(n=t[r])in A&&e[n](A[n])}(A,this.params,e),A.separation&&A.separation(!1!==e.separation?mm:ue.Q);try{this.value=A(r)}catch(o){Object(ue.o)(o)}return r.each((function(e){return function(e,t,A){for(var n=e.data,r=t.length-1,i=0;i<r;++i)n[A[i]]=e[t[i]];n[A[r]]=e.children?e.children.length:0}(e,n,i)})),t.reflow(e.modified()).modifies(i).modifies("leaf")}});var bm=["x","y","r","depth","children"];function wm(e){vm.call(this,e)}wm.Definition={type:"Pack",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"radius",type:"field",default:null},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:bm.length,default:bm}]},Object(ue.z)(wm,vm,{layout:function(){var e=null,t=1,A=1,n=Pv;function r(r){return r.x=t/2,r.y=A/2,e?r.eachBefore(Wv(e)).eachAfter(Xv(n,.5)).eachBefore(qv(1)):r.eachBefore(Wv(Kv)).eachAfter(Xv(Pv,1)).eachAfter(Xv(n,r.r/Math.min(t,A))).eachBefore(qv(Math.min(t,A)/(2*r.r))),r}return r.radius=function(t){return arguments.length?(e=Jv(t),r):e},r.size=function(e){return arguments.length?(t=+e[0],A=+e[1],r):[t,A]},r.padding=function(e){return arguments.length?(n="function"===typeof e?e:Vv(+e),r):n},r},params:["radius","size","padding"],fields:bm});var Sm=["x0","y0","x1","y1","depth","children"];function Fm(e){vm.call(this,e)}function Rm(e){at.call(this,null,e)}Fm.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:Sm.length,default:Sm}]},Object(ue.z)(Fm,vm,{layout:function(){var e=1,t=1,A=0,n=!1;function r(r){var i=r.height+1;return r.x0=r.y0=A,r.x1=e,r.y1=t/i,r.eachBefore(function(e,t){return function(n){n.children&&$v(n,n.x0,e*(n.depth+1)/t,n.x1,e*(n.depth+2)/t);var r=n.x0,i=n.y0,o=n.x1-A,a=n.y1-A;o<r&&(r=o=(r+o)/2),a<i&&(i=a=(i+a)/2),n.x0=r,n.y0=i,n.x1=o,n.y1=a}}(t,i)),n&&r.eachBefore(zv),r}return r.round=function(e){return arguments.length?(n=!!e,r):n},r.size=function(A){return arguments.length?(e=+A[0],t=+A[1],r):[e,t]},r.padding=function(e){return arguments.length?(A=+e,r):A},r},params:["size","round","padding"],fields:Sm}),Rm.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},Object(ue.z)(Rm,at,{transform:function(e,t){t.source||Object(ue.o)("Stratify transform requires an upstream data source.");var A=this.value,n=e.modified(),r=t.fork(t.ALL).materialize(t.SOURCE),i=!A||n||t.changed(t.ADD_REM)||t.modified(e.key.fields)||t.modified(e.parentKey.fields);return r.source=r.source.slice(),i&&(A=r.source.length?pm(rm().id(e.key).parentId(e.parentKey)(r.source),e.key,ue.ib):pm(rm()([{}]),e.key,e.key)),r.source.root=this.value=A,r}});var Dm={tidy:function(){var e=im,t=1,A=1,n=null;function r(r){var s=function(e){for(var t,A,n,r,i,o=new cm(e,0),a=[o];t=a.pop();)if(n=t._.children)for(t.children=new Array(i=n.length),r=i-1;r>=0;--r)a.push(A=t.children[r]=new cm(n[r],r)),A.parent=t;return(o.parent=new cm(null,0)).children=[o],o}(r);if(s.eachAfter(i),s.parent.m=-s.z,s.eachBefore(o),n)r.eachBefore(a);else{var g=r,c=r,u=r;r.eachBefore((function(e){e.x<g.x&&(g=e),e.x>c.x&&(c=e),e.depth>u.depth&&(u=e)}));var l=g===c?1:e(g,c)/2,I=l-g.x,C=t/(c.x+l+I),h=A/(u.depth||1);r.eachBefore((function(e){e.x=(e.x+I)*C,e.y=e.depth*h}))}return r}function i(t){var A=t.children,n=t.parent.children,r=t.i?n[t.i-1]:null;if(A){!function(e){for(var t,A=0,n=0,r=e.children,i=r.length;--i>=0;)(t=r[i]).z+=A,t.m+=A,A+=t.s+(n+=t.c)}(t);var i=(A[0].z+A[A.length-1].z)/2;r?(t.z=r.z+e(t._,r._),t.m=t.z-i):t.z=i}else r&&(t.z=r.z+e(t._,r._));t.parent.A=function(t,A,n){if(A){for(var r,i=t,o=t,a=A,s=i.parent.children[0],g=i.m,c=o.m,u=a.m,l=s.m;a=am(a),i=om(i),a&&i;)s=om(s),(o=am(o)).a=t,(r=a.z+u-i.z-g+e(a._,i._))>0&&(sm(gm(a,t,n),t,r),g+=r,c+=r),u+=a.m,g+=i.m,l+=s.m,c+=o.m;a&&!am(o)&&(o.t=a,o.m+=u-c),i&&!om(s)&&(s.t=i,s.m+=g-l,n=t)}return n}(t,r,t.parent.A||n[0])}function o(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function a(e){e.x*=t,e.y=e.depth*A}return r.separation=function(t){return arguments.length?(e=t,r):e},r.size=function(e){return arguments.length?(n=!1,t=+e[0],A=+e[1],r):n?null:[t,A]},r.nodeSize=function(e){return arguments.length?(n=!0,t=+e[0],A=+e[1],r):n?[t,A]:null},r},cluster:function(){var e=um,t=1,A=1,n=!1;function r(r){var i,o=0;r.eachAfter((function(t){var A=t.children;A?(t.x=function(e){return e.reduce(lm,0)/e.length}(A),t.y=function(e){return 1+e.reduce(Im,0)}(A)):(t.x=i?o+=e(t,i):0,t.y=0,i=t)}));var a=function(e){for(var t;t=e.children;)e=t[0];return e}(r),s=function(e){for(var t;t=e.children;)e=t[t.length-1];return e}(r),g=a.x-e(a,s)/2,c=s.x+e(s,a)/2;return r.eachAfter(n?function(e){e.x=(e.x-r.x)*t,e.y=(r.y-e.y)*A}:function(e){e.x=(e.x-g)/(c-g)*t,e.y=(1-(r.y?e.y/r.y:1))*A})}return r.separation=function(t){return arguments.length?(e=t,r):e},r.size=function(e){return arguments.length?(n=!1,t=+e[0],A=+e[1],r):n?null:[t,A]},r.nodeSize=function(e){return arguments.length?(n=!0,t=+e[0],A=+e[1],r):n?[t,A]:null},r}},Gm=["x","y","depth","children"];function km(e){vm.call(this,e)}function xm(e){at.call(this,[],e)}km.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:Gm.length,default:Gm}]},Object(ue.z)(km,vm,{layout:function(e){var t=e||"tidy";if(Object(ue.w)(Dm,t))return Dm[t]();Object(ue.o)("Unrecognized Tree layout method: "+t)},params:["size","nodeSize"],fields:Gm}),xm.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},Object(ue.z)(xm,at,{transform:function(e,t){var A=this.value,n=t.source&&t.source.root,r=t.fork(t.NO_SOURCE),i={};return n||Object(ue.o)("TreeLinks transform requires a tree data source."),t.changed(t.ADD_REM)?(r.rem=A,t.visit(t.SOURCE,(function(e){return i[ve(e)]=1})),n.each((function(e){var t=e.data,A=e.parent&&e.parent.data;A&&i[ve(t)]&&i[ve(A)]&&r.add.push(be({source:A,target:t}))})),this.value=r.add):t.changed(t.MOD)&&(t.visit(t.MOD,(function(e){return i[ve(e)]=1})),A.forEach((function(e){(i[ve(e.source)]||i[ve(e.target)])&&r.mod.push(e)}))),r}});var Nm={binary:function(e,t,A,n,r){var i,o,a=e.children,s=a.length,g=new Array(s+1);for(g[0]=o=i=0;i<s;++i)g[i+1]=o+=a[i].value;!function e(t,A,n,r,i,o,s){if(t>=A-1){var c=a[t];return c.x0=r,c.y0=i,c.x1=o,void(c.y1=s)}var u=g[t],l=n/2+u,I=t+1,C=A-1;for(;I<C;){var h=I+C>>>1;g[h]<l?I=h+1:C=h}l-g[I-1]<g[I]-l&&t+1<I&&--I;var f=g[I]-u,d=n-f;if(o-r>s-i){var B=n?(r*d+o*f)/n:o;e(t,I,f,r,i,B,s),e(I,A,d,B,i,o,s)}else{var p=n?(i*d+s*f)/n:s;e(t,I,f,r,i,o,p),e(I,A,d,r,p,o,s)}}(0,s,e.value,t,A,n,r)},dice:$v,slice:Cm,slicedice:function(e,t,A,n,r){(1&e.depth?Cm:$v)(e,t,A,n,r)},squarify:dm,resquarify:Bm},Um=["x0","y0","x1","y1","depth","children"];function _m(e){vm.call(this,e)}_m.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:Um.length,default:Um}]},Object(ue.z)(_m,vm,{layout:function(){var e=function(){var e=dm,t=!1,A=1,n=1,r=[0],i=Pv,o=Pv,a=Pv,s=Pv,g=Pv;function c(e){return e.x0=e.y0=0,e.x1=A,e.y1=n,e.eachBefore(u),r=[0],t&&e.eachBefore(zv),e}function u(t){var A=r[t.depth],n=t.x0+A,c=t.y0+A,u=t.x1-A,l=t.y1-A;u<n&&(n=u=(n+u)/2),l<c&&(c=l=(c+l)/2),t.x0=n,t.y0=c,t.x1=u,t.y1=l,t.children&&(A=r[t.depth+1]=i(t)/2,n+=g(t)-A,c+=o(t)-A,(u-=a(t)-A)<n&&(n=u=(n+u)/2),(l-=s(t)-A)<c&&(c=l=(c+l)/2),e(t,n,c,u,l))}return c.round=function(e){return arguments.length?(t=!!e,c):t},c.size=function(e){return arguments.length?(A=+e[0],n=+e[1],c):[A,n]},c.tile=function(t){return arguments.length?(e=jv(t),c):e},c.padding=function(e){return arguments.length?c.paddingInner(e).paddingOuter(e):c.paddingInner()},c.paddingInner=function(e){return arguments.length?(i="function"===typeof e?e:Vv(+e),c):i},c.paddingOuter=function(e){return arguments.length?c.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):c.paddingTop()},c.paddingTop=function(e){return arguments.length?(o="function"===typeof e?e:Vv(+e),c):o},c.paddingRight=function(e){return arguments.length?(a="function"===typeof e?e:Vv(+e),c):a},c.paddingBottom=function(e){return arguments.length?(s="function"===typeof e?e:Vv(+e),c):s},c.paddingLeft=function(e){return arguments.length?(g="function"===typeof e?e:Vv(+e),c):g},c}();return e.ratio=function(t){var A=e.tile();A.ratio&&e.tile(A.ratio(t))},e.method=function(t){Object(ue.w)(Nm,t)?e.tile(Nm[t]):Object(ue.o)("Unrecognized Treemap layout method: "+t)},e},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:Um});function Mm(e,t,A,n){var r=e.width,i=e.height,o=A||n,a=Ii(r,i).getContext("2d");t.forEach((function(e){return function e(t,A,n){if(!A.length)return;var r=A[0].mark.marktype;"group"===r?A.forEach((function(A){A.items.forEach((function(A){return e(t,A.items,n)}))})):SC[r].draw(t,{items:n?A.map(Om):A})}(a,e,o)}));var s,g,c,u,l,I=new Uint32Array(a.getImageData(0,0,r,i).data.buffer),C=e.bitmap(),h=o&&e.bitmap();for(g=0;g<i;++g)for(s=0;s<r;++s)(l=4278190080&I[g*r+s])&&(c=e(s),u=e(g),n||C.set(c,u),o&&268435456^l&&h.set(c,u));return[C,h]}function Om(e){var t=Se(e,{});return t.stroke&&(t.strokeOpacity=1),t.fill&&(t.fillOpacity=.0625,t.stroke="#000",t.strokeOpacity=1,t.strokeWidth=2),t}var Lm=new Uint32Array(33),Tm=new Uint32Array(33);Tm[0]=0,Lm[0]=~Tm[0];for(var Zm=1;Zm<=32;++Zm)Tm[Zm]=Tm[Zm-1]<<1|1,Lm[Zm]=~Tm[Zm];function Hm(e,t,A){var n=Math.max(1,Math.sqrt(e*t/1e6)),r=~~((e+2*A+n)/n),i=~~((t+2*A+n)/n),o=function(e){return~~((e+A)/n)};return o.invert=function(e){return e*n-A},o.bitmap=function(){return function(e,t){var A=new Uint32Array(~~((e*t+32)/32));function n(e,t){A[e]|=t}function r(e,t){A[e]&=t}return{array:A,get:function(t,n){var r=n*e+t;return A[r>>>5]&1<<(31&r)},set:function(t,A){var r=A*e+t;n(r>>>5,1<<(31&r))},clear:function(t,A){var n=A*e+t;r(n>>>5,~(1<<(31&n)))},getRange:function(t,n,r,i){for(var o,a,s,g,c=i;c>=n;--c)if((s=(o=c*e+t)>>>5)===(g=(a=c*e+r)>>>5)){if(A[s]&Lm[31&o]&Tm[1+(31&a)])return!0}else{if(A[s]&Lm[31&o])return!0;if(A[g]&Tm[1+(31&a)])return!0;for(var u=s+1;u<g;++u)if(A[u])return!0}return!1},setRange:function(t,A,r,i){for(var o,a,s,g,c;A<=i;++A)if((s=(o=A*e+t)>>>5)===(g=(a=A*e+r)>>>5))n(s,Lm[31&o]&Tm[1+(31&a)]);else for(n(s,Lm[31&o]),n(g,Tm[1+(31&a)]),c=s+1;c<g;++c)n(c,4294967295)},clearRange:function(t,A,n,i){for(var o,a,s,g,c;A<=i;++A)if((s=(o=A*e+t)>>>5)===(g=(a=A*e+n)>>>5))r(s,Tm[31&o]|Lm[1+(31&a)]);else for(r(s,Tm[31&o]),r(g,Lm[1+(31&a)]),c=s+1;c<g;++c)r(c,0)},outOfBounds:function(A,n,r,i){return A<0||n<0||i>=t||r>=e}}}(r,i)},o.ratio=n,o.padding=A,o.width=e,o.height=t,o}function Ym(e,t,A,n,r,i){var o=A/2;return e-o<0||e+o>r||t-(o=n/2)<0||t+o>i}function Jm(){return!1}function jm(e,t,A,n,r,i,o,a){var s=r*i/(2*n),g=e(t-s),c=e(t+s),u=e(A-(i/=2)),l=e(A+i);return o.outOfBounds(g,u,c,l)||o.getRange(g,u,c,l)||a&&a.getRange(g,u,c,l)}function Pm(e,t,A,n,r,i,o,a){var s=r*i/(2*n),g=e(t-s),c=e(t+s),u=e(A-(i/=2)),l=e(A+i);return g=g>0?g:0,u=u>0?u:0,c=c<e.width?c:e.width-1,l=l<e.height?l:e.height-1,o.getRange(g,u,c,l)||a&&a.getRange(g,u,c,l)}function Vm(e){return e?[Pm,Jm]:[jm,Ym]}var Km=[-1,-1,1,1],Wm=[-1,1,-1,1];var Xm=["right","center","left"],qm=["bottom","middle","top"];function zm(e,t,A,n,r,i,o,a,s,g,c,u){return!(r.outOfBounds(e,A,t,n)||(u&&i?i.getRange(e,A,t,n)||!function(e,t,A,n,r){return r[0]<=e&&A<=r[2]&&r[3]<=t&&n<=r[5]}(o,s,a,g,c):r.getRange(e,A,t,n)))}var $m={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},eb={naive:function(e,t,A,n){var r=e.width,i=e.height;return function(e){for(var t,A,o,a,s,g,c,u=e.datum.datum.items[n].items,l=u.length,I=e.datum.fontSize,C=gC.width(e.datum,e.datum.text),h=0,f=0;f<l;++f)t=u[f].x,o=u[f].y,s=(t+(A=void 0===u[f].x2?t:u[f].x2))/2,g=(o+(a=void 0===u[f].y2?o:u[f].y2))/2,(c=Math.abs(A-t+a-o))>=h&&(h=c,e.x=s,e.y=g);return s=C/2,g=I/2,t=e.x-s,A=e.x+s,o=e.y-g,a=e.y+g,e.align="center",t<0&&A<=r?e.align="left":0<=t&&r<A&&(e.align="right"),e.baseline="middle",o<0&&a<=i?e.baseline="top":0<=o&&i<a&&(e.baseline="bottom"),!0}},"reduced-search":function(e,t,A,n,r){var i=e.width,o=e.height,a=Vm(r),s=Object(lt.a)(a,2),g=s[0],c=s[1],u=t[0],l=t[1];function I(t,A,n,r,a){var s,I=e.invert(t),C=e.invert(A),h=n,f=o;if(!c(I,C,r,a,i,o)&&!g(e,I,C,a,r,h,u,l)&&!g(e,I,C,a,r,a,u,null)){for(;f-h>=1;)g(e,I,C,a,r,s=(h+f)/2,u,l)?f=s:h=s;if(h>n)return[I,C,h,!0]}}return function(t){for(var r,a,s,l,C,h,f,d,B,p,E,Q,y,v,m,b,w,S=t.datum.datum.items[n].items,F=S.length,R=t.datum.fontSize,D=gC.width(t.datum,t.datum.text),G=A?R:0,k=!1,x=!1,N=0,U=0;U<F;++U){for(r=S[U].x,s=S[U].y,r>(a=void 0===S[U].x2?r:S[U].x2)&&(w=r,r=a,a=w),s>(l=void 0===S[U].y2?s:S[U].y2)&&(w=s,s=l,l=w),p=~~(((B=e(r))+(E=e(a)))/2),y=~~(((Q=e(s))+(v=e(l)))/2),f=p;f>=B;--f)for(d=y;d>=Q;--d)if(b=I(f,d,G,D,R)){var _=b,M=Object(lt.a)(_,4);t.x=M[0],t.y=M[1],G=M[2],k=M[3]}for(f=p;f<=E;++f)for(d=y;d<=v;++d)if(b=I(f,d,G,D,R)){var O=b,L=Object(lt.a)(O,4);t.x=L[0],t.y=L[1],G=L[2],k=L[3]}k||A||(C=(r+a)/2,h=(s+l)/2,(m=Math.abs(a-r+l-s))>=N&&!c(C,h,D,R,i,o)&&!g(e,C,h,R,D,R,u,null)&&(N=m,t.x=C,t.y=h,x=!0))}return!(!k&&!x)&&(C=D/2,h=R/2,u.setRange(e(t.x-C),e(t.y-h),e(t.x+C),e(t.y+h)),t.align="center",t.baseline="middle",!0)}},floodfill:function(e,t,A,n,r){var i=e.width,o=e.height,a=Vm(r),s=Object(lt.a)(a,2),g=s[0],c=s[1],u=t[0],l=t[1],I=e.bitmap();return function(t){for(var r,a,s,C,h,f,d,B,p,E,Q,y,v=t.datum.datum.items[n].items,m=v.length,b=t.datum.fontSize,w=gC.width(t.datum,t.datum.text),S=[],F=A?b:0,R=!1,D=!1,G=0,k=0;k<m;++k){for(r=v[k].x,s=v[k].y,a=void 0===v[k].x2?r:v[k].x2,C=void 0===v[k].y2?s:v[k].y2,S.push([e((r+a)/2),e((s+C)/2)]);S.length;){var x=S.pop(),N=Object(lt.a)(x,2);if(d=N[0],B=N[1],!(u.get(d,B)||l.get(d,B)||I.get(d,B))){I.set(d,B);for(var U=0;U<4;++U)h=d+Km[U],f=B+Wm[U],I.outOfBounds(h,f,h,f)||S.push([h,f]);if(h=e.invert(d),f=e.invert(B),p=F,E=o,!c(h,f,w,b,i,o)&&!g(e,h,f,b,w,p,u,l)&&!g(e,h,f,b,w,b,u,null)){for(;E-p>=1;)g(e,h,f,b,w,Q=(p+E)/2,u,l)?E=Q:p=Q;p>F&&(t.x=h,t.y=f,F=p,R=!0)}}}R||A||(h=(r+a)/2,f=(s+C)/2,(y=Math.abs(a-r+C-s))>=G&&!c(h,f,w,b,i,o)&&!g(e,h,f,b,w,b,u,null)&&(G=y,t.x=h,t.y=f,D=!0))}return!(!R&&!D)&&(h=w/2,f=b/2,u.setRange(e(t.x-h),e(t.y-f),e(t.x+h),e(t.y+f)),t.align="center",t.baseline="middle",!0)}}};function tb(e,t,A,n,r,i,o,a,s,g,c){if(!e.length)return e;var u,l,I=Math.max(n.length,r.length),C=function(e,t){for(var A=new Float64Array(t),n=e.length,r=0;r<n;++r)A[r]=e[r]||0;for(var i=n;i<t;++i)A[i]=A[n-1];return A}(n,I),h=function(e,t){for(var A=new Int8Array(t),n=e.length,r=0;r<n;++r)A[r]|=$m[e[r]];for(var i=n;i<t;++i)A[i]=A[n-1];return A}(r,I),f=(u=e[0].datum)&&u.mark&&u.mark.marktype,d="group"===f&&e[0].datum.items[s].marktype,B="area"===d,p=function(e,t,A,n){var r=function(e){return[e.x,e.x,e.x,e.y,e.y,e.y]};return e?"line"===e||"area"===e?function(e){return r(e.datum)}:"line"===t?function(e){var t=e.datum.items[n].items;return r(t.length?t["start"===A?0:t.length-1]:{x:NaN,y:NaN})}:function(e){var t=e.datum.bounds;return[t.x1,(t.x1+t.x2)/2,t.x2,t.y1,(t.y1+t.y2)/2,t.y2]}:r}(f,d,a,s),E=null===g||g===1/0,Q=Hm(t[0],t[1],E?0:g),y=B&&"naive"===c,v=e.map((function(e){return{datum:e,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:p(e)}}));if(!y){A&&v.sort((function(e,t){return A(e.datum,t.datum)}));for(var m=!1,b=0;b<h.length&&!m;++b)m=5===h[b]||C[b]<0;f&&(o||B)&&(i=[e.map((function(e){return e.datum}))].concat(i)),l=i.length?Mm(Q,i,m,B):function(e,t){var A=e.bitmap();return(t||[]).forEach((function(t){return A.set(e(t.boundary[0]),e(t.boundary[3]))})),[A,void 0]}(Q,o&&v)}var w=B?eb[c](Q,l,o,s,E):function(e,t,A,n,r){var i=e.width,o=e.height,a=t[0],s=t[1],g=n.length;return function(t){var c=t.boundary,u=t.datum.fontSize;if(!r&&(c[2]<0||c[5]<0||c[0]>i||c[3]>o))return!1;for(var l,I,C,h,f,d,B,p,E,Q,y,v,m,b,w,S=0,F=0;F<g;++F){if(l=(3&A[F])-1,I=(A[F]>>>2&3)-1,C=0===l&&0===I||n[F]<0,h=l&&I?Math.SQRT1_2:1,f=n[F]<0?-1:1,d=c[1+l]+n[F]*l*h,p=(y=c[4+I]+f*u*I/2+n[F]*I*h)-u/2,E=y+u/2,v=e(d),b=e(p),w=e(E),r&&(v=v<0?0:v,b=b<0?0:b,w=w>=e.height?e.height-1:w),!S){if(!zm(v,v,b,w,a,s,d,d,p,E,c,C))continue;S=gC.width(t.datum,t.datum.text)}if(B=(Q=d+f*S*l/2)+S/2,v=e(d=Q-S/2),m=e(B),r&&(v=v<0?0:v,m=m>=e.width?e.width-1:m),zm(v,m,b,w,a,s,d,B,p,E,c,C))return t.x=l?l*f<0?B:d:Q,t.y=I?I*f<0?E:p:y,t.align=Xm[l*f+1],t.baseline=qm[I*f+1],a.setRange(v,b,m,w),!0}return!1}}(Q,l,h,C,E);return v.forEach((function(e){return e.opacity=+w(e)})),v}var Ab=["x","y","opacity","align","baseline"],nb=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function rb(e){at.call(this,null,e)}function ib(e,t){var A,n,r,i,o,a,s=[],g=function(e){return e(i)};if(null==t)s.push(e);else for(A={},n=0,r=e.length;n<r;++n)i=e[n],(a=A[o=t.map(g)])||(A[o]=a=[],a.dims=o,s.push(a)),a.push(i);return s}function ob(e){at.call(this,null,e)}rb.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:nb},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:Ab.length,default:Ab}]},Object(ue.z)(rb,at,{transform:function(e,t){var A=e.modified();if(A||t.changed(t.ADD_REM)||function(A){var n=e[A];return Object(ue.E)(n)&&t.modified(n.fields)}("sort")){e.size&&2===e.size.length||Object(ue.o)("Size parameter should be specified as a [width, height] array.");var n=e.as||Ab;return tb(t.materialize(t.SOURCE).source||[],e.size,e.sort,Object(ue.i)(null==e.offset?1:e.offset),Object(ue.i)(e.anchor||nb),e.avoidMarks||[],!1!==e.avoidBaseMark,e.lineAnchor||"end",e.markIndex||0,void 0===e.padding?0:e.padding,e.method||"naive").forEach((function(e){var t=e.datum;t[n[0]]=e.x,t[n[1]]=e.y,t[n[2]]=e.opacity,t[n[3]]=e.align,t[n[4]]=e.baseline})),t.reflow(A).modifies(n)}}}),ob.Definition={type:"Loess",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"bandwidth",type:"number",default:.3},{name:"as",type:"string",array:!0}]},Object(ue.z)(ob,at,{transform:function(e,t){var A=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){var n=ib(t.materialize(t.SOURCE).source,e.groupby),r=(e.groupby||[]).map(ue.h),i=r.length,o=e.as||[Object(ue.h)(e.x),Object(ue.h)(e.y)],a=[];n.forEach((function(t){uA(t,e.x,e.y,e.bandwidth||.3).forEach((function(e){for(var A={},n=0;n<i;++n)A[r[n]]=t.dims[n];A[o[0]]=e[0],A[o[1]]=e[1],a.push(be(A))}))})),this.value&&(A.rem=this.value),this.value=A.add=A.source=a}return A}});var ab={linear:rA,log:iA,exp:oA,pow:aA,quad:sA,poly:gA};function sb(e){at.call(this,null,e)}sb.Definition={type:"Regression",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"string",default:"linear",values:Object.keys(ab)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:!0,length:2},{name:"params",type:"boolean",default:!1},{name:"as",type:"string",array:!0}]},Object(ue.z)(sb,at,{transform:function(e,t){var A=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){var n=ib(t.materialize(t.SOURCE).source,e.groupby),r=(e.groupby||[]).map(ue.h),i=e.method||"linear",o=e.order||3,a=function(e,t){return"poly"===e?t:"quad"===e?2:1}(i,o),s=e.as||[Object(ue.h)(e.x),Object(ue.h)(e.y)],g=ab[i],c=[],u=e.extent;Object(ue.w)(ab,i)||Object(ue.o)("Invalid regression method: "+i),null!=u&&"log"===i&&u[0]<=0&&(t.dataflow.warn("Ignoring extent with values <= 0 for log regression."),u=null),n.forEach((function(A){if(A.length<=a)t.dataflow.warn("Skipping regression with more parameters than data points.");else{var n=g(A,e.x,e.y,o);if(e.params)c.push(be({keys:A.dims,coef:n.coef,rSquared:n.rSquared}));else{var l=u||Object(ue.q)(A,e.x),I=function(e){for(var t={},n=0;n<r.length;++n)t[r[n]]=A.dims[n];t[s[0]]=e[0],t[s[1]]=e[1],c.push(be(t))};"linear"===i?l.forEach((function(e){return I([e,n.predict(e)])})):hA(n.predict,l,25,200).forEach(I)}}})),this.value&&(A.rem=this.value),this.value=A.add=A.source=c}return A}});var gb=Math.pow(2,-52),cb=new Uint32Array(512),ub=function(){function e(t){Object(y.a)(this,e);var A=t.length>>1;if(A>0&&"number"!==typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;var n=Math.max(2*A-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(A)),this._hullPrev=new Uint32Array(A),this._hullNext=new Uint32Array(A),this._hullTri=new Uint32Array(A),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(A),this._dists=new Float64Array(A),this.update()}return Object(v.a)(e,null,[{key:"from",value:function(t){for(var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:pb,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Eb,r=t.length,i=new Float64Array(2*r),o=0;o<r;o++){var a=t[o];i[2*o]=A(a),i[2*o+1]=n(a)}return new e(i)}}]),Object(v.a)(e,[{key:"update",value:function(){for(var e=this.coords,t=this._hullPrev,A=this._hullNext,n=this._hullTri,r=this._hullHash,i=e.length>>1,o=1/0,a=1/0,s=-1/0,g=-1/0,c=0;c<i;c++){var u=e[2*c],l=e[2*c+1];u<o&&(o=u),l<a&&(a=l),u>s&&(s=u),l>g&&(g=l),this._ids[c]=c}for(var I,C,h,f=(o+s)/2,d=(a+g)/2,B=1/0,p=0;p<i;p++){var E=lb(f,d,e[2*p],e[2*p+1]);E<B&&(I=p,B=E)}var Q=e[2*I],y=e[2*I+1];B=1/0;for(var v=0;v<i;v++)if(v!==I){var m=lb(Q,y,e[2*v],e[2*v+1]);m<B&&m>0&&(C=v,B=m)}for(var b=e[2*C],w=e[2*C+1],S=1/0,F=0;F<i;F++)if(F!==I&&F!==C){var R=fb(Q,y,b,w,e[2*F],e[2*F+1]);R<S&&(h=F,S=R)}var D=e[2*h],G=e[2*h+1];if(S===1/0){for(var k=0;k<i;k++)this._dists[k]=e[2*k]-e[0]||e[2*k+1]-e[1];db(this._ids,this._dists,0,i-1);for(var x=new Uint32Array(i),N=0,U=0,_=-1/0;U<i;U++){var M=this._ids[U];this._dists[M]>_&&(x[N++]=M,_=this._dists[M])}return this.hull=x.subarray(0,N),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Cb(Q,y,b,w,D,G)){var O=C,L=b,T=w;C=h,b=D,w=G,h=O,D=L,G=T}var Z=function(e,t,A,n,r,i){var o=A-e,a=n-t,s=r-e,g=i-t,c=o*o+a*a,u=s*s+g*g,l=.5/(o*g-a*s);return{x:e+(g*c-a*u)*l,y:t+(o*u-s*c)*l}}(Q,y,b,w,D,G);this._cx=Z.x,this._cy=Z.y;for(var H=0;H<i;H++)this._dists[H]=lb(e[2*H],e[2*H+1],Z.x,Z.y);db(this._ids,this._dists,0,i-1),this._hullStart=I;var Y=3;A[I]=t[h]=C,A[C]=t[I]=h,A[h]=t[C]=I,n[I]=0,n[C]=1,n[h]=2,r.fill(-1),r[this._hashKey(Q,y)]=I,r[this._hashKey(b,w)]=C,r[this._hashKey(D,G)]=h,this.trianglesLen=0,this._addTriangle(I,C,h,-1,-1,-1);for(var J,j,P=0;P<this._ids.length;P++){var V=this._ids[P],K=e[2*V],W=e[2*V+1];if(!(P>0&&Math.abs(K-J)<=gb&&Math.abs(W-j)<=gb)&&(J=K,j=W,V!==I&&V!==C&&V!==h)){for(var X=0,q=0,z=this._hashKey(K,W);q<this._hashSize&&(-1===(X=r[(z+q)%this._hashSize])||X===A[X]);q++);for(var $=X=t[X],ee=void 0;ee=A[$],!Cb(K,W,e[2*$],e[2*$+1],e[2*ee],e[2*ee+1]);)if(($=ee)===X){$=-1;break}if(-1!==$){var te=this._addTriangle($,V,A[$],-1,-1,n[$]);n[V]=this._legalize(te+2),n[$]=te,Y++;for(var Ae=A[$];ee=A[Ae],Cb(K,W,e[2*Ae],e[2*Ae+1],e[2*ee],e[2*ee+1]);)te=this._addTriangle(Ae,V,ee,n[V],-1,n[Ae]),n[V]=this._legalize(te+2),A[Ae]=Ae,Y--,Ae=ee;if($===X)for(;Cb(K,W,e[2*(ee=t[$])],e[2*ee+1],e[2*$],e[2*$+1]);)te=this._addTriangle(ee,V,$,-1,n[$],n[ee]),this._legalize(te+2),n[ee]=te,A[$]=$,Y--,$=ee;this._hullStart=t[V]=$,A[$]=t[Ae]=V,A[V]=Ae,r[this._hashKey(K,W)]=V,r[this._hashKey(e[2*$],e[2*$+1])]=$}}}this.hull=new Uint32Array(Y);for(var ne=0,re=this._hullStart;ne<Y;ne++)this.hull[ne]=re,re=A[re];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}},{key:"_hashKey",value:function(e,t){return Math.floor(function(e,t){var A=e/(Math.abs(e)+Math.abs(t));return(t>0?3-A:1+A)/4}(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}},{key:"_legalize",value:function(e){for(var t=this._triangles,A=this._halfedges,n=this.coords,r=0,i=0;;){var o=A[e],a=e-e%3;if(i=a+(e+2)%3,-1!==o){var s=o-o%3,g=a+(e+1)%3,c=s+(o+2)%3,u=t[i],l=t[e],I=t[g],C=t[c];if(hb(n[2*u],n[2*u+1],n[2*l],n[2*l+1],n[2*I],n[2*I+1],n[2*C],n[2*C+1])){t[e]=C,t[o]=u;var h=A[c];if(-1===h){var f=this._hullStart;do{if(this._hullTri[f]===c){this._hullTri[f]=e;break}f=this._hullPrev[f]}while(f!==this._hullStart)}this._link(e,h),this._link(o,A[i]),this._link(i,c);var d=s+(o+1)%3;r<cb.length&&(cb[r++]=d)}else{if(0===r)break;e=cb[--r]}}else{if(0===r)break;e=cb[--r]}}return i}},{key:"_link",value:function(e,t){this._halfedges[e]=t,-1!==t&&(this._halfedges[t]=e)}},{key:"_addTriangle",value:function(e,t,A,n,r,i){var o=this.trianglesLen;return this._triangles[o]=e,this._triangles[o+1]=t,this._triangles[o+2]=A,this._link(o,n),this._link(o+1,r),this._link(o+2,i),this.trianglesLen+=3,o}}]),e}();function lb(e,t,A,n){var r=e-A,i=t-n;return r*r+i*i}function Ib(e,t,A,n,r,i){var o=(n-t)*(r-e),a=(A-e)*(i-t);return Math.abs(o-a)>=33306690738754716e-32*Math.abs(o+a)?o-a:0}function Cb(e,t,A,n,r,i){return(Ib(r,i,e,t,A,n)||Ib(e,t,A,n,r,i)||Ib(A,n,r,i,e,t))<0}function hb(e,t,A,n,r,i,o,a){var s=e-o,g=t-a,c=A-o,u=n-a,l=r-o,I=i-a,C=c*c+u*u,h=l*l+I*I;return s*(u*h-C*I)-g*(c*h-C*l)+(s*s+g*g)*(c*I-u*l)<0}function fb(e,t,A,n,r,i){var o=A-e,a=n-t,s=r-e,g=i-t,c=o*o+a*a,u=s*s+g*g,l=.5/(o*g-a*s),I=(g*c-a*u)*l,C=(o*u-s*c)*l;return I*I+C*C}function db(e,t,A,n){if(n-A<=20)for(var r=A+1;r<=n;r++){for(var i=e[r],o=t[i],a=r-1;a>=A&&t[e[a]]>o;)e[a+1]=e[a--];e[a+1]=i}else{var s=A+1,g=n;Bb(e,A+n>>1,s),t[e[A]]>t[e[n]]&&Bb(e,A,n),t[e[s]]>t[e[n]]&&Bb(e,s,n),t[e[A]]>t[e[s]]&&Bb(e,A,s);for(var c=e[s],u=t[c];;){do{s++}while(t[e[s]]<u);do{g--}while(t[e[g]]>u);if(g<s)break;Bb(e,s,g)}e[A+1]=e[g],e[g]=c,n-s+1>=g-A?(db(e,t,s,n),db(e,t,A,g-1)):(db(e,t,A,g-1),db(e,t,s,n))}}function Bb(e,t,A){var n=e[t];e[t]=e[A],e[A]=n}function pb(e){return e[0]}function Eb(e){return e[1]}var Qb=function(){function e(){Object(y.a)(this,e),this._x0=this._y0=this._x1=this._y1=null,this._=""}return Object(v.a)(e,[{key:"moveTo",value:function(e,t){this._+="M".concat(this._x0=this._x1=+e,",").concat(this._y0=this._y1=+t)}},{key:"closePath",value:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}},{key:"lineTo",value:function(e,t){this._+="L".concat(this._x1=+e,",").concat(this._y1=+t)}},{key:"arc",value:function(e,t,A){var n=(e=+e)+(A=+A),r=t=+t;if(A<0)throw new Error("negative radius");null===this._x1?this._+="M".concat(n,",").concat(r):(Math.abs(this._x1-n)>1e-6||Math.abs(this._y1-r)>1e-6)&&(this._+="L"+n+","+r),A&&(this._+="A".concat(A,",").concat(A,",0,1,1,").concat(e-A,",").concat(t,"A").concat(A,",").concat(A,",0,1,1,").concat(this._x1=n,",").concat(this._y1=r))}},{key:"rect",value:function(e,t,A,n){this._+="M".concat(this._x0=this._x1=+e,",").concat(this._y0=this._y1=+t,"h").concat(+A,"v").concat(+n,"h").concat(-A,"Z")}},{key:"value",value:function(){return this._||null}}]),e}(),yb=function(){function e(){Object(y.a)(this,e),this._=[]}return Object(v.a)(e,[{key:"moveTo",value:function(e,t){this._.push([e,t])}},{key:"closePath",value:function(){this._.push(this._[0].slice())}},{key:"lineTo",value:function(e,t){this._.push([e,t])}},{key:"value",value:function(){return this._.length?this._:null}}]),e}(),vb=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,960,500],n=Object(lt.a)(A,4),r=n[0],i=n[1],o=n[2],a=n[3];if(Object(y.a)(this,e),!((o=+o)>=(r=+r))||!((a=+a)>=(i=+i)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=o,this.xmin=r,this.ymax=a,this.ymin=i,this._init()}return Object(v.a)(e,[{key:"update",value:function(){return this.delaunay.update(),this._init(),this}},{key:"_init",value:function(){for(var e,t,A=this.delaunay,n=A.points,r=A.hull,i=A.triangles,o=this.vectors,a=this.circumcenters=this._circumcenters.subarray(0,i.length/3*2),s=0,g=0,c=i.length;s<c;s+=3,g+=2){var u=2*i[s],l=2*i[s+1],I=2*i[s+2],C=n[u],h=n[u+1],f=n[l],d=n[l+1],B=n[I],p=n[I+1],E=f-C,Q=d-h,y=B-C,v=p-h,m=E*E+Q*Q,b=y*y+v*v,w=2*(E*v-Q*y);if(w)if(Math.abs(w)<1e-8)e=(C+B)/2,t=(h+p)/2;else{var S=1/w;e=C+(v*m-Q*b)*S,t=h+(E*b-y*m)*S}else e=(C+B)/2-1e8*v,t=(h+p)/2+1e8*y;a[g]=e,a[g+1]=t}var F,R,D,G=r[r.length-1],k=4*G,x=n[2*G],N=n[2*G+1];o.fill(0);for(var U=0;U<r.length;++U)F=k,R=x,D=N,k=4*(G=r[U]),x=n[2*G],N=n[2*G+1],o[F+2]=o[k]=D-N,o[F+3]=o[k+1]=x-R}},{key:"render",value:function(e){var t=null==e?e=new Qb:void 0,A=this.delaunay,n=A.halfedges,r=A.inedges,i=A.hull,o=this.circumcenters,a=this.vectors;if(i.length<=1)return null;for(var s=0,g=n.length;s<g;++s){var c=n[s];if(!(c<s)){var u=2*Math.floor(s/3),l=2*Math.floor(c/3),I=o[u],C=o[u+1],h=o[l],f=o[l+1];this._renderSegment(I,C,h,f,e)}}for(var d,B=i[i.length-1],p=0;p<i.length;++p){d=B,B=i[p];var E=2*Math.floor(r[B]/3),Q=o[E],y=o[E+1],v=4*d,m=this._project(Q,y,a[v+2],a[v+3]);m&&this._renderSegment(Q,y,m[0],m[1],e)}return t&&t.value()}},{key:"renderBounds",value:function(e){var t=null==e?e=new Qb:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),t&&t.value()}},{key:"renderCell",value:function(e,t){var A=null==t?t=new Qb:void 0,n=this._clip(e);if(null!==n&&n.length){t.moveTo(n[0],n[1]);for(var r=n.length;n[0]===n[r-2]&&n[1]===n[r-1]&&r>1;)r-=2;for(var i=2;i<r;i+=2)n[i]===n[i-2]&&n[i+1]===n[i-1]||t.lineTo(n[i],n[i+1]);return t.closePath(),A&&A.value()}}},{key:"cellPolygons",value:Ie.a.mark((function e(){var t,A,n,r;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=this.delaunay.points,A=0,n=t.length/2;case 2:if(!(A<n)){e.next=11;break}if(!(r=this.cellPolygon(A))){e.next=8;break}return r.index=A,e.next=8,r;case 8:++A,e.next=2;break;case 11:case"end":return e.stop()}}),e,this)}))},{key:"cellPolygon",value:function(e){var t=new yb;return this.renderCell(e,t),t.value()}},{key:"_renderSegment",value:function(e,t,A,n,r){var i,o=this._regioncode(e,t),a=this._regioncode(A,n);0===o&&0===a?(r.moveTo(e,t),r.lineTo(A,n)):(i=this._clipSegment(e,t,A,n,o,a))&&(r.moveTo(i[0],i[1]),r.lineTo(i[2],i[3]))}},{key:"contains",value:function(e,t,A){return(t=+t)===t&&(A=+A)===A&&this.delaunay._step(e,t,A)===e}},{key:"neighbors",value:Ie.a.mark((function e(t){var A,n,r,i,o,a,s,g,c;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(A=this._clip(t))){e.next=33;break}n=Object(ut.a)(this.delaunay.neighbors(t)),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=25;break}if(i=r.value,!(o=this._clip(i))){e.next=23;break}a=0,s=A.length;case 10:if(!(a<s)){e.next=23;break}g=0,c=o.length;case 12:if(!(g<c)){e.next=20;break}if(A[a]!=o[g]||A[a+1]!=o[g+1]||A[(a+2)%s]!=o[(g+c-2)%c]||A[(a+3)%s]!=o[(g+c-1)%c]){e.next=17;break}return e.next=16,i;case 16:return e.abrupt("break",23);case 17:g+=2,e.next=12;break;case 20:a+=2,e.next=10;break;case 23:e.next=5;break;case 25:e.next=30;break;case 27:e.prev=27,e.t0=e.catch(3),n.e(e.t0);case 30:return e.prev=30,n.f(),e.finish(30);case 33:case"end":return e.stop()}}),e,this,[[3,27,30,33]])}))},{key:"_cell",value:function(e){var t=this.circumcenters,A=this.delaunay,n=A.inedges,r=A.halfedges,i=A.triangles,o=n[e];if(-1===o)return null;var a=[],s=o;do{var g=Math.floor(s/3);if(a.push(t[2*g],t[2*g+1]),i[s=s%3===2?s-2:s+1]!==e)break;s=r[s]}while(s!==o&&-1!==s);return a}},{key:"_clip",value:function(e){if(0===e&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];var t=this._cell(e);if(null===t)return null;var A=this.vectors,n=4*e;return A[n]||A[n+1]?this._clipInfinite(e,t,A[n],A[n+1],A[n+2],A[n+3]):this._clipFinite(e,t)}},{key:"_clipFinite",value:function(e,t){for(var A,n,r,i,o,a=t.length,s=null,g=t[a-2],c=t[a-1],u=this._regioncode(g,c),l=0;l<a;l+=2)if(A=g,n=c,g=t[l],c=t[l+1],r=u,u=this._regioncode(g,c),0===r&&0===u)i=o,o=0,s?s.push(g,c):s=[g,c];else{var I=void 0,C=void 0,h=void 0,f=void 0,d=void 0;if(0===r){if(null===(I=this._clipSegment(A,n,g,c,r,u)))continue;var B=I,p=Object(lt.a)(B,4);C=p[0],h=p[1],f=p[2],d=p[3]}else{if(null===(I=this._clipSegment(g,c,A,n,u,r)))continue;var E=I,Q=Object(lt.a)(E,4);f=Q[0],d=Q[1],C=Q[2],h=Q[3],i=o,o=this._edgecode(C,h),i&&o&&this._edge(e,i,o,s,s.length),s?s.push(C,h):s=[C,h]}i=o,o=this._edgecode(f,d),i&&o&&this._edge(e,i,o,s,s.length),s?s.push(f,d):s=[f,d]}if(s)i=o,o=this._edgecode(s[0],s[1]),i&&o&&this._edge(e,i,o,s,s.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return s}},{key:"_clipSegment",value:function(e,t,A,n,r,i){for(;;){if(0===r&&0===i)return[e,t,A,n];if(r&i)return null;var o=void 0,a=void 0,s=r||i;8&s?(o=e+(A-e)*(this.ymax-t)/(n-t),a=this.ymax):4&s?(o=e+(A-e)*(this.ymin-t)/(n-t),a=this.ymin):2&s?(a=t+(n-t)*(this.xmax-e)/(A-e),o=this.xmax):(a=t+(n-t)*(this.xmin-e)/(A-e),o=this.xmin),r?(e=o,t=a,r=this._regioncode(e,t)):(A=o,n=a,i=this._regioncode(A,n))}}},{key:"_clipInfinite",value:function(e,t,A,n,r,i){var o,a=Array.from(t);if((o=this._project(a[0],a[1],A,n))&&a.unshift(o[0],o[1]),(o=this._project(a[a.length-2],a[a.length-1],r,i))&&a.push(o[0],o[1]),a=this._clipFinite(e,a))for(var s,g=0,c=a.length,u=this._edgecode(a[c-2],a[c-1]);g<c;g+=2)s=u,u=this._edgecode(a[g],a[g+1]),s&&u&&(g=this._edge(e,s,u,a,g),c=a.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(a=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return a}},{key:"_edge",value:function(e,t,A,n,r){for(;t!==A;){var i=void 0,o=void 0;switch(t){case 5:t=4;continue;case 4:t=6,i=this.xmax,o=this.ymin;break;case 6:t=2;continue;case 2:t=10,i=this.xmax,o=this.ymax;break;case 10:t=8;continue;case 8:t=9,i=this.xmin,o=this.ymax;break;case 9:t=1;continue;case 1:t=5,i=this.xmin,o=this.ymin}n[r]===i&&n[r+1]===o||!this.contains(e,i,o)||(n.splice(r,0,i,o),r+=2)}if(n.length>4)for(var a=0;a<n.length;a+=2){var s=(a+2)%n.length,g=(a+4)%n.length;(n[a]===n[s]&&n[s]===n[g]||n[a+1]===n[s+1]&&n[s+1]===n[g+1])&&(n.splice(s,2),a-=2)}return r}},{key:"_project",value:function(e,t,A,n){var r,i,o,a=1/0;if(n<0){if(t<=this.ymin)return null;(r=(this.ymin-t)/n)<a&&(o=this.ymin,i=e+(a=r)*A)}else if(n>0){if(t>=this.ymax)return null;(r=(this.ymax-t)/n)<a&&(o=this.ymax,i=e+(a=r)*A)}if(A>0){if(e>=this.xmax)return null;(r=(this.xmax-e)/A)<a&&(i=this.xmax,o=t+(a=r)*n)}else if(A<0){if(e<=this.xmin)return null;(r=(this.xmin-e)/A)<a&&(i=this.xmin,o=t+(a=r)*n)}return[i,o]}},{key:"_edgecode",value:function(e,t){return(e===this.xmin?1:e===this.xmax?2:0)|(t===this.ymin?4:t===this.ymax?8:0)}},{key:"_regioncode",value:function(e,t){return(e<this.xmin?1:e>this.xmax?2:0)|(t<this.ymin?4:t>this.ymax?8:0)}}]),e}(),mb=Ie.a.mark(kb),bb=2*Math.PI,wb=Math.pow;function Sb(e){return e[0]}function Fb(e){return e[1]}function Rb(e,t,A){return[e+Math.sin(e+t)*A,t+Math.cos(e-t)*A]}var Db=function(){function e(t){Object(y.a)(this,e),this._delaunator=new ub(t),this.inedges=new Int32Array(t.length/2),this._hullIndex=new Int32Array(t.length/2),this.points=this._delaunator.coords,this._init()}return Object(v.a)(e,null,[{key:"from",value:function(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Sb,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Fb,r=arguments.length>3?arguments[3]:void 0;return new e("length"in t?Gb(t,A,n,r):Float64Array.from(kb(t,A,n,r)))}}]),Object(v.a)(e,[{key:"update",value:function(){return this._delaunator.update(),this._init(),this}},{key:"_init",value:function(){var e=this._delaunator,t=this.points;if(e.hull&&e.hull.length>2&&function(e){for(var t=e.triangles,A=e.coords,n=0;n<t.length;n+=3){var r=2*t[n],i=2*t[n+1],o=2*t[n+2];if((A[o]-A[r])*(A[i+1]-A[r+1])-(A[i]-A[r])*(A[o+1]-A[r+1])>1e-10)return!1}return!0}(e)){this.collinear=Int32Array.from({length:t.length/2},(function(e,t){return t})).sort((function(e,A){return t[2*e]-t[2*A]||t[2*e+1]-t[2*A+1]}));for(var A=this.collinear[0],n=this.collinear[this.collinear.length-1],r=[t[2*A],t[2*A+1],t[2*n],t[2*n+1]],i=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]),o=0,a=t.length/2;o<a;++o){var s=Rb(t[2*o],t[2*o+1],i);t[2*o]=s[0],t[2*o+1]=s[1]}this._delaunator=new ub(t)}else delete this.collinear;for(var g=this.halfedges=this._delaunator.halfedges,c=this.hull=this._delaunator.hull,u=this.triangles=this._delaunator.triangles,l=this.inedges.fill(-1),I=this._hullIndex.fill(-1),C=0,h=g.length;C<h;++C){var f=u[C%3===2?C-2:C+1];-1!==g[C]&&-1!==l[f]||(l[f]=C)}for(var d=0,B=c.length;d<B;++d)I[c[d]]=d;c.length<=2&&c.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=c[0],this.triangles[1]=c[1],this.triangles[2]=c[1],l[c[0]]=1,2===c.length&&(l[c[1]]=0))}},{key:"voronoi",value:function(e){return new vb(this,e)}},{key:"neighbors",value:Ie.a.mark((function e(t){var A,n,r,i,o,a,s,g,c,u,l;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=this.inedges,n=this.hull,r=this._hullIndex,i=this.halfedges,o=this.triangles,!(a=this.collinear)){e.next=10;break}if(!((s=a.indexOf(t))>0)){e.next=6;break}return e.next=6,a[s-1];case 6:if(!(s<a.length-1)){e.next=9;break}return e.next=9,a[s+1];case 9:return e.abrupt("return");case 10:if(-1!==(g=A[t])){e.next=13;break}return e.abrupt("return");case 13:c=g,u=-1;case 14:return e.next=16,u=o[c];case 16:if(o[c=c%3===2?c-2:c+1]===t){e.next=19;break}return e.abrupt("return");case 19:if(-1!==(c=i[c])){e.next=26;break}if((l=n[(r[t]+1)%n.length])===u){e.next=25;break}return e.next=25,l;case 25:return e.abrupt("return");case 26:if(c!==g){e.next=14;break}case 27:case"end":return e.stop()}}),e,this)}))},{key:"find",value:function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if((e=+e)!==e||(t=+t)!==t)return-1;for(var n,r=A;(n=this._step(A,e,t))>=0&&n!==A&&n!==r;)A=n;return n}},{key:"_step",value:function(e,t,A){var n=this.inedges,r=this.hull,i=this._hullIndex,o=this.halfedges,a=this.triangles,s=this.points;if(-1===n[e]||!s.length)return(e+1)%(s.length>>1);var g=e,c=wb(t-s[2*e],2)+wb(A-s[2*e+1],2),u=n[e],l=u;do{var I=a[l],C=wb(t-s[2*I],2)+wb(A-s[2*I+1],2);if(C<c&&(c=C,g=I),a[l=l%3===2?l-2:l+1]!==e)break;if(-1===(l=o[l])){if((l=r[(i[e]+1)%r.length])!==I&&wb(t-s[2*l],2)+wb(A-s[2*l+1],2)<c)return l;break}}while(l!==u);return g}},{key:"render",value:function(e){for(var t=null==e?e=new Qb:void 0,A=this.points,n=this.halfedges,r=this.triangles,i=0,o=n.length;i<o;++i){var a=n[i];if(!(a<i)){var s=2*r[i],g=2*r[a];e.moveTo(A[s],A[s+1]),e.lineTo(A[g],A[g+1])}}return this.renderHull(e),t&&t.value()}},{key:"renderPoints",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,A=null==e?e=new Qb:void 0,n=this.points,r=0,i=n.length;r<i;r+=2){var o=n[r],a=n[r+1];e.moveTo(o+t,a),e.arc(o,a,t,0,bb)}return A&&A.value()}},{key:"renderHull",value:function(e){var t=null==e?e=new Qb:void 0,A=this.hull,n=this.points,r=2*A[0],i=A.length;e.moveTo(n[r],n[r+1]);for(var o=1;o<i;++o){var a=2*A[o];e.lineTo(n[a],n[a+1])}return e.closePath(),t&&t.value()}},{key:"hullPolygon",value:function(){var e=new yb;return this.renderHull(e),e.value()}},{key:"renderTriangle",value:function(e,t){var A=null==t?t=new Qb:void 0,n=this.points,r=this.triangles,i=2*r[e*=3],o=2*r[e+1],a=2*r[e+2];return t.moveTo(n[i],n[i+1]),t.lineTo(n[o],n[o+1]),t.lineTo(n[a],n[a+1]),t.closePath(),A&&A.value()}},{key:"trianglePolygons",value:Ie.a.mark((function e(){var t,A,n;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=this.triangles,A=0,n=t.length/3;case 2:if(!(A<n)){e.next=8;break}return e.next=5,this.trianglePolygon(A);case 5:++A,e.next=2;break;case 8:case"end":return e.stop()}}),e,this)}))},{key:"trianglePolygon",value:function(e){var t=new yb;return this.renderTriangle(e,t),t.value()}}]),e}();function Gb(e,t,A,n){for(var r=e.length,i=new Float64Array(2*r),o=0;o<r;++o){var a=e[o];i[2*o]=t.call(n,a,o,e),i[2*o+1]=A.call(n,a,o,e)}return i}function kb(e,t,A,n){var r,i,o,a;return Ie.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:r=0,i=Object(ut.a)(e),s.prev=2,i.s();case 4:if((o=i.n()).done){s.next=13;break}return a=o.value,s.next=8,t.call(n,a,r,e);case 8:return s.next=10,A.call(n,a,r,e);case 10:++r;case 11:s.next=4;break;case 13:s.next=18;break;case 15:s.prev=15,s.t0=s.catch(2),i.e(s.t0);case 18:return s.prev=18,i.f(),s.finish(18);case 21:case"end":return s.stop()}}),mb,null,[[2,15,18,21]])}function xb(e){at.call(this,null,e)}xb.Definition={type:"Voronoi",metadata:{modifies:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"size",type:"number",array:!0,length:2},{name:"extent",type:"array",array:!0,length:2,default:[[-1e5,-1e5],[1e5,1e5]],content:{type:"number",array:!0,length:2}},{name:"as",type:"string",default:"path"}]};var Nb=[-1e5,-1e5,1e5,1e5];function Ub(e){for(var t=e[0][0],A=e[0][1],n=e.length-1;e[n][0]===t&&e[n][1]===A;--n);return"M"+e.slice(0,n+1).join("L")+"Z"}Object(ue.z)(xb,at,{transform:function(e,t){var A=e.as||"path",n=t.source;if(!n||!n.length)return t;var r=e.size;r=r?[0,0,r[0],r[1]]:(r=e.extent)?[r[0][0],r[0][1],r[1][0],r[1][1]]:Nb;for(var i=this.value=Db.from(n,e.x,e.y).voronoi(r),o=0,a=n.length;o<a;++o){var s=i.cellPolygon(o);n[o][A]=s?Ub(s):null}return t.reflow(e.modified()).modifies(A)}});var _b=Math.PI/180;function Mb(){var e,t,A,n,r,i,o,a=[256,256],s=Zb,g=[],c=Math.random,u={};function l(e,t,A){for(var n,r,i,o,g,u=t.x,l=t.y,I=Math.sqrt(a[0]*a[0]+a[1]*a[1]),C=s(a),h=c()<.5?1:-1,f=-h;(n=C(f+=h))&&(r=~~n[0],i=~~n[1],!(Math.min(Math.abs(r),Math.abs(i))>=I));)if(t.x=u+r,t.y=l+i,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>a[0]||t.y+t.y1>a[1])&&(!A||!Lb(t,e,a[0]))&&(!A||(g=A,(o=t).x+o.x1>g[0].x&&o.x+o.x0<g[1].x&&o.y+o.y1>g[0].y&&o.y+o.y0<g[1].y))){for(var d,B=t.sprite,p=t.width>>5,E=a[0]>>5,Q=t.x-(p<<4),y=127&Q,v=32-y,m=t.y1-t.y0,b=(t.y+t.y0)*E+(Q>>5),w=0;w<m;w++){d=0;for(var S=0;S<=p;S++)e[b+S]|=d<<v|(S<p?(d=B[w*p+S])>>>y:0);b+=E}return t.sprite=null,!0}return!1}return u.layout=function(){for(var s=function(e){e.width=e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);e.width=2048/t,e.height=2048/t;var A=e.getContext("2d");return A.fillStyle=A.strokeStyle="red",A.textAlign="center",{context:A,ratio:t}}(Ii()),u=function(e){var t=[],A=-1;for(;++A<e;)t[A]=0;return t}((a[0]>>5)*a[1]),I=null,C=g.length,h=-1,f=[],d=g.map((function(a){return{text:e(a),font:t(a),style:n(a),weight:r(a),rotate:i(a),size:~~(A(a)+1e-14),padding:o(a),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:a}})).sort((function(e,t){return t.size-e.size}));++h<C;){var B=d[h];B.x=a[0]*(c()+.5)>>1,B.y=a[1]*(c()+.5)>>1,Ob(s,B,d,h),B.hasText&&l(u,B,I)&&(f.push(B),I?Tb(I,B):I=[{x:B.x+B.x0,y:B.y+B.y0},{x:B.x+B.x1,y:B.y+B.y1}],B.x-=a[0]>>1,B.y-=a[1]>>1)}return f},u.words=function(e){return arguments.length?(g=e,u):g},u.size=function(e){return arguments.length?(a=[+e[0],+e[1]],u):a},u.font=function(e){return arguments.length?(t=Hb(e),u):t},u.fontStyle=function(e){return arguments.length?(n=Hb(e),u):n},u.fontWeight=function(e){return arguments.length?(r=Hb(e),u):r},u.rotate=function(e){return arguments.length?(i=Hb(e),u):i},u.text=function(t){return arguments.length?(e=Hb(t),u):e},u.spiral=function(e){return arguments.length?(s=Yb[e]||e,u):s},u.fontSize=function(e){return arguments.length?(A=Hb(e),u):A},u.padding=function(e){return arguments.length?(o=Hb(e),u):o},u.random=function(e){return arguments.length?(c=e,u):c},u}function Ob(e,t,A,n){if(!t.sprite){var r=e.context,i=e.ratio;r.clearRect(0,0,2048/i,2048/i);var o,a,s,g,c,u=0,l=0,I=0,C=A.length;for(--n;++n<C;){if(t=A[n],r.save(),r.font=t.style+" "+t.weight+" "+~~((t.size+1)/i)+"px "+t.font,o=r.measureText(t.text+"m").width*i,s=t.size<<1,t.rotate){var h=Math.sin(t.rotate*_b),f=Math.cos(t.rotate*_b),d=o*f,B=o*h,p=s*f,E=s*h;o=Math.max(Math.abs(d+E),Math.abs(d-E))+31>>5<<5,s=~~Math.max(Math.abs(B+p),Math.abs(B-p))}else o=o+31>>5<<5;if(s>I&&(I=s),u+o>=2048&&(u=0,l+=I,I=0),l+s>=2048)break;r.translate((u+(o>>1))/i,(l+(s>>1))/i),t.rotate&&r.rotate(t.rotate*_b),r.fillText(t.text,0,0),t.padding&&(r.lineWidth=2*t.padding,r.strokeText(t.text,0,0)),r.restore(),t.width=o,t.height=s,t.xoff=u,t.yoff=l,t.x1=o>>1,t.y1=s>>1,t.x0=-t.x1,t.y0=-t.y1,t.hasText=!0,u+=o}for(var Q=r.getImageData(0,0,2048/i,2048/i).data,y=[];--n>=0;)if((t=A[n]).hasText){for(a=(o=t.width)>>5,s=t.y1-t.y0,g=0;g<s*a;g++)y[g]=0;if(null==(u=t.xoff))return;l=t.yoff;var v=0,m=-1;for(c=0;c<s;c++){for(g=0;g<o;g++){var b=a*c+(g>>5),w=Q[2048*(l+c)+(u+g)<<2]?1<<31-g%32:0;y[b]|=w,v|=w}v?m=c:(t.y0++,s--,c--,l++)}t.y1=t.y0+m,t.sprite=y.slice(0,(t.y1-t.y0)*a)}}}function Lb(e,t,A){A>>=5;for(var n,r=e.sprite,i=e.width>>5,o=e.x-(i<<4),a=127&o,s=32-a,g=e.y1-e.y0,c=(e.y+e.y0)*A+(o>>5),u=0;u<g;u++){n=0;for(var l=0;l<=i;l++)if((n<<s|(l<i?(n=r[u*i+l])>>>a:0))&t[c+l])return!0;c+=A}return!1}function Tb(e,t){var A=e[0],n=e[1];t.x+t.x0<A.x&&(A.x=t.x+t.x0),t.y+t.y0<A.y&&(A.y=t.y+t.y0),t.x+t.x1>n.x&&(n.x=t.x+t.x1),t.y+t.y1>n.y&&(n.y=t.y+t.y1)}function Zb(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function Hb(e){return"function"===typeof e?e:function(){return e}}var Yb={archimedean:Zb,rectangular:function(e){var t=4*e[0]/e[1],A=0,n=0;return function(e){var r=e<0?-1:1;switch(Math.sqrt(1+4*r*e)-r&3){case 0:A+=t;break;case 1:n+=4;break;case 2:A-=t;break;default:n-=4}return[A,n]}}},Jb=["x","y","font","fontSize","fontStyle","fontWeight","angle"],jb=["text","font","rotate","fontSize","fontStyle","fontWeight"];function Pb(e){at.call(this,Mb(),e)}Pb.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:Jb}]},Object(ue.z)(Pb,at,{transform:function(e,t){!e.size||e.size[0]&&e.size[1]||Object(ue.o)("Wordcloud size dimensions must be non-zero.");var A=e.modified();if(A||t.changed(t.ADD_REM)||jb.some((function(A){var n=e[A];return Object(ue.E)(n)&&t.modified(n.fields)}))){var n,r=t.materialize(t.SOURCE).source,i=this.value,o=e.as||Jb,a=e.fontSize||14;if(Object(ue.E)(a)?n=e.fontSizeRange:a=Object(ue.m)(a),n){var s=a,g=$c("sqrt")().domain(Object(ue.q)(r,s)).range(n);a=function(e){return g(s(e))}}r.forEach((function(e){e[o[0]]=NaN,e[o[1]]=NaN,e[o[3]]=0}));for(var c,u,l=i.words(r).text(e.text).size(e.size||[500,500]).padding(e.padding||1).spiral(e.spiral||"archimedean").rotate(e.rotate||0).font(e.font||"sans-serif").fontStyle(e.fontStyle||"normal").fontWeight(e.fontWeight||"normal").fontSize(a).random(Ft).layout(),I=i.size(),C=I[0]>>1,h=I[1]>>1,f=l.length,d=0;d<f;++d)(u=(c=l[d]).datum)[o[0]]=c.x+C,u[o[1]]=c.y+h,u[o[2]]=c.font,u[o[3]]=c.size,u[o[4]]=c.style,u[o[5]]=c.weight,u[o[6]]=c.rotate;return t.reflow(A).modifies(o)}}});var Vb=function(e,t){return e<t?-1:e>t?1:e>=t?0:NaN},Kb=function(e){var t=e,A=e;function n(e,t,n,r){for(null==n&&(n=0),null==r&&(r=e.length);n<r;){var i=n+r>>>1;A(e[i],t)<0?n=i+1:r=i}return n}return 1===e.length&&(t=function(t,A){return e(t)-A},A=function(e){return function(t,A){return Vb(e(t),A)}}(e)),{left:n,center:function(e,A,r,i){null==r&&(r=0),null==i&&(i=e.length);var o=n(e,A,r,i-1);return o>r&&t(e[o-1],A)>-t(e[o],A)?o-1:o},right:function(e,t,n,r){for(null==n&&(n=0),null==r&&(r=e.length);n<r;){var i=n+r>>>1;A(e[i],t)>0?r=i:n=i+1}return n}}};var Wb=Kb(Vb),Xb=Wb.right,qb=Wb.left,zb=(Kb((function(e){return null===e?NaN:+e})).center,function(e){return new Uint8Array(e)}),$b=function(e){return new Uint16Array(e)},ew=function(e){return new Uint32Array(e)};function tw(e,t,A){var n=(t<257?zb:t<65537?$b:ew)(e);return A&&n.set(A),n}function Aw(e,t,A){var n=1<<t;return{one:n,zero:~n,range:A.slice(),bisect:e.bisect,index:e.index,size:e.size,onAdd:function(e,t){var A,r=this.bisect(this.range,e.value),i=e.index,o=r[0],a=r[1],s=i.length;for(A=0;A<o;++A)t[i[A]]|=n;for(A=a;A<s;++A)t[i[A]]|=n;return this}}}function nw(){var e=ew(0),t=[],A=0;return{insert:function(n,r,i){if(!r.length)return[];var o,a,s,g,c,u,l,I=A,C=r.length,h=ew(C),f=Array(C);for(s=0;s<C;++s)f[s]=n(r[s]),h[s]=s;if(l=h,(u=f).sort.call(l,(function(e,t){var A=u[e],n=u[t];return A<n?-1:A>n?1:0})),g=u,c=l,f=Array.from(c,(function(e){return g[e]})),I)o=t,a=e,t=Array(I+C),e=ew(I+C),function(e,t,A,n,r,i,o,a,s){var g,c=0,u=0;for(g=0;c<n&&u<o;++g)t[c]<r[u]?(a[g]=t[c],s[g]=A[c++]):(a[g]=r[u],s[g]=i[u++]+e);for(;c<n;++c,++g)a[g]=t[c],s[g]=A[c];for(;u<o;++u,++g)a[g]=r[u],s[g]=i[u]+e}(i,o,a,I,f,h,C,t,e);else{if(i>0)for(s=0;s<C;++s)h[s]+=i;t=f,e=h}return A=I+C,{index:h,value:f}},remove:function(n,r){var i,o,a,s=A;for(o=0;!r[e[o]]&&o<s;++o);for(a=o;o<s;++o)r[i=e[o]]||(e[a]=i,t[a]=t[o],++a);A=s-n},bisect:function(e,n){var r;return n?r=n.length:(n=t,r=A),[qb(n,e[0],0,r),Xb(n,e[1],0,r)]},reindex:function(t){for(var n=0,r=A;n<r;++n)e[n]=t[e[n]]},index:function(){return e},size:function(){return A}}}function rw(e){at.call(this,function(){var e=8,t=[],A=ew(0),n=tw(0,e),r=tw(0,e);return{data:function(){return t},seen:function(){return e=A,n=t.length,A=e.length>=n?e:((r=r||new e.constructor(n)).set(e),r);var e,n,r},add:function(e){for(var A,n=0,r=t.length,i=e.length;n<i;++n)(A=e[n])._index=r++,t.push(A)},remove:function(e,A){var i,o,a,s=t.length,g=Array(s-e),c=t;for(o=0;!A[o]&&o<s;++o)g[o]=t[o],c[o]=o;for(a=o;o<s;++o)i=t[o],A[o]?c[o]=-1:(c[o]=a,n[a]=n[o],r[a]=r[o],g[a]=i,i._index=a++),n[o]=0;return t=g,c},size:function(){return t.length},curr:function(){return n},prev:function(){return r},reset:function(e){return r[e]=n[e]},all:function(){return e<257?255:e<65537?65535:4294967295},set:function(e,t){n[e]|=t},clear:function(e,t){n[e]&=~t},resize:function(t,A){(t>n.length||A>e)&&(e=Math.max(A,e),n=tw(t,e,n),r=tw(t,e))}}}(),e),this._indices=null,this._dims=null}function iw(e){at.call(this,null,e)}rw.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},Object(ue.z)(rw,at,{transform:function(e,t){return this._dims?e.modified("fields")||e.fields.some((function(e){return t.modified(e.fields)}))?this.reinit(e,t):this.eval(e,t):this.init(e,t)},init:function(e,t){for(var A,n,r=e.fields,i=e.query,o=this._indices={},a=this._dims=[],s=i.length,g=0;g<s;++g)n=o[A=r[g].fname]||(o[A]=nw()),a.push(Aw(n,g,i[g]));return this.eval(e,t)},reinit:function(e,t){var A,n,r,i,o,a,s,g,c,u=t.materialize().fork(),l=e.fields,I=e.query,C=this._indices,h=this._dims,f=this.value,d=f.curr(),B=f.prev(),p=f.all(),E=u.rem=u.add,Q=u.mod,y=I.length,v={};if(B.set(d),t.rem.length&&(o=this.remove(e,t,u)),t.add.length&&f.add(t.add),t.mod.length)for(a={},s=0,g=(i=t.mod).length;s<g;++s)a[i[s]._index]=1;for(s=0;s<y;++s)c=l[s],(!h[s]||e.modified("fields",s)||t.modified(c.fields))&&((A=v[r=c.fname])||(C[r]=n=nw(),v[r]=A=n.insert(c,t.source,0)),h[s]=Aw(n,s,I[s]).onAdd(A,d));for(s=0,g=f.data().length;s<g;++s)o[s]||(B[s]!==d[s]?E.push(s):a[s]&&d[s]!==p&&Q.push(s));return f.mask=(1<<y)-1,u},eval:function(e,t){var A=t.materialize().fork(),n=this._dims.length,r=0;return t.rem.length&&(this.remove(e,t,A),r|=(1<<n)-1),e.modified("query")&&!e.modified("fields")&&(r|=this.update(e,t,A)),t.add.length&&(this.insert(e,t,A),r|=(1<<n)-1),t.mod.length&&(this.modify(t,A),r|=(1<<n)-1),this.value.mask=r,A},insert:function(e,t,A){var n,r,i,o=t.add,a=this.value,s=this._dims,g=this._indices,c=e.fields,u={},l=A.add,I=a.size()+o.length,C=s.length,h=a.size();a.resize(I,C),a.add(o);var f=a.curr(),d=a.prev(),B=a.all();for(n=0;n<C;++n)i=u[r=c[n].fname]||(u[r]=g[r].insert(c[n],o,h)),s[n].onAdd(i,f);for(;h<I;++h)d[h]=B,f[h]!==B&&l.push(h)},modify:function(e,t){var A,n,r,i=t.mod,o=this.value,a=o.curr(),s=o.all(),g=e.mod;for(A=0,n=g.length;A<n;++A)a[r=g[A]._index]!==s&&i.push(r)},remove:function(e,t,A){var n,r,i,o,a=this._indices,s=this.value,g=s.curr(),c=s.prev(),u=s.all(),l={},I=A.rem,C=t.rem;for(n=0,r=C.length;n<r;++n)l[i=C[n]._index]=1,c[i]=o=g[i],g[i]=u,o!==u&&I.push(i);for(i in a)a[i].remove(r,l);return this.reindex(t,r,l),l},reindex:function(e,t,A){var n=this._indices,r=this.value;e.runAfter((function(){var e=r.remove(t,A);for(var i in n)n[i].reindex(e)}))},update:function(e,t,A){var n,r,i=this._dims,o=e.query,a=t.stamp,s=i.length,g=0;for(A.filters=0,r=0;r<s;++r)e.modified("query",r)&&(n=r,++g);if(1===g)g=i[n].one,this.incrementOne(i[n],o[n],A.add,A.rem);else for(r=0,g=0;r<s;++r)e.modified("query",r)&&(g|=i[r].one,this.incrementAll(i[r],o[r],a,A.add),A.rem=A.add);return g},incrementAll:function(e,t,A,n){var r,i,o,a=this.value,s=a.seen(),g=a.curr(),c=a.prev(),u=e.index(),l=e.bisect(e.range),I=e.bisect(t),C=I[0],h=I[1],f=l[0],d=l[1],B=e.one;if(C<f)for(r=C,i=Math.min(f,h);r<i;++r)s[o=u[r]]!==A&&(c[o]=g[o],s[o]=A,n.push(o)),g[o]^=B;else if(C>f)for(r=f,i=Math.min(C,d);r<i;++r)s[o=u[r]]!==A&&(c[o]=g[o],s[o]=A,n.push(o)),g[o]^=B;if(h>d)for(r=Math.max(C,d),i=h;r<i;++r)s[o=u[r]]!==A&&(c[o]=g[o],s[o]=A,n.push(o)),g[o]^=B;else if(h<d)for(r=Math.max(f,h),i=d;r<i;++r)s[o=u[r]]!==A&&(c[o]=g[o],s[o]=A,n.push(o)),g[o]^=B;e.range=t.slice()},incrementOne:function(e,t,A,n){var r,i,o,a=this.value.curr(),s=e.index(),g=e.bisect(e.range),c=e.bisect(t),u=c[0],l=c[1],I=g[0],C=g[1],h=e.one;if(u<I)for(r=u,i=Math.min(I,l);r<i;++r)a[o=s[r]]^=h,A.push(o);else if(u>I)for(r=I,i=Math.min(u,C);r<i;++r)a[o=s[r]]^=h,n.push(o);if(l>C)for(r=Math.max(u,C),i=l;r<i;++r)a[o=s[r]]^=h,A.push(o);else if(l<C)for(r=Math.max(I,l),i=C;r<i;++r)a[o=s[r]]^=h,n.push(o);e.range=t.slice()}}),iw.Definition={type:"ResolveFilter",metadata:{},params:[{name:"ignore",type:"number",required:!0,description:"A bit mask indicating which filters to ignore."},{name:"filter",type:"object",required:!0,description:"Per-tuple filter bitmaps from a CrossFilter transform."}]},Object(ue.z)(iw,at,{transform:function(e,t){var A=~(e.ignore||0),n=e.filter,r=n.mask;if(0===(r&A))return t.StopPropagation;var i=t.fork(t.ALL),o=n.data(),a=n.curr(),s=n.prev(),g=function(e){return a[e]&A?null:o[e]};return i.filter(i.MOD,g),r&r-1?(i.filter(i.ADD,(function(e){var t=a[e]&A;return!t&&t^s[e]&A?o[e]:null})),i.filter(i.REM,(function(e){var t=a[e]&A;return t&&!(t^t^s[e]&A)?o[e]:null}))):(i.filter(i.ADD,g),i.filter(i.REM,(function(e){return(a[e]&A)===r?o[e]:null}))),i.filter(i.SOURCE,(function(e){return g(e._index)}))}});var ow=Math.sqrt(50),aw=Math.sqrt(10),sw=Math.sqrt(2);var gw,cw,uw,lw,Iw;function Cw(e){this.type=e}Cw.prototype.visit=function(e){var t,A,n;if(e(this))return 1;for(A=0,n=(t=function(e){switch(e.type){case"ArrayExpression":return e.elements;case"BinaryExpression":case"LogicalExpression":return[e.left,e.right];case"CallExpression":return[e.callee].concat(e.arguments);case"ConditionalExpression":return[e.test,e.consequent,e.alternate];case"MemberExpression":return[e.object,e.property];case"ObjectExpression":return e.properties;case"Property":return[e.key,e.value];case"UnaryExpression":return[e.argument];case"Identifier":case"Literal":case"RawCode":default:return[]}}(this)).length;A<n;++A)if(t[A].visit(e))return 1};(gw={})[1]="Boolean",gw[2]="<end>",gw[3]="Identifier",gw[4]="Keyword",gw[5]="Null",gw[6]="Numeric",gw[7]="Punctuator",gw[8]="String",gw[9]="RegularExpression";var hw="ILLEGAL",fw=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\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-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\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-\\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\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\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\\u2160-\\u2188\\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-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\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-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\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]"),dw=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\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\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\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\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\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-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function Bw(e,t){if(!e)throw new Error("ASSERT: "+t)}function pw(e){return e>=48&&e<=57}function Ew(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function Qw(e){return"01234567".indexOf(e)>=0}function yw(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function vw(e){return 10===e||13===e||8232===e||8233===e}function mw(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&fw.test(String.fromCharCode(e))}function bw(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&dw.test(String.fromCharCode(e))}var ww={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Sw(){for(;uw<lw;){var e=cw.charCodeAt(uw);if(!yw(e)&&!vw(e))break;++uw}}function Fw(e){var t,A,n,r=0;for(A="u"===e?4:2,t=0;t<A;++t)uw<lw&&Ew(cw[uw])?(n=cw[uw++],r=16*r+"0123456789abcdef".indexOf(n.toLowerCase())):Jw({},"Unexpected token %0",hw);return String.fromCharCode(r)}function Rw(){var e,t,A,n;for(t=0,"}"===(e=cw[uw])&&Jw({},"Unexpected token %0",hw);uw<lw&&Ew(e=cw[uw++]);)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&Jw({},"Unexpected token %0",hw),t<=65535?String.fromCharCode(t):(A=55296+(t-65536>>10),n=56320+(t-65536&1023),String.fromCharCode(A,n))}function Dw(){var e,t;for(e=cw.charCodeAt(uw++),t=String.fromCharCode(e),92===e&&(117!==cw.charCodeAt(uw)&&Jw({},"Unexpected token %0",hw),++uw,(e=Fw("u"))&&"\\"!==e&&mw(e.charCodeAt(0))||Jw({},"Unexpected token %0",hw),t=e);uw<lw&&bw(e=cw.charCodeAt(uw));)++uw,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==cw.charCodeAt(uw)&&Jw({},"Unexpected token %0",hw),++uw,(e=Fw("u"))&&"\\"!==e&&bw(e.charCodeAt(0))||Jw({},"Unexpected token %0",hw),t+=e);return t}function Gw(){var e,t;return e=uw,{type:1===(t=92===cw.charCodeAt(uw)?Dw():function(){var e,t;for(e=uw++;uw<lw;){if(92===(t=cw.charCodeAt(uw)))return uw=e,Dw();if(!bw(t))break;++uw}return cw.slice(e,uw)}()).length?3:ww.hasOwnProperty(t)?4:"null"===t?5:"true"===t||"false"===t?1:3,value:t,start:e,end:uw}}function kw(){var e,t,A,n,r=uw,i=cw.charCodeAt(uw),o=cw[uw];switch(i){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++uw,{type:7,value:String.fromCharCode(i),start:r,end:uw};default:if(61===(e=cw.charCodeAt(uw+1)))switch(i){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return uw+=2,{type:7,value:String.fromCharCode(i)+String.fromCharCode(e),start:r,end:uw};case 33:case 61:return uw+=2,61===cw.charCodeAt(uw)&&++uw,{type:7,value:cw.slice(r,uw),start:r,end:uw}}}return">>>="===(n=cw.substr(uw,4))?{type:7,value:n,start:r,end:uw+=4}:">>>"===(A=n.substr(0,3))||"<<="===A||">>="===A?{type:7,value:A,start:r,end:uw+=3}:o===(t=A.substr(0,2))[1]&&"+-<>&|".indexOf(o)>=0||"=>"===t?{type:7,value:t,start:r,end:uw+=2}:("//"===t&&Jw({},"Unexpected token %0",hw),"<>=!+-*%&|^/".indexOf(o)>=0?{type:7,value:o,start:r,end:++uw}:void Jw({},"Unexpected token %0",hw))}function xw(){var e,t,A;if(Bw(pw((A=cw[uw]).charCodeAt(0))||"."===A,"Numeric literal must start with a decimal digit or a decimal point"),t=uw,e="","."!==A){if(e=cw[uw++],A=cw[uw],"0"===e){if("x"===A||"X"===A)return++uw,function(e){for(var t="";uw<lw&&Ew(cw[uw]);)t+=cw[uw++];return 0===t.length&&Jw({},"Unexpected token %0",hw),mw(cw.charCodeAt(uw))&&Jw({},"Unexpected token %0",hw),{type:6,value:parseInt("0x"+t,16),start:e,end:uw}}(t);if(Qw(A))return function(e){for(var t="0"+cw[uw++];uw<lw&&Qw(cw[uw]);)t+=cw[uw++];return(mw(cw.charCodeAt(uw))||pw(cw.charCodeAt(uw)))&&Jw({},"Unexpected token %0",hw),{type:6,value:parseInt(t,8),octal:!0,start:e,end:uw}}(t);A&&pw(A.charCodeAt(0))&&Jw({},"Unexpected token %0",hw)}for(;pw(cw.charCodeAt(uw));)e+=cw[uw++];A=cw[uw]}if("."===A){for(e+=cw[uw++];pw(cw.charCodeAt(uw));)e+=cw[uw++];A=cw[uw]}if("e"===A||"E"===A)if(e+=cw[uw++],"+"!==(A=cw[uw])&&"-"!==A||(e+=cw[uw++]),pw(cw.charCodeAt(uw)))for(;pw(cw.charCodeAt(uw));)e+=cw[uw++];else Jw({},"Unexpected token %0",hw);return mw(cw.charCodeAt(uw))&&Jw({},"Unexpected token %0",hw),{type:6,value:parseFloat(e),start:t,end:uw}}function Nw(){var e,t,A,n;return Iw=null,Sw(),e=uw,t=function(){var e,t,A,n;for(Bw("/"===(e=cw[uw]),"Regular expression literal must start with a slash"),t=cw[uw++],A=!1,n=!1;uw<lw;)if(t+=e=cw[uw++],"\\"===e)vw((e=cw[uw++]).charCodeAt(0))&&Jw({},"Invalid regular expression: missing /"),t+=e;else if(vw(e.charCodeAt(0)))Jw({},"Invalid regular expression: missing /");else if(A)"]"===e&&(A=!1);else{if("/"===e){n=!0;break}"["===e&&(A=!0)}return n||Jw({},"Invalid regular expression: missing /"),{value:t.substr(1,t.length-2),literal:t}}(),A=function(){var e,t,A;for(t="",A="";uw<lw&&bw((e=cw[uw]).charCodeAt(0));)++uw,"\\"===e&&uw<lw?Jw({},"Unexpected token %0",hw):(A+=e,t+=e);return A.search(/[^gimuy]/g)>=0&&Jw({},"Invalid regular expression",A),{value:A,literal:t}}(),n=function(e,t){var A=e;t.indexOf("u")>=0&&(A=A.replace(/\\u\{([0-9a-fA-F]+)\}/g,(function(e,t){if(parseInt(t,16)<=1114111)return"x";Jw({},"Invalid regular expression")})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(A)}catch(n){Jw({},"Invalid regular expression")}try{return new RegExp(e,t)}catch(r){return null}}(t.value,A.value),{literal:t.literal+A.literal,value:n,regex:{pattern:t.value,flags:A.value},start:e,end:uw}}function Uw(){if(Sw(),uw>=lw)return{type:2,start:uw,end:uw};var e=cw.charCodeAt(uw);return mw(e)?Gw():40===e||41===e||59===e?kw():39===e||34===e?function(){var e,t,A,n,r="",i=!1;for(Bw("'"===(e=cw[uw])||'"'===e,"String literal must starts with a quote"),t=uw,++uw;uw<lw;){if((A=cw[uw++])===e){e="";break}if("\\"===A)if((A=cw[uw++])&&vw(A.charCodeAt(0)))"\r"===A&&"\n"===cw[uw]&&++uw;else switch(A){case"u":case"x":"{"===cw[uw]?(++uw,r+=Rw()):r+=Fw(A);break;case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+="\t";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;default:Qw(A)?(0!==(n="01234567".indexOf(A))&&(i=!0),uw<lw&&Qw(cw[uw])&&(i=!0,n=8*n+"01234567".indexOf(cw[uw++]),"0123".indexOf(A)>=0&&uw<lw&&Qw(cw[uw])&&(n=8*n+"01234567".indexOf(cw[uw++]))),r+=String.fromCharCode(n)):r+=A}else{if(vw(A.charCodeAt(0)))break;r+=A}}return""!==e&&Jw({},"Unexpected token %0",hw),{type:8,value:r,octal:i,start:t,end:uw}}():46===e?pw(cw.charCodeAt(uw+1))?xw():kw():pw(e)?xw():kw()}function _w(){var e=Iw;return uw=e.end,Iw=Uw(),uw=e.end,e}function Mw(){var e=uw;Iw=Uw(),uw=e}function Ow(e,t,A){var n=new Cw("||"===e||"&&"===e?"LogicalExpression":"BinaryExpression");return n.operator=e,n.left=t,n.right=A,n}function Lw(e,t){var A=new Cw("CallExpression");return A.callee=e,A.arguments=t,A}function Tw(e){var t=new Cw("Identifier");return t.name=e,t}function Zw(e){var t=new Cw("Literal");return t.value=e.value,t.raw=cw.slice(e.start,e.end),e.regex&&("//"===t.raw&&(t.raw="/(?:)/"),t.regex=e.regex),t}function Hw(e,t,A){var n=new Cw("MemberExpression");return n.computed="["===e,n.object=t,n.property=A,n.computed||(A.member=!0),n}function Yw(e,t,A){var n=new Cw("Property");return n.key=t,n.value=A,n.kind=e,n}function Jw(e,t){var A,n=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,(function(e,t){return Bw(t<n.length,"Message reference must be in range"),n[t]}));throw(A=new Error(r)).index=uw,A.description=r,A}function jw(e){2===e.type&&Jw(e,"Unexpected end of input"),6===e.type&&Jw(e,"Unexpected number"),8===e.type&&Jw(e,"Unexpected string"),3===e.type&&Jw(e,"Unexpected identifier"),4===e.type&&Jw(e,"Unexpected reserved word"),Jw(e,"Unexpected token %0",e.value)}function Pw(e){var t=_w();7===t.type&&t.value===e||jw(t)}function Vw(e){return 7===Iw.type&&Iw.value===e}function Kw(e){return 4===Iw.type&&Iw.value===e}function Ww(){var e=[];for(uw=Iw.start,Pw("[");!Vw("]");)Vw(",")?(_w(),e.push(null)):(e.push(aS()),Vw("]")||Pw(","));return _w(),function(e){var t=new Cw("ArrayExpression");return t.elements=e,t}(e)}function Xw(){uw=Iw.start;var e=_w();return 8===e.type||6===e.type?(e.octal&&Jw(e,"Octal literals are not allowed in strict mode."),Zw(e)):Tw(e.value)}function qw(){var e,t,A;return uw=Iw.start,3===(e=Iw).type?(A=Xw(),Pw(":"),Yw("init",A,aS())):2!==e.type&&7!==e.type?(t=Xw(),Pw(":"),Yw("init",t,aS())):void jw(e)}function zw(){var e,t,A=[],n={},r=String;for(uw=Iw.start,Pw("{");!Vw("}");)t="$"+("Identifier"===(e=qw()).key.type?e.key.name:r(e.key.value)),Object.prototype.hasOwnProperty.call(n,t)?Jw({},"Duplicate data property in object literal not allowed in strict mode"):n[t]=!0,A.push(e),Vw("}")||Pw(",");return Pw("}"),function(e){var t=new Cw("ObjectExpression");return t.properties=e,t}(A)}var $w={if:1};function eS(){var e,t,A;if(Vw("("))return function(){Pw("(");var e=sS();return Pw(")"),e}();if(Vw("["))return Ww();if(Vw("{"))return zw();if(e=Iw.type,uw=Iw.start,3===e||$w[Iw.value])A=Tw(_w().value);else if(8===e||6===e)Iw.octal&&Jw(Iw,"Octal literals are not allowed in strict mode."),A=Zw(_w());else{if(4===e)throw new Error("Disabled.");1===e?((t=_w()).value="true"===t.value,A=Zw(t)):5===e?((t=_w()).value=null,A=Zw(t)):Vw("/")||Vw("/=")?(A=Zw(Nw()),Mw()):jw(_w())}return A}function tS(){var e=[];if(Pw("("),!Vw(")"))for(;uw<lw&&(e.push(aS()),!Vw(")"));)Pw(",");return Pw(")"),e}function AS(){return Pw("."),function(){uw=Iw.start;var e=_w();return function(e){return 3===e.type||4===e.type||1===e.type||5===e.type}(e)||jw(e),Tw(e.value)}()}function nS(){Pw("[");var e=sS();return Pw("]"),e}function rS(){var e=function(){var e;for(e=eS();;)if(Vw("."))e=Hw(".",e,AS());else if(Vw("("))e=Lw(e,tS());else{if(!Vw("["))break;e=Hw("[",e,nS())}return e}();if(7===Iw.type&&(Vw("++")||Vw("--")))throw new Error("Disabled.");return e}function iS(){var e,t;if(7!==Iw.type&&4!==Iw.type)t=rS();else{if(Vw("++")||Vw("--"))throw new Error("Disabled.");if(Vw("+")||Vw("-")||Vw("~")||Vw("!"))e=_w(),t=iS(),t=function(e,t){var A=new Cw("UnaryExpression");return A.operator=e,A.argument=t,A.prefix=!0,A}(e.value,t);else{if(Kw("delete")||Kw("void")||Kw("typeof"))throw new Error("Disabled.");t=rS()}}return t}function oS(e){var t=0;if(7!==e.type&&4!==e.type)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11}return t}function aS(){var e,t;return e=function(){var e,t,A,n,r,i,o,a,s,g;if(e=Iw,s=iS(),0===(r=oS(n=Iw)))return s;for(n.prec=r,_w(),t=[e,Iw],i=[s,n,o=iS()];(r=oS(Iw))>0;){for(;i.length>2&&r<=i[i.length-2].prec;)o=i.pop(),a=i.pop().value,s=i.pop(),t.pop(),A=Ow(a,s,o),i.push(A);(n=_w()).prec=r,i.push(n),t.push(Iw),A=iS(),i.push(A)}for(A=i[g=i.length-1],t.pop();g>1;)t.pop(),A=Ow(i[g-1].value,i[g-2],A),g-=2;return A}(),Vw("?")&&(_w(),t=aS(),Pw(":"),e=function(e,t,A){var n=new Cw("ConditionalExpression");return n.test=e,n.consequent=t,n.alternate=A,n}(e,t,aS())),e}function sS(){var e=aS();if(Vw(","))throw new Error("Disabled.");return e}function gS(e){uw=0,lw=(cw=e).length,Iw=null,Mw();var t=sS();if(2!==Iw.type)throw new Error("Unexpect token after expression.");return t}var cS={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function uS(e){function t(t,A,n){return function(r){return function(t,A,n,r){var i=e(A[0]);return n&&(i=n+"("+i+")",0===n.lastIndexOf("new ",0)&&(i="("+i+")")),i+"."+t+(r<0?"":0===r?"()":"("+A.slice(1).map(e).join(",")+")")}(t,r,A,n)}}var A="new Date";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(t){t.length<3&&Object(ue.o)("Missing arguments to clamp function."),t.length>3&&Object(ue.o)("Too many arguments to clamp function.");var A=t.map(e);return"Math.max("+A[1]+", Math.min("+A[2]+","+A[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:A,date:t("getDate",A,0),day:t("getDay",A,0),year:t("getFullYear",A,0),month:t("getMonth",A,0),hours:t("getHours",A,0),minutes:t("getMinutes",A,0),seconds:t("getSeconds",A,0),milliseconds:t("getMilliseconds",A,0),time:t("getTime",A,0),timezoneoffset:t("getTimezoneOffset",A,0),utcdate:t("getUTCDate",A,0),utcday:t("getUTCDay",A,0),utcyear:t("getUTCFullYear",A,0),utcmonth:t("getUTCMonth",A,0),utchours:t("getUTCHours",A,0),utcminutes:t("getUTCMinutes",A,0),utcseconds:t("getUTCSeconds",A,0),utcmilliseconds:t("getUTCMilliseconds",A,0),length:t("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:t("toUpperCase","String",0),lower:t("toLowerCase","String",0),substring:t("substring","String"),split:t("split","String"),trim:t("trim","String",0),regexp:"RegExp",test:t("test","RegExp"),if:function(t){t.length<3&&Object(ue.o)("Missing arguments to if function."),t.length>3&&Object(ue.o)("Too many arguments to if function.");var A=t.map(e);return"("+A[0]+"?"+A[1]+":"+A[2]+")"}}}function lS(e){var t=(e=e||{}).allowed?Object(ue.fb)(e.allowed):{},A=e.forbidden?Object(ue.fb)(e.forbidden):{},n=e.constants||cS,r=(e.functions||uS)(u),i=e.globalvar,o=e.fieldvar,a=Object(ue.E)(i)?i:function(e){return"".concat(i,'["').concat(e,'"]')},s={},g={},c=0;function u(e){if(Object(ue.J)(e))return e;var t=l[e.type];return null==t&&Object(ue.o)("Unsupported type: "+e.type),t(e)}var l={Literal:function(e){return e.raw},Identifier:function(e){var r=e.name;return c>0?r:Object(ue.w)(A,r)?Object(ue.o)("Illegal identifier: "+r):Object(ue.w)(n,r)?n[r]:Object(ue.w)(t,r)?r:(s[r]=1,a(r))},MemberExpression:function(e){var t=!e.computed,A=u(e.object);t&&(c+=1);var n=u(e.property);return A===o&&(g[function(e){var t=e&&e.length-1;return t&&('"'===e[0]&&'"'===e[t]||"'"===e[0]&&"'"===e[t])?e.slice(1,-1):e}(n)]=1),t&&(c-=1),A+(t?"."+n:"["+n+"]")},CallExpression:function(e){"Identifier"!==e.callee.type&&Object(ue.o)("Illegal callee type: "+e.callee.type);var t=e.callee.name,A=e.arguments,n=Object(ue.w)(r,t)&&r[t];return n||Object(ue.o)("Unrecognized function: "+t),Object(ue.E)(n)?n(A):n+"("+A.map(u).join(",")+")"},ArrayExpression:function(e){return"["+e.elements.map(u).join(",")+"]"},BinaryExpression:function(e){return"("+u(e.left)+" "+e.operator+" "+u(e.right)+")"},UnaryExpression:function(e){return"("+e.operator+u(e.argument)+")"},ConditionalExpression:function(e){return"("+u(e.test)+"?"+u(e.consequent)+":"+u(e.alternate)+")"},LogicalExpression:function(e){return"("+u(e.left)+e.operator+u(e.right)+")"},ObjectExpression:function(e){return"{"+e.properties.map(u).join(",")+"}"},Property:function(e){c+=1;var t=u(e.key);return c-=1,t+":"+u(e.value)}};function I(e){var t={code:u(e),globals:Object.keys(s),fields:Object.keys(g)};return s={},g={},t}return I.functions=r,I.constants=n,I}var IS=function(){function e(){Object(y.a)(this,e),this._partials=new Float64Array(32),this._n=0}return Object(v.a)(e,[{key:"add",value:function(e){for(var t=this._partials,A=0,n=0;n<this._n&&n<32;n++){var r=t[n],i=e+r,o=Math.abs(e)<Math.abs(r)?e-(i-r):r-(i-e);o&&(t[A++]=o),e=i}return t[A]=e,this._n=A+1,this}},{key:"valueOf",value:function(){var e,t,A,n=this._partials,r=this._n,i=0;if(r>0){for(i=n[--r];r>0&&(e=i,!(A=(t=n[--r])-((i=e+t)-e))););r>0&&(A<0&&n[r-1]<0||A>0&&n[r-1]>0)&&(t=2*A)==(e=i+t)-i&&(i=e)}return i}}]),e}();var CS=Math.PI,hS=CS/2,fS=CS/4,dS=2*CS,BS=180/CS,pS=CS/180,ES=Math.abs,QS=(Math.atan,Math.atan2),yS=Math.cos,vS=(Math.ceil,Math.exp,Math.floor,Math.hypot),mS=(Math.log,Math.pow,Math.sin),bS=(Math.sign,Math.sqrt);Math.tan;function wS(e){return e>1?hS:e<-1?-hS:Math.asin(e)}function SS(){}function FS(e,t){e&&DS.hasOwnProperty(e.type)&&DS[e.type](e,t)}var RS={Feature:function(e,t){FS(e.geometry,t)},FeatureCollection:function(e,t){for(var A=e.features,n=-1,r=A.length;++n<r;)FS(A[n].geometry,t)}},DS={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)e=A[n],t.point(e[0],e[1],e[2])},LineString:function(e,t){GS(e.coordinates,t,0)},MultiLineString:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)GS(A[n],t,0)},Polygon:function(e,t){kS(e.coordinates,t)},MultiPolygon:function(e,t){for(var A=e.coordinates,n=-1,r=A.length;++n<r;)kS(A[n],t)},GeometryCollection:function(e,t){for(var A=e.geometries,n=-1,r=A.length;++n<r;)FS(A[n],t)}};function GS(e,t,A){var n,r=-1,i=e.length-A;for(t.lineStart();++r<i;)n=e[r],t.point(n[0],n[1],n[2]);t.lineEnd()}function kS(e,t){var A=-1,n=e.length;for(t.polygonStart();++A<n;)GS(e[A],t,1);t.polygonEnd()}var xS,NS,US,_S,MS,OS=function(e,t){e&&RS.hasOwnProperty(e.type)?RS[e.type](e,t):FS(e,t)},LS=new IS,TS=new IS,ZS={point:SS,lineStart:SS,lineEnd:SS,polygonStart:function(){LS=new IS,ZS.lineStart=HS,ZS.lineEnd=YS},polygonEnd:function(){var e=+LS;TS.add(e<0?dS+e:e),this.lineStart=this.lineEnd=this.point=SS},sphere:function(){TS.add(dS)}};function HS(){ZS.point=JS}function YS(){jS(xS,NS)}function JS(e,t){ZS.point=jS,xS=e,NS=t,US=e*=pS,_S=yS(t=(t*=pS)/2+fS),MS=mS(t)}function jS(e,t){var A=(e*=pS)-US,n=A>=0?1:-1,r=n*A,i=yS(t=(t*=pS)/2+fS),o=mS(t),a=MS*o,s=_S*i+a*yS(r),g=a*n*mS(r);LS.add(QS(g,s)),US=e,_S=i,MS=o}var PS,VS,KS,WS,XS,qS,zS,$S,eF,tF,AF;function nF(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}var rF={point:iF,lineStart:aF,lineEnd:sF,polygonStart:function(){rF.point=gF,rF.lineStart=cF,rF.lineEnd=uF,eF=new IS,ZS.polygonStart()},polygonEnd:function(){ZS.polygonEnd(),rF.point=iF,rF.lineStart=aF,rF.lineEnd=sF,LS<0?(PS=-(KS=180),VS=-(WS=90)):eF>1e-6?WS=90:eF<-1e-6&&(VS=-90),AF[0]=PS,AF[1]=KS},sphere:function(){PS=-(KS=180),VS=-(WS=90)}};function iF(e,t){tF.push(AF=[PS=e,KS=e]),t<VS&&(VS=t),t>WS&&(WS=t)}function oF(e,t){var A,n=function(e){var t=e[0],A=e[1],n=yS(A);return[n*yS(t),n*mS(t),mS(A)]}([e*pS,t*pS]);if($S){var r=nF($S,n),i=nF([r[1],-r[0],0],r);!function(e){var t=bS(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}(i),i=[QS((A=i)[1],A[0]),wS(A[2])];var o,a=e-XS,s=a>0?1:-1,g=i[0]*BS*s,c=ES(a)>180;c^(s*XS<g&&g<s*e)?(o=i[1]*BS)>WS&&(WS=o):c^(s*XS<(g=(g+360)%360-180)&&g<s*e)?(o=-i[1]*BS)<VS&&(VS=o):(t<VS&&(VS=t),t>WS&&(WS=t)),c?e<XS?lF(PS,e)>lF(PS,KS)&&(KS=e):lF(e,KS)>lF(PS,KS)&&(PS=e):KS>=PS?(e<PS&&(PS=e),e>KS&&(KS=e)):e>XS?lF(PS,e)>lF(PS,KS)&&(KS=e):lF(e,KS)>lF(PS,KS)&&(PS=e)}else tF.push(AF=[PS=e,KS=e]);t<VS&&(VS=t),t>WS&&(WS=t),$S=n,XS=e}function aF(){rF.point=oF}function sF(){AF[0]=PS,AF[1]=KS,rF.point=iF,$S=null}function gF(e,t){if($S){var A=e-XS;eF.add(ES(A)>180?A+(A>0?360:-360):A)}else qS=e,zS=t;ZS.point(e,t),oF(e,t)}function cF(){ZS.lineStart()}function uF(){gF(qS,zS),ZS.lineEnd(),ES(eF)>1e-6&&(PS=-(KS=180)),AF[0]=PS,AF[1]=KS,$S=null}function lF(e,t){return(t-=e)<0?t+360:t}function IF(e,t){return e[0]-t[0]}function CF(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}var hF,fF,dF,BF,pF,EF,QF,yF,vF,mF,bF,wF,SF,FF,RF,DF,GF={sphere:SS,point:kF,lineStart:NF,lineEnd:MF,polygonStart:function(){GF.lineStart=OF,GF.lineEnd=LF},polygonEnd:function(){GF.lineStart=NF,GF.lineEnd=MF}};function kF(e,t){e*=pS;var A=yS(t*=pS);xF(A*yS(e),A*mS(e),mS(t))}function xF(e,t,A){++hF,dF+=(e-dF)/hF,BF+=(t-BF)/hF,pF+=(A-pF)/hF}function NF(){GF.point=UF}function UF(e,t){e*=pS;var A=yS(t*=pS);FF=A*yS(e),RF=A*mS(e),DF=mS(t),GF.point=_F,xF(FF,RF,DF)}function _F(e,t){e*=pS;var A=yS(t*=pS),n=A*yS(e),r=A*mS(e),i=mS(t),o=QS(bS((o=RF*i-DF*r)*o+(o=DF*n-FF*i)*o+(o=FF*r-RF*n)*o),FF*n+RF*r+DF*i);fF+=o,EF+=o*(FF+(FF=n)),QF+=o*(RF+(RF=r)),yF+=o*(DF+(DF=i)),xF(FF,RF,DF)}function MF(){GF.point=kF}function OF(){GF.point=TF}function LF(){ZF(wF,SF),GF.point=kF}function TF(e,t){wF=e,SF=t,e*=pS,t*=pS,GF.point=ZF;var A=yS(t);FF=A*yS(e),RF=A*mS(e),DF=mS(t),xF(FF,RF,DF)}function ZF(e,t){e*=pS;var A=yS(t*=pS),n=A*yS(e),r=A*mS(e),i=mS(t),o=RF*i-DF*r,a=DF*n-FF*i,s=FF*r-RF*n,g=vS(o,a,s),c=wS(g),u=g&&-c/g;vF.add(u*o),mF.add(u*a),bF.add(u*s),fF+=c,EF+=c*(FF+(FF=n)),QF+=c*(RF+(RF=r)),yF+=c*(DF+(DF=i)),xF(FF,RF,DF)}var HF=function(e,t,A){e.prototype=t.prototype=A,A.constructor=e};function YF(e,t){var A=Object.create(e.prototype);for(var n in t)A[n]=t[n];return A}function JF(){}var jF="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",PF="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",VF=/^#([0-9a-f]{3,8})$/,KF=new RegExp("^rgb\\("+["\\s*([+-]?\\d+)\\s*","\\s*([+-]?\\d+)\\s*","\\s*([+-]?\\d+)\\s*"]+"\\)$"),WF=new RegExp("^rgb\\("+[PF,PF,PF]+"\\)$"),XF=new RegExp("^rgba\\("+["\\s*([+-]?\\d+)\\s*","\\s*([+-]?\\d+)\\s*","\\s*([+-]?\\d+)\\s*",jF]+"\\)$"),qF=new RegExp("^rgba\\("+[PF,PF,PF,jF]+"\\)$"),zF=new RegExp("^hsl\\("+[jF,PF,PF]+"\\)$"),$F=new RegExp("^hsla\\("+[jF,PF,PF,jF]+"\\)$"),eR={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};function tR(){return this.rgb().formatHex()}function AR(){return this.rgb().formatRgb()}function nR(e){var t,A;return e=(e+"").trim().toLowerCase(),(t=VF.exec(e))?(A=t[1].length,t=parseInt(t[1],16),6===A?rR(t):3===A?new sR(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===A?iR(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===A?iR(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=KF.exec(e))?new sR(t[1],t[2],t[3],1):(t=WF.exec(e))?new sR(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=XF.exec(e))?iR(t[1],t[2],t[3],t[4]):(t=qF.exec(e))?iR(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=zF.exec(e))?lR(t[1],t[2]/100,t[3]/100,1):(t=$F.exec(e))?lR(t[1],t[2]/100,t[3]/100,t[4]):eR.hasOwnProperty(e)?rR(eR[e]):"transparent"===e?new sR(NaN,NaN,NaN,0):null}function rR(e){return new sR(e>>16&255,e>>8&255,255&e,1)}function iR(e,t,A,n){return n<=0&&(e=t=A=NaN),new sR(e,t,A,n)}function oR(e){return e instanceof JF||(e=nR(e)),e?new sR((e=e.rgb()).r,e.g,e.b,e.opacity):new sR}function aR(e,t,A,n){return 1===arguments.length?oR(e):new sR(e,t,A,null==n?1:n)}function sR(e,t,A,n){this.r=+e,this.g=+t,this.b=+A,this.opacity=+n}function gR(){return"#"+uR(this.r)+uR(this.g)+uR(this.b)}function cR(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?")":", "+e+")")}function uR(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function lR(e,t,A,n){return n<=0?e=t=A=NaN:A<=0||A>=1?e=t=NaN:t<=0&&(e=NaN),new hR(e,t,A,n)}function IR(e){if(e instanceof hR)return new hR(e.h,e.s,e.l,e.opacity);if(e instanceof JF||(e=nR(e)),!e)return new hR;if(e instanceof hR)return e;var t=(e=e.rgb()).r/255,A=e.g/255,n=e.b/255,r=Math.min(t,A,n),i=Math.max(t,A,n),o=NaN,a=i-r,s=(i+r)/2;return a?(o=t===i?(A-n)/a+6*(A<n):A===i?(n-t)/a+2:(t-A)/a+4,a/=s<.5?i+r:2-i-r,o*=60):a=s>0&&s<1?0:o,new hR(o,a,s,e.opacity)}function CR(e,t,A,n){return 1===arguments.length?IR(e):new hR(e,t,A,null==n?1:n)}function hR(e,t,A,n){this.h=+e,this.s=+t,this.l=+A,this.opacity=+n}function fR(e,t,A){return 255*(e<60?t+(A-t)*e/60:e<180?A:e<240?t+(A-t)*(240-e)/60:t)}HF(JF,nR,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:tR,formatHex:tR,formatHsl:function(){return IR(this).formatHsl()},formatRgb:AR,toString:AR}),HF(sR,aR,YF(JF,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new sR(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new sR(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){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:gR,formatHex:gR,formatRgb:cR,toString:cR})),HF(hR,CR,YF(JF,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new hR(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new hR(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,A=this.l,n=A+(A<.5?A:1-A)*t,r=2*A-n;return new sR(fR(e>=240?e-240:e+120,r,n),fR(e,r,n),fR(e<120?e+240:e-120,r,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}));var dR=Math.PI/180,BR=180/Math.PI;function pR(e){if(e instanceof QR)return new QR(e.l,e.a,e.b,e.opacity);if(e instanceof FR)return RR(e);e instanceof sR||(e=oR(e));var t,A,n=bR(e.r),r=bR(e.g),i=bR(e.b),o=yR((.2225045*n+.7168786*r+.0606169*i)/1);return n===r&&r===i?t=A=o:(t=yR((.4360747*n+.3850649*r+.1430804*i)/.96422),A=yR((.0139322*n+.0971045*r+.7141733*i)/.82521)),new QR(116*o-16,500*(t-o),200*(o-A),e.opacity)}function ER(e,t,A,n){return 1===arguments.length?pR(e):new QR(e,t,A,null==n?1:n)}function QR(e,t,A,n){this.l=+e,this.a=+t,this.b=+A,this.opacity=+n}function yR(e){return e>6/29*(6/29)*(6/29)?Math.pow(e,1/3):e/(6/29*3*(6/29))+4/29}function vR(e){return e>6/29?e*e*e:6/29*3*(6/29)*(e-4/29)}function mR(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function bR(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function wR(e){if(e instanceof FR)return new FR(e.h,e.c,e.l,e.opacity);if(e instanceof QR||(e=pR(e)),0===e.a&&0===e.b)return new FR(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*BR;return new FR(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function SR(e,t,A,n){return 1===arguments.length?wR(e):new FR(e,t,A,null==n?1:n)}function FR(e,t,A,n){this.h=+e,this.c=+t,this.l=+A,this.opacity=+n}function RR(e){if(isNaN(e.h))return new QR(e.l,0,0,e.opacity);var t=e.h*dR;return new QR(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}HF(QR,ER,YF(JF,{brighter:function(e){return new QR(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker:function(e){return new QR(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb:function(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,A=isNaN(this.b)?e:e-this.b/200;return new sR(mR(3.1338561*(t=.96422*vR(t))-1.6168667*(e=1*vR(e))-.4906146*(A=.82521*vR(A))),mR(-.9787684*t+1.9161415*e+.033454*A),mR(.0719453*t-.2289914*e+1.4052427*A),this.opacity)}})),HF(FR,SR,YF(JF,{brighter:function(e){return new FR(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker:function(e){return new FR(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb:function(){return RR(this).rgb()}}));function DR(e,t){for(var A,n,r=t.fields,i=t.values,o=r.length,a=0;a<o;++a)if((n=r[a]).getter=ue.u.getter||Object(ue.u)(n.field),A=n.getter(e),Object(ue.D)(A)&&(A=Object(ue.eb)(A)),Object(ue.D)(i[a])&&(i[a]=Object(ue.eb)(i[a])),Object(ue.D)(i[a][0])&&(i[a]=i[a].map(ue.eb)),"E"===n.type){if(Object(ue.B)(i[a])?i[a].indexOf(A)<0:A!==i[a])return!1}else if("R"===n.type){if(!Object(ue.A)(A,i[a]))return!1}else if("R-RE"===n.type){if(!Object(ue.A)(A,i[a],!0,!1))return!1}else if("R-E"===n.type){if(!Object(ue.A)(A,i[a],!1,!1))return!1}else if("R-LE"===n.type&&!Object(ue.A)(A,i[a],!1,!0))return!1;return!0}var GR=Object(ue.u)("_vgsid_"),kR=function(e){var t=e,A=e;function n(e,t,n,r){for(null==n&&(n=0),null==r&&(r=e.length);n<r;){var i=n+r>>>1;A(e[i],t)<0?n=i+1:r=i}return n}return 1===e.length&&(t=function(t,A){return e(t)-A},A=function(e){return function(t,A){return(n=e(t))<(r=A)?-1:n>r?1:n>=r?0:NaN;var n,r}}(e)),{left:n,center:function(e,A,r,i){null==r&&(r=0),null==i&&(i=e.length);var o=n(e,A,r,i-1);return o>r&&t(e[o-1],A)>-t(e[o],A)?o-1:o},right:function(e,t,n,r){for(null==n&&(n=0),null==r&&(r=e.length);n<r;){var i=n+r>>>1;A(e[i],t)>0?r=i:n=i+1}return n}}}(GR),xR=kR.left,NR=kR.right;var UR={E_union:function(e,t){if(!e.length)return t;for(var A=0,n=t.length;A<n;++A)e.indexOf(t[A])<0&&e.push(t[A]);return e},E_intersect:function(e,t){return e.length?e.filter((function(e){return t.indexOf(e)>=0})):t},R_union:function(e,t){var A=Object(ue.eb)(t[0]),n=Object(ue.eb)(t[1]);return A>n&&(A=t[1],n=t[0]),e.length?(e[0]>A&&(e[0]=A),e[1]<n&&(e[1]=n),e):[A,n]},R_intersect:function(e,t){var A=Object(ue.eb)(t[0]),n=Object(ue.eb)(t[1]);return A>n&&(A=t[1],n=t[0]),e.length?n<e[0]||e[1]<A?[]:(e[0]<A&&(e[0]=A),e[1]>n&&(e[1]=n),e):[A,n]}};function _R(e,t,A,n){"Literal"!==t[0].type&&Object(ue.o)("First argument to selection functions must be a string literal.");var r=t[0].value,i=":"+r;"intersect"!==(t.length>=2&&Object(ue.W)(t).value)||Object(ue.w)(n,"@unit")||(n["@unit"]=A.getData(r).indataRef(A,"unit")),Object(ue.w)(n,i)||(n[i]=A.getData(r).tuplesRef())}function MR(e){var t=this.context.data[e];return t?t.values.value:[]}var OR=function(e){return function(t,A){return this.context.dataflow.locale()[e](A)(t)}},LR=OR("format"),TR=OR("timeFormat"),ZR=OR("utcFormat"),HR=OR("timeParse"),YR=OR("utcParse"),JR=new Date(2e3,0,1);function jR(e,t,A){return Number.isInteger(e)&&Number.isInteger(t)?(JR.setYear(2e3),JR.setMonth(e),JR.setDate(t),TR.call(this,JR,A)):""}function PR(e,t,A,n){"Literal"!==t[0].type&&Object(ue.o)("First argument to data functions must be a string literal.");var r=t[0].value,i=":"+r;if(!Object(ue.w)(i,n))try{n[i]=A.getData(r).tuplesRef()}catch(o){}}function VR(e,t,A,n){if("Literal"===t[0].type)KR(A,n,t[0].value);else for(e in A.scales)KR(A,n,e)}function KR(e,t,A){var n="%"+A;if(!Object(ue.w)(t,n))try{t[n]=e.scaleRef(A)}catch(r){}}function WR(e,t){var A;return Object(ue.E)(e)?e:Object(ue.J)(e)?(A=t.scales[e])&&A.value:void 0}function XR(e,t,A){t.__bandwidth=function(e){return e&&e.bandwidth?e.bandwidth():0},A._bandwidth=VR,A._range=VR,A._scale=VR;var n=function(t){return"_["+("Literal"===t.type?Object(ue.bb)("%"+t.value):Object(ue.bb)("%")+"+"+e(t))+"]"};return{_bandwidth:function(e){return"this.__bandwidth(".concat(n(e[0]),")")},_range:function(e){return"".concat(n(e[0]),".range()")},_scale:function(t){return"".concat(n(t[0]),"(").concat(e(t[1]),")")}}}function qR(e,t){return function(A,n,r){if(A){var i=WR(A,(r||this).context);return i&&i.path[e](n)}return t(n)}}var zR=qR("area",(function(e){return TS=new IS,OS(e,ZS),2*TS})),$R=qR("bounds",(function(e){var t,A,n,r,i,o,a;if(WS=KS=-(PS=VS=1/0),tF=[],OS(e,rF),A=tF.length){for(tF.sort(IF),t=1,i=[n=tF[0]];t<A;++t)CF(n,(r=tF[t])[0])||CF(n,r[1])?(lF(n[0],r[1])>lF(n[0],n[1])&&(n[1]=r[1]),lF(r[0],n[1])>lF(n[0],n[1])&&(n[0]=r[0])):i.push(n=r);for(o=-1/0,t=0,n=i[A=i.length-1];t<=A;n=r,++t)r=i[t],(a=lF(n[1],r[0]))>o&&(o=a,PS=r[0],KS=n[1])}return tF=AF=null,PS===1/0||VS===1/0?[[NaN,NaN],[NaN,NaN]]:[[PS,VS],[KS,WS]]})),eD=qR("centroid",(function(e){hF=fF=dF=BF=pF=EF=QF=yF=0,vF=new IS,mF=new IS,bF=new IS,OS(e,GF);var t=+vF,A=+mF,n=+bF,r=vS(t,A,n);return r<1e-12&&(t=EF,A=QF,n=yF,fF<1e-6&&(t=dF,A=BF,n=pF),(r=vS(t,A,n))<1e-12)?[NaN,NaN]:[QS(A,t)*BS,wS(n/r)*BS]}));function tD(e,t,A){try{e[t].apply(e,["EXPRESSION"].concat([].slice.call(A)))}catch(n){e.warn(n)}return A[A.length-1]}function AD(e){var t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function nD(e){var t=aR(e);return.2126*AD(t.r)+.7152*AD(t.g)+.0722*AD(t.b)}function rD(e,t){return e===t||e!==e&&t!==t||(Object(ue.B)(e)?!(!Object(ue.B)(t)||e.length!==t.length)&&function(e,t){for(var A=0,n=e.length;A<n;++A)if(!rD(e[A],t[A]))return!1;return!0}(e,t):!(!Object(ue.H)(e)||!Object(ue.H)(t))&&iD(e,t))}function iD(e,t){for(var A in e)if(!rD(e[A],t[A]))return!1;return!0}function oD(e){return function(t){return iD(e,t)}}var aD={};function sD(e){return Object(ue.B)(e)||ArrayBuffer.isView(e)?e:null}function gD(e){return sD(e)||(Object(ue.J)(e)?e:null)}var cD=function(e){return e.data};function uD(e,t){var A=MR.call(t,e);return A.root&&A.root.lookup||{}}var lD=function(){return"undefined"!==typeof window&&window||null};var ID={random:function(){return Ft()},cumulativeNormal:Lt,cumulativeLogNormal:jt,cumulativeUniform:qt,densityNormal:Ot,densityLogNormal:Jt,densityUniform:Xt,quantileNormal:Tt,quantileLogNormal:Pt,quantileUniform:zt,sampleNormal:Mt,sampleLogNormal:Yt,sampleUniform:Wt,isArray:ue.B,isBoolean:ue.C,isDate:ue.D,isDefined:function(e){return void 0!==e},isNumber:ue.G,isObject:ue.H,isRegExp:ue.I,isString:ue.J,isTuple:ye,isValid:function(e){return null!=e&&e===e},toBoolean:ue.cb,toDate:ue.db,toNumber:ue.eb,toString:ue.gb,indexof:function(e){for(var t,A=arguments.length,n=new Array(A>1?A-1:0),r=1;r<A;r++)n[r-1]=arguments[r];return(t=gD(e)).indexOf.apply(t,n)},join:function(e){for(var t,A=arguments.length,n=new Array(A>1?A-1:0),r=1;r<A;r++)n[r-1]=arguments[r];return(t=sD(e)).join.apply(t,n)},lastindexof:function(e){for(var t,A=arguments.length,n=new Array(A>1?A-1:0),r=1;r<A;r++)n[r-1]=arguments[r];return(t=gD(e)).lastIndexOf.apply(t,n)},replace:function(e,t,A){return Object(ue.E)(A)&&Object(ue.o)("Function argument passed to replace."),String(e).replace(t,A)},reverse:function(e){return sD(e).slice().reverse()},slice:function(e){for(var t,A=arguments.length,n=new Array(A>1?A-1:0),r=1;r<A;r++)n[r-1]=arguments[r];return(t=gD(e)).slice.apply(t,n)},flush:ue.v,lerp:ue.L,merge:function(){var e=[].slice.call(arguments);return e.unshift({}),ue.p.apply(void 0,Object(zn.a)(e))},pad:ue.R,peek:ue.W,pluck:function(e,t){var A=aD[t]||(aD[t]=Object(ue.u)(t));return Object(ue.B)(e)?e.map(A):A(e)},span:ue.Z,inrange:ue.A,truncate:ue.hb,rgb:aR,lab:ER,hcl:SR,hsl:CR,luminance:nD,contrast:function(e,t){var A=nD(e),n=nD(t);return(Math.max(A,n)+.05)/(Math.min(A,n)+.05)},sequence:function(e,t,A){e=+e,t=+t,A=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+A;for(var n=-1,r=0|Math.max(0,Math.ceil((t-e)/A)),i=new Array(r);++n<r;)i[n]=e+n*A;return i},format:LR,utcFormat:ZR,utcParse:YR,utcOffset:wA.w,utcSequence:wA.x,timeFormat:TR,timeParse:HR,timeOffset:wA.q,timeSequence:wA.r,timeUnitSpecifier:wA.s,monthFormat:function(e){return jR.call(this,e,1,"%B")},monthAbbrevFormat:function(e){return jR.call(this,e,1,"%b")},dayFormat:function(e){return jR.call(this,0,2+e,"%A")},dayAbbrevFormat:function(e){return jR.call(this,0,2+e,"%a")},quarter:ue.X,utcquarter:ue.jb,week:wA.A,utcweek:wA.z,dayofyear:wA.m,utcdayofyear:wA.y,warn:function(){return tD(this.context.dataflow,"warn",arguments)},info:function(){return tD(this.context.dataflow,"info",arguments)},debug:function(){return tD(this.context.dataflow,"debug",arguments)},extent:ue.q,inScope:function(e){var t=this.context.group,A=!1;if(t)for(;e;){if(e===t){A=!0;break}e=e.mark.group}return A},intersect:function(e,t,A){if(!e)return[];var n=Object(lt.a)(e,2),r=n[0],i=n[1],o=(new xl).set(r[0],r[1],i[0],i[1]);return Hh(A||this.context.dataflow.scenegraph().root,o,function(e){var t=null;if(e){var A=Object(ue.i)(e.marktype),n=Object(ue.i)(e.markname);t=function(e){return(!A.length||A.some((function(t){return e.marktype===t})))&&(!n.length||n.some((function(t){return e.name===t})))}}return t}(t))},clampRange:ue.k,pinchDistance:function(e){var t=e.touches,A=t[0].clientX-t[1].clientX,n=t[0].clientY-t[1].clientY;return Math.sqrt(A*A+n*n)},pinchAngle:function(e){var t=e.touches;return Math.atan2(t[0].clientY-t[1].clientY,t[0].clientX-t[1].clientX)},screen:function(){var e=lD();return e?e.screen:{}},containerSize:function(){var e=this.context.dataflow,t=e.container&&e.container();return t?[t.clientWidth,t.clientHeight]:[void 0,void 0]},windowSize:function(){var e=lD();return e?[e.innerWidth,e.innerHeight]:[void 0,void 0]},bandspace:function(e,t,A){return Hc(e||0,t||0,A||0)},setdata:function(e,t){var A=this.context.dataflow,n=this.context.data[e].input;return A.pulse(n,A.changeset().remove(ue.ib).insert(t)),1},pathShape:function(e){var t=null;return function(A){return A?nl(A,t=t||Pu(e)):e}},panLinear:ue.S,panLog:ue.T,panPow:ue.U,panSymlog:ue.V,zoomLinear:ue.nb,zoomLog:ue.ob,zoomPow:ue.pb,zoomSymlog:ue.qb,encode:function(e,t,A){if(e){var n=this.context.dataflow,r=e.mark.source;n.pulse(r,n.changeset().encode(e,t))}return void 0!==A?A:e},modify:function(e,t,A,n,r,i){var o,a,s=this.context.dataflow,g=this.context.data[e],c=g.input,u=s.stamp(),l=g.changes;if(!1===s._trigger||!(c.value.length||t||n))return 0;if((!l||l.stamp<u)&&(g.changes=l=s.changeset(),l.stamp=u,s.runAfter((function(){g.modified=!0,s.pulse(c,l).run()}),!0,1)),A&&(o=!0===A?ue.ib:Object(ue.B)(A)||ye(A)?A:oD(A),l.remove(o)),t&&l.insert(t),n&&(o=oD(n),c.value.some(o)?l.remove(o):l.insert(n)),r)for(a in i)l.modify(r,a,i[a]);return 1}},CD=["view","item","group","xy","x","y"],hD={},fD={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:function(e){return"_[".concat(Object(ue.bb)("$"+e),"]")},functions:function(e){var t=uS(e);for(var A in CD.forEach((function(e){return t[e]="event.vega."+e})),ID)t[A]="this."+A;return Object(ue.p)(t,XR(e,ID,hD)),t},constants:cS,visitors:hD},dD=lS(fD);function BD(e,t,A){return 1===arguments.length?ID[e]:(ID[e]=t,A&&(hD[e]=A),dD&&(dD.functions[e]="this."+e),this)}function pD(e,t){var A,n={};try{A=gS(e=Object(ue.J)(e)?e:Object(ue.bb)(e)+"")}catch(i){Object(ue.o)("Expression parse error: "+e)}A.visit((function(e){if("CallExpression"===e.type){var A=e.callee.name,r=fD.visitors[A];r&&r(A,e.arguments,t,n)}}));var r=dD(A);return r.globals.forEach((function(e){var A="$"+e;!Object(ue.w)(n,A)&&t.getSignal(e)&&(n[A]=t.signalRef(e))})),{$expr:Object(ue.p)({code:r.code},t.options.ast?{ast:A}:null),$fields:r.fields,$params:n}}BD("bandwidth",(function(e,t){var A=WR(e,(t||this).context);return A&&A.bandwidth?A.bandwidth():0}),VR),BD("copy",(function(e,t){var A=WR(e,(t||this).context);return A?A.copy():void 0}),VR),BD("domain",(function(e,t){var A=WR(e,(t||this).context);return A?A.domain():[]}),VR),BD("range",(function(e,t){var A=WR(e,(t||this).context);return A&&A.range?A.range():[]}),VR),BD("invert",(function(e,t,A){var n=WR(e,(A||this).context);return n?Object(ue.B)(t)?(n.invertRange||n.invert)(t):(n.invert||n.invertExtent)(t):void 0}),VR),BD("scale",(function(e,t,A){var n=WR(e,(A||this).context);return n?n(t):void 0}),VR),BD("gradient",(function(e,t,A,n,r){e=WR(e,(r||this).context);var i=Zu(t,A),o=e.domain(),a=o[0],s=Object(ue.W)(o),g=ue.y;return s-a?g=lu(e,a,s):e=(e.interpolator?$c("sequential")().interpolator(e.interpolator()):$c("linear")().interpolate(e.interpolate()).range(e.range())).domain([a=0,s=1]),e.ticks&&(a!==(o=e.ticks(+n||15))[0]&&o.unshift(a),s!==Object(ue.W)(o)&&o.push(s)),o.forEach((function(t){return i.stop(g(t),e(t))})),i}),VR),BD("geoArea",zR,VR),BD("geoBounds",$R,VR),BD("geoCentroid",eD,VR),BD("geoShape",(function(e,t,A){var n=WR(e,(A||this).context);return function(e){return n?n.path.context(e)(t):""}}),VR),BD("indata",(function(e,t,A){var n=this.context.data[e]["index:"+t],r=n?n.value.get(A):void 0;return r?r.count:r}),(function(e,t,A,n){"Literal"!==t[0].type&&Object(ue.o)("First argument to indata must be a string literal."),"Literal"!==t[1].type&&Object(ue.o)("Second argument to indata must be a string literal.");var r=t[0].value,i=t[1].value,o="@"+i;Object(ue.w)(o,n)||(n[o]=A.getData(r).indataRef(A,i))})),BD("data",MR,PR),BD("treePath",(function(e,t,A){var n=uD(e,this),r=n[t],i=n[A];return r&&i?r.path(i).map(cD):void 0}),PR),BD("treeAncestors",(function(e,t){var A=uD(e,this)[t];return A?A.ancestors().map(cD):void 0}),PR),BD("vlSelectionTest",(function(e,t,A){for(var n,r,i,o,a,s=this.context.data[e],g=s?s.values.value:[],c=s?s["index:unit"]&&s["index:unit"].value:void 0,u="intersect"===A,l=g.length,I=0;I<l;++I)if(n=g[I],c&&u){if(-1===(i=(r=r||{})[o=n.unit]||0))continue;if(a=DR(t,n),r[o]=a?-1:++i,a&&1===c.size)return!0;if(!a&&i===c.get(o).count)return!1}else if(u^(a=DR(t,n)))return a;return l&&u}),_R),BD("vlSelectionIdTest",(function(e,t,A){var n=this.context.data[e],r=n?n.values.value:[],i=n?n["index:unit"]&&n["index:unit"].value:void 0,o="intersect"===A,a=GR(t),s=xR(r,a);if(s===r.length)return!1;if(GR(r[s])!==a)return!1;if(i&&o){if(1===i.size)return!0;if(NR(r,a)-s<i.size)return!1}return!0}),_R),BD("vlSelectionResolve",(function(e,t,A,n){for(var r,i,o,a,s,g,c,u,l,I,C,h=this.context.data[e],f=h?h.values.value:[],d={},B={},p={},E=f.length,Q=0;Q<E;++Q){for(a=(r=f[Q]).unit,i=r.fields,o=r.values,I=0,C=i.length;I<C;++I)s=i[I],c=(g=d[s.field]||(d[s.field]={}))[a]||(g[a]=[]),p[s.field]=u=s.type.charAt(0),l=UR[u+"_union"],g[a]=l(c,Object(ue.i)(o[I]));A&&(c=B[a]||(B[a]=[])).push(Object(ue.i)(o).reduce((function(e,t,A){return e[i[A].field]=t,e}),{}))}return t=t||"union",Object.keys(d).forEach((function(e){d[e]=Object.keys(d[e]).map((function(t){return d[e][t]})).reduce((function(A,n){return void 0===A?n:UR[p[e]+"_"+t](A,n)}))})),f=Object.keys(B),A&&f.length&&(d[n?"vlPoint":"vlMulti"]="union"===t?Object($n.a)({},"or",f.reduce((function(e,t){return e.push.apply(e,Object(zn.a)(B[t])),e}),[])):Object($n.a)({},"and",f.map((function(e){return Object($n.a)({},"or",B[e])})))),d}),_R),BD("vlSelectionTuples",(function(e,t){return e.map((function(e){return Object(ue.p)({values:t.fields.map((function(t){return(t.getter||(t.getter=Object(ue.u)(t.field)))(e.datum)}))},t)}))}));var ED=Object(ue.fb)(["rule"]),QD=Object(ue.fb)(["group","image","rect"]);function yD(e){return(e+"").toLowerCase()}function vD(e,t,A){";"!==A[A.length-1]&&(A="return("+A+");");var n=Function.apply(void 0,Object(zn.a)(t.concat(A)));return e&&e.functions?n.bind(e.functions):n}var mD={operator:function(e,t){return vD(e,["_"],t.code)},parameter:function(e,t){return vD(e,["datum","_"],t.code)},event:function(e,t){return vD(e,["event"],t.code)},handler:function(e,t){return vD(e,["_","event"],"var datum=event.item&&event.item.datum;return ".concat(t.code,";"))},encode:function(e,t){var A=t.marktype,n=t.channels,r="var o=item,datum=o.datum,m=0,$;";for(var i in n){var o="o["+Object(ue.bb)(i)+"]";r+="$=".concat(n[i].code,";if(").concat(o,"!==$)").concat(o,"=$,m=1;")}return r+=function(e,t){var A="";return ED[t]||(e.x2&&(e.x?(QD[t]&&(A+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),A+="o.width=o.x2-o.x;"):A+="o.x=o.x2-(o.width||0);"),e.xc&&(A+="o.x=o.xc-(o.width||0)/2;"),e.y2&&(e.y?(QD[t]&&(A+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),A+="o.height=o.y2-o.y;"):A+="o.y=o.y2-(o.height||0);"),e.yc&&(A+="o.y=o.yc-(o.height||0)/2;")),A}(n,A),vD(e,["item","_"],r+="return m;")},codegen:{get:function(e){var t="[".concat(e.map(ue.bb).join("]["),"]"),A=Function("_","return _".concat(t,";"));return A.path=t,A},comparator:function(e,t){var A,n=Function("a","b","var u, v; return "+e.map((function(e,n){var r,i,o=t[n];return e.path?(r="a".concat(e.path),i="b".concat(e.path)):((A=A||{})["f"+n]=e,r="this.f".concat(n,"(a)"),i="this.f".concat(n,"(b)")),function(e,t,A,n){return"((u = ".concat(e,") < (v = ").concat(t,") || u == null) && v != null ? ").concat(A,"\n : (u > v || v == null) && u != null ? ").concat(n,"\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ").concat(A,"\n : v !== v && u === u ? ").concat(n," : ")}(r,i,-o,o)})).join("")+"0;");return A?n.bind(A):n}}};function bD(e,t,A){if(!e||!Object(ue.H)(e))return e;for(var n,r=0,i=wD.length;r<i;++r)if(n=wD[r],Object(ue.w)(e,n.key))return n.parse(e,t,A);return e}var wD=[{key:"$ref",parse:function(e,t){return t.get(e.$ref)||Object(ue.o)("Operator not defined: "+e.$ref)}},{key:"$key",parse:function(e,t){var A="k:"+e.$key+"_"+!!e.$flat;return t.fn[A]||(t.fn[A]=Object(ue.K)(e.$key,e.$flat,t.expr.codegen))}},{key:"$expr",parse:function(e,t,A){e.$params&&t.parseParameters(e.$params,A);var n="e:"+e.$expr.code+"_"+e.$name;return t.fn[n]||(t.fn[n]=Object(ue.f)(t.parameterExpression(e.$expr),e.$fields,e.$name))}},{key:"$field",parse:function(e,t){if(!e.$field)return null;var A="f:"+e.$field+"_"+e.$name;return t.fn[A]||(t.fn[A]=Object(ue.u)(e.$field,e.$name,t.expr.codegen))}},{key:"$encode",parse:function(e,t){var A=e.$encode,n={};for(var r in A){var i=A[r];n[r]=Object(ue.f)(t.encodeExpression(i.$expr),i.$fields),n[r].output=i.$output}return n}},{key:"$compare",parse:function(e,t){var A="c:"+e.$compare+"_"+e.$order,n=Object(ue.i)(e.$compare).map((function(e){return e&&e.$tupleid?ve:e}));return t.fn[A]||(t.fn[A]=Object(ue.l)(n,e.$order,t.expr.codegen))}},{key:"$context",parse:function(e,t){return t}},{key:"$subflow",parse:function(e,t){var A=e.$subflow;return function(e,n,r){var i=t.fork().parse(A),o=i.get(A.operators[0].id),a=i.signals.parent;return a&&a.set(r),o.detachSubflow=function(){return t.detach(i)},o}}},{key:"$tupleid",parse:function(){return ve}}];var SD={skip:!0};function FD(e,t,A,n){return new RD(e,t,A,n)}function RD(e,t,A,n){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=n||mD,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},A&&(this.functions=Object.create(A),this.functions.context=this)}function DD(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}RD.prototype=DD.prototype={fork:function(){var e=new DD(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach:function(e){this.subcontext=this.subcontext.filter((function(t){return t!==e}));for(var t=Object.keys(e.nodes),A=0,n=t;A<n.length;A++){var r=n[A];e.nodes[r]._targets=null}for(var i=0,o=t;i<o.length;i++){var a=o[i];e.nodes[a].detach()}e.nodes=null},get:function(e){return this.nodes[e]},set:function(e,t){return this.nodes[e]=t},add:function(e,t){var A=this,n=A.dataflow,r=e.value;if(A.set(e.id,t),"collect"===yD(e.type)&&r&&(r.$ingest?n.ingest(t,r.$ingest,r.$format):r.$request?n.preload(t,r.$request,r.$format):n.pulse(t,n.changeset().insert(r))),e.root&&(A.root=t),e.parent){var i=A.get(e.parent.$ref);i?(n.connect(i,[t]),t.targets().add(i)):(A.unresolved=A.unresolved||[]).push((function(){i=A.get(e.parent.$ref),n.connect(i,[t]),t.targets().add(i)}))}if(e.signal&&(A.signals[e.signal]=t),e.scale&&(A.scales[e.scale]=t),e.data){var o=function(n){var r=A.data[n]||(A.data[n]={});e.data[n].forEach((function(e){return r[e]=t}))};for(var a in e.data)o(a)}},resolve:function(){return(this.unresolved||[]).forEach((function(e){return e()})),delete this.unresolved,this},operator:function(e,t){this.add(e,this.dataflow.add(e.value,t))},transform:function(e,t){this.add(e,this.dataflow.add(this.transforms[yD(t)]))},stream:function(e,t){this.set(e.id,t)},update:function(e,t,A,n,r){this.dataflow.on(t,A,n,r,e.options)},operatorExpression:function(e){return this.expr.operator(this,e)},parameterExpression:function(e){return this.expr.parameter(this,e)},eventExpression:function(e){return this.expr.event(this,e)},handlerExpression:function(e){return this.expr.handler(this,e)},encodeExpression:function(e){return this.expr.encode(this,e)},parse:function(e){var t=this,A=e.operators||[];return e.background&&(t.background=e.background),e.eventConfig&&(t.eventConfig=e.eventConfig),e.locale&&(t.locale=e.locale),A.forEach((function(e){return t.parseOperator(e)})),A.forEach((function(e){return t.parseOperatorParameters(e)})),(e.streams||[]).forEach((function(e){return t.parseStream(e)})),(e.updates||[]).forEach((function(e){return t.parseUpdate(e)})),t.resolve()},parseOperator:function(e){"operator"!==yD(e.type)&&e.type?this.transform(e,e.type):this.operator(e,e.update?this.operatorExpression(e.update):null)},parseOperatorParameters:function(e){if(e.params){var t=this.get(e.id);t||Object(ue.o)("Invalid operator id: "+e.id),this.dataflow.connect(t,t.parameters(this.parseParameters(e.params),e.react,e.initonly))}},parseParameters:function(e,t){t=t||{};var A=this;for(var n in e){var r=e[n];t[n]=Object(ue.B)(r)?r.map((function(e){return bD(e,A,t)})):bD(r,A,t)}return t},parseStream:function(e){var t,A=this,n=null!=e.filter?A.eventExpression(e.filter):void 0,r=null!=e.stream?A.get(e.stream):void 0;e.source?r=A.events(e.source,e.type,n):e.merge&&(r=(t=e.merge.map((function(e){return A.get(e)})))[0].merge.apply(t[0],t.slice(1))),e.between&&(t=e.between.map((function(e){return A.get(e)})),r=r.between(t[0],t[1])),e.filter&&(r=r.filter(n)),null!=e.throttle&&(r=r.throttle(+e.throttle)),null!=e.debounce&&(r=r.debounce(+e.debounce)),null==r&&Object(ue.o)("Invalid stream definition: "+JSON.stringify(e)),e.consume&&r.consume(!0),A.stream(e,r)},parseUpdate:function(e){var t,A=Object(ue.H)(A=e.source)?A.$ref:A,n=this.get(A),r=e.update,i=void 0;n||Object(ue.o)("Source not defined: "+e.source),t=e.target&&e.target.$expr?this.eventExpression(e.target.$expr):this.get(e.target),r&&r.$expr&&(r.$params&&(i=this.parseParameters(r.$params)),r=this.handlerExpression(r.$expr)),this.update(e,n,t,r,i)},getState:function(e){var t=this,A={};if(e.signals){var n=A.signals={};Object.keys(t.signals).forEach((function(A){var r=t.signals[A];e.signals(A,r)&&(n[A]=r.value)}))}if(e.data){var r=A.data={};Object.keys(t.data).forEach((function(A){var n=t.data[A];e.data(A,n)&&(r[A]=n.input.value)}))}return t.subcontext&&!1!==e.recurse&&(A.subcontext=t.subcontext.map((function(t){return t.getState(e)}))),A},setState:function(e){var t=this,A=t.dataflow,n=e.data,r=e.signals;Object.keys(r||{}).forEach((function(e){A.update(t.signals[e],r[e],SD)})),Object.keys(n||{}).forEach((function(e){A.pulse(t.data[e].input,A.changeset().remove(ue.ib).insert(n[e]))})),(e.subcontext||[]).forEach((function(e,A){var n=t.subcontext[A];n&&n.setState(e)}))}};var GD,kD,xD=0,ND=0,UD=0,_D=0,MD=0,OD=0,LD="object"===typeof performance&&performance.now?performance:Date,TD="object"===typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function ZD(){return MD||(TD(HD),MD=LD.now()+OD)}function HD(){MD=0}function YD(){this._call=this._time=this._next=null}function JD(){MD=(_D=LD.now())+OD,xD=ND=0;try{!function(){ZD(),++xD;for(var e,t=GD;t;)(e=MD-t._time)>=0&&t._call.call(null,e),t=t._next;--xD}()}finally{xD=0,function(){var e,t,A=GD,n=1/0;for(;A;)A._call?(n>A._time&&(n=A._time),e=A,A=A._next):(t=A._next,A._next=null,A=e?e._next=t:GD=t);kD=e,PD(n)}(),MD=0}}function jD(){var e=LD.now(),t=e-_D;t>1e3&&(OD-=t,_D=e)}function PD(e){xD||(ND&&(ND=clearTimeout(ND)),e-MD>24?(e<1/0&&(ND=setTimeout(JD,e-LD.now()-OD)),UD&&(UD=clearInterval(UD))):(UD||(_D=LD.now(),UD=setInterval(jD,1e3)),xD=1,TD(JD)))}YD.prototype=function(e,t,A){var n=new YD;return n.restart(e,t,A),n}.prototype={constructor:YD,restart:function(e,t,A){if("function"!==typeof e)throw new TypeError("callback is not a function");A=(null==A?ZD():+A)+(null==t?0:+t),this._next||kD===this||(kD?kD._next=this:GD=this,kD=this),this._call=e,this._time=A,PD()},stop:function(){this._call&&(this._call=null,this._time=1/0,PD())}};function VD(e,t){e&&(null==t?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}function KD(e,t){var A=e.globalCursor()?"undefined"!==typeof document&&document.body:e.container();if(A)return null==t?A.style.removeProperty("cursor"):A.style.cursor=t}function WD(e,t){var A=e._runtime.data;return Object(ue.w)(A,t)||Object(ue.o)("Unrecognized data set: "+t),A[t]}function XD(e,t){De(t)||Object(ue.o)("Second argument to changes must be a changeset.");var A=WD(this,e);return A.modified=!0,this.pulse(A.input,t)}function qD(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function zD(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function $D(e){var t=e.padding(),A=e._origin;return[t.left+A[0],t.top+A[1]]}function eG(e){var t=$D(e),A=qD(e),n=zD(e);e._renderer.background(e.background()),e._renderer.resize(A,n,t),e._handler.origin(t),e._resizeListeners.forEach((function(t){try{t(A,n)}catch(r){e.error(r)}}))}function tG(e,t,A){var n,r,i=e._renderer,o=i&&i.canvas();return o&&(r=$D(e),(n=ZC(t.changedTouches?t.changedTouches[0]:t,o))[0]-=r[0],n[1]-=r[1]),t.dataflow=e,t.item=A,t.vega=function(e,t,A){var n=t?"group"===t.mark.marktype?t:t.mark.group:null;function r(e){var A,r=n;if(e)for(A=t;A;A=A.mark.group)if(A.mark.name===e){r=A;break}return r&&r.mark&&r.mark.interactive?r:{}}function i(e){if(!e)return A;Object(ue.J)(e)&&(e=r(e));for(var t=A.slice();e;)t[0]-=e.x||0,t[1]-=e.y||0,e=e.mark&&e.mark.group;return t}return{view:Object(ue.m)(e),item:Object(ue.m)(t||{}),group:r,xy:i,x:function(e){return i(e)[0]},y:function(e){return i(e)[1]}}}(e,A,n),t}var AG={trap:!1};function nG(e,t,A,n){e._eventListeners.push({type:A,sources:Object(ue.i)(t),handler:n})}function rG(e,t,A){var n=e._eventConfig&&e._eventConfig[t];return!(!1===n||Object(ue.H)(n)&&!n[A])||(e.warn("Blocked ".concat(t," ").concat(A," event listener.")),!1)}function iG(e){return e.item}function oG(e){return e.item.mark.source}function aG(e){return function(t,A){return A.vega.view().changeset().encode(A.item,e)}}function sG(e,t,A){var n=document.createElement(e);for(var r in t)n.setAttribute(r,t[r]);return null!=A&&(n.textContent=A),n}function gG(e,t,A,n){var r=A.event||"input",i=function(){return e.update(t.value)};n.signal(A.signal,t.value),t.addEventListener(r,i),nG(n,t,r,i),e.set=function(e){t.value=e,t.dispatchEvent(function(e){return"undefined"!==typeof Event?new Event(e):{type:e}}(r))}}function cG(e,t,A,n){var r=n.signal(A.signal),i=sG("div",{class:"vega-bind"}),o="radio"===A.input?i:i.appendChild(sG("label"));o.appendChild(sG("span",{class:"vega-bind-name"},A.name||A.signal)),t.appendChild(i);var a=uG;switch(A.input){case"checkbox":a=lG;break;case"select":a=IG;break;case"radio":a=CG;break;case"range":a=hG}a(e,o,A,r)}function uG(e,t,A,n){var r=sG("input");for(var i in A)"signal"!==i&&"element"!==i&&r.setAttribute("input"===i?"type":i,A[i]);r.setAttribute("name",A.signal),r.value=n,t.appendChild(r),r.addEventListener("input",(function(){return e.update(r.value)})),e.elements=[r],e.set=function(e){return r.value=e}}function lG(e,t,A,n){var r={type:"checkbox",name:A.signal};n&&(r.checked=!0);var i=sG("input",r);t.appendChild(i),i.addEventListener("change",(function(){return e.update(i.checked)})),e.elements=[i],e.set=function(e){return i.checked=!!e||null}}function IG(e,t,A,n){var r=sG("select",{name:A.signal}),i=A.labels||[];A.options.forEach((function(e,t){var A={value:e};fG(e,n)&&(A.selected=!0),r.appendChild(sG("option",A,(i[t]||e)+""))})),t.appendChild(r),r.addEventListener("change",(function(){e.update(A.options[r.selectedIndex])})),e.elements=[r],e.set=function(e){for(var t=0,n=A.options.length;t<n;++t)if(fG(A.options[t],e))return void(r.selectedIndex=t)}}function CG(e,t,A,n){var r=sG("span",{class:"vega-bind-radio"}),i=A.labels||[];t.appendChild(r),e.elements=A.options.map((function(t,o){var a={type:"radio",name:A.signal,value:t};fG(t,n)&&(a.checked=!0);var s=sG("input",a);s.addEventListener("change",(function(){return e.update(t)}));var g=sG("label",{},(i[o]||t)+"");return g.prepend(s),r.appendChild(g),s})),e.set=function(t){for(var A=e.elements,n=A.length,r=0;r<n;++r)fG(A[r].value,t)&&(A[r].checked=!0)}}function hG(e,t,A,n){n=void 0!==n?n:(+A.max+ +A.min)/2;var r=null!=A.max?A.max:Math.max(100,+n)||100,i=A.min||Math.min(0,r,+n)||0,o=A.step||function(e,t,A){var n=Math.abs(t-e)/Math.max(0,A),r=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),i=n/r;return i>=ow?r*=10:i>=aw?r*=5:i>=sw&&(r*=2),t<e?-r:r}(i,r,100),a=sG("input",{type:"range",name:A.signal,min:i,max:r,step:o});a.value=n;var s=sG("span",{},+n);t.appendChild(a),t.appendChild(s);var g=function(){s.textContent=a.value,e.update(+a.value)};a.addEventListener("input",g),a.addEventListener("change",g),e.elements=[a],e.set=function(e){a.value=e,s.textContent=e}}function fG(e,t){return e===t||e+""===t+""}function dG(e,t,A,n,r,i){return(t=t||new n(e.loader())).initialize(A,qD(e),zD(e),$D(e),r,i).background(e.background())}function BG(e,t){return t?function(){try{t.apply(this,arguments)}catch(A){e.error(A)}}:null}function pG(e,t,A){if("string"===typeof t){if("undefined"===typeof document)return e.error("DOM document instance not found."),null;if(!(t=document.querySelector(t)))return e.error("Signal bind element not found: "+t),null}if(t&&A)try{t.innerHTML=""}catch(n){t=null,e.error(n)}return t}var EG=function(e){return+e||0};function QG(e){return Object(ue.H)(e)?{top:EG(e.top),bottom:EG(e.bottom),left:EG(e.left),right:EG(e.right)}:function(e){return{top:e,bottom:e,left:e,right:e}}(EG(e))}function yG(e,t,A,n){return vG.apply(this,arguments)}function vG(){return(vG=Object(Ce.a)(Ie.a.mark((function e(t,A,n,r){var i,o;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=Zh(A),(o=i&&i.headless)||Object(ue.o)("Unrecognized renderer type: "+A),e.next=4,t.runAsync();case 4:return e.abrupt("return",dG(t,null,null,o,n,r).renderAsync(t._scenegraph.root));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function mG(){return(mG=Object(Ce.a)(Ie.a.mark((function e(t,A){var n;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t!==Lh.Canvas&&t!==Lh.SVG&&t!==Lh.PNG&&Object(ue.o)("Unrecognized image type: "+t),e.next=3,yG(this,t,A);case 3:return n=e.sent,e.abrupt("return",t===Lh.SVG?bG(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png"));case 5:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}function bG(e,t){var A=new Blob([e],{type:t});return window.URL.createObjectURL(A)}function wG(){return(wG=Object(Ce.a)(Ie.a.mark((function e(t,A){var n;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,yG(this,Lh.Canvas,t,A);case 2:return n=e.sent,e.abrupt("return",n.canvas());case 4:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}function SG(){return(SG=Object(Ce.a)(Ie.a.mark((function e(t){var A;return Ie.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,yG(this,Lh.SVG,t);case 2:return A=e.sent,e.abrupt("return",A.svg());case 4:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}var FG={skip:!0};function RG(e,t){var A=e.autosize(),n=e.padding();return t-(A&&"padding"===A.contains?n.left+n.right:0)}function DG(e,t){var A=e.autosize(),n=e.padding();return t-(A&&"padding"===A.contains?n.top+n.bottom:0)}function GG(e,t){return t.modified&&Object(ue.B)(t.input.value)&&e.indexOf("_:vega:_")}function kG(e,t){return!("parent"===e||t instanceof st.proxy)}function xG(e,t,A,n){var r=e.element();r&&r.setAttribute("title",function(e){return null==e?"":Object(ue.B)(e)?NG(e):Object(ue.H)(e)&&!Object(ue.D)(e)?(t=e,Object.keys(t).map((function(e){var A=t[e];return e+": "+(Object(ue.B)(A)?NG(A):UG(A))})).join("\n")):e+"";var t}(n))}function NG(e){return"["+e.map(UG).join(", ")+"]"}function UG(e){return Object(ue.B)(e)?"[\u2026]":Object(ue.H)(e)&&!Object(ue.D)(e)?"{\u2026}":e}function _G(e,t){if(t=t||{},it.call(this),t.loader&&this.loader(t.loader),t.logger&&this.logger(t.logger),null!=t.logLevel&&this.logLevel(t.logLevel),t.locale||e.locale){var A=Object(ue.p)({},e.locale,t.locale);this.locale(Object(fe.b)(A.number,A.time))}this._el=null,this._elBind=null,this._renderType=t.renderer||Lh.Canvas,this._scenegraph=new NC;var n=this._scenegraph.root;this._renderer=null,this._tooltip=t.tooltip||xG,this._redraw=!0,this._handler=(new eh).scene(n),this._globalCursor=!1,this._preventDefault=!1,this._timers=[],this._eventListeners=[],this._resizeListeners=[],this._eventConfig=function(e){var t=Object(ue.p)({defaults:{}},e),A=function(e,t){t.forEach((function(t){Object(ue.B)(e[t])&&(e[t]=Object(ue.fb)(e[t]))}))};return A(t.defaults,["prevent","allow"]),A(t,["view","window","selector"]),t}(e.eventConfig),this.globalCursor(this._eventConfig.globalCursor);var r=function(e,t,A){return FD(e,st,ID,A).parse(t)}(this,e,t.expr);this._runtime=r,this._signals=r.signals,this._bind=(e.bindings||[]).map((function(e){return{state:null,param:Object(ue.p)({},e)}})),r.root&&r.root.set(n),n.source=r.data.root.input,this.pulse(r.data.root.input,this.changeset().insert(n.items)),this._width=this.width(),this._height=this.height(),this._viewWidth=RG(this,this._width),this._viewHeight=DG(this,this._height),this._origin=[0,0],this._resize=0,this._autosize=1,function(e){var t=e._signals,A=t.width,n=t.height,r=t.padding;function i(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,(function(t){e._width=t.size,e._viewWidth=RG(e,t.size),i()}),{size:A}),e._resizeHeight=e.add(null,(function(t){e._height=t.size,e._viewHeight=DG(e,t.size),i()}),{size:n});var o=e.add(null,i,{pad:r});e._resizeWidth.rank=A.rank+1,e._resizeHeight.rank=n.rank+1,o.rank=r.rank+1}(this),function(e){e.add(null,(function(t){return e._background=t.bg,e._resize=1,t.bg}),{bg:e._signals.background})}(this),function(e){var t=e._signals.cursor||(e._signals.cursor=e.add({user:"default",item:null}));e.on(e.events("view","mousemove"),t,(function(e,A){var n=t.value,r=n?Object(ue.J)(n)?n:n.user:"default",i=A.item&&A.item.cursor||null;return n&&r===n.user&&i==n.item?n:{user:r,item:i}})),e.add(null,(function(t){var A=t.cursor,n=this.value;return Object(ue.J)(A)||(n=A.item,A=A.user),KD(e,A&&"default"!==A?A:n||A),n}),{cursor:t})}(this),this.description(e.description),t.hover&&this.hover(),t.container&&this.initialize(t.container,t.bind)}function MG(e,t){return Object(ue.w)(e._signals,t)?e._signals[t]:Object(ue.o)("Unrecognized signal name: "+Object(ue.bb)(t))}function OG(e,t){var A=(e._targets||[]).filter((function(e){return e._update&&e._update.handler===t}));return A.length?A[0]:null}function LG(e,t,A,n){var r=OG(A,n);return r||((r=BG(e,(function(){return n(t,A.value)}))).handler=n,e.on(A,null,r)),e}function TG(e,t,A){var n=OG(t,A);return n&&t._targets.remove(n),e}Object(ue.z)(_G,it,{evaluate:function(e,t,A){var n=this;return Object(Ce.a)(Ie.a.mark((function r(){return Ie.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,it.prototype.evaluate.call(n,e,t);case 2:if(!n._redraw&&!n._resize){r.next=14;break}if(r.prev=3,!n._renderer){r.next=8;break}return n._resize&&(n._resize=0,eG(n)),r.next=8,n._renderer.renderAsync(n._scenegraph.root);case 8:n._redraw=!1,r.next=14;break;case 11:r.prev=11,r.t0=r.catch(3),n.error(r.t0);case 14:return A&&Be(n,A),r.abrupt("return",n);case 16:case"end":return r.stop()}}),r,null,[[3,11]])})))()},dirty:function(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description:function(e){if(arguments.length){var t=null!=e?e+"":null;return t!==this._desc&&VD(this._el,this._desc=t),this}return this._desc},container:function(){return this._el},scenegraph:function(){return this._scenegraph},origin:function(){return this._origin.slice()},signal:function(e,t,A){var n=MG(this,e);return 1===arguments.length?n.value:this.update(n,t,A)},width:function(e){return arguments.length?this.signal("width",e):this.signal("width")},height:function(e){return arguments.length?this.signal("height",e):this.signal("height")},padding:function(e){return arguments.length?this.signal("padding",QG(e)):QG(this.signal("padding"))},autosize:function(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background:function(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer:function(e){return arguments.length?(Zh(e)||Object(ue.o)("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip:function(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader:function(e){return arguments.length?(e!==this._loader&&(it.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize:function(){return this._autosize=1,this.touch(MG(this,"autosize"))},_resetRenderer:function(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(e,t,A,n,r,i){this.runAfter((function(o){var a=0;o._autosize=0,o.width()!==A&&(a=1,o.signal("width",A,FG),o._resizeWidth.skip(!0)),o.height()!==n&&(a=1,o.signal("height",n,FG),o._resizeHeight.skip(!0)),o._viewWidth!==e&&(o._resize=1,o._viewWidth=e),o._viewHeight!==t&&(o._resize=1,o._viewHeight=t),o._origin[0]===r[0]&&o._origin[1]===r[1]||(o._resize=1,o._origin=r),a&&o.run("enter"),i&&o.runAfter((function(e){return e.resize()}))}),!1,1)},addEventListener:function(e,t,A){var n=t;return A&&!1===A.trap||((n=BG(this,t)).raw=t),this._handler.on(e,n),this},removeEventListener:function(e,t){for(var A,n,r=this._handler.handlers(e),i=r.length;--i>=0;)if(n=r[i].type,A=r[i].handler,e===n&&(t===A||t===A.raw)){this._handler.off(n,A);break}return this},addResizeListener:function(e){var t=this._resizeListeners;return t.indexOf(e)<0&&t.push(e),this},removeResizeListener:function(e){var t=this._resizeListeners,A=t.indexOf(e);return A>=0&&t.splice(A,1),this},addSignalListener:function(e,t){return LG(this,e,MG(this,e),t)},removeSignalListener:function(e,t){return TG(this,MG(this,e),t)},addDataListener:function(e,t){return LG(this,e,WD(this,e).values,t)},removeDataListener:function(e,t){return TG(this,WD(this,e).values,t)},globalCursor:function(e){if(arguments.length){if(this._globalCursor!==!!e){var t=KD(this,null);this._globalCursor=!!e,t&&KD(this,t)}return this}return this._globalCursor},preventDefault:function(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:function(e,t){this._timers.push(function(e,t,A){var n=new YD,r=t;return null==t?(n.restart(e,t,A),n):(n._restart=n.restart,n.restart=function(e,t,A){t=+t,A=null==A?ZD():+A,n._restart((function i(o){o+=r,n._restart(i,r+=t,A),e(o)}),t,A)},n.restart(e,t,A),n)}((function(t){e({timestamp:Date.now(),elapsed:t})}),t))},events:function(e,t,A){var n,r=this,i=new Le(A),o=function(A,n){r.runAsync(null,(function(){"view"===e&&function(e,t){var A=e._eventConfig.defaults,n=A.prevent,r=A.allow;return!1!==n&&!0!==r&&(!0===n||!1===r||(n?n[t]:r?!r[t]:e.preventDefault()))}(r,t)&&A.preventDefault(),i.receive(tG(r,A,n))}))};if("timer"===e)rG(r,"timer",t)&&r.timer(o,t);else if("view"===e)rG(r,"view",t)&&r.addEventListener(t,o,AG);else if("window"===e?rG(r,"window",t)&&"undefined"!==typeof window&&(n=[window]):"undefined"!==typeof document&&rG(r,"selector",t)&&(n=document.querySelectorAll(e)),n){for(var a=0,s=n.length;a<s;++a)n[a].addEventListener(t,o);nG(r,n,t,o)}else r.warn("Can not resolve event source: "+e);return i},finalize:function(){var e,t,A,n=this._tooltip,r=this._timers,i=this._eventListeners;for(e=r.length;--e>=0;)r[e].stop();for(e=i.length;--e>=0;)for(t=(A=i[e]).sources.length;--t>=0;)A.sources[t].removeEventListener(A.type,A.handler);return n&&n.call(this,this._handler,null,null,null),this},hover:function(e,t){return t=[t||"update",(e=[e||"hover"])[0]],this.on(this.events("view","mouseover",iG),oG,aG(e)),this.on(this.events("view","mouseout",iG),oG,aG(t)),this},data:function(e,t){return arguments.length<2?WD(this,e).values.value:XD.call(this,e,Ge().remove(ue.ib).insert(t))},change:XD,insert:function(e,t){return XD.call(this,e,Ge().insert(t))},remove:function(e,t){return XD.call(this,e,Ge().remove(t))},scale:function(e){var t=this._runtime.scales;return Object(ue.w)(t,e)||Object(ue.o)("Unrecognized scale or projection: "+e),t[e].value},initialize:function(e,t){var A=this,n=A._renderType,r=A._eventConfig.bind,i=Zh(n);e=A._el=e?pG(A,e,!0):null,function(e){var t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),VD(t,e.description()))}(A),i||A.error("Unrecognized renderer type: "+n);var o=i.handler||eh,a=e?i.renderer:i.headless;return A._renderer=a?dG(A,A._renderer,e,a):null,A._handler=function(e,t,A,n){var r=new n(e.loader(),BG(e,e.tooltip())).scene(e.scenegraph().root).initialize(A,$D(e),e);return t&&t.handlers().forEach((function(e){r.on(e.type,e.handler)})),r}(A,A._handler,e,o),A._redraw=!0,e&&"none"!==r&&(t=t?A._elBind=pG(A,t,!0):e.appendChild(sG("form",{class:"vega-bindings"})),A._bind.forEach((function(e){e.param.element&&"container"!==r&&(e.element=pG(A,e.param.element,!!e.param.input))})),A._bind.forEach((function(e){!function(e,t,A){if(t){var n=A.param,r=A.state;r||(r=A.state={elements:null,active:!1,set:null,update:function(t){t!=e.signal(n.signal)&&e.runAsync(null,(function(){r.source=!0,e.signal(n.signal,t)}))}},n.debounce&&(r.update=Object(ue.n)(n.debounce,r.update))),(null==n.input&&n.element?gG:cG)(r,t,n,e),r.active||(e.on(e._signals[n.signal],null,(function(){r.source?r.source=!1:r.set(e.signal(n.signal))})),r.active=!0)}}(A,e.element||t,e)}))),A},toImageURL:function(e,t){return mG.apply(this,arguments)},toCanvas:function(e,t){return wG.apply(this,arguments)},toSVG:function(e){return SG.apply(this,arguments)},getState:function(e){return this._runtime.getState(e||{data:GG,signals:kG,recurse:!0})},setState:function(e){return this.runAsync(null,(function(t){t._trigger=!1,t._runtime.setState(e)}),(function(e){e._trigger=!0})),this}});var ZG,HG,YG=/[[\]{}]/,JG={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};function jG(e,t,A){return ZG=t||"view",HG=A||JG,VG(e.trim()).map(KG)}function PG(e,t,A,n,r){for(var i,o=e.length,a=0;t<o;++t){if(i=e[t],!a&&i===A)return t;r&&r.indexOf(i)>=0?--a:n&&n.indexOf(i)>=0&&++a}return t}function VG(e){for(var t=[],A=e.length,n=0,r=0;r<A;)r=PG(e,r,",","[{","]}"),t.push(e.substring(n,r).trim()),n=++r;if(0===t.length)throw"Empty event selector: "+e;return t}function KG(e){return"["===e[0]?function(e){var t,A=e.length,n=1;if((n=PG(e,n,"]","[","]"))===A)throw"Empty between selector: "+e;if(2!==(t=VG(e.substring(1,n))).length)throw"Between selector must have two elements: "+e;if(">"!==(e=e.slice(n+1).trim())[0])throw"Expected '>' after between selector: "+e;t=t.map(KG);var r=KG(e.slice(1).trim());if(r.between)return{between:t,stream:r};r.between=t;return r}(e):function(e){var t,A,n={source:ZG},r=[],i=[0,0],o=0,a=0,s=e.length,g=0;if("}"===e[s-1]){if(!((g=e.lastIndexOf("{"))>=0))throw"Unmatched right brace: "+e;try{i=function(e){var t=e.split(",");if(!e.length||t.length>2)throw e;return t.map((function(t){var A=+t;if(A!==A)throw e;return A}))}(e.substring(g+1,s-1))}catch(u){throw"Invalid throttle specification: "+e}e=e.slice(0,g).trim(),s=e.length,g=0}if(!s)throw e;"@"===e[0]&&(o=++g);(t=PG(e,g,":"))<s&&(r.push(e.substring(a,t).trim()),a=g=++t);if((g=PG(e,g,"["))===s)r.push(e.substring(a,s).trim());else if(r.push(e.substring(a,g).trim()),A=[],(a=++g)===s)throw"Unmatched left bracket: "+e;for(;g<s;){if((g=PG(e,g,"]"))===s)throw"Unmatched left bracket: "+e;if(A.push(e.substring(a,g).trim()),g<s-1&&"["!==e[++g])throw"Expected left bracket: "+e;a=++g}if(!(s=r.length)||YG.test(r[s-1]))throw"Invalid event selector: "+e;s>1?(n.type=r[1],o?n.markname=r[0].slice(1):(c=r[0],HG[c]?n.marktype=r[0]:n.source=r[0])):n.type=r[0];var c;"!"===n.type.slice(-1)&&(n.consume=!0,n.type=n.type.slice(0,-1));null!=A&&(n.filter=A);i[0]&&(n.throttle=i[0]);i[1]&&(n.debounce=i[1]);return n}(e)}function WG(e){return Object(ue.H)(e)?e:{type:e||"pad"}}var XG=function(e){return+e||0};function qG(e){return Object(ue.H)(e)?e.signal?e:{top:XG(e.top),bottom:XG(e.bottom),left:XG(e.left),right:XG(e.right)}:{top:t=XG(e),bottom:t,left:t,right:t};var t}var zG=function(e){return Object(ue.H)(e)&&!Object(ue.B)(e)?Object(ue.p)({},e):{value:e}};function $G(e,t,A,n){return null!=A?(Object(ue.H)(A)&&!Object(ue.B)(A)||Object(ue.B)(A)&&A.length&&Object(ue.H)(A[0])?e.update[t]=A:e[n||"enter"][t]={value:A},1):0}function ek(e,t,A){for(var n in t)$G(e,n,t[n]);for(var r in A)$G(e,r,A[r],"update")}function tk(e,t,A){for(var n in t)A&&Object(ue.w)(A,n)||(e[n]=Object(ue.p)(e[n]||{},t[n]));return e}function Ak(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}function nk(e,t,A){e[t]=A&&A.signal?{signal:A.signal}:{value:A}}var rk=function(e){return Object(ue.J)(e)?Object(ue.bb)(e):e.signal?"(".concat(e.signal,")"):sk(e)};function ik(e){if(null!=e.gradient)return function(e){var t=[e.start,e.stop,e.count].map((function(e){return null==e?null:Object(ue.bb)(e)}));for(;t.length&&null==Object(ue.W)(t);)t.pop();return t.unshift(rk(e.gradient)),"gradient(".concat(t.join(","),")")}(e);var t=e.signal?"(".concat(e.signal,")"):e.color?function(e){return e.c?ok("hcl",e.h,e.c,e.l):e.h||e.s?ok("hsl",e.h,e.s,e.l):e.l||e.a?ok("lab",e.l,e.a,e.b):e.r||e.g||e.b?ok("rgb",e.r,e.g,e.b):null}(e.color):null!=e.field?sk(e.field):void 0!==e.value?Object(ue.bb)(e.value):void 0;return null!=e.scale&&(t=function(e,t){var A=rk(e.scale);null!=e.range?t="lerp(_range(".concat(A,"), ").concat(+e.range,")"):(void 0!==t&&(t="_scale(".concat(A,", ").concat(t,")")),e.band&&(t=(t?t+"+":"")+"_bandwidth(".concat(A,")")+(1===+e.band?"":"*"+ak(e.band)),e.extra&&(t="(datum.extra ? _scale(".concat(A,", datum.extra.value) : ").concat(t,")"))),null==t&&(t="0"));return t}(e,t)),void 0===t&&(t=null),null!=e.exponent&&(t="pow(".concat(t,",").concat(ak(e.exponent),")")),null!=e.mult&&(t+="*".concat(ak(e.mult))),null!=e.offset&&(t+="+".concat(ak(e.offset))),e.round&&(t="round(".concat(t,")")),t}var ok=function(e,t,A,n){return"(".concat(e,"(").concat([t,A,n].map(ik).join(","),")+'')")};function ak(e){return Object(ue.H)(e)?"("+ik(e)+")":e}function sk(e){return function e(t){var A,n,r;if(t.signal)A="datum",r=t.signal;else if(t.group||t.parent){for(n=Math.max(1,t.level||1),A="item";n-- >0;)A+=".mark.group";t.parent?(r=t.parent,A+=".datum"):r=t.group}else t.datum?(A="datum",r=t.datum):Object(ue.o)("Invalid field reference: "+Object(ue.bb)(t));t.signal||(r=Object(ue.J)(r)?Object(ue.ab)(r).map(ue.bb).join("]["):e(r));return A+"["+r+"]"}(Object(ue.H)(e)?e:{datum:e})}function gk(e,t,A,n,r,i){var o={};for(var a in(i=i||{}).encoders={$encode:o},e=function(e,t,A,n,r){var i,o,a,s={},g={};for(o in o="lineBreak","text"!==t||null==r[o]||Ak(o,e)||nk(s,o,r[o]),("legend"==A||String(A).startsWith("axis"))&&(A=null),a="frame"===A?r.group:"mark"===A?Object(ue.p)({},r.mark,r[t]):null)Ak(o,e)||("fill"===o||"stroke"===o)&&(Ak("fill",e)||Ak("stroke",e))||nk(s,o,a[o]);for(o in Object(ue.i)(n).forEach((function(t){var A=r.style&&r.style[t];for(var n in A)Ak(n,e)||nk(s,n,A[n])})),e=Object(ue.p)({},e),s)(a=s[o]).signal?(i=i||{})[o]=a:g[o]=a;return e.enter=Object(ue.p)(g,e.enter),i&&(e.update=Object(ue.p)(i,e.update)),e}(e,t,A,n,r.config))o[a]=ck(e[a],t,i,r);return i}function ck(e,t,A,n){var r,i={},o={};for(var a in e)null!=e[a]&&(i[a]=uk((r=e[a],Object(ue.B)(r)?function(e){var t="";return e.forEach((function(e){var A=ik(e);t+=e.test?"(".concat(e.test,")?").concat(A,":"):A})),":"===Object(ue.W)(t)&&(t+="null"),t}(r):ik(r)),n,A,o));return{$expr:{marktype:t,channels:i},$fields:Object.keys(o),$output:Object.keys(e)}}function uk(e,t,A,n){var r=pD(e,t);return r.$fields.forEach((function(e){return n[e]=1})),Object(ue.p)(A,r.$params),r.$expr}var lk=["value","update","init","react","bind"];function Ik(e,t){Object(ue.o)(e+' for "outer" push: '+Object(ue.bb)(t))}function Ck(e,t){var A=e.name;if("outer"===e.push)t.signals[A]||Ik("No prior signal definition",A),lk.forEach((function(t){void 0!==e[t]&&Ik("Invalid property ",t)}));else{var n=t.addSignal(A,e.value);!1===e.react&&(n.react=!1),e.bind&&t.addBinding(A,e.bind)}}function hk(e,t,A,n){this.id=-1,this.type=e,this.value=t,this.params=A,n&&(this.parent=n)}function fk(e,t,A,n){return new hk(e,t,A,n)}function dk(e,t){return fk("operator",e,t)}function Bk(e){var t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function pk(e,t){return t?{$field:e,$name:t}:{$field:e}}var Ek=pk("key");function Qk(e,t){return{$compare:e,$order:t}}function yk(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}function vk(e){return e&&e.signal}function mk(e){if(vk(e))return!0;if(Object(ue.H)(e))for(var t in e)if(mk(e[t]))return!0;return!1}function bk(e,t){return null!=e?e:t}function wk(e){return e&&e.signal||e}function Sk(e,t){return(e.merge?Fk:e.stream?Rk:e.type?Dk:Object(ue.o)("Invalid stream specification: "+Object(ue.bb)(e)))(e,t)}function Fk(e,t){var A=Gk({merge:e.merge.map((function(e){return Sk(e,t)}))},e,t);return t.addStream(A).id}function Rk(e,t){var A=Gk({stream:Sk(e.stream,t)},e,t);return t.addStream(A).id}function Dk(e,t){var A,n;"timer"===e.type?(A=t.event("timer",e.throttle),e={between:e.between,filter:e.filter}):A=t.event("scope"===(n=e.source)?"view":n||"view",e.type);var r=Gk({stream:A},e,t);return 1===Object.keys(r).length?A:t.addStream(r).id}function Gk(e,t,A){var n=t.between;return n&&(2!==n.length&&Object(ue.o)('Stream "between" parameter must have 2 entries: '+Object(ue.bb)(t)),e.between=[Sk(n[0],A),Sk(n[1],A)]),n=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&n.push(function(e,t,A){var n="event.item";return n+(e&&"*"!==e?"&&"+n+".mark.marktype==='"+e+"'":"")+(A?"&&"+n+".mark.role==='"+A+"'":"")+(t?"&&"+n+".mark.name==='"+t+"'":"")}(t.marktype,t.markname,t.markrole)),"scope"===t.source&&n.push("inScope(event.item)"),n.length&&(e.filter=pD("("+n.join(")&&(")+")",A).$expr),null!=(n=t.throttle)&&(e.throttle=+n),null!=(n=t.debounce)&&(e.debounce=+n),t.consume&&(e.consume=!0),e}var kk={code:"_.$value",ast:{type:"Identifier",value:"value"}};function xk(e,t,A){var n=e.encode,r={target:A},i=e.events,o=e.update,a=[];i||Object(ue.o)("Signal update missing events specification."),Object(ue.J)(i)&&(i=jG(i,t.isSubscope()?"scope":"view")),i=Object(ue.i)(i).filter((function(e){return e.signal||e.scale?(a.push(e),0):1})),a.length>1&&(a=[Nk(a)]),i.length&&a.push(i.length>1?{merge:i}:i[0]),null!=n&&(o&&Object(ue.o)("Signal encode and update are mutually exclusive."),o="encode(item(),"+Object(ue.bb)(n)+")"),r.update=Object(ue.J)(o)?pD(o,t):null!=o.expr?pD(o.expr,t):null!=o.value?o.value:null!=o.signal?{$expr:kk,$params:{$value:t.signalRef(o.signal)}}:Object(ue.o)("Invalid signal update specification."),e.force&&(r.options={force:!0}),a.forEach((function(e){return t.addUpdate(Object(ue.p)(function(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):Sk(e,t)}}(e,t),r))}))}function Nk(e){return{signal:"["+e.map((function(e){return e.scale?'scale("'+e.scale+'")':e.signal}))+"]"}}var Uk=function(e){return function(t,A,n){return fk(e,A,t||void 0,n)}},_k=Uk("aggregate"),Mk=Uk("axisticks"),Ok=Uk("bound"),Lk=Uk("collect"),Tk=Uk("compare"),Zk=Uk("datajoin"),Hk=Uk("encode"),Yk=Uk("expression"),Jk=Uk("facet"),jk=Uk("field"),Pk=Uk("key"),Vk=Uk("legendentries"),Kk=Uk("load"),Wk=Uk("mark"),Xk=Uk("multiextent"),qk=Uk("multivalues"),zk=Uk("overlap"),$k=Uk("params"),ex=Uk("prefacet"),tx=Uk("projection"),Ax=Uk("proxy"),nx=Uk("relay"),rx=Uk("render"),ix=Uk("scale"),ox=Uk("sieve"),ax=Uk("sortitems"),sx=Uk("viewlayout"),gx=Uk("values"),cx=0,ux={min:"min",max:"max",count:"sum"};function lx(e,t){var A,n,r=t.getScale(e.name).params;for(A in r.domain=fx(e.domain,e,t),null!=e.range&&(r.range=function e(t,A,n){var r=A.config.range,i=t.range;if(i.signal)return A.signalRef(i.signal);if(Object(ue.J)(i)){if(r&&Object(ue.w)(r,i))return t=Object(ue.p)({},t,{range:r[i]}),e(t,A,n);"width"===i?i=[0,{signal:"width"}]:"height"===i?i=nu(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:Object(ue.o)("Unrecognized scale range value: "+Object(ue.bb)(i))}else{if(i.scheme)return n.scheme=Object(ue.B)(i.scheme)?Cx(i.scheme,A):Ix(i.scheme,A),i.extent&&(n.schemeExtent=Cx(i.extent,A)),void(i.count&&(n.schemeCount=Ix(i.count,A)));if(i.step)return void(n.rangeStep=Ix(i.step,A));if(nu(t.type)&&!Object(ue.B)(i))return fx(i,t,A);Object(ue.B)(i)||Object(ue.o)("Unsupported range type: "+Object(ue.bb)(i))}return i.map((function(e){return(Object(ue.B)(e)?Cx:Ix)(e,A)}))}(e,t,r)),null!=e.interpolate&&function(e,t){t.interpolate=Ix(e.type||e),null!=e.gamma&&(t.interpolateGamma=Ix(e.gamma))}(e.interpolate,r),null!=e.nice&&(r.nice=(n=e.nice,Object(ue.H)(n)?{interval:Ix(n.interval),step:Ix(n.step)}:Ix(n))),null!=e.bins&&(r.bins=function(e,t){return e.signal||Object(ue.B)(e)?Cx(e,t):t.objectProperty(e)}(e.bins,t)),e)Object(ue.w)(r,A)||"name"===A||(r[A]=Ix(e[A],t))}function Ix(e,t){return Object(ue.H)(e)?e.signal?t.signalRef(e.signal):Object(ue.o)("Unsupported object: "+Object(ue.bb)(e)):e}function Cx(e,t){return e.signal?t.signalRef(e.signal):e.map((function(e){return Ix(e,t)}))}function hx(e){Object(ue.o)("Can not find data set: "+Object(ue.bb)(e))}function fx(e,t,A){if(e)return e.signal?A.signalRef(e.signal):(Object(ue.B)(e)?dx:e.fields?px:Bx)(e,t,A);null==t.domainMin&&null==t.domainMax||Object(ue.o)("No scale domain defined for domainMin/domainMax to override.")}function dx(e,t,A){return e.map((function(e){return Ix(e,A)}))}function Bx(e,t,A){var n=A.getData(e.data);return n||hx(e.data),nu(t.type)?n.valuesRef(A,e.field,Qx(e.sort,!1)):au(t.type)?n.domainRef(A,e.field):n.extentRef(A,e.field)}function px(e,t,A){var n=e.data,r=e.fields.reduce((function(e,t){return t=Object(ue.J)(t)?{data:n,field:t}:Object(ue.B)(t)||t.signal?function(e,t){var A="_:vega:_"+cx++,n=Lk({});if(Object(ue.B)(e))n.value={$ingest:e};else if(e.signal){var r="setdata("+Object(ue.bb)(A)+","+e.signal+")";n.params.input=t.signalRef(r)}return t.addDataPipeline(A,[n,ox({})]),{data:A,field:"data"}}(t,A):t,e.push(t),e}),[]);return(nu(t.type)?Ex:au(t.type)?yx:vx)(e,A,r)}function Ex(e,t,A){var n,r,i=Qx(e.sort,!0),o=A.map((function(e){var A=t.getData(e.data);return A||hx(e.data),A.countsRef(t,e.field,i)})),a={groupby:Ek,pulse:o};i&&(n=i.op||"count",r=i.field?yk(n,i.field):"count",a.ops=[ux[n]],a.fields=[t.fieldRef(r)],a.as=[r]),n=t.add(_k(a));var s=t.add(Lk({pulse:Bk(n)}));return r=t.add(gx({field:Ek,sort:t.sortRef(i),pulse:Bk(s)})),Bk(r)}function Qx(e,t){return e&&(e.field||e.op?e.field||"count"===e.op?t&&e.field&&e.op&&!ux[e.op]&&Object(ue.o)("Multiple domain scales can not be sorted using "+e.op):Object(ue.o)("No field provided for sort aggregate op: "+e.op):Object(ue.H)(e)?e.field="key":e={field:"key"}),e}function yx(e,t,A){var n=A.map((function(e){var A=t.getData(e.data);return A||hx(e.data),A.domainRef(t,e.field)}));return Bk(t.add(qk({values:n})))}function vx(e,t,A){var n=A.map((function(e){var A=t.getData(e.data);return A||hx(e.data),A.extentRef(t,e.field)}));return Bk(t.add(Xk({extents:n})))}function mx(e,t,A){return Object(ue.B)(e)?e.map((function(e){return mx(e,t,A)})):Object(ue.H)(e)?e.signal?A.signalRef(e.signal):"fit"===t?e:Object(ue.o)("Unsupported parameter object: "+Object(ue.bb)(e)):e}var bx="value",wx=["size","shape","fill","stroke","strokeWidth","strokeDash","opacity"],Sx={name:1,style:1,interactive:1},Fx={value:0},Rx={value:1};function Dx(e){return e.type="group",e.interactive=e.interactive||!1,e}function Gx(e,t){var A=function(A,n){return bk(e[A],bk(t[A],n))};return A.isVertical=function(A){return"vertical"===bk(e.direction,t.direction||(A?t.symbolDirection:t.gradientDirection))},A.gradientLength=function(){return bk(e.gradientLength,t.gradientLength||t.gradientWidth)},A.gradientThickness=function(){return bk(e.gradientThickness,t.gradientThickness||t.gradientHeight)},A.entryColumns=function(){return bk(e.columns,bk(t.columns,+A.isVertical(!0)))},A}function kx(e,t){var A=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return A&&A.signal?A:A?A.value:null}function xx(e,t,A){return"item.anchor === '".concat("start","' ? ").concat(e," : item.anchor === '").concat("end","' ? ").concat(t," : ").concat(A)}var Nx=xx(Object(ue.bb)("left"),Object(ue.bb)("right"),Object(ue.bb)("center"));function Ux(e,t){return t?e?Object(ue.H)(e)?Object.assign({},e,{offset:Ux(e.offset,t)}):{value:e,offset:t}:t:e}function _x(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=tk(e.encode,t,Sx)):e.interactive=!1,e}function Mx(e,t,A,n){var r,i,o,a,s,g=Gx(e,A),c=g.isVertical(),u=g.gradientThickness(),l=g.gradientLength();c?(i=[0,1],o=[0,0],a=u,s=l):(i=[0,0],o=[1,0],a=l,s=u);var I={enter:r={opacity:Fx,x:Fx,y:Fx,width:zG(a),height:zG(s)},update:Object(ue.p)({},r,{opacity:Rx,fill:{gradient:t,start:i,stop:o}}),exit:{opacity:Fx}};return ek(I,{stroke:g("gradientStrokeColor"),strokeWidth:g("gradientStrokeWidth")},{opacity:g("gradientOpacity")}),_x({type:"rect",role:"legend-gradient",encode:I},n)}function Ox(e,t,A,n,r){var i,o,a,s,g=Gx(e,A),c=g.isVertical(),u=g.gradientThickness(),l=g.gradientLength(),I="";c?(i="y",a="y2",o="x",s="width",I="1-"):(i="x",a="x2",o="y",s="height");var C={opacity:Fx,fill:{scale:t,field:bx}};C[i]={signal:I+"datum.perc",mult:l},C[o]=Fx,C[a]={signal:I+"datum.perc2",mult:l},C[s]=zG(u);var h={enter:C,update:Object(ue.p)({},C,{opacity:Rx}),exit:{opacity:Fx}};return ek(h,{stroke:g("gradientStrokeColor"),strokeWidth:g("gradientStrokeWidth")},{opacity:g("gradientOpacity")}),_x({type:"rect",role:"legend-band",key:bx,from:r,encode:h},n)}var Lx="datum.".concat("perc",'<=0?"').concat("left",'":datum.').concat("perc",'>=1?"').concat("right",'":"').concat("center",'"'),Tx="datum.".concat("perc",'<=0?"').concat("bottom",'":datum.').concat("perc",'>=1?"').concat("top",'":"').concat("middle",'"');function Zx(e,t,A,n){var r,i,o,a,s=Gx(e,t),g=s.isVertical(),c=zG(s.gradientThickness()),u=s.gradientLength(),l=s("labelOverlap"),I="",C={enter:r={opacity:Fx},update:i={opacity:Rx,text:{field:"label"}},exit:{opacity:Fx}};return ek(C,{fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontStyle:s("labelFontStyle"),fontWeight:s("labelFontWeight"),limit:bk(e.labelLimit,t.gradientLabelLimit)}),g?(r.align={value:"left"},r.baseline=i.baseline={signal:Tx},o="y",a="x",I="1-"):(r.align=i.align={signal:Lx},r.baseline={value:"top"},o="x",a="y"),r[o]=i[o]={signal:I+"datum.perc",mult:u},r[a]=i[a]=c,c.offset=bk(e.labelOffset,t.gradientLabelOffset)||0,l=l?{separation:s("labelSeparation"),method:l,order:"datum.index"}:void 0,_x({type:"text",role:"legend-label",style:"guide-label",key:bx,from:n,encode:C,overlap:l},A)}function Hx(e,t,A,n,r){var i,o,a,s,g,c=Gx(e,t),u=A.entries,l=!(!u||!u.interactive),I=u?u.name:void 0,C=c("clipHeight"),h=c("symbolOffset"),f={data:"value"},d="(".concat(r,") ? datum.").concat("offset"," : datum.").concat("size"),B=C?zG(C):{field:"size"},p="datum.".concat("index"),E="max(1, ".concat(r,")");B.mult=.5,i={enter:o={opacity:Fx,x:{signal:d,mult:.5,offset:h},y:B},update:a={opacity:Rx,x:o.x,y:o.y},exit:{opacity:Fx}};var Q=null,y=null;e.fill||(Q=t.symbolBaseFillColor,y=t.symbolBaseStrokeColor),ek(i,{fill:c("symbolFillColor",Q),shape:c("symbolType"),size:c("symbolSize"),stroke:c("symbolStrokeColor",y),strokeDash:c("symbolDash"),strokeDashOffset:c("symbolDashOffset"),strokeWidth:c("symbolStrokeWidth")},{opacity:c("symbolOpacity")}),wx.forEach((function(t){e[t]&&(a[t]=o[t]={scale:e[t],field:bx})}));var v=_x({type:"symbol",role:"legend-symbol",key:bx,from:f,clip:!!C||void 0,encode:i},A.symbols),m=zG(h);m.offset=c("labelOffset"),ek(i={enter:o={opacity:Fx,x:{signal:d,offset:m},y:B},update:a={opacity:Rx,text:{field:"label"},x:o.x,y:o.y},exit:{opacity:Fx}},{align:c("labelAlign"),baseline:c("labelBaseline"),fill:c("labelColor"),fillOpacity:c("labelOpacity"),font:c("labelFont"),fontSize:c("labelFontSize"),fontStyle:c("labelFontStyle"),fontWeight:c("labelFontWeight"),limit:c("labelLimit")});var b=_x({type:"text",role:"legend-label",style:"guide-label",key:bx,from:f,encode:i},A.labels);return i={enter:{noBound:{value:!C},width:Fx,height:C?zG(C):Fx,opacity:Fx},exit:{opacity:Fx},update:a={opacity:Rx,row:{signal:null},column:{signal:null}}},c.isVertical(!0)?(s="ceil(item.mark.items.length / ".concat(E,")"),a.row.signal="".concat(p,"%").concat(s),a.column.signal="floor(".concat(p," / ").concat(s,")"),g={field:["row",p]}):(a.row.signal="floor(".concat(p," / ").concat(E,")"),a.column.signal="".concat(p," % ").concat(E),g={field:p}),a.column.signal="(".concat(r,")?").concat(a.column.signal,":").concat(p),Dx({role:"scope",from:n={facet:{data:n,name:"value",groupby:"index"}},encode:tk(i,u,Sx),marks:[v,b],name:I,interactive:l,sort:g})}var Yx='item.orient === "left"',Jx='item.orient === "right"',jx="(".concat(Yx," || ").concat(Jx,")"),Px="datum.vgrad && ".concat(jx),Vx=xx('"top"','"bottom"','"middle"'),Kx=xx('"right"','"left"','"center"'),Wx="datum.vgrad && ".concat(Jx," ? (").concat(Kx,") : (").concat(jx," && !(datum.vgrad && ").concat(Yx,')) ? "left" : ').concat(Nx),Xx="item._anchor || (".concat(jx,' ? "middle" : "start")'),qx="".concat(Px," ? (").concat(Yx," ? -90 : 90) : 0"),zx="".concat(jx," ? (datum.vgrad ? (").concat(Jx,' ? "bottom" : "top") : ').concat(Vx,') : "top"');function $x(e,t){var A;return Object(ue.H)(e)&&(e.signal?A=e.signal:e.path?A="pathShape("+eN(e.path)+")":e.sphere&&(A="geoShape("+eN(e.sphere)+', {type: "Sphere"})')),A?t.signalRef(A):!!e}function eN(e){return Object(ue.H)(e)&&e.signal?e.signal:Object(ue.bb)(e)}function tN(e){var t=e.role||"";return t.indexOf("axis")&&t.indexOf("legend")&&t.indexOf("title")?"group"===e.type?"scope":t||"mark":t}function AN(e){return{marktype:e.type,name:e.name||void 0,role:e.role||tN(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function nN(e,t){return e&&e.signal?t.signalRef(e.signal):!1!==e}function rN(e,t){var A=gt(e.type);A||Object(ue.o)("Unrecognized transform type: "+Object(ue.bb)(e.type));var n=fk(A.type.toLowerCase(),null,iN(A,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(n)),n.metadata=A.metadata||{},n}function iN(e,t,A){for(var n={},r=e.params.length,i=0;i<r;++i){var o=e.params[i];n[o.name]=oN(o,t,A)}return n}function oN(e,t,A){var n=e.type,r=t[e.name];return"index"===n?function(e,t,A){Object(ue.J)(t.from)||Object(ue.o)('Lookup "from" parameter must be a string literal.');return A.getData(t.from).lookupRef(A,t.key)}(0,t,A):void 0!==r?"param"===n?function(e,t,A){var n=t[e.name];return e.array?(Object(ue.B)(n)||Object(ue.o)("Expected an array of sub-parameters. Instead: "+Object(ue.bb)(n)),n.map((function(t){return sN(e,t,A)}))):sN(e,n,A)}(e,t,A):"projection"===n?A.projectionRef(t[e.name]):e.array&&!vk(r)?r.map((function(t){return aN(e,t,A)})):aN(e,r,A):void(e.required&&Object(ue.o)("Missing required "+Object(ue.bb)(t.type)+" parameter: "+Object(ue.bb)(e.name)))}function aN(e,t,A){var n=e.type;if(vk(t))return lN(n)?Object(ue.o)("Expression references can not be signals."):IN(n)?A.fieldRef(t):CN(n)?A.compareRef(t):A.signalRef(t.signal);var r=e.expr||IN(n);return r&&gN(t)?A.exprRef(t.expr,t.as):r&&cN(t)?pk(t.field,t.as):lN(n)?pD(t,A):uN(n)?Bk(A.getData(t).values):IN(n)?pk(t):CN(n)?A.compareRef(t):t}function sN(e,t,A){for(var n,r=e.params.length,i=0;i<r;++i){for(var o in(n=e.params[i]).key)if(n.key[o]!==t[o]){n=null;break}if(n)break}n||Object(ue.o)("Unsupported parameter: "+Object(ue.bb)(t));var a=Object(ue.p)(iN(n,t,A),n.key);return Bk(A.add($k(a)))}var gN=function(e){return e&&e.expr},cN=function(e){return e&&e.field},uN=function(e){return"data"===e},lN=function(e){return"expr"===e},IN=function(e){return"field"===e},CN=function(e){return"compare"===e};function hN(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:Bk(t.getData(e.data).output)}function fN(e,t,A,n,r){this.scope=e,this.input=t,this.output=A,this.values=n,this.aggregate=r,this.index={}}function dN(e){return Object(ue.J)(e)?e:null}function BN(e,t,A){var n,r=yk(A.op,A.field);if(t.ops){for(var i=0,o=t.as.length;i<o;++i)if(t.as[i]===r)return}else t.ops=["count"],t.fields=[null],t.as=["count"];A.op&&(t.ops.push((n=A.op.signal)?e.signalRef(n):A.op),t.fields.push(e.fieldRef(A.field)),t.as.push(r))}function pN(e,t,A,n,r,i,o){var a,s,g=t[A]||(t[A]={}),c=function(e){return Object(ue.H)(e)?("descending"===e.order?"-":"+")+yk(e.op,e.field):""}(i),u=dN(r);if(null!=u&&(e=t.scope,a=g[u+=c?"|"+c:""]),!a){var l=i?{field:Ek,pulse:t.countsRef(e,r,i)}:{field:e.fieldRef(r),pulse:Bk(t.output)};c&&(l.sort=e.sortRef(i)),s=e.add(fk(n,void 0,l)),o&&(t.index[r]=s),a=Bk(s),null!=u&&(g[u]=a)}return a}function EN(e,t,A){var n=e.remove,r=e.insert,i=e.toggle,o=e.modify,a=e.values,s=t.add(dk()),g=pD("if("+e.trigger+',modify("'+A+'",'+[r,n,i,o,a].map((function(e){return null==e?"null":e})).join(",")+"),0)",t);s.update=g.$expr,s.params=g.$params}function QN(e,t){var A,n,r,i,o,a,s,g=tN(e),c="group"===e.type,u=e.from&&e.from.facet,l=e.overlap,I=e.layout||"scope"===g||"frame"===g,C="mark"===g||I||u,h=function(e,t,A){var n,r,i,o,a;return e?(n=e.facet)&&(t||Object(ue.o)("Only group marks can be faceted."),null!=n.field?o=a=hN(n,A):(e.data?a=Bk(A.getData(e.data).aggregate):((i=rN(Object(ue.p)({type:"aggregate",groupby:Object(ue.i)(n.groupby)},n.aggregate),A)).params.key=A.keyRef(n.groupby),i.params.pulse=hN(n,A),o=a=Bk(A.add(i))),r=A.keyRef(n.groupby,!0))):o=Bk(A.add(Lk(null,[{}]))),o||(o=hN(e,A)),{key:r,pulse:o,parent:a}}(e.from,c,t),f=Bk(n=t.add(Zk({key:h.key||(e.key?pk(e.key):void 0),pulse:h.pulse,clean:!c})));n=r=t.add(Lk({pulse:f})),n=t.add(Wk({markdef:AN(e),interactive:nN(e.interactive,t),clip:$x(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:Bk(n)}));var d=Bk(n);(n=i=t.add(Hk(gk(e.encode,e.type,g,e.style,t,{mod:!1,pulse:d})))).params.parent=t.encode(),e.transform&&e.transform.forEach((function(e){var A=rN(e,t),r=A.metadata;(r.generates||r.changes)&&Object(ue.o)("Mark transforms should not generate new data."),r.nomod||(i.params.mod=!0),A.params.pulse=Bk(n),t.add(n=A)})),e.sort&&(n=t.add(ax({sort:t.compareRef(e.sort),pulse:Bk(n)})));var B=Bk(n);(u||I)&&(a=Bk(I=t.add(sx({layout:t.objectProperty(e.layout),legends:t.legends,mark:d,pulse:B}))));var p=t.add(Ok({mark:d,pulse:a||B}));s=Bk(p),c&&(C&&((A=t.operators).pop(),I&&A.pop()),t.pushState(B,a||s,f),u?function(e,t,A){var n,r=e.from.facet,i=r.name,o=hN(r,t);r.name||Object(ue.o)("Facet must have a name: "+Object(ue.bb)(r)),r.data||Object(ue.o)("Facet must reference a data set: "+Object(ue.bb)(r)),r.field?n=t.add(ex({field:t.fieldRef(r.field),pulse:o})):r.groupby?n=t.add(Jk({key:t.keyRef(r.groupby),group:Bk(t.proxy(A.parent)),pulse:o})):Object(ue.o)("Facet must specify groupby or field: "+Object(ue.bb)(r));var a=t.fork(),s=a.add(Lk()),g=a.add(ox({pulse:Bk(s)}));a.addData(i,new fN(a,s,s,g)),a.addSignal("parent",null),n.params.subflow={$subflow:a.parse(e).toRuntime()}}(e,t,h):C?function(e,t,A){var n=t.add(ex({pulse:A.pulse})),r=t.fork();r.add(ox()),r.addSignal("parent",null),n.params.subflow={$subflow:r.parse(e).toRuntime()}}(e,t,h):t.parse(e),t.popState(),C&&(I&&A.push(I),A.push(p))),l&&(s=function(e,t,A){var n=e.method,r=e.bound,i=e.separation,o={separation:vk(i)?A.signalRef(i.signal):i,method:vk(n)?A.signalRef(n.signal):n,pulse:t};e.order&&(o.sort=A.compareRef({field:e.order}));if(r){var a=r.tolerance;o.boundTolerance=vk(a)?A.signalRef(a.signal):+a,o.boundScale=A.scaleRef(r.scale),o.boundOrient=r.orient}return Bk(A.add(zk(o)))}(l,s,t));var E=t.add(rx({pulse:s})),Q=t.add(ox({pulse:Bk(E)},void 0,t.parent()));null!=e.name&&(o=e.name,t.addData(o,new fN(t,r,E,Q)),e.on&&e.on.forEach((function(e){(e.insert||e.remove||e.toggle)&&Object(ue.o)("Marks only support modify triggers."),EN(e,t,o)})))}function yN(e,t){var A,n,r,i=t.config.legend,o=e.encode||{},a=Gx(e,i),s=o.legend||{},g=s.name||void 0,c=s.interactive,u=s.style,l={},I=0;wx.forEach((function(t){return e[t]?(l[t]=e[t],I=I||e[t]):0})),I||Object(ue.o)("Missing valid scale for legend.");var C=function(e,t){var A=e.type||"symbol";e.type||1!==function(e){return wx.reduce((function(t,A){return t+(e[A]?1:0)}),0)}(e)||!e.fill&&!e.stroke||(A=Au(t)?"gradient":ru(t)?"discrete":"symbol");return"gradient"!==A?A:ru(t)?"discrete":"gradient"}(e,t.scaleType(I)),h={title:null!=e.title,scales:l,type:C,vgrad:"symbol"!==C&&a.isVertical()},f=Bk(t.add(Lk(null,[h]))),d=Bk(t.add(Vk(n={type:C,scale:t.scaleRef(I),count:t.objectProperty(a("tickCount")),limit:t.property(a("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return"gradient"===C?(r=[Mx(e,I,i,o.gradient),Zx(e,i,o.labels,d)],n.count=n.count||t.signalRef("max(2,2*floor((".concat(wk(a.gradientLength()),")/100))"))):"discrete"===C?r=[Ox(e,I,i,o.gradient,d),Zx(e,i,o.labels,d)]:(A=function(e,t){var A=Gx(e,t);return{align:A("gridAlign"),columns:A.entryColumns(),center:{row:!0,column:!1},padding:{row:A("rowPadding"),column:A("columnPadding")}}}(e,i),r=[Hx(e,i,o,d,wk(A.columns))],n.size=function(e,t,A){var n=wk(mN("size",e,A)),r=wk(mN("strokeWidth",e,A)),i=wk(function(e,t,A){return kx("fontSize",e)||function(e,t,A){var n=t.config.style[A];return n&&n[e]}("fontSize",t,A)}(A[1].encode,t,"guide-label"));return pD("max(ceil(sqrt(".concat(n,")+").concat(r,"),").concat(i,")"),t)}(e,t,r[0].marks)),r=[Dx({role:"legend-entry",from:f,encode:{enter:{x:{value:0},y:{value:0}}},marks:r,layout:A,interactive:c})],h.title&&r.push(function(e,t,A,n){var r=Gx(e,t),i={enter:{opacity:Fx},update:{opacity:Rx,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Fx}};return ek(i,{orient:r("titleOrient"),_anchor:r("titleAnchor"),anchor:{signal:Xx},angle:{signal:qx},align:{signal:Wx},baseline:{signal:zx},text:e.title,fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),baseline:r("titleBaseline")}),_x({type:"text",role:"legend-title",style:"guide-title",from:n,encode:i},A)}(e,i,o.title,f)),QN(Dx({role:"legend",from:f,encode:tk(vN(a,e,i),s,Sx),marks:r,aria:a("aria"),description:a("description"),zindex:a("zindex"),name:g,interactive:c,style:u}),t)}function vN(e,t,A){var n={enter:{},update:{}};return ek(n,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:A.strokeWidth,strokeDash:A.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),n}function mN(e,t,A){return t[e]?'scale("'.concat(t[e],'",datum)'):kx(e,A[0].encode)}fN.fromEntries=function(e,t){var A=t.length,n=t[A-1],r=t[A-2],i=t[0],o=null,a=1;for(i&&"load"===i.type&&(i=t[1]),e.add(t[0]);a<A;++a)t[a].params.pulse=Bk(t[a-1]),e.add(t[a]),"aggregate"===t[a].type&&(o=t[a]);return new fN(e,i,r,n,o)},fN.prototype={countsRef:function(e,t,A){var n,r,i,o=this.counts||(this.counts={}),a=dN(t);return null!=a&&(e=this.scope,n=o[a]),n?A&&A.field&&BN(e,n.agg.params,A):(i={groupby:e.fieldRef(t,"key"),pulse:Bk(this.output)},A&&A.field&&BN(e,i,A),r=e.add(_k(i)),n=e.add(Lk({pulse:Bk(r)})),n={agg:r,ref:Bk(n)},null!=a&&(o[a]=n)),n.ref},tuplesRef:function(){return Bk(this.values)},extentRef:function(e,t){return pN(e,this,"extent","extent",t,!1)},domainRef:function(e,t){return pN(e,this,"domain","values",t,!1)},valuesRef:function(e,t,A){return pN(e,this,"vals","values",t,A||!0)},lookupRef:function(e,t){return pN(e,this,"lookup","tupleindex",t,!1)},indataRef:function(e,t){return pN(e,this,"indata","tupleindex",t,!0,!0)}};var bN='item.orient==="'.concat("left",'"?-90:item.orient==="').concat("right",'"?90:0');function wN(e,t){var A=Gx(e=Object(ue.J)(e)?{text:e}:e,t.config.title),n=e.encode||{},r=n.group||{},i=r.name||void 0,o=r.interactive,a=r.style,s=[],g=Bk(t.add(Lk(null,[{}])));return s.push(function(e,t,A,n){var r={value:0},i=e.text,o={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return ek(o,{text:i,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),_x({type:"text",role:"title-text",style:"group-title",from:n,encode:o},A)}(e,A,function(e){var t=e.encode;return t&&t.title||Object(ue.p)({name:e.name,interactive:e.interactive,style:e.style},t)}(e),g)),e.subtitle&&s.push(function(e,t,A,n){var r={value:0},i=e.subtitle,o={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return ek(o,{text:i,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),_x({type:"text",role:"title-subtitle",style:"group-subtitle",from:n,encode:o},A)}(e,A,n.subtitle,g)),QN(Dx({role:"title",from:g,encode:SN(A,r),marks:s,aria:A("aria"),description:A("description"),zindex:A("zindex"),name:i,interactive:o,style:a}),t)}function SN(e,t){var A={enter:{},update:{}};return ek(A,{orient:e("orient"),anchor:e("anchor"),align:{signal:Nx},angle:{signal:bN},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),tk(A,t,Sx)}function FN(e,t){var A=[];e.transform&&e.transform.forEach((function(e){A.push(rN(e,t))})),e.on&&e.on.forEach((function(A){EN(A,t,e.name)})),t.addDataPipeline(e.name,function(e,t,A){var n,r,i,o,a,s=[],g=null,c=!1,u=!1;e.values?vk(e.values)||mk(e.format)?(s.push(DN(t,e)),s.push(g=RN())):s.push(g=RN({$ingest:e.values,$format:e.format})):e.url?mk(e.url)||mk(e.format)?(s.push(DN(t,e)),s.push(g=RN())):s.push(g=RN({$request:e.url,$format:e.format})):e.source&&(g=n=Object(ue.i)(e.source).map((function(e){return Bk(t.getData(e).output)})),s.push(null));for(r=0,i=A.length;r<i;++r)o=A[r],a=o.metadata,g||a.source||s.push(g=RN()),s.push(o),a.generates&&(u=!0),a.modifies&&!u&&(c=!0),a.source?g=o:a.changes&&(g=null);n&&(i=n.length-1,s[0]=nx({derive:c,pulse:i?n:n[0]}),(c||i)&&s.splice(1,0,RN()));g||s.push(RN());return s.push(ox({})),s}(e,t,A))}function RN(e){var t=Lk({},e);return t.metadata={source:!0},t}function DN(e,t){return Kk({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}var GN=function(e){return"bottom"===e||"top"===e},kN=function(e,t,A){return vk(e)?ON(e.signal,t,A):"left"===e||"top"===e?t:A},xN=function(e,t,A){return vk(e)?_N(e.signal,t,A):GN(e)?t:A},NN=function(e,t,A){return vk(e)?MN(e.signal,t,A):GN(e)?A:t},UN=function(e,t,A){return vk(e)?LN(e.signal,t,A):"top"===e?{value:t}:{value:A}},_N=function(e,t,A){return ZN("".concat(e," === '").concat("top","' || ").concat(e," === '").concat("bottom","'"),t,A)},MN=function(e,t,A){return ZN("".concat(e," !== '").concat("top","' && ").concat(e," !== '").concat("bottom","'"),t,A)},ON=function(e,t,A){return YN("".concat(e," === '").concat("left","' || ").concat(e," === '").concat("top","'"),t,A)},LN=function(e,t,A){return YN("".concat(e," === '").concat("top","'"),t,A)},TN=function(e,t,A){return YN("".concat(e," === '").concat("right","'"),t,A)},ZN=function(e,t,A){return t=null!=t?zG(t):t,A=null!=A?zG(A):A,HN(t)&&HN(A)?(t=t?t.signal||Object(ue.bb)(t.value):null,A=A?A.signal||Object(ue.bb)(A.value):null,{signal:"".concat(e," ? (").concat(t,") : (").concat(A,")")}):[Object(ue.p)({test:e},t)].concat(A||[])},HN=function(e){return null==e||1===Object.keys(e).length},YN=function(e,t,A){return{signal:"".concat(e," ? (").concat(JN(t),") : (").concat(JN(A),")")}},JN=function(e){return vk(e)?e.signal:null==e?null:Object(ue.bb)(e)},jN=function(e,t){var A=e.signal;return A&&A.endsWith("(null)")?{signal:A.slice(0,-6)+t.signal}:e};function PN(e,t,A,n){var r;if(t&&Object(ue.w)(t,e))return t[e];if(Object(ue.w)(A,e))return A[e];if(e.startsWith("title")){switch(e){case"titleColor":r="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":r=e[5].toLowerCase()+e.slice(6)}return n["guide-title"][r]}if(e.startsWith("label")){switch(e){case"labelColor":r="fill";break;case"labelFont":case"labelFontSize":r=e[5].toLowerCase()+e.slice(6)}return n["guide-label"][r]}return null}function VN(e){var t,A={},n=Object(ut.a)(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(r)for(var i in r)A[i]=1}}catch(o){n.e(o)}finally{n.f()}return Object.keys(A)}function KN(e,t){return{scale:e.scale,range:t}}function WN(e,t,A,n,r){var i,o,a,s=Gx(e,t),g=e.orient,c=e.gridScale,u=kN(g,1,-1),l=function(e,t){if(1===t);else if(Object(ue.H)(e)){for(var A=e=Object(ue.p)({},e);null!=A.mult;){if(!Object(ue.H)(A.mult))return A.mult=vk(t)?{signal:"(".concat(A.mult,") * (").concat(t.signal,")")}:A.mult*t,e;A=A.mult=Object(ue.p)({},A.mult)}A.mult=t}else e=vk(t)?{signal:"(".concat(t.signal,") * (").concat(e||0,")")}:t*(e||0);return e}(e.offset,u),I={enter:i={opacity:Fx},update:a={opacity:Rx},exit:o={opacity:Fx}};ek(I,{stroke:s("gridColor"),strokeCap:s("gridCap"),strokeDash:s("gridDash"),strokeDashOffset:s("gridDashOffset"),strokeOpacity:s("gridOpacity"),strokeWidth:s("gridWidth")});var C={scale:e.scale,field:bx,band:r.band,extra:r.extra,offset:r.offset,round:s("tickRound")},h=xN(g,{signal:"height"},{signal:"width"}),f=c?{scale:c,range:0,mult:u,offset:l}:{value:0,offset:l},d=c?{scale:c,range:1,mult:u,offset:l}:Object(ue.p)(h,{mult:u,offset:l});return i.x=a.x=xN(g,C,f),i.y=a.y=NN(g,C,f),i.x2=a.x2=NN(g,d),i.y2=a.y2=xN(g,d),o.x=xN(g,C),o.y=NN(g,C),_x({type:"rule",role:"axis-grid",key:bx,from:n,encode:I},A)}function XN(e,t,A,n,r){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+A+","+n+","+r+")"}}function qN(e,t,A,n,r,i){var o,a=Gx(e,t),s=e.orient,g=e.scale,c=kN(s,-1,1),u=wk(a("labelFlush")),l=wk(a("labelFlushOffset")),I=a("labelAlign"),C=a("labelBaseline"),h=0===u||!!u,f=zG(r);f.mult=c,f.offset=zG(a("labelPadding")||0),f.offset.mult=c;var d={scale:g,field:bx,band:.5,offset:Ux(i.offset,a("labelOffset"))},B=xN(s,h?XN(g,u,'"left"','"right"','"center"'):{value:"center"},function(e,t,A){return vk(e)?TN(e.signal,t,A):"right"===e?{value:t}:{value:A}}(s,"left","right")),p=xN(s,UN(s,"bottom","top"),h?XN(g,u,'"top"','"bottom"','"middle"'):{value:"middle"}),E=XN(g,u,"-(".concat(l,")"),l,0);h=h&&l;var Q={opacity:Fx,x:xN(s,d,f),y:NN(s,d,f)},y={enter:Q,update:o={opacity:Rx,text:{field:"label"},x:Q.x,y:Q.y,align:B,baseline:p},exit:{opacity:Fx,x:Q.x,y:Q.y}};ek(y,{dx:!I&&h?xN(s,E):null,dy:!C&&h?NN(s,E):null}),ek(y,{angle:a("labelAngle"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontWeight:a("labelFontWeight"),fontStyle:a("labelFontStyle"),limit:a("labelLimit"),lineHeight:a("labelLineHeight")},{align:I,baseline:C});var v=a("labelBound"),m=a("labelOverlap");return m=m||v?{separation:a("labelSeparation"),method:m,order:"datum.index",bound:v?{scale:g,orient:s,tolerance:v}:null}:void 0,o.align!==B&&(o.align=jN(o.align,B)),o.baseline!==p&&(o.baseline=jN(o.baseline,p)),_x({type:"text",role:"axis-label",style:"guide-label",key:bx,from:n,encode:y,overlap:m},A)}function zN(e,t,A,n){var r,i,o=Gx(e,t),a=e.orient,s=kN(a,-1,1),g={enter:r={opacity:Fx,anchor:zG(o("titleAnchor",null)),align:{signal:Nx}},update:i=Object(ue.p)({},r,{opacity:Rx,text:zG(e.title)}),exit:{opacity:Fx}},c={signal:'lerp(range("'.concat(e.scale,'"), ').concat(xx(0,1,.5),")")};return i.x=xN(a,c),i.y=NN(a,c),r.angle=xN(a,Fx,function(e,t){return 0===t?0:vk(e)?{signal:"(".concat(e.signal,") * ").concat(t)}:{value:e*t}}(s,90)),r.baseline=xN(a,UN(a,"bottom","top"),{value:"bottom"}),i.angle=r.angle,i.baseline=r.baseline,ek(g,{fill:o("titleColor"),fillOpacity:o("titleOpacity"),font:o("titleFont"),fontSize:o("titleFontSize"),fontStyle:o("titleFontStyle"),fontWeight:o("titleFontWeight"),limit:o("titleLimit"),lineHeight:o("titleLineHeight")},{align:o("titleAlign"),angle:o("titleAngle"),baseline:o("titleBaseline")}),function(e,t,A,n){var r=function(e,t){return null!=e?(A.update[t]=jN(zG(e),A.update[t]),!1):!Ak(t,n)},i=r(e("titleX"),"x"),o=r(e("titleY"),"y");A.enter.auto=o===i?zG(o):xN(t,zG(o),zG(i))}(o,a,g,A),g.update.align=jN(g.update.align,r.align),g.update.angle=jN(g.update.angle,r.angle),g.update.baseline=jN(g.update.baseline,r.baseline),_x({type:"text",role:"axis-title",style:"guide-title",from:n,encode:g},A)}function $N(e,t){var A,n=function(e,t){var A,n,r,i,o,a,s,g,c=t.config,u=c.style,l=c.axis,I="band"===t.scaleType(e.scale)&&c.axisBand,C=e.orient;if(vk(C)){var h=VN([c.axisX,c.axisY]),f=VN([c.axisTop,c.axisBottom,c.axisLeft,c.axisRight]);A={};var d,B=Object(ut.a)(h);try{for(B.s();!(d=B.n()).done;)A[r=d.value]=xN(C,PN(r,c.axisX,l,u),PN(r,c.axisY,l,u))}catch(Q){B.e(Q)}finally{B.f()}n={};var p,E=Object(ut.a)(f);try{for(E.s();!(p=E.n()).done;)n[r=p.value]=(i=C.signal,o=PN(r,c.axisTop,l,u),a=PN(r,c.axisBottom,l,u),s=PN(r,c.axisLeft,l,u),g=PN(r,c.axisRight,l,u),{signal:(null!=s?"".concat(i," === '").concat("left","' ? (").concat(JN(s),") : "):"")+(null!=a?"".concat(i," === '").concat("bottom","' ? (").concat(JN(a),") : "):"")+(null!=g?"".concat(i," === '").concat("right","' ? (").concat(JN(g),") : "):"")+(null!=o?"".concat(i," === '").concat("top","' ? (").concat(JN(o),") : "):"")+"(null)"})}catch(Q){E.e(Q)}finally{E.f()}}else A="top"===C||"bottom"===C?c.axisX:c.axisY,n=c["axis"+C[0].toUpperCase()+C.slice(1)];return A||n||I?Object(ue.p)({},l,A,n,I):l}(e,t),r=e.encode||{},i=r.axis||{},o=i.name||void 0,a=i.interactive,s=i.style,g=Gx(e,n),c=function(e){var t,A,n=e("tickBand"),r=e("tickOffset");return n?n.signal?(t={signal:"(".concat(n.signal,") === 'extent' ? 1 : 0.5")},A={signal:"(".concat(n.signal,") === 'extent'")},Object(ue.H)(r)||(r={signal:"(".concat(n.signal,") === 'extent' ? 0 : ").concat(r)})):"extent"===n?(t=1,A=!0,r=0):(t=.5,A=!1):(t=e("bandPosition"),A=e("tickExtra")),{extra:A,band:t,offset:r}}(g),u={scale:e.scale,ticks:!!g("ticks"),labels:!!g("labels"),grid:!!g("grid"),domain:!!g("domain"),title:null!=e.title},l=Bk(t.add(Lk({},[u]))),I=Bk(t.add(Mk({scale:t.scaleRef(e.scale),extra:t.property(c.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),C=[];return u.grid&&C.push(WN(e,n,r.grid,I,c)),u.ticks&&(A=g("tickSize"),C.push(function(e,t,A,n,r,i){var o,a,s,g=Gx(e,t),c=e.orient,u=kN(c,-1,1),l={enter:o={opacity:Fx},update:s={opacity:Rx},exit:a={opacity:Fx}};ek(l,{stroke:g("tickColor"),strokeCap:g("tickCap"),strokeDash:g("tickDash"),strokeDashOffset:g("tickDashOffset"),strokeOpacity:g("tickOpacity"),strokeWidth:g("tickWidth")});var I=zG(r);I.mult=u;var C={scale:e.scale,field:bx,band:i.band,extra:i.extra,offset:i.offset,round:g("tickRound")};return s.y=o.y=xN(c,Fx,C),s.y2=o.y2=xN(c,I),a.x=xN(c,C),s.x=o.x=NN(c,Fx,C),s.x2=o.x2=NN(c,I),a.y=NN(c,C),_x({type:"rule",role:"axis-tick",key:bx,from:n,encode:l},A)}(e,n,r.ticks,I,A,c))),u.labels&&(A=u.ticks?A:0,C.push(qN(e,n,r.labels,I,A,c))),u.domain&&C.push(function(e,t,A,n){var r,i,o=Gx(e,t),a=e.orient,s={enter:r={opacity:Fx},update:i={opacity:Rx},exit:{opacity:Fx}};ek(s,{stroke:o("domainColor"),strokeCap:o("domainCap"),strokeDash:o("domainDash"),strokeDashOffset:o("domainDashOffset"),strokeWidth:o("domainWidth"),strokeOpacity:o("domainOpacity")});var g=KN(e,0),c=KN(e,1);return r.x=i.x=xN(a,g,Fx),r.x2=i.x2=xN(a,c),r.y=i.y=NN(a,g,Fx),r.y2=i.y2=NN(a,c),_x({type:"rule",role:"axis-domain",from:n,encode:s},A)}(e,n,r.domain,l)),u.title&&C.push(zN(e,n,r.title,l)),QN(Dx({role:"axis",from:l,encode:tk(eU(g,e),i,Sx),marks:C,aria:g("aria"),description:g("description"),zindex:g("zindex"),name:o,interactive:a,style:s}),t)}function eU(e,t){var A={enter:{},update:{}};return ek(A,{orient:e("orient"),offset:e("offset")||0,position:bk(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:'abs(span(range("'.concat(t.scale,'")))')},translate:e("translate"),format:t.format,formatType:t.formatType}),A}function tU(e,t,A){var n=Object(ue.i)(e.signals),r=Object(ue.i)(e.scales);return A||n.forEach((function(e){return Ck(e,t)})),Object(ue.i)(e.projections).forEach((function(e){return function(e,t){var A=t.config.projection||{},n={};for(var r in e)"name"!==r&&(n[r]=mx(e[r],r,t));for(var i in A)null==n[i]&&(n[i]=mx(A[i],i,t));t.addProjection(e.name,n)}(e,t)})),r.forEach((function(e){return function(e,t){var A=e.type||"linear";eu(A)||Object(ue.o)("Unrecognized scale type: "+Object(ue.bb)(A)),t.addScale(e.name,{type:A,domain:void 0})}(e,t)})),Object(ue.i)(e.data).forEach((function(e){return FN(e,t)})),r.forEach((function(e){return lx(e,t)})),(A||n).forEach((function(e){return function(e,t){var A=t.getSignal(e.name),n=e.update;e.init&&(n?Object(ue.o)("Signals can not include both init and update expressions."):(n=e.init,A.initonly=!0)),n&&(n=pD(n,t),A.update=n.$expr,A.params=n.$params),e.on&&e.on.forEach((function(e){return xk(e,t,A.id)}))}(e,t)})),Object(ue.i)(e.axes).forEach((function(e){return $N(e,t)})),Object(ue.i)(e.marks).forEach((function(e){return QN(e,t)})),Object(ue.i)(e.legends).forEach((function(e){return yN(e,t)})),e.title&&wN(e.title,t),t.parseLambdas(),t}function AU(e,t){var A=t.config,n=Bk(t.root=t.add(dk())),r=function(e,t){var A=function(A){return bk(e[A],t[A])},n=[nU("background",A("background")),nU("autosize",WG(A("autosize"))),nU("padding",qG(A("padding"))),nU("width",A("width")||0),nU("height",A("height")||0)],r=n.reduce((function(e,t){return e[t.name]=t,e}),{}),i={};return Object(ue.i)(e.signals).forEach((function(e){Object(ue.w)(r,e.name)?e=Object(ue.p)(r[e.name],e):n.push(e),i[e.name]=e})),Object(ue.i)(t.signals).forEach((function(e){Object(ue.w)(i,e.name)||Object(ue.w)(r,e.name)||n.push(e)})),n}(e,A);r.forEach((function(e){return Ck(e,t)})),t.description=e.description||A.description,t.eventConfig=A.events,t.legends=t.objectProperty(A.legend&&A.legend.layout),t.locale=A.locale;var i=t.add(Lk()),o=t.add(Hk(gk(function(e){return tk({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e)}(e.encode),"group","frame",e.style,t,{pulse:Bk(i)}))),a=t.add(sx({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:n,pulse:Bk(o)}));t.operators.pop(),t.pushState(Bk(o),Bk(a),null),tU(e,t,r),t.operators.push(a);var s=t.add(Ok({mark:n,pulse:Bk(a)}));return s=t.add(rx({pulse:Bk(s)})),s=t.add(ox({pulse:Bk(s)})),t.addData("root",new fN(t,i,i,s)),t}function nU(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function rU(e,t){this.config=e||{},this.options=t||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function iU(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}function oU(e){return(Object(ue.B)(e)?aU:sU)(e)}function aU(e){for(var t=e.length,A="[",n=0;n<t;++n){var r=e[n];A+=(n>0?",":"")+(Object(ue.H)(r)?r.signal||oU(r):Object(ue.bb)(r))}return A+"]"}function sU(e){var t,A,n="{",r=0;for(t in e)A=e[t],n+=(++r>1?",":"")+Object(ue.bb)(t)+":"+(Object(ue.H)(A)?A.signal||oU(A):Object(ue.bb)(A));return n+"}"}function gU(e,t,A){return Object(ue.H)(e)||Object(ue.o)("Input Vega specification must be an object."),AU(e,new rU(t=Object(ue.P)({description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:"#4c78a8"},area:{fill:"#4c78a8"},image:null,line:{stroke:"#4c78a8",strokeWidth:2},path:{stroke:"#4c78a8"},rect:{fill:"#4c78a8"},rule:{stroke:"#000"},shape:{stroke:"#4c78a8"},symbol:{fill:"#4c78a8",size:64},text:{fill:"#000",font:"sans-serif",fontSize:11},trail:{fill:"#4c78a8",size:2},style:{"guide-label":{fill:"#000",font:"sans-serif",fontSize:10},"guide-title":{fill:"#000",font:"sans-serif",fontSize:11,fontWeight:"bold"},"group-title":{fill:"#000",font:"sans-serif",fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:"#000",font:"sans-serif",fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:"#ddd"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:"#888",grid:!1,gridWidth:1,gridColor:"#ddd",labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:"#888",tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:"#ddd",gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:"#888",titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}},t,e.config),A)).toRuntime()}rU.prototype=iU.prototype={parse:function(e){return tU(e,this)},fork:function(){return new iU(this)},isSubscope:function(){return this._subid>0},toRuntime:function(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id:function(){return(this._subid?this._subid+":":0)+this._id++},add:function(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach((function(t){t.$ref=e.id})),e.refs=null),e},proxy:function(e){var t=e instanceof hk?Bk(e):e;return this.add(Ax({value:t}))},addStream:function(e){return this.streams.push(e),e.id=this.id(),e},addUpdate:function(e){return this.updates.push(e),e},finish:function(){var e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function A(e,t,A){var n;e&&((n=e.data||(e.data={}))[t]||(n[t]=[])).push(A)}for(e in this.data)for(var n in A((t=this.data[e]).input,e,"input"),A(t.output,e,"output"),A(t.values,e,"values"),t.index)A(t.index[n],e,"index:"+n);return this},pushState:function(e,t,A){this._encode.push(Bk(this.add(ox({pulse:e})))),this._parent.push(t),this._lookup.push(A?Bk(this.proxy(A)):null),this._markpath.push(-1)},popState:function(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent:function(){return Object(ue.W)(this._parent)},encode:function(){return Object(ue.W)(this._encode)},lookup:function(){return Object(ue.W)(this._lookup)},markpath:function(){var e=this._markpath;return++e[e.length-1]},fieldRef:function(e,t){if(Object(ue.J)(e))return pk(e,t);e.signal||Object(ue.o)("Unsupported field reference: "+Object(ue.bb)(e));var A=e.signal,n=this.field[A];if(!n){var r={name:this.signalRef(A)};t&&(r.as=t),this.field[A]=n=Bk(this.add(jk(r)))}return n},compareRef:function(e){var t=this,A=!1,n=function(e){return vk(e)?(A=!0,t.signalRef(e.signal)):function(e){return e&&e.expr}(e)?(A=!0,t.exprRef(e.expr)):e},r=Object(ue.i)(e.field).map(n),i=Object(ue.i)(e.order).map(n);return A?Bk(this.add(Tk({fields:r,orders:i}))):Qk(r,i)},keyRef:function(e,t){var A=!1,n=this.signals;return e=Object(ue.i)(e).map((function(e){return vk(e)?(A=!0,Bk(n[e.signal])):e})),A?Bk(this.add(Pk({fields:e,flat:t}))):function(e,t){var A={$key:e};return t&&(A.$flat=!0),A}(e,t)},sortRef:function(e){if(!e)return e;var t=yk(e.op,e.field),A=e.order||"ascending";return A.signal?Bk(this.add(Tk({fields:t,orders:this.signalRef(A.signal)}))):Qk(t,A)},event:function(e,t){var A=e+":"+t;if(!this.events[A]){var n=this.id();this.streams.push({id:n,source:e,type:t}),this.events[A]=n}return this.events[A]},hasOwnSignal:function(e){return Object(ue.w)(this.signals,e)},addSignal:function(e,t){this.hasOwnSignal(e)&&Object(ue.o)("Duplicate signal name: "+Object(ue.bb)(e));var A=t instanceof hk?t:this.add(dk(t));return this.signals[e]=A},getSignal:function(e){return this.signals[e]||Object(ue.o)("Unrecognized signal name: "+Object(ue.bb)(e)),this.signals[e]},signalRef:function(e){return this.signals[e]?Bk(this.signals[e]):(Object(ue.w)(this.lambdas,e)||(this.lambdas[e]=this.add(dk(null))),Bk(this.lambdas[e]))},parseLambdas:function(){for(var e=Object.keys(this.lambdas),t=0,A=e.length;t<A;++t){var n=e[t],r=pD(n,this),i=this.lambdas[n];i.params=r.$params,i.update=r.$expr}},property:function(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty:function(e){return e&&Object(ue.H)(e)?this.signalRef(e.signal||oU(e)):e},exprRef:function(e,t){var A={expr:pD(e,this)};return t&&(A.expr.$name=t),Bk(this.add(Yk(A)))},addBinding:function(e,t){this.bindings||Object(ue.o)("Nested signals do not support binding: "+Object(ue.bb)(e)),this.bindings.push(Object(ue.p)({signal:e},t))},addScaleProj:function(e,t){Object(ue.w)(this.scales,e)&&Object(ue.o)("Duplicate scale or projection name: "+Object(ue.bb)(e)),this.scales[e]=this.add(t)},addScale:function(e,t){this.addScaleProj(e,ix(t))},addProjection:function(e,t){this.addScaleProj(e,tx(t))},getScale:function(e){return this.scales[e]||Object(ue.o)("Unrecognized scale name: "+Object(ue.bb)(e)),this.scales[e]},scaleRef:function(e){return Bk(this.getScale(e))},scaleType:function(e){return this.getScale(e).params.type},projectionRef:function(e){return this.scaleRef(e)},projectionType:function(e){return this.scaleType(e)},addData:function(e,t){return Object(ue.w)(this.data,e)&&Object(ue.o)("Duplicate data set name: "+Object(ue.bb)(e)),this.data[e]=t},getData:function(e){return this.data[e]||Object(ue.o)("Undefined data set name: "+Object(ue.bb)(e)),this.data[e]},addDataPipeline:function(e,t){return Object(ue.w)(this.data,e)&&Object(ue.o)("Duplicate data set name: "+Object(ue.bb)(e)),this.addData(e,fN.fromEntries(this,t))}};var cU="5.21.0";Object(ue.p)(st,i,a,s,g,c,l,u,I,C,h,f);var uU=cU;var lU={NaN:NaN,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,PI:Math.PI,SQRT1_2:Math.SQRT1_2,SQRT2:Math.SQRT2,MIN_VALUE:Number.MIN_VALUE,MAX_VALUE:Number.MAX_VALUE},IU={"*":function(e,t){return e*t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},">":function(e,t){return e>t},"<":function(e,t){return e<t},"<=":function(e,t){return e<=t},">=":function(e,t){return e>=t},"==":function(e,t){return e==t},"!=":function(e,t){return e!=t},"===":function(e,t){return e===t},"!==":function(e,t){return e!==t},"&":function(e,t){return e&t},"|":function(e,t){return e|t},"^":function(e,t){return e^t},"<<":function(e,t){return e<<t},">>":function(e,t){return e>>t},">>>":function(e,t){return e>>>t}},CU={"+":function(e){return+e},"-":function(e){return-e},"~":function(e){return~e},"!":function(e){return!e}},hU=Array.prototype.slice,fU=function(e,t,A){var n=A?A(t[0]):t[0];return n[e].apply(n,hU.call(t,1))},dU={isNaN:Number.isNaN,isFinite:Number.isFinite,abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,pow:Math.pow,random:Math.random,round:Math.round,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,clamp:function(e,t,A){return Math.max(t,Math.min(A,e))},now:Date.now,utc:Date.UTC,datetime:function(e,t,A,n,r,i,o){return new Date(e,t||0,null!=A?A:1,n||0,r||0,i||0,o||0)},date:function(e){return new Date(e).getDate()},day:function(e){return new Date(e).getDay()},year:function(e){return new Date(e).getFullYear()},month:function(e){return new Date(e).getMonth()},hours:function(e){return new Date(e).getHours()},minutes:function(e){return new Date(e).getMinutes()},seconds:function(e){return new Date(e).getSeconds()},milliseconds:function(e){return new Date(e).getMilliseconds()},time:function(e){return new Date(e).getTime()},timezoneoffset:function(e){return new Date(e).getTimezoneOffset()},utcdate:function(e){return new Date(e).getUTCDate()},utcday:function(e){return new Date(e).getUTCDay()},utcyear:function(e){return new Date(e).getUTCFullYear()},utcmonth:function(e){return new Date(e).getUTCMonth()},utchours:function(e){return new Date(e).getUTCHours()},utcminutes:function(e){return new Date(e).getUTCMinutes()},utcseconds:function(e){return new Date(e).getUTCSeconds()},utcmilliseconds:function(e){return new Date(e).getUTCMilliseconds()},length:function(e){return e.length},join:function(){return fU("join",arguments)},indexof:function(){return fU("indexOf",arguments)},lastindexof:function(){return fU("lastIndexOf",arguments)},slice:function(){return fU("slice",arguments)},reverse:function(e){return e.slice().reverse()},parseFloat:parseFloat,parseInt:parseInt,upper:function(e){return String(e).toUpperCase()},lower:function(e){return String(e).toLowerCase()},substring:function(){return fU("substring",arguments,String)},split:function(){return fU("split",arguments,String)},replace:function(){return fU("replace",arguments,String)},trim:function(e){return String(e).trim()},regexp:RegExp,test:function(e,t){return RegExp(e).test(t)}},BU=["view","item","group","xy","x","y"],pU={Literal:function(e,t){return t.value},Identifier:function(e,t){var A=t.name;return e.memberDepth>0?A:"datum"===A?e.datum:"event"===A?e.event:"item"===A?e.item:lU[A]||e.params["$"+A]},MemberExpression:function(e,t){var A=!t.computed,n=e(t.object);A&&(e.memberDepth+=1);var r=e(t.property);return A&&(e.memberDepth-=1),n[r]},CallExpression:function(e,t){var A=t.arguments,n=t.callee.name;return n.startsWith("_")&&(n=n.slice(1)),"if"===n?e(A[0])?e(A[1]):e(A[2]):(e.fn[n]||dU[n]).apply(e.fn,A.map(e))},ArrayExpression:function(e,t){return t.elements.map(e)},BinaryExpression:function(e,t){return IU[t.operator](e(t.left),e(t.right))},UnaryExpression:function(e,t){return CU[t.operator](e(t.argument))},ConditionalExpression:function(e,t){return e(t.test)?e(t.consequent):e(t.alternate)},LogicalExpression:function(e,t){return"&&"===t.operator?e(t.left)&&e(t.right):e(t.left)||e(t.right)},ObjectExpression:function(e,t){return t.properties.reduce((function(t,A){e.memberDepth+=1;var n=e(A.key);return e.memberDepth-=1,t[n]=e(A.value),t}),{})}};function EU(e,t,A,n,r,i){var o=function e(t){return pU[t.type](e,t)};return o.memberDepth=0,o.fn=Object.create(t),o.params=A,o.datum=n,o.event=r,o.item=i,BU.forEach((function(e){return o.fn[e]=function(){var t;return(t=r.vega)[e].apply(t,arguments)}})),o(e)}var QU={operator:function(e,t){var A=t.ast,n=e.functions;return function(e){return EU(A,n,e)}},parameter:function(e,t){var A=t.ast,n=e.functions;return function(e,t){return EU(A,n,t,e)}},event:function(e,t){var A=t.ast,n=e.functions;return function(e){return EU(A,n,void 0,void 0,e)}},handler:function(e,t){var A=t.ast,n=e.functions;return function(e,t){var r=t.item&&t.item.datum;return EU(A,n,e,r,t)}},encode:function(e,t){var A=t.marktype,n=t.channels,r=e.functions,i="group"===A||"image"===A||"rect"===A;return function(e,t){var o,a=e.datum,s=0;for(var g in n)o=EU(n[g].ast,r,t,a,void 0,e),e[g]!==o&&(e[g]=o,s=1);return"rule"!==A&&function(e,t,A){var n;t.x2&&(t.x?(A&&e.x>e.x2&&(n=e.x,e.x=e.x2,e.x2=n),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(A&&e.y>e.y2&&(n=e.y,e.y=e.y2,e.y2=n),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}(e,n,i),s}}},yU=A(712);function vU(e,t,A){return e.fields=t||[],e.fname=A,e}function mU(e){return 1===e.length?bU(e[0]):wU(e)}var bU=function(e){return function(t){return t[e]}},wU=function(e){var t=e.length;return function(A){for(var n=0;n<t;++n)A=A[e[n]];return A}};function SU(e){throw Error(e)}function FU(e){var t,A,n,r=[],i=e.length,o=null,a=0,s="";function g(){r.push(s+e.substring(t,A)),s="",t=A+1}for(e+="",t=A=0;A<i;++A)if("\\"===(n=e[A]))s+=e.substring(t,A),s+=e.substring(++A,++A),t=A;else if(n===o)g(),o=null,a=-1;else{if(o)continue;t===a&&'"'===n||t===a&&"'"===n?(t=A+1,o=n):"."!==n||a?"["===n?(A>t&&g(),a=t=A+1):"]"===n&&(a||SU("Access path missing open bracket: "+e),a>0&&g(),a=0,t=A+1):A>t?g():t=A+1}return a&&SU("Access path missing closing bracket: "+e),o&&SU("Access path missing closing quote: "+e),A>t&&(A++,g()),r}function RU(e,t,A){var n=FU(e);return e=1===n.length?n[0]:e,vU((A&&A.get||mU)(n),[e],t||e)}RU("id");var DU=vU((function(e){return e}),[],"identity");vU((function(){return 0}),[],"zero"),vU((function(){return 1}),[],"one"),vU((function(){return!0}),[],"true"),vU((function(){return!1}),[],"false");function GU(e,t,A){var n=[t].concat([].slice.call(A));console[e].apply(console,n)}var kU=Array.isArray;function xU(e){return e===Object(e)}var NU=function(e){return"__proto__"!==e};function UU(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];return t.reduce((function(e,t){for(var A in t)if("signals"===A)e.signals=MU(e.signals,t.signals);else{var n="legend"===A?{layout:1}:"style"===A||null;_U(e,A,t[A],n)}return e}),{})}function _U(e,t,A,n){var r,i;if(NU(t))if(xU(A)&&!kU(A))for(r in i=xU(e[t])?e[t]:e[t]={},A)n&&(!0===n||n[r])?_U(i,r,A[r]):NU(r)&&(i[r]=A[r]);else e[t]=A}function MU(e,t){if(null==e)return t;var A={},n=[];function r(e){A[e.name]||(A[e.name]=1,n.push(e))}return t.forEach(r),e.forEach(r),n}function OU(e){return null!=e?kU(e)?e:[e]:[]}function LU(e){return"function"===typeof e}var TU=Object.prototype.hasOwnProperty;function ZU(e,t){return TU.call(e,t)}function HU(e){return"boolean"===typeof e}function YU(e){return"number"===typeof e}function JU(e){return"string"===typeof e}function jU(e){return kU(e)?"["+e.map(jU)+"]":xU(e)||JU(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function PU(e){for(var t={},A=e.length,n=0;n<A;++n)t[e[n]]=!0;return t}A(1144);var VU=A(713),KU=A.n(VU),WU=A(146),XU=A.n(WU),qU=A(272),zU=A.n(qU);function $U(e){return!!e.or}function e_(e){return!!e.and}function t_(e){return!!e.not}function A_(e,t){return t_(e)?{not:A_(e.not,t)}:e_(e)?{and:e.and.map((function(e){return A_(e,t)}))}:$U(e)?{or:e.or.map((function(e){return A_(e,t)}))}:t(e)}var n_=XU.a,r_=KU.a;function i_(e,t){var A,n={},r=Object(ut.a)(t);try{for(r.s();!(A=r.n()).done;){var i=A.value;ZU(e,i)&&(n[i]=e[i])}}catch(o){r.e(o)}finally{r.f()}return n}function o_(e,t){var A,n=Object.assign({},e),r=Object(ut.a)(t);try{for(r.s();!(A=r.n()).done;){delete n[A.value]}}catch(i){r.e(i)}finally{r.f()}return n}Set.prototype.toJSON=function(){return"Set(".concat(Object(zn.a)(this).map((function(e){return zU()(e)})).join(","),")")};var a_=zU.a;function s_(e){if(YU(e))return e;var t=JU(e)?e:zU()(e);if(t.length<250)return t;for(var A=0,n=0;n<t.length;n++){A=(A<<5)-A+t.charCodeAt(n),A&=A}return A}function g_(e){return!1===e||null===e}function c_(e,t){return e.includes(t)}function u_(e,t){var A,n=0,r=Object(ut.a)(e.entries());try{for(r.s();!(A=r.n()).done;){var i=Object(lt.a)(A.value,2),o=i[0];if(t(i[1],o,n++))return!0}}catch(a){r.e(a)}finally{r.f()}return!1}function l_(e,t){var A,n=0,r=Object(ut.a)(e.entries());try{for(r.s();!(A=r.n()).done;){var i=Object(lt.a)(A.value,2),o=i[0];if(!t(i[1],o,n++))return!1}}catch(a){r.e(a)}finally{r.f()}return!0}function I_(e){for(var t=arguments.length,A=new Array(t>1?t-1:0),n=1;n<t;n++)A[n-1]=arguments[n];for(var r=0,i=A;r<i.length;r++){var o=i[r];C_(e,null!==o&&void 0!==o?o:{})}return e}function C_(e,t){var A,n=Object(ut.a)(y_(t));try{for(n.s();!(A=n.n()).done;){var r=A.value;_U(e,r,t[r],!0)}}catch(i){n.e(i)}finally{n.f()}}function h_(e,t){var A,n,r=[],i={},o=Object(ut.a)(e);try{for(o.s();!(n=o.n()).done;){var a=n.value;(A=t(a))in i||(i[A]=1,r.push(a))}}catch(s){o.e(s)}finally{o.f()}return r}function f_(e,t){var A=y_(e),n=y_(t);if(A.length!==n.length)return!1;var r,i=Object(ut.a)(A);try{for(i.s();!(r=i.n()).done;){var o=r.value;if(e[o]!==t[o])return!1}}catch(a){i.e(a)}finally{i.f()}return!0}function d_(e,t){if(e.size!==t.size)return!1;var A,n=Object(ut.a)(e);try{for(n.s();!(A=n.n()).done;){var r=A.value;if(!t.has(r))return!1}}catch(i){n.e(i)}finally{n.f()}return!0}function B_(e,t){var A,n=Object(ut.a)(e);try{for(n.s();!(A=n.n()).done;){var r=A.value;if(t.has(r))return!0}}catch(i){n.e(i)}finally{n.f()}return!1}function p_(e){var t,A=new Set,n=Object(ut.a)(e);try{var r=function(){var e,n=FU(t.value).map((function(e,t){return 0===t?e:"[".concat(e,"]")})),r=n.map((function(e,t){return n.slice(0,t+1).join("")})),i=Object(ut.a)(r);try{for(i.s();!(e=i.n()).done;){var o=e.value;A.add(o)}}catch(a){i.e(a)}finally{i.f()}};for(n.s();!(t=n.n()).done;)r()}catch(i){n.e(i)}finally{n.f()}return A}function E_(e,t){return void 0===e||void 0===t||B_(p_(e),p_(t))}function Q_(e){return 0===y_(e).length}var y_=Object.keys,v_=Object.values,m_=Object.entries;function b_(e){return!0===e||!1===e}function w_(e){var t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function S_(e,t){return t_(e)?"!(".concat(S_(e.not,t),")"):e_(e)?"(".concat(e.and.map((function(e){return S_(e,t)})).join(") && ("),")"):$U(e)?"(".concat(e.or.map((function(e){return S_(e,t)})).join(") || ("),")"):t(e)}function F_(e,t){if(0===t.length)return!0;var A=t.shift();return A in e&&F_(e[A],t)&&delete e[A],Q_(e)}function R_(e){return e.charAt(0).toUpperCase()+e.substr(1)}function D_(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"datum",A=FU(e),n=[],r=1;r<=A.length;r++){var i="[".concat(A.slice(0,r).map(jU).join("]["),"]");n.push("".concat(t).concat(i))}return n.join(" && ")}function G_(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"datum";return"".concat(t,"[").concat(jU(FU(e).join(".")),"]")}function k_(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function x_(e){return"".concat(FU(e).map(k_).join("\\."))}function N_(e,t,A){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),A)}function U_(e){return"".concat(FU(e).join("."))}function __(e){return e?FU(e).length:0}function M_(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];for(var n=0,r=t;n<r.length;n++){var i=r[n];if(void 0!==i)return i}}var O_=42;function L_(e){var t=++O_;return e?String(e)+t:t}function T_(){O_=42}function Z_(e){return H_(e)?e:"__".concat(e)}function H_(e){return e.startsWith("__")}function Y_(e){if(void 0!==e)return(e%360+360)%360}function J_(e){return!!YU(e)||!isNaN(e)&&!isNaN(parseFloat(e))}var j_=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},P_="row",V_="column",K_="radius",W_="theta",X_="theta2",q_="color",z_="fill",$_="stroke",eM="shape",tM={theta:1,theta2:1,radius:1,radius2:1};function AM(e){return e in tM}var nM={longitude:1,longitude2:1,latitude:1,latitude2:1};var rM=y_(nM),iM=Object.assign(Object.assign(Object.assign(Object.assign({},{x:1,y:1,x2:1,y2:1}),tM),nM),{color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,angle:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1,description:1});function oM(e){return e===q_||e===z_||e===$_}var aM={row:1,column:1,facet:1},sM=y_(aM),gM=Object.assign(Object.assign({},iM),aM),cM=y_(gM),uM=(gM.order,gM.detail,gM.tooltip,j_(gM,["order","detail","tooltip"])),lM=(uM.row,uM.column,uM.facet,j_(uM,["row","column","facet"]));y_(uM),y_(lM);function IM(e){return!!gM[e]}var CM=["x2","y2","latitude2","longitude2",X_,"radius2"];function hM(e){return fM(e)!==e}function fM(e){switch(e){case"x2":return"x";case"y2":return"y";case"latitude2":return"latitude";case"longitude2":return"longitude";case X_:return W_;case"radius2":return K_}return e}function dM(e){if(AM(e))switch(e){case W_:return"startAngle";case X_:return"endAngle";case K_:return"outerRadius";case"radius2":return"innerRadius"}return e}function BM(e){switch(e){case"x":return"x2";case"y":return"y2";case"latitude":return"latitude2";case"longitude":return"longitude2";case W_:return X_;case K_:return"radius2"}}function pM(e){switch(e){case"x":case"x2":return"width";case"y":case"y2":return"height"}}y_(iM),iM.x,iM.y,iM.x2,iM.y2,iM.latitude,iM.longitude,iM.latitude2,iM.longitude2,iM.theta,iM.theta2,iM.radius,iM.radius2;var EM=j_(iM,["x","y","x2","y2","latitude","longitude","latitude2","longitude2","theta","theta2","radius","radius2"]),QM=y_(EM),yM={x:1,y:1},vM=y_(yM);function mM(e){return e in yM}var bM={theta:1,radius:1},wM=y_(bM);function SM(e){return"width"===e?"x":"y"}EM.text,EM.tooltip,EM.href,EM.url,EM.description,EM.detail,EM.key,EM.order;var FM=j_(EM,["text","tooltip","href","url","description","detail","key","order"]),RM=y_(FM);var DM=Object.assign(Object.assign(Object.assign({},yM),bM),FM),GM=y_(DM);function kM(e){return!!DM[e]}function xM(e,t){return function(e){switch(e){case q_:case z_:case $_:case"description":case"detail":case"key":case"tooltip":case"href":case"order":case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeWidth":case"facet":case P_:case V_:return NM;case"x":case"y":case"latitude":case"longitude":return UM;case"x2":case"y2":case"latitude2":case"longitude2":return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case"size":return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case"strokeDash":return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case eM:return{point:"always",geoshape:"always"};case"text":return{text:"always"};case"angle":return{point:"always",square:"always",text:"always"};case"url":return{image:"always"};case W_:case K_:return{text:"always",arc:"always"};case X_:case"radius2":return{arc:"always"}}}(e)[t]}var NM={arc:"always",area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},UM=j_(NM,["geoshape"]);function _M(e){switch(e){case"x":case"y":case W_:case K_:case"size":case"angle":case"strokeWidth":case"opacity":case"fillOpacity":case"strokeOpacity":case"x2":case"y2":case X_:case"radius2":return;case"facet":case P_:case V_:case eM:case"strokeDash":case"text":case"tooltip":case"href":case"url":case"description":return"discrete";case q_:case z_:case $_:return"flexible";case"latitude":case"longitude":case"latitude2":case"longitude2":case"detail":case"key":case"order":return}}var MM={argmax:1,argmin:1,average:1,count:1,distinct:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},OM={count:1,min:1,max:1};function LM(e){return!!e&&!!e.argmin}function TM(e){return!!e&&!!e.argmax}y_(MM);function ZM(e){return JU(e)&&!!MM[e]}var HM=["count","valid","missing","distinct"];function YM(e){return JU(e)&&c_(HM,e)}var JM=["count","sum","distinct","valid","missing"],jM=PU(["mean","average","median","q1","q3","min","max"]);function PM(e){return HU(e)&&(e=aY(e,void 0)),"bin"+y_(e).map((function(t){return XM(e[t])?w_("_".concat(t,"_").concat(m_(e[t]))):w_("_".concat(t,"_").concat(e[t]))})).join("")}function VM(e){return!0===e||WM(e)&&!e.binned}function KM(e){return"binned"===e||WM(e)&&!0===e.binned}function WM(e){return xU(e)}function XM(e){return null===e||void 0===e?void 0:e.param}function qM(e){switch(e){case P_:case V_:case"size":case q_:case z_:case $_:case"strokeWidth":case"opacity":case"fillOpacity":case"strokeOpacity":case eM:return 6;case"strokeDash":return 4;default:return 10}}function zM(e){return e&&!!e.expr}function $M(e){var t,A=y_(e||{}),n={},r=Object(ut.a)(A);try{for(r.s();!(t=r.n()).done;){var i=t.value;n[i]=uO(e[i])}}catch(o){r.e(o)}finally{r.f()}return n}var eO=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function tO(e){var t=e.anchor,A=e.frame,n=e.offset,r=e.orient,i=e.angle,o=e.limit,a=e.color,s=e.subtitleColor,g=e.subtitleFont,c=e.subtitleFontSize,u=e.subtitleFontStyle,l=e.subtitleFontWeight,I=e.subtitleLineHeight,C=e.subtitlePadding,h=eO(e,["anchor","frame","offset","orient","angle","limit","color","subtitleColor","subtitleFont","subtitleFontSize","subtitleFontStyle","subtitleFontWeight","subtitleLineHeight","subtitlePadding"]),f=Object.assign(Object.assign({},h),a?{fill:a}:{}),d=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},t?{anchor:t}:{}),A?{frame:A}:{}),n?{offset:n}:{}),r?{orient:r}:{}),void 0!==i?{angle:i}:{}),void 0!==o?{limit:o}:{}),B=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},s?{subtitleColor:s}:{}),g?{subtitleFont:g}:{}),c?{subtitleFontSize:c}:{}),u?{subtitleFontStyle:u}:{}),l?{subtitleFontWeight:l}:{}),I?{subtitleLineHeight:I}:{}),C?{subtitlePadding:C}:{});return{titleMarkConfig:f,subtitleMarkConfig:i_(e,["align","baseline","dx","dy","limit"]),nonMarkTitleProperties:d,subtitle:B}}function AO(e){return JU(e)||kU(e)&&JU(e[0])}function nO(e){return e&&!!e.signal}function rO(e){return!!e.step}function iO(e){return!kU(e)&&("field"in e&&"data"in e)}var oO=y_({aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1}),aO={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},sO=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"],gO=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function cO(e){var t=kU(e.condition)?e.condition.map(lO):lO(e.condition);return Object.assign(Object.assign({},uO(e)),{condition:t})}function uO(e){if(zM(e)){var t=e.expr,A=gO(e,["expr"]);return Object.assign({signal:t},A)}return e}function lO(e){if(zM(e)){var t=e.expr,A=gO(e,["expr"]);return Object.assign({signal:t},A)}return e}function IO(e){if(zM(e)){var t=e.expr,A=gO(e,["expr"]);return Object.assign({signal:t},A)}return nO(e)?e:void 0!==e?{value:e}:void 0}function CO(e){return nO(e)?e.signal:jU(e.value)}function hO(e){return nO(e)?e.signal:null==e?null:jU(e)}function fO(e){var t;return[].concat(e.type,null!==(t=e.style)&&void 0!==t?t:[])}function dO(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=n.vgChannel,i=n.ignoreVgConfig;return r&&void 0!==t[r]?t[r]:void 0!==t[e]?t[e]:!i||r&&r!==e?BO(e,t,A,n):void 0}function BO(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=n.vgChannel;return M_(r?pO(e,t,A.style):void 0,pO(e,t,A.style),r?A[t.type][r]:void 0,A[t.type][e],r?A.mark[r]:A.mark[e])}function pO(e,t,A){return EO(e,fO(t),A)}function EO(e,t,A){var n;t=OU(t);var r,i=Object(ut.a)(t);try{for(i.s();!(r=i.n()).done;){var o=A[r.value];o&&void 0!==o[e]&&(n=o[e])}}catch(a){i.e(a)}finally{i.f()}return n}function QO(e,t){return OU(e).reduce((function(e,A){var n;return e.field.push(JH(A,t)),e.order.push(null!==(n=A.sort)&&void 0!==n?n:"ascending"),e}),{field:[],order:[]})}function yO(e,t){var A=Object(zn.a)(e);return t.forEach((function(e){var t,n=Object(ut.a)(A);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(n_(r,e))return}}catch(i){n.e(i)}finally{n.f()}A.push(e)})),A}function vO(e,t){return n_(e,t)||!t?e:e?[].concat(Object(zn.a)(OU(e)),Object(zn.a)(OU(t))).join(", "):t}function mO(e,t){var A=e.value,n=t.value;if(null==A||null===n)return{explicit:e.explicit,value:null};if((AO(A)||nO(A))&&(AO(n)||nO(n)))return{explicit:e.explicit,value:vO(A,n)};if(AO(A)||nO(A))return{explicit:e.explicit,value:A};if(AO(n)||nO(n))return{explicit:e.explicit,value:n};if(!AO(A)&&!nO(A)&&!AO(n)&&!nO(n))return{explicit:e.explicit,value:yO(A,n)};throw new Error("It should never reach here")}var bO=A(91);function wO(e){return"Invalid specification ".concat(a_(e),'. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".')}var SO='Autosize "fit" only works for single views and layered views.';function FO(e){return"".concat("width"==e?"Width":"Height",' "container" only works for single views and layered views.')}function RO(e){var t="width"==e?"x":"y";return"".concat("width"==e?"Width":"Height",' "container" only works well with autosize "fit" or "fit-').concat(t,'".')}function DO(e){return e?'Dropping "fit-'.concat(e,'" because spec has discrete ').concat(pM(e),"."):'Dropping "fit" because spec has discrete size.'}function GO(e){return"Unknown field for ".concat(e,". Cannot calculate view size.")}function kO(e){return'Cannot project a selection on encoding channel "'.concat(e,'", which has no field.')}function xO(e,t){return'Cannot project a selection on encoding channel "'.concat(e,'" as it uses an aggregate function ("').concat(t,'").')}function NO(e){return'The "nearest" transform is not supported for '.concat(e," marks.")}function UO(e){return"Selection not supported for ".concat(e," yet.")}function _O(e){return'Cannot find a selection named "'.concat(e,'".')}var MO="Scale bindings are currently only supported for scales with unbinned, continuous domains.",OO="Legend bindings are only supported for selections over an individual field or encoding channel.";function LO(e){return'Lookups can only be performed on selection parameters. "'.concat(e,'" is a variable parameter.')}function TO(e){return'Cannot define and lookup the "'.concat(e,'" selection in the same view. ')+"Try moving the lookup into a second, layered view?"}var ZO="The same selection must be used to override scale domains in a layered view.",HO='Interval selections should be initialized using "x" and/or "y" keys.';function YO(e){return'Unknown repeated value "'.concat(e,'".')}function JO(e){return'The "columns" property cannot be used when "'.concat(e,'" has nested row/column.')}var jO="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function PO(e){return'Unrecognized parse "'.concat(e,'".')}function VO(e,t,A){return'An ancestor parsed field "'.concat(e,'" as ').concat(A," but a child wants to parse the field as ").concat(t,".")}var KO="Attempt to add the same child twice.";function WO(e){return"Ignoring an invalid transform: ".concat(a_(e),".")}var XO='If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.';function qO(e){return"Config.customFormatTypes is not true, thus custom format type and format for channel ".concat(e," are dropped.")}function zO(e){var t=e.parentProjection,A=e.projection;return"Layer's shared projection ".concat(a_(t)," is overridden by a child projection ").concat(a_(A),".")}var $O="Arc marks uses theta channel rather than angle, replacing angle with theta.";function eL(e,t,A){return"Channel ".concat(e," is a ").concat(t,". Converted to {value: ").concat(a_(A),"}.")}function tL(e){return'Invalid field type "'.concat(e,'".')}function AL(e,t){return'Invalid field type "'.concat(e,'" for aggregate: "').concat(t,'", using "quantitative" instead.')}function nL(e){return'Invalid aggregation operator "'.concat(e,'".')}function rL(e,t){return'Missing type for channel "'.concat(e,'", using "').concat(t,'" instead.')}function iL(e,t){var A=t.fill,n=t.stroke;return"Dropping color ".concat(e," as the plot also has ").concat(A&&n?"fill and stroke":A?"fill":"stroke",".")}function oL(e){return"Position range does not support relative band size for ".concat(e,".")}function aL(e,t){return"Dropping ".concat(a_(e),' from channel "').concat(t,'" since it does not contain any data field, datum, value, or signal.')}var sL="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function gL(e,t,A){return"".concat(e,' dropped as it is incompatible with "').concat(t,'"').concat(A?" when ".concat(A):"",".")}function cL(e){return"".concat(e,"-encoding is dropped as ").concat(e," is not a valid encoding channel.")}function uL(e){return"".concat(e," encoding should be discrete (ordinal / nominal / binned).")}function lL(e){return"".concat(e," encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).")}function IL(e){return"Facet encoding dropped as ".concat(e.join(" and ")," ").concat(e.length>1?"are":"is"," also specified.")}function CL(e,t){return'Using discrete channel "'.concat(e,'" to encode "').concat(t,'" field can be misleading as it does not encode ').concat("ordinal"===t?"order":"magnitude",".")}function hL(e){return"The ".concat(e," for range marks cannot be an expression")}function fL(e,t){return"Line mark is for continuous lines and thus cannot be used with ".concat(e&&t?"x2 and y2":e?"x2":"y2",". We will use the rule mark (line segments) instead.")}function dL(e,t){return'Specified orient "'.concat(e,'" overridden with "').concat(t,'".')}var BL="Custom domain scale cannot be unioned with default field-based domain.";function pL(e){return'Cannot use the scale property "'.concat(e,'" with non-color channel.')}function EL(e){return"Cannot use the relative band size with ".concat(e," scale.")}function QL(e){return"Using unaggregated domain with raw field has no effect (".concat(a_(e),").")}function yL(e){return'Unaggregated domain not applicable for "'.concat(e,'" since it produces values outside the origin domain of the source data.')}function vL(e){return"Unaggregated domain is currently unsupported for log scale (".concat(a_(e),").")}function mL(e){return'Cannot apply size to non-oriented mark "'.concat(e,'".')}function bL(e,t,A){return'Channel "'.concat(e,'" does not work with "').concat(t,'" scale. We are using "').concat(A,'" scale instead.')}function wL(e,t){return'FieldDef does not work with "'.concat(e,'" scale. We are using "').concat(t,'" scale instead.')}function SL(e,t,A){return"".concat(A,"-scale's \"").concat(t,'" is dropped as it does not work with ').concat(e," scale.")}function FL(e,t){return'Scale type "'.concat(t,'" does not work with mark "').concat(e,'".')}function RL(e){return'The step for "'.concat(e,'" is dropped because the ').concat("width"===e?"x":"y"," is continuous.")}function DL(e,t,A,n){return"Conflicting ".concat(t.toString(),' property "').concat(e.toString(),'" (').concat(a_(A)," and ").concat(a_(n),"). Using ").concat(a_(A),".")}function GL(e,t,A,n){return"Conflicting ".concat(t.toString(),' property "').concat(e.toString(),'" (').concat(a_(A)," and ").concat(a_(n),"). Using the union of the two domains.")}function kL(e){return'Setting the scale to be independent for "'.concat(e,'" means we also have to set the guide (axis or legend) to be independent.')}function xL(e){return"Dropping sort property ".concat(a_(e),' as unioned domains only support boolean or op "count", "min", and "max".')}var NL="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",UL="Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect.",_L="Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect.",ML="Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.",OL="Invalid channel for axis.";function LL(e){return'Cannot stack "'.concat(e,'" if there is already "').concat(e,'2".')}function TL(e){return"Cannot stack non-linear scale (".concat(e,").")}function ZL(e){return'Stacking is applied even though the aggregate function is non-summative ("'.concat(e,'").')}function HL(e,t){return"Invalid ".concat(e,": ").concat(a_(t),".")}function YL(e){return"Dropping day from datetime ".concat(a_(e)," as day cannot be combined with other units.")}function JL(e,t){return"".concat(t?"extent ":"").concat(t&&e?"and ":"").concat(e?"center ":"").concat(t&&e?"are ":"is ","not needed when data are aggregated.")}function jL(e,t,A){return"".concat(e," is not usually used with ").concat(t," for ").concat(A,".")}function PL(e,t){return"Continuous axis should not have customized aggregation function ".concat(e,"; ").concat(t," already agregates the axis.")}function VL(e){return"1D error band does not support ".concat(e,".")}function KL(e){return"Channel ".concat(e,' is required for "binned" bin.')}function WL(e){return"Channel ".concat(e,' should not be used with "binned" bin.')}function XL(e){return"Domain for ".concat(e," is required for threshold scale.")}var qL=function(e,t){var A=e||0;return{level:function(e){return arguments.length?(A=+e,this):A},error:function(){return A>=1&&GU(t||"error","ERROR",arguments),this},warn:function(){return A>=2&&GU(t||"warn","WARN",arguments),this},info:function(){return A>=3&&GU(t||"log","INFO",arguments),this},debug:function(){return A>=4&&GU(t||"log","DEBUG",arguments),this}}}(2),zL=qL;function $L(e){return zL=e}function eT(){return zL=qL}function tT(){var e;(e=zL).warn.apply(e,arguments)}function AT(e){if(e&&xU(e)){var t,A=Object(ut.a)(IT);try{for(A.s();!(t=A.n()).done;){if(t.value in e)return!0}}catch(n){A.e(n)}finally{A.f()}}return!1}new WeakMap;var nT=["january","february","march","april","may","june","july","august","september","october","november","december"],rT=nT.map((function(e){return e.substr(0,3)})),iT=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],oT=iT.map((function(e){return e.substr(0,3)}));function aT(e,t){var A=[];if(t&&void 0!==e.day&&y_(e).length>1&&(tT(B.droppedDay(e)),delete(e=r_(e)).day),void 0!==e.year?A.push(e.year):A.push(2012),void 0!==e.month){var n=t?function(e){if(J_(e)&&(e=+e),YU(e))return e-1;var t=e.toLowerCase(),A=nT.indexOf(t);if(-1!==A)return A;var n=t.substr(0,3),r=rT.indexOf(n);if(-1!==r)return r;throw new Error(B.invalidTimeUnit("month",e))}(e.month):e.month;A.push(n)}else if(void 0!==e.quarter){var r=t?function(e){if(J_(e)&&(e=+e),YU(e))return e>4&&tT(B.invalidTimeUnit("quarter",e)),e-1;throw new Error(B.invalidTimeUnit("quarter",e))}(e.quarter):e.quarter;A.push(YU(r)?3*r:"".concat(r,"*3"))}else A.push(0);if(void 0!==e.date)A.push(e.date);else if(void 0!==e.day){var i=t?function(e){if(J_(e)&&(e=+e),YU(e))return e%7;var t=e.toLowerCase(),A=iT.indexOf(t);if(-1!==A)return A;var n=t.substr(0,3),r=oT.indexOf(n);if(-1!==r)return r;throw new Error(B.invalidTimeUnit("day",e))}(e.day):e.day;A.push(YU(i)?i+1:"".concat(i,"+1"))}else A.push(1);for(var o=0,a=["hours","minutes","seconds","milliseconds"];o<a.length;o++){var s=e[a[o]];A.push("undefined"===typeof s?0:s)}return A}function sT(e){var t=aT(e,!0).join(", ");return e.utc?"utc(".concat(t,")"):"datetime(".concat(t,")")}function gT(e){var t=aT(e,!1).join(", ");return e.utc?"utc(".concat(t,")"):"datetime(".concat(t,")")}function cT(e){var t=aT(e,!0);return e.utc?+new Date(Date.UTC.apply(Date,Object(zn.a)(t))):+Object(bO.a)(Date,Object(zn.a)(t))}var uT=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},lT={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},IT=y_(lT);function CT(e){return e.startsWith("utc")}var hT={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function fT(e){return IT.filter((function(t){return dT(e,t)}))}function dT(e,t){var A=e.indexOf(t);return!(A<0)&&(!(A>0&&"seconds"===t&&"i"===e.charAt(A-1))&&(!(e.length>A+3&&"day"===t&&"o"===e.charAt(A+3))&&!(A>0&&"year"===t&&"f"===e.charAt(A-1))))}function BT(e,t){var A,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{end:!1},r=n.end,i=D_(t),o=CT(e)?"utc":"";function a(e){return"quarter"===e?"(".concat(o,"quarter(").concat(i,")-1)"):"".concat(o).concat(e,"(").concat(i,")")}var s,g={},c=Object(ut.a)(IT);try{for(c.s();!(s=c.n()).done;){var u=s.value;dT(e,u)&&(g[u]=a(u),A=u)}}catch(l){c.e(l)}finally{c.f()}return r&&(g[A]+="+1"),gT(g)}function pT(e){if(e){var t=fT(e);return"timeUnitSpecifier(".concat(a_(t),", ").concat(a_(hT),")")}}function ET(e){var t;if(e)return JU(e)?t={unit:e}:xU(e)&&(t=Object.assign(Object.assign({},e),e.unit?{unit:e.unit}:{})),CT(t.unit)&&(t.utc=!0,t.unit=t.unit.substr(3)),t}function QT(e){var t=ET(e),A=t.utc,n=uT(t,["utc"]);return n.unit?(A?"utc":"")+y_(n).map((function(e){return w_("".concat("unit"===e?"":"_".concat(e,"_")).concat(n[e]))})).join(""):(A?"utc":"")+"timeunit"+y_(n).map((function(e){return w_("_".concat(e,"_").concat(n[e]))})).join("")}function yT(e){return e&&!!e.field&&void 0!==e.equal}function vT(e){return e&&!!e.field&&void 0!==e.lt}function mT(e){return e&&!!e.field&&void 0!==e.lte}function bT(e){return e&&!!e.field&&void 0!==e.gt}function wT(e){return e&&!!e.field&&void 0!==e.gte}function ST(e){if(null===e||void 0===e?void 0:e.field){if(kU(e.range)&&2===e.range.length)return!0;if(nO(e.range))return!0}return!1}function FT(e){return e&&!!e.field&&(kU(e.oneOf)||kU(e.in))}function RT(e){return e&&!!e.field&&void 0!==e.valid}function DT(e){return FT(e)||yT(e)||ST(e)||vT(e)||bT(e)||mT(e)||wT(e)}function GT(e,t){return uY(e,{timeUnit:t,wrapTime:!0})}function kT(e,t){return e.map((function(e){return GT(e,t)}))}function xT(e){var t,A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=e.field,r=null===(t=ET(e.timeUnit))||void 0===t?void 0:t.unit,i=r?"time(".concat(BT(r,n),")"):JH(e,{expr:"datum"});if(yT(e))return"".concat(i,"===").concat(GT(e.equal,r));if(vT(e)){var o=e.lt;return"".concat(i,"<").concat(GT(o,r))}if(bT(e)){var a=e.gt;return"".concat(i,">").concat(GT(a,r))}if(mT(e)){var s=e.lte;return"".concat(i,"<=").concat(GT(s,r))}if(wT(e)){var g=e.gte;return"".concat(i,">=").concat(GT(g,r))}if(FT(e))return"indexof([".concat(kT(e.oneOf,r).join(","),"], ").concat(i,") !== -1");if(RT(e))return NT(i,e.valid);if(ST(e)){var c=e.range,u=nO(c)?{signal:"".concat(c.signal,"[0]")}:c[0],l=nO(c)?{signal:"".concat(c.signal,"[1]")}:c[1];if(null!==u&&null!==l&&A)return"inrange("+i+", ["+GT(u,r)+", "+GT(l,r)+"])";var I=[];return null!==u&&I.push("".concat(i," >= ").concat(GT(u,r))),null!==l&&I.push("".concat(i," <= ").concat(GT(l,r))),I.length>0?I.join(" && "):"true"}throw new Error("Invalid field predicate: ".concat(a_(e)))}function NT(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return t?"isValid(".concat(e,") && isFinite(+").concat(e,")"):"!isValid(".concat(e,") || !isFinite(+").concat(e,")")}function UT(e){var t;return DT(e)&&e.timeUnit?Object.assign(Object.assign({},e),{timeUnit:null===(t=ET(e.timeUnit))||void 0===t?void 0:t.unit}):e}var _T={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};var MT=_T.quantitative,OT=_T.ordinal,LT=_T.temporal,TT=_T.nominal,ZT=_T.geojson;y_(_T);function HT(e){if(e)switch(e=e.toLowerCase()){case"q":case MT:return"quantitative";case"t":case LT:return"temporal";case"o":case OT:return"ordinal";case"n":case TT:return"nominal";case ZT:return"geojson"}}var YT=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},JT="linear",jT="log",PT="pow",VT="sqrt",KT="symlog",WT="time",XT="utc",qT="quantile",zT="quantize",$T="threshold",eZ="point",tZ="band",AZ={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};y_(AZ);function nZ(e,t){var A=AZ[e],n=AZ[t];return A===n||"ordinal-position"===A&&"time"===n||"ordinal-position"===n&&"time"===A}var rZ={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function iZ(e){return rZ[e]}var oZ=["linear","log","pow","sqrt","symlog","time","utc"],aZ=PU(oZ),sZ=PU(["linear","log","pow","sqrt","symlog"]);var gZ=PU(["quantile","quantize","threshold"]),cZ=PU(oZ.concat(["quantile","quantize","threshold","sequential","identity"])),uZ=PU(["ordinal","bin-ordinal","point","band"]);function lZ(e){return e in uZ}function IZ(e){return e in cZ}function CZ(e){return e in aZ}function hZ(e){return e in gZ}function fZ(e){return null===e||void 0===e?void 0:e.param}var dZ={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},BZ=(y_(dZ),YT(dZ,["type","domain","range","rangeMax","rangeMin","scheme"])),pZ=y_(BZ);function EZ(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(e);case"bins":return!["point","band","identity","ordinal"].includes(e);case"round":return CZ(e)||"band"===e||"point"===e;case"padding":case"rangeMin":case"rangeMax":return CZ(e)||["point","band"].includes(e);case"paddingOuter":case"align":return["point","band"].includes(e);case"paddingInner":return"band"===e;case"domainMax":case"domainMid":case"domainMin":case"clamp":return CZ(e);case"nice":return CZ(e)||"quantize"===e||"threshold"===e;case"exponent":return"pow"===e;case"base":return"log"===e;case"constant":return"symlog"===e;case"zero":return IZ(e)&&!c_(["log","time","utc","threshold","quantile"],e)}}function QZ(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return oM(e)?void 0:B.cannotUseScalePropertyWithNonColor(e);case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}var yZ={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},vZ=yZ.arc,mZ=yZ.area,bZ=yZ.bar,wZ=yZ.image,SZ=yZ.line,FZ=yZ.point,RZ=yZ.rect,DZ=yZ.rule,GZ=yZ.text,kZ=yZ.tick,xZ=yZ.trail,NZ=yZ.circle,UZ=yZ.square,_Z=yZ.geoshape;function MZ(e){return["line","area","trail"].includes(e)}function OZ(e){return["rect","bar","image","arc"].includes(e)}var LZ=y_(yZ);function TZ(e){return e.type}PU(LZ);var ZZ=[].concat(["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],["fill","fillOpacity"]),HZ=y_({color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1}),YZ=y_({mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1});function JZ(e){return e&&void 0!=e.band}var jZ={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},PZ={binSpacing:1,continuousBandSize:5,timeUnitBandPosition:.5},VZ={binSpacing:0,continuousBandSize:5,timeUnitBandPosition:.5};function KZ(e){var t=e.channel,A=e.channelDef,n=e.markDef,r=e.scale,i=e.config,o=eH(e);return DH(A)&&!YM(A.aggregate)&&r&&CZ(r.get("type"))&&!1===r.get("zero")?WZ({fieldDef:A,channel:t,markDef:n,ref:o,config:i}):o}function WZ(e){var t=e.fieldDef,A=e.channel,n=e.markDef,r=e.ref,i=e.config;return MZ(n.type)||null===dO("invalid",n,i)?r:[XZ(t,A),r]}function XZ(e,t){var A=qZ(e,!0),n="y"===fM(t)?{field:{group:"height"}}:{value:0};return Object.assign({test:A},n)}function qZ(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return NT(JU(e)?e:JH(e,{expr:"datum"}),!t)}function zZ(e,t,A,n){var r={};if(t&&(r.scale=t),kH(e)){var i=e.datum;AT(i)?r.signal=sT(i):nO(i)?r.signal=i.signal:zM(i)?r.signal=i.expr:r.value=i}else r.field=JH(e,A);if(n){var o=n.offset,a=n.band;o&&(r.offset=o),a&&(r.band=a)}return r}function $Z(e){var t=e.scaleName,A=e.fieldOrDatumDef,n=e.fieldOrDatumDef2,r=e.offset,i=e.startSuffix,o=e.bandPosition,a=void 0===o?.5:o,s=0<a&&a<1?"datum":void 0,g=JH(A,{expr:s,suffix:i}),c=void 0!==n?JH(n,{expr:s}):JH(A,{suffix:"end",expr:s}),u={};if(0===a||1===a){u.scale=t;var l=0===a?g:c;u.field=l}else{var I=nO(a)?"".concat(a.signal," * ").concat(g," + (1-").concat(a.signal,") * ").concat(c):"".concat(a," * ").concat(g," + ").concat(1-a," * ").concat(c);u.signal='scale("'.concat(t,'", ').concat(I,")")}return r&&(u.offset=r),u}function eH(e){var t,A=e.channel,n=e.channelDef,r=e.channel2Def,i=e.markDef,o=e.config,a=e.scaleName,s=e.scale,g=e.stack,c=e.offset,u=e.defaultRef,l=e.bandPosition;if(n){if(UH(n)){if(_H(n)){null!==l&&void 0!==l||(l=mH({fieldDef:n,fieldDef2:r,markDef:i,config:o}));var I=n.bin,C=n.timeUnit,h=n.type;if(VM(I)||l&&C&&h===LT)return(null===g||void 0===g?void 0:g.impute)?zZ(n,a,{binSuffix:"mid"},{offset:c}):l?$Z({scaleName:a,fieldOrDatumDef:n,bandPosition:l,offset:c}):zZ(n,a,IY(n,A)?{binSuffix:"range"}:{},{offset:c});if(KM(I)){if(DH(r))return $Z({scaleName:a,fieldOrDatumDef:n,fieldOrDatumDef2:r,bandPosition:l,offset:c});var f="x"===A?"x2":"y2";tT(B.channelRequiredForBinned(f))}}var d=null===s||void 0===s?void 0:s.get("type");return zZ(n,a,lZ(d)?{binSuffix:"range"}:{},{offset:c,band:"band"===d?null!==(t=null!==l&&void 0!==l?l:n.bandPosition)&&void 0!==t?t:.5:void 0})}if(MH(n)){var p=n.value,E=c?{offset:c}:{};return Object.assign(Object.assign({},tH(A,p)),E)}}return LU(u)&&(u=u()),u?Object.assign(Object.assign({},u),c?{offset:c}:{}):u}function tH(e,t){return c_(["x","x2"],e)&&"width"===t?{field:{group:"width"}}:c_(["y","y2"],e)&&"height"===t?{field:{group:"height"}}:IO(t)}function AH(e){return e&&"number"!==e&&"time"!==e}function nH(e,t,A){return"".concat(e,"(").concat(t).concat(A?", ".concat(a_(A)):"",")")}function rH(e){var t,A,n=e.fieldOrDatumDef,r=e.format,i=e.formatType,o=e.expr,a=e.normalizeStack,s=e.config;if(AH(i))return oH({fieldOrDatumDef:n,format:r,formatType:i,expr:o,config:s});var g=iH(n,o,a);if(cY(n)){var c=function(e,t,A,n,r){return!t||A?(A=JU(A)?A:n,"".concat(r?"utc":"time","Format(").concat(e,", '").concat(A,"')")):function(e,t,A){if(e){var n=pT(e),r=A||CT(e);return"".concat(r?"utc":"time","Format(").concat(t,", ").concat(n,")")}}(t,e,r)}(g,DH(n)?null===(t=ET(n.timeUnit))||void 0===t?void 0:t.unit:void 0,r,s.timeFormat,OH(n)&&(null===(A=n.scale)||void 0===A?void 0:A.type)===XT);return c?{signal:c}:void 0}return r=gH(GH(n),r,s),DH(n)&&VM(n.bin)?{signal:lH(g,JH(n,{expr:o,binSuffix:"end"}),r,i,s)}:r||"quantitative"===GH(n)?{signal:"".concat(cH(g,r))}:{signal:"isValid(".concat(g,") ? ").concat(g,' : ""+').concat(g)}}function iH(e,t,A){return DH(e)?A?"".concat(JH(e,{expr:t,suffix:"end"}),"-").concat(JH(e,{expr:t,suffix:"start"})):JH(e,{expr:t}):function(e){var t=e.datum;return AT(t)?sT(t):"".concat(a_(t))}(e)}function oH(e){var t=e.fieldOrDatumDef,A=e.format,n=e.formatType,r=e.expr,i=e.normalizeStack,o=e.config,a=e.field;return null!==a&&void 0!==a||(a=iH(t,r,i)),DH(t)&&VM(t.bin)?{signal:lH(a,JH(t,{expr:r,binSuffix:"end"}),A,n,o)}:{signal:nH(n,a,A)}}function aH(e,t,A,n,r,i){var o;if(!AH(n))return cY(e)?function(e,t,A,n){if(e)return e;if(t)return{signal:pT(t)};return n?void 0:A.timeFormat}(A,DH(e)?null===(o=ET(e.timeUnit))||void 0===o?void 0:o.unit:void 0,r,i):gH(t,A,r)}function sH(e,t,A){return e&&(nO(e)||"number"===e||"time"===e)?e:cY(t)&&"time"!==A&&"utc"!==A?"time":void 0}function gH(e,t,A){return JU(t)?t:e===MT?A.numberFormat:void 0}function cH(e,t){return"format(".concat(e,', "').concat(t||"",'")')}function uH(e,t,A,n){var r;return AH(A)?nH(A,e,t):cH(e,null!==(r=JU(t)?t:void 0)&&void 0!==r?r:n.numberFormat)}function lH(e,t,A,n,r){var i=uH(e,A,n,r),o=uH(t,A,n,r);return"".concat(NT(e,!1),' ? "null" : ').concat(i,' + "').concat(" \u2013 ",'" + ').concat(o)}var IH={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function CH(e){return e in IH}function hH(e){return!!e&&!!e.encoding}function fH(e){return!!e&&("count"===e.op||!!e.field)}function dH(e){return!!e&&kU(e)}function BH(e){return"row"in e||"column"in e}function pH(e){return!!e&&"header"in e}function EH(e){return"facet"in e}var QH=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function yH(e){var t=e.field,A=e.timeUnit,n=e.bin,r=e.aggregate;return Object.assign(Object.assign(Object.assign(Object.assign({},A?{timeUnit:A}:{}),n?{bin:n}:{}),r?{aggregate:r}:{}),{field:t})}function vH(e){return"sort"in e}function mH(e){var t=e.fieldDef,A=e.fieldDef2,n=e.markDef,r=e.config;if(UH(t)&&void 0!==t.bandPosition)return t.bandPosition;if(DH(t)){var i=t.timeUnit,o=t.bin;if(i&&!A)return OZ(n.type)?0:BO("timeUnitBandPosition",n,r);if(VM(o))return.5}}function bH(e){var t,A,n,r=e.channel,i=e.fieldDef,o=e.fieldDef2,a=e.markDef,s=e.config,g=e.scaleType,c=e.useVlSizeChannel,u=pM(r),l=dO(c?"size":u,a,s,{vgChannel:u});if(void 0!==l)return l;if(DH(i)){var I=i.timeUnit,C=i.bin;if(I&&!o)return{band:BO("timeUnitBandSize",a,s)};if(VM(C)&&!lZ(g))return{band:1}}return OZ(a.type)?g?lZ(g)?(null===(t=s[a.type])||void 0===t?void 0:t.discreteBandSize)||{band:1}:null===(A=s[a.type])||void 0===A?void 0:A.continuousBandSize:null===(n=s[a.type])||void 0===n?void 0:n.discreteBandSize:void 0}function wH(e,t,A,n){return!!(VM(e.bin)||e.timeUnit&&_H(e)&&"temporal"===e.type)&&void 0!==mH({fieldDef:e,fieldDef2:t,markDef:A,config:n})}function SH(e){return e&&"condition"in e}function FH(e){var t=e&&e.condition;return!!t&&!kU(t)&&DH(t)}function RH(e){var t=e&&e.condition;return!!t&&!kU(t)&&UH(t)}function DH(e){return e&&(!!e.field||"count"===e.aggregate)}function GH(e){return e&&e.type}function kH(e){return e&&"datum"in e}function xH(e){return _H(e)&&!jH(e)||NH(e)}function NH(e){return kH(e)&&YU(e.datum)}function UH(e){return DH(e)||kH(e)}function _H(e){return e&&("field"in e||"count"===e.aggregate)&&"type"in e}function MH(e){return e&&"value"in e&&"value"in e}function OH(e){return e&&("scale"in e||"sort"in e)}function LH(e){return e&&("axis"in e||"stack"in e||"impute"in e)}function TH(e){return e&&"legend"in e}function ZH(e){return e&&("format"in e||"formatType"in e)}function HH(e){return o_(e,["legend","axis","header","scale"])}function YH(e){return"op"in e}function JH(e){var t,A,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=e.field,o=r.prefix,a=r.suffix,s="";if(PH(e))i=Z_("count");else{var g;if(!r.nofn)if(YH(e))g=e.op;else{var c=e.bin,u=e.aggregate,l=e.timeUnit;VM(c)?(g=PM(c),a=(null!==(t=r.binSuffix)&&void 0!==t?t:"")+(null!==(A=r.suffix)&&void 0!==A?A:"")):u?TM(u)?(s='["'.concat(i,'"]'),i="argmax_".concat(u.argmax)):LM(u)?(s='["'.concat(i,'"]'),i="argmin_".concat(u.argmin)):g=String(u):l&&(g=QT(l),a=(!["range","mid"].includes(r.binSuffix)&&r.binSuffix||"")+(null!==(n=r.suffix)&&void 0!==n?n:""))}g&&(i=i?"".concat(g,"_").concat(i):g)}return a&&(i="".concat(i,"_").concat(a)),o&&(i="".concat(o,"_").concat(i)),r.forAs?U_(i):r.expr?G_(i,r.expr)+s:x_(i)+s}function jH(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return DH(e)&&!!e.bin;case"temporal":return!1}throw new Error(B.invalidFieldType(e.type))}function PH(e){return"count"===e.aggregate}var VH=function(e,t){switch(t.fieldTitle){case"plain":return e.field;case"functional":return function(e){var t=e.aggregate,A=e.bin,n=e.timeUnit,r=e.field;if(TM(t))return"".concat(r," for argmax(").concat(t.argmax,")");if(LM(t))return"".concat(r," for argmin(").concat(t.argmin,")");var i=ET(n),o=t||(null===i||void 0===i?void 0:i.unit)||(null===i||void 0===i?void 0:i.maxbins)&&"timeunit"||VM(A)&&"bin";return o?"".concat(o.toUpperCase(),"(").concat(r,")"):r}(e);default:return function(e,t){var A,n=e.field,r=e.bin,i=e.timeUnit,o=e.aggregate;if("count"===o)return t.countTitle;if(VM(r))return"".concat(n," (binned)");if(i){var a=null===(A=ET(i))||void 0===A?void 0:A.unit;if(a)return"".concat(n," (").concat(fT(a).join("-"),")")}else if(o)return TM(o)?"".concat(n," for max ").concat(o.argmax):LM(o)?"".concat(n," for min ").concat(o.argmin):"".concat(R_(o)," of ").concat(n);return n}(e,t)}},KH=VH;function WH(e){KH=e}function XH(){WH(VH)}function qH(e,t,A){var n,r,i=A.allowDisabling,o=A.includeDefault,a=void 0===o||o,s=null===(n=zH(e))||void 0===n?void 0:n.title;if(!DH(e))return s;var g=e,c=a?$H(g,t):void 0;return i?M_(s,g.title,c):null!==(r=null!==s&&void 0!==s?s:g.title)&&void 0!==r?r:c}function zH(e){return LH(e)&&e.axis?e.axis:TH(e)&&e.legend?e.legend:pH(e)&&e.header?e.header:void 0}function $H(e,t){return KH(e,t)}function eY(e){var t;if(ZH(e))return{format:e.format,formatType:e.formatType};var A=null!==(t=zH(e))&&void 0!==t?t:{};return{format:A.format,formatType:A.formatType}}function tY(e,t){var A;switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(vH(e)&&kU(e.sort))return"ordinal";var n=e.aggregate,r=e.bin;if(e.timeUnit)return"temporal";if(r||n&&!TM(n)&&!LM(n))return"quantitative";if(OH(e)&&(null===(A=e.scale)||void 0===A?void 0:A.type))switch(AZ[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function AY(e){return DH(e)?e:FH(e)?e.condition:void 0}function nY(e){return UH(e)?e:RH(e)?e.condition:void 0}function rY(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(JU(e)||YU(e)||HU(e)){var r=JU(e)?"string":YU(e)?"number":"boolean";return tT(B.primitiveChannelDef(t,r,e)),{value:e}}return UH(e)?iY(e,t,A,n):RH(e)?Object.assign(Object.assign({},e),{condition:iY(e.condition,t,A,n)}):e}function iY(e,t,A,n){if(ZH(e)){e.format;var r=e.formatType,i=QH(e,["format","formatType"]);if(AH(r)&&!A.customFormatTypes)return tT(B.customFormatTypeNotAllowed(t)),iY(i,t,A,n)}else{var o=LH(e)?"axis":TH(e)?"legend":pH(e)?"header":null;if(o&&e[o]){var a=e[o],s=(a.format,a.formatType),g=QH(a,["format","formatType"]);if(AH(s)&&!A.customFormatTypes)return tT(B.customFormatTypeNotAllowed(t)),iY(Object.assign(Object.assign({},e),Object($n.a)({},o,g)),t,A,n)}}return DH(e)?oY(e,t,n):function(e){var t=e.type;if(t)return e;var A=e.datum;return t=YU(A)?"quantitative":JU(A)?"nominal":AT(A)?"temporal":void 0,Object.assign(Object.assign({},e),{type:t})}(e)}function oY(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=A.compositeMark,r=void 0!==n&&n,i=e.aggregate,o=e.timeUnit,a=e.bin,s=e.field,g=Object.assign({},e);if(r||!i||ZM(i)||TM(i)||LM(i)||(tT(B.invalidAggregate(i)),delete g.aggregate),o&&(g.timeUnit=ET(o)),s&&(g.field="".concat(s)),VM(a)&&(g.bin=aY(a,t)),KM(a)&&!mM(t)&&tT(B.channelShouldNotBeUsedForBinned(t)),_H(g)){var c=g.type,u=HT(c);c!==u&&(g.type=u),"quantitative"!==c&&YM(i)&&(tT(B.invalidFieldTypeForCountAggregate(c,i)),g.type="quantitative")}else if(!hM(t)){var l=tY(g,t);g.type=l}if(_H(g)){var I=gY(g,t)||{},C=I.compatible,h=I.warning;!1===C&&tT(h)}if(vH(g)&&JU(g.sort)){var f=g.sort;if(CH(f))return Object.assign(Object.assign({},g),{sort:{encoding:f}});var d=f.substr(1);if("-"===f.charAt(0)&&CH(d))return Object.assign(Object.assign({},g),{sort:{encoding:d,order:"descending"}})}if(pH(g)){var p=g.header;if(p){var E=p.orient,Q=QH(p,["orient"]);if(E)return Object.assign(Object.assign({},g),{header:Object.assign(Object.assign({},Q),{labelOrient:p.labelOrient||E,titleOrient:p.titleOrient||E})})}}return g}function aY(e,t){return HU(e)?{maxbins:qM(t)}:"binned"===e?{binned:!0}:e.maxbins||e.step?e:Object.assign(Object.assign({},e),{maxbins:qM(t)})}var sY={compatible:!0};function gY(e,t){var A=e.type;if("geojson"===A&&"shape"!==t)return{compatible:!1,warning:"Channel ".concat(t," should not be used with a geojson data.")};switch(t){case P_:case V_:case"facet":return jH(e)?sY:{compatible:!1,warning:B.channelShouldBeDiscrete(t)};case"x":case"y":case q_:case z_:case $_:case"text":case"detail":case"key":case"tooltip":case"href":case"url":case"angle":case W_:case K_:case"description":return sY;case"longitude":case"longitude2":case"latitude":case"latitude2":return A!==MT?{compatible:!1,warning:"Channel ".concat(t," should be used with a quantitative field only, not ").concat(e.type," field.")}:sY;case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeWidth":case"size":case X_:case"radius2":case"x2":case"y2":return"nominal"!==A||e.sort?sY:{compatible:!1,warning:"Channel ".concat(t," should not be used with an unsorted discrete field.")};case eM:case"strokeDash":return jH(e)||function(e){var t;return OH(e)&&hZ(null===(t=e.scale)||void 0===t?void 0:t.type)}(e)?sY:{compatible:!1,warning:B.channelShouldBeDiscreteOrDiscretizing(t)};case"order":return"nominal"!==e.type||"sort"in e?sY:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}}function cY(e){var t,A=eY(e).formatType;return"time"===A||!A&&((t=e)&&("temporal"===t.type||DH(t)&&!!t.timeUnit))}function uY(e,t){var A,n,r=t.timeUnit,i=t.type,o=t.wrapTime,a=t.undefinedIfExprNotRequired,s=r&&(null===(A=ET(r))||void 0===A?void 0:A.unit),g=s||"temporal"===i;return zM(e)?n=e.expr:nO(e)?n=e.signal:AT(e)?(g=!0,n=sT(e)):(JU(e)||YU(e))&&g&&(n="datetime(".concat(a_(e),")"),function(e){return!!lT[e]}(s)&&(YU(e)&&e<1e4||JU(e)&&isNaN(Date.parse(e)))&&(n=sT(Object($n.a)({},s,e)))),n?o&&g?"time(".concat(n,")"):n:a?void 0:a_(e)}function lY(e,t){var A=e.type;return t.map((function(t){var n=uY(t,{timeUnit:DH(e)?e.timeUnit:void 0,type:A,undefinedIfExprNotRequired:!0});return void 0!==n?{signal:n}:t}))}function IY(e,t){return VM(e.bin)?kM(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}var CY={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function hY(e){return e&&e.condition}var fY=["domain","grid","labels","ticks","title"],dY={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},BY={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},pY=Object.assign(Object.assign({},BY),{style:1,labelExpr:1,encoding:1});function EY(e){return!!pY[e]}y_(pY);var QY=y_({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function yY(e){return"mark"in e}var vY=function(){function e(t,A){Object(y.a)(this,e),this.name=t,this.run=A}return Object(v.a)(e,[{key:"hasMatchingType",value:function(e){return!!yY(e)&&(TZ(t=e.mark)?t.type:t)===this.name;var t}}]),e}(),mY=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function bY(e,t){var A=e&&e[t];return!!A&&(kU(A)?u_(A,(function(e){return!!e.field})):DH(A)||FH(A))}function wY(e){return u_(cM,(function(t){if(bY(e,t)){var A=e[t];if(kU(A))return u_(A,(function(e){return!!e.aggregate}));var n=AY(A);return n&&!!n.aggregate}return!1}))}function SY(e,t){var A=[],n=[],r=[],i=[],o={};return GY(e,(function(a,s){if(DH(a)){var g=a.field,c=a.aggregate,u=a.bin,l=a.timeUnit,I=mY(a,["field","aggregate","bin","timeUnit"]);if(c||l||u){var C,h=zH(a),f=null===h||void 0===h?void 0:h.title,d=JH(a,{forAs:!0}),B=Object.assign(Object.assign(Object.assign({},f?[]:{title:qH(a,t,{allowDisabling:!0})}),I),{field:d});if(c){if(TM(c)?(C="argmax",d=JH({op:"argmax",field:c.argmax},{forAs:!0}),B.field="".concat(d,".").concat(g)):LM(c)?(C="argmin",d=JH({op:"argmin",field:c.argmin},{forAs:!0}),B.field="".concat(d,".").concat(g)):"boxplot"!==c&&"errorbar"!==c&&"errorband"!==c&&(C=c),C){var p={op:C,as:d};g&&(p.field=g),i.push(p)}}else if(A.push(d),_H(a)&&VM(u)){if(n.push({bin:u,field:g,as:d}),A.push(JH(a,{binSuffix:"end"})),IY(a,s)&&A.push(JH(a,{binSuffix:"range"})),mM(s)){var E={field:"".concat(d,"_end")};o["".concat(s,"2")]=E}B.bin="binned",hM(s)||(B.type=MT)}else if(l){r.push({timeUnit:l,field:g,as:d});var Q=_H(a)&&a.type!==LT&&"time";Q&&("text"===s||"tooltip"===s?B.formatType=Q:!function(e){return!!EM[e]}(s)?mM(s)&&(B.axis=Object.assign({formatType:Q},B.axis)):B.legend=Object.assign({formatType:Q},B.legend))}o[s]=B}else A.push(g),o[s]=e[s]}else o[s]=e[s]})),{bins:n,timeUnits:r,aggregate:i,groupby:A,encoding:o}}function FY(e,t,A,n){return y_(e).reduce((function(r,i){if(!IM(i))return tT(B.invalidEncodingChannel(i)),r;var o=e[i];if("angle"!==i||"arc"!==t||e.theta||(tT(B.REPLACE_ANGLE_WITH_THETA),i=W_),!function(e,t,A){var n=xM(t,A);if(!n)return!1;if("binned"===n){var r=e["x2"===t?"x":"y"];return!!(DH(r)&&DH(e[t])&&KM(r.bin))}return!0}(e,i,t))return tT(B.incompatibleChannel(i,t)),r;if("size"===i&&"line"===t){var a=AY(e[i]);if(null===a||void 0===a?void 0:a.aggregate)return tT(B.LINE_WITH_VARYING_SIZE),r}if(i===q_&&(A?"fill"in e:"stroke"in e))return tT(B.droppingColor("encoding",{fill:"fill"in e,stroke:"stroke"in e})),r;if("detail"===i||"order"===i&&!kU(o)&&!MH(o)||"tooltip"===i&&kU(o))o&&(r[i]=OU(o).reduce((function(e,t){return DH(t)?e.push(oY(t,i)):tT(B.emptyFieldDef(t,i)),e}),[]));else{if("tooltip"===i&&null===o)r[i]=null;else if(!DH(o)&&!kH(o)&&!MH(o)&&!SH(o)&&!nO(o))return tT(B.emptyFieldDef(o,i)),r;r[i]=rY(o,i,n)}return r}),{})}function RY(e,t){var A,n={},r=Object(ut.a)(y_(e));try{for(r.s();!(A=r.n()).done;){var i=A.value,o=rY(e[i],i,t,{compositeMark:!0});n[i]=o}}catch(a){r.e(a)}finally{r.f()}return n}function DY(e){var t,A=[],n=Object(ut.a)(y_(e));try{for(n.s();!(t=n.n()).done;){var r=t.value;if(bY(e,r)){var i,o=OU(e[r]),a=Object(ut.a)(o);try{for(a.s();!(i=a.n()).done;){var s=i.value;DH(s)?A.push(s):FH(s)&&A.push(s.condition)}}catch(g){a.e(g)}finally{a.f()}}}}catch(g){n.e(g)}finally{n.f()}return A}function GY(e,t,A){if(e){var n,r=Object(ut.a)(y_(e));try{for(r.s();!(n=r.n()).done;){var i=n.value,o=e[i];if(kU(o)){var a,s=Object(ut.a)(o);try{for(s.s();!(a=s.n()).done;){var g=a.value;t.call(A,g,i)}}catch(c){s.e(c)}finally{s.f()}}else t.call(A,o,i)}}catch(c){r.e(c)}finally{r.f()}}}function kY(e,t){return y_(t).reduce((function(A,n){switch(n){case"x":case"y":case"href":case"description":case"url":case"x2":case"y2":case W_:case X_:case K_:case"radius2":case"latitude":case"longitude":case"latitude2":case"longitude2":case"text":case eM:case"angle":case"tooltip":return A;case"order":if("line"===e||"trail"===e)return A;case"detail":case"key":var r=t[n];if(kU(r)||DH(r)){var i,o=Object(ut.a)(OU(r));try{for(o.s();!(i=o.n()).done;){var a=i.value;a.aggregate||A.push(JH(a,{}))}}catch(g){o.e(g)}finally{o.f()}}return A;case"size":if("trail"===e)return A;case q_:case z_:case $_:case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeDash":case"strokeWidth":var s=AY(t[n]);return s&&!s.aggregate&&A.push(JH(s,{})),A}}),[])}var xY=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function NY(e,t,A){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if("tooltip"in A)return{tooltip:A.tooltip};var r=e.map((function(e){var A=e.fieldPrefix,r=e.titlePrefix,i=n?" of ".concat(UY(t)):"";return{field:A+t.field,type:t.type,title:nO(r)?{signal:"".concat(r,'"').concat(escape(i),'"')}:r+i}})),i=DY(A).map(HH);return{tooltip:[].concat(Object(zn.a)(r),Object(zn.a)(h_(i,s_)))}}function UY(e){return M_(e.title,e.field)}function _Y(e,t,A,n,r){var i=A.scale,o=A.axis;return function(a){var s=a.partName,g=a.mark,c=a.positionPrefix,u=a.endPositionPrefix,l=void 0===u?void 0:u,I=a.extraEncoding,C=void 0===I?{}:I,h=UY(A);return MY(e,s,r,{mark:g,encoding:Object.assign(Object.assign(Object.assign(Object($n.a)({},t,Object.assign(Object.assign(Object.assign({field:"".concat(c,"_").concat(A.field),type:A.type},void 0!==h?{title:h}:{}),void 0!==i?{scale:i}:{}),void 0!==o?{axis:o}:{})),JU(l)?Object($n.a)({},"".concat(t,"2"),{field:"".concat(l,"_").concat(A.field)}):{}),n),C)})}}function MY(e,t,A,n){var r=e.clip,i=e.color,o=e.opacity,a=e.type;return e[t]||void 0===e[t]&&A[t]?[Object.assign(Object.assign({},n),{mark:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},A[t]),r?{clip:r}:{}),i?{color:i}:{}),o?{opacity:o}:{}),TZ(n.mark)?n.mark:{type:n.mark}),{style:"".concat(a,"-").concat(t)}),HU(e[t])?{}:e[t])})]:[]}function OY(e,t,A){var n=e.encoding,r="vertical"===t?"y":"x",i=n[r],o=n["".concat(r,"2")],a=n["".concat(r,"Error")],s=n["".concat(r,"Error2")];return{continuousAxisChannelDef:LY(i,A),continuousAxisChannelDef2:LY(o,A),continuousAxisChannelDefError:LY(a,A),continuousAxisChannelDefError2:LY(s,A),continuousAxis:r}}function LY(e,t){if(null===e||void 0===e?void 0:e.aggregate){var A=e.aggregate,n=xY(e,["aggregate"]);return A!==t&&tT(B.errorBarContinuousAxisHasCustomizedAggregate(A,t)),n}return e}function TY(e,t){var A=e.mark,n=e.encoding,r=n.x,i=n.y;if(TZ(A)&&A.orient)return A.orient;if(xH(r)){if(xH(i)){var o=DH(r)&&r.aggregate,a=DH(i)&&i.aggregate;if(o||a!==t){if(a||o!==t){if(o===t&&a===t)throw new Error("Both x and y cannot have aggregate");return cY(i)&&!cY(r)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(xH(i))return"vertical";throw new Error("Need a valid continuous axis for ".concat(t,"s"))}var ZY=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},HY=new vY("boxplot",JY);function YY(e){return YU(e)?"tukey":e}function JY(e,t){var A,n,r=t.config,i=e=Object.assign(Object.assign({},e),{encoding:RY(e.encoding,r)}),o=i.mark,a=(i.encoding,i.params),s=(i.projection,ZY(e,["mark","encoding","params","projection"])),g=TZ(o)?o:{type:o};a&&tT(B.selectionNotSupported("boxplot"));var c=null!==(A=g.extent)&&void 0!==A?A:r.boxplot.extent,u=dO("size",g,r),l=YY(c),I=function(e,t,A){var n=TY(e,"boxplot"),r=OY(e,n,"boxplot"),i=r.continuousAxisChannelDef,o=r.continuousAxis,a=i.field,s=YY(t),g=[].concat(Object(zn.a)(jY(a)),[{op:"median",field:a,as:"mid_box_".concat(a)},{op:"min",field:a,as:("min-max"===s?"lower_whisker_":"min_")+a},{op:"max",field:a,as:("min-max"===s?"upper_whisker_":"max_")+a}]),c="min-max"===s||"tukey"===s?[]:[{calculate:'datum["upper_box_'.concat(a,'"] - datum["lower_box_').concat(a,'"]'),as:"iqr_".concat(a)},{calculate:'min(datum["upper_box_'.concat(a,'"] + datum["iqr_').concat(a,'"] * ').concat(t,', datum["max_').concat(a,'"])'),as:"upper_whisker_".concat(a)},{calculate:'max(datum["lower_box_'.concat(a,'"] - datum["iqr_').concat(a,'"] * ').concat(t,', datum["min_').concat(a,'"])'),as:"lower_whisker_".concat(a)}],u=e.encoding,l=o,I=(u[l],function(e){var t,A,n=e.tooltip,r=xY(e,["tooltip"]);if(!n)return{filteredEncoding:r};if(kU(n)){var i,o=Object(ut.a)(n);try{for(o.s();!(i=o.n()).done;){var a=i.value;a.aggregate?(t||(t=[]),t.push(a)):(A||(A=[]),A.push(a))}}catch(s){o.e(s)}finally{o.f()}t&&(r.tooltip=t)}else n.aggregate?r.tooltip=n:A=n;return kU(A)&&1===A.length&&(A=A[0]),{customTooltipWithoutAggregatedField:A,filteredEncoding:r}}(ZY(u,["symbol"===typeof l?l:l+""]))),C=I.customTooltipWithoutAggregatedField,h=SY(I.filteredEncoding,A),f=h.bins,d=h.timeUnits,B=h.aggregate,p=h.groupby,E=h.encoding,Q="vertical"===n?"horizontal":"vertical",y=n,v=[].concat(Object(zn.a)(f),Object(zn.a)(d),[{aggregate:[].concat(Object(zn.a)(B),Object(zn.a)(g)),groupby:p}],c);return{bins:f,timeUnits:d,transform:v,groupby:p,aggregate:B,continuousAxisChannelDef:i,continuousAxis:o,encodingWithoutContinuousAxis:E,ticksOrient:Q,boxOrient:y,customTooltipWithoutAggregatedField:C}}(e,c,r),C=I.bins,h=I.timeUnits,f=I.transform,d=I.continuousAxisChannelDef,p=I.continuousAxis,E=I.groupby,Q=I.aggregate,y=I.encodingWithoutContinuousAxis,v=I.ticksOrient,m=I.boxOrient,b=I.customTooltipWithoutAggregatedField,w=y.color,S=y.size,F=ZY(y,["color","size"]),R=function(e){return _Y(g,p,d,e,r.boxplot)},D=R(F),G=R(y),k=R(Object.assign(Object.assign({},F),S?{size:S}:{})),x=NY([{fieldPrefix:"min-max"===l?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:"min-max"===l?"lower_whisker_":"min_",titlePrefix:"Min"}],d,y),N={type:"tick",color:"black",opacity:1,orient:v,invalid:null,aria:!1},U="min-max"===l?x:NY([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],d,y),_=[].concat(Object(zn.a)(D({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:U})),Object(zn.a)(D({partName:"rule",mark:{type:"rule",invalid:null,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:U})),Object(zn.a)(D({partName:"ticks",mark:N,positionPrefix:"lower_whisker",extraEncoding:U})),Object(zn.a)(D({partName:"ticks",mark:N,positionPrefix:"upper_whisker",extraEncoding:U}))),M=[].concat(Object(zn.a)("tukey"!==l?_:[]),Object(zn.a)(G({partName:"box",mark:Object.assign(Object.assign({type:"bar"},u?{size:u}:{}),{orient:m,invalid:null,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:x})),Object(zn.a)(k({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:null},xU(r.boxplot.median)&&r.boxplot.median.color?{color:r.boxplot.median.color}:{}),u?{size:u}:{}),{orient:v,aria:!1}),positionPrefix:"mid_box",extraEncoding:x})));if("min-max"===l)return Object.assign(Object.assign({},s),{transform:(null!==(n=s.transform)&&void 0!==n?n:[]).concat(f),layer:M});var O,L,T='datum["lower_box_'.concat(d.field,'"]'),Z='datum["upper_box_'.concat(d.field,'"]'),H="(".concat(Z," - ").concat(T,")"),Y="".concat(T," - ").concat(c," * ").concat(H),J="".concat(Z," + ").concat(c," * ").concat(H),j='datum["'.concat(d.field,'"]'),P={joinaggregate:jY(d.field),groupby:E},V={transform:[{filter:"(".concat(Y," <= ").concat(j,") && (").concat(j," <= ").concat(J,")")},{aggregate:[{op:"min",field:d.field,as:"lower_whisker_".concat(d.field)},{op:"max",field:d.field,as:"upper_whisker_".concat(d.field)},{op:"min",field:"lower_box_".concat(d.field),as:"lower_box_".concat(d.field)},{op:"max",field:"upper_box_".concat(d.field),as:"upper_box_".concat(d.field)}].concat(Object(zn.a)(Q)),groupby:E}],layer:_},K=(F.tooltip,ZY(F,["tooltip"])),W=d.scale,X=d.axis,q=UY(d),z=o_(X,["title"]),$=MY(g,"outliers",r.boxplot,{transform:[{filter:"(".concat(j," < ").concat(Y,") || (").concat(j," > ").concat(J,")")}],mark:"point",encoding:Object.assign(Object.assign(Object.assign(Object($n.a)({},p,Object.assign(Object.assign(Object.assign({field:d.field,type:d.type},void 0!==q?{title:q}:{}),void 0!==W?{scale:W}:{}),Q_(z)?{}:{axis:z})),K),w?{color:w}:{}),b?{tooltip:b}:{})})[0],ee=[].concat(Object(zn.a)(C),Object(zn.a)(h),[P]);$?O={transform:ee,layer:[$,V]}:(L=(O=V).transform).unshift.apply(L,Object(zn.a)(ee));return Object.assign(Object.assign({},s),{layer:[O,{transform:f,layer:M}]})}function jY(e){return[{op:"q1",field:e,as:"lower_box_".concat(e)},{op:"q3",field:e,as:"upper_box_".concat(e)}]}var PY=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},VY=new vY("errorbar",KY);function KY(e,t){var A=t.config,n=XY(e=Object.assign(Object.assign({},e),{encoding:RY(e.encoding,A)}),"errorbar",A),r=n.transform,i=n.continuousAxisChannelDef,o=n.continuousAxis,a=n.encodingWithoutContinuousAxis,s=n.ticksOrient,g=n.markDef,c=n.outerSpec,u=n.tooltipEncoding;delete a.size;var l=_Y(g,o,i,a,A.errorbar),I=g.thickness,C=g.size,h=Object.assign(Object.assign({type:"tick",orient:s,aria:!1},void 0!==I?{thickness:I}:{}),void 0!==C?{size:C}:{}),f=[].concat(Object(zn.a)(l({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:u})),Object(zn.a)(l({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:u})),Object(zn.a)(l({partName:"rule",mark:Object.assign({type:"rule",ariaRoleDescription:"errorbar"},void 0!==I?{size:I}:{}),positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u})));return Object.assign(Object.assign(Object.assign({},c),{transform:r}),f.length>1?{layer:f}:Object.assign({},f[0]))}function WY(e,t){var A=e.encoding;if(function(e){return(UH(e.x)||UH(e.y))&&!UH(e.x2)&&!UH(e.y2)&&!UH(e.xError)&&!UH(e.xError2)&&!UH(e.yError)&&!UH(e.yError2)}(A))return{orient:TY(e,t),inputType:"raw"};var n=function(e){return UH(e.x2)||UH(e.y2)}(A),r=function(e){return UH(e.xError)||UH(e.xError2)||UH(e.yError)||UH(e.yError2)}(A),i=A.x,o=A.y;if(n){if(r)throw new Error("".concat(t," cannot be both type aggregated-upper-lower and aggregated-error"));var a=A.x2,s=A.y2;if(UH(a)&&UH(s))throw new Error("".concat(t," cannot have both x2 and y2"));if(UH(a)){if(xH(i))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error("Both x and x2 have to be quantitative in ".concat(t))}if(UH(s)){if(xH(o))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error("Both y and y2 have to be quantitative in ".concat(t))}throw new Error("No ranged axis")}var g=A.xError,c=A.xError2,u=A.yError,l=A.yError2;if(UH(c)&&!UH(g))throw new Error("".concat(t," cannot have xError2 without xError"));if(UH(l)&&!UH(u))throw new Error("".concat(t," cannot have yError2 without yError"));if(UH(g)&&UH(u))throw new Error("".concat(t," cannot have both xError and yError with both are quantiative"));if(UH(g)){if(xH(i))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(UH(u)){if(xH(o))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}function XY(e,t,A){var n,r=e.mark,i=e.encoding,o=e.params,a=(e.projection,PY(e,["mark","encoding","params","projection"])),s=TZ(r)?r:{type:r};o&&tT(B.selectionNotSupported(t));var g=WY(e,t),c=g.orient,u=g.inputType,l=OY(e,c,t),I=l.continuousAxisChannelDef,C=l.continuousAxisChannelDef2,h=l.continuousAxisChannelDefError,f=l.continuousAxisChannelDefError2,d=l.continuousAxis,p=function(e,t,A,n,r,i,o,a){var s,g=[],c=[],u=t.field,l=!1;if("raw"===i){var I,C,h,f=e.center?e.center:e.extent?"iqr"===e.extent?"median":"mean":a.errorbar.center,d=e.extent?e.extent:"mean"===f?"stderr":"iqr";if("median"===f!==("iqr"===d)&&tT(B.errorBarCenterIsUsedWithWrongExtent(f,d,o)),"stderr"===d||"stdev"===d)g=[{op:d,field:u,as:"extent_".concat(u)},{op:f,field:u,as:"center_".concat(u)}],c=[{calculate:'datum["center_'.concat(u,'"] + datum["extent_').concat(u,'"]'),as:"upper_".concat(u)},{calculate:'datum["center_'.concat(u,'"] - datum["extent_').concat(u,'"]'),as:"lower_".concat(u)}],s=[{fieldPrefix:"center_",titlePrefix:R_(f)},{fieldPrefix:"upper_",titlePrefix:qY(f,d,"+")},{fieldPrefix:"lower_",titlePrefix:qY(f,d,"-")}],l=!0;else"ci"===d?(I="mean",C="ci0",h="ci1"):(I="median",C="q1",h="q3"),g=[{op:C,field:u,as:"lower_".concat(u)},{op:h,field:u,as:"upper_".concat(u)},{op:I,field:u,as:"center_".concat(u)}],s=[{fieldPrefix:"upper_",titlePrefix:qH({field:u,aggregate:h,type:"quantitative"},a,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:qH({field:u,aggregate:C,type:"quantitative"},a,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:qH({field:u,aggregate:I,type:"quantitative"},a,{allowDisabling:!1})}]}else{(e.center||e.extent)&&tT(B.errorBarCenterAndExtentAreNotNeeded(e.center,e.extent)),"aggregated-upper-lower"===i?(s=[],c=[{calculate:'datum["'.concat(A.field,'"]'),as:"upper_".concat(u)},{calculate:'datum["'.concat(u,'"]'),as:"lower_".concat(u)}]):"aggregated-error"===i&&(s=[{fieldPrefix:"",titlePrefix:u}],c=[{calculate:'datum["'.concat(u,'"] + datum["').concat(n.field,'"]'),as:"upper_".concat(u)}],r?c.push({calculate:'datum["'.concat(u,'"] + datum["').concat(r.field,'"]'),as:"lower_".concat(u)}):c.push({calculate:'datum["'.concat(u,'"] - datum["').concat(n.field,'"]'),as:"lower_".concat(u)}));var p,E=Object(ut.a)(c);try{for(E.s();!(p=E.n()).done;){var Q=p.value;s.push({fieldPrefix:Q.as.substring(0,6),titlePrefix:N_(N_(Q.calculate,'datum["',""),'"]',"")})}}catch(y){E.e(y)}finally{E.f()}}return{postAggregateCalculates:c,errorBarSpecificAggregate:g,tooltipSummary:s,tooltipTitleWithFieldName:l}}(s,I,C,h,f,u,t,A),E=p.errorBarSpecificAggregate,Q=p.postAggregateCalculates,y=p.tooltipSummary,v=p.tooltipTitleWithFieldName,m=i,b=d,w=(m[b],"x"===d?"x2":"y2"),S=(m[w],"x"===d?"xError":"yError"),F=(m[S],"x"===d?"xError2":"yError2"),R=(m[F],SY(PY(m,["symbol"===typeof b?b:b+"","symbol"===typeof w?w:w+"","symbol"===typeof S?S:S+"","symbol"===typeof F?F:F+""]),A)),D=R.bins,G=R.timeUnits,k=R.aggregate,x=R.groupby,N=R.encoding,U=[].concat(Object(zn.a)(k),Object(zn.a)(E)),_="raw"!==u?[]:x,M=NY(y,I,N,v);return{transform:[].concat(Object(zn.a)(null!==(n=a.transform)&&void 0!==n?n:[]),Object(zn.a)(D),Object(zn.a)(G),Object(zn.a)(0===U.length?[]:[{aggregate:U,groupby:_}]),Object(zn.a)(Q)),groupby:_,continuousAxisChannelDef:I,continuousAxis:d,encodingWithoutContinuousAxis:N,ticksOrient:"vertical"===c?"horizontal":"vertical",markDef:s,outerSpec:a,tooltipEncoding:M}}function qY(e,t,A){return"".concat(R_(e)," ").concat(A," ").concat(t)}var zY=new vY("errorband",$Y);function $Y(e,t){var A=t.config,n=XY(e=Object.assign(Object.assign({},e),{encoding:RY(e.encoding,A)}),"errorband",A),r=n.transform,i=n.continuousAxisChannelDef,o=n.continuousAxis,a=n.encodingWithoutContinuousAxis,s=n.markDef,g=n.outerSpec,c=n.tooltipEncoding,u=s,l=_Y(u,o,i,a,A.errorband),I=void 0!==e.encoding.x&&void 0!==e.encoding.y,C={type:I?"area":"rect"},h={type:I?"line":"rule"},f=Object.assign(Object.assign({},u.interpolate?{interpolate:u.interpolate}:{}),u.tension&&u.interpolate?{tension:u.tension}:{});return I?(C=Object.assign(Object.assign(Object.assign({},C),f),{ariaRoleDescription:"errorband"}),h=Object.assign(Object.assign(Object.assign({},h),f),{aria:!1})):u.interpolate?tT(B.errorBand1DNotSupport("interpolate")):u.tension&&tT(B.errorBand1DNotSupport("tension")),Object.assign(Object.assign({},g),{transform:r,layer:[].concat(Object(zn.a)(l({partName:"band",mark:C,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:c})),Object(zn.a)(l({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:c})),Object(zn.a)(l({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:c})))})}var eJ={};function tJ(e,t,A){var n=new vY(e,t);eJ[e]={normalizer:n,parts:A}}tJ("boxplot",JY,["box","median","outliers","rule","ticks"]),tJ("errorbar",KY,["ticks","rule"]),tJ("errorband",$Y,["band","borders"]);var AJ=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],nJ={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},rJ={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},iJ=y_(nJ),oJ=y_(rJ),aJ=y_({header:1,headerRow:1,headerColumn:1,headerFacet:1}),sJ=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],gJ={aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1},cJ=(y_(gJ),{point:{on:"click",fields:["_vgsid_"],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[mousedown, window:mouseup] > window:mousemove!",encodings:["x","y"],translate:"[mousedown, window:mouseup] > window:mousemove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}});function uJ(e){return!!e&&("legend"===e||!!e.legend)}function lJ(e){return uJ(e)&&xU(e)}function IJ(e){return!!e.select}var CJ=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function hJ(e){var t,A=[],n=Object(ut.a)(e||[]);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(!IJ(r)){var i=r.expr,o=r.bind,a=CJ(r,["expr","bind"]);if(o&&i){var s=Object.assign(Object.assign({},a),{bind:o,init:i});A.push(s)}else{var g=Object.assign(Object.assign(Object.assign({},a),i?{update:i}:{}),o?{bind:o}:{});A.push(g)}}}}catch(c){n.e(c)}finally{n.f()}return A}function fJ(e){return"concat"in e}function dJ(e){return"vconcat"in e}function BJ(e){return"hconcat"in e}function pJ(e){return xU(e)&&void 0!==e.step}function EJ(e){return e.view||e.width||e.height}var QJ=y_({align:1,bounds:1,center:1,columns:1,spacing:1});var yJ=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function vJ(e,t){var A;return null!==(A=e[t])&&void 0!==A?A:e["width"===t?"continuousWidth":"continuousHeight"]}function mJ(e,t){var A=bJ(e,t);return pJ(A)?A.step:wJ}function bJ(e,t){var A;return M_(null!==(A=e[t])&&void 0!==A?A:e["width"===t?"discreteWidth":"discreteHeight"],{step:e.step})}var wJ=20;var SJ={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:wJ},mark:{color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},arc:{},area:{},bar:PZ,circle:{},geoshape:{},image:{},line:{},point:{},rect:VZ,rule:{color:"black"},square:{},text:{color:"black"},tick:{thickness:1},trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:{pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4},projection:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:cJ,style:{},title:{},facet:{spacing:20},concat:{spacing:20}},FJ=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],RJ={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},DJ={blue:FJ[0],orange:FJ[1],red:FJ[2],teal:FJ[3],green:FJ[4],yellow:FJ[5],purple:FJ[6],pink:FJ[7],brown:FJ[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function GJ(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{signals:[{name:"color",value:xU(e)?Object.assign(Object.assign({},DJ),e):DJ}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}function kJ(e){return{signals:[{name:"fontSize",value:xU(e)?Object.assign(Object.assign({},RJ),e):RJ}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}function xJ(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}function NJ(e){var t,A=y_(e||{}),n={},r=Object(ut.a)(A);try{for(r.s();!(t=r.n()).done;){var i=t.value,o=e[i];n[i]=hY(o)?cO(o):uO(o)}}catch(a){r.e(a)}finally{r.f()}return n}function UJ(e){var t,A=y_(e),n={},r=Object(ut.a)(A);try{for(r.s();!(t=r.n()).done;){var i=t.value;n[i]=NJ(e[i])}}catch(o){r.e(o)}finally{r.f()}return n}var _J=[].concat(Object(zn.a)(YZ),Object(zn.a)(QY),Object(zn.a)(aJ),["background","padding","legend","lineBreak","scale","style","title","view"]);function MJ(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.color,A=e.font,n=e.fontSize,r=e.selection,i=yJ(e,["color","font","fontSize","selection"]),o=UU({},r_(SJ),A?xJ(A):{},t?GJ(t):{},n?kJ(n):{},i||{});r&&Object(ue.lb)(o,"selection",r,!0);for(var a=o_(o,_J),s=0,g=["background","lineBreak","padding"];s<g.length;s++){var c=g[s];o[c]&&(a[c]=uO(o[c]))}var u,l=Object(ut.a)(YZ);try{for(l.s();!(u=l.n()).done;){var I=u.value;o[I]&&(a[I]=$M(o[I]))}}catch(E){l.e(E)}finally{l.f()}var C,h=Object(ut.a)(QY);try{for(h.s();!(C=h.n()).done;){var f=C.value;o[f]&&(a[f]=NJ(o[f]))}}catch(E){h.e(E)}finally{h.f()}var d,B=Object(ut.a)(aJ);try{for(B.s();!(d=B.n()).done;){var p=d.value;o[p]&&(a[p]=$M(o[p]))}}catch(E){B.e(E)}finally{B.f()}return o.legend&&(a.legend=$M(o.legend)),o.scale&&(a.scale=$M(o.scale)),o.style&&(a.style=UJ(o.style)),o.title&&(a.title=$M(o.title)),o.view&&(a.view=$M(o.view)),a}var OJ=["view"].concat(Object(zn.a)(LZ)),LJ=["color","fontSize","background","padding","facet","concat","numberFormat","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],TJ=Object.assign({view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"]},{area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]});function ZJ(e){e=r_(e);var t,A=Object(ut.a)(LJ);try{for(A.s();!(t=A.n()).done;){delete e[t.value]}}catch(v){A.e(v)}finally{A.f()}if(e.axis)for(var n in e.axis)hY(e.axis[n])&&delete e.axis[n];if(e.legend){var r,i=Object(ut.a)(AJ);try{for(i.s();!(r=i.n()).done;){var o=r.value;delete e.legend[o]}}catch(v){i.e(v)}finally{i.f()}}if(e.mark){var a,s=Object(ut.a)(HZ);try{for(s.s();!(a=s.n()).done;){var g=a.value;delete e.mark[g]}}catch(v){s.e(v)}finally{s.f()}e.mark.tooltip&&xU(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(hJ(e.params)),delete e.params);var c,u=Object(ut.a)(OJ);try{for(u.s();!(c=u.n()).done;){var l,I=c.value,C=Object(ut.a)(HZ);try{for(C.s();!(l=C.n()).done;){var h=l.value;delete e[I][h]}}catch(v){C.e(v)}finally{C.f()}var f=TJ[I];if(f){var d,B=Object(ut.a)(f);try{for(B.s();!(d=B.n()).done;){var p=d.value;delete e[I][p]}}catch(v){B.e(v)}finally{B.f()}}HJ(e,I)}}catch(v){u.e(v)}finally{u.f()}var E,Q=Object(ut.a)(y_(eJ));try{for(Q.s();!(E=Q.n()).done;){delete e[E.value]}}catch(v){Q.e(v)}finally{Q.f()}for(var y in function(e){var t=tO(e.title),A=t.titleMarkConfig,n=t.subtitleMarkConfig,r=t.subtitle;Q_(A)||(e.style["group-title"]=Object.assign(Object.assign({},e.style["group-title"]),A));Q_(n)||(e.style["group-subtitle"]=Object.assign(Object.assign({},e.style["group-subtitle"]),n));Q_(r)?delete e.title:e.title=r}(e),e)xU(e[y])&&Q_(e[y])&&delete e[y];return Q_(e)?void 0:e}function HJ(e,t,A,n){var r=n?e[t][n]:e[t];"view"===t&&(A="cell");var i=Object.assign(Object.assign({},r),e.style[null!==A&&void 0!==A?A:t]);Q_(i)||(e.style[null!==A&&void 0!==A?A:t]=i),n||delete e[t]}function YJ(e){return"layer"in e}var JJ=A(16),jJ=A(17),PJ=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},VJ=function(){function e(){Object(y.a)(this,e)}return Object(v.a)(e,[{key:"map",value:function(e,t){return EH(e)?this.mapFacet(e,t):function(e){return"repeat"in e}(e)?this.mapRepeat(e,t):BJ(e)?this.mapHConcat(e,t):dJ(e)?this.mapVConcat(e,t):fJ(e)?this.mapConcat(e,t):this.mapLayerOrUnit(e,t)}},{key:"mapLayerOrUnit",value:function(e,t){if(YJ(e))return this.mapLayer(e,t);if(yY(e))return this.mapUnit(e,t);throw new Error(B.invalidSpec(e))}},{key:"mapLayer",value:function(e,t){var A=this;return Object.assign(Object.assign({},e),{layer:e.layer.map((function(e){return A.mapLayerOrUnit(e,t)}))})}},{key:"mapHConcat",value:function(e,t){var A=this;return Object.assign(Object.assign({},e),{hconcat:e.hconcat.map((function(e){return A.map(e,t)}))})}},{key:"mapVConcat",value:function(e,t){var A=this;return Object.assign(Object.assign({},e),{vconcat:e.vconcat.map((function(e){return A.map(e,t)}))})}},{key:"mapConcat",value:function(e,t){var A=this,n=e.concat,r=PJ(e,["concat"]);return Object.assign(Object.assign({},r),{concat:n.map((function(e){return A.map(e,t)}))})}},{key:"mapFacet",value:function(e,t){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,t)})}},{key:"mapRepeat",value:function(e,t){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,t)})}}]),e}(),KJ={zero:1,center:1,normalize:1};function WJ(e){return e in KJ}var XJ=new Set([vZ,bZ,mZ,DZ,FZ,NZ,UZ,SZ,GZ,kZ]),qJ=new Set([bZ,mZ,vZ]);function zJ(e){return DH(e)&&"quantitative"===GH(e)&&!e.bin}function $J(e,t){var A,n,r="x"===t?"y":"radius",i=e[t],o=e[r];if(DH(i)&&DH(o))if(zJ(i)&&zJ(o)){if(i.stack)return t;if(o.stack)return r;var a=DH(i)&&!!i.aggregate;if(a!==(DH(o)&&!!o.aggregate))return a?t:r;var s=null===(A=i.scale)||void 0===A?void 0:A.type,g=null===(n=o.scale)||void 0===n?void 0:n.type;if(s&&"linear"!==s)return r;if(g&&"linear"!==g)return t}else{if(zJ(i))return t;if(zJ(o))return r}else{if(zJ(i))return t;if(zJ(o))return r}}function ej(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function tj(e,t){var A,n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=TZ(e)?e.type:e;if(!XJ.has(i))return null;var o=$J(t,"x")||$J(t,"theta");if(!o)return null;var a=t[o],s=DH(a)?JH(a,{}):void 0,g=ej(o),c=t[g],u=DH(c)?JH(c,{}):void 0;u===s&&(u=void 0,c=void 0,g=void 0);var l,I=QM.reduce((function(e,A){if("tooltip"!==A&&bY(t,A)){var n,r=t[A],i=Object(ut.a)(OU(r));try{for(i.s();!(n=i.n()).done;){var o=AY(n.value);if(!o.aggregate){var a=JH(o,{});a&&a===u||e.push({channel:A,fieldDef:o})}}}catch(s){i.e(s)}finally{i.f()}}return e}),[]);if(void 0!==a.stack?l=HU(a.stack)?a.stack?"zero":null:a.stack:qJ.has(i)&&(l="zero"),!l||!WJ(l))return null;if(wY(t)&&0===I.length)return null;if((null===(A=null===a||void 0===a?void 0:a.scale)||void 0===A?void 0:A.type)&&(null===(n=null===a||void 0===a?void 0:a.scale)||void 0===n?void 0:n.type)!==JT){if(r.disallowNonLinearStack)return null;tT(B.cannotStackNonLinearScale(a.scale.type))}return UH(t[BM(o)])?(void 0!==a.stack&&tT(B.cannotStackRangedMark(o)),null):(DH(a)&&a.aggregate&&!c_(JM,a.aggregate)&&tT(B.stackNonSummativeAggregate(a.aggregate)),{groupbyChannel:c?g:void 0,groupbyField:u,fieldChannel:o,impute:null!==a.impute&&MZ(i),stackBy:I,offset:l})}var Aj=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function nj(e){e.point,e.line;var t=Aj(e,["point","line"]);return y_(t).length>1?t:t.type}function rj(e){for(var t=0,A=["line","area","rule","trail"];t<A.length;t++){var n=A[t];e[n]&&(e=Object.assign(Object.assign({},e),Object($n.a)({},n,o_(e[n],["point","line"]))))}return e}function ij(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=arguments.length>2?arguments[2]:void 0;return"transparent"===e.point?{opacity:0}:e.point?xU(e.point)?e.point:{}:void 0!==e.point?null:t.point||A.shape?xU(t.point)?t.point:{}:void 0}function oj(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.line?!0===e.line?{}:e.line:void 0!==e.line?null:t.line?!0===t.line?{}:t.line:void 0}var aj=function(){function e(){Object(y.a)(this,e),this.name="path-overlay"}return Object(v.a)(e,[{key:"hasMatchingType",value:function(e,t){if(yY(e)){var A=e.mark,n=e.encoding,r=TZ(A)?A:{type:A};switch(r.type){case"line":case"rule":case"trail":return!!ij(r,t[r.type],n);case"area":return!!ij(r,t[r.type],n)||!!oj(r,t[r.type])}}return!1}},{key:"run",value:function(e,t,A){var n=t.config,r=e.params,i=e.projection,o=e.mark,a=e.encoding,s=Aj(e,["params","projection","mark","encoding"]),g=RY(a,n),c=TZ(o)?o:{type:o},u=ij(c,n[c.type],g),l="area"===c.type&&oj(c,n[c.type]),I=[Object.assign(Object.assign({},r?{params:r}:{}),{mark:nj(Object.assign(Object.assign({},"area"===c.type&&void 0===c.opacity&&void 0===c.fillOpacity?{opacity:.7}:{}),c)),encoding:o_(g,["shape"])})],C=tj(c,g),h=g;if(C){var f=C.fieldChannel,d=C.offset;h=Object.assign(Object.assign({},g),Object($n.a)({},f,Object.assign(Object.assign({},g[f]),d?{stack:d}:{})))}return l&&I.push(Object.assign(Object.assign({},i?{projection:i}:{}),{mark:Object.assign(Object.assign({type:"line"},i_(c,["clip","interpolate","tension","tooltip"])),l),encoding:h})),u&&I.push(Object.assign(Object.assign({},i?{projection:i}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:!0},i_(c,["clip","tooltip"])),u),encoding:h})),A(Object.assign(Object.assign({},s),{layer:I}),Object.assign(Object.assign({},t),{config:rj(n)}))}}]),e}(),sj=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function gj(e,t){return t?BH(e)?hj(e,t):lj(e,t):e}function cj(e,t){return t?hj(e,t):e}function uj(e,t,A){var n,r=t[e];return(n=r)&&!JU(n)&&"repeat"in n?r.repeat in A?Object.assign(Object.assign({},t),Object($n.a)({},e,A[r.repeat])):void tT(B.noSuchRepeatedValue(r.repeat)):t}function lj(e,t){if(void 0!==(e=uj("field",e,t))){if(null===e)return null;if(vH(e)&&fH(e.sort)){var A=uj("field",e.sort,t);e=Object.assign(Object.assign({},e),A?{sort:A}:{})}return e}}function Ij(e,t){if(DH(e))return lj(e,t);var A=uj("datum",e,t);return A===e||A.type||(A.type="nominal"),A}function Cj(e,t){if(!UH(e)){if(RH(e)){var A=Ij(e.condition,t);if(A)return Object.assign(Object.assign({},e),{condition:A});e.condition;return sj(e,["condition"])}return e}var n=Ij(e,t);return n||(SH(e)?{condition:e.condition}:void 0)}function hj(e,t){var A={};for(var n in e)if(ZU(e,n)){var r=e[n];if(kU(r))A[n]=r.map((function(e){return Cj(e,t)})).filter((function(e){return e}));else{var i=Cj(r,t);void 0!==i&&(A[n]=i)}}return A}var fj=function(){function e(){Object(y.a)(this,e),this.name="RuleForRangedLine"}return Object(v.a)(e,[{key:"hasMatchingType",value:function(e){if(yY(e)){var t=e.encoding,A=e.mark;if("line"===A||TZ(A)&&"line"===A.type){var n,r=Object(ut.a)(CM);try{for(r.s();!(n=r.n()).done;){var i=n.value,o=t[fM(i)];if(t[i]&&(DH(o)&&!KM(o.bin)||kH(o)))return!0}}catch(a){r.e(a)}finally{r.f()}}}return!1}},{key:"run",value:function(e,t,A){var n=e.encoding,r=e.mark;return tT(B.lineWithRange(!!n.x2,!!n.y2)),A(Object.assign(Object.assign({},e),{mark:xU(r)?Object.assign(Object.assign({},r),{type:"rule"}):"rule"}),t)}}]),e}(),dj=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},Bj=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){var e;return Object(y.a)(this,A),(e=t.apply(this,arguments)).nonFacetUnitNormalizers=[HY,VY,zY,new aj,new fj],e}return Object(v.a)(A,[{key:"map",value:function(e,t){if(yY(e)){var n=bY(e.encoding,P_),r=bY(e.encoding,V_),i=bY(e.encoding,"facet");if(n||r||i)return this.mapFacetedUnit(e,t)}return Object(jJ.a)(Object(JJ.a)(A.prototype),"map",this).call(this,e,t)}},{key:"mapUnit",value:function(e,t){var A=t.parentEncoding,n=t.parentProjection,r=cj(e.encoding,t.repeater),i=Object.assign(Object.assign({},e),r?{encoding:r}:{});if(A||n)return this.mapUnitWithParentEncodingOrProjection(i,t);var o,a=this.mapLayerOrUnit.bind(this),s=Object(ut.a)(this.nonFacetUnitNormalizers);try{for(s.s();!(o=s.n()).done;){var g=o.value;if(g.hasMatchingType(i,t.config))return g.run(i,t,a)}}catch(c){s.e(c)}finally{s.f()}return i}},{key:"mapRepeat",value:function(e,t){return function(e){return!kU(e.repeat)&&e.repeat.layer}(e)?this.mapLayerRepeat(e,t):this.mapNonLayerRepeat(e,t)}},{key:"mapLayerRepeat",value:function(e,t){var A=this,n=e.repeat,r=e.spec,i=dj(e,["repeat","spec"]),o=n.row,a=n.column,s=n.layer,g=t.repeater,c=void 0===g?{}:g,u=t.repeaterPrefix,l=void 0===u?"":u;return o||a?this.mapRepeat(Object.assign(Object.assign({},e),{repeat:Object.assign(Object.assign({},o?{row:o}:{}),a?{column:a}:{}),spec:{repeat:{layer:s},spec:r}}),t):Object.assign(Object.assign({},i),{layer:s.map((function(e){var n=Object.assign(Object.assign({},c),{layer:e}),i="".concat((r.name||"")+l,"child__layer_").concat(w_(e)),o=A.mapLayerOrUnit(r,Object.assign(Object.assign({},t),{repeater:n,repeaterPrefix:i}));return o.name=i,o}))})}},{key:"mapNonLayerRepeat",value:function(e,t){var A,n=e,r=n.repeat,i=n.spec,o=n.data,a=dj(e,["repeat","spec","data"]);!kU(r)&&e.columns&&(e=o_(e,["columns"]),tT(B.columnsNotSupportByRowCol("repeat")));var s,g=[],c=t.repeater,u=void 0===c?{}:c,l=t.repeaterPrefix,I=void 0===l?"":l,C=!kU(r)&&r.row||[u?u.row:null],h=!kU(r)&&r.column||[u?u.column:null],f=kU(r)&&r||[u?u.repeat:null],d=Object(ut.a)(f);try{for(d.s();!(s=d.n()).done;){var p,E=s.value,Q=Object(ut.a)(C);try{for(Q.s();!(p=Q.n()).done;){var y,v=p.value,m=Object(ut.a)(h);try{for(m.s();!(y=m.n()).done;){var b=y.value,w={repeat:E,row:v,column:b,layer:u.layer},S=(i.name||"")+I+"child__"+(kU(r)?"".concat(w_(E)):(r.row?"row_".concat(w_(v)):"")+(r.column?"column_".concat(w_(b)):"")),F=this.map(i,Object.assign(Object.assign({},t),{repeater:w,repeaterPrefix:S}));F.name=S,g.push(o_(F,["data"]))}}catch(D){m.e(D)}finally{m.f()}}}catch(D){Q.e(D)}finally{Q.f()}}}catch(D){d.e(D)}finally{d.f()}var R=kU(r)?e.columns:r.column?r.column.length:1;return Object.assign(Object.assign({data:null!==(A=i.data)&&void 0!==A?A:o,align:"all"},a),{columns:R,concat:g})}},{key:"mapFacet",value:function(e,t){return BH(e.facet)&&e.columns&&(e=o_(e,["columns"]),tT(B.columnsNotSupportByRowCol("facet"))),Object(jJ.a)(Object(JJ.a)(A.prototype),"mapFacet",this).call(this,e,t)}},{key:"mapUnitWithParentEncodingOrProjection",value:function(e,t){var A=e.encoding,n=e.projection,r=t.parentEncoding,i=t.parentProjection,o=t.config,a=Ej({parentProjection:i,projection:n}),s=pj({parentEncoding:r,encoding:cj(A,t.repeater)});return this.mapUnit(Object.assign(Object.assign(Object.assign({},e),a?{projection:a}:{}),s?{encoding:s}:{}),{config:o})}},{key:"mapFacetedUnit",value:function(e,t){var A=e.encoding,n=A.row,r=A.column,i=A.facet,o=dj(A,["row","column","facet"]),a=e.mark,s=e.width,g=e.projection,c=e.height,u=e.view,l=e.params,I=(e.encoding,dj(e,["mark","width","projection","height","view","params","encoding"])),C=this.getFacetMappingAndLayout({row:n,column:r,facet:i},t),h=C.facetMapping,f=C.layout,d=cj(o,t.repeater);return this.mapFacet(Object.assign(Object.assign(Object.assign({},I),f),{facet:h,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},s?{width:s}:{}),c?{height:c}:{}),u?{view:u}:{}),g?{projection:g}:{}),{mark:a,encoding:d}),l?{params:l}:{})}),t)}},{key:"getFacetMappingAndLayout",value:function(e,t){var A,n=e.row,r=e.column,i=e.facet;if(n||r){i&&tT(B.facetChannelDropped([].concat(Object(zn.a)(n?[P_]:[]),Object(zn.a)(r?[V_]:[]))));for(var o={},a={},s=0,g=[P_,V_];s<g.length;s++){var c=g[s],u=e[c];if(u){u.align,u.center,u.spacing,u.columns;var l=dj(u,["align","center","spacing","columns"]);o[c]=l;for(var I=0,C=["align","center","spacing"];I<C.length;I++){var h=C[I];void 0!==u[h]&&(null!==(A=a[h])&&void 0!==A||(a[h]={}),a[h][c]=u[h])}}}return{facetMapping:o,layout:a}}var f=i.align,d=i.center,p=i.spacing,E=i.columns;return{facetMapping:gj(dj(i,["align","center","spacing","columns"]),t.repeater),layout:Object.assign(Object.assign(Object.assign(Object.assign({},f?{align:f}:{}),d?{center:d}:{}),p?{spacing:p}:{}),E?{columns:E}:{})}}},{key:"mapLayer",value:function(e,t){var n=t.parentEncoding,r=t.parentProjection,i=dj(t,["parentEncoding","parentProjection"]),o=e.encoding,a=e.projection,s=dj(e,["encoding","projection"]),g=Object.assign(Object.assign({},i),{parentEncoding:pj({parentEncoding:n,encoding:o,layer:!0}),parentProjection:Ej({parentProjection:r,projection:a})});return Object(jJ.a)(Object(JJ.a)(A.prototype),"mapLayer",this).call(this,s,g)}}]),A}(VJ);function pj(e){var t=e.parentEncoding,A=e.encoding,n=void 0===A?{}:A,r=e.layer,i={};if(t){var o,a=new Set([].concat(Object(zn.a)(y_(t)),Object(zn.a)(y_(n)))),s=Object(ut.a)(a);try{for(s.s();!(o=s.n()).done;){var g=o.value,c=n[g],u=t[g];if(UH(c)){var l=Object.assign(Object.assign({},u),c);i[g]=l}else RH(c)?i[g]=Object.assign(Object.assign({},c),{condition:Object.assign(Object.assign({},u),c.condition)}):c||null===c?i[g]=c:(r||MH(u)||nO(u)||UH(u)||kU(u))&&(i[g]=u)}}catch(I){s.e(I)}finally{s.f()}}else i=n;return!i||Q_(i)?void 0:i}function Ej(e){var t=e.parentProjection,A=e.projection;return t&&A&&tT(B.projectionOverridden({parentProjection:t,projection:A})),null!==A&&void 0!==A?A:t}function Qj(e){return"filter"in e}function yj(e){return"lookup"in e}function vj(e){return"pivot"in e}function mj(e){return"density"in e}function bj(e){return"quantile"in e}function wj(e){return"regression"in e}function Sj(e){return"loess"in e}function Fj(e){return"sample"in e}function Rj(e){return"window"in e}function Dj(e){return"joinaggregate"in e}function Gj(e){return"flatten"in e}function kj(e){return"calculate"in e}function xj(e){return"bin"in e}function Nj(e){return"impute"in e}function Uj(e){return"timeUnit"in e}function _j(e){return"aggregate"in e}function Mj(e){return"stack"in e}function Oj(e){return"fold"in e}var Lj=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},Tj=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"map",value:function(e,t){var n,r;return null!==(n=t.emptySelections)&&void 0!==n||(t.emptySelections={}),null!==(r=t.selectionPredicates)&&void 0!==r||(t.selectionPredicates={}),e=Zj(e,t),Object(jJ.a)(Object(JJ.a)(A.prototype),"map",this).call(this,e,t)}},{key:"mapLayerOrUnit",value:function(e,t){if((e=Zj(e,t)).encoding){var n,r={},i=Object(ut.a)(m_(e.encoding));try{for(i.s();!(n=i.n()).done;){var o=Object(lt.a)(n.value,2),a=o[0],s=o[1];r[a]=Hj(s,t)}}catch(g){i.e(g)}finally{i.f()}e=Object.assign(Object.assign({},e),{encoding:r})}return Object(jJ.a)(Object(JJ.a)(A.prototype),"mapLayerOrUnit",this).call(this,e,t)}},{key:"mapUnit",value:function(e,t){var A=e,n=A.selection,r=Lj(A,["selection"]);return n?Object.assign(Object.assign({},r),{params:m_(n).map((function(e){var A,n=Object(lt.a)(e,2),r=n[0],i=n[1],o=i.init,a=i.bind,s=i.empty,g=Lj(i,["init","bind","empty"]);"single"===g.type?(g.type="point",g.toggle=!1):"multi"===g.type&&(g.type="point"),t.emptySelections[r]="none"!==s;var c,u=Object(ut.a)(v_(null!==(A=t.selectionPredicates[r])&&void 0!==A?A:{}));try{for(u.s();!(c=u.n()).done;){c.value.empty="none"!==s}}catch(l){u.e(l)}finally{u.f()}return{name:r,value:o,select:g,bind:a}}))}):e}}]),A}(VJ);function Zj(e,t){var A=e.transform,n=Lj(e,["transform"]);if(A){var r=A.map((function(e){if(Qj(e))return{filter:Jj(e,t)};if(xj(e)&&WM(e.bin))return Object.assign(Object.assign({},e),{bin:Yj(e.bin)});if(yj(e)){var A=e.from,n=A.selection,r=Lj(A,["selection"]);return n?Object.assign(Object.assign({},e),{from:Object.assign({param:n},r)}):e}return e}));return Object.assign(Object.assign({},n),{transform:r})}return e}function Hj(e,t){var A,n,r=r_(e);if(DH(r)&&WM(r.bin)&&(r.bin=Yj(r.bin)),OH(r)&&(null===(n=null===(A=r.scale)||void 0===A?void 0:A.domain)||void 0===n?void 0:n.selection)){var i=r.scale.domain,o=i.selection,a=Lj(i,["selection"]);r.scale.domain=Object.assign(Object.assign({},a),o?{param:o}:{})}if(SH(r))if(Object(ue.B)(r.condition))r.condition=r.condition.map((function(e){e.selection;var A=e.param,n=(e.test,Lj(e,["selection","param","test"]));return A?e:Object.assign(Object.assign({},n),{test:Jj(e,t)})}));else{var s=Hj(r.condition,t),g=(s.selection,s.param),c=(s.test,Lj(s,["selection","param","test"]));r.condition=g?r.condition:Object.assign(Object.assign({},c),{test:Jj(r.condition,t)})}return r}function Yj(e){var t=e.extent;if(null===t||void 0===t?void 0:t.selection){var A=t.selection,n=Lj(t,["selection"]);return Object.assign(Object.assign({},e),{extent:Object.assign(Object.assign({},n),{param:A})})}return e}function Jj(e,t){var A=function(e){return A_(e,(function(e){var A,n,r,i={param:e,empty:null===(A=t.emptySelections[e])||void 0===A||A};return null!==(n=(r=t.selectionPredicates)[e])&&void 0!==n||(r[e]=[]),t.selectionPredicates[e].push(i),i}))};return e.selection?A(e.selection):A_(e.test||e.filter,(function(e){return e.selection?A(e.selection):e}))}for(var jj=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"map",value:function(e,t){var n,r=null!==(n=t.selections)&&void 0!==n?n:[];if(e.params&&!yY(e)){var i,o=[],a=Object(ut.a)(e.params);try{for(a.s();!(i=a.n()).done;){var s=i.value;IJ(s)?r.push(s):o.push(s)}}catch(g){a.e(g)}finally{a.f()}e.params=o}return t.selections=r,Object(jJ.a)(Object(JJ.a)(A.prototype),"map",this).call(this,e,Wj(e,t))}},{key:"mapUnit",value:function(e,t){var A,n=t.selections;if(!n||!n.length)return e;var r,i=(null!==(A=t.path)&&void 0!==A?A:[]).concat(e.name),o=[],a=Object(ut.a)(n);try{for(a.s();!(r=a.n()).done;){var s=r.value;if(s.views&&s.views.length){var g,c=Object(ut.a)(s.views);try{for(c.s();!(g=c.n()).done;){var u=g.value;(Object(ue.J)(u)&&(u===e.name||i.indexOf(u)>=0)||Object(ue.B)(u)&&u.map((function(e){return i.indexOf(e)})).every((function(e,t,A){return-1!==e&&(0===t||e>A[t-1])})))&&o.push(s)}}catch(l){c.e(l)}finally{c.f()}}else o.push(s)}}catch(l){a.e(l)}finally{a.f()}return o.length&&(e.params=o),e}}]),A}(VJ),Pj=function(){var e=Kj[Vj],t=jj.prototype[e];jj.prototype[e]=function(e,A){return t.call(this,e,Wj(e,A))}},Vj=0,Kj=["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"];Vj<Kj.length;Vj++)Pj();function Wj(e,t){var A;return e.name?Object.assign(Object.assign({},t),{path:(null!==(A=t.path)&&void 0!==A?A:[]).concat(e.name)}):t}function Xj(e,t){void 0===t&&(t=MJ(e.config));var A=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A={config:t};return $j.map(qj.map(zj.map(e,A),A),A)}(e,t),n=function(e,t,A){var n=t.width,r=t.height,i=yY(e)||YJ(e),o={};i?"container"==n&&"container"==r?(o.type="fit",o.contains="padding"):"container"==n?(o.type="fit-x",o.contains="padding"):"container"==r&&(o.type="fit-y",o.contains="padding"):("container"==n&&(tT(B.containerSizeNonSingle("width")),n=void 0),"container"==r&&(tT(B.containerSizeNonSingle("height")),r=void 0));var a=Object.assign(Object.assign(Object.assign({type:"pad"},o),A?eP(A.autosize):{}),eP(e.autosize));"fit"!==a.type||i||(tT(B.FIT_NON_SINGLE),a.type="pad");"container"==n&&"fit"!=a.type&&"fit-x"!=a.type&&tT(B.containerSizeNotCompatibleWithAutosize("width"));"container"==r&&"fit"!=a.type&&"fit-y"!=a.type&&tT(B.containerSizeNotCompatibleWithAutosize("height"));if(n_(a,{type:"pad"}))return;return a}(A,{width:e.width,height:e.height,autosize:e.autosize},t);return Object.assign(Object.assign({},A),n?{autosize:n}:{})}var qj=new Bj,zj=new Tj,$j=new jj;function eP(e){return JU(e)?{type:e}:null!==e&&void 0!==e?e:{}}var tP=["background","padding"];function AP(e,t){var A,n={},r=Object(ut.a)(tP);try{for(r.s();!(A=r.n()).done;){var i=A.value;e&&void 0!==e[i]&&(n[i]=uO(e[i]))}}catch(o){r.e(o)}finally{r.f()}return t&&(n.params=e.params),n}var nP=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(y.a)(this,e),this.explicit=t,this.implicit=A}return Object(v.a)(e,[{key:"clone",value:function(){return new e(r_(this.explicit),r_(this.implicit))}},{key:"combine",value:function(){return Object.assign(Object.assign({},this.explicit),this.implicit)}},{key:"get",value:function(e){return M_(this.explicit[e],this.implicit[e])}},{key:"getWithExplicit",value:function(e){return void 0!==this.explicit[e]?{explicit:!0,value:this.explicit[e]}:void 0!==this.implicit[e]?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}},{key:"setWithExplicit",value:function(e,t){var A=t.value,n=t.explicit;void 0!==A&&this.set(e,A,n)}},{key:"set",value:function(e,t,A){return delete this[A?"implicit":"explicit"][e],this[A?"explicit":"implicit"][e]=t,this}},{key:"copyKeyFromSplit",value:function(e,t){var A=t.explicit,n=t.implicit;void 0!==A[e]?this.set(e,A[e],!0):void 0!==n[e]&&this.set(e,n[e],!1)}},{key:"copyKeyFromObject",value:function(e,t){void 0!==t[e]&&this.set(e,t[e],!0)}},{key:"copyAll",value:function(e){var t,A=Object(ut.a)(y_(e.combine()));try{for(A.s();!(t=A.n()).done;){var n=t.value,r=e.getWithExplicit(n);this.setWithExplicit(n,r)}}catch(i){A.e(i)}finally{A.f()}}}]),e}();function rP(e){return{explicit:!0,value:e}}function iP(e){return{explicit:!1,value:e}}function oP(e){return function(t,A,n,r){var i=e(t.value,A.value);return i>0?t:i<0?A:aP(t,A,n,r)}}function aP(e,t,A,n){return e.explicit&&t.explicit&&tT(B.mergeConflictingProperty(A,n,e.value,t.value)),e}function sP(e,t,A,n){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:aP;return void 0===e||void 0===e.value?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:n_(e.value,t.value)?e:r(e,t,A,n)}var gP,cP=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return Object(y.a)(this,A),(e=t.call(this,n,r)).explicit=n,e.implicit=r,e.parseNothing=i,e}return Object(v.a)(A,[{key:"clone",value:function(){var e=Object(jJ.a)(Object(JJ.a)(A.prototype),"clone",this).call(this);return e.parseNothing=this.parseNothing,e}}]),A}(nP);function uP(e){return"url"in e}function lP(e){return"values"in e}function IP(e){return"name"in e&&!uP(e)&&!lP(e)&&!CP(e)}function CP(e){return e&&(hP(e)||fP(e)||dP(e))}function hP(e){return"sequence"in e}function fP(e){return"sphere"in e}function dP(e){return"graticule"in e}!function(e){e[e.Raw=0]="Raw",e[e.Main=1]="Main",e[e.Row=2]="Row",e[e.Column=3]="Column",e[e.Lookup=4]="Lookup"}(gP||(gP={}));var BP,pP,EP=/[[\]{}]/,QP={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};function yP(e,t,A){return BP=t||"view",pP=A||QP,mP(e.trim()).map(bP)}function vP(e,t,A,n,r){for(var i,o=e.length,a=0;t<o;++t){if(i=e[t],!a&&i===A)return t;r&&r.indexOf(i)>=0?--a:n&&n.indexOf(i)>=0&&++a}return t}function mP(e){for(var t=[],A=e.length,n=0,r=0;r<A;)r=vP(e,r,",","[{","]}"),t.push(e.substring(n,r).trim()),n=++r;if(0===t.length)throw"Empty event selector: "+e;return t}function bP(e){return"["===e[0]?function(e){var t,A=e.length,n=1;if((n=vP(e,n,"]","[","]"))===A)throw"Empty between selector: "+e;if(2!==(t=mP(e.substring(1,n))).length)throw"Between selector must have two elements: "+e;if(">"!==(e=e.slice(n+1).trim())[0])throw"Expected '>' after between selector: "+e;t=t.map(bP);var r=bP(e.slice(1).trim());if(r.between)return{between:t,stream:r};r.between=t;return r}(e):function(e){var t,A,n={source:BP},r=[],i=[0,0],o=0,a=0,s=e.length,g=0;if("}"===e[s-1]){if(!((g=e.lastIndexOf("{"))>=0))throw"Unmatched right brace: "+e;try{i=function(e){var t=e.split(",");if(!e.length||t.length>2)throw e;return t.map((function(t){var A=+t;if(A!==A)throw e;return A}))}(e.substring(g+1,s-1))}catch(u){throw"Invalid throttle specification: "+e}e=e.slice(0,g).trim(),s=e.length,g=0}if(!s)throw e;"@"===e[0]&&(o=++g);(t=vP(e,g,":"))<s&&(r.push(e.substring(a,t).trim()),a=g=++t);if((g=vP(e,g,"["))===s)r.push(e.substring(a,s).trim());else if(r.push(e.substring(a,g).trim()),A=[],(a=++g)===s)throw"Unmatched left bracket: "+e;for(;g<s;){if((g=vP(e,g,"]"))===s)throw"Unmatched left bracket: "+e;if(A.push(e.substring(a,g).trim()),g<s-1&&"["!==e[++g])throw"Expected left bracket: "+e;a=++g}if(!(s=r.length)||EP.test(r[s-1]))throw"Invalid event selector: "+e;s>1?(n.type=r[1],o?n.markname=r[0].slice(1):(c=r[0],pP[c]?n.marktype=r[0]:n.source=r[0])):n.type=r[0];var c;"!"===n.type.slice(-1)&&(n.consume=!0,n.type=n.type.slice(0,-1));null!=A&&(n.filter=A);i[0]&&(n.throttle=i[0]);i[1]&&(n.debounce=i[1]);return n}(e)}var wP=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function SP(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:DU;if(kU(e)){var n=e.map((function(e){return SP(e,t,A)}));return t?"[".concat(n.join(", "),"]"):n}return AT(e)?A(t?sT(e):cT(e)):t?A(a_(e)):e}function FP(e,t){var A,n,r=Object(ut.a)(v_(null!==(A=e.component.selection)&&void 0!==A?A:{}));try{for(r.s();!(n=r.n()).done;){var i,o=n.value,a=Object(ut.a)(GV);try{for(a.s();!(i=a.n()).done;){var s=i.value;s.defined(o)&&s.marks&&(t=s.marks(e,o,t))}}catch(g){a.e(g)}finally{a.f()}}}catch(g){r.e(g)}finally{r.f()}return t}function RP(e){return e.map((function(e){return e.on&&!e.on.length&&delete e.on,e}))}var DP=function(){function e(t,A){Object(y.a)(this,e),this.debugName=A,this._children=[],this._parent=null,t&&(this.parent=t)}return Object(v.a)(e,[{key:"clone",value:function(){throw new Error("Cannot clone node")}},{key:"numChildren",value:function(){return this._children.length}},{key:"addChild",value:function(e,t){this._children.includes(e)?tT(B.ADD_SAME_CHILD_TWICE):void 0!==t?this._children.splice(t,0,e):this._children.push(e)}},{key:"removeChild",value:function(e){var t=this._children.indexOf(e);return this._children.splice(t,1),t}},{key:"remove",value:function(){var e,t=this._parent.removeChild(this),A=Object(ut.a)(this._children);try{for(A.s();!(e=A.n()).done;){var n=e.value;n._parent=this._parent,this._parent.addChild(n,t++)}}catch(r){A.e(r)}finally{A.f()}}},{key:"insertAsParentOf",value:function(e){var t=e.parent;t.removeChild(this),this.parent=t,e.parent=this}},{key:"swapWithParent",value:function(){var e,t=this._parent,A=t.parent,n=Object(ut.a)(this._children);try{for(n.s();!(e=n.n()).done;){e.value.parent=t}}catch(r){n.e(r)}finally{n.f()}this._children=[],t.removeChild(this),t.parent.removeChild(t),this.parent=A,t.parent=this}},{key:"parent",get:function(){return this._parent},set:function(e){this._parent=e,e&&e.addChild(this)}},{key:"children",get:function(){return this._children}}]),e}(),GP=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r,i){var o;return Object(y.a)(this,A),(o=t.call(this,e,n)).type=r,o.refCounts=i,o._source=o._name=n,o.refCounts&&!(o._name in o.refCounts)&&(o.refCounts[o._name]=0),o}return Object(v.a)(A,[{key:"clone",value:function(){var e=new this.constructor;return e.debugName="clone_".concat(this.debugName),e._source=this._source,e._name="clone_".concat(this._name),e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}},{key:"dependentFields",value:function(){return new Set}},{key:"producedFields",value:function(){return new Set}},{key:"hash",value:function(){return void 0===this._hash&&(this._hash="Output ".concat(L_())),this._hash}},{key:"getSource",value:function(){return this.refCounts[this._name]++,this._source}},{key:"isRequired",value:function(){return!!this.refCounts[this._name]}},{key:"setSource",value:function(e){this._source=e}}]),A}(DP),kP=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},xP=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e)).formula=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.formula))}},{key:"merge",value:function(e){for(var t in this.formula=Object.assign({},this.formula),e.formula)this.formula[t]||(this.formula[t]=e.formula[t]);var A,n=Object(ut.a)(e.children);try{for(n.s();!(A=n.n()).done;){var r=A.value;e.removeChild(r),r.parent=this}}catch(i){n.e(i)}finally{n.f()}e.remove()}},{key:"removeFormulas",value:function(e){var t,A={},n=Object(ut.a)(m_(this.formula));try{for(n.s();!(t=n.n()).done;){var r=Object(lt.a)(t.value,2),i=r[0],o=r[1];e.has(o.as)||(A[i]=o)}}catch(a){n.e(a)}finally{n.f()}this.formula=A}},{key:"producedFields",value:function(){return new Set(v_(this.formula).map((function(e){return e.as})))}},{key:"dependentFields",value:function(){return new Set(v_(this.formula).map((function(e){return e.field})))}},{key:"hash",value:function(){return"TimeUnit ".concat(s_(this.formula))}},{key:"assemble",value:function(){var e,t=[],A=Object(ut.a)(v_(this.formula));try{for(A.s();!(e=A.n()).done;){var n=e.value,r=n.field,i=n.as,o=ET(n.timeUnit),a=o.unit,s=o.utc,g=kP(o,["unit","utc"]);t.push(Object.assign(Object.assign(Object.assign(Object.assign({field:x_(r),type:"timeunit"},a?{units:fT(a)}:{}),s?{timezone:"utc"}:{}),g),{as:[i,"".concat(i,"_end")]}))}}catch(c){A.e(c)}finally{A.f()}return t}}],[{key:"makeFromEncoding",value:function(e,t){var n=t.reduceFieldDef((function(e,t){var A=t.field,n=t.timeUnit;if(n){var r=JH(t,{forAs:!0});e[s_({as:r,field:A,timeUnit:n})]={as:r,field:A,timeUnit:n}}return e}),{});return Q_(n)?null:new A(e,n)}},{key:"makeFromTransform",value:function(e,t){var n=Object.assign({},t),r=n.timeUnit,i=kP(n,["timeUnit"]),o=ET(r),a=Object.assign(Object.assign({},i),{timeUnit:o});return new A(e,Object($n.a)({},s_(a),a))}}]),A}(DP),NP=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},UP=function e(){Object(y.a)(this,e);for(var t=arguments.length,A=new Array(t),n=0;n<t;n++)A[n]=arguments[n];this.items=A,this.hasChannel={},this.hasField={}},_P={defined:function(){return!0},parse:function(e,t,A){var n,r=t.name,i=null!==(n=t.project)&&void 0!==n?n:t.project=new UP,o={},a={},s=new Set,g=function(e,t){for(var A="visual"===t?e.channel:e.field,n=w_("".concat(r,"_").concat(A)),i=1;s.has(n);i++)n=w_("".concat(r,"_").concat(A,"_").concat(i));return s.add(n),Object($n.a)({},t,n)},c=t.type,u=e.config.selection[c],l=void 0!==A.value?OU(A.value):null,I=xU(A.select)?A.select:{},C=I.fields,h=I.encodings;if(!C&&!h&&l){var f,d=Object(ut.a)(l);try{for(d.s();!(f=d.n()).done;){var p=f.value;if(xU(p)){var E,Q=Object(ut.a)(y_(p));try{for(Q.s();!(E=Q.n()).done;){var y=E.value;lM[y]?(h||(h=[])).push(y):"interval"===c?(tT(B.INTERVAL_INITIALIZED_WITH_X_Y),h=u.encodings):(C||(C=[])).push(y)}}catch(U){Q.e(U)}finally{Q.f()}}}}catch(U){d.e(U)}finally{d.f()}}C||h||(h=u.encodings,"fields"in u&&(C=u.fields));var v,m=Object(ut.a)(null!==h&&void 0!==h?h:[]);try{for(m.s();!(v=m.n()).done;){var b=v.value,w=e.fieldDef(b);if(w){var S=w.field;if(w.aggregate){tT(B.cannotProjectAggregate(b,w.aggregate));continue}if(!S){tT(B.cannotProjectOnChannelWithoutField(b));continue}if(w.timeUnit){S=e.vgField(b);var F={timeUnit:w.timeUnit,as:S,field:w.field};a[s_(F)]=F}if(!o[S]){var R="E";if("interval"===c)IZ(e.getScaleComponent(b).get("type"))&&(R="R");else w.bin&&(R="R-RE");var D={field:S,channel:b,type:R};D.signals=Object.assign(Object.assign({},g(D,"data")),g(D,"visual")),i.items.push(o[S]=D),i.hasField[S]=i.hasChannel[b]=o[S]}}else tT(B.cannotProjectOnChannelWithoutField(b))}}catch(U){m.e(U)}finally{m.f()}var G,k=Object(ut.a)(null!==C&&void 0!==C?C:[]);try{for(k.s();!(G=k.n()).done;){var x=G.value;if(!i.hasField[x]){var N={type:"E",field:x};N.signals=Object.assign({},g(N,"data")),i.items.push(N),i.hasField[x]=N}}}catch(U){k.e(U)}finally{k.f()}l&&(t.init=l.map((function(e){return i.items.map((function(t){return xU(e)?void 0!==e[t.channel]?e[t.channel]:e[t.field]:e}))}))),Q_(a)||(i.timeUnit=new xP(null,a))},signals:function(e,t,A){var n=t.name+"_tuple_fields";return A.filter((function(e){return e.name===n})).length>0?A:A.concat({name:n,value:t.project.items.map((function(e){e.signals,e.hasLegend;var t=NP(e,["signals","hasLegend"]);return t.field=x_(t.field),t}))})}},MP={defined:function(e){return"interval"===e.type&&"global"===e.resolve&&e.bind&&"scales"===e.bind},parse:function(e,t){var A,n=t.scales=[],r=Object(ut.a)(t.project.items);try{for(r.s();!(A=r.n()).done;){var i=A.value,o=i.channel;if(kM(o)){var a=e.getScaleComponent(o),s=a?a.get("type"):void 0;a&&IZ(s)?(a.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)):tT(B.SCALE_BINDINGS_CONTINUOUS)}}}catch(g){r.e(g)}finally{r.f()}},topLevelSignals:function(e,t,A){var n=t.scales.filter((function(e){return 0===A.filter((function(t){return t.name===e.signals.data})).length}));if(!e.parent||LP(e)||0===n.length)return A;var r=A.filter((function(e){return e.name===t.name}))[0],i=r.update;if(i.indexOf(DV)>=0)r.update="{".concat(n.map((function(e){return"".concat(jU(x_(e.field)),": ").concat(e.signals.data)})).join(", "),"}");else{var o,a=Object(ut.a)(n);try{for(a.s();!(o=a.n()).done;){var s=o.value,g="".concat(jU(x_(s.field)),": ").concat(s.signals.data);i.includes(g)||(i="".concat(i.substring(0,i.length-1),", ").concat(g,"}"))}}catch(c){a.e(c)}finally{a.f()}r.update=i}return A.concat(n.map((function(e){return{name:e.signals.data}})))},signals:function(e,t,A){if(e.parent&&!LP(e)){var n,r=Object(ut.a)(t.scales);try{var i=function(){var e=n.value,t=A.filter((function(t){return t.name===e.signals.data}))[0];t.push="outer",delete t.value,delete t.update};for(r.s();!(n=r.n()).done;)i()}catch(o){r.e(o)}finally{r.f()}}return A}};function OP(e,t){var A=jU(e.scaleName(t));return"domain(".concat(A,")")}function LP(e){var t;return e.parent&&pq(e.parent)&&(null!==(t=!e.parent.parent)&&void 0!==t?t:LP(e.parent.parent))}var TP=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},ZP="_brush",HP={defined:function(e){return"interval"===e.type},signals:function(e,t,A){var n=t.name,r=n+"_tuple_fields",i=MP.defined(t),o=t.init?t.init[0]:null,a=[],s=[];if(t.translate&&!i){var g="!event.item || event.item.mark.name !== ".concat(jU(n+ZP));YP(t,(function(e,t){var A,n,r=OU(null!==(A=(n=t.between[0]).filter)&&void 0!==A?A:n.filter=[]);return r.includes(g)||r.push(g),e}))}t.project.items.forEach((function(n,r){var i=n.channel;if("x"===i||"y"===i){var g=o?o[r]:null,c=function(e,t,A,n){var r=A.channel,i=A.signals.visual,o=A.signals.data,a=MP.defined(t),s=jU(e.scaleName(r)),g=e.getScaleComponent(r),c=g?g.get("type"):void 0,u=function(e){return"scale(".concat(s,", ").concat(e,")")},l=e.getSizeSignalRef("x"===r?"width":"height").signal,I="".concat(r,"(unit)"),C=YP(t,(function(e,t){return[].concat(Object(zn.a)(e),[{events:t.between[0],update:"[".concat(I,", ").concat(I,"]")},{events:t,update:"[".concat(i,"[0], clamp(").concat(I,", 0, ").concat(l,")]")}])}));return C.push({events:{signal:t.name+"_scale_trigger"},update:IZ(c)?"[".concat(u("".concat(o,"[0]")),", ").concat(u("".concat(o,"[1]")),"]"):"[0, 0]"}),a?[{name:o,on:[]}]:[Object.assign(Object.assign({name:i},n?{init:SP(n,!0,u)}:{value:[]}),{on:C}),Object.assign(Object.assign({name:o},n?{init:SP(n)}:{}),{on:[{events:{signal:i},update:"".concat(i,"[0] === ").concat(i,"[1] ? null : invert(").concat(s,", ").concat(i,")")}]})]}(e,t,n,g),u=n.signals.data,l=n.signals.visual,I=jU(e.scaleName(i)),C=IZ(e.getScaleComponent(i).get("type"))?"+":"";A.push.apply(A,Object(zn.a)(c)),a.push(u),s.push({scaleName:e.scaleName(i),expr:"(!isArray(".concat(u,") || ")+"(".concat(C,"invert(").concat(I,", ").concat(l,")[0] === ").concat(C).concat(u,"[0] && ")+"".concat(C,"invert(").concat(I,", ").concat(l,")[1] === ").concat(C).concat(u,"[1]))")})}else tT("Interval selections only support x and y encoding channels.")})),!i&&s.length&&A.push({name:n+"_scale_trigger",value:{},on:[{events:s.map((function(e){return{scale:e.scaleName}})),update:"".concat(s.map((function(e){return e.expr})).join(" && ")," ? ").concat(n+"_scale_trigger"," : {}")}]});var c="unit: ".concat(xV(e),", fields: ").concat(r,", values");return A.concat(Object.assign(Object.assign({name:n+FV},o?{init:"{".concat(c,": ").concat(SP(o),"}")}:{}),a.length?{on:[{events:[{signal:a.join(" || ")}],update:"".concat(a.join(" && ")," ? {").concat(c,": [").concat(a,"]} : null")}]}:{}))},marks:function(e,t,A){var n=t.name,r=t.project.hasChannel,i=r.x,o=r.y,a=i&&i.signals.visual,s=o&&o.signals.visual,g="data(".concat(jU(t.name+SV),")");if(MP.defined(t)||!i&&!o)return A;var c={x:void 0!==i?{signal:"".concat(a,"[0]")}:{value:0},y:void 0!==o?{signal:"".concat(s,"[0]")}:{value:0},x2:void 0!==i?{signal:"".concat(a,"[1]")}:{field:{group:"width"}},y2:void 0!==o?{signal:"".concat(s,"[1]")}:{field:{group:"height"}}};if("global"===t.resolve){var u,l=Object(ut.a)(y_(c));try{for(l.s();!(u=l.n()).done;){var I=u.value;c[I]=[Object.assign({test:"".concat(g,".length && ").concat(g,"[0].unit === ").concat(xV(e))},c[I]),{value:0}]}}catch(E){l.e(E)}finally{l.f()}}var C=t.mark,h=C.fill,f=C.fillOpacity,d=C.cursor,B=TP(C,["fill","fillOpacity","cursor"]),p=y_(B).reduce((function(e,t){return e[t]=[{test:[void 0!==i&&"".concat(a,"[0] !== ").concat(a,"[1]"),void 0!==o&&"".concat(s,"[0] !== ").concat(s,"[1]")].filter((function(e){return e})).join(" && "),value:B[t]},{value:null}],e}),{});return[{name:"".concat(n+ZP,"_bg"),type:"rect",clip:!0,encode:{enter:{fill:{value:h},fillOpacity:{value:f}},update:c}}].concat(Object(zn.a)(A),[{name:n+ZP,type:"rect",clip:!0,encode:{enter:Object.assign(Object.assign({},d?{cursor:{value:d}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},c),p)}}])}};function YP(e,t){return e.events.reduce((function(e,A){return A.between?t(e,A):(tT("".concat(A," is not an ordered event stream for interval selections.")),e)}),[])}var JP={defined:function(e){return"point"===e.type},signals:function(e,t,A){var n,r=t.name,i=r+"_tuple_fields",o=t.project,a="(item().isVoronoi ? datum.datum : datum)",s=o.items.map((function(t){var A=e.fieldDef(t.channel);return(null===A||void 0===A?void 0:A.bin)?"[".concat(a,"[").concat(jU(e.vgField(t.channel,{})),"], ")+"".concat(a,"[").concat(jU(e.vgField(t.channel,{binSuffix:"end"})),"]]"):"".concat(a,"[").concat(jU(t.field),"]")})).join(", "),g="unit: ".concat(xV(e),", fields: ").concat(i,", values"),c=t.events,u=v_(null!==(n=e.component.selection)&&void 0!==n?n:{}).reduce((function(e,t){return"interval"===t.type?e.concat(t.name+ZP):e}),[]).map((function(e){return"indexof(item().mark.name, '".concat(e,"') < 0")})).join(" && "),l="datum && item().mark.marktype !== 'group'"+(u?" && ".concat(u):"");return A.concat([{name:r+FV,on:c?[{events:c,update:"".concat(l," ? {").concat(g,": [").concat(s,"]} : null"),force:!0}]:[]}])}};function jP(e,t,A,n){var r=SH(t)&&t.condition,i=n(t);if(r){var o=OU(r).map((function(t){var A=n(t);if(function(e){return e.param}(t)){var r=t.param,i=t.empty,o=MK(e,{param:r,empty:i});return Object.assign({test:o},A)}var a=LK(e,t.test);return Object.assign({test:a},A)}));return Object($n.a)({},A,[].concat(Object(zn.a)(o),Object(zn.a)(void 0!==i?[i]:[])))}return void 0!==i?Object($n.a)({},A,i):{}}function PP(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"text",A=e.encoding[t];return jP(e,A,t,(function(t){return VP(t,e.config)}))}function VP(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"datum";if(e){if(MH(e))return IO(e.value);if(UH(e)){var n=eY(e),r=n.format,i=n.formatType;return rH({fieldOrDatumDef:e,format:r,formatType:i,expr:A,config:t})}}}function KP(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=e.encoding,n=e.markDef,r=e.config,i=e.stack,o=A.tooltip;if(kU(o))return{tooltip:XP({tooltip:o},i,r,t)};var a=t.reactiveGeom?"datum.datum":"datum";return jP(e,o,"tooltip",(function(e){var o=VP(e,r,a);if(o)return o;if(null!==e){var s=dO("tooltip",n,r);return!0===s&&(s={content:"encoding"}),JU(s)?{value:s}:xU(s)?nO(s)?s:"encoding"===s.content?XP(A,i,r,t):{signal:a}:void 0}}))}function WP(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=n.reactiveGeom,i={},o=r?"datum.datum":"datum",a=[];function s(n,r){var s,g=fM(r),c=_H(n)?n:Object.assign(Object.assign({},n),{type:e[g].type}),u=OU(c.title||$H(c,A)).join(", ");if(mM(r)){var l="x"===r?"x2":"y2",I=AY(e[l]);if(KM(c.bin)&&I){var C=JH(c,{expr:o}),h=JH(I,{expr:o}),f=eY(c);s=lH(C,h,f.format,f.formatType,A),i[l]=!0}else if(t&&t.fieldChannel===r&&"normalize"===t.offset){var d=eY(c);s=rH({fieldOrDatumDef:c,format:d.format,formatType:d.formatType,expr:o,config:A,normalizeStack:!0}).signal}}null!==s&&void 0!==s||(s=VP(c,A,o).signal),a.push({channel:r,key:u,value:s})}GY(e,(function(e,t){DH(e)?s(e,t):FH(e)&&s(e.condition,t)}));for(var g={},c=0,u=a;c<u.length;c++){var l=u[c],I=l.channel,C=l.key,h=l.value;i[I]||g[C]||(g[C]=h)}return g}function XP(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=n.reactiveGeom,i=WP(e,t,A,{reactiveGeom:r}),o=m_(i).map((function(e){var t=Object(lt.a)(e,2),A=t[0],n=t[1];return'"'.concat(A,'": ').concat(n)}));return o.length>0?{signal:"{".concat(o.join(", "),"}")}:void 0}function qP(e){var t=dO("aria",e.markDef,e.config);return!1===t?{}:Object.assign(Object.assign(Object.assign({},t?{aria:t}:{}),function(e){var t=e.mark,A=e.markDef,n=e.config;if(!1===n.aria)return{};var r=dO("ariaRoleDescription",A,n);if(null!=r)return{ariaRoleDescription:{value:r}};return t in aO?{}:{ariaRoleDescription:{value:t}}}(e)),function(e){var t=e.encoding,A=e.markDef,n=e.config,r=e.stack,i=t.description;if(i)return jP(e,i,"description",(function(t){return VP(t,e.config)}));var o=dO("description",A,n);if(null!=o)return{description:IO(o)};if(!1===n.aria)return{};var a=WP(t,r,n);if(Q_(a))return;return{description:{signal:m_(a).map((function(e,t){var A=Object(lt.a)(e,2),n=A[0],r=A[1];return'"'.concat(t>0?"; ":"").concat(n,': " + (').concat(r,")")})).join(" + ")}}}(e))}function zP(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=t.markDef,r=t.encoding,i=t.config,o=A.vgChannel,a=A.defaultRef,s=A.defaultValue;void 0===a&&(null!==s&&void 0!==s||(s=dO(e,n,i,{vgChannel:o,ignoreVgConfig:!0})),void 0!==s&&(a=IO(s)));var g=r[e];return jP(t,g,null!==o&&void 0!==o?o:e,(function(A){return eH({channel:e,channelDef:A,markDef:n,config:i,scaleName:t.scaleName(e),scale:t.getScaleComponent(e),stack:null,defaultRef:a})}))}function $P(e){var t,A,n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{filled:void 0},o=e.markDef,a=e.encoding,s=e.config,g=o.type,c=null!==(t=i.filled)&&void 0!==t?t:dO("filled",o,s),u=c_(["bar","point","circle","square","geoshape"],g)?"transparent":void 0,l=null!==(n=null!==(A=dO(!0===c?"color":void 0,o,s,{vgChannel:"fill"}))&&void 0!==A?A:s.mark[!0===c&&"color"])&&void 0!==n?n:u,I=null!==(r=dO(!1===c?"color":void 0,o,s,{vgChannel:"stroke"}))&&void 0!==r?r:s.mark[!1===c&&"color"],C=c?"fill":"stroke",h=Object.assign(Object.assign({},l?{fill:IO(l)}:{}),I?{stroke:IO(I)}:{});return o.color&&(c?o.fill:o.stroke)&&tT(B.droppingColor("property",{fill:"fill"in o,stroke:"stroke"in o})),Object.assign(Object.assign(Object.assign(Object.assign({},h),zP("color",e,{vgChannel:C,defaultValue:c?l:I})),zP("fill",e,{defaultValue:a.fill?l:void 0})),zP("stroke",e,{defaultValue:a.stroke?I:void 0}))}function eV(e,t){var A=t[function(e){switch(e){case"x":return"xOffset";case"y":return"yOffset";case"x2":return"x2Offset";case"y2":return"y2Offset";case W_:return"thetaOffset";case K_:return"radiusOffset";case X_:return"theta2Offset";case"radius2":return"radius2Offset"}}(e)];if(A)return A}function tV(e,t,A){var n=A.defaultPos,r=A.vgChannel,i=t.encoding,o=t.markDef,a=t.config,s=t.stack,g=i[e],c=i[BM(e)],u=t.scaleName(e),l=t.getScaleComponent(e),I=eV(e,o),C=AV({model:t,defaultPos:n,channel:e,scaleName:u,scale:l}),h=!g&&mM(e)&&(i.latitude||i.longitude)?{field:t.getName(e)}:function(e){var t=e.channel,A=e.channelDef,n=e.scaleName,r=e.stack,i=e.offset,o=e.markDef;if(UH(A)&&r&&t===r.fieldChannel){if(DH(A)){var a=A.bandPosition;if(void 0!==a||"text"!==o.type||"radius"!==t&&"theta"!==t||(a=.5),void 0!==a)return $Z({scaleName:n,fieldOrDatumDef:A,startSuffix:"start",bandPosition:a,offset:i})}return zZ(A,n,{suffix:"end"},{offset:i})}return KZ(e)}({channel:e,channelDef:g,channel2Def:c,markDef:o,config:a,scaleName:u,scale:l,stack:s,offset:I,defaultRef:C});return h?Object($n.a)({},r||e,h):void 0}function AV(e){var t=e.model,A=e.defaultPos,n=e.channel,r=e.scaleName,i=e.scale,o=t.markDef,a=t.config;return function(){var e=fM(n),s=dM(n),g=dO(n,o,a,{vgChannel:s});if(void 0!==g)return tH(n,g);switch(A){case"zeroOrMin":case"zeroOrMax":if(r){var c=i.get("type");if(c_([jT,WT,XT],c));else if(i.domainDefinitelyIncludesZero())return{scale:r,value:0}}if("zeroOrMin"===A)return"y"===e?{field:{group:"height"}}:{value:0};switch(e){case"radius":return{signal:"min(".concat(t.width.signal,",").concat(t.height.signal,")/2")};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":var u=t[pM(n)];return Object.assign(Object.assign({},u),{mult:.5})}}}var nV={left:"x",center:"xc",right:"x2"},rV={top:"y",middle:"yc",bottom:"y2"};function iV(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"middle";if("radius"===e||"theta"===e)return dM(e);var r,i="x"===e?"align":"baseline",o=dO(i,t,A);return nO(o)?(tT(B.rangeMarkAlignmentCannotBeExpression(i)),r=void 0):r=o,"x"===e?nV[r||("top"===n?"left":"center")]:rV[r||n]}function oV(e,t,A){var n=A.defaultPos,r=A.defaultPos2;return A.range?aV(e,t,{defaultPos:n,defaultPos2:r}):tV(e,t,{defaultPos:n})}function aV(e,t,A){var n=A.defaultPos,r=A.defaultPos2,i=t.markDef,o=t.config,a=BM(e),s=pM(e),g=function(e,t,A){var n,r=e.encoding,i=e.mark,o=e.markDef,a=e.stack,s=e.config,g=fM(A),c=pM(A),u=dM(A),l=r[g],I=e.scaleName(g),C=e.getScaleComponent(g),h=eV(A in r||A in o?A:g,e.markDef);if(!l&&("x2"===A||"y2"===A)&&(r.latitude||r.longitude)){var f=pM(A),d=e.markDef[f];return null!=d?Object($n.a)({},f,{value:d}):Object($n.a)({},u,{field:e.getName(A)})}var B=function(e){var t=e.channel,A=e.channelDef,n=e.channel2Def,r=e.markDef,i=e.config,o=e.scaleName,a=e.scale,s=e.stack,g=e.offset,c=e.defaultRef;if(UH(A)&&s&&t.charAt(0)===s.fieldChannel.charAt(0))return zZ(A,o,{suffix:"start"},{offset:g});return KZ({channel:t,channelDef:n,scaleName:o,scale:a,stack:s,markDef:r,config:i,offset:g,defaultRef:c})}({channel:A,channelDef:l,channel2Def:r[A],markDef:o,config:s,scaleName:I,scale:C,stack:a,offset:h,defaultRef:void 0});if(void 0!==B)return Object($n.a)({},u,B);return sV(A,o)||sV(A,(n={},Object($n.a)(n,A,pO(A,o,s.style)),Object($n.a)(n,c,pO(c,o,s.style)),n))||sV(A,s[i])||sV(A,s.mark)||Object($n.a)({},u,AV({model:e,defaultPos:t,channel:A,scaleName:I,scale:C})())}(t,r,a),c=g[s]?iV(e,i,o):dM(e);return Object.assign(Object.assign({},tV(e,t,{defaultPos:n,vgChannel:c})),g)}function sV(e,t){var A=pM(e),n=dM(e);if(void 0!==t[n])return Object($n.a)({},n,tH(e,t[n]));if(void 0!==t[e])return Object($n.a)({},n,tH(e,t[e]));if(t[A]){var r=t[A];if(!JZ(r))return Object($n.a)({},A,tH(e,r));tT(B.relativeBandSizeNotSupported(A))}}function gV(e,t,A){var n,r,i,o,a=e.config,s=e.encoding,g=e.markDef,c=BM(t),u=pM(t),l=s[t],I=s[c],C=e.getScaleComponent(t),h=C?C.get("type"):void 0,f=e.scaleName(t),d=g.orient,p=null!==(r=null!==(n=s[u])&&void 0!==n?n:s.size)&&void 0!==r?r:dO("size",g,a,{vgChannel:u}),E="bar"===A&&("x"===t?"vertical"===d:"horizontal"===d);if(!DH(l)||!(VM(l.bin)||KM(l.bin)||l.timeUnit&&!I)||p&&!JZ(p)||lZ(h))return(UH(l)&&lZ(h)||E)&&!I?function(e,t,A){var n,r=A.markDef,i=A.encoding,o=A.config,a=A.stack,s=r.orient,g=A.scaleName(t),c=A.getScaleComponent(t),u=pM(t),l=BM(t),I="horizontal"===s&&"y"===t||"vertical"===s&&"x"===t;(i.size||r.size)&&(I?n=zP("size",A,{vgChannel:u,defaultRef:IO(r.size)}):tT(B.cannotApplySizeToNonOrientedMark(r.type)));var C=bH({channel:t,fieldDef:e,markDef:r,config:o,scaleType:null===c||void 0===c?void 0:c.get("type"),useVlSizeChannel:I});n=n||Object($n.a)({},u,function(e,t,A,n,r){if(JZ(r)){if(!A)return{mult:r.band,field:{group:e}};var i=A.get("type");if("band"===i)return{scale:t,band:r.band};1!==r.band&&(tT(B.cannotUseRelativeBandSizeWithNonBandScale(i)),r=void 0)}else{if(nO(r))return r;if(r)return{value:r}}if(A){var o=A.get("range");if(rO(o)&&YU(o.step))return{value:o.step-2}}return{value:mJ(n.view,e)-2}}(u,g,c,o,C));var h="band"===(null===c||void 0===c?void 0:c.get("type"))&&"band"in n[u]?"top":"middle",f=iV(t,r,o,h),d="xc"===f||"yc"===f,p=eV(t,r),E=KZ({channel:t,channelDef:e,markDef:r,config:o,scaleName:g,scale:c,stack:a,offset:p,defaultRef:AV({model:A,defaultPos:"mid",channel:t,scaleName:g,scale:c}),bandPosition:d?.5:nO(C)?{signal:"(1-".concat(C,")/2")}:JZ(C)?(1-C.band)/2:0});if(u)return Object.assign(Object($n.a)({},f,E),n);var Q,y=dM(l),v=n[u],m=p?Object.assign(Object.assign({},v),{offset:p}):v;return Q={},Object($n.a)(Q,f,E),Object($n.a)(Q,y,kU(E)?[E[0],Object.assign(Object.assign({},E[1]),{offset:m})]:Object.assign(Object.assign({},E),{offset:m})),Q}(l,t,e):aV(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"});var Q=bH({channel:t,fieldDef:l,markDef:g,config:a,scaleType:h}),y=null===(i=e.component.axes[t])||void 0===i?void 0:i[0];return function(e){var t,A=e.fieldDef,n=e.fieldDef2,r=e.channel,i=e.bandSize,o=e.scaleName,a=e.markDef,s=e.spacing,g=void 0===s?0:s,c=e.axisTranslate,u=e.reverse,l=e.config,I=BM(r),C=dM(r),h=dM(I),f=eV(r,a),d=nO(i)?{signal:"(1-".concat(i.signal,")/2")}:JZ(i)?(1-i.band)/2:.5;if(VM(A.bin)||A.timeUnit)return t={},Object($n.a)(t,h,uV({channel:r,fieldDef:A,scaleName:o,markDef:a,bandPosition:d,offset:cV(I,g,u,c,f),config:l})),Object($n.a)(t,C,uV({channel:r,fieldDef:A,scaleName:o,markDef:a,bandPosition:nO(d)?{signal:"1-".concat(d.signal)}:1-d,offset:cV(r,g,u,c,f),config:l})),t;if(KM(A.bin)){var p,E,Q=zZ(A,o,{},{offset:cV(I,g,u,c,f)});if(DH(n))return p={},Object($n.a)(p,h,Q),Object($n.a)(p,C,zZ(n,o,{},{offset:cV(r,g,u,c,f)})),p;if(WM(A.bin)&&A.bin.step)return E={},Object($n.a)(E,h,Q),Object($n.a)(E,C,{signal:'scale("'.concat(o,'", ').concat(JH(A,{expr:"datum"})," + ").concat(A.bin.step,")"),offset:cV(r,g,u,c,f)}),E}return void tT(B.channelRequiredForBinned(I))}({fieldDef:l,fieldDef2:I,channel:t,markDef:g,scaleName:f,bandSize:Q,axisTranslate:null!==(o=null===y||void 0===y?void 0:y.get("translate"))&&void 0!==o?o:.5,spacing:mM(t)?dO("binSpacing",g,a):void 0,reverse:C.get("reverse"),config:a})}function cV(e,t,A,n,r){if(AM(e))return 0;var i="x"===e||"y2"===e?-t/2:t/2;if(nO(A)||nO(r)||nO(n)){var o=hO(A),a=hO(r),s=hO(n);return{signal:(s?"".concat(s," + "):"")+(o?"(".concat(o," ? -1 : 1) * "):"")+(a?"(".concat(a," + ").concat(i,")"):i)}}return r=r||0,n+(A?-r-i:+r+i)}function uV(e){var t=e.channel,A=e.fieldDef,n=e.scaleName,r=e.markDef,i=e.bandPosition,o=e.offset,a=e.config;return WZ({fieldDef:A,channel:t,markDef:r,ref:$Z({scaleName:n,fieldOrDatumDef:A,bandPosition:i,offset:o}),config:a})}var lV=new Set(["aria","width","height"]);function IV(e,t){var A="include"===t.color?$P(e):{},n=A.fill,r=void 0===n?void 0:n,i=A.stroke,o=void 0===i?void 0:i;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},function(e,t){return oO.reduce((function(A,n){return lV.has(n)||void 0===e[n]||"ignore"===t[n]||(A[n]=IO(e[n])),A}),{})}(e.markDef,t)),CV(e,"fill",r)),CV(e,"stroke",o)),zP("opacity",e)),zP("fillOpacity",e)),zP("strokeOpacity",e)),zP("strokeWidth",e)),zP("strokeDash",e)),function(e){var t=e.encoding,A=e.mark,n=t.order;return!MZ(A)&&MH(n)?jP(e,n,"zindex",(function(e){return IO(e.value)})):{}}(e)),KP(e)),PP(e,"href")),qP(e))}function CV(e,t,A){var n=e.config,r=e.mark;if("hide"===dO("invalid",e.markDef,n)&&A&&!MZ(r)){var i=function(e,t){var A=t.invalid,n=void 0!==A&&A,r=t.channels.reduce((function(t,A){var n=e.getScaleComponent(A);if(n){var r=n.get("type"),i=e.vgField(A,{expr:"datum"});i&&IZ(r)&&(t[i]=!0)}return t}),{}),i=y_(r);if(i.length>0){var o=n?"||":"&&";return i.map((function(e){return qZ(e,n)})).join(" ".concat(o," "))}return}(e,{invalid:!0,channels:GM});if(i)return Object($n.a)({},t,[{test:i,value:null}].concat(Object(zn.a)(OU(A))))}return A?Object($n.a)({},t,A):{}}function hV(e){var t=e.config;if(dO("invalid",e.markDef,t)){var A=function(e,t){var A=t.invalid,n=void 0!==A&&A,r=t.channels.reduce((function(t,A){var n=e.getScaleComponent(A);if(n){var r=n.get("type"),i=e.vgField(A,{expr:"datum"});i&&IZ(r)&&(t[i]=!0)}return t}),{}),i=y_(r);if(i.length>0){var o=n?"||":"&&";return i.map((function(e){return qZ(e,n)})).join(" ".concat(o," "))}return}(e,{channels:vM});if(A)return{defined:{signal:A}}}return{}}function fV(e,t){if(void 0!==t)return Object($n.a)({},e,IO(t))}var dV={defined:function(e){return"point"===e.type&&e.nearest},parse:function(e,t){if(t.events){var A,n=Object(ut.a)(t.events);try{for(n.s();!(A=n.n()).done;){A.value.markname=e.getName("voronoi")}}catch(r){n.e(r)}finally{n.f()}}},marks:function(e,t,A){var n=t.project.hasChannel,r=n.x,i=n.y,o=e.mark;if(MZ(o))return tT(B.nearestNotSupportForContinuous(o)),A;var a={name:e.getName("voronoi"),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0}},KP(e,{reactiveGeom:!0}))},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]},s=0,g=!1;return A.forEach((function(t,A){var n,r=null!==(n=t.name)&&void 0!==n?n:"";r===e.component.mark[0].name?s=A:r.indexOf("voronoi")>=0&&(g=!0)})),g||A.splice(s+1,0,a),A}},BV={defined:function(e){return"point"===e.type&&"global"===e.resolve&&e.bind&&"scales"!==e.bind&&!uJ(e.bind)},parse:function(e,t,A){return UV(t,A)},topLevelSignals:function(e,t,A){var n=t.name,r=t.project,i=t.bind,o=t.init&&t.init[0],a=dV.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach((function(e,r){var s,g,c=w_("".concat(n,"_").concat(e.field));A.filter((function(e){return e.name===c})).length||A.unshift(Object.assign(Object.assign({name:c},o?{init:SP(o[r])}:{value:null}),{on:t.events?[{events:t.events,update:"datum && item().mark.marktype !== 'group' ? ".concat(a,"[").concat(jU(e.field),"] : null")}]:[],bind:null!==(g=null!==(s=i[e.field])&&void 0!==s?s:i[e.channel])&&void 0!==g?g:i}))})),A},signals:function(e,t,A){var n=t.name,r=t.project,i=A.filter((function(e){return e.name===n+FV}))[0],o=n+"_tuple_fields",a=r.items.map((function(e){return w_("".concat(n,"_").concat(e.field))})),s=a.map((function(e){return"".concat(e," !== null")})).join(" && ");return a.length&&(i.update="".concat(s," ? {fields: ").concat(o,", values: [").concat(a.join(", "),"]} : null")),delete i.value,delete i.on,A}},pV={defined:function(e){return"point"===e.type&&!!e.toggle},signals:function(e,t,A){return A.concat({name:t.name+"_toggle",value:!1,on:[{events:t.events,update:t.toggle}]})},modifyExpr:function(e,t){var A=t.name+FV,n=t.name+"_toggle";return"".concat(n," ? null : ").concat(A,", ")+("global"===t.resolve?"".concat(n," ? null : true, "):"".concat(n," ? null : {unit: ").concat(xV(e),"}, "))+"".concat(n," ? ").concat(A," : null")}},EV={defined:function(e){return void 0!==e.clear&&!1!==e.clear},parse:function(e,t){t.clear&&(t.clear=JU(t.clear)?yP(t.clear,"view"):t.clear)},topLevelSignals:function(e,t,A){if(BV.defined(t)){var n,r=Object(ut.a)(t.project.items);try{var i=function(){var e=n.value,r=A.findIndex((function(A){return A.name===w_("".concat(t.name,"_").concat(e.field))}));-1!==r&&A[r].on.push({events:t.clear,update:"null"})};for(r.s();!(n=r.n()).done;)i()}catch(o){r.e(o)}finally{r.f()}}return A},signals:function(e,t,A){function n(e,n){-1!==e&&A[e].on&&A[e].on.push({events:t.clear,update:n})}if("interval"===t.type){var r,i=Object(ut.a)(t.project.items);try{var o=function(){var e=r.value,t=A.findIndex((function(t){return t.name===e.signals.visual}));(n(t,"[0, 0]"),-1===t)&&n(A.findIndex((function(t){return t.name===e.signals.data})),"null")};for(i.s();!(r=i.n()).done;)o()}catch(s){i.e(s)}finally{i.f()}}else{var a=A.findIndex((function(e){return e.name===t.name+FV}));n(a,"null"),pV.defined(t)&&n(a=A.findIndex((function(e){return e.name===t.name+"_toggle"})),"false")}return A}},QV={defined:function(e){var t="global"===e.resolve&&e.bind&&uJ(e.bind),A=1===e.project.items.length&&"_vgsid_"!==e.project.items[0].field;return t&&!A&&tT(B.LEGEND_BINDINGS_MUST_HAVE_PROJECTION),t&&A},parse:function(e,t,A){var n,r=r_(A);if(r.select=JU(r.select)?{type:r.select,toggle:t.toggle}:Object.assign(Object.assign({},r.select),{toggle:t.toggle}),UV(t,r),Object(ue.H)(A.select)&&(A.select.on||A.select.clear)){var i,o='event.item && indexof(event.item.mark.role, "legend") < 0',a=Object(ut.a)(t.events);try{for(a.s();!(i=a.n()).done;){var s=i.value;s.filter=OU(null!==(n=s.filter)&&void 0!==n?n:[]),s.filter.includes(o)||s.filter.push(o)}}catch(u){a.e(u)}finally{a.f()}}var g=lJ(t.bind)?t.bind.legend:"click",c=JU(g)?yP(g,"view"):OU(g);t.bind={legend:{merge:c}}},topLevelSignals:function(e,t,A){var n,r=t.name,i=lJ(t.bind)&&t.bind.legend,o=function(e){return function(t){var A=r_(t);return A.markname=e,A}},a=Object(ut.a)(t.project.items);try{var s=function(){var e=n.value;if(!e.hasLegend)return"continue";var a="".concat(w_(e.field),"_legend"),s="".concat(r,"_").concat(a);if(0===A.filter((function(e){return e.name===s})).length){var g=i.merge.map(o("".concat(a,"_symbols"))).concat(i.merge.map(o("".concat(a,"_labels")))).concat(i.merge.map(o("".concat(a,"_entries"))));A.unshift(Object.assign(Object.assign({name:s},t.init?{}:{value:null}),{on:[{events:g,update:"datum.value || item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:"!event.item || !datum ? null : ".concat(s),force:!0}]}))}};for(a.s();!(n=a.n()).done;)s()}catch(g){a.e(g)}finally{a.f()}return A},signals:function(e,t,A){var n=t.name,r=t.project,i=A.find((function(e){return e.name===n+FV})),o=n+"_tuple_fields",a=r.items.filter((function(e){return e.hasLegend})).map((function(e){return w_("".concat(n,"_").concat(w_(e.field),"_legend"))})),s=a.map((function(e){return"".concat(e," !== null")})).join(" && "),g="".concat(s," ? {fields: ").concat(o,", values: [").concat(a.join(", "),"]} : null");t.events&&a.length>0?i.on.push({events:a.map((function(e){return{signal:e}})),update:g}):a.length>0&&(i.update=g,delete i.value,delete i.on);var c=A.find((function(e){return e.name===n+"_toggle"})),u=lJ(t.bind)&&t.bind.legend;return c&&(t.events?c.on.push(Object.assign(Object.assign({},c.on[0]),{events:u})):c.on[0].events=u),A}};var yV="_translate_delta",vV={defined:function(e){return"interval"===e.type&&e.translate},signals:function(e,t,A){var n=t.name,r=MP.defined(t),i=n+"_translate_anchor",o=t.project.hasChannel,a=o.x,s=o.y,g=yP(t.translate,"scope");return r||(g=g.map((function(e){return e.between[0].markname=n+ZP,e}))),A.push({name:i,value:{},on:[{events:g.map((function(e){return e.between[0]})),update:"{x: x(unit), y: y(unit)"+(void 0!==a?", extent_x: ".concat(r?OP(e,"x"):"slice(".concat(a.signals.visual,")")):"")+(void 0!==s?", extent_y: ".concat(r?OP(e,"y"):"slice(".concat(s.signals.visual,")")):"")+"}"}]},{name:n+yV,value:{},on:[{events:g,update:"{x: ".concat(i,".x - x(unit), y: ").concat(i,".y - y(unit)}")}]}),void 0!==a&&mV(e,t,a,"width",A),void 0!==s&&mV(e,t,s,"height",A),A}};function mV(e,t,A,n,r){var i,o,a=t.name,s=a+"_translate_anchor",g=a+yV,c=A.channel,u=MP.defined(t),l=r.filter((function(e){return e.name===A.signals[u?"data":"visual"]}))[0],I=e.getSizeSignalRef(n).signal,C=e.getScaleComponent(c),h=C.get("type"),f=C.get("reverse"),d=u?"x"===c?f?"":"-":f?"-":"":"",B="".concat(s,".extent_").concat(c),p="".concat(d).concat(g,".").concat(c," / ").concat(u?"".concat(I):"span(".concat(B,")")),E=u?"log"===h?"panLog":"symlog"===h?"panSymlog":"pow"===h?"panPow":"panLinear":"panLinear",Q=u?"pow"===h?", ".concat(null!==(i=C.get("exponent"))&&void 0!==i?i:1):"symlog"===h?", ".concat(null!==(o=C.get("constant"))&&void 0!==o?o:1):"":"",y="".concat(E,"(").concat(B,", ").concat(p).concat(Q,")");l.on.push({events:{signal:g},update:u?y:"clampRange(".concat(y,", 0, ").concat(I,")")})}var bV={defined:function(e){return"interval"===e.type&&e.zoom},signals:function(e,t,A){var n=t.name,r=MP.defined(t),i=n+"_zoom_delta",o=t.project.hasChannel,a=o.x,s=o.y,g=jU(e.scaleName("x")),c=jU(e.scaleName("y")),u=yP(t.zoom,"scope");return r||(u=u.map((function(e){return e.markname=n+ZP,e}))),A.push({name:n+"_zoom_anchor",on:[{events:u,update:r?"{"+[g?"x: invert(".concat(g,", x(unit))"):"",c?"y: invert(".concat(c,", y(unit))"):""].filter((function(e){return!!e})).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:i,on:[{events:u,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),void 0!==a&&wV(e,t,a,"width",A),void 0!==s&&wV(e,t,s,"height",A),A}};function wV(e,t,A,n,r){var i,o,a=t.name,s=A.channel,g=MP.defined(t),c=r.filter((function(e){return e.name===A.signals[g?"data":"visual"]}))[0],u=e.getSizeSignalRef(n).signal,l=e.getScaleComponent(s),I=l.get("type"),C=g?OP(e,s):c.name,h=a+"_zoom_delta",f="".concat(a).concat("_zoom_anchor",".").concat(s),d=g?"log"===I?"zoomLog":"symlog"===I?"zoomSymlog":"pow"===I?"zoomPow":"zoomLinear":"zoomLinear",B=g?"pow"===I?", ".concat(null!==(i=l.get("exponent"))&&void 0!==i?i:1):"symlog"===I?", ".concat(null!==(o=l.get("constant"))&&void 0!==o?o:1):"":"",p="".concat(d,"(").concat(C,", ").concat(f,", ").concat(h).concat(B,")");c.on.push({events:{signal:h},update:g?p:"clampRange(".concat(p,", 0, ").concat(u,")")})}var SV="_store",FV="_tuple",RV="_modify",DV="vlSelectionResolve",GV=[JP,HP,_P,pV,BV,MP,QV,EV,vV,bV,dV];function kV(e){for(var t=e.parent;t&&!dq(t);)t=t.parent;return t}function xV(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{escape:!0},A=t.escape,n=A?jU(e.name):e.name,r=kV(e);if(r){var i,o=r.facet,a=Object(ut.a)(sM);try{for(a.s();!(i=a.n()).done;){var s=i.value;o[s]&&(n+=" + '__facet_".concat(s,"_' + (facet[").concat(jU(r.vgField(s)),"])"))}}catch(g){a.e(g)}finally{a.f()}}return n}function NV(e){var t;return v_(null!==(t=e.component.selection)&&void 0!==t?t:{}).reduce((function(e,t){return e||t.project.items.some((function(e){return"_vgsid_"===e.field}))}),!1)}function UV(e,t){!Object(ue.J)(t.select)&&t.select.on||delete e.events,!Object(ue.J)(t.select)&&t.select.clear||delete e.clear,!Object(ue.J)(t.select)&&t.select.toggle||delete e.toggle}var _V,MV,OV,LV,TV;function ZV(e){this.type=e}ZV.prototype.visit=function(e){var t,A,n;if(e(this))return 1;for(A=0,n=(t=function(e){switch(e.type){case"ArrayExpression":return e.elements;case"BinaryExpression":case"LogicalExpression":return[e.left,e.right];case"CallExpression":return[e.callee].concat(e.arguments);case"ConditionalExpression":return[e.test,e.consequent,e.alternate];case"MemberExpression":return[e.object,e.property];case"ObjectExpression":return e.properties;case"Property":return[e.key,e.value];case"UnaryExpression":return[e.argument];case"Identifier":case"Literal":case"RawCode":default:return[]}}(this)).length;A<n;++A)if(t[A].visit(e))return 1};(_V={})[1]="Boolean",_V[2]="<end>",_V[3]="Identifier",_V[4]="Keyword",_V[5]="Null",_V[6]="Numeric",_V[7]="Punctuator",_V[8]="String",_V[9]="RegularExpression";var HV=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\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-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\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-\\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\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\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\\u2160-\\u2188\\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-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\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-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\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]"),YV=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\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\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\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\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\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-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function JV(e,t){if(!e)throw new Error("ASSERT: "+t)}function jV(e){return e>=48&&e<=57}function PV(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function VV(e){return"01234567".indexOf(e)>=0}function KV(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function WV(e){return 10===e||13===e||8232===e||8233===e}function XV(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&HV.test(String.fromCharCode(e))}function qV(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&YV.test(String.fromCharCode(e))}var zV={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function $V(){for(;OV<LV;){var e=MV.charCodeAt(OV);if(!KV(e)&&!WV(e))break;++OV}}function eK(e){var t,A,n,r=0;for(A="u"===e?4:2,t=0;t<A;++t)OV<LV&&PV(MV[OV])?(n=MV[OV++],r=16*r+"0123456789abcdef".indexOf(n.toLowerCase())):fK({},"Unexpected token %0","ILLEGAL");return String.fromCharCode(r)}function tK(){var e,t,A,n;for(t=0,"}"===(e=MV[OV])&&fK({},"Unexpected token %0","ILLEGAL");OV<LV&&PV(e=MV[OV++]);)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&fK({},"Unexpected token %0","ILLEGAL"),t<=65535?String.fromCharCode(t):(A=55296+(t-65536>>10),n=56320+(t-65536&1023),String.fromCharCode(A,n))}function AK(){var e,t;for(e=MV.charCodeAt(OV++),t=String.fromCharCode(e),92===e&&(117!==MV.charCodeAt(OV)&&fK({},"Unexpected token %0","ILLEGAL"),++OV,(e=eK("u"))&&"\\"!==e&&XV(e.charCodeAt(0))||fK({},"Unexpected token %0","ILLEGAL"),t=e);OV<LV&&qV(e=MV.charCodeAt(OV));)++OV,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==MV.charCodeAt(OV)&&fK({},"Unexpected token %0","ILLEGAL"),++OV,(e=eK("u"))&&"\\"!==e&&qV(e.charCodeAt(0))||fK({},"Unexpected token %0","ILLEGAL"),t+=e);return t}function nK(){var e,t;return e=OV,{type:1===(t=92===MV.charCodeAt(OV)?AK():function(){var e,t;for(e=OV++;OV<LV;){if(92===(t=MV.charCodeAt(OV)))return OV=e,AK();if(!qV(t))break;++OV}return MV.slice(e,OV)}()).length?3:zV.hasOwnProperty(t)?4:"null"===t?5:"true"===t||"false"===t?1:3,value:t,start:e,end:OV}}function rK(){var e,t,A,n,r=OV,i=MV.charCodeAt(OV),o=MV[OV];switch(i){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++OV,{type:7,value:String.fromCharCode(i),start:r,end:OV};default:if(61===(e=MV.charCodeAt(OV+1)))switch(i){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return OV+=2,{type:7,value:String.fromCharCode(i)+String.fromCharCode(e),start:r,end:OV};case 33:case 61:return OV+=2,61===MV.charCodeAt(OV)&&++OV,{type:7,value:MV.slice(r,OV),start:r,end:OV}}}return">>>="===(n=MV.substr(OV,4))?{type:7,value:n,start:r,end:OV+=4}:">>>"===(A=n.substr(0,3))||"<<="===A||">>="===A?{type:7,value:A,start:r,end:OV+=3}:o===(t=A.substr(0,2))[1]&&"+-<>&|".indexOf(o)>=0||"=>"===t?{type:7,value:t,start:r,end:OV+=2}:("//"===t&&fK({},"Unexpected token %0","ILLEGAL"),"<>=!+-*%&|^/".indexOf(o)>=0?{type:7,value:o,start:r,end:++OV}:void fK({},"Unexpected token %0","ILLEGAL"))}function iK(){var e,t,A;if(JV(jV((A=MV[OV]).charCodeAt(0))||"."===A,"Numeric literal must start with a decimal digit or a decimal point"),t=OV,e="","."!==A){if(e=MV[OV++],A=MV[OV],"0"===e){if("x"===A||"X"===A)return++OV,function(e){for(var t="";OV<LV&&PV(MV[OV]);)t+=MV[OV++];return 0===t.length&&fK({},"Unexpected token %0","ILLEGAL"),XV(MV.charCodeAt(OV))&&fK({},"Unexpected token %0","ILLEGAL"),{type:6,value:parseInt("0x"+t,16),start:e,end:OV}}(t);if(VV(A))return function(e){for(var t="0"+MV[OV++];OV<LV&&VV(MV[OV]);)t+=MV[OV++];return(XV(MV.charCodeAt(OV))||jV(MV.charCodeAt(OV)))&&fK({},"Unexpected token %0","ILLEGAL"),{type:6,value:parseInt(t,8),octal:!0,start:e,end:OV}}(t);A&&jV(A.charCodeAt(0))&&fK({},"Unexpected token %0","ILLEGAL")}for(;jV(MV.charCodeAt(OV));)e+=MV[OV++];A=MV[OV]}if("."===A){for(e+=MV[OV++];jV(MV.charCodeAt(OV));)e+=MV[OV++];A=MV[OV]}if("e"===A||"E"===A)if(e+=MV[OV++],"+"!==(A=MV[OV])&&"-"!==A||(e+=MV[OV++]),jV(MV.charCodeAt(OV)))for(;jV(MV.charCodeAt(OV));)e+=MV[OV++];else fK({},"Unexpected token %0","ILLEGAL");return XV(MV.charCodeAt(OV))&&fK({},"Unexpected token %0","ILLEGAL"),{type:6,value:parseFloat(e),start:t,end:OV}}function oK(){var e,t,A,n;return TV=null,$V(),e=OV,t=function(){var e,t,A,n;for(JV("/"===(e=MV[OV]),"Regular expression literal must start with a slash"),t=MV[OV++],A=!1,n=!1;OV<LV;)if(t+=e=MV[OV++],"\\"===e)WV((e=MV[OV++]).charCodeAt(0))&&fK({},"Invalid regular expression: missing /"),t+=e;else if(WV(e.charCodeAt(0)))fK({},"Invalid regular expression: missing /");else if(A)"]"===e&&(A=!1);else{if("/"===e){n=!0;break}"["===e&&(A=!0)}return n||fK({},"Invalid regular expression: missing /"),{value:t.substr(1,t.length-2),literal:t}}(),A=function(){var e,t,A;for(t="",A="";OV<LV&&qV((e=MV[OV]).charCodeAt(0));)++OV,"\\"===e&&OV<LV?fK({},"Unexpected token %0","ILLEGAL"):(A+=e,t+=e);return A.search(/[^gimuy]/g)>=0&&fK({},"Invalid regular expression",A),{value:A,literal:t}}(),n=function(e,t){var A=e;t.indexOf("u")>=0&&(A=A.replace(/\\u\{([0-9a-fA-F]+)\}/g,(function(e,t){if(parseInt(t,16)<=1114111)return"x";fK({},"Invalid regular expression")})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(A)}catch(n){fK({},"Invalid regular expression")}try{return new RegExp(e,t)}catch(r){return null}}(t.value,A.value),{literal:t.literal+A.literal,value:n,regex:{pattern:t.value,flags:A.value},start:e,end:OV}}function aK(){if($V(),OV>=LV)return{type:2,start:OV,end:OV};var e=MV.charCodeAt(OV);return XV(e)?nK():40===e||41===e||59===e?rK():39===e||34===e?function(){var e,t,A,n,r="",i=!1;for(JV("'"===(e=MV[OV])||'"'===e,"String literal must starts with a quote"),t=OV,++OV;OV<LV;){if((A=MV[OV++])===e){e="";break}if("\\"===A)if((A=MV[OV++])&&WV(A.charCodeAt(0)))"\r"===A&&"\n"===MV[OV]&&++OV;else switch(A){case"u":case"x":"{"===MV[OV]?(++OV,r+=tK()):r+=eK(A);break;case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+="\t";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;default:VV(A)?(0!==(n="01234567".indexOf(A))&&(i=!0),OV<LV&&VV(MV[OV])&&(i=!0,n=8*n+"01234567".indexOf(MV[OV++]),"0123".indexOf(A)>=0&&OV<LV&&VV(MV[OV])&&(n=8*n+"01234567".indexOf(MV[OV++]))),r+=String.fromCharCode(n)):r+=A}else{if(WV(A.charCodeAt(0)))break;r+=A}}return""!==e&&fK({},"Unexpected token %0","ILLEGAL"),{type:8,value:r,octal:i,start:t,end:OV}}():46===e?jV(MV.charCodeAt(OV+1))?iK():rK():jV(e)?iK():rK()}function sK(){var e=TV;return OV=e.end,TV=aK(),OV=e.end,e}function gK(){var e=OV;TV=aK(),OV=e}function cK(e,t,A){var n=new ZV("||"===e||"&&"===e?"LogicalExpression":"BinaryExpression");return n.operator=e,n.left=t,n.right=A,n}function uK(e,t){var A=new ZV("CallExpression");return A.callee=e,A.arguments=t,A}function lK(e){var t=new ZV("Identifier");return t.name=e,t}function IK(e){var t=new ZV("Literal");return t.value=e.value,t.raw=MV.slice(e.start,e.end),e.regex&&("//"===t.raw&&(t.raw="/(?:)/"),t.regex=e.regex),t}function CK(e,t,A){var n=new ZV("MemberExpression");return n.computed="["===e,n.object=t,n.property=A,n.computed||(A.member=!0),n}function hK(e,t,A){var n=new ZV("Property");return n.key=t,n.value=A,n.kind=e,n}function fK(e,t){var A,n=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,(function(e,t){return JV(t<n.length,"Message reference must be in range"),n[t]}));throw(A=new Error(r)).index=OV,A.description=r,A}function dK(e){2===e.type&&fK(e,"Unexpected end of input"),6===e.type&&fK(e,"Unexpected number"),8===e.type&&fK(e,"Unexpected string"),3===e.type&&fK(e,"Unexpected identifier"),4===e.type&&fK(e,"Unexpected reserved word"),fK(e,"Unexpected token %0",e.value)}function BK(e){var t=sK();7===t.type&&t.value===e||dK(t)}function pK(e){return 7===TV.type&&TV.value===e}function EK(e){return 4===TV.type&&TV.value===e}function QK(){var e=[];for(OV=TV.start,BK("[");!pK("]");)pK(",")?(sK(),e.push(null)):(e.push(xK()),pK("]")||BK(","));return sK(),function(e){var t=new ZV("ArrayExpression");return t.elements=e,t}(e)}function yK(){OV=TV.start;var e=sK();return 8===e.type||6===e.type?(e.octal&&fK(e,"Octal literals are not allowed in strict mode."),IK(e)):lK(e.value)}function vK(){var e,t,A;return OV=TV.start,3===(e=TV).type?(A=yK(),BK(":"),hK("init",A,xK())):2!==e.type&&7!==e.type?(t=yK(),BK(":"),hK("init",t,xK())):void dK(e)}function mK(){var e,t,A=[],n={},r=String;for(OV=TV.start,BK("{");!pK("}");)t="$"+("Identifier"===(e=vK()).key.type?e.key.name:r(e.key.value)),Object.prototype.hasOwnProperty.call(n,t)?fK({},"Duplicate data property in object literal not allowed in strict mode"):n[t]=!0,A.push(e),pK("}")||BK(",");return BK("}"),function(e){var t=new ZV("ObjectExpression");return t.properties=e,t}(A)}var bK={if:1};function wK(){var e,t,A;if(pK("("))return function(){BK("(");var e=NK();return BK(")"),e}();if(pK("["))return QK();if(pK("{"))return mK();if(e=TV.type,OV=TV.start,3===e||bK[TV.value])A=lK(sK().value);else if(8===e||6===e)TV.octal&&fK(TV,"Octal literals are not allowed in strict mode."),A=IK(sK());else{if(4===e)throw new Error("Disabled.");1===e?((t=sK()).value="true"===t.value,A=IK(t)):5===e?((t=sK()).value=null,A=IK(t)):pK("/")||pK("/=")?(A=IK(oK()),gK()):dK(sK())}return A}function SK(){var e=[];if(BK("("),!pK(")"))for(;OV<LV&&(e.push(xK()),!pK(")"));)BK(",");return BK(")"),e}function FK(){return BK("."),function(){OV=TV.start;var e=sK();return function(e){return 3===e.type||4===e.type||1===e.type||5===e.type}(e)||dK(e),lK(e.value)}()}function RK(){BK("[");var e=NK();return BK("]"),e}function DK(){var e=function(){var e;for(e=wK();;)if(pK("."))e=CK(".",e,FK());else if(pK("("))e=uK(e,SK());else{if(!pK("["))break;e=CK("[",e,RK())}return e}();if(7===TV.type&&(pK("++")||pK("--")))throw new Error("Disabled.");return e}function GK(){var e,t;if(7!==TV.type&&4!==TV.type)t=DK();else{if(pK("++")||pK("--"))throw new Error("Disabled.");if(pK("+")||pK("-")||pK("~")||pK("!"))e=sK(),t=GK(),t=function(e,t){var A=new ZV("UnaryExpression");return A.operator=e,A.argument=t,A.prefix=!0,A}(e.value,t);else{if(EK("delete")||EK("void")||EK("typeof"))throw new Error("Disabled.");t=DK()}}return t}function kK(e){var t=0;if(7!==e.type&&4!==e.type)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11}return t}function xK(){var e,t;return e=function(){var e,t,A,n,r,i,o,a,s,g;if(e=TV,s=GK(),0===(r=kK(n=TV)))return s;for(n.prec=r,sK(),t=[e,TV],i=[s,n,o=GK()];(r=kK(TV))>0;){for(;i.length>2&&r<=i[i.length-2].prec;)o=i.pop(),a=i.pop().value,s=i.pop(),t.pop(),A=cK(a,s,o),i.push(A);(n=sK()).prec=r,i.push(n),t.push(TV),A=GK(),i.push(A)}for(A=i[g=i.length-1],t.pop();g>1;)t.pop(),A=cK(i[g-1].value,i[g-2],A),g-=2;return A}(),pK("?")&&(sK(),t=xK(),BK(":"),e=function(e,t,A){var n=new ZV("ConditionalExpression");return n.test=e,n.consequent=t,n.alternate=A,n}(e,t,xK())),e}function NK(){var e=xK();if(pK(","))throw new Error("Disabled.");return e}function UK(e){var t=function(e){OV=0,LV=(MV=e).length,TV=null,gK();var t=NK();if(2!==TV.type)throw new Error("Unexpect token after expression.");return t}(e),A=new Set;return t.visit((function(e){"MemberExpression"===e.type&&function e(t){return"MemberExpression"===t.object.type?e(t.object):"datum"===t.object.name}(e)&&A.add(function e(t){var A=[];return"Identifier"===t.type?[t.name]:"Literal"===t.type?[t.value]:("MemberExpression"===t.type&&(A.push.apply(A,Object(zn.a)(e(t.object))),A.push.apply(A,Object(zn.a)(e(t.property)))),A)}(e).slice(1).join("."))})),A}var _K=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r){var i;return Object(y.a)(this,A),(i=t.call(this,e)).model=n,i.filter=r,i.expr=LK(i.model,i.filter,Object(m.a)(i)),i._dependentFields=UK(i.expr),i}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,this.model,r_(this.filter))}},{key:"dependentFields",value:function(){return this._dependentFields}},{key:"producedFields",value:function(){return new Set}},{key:"assemble",value:function(){return{type:"filter",expr:this.expr}}},{key:"hash",value:function(){return"Filter ".concat(this.expr)}}]),A}(DP);function MK(e,t,A){var n,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"datum",i=JU(t)?t:t.param,o=w_(i),a=jU(o+SV);try{n=e.getSelectionComponent(o,i)}catch(l){return"!!".concat(o)}if(n.project.timeUnit){var s=null!==A&&void 0!==A?A:e.component.data.raw,g=n.project.timeUnit.clone();s.parent?g.insertAsParentOf(s):s.parent=g}var c="vlSelectionTest(".concat(a,", ").concat(r).concat("global"===n.resolve?")":", ".concat(jU(n.resolve),")")),u="length(data(".concat(a,"))");return!1===t.empty?"".concat(u," && ").concat(c):"!".concat(u," || ").concat(c)}function OK(e,t,A){var n,r=w_(t),i=A.encoding,o=A.field;try{n=e.getSelectionComponent(r,t)}catch(s){return r}if(i||o){if(i&&!o){var a=n.project.items.filter((function(e){return e.channel===i}));!a.length||a.length>1?(o=n.project.items[0].field,tT((a.length?"Multiple ":"No ")+"matching ".concat(jU(i)," encoding found for selection ").concat(jU(A.param),". ")+'Using "field": '.concat(jU(o),"."))):o=a[0].field}}else o=n.project.items[0].field,n.project.items.length>1&&tT('A "field" or "encoding" must be specified when using a selection as a scale domain. '+'Using "field": '.concat(jU(o),"."));return"".concat(n.name,"[").concat(jU(x_(o)),"]")}function LK(e,t,A){return S_(t,(function(t){return JU(t)?t:function(e){return null===e||void 0===e?void 0:e.param}(t)?MK(e,t,A):xT(t)}))}var TK=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function ZK(e,t){if(e)return kU(e)&&!AO(e)?e.map((function(e){return $H(e,t)})).join(", "):e}function HK(e,t,A,n){var r,i,o,a,s;null!==(r=e.encode)&&void 0!==r||(e.encode={}),null!==(i=(a=e.encode)[t])&&void 0!==i||(a[t]={}),null!==(o=(s=e.encode[t]).update)&&void 0!==o||(s.update={}),e.encode[t].update[A]=n}function YK(e,t,A){var n,r,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{header:!1},o=e.combine(),a=o.disable,s=o.orient,g=o.scale,c=o.labelExpr,u=o.title,l=o.zindex,I=TK(o,["disable","orient","scale","labelExpr","title","zindex"]);if(!a){for(var C in I){var h=dY[C],f=I[C];if(h&&h!==t&&"both"!==h)delete I[C];else if(hY(f)){var d=f.condition,B=TK(f,["condition"]),p=OU(d),E=CY[C];if(E){var Q=E.vgProp,y=E.part,v=[].concat(Object(zn.a)(p.map((function(e){var t=e.test,A=TK(e,["test"]);return Object.assign({test:LK(null,t)},A)}))),[B]);HK(I,y,Q,v),delete I[C]}else if(null===E){var m={signal:p.map((function(e){var t=e.test,A=TK(e,["test"]);return"".concat(LK(null,t)," ? ").concat(CO(A)," : ")})).join("")+CO(B)};I[C]=m}}else if(nO(f)){var b=CY[C];if(b){var w=b.vgProp,S=b.part;HK(I,S,w,f),delete I[C]}}c_(["labelAlign","labelBaseline"],C)&&null===I[C]&&delete I[C]}if("grid"===t){if(!I.grid)return;if(I.encode){var F=I.encode.grid;I.encode=Object.assign({},F?{grid:F}:{}),Q_(I.encode)&&delete I.encode}return Object.assign(Object.assign({scale:g,orient:s},I),{domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:M_(l,0)})}if(i.header||!e.mainExtracted){if(void 0!==c){var R=c;(null===(r=null===(n=I.encode)||void 0===n?void 0:n.labels)||void 0===r?void 0:r.update)&&nO(I.encode.labels.update.text)&&(R=N_(c,"datum.label",I.encode.labels.update.text.signal)),HK(I,"labels","text",{signal:R})}if(null===I.labelAlign&&delete I.labelAlign,I.encode){var D,G=Object(ut.a)(fY);try{for(G.s();!(D=G.n()).done;){var k=D.value;e.hasAxisPart(k)||delete I.encode[k]}}catch(N){G.e(N)}finally{G.f()}Q_(I.encode)&&delete I.encode}var x=ZK(u,A);return Object.assign(Object.assign(Object.assign(Object.assign({scale:g,orient:s,grid:!1},x?{title:x}:{}),I),!1===A.aria?{aria:!1}:{}),{zindex:M_(l,0)})}}}function JK(e){var t,A=e.component.axes,n=[],r=Object(ut.a)(vM);try{for(r.s();!(t=r.n()).done;){var i=t.value;if(A[i]){var o,a=Object(ut.a)(A[i]);try{for(a.s();!(o=a.n()).done;){var s=o.value;if(!s.get("disable")&&!s.get("gridScale")){var g="x"===i?"height":"width",c=e.getSizeSignalRef(g).signal;g!==c&&n.push({name:g,update:c})}}}catch(u){a.e(u)}finally{a.f()}}}}catch(u){r.e(u)}finally{r.f()}return n}function jK(e,t,A,n){return Object.assign.apply(null,[{}].concat(Object(zn.a)(e.map((function(e){if("axisOrient"===e){var r,i="x"===A?"bottom":"left",o=t["x"===A?"axisBottom":"axisLeft"]||{},a=t["x"===A?"axisTop":"axisRight"]||{},s=new Set([].concat(Object(zn.a)(y_(o)),Object(zn.a)(y_(a)))),g={},c=Object(ut.a)(s.values());try{for(c.s();!(r=c.n()).done;){var u=r.value;g[u]={signal:"".concat(n.signal,' === "').concat(i,'" ? ').concat(hO(o[u])," : ").concat(hO(a[u]))}}}catch(l){c.e(l)}finally{c.f()}return g}return t[e]})))))}function PK(e,t,A,n){var r="band"===t?["axisDiscrete","axisBand"]:"point"===t?["axisDiscrete","axisPoint"]:t in sZ?["axisQuantitative"]:"time"===t||"utc"===t?["axisTemporal"]:[],i="x"===e?"axisX":"axisY",o=nO(A)?"axisOrient":"axis".concat(R_(A)),a=[].concat(r,Object(zn.a)(r.map((function(e){return i+e.substr(4)})))),s=["axis",o,i];return{vlOnlyAxisConfig:jK(a,n,e,A),vgAxisConfig:jK(s,n,e,A),axisConfigStyle:VK([].concat(s,Object(zn.a)(a)),n)}}function VK(e,t){var A,n,r=[{}],i=Object(ut.a)(e);try{for(i.s();!(n=i.n()).done;){var o=null===(A=t[n.value])||void 0===A?void 0:A.style;if(o){o=OU(o);var a,s=Object(ut.a)(o);try{for(s.s();!(a=s.n()).done;){var g=a.value;r.push(t.style[g])}}catch(c){s.e(c)}finally{s.f()}}}}catch(c){i.e(c)}finally{i.f()}return Object.assign.apply(null,r)}function KK(e,t,A){var n,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=EO(e,A,t);if(void 0!==i)return{configFrom:"style",configValue:i};for(var o=0,a=["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"];o<a.length;o++){var s=a[o];if(void 0!==(null===(n=r[s])||void 0===n?void 0:n[e]))return{configFrom:s,configValue:r[s][e]}}return{}}var WK={scale:function(e){var t=e.model,A=e.channel;return t.scaleName(A)},format:function(e){var t=e.fieldOrDatumDef,A=e.config,n=e.axis,r=n.format,i=n.formatType;return aH(t,t.type,r,i,A,!0)},formatType:function(e){var t=e.axis,A=e.fieldOrDatumDef,n=e.scaleType,r=t.formatType;return sH(r,A,n)},grid:function(e){var t,A=e.fieldOrDatumDef,n=e.axis,r=e.scaleType;return null!==(t=n.grid)&&void 0!==t?t:function(e,t){return!lZ(e)&&DH(t)&&!VM(null===t||void 0===t?void 0:t.bin)&&!KM(null===t||void 0===t?void 0:t.bin)}(r,A)},gridScale:function(e){return function(e,t){var A="x"===t?"y":"x";if(e.getScaleComponent(A))return e.scaleName(A);return}(e.model,e.channel)},labelAlign:function(e){var t=e.axis,A=e.labelAngle,n=e.orient,r=e.channel;return t.labelAlign||zK(A,n,r)},labelAngle:function(e){return e.labelAngle},labelBaseline:function(e){var t=e.axis,A=e.labelAngle,n=e.orient,r=e.channel;return t.labelBaseline||qK(A,n,r)},labelFlush:function(e){var t,A=e.axis,n=e.fieldOrDatumDef,r=e.channel;return null!==(t=A.labelFlush)&&void 0!==t?t:function(e,t){if("x"===t&&c_(["quantitative","temporal"],e))return!0;return}(n.type,r)},labelOverlap:function(e){var t,A=e.axis,n=e.fieldOrDatumDef,r=e.scaleType;return null!==(t=A.labelOverlap)&&void 0!==t?t:function(e,t,A,n){if(A&&!xU(n)||"nominal"!==e&&"ordinal"!==e)return"log"!==t&&"symlog"!==t||"greedy";return}(n.type,r,DH(n)&&!!n.timeUnit,DH(n)?n.sort:void 0)},orient:function(e){return e.orient},tickCount:function(e){var t,A=e.channel,n=e.model,r=e.axis,i=e.fieldOrDatumDef,o=e.scaleType,a="x"===A?"width":"y"===A?"height":void 0,s=a?n.getSizeSignalRef(a):void 0;return null!==(t=r.tickCount)&&void 0!==t?t:function(e){var t,A=e.fieldOrDatumDef,n=e.scaleType,r=e.size;if(!e.values&&!lZ(n)&&"log"!==n){if(DH(A)){if(VM(A.bin))return{signal:"ceil(".concat(r.signal,"/10)")};if(A.timeUnit&&c_(["month","hours","day","quarter"],null===(t=ET(A.timeUnit))||void 0===t?void 0:t.unit))return}return{signal:"ceil(".concat(r.signal,"/40)")}}return}({fieldOrDatumDef:i,scaleType:o,size:s,values:r.values})},title:function(e){var t=e.axis,A=e.model,n=e.channel;if(void 0!==t.title)return t.title;var r=$K(A,n);if(void 0!==r)return r;var i=A.typedFieldDef(n),o="x"===n?"x2":"y2",a=A.fieldDef(o);return yO(i?[yH(i)]:[],DH(a)?[yH(a)]:[])},values:function(e){return function(e,t){var A=e.values;if(kU(A))return lY(t,A);if(nO(A))return A;return}(e.axis,e.fieldOrDatumDef)},zindex:function(e){var t,A=e.axis,n=e.fieldOrDatumDef,r=e.mark;return null!==(t=A.zindex)&&void 0!==t?t:function(e,t){if("rect"===e&&jH(t))return 1;return 0}(r,n)}};function XK(e){return"(((".concat(e.signal," % 360) + 360) % 360)")}function qK(e,t,A,n){if(void 0!==e){if("x"===A){if(nO(e)){var r=XK(e),i=nO(t)?"(".concat(t.signal,' === "top")'):"top"===t;return{signal:"(45 < ".concat(r," && ").concat(r," < 135) || (225 < ").concat(r," && ").concat(r,' < 315) ? "middle" :')+"(".concat(r," <= 45 || 315 <= ").concat(r,") === ").concat(i,' ? "bottom" : "top"')}}if(45<e&&e<135||225<e&&e<315)return"middle";if(nO(t)){var o=e<=45||315<=e?"===":"!==";return{signal:"".concat(t.signal," ").concat(o,' "top" ? "bottom" : "top"')}}return(e<=45||315<=e)===("top"===t)?"bottom":"top"}if(nO(e)){var a=XK(e),s=nO(t)?"(".concat(t.signal,' === "left")'):"left"===t,g=n?'"middle"':"null";return{signal:"".concat(a," <= 45 || 315 <= ").concat(a," || (135 <= ").concat(a," && ").concat(a," <= 225) ? ").concat(g," : (45 <= ").concat(a," && ").concat(a," <= 135) === ").concat(s,' ? "top" : "bottom"')}}if(e<=45||315<=e||135<=e&&e<=225)return n?"middle":null;if(nO(t)){var c=45<=e&&e<=135?"===":"!==";return{signal:"".concat(t.signal," ").concat(c,' "left" ? "top" : "bottom"')}}return(45<=e&&e<=135)===("left"===t)?"top":"bottom"}}function zK(e,t,A){if(void 0!==e){var n="x"===A,r=n?0:90,i=n?"bottom":"left";if(nO(e)){var o=XK(e),a=nO(t)?"(".concat(t.signal,' === "').concat(i,'")'):t===i;return{signal:"(".concat(r?"(".concat(o," + 90)"):o," % 180 === 0) ? ").concat(n?null:'"center"'," :")+"(".concat(r," < ").concat(o," && ").concat(o," < ").concat(180+r,") === ").concat(a,' ? "left" : "right"')}}if((e+r)%180===0)return n?null:"center";if(nO(t)){var s=r<e&&e<180+r?"===":"!==",g="".concat(t.signal," ").concat(s,' "').concat(i,'"');return{signal:"".concat(g,' ? "left" : "right"')}}return(r<e&&e<180+r)===(t===i)?"left":"right"}}function $K(e,t){var A="x"===t?"x2":"y2",n=e.fieldDef(t),r=e.fieldDef(A),i=n?n.title:void 0,o=r?r.title:void 0;return i&&o?vO(i,o):i||(o||(void 0!==i?i:void 0!==o?o:void 0))}var eW=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r._dependentFields=UK(r.transform.calculate),r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform))}},{key:"producedFields",value:function(){return new Set([this.transform.as])}},{key:"dependentFields",value:function(){return this._dependentFields}},{key:"assemble",value:function(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}},{key:"hash",value:function(){return"Calculate ".concat(s_(this.transform))}}],[{key:"parseAllForSortIndex",value:function(e,t){return t.forEachFieldDef((function(t,n){if(OH(t)&&dH(t.sort)){var r=t.field,i=t.timeUnit,o=t.sort,a=o.map((function(e,t){return"".concat(xT({field:r,timeUnit:i,equal:e})," ? ").concat(t," : ")})).join("")+o.length;e=new A(e,{calculate:a,as:tW(t,n,{forAs:!0})})}})),e}}]),A}(DP);function tW(e,t,A){return JH(e,Object.assign({prefix:t,suffix:"sort_index"},null!==A&&void 0!==A?A:{}))}function AW(e,t){return c_(["top","bottom"],t)?"column":c_(["left","right"],t)||"row"===e?"row":"column"}function nW(e,t,A,n){var r="row"===n?A.headerRow:"column"===n?A.headerColumn:A.headerFacet;return M_((t||{})[e],r[e],A.header[e])}function rW(e,t,A,n){var r,i={},o=Object(ut.a)(e);try{for(o.s();!(r=o.n()).done;){var a=r.value,s=nW(a,t||{},A,n);void 0!==s&&(i[a]=s)}}catch(g){o.e(g)}finally{o.f()}return i}var iW=["row","column"],oW=["header","footer"];function aW(e,t){var A=e.component.layoutHeaders[t].title,n=e.config?e.config:void 0,r=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,i=rW(["titleAnchor","titleAngle","titleOrient"],r.header,n,t),o=i.titleAnchor,a=i.titleAngle,s=AW(t,i.titleOrient),g=Y_(a);return{name:"".concat(t,"-title"),type:"group",role:"".concat(s,"-title"),title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:A},"row"===t?{orient:"left"}:{}),{style:"guide-title"}),gW(g,s)),sW(s,g,o)),fW(n,r,t,iJ,nJ))}}function sW(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"middle";switch(A){case"start":return{align:"left"};case"end":return{align:"right"}}var n=zK(t,"row"===e?"left":"top","row"===e?"y":"x");return n?{align:n}:{}}function gW(e,t){var A=qK(e,"row"===t?"left":"top","row"===t?"y":"x",!0);return A?{baseline:A}:{}}function cW(e,t){var A,n=e.component.layoutHeaders[t],r=[],i=Object(ut.a)(oW);try{for(i.s();!(A=i.n()).done;){var o=A.value;if(n[o]){var a,s=Object(ut.a)(n[o]);try{for(s.s();!(a=s.n()).done;){var g=IW(e,t,o,n,a.value);null!=g&&r.push(g)}}catch(c){s.e(c)}finally{s.f()}}}}catch(c){i.e(c)}finally{i.f()}return r}function uW(e,t){var A,n=e.sort;return fH(n)?{field:JH(n,{expr:"datum"}),order:null!==(A=n.order)&&void 0!==A?A:"ascending"}:kU(n)?{field:tW(e,t,{expr:"datum"}),order:"ascending"}:{field:JH(e,{expr:"datum"}),order:null!==n&&void 0!==n?n:"ascending"}}function lW(e,t,A){var n=rW(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,A,t),r=n.format,i=n.formatType,o=n.labelAngle,a=n.labelAnchor,s=n.labelOrient,g=n.labelExpr,c=rH({fieldOrDatumDef:e,format:r,formatType:i,expr:"parent",config:A}).signal,u=AW(t,s);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:g?N_(N_(g,"datum.label",c),"datum.value",JH(e,{expr:"parent"})):c}},"row"===t?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),gW(o,u)),sW(u,o,a)),fW(A,e,t,oJ,rJ))}function IW(e,t,A,n,r){if(r){var i=null,o=n.facetFieldDef,a=e.config?e.config:void 0;if(o&&r.labels){var s=rW(["labelOrient"],o.header,a,t).labelOrient;("row"===t&&!c_(["top","bottom"],s)||"column"===t&&!c_(["left","right"],s))&&(i=lW(o,t,a))}var g=dq(e)&&!BH(e.facet),c=r.axes,u=(null===c||void 0===c?void 0:c.length)>0;if(i||u){var l="row"===t?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:e.getName("".concat(t,"_").concat(A)),type:"group",role:"".concat(t,"-").concat(A)},n.facetFieldDef?{from:{data:e.getName("".concat(t,"_domain"))},sort:uW(o,t)}:{}),u&&g?{from:{data:e.getName("facet_domain_".concat(t))}}:{}),i?{title:i}:{}),r.sizeSignal?{encode:{update:Object($n.a)({},l,r.sizeSignal)}}:{}),u?{axes:c}:{})}}return null}var CW={column:{start:0,end:1},row:{start:1,end:0}};function hW(e,t){return CW[t][e]}function fW(e,t,A,n,r){var i,o={},a=Object(ut.a)(n);try{for(a.s();!(i=a.n()).done;){var s=i.value;if(r[s]){var g=nW(s,null===t||void 0===t?void 0:t.header,e,A);void 0!==g&&(o[r[s]]=g)}}}catch(c){a.e(c)}finally{a.f()}return o}function dW(e){return[].concat(Object(zn.a)(BW(e,"width")),Object(zn.a)(BW(e,"height")),Object(zn.a)(BW(e,"childWidth")),Object(zn.a)(BW(e,"childHeight")))}function BW(e,t){var A="width"===t?"x":"y",n=e.component.layoutSize.get(t);if(!n||"merged"===n)return[];var r=e.getSizeSignalRef(t).signal;if("step"===n){var i=e.getScaleComponent(A);if(i){var o=i.get("type"),a=i.get("range");if(lZ(o)&&rO(a)){var s=e.scaleName(A);if(dq(e.parent))if("independent"===e.parent.component.resolve.scale[A])return[pW(s,a)];return[pW(s,a),{name:r,update:EW(s,i,"domain('".concat(s,"').length"))}]}}throw new Error("layout size is step although width/height is not step.")}if("container"==n){var g=r.endsWith("width"),c=g?"containerSize()[0]":"containerSize()[1]",u=vJ(e.config.view,g?"width":"height"),l="isFinite(".concat(c,") ? ").concat(c," : ").concat(u);return[{name:r,init:l,on:[{update:l,events:"window:resize"}]}]}return[{name:r,value:n}]}function pW(e,t){return{name:"".concat(e,"_step"),value:t.step}}function EW(e,t,A){var n=t.get("type"),r=t.get("padding"),i=M_(t.get("paddingOuter"),r),o=t.get("paddingInner");return o="band"===n?void 0!==o?o:r:1,"bandspace(".concat(A,", ").concat(hO(o),", ").concat(hO(i),") * ").concat(e,"_step")}function QW(e){return"childWidth"===e?"width":"childHeight"===e?"height":e}function yW(e,t){return y_(e).reduce((function(A,n){var r=e[n];return Object.assign(Object.assign({},A),jP(t,r,n,(function(e){return IO(e.value)})))}),{})}function vW(e,t){if(dq(t))return"theta"===e?"independent":"shared";if(pq(t))return"shared";if(Bq(t))return mM(e)||"theta"===e||"radius"===e?"independent":"shared";throw new Error("invalid model type for resolve")}function mW(e,t){var A=e.scale[t],n=mM(t)?"axis":"legend";return"independent"===A?("shared"===e[n][t]&&tT(B.independentScaleMeansIndependentGuide(t)),"independent"):e[n][t]||"shared"}var bW=Object.assign(Object.assign({},gJ),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),wW=y_(bW),SW=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return A}(nP),FW={symbols:function(e,t){var A,n,r,i,o,a,s,g,c=t.fieldOrDatumDef,u=t.model,l=t.channel,I=t.legendCmpt;if("symbol"!==t.legendType)return;var C=u.markDef,h=u.encoding,f=u.config,d=u.mark,B=C.filled&&"trail"!==d,p=Object.assign(Object.assign({},function(e,t,A){var n,r=Object(ut.a)(A);try{for(r.s();!(n=r.n()).done;){var i=n.value,o=BO(i,t.markDef,t.config);void 0!==o&&(e[i]=IO(o))}}catch(a){r.e(a)}finally{r.f()}return e}({},u,ZZ)),$P(u,{filled:B})),E=null!==(A=I.get("symbolOpacity"))&&void 0!==A?A:f.legend.symbolOpacity,Q=null!==(n=I.get("symbolFillColor"))&&void 0!==n?n:f.legend.symbolFillColor,y=null!==(r=I.get("symbolStrokeColor"))&&void 0!==r?r:f.legend.symbolStrokeColor,v=void 0===E?null!==(i=RW(h.opacity))&&void 0!==i?i:C.opacity:void 0;if(p.fill)if("fill"===l||B&&l===q_)delete p.fill;else if(p.fill.field)Q?delete p.fill:(p.fill=IO(null!==(o=f.legend.symbolBaseFillColor)&&void 0!==o?o:"black"),p.fillOpacity=IO(null!==v&&void 0!==v?v:1));else if(kU(p.fill)){var m=null!==(g=null!==(s=DW(null!==(a=h.fill)&&void 0!==a?a:h.color))&&void 0!==s?s:C.fill)&&void 0!==g?g:B&&C.color;m&&(p.fill=IO(m))}if(p.stroke)if("stroke"===l||!B&&l===q_)delete p.stroke;else if(p.stroke.field||y)delete p.stroke;else if(kU(p.stroke)){var b=M_(DW(h.stroke||h.color),C.stroke,B?C.color:void 0);b&&(p.stroke={value:b})}if("opacity"!==l){var w=DH(c)&&kW(u,I,c);w?p.opacity=[Object.assign({test:w},IO(null!==v&&void 0!==v?v:1)),IO(f.legend.unselectedOpacity)]:v&&(p.opacity=IO(v))}return Q_(p=Object.assign(Object.assign({},p),e))?void 0:p},gradient:function(e,t){var A,n=t.model,r=t.legendType,i=t.legendCmpt;if("gradient"!==r)return;var o=n.config,a=n.markDef,s=n.encoding,g={},c=void 0===(null!==(A=i.get("gradientOpacity"))&&void 0!==A?A:o.legend.gradientOpacity)?RW(s.opacity)||a.opacity:void 0;c&&(g.opacity=IO(c));return Q_(g=Object.assign(Object.assign({},g),e))?void 0:g},labels:function(e,t){var A=t.fieldOrDatumDef,n=t.model,r=t.channel,i=t.legendCmpt,o=n.legend(r)||{},a=n.config,s=DH(A)?kW(n,i,A):void 0,g=s?[{test:s,value:1},{value:a.legend.unselectedOpacity}]:void 0,c=o.format,u=o.formatType,l=AH(u)?oH({fieldOrDatumDef:A,field:"datum.value",format:c,formatType:u,config:a}):void 0,I=Object.assign(Object.assign(Object.assign({},g?{opacity:g}:{}),l?{text:l}:{}),e);return Q_(I)?void 0:I},entries:function(e,t){var A=t.legendCmpt.get("selections");return(null===A||void 0===A?void 0:A.length)?Object.assign(Object.assign({},e),{fill:{value:"transparent"}}):e}};function RW(e){return GW(e,(function(e,t){return Math.max(e,t.value)}))}function DW(e){return GW(e,(function(e,t){return M_(e,t.value)}))}function GW(e,t){return function(e){var t=e&&e.condition;return!!t&&(kU(t)||MH(t))}(e)?OU(e.condition).reduce(t,e.value):MH(e)?e.value:void 0}function kW(e,t,A){var n=t.get("selections");if(null===n||void 0===n?void 0:n.length){var r=jU(A.field);return n.map((function(e){var t=jU(w_(e)+SV);return"(!length(data(".concat(t,")) || (").concat(e,"[").concat(r,"] && indexof(").concat(e,"[").concat(r,"], datum.value) >= 0))")})).join(" || ")}}var xW={direction:function(e){return e.direction},format:function(e){var t=e.fieldOrDatumDef,A=e.legend,n=e.config,r=A.format,i=A.formatType;return aH(t,t.type,r,i,n,!1)},formatType:function(e){var t=e.legend,A=e.fieldOrDatumDef,n=e.scaleType,r=t.formatType;return sH(r,A,n)},gradientLength:function(e){var t,A,n=e.legend,r=e.legendConfig;return null!==(A=null!==(t=n.gradientLength)&&void 0!==t?t:r.gradientLength)&&void 0!==A?A:function(e){var t=e.legendConfig,A=e.model,n=e.direction,r=e.orient,i=e.scaleType,o=t.gradientHorizontalMaxLength,a=t.gradientHorizontalMinLength,s=t.gradientVerticalMaxLength,g=t.gradientVerticalMinLength;if(CZ(i))return"horizontal"===n?"top"===r||"bottom"===r?_W(A,"width",a,o):a:_W(A,"height",g,s);return}(e)},labelOverlap:function(e){var t,A,n=e.legend,r=e.legendConfig,i=e.scaleType;return null!==(A=null!==(t=n.labelOverlap)&&void 0!==t?t:r.labelOverlap)&&void 0!==A?A:function(e){if(c_(["quantile","threshold","log","symlog"],e))return"greedy";return}(i)},symbolType:function(e){var t,A=e.legend,n=e.markDef,r=e.channel,i=e.encoding;return null!==(t=A.symbolType)&&void 0!==t?t:function(e,t,A,n){var r;if("shape"!==t){var i=null!==(r=DW(A))&&void 0!==r?r:n;if(i)return i}switch(e){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}(n.type,r,i.shape,n.shape)},title:function(e){return qH(e.fieldOrDatumDef,e.config,{allowDisabling:!0})},type:function(e){var t=e.legendType,A=e.scaleType;if(oM(e.channel)&&CZ(A)){if("gradient"===t)return}else if("symbol"===t)return;return t},values:function(e){var t=e.fieldOrDatumDef;return function(e,t){var A=e.values;if(kU(A))return lY(t,A);if(nO(A))return A;return}(e.legend,t)}};function NW(e){return M_(e.legend.type,function(e){var t=e.channel,A=e.timeUnit,n=e.scaleType;if(oM(t)){if(c_(["quarter","month","day"],A))return"symbol";if(CZ(n))return"gradient"}return"symbol"}(e))}function UW(e){var t,A,n=e.legendConfig,r=e.legendType,i=e.orient;return null!==(A=null!==(t=e.legend.direction)&&void 0!==t?t:n[r?"gradientDirection":"symbolDirection"])&&void 0!==A?A:function(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return"gradient"===t?"horizontal":void 0}}(i,r)}function _W(e,t,A,n){var r=e.getSizeSignalRef(t).signal;return{signal:"clamp(".concat(r,", ").concat(A,", ").concat(n,")")}}function MW(e){var t=fq(e)?function(e){for(var t=e.encoding,A={},n=0,r=[q_].concat(Object(zn.a)(sJ));n<r.length;n++){var i=r[n],o=nY(t[i]);o&&e.getScaleComponent(i)&&(i===eM&&DH(o)&&o.type===ZT||(A[i]=LW(e,i)))}return A}(e):function(e){var t,A=e.component,n=A.legends,r=A.resolve,i=Object(ut.a)(e.children);try{for(i.s();!(t=i.n()).done;){var o=t.value;MW(o);var a,s=Object(ut.a)(y_(o.component.legends));try{for(s.s();!(a=s.n()).done;){var g=a.value;r.legend[g]=mW(e.component.resolve,g),"shared"===r.legend[g]&&(n[g]=TW(n[g],o.component.legends[g]),n[g]||(r.legend[g]="independent",delete n[g]))}}catch(f){s.e(f)}finally{s.f()}}}catch(f){i.e(f)}finally{i.f()}var c,u=Object(ut.a)(y_(n));try{for(u.s();!(c=u.n()).done;){var l,I=c.value,C=Object(ut.a)(e.children);try{for(C.s();!(l=C.n()).done;){var h=l.value;h.component.legends[I]&&("shared"===r.legend[I]&&delete h.component.legends[I])}}catch(f){C.e(f)}finally{C.f()}}}catch(f){u.e(f)}finally{u.f()}return n}(e);return e.component.legends=t,t}function OW(e,t,A,n){switch(t){case"disable":return void 0!==A;case"values":return!!(null===A||void 0===A?void 0:A.values);case"title":if("title"===t&&e===(null===n||void 0===n?void 0:n.title))return!0}return e===(A||{})[t]}function LW(e,t){var A,n,r,i=e.legend(t),o=e.markDef,a=e.encoding,s=e.config,g=s.legend,c=new SW({},function(e,t){var A=e.scaleName(t);if("trail"===e.mark){if("color"===t)return{stroke:A};if("size"===t)return{strokeWidth:A}}return"color"===t?e.markDef.filled?{fill:A}:{stroke:A}:Object($n.a)({},t,A)}(e,t));!function(e,t,A){var n,r,i,o,a,s=null===(n=e.fieldDef(t))||void 0===n?void 0:n.field,g=Object(ut.a)(v_(null!==(r=e.component.selection)&&void 0!==r?r:{}));try{for(g.s();!(a=g.n()).done;){var c=a.value,u=null!==(i=c.project.hasField[s])&&void 0!==i?i:c.project.hasChannel[t];if(u&&QV.defined(c)){var l=null!==(o=A.get("selections"))&&void 0!==o?o:[];l.push(c.name),A.set("selections",l,!1),u.hasLegend=!0}}}catch(I){g.e(I)}finally{g.f()}}(e,t,c);var u=void 0!==i?!i:g.disable;if(c.set("disable",u,void 0!==i),u)return c;i=i||{};var l,I=e.getScaleComponent(t).get("type"),C=nY(a[t]),h=DH(C)?null===(A=ET(C.timeUnit))||void 0===A?void 0:A.unit:void 0,f=i.orient||s.legend.orient||"right",d=NW({legend:i,channel:t,timeUnit:h,scaleType:I}),B={legend:i,channel:t,model:e,markDef:o,encoding:a,fieldOrDatumDef:C,legendConfig:g,config:s,scaleType:I,orient:f,legendType:d,direction:UW({legend:i,legendType:d,orient:f,legendConfig:g})},p=Object(ut.a)(wW);try{for(p.s();!(l=p.n()).done;){var E=l.value;if(!("gradient"===d&&E.startsWith("symbol")||"symbol"===d&&E.startsWith("gradient"))){var Q=E in xW?xW[E](B):i[E];if(void 0!==Q){var y=OW(Q,E,i,e.fieldDef(t));(y||void 0===s.legend[E])&&c.set(E,Q,y)}}}}catch(k){p.e(k)}finally{p.f()}for(var v=null!==(n=null===i||void 0===i?void 0:i.encoding)&&void 0!==n?n:{},m=c.get("selections"),b={},w={fieldOrDatumDef:C,model:e,channel:t,legendCmpt:c,legendType:d},S=0,F=["labels","legend","title","symbols","gradient","entries"];S<F.length;S++){var R=F[S],D=yW(null!==(r=v[R])&&void 0!==r?r:{},e),G=R in FW?FW[R](D,w):D;void 0===G||Q_(G)||(b[R]=Object.assign(Object.assign(Object.assign({},(null===m||void 0===m?void 0:m.length)&&DH(C)?{name:"".concat(w_(C.field),"_legend_").concat(R)}:{}),(null===m||void 0===m?void 0:m.length)?{interactive:!!m}:{}),{update:G}))}return Q_(b)||c.set("encode",b,!!(null===i||void 0===i?void 0:i.encoding)),c}function TW(e,t){var A,n,r,i;if(!e)return t.clone();var o=e.getWithExplicit("orient"),a=t.getWithExplicit("orient");if(!o.explicit||!a.explicit||o.value===a.value){var s,g=!1,c=Object(ut.a)(wW);try{var u=function(){var A=s.value,n=sP(e.getWithExplicit(A),t.getWithExplicit(A),A,"legend",(function(e,t){switch(A){case"symbolType":return function(e,t){if("circle"===t.value)return t;return e}(e,t);case"title":return mO(e,t);case"type":return g=!0,iP("symbol")}return aP(e,t,A,"legend")}));e.setWithExplicit(A,n)};for(c.s();!(s=c.n()).done;)u()}catch(l){c.e(l)}finally{c.f()}return g&&((null===(n=null===(A=e.implicit)||void 0===A?void 0:A.encode)||void 0===n?void 0:n.gradient)&&F_(e.implicit,["encode","gradient"]),(null===(i=null===(r=e.explicit)||void 0===r?void 0:r.encode)||void 0===i?void 0:i.gradient)&&F_(e.explicit,["encode","gradient"])),e}}var ZW=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function HW(e){var t,A=e.component.legends,n={},r=Object(ut.a)(y_(A));try{for(r.s();!(t=r.n()).done;){var i=t.value,o=e.getScaleComponent(i),a=a_(o.get("domains"));if(n[a]){var s,g=Object(ut.a)(n[a]);try{for(g.s();!(s=g.n()).done;){TW(s.value,A[i])||n[a].push(A[i])}}catch(c){g.e(c)}finally{g.f()}}else n[a]=[A[i].clone()]}}catch(c){r.e(c)}finally{r.f()}return v_(n).flat().map((function(t){return function(e,t){var A,n,r,i=e.combine(),o=i.disable,a=i.labelExpr,s=(i.selections,ZW(i,["disable","labelExpr","selections"]));if(o)return;!1===t.aria&&void 0==s.aria&&(s.aria=!1);if(null===(A=s.encode)||void 0===A?void 0:A.symbols){var g=s.encode.symbols.update;!g.fill||"transparent"===g.fill.value||g.stroke||s.stroke||(g.stroke={value:"transparent"});var u,l=Object(ut.a)(sJ);try{for(l.s();!(u=l.n()).done;){var I=u.value;s[I]&&delete g[I]}}catch(c){l.e(c)}finally{l.f()}}s.title||delete s.title;if(void 0!==a){var C=a;(null===(r=null===(n=s.encode)||void 0===n?void 0:n.labels)||void 0===r?void 0:r.update)&&nO(s.encode.labels.update.text)&&(C=N_(a,"datum.label",s.encode.labels.update.text.signal)),function(e,t,A,n){var r,i,o,a,s;null!==(r=e.encode)&&void 0!==r||(e.encode={}),null!==(i=(a=e.encode)[t])&&void 0!==i||(a[t]={}),null!==(o=(s=e.encode[t]).update)&&void 0!==o||(s.update={}),e.encode[t].update[A]=n}(s,"labels","text",{signal:C})}return s}(t,e.config)})).filter((function(e){return void 0!==e}))}function YW(e){return pq(e)||Bq(e)?function(e){return e.children.reduce((function(e,t){return e.concat(t.assembleProjections())}),JW(e))}(e):JW(e)}function JW(e){var t=e.component.projection;if(!t||t.merged)return[];var A=t.combine(),n=A.name;if(t.data){var r={signal:"[".concat(t.size.map((function(e){return e.signal})).join(", "),"]")},i=t.data.reduce((function(t,A){var n=nO(A)?A.signal:"data('".concat(e.lookupDataSource(A),"')");return c_(t,n)||t.push(n),t}),[]);if(i.length<=0)throw new Error("Projection's fit didn't find any data sources");return[Object.assign({name:n,size:r,fit:{signal:i.length>1?"[".concat(i.join(", "),"]"):i[0]}},A)]}return[Object.assign(Object.assign({name:n},{translate:{signal:"[width / 2, height / 2]"}}),A)]}var jW=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"],PW=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r,i){var o;return Object(y.a)(this,A),(o=t.call(this,Object.assign({},n),{name:e})).specifiedProjection=n,o.size=r,o.data=i,o.merged=!1,o}return Object(v.a)(A,[{key:"isFit",get:function(){return!!this.data}}]),A}(nP);function VW(e){e.component.projection=fq(e)?function(e){var t;if(e.hasProjection){var A=$M(e.specifiedProjection),n=!(A&&(null!=A.scale||null!=A.translate)),r=n?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,i=n?function(e){for(var t=[],A=e.encoding,n=0,r=[["longitude","latitude"],["longitude2","latitude2"]];n<r.length;n++){var i=r[n];(nY(A[i[0]])||nY(A[i[1]]))&&t.push({signal:e.getName("geojson_".concat(t.length))})}e.channelHasField(eM)&&e.typedFieldDef(eM).type===ZT&&t.push({signal:e.getName("geojson_".concat(t.length))});0===t.length&&t.push(e.requestDataName(gP.Main));return t}(e):void 0,o=new PW(e.projectionName(!0),Object.assign(Object.assign({},null!==(t=$M(e.config.projection))&&void 0!==t?t:{}),null!==A&&void 0!==A?A:{}),r,i);return o.get("type")||o.set("type","equalEarth",!1),o}return}(e):function(e){if(0===e.children.length)return;var t,A,n=Object(ut.a)(e.children);try{for(n.s();!(A=n.n()).done;){VW(A.value)}}catch(l){n.e(l)}finally{n.f()}var r=l_(e.children,(function(e){var A=e.component.projection;if(A){if(t){var n=function(e,t){var A=l_(jW,(function(A){return!ZU(e.explicit,A)&&!ZU(t.explicit,A)||!!(ZU(e.explicit,A)&&ZU(t.explicit,A)&&n_(e.get(A),t.get(A)))}));if(n_(e.size,t.size)){if(A)return e;if(n_(e.explicit,{}))return t;if(n_(t.explicit,{}))return e}return null}(t,A);return n&&(t=n),!!n}return t=A,!0}return!0}));if(t&&r){var i,o=e.projectionName(!0),a=new PW(o,t.specifiedProjection,t.size,r_(t.data)),s=Object(ut.a)(e.children);try{for(s.s();!(i=s.n()).done;){var g=i.value,c=g.component.projection;if(c){var u;if(c.isFit)(u=a.data).push.apply(u,Object(zn.a)(g.component.projection.data));g.renameProjection(c.get("name"),o),c.merged=!0}}}catch(l){s.e(l)}finally{s.f()}return a}return}(e)}var KW=A(73),WW=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function XW(e,t){return"".concat(PM(e),"_").concat(t)}function qW(e,t,A){var n,r=XW(null!==(n=aY(A,void 0))&&void 0!==n?n:{},t);return e.getName("".concat(r,"_bins"))}function zW(e,t,A){var n,r;n=function(e){return"as"in e}(e)?JU(e.as)?[e.as,"".concat(e.as,"_end")]:[e.as[0],e.as[1]]:[JH(e,{forAs:!0}),JH(e,{binSuffix:"end",forAs:!0})];var i=Object.assign({},aY(t,void 0)),o=XW(i,e.field),a=function(e,t){return{signal:e.getName("".concat(t,"_bins")),extentSignal:e.getName("".concat(t,"_extent"))}}(A,o),s=a.signal,g=a.extentSignal;if(XM(i.extent)){var c=i.extent;r=OK(A,c.param,c),delete i.extent}return{key:o,binComponent:Object.assign(Object.assign(Object.assign({bin:i,field:e.field,as:[n]},s?{signal:s}:{}),g?{extentSignal:g}:{}),r?{span:r}:{})}}var $W=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e)).bins=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.bins))}},{key:"merge",value:function(e,t){var A,n=Object(ut.a)(y_(e.bins));try{for(n.s();!(A=n.n()).done;){var r=A.value;r in this.bins?(t(e.bins[r].signal,this.bins[r].signal),this.bins[r].as=h_([].concat(Object(zn.a)(this.bins[r].as),Object(zn.a)(e.bins[r].as)),s_)):this.bins[r]=e.bins[r]}}catch(s){n.e(s)}finally{n.f()}var i,o=Object(ut.a)(e.children);try{for(o.s();!(i=o.n()).done;){var a=i.value;e.removeChild(a),a.parent=this}}catch(s){o.e(s)}finally{o.f()}e.remove()}},{key:"producedFields",value:function(){return new Set(v_(this.bins).map((function(e){return e.as})).flat(2))}},{key:"dependentFields",value:function(){return new Set(v_(this.bins).map((function(e){return e.field})))}},{key:"hash",value:function(){return"Bin ".concat(s_(this.bins))}},{key:"assemble",value:function(){return v_(this.bins).flatMap((function(e){var t=[],A=Object(KW.a)(e.as),n=A[0],r=A.slice(1),i=e.bin,o=i.extent,a=WW(i,["extent"]),s=Object.assign(Object.assign(Object.assign({type:"bin",field:x_(e.field),as:n,signal:e.signal},XM(o)?{extent:null}:{extent:o}),e.span?{span:{signal:"span(".concat(e.span,")")}}:{}),a);!o&&e.extentSignal&&(t.push({type:"extent",field:x_(e.field),signal:e.extentSignal}),s.extent={signal:e.extentSignal}),t.push(s);var g,c=Object(ut.a)(r);try{for(c.s();!(g=c.n()).done;)for(var u=g.value,l=0;l<2;l++)t.push({type:"formula",expr:JH({field:n[l]},{expr:"datum"}),as:u[l]})}catch(I){c.e(I)}finally{c.f()}return e.formula&&t.push({type:"formula",expr:e.formula,as:e.formulaAs}),t}))}}],[{key:"makeFromEncoding",value:function(e,t){var n=t.reduceFieldDef((function(e,A,n){if(_H(A)&&VM(A.bin)){var r=zW(A,A.bin,t),i=r.key,o=r.binComponent;e[i]=Object.assign(Object.assign(Object.assign({},o),e[i]),function(e,t,A,n){var r,i;if(IY(t,A)){var o=fq(e)&&null!==(i=null!==(r=e.axis(A))&&void 0!==r?r:e.legend(A))&&void 0!==i?i:{},a=JH(t,{expr:"datum"}),s=JH(t,{expr:"datum",binSuffix:"end"});return{formulaAs:JH(t,{binSuffix:"range",forAs:!0}),formula:lH(a,s,o.format,o.formatType,n)}}return{}}(t,A,n,t.config))}return e}),{});return Q_(n)?null:new A(e,n)}},{key:"makeFromTransform",value:function(e,t,n){var r=zW(t,t.bin,n),i=r.key,o=r.binComponent;return new A(e,Object($n.a)({},i,o))}}]),A}(DP);function eX(e,t,A,n){var r,i,o=fq(n)?n.encoding[BM(t)]:void 0;if(_H(A)&&fq(n)&&wH(A,o,n.markDef,n.config))e.add(JH(A,{})),e.add(JH(A,{suffix:"end"})),A.bin&&IY(A,t)&&e.add(JH(A,{binSuffix:"range"}));else if(t in nM){var a=function(e){switch(e){case"latitude":return"y";case"latitude2":return"y2";case"longitude":return"x";case"longitude2":return"x2"}}(t);e.add(n.getName(a))}else e.add(JH(A));return OH(A)&&(i=null===(r=A.scale)||void 0===r?void 0:r.range,Object(ue.H)(i)&&"field"in i)&&e.add(A.scale.range.field),e}var tX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r){var i;return Object(y.a)(this,A),(i=t.call(this,e)).dimensions=n,i.measures=r,i}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,new Set(this.dimensions),r_(this.measures))}},{key:"merge",value:function(e){return d_(this.dimensions,e.dimensions)?(function(e,t){var A,n,r=Object(ut.a)(y_(t));try{for(r.s();!(n=r.n()).done;){var i,o=n.value,a=t[o],s=Object(ut.a)(y_(a));try{for(s.s();!(i=s.n()).done;){var g=i.value;o in e?e[o][g]=new Set([].concat(Object(zn.a)(null!==(A=e[o][g])&&void 0!==A?A:[]),Object(zn.a)(a[g]))):e[o]=Object($n.a)({},g,a[g])}}catch(c){s.e(c)}finally{s.f()}}}catch(c){r.e(c)}finally{r.f()}}(this.measures,e.measures),!0):(function(){var e;(e=zL).debug.apply(e,arguments)}("different dimensions, cannot merge"),!1)}},{key:"addDimensions",value:function(e){e.forEach(this.dimensions.add,this.dimensions)}},{key:"dependentFields",value:function(){return new Set([].concat(Object(zn.a)(this.dimensions),Object(zn.a)(y_(this.measures))))}},{key:"producedFields",value:function(){var e,t=new Set,A=Object(ut.a)(y_(this.measures));try{for(A.s();!(e=A.n()).done;){var n,r=e.value,i=Object(ut.a)(y_(this.measures[r]));try{for(i.s();!(n=i.n()).done;){var o=n.value,a=this.measures[r][o];0===a.size?t.add("".concat(o,"_").concat(r)):a.forEach(t.add,t)}}catch(s){i.e(s)}finally{i.f()}}}catch(s){A.e(s)}finally{A.f()}return t}},{key:"hash",value:function(){return"Aggregate ".concat(s_({dimensions:this.dimensions,measures:this.measures}))}},{key:"assemble",value:function(){var e,t=[],A=[],n=[],r=Object(ut.a)(y_(this.measures));try{for(r.s();!(e=r.n()).done;){var i,o=e.value,a=Object(ut.a)(y_(this.measures[o]));try{for(a.s();!(i=a.n()).done;){var s,g=i.value,c=Object(ut.a)(this.measures[o][g]);try{for(c.s();!(s=c.n()).done;){var u=s.value;n.push(u),t.push(g),A.push("*"===o?null:x_(o))}}catch(l){c.e(l)}finally{c.f()}}}catch(l){a.e(l)}finally{a.f()}}}catch(l){r.e(l)}finally{r.f()}return{type:"aggregate",groupby:Object(zn.a)(this.dimensions).map(x_),ops:t,fields:A,as:n}}},{key:"groupBy",get:function(){return this.dimensions}}],[{key:"makeFromEncoding",value:function(e,t){var n=!1;t.forEachFieldDef((function(e){e.aggregate&&(n=!0)}));var r={},i=new Set;return n?(t.forEachFieldDef((function(e,A){var n,o,a,s,g=e.aggregate,c=e.field;if(g)if("count"===g)null!==(n=r["*"])&&void 0!==n||(r["*"]={}),r["*"].count=new Set([JH(e,{forAs:!0})]);else{if(LM(g)||TM(g)){var u=LM(g)?"argmin":"argmax",l=g[u];null!==(o=r[l])&&void 0!==o||(r[l]={}),r[l][u]=new Set([JH({op:u,field:l},{forAs:!0})])}else null!==(a=r[c])&&void 0!==a||(r[c]={}),r[c][g]=new Set([JH(e,{forAs:!0})]);kM(A)&&"unaggregated"===t.scaleDomain(A)&&(null!==(s=r[c])&&void 0!==s||(r[c]={}),r[c].min=new Set([JH({field:c,aggregate:"min"},{forAs:!0})]),r[c].max=new Set([JH({field:c,aggregate:"max"},{forAs:!0})]))}else eX(i,A,e,t)})),i.size+y_(r).length===0?null:new A(e,i,r)):null}},{key:"makeFromTransform",value:function(e,t){var n,r,i,o,a=new Set,s={},g=Object(ut.a)(t.aggregate);try{for(g.s();!(o=g.n()).done;){var c=o.value,u=c.op,l=c.field,I=c.as;u&&("count"===u?(null!==(n=s["*"])&&void 0!==n||(s["*"]={}),s["*"].count=new Set([I||JH(c,{forAs:!0})])):(null!==(r=s[l])&&void 0!==r||(s[l]={}),s[l][u]=new Set([I||JH(c,{forAs:!0})])))}}catch(d){g.e(d)}finally{g.f()}var C,h=Object(ut.a)(null!==(i=t.groupby)&&void 0!==i?i:[]);try{for(h.s();!(C=h.n()).done;){var f=C.value;a.add(f)}}catch(d){h.e(d)}finally{h.f()}return a.size+y_(s).length===0?null:new A(e,a,s)}}]),A}(DP),AX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r,i){var o;Object(y.a)(this,A),(o=t.call(this,e)).model=n,o.name=r,o.data=i;var a,s=Object(ut.a)(sM);try{for(s.s();!(a=s.n()).done;){var g=a.value,c=n.facet[g];if(c){var u=c.bin,l=c.sort;o[g]=Object.assign({name:n.getName("".concat(g,"_domain")),fields:[JH(c)].concat(Object(zn.a)(VM(u)?[JH(c,{binSuffix:"end"})]:[]))},fH(l)?{sortField:l}:kU(l)?{sortIndexField:tW(c,g)}:{})}}}catch(I){s.e(I)}finally{s.f()}return o.childModel=n.child,o}return Object(v.a)(A,[{key:"hash",value:function(){var e,t="Facet",A=Object(ut.a)(sM);try{for(A.s();!(e=A.n()).done;){var n=e.value;this[n]&&(t+=" ".concat(n.charAt(0),":").concat(s_(this[n])))}}catch(r){A.e(r)}finally{A.f()}return t}},{key:"dependentFields",value:function(){var e,t=new Set(this.fields),A=Object(ut.a)(sM);try{for(A.s();!(e=A.n()).done;){var n=e.value;this[n]&&(this[n].sortField&&t.add(this[n].sortField.field),this[n].sortIndexField&&t.add(this[n].sortIndexField))}}catch(r){A.e(r)}finally{A.f()}return t}},{key:"producedFields",value:function(){return new Set}},{key:"getSource",value:function(){return this.name}},{key:"getChildIndependentFieldsWithStep",value:function(){var e,t={},A=Object(ut.a)(vM);try{for(A.s();!(e=A.n()).done;){var n=e.value,r=this.childModel.component.scales[n];if(r&&!r.merged){var i=r.get("type"),o=r.get("range");if(lZ(i)&&rO(o)){var a=WX(XX(this.childModel,n));a?t[n]=a:tT(B.unknownField(n))}}}}catch(s){A.e(s)}finally{A.f()}return t}},{key:"assembleRowColumnHeaderData",value:function(e,t,A){var n={row:"y",column:"x",facet:void 0}[e],r=[],i=[],o=[];n&&A&&A[n]&&(t?(r.push("distinct_".concat(A[n])),i.push("max")):(r.push(A[n]),i.push("distinct")),o.push("distinct_".concat(A[n])));var a=this[e],s=a.sortField,g=a.sortIndexField;if(s){var c=s.op,u=void 0===c?"min":c,l=s.field;r.push(l),i.push(u),o.push(JH(s,{forAs:!0}))}else g&&(r.push(g),i.push("max"),o.push(g));return{name:this[e].name,source:null!==t&&void 0!==t?t:this.data,transform:[Object.assign({type:"aggregate",groupby:this[e].fields},r.length?{fields:r,ops:i,as:o}:{})]}}},{key:"assembleFacetHeaderData",value:function(e){var t,A,n,r=this.model.layout.columns,i=this.model.component.layoutHeaders,o=[],a={},s=Object(ut.a)(iW);try{for(s.s();!(n=s.n()).done;){var g,c=n.value,u=Object(ut.a)(oW);try{for(u.s();!(g=u.n()).done;){var l,I=g.value,C=null!==(t=i[c]&&i[c][I])&&void 0!==t?t:[],h=Object(ut.a)(C);try{for(h.s();!(l=h.n()).done;){if((null===(A=l.value.axes)||void 0===A?void 0:A.length)>0){a[c]=!0;break}}}catch(E){h.e(E)}finally{h.f()}}}catch(E){u.e(E)}finally{u.f()}if(a[c]){var f='length(data("'.concat(this.facet.name,'"))'),d="row"===c?r?{signal:"ceil(".concat(f," / ").concat(r,")")}:1:r?{signal:"min(".concat(f,", ").concat(r,")")}:{signal:f};o.push({name:"".concat(this.facet.name,"_").concat(c),transform:[{type:"sequence",start:0,stop:d}]})}}}catch(E){s.e(E)}finally{s.f()}var B=a.row,p=a.column;return(B||p)&&o.unshift(this.assembleRowColumnHeaderData("facet",null,e)),o}},{key:"assemble",value:function(){var e,t,A=[],n=null,r=this.getChildIndependentFieldsWithStep(),i=this.column,o=this.row,a=this.facet;if(i&&o&&(r.x||r.y)){n="cross_".concat(this.column.name,"_").concat(this.row.name);var s=[].concat(null!==(e=r.x)&&void 0!==e?e:[],null!==(t=r.y)&&void 0!==t?t:[]),g=s.map((function(){return"distinct"}));A.push({name:n,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:s,ops:g}]})}for(var c=0,u=[V_,P_];c<u.length;c++){var l=u[c];this[l]&&A.push(this.assembleRowColumnHeaderData(l,n,r))}if(a){var I=this.assembleFacetHeaderData(r);I&&A.push.apply(A,Object(zn.a)(I))}return A}},{key:"fields",get:function(){var e,t,A=[],n=Object(ut.a)(sM);try{for(n.s();!(t=n.n()).done;){var r=t.value;(null===(e=this[r])||void 0===e?void 0:e.fields)&&A.push.apply(A,Object(zn.a)(this[r].fields))}}catch(i){n.e(i)}finally{n.f()}return A}}]),A}(DP);function nX(e){return"'"===e[0]&&"'"===e[e.length-1]||'"'===e[0]&&'"'===e[e.length-1]?e.slice(1,-1):e}function rX(e,t){var A=D_(e);if("number"===t)return"toNumber(".concat(A,")");if("boolean"===t)return"toBoolean(".concat(A,")");if("string"===t)return"toString(".concat(A,")");if("date"===t)return"toDate(".concat(A,")");if("flatten"===t)return A;if(t.startsWith("date:")){var n=nX(t.slice(5,t.length));return"timeParse(".concat(A,",'").concat(n,"')")}if(t.startsWith("utc:")){var r=nX(t.slice(4,t.length));return"utcParse(".concat(A,",'").concat(r,"')")}return tT(B.unrecognizedParse(t)),null}function iX(e){var t={};return function e(t,A){if(t_(t))e(t.not,A);else if(e_(t)){var n,r=Object(ut.a)(t.and);try{for(r.s();!(n=r.n()).done;){e(n.value,A)}}catch(a){r.e(a)}finally{r.f()}}else if($U(t)){var i,o=Object(ut.a)(t.or);try{for(o.s();!(i=o.n()).done;){e(i.value,A)}}catch(a){o.e(a)}finally{o.f()}}else A(t)}(e.filter,(function(e){var A;if(DT(e)){var n=null;yT(e)?n=uO(e.equal):mT(e)?n=uO(e.lte):vT(e)?n=uO(e.lt):bT(e)?n=uO(e.gt):wT(e)?n=uO(e.gte):ST(e)?n=e.range[0]:FT(e)&&(n=(null!==(A=e.oneOf)&&void 0!==A?A:e.in)[0]),n&&(AT(n)?t[e.field]="date":YU(n)?t[e.field]="number":JU(n)&&(t[e.field]="string")),e.timeUnit&&(t[e.field]="date")}})),t}function oX(e){var t={};function A(e){var A;cY(e)?t[e.field]="date":"quantitative"===e.type&&(JU(A=e.aggregate)&&c_(["min","max"],A))?t[e.field]="number":__(e.field)>1?e.field in t||(t[e.field]="flatten"):OH(e)&&fH(e.sort)&&__(e.sort.field)>1&&(e.sort.field in t||(t[e.sort.field]="flatten"))}if((fq(e)||dq(e))&&e.forEachFieldDef((function(t,n){if(_H(t))A(t);else{var r=fM(n),i=e.fieldDef(r);A(Object.assign(Object.assign({},t),{type:i.type}))}})),fq(e)){var n=e.mark,r=e.markDef,i=e.encoding;if(MZ(n)&&!e.encoding.order){var o=i["horizontal"===r.orient?"y":"x"];DH(o)&&"quantitative"===o.type&&!(o.field in t)&&(t[o.field]="number")}}return t}var aX,sX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e))._parse=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this._parse))}},{key:"hash",value:function(){return"Parse ".concat(s_(this._parse))}},{key:"merge",value:function(e){this._parse=Object.assign(Object.assign({},this._parse),e.parse),e.remove()}},{key:"assembleFormatParse",value:function(){var e,t={},A=Object(ut.a)(y_(this._parse));try{for(A.s();!(e=A.n()).done;){var n=e.value,r=this._parse[n];1===__(n)&&(t[n]=r)}}catch(i){A.e(i)}finally{A.f()}return t}},{key:"producedFields",value:function(){return new Set(y_(this._parse))}},{key:"dependentFields",value:function(){return new Set(y_(this._parse))}},{key:"assembleTransforms",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return y_(this._parse).filter((function(e){return!t||__(e)>1})).map((function(t){var A=rX(t,e._parse[t]);return A?{type:"formula",expr:A,as:U_(t)}:null})).filter((function(e){return null!==e}))}},{key:"parse",get:function(){return this._parse}}],[{key:"makeExplicit",value:function(e,t,A){var n,r={},i=t.data;return!CP(i)&&(null===(n=null===i||void 0===i?void 0:i.format)||void 0===n?void 0:n.parse)&&(r=i.format.parse),this.makeWithAncestors(e,r,{},A)}},{key:"makeWithAncestors",value:function(e,t,n,r){var i,o=Object(ut.a)(y_(n));try{for(o.s();!(i=o.n()).done;){var a=i.value,s=r.getWithExplicit(a);void 0!==s.value&&(s.explicit||s.value===n[a]||"derived"===s.value||"flatten"===n[a]?delete n[a]:tT(B.differentParse(a,n[a],s.value)))}}catch(E){o.e(E)}finally{o.f()}var g,c=Object(ut.a)(y_(t));try{for(c.s();!(g=c.n()).done;){var u=g.value,l=r.get(u);void 0!==l&&(l===t[u]?delete t[u]:tT(B.differentParse(u,t[u],l)))}}catch(E){c.e(E)}finally{c.f()}var I=new nP(t,n);r.copyAll(I);var C,h={},f=Object(ut.a)(y_(I.combine()));try{for(f.s();!(C=f.n()).done;){var d=C.value,p=I.get(d);null!==p&&(h[d]=p)}}catch(E){f.e(E)}finally{f.f()}return 0===y_(h).length||r.parseNothing?null:new A(e,h)}}]),A}(DP),gX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e){return Object(y.a)(this,A),t.call(this,e)}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null)}}]),Object(v.a)(A,[{key:"dependentFields",value:function(){return new Set}},{key:"producedFields",value:function(){return new Set(["_vgsid_"])}},{key:"hash",value:function(){return"Identifier"}},{key:"assemble",value:function(){return{type:"identifier",as:"_vgsid_"}}}]),A}(DP),cX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e)).params=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,this.params)}},{key:"dependentFields",value:function(){return new Set}},{key:"producedFields",value:function(){}},{key:"hash",value:function(){return"Graticule ".concat(s_(this.params))}},{key:"assemble",value:function(){return Object.assign({type:"graticule"},!0===this.params?{}:this.params)}}]),A}(DP),uX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e)).params=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,this.params)}},{key:"dependentFields",value:function(){return new Set}},{key:"producedFields",value:function(){var e;return new Set([null!==(e=this.params.as)&&void 0!==e?e:"data"])}},{key:"hash",value:function(){return"Hash ".concat(s_(this.params))}},{key:"assemble",value:function(){return Object.assign({type:"sequence"},this.params)}}]),A}(DP),lX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e){var n,r;if(Object(y.a)(this,A),n=t.call(this,null),null!==e&&void 0!==e||(e={name:"source"}),CP(e)||(r=e.format?Object.assign({},o_(e.format,["parse"])):{}),lP(e))n._data={values:e.values};else if(uP(e)){if(n._data={url:e.url},!r.type){var i=/(?:\.([^.]+))?$/.exec(e.url)[1];c_(["json","csv","tsv","dsv","topojson"],i)||(i="json"),r.type=i}}else fP(e)?n._data={values:[{type:"Sphere"}]}:(IP(e)||CP(e))&&(n._data={});return n._generator=CP(e),e.name&&(n._name=e.name),r&&!Q_(r)&&(n._data.format=r),n}return Object(v.a)(A,[{key:"dependentFields",value:function(){return new Set}},{key:"producedFields",value:function(){}},{key:"hasName",value:function(){return!!this._name}},{key:"remove",value:function(){throw new Error("Source nodes are roots and cannot be removed.")}},{key:"hash",value:function(){throw new Error("Cannot hash sources")}},{key:"assemble",value:function(){return Object.assign(Object.assign({name:this._name},this._data),{transform:[]})}},{key:"data",get:function(){return this._data}},{key:"isGenerator",get:function(){return this._generator}},{key:"dataName",get:function(){return this._name},set:function(e){this._name=e}},{key:"parent",set:function(e){throw new Error("Source nodes have to be roots.")}}]),A}(DP),IX=function(e,t,A,n,r){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"===typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?r.call(e,A):r?r.value=A:t.set(e,A),A},CX=function(e,t,A,n){if("a"===A&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"===typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===A?n:"a"===A?n.call(e):n?n.value:t.get(e)};function hX(e){return e instanceof lX||e instanceof cX||e instanceof uX}var fX=function(){function e(){Object(y.a)(this,e),aX.set(this,void 0),IX(this,aX,!1,"f")}return Object(v.a)(e,[{key:"setModified",value:function(){IX(this,aX,!0,"f")}},{key:"modifiedFlag",get:function(){return CX(this,aX,"f")}}]),e}();aX=new WeakMap;var dX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"getNodeDepths",value:function(e,t,A){A.set(e,t);var n,r=Object(ut.a)(e.children);try{for(r.s();!(n=r.n()).done;){var i=n.value;this.getNodeDepths(i,t+1,A)}}catch(o){r.e(o)}finally{r.f()}return A}},{key:"optimize",value:function(e){var t,A=this.getNodeDepths(e,0,new Map),n=Object(zn.a)(A.entries()).sort((function(e,t){return t[1]-e[1]})),r=Object(ut.a)(n);try{for(r.s();!(t=r.n()).done;){var i=t.value;this.run(i[0])}}catch(o){r.e(o)}finally{r.f()}return this.modifiedFlag}}]),A}(fX),BX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"optimize",value:function(e){this.run(e);var t,A=Object(ut.a)(e.children);try{for(A.s();!(t=A.n()).done;){var n=t.value;this.optimize(n)}}catch(r){A.e(r)}finally{A.f()}return this.modifiedFlag}}]),A}(fX),pX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"mergeNodes",value:function(e,t){var A,n=t.shift(),r=Object(ut.a)(t);try{for(r.s();!(A=r.n()).done;){var i=A.value;e.removeChild(i),i.parent=n,i.remove()}}catch(o){r.e(o)}finally{r.f()}}},{key:"run",value:function(e){for(var t=e.children.map((function(e){return e.hash()})),A={},n=0;n<t.length;n++)void 0===A[t[n]]?A[t[n]]=[e.children[n]]:A[t[n]].push(e.children[n]);var r,i=Object(ut.a)(y_(A));try{for(i.s();!(r=i.n()).done;){var o=r.value;A[o].length>1&&(this.setModified(),this.mergeNodes(e,A[o]))}}catch(a){i.e(a)}finally{i.f()}}}]),A}(BX),EX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e){var n;return Object(y.a)(this,A),(n=t.call(this)).requiresSelectionId=e&&NV(e),n}return Object(v.a)(A,[{key:"run",value:function(e){e instanceof gX&&(this.requiresSelectionId&&(hX(e.parent)||e.parent instanceof tX||e.parent instanceof sX)||(this.setModified(),e.remove()))}}]),A}(BX),QX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"optimize",value:function(e){return this.run(e,new Set),this.modifiedFlag}},{key:"run",value:function(e,t){var A=new Set;e instanceof xP&&B_(A=e.producedFields(),t)&&(this.setModified(),e.removeFormulas(t),0===e.producedFields.length&&e.remove());var n,r=Object(ut.a)(e.children);try{for(r.s();!(n=r.n()).done;){var i=n.value;this.run(i,new Set([].concat(Object(zn.a)(t),Object(zn.a)(A))))}}catch(o){r.e(o)}finally{r.f()}}}]),A}(fX),yX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.call(this)}return Object(v.a)(A,[{key:"run",value:function(e){e instanceof GP&&!e.isRequired()&&(this.setModified(),e.remove())}}]),A}(BX),vX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"run",value:function(e){if(!hX(e)&&!(e.numChildren()>1)){var t,A=Object(ut.a)(e.children);try{for(A.s();!(t=A.n()).done;){var n=t.value;if(n instanceof sX)if(e instanceof sX)this.setModified(),e.merge(n);else{if(E_(e.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}catch(r){A.e(r)}finally{A.f()}}}}]),A}(dX),mX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"run",value:function(e){var t=Object(zn.a)(e.children),A=e.children.filter((function(e){return e instanceof sX}));if(e.numChildren()>1&&A.length>=1){var n,r={},i=new Set,o=Object(ut.a)(A);try{for(o.s();!(n=o.n()).done;){var a,s=n.value.parse,g=Object(ut.a)(y_(s));try{for(g.s();!(a=g.n()).done;){var c=a.value;c in r?r[c]!==s[c]&&i.add(c):r[c]=s[c]}}catch(E){g.e(E)}finally{g.f()}}}catch(E){o.e(E)}finally{o.f()}var u,l=Object(ut.a)(i);try{for(l.s();!(u=l.n()).done;){delete r[u.value]}}catch(E){l.e(E)}finally{l.f()}if(!Q_(r)){this.setModified();var I,C=new sX(e,r),h=Object(ut.a)(t);try{for(h.s();!(I=h.n()).done;){var f=I.value;if(f instanceof sX){var d,B=Object(ut.a)(y_(r));try{for(B.s();!(d=B.n()).done;){var p=d.value;delete f.parse[p]}}catch(E){B.e(E)}finally{B.f()}}e.removeChild(f),f.parent=C,f instanceof sX&&0===y_(f.parse).length&&f.remove()}}catch(E){h.e(E)}finally{h.f()}}}}}]),A}(dX),bX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"run",value:function(e){e instanceof GP||e.numChildren()>0||e instanceof AX||e instanceof lX||(this.setModified(),e.remove())}}]),A}(dX),wX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"run",value:function(e){var t,A=e.children.filter((function(e){return e instanceof xP})),n=A.pop(),r=Object(ut.a)(A);try{for(r.s();!(t=r.n()).done;){var i=t.value;this.setModified(),n.merge(i)}}catch(o){r.e(o)}finally{r.f()}}}]),A}(dX),SX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"run",value:function(e){var t,A=e.children.filter((function(e){return e instanceof tX})),n={},r=Object(ut.a)(A);try{for(r.s();!(t=r.n()).done;){var i=t.value,o=s_(i.groupBy);o in n||(n[o]=[]),n[o].push(i)}}catch(C){r.e(C)}finally{r.f()}var a,s=Object(ut.a)(y_(n));try{for(s.s();!(a=s.n()).done;){var g=n[a.value];if(g.length>1){var c,u=g.pop(),l=Object(ut.a)(g);try{for(l.s();!(c=l.n()).done;){var I=c.value;u.merge(I)&&(e.removeChild(I),I.parent=u,I.remove(),this.setModified())}}catch(C){l.e(C)}finally{l.f()}}}}catch(C){s.e(C)}finally{s.f()}}}]),A}(dX),FX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e){var n;return Object(y.a)(this,A),(n=t.call(this)).model=e,n}return Object(v.a)(A,[{key:"run",value:function(e){var t,A=!(hX(e)||e instanceof _K||e instanceof sX||e instanceof gX),n=[],r=[],i=Object(ut.a)(e.children);try{for(i.s();!(t=i.n()).done;){var o=t.value;o instanceof $W&&(A&&!E_(e.producedFields(),o.dependentFields())?n.push(o):r.push(o))}}catch(h){i.e(h)}finally{i.f()}if(n.length>0){var a,s=n.pop(),g=Object(ut.a)(n);try{for(g.s();!(a=g.n()).done;){var c=a.value;s.merge(c,this.model.renameSignal.bind(this.model))}}catch(h){g.e(h)}finally{g.f()}this.setModified(),e instanceof $W?e.merge(s,this.model.renameSignal.bind(this.model)):s.swapWithParent()}if(r.length>1){var u,l=r.pop(),I=Object(ut.a)(r);try{for(I.s();!(u=I.n()).done;){var C=u.value;l.merge(C,this.model.renameSignal.bind(this.model))}}catch(h){I.e(h)}finally{I.f()}this.setModified()}}}]),A}(dX),RX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"run",value:function(e){var t=Object(zn.a)(e.children);if(u_(t,(function(e){return e instanceof GP}))&&!(e.numChildren()<=1)){var A,n,r=[],i=Object(ut.a)(t);try{for(i.s();!(n=i.n()).done;){var o=n.value;if(o instanceof GP){for(var a=o;1===a.numChildren();){var s=Object(lt.a)(a.children,1)[0];if(!(s instanceof GP))break;a=s}r.push.apply(r,Object(zn.a)(a.children)),A?(e.removeChild(o),o.parent=A.parent,A.parent.removeChild(A),A.parent=a,this.setModified()):A=a}else r.push(o)}}catch(l){i.e(l)}finally{i.f()}if(r.length){this.setModified();var g,c=Object(ut.a)(r);try{for(c.s();!(g=c.n()).done;){var u=g.value;u.parent.removeChild(u),u.parent=A}}catch(l){c.e(l)}finally{c.f()}}}}}]),A}(dX),DX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform))}},{key:"addDimensions",value:function(e){this.transform.groupby=h_(this.transform.groupby.concat(e),(function(e){return e}))}},{key:"dependentFields",value:function(){var e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map((function(e){return e.field})).filter((function(e){return void 0!==e})).forEach(e.add,e),e}},{key:"producedFields",value:function(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}},{key:"getDefaultName",value:function(e){var t;return null!==(t=e.as)&&void 0!==t?t:JH(e)}},{key:"hash",value:function(){return"JoinAggregateTransform ".concat(s_(this.transform))}},{key:"assemble",value:function(){var e,t=[],A=[],n=[],r=Object(ut.a)(this.transform.joinaggregate);try{for(r.s();!(e=r.n()).done;){var i=e.value;A.push(i.op),n.push(this.getDefaultName(i)),t.push(void 0===i.field?null:i.field)}}catch(a){r.e(a)}finally{r.f()}var o=this.transform.groupby;return Object.assign({type:"joinaggregate",as:n,ops:A,fields:t},void 0!==o?{groupby:o}:{})}}]),A}(DP);var GX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e))._stack=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this._stack))}},{key:"addDimensions",value:function(e){var t;(t=this._stack.facetby).push.apply(t,Object(zn.a)(e))}},{key:"dependentFields",value:function(){var e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}},{key:"producedFields",value:function(){return new Set(this._stack.as)}},{key:"hash",value:function(){return"Stack ".concat(s_(this._stack))}},{key:"getGroupbyFields",value:function(){var e=this._stack,t=e.dimensionFieldDef,A=e.impute,n=e.groupby;return t?t.bin?A?[JH(t,{binSuffix:"mid"})]:[JH(t,{}),JH(t,{binSuffix:"end"})]:[JH(t)]:null!==n&&void 0!==n?n:[]}},{key:"assemble",value:function(){var e=[],t=this._stack,A=t.facetby,n=t.dimensionFieldDef,r=t.stackField,i=t.stackby,o=t.sort,a=t.offset,s=t.impute,g=t.as;if(s&&n){var c=n.bandPosition,u=void 0===c?.5:c;n.bin&&e.push({type:"formula",expr:"".concat(u,"*")+JH(n,{expr:"datum"})+"+".concat(1-u,"*")+JH(n,{expr:"datum",binSuffix:"end"}),as:JH(n,{binSuffix:"mid",forAs:!0})}),e.push({type:"impute",field:r,groupby:[].concat(Object(zn.a)(i),Object(zn.a)(A)),key:JH(n,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[].concat(Object(zn.a)(this.getGroupbyFields()),Object(zn.a)(A)),field:r,sort:o,as:g,offset:a}),e}},{key:"stack",get:function(){return this._stack}}],[{key:"makeFromTransform",value:function(e,t){var n=t.stack,r=t.groupby,i=t.as,o=t.offset,a=void 0===o?"zero":o,s=[],g=[];if(void 0!==t.sort){var c,u=Object(ut.a)(t.sort);try{for(u.s();!(c=u.n()).done;){var l=c.value;s.push(l.field),g.push(M_(l.order,"ascending"))}}catch(I){u.e(I)}finally{u.f()}}return new A(e,{stackField:n,groupby:r,offset:a,sort:{field:s,order:g},facetby:[],as:function(e){return kU(e)&&e.every((function(e){return JU(e)}))&&e.length>1}(i)?i:JU(i)?[i,"".concat(i,"_end")]:["".concat(t.stack,"_start"),"".concat(t.stack,"_end")]})}},{key:"makeFromEncoding",value:function(e,t){var n=t.stack,r=t.encoding;if(!n)return null;var i,o=n.groupbyChannel,a=n.fieldChannel,s=n.offset,g=n.impute;o&&(i=AY(r[o]));var c,u=function(e){return e.stack.stackBy.reduce((function(e,t){var A=JH(t.fieldDef);return A&&e.push(A),e}),[])}(t),l=t.encoding.order;return c=kU(l)||DH(l)?QO(l):u.reduce((function(e,t){return e.field.push(t),e.order.push("y"===a?"descending":"ascending"),e}),{field:[],order:[]}),new A(e,{dimensionFieldDef:i,stackField:t.vgField(a),facetby:[],stackby:u,sort:c,offset:s,impute:g,as:[t.vgField(a,{suffix:"start",forAs:!0}),t.vgField(a,{suffix:"end",forAs:!0})]})}}]),A}(DP),kX=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform))}},{key:"addDimensions",value:function(e){this.transform.groupby=h_(this.transform.groupby.concat(e),(function(e){return e}))}},{key:"dependentFields",value:function(){var e,t,A=new Set;return(null!==(e=this.transform.groupby)&&void 0!==e?e:[]).forEach(A.add,A),(null!==(t=this.transform.sort)&&void 0!==t?t:[]).forEach((function(e){return A.add(e.field)})),this.transform.window.map((function(e){return e.field})).filter((function(e){return void 0!==e})).forEach(A.add,A),A}},{key:"producedFields",value:function(){return new Set(this.transform.window.map(this.getDefaultName))}},{key:"getDefaultName",value:function(e){var t;return null!==(t=e.as)&&void 0!==t?t:JH(e)}},{key:"hash",value:function(){return"WindowTransform ".concat(s_(this.transform))}},{key:"assemble",value:function(){var e,t,A=[],n=[],r=[],i=[],o=Object(ut.a)(this.transform.window);try{for(o.s();!(t=o.n()).done;){var a=t.value;n.push(a.op),r.push(this.getDefaultName(a)),i.push(void 0===a.param?null:a.param),A.push(void 0===a.field?null:a.field)}}catch(d){o.e(d)}finally{o.f()}var s=this.transform.frame,g=this.transform.groupby;if(s&&null===s[0]&&null===s[1]&&n.every((function(e){return ZM(e)})))return Object.assign({type:"joinaggregate",as:r,ops:n,fields:A},void 0!==g?{groupby:g}:{});var c=[],u=[];if(void 0!==this.transform.sort){var l,I=Object(ut.a)(this.transform.sort);try{for(I.s();!(l=I.n()).done;){var C=l.value;c.push(C.field),u.push(null!==(e=C.order)&&void 0!==e?e:"ascending")}}catch(d){I.e(d)}finally{I.f()}}var h={field:c,order:u},f=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:i,as:r,ops:n,fields:A,sort:h},void 0!==f?{ignorePeers:f}:{}),void 0!==g?{groupby:g}:{}),void 0!==s?{frame:s}:{})}}]),A}(DP);function xX(e){if(e instanceof AX)if(1!==e.numChildren()||e.children[0]instanceof GP){var t=e.model.component.data.main;!function e(t){if(t instanceof GP&&t.type===gP.Main&&1===t.numChildren()){var A=t.children[0];A instanceof AX||(A.swapWithParent(),e(t))}}(t);var A,n=(a=e,function e(t){if(!(t instanceof AX)){var A=t.clone();if(A instanceof GP){var n=NX+A.getSource();A.setSource(n),a.model.component.data.outputNodes[n]=A}else(A instanceof tX||A instanceof GX||A instanceof kX||A instanceof DX)&&A.addDimensions(a.fields);var r,i=Object(ut.a)(t.children.flatMap(e));try{for(i.s();!(r=i.n()).done;)r.value.parent=A}catch(o){i.e(o)}finally{i.f()}return[A]}return t.children.flatMap(e)}),r=e.children.map(n).flat(),i=Object(ut.a)(r);try{for(i.s();!(A=i.n()).done;){A.value.parent=t}}catch(s){i.e(s)}finally{i.f()}}else{var o=e.children[0];(o instanceof tX||o instanceof GX||o instanceof kX||o instanceof DX)&&o.addDimensions(e.fields),o.swapWithParent(),xX(e)}else e.children.map(xX);var a}var NX="scale_";function UX(e){var t,A=Object(ut.a)(e);try{for(A.s();!(t=A.n()).done;){var n,r=t.value,i=Object(ut.a)(r.children);try{for(i.s();!(n=i.n()).done;){if(n.value.parent!==r)return!1}}catch(o){i.e(o)}finally{i.f()}if(!UX(r.children))return!1}}catch(o){A.e(o)}finally{A.f()}return!0}function _X(e,t){var A,n=!1,r=Object(ut.a)(t);try{for(r.s();!(A=r.n()).done;){var i=A.value;n=e.optimize(i)||n}}catch(o){r.e(o)}finally{r.f()}return n}function MX(e,t,A){var n=e.sources,r=!1;return r=_X(new yX,n)||r,r=_X(new EX(t),n)||r,n=n.filter((function(e){return e.numChildren()>0})),r=_X(new bX,n)||r,n=n.filter((function(e){return e.numChildren()>0})),A||(r=_X(new vX,n)||r,r=_X(new FX(t),n)||r,r=_X(new QX,n)||r,r=_X(new mX,n)||r,r=_X(new SX,n)||r,r=_X(new wX,n)||r,r=_X(new pX,n)||r,r=_X(new RX,n)||r),e.sources=n,r}function OX(e,t){UX(e.sources);for(var A=0,n=0,r=0;r<5&&MX(e,t,!0);r++)A++;e.sources.map(xX);for(var i=0;i<5&&MX(e,t,!1);i++)n++;UX(e.sources),5===Math.max(A,n)&&tT("Maximum optimization runs(".concat(5,") reached."))}var LX=function(){function e(t){Object(y.a)(this,e),Object.defineProperty(this,"signal",{enumerable:!0,get:t})}return Object(v.a)(e,null,[{key:"fromName",value:function(t,A){return new e((function(){return t(A)}))}}]),e}(),TX=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function ZX(e){fq(e)?function(e){var t,A=e.component.scales,n=Object(ut.a)(y_(A));try{for(n.s();!(t=n.n()).done;){var r=t.value,i=HX(e,r);if(A[r].setWithExplicit("domains",i),PX(e,r),e.component.data.isFaceted){for(var o=e;!dq(o)&&o.parent;)o=o.parent;if("shared"===o.component.resolve.scale[r]){var a,s=Object(ut.a)(i.value);try{for(s.s();!(a=s.n()).done;){var g=a.value;iO(g)&&(g.data=NX+g.data.replace(NX,""))}}catch(c){s.e(c)}finally{s.f()}}}}}catch(c){n.e(c)}finally{n.f()}}(e):function(e){var t,A=Object(ut.a)(e.children);try{for(A.s();!(t=A.n()).done;){ZX(t.value)}}catch(I){A.e(I)}finally{A.f()}var n,r=e.component.scales,i=Object(ut.a)(y_(r));try{for(i.s();!(n=i.n()).done;){var o,a=n.value,s=void 0,g=null,c=Object(ut.a)(e.children);try{for(c.s();!(o=c.n()).done;){var u=o.value.component.scales[a];if(u){s=void 0===s?u.getWithExplicit("domains"):sP(s,u.getWithExplicit("domains"),"domains","scale",KX);var l=u.get("selectionExtent");g&&l&&g.param!==l.param&&tT(B.NEEDS_SAME_SELECTION),g=l}}}catch(I){c.e(I)}finally{c.f()}r[a].setWithExplicit("domains",s),g&&r[a].set("selectionExtent",g,!0)}}catch(I){i.e(I)}finally{i.f()}}(e)}function HX(e,t){var A=e.getScaleComponent(t).get("type"),n=e.encoding,r=function(e,t,A,n){if("unaggregated"===e){var r=VX(t,A),i=r.valid,o=r.reason;if(!i)return void tT(o)}else if(void 0===e&&n.useUnaggregatedDomain){if(VX(t,A).valid)return"unaggregated"}return e}(e.scaleDomain(t),e.typedFieldDef(t),A,e.config.scale);return r!==e.scaleDomain(t)&&(e.specifiedScales[t]=Object.assign(Object.assign({},e.specifiedScales[t]),{domain:r})),"x"===t&&nY(n.x2)?nY(n.x)?sP(JX(A,r,e,"x"),JX(A,r,e,"x2"),"domain","scale",KX):JX(A,r,e,"x2"):"y"===t&&nY(n.y2)?nY(n.y)?sP(JX(A,r,e,"y"),JX(A,r,e,"y2"),"domain","scale",KX):JX(A,r,e,"y2"):JX(A,r,e,t)}function YX(e,t,A){var n,r=null===(n=ET(A))||void 0===n?void 0:n.unit;return"temporal"===t||r?function(e,t,A){return e.map((function(e){var n=uY(e,{timeUnit:A,type:t});return{signal:"{data: ".concat(n,"}")}}))}(e,t,r):[e]}function JX(e,t,A,n){var r=nY(A.encoding[n]),i=r.type,o=r.timeUnit;if(function(e){return e&&e.unionWith}(t)){var a=JX(e,void 0,A,n),s=YX(t.unionWith,i,o);return rP([].concat(Object(zn.a)(a.value),Object(zn.a)(s)))}if(nO(t))return rP([t]);if(t&&"unaggregated"!==t&&!fZ(t))return rP(YX(t,i,o));var g=A.stack;if(g&&n===g.fieldChannel){if("normalize"===g.offset)return iP([[0,1]]);var c=A.requestDataName(gP.Main);return iP([{data:c,field:A.vgField(n,{suffix:"start"})},{data:c,field:A.vgField(n,{suffix:"end"})}])}var u=kM(n)&&DH(r)?function(e,t,A){if(!lZ(A))return;var n=e.fieldDef(t),r=n.sort;if(dH(r))return{op:"min",field:tW(n,t),order:"ascending"};var i=e.stack,o=i?[].concat(Object(zn.a)(i.groupbyField?[i.groupbyField]:[]),Object(zn.a)(i.stackBy.map((function(e){return e.fieldDef.field})))):void 0;if(fH(r)){var a=i&&!c_(o,r.field);return jX(r,a)}if(hH(r)){var s=r.encoding,g=r.order,c=e.fieldDef(s),u=c.aggregate,l=c.field,I=i&&!c_(o,l);if(LM(u)||TM(u))return jX({field:JH(c),order:g},I);if(ZM(u)||!u)return jX({op:u,field:l,order:g},I)}else{if("descending"===r)return{op:"min",field:e.vgField(t),order:"descending"};if(c_(["ascending",void 0],r))return!0}return}(A,n,e):void 0;if(kH(r))return iP(YX([r.datum],i,o));var l=r;if("unaggregated"===t){var I=A.requestDataName(gP.Main),C=r.field;return iP([{data:I,field:JH({field:C,aggregate:"min"})},{data:I,field:JH({field:C,aggregate:"max"})}])}if(VM(l.bin)){if(lZ(e))return iP("bin-ordinal"===e?[]:[{data:b_(u)?A.requestDataName(gP.Main):A.requestDataName(gP.Raw),field:A.vgField(n,IY(l,n)?{binSuffix:"range"}:{}),sort:!0!==u&&xU(u)?u:{field:A.vgField(n,{}),op:"min"}}]);var h=l.bin;if(VM(h)){var f=qW(A,l.field,h);return iP([new LX((function(){var e=A.getSignalName(f);return"[".concat(e,".start, ").concat(e,".stop]")}))])}return iP([{data:A.requestDataName(gP.Main),field:A.vgField(n,{})}])}if(l.timeUnit&&c_(["time","utc"],e)&&wH(l,fq(A)?A.encoding[BM(n)]:void 0,A.markDef,A.config)){var d=A.requestDataName(gP.Main);return iP([{data:d,field:A.vgField(n)},{data:d,field:A.vgField(n,{suffix:"end"})}])}return iP(u?[{data:b_(u)?A.requestDataName(gP.Main):A.requestDataName(gP.Raw),field:A.vgField(n),sort:u}]:[{data:A.requestDataName(gP.Main),field:A.vgField(n)}])}function jX(e,t){var A=e.op,n=e.field,r=e.order;return Object.assign(Object.assign({op:null!==A&&void 0!==A?A:t?"sum":"min"},n?{field:x_(n)}:{}),r?{order:r}:{})}function PX(e,t){var A,n=e.component.scales[t],r=e.specifiedScales[t].domain,i=null===(A=e.fieldDef(t))||void 0===A?void 0:A.bin,o=fZ(r)&&r,a=WM(i)&&XM(i.extent)&&i.extent;(o||a)&&n.set("selectionExtent",null!==o&&void 0!==o?o:a,!0)}function VX(e,t){var A=e.aggregate,n=e.type;return A?JU(A)&&!jM[A]?{valid:!1,reason:B.unaggregateDomainWithNonSharedDomainOp(A)}:"quantitative"===n&&"log"===t?{valid:!1,reason:B.unaggregatedDomainWithLogScale(e)}:{valid:!0}:{valid:!1,reason:B.unaggregateDomainHasNoEffectForRawField(e)}}function KX(e,t,A,n){return e.explicit&&t.explicit&&tT(B.mergeConflictingDomainProperty(A,n,e.value,t.value)),{explicit:e.explicit,value:[].concat(Object(zn.a)(e.value),Object(zn.a)(t.value))}}function WX(e){if(iO(e)&&JU(e.field))return e.field;if(function(e){return!kU(e)&&("fields"in e&&!("data"in e))}(e)){var t,A,n=Object(ut.a)(e.fields);try{for(n.s();!(A=n.n()).done;){var r=A.value;if(iO(r)&&JU(r.field))if(t){if(t!==r.field)return tT(B.FACETED_INDEPENDENT_DIFFERENT_SOURCES),t}else t=r.field}}catch(o){n.e(o)}finally{n.f()}return tT(B.FACETED_INDEPENDENT_SAME_FIELDS_DIFFERENT_SOURCES),t}if(function(e){return!kU(e)&&("fields"in e&&"data"in e)}(e)){tT(B.FACETED_INDEPENDENT_SAME_SOURCE);var i=e.fields[0];return JU(i)?i:void 0}}function XX(e,t){return function(e){var t=h_(e.map((function(e){if(iO(e)){e.sort;return TX(e,["sort"])}return e})),s_),A=h_(e.map((function(e){if(iO(e)){var t=e.sort;return void 0===t||b_(t)||("op"in t&&"count"===t.op&&delete t.field,"ascending"===t.order&&delete t.order),t}})).filter((function(e){return void 0!==e})),s_);if(0!==t.length){if(1===t.length){var n=e[0];if(iO(n)&&A.length>0){var r=A[0];if(A.length>1)tT(B.MORE_THAN_ONE_SORT),r=!0;else if(xU(r)&&"field"in r){var i=r.field;n.field===i&&(r=!r.order||{order:r.order})}return Object.assign(Object.assign({},n),{sort:r})}return n}var o,a=h_(A.map((function(e){return b_(e)||!("op"in e)||JU(e.op)&&e.op in OM?e:(tT(B.domainSortDropped(e)),!0)})),s_);1===a.length?o=a[0]:a.length>1&&(tT(B.MORE_THAN_ONE_SORT),o=!0);var s=h_(e.map((function(e){return iO(e)?e.data:null})),(function(e){return e}));return 1===s.length&&null!==s[0]?Object.assign({data:s[0],fields:t.map((function(e){return e.field}))},o?{sort:o}:{}):Object.assign({fields:t},o?{sort:o}:{})}}(e.component.scales[t].get("domains").map((function(t){return iO(t)&&(t.data=e.lookupDataSource(t.data)),t})))}var qX=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function zX(e){return pq(e)||Bq(e)?e.children.reduce((function(e,t){return e.concat(zX(t))}),$X(e)):$X(e)}function $X(e){return y_(e.component.scales).reduce((function(t,A){var n=e.component.scales[A];if(n.merged)return t;var r=n.combine(),i=r.name,o=r.type,a=r.selectionExtent,s=(r.domains,r.range,r.reverse),g=qX(r,["name","type","selectionExtent","domains","range","reverse"]),c=function(e,t,A,n){if(mM(A)){if(rO(e))return{step:{signal:"".concat(t,"_step")}}}else if(xU(e)&&iO(e))return Object.assign(Object.assign({},e),{data:n.lookupDataSource(e.data)});return e}(r.range,i,A,e),u=XX(e,A),l=a?function(e,t,A,n){var r=OK(e,t.param,t);return{signal:IZ(A.get("type"))&&kU(n)&&n[0]>n[1]?"isValid(".concat(r,") && reverse(").concat(r,")"):r}}(e,a,n,u):null;return t.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:i,type:o},u?{domain:u}:{}),l?{domainRaw:l}:{}),{range:c}),void 0!==s?{reverse:s}:{}),g)),t}),[])}var eq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,{},{name:e})).merged=!1,r.setWithExplicit("type",n),r}return Object(v.a)(A,[{key:"domainDefinitelyIncludesZero",value:function(){return!1!==this.get("zero")||u_(this.get("domains"),(function(e){return kU(e)&&2===e.length&&e[0]<=0&&e[1]>=0}))}}]),A}(nP),tq=["range","scheme"];function Aq(e){return"x"===e?"width":"y"===e?"height":void 0}function nq(e,t){var A=e.fieldDef(t);if(null===A||void 0===A?void 0:A.bin){var n=A.bin,r=A.field,i=Aq(t),o=e.getName(i);if(xU(n)&&n.binned&&void 0!==n.step)return new LX((function(){var A=e.scaleName(t),r='(domain("'.concat(A,'")[1] - domain("').concat(A,'")[0]) / ').concat(n.step);return"".concat(e.getSignalName(o)," / (").concat(r,")")}));if(VM(n)){var a=qW(e,r,n);return new LX((function(){var t=e.getSignalName(a),A="(".concat(t,".stop - ").concat(t,".start) / ").concat(t,".step");return"".concat(e.getSignalName(o)," / (").concat(A,")")}))}}}function rq(e,t){var A,n=t.specifiedScales[e],r=t.size,i=t.getScaleComponent(e).get("type"),o=Object(ut.a)(tq);try{for(o.s();!(A=o.n()).done;){var a=A.value;if(void 0!==n[a]){var s=EZ(i,a),g=QZ(e,a);if(s)if(g)tT(g);else switch(a){case"range":var c=n.range;if(kU(c)){if(mM(e))return rP(c.map((function(e){if("width"===e||"height"===e){var A=t.getName(e),n=t.getSignalName.bind(t);return LX.fromName(n,A)}return e})))}else if(xU(c))return rP({data:t.requestDataName(gP.Main),field:c.field,sort:{op:"min",field:t.vgField(e)}});return rP(c);case"scheme":return rP(iq(n[a]))}else tT(B.scalePropertyNotWorkWithScaleType(i,a,e))}}}catch(f){o.e(f)}finally{o.f()}if("x"===e||"y"===e){var u="x"===e?"width":"height",l=r[u];if(pJ(l)){if(lZ(i))return rP({step:l.step});tT(B.stepDropped(u))}}var I=n.rangeMin,C=n.rangeMax,h=function(e,t){var A=t.size,n=t.config,r=t.mark,i=t.encoding,o=t.getSignalName.bind(t),a=nY(i[e]).type,s=t.getScaleComponent(e).get("type"),g=t.specifiedScales[e],c=g.domain,u=g.domainMid;switch(e){case"x":case"y":if(c_(["point","band"],s))if("x"!==e||A.width){if("y"===e&&!A.height){var l=bJ(n.view,"height");if(pJ(l))return l}}else{var I=bJ(n.view,"width");if(pJ(I))return I}var C=Aq(e),h=t.getName(C);return"y"===e&&IZ(s)?[LX.fromName(o,h),0]:[0,LX.fromName(o,h)];case"size":var f=t.component.scales[e].get("zero"),d=function e(t,A,n){if(A)return nO(A)?{signal:"".concat(A.signal," ? 0 : ").concat(e(t,!1,n))}:0;switch(t){case"bar":case"tick":return n.scale.minBandSize;case"line":case"trail":case"rule":return n.scale.minStrokeWidth;case"text":return n.scale.minFontSize;case"point":case"square":case"circle":return n.scale.minSize}throw new Error(B.incompatibleChannel("size",t))}(r,f,n),p=function(e,t,A,n){var r={x:nq(A,"x"),y:nq(A,"y")};switch(e){case"bar":case"tick":if(void 0!==n.scale.maxBandSize)return n.scale.maxBandSize;var i=oq(t,r,n.view);return YU(i)?i-1:new LX((function(){return"".concat(i.signal," - 1")}));case"line":case"trail":case"rule":return n.scale.maxStrokeWidth;case"text":return n.scale.maxFontSize;case"point":case"square":case"circle":if(n.scale.maxSize)return n.scale.maxSize;var o=oq(t,r,n.view);return YU(o)?Math.pow(.95*o,2):new LX((function(){return"pow(".concat(.95," * ").concat(o.signal,", 2)")}))}throw new Error(B.incompatibleChannel("size",e))}(r,A,t,n);return hZ(s)?function(e,t,A){var n=function(){var n=hO(t),r=hO(e),i="(".concat(n," - ").concat(r,") / (").concat(A," - 1)");return"sequence(".concat(r,", ").concat(n," + ").concat(i,", ").concat(i,")")};return nO(t)?new LX(n):{signal:n()}}(d,p,function(e,t,A,n){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return void 0!==A&&kU(A)?A.length+1:(tT(B.domainRequiredForThresholdScale(n)),3)}}(s,n,c,e)):[d,p];case W_:return[0,2*Math.PI];case"angle":return[0,360];case K_:return[0,new LX((function(){var e=t.getSignalName("width"),A=t.getSignalName("height");return"min(".concat(e,",").concat(A,")/2")}))];case"strokeWidth":return[n.scale.minStrokeWidth,n.scale.maxStrokeWidth];case"strokeDash":return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case eM:return"symbol";case q_:case z_:case $_:return"ordinal"===s?"nominal"===a?"category":"ordinal":void 0!==u?"diverging":"rect"===r||"geoshape"===r?"heatmap":"ramp";case"opacity":case"fillOpacity":case"strokeOpacity":return[n.scale.minOpacity,n.scale.maxOpacity]}throw new Error("Scale range undefined for channel ".concat(e))}(e,t);return(void 0!==I||void 0!==C)&&EZ(i,"rangeMin")&&kU(h)&&2===h.length?rP([null!==I&&void 0!==I?I:h[0],null!==C&&void 0!==C?C:h[1]]):iP(h)}function iq(e){return function(e){return!JU(e)&&!!e.name}(e)?Object.assign({scheme:e.name},o_(e,["name"])):{scheme:e}}function oq(e,t,A){var n=pJ(e.width)?e.width.step:mJ(A,"width"),r=pJ(e.height)?e.height.step:mJ(A,"height");return t.x||t.y?new LX((function(){var e=[t.x?t.x.signal:n,t.y?t.y.signal:r];return"min(".concat(e.join(", "),")")})):Math.min(n,r)}function aq(e,t){fq(e)?function(e,t){var A,n=e.component.scales,r=e.config,i=e.encoding,o=e.markDef,a=e.specifiedScales,s=Object(ut.a)(y_(n));try{for(s.s();!(A=s.n()).done;){var g=A.value,c=a[g],u=n[g],l=e.getScaleComponent(g),I=nY(i[g]),C=c[t],h=l.get("type"),f=l.get("padding"),d=l.get("paddingInner"),p=EZ(h,t),E=QZ(g,t);if(void 0!==C&&(p?E&&tT(E):tT(B.scalePropertyNotWorkWithScaleType(h,t,g))),p&&void 0===E)if(void 0!==C){var Q=I.timeUnit,y=I.type;switch(t){case"domainMax":case"domainMin":AT(c[t])||"temporal"===y||Q?u.set(t,{signal:uY(c[t],{type:y,timeUnit:Q})},!0):u.set(t,c[t],!0);break;default:u.copyKeyFromObject(t,c)}}else{var v=t in sq?sq[t]({model:e,channel:g,fieldOrDatumDef:I,scaleType:h,scalePadding:f,scalePaddingInner:d,domain:c.domain,markDef:o,config:r}):r.scale[t];void 0!==v&&u.set(t,v,!1)}}}catch(m){s.e(m)}finally{s.f()}}(e,t):cq(e,t)}var sq={bins:function(e){var t=e.model,A=e.fieldOrDatumDef;return DH(A)?function(e,t){var A=t.bin;if(VM(A)){var n=qW(e,t.field,A);return new LX((function(){return e.getSignalName(n)}))}if(KM(A)&&WM(A)&&void 0!==A.step)return{step:A.step};return}(t,A):void 0},interpolate:function(e){return function(e,t){if(c_([q_,z_,$_],e)&&"nominal"!==t)return"hcl";return}(e.channel,e.fieldOrDatumDef.type)},nice:function(e){return function(e,t,A,n){var r;if((null===(r=AY(n))||void 0===r?void 0:r.bin)||kU(A)||c_([WT,XT],e))return;return t in yM||void 0}(e.scaleType,e.channel,e.domain,e.fieldOrDatumDef)},padding:function(e){var t=e.channel,A=e.scaleType,n=e.fieldOrDatumDef,r=e.markDef,i=e.config;return function(e,t,A,n,r,i){if(e in yM){if(CZ(t)){if(void 0!==A.continuousPadding)return A.continuousPadding;var o=r.type,a=r.orient;if("bar"===o&&(!DH(n)||!n.bin&&!n.timeUnit)&&("vertical"===a&&"x"===e||"horizontal"===a&&"y"===e))return i.continuousBandSize}if(t===eZ)return A.pointPadding}return}(t,A,i.scale,n,r,i.bar)},paddingInner:function(e){var t=e.scalePadding,A=e.channel,n=e.markDef,r=e.config;return function(e,t,A,n){if(void 0!==e)return;if(t in yM){var r=n.bandPaddingInner,i=n.barBandPaddingInner,o=n.rectBandPaddingInner;return M_(r,"bar"===A?i:o)}return}(t,A,n.type,r.scale)},paddingOuter:function(e){var t=e.scalePadding,A=e.channel,n=e.scaleType,r=e.markDef,i=e.scalePaddingInner,o=e.config;return function(e,t,A,n,r,i){if(void 0!==e)return;if(t in yM){if(A===tZ)return M_(i.bandPaddingOuter,nO(r)?{signal:"".concat(r.signal,"/2")}:r/2)}return}(t,A,n,r.type,i,o.scale)},reverse:function(e){var t=e.fieldOrDatumDef,A=e.scaleType,n=e.channel,r=e.config;return function(e,t,A,n){if("x"===A&&void 0!==n.xReverse)return IZ(e)&&"descending"===t?nO(n.xReverse)?{signal:"!".concat(n.xReverse.signal)}:!n.xReverse:n.xReverse;if(IZ(e)&&"descending"===t)return!0;return}(A,DH(t)?t.sort:void 0,n,r.scale)},zero:function(e){return function(e,t,A,n,r){if(A&&"unaggregated"!==A&&IZ(r)){if(kU(A)){var i=A[0],o=A[A.length-1];if(i<=0&&o>=0)return!0}return!1}if("size"===e&&"quantitative"===t.type&&!hZ(r))return!0;if((!DH(t)||!t.bin)&&c_([].concat(Object(zn.a)(vM),Object(zn.a)(wM)),e)){var a=n.orient;return!c_(["bar","area","line","trail"],n.type)||!("horizontal"===a&&"y"===e||"vertical"===a&&"x"===e)}return!1}(e.channel,e.fieldOrDatumDef,e.domain,e.markDef,e.scaleType)}};function gq(e){fq(e)?function(e){var t,A=e.component.scales,n=Object(ut.a)(GM);try{for(n.s();!(t=n.n()).done;){var r=t.value,i=A[r];if(i){var o=rq(r,e);i.setWithExplicit("range",o)}}}catch(a){n.e(a)}finally{n.f()}}(e):cq(e,"range")}function cq(e,t){var A,n=e.component.scales,r=Object(ut.a)(e.children);try{for(r.s();!(A=r.n()).done;){var i=A.value;"range"===t?gq(i):aq(i,t)}}catch(I){r.e(I)}finally{r.f()}var o,a=Object(ut.a)(y_(n));try{for(a.s();!(o=a.n()).done;){var s,g=o.value,c=void 0,u=Object(ut.a)(e.children);try{for(u.s();!(s=u.n()).done;){var l=s.value.component.scales[g];if(l)c=sP(c,l.getWithExplicit(t),t,"scale",oP((function(e,A){switch(t){case"range":return e.step&&A.step?e.step-A.step:0}return 0})))}}catch(I){u.e(I)}finally{u.f()}n[g].setWithExplicit(t,c)}}catch(I){a.e(I)}finally{a.f()}}function uq(e,t,A,n){var r,i,o=function(e,t,A){var n;switch(t.type){case"nominal":case"ordinal":if(oM(e)||"discrete"===_M(e))return"shape"===e&&"ordinal"===t.type&&tT(B.discreteChannelCannotEncode(e,"ordinal")),"ordinal";if(e in yM){if(c_(["rect","bar","image","rule"],A.type))return"band"}else if("arc"===A.type&&e in bM)return"band";return JZ(A[pM(e)])||LH(t)&&(null===(n=t.axis)||void 0===n?void 0:n.tickBand)?"band":"point";case"temporal":return oM(e)?"time":"discrete"===_M(e)?(tT(B.discreteChannelCannotEncode(e,"temporal")),"ordinal"):DH(t)&&t.timeUnit&&ET(t.timeUnit).utc?"utc":"time";case"quantitative":return oM(e)?DH(t)&&VM(t.bin)?"bin-ordinal":"linear":"discrete"===_M(e)?(tT(B.discreteChannelCannotEncode(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(B.invalidFieldType(t.type))}(t,A,n),a=e.type;return kM(t)?void 0!==a?function(e,t){if(!kM(e))return!1;switch(e){case"x":case"y":case W_:case K_:return CZ(t)||c_(["band","point"],t);case"size":case"strokeWidth":case"opacity":case"fillOpacity":case"strokeOpacity":case"angle":return CZ(t)||hZ(t)||c_(["band","point","ordinal"],t);case q_:case z_:case $_:return"band"!==t;case"strokeDash":case eM:return"ordinal"===t||hZ(t)}}(t,a)?DH(A)&&(r=a,i=A.type,!(c_([OT,TT],i)?void 0===r||lZ(r):i===LT?c_([WT,XT,void 0],r):i!==MT||c_([jT,PT,VT,KT,qT,zT,$T,JT,void 0],r)))?(tT(B.scaleTypeNotWorkWithFieldDef(a,o)),o):a:(tT(B.scaleTypeNotWorkWithChannel(t,a,o)),o):o:null}function lq(e){fq(e)?e.component.scales=function(e){var t=e.encoding,A=e.mark,n=e.markDef;return GM.reduce((function(r,i){var o=nY(t[i]);if(o&&A===_Z&&i===eM&&o.type===ZT)return r;var a=o&&o.scale;if(o&&null!==a&&!1!==a){null!==a&&void 0!==a||(a={});var s=uq(a,i,o,n);r[i]=new eq(e.scaleName("".concat(i),!0),{value:s,explicit:a.type===s})}return r}),{})}(e):e.component.scales=function(e){var t,A,n,r=e.component.scales={},i={},o=e.component.resolve,a=Object(ut.a)(e.children);try{for(a.s();!(n=a.n()).done;){var s=n.value;lq(s);var g,c=Object(ut.a)(y_(s.component.scales));try{for(c.s();!(g=c.n()).done;){var u=g.value;if(null!==(t=(A=o.scale)[u])&&void 0!==t||(A[u]=vW(u,e)),"shared"===o.scale[u]){var l=i[u],I=s.component.scales[u].getWithExplicit("type");l?nZ(l.value,I.value)?i[u]=sP(l,I,"type","scale",Iq):(o.scale[u]="independent",delete i[u]):i[u]=I}}}catch(v){c.e(v)}finally{c.f()}}}catch(v){a.e(v)}finally{a.f()}var C,h=Object(ut.a)(y_(i));try{for(h.s();!(C=h.n()).done;){var f=C.value,d=e.scaleName(f,!0),B=i[f];r[f]=new eq(d,B);var p,E=Object(ut.a)(e.children);try{for(E.s();!(p=E.n()).done;){var Q=p.value,y=Q.component.scales[f];y&&(Q.renameScale(y.get("name"),d),y.merged=!0)}}catch(v){E.e(v)}finally{E.f()}}}catch(v){h.e(v)}finally{h.f()}return r}(e)}var Iq=oP((function(e,t){return iZ(e)-iZ(t)}));var Cq=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},hq=function(){function e(){Object(y.a)(this,e),this.nameMap={}}return Object(v.a)(e,[{key:"rename",value:function(e,t){this.nameMap[e]=t}},{key:"has",value:function(e){return void 0!==this.nameMap[e]}},{key:"get",value:function(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}]),e}();function fq(e){return"unit"===(null===e||void 0===e?void 0:e.type)}function dq(e){return"facet"===(null===e||void 0===e?void 0:e.type)}function Bq(e){return"concat"===(null===e||void 0===e?void 0:e.type)}function pq(e){return"layer"===(null===e||void 0===e?void 0:e.type)}var Eq=function(){function e(t,A,n,r,i,o,a){var s,g,c=this;Object(y.a)(this,e),this.type=A,this.parent=n,this.config=i,this.correctDataNames=function(e){var t,A,n;return(null===(t=e.from)||void 0===t?void 0:t.data)&&(e.from.data=c.lookupDataSource(e.from.data)),(null===(n=null===(A=e.from)||void 0===A?void 0:A.facet)||void 0===n?void 0:n.data)&&(e.from.facet.data=c.lookupDataSource(e.from.facet.data)),e},this.parent=n,this.config=i,this.view=$M(a),this.name=null!==(s=t.name)&&void 0!==s?s:r,this.title=AO(t.title)?{text:t.title}:t.title?$M(t.title):void 0,this.scaleNameMap=n?n.scaleNameMap:new hq,this.projectionNameMap=n?n.projectionNameMap:new hq,this.signalNameMap=n?n.signalNameMap:new hq,this.data=t.data,this.description=t.description,this.transforms=(null!==(g=t.transform)&&void 0!==g?g:[]).map((function(e){return Qj(e)?{filter:A_(e.filter,UT)}:e})),this.layout="layer"===A||"unit"===A?{}:function(e,t,A){var n,r,i=A[t],o={},a=i.spacing,s=i.columns;void 0!==a&&(o.spacing=a),void 0!==s&&(EH(e)&&!BH(e.facet)||fJ(e))&&(o.columns=s),dJ(e)&&(o.columns=1);var g,c=Object(ut.a)(QJ);try{for(c.s();!(g=c.n()).done;){var u=g.value;if(void 0!==e[u])if("spacing"===u){var l=e[u];o[u]=YU(l)?l:{row:null!==(n=l.row)&&void 0!==n?n:a,column:null!==(r=l.column)&&void 0!==r?r:a}}else o[u]=e[u]}}catch(I){c.e(I)}finally{c.f()}return o}(t,A,i),this.component={data:{sources:n?n.component.data.sources:[],outputNodes:n?n.component.data.outputNodes:{},outputNodeRefCounts:n?n.component.data.outputNodeRefCounts:{},isFaceted:EH(t)||n&&n.component.data.isFaceted&&void 0===t.data},layoutSize:new nP,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},o?r_(o):{}),selection:null,scales:null,projection:null,axes:{},legends:{}}}return Object(v.a)(e,[{key:"parse",value:function(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}},{key:"parseScale",value:function(){!function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.ignoreRange;lq(e),ZX(e);var n,r=Object(ut.a)(pZ);try{for(r.s();!(n=r.n()).done;){var i=n.value;aq(e,i)}}catch(o){r.e(o)}finally{r.f()}A||gq(e)}(this)}},{key:"parseProjection",value:function(){VW(this)}},{key:"renameTopLevelLayoutSizeSignal",value:function(){"width"!==this.getName("width")&&this.renameSignal(this.getName("width"),"width"),"height"!==this.getName("height")&&this.renameSignal(this.getName("height"),"height")}},{key:"parseLegends",value:function(){MW(this)}},{key:"assembleEncodeFromView",value:function(e){e.style;var t,A=Cq(e,["style"]),n={},r=Object(ut.a)(y_(A));try{for(r.s();!(t=r.n()).done;){var i=t.value,o=A[i];void 0!==o&&(n[i]=IO(o))}}catch(a){r.e(a)}finally{r.f()}return n}},{key:"assembleGroupEncodeEntry",value:function(e){var t={};return this.view&&(t=this.assembleEncodeFromView(this.view)),e||(this.description&&(t.description=IO(this.description)),"unit"!==this.type&&"layer"!==this.type)?Q_(t)?void 0:t:Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},null!==t&&void 0!==t?t:{})}},{key:"assembleLayout",value:function(){if(this.layout){var e=this.layout,t=e.spacing,A=Cq(e,["spacing"]),n=this.component,r=this.config,i=function(e,t){var A,n={},r=Object(ut.a)(sM);try{for(r.s();!(A=r.n()).done;){var i=A.value,o=e[i];if(null===o||void 0===o?void 0:o.facetFieldDef){var a=rW(["titleAnchor","titleOrient"],o.facetFieldDef.header,t,i),s=a.titleAnchor,g=AW(i,a.titleOrient),c=hW(s,g);void 0!==c&&(n[g]=c)}}}catch(u){r.e(u)}finally{r.f()}return Q_(n)?void 0:n}(n.layoutHeaders,r);return Object.assign(Object.assign(Object.assign({padding:t},this.assembleDefaultLayout()),A),i?{titleBand:i}:{})}}},{key:"assembleDefaultLayout",value:function(){return{}}},{key:"assembleHeaderMarks",value:function(){var e,t=this.component.layoutHeaders,A=[],n=Object(ut.a)(sM);try{for(n.s();!(e=n.n()).done;){var r=e.value;t[r].title&&A.push(aW(this,r))}}catch(s){n.e(s)}finally{n.f()}var i,o=Object(ut.a)(iW);try{for(o.s();!(i=o.n()).done;){var a=i.value;A=A.concat(cW(this,a))}}catch(s){o.e(s)}finally{o.f()}return A}},{key:"assembleAxes",value:function(){return function(e,t){var A=e.x,n=void 0===A?[]:A,r=e.y,i=void 0===r?[]:r;return[].concat(Object(zn.a)(n.map((function(e){return YK(e,"grid",t)}))),Object(zn.a)(i.map((function(e){return YK(e,"grid",t)}))),Object(zn.a)(n.map((function(e){return YK(e,"main",t)}))),Object(zn.a)(i.map((function(e){return YK(e,"main",t)})))).filter((function(e){return e}))}(this.component.axes,this.config)}},{key:"assembleLegends",value:function(){return HW(this)}},{key:"assembleProjections",value:function(){return YW(this)}},{key:"assembleTitle",value:function(){var e,t,A,n=null!==(e=this.title)&&void 0!==e?e:{},r=n.encoding,i=Cq(n,["encoding"]),o=Object.assign(Object.assign(Object.assign({},tO(this.config.title).nonMarkTitleProperties),i),r?{encode:{update:r}}:{});if(o.text)return c_(["unit","layer"],this.type)?c_(["middle",void 0],o.anchor)&&(null!==(t=o.frame)&&void 0!==t||(o.frame="group")):null!==(A=o.anchor)&&void 0!==A||(o.anchor="start"),Q_(o)?void 0:o}},{key:"assembleGroup",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t={};(e=e.concat(this.assembleSignals())).length>0&&(t.signals=e);var A=this.assembleLayout();A&&(t.layout=A),t.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());var n=!this.parent||dq(this.parent)?zX(this):[];n.length>0&&(t.scales=n);var r=this.assembleAxes();r.length>0&&(t.axes=r);var i=this.assembleLegends();return i.length>0&&(t.legends=i),t}},{key:"getName",value:function(e){return w_((this.name?"".concat(this.name,"_"):"")+e)}},{key:"getDataName",value:function(e){return this.getName(gP[e].toLowerCase())}},{key:"requestDataName",value:function(e){var t=this.getDataName(e),A=this.component.data.outputNodeRefCounts;return A[t]=(A[t]||0)+1,t}},{key:"getSizeSignalRef",value:function(e){if(dq(this.parent)){var t=SM(QW(e)),A=this.component.scales[t];if(A&&!A.merged){var n=A.get("type"),r=A.get("range");if(lZ(n)&&rO(r)){var i=A.get("name"),o=WX(XX(this,t));return o?{signal:EW(i,A,JH({aggregate:"distinct",field:o},{expr:"datum"}))}:(tT(B.unknownField(t)),null)}}}return{signal:this.signalNameMap.get(this.getName(e))}}},{key:"lookupDataSource",value:function(e){var t=this.component.data.outputNodes[e];return t?t.getSource():e}},{key:"getSignalName",value:function(e){return this.signalNameMap.get(e)}},{key:"renameSignal",value:function(e,t){this.signalNameMap.rename(e,t)}},{key:"renameScale",value:function(e,t){this.scaleNameMap.rename(e,t)}},{key:"renameProjection",value:function(e,t){this.projectionNameMap.rename(e,t)}},{key:"scaleName",value:function(e,t){return t?this.getName(e):IM(e)&&kM(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e))?this.scaleNameMap.get(this.getName(e)):void 0}},{key:"projectionName",value:function(e){return e?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}},{key:"getScaleComponent",value:function(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");var t=this.component.scales[e];return t&&!t.merged?t:this.parent?this.parent.getScaleComponent(e):void 0}},{key:"getSelectionComponent",value:function(e,t){var A=this.component.selection[e];if(!A&&this.parent&&(A=this.parent.getSelectionComponent(e,t)),!A)throw new Error(B.selectionNotFound(t));return A}},{key:"hasAxisOrientSignalRef",value:function(){var e,t;return(null===(e=this.component.axes.x)||void 0===e?void 0:e.some((function(e){return e.hasOrientSignalRef()})))||(null===(t=this.component.axes.y)||void 0===t?void 0:t.some((function(e){return e.hasOrientSignalRef()})))}},{key:"width",get:function(){return this.getSizeSignalRef("width")}},{key:"height",get:function(){return this.getSizeSignalRef("height")}}]),e}(),Qq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){return Object(y.a)(this,A),t.apply(this,arguments)}return Object(v.a)(A,[{key:"vgField",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=this.fieldDef(e);if(A)return JH(A,t)}},{key:"reduceFieldDef",value:function(e,t){return function(e,t,A,n){return e?y_(e).reduce((function(A,r){var i=e[r];return kU(i)?i.reduce((function(e,A){return t.call(n,e,A,r)}),A):t.call(n,A,i,r)}),A):A}(this.getMapping(),(function(t,A,n){var r=AY(A);return r?e(t,r,n):t}),t)}},{key:"forEachFieldDef",value:function(e,t){GY(this.getMapping(),(function(t,A){var n=AY(t);n&&e(n,A)}),t)}}]),A}(Eq),yq=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},vq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r,i,o,a;Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r.transform=r_(n);var s=null!==(i=r.transform.as)&&void 0!==i?i:[void 0,void 0];return r.transform.as=[null!==(o=s[0])&&void 0!==o?o:"value",null!==(a=s[1])&&void 0!==a?a:"density"],r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform))}},{key:"dependentFields",value:function(){var e;return new Set([this.transform.density].concat(Object(zn.a)(null!==(e=this.transform.groupby)&&void 0!==e?e:[])))}},{key:"producedFields",value:function(){return new Set(this.transform.as)}},{key:"hash",value:function(){return"DensityTransform ".concat(s_(this.transform))}},{key:"assemble",value:function(){var e=this.transform,t=e.density,A=yq(e,["density"]);return Object.assign({type:"kde",field:t},A)}}]),A}(DP),mq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e)).filter=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,Object.assign({},this.filter))}},{key:"dependentFields",value:function(){return new Set(y_(this.filter))}},{key:"producedFields",value:function(){return new Set}},{key:"hash",value:function(){return"FilterInvalid ".concat(s_(this.filter))}},{key:"assemble",value:function(){var e=this,t=y_(this.filter).reduce((function(t,A){var n=e.filter[A],r=JH(n,{expr:"datum"});return null!==n&&("temporal"===n.type?t.push("(isDate(".concat(r,") || (isValid(").concat(r,") && isFinite(+").concat(r,")))")):"quantitative"===n.type&&(t.push("isValid(".concat(r,")")),t.push("isFinite(+".concat(r,")")))),t}),[]);return t.length>0?{type:"filter",expr:t.join(" && ")}:null}}],[{key:"make",value:function(e,t){var n=t.config,r=t.mark;if("filter"!==dO("invalid",t.markDef,n))return null;var i=t.reduceFieldDef((function(e,A,n){var i=kM(n)&&t.getScaleComponent(n);i&&(IZ(i.get("type"))&&"count"!==A.aggregate&&!MZ(r)&&(e[A.field]=A));return e}),{});return y_(i).length?new A(e,i):null}}]),A}(DP),bq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r.transform=r_(n);var i=r.transform,o=i.flatten,a=i.as,s=void 0===a?[]:a;return r.transform.as=o.map((function(e,t){var A;return null!==(A=s[t])&&void 0!==A?A:e})),r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(this.parent,r_(this.transform))}},{key:"dependentFields",value:function(){return new Set(this.transform.flatten)}},{key:"producedFields",value:function(){return new Set(this.transform.as)}},{key:"hash",value:function(){return"FlattenTransform ".concat(s_(this.transform))}},{key:"assemble",value:function(){var e=this.transform;return{type:"flatten",fields:e.flatten,as:e.as}}}]),A}(DP),wq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r,i,o,a;Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r.transform=r_(n);var s=null!==(i=r.transform.as)&&void 0!==i?i:[void 0,void 0];return r.transform.as=[null!==(o=s[0])&&void 0!==o?o:"key",null!==(a=s[1])&&void 0!==a?a:"value"],r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform))}},{key:"dependentFields",value:function(){return new Set(this.transform.fold)}},{key:"producedFields",value:function(){return new Set(this.transform.as)}},{key:"hash",value:function(){return"FoldTransform ".concat(s_(this.transform))}},{key:"assemble",value:function(){var e=this.transform;return{type:"fold",fields:e.fold,as:e.as}}}]),A}(DP),Sq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r,i){var o;return Object(y.a)(this,A),(o=t.call(this,e)).fields=n,o.geojson=r,o.signal=i,o}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.fields),this.geojson,this.signal)}},{key:"dependentFields",value:function(){var e,t=(null!==(e=this.fields)&&void 0!==e?e:[]).filter(JU);return new Set([].concat(Object(zn.a)(this.geojson?[this.geojson]:[]),Object(zn.a)(t)))}},{key:"producedFields",value:function(){return new Set}},{key:"hash",value:function(){return"GeoJSON ".concat(this.geojson," ").concat(this.signal," ").concat(s_(this.fields))}},{key:"assemble",value:function(){return[].concat(Object(zn.a)(this.geojson?[{type:"filter",expr:'isValid(datum["'.concat(this.geojson,'"])')}]:[]),[Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})])}}],[{key:"parseAll",value:function(e,t){if(t.component.projection&&!t.component.projection.isFit)return e;for(var n=0,r=0,i=[["longitude","latitude"],["longitude2","latitude2"]];r<i.length;r++){var o=i[r].map((function(e){var A=nY(t.encoding[e]);return DH(A)?A.field:kH(A)?{expr:"".concat(A.datum)}:MH(A)?{expr:"".concat(A.value)}:void 0}));(o[0]||o[1])&&(e=new A(e,o,null,t.getName("geojson_".concat(n++))))}if(t.channelHasField(eM)){var a=t.typedFieldDef(eM);a.type===ZT&&(e=new A(e,null,a.field,t.getName("geojson_".concat(n++))))}return e}}]),A}(DP),Fq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r,i){var o;return Object(y.a)(this,A),(o=t.call(this,e)).projection=n,o.fields=r,o.as=i,o}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,this.projection,r_(this.fields),r_(this.as))}},{key:"dependentFields",value:function(){return new Set(this.fields.filter(JU))}},{key:"producedFields",value:function(){return new Set(this.as)}},{key:"hash",value:function(){return"Geopoint ".concat(this.projection," ").concat(s_(this.fields)," ").concat(s_(this.as))}},{key:"assemble",value:function(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}],[{key:"parseAll",value:function(e,t){if(!t.projectionName())return e;for(var n=0,r=[["longitude","latitude"],["longitude2","latitude2"]];n<r.length;n++){var i=r[n],o=i.map((function(e){var A=nY(t.encoding[e]);return DH(A)?A.field:kH(A)?{expr:"".concat(A.datum)}:MH(A)?{expr:"".concat(A.value)}:void 0})),a="longitude2"===i[0]?"2":"";(o[0]||o[1])&&(e=new A(e,t.projectionName(),o,[t.getName("x".concat(a)),t.getName("y".concat(a))]))}return e}}]),A}(DP),Rq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform))}},{key:"dependentFields",value:function(){var e;return new Set([this.transform.impute,this.transform.key].concat(Object(zn.a)(null!==(e=this.transform.groupby)&&void 0!==e?e:[])))}},{key:"producedFields",value:function(){return new Set([this.transform.impute])}},{key:"processSequence",value:function(e){var t=e.start,A=void 0===t?0:t,n=e.stop,r=e.step,i=[A,n].concat(Object(zn.a)(r?[r]:[])).join(",");return{signal:"sequence(".concat(i,")")}}},{key:"hash",value:function(){return"Impute ".concat(s_(this.transform))}},{key:"assemble",value:function(){var e,t=this.transform,A=t.impute,n=t.key,r=t.keyvals,i=t.method,o=t.groupby,a=t.value,s=t.frame,g=void 0===s?[null,null]:s,c=Object.assign(Object.assign(Object.assign(Object.assign({type:"impute",field:A,key:n},r?{keyvals:(e=r,void 0!==(null===e||void 0===e?void 0:e.stop)?this.processSequence(r):r)}:{}),{method:"value"}),o?{groupby:o}:{}),{value:i&&"value"!==i?null:a});return i&&"value"!==i?[c,Object.assign({type:"window",as:["imputed_".concat(A,"_value")],ops:[i],fields:[A],frame:g,ignorePeers:!1},o?{groupby:o}:{}),{type:"formula",expr:"datum.".concat(A," === null ? datum.imputed_").concat(A,"_value : datum.").concat(A),as:A}]:[c]}}],[{key:"makeFromTransform",value:function(e,t){return new A(e,t)}},{key:"makeFromEncoding",value:function(e,t){var n=t.encoding,r=n.x,i=n.y;if(DH(r)&&DH(i)){var o=r.impute?r:i.impute?i:void 0;if(void 0===o)return;var a=r.impute?i:i.impute?r:void 0,s=o.impute,g=s.method,c=s.value,u=s.frame,l=s.keyvals,I=kY(t.mark,n);return new A(e,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:o.field,key:a.field},g?{method:g}:{}),void 0!==c?{value:c}:{}),u?{frame:u}:{}),void 0!==l?{keyvals:l}:{}),I.length?{groupby:I}:{}))}return null}}]),A}(DP),Dq=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},Gq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r,i,o,a;Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r.transform=r_(n);var s=null!==(i=r.transform.as)&&void 0!==i?i:[void 0,void 0];return r.transform.as=[null!==(o=s[0])&&void 0!==o?o:n.on,null!==(a=s[1])&&void 0!==a?a:n.loess],r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform))}},{key:"dependentFields",value:function(){var e;return new Set([this.transform.loess,this.transform.on].concat(Object(zn.a)(null!==(e=this.transform.groupby)&&void 0!==e?e:[])))}},{key:"producedFields",value:function(){return new Set(this.transform.as)}},{key:"hash",value:function(){return"LoessTransform ".concat(s_(this.transform))}},{key:"assemble",value:function(){var e=this.transform,t=e.loess,A=e.on,n=Dq(e,["loess","on"]);return Object.assign({type:"loess",x:A,y:t},n)}}]),A}(DP),kq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r){var i;return Object(y.a)(this,A),(i=t.call(this,e)).transform=n,i.secondary=r,i}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform),this.secondary)}},{key:"dependentFields",value:function(){return new Set([this.transform.lookup])}},{key:"producedFields",value:function(){return new Set(this.transform.as?OU(this.transform.as):this.transform.from.fields)}},{key:"hash",value:function(){return"Lookup ".concat(s_({transform:this.transform,secondary:this.secondary}))}},{key:"assemble",value:function(){var e;if(this.transform.from.fields)e=Object.assign({values:this.transform.from.fields},this.transform.as?{as:OU(this.transform.as)}:{});else{var t=this.transform.as;JU(t)||(tT(B.NO_FIELDS_NEEDS_AS),t="_lookup"),e={as:[t]}}return Object.assign(Object.assign({type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup]},e),this.transform.default?{default:this.transform.default}:{})}}],[{key:"make",value:function(e,t,n,r){var i=t.component.data.sources,o=n.from,a=null;if(function(e){return"data"in e}(o)){var s=Wq(o.data,i);s||(s=new lX(o.data),i.push(s));var g=t.getName("lookup_".concat(r));a=new GP(s,g,gP.Lookup,t.component.data.outputNodeRefCounts),t.component.data.outputNodes[g]=a}else if(function(e){return"param"in e}(o)){var c,u=o.param;n=Object.assign({as:u},n);try{c=t.getSelectionComponent(w_(u),u)}catch(l){throw new Error(B.cannotLookupVariableParameter(u))}if(!(a=c.materialized))throw new Error(B.noSameUnitLookup(u))}return new A(e,n,a.getSource())}}]),A}(DP),xq=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},Nq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r,i,o,a;Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r.transform=r_(n);var s=null!==(i=r.transform.as)&&void 0!==i?i:[void 0,void 0];return r.transform.as=[null!==(o=s[0])&&void 0!==o?o:"prob",null!==(a=s[1])&&void 0!==a?a:"value"],r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform))}},{key:"dependentFields",value:function(){var e;return new Set([this.transform.quantile].concat(Object(zn.a)(null!==(e=this.transform.groupby)&&void 0!==e?e:[])))}},{key:"producedFields",value:function(){return new Set(this.transform.as)}},{key:"hash",value:function(){return"QuantileTransform ".concat(s_(this.transform))}},{key:"assemble",value:function(){var e=this.transform,t=e.quantile,A=xq(e,["quantile"]);return Object.assign({type:"quantile",field:t},A)}}]),A}(DP),Uq=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A},_q=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r,i,o,a;Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r.transform=r_(n);var s=null!==(i=r.transform.as)&&void 0!==i?i:[void 0,void 0];return r.transform.as=[null!==(o=s[0])&&void 0!==o?o:n.on,null!==(a=s[1])&&void 0!==a?a:n.regression],r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform))}},{key:"dependentFields",value:function(){var e;return new Set([this.transform.regression,this.transform.on].concat(Object(zn.a)(null!==(e=this.transform.groupby)&&void 0!==e?e:[])))}},{key:"producedFields",value:function(){return new Set(this.transform.as)}},{key:"hash",value:function(){return"RegressionTransform ".concat(s_(this.transform))}},{key:"assemble",value:function(){var e=this.transform,t=e.regression,A=e.on,n=Uq(e,["regression","on"]);return Object.assign({type:"regression",x:A,y:t},n)}}]),A}(DP),Mq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform))}},{key:"addDimensions",value:function(e){var t;this.transform.groupby=h_((null!==(t=this.transform.groupby)&&void 0!==t?t:[]).concat(e),(function(e){return e}))}},{key:"producedFields",value:function(){}},{key:"dependentFields",value:function(){var e;return new Set([this.transform.pivot,this.transform.value].concat(Object(zn.a)(null!==(e=this.transform.groupby)&&void 0!==e?e:[])))}},{key:"hash",value:function(){return"PivotTransform ".concat(s_(this.transform))}},{key:"assemble",value:function(){var e=this.transform,t=e.pivot,A=e.value,n=e.groupby,r=e.limit,i=e.op;return Object.assign(Object.assign(Object.assign({type:"pivot",field:t,value:A},void 0!==r?{limit:r}:{}),void 0!==i?{op:i}:{}),void 0!==n?{groupby:n}:{})}}]),A}(DP),Oq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n){var r;return Object(y.a)(this,A),(r=t.call(this,e)).transform=n,r}return Object(v.a)(A,[{key:"clone",value:function(){return new A(null,r_(this.transform))}},{key:"dependentFields",value:function(){return new Set}},{key:"producedFields",value:function(){return new Set}},{key:"hash",value:function(){return"SampleTransform ".concat(s_(this.transform))}},{key:"assemble",value:function(){return{type:"sample",size:this.transform.sample}}}]),A}(DP);function Lq(e){var t=0;return function A(n,r){var i,o,a,s;if(n instanceof lX&&(n.isGenerator||uP(n.data)||(e.push(r),r={name:null,source:r.name,transform:[]})),n instanceof sX&&(n.parent instanceof lX&&!r.source?(r.format=Object.assign(Object.assign({},null!==(i=r.format)&&void 0!==i?i:{}),{parse:n.assembleFormatParse()}),(o=r.transform).push.apply(o,Object(zn.a)(n.assembleTransforms(!0)))):(a=r.transform).push.apply(a,Object(zn.a)(n.assembleTransforms()))),n instanceof AX)return r.name||(r.name="data_".concat(t++)),!r.source||r.transform.length>0?(e.push(r),n.data=r.name):n.data=r.source,void e.push.apply(e,Object(zn.a)(n.assemble()));if((n instanceof cX||n instanceof uX||n instanceof mq||n instanceof _K||n instanceof eW||n instanceof Fq||n instanceof tX||n instanceof kq||n instanceof kX||n instanceof DX||n instanceof wq||n instanceof bq||n instanceof vq||n instanceof Gq||n instanceof Nq||n instanceof _q||n instanceof gX||n instanceof Oq||n instanceof Mq)&&r.transform.push(n.assemble()),(n instanceof $W||n instanceof xP||n instanceof Rq||n instanceof GX||n instanceof Sq)&&(s=r.transform).push.apply(s,Object(zn.a)(n.assemble())),n instanceof GP)if(r.source&&0===r.transform.length)n.setSource(r.source);else if(n.parent instanceof GP)n.setSource(r.name);else{if(r.name||(r.name="data_".concat(t++)),n.setSource(r.name),1===n.numChildren())e.push(r),r={name:null,source:r.name,transform:[]}}switch(n.numChildren()){case 0:n instanceof GP&&(!r.source||r.transform.length>0)&&e.push(r);break;case 1:A(n.children[0],r);break;default:r.name||(r.name="data_".concat(t++));var g=r.name;!r.source||r.transform.length>0?e.push(r):g=r.source;var c,u=Object(ut.a)(n.children);try{for(u.s();!(c=u.n()).done;){A(c.value,{name:null,source:g,transform:[]})}}catch(l){u.e(l)}finally{u.f()}}}}function Tq(e,t){var A,n,r,i=[],o=Lq(i),a=0,s=Object(ut.a)(e.sources);try{for(s.s();!(r=s.n()).done;){var g=r.value;g.hasName()||(g.dataName="source_".concat(a++));var c=g.assemble();o(g,c)}}catch(R){s.e(R)}finally{s.f()}for(var u=0,l=i;u<l.length;u++){var I=l[u];0===I.transform.length&&delete I.transform}var C,h=0,f=Object(ut.a)(i.entries());try{for(f.s();!(C=f.n()).done;){var d=Object(lt.a)(C.value,2),B=d[0],p=d[1];0!==(null!==(A=p.transform)&&void 0!==A?A:[]).length||p.source||i.splice(h++,0,i.splice(B,1)[0])}}catch(R){f.e(R)}finally{f.f()}for(var E=0,Q=i;E<Q.length;E++){var y,v=Q[E],m=Object(ut.a)(null!==(n=v.transform)&&void 0!==n?n:[]);try{for(m.s();!(y=m.n()).done;){var b=y.value;"lookup"===b.type&&(b.from=e.outputNodes[b.from].getSource())}}catch(R){m.e(R)}finally{m.f()}}for(var w=0,S=i;w<S.length;w++){var F=S[w];F.name in t&&(F.values=t[F.name])}return i}function Zq(e,t){var A,n=e.facet,r=e.config,i=e.child,o=e.component;if(e.channelHasField(t)){var a=n[t],s=nW("title",null,r,t),g=qH(a,r,{allowDisabling:!0,includeDefault:void 0===s||!!s});i.component.layoutHeaders[t].title&&(g=kU(g)?g.join(", "):g,g+=" / ".concat(i.component.layoutHeaders[t].title),i.component.layoutHeaders[t].title=null);var c=nW("labelOrient",a.header,r,t),u=null!==a.header&&M_(null===(A=a.header)||void 0===A?void 0:A.labels,r.header.labels,!0),l=c_(["bottom","right"],c)?"footer":"header";o.layoutHeaders[t]=Object($n.a)({title:null!==a.header?g:null,facetFieldDef:a},l,"facet"===t?[]:[Hq(e,t,u)])}}function Hq(e,t,A){var n="row"===t?"height":"width";return{labels:A,sizeSignal:e.child.component.layoutSize.get(n)?e.child.getSizeSignalRef(n):void 0,axes:[]}}function Yq(e,t){var A,n,r=e.child;if(r.component.axes[t]){var i=e.component,o=i.layoutHeaders,a=i.resolve;if(a.axis[t]=mW(a,t),"shared"===a.axis[t]){var s,g="x"===t?"column":"row",c=o[g],u=Object(ut.a)(r.component.axes[t]);try{for(u.s();!(s=u.n()).done;){var l=s.value,I="top"===(n=l.get("orient"))||"left"===n||nO(n)?"header":"footer";null!==(A=c[I])&&void 0!==A||(c[I]=[Hq(e,g,!1)]);var C=YK(l,"main",e.config,{header:!0});C&&c[I][0].axes.push(C),l.mainExtracted=!0}}catch(h){u.e(h)}finally{u.f()}}}}function Jq(e){var t,A=Object(ut.a)(e.children);try{for(A.s();!(t=A.n()).done;){t.value.parseLayoutSize()}}catch(n){A.e(n)}finally{A.f()}}function jq(e,t){var A,n,r,i=QW(t),o=SM(i),a=e.component.resolve,s=e.component.layoutSize,g=Object(ut.a)(e.children);try{for(g.s();!(r=g.n()).done;){var c=r.value.component.layoutSize.getWithExplicit(i),u=null!==(A=a.scale[o])&&void 0!==A?A:vW(o,e);if("independent"===u&&"step"===c.value){n=void 0;break}if(n){if("independent"===u&&n.value!==c.value){n=void 0;break}n=sP(n,c,i,"")}else n=c}}catch(h){g.e(h)}finally{g.f()}if(n){var l,I=Object(ut.a)(e.children);try{for(I.s();!(l=I.n()).done;){var C=l.value;e.renameSignal(C.getName(i),e.getName(t)),C.component.layoutSize.set(i,"merged",!1)}}catch(h){I.e(h)}finally{I.f()}s.setWithExplicit(t,n)}else s.setWithExplicit(t,{explicit:!1,value:void 0})}function Pq(e,t){var A="width"===t?"x":"y",n=e.config,r=e.getScaleComponent(A);if(r){var i=r.get("type"),o=r.get("range");if(lZ(i)){var a=bJ(n.view,t);return rO(o)||pJ(a)?"step":a}return vJ(n.view,t)}if(e.hasProjection||"arc"===e.mark)return vJ(n.view,t);var s=bJ(n.view,t);return pJ(s)?s.step:s}function Vq(e,t,A){return JH(t,Object.assign({suffix:"by_".concat(JH(e))},null!==A&&void 0!==A?A:{}))}var Kq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r,i){var o;return Object(y.a)(this,A),(o=t.call(this,e,"facet",n,r,i,e.resolve)).child=Qz(e.spec,Object(m.a)(o),o.getName("child"),void 0,i),o.children=[o.child],o.facet=o.initFacet(e.facet),o}return Object(v.a)(A,[{key:"initFacet",value:function(e){if(!BH(e))return{facet:this.initFacetFieldDef(e,"facet")};var t,A=y_(e),n={},r=Object(ut.a)(A);try{for(r.s();!(t=r.n()).done;){var i=t.value;if(![P_,V_].includes(i)){tT(B.incompatibleChannel(i,"facet"));break}var o=e[i];if(void 0===o.field){tT(B.emptyFieldDef(o,i));break}n[i]=this.initFacetFieldDef(o,i)}}catch(a){r.e(a)}finally{r.f()}return n}},{key:"initFacetFieldDef",value:function(e,t){var A=oY(e,t);return A.header?A.header=$M(A.header):null===A.header&&(A.header=null),A}},{key:"channelHasField",value:function(e){return!!this.facet[e]}},{key:"fieldDef",value:function(e){return this.facet[e]}},{key:"parseData",value:function(){this.component.data=Xq(this),this.child.parseData()}},{key:"parseLayoutSize",value:function(){Jq(this)}},{key:"parseSelections",value:function(){this.child.parseSelections(),this.component.selection=this.child.component.selection}},{key:"parseMarkGroup",value:function(){this.child.parseMarkGroup()}},{key:"parseAxesAndHeaders",value:function(){this.child.parseAxesAndHeaders(),function(e){var t,A=Object(ut.a)(sM);try{for(A.s();!(t=A.n()).done;){Zq(e,t.value)}}catch(n){A.e(n)}finally{A.f()}Yq(e,"x"),Yq(e,"y")}(this)}},{key:"assembleSelectionTopLevelSignals",value:function(e){return this.child.assembleSelectionTopLevelSignals(e)}},{key:"assembleSignals",value:function(){return this.child.assembleSignals(),[]}},{key:"assembleSelectionData",value:function(e){return this.child.assembleSelectionData(e)}},{key:"getHeaderLayoutMixins",value:function(){var e,t,A,n,r={},i=Object(ut.a)(sM);try{for(i.s();!(n=i.n()).done;){var o,a=n.value,s=Object(ut.a)(oW);try{for(s.s();!(o=s.n()).done;){var g=o.value,c=this.component.layoutHeaders[a],u=c[g],l=c.facetFieldDef;if(l){var I=nW("titleOrient",l.header,this.config,a);if(["right","bottom"].includes(I)){var C=AW(a,I);null!==(e=r.titleAnchor)&&void 0!==e||(r.titleAnchor={}),r.titleAnchor[C]="end"}}if(null===u||void 0===u?void 0:u[0]){var h="row"===a?"height":"width",f="header"===g?"headerBand":"footerBand";"facet"===a||this.child.component.layoutSize.get(h)||(null!==(t=r[f])&&void 0!==t||(r[f]={}),r[f][a]=.5),c.title&&(null!==(A=r.offset)&&void 0!==A||(r.offset={}),r.offset["row"===a?"rowTitle":"columnTitle"]=10)}}}catch(d){s.e(d)}finally{s.f()}}}catch(d){i.e(d)}finally{i.f()}return r}},{key:"assembleDefaultLayout",value:function(){var e=this.facet,t=e.column,A=e.row,n=t?this.columnDistinctSignal():A?1:void 0,r="all";return(A||"independent"!==this.component.resolve.scale.x)&&(t||"independent"!==this.component.resolve.scale.y)||(r="none"),Object.assign(Object.assign(Object.assign({},this.getHeaderLayoutMixins()),n?{columns:n}:{}),{bounds:"full",align:r})}},{key:"assembleLayoutSignals",value:function(){return this.child.assembleLayoutSignals()}},{key:"columnDistinctSignal",value:function(){if(!(this.parent&&this.parent instanceof A)){var e=this.getName("column_domain");return{signal:"length(data('".concat(e,"'))")}}}},{key:"assembleGroupStyle",value:function(){}},{key:"assembleGroup",value:function(e){return this.parent&&this.parent instanceof A?Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:JH(this.facet.column,{prefix:"distinct"})}}}}:{}),Object(jJ.a)(Object(JJ.a)(A.prototype),"assembleGroup",this).call(this,e)):Object(jJ.a)(Object(JJ.a)(A.prototype),"assembleGroup",this).call(this,e)}},{key:"getCardinalityAggregateForChild",value:function(){var e=[],t=[],n=[];if(this.child instanceof A){if(this.child.channelHasField("column")){var r=JH(this.child.facet.column);e.push(r),t.push("distinct"),n.push("distinct_".concat(r))}}else{var i,o=Object(ut.a)(vM);try{for(o.s();!(i=o.n()).done;){var a=i.value,s=this.child.component.scales[a];if(s&&!s.merged){var g=s.get("type"),c=s.get("range");if(lZ(g)&&rO(c)){var u=WX(XX(this.child,a));u?(e.push(u),t.push("distinct"),n.push("distinct_".concat(u))):tT(B.unknownField(a))}}}}catch(l){o.e(l)}finally{o.f()}}return{fields:e,ops:t,as:n}}},{key:"assembleFacet",value:function(){var e,t=this.component.data.facetRoot,A=t.name,n=t.data,r=this.facet,i=r.row,o=r.column,a=this.getCardinalityAggregateForChild(),s=a.fields,g=a.ops,c=a.as,u=[],l=Object(ut.a)(sM);try{for(l.s();!(e=l.n()).done;){var I=e.value,C=this.facet[I];if(C){u.push(JH(C));var h=C.bin,f=C.sort;if(VM(h)&&u.push(JH(C,{binSuffix:"end"})),fH(f)){var d=f.field,B=f.op,p=void 0===B?"min":B,E=Vq(C,f);i&&o?(s.push(E),g.push("max"),c.push(E)):(s.push(d),g.push(p),c.push(E))}else if(kU(f)){var Q=tW(C,I);s.push(Q),g.push("max"),c.push(Q)}}}}catch(v){l.e(v)}finally{l.f()}var y=!!i&&!!o;return Object.assign({name:A,data:n,groupby:u},y||s.length>0?{aggregate:Object.assign(Object.assign({},y?{cross:y}:{}),s.length?{fields:s,ops:g,as:c}:{})}:{})}},{key:"facetSortFields",value:function(e){var t=this.facet[e];return t?fH(t.sort)?[Vq(t,t.sort,{expr:"datum"})]:kU(t.sort)?[tW(t,e,{expr:"datum"})]:[JH(t,{expr:"datum"})]:[]}},{key:"facetSortOrder",value:function(e){var t=this.facet[e];if(t){var A=t.sort;return[(fH(A)?A.order:!kU(A)&&A)||"ascending"]}return[]}},{key:"assembleLabelTitle",value:function(){var e,t=this.facet,A=this.config;if(t.facet)return lW(t.facet,"facet",A);var n,r={row:["top","bottom"],column:["left","right"]},i=Object(ut.a)(iW);try{for(i.s();!(n=i.n()).done;){var o=n.value;if(t[o]){var a=nW("labelOrient",null===(e=t[o])||void 0===e?void 0:e.header,A,o);if(r[o].includes(a))return lW(t[o],o,A)}}}catch(s){i.e(s)}finally{i.f()}}},{key:"assembleMarks",value:function(){var e=this,t=this.child,A=function(e){var t,A=[],n=Lq(A),r=Object(ut.a)(e.children);try{for(r.s();!(t=r.n()).done;){n(t.value,{source:e.name,name:null,transform:[]})}}catch(i){r.e(i)}finally{r.f()}return A}(this.component.data.facetRoot),n=t.assembleGroupEncodeEntry(!1),r=this.assembleLabelTitle()||t.assembleTitle(),i=t.assembleGroupStyle();return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:this.getName("cell"),type:"group"},r?{title:r}:{}),i?{style:i}:{}),{from:{facet:this.assembleFacet()},sort:{field:sM.map((function(t){return e.facetSortFields(t)})).flat(),order:sM.map((function(t){return e.facetSortOrder(t)})).flat()}}),A.length>0?{data:A}:{}),n?{encode:{update:n}}:{}),t.assembleGroup(function(e,t){if(e.component.selection&&y_(e.component.selection).length){var A=jU(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:yP("mousemove","scope"),update:"isTuple(facet) ? facet : group(".concat(A,").datum")}]})}return RP(t)}(this,[])))]}},{key:"getMapping",value:function(){return this.facet}}]),A}(Qq);function Wq(e,t){var A,n,r,i,o,a=Object(ut.a)(t);try{for(a.s();!(o=a.n()).done;){var s=o.value,g=s.data;if(!e.name||!s.hasName()||e.name===s.dataName){var c=null===(A=e.format)||void 0===A?void 0:A.mesh,u=null===(n=g.format)||void 0===n?void 0:n.feature;if(!c||!u){var l=null===(r=e.format)||void 0===r?void 0:r.feature;if(!l&&!u||l===u){var I=null===(i=g.format)||void 0===i?void 0:i.mesh;if(!c&&!I||c===I)if(lP(e)&&lP(g)){if(n_(e.values,g.values))return s}else if(uP(e)&&uP(g)){if(e.url===g.url)return s}else if(IP(e)&&e.name===s.dataName)return s}}}}}catch(C){a.e(C)}finally{a.f()}return null}function Xq(e){var t,A,n,r,i,o,a,s,g,c,u=function(e,t){if(e.data||!e.parent){if(null===e.data){var A=new lX({values:[]});return t.push(A),A}var n=Wq(e.data,t);if(n)return CP(e.data)||(n.data.format=I_({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;var r=new lX(e.data);return t.push(r),r}return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}(e,e.component.data.sources),l=e.component.data,I=l.outputNodes,C=l.outputNodeRefCounts,h=e.data,f=!(h&&(CP(h)||uP(h)||lP(h)))&&e.parent?e.parent.component.data.ancestorParse.clone():new cP;CP(h)?(hP(h)?u=new uX(u,h.sequence):dP(h)&&(u=new cX(u,h.graticule)),f.parseNothing=!0):null===(null===(t=null===h||void 0===h?void 0:h.format)||void 0===t?void 0:t.parse)&&(f.parseNothing=!0),u=null!==(A=sX.makeExplicit(u,e,f))&&void 0!==A?A:u,u=new gX(u);var d=e.parent&&pq(e.parent);(fq(e)||dq(e))&&d&&(u=null!==(n=$W.makeFromEncoding(u,e))&&void 0!==n?n:u),e.transforms.length>0&&(u=function(e,t,A){var n,r,i,o=0,a=Object(ut.a)(t.transforms);try{for(a.s();!(i=a.n()).done;){var s=i.value,g=void 0,c=void 0;if(kj(s))c=e=new eW(e,s),g="derived";else if(Qj(s)){var u=iX(s);c=e=null!==(n=sX.makeWithAncestors(e,{},u,A))&&void 0!==n?n:e,e=new _K(e,t,s.filter)}else if(xj(s))c=e=$W.makeFromTransform(e,s,t),g="number";else if(Uj(s)){g="date",void 0===A.getWithExplicit(s.field).value&&(e=new sX(e,Object($n.a)({},s.field,g)),A.set(s.field,g,!1)),c=e=xP.makeFromTransform(e,s)}else if(_j(s))c=e=tX.makeFromTransform(e,s),g="number",NV(t)&&(e=new gX(e));else if(yj(s))c=e=kq.make(e,t,s,o++),g="derived";else if(Rj(s))c=e=new kX(e,s),g="number";else if(Dj(s))c=e=new DX(e,s),g="number";else if(Mj(s))c=e=GX.makeFromTransform(e,s),g="derived";else if(Oj(s))c=e=new wq(e,s),g="derived";else if(Gj(s))c=e=new bq(e,s),g="derived";else if(vj(s))c=e=new Mq(e,s),g="derived";else if(Fj(s))e=new Oq(e,s);else if(Nj(s))c=e=Rq.makeFromTransform(e,s),g="derived";else if(mj(s))c=e=new vq(e,s),g="derived";else if(bj(s))c=e=new Nq(e,s),g="derived";else if(wj(s))c=e=new _q(e,s),g="derived";else{if(!Sj(s)){tT(B.invalidTransformIgnored(s));continue}c=e=new Gq(e,s),g="derived"}if(c&&void 0!==g){var l,I=Object(ut.a)(null!==(r=c.producedFields())&&void 0!==r?r:[]);try{for(I.s();!(l=I.n()).done;){var C=l.value;A.set(C,g,!1)}}catch(h){I.e(h)}finally{I.f()}}}}catch(h){a.e(h)}finally{a.f()}return e}(u,e,f));var p=function(e){var t={};if(fq(e)&&e.component.selection){var A,n=Object(ut.a)(y_(e.component.selection));try{for(n.s();!(A=n.n()).done;){var r,i=A.value,o=e.component.selection[i],a=Object(ut.a)(o.project.items);try{for(a.s();!(r=a.n()).done;){var s=r.value;!s.channel&&__(s.field)>1&&(t[s.field]="flatten")}}catch(g){a.e(g)}finally{a.f()}}}catch(g){n.e(g)}finally{n.f()}}return t}(e),E=oX(e);u=null!==(r=sX.makeWithAncestors(u,{},Object.assign(Object.assign({},p),E),f))&&void 0!==r?r:u,fq(e)&&(u=Sq.parseAll(u,e),u=Fq.parseAll(u,e)),(fq(e)||dq(e))&&(d||(u=null!==(i=$W.makeFromEncoding(u,e))&&void 0!==i?i:u),u=null!==(o=xP.makeFromEncoding(u,e))&&void 0!==o?o:u,u=eW.parseAllForSortIndex(u,e));var Q=e.getDataName(gP.Raw),y=new GP(u,Q,gP.Raw,C);if(I[Q]=y,u=y,fq(e)){var v=tX.makeFromEncoding(u,e);v&&(u=v,NV(e)&&(u=new gX(u))),u=null!==(a=Rq.makeFromEncoding(u,e))&&void 0!==a?a:u,u=null!==(s=GX.makeFromEncoding(u,e))&&void 0!==s?s:u}fq(e)&&(u=null!==(g=mq.make(u,e))&&void 0!==g?g:u);var m=e.getDataName(gP.Main),b=new GP(u,m,gP.Main,C);I[m]=b,u=b,fq(e)&&function(e,t){var A,n,r=Object(ut.a)(m_(null!==(A=e.component.selection)&&void 0!==A?A:{}));try{for(r.s();!(n=r.n()).done;){var i=Object(lt.a)(n.value,2),o=i[0],a=i[1],s=e.getName("lookup_".concat(o));e.component.data.outputNodes[s]=a.materialized=new GP(new _K(t,e,{param:o}),s,gP.Lookup,e.component.data.outputNodeRefCounts)}}catch(g){r.e(g)}finally{r.f()}}(e,b);var w=null;if(dq(e)){var S=e.getName("facet");u=null!==(c=function(e,t){var A=t.row,n=t.column;if(A&&n){for(var r=null,i=0,o=[A,n];i<o.length;i++){var a=o[i];if(fH(a.sort)){var s=a.sort,g=s.field,c=s.op;e=r=new DX(e,{joinaggregate:[{op:void 0===c?"min":c,field:g,as:Vq(a,a.sort,{forAs:!0})}],groupby:[JH(a)]})}}return r}return null}(u,e.facet))&&void 0!==c?c:u,w=new AX(u,e,S,b.getSource()),I[S]=w}return Object.assign(Object.assign({},e.component.data),{outputNodes:I,outputNodeRefCounts:C,raw:y,main:b,facetRoot:w,ancestorParse:f})}var qq=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r,i){var o,a,s,g,c;return Object(y.a)(this,A),o=t.call(this,e,"concat",n,r,i,e.resolve),"shared"!==(null===(s=null===(a=e.resolve)||void 0===a?void 0:a.axis)||void 0===s?void 0:s.x)&&"shared"!==(null===(c=null===(g=e.resolve)||void 0===g?void 0:g.axis)||void 0===c?void 0:c.y)||tT(B.CONCAT_CANNOT_SHARE_AXIS),o.children=o.getChildren(e).map((function(e,t){return Qz(e,Object(m.a)(o),o.getName("concat_".concat(t)),void 0,i)})),o}return Object(v.a)(A,[{key:"parseData",value:function(){this.component.data=Xq(this);var e,t=Object(ut.a)(this.children);try{for(t.s();!(e=t.n()).done;){e.value.parseData()}}catch(A){t.e(A)}finally{t.f()}}},{key:"parseSelections",value:function(){this.component.selection={};var e,t=Object(ut.a)(this.children);try{for(t.s();!(e=t.n()).done;){var A=e.value;A.parseSelections();var n,r=Object(ut.a)(y_(A.component.selection));try{for(r.s();!(n=r.n()).done;){var i=n.value;this.component.selection[i]=A.component.selection[i]}}catch(o){r.e(o)}finally{r.f()}}}catch(o){t.e(o)}finally{t.f()}}},{key:"parseMarkGroup",value:function(){var e,t=Object(ut.a)(this.children);try{for(t.s();!(e=t.n()).done;){e.value.parseMarkGroup()}}catch(A){t.e(A)}finally{t.f()}}},{key:"parseAxesAndHeaders",value:function(){var e,t=Object(ut.a)(this.children);try{for(t.s();!(e=t.n()).done;){e.value.parseAxesAndHeaders()}}catch(A){t.e(A)}finally{t.f()}}},{key:"getChildren",value:function(e){return dJ(e)?e.vconcat:BJ(e)?e.hconcat:e.concat}},{key:"parseLayoutSize",value:function(){!function(e){Jq(e);var t=1===e.layout.columns?"width":"childWidth",A=void 0===e.layout.columns?"height":"childHeight";jq(e,t),jq(e,A)}(this)}},{key:"parseAxisGroup",value:function(){return null}},{key:"assembleSelectionTopLevelSignals",value:function(e){return this.children.reduce((function(e,t){return t.assembleSelectionTopLevelSignals(e)}),e)}},{key:"assembleSignals",value:function(){return this.children.forEach((function(e){return e.assembleSignals()})),[]}},{key:"assembleLayoutSignals",value:function(){var e,t=dW(this),A=Object(ut.a)(this.children);try{for(A.s();!(e=A.n()).done;){var n=e.value;t.push.apply(t,Object(zn.a)(n.assembleLayoutSignals()))}}catch(r){A.e(r)}finally{A.f()}return t}},{key:"assembleSelectionData",value:function(e){return this.children.reduce((function(e,t){return t.assembleSelectionData(e)}),e)}},{key:"assembleMarks",value:function(){return this.children.map((function(e){var t=e.assembleTitle(),A=e.assembleGroupStyle(),n=e.assembleGroupEncodeEntry(!1);return Object.assign(Object.assign(Object.assign(Object.assign({type:"group",name:e.getName("group")},t?{title:t}:{}),A?{style:A}:{}),n?{encode:{update:n}}:{}),e.assembleGroup())}))}},{key:"assembleGroupStyle",value:function(){}},{key:"assembleDefaultLayout",value:function(){var e=this.layout.columns;return Object.assign(Object.assign({},null!=e?{columns:e}:{}),{bounds:"full",align:"each"})}}]),A}(Eq);var zq=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},BY),{labelExpr:1,encode:1}),$q=y_(zq),ez=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return Object(y.a)(this,A),(e=t.call(this)).explicit=n,e.implicit=r,e.mainExtracted=i,e}return Object(v.a)(A,[{key:"clone",value:function(){return new A(r_(this.explicit),r_(this.implicit),this.mainExtracted)}},{key:"hasAxisPart",value:function(e){return"axis"===e||("grid"===e||"title"===e?!!this.get(e):!(!1===(t=this.get(e))||null===t));var t}},{key:"hasOrientSignalRef",value:function(){return nO(this.explicit.orient)}}]),A}(nP);var tz={bottom:"top",top:"bottom",left:"right",right:"left"};function Az(e,t){if(!e)return t.map((function(e){return e.clone()}));if(e.length===t.length){for(var A=e.length,n=0;n<A;n++){var r=e[n],i=t[n];if(!!r!==!!i)return;if(r&&i){var o=r.getWithExplicit("orient"),a=i.getWithExplicit("orient");if(o.explicit&&a.explicit&&o.value!==a.value)return;e[n]=nz(r,i)}}return e}}function nz(e,t){var A,n=Object(ut.a)($q);try{var r=function(){var n=A.value,r=sP(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",(function(e,t){switch(n){case"title":return mO(e,t);case"gridScale":return{explicit:e.explicit,value:M_(e.value,t.value)}}return aP(e,t,n,"axis")}));e.setWithExplicit(n,r)};for(n.s();!(A=n.n()).done;)r()}catch(i){n.e(i)}finally{n.f()}return e}function rz(e,t,A,n,r){if("disable"===t)return void 0!==A;switch(A=A||{},t){case"titleAngle":case"labelAngle":return e===(nO(A.labelAngle)?A.labelAngle:Y_(A.labelAngle));case"values":return!!A.values;case"encode":return!!A.encoding||!!A.labelAngle;case"title":if(e===$K(n,r))return!0}return e===A[t]}var iz=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function oz(e,t){var A,n,r,i=t.axis(e),o=new ez,a=nY(t.encoding[e]),s=t.mark,g=t.config,c=(null===i||void 0===i?void 0:i.orient)||(null===(A=g["x"===e?"axisX":"axisY"])||void 0===A?void 0:A.orient)||(null===(n=g.axis)||void 0===n?void 0:n.orient)||function(e){return"x"===e?"bottom":"left"}(e),u=t.getScaleComponent(e).get("type"),l=PK(e,u,c,t.config),I=void 0!==i?!i:KK("disable",g.style,null===i||void 0===i?void 0:i.style,l).configValue;if(o.set("disable",I,void 0!==i),I)return o;var C,h=function(e,t,A,n,r){var i=null===t||void 0===t?void 0:t.labelAngle;if(void 0!==i)return nO(i)?i:Y_(i);var o=KK("labelAngle",n,null===t||void 0===t?void 0:t.style,r).configValue;return void 0!==o?Y_(o):"x"!==A||!c_([TT,OT],e.type)||DH(e)&&e.timeUnit?void 0:270}(a,i=i||{},e,g.style,l),f={fieldOrDatumDef:a,axis:i,channel:e,model:t,scaleType:u,orient:c,labelAngle:h,mark:s,config:g},d=Object(ut.a)($q);try{for(d.s();!(C=d.n()).done;){var B=C.value,p=B in WK?WK[B](f):EY(B)?i[B]:void 0,E=void 0!==p,Q=rz(p,B,i,t,e);if(E&&Q)o.set(B,p,Q);else{var y=EY(B)&&"values"!==B?KK(B,g.style,i.style,l):{},v=y.configValue,m=void 0===v?void 0:v,b=y.configFrom,w=void 0===b?void 0:b,S=void 0!==m;E&&!S?o.set(B,p,Q):("vgAxisConfig"!==w||iz.has(B)&&S||hY(m)||nO(m))&&o.set(B,m,!1)}}}catch(D){d.e(D)}finally{d.f()}var F=null!==(r=i.encoding)&&void 0!==r?r:{},R=fY.reduce((function(A,n){var r;if(!o.hasAxisPart(n))return A;var i=yW(null!==(r=F[n])&&void 0!==r?r:{},t),a="labels"===n?function(e,t,A){var n,r=e.encoding,i=e.config,o=null!==(n=nY(r[t]))&&void 0!==n?n:nY(r[BM(t)]),a=e.axis(t)||{},s=a.format,g=a.formatType;return AH(g)?Object.assign({text:oH({fieldOrDatumDef:o,field:"datum.value",format:s,formatType:g,config:i})},A):A}(t,e,i):i;return void 0===a||Q_(a)||(A[n]={update:a}),A}),{});return Q_(R)||o.set("encode",R,!!i.encoding||void 0!==i.labelAngle),o}function az(e){var t,A=e.encoding,n=e.size,r=Object(ut.a)(vM);try{for(r.s();!(t=r.n()).done;){var i=t.value,o=pM(i);pJ(n[o])&&xH(A[i])&&(delete n[o],tT(B.stepDropped(o)))}}catch(a){r.e(a)}finally{r.f()}return n}function sz(e,t,A){var n=$M(e),r=dO("orient",n,A);if(n.orient=function(e,t,A){switch(e){case FZ:case NZ:case UZ:case GZ:case RZ:case wZ:return}var n=t.x,r=t.y,i=t.x2,o=t.y2;switch(e){case bZ:if(DH(n)&&(KM(n.bin)||DH(r)&&r.aggregate&&!n.aggregate))return"vertical";if(DH(r)&&(KM(r.bin)||DH(n)&&n.aggregate&&!r.aggregate))return"horizontal";if(o||i){if(A)return A;if(!i&&(DH(n)&&n.type===MT&&!VM(n.bin)||NH(n)))return"horizontal";if(!o&&(DH(r)&&r.type===MT&&!VM(r.bin)||NH(r)))return"vertical"}case DZ:if(i&&(!DH(n)||!KM(n.bin))&&o&&(!DH(r)||!KM(r.bin)))return;case mZ:if(o)return DH(r)&&KM(r.bin)?"horizontal":"vertical";if(i)return DH(n)&&KM(n.bin)?"vertical":"horizontal";if(e===DZ){if(n&&!r)return"vertical";if(r&&!n)return"horizontal"}case SZ:case kZ:var a=xH(n),s=xH(r);if(A)return A;if(a&&!s)return"tick"!==e?"horizontal":"vertical";if(!a&&s)return"tick"!==e?"vertical":"horizontal";if(a&&s){var g=n,c=r,u=g.type===LT,l=c.type===LT;return u&&!l?"tick"!==e?"vertical":"horizontal":!u&&l?"tick"!==e?"horizontal":"vertical":!g.aggregate&&c.aggregate?"tick"!==e?"vertical":"horizontal":g.aggregate&&!c.aggregate&&"tick"!==e?"horizontal":"vertical"}return}return"vertical"}(n.type,t,r),void 0!==r&&r!==n.orient&&tT(B.orientOverridden(n.orient,r)),"bar"===n.type&&n.orient){var i=dO("cornerRadiusEnd",n,A);if(void 0!==i){var o,a="horizontal"===n.orient&&t.x2||"vertical"===n.orient&&t.y2?["cornerRadius"]:jZ[n.orient],s=Object(ut.a)(a);try{for(s.s();!(o=s.n()).done;){n[o.value]=i}}catch(g){s.e(g)}finally{s.f()}void 0!==n.cornerRadiusEnd&&delete n.cornerRadiusEnd}}return void 0===dO("opacity",n,A)&&(n.opacity=function(e,t){if(c_([FZ,kZ,NZ,UZ],e)&&!wY(t))return.7;return}(n.type,t)),void 0===dO("cursor",n,A)&&(n.cursor=function(e,t,A){if(t.href||e.href||dO("href",e,A))return"pointer";return e.cursor}(n,t,A)),n}function gz(e,t,A){if(A.graticule)return!1;var n=BO("filled",e,t),r=e.type;return M_(n,r!==FZ&&r!==SZ&&r!==DZ)}function cz(e,t){e.config;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},IV(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),tV("x",e,{defaultPos:"mid"})),tV("y",e,{defaultPos:"mid"})),zP("size",e)),zP("angle",e)),function(e,t,A){if(A)return{shape:{value:A}};return zP("shape",e)}(e,0,t))}function uz(e){var t,A=e.config,n=e.markDef,r=n.orient,i="horizontal"===r?"width":"height",o=e.getScaleComponent("horizontal"===r?"x":"y"),a=null!==(t=dO("size",n,A,{vgChannel:i}))&&void 0!==t?t:A.tick.bandSize;if(void 0!==a)return a;var s=o?o.get("range"):void 0;return s&&rO(s)&&YU(s.step)?3*s.step/4:3*mJ(A.view,i)/4}var lz={arc:{vgMark:"arc",encodeEntry:function(e){return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},IV(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),tV("x",e,{defaultPos:"mid"})),tV("y",e,{defaultPos:"mid"})),gV(e,"radius","arc")),gV(e,"theta","arc"))}},area:{vgMark:"area",encodeEntry:function(e){return Object.assign(Object.assign(Object.assign(Object.assign({},IV(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),oV("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"horizontal"===e.markDef.orient})),oV("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"vertical"===e.markDef.orient})),hV(e))}},bar:{vgMark:"rect",encodeEntry:function(e){return Object.assign(Object.assign(Object.assign({},IV(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),gV(e,"x","bar")),gV(e,"y","bar"))}},circle:{vgMark:"symbol",encodeEntry:function(e){return cz(e,"circle")}},geoshape:{vgMark:"shape",encodeEntry:function(e){return Object.assign({},IV(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}))},postEncodingTransform:function(e){var t=e.encoding.shape;return[Object.assign({type:"geoshape",projection:e.projectionName()},t&&DH(t)&&t.type===ZT?{field:JH(t,{expr:"datum"})}:{})]}},image:{vgMark:"image",encodeEntry:function(e){return Object.assign(Object.assign(Object.assign(Object.assign({},IV(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),gV(e,"x","image")),gV(e,"y","image")),PP(e,"url"))}},line:{vgMark:"line",encodeEntry:function(e){return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},IV(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),tV("x",e,{defaultPos:"mid"})),tV("y",e,{defaultPos:"mid"})),zP("size",e,{vgChannel:"strokeWidth"})),hV(e))}},point:{vgMark:"symbol",encodeEntry:function(e){return cz(e)}},rect:{vgMark:"rect",encodeEntry:function(e){return Object.assign(Object.assign(Object.assign({},IV(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),gV(e,"x","rect")),gV(e,"y","rect"))}},rule:{vgMark:"rule",encodeEntry:function(e){var t=e.markDef.orient;return e.encoding.x||e.encoding.y||e.encoding.latitude||e.encoding.longitude?Object.assign(Object.assign(Object.assign(Object.assign({},IV(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),oV("x",e,{defaultPos:"horizontal"===t?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"vertical"!==t})),oV("y",e,{defaultPos:"vertical"===t?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"horizontal"!==t})),zP("size",e,{vgChannel:"strokeWidth"})):{}}},square:{vgMark:"symbol",encodeEntry:function(e){return cz(e,"square")}},text:{vgMark:"text",encodeEntry:function(e){var t=e.config;e.encoding;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},IV(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),tV("x",e,{defaultPos:"mid"})),tV("y",e,{defaultPos:"mid"})),PP(e)),zP("size",e,{vgChannel:"fontSize"})),zP("angle",e)),fV("align",function(e,t,A){if(void 0===dO("align",e,A))return"center";return}(e.markDef,0,t))),fV("baseline",function(e,t,A){if(void 0===dO("baseline",e,A))return"middle";return}(e.markDef,0,t))),tV("radius",e,{defaultPos:null})),tV("theta",e,{defaultPos:null}))}},tick:{vgMark:"rect",encodeEntry:function(e){var t=e.config,A=e.markDef,n=A.orient,r="horizontal"===n?"width":"height",i="horizontal"===n?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},IV(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),tV("x",e,{defaultPos:"mid",vgChannel:"xc"})),tV("y",e,{defaultPos:"mid",vgChannel:"yc"})),zP("size",e,{defaultValue:uz(e),vgChannel:r})),Object($n.a)({},i,IO(dO("thickness",A,t))))}},trail:{vgMark:"trail",encodeEntry:function(e){return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},IV(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),tV("x",e,{defaultPos:"mid"})),tV("y",e,{defaultPos:"mid"})),zP("size",e)),hV(e))}}};function Iz(e){if(c_([SZ,mZ,xZ],e.mark)){var t=kY(e.mark,e.encoding);if(t.length>0)return function(e,t){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:"faceted_path_"+e.requestDataName(gP.Main),data:e.requestDataName(gP.Main),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:hz(e,{fromPrefix:"faceted_path_"})}]}(e,t)}else if(e.mark===bZ){var A=sO.some((function(t){return dO(t,e.markDef,e.config)}));if(e.stack&&!e.fieldDef("size")&&A)return function(e){var t,A,n=hz(e,{fromPrefix:"stack_group_"}),r=Object(lt.a)(n,1)[0],i=e.scaleName(e.stack.fieldChannel),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.vgField(e.stack.fieldChannel,t)},a=function(e,t){var A=[o({prefix:"min",suffix:"start",expr:t}),o({prefix:"max",suffix:"start",expr:t}),o({prefix:"min",suffix:"end",expr:t}),o({prefix:"max",suffix:"end",expr:t})];return"".concat(e,"(").concat(A.map((function(e){return"scale('".concat(i,"',").concat(e,")")})).join(","),")")};"x"===e.stack.fieldChannel?(t=Object.assign(Object.assign({},i_(r.encode.update,["y","yc","y2","height"].concat(Object(zn.a)(sO)))),{x:{signal:a("min","datum")},x2:{signal:a("max","datum")},clip:{value:!0}}),A={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},r.encode.update=Object.assign(Object.assign({},o_(r.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(t=Object.assign(Object.assign({},i_(r.encode.update,["x","xc","x2","width"])),{y:{signal:a("min","datum")},y2:{signal:a("max","datum")},clip:{value:!0}}),A={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},r.encode.update=Object.assign(Object.assign({},o_(r.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));var s,g=Object(ut.a)(sO);try{for(g.s();!(s=g.n()).done;){var c=s.value,u=BO(c,e.markDef,e.config);r.encode.update[c]?(t[c]=r.encode.update[c],delete r.encode.update[c]):u&&(t[c]=IO(u)),u&&(r.encode.update[c]={value:0})}}catch(h){g.e(h)}finally{g.f()}var l=[];if(e.stack.groupbyChannel){var I=e.fieldDef(e.stack.groupbyChannel),C=JH(I);C&&l.push(C),((null===I||void 0===I?void 0:I.bin)||(null===I||void 0===I?void 0:I.timeUnit))&&l.push(JH(I,{binSuffix:"end"}))}(t=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((function(t,A){if(r.encode.update[A])return Object.assign(Object.assign({},t),Object($n.a)({},A,r.encode.update[A]));var n=BO(A,e.markDef,e.config);return void 0!==n?Object.assign(Object.assign({},t),Object($n.a)({},A,IO(n))):t}),t)).stroke&&(t.strokeForeground={value:!0},t.strokeOffset={value:0});return[{type:"group",from:{facet:{data:e.requestDataName(gP.Main),name:"stack_group_"+e.requestDataName(gP.Main),groupby:l,aggregate:{fields:[o({suffix:"start"}),o({suffix:"start"}),o({suffix:"end"}),o({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:t},marks:[{type:"group",encode:{update:A},marks:[r]}]}]}(e)}return hz(e)}function Cz(e){var t,A=e.encoding,n=e.stack,r=e.mark,i=e.markDef,o=e.config,a=A.order;if(!(!kU(a)&&MH(a)&&g_(a.value)||!a&&g_(dO("order",i,o)))){if((kU(a)||DH(a))&&!n)return QO(a,{expr:"datum"});if(MZ(r)){var s="horizontal"===i.orient?"y":"x",g=A[s];if(DH(g)){var c=g.sort;return kU(c)?{field:JH(g,{prefix:s,suffix:"sort_index",expr:"datum"})}:fH(c)?{field:JH({aggregate:wY(e.encoding)?c.op:void 0,field:c.field},{expr:"datum"})}:hH(c)?{field:JH(e.fieldDef(c.encoding),{expr:"datum"}),order:c.order}:null===c?void 0:{field:JH(g,{binSuffix:(null===(t=e.stack)||void 0===t?void 0:t.impute)?"mid":void 0,expr:"datum"})}}}else;}}function hz(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{fromPrefix:""},A=e.mark,n=e.markDef,r=e.encoding,i=e.config,o=M_(n.clip,fz(e),dz(e)),a=fO(n),s=r.key,g=Cz(e),c=Bz(e),u=dO("aria",n,i),l=lz[A].postEncodingTransform?lz[A].postEncodingTransform(e):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:e.getName("marks"),type:lz[A].vgMark},o?{clip:!0}:{}),a?{style:a}:{}),s?{key:s.field}:{}),g?{sort:g}:{}),c||{}),!1===u?{aria:u}:{}),{from:{data:t.fromPrefix+e.requestDataName(gP.Main)},encode:{update:lz[A].encodeEntry(e)}}),l?{transform:l}:{})]}function fz(e){var t=e.getScaleComponent("x"),A=e.getScaleComponent("y");return!!(t&&t.get("selectionExtent")||A&&A.get("selectionExtent"))||void 0}function dz(e){var t=e.component.projection;return!(!t||t.isFit)||void 0}function Bz(e){if(!e.component.selection)return null;for(var t=y_(e.component.selection).length,A=t,n=e.parent;n&&0===A;)A=y_(n.component.selection).length,n=n.parent;return A?{interactive:t>0||!!e.encoding.tooltip}:null}var pz=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r){var i,o,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments.length>4?arguments[4]:void 0;Object(y.a)(this,A),(i=t.call(this,e,"unit",n,r,s,void 0,EJ(e)?e.view:void 0)).specifiedScales={},i.specifiedAxes={},i.specifiedLegends={},i.specifiedProjection={},i.selection=[],i.children=[];var g=TZ(e.mark)?Object.assign({},e.mark):{type:e.mark},c=g.type;void 0===g.filled&&(g.filled=gz(g,s,{graticule:e.data&&dP(e.data)}));var u=i.encoding=FY(e.encoding||{},c,g.filled,s);return i.markDef=sz(g,u,s),i.size=az({encoding:u,size:EJ(e)?Object.assign(Object.assign(Object.assign({},a),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):a}),i.stack=tj(c,u),i.specifiedScales=i.initScales(c,u),i.specifiedAxes=i.initAxes(u),i.specifiedLegends=i.initLegends(u),i.specifiedProjection=e.projection,i.selection=(null!==(o=e.params)&&void 0!==o?o:[]).filter((function(e){return IJ(e)})),i}return Object(v.a)(A,[{key:"scaleDomain",value:function(e){var t=this.specifiedScales[e];return t?t.domain:void 0}},{key:"axis",value:function(e){return this.specifiedAxes[e]}},{key:"legend",value:function(e){return this.specifiedLegends[e]}},{key:"initScales",value:function(e,t){var A=this;return GM.reduce((function(e,n){var r,i=nY(t[n]);return i&&(e[n]=A.initScale(null!==(r=i.scale)&&void 0!==r?r:{})),e}),{})}},{key:"initScale",value:function(e){var t=e.domain,A=e.range,n=$M(e);return kU(t)&&(n.domain=t.map(uO)),kU(A)&&(n.range=A.map(uO)),n}},{key:"initAxes",value:function(e){var t=this;return vM.reduce((function(A,n){var r=e[n];if(UH(r)||"x"===n&&UH(e.x2)||"y"===n&&UH(e.y2)){var i=UH(r)?r.axis:void 0;A[n]=i?t.initAxis(Object.assign({},i)):i}return A}),{})}},{key:"initAxis",value:function(e){var t,A=y_(e),n={},r=Object(ut.a)(A);try{for(r.s();!(t=r.n()).done;){var i=t.value,o=e[i];n[i]=hY(o)?cO(o):uO(o)}}catch(a){r.e(a)}finally{r.f()}return n}},{key:"initLegends",value:function(e){return RM.reduce((function(t,A){var n=nY(e[A]);if(n&&function(e){switch(e){case q_:case z_:case $_:case"size":case eM:case"opacity":case"strokeWidth":case"strokeDash":return!0;case"fillOpacity":case"strokeOpacity":case"angle":return!1}}(A)){var r=n.legend;t[A]=r?$M(r):r}return t}),{})}},{key:"parseData",value:function(){this.component.data=Xq(this)}},{key:"parseLayoutSize",value:function(){!function(e){var t,A=e.size,n=e.component,r=Object(ut.a)(vM);try{for(r.s();!(t=r.n()).done;){var i=pM(t.value);if(A[i]){var o=A[i];n.layoutSize.set(i,pJ(o)?"step":o,!0)}else{var a=Pq(e,i);n.layoutSize.set(i,a,!1)}}}catch(s){r.e(s)}finally{r.f()}}(this)}},{key:"parseSelections",value:function(){this.component.selection=function(e,t){var A,n={},r=e.config.selection;if(!t||!t.length)return n;var i,o=Object(ut.a)(t);try{for(o.s();!(i=o.n()).done;){var a=i.value,s=w_(a.name),g=a.select,c=JU(g)?g:g.type,u=xU(g)?r_(g):{type:c},l=r[c];for(var I in l)"fields"!==I&&"encodings"!==I&&("mark"===I&&(u[I]=Object.assign(Object.assign({},l[I]),u[I])),void 0!==u[I]&&!0!==u[I]||(u[I]=null!==(A=l[I])&&void 0!==A?A:u[I]));var C,h=n[s]=Object.assign(Object.assign({},u),{name:s,type:c,init:a.value,bind:a.bind,events:JU(u.on)?yP(u.on,"scope"):OU(r_(u.on))}),f=Object(ut.a)(GV);try{for(f.s();!(C=f.n()).done;){var d=C.value;d.defined(h)&&d.parse&&d.parse(e,h,a)}}catch(B){f.e(B)}finally{f.f()}}}catch(B){o.e(B)}finally{o.f()}return n}(this,this.selection)}},{key:"parseMarkGroup",value:function(){this.component.mark=Iz(this)}},{key:"parseAxesAndHeaders",value:function(){var e;this.component.axes=(e=this,vM.reduce((function(t,A){return e.component.scales[A]&&(t[A]=[oz(A,e)]),t}),{}))}},{key:"assembleSelectionTopLevelSignals",value:function(e){return function(e,t){var A,n,r=!1,i=Object(ut.a)(v_(null!==(A=e.component.selection)&&void 0!==A?A:{}));try{var o=function(){var A=n.value,i=A.name,o=jU(i+SV);if(0===t.filter((function(e){return e.name===i})).length){var a="global"===A.resolve?"union":A.resolve,s="point"===A.type?", true, true)":")";t.push({name:A.name,update:"".concat(DV,"(").concat(o,", ").concat(jU(a)).concat(s)})}r=!0;var g,c=Object(ut.a)(GV);try{for(c.s();!(g=c.n()).done;){var u=g.value;u.defined(A)&&u.topLevelSignals&&(t=u.topLevelSignals(e,A,t))}}catch(l){c.e(l)}finally{c.f()}};for(i.s();!(n=i.n()).done;)o()}catch(a){i.e(a)}finally{i.f()}return r&&0===t.filter((function(e){return"unit"===e.name})).length&&t.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]}),RP(t)}(this,e)}},{key:"assembleSignals",value:function(){return[].concat(Object(zn.a)(JK(this)),Object(zn.a)(function(e,t){var A,n,r=Object(ut.a)(v_(null!==(A=e.component.selection)&&void 0!==A?A:{}));try{for(r.s();!(n=r.n()).done;){var i,o=n.value,a=o.name,s="".concat(a).concat(FV,", ").concat("global"===o.resolve?"true":"{unit: ".concat(xV(e),"}")),g=Object(ut.a)(GV);try{for(g.s();!(i=g.n()).done;){var c=i.value;c.defined(o)&&(c.signals&&(t=c.signals(e,o,t)),c.modifyExpr&&(s=c.modifyExpr(e,o,s)))}}catch(u){g.e(u)}finally{g.f()}t.push({name:a+RV,on:[{events:{signal:o.name+FV},update:"modify(".concat(jU(o.name+SV),", ").concat(s,")")}]})}}catch(u){r.e(u)}finally{r.f()}return RP(t)}(this,[])))}},{key:"assembleSelectionData",value:function(e){return function(e,t){var A,n,r=Object(zn.a)(t),i=Object(ut.a)(v_(null!==(A=e.component.selection)&&void 0!==A?A:{}));try{var o=function(){var t=n.value,A={name:t.name+SV};if(t.init){var i=t.project.items.map((function(e){e.signals;return wP(e,["signals"])}));A.values=t.init.map((function(t){return{unit:xV(e,{escape:!1}),fields:i,values:SP(t,!1)}}))}r.filter((function(e){return e.name===t.name+SV})).length||r.push(A)};for(i.s();!(n=i.n()).done;)o()}catch(a){i.e(a)}finally{i.f()}return r}(this,e)}},{key:"assembleLayout",value:function(){return null}},{key:"assembleLayoutSignals",value:function(){return dW(this)}},{key:"assembleMarks",value:function(){var e,t=null!==(e=this.component.mark)&&void 0!==e?e:[];return this.parent&&pq(this.parent)||(t=FP(this,t)),t.map(this.correctDataNames)}},{key:"assembleGroupStyle",value:function(){var e=(this.view||{}).style;return void 0!==e?e:this.encoding.x||this.encoding.y?"cell":void 0}},{key:"getMapping",value:function(){return this.encoding}},{key:"channelHasField",value:function(e){return bY(this.encoding,e)}},{key:"fieldDef",value:function(e){return AY(this.encoding[e])}},{key:"typedFieldDef",value:function(e){var t=this.fieldDef(e);return _H(t)?t:null}},{key:"hasProjection",get:function(){var e=this.encoding,t=this.mark===_Z,A=e&&rM.some((function(t){return UH(e[t])}));return t||A}},{key:"mark",get:function(){return this.markDef.type}}]),A}(Qq),Ez=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(e,n,r,i,o){var a;Object(y.a)(this,A),a=t.call(this,e,"layer",n,r,o,e.resolve,e.view);var s=Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{});return a.children=e.layer.map((function(e,t){if(YJ(e))return new A(e,Object(m.a)(a),a.getName("layer_".concat(t)),s,o);if(yY(e))return new pz(e,Object(m.a)(a),a.getName("layer_".concat(t)),s,o);throw new Error(B.invalidSpec(e))})),a}return Object(v.a)(A,[{key:"parseData",value:function(){this.component.data=Xq(this);var e,t=Object(ut.a)(this.children);try{for(t.s();!(e=t.n()).done;){e.value.parseData()}}catch(A){t.e(A)}finally{t.f()}}},{key:"parseLayoutSize",value:function(){var e;Jq(e=this),jq(e,"width"),jq(e,"height")}},{key:"parseSelections",value:function(){this.component.selection={};var e,t=Object(ut.a)(this.children);try{for(t.s();!(e=t.n()).done;){var A=e.value;A.parseSelections();var n,r=Object(ut.a)(y_(A.component.selection));try{for(r.s();!(n=r.n()).done;){var i=n.value;this.component.selection[i]=A.component.selection[i]}}catch(o){r.e(o)}finally{r.f()}}}catch(o){t.e(o)}finally{t.f()}}},{key:"parseMarkGroup",value:function(){var e,t=Object(ut.a)(this.children);try{for(t.s();!(e=t.n()).done;){e.value.parseMarkGroup()}}catch(A){t.e(A)}finally{t.f()}}},{key:"parseAxesAndHeaders",value:function(){!function(e){var t,A,n=e.component,r=n.axes,i=n.resolve,o={top:0,bottom:0,right:0,left:0},a=Object(ut.a)(e.children);try{for(a.s();!(A=a.n()).done;){var s=A.value;s.parseAxesAndHeaders();var g,c=Object(ut.a)(y_(s.component.axes));try{for(c.s();!(g=c.n()).done;){var u=g.value;i.axis[u]=mW(e.component.resolve,u),"shared"===i.axis[u]&&(r[u]=Az(r[u],s.component.axes[u]),r[u]||(i.axis[u]="independent",delete r[u]))}}catch(F){c.e(F)}finally{c.f()}}}catch(F){a.e(F)}finally{a.f()}var l,I=Object(ut.a)(vM);try{for(I.s();!(l=I.n()).done;){var C,h=l.value,f=Object(ut.a)(e.children);try{for(f.s();!(C=f.n()).done;){var d=C.value;if(d.component.axes[h]){if("independent"===i.axis[h]){r[h]=(null!==(t=r[h])&&void 0!==t?t:[]).concat(d.component.axes[h]);var B,p=Object(ut.a)(d.component.axes[h]);try{for(p.s();!(B=p.n()).done;){var E=B.value,Q=E.getWithExplicit("orient"),y=Q.value,v=Q.explicit;if(!nO(y)){if(o[y]>0&&!v){var m=tz[y];o[y]>o[m]&&E.set("orient",m,!1)}o[y]++}}}catch(F){p.e(F)}finally{p.f()}}delete d.component.axes[h]}}}catch(F){f.e(F)}finally{f.f()}if("independent"===i.axis[h]&&r[h]&&r[h].length>1){var b,w=Object(ut.a)(r[h]);try{for(w.s();!(b=w.n()).done;){var S=b.value;S.get("grid")&&!S.explicit.grid&&(S.implicit.grid=!1)}}catch(F){w.e(F)}finally{w.f()}}}}catch(F){I.e(F)}finally{I.f()}}(this)}},{key:"assembleSelectionTopLevelSignals",value:function(e){return this.children.reduce((function(e,t){return t.assembleSelectionTopLevelSignals(e)}),e)}},{key:"assembleSignals",value:function(){return this.children.reduce((function(e,t){return e.concat(t.assembleSignals())}),JK(this))}},{key:"assembleLayoutSignals",value:function(){return this.children.reduce((function(e,t){return e.concat(t.assembleLayoutSignals())}),dW(this))}},{key:"assembleSelectionData",value:function(e){return this.children.reduce((function(e,t){return t.assembleSelectionData(e)}),e)}},{key:"assembleGroupStyle",value:function(){var e,t=new Set,A=Object(ut.a)(this.children);try{for(A.s();!(e=A.n()).done;){var n,r=e.value,i=Object(ut.a)(OU(r.assembleGroupStyle()));try{for(i.s();!(n=i.n()).done;){var o=n.value;t.add(o)}}catch(s){i.e(s)}finally{i.f()}}}catch(s){A.e(s)}finally{A.f()}var a=Array.from(t);return a.length>1?a:1===a.length?a[0]:void 0}},{key:"assembleTitle",value:function(){var e=Object(jJ.a)(Object(JJ.a)(A.prototype),"assembleTitle",this).call(this);if(e)return e;var t,n=Object(ut.a)(this.children);try{for(n.s();!(t=n.n()).done;){if(e=t.value.assembleTitle())return e}}catch(r){n.e(r)}finally{n.f()}}},{key:"assembleLayout",value:function(){return null}},{key:"assembleMarks",value:function(){return function(e,t){var A,n=Object(ut.a)(e.children);try{for(n.s();!(A=n.n()).done;){var r=A.value;fq(r)&&(t=FP(r,t))}}catch(i){n.e(i)}finally{n.f()}return t}(this,this.children.flatMap((function(e){return e.assembleMarks()})))}},{key:"assembleLegends",value:function(){return this.children.reduce((function(e,t){return e.concat(t.assembleLegends())}),HW(this))}}]),A}(Eq);function Qz(e,t,A,n,r){if(EH(e))return new Kq(e,t,A,r);if(YJ(e))return new Ez(e,t,A,n,r);if(yY(e))return new pz(e,t,A,n,r);if(function(e){return dJ(e)||BJ(e)||fJ(e)}(e))return new qq(e,t,A,r);throw new Error(B.invalidSpec(e))}var yz=function(e,t){var A={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(A[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(A[n[r]]=e[n[r]])}return A};function vz(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.logger&&$L(t.logger),t.fieldTitle&&WH(t.fieldTitle);try{var A=MJ(UU(t.config,e.config)),n=Xj(e,A),r=Qz(n,null,"",void 0,A);r.parse(),OX(r.component.data,r);var i=bz(r,mz(e,n.autosize,A,r),e.datasets,e.usermeta);return{spec:i,normalized:n}}finally{t.logger&&eT(),t.fieldTitle&&XH()}}function mz(e,t,A,n){var r,i=n.component.layoutSize.get("width"),o=n.component.layoutSize.get("height");if(void 0===t?(t={type:"pad"},n.hasAxisOrientSignalRef()&&(t.resize=!0)):JU(t)&&(t={type:t}),i&&o&&("fit"===(r=t.type)||"fit-x"===r||"fit-y"===r))if("step"===i&&"step"===o)tT(B.droppingFit()),t.type="pad";else if("step"===i||"step"===o){var a="step"===i?"width":"height";tT(B.droppingFit(SM(a)));var s="width"===a?"height":"width";t.type=function(e){return e?"fit-".concat(SM(e)):"fit"}(s)}return Object.assign(Object.assign(Object.assign({},1===y_(t).length&&t.type?"pad"===t.type?{}:{autosize:t.type}:{autosize:t}),AP(A,!1)),AP(e,!0))}function bz(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3?arguments[3]:void 0,r=e.config?ZJ(e.config):void 0,i=[].concat(e.assembleSelectionData([]),Tq(e.component.data,A)),o=e.assembleProjections(),a=e.assembleTitle(),s=e.assembleGroupStyle(),g=e.assembleGroupEncodeEntry(!0),c=e.assembleLayoutSignals();c=c.filter((function(e){return"width"!==e.name&&"height"!==e.name||void 0===e.value||(t[e.name]=+e.value,!1)}));var u=t.params,l=yz(t,["params"]);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},e.description?{description:e.description}:{}),l),a?{title:a}:{}),s?{style:s}:{}),g?{encode:{update:g}}:{}),{data:i}),o.length>0?{projections:o}:{}),e.assembleGroup([].concat(Object(zn.a)(c),Object(zn.a)(e.assembleSelectionTopLevelSignals([])),Object(zn.a)(hJ(u))))),r?{config:r}:{}),n?{usermeta:n}:{})}var wz=yU.version;var Sz=function(e){var t=/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(e).slice(1,3),A=Object(lt.a)(t,2);return{library:A[0],version:A[1]}},Fz={background:"#333",title:{color:"#fff",subtitleColor:"#fff"},style:{"guide-label":{fill:"#fff"},"guide-title":{fill:"#fff"}},axis:{domainColor:"#fff",gridColor:"#888",tickColor:"#fff"}},Rz={background:"#fff",arc:{fill:"#4572a7"},area:{fill:"#4572a7"},line:{stroke:"#4572a7",strokeWidth:2},path:{stroke:"#4572a7"},rect:{fill:"#4572a7"},shape:{stroke:"#4572a7"},symbol:{fill:"#4572a7",strokeWidth:1.5,size:50},axis:{bandPosition:.5,grid:!0,gridColor:"#000000",gridOpacity:1,gridWidth:.5,labelPadding:10,tickSize:5,tickWidth:.5},axisBand:{grid:!1,tickExtra:!0},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:50,symbolType:"square"},range:{category:["#4572a7","#aa4643","#8aa453","#71598e","#4598ae","#d98445","#94aace","#d09393","#b9cc98","#a99cbc"]}},Dz={arc:{fill:"#30a2da"},area:{fill:"#30a2da"},axis:{domainColor:"#cbcbcb",grid:!0,gridColor:"#cbcbcb",gridWidth:1,labelColor:"#999",labelFontSize:10,titleColor:"#333",tickColor:"#cbcbcb",tickSize:10,titleFontSize:14,titlePadding:10,labelPadding:4},axisBand:{grid:!1},background:"#f0f0f0",group:{fill:"#f0f0f0"},legend:{labelColor:"#333",labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:"#333",titleFontSize:14,titlePadding:10},line:{stroke:"#30a2da",strokeWidth:2},path:{stroke:"#30a2da",strokeWidth:.5},rect:{fill:"#30a2da"},range:{category:["#30a2da","#fc4f30","#e5ae38","#6d904f","#8b8b8b","#b96db8","#ff9e27","#56cc60","#52d2ca","#52689e","#545454","#9fe4f8"],diverging:["#cc0020","#e77866","#f6e7e1","#d6e8ed","#91bfd9","#1d78b5"],heatmap:["#d6e8ed","#cee0e5","#91bfd9","#549cc6","#1d78b5"]},point:{filled:!0,shape:"circle"},shape:{stroke:"#30a2da"},bar:{binSpacing:2,fill:"#30a2da",stroke:null},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}},Gz={group:{fill:"#e5e5e5"},arc:{fill:"#000"},area:{fill:"#000"},line:{stroke:"#000"},path:{stroke:"#000"},rect:{fill:"#000"},shape:{stroke:"#000"},symbol:{fill:"#000",size:40},axis:{domain:!1,grid:!0,gridColor:"#FFFFFF",gridOpacity:1,labelColor:"#7F7F7F",labelPadding:4,tickColor:"#7F7F7F",tickSize:5.67,titleFontSize:16,titleFontWeight:"normal"},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:40},range:{category:["#000000","#7F7F7F","#1A1A1A","#999999","#333333","#B0B0B0","#4D4D4D","#C9C9C9","#666666","#DCDCDC"]}},kz="Benton Gothic Bold, sans-serif",xz={"category-6":["#ec8431","#829eb1","#c89d29","#3580b1","#adc839","#ab7fb4"],"fire-7":["#fbf2c7","#f9e39c","#f8d36e","#f4bb6a","#e68a4f","#d15a40","#ab4232"],"fireandice-6":["#e68a4f","#f4bb6a","#f9e39c","#dadfe2","#a6b7c6","#849eae"],"ice-7":["#edefee","#dadfe2","#c4ccd2","#a6b7c6","#849eae","#607785","#47525d"]},Nz={background:"#ffffff",title:{anchor:"start",color:"#000000",font:kz,fontSize:22,fontWeight:"normal"},arc:{fill:"#82c6df"},area:{fill:"#82c6df"},line:{stroke:"#82c6df",strokeWidth:2},path:{stroke:"#82c6df"},rect:{fill:"#82c6df"},shape:{stroke:"#82c6df"},symbol:{fill:"#82c6df",size:30},axis:{labelFont:"Benton Gothic, sans-serif",labelFontSize:11.5,labelFontWeight:"normal",titleFont:kz,titleFontSize:13,titleFontWeight:"normal"},axisX:{labelAngle:0,labelPadding:4,tickSize:3},axisY:{labelBaseline:"middle",maxExtent:45,minExtent:45,tickSize:2,titleAlign:"left",titleAngle:0,titleX:-45,titleY:-11},legend:{labelFont:"Benton Gothic, sans-serif",labelFontSize:11.5,symbolType:"square",titleFont:kz,titleFontSize:13,titleFontWeight:"normal"},range:{category:xz["category-6"],diverging:xz["fireandice-6"],heatmap:xz["fire-7"],ordinal:xz["fire-7"],ramp:xz["fire-7"]}},Uz={background:"#f9f9f9",arc:{fill:"#ab5787"},area:{fill:"#ab5787"},line:{stroke:"#ab5787"},path:{stroke:"#ab5787"},rect:{fill:"#ab5787"},shape:{stroke:"#ab5787"},symbol:{fill:"#ab5787",size:30},axis:{domainColor:"#979797",domainWidth:.5,gridWidth:.2,labelColor:"#979797",tickColor:"#979797",tickWidth:.2,titleColor:"#979797"},axisBand:{grid:!1},axisX:{grid:!0,tickSize:10},axisY:{domain:!1,grid:!0,tickSize:0},legend:{labelFontSize:11,padding:1,symbolSize:30,symbolType:"square"},range:{category:["#ab5787","#51b2e5","#703c5c","#168dd9","#d190b6","#00609f","#d365ba","#154866","#666666","#c4c4c4"]}},_z={background:"#fff",arc:{fill:"#3e5c69"},area:{fill:"#3e5c69"},line:{stroke:"#3e5c69"},path:{stroke:"#3e5c69"},rect:{fill:"#3e5c69"},shape:{stroke:"#3e5c69"},symbol:{fill:"#3e5c69"},axis:{domainWidth:.5,grid:!0,labelPadding:2,tickSize:5,tickWidth:.5,titleFontWeight:"normal"},axisBand:{grid:!1},axisX:{gridWidth:.2},axisY:{gridDash:[3],gridWidth:.4},legend:{labelFontSize:11,padding:1,symbolType:"square"},range:{category:["#3e5c69","#6793a6","#182429","#0570b0","#3690c0","#74a9cf","#a6bddb","#e2ddf2"]}},Mz={"main-colors":["#1696d2","#d2d2d2","#000000","#fdbf11","#ec008b","#55b748","#5c5859","#db2b27"],"shades-blue":["#CFE8F3","#A2D4EC","#73BFE2","#46ABDB","#1696D2","#12719E","#0A4C6A","#062635"],"shades-gray":["#F5F5F5","#ECECEC","#E3E3E3","#DCDBDB","#D2D2D2","#9D9D9D","#696969","#353535"],"shades-yellow":["#FFF2CF","#FCE39E","#FDD870","#FCCB41","#FDBF11","#E88E2D","#CA5800","#843215"],"shades-magenta":["#F5CBDF","#EB99C2","#E46AA7","#E54096","#EC008B","#AF1F6B","#761548","#351123"],"shades-green":["#DCEDD9","#BCDEB4","#98CF90","#78C26D","#55B748","#408941","#2C5C2D","#1A2E19"],"shades-black":["#D5D5D4","#ADABAC","#848081","#5C5859","#332D2F","#262223","#1A1717","#0E0C0D"],"shades-red":["#F8D5D4","#F1AAA9","#E9807D","#E25552","#DB2B27","#A4201D","#6E1614","#370B0A"],"one-group":["#1696d2","#000000"],"two-groups-cat-1":["#1696d2","#000000"],"two-groups-cat-2":["#1696d2","#fdbf11"],"two-groups-cat-3":["#1696d2","#db2b27"],"two-groups-seq":["#a2d4ec","#1696d2"],"three-groups-cat":["#1696d2","#fdbf11","#000000"],"three-groups-seq":["#a2d4ec","#1696d2","#0a4c6a"],"four-groups-cat-1":["#000000","#d2d2d2","#fdbf11","#1696d2"],"four-groups-cat-2":["#1696d2","#ec0008b","#fdbf11","#5c5859"],"four-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a"],"five-groups-cat-1":["#1696d2","#fdbf11","#d2d2d2","#ec008b","#000000"],"five-groups-cat-2":["#1696d2","#0a4c6a","#d2d2d2","#fdbf11","#332d2f"],"five-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a","#000000"],"six-groups-cat-1":["#1696d2","#ec008b","#fdbf11","#000000","#d2d2d2","#55b748"],"six-groups-cat-2":["#1696d2","#d2d2d2","#ec008b","#fdbf11","#332d2f","#0a4c6a"],"six-groups-seq":["#cfe8f3","#a2d4ec","#73bfe2","#46abdb","#1696d2","#12719e"],"diverging-colors":["#ca5800","#fdbf11","#fdd870","#fff2cf","#cfe8f3","#73bfe2","#1696d2","#0a4c6a"]},Oz={background:"#FFFFFF",title:{anchor:"start",fontSize:18,font:"Lato"},axisX:{domain:!0,domainColor:"#000000",domainWidth:1,grid:!1,labelFontSize:12,labelFont:"Lato",labelAngle:0,tickColor:"#000000",tickSize:5,titleFontSize:12,titlePadding:10,titleFont:"Lato"},axisY:{domain:!1,domainWidth:1,grid:!0,gridColor:"#DEDDDD",gridWidth:1,labelFontSize:12,labelFont:"Lato",labelPadding:8,ticks:!1,titleFontSize:12,titlePadding:10,titleFont:"Lato",titleAngle:0,titleY:-10,titleX:18},legend:{labelFontSize:12,labelFont:"Lato",symbolSize:100,titleFontSize:12,titlePadding:10,titleFont:"Lato",orient:"right",offset:10},view:{stroke:"transparent"},range:{category:Mz["six-groups-cat-1"],diverging:Mz["diverging-colors"],heatmap:Mz["diverging-colors"],ordinal:Mz["six-groups-seq"],ramp:Mz["shades-blue"]},area:{fill:"#1696d2"},rect:{fill:"#1696d2"},line:{color:"#1696d2",stroke:"#1696d2",strokeWidth:5},trail:{color:"#1696d2",stroke:"#1696d2",strokeWidth:0,size:1},path:{stroke:"#1696d2",strokeWidth:.5},point:{filled:!0},text:{font:"Lato",color:"#1696d2",fontSize:11,align:"center",fontWeight:400,size:11},style:{bar:{fill:"#1696d2",stroke:null}},arc:{fill:"#1696d2"},shape:{stroke:"#1696d2"},symbol:{fill:"#1696d2",size:30}},Lz={arc:{fill:"#3366CC"},area:{fill:"#3366CC"},path:{stroke:"#3366CC"},rect:{fill:"#3366CC"},shape:{stroke:"#3366CC"},symbol:{stroke:"#3366CC"},circle:{fill:"#3366CC"},background:"#fff",padding:{top:10,right:10,bottom:10,left:10},style:{"guide-label":{font:"Arial, sans-serif",fontSize:12},"guide-title":{font:"Arial, sans-serif",fontSize:12},"group-title":{font:"Arial, sans-serif",fontSize:12}},title:{font:"Arial, sans-serif",fontSize:14,fontWeight:"bold",dy:-3,anchor:"start"},axis:{gridColor:"#ccc",tickColor:"#ccc",domain:!1,grid:!0},range:{category:["#4285F4","#DB4437","#F4B400","#0F9D58","#AB47BC","#00ACC1","#FF7043","#9E9D24","#5C6BC0","#F06292","#00796B","#C2185B"],heatmap:["#c6dafc","#5e97f6","#2a56c6"]}},Tz="2.10.0",Zz=A(420);function Hz(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}function Yz(e,t,A,n,r,i,o){try{var a=e[i](o),s=a.value}catch(g){return void A(g)}a.done?t(s):Promise.resolve(s).then(n,r)}function Jz(e){return function(){var t=this,A=arguments;return new Promise((function(n,r){var i=e.apply(t,A);function o(e){Yz(i,n,r,o,a,"next",e)}function a(e){Yz(i,n,r,o,a,"throw",e)}o(void 0)}))}}var jz=Object.prototype,Pz=jz.hasOwnProperty,Vz="function"===typeof Symbol?Symbol:{},Kz=Vz.iterator||"@@iterator",Wz=Vz.asyncIterator||"@@asyncIterator",Xz=Vz.toStringTag||"@@toStringTag";function qz(e,t,A,n){var r=t&&t.prototype instanceof e$?t:e$,i=Object.create(r.prototype),o=new I$(n||[]);return i._invoke=function(e,t,A){var n="suspendedStart";return function(r,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===r)throw i;return h$()}for(A.method=r,A.arg=i;;){var o=A.delegate;if(o){var a=c$(o,A);if(a){if(a===$z)continue;return a}}if("next"===A.method)A.sent=A._sent=A.arg;else if("throw"===A.method){if("suspendedStart"===n)throw n="completed",A.arg;A.dispatchException(A.arg)}else"return"===A.method&&A.abrupt("return",A.arg);n="executing";var s=zz(e,t,A);if("normal"===s.type){if(n=A.done?"completed":"suspendedYield",s.arg===$z)continue;return{value:s.arg,done:A.done}}"throw"===s.type&&(n="completed",A.method="throw",A.arg=s.arg)}}}(e,A,o),i}function zz(e,t,A){try{return{type:"normal",arg:e.call(t,A)}}catch(n){return{type:"throw",arg:n}}}var $z={};function e$(){}function t$(){}function A$(){}var n$={};n$[Kz]=function(){return this};var r$=Object.getPrototypeOf,i$=r$&&r$(r$(C$([])));i$&&i$!==jz&&Pz.call(i$,Kz)&&(n$=i$);var o$=A$.prototype=e$.prototype=Object.create(n$);function a$(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function s$(e){var t="function"===typeof e&&e.constructor;return!!t&&(t===t$||"GeneratorFunction"===(t.displayName||t.name))}function g$(e,t){var A;this._invoke=function(n,r){function i(){return new t((function(A,i){!function A(n,r,i,o){var a=zz(e[n],e,r);if("throw"!==a.type){var s=a.arg,g=s.value;return g&&"object"===typeof g&&Pz.call(g,"__await")?t.resolve(g.__await).then((function(e){A("next",e,i,o)}),(function(e){A("throw",e,i,o)})):t.resolve(g).then((function(e){s.value=e,i(s)}),(function(e){return A("throw",e,i,o)}))}o(a.arg)}(n,r,A,i)}))}return A=A?A.then(i,i):i()}}function c$(e,t){var A=e.iterator[t.method];if(void 0===A){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,c$(e,t),"throw"===t.method))return $z;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return $z}var n=zz(A,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,$z;var r=n.arg;return r?r.done?(t[e.resultName]=r.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,$z):r:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,$z)}function u$(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function l$(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I$(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(u$,this),this.reset(!0)}function C$(e){if(e){var t=e[Kz];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var A=-1,n=function t(){for(;++A<e.length;)if(Pz.call(e,A))return t.value=e[A],t.done=!1,t;return t.value=void 0,t.done=!0,t};return n.next=n}}return{next:h$}}function h$(){return{value:void 0,done:!0}}t$.prototype=o$.constructor=A$,A$.constructor=t$,A$[Xz]=t$.displayName="GeneratorFunction",a$(g$.prototype),g$.prototype[Wz]=function(){return this},a$(o$),o$[Xz]="Generator",o$[Kz]=function(){return this},o$.toString=function(){return"[object Generator]"},I$.prototype={constructor:I$,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(l$),!e)for(var t in this)"t"===t.charAt(0)&&Pz.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function A(A,n){return i.type="throw",i.arg=e,t.next=A,n&&(t.method="next",t.arg=void 0),!!n}for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n],i=r.completion;if("root"===r.tryLoc)return A("end");if(r.tryLoc<=this.prev){var o=Pz.call(r,"catchLoc"),a=Pz.call(r,"finallyLoc");if(o&&a){if(this.prev<r.catchLoc)return A(r.catchLoc,!0);if(this.prev<r.finallyLoc)return A(r.finallyLoc)}else if(o){if(this.prev<r.catchLoc)return A(r.catchLoc,!0)}else{if(!a)throw new Error("try statement without catch or finally");if(this.prev<r.finallyLoc)return A(r.finallyLoc)}}}},abrupt:function(e,t){for(var A=this.tryEntries.length-1;A>=0;--A){var n=this.tryEntries[A];if(n.tryLoc<=this.prev&&Pz.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var r=n;break}}r&&("break"===e||"continue"===e)&&r.tryLoc<=t&&t<=r.finallyLoc&&(r=null);var i=r?r.completion:{};return i.type=e,i.arg=t,r?(this.method="next",this.next=r.finallyLoc,$z):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),$z},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var A=this.tryEntries[t];if(A.finallyLoc===e)return this.complete(A.completion,A.afterLoc),l$(A),$z}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var A=this.tryEntries[t];if(A.tryLoc===e){var n=A.completion;if("throw"===n.type){var r=n.arg;l$(A)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,A){return this.delegate={iterator:C$(e),resultName:t,nextLoc:A},"next"===this.method&&(this.arg=void 0),$z}};var f$={wrap:qz,isGeneratorFunction:s$,AsyncIterator:g$,mark:function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,A$):(e.__proto__=A$,Xz in e||(e[Xz]="GeneratorFunction")),e.prototype=Object.create(o$),e},awrap:function(e){return{__await:e}},async:function(e,t,A,n,r){void 0===r&&(r=Promise);var i=new g$(qz(e,t,A,n),r);return s$(t)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},keys:function(e){var t=[];for(var A in e)t.push(A);return t.reverse(),function A(){for(;t.length;){var n=t.pop();if(n in e)return A.value=n,A.done=!1,A}return A.done=!0,A}},values:C$};function d$(e,t,A){var n=e.open(t),r=new URL(t).origin,i=40;e.addEventListener("message",(function t(A){A.source===n&&(i=0,e.removeEventListener("message",t,!1))}),!1),setTimeout((function e(){i<=0||(n.postMessage(A,r),setTimeout(e,250),i-=1)}),250)}var B$='.vega-embed {\n position: relative;\n display: inline-block;\n box-sizing: border-box; }\n .vega-embed.has-actions {\n padding-right: 38px; }\n .vega-embed details:not([open]) > :not(summary) {\n display: none !important; }\n .vega-embed summary {\n list-style: none;\n position: absolute;\n top: 0;\n right: 0;\n padding: 6px;\n z-index: 1000;\n background: white;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n color: #1b1e23;\n border: 1px solid #aaa;\n border-radius: 999px;\n opacity: 0.2;\n transition: opacity 0.4s ease-in;\n outline: none;\n cursor: pointer;\n line-height: 0px; }\n .vega-embed summary::-webkit-details-marker {\n display: none; }\n .vega-embed summary:active {\n box-shadow: #aaa 0px 0px 0px 1px inset; }\n .vega-embed summary svg {\n width: 14px;\n height: 14px; }\n .vega-embed details[open] summary {\n opacity: 0.7; }\n .vega-embed:hover summary,\n .vega-embed:focus summary {\n opacity: 1 !important;\n transition: opacity 0.2s ease; }\n .vega-embed .vega-actions {\n position: absolute;\n z-index: 1001;\n top: 35px;\n right: -9px;\n display: flex;\n flex-direction: column;\n padding-bottom: 8px;\n padding-top: 8px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n border: 1px solid #d9d9d9;\n background: white;\n animation-duration: 0.15s;\n animation-name: scale-in;\n animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);\n text-align: left; }\n .vega-embed .vega-actions a {\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n color: #434a56;\n text-decoration: none; }\n .vega-embed .vega-actions a:hover {\n background-color: #f7f7f9;\n color: black; }\n .vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n content: "";\n display: inline-block;\n position: absolute; }\n .vega-embed .vega-actions::before {\n left: auto;\n right: 14px;\n top: -16px;\n border: 8px solid #0000;\n border-bottom-color: #d9d9d9; }\n .vega-embed .vega-actions::after {\n left: auto;\n right: 15px;\n top: -14px;\n border: 7px solid #0000;\n border-bottom-color: #fff; }\n .vega-embed .chart-wrapper.fit-x {\n width: 100%; }\n .vega-embed .chart-wrapper.fit-y {\n height: 100%; }\n\n.vega-embed-wrapper {\n max-width: 100%;\n overflow: auto;\n padding-right: 14px; }\n\n@keyframes scale-in {\n from {\n opacity: 0;\n transform: scale(0.6); }\n to {\n opacity: 1;\n transform: scale(1); } }\n';function p$(e){for(var t=arguments.length,A=new Array(t>1?t-1:0),n=1;n<t;n++)A[n-1]=arguments[n];for(var r=0,i=A;r<i.length;r++){var o=i[r];E$(e,o)}return e}function E$(e,t){for(var A=0,n=Object.keys(t);A<n.length;A++){var r=n[A];Object(ue.lb)(e,r,t[r],!0)}}String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return this.substr(!t||t<0?0:+t,e.length)===e});var Q$;function y$(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function v$(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?y$(Object(A),!0).forEach((function(t){Hz(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):y$(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}var m$=d,b$=p,w$="undefined"!==typeof window?window:void 0;void 0===b$&&null!==w$&&void 0!==w$&&null!==(Q$=w$.vl)&&void 0!==Q$&&Q$.compile&&(b$=w$.vl);var S$={export:{svg:!0,png:!0},source:!0,compiled:!0,editor:!0},F$={CLICK_TO_VIEW_ACTIONS:"Click to view actions",COMPILED_ACTION:"View Compiled Vega",EDITOR_ACTION:"Open in Vega Editor",PNG_ACTION:"Save as PNG",SOURCE_ACTION:"View Source",SVG_ACTION:"Save as SVG"},R$={vega:"Vega","vega-lite":"Vega-Lite"},D$={vega:m$.version,"vega-lite":b$?b$.version:"not available"},G$={vega:function(e){return e},"vega-lite":function(e,t){return b$.compile(e,{config:t}).spec}},k$='\n<svg viewBox="0 0 16 16" fill="currentColor" stroke="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round">\n <circle r="2" cy="8" cx="2"></circle>\n <circle r="2" cy="8" cx="8"></circle>\n <circle r="2" cy="8" cx="14"></circle>\n</svg>';function x$(e){return"function"===typeof e}function N$(e,t,A,n){var r="<html><head>".concat(t,'</head><body><pre><code class="json">'),i="</code></pre>".concat(A,"</body></html>"),o=window.open("");o.document.write(r+e+i),o.document.title="".concat(R$[n]," JSON Source")}function U$(e,t){if(e.$schema){var A,n=Sz(e.$schema);if(t&&t!==n.library)console.warn("The given visualization spec is written in ".concat(R$[n.library],", but mode argument sets ").concat(null!==(A=R$[t])&&void 0!==A?A:t,"."));var r=n.library;return Object(ce.satisfies)(D$[r],"^".concat(n.version.slice(1)))||console.warn("The input spec uses ".concat(R$[r]," ").concat(n.version,", but the current version of ").concat(R$[r]," is v").concat(D$[r],".")),r}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":null!==t&&void 0!==t?t:"vega"}function _$(e){return(t=e)&&"load"in t?e:m$.loader(e);var t}function M$(e){var t;return null!==(t=e.usermeta&&e.usermeta.embedOptions)&&void 0!==t?t:{}}function O$(){return(O$=Jz(f$.mark((function e(t,A){var n,r,i,o,a,s,g,c,u,l,I=arguments;return f$.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=I.length>2&&void 0!==I[2]?I[2]:{},!Object(ue.J)(A)){e.next=10;break}return a=_$(i.loader),e.t0=JSON,e.next=6,a.load(A);case 6:e.t1=e.sent,o=e.t0.parse.call(e.t0,e.t1),e.next=11;break;case 10:o=A;case 11:return s=M$(o).loader,a&&!s||(a=_$(null!==(g=i.loader)&&void 0!==g?g:s)),e.next=15,L$(M$(o),a);case 15:return c=e.sent,e.next=18,L$(i,a);case 18:return u=e.sent,l=v$(v$({},p$(u,c)),{},{config:Object(ue.P)(null!==(n=u.config)&&void 0!==n?n:{},null!==(r=c.config)&&void 0!==r?r:{})}),e.next=22,H$(t,o,l,a);case 22:return e.abrupt("return",e.sent);case 23:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function L$(e,t){return T$.apply(this,arguments)}function T$(){return(T$=Jz(f$.mark((function e(t,A){var n,r,i;return f$.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!Object(ue.J)(t.config)){e.next=8;break}return e.t1=JSON,e.next=4,A.load(t.config);case 4:e.t2=e.sent,e.t0=e.t1.parse.call(e.t1,e.t2),e.next=9;break;case 8:e.t0=null!==(n=t.config)&&void 0!==n?n:{};case 9:if(r=e.t0,!Object(ue.J)(t.patch)){e.next=18;break}return e.t4=JSON,e.next=14,A.load(t.patch);case 14:e.t5=e.sent,e.t3=e.t4.parse.call(e.t4,e.t5),e.next=19;break;case 18:e.t3=t.patch;case 19:return i=e.t3,e.abrupt("return",v$(v$(v$({},t),i?{patch:i}:{}),r?{config:r}:{}));case 21:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Z$(e){var t,A=e.getRootNode?e.getRootNode():document;return A instanceof ShadowRoot?{root:A,rootContainer:A}:{root:document,rootContainer:null!==(t=document.head)&&void 0!==t?t:document.body}}function H$(e,t){return Y$.apply(this,arguments)}function Y$(){return(Y$=Jz(f$.mark((function e(t,A){var n,r,i,o,a,s,g,c,u,l,I,C,h,f,d,B,p,Q,y,v,m,b,w,S,F,R,D,G,k,x,N,U,_,M,O,L,T,Z,H,Y,J,j,P,V,K,X,q,z,$,ee=arguments;return f$.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if($=function(){L&&document.removeEventListener("click",L),x.finalize()},c=ee.length>2&&void 0!==ee[2]?ee[2]:{},u=ee.length>3?ee[3]:void 0,l=c.theme?Object(ue.P)(E[c.theme],null!==(n=c.config)&&void 0!==n?n:{}):c.config,I=Object(ue.C)(c.actions)?c.actions:p$({},S$,null!==(r=c.actions)&&void 0!==r?r:{}),C=v$(v$({},F$),c.i18n),h=null!==(i=c.renderer)&&void 0!==i?i:"canvas",f=null!==(o=c.logLevel)&&void 0!==o?o:m$.Warn,d=null!==(a=c.downloadFileName)&&void 0!==a?a:"visualization",B="string"===typeof t?document.querySelector(t):t){e.next=12;break}throw new Error("".concat(t," does not exist"));case 12:return!1!==c.defaultStyle&&(p="vega-embed-style",Q=Z$(B),y=Q.root,v=Q.rootContainer,y.getElementById(p)||((m=document.createElement("style")).id=p,m.innerText=void 0===c.defaultStyle||!0===c.defaultStyle?B$.toString():c.defaultStyle,v.appendChild(m))),b=U$(A,c.mode),w=G$[b](A,l),"vega-lite"===b&&w.$schema&&(S=Sz(w.$schema),Object(ce.satisfies)(D$.vega,"^".concat(S.version.slice(1)))||console.warn("The compiled spec uses Vega ".concat(S.version,", but current version is v").concat(D$.vega,"."))),B.classList.add("vega-embed"),I&&B.classList.add("has-actions"),B.innerHTML="",F=B,I&&((R=document.createElement("div")).classList.add("chart-wrapper"),B.appendChild(R),F=R),(D=c.patch)&&(w=D instanceof Function?D(w):W(w,D,!0,!1).newDocument),c.formatLocale&&m$.formatLocale(c.formatLocale),c.timeFormatLocale&&m$.timeFormatLocale(c.timeFormatLocale),G=c.ast,k=m$.parse(w,"vega-lite"===b?{}:l,{ast:G}),(x=new(c.viewClass||m$.View)(k,v$({loader:u,logLevel:f,renderer:h},G?{expr:null!==(s=null!==(g=m$.expressionInterpreter)&&void 0!==g?g:c.expr)&&void 0!==s?s:QU}:{}))).addSignalListener("autosize",(function(e,t){var A=t.type;"fit-x"==A?(F.classList.add("fit-x"),F.classList.remove("fit-y")):"fit-y"==A?(F.classList.remove("fit-x"),F.classList.add("fit-y")):"fit"==A?F.classList.add("fit-x","fit-y"):F.classList.remove("fit-x","fit-y")})),!1!==c.tooltip&&(N=x$(c.tooltip)?c.tooltip:new Zz.a(!0===c.tooltip?{}:c.tooltip).call,x.tooltip(N)),void 0===(U=c.hover)&&(U="vega"===b),U&&(M=(_="boolean"===typeof U?{}:U).hoverSet,O=_.updateSet,x.hover(M,O)),c&&(null!=c.width&&x.width(c.width),null!=c.height&&x.height(c.height),null!=c.padding&&x.padding(c.padding)),e.next=36,x.initialize(F,c.bind).runAsync();case 36:if(!1!==I){if(T=B,!1!==c.defaultStyle&&((Z=document.createElement("details")).title=C.CLICK_TO_VIEW_ACTIONS,B.append(Z),T=Z,(H=document.createElement("summary")).innerHTML=k$,Z.append(H),L=function(e){Z.contains(e.target)||Z.removeAttribute("open")},document.addEventListener("click",L)),Y=document.createElement("div"),T.append(Y),Y.classList.add("vega-actions"),!0===I||!1!==I.export)for(J=function(){var e=P[j];if(!0===I||!0===I.export||I.export[e]){var t=C["".concat(e.toUpperCase(),"_ACTION")],A=document.createElement("a");A.text=t,A.href="#",A.target="_blank",A.download="".concat(d,".").concat(e),A.addEventListener("mousedown",function(){var t=Jz(f$.mark((function t(A){var n;return f$.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return A.preventDefault(),t.next=3,x.toImageURL(e,c.scaleFactor);case 3:n=t.sent,this.href=n;case 5:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()),Y.append(A)}},j=0,P=["svg","png"];j<P.length;j++)J();!0!==I&&!1===I.source||((V=document.createElement("a")).text=C.SOURCE_ACTION,V.href="#",V.addEventListener("click",(function(e){var t,n;N$(ge()(A),null!==(t=c.sourceHeader)&&void 0!==t?t:"",null!==(n=c.sourceFooter)&&void 0!==n?n:"",b),e.preventDefault()})),Y.append(V)),"vega-lite"!==b||!0!==I&&!1===I.compiled||((K=document.createElement("a")).text=C.COMPILED_ACTION,K.href="#",K.addEventListener("click",(function(e){var t,A;N$(ge()(w),null!==(t=c.sourceHeader)&&void 0!==t?t:"",null!==(A=c.sourceFooter)&&void 0!==A?A:"","vega"),e.preventDefault()})),Y.append(K)),!0!==I&&!1===I.editor||(q=null!==(X=c.editorUrl)&&void 0!==X?X:"https://vega.github.io/editor/",(z=document.createElement("a")).text=C.EDITOR_ACTION,z.href="#",z.addEventListener("click",(function(e){d$(window,q,{config:l,mode:b,renderer:h,spec:ge()(A)}),e.preventDefault()})),Y.append(z))}return e.abrupt("return",{view:x,spec:A,vgSpec:w,finalize:$});case 38:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function J$(e,t){Object.keys(t).forEach((function(A){!function(e,t,A){var n;A&&((n=A)&&"[object Function]"==={}.toString.call(n)?A(e.data(t)):e.change(t,m$.changeset().remove((function(){return!0})).insert(A)))}(e,A,t[A])}))}function j$(e){var t=new Set;return e.forEach((function(e){Object.keys(e).forEach((function(e){t.add(e)}))})),t}var P$=function(){};function V$(e,t){var A=Object.keys(t);return A.forEach((function(A){try{e.addSignalListener(A,t[A])}catch(n){console.warn("Cannot add invalid signal listener.",n)}})),A.length>0}function K$(e,t){var A=Object.keys(t);return A.forEach((function(A){try{e.removeSignalListener(A,t[A])}catch(n){console.warn("Cannot remove invalid signal listener.",n)}})),A.length>0}var W$=A(7);function X$(e){var t=e.spec,A=e.width,n=e.height;return"undefined"!==typeof A&&"undefined"!==typeof n?Object(W$.a)({},t,{width:A,height:n}):"undefined"!==typeof A?Object(W$.a)({},t,{width:A}):"undefined"!==typeof n?Object(W$.a)({},t,{height:n}):t}function q$(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var z$=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){var e;Object(y.a)(this,A);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return e=t.call.apply(t,[this].concat(r)),q$(Object(m.a)(e),"containerRef",D.a.createRef()),q$(Object(m.a)(e),"resultPromise",void 0),q$(Object(m.a)(e),"handleError",(function(t){var A=e.props.onError;(void 0===A?P$:A)(t),console.warn(t)})),q$(Object(m.a)(e),"modifyView",(function(t){e.resultPromise&&e.resultPromise.then((function(e){return e&&t(e.view),!0})).catch(e.handleError)})),e}return Object(v.a)(A,[{key:"componentDidMount",value:function(){this.createView()}},{key:"componentDidUpdate",value:function(e){var t=this,A=j$([this.props,e]);if(A.delete("className"),A.delete("signalListeners"),A.delete("spec"),A.delete("style"),A.delete("width"),A.delete("height"),Array.from(A).some((function(A){return t.props[A]!==e[A]})))this.clearView(),this.createView();else{var n=function(e,t){if(e===t)return!1;var A={width:!1,height:!1,isExpensive:!1},n=j$([e,t]);return!n.has("width")||"width"in e&&"width"in t&&e.width===t.width||("width"in e&&"number"===typeof e.width?A.width=e.width:A.isExpensive=!0),!n.has("height")||"height"in e&&"height"in t&&e.height===t.height||("height"in e&&"number"===typeof e.height?A.height=e.height:A.isExpensive=!0),n.delete("width"),n.delete("height"),Object(zn.a)(n).some((function(A){return!(A in e)||!(A in t)||!XU()(e[A],t[A])}))&&(A.isExpensive=!0),!(!1===A.width&&!1===A.height&&!A.isExpensive)&&A}(X$(this.props),X$(e)),r=this.props.signalListeners,i=e.signalListeners;if(n)if(n.isExpensive)this.clearView(),this.createView();else{var o=!k(r,i);this.modifyView((function(e){!1!==n.width&&e.width(n.width),!1!==n.height&&e.height(n.height),o&&(i&&K$(e,i),r&&V$(e,r)),e.run()}))}else k(r,i)||this.modifyView((function(e){i&&K$(e,i),r&&V$(e,r),e.run()}))}}},{key:"componentWillUnmount",value:function(){this.clearView()}},{key:"createView",value:function(){var e=this.props,t=(e.spec,e.onNewView),A=e.signalListeners,n=void 0===A?{}:A,r=(e.width,e.height,Object(Q.a)(e,["spec","onNewView","signalListeners","width","height"]));if(this.containerRef.current){var i=X$(this.props);this.resultPromise=function(e,t){return O$.apply(this,arguments)}(this.containerRef.current,i,r).then((function(e){if(e){var t=e.view;V$(t,n)&&t.run()}return e})).catch(this.handleError),t&&this.modifyView(t)}}},{key:"clearView",value:function(){return this.resultPromise&&this.resultPromise.then((function(e){e&&e.finalize()})).catch(this.handleError),this.resultPromise=void 0,this}},{key:"render",value:function(){var e=this.props,t=e.className,A=e.style;return D.a.createElement("div",{ref:this.containerRef,className:t,style:A})}}]),A}(D.a.PureComponent);function $$(){return($$=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e}).apply(this,arguments)}function e0(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}q$(z$,"propTypes",{className:F.a.string,onError:F.a.func}),A.d(t,"a",(function(){return t0}));var t0=function(e){Object(b.a)(A,e);var t=Object(w.a)(A);function A(){var e;Object(y.a)(this,A);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return e=t.call.apply(t,[this].concat(r)),e0(Object(m.a)(e),"vegaEmbed",D.a.createRef()),e0(Object(m.a)(e),"handleNewView",(function(t){e.update();var A=e.props.onNewView;(void 0===A?P$:A)(t)})),e}return Object(v.a)(A,[{key:"componentDidMount",value:function(){this.update()}},{key:"componentDidUpdate",value:function(e){k(this.props.data,e.data)||this.update()}},{key:"update",value:function(){var e=this.props.data;this.vegaEmbed.current&&e&&Object.keys(e).length>0&&this.vegaEmbed.current.modifyView((function(t){J$(t,e),t.resize().run()}))}},{key:"render",value:function(){var e=this.props,t=(e.data,Object(Q.a)(e,["data"]));return D.a.createElement(z$,$$({ref:this.vegaEmbed},t,{onNewView:this.handleNewView}))}}]),A}(D.a.PureComponent);e0(t0,"defaultProps",{data:{}})},function(e,t,A){"use strict";var n={epsilon:1e-12,matrix:"Matrix",number:"number",precision:64,predictable:!1,randomSeed:null};function r(e){return"number"===typeof e}function i(e){return e&&!0===e.constructor.prototype.isBigNumber||!1}function o(e){return e&&"object"===typeof e&&!0===Object.getPrototypeOf(e).isComplex||!1}function a(e){return e&&"object"===typeof e&&!0===Object.getPrototypeOf(e).isFraction||!1}function s(e){return e&&!0===e.constructor.prototype.isUnit||!1}function g(e){return"string"===typeof e}var c=Array.isArray;function u(e){return e&&!0===e.constructor.prototype.isMatrix||!1}function l(e){return Array.isArray(e)||u(e)}function I(e){return e&&e.isDenseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function C(e){return e&&e.isSparseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function h(e){return e&&!0===e.constructor.prototype.isRange||!1}function f(e){return e&&!0===e.constructor.prototype.isIndex||!1}function d(e){return"boolean"===typeof e}function B(e){return e&&!0===e.constructor.prototype.isResultSet||!1}function p(e){return e&&!0===e.constructor.prototype.isHelp||!1}function E(e){return"function"===typeof e}function Q(e){return e instanceof Date}function y(e){return e instanceof RegExp}function v(e){return!(!e||"object"!==typeof e||e.constructor!==Object||o(e)||a(e))}function m(e){return null===e}function b(e){return void 0===e}function w(e){return e&&!0===e.isAccessorNode&&!0===e.constructor.prototype.isNode||!1}function S(e){return e&&!0===e.isArrayNode&&!0===e.constructor.prototype.isNode||!1}function F(e){return e&&!0===e.isAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function R(e){return e&&!0===e.isBlockNode&&!0===e.constructor.prototype.isNode||!1}function D(e){return e&&!0===e.isConditionalNode&&!0===e.constructor.prototype.isNode||!1}function G(e){return e&&!0===e.isConstantNode&&!0===e.constructor.prototype.isNode||!1}function k(e){return e&&!0===e.isFunctionAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function x(e){return e&&!0===e.isFunctionNode&&!0===e.constructor.prototype.isNode||!1}function N(e){return e&&!0===e.isIndexNode&&!0===e.constructor.prototype.isNode||!1}function U(e){return e&&!0===e.isNode&&!0===e.constructor.prototype.isNode||!1}function _(e){return e&&!0===e.isObjectNode&&!0===e.constructor.prototype.isNode||!1}function M(e){return e&&!0===e.isOperatorNode&&!0===e.constructor.prototype.isNode||!1}function O(e){return e&&!0===e.isParenthesisNode&&!0===e.constructor.prototype.isNode||!1}function L(e){return e&&!0===e.isRangeNode&&!0===e.constructor.prototype.isNode||!1}function T(e){return e&&!0===e.isSymbolNode&&!0===e.constructor.prototype.isNode||!1}function Z(e){return e&&!0===e.constructor.prototype.isChain||!1}function H(e){var t=typeof e;return"object"===t?null===e?"null":Array.isArray(e)?"Array":e instanceof Date?"Date":e instanceof RegExp?"RegExp":i(e)?"BigNumber":o(e)?"Complex":a(e)?"Fraction":u(e)?"Matrix":s(e)?"Unit":f(e)?"Index":h(e)?"Range":B(e)?"ResultSet":U(e)?e.type:Z(e)?"Chain":p(e)?"Help":"Object":"function"===t?"Function":t}function Y(e){var t=typeof e;if("number"===t||"string"===t||"boolean"===t||null===e||void 0===e)return e;if("function"===typeof e.clone)return e.clone();if(Array.isArray(e))return e.map((function(e){return Y(e)}));if(e instanceof Date)return new Date(e.valueOf());if(i(e))return e;if(e instanceof RegExp)throw new TypeError("Cannot clone "+e);return J(e,Y)}function J(e,t){var A={};for(var n in e)V(e,n)&&(A[n]=t(e[n]));return A}function j(e,t){for(var A in t)V(t,A)&&(e[A]=t[A]);return e}function P(e,t){var A,n,r;if(Array.isArray(e)){if(!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(n=0,r=e.length;n<r;n++)if(!P(e[n],t[n]))return!1;return!0}if("function"===typeof e)return e===t;if(e instanceof Object){if(Array.isArray(t)||!(t instanceof Object))return!1;for(A in e)if(!(A in t)||!P(e[A],t[A]))return!1;for(A in t)if(!(A in e)||!P(e[A],t[A]))return!1;return!0}return e===t}function V(e,t){return e&&Object.hasOwnProperty.call(e,t)}var K=["Matrix","Array"],W=["number","BigNumber","Fraction"];function X(){return(X=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e}).apply(this,arguments)}var q=function(e){if(e)throw new Error("The global config is readonly. \nPlease create a mathjs instance if you want to change the default configuration. \nExample:\n\n import { create, all } from 'mathjs';\n const mathjs = create(all);\n mathjs.config({ number: 'BigNumber' });\n");return Object.freeze(n)};function z(e){return"boolean"===typeof e||!!isFinite(e)&&e===Math.round(e)}X(q,n,{MATRIX_OPTIONS:K,NUMBER_OPTIONS:W});var $=Math.sign||function(e){return e>0?1:e<0?-1:0},ee=Math.log2||function(e){return Math.log(e)/Math.LN2},te=Math.log10||function(e){return Math.log(e)/Math.LN10},Ae=(Math.log1p,Math.cbrt||function(e){if(0===e)return e;var t,A=e<0;return A&&(e=-e),t=isFinite(e)?(e/((t=Math.exp(Math.log(e)/3))*t)+2*t)/3:e,A?-t:t}),ne=Math.expm1||function(e){return e>=2e-4||e<=-2e-4?Math.exp(e)-1:e+e*e/2+e*e*e/6};function re(e,t,A){var n={2:"0b",8:"0o",16:"0x"}[t],r="";if(A){if(A<1)throw new Error("size must be in greater than 0");if(!z(A))throw new Error("size must be an integer");if(e>Math.pow(2,A-1)-1||e<-Math.pow(2,A-1))throw new Error("Value must be in range [-2^".concat(A-1,", 2^").concat(A-1,"-1]"));if(!z(e))throw new Error("Value must be an integer");e<0&&(e+=Math.pow(2,A)),r="i".concat(A)}var i="";return e<0&&(e=-e,i="-"),"".concat(i).concat(n).concat(e.toString(t)).concat(r)}function ie(e,t){if("function"===typeof t)return t(e);if(e===1/0)return"Infinity";if(e===-1/0)return"-Infinity";if(isNaN(e))return"NaN";var A,n,i="auto";if(t&&(t.notation&&(i=t.notation),r(t)?A=t:r(t.precision)&&(A=t.precision),t.wordSize&&"number"!==typeof(n=t.wordSize)))throw new Error('Option "wordSize" must be a number');switch(i){case"fixed":return ae(e,A);case"exponential":return se(e,A);case"engineering":return function(e,t){if(isNaN(e)||!isFinite(e))return String(e);var A=ge(oe(e),t),n=A.exponent,i=A.coefficients,o=n%3===0?n:n<0?n-3-n%3:n-n%3;if(r(t))for(;t>i.length||n-o+1>i.length;)i.push(0);else for(var a=Math.abs(n-o)-(i.length-1),s=0;s<a;s++)i.push(0);var g=Math.abs(n-o),c=1;for(;g>0;)c++,g--;var u=i.slice(c).join(""),l=r(t)&&u.length||u.match(/[1-9]/)?"."+u:"",I=i.slice(0,c).join("")+l+"e"+(n>=0?"+":"")+o.toString();return A.sign+I}(e,A);case"bin":return re(e,2,n);case"oct":return re(e,8,n);case"hex":return re(e,16,n);case"auto":return function(e,t,A){if(isNaN(e)||!isFinite(e))return String(e);var n=A&&void 0!==A.lowerExp?A.lowerExp:-3,r=A&&void 0!==A.upperExp?A.upperExp:5,i=oe(e),o=t?ge(i,t):i;if(o.exponent<n||o.exponent>=r)return se(e,t);var a=o.coefficients,s=o.exponent;a.length<t&&(a=a.concat(ce(t-a.length))),a=a.concat(ce(s-a.length+1+(a.length<t?t-a.length:0))),a=ce(-s).concat(a);var g=s>0?s:0;return g<a.length-1&&a.splice(g+1,0,"."),o.sign+a.join("")}(e,A,t&&t).replace(/((\.\d*?)(0+))($|e)/,(function(){var e=arguments[2],t=arguments[4];return"."!==e?e+t:t}));default:throw new Error('Unknown notation "'+i+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function oe(e){var t=String(e).toLowerCase().match(/^0*?(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!t)throw new SyntaxError("Invalid number "+e);var A=t[1],n=t[2],r=parseFloat(t[4]||"0"),i=n.indexOf(".");r+=-1!==i?i-1:n.length-1;var o=n.replace(".","").replace(/^0*/,(function(e){return r-=e.length,""})).replace(/0*$/,"").split("").map((function(e){return parseInt(e)}));return 0===o.length&&(o.push(0),r++),{sign:A,coefficients:o,exponent:r}}function ae(e,t){if(isNaN(e)||!isFinite(e))return String(e);var A=oe(e),n="number"===typeof t?ge(A,A.exponent+1+t):A,r=n.coefficients,i=n.exponent+1,o=i+(t||0);return r.length<o&&(r=r.concat(ce(o-r.length))),i<0&&(r=ce(1-i).concat(r),i=1),i<r.length&&r.splice(i,0,0===i?"0.":"."),n.sign+r.join("")}function se(e,t){if(isNaN(e)||!isFinite(e))return String(e);var A=oe(e),n=t?ge(A,t):A,r=n.coefficients,i=n.exponent;r.length<t&&(r=r.concat(ce(t-r.length)));var o=r.shift();return n.sign+o+(r.length>0?"."+r.join(""):"")+"e"+(i>=0?"+":"")+i}function ge(e,t){for(var A={sign:e.sign,coefficients:e.coefficients,exponent:e.exponent},n=A.coefficients;t<=0;)n.unshift(0),A.exponent++,t++;if(n.length>t&&n.splice(t,n.length-t)[0]>=5){var r=t-1;for(n[r]++;10===n[r];)n.pop(),0===r&&(n.unshift(0),A.exponent++,r++),n[--r]++}return A}function ce(e){for(var t=[],A=0;A<e;A++)t.push(0);return t}var ue=Number.EPSILON||2220446049250313e-31;function le(e,t,A){if(null===A||void 0===A)return e===t;if(e===t)return!0;if(isNaN(e)||isNaN(t))return!1;if(isFinite(e)&&isFinite(t)){var n=Math.abs(e-t);return n<ue||n<=Math.max(Math.abs(e),Math.abs(t))*A}return!1}var Ie=Math.acosh||function(e){return Math.log(Math.sqrt(e*e-1)+e)},Ce=Math.asinh||function(e){return Math.log(Math.sqrt(e*e+1)+e)},he=Math.atanh||function(e){return Math.log((1+e)/(1-e))/2},fe=(Math.cosh,Math.sinh||function(e){return(Math.exp(e)-Math.exp(-e))/2});Math.tanh;function de(e,t,A){var n=new(0,e.constructor)(2),r="";if(A){if(A<1)throw new Error("size must be in greater than 0");if(!z(A))throw new Error("size must be an integer");if(e.greaterThan(n.pow(A-1).sub(1))||e.lessThan(n.pow(A-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(A-1,", 2^").concat(A-1,"-1]"));if(!e.isInteger())throw new Error("Value must be an integer");e.lessThan(0)&&(e=e.add(n.pow(A))),r="i".concat(A)}switch(t){case 2:return"".concat(e.toBinary()).concat(r);case 8:return"".concat(e.toOctal()).concat(r);case 16:return"".concat(e.toHexadecimal()).concat(r);default:throw new Error("Base ".concat(t," not supported "))}}function Be(e,t){if("function"===typeof t)return t(e);if(!e.isFinite())return e.isNaN()?"NaN":e.gt(0)?"Infinity":"-Infinity";var A,n,r="auto";if(void 0!==t&&(t.notation&&(r=t.notation),"number"===typeof t?A=t:t.precision&&(A=t.precision),t.wordSize&&"number"!==typeof(n=t.wordSize)))throw new Error('Option "wordSize" must be a number');switch(r){case"fixed":return function(e,t){return e.toFixed(t)}(e,A);case"exponential":return pe(e,A);case"engineering":return function(e,t){var A=e.e,n=A%3===0?A:A<0?A-3-A%3:A-A%3,r=e.mul(Math.pow(10,-n)),i=r.toPrecision(t);-1!==i.indexOf("e")&&(i=r.toString());return i+"e"+(A>=0?"+":"")+n.toString()}(e,A);case"bin":return de(e,2,n);case"oct":return de(e,8,n);case"hex":return de(e,16,n);case"auto":var i=t&&void 0!==t.lowerExp?t.lowerExp:-3,o=t&&void 0!==t.upperExp?t.upperExp:5;if(e.isZero())return"0";var a=e.toSignificantDigits(A),s=a.e;return(s>=i&&s<o?a.toFixed():pe(e,A)).replace(/((\.\d*?)(0+))($|e)/,(function(){var e=arguments[2],t=arguments[4];return"."!==e?e+t:t}));default:throw new Error('Unknown notation "'+r+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function pe(e,t){return void 0!==t?e.toExponential(t-1):e.toExponential()}function Ee(e,t){var A=e.length-t.length,n=e.length;return e.substring(A,n)===t}function Qe(e,t){return"number"===typeof e?ie(e,t):i(e)?Be(e,t):function(e){return e&&"object"===typeof e&&"number"===typeof e.s&&"number"===typeof e.n&&"number"===typeof e.d||!1}(e)?t&&"decimal"===t.fraction?e.toString():e.s*e.n+"/"+e.d:Array.isArray(e)?function e(t,A){if(Array.isArray(t)){for(var n="[",r=t.length,i=0;i<r;i++)0!==i&&(n+=", "),n+=e(t[i],A);return n+="]"}return Qe(t,A)}(e,t):g(e)?'"'+e+'"':"function"===typeof e?e.syntax?String(e.syntax):"function":e&&"object"===typeof e?"function"===typeof e.format?e.format(t):e&&e.toString(t)!=={}.toString()?e.toString(t):"{"+Object.keys(e).map((function(A){return'"'+A+'": '+Qe(e[A],t)})).join(", ")+"}":String(e)}function ye(e,t,A){if(!(this instanceof ye))throw new SyntaxError("Constructor must be called with the new operator");this.actual=e,this.expected=t,this.relation=A,this.message="Dimension mismatch ("+(Array.isArray(e)?"["+e.join(", ")+"]":e)+" "+(this.relation||"!=")+" "+(Array.isArray(t)?"["+t.join(", ")+"]":t)+")",this.stack=(new Error).stack}function ve(e,t,A){if(!(this instanceof ve))throw new SyntaxError("Constructor must be called with the new operator");this.index=e,arguments.length<3?(this.min=0,this.max=t):(this.min=t,this.max=A),void 0!==this.min&&this.index<this.min?this.message="Index out of range ("+this.index+" < "+this.min+")":void 0!==this.max&&this.index>=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=(new Error).stack}function me(e){for(var t=[];Array.isArray(e);)t.push(e.length),e=e[0];return t}function be(e,t){if(0===t.length){if(Array.isArray(e))throw new ye(e.length,0)}else!function e(t,A,n){var r,i=t.length;if(i!==A[n])throw new ye(i,A[n]);if(n<A.length-1){var o=n+1;for(r=0;r<i;r++){var a=t[r];if(!Array.isArray(a))throw new ye(A.length-1,A.length,"<");e(t[r],A,o)}}else for(r=0;r<i;r++)if(Array.isArray(t[r]))throw new ye(A.length+1,A.length,">")}(e,t,0)}function we(e,t){if(!r(e)||!z(e))throw new TypeError("Index must be an integer (value: "+e+")");if(e<0||"number"===typeof t&&e>=t)throw new ve(e,t)}function Se(e,t,A){if(!Array.isArray(e)||!Array.isArray(t))throw new TypeError("Array expected");if(0===t.length)throw new Error("Resizing to scalar is not supported");return t.forEach((function(e){if(!r(e)||!z(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+Qe(t)+")")})),function e(t,A,n,r){var i,o,a=t.length,s=A[n],g=Math.min(a,s);if(t.length=s,n<A.length-1){var c=n+1;for(i=0;i<g;i++)o=t[i],Array.isArray(o)||(o=[o],t[i]=o),e(o,A,c,r);for(i=g;i<s;i++)o=[],t[i]=o,e(o,A,c,r)}else{for(i=0;i<g;i++)for(;Array.isArray(t[i]);)t[i]=t[i][0];for(i=g;i<s;i++)t[i]=r}}(e,t,0,void 0!==A?A:0),e}function Fe(e,t){var A=ke(e),n=A.length;if(!Array.isArray(e)||!Array.isArray(t))throw new TypeError("Array expected");if(0===t.length)throw new ye(0,n,"!=");var r=De(t=Re(t,n));if(n!==r)throw new ye(r,n,"!=");try{return function(e,t){for(var A,n=e,r=t.length-1;r>0;r--){var i=t[r];A=[];for(var o=n.length/i,a=0;a<o;a++)A.push(n.slice(a*i,(a+1)*i));n=A}return n}(A,t)}catch(i){if(i instanceof ye)throw new ye(r,n,"!=");throw i}}function Re(e,t){var A=De(e),n=e.slice(),r=e.indexOf(-1);if(e.indexOf(-1,r+1)>=0)throw new Error("More than one wildcard in sizes");if(r>=0){if(!(t%A===0))throw new Error("Could not replace wildcard, since "+t+" is no multiple of "+-A);n[r]=-t/A}return n}function De(e){return e.reduce((function(e,t){return e*t}),1)}function Ge(e,t,A,n){var r=n||me(e);if(A)for(var i=0;i<A;i++)e=[e],r.unshift(1);for(e=function e(t,A,n){var r,i;if(Array.isArray(t)){var o=n+1;for(r=0,i=t.length;r<i;r++)t[r]=e(t[r],A,o)}else for(var a=n;a<A;a++)t=[t];return t}(e,t,0);r.length<t;)r.push(1);return e}function ke(e){if(!Array.isArray(e))return e;var t=[];return e.forEach((function e(A){Array.isArray(A)?A.forEach(e):t.push(A)})),t}function xe(e,t){for(var A,n=0,r=0;r<e.length;r++){var i=e[r],o=Array.isArray(i);if(0===r&&o&&(n=i.length),o&&i.length!==n)return;var a=o?xe(i,t):t(i);if(void 0===A)A=a;else if(A!==a)return"mixed"}return A}function Ne(e,t,A,n){function r(n){var r=function(e,t){for(var A={},n=0;n<t.length;n++){var r=t[n],i=e[r];void 0!==i&&(A[r]=i)}return A}(n,t.map(Ue));return function(e,t,A){if(!t.filter((function(e){return!function(e){return e&&"?"===e[0]}(e)})).every((function(e){return void 0!==A[e]}))){var n=t.filter((function(e){return void 0===A[e]}));throw new Error('Cannot create function "'.concat(e,'", ')+"some dependencies are missing: ".concat(n.map((function(e){return'"'.concat(e,'"')})).join(", "),"."))}}(e,t,n),A(r)}return r.isFactory=!0,r.fn=e,r.dependencies=t.slice().sort(),n&&(r.meta=n),r}function Ue(e){return e&&"?"===e[0]?e.slice(1):e}ye.prototype=new RangeError,ye.prototype.constructor=RangeError,ye.prototype.name="DimensionError",ye.prototype.isDimensionError=!0,ve.prototype=new RangeError,ve.prototype.constructor=RangeError,ve.prototype.name="IndexError",ve.prototype.isIndexError=!0;var _e=A(110),Me=A.n(_e),Oe=Ne("Complex",[],(function(){return Me.a.prototype.type="Complex",Me.a.prototype.isComplex=!0,Me.a.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},Me.a.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},Me.a.prototype.format=function(e){var t=this.im,A=this.re,n=ie(this.re,e),i=ie(this.im,e),o=r(e)?e:e?e.precision:null;if(null!==o){var a=Math.pow(10,-o);Math.abs(A/t)<a&&(A=0),Math.abs(t/A)<a&&(t=0)}return 0===t?n:0===A?1===t?"i":-1===t?"-i":i+"i":t<0?-1===t?n+" - i":n+" - "+i.substring(1)+"i":1===t?n+" + i":n+" + "+i+"i"},Me.a.fromPolar=function(e){switch(arguments.length){case 1:var t=arguments[0];if("object"===typeof t)return Me()(t);throw new TypeError("Input has to be an object with r and phi keys.");case 2:var A=arguments[0],n=arguments[1];if(r(A)){if(s(n)&&n.hasBase("ANGLE")&&(n=n.toNumber("rad")),r(n))return new Me.a({r:A,phi:n});throw new TypeError("Phi is not a number nor an angle unit.")}throw new TypeError("Radius r is not a number.");default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},Me.a.prototype.valueOf=Me.a.prototype.toString,Me.a.fromJSON=function(e){return new Me.a(e)},Me.a.compare=function(e,t){return e.re>t.re?1:e.re<t.re?-1:e.im>t.im?1:e.im<t.im?-1:0},Me.a}),{isClass:!0});function Le(e){var t=0,A=1,n=Object.create(null),r=Object.create(null),i=0,o=function(e){var o=r[e];if(o&&(delete n[o],delete r[e],--t,A===o)){if(!t)return i=0,void(A=1);for(;!hasOwnProperty.call(n,++A););}};return e=Math.abs(e),{hit:function(a){var s=r[a],g=++i;if(n[g]=a,r[a]=g,!s){if(++t<=e)return;return a=n[A],o(a),a}if(delete n[s],A===s)for(;!hasOwnProperty.call(n,++A););},delete:o,clear:function(){t=i=0,A=1,n=Object.create(null),r=Object.create(null)}}}function Te(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=t.hasher,n=t.limit;return n=null==n?Number.POSITIVE_INFINITY:n,A=null==A?JSON.stringify:A,function t(){"object"!==typeof t.cache&&(t.cache={values:new Map,lru:Le(n||Number.POSITIVE_INFINITY)});for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];var o=A(r);if(t.cache.values.has(o))return t.cache.lru.hit(o),t.cache.values.get(o);var a=e.apply(e,r);return t.cache.values.set(o,a),t.cache.values.delete(t.cache.lru.hit(o)),a}}Te((function(e){return new e(1).exp()}),{hasher:He}),Te((function(e){return new e(1).plus(new e(5).sqrt()).div(2)}),{hasher:He});var Ze=Te((function(e){return e.acos(-1)}),{hasher:He});Te((function(e){return Ze(e).times(2)}),{hasher:He});function He(e){return e[0].precision}Math.PI,Math.PI,Math.E;var Ye=A(277),Je=A.n(Ye),je=Ne("BigNumber",["?on","config"],(function(e){var t=e.on,A=e.config,n=Je.a.clone({precision:A.precision,modulo:9});return n.prototype.type="BigNumber",n.prototype.isBigNumber=!0,n.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},n.fromJSON=function(e){return new n(e.value)},t&&t("config",(function(e,t){e.precision!==t.precision&&n.config({precision:e.precision})})),n}),{isClass:!0}),Pe=Ne("Matrix",[],(function(){function e(){if(!(this instanceof e))throw new SyntaxError("Constructor must be called with the new operator")}return e.prototype.type="Matrix",e.prototype.isMatrix=!0,e.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},e.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},e.prototype.create=function(e,t){throw new Error("Cannot invoke create on a Matrix interface")},e.prototype.subset=function(e,t,A){throw new Error("Cannot invoke subset on a Matrix interface")},e.prototype.get=function(e){throw new Error("Cannot invoke get on a Matrix interface")},e.prototype.set=function(e,t,A){throw new Error("Cannot invoke set on a Matrix interface")},e.prototype.resize=function(e,t){throw new Error("Cannot invoke resize on a Matrix interface")},e.prototype.reshape=function(e,t){throw new Error("Cannot invoke reshape on a Matrix interface")},e.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},e.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},e.prototype.map=function(e,t){throw new Error("Cannot invoke map on a Matrix interface")},e.prototype.forEach=function(e){throw new Error("Cannot invoke forEach on a Matrix interface")},e.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},e.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},e.prototype.format=function(e){throw new Error("Cannot invoke format on a Matrix interface")},e.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},e}),{isClass:!0});Ve("fineStructure",.0072973525693),Ve("weakMixingAngle",.2229),Ve("efimovFactor",22.7),Ve("sackurTetrode",-1.16487052358);function Ve(e,t){return Ne(e,["config","BigNumber"],(function(e){var A=e.config,n=e.BigNumber;return"BigNumber"===A.number?new n(t):t}))}var Ke=A(241),We=A.n(Ke),Xe=Ne("Fraction",[],(function(){return We.a.prototype.type="Fraction",We.a.prototype.isFraction=!0,We.a.prototype.toJSON=function(){return{mathjs:"Fraction",n:this.s*this.n,d:this.d}},We.a.fromJSON=function(e){return new We.a(e)},We.a}),{isClass:!0}),qe=Ne("DenseMatrix",["Matrix"],(function(e){var t=e.Matrix;function A(e,t){if(!(this instanceof A))throw new SyntaxError("Constructor must be called with the new operator");if(t&&!g(t))throw new Error("Invalid datatype: "+t);if(u(e))"DenseMatrix"===e.type?(this._data=Y(e._data),this._size=Y(e._size),this._datatype=t||e._datatype):(this._data=e.toArray(),this._size=e.size(),this._datatype=t||e._datatype);else if(e&&c(e.data)&&c(e.size))this._data=e.data,this._size=e.size,be(this._data,this._size),this._datatype=t||e.datatype;else if(c(e))this._data=function e(t){for(var A=0,n=t.length;A<n;A++){var r=t[A];c(r)?t[A]=e(r):r&&!0===r.isMatrix&&(t[A]=e(r.valueOf()))}return t}(e),this._size=me(this._data),be(this._data,this._size),this._datatype=t;else{if(e)throw new TypeError("Unsupported type of data ("+H(e)+")");this._data=[],this._size=[0],this._datatype=t}}function n(e,t){if(!f(t))throw new TypeError("Invalid index");if(t.isScalar())return e.get(t.min());var n=t.size();if(n.length!==e._size.length)throw new ye(n.length,e._size.length);for(var r=t.min(),i=t.max(),o=0,a=e._size.length;o<a;o++)we(r[o],e._size[o]),we(i[o],e._size[o]);return new A(function e(t,A,n,r){var i=r===n-1,o=A.dimension(r);return i?o.map((function(e){return we(e,t.length),t[e]})).valueOf():o.map((function(i){we(i,t.length);var o=t[i];return e(o,A,n,r+1)})).valueOf()}(e._data,t,n.length,0),e._datatype)}function o(e,t,A,n){if(!t||!0!==t.isIndex)throw new TypeError("Invalid index");var r,i=t.size(),o=t.isScalar();if(u(A)?(r=A.size(),A=A.valueOf()):r=me(A),o){if(0!==r.length)throw new TypeError("Scalar expected");e.set(t.min(),A,n)}else{if(i.length<e._size.length)throw new ye(i.length,e._size.length,"<");if(r.length<i.length){for(var a=0,g=0;1===i[a]&&1===r[a];)a++;for(;1===i[a];)g++,a++;A=Ge(A,i.length,g,r)}if(!P(i,r))throw new ye(i,r,">");s(e,t.max().map((function(e){return e+1})),n);var c=i.length;!function e(t,A,n,r,i){var o=i===r-1,a=A.dimension(i);o?a.forEach((function(e,A){we(e),t[e]=n[A[0]]})):a.forEach((function(o,a){we(o),e(t[o],A,n[a[0]],r,i+1)}))}(e._data,t,A,c,0)}return e}function a(e,t,A){if(0===t.length){for(var n=e._data;c(n);)n=n[0];return n}return e._size=t.slice(0),e._data=Se(e._data,e._size,A),e}function s(e,t,A){for(var n=e._size.slice(0),r=!1;n.length<t.length;)n.push(0),r=!0;for(var i=0,o=t.length;i<o;i++)t[i]>n[i]&&(n[i]=t[i],r=!0);r&&a(e,n,A)}return A.prototype=new t,A.prototype.createDenseMatrix=function(e,t){return new A(e,t)},A.prototype.type="DenseMatrix",A.prototype.isDenseMatrix=!0,A.prototype.getDataType=function(){return xe(this._data,H)},A.prototype.storage=function(){return"dense"},A.prototype.datatype=function(){return this._datatype},A.prototype.create=function(e,t){return new A(e,t)},A.prototype.subset=function(e,t,A){switch(arguments.length){case 1:return n(this,e);case 2:case 3:return o(this,e,t,A);default:throw new SyntaxError("Wrong number of arguments")}},A.prototype.get=function(e){if(!c(e))throw new TypeError("Array expected");if(e.length!==this._size.length)throw new ye(e.length,this._size.length);for(var t=0;t<e.length;t++)we(e[t],this._size[t]);for(var A=this._data,n=0,r=e.length;n<r;n++){var i=e[n];we(i,A.length),A=A[i]}return A},A.prototype.set=function(e,t,A){if(!c(e))throw new TypeError("Array expected");if(e.length<this._size.length)throw new ye(e.length,this._size.length,"<");var n,r,i;s(this,e.map((function(e){return e+1})),A);var o=this._data;for(n=0,r=e.length-1;n<r;n++)we(i=e[n],o.length),o=o[i];return we(i=e[e.length-1],o.length),o[i]=t,this},A.prototype.resize=function(e,t,A){if(!l(e))throw new TypeError("Array or Matrix expected");var n=e.valueOf().map((function(e){return Array.isArray(e)&&1===e.length?e[0]:e}));return a(A?this.clone():this,n,t)},A.prototype.reshape=function(e,t){var A=t?this.clone():this;A._data=Fe(A._data,e);var n=A._size.reduce((function(e,t){return e*t}));return A._size=Re(e,n),A},A.prototype.clone=function(){return new A({data:Y(this._data),size:Y(this._size),datatype:this._datatype})},A.prototype.size=function(){return this._size.slice(0)},A.prototype.map=function(e){var t=this,n=function A(n,r){return c(n)?n.map((function(e,t){return A(e,r.concat(t))})):e(n,r,t)}(this._data,[]);return new A(n,void 0!==this._datatype?xe(n,H):void 0)},A.prototype.forEach=function(e){var t=this;!function A(n,r){c(n)?n.forEach((function(e,t){A(e,r.concat(t))})):e(n,r,t)}(this._data,[])},A.prototype.toArray=function(){return Y(this._data)},A.prototype.valueOf=function(){return this._data},A.prototype.format=function(e){return Qe(this._data,e)},A.prototype.toString=function(){return Qe(this._data)},A.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},A.prototype.diagonal=function(e){if(e){if(i(e)&&(e=e.toNumber()),!r(e)||!z(e))throw new TypeError("The parameter k must be an integer number")}else e=0;for(var t=e>0?e:0,n=e<0?-e:0,o=this._size[0],a=this._size[1],s=Math.min(o-n,a-t),g=[],c=0;c<s;c++)g[c]=this._data[c+n][c+t];return new A({data:g,size:[s],datatype:this._datatype})},A.diagonal=function(e,t,n,o){if(!c(e))throw new TypeError("Array expected, size parameter");if(2!==e.length)throw new Error("Only two dimensions matrix are supported");if(e=e.map((function(e){if(i(e)&&(e=e.toNumber()),!r(e)||!z(e)||e<1)throw new Error("Size values must be positive integers");return e})),n){if(i(n)&&(n=n.toNumber()),!r(n)||!z(n))throw new TypeError("The parameter k must be an integer number")}else n=0;var a,s=n>0?n:0,g=n<0?-n:0,l=e[0],I=e[1],C=Math.min(l-g,I-s);if(c(t)){if(t.length!==C)throw new Error("Invalid value array length");a=function(e){return t[e]}}else if(u(t)){var h=t.size();if(1!==h.length||h[0]!==C)throw new Error("Invalid matrix length");a=function(e){return t.get([e])}}else a=function(){return t};o||(o=i(a(0))?a(0).mul(0):0);var f=[];if(e.length>0){f=Se(f,e,o);for(var d=0;d<C;d++)f[d+g][d+s]=a(d)}return new A({data:f,size:[l,I]})},A.fromJSON=function(e){return new A(e)},A.prototype.swapRows=function(e,t){if(!r(e)||!z(e)||!r(t)||!z(t))throw new Error("Row index must be positive integers");if(2!==this._size.length)throw new Error("Only two dimensional matrix is supported");return we(e,this._size[0]),we(t,this._size[0]),A._swapRows(e,t,this._data),this},A._swapRows=function(e,t,A){var n=A[e];A[e]=A[t],A[t]=n},A}),{isClass:!0}),ze=A(517),$e=A.n(ze),et=function(){return et=$e.a.create,$e.a},tt=Ne("typed",["?BigNumber","?Complex","?DenseMatrix","?Fraction"],(function(e){var t=e.BigNumber,A=e.Complex,n=e.DenseMatrix,l=e.Fraction,H=et();return H.types=[{name:"number",test:r},{name:"Complex",test:o},{name:"BigNumber",test:i},{name:"Fraction",test:a},{name:"Unit",test:s},{name:"string",test:g},{name:"Chain",test:Z},{name:"Array",test:c},{name:"Matrix",test:u},{name:"DenseMatrix",test:I},{name:"SparseMatrix",test:C},{name:"Range",test:h},{name:"Index",test:f},{name:"boolean",test:d},{name:"ResultSet",test:B},{name:"Help",test:p},{name:"function",test:E},{name:"Date",test:Q},{name:"RegExp",test:y},{name:"null",test:m},{name:"undefined",test:b},{name:"AccessorNode",test:w},{name:"ArrayNode",test:S},{name:"AssignmentNode",test:F},{name:"BlockNode",test:R},{name:"ConditionalNode",test:D},{name:"ConstantNode",test:G},{name:"FunctionNode",test:x},{name:"FunctionAssignmentNode",test:k},{name:"IndexNode",test:N},{name:"Node",test:U},{name:"ObjectNode",test:_},{name:"OperatorNode",test:M},{name:"ParenthesisNode",test:O},{name:"RangeNode",test:L},{name:"SymbolNode",test:T},{name:"Object",test:v}],H.conversions=[{from:"number",to:"BigNumber",convert:function(e){if(t||At(e),e.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+e+"). Use function bignumber(x) to convert to BigNumber.");return new t(e)}},{from:"number",to:"Complex",convert:function(e){return A||nt(e),new A(e,0)}},{from:"number",to:"string",convert:function(e){return e+""}},{from:"BigNumber",to:"Complex",convert:function(e){return A||nt(e),new A(e.toNumber(),0)}},{from:"Fraction",to:"BigNumber",convert:function(e){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(e){return A||nt(e),new A(e.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(e){l||rt(e);var t=new l(e);if(t.valueOf()!==e)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+e+"). Use function fraction(x) to convert to Fraction.");return t}},{from:"string",to:"number",convert:function(e){var t=Number(e);if(isNaN(t))throw new Error('Cannot convert "'+e+'" to a number');return t}},{from:"string",to:"BigNumber",convert:function(e){t||At(e);try{return new t(e)}catch(A){throw new Error('Cannot convert "'+e+'" to BigNumber')}}},{from:"string",to:"Fraction",convert:function(e){l||rt(e);try{return new l(e)}catch(t){throw new Error('Cannot convert "'+e+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(e){A||nt(e);try{return new A(e)}catch(t){throw new Error('Cannot convert "'+e+'" to Complex')}}},{from:"boolean",to:"number",convert:function(e){return+e}},{from:"boolean",to:"BigNumber",convert:function(e){return t||At(e),new t(+e)}},{from:"boolean",to:"Fraction",convert:function(e){return l||rt(e),new l(+e)}},{from:"boolean",to:"string",convert:function(e){return String(e)}},{from:"Array",to:"Matrix",convert:function(e){return n||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new n(e)}},{from:"Matrix",to:"Array",convert:function(e){return e.valueOf()}}],H}));function At(e){throw new Error("Cannot convert value ".concat(e," into a BigNumber: no class 'BigNumber' provided"))}function nt(e){throw new Error("Cannot convert value ".concat(e," into a Complex number: no class 'Complex' provided"))}function rt(e){throw new Error("Cannot convert value ".concat(e," into a Fraction, no class 'Fraction' provided."))}function it(e,t,A){return e&&"function"===typeof e.map?e.map((function(e){return it(e,t,A)})):t(e)}var ot=Ne("isNumeric",["typed"],(function(e){return(0,e.typed)("isNumeric",{"number | BigNumber | Fraction | boolean":function(){return!0},"Complex | Unit | string | null | undefined | Node":function(){return!1},"Array | Matrix":function(e){return it(e,this)}})})),at="number";function st(e){return e<0}function gt(e){return e>0}function ct(e){return 0===e}function ut(e){return Number.isNaN(e)}st.signature=at,gt.signature=at,ct.signature=at,ut.signature=at;function lt(e,t,A){if(null===A||void 0===A)return e.eq(t);if(e.eq(t))return!0;if(e.isNaN()||t.isNaN())return!1;if(e.isFinite()&&t.isFinite()){var n=e.minus(t).abs();if(n.isZero())return!0;var r=e.constructor.max(e.abs(),t.abs());return n.lte(r.times(A))}return!1}var It=Ne("equalScalar",["typed","config"],(function(e){var t=e.typed,A=e.config;return t("equalScalar",{"boolean, boolean":function(e,t){return e===t},"number, number":function(e,t){return le(e,t,A.epsilon)},"BigNumber, BigNumber":function(e,t){return e.eq(t)||lt(e,t,A.epsilon)},"Fraction, Fraction":function(e,t){return e.equals(t)},"Complex, Complex":function(e,t){return function(e,t,A){return le(e.re,t.re,A)&&le(e.im,t.im,A)}(e,t,A.epsilon)},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)}})})),Ct=(Ne("equalScalar",["typed","config"],(function(e){var t=e.typed,A=e.config;return t("equalScalar",{"number, number":function(e,t){return le(e,t,A.epsilon)}})})),Ne("number",["typed"],(function(e){var t=(0,e.typed)("number",{"":function(){return 0},number:function(e){return e},string:function(e){if("NaN"===e)return NaN;var t=0,A=e.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);A&&(t=Number(A[2]),e=A[1]);var n=Number(e);if(isNaN(n))throw new SyntaxError('String "'+e+'" is no valid number');if(A){if(n>Math.pow(2,t)-1)throw new SyntaxError('String "'.concat(e,'" is out of range'));n>=Math.pow(2,t-1)&&(n-=Math.pow(2,t))}return n},BigNumber:function(e){return e.toNumber()},Fraction:function(e){return e.valueOf()},Unit:function(e){throw new Error("Second argument with valueless unit expected")},null:function(e){return 0},"Unit, string | Unit":function(e,t){return e.toNumber(t)},"Array | Matrix":function(e){return it(e,this)}});return t.fromJSON=function(e){return parseFloat(e.value)},t}))),ht="number, number";function ft(e){return Math.abs(e)}function dt(e,t){return e+t}function Bt(e,t){return e*t}function pt(e){return-e}function Et(e){return e}function Qt(e){return Ae(e)}function yt(e){return Math.ceil(e)}function vt(e){return e*e*e}function mt(e){return Math.exp(e)}function bt(e){return ne(e)}function wt(e,t){if(!z(e)||!z(t))throw new Error("Parameters in function gcd must be integer numbers");for(var A;0!==t;)A=e%t,e=t,t=A;return e<0?-e:e}function St(e,t){if(!z(e)||!z(t))throw new Error("Parameters in function lcm must be integer numbers");if(0===e||0===t)return 0;for(var A,n=e*t;0!==t;)t=e%(A=t),e=A;return Math.abs(n/e)}function Ft(e){return Math.log(e)}function Rt(e){return te(e)}function Dt(e){return ee(e)}function Gt(e,t){if(t>0)return e-t*Math.floor(e/t);if(0===t)return e;throw new Error("Cannot calculate mod for a negative divisor")}function kt(e,t){var A=t<0;if(A&&(t=-t),0===t)throw new Error("Root must be non-zero");if(e<0&&Math.abs(t)%2!==1)throw new Error("Root must be odd when a is negative.");if(0===e)return A?1/0:0;if(!isFinite(e))return A?0:e;var n=Math.pow(Math.abs(e),1/t);return n=e<0?-n:n,A?1/n:n}function xt(e){return $(e)}function Nt(e){return e*e}function Ut(e,t){var A,n,r,i=0,o=1,a=1,s=0;if(!z(e)||!z(t))throw new Error("Parameters in function xgcd must be integer numbers");for(;t;)r=e-(n=Math.floor(e/t))*t,A=i,i=o-n*i,o=A,A=a,a=s-n*a,s=A,e=t,t=r;return e<0?[-e,-o,-s]:[e,e?o:0,s]}function _t(e,t){return e*e<1&&t===1/0||e*e>1&&t===-1/0?0:Math.pow(e,t)}function Mt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return parseFloat(ae(e,t))}ft.signature="number",dt.signature=ht,Bt.signature=ht,pt.signature="number",Et.signature="number",Qt.signature="number",yt.signature="number",vt.signature="number",mt.signature="number",bt.signature="number",wt.signature=ht,St.signature=ht,Ft.signature="number",Rt.signature="number",Dt.signature="number",Gt.signature=ht,kt.signature=ht,xt.signature="number",Nt.signature="number",Ut.signature=ht,_t.signature=ht,Mt.signature=ht;var Ot=Ne("multiplyScalar",["typed"],(function(e){return(0,e.typed)("multiplyScalar",{"number, number":Bt,"Complex, Complex":function(e,t){return e.mul(t)},"BigNumber, BigNumber":function(e,t){return e.times(t)},"Fraction, Fraction":function(e,t){return e.mul(t)},"number | Fraction | BigNumber | Complex, Unit":function(e,t){var A=t.clone();return A.value=null===A.value?A._normalize(e):this(A.value,e),A},"Unit, number | Fraction | BigNumber | Complex":function(e,t){var A=e.clone();return A.value=null===A.value?A._normalize(t):this(A.value,t),A},"Unit, Unit":function(e,t){return e.multiply(t)}})}));var Lt="number, number";function Tt(e,t){if(!z(e)||!z(t))throw new Error("Integers expected in function bitAnd");return e&t}function Zt(e){if(!z(e))throw new Error("Integer expected in function bitNot");return~e}function Ht(e,t){if(!z(e)||!z(t))throw new Error("Integers expected in function bitOr");return e|t}function Yt(e,t){if(!z(e)||!z(t))throw new Error("Integers expected in function bitXor");return e^t}function Jt(e,t){if(!z(e)||!z(t))throw new Error("Integers expected in function leftShift");return e<<t}function jt(e,t){if(!z(e)||!z(t))throw new Error("Integers expected in function rightArithShift");return e>>t}function Pt(e,t){if(!z(e)||!z(t))throw new Error("Integers expected in function rightLogShift");return e>>>t}Tt.signature=Lt,Zt.signature="number",Ht.signature=Lt,Yt.signature=Lt,Jt.signature=Lt,jt.signature=Lt,Pt.signature=Lt;function Vt(e){return!e}function Kt(e,t){return!(!e&&!t)}function Wt(e,t){return!!e!==!!t}function Xt(e,t){return!(!e||!t)}Vt.signature="number",Kt.signature="number, number",Wt.signature="number, number",Xt.signature="number, number";Math.pow(2,53);var qt=Ne("format",["typed"],(function(e){return(0,e.typed)("format",{any:Qe,"any, Object | function | number":Qe})}));Ne("oct",["typed","format"],(function(e){var t=e.typed,A=e.format;return t("oct",{"number | BigNumber":function(e){return A(e,{notation:"oct"})},"number | BigNumber, number":function(e,t){return A(e,{notation:"oct",wordSize:t})}})}));function zt(e){return Ie(e)}function $t(e){return Math.atan(1/e)}function eA(e){return isFinite(e)?(Math.log((e+1)/e)+Math.log(e/(e-1)))/2:0}function tA(e){return Math.asin(1/e)}function AA(e){var t=1/e;return Math.log(t+Math.sqrt(t*t+1))}function nA(e){return Math.acos(1/e)}function rA(e){var t=1/e,A=Math.sqrt(t*t-1);return Math.log(A+t)}function iA(e){return Ce(e)}function oA(e){return he(e)}function aA(e){return 1/Math.tan(e)}function sA(e){var t=Math.exp(2*e);return(t+1)/(t-1)}function gA(e){return 1/Math.sin(e)}function cA(e){return 0===e?Number.POSITIVE_INFINITY:Math.abs(2/(Math.exp(e)-Math.exp(-e)))*$(e)}function uA(e){return 1/Math.cos(e)}function lA(e){return 2/(Math.exp(e)+Math.exp(-e))}function IA(e){return fe(e)}zt.signature="number",$t.signature="number",eA.signature="number",tA.signature="number",AA.signature="number",nA.signature="number",rA.signature="number",iA.signature="number",oA.signature="number",aA.signature="number",sA.signature="number",gA.signature="number",cA.signature="number",uA.signature="number",lA.signature="number",IA.signature="number";function CA(e,t){if(t<e)return 1;if(t===e)return t;var A=t+e>>1;return CA(e,A)*CA(A+1,t)}function hA(e,t){if(!z(e)||e<0)throw new TypeError("Positive integer value expected in function combinations");if(!z(t)||t<0)throw new TypeError("Positive integer value expected in function combinations");if(t>e)throw new TypeError("k must be less than or equal to n");var A=e-t;return t<A?CA(A+1,e)/CA(1,t):CA(t+1,e)/CA(1,A)}hA.signature="number, number";var fA=A(518),dA=A.n(fA);Date.now();var BA=Ne("fraction",["typed","Fraction"],(function(e){var t=e.typed,A=e.Fraction;return t("fraction",{number:function(e){if(!isFinite(e)||isNaN(e))throw new Error(e+" cannot be represented as a fraction");return new A(e)},string:function(e){return new A(e)},"number, number":function(e,t){return new A(e,t)},null:function(e){return new A(0)},BigNumber:function(e){return new A(e.toString())},Fraction:function(e){return e},Object:function(e){return new A(e)},"Array | Matrix":function(e){return it(e,this)}})})),pA=Ne("unaryMinus",["typed"],(function(e){return(0,e.typed)("unaryMinus",{number:pt,Complex:function(e){return e.neg()},BigNumber:function(e){return e.neg()},Fraction:function(e){return e.neg()},Unit:function(e){var t=e.clone();return t.value=this(e.value),t},"Array | Matrix":function(e){return it(e,this,!0)}})})),EA=Ne("addScalar",["typed"],(function(e){return(0,e.typed)("addScalar",{"number, number":dt,"Complex, Complex":function(e,t){return e.add(t)},"BigNumber, BigNumber":function(e,t){return e.plus(t)},"Fraction, Fraction":function(e,t){return e.add(t)},"Unit, Unit":function(e,t){if(null===e.value||void 0===e.value)throw new Error("Parameter x contains a unit with undefined value");if(null===t.value||void 0===t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var A=e.clone();return A.value=this(A.value,t.value),A.fixPrefix=!1,A}})})),QA=Ne("conj",["typed"],(function(e){return(0,e.typed)("conj",{number:function(e){return e},BigNumber:function(e){return e},Complex:function(e){return e.conjugate()},"Array | Matrix":function(e){return it(e,this)}})}));Ne("bin",["typed","format"],(function(e){var t=e.typed,A=e.format;return t("bin",{"number | BigNumber":function(e){return A(e,{notation:"bin"})},"number | BigNumber, number":function(e,t){return A(e,{notation:"bin",wordSize:t})}})}));var yA=Ne("SparseMatrix",["typed","equalScalar","Matrix"],(function(e){var t=e.typed,A=e.equalScalar,n=e.Matrix;function o(e,t){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");if(t&&!g(t))throw new Error("Invalid datatype: "+t);if(u(e))!function(e,t,A){"SparseMatrix"===t.type?(e._values=t._values?Y(t._values):void 0,e._index=Y(t._index),e._ptr=Y(t._ptr),e._size=Y(t._size),e._datatype=A||t._datatype):a(e,t.valueOf(),A||t._datatype)}(this,e,t);else if(e&&c(e.index)&&c(e.ptr)&&c(e.size))this._values=e.values,this._index=e.index,this._ptr=e.ptr,this._size=e.size,this._datatype=t||e.datatype;else if(c(e))a(this,e,t);else{if(e)throw new TypeError("Unsupported type of data ("+H(e)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=t}}function a(e,n,r){e._values=[],e._index=[],e._ptr=[],e._datatype=r;var i=n.length,o=0,a=A,s=0;if(g(r)&&(a=t.find(A,[r,r])||A,s=t.convert(0,r)),i>0){var u=0;do{e._ptr.push(e._index.length);for(var l=0;l<i;l++){var I=n[l];if(c(I)){if(0===u&&o<I.length&&(o=I.length),u<I.length){var C=I[u];a(C,s)||(e._values.push(C),e._index.push(l))}}else 0===u&&o<1&&(o=1),a(I,s)||(e._values.push(I),e._index.push(l))}u++}while(u<o)}e._ptr.push(e._index.length),e._size=[i,o]}function s(e,t){if(!f(t))throw new TypeError("Invalid index");if(t.isScalar())return e.get(t.min());var A,n,r,i,a=t.size();if(a.length!==e._size.length)throw new ye(a.length,e._size.length);var s=t.min(),g=t.max();for(A=0,n=e._size.length;A<n;A++)we(s[A],e._size[A]),we(g[A],e._size[A]);var c=e._values,u=e._index,l=e._ptr,I=t.dimension(0),C=t.dimension(1),h=[],d=[];I.forEach((function(e,t){d[e]=t[0],h[e]=!0}));var B=c?[]:void 0,p=[],E=[];return C.forEach((function(e){for(E.push(p.length),r=l[e],i=l[e+1];r<i;r++)A=u[r],!0===h[A]&&(p.push(d[A]),B&&B.push(c[r]))})),E.push(p.length),new o({values:B,index:p,ptr:E,size:a,datatype:e._datatype})}function I(e,t,A,n){if(!t||!0!==t.isIndex)throw new TypeError("Invalid index");var r,i=t.size(),o=t.isScalar();if(u(A)?(r=A.size(),A=A.toArray()):r=me(A),o){if(0!==r.length)throw new TypeError("Scalar expected");e.set(t.min(),A,n)}else{if(1!==i.length&&2!==i.length)throw new ye(i.length,e._size.length,"<");if(r.length<i.length){for(var a=0,s=0;1===i[a]&&1===r[a];)a++;for(;1===i[a];)s++,a++;A=Ge(A,i.length,s,r)}if(!P(i,r))throw new ye(i,r,">");for(var g=t.min()[0],c=t.min()[1],l=r[0],I=r[1],C=0;C<l;C++)for(var h=0;h<I;h++){var f=A[C][h];e.set([C+g,h+c],f,n)}}return e}function C(e,t,A,n){if(A-t===0)return A;for(var r=t;r<A;r++)if(n[r]===e)return r;return t}function h(e,t,A,n,r,i,o){r.splice(e,0,n),i.splice(e,0,t);for(var a=A+1;a<o.length;a++)o[a]++}function d(e,n,r,i){var o=i||0,a=A,s=0;g(e._datatype)&&(a=t.find(A,[e._datatype,e._datatype])||A,s=t.convert(0,e._datatype),o=t.convert(o,e._datatype));var c,u,l,I=!a(o,s),C=e._size[0],h=e._size[1];if(r>h){for(u=h;u<r;u++)if(e._ptr[u]=e._values.length,I)for(c=0;c<C;c++)e._values.push(o),e._index.push(c);e._ptr[r]=e._values.length}else r<h&&(e._ptr.splice(r+1,h-r),e._values.splice(e._ptr[r],e._values.length),e._index.splice(e._ptr[r],e._index.length));if(h=r,n>C){if(I){var f=0;for(u=0;u<h;u++){e._ptr[u]=e._ptr[u]+f,l=e._ptr[u+1]+f;var d=0;for(c=C;c<n;c++,d++)e._values.splice(l+d,0,o),e._index.splice(l+d,0,c),f++}e._ptr[h]=e._values.length}}else if(n<C){var B=0;for(u=0;u<h;u++){e._ptr[u]=e._ptr[u]-B;var p=e._ptr[u],E=e._ptr[u+1]-B;for(l=p;l<E;l++)(c=e._index[l])>n-1&&(e._values.splice(l,1),e._index.splice(l,1),B++)}e._ptr[u]=e._values.length}return e._size[0]=n,e._size[1]=r,e}function B(e,t,A,n,r){var i,o,a=n[0],s=n[1],g=[];for(i=0;i<a;i++)for(g[i]=[],o=0;o<s;o++)g[i][o]=0;for(o=0;o<s;o++)for(var c=A[o],u=A[o+1],l=c;l<u;l++)g[i=t[l]][o]=e?r?Y(e[l]):e[l]:1;return g}return o.prototype=new n,o.prototype.createSparseMatrix=function(e,t){return new o(e,t)},o.prototype.type="SparseMatrix",o.prototype.isSparseMatrix=!0,o.prototype.getDataType=function(){return xe(this._values,H)},o.prototype.storage=function(){return"sparse"},o.prototype.datatype=function(){return this._datatype},o.prototype.create=function(e,t){return new o(e,t)},o.prototype.density=function(){var e=this._size[0],t=this._size[1];return 0!==e&&0!==t?this._index.length/(e*t):0},o.prototype.subset=function(e,t,A){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return s(this,e);case 2:case 3:return I(this,e,t,A);default:throw new SyntaxError("Wrong number of arguments")}},o.prototype.get=function(e){if(!c(e))throw new TypeError("Array expected");if(e.length!==this._size.length)throw new ye(e.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var t=e[0],A=e[1];we(t,this._size[0]),we(A,this._size[1]);var n=C(t,this._ptr[A],this._ptr[A+1],this._index);return n<this._ptr[A+1]&&this._index[n]===t?this._values[n]:0},o.prototype.set=function(e,n,r){if(!c(e))throw new TypeError("Array expected");if(e.length!==this._size.length)throw new ye(e.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var i=e[0],o=e[1],a=this._size[0],s=this._size[1],u=A,l=0;g(this._datatype)&&(u=t.find(A,[this._datatype,this._datatype])||A,l=t.convert(0,this._datatype)),(i>a-1||o>s-1)&&(d(this,Math.max(i+1,a),Math.max(o+1,s),r),a=this._size[0],s=this._size[1]),we(i,a),we(o,s);var I=C(i,this._ptr[o],this._ptr[o+1],this._index);return I<this._ptr[o+1]&&this._index[I]===i?u(n,l)?function(e,t,A,n,r){A.splice(e,1),n.splice(e,1);for(var i=t+1;i<r.length;i++)r[i]--}(I,o,this._values,this._index,this._ptr):this._values[I]=n:h(I,i,o,n,this._values,this._index,this._ptr),this},o.prototype.resize=function(e,t,A){if(!l(e))throw new TypeError("Array or Matrix expected");var n=e.valueOf().map((function(e){return Array.isArray(e)&&1===e.length?e[0]:e}));if(2!==n.length)throw new Error("Only two dimensions matrix are supported");return n.forEach((function(e){if(!r(e)||!z(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+Qe(n)+")")})),d(A?this.clone():this,n[0],n[1],t)},o.prototype.reshape=function(e,t){if(!c(e))throw new TypeError("Array expected");if(2!==e.length)throw new Error("Sparse matrices can only be reshaped in two dimensions");e.forEach((function(t){if(!r(t)||!z(t)||t<=-2||0===t)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+Qe(e)+")")}));var A=this._size[0]*this._size[1];if(A!==(e=Re(e,A))[0]*e[1])throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var n=t?this.clone():this;if(this._size[0]===e[0]&&this._size[1]===e[1])return n;for(var i=[],o=0;o<n._ptr.length;o++)for(var a=0;a<n._ptr[o+1]-n._ptr[o];a++)i.push(o);for(var s=n._values.slice(),g=n._index.slice(),u=0;u<n._index.length;u++){var l=g[u],I=i[u],f=l*n._size[1]+I;i[u]=f%e[1],g[u]=Math.floor(f/e[1])}n._values.length=0,n._index.length=0,n._ptr.length=e[1]+1,n._size=e.slice();for(var d=0;d<n._ptr.length;d++)n._ptr[d]=0;for(var B=0;B<s.length;B++){var p=g[B],E=i[B],Q=s[B];h(C(p,n._ptr[E],n._ptr[E+1],n._index),p,E,Q,n._values,n._index,n._ptr)}return n},o.prototype.clone=function(){return new o({values:this._values?Y(this._values):void 0,index:Y(this._index),ptr:Y(this._ptr),size:Y(this._size),datatype:this._datatype})},o.prototype.size=function(){return this._size.slice(0)},o.prototype.map=function(e,n){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var r=this;return function(e,n,r,i,a,s,c){var u=[],l=[],I=[],C=A,h=0;g(e._datatype)&&(C=t.find(A,[e._datatype,e._datatype])||A,h=t.convert(0,e._datatype));for(var f=function(e,t,A){e=s(e,t,A),C(e,h)||(u.push(e),l.push(t))},d=i;d<=a;d++){I.push(u.length);var B=e._ptr[d],p=e._ptr[d+1];if(c)for(var E=B;E<p;E++){var Q=e._index[E];Q>=n&&Q<=r&&f(e._values[E],Q-n,d-i)}else{for(var y={},v=B;v<p;v++){var m=e._index[v];y[m]=e._values[v]}for(var b=n;b<=r;b++){var w=b in y?y[b]:0;f(w,b-n,d-i)}}}return I.push(u.length),new o({values:u,index:l,ptr:I,size:[r-n+1,a-i+1]})}(this,0,this._size[0]-1,0,this._size[1]-1,(function(t,A,n){return e(t,[A,n],r)}),n)},o.prototype.forEach=function(e,t){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var A=this._size[0],n=this._size[1],r=0;r<n;r++){var i=this._ptr[r],o=this._ptr[r+1];if(t)for(var a=i;a<o;a++){var s=this._index[a];e(this._values[a],[s,r],this)}else{for(var g={},c=i;c<o;c++){g[this._index[c]]=this._values[c]}for(var u=0;u<A;u++){e(u in g?g[u]:0,[u,r],this)}}}},o.prototype.toArray=function(){return B(this._values,this._index,this._ptr,this._size,!0)},o.prototype.valueOf=function(){return B(this._values,this._index,this._ptr,this._size,!1)},o.prototype.format=function(e){for(var t=this._size[0],A=this._size[1],n=this.density(),r="Sparse Matrix ["+Qe(t,e)+" x "+Qe(A,e)+"] density: "+Qe(n,e)+"\n",i=0;i<A;i++)for(var o=this._ptr[i],a=this._ptr[i+1],s=o;s<a;s++){r+="\n ("+Qe(this._index[s],e)+", "+Qe(i,e)+") ==> "+(this._values?Qe(this._values[s],e):"X")}return r},o.prototype.toString=function(){return Qe(this.toArray())},o.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},o.prototype.diagonal=function(e){if(e){if(i(e)&&(e=e.toNumber()),!r(e)||!z(e))throw new TypeError("The parameter k must be an integer number")}else e=0;var t=e>0?e:0,A=e<0?-e:0,n=this._size[0],a=this._size[1],s=Math.min(n-A,a-t),g=[],c=[],u=[];u[0]=0;for(var l=t;l<a&&g.length<s;l++)for(var I=this._ptr[l],C=this._ptr[l+1],h=I;h<C;h++){var f=this._index[h];if(f===l-t+A){g.push(this._values[h]),c[g.length-1]=f-A;break}}return u.push(g.length),new o({values:g,index:c,ptr:u,size:[s,1]})},o.fromJSON=function(e){return new o(e)},o.diagonal=function(e,n,a,s,l){if(!c(e))throw new TypeError("Array expected, size parameter");if(2!==e.length)throw new Error("Only two dimensions matrix are supported");if(e=e.map((function(e){if(i(e)&&(e=e.toNumber()),!r(e)||!z(e)||e<1)throw new Error("Size values must be positive integers");return e})),a){if(i(a)&&(a=a.toNumber()),!r(a)||!z(a))throw new TypeError("The parameter k must be an integer number")}else a=0;var I=A,C=0;g(l)&&(I=t.find(A,[l,l])||A,C=t.convert(0,l));var h,f=a>0?a:0,d=a<0?-a:0,B=e[0],p=e[1],E=Math.min(B-d,p-f);if(c(n)){if(n.length!==E)throw new Error("Invalid value array length");h=function(e){return n[e]}}else if(u(n)){var Q=n.size();if(1!==Q.length||Q[0]!==E)throw new Error("Invalid matrix length");h=function(e){return n.get([e])}}else h=function(){return n};for(var y=[],v=[],m=[],b=0;b<p;b++){m.push(y.length);var w=b-f;if(w>=0&&w<E){var S=h(w);I(S,C)||(v.push(w+d),y.push(S))}}return m.push(y.length),new o({values:y,index:v,ptr:m,size:[B,p]})},o.prototype.swapRows=function(e,t){if(!r(e)||!z(e)||!r(t)||!z(t))throw new Error("Row index must be positive integers");if(2!==this._size.length)throw new Error("Only two dimensional matrix is supported");return we(e,this._size[0]),we(t,this._size[0]),o._swapRows(e,t,this._size[1],this._values,this._index,this._ptr),this},o._forEachRow=function(e,t,A,n,r){for(var i=n[e],o=n[e+1],a=i;a<o;a++)r(A[a],t[a])},o._swapRows=function(e,t,A,n,r,i){for(var o=0;o<A;o++){var a=i[o],s=i[o+1],g=C(e,a,s,r),c=C(t,a,s,r);if(g<s&&c<s&&r[g]===e&&r[c]===t){if(n){var u=n[g];n[g]=n[c],n[c]=u}}else if(g<s&&r[g]===e&&(c>=s||r[c]!==t)){var l=n?n[g]:void 0;r.splice(c,0,t),n&&n.splice(c,0,l),r.splice(c<=g?g+1:g,1),n&&n.splice(c<=g?g+1:g,1)}else if(c<s&&r[c]===t&&(g>=s||r[g]!==e)){var I=n?n[c]:void 0;r.splice(g,0,e),n&&n.splice(g,0,I),r.splice(g<=c?c+1:c,1),n&&n.splice(g<=c?c+1:c,1)}}},o}),{isClass:!0}),vA=Ne("matrix",["typed","Matrix","DenseMatrix","SparseMatrix"],(function(e){var t=e.typed,A=(e.Matrix,e.DenseMatrix),n=e.SparseMatrix;return t("matrix",{"":function(){return r([])},string:function(e){return r([],e)},"string, string":function(e,t){return r([],e,t)},Array:function(e){return r(e)},Matrix:function(e){return r(e,e.storage())},"Array | Matrix, string":r,"Array | Matrix, string, string":r});function r(e,t,r){if("dense"===t||"default"===t||void 0===t)return new A(e,r);if("sparse"===t)return new n(e,r);throw new TypeError("Unknown matrix type "+JSON.stringify(t)+".")}})),mA=Ne("algorithm01",["typed"],(function(e){var t=e.typed;return function(e,A,n,r){var i=e._data,o=e._size,a=e._datatype,s=A._values,g=A._index,c=A._ptr,u=A._size,l=A._datatype;if(o.length!==u.length)throw new ye(o.length,u.length);if(o[0]!==u[0]||o[1]!==u[1])throw new RangeError("Dimension mismatch. Matrix A ("+o+") must match Matrix B ("+u+")");if(!s)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var I,C,h=o[0],f=o[1],d="string"===typeof a&&a===l?a:void 0,B=d?t.find(n,[d,d]):n,p=[];for(I=0;I<h;I++)p[I]=[];var E=[],Q=[];for(C=0;C<f;C++){for(var y=C+1,v=c[C],m=c[C+1],b=v;b<m;b++)E[I=g[b]]=r?B(s[b],i[I][C]):B(i[I][C],s[b]),Q[I]=y;for(I=0;I<h;I++)Q[I]===y?p[I][C]=E[I]:p[I][C]=i[I][C]}return e.createDenseMatrix({data:p,size:[h,f],datatype:d})}})),bA=Ne("algorithm10",["typed","DenseMatrix"],(function(e){var t=e.typed,A=e.DenseMatrix;return function(e,n,r,i){var o=e._values,a=e._index,s=e._ptr,g=e._size,c=e._datatype;if(!o)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var u,l=g[0],I=g[1],C=r;"string"===typeof c&&(u=c,n=t.convert(n,u),C=t.find(r,[u,u]));for(var h=[],f=[],d=[],B=0;B<I;B++){for(var p=B+1,E=s[B],Q=s[B+1],y=E;y<Q;y++){var v=a[y];f[v]=o[y],d[v]=p}for(var m=0;m<l;m++)0===B&&(h[m]=[]),d[m]===p?h[m][B]=i?C(n,f[m]):C(f[m],n):h[m][B]=n}return new A({data:h,size:[l,I],datatype:u})}})),wA=Ne("algorithm13",["typed"],(function(e){var t=e.typed;return function(e,A,n){var r,i=e._data,o=e._size,a=e._datatype,s=A._data,g=A._size,c=A._datatype,u=[];if(o.length!==g.length)throw new ye(o.length,g.length);for(var l=0;l<o.length;l++){if(o[l]!==g[l])throw new RangeError("Dimension mismatch. Matrix A ("+o+") must match Matrix B ("+g+")");u[l]=o[l]}var I=n;"string"===typeof a&&a===c&&(r=a,I=t.find(n,[r,r]));var C=u.length>0?function e(t,A,n,r,i,o){var a=[];if(A===n.length-1)for(var s=0;s<r;s++)a[s]=t(i[s],o[s]);else for(var g=0;g<r;g++)a[g]=e(t,A+1,n,n[A+1],i[g],o[g]);return a}(I,0,u,u[0],i,s):[];return e.createDenseMatrix({data:C,size:u,datatype:r})}})),SA=Ne("algorithm14",["typed"],(function(e){var t=e.typed;return function(e,A,n,r){var i,o=e._data,a=e._size,s=e._datatype,g=n;"string"===typeof s&&(i=s,A=t.convert(A,i),g=t.find(n,[i,i]));var c=a.length>0?function e(t,A,n,r,i,o,a){var s=[];if(A===n.length-1)for(var g=0;g<r;g++)s[g]=a?t(o,i[g]):t(i[g],o);else for(var c=0;c<r;c++)s[c]=e(t,A+1,n,n[A+1],i[c],o,a);return s}(g,0,a,a[0],o,A,r):[];return e.createDenseMatrix({data:c,size:Y(a),datatype:i})}})),FA=Ne("algorithm03",["typed"],(function(e){var t=e.typed;return function(e,A,n,r){var i=e._data,o=e._size,a=e._datatype,s=A._values,g=A._index,c=A._ptr,u=A._size,l=A._datatype;if(o.length!==u.length)throw new ye(o.length,u.length);if(o[0]!==u[0]||o[1]!==u[1])throw new RangeError("Dimension mismatch. Matrix A ("+o+") must match Matrix B ("+u+")");if(!s)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var I,C=o[0],h=o[1],f=0,d=n;"string"===typeof a&&a===l&&(I=a,f=t.convert(0,I),d=t.find(n,[I,I]));for(var B=[],p=0;p<C;p++)B[p]=[];for(var E=[],Q=[],y=0;y<h;y++){for(var v=y+1,m=c[y],b=c[y+1],w=m;w<b;w++){var S=g[w];E[S]=r?d(s[w],i[S][y]):d(i[S][y],s[w]),Q[S]=v}for(var F=0;F<C;F++)Q[F]===v?B[F][y]=E[F]:B[F][y]=r?d(f,i[F][y]):d(i[F][y],f)}return e.createDenseMatrix({data:B,size:[C,h],datatype:I})}})),RA=Ne("algorithm05",["typed","equalScalar"],(function(e){var t=e.typed,A=e.equalScalar;return function(e,n,r){var i=e._values,o=e._index,a=e._ptr,s=e._size,g=e._datatype,c=n._values,u=n._index,l=n._ptr,I=n._size,C=n._datatype;if(s.length!==I.length)throw new ye(s.length,I.length);if(s[0]!==I[0]||s[1]!==I[1])throw new RangeError("Dimension mismatch. Matrix A ("+s+") must match Matrix B ("+I+")");var h,f=s[0],d=s[1],B=A,p=0,E=r;"string"===typeof g&&g===C&&(h=g,B=t.find(A,[h,h]),p=t.convert(0,h),E=t.find(r,[h,h]));var Q,y,v,m,b=i&&c?[]:void 0,w=[],S=[],F=b?[]:void 0,R=b?[]:void 0,D=[],G=[];for(y=0;y<d;y++){S[y]=w.length;var k=y+1;for(v=a[y],m=a[y+1];v<m;v++)Q=o[v],w.push(Q),D[Q]=k,F&&(F[Q]=i[v]);for(v=l[y],m=l[y+1];v<m;v++)D[Q=u[v]]!==k&&w.push(Q),G[Q]=k,R&&(R[Q]=c[v]);if(b)for(v=S[y];v<w.length;){var x=D[Q=w[v]],N=G[Q];if(x===k||N===k){var U=E(x===k?F[Q]:p,N===k?R[Q]:p);B(U,p)?w.splice(v,1):(b.push(U),v++)}}}return S[d]=w.length,e.createSparseMatrix({values:b,index:w,ptr:S,size:[f,d],datatype:h})}})),DA=Ne("algorithm11",["typed","equalScalar"],(function(e){var t=e.typed,A=e.equalScalar;return function(e,n,r,i){var o=e._values,a=e._index,s=e._ptr,g=e._size,c=e._datatype;if(!o)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var u,l=g[0],I=g[1],C=A,h=0,f=r;"string"===typeof c&&(u=c,C=t.find(A,[u,u]),h=t.convert(0,u),n=t.convert(n,u),f=t.find(r,[u,u]));for(var d=[],B=[],p=[],E=0;E<I;E++){p[E]=B.length;for(var Q=s[E],y=s[E+1],v=Q;v<y;v++){var m=a[v],b=i?f(n,o[v]):f(o[v],n);C(b,h)||(B.push(m),d.push(b))}}return p[I]=B.length,e.createSparseMatrix({values:d,index:B,ptr:p,size:[l,I],datatype:u})}})),GA=Ne("algorithm12",["typed","DenseMatrix"],(function(e){var t=e.typed,A=e.DenseMatrix;return function(e,n,r,i){var o=e._values,a=e._index,s=e._ptr,g=e._size,c=e._datatype;if(!o)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var u,l=g[0],I=g[1],C=r;"string"===typeof c&&(u=c,n=t.convert(n,u),C=t.find(r,[u,u]));for(var h=[],f=[],d=[],B=0;B<I;B++){for(var p=B+1,E=s[B],Q=s[B+1],y=E;y<Q;y++){var v=a[y];f[v]=o[y],d[v]=p}for(var m=0;m<l;m++)0===B&&(h[m]=[]),d[m]===p?h[m][B]=i?C(n,f[m]):C(f[m],n):h[m][B]=i?C(n,0):C(0,n)}return new A({data:h,size:[l,I],datatype:u})}})),kA=Ne("algorithm07",["typed","DenseMatrix"],(function(e){var t=e.typed,A=e.DenseMatrix;return function(e,r,i){var o=e._size,a=e._datatype,s=r._size,g=r._datatype;if(o.length!==s.length)throw new ye(o.length,s.length);if(o[0]!==s[0]||o[1]!==s[1])throw new RangeError("Dimension mismatch. Matrix A ("+o+") must match Matrix B ("+s+")");var c,u,l,I=o[0],C=o[1],h=0,f=i;"string"===typeof a&&a===g&&(c=a,h=t.convert(0,c),f=t.find(i,[c,c]));var d=[];for(u=0;u<I;u++)d[u]=[];var B=[],p=[],E=[],Q=[];for(l=0;l<C;l++){var y=l+1;for(n(e,l,E,B,y),n(r,l,Q,p,y),u=0;u<I;u++){var v=E[u]===y?B[u]:h,m=Q[u]===y?p[u]:h;d[u][l]=f(v,m)}}return new A({data:d,size:[I,C],datatype:c})};function n(e,t,A,n,r){for(var i=e._values,o=e._index,a=e._ptr,s=a[t],g=a[t+1];s<g;s++){var c=o[s];A[c]=r,n[c]=i[s]}}}));var xA=Ne("identity",["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],(function(e){var t=e.typed,A=e.config,n=e.matrix,r=e.BigNumber,o=e.DenseMatrix,a=e.SparseMatrix;return t("identity",{"":function(){return"Matrix"===A.matrix?n([]):[]},string:function(e){return n(e)},"number | BigNumber":function(e){return g(e,e,"Matrix"===A.matrix?"dense":void 0)},"number | BigNumber, string":function(e,t){return g(e,e,t)},"number | BigNumber, number | BigNumber":function(e,t){return g(e,t,"Matrix"===A.matrix?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(e,t,A){return g(e,t,A)},Array:function(e){return s(e)},"Array, string":function(e,t){return s(e,t)},Matrix:function(e){return s(e.valueOf(),e.storage())},"Matrix, string":function(e,t){return s(e.valueOf(),t)}});function s(e,t){switch(e.length){case 0:return t?n(t):[];case 1:return g(e[0],e[0],t);case 2:return g(e[0],e[1],t);default:throw new Error("Vector containing two values expected")}}function g(e,t,A){var n=i(e)||i(t)?r:null;if(i(e)&&(e=e.toNumber()),i(t)&&(t=t.toNumber()),!z(e)||e<1)throw new Error("Parameters in function identity must be positive integers");if(!z(t)||t<1)throw new Error("Parameters in function identity must be positive integers");var s=n?new r(1):1,g=n?new n(0):0,c=[e,t];if(A){if("sparse"===A)return a.diagonal(c,s,0,g);if("dense"===A)return o.diagonal(c,s,0,g);throw new TypeError('Unknown matrix type "'.concat(A,'"'))}for(var u=Se([],c,g),l=e<t?e:t,I=0;I<l;I++)u[I][I]=s;return u}}));function NA(){throw new Error('No "bignumber" implementation available')}function UA(){throw new Error('No "fraction" implementation available')}function _A(){throw new Error('No "matrix" implementation available')}var MA=Ne("size",["typed","config","?matrix"],(function(e){var t=e.typed,A=e.config,n=e.matrix;return t("size",{Matrix:function(e){return e.create(e.size())},Array:me,string:function(e){return"Array"===A.matrix?[e.length]:n([e.length])},"number | Complex | BigNumber | Unit | boolean | null":function(e){return"Array"===A.matrix?[]:n?n([]):_A()}})}));var OA=Ne("zeros",["typed","config","matrix","BigNumber"],(function(e){var t=e.typed,A=e.config,n=e.matrix,r=e.BigNumber;return t("zeros",{"":function(){return"Array"===A.matrix?o([]):o([],"default")},"...number | BigNumber | string":function(e){if("string"===typeof e[e.length-1]){var t=e.pop();return o(e,t)}return"Array"===A.matrix?o(e):o(e,"default")},Array:o,Matrix:function(e){var t=e.storage();return o(e.valueOf(),t)},"Array | Matrix, string":function(e,t){return o(e.valueOf(),t)}});function o(e,t){var A=function(e){var t=!1;return e.forEach((function(e,A,n){i(e)&&(t=!0,n[A]=e.toNumber())})),t}(e)?new r(0):0;if(function(e){e.forEach((function(e){if("number"!==typeof e||!z(e)||e<0)throw new Error("Parameters in function zeros must be positive integers")}))}(e),t){var o=n(t);return e.length>0?o.resize(e,A):o}var a=[];return e.length>0?Se(a,e,A):a}}));Ne("hex",["typed","format"],(function(e){var t=e.typed,A=e.format;return t("hex",{"number | BigNumber":function(e){return A(e,{notation:"hex"})},"number | BigNumber, number":function(e,t){return A(e,{notation:"hex",wordSize:t})}})}));function LA(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function TA(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?LA(Object(A),!0).forEach((function(t){ZA(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):LA(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function ZA(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var HA="Number of decimals in function round must be an integer",YA=Ne("round",["typed","matrix","equalScalar","zeros","BigNumber","DenseMatrix"],(function(e){var t=e.typed,A=e.matrix,n=e.equalScalar,r=e.zeros,i=e.BigNumber,o=e.DenseMatrix,a=DA({typed:t,equalScalar:n}),s=GA({typed:t,DenseMatrix:o}),g=SA({typed:t});return t("round",TA(TA({},JA),{},{Complex:function(e){return e.round()},"Complex, number":function(e,t){if(t%1)throw new TypeError(HA);return e.round(t)},"Complex, BigNumber":function(e,t){if(!t.isInteger())throw new TypeError(HA);var A=t.toNumber();return e.round(A)},"number, BigNumber":function(e,t){if(!t.isInteger())throw new TypeError(HA);return new i(e).toDecimalPlaces(t.toNumber())},BigNumber:function(e){return e.toDecimalPlaces(0)},"BigNumber, BigNumber":function(e,t){if(!t.isInteger())throw new TypeError(HA);return e.toDecimalPlaces(t.toNumber())},Fraction:function(e){return e.round()},"Fraction, number":function(e,t){if(t%1)throw new TypeError(HA);return e.round(t)},"Array | Matrix":function(e){return it(e,this,!0)},"SparseMatrix, number | BigNumber":function(e,t){return a(e,t,this,!1)},"DenseMatrix, number | BigNumber":function(e,t){return g(e,t,this,!1)},"number | Complex | BigNumber, SparseMatrix":function(e,t){return n(e,0)?r(t.size(),t.storage()):s(t,e,this,!0)},"number | Complex | BigNumber, DenseMatrix":function(e,t){return n(e,0)?r(t.size(),t.storage()):g(t,e,this,!0)},"Array, number | BigNumber":function(e,t){return g(A(e),t,this,!1).valueOf()},"number | Complex | BigNumber, Array":function(e,t){return g(A(t),e,this,!0).valueOf()}}))})),JA={number:Mt,"number, number":function(e,t){if(!z(t))throw new TypeError(HA);if(t<0||t>15)throw new Error("Number of decimals in function round must be in te range of 0-15");return Mt(e,t)}},jA=Ne("compare",["typed","config","matrix","equalScalar","BigNumber","Fraction","DenseMatrix"],(function(e){var t=e.typed,A=e.config,n=e.equalScalar,r=e.matrix,i=e.BigNumber,o=e.Fraction,a=e.DenseMatrix,s=FA({typed:t}),g=RA({typed:t,equalScalar:n}),c=GA({typed:t,DenseMatrix:a}),u=wA({typed:t}),l=SA({typed:t});return t("compare",{"boolean, boolean":function(e,t){return e===t?0:e>t?1:-1},"number, number":function(e,t){return le(e,t,A.epsilon)?0:e>t?1:-1},"BigNumber, BigNumber":function(e,t){return lt(e,t,A.epsilon)?new i(0):new i(e.cmp(t))},"Fraction, Fraction":function(e,t){return new o(e.compare(t))},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return g(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return s(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return s(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return u(e,t,this)},"Array, Array":function(e,t){return this(r(e),r(t)).valueOf()},"Array, Matrix":function(e,t){return this(r(e),t)},"Matrix, Array":function(e,t){return this(e,r(t))},"SparseMatrix, any":function(e,t){return c(e,t,this,!1)},"DenseMatrix, any":function(e,t){return l(e,t,this,!1)},"any, SparseMatrix":function(e,t){return c(t,e,this,!0)},"any, DenseMatrix":function(e,t){return l(t,e,this,!0)},"Array, any":function(e,t){return l(r(e),t,this,!1).valueOf()},"any, Array":function(e,t){return l(r(t),e,this,!0).valueOf()}})})),PA=Ne("smaller",["typed","config","matrix","DenseMatrix"],(function(e){var t=e.typed,A=e.config,n=e.matrix,r=e.DenseMatrix,i=FA({typed:t}),o=kA({typed:t,DenseMatrix:r}),a=GA({typed:t,DenseMatrix:r}),s=wA({typed:t}),g=SA({typed:t});return t("smaller",{"boolean, boolean":function(e,t){return e<t},"number, number":function(e,t){return e<t&&!le(e,t,A.epsilon)},"BigNumber, BigNumber":function(e,t){return e.lt(t)&&!lt(e,t,A.epsilon)},"Fraction, Fraction":function(e,t){return-1===e.compare(t)},"Complex, Complex":function(e,t){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return o(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return i(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return i(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return s(e,t,this)},"Array, Array":function(e,t){return this(n(e),n(t)).valueOf()},"Array, Matrix":function(e,t){return this(n(e),t)},"Matrix, Array":function(e,t){return this(e,n(t))},"SparseMatrix, any":function(e,t){return a(e,t,this,!1)},"DenseMatrix, any":function(e,t){return g(e,t,this,!1)},"any, SparseMatrix":function(e,t){return a(t,e,this,!0)},"any, DenseMatrix":function(e,t){return g(t,e,this,!0)},"Array, any":function(e,t){return g(n(e),t,this,!1).valueOf()},"any, Array":function(e,t){return g(n(t),e,this,!0).valueOf()}})})),VA=Ne("larger",["typed","config","matrix","DenseMatrix"],(function(e){var t=e.typed,A=e.config,n=e.matrix,r=e.DenseMatrix,i=FA({typed:t}),o=kA({typed:t,DenseMatrix:r}),a=GA({typed:t,DenseMatrix:r}),s=wA({typed:t}),g=SA({typed:t});return t("larger",{"boolean, boolean":function(e,t){return e>t},"number, number":function(e,t){return e>t&&!le(e,t,A.epsilon)},"BigNumber, BigNumber":function(e,t){return e.gt(t)&&!lt(e,t,A.epsilon)},"Fraction, Fraction":function(e,t){return 1===e.compare(t)},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return o(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return i(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return i(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return s(e,t,this)},"Array, Array":function(e,t){return this(n(e),n(t)).valueOf()},"Array, Matrix":function(e,t){return this(n(e),t)},"Matrix, Array":function(e,t){return this(e,n(t))},"SparseMatrix, any":function(e,t){return a(e,t,this,!1)},"DenseMatrix, any":function(e,t){return g(e,t,this,!1)},"any, SparseMatrix":function(e,t){return a(t,e,this,!0)},"any, DenseMatrix":function(e,t){return g(t,e,this,!0)},"Array, any":function(e,t){return g(n(e),t,this,!1).valueOf()},"any, Array":function(e,t){return g(n(t),e,this,!0).valueOf()}})})),KA=(Ne("unequal",["typed","equalScalar"],(function(e){var t=e.typed,A=e.equalScalar;return t("unequal",{"any, any":function(e,t){return null===e?null!==t:null===t?null!==e:void 0===e?void 0!==t:void 0===t?void 0!==e:!A(e,t)}})})),Ne("FibonacciHeap",["smaller","larger"],(function(e){var t=e.smaller,A=e.larger,n=1/Math.log((1+Math.sqrt(5))/2);function r(){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this._minimum=null,this._size=0}function i(e,t,A){t.left.right=t.right,t.right.left=t.left,A.degree--,A.child===t&&(A.child=t.right),0===A.degree&&(A.child=null),t.left=e,t.right=e.right,e.right=t,t.right.left=t,t.parent=null,t.mark=!1}r.prototype.type="FibonacciHeap",r.prototype.isFibonacciHeap=!0,r.prototype.insert=function(e,A){var n={key:e,value:A,degree:0};if(this._minimum){var r=this._minimum;n.left=r,n.right=r.right,r.right=n,n.right.left=n,t(e,r.key)&&(this._minimum=n)}else n.left=n,n.right=n,this._minimum=n;return this._size++,n},r.prototype.size=function(){return this._size},r.prototype.clear=function(){this._minimum=null,this._size=0},r.prototype.isEmpty=function(){return 0===this._size},r.prototype.extractMinimum=function(){var e=this._minimum;if(null===e)return e;for(var r=this._minimum,i=e.degree,a=e.child;i>0;){var s=a.right;a.left.right=a.right,a.right.left=a.left,a.left=r,a.right=r.right,r.right=a,a.right.left=a,a.parent=null,a=s,i--}return e.left.right=e.right,e.right.left=e.left,r=e===e.right?null:function(e,r){var i,a=Math.floor(Math.log(r)*n)+1,s=new Array(a),g=0,c=e;if(c)for(g++,c=c.right;c!==e;)g++,c=c.right;for(;g>0;){for(var u=c.degree,l=c.right;i=s[u];){if(A(c.key,i.key)){var I=i;i=c,c=I}o(i,c),s[u]=null,u++}s[u]=c,c=l,g--}e=null;for(var C=0;C<a;C++)(i=s[C])&&(e?(i.left.right=i.right,i.right.left=i.left,i.left=e,i.right=e.right,e.right=i,i.right.left=i,t(i.key,e.key)&&(e=i)):e=i);return e}(r=e.right,this._size),this._size--,this._minimum=r,e},r.prototype.remove=function(e){this._minimum=function(e,A,n){A.key=n;var r=A.parent;r&&t(A.key,r.key)&&(i(e,A,r),function e(t,A){var n=A.parent;if(!n)return;A.mark?(i(t,A,n),e(n)):A.mark=!0}(e,r));t(A.key,e.key)&&(e=A);return e}(this._minimum,e,-1),this.extractMinimum()};var o=function(e,t){e.left.right=e.right,e.right.left=e.left,e.parent=t,t.child?(e.left=t.child,e.right=t.child.right,t.child.right=e,e.right.left=e):(t.child=e,e.right=e,e.left=e),t.degree++,e.mark=!1};return r}),{isClass:!0})),WA=Ne("dot",["typed","addScalar","multiplyScalar","conj","size"],(function(e){var t=e.typed,A=e.addScalar,n=e.multiplyScalar,r=e.conj,i=e.size;return t("dot",{"Array | DenseMatrix, Array | DenseMatrix":function(e,i){var s=o(e,i),g=u(e)?e._data:e,c=u(e)?e._datatype:void 0,l=u(i)?i._data:i,I=u(i)?i._datatype:void 0,C=2===a(e).length,h=2===a(i).length,f=A,d=n;if(c&&I&&c===I&&"string"===typeof c){var B=c;f=t.find(A,[B,B]),d=t.find(n,[B,B])}if(!C&&!h){for(var p=d(r(g[0]),l[0]),E=1;E<s;E++)p=f(p,d(r(g[E]),l[E]));return p}if(!C&&h){for(var Q=d(r(g[0]),l[0][0]),y=1;y<s;y++)Q=f(Q,d(r(g[y]),l[y][0]));return Q}if(C&&!h){for(var v=d(r(g[0][0]),l[0]),m=1;m<s;m++)v=f(v,d(r(g[m][0]),l[m]));return v}if(C&&h){for(var b=d(r(g[0][0]),l[0][0]),w=1;w<s;w++)b=f(b,d(r(g[w][0]),l[w][0]));return b}},"SparseMatrix, SparseMatrix":function(e,t){o(e,t);var r=e._index,i=e._values,a=t._index,s=t._values,g=0,c=A,u=n,l=0,I=0;for(;l<r.length&&I<a.length;){var C=r[l],h=a[I];C<h?l++:C>h?I++:C===h&&(g=c(g,u(i[l],s[I])),l++,I++)}return g}});function o(e,t){var A,n,r=a(e),i=a(t);if(1===r.length)A=r[0];else{if(2!==r.length||1!==r[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+r.join(", ")+")");A=r[0]}if(1===i.length)n=i[0];else{if(2!==i.length||1!==i[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+i.join(", ")+")");n=i[0]}if(A!==n)throw new RangeError("Vectors must have equal length ("+A+" != "+n+")");if(0===A)throw new RangeError("Cannot calculate the dot product of empty vectors");return A}function a(e){return u(e)?e.size():i(e)}})),XA=Ne("abs",["typed"],(function(e){return(0,e.typed)("abs",{number:ft,Complex:function(e){return e.abs()},BigNumber:function(e){return e.abs()},Fraction:function(e){return e.abs()},"Array | Matrix":function(e){return it(e,this,!0)},Unit:function(e){return e.abs()}})})),qA=A(8),zA=Ne("floor",["typed","config","round","matrix","equalScalar"],(function(e){var t=e.typed,A=e.config,n=e.round,r=e.matrix,i=e.equalScalar,o=DA({typed:t,equalScalar:i}),a=SA({typed:t});return t("floor",{number:function(e){return le(e,n(e),A.epsilon)?n(e):Math.floor(e)},"number, number":function(e,t){if(le(e,n(e,t),A.epsilon))return n(e,t);var r="".concat(e,"e").split("e"),i=Object(qA.a)(r,2),o=i[0],a=i[1],s=Math.floor(Number("".concat(o,"e").concat(Number(a)+t))),g="".concat(s,"e").split("e"),c=Object(qA.a)(g,2);return o=c[0],a=c[1],Number("".concat(o,"e").concat(Number(a)-t))},Complex:function(e){return e.floor()},"Complex, number":function(e,t){return e.floor(t)},BigNumber:function(e){return lt(e,n(e),A.epsilon)?n(e):e.floor()},"BigNumber, BigNumber":function(e,t){return lt(e,n(e,t),A.epsilon)?n(e,t):e.toDecimalPlaces(t.toNumber(),Je.a.ROUND_FLOOR)},Fraction:function(e){return e.floor()},"Fraction, number":function(e,t){return e.floor(t)},"Array | Matrix":function(e){return it(e,this,!0)},"Array | Matrix, number":function(e,t){var A=this;return it(e,(function(e){return A(e,t)}),!0)},"SparseMatrix, number | BigNumber":function(e,t){return o(e,t,this,!1)},"DenseMatrix, number | BigNumber":function(e,t){return a(e,t,this,!1)},"number | Complex | BigNumber, Array":function(e,t){return a(r(t),e,this,!0).valueOf()}})})),$A=Ne("multiply",["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],(function(e){var t=e.typed,A=e.matrix,n=e.addScalar,r=e.multiplyScalar,i=e.equalScalar,o=e.dot,a=DA({typed:t,equalScalar:i}),s=SA({typed:t});function g(e,t){switch(e.length){case 1:switch(t.length){case 1:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+e[0]+") must match Matrix rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;case 2:switch(t.length){case 1:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+e[1]+") must match Vector length ("+t[0]+")");break;case 2:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+e[1]+") must match Matrix B rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+e.length+" dimensions)")}}function c(e,A){if("dense"!==A.storage())throw new Error("Support for SparseMatrix not implemented");return function(e,A){var i,o=e._data,a=e._size,s=e._datatype,g=A._data,c=A._size,u=A._datatype,l=a[0],I=c[1],C=n,h=r;s&&u&&s===u&&"string"===typeof s&&(i=s,C=t.find(n,[i,i]),h=t.find(r,[i,i]));for(var f=[],d=0;d<I;d++){for(var B=h(o[0],g[0][d]),p=1;p<l;p++)B=C(B,h(o[p],g[p][d]));f[d]=B}return e.createDenseMatrix({data:f,size:[I],datatype:i})}(e,A)}var l=t("_multiplyMatrixVector",{"DenseMatrix, any":function(e,A){var i,o=e._data,a=e._size,s=e._datatype,g=A._data,c=A._datatype,u=a[0],l=a[1],I=n,C=r;s&&c&&s===c&&"string"===typeof s&&(i=s,I=t.find(n,[i,i]),C=t.find(r,[i,i]));for(var h=[],f=0;f<u;f++){for(var d=o[f],B=C(d[0],g[0]),p=1;p<l;p++)B=I(B,C(d[p],g[p]));h[f]=B}return e.createDenseMatrix({data:h,size:[u],datatype:i})},"SparseMatrix, any":function(e,A){var o=e._values,a=e._index,s=e._ptr,g=e._datatype;if(!o)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var c,u=A._data,l=A._datatype,I=e._size[0],C=A._size[0],h=[],f=[],d=[],B=n,p=r,E=i,Q=0;g&&l&&g===l&&"string"===typeof g&&(c=g,B=t.find(n,[c,c]),p=t.find(r,[c,c]),E=t.find(i,[c,c]),Q=t.convert(0,c));var y=[],v=[];d[0]=0;for(var m=0;m<C;m++){var b=u[m];if(!E(b,Q))for(var w=s[m],S=s[m+1],F=w;F<S;F++){var R=a[F];v[R]?y[R]=B(y[R],p(b,o[F])):(v[R]=!0,f.push(R),y[R]=p(b,o[F]))}}for(var D=f.length,G=0;G<D;G++){var k=f[G];h[G]=y[k]}return d[1]=f.length,e.createSparseMatrix({values:h,index:f,ptr:d,size:[I,1],datatype:c})}}),I=t("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":function(e,A){var i,o=e._data,a=e._size,s=e._datatype,g=A._data,c=A._size,u=A._datatype,l=a[0],I=a[1],C=c[1],h=n,f=r;s&&u&&s===u&&"string"===typeof s&&(i=s,h=t.find(n,[i,i]),f=t.find(r,[i,i]));for(var d=[],B=0;B<l;B++){var p=o[B];d[B]=[];for(var E=0;E<C;E++){for(var Q=f(p[0],g[0][E]),y=1;y<I;y++)Q=h(Q,f(p[y],g[y][E]));d[B][E]=Q}}return e.createDenseMatrix({data:d,size:[l,C],datatype:i})},"DenseMatrix, SparseMatrix":function(e,A){var o=e._data,a=e._size,s=e._datatype,g=A._values,c=A._index,u=A._ptr,l=A._size,I=A._datatype;if(!g)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var C,h=a[0],f=l[1],d=n,B=r,p=i,E=0;s&&I&&s===I&&"string"===typeof s&&(C=s,d=t.find(n,[C,C]),B=t.find(r,[C,C]),p=t.find(i,[C,C]),E=t.convert(0,C));for(var Q=[],y=[],v=[],m=A.createSparseMatrix({values:Q,index:y,ptr:v,size:[h,f],datatype:C}),b=0;b<f;b++){v[b]=y.length;var w=u[b],S=u[b+1];if(S>w)for(var F=0,R=0;R<h;R++){for(var D=R+1,G=void 0,k=w;k<S;k++){var x=c[k];F!==D?(G=B(o[R][x],g[k]),F=D):G=d(G,B(o[R][x],g[k]))}F!==D||p(G,E)||(y.push(R),Q.push(G))}}return v[f]=y.length,m},"SparseMatrix, DenseMatrix":function(e,A){var o=e._values,a=e._index,s=e._ptr,g=e._datatype;if(!o)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var c,u=A._data,l=A._datatype,I=e._size[0],C=A._size[0],h=A._size[1],f=n,d=r,B=i,p=0;g&&l&&g===l&&"string"===typeof g&&(c=g,f=t.find(n,[c,c]),d=t.find(r,[c,c]),B=t.find(i,[c,c]),p=t.convert(0,c));for(var E=[],Q=[],y=[],v=e.createSparseMatrix({values:E,index:Q,ptr:y,size:[I,h],datatype:c}),m=[],b=[],w=0;w<h;w++){y[w]=Q.length;for(var S=w+1,F=0;F<C;F++){var R=u[F][w];if(!B(R,p))for(var D=s[F],G=s[F+1],k=D;k<G;k++){var x=a[k];b[x]!==S?(b[x]=S,Q.push(x),m[x]=d(R,o[k])):m[x]=f(m[x],d(R,o[k]))}}for(var N=y[w],U=Q.length,_=N;_<U;_++){var M=Q[_];E[_]=m[M]}}return y[h]=Q.length,v},"SparseMatrix, SparseMatrix":function(e,A){var i,o=e._values,a=e._index,s=e._ptr,g=e._datatype,c=A._values,u=A._index,l=A._ptr,I=A._datatype,C=e._size[0],h=A._size[1],f=o&&c,d=n,B=r;g&&I&&g===I&&"string"===typeof g&&(i=g,d=t.find(n,[i,i]),B=t.find(r,[i,i]));for(var p,E,Q,y,v,m,b,w,S=f?[]:void 0,F=[],R=[],D=e.createSparseMatrix({values:S,index:F,ptr:R,size:[C,h],datatype:i}),G=f?[]:void 0,k=[],x=0;x<h;x++){R[x]=F.length;var N=x+1;for(v=l[x],m=l[x+1],y=v;y<m;y++)if(w=u[y],f)for(E=s[w],Q=s[w+1],p=E;p<Q;p++)b=a[p],k[b]!==N?(k[b]=N,F.push(b),G[b]=B(c[y],o[p])):G[b]=d(G[b],B(c[y],o[p]));else for(E=s[w],Q=s[w+1],p=E;p<Q;p++)b=a[p],k[b]!==N&&(k[b]=N,F.push(b));if(f)for(var U=R[x],_=F.length,M=U;M<_;M++){var O=F[M];S[M]=G[O]}}return R[h]=F.length,D}});return t("multiply",j({"Array, Array":function(e,t){g(me(e),me(t));var n=this(A(e),A(t));return u(n)?n.valueOf():n},"Matrix, Matrix":function(e,t){var A=e.size(),n=t.size();return g(A,n),1===A.length?1===n.length?function(e,t,A){if(0===A)throw new Error("Cannot multiply two empty vectors");return o(e,t)}(e,t,A[0]):c(e,t):1===n.length?l(e,t):I(e,t)},"Matrix, Array":function(e,t){return this(e,A(t))},"Array, Matrix":function(e,t){return this(A(e,t.storage()),t)},"SparseMatrix, any":function(e,t){return a(e,t,r,!1)},"DenseMatrix, any":function(e,t){return s(e,t,r,!1)},"any, SparseMatrix":function(e,t){return a(t,e,r,!0)},"any, DenseMatrix":function(e,t){return s(t,e,r,!0)},"Array, any":function(e,t){return s(A(e),t,r,!1).valueOf()},"any, Array":function(e,t){return s(A(t),e,r,!0).valueOf()},"any, any":r,"any, any, ...any":function(e,t,A){for(var n=this(e,t),r=0;r<A.length;r++)n=this(n,A[r]);return n}},r.signatures))}));function en(e,t,A,n){if(!(this instanceof en))throw new SyntaxError("Constructor must be called with the new operator");this.fn=e,this.count=t,this.min=A,this.max=n,this.message="Wrong number of arguments in function "+e+" ("+t+" provided, "+A+(void 0!==n&&null!==n?"-"+n:"")+" expected)",this.stack=(new Error).stack}en.prototype=new Error,en.prototype.constructor=Error,en.prototype.name="ArgumentsError",en.prototype.isArgumentsError=!0;var tn=Ne("pow",["typed","config","identity","multiply","matrix","fraction","number","Complex"],(function(e){var t=e.typed,A=e.config,n=e.identity,r=e.multiply,i=e.matrix,o=e.number,a=e.fraction,s=e.Complex;return t("pow",{"number, number":g,"Complex, Complex":function(e,t){return e.pow(t)},"BigNumber, BigNumber":function(e,t){return t.isInteger()||e>=0||A.predictable?e.pow(t):new s(e.toNumber(),0).pow(t.toNumber(),0)},"Fraction, Fraction":function(e,t){if(1!==t.d){if(A.predictable)throw new Error("Function pow does not support non-integer exponents for fractions.");return g(e.valueOf(),t.valueOf())}return e.pow(t)},"Array, number":c,"Array, BigNumber":function(e,t){return c(e,t.toNumber())},"Matrix, number":u,"Matrix, BigNumber":function(e,t){return u(e,t.toNumber())},"Unit, number | BigNumber":function(e,t){return e.pow(t)}});function g(e,t){if(A.predictable&&!z(t)&&e<0)try{var n=a(t),r=o(n);if((t===r||Math.abs((t-r)/t)<1e-14)&&n.d%2===1)return(n.n%2===0?1:-1)*Math.pow(-e,t)}catch(i){}return A.predictable&&(e<-1&&t===1/0||e>-1&&e<0&&t===-1/0)?NaN:z(t)||e>=0||A.predictable?_t(e,t):e*e<1&&t===1/0||e*e>1&&t===-1/0?0:new s(e,0).pow(t,0)}function c(e,t){if(!z(t)||t<0)throw new TypeError("For A^b, b must be a positive integer (value is "+t+")");var A=me(e);if(2!==A.length)throw new Error("For A^b, A must be 2 dimensional (A has "+A.length+" dimensions)");if(A[0]!==A[1])throw new Error("For A^b, A must be square (size is "+A[0]+"x"+A[1]+")");for(var i=n(A[0]).valueOf(),o=e;t>=1;)1===(1&t)&&(i=r(o,i)),t>>=1,o=r(o,o);return i}function u(e,t){return i(c(e.valueOf(),t))}}));A(242);function An(e){var t;if(z(e))return e<=0?isFinite(e)?1/0:NaN:e>171?1/0:CA(1,e-1);if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*An(1-e));if(e>=171.35)return 1/0;if(e>85){var A=e*e,n=A*e,r=n*e,i=r*e;return Math.sqrt(2*Math.PI/e)*Math.pow(e/Math.E,e)*(1+1/(12*e)+1/(288*A)-139/(51840*n)-571/(2488320*r)+163879/(209018880*i)+5246819/(75246796800*i*e))}--e,t=rn[0];for(var o=1;o<rn.length;++o)t+=rn[o]/(e+o);var a=e+nn+.5;return Math.sqrt(2*Math.PI)*Math.pow(a,e+.5)*Math.exp(-a)*t}An.signature="number";var nn=4.7421875,rn=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],on=Ne("bignumber",["typed","BigNumber"],(function(e){var t=e.typed,A=e.BigNumber;return t("bignumber",{"":function(){return new A(0)},number:function(e){return new A(e+"")},string:function(e){var t=e.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(t){var n=t[2],r=A(t[1]),i=new A(2).pow(Number(n));if(r.gt(i.sub(1)))throw new SyntaxError('String "'.concat(e,'" is out of range'));var o=new A(2).pow(Number(n)-1);return r.gte(o)?r.sub(i):r}return new A(e)},BigNumber:function(e){return e},Fraction:function(e){return new A(e.n).div(e.d).times(e.s)},null:function(e){return new A(0)},"Array | Matrix":function(e){return it(e,this)}})})),an=Ne("numeric",["number","?bignumber","?fraction"],(function(e){var t=e.number,A=e.bignumber,n=e.fraction,r={string:!0,number:!0,BigNumber:!0,Fraction:!0},i={number:function(e){return t(e)},BigNumber:A?function(e){return A(e)}:NA,Fraction:n?function(e){return n(e)}:UA};return function(e,t){var A=H(e);if(!(A in r))throw new TypeError("Cannot convert "+e+' of type "'+A+'"; valid input types are '+Object.keys(r).join(", "));if(!(t in i))throw new TypeError("Cannot convert "+e+' to type "'+t+'"; valid output types are '+Object.keys(i).join(", "));return t===A?e:i[t](e)}}));var sn=Ne("ceil",["typed","config","round","matrix","equalScalar"],(function(e){var t=e.typed,A=e.config,n=e.round,r=e.matrix,i=e.equalScalar,o=DA({typed:t,equalScalar:i}),a=SA({typed:t});return t("ceil",{number:function(e){return le(e,n(e),A.epsilon)?n(e):yt(e)},"number, number":function(e,t){if(le(e,n(e,t),A.epsilon))return n(e,t);var r="".concat(e,"e").split("e"),i=Object(qA.a)(r,2),o=i[0],a=i[1],s=Math.ceil(Number("".concat(o,"e").concat(Number(a)+t))),g="".concat(s,"e").split("e"),c=Object(qA.a)(g,2);return o=c[0],a=c[1],Number("".concat(o,"e").concat(Number(a)-t))},Complex:function(e){return e.ceil()},"Complex, number":function(e,t){return e.ceil(t)},BigNumber:function(e){return lt(e,n(e),A.epsilon)?n(e):e.ceil()},"BigNumber, BigNumber":function(e,t){return lt(e,n(e,t),A.epsilon)?n(e,t):e.toDecimalPlaces(t.toNumber(),Je.a.ROUND_CEIL)},Fraction:function(e){return e.ceil()},"Fraction, number":function(e,t){return e.ceil(t)},"Array | Matrix":function(e){return it(e,this,!0)},"Array | Matrix, number":function(e,t){var A=this;return it(e,(function(e){return A(e,t)}),!0)},"SparseMatrix, number | BigNumber":function(e,t){return o(e,t,this,!1)},"DenseMatrix, number | BigNumber":function(e,t){return a(e,t,this,!1)},"number | Complex | BigNumber, Array":function(e,t){return a(r(t),e,this,!0).valueOf()}})})),gn=Ne("subtract",["typed","matrix","equalScalar","addScalar","unaryMinus","DenseMatrix"],(function(e){var t=e.typed,A=e.matrix,n=e.equalScalar,r=e.addScalar,i=e.unaryMinus,o=e.DenseMatrix,a=mA({typed:t}),s=FA({typed:t}),g=RA({typed:t,equalScalar:n}),c=bA({typed:t,DenseMatrix:o}),u=wA({typed:t}),l=SA({typed:t});return t("subtract",{"number, number":function(e,t){return e-t},"Complex, Complex":function(e,t){return e.sub(t)},"BigNumber, BigNumber":function(e,t){return e.minus(t)},"Fraction, Fraction":function(e,t){return e.sub(t)},"Unit, Unit":function(e,t){if(null===e.value)throw new Error("Parameter x contains a unit with undefined value");if(null===t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var A=e.clone();return A.value=this(A.value,t.value),A.fixPrefix=!1,A},"SparseMatrix, SparseMatrix":function(e,t){return cn(e,t),g(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return cn(e,t),s(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return cn(e,t),a(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return cn(e,t),u(e,t,this)},"Array, Array":function(e,t){return this(A(e),A(t)).valueOf()},"Array, Matrix":function(e,t){return this(A(e),t)},"Matrix, Array":function(e,t){return this(e,A(t))},"SparseMatrix, any":function(e,t){return c(e,i(t),r)},"DenseMatrix, any":function(e,t){return l(e,t,this)},"any, SparseMatrix":function(e,t){return c(t,e,this,!0)},"any, DenseMatrix":function(e,t){return l(t,e,this,!0)},"Array, any":function(e,t){return l(A(e),t,this,!1).valueOf()},"any, Array":function(e,t){return l(A(t),e,this,!0).valueOf()}})}));function cn(e,t){var A=e.size(),n=t.size();if(A.length!==n.length)throw new ye(A.length,n.length)}var un=Ne("equal",["typed","matrix","equalScalar","DenseMatrix"],(function(e){var t=e.typed,A=e.matrix,n=e.equalScalar,r=e.DenseMatrix,i=FA({typed:t}),o=kA({typed:t,DenseMatrix:r}),a=GA({typed:t,DenseMatrix:r}),s=wA({typed:t}),g=SA({typed:t});return t("equal",{"any, any":function(e,t){return null===e?null===t:null===t?null===e:void 0===e?void 0===t:void 0===t?void 0===e:n(e,t)},"SparseMatrix, SparseMatrix":function(e,t){return o(e,t,n)},"SparseMatrix, DenseMatrix":function(e,t){return i(t,e,n,!0)},"DenseMatrix, SparseMatrix":function(e,t){return i(e,t,n,!1)},"DenseMatrix, DenseMatrix":function(e,t){return s(e,t,n)},"Array, Array":function(e,t){return this(A(e),A(t)).valueOf()},"Array, Matrix":function(e,t){return this(A(e),t)},"Matrix, Array":function(e,t){return this(e,A(t))},"SparseMatrix, any":function(e,t){return a(e,t,n,!1)},"DenseMatrix, any":function(e,t){return g(e,t,n,!1)},"any, SparseMatrix":function(e,t){return a(t,e,n,!0)},"any, DenseMatrix":function(e,t){return g(t,e,n,!0)},"Array, any":function(e,t){return g(A(e),t,n,!1).valueOf()},"any, Array":function(e,t){return g(A(t),e,n,!0).valueOf()}})})),ln=(Ne("equal",["typed","equalScalar"],(function(e){var t=e.typed,A=e.equalScalar;return t("equal",{"any, any":function(e,t){return null===e?null===t:null===t?null===e:void 0===e?void 0===t:void 0===t?void 0===e:A(e,t)}})})),Ne("fix",["typed","Complex","matrix","ceil","floor"],(function(e){var t=e.typed,A=e.Complex,n=e.matrix,r=e.ceil,i=e.floor,o=SA({typed:t});return t("fix",{number:function(e){return e>0?i(e):r(e)},"number, number | BigNumber":function(e,t){return e>0?i(e,t):r(e,t)},Complex:function(e){return new A(e.re>0?Math.floor(e.re):Math.ceil(e.re),e.im>0?Math.floor(e.im):Math.ceil(e.im))},"Complex, number | BigNumber":function(e,t){return new A(e.re>0?i(e.re,t):r(e.re,t),e.im>0?i(e.im,t):r(e.im,t))},BigNumber:function(e){return e.isNegative()?r(e):i(e)},"BigNumber, number | BigNumber":function(e,t){return e.isNegative()?r(e,t):i(e,t)},Fraction:function(e){return e.s<0?e.ceil():e.floor()},"Fraction, number | BigNumber":function(e,t){return e.s<0?e.ceil(t):e.floor(t)},"Array | Matrix":function(e){return it(e,this,!0)},"Array | Matrix, number | BigNumber":function(e,t){var A=this;return it(e,(function(e){return A(e,t)}),!0)},"number | Complex | BigNumber, Array":function(e,t){return o(n(t),e,this,!0).valueOf()}})}))),In=Ne("divideScalar",["typed","numeric"],(function(e){var t=e.typed,A=e.numeric;return t("divideScalar",{"number, number":function(e,t){return e/t},"Complex, Complex":function(e,t){return e.div(t)},"BigNumber, BigNumber":function(e,t){return e.div(t)},"Fraction, Fraction":function(e,t){return e.div(t)},"Unit, number | Fraction | BigNumber":function(e,t){var n=e.clone(),r=A(1,H(t));return n.value=this(null===n.value?n._normalize(r):n.value,t),n},"number | Fraction | BigNumber, Unit":function(e,t){var n=t.clone();n=n.pow(-1);var r=A(1,H(e));return n.value=this(e,null===t.value?t._normalize(r):t.value),n},"Unit, Unit":function(e,t){return e.divide(t)}})}));A(11);var Cn=Ne("Spa",["addScalar","equalScalar","FibonacciHeap"],(function(e){var t=e.addScalar,A=e.equalScalar,n=e.FibonacciHeap;function r(){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this._values=[],this._heap=new n}return r.prototype.type="Spa",r.prototype.isSpa=!0,r.prototype.set=function(e,t){if(this._values[e])this._values[e].value=t;else{var A=this._heap.insert(e,t);this._values[e]=A}},r.prototype.get=function(e){var t=this._values[e];return t?t.value:0},r.prototype.accumulate=function(e,A){var n=this._values[e];n?n.value=t(n.value,A):(n=this._heap.insert(e,A),this._values[e]=n)},r.prototype.forEach=function(e,t,n){var r=this._heap,i=this._values,o=[],a=r.extractMinimum();for(a&&o.push(a);a&&a.key<=t;)a.key>=e&&(A(a.value,0)||n(a.key,a.value,this)),(a=r.extractMinimum())&&o.push(a);for(var s=0;s<o.length;s++){var g=o[s];i[(a=r.insert(g.key,g.value)).key]=a}},r.prototype.swap=function(e,t){var A=this._values[e],n=this._values[t];if(!A&&n)A=this._heap.insert(e,n.value),this._heap.remove(n),this._values[e]=A,this._values[t]=void 0;else if(A&&!n)n=this._heap.insert(t,A.value),this._heap.remove(A),this._values[t]=n,this._values[e]=void 0;else if(A&&n){var r=A.value;A.value=n.value,n.value=r}},r}),{isClass:!0}),hn=Ne("lup",["typed","matrix","abs","addScalar","divideScalar","multiplyScalar","subtract","larger","equalScalar","unaryMinus","DenseMatrix","SparseMatrix","Spa"],(function(e){var t=e.typed,A=e.matrix,n=e.abs,r=e.addScalar,i=e.divideScalar,o=e.multiplyScalar,a=e.subtract,s=e.larger,g=e.equalScalar,c=e.unaryMinus,u=e.DenseMatrix,l=e.SparseMatrix,I=e.Spa;return t("lup",{DenseMatrix:function(e){return C(e)},SparseMatrix:function(e){return h(e)},Array:function(e){var t=C(A(e));return{L:t.L.valueOf(),U:t.U.valueOf(),p:t.p}}});function C(e){var t,A,c,l=e._size[0],I=e._size[1],C=Math.min(l,I),h=Y(e._data),f=[],d=[l,C],B=[],p=[C,I],E=[];for(t=0;t<l;t++)E[t]=t;for(A=0;A<I;A++){if(A>0)for(t=0;t<l;t++){var Q=Math.min(t,A),y=0;for(c=0;c<Q;c++)y=r(y,o(h[t][c],h[c][A]));h[t][A]=a(h[t][A],y)}var v=A,m=0,b=0;for(t=A;t<l;t++){var w=h[t][A],S=n(w);s(S,m)&&(v=t,m=S,b=w)}if(A!==v&&(E[A]=[E[v],E[v]=E[A]][0],u._swapRows(A,v,h)),A<l)for(t=A+1;t<l;t++){var F=h[t][A];g(F,0)||(h[t][A]=i(h[t][A],b))}}for(A=0;A<I;A++)for(t=0;t<l;t++)0===A&&(t<I&&(B[t]=[]),f[t]=[]),t<A?(t<I&&(B[t][A]=h[t][A]),A<l&&(f[t][A]=0)):t!==A?(t<I&&(B[t][A]=0),A<l&&(f[t][A]=h[t][A])):(t<I&&(B[t][A]=h[t][A]),A<l&&(f[t][A]=1));var R=new u({data:f,size:d}),D=new u({data:B,size:p}),G=[];for(t=0,C=E.length;t<C;t++)G[E[t]]=t;return{L:R,U:D,p:G,toString:function(){return"L: "+this.L.toString()+"\nU: "+this.U.toString()+"\nP: "+this.p}}}function h(e){var t,A,r,a=e._size[0],u=e._size[1],C=Math.min(a,u),h=e._values,f=e._index,d=e._ptr,B=[],p=[],E=[],Q=[a,C],y=[],v=[],m=[],b=[C,u],w=[],S=[];for(t=0;t<a;t++)w[t]=t,S[t]=t;var F=function(){var e=new I;A<a&&(E.push(B.length),B.push(1),p.push(A)),m.push(y.length);var u=d[A],C=d[A+1];for(r=u;r<C;r++)t=f[r],e.set(w[t],h[r]);A>0&&e.forEach(0,A-1,(function(t,A){l._forEachRow(t,B,p,E,(function(n,r){n>t&&e.accumulate(n,c(o(r,A)))}))}));var F=A,R=e.get(A),D=n(R);e.forEach(A+1,a-1,(function(e,t){var A=n(t);s(A,D)&&(F=e,D=A,R=t)})),A!==F&&(l._swapRows(A,F,Q[1],B,p,E),l._swapRows(A,F,b[1],y,v,m),e.swap(A,F),function(e,t){var A=S[e],n=S[t];w[A]=t,w[n]=e,S[e]=n,S[t]=A}(A,F)),e.forEach(0,a-1,(function(e,t){e<=A?(y.push(t),v.push(e)):(t=i(t,R),g(t,0)||(B.push(t),p.push(e)))}))};for(A=0;A<u;A++)F();return m.push(y.length),E.push(B.length),{L:new l({values:B,index:p,ptr:E,size:Q}),U:new l({values:y,index:v,ptr:m,size:b}),p:w,toString:function(){return"L: "+this.L.toString()+"\nU: "+this.U.toString()+"\nP: "+this.p}}}}));var fn=Ne("det",["typed","matrix","subtract","multiply","unaryMinus","lup"],(function(e){var t=e.typed,A=e.matrix,n=e.subtract,r=e.multiply,i=e.unaryMinus,o=e.lup;return t("det",{any:function(e){return Y(e)},"Array | Matrix":function(e){var t;switch((t=u(e)?e.size():Array.isArray(e)?(e=A(e)).size():[]).length){case 0:return Y(e);case 1:if(1===t[0])return Y(e.valueOf()[0]);throw new RangeError("Matrix must be square (size: "+Qe(t)+")");case 2:var a=t[0],s=t[1];if(a===s)return function(e,t,A){if(1===t)return Y(e[0][0]);if(2===t)return n(r(e[0][0],e[1][1]),r(e[1][0],e[0][1]));for(var a=o(e),s=a.U[0][0],g=1;g<t;g++)s=r(s,a.U[g][g]);for(var c=0,u=0,l=[];;){for(;l[u];)u++;if(u>=t)break;for(var I=u,C=0;!l[a.p[I]];)l[a.p[I]]=!0,I=a.p[I],C++;C%2===0&&c++}return c%2===0?s:i(s)}(e.clone().valueOf(),a);throw new RangeError("Matrix must be square (size: "+Qe(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+Qe(t)+")")}}})}));var dn=Ne("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],(function(e){var t=e.typed,A=e.matrix,n=e.divideScalar,r=e.addScalar,i=e.multiply,o=e.unaryMinus,a=e.det,s=e.identity,g=e.abs;return t("inv",{"Array | Matrix":function(e){var t=u(e)?e.size():me(e);switch(t.length){case 1:if(1===t[0])return u(e)?A([n(1,e.valueOf()[0])]):[n(1,e[0])];throw new RangeError("Matrix must be square (size: "+Qe(t)+")");case 2:var r=t[0],i=t[1];if(r===i)return u(e)?A(c(e.valueOf(),r,i),e.storage()):c(e,r,i);throw new RangeError("Matrix must be square (size: "+Qe(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+Qe(t)+")")}},any:function(e){return n(1,e)}});function c(e,t,A){var c,u,l,I,C;if(1===t){if(0===(I=e[0][0]))throw Error("Cannot calculate inverse, determinant is zero");return[[n(1,I)]]}if(2===t){var h=a(e);if(0===h)throw Error("Cannot calculate inverse, determinant is zero");return[[n(e[1][1],h),n(o(e[0][1]),h)],[n(o(e[1][0]),h),n(e[0][0],h)]]}var f=e.concat();for(c=0;c<t;c++)f[c]=f[c].concat();for(var d=s(t).valueOf(),B=0;B<A;B++){var p=g(f[B][B]),E=B;for(c=B+1;c<t;)g(f[c][B])>p&&(p=g(f[c][B]),E=c),c++;if(0===p)throw Error("Cannot calculate inverse, determinant is zero");(c=E)!==B&&(C=f[B],f[B]=f[c],f[c]=C,C=d[B],d[B]=d[c],d[c]=C);var Q=f[B],y=d[B];for(c=0;c<t;c++){var v=f[c],m=d[c];if(c!==B){if(0!==v[B]){for(l=n(o(v[B]),Q[B]),u=B;u<A;u++)v[u]=r(v[u],i(l,Q[u]));for(u=0;u<A;u++)m[u]=r(m[u],i(l,y[u]))}}else{for(l=Q[B],u=B;u<A;u++)v[u]=n(v[u],l);for(u=0;u<A;u++)m[u]=n(m[u],l)}}}return d}})),Bn=Ne("divide",["typed","matrix","multiply","equalScalar","divideScalar","inv"],(function(e){var t=e.typed,A=e.matrix,n=e.multiply,r=e.equalScalar,i=e.divideScalar,o=e.inv,a=DA({typed:t,equalScalar:r}),s=SA({typed:t});return t("divide",j({"Array | Matrix, Array | Matrix":function(e,t){return n(e,o(t))},"DenseMatrix, any":function(e,t){return s(e,t,i,!1)},"SparseMatrix, any":function(e,t){return a(e,t,i,!1)},"Array, any":function(e,t){return s(A(e),t,i,!1).valueOf()},"any, Array | Matrix":function(e,t){return n(e,o(t))}},i.signatures))}));function pn(){return(pn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var A=arguments[t];for(var n in A)Object.prototype.hasOwnProperty.call(A,n)&&(e[n]=A[n])}return e}).apply(this,arguments)}function En(e,t){var A=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),A.push.apply(A,n)}return A}function Qn(e){for(var t=1;t<arguments.length;t++){var A=null!=arguments[t]?arguments[t]:{};t%2?En(Object(A),!0).forEach((function(t){yn(e,t,A[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):En(Object(A)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}))}return e}function yn(e,t,A){return t in e?Object.defineProperty(e,t,{value:A,enumerable:!0,configurable:!0,writable:!0}):e[t]=A,e}var vn=Ne("Unit",["?on","config","addScalar","subtract","multiplyScalar","divideScalar","pow","abs","fix","round","equal","isNumeric","format","number","Complex","BigNumber","Fraction"],(function(e){var t,A,n,r=e.on,i=e.config,a=e.addScalar,g=e.subtract,c=e.multiplyScalar,u=e.divideScalar,l=e.pow,I=e.abs,C=e.fix,h=e.round,f=e.equal,d=e.isNumeric,B=e.format,p=e.number,E=e.Complex,Q=e.BigNumber,y=e.Fraction,v=p;function m(e,t){if(!(this instanceof m))throw new Error("Constructor must be called with the new operator");if(null!==e&&void 0!==e&&!d(e)&&!o(e))throw new TypeError("First parameter in Unit constructor must be number, BigNumber, Fraction, Complex, or undefined");if(void 0!==t&&("string"!==typeof t||""===t))throw new TypeError("Second parameter in Unit constructor must be a string");if(void 0!==t){var A=m.parse(t);this.units=A.units,this.dimensions=A.dimensions}else{this.units=[{unit:O,prefix:N.NONE,power:0}],this.dimensions=[];for(var n=0;n<U.length;n++)this.dimensions[n]=0}this.value=void 0!==e&&null!==e?this._normalize(e):null,this.fixPrefix=!1,this.skipAutomaticSimplification=!0}function b(){for(;" "===n||"\t"===n;)S()}function w(e){return e>="0"&&e<="9"}function S(){A++,n=t.charAt(A)}function F(e){A=e,n=t.charAt(A)}function R(){var e="",t=A;if("+"===n?S():"-"===n&&(e+=n,S()),!function(e){return e>="0"&&e<="9"||"."===e}(n))return F(t),null;if("."===n){if(e+=n,S(),!w(n))return F(t),null}else{for(;w(n);)e+=n,S();"."===n&&(e+=n,S())}for(;w(n);)e+=n,S();if("E"===n||"e"===n){var r="",i=A;if(r+=n,S(),"+"!==n&&"-"!==n||(r+=n,S()),!w(n))return F(i),e;for(e+=r;w(n);)e+=n,S()}return e}function D(){for(var e="";w(n)||m.isValidAlpha(n);)e+=n,S();var t=e.charAt(0);return m.isValidAlpha(t)?e:null}function G(e){return n===e?(S(),e):null}m.prototype.type="Unit",m.prototype.isUnit=!0,m.parse=function(e,r){if(r=r||{},A=-1,n="","string"!==typeof(t=e))throw new TypeError("Invalid argument in Unit.parse, string expected");var o=new m;o.units=[];var a=1,s=!1;S(),b();var g=R(),c=null;if(g){if("BigNumber"===i.number)c=new Q(g);else if("Fraction"===i.number)try{c=new y(g)}catch(E){c=parseFloat(g)}else c=parseFloat(g);b(),G("*")?(a=1,s=!0):G("/")&&(a=-1,s=!0)}for(var u=[],l=1;;){for(b();"("===n;)u.push(a),l*=a,a=1,S(),b();var I=void 0;if(!n)break;var C=n;if(null===(I=D()))throw new SyntaxError('Unexpected "'+C+'" in "'+t+'" at index '+A.toString());var h=k(I);if(null===h)throw new SyntaxError('Unit "'+I+'" not found.');var f=a*l;if(b(),G("^")){b();var d=R();if(null===d)throw new SyntaxError('In "'+e+'", "^" must be followed by a floating-point number');f*=d}o.units.push({unit:h.unit,prefix:h.prefix,power:f});for(var B=0;B<U.length;B++)o.dimensions[B]+=(h.unit.dimensions[B]||0)*f;for(b();")"===n;){if(0===u.length)throw new SyntaxError('Unmatched ")" in "'+t+'" at index '+A.toString());l/=u.pop(),S(),b()}if(s=!1,G("*")?(a=1,s=!0):G("/")?(a=-1,s=!0):a=1,h.unit.base){var p=h.unit.base.key;J.auto[p]={unit:h.unit,prefix:h.prefix}}}if(b(),n)throw new SyntaxError('Could not parse: "'+e+'"');if(s)throw new SyntaxError('Trailing characters: "'+e+'"');if(0!==u.length)throw new SyntaxError('Unmatched "(" in "'+t+'"');if(0===o.units.length&&!r.allowNoUnits)throw new SyntaxError('"'+e+'" contains no units');return o.value=void 0!==c?o._normalize(c):null,o},m.prototype.clone=function(){var e=new m;e.fixPrefix=this.fixPrefix,e.skipAutomaticSimplification=this.skipAutomaticSimplification,e.value=Y(this.value),e.dimensions=this.dimensions.slice(0),e.units=[];for(var t=0;t<this.units.length;t++)for(var A in e.units[t]={},this.units[t])V(this.units[t],A)&&(e.units[t][A]=this.units[t][A]);return e},m.prototype._isDerived=function(){return 0!==this.units.length&&(this.units.length>1||Math.abs(this.units[0].power-1)>1e-15)},m.prototype._normalize=function(e){var t,A,n,r,i;if(null===e||void 0===e||0===this.units.length)return e;if(this._isDerived()){var o=e;i=m._getNumberConverter(H(e));for(var s=0;s<this.units.length;s++)t=i(this.units[s].unit.value),r=i(this.units[s].prefix.value),n=i(this.units[s].power),o=c(o,l(c(t,r),n));return o}return t=(i=m._getNumberConverter(H(e)))(this.units[0].unit.value),A=i(this.units[0].unit.offset),r=i(this.units[0].prefix.value),c(a(e,A),c(t,r))},m.prototype._denormalize=function(e,t){var A,n,r,i,o;if(null===e||void 0===e||0===this.units.length)return e;if(this._isDerived()){var a=e;o=m._getNumberConverter(H(e));for(var s=0;s<this.units.length;s++)A=o(this.units[s].unit.value),i=o(this.units[s].prefix.value),r=o(this.units[s].power),a=u(a,l(c(A,i),r));return a}return A=(o=m._getNumberConverter(H(e)))(this.units[0].unit.value),i=o(this.units[0].prefix.value),n=o(this.units[0].unit.offset),g(u(u(e,A),void 0===t||null===t?i:t),n)};var k=Te((function(e){if(V(L,e)){var t=L[e];return{unit:t,prefix:t.prefixes[""]}}for(var A in L)if(V(L,A)&&Ee(e,A)){var n=L[A],r=e.length-A.length,i=e.substring(0,r),o=V(n.prefixes,i)?n.prefixes[i]:void 0;if(void 0!==o)return{unit:n,prefix:o}}return null}),{hasher:function(e){return e[0]},limit:100});function x(e){return e.equalBase(_.NONE)&&null!==e.value&&!i.predictable?e.value:e}m.isValuelessUnit=function(e){return null!==k(e)},m.prototype.hasBase=function(e){if("string"===typeof e&&(e=_[e]),!e)return!1;for(var t=0;t<U.length;t++)if(Math.abs((this.dimensions[t]||0)-(e.dimensions[t]||0))>1e-12)return!1;return!0},m.prototype.equalBase=function(e){for(var t=0;t<U.length;t++)if(Math.abs((this.dimensions[t]||0)-(e.dimensions[t]||0))>1e-12)return!1;return!0},m.prototype.equals=function(e){return this.equalBase(e)&&f(this.value,e.value)},m.prototype.multiply=function(e){for(var t=this.clone(),A=0;A<U.length;A++)t.dimensions[A]=(this.dimensions[A]||0)+(e.dimensions[A]||0);for(var n=0;n<e.units.length;n++){var r=Qn({},e.units[n]);t.units.push(r)}if(null!==this.value||null!==e.value){var i=null===this.value?this._normalize(1):this.value,o=null===e.value?e._normalize(1):e.value;t.value=c(i,o)}else t.value=null;return t.skipAutomaticSimplification=!1,x(t)},m.prototype.divide=function(e){for(var t=this.clone(),A=0;A<U.length;A++)t.dimensions[A]=(this.dimensions[A]||0)-(e.dimensions[A]||0);for(var n=0;n<e.units.length;n++){var r=Qn(Qn({},e.units[n]),{},{power:-e.units[n].power});t.units.push(r)}if(null!==this.value||null!==e.value){var i=null===this.value?this._normalize(1):this.value,o=null===e.value?e._normalize(1):e.value;t.value=u(i,o)}else t.value=null;return t.skipAutomaticSimplification=!1,x(t)},m.prototype.pow=function(e){for(var t=this.clone(),A=0;A<U.length;A++)t.dimensions[A]=(this.dimensions[A]||0)*e;for(var n=0;n<t.units.length;n++)t.units[n].power*=e;return null!==t.value?t.value=l(t.value,e):t.value=null,t.skipAutomaticSimplification=!1,x(t)},m.prototype.abs=function(){var e=this.clone();for(var t in e.value=null!==e.value?I(e.value):null,e.units)"VA"!==e.units[t].unit.name&&"VAR"!==e.units[t].unit.name||(e.units[t].unit=L.W);return e},m.prototype.to=function(e){var t,A=null===this.value?this._normalize(1):this.value;if("string"===typeof e){if(t=m.parse(e),!this.equalBase(t))throw new Error("Units do not match ('".concat(t.toString(),"' != '").concat(this.toString(),"')"));if(null!==t.value)throw new Error("Cannot convert to a unit with a value");return t.value=Y(A),t.fixPrefix=!0,t.skipAutomaticSimplification=!0,t}if(s(e)){if(!this.equalBase(e))throw new Error("Units do not match ('".concat(e.toString(),"' != '").concat(this.toString(),"')"));if(null!==e.value)throw new Error("Cannot convert to a unit with a value");return(t=e.clone()).value=Y(A),t.fixPrefix=!0,t.skipAutomaticSimplification=!0,t}throw new Error("String or Unit expected as parameter")},m.prototype.toNumber=function(e){return v(this.toNumeric(e))},m.prototype.toNumeric=function(e){var t;return(t=e?this.to(e):this.clone())._isDerived()||0===t.units.length?t._denormalize(t.value):t._denormalize(t.value,t.units[0].prefix.value)},m.prototype.toString=function(){return this.format()},m.prototype.toJSON=function(){return{mathjs:"Unit",value:this._denormalize(this.value),unit:this.formatUnits(),fixPrefix:this.fixPrefix}},m.fromJSON=function(e){var t=new m(e.value,e.unit);return t.fixPrefix=e.fixPrefix||!1,t},m.prototype.valueOf=m.prototype.toString,m.prototype.simplify=function(){var e,t,A=this.clone(),n=[];for(var r in j)if(V(j,r)&&A.hasBase(_[r])){e=r;break}if("NONE"===e)A.units=[];else if(e&&V(j,e)&&(t=j[e]),t)A.units=[{unit:t.unit,prefix:t.prefix,power:1}];else{for(var i=!1,o=0;o<U.length;o++){var a=U[o];Math.abs(A.dimensions[o]||0)>1e-12&&(V(j,a)?n.push({unit:j[a].unit,prefix:j[a].prefix,power:A.dimensions[o]||0}):i=!0)}n.length<A.units.length&&!i&&(A.units=n)}return A},m.prototype.toSI=function(){for(var e=this.clone(),t=[],A=0;A<U.length;A++){var n=U[A];if(Math.abs(e.dimensions[A]||0)>1e-12){if(!V(J.si,n))throw new Error("Cannot express custom unit "+n+" in SI units");t.push({unit:J.si[n].unit,prefix:J.si[n].prefix,power:e.dimensions[A]||0})}}return e.units=t,e.fixPrefix=!0,e.skipAutomaticSimplification=!0,e},m.prototype.formatUnits=function(){for(var e="",t="",A=0,n=0,r=0;r<this.units.length;r++)this.units[r].power>0?(A++,e+=" "+this.units[r].prefix.name+this.units[r].unit.name,Math.abs(this.units[r].power-1)>1e-15&&(e+="^"+this.units[r].power)):this.units[r].power<0&&n++;if(n>0)for(var i=0;i<this.units.length;i++)this.units[i].power<0&&(A>0?(t+=" "+this.units[i].prefix.name+this.units[i].unit.name,Math.abs(this.units[i].power+1)>1e-15&&(t+="^"+-this.units[i].power)):(t+=" "+this.units[i].prefix.name+this.units[i].unit.name,t+="^"+this.units[i].power));e=e.substr(1),t=t.substr(1),A>1&&n>0&&(e="("+e+")"),n>1&&A>0&&(t="("+t+")");var o=e;return A>0&&n>0&&(o+=" / "),o+=t},m.prototype.format=function(e){var t=this.skipAutomaticSimplification||null===this.value?this.clone():this.simplify(),A=!1;for(var n in"undefined"!==typeof t.value&&null!==t.value&&o(t.value)&&(A=Math.abs(t.value.re)<1e-14),t.units)V(t.units,n)&&t.units[n].unit&&("VA"===t.units[n].unit.name&&A?t.units[n].unit=L.VAR:"VAR"!==t.units[n].unit.name||A||(t.units[n].unit=L.VA));1!==t.units.length||t.fixPrefix||Math.abs(t.units[0].power-Math.round(t.units[0].power))<1e-14&&(t.units[0].prefix=t._bestPrefix());var r=t._denormalize(t.value),i=null!==t.value?B(r,e||{}):"",a=t.formatUnits();return t.value&&o(t.value)&&(i="("+i+")"),a.length>0&&i.length>0&&(i+=" "),i+=a},m.prototype._bestPrefix=function(){if(1!==this.units.length)throw new Error("Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!");if(Math.abs(this.units[0].power-Math.round(this.units[0].power))>=1e-14)throw new Error("Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!");var e=null!==this.value?I(this.value):0,t=I(this.units[0].unit.value),A=this.units[0].prefix;if(0===e)return A;var n=this.units[0].power,r=Math.log(e/Math.pow(A.value*t,n))/Math.LN10-1.2;if(r>-2.200001&&r<1.800001)return A;r=Math.abs(r);var i=this.units[0].unit.prefixes;for(var o in i)if(V(i,o)){var a=i[o];if(a.scientific){var s=Math.abs(Math.log(e/Math.pow(a.value*t,n))/Math.LN10-1.2);(s<r||s===r&&a.name.length<A.name.length)&&(A=a,r=s)}}return A},m.prototype.splitUnit=function(e){for(var t=this.clone(),A=[],n=0;n<e.length&&(t=t.to(e[n]),n!==e.length-1);n++){var r=t.toNumeric(),i=h(r),o=new m(f(i,r)?i:C(t.toNumeric()),e[n].toString());A.push(o),t=g(t,o)}for(var s=0,c=0;c<A.length;c++)s=a(s,A[c].value);return f(s,this.value)&&(t.value=0),A.push(t),A};var N={NONE:{"":{name:"",value:1,scientific:!0}},SHORT:{"":{name:"",value:1,scientific:!0},da:{name:"da",value:10,scientific:!1},h:{name:"h",value:100,scientific:!1},k:{name:"k",value:1e3,scientific:!0},M:{name:"M",value:1e6,scientific:!0},G:{name:"G",value:1e9,scientific:!0},T:{name:"T",value:1e12,scientific:!0},P:{name:"P",value:1e15,scientific:!0},E:{name:"E",value:1e18,scientific:!0},Z:{name:"Z",value:1e21,scientific:!0},Y:{name:"Y",value:1e24,scientific:!0},d:{name:"d",value:.1,scientific:!1},c:{name:"c",value:.01,scientific:!1},m:{name:"m",value:.001,scientific:!0},u:{name:"u",value:1e-6,scientific:!0},n:{name:"n",value:1e-9,scientific:!0},p:{name:"p",value:1e-12,scientific:!0},f:{name:"f",value:1e-15,scientific:!0},a:{name:"a",value:1e-18,scientific:!0},z:{name:"z",value:1e-21,scientific:!0},y:{name:"y",value:1e-24,scientific:!0}},LONG:{"":{name:"",value:1,scientific:!0},deca:{name:"deca",value:10,scientific:!1},hecto:{name:"hecto",value:100,scientific:!1},kilo:{name:"kilo",value:1e3,scientific:!0},mega:{name:"mega",value:1e6,scientific:!0},giga:{name:"giga",value:1e9,scientific:!0},tera:{name:"tera",value:1e12,scientific:!0},peta:{name:"peta",value:1e15,scientific:!0},exa:{name:"exa",value:1e18,scientific:!0},zetta:{name:"zetta",value:1e21,scientific:!0},yotta:{name:"yotta",value:1e24,scientific:!0},deci:{name:"deci",value:.1,scientific:!1},centi:{name:"centi",value:.01,scientific:!1},milli:{name:"milli",value:.001,scientific:!0},micro:{name:"micro",value:1e-6,scientific:!0},nano:{name:"nano",value:1e-9,scientific:!0},pico:{name:"pico",value:1e-12,scientific:!0},femto:{name:"femto",value:1e-15,scientific:!0},atto:{name:"atto",value:1e-18,scientific:!0},zepto:{name:"zepto",value:1e-21,scientific:!0},yocto:{name:"yocto",value:1e-24,scientific:!0}},SQUARED:{"":{name:"",value:1,scientific:!0},da:{name:"da",value:100,scientific:!1},h:{name:"h",value:1e4,scientific:!1},k:{name:"k",value:1e6,scientific:!0},M:{name:"M",value:1e12,scientific:!0},G:{name:"G",value:1e18,scientific:!0},T:{name:"T",value:1e24,scientific:!0},P:{name:"P",value:1e30,scientific:!0},E:{name:"E",value:1e36,scientific:!0},Z:{name:"Z",value:1e42,scientific:!0},Y:{name:"Y",value:1e48,scientific:!0},d:{name:"d",value:.01,scientific:!1},c:{name:"c",value:1e-4,scientific:!1},m:{name:"m",value:1e-6,scientific:!0},u:{name:"u",value:1e-12,scientific:!0},n:{name:"n",value:1e-18,scientific:!0},p:{name:"p",value:1e-24,scientific:!0},f:{name:"f",value:1e-30,scientific:!0},a:{name:"a",value:1e-36,scientific:!0},z:{name:"z",value:1e-42,scientific:!0},y:{name:"y",value:1e-48,scientific:!0}},CUBIC:{"":{name:"",value:1,scientific:!0},da:{name:"da",value:1e3,scientific:!1},h:{name:"h",value:1e6,scientific:!1},k:{name:"k",value:1e9,scientific:!0},M:{name:"M",value:1e18,scientific:!0},G:{name:"G",value:1e27,scientific:!0},T:{name:"T",value:1e36,scientific:!0},P:{name:"P",value:1e45,scientific:!0},E:{name:"E",value:1e54,scientific:!0},Z:{name:"Z",value:1e63,scientific:!0},Y:{name:"Y",value:1e72,scientific:!0},d:{name:"d",value:.001,scientific:!1},c:{name:"c",value:1e-6,scientific:!1},m:{name:"m",value:1e-9,scientific:!0},u:{name:"u",value:1e-18,scientific:!0},n:{name:"n",value:1e-27,scientific:!0},p:{name:"p",value:1e-36,scientific:!0},f:{name:"f",value:1e-45,scientific:!0},a:{name:"a",value:1e-54,scientific:!0},z:{name:"z",value:1e-63,scientific:!0},y:{name:"y",value:1e-72,scientific:!0}},BINARY_SHORT_SI:{"":{name:"",value:1,scientific:!0},k:{name:"k",value:1e3,scientific:!0},M:{name:"M",value:1e6,scientific:!0},G:{name:"G",value:1e9,scientific:!0},T:{name:"T",value:1e12,scientific:!0},P:{name:"P",value:1e15,scientific:!0},E:{name:"E",value:1e18,scientific:!0},Z:{name:"Z",value:1e21,scientific:!0},Y:{name:"Y",value:1e24,scientific:!0}},BINARY_SHORT_IEC:{"":{name:"",value:1,scientific:!0},Ki:{name:"Ki",value:1024,scientific:!0},Mi:{name:"Mi",value:Math.pow(1024,2),scientific:!0},Gi:{name:"Gi",value:Math.pow(1024,3),scientific:!0},Ti:{name:"Ti",value:Math.pow(1024,4),scientific:!0},Pi:{name:"Pi",value:Math.pow(1024,5),scientific:!0},Ei:{name:"Ei",value:Math.pow(1024,6),scientific:!0},Zi:{name:"Zi",value:Math.pow(1024,7),scientific:!0},Yi:{name:"Yi",value:Math.pow(1024,8),scientific:!0}},BINARY_LONG_SI:{"":{name:"",value:1,scientific:!0},kilo:{name:"kilo",value:1e3,scientific:!0},mega:{name:"mega",value:1e6,scientific:!0},giga:{name:"giga",value:1e9,scientific:!0},tera:{name:"tera",value:1e12,scientific:!0},peta:{name:"peta",value:1e15,scientific:!0},exa:{name:"exa",value:1e18,scientific:!0},zetta:{name:"zetta",value:1e21,scientific:!0},yotta:{name:"yotta",value:1e24,scientific:!0}},BINARY_LONG_IEC:{"":{name:"",value:1,scientific:!0},kibi:{name:"kibi",value:1024,scientific:!0},mebi:{name:"mebi",value:Math.pow(1024,2),scientific:!0},gibi:{name:"gibi",value:Math.pow(1024,3),scientific:!0},tebi:{name:"tebi",value:Math.pow(1024,4),scientific:!0},pebi:{name:"pebi",value:Math.pow(1024,5),scientific:!0},exi:{name:"exi",value:Math.pow(1024,6),scientific:!0},zebi:{name:"zebi",value:Math.pow(1024,7),scientific:!0},yobi:{name:"yobi",value:Math.pow(1024,8),scientific:!0}},BTU:{"":{name:"",value:1,scientific:!0},MM:{name:"MM",value:1e6,scientific:!0}}};N.SHORTLONG=pn({},N.SHORT,N.LONG),N.BINARY_SHORT=pn({},N.BINARY_SHORT_SI,N.BINARY_SHORT_IEC),N.BINARY_LONG=pn({},N.BINARY_LONG_SI,N.BINARY_LONG_IEC);var U=["MASS","LENGTH","TIME","CURRENT","TEMPERATURE","LUMINOUS_INTENSITY","AMOUNT_OF_SUBSTANCE","ANGLE","BIT"],_={NONE:{dimensions:[0,0,0,0,0,0,0,0,0]},MASS:{dimensions:[1,0,0,0,0,0,0,0,0]},LENGTH:{dimensions:[0,1,0,0,0,0,0,0,0]},TIME:{dimensions:[0,0,1,0,0,0,0,0,0]},CURRENT:{dimensions:[0,0,0,1,0,0,0,0,0]},TEMPERATURE:{dimensions:[0,0,0,0,1,0,0,0,0]},LUMINOUS_INTENSITY:{dimensions:[0,0,0,0,0,1,0,0,0]},AMOUNT_OF_SUBSTANCE:{dimensions:[0,0,0,0,0,0,1,0,0]},FORCE:{dimensions:[1,1,-2,0,0,0,0,0,0]},SURFACE:{dimensions:[0,2,0,0,0,0,0,0,0]},VOLUME:{dimensions:[0,3,0,0,0,0,0,0,0]},ENERGY:{dimensions:[1,2,-2,0,0,0,0,0,0]},POWER:{dimensions:[1,2,-3,0,0,0,0,0,0]},PRESSURE:{dimensions:[1,-1,-2,0,0,0,0,0,0]},ELECTRIC_CHARGE:{dimensions:[0,0,1,1,0,0,0,0,0]},ELECTRIC_CAPACITANCE:{dimensions:[-1,-2,4,2,0,0,0,0,0]},ELECTRIC_POTENTIAL:{dimensions:[1,2,-3,-1,0,0,0,0,0]},ELECTRIC_RESISTANCE:{dimensions:[1,2,-3,-2,0,0,0,0,0]},ELECTRIC_INDUCTANCE:{dimensions:[1,2,-2,-2,0,0,0,0,0]},ELECTRIC_CONDUCTANCE:{dimensions:[-1,-2,3,2,0,0,0,0,0]},MAGNETIC_FLUX:{dimensions:[1,2,-2,-1,0,0,0,0,0]},MAGNETIC_FLUX_DENSITY:{dimensions:[1,0,-2,-1,0,0,0,0,0]},FREQUENCY:{dimensions:[0,0,-1,0,0,0,0,0,0]},ANGLE:{dimensions:[0,0,0,0,0,0,0,1,0]},BIT:{dimensions:[0,0,0,0,0,0,0,0,1]}};for(var M in _)V(_,M)&&(_[M].key=M);var O={name:"",base:{},value:1,offset:0,dimensions:U.map((function(e){return 0}))},L={meter:{name:"meter",base:_.LENGTH,prefixes:N.LONG,value:1,offset:0},inch:{name:"inch",base:_.LENGTH,prefixes:N.NONE,value:.0254,offset:0},foot:{name:"foot",base:_.LENGTH,prefixes:N.NONE,value:.3048,offset:0},yard:{name:"yard",base:_.LENGTH,prefixes:N.NONE,value:.9144,offset:0},mile:{name:"mile",base:_.LENGTH,prefixes:N.NONE,value:1609.344,offset:0},link:{name:"link",base:_.LENGTH,prefixes:N.NONE,value:.201168,offset:0},rod:{name:"rod",base:_.LENGTH,prefixes:N.NONE,value:5.0292,offset:0},chain:{name:"chain",base:_.LENGTH,prefixes:N.NONE,value:20.1168,offset:0},angstrom:{name:"angstrom",base:_.LENGTH,prefixes:N.NONE,value:1e-10,offset:0},m:{name:"m",base:_.LENGTH,prefixes:N.SHORT,value:1,offset:0},in:{name:"in",base:_.LENGTH,prefixes:N.NONE,value:.0254,offset:0},ft:{name:"ft",base:_.LENGTH,prefixes:N.NONE,value:.3048,offset:0},yd:{name:"yd",base:_.LENGTH,prefixes:N.NONE,value:.9144,offset:0},mi:{name:"mi",base:_.LENGTH,prefixes:N.NONE,value:1609.344,offset:0},li:{name:"li",base:_.LENGTH,prefixes:N.NONE,value:.201168,offset:0},rd:{name:"rd",base:_.LENGTH,prefixes:N.NONE,value:5.02921,offset:0},ch:{name:"ch",base:_.LENGTH,prefixes:N.NONE,value:20.1168,offset:0},mil:{name:"mil",base:_.LENGTH,prefixes:N.NONE,value:254e-7,offset:0},m2:{name:"m2",base:_.SURFACE,prefixes:N.SQUARED,value:1,offset:0},sqin:{name:"sqin",base:_.SURFACE,prefixes:N.NONE,value:64516e-8,offset:0},sqft:{name:"sqft",base:_.SURFACE,prefixes:N.NONE,value:.09290304,offset:0},sqyd:{name:"sqyd",base:_.SURFACE,prefixes:N.NONE,value:.83612736,offset:0},sqmi:{name:"sqmi",base:_.SURFACE,prefixes:N.NONE,value:2589988.110336,offset:0},sqrd:{name:"sqrd",base:_.SURFACE,prefixes:N.NONE,value:25.29295,offset:0},sqch:{name:"sqch",base:_.SURFACE,prefixes:N.NONE,value:404.6873,offset:0},sqmil:{name:"sqmil",base:_.SURFACE,prefixes:N.NONE,value:6.4516e-10,offset:0},acre:{name:"acre",base:_.SURFACE,prefixes:N.NONE,value:4046.86,offset:0},hectare:{name:"hectare",base:_.SURFACE,prefixes:N.NONE,value:1e4,offset:0},m3:{name:"m3",base:_.VOLUME,prefixes:N.CUBIC,value:1,offset:0},L:{name:"L",base:_.VOLUME,prefixes:N.SHORT,value:.001,offset:0},l:{name:"l",base:_.VOLUME,prefixes:N.SHORT,value:.001,offset:0},litre:{name:"litre",base:_.VOLUME,prefixes:N.LONG,value:.001,offset:0},cuin:{name:"cuin",base:_.VOLUME,prefixes:N.NONE,value:16387064e-12,offset:0},cuft:{name:"cuft",base:_.VOLUME,prefixes:N.NONE,value:.028316846592,offset:0},cuyd:{name:"cuyd",base:_.VOLUME,prefixes:N.NONE,value:.764554857984,offset:0},teaspoon:{name:"teaspoon",base:_.VOLUME,prefixes:N.NONE,value:5e-6,offset:0},tablespoon:{name:"tablespoon",base:_.VOLUME,prefixes:N.NONE,value:15e-6,offset:0},drop:{name:"drop",base:_.VOLUME,prefixes:N.NONE,value:5e-8,offset:0},gtt:{name:"gtt",base:_.VOLUME,prefixes:N.NONE,value:5e-8,offset:0},minim:{name:"minim",base:_.VOLUME,prefixes:N.NONE,value:6.161152e-8,offset:0},fluiddram:{name:"fluiddram",base:_.VOLUME,prefixes:N.NONE,value:36966911e-13,offset:0},fluidounce:{name:"fluidounce",base:_.VOLUME,prefixes:N.NONE,value:2957353e-11,offset:0},gill:{name:"gill",base:_.VOLUME,prefixes:N.NONE,value:.0001182941,offset:0},cc:{name:"cc",base:_.VOLUME,prefixes:N.NONE,value:1e-6,offset:0},cup:{name:"cup",base:_.VOLUME,prefixes:N.NONE,value:.0002365882,offset:0},pint:{name:"pint",base:_.VOLUME,prefixes:N.NONE,value:.0004731765,offset:0},quart:{name:"quart",base:_.VOLUME,prefixes:N.NONE,value:.0009463529,offset:0},gallon:{name:"gallon",base:_.VOLUME,prefixes:N.NONE,value:.003785412,offset:0},beerbarrel:{name:"beerbarrel",base:_.VOLUME,prefixes:N.NONE,value:.1173478,offset:0},oilbarrel:{name:"oilbarrel",base:_.VOLUME,prefixes:N.NONE,value:.1589873,offset:0},hogshead:{name:"hogshead",base:_.VOLUME,prefixes:N.NONE,value:.238481,offset:0},fldr:{name:"fldr",base:_.VOLUME,prefixes:N.NONE,value:36966911e-13,offset:0},floz:{name:"floz",base:_.VOLUME,prefixes:N.NONE,value:2957353e-11,offset:0},gi:{name:"gi",base:_.VOLUME,prefixes:N.NONE,value:.0001182941,offset:0},cp:{name:"cp",base:_.VOLUME,prefixes:N.NONE,value:.0002365882,offset:0},pt:{name:"pt",base:_.VOLUME,prefixes:N.NONE,value:.0004731765,offset:0},qt:{name:"qt",base:_.VOLUME,prefixes:N.NONE,value:.0009463529,offset:0},gal:{name:"gal",base:_.VOLUME,prefixes:N.NONE,value:.003785412,offset:0},bbl:{name:"bbl",base:_.VOLUME,prefixes:N.NONE,value:.1173478,offset:0},obl:{name:"obl",base:_.VOLUME,prefixes:N.NONE,value:.1589873,offset:0},g:{name:"g",base:_.MASS,prefixes:N.SHORT,value:.001,offset:0},gram:{name:"gram",base:_.MASS,prefixes:N.LONG,value:.001,offset:0},ton:{name:"ton",base:_.MASS,prefixes:N.SHORT,value:907.18474,offset:0},t:{name:"t",base:_.MASS,prefixes:N.SHORT,value:1e3,offset:0},tonne:{name:"tonne",base:_.MASS,prefixes:N.LONG,value:1e3,offset:0},grain:{name:"grain",base:_.MASS,prefixes:N.NONE,value:6479891e-11,offset:0},dram:{name:"dram",base:_.MASS,prefixes:N.NONE,value:.0017718451953125,offset:0},ounce:{name:"ounce",base:_.MASS,prefixes:N.NONE,value:.028349523125,offset:0},poundmass:{name:"poundmass",base:_.MASS,prefixes:N.NONE,value:.45359237,offset:0},hundredweight:{name:"hundredweight",base:_.MASS,prefixes:N.NONE,value:45.359237,offset:0},stick:{name:"stick",base:_.MASS,prefixes:N.NONE,value:.115,offset:0},stone:{name:"stone",base:_.MASS,prefixes:N.NONE,value:6.35029318,offset:0},gr:{name:"gr",base:_.MASS,prefixes:N.NONE,value:6479891e-11,offset:0},dr:{name:"dr",base:_.MASS,prefixes:N.NONE,value:.0017718451953125,offset:0},oz:{name:"oz",base:_.MASS,prefixes:N.NONE,value:.028349523125,offset:0},lbm:{name:"lbm",base:_.MASS,prefixes:N.NONE,value:.45359237,offset:0},cwt:{name:"cwt",base:_.MASS,prefixes:N.NONE,value:45.359237,offset:0},s:{name:"s",base:_.TIME,prefixes:N.SHORT,value:1,offset:0},min:{name:"min",base:_.TIME,prefixes:N.NONE,value:60,offset:0},h:{name:"h",base:_.TIME,prefixes:N.NONE,value:3600,offset:0},second:{name:"second",base:_.TIME,prefixes:N.LONG,value:1,offset:0},sec:{name:"sec",base:_.TIME,prefixes:N.LONG,value:1,offset:0},minute:{name:"minute",base:_.TIME,prefixes:N.NONE,value:60,offset:0},hour:{name:"hour",base:_.TIME,prefixes:N.NONE,value:3600,offset:0},day:{name:"day",base:_.TIME,prefixes:N.NONE,value:86400,offset:0},week:{name:"week",base:_.TIME,prefixes:N.NONE,value:604800,offset:0},month:{name:"month",base:_.TIME,prefixes:N.NONE,value:2629800,offset:0},year:{name:"year",base:_.TIME,prefixes:N.NONE,value:31557600,offset:0},decade:{name:"decade",base:_.TIME,prefixes:N.NONE,value:315576e3,offset:0},century:{name:"century",base:_.TIME,prefixes:N.NONE,value:315576e4,offset:0},millennium:{name:"millennium",base:_.TIME,prefixes:N.NONE,value:315576e5,offset:0},hertz:{name:"Hertz",base:_.FREQUENCY,prefixes:N.LONG,value:1,offset:0,reciprocal:!0},Hz:{name:"Hz",base:_.FREQUENCY,prefixes:N.SHORT,value:1,offset:0,reciprocal:!0},rad:{name:"rad",base:_.ANGLE,prefixes:N.SHORT,value:1,offset:0},radian:{name:"radian",base:_.ANGLE,prefixes:N.LONG,value:1,offset:0},deg:{name:"deg",base:_.ANGLE,prefixes:N.SHORT,value:null,offset:0},degree:{name:"degree",base:_.ANGLE,prefixes:N.LONG,value:null,offset:0},grad:{name:"grad",base:_.ANGLE,prefixes:N.SHORT,value:null,offset:0},gradian:{name:"gradian",base:_.ANGLE,prefixes:N.LONG,value:null,offset:0},cycle:{name:"cycle",base:_.ANGLE,prefixes:N.NONE,value:null,offset:0},arcsec:{name:"arcsec",base:_.ANGLE,prefixes:N.NONE,value:null,offset:0},arcmin:{name:"arcmin",base:_.ANGLE,prefixes:N.NONE,value:null,offset:0},A:{name:"A",base:_.CURRENT,prefixes:N.SHORT,value:1,offset:0},ampere:{name:"ampere",base:_.CURRENT,prefixes:N.LONG,value:1,offset:0},K:{name:"K",base:_.TEMPERATURE,prefixes:N.NONE,value:1,offset:0},degC:{name:"degC",base:_.TEMPERATURE,prefixes:N.NONE,value:1,offset:273.15},degF:{name:"degF",base:_.TEMPERATURE,prefixes:N.NONE,value:1/1.8,offset:459.67},degR:{name:"degR",base:_.TEMPERATURE,prefixes:N.NONE,value:1/1.8,offset:0},kelvin:{name:"kelvin",base:_.TEMPERATURE,prefixes:N.NONE,value:1,offset:0},celsius:{name:"celsius",base:_.TEMPERATURE,prefixes:N.NONE,value:1,offset:273.15},fahrenheit:{name:"fahrenheit",base:_.TEMPERATURE,prefixes:N.NONE,value:1/1.8,offset:459.67},rankine:{name:"rankine",base:_.TEMPERATURE,prefixes:N.NONE,value:1/1.8,offset:0},mol:{name:"mol",base:_.AMOUNT_OF_SUBSTANCE,prefixes:N.SHORT,value:1,offset:0},mole:{name:"mole",base:_.AMOUNT_OF_SUBSTANCE,prefixes:N.LONG,value:1,offset:0},cd:{name:"cd",base:_.LUMINOUS_INTENSITY,prefixes:N.SHORT,value:1,offset:0},candela:{name:"candela",base:_.LUMINOUS_INTENSITY,prefixes:N.LONG,value:1,offset:0},N:{name:"N",base:_.FORCE,prefixes:N.SHORT,value:1,offset:0},newton:{name:"newton",base:_.FORCE,prefixes:N.LONG,value:1,offset:0},dyn:{name:"dyn",base:_.FORCE,prefixes:N.SHORT,value:1e-5,offset:0},dyne:{name:"dyne",base:_.FORCE,prefixes:N.LONG,value:1e-5,offset:0},lbf:{name:"lbf",base:_.FORCE,prefixes:N.NONE,value:4.4482216152605,offset:0},poundforce:{name:"poundforce",base:_.FORCE,prefixes:N.NONE,value:4.4482216152605,offset:0},kip:{name:"kip",base:_.FORCE,prefixes:N.LONG,value:4448.2216,offset:0},kilogramforce:{name:"kilogramforce",base:_.FORCE,prefixes:N.NONE,value:9.80665,offset:0},J:{name:"J",base:_.ENERGY,prefixes:N.SHORT,value:1,offset:0},joule:{name:"joule",base:_.ENERGY,prefixes:N.SHORT,value:1,offset:0},erg:{name:"erg",base:_.ENERGY,prefixes:N.NONE,value:1e-7,offset:0},Wh:{name:"Wh",base:_.ENERGY,prefixes:N.SHORT,value:3600,offset:0},BTU:{name:"BTU",base:_.ENERGY,prefixes:N.BTU,value:1055.05585262,offset:0},eV:{name:"eV",base:_.ENERGY,prefixes:N.SHORT,value:1602176565e-28,offset:0},electronvolt:{name:"electronvolt",base:_.ENERGY,prefixes:N.LONG,value:1602176565e-28,offset:0},W:{name:"W",base:_.POWER,prefixes:N.SHORT,value:1,offset:0},watt:{name:"watt",base:_.POWER,prefixes:N.LONG,value:1,offset:0},hp:{name:"hp",base:_.POWER,prefixes:N.NONE,value:745.6998715386,offset:0},VAR:{name:"VAR",base:_.POWER,prefixes:N.SHORT,value:E.I,offset:0},VA:{name:"VA",base:_.POWER,prefixes:N.SHORT,value:1,offset:0},Pa:{name:"Pa",base:_.PRESSURE,prefixes:N.SHORT,value:1,offset:0},psi:{name:"psi",base:_.PRESSURE,prefixes:N.NONE,value:6894.75729276459,offset:0},atm:{name:"atm",base:_.PRESSURE,prefixes:N.NONE,value:101325,offset:0},bar:{name:"bar",base:_.PRESSURE,prefixes:N.SHORTLONG,value:1e5,offset:0},torr:{name:"torr",base:_.PRESSURE,prefixes:N.NONE,value:133.322,offset:0},mmHg:{name:"mmHg",base:_.PRESSURE,prefixes:N.NONE,value:133.322,offset:0},mmH2O:{name:"mmH2O",base:_.PRESSURE,prefixes:N.NONE,value:9.80665,offset:0},cmH2O:{name:"cmH2O",base:_.PRESSURE,prefixes:N.NONE,value:98.0665,offset:0},coulomb:{name:"coulomb",base:_.ELECTRIC_CHARGE,prefixes:N.LONG,value:1,offset:0},C:{name:"C",base:_.ELECTRIC_CHARGE,prefixes:N.SHORT,value:1,offset:0},farad:{name:"farad",base:_.ELECTRIC_CAPACITANCE,prefixes:N.LONG,value:1,offset:0},F:{name:"F",base:_.ELECTRIC_CAPACITANCE,prefixes:N.SHORT,value:1,offset:0},volt:{name:"volt",base:_.ELECTRIC_POTENTIAL,prefixes:N.LONG,value:1,offset:0},V:{name:"V",base:_.ELECTRIC_POTENTIAL,prefixes:N.SHORT,value:1,offset:0},ohm:{name:"ohm",base:_.ELECTRIC_RESISTANCE,prefixes:N.SHORTLONG,value:1,offset:0},henry:{name:"henry",base:_.ELECTRIC_INDUCTANCE,prefixes:N.LONG,value:1,offset:0},H:{name:"H",base:_.ELECTRIC_INDUCTANCE,prefixes:N.SHORT,value:1,offset:0},siemens:{name:"siemens",base:_.ELECTRIC_CONDUCTANCE,prefixes:N.LONG,value:1,offset:0},S:{name:"S",base:_.ELECTRIC_CONDUCTANCE,prefixes:N.SHORT,value:1,offset:0},weber:{name:"weber",base:_.MAGNETIC_FLUX,prefixes:N.LONG,value:1,offset:0},Wb:{name:"Wb",base:_.MAGNETIC_FLUX,prefixes:N.SHORT,value:1,offset:0},tesla:{name:"tesla",base:_.MAGNETIC_FLUX_DENSITY,prefixes:N.LONG,value:1,offset:0},T:{name:"T",base:_.MAGNETIC_FLUX_DENSITY,prefixes:N.SHORT,value:1,offset:0},b:{name:"b",base:_.BIT,prefixes:N.BINARY_SHORT,value:1,offset:0},bits:{name:"bits",base:_.BIT,prefixes:N.BINARY_LONG,value:1,offset:0},B:{name:"B",base:_.BIT,prefixes:N.BINARY_SHORT,value:8,offset:0},bytes:{name:"bytes",base:_.BIT,prefixes:N.BINARY_LONG,value:8,offset:0}},T={meters:"meter",inches:"inch",feet:"foot",yards:"yard",miles:"mile",links:"link",rods:"rod",chains:"chain",angstroms:"angstrom",lt:"l",litres:"litre",liter:"litre",liters:"litre",teaspoons:"teaspoon",tablespoons:"tablespoon",minims:"minim",fluiddrams:"fluiddram",fluidounces:"fluidounce",gills:"gill",cups:"cup",pints:"pint",quarts:"quart",gallons:"gallon",beerbarrels:"beerbarrel",oilbarrels:"oilbarrel",hogsheads:"hogshead",gtts:"gtt",grams:"gram",tons:"ton",tonnes:"tonne",grains:"grain",drams:"dram",ounces:"ounce",poundmasses:"poundmass",hundredweights:"hundredweight",sticks:"stick",lb:"lbm",lbs:"lbm",kips:"kip",kgf:"kilogramforce",acres:"acre",hectares:"hectare",sqfeet:"sqft",sqyard:"sqyd",sqmile:"sqmi",sqmiles:"sqmi",mmhg:"mmHg",mmh2o:"mmH2O",cmh2o:"cmH2O",seconds:"second",secs:"second",minutes:"minute",mins:"minute",hours:"hour",hr:"hour",hrs:"hour",days:"day",weeks:"week",months:"month",years:"year",decades:"decade",centuries:"century",millennia:"millennium",hertz:"hertz",radians:"radian",degrees:"degree",gradians:"gradian",cycles:"cycle",arcsecond:"arcsec",arcseconds:"arcsec",arcminute:"arcmin",arcminutes:"arcmin",BTUs:"BTU",watts:"watt",joules:"joule",amperes:"ampere",coulombs:"coulomb",volts:"volt",ohms:"ohm",farads:"farad",webers:"weber",teslas:"tesla",electronvolts:"electronvolt",moles:"mole",bit:"bits",byte:"bytes"};function Z(e){if("BigNumber"===e.number){var t=Ze(Q);L.rad.value=new Q(1),L.deg.value=t.div(180),L.grad.value=t.div(200),L.cycle.value=t.times(2),L.arcsec.value=t.div(648e3),L.arcmin.value=t.div(10800)}else L.rad.value=1,L.deg.value=Math.PI/180,L.grad.value=Math.PI/200,L.cycle.value=2*Math.PI,L.arcsec.value=Math.PI/648e3,L.arcmin.value=Math.PI/10800;L.radian.value=L.rad.value,L.degree.value=L.deg.value,L.gradian.value=L.grad.value}Z(i),r&&r("config",(function(e,t){e.number!==t.number&&Z(e)}));var J={si:{NONE:{unit:O,prefix:N.NONE[""]},LENGTH:{unit:L.m,prefix:N.SHORT[""]},MASS:{unit:L.g,prefix:N.SHORT.k},TIME:{unit:L.s,prefix:N.SHORT[""]},CURRENT:{unit:L.A,prefix:N.SHORT[""]},TEMPERATURE:{unit:L.K,prefix:N.SHORT[""]},LUMINOUS_INTENSITY:{unit:L.cd,prefix:N.SHORT[""]},AMOUNT_OF_SUBSTANCE:{unit:L.mol,prefix:N.SHORT[""]},ANGLE:{unit:L.rad,prefix:N.SHORT[""]},BIT:{unit:L.bits,prefix:N.SHORT[""]},FORCE:{unit:L.N,prefix:N.SHORT[""]},ENERGY:{unit:L.J,prefix:N.SHORT[""]},POWER:{unit:L.W,prefix:N.SHORT[""]},PRESSURE:{unit:L.Pa,prefix:N.SHORT[""]},ELECTRIC_CHARGE:{unit:L.C,prefix:N.SHORT[""]},ELECTRIC_CAPACITANCE:{unit:L.F,prefix:N.SHORT[""]},ELECTRIC_POTENTIAL:{unit:L.V,prefix:N.SHORT[""]},ELECTRIC_RESISTANCE:{unit:L.ohm,prefix:N.SHORT[""]},ELECTRIC_INDUCTANCE:{unit:L.H,prefix:N.SHORT[""]},ELECTRIC_CONDUCTANCE:{unit:L.S,prefix:N.SHORT[""]},MAGNETIC_FLUX:{unit:L.Wb,prefix:N.SHORT[""]},MAGNETIC_FLUX_DENSITY:{unit:L.T,prefix:N.SHORT[""]},FREQUENCY:{unit:L.Hz,prefix:N.SHORT[""]}}};J.cgs=JSON.parse(JSON.stringify(J.si)),J.cgs.LENGTH={unit:L.m,prefix:N.SHORT.c},J.cgs.MASS={unit:L.g,prefix:N.SHORT[""]},J.cgs.FORCE={unit:L.dyn,prefix:N.SHORT[""]},J.cgs.ENERGY={unit:L.erg,prefix:N.NONE[""]},J.us=JSON.parse(JSON.stringify(J.si)),J.us.LENGTH={unit:L.ft,prefix:N.NONE[""]},J.us.MASS={unit:L.lbm,prefix:N.NONE[""]},J.us.TEMPERATURE={unit:L.degF,prefix:N.NONE[""]},J.us.FORCE={unit:L.lbf,prefix:N.NONE[""]},J.us.ENERGY={unit:L.BTU,prefix:N.BTU[""]},J.us.POWER={unit:L.hp,prefix:N.NONE[""]},J.us.PRESSURE={unit:L.psi,prefix:N.NONE[""]},J.auto=JSON.parse(JSON.stringify(J.si));var j=J.auto;for(var P in m.setUnitSystem=function(e){if(!V(J,e))throw new Error("Unit system "+e+" does not exist. Choices are: "+Object.keys(J).join(", "));j=J[e]},m.getUnitSystem=function(){for(var e in J)if(V(J,e)&&J[e]===j)return e},m.typeConverters={BigNumber:function(e){return new Q(e+"")},Fraction:function(e){return new y(e)},Complex:function(e){return e},number:function(e){return e}},m._getNumberConverter=function(e){if(!m.typeConverters[e])throw new TypeError('Unsupported type "'+e+'"');return m.typeConverters[e]},L)if(V(L,P)){var K=L[P];K.dimensions=K.base.dimensions}for(var W in T)if(V(T,W)){var X=L[T[W]],q={};for(var z in X)V(X,z)&&(q[z]=X[z]);q.name=W,L[W]=q}return m.isValidAlpha=function(e){return/^[a-zA-Z]$/.test(e)},m.createUnit=function(e,t){if("object"!==typeof e)throw new TypeError("createUnit expects first parameter to be of type 'Object'");if(t&&t.override)for(var A in e)if(V(e,A)&&m.deleteUnit(A),e[A].aliases)for(var n=0;n<e[A].aliases.length;n++)m.deleteUnit(e[A].aliases[n]);var r;for(var i in e)V(e,i)&&(r=m.createUnitSingle(i,e[i]));return r},m.createUnitSingle=function(e,t,A){if("undefined"!==typeof t&&null!==t||(t={}),"string"!==typeof e)throw new TypeError("createUnitSingle expects first parameter to be of type 'string'");if(V(L,e))throw new Error('Cannot create unit "'+e+'": a unit with that name already exists');!function(e){for(var t=0;t<e.length;t++){if(n=e.charAt(t),0===t&&!m.isValidAlpha(n))throw new Error('Invalid unit name (must begin with alpha character): "'+e+'"');if(t>0&&!m.isValidAlpha(n)&&!w(n))throw new Error('Invalid unit name (only alphanumeric characters are allowed): "'+e+'"')}}(e);var r,i,o,a=null,s=[],g=0;if(t&&"Unit"===t.type)a=t.clone();else if("string"===typeof t)""!==t&&(r=t);else{if("object"!==typeof t)throw new TypeError('Cannot create unit "'+e+'" from "'+t.toString()+'": expecting "string" or "Unit" or "Object"');r=t.definition,i=t.prefixes,g=t.offset,o=t.baseName,t.aliases&&(s=t.aliases.valueOf())}if(s)for(var c=0;c<s.length;c++)if(V(L,s[c]))throw new Error('Cannot create alias "'+s[c]+'": a unit with that name already exists');if(r&&"string"===typeof r&&!a)try{a=m.parse(r,{allowNoUnits:!0})}catch(b){throw b.message='Could not create unit "'+e+'" from "'+r+'": '+b.message,b}else r&&"Unit"===r.type&&(a=r.clone());s=s||[],g=g||0,i=i&&i.toUpperCase&&N[i.toUpperCase()]||N.NONE;var u={};if(a){u={name:e,value:a.value,dimensions:a.dimensions.slice(0),prefixes:i,offset:g};var l=!1;for(var I in _)if(V(_,I)){for(var C=!0,h=0;h<U.length;h++)if(Math.abs((u.dimensions[h]||0)-(_[I].dimensions[h]||0))>1e-12){C=!1;break}if(C){l=!0,u.base=_[I];break}}if(!l){o=o||e+"_STUFF";var f={dimensions:a.dimensions.slice(0)};f.key=o,_[o]=f,j[o]={unit:u,prefix:N.NONE[""]},u.base=_[o]}}else{if(o=o||e+"_STUFF",U.indexOf(o)>=0)throw new Error('Cannot create new base unit "'+e+'": a base unit with that name already exists (and cannot be overridden)');for(var d in U.push(o),_)V(_,d)&&(_[d].dimensions[U.length-1]=0);for(var B={dimensions:[]},p=0;p<U.length;p++)B.dimensions[p]=0;B.dimensions[U.length-1]=1,B.key=o,_[o]=B,u={name:e,value:1,dimensions:_[o].dimensions.slice(0),prefixes:i,offset:g,base:_[o]},j[o]={unit:u,prefix:N.NONE[""]}}m.UNITS[e]=u;for(var E=0;E<s.length;E++){var Q=s[E],y={};for(var v in u)V(u,v)&&(y[v]=u[v]);y.name=Q,m.UNITS[Q]=y}return delete k.cache,new m(null,e)},m.deleteUnit=function(e){delete m.UNITS[e]},m.PREFIXES=N,m.BASE_DIMENSIONS=U,m.BASE_UNITS=_,m.UNIT_SYSTEMS=J,m.UNITS=L,m}),{isClass:!0});var mn=Ne("unit",["typed","Unit"],(function(e){var t=e.typed,A=e.Unit;return t("unit",{Unit:function(e){return e.clone()},string:function(e){return A.isValuelessUnit(e)?new A(null,e):A.parse(e,{allowNoUnits:!0})},"number | BigNumber | Fraction | Complex, string":function(e,t){return new A(e,t)},"Array | Matrix":function(e){return it(e,this)}})}));A.d(t,"a",(function(){return Pn})),A.d(t,"b",(function(){return lr})),A.d(t,"c",(function(){return Cr}));var bn=Oe({}),wn=je({config:q}),Sn=Pe({}),Fn=Xe({}),Rn=qe({Matrix:Sn}),Dn=tt({BigNumber:wn,Complex:bn,DenseMatrix:Rn,Fraction:Fn}),Gn=ot({typed:Dn}),kn=It({config:q,typed:Dn}),xn=Ct({typed:Dn}),Nn=Ot({typed:Dn}),Un=qt({typed:Dn}),_n=BA({Fraction:Fn,typed:Dn}),Mn=pA({typed:Dn}),On=EA({typed:Dn}),Ln=QA({typed:Dn}),Tn=yA({Matrix:Sn,equalScalar:kn,typed:Dn}),Zn=vA({DenseMatrix:Rn,Matrix:Sn,SparseMatrix:Tn,typed:Dn}),Hn=xA({BigNumber:wn,DenseMatrix:Rn,SparseMatrix:Tn,config:q,matrix:Zn,typed:Dn}),Yn=MA({matrix:Zn,config:q,typed:Dn}),Jn=OA({BigNumber:wn,config:q,matrix:Zn,typed:Dn}),jn=YA({BigNumber:wn,DenseMatrix:Rn,equalScalar:kn,matrix:Zn,typed:Dn,zeros:Jn}),Pn=jA({BigNumber:wn,DenseMatrix:Rn,Fraction:Fn,config:q,equalScalar:kn,matrix:Zn,typed:Dn}),Vn=PA({DenseMatrix:Rn,config:q,matrix:Zn,typed:Dn}),Kn=VA({DenseMatrix:Rn,config:q,matrix:Zn,typed:Dn}),Wn=KA({larger:Kn,smaller:Vn}),Xn=WA({addScalar:On,conj:Ln,multiplyScalar:Nn,size:Yn,typed:Dn}),qn=XA({typed:Dn}),zn=zA({config:q,equalScalar:kn,matrix:Zn,round:jn,typed:Dn}),$n=$A({addScalar:On,dot:Xn,equalScalar:kn,matrix:Zn,multiplyScalar:Nn,typed:Dn}),er=tn({Complex:bn,config:q,fraction:_n,identity:Hn,matrix:Zn,multiply:$n,number:xn,typed:Dn}),tr=on({BigNumber:wn,typed:Dn}),Ar=an({bignumber:tr,fraction:_n,number:xn}),nr=sn({config:q,equalScalar:kn,matrix:Zn,round:jn,typed:Dn}),rr=gn({DenseMatrix:Rn,addScalar:On,equalScalar:kn,matrix:Zn,typed:Dn,unaryMinus:Mn}),ir=un({DenseMatrix:Rn,equalScalar:kn,matrix:Zn,typed:Dn}),or=ln({Complex:bn,ceil:nr,floor:zn,matrix:Zn,typed:Dn}),ar=In({numeric:Ar,typed:Dn}),sr=Cn({FibonacciHeap:Wn,addScalar:On,equalScalar:kn}),gr=hn({DenseMatrix:Rn,Spa:sr,SparseMatrix:Tn,abs:qn,addScalar:On,divideScalar:ar,equalScalar:kn,larger:Kn,matrix:Zn,multiplyScalar:Nn,subtract:rr,typed:Dn,unaryMinus:Mn}),cr=fn({lup:gr,matrix:Zn,multiply:$n,subtract:rr,typed:Dn,unaryMinus:Mn}),ur=dn({abs:qn,addScalar:On,det:cr,divideScalar:ar,identity:Hn,matrix:Zn,multiply:$n,typed:Dn,unaryMinus:Mn}),lr=Bn({divideScalar:ar,equalScalar:kn,inv:ur,matrix:Zn,multiply:$n,typed:Dn}),Ir=vn({BigNumber:wn,Complex:bn,Fraction:Fn,abs:qn,addScalar:On,config:q,divideScalar:ar,equal:ir,fix:or,format:Un,isNumeric:Gn,multiplyScalar:Nn,number:xn,pow:er,round:jn,subtract:rr}),Cr=mn({Unit:Ir,typed:Dn})},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(1242)),a=A(101),s=A(220),g=A(717),c=(A(195),A(19)),u=A(69),l=A(40),I=A(28),C=A(39),h=A(148),f=A(201),d=A(165),B=A(532),p=A(1250),E=A(1160),Q=A(51),y=A(66),v=A(402);var m=A(287),b=A(137),w=A(414);function S(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function F(e){return parseInt(window.getComputedStyle(e)["padding-right"],10)||0}function R(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],r=arguments.length>4?arguments[4]:void 0,i=[t,A].concat(Object(b.a)(n)),o=["TEMPLATE","SCRIPT","STYLE"];[].forEach.call(e.children,(function(e){1===e.nodeType&&-1===i.indexOf(e)&&-1===o.indexOf(e.tagName)&&S(e,r)}))}function D(e,t){var A=-1;return e.some((function(e,n){return!!t(e)&&(A=n,!0)})),A}function G(e,t){var A,n=[],r=[],i=e.container;if(!t.disableScrollLock){if(function(e){var t=Object(u.a)(e);return t.body===e?Object(f.a)(t).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}(i)){var o=Object(w.a)();n.push({value:i.style.paddingRight,key:"padding-right",el:i}),i.style["padding-right"]="".concat(F(i)+o,"px"),A=Object(u.a)(i).querySelectorAll(".mui-fixed"),[].forEach.call(A,(function(e){r.push(e.style.paddingRight),e.style.paddingRight="".concat(F(e)+o,"px")}))}var a=i.parentElement,s="HTML"===a.nodeName&&"scroll"===window.getComputedStyle(a)["overflow-y"]?a:i;n.push({value:s.style.overflow,key:"overflow",el:s}),s.style.overflow="hidden"}return function(){A&&[].forEach.call(A,(function(e,t){r[t]?e.style.paddingRight=r[t]:e.style.removeProperty("padding-right")})),n.forEach((function(e){var t=e.value,A=e.el,n=e.key;t?A.style.setProperty(n,t):A.style.removeProperty(n)}))}}var k=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.modals=[],this.containers=[]}return Object(m.a)(e,[{key:"add",value:function(e,t){var A=this.modals.indexOf(e);if(-1!==A)return A;A=this.modals.length,this.modals.push(e),e.modalRef&&S(e.modalRef,!1);var n=function(e){var t=[];return[].forEach.call(e.children,(function(e){e.getAttribute&&"true"===e.getAttribute("aria-hidden")&&t.push(e)})),t}(t);R(t,e.mountNode,e.modalRef,n,!0);var r=D(this.containers,(function(e){return e.container===t}));return-1!==r?(this.containers[r].modals.push(e),A):(this.containers.push({modals:[e],container:t,restore:null,hiddenSiblingNodes:n}),A)}},{key:"mount",value:function(e,t){var A=D(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),n=this.containers[A];n.restore||(n.restore=G(n,t))}},{key:"remove",value:function(e){var t=this.modals.indexOf(e);if(-1===t)return t;var A=D(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),n=this.containers[A];if(n.modals.splice(n.modals.indexOf(e),1),this.modals.splice(t,1),0===n.modals.length)n.restore&&n.restore(),e.modalRef&&S(e.modalRef,!0),R(n.container,e.mountNode,e.modalRef,n.hiddenSiblingNodes,!1),this.containers.splice(A,1);else{var r=n.modals[n.modals.length-1];r.modalRef&&S(r.modalRef,!1)}return t}},{key:"isTopModal",value:function(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}}]),e}();var x=function(e){var t=e.children,A=e.disableAutoFocus,n=void 0!==A&&A,r=e.disableEnforceFocus,o=void 0!==r&&r,a=e.disableRestoreFocus,s=void 0!==a&&a,g=e.getDoc,c=e.isEnabled,l=e.open,I=i.useRef(),h=i.useRef(null),f=i.useRef(null),d=i.useRef(),B=i.useRef(null),p=i.useCallback((function(e){B.current=C.findDOMNode(e)}),[]),E=Object(Q.a)(t.ref,p),y=i.useRef();return i.useEffect((function(){y.current=l}),[l]),!y.current&&l&&"undefined"!==typeof window&&(d.current=g().activeElement),i.useEffect((function(){if(l){var e=Object(u.a)(B.current);n||!B.current||B.current.contains(e.activeElement)||(B.current.hasAttribute("tabIndex")||B.current.setAttribute("tabIndex",-1),B.current.focus());var t=function(){null!==B.current&&(e.hasFocus()&&!o&&c()&&!I.current?B.current&&!B.current.contains(e.activeElement)&&B.current.focus():I.current=!1)},A=function(t){!o&&c()&&9===t.keyCode&&e.activeElement===B.current&&(I.current=!0,t.shiftKey?f.current.focus():h.current.focus())};e.addEventListener("focus",t,!0),e.addEventListener("keydown",A,!0);var r=setInterval((function(){t()}),50);return function(){clearInterval(r),e.removeEventListener("focus",t,!0),e.removeEventListener("keydown",A,!0),s||(d.current&&d.current.focus&&d.current.focus(),d.current=null)}}}),[n,o,s,c,l]),i.createElement(i.Fragment,null,i.createElement("div",{tabIndex:0,ref:h,"data-test":"sentinelStart"}),i.cloneElement(t,{ref:E}),i.createElement("div",{tabIndex:0,ref:f,"data-test":"sentinelEnd"}))},N={root:{zIndex:-1,position:"fixed",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},invisible:{backgroundColor:"transparent"}},U=i.forwardRef((function(e,t){var A=e.invisible,o=void 0!==A&&A,a=e.open,s=Object(r.a)(e,["invisible","open"]);return a?i.createElement("div",Object(n.a)({"aria-hidden":!0,ref:t},s,{style:Object(n.a)({},N.root,o?N.invisible:{},s.style)})):null}));var _=new k,M=i.forwardRef((function(e,t){var A=Object(B.a)(),o=Object(p.a)({name:"MuiModal",props:Object(n.a)({},e),theme:A}),a=o.BackdropComponent,s=void 0===a?U:a,g=o.BackdropProps,c=o.children,l=o.closeAfterTransition,I=void 0!==l&&l,h=o.container,f=o.disableAutoFocus,m=void 0!==f&&f,b=o.disableBackdropClick,w=void 0!==b&&b,F=o.disableEnforceFocus,R=void 0!==F&&F,D=o.disableEscapeKeyDown,G=void 0!==D&&D,k=o.disablePortal,N=void 0!==k&&k,M=o.disableRestoreFocus,O=void 0!==M&&M,L=o.disableScrollLock,T=void 0!==L&&L,Z=o.hideBackdrop,H=void 0!==Z&&Z,Y=o.keepMounted,J=void 0!==Y&&Y,j=o.manager,P=void 0===j?_:j,V=o.onBackdropClick,K=o.onClose,W=o.onEscapeKeyDown,X=o.onRendered,q=o.open,z=Object(r.a)(o,["BackdropComponent","BackdropProps","children","closeAfterTransition","container","disableAutoFocus","disableBackdropClick","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","manager","onBackdropClick","onClose","onEscapeKeyDown","onRendered","open"]),$=i.useState(!0),ee=$[0],te=$[1],Ae=i.useRef({}),ne=i.useRef(null),re=i.useRef(null),ie=Object(Q.a)(re,t),oe=function(e){return!!e.children&&e.children.props.hasOwnProperty("in")}(o),ae=function(){return Object(u.a)(ne.current)},se=function(){return Ae.current.modalRef=re.current,Ae.current.mountNode=ne.current,Ae.current},ge=function(){P.mount(se(),{disableScrollLock:T}),re.current.scrollTop=0},ce=Object(y.a)((function(){var e=function(e){return e="function"===typeof e?e():e,C.findDOMNode(e)}(h)||ae().body;P.add(se(),e),re.current&&ge()})),ue=i.useCallback((function(){return P.isTopModal(se())}),[P]),le=Object(y.a)((function(e){ne.current=e,e&&(X&&X(),q&&ue()?ge():S(re.current,!0))})),Ie=i.useCallback((function(){P.remove(se())}),[P]);if(i.useEffect((function(){return function(){Ie()}}),[Ie]),i.useEffect((function(){q?ce():oe&&I||Ie()}),[q,Ie,oe,I,ce]),!J&&!q&&(!oe||ee))return null;var Ce=function(e){return{root:{position:"fixed",zIndex:e.zIndex.modal,right:0,bottom:0,top:0,left:0},hidden:{visibility:"hidden"}}}(A||{zIndex:v.a}),he={};return void 0===c.props.tabIndex&&(he.tabIndex=c.props.tabIndex||"-1"),oe&&(he.onEnter=Object(d.a)((function(){te(!1)}),c.props.onEnter),he.onExited=Object(d.a)((function(){te(!0),I&&Ie()}),c.props.onExited)),i.createElement(E.a,{ref:le,container:h,disablePortal:N},i.createElement("div",Object(n.a)({ref:ie,onKeyDown:function(e){"Escape"===e.key&&ue()&&(W&&W(e),G||(e.stopPropagation(),K&&K(e,"escapeKeyDown")))},role:"presentation"},z,{style:Object(n.a)({},Ce.root,!q&&ee?Ce.hidden:{},z.style)}),H?null:i.createElement(s,Object(n.a)({open:q,onClick:function(e){e.target===e.currentTarget&&(V&&V(e),!w&&K&&K(e,"backdropClick"))}},g)),i.createElement(x,{disableEnforceFocus:R,disableAutoFocus:m,disableRestoreFocus:O,getDoc:ae,isEnabled:ue,open:q},i.cloneElement(c,he))))})),O=A(1166),L=A(114),T=A(151);function Z(e){return"scale(".concat(e,", ").concat(Math.pow(e,2),")")}var H={entering:{opacity:1,transform:Z(1)},entered:{opacity:1,transform:"none"}},Y=i.forwardRef((function(e,t){var A=e.children,o=e.disableStrictModeCompat,s=void 0!==o&&o,g=e.in,c=e.onEnter,u=e.onEntered,l=e.onEntering,I=e.onExit,C=e.onExited,h=e.onExiting,f=e.style,d=e.timeout,B=void 0===d?"auto":d,p=e.TransitionComponent,E=void 0===p?O.a:p,y=Object(r.a)(e,["children","disableStrictModeCompat","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"]),v=i.useRef(),m=i.useRef(),b=Object(L.a)(),w=b.unstable_strictMode&&!s,S=i.useRef(null),F=Object(Q.a)(A.ref,t),R=Object(Q.a)(w?S:void 0,F),D=function(e){return function(t,A){if(e){var n=w?[S.current,t]:[t,A],r=Object(a.a)(n,2),i=r[0],o=r[1];void 0===o?e(i):e(i,o)}}},G=D(l),k=D((function(e,t){Object(T.b)(e);var A,n=Object(T.a)({style:f,timeout:B},{mode:"enter"}),r=n.duration,i=n.delay;"auto"===B?(A=b.transitions.getAutoHeightDuration(e.clientHeight),m.current=A):A=r,e.style.transition=[b.transitions.create("opacity",{duration:A,delay:i}),b.transitions.create("transform",{duration:.666*A,delay:i})].join(","),c&&c(e,t)})),x=D(u),N=D(h),U=D((function(e){var t,A=Object(T.a)({style:f,timeout:B},{mode:"exit"}),n=A.duration,r=A.delay;"auto"===B?(t=b.transitions.getAutoHeightDuration(e.clientHeight),m.current=t):t=n,e.style.transition=[b.transitions.create("opacity",{duration:t,delay:r}),b.transitions.create("transform",{duration:.666*t,delay:r||.333*t})].join(","),e.style.opacity="0",e.style.transform=Z(.75),I&&I(e)})),_=D(C);return i.useEffect((function(){return function(){clearTimeout(v.current)}}),[]),i.createElement(E,Object(n.a)({appear:!0,in:g,nodeRef:w?S:void 0,onEnter:k,onEntered:x,onEntering:G,onExit:U,onExited:_,onExiting:N,addEndListener:function(e,t){var A=w?e:t;"auto"===B&&(v.current=setTimeout(A,m.current||0))},timeout:"auto"===B?null:B},y),(function(e,t){return i.cloneElement(A,Object(n.a)({style:Object(n.a)({opacity:0,transform:Z(.75),visibility:"exited"!==e||g?void 0:"hidden"},H[e],f,A.props.style),ref:R},t))}))}));Y.muiSupportAuto=!0;var J=Y,j=A(1254);function P(e,t){var A=0;return"number"===typeof t?A=t:"center"===t?A=e.height/2:"bottom"===t&&(A=e.height),A}function V(e,t){var A=0;return"number"===typeof t?A=t:"center"===t?A=e.width/2:"right"===t&&(A=e.width),A}function K(e){return[e.horizontal,e.vertical].map((function(e){return"number"===typeof e?"".concat(e,"px"):e})).join(" ")}function W(e){return"function"===typeof e?e():e}var X=i.forwardRef((function(e,t){var A=e.action,o=e.anchorEl,a=e.anchorOrigin,s=void 0===a?{vertical:"top",horizontal:"left"}:a,g=e.anchorPosition,l=e.anchorReference,I=void 0===l?"anchorEl":l,B=e.children,p=e.classes,E=e.className,Q=e.container,y=e.elevation,v=void 0===y?8:y,m=e.getContentAnchorEl,b=e.marginThreshold,w=void 0===b?16:b,S=e.onEnter,F=e.onEntered,R=e.onEntering,D=e.onExit,G=e.onExited,k=e.onExiting,x=e.open,N=e.PaperProps,U=void 0===N?{}:N,_=e.transformOrigin,O=void 0===_?{vertical:"top",horizontal:"left"}:_,L=e.TransitionComponent,T=void 0===L?J:L,Z=e.transitionDuration,H=void 0===Z?"auto":Z,Y=e.TransitionProps,X=void 0===Y?{}:Y,q=Object(r.a)(e,["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","classes","className","container","elevation","getContentAnchorEl","marginThreshold","onEnter","onEntered","onEntering","onExit","onExited","onExiting","open","PaperProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"]),z=i.useRef(),$=i.useCallback((function(e){if("anchorPosition"===I)return g;var t=W(o),A=(t&&1===t.nodeType?t:Object(u.a)(z.current).body).getBoundingClientRect(),n=0===e?s.vertical:"center";return{top:A.top+P(A,n),left:A.left+V(A,s.horizontal)}}),[o,s.horizontal,s.vertical,g,I]),ee=i.useCallback((function(e){var t=0;if(m&&"anchorEl"===I){var A=m(e);if(A&&e.contains(A)){var n=function(e,t){for(var A=t,n=0;A&&A!==e;)n+=(A=A.parentElement).scrollTop;return n}(e,A);t=A.offsetTop+A.clientHeight/2-n||0}0}return t}),[s.vertical,I,m]),te=i.useCallback((function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return{vertical:P(e,O.vertical)+t,horizontal:V(e,O.horizontal)}}),[O.horizontal,O.vertical]),Ae=i.useCallback((function(e){var t=ee(e),A={width:e.offsetWidth,height:e.offsetHeight},n=te(A,t);if("none"===I)return{top:null,left:null,transformOrigin:K(n)};var r=$(t),i=r.top-n.vertical,a=r.left-n.horizontal,s=i+A.height,g=a+A.width,c=Object(f.a)(W(o)),u=c.innerHeight-w,l=c.innerWidth-w;if(i<w){var C=i-w;i-=C,n.vertical+=C}else if(s>u){var h=s-u;i-=h,n.vertical+=h}if(a<w){var d=a-w;a-=d,n.horizontal+=d}else if(g>l){var B=g-l;a-=B,n.horizontal+=B}return{top:"".concat(Math.round(i),"px"),left:"".concat(Math.round(a),"px"),transformOrigin:K(n)}}),[o,I,$,ee,te,w]),ne=i.useCallback((function(){var e=z.current;if(e){var t=Ae(e);null!==t.top&&(e.style.top=t.top),null!==t.left&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin}}),[Ae]),re=i.useCallback((function(e){z.current=C.findDOMNode(e)}),[]);i.useEffect((function(){x&&ne()})),i.useImperativeHandle(A,(function(){return x?{updatePosition:function(){ne()}}:null}),[x,ne]),i.useEffect((function(){if(x){var e=Object(h.a)((function(){ne()}));return window.addEventListener("resize",e),function(){e.clear(),window.removeEventListener("resize",e)}}}),[x,ne]);var ie=H;"auto"!==H||T.muiSupportAuto||(ie=void 0);var oe=Q||(o?Object(u.a)(W(o)).body:void 0);return i.createElement(M,Object(n.a)({container:oe,open:x,ref:t,BackdropProps:{invisible:!0},className:Object(c.a)(p.root,E)},q),i.createElement(T,Object(n.a)({appear:!0,in:x,onEnter:S,onEntered:F,onExit:D,onExited:G,onExiting:k,timeout:ie},X,{onEntering:Object(d.a)((function(e,t){R&&R(e,t),ne()}),X.onEntering)}),i.createElement(j.a,Object(n.a)({elevation:v,ref:re},U,{className:Object(c.a)(p.paper,U.className)}),B)))})),q=Object(I.a)({root:{},paper:{position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}},{name:"MuiPopover"})(X),z=A(1300),$=A(136),ee={vertical:"top",horizontal:"right"},te={vertical:"top",horizontal:"left"},Ae=i.forwardRef((function(e,t){var A=e.autoFocus,o=void 0===A||A,a=e.children,s=e.classes,g=e.disableAutoFocusItem,u=void 0!==g&&g,l=e.MenuListProps,I=void 0===l?{}:l,h=e.onClose,f=e.onEntering,d=e.open,B=e.PaperProps,p=void 0===B?{}:B,E=e.PopoverClasses,Q=e.transitionDuration,y=void 0===Q?"auto":Q,v=e.TransitionProps,m=(v=void 0===v?{}:v).onEntering,b=Object(r.a)(v,["onEntering"]),w=e.variant,S=void 0===w?"selectedMenu":w,F=Object(r.a)(e,["autoFocus","children","classes","disableAutoFocusItem","MenuListProps","onClose","onEntering","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant"]),R=Object(L.a)(),D=o&&!u&&d,G=i.useRef(null),k=i.useRef(null),x=-1;i.Children.map(a,(function(e,t){i.isValidElement(e)&&(e.props.disabled||("menu"!==S&&e.props.selected||-1===x)&&(x=t))}));var N=i.Children.map(a,(function(e,t){return t===x?i.cloneElement(e,{ref:function(t){k.current=C.findDOMNode(t),Object($.a)(e.ref,t)}}):e}));return i.createElement(q,Object(n.a)({getContentAnchorEl:function(){return k.current},classes:E,onClose:h,TransitionProps:Object(n.a)({onEntering:function(e,t){G.current&&G.current.adjustStyleForScrollbar(e,R),f&&f(e,t),m&&m(e,t)}},b),anchorOrigin:"rtl"===R.direction?ee:te,transformOrigin:"rtl"===R.direction?ee:te,PaperProps:Object(n.a)({},p,{classes:Object(n.a)({},p.classes,{root:s.paper})}),open:d,ref:t,transitionDuration:y},F),i.createElement(z.a,Object(n.a)({onKeyDown:function(e){"Tab"===e.key&&(e.preventDefault(),h&&h(e,"tabKeyDown"))},actions:G,autoFocus:o&&(-1===x||u),autoFocusItem:D,variant:S},I,{className:Object(c.a)(s.list,I.className)}),N))})),ne=Object(I.a)({paper:{maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"},list:{outline:0}},{name:"MuiMenu"})(Ae),re=A(231),ie=A(160);function oe(e,t){return"object"===Object(s.a)(t)&&null!==t?e===t:String(e)===String(t)}var ae=i.forwardRef((function(e,t){var A=e["aria-label"],o=e.autoFocus,s=e.autoWidth,I=e.children,C=e.classes,h=e.className,f=e.defaultValue,d=e.disabled,B=e.displayEmpty,p=e.IconComponent,E=e.inputRef,y=e.labelId,v=e.MenuProps,m=void 0===v?{}:v,b=e.multiple,w=e.name,S=e.onBlur,F=e.onChange,R=e.onClose,D=e.onFocus,G=e.onOpen,k=e.open,x=e.readOnly,N=e.renderValue,U=e.SelectDisplayProps,_=void 0===U?{}:U,M=e.tabIndex,O=(e.type,e.value),L=e.variant,T=void 0===L?"standard":L,Z=Object(r.a)(e,["aria-label","autoFocus","autoWidth","children","classes","className","defaultValue","disabled","displayEmpty","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"]),H=Object(ie.a)({controlled:O,default:f,name:"Select"}),Y=Object(a.a)(H,2),J=Y[0],j=Y[1],P=i.useRef(null),V=i.useState(null),K=V[0],W=V[1],X=i.useRef(null!=k).current,q=i.useState(),z=q[0],$=q[1],ee=i.useState(!1),te=ee[0],Ae=ee[1],ae=Object(Q.a)(t,E);i.useImperativeHandle(ae,(function(){return{focus:function(){K.focus()},node:P.current,value:J}}),[K,J]),i.useEffect((function(){o&&K&&K.focus()}),[o,K]),i.useEffect((function(){if(K){var e=Object(u.a)(K).getElementById(y);if(e){var t=function(){getSelection().isCollapsed&&K.focus()};return e.addEventListener("click",t),function(){e.removeEventListener("click",t)}}}}),[y,K]);var se,ge,ce=function(e,t){e?G&&G(t):R&&R(t),X||($(s?null:K.clientWidth),Ae(e))},ue=i.Children.toArray(I),le=function(e){return function(t){var A;if(b||ce(!1,t),b){A=Array.isArray(J)?J.slice():[];var n=J.indexOf(e.props.value);-1===n?A.push(e.props.value):A.splice(n,1)}else A=e.props.value;e.props.onClick&&e.props.onClick(t),J!==A&&(j(A),F&&(t.persist(),Object.defineProperty(t,"target",{writable:!0,value:{value:A,name:w}}),F(t,e)))}},Ie=null!==K&&(X?k:te);delete Z["aria-invalid"];var Ce=[],he=!1;(Object(re.b)({value:J})||B)&&(N?se=N(J):he=!0);var fe=ue.map((function(e){if(!i.isValidElement(e))return null;var t;if(b){if(!Array.isArray(J))throw new Error(Object(g.a)(2));(t=J.some((function(t){return oe(t,e.props.value)})))&&he&&Ce.push(e.props.children)}else(t=oe(J,e.props.value))&&he&&(ge=e.props.children);return t&&!0,i.cloneElement(e,{"aria-selected":t?"true":void 0,onClick:le(e),onKeyUp:function(t){" "===t.key&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:"option",selected:t,value:void 0,"data-value":e.props.value})}));he&&(se=b?Ce.join(", "):ge);var de,Be=z;!s&&X&&K&&(Be=K.clientWidth),de="undefined"!==typeof M?M:d?null:0;var pe=_.id||(w?"mui-component-select-".concat(w):void 0);return i.createElement(i.Fragment,null,i.createElement("div",Object(n.a)({className:Object(c.a)(C.root,C.select,C.selectMenu,C[T],h,d&&C.disabled),ref:W,tabIndex:de,role:"button","aria-disabled":d?"true":void 0,"aria-expanded":Ie?"true":void 0,"aria-haspopup":"listbox","aria-label":A,"aria-labelledby":[y,pe].filter(Boolean).join(" ")||void 0,onKeyDown:function(e){if(!x){-1!==[" ","ArrowUp","ArrowDown","Enter"].indexOf(e.key)&&(e.preventDefault(),ce(!0,e))}},onMouseDown:d||x?null:function(e){0===e.button&&(e.preventDefault(),K.focus(),ce(!0,e))},onBlur:function(e){!Ie&&S&&(e.persist(),Object.defineProperty(e,"target",{writable:!0,value:{value:J,name:w}}),S(e))},onFocus:D},_,{id:pe}),function(e){return null==e||"string"===typeof e&&!e.trim()}(se)?i.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}}):se),i.createElement("input",Object(n.a)({value:Array.isArray(J)?J.join(","):J,name:w,ref:P,"aria-hidden":!0,onChange:function(e){var t=ue.map((function(e){return e.props.value})).indexOf(e.target.value);if(-1!==t){var A=ue[t];j(A.props.value),F&&F(e,A)}},tabIndex:-1,className:C.nativeInput,autoFocus:o},Z)),i.createElement(p,{className:Object(c.a)(C.icon,C["icon".concat(Object(l.a)(T))],Ie&&C.iconOpen,d&&C.disabled)}),i.createElement(ne,Object(n.a)({id:"menu-".concat(w||""),anchorEl:K,open:Ie,onClose:function(e){ce(!1,e)}},m,{MenuListProps:Object(n.a)({"aria-labelledby":y,role:"listbox",disableListWrap:!0},m.MenuListProps),PaperProps:Object(n.a)({},m.PaperProps,{style:Object(n.a)({minWidth:Be},null!=m.PaperProps?m.PaperProps.style:null)})}),fe))})),se=A(166),ge=A(167),ce=A(113),ue=Object(ce.a)(i.createElement("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),le=A(230);function Ie(e,t){return parseInt(e[t],10)||0}var Ce="undefined"!==typeof window?i.useLayoutEffect:i.useEffect,he={visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"},fe=i.forwardRef((function(e,t){var A=e.onChange,o=e.rows,a=e.rowsMax,s=e.rowsMin,g=e.maxRows,c=e.minRows,u=void 0===c?1:c,l=e.style,I=e.value,C=Object(r.a)(e,["onChange","rows","rowsMax","rowsMin","maxRows","minRows","style","value"]),f=g||a,d=o||s||u,B=i.useRef(null!=I).current,p=i.useRef(null),E=Object(Q.a)(t,p),y=i.useRef(null),v=i.useRef(0),m=i.useState({}),b=m[0],w=m[1],S=i.useCallback((function(){var t=p.current,A=window.getComputedStyle(t),n=y.current;n.style.width=A.width,n.value=t.value||e.placeholder||"x","\n"===n.value.slice(-1)&&(n.value+=" ");var r=A["box-sizing"],i=Ie(A,"padding-bottom")+Ie(A,"padding-top"),o=Ie(A,"border-bottom-width")+Ie(A,"border-top-width"),a=n.scrollHeight-i;n.value="x";var s=n.scrollHeight-i,g=a;d&&(g=Math.max(Number(d)*s,g)),f&&(g=Math.min(Number(f)*s,g));var c=(g=Math.max(g,s))+("border-box"===r?i+o:0),u=Math.abs(g-a)<=1;w((function(e){return v.current<20&&(c>0&&Math.abs((e.outerHeightStyle||0)-c)>1||e.overflow!==u)?(v.current+=1,{overflow:u,outerHeightStyle:c}):e}))}),[f,d,e.placeholder]);i.useEffect((function(){var e=Object(h.a)((function(){v.current=0,S()}));return window.addEventListener("resize",e),function(){e.clear(),window.removeEventListener("resize",e)}}),[S]),Ce((function(){S()})),i.useEffect((function(){v.current=0}),[I]);return i.createElement(i.Fragment,null,i.createElement("textarea",Object(n.a)({value:I,onChange:function(e){v.current=0,B||S(),A&&A(e)},ref:E,rows:d,style:Object(n.a)({height:b.outerHeightStyle,overflow:b.overflow?"hidden":null},l)},C)),i.createElement("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:y,tabIndex:-1,style:Object(n.a)({},he,l)}))})),de="undefined"===typeof window?i.useEffect:i.useLayoutEffect,Be=i.forwardRef((function(e,t){var A=e["aria-describedby"],o=e.autoComplete,a=e.autoFocus,s=e.classes,u=e.className,I=(e.color,e.defaultValue),C=e.disabled,h=e.endAdornment,f=(e.error,e.fullWidth),d=void 0!==f&&f,B=e.id,p=e.inputComponent,E=void 0===p?"input":p,y=e.inputProps,v=void 0===y?{}:y,m=e.inputRef,b=(e.margin,e.multiline),w=void 0!==b&&b,S=e.name,F=e.onBlur,R=e.onChange,D=e.onClick,G=e.onFocus,k=e.onKeyDown,x=e.onKeyUp,N=e.placeholder,U=e.readOnly,_=e.renderSuffix,M=e.rows,O=e.rowsMax,L=e.rowsMin,T=e.maxRows,Z=e.minRows,H=e.startAdornment,Y=e.type,J=void 0===Y?"text":Y,j=e.value,P=Object(r.a)(e,["aria-describedby","autoComplete","autoFocus","classes","className","color","defaultValue","disabled","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","rowsMax","rowsMin","maxRows","minRows","startAdornment","type","value"]),V=null!=v.value?v.value:j,K=i.useRef(null!=V).current,W=i.useRef(),X=i.useCallback((function(e){0}),[]),q=Object(Q.a)(v.ref,X),z=Object(Q.a)(m,q),$=Object(Q.a)(W,z),ee=i.useState(!1),te=ee[0],Ae=ee[1],ne=Object(le.b)();var ie=Object(se.a)({props:e,muiFormControl:ne,states:["color","disabled","error","hiddenLabel","margin","required","filled"]});ie.focused=ne?ne.focused:te,i.useEffect((function(){!ne&&C&&te&&(Ae(!1),F&&F())}),[ne,C,te,F]);var oe=ne&&ne.onFilled,ae=ne&&ne.onEmpty,ge=i.useCallback((function(e){Object(re.b)(e)?oe&&oe():ae&&ae()}),[oe,ae]);de((function(){K&&ge({value:V})}),[V,ge,K]);i.useEffect((function(){ge(W.current)}),[]);var ce=E,ue=Object(n.a)({},v,{ref:$});"string"!==typeof ce?ue=Object(n.a)({inputRef:$,type:J},ue,{ref:null}):w?!M||T||Z||O||L?(ue=Object(n.a)({minRows:M||Z,rowsMax:O,maxRows:T},ue),ce=fe):ce="textarea":ue=Object(n.a)({type:J},ue);return i.useEffect((function(){ne&&ne.setAdornedStart(Boolean(H))}),[ne,H]),i.createElement("div",Object(n.a)({className:Object(c.a)(s.root,s["color".concat(Object(l.a)(ie.color||"primary"))],u,ie.disabled&&s.disabled,ie.error&&s.error,d&&s.fullWidth,ie.focused&&s.focused,ne&&s.formControl,w&&s.multiline,H&&s.adornedStart,h&&s.adornedEnd,"dense"===ie.margin&&s.marginDense),onClick:function(e){W.current&&e.currentTarget===e.target&&W.current.focus(),D&&D(e)},ref:t},P),H,i.createElement(le.a.Provider,{value:null},i.createElement(ce,Object(n.a)({"aria-invalid":ie.error,"aria-describedby":A,autoComplete:o,autoFocus:a,defaultValue:I,disabled:ie.disabled,id:B,onAnimationStart:function(e){ge("mui-auto-fill-cancel"===e.animationName?W.current:{value:"x"})},name:S,placeholder:N,readOnly:U,required:ie.required,rows:M,value:V,onKeyDown:k,onKeyUp:x},ue,{className:Object(c.a)(s.input,v.className,ie.disabled&&s.disabled,w&&s.inputMultiline,ie.hiddenLabel&&s.inputHiddenLabel,H&&s.inputAdornedStart,h&&s.inputAdornedEnd,"search"===J&&s.inputTypeSearch,"dense"===ie.margin&&s.inputMarginDense),onBlur:function(e){F&&F(e),v.onBlur&&v.onBlur(e),ne&&ne.onBlur?ne.onBlur(e):Ae(!1)},onChange:function(e){if(!K){var t=e.target||W.current;if(null==t)throw new Error(Object(g.a)(1));ge({value:t.value})}for(var A=arguments.length,n=new Array(A>1?A-1:0),r=1;r<A;r++)n[r-1]=arguments[r];v.onChange&&v.onChange.apply(v,[e].concat(n)),R&&R.apply(void 0,[e].concat(n))},onFocus:function(e){ie.disabled?e.stopPropagation():(G&&G(e),v.onFocus&&v.onFocus(e),ne&&ne.onFocus?ne.onFocus(e):Ae(!0))}}))),h,_?_(Object(n.a)({},ie,{startAdornment:H})):null)})),pe=Object(I.a)((function(e){var t="light"===e.palette.type,A={color:"currentColor",opacity:t?.42:.5,transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},i={opacity:t?.42:.5};return{"@global":{"@keyframes mui-auto-fill":{},"@keyframes mui-auto-fill-cancel":{}},root:Object(n.a)({},e.typography.body1,{color:e.palette.text.primary,lineHeight:"1.1876em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center","&$disabled":{color:e.palette.text.disabled,cursor:"default"}}),formControl:{},focused:{},disabled:{},adornedStart:{},adornedEnd:{},error:{},marginDense:{},multiline:{padding:"".concat(6,"px 0 ").concat(7,"px"),"&$marginDense":{paddingTop:3}},colorSecondary:{},fullWidth:{width:"100%"},input:{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"".concat(6,"px 0 ").concat(7,"px"),border:0,boxSizing:"content-box",background:"none",height:"1.1876em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":A,"&::-moz-placeholder":A,"&:-ms-input-placeholder":A,"&::-ms-input-placeholder":A,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{"-webkit-appearance":"none"},"label[data-shrink=false] + $formControl &":{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&:-ms-input-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":i,"&:focus::-moz-placeholder":i,"&:focus:-ms-input-placeholder":i,"&:focus::-ms-input-placeholder":i},"&$disabled":{opacity:1},"&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}},inputMarginDense:{paddingTop:3},inputMultiline:{height:"auto",resize:"none",padding:0},inputTypeSearch:{"-moz-appearance":"textfield","-webkit-appearance":"textfield"},inputAdornedStart:{},inputAdornedEnd:{},inputHiddenLabel:{}}}),{name:"MuiInputBase"})(Be),Ee=i.forwardRef((function(e,t){var A=e.disableUnderline,o=e.classes,a=e.fullWidth,s=void 0!==a&&a,g=e.inputComponent,u=void 0===g?"input":g,l=e.multiline,I=void 0!==l&&l,C=e.type,h=void 0===C?"text":C,f=Object(r.a)(e,["disableUnderline","classes","fullWidth","inputComponent","multiline","type"]);return i.createElement(pe,Object(n.a)({classes:Object(n.a)({},o,{root:Object(c.a)(o.root,!A&&o.underline),underline:null}),fullWidth:s,inputComponent:u,multiline:I,ref:t,type:h},f))}));Ee.muiName="Input";var Qe=Object(I.a)((function(e){var t="light"===e.palette.type?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return{root:{position:"relative"},formControl:{"label + &":{marginTop:16}},focused:{},disabled:{},colorSecondary:{"&$underline:after":{borderBottomColor:e.palette.secondary.main}},underline:{"&:after":{borderBottom:"2px solid ".concat(e.palette.primary.main),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},"&$focused:after":{transform:"scaleX(1)"},"&$error:after":{borderBottomColor:e.palette.error.main,transform:"scaleX(1)"},"&:before":{borderBottom:"1px solid ".concat(t),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},"&:hover:not($disabled):before":{borderBottom:"2px solid ".concat(e.palette.text.primary),"@media (hover: none)":{borderBottom:"1px solid ".concat(t)}},"&$disabled:before":{borderBottomStyle:"dotted"}},error:{},marginDense:{},multiline:{},fullWidth:{},input:{},inputMarginDense:{},inputMultiline:{},inputTypeSearch:{}}}),{name:"MuiInput"})(Ee),ye=i.forwardRef((function(e,t){var A=e.classes,o=e.className,a=e.disabled,s=e.IconComponent,g=e.inputRef,u=e.variant,I=void 0===u?"standard":u,C=Object(r.a)(e,["classes","className","disabled","IconComponent","inputRef","variant"]);return i.createElement(i.Fragment,null,i.createElement("select",Object(n.a)({className:Object(c.a)(A.root,A.select,A[I],o,a&&A.disabled),disabled:a,ref:g||t},C)),e.multiple?null:i.createElement(s,{className:Object(c.a)(A.icon,A["icon".concat(Object(l.a)(I))],a&&A.disabled)}))})),ve=function(e){return{root:{},select:{"-moz-appearance":"none","-webkit-appearance":"none",userSelect:"none",borderRadius:0,minWidth:16,cursor:"pointer","&:focus":{backgroundColor:"light"===e.palette.type?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)",borderRadius:0},"&::-ms-expand":{display:"none"},"&$disabled":{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:e.palette.background.paper},"&&":{paddingRight:24}},filled:{"&&":{paddingRight:32}},outlined:{borderRadius:e.shape.borderRadius,"&&":{paddingRight:32}},selectMenu:{height:"auto",minHeight:"1.1876em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},disabled:{},icon:{position:"absolute",right:0,top:"calc(50% - 12px)",pointerEvents:"none",color:e.palette.action.active,"&$disabled":{color:e.palette.action.disabled}},iconOpen:{transform:"rotate(180deg)"},iconFilled:{right:7},iconOutlined:{right:7},nativeInput:{bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%"}}},me=i.createElement(Qe,null),be=i.forwardRef((function(e,t){var A=e.children,o=e.classes,a=e.IconComponent,s=void 0===a?ue:a,g=e.input,c=void 0===g?me:g,u=e.inputProps,l=(e.variant,Object(r.a)(e,["children","classes","IconComponent","input","inputProps","variant"])),I=Object(ge.a)(),C=Object(se.a)({props:e,muiFormControl:I,states:["variant"]});return i.cloneElement(c,Object(n.a)({inputComponent:ye,inputProps:Object(n.a)({children:A,classes:o,IconComponent:s,variant:C.variant,type:void 0},u,c?c.props.inputProps:{}),ref:t},l))}));be.muiName="Select";Object(I.a)(ve,{name:"MuiNativeSelect"})(be);var we=i.forwardRef((function(e,t){var A=e.disableUnderline,o=e.classes,a=e.fullWidth,s=void 0!==a&&a,g=e.inputComponent,u=void 0===g?"input":g,l=e.multiline,I=void 0!==l&&l,C=e.type,h=void 0===C?"text":C,f=Object(r.a)(e,["disableUnderline","classes","fullWidth","inputComponent","multiline","type"]);return i.createElement(pe,Object(n.a)({classes:Object(n.a)({},o,{root:Object(c.a)(o.root,!A&&o.underline),underline:null}),fullWidth:s,inputComponent:u,multiline:I,ref:t,type:h},f))}));we.muiName="Input";var Se=Object(I.a)((function(e){var t="light"===e.palette.type,A=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",n=t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.09)";return{root:{position:"relative",backgroundColor:n,borderTopLeftRadius:e.shape.borderRadius,borderTopRightRadius:e.shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:t?"rgba(0, 0, 0, 0.13)":"rgba(255, 255, 255, 0.13)","@media (hover: none)":{backgroundColor:n}},"&$focused":{backgroundColor:t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.09)"},"&$disabled":{backgroundColor:t?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)"}},colorSecondary:{"&$underline:after":{borderBottomColor:e.palette.secondary.main}},underline:{"&:after":{borderBottom:"2px solid ".concat(e.palette.primary.main),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},"&$focused:after":{transform:"scaleX(1)"},"&$error:after":{borderBottomColor:e.palette.error.main,transform:"scaleX(1)"},"&:before":{borderBottom:"1px solid ".concat(A),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},"&:hover:before":{borderBottom:"1px solid ".concat(e.palette.text.primary)},"&$disabled:before":{borderBottomStyle:"dotted"}},focused:{},disabled:{},adornedStart:{paddingLeft:12},adornedEnd:{paddingRight:12},error:{},marginDense:{},multiline:{padding:"27px 12px 10px","&$marginDense":{paddingTop:23,paddingBottom:6}},input:{padding:"27px 12px 10px","&:-webkit-autofill":{WebkitBoxShadow:"light"===e.palette.type?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===e.palette.type?null:"#fff",caretColor:"light"===e.palette.type?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},inputMarginDense:{paddingTop:23,paddingBottom:6},inputHiddenLabel:{paddingTop:18,paddingBottom:19,"&$inputMarginDense":{paddingTop:10,paddingBottom:11}},inputMultiline:{padding:0},inputAdornedStart:{paddingLeft:0},inputAdornedEnd:{paddingRight:0}}}),{name:"MuiFilledInput"})(we),Fe=A(25),Re=i.forwardRef((function(e,t){e.children;var A=e.classes,o=e.className,a=e.label,s=e.labelWidth,g=e.notched,u=e.style,I=Object(r.a)(e,["children","classes","className","label","labelWidth","notched","style"]),C="rtl"===Object(L.a)().direction?"right":"left";if(void 0!==a)return i.createElement("fieldset",Object(n.a)({"aria-hidden":!0,className:Object(c.a)(A.root,o),ref:t,style:u},I),i.createElement("legend",{className:Object(c.a)(A.legendLabelled,g&&A.legendNotched)},a?i.createElement("span",null,a):i.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})));var h=s>0?.75*s+8:.01;return i.createElement("fieldset",Object(n.a)({"aria-hidden":!0,style:Object(n.a)(Object(Fe.a)({},"padding".concat(Object(l.a)(C)),8),u),className:Object(c.a)(A.root,o),ref:t},I),i.createElement("legend",{className:A.legend,style:{width:g?h:.01}},i.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})))})),De=Object(I.a)((function(e){return{root:{position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden"},legend:{textAlign:"left",padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})},legendLabelled:{display:"block",width:"auto",textAlign:"left",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),"& > span":{paddingLeft:5,paddingRight:5,display:"inline-block"}},legendNotched:{maxWidth:1e3,transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}}),{name:"PrivateNotchedOutline"})(Re),Ge=i.forwardRef((function(e,t){var A=e.classes,o=e.fullWidth,a=void 0!==o&&o,s=e.inputComponent,g=void 0===s?"input":s,u=e.label,l=e.labelWidth,I=void 0===l?0:l,C=e.multiline,h=void 0!==C&&C,f=e.notched,d=e.type,B=void 0===d?"text":d,p=Object(r.a)(e,["classes","fullWidth","inputComponent","label","labelWidth","multiline","notched","type"]);return i.createElement(pe,Object(n.a)({renderSuffix:function(e){return i.createElement(De,{className:A.notchedOutline,label:u,labelWidth:I,notched:"undefined"!==typeof f?f:Boolean(e.startAdornment||e.filled||e.focused)})},classes:Object(n.a)({},A,{root:Object(c.a)(A.root,A.underline),notchedOutline:null}),fullWidth:a,inputComponent:g,multiline:h,ref:t,type:B},p))}));Ge.muiName="Input";var ke=Object(I.a)((function(e){var t="light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{root:{position:"relative",borderRadius:e.shape.borderRadius,"&:hover $notchedOutline":{borderColor:e.palette.text.primary},"@media (hover: none)":{"&:hover $notchedOutline":{borderColor:t}},"&$focused $notchedOutline":{borderColor:e.palette.primary.main,borderWidth:2},"&$error $notchedOutline":{borderColor:e.palette.error.main},"&$disabled $notchedOutline":{borderColor:e.palette.action.disabled}},colorSecondary:{"&$focused $notchedOutline":{borderColor:e.palette.secondary.main}},focused:{},disabled:{},adornedStart:{paddingLeft:14},adornedEnd:{paddingRight:14},error:{},marginDense:{},multiline:{padding:"18.5px 14px","&$marginDense":{paddingTop:10.5,paddingBottom:10.5}},notchedOutline:{borderColor:t},input:{padding:"18.5px 14px","&:-webkit-autofill":{WebkitBoxShadow:"light"===e.palette.type?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===e.palette.type?null:"#fff",caretColor:"light"===e.palette.type?null:"#fff",borderRadius:"inherit"}},inputMarginDense:{paddingTop:10.5,paddingBottom:10.5},inputMultiline:{padding:0},inputAdornedStart:{paddingLeft:0},inputAdornedEnd:{paddingRight:0}}}),{name:"MuiOutlinedInput"})(Ge),xe=ve,Ne=i.createElement(Qe,null),Ue=i.createElement(Se,null),_e=i.forwardRef((function e(t,A){var a=t.autoWidth,s=void 0!==a&&a,g=t.children,c=t.classes,u=t.displayEmpty,l=void 0!==u&&u,I=t.IconComponent,C=void 0===I?ue:I,h=t.id,f=t.input,d=t.inputProps,B=t.label,p=t.labelId,E=t.labelWidth,Q=void 0===E?0:E,y=t.MenuProps,v=t.multiple,m=void 0!==v&&v,b=t.native,w=void 0!==b&&b,S=t.onClose,F=t.onOpen,R=t.open,D=t.renderValue,G=t.SelectDisplayProps,k=t.variant,x=void 0===k?"standard":k,N=Object(r.a)(t,["autoWidth","children","classes","displayEmpty","IconComponent","id","input","inputProps","label","labelId","labelWidth","MenuProps","multiple","native","onClose","onOpen","open","renderValue","SelectDisplayProps","variant"]),U=w?ye:ae,_=Object(ge.a)(),M=Object(se.a)({props:t,muiFormControl:_,states:["variant"]}).variant||x,O=f||{standard:Ne,outlined:i.createElement(ke,{label:B,labelWidth:Q}),filled:Ue}[M];return i.cloneElement(O,Object(n.a)({inputComponent:U,inputProps:Object(n.a)({children:g,IconComponent:C,variant:M,type:void 0,multiple:m},w?{id:h}:{autoWidth:s,displayEmpty:l,labelId:p,MenuProps:y,onClose:S,onOpen:F,open:R,renderValue:D,SelectDisplayProps:Object(n.a)({id:h},G)},d,{classes:d?Object(o.a)({baseClasses:c,newClasses:d.classes,Component:e}):c},f?f.props.inputProps:{}),ref:A},N))}));_e.muiName="Select";t.a=Object(I.a)(xe,{name:"MuiSelect"})(_e)},function(e,t,A){"use strict";var n={};A.r(n),A.d(n,"decode",(function(){return T})),A.d(n,"encode",(function(){return H}));var r={};A.r(r),A.d(r,"decode",(function(){return K})),A.d(r,"encode",(function(){return X}));var i={};A.r(i),A.d(i,"decode",(function(){return q})),A.d(i,"encode",(function(){return $}));var o={};A.r(o),A.d(o,"decode",(function(){return te})),A.d(o,"encode",(function(){return ne}));var a=A(3),s=A.n(a),g=A(7),c=A(12),u=A(1286),l=A(638),I=A(194);function C(e,t){if(!e)throw new Error(t||"assert failed: gltf")}function h(e,t){if(e.startsWith("data:")||e.startsWith("http:")||e.startsWith("https:"))return e;var A=t.baseUri||t.uri;if(!A)throw new Error("'baseUri' must be provided to resolve relative url ".concat(e));return A.substr(0,A.lastIndexOf("/")+1)+e}function f(e,t,A){var n=e.bufferViews[A];C(n);var r=t[n.buffer];C(r);var i=(n.byteOffset||0)+r.byteOffset;return new Uint8Array(r.arrayBuffer,i,n.byteLength)}var d=A(8),B=A(2),p=A(6),E=A(421),Q=A(1),y=A(4),v=A(25),m=A(408),b=A(367),w=["SCALAR","VEC2","VEC3","VEC4"],S=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],F=new Map(S),R={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},D={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},G={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function k(e){return w[e-1]||w[0]}function x(e){var t=F.get(e.constructor);if(!t)throw new Error("Illegal typed array");return t}function N(e,t){var A=G[e.componentType],n=R[e.type],r=D[e.componentType],i=e.count*n,o=e.count*n*r;return C(o>=0&&o<=t.byteLength),{ArrayType:A,length:i,byteLength:o}}var U={asset:{version:"2.0",generator:"loaders.gl"},buffers:[]},_=function(){function e(t){Object(Q.a)(this,e),Object(v.a)(this,"gltf",void 0),Object(v.a)(this,"sourceBuffers",void 0),Object(v.a)(this,"byteLength",void 0),this.gltf=t||{json:Object(g.a)({},U),buffers:[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}return Object(y.a)(e,[{key:"getApplicationData",value:function(e){return this.json[e]}},{key:"getExtraData",value:function(e){return(this.json.extras||{})[e]}},{key:"getExtension",value:function(e){var t=this.getUsedExtensions().find((function(t){return t===e})),A=this.json.extensions||{};return t?A[e]||!0:null}},{key:"getRequiredExtension",value:function(e){return this.getRequiredExtensions().find((function(t){return t===e}))?this.getExtension(e):null}},{key:"getRequiredExtensions",value:function(){return this.json.extensionsRequired||[]}},{key:"getUsedExtensions",value:function(){return this.json.extensionsUsed||[]}},{key:"getObjectExtension",value:function(e,t){return(e.extensions||{})[t]}},{key:"getScene",value:function(e){return this.getObject("scenes",e)}},{key:"getNode",value:function(e){return this.getObject("nodes",e)}},{key:"getSkin",value:function(e){return this.getObject("skins",e)}},{key:"getMesh",value:function(e){return this.getObject("meshes",e)}},{key:"getMaterial",value:function(e){return this.getObject("materials",e)}},{key:"getAccessor",value:function(e){return this.getObject("accessors",e)}},{key:"getTexture",value:function(e){return this.getObject("textures",e)}},{key:"getSampler",value:function(e){return this.getObject("samplers",e)}},{key:"getImage",value:function(e){return this.getObject("images",e)}},{key:"getBufferView",value:function(e){return this.getObject("bufferViews",e)}},{key:"getBuffer",value:function(e){return this.getObject("buffers",e)}},{key:"getObject",value:function(e,t){if("object"===typeof t)return t;var A=this.json[e]&&this.json[e][t];if(!A)throw new Error("glTF file error: Could not find ".concat(e,"[").concat(t,"]"));return A}},{key:"getTypedArrayForBufferView",value:function(e){var t=(e=this.getBufferView(e)).buffer,A=this.gltf.buffers[t];C(A);var n=(e.byteOffset||0)+A.byteOffset;return new Uint8Array(A.arrayBuffer,n,e.byteLength)}},{key:"getTypedArrayForAccessor",value:function(e){e=this.getAccessor(e);var t=this.getBufferView(e.bufferView),A=this.getBuffer(t.buffer).data,n=N(e,t),r=n.ArrayType,i=n.length;return new r(A,t.byteOffset+e.byteOffset,i)}},{key:"getTypedArrayForImageData",value:function(e){e=this.getAccessor(e);var t=this.getBufferView(e.bufferView),A=this.getBuffer(t.buffer).data,n=t.byteOffset||0;return new Uint8Array(A,n,t.byteLength)}},{key:"addApplicationData",value:function(e,t){return this.json[e]=t,this}},{key:"addExtraData",value:function(e,t){return this.json.extras=this.json.extras||{},this.json.extras[e]=t,this}},{key:"addObjectExtension",value:function(e,t,A){return e.extensions=e.extensions||{},e.extensions[t]=A,this.registerUsedExtension(t),this}},{key:"setObjectExtension",value:function(e,t,A){(e.extensions||{})[t]=A}},{key:"removeObjectExtension",value:function(e,t){var A=e.extensions||{},n=A[t];return delete A[t],n}},{key:"addExtension",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return C(t),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=t,this.registerUsedExtension(e),t}},{key:"addRequiredExtension",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return C(t),this.addExtension(e,t),this.registerRequiredExtension(e),t}},{key:"registerUsedExtension",value:function(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find((function(t){return t===e}))||this.json.extensionsUsed.push(e)}},{key:"registerRequiredExtension",value:function(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find((function(t){return t===e}))||this.json.extensionsRequired.push(e)}},{key:"removeExtension",value:function(e){this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e),this.json.extensions&&delete this.json.extensions[e]}},{key:"setDefaultScene",value:function(e){this.json.scene=e}},{key:"addScene",value:function(e){var t=e.nodeIndices;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:t}),this.json.scenes.length-1}},{key:"addNode",value:function(e){var t=e.meshIndex,A=e.matrix;this.json.nodes=this.json.nodes||[];var n={mesh:t};return A&&(n.matrix=A),this.json.nodes.push(n),this.json.nodes.length-1}},{key:"addMesh",value:function(e){var t=e.attributes,A=e.indices,n=e.material,r=e.mode,i=void 0===r?4:r,o={primitives:[{attributes:this._addAttributes(t),mode:i}]};if(A){var a=this._addIndices(A);o.primitives[0].indices=a}return Number.isFinite(n)&&(o.primitives[0].material=n),this.json.meshes=this.json.meshes||[],this.json.meshes.push(o),this.json.meshes.length-1}},{key:"addPointCloud",value:function(e){var t={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(t),this.json.meshes.length-1}},{key:"addImage",value:function(e,t){var A=Object(m.a)(e),n=t||(null===A||void 0===A?void 0:A.mimeType),r={bufferView:this.addBufferView(e),mimeType:n};return this.json.images=this.json.images||[],this.json.images.push(r),this.json.images.length-1}},{key:"addBufferView",value:function(e){var t=e.byteLength;C(Number.isFinite(t)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);var A={buffer:0,byteOffset:this.byteLength,byteLength:t};return this.byteLength+=Object(b.b)(t,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(A),this.json.bufferViews.length-1}},{key:"addAccessor",value:function(e,t){var A={bufferView:e,type:k(t.size),componentType:t.componentType,count:t.count,max:t.max,min:t.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(A),this.json.accessors.length-1}},{key:"addBinaryBuffer",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{size:3},A=this.addBufferView(e),n={min:t.min,max:t.max};n.min&&n.max||(n=this._getAccessorMinMax(e,t.size));var r={size:t.size,componentType:x(e),count:Math.round(e.length/t.size),min:n.min,max:n.max};return this.addAccessor(A,Object.assign(r,t))}},{key:"addTexture",value:function(e){var t={source:e.imageIndex};return this.json.textures=this.json.textures||[],this.json.textures.push(t),this.json.textures.length-1}},{key:"addMaterial",value:function(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}},{key:"createBinaryChunk",value:function(){var e,t;this.gltf.buffers=[];var A,n=this.byteLength,r=new ArrayBuffer(n),i=new Uint8Array(r),o=0,a=Object(p.a)(this.sourceBuffers||[]);try{for(a.s();!(A=a.n()).done;){var s=A.value;o=Object(b.a)(s,i,o)}}catch(g){a.e(g)}finally{a.f()}null!==(e=this.json)&&void 0!==e&&null!==(t=e.buffers)&&void 0!==t&&t[0]?this.json.buffers[0].byteLength=n:this.json.buffers=[{byteLength:n}],this.gltf.binary=r,this.sourceBuffers=[r]}},{key:"_removeStringFromArray",value:function(e,t){for(var A=!0;A;){var n=e.indexOf(t);n>-1?e.splice(n,1):A=!1}}},{key:"_addAttributes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};for(var A in e){var n=e[A],r=this._getGltfAttributeName(A),i=this.addBinaryBuffer(n.value,n);t[r]=i}return t}},{key:"_addIndices",value:function(e){return this.addBinaryBuffer(e,{size:1})}},{key:"_getGltfAttributeName",value:function(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}},{key:"_getAccessorMinMax",value:function(e,t){var A={min:null,max:null};if(e.length<t)return A;A.min=[],A.max=[];var n,r=e.subarray(0,t),i=Object(p.a)(r);try{for(i.s();!(n=i.n()).done;){var o=n.value;A.min.push(o),A.max.push(o)}}catch(g){i.e(g)}finally{i.f()}for(var a=t;a<e.length;a+=t)for(var s=0;s<t;s++)A.min[0+s]=Math.min(A.min[0+s],e[a+s]),A.max[0+s]=Math.max(A.max[0+s],e[a+s]);return A}},{key:"json",get:function(){return this.gltf.json}}]),e}();function M(e){var t={};for(var A in e){var n=e[A];if("indices"!==A){var r=O(n);t[A]=r}}return t}function O(e){var t=function(e){var t=e,A=1,n=0;e&&e.value&&(t=e.value,A=e.size||1);t&&(ArrayBuffer.isView(t)||(t=function(e,t){var A=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e)return null;if(Array.isArray(e))return new t(e);if(A&&!(e instanceof t))return new t(e);return e}(t,Float32Array)),n=t.length/A);return{buffer:t,size:A,count:n}}(e),A=t.buffer,n=t.size;return{value:A,size:n,byteOffset:0,count:t.count,type:k(n),componentType:x(A)}}var L=s.a.mark(V);function T(e,t,A){return Z.apply(this,arguments)}function Z(){return(Z=Object(c.a)(s.a.mark((function e(t,A,n){var r,i,o,a,g,c;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!==A&&void 0!==A&&null!==(r=A.gltf)&&void 0!==r&&r.decompressMeshes){e.next=2;break}return e.abrupt("return");case 2:i=new _(t),o=[],a=Object(p.a)(V(i));try{for(a.s();!(g=a.n()).done;)c=g.value,i.getObjectExtension(c,"KHR_draco_mesh_compression")&&o.push(Y(i,c,A,n))}catch(s){a.e(s)}finally{a.f()}return e.next=8,Promise.all(o);case 8:i.removeExtension("KHR_draco_mesh_compression");case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function H(e){var t,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new _(e),r=Object(p.a)(n.json.meshes||[]);try{for(r.s();!(t=r.n()).done;){var i=t.value;j(i,A),n.addRequiredExtension("KHR_draco_mesh_compression")}}catch(o){r.e(o)}finally{r.f()}}function Y(e,t,A,n){return J.apply(this,arguments)}function J(){return(J=Object(c.a)(s.a.mark((function e(t,A,n,r){var i,o,a,c,u,l,C,h,f,B,p,Q,y,v;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=t.getObjectExtension(A,"KHR_draco_mesh_compression")){e.next=3;break}return e.abrupt("return");case 3:return o=t.getTypedArrayForBufferView(i.bufferView),a=Object(I.c)(o.buffer,o.byteOffset),c=r.parse,delete(u=Object(g.a)({},n))["3d-tiles"],e.next=10,c(a,E.a,u,r);case 10:for(l=e.sent,C=M(l.attributes),h=0,f=Object.entries(C);h<f.length;h++)B=Object(d.a)(f[h],2),p=B[0],Q=B[1],p in A.attributes&&(y=A.attributes[p],null!==(v=t.getAccessor(y))&&void 0!==v&&v.min&&null!==v&&void 0!==v&&v.max&&(Q.min=v.min,Q.max=v.max));A.attributes=C,l.indices&&(A.indices=O(l.indices)),P(A);case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function j(e,t){var A,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;if(!r.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");var o=r.DracoWriter.encodeSync({attributes:e}),a=null===i||void 0===i||null===(A=i.parseSync)||void 0===A?void 0:A.call(i,{attributes:e}),s=r._addFauxAttributes(a.attributes),g=r.addBufferView(o),c={primitives:[{attributes:s,mode:n,extensions:Object(B.a)({},"KHR_draco_mesh_compression",{bufferView:g,attributes:s})}]};return c}function P(e){if(!e.attributes&&Object.keys(e.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function V(e){var t,A,n,r,i,o;return s.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:t=Object(p.a)(e.json.meshes||[]),a.prev=1,t.s();case 3:if((A=t.n()).done){a.next=24;break}n=A.value,r=Object(p.a)(n.primitives),a.prev=6,r.s();case 8:if((i=r.n()).done){a.next=14;break}return o=i.value,a.next=12,o;case 12:a.next=8;break;case 14:a.next=19;break;case 16:a.prev=16,a.t0=a.catch(6),r.e(a.t0);case 19:return a.prev=19,r.f(),a.finish(19);case 22:a.next=3;break;case 24:a.next=29;break;case 26:a.prev=26,a.t1=a.catch(1),t.e(a.t1);case 29:return a.prev=29,t.f(),a.finish(29);case 32:case"end":return a.stop()}}),L,null,[[1,26,29,32],[6,16,19,22]])}function K(e){return W.apply(this,arguments)}function W(){return(W=Object(c.a)(s.a.mark((function e(t){var A,n,r,i,o;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:A=new _(t),n=A.json,A.removeExtension("KHR_materials_unlit"),r=Object(p.a)(n.materials||[]);try{for(r.s();!(i=r.n()).done;)o=i.value,o.extensions&&o.extensions.KHR_materials_unlit&&(o.unlit=!0),A.removeObjectExtension(o,"KHR_materials_unlit")}catch(a){r.e(a)}finally{r.f()}case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function X(e){var t=new _(e),A=t.json;if(t.materials){var n,r=Object(p.a)(A.materials||[]);try{for(r.s();!(n=r.n()).done;){var i=n.value;i.unlit&&(delete i.unlit,t.addObjectExtension(i,"KHR_materials_unlit",{}),t.addExtension("KHR_materials_unlit"))}}catch(o){r.e(o)}finally{r.f()}}}function q(e){return z.apply(this,arguments)}function z(){return(z=Object(c.a)(s.a.mark((function e(t){var A,n,r,i,o,a,g;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:A=new _(t),n=A.json,(r=A.getExtension("KHR_lights_punctual"))&&(A.json.lights=r.lights,A.removeExtension("KHR_lights_punctual")),i=Object(p.a)(n.nodes||[]);try{for(i.s();!(o=i.n()).done;)a=o.value,(g=A.getObjectExtension(a,"KHR_lights_punctual"))&&(a.light=g.light),A.removeObjectExtension(a,"KHR_lights_punctual")}catch(s){i.e(s)}finally{i.f()}case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function $(e){return ee.apply(this,arguments)}function ee(){return(ee=Object(c.a)(s.a.mark((function e(t){var A,n,r,i,o,a,g;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=new _(t),(n=A.json).lights&&(C(!(r=A.addExtension("KHR_lights_punctual")).lights),r.lights=n.lights,delete n.lights),A.json.lights){i=Object(p.a)(A.json.lights);try{for(i.s();!(o=i.n()).done;)a=o.value,g=a.node,A.addObjectExtension(g,"KHR_lights_punctual",a)}catch(s){i.e(s)}finally{i.f()}delete A.json.lights}case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function te(e){return Ae.apply(this,arguments)}function Ae(){return(Ae=Object(c.a)(s.a.mark((function e(t){var A,n,r,i,o,a,g,c;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=new _(t),n=A.json,r=A.getExtension("KHR_techniques_webgl")){i=ie(r,A),o=Object(p.a)(n.materials||[]);try{for(o.s();!(a=o.n()).done;)g=a.value,(c=A.getObjectExtension(g,"KHR_techniques_webgl"))&&(g.technique=Object.assign({},c,i[c.technique]),g.technique.values=oe(g.technique,A)),A.removeObjectExtension(g,"KHR_techniques_webgl")}catch(s){o.e(s)}finally{o.f()}A.removeExtension("KHR_techniques_webgl")}case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ne(e,t){return re.apply(this,arguments)}function re(){return(re=Object(c.a)(s.a.mark((function e(t,A){return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ie(e,t){var A=e.programs,n=void 0===A?[]:A,r=e.shaders,i=void 0===r?[]:r,o=e.techniques,a=void 0===o?[]:o,s=new TextDecoder;return i.forEach((function(e){if(!Number.isFinite(e.bufferView))throw new Error("KHR_techniques_webgl: no shader code");e.code=s.decode(t.getTypedArrayForBufferView(e.bufferView))})),n.forEach((function(e){e.fragmentShader=i[e.fragmentShader],e.vertexShader=i[e.vertexShader]})),a.forEach((function(e){e.program=n[e.program]})),a}function oe(e,t){var A=Object.assign({},e.values);return Object.keys(e.uniforms||{}).forEach((function(t){e.uniforms[t].value&&!(t in A)&&(A[t]=e.uniforms[t].value)})),Object.keys(A).forEach((function(e){"object"===typeof A[e]&&void 0!==A[e].index&&(A[e].texture=t.getTexture(A[e].index))})),A}var ae={KHR_draco_mesh_compression:n,KHR_materials_unlit:r,KHR_lights_punctual:i,KHR_techniques_webgl:o};function se(e){return ge.apply(this,arguments)}function ge(){return(ge=Object(c.a)(s.a.mark((function e(t){var A,n,r,i,o,a,g=arguments;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:A=g.length>1&&void 0!==g[1]?g[1]:{},n=g.length>2?g[2]:void 0,e.t0=s.a.keys(ae);case 3:if((e.t1=e.t0()).done){e.next=13;break}if(r=e.t1.value,o=(null===A||void 0===A||null===(i=A.gltf)||void 0===i?void 0:i.excludeExtensions)||{},r in o&&!o[r]){e.next=11;break}return a=ae[r],e.next=11,a.decode(t,A,n);case 11:e.next=3;break;case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var ce,ue={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},le={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},Ie=function(){function e(t){Object(Q.a)(this,e),this.idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}}}return Object(y.a)(e,[{key:"normalize",value:function(e,t){this.json=e.json;var A=e.json;switch(A.asset&&A.asset.version){case"2.0":return;case void 0:case"1.0":break;default:return void console.warn("glTF: Unknown version ".concat(A.asset.version))}if(!t.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(A),this._convertTopLevelObjectsToArrays(A),function(e){var t,A=new _(e),n=A.json,r=Object(p.a)(n.images||[]);try{for(r.s();!(t=r.n()).done;){var i=t.value,o=A.removeObjectExtension(i,"KHR_binary_glTF");o&&Object.assign(i,o)}}catch(a){r.e(a)}finally{r.f()}n.buffers&&n.buffers[0]&&delete n.buffers[0].uri,A.removeExtension("KHR_binary_glTF")}(e),this._convertObjectIdsToArrayIndices(A),this._updateObjects(A),this._updateMaterial(A)}},{key:"_addAsset",value:function(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}},{key:"_convertTopLevelObjectsToArrays",value:function(e){for(var t in ue)this._convertTopLevelObjectToArray(e,t)}},{key:"_convertTopLevelObjectToArray",value:function(e,t){var A=e[t];if(A&&!Array.isArray(A))for(var n in e[t]=[],A){var r=A[n];r.id=r.id||n;var i=e[t].length;e[t].push(r),this.idToIndexMap[t][n]=i}}},{key:"_convertObjectIdsToArrayIndices",value:function(e){for(var t in ue)this._convertIdsToIndices(e,t);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));var A,n=Object(p.a)(e.textures);try{for(n.s();!(A=n.n()).done;){var r=A.value;this._convertTextureIds(r)}}catch(C){n.e(C)}finally{n.f()}var i,o=Object(p.a)(e.meshes);try{for(o.s();!(i=o.n()).done;){var a=i.value;this._convertMeshIds(a)}}catch(C){o.e(C)}finally{o.f()}var s,g=Object(p.a)(e.nodes);try{for(g.s();!(s=g.n()).done;){var c=s.value;this._convertNodeIds(c)}}catch(C){g.e(C)}finally{g.f()}var u,l=Object(p.a)(e.scenes);try{for(l.s();!(u=l.n()).done;){var I=u.value;this._convertSceneIds(I)}}catch(C){l.e(C)}finally{l.f()}}},{key:"_convertTextureIds",value:function(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}},{key:"_convertMeshIds",value:function(e){var t,A=Object(p.a)(e.primitives);try{for(A.s();!(t=A.n()).done;){var n=t.value,r=n.attributes,i=n.indices,o=n.material;for(var a in r)r[a]=this._convertIdToIndex(r[a],"accessor");i&&(n.indices=this._convertIdToIndex(i,"accessor")),o&&(n.material=this._convertIdToIndex(o,"material"))}}catch(s){A.e(s)}finally{A.f()}}},{key:"_convertNodeIds",value:function(e){var t=this;e.children&&(e.children=e.children.map((function(e){return t._convertIdToIndex(e,"node")}))),e.meshes&&(e.meshes=e.meshes.map((function(e){return t._convertIdToIndex(e,"mesh")})))}},{key:"_convertSceneIds",value:function(e){var t=this;e.nodes&&(e.nodes=e.nodes.map((function(e){return t._convertIdToIndex(e,"node")})))}},{key:"_convertIdsToIndices",value:function(e,t){e[t]||(console.warn("gltf v1: json doesn't contain attribute ".concat(t)),e[t]=[]);var A,n=Object(p.a)(e[t]);try{for(n.s();!(A=n.n()).done;){var r=A.value;for(var i in r){var o=r[i],a=this._convertIdToIndex(o,i);r[i]=a}}}catch(s){n.e(s)}finally{n.f()}}},{key:"_convertIdToIndex",value:function(e,t){var A=le[t];if(A in this.idToIndexMap){var n=this.idToIndexMap[A][e];if(!Number.isFinite(n))throw new Error("gltf v1: failed to resolve ".concat(t," with id ").concat(e));return n}return e}},{key:"_updateObjects",value:function(e){var t,A=Object(p.a)(this.json.buffers);try{for(A.s();!(t=A.n()).done;){delete t.value.type}}catch(n){A.e(n)}finally{A.f()}}},{key:"_updateMaterial",value:function(e){var t,A=Object(p.a)(e.materials);try{var n=function(){var A=t.value;A.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};var n=A.values&&A.values.tex,r=e.textures.findIndex((function(e){return e.id===n}));-1!==r&&(A.pbrMetallicRoughness.baseColorTexture={index:r})};for(A.s();!(t=A.n()).done;)n()}catch(r){A.e(r)}finally{A.f()}}}]),e}();function Ce(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(new Ie).normalize(e,t)}var he={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},fe={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},de={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},Be={magFilter:de.TEXTURE_MAG_FILTER,minFilter:de.TEXTURE_MIN_FILTER,wrapS:de.TEXTURE_WRAP_S,wrapT:de.TEXTURE_WRAP_T},pe=(ce={},Object(B.a)(ce,de.TEXTURE_MAG_FILTER,de.LINEAR),Object(B.a)(ce,de.TEXTURE_MIN_FILTER,de.NEAREST_MIPMAP_LINEAR),Object(B.a)(ce,de.TEXTURE_WRAP_S,de.REPEAT),Object(B.a)(ce,de.TEXTURE_WRAP_,de.REPEAT),ce);var Ee=function(){function e(){Object(Q.a)(this,e)}return Object(y.a)(e,[{key:"postProcess",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},A=e.json,n=e.buffers,r=void 0===n?[]:n,i=e.images,o=void 0===i?[]:i,a=e.baseUri,s=void 0===a?"":a;return C(A),this.baseUri=s,this.json=A,this.buffers=r,this.images=o,this._resolveTree(this.json,t),this.json}},{key:"_resolveTree",value:function(e){var t=this;arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.bufferViews&&(e.bufferViews=e.bufferViews.map((function(e,A){return t._resolveBufferView(e,A)}))),e.images&&(e.images=e.images.map((function(e,A){return t._resolveImage(e,A)}))),e.samplers&&(e.samplers=e.samplers.map((function(e,A){return t._resolveSampler(e,A)}))),e.textures&&(e.textures=e.textures.map((function(e,A){return t._resolveTexture(e,A)}))),e.accessors&&(e.accessors=e.accessors.map((function(e,A){return t._resolveAccessor(e,A)}))),e.materials&&(e.materials=e.materials.map((function(e,A){return t._resolveMaterial(e,A)}))),e.meshes&&(e.meshes=e.meshes.map((function(e,A){return t._resolveMesh(e,A)}))),e.nodes&&(e.nodes=e.nodes.map((function(e,A){return t._resolveNode(e,A)}))),e.skins&&(e.skins=e.skins.map((function(e,A){return t._resolveSkin(e,A)}))),e.scenes&&(e.scenes=e.scenes.map((function(e,A){return t._resolveScene(e,A)}))),void 0!==e.scene&&(e.scene=e.scenes[this.json.scene])}},{key:"getScene",value:function(e){return this._get("scenes",e)}},{key:"getNode",value:function(e){return this._get("nodes",e)}},{key:"getSkin",value:function(e){return this._get("skins",e)}},{key:"getMesh",value:function(e){return this._get("meshes",e)}},{key:"getMaterial",value:function(e){return this._get("materials",e)}},{key:"getAccessor",value:function(e){return this._get("accessors",e)}},{key:"getCamera",value:function(e){return null}},{key:"getTexture",value:function(e){return this._get("textures",e)}},{key:"getSampler",value:function(e){return this._get("samplers",e)}},{key:"getImage",value:function(e){return this._get("images",e)}},{key:"getBufferView",value:function(e){return this._get("bufferViews",e)}},{key:"getBuffer",value:function(e){return this._get("buffers",e)}},{key:"_get",value:function(e,t){if("object"===typeof t)return t;var A=this.json[e]&&this.json[e][t];return A||console.warn("glTF file error: Could not find ".concat(e,"[").concat(t,"]")),A}},{key:"_resolveScene",value:function(e,t){var A=this;return e.id=e.id||"scene-".concat(t),e.nodes=(e.nodes||[]).map((function(e){return A.getNode(e)})),e}},{key:"_resolveNode",value:function(e,t){var A=this;return e.id=e.id||"node-".concat(t),e.children&&(e.children=e.children.map((function(e){return A.getNode(e)}))),void 0!==e.mesh?e.mesh=this.getMesh(e.mesh):void 0!==e.meshes&&e.meshes.length&&(e.mesh=e.meshes.reduce((function(e,t){var n=A.getMesh(t);return e.id=n.id,e.primitives=e.primitives.concat(n.primitives),e}),{primitives:[]})),void 0!==e.camera&&(e.camera=this.getCamera(e.camera)),void 0!==e.skin&&(e.skin=this.getSkin(e.skin)),e}},{key:"_resolveSkin",value:function(e,t){return e.id=e.id||"skin-".concat(t),e.inverseBindMatrices=this.getAccessor(e.inverseBindMatrices),e}},{key:"_resolveMesh",value:function(e,t){var A=this;return e.id=e.id||"mesh-".concat(t),e.primitives&&(e.primitives=e.primitives.map((function(e){var t=(e=Object(g.a)({},e)).attributes;for(var n in e.attributes={},t)e.attributes[n]=A.getAccessor(t[n]);return void 0!==e.indices&&(e.indices=A.getAccessor(e.indices)),void 0!==e.material&&(e.material=A.getMaterial(e.material)),e}))),e}},{key:"_resolveMaterial",value:function(e,t){if(e.id=e.id||"material-".concat(t),e.normalTexture&&(e.normalTexture=Object(g.a)({},e.normalTexture),e.normalTexture.texture=this.getTexture(e.normalTexture.index)),e.occlusionTexture&&(e.occlustionTexture=Object(g.a)({},e.occlustionTexture),e.occlusionTexture.texture=this.getTexture(e.occlusionTexture.index)),e.emissiveTexture&&(e.emmisiveTexture=Object(g.a)({},e.emmisiveTexture),e.emissiveTexture.texture=this.getTexture(e.emissiveTexture.index)),e.emissiveFactor||(e.emissiveFactor=e.emmisiveTexture?[1,1,1]:[0,0,0]),e.pbrMetallicRoughness){e.pbrMetallicRoughness=Object(g.a)({},e.pbrMetallicRoughness);var A=e.pbrMetallicRoughness;A.baseColorTexture&&(A.baseColorTexture=Object(g.a)({},A.baseColorTexture),A.baseColorTexture.texture=this.getTexture(A.baseColorTexture.index)),A.metallicRoughnessTexture&&(A.metallicRoughnessTexture=Object(g.a)({},A.metallicRoughnessTexture),A.metallicRoughnessTexture.texture=this.getTexture(A.metallicRoughnessTexture.index))}return e}},{key:"_resolveAccessor",value:function(e,t){var A,n;if(e.id=e.id||"accessor-".concat(t),void 0!==e.bufferView&&(e.bufferView=this.getBufferView(e.bufferView)),e.bytesPerComponent=(A=e.componentType,fe[A]),e.components=(n=e.type,he[n]),e.bytesPerElement=e.bytesPerComponent*e.components,e.bufferView){var r=e.bufferView.buffer,i=N(e,e.bufferView),o=i.ArrayType,a=i.byteLength,s=(e.bufferView.byteOffset||0)+(e.byteOffset||0)+r.byteOffset,g=r.arrayBuffer.slice(s,s+a);e.value=new o(g)}return e}},{key:"_resolveTexture",value:function(e,t){return e.id=e.id||"texture-".concat(t),e.sampler="sampler"in e?this.getSampler(e.sampler):pe,e.source=this.getImage(e.source),e}},{key:"_resolveSampler",value:function(e,t){for(var A in e.id=e.id||"sampler-".concat(t),e.parameters={},e){var n=this._enumSamplerParameter(A);void 0!==n&&(e.parameters[n]=e[A])}return e}},{key:"_enumSamplerParameter",value:function(e){return Be[e]}},{key:"_resolveImage",value:function(e,t){e.id=e.id||"image-".concat(t),void 0!==e.bufferView&&(e.bufferView=this.getBufferView(e.bufferView));var A=this.images[t];return A&&(e.image=A),e}},{key:"_resolveBufferView",value:function(e,t){e.id=e.id||"bufferView-".concat(t);var A=e.buffer;e.buffer=this.buffers[A];var n=this.buffers[A].arrayBuffer,r=this.buffers[A].byteOffset||0;return"byteOffset"in e&&(r+=e.byteOffset),e.data=new Uint8Array(n,r,e.byteLength),e}},{key:"_resolveCamera",value:function(e,t){return e.id=e.id||"camera-".concat(t),e.perspective,e.orthographic,e}}]),e}();function Qe(e,t){return(new Ee).postProcess(e,t)}var ye=A(227);function ve(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return"".concat(String.fromCharCode(e.getUint8(t+0))).concat(String.fromCharCode(e.getUint8(t+1))).concat(String.fromCharCode(e.getUint8(t+2))).concat(String.fromCharCode(e.getUint8(t+3)))}function me(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=new DataView(e),r=A.magic,i=void 0===r?1735152710:r,o=n.getUint32(t,!1);return o===i||1735152710===o}function be(e,t,A){Object(ye.a)(e.header.byteLength>20);var n=t.getUint32(A+0,!0),r=t.getUint32(A+4,!0);return A+=8,Object(ye.a)(0===r),Se(e,t,A,n),A+=n,A+=Fe(e,t,A,e.header.byteLength)}function we(e,t,A,n){return Object(ye.a)(e.header.byteLength>20),function(e,t,A,n){for(;A+8<=e.header.byteLength;){var r=t.getUint32(A+0,!0),i=t.getUint32(A+4,!0);switch(A+=8,i){case 1313821514:Se(e,t,A,r);break;case 5130562:Fe(e,t,A,r);break;case 0:n.strict||Se(e,t,A,r);break;case 1:n.strict||Fe(e,t,A,r)}A+=Object(b.b)(r,4)}}(e,t,A,n),A+e.header.byteLength}function Se(e,t,A,n){var r=new Uint8Array(t.buffer,A,n),i=new TextDecoder("utf8").decode(r);return e.json=JSON.parse(i),Object(b.b)(n,4)}function Fe(e,t,A,n){return e.header.hasBinChunk=!0,e.binChunks.push({byteOffset:A,byteLength:n,arrayBuffer:t.buffer}),Object(b.b)(n,4)}function Re(e,t){return De.apply(this,arguments)}function De(){return(De=Object(c.a)(s.a.mark((function e(t,A){var n,r,i,o,a,g,c,u,l,I,C=arguments;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=C.length>2&&void 0!==C[2]?C[2]:0,r=C.length>3?C[3]:void 0,i=C.length>4?C[4]:void 0,Ge(t,A,n,r),Ce(t,{normalize:null===r||void 0===r||null===(o=r.gltf)||void 0===o?void 0:o.normalize}),u=[],null===r||void 0===r||null===(a=r.gltf)||void 0===a||!a.loadBuffers||!t.json.buffers){e.next=9;break}return e.next=9,ke(t,r,i);case 9:return null!==r&&void 0!==r&&null!==(g=r.gltf)&&void 0!==g&&g.loadImages&&(l=Ne(t,r,i),u.push(l)),I=se(t,r,i),u.push(I),e.next=14,Promise.all(u);case 14:return e.abrupt("return",null!==r&&void 0!==r&&null!==(c=r.gltf)&&void 0!==c&&c.postProcess?Qe(t,r):t);case 15:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ge(e,t,A,n){(n.uri&&(e.baseUri=n.uri),t instanceof ArrayBuffer&&!me(t,A,n))&&(t=(new TextDecoder).decode(t));if("string"===typeof t)e.json=Object(l.a)(t);else if(t instanceof ArrayBuffer){var r={};A=function(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=(arguments.length>3&&void 0!==arguments[3]&&arguments[3],new DataView(t)),r=ve(n,A+0),i=n.getUint32(A+4,!0),o=n.getUint32(A+8,!0);switch(Object.assign(e,{header:{byteOffset:A,byteLength:o,hasBinChunk:!1},type:r,version:i,json:{},binChunks:[]}),A+=12,e.version){case 1:return be(e,n,A);case 2:return we(e,n,A,{});default:throw new Error("Invalid GLB version ".concat(e.version,". Only supports v1 and v2."))}}(r,t,A,n.glb),C("glTF"===r.type,"Invalid GLB magic string ".concat(r.type)),e._glb=r,e.json=r.json}else C(!1,"GLTF: must be ArrayBuffer or string");var i=e.json.buffers||[];if(e.buffers=new Array(i.length).fill(null),e._glb&&e._glb.header.hasBinChunk){var o=e._glb.binChunks;e.buffers[0]={arrayBuffer:o[0].arrayBuffer,byteOffset:o[0].byteOffset,byteLength:o[0].byteLength}}var a=e.json.images||[];e.images=new Array(a.length).fill({})}function ke(e,t,A){return xe.apply(this,arguments)}function xe(){return(xe=Object(c.a)(s.a.mark((function e(t,A,n){var r,i,o,a,g,c,u;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=0;case 1:if(!(r<t.json.buffers.length)){e.next=18;break}if(!(i=t.json.buffers[r]).uri){e.next=15;break}return C(n.fetch),g=h(i.uri,A),e.next=9,null===n||void 0===n||null===(o=n.fetch)||void 0===o?void 0:o.call(n,g);case 9:return c=e.sent,e.next=12,null===c||void 0===c||null===(a=c.arrayBuffer)||void 0===a?void 0:a.call(c);case 12:u=e.sent,t.buffers[r]={arrayBuffer:u,byteOffset:0,byteLength:u.byteLength},delete i.uri;case 15:++r,e.next=1;break;case 18:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ne(e,t,A){return Ue.apply(this,arguments)}function Ue(){return(Ue=Object(c.a)(s.a.mark((function e(t,A,n){var r,i,o;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(r=t.json.images||[],i=[],o=0;o<r.length;++o)i.push(_e(t,r[o],o,A,n));return e.next=5,Promise.all(i);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function _e(e,t,A,n,r){return Me.apply(this,arguments)}function Me(){return(Me=Object(c.a)(s.a.mark((function e(t,A,n,r,i){var o,a,g,c,l,d,B;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=i.fetch,a=i.parse,!A.uri){e.next=9;break}return c=h(A.uri,r),e.next=5,o(c);case 5:return l=e.sent,e.next=8,l.arrayBuffer();case 8:g=e.sent;case 9:return Number.isFinite(A.bufferView)&&(d=f(t.json,t.buffers,A.bufferView),g=Object(I.c)(d.buffer,d.byteOffset,d.byteLength)),C(g,"glTF image has no data"),e.next=13,a(g,u.a,{},i);case 13:B=e.sent,t.images[n]=B;case 15:case"end":return e.stop()}}),e)})))).apply(this,arguments)}A.d(t,"a",(function(){return Oe}));var Oe={name:"glTF",id:"gltf",module:"gltf",version:"3.0.12",extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:function(e){return Le.apply(this,arguments)},options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0,postProcess:!0},log:console},deprecatedOptions:{fetchImages:"gltf.loadImages",createImages:"gltf.loadImages",decompress:"gltf.decompressMeshes",postProcess:"gltf.postProcess",gltf:{decompress:"gltf.decompressMeshes"}}};function Le(){return(Le=Object(c.a)(s.a.mark((function e(t){var A,n,r,i,o,a=arguments;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=a.length>1&&void 0!==a[1]?a[1]:{},n=a.length>2?a[2]:void 0,(A=Object(g.a)({},Oe.options,{},A)).gltf=Object(g.a)({},Oe.options.gltf,{},A.gltf),r=A.byteOffset,i=void 0===r?0:r,o={},e.next=8,Re(o,t,i,A,n);case 8:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},function(e,t,A){"use strict";var n=A(137),r=A(14),i=(A(13),A(174));function o(e,t){var A={};return Object.keys(e).forEach((function(n){-1===t.indexOf(n)&&(A[n]=e[n])})),A}function a(e){var t=function(t){var A=e(t);return t.css?Object(r.a)({},Object(i.a)(A,e(Object(r.a)({theme:t.theme},t.css))),o(t.css,[e.filterProps])):t.sx?Object(r.a)({},Object(i.a)(A,e(Object(r.a)({theme:t.theme},t.sx))),o(t.sx,[e.filterProps])):A};return t.propTypes={},t.filterProps=["css","sx"].concat(Object(n.a)(e.filterProps)),t}var s=a;var g=function(){for(var e=arguments.length,t=new Array(e),A=0;A<e;A++)t[A]=arguments[A];var n=function(e){return t.reduce((function(t,A){var n=A(e);return n?Object(i.a)(t,n):t}),{})};return n.propTypes={},n.filterProps=t.reduce((function(e,t){return e.concat(t.filterProps)}),[]),n},c=A(25),u=A(401);function l(e,t){return t&&"string"===typeof t?t.split(".").reduce((function(e,t){return e&&e[t]?e[t]:null}),e):null}var I=function(e){var t=e.prop,A=e.cssProperty,n=void 0===A?e.prop:A,r=e.themeKey,i=e.transform,o=function(e){if(null==e[t])return null;var A=e[t],o=l(e.theme,r)||{};return Object(u.a)(e,A,(function(e){var t;return"function"===typeof o?t=o(e):Array.isArray(o)?t=o[e]||e:(t=l(o,e)||e,i&&(t=i(t))),!1===n?t:Object(c.a)({},n,t)}))};return o.propTypes={},o.filterProps=[t],o};function C(e){return"number"!==typeof e?e:"".concat(e,"px solid")}var h=g(I({prop:"border",themeKey:"borders",transform:C}),I({prop:"borderTop",themeKey:"borders",transform:C}),I({prop:"borderRight",themeKey:"borders",transform:C}),I({prop:"borderBottom",themeKey:"borders",transform:C}),I({prop:"borderLeft",themeKey:"borders",transform:C}),I({prop:"borderColor",themeKey:"palette"}),I({prop:"borderRadius",themeKey:"shape"})),f=g(I({prop:"displayPrint",cssProperty:!1,transform:function(e){return{"@media print":{display:e}}}}),I({prop:"display"}),I({prop:"overflow"}),I({prop:"textOverflow"}),I({prop:"visibility"}),I({prop:"whiteSpace"})),d=g(I({prop:"flexBasis"}),I({prop:"flexDirection"}),I({prop:"flexWrap"}),I({prop:"justifyContent"}),I({prop:"alignItems"}),I({prop:"alignContent"}),I({prop:"order"}),I({prop:"flex"}),I({prop:"flexGrow"}),I({prop:"flexShrink"}),I({prop:"alignSelf"}),I({prop:"justifyItems"}),I({prop:"justifySelf"})),B=g(I({prop:"gridGap"}),I({prop:"gridColumnGap"}),I({prop:"gridRowGap"}),I({prop:"gridColumn"}),I({prop:"gridRow"}),I({prop:"gridAutoFlow"}),I({prop:"gridAutoColumns"}),I({prop:"gridAutoRows"}),I({prop:"gridTemplateColumns"}),I({prop:"gridTemplateRows"}),I({prop:"gridTemplateAreas"}),I({prop:"gridArea"})),p=g(I({prop:"position"}),I({prop:"zIndex",themeKey:"zIndex"}),I({prop:"top"}),I({prop:"right"}),I({prop:"bottom"}),I({prop:"left"})),E=g(I({prop:"color",themeKey:"palette"}),I({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette"})),Q=I({prop:"boxShadow",themeKey:"shadows"});function y(e){return e<=1?"".concat(100*e,"%"):e}var v=I({prop:"width",transform:y}),m=I({prop:"maxWidth",transform:y}),b=I({prop:"minWidth",transform:y}),w=I({prop:"height",transform:y}),S=I({prop:"maxHeight",transform:y}),F=I({prop:"minHeight",transform:y}),R=(I({prop:"size",cssProperty:"width",transform:y}),I({prop:"size",cssProperty:"height",transform:y}),g(v,m,b,w,S,F,I({prop:"boxSizing"}))),D=A(1297),G=g(I({prop:"fontFamily",themeKey:"typography"}),I({prop:"fontSize",themeKey:"typography"}),I({prop:"fontStyle",themeKey:"typography"}),I({prop:"fontWeight",themeKey:"typography"}),I({prop:"letterSpacing"}),I({prop:"lineHeight"}),I({prop:"textAlign"})),k=A(21),x=A(0),N=A.n(x),U=A(19),_=A(413),M=A.n(_),O=A(1164);function L(e,t){var A={};return Object.keys(e).forEach((function(n){-1===t.indexOf(n)&&(A[n]=e[n])})),A}var T=A(205),Z=function(e){var t=function(e){return function(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=A.name,i=Object(k.a)(A,["name"]);var o,a=n,s="function"===typeof t?function(e){return{root:function(A){return t(Object(r.a)({theme:e},A))}}}:{root:t},g=Object(O.a)(s,Object(r.a)({Component:e,name:n||e.displayName,classNamePrefix:a},i));t.filterProps&&(o=t.filterProps,delete t.filterProps),t.propTypes&&(t.propTypes,delete t.propTypes);var c=N.a.forwardRef((function(t,A){var n=t.children,i=t.className,a=t.clone,s=t.component,c=Object(k.a)(t,["children","className","clone","component"]),u=g(t),l=Object(U.a)(u.root,i),I=c;if(o&&(I=L(I,o)),a)return N.a.cloneElement(n,Object(r.a)({className:Object(U.a)(n.props.className,l)},I));if("function"===typeof n)return n(Object(r.a)({className:l},I));var C=s||e;return N.a.createElement(C,Object(r.a)({ref:A,className:l},I),n)}));return M()(c,e),c}}(e);return function(e,A){return t(e,Object(r.a)({defaultTheme:T.a},A))}},H=s(g(h,f,d,B,p,E,Q,R,D.b,G)),Y=Z("div")(H,{name:"MuiBox"});t.a=Y},function(e,t,A){"use strict";var n=A(3),r=A.n(n),i=A(12),o=A(55),a=A(176),s=A(178),g=A(115),c=A(377);function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.a;Object(g.a)(e,"no worker provided");var A=e.version;return!(!t||!A)}var l=A(508),I=A(464),C=r.a.mark(h);function h(e,t){var A,n,i,o,a;return r.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:A=(null===t||void 0===t?void 0:t.chunkSize)||262144,n=0,i=new TextEncoder;case 3:if(!(n<e.length)){r.next=11;break}return o=Math.min(e.length-n,A),a=e.slice(n,n+o),n+=o,r.next=9,i.encode(a);case 9:r.next=3;break;case 11:case"end":return r.stop()}}),C)}var f=r.a.mark(d);function d(e){var t,A,n,i,o,a,s,g=arguments;return r.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:t=g.length>1&&void 0!==g[1]?g[1]:{},A=t.chunkSize,n=void 0===A?262144:A,i=0;case 3:if(!(i<e.byteLength)){r.next=14;break}return o=Math.min(e.byteLength-i,n),a=new ArrayBuffer(o),s=new Uint8Array(e,i,o),new Uint8Array(a).set(s),i+=o,r.next=12,a;case 12:r.next=3;break;case 14:case"end":return r.stop()}}),f)}function B(e){this.wrapped=e}function p(e){return new B(e)}function E(e){var t,A;function n(t,A){try{var i=e[t](A),o=i.value,a=o instanceof B;Promise.resolve(a?o.wrapped:o).then((function(e){a?n("return"===t?"return":"next",e):r(i.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(s){r("throw",s)}}function r(e,r){switch(e){case"return":t.resolve({value:r,done:!0});break;case"throw":t.reject(r);break;default:t.resolve({value:r,done:!1})}(t=t.next)?n(t.key,t.arg):A=null}this._invoke=function(e,r){return new Promise((function(i,o){var a={key:e,arg:r,resolve:i,reject:o,next:null};A?A=A.next=a:(t=A=a,n(e,r))}))},"function"!==typeof e.return&&(this.return=void 0)}function Q(e){return function(){return new E(e.apply(this,arguments))}}"function"===typeof Symbol&&Symbol.asyncIterator&&(E.prototype[Symbol.asyncIterator]=function(){return this}),E.prototype.next=function(e){return this._invoke("next",e)},E.prototype.throw=function(e){return this._invoke("throw",e)},E.prototype.return=function(e){return this._invoke("return",e)};function y(){return(y=Q(r.a.mark((function e(t,A){var n,i,o,a;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=(null===A||void 0===A?void 0:A.chunkSize)||1048576,i=0;case 2:if(!(i<t.size)){e.next=12;break}return o=i+n,e.next=6,p(t.slice(i,o).arrayBuffer());case 6:return a=e.sent,i=o,e.next=10,a;case 10:e.next=2;break;case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var v=A(228),m=A(189),b=A(194);function w(e,t){return m.b?function(e,t){return S.apply(this,arguments)}(e,t):function(e,t){return F.apply(this,arguments)}(e,t)}function S(){return(S=Q(r.a.mark((function e(t,A){var n,i,o,a,s,g;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.getReader(),e.prev=1;case 2:return o=i||n.read(),null!==A&&void 0!==A&&A._streamReadAhead&&(i=n.read()),e.next=7,p(o);case 7:if(a=e.sent,s=a.done,g=a.value,!s){e.next=12;break}return e.abrupt("return");case 12:return e.next=14,Object(b.d)(g);case 14:e.next=2;break;case 16:e.next=21;break;case 18:e.prev=18,e.t0=e.catch(1),n.releaseLock();case 21:case"end":return e.stop()}}),e,null,[[1,18]])})))).apply(this,arguments)}function F(){return(F=Q(r.a.mark((function e(t,A){var n,i,o,a,s,g,c;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=!0,i=!1,e.prev=2,a=Object(v.a)(t);case 4:return e.next=6,p(a.next());case 6:return s=e.sent,n=s.done,e.next=10,p(s.value);case 10:if(g=e.sent,n){e.next=18;break}return c=g,e.next=15,Object(b.d)(c);case 15:n=!0,e.next=4;break;case 18:e.next=24;break;case 20:e.prev=20,e.t0=e.catch(2),i=!0,o=e.t0;case 24:if(e.prev=24,e.prev=25,n||null==a.return){e.next=29;break}return e.next=29,p(a.return());case 29:if(e.prev=29,!i){e.next=32;break}throw o;case 32:return e.finish(29);case 33:return e.finish(24);case 34:case"end":return e.stop()}}),e,null,[[2,20,24,34],[25,,29,33]])})))).apply(this,arguments)}function R(e,t){if("string"===typeof e)return h(e,t);if(e instanceof ArrayBuffer)return d(e,t);if(Object(o.b)(e))return function(e,t){return y.apply(this,arguments)}(e,t);if(Object(o.h)(e))return w(e,t);if(Object(o.i)(e))return w(e.body,t);throw new Error("makeIterator")}var D=A(234),G="Cannot convert supplied data type";function k(e,t,A){if(t.text&&"string"===typeof e)return e;if(Object(o.c)(e)&&(e=e.buffer),e instanceof ArrayBuffer){var n=e;return t.text&&!t.binary?new TextDecoder("utf8").decode(n):n}if(ArrayBuffer.isView(e)){if(t.text&&!t.binary)return new TextDecoder("utf8").decode(e);var r=e.buffer,i=e.byteLength||e.length;return 0===e.byteOffset&&i===r.byteLength||(r=r.slice(e.byteOffset,e.byteOffset+i)),r}throw new Error(G)}function x(e,t,A){return N.apply(this,arguments)}function N(){return(N=Object(i.a)(r.a.mark((function e(t,A,n){var i,a;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=t instanceof ArrayBuffer||ArrayBuffer.isView(t),"string"!==typeof t&&!i){e.next=3;break}return e.abrupt("return",k(t,A));case 3:if(!Object(o.b)(t)){e.next=7;break}return e.next=6,Object(D.b)(t);case 6:t=e.sent;case 7:if(!Object(o.i)(t)){e.next=21;break}return a=t,e.next=11,Object(D.a)(a);case 11:if(!A.binary){e.next=17;break}return e.next=14,a.arrayBuffer();case 14:e.t0=e.sent,e.next=20;break;case 17:return e.next=19,a.text();case 19:e.t0=e.sent;case 20:return e.abrupt("return",e.t0);case 21:if(Object(o.h)(t)&&(t=R(t,n)),!Object(o.d)(t)&&!Object(o.a)(t)){e.next=24;break}return e.abrupt("return",Object(I.a)(t));case 24:throw new Error(G);case 25:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var U=A(11),_=A(7);function M(e,t){var A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(A)return A;var n=Object(_.a)({fetch:Object(s.a)(t,e)},e);return Array.isArray(n.loaders)||(n.loaders=null),n}function O(e,t){if(!t&&e&&!Array.isArray(e))return e;var A;if(e&&(A=Array.isArray(e)?e:[e]),t&&t.loaders){var n=Array.isArray(t.loaders)?t.loaders:[t.loaders];A=A?[].concat(Object(U.a)(A),Object(U.a)(n)):n}return A&&A.length?A:null}var L=A(209),T=A(6),Z=A(666),H=/\.([^.]+)$/;function Y(e){return J.apply(this,arguments)}function J(){return(J=Object(i.a)(r.a.mark((function e(t){var A,n,i,a,s=arguments;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=s.length>1&&void 0!==s[1]?s[1]:[],n=s.length>2?s[2]:void 0,i=s.length>3?s[3]:void 0,V(t)){e.next=5;break}return e.abrupt("return",null);case 5:if(!(a=j(t,A,Object(_.a)({},n,{nothrow:!0}),i))){e.next=8;break}return e.abrupt("return",a);case 8:if(!Object(o.b)(t)){e.next=13;break}return e.next=11,t.slice(0,10).arrayBuffer();case 11:t=e.sent,a=j(t,A,n,i);case 13:if(a||null!==n&&void 0!==n&&n.nothrow){e.next=15;break}throw new Error(K(t));case 15:return e.abrupt("return",a);case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function j(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],A=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0;if(!V(e))return null;if(t&&!Array.isArray(t))return Object(a.b)(t);var r,i=[];(t&&(i=i.concat(t)),null!==A&&void 0!==A&&A.ignoreRegisteredLoaders)||(r=i).push.apply(r,Object(U.a)(Object(Z.a)()));W(i);var o=P(e,i,A,n);if(!o&&(null===A||void 0===A||!A.nothrow))throw new Error(K(e));return o}function P(e,t,A,n){var r=Object(L.b)(e),i=r.url,o=r.type,a=i||(null===n||void 0===n?void 0:n.url),s=null;return null!==A&&void 0!==A&&A.mimeType&&(s=X(t,null===A||void 0===A?void 0:A.mimeType)),s=(s=(s=(s=s||function(e,t){var A=t&&H.exec(t),n=A&&A[1];return n?function(e,t){t=t.toLowerCase();var A,n=Object(T.a)(e);try{for(n.s();!(A=n.n()).done;){var r,i=A.value,o=Object(T.a)(i.extensions);try{for(o.s();!(r=o.n()).done;){if(r.value.toLowerCase()===t)return i}}catch(a){o.e(a)}finally{o.f()}}}catch(a){n.e(a)}finally{n.f()}return null}(e,n):null}(t,a))||X(t,o))||function(e,t){if(!t)return null;var A,n=Object(T.a)(e);try{for(n.s();!(A=n.n()).done;){var r=A.value;if("string"===typeof t){if(q(t,r))return r}else if(ArrayBuffer.isView(t)){if(z(t.buffer,t.byteOffset,r))return r}else if(t instanceof ArrayBuffer){if(z(t,0,r))return r}}}catch(i){n.e(i)}finally{n.f()}return null}(t,e))||X(t,null===A||void 0===A?void 0:A.fallbackMimeType)}function V(e){return!(e instanceof Response&&204===e.status)}function K(e){var t=Object(L.b)(e),A=t.url,n=t.type,r="No valid loader found";return e&&(r+=' data: "'.concat(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5;if("string"===typeof e)return e.slice(0,t);if(ArrayBuffer.isView(e))return $(e.buffer,e.byteOffset,t);if(e instanceof ArrayBuffer){var A=0;return $(e,A,t)}return""}(e),'", contentType: "').concat(n,'"')),A&&(r+=" url: ".concat(A)),r}function W(e){var t,A=Object(T.a)(e);try{for(A.s();!(t=A.n()).done;){var n=t.value;Object(a.b)(n)}}catch(r){A.e(r)}finally{A.f()}}function X(e,t){var A,n=Object(T.a)(e);try{for(n.s();!(A=n.n()).done;){var r=A.value;if(r.mimeTypes&&r.mimeTypes.includes(t))return r;if(t==="application/x.".concat(r.id))return r}}catch(i){n.e(i)}finally{n.f()}return null}function q(e,t){return t.testText?t.testText(e):(Array.isArray(t.tests)?t.tests:[t.tests]).some((function(t){return e.startsWith(t)}))}function z(e,t,A){return(Array.isArray(A.tests)?A.tests:[A.tests]).some((function(n){return function(e,t,A,n){if(n instanceof ArrayBuffer)return Object(b.a)(n,e,n.byteLength);switch(typeof n){case"function":return n(e,A);case"string":var r=$(e,t,n.length);return n===r;default:return!1}}(e,t,A,n)}))}function $(e,t,A){if(e.byteLength<t+A)return"";for(var n=new DataView(e),r="",i=0;i<A;i++)r+=String.fromCharCode(n.getUint8(t+i));return r}function ee(e,t,A,n){return te.apply(this,arguments)}function te(){return(te=Object(i.a)(r.a.mark((function e(t,A,n,i){var o,c,u,l;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Object(g.a)(!i||"object"===typeof i),!A||Array.isArray(A)||Object(a.a)(A)||(i=void 0,n=A,A=void 0),e.next=4,t;case 4:return t=e.sent,n=n||{},o=Object(L.b)(t),c=o.url,u=O(A,i),e.next=11,Y(t,u,n);case 11:if(l=e.sent){e.next=14;break}return e.abrupt("return",null);case 14:return n=Object(s.c)(n,l,u,c),i=M({url:c,parse:ee,loaders:u},n,i),e.next=18,Ae(l,t,n,i);case 18:return e.abrupt("return",e.sent);case 19:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ae(e,t,A,n){return ne.apply(this,arguments)}function ne(){return(ne=Object(i.a)(r.a.mark((function e(t,A,n,i){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u(t),e.next=3,x(A,t,n);case 3:if(A=e.sent,!t.parseTextSync||"string"!==typeof A){e.next=7;break}return n.dataType="text",e.abrupt("return",t.parseTextSync(A,n,i,t));case 7:if(!Object(l.a)(t,n)){e.next=11;break}return e.next=10,Object(l.b)(t,A,n,i,ee);case 10:return e.abrupt("return",e.sent);case 11:if(!t.parseText||"string"!==typeof A){e.next=15;break}return e.next=14,t.parseText(A,n,i,t);case 14:return e.abrupt("return",e.sent);case 15:if(!t.parse){e.next=19;break}return e.next=18,t.parse(A,n,i,t);case 18:return e.abrupt("return",e.sent);case 19:throw Object(g.a)(!t.parseSync),new Error("".concat(t.id," loader - no parser found and worker is disabled"));case 21:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function re(e,t,A,n){return ie.apply(this,arguments)}function ie(){return(ie=Object(i.a)(r.a.mark((function e(t,A,n,i){var g,c;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Array.isArray(A)||Object(a.a)(A)||(void 0,n=A,A=void 0),g=Object(s.a)(n),c=t,"string"!==typeof t){e.next=7;break}return e.next=6,g(t);case 6:c=e.sent;case 7:if(!Object(o.b)(t)){e.next=11;break}return e.next=10,g(t);case 10:c=e.sent;case 11:return e.next=13,ee(c,A,n);case 13:return e.abrupt("return",e.sent);case 14:case"end":return e.stop()}}),e)})))).apply(this,arguments)}A.d(t,"a",(function(){return re}))},function(e,t,A){"use strict";function n(e,t,A,n){if(isNaN(t)||isNaN(A))return e;var r,i,o,a,s,g,c,u,l,I=e._root,C={data:n},h=e._x0,f=e._y0,d=e._x1,B=e._y1;if(!I)return e._root=C,e;for(;I.length;)if((g=t>=(i=(h+d)/2))?h=i:d=i,(c=A>=(o=(f+B)/2))?f=o:B=o,r=I,!(I=I[u=c<<1|g]))return r[u]=C,e;if(a=+e._x.call(null,I.data),s=+e._y.call(null,I.data),t===a&&A===s)return C.next=I,r?r[u]=C:e._root=C,e;do{r=r?r[u]=new Array(4):e._root=new Array(4),(g=t>=(i=(h+d)/2))?h=i:d=i,(c=A>=(o=(f+B)/2))?f=o:B=o}while((u=c<<1|g)===(l=(s>=o)<<1|a>=i));return r[l]=I,r[u]=C,e}var r=function(e,t,A,n,r){this.node=e,this.x0=t,this.y0=A,this.x1=n,this.y1=r};function i(e){return e[0]}function o(e){return e[1]}function a(e,t,A){var n=new s(null==t?i:t,null==A?o:A,NaN,NaN,NaN,NaN);return null==e?n:n.addAll(e)}function s(e,t,A,n,r,i){this._x=e,this._y=t,this._x0=A,this._y0=n,this._x1=r,this._y1=i,this._root=void 0}function g(e){for(var t={data:e.data},A=t;e=e.next;)A=A.next={data:e.data};return t}A.d(t,"a",(function(){return a}));var c=a.prototype=s.prototype;c.copy=function(){var e,t,A=new s(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return A;if(!n.length)return A._root=g(n),A;for(e=[{source:n,target:A._root=new Array(4)}];n=e.pop();)for(var r=0;r<4;++r)(t=n.source[r])&&(t.length?e.push({source:t,target:n.target[r]=new Array(4)}):n.target[r]=g(t));return A},c.add=function(e){var t=+this._x.call(null,e),A=+this._y.call(null,e);return n(this.cover(t,A),t,A,e)},c.addAll=function(e){var t,A,r,i,o=e.length,a=new Array(o),s=new Array(o),g=1/0,c=1/0,u=-1/0,l=-1/0;for(A=0;A<o;++A)isNaN(r=+this._x.call(null,t=e[A]))||isNaN(i=+this._y.call(null,t))||(a[A]=r,s[A]=i,r<g&&(g=r),r>u&&(u=r),i<c&&(c=i),i>l&&(l=i));if(g>u||c>l)return this;for(this.cover(g,c).cover(u,l),A=0;A<o;++A)n(this,a[A],s[A],e[A]);return this},c.cover=function(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var A=this._x0,n=this._y0,r=this._x1,i=this._y1;if(isNaN(A))r=(A=Math.floor(e))+1,i=(n=Math.floor(t))+1;else{for(var o,a,s=r-A,g=this._root;A>e||e>=r||n>t||t>=i;)switch(a=(t<n)<<1|e<A,(o=new Array(4))[a]=g,g=o,s*=2,a){case 0:r=A+s,i=n+s;break;case 1:A=r-s,i=n+s;break;case 2:r=A+s,n=i-s;break;case 3:A=r-s,n=i-s}this._root&&this._root.length&&(this._root=g)}return this._x0=A,this._y0=n,this._x1=r,this._y1=i,this},c.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},c.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},c.find=function(e,t,A){var n,i,o,a,s,g,c,u=this._x0,l=this._y0,I=this._x1,C=this._y1,h=[],f=this._root;for(f&&h.push(new r(f,u,l,I,C)),null==A?A=1/0:(u=e-A,l=t-A,I=e+A,C=t+A,A*=A);g=h.pop();)if(!(!(f=g.node)||(i=g.x0)>I||(o=g.y0)>C||(a=g.x1)<u||(s=g.y1)<l))if(f.length){var d=(i+a)/2,B=(o+s)/2;h.push(new r(f[3],d,B,a,s),new r(f[2],i,B,d,s),new r(f[1],d,o,a,B),new r(f[0],i,o,d,B)),(c=(t>=B)<<1|e>=d)&&(g=h[h.length-1],h[h.length-1]=h[h.length-1-c],h[h.length-1-c]=g)}else{var p=e-+this._x.call(null,f.data),E=t-+this._y.call(null,f.data),Q=p*p+E*E;if(Q<A){var y=Math.sqrt(A=Q);u=e-y,l=t-y,I=e+y,C=t+y,n=f.data}}return n},c.remove=function(e){if(isNaN(i=+this._x.call(null,e))||isNaN(o=+this._y.call(null,e)))return this;var t,A,n,r,i,o,a,s,g,c,u,l,I=this._root,C=this._x0,h=this._y0,f=this._x1,d=this._y1;if(!I)return this;if(I.length)for(;;){if((g=i>=(a=(C+f)/2))?C=a:f=a,(c=o>=(s=(h+d)/2))?h=s:d=s,t=I,!(I=I[u=c<<1|g]))return this;if(!I.length)break;(t[u+1&3]||t[u+2&3]||t[u+3&3])&&(A=t,l=u)}for(;I.data!==e;)if(n=I,!(I=I.next))return this;return(r=I.next)&&delete I.next,n?(r?n.next=r:delete n.next,this):t?(r?t[u]=r:delete t[u],(I=t[0]||t[1]||t[2]||t[3])&&I===(t[3]||t[2]||t[1]||t[0])&&!I.length&&(A?A[l]=I:this._root=I),this):(this._root=r,this)},c.removeAll=function(e){for(var t=0,A=e.length;t<A;++t)this.remove(e[t]);return this},c.root=function(){return this._root},c.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},c.visit=function(e){var t,A,n,i,o,a,s=[],g=this._root;for(g&&s.push(new r(g,this._x0,this._y0,this._x1,this._y1));t=s.pop();)if(!e(g=t.node,n=t.x0,i=t.y0,o=t.x1,a=t.y1)&&g.length){var c=(n+o)/2,u=(i+a)/2;(A=g[3])&&s.push(new r(A,c,u,o,a)),(A=g[2])&&s.push(new r(A,n,u,c,a)),(A=g[1])&&s.push(new r(A,c,i,o,u)),(A=g[0])&&s.push(new r(A,n,i,c,u))}return this},c.visitAfter=function(e){var t,A=[],n=[];for(this._root&&A.push(new r(this._root,this._x0,this._y0,this._x1,this._y1));t=A.pop();){var i=t.node;if(i.length){var o,a=t.x0,s=t.y0,g=t.x1,c=t.y1,u=(a+g)/2,l=(s+c)/2;(o=i[0])&&A.push(new r(o,a,s,u,l)),(o=i[1])&&A.push(new r(o,u,s,g,l)),(o=i[2])&&A.push(new r(o,a,l,u,c)),(o=i[3])&&A.push(new r(o,u,l,g,c))}n.push(t)}for(;t=n.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this},c.x=function(e){return arguments.length?(this._x=e,this):this._x},c.y=function(e){return arguments.length?(this._y=e,this):this._y}},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=A.n(i),a=(A(13),A(1243)),s=A(102),g=Date.now(),c="fnValues"+g,u="fnStyle"+ ++g,l=function(){return{onCreateRule:function(e,t,A){if("function"!==typeof t)return null;var n=Object(s.c)(e,{},A);return n[u]=t,n},onProcessStyle:function(e,t){if(c in t||u in t)return e;var A={};for(var n in e){var r=e[n];"function"===typeof r&&(delete e[n],A[n]=r)}return t[c]=A,e},onUpdate:function(e,t,A,n){var r=t,i=r[u];i&&(r.style=i(e)||{});var o=r[c];if(o)for(var a in o)r.prop(a,o[a](e),n)}}},I="@global",C=function(){function e(e,t,A){for(var r in this.type="global",this.at=I,this.isProcessed=!1,this.key=e,this.options=A,this.rules=new s.a(Object(n.a)({},A,{parent:this})),t)this.rules.add(r,t[r]);this.rules.process()}var t=e.prototype;return t.getRule=function(e){return this.rules.get(e)},t.addRule=function(e,t,A){var n=this.rules.add(e,t,A);return n&&this.options.jss.plugins.onProcessRule(n),n},t.indexOf=function(e){return this.rules.indexOf(e)},t.toString=function(){return this.rules.toString()},e}(),h=function(){function e(e,t,A){this.type="global",this.at=I,this.isProcessed=!1,this.key=e,this.options=A;var r=e.substr("@global ".length);this.rule=A.jss.createRule(r,t,Object(n.a)({},A,{parent:this}))}return e.prototype.toString=function(e){return this.rule?this.rule.toString(e):""},e}(),f=/\s*,\s*/g;function d(e,t){for(var A=e.split(f),n="",r=0;r<A.length;r++)n+=t+" "+A[r].trim(),A[r+1]&&(n+=", ");return n}var B=function(){return{onCreateRule:function(e,t,A){if(!e)return null;if(e===I)return new C(e,t,A);if("@"===e[0]&&"@global "===e.substr(0,"@global ".length))return new h(e,t,A);var n=A.parent;return n&&("global"===n.type||n.options.parent&&"global"===n.options.parent.type)&&(A.scoped=!1),!1===A.scoped&&(A.selector=e),null},onProcessRule:function(e,t){"style"===e.type&&t&&(function(e,t){var A=e.options,r=e.style,i=r?r[I]:null;if(i){for(var o in i)t.addRule(o,i[o],Object(n.a)({},A,{selector:d(o,e.selector)}));delete r[I]}}(e,t),function(e,t){var A=e.options,r=e.style;for(var i in r)if("@"===i[0]&&i.substr(0,I.length)===I){var o=d(i.substr(I.length),e.selector);t.addRule(o,r[i],Object(n.a)({},A,{selector:o})),delete r[i]}}(e,t))}}},p=/\s*,\s*/g,E=/&/g,Q=/\$([\w-]+)/g;var y=function(){function e(e,t){return function(A,n){var r=e.getRule(n)||t&&t.getRule(n);return r?r.selector:n}}function t(e,t){for(var A=t.split(p),n=e.split(p),r="",i=0;i<A.length;i++)for(var o=A[i],a=0;a<n.length;a++){var s=n[a];r&&(r+=", "),r+=-1!==s.indexOf("&")?s.replace(E,o):o+" "+s}return r}function A(e,t,A){if(A)return Object(n.a)({},A,{index:A.index+1});var r=e.options.nestingLevel;r=void 0===r?1:r+1;var i=Object(n.a)({},e.options,{nestingLevel:r,index:t.indexOf(e)+1});return delete i.name,i}return{onProcessStyle:function(r,i,o){if("style"!==i.type)return r;var a,s,g=i,c=g.options.parent;for(var u in r){var l=-1!==u.indexOf("&"),I="@"===u[0];if(l||I){if(a=A(g,c,a),l){var C=t(u,g.selector);s||(s=e(c,o)),C=C.replace(Q,s),c.addRule(C,r[u],Object(n.a)({},a,{selector:C}))}else I&&c.addRule(u,{},a).addRule(g.key,r[u],{selector:g.selector});delete r[u]}}return r}}},v=/[A-Z]/g,m=/^ms-/,b={};function w(e){return"-"+e.toLowerCase()}var S=function(e){if(b.hasOwnProperty(e))return b[e];var t=e.replace(v,w);return b[e]=m.test(t)?"-"+t:t};function F(e){var t={};for(var A in e){t[0===A.indexOf("--")?A:S(A)]=e[A]}return e.fallbacks&&(Array.isArray(e.fallbacks)?t.fallbacks=e.fallbacks.map(F):t.fallbacks=F(e.fallbacks)),t}var R=function(){return{onProcessStyle:function(e){if(Array.isArray(e)){for(var t=0;t<e.length;t++)e[t]=F(e[t]);return e}return F(e)},onChangeValue:function(e,t,A){if(0===t.indexOf("--"))return e;var n=S(t);return t===n?e:(A.prop(n,e),null)}}},D=s.e&&CSS?CSS.px:"px",G=s.e&&CSS?CSS.ms:"ms",k=s.e&&CSS?CSS.percent:"%";function x(e){var t=/(-[a-z])/g,A=function(e){return e[1].toUpperCase()},n={};for(var r in e)n[r]=e[r],n[r.replace(t,A)]=e[r];return n}var N=x({"animation-delay":G,"animation-duration":G,"background-position":D,"background-position-x":D,"background-position-y":D,"background-size":D,border:D,"border-bottom":D,"border-bottom-left-radius":D,"border-bottom-right-radius":D,"border-bottom-width":D,"border-left":D,"border-left-width":D,"border-radius":D,"border-right":D,"border-right-width":D,"border-top":D,"border-top-left-radius":D,"border-top-right-radius":D,"border-top-width":D,"border-width":D,"border-block":D,"border-block-end":D,"border-block-end-width":D,"border-block-start":D,"border-block-start-width":D,"border-block-width":D,"border-inline":D,"border-inline-end":D,"border-inline-end-width":D,"border-inline-start":D,"border-inline-start-width":D,"border-inline-width":D,"border-start-start-radius":D,"border-start-end-radius":D,"border-end-start-radius":D,"border-end-end-radius":D,margin:D,"margin-bottom":D,"margin-left":D,"margin-right":D,"margin-top":D,"margin-block":D,"margin-block-end":D,"margin-block-start":D,"margin-inline":D,"margin-inline-end":D,"margin-inline-start":D,padding:D,"padding-bottom":D,"padding-left":D,"padding-right":D,"padding-top":D,"padding-block":D,"padding-block-end":D,"padding-block-start":D,"padding-inline":D,"padding-inline-end":D,"padding-inline-start":D,"mask-position-x":D,"mask-position-y":D,"mask-size":D,height:D,width:D,"min-height":D,"max-height":D,"min-width":D,"max-width":D,bottom:D,left:D,top:D,right:D,inset:D,"inset-block":D,"inset-block-end":D,"inset-block-start":D,"inset-inline":D,"inset-inline-end":D,"inset-inline-start":D,"box-shadow":D,"text-shadow":D,"column-gap":D,"column-rule":D,"column-rule-width":D,"column-width":D,"font-size":D,"font-size-delta":D,"letter-spacing":D,"text-decoration-thickness":D,"text-indent":D,"text-stroke":D,"text-stroke-width":D,"word-spacing":D,motion:D,"motion-offset":D,outline:D,"outline-offset":D,"outline-width":D,perspective:D,"perspective-origin-x":k,"perspective-origin-y":k,"transform-origin":k,"transform-origin-x":k,"transform-origin-y":k,"transform-origin-z":k,"transition-delay":G,"transition-duration":G,"vertical-align":D,"flex-basis":D,"shape-margin":D,size:D,gap:D,grid:D,"grid-gap":D,"row-gap":D,"grid-row-gap":D,"grid-column-gap":D,"grid-template-rows":D,"grid-template-columns":D,"grid-auto-rows":D,"grid-auto-columns":D,"box-shadow-x":D,"box-shadow-y":D,"box-shadow-blur":D,"box-shadow-spread":D,"font-line-height":D,"text-shadow-x":D,"text-shadow-y":D,"text-shadow-blur":D});function U(e,t,A){if(null==t)return t;if(Array.isArray(t))for(var n=0;n<t.length;n++)t[n]=U(e,t[n],A);else if("object"===typeof t)if("fallbacks"===e)for(var r in t)t[r]=U(r,t[r],A);else for(var i in t)t[i]=U(e+"-"+i,t[i],A);else if("number"===typeof t&&!1===isNaN(t)){var o=A[e]||N[e];return!o||0===t&&o===D?t.toString():"function"===typeof o?o(t).toString():""+t+o}return t}var _=function(e){void 0===e&&(e={});var t=x(e);return{onProcessStyle:function(e,A){if("style"!==A.type)return e;for(var n in e)e[n]=U(n,e[n],t);return e},onChangeValue:function(e,A){return U(A,e,t)}}},M=A(233),O=A(137),L="",T="",Z="",H="",Y=M.a&&"ontouchstart"in document.documentElement;if(M.a){var J={Moz:"-moz-",ms:"-ms-",O:"-o-",Webkit:"-webkit-"},j=document.createElement("p").style;for(var P in J)if(P+"Transform"in j){L=P,T=J[P];break}"Webkit"===L&&"msHyphens"in j&&(L="ms",T=J.ms,H="edge"),"Webkit"===L&&"-apple-trailing-word"in j&&(Z="apple")}var V=L,K=T,W=Z,X=H,q=Y;var z={noPrefill:["appearance"],supportedProperty:function(e){return"appearance"===e&&("ms"===V?"-webkit-"+e:K+e)}},$={noPrefill:["color-adjust"],supportedProperty:function(e){return"color-adjust"===e&&("Webkit"===V?K+"print-"+e:e)}},ee=/[-\s]+(.)?/g;function te(e,t){return t?t.toUpperCase():""}function Ae(e){return e.replace(ee,te)}function ne(e){return Ae("-"+e)}var re,ie={noPrefill:["mask"],supportedProperty:function(e,t){if(!/^mask/.test(e))return!1;if("Webkit"===V){if(Ae("mask-image")in t)return e;if(V+ne("mask-image")in t)return K+e}return e}},oe={noPrefill:["text-orientation"],supportedProperty:function(e){return"text-orientation"===e&&("apple"!==W||q?e:K+e)}},ae={noPrefill:["transform"],supportedProperty:function(e,t,A){return"transform"===e&&(A.transform?e:K+e)}},se={noPrefill:["transition"],supportedProperty:function(e,t,A){return"transition"===e&&(A.transition?e:K+e)}},ge={noPrefill:["writing-mode"],supportedProperty:function(e){return"writing-mode"===e&&("Webkit"===V||"ms"===V&&"edge"!==X?K+e:e)}},ce={noPrefill:["user-select"],supportedProperty:function(e){return"user-select"===e&&("Moz"===V||"ms"===V||"apple"===W?K+e:e)}},ue={supportedProperty:function(e,t){return!!/^break-/.test(e)&&("Webkit"===V?"WebkitColumn"+ne(e)in t&&K+"column-"+e:"Moz"===V&&("page"+ne(e)in t&&"page-"+e))}},le={supportedProperty:function(e,t){if(!/^(border|margin|padding)-inline/.test(e))return!1;if("Moz"===V)return e;var A=e.replace("-inline","");return V+ne(A)in t&&K+A}},Ie={supportedProperty:function(e,t){return Ae(e)in t&&e}},Ce={supportedProperty:function(e,t){var A=ne(e);return"-"===e[0]||"-"===e[0]&&"-"===e[1]?e:V+A in t?K+e:"Webkit"!==V&&"Webkit"+A in t&&"-webkit-"+e}},he={supportedProperty:function(e){return"scroll-snap"===e.substring(0,11)&&("ms"===V?""+K+e:e)}},fe={supportedProperty:function(e){return"overscroll-behavior"===e&&("ms"===V?K+"scroll-chaining":e)}},de={"flex-grow":"flex-positive","flex-shrink":"flex-negative","flex-basis":"flex-preferred-size","justify-content":"flex-pack",order:"flex-order","align-items":"flex-align","align-content":"flex-line-pack"},Be={supportedProperty:function(e,t){var A=de[e];return!!A&&(V+ne(A)in t&&K+A)}},pe={flex:"box-flex","flex-grow":"box-flex","flex-direction":["box-orient","box-direction"],order:"box-ordinal-group","align-items":"box-align","flex-flow":["box-orient","box-direction"],"justify-content":"box-pack"},Ee=Object.keys(pe),Qe=function(e){return K+e},ye=[z,$,ie,oe,ae,se,ge,ce,ue,le,Ie,Ce,he,fe,Be,{supportedProperty:function(e,t,A){var n=A.multiple;if(Ee.indexOf(e)>-1){var r=pe[e];if(!Array.isArray(r))return V+ne(r)in t&&K+r;if(!n)return!1;for(var i=0;i<r.length;i++)if(!(V+ne(r[0])in t))return!1;return r.map(Qe)}return!1}}],ve=ye.filter((function(e){return e.supportedProperty})).map((function(e){return e.supportedProperty})),me=ye.filter((function(e){return e.noPrefill})).reduce((function(e,t){return e.push.apply(e,Object(O.a)(t.noPrefill)),e}),[]),be={};if(M.a){re=document.createElement("p");var we=window.getComputedStyle(document.documentElement,"");for(var Se in we)isNaN(Se)||(be[we[Se]]=we[Se]);me.forEach((function(e){return delete be[e]}))}function Fe(e,t){if(void 0===t&&(t={}),!re)return e;if(null!=be[e])return be[e];"transition"!==e&&"transform"!==e||(t[e]=e in re.style);for(var A=0;A<ve.length&&(be[e]=ve[A](e,re.style,t),!be[e]);A++);try{re.style[e]=""}catch(n){return!1}return be[e]}var Re,De={},Ge={transition:1,"transition-property":1,"-webkit-transition":1,"-webkit-transition-property":1},ke=/(^\s*[\w-]+)|, (\s*[\w-]+)(?![^()]*\))/g;function xe(e,t,A){if("var"===t)return"var";if("all"===t)return"all";if("all"===A)return", all";var n=t?Fe(t):", "+Fe(A);return n||(t||A)}function Ne(e,t){var A=t;if(!Re||"content"===e)return t;if("string"!==typeof A||!isNaN(parseInt(A,10)))return A;var n=e+A;if(null!=De[n])return De[n];try{Re.style[e]=A}catch(r){return De[n]=!1,!1}if(Ge[e])A=A.replace(ke,xe);else if(""===Re.style[e]&&("-ms-flex"===(A=K+A)&&(Re.style[e]="-ms-flexbox"),Re.style[e]=A,""===Re.style[e]))return De[n]=!1,!1;return Re.style[e]="",De[n]=A,De[n]}M.a&&(Re=document.createElement("p"));var Ue=function(){function e(t){for(var A in t){var n=t[A];if("fallbacks"===A&&Array.isArray(n))t[A]=n.map(e);else{var r=!1,i=Fe(A);i&&i!==A&&(r=!0);var o=!1,a=Ne(i,Object(s.f)(n));a&&a!==n&&(o=!0),(r||o)&&(r&&delete t[A],t[i||A]=a||n)}}return t}return{onProcessRule:function(e){if("keyframes"===e.type){var t=e;t.at="-"===(A=t.at)[1]||"ms"===V?A:"@"+K+"keyframes"+A.substr(10)}var A},onProcessStyle:function(t,A){return"style"!==A.type?t:e(t)},onChangeValue:function(e,t){return Ne(t,Object(s.f)(e))||e}}};var _e=function(){var e=function(e,t){return e.length===t.length?e>t?1:-1:e.length-t.length};return{onProcessStyle:function(t,A){if("style"!==A.type)return t;for(var n={},r=Object.keys(t).sort(e),i=0;i<r.length;i++)n[r[i]]=t[r[i]];return n}}};function Me(){return{plugins:[l(),B(),y(),R(),_(),"undefined"===typeof window?null:Ue(),_e()]}}A.d(t,"a",(function(){return Ze})),A.d(t,"b",(function(){return He}));var Oe,Le=Object(s.b)(Me()),Te={disableGeneration:!1,generateClassName:Object(a.a)(),jss:Le,sheetsCache:null,sheetsManager:new Map,sheetsRegistry:null},Ze=o.a.createContext(Te);function He(e){var t=e.children,A=e.injectFirst,i=void 0!==A&&A,a=e.disableGeneration,g=void 0!==a&&a,c=Object(r.a)(e,["children","injectFirst","disableGeneration"]),u=o.a.useContext(Ze),l=Object(n.a)({},u,{disableGeneration:g},c);if(!l.jss.options.insertionPoint&&i&&"undefined"!==typeof window){if(!Oe){var I=document.head;Oe=document.createComment("mui-inject-first"),I.insertBefore(Oe,I.firstChild)}l.jss=Object(s.b)({plugins:Me().plugins,insertionPoint:Oe})}return o.a.createElement(Ze.Provider,{value:l},t)}},function(e,t,A){"use strict";var n=A(3),r=A.n(n),i=A(12);function o(e,t){if(!e)throw new Error(t)}var a=A(325),s=a.a._parseImageNode,g="undefined"!==typeof Image,c="undefined"!==typeof ImageBitmap,u=Boolean(s),l=!!a.b||u;function I(e){var t=h(e);if(!t)throw new Error("Not an image");return t}function C(e){switch(I(e)){case"data":return e;case"image":case"imagebitmap":var t=document.createElement("canvas"),A=t.getContext("2d");if(!A)throw new Error("getImageData");return t.width=e.width,t.height=e.height,A.drawImage(e,0,0),A.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function h(e){return"undefined"!==typeof ImageBitmap&&e instanceof ImageBitmap?"imagebitmap":"undefined"!==typeof Image&&e instanceof Image?"image":e&&"object"===typeof e&&e.data&&e.width&&e.height?"data":null}var f=/^data:image\/svg\+xml/,d=/\.svg((\?|#).*)?$/;function B(e){return e&&(f.test(e)||d.test(e))}function p(e,t){if(B(t)){var A=(new TextDecoder).decode(e);try{"function"===typeof unescape&&"function"===typeof encodeURIComponent&&(A=unescape(encodeURIComponent(A)))}catch(n){throw new Error(n.message)}return"data:image/svg+xml;base64,".concat(btoa(A))}return E(e,t)}function E(e,t){if(B(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}function Q(e,t,A){return y.apply(this,arguments)}function y(){return(y=Object(i.a)(r.a.mark((function e(t,A,n){var i,o,a;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=p(t,n),o=self.URL||self.webkitURL,a="string"!==typeof i&&o.createObjectURL(i),e.prev=3,e.next=6,v(a||i,A);case 6:return e.abrupt("return",e.sent);case 7:return e.prev=7,a&&o.revokeObjectURL(a),e.finish(7);case 10:case"end":return e.stop()}}),e,null,[[3,,7,10]])})))).apply(this,arguments)}function v(e,t){return m.apply(this,arguments)}function m(){return(m=Object(i.a)(r.a.mark((function e(t,A){var n;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n=new Image).src=t,!(A.image&&A.image.decode&&n.decode)){e.next=6;break}return e.next=5,n.decode();case 5:return e.abrupt("return",n);case 6:return e.next=8,new Promise((function(e,A){try{n.onload=function(){return e(n)},n.onerror=function(e){return A(new Error("Could not load image ".concat(t,": ").concat(e)))}}catch(r){A(r)}}));case 8:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var b={},w=!0;function S(e,t,A){return F.apply(this,arguments)}function F(){return(F=Object(i.a)(r.a.mark((function e(t,A,n){var i,o,a;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!B(n)){e.next=7;break}return e.next=3,Q(t,A,n);case 3:o=e.sent,i=o,e.next=8;break;case 7:i=E(t,n);case 8:return a=A&&A.imagebitmap,e.next=11,R(i,a);case 11:return e.abrupt("return",e.sent);case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function R(e){return D.apply(this,arguments)}function D(){return(D=Object(i.a)(r.a.mark((function e(t){var A,n=arguments;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!G(A=n.length>1&&void 0!==n[1]?n[1]:null)&&w||(A=null),!A){e.next=13;break}return e.prev=3,e.next=6,createImageBitmap(t,A);case 6:return e.abrupt("return",e.sent);case 9:e.prev=9,e.t0=e.catch(3),console.warn(e.t0),w=!1;case 13:return e.next=15,createImageBitmap(t);case 15:return e.abrupt("return",e.sent);case 16:case"end":return e.stop()}}),e,null,[[3,9]])})))).apply(this,arguments)}function G(e){for(var t in e||b)return!1;return!0}var k=A(408);function x(e,t){var A=(Object(k.a)(e)||{}).mimeType,n=a.a._parseImageNode;return o(n),n(e,A,t)}function N(){return(N=Object(i.a)(r.a.mark((function e(t,A,n){var i,a,s,g,c;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=(A=A||{}).image||{},a=i.type||"auto",s=(n||{}).url,g=U(a),e.t0=g,e.next="imagebitmap"===e.t0?8:"image"===e.t0?12:"data"===e.t0?16:20;break;case 8:return e.next=10,S(t,A,s);case 10:return c=e.sent,e.abrupt("break",21);case 12:return e.next=14,Q(t,A,s);case 14:return c=e.sent,e.abrupt("break",21);case 16:return e.next=18,x(t,A);case 18:return c=e.sent,e.abrupt("break",21);case 20:o(!1);case 21:return"data"===a&&(c=C(c)),e.abrupt("return",c);case 23:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function U(e){switch(e){case"auto":case"data":return function(){if(c)return"imagebitmap";if(g)return"image";if(l)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}();default:return function(e){switch(e){case"auto":return c||g||l;case"imagebitmap":return c;case"image":return g;case"data":return l;default:throw new Error("@loaders.gl/images: image ".concat(e," not supported in this environment"))}}(e),e}}A.d(t,"a",(function(){return _}));var _={id:"image",module:"images",name:"Images",version:"3.0.12",mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],extensions:["png","jpg","jpeg","gif","webp","bmp","ico","svg"],parse:function(e,t,A){return N.apply(this,arguments)},tests:[function(e){return Boolean(Object(k.a)(new DataView(e)))}],options:{image:{type:"auto",decode:!0}}}},function(e,t,A){"use strict";var n,r=A(14),i=A(21),o=A(25),a=A(0),s=(A(195),A(13),A(19)),g=A(148),c=A(201);function u(){if(n)return n;var e=document.createElement("div"),t=document.createElement("div");return t.style.width="10px",t.style.height="1px",e.appendChild(t),e.dir="rtl",e.style.fontSize="14px",e.style.width="4px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.overflow="scroll",document.body.appendChild(e),n="reverse",e.scrollLeft>0?n="default":(e.scrollLeft=1,0===e.scrollLeft&&(n="negative")),document.body.removeChild(e),n}function l(e,t){var A=e.scrollLeft;if("rtl"!==t)return A;switch(u()){case"negative":return e.scrollWidth-e.clientWidth+A;case"reverse":return e.scrollWidth-e.clientWidth-A;default:return A}}function I(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}var C={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function h(e){var t=e.onChange,A=Object(i.a)(e,["onChange"]),n=a.useRef(),o=a.useRef(null),s=function(){n.current=o.current.offsetHeight-o.current.clientHeight};return a.useEffect((function(){var e=Object(g.a)((function(){var e=n.current;s(),e!==n.current&&t(n.current)}));return window.addEventListener("resize",e),function(){e.clear(),window.removeEventListener("resize",e)}}),[t]),a.useEffect((function(){s(),t(n.current)}),[t]),a.createElement("div",Object(r.a)({style:C,ref:o},A))}var f=A(28),d=A(40),B=a.forwardRef((function(e,t){var A=e.classes,n=e.className,o=e.color,g=e.orientation,c=Object(i.a)(e,["classes","className","color","orientation"]);return a.createElement("span",Object(r.a)({className:Object(s.a)(A.root,A["color".concat(Object(d.a)(o))],n,"vertical"===g&&A.vertical),ref:t},c))})),p=Object(f.a)((function(e){return{root:{position:"absolute",height:2,bottom:0,width:"100%",transition:e.transitions.create()},colorPrimary:{backgroundColor:e.palette.primary.main},colorSecondary:{backgroundColor:e.palette.secondary.main},vertical:{height:"100%",width:2,right:0}}}),{name:"PrivateTabIndicator"})(B),E=A(113),Q=Object(E.a)(a.createElement("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),y=Object(E.a)(a.createElement("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight"),v=A(433),m=a.createElement(Q,{fontSize:"small"}),b=a.createElement(y,{fontSize:"small"}),w=a.forwardRef((function(e,t){var A=e.classes,n=e.className,o=e.direction,g=e.orientation,c=e.disabled,u=Object(i.a)(e,["classes","className","direction","orientation","disabled"]);return a.createElement(v.a,Object(r.a)({component:"div",className:Object(s.a)(A.root,n,c&&A.disabled,"vertical"===g&&A.vertical),ref:t,role:null,tabIndex:null},u),"left"===o?m:b)})),S=Object(f.a)({root:{width:40,flexShrink:0,opacity:.8,"&$disabled":{opacity:0}},vertical:{width:"100%",height:40,"& svg":{transform:"rotate(90deg)"}},disabled:{}},{name:"MuiTabScrollButton"})(w),F=A(66),R=A(114),D=a.forwardRef((function(e,t){var A=e["aria-label"],n=e["aria-labelledby"],C=e.action,f=e.centered,d=void 0!==f&&f,B=e.children,E=e.classes,Q=e.className,y=e.component,v=void 0===y?"div":y,m=e.indicatorColor,b=void 0===m?"secondary":m,w=e.onChange,D=e.orientation,G=void 0===D?"horizontal":D,k=e.ScrollButtonComponent,x=void 0===k?S:k,N=e.scrollButtons,U=void 0===N?"auto":N,_=e.selectionFollowsFocus,M=e.TabIndicatorProps,O=void 0===M?{}:M,L=e.TabScrollButtonProps,T=e.textColor,Z=void 0===T?"inherit":T,H=e.value,Y=e.variant,J=void 0===Y?"standard":Y,j=Object(i.a)(e,["aria-label","aria-labelledby","action","centered","children","classes","className","component","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant"]),P=Object(R.a)(),V="scrollable"===J,K="rtl"===P.direction,W="vertical"===G,X=W?"scrollTop":"scrollLeft",q=W?"top":"left",z=W?"bottom":"right",$=W?"clientHeight":"clientWidth",ee=W?"height":"width";var te=a.useState(!1),Ae=te[0],ne=te[1],re=a.useState({}),ie=re[0],oe=re[1],ae=a.useState({start:!1,end:!1}),se=ae[0],ge=ae[1],ce=a.useState({overflow:"hidden",marginBottom:null}),ue=ce[0],le=ce[1],Ie=new Map,Ce=a.useRef(null),he=a.useRef(null),fe=function(){var e,t,A=Ce.current;if(A){var n=A.getBoundingClientRect();e={clientWidth:A.clientWidth,scrollLeft:A.scrollLeft,scrollTop:A.scrollTop,scrollLeftNormalized:l(A,P.direction),scrollWidth:A.scrollWidth,top:n.top,bottom:n.bottom,left:n.left,right:n.right}}if(A&&!1!==H){var r=he.current.children;if(r.length>0){var i=r[Ie.get(H)];0,t=i?i.getBoundingClientRect():null}}return{tabsMeta:e,tabMeta:t}},de=Object(F.a)((function(){var e,t=fe(),A=t.tabsMeta,n=t.tabMeta,r=0;if(n&&A)if(W)r=n.top-A.top+A.scrollTop;else{var i=K?A.scrollLeftNormalized+A.clientWidth-A.scrollWidth:A.scrollLeft;r=n.left-A.left+i}var a=(e={},Object(o.a)(e,q,r),Object(o.a)(e,ee,n?n[ee]:0),e);if(isNaN(ie[q])||isNaN(ie[ee]))oe(a);else{var s=Math.abs(ie[q]-a[q]),g=Math.abs(ie[ee]-a[ee]);(s>=1||g>=1)&&oe(a)}})),Be=function(e){!function(e,t,A){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){},i=n.ease,o=void 0===i?I:i,a=n.duration,s=void 0===a?300:a,g=null,c=t[e],u=!1,l=function(){u=!0},C=function n(i){if(u)r(new Error("Animation cancelled"));else{null===g&&(g=i);var a=Math.min(1,(i-g)/s);t[e]=o(a)*(A-c)+c,a>=1?requestAnimationFrame((function(){r(null)})):requestAnimationFrame(n)}};c===A?r(new Error("Element already at target position")):requestAnimationFrame(C)}(X,Ce.current,e)},pe=function(e){var t=Ce.current[X];W?t+=e:(t+=e*(K?-1:1),t*=K&&"reverse"===u()?-1:1),Be(t)},Ee=function(){pe(-Ce.current[$])},Qe=function(){pe(Ce.current[$])},ye=a.useCallback((function(e){le({overflow:null,marginBottom:-e})}),[]),ve=Object(F.a)((function(){var e=fe(),t=e.tabsMeta,A=e.tabMeta;if(A&&t)if(A[q]<t[q]){var n=t[X]+(A[q]-t[q]);Be(n)}else if(A[z]>t[z]){var r=t[X]+(A[z]-t[z]);Be(r)}})),me=Object(F.a)((function(){if(V&&"off"!==U){var e,t,A=Ce.current,n=A.scrollTop,r=A.scrollHeight,i=A.clientHeight,o=A.scrollWidth,a=A.clientWidth;if(W)e=n>1,t=n<r-i-1;else{var s=l(Ce.current,P.direction);e=K?s<o-a-1:s>1,t=K?s>1:s<o-a-1}e===se.start&&t===se.end||ge({start:e,end:t})}}));a.useEffect((function(){var e=Object(g.a)((function(){de(),me()})),t=Object(c.a)(Ce.current);return t.addEventListener("resize",e),function(){e.clear(),t.removeEventListener("resize",e)}}),[de,me]);var be=a.useCallback(Object(g.a)((function(){me()})));a.useEffect((function(){return function(){be.clear()}}),[be]),a.useEffect((function(){ne(!0)}),[]),a.useEffect((function(){de(),me()})),a.useEffect((function(){ve()}),[ve,ie]),a.useImperativeHandle(C,(function(){return{updateIndicator:de,updateScrollButtons:me}}),[de,me]);var we=a.createElement(p,Object(r.a)({className:E.indicator,orientation:G,color:b},O,{style:Object(r.a)({},ie,O.style)})),Se=0,Fe=a.Children.map(B,(function(e){if(!a.isValidElement(e))return null;var t=void 0===e.props.value?Se:e.props.value;Ie.set(t,Se);var A=t===H;return Se+=1,a.cloneElement(e,{fullWidth:"fullWidth"===J,indicator:A&&!Ae&&we,selected:A,selectionFollowsFocus:_,onChange:w,textColor:Z,value:t})})),Re=function(){var e={};e.scrollbarSizeListener=V?a.createElement(h,{className:E.scrollable,onChange:ye}):null;var t=se.start||se.end,A=V&&("auto"===U&&t||"desktop"===U||"on"===U);return e.scrollButtonStart=A?a.createElement(x,Object(r.a)({orientation:G,direction:K?"right":"left",onClick:Ee,disabled:!se.start,className:Object(s.a)(E.scrollButtons,"on"!==U&&E.scrollButtonsDesktop)},L)):null,e.scrollButtonEnd=A?a.createElement(x,Object(r.a)({orientation:G,direction:K?"left":"right",onClick:Qe,disabled:!se.end,className:Object(s.a)(E.scrollButtons,"on"!==U&&E.scrollButtonsDesktop)},L)):null,e}();return a.createElement(v,Object(r.a)({className:Object(s.a)(E.root,Q,W&&E.vertical),ref:t},j),Re.scrollButtonStart,Re.scrollbarSizeListener,a.createElement("div",{className:Object(s.a)(E.scroller,V?E.scrollable:E.fixed),style:ue,ref:Ce,onScroll:be},a.createElement("div",{"aria-label":A,"aria-labelledby":n,className:Object(s.a)(E.flexContainer,W&&E.flexContainerVertical,d&&!V&&E.centered),onKeyDown:function(e){var t=e.target;if("tab"===t.getAttribute("role")){var A=null,n="vertical"!==G?"ArrowLeft":"ArrowUp",r="vertical"!==G?"ArrowRight":"ArrowDown";switch("vertical"!==G&&"rtl"===P.direction&&(n="ArrowRight",r="ArrowLeft"),e.key){case n:A=t.previousElementSibling||he.current.lastChild;break;case r:A=t.nextElementSibling||he.current.firstChild;break;case"Home":A=he.current.firstChild;break;case"End":A=he.current.lastChild}null!==A&&(A.focus(),e.preventDefault())}},ref:he,role:"tablist"},Fe),Ae&&we),Re.scrollButtonEnd)}));t.a=Object(f.a)((function(e){return{root:{overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},vertical:{flexDirection:"column"},flexContainer:{display:"flex"},flexContainerVertical:{flexDirection:"column"},centered:{justifyContent:"center"},scroller:{position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},fixed:{overflowX:"hidden",width:"100%"},scrollable:{overflowX:"scroll",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},scrollButtons:{},scrollButtonsDesktop:Object(o.a)({},e.breakpoints.down("xs"),{display:"none"}),indicator:{}}}),{name:"MuiTabs"})(D)},function(e,t,A){"use strict";var n,r=A(6),i=A(1),o=A(4),a=A(24),s=A(16),g=A(17),c=A(9),u=A(10),l=A(92),I=A(124),C=A(161),h=A(2),f=A(18),d=A(238),B=A(26),p=(n={},Object(h.a)(n,5126,N.bind(null,"uniform1fv",b,1,U)),Object(h.a)(n,35664,N.bind(null,"uniform2fv",b,2,U)),Object(h.a)(n,35665,N.bind(null,"uniform3fv",b,3,U)),Object(h.a)(n,35666,N.bind(null,"uniform4fv",b,4,U)),Object(h.a)(n,5124,N.bind(null,"uniform1iv",w,1,U)),Object(h.a)(n,35667,N.bind(null,"uniform2iv",w,2,U)),Object(h.a)(n,35668,N.bind(null,"uniform3iv",w,3,U)),Object(h.a)(n,35669,N.bind(null,"uniform4iv",w,4,U)),Object(h.a)(n,35670,N.bind(null,"uniform1iv",w,1,U)),Object(h.a)(n,35671,N.bind(null,"uniform2iv",w,2,U)),Object(h.a)(n,35672,N.bind(null,"uniform3iv",w,3,U)),Object(h.a)(n,35673,N.bind(null,"uniform4iv",w,4,U)),Object(h.a)(n,35674,N.bind(null,"uniformMatrix2fv",b,4,_)),Object(h.a)(n,35675,N.bind(null,"uniformMatrix3fv",b,9,_)),Object(h.a)(n,35676,N.bind(null,"uniformMatrix4fv",b,16,_)),Object(h.a)(n,35678,x),Object(h.a)(n,35680,x),Object(h.a)(n,5125,N.bind(null,"uniform1uiv",S,1,U)),Object(h.a)(n,36294,N.bind(null,"uniform2uiv",S,2,U)),Object(h.a)(n,36295,N.bind(null,"uniform3uiv",S,3,U)),Object(h.a)(n,36296,N.bind(null,"uniform4uiv",S,4,U)),Object(h.a)(n,35685,N.bind(null,"uniformMatrix2x3fv",b,6,_)),Object(h.a)(n,35686,N.bind(null,"uniformMatrix2x4fv",b,8,_)),Object(h.a)(n,35687,N.bind(null,"uniformMatrix3x2fv",b,6,_)),Object(h.a)(n,35688,N.bind(null,"uniformMatrix3x4fv",b,12,_)),Object(h.a)(n,35689,N.bind(null,"uniformMatrix4x2fv",b,8,_)),Object(h.a)(n,35690,N.bind(null,"uniformMatrix4x3fv",b,12,_)),Object(h.a)(n,35678,x),Object(h.a)(n,35680,x),Object(h.a)(n,35679,x),Object(h.a)(n,35682,x),Object(h.a)(n,36289,x),Object(h.a)(n,36292,x),Object(h.a)(n,36293,x),Object(h.a)(n,36298,x),Object(h.a)(n,36299,x),Object(h.a)(n,36300,x),Object(h.a)(n,36303,x),Object(h.a)(n,36306,x),Object(h.a)(n,36307,x),Object(h.a)(n,36308,x),Object(h.a)(n,36311,x),n),E={},Q={},y={},v=[0];function m(e,t,A,n){1===t&&"boolean"===typeof e&&(e=e?1:0),Number.isFinite(e)&&(v[0]=e,e=v);var r=e.length;if(r%t&&f.k.warn("Uniform size should be multiples of ".concat(t),e)(),e instanceof A)return e;var i=n[r];i||(i=new A(r),n[r]=i);for(var o=0;o<r;o++)i[o]=e[o];return i}function b(e,t){return m(e,t,Float32Array,E)}function w(e,t){return m(e,t,Int32Array,Q)}function S(e,t){return m(e,t,Uint32Array,y)}function F(e,t,A){var n=p[A.type];if(!n)throw new Error("Unknown GLSL uniform type ".concat(A.type));return n().bind(null,e,t)}function R(e){if("]"!==e[e.length-1])return{name:e,length:1,isArray:!1};var t=e.match(/([^[]*)(\[[0-9]+\])?/);if(!t||t.length<2)throw new Error("Failed to parse GLSL uniform name ".concat(e));return{name:t[1],length:t[2]||1,isArray:Boolean(t[2])}}function D(e,t,A){for(var n in e){var r=e[n];if((!A||Boolean(A[n]))&&!G(r))throw t=t?"".concat(t," "):"",console.error("".concat(t," Bad uniform ").concat(n),r),new Error("".concat(t," Bad uniform ").concat(n))}return!0}function G(e){return Array.isArray(e)||ArrayBuffer.isView(e)?function(e){if(0===e.length)return!1;for(var t=Math.min(e.length,16),A=0;A<t;++A)if(!Number.isFinite(e[A]))return!1;return!0}(e):!!isFinite(e)||(!0===e||!1===e||(e instanceof I.a||(e instanceof d.a||e instanceof C.a&&Boolean(e.texture))))}function k(e,t,A){if(Array.isArray(A)||ArrayBuffer.isView(A))if(e[t])for(var n=e[t],r=0,i=A.length;r<i;++r)n[r]=A[r];else e[t]=A.slice();else e[t]=A}function x(){var e=null;return function(t,A,n){var r=e!==n;return r&&(t.uniform1i(A,n),e=n),r}}function N(e,t,A,n){var r=null,i=null;return function(o,a,s){var g=t(s,A),c=g.length,u=!1;if(null===r)r=new Float32Array(c),i=c,u=!0;else{Object(B.a)(i===c,"Uniform length cannot change.");for(var l=0;l<c;++l)if(g[l]!==r[l]){u=!0;break}}return u&&(n(o,e,a,g),r.set(g)),u}}function U(e,t,A,n){e[t](A,n)}function _(e,t,A,n){e[t](A,!1,n)}function M(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"unnamed",A=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/,n=e.match(A);return n?n[1]:t}function O(e,t,A,n){for(var r=e.split(/\r?\n/),i={},o={},a=n||M(t)||"(unnamed)",s="".concat(function(e){switch(e){case 35632:return"fragment";case 35633:return"vertex";default:return"unknown type"}}(A)," shader ").concat(a),g=0;g<r.length;g++){var c=r[g];if(!(c.length<=1)){var u=c.split(":"),l=u[0],I=parseInt(u[2],10);if(isNaN(I))throw new Error("GLSL compilation error in ".concat(s,": ").concat(e));"WARNING"!==l?i[I]=c:o[I]=c}}var C=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,A=arguments.length>2&&void 0!==arguments[2]?arguments[2]:": ",n=e.split(/\r?\n/),r=String(n.length+t-1).length;return n.map((function(e,n){var i=String(n+t),o=i.length;return T(i,r-o)+A+e}))}(t);return{shaderName:s,errors:L(i,C),warnings:L(o,C)}}function L(e,t){for(var A="",n=0;n<t.length;n++){var r=t[n];if((e[n+3]||e[n+2]||e[n+1])&&(A+="".concat(r,"\n"),e[n+1])){var i=e[n+1],o=i.split(":",3),a=o[0],s=parseInt(o[1],10)||0,g=i.substring(o.join(":").length+1).trim();A+=T("^^^ ".concat(a,": ").concat(g,"\n\n"),s)}}return A}function T(e,t){for(var A="",n=0;n<t;++n)A+=" ";return"".concat(A).concat(e)}var Z=A(108),H=function(e){Object(c.a)(A,e);var t=Object(u.a)(A);function A(e,n){var r;Object(i.a)(this,A),Object(f.b)(e),Object(B.a)("string"===typeof n.source,"Shader: GLSL source code must be a JavaScript string");var o=M(n.source,null)||n.id||Object(Z.c)("unnamed ".concat(A.getTypeName(n.shaderType)));return(r=t.call(this,e,{id:o})).shaderType=n.shaderType,r.source=n.source,r.initialize(n),r}return Object(o.a)(A,null,[{key:"getTypeName",value:function(e){switch(e){case 35633:return"vertex-shader";case 35632:return"fragment-shader";default:return Object(B.a)(!1),"unknown"}}}]),Object(o.a)(A,[{key:"initialize",value:function(e){var t=e.source,A=M(t,null);A&&(this.id=Object(Z.c)(A)),this._compile(t)}},{key:"getParameter",value:function(e){return this.gl.getShaderParameter(this.handle,e)}},{key:"toString",value:function(){return"".concat(A.getTypeName(this.shaderType),":").concat(this.id)}},{key:"getName",value:function(){return M(this.source)||"unnamed-shader"}},{key:"getSource",value:function(){return this.gl.getShaderSource(this.handle)}},{key:"getTranslatedSource",value:function(){var e=this.gl.getExtension("WEBGL_debug_shaders");return e?e.getTranslatedShaderSource(this.handle):"No translated source available. WEBGL_debug_shaders not implemented"}},{key:"_compile",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.source;e.startsWith("#version ")||(e="#version 100\n".concat(e)),this.source=e,this.gl.shaderSource(this.handle,this.source),this.gl.compileShader(this.handle);var t=this.getParameter(35713);if(!t){var A=this.gl.getShaderInfoLog(this.handle),n=O(A,this.source,this.shaderType,this.id),r=n.shaderName,i=n.errors,o=n.warnings;throw f.k.error("GLSL compilation errors in ".concat(r,"\n").concat(i))(),f.k.warn("GLSL compilation warnings in ".concat(r,"\n").concat(o))(),new Error("GLSL compilation errors in ".concat(r))}}},{key:"_deleteHandle",value:function(){this.gl.deleteShader(this.handle)}},{key:"_getOptsFromHandle",value:function(){return{type:this.getParameter(35663),source:this.getSource()}}}]),A}(l.a),Y=function(e){Object(c.a)(A,e);var t=Object(u.a)(A);function A(e,n){return Object(i.a)(this,A),"string"===typeof n&&(n={source:n}),t.call(this,e,Object.assign({},n,{shaderType:35633}))}return Object(o.a)(A,[{key:"_createHandle",value:function(){return this.gl.createShader(35633)}}]),A}(H),J=function(e){Object(c.a)(A,e);var t=Object(u.a)(A);function A(e,n){return Object(i.a)(this,A),"string"===typeof n&&(n={source:n}),t.call(this,e,Object.assign({},n,{shaderType:35632}))}return Object(o.a)(A,[{key:"_createHandle",value:function(){return this.gl.createShader(35632)}}]),A}(H),j=A(139),P=A(175),V=function(){function e(t){Object(i.a)(this,e),this.id=t.id,this.attributeInfos=[],this.attributeInfosByName={},this.attributeInfosByLocation=[],this.varyingInfos=[],this.varyingInfosByName={},Object.seal(this),this._readAttributesFromProgram(t),this._readVaryingsFromProgram(t)}return Object(o.a)(e,[{key:"getAttributeInfo",value:function(e){var t=Number(e);return Number.isFinite(t)?this.attributeInfosByLocation[t]:this.attributeInfosByName[e]||null}},{key:"getAttributeLocation",value:function(e){var t=this.getAttributeInfo(e);return t?t.location:-1}},{key:"getAttributeAccessor",value:function(e){var t=this.getAttributeInfo(e);return t?t.accessor:null}},{key:"getVaryingInfo",value:function(e){var t=Number(e);return Number.isFinite(t)?this.varyingInfos[t]:this.varyingInfosByName[e]||null}},{key:"getVaryingIndex",value:function(e){var t=this.getVaryingInfo();return t?t.location:-1}},{key:"getVaryingAccessor",value:function(e){var t=this.getVaryingInfo();return t?t.accessor:null}},{key:"_readAttributesFromProgram",value:function(e){for(var t=e.gl,A=t.getProgramParameter(e.handle,35721),n=0;n<A;n++){var r=t.getActiveAttrib(e.handle,n),i=r.name,o=r.type,a=r.size,s=t.getAttribLocation(e.handle,i);s>=0&&this._addAttribute(s,i,o,a)}this.attributeInfos.sort((function(e,t){return e.location-t.location}))}},{key:"_readVaryingsFromProgram",value:function(e){var t=e.gl;if(Object(f.j)(t)){for(var A=t.getProgramParameter(e.handle,35971),n=0;n<A;n++){var r=t.getTransformFeedbackVarying(e.handle,n),i=r.name,o=r.type,a=r.size;this._addVarying(n,i,o,a)}this.varyingInfos.sort((function(e,t){return e.location-t.location}))}}},{key:"_addAttribute",value:function(e,t,A,n){var r=Object(P.a)(A),i={type:r.type,size:n*r.components};this._inferProperties(e,t,i);var o={location:e,name:t,accessor:new j.a(i)};this.attributeInfos.push(o),this.attributeInfosByLocation[e]=o,this.attributeInfosByName[o.name]=o}},{key:"_inferProperties",value:function(e,t,A){/instance/i.test(t)&&(A.divisor=1)}},{key:"_addVarying",value:function(e,t,A,n){var r=Object(P.a)(A),i=r.type,o=r.components,a={location:e,name:t,accessor:new j.a({type:i,size:n*o})};this.varyingInfos.push(a),this.varyingInfosByName[a.name]=a}}]),e}(),K=A(109);A.d(t,"a",(function(){return X}));var W=["setVertexArray","setAttributes","setBuffers","unsetBuffers","use","getUniformCount","getUniformInfo","getUniformLocation","getUniformValue","getVarying","getFragDataLocation","getAttachedShaders","getAttributeCount","getAttributeLocation","getAttributeInfo"],X=function(e){Object(c.a)(A,e);var t=Object(u.a)(A);function A(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(i.a)(this,A),(n=t.call(this,e,r)).stubRemovedMethods("Program","v6.0",W),n._isCached=!1,n.initialize(r),Object.seal(Object(a.a)(n)),n._setId(r.id),n}return Object(o.a)(A,[{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.hash,A=e.vs,n=e.fs,r=e.varyings,i=e.bufferMode,o=void 0===i?35981:i;return this.hash=t||"",this.vs="string"===typeof A?new Y(this.gl,{id:"".concat(e.id,"-vs"),source:A}):A,this.fs="string"===typeof n?new J(this.gl,{id:"".concat(e.id,"-fs"),source:n}):n,Object(B.a)(this.vs instanceof Y),Object(B.a)(this.fs instanceof J),this.uniforms={},this._textureUniforms={},r&&r.length>0&&(Object(f.a)(this.gl),this.varyings=r,this.gl2.transformFeedbackVaryings(this.handle,r,o)),this._compileAndLink(),this._readUniformLocationsFromLinkedProgram(),this.configuration=new V(this),this.setProps(e)}},{key:"delete",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._isCached?this:Object(g.a)(Object(s.a)(A.prototype),"delete",this).call(this,e)}},{key:"setProps",value:function(e){return"uniforms"in e&&this.setUniforms(e.uniforms),this}},{key:"draw",value:function(e){var t=this,A=e.logPriority,n=e.drawMode,r=void 0===n?4:n,i=e.vertexCount,o=e.offset,a=void 0===o?0:o,s=e.start,g=e.end,c=e.isIndexed,u=void 0!==c&&c,l=e.indexType,I=void 0===l?5123:l,C=e.instanceCount,h=void 0===C?0:C,d=e.isInstanced,p=void 0===d?h>0:d,E=e.vertexArray,Q=void 0===E?null:E,y=e.transformFeedback,v=e.framebuffer,m=e.parameters,b=void 0===m?{}:m,w=e.uniforms,S=e.samplers;if((w||S)&&(f.k.deprecated("Program.draw({uniforms})","Program.setUniforms(uniforms)")(),this.setUniforms(w||{})),f.k.priority>=A){var F=v?v.id:"default",R="mode=".concat(Object(K.a)(this.gl,r)," verts=").concat(i," ")+"instances=".concat(h," indexType=").concat(Object(K.a)(this.gl,I)," ")+"isInstanced=".concat(p," isIndexed=").concat(u," ")+"Framebuffer=".concat(F);f.k.log(A,R)()}return Object(B.a)(Q),this.gl.useProgram(this.handle),!(!this._areTexturesRenderable()||0===i||p&&0===h)&&(Q.bindForDraw(i,h,(function(){if(void 0!==v&&(b=Object.assign({},b,{framebuffer:v})),y){var e=Object(P.c)(r);y.begin(e)}t._bindTextures(),Object(f.o)(t.gl,b,(function(){u&&p?t.gl2.drawElementsInstanced(r,i,I,a,h):u&&Object(f.j)(t.gl)&&!isNaN(s)&&!isNaN(g)?t.gl2.drawRangeElements(r,s,g,i,I,a):u?t.gl.drawElements(r,i,I,a):p?t.gl2.drawArraysInstanced(r,a,i,h):t.gl.drawArrays(r,a,i)})),y&&y.end()})),!0)}},{key:"setUniforms",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in f.k.priority>=2&&D(e,this.id,this._uniformSetters),this.gl.useProgram(this.handle),e){var A=e[t],n=this._uniformSetters[t];if(n){var r=A,i=!1;if(r instanceof C.a&&(r=r.texture),r instanceof I.a)if(i=this.uniforms[t]!==A){void 0===n.textureIndex&&(n.textureIndex=this._textureIndexCounter++);var o=r,a=n.textureIndex;o.bind(a),r=a,this._textureUniforms[t]=o}else r=n.textureIndex;else this._textureUniforms[t]&&delete this._textureUniforms[t];(n(r)||i)&&k(this.uniforms,t,A)}}return this}},{key:"_areTexturesRenderable",value:function(){var e=!0;for(var t in this._textureUniforms){var A=this._textureUniforms[t];A.update(),e=e&&A.loaded}return e}},{key:"_bindTextures",value:function(){for(var e in this._textureUniforms){var t=this._uniformSetters[e].textureIndex;this._textureUniforms[e].bind(t)}}},{key:"_createHandle",value:function(){return this.gl.createProgram()}},{key:"_deleteHandle",value:function(){this.gl.deleteProgram(this.handle)}},{key:"_getOptionsFromHandle",value:function(e){var t,A=this.gl.getAttachedShaders(e),n={},i=Object(r.a)(A);try{for(i.s();!(t=i.n()).done;){var o=t.value;switch(this.gl.getShaderParameter(this.handle,35663)){case 35633:n.vs=new Y({handle:o});break;case 35632:n.fs=new J({handle:o})}}}catch(a){i.e(a)}finally{i.f()}return n}},{key:"_getParameter",value:function(e){return this.gl.getProgramParameter(this.handle,e)}},{key:"_setId",value:function(e){if(!e){var t=this._getName();this.id=Object(Z.c)(t)}}},{key:"_getName",value:function(){var e=this.vs.getName()||this.fs.getName();return e=(e=e.replace(/shader/i,""))?"".concat(e,"-program"):"program"}},{key:"_compileAndLink",value:function(){var e=this.gl;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),f.k.time(4,"linkProgram for ".concat(this._getName()))(),e.linkProgram(this.handle),f.k.timeEnd(4,"linkProgram for ".concat(this._getName()))(),e.debug||f.k.level>0){if(!e.getProgramParameter(this.handle,35714))throw new Error("Error linking: ".concat(e.getProgramInfoLog(this.handle)));if(e.validateProgram(this.handle),!e.getProgramParameter(this.handle,35715))throw new Error("Error validating: ".concat(e.getProgramInfoLog(this.handle)))}}},{key:"_readUniformLocationsFromLinkedProgram",value:function(){var e=this.gl;this._uniformSetters={},this._uniformCount=this._getParameter(35718);for(var t=0;t<this._uniformCount;t++){var A=this.gl.getActiveUniform(this.handle,t),n=R(A.name).name,r=e.getUniformLocation(this.handle,n);if(this._uniformSetters[n]=F(e,r,A),A.size>1)for(var i=0;i<A.size;i++)r=e.getUniformLocation(this.handle,"".concat(n,"[").concat(i,"]")),this._uniformSetters["".concat(n,"[").concat(i,"]")]=F(e,r,A)}this._textureIndexCounter=0}},{key:"getActiveUniforms",value:function(e,t){return this.gl2.getActiveUniforms(this.handle,e,t)}},{key:"getUniformBlockIndex",value:function(e){return this.gl2.getUniformBlockIndex(this.handle,e)}},{key:"getActiveUniformBlockParameter",value:function(e,t){return this.gl2.getActiveUniformBlockParameter(this.handle,e,t)}},{key:"uniformBlockBinding",value:function(e,t){this.gl2.uniformBlockBinding(this.handle,e,t)}}]),A}(l.a)},function(e,t,A){"use strict";var n=A(6),r=A(1),i=A(4),o=A(8),a=A(429),s="void main() {gl_FragColor = vec4(0);}",g="out vec4 transform_output;\nvoid main() {\n transform_output = vec4(0);\n}",c="#version 300 es\n".concat(g);function u(e,t){t=Array.isArray(t)?t:[t];var A=e.replace(/^\s+/,"").split(/\s+/),n=Object(o.a)(A,3),r=n[0],i=n[1],a=n[2];return t.includes(r)&&i&&a?{qualifier:r,type:i,name:a.split(";")[0]}:null}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.version,A=void 0===t?100:t,n=e.input,r=e.inputType,i=e.output;if(!n)return 300===A?c:A>300?"#version ".concat(A,"\n").concat(g):s;var o=C(n,r);return A>=300?"#version ".concat(A," ").concat(300===A?"es":"","\nin ").concat(r," ").concat(n,";\nout vec4 ").concat(i,";\nvoid main() {\n ").concat(i," = ").concat(o,";\n}"):"varying ".concat(r," ").concat(n,";\nvoid main() {\n gl_FragColor = ").concat(o,";\n}")}function I(e){switch(e){case"float":return 1;case"vec2":return 2;case"vec3":return 3;case"vec4":return 4;default:return Object(a.a)(!1),null}}function C(e,t){switch(t){case"float":return"vec4(".concat(e,", 0.0, 0.0, 1.0)");case"vec2":return"vec4(".concat(e,", 0.0, 1.0)");case"vec3":return"vec4(".concat(e,", 1.0)");case"vec4":return e;default:return Object(a.a)(!1),null}}var h=A(18),f=A(80),d=A(1246),B=A(26),p=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e),this.gl=t,this.currentIndex=0,this.feedbackMap={},this.varyings=null,this.bindings=[],this.resources={},this._initialize(A),Object.seal(this)}return Object(i.a)(e,[{key:"setupResources",value:function(e){var t,A=Object(n.a)(this.bindings);try{for(A.s();!(t=A.n()).done;){var r=t.value;this._setupTransformFeedback(r,e)}}catch(i){A.e(i)}finally{A.f()}}},{key:"updateModelProps",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.varyings;return t.length>0&&(e=Object.assign({},e,{varyings:t})),e}},{key:"getDrawOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.bindings[this.currentIndex],A=t.sourceBuffers,n=t.transformFeedback,r=Object.assign({},A,e.attributes);return{attributes:r,transformFeedback:n}}},{key:"swap",value:function(){return!!this.feedbackMap&&(this.currentIndex=this._getNextIndex(),!0)}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setupBuffers(e)}},{key:"getBuffer",value:function(e){var t=this.bindings[this.currentIndex].feedbackBuffers,A=e?t[e]:null;return A?A instanceof f.a?A:A.buffer:null}},{key:"getData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.varyingName,A=this.getBuffer(t);return A?A.getData():null}},{key:"delete",value:function(){for(var e in this.resources)this.resources[e].delete()}},{key:"_initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setupBuffers(e),this.varyings=e.varyings||Object.keys(this.bindings[this.currentIndex].feedbackBuffers),this.varyings.length>0&&Object(B.a)(Object(h.j)(this.gl))}},{key:"_getFeedbackBuffers",value:function(e){var t=e.sourceBuffers,A=void 0===t?{}:t,n={};if(this.bindings[this.currentIndex]&&Object.assign(n,this.bindings[this.currentIndex].feedbackBuffers),this.feedbackMap)for(var r in this.feedbackMap){var i=this.feedbackMap[r];r in A&&(n[i]=r)}for(var o in Object.assign(n,e.feedbackBuffers),n){var a=n[o];if("string"===typeof a){var s=A[a],g=s.byteLength,c=s.usage,u=s.accessor;n[o]=this._createNewBuffer(o,{byteLength:g,usage:c,accessor:u})}}return n}},{key:"_setupBuffers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.sourceBuffers,A=void 0===t?null:t;Object.assign(this.feedbackMap,e.feedbackMap);var n=this._getFeedbackBuffers(e);this._updateBindings({sourceBuffers:A,feedbackBuffers:n})}},{key:"_setupTransformFeedback",value:function(e,t){var A=t.model.program;e.transformFeedback=new d.a(this.gl,{program:A,buffers:e.feedbackBuffers})}},{key:"_updateBindings",value:function(e){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],e),this.feedbackMap){var t=this._swapBuffers(this.bindings[this.currentIndex]),A=t.sourceBuffers,n=t.feedbackBuffers,r=this._getNextIndex();this.bindings[r]=this._updateBinding(this.bindings[r],{sourceBuffers:A,feedbackBuffers:n})}}},{key:"_updateBinding",value:function(e,t){return e?(Object.assign(e.sourceBuffers,t.sourceBuffers),Object.assign(e.feedbackBuffers,t.feedbackBuffers),e.transformFeedback&&e.transformFeedback.setBuffers(e.feedbackBuffers),e):{sourceBuffers:Object.assign({},t.sourceBuffers),feedbackBuffers:Object.assign({},t.feedbackBuffers)}}},{key:"_swapBuffers",value:function(e){if(!this.feedbackMap)return null;var t=Object.assign({},e.sourceBuffers),A=Object.assign({},e.feedbackBuffers);for(var n in this.feedbackMap){var r=this.feedbackMap[n];t[n]=e.feedbackBuffers[r],A[r]=e.sourceBuffers[n],Object(B.a)(A[r]instanceof f.a)}return{sourceBuffers:t,feedbackBuffers:A}}},{key:"_createNewBuffer",value:function(e,t){var A=new f.a(this.gl,t);return this.resources[e]&&this.resources[e].delete(),this.resources[e]=A,A}},{key:"_getNextIndex",value:function(){return(this.currentIndex+1)%2}}]),e}(),E=A(2),Q=A(530),y=A(232),v=A(161),m=A(663);function b(e){var t=100,A=e.match(/[^\s]+/g);if(A.length>=2&&"#version"===A[0]){var n=parseInt(A[1],10);Number.isFinite(n)&&(t=n)}return t}var w,S=A(432),F={name:"transform",vs:"attribute float transform_elementID;\nvec2 transform_getPixelSizeHalf(vec2 size) {\n return vec2(1.) / (2. * size);\n}\n\nvec2 transform_getPixelIndices(vec2 texSize, vec2 pixelSizeHalf) {\n float yIndex = floor((transform_elementID / texSize[0]) + pixelSizeHalf[1]);\n float xIndex = transform_elementID - (yIndex * texSize[0]);\n return vec2(xIndex, yIndex);\n}\nvec2 transform_getTexCoord(vec2 size) {\n vec2 pixelSizeHalf = transform_getPixelSizeHalf(size);\n vec2 indices = transform_getPixelIndices(size, pixelSizeHalf);\n vec2 coord = indices / size + pixelSizeHalf;\n return coord;\n}\nvec2 transform_getPos(vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n vec2 pos = (texCoord * (2.0, 2.0)) - (1., 1.);\n return pos;\n}\nvec4 transform_getInput(sampler2D texSampler, vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n vec4 textureColor = texture2D(texSampler, texCoord);\n return textureColor;\n}\n",fs:null};function R(e){var t=e.vs,A=e.sourceTextureMap,n=e.targetTextureVarying,r=e.targetTexture,i=Object.keys(A).length,o=null,s={},g=t,c={};if(i>0||n){var l=g.split("\n"),I=l.slice();if(l.forEach((function(e,t,r){if(i>0){var g=function(e,t){var A={},n=function(e){return u(e,["attribute","in"])}(e);if(!n)return null;var r=n.type,i=n.name;if(i&&t[i]){var o="// ".concat(e," => Replaced by Transform with a sampler"),s=function(e){var t="".concat("transform_uSampler_").concat(e),A="".concat("transform_uSize_").concat(e),n=" uniform sampler2D ".concat(t,";\n uniform vec2 ").concat(A,";");return{samplerName:t,sizeName:A,uniformDeclerations:n}}(i),g=s.samplerName,c=s.sizeName,l=s.uniformDeclerations,I=function(e){switch(e){case"float":return"x";case"vec2":return"xy";case"vec3":return"xyz";case"vec4":return"xyzw";default:return Object(a.a)(!1),null}}(r),C=" ".concat(r," ").concat(i," = transform_getInput(").concat(g,", ").concat(c,").").concat(I,";\n");return A[g]=i,{updatedLine:o,inject:{"vs:#decl":l,"vs:#main-start":C},samplerTextureMap:A}}return null}(e,A);if(g){var l=g.updatedLine,C=g.inject;I[t]=l,c=Object(S.b)([c,C]),Object.assign(s,g.samplerTextureMap),i--}}n&&!o&&(o=function(e,t){var A=u(e,["varying","out"]);if(!A)return null;return A.name===t?A.type:null}(e,n))})),n){Object(B.a)(r);var C="".concat("transform_uSize_").concat(n),h={"vs:#decl":"uniform vec2 ".concat(C,";\n"),"vs:#main-start":" vec2 ".concat("transform_position"," = transform_getPos(").concat(C,");\n gl_Position = vec4(").concat("transform_position",", 0, 1.);\n")};c=Object(S.b)([c,h])}g=I.join("\n")}return{vs:g,targetTextureType:o,inject:c,samplerTextureMap:s}}function D(e){var t,A,n=e.sourceTextureMap,r=e.targetTextureVarying,i=e.targetTexture,o={};for(var a in r&&(t=i.width,A=i.height,o["".concat("transform_uSize_").concat(r)]=[t,A]),n){var s=n[a];t=s.width,A=s.height,o["".concat("transform_uSize_").concat(a)]=[t,A]}return o}var G=(w={},Object(E.a)(w,10241,9728),Object(E.a)(w,10240,9728),Object(E.a)(w,10242,33071),Object(E.a)(w,10243,33071),w),k=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e),this.gl=t,this.id=this.currentIndex=0,this._swapTexture=null,this.targetTextureVarying=null,this.targetTextureType=null,this.samplerTextureMap=null,this.bindings=[],this.resources={},this._initialize(A),Object.seal(this)}return Object(i.a)(e,[{key:"updateModelProps",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this._processVertexShader(e);return Object.assign({},e,t)}},{key:"getDrawOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.bindings[this.currentIndex],A=t.sourceBuffers,n=t.sourceTextures,r=t.framebuffer,i=t.targetTexture,o=Object.assign({},A,e.attributes),a=Object.assign({},e.uniforms),s=Object.assign({},e.parameters),g=e.discard;if(this.hasSourceTextures||this.hasTargetTexture){for(var c in o.transform_elementID=this.elementIDBuffer,this.samplerTextureMap){var u=this.samplerTextureMap[c];a[c]=n[u]}this._setSourceTextureParameters();var l=D({sourceTextureMap:n,targetTextureVarying:this.targetTextureVarying,targetTexture:i});Object.assign(a,l)}return this.hasTargetTexture&&(g=!1,s.viewport=[0,0,r.width,r.height]),{attributes:o,framebuffer:r,uniforms:a,discard:g,parameters:s}}},{key:"swap",value:function(){return!!this._swapTexture&&(this.currentIndex=this._getNextIndex(),!0)}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setupTextures(e)}},{key:"getTargetTexture",value:function(){return this.bindings[this.currentIndex].targetTexture}},{key:"getData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.packed,A=void 0!==t&&t,n=this.bindings[this.currentIndex].framebuffer,r=Object(Q.c)(n);if(!A)return r;for(var i=r.constructor,o=I(this.targetTextureType),a=new i(r.length*o/4),s=0,g=0;g<r.length;g+=4)for(var c=0;c<o;c++)a[s++]=r[g+c];return a}},{key:"getFramebuffer",value:function(){return this.bindings[this.currentIndex].framebuffer}},{key:"delete",value:function(){this.ownTexture&&this.ownTexture.delete(),this.elementIDBuffer&&this.elementIDBuffer.delete()}},{key:"_initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e._targetTextureVarying,A=e._swapTexture;this._swapTexture=A,this.targetTextureVarying=t,this.hasTargetTexture=t,this._setupTextures(e)}},{key:"_createTargetTexture",value:function(e){var t=e.sourceTextures,A=e.textureOrReference;if(A instanceof y.a)return A;var n=t[A];return n?(this._targetRefTexName=A,this._createNewTexture(n)):null}},{key:"_setupTextures",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.sourceBuffers,A=e._sourceTextures,n=void 0===A?{}:A,r=e._targetTexture,i=this._createTargetTexture({sourceTextures:n,textureOrReference:r});this.hasSourceTextures=this.hasSourceTextures||n&&Object.keys(n).length>0,this._updateBindings({sourceBuffers:t,sourceTextures:n,targetTexture:i}),"elementCount"in e&&this._updateElementIDBuffer(e.elementCount)}},{key:"_updateElementIDBuffer",value:function(e){if(!("number"!==typeof e||this.elementCount>=e)){var t=new Float32Array(e);t.forEach((function(e,t,A){A[t]=t})),this.elementIDBuffer?this.elementIDBuffer.setData({data:t}):this.elementIDBuffer=new f.a(this.gl,{data:t,accessor:{size:1}}),this.elementCount=e}}},{key:"_updateBindings",value:function(e){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],e),this._swapTexture){var t=this._swapTextures(this.bindings[this.currentIndex]),A=t.sourceTextures,n=t.targetTexture,r=this._getNextIndex();this.bindings[r]=this._updateBinding(this.bindings[r],{sourceTextures:A,targetTexture:n})}}},{key:"_updateBinding",value:function(e,t){var A=t.sourceBuffers,n=t.sourceTextures,r=t.targetTexture;if(e||(e={sourceBuffers:{},sourceTextures:{},targetTexture:null}),Object.assign(e.sourceTextures,n),Object.assign(e.sourceBuffers,A),r){e.targetTexture=r;var i=r.width,o=r.height,a=e.framebuffer;a?(a.update({attachments:Object(E.a)({},36064,r),resizeAttachments:!1}),a.resize({width:i,height:o})):e.framebuffer=new v.a(this.gl,{id:"transform-framebuffer",width:i,height:o,attachments:Object(E.a)({},36064,r)})}return e}},{key:"_setSourceTextureParameters",value:function(){var e=this.currentIndex,t=this.bindings[e].sourceTextures;for(var A in t)t[A].setParameters(G)}},{key:"_swapTextures",value:function(e){if(!this._swapTexture)return null;var t=Object.assign({},e.sourceTextures);return t[this._swapTexture]=e.targetTexture,{sourceTextures:t,targetTexture:e.sourceTextures[this._swapTexture]}}},{key:"_createNewTexture",value:function(e){var t,A=Object(m.a)(e,{parameters:(t={},Object(E.a)(t,10241,9728),Object(E.a)(t,10240,9728),Object(E.a)(t,10242,33071),Object(E.a)(t,10243,33071),t),pixelStore:Object(E.a)({},37440,!1)});return this.ownTexture&&this.ownTexture.delete(),this.ownTexture=A,A}},{key:"_getNextIndex",value:function(){return(this.currentIndex+1)%2}},{key:"_processVertexShader",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.bindings[this.currentIndex],A=t.sourceTextures,n=t.targetTexture,r=R({vs:e.vs,sourceTextureMap:A,targetTextureVarying:this.targetTextureVarying,targetTexture:n}),i=r.vs,o=r.uniforms,a=r.targetTextureType,s=r.inject,g=r.samplerTextureMap,c=Object(S.b)([e.inject||{},s]);this.targetTextureType=a,this.samplerTextureMap=g;var u=e._fs||l({version:b(i),input:this.targetTextureVarying,inputType:a,output:"transform_output"}),I=this.hasSourceTextures||this.targetTextureVarying?[F].concat(e.modules||[]):e.modules;return{vs:i,fs:u,modules:I,uniforms:o,inject:c}}}]),e}(),x=A(108),N=A(422);A.d(t,"a",(function(){return U}));var U=function(){function e(t){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e),this.gl=t,this.model=null,this.elementCount=0,this.bufferTransform=null,this.textureTransform=null,this.elementIDBuffer=null,this._initialize(A),Object.seal(this)}return Object(i.a)(e,null,[{key:"isSupported",value:function(e){return Object(h.j)(e)}}]),Object(i.a)(e,[{key:"delete",value:function(){var e=this.model,t=this.bufferTransform,A=this.textureTransform;e&&e.delete(),t&&t.delete(),A&&A.delete()}},{key:"run",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.clearRenderTarget,A=void 0===t||t,n=this._updateDrawOptions(e);A&&n.framebuffer&&n.framebuffer.clear({color:!0}),this.model.transform(n)}},{key:"swap",value:function(){var e,t=!1,A=[this.bufferTransform,this.textureTransform].filter(Boolean),r=Object(n.a)(A);try{for(r.s();!(e=r.n()).done;){var i=e.value;t=t||i.swap()}}catch(o){r.e(o)}finally{r.f()}Object(B.a)(t,"Nothing to swap")}},{key:"getBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.bufferTransform&&this.bufferTransform.getBuffer(e)}},{key:"getData",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},A=[this.bufferTransform,this.textureTransform].filter(Boolean),r=Object(n.a)(A);try{for(r.s();!(e=r.n()).done;){var i=e.value,o=i.getData(t);if(o)return o}}catch(a){r.e(a)}finally{r.f()}return null}},{key:"getFramebuffer",value:function(){return this.textureTransform&&this.textureTransform.getFramebuffer()}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};"elementCount"in e&&this.model.setVertexCount(e.elementCount);var t,A=[this.bufferTransform,this.textureTransform].filter(Boolean),r=Object(n.a)(A);try{for(r.s();!(t=r.n()).done;){var i=t.value;i.update(e)}}catch(o){r.e(o)}finally{r.f()}}},{key:"_initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.gl;this._buildResourceTransforms(t,e),e=this._updateModelProps(e),this.model=new N.a(t,Object.assign({},e,{fs:e.fs||l({version:b(e.vs)}),id:e.id||"transform-model",drawMode:e.drawMode||0,vertexCount:e.elementCount})),this.bufferTransform&&this.bufferTransform.setupResources({model:this.model})}},{key:"_updateModelProps",value:function(e){var t,A=Object.assign({},e),r=[this.bufferTransform,this.textureTransform].filter(Boolean),i=Object(n.a)(r);try{for(i.s();!(t=i.n()).done;){A=t.value.updateModelProps(A)}}catch(o){i.e(o)}finally{i.f()}return A}},{key:"_buildResourceTransforms",value:function(e,t){(function(e){if(!Object(x.a)(e.feedbackBuffers)||!Object(x.a)(e.feedbackMap)||e.varyings&&e.varyings.length>0)return!0;return!1})(t)&&(this.bufferTransform=new p(e,t)),function(e){if(!Object(x.a)(e._sourceTextures)||e._targetTexture||e._targetTextureVarying)return!0;return!1}(t)&&(this.textureTransform=new k(e,t)),Object(B.a)(this.bufferTransform||this.textureTransform,"must provide source/feedback buffers or source/target textures")}},{key:"_updateDrawOptions",value:function(e){var t,A=Object.assign({},e),r=[this.bufferTransform,this.textureTransform].filter(Boolean),i=Object(n.a)(r);try{for(i.s();!(t=i.n()).done;){var o=t.value;A=Object.assign(A,o.getDrawOptions(A))}}catch(a){i.e(a)}finally{i.f()}return A}}]),e}()},function(e,t,A){"use strict";var n=A(8),r=A(7),i=A(0),o=A.n(i),a=A(13),s=A.n(a),g=A(644),c="undefined"!==typeof window?i.useLayoutEffect:i.useEffect,u=A(11);function l(e,t){for(;e;){if(e===t)return!0;e=Object.getPrototypeOf(e)}return!1}var I=A(134),C=A(384);function h(e){return e?"function"===typeof e?Object(i.createElement)(I.a,{},e):Array.isArray(e)?e.map(h):e.type===o.a.Fragment?h(e.props.children):(l(e.type,I.a),e):e}var f=A(6),d={position:"absolute",zIndex:-1};function B(e,t){return e?"function"===typeof e?e(t):Array.isArray(e)?e.map((function(e){return B(e,t)})):function(e){var t=e&&e.type,A=t&&t.defaultProps;return A&&A.mapStyle}(e)?(t.style=d,Object(i.cloneElement)(e,t)):function(e){var t=e&&e.type;return t&&t.deckGLViewProps}(e)?Object(i.cloneElement)(e,t):e:e}var p={mixBlendMode:null};function E(e){e.redrawReason&&(e.deck._drawLayers(e.redrawReason),e.redrawReason=null)}var Q=Object(i.forwardRef)((function(e,t){var A=Object(i.useRef)({}).current,a=Object(i.useState)(0),s=Object(n.a)(a,2),d=s[0],Q=s[1];A.forceUpdate=Q;var y=Object(i.useRef)(null),v=Object(i.useRef)(null),m=Object(i.useMemo)((function(){return function(e){var t=e.children,A=e.layers,n=e.views,r=[],i=[],a={};return o.a.Children.forEach(h(t),(function(e){if(e){var t=e.type;if(l(t,C.a)){var A=function(e,t){var A={},n=e.defaultProps||{};for(var r in t)n[r]!==t[r]&&(A[r]=t[r]);return new e(A)}(t,e.props);i.push(A)}else r.push(e);if(t!==I.a&&l(t,I.a)&&e.props.id){var n=new t(e.props);a[n.id]=n}}})),Object.keys(a).length>0&&(Array.isArray(n)?n.forEach((function(e){a[e.id]=e})):n&&(a[n.id]=n),n=Object.values(a)),{layers:A=i.length>0?[].concat(i,Object(u.a)(A)):A,children:r,views:n}}(e)}),[e.layers,e.views,e.children]),b=!0,w=function(t){return b&&e.viewState?(A.viewStateUpdateRequested=t,null):(A.viewStateUpdateRequested=null,e.onViewStateChange(t))},S=function(t){b?A.interactionStateUpdateRequested=t:(A.interactionStateUpdateRequested=null,e.onInteractionStateChange(t))},F=Object(i.useMemo)((function(){var t=Object(r.a)({},e,{style:null,width:"100%",height:"100%",layers:m.layers,views:m.views,onViewStateChange:w,onInteractionStateChange:S});return A.deck&&A.deck.setProps(t),t}),[e]);Object(i.useEffect)((function(){return A.deck=function(e,t){var A=new(t.Deck||g.a)(Object(r.a)({},t,{style:null,width:"100%",height:"100%",_customRender:function(t){e.redrawReason=t;var n=A.viewManager.getViewports();e.lastRenderedViewports!==n?e.forceUpdate((function(e){return e+1})):E(e)}}));return A}(A,Object(r.a)({},F,{parent:y.current,canvas:v.current})),function(){return A.deck.finalize()}}),[]),c((function(){E(A);var e=A.viewStateUpdateRequested,t=A.interactionStateUpdateRequested;e&&w(e),t&&S(t)})),Object(i.useImperativeHandle)(t,(function(){return function(e){var t={pickObject:function(t){return e.deck.pickObject(t)},pickMultipleObjects:function(t){return e.deck.pickMultipleObjects(t)},pickObjects:function(t){return e.deck.pickObjects(t)}};return Object.defineProperty(t,"deck",{get:function(){return e.deck}}),t}(A)}),[]);var R=(A.deck||{}).viewManager,D=R&&R.getViewports(),G=e.ContextProvider,k=e.width,x=e.height,N=e.id,U=e.style,_=Object(i.useMemo)((function(){return function(e){var t=e.width,A=e.height,n=e.style,r={position:"absolute",zIndex:0,left:0,top:0,width:t,height:A},i={left:0,top:0};if(n)for(var o in n)o in p?i[o]=n[o]:r[o]=n[o];return{containerStyle:r,canvasStyle:i}}({width:k,height:x,style:U})}),[k,x,U]),M=_.containerStyle,O=_.canvasStyle;if(!A.viewStateUpdateRequested&&A.lastRenderedViewports===D||A.version!==d){A.lastRenderedViewports=D,A.version=d;var L=function(e){var t=e.children,A=e.deck,n=e.ContextProvider,r=(A||{}).viewManager;if(!r||!r.views.length)return[];var o,a={},s=r.views[0].id,g=Object(f.a)(t);try{for(g.s();!(o=g.n()).done;){var c=o.value,C=s,h=c;l(c.type,I.a)&&(C=c.props.id||s,h=c.props.children);var d=r.getViewport(C),p=r.getViewState(C);if(d)h=B(h,{x:d.x,y:d.y,width:d.width,height:d.height,viewport:d,viewState:p}),a[C]||(a[C]={viewport:d,children:[]}),a[C].children.push(h)}}catch(E){g.e(E)}finally{g.f()}return Object.keys(a).map((function(e){var t=a[e],r=t.viewport,o=t.children,s={position:"absolute",left:r.x,top:r.y,width:r.width,height:r.height},g="view-".concat(e),c=i.createElement.apply(void 0,["div",{key:g,id:g,style:s}].concat(Object(u.a)(o)));if(n){var l={viewport:r,container:A.canvas.offsetParent,eventManager:A.eventManager,onViewStateChange:function(t){t.viewId=e,A._onViewStateChange(t)}};return Object(i.createElement)(n,{key:g,value:l},c)}return c}))}({children:m.children,deck:A.deck,ContextProvider:G}),T=Object(i.createElement)("canvas",{key:"canvas",id:N||"deckgl-overlay",ref:v,style:O});A.control=Object(i.createElement)("div",{id:"".concat(N||"deckgl","-wrapper"),ref:y,style:M},[T,L])}return b=!1,A.control}));Q.propTypes=g.a.getPropTypes(s.a),Q.defaultProps=g.a.defaultProps;t.a=Q},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(101),s=A(160),g=A(167),c=A(28),u=A(1159),l=i.forwardRef((function(e,t){var A=e.autoFocus,c=e.checked,l=e.checkedIcon,I=e.classes,C=e.className,h=e.defaultChecked,f=e.disabled,d=e.icon,B=e.id,p=e.inputProps,E=e.inputRef,Q=e.name,y=e.onBlur,v=e.onChange,m=e.onFocus,b=e.readOnly,w=e.required,S=e.tabIndex,F=e.type,R=e.value,D=Object(r.a)(e,["autoFocus","checked","checkedIcon","classes","className","defaultChecked","disabled","icon","id","inputProps","inputRef","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"]),G=Object(s.a)({controlled:c,default:Boolean(h),name:"SwitchBase",state:"checked"}),k=Object(a.a)(G,2),x=k[0],N=k[1],U=Object(g.a)(),_=f;U&&"undefined"===typeof _&&(_=U.disabled);var M="checkbox"===F||"radio"===F;return i.createElement(u.a,Object(n.a)({component:"span",className:Object(o.a)(I.root,C,x&&I.checked,_&&I.disabled),disabled:_,tabIndex:null,role:void 0,onFocus:function(e){m&&m(e),U&&U.onFocus&&U.onFocus(e)},onBlur:function(e){y&&y(e),U&&U.onBlur&&U.onBlur(e)},ref:t},D),i.createElement("input",Object(n.a)({autoFocus:A,checked:c,defaultChecked:h,className:I.input,disabled:_,id:M&&B,name:Q,onChange:function(e){var t=e.target.checked;N(t),v&&v(e,t)},readOnly:b,ref:E,required:w,tabIndex:S,type:F,value:R},p)),x?l:d)})),I=Object(c.a)({root:{padding:9},checked:{},disabled:{},input:{cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}},{name:"PrivateSwitchBase"})(l),C=A(113),h=Object(C.a)(i.createElement("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"}),"CheckBoxOutlineBlank"),f=Object(C.a)(i.createElement("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),d=A(60),B=Object(C.a)(i.createElement("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"}),"IndeterminateCheckBox"),p=A(40),E=i.createElement(f,null),Q=i.createElement(h,null),y=i.createElement(B,null),v=i.forwardRef((function(e,t){var A=e.checkedIcon,a=void 0===A?E:A,s=e.classes,g=e.color,c=void 0===g?"secondary":g,u=e.icon,l=void 0===u?Q:u,C=e.indeterminate,h=void 0!==C&&C,f=e.indeterminateIcon,d=void 0===f?y:f,B=e.inputProps,v=e.size,m=void 0===v?"medium":v,b=Object(r.a)(e,["checkedIcon","classes","color","icon","indeterminate","indeterminateIcon","inputProps","size"]),w=h?d:l,S=h?d:a;return i.createElement(I,Object(n.a)({type:"checkbox",classes:{root:Object(o.a)(s.root,s["color".concat(Object(p.a)(c))],h&&s.indeterminate),checked:s.checked,disabled:s.disabled},color:c,inputProps:Object(n.a)({"data-indeterminate":h},B),icon:i.cloneElement(w,{fontSize:void 0===w.props.fontSize&&"small"===m?m:w.props.fontSize}),checkedIcon:i.cloneElement(S,{fontSize:void 0===S.props.fontSize&&"small"===m?m:S.props.fontSize}),ref:t},b))}));t.a=Object(c.a)((function(e){return{root:{color:e.palette.text.secondary},checked:{},disabled:{},indeterminate:{},colorPrimary:{"&$checked":{color:e.palette.primary.main,"&:hover":{backgroundColor:Object(d.a)(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&$disabled":{color:e.palette.action.disabled}},colorSecondary:{"&$checked":{color:e.palette.secondary.main,"&:hover":{backgroundColor:Object(d.a)(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&$disabled":{color:e.palette.action.disabled}}}}),{name:"MuiCheckbox"})(v)},function(e,t,A){"use strict";var n=A(14),r=A(399),i=A(397),o=A(400);var a=A(101),s=A(21),g=A(0),c=(A(195),A(13),A(19)),u=A(1166),l=A(28),I=A(226),C=A(151),h=A(114),f=A(51),d=g.forwardRef((function(e,t){var A=e.children,r=e.classes,i=e.className,o=e.collapsedHeight,l=e.collapsedSize,d=void 0===l?"0px":l,B=e.component,p=void 0===B?"div":B,E=e.disableStrictModeCompat,Q=void 0!==E&&E,y=e.in,v=e.onEnter,m=e.onEntered,b=e.onEntering,w=e.onExit,S=e.onExited,F=e.onExiting,R=e.style,D=e.timeout,G=void 0===D?I.b.standard:D,k=e.TransitionComponent,x=void 0===k?u.a:k,N=Object(s.a)(e,["children","classes","className","collapsedHeight","collapsedSize","component","disableStrictModeCompat","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"]),U=Object(h.a)(),_=g.useRef(),M=g.useRef(null),O=g.useRef(),L="number"===typeof(o||d)?"".concat(o||d,"px"):o||d;g.useEffect((function(){return function(){clearTimeout(_.current)}}),[]);var T=U.unstable_strictMode&&!Q,Z=g.useRef(null),H=Object(f.a)(t,T?Z:void 0),Y=function(e){return function(t,A){if(e){var n=T?[Z.current,t]:[t,A],r=Object(a.a)(n,2),i=r[0],o=r[1];void 0===o?e(i):e(i,o)}}},J=Y((function(e,t){e.style.height=L,v&&v(e,t)})),j=Y((function(e,t){var A=M.current?M.current.clientHeight:0,n=Object(C.a)({style:R,timeout:G},{mode:"enter"}).duration;if("auto"===G){var r=U.transitions.getAutoHeightDuration(A);e.style.transitionDuration="".concat(r,"ms"),O.current=r}else e.style.transitionDuration="string"===typeof n?n:"".concat(n,"ms");e.style.height="".concat(A,"px"),b&&b(e,t)})),P=Y((function(e,t){e.style.height="auto",m&&m(e,t)})),V=Y((function(e){var t=M.current?M.current.clientHeight:0;e.style.height="".concat(t,"px"),w&&w(e)})),K=Y(S),W=Y((function(e){var t=M.current?M.current.clientHeight:0,A=Object(C.a)({style:R,timeout:G},{mode:"exit"}).duration;if("auto"===G){var n=U.transitions.getAutoHeightDuration(t);e.style.transitionDuration="".concat(n,"ms"),O.current=n}else e.style.transitionDuration="string"===typeof A?A:"".concat(A,"ms");e.style.height=L,F&&F(e)}));return g.createElement(x,Object(n.a)({in:y,onEnter:J,onEntered:P,onEntering:j,onExit:V,onExited:K,onExiting:W,addEndListener:function(e,t){var A=T?e:t;"auto"===G&&(_.current=setTimeout(A,O.current||0))},nodeRef:T?Z:void 0,timeout:"auto"===G?null:G},N),(function(e,t){return g.createElement(p,Object(n.a)({className:Object(c.a)(r.root,r.container,i,{entered:r.entered,exited:!y&&"0px"===L&&r.hidden}[e]),style:Object(n.a)({minHeight:L},R),ref:H},t),g.createElement("div",{className:r.wrapper,ref:M},g.createElement("div",{className:r.wrapperInner},A)))}))}));d.muiSupportAuto=!0;var B=Object(l.a)((function(e){return{root:{height:0,overflow:"hidden",transition:e.transitions.create("height")},entered:{height:"auto",overflow:"visible"},hidden:{visibility:"hidden"},wrapper:{display:"flex"},wrapperInner:{width:"100%"}}}),{name:"MuiCollapse"})(d),p=A(1254),E=A(418),Q=A(160),y=g.forwardRef((function(e,t){var A,u=e.children,l=e.classes,I=e.className,C=e.defaultExpanded,h=void 0!==C&&C,f=e.disabled,d=void 0!==f&&f,y=e.expanded,v=e.onChange,m=e.square,b=void 0!==m&&m,w=e.TransitionComponent,S=void 0===w?B:w,F=e.TransitionProps,R=Object(s.a)(e,["children","classes","className","defaultExpanded","disabled","expanded","onChange","square","TransitionComponent","TransitionProps"]),D=Object(Q.a)({controlled:y,default:h,name:"Accordion",state:"expanded"}),G=Object(a.a)(D,2),k=G[0],x=G[1],N=g.useCallback((function(e){x(!k),v&&v(e,!k)}),[k,v,x]),U=g.Children.toArray(u),_=(A=U,Object(r.a)(A)||Object(i.a)(A)||Object(o.a)()),M=_[0],O=_.slice(1),L=g.useMemo((function(){return{expanded:k,disabled:d,toggle:N}}),[k,d,N]);return g.createElement(p.a,Object(n.a)({className:Object(c.a)(l.root,I,k&&l.expanded,d&&l.disabled,!b&&l.rounded),ref:t,square:b},R),g.createElement(E.a.Provider,{value:L},M),g.createElement(S,Object(n.a)({in:k,timeout:"auto"},F),g.createElement("div",{"aria-labelledby":M.props.id,id:M.props["aria-controls"],role:"region"},O)))}));t.a=Object(l.a)((function(e){var t={duration:e.transitions.duration.shortest};return{root:{position:"relative",transition:e.transitions.create(["margin"],t),"&:before":{position:"absolute",left:0,top:-1,right:0,height:1,content:'""',opacity:1,backgroundColor:e.palette.divider,transition:e.transitions.create(["opacity","background-color"],t)},"&:first-child":{"&:before":{display:"none"}},"&$expanded":{margin:"16px 0","&:first-child":{marginTop:0},"&:last-child":{marginBottom:0},"&:before":{opacity:0}},"&$expanded + &":{"&:before":{display:"none"}},"&$disabled":{backgroundColor:e.palette.action.disabledBackground}},rounded:{borderRadius:0,"&:first-child":{borderTopLeftRadius:e.shape.borderRadius,borderTopRightRadius:e.shape.borderRadius},"&:last-child":{borderBottomLeftRadius:e.shape.borderRadius,borderBottomRightRadius:e.shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}},expanded:{},disabled:{}}}),{name:"MuiAccordion"})(y)},function(e,t,A){"use strict";var n=A(3),r=A.n(n),i=A(12),o=A(1),a=A(4),s=A(18),g=A(330),c=A(26),u=A(6),l=A(24),I=A(9),C=A(10),h=A(92),f=A(718),d=A(427),B=function(e){Object(I.a)(A,e);var t=Object(C.a)(A);function A(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(o.a)(this,A),(n=t.call(this,e,r)).target=null,n._queryPending=!1,n._pollingPromise=null,Object.seal(Object(l.a)(n)),n}return Object(a.a)(A,null,[{key:"isSupported",value:function(e){var t,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Object(s.j)(e),r=Object(f.c)(e,d.a.TIMER_QUERY),i=n||r,o=Object(u.a)(A);try{for(o.s();!(t=o.n()).done;){var a=t.value;switch(a){case"queries":i=i&&n;break;case"timers":i=i&&r;break;default:Object(c.a)(!1)}}}catch(g){o.e(g)}finally{o.f()}return i}}]),Object(a.a)(A,[{key:"beginTimeElapsedQuery",value:function(){return this.begin(35007)}},{key:"beginOcclusionQuery",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.conservative,A=void 0!==t&&t;return this.begin(A?36202:35887)}},{key:"beginTransformFeedbackQuery",value:function(){return this.begin(35976)}},{key:"begin",value:function(e){return this._queryPending||(this.target=e,this.gl2.beginQuery(this.target,this.handle)),this}},{key:"end",value:function(){return this._queryPending||this.target&&(this.gl2.endQuery(this.target),this.target=null,this._queryPending=!0),this}},{key:"isResultAvailable",value:function(){if(!this._queryPending)return!1;var e=this.gl2.getQueryParameter(this.handle,34919);return e&&(this._queryPending=!1),e}},{key:"isTimerDisjoint",value:function(){return this.gl2.getParameter(36795)}},{key:"getResult",value:function(){return this.gl2.getQueryParameter(this.handle,34918)}},{key:"getTimerMilliseconds",value:function(){return this.getResult()/1e6}},{key:"createPoll",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;if(this._pollingPromise)return this._pollingPromise;var A=0;return this._pollingPromise=new Promise((function(n,r){requestAnimationFrame((function i(){e.isResultAvailable()?(n(e.getResult()),e._pollingPromise=null):A++>t?(r("Timed out"),e._pollingPromise=null):requestAnimationFrame(i)}))})),this._pollingPromise}},{key:"_createHandle",value:function(){return A.isSupported(this.gl)?this.gl2.createQuery():null}},{key:"_deleteHandle",value:function(){this.gl2.deleteQuery(this.handle)}}]),A}(h.a);var p=A(161),E=A(62);A.d(t,"a",(function(){return v}));var Q=Object(E.isBrowser)()&&"undefined"!==typeof document,y=0,v=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(o.a)(this,e);var A=t.onCreateContext,n=void 0===A?function(e){return Object(s.c)(e)}:A,r=t.onAddHTML,i=void 0===r?null:r,a=t.onInitialize,c=void 0===a?function(){}:a,u=t.onRender,l=void 0===u?function(){}:u,I=t.onFinalize,C=void 0===I?function(){}:I,h=t.onError,f=t.gl,d=void 0===f?null:f,B=t.glOptions,p=void 0===B?{}:B,E=t.debug,Q=void 0!==E&&E,v=t.createFramebuffer,m=void 0!==v&&v,b=t.autoResizeViewport,w=void 0===b||b,S=t.autoResizeDrawingBuffer,F=void 0===S||S,R=t.stats,D=void 0===R?g.a.get("animation-loop-".concat(y++)):R,G=t.useDevicePixels,k=void 0===G||G;"useDevicePixelRatio"in t&&(s.k.deprecated("useDevicePixelRatio","useDevicePixels")(),k=t.useDevicePixelRatio),this.props={onCreateContext:n,onAddHTML:i,onInitialize:c,onRender:l,onFinalize:C,onError:h,gl:d,glOptions:p,debug:Q,createFramebuffer:m},this.gl=d,this.needsRedraw=null,this.timeline=null,this.stats=D,this.cpuTime=this.stats.get("CPU Time"),this.gpuTime=this.stats.get("GPU Time"),this.frameRate=this.stats.get("Frame Rate"),this._initialized=!1,this._running=!1,this._animationFrameId=null,this._nextFramePromise=null,this._resolveNextFrame=null,this._cpuStartTime=0,this.setProps({autoResizeViewport:w,autoResizeDrawingBuffer:F,useDevicePixels:k}),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this._pageLoadPromise=null,this._onMousemove=this._onMousemove.bind(this),this._onMouseleave=this._onMouseleave.bind(this)}return Object(a.a)(e,[{key:"delete",value:function(){this.stop(),this._setDisplay(null)}},{key:"setNeedsRedraw",value:function(e){return Object(c.a)("string"===typeof e),this.needsRedraw=this.needsRedraw||e,this}},{key:"setProps",value:function(e){return"autoResizeViewport"in e&&(this.autoResizeViewport=e.autoResizeViewport),"autoResizeDrawingBuffer"in e&&(this.autoResizeDrawingBuffer=e.autoResizeDrawingBuffer),"useDevicePixels"in e&&(this.useDevicePixels=e.useDevicePixels),this}},{key:"start",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._running)return this;this._running=!0;var A=this._getPageLoadPromise().then((function(){return!e._running||e._initialized?null:(e._createWebGLContext(t),e._createFramebuffer(),e._startEventHandling(),e._initializeCallbackData(),e._updateCallbackData(),e._resizeCanvasDrawingBuffer(),e._resizeViewport(),e._gpuTimeQuery=B.isSupported(e.gl,["timers"])?new B(e.gl):null,e._initialized=!0,e.onInitialize(e.animationProps))})).then((function(t){e._running&&(e._addCallbackData(t||{}),!1!==t&&e._startLoop())}));return this.props.onError&&A.catch(this.props.onError),this}},{key:"redraw",value:function(){return this.isContextLost()||(this._beginTimers(),this._setupFrame(),this._updateCallbackData(),this._renderFrame(this.animationProps),this._clearNeedsRedraw(),this.offScreen&&this.gl.commit&&this.gl.commit(),this._resolveNextFrame&&(this._resolveNextFrame(this),this._nextFramePromise=null,this._resolveNextFrame=null),this._endTimers()),this}},{key:"stop",value:function(){return this._running&&(this._finalizeCallbackData(),this._cancelAnimationFrame(this._animationFrameId),this._nextFramePromise=null,this._resolveNextFrame=null,this._animationFrameId=null,this._running=!1),this}},{key:"attachTimeline",value:function(e){return this.timeline=e,this.timeline}},{key:"detachTimeline",value:function(){this.timeline=null}},{key:"waitForRender",value:function(){var e=this;return this.setNeedsRedraw("waitForRender"),this._nextFramePromise||(this._nextFramePromise=new Promise((function(t){e._resolveNextFrame=t}))),this._nextFramePromise}},{key:"toDataURL",value:function(){var e=Object(i.a)(r.a.mark((function e(){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.setNeedsRedraw("toDataURL"),e.next=3,this.waitForRender();case 3:return e.abrupt("return",this.gl.canvas.toDataURL());case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"isContextLost",value:function(){return this.gl.isContextLost()}},{key:"onCreateContext",value:function(){var e;return(e=this.props).onCreateContext.apply(e,arguments)}},{key:"onInitialize",value:function(){var e;return(e=this.props).onInitialize.apply(e,arguments)}},{key:"onRender",value:function(){var e;return(e=this.props).onRender.apply(e,arguments)}},{key:"onFinalize",value:function(){var e;return(e=this.props).onFinalize.apply(e,arguments)}},{key:"getHTMLControlValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,A=document.getElementById(e);return A?Number(A.value):t}},{key:"setViewParameters",value:function(){return s.k.removed("AnimationLoop.setViewParameters","AnimationLoop.setProps")(),this}},{key:"_startLoop",value:function(){var e=this;this._cancelAnimationFrame(this._animationFrameId),this._animationFrameId=this._requestAnimationFrame((function t(){e._running&&(e.redraw(),e._animationFrameId=e._requestAnimationFrame(t))}))}},{key:"_getPageLoadPromise",value:function(){return this._pageLoadPromise||(this._pageLoadPromise=Q?new Promise((function(e,t){Q&&"complete"===document.readyState?e(document):window.addEventListener("load",(function(){e(document)}))})):Promise.resolve({})),this._pageLoadPromise}},{key:"_setDisplay",value:function(e){this.display&&(this.display.delete(),this.display.animationLoop=null),e&&(e.animationLoop=this),this.display=e}},{key:"_cancelAnimationFrame",value:function(e){return this.display&&this.display.cancelAnimationFrame?this.display.cancelAnimationFrame(e):(t=e,"undefined"!==typeof window&&window.cancelAnimationFrame?window.cancelAnimationFrame(t):clearTimeout(t));var t}},{key:"_requestAnimationFrame",value:function(e){if(this._running)return this.display&&this.display.requestAnimationFrame?this.display.requestAnimationFrame(e):(t=e,"undefined"!==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame(t):setTimeout(t,1e3/60));var t}},{key:"_renderFrame",value:function(){var e;this.display?(e=this.display)._renderFrame.apply(e,arguments):this.onRender.apply(this,arguments)}},{key:"_clearNeedsRedraw",value:function(){this.needsRedraw=null}},{key:"_setupFrame",value:function(){this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._resizeFramebuffer()}},{key:"_initializeCallbackData",value:function(){this.animationProps={gl:this.gl,stop:this.stop,canvas:this.gl.canvas,framebuffer:this.framebuffer,useDevicePixels:this.useDevicePixels,needsRedraw:null,startTime:Date.now(),engineTime:0,tick:0,tock:0,time:0,_timeline:this.timeline,_loop:this,_animationLoop:this,_mousePosition:null}}},{key:"_updateCallbackData",value:function(){var e=this._getSizeAndAspect(),t=e.width,A=e.height,n=e.aspect;t===this.animationProps.width&&A===this.animationProps.height||this.setNeedsRedraw("drawing buffer resized"),n!==this.animationProps.aspect&&this.setNeedsRedraw("drawing buffer aspect changed"),this.animationProps.width=t,this.animationProps.height=A,this.animationProps.aspect=n,this.animationProps.needsRedraw=this.needsRedraw,this.animationProps.engineTime=Date.now()-this.animationProps.startTime,this.timeline&&this.timeline.update(this.animationProps.engineTime),this.animationProps.tick=Math.floor(this.animationProps.time/1e3*60),this.animationProps.tock++,this.animationProps.time=this.timeline?this.timeline.getTime():this.animationProps.engineTime,this.animationProps._offScreen=this.offScreen}},{key:"_finalizeCallbackData",value:function(){this.onFinalize(this.animationProps)}},{key:"_addCallbackData",value:function(e){"object"===typeof e&&null!==e&&(this.animationProps=Object.assign({},this.animationProps,e))}},{key:"_createWebGLContext",value:function(e){if(this.offScreen=e.canvas&&"undefined"!==typeof OffscreenCanvas&&e.canvas instanceof OffscreenCanvas,e=Object.assign({},e,this.props.glOptions),this.gl=this.props.gl?Object(s.h)(this.props.gl,e):this.onCreateContext(e),!Object(s.i)(this.gl))throw new Error("AnimationLoop.onCreateContext - illegal context returned");Object(s.l)(this.gl),this._createInfoDiv()}},{key:"_createInfoDiv",value:function(){if(this.gl.canvas&&this.props.onAddHTML){var e=document.createElement("div");document.body.appendChild(e),e.style.position="relative";var t=document.createElement("div");t.style.position="absolute",t.style.left="10px",t.style.bottom="10px",t.style.width="300px",t.style.background="white",e.appendChild(this.gl.canvas),e.appendChild(t);var A=this.props.onAddHTML(t);A&&(t.innerHTML=A)}}},{key:"_getSizeAndAspect",value:function(){var e=this.gl.drawingBufferWidth,t=this.gl.drawingBufferHeight,A=1,n=this.gl.canvas;return n&&n.clientHeight?A=n.clientWidth/n.clientHeight:e>0&&t>0&&(A=e/t),{width:e,height:t,aspect:A}}},{key:"_resizeViewport",value:function(){this.autoResizeViewport&&this.gl.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}},{key:"_resizeCanvasDrawingBuffer",value:function(){this.autoResizeDrawingBuffer&&Object(s.m)(this.gl,{useDevicePixels:this.useDevicePixels})}},{key:"_createFramebuffer",value:function(){this.props.createFramebuffer&&(this.framebuffer=new p.a(this.gl))}},{key:"_resizeFramebuffer",value:function(){this.framebuffer&&this.framebuffer.resize({width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight})}},{key:"_beginTimers",value:function(){this.frameRate.timeEnd(),this.frameRate.timeStart(),this._gpuTimeQuery&&this._gpuTimeQuery.isResultAvailable()&&!this._gpuTimeQuery.isTimerDisjoint()&&this.stats.get("GPU Time").addTime(this._gpuTimeQuery.getTimerMilliseconds()),this._gpuTimeQuery&&this._gpuTimeQuery.beginTimeElapsedQuery(),this.cpuTime.timeStart()}},{key:"_endTimers",value:function(){this.cpuTime.timeEnd(),this._gpuTimeQuery&&this._gpuTimeQuery.end()}},{key:"_startEventHandling",value:function(){var e=this.gl.canvas;e&&(e.addEventListener("mousemove",this._onMousemove),e.addEventListener("mouseleave",this._onMouseleave))}},{key:"_onMousemove",value:function(e){this.animationProps._mousePosition=[e.offsetX,e.offsetY]}},{key:"_onMouseleave",value:function(e){this.animationProps._mousePosition=null}}]),e}()},function(e,t,A){"use strict";var n=A(7),r=A(1),i=A(4),o=A(9),a=A(10),s=A(579),g="\nuniform DATAFILTER_TYPE filter_min;\nuniform DATAFILTER_TYPE filter_softMin;\nuniform DATAFILTER_TYPE filter_softMax;\nuniform DATAFILTER_TYPE filter_max;\nuniform bool filter_useSoftMargin;\nuniform bool filter_enabled;\nuniform bool filter_transformSize;\n\n#ifdef NON_INSTANCED_MODEL\n #define DATAFILTER_ATTRIB filterValues\n #define DATAFILTER_ATTRIB_64LOW filterValues64Low\n#else\n #define DATAFILTER_ATTRIB instanceFilterValues\n #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low\n#endif\n\nattribute DATAFILTER_TYPE DATAFILTER_ATTRIB;\n#ifdef DATAFILTER_DOUBLE\n attribute DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;\n\n uniform DATAFILTER_TYPE filter_min64High;\n uniform DATAFILTER_TYPE filter_max64High;\n#endif\n\nvarying float dataFilter_value;\n\nfloat dataFilter_reduceValue(float value) {\n return value;\n}\nfloat dataFilter_reduceValue(vec2 value) {\n return min(value.x, value.y);\n}\nfloat dataFilter_reduceValue(vec3 value) {\n return min(min(value.x, value.y), value.z);\n}\nfloat dataFilter_reduceValue(vec4 value) {\n return min(min(value.x, value.y), min(value.z, value.w));\n}\nvoid dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {\n if (filter_enabled) {\n if (filter_useSoftMargin) {\n dataFilter_value = dataFilter_reduceValue(\n smoothstep(filter_min, filter_softMin, valueFromMin) *\n (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))\n );\n } else {\n dataFilter_value = dataFilter_reduceValue(\n step(filter_min, valueFromMin) * step(valueFromMax, filter_max)\n );\n }\n } else {\n dataFilter_value = 1.0;\n }\n}\n",c="\nuniform bool filter_transformColor;\nvarying float dataFilter_value;\n",u=function(e){if(!e||!e.extensions)return{};var t=e.filterRange,A=void 0===t?[-1,1]:t,n=e.filterEnabled,r=void 0===n||n,i=e.filterTransformSize,o=void 0===i||i,a=e.filterTransformColor,s=void 0===a||a,g=e.filterSoftRange||A,c=Number.isFinite(A[0])?{filter_min:A[0],filter_softMin:g[0],filter_softMax:g[1],filter_max:A[1]}:{filter_min:A.map((function(e){return e[0]})),filter_softMin:g.map((function(e){return e[0]})),filter_softMax:g.map((function(e){return e[1]})),filter_max:A.map((function(e){return e[1]}))};return c.filter_enabled=r,c.filter_useSoftMargin=Boolean(e.filterSoftRange),c.filter_transformSize=r&&o,c.filter_transformColor=r&&s,c},l={"vs:#main-start":"\n #ifdef DATAFILTER_DOUBLE\n dataFilter_setValue(\n DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,\n DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW\n );\n #else\n dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB);\n #endif\n ","vs:DECKGL_FILTER_SIZE":"\n if (filter_transformSize) {\n size = size * dataFilter_value;\n }\n ","fs:DECKGL_FILTER_COLOR":"\n if (dataFilter_value == 0.0) discard;\n if (filter_transformColor) {\n color.a *= dataFilter_value;\n }\n "},I={name:"data-filter",vs:g,fs:c,inject:l,getUniforms:u},C={name:"data-filter-fp64",vs:g,fs:c,inject:l,getUniforms:function(e){if(!e||!e.extensions)return{};var t=u(e);if(Number.isFinite(t.filter_min)){var A=Math.fround(t.filter_min);t.filter_min-=A,t.filter_softMin-=A,t.filter_min64High=A;var n=Math.fround(t.filter_max);t.filter_max-=n,t.filter_softMax-=n,t.filter_max64High=n}else{var r=t.filter_min.map(Math.fround);t.filter_min=t.filter_min.map((function(e,t){return e-r[t]})),t.filter_softMin=t.filter_softMin.map((function(e,t){return e-r[t]})),t.filter_min64High=r;var i=t.filter_max.map(Math.fround);t.filter_max=t.filter_max.map((function(e,t){return e-i[t]})),t.filter_softMax=t.filter_softMax.map((function(e,t){return e-i[t]})),t.filter_max64High=i}return t}},h=A(2),f=A(161),d=A(232),B=A(18),p=A(422);var E={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1},Q=A(428),y=A(530);A.d(t,"a",(function(){return m}));var v={1:"float",2:"vec2",3:"vec3",4:"vec4"},m=function(e){Object(o.a)(A,e);var t=Object(a.a)(A);function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.filterSize,i=void 0===n?1:n,o=e.fp64,a=void 0!==o&&o,s=e.countItems,g=void 0!==s&&s;if(Object(r.a)(this,A),!v[i])throw new Error("filterSize out of range");return t.call(this,{filterSize:i,fp64:a,countItems:g})}return Object(i.a)(A,[{key:"getShaders",value:function(e){var t=e.opts,A=t.filterSize,n=t.fp64;return{modules:[n?C:I],defines:{DATAFILTER_TYPE:v[A],DATAFILTER_DOUBLE:Boolean(n)}}}},{key:"initializeState",value:function(e,t){var A=this.getAttributeManager();A&&A.add({filterValues:{size:t.opts.filterSize,type:t.opts.fp64?5130:5126,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});var r=this.context.gl;if(A&&t.opts.countItems){var i=function(e){return e.getExtension("EXT_float_blend")&&(e.getExtension("EXT_color_buffer_float")||e.getExtension("WEBGL_color_buffer_float"))}(r);A.add({filterIndices:{size:i?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:function(e,t){var A=t.index,n=e&&e.__source?e.__source.index:A;return i?(n+1)%255:[(n+1)%255,Math.floor(n/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});var o=function(e,t){return t?new f.a(e,{width:1,height:1,attachments:Object(h.a)({},36064,new d.a(e,{format:Object(B.j)(e)?34836:6408,type:5126,mipmaps:!1}))}):new f.a(e,{width:256,height:64,depth:!1})}(r,i),a=function(e,t,A){return t.defines.NON_INSTANCED_MODEL=1,A&&(t.defines.FLOAT_TARGET=1),new p.a(e,Object(n.a)({id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:"#define SHADER_NAME data-filter-vertex-shader\n\n#ifdef FLOAT_TARGET\n attribute float filterIndices;\n attribute float filterPrevIndices;\n#else\n attribute vec2 filterIndices;\n attribute vec2 filterPrevIndices;\n#endif\n\nvarying vec4 vColor;\nconst float component = 1.0 / 255.0;\n\nvoid main() {\n #ifdef FLOAT_TARGET\n dataFilter_value *= float(filterIndices != filterPrevIndices);\n gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n vColor = vec4(0.0, 0.0, 0.0, 1.0);\n #else\n // Float texture is not supported: pack result into 4 channels x 256 px x 64px\n dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);\n float col = filterIndices.x;\n float row = filterIndices.y * 4.0;\n float channel = floor(row);\n row = fract(row);\n vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));\n gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);\n #endif\n gl_PointSize = 1.0;\n}\n",fs:"#define SHADER_NAME data-filter-fragment-shader\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main() {\n if (dataFilter_value < 0.5) {\n discard;\n }\n gl_FragColor = vColor;\n}\n"},t))}(r,t.getShaders(t),i);this.setState({filterFBO:o,filterModel:a})}}},{key:"updateState",value:function(e){var t=e.props,A=e.oldProps;if(this.state.filterModel){var n=this.getAttributeManager().attributes.filterValues.needsUpdate()||t.filterEnabled!==A.filterEnabled||t.filterRange!==A.filterRange||t.filterSoftRange!==A.filterSoftRange;n&&this.setState({filterNeedsUpdate:n})}}},{key:"draw",value:function(e,t){var A=this.state,r=A.filterFBO,i=A.filterModel,o=A.filterNeedsUpdate,a=this.props.onFilteredItemsChange;if(o&&a&&i){var s=this.getAttributeManager().attributes,g=s.filterValues,c=s.filterIndices;i.setVertexCount(this.getNumInstances());var u=this.context.gl;Object(Q.a)(u,{framebuffer:r,color:[0,0,0,0]}),i.updateModuleSettings(e.moduleParameters).setAttributes(Object(n.a)({},g.getShaderAttributes(),{},c&&c.getShaderAttributes())).draw({framebuffer:r,parameters:Object(n.a)({},E,{viewport:[0,0,r.width,r.height]})});for(var l=Object(y.c)(r),I=0,C=0;C<l.length;C++)I+=l[C];a({id:this.id,count:I}),this.state.filterNeedsUpdate=!1}}},{key:"finalizeState",value:function(){var e=this.state,t=e.filterFBO,A=e.filterModel;t&&(t.color.delete(),t.delete(),A.delete())}}]),A}(s.a);m.extensionName="DataFilterExtension",m.defaultProps={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,compare:!1},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0}},function(e,t,A){"use strict";var n=A(329);A.d(t,"a",(function(){return r}));var r={name:"pbr",vs:"uniform mat4 u_MVPMatrix;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_NormalMatrix;\n\nvarying vec3 pbr_vPosition;\nvarying vec2 pbr_vUV;\n\n#ifdef HAS_NORMALS\n# ifdef HAS_TANGENTS\nvarying mat3 pbr_vTBN;\n# else\nvarying vec3 pbr_vNormal;\n# endif\n#endif\n\nvoid pbr_setPositionNormalTangentUV(vec4 position, vec4 normal, vec4 tangent, vec2 uv)\n{\n vec4 pos = u_ModelMatrix * position;\n pbr_vPosition = vec3(pos.xyz) / pos.w;\n\n#ifdef HAS_NORMALS\n#ifdef HAS_TANGENTS\n vec3 normalW = normalize(vec3(u_NormalMatrix * vec4(normal.xyz, 0.0)));\n vec3 tangentW = normalize(vec3(u_ModelMatrix * vec4(tangent.xyz, 0.0)));\n vec3 bitangentW = cross(normalW, tangentW) * tangent.w;\n pbr_vTBN = mat3(tangentW, bitangentW, normalW);\n#else\n pbr_vNormal = normalize(vec3(u_ModelMatrix * vec4(normal.xyz, 0.0)));\n#endif\n#endif\n\n#ifdef HAS_UV\n pbr_vUV = uv;\n#else\n pbr_vUV = vec2(0.,0.);\n#endif\n}\n",fs:"#if defined(USE_TEX_LOD) && !defined(FEATURE_GLSL_TEXTURE_LOD)\n# error PBR fragment shader: Texture LOD is not available\n#endif\n\n#if !defined(HAS_TANGENTS) && !defined(FEATURE_GLSL_DERIVATIVES)\n# error PBR fragment shader: Derivatives are not available\n#endif\n\n\n#if (__VERSION__ < 300)\n #define SMART_FOR(INIT, WEBGL1COND, WEBGL2COND, INCR) for (INIT; WEBGL1COND; INCR)\n#else\n #define SMART_FOR(INIT, WEBGL1COND, WEBGL2COND, INCR) for (INIT; WEBGL2COND; INCR)\n#endif\n\nprecision highp float;\n\nuniform bool pbr_uUnlit;\n\n#ifdef USE_IBL\nuniform samplerCube u_DiffuseEnvSampler;\nuniform samplerCube u_SpecularEnvSampler;\nuniform sampler2D u_brdfLUT;\nuniform vec2 u_ScaleIBLAmbient;\n#endif\n\n#ifdef HAS_BASECOLORMAP\nuniform sampler2D u_BaseColorSampler;\n#endif\n#ifdef HAS_NORMALMAP\nuniform sampler2D u_NormalSampler;\nuniform float u_NormalScale;\n#endif\n#ifdef HAS_EMISSIVEMAP\nuniform sampler2D u_EmissiveSampler;\nuniform vec3 u_EmissiveFactor;\n#endif\n#ifdef HAS_METALROUGHNESSMAP\nuniform sampler2D u_MetallicRoughnessSampler;\n#endif\n#ifdef HAS_OCCLUSIONMAP\nuniform sampler2D u_OcclusionSampler;\nuniform float u_OcclusionStrength;\n#endif\n\n#ifdef ALPHA_CUTOFF\nuniform float u_AlphaCutoff;\n#endif\n\nuniform vec2 u_MetallicRoughnessValues;\nuniform vec4 u_BaseColorFactor;\n\nuniform vec3 u_Camera;\n#ifdef PBR_DEBUG\nuniform vec4 u_ScaleDiffBaseMR;\nuniform vec4 u_ScaleFGDSpec;\n#endif\n\nvarying vec3 pbr_vPosition;\n\nvarying vec2 pbr_vUV;\n\n#ifdef HAS_NORMALS\n#ifdef HAS_TANGENTS\nvarying mat3 pbr_vTBN;\n#else\nvarying vec3 pbr_vNormal;\n#endif\n#endif\n\n\nstruct PBRInfo\n{\n float NdotL;\n float NdotV;\n float NdotH;\n float LdotH;\n float VdotH;\n float perceptualRoughness;\n float metalness;\n vec3 reflectance0;\n vec3 reflectance90;\n float alphaRoughness;\n vec3 diffuseColor;\n vec3 specularColor;\n vec3 n;\n vec3 v;\n};\n\nconst float M_PI = 3.141592653589793;\nconst float c_MinRoughness = 0.04;\n\nvec4 SRGBtoLINEAR(vec4 srgbIn)\n{\n#ifdef MANUAL_SRGB\n#ifdef SRGB_FAST_APPROXIMATION\n vec3 linOut = pow(srgbIn.xyz,vec3(2.2));\n#else\n vec3 bLess = step(vec3(0.04045),srgbIn.xyz);\n vec3 linOut = mix( srgbIn.xyz/vec3(12.92), pow((srgbIn.xyz+vec3(0.055))/vec3(1.055),vec3(2.4)), bLess );\n#endif\n return vec4(linOut,srgbIn.w);;\n#else\n return srgbIn;\n#endif\n}\n\nvec3 getNormal()\n{\n#ifndef HAS_TANGENTS\n vec3 pos_dx = dFdx(pbr_vPosition);\n vec3 pos_dy = dFdy(pbr_vPosition);\n vec3 tex_dx = dFdx(vec3(pbr_vUV, 0.0));\n vec3 tex_dy = dFdy(vec3(pbr_vUV, 0.0));\n vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t);\n\n#ifdef HAS_NORMALS\n vec3 ng = normalize(pbr_vNormal);\n#else\n vec3 ng = cross(pos_dx, pos_dy);\n#endif\n\n t = normalize(t - ng * dot(ng, t));\n vec3 b = normalize(cross(ng, t));\n mat3 tbn = mat3(t, b, ng);\n#else\n mat3 tbn = pbr_vTBN;\n#endif\n\n#ifdef HAS_NORMALMAP\n vec3 n = texture2D(u_NormalSampler, pbr_vUV).rgb;\n n = normalize(tbn * ((2.0 * n - 1.0) * vec3(u_NormalScale, u_NormalScale, 1.0)));\n#else\n vec3 n = normalize(tbn[2].xyz);\n#endif\n\n return n;\n}\n\n\n#ifdef USE_IBL\nvec3 getIBLContribution(PBRInfo pbrInputs, vec3 n, vec3 reflection)\n{\n float mipCount = 9.0;\n float lod = (pbrInputs.perceptualRoughness * mipCount);\n vec3 brdf = SRGBtoLINEAR(texture2D(u_brdfLUT,\n vec2(pbrInputs.NdotV, 1.0 - pbrInputs.perceptualRoughness))).rgb;\n vec3 diffuseLight = SRGBtoLINEAR(textureCube(u_DiffuseEnvSampler, n)).rgb;\n\n#ifdef USE_TEX_LOD\n vec3 specularLight = SRGBtoLINEAR(textureCubeLod(u_SpecularEnvSampler, reflection, lod)).rgb;\n#else\n vec3 specularLight = SRGBtoLINEAR(textureCube(u_SpecularEnvSampler, reflection)).rgb;\n#endif\n\n vec3 diffuse = diffuseLight * pbrInputs.diffuseColor;\n vec3 specular = specularLight * (pbrInputs.specularColor * brdf.x + brdf.y);\n diffuse *= u_ScaleIBLAmbient.x;\n specular *= u_ScaleIBLAmbient.y;\n\n return diffuse + specular;\n}\n#endif\n\n\nvec3 diffuse(PBRInfo pbrInputs)\n{\n return pbrInputs.diffuseColor / M_PI;\n}\n\nvec3 specularReflection(PBRInfo pbrInputs)\n{\n return pbrInputs.reflectance0 +\n (pbrInputs.reflectance90 - pbrInputs.reflectance0) *\n pow(clamp(1.0 - pbrInputs.VdotH, 0.0, 1.0), 5.0);\n}\n\n\n\nfloat geometricOcclusion(PBRInfo pbrInputs)\n{\n float NdotL = pbrInputs.NdotL;\n float NdotV = pbrInputs.NdotV;\n float r = pbrInputs.alphaRoughness;\n\n float attenuationL = 2.0 * NdotL / (NdotL + sqrt(r * r + (1.0 - r * r) * (NdotL * NdotL)));\n float attenuationV = 2.0 * NdotV / (NdotV + sqrt(r * r + (1.0 - r * r) * (NdotV * NdotV)));\n return attenuationL * attenuationV;\n}\n\n\n\n\n\nfloat microfacetDistribution(PBRInfo pbrInputs)\n{\n float roughnessSq = pbrInputs.alphaRoughness * pbrInputs.alphaRoughness;\n float f = (pbrInputs.NdotH * roughnessSq - pbrInputs.NdotH) * pbrInputs.NdotH + 1.0;\n return roughnessSq / (M_PI * f * f);\n}\n\nvoid PBRInfo_setAmbientLight(inout PBRInfo pbrInputs) {\n pbrInputs.NdotL = 1.0;\n pbrInputs.NdotH = 0.0;\n pbrInputs.LdotH = 0.0;\n pbrInputs.VdotH = 1.0;\n}\n\nvoid PBRInfo_setDirectionalLight(inout PBRInfo pbrInputs, vec3 lightDirection) {\n vec3 n = pbrInputs.n;\n vec3 v = pbrInputs.v;\n vec3 l = normalize(lightDirection);\n vec3 h = normalize(l+v);\n\n pbrInputs.NdotL = clamp(dot(n, l), 0.001, 1.0);\n pbrInputs.NdotH = clamp(dot(n, h), 0.0, 1.0);\n pbrInputs.LdotH = clamp(dot(l, h), 0.0, 1.0);\n pbrInputs.VdotH = clamp(dot(v, h), 0.0, 1.0);\n}\n\nvoid PBRInfo_setPointLight(inout PBRInfo pbrInputs, PointLight pointLight) {\n vec3 light_direction = normalize(pointLight.position - pbr_vPosition);\n PBRInfo_setDirectionalLight(pbrInputs, light_direction);\n}\n\nvec3 calculateFinalColor(PBRInfo pbrInputs, vec3 lightColor) {\n vec3 F = specularReflection(pbrInputs);\n float G = geometricOcclusion(pbrInputs);\n float D = microfacetDistribution(pbrInputs);\n vec3 diffuseContrib = (1.0 - F) * diffuse(pbrInputs);\n vec3 specContrib = F * G * D / (4.0 * pbrInputs.NdotL * pbrInputs.NdotV);\n return pbrInputs.NdotL * lightColor * (diffuseContrib + specContrib);\n}\n\nvec4 pbr_filterColor(vec4 colorUnused)\n{\n#ifdef HAS_BASECOLORMAP\n vec4 baseColor = SRGBtoLINEAR(texture2D(u_BaseColorSampler, pbr_vUV)) * u_BaseColorFactor;\n#else\n vec4 baseColor = u_BaseColorFactor;\n#endif\n\n#ifdef ALPHA_CUTOFF\n if (baseColor.a < u_AlphaCutoff) {\n discard;\n }\n#endif\n\n vec3 color = vec3(0, 0, 0);\n\n if(pbr_uUnlit){\n color.rgb = baseColor.rgb;\n }\n else{\n\n\n float perceptualRoughness = u_MetallicRoughnessValues.y;\n float metallic = u_MetallicRoughnessValues.x;\n#ifdef HAS_METALROUGHNESSMAP\n\n vec4 mrSample = texture2D(u_MetallicRoughnessSampler, pbr_vUV);\n perceptualRoughness = mrSample.g * perceptualRoughness;\n metallic = mrSample.b * metallic;\n#endif\n perceptualRoughness = clamp(perceptualRoughness, c_MinRoughness, 1.0);\n metallic = clamp(metallic, 0.0, 1.0);\n\n float alphaRoughness = perceptualRoughness * perceptualRoughness;\n\n vec3 f0 = vec3(0.04);\n vec3 diffuseColor = baseColor.rgb * (vec3(1.0) - f0);\n diffuseColor *= 1.0 - metallic;\n vec3 specularColor = mix(f0, baseColor.rgb, metallic);\n float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);\n\n\n\n float reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0);\n vec3 specularEnvironmentR0 = specularColor.rgb;\n vec3 specularEnvironmentR90 = vec3(1.0, 1.0, 1.0) * reflectance90;\n\n vec3 n = getNormal();\n vec3 v = normalize(u_Camera - pbr_vPosition);\n\n float NdotV = clamp(abs(dot(n, v)), 0.001, 1.0);\n vec3 reflection = -normalize(reflect(v, n));\n\n PBRInfo pbrInputs = PBRInfo(\n 0.0,\n NdotV,\n 0.0,\n 0.0,\n 0.0,\n perceptualRoughness,\n metallic,\n specularEnvironmentR0,\n specularEnvironmentR90,\n alphaRoughness,\n diffuseColor,\n specularColor,\n n,\n v\n );\n\n#ifdef USE_LIGHTS\n PBRInfo_setAmbientLight(pbrInputs);\n color += calculateFinalColor(pbrInputs, lighting_uAmbientLight.color);\n SMART_FOR(int i = 0, i < MAX_LIGHTS, i < lighting_uDirectionalLightCount, i++) {\n if (i < lighting_uDirectionalLightCount) {\n PBRInfo_setDirectionalLight(pbrInputs, lighting_uDirectionalLight[i].direction);\n color += calculateFinalColor(pbrInputs, lighting_uDirectionalLight[i].color);\n }\n }\n SMART_FOR(int i = 0, i < MAX_LIGHTS, i < lighting_uPointLightCount, i++) {\n if (i < lighting_uPointLightCount) {\n PBRInfo_setPointLight(pbrInputs, lighting_uPointLight[i]);\n float attenuation = getPointLightAttenuation(lighting_uPointLight[i], distance(lighting_uPointLight[i].position, pbr_vPosition));\n color += calculateFinalColor(pbrInputs, lighting_uPointLight[i].color / attenuation);\n }\n }\n#endif\n#ifdef USE_IBL\n color += getIBLContribution(pbrInputs, n, reflection);\n#endif\n#ifdef HAS_OCCLUSIONMAP\n float ao = texture2D(u_OcclusionSampler, pbr_vUV).r;\n color = mix(color, color * ao, u_OcclusionStrength);\n#endif\n\n#ifdef HAS_EMISSIVEMAP\n vec3 emissive = SRGBtoLINEAR(texture2D(u_EmissiveSampler, pbr_vUV)).rgb * u_EmissiveFactor;\n color += emissive;\n#endif\n\n#ifdef PBR_DEBUG\n\n\n\n\n\n color = mix(color, baseColor.rgb, u_ScaleDiffBaseMR.y);\n color = mix(color, vec3(metallic), u_ScaleDiffBaseMR.z);\n color = mix(color, vec3(perceptualRoughness), u_ScaleDiffBaseMR.w);\n#endif\n\n }\n\n return vec4(pow(color,vec3(1.0/2.2)), baseColor.a);\n}\n",defines:{LIGHTING_FRAGMENT:1},dependencies:[n.a]}},function(e,t,A){"use strict";function n(e){return e}A.d(t,"a",(function(){return n}))},function(e,t,A){"use strict";var n=A(101),r=A(401),i=A(174);A.d(t,"a",(function(){return u}));var o={m:"margin",p:"padding"},a={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},s={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},g=function(e){var t={};return function(A){return void 0===t[A]&&(t[A]=e(A)),t[A]}}((function(e){if(e.length>2){if(!s[e])return[e];e=s[e]}var t=e.split(""),A=Object(n.a)(t,2),r=A[0],i=A[1],g=o[r],c=a[i]||"";return Array.isArray(c)?c.map((function(e){return g+e})):[g+c]})),c=["m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY"];function u(e){var t=e.spacing||8;return"number"===typeof t?function(e){return t*e}:Array.isArray(t)?function(e){return t[e]}:"function"===typeof t?t:function(){}}function l(e,t){return function(A){return e.reduce((function(e,n){return e[n]=function(e,t){if("string"===typeof t||null==t)return t;var A=e(Math.abs(t));return t>=0?A:"number"===typeof A?-A:"-".concat(A)}(t,A),e}),{})}}function I(e){var t=u(e.theme);return Object.keys(e).map((function(A){if(-1===c.indexOf(A))return null;var n=l(g(A),t),i=e[A];return Object(r.a)(e,i,n)})).reduce(i.a,{})}I.propTypes={},I.filterProps=c;t.b=I},function(e,t,A){"use strict";var n=A(21),r=A(25),i=A(14),o=A(0),a=(A(13),A(19)),s=A(28),g=A(433),c=A(207),u=A(51),l=A(289),I=A(39),C="undefined"===typeof window?o.useEffect:o.useLayoutEffect,h=o.forwardRef((function(e,t){var A=e.alignItems,r=void 0===A?"center":A,s=e.autoFocus,h=void 0!==s&&s,f=e.button,d=void 0!==f&&f,B=e.children,p=e.classes,E=e.className,Q=e.component,y=e.ContainerComponent,v=void 0===y?"li":y,m=e.ContainerProps,b=(m=void 0===m?{}:m).className,w=Object(n.a)(m,["className"]),S=e.dense,F=void 0!==S&&S,R=e.disabled,D=void 0!==R&&R,G=e.disableGutters,k=void 0!==G&&G,x=e.divider,N=void 0!==x&&x,U=e.focusVisibleClassName,_=e.selected,M=void 0!==_&&_,O=Object(n.a)(e,["alignItems","autoFocus","button","children","classes","className","component","ContainerComponent","ContainerProps","dense","disabled","disableGutters","divider","focusVisibleClassName","selected"]),L=o.useContext(l.a),T={dense:F||L.dense||!1,alignItems:r},Z=o.useRef(null);C((function(){h&&Z.current&&Z.current.focus()}),[h]);var H=o.Children.toArray(B),Y=H.length&&Object(c.a)(H[H.length-1],["ListItemSecondaryAction"]),J=o.useCallback((function(e){Z.current=I.findDOMNode(e)}),[]),j=Object(u.a)(J,t),P=Object(i.a)({className:Object(a.a)(p.root,E,T.dense&&p.dense,!k&&p.gutters,N&&p.divider,D&&p.disabled,d&&p.button,"center"!==r&&p.alignItemsFlexStart,Y&&p.secondaryAction,M&&p.selected),disabled:D},O),V=Q||"li";return d&&(P.component=Q||"div",P.focusVisibleClassName=Object(a.a)(p.focusVisible,U),V=g.a),Y?(V=P.component||Q?V:"div","li"===v&&("li"===V?V="div":"li"===P.component&&(P.component="div")),o.createElement(l.a.Provider,{value:T},o.createElement(v,Object(i.a)({className:Object(a.a)(p.container,b),ref:j},w),o.createElement(V,P,H),H.pop()))):o.createElement(l.a.Provider,{value:T},o.createElement(V,Object(i.a)({ref:j},P),H))})),f=Object(s.a)((function(e){return{root:{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,"&$focusVisible":{backgroundColor:e.palette.action.selected},"&$selected, &$selected:hover":{backgroundColor:e.palette.action.selected},"&$disabled":{opacity:.5}},container:{position:"relative"},focusVisible:{},dense:{paddingTop:4,paddingBottom:4},alignItemsFlexStart:{alignItems:"flex-start"},disabled:{},divider:{borderBottom:"1px solid ".concat(e.palette.divider),backgroundClip:"padding-box"},gutters:{paddingLeft:16,paddingRight:16},button:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:e.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},secondaryAction:{paddingRight:48},selected:{}}}),{name:"MuiListItem"})(h),d=o.forwardRef((function(e,t){var A,r=e.classes,s=e.className,g=e.component,c=void 0===g?"li":g,u=e.disableGutters,l=void 0!==u&&u,I=e.ListItemClasses,C=e.role,h=void 0===C?"menuitem":C,d=e.selected,B=e.tabIndex,p=Object(n.a)(e,["classes","className","component","disableGutters","ListItemClasses","role","selected","tabIndex"]);return e.disabled||(A=void 0!==B?B:-1),o.createElement(f,Object(i.a)({button:!0,role:h,tabIndex:A,component:c,selected:d,disableGutters:l,classes:Object(i.a)({dense:r.dense},I),className:Object(a.a)(r.root,s,d&&r.selected,!l&&r.gutters),ref:t},p))}));t.a=Object(s.a)((function(e){return{root:Object(i.a)({},e.typography.body1,Object(r.a)({minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",width:"auto",overflow:"hidden",whiteSpace:"nowrap"},e.breakpoints.up("sm"),{minHeight:"auto"})),gutters:{},selected:{},dense:Object(i.a)({},e.typography.body2,{minHeight:"auto"})}}),{name:"MuiMenuItem"})(d)},function(e,t,A){"use strict";var n=A(137),r=A(101),i=A(21),o=A(14),a=A(0),s=(A(13),A(19)),g=A(28),c=A(114),u=A(60),l=A(200),I=A(69),C=A(66),h=A(51),f=A(40),d=A(160);var B=Object(g.a)((function(e){return{thumb:{"&$open":{"& $offset":{transform:"scale(1) translateY(-10px)"}}},open:{},offset:Object(o.a)({zIndex:1},e.typography.body2,{fontSize:e.typography.pxToRem(12),lineHeight:1.2,transition:e.transitions.create(["transform"],{duration:e.transitions.duration.shortest}),top:-34,transformOrigin:"bottom center",transform:"scale(0)",position:"absolute"}),circle:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,borderRadius:"50% 50% 50% 0",backgroundColor:"currentColor",transform:"rotate(-45deg)"},label:{color:e.palette.primary.contrastText,transform:"rotate(45deg)"}}}),{name:"PrivateValueLabel"})((function(e){var t=e.children,A=e.classes,n=e.className,r=e.open,i=e.value,o=e.valueLabelDisplay;return"off"===o?t:a.cloneElement(t,{className:Object(s.a)(t.props.className,(r||"on"===o)&&A.open,A.thumb)},a.createElement("span",{className:Object(s.a)(A.offset,n)},a.createElement("span",{className:A.circle},a.createElement("span",{className:A.label},i))))}));function p(e,t){return e-t}function E(e,t,A){return Math.min(Math.max(t,e),A)}function Q(e,t){return e.reduce((function(e,A,n){var r=Math.abs(t-A);return null===e||r<e.distance||r===e.distance?{distance:r,index:n}:e}),null).index}function y(e,t){if(void 0!==t.current&&e.changedTouches){for(var A=0;A<e.changedTouches.length;A+=1){var n=e.changedTouches[A];if(n.identifier===t.current)return{x:n.clientX,y:n.clientY}}return!1}return{x:e.clientX,y:e.clientY}}function v(e,t,A){return 100*(e-t)/(A-t)}function m(e,t,A){var n=Math.round((e-A)/t)*t+A;return Number(n.toFixed(function(e){if(Math.abs(e)<1){var t=e.toExponential().split("e-"),A=t[0].split(".")[1];return(A?A.length:0)+parseInt(t[1],10)}var n=e.toString().split(".")[1];return n?n.length:0}(t)))}function b(e){var t=e.values,A=e.source,n=e.newValue,r=e.index;if(t[r]===n)return A;var i=t.slice();return i[r]=n,i}function w(e){var t=e.sliderRef,A=e.activeIndex,n=e.setActive;t.current.contains(document.activeElement)&&Number(document.activeElement.getAttribute("data-index"))===A||t.current.querySelector('[role="slider"][data-index="'.concat(A,'"]')).focus(),n&&n(A)}var S={horizontal:{offset:function(e){return{left:"".concat(e,"%")}},leap:function(e){return{width:"".concat(e,"%")}}},"horizontal-reverse":{offset:function(e){return{right:"".concat(e,"%")}},leap:function(e){return{width:"".concat(e,"%")}}},vertical:{offset:function(e){return{bottom:"".concat(e,"%")}},leap:function(e){return{height:"".concat(e,"%")}}}},F=function(e){return e},R=a.forwardRef((function(e,t){var A=e["aria-label"],g=e["aria-labelledby"],u=e["aria-valuetext"],R=e.classes,D=e.className,G=e.color,k=void 0===G?"primary":G,x=e.component,N=void 0===x?"span":x,U=e.defaultValue,_=e.disabled,M=void 0!==_&&_,O=e.getAriaLabel,L=e.getAriaValueText,T=e.marks,Z=void 0!==T&&T,H=e.max,Y=void 0===H?100:H,J=e.min,j=void 0===J?0:J,P=e.name,V=e.onChange,K=e.onChangeCommitted,W=e.onMouseDown,X=e.orientation,q=void 0===X?"horizontal":X,z=e.scale,$=void 0===z?F:z,ee=e.step,te=void 0===ee?1:ee,Ae=e.ThumbComponent,ne=void 0===Ae?"span":Ae,re=e.track,ie=void 0===re?"normal":re,oe=e.value,ae=e.ValueLabelComponent,se=void 0===ae?B:ae,ge=e.valueLabelDisplay,ce=void 0===ge?"off":ge,ue=e.valueLabelFormat,le=void 0===ue?F:ue,Ie=Object(i.a)(e,["aria-label","aria-labelledby","aria-valuetext","classes","className","color","component","defaultValue","disabled","getAriaLabel","getAriaValueText","marks","max","min","name","onChange","onChangeCommitted","onMouseDown","orientation","scale","step","ThumbComponent","track","value","ValueLabelComponent","valueLabelDisplay","valueLabelFormat"]),Ce=Object(c.a)(),he=a.useRef(),fe=a.useState(-1),de=fe[0],Be=fe[1],pe=a.useState(-1),Ee=pe[0],Qe=pe[1],ye=Object(d.a)({controlled:oe,default:U,name:"Slider"}),ve=Object(r.a)(ye,2),me=ve[0],be=ve[1],we=Array.isArray(me),Se=we?me.slice().sort(p):[me];Se=Se.map((function(e){return E(e,j,Y)}));var Fe=!0===Z&&null!==te?Object(n.a)(Array(Math.floor((Y-j)/te)+1)).map((function(e,t){return{value:j+te*t}})):Z||[],Re=Object(l.a)(),De=Re.isFocusVisible,Ge=Re.onBlurVisible,ke=Re.ref,xe=a.useState(-1),Ne=xe[0],Ue=xe[1],_e=a.useRef(),Me=Object(h.a)(ke,_e),Oe=Object(h.a)(t,Me),Le=Object(C.a)((function(e){var t=Number(e.currentTarget.getAttribute("data-index"));De(e)&&Ue(t),Qe(t)})),Te=Object(C.a)((function(){-1!==Ne&&(Ue(-1),Ge()),Qe(-1)})),Ze=Object(C.a)((function(e){var t=Number(e.currentTarget.getAttribute("data-index"));Qe(t)})),He=Object(C.a)((function(){Qe(-1)})),Ye="rtl"===Ce.direction,Je=Object(C.a)((function(e){var t,A=Number(e.currentTarget.getAttribute("data-index")),n=Se[A],r=(Y-j)/10,i=Fe.map((function(e){return e.value})),o=i.indexOf(n),a=Ye?"ArrowLeft":"ArrowRight",s=Ye?"ArrowRight":"ArrowLeft";switch(e.key){case"Home":t=j;break;case"End":t=Y;break;case"PageUp":te&&(t=n+r);break;case"PageDown":te&&(t=n-r);break;case a:case"ArrowUp":t=te?n+te:i[o+1]||i[i.length-1];break;case s:case"ArrowDown":t=te?n-te:i[o-1]||i[0];break;default:return}if(e.preventDefault(),te&&(t=m(t,te,j)),t=E(t,j,Y),we){var g=t;t=b({values:Se,source:me,newValue:t,index:A}).sort(p),w({sliderRef:_e,activeIndex:t.indexOf(g)})}be(t),Ue(A),V&&V(e,t),K&&K(e,t)})),je=a.useRef(),Pe=q;Ye&&"vertical"!==q&&(Pe+="-reverse");var Ve=function(e){var t,A,n=e.finger,r=e.move,i=void 0!==r&&r,o=e.values,a=e.source,s=_e.current.getBoundingClientRect(),g=s.width,c=s.height,u=s.bottom,l=s.left;if(t=0===Pe.indexOf("vertical")?(u-n.y)/c:(n.x-l)/g,-1!==Pe.indexOf("-reverse")&&(t=1-t),A=function(e,t,A){return(A-t)*e+t}(t,j,Y),te)A=m(A,te,j);else{var I=Fe.map((function(e){return e.value}));A=I[Q(I,A)]}A=E(A,j,Y);var C=0;if(we){var h=A;C=(A=b({values:o,source:a,newValue:A,index:C=i?je.current:Q(o,A)}).sort(p)).indexOf(h),je.current=C}return{newValue:A,activeIndex:C}},Ke=Object(C.a)((function(e){var t=y(e,he);if(t){var A=Ve({finger:t,move:!0,values:Se,source:me}),n=A.newValue,r=A.activeIndex;w({sliderRef:_e,activeIndex:r,setActive:Be}),be(n),V&&V(e,n)}})),We=Object(C.a)((function(e){var t=y(e,he);if(t){var A=Ve({finger:t,values:Se,source:me}).newValue;Be(-1),"touchend"===e.type&&Qe(-1),K&&K(e,A),he.current=void 0;var n=Object(I.a)(_e.current);n.removeEventListener("mousemove",Ke),n.removeEventListener("mouseup",We),n.removeEventListener("touchmove",Ke),n.removeEventListener("touchend",We)}})),Xe=Object(C.a)((function(e){e.preventDefault();var t=e.changedTouches[0];null!=t&&(he.current=t.identifier);var A=y(e,he),n=Ve({finger:A,values:Se,source:me}),r=n.newValue,i=n.activeIndex;w({sliderRef:_e,activeIndex:i,setActive:Be}),be(r),V&&V(e,r);var o=Object(I.a)(_e.current);o.addEventListener("touchmove",Ke),o.addEventListener("touchend",We)}));a.useEffect((function(){var e=_e.current;e.addEventListener("touchstart",Xe);var t=Object(I.a)(e);return function(){e.removeEventListener("touchstart",Xe),t.removeEventListener("mousemove",Ke),t.removeEventListener("mouseup",We),t.removeEventListener("touchmove",Ke),t.removeEventListener("touchend",We)}}),[We,Ke,Xe]);var qe=Object(C.a)((function(e){W&&W(e),e.preventDefault();var t=y(e,he),A=Ve({finger:t,values:Se,source:me}),n=A.newValue,r=A.activeIndex;w({sliderRef:_e,activeIndex:r,setActive:Be}),be(n),V&&V(e,n);var i=Object(I.a)(_e.current);i.addEventListener("mousemove",Ke),i.addEventListener("mouseup",We)})),ze=v(we?Se[0]:j,j,Y),$e=v(Se[Se.length-1],j,Y)-ze,et=Object(o.a)({},S[Pe].offset(ze),S[Pe].leap($e));return a.createElement(N,Object(o.a)({ref:Oe,className:Object(s.a)(R.root,R["color".concat(Object(f.a)(k))],D,M&&R.disabled,Fe.length>0&&Fe.some((function(e){return e.label}))&&R.marked,!1===ie&&R.trackFalse,"vertical"===q&&R.vertical,"inverted"===ie&&R.trackInverted),onMouseDown:qe},Ie),a.createElement("span",{className:R.rail}),a.createElement("span",{className:R.track,style:et}),a.createElement("input",{value:Se.join(","),name:P,type:"hidden"}),Fe.map((function(e,t){var A,n=v(e.value,j,Y),r=S[Pe].offset(n);return A=!1===ie?-1!==Se.indexOf(e.value):"normal"===ie&&(we?e.value>=Se[0]&&e.value<=Se[Se.length-1]:e.value<=Se[0])||"inverted"===ie&&(we?e.value<=Se[0]||e.value>=Se[Se.length-1]:e.value>=Se[0]),a.createElement(a.Fragment,{key:e.value},a.createElement("span",{style:r,"data-index":t,className:Object(s.a)(R.mark,A&&R.markActive)}),null!=e.label?a.createElement("span",{"aria-hidden":!0,"data-index":t,style:r,className:Object(s.a)(R.markLabel,A&&R.markLabelActive)},e.label):null)})),Se.map((function(e,t){var n=v(e,j,Y),r=S[Pe].offset(n);return a.createElement(se,{key:t,valueLabelFormat:le,valueLabelDisplay:ce,className:R.valueLabel,value:"function"===typeof le?le($(e),t):le,index:t,open:Ee===t||de===t||"on"===ce,disabled:M},a.createElement(ne,{className:Object(s.a)(R.thumb,R["thumbColor".concat(Object(f.a)(k))],de===t&&R.active,M&&R.disabled,Ne===t&&R.focusVisible),tabIndex:M?null:0,role:"slider",style:r,"data-index":t,"aria-label":O?O(t):A,"aria-labelledby":g,"aria-orientation":q,"aria-valuemax":$(Y),"aria-valuemin":$(j),"aria-valuenow":$(e),"aria-valuetext":L?L($(e),t):u,onKeyDown:Je,onFocus:Le,onBlur:Te,onMouseOver:Ze,onMouseLeave:He}))})))}));t.a=Object(g.a)((function(e){return{root:{height:2,width:"100%",boxSizing:"content-box",padding:"13px 0",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",color:e.palette.primary.main,WebkitTapHighlightColor:"transparent","&$disabled":{pointerEvents:"none",cursor:"default",color:e.palette.grey[400]},"&$vertical":{width:2,height:"100%",padding:"0 13px"},"@media (pointer: coarse)":{padding:"20px 0","&$vertical":{padding:"0 20px"}},"@media print":{colorAdjust:"exact"}},colorPrimary:{},colorSecondary:{color:e.palette.secondary.main},marked:{marginBottom:20,"&$vertical":{marginBottom:"auto",marginRight:20}},vertical:{},disabled:{},rail:{display:"block",position:"absolute",width:"100%",height:2,borderRadius:1,backgroundColor:"currentColor",opacity:.38,"$vertical &":{height:"100%",width:2}},track:{display:"block",position:"absolute",height:2,borderRadius:1,backgroundColor:"currentColor","$vertical &":{width:2}},trackFalse:{"& $track":{display:"none"}},trackInverted:{"& $track":{backgroundColor:"light"===e.palette.type?Object(u.d)(e.palette.primary.main,.62):Object(u.b)(e.palette.primary.main,.5)},"& $rail":{opacity:1}},thumb:{position:"absolute",width:12,height:12,marginLeft:-6,marginTop:-5,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:e.transitions.create(["box-shadow"],{duration:e.transitions.duration.shortest}),"&::after":{position:"absolute",content:'""',borderRadius:"50%",left:-15,top:-15,right:-15,bottom:-15},"&$focusVisible,&:hover":{boxShadow:"0px 0px 0px 8px ".concat(Object(u.a)(e.palette.primary.main,.16)),"@media (hover: none)":{boxShadow:"none"}},"&$active":{boxShadow:"0px 0px 0px 14px ".concat(Object(u.a)(e.palette.primary.main,.16))},"&$disabled":{width:8,height:8,marginLeft:-4,marginTop:-3,"&:hover":{boxShadow:"none"}},"$vertical &":{marginLeft:-5,marginBottom:-6},"$vertical &$disabled":{marginLeft:-3,marginBottom:-4}},thumbColorPrimary:{},thumbColorSecondary:{"&$focusVisible,&:hover":{boxShadow:"0px 0px 0px 8px ".concat(Object(u.a)(e.palette.secondary.main,.16))},"&$active":{boxShadow:"0px 0px 0px 14px ".concat(Object(u.a)(e.palette.secondary.main,.16))}},active:{},focusVisible:{},valueLabel:{left:"calc(-50% - 4px)"},mark:{position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor"},markActive:{backgroundColor:e.palette.background.paper,opacity:.8},markLabel:Object(o.a)({},e.typography.body2,{color:e.palette.text.secondary,position:"absolute",top:26,transform:"translateX(-50%)",whiteSpace:"nowrap","$vertical &":{top:"auto",left:26,transform:"translateY(50%)"},"@media (pointer: coarse)":{top:40,"$vertical &":{left:31}}}),markLabelActive:{color:e.palette.text.primary}}}),{name:"MuiSlider"})(R)},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(195),A(13),A(39)),a=A(69),s=A(19),g=A(28),c=A(289),u=i.forwardRef((function(e,t){var A=e.children,o=e.classes,a=e.className,g=e.component,u=void 0===g?"ul":g,l=e.dense,I=void 0!==l&&l,C=e.disablePadding,h=void 0!==C&&C,f=e.subheader,d=Object(r.a)(e,["children","classes","className","component","dense","disablePadding","subheader"]),B=i.useMemo((function(){return{dense:I}}),[I]);return i.createElement(c.a.Provider,{value:B},i.createElement(u,Object(n.a)({className:Object(s.a)(o.root,a,I&&o.dense,!h&&o.padding,f&&o.subheader),ref:t},d),f,A))})),l=Object(g.a)({root:{listStyle:"none",margin:0,padding:0,position:"relative"},padding:{paddingTop:8,paddingBottom:8},dense:{},subheader:{paddingTop:0}},{name:"MuiList"})(u),I=A(414),C=A(51);function h(e,t,A){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:A?null:e.firstChild}function f(e,t,A){return e===t?A?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:A?null:e.lastChild}function d(e,t){if(void 0===t)return!0;var A=e.innerText;return void 0===A&&(A=e.textContent),0!==(A=A.trim().toLowerCase()).length&&(t.repeating?A[0]===t.keys[0]:0===A.indexOf(t.keys.join("")))}function B(e,t,A,n,r,i){for(var o=!1,a=r(e,t,!!t&&A);a;){if(a===e.firstChild){if(o)return;o=!0}var s=!n&&(a.disabled||"true"===a.getAttribute("aria-disabled"));if(a.hasAttribute("tabindex")&&d(a,i)&&!s)return void a.focus();a=r(e,a,A)}}var p="undefined"===typeof window?i.useEffect:i.useLayoutEffect,E=i.forwardRef((function(e,t){var A=e.actions,s=e.autoFocus,g=void 0!==s&&s,c=e.autoFocusItem,u=void 0!==c&&c,E=e.children,Q=e.className,y=e.disabledItemsFocusable,v=void 0!==y&&y,m=e.disableListWrap,b=void 0!==m&&m,w=e.onKeyDown,S=e.variant,F=void 0===S?"selectedMenu":S,R=Object(r.a)(e,["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"]),D=i.useRef(null),G=i.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});p((function(){g&&D.current.focus()}),[g]),i.useImperativeHandle(A,(function(){return{adjustStyleForScrollbar:function(e,t){var A=!D.current.style.width;if(e.clientHeight<D.current.clientHeight&&A){var n="".concat(Object(I.a)(!0),"px");D.current.style["rtl"===t.direction?"paddingLeft":"paddingRight"]=n,D.current.style.width="calc(100% + ".concat(n,")")}return D.current}}}),[]);var k=i.useCallback((function(e){D.current=o.findDOMNode(e)}),[]),x=Object(C.a)(k,t),N=-1;i.Children.forEach(E,(function(e,t){i.isValidElement(e)&&(e.props.disabled||("selectedMenu"===F&&e.props.selected||-1===N)&&(N=t))}));var U=i.Children.map(E,(function(e,t){if(t===N){var A={};return u&&(A.autoFocus=!0),void 0===e.props.tabIndex&&"selectedMenu"===F&&(A.tabIndex=0),i.cloneElement(e,A)}return e}));return i.createElement(l,Object(n.a)({role:"menu",ref:x,className:Q,onKeyDown:function(e){var t=D.current,A=e.key,n=Object(a.a)(t).activeElement;if("ArrowDown"===A)e.preventDefault(),B(t,n,b,v,h);else if("ArrowUp"===A)e.preventDefault(),B(t,n,b,v,f);else if("Home"===A)e.preventDefault(),B(t,null,b,v,h);else if("End"===A)e.preventDefault(),B(t,null,b,v,f);else if(1===A.length){var r=G.current,i=A.toLowerCase(),o=performance.now();r.keys.length>0&&(o-r.lastTime>500?(r.keys=[],r.repeating=!0,r.previousKeyMatched=!0):r.repeating&&i!==r.keys[0]&&(r.repeating=!1)),r.lastTime=o,r.keys.push(i);var s=n&&!r.repeating&&d(n,r);r.previousKeyMatched&&(s||B(t,n,!1,v,h,r))?e.preventDefault():r.previousKeyMatched=!1}w&&w(e)},tabIndex:g?0:-1},R),U)}));t.a=E},function(e,t,A){"use strict";var n=A(14),r=A(21),i=A(0),o=(A(13),A(19)),a=A(166),s=A(167),g=A(28),c=A(40),u=i.forwardRef((function(e,t){var A=e.children,g=e.classes,u=e.className,l=(e.color,e.component),I=void 0===l?"label":l,C=(e.disabled,e.error,e.filled,e.focused,e.required,Object(r.a)(e,["children","classes","className","color","component","disabled","error","filled","focused","required"])),h=Object(s.a)(),f=Object(a.a)({props:e,muiFormControl:h,states:["color","required","focused","disabled","error","filled"]});return i.createElement(I,Object(n.a)({className:Object(o.a)(g.root,g["color".concat(Object(c.a)(f.color||"primary"))],u,f.disabled&&g.disabled,f.error&&g.error,f.filled&&g.filled,f.focused&&g.focused,f.required&&g.required),ref:t},C),A,f.required&&i.createElement("span",{"aria-hidden":!0,className:Object(o.a)(g.asterisk,f.error&&g.error)},"\u2009","*"))})),l=Object(g.a)((function(e){return{root:Object(n.a)({color:e.palette.text.secondary},e.typography.body1,{lineHeight:1,padding:0,"&$focused":{color:e.palette.primary.main},"&$disabled":{color:e.palette.text.disabled},"&$error":{color:e.palette.error.main}}),colorSecondary:{"&$focused":{color:e.palette.secondary.main}},focused:{},disabled:{},error:{},filled:{},required:{},asterisk:{"&$error":{color:e.palette.error.main}}}}),{name:"MuiFormLabel"})(u),I=i.forwardRef((function(e,t){var A=e.classes,g=e.className,c=e.disableAnimation,u=void 0!==c&&c,I=(e.margin,e.shrink),C=(e.variant,Object(r.a)(e,["classes","className","disableAnimation","margin","shrink","variant"])),h=Object(s.a)(),f=I;"undefined"===typeof f&&h&&(f=h.filled||h.focused||h.adornedStart);var d=Object(a.a)({props:e,muiFormControl:h,states:["margin","variant"]});return i.createElement(l,Object(n.a)({"data-shrink":f,className:Object(o.a)(A.root,g,h&&A.formControl,!u&&A.animated,f&&A.shrink,"dense"===d.margin&&A.marginDense,{filled:A.filled,outlined:A.outlined}[d.variant]),classes:{focused:A.focused,disabled:A.disabled,error:A.error,required:A.required,asterisk:A.asterisk},ref:t},C))}));t.a=Object(g.a)((function(e){return{root:{display:"block",transformOrigin:"top left"},focused:{},disabled:{},error:{},required:{},asterisk:{},formControl:{position:"absolute",left:0,top:0,transform:"translate(0, 24px) scale(1)"},marginDense:{transform:"translate(0, 21px) scale(1)"},shrink:{transform:"translate(0, 1.5px) scale(0.75)",transformOrigin:"top left"},animated:{transition:e.transitions.create(["color","transform"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})},filled:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 20px) scale(1)","&$marginDense":{transform:"translate(12px, 17px) scale(1)"},"&$shrink":{transform:"translate(12px, 10px) scale(0.75)","&$marginDense":{transform:"translate(12px, 7px) scale(0.75)"}}},outlined:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 20px) scale(1)","&$marginDense":{transform:"translate(14px, 12px) scale(1)"},"&$shrink":{transform:"translate(14px, -6px) scale(0.75)"}}}}),{name:"MuiInputLabel"})(I)}]]); -//# sourceMappingURL=2.eb2fd6ea.chunk.js.map \ No newline at end of file
--- a/static/js/2.eb2fd6ea.chunk.js.LICENSE.txt Thu May 30 17:24:44 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,163 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/* Copyright 2015-2018 Esri. 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 @preserve */ - -/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames - */ - -/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ - -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh <http://feross.org> - * @license MIT - */ - -/*! - * https://github.com/Starcounter-Jack/JSON-Patch - * (c) 2017 Joachim Wester - * MIT license - */ - -/*! ***************************************************************************** -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. -***************************************************************************** */ - -/*! Hammer.JS - v2.0.7 - 2016-04-22 - * http://hammerjs.github.io/ - * - * Copyright (c) 2016 Jorik Tangelder; - * Licensed under the MIT license */ - -/** - * splaytree v3.1.0 - * Fast Splay tree for Node and browser - * - * @author Alexander Milevski <info@w8r.name> - * @license MIT - * @preserve - */ - -/** - * @license Complex.js v2.0.11 11/02/2016 - * - * Copyright (c) 2016, Robert Eisele (robert@xarg.org) - * Dual licensed under the MIT or GPL Version 2 licenses. - **/ - -/** - * @license Fraction.js v4.0.12 09/09/2015 - * http://www.xarg.org/2014/03/rational-numbers-in-javascript/ - * - * Copyright (c) 2015, Robert Eisele (robert@xarg.org) - * Dual licensed under the MIT or GPL Version 2 licenses. - **/ - -/** - * @license long.js (c) 2013 Daniel Wirtz <dcode@dcode.io> - * Released under the Apache License, Version 2.0 - * see: https://github.com/dcodeIO/long.js for details - */ - -/** - * A better abstraction over CSS. - * - * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present - * @website https://github.com/cssinjs/jss - * @license MIT - */ - -/** @license React v0.19.1 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.14.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.14.0 - * react-jsx-dev-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.14.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ - -/**! - * @fileOverview Kickass library to create and place poppers near their reference elements. - * @version 1.16.1-lts - * @license - * Copyright (c) 2016 Federico Zivolo and contributors - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */
--- a/static/js/2.eb2fd6ea.chunk.js.map Thu May 30 17:24:44 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"version":3,"sources":["../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/vega-util/build/vega-util.module.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/prop-types/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../../../../src/utils/log.js","../../../../src/utils/device-pixels.js","../../../../src/context/context.js","../../../src/index.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../src/utils/assert.js","../node_modules/gl-matrix/esm/mat4.js","../node_modules/@material-ui/styles/esm/withStyles/withStyles.js","../node_modules/@material-ui/core/esm/styles/withStyles.js","../node_modules/gl-matrix/esm/vec3.js","../node_modules/@math.gl/core/node_modules/gl-matrix/esm/common.js","../node_modules/gl-matrix/esm/common.js","../../../../src/lib/common.js","../../../../src/lib/validators.js","../node_modules/gl-matrix/esm/quat.js","../../../../../src/effects/lighting/point-light.js","../../../../../src/effects/lighting/camera-light.js","../../../../../src/effects/lighting/suncalc.js","../../../../../src/effects/lighting/sun-light.js","../../../../src/passes/screen-pass.js","../../../../src/effects/post-process-effect.js","../../../../src/viewports/globe-viewport.js","../../../../src/controllers/first-person-controller.js","../../../../src/views/first-person-view.js","../../../../src/controllers/globe-controller.js","../../../../src/views/globe-view.js","../../../../src/transitions/viewport-fly-to-interpolator.js","../../../../src/lib/constants.js","../node_modules/lodash/isEqual.js","../node_modules/react-dom/index.js","../node_modules/@material-ui/core/esm/utils/capitalize.js","../node_modules/@math.gl/web-mercator/node_modules/gl-matrix/esm/common.js","../node_modules/@math.gl/web-mercator/node_modules/gl-matrix/esm/vec4.js","../../../src/math-utils.js","../node_modules/@math.gl/web-mercator/node_modules/gl-matrix/esm/mat4.js","../node_modules/@math.gl/web-mercator/node_modules/gl-matrix/esm/vec2.js","../node_modules/@math.gl/web-mercator/node_modules/gl-matrix/esm/vec3.js","../../../src/assert.js","../../../src/web-mercator-utils.js","../../../src/fit-bounds.js","../../../src/get-bounds.js","../../../src/web-mercator-viewport.js","../../../src/normalize-viewport-props.js","../../../src/fly-to-viewport.js","../../../../src/geometries/truncated-cone-geometry.js","../../../../src/geometries/cone-geometry.js","../../../../src/geometries/cylinder-geometry.js","../../../../src/geometries/ico-sphere-geometry.js","../../../../src/geometries/plane-geometry.js","../../../../src/geometry/geometry-utils.js","../../../../src/geometries/sphere-geometry.js","../../../../../src/modules/fp64/fp64-utils.js","../../../../../src/modules/fp64/fp64-arithmetic.glsl.js","../../../../../src/modules/fp64/fp64.js","../../../../../src/modules/fp64/fp64-functions.glsl.js","../../../../../src/modules/project/project.js","../../../../../src/modules/dirlight/dirlight.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/vega-time/node_modules/d3-time/src/interval.js","../node_modules/vega-time/node_modules/d3-time/src/duration.js","../node_modules/vega-time/node_modules/d3-time/src/day.js","../node_modules/vega-time/node_modules/d3-time/src/week.js","../node_modules/vega-time/node_modules/d3-time/src/utcDay.js","../node_modules/vega-time/node_modules/d3-time/src/utcWeek.js","../node_modules/vega-time/node_modules/d3-time/src/year.js","../node_modules/vega-time/node_modules/d3-time/src/month.js","../node_modules/vega-time/node_modules/d3-time/src/hour.js","../node_modules/vega-time/node_modules/d3-time/src/minute.js","../node_modules/vega-time/node_modules/d3-time/src/second.js","../node_modules/vega-time/node_modules/d3-time/src/millisecond.js","../node_modules/vega-time/node_modules/d3-time/src/utcYear.js","../node_modules/vega-time/node_modules/d3-time/src/utcMonth.js","../node_modules/vega-time/node_modules/d3-time/src/utcHour.js","../node_modules/vega-time/node_modules/d3-time/src/utcMinute.js","../node_modules/vega-time/node_modules/d3-array/src/bisector.js","../node_modules/vega-time/node_modules/d3-array/src/ascending.js","../node_modules/vega-time/node_modules/d3-array/src/ticks.js","../node_modules/vega-time/build/vega-time.module.js","../../src/core/indexing.ts","../../src/compression/registry.ts","../../src/mutableMapping.ts","../../src/errors.ts","../../src/core/slice.ts","../../src/util.ts","../../src/storage/index.ts","../../src/names.ts","../../src/metadata.ts","../../src/attributes.ts","../../src/nestedArray/types.ts","../../src/nestedArray/ops.ts","../../src/nestedArray/index.ts","../../src/rawArray/ops.ts","../../src/rawArray/index.ts","../../node_modules/eventemitter3/index.js","../../node_modules/p-timeout/index.js","../../node_modules/p-finally/index.js","../../node_modules/p-queue/dist/lower-bound.js","../../src/storage/httpStore.ts","../../node_modules/p-queue/dist/priority-queue.js","../../node_modules/p-queue/dist/index.js","../../src/core/index.ts","../../src/storage/memoryStore.ts","../../src/creation.ts","../../src/hierarchy.ts","../node_modules/reactcss/lib/index.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@material-ui/core/esm/utils/useForkRef.js","../node_modules/rc-tree/es/util.js","../node_modules/@hms-dbmi/viv/node_modules/quickselect/index.js","../node_modules/@petamoriken/float16/src/is.js","../node_modules/@petamoriken/float16/src/lib.js","../node_modules/@petamoriken/float16/src/dataView.js","../node_modules/txml/dist/txml.mjs","../node_modules/geotiff/src/globals.js","../node_modules/geotiff/src/rgb.js","../node_modules/geotiff/src/predictor.js","../node_modules/lzw-tiff-decoder/index.mjs","../node_modules/geotiff/src/compression/basedecoder.js","../node_modules/geotiff/src/compression/raw.js","../node_modules/geotiff/src/compression/lzw.js","../node_modules/geotiff/src/compression/jpeg.js","../node_modules/geotiff/node_modules/pako/dist/pako.esm.mjs","../node_modules/geotiff/src/compression/deflate.js","../node_modules/geotiff/src/compression/packbits.js","../node_modules/geotiff/src/compression/lerc.js","../node_modules/geotiff/src/compression/index.js","../node_modules/geotiff/src/resample.js","../node_modules/geotiff/src/geotiffimage.js","../node_modules/geotiff/src/dataview64.js","../node_modules/geotiff/src/dataslice.js","../node_modules/geotiff/src/source/httputils.js","../node_modules/geotiff/src/source/blockedsource.js","../node_modules/geotiff/src/source/client/fetch.js","../node_modules/geotiff/src/source/client/xhr.js","../node_modules/geotiff/src/source/remote.js","../node_modules/geotiff/src/source/arraybuffer.js","../node_modules/geotiff/src/source/filereader.js","../node_modules/geotiff/src/geotiffwriter.js","../node_modules/geotiff/src/geotiff.js","../node_modules/@hms-dbmi/viv/dist/viv.es.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../../../../src/javascript-utils/is-type.ts","../node_modules/gl-matrix/esm/vec4.js","../node_modules/geotiff/src/utils.js","../node_modules/gl-matrix/esm/mat3.js","../node_modules/@turf/helpers/index.js","../node_modules/@material-ui/core/esm/styles/colorManipulator.js","../node_modules/classnames/index.js","../node_modules/probe.gl/env.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@material-ui/core/esm/utils/useEventCallback.js","../node_modules/@math.gl/core/node_modules/gl-matrix/esm/vec3.js","../node_modules/@material-ui/core/esm/utils/ownerDocument.js","../node_modules/gl-matrix/esm/vec2.js","../../node_modules/numcodecs/pako.esm-9240ff4b.mjs","../../node_modules/numcodecs/gzip.mjs","../../node_modules/numcodecs/zlib.mjs","../../node_modules/numcodecs/utils-6b0080f1.mjs","../../node_modules/numcodecs/blosc.mjs","../../src/zarr.ts","../../../../src/utils/webgl-checks.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/react-color/lib/components/common/index.js","../../../../src/column-layer/grid-cell-layer.js","../../../../../src/lib/path-utils/path.ts","../../../src/index.ts","../../../../src/debug/index.js","../../../../src/lifecycle/constants.js","../../../src/lib/geojson-edit-mode.ts","../../../../src/classes/buffer.js","../../../src/constants.js","../../../../src/lib/assert.js","../../../../../src/classes/base/math-array.js","../../../../../src/classes/base/vector.js","../../../../src/lib/gl-matrix-extras.js","../../../../src/classes/vector3.js","../../../../../src/lib/bounding-volumes/axis-aligned-bounding-box.js","../../../../../src/lib/bounding-volumes/bounding-sphere.js","../../../../../src/classes/base/matrix.js","../../../../src/classes/matrix3.js","../../../../src/classes/quaternion.js","../../../../../src/lib/bounding-volumes/oriented-bounding-box.js","../../../../src/lib/plane.js","../../../../src/lib/culling-volume.js","../../../../src/classes/matrix4.js","../../../../src/lib/perspective-off-center-frustum.js","../../../../../src/lib/algorithms/bounding-sphere-from-points.js","../../../../src/lib/math-utils.js","../../../../../src/lib/algorithms/compute-eigen-decomposition.js","../../../../../src/lib/algorithms/bounding-box-from-points.js","../node_modules/lodash/range.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../../src/utils/math-utils.js","../node_modules/webpack/buildin/global.js","../node_modules/lodash/clamp.js","../../../src/polygon-utils.js","../../../src/earcut.js","../../../src/utils.js","../../../src/lineclip.js","../../../src/cut-by-grid.js","../../../src/cut-by-mercator-bounds.js","../node_modules/process/browser.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../../../../src/classes/resource.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/@math.gl/core/node_modules/gl-matrix/esm/vec4.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../../src/viewports/viewport.js","../node_modules/babel-runtime/helpers/defineProperty.js","../../src/utils.ts","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/jss/dist/jss.esm.js","../node_modules/@babel/runtime/helpers/extends.js","../../../../src/utils/array-utils.js","../../../../../src/lib/attribute/attribute-transition-utils.js","../node_modules/@turf/invariant/index.js","../node_modules/vega-embed/node_modules/semver/classes/semver.js","../node_modules/lodash/debounce.js","../../../../src/utils/utils.js","../../../../src/webgl-utils/constants-to-keys.js","../node_modules/complex.js/complex.js","../node_modules/lodash/isArray.js","../node_modules/@turf/distance/index.js","../node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","../node_modules/@material-ui/core/esm/utils/createSvgIcon.js","../node_modules/@material-ui/core/esm/styles/useTheme.js","../../../../../src/lib/env-utils/assert.ts","../../../../src/utils/iterable-utils.js","../node_modules/d3-time/src/interval.js","../../../../src/webgl-utils/typed-array-utils.js","../../../../src/tile-layer/tile-2d-traversal.js","../../../../src/tile-layer/utils.js","../node_modules/ajv/lib/ajv.js","../../libh3-browser.js","../../../lib/bindings.js","../../../lib/h3core.js","../node_modules/lodash/merge.js","../../../../src/classes/texture.js","../node_modules/@math.gl/core/node_modules/gl-matrix/esm/mat3.js","../node_modules/lodash/isObject.js","../node_modules/webpack/buildin/amd-define.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/vega-format/node_modules/d3-array/src/ticks.js","../node_modules/vega-format/node_modules/d3-format/src/formatSpecifier.js","../node_modules/vega-format/node_modules/d3-format/src/formatDecimal.js","../node_modules/vega-format/node_modules/d3-format/src/exponent.js","../node_modules/vega-format/node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/vega-format/node_modules/d3-format/src/defaultLocale.js","../node_modules/vega-format/node_modules/d3-format/src/formatRounded.js","../node_modules/vega-format/node_modules/d3-format/src/formatTypes.js","../node_modules/vega-format/node_modules/d3-format/src/identity.js","../node_modules/vega-format/node_modules/d3-format/src/locale.js","../node_modules/vega-format/node_modules/d3-format/src/formatGroup.js","../node_modules/vega-format/node_modules/d3-format/src/formatNumerals.js","../node_modules/vega-format/node_modules/d3-format/src/formatTrim.js","../node_modules/vega-format/node_modules/d3-time-format/src/locale.js","../node_modules/vega-format/node_modules/d3-time-format/src/defaultLocale.js","../node_modules/vega-format/build/vega-format.module.js","../node_modules/vega-format/node_modules/d3-format/src/precisionPrefix.js","../node_modules/vega-format/node_modules/d3-format/src/precisionRound.js","../node_modules/vega-format/node_modules/d3-format/src/precisionFixed.js","../../../../src/env/globals.js","../../../../src/controllers/controller.js","../../../../src/utils/positions.js","../../../../src/views/view.js","../../../../src/geometry/geometry.js","../node_modules/@material-ui/core/esm/utils/setRef.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../../src/classes/accessor.js","../node_modules/lodash/_root.js","../node_modules/@turf/meta/index.js","../node_modules/react-color/lib/helpers/color.js","../node_modules/@turf/bearing/index.js","../node_modules/vega-embed/node_modules/semver/functions/compare.js","../node_modules/vega-embed/node_modules/semver/classes/range.js","../node_modules/fast-deep-equal/index.js","../../../../src/utils/flatten.js","../node_modules/@material-ui/core/esm/utils/debounce.js","../node_modules/uuid/v4.js","../../../../src/utils/typed-array-manager.js","../node_modules/@material-ui/core/esm/transitions/utils.js","../../../../src/state-tracker/webgl-parameter-tables.js","../node_modules/lodash/isObjectLike.js","../node_modules/webpack/buildin/module.js","../node_modules/@material-ui/core/esm/utils/deprecatedPropType.js","../../../src/lib/immutable-feature-collection.ts","../../../../src/state-tracker/track-context-state.js","../node_modules/@material-ui/core/esm/utils/useControlled.js","../../../../src/classes/framebuffer.js","../../../../src/transitions/transition.js","../../../../src/utils/deep-equal.js","../node_modules/geotiff/src/source/basesource.js","../node_modules/@material-ui/core/esm/utils/createChainedFunction.js","../node_modules/@material-ui/core/esm/FormControl/formControlState.js","../node_modules/@material-ui/core/esm/FormControl/useFormControl.js","../node_modules/d3-time/src/duration.js","../../../../../src/lib/env-utils/globals.ts","../node_modules/fast-xml-parser/src/util.js","../../../../src/utils/memoize.js","../node_modules/@material-ui/system/esm/merge.js","../../../../src/webgl-utils/attribute-utils.js","../../../../../src/lib/loader-utils/normalize-loader.ts","../node_modules/vega-loader/build/vega-loader.browser.module.js","../../../../../src/lib/fetch/fetch-file.ts","../../../../../src/lib/loader-utils/loggers.ts","../../../../../src/lib/loader-utils/option-defaults.ts","../../../../../src/lib/loader-utils/option-utils.ts","../node_modules/@turf/rhumb-destination/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/rhumb-destination/dist/es/index.js","../node_modules/@turf/rhumb-destination/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@math.gl/core/node_modules/gl-matrix/esm/vec2.js","../node_modules/geotiff/src/source/client/base.js","../node_modules/raf/index.js","../../../../src/classes/texture-formats.js","../../src/index.ts","../node_modules/buffer/index.js","../node_modules/core-js/library/modules/_global.js","../node_modules/core-js/library/modules/_core.js","../node_modules/core-js/library/modules/_descriptors.js","../node_modules/lodash/map.js","../../../../../src/lib/binary-utils/array-buffer-utils.ts","../node_modules/react-is/index.js","../../../../src/state-tracker/unified-parameter-api.js","../../../../src/classes/euler.js","../../../../src/lib/effect.js","../../../../src/passes/layers-pass.js","../node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js","../node_modules/@material-ui/core/esm/utils/ownerWindow.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@material-ui/core/esm/styles/defaultTheme.js","../node_modules/@material-ui/core/esm/utils/isMuiElement.js","../node_modules/@turf/clone/dist/es/index.js","../../../../../src/lib/utils/mime-type-utils.ts","../../../../../src/lib/utils/resource-utils.ts","../node_modules/lodash/_getNative.js","../node_modules/lodash/_baseGetTag.js","../node_modules/core-js/library/modules/_object-dp.js","../node_modules/core-js/library/modules/_has.js","../../../../../src/lib/binary-utils/buffer-utils.ts","../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../../../src/effects/lighting/directional-light.js","../../../../../src/shaderlib/misc/geometry.js","../../../../../src/shaderlib/project/project.glsl.js","../../../../../src/shaderlib/project/project.js","../../../../src/tile-layer/tile-2d-header.js","../../../../src/tile-layer/tileset-2d.js","../../../../src/tile-layer/tile-layer.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@material-ui/core/esm/styles/transitions.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncIterator.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/@material-ui/core/esm/FormControl/FormControlContext.js","../node_modules/@material-ui/core/esm/InputBase/utils.js","../../../../src/utils/load-file.js","../../../../src/classes/texture-2d.js","../node_modules/is-in-browser/dist/module.js","../../../../../src/lib/utils/response-utils.ts","../node_modules/lodash/cloneDeep.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/warning/warning.js","../../../../src/classes/renderbuffer-formats.js","../../../../src/classes/renderbuffer.js","../node_modules/zustand/index.js","../../../../src/utils/globals.js","../node_modules/fraction.js/fraction.js","../node_modules/javascript-natural-sort/naturalSort.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/isArrayLike.js","../node_modules/react-grid-layout/build/utils.js","../node_modules/ajv/lib/compile/util.js","../node_modules/@babel/runtime/helpers/typeof.js","../../../../../src/lib/path-utils/file-aliases.ts","../node_modules/webpack/buildin/amd-options.js","../node_modules/core-js/library/modules/_export.js","../node_modules/core-js/library/modules/_hide.js","../node_modules/core-js/library/modules/_is-object.js","../node_modules/core-js/library/modules/_to-iobject.js","../node_modules/core-js/library/modules/_wks.js","../node_modules/@turf/bbox/index.js","../node_modules/vega-embed/node_modules/semver/internal/re.js","../node_modules/vega-embed/node_modules/semver/functions/parse.js","../node_modules/@turf/bbox-polygon/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/bbox-polygon/dist/es/index.js","../../../../src/viewports/web-mercator-viewport.js","../../../../src/controllers/orbit-controller.js","../../../../src/transitions/transition-interpolator.js","../../../../src/controllers/map-controller.js","../../../../src/solid-polygon-layer/polygon-tesselator.js","../../../../src/solid-polygon-layer/solid-polygon-layer-vertex-main.glsl.js","../../../../src/solid-polygon-layer/solid-polygon-layer-vertex-top.glsl.js","../../../../src/solid-polygon-layer/solid-polygon-layer-vertex-side.glsl.js","../../../../src/solid-polygon-layer/solid-polygon-layer.js","../../../../src/solid-polygon-layer/solid-polygon-layer-fragment.glsl.js","../../../../src/path-layer/path-tesselator.js","../../../../src/path-layer/path.js","../../../../src/path-layer/path-layer.js","../../../../src/path-layer/path-layer-vertex.glsl.js","../../../../src/path-layer/path-layer-fragment.glsl.js","../../../../src/icon-layer/icon-manager.js","../../../../src/icon-layer/icon-layer.js","../../../../src/icon-layer/icon-layer-vertex.glsl.js","../../../../src/icon-layer/icon-layer-fragment.glsl.js","../node_modules/@turf/center/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/center/node_modules/@turf/meta/dist/es/index.js","../node_modules/@turf/center/node_modules/@turf/bbox/dist/es/index.js","../node_modules/@turf/center/dist/es/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/fast-json-stable-stringify/index.js","../../../../../src/shaderlib/project/viewport-uniforms.js","../../../../src/controllers/view-state.js","../../../../../src/shaderlib/shadow/shadow.js","../node_modules/decimal.js/decimal.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/polygon-clipping/dist/polygon-clipping.umd.js","../node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js","../node_modules/@turf/rhumb-distance/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/rhumb-distance/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/rhumb-distance/dist/es/index.js","../node_modules/@math.gl/core/node_modules/gl-matrix/esm/mat4.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/@material-ui/core/esm/List/ListContext.js","../node_modules/long/dist/long.js","../../../../src/utils/matrix.js","../node_modules/react/jsx-dev-runtime.js","../../../../src/polyfill/get-parameter-polyfill.js","../../../../src/polyfill/polyfill-table.js","../node_modules/lodash/eq.js","../node_modules/lodash/keys.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/lodash/_copyObject.js","../node_modules/core-js/library/modules/_an-object.js","../node_modules/core-js/library/modules/_fails.js","../node_modules/@turf/destination/index.js","../../../src/lib/nebula-layer.ts","../../../src/lib/two-click-polygon-mode.ts","../node_modules/@turf/centroid/index.js","../node_modules/@turf/boolean-point-in-polygon/index.js","../../../../../src/lib/binary-utils/get-first-characters.ts","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../../../../src/utils/hi-res-timestamp.js","../../../../src/lifecycle/props.js","../../../../src/controllers/transition-manager.js","../../../../src/transitions/linear-interpolator.js","../node_modules/rc-animate/es/util/motion.js","../node_modules/rc-animate/es/CSSMotion.js","../node_modules/rc-tree/es/TreeNode.js","../../../../src/passes/shadow-pass.js","../../../../../src/effects/lighting/lighting-effect.js","../node_modules/@math.gl/core/node_modules/gl-matrix/esm/quat.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../../../src/utils/check-props.js","../../../../../src/shaderlib/project/project-functions.js","../../../../../src/lib/utils/globals.ts","../../../../src/solid-polygon-layer/polygon.js","../node_modules/lodash/isNil.js","../node_modules/rc-tree/es/contextTypes.js","../../../../../src/modules/lights/lights.glsl.js","../../../../../src/modules/lights/lights.js","../../../src/init.js","../node_modules/hammerjs/hammer.js","../../node_modules/numcodecs/pako.esm-ef1fc3f4.mjs","../node_modules/lodash/_Stack.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_getTag.js","../node_modules/react-grid-layout/node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/lodash/isSymbol.js","../../../../src/classes/spherical-coordinates.js","../../../../src/classes/pose.js","../node_modules/fast-xml-parser/src/xmlstr2xmlnode.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/identity.js","../node_modules/core-js/library/modules/_property-desc.js","../node_modules/core-js/library/modules/_object-keys.js","../node_modules/core-js/library/modules/_library.js","../node_modules/core-js/library/modules/_uid.js","../node_modules/core-js/library/modules/_object-pie.js","../node_modules/lodash/_toKey.js","../node_modules/@turf/line-intersect/index.js","../../../../../src/lib/binary-utils/memory-copy-utils.ts","../../../src/lib/utils.ts","../node_modules/vega-embed/node_modules/semver/internal/constants.js","../node_modules/vega-embed/node_modules/semver/internal/debug.js","../node_modules/vega-embed/node_modules/semver/internal/parse-options.js","../node_modules/vega-embed/node_modules/semver/functions/gt.js","../node_modules/vega-embed/node_modules/semver/classes/comparator.js","../node_modules/vega-embed/node_modules/semver/functions/satisfies.js","../node_modules/@turf/difference/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/difference/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/difference/dist/es/index.js","../../../../../src/lib/env-utils/version.ts","../../../../src/utils/shader.js","../../../../src/utils/count.js","../../../../src/controllers/orthographic-controller.js","../../../../src/views/map-view.js","../../../../src/shaderlib/index.js","../../../../../src/effects/lighting/ambient-light.js","../../../../src/transitions/cpu-interpolation-transition.js","../../../../src/transitions/cpu-spring-transition.js","../../../../src/lib/uniform-transition-manager.js","../../../../src/utils/texture.js","../../../../src/lifecycle/prop-types.js","../../../../src/lifecycle/create-props.js","../../../../src/lifecycle/component-state.js","../../../../src/lifecycle/component.js","../../../../src/lib/layer-state.js","../../../../src/lib/layer.js","../../../../../src/lib/attribute/shader-attribute.js","../../../../../src/lib/attribute/data-column.js","../../../../../src/lib/attribute/gl-utils.js","../../../../src/utils/range.js","../../../../../src/lib/attribute/attribute.js","../../../../src/transitions/gpu-interpolation-transition.js","../../../../../src/lib/attribute/attribute-transition-manager.js","../../../../src/transitions/gpu-spring-transition.js","../../../../../src/lib/attribute/attribute-manager.js","../../../../src/text-layer/utils.js","../../../../src/text-layer/lru-cache.js","../../../../src/text-layer/font-atlas-manager.js","../../../../src/text-layer/text-layer.js","../../../../src/column-layer/column-geometry.js","../../../../src/column-layer/column-layer.js","../../../../src/column-layer/column-layer-vertex.glsl.js","../../../../src/column-layer/column-layer-fragment.glsl.js","../../../../src/scatterplot-layer/scatterplot-layer.js","../../../../src/scatterplot-layer/scatterplot-layer-vertex.glsl.js","../../../../src/scatterplot-layer/scatterplot-layer-fragment.glsl.js","../../../../../src/text-layer/text-background-layer/text-background-layer.js","../../../../../src/text-layer/text-background-layer/text-background-layer-vertex.glsl.js","../../../../../src/text-layer/text-background-layer/text-background-layer-fragment.glsl.js","../../../../../src/lib/resource/resource.js","../../../../../src/lib/resource/resource-manager.js","../../../../src/lib/layer-manager.js","../../../../../src/text-layer/multi-icon-layer/multi-icon-layer.js","../../../../../src/text-layer/multi-icon-layer/multi-icon-layer-fragment.glsl.js","../../../../src/passes/draw-layers-pass.js","../../../../src/lib/deck-renderer.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@material-ui/system/esm/breakpoints.js","../node_modules/@material-ui/core/esm/styles/zIndex.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../../../src/env/is-browser.js","../../../../src/env/is-electron.js","../../../../src/utils/stub-methods.js","../../../../../src/lib/category-api/binary-image-api.ts","../../../../src/passes/pass.js","../../../../src/passes/pick-layers-pass.js","../node_modules/tinycolor2/tinycolor.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/@material-ui/core/esm/utils/getScrollbarSize.js","../node_modules/react-virtualized/dist/es/vendor/detectElementResize.js","../node_modules/babel-runtime/helpers/objectWithoutProperties.js","../node_modules/@material-ui/core/esm/Table/TableContext.js","../node_modules/@material-ui/core/esm/Accordion/AccordionContext.js","../node_modules/@material-ui/icons/Add.js","../node_modules/vega-tooltip/build/vega-tooltip.module.js","../../../src/draco-loader.ts","../../../../../src/lib/utils/version.ts","../../../../../src/category/mesh/mesh-utils.ts","../../../../../src/lib/schema/impl/schema.ts","../../../../../src/lib/utils/assert.ts","../../../../../src/lib/schema/impl/enum.ts","../../../../../src/lib/schema/impl/type.ts","../../../../../src/lib/schema/impl/field.ts","../../../../../src/lib/utils/schema-attribute-utils.ts","../../../../../src/lib/schema-utils/type-utils.ts","../../../../src/lib/draco-parser.ts","../../../../../src/lib/library-utils/library-utils.ts","../../../../src/lib/draco-module-loader.ts","../../../../src/utils/array-utils-flat.js","../../../../src/env/get-browser.js","../../../../src/classes/vertex-array-object.js","../../../../src/classes/vertex-array.js","../../../../src/utils/format-value.js","../../../../src/debug/debug-vertex-array.js","../../../../src/debug/debug-uniforms.js","../../../../src/debug/debug-program-configuration.js","../../../../src/lib/model-utils.js","../../../../src/lib/model.js","../../../../src/lib/stat.js","../../../../src/lib/stats.js","../node_modules/@turf/rhumb-bearing/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/rhumb-bearing/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/rhumb-bearing/dist/es/index.js","../node_modules/rc-tree/es/Tree.js","../node_modules/rc-tree/es/index.js","../node_modules/@material-ui/core/esm/colors/grey.js","../../../../src/features/webgl-features-table.js","../../../../src/classes/clear.js","../node_modules/turf-jsts/jsts.min.js","../node_modules/json-stringify-pretty-compact/index.js","../../../../src/lib/inject-shader.js","../../../../src/modules/module-injectors.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@material-ui/core/esm/ButtonBase/Ripple.js","../node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js","../node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js","../node_modules/object-assign/index.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_Map.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash.isequal/index.js","../node_modules/react-grid-layout/node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/lodash/toNumber.js","../node_modules/ajv/lib/compile/resolve.js","../node_modules/ajv/lib/compile/error_classes.js","../../../../../src/lib/iterators/async-iteration.ts","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/@material-ui/core/esm/utils/requirePropFactory.js","../node_modules/@material-ui/core/esm/utils/unsupportedProp.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/isArrayLikeObject.js","../node_modules/lodash/_arrayMap.js","../node_modules/core-js/library/modules/_to-primitive.js","../node_modules/core-js/library/modules/_defined.js","../node_modules/core-js/library/modules/_to-integer.js","../node_modules/core-js/library/modules/_shared-key.js","../node_modules/core-js/library/modules/_shared.js","../node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/core-js/library/modules/_object-gops.js","../node_modules/core-js/library/modules/_to-object.js","../node_modules/core-js/library/modules/_iterators.js","../node_modules/core-js/library/modules/_object-create.js","../node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/core-js/library/modules/_wks-ext.js","../node_modules/core-js/library/modules/_wks-define.js","../node_modules/lodash/forOwn.js","../node_modules/lodash/_isKey.js","../node_modules/react-color/lib/components/common/Checkboard.js","../node_modules/@turf/boolean-point-on-line/index.js","../node_modules/@turf/nearest-point-on-line/index.js","../node_modules/function-bind/index.js","../node_modules/define-properties/index.js","../../../src/layers/editable-geojson-layer.ts","../../../src/lib/modify-mode.ts","../../../src/lib/translate-mode.ts","../../../src/lib/draw-polygon-mode.ts","../../../../src/lib/deck-renderer/deck-cache.ts","../node_modules/vega-embed/node_modules/semver/internal/identifiers.js","../node_modules/vega-embed/node_modules/semver/functions/eq.js","../node_modules/vega-embed/node_modules/semver/functions/compare-build.js","../node_modules/vega-embed/node_modules/semver/functions/lt.js","../node_modules/vega-embed/node_modules/semver/functions/gte.js","../node_modules/vega-embed/node_modules/semver/functions/lte.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/vega-embed/node_modules/semver/ranges/outside.js","../node_modules/@turf/buffer/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/buffer/node_modules/@turf/meta/dist/es/index.js","../node_modules/d3-geo/src/adder.js","../node_modules/d3-geo/src/math.js","../node_modules/d3-geo/src/noop.js","../node_modules/d3-geo/src/stream.js","../node_modules/d3-geo/src/area.js","../node_modules/d3-geo/src/cartesian.js","../node_modules/d3-geo/src/bounds.js","../node_modules/d3-geo/src/centroid.js","../node_modules/d3-geo/src/compose.js","../node_modules/d3-geo/src/rotation.js","../node_modules/d3-geo/src/circle.js","../node_modules/d3-geo/src/clip/buffer.js","../node_modules/d3-geo/src/pointEqual.js","../node_modules/d3-geo/src/clip/polygon.js","../node_modules/d3-geo/node_modules/d3-array/src/ascending.js","../node_modules/d3-geo/node_modules/d3-array/src/bisect.js","../node_modules/d3-geo/node_modules/d3-array/src/bisector.js","../node_modules/d3-geo/node_modules/d3-array/src/cross.js","../node_modules/d3-geo/node_modules/d3-array/src/array.js","../node_modules/d3-geo/node_modules/d3-array/src/ticks.js","../node_modules/d3-geo/node_modules/d3-array/src/threshold/sturges.js","../node_modules/d3-geo/node_modules/d3-array/src/merge.js","../node_modules/d3-geo/src/clip/extent.js","../node_modules/d3-geo/src/clip/line.js","../node_modules/d3-geo/src/polygonContains.js","../node_modules/d3-geo/src/length.js","../node_modules/d3-geo/src/interpolate.js","../node_modules/d3-geo/src/identity.js","../node_modules/d3-geo/src/path/area.js","../node_modules/d3-geo/src/path/bounds.js","../node_modules/d3-geo/src/path/context.js","../node_modules/d3-geo/src/path/measure.js","../node_modules/d3-geo/src/path/string.js","../node_modules/d3-geo/src/path/index.js","../node_modules/d3-geo/src/clip/index.js","../node_modules/d3-geo/src/clip/antimeridian.js","../node_modules/d3-geo/src/clip/circle.js","../node_modules/d3-geo/src/transform.js","../node_modules/d3-geo/src/projection/fit.js","../node_modules/d3-geo/src/projection/resample.js","../node_modules/d3-geo/src/projection/index.js","../node_modules/d3-geo/src/projection/azimuthal.js","../node_modules/d3-geo/src/projection/azimuthalEqualArea.js","../node_modules/d3-geo/src/projection/azimuthalEquidistant.js","../node_modules/d3-geo/src/projection/mercator.js","../node_modules/d3-geo/src/projection/equirectangular.js","../node_modules/d3-geo/src/projection/gnomonic.js","../node_modules/d3-geo/src/projection/naturalEarth1.js","../node_modules/d3-geo/src/projection/orthographic.js","../node_modules/d3-geo/src/projection/stereographic.js","../node_modules/d3-geo/src/projection/transverseMercator.js","../node_modules/@turf/buffer/dist/es/index.js","../../../../../src/lib/worker-utils/get-loadable-worker-url.ts","../../../../../src/lib/worker-utils/get-transfer-list.ts","../../../../../src/lib/worker-farm/worker-thread.ts","../../../../../src/lib/worker-farm/worker-job.ts","../../../../../src/lib/worker-farm/worker-pool.ts","../../../../../src/lib/worker-farm/worker-farm.ts","../../../../../src/lib/worker-api/get-worker-url.ts","../../../../../src/lib/worker-loader-utils/parse-with-worker.ts","../node_modules/@turf/circle/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/circle/node_modules/@turf/destination/dist/es/index.js","../node_modules/@turf/circle/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/circle/dist/es/index.js","../node_modules/@turf/polygon-to-line/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/polygon-to-line/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/polygon-to-line/dist/es/index.js","../../../../src/lib/composite-layer.js","../node_modules/@turf/transform-rotate/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/transform-rotate/node_modules/@turf/meta/dist/es/index.js","../node_modules/@turf/transform-rotate/node_modules/@turf/centroid/dist/es/index.js","../node_modules/@turf/transform-rotate/dist/es/index.js","../node_modules/@turf/transform-rotate/node_modules/@turf/invariant/dist/es/index.js","../../../../src/utils/json-loader.js","../../../../src/lib/init.js","../node_modules/zustand/context.js","../node_modules/zustand/shallow.js","../node_modules/react-grid-layout/index.js","../node_modules/typed-function/typed-function.js","../node_modules/seedrandom/index.js","../node_modules/@material-ui/icons/ArrowDropUp.js","../node_modules/@material-ui/icons/ArrowDropDown.js","../node_modules/pbf/index.js","../node_modules/dynamic-import-polyfill/dist/dynamic-import-polyfill.mjs","../../src/ZarrMultivecDataFetcher.js","../node_modules/vega-embed/node_modules/semver/index.js","../node_modules/lz-string/libs/lz-string.js","../node_modules/react-virtualized/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js","../node_modules/react-virtualized/dist/es/Grid/utils/CellSizeAndPositionManager.js","../node_modules/react-virtualized/dist/es/Grid/utils/maxElementSize.js","../node_modules/react-virtualized/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js","../node_modules/react-virtualized/dist/es/utils/createCallbackMemoizer.js","../node_modules/react-virtualized/dist/es/Grid/utils/updateScrollIndexHelper.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/react-virtualized/dist/es/utils/animationFrame.js","../node_modules/react-virtualized/dist/es/Grid/Grid.js","../node_modules/react-virtualized/dist/es/utils/requestAnimationTimeout.js","../node_modules/react-virtualized/dist/es/Grid/defaultOverscanIndicesGetter.js","../node_modules/react-virtualized/dist/es/Grid/defaultCellRangeRenderer.js","../node_modules/react-virtualized/dist/es/Grid/accessibilityOverscanIndicesGetter.js","../node_modules/react-virtualized/dist/es/ArrowKeyStepper/types.js","../node_modules/react-virtualized/dist/es/ArrowKeyStepper/ArrowKeyStepper.js","../node_modules/react-virtualized/dist/es/AutoSizer/AutoSizer.js","../node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurer.js","../node_modules/react-virtualized/dist/es/Collection/CollectionView.js","../node_modules/react-virtualized/dist/es/Collection/Section.js","../node_modules/react-virtualized/dist/es/Collection/SectionManager.js","../node_modules/react-virtualized/dist/es/utils/getUpdatedOffsetForIndex.js","../node_modules/react-virtualized/dist/es/Collection/Collection.js","../node_modules/react-virtualized/dist/es/Collection/utils/calculateSizeAndPositionData.js","../node_modules/react-virtualized/dist/es/Collection/index.js","../node_modules/react-virtualized/dist/es/ColumnSizer/ColumnSizer.js","../node_modules/react-virtualized/dist/es/ColumnSizer/index.js","../node_modules/react-virtualized/dist/es/InfiniteLoader/InfiniteLoader.js","../node_modules/react-virtualized/dist/es/InfiniteLoader/index.js","../node_modules/react-virtualized/dist/es/List/List.js","../node_modules/react-virtualized/dist/es/vendor/binarySearchBounds.js","../node_modules/react-virtualized/dist/es/vendor/intervalTree.js","../node_modules/react-virtualized/dist/es/Masonry/PositionCache.js","../node_modules/react-virtualized/dist/es/Masonry/Masonry.js","../node_modules/react-virtualized/dist/es/Masonry/index.js","../node_modules/react-virtualized/dist/es/MultiGrid/CellMeasurerCacheDecorator.js","../node_modules/react-virtualized/dist/es/MultiGrid/MultiGrid.js","../node_modules/react-virtualized/dist/es/ScrollSync/ScrollSync.js","../node_modules/react-virtualized/dist/es/Table/defaultHeaderRowRenderer.js","../node_modules/react-virtualized/dist/es/Table/SortDirection.js","../node_modules/react-virtualized/dist/es/Table/SortIndicator.js","../node_modules/react-virtualized/dist/es/Table/defaultHeaderRenderer.js","../node_modules/react-virtualized/dist/es/Table/defaultRowRenderer.js","../node_modules/react-virtualized/dist/es/Table/Column.js","../node_modules/react-virtualized/dist/es/Table/Table.js","../node_modules/react-virtualized/dist/es/Table/defaultCellDataGetter.js","../node_modules/react-virtualized/dist/es/Table/defaultCellRenderer.js","../node_modules/react-virtualized/dist/es/Table/index.js","../node_modules/react-virtualized/dist/es/WindowScroller/utils/onScroll.js","../node_modules/react-virtualized/dist/es/WindowScroller/utils/dimensions.js","../node_modules/react-virtualized/dist/es/WindowScroller/WindowScroller.js","../node_modules/react-virtualized/dist/es/index.js","../node_modules/topojson-client/src/identity.js","../node_modules/topojson-client/src/transform.js","../node_modules/topojson-client/src/feature.js","../node_modules/topojson-client/src/reverse.js","../node_modules/topojson-client/src/stitch.js","../node_modules/topojson-client/src/mesh.js","../node_modules/topojson-client/src/index.js","../../../../src/lib/resolve-modules.js","../../../../src/utils/is-old-ie.js","../../../../src/utils/webgl-info.js","../../../../src/lib/transpile-shader.js","../../../../src/lib/assemble-shaders.js","../../../../src/lib/platform-defines.js","../../../../src/lib/program-manager.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/d3-timer/src/timer.js","../node_modules/d3-force/src/lcg.js","../node_modules/d3-force/src/simulation.js","../../../../src/webgl-utils/format-utils.js","../../../../src/classes/copy-and-blit.js","../../../../../src/lib/filters/prop-types.js","../../../../src/lib/shader-module.js","../node_modules/@material-ui/styles/esm/useTheme/useTheme.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_Set.js","../node_modules/react-grid-layout/build/ReactGridLayout.js","../node_modules/react-grid-layout/build/calculateUtils.js","../node_modules/react-grid-layout/node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-grid-layout/node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/react-resizable/build/Resizable.js","../node_modules/react-grid-layout/build/responsiveUtils.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/ajv/lib/compile/schema_obj.js","../node_modules/ajv/lib/dotjs/validate.js","../node_modules/ajv/lib/dotjs/_limit.js","../node_modules/ajv/lib/dotjs/_limitItems.js","../node_modules/ajv/lib/dotjs/_limitLength.js","../node_modules/ajv/lib/dotjs/_limitProperties.js","../node_modules/ieee754/index.js","../../../../src/classes/vector2.js","../../../../src/classes/vector4.js","../../../../src/polyfill/polyfill-context.js","../../../../../src/shaderlib/project32/project32.js","../../../../../src/shaderlib/picking/picking.js","../../../../src/utils/tesselator.js","../../../../../src/lib/request-utils/request-scheduler.ts","../../../../src/lib/layer-extension.js","../../../../src/polygon-layer/polygon-layer.js","../../../../src/views/orthographic-view.js","../../../../src/views/orbit-view.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/core-js/library/modules/_ctx.js","../node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/core-js/library/modules/_dom-create.js","../node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/core-js/library/modules/_iobject.js","../node_modules/core-js/library/modules/_cof.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/core-js/library/modules/_iter-define.js","../node_modules/core-js/library/modules/_redefine.js","../node_modules/core-js/library/modules/_object-gopn.js","../node_modules/core-js/library/modules/_object-gopd.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_castFunction.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_assignMergeValue.js","../node_modules/lodash/_safeGet.js","../node_modules/react-color/lib/components/common/ColorWrap.js","../node_modules/material-colors/dist/colors.es2015.js","../node_modules/geojson-rbush/index.js","../node_modules/@turf/line-segment/index.js","../node_modules/deep-equal/index.js","../node_modules/object-keys/index.js","../node_modules/object-keys/isArguments.js","../node_modules/regexp.prototype.flags/implementation.js","../node_modules/regexp.prototype.flags/polyfill.js","../../../src/lib/style.ts","../../../../src/lib/deck-renderer/deck-drawer.ts","../../../src/lib/layer-mouse-event.ts","../node_modules/events/events.js","../node_modules/viewport-mercator-project/module.js","../../../src/lib/scale-mode.ts","../../../src/lib/rotate-mode.ts","../../../src/lib/composite-mode.ts","../../../src/lib/three-click-polygon-mode.ts","../../src/memoize.ts","../../../src/layers/editable-layer.ts","../../../../../src/lib/parser-utils/parse-json.ts","../../../../src/layers/path-outline-layer/path-outline-layer.ts","../node_modules/vega-embed/node_modules/semver/functions/neq.js","../node_modules/vega-embed/node_modules/semver/functions/cmp.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../../../../src/great-circle-layer/great-circle-layer.js","../../../../src/s2-layer/s2-geometry.js","../../../../src/s2-layer/s2-utils.js","../../../../src/s2-layer/s2-layer.js","../../../../src/trips-layer/trips-layer.js","../../../../src/h3-layers/h3-cluster-layer.js","../../../../src/h3-layers/h3-hexagon-layer.js","../../../../src/mesh-layer/mesh-layer.js","../../../../src/mesh-layer/mesh-layer-vertex.glsl.js","../../../../src/mesh-layer/mesh-layer-fragment.glsl.js","../node_modules/@loaders.gl/tiles/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../src/type-utils.js","../../../../../src/ellipsoid/helpers/scale-to-geodetic-surface.js","../../../../../src/ellipsoid/helpers/ellipsoid-transform.js","../../../../src/ellipsoid/ellipsoid.js","../../../../src/utils/doubly-linked-list-node.js","../../../../src/utils/doubly-linked-list.js","../../../../src/tileset/tileset-cache.ts","../../../../../src/tileset/helpers/frame-state.ts","../../../../../src/tileset/helpers/zoom.ts","../../../src/constants.ts","../../../../../src/tileset/helpers/bounding-volume.ts","../../../../../src/tileset/helpers/tiles-3d-lod.ts","../../../../../src/tileset/helpers/i3s-lod.ts","../../../../src/utils/managed-array.js","../../../../../src/tileset/traversers/tileset-traverser.ts","../../../../src/tileset/tile-3d.ts","../../../../../src/tileset/helpers/3d-tiles-options.ts","../../../../../src/tileset/traversers/tileset-3d-traverser.ts","../../../../../src/tileset/traversers/i3s-tile-manager.ts","../../../../../src/tileset/traversers/i3s-tileset-traverser.ts","../../../../src/tileset/tileset-3d.ts","../../../../../src/tileset/helpers/transform-utils.ts","../../../../../src/lib/utils/version.js","../../../../../src/lib/parsers/helpers/parse-utils.js","../../../../src/geometry/constants.ts","../../../../../src/geometry/gl/gl-type.ts","../../../../../src/lib/classes/tile-3d-feature-table.js","../../../../../src/lib/classes/helpers/tile-3d-accessor-utils.js","../../../../../src/lib/classes/tile-3d-batch-table-hierarchy.js","../../../../../src/lib/classes/tile-3d-batch-table.js","../../../../../src/lib/parsers/helpers/parse-3d-tile-header.js","../../../../../src/lib/parsers/helpers/parse-3d-tile-tables.js","../../../../../src/geometry/colors/rgb565.ts","../../../../../src/lib/parsers/helpers/normalize-3d-tile-colors.js","../../../../../src/geometry/utils/assert.ts","../../../../../src/geometry/compression/attribute-compression.ts","../../../../../src/lib/parsers/helpers/normalize-3d-tile-normals.js","../../../../../src/lib/parsers/helpers/normalize-3d-tile-positions.js","../../../../../src/lib/parsers/parse-3d-tile-point-cloud.js","../../../../../src/lib/parsers/helpers/parse-3d-tile-gltf-view.js","../../../../../src/lib/parsers/parse-3d-tile-batched-model.js","../../../../../src/lib/parsers/parse-3d-tile-instanced-model.js","../../../../../src/lib/parsers/parse-3d-tile-composite.js","../../../../../src/lib/parsers/parse-3d-tile.js","../../../../../src/lib/parsers/parse-3d-tile-header.js","../../../src/tiles-3d-loader.ts","../../../../src/tile-3d-layer/tile-3d-layer.js","../../../src/terrain-loader.ts","../../../../src/terrain-layer/terrain-layer.js","../../../../../src/lib/mapbox-vector-tile/vector-tile-feature.js","../../../../../src/lib/mapbox-vector-tile/vector-tile-layer.js","../../../../../src/lib/mapbox-vector-tile/vector-tile.js","../../../../../src/lib/binary-vector-tile/vector-tile-feature.js","../../../../../src/lib/binary-vector-tile/vector-tile-layer.js","../../../../../src/lib/binary-vector-tile/vector-tile.js","../../../../../src/lib/binary-vector-tile/features-to-binary.js","../../../../src/lib/parse-mvt.js","../../../src/mvt-loader.ts","../../../../src/lib/binary-to-geojson.ts","../../../../src/clip/clip.js","../../../../src/mvt-layer/coordinate-transform.js","../../../../src/mvt-layer/find-index-binary.js","../../../../src/mvt-layer/mvt-layer.js","../../../../src/lib/view-manager.js","../../../../src/lib/effect-manager.js","../../../../../src/lib/picking/query-object.js","../../../../../src/lib/picking/pick-info.js","../../../../src/lib/deck-picker.js","../../../../src/lib/tooltip.js","../../../../src/utils/hammer-overrides.js","../../../../src/utils/hammer.browser.js","../../../../src/inputs/wheel-input.js","../../../../src/inputs/move-input.js","../../../../src/inputs/key-input.js","../../../../src/inputs/contextmenu-input.js","../../../../src/utils/event-utils.js","../../../../src/utils/event-registrar.js","../../../src/event-manager.js","../../../../src/lib/deck.js","../../../../src/scenegraph/scenegraph-node.js","../../../../src/scenegraph/group-node.js","../../../../src/gltf/gltf-animator.js","../../../../src/scenegraph/model-node.js","../../../../src/gltf/create-gltf-model.js","../../../../src/gltf/gltf-instantiator.js","../../../../src/scenegraph-layer/gltf-utils.js","../../../../src/scenegraph-layer/scenegraph-layer.js","../../../../src/scenegraph-layer/scenegraph-layer-vertex.glsl.js","../../../../src/scenegraph-layer/scenegraph-layer-fragment.glsl.js","../../../../src/gltf/create-gltf-objects.js","../../../../src/geojson-layer/geojson-binary.js","../../../../src/geojson-layer/sub-layer-map.js","../../../../src/geojson-layer/geojson.js","../../../../src/geojson-layer/geojson-layer-props.js","../../../../src/geojson-layer/geojson-layer.js","../node_modules/@turf/point-to-line-distance/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/point-to-line-distance/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/point-to-line-distance/node_modules/@turf/distance/dist/es/index.js","../node_modules/@turf/point-to-line-distance/node_modules/@turf/meta/dist/es/index.js","../node_modules/@turf/point-to-line-distance/dist/es/index.js","../../../../src/bitmap-layer/create-mesh.js","../../../../src/bitmap-layer/bitmap-layer-vertex.js","../../../../src/bitmap-layer/bitmap-layer-fragment.js","../../../../src/bitmap-layer/bitmap-layer.js","../../../../src/line-layer/line-layer.js","../../../../src/line-layer/line-layer-vertex.glsl.js","../../../../src/line-layer/line-layer-fragment.glsl.js","../../../../src/arc-layer/arc-layer.js","../../../../src/arc-layer/arc-layer-vertex.glsl.js","../../../../src/arc-layer/arc-layer-fragment.glsl.js","../../../../src/point-cloud-layer/point-cloud-layer.js","../../../../src/point-cloud-layer/point-cloud-layer-vertex.glsl.js","../../../../src/point-cloud-layer/point-cloud-layer-fragment.glsl.js","../../../../src/simple-mesh-layer/simple-mesh-layer.js","../../../../src/simple-mesh-layer/simple-mesh-layer-vertex.glsl.js","../../../../src/simple-mesh-layer/simple-mesh-layer-fragment.glsl.js","../node_modules/@turf/ellipse/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/ellipse/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/ellipse/dist/es/index.js","../node_modules/@material-ui/core/esm/utils/unstable_useId.js","../node_modules/@material-ui/core/esm/utils/index.js","../../../../../src/modules/phong-lighting/phong-lighting.glsl.js","../../../../../src/modules/phong-lighting/phong-lighting.js","../node_modules/fast-xml-parser/src/parser.js","../../../../src/polyfill/polyfill-vertex-array-object.js","../../../../src/webgl-utils/texture-utils.js","../../../../src/classes/texture-cube.js","../../../../src/classes/texture-3d.js","../../../../../src/lib/api/register-loaders.ts","../node_modules/@mapbox/tiny-sdf/index.js","../node_modules/earcut/src/earcut.js","../node_modules/lerc/LercDecode.js","../node_modules/geotiff/node_modules/lru-cache/index.js","../node_modules/geotiff/src/source/client/http.js","../node_modules/geotiff/src/source/file.js","../node_modules/short-number/index.js","../node_modules/json2csv/dist/json2csv.umd.js","../node_modules/concaveman/index.js","../node_modules/internmap/src/index.js","../../../src/utils/isBrowser.js","../../../src/utils/debounce.js","../../../src/utils/isFunction.js","../../../src/utils/getStyleComputedProperty.js","../../../src/utils/getParentNode.js","../../../src/utils/getScrollParent.js","../../../src/utils/getReferenceNode.js","../../../src/utils/isIE.js","../../../src/utils/getOffsetParent.js","../../../src/utils/getRoot.js","../../../src/utils/findCommonOffsetParent.js","../../../src/utils/isOffsetContainer.js","../../../src/utils/getScroll.js","../../../src/utils/includeScroll.js","../../../src/utils/getBordersSize.js","../../../src/utils/getWindowSizes.js","../../../src/utils/getClientRect.js","../../../src/utils/getBoundingClientRect.js","../../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../../src/utils/isFixed.js","../../../src/utils/getFixedPositionOffsetParent.js","../../../src/utils/getBoundaries.js","../../../src/utils/computeAutoPlacement.js","../../../src/utils/getReferenceOffsets.js","../../../src/utils/getOuterSizes.js","../../../src/utils/getOppositePlacement.js","../../../src/utils/getPopperOffsets.js","../../../src/utils/find.js","../../../src/utils/runModifiers.js","../../../src/utils/findIndex.js","../../../src/methods/update.js","../../../src/utils/isModifierEnabled.js","../../../src/utils/getSupportedPropertyName.js","../../../src/methods/destroy.js","../../../src/utils/getWindow.js","../../../src/utils/setupEventListeners.js","../../../src/methods/enableEventListeners.js","../../../src/methods/disableEventListeners.js","../../../src/utils/removeEventListeners.js","../../../src/utils/isNumeric.js","../../../src/utils/setStyles.js","../../../src/modifiers/computeStyle.js","../../../src/utils/isModifierRequired.js","../../../src/methods/placements.js","../../../src/utils/clockwise.js","../../../src/modifiers/flip.js","../../../src/modifiers/offset.js","../../../src/modifiers/index.js","../../../src/methods/defaults.js","../../../src/modifiers/shift.js","../../../src/modifiers/preventOverflow.js","../../../src/modifiers/keepTogether.js","../../../src/modifiers/arrow.js","../../../src/utils/getOppositeVariation.js","../../../src/modifiers/inner.js","../../../src/modifiers/hide.js","../../../src/utils/getRoundedOffsets.js","../../../src/modifiers/applyStyle.js","../../../src/utils/setAttributes.js","../node_modules/@material-ui/icons/Settings.js","../node_modules/@material-ui/icons/CloudDownload.js","../node_modules/@material-ui/icons/Close.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/lodash/union.js","../node_modules/lodash/difference.js","../node_modules/react-color/lib/index.js","../node_modules/add-dom-event-listener/lib/index.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/@turf/boolean-within/index.js","../node_modules/@turf/boolean-contains/index.js","../node_modules/@turf/boolean-overlap/index.js","../../../../src/gltf/gltf-material-parser.js","../node_modules/@material-ui/icons/Lens.js","../node_modules/@material-ui/icons/MoreVert.js","../node_modules/@material-ui/icons/RemoveCircle.js","../node_modules/@material-ui/icons/Visibility.js","../node_modules/@material-ui/icons/VisibilityOff.js","../node_modules/@material-ui/icons/ExpandMore.js","../node_modules/higlass-register/src/index.js","../node_modules/clone/clone.js","../node_modules/bowser/es5.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-util/es/Portal.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../../../src/propertyUtils.js","../../../src/getOffsetParent.js","../../../src/isAncestorFixed.js","../../../src/getVisibleRectForElement.js","../../../src/getRegion.js","../../../src/getAlignOffset.js","../../../src/getElFuturePos.js","../../../src/align/align.js","../../../src/adjustForViewport.js","../../../src/align/alignElement.js","../../../src/align/alignPoint.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/rc-align/es/index.js","../node_modules/rc-trigger/node_modules/rc-animate/es/util/motion.js","../node_modules/rc-trigger/node_modules/rc-animate/es/CSSMotion.js","../node_modules/rc-trigger/es/PopupInner.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Content.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/@material-ui/core/esm/styles/createBreakpoints.js","../node_modules/@material-ui/core/esm/styles/createMixins.js","../node_modules/@material-ui/core/esm/colors/common.js","../node_modules/@material-ui/core/esm/colors/indigo.js","../node_modules/@material-ui/core/esm/colors/pink.js","../node_modules/@material-ui/core/esm/colors/red.js","../node_modules/@material-ui/core/esm/colors/orange.js","../node_modules/@material-ui/core/esm/colors/blue.js","../node_modules/@material-ui/core/esm/colors/green.js","../node_modules/@material-ui/core/esm/styles/createPalette.js","../node_modules/@material-ui/core/esm/styles/createTypography.js","../node_modules/@material-ui/core/esm/styles/shadows.js","../node_modules/@material-ui/core/esm/styles/shape.js","../node_modules/@material-ui/core/esm/styles/createSpacing.js","../node_modules/@material-ui/core/esm/styles/createTheme.js","../node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","../../../../src/features/features.js","../node_modules/whatwg-fetch/fetch.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/node_modules/scheduler/index.js","../node_modules/react-dom/node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_WeakMap.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-grid-layout/build/fastRGLPropsEqual.js","../node_modules/react-grid-layout/build/GridItem.js","../node_modules/react-grid-layout/node_modules/react-draggable/build/cjs/cjs.js","../node_modules/react-grid-layout/node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/react-grid-layout/node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-grid-layout/node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/react-resizable/index.js","../../webpack/universalModuleDefinition","../../webpack/bootstrap","../../node_modules/prop-types/index.js","../../external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../../external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","../../node_modules/classnames/index.js","../../lib/cjs.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../lib/utils/shims.js","../../lib/utils/getPrefix.js","../../lib/utils/domFns.js","../../lib/utils/positionFns.js","../../lib/DraggableCore.js","../../lib/Draggable.js","../node_modules/react-resizable/build/utils.js","../node_modules/react-resizable/build/ResizableBox.js","../node_modules/react-grid-layout/build/ReactGridLayoutPropTypes.js","../node_modules/react-grid-layout/build/ResponsiveReactGridLayout.js","../node_modules/react-grid-layout/build/components/WidthProvider.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/toFinite.js","../node_modules/ajv/lib/compile/index.js","../../../src/util.ts","../../../src/regexps-uri.ts","../../../src/regexps-iri.ts","../../../node_modules/punycode/punycode.es6.js","../../../src/uri.ts","../../../src/schemes/http.ts","../../../src/schemes/https.ts","../../../src/schemes/mailto.ts","../../../src/schemes/urn.ts","../../../src/schemes/urn-uuid.ts","../node_modules/ajv/lib/compile/ucs2length.js","../node_modules/json-schema-traverse/index.js","../node_modules/ajv/lib/cache.js","../node_modules/ajv/lib/compile/formats.js","../node_modules/ajv/lib/compile/rules.js","../node_modules/ajv/lib/dotjs/index.js","../node_modules/ajv/lib/dotjs/ref.js","../node_modules/ajv/lib/dotjs/allOf.js","../node_modules/ajv/lib/dotjs/anyOf.js","../node_modules/ajv/lib/dotjs/comment.js","../node_modules/ajv/lib/dotjs/const.js","../node_modules/ajv/lib/dotjs/contains.js","../node_modules/ajv/lib/dotjs/dependencies.js","../node_modules/ajv/lib/dotjs/enum.js","../node_modules/ajv/lib/dotjs/format.js","../node_modules/ajv/lib/dotjs/if.js","../node_modules/ajv/lib/dotjs/items.js","../node_modules/ajv/lib/dotjs/multipleOf.js","../node_modules/ajv/lib/dotjs/not.js","../node_modules/ajv/lib/dotjs/oneOf.js","../node_modules/ajv/lib/dotjs/pattern.js","../node_modules/ajv/lib/dotjs/properties.js","../node_modules/ajv/lib/dotjs/propertyNames.js","../node_modules/ajv/lib/dotjs/required.js","../node_modules/ajv/lib/dotjs/uniqueItems.js","../node_modules/ajv/lib/data.js","../node_modules/ajv/lib/compile/async.js","../node_modules/ajv/lib/keyword.js","../node_modules/ajv/lib/dotjs/custom.js","../node_modules/ajv/lib/definition_schema.js","../node_modules/uuid/lib/rng-browser.js","../node_modules/uuid/lib/bytesToUuid.js","../node_modules/base64-js/index.js","../node_modules/isarray/index.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/react/cjs/react-jsx-dev-runtime.production.min.js","../node_modules/fast-xml-parser/src/node2json.js","../node_modules/fast-xml-parser/src/xmlNode.js","../node_modules/strnum/strnum.js","../node_modules/fast-xml-parser/src/validator.js","../node_modules/fast-xml-parser/src/nimndata.js","../node_modules/fast-xml-parser/src/node2json_str.js","../node_modules/fast-xml-parser/src/json2xml.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/defineProperty.js","../../../../src/env/index.js","../node_modules/geotiff/node_modules/yallist/yallist.js","../node_modules/geotiff/node_modules/yallist/iterator.js","../node_modules/seedrandom/lib/alea.js","../node_modules/seedrandom/lib/xor128.js","../node_modules/seedrandom/lib/xorwow.js","../node_modules/seedrandom/lib/xorshift7.js","../node_modules/seedrandom/lib/xor4096.js","../node_modules/seedrandom/lib/tychei.js","../node_modules/seedrandom/seedrandom.js","../node_modules/concaveman/node_modules/rbush/rbush.min.js","../node_modules/tinyqueue/tinyqueue.js","../node_modules/point-in-polygon/index.js","../node_modules/point-in-polygon/flat.js","../node_modules/point-in-polygon/nested.js","../node_modules/robust-predicates/umd/orient2d.min.js","../node_modules/lodash/now.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/isMap.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/isSet.js","../node_modules/lodash/_baseIsSet.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/constant.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/noop.js","../node_modules/lodash/_baseDifference.js","../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/core-js/library/fn/object/assign.js","../node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/core-js/library/modules/_a-function.js","../node_modules/core-js/library/modules/_object-assign.js","../node_modules/core-js/library/modules/_array-includes.js","../node_modules/core-js/library/modules/_to-length.js","../node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/core-js/library/fn/object/define-property.js","../node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/core-js/library/modules/_string-at.js","../node_modules/core-js/library/modules/_iter-create.js","../node_modules/core-js/library/modules/_object-dps.js","../node_modules/core-js/library/modules/_html.js","../node_modules/core-js/library/modules/_object-gpo.js","../node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/core-js/library/modules/_iter-step.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/core-js/library/fn/symbol/index.js","../node_modules/core-js/library/modules/es6.symbol.js","../node_modules/core-js/library/modules/_meta.js","../node_modules/core-js/library/modules/_enum-keys.js","../node_modules/core-js/library/modules/_is-array.js","../node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/core-js/library/modules/_set-proto.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/core-js/library/fn/object/create.js","../node_modules/core-js/library/modules/es6.object.create.js","../../src/performance-now.coffee","../node_modules/react-color/lib/components/alpha/Alpha.js","../node_modules/reactcss/lib/flattenNames.js","../node_modules/lodash/isString.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/get.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_createBaseEach.js","../node_modules/reactcss/lib/mergeClasses.js","../node_modules/reactcss/lib/autoprefix.js","../node_modules/reactcss/lib/components/hover.js","../node_modules/reactcss/lib/components/active.js","../node_modules/reactcss/lib/loop.js","../node_modules/react-color/lib/components/common/Alpha.js","../node_modules/react-color/lib/helpers/alpha.js","../node_modules/react-color/lib/helpers/checkboard.js","../node_modules/react-color/lib/components/common/EditableInput.js","../node_modules/react-color/lib/components/common/Hue.js","../node_modules/react-color/lib/helpers/hue.js","../node_modules/react-color/lib/components/common/Raised.js","../node_modules/lodash/_baseMerge.js","../node_modules/lodash/_baseMergeDeep.js","../node_modules/lodash/toPlainObject.js","../node_modules/lodash/_createAssigner.js","../node_modules/react-color/lib/components/common/Saturation.js","../node_modules/lodash/throttle.js","../node_modules/react-color/lib/helpers/saturation.js","../node_modules/lodash/each.js","../node_modules/lodash/forEach.js","../node_modules/react-color/lib/components/common/Swatch.js","../node_modules/react-color/lib/helpers/interaction.js","../node_modules/react-color/lib/components/alpha/AlphaPointer.js","../node_modules/react-color/lib/components/block/Block.js","../node_modules/react-color/lib/components/block/BlockSwatches.js","../node_modules/react-color/lib/components/circle/Circle.js","../node_modules/react-color/lib/components/circle/CircleSwatch.js","../node_modules/react-color/lib/components/chrome/Chrome.js","../node_modules/react-color/lib/components/chrome/ChromeFields.js","../node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","../node_modules/react-color/lib/components/chrome/ChromePointer.js","../node_modules/react-color/lib/components/chrome/ChromePointerCircle.js","../node_modules/react-color/lib/components/compact/Compact.js","../node_modules/react-color/lib/components/compact/CompactColor.js","../node_modules/react-color/lib/components/compact/CompactFields.js","../node_modules/react-color/lib/components/github/Github.js","../node_modules/react-color/lib/components/github/GithubSwatch.js","../node_modules/react-color/lib/components/hue/Hue.js","../node_modules/react-color/lib/components/hue/HuePointer.js","../node_modules/react-color/lib/components/material/Material.js","../node_modules/react-color/lib/components/photoshop/Photoshop.js","../node_modules/react-color/lib/components/photoshop/PhotoshopFields.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPointerCircle.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPointer.js","../node_modules/react-color/lib/components/photoshop/PhotoshopButton.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPreviews.js","../node_modules/react-color/lib/components/sketch/Sketch.js","../node_modules/react-color/lib/components/sketch/SketchFields.js","../node_modules/react-color/lib/components/sketch/SketchPresetColors.js","../node_modules/react-color/lib/components/slider/Slider.js","../node_modules/react-color/lib/components/slider/SliderSwatches.js","../node_modules/react-color/lib/components/slider/SliderSwatch.js","../node_modules/react-color/lib/components/slider/SliderPointer.js","../node_modules/react-color/lib/components/swatches/Swatches.js","../node_modules/react-color/lib/components/swatches/SwatchesGroup.js","../node_modules/react-color/lib/components/swatches/SwatchesColor.js","../node_modules/@icons/material/CheckIcon.js","../node_modules/react-color/lib/components/twitter/Twitter.js","../node_modules/add-dom-event-listener/lib/EventObject.js","../node_modules/add-dom-event-listener/lib/EventBaseObject.js","../node_modules/@turf/line-overlap/index.js","../node_modules/rbush/index.js","../node_modules/quickselect/quickselect.js","../node_modules/object-keys/implementation.js","../node_modules/is-arguments/index.js","../node_modules/object-is/index.js","../node_modules/is-regex/index.js","../node_modules/has/src/index.js","../node_modules/function-bind/implementation.js","../node_modules/regexp.prototype.flags/index.js","../node_modules/es-abstract/helpers/callBind.js","../node_modules/es-abstract/GetIntrinsic.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/regexp.prototype.flags/shim.js","../node_modules/is-date-object/index.js","../node_modules/geojson-equality/index.js","../../../src/lib/feature.ts","../../../../src/lib/layers/junctions-layer.ts","../../src/style.ts","../../../src/lib/resize-circle-mode.ts","../../../src/lib/duplicate-mode.ts","../../../src/lib/extend-line-string-mode.ts","../../../src/lib/split-polygon-mode.ts","../../../src/lib/extrude-mode.ts","../../../src/lib/elevation-mode.ts","../../../src/lib/transform-mode.ts","../../../src/lib/draw-point-mode.ts","../../../src/lib/draw-line-string-mode.ts","../../../src/lib/draw-rectangle-mode.ts","../../../src/lib/draw-square-from-center-mode.ts","../../../src/lib/draw-circle-by-diameter-mode.ts","../../../src/lib/draw-circle-from-center-mode.ts","../../../src/lib/draw-ellipse-by-bounding-box-mode.ts","../../../src/lib/draw-ellipse-using-three-points-mode.ts","../../../src/lib/draw-rectangle-using-three-points-mode.ts","../../../src/lib/draw-90degree-polygon-mode.ts","../../../src/lib/draw-polygon-by-dragging-mode.ts","../node_modules/lodash.throttle/index.js","../../../src/lib/view-mode.ts","../../../src/lib/measure-distance-mode.ts","../../../src/lib/measure-area-mode.ts","../../../src/lib/measure-angle-mode.ts","../../../src/lib/snappable-mode.ts","../../../src/layers/editable-h3-cluster-layer.ts","../../../src/layers/selection-layer.ts","../../../src/layers/elevated-edit-handle-layer.ts","../../../../src/shaderlib/outline/outline.ts","../../../../src/layers/path-marker-layer/path-marker-layer.ts","../../../../src/layers/path-marker-layer/arrow-2d-geometry.ts","../../../../src/layers/path-marker-layer/create-path-markers.ts","../../../../src/layers/path-marker-layer/polyline.ts","../../../src/layers/junction-scatterplot-layer.ts","../../../../src/lib/layers/texts-layer.ts","../../../../src/lib/layers/segments-layer.ts","../../../src/lib/nebula.ts","../node_modules/global/document.js","../node_modules/lodash/_baseClamp.js","../node_modules/worker-loader/dist/workers/InlineWorker.js","../node_modules/vega-embed/node_modules/semver/functions/valid.js","../node_modules/vega-embed/node_modules/semver/functions/clean.js","../node_modules/vega-embed/node_modules/semver/functions/inc.js","../node_modules/vega-embed/node_modules/semver/functions/diff.js","../node_modules/vega-embed/node_modules/semver/functions/major.js","../node_modules/vega-embed/node_modules/semver/functions/minor.js","../node_modules/vega-embed/node_modules/semver/functions/patch.js","../node_modules/vega-embed/node_modules/semver/functions/prerelease.js","../node_modules/vega-embed/node_modules/semver/functions/rcompare.js","../node_modules/vega-embed/node_modules/semver/functions/compare-loose.js","../node_modules/vega-embed/node_modules/semver/functions/sort.js","../node_modules/vega-embed/node_modules/semver/functions/rsort.js","../node_modules/vega-embed/node_modules/semver/functions/coerce.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/vega-embed/node_modules/lru-cache/index.js","../node_modules/vega-embed/node_modules/yallist/yallist.js","../node_modules/vega-embed/node_modules/yallist/iterator.js","../node_modules/vega-embed/node_modules/semver/ranges/to-comparators.js","../node_modules/vega-embed/node_modules/semver/ranges/max-satisfying.js","../node_modules/vega-embed/node_modules/semver/ranges/min-satisfying.js","../node_modules/vega-embed/node_modules/semver/ranges/min-version.js","../node_modules/vega-embed/node_modules/semver/ranges/valid.js","../node_modules/vega-embed/node_modules/semver/ranges/gtr.js","../node_modules/vega-embed/node_modules/semver/ranges/ltr.js","../node_modules/vega-embed/node_modules/semver/ranges/intersects.js","../node_modules/vega-embed/node_modules/semver/ranges/simplify.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/vega-embed/node_modules/semver/ranges/subset.js","../node_modules/array-flat-polyfill/index.mjs","../node_modules/nebula.gl/node_modules/uuid/dist/esm-browser/rng.js","../node_modules/nebula.gl/node_modules/uuid/dist/esm-browser/bytesToUuid.js","../node_modules/nebula.gl/node_modules/uuid/dist/esm-browser/v1.js","../node_modules/nebula.gl/node_modules/uuid/dist/esm-browser/v35.js","../node_modules/nebula.gl/node_modules/uuid/dist/esm-browser/md5.js","../node_modules/nebula.gl/node_modules/uuid/dist/esm-browser/v3.js","../node_modules/nebula.gl/node_modules/uuid/dist/esm-browser/v4.js","../node_modules/nebula.gl/node_modules/uuid/dist/esm-browser/sha1.js","../node_modules/nebula.gl/node_modules/uuid/dist/esm-browser/v5.js","../node_modules/nebula.gl/node_modules/uuid/dist/esm-browser/index.js","../node_modules/@turf/boolean-clockwise/dist/es/index.js","../node_modules/@turf/boolean-clockwise/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/rewind/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/rewind/node_modules/@turf/meta/dist/es/index.js","../node_modules/@turf/rewind/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/rewind/dist/es/index.js","../node_modules/@turf/transform-scale/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/transform-scale/node_modules/@turf/meta/dist/es/index.js","../node_modules/@turf/transform-scale/node_modules/@turf/centroid/dist/es/index.js","../node_modules/@turf/transform-scale/node_modules/@turf/bbox/dist/es/index.js","../node_modules/@turf/transform-scale/dist/es/index.js","../node_modules/@turf/transform-scale/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/along/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/along/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/along/node_modules/@turf/bearing/dist/es/index.js","../node_modules/@turf/along/node_modules/@turf/destination/dist/es/index.js","../node_modules/@turf/along/node_modules/@turf/distance/dist/es/index.js","../node_modules/@turf/along/dist/es/index.js","../node_modules/@turf/transform-translate/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/transform-translate/node_modules/@turf/meta/dist/es/index.js","../node_modules/@turf/transform-translate/dist/es/index.js","../node_modules/@turf/transform-translate/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/union/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/union/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/union/dist/es/index.js","../node_modules/@turf/intersect/node_modules/@turf/helpers/dist/es/index.js","../node_modules/@turf/intersect/node_modules/@turf/invariant/dist/es/index.js","../node_modules/@turf/intersect/dist/es/index.js","../node_modules/@turf/area/node_modules/@turf/meta/dist/es/index.js","../node_modules/@turf/area/dist/es/index.js","../node_modules/@material-ui/utils/esm/deepmerge.js","../../../../../src/modules/picking/picking.js","../node_modules/@material-ui/core/esm/IconButton/IconButton.js","../node_modules/@material-ui/core/esm/Portal/Portal.js","../node_modules/@material-ui/core/esm/Typography/Typography.js","../node_modules/vega-loader/node_modules/d3-dsv/src/dsv.js","../../../../src/utils/local-storage.js","../../../../src/utils/formatters.js","../../../../src/utils/color.js","../../../../src/utils/autobind.js","../../../../src/lib/log.js","../node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","../node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","../node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","../node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","../node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@material-ui/core/esm/styles/makeStyles.js","../node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","../node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","../node_modules/d3-array/src/extent.js","../../../../../src/modules/fp32/fp32.js","../../../../src/classes/transform-feedback.js","../../../../src/animation/timeline.js","../node_modules/d3-dsv/src/dsv.js","../node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js","../node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","../node_modules/@material-ui/core/esm/Popper/Popper.js","../node_modules/@material-ui/core/esm/ClickAwayListener/ClickAwayListener.js","../node_modules/@material-ui/core/esm/Fade/Fade.js","../node_modules/@material-ui/core/esm/Paper/Paper.js","../node_modules/@material-ui/core/esm/Link/Link.js","../../../../src/geometries/cube-geometry.js","../../../../src/utils/clip-space.js","../node_modules/@material-ui/core/esm/TableContainer/TableContainer.js","../node_modules/@material-ui/core/esm/Table/Table.js","../node_modules/@material-ui/core/esm/TableBody/TableBody.js","../node_modules/@material-ui/core/esm/TableRow/TableRow.js","../node_modules/@material-ui/core/esm/TableCell/TableCell.js","../node_modules/d3-array/src/max.js","../node_modules/@material-ui/core/esm/AccordionDetails/AccordionDetails.js","../node_modules/@material-ui/core/esm/AccordionSummary/AccordionSummary.js","../node_modules/@material-ui/core/esm/Grid/Grid.js","../node_modules/@material-ui/core/esm/FormControl/FormControl.js","../node_modules/@material-ui/core/esm/Button/Button.js","../node_modules/@material-ui/core/esm/Tab/Tab.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/utcYear.js","../node_modules/d3-array/src/sum.js","../node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js","../node_modules/react-vega/esm/utils/shallowEqual.js","../node_modules/fast-json-patch/module/helpers.mjs","../node_modules/fast-json-patch/module/core.mjs","../node_modules/fast-json-patch/module/duplex.mjs","../node_modules/fast-json-patch/index.mjs","../node_modules/vega-dataflow/build/vega-dataflow.module.js","../node_modules/vega-statistics/node_modules/d3-array/src/ascending.js","../node_modules/vega-statistics/node_modules/d3-array/src/max.js","../node_modules/vega-statistics/node_modules/d3-array/src/min.js","../node_modules/vega-statistics/node_modules/d3-array/src/quickselect.js","../node_modules/vega-statistics/node_modules/d3-array/src/number.js","../node_modules/vega-statistics/node_modules/d3-array/src/quantile.js","../node_modules/vega-statistics/node_modules/d3-array/src/deviation.js","../node_modules/vega-statistics/node_modules/d3-array/src/variance.js","../node_modules/vega-statistics/node_modules/d3-array/src/median.js","../node_modules/vega-statistics/build/vega-statistics.module.js","../node_modules/vega-transforms/node_modules/d3-array/src/max.js","../node_modules/vega-transforms/node_modules/d3-array/src/min.js","../node_modules/vega-transforms/node_modules/d3-array/src/ascending.js","../node_modules/vega-transforms/node_modules/d3-array/src/quickselect.js","../node_modules/vega-transforms/node_modules/d3-array/src/number.js","../node_modules/vega-transforms/node_modules/d3-array/src/quantile.js","../node_modules/vega-transforms/node_modules/d3-array/src/range.js","../node_modules/vega-transforms/node_modules/d3-array/src/bisector.js","../node_modules/vega-transforms/build/vega-transforms.module.js","../node_modules/vega-transforms/node_modules/d3-array/src/median.js","../node_modules/vega-transforms/node_modules/d3-array/src/mean.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/bundle.js","../node_modules/d3-shape/src/curve/cardinal.js","../node_modules/d3-shape/src/curve/cardinalOpen.js","../node_modules/d3-shape/src/curve/cardinalClosed.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/curve/catmullRom.js","../node_modules/d3-shape/src/curve/catmullRomClosed.js","../node_modules/d3-shape/src/curve/catmullRomOpen.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-path/src/path.js","../node_modules/d3-shape/src/constant.js","../node_modules/d3-shape/src/arc.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/vega-canvas/src/domCanvas.js","../node_modules/vega-scale/node_modules/d3-array/src/ascending.js","../node_modules/vega-scale/node_modules/d3-array/src/bisector.js","../node_modules/vega-scale/node_modules/d3-array/src/number.js","../node_modules/vega-scale/node_modules/d3-array/src/bisect.js","../node_modules/vega-scale/node_modules/d3-scale/src/init.js","../node_modules/vega-scale/node_modules/d3-scale/src/ordinal.js","../node_modules/vega-scale/node_modules/d3-array/src/ticks.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/vega-scale/node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/basis.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/basisClosed.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/constant.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/color.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/rgb.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/numberArray.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/array.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/date.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/number.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/object.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/string.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/value.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/round.js","../node_modules/vega-scale/node_modules/d3-scale/src/number.js","../node_modules/vega-scale/node_modules/d3-scale/src/continuous.js","../node_modules/vega-scale/node_modules/d3-scale/src/constant.js","../node_modules/vega-scale/node_modules/d3-scale/src/linear.js","../node_modules/vega-scale/node_modules/d3-scale/src/nice.js","../node_modules/vega-scale/node_modules/d3-scale/src/log.js","../node_modules/vega-scale/node_modules/d3-scale/src/pow.js","../node_modules/vega-scale/node_modules/d3-scale/src/symlog.js","../node_modules/vega-scale/node_modules/d3-time/src/duration.js","../node_modules/vega-scale/node_modules/d3-time/src/interval.js","../node_modules/vega-scale/node_modules/d3-time/src/millisecond.js","../node_modules/vega-scale/node_modules/d3-time/src/second.js","../node_modules/vega-scale/node_modules/d3-time/src/minute.js","../node_modules/vega-scale/node_modules/d3-time/src/hour.js","../node_modules/vega-scale/node_modules/d3-time/src/day.js","../node_modules/vega-scale/node_modules/d3-time/src/week.js","../node_modules/vega-scale/node_modules/d3-time/src/month.js","../node_modules/vega-scale/node_modules/d3-time/src/year.js","../node_modules/vega-scale/node_modules/d3-time/src/utcMinute.js","../node_modules/vega-scale/node_modules/d3-time/src/utcHour.js","../node_modules/vega-scale/node_modules/d3-time/src/utcDay.js","../node_modules/vega-scale/node_modules/d3-time/src/utcWeek.js","../node_modules/vega-scale/node_modules/d3-time/src/utcMonth.js","../node_modules/vega-scale/node_modules/d3-time/src/utcYear.js","../node_modules/vega-scale/node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/vega-scale/node_modules/d3-scale/src/time.js","../node_modules/vega-scale/node_modules/d3-scale/src/sequential.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/piecewise.js","../node_modules/vega-scale/node_modules/d3-scale/src/diverging.js","../node_modules/vega-scale/node_modules/d3-array/src/quantile.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/discrete.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/transform/parse.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/hue.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/transform/index.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/zoom.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/hsl.js","../node_modules/d3-color/src/math.js","../node_modules/d3-color/src/lab.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/lab.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/hcl.js","../node_modules/d3-color/src/cubehelix.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/cubehelix.js","../node_modules/vega-scale/node_modules/d3-interpolate/src/quantize.js","../node_modules/vega-scale/build/vega-scale.module.js","../node_modules/vega-scale/node_modules/d3-array/src/range.js","../node_modules/vega-scale/node_modules/d3-scale/src/identity.js","../node_modules/vega-scale/node_modules/d3-scale/src/utcTime.js","../node_modules/vega-scale/node_modules/d3-scale/src/quantile.js","../node_modules/vega-scale/node_modules/d3-scale/src/quantize.js","../node_modules/vega-scale/node_modules/d3-scale/src/threshold.js","../node_modules/vega-scenegraph/build/vega-scenegraph.module.js","../node_modules/d3-shape/src/symbol.js","../node_modules/vega-view-transforms/build/vega-view-transforms.module.js","../node_modules/vega-encode/node_modules/d3-array/src/range.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/round.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/basis.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/constant.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/color.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/rgb.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/basisClosed.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/numberArray.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/array.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/date.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/number.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/object.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/string.js","../node_modules/vega-encode/node_modules/d3-interpolate/src/value.js","../node_modules/vega-encode/build/vega-encode.module.js","../node_modules/vega-encode/node_modules/d3-array/src/sum.js","../node_modules/vega-geo/node_modules/d3-array/src/ticks.js","../node_modules/vega-geo/node_modules/d3-array/src/range.js","../node_modules/vega-geo/node_modules/d3-array/src/max.js","../node_modules/vega-projection/node_modules/d3-geo/src/identity.js","../node_modules/vega-projection/node_modules/d3-geo/src/stream.js","../node_modules/vega-projection/node_modules/d3-array/src/fsum.js","../node_modules/vega-projection/node_modules/d3-geo/src/math.js","../node_modules/vega-projection/node_modules/d3-geo/src/noop.js","../node_modules/vega-projection/node_modules/d3-geo/src/path/area.js","../node_modules/vega-projection/node_modules/d3-geo/src/path/bounds.js","../node_modules/vega-projection/node_modules/d3-geo/src/path/centroid.js","../node_modules/vega-projection/node_modules/d3-geo/src/path/context.js","../node_modules/vega-projection/node_modules/d3-geo/src/path/measure.js","../node_modules/vega-projection/node_modules/d3-geo/src/path/string.js","../node_modules/vega-projection/node_modules/d3-geo/src/path/index.js","../node_modules/vega-projection/node_modules/d3-geo/src/clip/buffer.js","../node_modules/vega-projection/node_modules/d3-geo/src/pointEqual.js","../node_modules/vega-projection/node_modules/d3-geo/src/clip/rejoin.js","../node_modules/vega-projection/node_modules/d3-geo/src/cartesian.js","../node_modules/vega-projection/node_modules/d3-geo/src/polygonContains.js","../node_modules/vega-projection/node_modules/d3-array/src/merge.js","../node_modules/vega-projection/node_modules/d3-geo/src/clip/index.js","../node_modules/vega-projection/node_modules/d3-geo/src/clip/antimeridian.js","../node_modules/vega-projection/node_modules/d3-geo/src/constant.js","../node_modules/vega-projection/node_modules/d3-geo/src/compose.js","../node_modules/vega-projection/node_modules/d3-geo/src/rotation.js","../node_modules/vega-projection/node_modules/d3-geo/src/circle.js","../node_modules/vega-projection/node_modules/d3-geo/src/clip/circle.js","../node_modules/vega-projection/node_modules/d3-geo/src/clip/rectangle.js","../node_modules/vega-projection/node_modules/d3-geo/src/clip/line.js","../node_modules/vega-projection/node_modules/d3-geo/src/transform.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/fit.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/resample.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/index.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/conic.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/conicEqualArea.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/cylindricalEqualArea.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/albers.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/azimuthal.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/azimuthalEqualArea.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/azimuthalEquidistant.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/mercator.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/conicConformal.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/equirectangular.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/conicEquidistant.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/equalEarth.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/gnomonic.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/naturalEarth1.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/orthographic.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/stereographic.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/transverseMercator.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/noop.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/clip/buffer.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/math.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/pointEqual.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/clip/rejoin.js","../node_modules/d3-geo-projection/node_modules/d3-geo/node_modules/d3-array/src/fsum.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/cartesian.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/polygonContains.js","../node_modules/d3-geo-projection/node_modules/d3-geo/node_modules/d3-array/src/merge.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/clip/index.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/clip/antimeridian.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/constant.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/compose.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/rotation.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/circle.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/clip/circle.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/clip/rectangle.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/clip/line.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/identity.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/transform.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/stream.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/path/bounds.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/projection/fit.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/projection/resample.js","../node_modules/d3-geo-projection/node_modules/d3-geo/src/projection/index.js","../node_modules/d3-geo-projection/src/math.js","../node_modules/d3-geo-projection/src/mollweide.js","../node_modules/vega-projection/build/vega-projection.module.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/albersUsa.js","../node_modules/vega-projection/node_modules/d3-geo/src/projection/identity.js","../node_modules/vega-geo/node_modules/d3-geo/src/math.js","../node_modules/vega-geo/node_modules/d3-geo/src/graticule.js","../node_modules/vega-geo/node_modules/d3-color/src/define.js","../node_modules/vega-geo/node_modules/d3-color/src/color.js","../node_modules/vega-geo/build/vega-geo.module.js","../node_modules/vega-geo/node_modules/d3-array/src/sum.js","../node_modules/d3-force/src/center.js","../node_modules/d3-force/src/constant.js","../node_modules/d3-force/src/jiggle.js","../node_modules/d3-force/src/collide.js","../node_modules/d3-force/src/link.js","../node_modules/vega-force/build/vega-force.module.js","../node_modules/d3-force/src/manyBody.js","../node_modules/d3-force/src/x.js","../node_modules/d3-force/src/y.js","../node_modules/d3-hierarchy/src/hierarchy/count.js","../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../node_modules/d3-hierarchy/src/hierarchy/index.js","../node_modules/d3-hierarchy/src/hierarchy/each.js","../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../node_modules/d3-hierarchy/src/hierarchy/find.js","../node_modules/d3-hierarchy/src/hierarchy/sum.js","../node_modules/d3-hierarchy/src/hierarchy/sort.js","../node_modules/d3-hierarchy/src/hierarchy/path.js","../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../node_modules/d3-hierarchy/src/hierarchy/links.js","../node_modules/d3-hierarchy/src/pack/enclose.js","../node_modules/d3-hierarchy/src/array.js","../node_modules/d3-hierarchy/src/pack/siblings.js","../node_modules/d3-hierarchy/src/accessors.js","../node_modules/d3-hierarchy/src/constant.js","../node_modules/d3-hierarchy/src/pack/index.js","../node_modules/d3-hierarchy/src/treemap/round.js","../node_modules/d3-hierarchy/src/treemap/dice.js","../node_modules/d3-hierarchy/src/stratify.js","../node_modules/d3-hierarchy/src/tree.js","../node_modules/d3-hierarchy/src/cluster.js","../node_modules/d3-hierarchy/src/treemap/slice.js","../node_modules/d3-hierarchy/src/treemap/squarify.js","../node_modules/d3-hierarchy/src/treemap/resquarify.js","../node_modules/vega-hierarchy/build/vega-hierarchy.module.js","../node_modules/d3-hierarchy/src/partition.js","../node_modules/d3-hierarchy/src/treemap/binary.js","../node_modules/d3-hierarchy/src/treemap/sliceDice.js","../node_modules/d3-hierarchy/src/treemap/index.js","../node_modules/vega-label/build/vega-label.module.js","../node_modules/vega-regression/build/vega-regression.module.js","../node_modules/delaunator/index.js","../node_modules/d3-delaunay/src/path.js","../node_modules/d3-delaunay/src/polygon.js","../node_modules/d3-delaunay/src/voronoi.js","../node_modules/d3-delaunay/src/delaunay.js","../node_modules/vega-voronoi/build/vega-voronoi.module.js","../node_modules/vega-wordcloud/build/vega-wordcloud.module.js","../node_modules/vega-crossfilter/node_modules/d3-array/src/ascending.js","../node_modules/vega-crossfilter/node_modules/d3-array/src/bisector.js","../node_modules/vega-crossfilter/node_modules/d3-array/src/bisect.js","../node_modules/vega-crossfilter/build/vega-crossfilter.module.js","../node_modules/vega-crossfilter/node_modules/d3-array/src/number.js","../node_modules/vega-crossfilter/node_modules/d3-array/src/permute.js","../node_modules/vega-view/node_modules/d3-array/src/ticks.js","../node_modules/vega-expression/build/vega-expression.module.js","../node_modules/vega-functions/node_modules/d3-array/src/fsum.js","../node_modules/vega-functions/node_modules/d3-geo/src/math.js","../node_modules/vega-functions/node_modules/d3-geo/src/noop.js","../node_modules/vega-functions/node_modules/d3-geo/src/stream.js","../node_modules/vega-functions/node_modules/d3-geo/src/area.js","../node_modules/vega-functions/node_modules/d3-geo/src/bounds.js","../node_modules/vega-functions/node_modules/d3-geo/src/cartesian.js","../node_modules/vega-functions/node_modules/d3-geo/src/centroid.js","../node_modules/vega-functions/node_modules/d3-color/src/define.js","../node_modules/vega-functions/node_modules/d3-color/src/color.js","../node_modules/vega-functions/node_modules/d3-color/src/math.js","../node_modules/vega-functions/node_modules/d3-color/src/lab.js","../node_modules/vega-selections/build/vega-selection.module.js","../node_modules/vega-functions/build/vega-functions.module.js","../node_modules/vega-functions/node_modules/d3-array/src/range.js","../node_modules/vega-runtime/build/vega-runtime.module.js","../node_modules/vega-view/node_modules/d3-timer/src/timer.js","../node_modules/vega-view/build/vega-view.module.js","../node_modules/vega-view/node_modules/d3-timer/src/interval.js","../node_modules/vega-event-selector/build/vega-event-selector.module.js","../node_modules/vega-parser/build/vega-parser.module.js","../node_modules/vega/build/vega.module.js","../node_modules/vega-interpreter/build/vega-interpreter.module.js","../node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js","../../../src/logical.ts","../../../src/channel.ts","../../../src/aggregate.ts","../../../src/bin.ts","../../../src/expr.ts","../../../src/title.ts","../../../src/vega.schema.ts","../../../../src/compile/common.ts","../../../../src/log/message.ts","../../../../src/log/index.ts","../../../src/datetime.ts","../../../src/timeunit.ts","../../../src/predicate.ts","../../../src/type.ts","../../../src/scale.ts","../../../src/mark.ts","../../../../../src/compile/mark/encode/valueref.ts","../../../../src/compile/format.ts","../../../src/sort.ts","../../../../src/spec/facet.ts","../../../src/channeldef.ts","../../../src/axis.ts","../../../../src/spec/unit.ts","../../../../src/compositemark/base.ts","../../../src/encoding.ts","../../../../src/compositemark/common.ts","../../../../src/compositemark/boxplot.ts","../../../../src/compositemark/errorbar.ts","../../../../src/compositemark/errorband.ts","../../../../src/compositemark/index.ts","../../../src/guide.ts","../../../src/header.ts","../../../src/legend.ts","../../../src/selection.ts","../../../src/parameter.ts","../../../../src/spec/concat.ts","../../../../src/spec/base.ts","../../../src/config.ts","../../../../src/spec/layer.ts","../../../../src/spec/map.ts","../../../../src/spec/repeat.ts","../../../src/stack.ts","../../../../src/normalize/pathoverlay.ts","../../../../src/normalize/repeater.ts","../../../../src/normalize/ruleforrangedline.ts","../../../../src/normalize/core.ts","../../../src/transform.ts","../../../../src/normalize/selectioncompat.ts","../../../../src/normalize/toplevelselection.ts","../../../../src/normalize/index.ts","../../../../src/spec/toplevel.ts","../../../../src/compile/split.ts","../../../../../src/compile/data/index.ts","../../../src/data.ts","../node_modules/vega-lite/node_modules/vega-event-selector/build/vega-event-selector.module.js","../../../../../src/compile/selection/assemble.ts","../../../../../src/compile/data/dataflow.ts","../../../../../src/compile/data/timeunit.ts","../../../../../src/compile/selection/project.ts","../../../../../src/compile/selection/scales.ts","../../../../../src/compile/selection/interval.ts","../../../../../src/compile/selection/point.ts","../../../../../src/compile/mark/encode/conditional.ts","../../../../../src/compile/mark/encode/text.ts","../../../../../src/compile/mark/encode/tooltip.ts","../../../../../src/compile/mark/encode/aria.ts","../../../../../src/compile/mark/encode/nonposition.ts","../../../../../src/compile/mark/encode/color.ts","../../../../../src/compile/mark/encode/offset.ts","../../../../../src/compile/mark/encode/position-point.ts","../../../../../src/compile/mark/encode/position-align.ts","../../../../../src/compile/mark/encode/position-range.ts","../../../../../src/compile/mark/encode/position-rect.ts","../../../../../src/compile/mark/encode/base.ts","../../../../../src/compile/mark/encode/zindex.ts","../../../../../src/compile/mark/encode/defined.ts","../../../../../src/compile/selection/nearest.ts","../../../../../src/compile/selection/inputs.ts","../../../../../src/compile/selection/toggle.ts","../../../../../src/compile/selection/clear.ts","../../../../../src/compile/selection/legends.ts","../../../../../src/compile/selection/translate.ts","../../../../../src/compile/selection/zoom.ts","../../../../../src/compile/selection/index.ts","../node_modules/vega-lite/node_modules/vega-expression/build/vega-expression.module.js","../../../../../src/compile/data/expressions.ts","../../../../../src/compile/data/filter.ts","../../../../../src/compile/selection/parse.ts","../../../../src/compile/predicate.ts","../../../../../src/compile/axis/assemble.ts","../../../../../src/compile/axis/config.ts","../../../../../src/compile/axis/properties.ts","../../../../../src/compile/data/calculate.ts","../../../../../src/compile/header/common.ts","../../../../../src/compile/header/component.ts","../../../../../src/compile/header/assemble.ts","../../../../../src/compile/layoutsize/assemble.ts","../../../../../src/compile/layoutsize/component.ts","../../../../src/compile/guide.ts","../../../../src/compile/resolve.ts","../../../../../src/compile/legend/component.ts","../../../../../src/compile/legend/encode.ts","../../../../../src/compile/legend/properties.ts","../../../../../src/compile/legend/parse.ts","../../../../../src/compile/legend/assemble.ts","../../../../../src/compile/projection/assemble.ts","../../../src/projection.ts","../../../../../src/compile/projection/component.ts","../../../../../src/compile/projection/parse.ts","../../../../../src/compile/data/bin.ts","../../../../../src/compile/data/aggregate.ts","../../../../../src/compile/data/facet.ts","../../../../../src/compile/data/formatparse.ts","../../../../../src/compile/data/identifier.ts","../../../../../src/compile/data/graticule.ts","../../../../../src/compile/data/sequence.ts","../../../../../src/compile/data/source.ts","../../../../../src/compile/data/optimizer.ts","../../../../../src/compile/data/optimizers.ts","../../../../../src/compile/data/joinaggregate.ts","../../../../../src/compile/data/stack.ts","../../../../../src/compile/data/window.ts","../../../../../src/compile/data/subtree.ts","../../../../../src/compile/data/optimize.ts","../../../../src/compile/signal.ts","../../../../../src/compile/scale/domain.ts","../../../../../src/compile/scale/assemble.ts","../../../../../src/compile/scale/component.ts","../../../../../src/compile/scale/range.ts","../../../../../src/compile/scale/properties.ts","../../../../../src/compile/scale/type.ts","../../../../../src/compile/scale/parse.ts","../../../../src/compile/model.ts","../../../../../src/compile/data/density.ts","../../../../../src/compile/data/filterinvalid.ts","../../../../../src/compile/data/flatten.ts","../../../../../src/compile/data/fold.ts","../../../../../src/compile/data/geojson.ts","../../../../../src/compile/data/geopoint.ts","../../../../../src/compile/data/impute.ts","../../../../../src/compile/data/loess.ts","../../../../../src/compile/data/lookup.ts","../../../../../src/compile/data/quantile.ts","../../../../../src/compile/data/regression.ts","../../../../../src/compile/data/pivot.ts","../../../../../src/compile/data/sample.ts","../../../../../src/compile/data/assemble.ts","../../../../../src/compile/header/parse.ts","../../../../../src/compile/layoutsize/parse.ts","../../../../src/compile/facet.ts","../../../../../src/compile/data/parse.ts","../../../../../src/compile/data/joinaggregatefacet.ts","../../../../src/compile/concat.ts","../../../../../src/compile/axis/component.ts","../../../../../src/compile/axis/parse.ts","../../../../../src/compile/axis/encode.ts","../../../../../src/compile/layoutsize/init.ts","../../../../../src/compile/mark/init.ts","../../../../../src/compile/mark/point.ts","../../../../../src/compile/mark/tick.ts","../../../../../src/compile/mark/mark.ts","../../../../../src/compile/mark/arc.ts","../../../../../src/compile/mark/area.ts","../../../../../src/compile/mark/bar.ts","../../../../../src/compile/mark/geoshape.ts","../../../../../src/compile/mark/image.ts","../../../../../src/compile/mark/line.ts","../../../../../src/compile/mark/rect.ts","../../../../../src/compile/mark/rule.ts","../../../../../src/compile/mark/text.ts","../../../../src/compile/unit.ts","../../../../src/compile/layer.ts","../../../../src/compile/buildmodel.ts","../../../../src/compile/compile.ts","../../parser.ts","../node_modules/vega-themes/build/vega-themes.module.js","../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../node_modules/@babel/runtime/regenerator/index.js","../../src/post.ts","../../src/embed.ts","../node_modules/react-vega/esm/utils/updateMultipleDatasetsInView.js","../node_modules/react-vega/esm/utils/updateSingleDatasetInView.js","../node_modules/react-vega/esm/utils/isFunction.js","../node_modules/react-vega/esm/utils/getUniqueFieldNames.js","../node_modules/react-vega/esm/constants.js","../node_modules/react-vega/esm/utils/addSignalListenersToView.js","../node_modules/react-vega/esm/utils/removeSignalListenersFromView.js","../node_modules/react-vega/esm/utils/combineSpecWithDimension.js","../node_modules/react-vega/esm/VegaEmbed.js","../node_modules/react-vega/esm/utils/computeSpecChanges.js","../node_modules/react-vega/esm/Vega.js","../node_modules/mathjs/lib/esm/core/config.js","../node_modules/mathjs/lib/esm/utils/is.js","../node_modules/mathjs/lib/esm/utils/object.js","../node_modules/mathjs/lib/esm/core/function/config.js","../node_modules/mathjs/lib/esm/entry/configReadonly.js","../node_modules/mathjs/lib/esm/utils/number.js","../node_modules/mathjs/lib/esm/utils/bignumber/formatter.js","../node_modules/mathjs/lib/esm/utils/string.js","../node_modules/mathjs/lib/esm/error/DimensionError.js","../node_modules/mathjs/lib/esm/error/IndexError.js","../node_modules/mathjs/lib/esm/utils/array.js","../node_modules/mathjs/lib/esm/utils/factory.js","../node_modules/mathjs/lib/esm/type/resultset/ResultSet.js","../node_modules/mathjs/lib/esm/type/complex/Complex.js","../node_modules/mathjs/lib/esm/utils/lruQueue.js","../node_modules/mathjs/lib/esm/utils/function.js","../node_modules/mathjs/lib/esm/utils/bignumber/constants.js","../node_modules/mathjs/lib/esm/plain/number/constants.js","../node_modules/mathjs/lib/esm/type/bignumber/BigNumber.js","../node_modules/mathjs/lib/esm/type/matrix/Matrix.js","../node_modules/mathjs/lib/esm/type/unit/physicalConstants.js","../node_modules/mathjs/lib/esm/type/fraction/Fraction.js","../node_modules/mathjs/lib/esm/type/matrix/DenseMatrix.js","../node_modules/mathjs/lib/esm/core/function/typed.js","../node_modules/mathjs/lib/esm/utils/collection.js","../node_modules/mathjs/lib/esm/function/utils/isInteger.js","../node_modules/mathjs/lib/esm/function/utils/isNumeric.js","../node_modules/mathjs/lib/esm/plain/number/utils.js","../node_modules/mathjs/lib/esm/utils/bignumber/nearlyEqual.js","../node_modules/mathjs/lib/esm/function/relational/equalScalar.js","../node_modules/mathjs/lib/esm/utils/complex.js","../node_modules/mathjs/lib/esm/type/number.js","../node_modules/mathjs/lib/esm/plain/number/arithmetic.js","../node_modules/mathjs/lib/esm/function/arithmetic/cube.js","../node_modules/mathjs/lib/esm/function/arithmetic/multiplyScalar.js","../node_modules/mathjs/lib/esm/plain/number/bitwise.js","../node_modules/mathjs/lib/esm/plain/number/logical.js","../node_modules/mathjs/lib/esm/function/special/erf.js","../node_modules/mathjs/lib/esm/function/string/format.js","../node_modules/mathjs/lib/esm/function/string/oct.js","../node_modules/mathjs/lib/esm/plain/number/trigonometry.js","../node_modules/mathjs/lib/esm/utils/product.js","../node_modules/mathjs/lib/esm/plain/number/combinations.js","../node_modules/mathjs/lib/esm/function/probability/util/seededRNG.js","../node_modules/mathjs/lib/esm/function/probability/randomInt.js","../node_modules/mathjs/lib/esm/type/fraction/function/fraction.js","../node_modules/mathjs/lib/esm/function/arithmetic/unaryMinus.js","../node_modules/mathjs/lib/esm/function/arithmetic/addScalar.js","../node_modules/mathjs/lib/esm/function/complex/conj.js","../node_modules/mathjs/lib/esm/function/string/bin.js","../node_modules/mathjs/lib/esm/function/probability/random.js","../node_modules/mathjs/lib/esm/type/matrix/SparseMatrix.js","../node_modules/mathjs/lib/esm/type/matrix/function/matrix.js","../node_modules/mathjs/lib/esm/type/matrix/utils/algorithm01.js","../node_modules/mathjs/lib/esm/type/matrix/utils/algorithm10.js","../node_modules/mathjs/lib/esm/type/matrix/utils/algorithm13.js","../node_modules/mathjs/lib/esm/type/matrix/utils/algorithm14.js","../node_modules/mathjs/lib/esm/type/matrix/utils/algorithm03.js","../node_modules/mathjs/lib/esm/type/matrix/utils/algorithm05.js","../node_modules/mathjs/lib/esm/type/matrix/utils/algorithm11.js","../node_modules/mathjs/lib/esm/type/matrix/utils/algorithm12.js","../node_modules/mathjs/lib/esm/type/matrix/utils/algorithm07.js","../node_modules/mathjs/lib/esm/function/matrix/diag.js","../node_modules/mathjs/lib/esm/function/matrix/identity.js","../node_modules/mathjs/lib/esm/utils/noop.js","../node_modules/mathjs/lib/esm/function/matrix/size.js","../node_modules/mathjs/lib/esm/function/matrix/zeros.js","../node_modules/mathjs/lib/esm/function/string/hex.js","../node_modules/mathjs/lib/esm/function/arithmetic/round.js","../node_modules/mathjs/lib/esm/function/relational/compare.js","../node_modules/mathjs/lib/esm/function/relational/smaller.js","../node_modules/mathjs/lib/esm/function/relational/larger.js","../node_modules/mathjs/lib/esm/type/matrix/FibonacciHeap.js","../node_modules/mathjs/lib/esm/function/relational/unequal.js","../node_modules/mathjs/lib/esm/function/matrix/dot.js","../node_modules/mathjs/lib/esm/function/arithmetic/abs.js","../node_modules/mathjs/lib/esm/function/arithmetic/floor.js","../node_modules/mathjs/lib/esm/function/arithmetic/multiply.js","../node_modules/mathjs/lib/esm/error/ArgumentsError.js","../node_modules/mathjs/lib/esm/function/matrix/resize.js","../node_modules/mathjs/lib/esm/function/arithmetic/pow.js","../node_modules/mathjs/lib/esm/plain/number/probability.js","../node_modules/mathjs/lib/esm/type/bignumber/function/bignumber.js","../node_modules/mathjs/lib/esm/function/utils/numeric.js","../node_modules/mathjs/lib/esm/function/arithmetic/ceil.js","../node_modules/mathjs/lib/esm/function/arithmetic/subtract.js","../node_modules/mathjs/lib/esm/function/matrix/cross.js","../node_modules/mathjs/lib/esm/function/relational/equal.js","../node_modules/mathjs/lib/esm/function/arithmetic/fix.js","../node_modules/mathjs/lib/esm/function/arithmetic/divideScalar.js","../node_modules/mathjs/lib/esm/function/algebra/solver/lsolve.js","../node_modules/mathjs/lib/esm/type/matrix/Spa.js","../node_modules/mathjs/lib/esm/function/algebra/decomposition/lup.js","../node_modules/mathjs/lib/esm/function/algebra/sparse/csSpsolve.js","../node_modules/mathjs/lib/esm/function/matrix/det.js","../node_modules/mathjs/lib/esm/function/algebra/decomposition/qr.js","../node_modules/mathjs/lib/esm/function/matrix/inv.js","../node_modules/mathjs/lib/esm/function/arithmetic/divide.js","../node_modules/mathjs/lib/esm/type/unit/Unit.js","../node_modules/mathjs/lib/esm/function/algebra/solver/lusolve.js","../node_modules/mathjs/lib/esm/type/unit/function/unit.js","../node_modules/mathjs/lib/esm/entry/pureFunctionsAny.generated.js","../node_modules/@material-ui/core/esm/Modal/ModalManager.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js","../node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js","../node_modules/@material-ui/core/esm/Modal/Modal.js","../node_modules/@material-ui/core/esm/Grow/Grow.js","../node_modules/@material-ui/core/esm/Popover/Popover.js","../node_modules/@material-ui/core/esm/Menu/Menu.js","../node_modules/@material-ui/core/esm/Select/SelectInput.js","../node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js","../node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js","../node_modules/@material-ui/core/esm/InputBase/InputBase.js","../node_modules/@material-ui/core/esm/Input/Input.js","../node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js","../node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js","../node_modules/@material-ui/core/esm/FilledInput/FilledInput.js","../node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js","../node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js","../node_modules/@material-ui/core/esm/Select/Select.js","../../../../../src/lib/utils/assert.js","../../../../../src/lib/gltf-utils/resolve-url.ts","../../../../../src/lib/gltf-utils/get-typed-array.ts","../../../../../src/lib/gltf-utils/gltf-utils.ts","../../../../../src/lib/api/gltf-scenegraph.ts","../../../../../src/lib/gltf-utils/gltf-attribute-utils.ts","../../../../../src/lib/extensions/KHR_draco_mesh_compression.ts","../../../../../src/lib/gltf-utils/gltf-constants.ts","../../../../../src/lib/extensions/KHR_materials_unlit.ts","../../../../../src/lib/extensions/KHR_lights_punctual.ts","../../../../../src/lib/extensions/KHR_techniques_webgl.ts","../../../../../src/lib/extensions/gltf-extensions.ts","../../../../../src/lib/api/normalize-gltf-v1.js","../../../../../src/lib/extensions/KHR_binary_gltf.ts","../../../../../src/lib/api/post-process-gltf.js","../../../../../src/lib/parsers/parse-glb.ts","../../../../../src/lib/parsers/parse-gltf.ts","../../../src/gltf-loader.ts","../node_modules/@material-ui/system/esm/styleFunctionSx.js","../node_modules/@material-ui/system/esm/compose.js","../node_modules/@material-ui/system/esm/style.js","../node_modules/@material-ui/system/esm/borders.js","../node_modules/@material-ui/system/esm/display.js","../node_modules/@material-ui/system/esm/flexbox.js","../node_modules/@material-ui/system/esm/grid.js","../node_modules/@material-ui/system/esm/positions.js","../node_modules/@material-ui/system/esm/palette.js","../node_modules/@material-ui/system/esm/shadows.js","../node_modules/@material-ui/system/esm/sizing.js","../node_modules/@material-ui/system/esm/typography.js","../node_modules/@material-ui/styles/esm/styled/styled.js","../node_modules/@material-ui/core/esm/styles/styled.js","../node_modules/@material-ui/core/esm/Box/Box.js","../../../../../src/lib/worker-api/validate-worker-version.ts","../../../../../src/iterators/make-iterator/make-string-iterator.ts","../../../../../src/iterators/make-iterator/make-array-buffer-iterator.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/AwaitValue.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","../../../../../src/iterators/make-iterator/make-blob-iterator.ts","../../../../../src/iterators/make-iterator/make-stream-iterator.ts","../../../../../src/iterators/make-iterator/make-iterator.ts","../../../../../src/lib/loader-utils/get-data.ts","../../../../../src/lib/loader-utils/loader-context.ts","../../../../../src/lib/api/select-loader.ts","../../../../../src/lib/api/parse.ts","../../../../../src/lib/api/load.ts","../node_modules/d3-quadtree/src/add.js","../node_modules/d3-quadtree/src/cover.js","../node_modules/d3-quadtree/src/quad.js","../node_modules/d3-quadtree/src/x.js","../node_modules/d3-quadtree/src/y.js","../node_modules/d3-quadtree/src/quadtree.js","../node_modules/d3-quadtree/src/data.js","../node_modules/d3-quadtree/src/extent.js","../node_modules/d3-quadtree/src/find.js","../node_modules/d3-quadtree/src/remove.js","../node_modules/d3-quadtree/src/root.js","../node_modules/d3-quadtree/src/size.js","../node_modules/d3-quadtree/src/visit.js","../node_modules/d3-quadtree/src/visitAfter.js","../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../node_modules/hyphenate-style-name/index.js","../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../node_modules/css-vendor/dist/css-vendor.esm.js","../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","../node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","../../../../../src/lib/category-api/image-type.ts","../../../../../src/lib/category-api/parsed-image-api.ts","../../../../../src/lib/parsers/svg-utils.ts","../../../../../src/lib/parsers/parse-to-image.ts","../../../../../src/lib/parsers/parse-to-image-bitmap.ts","../../../../../src/lib/parsers/parse-to-node-image.ts","../../../../../src/lib/parsers/parse-image.ts","../../../src/image-loader.ts","../node_modules/@material-ui/core/esm/utils/scrollLeft.js","../node_modules/@material-ui/core/esm/internal/animate.js","../node_modules/@material-ui/core/esm/Tabs/ScrollbarSize.js","../node_modules/@material-ui/core/esm/Tabs/TabIndicator.js","../node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowLeft.js","../node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowRight.js","../node_modules/@material-ui/core/esm/TabScrollButton/TabScrollButton.js","../node_modules/@material-ui/core/esm/Tabs/Tabs.js","../../../../src/classes/uniforms.js","../../../../src/glsl-utils/get-shader-name.js","../../../../src/glsl-utils/format-glsl-error.js","../../../../src/glsl-utils/get-shader-type-name.js","../../../../src/classes/shader.js","../../../../src/classes/program-configuration.js","../../../../src/classes/program.js","../../../../src/utils/shader-utils.js","../../../../src/transform/buffer-transform.js","../../../../src/glsl-utils/get-shader-version.js","../../../../../src/modules/transform/transform.js","../../../../src/transform/transform-shader-utils.js","../../../../src/transform/texture-transform.js","../../../../src/transform/transform.js","../../../../src/utils/use-isomorphic-layout-effect.js","../../../../src/utils/inherits-from.js","../../../../src/utils/extract-jsx-layers.js","../../../../src/utils/evaluate-children.js","../../../../src/utils/extract-styles.js","../../../src/deckgl.js","../../../../src/utils/position-children-under-views.js","../node_modules/@material-ui/core/esm/internal/SwitchBase.js","../node_modules/@material-ui/core/esm/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@material-ui/core/esm/internal/svg-icons/CheckBox.js","../node_modules/@material-ui/core/esm/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@material-ui/core/esm/Checkbox/Checkbox.js","../node_modules/@material-ui/core/esm/Collapse/Collapse.js","../node_modules/@material-ui/core/esm/Accordion/Accordion.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../../../../src/classes/query.js","../../../../src/lib/animation-loop.js","../../../../src/webgl-utils/request-animation-frame.js","../../../../src/data-filter/shader-module.js","../../../../src/data-filter/aggregator.js","../../../../src/data-filter/data-filter.js","../../../../../src/modules/pbr/pbr.js","../../../../../src/modules/pbr/pbr-vertex.glsl.js","../../../../../src/modules/pbr/pbr-fragment.glsl.js","../node_modules/@material-ui/core/esm/styles/createStyles.js","../node_modules/@material-ui/system/esm/spacing.js","../node_modules/@material-ui/system/esm/memoize.js","../node_modules/@material-ui/core/esm/ListItem/ListItem.js","../node_modules/@material-ui/core/esm/MenuItem/MenuItem.js","../node_modules/@material-ui/core/esm/Slider/ValueLabel.js","../node_modules/@material-ui/core/esm/Slider/Slider.js","../node_modules/@material-ui/core/esm/List/List.js","../node_modules/@material-ui/core/esm/MenuList/MenuList.js","../node_modules/@material-ui/core/esm/FormLabel/FormLabel.js","../node_modules/@material-ui/core/esm/InputLabel/InputLabel.js"],"names":["module","exports","require","_classCallCheck","instance","Constructor","TypeError","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","_defineProperties","target","props","i","length","descriptor","_createClass","protoProps","staticProps","prototype","accessor","fn","fields","name","fname","accessorName","accessorFields","getter","path","get1","getN","field","len","error","message","Error","splitAccessPath","p","j","c","n","q","b","s","push","substring","opt","get","id","identity","_","zero","one","truthy","falsy","log$1","method","level","input","args","concat","slice","call","console","apply","None","Error$1","Warn","Info","Debug","logger","handler","arguments","this","warn","info","debug","isArray","Array","isObject","isLegalKey","mergeConfig","configs","reduce","out","source","signals","mergeNamed","r","layout","writeConfig","output","recurse","k","o","a","map","add","forEach","peek","array","toNumber","exp","sign","x","Math","log","symlog","log1p","abs","symexp","expm1","pow","exponent","pan","domain","delta","lift","ground","d0","d1","dd","panLinear","panLog","panPow","panSymlog","constant","zoom","anchor","scale","da","zoomLinear","zoomLog","zoomPow","zoomSymlog","quarter","date","Date","getMonth","utcquarter","getUTCMonth","clampRange","range","min","max","span","lo","hi","isFunction","compare","orders","ord","fmap","gen","comparator","f","keys","ascending","u","v","compare1","compareN","order","debounce","delay","tid","e","clearTimeout","setTimeout","extend","extent","extentIndex","hop","hasOwnProperty","has","object","property","NULL","fastmap","test","has$1","size","empty","undefined","set","delete","clear","clean","next","flush","threshold","left","right","center","l","t","inherits","child","parent","members","proto","create","inrange","r0","r1","isBoolean","isDate","toString","isIterable","Symbol","iterator","isNumber","isRegExp","isString","flat","replace","lerp","frac","lruCache","maxsize","curr","prev","update","merge","array0","array1","n0","n1","merged","constructor","i0","i1","repeat","str","reps","pad","padchar","align","ceil","$","JSON","stringify","toBoolean","defaultParser","parse","toDate","parser","toSet","truncate","ellipsis","visitArray","filter","visitor","_createForOfIteratorHelper","F","done","_e","it","err","normalCompletion","didErr","step","_e2","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_slicedToArray","arr","arrayWithHoles","_arr","_n","_d","_s","_i","unsupportedIterableToArray","nonIterableRest","_inherits","subClass","superClass","_typeof","_possibleConstructorReturn","self","assertThisInitialized","_createSuper","Derived","result","Super","getPrototypeOf","isNativeReflectConstruct","NewTarget","Reflect","construct","_toConsumableArray","arrayLikeToArray","iterableToArray","asyncGeneratorStep","resolve","reject","_next","_throw","arg","Promise","then","_asyncToGenerator","_extends","assign","_getPrototypeOf","setPrototypeOf","__proto__","receiver","base","desc","cssToDeviceRatio","gl","luma","clientWidth","cssToDevicePixels","cssPixel","yInvert","ratio","width","height","scalePixels","getDevicePixelRatio","useDevicePixels","windowRatio","window","Number","pixel","scaleX","y","scaleY","xHigh","yHigh","isBrowser","getIsBrowser","isPage","document","CONTEXT_DEFAULTS","webgl2","webgl1","throwOnError","manageState","canvas","createGLContext","options","assert","targetCanvas","getCanvas","onError","createBrowserContext","logInfo","instrumentGLContext","getVersion","trackContextState","copyState","global","resizeGLContext","devicePixelRatio","setDevicePixelRatio","ext","errorMessage","onCreateError","webGL","isWebGL2","vendorMasked","rendererMasked","vendor","renderer","version","shadingLanguageVersion","getContextDebugInfo","driver","WebGL2RenderingContext","clientHeight","cachedSize","clampedPixelRatio","canvasWidth","canvasHeight","toVal","mix","tmp","ReferenceError","_objectWithoutProperties","excluded","sourceSymbolKeys","indexOf","propertyIsEnumerable","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","COLOR_BUFFER_BIT","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","ZERO","ONE","SRC_COLOR","ONE_MINUS_SRC_COLOR","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","DST_ALPHA","ONE_MINUS_DST_ALPHA","DST_COLOR","ONE_MINUS_DST_COLOR","SRC_ALPHA_SATURATE","CONSTANT_COLOR","ONE_MINUS_CONSTANT_COLOR","CONSTANT_ALPHA","ONE_MINUS_CONSTANT_ALPHA","FUNC_ADD","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","BLEND_EQUATION","BLEND_EQUATION_RGB","BLEND_EQUATION_ALPHA","BLEND_DST_RGB","BLEND_SRC_RGB","BLEND_DST_ALPHA","BLEND_SRC_ALPHA","BLEND_COLOR","ARRAY_BUFFER_BINDING","ELEMENT_ARRAY_BUFFER_BINDING","LINE_WIDTH","ALIASED_POINT_SIZE_RANGE","ALIASED_LINE_WIDTH_RANGE","CULL_FACE_MODE","FRONT_FACE","DEPTH_RANGE","DEPTH_WRITEMASK","DEPTH_CLEAR_VALUE","DEPTH_FUNC","STENCIL_CLEAR_VALUE","STENCIL_FUNC","STENCIL_FAIL","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_REF","STENCIL_VALUE_MASK","STENCIL_WRITEMASK","STENCIL_BACK_FUNC","STENCIL_BACK_FAIL","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_BACK_WRITEMASK","VIEWPORT","SCISSOR_BOX","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","UNPACK_ALIGNMENT","PACK_ALIGNMENT","MAX_TEXTURE_SIZE","MAX_VIEWPORT_DIMS","SUBPIXEL_BITS","RED_BITS","GREEN_BITS","BLUE_BITS","ALPHA_BITS","DEPTH_BITS","STENCIL_BITS","POLYGON_OFFSET_UNITS","POLYGON_OFFSET_FACTOR","TEXTURE_BINDING_2D","SAMPLE_BUFFERS","SAMPLES","SAMPLE_COVERAGE_VALUE","SAMPLE_COVERAGE_INVERT","COMPRESSED_TEXTURE_FORMATS","VENDOR","RENDERER","VERSION","IMPLEMENTATION_COLOR_READ_TYPE","IMPLEMENTATION_COLOR_READ_FORMAT","BROWSER_DEFAULT_WEBGL","STATIC_DRAW","STREAM_DRAW","DYNAMIC_DRAW","ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER","BUFFER_SIZE","BUFFER_USAGE","CURRENT_VERTEX_ATTRIB","VERTEX_ATTRIB_ARRAY_ENABLED","VERTEX_ATTRIB_ARRAY_SIZE","VERTEX_ATTRIB_ARRAY_STRIDE","VERTEX_ATTRIB_ARRAY_TYPE","VERTEX_ATTRIB_ARRAY_NORMALIZED","VERTEX_ATTRIB_ARRAY_POINTER","VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","CULL_FACE","FRONT","BACK","FRONT_AND_BACK","BLEND","DEPTH_TEST","DITHER","POLYGON_OFFSET_FILL","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_COVERAGE","SCISSOR_TEST","STENCIL_TEST","NO_ERROR","INVALID_ENUM","INVALID_VALUE","INVALID_OPERATION","OUT_OF_MEMORY","CONTEXT_LOST_WEBGL","CW","CCW","DONT_CARE","FASTEST","NICEST","GENERATE_MIPMAP_HINT","BYTE","UNSIGNED_BYTE","SHORT","UNSIGNED_SHORT","INT","UNSIGNED_INT","FLOAT","DOUBLE","DEPTH_COMPONENT","ALPHA","RGB","RGBA","LUMINANCE","LUMINANCE_ALPHA","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","FRAGMENT_SHADER","VERTEX_SHADER","COMPILE_STATUS","DELETE_STATUS","LINK_STATUS","VALIDATE_STATUS","ATTACHED_SHADERS","ACTIVE_ATTRIBUTES","ACTIVE_UNIFORMS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VARYING_VECTORS","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_IMAGE_UNITS","MAX_FRAGMENT_UNIFORM_VECTORS","SHADER_TYPE","SHADING_LANGUAGE_VERSION","CURRENT_PROGRAM","NEVER","ALWAYS","LESS","EQUAL","LEQUAL","GREATER","GEQUAL","NOTEQUAL","KEEP","REPLACE","INCR","DECR","INVERT","INCR_WRAP","DECR_WRAP","NEAREST","LINEAR","NEAREST_MIPMAP_NEAREST","LINEAR_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_LINEAR","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXTURE_2D","TEXTURE","TEXTURE_CUBE_MAP","TEXTURE_BINDING_CUBE_MAP","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_CUBE_MAP_NEGATIVE_Z","MAX_CUBE_MAP_TEXTURE_SIZE","TEXTURE0","ACTIVE_TEXTURE","REPEAT","CLAMP_TO_EDGE","MIRRORED_REPEAT","TEXTURE_WIDTH","TEXTURE_HEIGHT","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT_VEC2","INT_VEC3","INT_VEC4","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","SAMPLER_2D","SAMPLER_CUBE","LOW_FLOAT","MEDIUM_FLOAT","HIGH_FLOAT","LOW_INT","MEDIUM_INT","HIGH_INT","FRAMEBUFFER","RENDERBUFFER","RGBA4","RGB5_A1","RGB565","DEPTH_COMPONENT16","STENCIL_INDEX","STENCIL_INDEX8","DEPTH_STENCIL","RENDERBUFFER_WIDTH","RENDERBUFFER_HEIGHT","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_RED_SIZE","RENDERBUFFER_GREEN_SIZE","RENDERBUFFER_BLUE_SIZE","RENDERBUFFER_ALPHA_SIZE","RENDERBUFFER_DEPTH_SIZE","RENDERBUFFER_STENCIL_SIZE","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","COLOR_ATTACHMENT0","DEPTH_ATTACHMENT","STENCIL_ATTACHMENT","DEPTH_STENCIL_ATTACHMENT","NONE","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_BINDING","RENDERBUFFER_BINDING","READ_FRAMEBUFFER","DRAW_FRAMEBUFFER","MAX_RENDERBUFFER_SIZE","INVALID_FRAMEBUFFER_OPERATION","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_COLORSPACE_CONVERSION_WEBGL","READ_BUFFER","UNPACK_ROW_LENGTH","UNPACK_SKIP_ROWS","UNPACK_SKIP_PIXELS","PACK_ROW_LENGTH","PACK_SKIP_ROWS","PACK_SKIP_PIXELS","TEXTURE_BINDING_3D","UNPACK_SKIP_IMAGES","UNPACK_IMAGE_HEIGHT","MAX_3D_TEXTURE_SIZE","MAX_ELEMENTS_VERTICES","MAX_ELEMENTS_INDICES","MAX_TEXTURE_LOD_BIAS","MAX_FRAGMENT_UNIFORM_COMPONENTS","MAX_VERTEX_UNIFORM_COMPONENTS","MAX_ARRAY_TEXTURE_LAYERS","MIN_PROGRAM_TEXEL_OFFSET","MAX_PROGRAM_TEXEL_OFFSET","MAX_VARYING_COMPONENTS","FRAGMENT_SHADER_DERIVATIVE_HINT","RASTERIZER_DISCARD","VERTEX_ARRAY_BINDING","MAX_VERTEX_OUTPUT_COMPONENTS","MAX_FRAGMENT_INPUT_COMPONENTS","MAX_SERVER_WAIT_TIMEOUT","MAX_ELEMENT_INDEX","RED","RGB8","RGBA8","RGB10_A2","TEXTURE_3D","TEXTURE_WRAP_R","TEXTURE_MIN_LOD","TEXTURE_MAX_LOD","TEXTURE_BASE_LEVEL","TEXTURE_MAX_LEVEL","TEXTURE_COMPARE_MODE","TEXTURE_COMPARE_FUNC","SRGB","SRGB8","SRGB8_ALPHA8","COMPARE_REF_TO_TEXTURE","RGBA32F","RGB32F","RGBA16F","RGB16F","TEXTURE_2D_ARRAY","TEXTURE_BINDING_2D_ARRAY","R11F_G11F_B10F","RGB9_E5","RGBA32UI","RGB32UI","RGBA16UI","RGB16UI","RGBA8UI","RGB8UI","RGBA32I","RGB32I","RGBA16I","RGB16I","RGBA8I","RGB8I","RED_INTEGER","RGB_INTEGER","RGBA_INTEGER","R8","RG8","R16F","R32F","RG16F","RG32F","R8I","R8UI","R16I","R16UI","R32I","R32UI","RG8I","RG8UI","RG16I","RG16UI","RG32I","RG32UI","R8_SNORM","RG8_SNORM","RGB8_SNORM","RGBA8_SNORM","RGB10_A2UI","TEXTURE_IMMUTABLE_FORMAT","TEXTURE_IMMUTABLE_LEVELS","UNSIGNED_INT_2_10_10_10_REV","UNSIGNED_INT_10F_11F_11F_REV","UNSIGNED_INT_5_9_9_9_REV","FLOAT_32_UNSIGNED_INT_24_8_REV","UNSIGNED_INT_24_8","HALF_FLOAT","RG","RG_INTEGER","INT_2_10_10_10_REV","CURRENT_QUERY","QUERY_RESULT","QUERY_RESULT_AVAILABLE","ANY_SAMPLES_PASSED","ANY_SAMPLES_PASSED_CONSERVATIVE","MAX_DRAW_BUFFERS","DRAW_BUFFER0","DRAW_BUFFER1","DRAW_BUFFER2","DRAW_BUFFER3","DRAW_BUFFER4","DRAW_BUFFER5","DRAW_BUFFER6","DRAW_BUFFER7","DRAW_BUFFER8","DRAW_BUFFER9","DRAW_BUFFER10","DRAW_BUFFER11","DRAW_BUFFER12","DRAW_BUFFER13","DRAW_BUFFER14","DRAW_BUFFER15","MAX_COLOR_ATTACHMENTS","COLOR_ATTACHMENT1","COLOR_ATTACHMENT2","COLOR_ATTACHMENT3","COLOR_ATTACHMENT4","COLOR_ATTACHMENT5","COLOR_ATTACHMENT6","COLOR_ATTACHMENT7","COLOR_ATTACHMENT8","COLOR_ATTACHMENT9","COLOR_ATTACHMENT10","COLOR_ATTACHMENT11","COLOR_ATTACHMENT12","COLOR_ATTACHMENT13","COLOR_ATTACHMENT14","COLOR_ATTACHMENT15","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","MAX_SAMPLES","SAMPLER_BINDING","PIXEL_PACK_BUFFER","PIXEL_UNPACK_BUFFER","PIXEL_PACK_BUFFER_BINDING","PIXEL_UNPACK_BUFFER_BINDING","COPY_READ_BUFFER","COPY_WRITE_BUFFER","COPY_READ_BUFFER_BINDING","COPY_WRITE_BUFFER_BINDING","FLOAT_MAT2x3","FLOAT_MAT2x4","FLOAT_MAT3x2","FLOAT_MAT3x4","FLOAT_MAT4x2","FLOAT_MAT4x3","UNSIGNED_INT_VEC2","UNSIGNED_INT_VEC3","UNSIGNED_INT_VEC4","UNSIGNED_NORMALIZED","SIGNED_NORMALIZED","VERTEX_ATTRIB_ARRAY_INTEGER","VERTEX_ATTRIB_ARRAY_DIVISOR","TRANSFORM_FEEDBACK_BUFFER_MODE","MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS","TRANSFORM_FEEDBACK_VARYINGS","TRANSFORM_FEEDBACK_BUFFER_START","TRANSFORM_FEEDBACK_BUFFER_SIZE","TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN","MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS","MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS","INTERLEAVED_ATTRIBS","SEPARATE_ATTRIBS","TRANSFORM_FEEDBACK_BUFFER","TRANSFORM_FEEDBACK_BUFFER_BINDING","TRANSFORM_FEEDBACK","TRANSFORM_FEEDBACK_PAUSED","TRANSFORM_FEEDBACK_ACTIVE","TRANSFORM_FEEDBACK_BINDING","FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING","FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE","FRAMEBUFFER_ATTACHMENT_RED_SIZE","FRAMEBUFFER_ATTACHMENT_GREEN_SIZE","FRAMEBUFFER_ATTACHMENT_BLUE_SIZE","FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE","FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE","FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE","FRAMEBUFFER_DEFAULT","DEPTH24_STENCIL8","DRAW_FRAMEBUFFER_BINDING","READ_FRAMEBUFFER_BINDING","RENDERBUFFER_SAMPLES","FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER","FRAMEBUFFER_INCOMPLETE_MULTISAMPLE","UNIFORM_BUFFER","UNIFORM_BUFFER_BINDING","UNIFORM_BUFFER_START","UNIFORM_BUFFER_SIZE","MAX_VERTEX_UNIFORM_BLOCKS","MAX_FRAGMENT_UNIFORM_BLOCKS","MAX_COMBINED_UNIFORM_BLOCKS","MAX_UNIFORM_BUFFER_BINDINGS","MAX_UNIFORM_BLOCK_SIZE","MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS","MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS","UNIFORM_BUFFER_OFFSET_ALIGNMENT","ACTIVE_UNIFORM_BLOCKS","UNIFORM_TYPE","UNIFORM_SIZE","UNIFORM_BLOCK_INDEX","UNIFORM_OFFSET","UNIFORM_ARRAY_STRIDE","UNIFORM_MATRIX_STRIDE","UNIFORM_IS_ROW_MAJOR","UNIFORM_BLOCK_BINDING","UNIFORM_BLOCK_DATA_SIZE","UNIFORM_BLOCK_ACTIVE_UNIFORMS","UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES","UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER","UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER","OBJECT_TYPE","SYNC_CONDITION","SYNC_STATUS","SYNC_FLAGS","SYNC_FENCE","SYNC_GPU_COMMANDS_COMPLETE","UNSIGNALED","SIGNALED","ALREADY_SIGNALED","TIMEOUT_EXPIRED","CONDITION_SATISFIED","WAIT_FAILED","SYNC_FLUSH_COMMANDS_BIT","COLOR","DEPTH","STENCIL","MIN","MAX","DEPTH_COMPONENT24","STREAM_READ","STREAM_COPY","STATIC_READ","STATIC_COPY","DYNAMIC_READ","DYNAMIC_COPY","DEPTH_COMPONENT32F","DEPTH32F_STENCIL8","INVALID_INDEX","TIMEOUT_IGNORED","MAX_CLIENT_WAIT_TIMEOUT_WEBGL","VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE","UNMASKED_VENDOR_WEBGL","UNMASKED_RENDERER_WEBGL","MAX_TEXTURE_MAX_ANISOTROPY_EXT","TEXTURE_MAX_ANISOTROPY_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_R11_EAC","COMPRESSED_SIGNED_R11_EAC","COMPRESSED_RG11_EAC","COMPRESSED_SIGNED_RG11_EAC","COMPRESSED_RGB8_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_SRGB8_ETC2","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_RGB_ATC_WEBGL","COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL","COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL","UNSIGNED_INT_24_8_WEBGL","HALF_FLOAT_OES","RGBA32F_EXT","RGB32F_EXT","FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT","UNSIGNED_NORMALIZED_EXT","MIN_EXT","MAX_EXT","SRGB_EXT","SRGB_ALPHA_EXT","SRGB8_ALPHA8_EXT","FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT","FRAGMENT_SHADER_DERIVATIVE_HINT_OES","COLOR_ATTACHMENT0_WEBGL","COLOR_ATTACHMENT1_WEBGL","COLOR_ATTACHMENT2_WEBGL","COLOR_ATTACHMENT3_WEBGL","COLOR_ATTACHMENT4_WEBGL","COLOR_ATTACHMENT5_WEBGL","COLOR_ATTACHMENT6_WEBGL","COLOR_ATTACHMENT7_WEBGL","COLOR_ATTACHMENT8_WEBGL","COLOR_ATTACHMENT9_WEBGL","COLOR_ATTACHMENT10_WEBGL","COLOR_ATTACHMENT11_WEBGL","COLOR_ATTACHMENT12_WEBGL","COLOR_ATTACHMENT13_WEBGL","COLOR_ATTACHMENT14_WEBGL","COLOR_ATTACHMENT15_WEBGL","DRAW_BUFFER0_WEBGL","DRAW_BUFFER1_WEBGL","DRAW_BUFFER2_WEBGL","DRAW_BUFFER3_WEBGL","DRAW_BUFFER4_WEBGL","DRAW_BUFFER5_WEBGL","DRAW_BUFFER6_WEBGL","DRAW_BUFFER7_WEBGL","DRAW_BUFFER8_WEBGL","DRAW_BUFFER9_WEBGL","DRAW_BUFFER10_WEBGL","DRAW_BUFFER11_WEBGL","DRAW_BUFFER12_WEBGL","DRAW_BUFFER13_WEBGL","DRAW_BUFFER14_WEBGL","DRAW_BUFFER15_WEBGL","MAX_COLOR_ATTACHMENTS_WEBGL","MAX_DRAW_BUFFERS_WEBGL","VERTEX_ARRAY_BINDING_OES","QUERY_COUNTER_BITS_EXT","CURRENT_QUERY_EXT","QUERY_RESULT_EXT","QUERY_RESULT_AVAILABLE_EXT","TIME_ELAPSED_EXT","TIMESTAMP_EXT","GPU_DISJOINT_EXT","_assertThisInitialized","transpose","a01","a02","a03","a12","a13","a23","invert","a00","a10","a11","a20","a21","a22","a30","a31","a32","a33","b00","b01","b02","b03","b04","b05","b06","b07","b08","b09","b10","b11","det","determinant","multiply","b0","b1","b2","b3","translate","z","rotate","rad","axis","b12","b20","b21","b22","hypot","glMatrix","sin","cos","rotateX","rotateY","rotateZ","getScaling","mat","m11","m12","m13","m21","m22","m23","m31","m32","m33","fromQuat","w","x2","y2","z2","xx","yx","yy","zx","zy","zz","wx","wy","wz","frustum","bottom","top","near","far","rl","tb","nf","perspective","fovy","aspect","tan","Infinity","ortho","lr","bt","lookAt","eye","up","x0","x1","y0","y1","z0","z1","eyex","eyey","eyez","upx","upy","upz","centerx","centery","centerz","withStyles","stylesOrCreator","Component","defaultTheme","_options$withTheme","withTheme","stylesOptions","classNamePrefix","useStyles","makeStyles","displayName","WithStyles","React","forwardRef","ref","classes","theme","innerRef","other","defaultProps","more","useTheme","getThemeProps","createElement","hoistNonReactStatics","withStylesWithoutDefault","Float32Array","fromValues","normalize","sqrt","dot","cross","ax","ay","az","bx","by","bz","transformMat4","m","transformMat3","transformQuat","qx","qy","qz","qw","uvx","uvy","uvz","uuvx","uuvy","uuvz","w2","angle","mag","cosine","acos","sub","sqrLen","vec","EPSILON","ARRAY_TYPE","RANDOM","random","PI","RADIANS_TO_DEGREES","DEGREES_TO_RADIANS","config","configure","round","formatValue","precision","parseFloat","ArrayBuffer","clone","func","toRadians","degrees","radians","toDegrees","asin","atan","clamp","ai","equals","epsilon","oldEpsilon","exactEquals","withEpsilon","oldPrecision","validateVector","checkNumber","checkVector","callerName","deprecated","setAxisAngle","aw","bw","calculateW","slerp","omega","cosom","sinom","scale0","scale1","a0","a1","a2","a3","invDot","conjugate","fromMat3","fRoot","fTrace","vec4","squaredLength","rotationTo","tmpvec3","vec3","xUnitVec3","yUnitVec3","temp1","temp2","matr","mat3","DEFAULT_LIGHT_COLOR","DEFAULT_ATTENUATION","DEFAULT_LIGHT_POSITION","idCount","color","intensity","position","getAttenuation","layer","projectedLight","viewport","coordinateOrigin","projectPosition","coordinateSystem","fromCoordinateSystem","COORDINATE_SYSTEM","fromCoordinateOrigin","modelMatrix","project_uCameraPosition","getUniformsFromViewport","getSolarPosition","timestamp","latitude","longitude","longitudeWestInRadians","phi","d","toJulianDay","toDays","dates","L","meanAnomaly","M","C","getEclipticLongitude","days","declination","getDeclination","rightAscension","getRightAscension","getSunCoords","H","getSiderealTime","azimuth","getAzimuth","altitude","getAltitude","getSunlightDirection","eclipticLongitude","lambda","hourAngle","latitudeInRadians","others","fs","modules","setParameters","withParameters","framebuffer","params","clearColor","outputBuffer","moduleSettings","uniforms","texture","texSize","inputBuffer","parameters","depthWrite","depthTest","normalizeShaderModule","getFragmentShaderForRenderPass","idn","createPasses","index","passes","switchBuffer","pass","FILTER_FS_TEMPLATE","SAMPLER_FS_TEMPLATE","getDistanceScales","unitsPerDegree","unitsPerMeter","unitsPerMeter2","metersPerUnit","unitsPerDegree2","degreesPerUnit","opts","nearZMultiplier","farZMultiplier","resolution","viewMatrix","halfFov","relativeScale","GLOBE_RADIUS","fovyRadians","focalDistance","unprojectOption","targetZ","unproject","topLeft","pixelUnprojectionMatrix","coord","transformVector","coord0","coord1","lt","lSqr","l0Sqr","l1Sqr","sSqr","dSqr","dr","unprojectPosition","X","Y","Z","lng","lat","cosPhi","D","fromPosition","coords","PROJECTION_MODE","matrix","vector","DEFAULT_STATE","pitch","bearing","maxPitch","minPitch","startZoom","startRotatePos","startBearing","startPitch","startZoomPosition","use2D","spherical","_viewportProps","direction","pos","_getUpdatedState","deltaAngleX","deltaAngleY","newRotation","_move","speed","getDirection","fromProps","viewState","FirstPersonState","newProps","mod","dir","getDirectionFromBearingAndPitch","getMeterZoom","type","FirstPersonViewport","_getControllerProps","FirstPersonController","FirstPersonView","minZoom","GlobeViewport","GlobeController","GlobeView","LINEARLY_INTERPOLATED_PROPS","DEFAULT_OPTS","curve","extract","required","flyToViewport","startProps","endProps","transitionDuration","getFlyToDuration","DEFAULT","LNGLAT","METER_OFFSETS","LNGLAT_OFFSETS","CARTESIAN","WEB_MERCATOR","GLOBE","WEB_MERCATOR_AUTO_OFFSET","IDENTITY","UNIT","common","meters","pixels","EVENTS","click","panstart","panmove","panend","baseIsEqual","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","capitalize","string","_formatMuiErrorMessage","charAt","toUpperCase","divisor","modulus","log2","a4","a5","a6","a7","a8","a9","a14","a15","b4","b5","b6","b7","b8","b9","b13","b14","b15","mul","condition","PI_4","zoomToScale","scaleToZoom","lngLatToWorld","phi2","worldToLngLat","lambda2","highPrecision","latCosine","unitsPerDegreeY","altUnitsPerMeter","latCosine2","unitsPerDegreeY2","altUnitsPerDegree2","altUnitsPerMeter2","addMetersToLngLat","lngLatZ","xyz","worldspace","newLngLat","newZ","getViewMatrix","vm","mat4","getProjectionParameters","altitudeToFovy","fovyToAltitude","pitchRadians","topHalfSurfaceDistance","fov","getProjectionMatrix","worldToPixels","pixelProjectionMatrix","pixelsToWorld","vec2","minExtent","maxZoom","padding","offset","nw","west","se","east","targetSize","offsetX","offsetY","centerLngLat","unprojectOps","bottomLeft","bottomRight","angleToGround","unprojectOnFarPlane","topRight","distanceScales","bind","project","vpm","mInverse","worldPosition","targetZWorld","fromLocation","getMapCenterByLngLatPosition","lngLat","fitBounds","bounds","WebMercatorViewport","corners","getBoundingRegion","getBounds","normalizeViewportProps","halfHeightPixels","minLatitude","maxLatitude","VIEWPORT_TRANSITION_PROPS","getFlyToTransitionParams","u1","startValue","endValue","rho","w0","scaleIncrement","newZoom","newCenterWorld","newCenter","maxDuration","duration","screenSpeed","startCenter","startScale","endZoom","endCenter","startCenterXY","endCenterXY","uDelta","w1","_u1","rho2","S","INDEX_OFFSETS","uid","tesselateTruncatedCone","attributes","indices","bottomRadius","topRadius","nradial","nvertical","verticalAxis","topCap","bottomCap","extra","numVertices","slant","msin","mcos","mpi","cosSlant","sinSlant","start","end","vertsAroundEdge","Uint16Array","indexOffset","positions","normals","texCoords","i3","i2","ringRadius","POSITION","NORMAL","TEXCOORD_0","radius","cap","Boolean","ICO_POSITIONS","ICO_INDICES","tesselateIcosaHedron","iterations","PI2","getMiddlePoint","pointMemo","maxi","xm","ym","zm","indices2","in1","in2","in3","iu1","iu2","iu3","v1","v2","u2","x3","y3","z3","v3","u3","vec1","normal","newIndex","tesselatePlane","flipCull","unpack","c1len","c2len","subdivisions1","subdivisions2","numVertsAcross","geometry","vertexCount","unpackedAttributes","attribute","unpackedValue","unpackIndexedGeometry","tesselateSphere","nlat","nlong","latRange","longRange","theta","sinTheta","cosTheta","sinPhi","ux","uy","uz","numVertsAround","fp64ify","startIndex","hiPart","loPart","fp64LowPart","fp64ifyMatrix4","matrixFP64","CONST_UNIFORMS","fp64","vs","dependencies","getUniforms","IDENTITY_MATRIX","DEFAULT_MODULE_OPTIONS","projectionMatrix","cameraPositionWorld","lightDirection","dirlight","t0","t1","newInterval","floori","offseti","count","interval","floor","stop","previous","setTime","every","isFinite","day","setHours","setDate","getDate","durationSecond","getTimezoneOffset","durationHour","weekday","getDay","durationDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","utcDay","setUTCHours","setUTCDate","getUTCDate","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","year","setMonth","setFullYear","getFullYear","month","hour","getMilliseconds","getSeconds","getMinutes","durationMinute","getHours","minute","second","getUTCSeconds","millisecond","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","utcMonth","utcHour","setUTCMinutes","getUTCHours","utcMinute","setUTCSeconds","getUTCMinutes","mid","NaN","ascendingComparator","e10","e5","e2","tickStep","step0","step1","LN10","YEAR","QUARTER","MONTH","WEEK","DATE","DAY","DAYOFYEAR","HOURS","MINUTES","SECONDS","MILLISECONDS","TIME_UNITS","UNITS","timeUnits","units","unit","sort","defaultSpecifiers","timeUnitSpecifier","specifiers","fmt","join","trim","localYear","dayofyear","localDayOfYear","week","localWeekNum","timeDay","timeWeek","localFirst","localDate","utcdayofyear","utcDayOfYear","utcweek","utcWeekNum","UTC","utcWeek","utcFirst","utcDate","inv","newDate","phase","getUnit","firstDay","localGet","localInv","timeFloor","utcGet","getUTCMilliseconds","utcInv","utcFloor","timeIntervals","timeYear","timeMonth","timeHour","timeMinute","timeSecond","timeMillisecond","utcIntervals","utcSecond","utcMillisecond","timeInterval","utcInterval","ival","timeOffset","utcOffset","sequence","timeSequence","utcSequence","Milli","Seconds","Minutes","Hours","Day","Month","Year","intervals","bin","maxbins","bisector","product","createProxy","mapping","Proxy","_receiver","setItem","getItem","deleteProperty","deleteItem","containsItem","isKeyError","__zarr__","ContainsArrayError","ContainsGroupError","ArrayNotFoundError","GroupNotFoundError","PermissionError","KeyError","TooManyIndicesError","selection","shape","RangeError","BoundsCheckError","InvalidSliceError","from","to","stepSize","reason","NegativeStepError","ValueError","HTTPError","code","_slice","sliceIndices","MAX_SAFE_INTEGER","adjustIndices","ensureArray","selectionToSliceIndices","sliceIndicesResult","outShape","dimLength","normalizeArraySelection","convertIntegerSelectionToSlices","replaceEllipsis","dimSelection","normalizeIntegerSelection","isIntegerArray","ellipsisIndex","numEllipsis","numItemsLeft","numItemsRight","numItems","numNewItems","newItem","fill","numMissing","checkSelectionLength","isSlice","isContiguousSlice","isContiguousSelection","iterables","iterators","results","BasicIndexer","dimIndexers","arrayShape","dimChunkLength","chunks","IntDimIndexer","SliceDimIndexer","dropAxes","dimIndexerIterables","iter","dimIndexerProduct","dimProjections","chunkCoords","chunkSelection","outSelection","dimChunkIndex","dimChunkSelection","dimOutSelection","dimOffset","numChunks","dimChunkIndexFrom","dimChunkIndexTo","dimLimit","dimChunkSelStart","dimChunkSelStop","dimOutOffset","remainder","dimChunkNumItems","containsArray","store","normalizeStoragePath","prefix","pathToPrefix","containsGroup","requireParentGroup","chunkStore","overwrite","segments","split","initGroupMetadata","metadata","zarr_format","initGroup","initArrayMetadata","dtype","compressor","fillValue","filters","serializedFillValue","parseMetadata","IS_NODE","Buffer","isBuffer","utf8Decoder","TextDecoder","bytes","Uint8Array","decode","Attributes","readOnly","cache","cachedValue","getNoSync","data","putNoSync","setNoSync","asObject","delNoSync","getNestedArrayConstructor","byteLength","sliceNestedArray","_sliceNestedArray","currentSlice","outputSize","newArrData","newArr","typedArrayConstructor","setNestedArrayToScalar","destShape","_setNestedArrayToScalar","dstArr","setNestedArray","sourceShape","_setNestedArray","sourceArr","flattenNestedArray","constr","outArr","_flattenNestedArray","nextShape","mult","NestedArray","dataIsTypedArray","BYTES_PER_ELEMENT","getTypedArrayDtypeString","normalizeShape","buffer","startsWith","numShapeElements","parseInt","numDataElements","typeConstructor","createNestedArray","sliceResult","rangeTypedArray","tContructor","setRawArrayToScalar","dstStrides","dstShape","dstSelection","_setRawArrayToScalar","dstSliceIndices","currentDstSlice","nextDstSliceIndices","currentDstStride","nextDstStrides","subarray","setRawArray","sourceStrides","_setRawArray","currentSourceStride","nextSourceStrides","setRawArrayFromChunkItem","sourceSelection","_setRawArrayFromChunkItem","sourceSliceIndices","currentSourceSlice","nextSourceSliceIndices","sfrom","sstep","RawArray","strides","getStrides","Events","EE","context","once","addListener","emitter","event","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","events","names","listeners","handlers","ee","listenerCount","emit","removeListener","on","removeAllListeners","off","prefixed","TimeoutError","pTimeout","promise","milliseconds","fallback","timer","timeoutError","cancel","onFinally","val","pFinally","HTTPMethod","first","_queue","run","element","priority","lower_bound_1","default","splice","item","shift","p_timeout_1","_intervalCount","_intervalEnd","_pendingCount","_resolveEmpty","_resolveIdle","carryoverConcurrencyCount","intervalCap","concurrency","autoStart","queueClass","priority_queue_1","_carryoverConcurrencyCount","_isIntervalIgnored","_intervalCap","_interval","_queueClass","_timeout","timeout","_throwOnTimeout","throwOnTimeout","_isPaused","_tryToStartAnother","_onInterval","_initializeIntervalIfNeeded","_timeoutId","now","_intervalId","_onResumeInterval","clearInterval","_resolvePromises","canInitializeInterval","_isIntervalPaused","_doesIntervalAllowAnother","_doesConcurrentAllowAnother","dequeue","setInterval","_processQueue","operation","enqueue","functions","all","function_","existingResolve","_concurrency","newConcurrency","ZarrArray","cacheMetadata","cacheAttrs","_chunkStore","keyPrefix","meta","getCodec","attrKey","attrs","metaKey","metaStoreValue","reloadMetadata","getBasicSelection","asRaw","concurrencyLimit","progressCallback","getBasicSelectionND","indexer","getSelection","outDtype","outSize","chunkSize","itr","proj","chunkProjection","decodeDirectToRawArray","queue","PQueue","progress","queueSize","chunkGetItem","onIdle","_chunkDataShape","chunkDataShape","cKey","chunkKey","cdata","decodeChunk","decodedChunk","isTotalSlice","toNestedArray","chunk","chunkBufferToRawArray","storeOptions","parts","fillTypeValue","fill_value","loadMetadataForConstructor","MemoryStore","root","getParent","requireParent","DEFAULT_METHODS","HEAD","GET","PUT","HTTPStore","url","fetchOptions","supportedMethods","Set","joinUrlParts","fetch","status","String","arrayBuffer","TextEncoder","encode","body","_item","Group","absolute","itemPath","getOptsForArrayCreation","openGroup","mode","normalizeStoreArgument","registry","Map","addCodec","importFn","codec","fromConfig","normalizeChunks","normalizeOrder","isNaN","POSITIVE_INFINITY","NEGATIVE_INFINITY","initArray","DTYPE_TYPEDARRAY_MAPPING","Int8Array","Int16Array","Uint32Array","Int32Array","Float64Array","PriorityQueue","chunkData","ensureByteArray","includes","byteSwapInplace","toTypedArray","setBasicSelection","setBasicSelectionND","setSelection","selectionShape","chunkValue","arrayEquals1D","getChunkValue","chunkSetItem","dtypeConstr","flatten","chunkStoreData","dBytes","chunkNestedArray","encodeChunk","byteSwap","cbytes","openArray","ReactCSS","loop","handleActive","handleHover","hover","_flattenNames2","_interopRequireDefault","_mergeClasses2","_autoprefix2","_hover3","_active2","_loop3","__esModule","_len","activations","_key","activeNames","useForkRef","refA","refB","refValue","setRef","onlyTreeNodeWarned","warnOnlyTreeNode","warning","arrDel","list","arrAdd","posToArr","getPosition","isTreeNode","node","getNodeChildren","children","toArray","isCheckDisabled","_ref","disabled","disableCheckbox","traverseTreeNodes","treeNodes","callback","processNode","childList","parentPos","Children","subNode","subIndex","mapChildren","getDragNodesKeys","_node$props","eventKey","dragNodesKeys","_ref2","calcDropPosition","treeNode","clientY","_treeNode$selectHandl","selectHandle","getBoundingClientRect","des","calcSelectedKeys","selectedKeys","multiple","keyListToString","keyList","internalProcessProps","convertDataToTree","treeData","processer","_ref3$processProps","processProps","_ref4","childrenNodes","TreeNode","convertTreeToEntities","_ref5","initWrapper","processEntity","onProcessFinished","posEntities","keyEntities","wrapper","entity","parseCheckedKeys","keyProps","checkedKeys","halfCheckedKeys","checked","halfChecked","conductCheck","isCheck","checkStatus","conductUp","everyChildChecked","someChildChecked","_ref6","childKey","childChecked","childHalfChecked","conductDown","conduct","checkedKeyList","halfCheckedKeyList","conductExpandParent","expandedKeys","getDataAndAria","substr","quickselect","quickselectStep","sd","newLeft","newRight","swap","defaultCompare","isDataView","view","DataView","floatView","uint32View","baseTable","shiftTable","mantissaTable","exponentTable","offsetTable","convertToNumber","float16bits","getFloat16","dataView","byteOffset","getUint16","keepComments","keepWhitespace","openBracketCC","charCodeAt","closeBracketCC","minusCC","slashCC","exclamationCC","singleQuoteCC","doubleQuoteCC","openCornerBracketCC","closeCornerBracketCC","parseChildren","tagName","closeStart","parsedText","startCommentPos","toLowerCase","cdataEndIndex","startDoctype","encapsuled","parseNode","text","parseText","trimmed","parseName","NoChildNodes","noChildNodes","parseString","startChar","startpos","findElements","RegExp","attrName","attrValue","exec","lastIndexOf","dept","kids","simplify","_attributes","setPos","fieldTagNames","fieldTags","arrayFields","BitsPerSample","ExtraSamples","SampleFormat","StripByteCounts","StripOffsets","StripRowCounts","TileByteCounts","TileOffsets","SubIFDs","fieldTypeNames","fieldTypes","photometricInterpretations","ExtraSamplesValues","LercParameters","LercAddCompression","geoKeyNames","1024","1025","1026","2048","2049","2050","2051","2052","2053","2054","2055","2056","2057","2058","2059","2060","2061","2062","3072","3073","3074","3075","3076","3077","3078","3079","3080","3081","3082","3083","3084","3085","3086","3087","3088","3089","3090","3091","3092","3093","3094","3095","3096","4096","4097","4098","4099","geoKeys","fromWhiteIsZero","raster","rgbRaster","fromBlackIsZero","fromPalette","colorMap","greenOffset","blueOffset","mapIndex","fromCMYK","cmykRaster","fromYCbCr","yCbCrRaster","Uint8ClampedArray","cb","cr","fromCIELab","cieLabRaster","g","decodeRowAcc","row","stride","decodeRowFloatingPoint","bytesPerSample","wc","copy","applyPredictor","block","predictor","bitsPerSample","planarConfiguration","A","BaseDecoder","fileDirectory","decodeBlock","decoded","Predictor","isTiled","tileWidth","TileWidth","ImageWidth","tileHeight","TileLength","RowsPerStrip","ImageLength","PlanarConfiguration","RawDecoder","I","memory","B","Q","E","Request","URL","Response","WebAssembly","instantiateStreaming","headers","instantiate","Instance","__wbindgen_wasm_module","freeze","decompress","__wbindgen_add_to_stack_pointer","__wbindgen_malloc","G","N","__wbindgen_free","endsWith","LZWDecoder","nbytes","maxUncompressedSize","dctZigZag","buildHuffmanTable","codeLengths","values","pop","decodeScan","initialOffset","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","mcusPerLine","progressive","startOffset","bitsData","bitsCount","readBit","nextByte","decodeHuffman","tree","bit","receive","initialLength","receiveAndExtend","eobrun","successiveACNextValue","successiveACState","decodeMcu","component","decodeFunction","mcu","col","mcuCol","blockRow","blockCol","h","blocks","blocksPerLine","decodeFn","componentsLength","huffmanTableDC","diff","pred","rs","huffmanTableAC","marker","mcuExpected","blocksPerColumn","mcusPerColumn","usedResetInterval","buildComponentData","lines","samplesPerLine","R","quantizeAndInverse","dataOut","dataIn","v0","v4","v5","v6","v7","qt","quantizationTable","sample","scanLine","line","JpegStreamReader","jfif","adobe","quantizationTables","huffmanTablesAC","huffmanTablesDC","resetFrames","frames","readUint16","readDataBlock","prepareComponents","componentId","maxH","maxV","scanLines","blocksPerLineForMcu","blocksPerColumnForMcu","fileMarker","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesEnd","quantizationTableSpec","tableData","extended","componentsOrder","componentsCount","qId","quantizationIdx","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","tableSpec","successiveApproximation","processed","cp","outComponents","oi","JpegDecoder","reader","JPEGTables","getResult","zero$1","buf","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES$1","_dist_code","_length_code","MAX_MATCH$1","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","bi_reverse","res","gen_codes","bl_count","bits","next_code","MAX_BITS$1","init_block","LITERALS$1","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","matches","bi_windup","smaller","depth","_n2","_m2","pqdownheap","heap","heap_len","compress_block","ltree","dtree","lc","lx","d_buf","l_buf","build_tree","stree","heap_max","xbits","overflow","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block$1","stored_len","last","header","copy_block","trees","_tr_init","LENGTH_CODES$1","L_CODES$1","tr_static_init","l_desc","d_desc","bl_desc","_tr_stored_block","_tr_flush_block","opt_lenb","static_lenb","max_blindex","strm","data_type","black_mask","detect_data_type","BL_CODES$1","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank","send_all_trees","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","bi_flush","adler32_1","adler","s1","s2","crcTable","table","makeTable","crc32_1","crc","messages","2","1","0","constants$2","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","Z_NO_FLUSH$2","Z_FULL_FLUSH$1","Z_FINISH$3","Z_BLOCK$1","Z_OK$3","Z_STREAM_END$3","Z_STREAM_ERROR$2","Z_DATA_ERROR$2","Z_BUF_ERROR$1","Z_DEFAULT_COMPRESSION$1","Z_DEFAULT_STRATEGY$1","Z_DEFLATED$2","errorCode","msg","HASH","hash_shift","hash_mask","flush_pending","state","avail_out","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","avail_in","next_in","wrap","total_in","longest_match","cur_match","match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","limit","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","window_size","hash_size","head","insert","ins_h","deflate_fast","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","configuration_table","max_block_size","pending_buf_size","max_start","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","HEAP_SIZE","MAX_BITS","deflateResetKeep","deflateReset","ret","deflateInit2","windowBits","memLevel","deflate_1$2","deflateInit","deflateSetHeader","deflate","beg","old_flush","hcrc","comment","time","os","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","dictLength","tmpDict","avail","deflateInfo","_has","sources","STR_APPLY_UIA_OK","fromCharCode","__","_utf8len","strings","c2","m_pos","str_len","buf_len","utf16buf","c_len","buf2binstring","zstream","toString$1","Z_NO_FLUSH$1","Z_FINISH$2","Z_OK$2","Z_STREAM_END$2","Z_DEFLATED$1","Deflate$1","raw","gzip","ended","dict","_dict_set","flush_mode","_flush_mode","onData","onEnd","inffast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","lbase","lext","dbase","dext","inftrees","lens","lens_index","codes","table_index","work","incr","low","mask","here_bits","here_op","here_val","drop","used","huff","base_index","MAXBITS","offs","extra_index","Z_FINISH$1","Z_OK$1","Z_STREAM_END$1","Z_NEED_DICT$1","Z_STREAM_ERROR$1","Z_DATA_ERROR$1","Z_MEM_ERROR$1","zswap32","InflateState","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","lendyn","distdyn","back","was","lenfix","distfix","inflateResetKeep","inflateReset","inflateReset2","inflateInit2","virgin","fixedtables","updatewindow","src","inflate_1$2","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","inf_leave","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","inflateInfo","gzheader","Inflate$1","inflate$1","inflator","last_avail_out","next_out_utf8","tail","utf8str","inflate_1$1","Inflate","inflateRaw","ungzip","constants","inflate_1","DeflateDecoder","PackbitsDecoder","getInt8","getUint8","LercDecoder","samplesPerPixel","SamplesPerPixel","addCompression","bandInterleavedData","pixelInterleavedData","lengthPerSample","lercData","Lerc","interleavePixels","getDecoder","Compression","copyNewSize","resampleNearest","valueArrays","inWidth","inHeight","outWidth","outHeight","relX","relY","newArray","cy","cx","resampleBilinear","rawY","yl","yh","rawX","tx","xl","xh","ll","hl","lh","hh","resample","resampleNearestInterleaved","valueArray","samples","resampleBilinearInterleaved","resampleInterleaved","sum","arrayForType","format","needsNormalization","normalizeArray","inBuffer","samplesToTransfer","outArray","bitMask","bitsPerLine","lineBitOffset","pixelBitOffset","bitOffset","outIndex","innerBitOffset","getUint32","GeoTIFFImage","littleEndian","tiles","getWidth","getHeight","getTileWidth","getTileHeight","getSampleByteSize","sampleIndex","getInt16","getInt32","getFloat32","getFloat64","getSampleFormat","getBitsPerSample","poolOrDecoder","signal","numTilesPerRow","numTilesPerCol","byteCount","request","sampleFormat","getSamplesPerPixel","getBlockHeight","imageWindow","interleave","resampleMethod","minXTile","maxXTile","minYTile","maxYTile","windowWidth","bytesPerPixel","getBytesPerPixel","srcSampleOffsets","sampleReaders","getReaderForSample","promises","yTile","xTile","si","getTileOrStrip","tile","blockHeight","firstLine","firstCol","lastLine","lastCol","ymax","xmax","pixelOffset","windowCoordinate","resampled","wnd","pool","imageWindowWidth","imageWindowHeight","numPixels","getArrayForSample","_readRaster","enableAlpha","pi","PhotometricInterpretation","readRasters","subOptions","ColorMap","ModelTiepoint","tiePoints","GDAL_METADATA","xmlDom","items","GDAL_NODATA","modelTransformation","ModelTransformation","referenceImage","modelPixelScale","ModelPixelScale","getResolution","refResX","refResY","refResZ","GTRasterTypeGeoKey","origin","getOrigin","DataView64","_dataView","combined","isSafeInteger","isNegative","carrying","byte","DataSlice","sliceOffset","bigTiff","_sliceOffset","_littleEndian","_bigTiff","sliceTop","readUint32","readUint64","itemsToObject","fromEntries","parseHeaders","kv","parseContentType","rawContentType","param","parseContentRange","rawContentRange","parseByteRanges","responseArrayBuffer","boundary","decoder","startBoundary","endBoundary","innerText","endOfHeaders","startOfData","fileSize","Block","BlockGroup","blockIds","BlockedSource","blockSize","cacheSize","blockCache","LRUCache","blockRequests","blockIdsToFetch","abortedBlockIds","slices","missingBlockIds","allBlockIds","firstBlockOffset","current","blockId","wait","fetchBlocks","missingRequests","allSettled","abortedBlockRequests","aborted","AbortError","failedBlocks","AggregateError","requiredBlocks","zip","readSliceData","groups","groupBlocks","groupRequests","groupIndex","group","response","blockOffset","del","sortedBlockIds","lastBlockId","blockIdLow","blockIdHigh","sliceData","sliceView","blockInnerOffset","rangeInnerOffset","usedBlockLength","blockView","BaseSource","FetchResponse","BaseResponse","FetchClient","credentials","BaseClient","XHRResponse","xhr","getResponseHeader","XHRClient","XMLHttpRequest","open","responseType","entries","setRequestHeader","onload","onerror","onabort","send","abort","addEventListener","constructRequest","RemoteSource","client","maxRanges","allowFullFile","_fileSize","fetchSlices","fetchSlice","Range","ok","getHeader","getData","byteRanges","maybeWrapInBlockedSource","makeFetchSource","blockOptions","makeXHRSource","makeHttpSource","HttpClient","makeRemoteSource","forceXHR","clientOptions","FileReaderSource","file","blob","FileReader","readAsArrayBuffer","makeFileReaderSource","tagName2Code","geoKeyName2Code","name2code","_binBE","nextZero","oincr","readUshort","buff","readShort","ui8","i16","readInt","i32","readUint","ui32","readASCII","readFloat","times","fl32","readDouble","fl64","writeUshort","writeUint","writeASCII","writeDouble","getFieldTypeLength","fieldType","ASCII","SBYTE","UNDEFINED","SSHORT","LONG","SLONG","IFD","RATIONAL","SRATIONAL","LONG8","SLONG8","IFD8","parseGeoKeyDirectory","rawGeoKeyDirectory","GeoKeyDirectory","geoKeyDirectory","location","getValues","dataSlice","readMethod","fieldTypeLength","readUint8","readInt8","readInt16","readInt32","readInt64","readFloat32","readFloat64","ImageFileDirectory","nextIFDByteOffset","GeoTIFFImageIndexError","GeoTIFFBase","resX","resY","bbox","getImage","firstImage","usedImage","getImageCount","imageCount","imgBBox","getBoundingBox","oX","oY","rX","rY","usedBBox","allImages","image","subfileType","SubfileType","newSubfileType","NewSubfileType","imgResX","imgResY","imageResX","imageResY","GeoTIFF","firstIFDOffset","ifdRequests","ghostValues","fallbackSize","entrySize","offsetSize","getSlice","numDirEntries","byteSize","covers","entryCount","fieldTag","typeCount","fieldValues","valueOffset","actualOffset","readOffset","fieldDataSlice","parseFileDirectoryAt","requestIFD","previousIfd","ifd","hasNext","heuristicAreaSize","detectionString","valuesString","metadataSize","fullString","close","headerData","BOM","magicNumber","getUint64","fromUrl","fromSource","fromBlob","RENDERING_MODES","RENDERING_MODES2","channels$1","defines","SAMPLER_TYPE","COLORMAP_FUNCTION","DEFAULT_COLOR_OFF","MAX_CHANNELS","DTYPE_VALUES","Uint8","GL","dataFormat","sampler","Uint16","Uint32","Float32","Int8","Int16","Int32","Float64","cast","COLORMAPS","padWithDefault","defaultValue","padWidth","getDtypeValues","valid","padContrastLimits","contrastLimits","channelsVisible","maxSliderValue","newContrastLimits","slider","padSize","lengths","acc","getPhysicalSizeScalingMatrix","loader","physicalSizes","Matrix4","coreShaderModule","validateWebGL2Filter","interpolation","canShowFloat","hasFeature","FEATURES","TEXTURE_FLOAT","canShowLinear","TEXTURE_FILTER_LINEAR_FLOAT","getRenderingAttrs$1","shaderModule","isLinear","upgradedShaderModule","defaultProps$b","pickable","channelData","XRLayer","extensionDefinesDeckglProcessIntensity","_isHookDefinedByExtensions","newChannelsModule","inject","project32","picking","hookName","extensions","some","shaders","getShaders","definesInjection","moduleDefinesInjection","pixelStorei","getAttributeManager","use64bitPositions","calculatePositions","noAlloc","setState","numInstances","programManager","ProgramManager","getDefaultProgramManager","mutateStr","processStr","_hookFunctions","addShaderHook","textures","tex","oldProps","changeFlags","rest","extensionsChanged","model","_getModel","invalidateAll","loadChannelTextures","attributeManager","invalidate","Model","Geometry","drawMode","isInstanced","numTextures","paddedContrastLimits","setUniforms","draw","channel0","channel1","channel2","channel3","channel4","channel5","dataToTexture","Texture2D","mipmaps","Layer","layerName","PHOTOMETRIC_INTERPRETATIONS","WhiteIsZero","BlackIsZero","Palette","TransparencyMask","CMYK","YCbCr","CIELab","ICCLab","defaultProps$a","BitmapLayer$1","BitmapLayerWrapper","photometricInterpretationShader","photometricInterpretation","transparentColorInHook","useTransparentColor","transparentColorVector","getPhotometricInterpretationShader","BitmapLayer","transparentColor","getTransparentColor","CompositeLayer","getChannelStats","mean","sumSquared","firstQuartileLocation","thirdQuartileLocation","median","q1","q3","cutoffArr","topCutoffLocation","bottomCutoffLocation","intToRgba","int","isInteger","setInt32","isInterleaved","lastDimSize","getLabels","dimOrder","reverse","getDims","labels","lookup","getImageSize","interleaved","prevPowerOf2","defaultProps$9","renderSubLayers","tileSize","tileId","viewportId","MultiscaleImageLayerBase","tileset","_viewport","TileLayer","COLOR_PALETTE","getDefaultPalette","padColors","colors","newColors","defaultProps$8","lensEnabled","lensSelection","lensRadius","lensBorderColor","lensBorderRadius","LensExtension","getCurrentLayer","isComposite","onMouseMove","mousePosition","layerView","deck","viewManager","views","makeViewport","containsPixel","offsetMousePosition","unprojectLensBounds","eventManager","pointermove","pointerleave","wheel","leftMouseBound","bottomMouseBound","rightMouseBound","topMouseBound","leftMouseBoundScaled","bottomMouseBoundScaled","rightMouseBoundScaled","topMouseBoundScaled","majorLensAxis","minorLensAxis","lensCenter","selections","LayerExtension","extensionName","colorPalette","defaultProps$7","opacity","ColorPaletteExtension","additiveColormap","defaultProps$6","colormap","AdditiveColormapExtension","defaultProps$5","getRaster","onClick","onViewportLoad","ImageLayer","abortController","loaderChanged","selectionsChanged","AbortController","dataPromises","rasters","catch","sourceLayer","defaultProps$4","onHover","maxRequests","refinementStrategy","excludeBackground","MultiscaleImageLayer","onTileError","getTileData","getTile","tiledLayer","zoomOffset","getScale","updateTriggers","lowestResolution","implementsGetRaster","layerModelMatrix","visible","defaultProps$3","getRasterSize","boundingBox","boundingBoxColor","boundingBoxOutlineWidth","viewportOutlineColor","viewportOutlineWidth","overviewScale","OverviewLayer","PolygonLayer","getPolygon","filled","stroked","getLineColor","getLineWidth","getVivId","makeBoundingBox","OrthographicView","getDefaultInitialViewState","viewSize","zoomBackOff","use3d","physicalSizeScalingMatrix","loaderInitialViewState","transformPoint","ScaleBarLayer","barLength","barHeight","numUnits","viewLength","yCoord","xLeftCoord","LineLayer","getSourcePosition","getTargetPosition","getColor","TextLayer","getSize","fontFamily","sizeUnits","sizeScale","characterSet","channels","RENDERING_MODES_BLEND","MAX_INTENSITY_PROJECTION","_BEFORE_RENDER","_RENDER","_AFTER_RENDER","MIN_INTENSITY_PROJECTION","ADDITIVE","RENDERING_MODES_COLORMAP","CUBE_STRIP","defaultProps$1","xSlice","ySlice","zSlice","clippingPlanes","renderingMode","resolutionMatrix","getRenderingAttrs","XR3DLayer","channelsModules","discardColormaps","discardRegex","removeExtraColormapFunctionsFromShader","NUM_PLANES","loadTexture","scaleMatrix","viewMatrixInverse","paddedColors","invertedScaleMatrix","invertedResolutionMatrix","paddedClippingPlanes","transform","Plane","plane","distances","distance","eye_pos","volume0","volume1","volume2","volume3","volume4","volume5","Texture3D","onUpdate","downsampleDepth","depthDownsampled","rasterSize","TypedArray","globalThis","volumeData","depthSelection","rasterData","volIndex","rasterIndex","getTextLayer","useProgressIndicator","useWebGL1Warning","VolumeLayer","resolutionChanged","clearState","totalRequests","volumePromises","getVolume","volumes","volume","_jsxFileName$3","OverviewState","PureComponent","OFFSETS_PROXY_KEY","Controller","checkProxies","tiff","proxyFlag","isProxy","createOffsetsProxy","offsets","encodedJs","Blob","atob","WorkerWrapper","objURL","webkitURL","createObjectURL","Worker","revokeObjectURL","defaultPoolSize","navigator","hardwareConcurrency","Pool","workers","idleWorkers","waitQueue","waitForWorker","currentWorker","onmessage","finishTask","postMessage","idleWorker","waiter","terminate","PARSER_OPTIONS","attributeNamePrefix","attrNodeName","parseNodeValue","parseAttributeValue","ignoreAttributes","fromString","OME","Image","img","Channels","Pixels","Channel","attr","Color","AquisitionDate","Description","sizes","SizeX","SizeY","Type","SizeZ","SizeT","SizeC","TiffPixelSource","_indexer","_readRasters","_getTileExtent","zoomLevelHeight","zoomLevelWidth","maxXTileCoord","maxYTileCoord","getOmeLegacyIndexer","rootMeta","imgMeta","ifdIndexer","getOmeIFDIndexer","sel","pyramidLevel","pyramidIndex","getOmeSubIFDIndexer","ifdCache","baseImage","subIfdOffset","DimensionOrder","DTYPE_LOOKUP$1","uint8","uint16","uint32","float","double","int8","int16","int32","getOmePixelSourceMeta","dims","Interleaved","getShape","PhysicalSizeX","PhysicalSizeY","PhysicalSizeXUnit","PhysicalSizeYUnit","PhysicalSizeZ","PhysicalSizeZUnit","guessTileSize$1","load$2","ImageDescription","omexml","levels","pyramidIndexer","loadOmeTiff","loadMultiscales","grp","rootAttrs","paths","multiscales","datasets","axes","path2","guessTileSize","yChunk","xChunk","DTYPE_LOOKUP","u4","f4","f8","i4","ZarrPixelSource","getIndexer","_data","xChunkSize","_xIndex","yChunkSize","_readChunks","xStart","xStop","yStart","yStop","_chunkIndex","getRaw","getRawChunk","_getSlices","suffix","load","pyramid","loadOmeZarr","Class","_cache","Function","Wrapper","isPureObject","isAsyncIterable","isIterator","isResponse","isBlob","isReadableStream","ReadableStream","isReadableDOMStream","isReadableNodeStream","ix","iy","iz","iw","expectedEnding","iterable","oldObj","newObj","numTimes","captureStackTrace","errors","feature","geom","properties","feat","point","coordinates","polygon","coordinates_1","ring","lineString","featureCollection","features","fc","multiLineString","multiPoint","multiPolygon","radiansToLength","factor","factors","lengthToRadians","radiansToDegrees","num","earthRadius","centimeters","centimetres","feet","inches","kilometers","kilometres","metres","miles","millimeters","millimetres","nauticalmiles","yards","unitsFactors","areaFactors","acres","points","polygons","lineStrings","geometryCollection","geometries","multiplier","lengthToDegrees","bearingToAzimuth","degreesToRadians","convertLength","originalUnit","finalUnit","convertArea","area","startFactor","finalFactor","validateBBox","validateId","radians2degrees","degrees2radians","distanceToDegrees","distanceToRadians","radiansToDistance","bearingToAngle","convertDistance","decomposeColor","re","hexToRgb","recomposeColor","getContrastRatio","foreground","background","lumA","getLuminance","lumB","rgb","hslToRgb","toFixed","alpha","darken","coefficient","lighten","hasOwn","classNames","argType","inner","useEnhancedEffect","useEventCallback","ownerDocument","negate","transformMat2","transformMat2d","D_CODES","LITERALS","LENGTH_CODES","L_CODES","BL_CODES","_tr_init$1","_tr_flush_block$1","_tr_tally$1","_tr_align$1","Z_FIXED$1","Z_UNKNOWN$1","MIN_MATCH$1","HEAP_SIZE$1","deflate_1","Deflate","deflate$1","deflator","deflate_1$1","deflateRaw","_a","pako","__toBinary","versions","base64","c0","c1","c3","initEmscriptenModule","moduleFactory","noInitialRun","wasmBinary","blosc_codec","aa","ba","ready","ca","print","printErr","thisProgram","noExitRuntime","ea","fa","ha","qa","ra","ja","ka","la","ma","na","oa","pa","sa","HEAP8","HEAP16","HEAP32","HEAPU8","HEAPU16","HEAPU32","HEAPF32","HEAPF64","ta","INITIAL_MEMORY","wasmMemory","Memory","initial","maximum","ua","va","wa","xa","ya","preRun","unshift","J","K","onAbort","RuntimeError","Aa","Ba","preloadedImages","preloadedAudios","Ca","locateFile","Da","T","O","Ea","W","V","Fa","Ga","P","Ha","Ia","Ja","stack","Ka","La","U","Na","Qa","Ra","Sa","fromWireType","Ta","Ua","Wa","Ya","Xa","ab","$a","bb","db","fb","gb","hb","ib","USER","LOGNAME","PATH","PWD","HOME","LANG","languages","jb","kb","BindingError","InternalError","count_emval_handles","get_first_emval","UnboundTypeError","lb","mb","toWireType","argPackAdvance","readValueFromPointer","Za","eb","Ma","Oa","Pa","Va","ia","copyWithin","grow","asm","monitorRunDependencies","instantiateWasm","___wasm_call_ctors","_malloc","_free","___getTypeName","ob","calledRun","onRuntimeInitialized","postRun","setStatus","___embind_register_native_and_builtin_types","dynCall_jiiiii","dynCall_jiji","nb","preInit","wasmSrc","BloscShuffle","Zlib","codecId","GZip","Blosc","isWebGL","WebGLRenderingContext","getWebGL2Context","assertWebGLContext","assertWebGL2Context","_toArray","_Alpha","_Checkboard","_EditableInput","_Hue","_Raised","_Saturation","_ColorWrap","_Swatch","radiusUnits","cellSize","extruded","coverage","elevationScale","edgeDistance","isWireframe","GridCellLayer","dirname","slashIndex","separator","part","loggers","register","eventType","deckLog","LIFECYCLE","NO_STATE","MATCHED","INITIALIZED","AWAITING_GC","AWAITING_FINALIZATION","FINALIZED","PROP_SYMBOLS","COMPONENT","ASYNC_DEFAULTS","ASYNC_ORIGINAL","ASYNC_RESOLVED","position1","position2","DEFAULT_GUIDES","DEFAULT_TOOLTIPS","GeoJsonEditMode","getSelectedFeature","mapCoords","getGuides","picks","pickedFeatures","getNonGuidePicks","pickedHandles","getPickedEditHandles","pickedIndexes","featureOrGeometry","featureOrGeometryAsAny","rewindFeature","rewindPolygon","updatedData","ImmutableFeatureCollection","editType","editContext","featureIndexes","featuresToAdd","initialIndex","updatedIndexes","geometryAsAny","selectedFeature","modeConfig","updatedGeometry","featureIndex","getAddFeatureAction","tentativeFeature","createTentativeFeature","DEPRECATED_PROPS","normalized","integer","instanced","PROP_CHECKS_INITIALIZE","removedProps","replacedProps","deprecatedProps","PROP_CHECKS_SET_PROPS","Accessor","checkProps","initialize","srcOffset","writeOffset","sourceBuffer","dstData","srcByteOffset","dstOffset","ArrayType","getTypedArrayFromGLType","clamped","sourceAvailableElementCount","_getAvailableElementCount","dstElementOffset","dstAvailableElementCount","dstElementCount","copyElementCount","isIndexedBuffer","changed","getGLTypeFromTypedArray","usage","sourceElementOffset","getElementCount","getBufferParameter","reallocate","INTERSECTION","OUTSIDE","INTERSECTING","INSIDE","fromObject","arrayOrObject","toObject","formatString","minVector","maxVector","subtract","addScalar","distanceSquared","mathArray","vec3_transformMat4AsVector","ORIGIN","Vector3","transformAsPoint","vec3_transformMat2","scratchVector","scratchNormal","minimum","AxisAlignedBoundingBox","halfDiagonal","distanceSquaredTo","scratchVector2","oppositeCorner","BoundingSphere","leftCenter","leftRadius","rightCenter","boundingSphere","rightRadius","toRightCenter","centerSeparation","halfDistanceBetweenTangentPoints","distanceTo","distanceToPlane","firstIndex","columnIndex","columnVector","INDICES","COL0ROW0","COL0ROW1","COL0ROW2","COL1ROW0","COL1ROW1","COL1ROW2","COL2ROW0","COL2ROW1","COL2ROW2","Matrix3","vec4_transformMat3","IDENTITY_QUATERNION","quat","fromAxisRotation","multiplyLeft","multiplyRight","scratchVector3","scratchOffset","scratchVectorU","scratchVectorV","scratchVectorW","scratchCorner","scratchToCenter","MATRIX3","halfAxes","quaternionObject","directionsMatrix","halfSize","OrientedBoundingBox","cornerVector","normalX","normalY","normalZ","radEffective","uHalf","vHalf","wHalf","minDist","maxDist","corner","toCenter","xAxis","getColumn","yAxis","zAxis","normXAxis","normYAxis","normZAxis","scratchPosition","fromPointNormal","pointDistance","getPointDistance","scaledNormal","faces","scratchPlaneCenter","scratchPlaneNormal","planes","planeIndex","plane0","plane1","plane0Center","faceNormal","plane1Center","negatedFaceNormal","intersect","boundingVolume","parentPlaneMask","CullingVolume","flag","COL0ROW3","COL1ROW3","COL2ROW3","COL3ROW0","COL3ROW1","COL3ROW2","COL3ROW3","scratchMatrix","scratchUnitary","scratchDiagonal","jMatrix","jMatrixTranspose","computeEigenDecomposition","EIGEN_TOLERANCE","_MathUtils","EIGEN_MAX_SWEEPS","sweep","unitaryMatrix","diagonalMatrix","computeFrobeniusNorm","offDiagonalFrobeniusNorm","shurDecomposition","norm","temp","rowVal","colVal","tolerance","maxDiagonal","rotAxis","tau","scratchVector4","scratchVector5","scratchVector6","scratchCovarianceResult","scratchEigenResult","diagonal","unitary","makeOrientedBoundingBoxFromPoints","meanPoint","invLength","exx","exy","exz","eyy","eyz","ezz","covarianceMatrix","rotation","l1","l2","l3","createRange","sourceKeys","createMat4","getCameraPosition","getFrustumPlanes","viewProjectionMatrix","getFrustumPlane","toDoublePrecisionArray","typedArray","endIndex","scratchArray","sourceIndex","targetIndex","baseClamp","number","lower","upper","WINDING","CLOCKWISE","COUNTER_CLOCKWISE","modifyPolygonWindingDirection","windingDirection","getPolygonWindingDirection","reversePolygon","getPolygonSignedArea","dim","numPoints","numSwaps","earcut","holeIndices","areas","hasHoles","outerLen","outerNode","linkedList","triangles","getLeftmost","eliminateHole","filterPoints","eliminateHoles","minX","maxX","minY","maxY","invSize","earcutLinked","clockwise","insertNode","removeNode","again","ear","zOrder","inSize","numMerges","pSize","qSize","sortLinked","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","maxZ","intersects","locallyInside","isValidDiagonal","splitPolygon","compareX","hole","hx","hy","mx","my","tanMin","sectorContainsSector","findHoleBridge","leftmost","px","py","intersectsPolygon","inside","middleInside","p1","p2","q2","o1","o2","o3","o4","onSegment","Node","an","bp","isDuplicate","startI","edge","snap","bitCode","cutPolylineByGrid","broken","gridResolution","gridOffset","getPointAtIndex","cell","getGridCell","scratchPoint","codeB","codeAlt","moveToNeighborCell","concatInPlace","arr1","arr2","cutPolygonByGrid","edgeTypes","types","holes","bisectPolygon","polygonLow","polygonHigh","resultLow","resultHigh","typesLow","typesHigh","prevSide","prevType","lowPointCount","highPointCount","side","cutPolylineByMercatorBounds","newPositions","wrapLongitudesForShortestPath","shiftLongitudesIntoRange","cutPolygonByMercatorBounds","newHoleIndices","srcStartIndex","ringIndex","srcEndIndex","targetStartIndex","splitIndex","findSplitIndex","insertPoleVertices","maxLat","pointIndex","firstLng","lastLng","prevLng","pointCount","refLng","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","noop","nextTick","title","browser","env","argv","prependListener","prependOnceListener","binding","cwd","chdir","umask","_construct","Parent","ERR_RESOURCE_METHOD_UNDEFINED","userData","_handle","deleteChildren","_deleteHandle","funcOrHandle","pname","getKeyValue","PARAMETERS","parameter","isWebgl2","parameterAvailable","getExtension","webgl1Default","webgl2Default","_getParameter","parameterKeys","getKey","getParameter","stubRemovedMethods","className","stats","lumaStats","_assign","_assign2","ZERO_VECTOR","DEFAULT_DISTANCE_SCALES","projectFlat","unprojectFlat","_frustumPlanes","orthographic","isGeospatial","_getCenterInWorld","commonPosition","_createProjectionMatrix","viewportMatrix","Viewport","_defineProperty2","defaultColor","recursivelyTraverseNestedArrays","pt","ddistance","lineBearing","orthogonalBearing","isPointToLeftOfLine","p3","p4","wmViewport","projectedCoords","inPoint","minDistance","minPointInfo","div","lineLength","distance2d","startToPointLength","mercator","closestPoint","pointCoords","lineCoordinates","pointCoordinate","slope","inverseSlope","rl2","ln2","lnm12","dist2","calcrl2","segmentIdx","dx","dy","snapPoint","idx","pixelToLatLong","handles","handle","pick","editHandleType","guideType","positionIndexes","getEditHandlesForCoordinates","editHandles","componentWillMount","getDerivedStateFromProps","componentWillReceiveProps","nextProps","prevState","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","__suppressDeprecationWarning","plainObjectConstrurctor","cloneStyle","style","newStyle","createRule","decl","jss","declCopy","rule","plugins","onCreateRule","toCssValue","ignoreImportant","cssValue","getWhitespaceSymbols","linebreak","space","indentStr","indent","toCss","selector","_options$indent","fallbacks","_getWhitespaceSymbols","prop","_prop","_value","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","escape","BaseStyleRule","isProcessed","sheet","Renderer","force","newValue","onChangeValue","isEmpty","isDefined","remove","renderable","removeProperty","setProperty","attached","StyleRule","_BaseStyleRule","_this","scoped","generateId","selectorText","_inheritsLoose","_proto2","applyTo","json","toJSON","link","setSelector","replaceRule","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","styles","atMatch","at","query","rules","RuleList","_proto","getRule","addRule","onProcessRule","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","keyframes","replaceRef","refKeyframe","pluginKeyframesRule","onProcessStyle","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","defaultUpdateOptions","forceUpdateOptions","counter","ruleOptions","_this$options","unregister","updateOne","_this$options2","nextValue","_nextValue","_prevValue","css","StyleSheet","deployed","attach","deploy","detach","insertRule","addRules","added","deleteRule","_this$rules","PluginsRegistry","internal","external","onProcessSheet","processedValue","use","newPlugin","plugin","sheets","SheetsRegistry","reset","_temp","_objectWithoutPropertiesLoose","globalThis$1","ns","moduleId","createGenerateId","ruleCounter","jssId","minify","memoize","getPropertyValue","cssRule","attributeStyleMap","getHead","querySelector","findPrevNode","insertionPoint","findHigherSheet","parentNode","findHighestSheet","nextSibling","childNodes","nodeType","nodeValue","findCommentNode","getNonce","getAttribute","_insertRule","container","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","DomRenderer","hasInsertedRules","media","el","textContent","createStyle","setAttribute","nonce","nextNode","insertBefore","insertionPointElement","appendChild","insertStyle","removeChild","insertRules","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","getRules","instanceCounter","Jss","isInBrowser","setup","createStyleSheet","removeStyleSheet","createJss","hasCSSTOMSupport","getDynamicStyles","extracted","padArrayChunk","sourceLength","targetLength","datum","DEFAULT_TRANSITION_SETTINGS","easing","spring","stiffness","damping","normalizeTransitionSettings","userSettings","layerSettings","getSourceBufferAttribute","getAttributeTypeFromSize","cycleBuffers","buffers","getAttributeBufferLength","doublePrecision","settings","padBuffer","precisionMultiplier","toStartIndices","hasStartIndices","fromStartIndices","toLength","isConstant","fromLength","toData","getMissingData","targetStartIndices","getChunkData","sourceStartIndices","nextSourceIndex","nextTargetIndex","padArray","helpers_1","getCoord","getCoords","containsNumber","geojsonType","featureOf","collectionOf","getGeom","geojson","getType","MAX_LENGTH","parseOptions","compareIdentifiers","SemVer","loose","includePrerelease","LOOSE","FULL","patch","prerelease","build","compareMain","comparePre","release","identifier","inc","nativeMax","nativeMin","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","uidCounters","cosh","sinh","parser_exit","SyntaxError","logHypot","_b","atan2","Complex","tokens","plus","minus","loh","im","cosm1","t2","noIM","oneMinus","onePlus","atanh","asinh","acosh","places","invariant_1","coordinates1","coordinates2","dLat","dLon","lat1","lat2","SvgIcon","_props$color","_props$component","_props$fontSize","fontSize","htmlColor","titleAccess","_props$viewBox","viewBox","clsx","focusable","role","muiName","userSelect","display","flexShrink","typography","pxToRem","transition","transitions","shorter","colorPrimary","palette","primary","main","colorSecondary","secondary","colorAction","action","active","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeLarge","createSvgIcon","memo","useThemeWithoutDefault","EMPTY_ARRAY","placeholderArray","createIterable","startRow","endRow","objectInfo","getAccessorFromBuffer","nested","bytesPerElement","elementStride","elementOffset","startIndices","arrayOrType","glType","flipRows","bytesPerRow","topOffset","bottomOffset","newWidth","newHeight","newData","REF_POINTS_5","REF_POINTS_9","REF_POINTS_11","getBoundingVolume","elevationBounds","insideBounds","cullingVolume","refPoints","refPointPositions","osmTile2lngLat","zRange","originX","worldOffset","originY","OSMNode","DEFAULT_EXTENT","urlType","validate","propType","value1","value2","transformBox","transformedCoords","getURLFromTemplate","template","tile2XY","tileToBoundingBox","north","south","getIdentityTileIndices","modelMatrixInverse","getIndexingCoords","bounds0","bounds1","getTileIndices","transformedExtent","elevationMin","elevationMax","minLng","maxLng","traversalParams","getOSMTileIndices","isURLTemplate","compileSchema","Cache","SchemaObject","stableStringify","formats","$dataMetaSchema","util","Ajv","schemaKeyRef","getSchema","schemaObj","_addSchema","_compile","$async","compile","schema","_meta","addSchema","_skipValidation","_getId","checkUnique","normalizeId","_schemas","addMetaSchema","skipValidation","validateSchema","throwOrLogError","$schema","_opts","defaultMeta","META_SCHEMA_ID","errorsText","keyRef","_getSchemaObj","baseId","_fragments","fragment","_getSchemaFragment","removeSchema","_removeAllSchemas","_refs","cacheKey","serialize","addFormat","_formats","dataVar","dataPath","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","compiling","callValidate","currentOpts","_metaOpts","refs","refVal","_validate","compileAsync","customKeyword","addKeyword","getKeyword","removeKeyword","validateKeyword","errorClasses","ValidationError","Validation","MissingRefError","MissingRef","META_IGNORE_OPTIONS","META_SUPPORT_DATA","setLogger","_loadingSchemas","_compilations","RULES","schemaId","_get$IdOrId","_get$Id","chooseGetId","loopRequired","errorDataPath","_errorDataPathProperty","metaOpts","getMetaSchemaOptions","addInitialFormats","keywords","keyword","addInitialKeywords","$dataSchema","$data","$id","metaSchema","addDefaultMetaSchema","nullable","optsSchemas","schemas","addInitialSchemas","regex","libh3","Module","moduleOverrides","arguments_","scriptDirectory","readAsync","tryParseAsDataURI","tempRet0","getTempRet0","ABORT","toC","maxBytesToWrite","startIdx","endIdx","outIdx","outU8Array","stringToUTF8Array","stringToUTF8","stackAlloc","writeArrayToMemory","getCFunc","cArgs","converter","argTypes","stackSave","returnType","UTF8ToString","convertReturnValue","stackRestore","UTF8Decoder","ptr","endPtr","u8Array","u0","ch","UTF8ArrayToString","INITIAL_TOTAL_MEMORY","callbacks","updateGlobalBufferAndViews","DYNAMICTOP_PTR","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATPOSTRUN__","Math_abs","Math_ceil","Math_floor","Math_min","runDependencies","runDependencyWatcher","dependenciesFulfilled","memoryInitializer","dataURIPrefix","filename","newBuffer","_emscripten_replace_memory","decodeBase64","keyStr","chr1","enc1","enc2","chr2","enc3","chr3","enc4","isDataURI","intArrayFromBase64","gd","Xc","Wc","Eb","ad","bd","Kb","Qb","cd","Mb","Ob","Lb","za","Rb","Zb","Ub","Vb","Zc","Uc","Ic","Hc","Ec","Fc","Gc","sc","Db","Pb","Sb","Tb","Bb","zb","Jc","Kc","Vc","kc","Nb","tc","hd","Tc","Sc","_c","Yc","$c","___uremdi3","_bitshift64Lshr","_bitshift64Shl","_calloc","_cellAreaKm2","sb","_cellAreaM2","_cellAreaRads2","_compact","fd","_destroyLinkedPolygon","_edgeLengthKm","_edgeLengthM","_exactEdgeLengthKm","_exactEdgeLengthM","_exactEdgeLengthRads","_experimentalH3ToLocalIj","_experimentalLocalIjToH3","mc","_geoToH3","_getDestinationH3IndexFromUnidirectionalEdge","_getH3IndexesFromUnidirectionalEdge","_getH3UnidirectionalEdge","_getH3UnidirectionalEdgeBoundary","_getH3UnidirectionalEdgesFromHexagon","_getOriginH3IndexFromUnidirectionalEdge","_getPentagonIndexes","_getRes0Indexes","_h3Distance","_h3GetBaseCell","_h3GetFaces","Xb","_h3IndexesAreNeighbors","_h3IsPentagon","_h3IsResClassIII","_h3IsValid","_h3Line","ed","_h3LineSize","_h3SetToLinkedGeo","Lc","Qc","Oc","Pc","Nc","jc","Mc","gc","hc","Rc","_h3ToCenterChild","_h3ToChildren","_h3ToGeo","_h3ToGeoBoundary","_h3ToParent","_h3UnidirectionalEdgeIsValid","Ab","_hexAreaKm2","_hexAreaM2","_hexRing","_i64Subtract","_kRing","_kRingDistances","_llvm_minnum_f64","_llvm_round_f64","_maxFaceCount","_maxH3ToChildrenSize","_maxKringSize","_maxPolyfillSize","uc","_maxUncompactSize","_memcpy","_memset","_numHexagons","_pentagonIndexCount","_pointDistKm","_pointDistM","_pointDistRads","_polyfill","vc","_res0IndexCount","_round","_sbrk","_sizeOfCoordIJ","_sizeOfGeoBoundary","_sizeOfGeoCoord","_sizeOfGeoPolygon","_sizeOfGeofence","_sizeOfH3Index","_sizeOfLinkedGeoPolygon","_uncompact","establishStackSpace","oldSize","_emscripten_get_heap_size","requestedSize","newSize","alignUp","emscripten_realloc_buffer","js","jsStackTrace","demangleAll","numericArgs","numericRet","ccall","ident","tempI64","tempDouble","applyMemoryInitializer","removeRunDependency","doBrowserLoad","memoryInitializerBytes","useRequest","callRuntimeCallbacks","addOnPostRun","addOnPreRun","doRun","what","runCaller","NUMBER","const","H3","BINDINGS","def","cwrap","SZ_H3INDEX","SZ_GEOCOORD","SZ_GEOBOUNDARY","SZ_GEOPOLYGON","SZ_GEOFENCE","SZ_LINKED_GEOPOLYGON","SZ_COORDIJ","m2","km","km2","rads","rads2","validateRes","INVALID_HEXIDECIMAL_CHAR","h3IndexToSplitLong","h3Index","hexFrom32Bit","tempStr","zeroPad","splitLongToh3Index","fullLen","numStr","numZeroes","outStr","polygonArrayToGeofence","polygonArray","geofence","isGeoJson","numVerts","geoCoordArray","latIndex","lngIndex","readLong","invocation","readH3Index","readH3IndexFromPointer","cAddress","SZ_INT","storeH3Index","readArrayOfHexagons","maxCount","storeArrayOfHexagons","hexagons","storeGeoCoord","geoCoord","readSingleCoord","radsToDegs","readGeoCoord","readGeoCoordGeoJson","readGeoBoundary","geoBoundary","geoJsonCoords","closedLoop","vertsPos","readCoord","h3IsValid","h3IsPentagon","h3IsResClassIII","h3GetBaseCell","h3GetFaces","readArrayOfPositiveIntegers","h3GetResolution","geoToH3","latlng","h3ToGeo","h3ToGeoBoundary","formatAsGeoJson","h3ToParent","h3ToChildren","h3ToCenterChild","kRing","ringSize","kRingDistances","kRings","let","hexLower","hexUpper","hexRing","geoPolygon","numHoles","numHolesOffset","holesOffset","coordinatesToGeoPolygon","arrayLen","destroyGeoPolygon","h3SetToMultiPolygon","h3Indexes","indexCount","originalPolygon","loops","SZ_DBL","SZ_PTR","readMultiPolygon","compact","h3Set","compactedSet","uncompact","maxUncompactedNum","uncompactedSet","h3IndexesAreNeighbors","destination","oLower","oUpper","dLower","dUpper","getH3UnidirectionalEdge","getOriginH3IndexFromUnidirectionalEdge","edgeIndex","getDestinationH3IndexFromUnidirectionalEdge","h3UnidirectionalEdgeIsValid","getH3IndexesFromUnidirectionalEdge","getH3UnidirectionalEdgesFromHexagon","edges","getH3UnidirectionalEdgeBoundary","h3Distance","h3Line","experimentalH3ToLocalIj","ij","retVal","experimentalLocalIjToH3","storeCoordIJ","pointDist","latlng1","latlng2","coord2","cellArea","exactEdgeLength","hexArea","edgeLength","numHexagons","getRes0Indexes","getPentagonIndexes","degsToRads","deg","baseMerge","createAssigner","srcIndex","NPOT_MIN_FILTERS","WebGLBuffer","linearFiltering","supported","isFormatSupported","isLinearFilteringSupported","resolvedImageData","isVideo","HTMLVideoElement","border","recreate","pixelStore","textureUnit","compressed","_deduceParameters","video","lastTime","dataType","_getDataType","gl2","levelData","DATA_FORMAT_CHANNELS","channelSize","TYPE_SIZES","ndarray","textureFormat","TEXTURE_FORMATS","_deduceImageSize","ImageData","HTMLImageElement","naturalHeight","HTMLCanvasElement","ImageBitmap","videoHeight","getTexParameter","_getNPOTParam","isPowerOfTwo","vec2_transformMat4AsVector","vec4_transformMat2","_getRequireWildcardCache","WeakMap","hasPropertyDescriptor","_utils","formatSpecifier","specifier","FormatSpecifier","symbol","comma","formatDecimalParts","toExponential","prefixExponent","locale","formatPrefix","toLocaleString","toPrecision","formatRounded","prefixes","grouping","thousands","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","nan","newFormat","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","formatLocale","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseSpecifier","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseZone","parseLiteralPercent","pads","newParse","timeMonday","utcFormat","utcParse","timeFormat","timeParse","defaultNumberLocale","defaultTimeLocale","numberRe","percentRe","requoteRe","requote","timeSunday","dISO","timeThursday","dow","UTCdISO","spec","numberLocale","formatFloat","numberFormat","decimalChar","dec","rightmostDigit","formatSpan","precisionPrefix","precisionRound","precisionFixed","resetNumberFormatDefaultLocale","numberFormatLocale","definition","numberFormatDefaultLocale","timeMultiFormat","timeLocale","resetTimeFormatDefaultLocale","timeFormatLocale","timeFormatLocale$1","timeFormatDefaultLocale","defaultLocale","createLocale","numberSpec","timeSpec","resetDefaultLocale","globals","window_","process_","NO_TRANSITION_PROPS","LINEAR_TRANSITION_PROPS","transitionEasing","transitionInterruption","TRANSITION_EVENTS","BREAK","INERTIA_EASING","EVENT_TYPES","onViewStateChange","_onTransition","onStateChange","_setInteractionState","linearTransitionProps","transitionInterpolator","transitionProps","isDragging","handleEvent","ControllerState","_state","eventStartBlocked","_onPanStart","_onPan","_onPanEnd","_onPinchStart","_onPinch","_onPinchEnd","_onTriplePanStart","_onTriplePan","_onTriplePanEnd","_onDoubleTap","_onWheel","_onKeyDown","offsetCenter","srcEvent","_interactionState","_getTransitionProps","inertia","scrollZoom","dragPan","dragRotate","doubleClickZoom","touchZoom","touchRotate","keyboard","isInteractive","eventName","extraProps","interactionState","newControllerState","controllerState","oldViewState","getCenter","isPointInBounds","alternateMode","isFunctionKeyPressed","invertPan","dragMode","_panMove","_onPanMove","_onPanRotate","_onPanMoveEnd","_onPanRotateEnd","isPanning","endPos","isRotating","smooth","around","isZooming","rotateStart","zoomStart","_startPinchRotation","_lastPinchEvent","velocityZ","endScale","zoomEnd","isZoomOut","funcKey","rotateSpeedY","_transition","PERCENT_OR_PIXELS_REGEX","parsePosition","relative","viewportInstance","deepEqual","filterViewState","viewportDimensions","getDimensions","_getViewport","newViewState","ViewportType","DRAW_MODE","_calculateVertexCount","_print","attributeName","isIndexed","DEFAULT_ACCESSOR_VALUES","PROP_CHECKS","accessors","freeGlobal","freeSelf","helpers","coordEach","excludeWrapCoord","stopG","geometryMaybeCollection","isGeometryCollection","wrapShrink","coordIndex","isFeatureCollection","isFeature","geomIndex","multiFeatureIndex","geometryIndex","geomType","propEach","featureEach","geomEach","featureProperties","featureBBox","featureId","flattenEach","segmentEach","segmentIndex","previousCoords","previousFeatureIndex","previousMultiIndex","prevGeomIndex","currentCoord","featureIndexCoord","multiPartIndexCoord","currentSegment","lineEach","coordReduce","initialValue","previousValue","propReduce","currentProperties","featureReduce","currentFeature","coordAll","geomReduce","currentGeometry","flattenReduce","segmentReduce","started","lineReduce","currentLine","findSegment","findPoint","red","getContrastingColor","isValidHex","toState","simpleCheckForValidColor","_each2","_tinycolor2","passed","letter","oldHue","hex","hsl","toHsl","hsv","toHsv","toRgb","toHex","isValid","final","bear","calculateFinalBearing","lon1","lon2","Comparator","parseRange","isNullSet","isAny","comps","memoOpts","memoKey","hr","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","compRe","COMPARATORLOOSE","COMPARATOR","rangeList","comp","parseComparator","replaceGTE0","rangeMap","thisComparators","isSatisfiable","rangeComparators","thisComparator","rangeComparator","er","testSet","comparators","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","TILDELOOSE","TILDE","pr","replaceCaret","CARETLOOSE","CARET","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","fM","fm","fp","fpr","tM","tm","tp","tpr","semver","ANY","allowed","equal","valueOf","flattenArray","fillArray","copied","that","later","rng","bytesToUuid","rnds","ii","overAlloc","poolSize","maxSize","_allocate","sizeToAllocate","reflow","scrollTop","getTransitionProps","_props$style","transitionDelay","GL_PARAMETER_DEFAULTS","enable","hint","GL_PARAMETER_SETTERS","getValue","glEnum","GL_COMPOSITE_PARAMETER_SETTERS","blendEquation","blendFunc","polygonOffset","sampleCoverage","stencilFuncFront","stencilFuncBack","stencilOpFront","stencilOpBack","GL_HOOKED_SETTERS","disable","bindFramebuffer","blendColor","blendEquationSeparate","modeAlpha","dst","blendFuncSeparate","dstAlpha","clearDepth","clearStencil","colorMask","cullFace","depthFunc","depthRange","zNear","depthMask","frontFace","face","lineWidth","scissor","stencilMask","stencilMaskSeparate","stencilFunc","stencilFuncSeparate","stencilOp","zpass","stencilOpSeparate","isEnabled","GL_PARAMETER_GETTERS","webpackPolyfill","deprecate","global_","deprecatedPropType","validator","updatedPosition","isPolygonal","immutablyReplacePosition","replaceGeometry","immutablyRemovePosition","holeIndex","removeHoleIfNecessary","prunePolygonIfNecessary","lineStringIndex","pruneMultiLineStringIfNecessary","polygonIndex","outerRing","pruneMultiPolygonIfNecessary","pruneGeometryIfNecessary","positionToAdd","immutablyAddPosition","updatedFeature","addFeatures","deleteFeatures","getUpdatedPosition","previousPosition","elevation","updated","installGetterOverride","functionName","originalGetterFunc","installSetterSpy","setter","originalSetterFunc","oldValue","installProgramSpy","originalUseProgram","getParameters","_updateCache","stateStack","oldValues","valueChanged","deepArrayEqual","polyfillContext","GLState","pushContextState","popContextState","useControlled","controlled","defaultProp","isControlled","_React$useState","valueState","setValue","colorBufferHalfFloat","Framebuffer","attachments","stencil","readBuffer","drawBuffers","_createDefaultAttachments","clearAttachments","resource","resizeAttachments","prevHandle","newAttachments","attachment","renderbuffer","_getFrameBufferStatus","clearBuffer","drawBuffer","_getAttachmentParameterFallback","getFramebufferAttachmentParameter","ATTACHMENT_PARAMETERS","getAttachmentParameter","attachmentName","getAttachmentParameters","copyToDataUrl","logLevel","targetMaxHeight","defaultAttachments","oldAttachment","mapIndexToCubeMapFace","caps","getFeatures","STATUS","DEFAULT_SETTINGS","onStart","onInterrupt","timeline","getTime","isFinished","aValue","bValue","createChainedFunction","funcs","_len2","_key2","formControlState","states","muiFormControl","useFormControl","FormControlContext","durationWeek","isWorker","isMobile","nameStartChar","nameRegexp","regexName","isExist","isEmptyObject","arrayMode","buildOptions","defaultOptions","newOptions","isTagNameInArrayMode","parentTagName","isName","getAllMatches","allmatches","lastIndex","isEqual","compute","cachedArgs","cachedResult","deepmerge","COMPOSITE_GL_TYPES","getPrimitiveDrawMode","decomposeCompositeGLType","compositeGLType","typeAndSize","getCompositeGLType","compType","compComponents","isLoaderObject","normalizeLoader","protocol_re","allowed_re","whitespace_re","uri","sanitize","href","localFile","http","fileAccess","isAllowed","stringValue","hasProtocol","baseURL","loadFile","isFile","defaultProtocol","rel","crossOrigin","fileLoader","accept","readFile","fileReject","httpLoader","statusText","httpReject","typeParsers","boolean","unknown","typeTests","typeList","inferType","inferTypes","delimitedFormat","delimiter","delim","dsv","dsvFormat","parseJSON","interior","exterior","topojson","mesh","objects","csv","tsv","read","timeParser","utcParser","columns","parsers","pattern","loaderFactory","resolvePath","makeResponse","probeLog","DEFAULT_LOADER_OPTIONS","mimeType","nothrow","CDN","worker","maxConcurrency","maxMobileConcurrency","reuseWorkers","_workerType","_limitMB","batchSize","batchDebounceMs","transforms","REMOVED_LOADER_OPTIONS","throws","redirect","referrer","referrerPolicy","integrity","keepalive","getGlobalLoaderState","loaders","getGlobalLoaderOptions","normalizeOptions","validateOptionsObject","idOptions","loaderOptions","deprecatedOptions","validateOptions","normalizeOptionsInternal","getFetchFunction","globalOptions","fetchFile","loaderName","isSubOptions","suggestion","findSimilarOption","optionKey","lowerCaseOptionKey","bestSuggestion","lowerCaseKey","loaderDefaultOptions","mergedOptions","addUrlOptions","mergeNestedFields","rhumbDestination","wasNegativeDistance","distanceInMeters","lambda1","phi1","DeltaPhi","DeltaPsi","DeltaLambda","calculateRhumbDestination","headerName","vendors","raf","caf","_now","cancelled","requestAnimationFrame","cancelAnimationFrame","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","write","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","typedArraySupport","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","checkOffset","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","__g","core","__e","arrayMap","baseIteratee","baseMap","collection","iteratee","toArrayBuffer","compareArrayBuffers","arrayBuffer1","arrayBuffer2","array2","concatenateArrayBuffers","sourceArrays","source2","sourceArray","sliceArrayBuffer","subArray","isObjectEmpty","compositeSetters","glConstant","compositeSetter","resetParameters","nocatch","ERR_UNKNOWN_ORDER","Euler","ysqr","t3","t4","validateOrder","roll","yaw","_getRotationMatrix","te","ae","af","be","bf","ce","cf","de","df","ac","bc","sy","sr","sp","checkOrder","_drawLayers","clearCanvas","clearGLCanvas","renderStats","viewportOrDescriptor","onViewportActive","drawLayerParams","_getDrawLayerParams","subViewports","_drawLayersInViewport","moduleParameters","indexResolver","layerIndexResolver","layerIndices","resolvers","resolveLayerIndex","isDrawn","indexOverride","layerId","parentId","resolver","drawContext","isPicking","renderPass","layerFilterCache","layerIndex","layers","shouldDrawLayer","_shouldDrawLayer","layerParam","layerRenderIndex","_getModuleParameters","getLayerParameters","glViewport","dimensions","pixelRatio","getGLViewport","clearOpts","scissorTest","renderStatus","totalCount","visibleCount","compositeCount","pickableCount","layerParameters","rootLayerId","layerFilter","autoWrapLongitude","pickingActive","effect","getModuleParameters","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","search","tel","email","password","datetime","handleKeyDown","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","isContentEditable","focusTriggersKeyboardModality","handleBlurVisible","useIsFocusVisible","onBlurVisible","doc","ReactDOM","ownerWindow","defaultView","_unsupportedIterableToArray","minLen","createTheme","isMuiElement","muiNames","cloneFeature","cloned","cloneProperties","cloneGeometry","deepSlice","cloneFeatureCollection","DATA_URL_PATTERN","MIME_TYPE_PATTERN","parseMIMEType","mimeString","parseMIMETypeFromURL","QUERY_STRING_PATTERN","getResourceUrlAndType","stripQueryString","getResourceContentLength","baseIsNative","getRawTag","objectToString","symToStringTag","toStringTag","anObject","IE8_DOM_DEFINE","toPrimitive","dP","bufferToArrayBuffer","DEFAULT_LIGHT_DIRECTION","_shadow","COORDINATE_SYSTEM_GLSL_CONSTANTS","PROJECTION_MODE_GLSL_CONSTANTS","UNIT_GLSL_CONSTANTS","INITIAL_MODULE_OPTIONS","fp32","loaderId","requestScheduler","requestToken","tileData","_isCancelled","onLoad","_loadData","isLoading","_loader","_isLoaded","_needsReload","content","throttleRequests","_selectedTiles","modelMatrixAsMatrix4","isModelMatrixNew","tileIndices","_modelMatrixInverse","tileIndex","abortCandidates","ongoingRequestCount","isVisible","_getNearestAncestor","getPlaceholderInAncestors","needsPlaceholder","getPlaceholderInChildren","maxCacheSize","selectedTiles","maxCacheByteSize","_cacheByteSize","needsReload","getTileMetadata","_minZoom","getParentIndex","_getTile","TILE_STATE_VISIBLE","dataComparator","optional","onTileLoad","onTileUnload","isLoaded","propsChanged","dataChanged","_getTilesetOptions","_onTileLoad","_onTileError","_onTileUnload","frameNumber","loadingStateChanged","tilesetChanged","propName","highlightedObjectIndex","_offset","easeInOut","easeOut","easeIn","sharp","shortest","short","standard","complex","enteringScreen","leavingScreen","formatMs","_options$duration","durationOption","_options$easing","easingOption","_options$delay","animatedProp","getAutoHeightDuration","_asyncIterator","asyncIterator","isFragment","hasValue","isFilled","SSR","isAdornedStart","startAdornment","pathPrefix","loadImage","Texture","contentLength","getInitialDataUrl","initialDataUrl","getResponseError","contentType","INITIAL_DATA_LENGTH","blobSlice","arrayBufferToBase64","binary","btoa","baseClone","CLONE_DEEP_FLAG","objectWithoutPropertiesLoose","EXT_FLOAT_WEBGL2","bpp","RENDERBUFFER_FORMATS","getRenderbufferParameter","react","create$1","createState","partial","_previousState","getState","api","subscribe","equalityFn","is","listenerToAdd","nextSlice","_previousSlice","subscribeWithSelector","destroy","useIsomorphicLayoutEffect","userAgent","useEffect","useLayoutEffect","useStore","newStateSlice","forceUpdate","useReducer","stateRef","useRef","selectorRef","equalityFnRef","erroredRef","currentSliceRef","hasNewStateSlice","stateBeforeSubscriptionRef","nextStateSlice","unsubscribe","passiveSupported","createError","errorConstructor","IntermediateInheritor","DivisionByZero","Fraction","InvalidParameter","throwInvalidParam","gcd","eps","cont","rec","excludeWhole","whole","cycLen","rem","cycleLen","cycOff","rem1","rem2","modpow","cycleStart","naturalSort","oFxNcL","oFyNcL","sre","dre","hre","ore","insensitive","xN","yN","xD","yD","cLoc","numS","isLength","cloneLayout","newLayout","cloneLayoutItem","childrenEqual","_lodash","_react","fastPositionEqual","collides","compactItem","correctBounds","getLayoutItem","getFirstCollision","getAllCollisions","getStatics","moveElement","moveElementAwayFromCollision","perc","setTransform","WebkitTransform","MozTransform","msTransform","OTransform","setTopLeft","sortLayoutItems","sortLayoutItemsByRowCol","sortLayoutItemsByColRow","synchronizeLayoutWithChildren","initialLayout","cols","compactType","exists","_grid","_objectSpread","validateLayout","_ref3","verticalCompact","autoBindHandlers","fns","fastRGLPropsEqual","bottomY","layoutItem","minW","maxW","minH","moved","static","isDraggable","isResizable","resizeHandles","isBounded","compareWith","sorted","heightWidth","resolveCompactionCollision","moveToCoord","sizeProp","otherItem","fullLayout","compactH","collidesWith","isUserAction","preventCollision","oldX","oldY","collisions","collision","itemToMove","compactV","fakeItem","contextName","subProps","checkDataType","AND","OK","NOT","checkDataTypes","dataTypes","toHash","null","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","escapeQuotes","ucs2length","varOccurences","varReplace","expr","cleanUpCode","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","async","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","REMOVE_ERRORS","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","toQuotedString","getPathExpr","currentPath","jsonPointers","joinPaths","getPath","escapeJsonPointer","lvl","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segment","unescapeJsonPointer","unescapeFragment","decodeURIComponent","escapeFragment","encodeURIComponent","hash","IDENTIFIER","SINGLE_QUOTE","fileAliases","replacement","__webpack_amd_options__","ctx","hide","$export","own","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","expProto","virtual","createDesc","IObject","defined","USE_SYMBOL","meta_1","MAX_SAFE_COMPONENT_LENGTH","createToken","isGlobal","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCE","LONETILDE","LONECARET","bboxPolygon","lowLeft","legacyMeterSizes","projectionParameters","viewMatrixUncentered","viewOffset","toLocation","_subViewports","minOffset","maxOffset","offsetViewport","rotationX","rotationOrbit","minRotationX","maxRotationX","startPanPosition","startRotationX","startRotationOrbit","_unproject","startPosition","deltaScaleX","startPos","_calculateNewZoom","zoomedViewport","_panFromCenter","_propsToCompare","currentProps","startViewStateProps","endViewStateProps","startPanLngLat","startZoomLngLat","_calculateNewPitchAndBearing","_getRotationParams","_zoomFromCenter","deltaScaleY","deltaX","deltaY","centerY","startY","IndexType","vertexValid","externalIndices","Polygon","getGeometrySize","geometrySize","indexStarts","vertexStart","indexStart","typedArrayManager","positionSize","polygonPositions","DEFAULT_COLOR","wireframe","_normalize","_windingOrder","getElevation","getFillColor","material","ATTRIBUTE_TRANSITION","enter","RING_WINDING_ORDER_CW","polygonTesselator","preproject","hasFeatures","shaderAttributes","vertexOffset","instancePositions","nextPositions","elevations","instanceElevations","fillColors","alias","colorFormat","instanceFillColors","lineColors","instanceLineColors","pickingColors","instancePickingColors","renderUniforms","sideModel","topModel","_getModels","geometryBuffer","getGeometry","positionFormat","wrapLongitude","vertexStarts","vertexPositions","isSideVertex","instanceCount","models","SolidPolygonLayer","segmentTypes","flatPath","normalizePath","getPathLength","isClosed","isPathClosed","ptIndex","lastPointIndex","widthUnits","widthScale","widthMinPixels","widthMaxPixels","jointRounded","capRounded","miterLimit","billboard","_pathType","rounded","deprecatedFor","instanceLeftPositions","instanceStartPositions","instanceEndPositions","instanceRightPositions","instanceTypes","instanceStrokeWidths","instanceColors","pathTesselator","getDashArray","jointType","capType","PathLayer","DEFAULT_TEXTURE_PARAMETERS","getIconId","icon","buildRowMapping","yOffset","xOffset","_texture","_autoPacking","_mapping","getIcon","autoPacking","_canvas","icons","cachedIcons","getDiffIcons","rowHeight","buildMapping","_yOffset","oldWidth","oldHeight","newTexture","cloneTextureFrom","copyToTexture","targetY","resizeTexture","getContext","imageData","resizeImage","loadOptions","iconAtlas","iconMapping","sizeMinPixels","sizeMaxPixels","alphaCutoff","getAngle","getPixelOffset","onIconError","iconManager","_onUpdate","_onError","instanceSizes","instanceOffsets","getInstanceOffset","instanceIconFrames","getInstanceIconFrame","instanceColorModes","getInstanceColorMode","instanceAngles","instancePixelOffset","iconMappingChanged","internalState","isAsyncPropLoading","iconsTexture","iconsTextureDim","rect","getIconMapping","IconLayer","_setPrototypeOf","cmp","cycles","aobj","bobj","seen","seenIndex","VECTOR_TO_POINT_MATRIX","DEFAULT_PIXELS_PER_UNIT2","DEFAULT_COORDINATE_ORIGIN","getMemoizedViewportUniforms","projectionCenter","originCommon","cameraPosCommon","getOffsetOrigin","offsetMode","geospatialOrigin","shaderCoordinateOrigin","calculateMatrixAndOffset","viewportSize","project_uCoordinateSystem","project_uProjectionMode","project_uCoordinateOrigin","project_uCommonOrigin","project_uCenter","project_uPseudoMeters","project_uViewportSize","project_uDevicePixelRatio","project_uFocalDistance","project_uCommonUnitsPerMeter","project_uCommonUnitsPerWorldUnit","project_uCommonUnitsPerWorldUnit2","project_uScale","project_uViewProjectionMatrix","distanceScalesAtOrigin","_applyConstraints","getMemoizedViewportCenterPosition","getMemoizedViewProjectionMatrices","shadowMatrices","projectionMatrices","farZ","screenToCommonSpace","shadowMatrix","DEFAULT_SHADOW_COLOR","createShadowUniforms","shadow_uDrawShadowMap","shadow_uUseShadowMap","shadow_uColor","shadow_uLightId","shadow_uLightCount","projectCenters","viewProjectionMatrices","viewProjectionMatrixCentered","shadowEnabled","globalScope","Decimal","inexact","quadrant","EXP_LIMIT","NUMERALS","DEFAULTS","rounding","modulo","toExpNeg","toExpPos","minE","maxE","crypto","invalidArgument","decimalError","mathfloor","mathpow","isBinary","isHex","isOctal","isDecimal","BASE","LN10_PRECISION","PI_PRECISION","digitsToString","ws","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","rm","repeating","di","rd","convertBase","baseIn","baseOut","arrL","strL","absoluteValue","finalise","comparedTo","xdL","ydL","xd","yd","xs","ys","Ctor","tinyPow","taylorSeries","cos2x","toLessThanHalfPi","neg","cubeRoot","cbrt","rep","t3plusx","isZero","divide","eq","decimalPlaces","dp","dividedBy","dividedToIntegerBy","divToInt","greaterThan","gt","greaterThanOrEqualTo","gte","hyperbolicCosine","cosh2_x","d8","hyperbolicSine","sinh2_x","d5","d16","d20","hyperbolicTangent","tanh","inverseCosine","halfPi","isNeg","getPi","inverseHyperbolicCosine","lte","ln","inverseHyperbolicSine","inverseHyperbolicTangent","wpr","xsd","inverseSine","inverseTangent","isInt","isPositive","isPos","lessThan","lessThanOrEqualTo","logarithm","isBase10","denominator","inf","naturalLogarithm","getLn10","xe","xLTy","getBase10Exponent","naturalExponential","negated","carry","getPrecision","sine","sin2_x","squareRoot","tangent","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFraction","maxD","d2","toHexadecimal","toNearest","toOctal","toPower","yn","intPow","toSignificantDigits","toSD","truncated","trunc","multiplyInteger","aL","bL","logBase","prod","prodL","qd","remL","rem0","xi","xL","yd0","yL","yz","isTruncated","digits","roundUp","xdi","isExp","nonFiniteToString","zs","isOdd","maxOrMin","ltgt","guard","numerator","parseDecimal","parseOther","isFloat","isHyperbolic","useDefaults","defaults","ps","getRandomValues","randomBytes","isDecimalInstance","log10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","define","_typeof2","_typeof3","_setPrototypeOf2","_create2","findDOMNode","HTMLElement","DEFAULT_COMPARE","splay","Tree","_root","_size","_comparator","_remove","findStatic","find","contains","high","minNode","maxNode","successor","predecessor","toList","presort","pivot","loadRecursive","middle","mergedList","mergeLists","createList","sortedListToBST","printNode","printRow","isTail","newKey","isInBbox","ur","getBboxOverlap","lowerX","upperX","EPSILON_SQ","PtRounder","xRounder","CoordRounder","yRounder","prevNode","rounder","crossProduct","dotProduct","compareVectorAngles","basePt","endPt1","endPt2","kross","sineOfAngle","pShared","pBase","pAngle","vBase","vAngle","cosineOfAngle","horizontalIntersection","verticalIntersection","SweepEvent","isLeft","ptCmp","comparePoints","Segment","aPt","bPt","otherEvents","iMax","checkForConsuming","numEvents","evt1","consumedBy","evt2","otherSE","consume","ringOut","isInResult","baseEvent","fillCache","linkedEvent","nextEvent","_cache$get","asine","acosine","_cache$get2","bsine","bcosine","segmentId","leftSE","rightSE","rings","windings","alx","blx","arx","brx","aly","bly","ary","bry","aCmpBLeft","comparePoint","bCmpARight","bCmpALeft","aCmpBRight","_bCmpARight","_aCmpBRight","newRightSE","isAnEndpoint","lPt","rPt","yDist","xFromYDist","xDist","yFromXDist","tBbox","oBbox","bboxOverlap","tlp","trp","olp","orp","touchesOtherLSE","touchesThisLSE","touchesOtherRSE","touchesThisRSE","pt1","pt2","ve","intersection","newEvents","alreadyLinked","newLeftSE","oldRightSE","replaceRightSE","newSeg","swapEvents","tmpEvt","consumer","consumee","_tmp","winding","_prevInResult","prevInResult","_beforeState","seg","afterState","multiPolys","_afterState","beforeState","ringsAfter","windingsAfter","mpsAfter","polysAfter","polysExclude","_iMax","_ring","poly","isExterior","_index","_i2","_iMax2","mp","multiPoly","_isInResult","mpsBefore","noBefores","noAfters","least","most","numMultiPolys","isJustSubject","mps","isSubject","leftPt","rightPt","cmpPts","RingIn","geomRing","firstPoint","prevPoint","fromRing","sweepEvents","PolyIn","geomPoly","exteriorRing","interiorRings","getSweepEvents","ringSweepEvents","jMax","MultiPolyIn","ex","polys","polySweepEvents","RingOut","allSegments","ringsOut","prevEvent","startingPoint","intersectionLEs","availableLEs","getAvailableLinkedEvents","firstPt","lastPt","indexLE","getLeftmostComparator","intersectionLE","ringEvents","prevPt","_pt","_nextPt","nextPt","isExteriorRing","iStart","iEnd","orderedPoints","_isExteriorRing","enclosing","enclosingRing","_enclosingRing","_calcEnclosingRing","leftMostEvt","prevSeg","prevPrevSeg","PolyOut","ringGeom","MultiPolyOut","_composePolys","polyGeom","addInterior","SweepLine","nextSeg","prevMySplitter","prevInter","getIntersection","newEventsFromSplit","_splitSafely","nextMySplitter","nextInter","_newEventsFromSplit","mySplitter","_newEventsFromSplit2","inter","_newEventsFromSplit3","_i3","_iMax3","_newEventsFromSplit4","_i4","_iMax4","POLYGON_CLIPPING_MAX_QUEUE_SIZE","POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS","Operation","moreGeoms","multipolys","subject","mpA","_j","_jMax","sweepLine","prevQueueSize","_evt","factory","union","xor","_len3","_key3","difference","subjectGeom","_len4","clippingGeoms","_key4","Tablelvl2Context","rhumbDistance","calculateRhumbDistance","halfY","scaleResult","inverseScale0","inverseScale1","inverseScale2","rx","ry","transformAsVector","column0Row0","column1Row1","column2Row0","column2Row1","column3Row2","createContext","ListContext","Long","unsigned","isLong","__isLong__","INT_CACHE","UINT_CACHE","fromInt","cachedObj","fromBits","fromNumber","UZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","radix","radixToPower","power","fromValue","TWO_PWR_16_DBL","TWO_PWR_24","UONE","NEG_ONE","LongPrototype","toInt","radixLong","remDiv","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","isEven","notEquals","neq","lessThanOrEqual","greaterThanOrEqual","thisNeg","otherNeg","not","addend","a48","a16","b48","b32","b16","c48","c32","c16","c00","subtrahend","approx","toUnsigned","shru","shr","shl","LN2","approxRes","approxRem","and","or","shiftLeft","numBits","shiftRight","shiftRightUnsigned","toSigned","toBytes","le","toBytesLE","toBytesBE","RADIAN_PER_DEGREE","calculateTransformMatrix","targetMatrix","orientation","sw","cw","scx","scy","scz","getExtendedMat3FromMat4","MATRIX_ATTRIBUTES","instanceModelMatrix__LOCATION_0","instanceModelMatrix__LOCATION_1","instanceModelMatrix__LOCATION_2","instanceTranslation","getTransformMatrix","arrayMatrix","constantMatrix","constantScale","constantOrientation","constantTranslation","hasMatrix","instanceModelMatrixData","getOrientation","getTranslation","shouldComposeModelMatrix","getWebGL2ValueOrZero","WEBGL_PARAMETERS","WEBGL2_CONTEXT_POLYFILLS","createVertexArray","deleteVertexArray","bindVertexArray","isVertexArray","vertexAttribDivisor","drawElementsInstanced","drawArraysInstanced","createQuery","deleteQuery","beginQuery","endQuery","getQuery","getQueryObject","getQueryParameter","WEBGL2_CONTEXT_OVERRIDES","originalFunc","getVertexAttrib","extension","getExtensionData","getProgramParameter","program","getInternalformatParameter","originalGetParameter","arrayLikeKeys","baseKeys","isArrayLike","assignValue","baseAssignValue","customizer","isNew","longitude1","latitude1","bearingRad","latitude2","longitude2","NebulaLayer","toNebulaFeature","uuid","Event","TwoClickPolygonMode","clickSequence","getTentativeGuide","editAction","getAddFeatureOrBooleanPolygonAction","lastPointerMoveEvent","guides","corner1","corner2","getTwoClickPolygon","lastCoords","xSum","ySum","inRing","ignoreBoundary","isInside","yi","xj","yj","inBBox","insidePoly","inHole","getFirstCharacters","getMagicString","magic","timeParts","validateProps","propTypes","getPropTypes","diffProps","propsChangedReason","compareProps","ignoreProps","dataChangedReason","_dataDiff","diffDataProps","updateTriggersChangedReason","diffUpdateTrigger","triggerChanged","triggerName","diffUpdateTriggers","updateTriggersChanged","diffExtensions","transitionsChanged","diffTransitions","comparePropValues","newProp","oldProp","oldExtensions","newTriggers","oldTriggers","LayerType","SNAP_TO_END","IGNORE","DEFAULT_PROPS","onTransitionStart","onTransitionInterrupt","onTransitionEnd","_onTransitionUpdate","transitionTriggered","_shouldIgnoreViewportChange","_isTransitionEnabled","interruption","propsInTransition","interpolator","arePropsEqual","_isUpdateDueToCurrentTransition","startViewstate","initialProps","_onTransitionEnd","inTransition","DEFAULT_REQUIRED_PROPS","startViewport","endViewport","aroundPosition","canUseDOM","makePrefixMap","styleProp","vendorPrefixes","domSupport","win","animationend","transitionend","animation","getVendorPrefixes","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","animationEndName","transitionEndName","supportTransition","getTransitionName","transitionName","transitionType","MotionPropTypes","eventProps","PropTypes","bool","motionName","oneOfType","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","removeOnLeave","leavedClassName","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd","genCSSMotion","transitionSupport","isSupportTransition","CSSMotion","_React$Component","onDomUpdate","_this$state","newStatus","_this$props","$ele","getElement","$cacheEle","removeEventListener","updateStatus","updateActiveStatus","onMotionEnd","_this$state2","statusActive","_this$props2","setNodeRef","internalRef","styleFunc","additionalState","statusStyle","_destroyed","nextStep","nextFrame","currentStatus","cancelNextFrame","_classNames","_props","prevStatus","newState","_initialiseProps","dragNodeHighlight","rcTreeNode","registerTreeNode","rcTree","syncLoadData","selectable","treeSelectable","loading","dragOver","dragOverGapTop","dragOverGapBottom","isLeaf","expanded","selected","otherProps","_context$rcTree","prefixCls","filterTreeNode","draggable","isDisabled","dataOrAriaAttributeProps","onDragEnter","onDragOver","onDragLeave","onDrop","onDragEnd","renderSwitcher","renderCheckbox","renderSelector","renderChildren","onSelect","loaded","checkable","switcherIcon","contextTypes","nodeContextTypes","childContextTypes","_this2","onSelectorClick","onNodeClick","isSelectable","onCheck","onSelectorDoubleClick","onNodeDoubleClick","onNodeSelect","preventDefault","_props2","onNodeCheck","isCheckable","onMouseEnter","onNodeMouseEnter","onMouseLeave","onNodeMouseLeave","onContextMenu","onNodeContextMenu","onDragStart","onNodeDragStart","stopPropagation","dataTransfer","setData","onNodeDragEnter","onNodeDragOver","onNodeDragLeave","onNodeDragEnd","onNodeDrop","onExpand","onNodeExpand","setSelectHandle","originList","targetList","getNodeState","_props3","loadData","hasChildren","treeDisabled","treeCheckable","_context$rcTree2","onNodeLoad","_props4","switcherIconFromProps","_context$rcTree3","switcherIconFromCtx","switcherCls","_props5","$custom","renderIcon","_props6","_context$rcTree4","showIcon","treeIcon","wrapClass","$icon","currentIcon","$title","onDoubleClick","_props7","_context$rcTree5","motion","renderTreeNode","nodeList","depthBuffer","blend","drawToShadowMap","DEFAULT_AMBIENT_LIGHT_PROPS","DEFAULT_DIRECTIONAL_LIGHT_PROPS","lightSource","light","shadowPasses","shadowPass","viewports","shadowLightId","dummyShadowMap","shadow","shadowMaps","shadowColor","ambientLight","directionalLights","directionalLight","pointLights","pointLight","lightMatrices","_arrayLikeToArray","isArrayX","isArrayY","propChecks","replacementProp","lngLatZToWorldPosition","getWorldPosition","normalizedParams","normalizeParameters","positionCommonSpace","OUTER_POLYGON_WINDING","HOLE_POLYGON_WINDING","windingOptions","isFlatRingClosed","copyNestedRing","simplePolygon","p0","isNestedRingClosed","copyFlatRing","srcLength","srcHoleIndices","isSimple","getSurfaceIndices","normalizedPolygon","positionIndex","xy","treeContextTypes","checkStrictly","openTransitionName","openAnimation","isKeyChecked","onUpCheckConduct","lightSources","convertColor","getLightSourceUniforms","lightSourceUniforms","lights","hasLights","lighting_uEnabled","MAX_LIGHTS","nodeIO","exportName","VENDOR_PREFIXES","TEST_ELEMENT","setTimeoutContext","bindFn","invokeArrayArg","each","deprecationMessage","nextKey","dest","inherit","childP","baseP","_super","boolOrFn","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","hasParent","inStr","inArray","findByKey","uniqueArray","camelProp","_uniqueId","getWindowForElement","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","PROPS_XY","PROPS_CLIENT_XY","Input","manager","inputTarget","domHandler","ev","init","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","timeStamp","deltaTime","getDistance","offsetDelta","prevDelta","prevInput","computeDeltaXY","offsetDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","getRotation","maxPointers","velocity","velocityX","velocityY","lastInterval","computeIntervalInputData","computeInputData","recognize","clientX","evEl","evTarget","evWin","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MouseInput","pressed","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","3","4","5","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SingleTouchInput","normalizeSingleTouches","touches","changedTouches","TOUCH_INPUT_MAP","TouchInput","targetIds","getTouches","allTouches","targetTouches","changedTargetTouches","touch","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","supports","getTouchActionProps","TouchAction","actions","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","DIRECTION_LEFT","DIRECTION_UP","preventSrc","Recognizer","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","Hammer","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","attrTest","optionPointers","isRecognized","DIRECTION_HORIZONTAL","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","domEvents","inputClass","cssProps","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","oldCssProps","createInputInstance","toggleCssProps","stopped","curRecognizer","existing","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","triggerDomEvent","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_DOWN","DIRECTION_VERTICAL","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press","uncompressed","currentScript","emscriptenModule","COMPRESSORS","clevel","cname","shuffle","SHUFFLE","blocksize","compress","free_result","NOSHUFFLE","BITSHUFFLE","AUTOSHUFFLE","ListCache","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","__data__","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","entry","nativeCreate","getNative","isKeyable","baseIsArguments","isObjectLike","objectProto","isArguments","stubFalse","freeExports","freeModule","baseGetTag","toSource","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","findInArray","isNum","dontSetMe","radiusScale","printTypes","SphericalCoordinates","pose","getTransformationMatrix","xmlNode","textNodeName","ignoreNameSpace","allowBooleanAttributes","trimValues","cdataTagName","cdataPositionChar","numParseOptions","leadingZeros","tagValueProcessor","attrValueProcessor","stopNodes","alwaysCreateTextNode","processTagValue","parseValue","resolveNameSpace","tagname","tags","shouldParse","newval","attrsRegx","buildAttributesMap","attrStr","attrCollection","closingIndexForOpeningTag","attrBoundary","tagExp","findClosingIndex","xmlData","errMsg","closingIndex","getTraversalObj","xmlObj","currentNode","textData","closeIndex","colonIndex","attrsMap","childNode","addChild","separatorIndex","shouldBuildAttributesMap","baseKeysIn","bitmap","$keys","enumBugKeys","isSymbol","__importDefault","line_segment_1","geojson_rbush_1","line1","line2","coords1","coords2","x4","y4","denom","numeA","numeB","uA","uB","unique","padToNBytes","copyToArray","srcByteLength","targetOffset","SEMVER_SPEC_VERSION","NODE_DEBUG","operator","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","polygon1","polygon2","geom1","geom2","differenced","polygonClipping","mergeShaders","mergedInjection","isPlainObject","deltaZoom","newZoomX","newZoomY","MapController","MapView","DEFAULT_MODULES","SHADER_HOOKS","createProgramManager","toValue","updateSpringElement","cur","distanceSquare","_currValue","updateSpring","TRANSITION_TYPES","CPUSpringTransition","TransitionType","internalTextures","TYPE_DEFINITIONS","arrayEqual","valueType","getTypeOf","function","dataTransform","specialTextureParameters","textureParameters","createTexture","destroyTexture","parsePropType","propDef","normalizePropDefinition","createProps","propsPrototype","getPropsPrototype","propsInstance","componentClass","getOwnProperty","parentClass","parentDefaultProps","componentPropDefs","propDefs","parsePropTypes","parentProps","getComponentName","createPropsPrototype","defaultValues","descriptors","getDescriptorForAsyncProp","addAsyncPropsToPropPrototype","nameStr","addDeprecatedPropsToPropPrototype","createPropsPrototypeAndTypes","EMPTY_PROPS","asyncProp","asyncProps","oldAsyncProps","resolvedValues","originalValues","getAsyncProp","_didAsyncInputValueChange","_postProcessValue","loadCount","onDataLoad","lastValue","resolvedValue","pendingLoadCount","resolvedLoadCount","MAX_PICKING_COLOR_CACHE_SIZE","areViewportsEqual","oldViewport","pickingColorCache","resourceManager","inResourceManager","resourceId","persistent","onChange","consumerId","requestId","onDrag","getPolygonOffset","autoHighlight","highlightColor","stateChanged","redraw","clearRedrawFlags","_getNeedsRedraw","needsUpdate","shouldUpdateState","uniformTransitions","neededPickingBuffer","needPickingBuffer","pickingColorsAttribute","viewportChanged","getNumInstances","getStartIndices","ignoreUnknownAttributes","changedAttributes","clearChangedFlags","newCacheSize","pickingColor","excludeAttributes","objectIndex","usesPickingColorCache","stateNeedsUpdate","currentViewport","updateParams","oldModels","modelChanged","getModels","flagChanged","propsOrDataChanged","somethingChanged","setChangeFlags","pickingModuleParameters","pickingSelectedColor","encodePickingColor","needsRedraw","attributeManagerNeedsRedraw","calculateInstancePickingColors","_onAsyncPropUpdated","constantValue","getStride","resolveShaderAttribute","baseAccessor","shaderAttributeOptions","logicalType","bufferType","defaultType","glArrayFromType","externalBuffer","bufferAccessor","allocatedValue","isBuffer64Bit","doubleShaderAttributeDefs","resolvedOptions","resolveDoublePrecisionShaderAttributes","shaderAttributeDef","_normalizeValue","_normalizeConstant","_areValuesEqual","requiredBufferSize","endOffset","illegalArrayType","EMPTY","newRangeList","insertPosition","range0","lastExternalBuffer","binaryValue","binaryAccessor","updateRanges","getVertexOffset","needsNormalize","shaderAttributeDefs","accessorFunc","objectValue","attributeType","ATTRIBUTE_TYPE","varyings","getTransform","bufferOpts","transitionSettings","padBufferOpts","elementCount","currentLength","sourceBuffers","aFrom","aTo","feedbackBuffers","vCurrent","getTexture","getFramebuffer","aPrev","aCur","vNext","discard","clearRenderTarget","readPixelsToArray","Transform","animatedAttributes","attributeNameArray","invalidatedAttributes","_invalidateTrigger","transitionUpdated","attributeTransitionManager","_createAttribute","triggers","SINGLE_LINE","getTextWidth","character","frameWidth","breakAll","maxWidth","rowStartCharIndex","rowOffsetLeft","textWidth","breakWord","groupStartCharIndex","groupEndCharIndex","groupWidth","autoWrapping","wordBreak","transformRow","leftOffsets","rowSize","transformParagraph","paragraph","lineHeight","numCharacters","rowWidth","autoWrappingEnabled","rowOffsetTop","lineStartIndex","lineEndIndex","char","rows","rowIndex","rowStart","rowEnd","_order","findIndex","DEFAULT_CHAR_SET","charSet","getDefaultCharacterSet","VALID_PROPS","getNewChars","cachedFontAtlas","newChars","cachedMapping","cachedCharSet","populateAlphaChannel","alphaChannel","setTextStyle","fontWeight","sdf","cutoff","oldKey","fontAtlas","_generateFontAtlas","getFontWidth","fontHeight","maxCanvasWidth","tinySDF","_atlas","DEFAULT_FONT_SETTINGS","smoothing","TEXT_ANCHOR","ALIGNMENT_BASELINE","FONT_SETTINGS_PROPS","getBackgroundColor","getBorderColor","getBorderWidth","backgroundPadding","outlineWidth","outlineColor","fontSettings","getText","getTextAnchor","getAlignmentBaseline","backgroundColor","styleVersion","fontAtlasManager","textChanged","oldCharacterSet","fontChanged","_fontChanged","oldFontSettings","textBuffer","autoCharacterSet","characterCount","texts","codesAtIndex","getTextFromBuffer","anchorX","anchorY","rowOffset","CharactersLayerClass","getSubLayerClass","BackgroundLayerClass","getSubLayerProps","getBoundingRect","getIconOffsets","tesselateColumn","vertices","isExtruded","stepAngle","vertexIndex","diskResolution","lineWidthUnits","lineWidthScale","lineWidthMinPixels","lineWidthMaxPixels","regenerateModels","hasThinkness","meanVertexDistance","fillVertexCount","wireframeVertexCount","isStroke","ColumnLayer","radiusMinPixels","radiusMaxPixels","antialiasing","getRadius","strokeWidth","outline","instanceRadius","instanceLineWidths","ScatterplotLayer","instanceRects","instancePixelOffsets","TextBackgroundLayer","_subscribers","_error","subscriber","protocol","_resources","_consumers","resources","consumers","INITIAL_CONTEXT","layerManager","shaderCache","pickingFBO","activateViewport","layerNeedsRedraw","_nextLayers","_needsRedraw","_needsUpdate","layerIds","newLayers","oldLayerMap","oldLayer","generatedLayers","newLayer","sublayers","_debug","outlineBuffer","gamma","MultiIconLayer","drawPickingColors","layerPass","lastPostProcessEffect","renderBuffers","swapBuffer","_arrayWithHoles","_nonIterableRest","_iterableToArray","ThemeContext","hasSymbol","for","sm","md","lg","defaultBreakpoints","handleBreakpoints","propValue","styleFromPropValue","themeBreakpoints","breakpoints","_themeBreakpoints","breakpoint","zIndex","mobileStepper","speedDial","appBar","drawer","modal","snackbar","tooltip","_isNativeReflectConstruct","sham","isElectron","mockUserAgent","realUserAgent","methodNames","upgradeMessage","methodName","getBinaryImageMetadata","toDataView","binaryData","getPngMetadata","tableMarkers","sofMarkers","getJpegMarkers","getJpegMetadata","getGifMetadata","getBmpMetadata","replaceStart","replaceEnd","getIndex","dataLengthChanged","endChunk","PICKING_PARAMETERS","_drawPickingBuffer","deviceRect","pickZ","encodedColors","byLayer","byAlpha","redrawReason","decodePickingColor","decodeColor","pickingAttribute","pickParameters","encoded","encodeColor","pickedColor","pickedLayer","pickedViewports","pickedObjectIndex","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","named","matchers","rgba","hsla","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","hsvToRgb","hue2rgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","pad2","rgbaToArgbHex","convertDecimalToHex","desaturate","amount","clamp01","saturate","greyscale","brighten","spin","hue","complement","triad","tetrad","splitcomplement","analogous","monochromatic","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","_applyCombination","fromRatio","newColor","color1","color2","rgb1","rgb2","readability","isReadable","wcag2","wcag2Parms","parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","reactIs","REACT_STATICS","contextType","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","objectPrototype","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","getScrollbarSize","scrollDiv","scrollbarSize","offsetWidth","createDetectElementResize","hostWindow","_window","attachEvent","requestFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","cancelFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","resetTriggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollLeft","scrollWidth","scrollHeight","offsetHeight","scrollListener","__resizeRAF__","__resizeLast__","checkTriggers","__resizeListeners__","keyframeprefix","animationstartevent","domPrefixes","startEvents","elm","animationName","animationKeyframes","animationStyle","addResizeListener","elementStyle","getComputedStyle","getElementById","getElementsByTagName","styleSheet","cssText","createTextNode","createStyles","innerHTML","__animationListener__","removeResizeListener","detachEvent","TableContext","AccordionContext","_interopRequireWildcard","_default","maxDepth","replacer","EL_ID","DEFAULT_OPTIONS","styleId","disableDefaultStyle","formatTooltip","valueToHtml","__rest","Handler","elementId","tooltipHandler","createDefaultStyle","classList","fullscreenElement","tooltipBox","innerWidth","innerHeight","calculatePosition","DracoLoader","mimeTypes","tests","draco","decoderType","libraryPath","extraAttributes","attributeNameEntry","getMeshBoundingBox","usedNames","checkNames","compareTo","nameMap","selectedFields","Schema","columnIndices","schemaOrFields","otherSchema","mergeMaps","fieldMap","m1","isSigned","Precision","listSize","Field","makeSchemaFromAttributes","metadataMap","makeMetadata","loaderData","namedLoaderDataAttributes","dracoAttribute","transformAttributesLoaderData","getArrowFieldFromAttribute","indicesField","getArrowTypeFromTypedArray","DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP","TEX_COORD","DRACO_DATA_TYPE_TO_TYPED_ARRAY_MAP","6","9","geometry_type","GetEncodedGeometryType","dracoGeometry","dracoStatus","DecodeBufferToMesh","DecodeBufferToPointCloud","_getDracoLoaderData","_getMeshData","_getTopLevelMetadata","_getDracoAttributes","num_attributes","num_points","num_faces","dracoAttributes","attributeId","GetAttribute","_getAttributeMetadata","unique_id","attribute_type","num_components","byte_offset","byte_stride","attribute_index","quantization","_getQuantizationTransform","octahedron","_getOctahedronTransform","_getMeshAttributes","topology","_getTriangleStripIndices","_getTriangleListIndices","loaderAttribute","_deduceAttributeName","_getAttributeValues","byteStride","numIndices","dracoArray","numValues","intArray","getUint32Array","TypedArrayCtor","numComponents","getDracoDataType","uniqueId","thisAttributeType","entryName","dracoMetadata","GetMetadata","_getDracoMetadata","GetAttributeMetadata","numEntries","metadataQuerier","NumEntries","entryIndex","GetEntryName","_getDracoMetadataField","getInt32Array","GetIntEntry","GetStringEntry","GetDoubleEntry","quantizedAttributes","octahedronAttributes","skipAttributes","quantization_bits","min_values","loadLibraryPromises","moduleName","libraryUrl","getLibraryUrl","loadLibraryFromFile","library","importScripts","scriptSource","loadLibraryFromString","eval","script","DRACO_JS_DECODER_URL","DRACO_WASM_WRAPPER_URL","DRACO_WASM_DECODER_URL","loadDecoderPromise","loadDracoDecoder","loadLibrary","DracoDecoderModule","initializeDracoDecoder","onModuleLoaded","loadDracoDecoderModule","dracoParser","getScratchArray","getBrowser","navigator_","isMSIE","isTrident","ERR_ELEMENTS","VertexArrayObject","isDefaultArray","setProps","elementBuffer","setElementBuffer","disablingAttributeZero","constantAttributeZero","_normalizeConstantArrayValue","updateNeeded","_compareConstantArrayValues","MULTI_LOCATION_ATTRIBUTE_REGEXP","DEPRECATIONS_V6","MAX_ATTRIBUTES","drawParams","appAccessor","_resolveLocationAndAccessor","arrayValue","vertexArrayObject","INVALID_RESULT","_getAttributeIndex","locationOrName","accessInfo","_getAttributeInfo","currentAccessor","configuration","getAttributeInfo","multiLocation","locationOffset","getAttributeLocation","getConstantBuffer","elements","elementsAccessor","formatArrayValue","maxElts","terminator","getDebugTableRow","vertexArray","verts","getGLSLDeclaration","typeAndName","getDebugTableForUniforms","undefinedOnly","uniformLocations","uniformNames","uniformName","addUniformToTable","unusedCount","unusedTable","uniform","isUniformDefined","attributeInfo","GLTF_TO_LUMA_ATTRIBUTE_MAP","COLOR_0","TEXCOORD_1","TEXCOORD_2","mapAttributeName","attributeMap","inferAttributeAccessor","category","NOOP","DRAW_PARAMS","transpileToGLSL100","bufferMode","getModuleUniforms","remappedName","getBuffersFromGeometry","normalizedAttributes","transformFeedback","logPriority","_logDrawCallStart","indexType","vertexArrayInstanced","onBeforeRender","onAfterRender","didDraw","unbindModels","_programDirty","stateHash","geometryBuffers","animationProps","logDrawTimeout","collapsed","attributeTable","rowHeader","attributeLocation","getDebugTableForVertexArray","configTable","glslDeclaration","varyingInfo","getDebugTableForProgramConfiguration","getHiResTimestamp","sampleSize","lastSampleCount","lastSampleTime","_samples","_getOrCreate","stat","average","hz","calculateRhumbBearing","deltaLambda","deltaPsi","rhumbBearing","bear360","dragNode","_node$props2","dropPosition","dragOverNodeKey","delayedDragEnterLogic","newExpandedKeys","_this$state$dragNodes","_node$props3","posArr","dropResult","dropToGap","_treeNode$props","targetSelected","selectedNodes","setUncontrolledState","nativeEvent","oriCheckedKeys","oriHalfCheckedKeys","checkedObj","eventObj","checkedNodes","_conductCheck","_checkedKeys","_halfCheckedKeys","checkedNodesPositions","_ref$loadedKeys","loadedKeys","_ref$loadingKeys","loadingKeys","_this$props3","newLoadedKeys","newLoadingKeys","_this$props4","_treeNode$props2","targetExpanded","loadPromise","onRightClick","needSync","domTreeNodes","_this$state$checkedKe","_this$state3","_this$state3$expanded","_this$state3$selected","_this$state3$halfChec","_this$state3$loadedKe","_this$state3$loadingK","cloneElement","showLine","_props2$tabIndex","tabIndex","domProps","onKeyDown","unselectable","entitiesMap","autoExpandParent","defaultExpandParent","defaultExpandAll","defaultExpandedKeys","defaultSelectedKeys","checkedKeyEntity","defaultCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","any","arrayOf","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","WEBGL2","VERTEX_ARRAY_OBJECT","TIMER_QUERY","INSTANCED_RENDERING","MULTIPLE_RENDER_TARGETS","ELEMENT_INDEX_UINT32","BLEND_EQUATION_MINMAX","FLOAT_BLEND","COLOR_ENCODING_SRGB","TEXTURE_DEPTH","TEXTURE_HALF_FLOAT","TEXTURE_FILTER_LINEAR_HALF_FLOAT","TEXTURE_FILTER_ANISOTROPIC","COLOR_ATTACHMENT_RGBA32F","COLOR_ATTACHMENT_FLOAT","COLOR_ATTACHMENT_HALF_FLOAT","GLSL_FRAG_DATA","GLSL_FRAG_DEPTH","GLSL_DERIVATIVES","GLSL_TEXTURE_LOD","testTexture","testFb","clearFlags","Mt","root_","size_","array_","It","addAll","interfaces_","getClass","equalsWithTolerance","doubleToLongBits","longBitsToDouble","isInfinite","NULL_ORDINATE","DimensionalComparator","serialVersionUID","setOrdinate","equals2D","getOrdinate","equals3D","equalInZ","distance3D","hashCode","setCoordinate","_dimensionsToTest","INTERIOR","BOUNDARY","EXTERIOR","toLocationSymbol","LOG_10","append","setCharAt","intValue","isWhitespace","_hi","_lo","TWO_PI","PI_2","EPS","SPLIT","MAX_PRINT_DIGITS","TEN","SCI_NOT_EXPONENT_CHAR","SCI_NOT_ZERO","extractSignificantDigits","magnitude","selfAdd","sqr","doubleValue","selfSubtract","getSpecialNumberString","selfDivide","dump","createNaN","ge","selfMultiply","reciprocal","rint","selfSqr","toStandardNotation","toSciNotation","stringOfChar","signum","isDigit","DP_SAFE_EPSILON","orientationIndex","orientationIndexFilter","signOfDet2x2","getCoordinate","getCoordinateCopy","getDimension","getX","expandEnvelope","getY","toCoordinateArray","arraycopy","_minx","_maxx","_miny","_maxy","getArea","isNull","getMaxX","getMaxY","getMinX","getMinY","expandToInclude","setToNull","maxExtent","expandBy","centre","typeStr","emptyTypeStr","spaces","parenComma","doubleParenComma","trimParens","geometryFactory","extractGeometry","getGeometryType","coordinate","_coordinates","multipoint","_geometries","linestring","_points","linearring","multilinestring","_shell","_holes","multipolygon","geometrycollection","createPoint","createMultiPoint","createLineString","createLinearRing","createMultiLineString","createPolygon","createMultiPolygon","createGeometryCollection","toLineString","tt","et","shouldNeverReachHere","isTrue","nt","_result","_inputLines","_intPt","_intLineIndex","_isProper","_pa","_pb","_precisionModel","DONT_INTERSECT","DO_INTERSECT","COLLINEAR","NO_INTERSECTION","POINT_INTERSECTION","COLLINEAR_INTERSECTION","getIndexAlongSegment","computeIntLineIndex","getTopologySummary","isEndPoint","isCollinear","computeIntersection","computeIntersect","getIntersectionNum","getEdgeDistance","isProper","hasIntersection","setPrecisionModel","isInteriorIntersection","computeEdgeDistance","getEndpoint","isIntersection","getIntersectionAlongSegment","nonRobustComputeEdgeDistance","rt","isInSegmentEnvelopes","normalizeToMinimum","smallestInAbsValue","safeHCoordinateIntersection","nearestEndpoint","intersectionWithNormalization","makePrecise","checkDD","println","normalizeToEnvCentre","computeCollinearIntersection","distancePointLine","ot","st","_p","_crossingCount","_isPointOnSegment","countSegment","isPointInPolygon","getLocation","isOnSegment","locatePointInRing","ut","RIGHT","COUNTERCLOCKWISE","LEFT","STRAIGHT","signedArea","distanceLineLine","isPointInRing","computeLength","isCCW","computeOrientation","distancePointLinePerpendicular","isOnLine","ct","_envelope","_factory","_SRID","_userData","getSRID","SORTINDEX_POINT","SORTINDEX_MULTIPOINT","SORTINDEX_LINESTRING","SORTINDEX_LINEARRING","SORTINDEX_MULTILINESTRING","SORTINDEX_POLYGON","SORTINDEX_MULTIPOLYGON","SORTINDEX_GEOMETRYCOLLECTION","geometryChangedFilter","getSortIndex","getFactory","getGeometryN","isRectangle","equalsTopo","equalsExact","geometryChanged","geometryChangedAction","equalsNorm","getLength","getNumGeometries","compareToSameClass","getUserData","getEnvelope","toGeometry","getEnvelopeInternal","checkNotGeometryCollection","getPrecisionModel","computeEnvelopeInternal","setSRID","setUserData","isGeometryCollectionOrDerived","hasNonEmptyElements","hasNullElements","ht","ft","dt","Mod2BoundaryNodeRule","EndPointBoundaryNodeRule","MultiValentEndPointBoundaryNodeRule","MonoValentEndPointBoundaryNodeRule","MOD2_BOUNDARY_RULE","ENDPOINT_BOUNDARY_RULE","MULTIVALENT_ENDPOINT_BOUNDARY_RULE","MONOVALENT_ENDPOINT_BOUNDARY_RULE","OGC_SFS_BOUNDARY_RULE","isInBoundary","yt","_t","mt","vt","Et","xt","Nt","ensureCapacity","Ct","arrayList_","position_","St","coordArrayType","closeRing","Lt","ForwardComparator","BidirectionalComparator","wt","Ot","isRing","ptNotInList","scroll","hasRepeatedPoints","removeRepeatedPoints","removeNull","copyDeep","isEqualReversed","envelope","atLeastNCoordinatesOrNothing","increasingDirection","minCoordinate","OLDcompare","Tt","entrySet","Rt","Pt","Dt","hashSet_","fixAfterInsertion","rotateLeft","rotateRight","getFirstEntry","At","Ft","treeSet_","Gt","asList","Bt","FALSE","TRUE","DONTCARE","SYM_FALSE","SYM_TRUE","SYM_DONTCARE","SYM_P","SYM_L","SYM_A","toDimensionSymbol","toDimensionValue","Vt","Ut","isDone","isGeometryChanged","zt","getCoordinates","getNumPoints","isEquivalentClass","getBoundaryDimension","getBoundary","Xt","Yt","_geom","_geomFact","_bnRule","_endpointMap","boundaryMultiLineString","getEmptyMultiPoint","computeBoundaryCoordinates","createMultiPointFromCoords","Kt","boundaryLineString","getStartPoint","getEndPoint","addEndpoint","getCoordinateN","kt","jt","Ht","NEWLINE","SIMPLE_ORDINATE_FORMAT","chars","getStackTrace","printStackTrace","readLine","Wt","copyCoord","ensureValidRing","createClosedRing","getPointN","getCoordinateSequence","getCoordinateSequenceFactory","isCoordinate","Jt","Qt","Zt","$t","getNumInteriorRing","convexHull","getExteriorRing","getInteriorRingN","validateConstruction","MINIMUM_VALID_SIZE","ne","ie","_isUserDataCopied","NoOpGeometryOperation","CoordinateOperation","CoordinateSequenceOperation","setCopyUserData","edit","editInternal","editGeometryCollection","editPolygon","getName","GeometryEditorOperation","oe","editCoordinates","ue","_dimension","pe","instanceObject","readResolve","he","map_","fe","_modelType","_scale","FLOATING","FIXED","setScale","maximumPreciseValue","getMaximumSignificantDigits","isFloating","FLOATING_SINGLE","mostPrecise","_name","nameToTypeMap","ye","_coordinateSequenceFactory","getDefaultCoordinateSequenceFactory","me","buildGeometry","toGeometryArray","toPolygonArray","toLineStringArray","toPointArray","createGeometry","toMultiPolygonArray","toMultiLineStringArray","toMultiPointArray","toLinearRingArray","createPointFromInternalCoord","Ie","Ee","Feature","FeatureCollection","Point","MultiPoint","LineString","MultiLineString","MultiPolygon","GeometryCollection","Ne","precisionModel","reducePrecision","Ce","Se","Le","ON","opposite","_minIndex","_minCoord","_minDe","_orientedDe","getRightmostSide","getRightmostSideOfSegment","checkForRightmostCoordinate","findRightmostEdgeAtVertex","getEdge","findRightmostEdgeAtNode","getNode","getEdges","getRightmostEdge","isForward","getSym","findEdge","we","msgWithCoord","Oe","addLast","removeFirst","Te","_finder","_dirEdgeList","_nodes","_rightMostCoord","_env","clearVisitedEdges","setVisited","getRightmostCoordinate","computeNodeDepth","isVisited","computeDepths","copySymDepths","computeDepth","setEdgeDepths","addReachable","findResultEdges","getDepth","isInteriorAreaEdge","setInResult","setDepth","getNodes","getDirectedEdges","Re","setAllLocations","setAllLocationsIfNull","isLine","getLocations","setLocations","isArea","isAnyNull","setLocation","isEqualOnSide","allPositionsEqual","Pe","elt","getGeometryCount","toLine","toLineLabel","De","_startDe","_maxNodeDegree","_edges","_pts","_label","_isHole","_geometryFactory","computePoints","computeRing","isIsolated","getEdgeRing","getLabel","mergeLabel","addPoints","setEdgeRing","getNext","getLinearRing","computeMaxNodeDegree","getOutgoingDegree","isHole","containsPoint","addHole","isShell","getMaxNodeDegree","getShell","setShell","toPolygon","Me","setMinEdgeRing","getNextMin","Ae","buildMinimalRings","getMinEdgeRing","linkDirectedEdgesForMinimalEdgeRings","linkMinimalDirectedEdges","Fe","_isCovered","_isCoveredSet","_isVisited","isCovered","isCoveredSet","setLabel","setCovered","updateIM","computeIM","Ge","_coord","isIncidentEdgeInResult","computeMergedLocation","setNode","setLabelBoundary","qe","nodeMap","nodeFact","addNode","createNode","getBoundaryNodes","Be","Ve","NE","NW","SW","SE","isNorthern","isOpposite","commonHalfPlane","isInHalfPlane","Ue","_edge","_node","_p0","_p1","_dx","_dy","_quadrant","compareDirection","getDy","getDirectedCoordinate","getDx","getQuadrant","computeLabel","ze","_isForward","_sym","_nextMin","_edgeRing","_minEdgeRing","_depth","computeDirectedLabel","setNextMin","getDepthDelta","isLineEdge","printEdge","printReverse","setSym","setVisitedEdge","setNext","depthFactor","Xe","Ye","_edgeEndList","printEdges","eiList","getNodeIterator","linkResultDirectedEdges","debugPrintln","isBoundaryNode","linkAllDirectedEdges","matchInSameDirection","getEdgeEnds","debugPrint","getEdgeIterator","findEdgeInSameDirection","insertEdge","findEdgeEnd","addEdges","ke","_shellList","sortShellsAndHoles","computePolygons","placeFreeHoles","findEdgeRingContaining","buildMinimalEdgeRings","findShell","placePolygonHoles","buildMaximalEdgeRings","getPolygons","je","He","_bounds","We","_items","poll","reorder","Ke","visitItem","Je","Qe","_childBoundables","_level","Ze","getLevel","getChildBoundables","addChildBoundable","computeBounds","$e","reverseOrder","singletonList","tn","_boundable1","_boundable2","_distance","_itemDistance","expandToQueue","isLeaves","getBoundable","en","_built","_itemBoundables","_nodeCapacity","DEFAULT_NODE_CAPACITY","nn","IntersectsOp","getNodeCapacity","lastNode","removeItem","itemsTree","boundablesAtLevel","getIntersectsOp","createHigherLevels","getRoot","createParentBoundables","getComparator","compareDoubles","rn","sn","STRtreeNode","xComparator","yComparator","intersectsOp","createParentBoundablesFromVerticalSlices","createParentBoundablesFromVerticalSlice","verticalSlices","nearestNeighbour","centreX","avg","centreY","un","relativeSign","compareValue","_segString","_segmentOctant","_isInterior","isInterior","cn","_nodeMap","getSplitCoordinates","addEndpoints","addEdgeCoordinates","addCollapsedNodes","findCollapsesFromInsertedNodes","findCollapsesFromExistingVertices","addSplitEdges","createSplitEdge","findCollapseIndex","gn","getSegmentOctant","checkSplitEdgesCorrectness","pn","octant","hn","addIntersection","_nodeList","safeOctant","addIntersectionNode","getNodeList","addIntersections","getNodedSubstrings","dn","isVertical","projectionFactor","distancePerpendicular","midPoint","closestPoints","lineIntersection","pointAlongOffset","setCoordinates","segmentFraction","isHorizontal","pointAlong","tempEnv1","tempEnv2","_overlapSeg1","_overlapSeg2","overlap","getLineSegment","mn","_start","_end","_context","_id","computeSelect","select","computeOverlaps","computeOverlapsInternal","setId","getEndIndex","getStartIndex","getId","vn","getChainStartIndices","findChainEnd","toIntArray","getChains","In","computeNodes","En","_segInt","setSegmentIntersector","xn","_monoChains","_idCounter","_nodedSegStrings","_nOverlaps","SegmentOverlapAction","getMonotoneChains","intersectChains","Nn","_si","processIntersections","Cn","_quadrantSegments","DEFAULT_QUADRANT_SEGMENTS","_endCapStyle","CAP_ROUND","_joinStyle","JOIN_ROUND","_mitreLimit","DEFAULT_MITRE_LIMIT","_isSingleSided","_simplifyFactor","DEFAULT_SIMPLIFY_FACTOR","setQuadrantSegments","setEndCapStyle","setJoinStyle","setMitreLimit","Sn","CAP_FLAT","CAP_SQUARE","JOIN_MITRE","JOIN_BEVEL","getEndCapStyle","isSingleSided","getJoinStyle","setSimplifyFactor","getSimplifyFactor","getQuadrantSegments","getMitreLimit","setSingleSided","bufferDistanceError","Ln","_distanceTol","_isDeleted","_angleOrientation","_inputLine","bn","INIT","DELETE","NUM_PTS_TO_CHECK","isDeletable","isConcave","isShallow","isShallowSampled","deleteShallowConcavities","findNextNonDeletedIndex","isShallowConcavity","collapseLine","wn","_ptList","_minimimVertexDistance","On","COORDINATE_ARRAY_TYPE","addPt","isRedundant","revere","addPts","setMinimumVertexDistance","Tn","Rn","PI_TIMES_2","PI_OVER_2","PI_OVER_4","isAcute","isObtuse","interiorAngle","normalizePositive","angleBetween","getTurn","angleBetweenOriented","Pn","_maxCurveSegmentError","_filletAngleQuantum","_closingSegLengthFactor","_segList","_bufParams","_li","_s0","_s1","_s2","_seg0","_seg1","_offset0","_offset1","_side","_hasNarrowConcaveAngle","MAX_CLOSING_SEG_LEN_FACTOR","Dn","OFFSET_SEGMENT_SEPARATION_FACTOR","INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR","CURVE_VERTEX_SNAP_DISTANCE_FACTOR","addNextSegment","computeOffsetSegment","addCollinear","addOutsideTurn","addInsideTurn","addLineEndCap","addFilletArc","addMitreJoin","addLimitedMitreJoin","addFilletCorner","addBevelJoin","createSquare","addSegments","addFirstSegment","addLastSegment","initSideSegments","createCircle","hasNarrowConcaveAngle","Mn","getOffsetCurve","getSegGen","computePointCurve","computeOffsetCurve","computeSingleSidedBufferCurve","simplifyTolerance","computeRingBufferCurve","computeLineBufferCurve","getLineCurve","getBufferParameters","getRingCurve","copyCoordinates","An","_subgraphs","_seg","_cga","Fn","DepthSegment","findStabbedSegments","Gn","_leftDepth","_upwardSeg","qn","interpolateZ","longestSideLength","circumcentre","area3D","centroid","inCentre","perpendicularBisector","angleBisector","Bn","_inputGeom","_curveBuilder","_curveList","addPoint","addCurve","addPolygon","isErodedCompletely","addPolygonRing","isTriangleErodedCompletely","addLineString","getCurves","addCollection","Vn","locate","Un","_parent","_atStart","_max","_subcollectionIterator","isAtomic","zn","containsPointInPolygon","Xn","_edgeMap","_edgeList","_ptInAreaLocation","getNextCW","propagateSideLabels","isAreaLabelsConsistent","computeEdgeEndLabels","getBoundaryNodeRule","checkAreaLabelsConsistent","computeLabelling","getDegree","insertEdgeEnd","Yn","_resultAreaEdgeList","_SCANNING_FOR_INCOMING","_LINKING_TO_OUTGOING","getResultAreaEdges","updateLabelling","mergeSymLabels","findCoveredLineEdges","kn","jn","_orientation","compareOriented","Hn","_ocaMap","findEdgeIndex","findEqualEdge","Wn","Kn","_hasIntersection","_hasProper","_hasProperInterior","_hasInterior","_properIntersectionPoint","_isSelfIntersection","numIntersections","numInteriorIntersections","numProperIntersections","numTests","isTrivialIntersection","isAdjacentSegments","getProperIntersectionPoint","hasProperInteriorIntersection","getLineIntersector","hasProperIntersection","hasInteriorIntersection","Jn","getSegmentIndex","Qn","pts","ni","Zn","$n","env1","env2","computeIntersectsForChain","getStartIndexes","computeIntersects","ti","NULL_VALUE","ei","getDelta","depthAtLocation","_mce","_isIsolated","_depthDelta","getCollapsedEdge","setIsolated","setName","isCollapsed","getMaximumSegmentIndex","getMonotoneChainEdge","isPointwiseEqual","setDepthDelta","getEdgeIntersectionList","setAtLeastIfValid","_workingPrecisionModel","_workingNoder","_graph","setWorkingPrecisionModel","insertUniqueEdge","depthDelta","buildSubgraphs","createSubgraphs","createEmptyResultGeometry","getNoder","computeNodedEdges","setNoder","convertSegStrings","ri","_noder","_scaleFactor","_offsetX","_offsetY","_isScaled","isIntegerPrecision","rescale","_segStrings","fact","checkEndPtVertexIntersections","checkInteriorIntersections","checkValid","checkCollapses","checkCollapse","_originalPt","_ptScaled","_p0Scaled","_p1Scaled","_corner","_safeEnv","initCorners","ui","SAFE_ENV_EXPANSION_FACTOR","intersectsScaled","intersectsToleranceSquare","copyScaled","getSafeEnvelope","intersectsPixelClosure","addSnappedNode","li","selectedSegment","ci","HotPixelSnapAction","isNodeAdded","_hotPixel","_parentEdge","_hotPixelVertexIndex","_isNodeAdded","fi","_interiorIntersections","getInteriorIntersections","gi","_pm","_pointSnapper","checkCorrectness","snapRound","findInteriorIntersections","computeIntersectionSnaps","computeVertexSnaps","_argGeom","_resultGeometry","_saveException","CAP_BUTT","MAX_PRECISION_DIGITS","bufferFixedPrecision","bufferReducedPrecision","precisionScaleFactor","computeGeometry","bufferOriginalPrecision","getResultGeometry","bufferOp","_isNull","setMinimum","setMaximum","mi","computeDistance","vi","_maxPtDist","Ii","MaxPointDistanceFilter","MaxMidpointDistanceFilter","computeMaxMidpointDistance","getMaxPointDistance","computeMaxVertexDistance","Ei","findDistance","getDistancePoints","_minPtDist","Ni","_comps","Ci","_lines","_isForcedToLineString","setForceToLineString","getLines","Si","_boundaryRule","_isIn","_numBoundaries","locateInternal","locateInPolygonRing","updateLocationInfo","computeLocation","Li","_component","_segIndex","INSIDE_AREA","bi","isInsideArea","getGeometryComponent","wi","getPoints","Oi","_locations","Ti","_terminateDistance","_ptLocator","_minDistanceLocation","_minDistance","computeContainmentDistance","computeMinDistanceLinesPoints","computeMinDistance","computeFacetDistance","computeMinDistanceLines","updateMinDistance","computeMinDistancePoints","nearestLocations","nearestPoints","isWithinDistance","Ri","Pi","Di","_g0","_g1","_ptDist","_densifyFrac","Mi","MaxDensifiedByFractionDistanceFilter","setDensifyFraction","computeOrientedDistance","Ai","Fi","orientedDistance","_euclideanDist","_numSubSegs","Gi","_minValidDistance","_maxValidDistance","_minDistanceFound","_maxDistanceFound","_isValid","_errMsg","_errorLocation","_errorIndicator","_bufDistance","qi","VERBOSE","MAX_DISTANCE_DIFF_FRAC","checkMaximumDistance","checkPositiveValid","checkNegativeValid","getPolygonLines","checkMinimumDistance","getErrorIndicator","getErrorLocation","getErrorMessage","Bi","_errorMsg","Vi","MAX_ENV_DIFF_FRAC","checkPolygonal","checkExpectedEmpty","checkEnvelope","checkArea","checkDistance","report","isValidMsg","Ui","zi","_findAllIntersections","_isCheckEndSegmentsOnly","_interiorIntersection","_intSegments","_intersections","_intersectionCount","_keepIntersections","getInteriorIntersection","setCheckEndSegmentsOnly","getIntersectionSegments","getIntersections","setFindAllIntersections","setKeepIntersections","isEndSegment","createAllIntersectionsFinder","createAnyIntersectionFinder","createIntersectionCounter","Xi","execute","computeIntersections","Yi","_nv","toSegmentStrings","ki","_mapOp","ji","_op","_lineEdgesList","_resultLineList","collectLines","getGraph","collectLineEdge","collectBoundaryTouchEdge","labelIsolatedLine","getArgGeometry","buildLines","Lr","isResultOfOp","isCoveredByA","labelIsolatedLines","Hi","_resultPointList","filterCoveredNodeToPoint","isCoveredByLA","extractNonCoveredResultNodes","Wi","_pruneEmptyGeometry","_preserveGeometryCollectionType","_preserveCollections","_preserveType","transformCoordinates","transformPolygon","transformLinearRing","createCoordinateSequence","getInputGeometry","transformMultiLineString","transformLineString","transformMultiPoint","transformMultiPolygon","transformGeometryCollection","Ki","_snapTolerance","_srcPts","_allowSnappingToSourceVertices","_isClosed","snapVertices","findSnapForVertex","snapTo","snapSegments","findSegmentIndexToSnap","setAllowSnappingToSourceVertices","Ji","_srcGeom","Qi","SNAP_PRECISION_FACTOR","extractTargetCoordinates","Zi","snapToSelf","computeSnapTolerance","computeMinimumSegmentLength","computeOverlaySnapTolerance","computeSizeBasedSnapTolerance","_snapPts","_isSelfSnap","snapLine","$i","_isFirst","_commonMantissaBitsCount","_commonBits","_commonSignExp","getCommon","signExpBits","numCommonMostSigMantissaBits","zeroLowerBits","toBinaryString","getBit","tr","_commonCoord","_ccFilter","nr","CommonCoordinateFilter","Translater","addCommonBits","ir","removeCommonBits","getCommonCoordinate","_commonBitsX","_commonBitsY","trans","rr","_cbr","selfSnap","prepareResult","overlayOp","UNION","symDifference","SYMDIFFERENCE","DIFFERENCE","mce","chainIndex","ar","_xValue","_eventType","_insertEvent","_deleteEventIndex","_obj","INSERT","isDelete","setDeleteEventIndex","getObject","getInsertEvent","isInsert","isSameLabel","getDeleteEventIndex","_includeProper","_recordIsolated","_numIntersections","_bdyNodes","_isDone","_isDoneWhenProperInt","setIsDoneIfProperInt","isBoundaryPointInternal","isBoundaryPoint","setBoundaryNodes","nOverlaps","prepareEvents","processOverlaps","addEdge","_min","fr","NodeComparator","getMin","getMax","gr","yr","_node1","_node2","buildExtent","_leaves","buildTree","buildLevel","buildRoot","mr","getItems","vr","xr","Ir","SegmentVisitor","IntervalIndexedGeometry","Er","_counter","addLine","Nr","_parentGeom","_lineEdgeMap","_boundaryNodeRule","_useBoundaryDeterminationRule","_argIndex","_boundaryNodes","_hasTooFewPoints","_invalidPoint","_areaPtLocator","insertBoundaryPoint","determineBoundary","computeSelfNodes","createEdgeSetIntersector","addSelfIntersectionNodes","computeSplitEdges","computeEdgeIntersections","hasTooFewPoints","insertPoint","getInvalidPoint","getBoundaryPoints","addSelfIntersectionNode","Cr","_resultPrecisionModel","_arg","setComputationPrecision","Sr","MapOp","_resultGeom","_resultPolyList","cancelDuplicateResultEdges","createEmptyResult","replaceCollapsedEdges","updateNodeLabelling","computeOverlay","insertUniqueEdges","copyPoints","computeLabelsFromDepths","labelIncompleteNodes","findResultAreaEdges","labelIncompleteNode","resultDimension","br","_boundaryDistanceTolerance","_linework","extractLinework","isWithinToleranceOfBoundary","wr","getLinework","Or","_doLeft","_doRight","extractPoints","computeOffsetPoints","setSidesToGenerate","Tr","_locFinder","_location","_invalidLocation","TOLERANCE","_testCoords","computeBoundaryDistanceTolerance","Rr","reportResult","addTestPts","hasLocation","isValidResult","getInvalidLocation","Pr","_geomFactory","_skipEmpty","_inputGeoms","extractFactory","extractElements","combine","Dr","_inputPolys","Mr","STRTREE_NODE_CAPACITY","reduceToGeometries","unionTree","extractByEnvelope","unionOptimized","unionActual","unionUsingEnvelopeIntersection","binaryUnion","unionSafe","repeatedUnion","restrictToPolygons","bufferUnion","Ar","GeoJSONReader","GeoJSONWriter","OverlayOp","UnionOp","BufferOp","stringOrChar","passedObj","maxLength","_stringify","currentIndent","reserved","keyPart","nextIndent","prettified","stringLiteral","MODULE_INJECTORS","DECLARATION_INJECT_MARKER","REGEX_START_OF_MAIN","REGEX_END_OF_MAIN","fragments","injectShader","injectStandardStubs","isVertex","fragmentData","fragmentString","combineInjects","injects","getChildMapping","mapFn","isValidElement","mapper","getProp","getNextChildMapping","prevChildMapping","onExited","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","pendingNextKey","mergeChildMappings","hasPrev","prevChild","isLeaving","in","exit","TransitionGroup","handleExited","contextValue","isMounting","firstRender","componentDidMount","mounted","componentWillUnmount","appear","currentChildMapping","childFactory","TransitionGroupContext","Provider","Ripple","_props$pulsate","pulsate","rippleX","rippleY","rippleSize","inProp","_props$onExited","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","timeoutId","TouchRipple","_props$center","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","oldRipples","_options$pulsate","_options$center","_options$fakeElement","fakeElement","sizeX","sizeY","persist","borderRadius","animationDuration","ButtonBase","buttonRefProp","buttonRef","_props$centerRipple","centerRipple","_props$disabled","_props$disableRipple","disableRipple","_props$disableTouchRi","disableTouchRipple","_props$focusRipple","focusRipple","focusVisibleClassName","onBlur","onFocus","onFocusVisible","onKeyUp","onMouseDown","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","_props$tabIndex","TouchRippleProps","_props$type","rippleRef","focusVisible","setFocusVisible","_useIsFocusVisible","focusVisibleRef","useRippleHandler","rippleAction","eventCallback","skipRippleAction","focus","handleMouseDown","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","currentTarget","isNonNativeButton","keydownRef","handleKeyUp","defaultPrevented","ComponentProp","buttonProps","handleUserRef","handleOwnRef","handleRef","_React$useState2","mountedState","setMountedState","enableTouchRipple","alignItems","justifyContent","WebkitTapHighlightColor","margin","cursor","verticalAlign","textDecoration","borderStyle","colorAdjust","propIsEnumerable","test1","test2","test3","shouldUseNative","baseIsEqualDeep","bitmask","tag","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","arrayFilter","stubArray","nativeGetSymbols","getSymbols","reIsUint","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","freeProcess","argsTag","mapTag","objectTag","setTag","reIsHostCtor","typedArrayTags","moduleExports","arraySome","predicate","mapToArray","setToArray","arrayProto","funcProto","coreJsData","funcToString","maskSrcKey","IE_PROTO","nativeObjectToString","reIsNative","nativeIsBuffer","nativeKeys","symbolProto","symbolValueOf","Hash","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseTimes","isIndex","assocIndexOf","isOwn","unmasked","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","isMasked","isPrototype","arrValue","othIndex","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getMapData","pairs","LARGE_ARRAY_SIZE","resIndex","matchesSelector","matchesSelectorAndParentsTo","baseNode","addEvent","inputOptions","capture","removeEvent","outerHeight","computedStyle","_shims","borderTopWidth","borderBottomWidth","outerWidth","borderLeftWidth","borderRightWidth","paddingTop","paddingBottom","paddingLeft","paddingRight","offsetXYFromParent","offsetParent","offsetParentRect","createCSSTransform","controlPos","positionOffset","translation","_getPrefix","browserPrefixToKey","createSVGTransform","getTouch","getTouchIdentifier","addUserSelectStyles","styleEl","addClassName","removeUserSelectStyles","removeClassName","removeAllRanges","matchesSelectorFunc","unitSuffix","defaultX","defaultY","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","URI","traverse","inlineRef","inlineRefs","resolveSchema","refPath","_getFullPath","getFullPath","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","fullPath","baseIds","fullPaths","allKeys","sch","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","parentSchema","keyIndex","PREVENT_SCOPE_CHANGE","$ref","SIMPLE_INLINED","checkNoRef","countKeys","TRAILING_SLASH_HASH","missingRef","missingSchema","errorSubclass","Subclass","ajv","validation","arrayBuffers","getPrototype","overArg","requirePropFactory","componentNameInError","unsupportedProp","propFullName","overRest","setToString","shared","copyright","dPs","Empty","createDict","iframeDocument","iframe","contentWindow","Properties","TAG","LIBRARY","wksExt","$Symbol","baseForOwn","castFunction","reIsDeepProp","reIsPlainProp","Checkboard","_react2","_reactcss2","checkboard","renderers","boxShadow","grid","isPointOnLineSegment","lineSegmentStart","lineSegmentEnd","excludeBoundary","dxl","dyl","ptCoords","lineCoords","ignoreEndVertices","bearing_1","distance_1","destination_1","line_intersect_1","closestPt","stop_1","sectionLength","heightDistance","perpendicularPt1","perpendicularPt2","intersectPt","implementation","hasSymbols","toStr","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicates","DEFAULT_LINE_COLOR","DEFAULT_FILL_COLOR","DEFAULT_SELECTED_LINE_COLOR","DEFAULT_SELECTED_FILL_COLOR","DEFAULT_TENTATIVE_LINE_COLOR","DEFAULT_TENTATIVE_FILL_COLOR","DEFAULT_EDITING_EXISTING_POINT_COLOR","DEFAULT_EDITING_INTERMEDIATE_POINT_COLOR","DEFAULT_EDITING_SNAP_POINT_COLOR","DEFAULT_EDITING_POINT_OUTLINE_COLOR","DEFAULT_EDIT_MODE","DrawPolygonMode","guideAccessor","guideMaybeWrapped","unwrapGuide","getEditHandleColor","onEdit","pickingRadius","pickingDepth","lineJointRounded","lineMiterLimit","pointRadiusScale","pointRadiusMinPixels","pointRadiusMaxPixels","isSelected","getTentativeLineColor","getTentativeFillColor","getTentativeLineWidth","editHandlePointRadiusScale","editHandlePointOutline","editHandlePointStrokeWidth","editHandlePointRadiusMinPixels","editHandlePointRadiusMaxPixels","getEditHandlePointColor","getEditHandlePointOutlineColor","getEditHandlePointRadius","editHandleIconAtlas","editHandleIconMapping","editHandleIconSizeScale","getEditHandleIcon","getEditHandleIconSize","getEditHandleIconColor","getEditHandleIconAngle","modeNameMapping","ViewMode","modify","ModifyMode","SnappableMode","TranslateMode","TransformMode","ScaleMode","RotateMode","duplicate","DuplicateMode","SplitPolygonMode","extrude","ExtrudeMode","ElevationMode","drawPoint","DrawPointMode","drawLineString","DrawLineStringMode","drawPolygon","drawRectangle","DrawRectangleMode","drawSquareFromCenter","DrawSquareFromCenterMode","drawCircleFromCenter","DrawCircleFromCenterMode","drawCircleByBoundingBox","DrawCircleByDiameterMode","drawEllipseByBoundingBox","DrawEllipseByBoundingBoxMode","drawRectangleUsing3Points","DrawRectangleUsingThreePointsMode","drawEllipseUsing3Points","DrawEllipseUsingThreePointsMode","draw90DegreePolygon","Draw90DegreePolygonMode","drawPolygonByDragging","DrawPolygonByDraggingMode","EditableGeoJsonLayer","subLayerProps","selectionAwareAccessor","_subLayerProps","GeoJsonLayer","selectedFeatures","selectedIndexes","onUpdateCursor","selectedFeatureIndexes","getModeProps","pointLayerProps","tooltips","EditableLayer","getEditHandlesForGeometry","featureAsPick","getPickedExistingEditHandle","intermediatePoint","positionIndexPrefix","referencePoint","lineStringFeature","candidateIntermediatePoint","nearestPointOnProjectedLine","nearestPointOnLine","pickedExistingHandle","pickedIntermediateHandle","getPickedIntermediateEditHandle","ignored","editHandle","getPickedEditHandle","editHandleProperties","getCursor","getTranslateAction","isSelectionPicked","getSelectedFeaturesAsFeatureCollection","startDragPoint","currentPoint","distanceMoved","movedFeatures","selectedIndex","movedFeature","clickedCoord","clickedEditHandle","positionAdded","polygonToAdd","DeckCache","_idToPosition","originals","numeric","anum","bnum","rcompareIdentifiers","versionA","versionB","compareBuild","satisfies","hilo","gtfn","ltefn","ltfn","ecomp","Adder","adder","bv","av","quarterPi","streamGeometry","stream","streamGeometryType","streamObjectType","Sphere","sphere","streamLine","streamPolygon","closed","lineStart","lineEnd","polygonStart","polygonEnd","cartesian","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","cartesianNormalizeInPlace","compose","rotationIdentity","rotateRadians","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","circleStream","cosRadius","sinRadius","circleRadius","rejoin","Intersection","compareIntersection","startInside","interpolate","clip","pointEqual","ascendingBisect","arrays","clipExtent","x__","y__","v__","x_","y_","v_","activeStream","bufferStream","clipBuffer","clipStream","linePoint","polygonInside","cleanInside","clipPolygon","clipLine","point0","lambda0","phi0","sinPhi0","cosPhi0","sinPhi1","cosPhi1","point1","absDelta","antimeridian","arc","phiArc","areaStream","boundsStream","PathContext","_radius","pointRadius","_line","_point","closePath","moveTo","lineTo","PathString","_string","circle","_circle","pointVisible","sink","rotatedStart","ringBuffer","ringSink","polygonStarted","pointRing","ringStart","ringEnd","polygonContains","pointLine","ringSegments","validSegment","sign0","sign1","sinLambda0Lambda1","clipAntimeridianIntersect","smallRadius","notHemisphere","two","n2","n2n2","n1n2","n1xn2","uu","polar","v00","point2","transformer","methods","TransformStream","fitExtent","projection","geoStream","fitSize","cosMinDistance","delta2","resampleLineTo","dx2","dy2","dz","lambda00","x00","y00","resampleStream","ringPoint","resampleNone","transformRadians","projectionMutator","projectAt","projectRotate","cacheStream","preclip","clipAntimeridian","postclip","projectResample","projectTransform","recenter","clipAngle","clipCircle","azimuthalRaw","azimuthalInvert","cc","azimuthalEqualAreaRaw","cxcy","azimuthalEquidistantRaw","mercatorRaw","equirectangularRaw","gnomonicRaw","naturalEarth1Raw","phi4","orthographicRaw","stereographicRaw","transverseMercatorRaw","bufferFeature","steps","buffered","defineProjection","projected","projectCoords","coordsIsNaN","unprojectCoords","multiBuffered","workerURLCache","getLoadableWorkerURL","workerURL","getLoadableWorkerURLFromSource","workerUrl","getLoadableWorkerURLFromURL","workerSource","isTransferable","MessagePort","OffscreenCanvas","transferList","getTransferList","recursive","transfersSet","transfers","lineno","payload","onMessage","job","startPromise","jobQueue","workerThread","queuedJob","backlog","isDestroyed","idleQueue","onDebug","WorkerThread","WorkerFarm","workerPools","workerPool","getWorkerURL","workerOptions","workerFile","versionTag","canParseWithWorker","workerFarm","parseOnMainThread","polygonToLine","multiPolygonToLine","coordsToLine","overridingProps","sourceObjectIndex","sublayerProps","overridingSublayerProps","overridingSublayerTriggers","sublayerId","subLayerPropTypes","getSubLayerAccessor","passThroughProps","subLayers","shouldUpdate","getSubLayers","transformRotate","mutate","finalAngle","newCoords","testText","firstChar","lastChar","parseTextSync","existingVersion","_registerLoggers","registerLoaders","imagebitmap","premultiplyAlpha","ZustandContext","initialStore","createStore","storeRef","useProviderStore","useContext","useStoreApi","useMemo","objA","objB","keysA","utils","Responsive","WidthProvider","notOk","undef","_types","anyType","_ignore","_conversions","typed","conversions","ignore","findTypeByName","typeName","findTypeIndex","findTypeName","stringifyParams","typeNames","getTypeName","restParam","parseParam","notEmpty","notIgnore","matchingConversions","conversion","filterConversions","exactTypes","typeIndex","conversionIndex","convertibleTypes","hasRestParam","hasConversions","compileTest","test0","compileTests","varIndex","lastTest","testRestParam","getParamAtIndex","signature","getExpectedTypeNames","excludeConversions","isExactType","mergeExpectedParams","signatures","uniq","flatMap","expected","matchingSignatures","nextMatchingDefs","actualType","expectedLength","getLowestTypeIndex","getLowestConversionIndex","compareParams","param1","param2","compareSignatures","signature1","signature2","compileArgConversion","conversion0","conversion1","splitParams","ignoreConversionTypes","_splitParams","typeGroups","filteredTypes","typeGroup","createTypedFunction","signaturesMap","parsedSignatures","parsedParam","isInvalidParam","parseSignature","notNull","parsedSignature","conflictingSignature","hasOverlap","len1","len2","restParam1","restParam2","hasConflictingParams","ok0","ok1","ok2","ok3","ok4","ok5","allOk","test00","test10","test20","test30","test40","test50","test01","test11","test21","test31","test41","test51","fnConvert","compiledConversions","fnPreprocess","compileArgsPreprocessing","fn0","fn1","fn2","fn3","fn4","fn5","len0","len3","len4","len5","generic","arg0","arg1","createSignaturesMap","extractSignatures","validateUnique","_signature","_fn","addType","beforeObjectTest","addConversion","alea","xor128","xorwow","xorshift7","xor4096","tychei","Pbf","Varint","Fixed64","Bytes","Fixed32","utf8TextDecoder","readPackedEnd","pbf","readVarint","toNum","makeRoomForExtraLength","extraLen","realloc","writePackedVarint","writeVarint","writePackedSVarint","writeSVarint","writePackedFloat","writePackedDouble","writePackedBoolean","writeBoolean","writePackedFixed32","writeFixed32","writePackedSFixed32","writeSFixed32","writePackedFixed64","writeFixed64","writePackedSFixed64","writeSFixed64","readUInt32","writeInt32","readFields","readField","skip","readMessage","readFixed32","readSFixed32","readFixed64","readSFixed64","readVarintRemainder","readVarint64","readSVarint","readBoolean","readString","readUtf8TextDecoder","readUtf8","readBytes","readPackedVarint","readPackedSVarint","readPackedBoolean","readPackedFloat","readPackedDouble","readPackedFixed32","readPackedSFixed32","readPackedFixed64","readPackedSFixed64","writeTag","finish","writeBigVarintLow","lsb","writeBigVarintHigh","writeBigVarint","writeString","lead","writeUtf8","writeBytes","writeRawMessage","writeMessage","writeBytesField","writeFixed32Field","writeSFixed32Field","writeFixed64Field","writeSFixed64Field","writeVarintField","writeSVarintField","writeStringField","writeFloatField","writeDoubleField","writeBooleanField","modulePath","importFunctionName","moduleMap","multivecChunksToTileDenseArray","tileShape","isRow","fullTileLength","fullTileArray","numSamples","sampleI","ZarrMultivecDataFetcher","HGC","slugid","absToChr","parseChromsizesRows","genomicRangeToChromosomeChunks","DenseDataExtrema1D","minNonZero","maxNonZero","ZarrMultivecDataFetcherClass","dataConfig","chromSizes","finalChrom","maxPos","tile_size","max_width","min_pos","max_pos","max_zoom","validTileIds","tilePromises","validTileId","receivedTiles","tilesetInfo","tsInfo","binSize","tileStart","tileEnd","chromInfo","chrStart","chrStartPos","chrEnd","chrEndPos","chrChunks","chr","chrName","zStart","zEnd","dense","denseDataExtrema","min_value","max_value","server","tilePos","tilePositionId","tilesetUid","zoomLevel","internalRe","rcompare","compareLoose","rsort","coerce","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","simplifyRange","subset","LZString","keyStrBase64","keyStrUriSafe","baseReverseDic","getBaseValue","alphabet","compressToBase64","_compress","decompressFromBase64","_decompress","compressToUTF16","decompressFromUTF16","compressToUint8Array","TotalLen","current_value","decompressFromUint8Array","compressToEncodedURIComponent","decompressFromEncodedURIComponent","bitsPerChar","getCharFromInt","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","resetValue","getNextValue","resb","maxpower","enlargeIn","dictSize","calculateSizeAndPositionDataAndUpdateScrollOffset","cellCount","computeMetadataCallback","computeMetadataCallbackProps","nextCellsCount","nextCellSize","nextScrollToIndex","scrollToIndex","updateScrollOffsetForScrollToIndex","CellSizeAndPositionManager","cellSizeGetter","estimatedCellSize","_cellSizeGetter","_cellCount","_estimatedCellSize","_lastMeasuredIndex","lastMeasuredCellSizeAndPosition","getSizeAndPositionOfLastMeasuredCell","_cellSizeAndPositionData","_lastBatchedIndex","_ref3$align","containerSize","currentOffset","idealOffset","getSizeAndPositionOfCell","totalSize","getTotalSize","_findNearestCell","_binarySearch","lastMeasuredIndex","_exponentialSearch","getMaxElementSize","chrome","ScalingCellSizeAndPositionManager","_ref$maxScrollSize","maxScrollSize","_cellSizeAndPositionManager","_maxScrollSize","getCellCount","getEstimatedCellSize","getLastMeasuredIndex","safeTotalSize","offsetPercentage","_getOffsetPercentage","_safeOffsetToOffset","getUpdatedOffsetForIndex","_offsetToSafeOffset","getVisibleCellRange","resetCell","_ref7","createCallbackMemoizer","requireAllKeys","cachedIndices","allInitialized","indexChanged","updateScrollIndexHelper","cellSizeAndPositionManager","previousCellsCount","previousCellSize","previousScrollToAlignment","previousScrollToIndex","previousSize","scrollOffset","scrollToAlignment","sizeJustIncreasedFromZero","updateScrollIndexCallback","hasScrollToIndex","recalc","_class","oRequestAnimationFrame","msRequestAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","cancelAnimationTimeout","requestAnimationTimeout","SCROLL_POSITION_CHANGE_REASONS","Grid","_React$PureComponent","_disablePointerEventsTimeoutId","isScrolling","needToResetStyleCache","onSectionRendered","_onGridRenderedMemoizer","columnOverscanStartIndex","_columnStartIndex","columnOverscanStopIndex","_columnStopIndex","columnStartIndex","_renderedColumnStartIndex","columnStopIndex","_renderedColumnStopIndex","rowOverscanStartIndex","_rowStartIndex","rowOverscanStopIndex","_rowStopIndex","rowStartIndex","_renderedRowStartIndex","rowStopIndex","_renderedRowStopIndex","_scrollingContainer","handleScrollEvent","columnSizeAndPositionManager","columnCount","_wrapSizeGetter","columnWidth","_getEstimatedColumnSize","rowSizeAndPositionManager","rowCount","_getEstimatedRowSize","instanceProps","prevColumnWidth","prevRowHeight","prevColumnCount","prevRowCount","prevIsScrolling","prevScrollToColumn","scrollToColumn","prevScrollToRow","scrollToRow","scrollbarSizeMeasured","scrollDirectionHorizontal","scrollDirectionVertical","scrollPositionChangeReason","_initialScrollTop","_getCalculatedScrollTop","_initialScrollLeft","_getCalculatedScrollLeft","_ref$alignment","alignment","_ref$columnIndex","_ref$rowIndex","offsetProps","_ref2$scrollLeft","scrollLeftParam","_ref2$scrollTop","scrollTopParam","_debounceScrollEnded","autoHeight","autoWidth","totalRowsHeight","totalColumnsWidth","_invokeOnScrollMemoizer","_deferredInvalidateColumnIndex","_deferredInvalidateRowIndex","_ref4$columnIndex","_ref4$rowIndex","_recomputeScrollLeftFlag","_recomputeScrollTopFlag","_styleCache","_cellCache","_updateScrollLeftForScrollToColumn","_updateScrollTopForScrollToRow","_handleInvalidatedGridSize","stateUpdate","_getScrollToPositionStateUpdate","sizeIsBiggerThanZero","_invokeOnGridRenderedHelper","_maybeCallOnScrollbarPresenceChange","_this$props5","columnOrRowCountJustIncreasedFromZero","_this$props6","autoContainerWidth","containerProps","containerRole","containerStyle","noContentRenderer","_isScrolling","gridStyle","boxSizing","WebkitOverflowScrolling","willChange","_resetStyleCache","_calculateChildrenToRender","verticalScrollBarSize","horizontalScrollBarSize","_horizontalScrollBarSize","_verticalScrollBarSize","_scrollbarPresenceChanged","overflowX","overflowY","childrenToDisplay","_childrenToDisplay","showNoContentRenderer","_setScrollingContainerRef","onScroll","_onScroll","maxHeight","cellRenderer","cellRangeRenderer","deferredMeasurementCache","overscanColumnCount","overscanIndicesGetter","overscanRowCount","isScrollingOptOut","visibleColumnIndices","visibleRowIndices","horizontalOffsetAdjustment","getOffsetAdjustment","verticalOffsetAdjustment","overscanColumnIndices","overscanCellsCount","scrollDirection","stopIndex","overscanRowIndices","overscanStartIndex","overscanStopIndex","hasFixedHeight","hasFixedWidth","cellCache","styleCache","scrollingResetTimeInterval","_debounceScrollEndedCallback","recomputeGridSize","_this3","_onScrollMemoizer","_this3$props","onScrollbarPresenceChange","horizontal","vertical","_ref8","_getScrollLeftForScrollToColumnStateUpdate","_getScrollTopForScrollToRowStateUpdate","maybeStateA","maybeStateB","estimatedColumnSize","estimatedRowSize","_ref9","finalColumn","scrollBarSize","calculatedScrollLeft","finalRow","calculatedScrollTop","renderedCells","areOffsetsAdjusted","canCacheStyle","rowDatum","columnDatum","cellRendererParams","renderedCell","defaultOverscanIndicesGetter","ArrowKeyStepper","_getPrototypeOf2","_this$_getScrollState","_getScrollState","scrollToColumnPrevious","scrollToRowPrevious","_this$_getScrollState2","_updateScrollState","_this$_getScrollState3","_onSectionRendered","onScrollToChange","AutoSizer","defaultHeight","defaultWidth","disableHeight","disableWidth","onResize","_parentNode","autoSizer","_autoSizer","_detectElementResize","_onResize","outerStyle","childParams","_setRef","CellMeasurer","_this$props$columnInd","_this$props$rowIndex","_this$_getCellMeasure","_getCellMeasurements","Element","_child","_maybeMeasureCell","measure","_measure","registerChild","_registerChild","styleWidth","styleHeight","_this$props2$columnIn","_this$props2$rowIndex","_this$_getCellMeasure2","invalidateCellSizeAfterRender","CollectionView","cellLayoutManager","_onSectionRenderedMemoizer","getLastRenderedIndices","scrollToCell","scrollPosition","getScrollPositionForCell","cellIndex","_setScrollPosition","_enablePointerEventsAfterDelay","isScrollingChange","_scrollbarSize","_cellLayoutManager$ge","totalHeight","totalWidth","cancelable","_scrollbarSizeMeasured","_calculateSizeAndPositionDataOnNextUpdate","_updateScrollPositionForScrollToCell","_invokeOnSectionRenderedHelper","_cellLayoutManager$ge2","horizontalOverscanSize","verticalOverscanSize","_lastRenderedCellCount","_lastRenderedCellLayoutManager","calculateSizeAndPositionData","_cellLayoutManager$ge3","cellRenderers","collectionStyle","Section","_indexMap","_indices","SectionManager","sectionSize","_sectionSize","_cellMetadata","_sections","getSections","section","getCellIndices","sectionXStart","sectionXStop","sectionYStart","sectionYStop","sections","sectionX","sectionY","cellMetadatum","addCellIndex","_ref$align","cellOffset","Collection","_lastRenderedCellIndices","_isScrollingChange","_setCollectionViewRef","_collectionView","recomputeCellSizesAndPositions","cellSizeAndPositionGetter","cellMetadata","sectionManager","registerCell","_calculateSizeAndPositionData","_sectionManager","_height","_width","cellGroupRenderer","getCellMetadata","cellRendererProps","ColumnSizer","columnMaxWidth","columnMinWidth","_registeredChild","safeColumnMinWidth","safeColumnMaxWidth","adjustedWidth","getColumnWidth","InfiniteLoader","_loadMoreRowsMemoizer","_onRowsRendered","autoReload","_doStuff","_lastRenderedStartIndex","_lastRenderedStopIndex","onRowsRendered","unloadedRanges","loadMoreRows","unloadedRange","lastRenderedStartIndex","lastRenderedStopIndex","isRangeVisible","currentIndex","recomputeSize","recomputeRowHeights","forceUpdateReactVirtualizedComponent","isRowLoaded","minimumBatchSize","rangeStartIndex","rangeStopIndex","potentialStopIndex","firstUnloadedRange","_index2","scanForUnloadedRanges","squashedUnloadedRanges","_loadUnloadedRanges","registeredChild","List","rowRenderer","widthDescriptor","getOffsetForCell","measureAllCells","_ref6$columnIndex","_ref6$rowIndex","scrollToPosition","noRowsRenderer","_cellRenderer","accessibilityOverscanIndicesGetter","_GEP","_GEA","_GTP","_GTA","_LTP","_LTA","_LEP","_LEA","_EQP","_EQA","IntervalTreeNode","leftPoints","rightPoints","rebuild","ntree","createIntervalTree","rebuildWithInterval","rebuildWithoutInterval","reportLeftRange","reportRightRange","reportRange","compareNumbers","compareBegin","compareEnd","leftIntervals","rightIntervals","centerIntervals","IntervalTree","weight","queryPoint","queryInterval","tproto","PositionCache","defaultCellHeight","unmeasuredCellCount","tallestColumnSize","renderCallback","_intervalTree","_leftMap","columnSizeMap","_columnSizeMap","columnHeight","Masonry","eventScrollTop","_getEstimatedTotalHeight","_debounceResetIsScrolling","_positionCache","_invalidateOnUpdateStartIndex","_invalidateOnUpdateStopIndex","_populatePositionCache","_checkInvalidateOnUpdate","_invokeOnScrollCallback","_invokeOnCellsRenderedCallback","_debounceResetIsScrollingId","cellMeasurerCache","keyMapper","overscanByPixels","rowDirection","estimateTotalHeight","shortestColumnSize","measuredCellCount","_style","_startIndex","_stopIndex","_debounceResetIsScrollingCallback","estimatedColumnCount","_onScrollMemoized","_startIndexMemoized","_stopIndexMemoized","onCellsRendered","cellPositioner","_cellPositioner","setPosition","CellMeasurerCacheDecorator","_cellMeasurerCache","_columnIndexOffset","_rowIndexOffset","_params$columnIndexOf","columnIndexOffset","_params$rowIndexOffse","rowIndexOffset","clearAll","MultiGrid","showHorizontalScrollbar","showVerticalScrollbar","_bottomLeftGrid","_bottomRightGrid","fixedRowCount","fixedColumnCount","scrollInfo","_topLeftGrid","_topRightGrid","_fixedColumnCount","_fixedRowCount","_maybeCalculateCachedStyles","_deferredMeasurementCacheBottomLeftGrid","_deferredMeasurementCacheBottomRightGrid","_deferredMeasurementCacheTopRightGrid","_ref7$columnIndex","_ref7$rowIndex","_ref8$columnIndex","_ref8$rowIndex","adjustedColumnIndex","adjustedRowIndex","_leftGridWidth","_topGridHeight","_this$props7","_this$props8","_prepareForRender","_this$state4","_containerOuterStyle","_containerTopStyle","_renderTopLeftGrid","_renderTopRightGrid","_containerBottomStyle","_renderBottomLeftGrid","_renderBottomRightGrid","_getTopGridHeight","leftGridWidth","_getLeftGridWidth","topGridHeight","resetAll","_this$props9","enableFixedColumnScroll","enableFixedRowScroll","styleBottomLeftGrid","styleBottomRightGrid","styleTopLeftGrid","styleTopRightGrid","sizeChange","_lastRenderedHeight","_lastRenderedWidth","leftSizeChange","_lastRenderedColumnWidth","_lastRenderedFixedColumnCount","topSizeChange","_lastRenderedFixedRowCount","_lastRenderedRowHeight","_lastRenderedStyle","_lastRenderedStyleBottomLeftGrid","_bottomLeftGridStyle","_lastRenderedStyleBottomRightGrid","_bottomRightGridStyle","_lastRenderedStyleTopLeftGrid","_topLeftGridStyle","_lastRenderedStyleTopRightGrid","_topRightGridStyle","hideBottomLeftGridScrollbar","additionalRowCount","_getBottomGridHeight","gridWidth","bottomLeftGrid","_cellRendererBottomLeftGrid","classNameBottomLeftGrid","_onScrollTop","_bottomLeftGridRef","_rowHeightBottomGrid","_cellRendererBottomRightGrid","classNameBottomRightGrid","_columnWidthRightGrid","_onScrollbarPresenceChange","_bottomRightGridRef","_getRightGridWidth","classNameTopLeftGrid","_topLeftGridRef","hideTopRightGridScrollbar","_this$state5","additionalColumnCount","additionalHeight","gridHeight","topRightGrid","_cellRendererTopRightGrid","classNameTopRightGrid","_onScrollLeft","_topRightGridRef","ScrollSync","defaultHeaderRowRenderer","SortDirection","ASC","DESC","SortIndicator","sortDirection","defaultHeaderRenderer","dataKey","label","sortBy","showSortIndicator","defaultRowRenderer","onRowClick","onRowDoubleClick","onRowMouseOut","onRowMouseOver","onRowRightClick","rowData","a11yProps","onMouseOut","onMouseOver","Column","cellDataGetter","cellData","defaultSortDirection","flexGrow","headerRenderer","Table","scrollbarWidth","_createColumn","_createRow","_ref3$columnIndex","_ref3$rowIndex","_Grid","_setScrollbarWidth","disableHeader","gridClassName","headerHeight","headerRowRenderer","rowClassName","rowStyle","availableRowsHeight","rowClass","rowStyleObject","_cachedColumnStyles","column","flexStyles","_getFlexStyleForColumn","_getHeaderColumns","onColumnClick","_column$props","columnData","headerOnClick","headerOnKeyDown","headerTabIndex","headerAriaSort","headerAriaLabel","headerClassName","headerStyle","onHeaderClick","_column$props2","disableSort","sortEnabled","ReactVirtualized__Table__sortableHeaderColumn","renderedHeader","newSortDirection","rowGetter","flattenedStyle","_getRowHeight","customStyle","flexValue","flex","msFlex","WebkitFlex","minWidth","_this4","_createHeader","getScrollbarWidth","mountedInstances","originalBodyPointerEvents","disablePointerEventsTimeoutId","enablePointerEventsIfDisabled","enablePointerEventsAfterDelayCallback","__resetIsScrolling","onScrollWindow","maximumTimeout","enablePointerEventsAfterDelay","scrollElement","__handleWindowScrollEvent","registerScrollListener","unregisterScrollListener","isWindow","serverHeight","serverWidth","getPositionOffset","documentElement","containerElement","elementRect","containerRect","getScrollOffset","_elementRect","_containerRect","scrollY","scrollX","getWindow","WindowScroller","updatePosition","scrollTo","_positionFromTop","_isMounted","_positionFromLeft","thisNode","_registerResizeListener","prevScrollElement","_unregisterResizeListener","onChildScroll","_onChildScroll","kx","ky","arcs","stitchedArcs","fragmentByStart","fragmentByEnd","emptyIndex","ends","fg","gf","meshArcs","extractArcs","stitch","geomsByArc","extract0","extract1","extract2","extract3","geoms","resolveModules","getShaderDependencies","instantiateModules","moduleDepth","getDependencyGraph","isOldIE","WEBGL_FEATURES","compiledGlslExtensions","canCompileGLGSExtension","behavior","shader","canCompile","getFeature","testVariable","qualifier","ES300_REPLACEMENTS","ES300_VERTEX_REPLACEMENTS","ES300_FRAGMENT_REPLACEMENTS","ES100_REPLACEMENTS","ES100_VERTEX_REPLACEMENTS","ES100_FRAGMENT_REPLACEMENTS","ES300_FRAGMENT_OUTPUT_REGEX","transpileShader","targetGLSLVersion","convertShader","outputMatch","outputName","convertFragmentShaderTo300","convertFragmentShaderTo100","replacements","INJECT_SHADER_DECLARATIONS","assembleShaders","assembleShader","assembleGetUniforms","hookFunctions","prologue","sourceLines","glslVersion","versionLine","coreSource","allDefines","assembledSource","getShaderName","getShaderType","gpuVendor","identifyGPUVendor","getContextInfo","debugInfo","getPlatformShaderDefines","versionDefines","getVersionDefines","sourceText","getApplicationDefines","hookFunctionMap","hook","normalizeHookFunctions","hookInjections","declInjections","mainInjections","injection","injections","injectionType","hookFunction","getHookFunctions","moduleUniforms","_defaultModules","_getModuleList","vsHash","_getHash","fsHash","moduleHashes","varyingHashes","defineKeys","injectKeys","defineHashes","injectHashes","_programCache","assembled","_getUniforms","_useCounts","_hashes","appModules","dispatch","Dispatch","parseTypenames","typenames","typename","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","performance","setFrame","clearNow","Timer","_call","_time","restart","wake","timerFlush","sleep","nap","poke","initialAngle","nodes","simulation","alphaMin","alphaDecay","alphaTarget","velocityDecay","forces","stepper","lcg","tick","fx","vx","fy","vy","initializeNodes","initializeForce","randomSource","closest","glFormatToComponents","sourceX","sourceY","sourceFormat","sourceAttachment","sourceType","deleteFramebuffer","sourceWidth","sourceHeight","getPixelArray","readPixelsToBuffer","targetByteOffset","glTypeToBytes","targetMipmaplevel","targetInternalFormat","isSubCopy","targetX","toFramebuffer","pixelArray","deprecations","fragmentShader","_parseDeprecationDefinitions","stage","normalizeInjections","moduleSource","_defaultGetUniforms","cacheHas","_classnames","_calculateUtils","_GridItem","_ReactGridLayoutPropTypes","_arrayWithoutHoles","_nonIterableSpread","hasNativeReflectConstruct","isFirefox","ReactGridLayout","activeDrag","oldDragItem","oldLayout","oldResizeItem","droppingDOMNode","droppingItem","maxRows","containerPadding","_e$nativeEvent","layerX","layerY","droppingPosition","_this$state$droppingP","positionParams","containerWidth","calculatedPosition","calcXY","dragEnterCounter","removeDroppingPlaceholder","newLayoutBase","propsLayout","onLayoutMaybeChanged","autoSize","nbRow","containerPaddingY","placeholder","onDragStop","onLayoutChange","onResizeStart","hasCollisions","leastX","leastY","onResizeStop","useCSSTransforms","transformScale","isDroppingItem","draggableCancel","draggableHandle","resizable","resizeHandlesOptions","bounded","usePercentages","isDroppable","mergedClassName","mergedStyle","containerHeight","processGridItem","calcGridColWidth","calcGridItemWHPx","gridUnits","colOrRowSize","marginPx","lowerBound","upperBound","calcGridItemPosition","colWidth","resizing","dragging","calcWH","getBoundPosition","cloneBounds","boundNode","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","_domFns","marginRight","marginBottom","snapToGrid","pendingX","pendingY","canDragX","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","isStart","lastX","lastY","createDraggableData","coreData","_propTypes","_reactDraggable","Resizable","slackW","slackH","lockAspectRatio","aspectRatio","runConstraints","minConstraints","maxConstraints","_ratio","oldW","oldH","resizeHandler","handlerName","widthChanged","heightChanged","_this2$runConstraints","renderResizeHandle","resizeHandle","draggableOpts","handleSize","DraggableCore","onStop","isRequired","oneOf","getBreakpointFromWidth","sortBreakpoints","matching","breakpointName","getColsFromBreakpoint","findOrGenerateResponsiveLayout","layouts","lastBreakpoint","breakpointsSorted","breakpointsAbove","$keyword","$ruleType","$refKeywords","strictKeywords","$unknownKwd","$keywordsMsg","isTop","sourceCode","processCode","$lvl","$dataLvl","dataLevel","$schemaPath","schemaPath","$errSchemaPath","errSchemaPath","$breakOnError","allErrors","$valid","$$outStack","createErrors","errorPath","verbose","__err","compositeRule","$top","rootId","dataPathArr","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","extendRefs","$comment","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$method","$dataType","$coerced","$bracesCoercion","$type","$parentData","arr3","$propertyKey","$sch","$passData","useDefault","arr4","l4","arr5","$rule","i5","l5","$shouldUseRule","$code","implements","impl","$ruleImplementsSomeKeyword","$schemaValue","$isData","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","unicode","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","Vector4","EPSILON1","EPSILON2","EPSILON3","EPSILON4","EPSILON5","EPSILON6","EPSILON7","EPSILON8","EPSILON9","EPSILON10","EPSILON11","EPSILON12","EPSILON13","EPSILON14","EPSILON15","EPSILON16","EPSILON17","EPSILON18","EPSILON19","EPSILON20","PI_OVER_TWO","PI_OVER_FOUR","PI_OVER_SIX","polyfillExtension","target2","extKey","polyfillVertexArrayObject","EXTENSIONS","initializeExtensions","polyfills","installPolyfills","installOverrides","self_","document_","console_","getGeometryFromBuffer","_attributeDefs","dataRange","normalizedData","dataIndex","bufferValue","vertexEnd","getPriority","requestMap","freeSlots","requestQueue","_updateRequest","defaultLineColor","pathsDiff","replaceInRange","getSubLayerRow","lineDashJustified","FillLayer","StrokeLayer","polygonLayer","shouldRenderSubLayer","dashJustified","getLineDashArray","flipY","zoomX","zoomY","zoom_","OrthographicViewport","OrthographicController","orbitAxis","projectionScale","projectedCenter","nextCenter","OrbitViewport","OrbitController","OrbitView","isDeep","getSymbolsIn","cloneArrayBuffer","baseCreate","isFlattenable","baseFlatten","isStrict","baseIndexOf","aFunction","toIObject","cof","_iterator2","_symbol2","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","returnThis","Base","NAME","IS_SET","FORCED","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","hiddenKeys","pIE","gOPD","baseFor","createBaseFor","objectCtorString","srcValue","castPath","toKey","isKey","stringToPath","baseEach","createBaseEach","ColorWrap","_debounce2","_color2","Picker","ColorPicker","handleChange","onChangeComplete","handleSwatchHover","onSwatchHover","optionalEvents","deepPurple","lightBlue","lightGreen","amber","deepOrange","blueGrey","darkText","lightText","darkIcons","lightIcons","rbush","turfBBox","geojsonRbush","maxEntries","toBBox","fromJSON","currentCoords","createSegments","lineSegmentFeature","objectKeys","isRegex","strict","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","objEquiv","isArgs","origKeys","keysShim","originalKeys","shim","$Object","$TypeError","ignoreCase","multiline","dotAll","sticky","$gOPD","ArrowStyles","FORWARD","BACKWARD","BOTH","DEFAULT_STYLE","arrowColor","arrowCount","arrowStyle","fillColor","lineColor","lineWidthMeters","outlineRadiusMeters","zLevel","POLYGON_LINE_COLOR","POLYGON_FILL_COLOR","POLYGON_DASHES","LAYER_ID_PICK","SELECTION_TYPE","RECTANGLE","POLYGON","DeckDrawer","nebula","deckgl","pickingInfos","mousePoints","allX","mousePoint","allY","landPoints","pickObjects","_getLayerIds","selectionType","deactivate","usePolygon","_getMousePosFromEvent","POLYGON_THRESHOLD","dataPick","landPointsPoly","bigBuffer","bigPolygon","selPolygon","_makeStartPointHighlight","LayerMouseEvent","groundPoint","ReflectOwnKeys","ReflectApply","NumberIsNaN","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","setMaxListeners","getMaxListeners","doError","originalListener","spliceOne","rawListeners","selectedHandleIndex","selectedHandle","guidePointCount","oppositeIndex","editedData","oppositeHandle","scaleFactor","getScaleFactor","scaledFeatures","cursorGeometry","positiveBearing","selectedEditHandle","scaleAction","getScaleAction","selectedGeometry","_isSinglePointGeometrySelected","cornerGuidePoints","cornerPoint","startDistance","_geometryBeingRotated","previousCoord","topEdgeMidpointCoords","longestEdgeLength","edgeMidpoint","getIntermediatePosition","rotateHandleCoords","lineFromEnvelopeToRotateHandle","rotateHandle","rotateAction","getRotateAction","bearing1","getRotationAngle","rotatedFeatures","CompositeMode","resultEval","_modes","_coalesce","allGuides","ThreeClickPolygonMode","hoveredCoord","getThreeClickPolygon","coord3","_editableLayerState","pointerDownPicks","pointerDownScreenCoords","pointerDownMapCoords","eventHandler","_forwardEventToCurrentLayer","currentLayer","screenCoords","getScreenCoords","getMapCoords","getPicks","sourceEvent","cancelPan","pickMultipleObjects","pointerEvent","injectShaderCode","PathOutlineLayer","outlineFramebuffer","dummyTexture","instanceZLevel","alignMode","outlineEnabled","outlineRenderShadowmap","outlineShadowmap","getZLevel","GreatCircleLayer","greatCircle","RADIAN_TO_DEGREE","IJToST","singleSTtoUV","STToUV","FaceUVToXYZ","XYZToLngLat","rotateAndFlipQuadrant","getS2QuadKey","token","paddedToken","getIdFromToken","idS","FACE_BITS","lsbIndex","faceB","posB","levelN","faceS","posS","toHilbertQuadkey","getS2Polygon","nextOffset","stepI","stepJ","deltaLng","getGeoBounds","hilbertQuadkey","maxLevel","FromHilbertQuadKey","getS2Token","S2Layer","timestamps","instanceTimestamps","instanceNextTimestamps","currentTime","fadeTrail","trailLength","TripsLayer","getTimestamps","getHexagons","H3ClusterLayer","normalizeLongitudes","scalePolygon","hexId","actualCount","getHexagonCentroid","getHexagon","hexagonId","h3ToPolygon","centerHexagon","hexagon","_shouldUseHighPrecision","dataProps","_calculateH3DataProps","hasPentagon","hasMultipleRes","hexResolution","edgeLengthKM","centerHex","centerLng","SubLayerClass","forwardProps","trigger","mergeTriggers","H3HexagonLayer","featureIds","featureIdsPickingColors","calculateFeatureIdsPickingColors","u_Camera","u_pickFeatureIds","pbrMaterial","materialParser","parseMaterial","validateGeometryAttributes","unlit","pbrDebug","imageBasedLightingEnvironment","useTangents","_MeshLayer","fromCartographic","cartographic","fromCartographicToRadians","toCartographic","toCartographicFromRadians","scaleToGeodeticSurfaceIntersection","scaleToGeodeticSurfaceGradient","scratchOrigin","VECTOR_PRODUCT_LOCAL_FRAME","down","degeneratePositionLocalFrame","scratchAxisVectors","scratchVector1","thirdAxisInferred","thirdAxis","equalsEpsilon","firstAxisVector","firstAxis","secondAxisVector","secondAxis","thirdAxisVector","ellipsoid","scratchK","scratchHeight","scratchCartesian","radiiSquared","wgs84","Ellipsoid","radii","scaleToGeodeticSurface","geodeticSurfaceNormal","localFrameToFixedFrame","cartographicVectorRadians","cosLatitude","centerToleranceSquared","positionX","positionY","positionZ","oneOverRadiiX","oneOverRadii","oneOverRadiiY","oneOverRadiiZ","squaredNorm","oneOverRadiiSquaredX","oneOverRadiiSquared","oneOverRadiiSquaredY","oneOverRadiiSquaredZ","gradient","correction","xMultiplier2","xMultiplier","yMultiplier2","yMultiplier","zMultiplier2","zMultiplier","xMultiplier3","yMultiplier3","zMultiplier3","derivative","beta","oldNodeNext","_list","addCallback","unloadCallback","trimTiles","maximumMemoryUsageInBytes","sentinel","getFrameState","viewportCenterCartographic","viewportCenterCartesian","enuToFixedTransform","cameraPositionCartographic","cameraPositionCartesian","cameraDirectionCartesian","cameraUpCartesian","frustumPlanes","distanceToCenter","cartographicPos","cartesianPos","commonSpacePlanesToWGS84","camera","sseDenominator","getZoomFromBoundingVolume","obbSize","axeY","axeZ","getObbSize","TILE_CONTENT_STATE","TILE_REFINEMENT","TILE_TYPE","TILESET_TYPE","LOD_METRIC_TYPE","TILE3D_OPTIMIZATION_HINT","scratchScale","scratchNorthWest","scratchSouthEast","createBoundingVolume","boundingVolumeHeader","box","quaternion","createBox","northWest","southEast","centerInCartesian","createSphere","uniformScale","getDynamicScreenSpaceError","distanceToCamera","density","scalar","fog","qualityFactor","projectVertexToSphere","azim","incl","radCosInc","getDistanceFromLatLon","observer","observerZ","centerLon","centerLat","projectedObserver","observerLon","observerLat","getI3ScreenSize","frameState","mbsLat","mbsCenter","mbsRNormalized","getTanOfHalfVFAngle","_array","_map","_length","loadSiblings","skipLevelOfDetail","maximumScreenSpaceError","updateTransforms","onTraversalEnd","viewportTraversersMap","basePath","shouldRefine","canTraverse","updateAndPushChildren","parentRefines","stoppedRefining","compareDistanceToCamera","checkRefines","hasVisibleChild","refines","childRefines","executeEmptyTraversal","shouldSelectTile","shouldLoadTile","useParentMetric","ignoreVisibility","screenSpaceError","viewportIds","anyVisible","allDescendantsLoaded","extendedId","_getRefine","useParentLodMetric","parentLodMetricValue","lodMetricValue","viewDistanceScale","getTiles3DScreenSpaceError","traverser","maySkipTile","refine","_visible","_frameNumber","contentState","_screenSpaceError","rootScreenSpaceError","_requestScheduler","scheduleRequest","_getPriority","contentUrl","getTileUrl","isTileset","_getLoaderSpecificOptions","contentLoader","parentVisibilityPlaneMask","_traverser","parentTransform","distanceToTile","getScreenSpaceError","visibility","_visibilityPlaneMask","insideViewerRequestVolume","viewerRequestVolume","tileHeader","parentInitialTransform","_tileset","_tile","computedTransform","didTransformChange","isTileHeader","assetGltfUpAxis","_selectedFrame","contentReady","_expiredContent","hasRenderContent","firstChild","meetsScreenSpaceErrorEarly","useOptimization","anyChildrenVisible","_statusMap","metersPerPixel","mbsLon","mbsZ","mbsR","viewportCenter","mbsLatProjected","mbsLonProjected","diagonalInMeters","visibleHeight","visibleWidth","screenSize","lodJudge","childTiles","childTile","nodeUrl","i3s","loadContent","_tileManager","description","maximumMemoryUsage","onTraversalComplete","loadTiles","attributions","tilePath","_extensionsUsed","traverseCounter","viewportsToTraverse","_needTraverse","roots","_initializeTileHeaders","traverserId","frameStateData","_requestedTiles","_emptyTiles","currentFrameStateData","frameStateDataValue","oldSelectedTiles","set1","set2","tilesRenderable","pointsRenderable","tilesetJson","rootTile","parentTileHeader","TraverserClass","_onTraversalEnd","gltfUpAxis","rotationY","cartesianOrigin","cartographicOrigin","toFixedFrameMatrix","calculateTransformProps","asset","queryParams","queryParamStrings","getQueryParamString","TILE3D_TYPE","COMPOSITE","POINT_CLOUD","BATCHED_3D_MODEL","INSTANCED_3D_MODEL","GEOMETRY","VECTOR","getStringFromArrayBuffer","textDecoder","GL_TYPE","GL_TYPE_TO_ARRAY_TYPE","NAME_TO_GL_TYPE","GLType","componentType","componentLength","jsonValue","_getTypedArrayFromBinary","_getTypedArrayFromArray","propertyName","getPropertyArray","cachedTypedArrays","COMPONENTS_PER_ATTRIBUTE","SCALAR","VEC2","VEC3","VEC4","MAT2","MAT3","MAT4","UNPACKER","PACKER","initializeHierarchy","batchTable","jsonHeader","binaryBody","hierarchy","legacyHierarchy","hierarchyJson","instancesLength","classIds","parentCounts","parentIds","parentIdsLength","AttributeType","getBinaryAccessor","parentIndexes","classesLength","classInstancesLength","binaryProperties","getBinaryProperties","classCounts","classIndexes","classId","validateInstance","validateHierarchy","initializeHierarchyValues","traverseHierarchy","instanceIndex","endConditionCallback","visited","visitedMarker","parentCount","parentIndex","traverseHierarchyMultipleParents","traverseHierarchySingleParent","IGNORED_PROPERTY_FIELDS","HIERARCHY","extras","featureCount","instanceClass","getExactClassName","batchId","_hierarchy","_properties","_hasPropertyInHierarchy","propertyNames","binaryProperty","_binaryProperties","_getBinaryProperty","propertyValues","hierarchyProperty","_getHierarchyProperty","_setHierarchyProperty","_initializeBinaryProperty","tile3DAccessor","unpacker","packer","createTypedArrayFromAccessor","componentCount","pack","instances","indexInClass","parse3DTileHeaderSync","parse3DTileTablesHeaderSync","featureTableJsonByteLength","featureTableBinaryByteLength","batchTableJsonByteLength","batchTableBinaryByteLength","SIZEOF_UINT32","batchLength","parse3DTileTablesSync","BATCH_LENGTH","featureTableString","parse3DTileFeatureTable","batchTableString","parse3DTileBatchTable","decodeRGB565","rgb565","r5","g6","normalize3DTileColorAttribute","batchIds","colorArray","fromSNorm","rangeMaximum","signNotZero","octDecodeInRange","oldVX","octDecode","normalize3DTilePositionAttribute","decodedArray","decodeQuantizedPositions","initializeTile","parsePointCloudTables","parseDraco","featureTable","parsePositions","parseColors","parseNormals","pointsLength","batchFeatureLength","batchTableBinary","parseBatchIds","normalize3DTileNormalAttribute","batchTableDraco","dracoBatchTableProperties","featureTableDraco","dracoFeatureTableProperties","dracoByteOffset","dracoByteLength","dracoBuffer","dracoData","featureTableProperties","batchTableProperties","dequantizeInShader","loadDraco","dracoOptions","decodedPositions","decodedColors","decodedNormals","decodedBatchIds","isQuantizedDraco","isOctEncodedDraco","batchTableAttributes","GLTF_FORMAT","parse3DTileGLTFViewSync","gltfByteLength","tile3DOptions","extractGLTFBufferOrURL","gltfFormat","gltfUrlBytes","gltfUrl","parseBatchedModel","extractGLTF","parseInstancedModel","collectionOptions","instancePosition","instanceRotation","instanceQuaternion","instanceScale","instanceTranslationRotationScale","instanceTransform","scratch1","scratch2","quantizedVolumeOffset","quantizedVolumeScale","nonUniformScale","rotationMatrix","extractInstancedAttributes","subtile","parse3DTile","parseComposite3DTile","parseBatchedModel3DTile","parseInstancedModel3DTile","parsePointCloud3DTile","normalizeTileData","contentUri","fileExtension","getTileType","getRefine","normalizeTileHeaders","childHeader","Tiles3DLoader","loadGLTF","getBaseUri","parseTileset","parseTile","SINGLE_DATA","getPointColor","pointSize","onTilesetLoad","tileset3d","_getMeshColor","layerMap","activeViewports","lastUpdatedViewports","lastViewport","preloadOptions","tilesetUrl","onTileLoadFail","viewportsNumber","_makePointCloudLayer","_make3DModelLayer","_makeSimpleMeshLayer","constantRGBA","_lighting","scenegraph","getMeshGeometry","layerCache","contentAttributes","Tile3DLayer","TerrainLoader","terrain","tesselator","meshMaxError","elevationDecoder","rScaler","gScaler","bScaler","skirtHeight","DUMMY_DATA","elevationData","urlTemplateToUpdateTrigger","elevationDataChanged","shouldReload","loadTerrain","dataUrl","textureUrl","surface","ranges","bound","getTiledTerrainData","_instanced","TerrainLayer","cmd","cmdLen","VectorTileFeature","ccw","classifyRings","_toGeoJSON","readFeature","readTag","_features","_pbf","readLayer","readValueMessage","readTile","classified","_toBinaryCoordinates","jl","ringAreas","before","after","extractNumericPropKeys","numericPropKeys","numericSoFar","fillArrays","firstPassData","polygonFeaturesCount","PositionDataType","hasGlobalId","coordLength","GlobalFeatureIdsDataType","pointPositionsCount","globalFeatureIds","pointFeaturesCount","numericProps","pathIndices","linePositionsCount","linePathsCount","lineFeaturesCount","polygonIndices","polygonPositionsCount","polygonObjectsCount","primitivePolygonIndices","polygonRingsCount","indexMap","pointPosition","pointFeature","linePosition","linePath","lineFeature","polygonPosition","polygonObject","polygonRing","polygonFeature","handlePoint","keepStringProperties","handleLineString","handlePolygon","makeAccessorObjects","nPositions","fillNumericProperties","il","nextLines","triangulatePolygon","endPosition","tl","returnObj","numericPropName","numericKeys","parseMVT","wgs84Coordinates","mvt","gis","hasTileIndex","selectedLayers","vectorTileLayer","featureOptions","vectorTileFeature","decodedFeature","getDecodedFeatureBinary","getDecodedFeature","featuresToBinary","transformToLocalCoordinates","transformToLocalCoordinatesBinary","MVTWorkerLoader","layerProperty","parseSync","binaryToGeojson","globalFeatureId","dataArray","normalizeInput","currValue","parseFeature","getSingleFeature","parseFeatures","parseFeatureCollection","binaryToGeometry","ringToGeoJson","pointToGeoJson","multi","ringCoordinates","lineStringToGeoJson","polygonToGeoJson","startRingIndex","endRingIndex","startPolygonIndex","endPolygonIndex","polygonCoordinates","parseType","parseProperties","parseFields","clipBounds","shaderFunction","shaderModuleVs","injectionVs","shaderModuleFs","injectionFs","clipByInstance","corner0","ClipExtension","availableTransformations","GEOM_TYPES","findIndexByType","geomData","uniqueIdProperty","startFeatureIndex","endFeatureIndex","layerRange","layerNames","getLayerRange","elem","getGlobalFeatureId","highlightedFeatureId","tileJSON","worldScale","xScale","yScale","hoveredFeatureLayerName","hoveredFeature","newHoveredFeatureId","getFeatureUniqueId","newHoveredFeatureLayerName","getFeatureLayerName","hoveredFeatureId","isWGS84","transformTileCoordsToWGS84","isHighlighted","isFeatureIdDefined","featureIdToHighlight","isMatchingId","isMatchingLayer","findIndexBinary","maxObjects","maxFeatures","_pickObjects","featureCache","renderedFeatures","projectedBbox","MVTLayer","onInteractionStateChange","controllers","controller","_viewports","viewMap","viewOrViewId","getView","_viewportMap","_diffViews","_eventCallbacks","_onViewStateChange","controllerProps","_createController","oldControllers","invalidateControllers","getViewState","oldController","_updateController","newViews","oldViews","DEFAULT_LIGHTING_EFFECT","effects","NO_PICKED_OBJECT","getClosestObject","minSquareDistanceToCenter","deviceRadius","closestPixelIndex","pickedColors","pickedObject","pickedX","pickedY","getEmptyPickingInfo","pickedViewport","getViewportFromCoordinates","pickInfo","picked","devicePixel","processPickInfo","affectedLayers","lastPickedObjectIndex","lastPickedInfo","lastPickedLayerId","pickedLayerId","lastPickedLayer","baseInfo","infos","getLayerPickingInfo","_pickClosestObject","_pickVisibleObjects","lastPickedViewportId","colorBufferFloat","_pickable","pickableLayers","_getPickable","emptyInfo","devicePixelRange","_getPickingRect","deviceX","deviceY","deviceWidth","deviceHeight","pickedResult","_drawAndSample","pickedResultPass2","leftTop","deviceLeft","deviceTop","rightBottom","deviceRight","deviceBottom","pickInfos","uniqueColors","colorKey","getUniqueObjects","uniqueInfos","isMaxObjects","pickLayersPass","defaultStyle","canvasParent","displayInfo","oldHandler","predict","enhancePointerEventInput","hammerjs","enhanceMouseInput","RECOGNIZERS","RECOGNIZER_COMPATIBLE_MAP","tripan","pinch","doubletap","anytap","RECOGNIZER_FALLBACK_MAP","BASIC_EVENT_ALIASES","INPUT_EVENT_TYPES","EVENT_RECOGNIZER_MAP","tap","press","pinchin","pinchout","pinchstart","pinchmove","pinchend","pinchcancel","rotatestart","rotatemove","rotateend","rotatecancel","tripanstart","tripanmove","tripanup","tripandown","tripanleft","tripanright","tripanend","tripancancel","panup","pandown","panleft","panright","pancancel","swipe","swipeleft","swiperight","swipeup","swipedown","GESTURE_EVENT_ALIASES","anyclick","dblclick","mouseover","mouseout","mouseleave","firefox","WHEEL_EVENTS","passive","wheelPosition","MOUSE_EVENTS","KEY_EVENTS","targetElement","enableDownEvent","enableUpEvent","srcElement","handlersByElement","_active","mjolnirEvent","_normalizeEvent","immediatePropagationStopped","stopImmediatePropagation","entriesToRemove","rootElement","leftButton","middleButton","rightButton","buttons","whichButtons","getOffsetPosition","handled","recognizerOptions","_onBasicInput","_onOtherEvent","ManagerClass","otherName","recognizerOption","eventRegistrar","enabled","fallbackRecognizers","eventAlias","recognizerName","isRecognizerUsed","eh","glOptions","eventRecognizerOptions","_framebuffer","_animate","_typedArrayManagerProps","onWebGLInitialized","_onMetrics","isHovering","_onEvent","_onPointerDown","_onPointerMove","_createCanvas","_createAnimationLoop","fps","setPropsTime","updateAttributesTime","framesRedrawn","pickTime","pickCount","gpuTime","gpuTimePerFrame","cpuTime","cpuTimePerFrame","bufferMemory","textureMemory","renderbufferMemory","gpuMemory","resolvedProps","_getViewState","getViewports","viewManagerNeedsRedraw","layerManagerNeedsRedraw","effectManagerNeedsRedraw","effectManager","deckRendererNeedsRedraw","deckRenderer","_pick","deckPicker","getLayers","autoResizeDrawingBuffer","autoResizeViewport","onCreateContext","onContextLost","onInitialize","onRender","_onRenderFrame","animationLoop","_pickRequest","pickedInfo","getTooltip","polygonOffsetFill","_onInteractionStateChange","renderOptions","_metricsCounter","eventOptions","getLastPickedObject","layerHandler","rootHandler","pickObject","animationLoopStats","metrics","memoryStats","Deck","deckGlobal","copyMatrix","rot","worldMatrix","worldInverse","worldInverseTranspose","objectMatrix","worldInverseMatrix","worldInverseTransposeMatrix","ATTRIBUTE_TYPE_TO_COMPONENTS","ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY","5120","5121","5122","5123","5125","5126","accessorToJsArray","slicedArray","helperMatrix","animationTime","nextIndex","previousIndex","previousTime","nextTime","stepInterpolate","linearInterpolate","tDiff","m0","outTangent0","inTangent1","cubicsplineInterpolate","timeMs","gltfNode","applyTranslationRotationScale","gltf","samplers","addVersionToShader","modelOptions","scene","gltfScene","gltfNodes","gltfChildren","createMesh","gltfMesh","primitives","gltfPrimitives","managedResources","createGLTFModel","gltfPrimitive","getVertexCount","createAttributes","loadedAttributes","createAccessor","generated","bufferView","gltfObjects","waitWhileCondition","getScene","getAnimator","_animations","_imageBasedLightingEnvironment","instanceModelMatrix","scenegraphData","scenes","instantiator","animator","createGLTFObjects","waitForGLTFAssets","allAttributes","animations","animationsProp","findResult","waitForFullLoad","attributesAvailable","composeModelMatrix","sceneModelMatrix","ScenegraphLayer","binaryToFeatureForAccesor","propertiesIndex","numericPropsIndex","getPropertiesForIndex","POINT_LAYER","pointRadiusUnits","pointAntialiasing","getPointRadius","iconSizeMaxPixels","iconSizeMinPixels","iconSizeScale","iconSizeUnits","getIconAngle","getIconColor","getIconPixelOffset","getIconSize","textSizeMaxPixels","textSizeMinPixels","textSizeScale","textSizeUnits","textBackground","textBackgroundPadding","textFontFamily","textFontWeight","textLineHeight","textMaxWidth","textOutlineColor","textOutlineWidth","textWordBreak","textCharacterSet","getTextAngle","getTextColor","getTextPixelOffset","getTextSize","getTextAlignmentBaseline","getTextBackgroundColor","getTextBorderColor","getTextBorderWidth","LINE_LAYER","lineCapRounded","POLYGON_LAYER","targetKey","sourceKey","separateGeojsonFeatures","wrapFeature","separated","pointFeatures","lineFeatures","polygonFeatures","polygonOutlineFeatures","subGeometry","separateGeometry","sourceFeature","sourceFeatureIndex","nestLevel","COORDINATE_NEST_LEVEL","validateGeometry","createLayerPropsFromBinary","geojsonBinary","layerProps","polygonsOutline","customPickingColors","calculatePickingColors","pointType","getGeojsonFeatures","newFeatures","featuresDiff","oldFeatures","partialFeatures","createLayerPropsFromFeatures","pointLayerIdPrefix","sourceIsPoints","PolygonFillLayer","forwardedProps","useLineColor","PolygonStrokeLayer","LineStringsLayer","pointLayers","PointLayerMapping","PointsLayer","polygonFillLayer","calcDistance","getPlanarDistance","pointToLineDistance","distanceToSegment","DEFAULT_INDICES","DEFAULT_TEX_COORDS","createQuad","maxXSpan","maxYSpan","uCount","vCount","vertex","interpolateQuad","quad","_imageCoordinateSystem","tintColor","oldMesh","_getCoordinateUniforms","uv","fracUV","unpackUVsFromRGB","disablePicking","normalizedBounds","bitmapTexture","coordinateConversion","imageCoordinateSystem","defaultImageCoordinateSystem","sourcePosition","targetPosition","instanceSourcePositions","instanceTargetPositions","instanceWidths","useShortestPath","getSourceColor","getTargetColor","getTilt","instanceSourceColors","instanceTargetColors","instanceHeights","instanceTilts","numSegments","ArcLayer","DEFAULT_NORMAL","getNormal","radiusPixels","instanceNormals","normalizeData","PointCloudLayer","useMeshColors","_useMeshColors","emptyTexture","getModel","hasNormals","flatShading","hasTexture","SimpleMeshLayer","getTanDeg","ellipse","xSemiAxis","ySemiAxis","centerCoords","angleRad","newx","newy","useId","idOverride","defaultId","setDefaultId","getMaterialUniforms","ambient","diffuse","shininess","specularColor","lighting_uAmbient","lighting_uDiffuse","lighting_uShininess","lighting_uSpecularColor","gouraudLighting","LIGHTING_VERTEX","phongLighting","LIGHTING_FRAGMENT","nodeToJson","xmlToNodeobj","x2xmlnode","givenOptions","validationOption","parseTrueNumberOnly","traversableObj","convertToJson","convertTonimn","convert2nimn","convertToJsonString","j2xParser","parseToNimn","glErrorShadow","synthesizeGLError","opt_msg","WebGLVertexArrayObjectOES","attribs","attrib","OESVertexArrayObject","wrapGLError","original","enableVertexAttribArray","disableVertexAttribArray","bindBuffer","vertexAttribPointer","vao","original_getSupportedExtensions","original_getExtension","vertexArrayObjects","arrayObject","currentVertexArrayObject","oldVAO","newVAO","currentBinding","maxAttrib","oldAttrib","bufferChanged","currentArrayBuffer","refTexture","overrides","TextureType","FACES","mipmapLevel","_subImage","imageDataMap","facePixels","resolvedFaces","TextureCube","unpackFlipY","getGlobalLoaderRegistry","loaderRegistry","normalizedLoader","registeredLoader","getRegisteredLoaders","TinySDF","INF","gridSize","font","textAlign","fillStyle","gridOuter","gridInner","useMetrics","measureText","actualBoundingBoxLeft","edt","edt1d","_draw","getMetrics","glyphWidth","glyphHeight","imgTop","imgLeft","baselinePosition","imgData","textMetrics","advance","doubleBuffer","actualBoundingBoxAscent","actualBoundingBoxRight","actualBoundingBoxDescent","textBaseline","clearRect","fillText","getImageData","prepareGrids","extractAlpha","sdfWidth","sdfHeight","drawWithMetrics","steiner","prevZ","nextZ","bridge","bridgeReverse","filteredBridge","deviation","polygonArea","trianglesArea","LercDecode","CntZImage","skipMask","encodedMaskData","parsedData","inputOffset","noDataValue","defaultNoDataValue","uncompressedData","uncompressPixelValues","pixelType","returnMask","pixelData","resultPixels","minValue","maxValue","resultMask","maskData","returnEncodedMask","bitset","returnFileInfo","fileInfo","formatFileInfo","computeUsedBitDepths","bitDepths","TypedArrayClass","maskBitset","storeDecodedMask","currentValue","blockIdx","numX","numBlocksX","numY","numBlocksY","blockWidth","maxZError","blockDataBuffer","thisBlockHeight","thisBlockWidth","blockData","blockPtr","constValue","maskByte","outPtr","outStride","rawData","unstuff","stuffedData","bitsPerPixel","numValidPixels","fileIdentifierString","fileVersion","imageType","eofOffset","numBytes","numBlocks","float32","fileIdView","cnt","ip","actualNumBlocksX","actualNumBlocksY","blockI","blockY","blockX","bytesLeft","headerByte","offsetType","numValidPixelsType","arrayBuf","dataBytes","dataWords","bitsLeft","nmax","numInvalidTailBytes","missingBits","Lerc2Decode","BitStuffer","lutArr","bitPos","Lerc2Helpers","HUFFMAN_LUT_BITS_MAX","computeChecksumFletcher32","sum1","sum2","words","tlen","readHeaderInfo","headerInfo","keyLength","checksum","numDims","numValidPixel","microBlockSize","blobSize","zMin","zMax","checkMinMaxRanges","OutPixelTypeArray","getDataTypeArray","rangeBytes","getDataTypeSize","minValues","readSubArray","maxValues","readMask","readDataOneSweep","nStart","readHuffmanTree","BITS_MAX","decodeBits","codeTable","word","srcPtr","numBitsLUT","numBitsLUTQick","jj","decodeLut","readHuffman","valTmp","valTmpQuick","huffmanInfo","prevVal","iDim","deltaEncode","encodeMode","resultPixelsAllDim","bits67","doLut","numElements","store8","lutData","lutBytes","lut","bitstuffer","readTiles","dataTypeSize","blockEncoding","bytesleft","lastBlockHeight","lastBlockWidth","getDataTypeUsed","getOnePixel","constantoffset","getPixelType","constructConstantSurface","numPixelAllDims","isValidPixelValue","getUInt32","onesweep","bReadDataOneSweep","flagHuffman","validPixelCount","dimCount","dimStats","getBandCount","isPlatformLittleEndian","encodedData","lerc","majorVersion","bandMask","iPlane","eof","bandMasks","decodedPixelBlock","statistics","Yallist","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","stale","maxAge","dispose","noDisposeOnSet","updateAgeOnGet","thisp","walker","forEachStep","hit","isStale","Entry","expiresAt","mL","allowStale","mA","lC","doUse","unshiftNode","HttpResponse","dataPromise","statusCode","parsedUrl","urlMod","httpApi","https","closeAsync","bytesRead","FileSource","openRequest","openAsync","makeFileSource","shortNumber","suffixes","EventHandlers","$getMaxListeners","emitNone","isFn","emitOne","emitTwo","arg2","emitThree","arg3","emitMany","usingDomains","Domain","domainEmitter","domainThrown","global$1","revLookup","Arr","inited","extraBytes","internalIsBuffer","b64","placeHolders","isFastBuffer","isSlowBuffer","performanceNow","mozNow","msNow","oNow","webkitNow","startTime","hrtime","previousTimestamp","clocktime","seconds","nanoseconds","platform","uptime","inherits$1","ctor","superCtor","super_","TempCtor","formatRegExp","isUndefined","debugEnviron","debugs","stylize","stylizeNoColor","showHidden","_extend","customInspect","stylizeWithColor","styleType","recurseTimes","primitive","simple","formatPrimitive","visibleKeys","arrayToHash","isError","formatError","braces","toUTCString","formatProperty","formatArray","reduceToSingleString","BufferList","isBufferEncoding","StringDecoder","assertEncoding","surrogateSize","detectIncompleteChar","utf16DetectIncompleteChar","base64DetectIncompleteChar","passThroughWrite","charBuffer","charReceived","charLength","charStr","available","charCode","enc","Readable","ReadableState","objectMode","Duplex","readableObjectMode","hwm","highWaterMark","defaultHwm","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","_readableState","readable","_read","readableAddChunk","addToFront","chunkInvalid","emitReadable","onEofChunk","skipAdd","maybeReadMore_","maybeReadMore","needMoreData","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","nReadingNextTick","resume_","fromList","hasStrings","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","nop","WriteReq","WritableState","getBuffer","writableObjectMode","needDrain","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","_writableState","writecb","writelen","onwriteStateUpdate","pendingcb","errorEmitted","onwriteError","needFinish","bufferedRequest","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","corkedRequestsFree","CorkedRequest","Writable","_write","writev","_writev","doWrite","onwriteDrain","finishMaybe","holder","prefinish","need","isPaused","setEncoding","nOrig","doRead","pipe","pipeOpts","endFn","cleanup","onend","onunpipe","ondrain","pipeOnDrain","cleanedUp","onclose","onfinish","ondata","increasedAwaitDrain","pause","unpipe","listenerCount$1","resume","dests","paused","_fromList","writeAfterEnd","validChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","allowHalfOpen","onEndNT","TransformState","afterTransform","ts","_transformState","transforming","writechunk","needTransform","writeencoding","_transform","_flush","PassThrough","Stream","_isStdio","didOnEnd","commonjsGlobal","reLeadingDot","rePropName","reEscapeChar","hasOwnProperty$1","objectToString$1","Symbol$1","symbolToString","baseGet","isArray$2","isObject$1","isFunction$1","isHostObject","baseToString","quote","memoized","lodash_get","getProp$1","setProp$1","setProp","pathArray","fastJoin$1","flattenReducer$1","JSON2CSVBase_1","JSON2CSVBase","preprocessOpts","preprocessRow","memoizePreprocessRow","processedOpts","unwind","flattenSeparator","eol","doubleQuote","includeEmptyRows","withBOM","fieldInfo","processValue","unwindData","processedRow","processCell","excelStrings","dataRow","flatDataRow","newPath","unwindPaths","_this5","unwindPath","unwindArray","unwindRow","clonedRow","unwindBlank","fastJoin$2","flattenReducer$2","JSON2CSVParser_1","_JSON2CSVBase","JSON2CSVParser","preprocessFieldsInfo","processedData","preprocessData","processData","processRow","LEFT_BRACE","RIGHT_BRACE","LEFT_BRACKET","RIGHT_BRACKET","COLON","COMMA","STRING","START","STOP","TRUE1","TRUE2","TRUE3","FALSE1","FALSE2","FALSE3","FALSE4","NULL1","NULL2","NULL3","NUMBER1","NUMBER3","STRING1","STRING2","STRING3","STRING4","STRING5","STRING6","VALUE","KEY","OBJECT","ARRAY","BACK_SLASH","FORWARD_SLASH","BACKSPACE","FORM_FEED","CARRIAGE_RETURN","TAB","Parser","tState","stringBuffer","stringBufferOffset","highSurrogate","bytes_remaining","bytes_in_sequence","temp_buffs","toknam","charError","appendStringChar","appendStringBuf","onToken","intVal","parseError","onValue","jsonparse","JSON2CSVTransform_1","_Transform","JSON2CSVTransform","transformOpts","_hasWritten","initObjectModeParse","ndjson","initNDJSONParse","initJSONParser","pushHeader","pushLine","getPendingData","pendingData","depthToEmit","_onToken","Transform$2","fastJoin$3","JSON2CSVAsyncParser_1","JSON2CSVAsyncParser","processor","_output","csvBuffer","Readable$1","Parser$1","AsyncParser","Transform$3","parseAsync","asyncParser","fromInput","json2csv","RBush","Queue","pointInPolygon","orient","orient2d","concaveman","concavity","lengthThreshold","hull","cull","filtered","compareByX","fastConvexHull","compareMinX","compareMinY","segTree","updateBBox","sqConcavity","sqLenThreshold","sqLen","getSqDist","maxSqLen","findCandidate","concave","compareDist","leaf","sqSegDist","sqSegBoxDist","noIntersections","sqSegSegDist","d3","d4","sN","tN","sD","tD","InternMap","keyof","_intern","intern_get","intern_set","intern_delete","timeoutDuration","longerTimeoutBrowsers","called","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","getReferenceNode","reference","isIE11","isIE10","isIE","getOffsetParent","noOffsetParent","nodeName","findCommonOffsetParent","element1","element2","commonAncestorContainer","isOffsetContainer","element1root","getScroll","upperSide","html","scrollingElement","includeScroll","modifier","getBordersSize","sideA","sideB","getWindowSizes","getClientRect","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","getBoundaries","boundaries","boundariesElement","boundariesNode","popper","isPaddingNumber","computeAutoPlacement","placement","rects","refRect","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","modifiers","positionFixed","isModifierEnabled","modifierName","getSupportedPropertyName","upperProp","toCheck","setupEventListeners","attachToScrollParents","scrollParents","isBody","enableEventListeners","disableEventListeners","isNumeric","setStyles","isModifierRequired","requesting","requested","validPlacements","placements","BEHAVIORS","parseOffset","useHeight","basePlacement","frag","divider","splitRegex","ops","mergeWithPrevious","index2","shiftvariation","shiftOffsets","transformProp","popperStyles","opSide","arrowElement","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flippedVariationByContent","flippedVariation","getOppositeVariation","subtractLength","legacyGpuAccelerationOption","gpuAcceleration","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","bothOddWidth","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","Popper","modifierOptions","eventsEnabled","Utils","PopperUtils","Defaults","arrayWithoutHoles","nonIterableSpread","iterableToArrayLimit","baseRest","baseUniq","isArrayLikeObject","baseDifference","CustomPicker","TwitterPicker","SwatchesPicker","SliderPicker","SketchPicker","PhotoshopPicker","MaterialPicker","HuePicker","GithubPicker","CompactPicker","ChromePicker","CirclePicker","BlockPicker","AlphaPicker","_Block","_Circle","_Chrome","_Compact","_Github","_Material","_Photoshop","_Sketch","_Slider","_Swatches","_Twitter","_Chrome2","option","wrapCallback","_EventObject2","_ret","useCapture","_EventObject","MapShim","class_1","__entries__","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","observe","characterData","subtree","disconnect","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","bbox_1","boolean_point_on_line_1","boolean_point_in_polygon_1","doBBoxOverlap","bbox1","bbox2","compareCoords","pair1","pair2","feature1","feature2","type1","type2","isPointInMultiPoint","multiPoint1","multiPoint2","anyMatch","isMultiPointInMultiPoint","foundInsidePoint","isMultiPointOnLine","isMultiPointInPoly","lineString1","lineString2","isLineOnLine","polyBbox","lineBbox","midpoint","isLineInPoly","poly1Bbox","isPolyInPoly","matchFound","haveFoundInteriorPoint","getMidpoint","coords_1","ring_1","line_overlap_1","GeojsonEquality","segment1","segment2","MANUAL_SRGB","SRGB_FAST_APPROXIMATION","u_MetallicRoughnessValues","gltfTexture","textureOptions","pbrMetallicRoughness","metallicFactor","roughnessFactor","strength","higlassTracks","higlassTracksByType","higlassDataFetchersByType","getRandomName","registerTrack","trackDef","registerDataFetcher","dataFetcherDef","pluginType","_instanceof","nativeMap","nativeSet","nativePromise","circular","includeNonEnumerable","allParents","allChildren","useBuffer","_clone","__isArray","__isRegExp","__getRegExpFlags","__isDate","keyChild","valueChild","entryChild","allPropertyNames","__objToStr","clonePrototype","17","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","getAndroidVersionName","getVersionPrecision","compareVersions","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","18","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chrome","Chromium","Electron","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","android","bada","blackberry","chromium","electron","epiphany","googlebot","google_search","k_meleon","maxthon","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","safari","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","vivaldi","webos","wechat","yandex","tablet","mobile","desktop","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","90","getParser","91","_ua","parsedResult","getUA","parseBrowser","describe","getBrowserName","getBrowserVersion","getOS","parseOS","getOSName","getOSVersion","getPlatform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","isOS","isPlatform","compareVersion","isEngine","92","93","versionName","94","95","fillRef","composeRef","addEventListenerWrap","unstable_batchedUpdates","addDOMEventListener","Portal","createContainer","didUpdate","removeContainer","_container","getContainer","createPortal","isPointsEq","isAlignPoint","jsCssMap","Webkit","Moz","ms","getVendorPrefix","vendorPrefix","getTransformName","setTransitionProperty","matrix2d","matrix3d","forceRelayout","originalStyle","getComputedStyleX","getScrollLeft","getScrollTop","getOffset","docElem","getClientPosition","getDocument","_RE_NUM_NO_PX","RE_POS","getOffsetDirection","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","getTransitionProperty","old","originalXY","getTransformXY","resultXY","match2d","setTransformXY","isBorderBoxFn","cs","rsLeft","BOX_MODELS","getPBMWidth","cssProp","domUtils","getWH","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","documentElementProp","cssShow","getWHIgnoreDisplay","includeMargin","oriOffset","oLeft","oTop","tLeft","tTop","setOffset","getWindowScrollLeft","getWindowScrollTop","viewportWidth","viewportHeight","positionStyle","getVisibleRectForElement","alwaysByViewport","visibleRect","originalPosition","documentWidth","documentHeight","bodyStyle","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","getAlignOffset","region","getElFuturePos","elRegion","refNodeRegion","isFailX","elFuturePos","isFailY","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newPoints","newOffset","newTargetOffset","isCompleteFailX","isCompleteFailY","isStillFailX","isStillFailY","adjustForViewport","useCssRight","useCssBottom","useCssTransform","ignoreShake","alignElement","refNode","targetRegion","isOutOfVisibleRect","pageX","tgtPoint","pageY","pointInView","_iterableToArrayLimit","monitorResize","prevWidth","prevHeight","resizeObserver","_target$getBoundingCl","fixedWidth","fixedHeight","getPoint","RefAlign","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","nodeRef","only","forceAlignPropsRef","_useBuffer2","calledRef","timeoutRef","cancelTrigger","_forceAlignPropsRef$c","latestDisabled","latestTarget","activeElement","alignPoint","restoreFocus","_forceAlign","cancelForceAlign","resizeMonitor","sourceResizeMonitor","winResizeRef","useImperativeHandle","forceAlign","Align","motionDeadline","deadline","RefPopupInner","hiddenClassName","getMotion","RawCSSMotion","supportMotion","Popup","_Component","targetWidth","targetHeight","prevVisible","alignClassName","popupRef","createRef","alignRef","nextFrameState","nextFrameId","popupDomNode","getClassNameFromAlign","setStateOnNextFrame","cancelFrameState","submitState","getAlignTarget","getRootDomNode","renderPopupElement","stretch","destroyPopupOnHide","sizeStyle","minHeight","getZIndexStyle","mergedMotion","mergedMotionVisible","mergedAlignDisabled","mergedPopupVisible","motionRef","motionStyle","motionClassName","PopupInner","renderMaskElement","maskMotion","maskTransitionName","maskAnimation","nextStatus","TriggerContext","returnEmptyString","returnDocument","ALL_HANDLERS","generateTrigger","PortalComponent","Trigger","popupVisible","triggerRef","mouseEnterDelay","fireEvents","delaySetPopupVisible","setPoint","mouseLeaveDelay","onPopupMouseEnter","clearDelayTimer","onPopupMouseLeave","relatedTarget","isFocusToShow","focusTime","focusDelay","preClickTime","preTouchTime","isBlurToHide","blurDelay","setPopupVisible","onContextMenuClose","isContextMenuToShow","preTime","isClickToShow","isClickToHide","nextVisible","onPopupMouseDown","_this$context","hasPopupMouseDown","mouseDownTimeout","onDocumentClick","maskClosable","popupNode","getPopupDomNode","getTriggerDOMNode","domNode","getPopupClassNameFromAlign","popupPlacement","builtinPlacements","getAlignPopupClassName","getComponent","popupClassName","onPopupAlign","popupMotion","popupAnimation","popupTransitionName","popupStyle","popup","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","popupContainer","getPopupContainer","handlePortalUpdate","prevPopupVisible","afterPopupVisibleChange","defaultPopupVisible","currentDocument","clickOutsideHandler","touchOutsideHandler","contextMenuOutsideHandler1","contextMenuOutsideHandler2","clearOutsideHandler","popupAlign","placementStr","getAlignFromPlacement","onPopupVisibleChange","delayS","delayTimer","childPros","showAction","hideAction","childCallback","_this$props10","forceRender","newChildProps","createTwoChains","childrenClassName","nodeOrComponent","cloneProps","portal","autoAdjustOverflow","adjustX","adjustY","rightTop","leftBottom","Content","overlay","overlayClassName","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","overlayStyle","_props$prefixCls","onVisibleChange","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","restProps","domRef","_props$arrowContent","arrowContent","Tooltip","createBreakpoints","_breakpoints$values","_breakpoints$unit","_breakpoints$step","between","upperbound","createMixins","spacing","_toolbar","gutters","toolbar","paper","hoverOpacity","selectedOpacity","disabledBackground","disabledOpacity","focusOpacity","activatedOpacity","dark","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","createPalette","_palette$primary","_palette$secondary","_palette$error","_palette$warning","_palette$info","_palette$success","success","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","getContrastText","augmentColor","mainShade","lightShade","darkShade","contrastText","roundWithDeprecationWarning","caseAllCaps","textTransform","createTypography","_ref$fontFamily","_ref$fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","fontWeightMedium","_ref$fontWeightBold","fontWeightBold","_ref$htmlFontSize","htmlFontSize","allVariants","pxToRem2","coef","buildVariant","letterSpacing","casing","variants","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","overline","createShadow","shadows","createSpacing","spacingInput","mui","createUnarySpacing","argument","_options$breakpoints","breakpointsInput","_options$mixins","mixinsInput","_options$palette","paletteInput","_options$typography","typographyInput","muiTheme","formatMuiErrorMessage","isFeatureSupported","featureDefinition","isSupported","queryFeature","support","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","Headers","consumed","bodyUsed","fileReaderReady","readBlobAsArrayBuffer","bufferClone","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","rejected","readAsText","readBlobAsText","readArrayBufferAsText","formData","upcased","normalizeMethod","form","rawHeaders","bodyInit","redirectStatuses","DOMException","abortXhr","getAllResponseHeaders","responseURL","responseText","ontimeout","withCredentials","onreadystatechange","readyState","extractEvents","eventTypes","phasedRegistrationNames","registrationName","stateNode","acceptsBooleans","attributeNamespace","mustUseProperty","sanitizeURL","xlinkHref","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","removeAttribute","setAttributeNS","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","pb","$$typeof","_status","qb","_debugOwner","_debugSource","fileName","lineNumber","return","rb","xb","_valueTracker","stopTracking","yb","defaultChecked","_wrapperState","initialChecked","Cb","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","MSApp","execUnsafeLocalFunction","namespaceURI","lastChild","animationiteration","animationstart","Wb","Yb","$b","dc","alternate","effectTag","ec","memoizedState","dehydrated","sibling","ic","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","nc","correspondingUseElement","oc","pc","qc","topLevelType","targetInst","ancestors","rc","eventSystemFlags","containerInfo","xc","yc","zc","Ac","Bc","Cc","Dc","blockedOn","unstable_runWithPriority","hydrate","unstable_scheduleCallback","unstable_NormalPriority","bubbled","captured","eventPriority","unstable_UserBlockingPriority","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","kd","ld","nd","menuitem","embed","keygen","track","wbr","od","pd","td","ud","vd","HTMLIFrameElement","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","Interface","isDefaultPrevented","returnValue","eventPool","destructor","getPooled","cancelBubble","eventPhase","bubbles","isTrusted","documentMode","beforeInput","compositionEnd","compositionStart","compositionUpdate","keyCode","detail","change","_isInputEventSupported","Alt","Control","Meta","Shift","getModifierState","screenX","screenY","shiftKey","fromElement","toElement","movementX","movementY","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","mouseEnter","mouseLeave","pointerEnter","pointerLeave","ef","ff","hf","jf","selectionStart","selectionEnd","anchorNode","anchorOffset","focusNode","focusOffset","kf","lf","elapsedTime","pseudoElement","mf","clipboardData","of","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","12","13","16","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","sf","tf","uf","vf","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","gg","hg","ig","jg","kg","mg","ng","og","_currentValue","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","vg","wg","suspenseConfig","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Jg","isMounted","_reactInternalFiber","enqueueSetState","Gg","Hg","Ig","enqueueReplaceState","enqueueForceUpdate","Kg","shouldComponentUpdate","isPureReactComponent","Lg","updater","Mg","Ng","Og","Pg","_owner","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","fh","gh","memoizedProps","revealOrder","ih","responder","jh","kh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useCallback","useState","useDebugValue","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","ReactCurrentOwner","Zh","$h","pendingContext","retryTime","unstable_avoidThisFallback","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","wasMultiple","onclick","createElementNS","WeakSet","__reactInternalSnapshotBeforeUpdate","_reactRootContainer","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","compareDocumentPosition","setStart","addRange","setEnd","vb","Uj","Vj","Wj","hidden","_ctor","Xj","_calculateChangedBits","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","querySelectorAll","Lj","lk","findFiberByHostInstance","supportsFiber","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","flushSync","unmountComponentAtNode","unstable_createPortal","unstable_renderSubtreeIntoContainer","__self","__source","IsSomeRendererActing","Fragment","Profiler","StrictMode","Suspense","_currentValue2","_threadCount","Consumer","createFactory","lazy","MessageChannel","unstable_forceFrameRate","port2","port1","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","hashClear","hashDelete","hashGet","hashHas","hashSet","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","secret","getShim","ReactPropTypes","instanceOf","objectOf","exact","checkPropTypes","isEqualImpl","_reactDom","_reactResizable","GridItem","newPosition","clientRect","cLeft","pLeft","cTop","pTop","_calcXY","getPositionParams","bottomBoundary","rightBoundary","_calcXY2","_this$state$dragging","_calcXY3","callbackData","onResizeHandler","oldPosition","moveDroppingItem","prevDroppingPosition","shouldDrag","mins","maxes","_calcWH","newChild","dropping","cssTransforms","mixinResizable","mixinDraggable","_require","Draggable","_DraggableCore","_positionFns","_log","dragged","uiData","slackX","slackY","_getBoundPosition2","newStateX","newStateY","_this$props$position","defaultPosition","prevPropsPosition","isElementSVG","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","draggableCoreProps","svgTransform","validPosition","getPrefix","browserPrefixToStyle","shouldCapitalize","kebabToTitleCase","eventsFor","move","dragEventFor","allowAnyClick","coreEvent","enableUserSelectHack","handleDrag","handleDragStop","_snapToGrid2","MouseEvent","initMouseEvent","handleDragStart","ResizableBox","__WEBPACK_EXTERNAL_MODULE__1__","__WEBPACK_EXTERNAL_MODULE__2__","installedModules","__webpack_require__","styleHacks","browserPrefix","_Resizable","propsWidth","propsHeight","_responsiveUtils","_ReactGridLayout","getIndentationValue","ResponsiveReactGridLayout","generateInitialState","_cols","colNo","onWidthChange","newBreakpoint","newCols","newLayouts","onBreakpointChange","xxs","ComposedComponent","onWindowResize","measureBeforeMount","baseRange","isIterateeCall","toFinite","fromRight","nativeCeil","validateGenerator","checkCompiling","compIndex","endCompiling","patternCode","patterns","defaultCode","refValCode","customRuleCode","vars","statement","patternsHash","defaultsHash","customRules","compilation","localCompile","cv","_schema","isRoot","resolveRef","usePattern","useCustomRule","makeValidate","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","refId","replaceLocalRef","removeLocalRef","inline","regexStr","valueStr","macro","sets","HEXDIG$$","PCT_ENCODED$","subexp","SUB_DELIMS$$","RESERVED$$","isIRI","SCHEME$","ALPHA$$","USERINFO$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","UNRESERVED$$","IPV6ADDRESS$","IP_LITERAL$","IPV6ADDRZ_RELAXED$","HOST$","PORT$","DIGIT$$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","QUERY$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","IPV4ADDRESS$","buildExps","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","digitToBasic","digit","adapt","firstTime","baseMinusTMin","inputLength","bias","basic","oldi","baseMinusT","ucs2decode","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","punycode","mapDomain","SCHEMES","newStr","decodeUnreserved","decStr","pctDecChars","host","address","zone","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","_normalizeIPv4","longestZeroFields","lastLongest","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","_normalizeIPv6","schemeHandler","uriTokens","$1","$2","RDS1","RDS2","RDS3","RDS5","authority","_recomposeAuthority","removeDotSegments","skipNormalization","IRI_PROTOCOL","URI_PROTOCOL","VCHAR$$","UNRESERVED","PCT_ENCODED","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","unknownHeaders","hfields","hfield","toAddrs","unescapeComponent","addr","toAddr","atIdx","localPart","URN_PARSE","urnComponents","scheme","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","mailto","urn","schemelessOptions","resolveComponents","typeOf","uriA","uriB","_traverse","pre","post","arrayKeywords","propsKeywords","skipKeywords","additionalItems","additionalProperties","allOf","anyOf","definitions","patternProperties","enum","exclusiveMaximum","exclusiveMinimum","multipleOf","minLength","maxItems","minItems","uniqueItems","maxProperties","minProperties","DAYS","TIME","HOSTNAME","URITEMPLATE","JSON_POINTER_URI_FRAGMENT","isLeapYear","full","timeZone","fast","hostname","ipv4","ipv6","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","Z_ANCHOR","ruleModules","ALL","implKeywords","custom","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","$wasComposite","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$useData","$prop","$propertyPath","$missingProperty","$vSchema","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","$additionalItems","$currErrSchemaPath","multipleOfPrecision","$allErrorsOption","$prevValid","$passingSchemas","$key","$dataProperties","$schemaKeys","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","$requiredHash","$pProperty","$additionalProperty","$useDefaults","$hasDefault","$invalidName","$propertySch","$loopRequired","$itemType","KEYWORDS","keywordsJsonPointers","loadSchema","loadMetaSchemaOf","_compileAsync","loadMissingSchema","schemaPromise","removePromise","definitionSchema","_addRule","ruleGroup","throwError","_validateKeyword","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","$parentDataProperty","def_callRuleValidate","modifying","def_customError","simpleTypes","msCrypto","rnds8","byteToHex","bth","getLens","validLen","placeHoldersLen","_byteLength","curByte","runtime","Op","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","mark","awrap","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","jsxDEV","jObj","asArray","hexRegex","numRegex","consider","decimalPoint","eNotation","trimZeros","trimmedStr","skipLike","numTrimmedByZeros","readPI","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","tagFound","reachedRoot","tagStartPos","closingTag","readAttributeStr","attrStrStart","validateAttributeString","tagClosed","otg","openPos","afterAmp","validateAmpersand","validAttrStrRegxp","attrNames","getPositionFromMatch","validateAttrName","validateNumberAmpersand","nilChar","missingChar","nilPremitive","missingPremitive","emptyChar","emptyValue","boundryChar","objStart","arrStart","arrayEnd","charsArr","e_schema","hasValidData","itemSchema","arr_len","arr_i","isAppChar","x2j","_cToJsonStr","indentBy","supressEmptyNode","isAttribute","attrPrefixLen","isCDATA","replaceCDATAstr","replaceCDATAarr","processTextOrObjNode","indentate","tagEndChar","newLine","buildTextNode","buildEmptyTextNode","buildObjNode","buildEmptyObjNode","buildTextValNode","buildObjectNode","j2x","rootNodeName","arrLen","Ks","inserted","pushNode","forEachReverse","getReverse","mapReverse","reduceReverse","toArrayReverse","sliceReverse","deleteCount","Alea","seed","mash","Mash","s0","prng","quick","XorGen","strseed","math","nodecrypto","startdenom","significance","seedrandom","shortseed","mixkey","typ","entropy","tostring","screen","autoseed","arc4","ARC4","is_math_call","keylen","smear","stringseed","_maxEntries","_minEntries","_all","_build","_splitRoot","_insert","_condense","_chooseSubtree","_split","_adjustParentBBoxes","_chooseSplitAxis","_chooseSplitIndex","_allDistMargin","TinyQueue","_down","_up","halfLength","best","pointInPolygonFlat","pointInPolygonNested","orient2dfast","arrayEach","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","cloneableTags","isFlat","isFull","isFunc","subValue","keysIn","copyObject","nativeKeysIn","isProto","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","reFlags","regexp","objectCreate","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","spreadableSymbol","isConcatSpreadable","otherArgs","baseSetToString","shortOut","nativeNow","lastCalled","stamp","arrayIncludes","arrayIncludesWith","createSet","isCommon","outer","computed","baseFindIndex","baseIsNaN","strictIndexOf","fromIndex","valuesLength","valuesIndex","DESCRIPTORS","getKeys","gOPS","$assign","aLen","isEnum","toAbsoluteIndex","IS_INCLUDES","$this","toInteger","$at","iterated","TO_STRING","ObjectProto","TO_STRING_TAG","DOMIterables","addToUnscopables","_k","Arguments","META","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$JSON","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","findChild","setSymbolDesc","protoDesc","$defineProperty","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","NEED","fastKey","getWeak","onFreeze","windowNames","getWindowNames","buggy","_common","_AlphaPointer2","pointer","_ref$className","picker","Alpha","flattenNames","_isString3","_forOwn3","_isPlainObject3","_map3","things","thing","baseMatches","baseMatchesProperty","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","isStrictComparable","hasIn","memoizeCapped","subString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","eachFunc","mergeClasses","_cloneDeep3","toMerge","autoprefix","_forOwn2","msBorderRadius","MozBorderRadius","OBorderRadius","WebkitBorderRadius","msBoxShadow","MozBoxShadow","OBoxShadow","WebkitBoxShadow","WebkitTouchCallout","KhtmlUserSelect","MozUserSelect","msUserSelect","WebkitUserSelect","WebkitBoxFlex","MozBoxFlex","flexBasis","WebkitFlexBasis","WebkitJustifyContent","msTransition","MozTransition","OTransition","WebkitTransition","otherElementStyles","otherStyle","Span","Hover","handleMouseOver","handleMouseOut","Active","_Checkboard2","calculateChange","unbindEventListeners","initialA","pageXOffset","pageYOffset","checkboardCache","serverCanvas","fillRect","toDataURL","EditableInput","VALID_KEY_CODES","blurValue","setUpdatedValue","getNumberValue","getArrowOffset","updatedValue","dragLabel","dragMax","getValueObjectWithLabel","arrowOffset","getIsPercentage","spellCheck","hideLabel","Hue","_props$direction","_h","Raised","_propTypes2","_merge2","zDepth","_ref$styles","passedStyles","assignMergeValue","baseMergeDeep","safeGet","toPlainObject","mergeFunc","isTyped","assigner","Saturation","_throttle2","saturation","_container$getBoundin","bright","Swatch","_interaction","_ref$onClick","_ref$title","_ref$focusStyle","focusStyle","transparent","swatch","AlphaPointer","_BlockSwatches2","triangle","hexCode","card","borderWidth","borderColor","BlockSwatches","_map2","swatches","Circle","_CircleSwatch2","circleSize","circleSpacing","flexWrap","CircleSwatch","_reactcss","_ChromeFields2","_ChromePointer2","_ChromePointerCircle2","disableAlpha","controls","toggles","ChromeFields","_UnfoldMoreHorizontalIcon2","toggleViews","showHighlight","hideHighlight","toggle","iconHighlight","svg","_ref$fill","_ref$width","_ref$height","_ref$style","ChromePointer","ChromePointerCircle","Compact","_CompactColor2","_CompactFields2","CompactColor","CompactFields","HEXwrap","HEXinput","HEXlabel","RGBwrap","RGBinput","RGBlabel","Github","_GithubSwatch2","borderBottomColor","triangleShadow","GithubSwatch","hoverSwatch","_HuePointer2","SliderPointer","Material","borderBottom","Hex","third","Photoshop","_PhotoshopFields2","_PhotoshopPointerCircle2","_PhotoshopPointer2","_PhotoshopButton2","_PhotoshopPreviews2","currentColor","_props$styles","_props$className","backgroundImage","previews","onAccept","onCancel","fieldSymbols","PhotoshopPointerCircle","triangleBorder","Extend","leftInside","rightInside","PhotoshopButton","PhotoshopPreviews","new","Sketch","_SketchFields2","_SketchPresetColors2","presetColors","sliders","activeColor","SketchFields","single","SketchPresetColors","borderTop","swatchWrap","handleClick","colorObjOrString","Slider","_SliderSwatches2","_SliderPointer2","SliderSwatches","_SliderSwatch2","SliderSwatch","Swatches","_SwatchesGroup2","SwatchesGroup","_SwatchesColor2","SwatchesColor","_CheckIcon2","Twitter","hexcode","_EventBaseObject2","_objectAssign2","commonProps","isNullOrUndefined","eventNormalizers","fix","HORIZONTAL_AXIS","VERTICAL_AXIS","eventDoc","clientLeft","clientTop","retTrue","retFalse","DomEventObject","isNative","getPreventDefault","fixFns","normalizer","fixFn","EventBaseObjectProto","returnFalse","returnTrue","EventBaseObject","isEventObject","isImmediatePropagationStopped","halt","immediate","nearest_point_on_line_1","concatSegment","overlapSegment","doesOverlaps","coordsSegment","coordsMatch","_initFormat","findItem","equalsFn","calcBBox","distBBox","destNode","compareNodeMinX","compareNodeMinY","bboxArea","bboxMargin","intersectionArea","multiSelect","childBBox","nodesToSearch","tmpNode","goingUp","indexes","right2","right3","N2","N1","targetNode","enlargement","minArea","minEnlargement","isNode","insertPath","newNode","minOverlap","leftBBox","rightBBox","siblings","compareArr","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","hasToStringTag","isStandardArguments","isLegacyArguments","supportsStandardArguments","numberIsNaN","regexExec","tryRegexExecCall","ERROR_MESSAGE","binder","boundLength","boundArgs","callBind","getPolyfill","flagsBound","$Function","GetIntrinsic","$apply","$call","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","asyncGenIterator","INTRINSICS","Atomics","decodeURI","encodeURI","EvalError","SharedArrayBuffer","URIError","$replace","getBaseIntrinsic","allowMissing","origSymbol","hasSymbolSham","symObj","syms","TypeErr","tryDateObject","Equality","pseudoNode","objectComparator","explode","sameLength","g1","g2","obj1","obj2","compareCoord","compareLine","comparePolygon","compareFeature","g1s","g2s","g1part","g2part","path1","ind","isPoly","removePseudo","fixStartIndex","sameDirection","comparePath","sourcePath","targetPath","correctPath","holes1","holes2","compareBBox","geoJson","JunctionsLayer","updateTrigger","JunctionScatterplotLayer","toDeckColor","getStrokeColor","getInnerRadius","nebulaLayer","ResizeCircleMode","numberOfSteps","getAddManyFeaturesAction","ExtendLineStringMode","getSelectedGeometry","selectedLineString","getSingleSelectedLineString","distanceFromOrigin","lastBearing","currentDistance","lastPoint","approximatePoint","generatePointsParallelToLinePoints","calculateMapCoords","isLineInterectingWithPolygon","gap","updatedCoordinates","agg","coordinatesSize","isPointAdded","nextPositionIndexes","getPointForPositionIndexes","prevPositionIndexes","isOrthogonal","nextPoint","prevAngle","getBearing","nextAngle","defaultCalculateElevationChange","minElevation","maxElevation","calculateElevationChange","makeElevatedEvent","updatedCursor","scaleMode","translateMode","filteredModes","compositeGuides","rotateMode","nonEnvelopeGuides","guide","guidesToFilterOut","lineStringToAdd","rectangle","coord4","distance1","distance2","shortestDistance","newPoint","square","centerCoordinates","polygonPoints","finalizedCoordinates","fakePointerMoveEvent","getIntermediatePoint","angle1","angle2","angles","newAngle1","newAngle2","handleDraggingThrottled","MeasureDistanceMode","positionA","positionB","turfOptions","measurementCallback","_calculateDistanceForTooltip","_formatTooltip","clickSequenceLength","getClickSequence","_currentDistance","MeasureAreaMode","propsWithoutEdit","tentativeGuide","MeasureAngleMode","_getTooltips","snapSource","snapTarget","getPickedSnapSourceEditHandle","snapSourceHandle","snapSourceFeature","additionalSnapTargets","_getSnapTargets","enableSnapping","_handler","_getPickedSnapSource","_getSnapTargetHandles","_getUpdatedSnapSourceHandle","_getPickedSnapTarget","_getSnappedMouseEvent","_getSnapAwareEvent","EMPTY_FEATURE_COLLECTION","getEditedCluster","hexIds","updatedHexagons","EditableH3ClusterLayer","tentativeHexagonIDs","hexIDs","hexID","committedHexagonIDs","finalHexagonIDs","existingCluster","cumulativeHexIDs","selectedCluster","MODE_MAP","MODE_CONFIG_MAP","dragToDraw","EMPTY_DATA","PASS_THROUGH_PROPS","SelectionLayer","pendingPolygonSelection","blockerId","inheritedProps","ElevatedEditHandleLayer","getStrokeWidth","INITIAL_STATE","DEFAULT_MARKER_LAYER","DEFAULT_MARKER_LAYER_PROPS","Arrow2DGeometry","headSize","tailWidth","MarkerLayer","markerLayerProps","hightlightIndex","highlightPoint","getMarkerColor","getMarkerPercentages","PathMarkerLayer","markers","highlightIndex","getClosestPointOnPolyline","getArrowAttributes","tailStart","vPoints","Vector2","vPointsReverse","getLineLength","percentage","createMarkerAlongPath","DEFAULT_DIRECTION","forward","backward","distanceAlong","previousDistance","along","vCenter","vDirection","vDirection2","pClosest","pClosestOnLine","getClosestPointOnLine","distanceToLineSquared","clampToLine","lineVector","pointVector","groundCoords","TextsLayer","NEBULA_TO_DECK_DIRECTIONS","SegmentsLayer","enablePicking","noBlend","dashed","arrowPercentages","MAX_ARROWS","deckglMouseOverInfo","originalLayer","arrowSize","_getHighlightedObjectIndex","Nebula","proxyEvent","_mouseWasDown","onMapMouseEvent","eventFilter","sendMapEvent","_deckDrawer","getMouseGroundPosition","pickingInfo","deckLayer","nebulaMouseEvent","getAllLayers","mainContainer","doccy","topLevel","minDoc","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","getBlob","version1","version2","hasPre","defaultResult","rtl","COERCERTL","maxSV","rangeObj","minSV","minver","setMin","compver","r2","simplified","simpleSubset","dom","gtltComp","eqSet","higherGT","lowerLT","higher","hasDomLT","hasDomGT","needDomLTPre","needDomGTPre","sawNonNull","OUTER","simpleSub","simpleDom","isSub","_nodeId","_clockseq","_lastMSecs","_lastNSecs","clockseq","seedBytes","msecs","nsecs","tmh","hashfunc","generateUUID","namespace","unescape","stringToBytes","uuidToBytes","DNS","safeAdd","lsw","md5cmn","md5ff","md5gg","md5hh","md5ii","md5","v35","length32","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","bytesToWords","ROTL","sha1","booleanClockwise","rewindLineString","rewind","isPoint","defineOrigin","originalDistance","newDistance","newCoord","originIsPoint","travelled","overshot","measureDistance","transformTranslate","zTranslation","poly1","poly2","unioned","calculateArea","ringArea","lowerIndex","middleIndex","upperIndex","coordsLength","pickingHighlightColor","selectedColor","IconButton","_props$edge","_props$disableFocusRi","disableFocusRipple","_props$size","edgeStart","edgeEnd","colorInherit","sizeSmall","_props$disablePortal","disablePortal","onRendered","mountNode","setMountNode","defaultVariantMapping","Typography","_props$display","_props$gutterBottom","gutterBottom","_props$noWrap","noWrap","_props$paragraph","_props$variant","variant","_props$variantMapping","variantMapping","srOnly","alignLeft","alignCenter","alignRight","alignJustify","textOverflow","whiteSpace","colorTextPrimary","colorTextSecondary","displayInline","displayBlock","EOL","EOF","objectConverter","inferColumns","columnSet","formatDate","hours","minutes","reFormat","DELIMITER","parseRows","preformatBody","formatRow","customConverter","formatBody","formatRows","__VERSION__","checkIfBrowser","getStorage","storage","updateConfiguration","serialized","serializedConfiguration","formatImage","imageUrl","BLACK","GREEN","YELLOW","BLUE","MAGENTA","CYAN","WHITE","BRIGHT_BLACK","BRIGHT_RED","BRIGHT_GREEN","BRIGHT_YELLOW","BRIGHT_BLUE","BRIGHT_MAGENTA","BRIGHT_CYAN","BRIGHT_WHITE","autobind","predefined","propNames","originalConsole","ONCE","getTableHeader","_storage","_getLogFunction","_shouldLog","logImageInBrowser","asciify","fit","logImageInNode","normalizeArguments","normalizeLogLevel","decorateMessage","resolvedLevel","messageType","padLength","leftPad","formatted","Log","multiKeyStore","key1","key2","subCache","indexCounter","increment","getStylesCreator","themingEnabled","stylesWithOverrides","noopTheme","getClasses","disableGeneration","cacheClasses","lastProp","lastJSS","generate","baseClasses","newClasses","stylesCreator","sheetManager","sheetsManager","staticSheet","dynamicStyles","serverGenerateClassName","generateClassName","sheetsRegistry","sheetsCache","dynamicSheet","useSynchronousEffect","currentKey","classNamePrefixOption","_options$defaultTheme","stylesOptions2","StylesContext","Transition","initialStatus","appearStatus","unmountOnExit","mountOnEnter","nextCallback","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onExit","onExiting","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","makeStylesWithoutDefault","nextClasses","pseudoClasses","createGenerateClassName","_options$disableGloba","disableGlobal","_options$productionPr","productionPrefix","_options$seed","seedPrefix","getNextCounterId","valueof","_getVaryingIndex","_getBufferParams","primitiveMode","bufferOrParams","getVaryingInfo","channelHandles","animationHandles","rate","channel","animationHandle","channelHandle","lastEngineTime","engineTime","offsetTime","CircularProgress","_props$disableShrink","disableShrink","_props$thickness","thickness","_props$value","circleStyle","rootStyle","rootProps","circumference","determinate","indeterminate","SIZE","circleDisableShrink","circleDeterminate","circleIndeterminate","circleStatic","stroke","transformOrigin","getAnchorEl","anchorEl","defaultPopperOptions","_props$keepMounted","keepMounted","initialPlacement","_props$popperOptions","popperOptions","popperRefProp","popperRef","_props$transition","tooltipRef","ownRef","handlePopperRef","handlePopperRefRef","exited","setExited","rtlPlacement","flipPlacement","setPlacement","handleOpen","handlePopperUpdate","PopperJs","preventOverflow","onCreate","handleClose","TransitionProps","mapEventPropToEvent","eventProp","ClickAwayListener","_props$disableReactTr","disableReactTree","_props$mouseEvent","mouseEvent","onClickAway","_props$touchEvent","touchEvent","movedRef","activatedRef","syntheticEventRef","handleClickAway","insideReactTree","clickedRootScrollbar","insideDOM","composedPath","createHandleSynthetic","childrenPropsHandler","childrenProps","mappedTouchEvent","mappedMouseEvent","entering","entered","defaultTimeout","Fade","_props$disableStrictM","disableStrictModeCompat","_props$TransitionComp","TransitionComponent","_props$timeout","enableStrictModeCompat","unstable_strictMode","foreignRef","normalizedTransitionCallback","nodeOrAppearing","isAppearing","handleEntering","handleEnter","webkitTransition","handleEntered","handleExiting","handleExit","Paper","_props$square","_props$elevation","outlined","Link","TypographyClasses","_props$underline","underline","handlerRef","underlineNone","underlineHover","underlineAlways","CUBE_INDICES","CUBE_POSITIONS","CUBE_NORMALS","CUBE_TEX_COORDS","ATTRIBUTES","POSITIONS","TEX_COORDS","aClipSpacePosition","aTexCoord","aCoordinate","TableContainer","_props$padding","_props$stickyHeader","stickyHeader","borderCollapse","borderSpacing","captionSide","tablelvl2","TableBody","TableRow","_props$hover","_props$selected","footer","TableCell","paddingProp","scopeProp","scope","variantProp","isHeadCell","ariaSort","paddingCheckbox","paddingNone","flexDirection","AccordionDetails","AccordionSummary","expandIcon","_props$IconButtonProp","IconButtonProps","_React$useContext","_React$useContext$dis","focused","SPACINGS","GRID_SIZES","_props$alignContent","alignContent","_props$alignItems","classNameProp","_props$container","_props$item","justify","_props$justifyContent","_props$lg","_props$md","_props$sm","_props$spacing","_props$wrap","_props$xl","_props$xs","_props$zeroMinWidth","zeroMinWidth","StyledGrid","themeSpacing","generateGutter","accumulator","globalStyles","generateGrid","FormControl","_props$error","_props$fullWidth","fullWidth","visuallyFocused","_props$hiddenLabel","hiddenLabel","_props$margin","_props$required","initialAdornedStart","adornedStart","setAdornedStart","initialFilled","setFilled","_React$useState3","_focused","setFocused","onFilled","childContext","onEmpty","registerEffect","marginNormal","marginDense","Button","_props$disableElevati","disableElevation","endIconProp","endIcon","startIconProp","startIcon","textPrimary","textSecondary","outlinedPrimary","outlinedSecondary","contained","containedPrimary","containedSecondary","textSizeSmall","textSizeLarge","outlinedSizeSmall","outlinedSizeLarge","containedSizeSmall","containedSizeLarge","sizeLarge","iconSizeSmall","iconSizeMedium","iconSizeLarge","Tab","indicator","selectionFollowsFocus","_props$textColor","textColor","_props$wrapped","labelIcon","_extends2","textColorInherit","textColorPrimary","textColorSecondary","ThemeProvider","localTheme","outerTheme","mergeOuterLocalTheme","shallowEqual","aKeys","bKeys","__extends","extendStatics","_hasOwnProperty","_objectKeys","_deepClone","escapePathComponent","unescapePathComponent","patchErrorMessageFormatter","messageParts","PatchError","_newTarget","JsonPatchError","deepClone","objOps","newDocument","removed","getValueByPointer","originalValue","applyOperation","valueToCopy","_areEquals","_get","arrOps","getOriginalDestination","validateOperation","mutateDocument","banPrototypeModifications","existingPathFragment","validateFunction","applyPatch","length_1","applyReducer","operationResult","hasUndefined","objKeys","objKeysLength","pathLen","existingPathLen","externalValidator","arrA","arrB","beforeDict","Mirror","ObserverInfo","mirror","getMirror","observerInfo","getObserverFromMirror","dirtyCheck","fastCheck","patches","removeObserverFromMirror","invertible","_generate","newKeys","oldKeys","deleted","oldVal","newVal","tree1","tree2","duplex","UniqueList","idFunc","asyncCallback","TUPLE_ID_KEY","TUPLE_ID","isTuple","tupleid","setid","ingest$1","derive","rederive","stableCompare","isChangeSet","changeset","remp","modp","tuple","pulse","tuples","modifies","Parameters","modified","OP_ID","NO_PARAMS","Operator","qrank","_update","targets","_targets","initonly","argval","_argval","argops","_argops","marshall","evaluate","StopPropagation","rv","STREAM_ID","EventStream","_filter","_apply","_pending","loadPending","requests","_consume","trg","dataflow","SKIP","onStream","onOperator","connect","Pulse","materialize","visit","addFilter","MultiPulse","pulses","ADD","REM","MOD","changes","prerun","postrun","_pulse","reentrant","_touched","_clock","_enqueue","_heap","_getPulse","_postrun","runAsync","_running","ADD_REM","ADD_MOD","REFLOW","SOURCE","NO_SOURCE","NO_FIELDS","fork","addF","remF","modF","srcF","cleans","runAfter","nomod","NO_OPT","Heap","siftdown","ridx","cidx","siftup","pidx","Dataflow","_rank","_locale","logMethod","cleanThreshold","targetRank","rerank","ingest","preload","singlePulse","Definition","numbers","quantile","value0","variance","quantiles","quantileSorted","quartiles","estimateBandwidth","minstep","maxb","logb","nice","setRandom","bootstrapCI","mu","dotbin","thresh","pdf","cdf","icdf","SQRT2PI","SQRT2","nextSample","sampleNormal","stdev","rds","densityNormal","cumulativeNormal","quantileNormal","erfinv","gaussian","sigma","kde","bandwidth","kernel","sampleLogNormal","densityLogNormal","cumulativeLogNormal","quantileLogNormal","lognormal","mixture","dists","weights","distributions","sampleUniform","densityUniform","cumulativeUniform","quantileUniform","ols","uX","uY","uXY","uX2","xv","yv","visitPoints","rSquared","SSE","SST","sse","sst","linear","XY","X2","ly","YL","XYL","X2Y","YS","X3","X4","X2X2","lhs","rhs","gaussianElimination","uncenter","loess","yhat","residuals","robustWeights","xk","yk","tricube","xkw","updateInterval","medianResidual","MIN_RADIANS","sampleCurve","minSteps","maxSteps","sx","ymin","pm","angleDelta","groupkey","measureName","as","base_op","AggregateOps","__count__","missing","mean_d","req","dev","variancep","stdevp","stderr","distinct","ci0","ci1","argmin","argmax","ValidAggregateOps","createMeasure","compareIndex","_ops","compileMeasures","getreqs","ctr","TupleStore","prototype$1","Aggregate","_adds","_mods","_alen","_mlen","_drop","_cross","_dims","_dnames","_measures","_countOnly","_counts","_prev","_inputs","_outputs","_add","_rem","_ext","_q","quartile","_ci","aggr","vals","collect","cells","inputs","outputs","inputMap","inputVisit","groupby","dname","cellkey","mname","outname","newcell","newtuple","measures","celltuple","counts","adds","mods","Bin","SortedList","resort","Collect","Compare","update$5","CountPattern","Cross","band","bins","_bins","tcase","tokenize","case","_parameterCheck","_match","_stop","_finish","stopwords","_tuples","Distributions","randomKDE","randomMixture","randomNormal","randomLogNormal","randomUniform","Density","fieldNames","partition$1","distribution","minsteps","maxsteps","DotBin","Expression","update$4","Extent","Subflow","Facet","_keys","update$3","Filter","Flatten","Fold","Formula","Generate","autostep","detachSubflow","activate","subflow","flows","_group","detached","initTargets","act","rekey","k0","k1","isMod","revisit","maxlen","fnames","Methods","Impute","JoinAggregate","KDE","Key","update$2","Load","Lookup","MultiExtent","update$1","extents","MultiValues","Params","Pivot","PreFacet","Project","Quantile","gVals","kVal","impute","getField","fName","kName","gNames","keyvals","gKey","kMap","gMap","partition","_impute","cumulative","pivotKeys","aggregateParams","Relay","Sample","Sequence","Sieve","TimeUnit","probs","OUTPUT","TupleIndex","Values","utc","timezone","_floor","timeBin","tunits","WindowOps","row_number","dense_rank","drank","percent_rank","cume_dist","cume","ntile","lag","first_value","last_value","nth_value","nth","prev_value","next_value","ValidWindowOps","WindowState","windows","countOnly","visitInputs","WindowOp","Window","processPartition","ignorePeers","setWindow","adjustRange","bisect","wind","bezierCurveTo","_x0","_x1","_y0","_y1","Basis","areaStart","areaEnd","BasisClosed","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bundle","_basis","_beta","_x","_y","bundle","Cardinal","tension","cardinal","CardinalOpen","CardinalClosed","_x5","_y5","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","Linear","LinearClosed","slope3","h0","slope2","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","_t0","Step","tauEpsilon","Path","quadraticCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","x10","y10","x32","y32","cornerTangents","ox","oy","x11","y11","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","curveLinear","defined0","pointX","pointY","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","kr","domCanvas","domImage","bisectRight","initRange","initInterpolator","implicit","ordinal","ticks","tickIncrement","formatDecimal","tickFormat","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgbConvert","rgb_formatHex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","basis","displayable","formatHsl","brighter","darker","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","rgbBasis","rgbBasisClosed","basisClosed","isNumberArray","numberArray","genericArray","reA","reB","am","bm","bs","bimap","polymap","untransform","piecewise","interpolateValue","clamper","interpolateNumber","rangeRound","interpolateRound","continuous","linearish","prestep","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","logp","powp","transformPow","transformSqrt","transformSquare","powish","transformSymlog","transformSymexp","symlogish","ticker","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","k10","sequential","sequentialPow","k21","divergingPow","svgNode","translateX","translateY","skewX","interpolateTransform","pxComma","pxParen","degParen","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","baseVal","consolidate","zoomRho","rho4","ux0","uy0","ux1","uy1","coshr0","_1","_2","colorHsl","hslLong","deg2rad","rad2deg","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab","lab2xyz","lrgb2rgb","hclConvert","hcl","colorLab","colorHcl","hclLong","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","cubehelix","cubehelixGamma","colorCubehelix","cubehelixLong","bandSpace","paddingInner","paddingOuter","Time","Continuous","scaleOrdinal","ordinalRange","range$1","invertRange","scales","invertExtent","invertRangeExtent","isValidScaleType","hasType","isContinuous","isDiscrete","isDiscretizing","isLogarithmic","isInterpolating","isQuantile","scalePow","scaleSequential","sequentialLog","scaleSequentialPow","sequentialSymlog","diverging","divergingLog","scaleDivergingPow","divergingSymlog","thresholds","quantize","scaleBinOrdinal","tickFormat$1","pointish","scaleProps","interpolateRange","interpolateColors","quantizeInterpolator","scaleFraction","scale$1","interp","schemes","category10","category20","category20b","category20c","tableau10","tableau20","accent","dark2","paired","pastel1","pastel2","set3","blues","greens","greys","oranges","purples","reds","blueGreen","bluePurple","greenBlue","orangeRed","purpleBlue","purpleBlueGreen","purpleRed","redPurple","yellowGreen","yellowOrangeBrown","yellowOrangeRed","blueOrange","brownBlueGreen","purpleGreen","purpleOrange","redBlue","redGrey","yellowGreenBlue","redYellowBlue","redYellowGreen","pinkYellowGreen","spectral","viridis","magma","inferno","plasma","cividis","rainbow","sinebow","turbo","browns","tealBlues","teals","warmGreys","goldGreen","goldOrange","goldRed","lightGreyRed","lightGreyTeal","lightMulti","lightOrange","lightTealBlue","darkBlue","darkGold","darkGreen","darkMulti","darkRed","defaultFormatter","descending","tickCount","minStep","validTicks","endpoints","tickValues","noSkip","varfmt","tickLog","labelValues","binValues","thresholdValues","labelFormat","thresholdFormat","isDiscreteRange","formatRange","formatDiscrete","formatPoint","dflt","domainCaption","gradient_id","isGradient","gradientRef","defs","Gradient","stops","curveBundle","curveCardinal","curveCardinalOpen","curveCardinalClosed","curveCatmullRom","curveCatmullRomClosed","curveCatmullRomOpen","curves","cmdlen","pathParse","pathstr","DegToRad","HalfPi","Tau","HalfSqrt3","segmentCache","bezierCache","bezier","th0","th1","sin_th","cos_th","cos_th0","sin_th0","cos_th1","sin_th1","th_half","sin_th_h2","sX","sY","pathRender","tempX","tempY","tempControlX","tempControlY","controlX","controlY","beginPath","drawArc","large","pl","sfactor_sq","sfactor","th_arc","segs","th2","th3","bez","Tan30","builtins","customSymbol","rectangleX","rectangleY","rectangleWidth","rectangleHeight","vg_rect","crTL","crTR","crBL","crBR","path$3","cornerRadius","vg_trail","trail","value$1","arcShape","padRadius","da0","da1","ap","rp","rc0","rc1","arc$2","areavShape","area$2","areahShape","lineShape","line$2","rectShape","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomRight","cornerRadiusBottomLeft","symbolShape","symbol$2","trailShape","hasCornerRadius","clip_id","resetSVGClipId","clip$1","_defs","clipping","Bounds","GroupItem","ResourceLoader","customLoader","decrement","boundStroke","miter","strokeJoin","miterAdjustment","rotatedPoints","encloses","alignsWith","image$1","cors","circleThreshold","addL","addX","addY","addp","addpL","boundContext","context$1","px1","py1","px2","py2","quadExtrema","px3","py3","cubicExtrema","cubic","intersectPath","brush","isPointInPath","intersectPoint","intersectRect","intersectRule","intersectBoxLine","globalCompositeOperation","addStops","addColorStop","createRadialGradient","ictx","createLinearGradient","createPattern","globalAlpha","lw","strokeStyle","lineCap","strokeCap","lineJoin","strokeMiterLimit","setLineDash","strokeDash","lineDashOffset","strokeDashOffset","zindex","zorder","zdirty","zitems","pickVisit","drawAll","drawPath","pick$1","gx","gy","hitPath","isPointInStroke","pickPath","translateItem","markItemPath","isect","rotateItem","markMultiItemPath","tip","clipGroup","offset$1","strokeOffset","emitRectangle","rectanglePath","hitBackground","hitForeground","hitCorner","noBound","fore","strokeForeground","save","restore","dw","interactive","marktype","pickMark","imageWidth","imageHeight","imageXOffset","imageYOffset","baseline","ar0","ar1","imageSmoothingEnabled","drawImage","path$1","pathCache","path$2","transformItem","draw$2","widthCache","measureWidth","estimateWidth","useCanvas","_estimateWidth","textValue","currentFontHeight","_measureWidth","currentFont","textLines","lineBreak","multiLineOffset","widthGetter","fontStyle","fontVariant","tempBounds","anchorPoint","Marks","strokeText","boundItem","DUMMY","boundMark","hasItems","sceneToJSON","sceneFromJSON","Scenegraph","createMark","aria","domCreate","domFind","domChild","domClear","cssClass","customTooltip","_handlers","_tooltip","defaultTooltip","_el","_bgcolor","markdef","_origin","_scene","_handlerIndex","handleHref","handleTooltip","show","mdef","resolveItem","getItemBoundingClientRect","resize","bgcolor","dirty","_render","renderAsync","_ready","_load","DragLeaveEvent","MouseDownEvent","MouseMoveEvent","MouseOutEvent","ClickEvent","TooltipShowEvent","TooltipHideEvent","HrefEvent","CanvasHandler","_touch","_first","eventListenerCheck","eventBundle","fire","moveEvent","overEvent","outEvent","pickEvent","inactive","DOMMouseScroll","dragover","dragleave","vegaType","CanvasRenderer","_options","_redraw","_dirty","_tempb","base$1","SVGHandler","_hrefHandler","_tooltipHandler","externalContext","inDOM","clipToBounds","_svg","roledesc","AriaIgnore","AriaGuides","extractTitle","channelCaption","titleCaption","AriaEncode","ariaRole","ariaRoleDescription","ariaItemAttributes","ariaMarkAttributes","ariaGuide","ariaMark","markup","serializeXML","_serialize","hasAttributes","hasChildNodes","rootAttributes","xmlns","svgns","SVGRenderer","_dirtyID","dirtyParents","updateGradient","grad","setAttributes","preserveAspectRatio","updateClipping","__values__","ownerSVGElement","siblingCheck","_clearDefs","RootIndex","_dirtyCheck","_dirtyAll","isDirty","isGroup","mark_extras","setStyle","removeAttributeNS","SVGStringRenderer","_text","class","attrList","_hrefs","RenderType","Canvas","PNG","SVG","renderModule","hits","intersectMark","intersectGroup","visitMark","intersectItem","marks","headless","boundClip","sceneEqual","pathEqual","objectEqual","resetSVGDefIds","Top","End","Row","Bound","rebound","markBounds","Identifier","Mark","Overlap","_signals","Init","parity","greedy","sep","hasBounds","Render","separation","boundScale","boundTolerance","boundTest","boundOrient","isYAxis","axisLayout","axisIndices","titlePadding","dl","axisTitleLayout","auto","bboxFlush","bboxFull","offsetValue","gridLayout","nodirty","alignCol","alignRow","padCol","padRow","ncols","nrows","xExtent","xMax","yExtent","yMax","boxes","trellisLayout","rowheaders","rowfooters","colheaders","colfooters","rowtitle","coltitle","gridLayoutGroups","boundFlush","boundFull","headerBand","layoutHeaders","footerBand","titleAnchor","titleBand","layoutTitle","legendParams","lookup$1","legends","legendLayout","legend","ey","tpad","ty","legendTitleOffset","legendGroupLayout","legendBounds","widths","legendEntryLayout","noBar","vgrad","ViewLayout","viewBounds","xBounds","yBounds","autosize","subtitle","titleLayout","_autosize","viewWidth","viewHeight","_resizeView","viewSizeLayout","layoutGroup","AxisTicks","DataJoin","defaultItemCreate","Encode","LegendEntries","newMap","fmod","encoders","reenter","fraction","lskip","adjust","labelFraction","perc2","LinkPath","Paths","ss","Pie","includePad","Scale","domainCheck","adjustScheme","SortItems","Sequential","isContinuousColor","rawDomain","domainMid","Diverging","scaleKey","rangeStep","configureRangeStep","scheme$1","schemeExtent","interpolateGamma","schemeCount","configureScheme","interpolate$1","configureRange","domainRaw","configureBins","includeZero","padDomain","domainMin","domainMax","domainImplicit","scaleImplicit","configureDomain","DefOutput","stackCenter","stackNormalize","stackZero","lastPos","lastNeg","_partials","areaSum","areaRingSum","areaRingStart","areaRingEnd","areaPointFirst","areaPoint","X0","Y0","Z0","X1","Y1","Z1","Y2","Z2","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroidPointFirstLine","centroidPointLine","centroidPointFirstRing","centroidPointRing","lengthRing","lengthSum","lengthStream","lengthPointFirst","lengthPoint","projectionStream","contextStream","pathArea","pathMeasure","pathBounds","pathCentroid","clipRejoin","clipRectangle","fitWidth","fitHeight","scaleTranslateRotate","scaleTranslate","cosAlpha","sinAlpha","projectRotateTransform","reflectX","reflectY","conicProjection","parallels","conicEqualAreaRaw","sy0","cylindricalEqualAreaRaw","r0y","conicEqualArea","mercatorProjection","reclip","tany","conicConformalRaw","conicEquidistantRaw","nx","A1","A2","A3","A4","equalEarthRaw","l6","sqrt2","SQRT1_2","mollweideBromleyTheta","cpsinPhi","mollweideRaw","mollweideBromleyRaw","defaultPath","geoPath","projectionProperties","projections","getProjectionPath","albers","geoAlbers","albersusa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","albersUsa","streams","multiplex","azimuthalequalarea","azimuthalequidistant","conicconformal","conicequalarea","geoConicEqualArea","conicequidistant","equalEarth","equirectangular","gnomonic","mollweide","naturalEarth1","stereographic","transversemercator","graticuleX","graticuleY","graticule","DX","DY","extentMajor","extentMinor","stepMajor","stepMinor","cases","contours","smoothLinear","tz","contour","isorings","_0","ringContains","pj","segmentContains","collinear","Isocontour","transformRing","bandwidthNRD","density2D","values0","values1","blurX","blurY","sz","KDE2D","transformPaths","PARAMS","Contour","GeoJSON","GeoPath","GeoPoint","GeoShape","Graticule","geoGraticule","Heatmap","dependency","$x","$y","$value","$max","Projection","lon","initPath","shapeGenerator","dep","opacity_","color_","can","pix","putImageData","toCanvas","featurize","collectGeoJSON","nodeById","nodeId","ForceMap","collide","ri2","quadtree","visitAfter","prepare","jiggle","_random","nbody","strengths","distanceMin2","distanceMax2","theta2","accumulate","distanceMin","distanceMax","links","initializeStrength","initializeDistance","xz","ForceParams","ForceConfig","ForceOutput","Force","sim","getForce","numForces","setForceParam","iters","forceSimulation","objectChildren","childs","eachBefore","computeHeight","copyData","eachAfter","ancestor","aNodes","bNodes","leastCommonAncestor","descendants","leaves","node_iterator","circles","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","r21","r3","place","score","packEnclose","sk","enclose","constantZero","defaultRadius","radiusLeaf","packChildren","translateChild","preroot","ambiguous","defaultParentId","stratify","nodeKey","nodeByKey","defaultSeparation","nextLeft","nextRight","moveSubtree","wm","wp","nextAncestor","vim","meanXReduce","maxYReduce","squarifyRatio","sumValue","newRatio","minRatio","dice","treemapDice","treemapSlice","squarify","resquarify","_squarify","Nest","nest","keyValue","valuesByKey","HierarchyLayout","setParams","setFields","Output","Pack","Output$1","Partition","Stratify","positionNode","roundNode","parentKey","Layouts","tidy","nodeSize","treeRoot","firstWalk","secondWalk","sizeNode","executeShifts","vip","vop","vom","sip","sop","som","apportion","cluster","previousNode","meanX","leafLeft","leafRight","Output$2","TreeLinks","Tiles","sums","valueTarget","valueLeft","valueRight","slicedice","treemapSquarify","treemapResquarify","Output$3","Treemap","paddingStack","treemap","markBitmaps","avoidMarks","labelInside","isGroupArea","layer1","layer2","RIGHT0","RIGHT1","scaler","_set","_clear","getRange","indexEnd","setRange","clearRange","outOfBounds","Bitmap","textHeight","_outOfBounds","bm0","bm1","_collision","getTests","infPadding","X_DIR","Y_DIR","Aligns","Baselines","isInMarkBound","anchorCode","TOP","MIDDLE","BOTTOM","placeAreaLabel","bitmaps","avoidBaseMark","markIndex","areaWidth","maxAreaWidth","tryLabel","_xMid","_yMid","swapTmp","labelPlaced","labelPlaced2","bm2","labelLayout","lineAnchor","getOffsets","anchors","getAnchors","grouptype","markBoundary","isNaiveGroupArea","baseBitmaps","sizeFactor","insideFactor","placeMarkLabel","Anchors","Label","Loess","regressionLoess","regressionLinear","regressionLog","regressionExp","regressionPow","regressionQuad","regressionPoly","Regression","dof","degreesOfFreedom","EDGE_STACK","Delaunator","maxTriangles","_triangles","_halfedges","_hashSize","_hullPrev","_hullNext","_hullTri","_hullHash","_ids","_dists","defaultGetX","defaultGetY","hullPrev","hullNext","hullTri","hullHash","i0x","i0y","i1x","i1y","minRadius","circumradius","i2x","i2y","quicksort","halfedges","cl","circumcenter","_cx","_cy","_hullStart","hullSize","_hashKey","trianglesLen","_addTriangle","yp","_legalize","pseudoAngle","al","inCircle","hbl","_link","orientIfSure","tempDist","Voronoi","delaunay","xmin","_circumcenters","vectors","_init","circumcenters","inedges","_renderSegment","_project","_clip","cellPolygon","renderCell","_regioncode","_clipSegment","_step","neighbors","e0","_cell","_clipInfinite","_clipFinite","e1","sx0","sx1","sy1","_edgecode","vx0","vy0","vxn","vyn","flatIterable","jitter","Delaunay","_delaunator","_hullIndex","flatArray","hullIndex","renderHull","trianglePolygon","renderTriangle","defaultExtent","toPathString","voronoi","cloudRadians","cloud","spiral","archimedeanSpiral","board","dxdy","startX","maxDelta","cloudCollide","sprite","msx","contextAndRatio","zeroArray","xoff","yoff","hasText","cloudSprite","cloudBounds","functor","spirals","w32","maxh","wcr","wsr","hcr","hsr","seenRow","archimedean","rectangular","Wordcloud","fontSizeRange","fsize","bisectLeft","array8","array16","array32","Dimension","onAdd","SortedIndex","oldv","addi","addv","index0","index1","reindex","CrossFilter","Bitmaps","ResolveFilter","reinit","remMap","modMap","incrementOne","incrementAll","lo1","hi1","lo0","hi0","TokenName","ASTNode","consequent","ILLEGAL","RegexNonAsciiIdentifierStart","RegexNonAsciiIdentifierPart","isDecimalDigit","isHexDigit","isOctalDigit","isWhiteSpace","isLineTerminator","isIdentifierStart","isIdentifierPart","skipComment","scanHexEscape","scanUnicodeCodePointEscape","cu1","cu2","getEscapedIdentifier","scanIdentifier","getIdentifier","scanPunctuator","code2","ch2","ch3","ch4","ch1","scanNumericLiteral","scanHexLiteral","octal","scanOctalLiteral","scanRegExp","classMarker","terminated","literal","scanRegExpBody","scanRegExpFlags","testRegExp","scanStringLiteral","lex","finishBinaryExpression","finishCallExpression","finishIdentifier","finishLiteral","finishMemberExpression","member","finishProperty","messageFormat","throwUnexpected","expect","matchKeyword","parseArrayInitialiser","parseConditionalExpression","finishArrayExpression","parseObjectPropertyKey","parseObjectProperty","parseObjectInitialiser","finishObjectExpression","legalKeywords","parsePrimaryExpression","parseExpression","parseGroupExpression","parseArguments","parseNonComputedMember","isIdentifierName","parseNonComputedProperty","parseComputedMember","parsePostfixExpression","parseLeftHandSideExpressionAllowCall","parseUnaryExpression","finishUnaryExpression","binaryPrecedence","prec","parseBinaryExpression","finishConditionalExpression","Constants","LOG2E","LOG10E","Functions","codegen","fncall","timezoneoffset","utcdate","utcday","utcyear","utcmonth","utchours","utcminutes","utcseconds","utcmilliseconds","if","forbidden","globalvar","fieldvar","outputGlobal","memberDepth","ast","Generators","Literal","MemberExpression","stripQuotes","CallExpression","ArrayExpression","BinaryExpression","UnaryExpression","ConditionalExpression","LogicalExpression","ObjectExpression","Property","phi00","areaRing","dLambda","sdLambda","adLambda","deltaSum","boundsPoint","boundsLineStart","boundsLineEnd","boundsRingPoint","boundsRingStart","boundsRingEnd","inflection","phii","lambdai","rangeCompare","rangeContains","W0","W1","centroidPointCartesian","centroidLinePointFirst","centroidLinePoint","centroidRingPointFirst","centroidRingPoint","cz","testPoint","dval","selectionId","E_union","E_intersect","R_union","R_intersect","selectionVisitor","dataName","IndexPrefix","indataRef","tuplesRef","dateObj","setYear","dataVisitor","scaleVisitor","addScaleDependency","scaleName","scaleRef","internalScaleFunctions","fnctx","visitors","__bandwidth","_bandwidth","_range","geoMethod","globalMethod","geoArea","geoBounds","deltaMax","geoCentroid","channel_luminance_value","channelValue","luminance","equalArray","equalObject","removePredicate","seq","functionContext","indexof","lastindexof","repl","pluck","contrast","lum1","lum2","monthFormat","monthAbbrevFormat","dayFormat","dayAbbrevFormat","inScope","intersect$1","array$1","markname","pinchDistance","pinchAngle","windowSize","bandspace","setdata","pathShape","retval","_trigger","eventFunctions","astVisitors","codegenParams","codeGenerator","codegenExpression","expressionFunction","signalName","getSignal","signalRef","$expr","$fields","$params","indexName","miss","unitIdx","isMulti","vl5","resUnit","resolved","multiRes","Skip","Swap","canonicalType","expression","expressionCodegen","adjustSpatial","_compare","parseParameter","PARSERS","$flat","parseParameters","$name","parameterExpression","$field","$encode","encodeExpression","$output","$compare","$order","$tupleid","$subflow","subctx","operators","Subcontext","subcontext","$ingest","$request","unresolved","operatorExpression","eventExpression","handlerExpression","eventConfig","parseOperator","parseOperatorParameters","parseStream","updates","parseUpdate","srcid","dataset","substate","ariaLabel","setCursor","globalCursor","dataref","_runtime","_viewWidth","_viewHeight","resizeRenderer","_renderer","_resizeListeners","eventExtend","vega","itemGroup","NO_TRAP","trap","trackEventListener","_eventListeners","permit","_eventConfig","itemFilter","markTarget","checkbox","radio","valuesEqual","initializeRenderer","paddingObject","renderHeadless","_scenegraph","toBlobURL","mime","dataTest","signalTest","View","_elBind","_renderType","_globalCursor","_preventDefault","_timers","initializeEventConfig","_bind","bindings","_resize","resetSize","_resizeWidth","_resizeHeight","resizePadding","initializeResize","_background","user","lookupSignal","findOperatorHandler","addOperatorListener","removeOperatorListener","_desc","_resetRenderer","rerun","addSignalListener","removeSignalListener","addDataListener","removeDataListener","_restart","elapsed","prevent","allow","finalize","timers","hoverSet","leaveSet","elBind","initializeAria","prevHandler","initializeHandler","toImageURL","toSVG","DEFAULT_SOURCE","MARKS","DEFAULT_MARKS","eventSelector","parseMerge","parseSelector","endChar","pushChar","popChar","LBRACK","RBRACK","parseBetween","parseThrottle","parseAutosize","parsePadding","encoder","addEncode","addEncoders","extendEncode","applyDefault","entry$1","_color","resolveField","parseEncode","applyDefaults","parseBlock","parse$1","OUTER_INVALID","outerError","parseSignal","addSignal","addBinding","fieldRef$1","keyFieldRef","compareRef","aggrField","isSignal","hasSignal","specValue","deref","mergeStream","nestedStream","eventStream","streamParameters","addStream","markrole","filterMark","OP_VALUE_EXPR","isSubscope","mergeSources","addUpdate","streamSource","FIELD_REF_ID","MULTIDOMAIN_SORT_OPS","parseScale","parseScaleDomain","parseScaleRange","parseArray","parseLiteral","parseScaleInterpolate","objectProperty","parseScaleBins","dataLookupError","explicitDomain","multipleDomain","singularDomain","valuesRef","parseSort","domainRef","extentRef","coll","addDataPipeline","fieldRef","ordinalMultipleDomain","quantileMultipleDomain","numericMultipleDomain","countsRef","sortRef","multidomain","parseParameter$1","Value","LegendScales","guideGroup","symbolDirection","gradientDirection","gradientLength","gradientWidth","gradientThickness","gradientHeight","entryColumns","getEncoding","anchorExpr","alignExpr$1","extendOffset","guideMark","legendGradient","userEncode","legendGradientDiscrete","dataRef","vv","alignExpr","baselineExpr","legendGradientLabels","labelLimit","gradientLabelLimit","labelOffset","gradientLabelOffset","legendSymbolGroups","symbolOffset","valueRef","xSignal","yEncode","baseFill","baseStroke","symbolBaseFillColor","symbolBaseStrokeColor","facet","isL","isR","isLR","isVG","alignFlip","exprAlign","exprAnchor","exprAngle","exprBaseline","getRole","parseTransform","definition$1","pdef","lookupRef","parseIndexParameter","parseSubParameter","parseSubParameters","projectionRef","parameterValue","isExpr","isField","isCompare","outerExpr","exprRef","outerField","isData","getDataRef","DataScope","aggregate","fieldKey","addSortField","ds","optype","sortKey","parseTrigger","parseMark","layoutRef","boundRef","parseData$1","joinRef","$context","markpath","markRef","generates","encodeRef","pushState","subscope","addData","toRuntime","parseFacet","parseSubflow","popState","tol","parseOverlap","sieve","parseLegend","entryLayout","legendEncode","scaleType","scaleCount","legendType","entryRef","tickMinStep","legendSymbolLayout","getChannel","getStyle","getFontSize","sizeExpression","_anchor","legendTitle","buildLegendEncode","angleExpr","parseTitle","buildTitle","titleEncode","buildSubTitle","groupEncode","parseData","upstream","analyze","getSign","ifLeftTopExpr","ifX","ifXEnc","ifY","ifYEnc","ifTop","ifTopExpr","$orient","ifEnc","ifExpr","ifRightExpr","toExpr","axisConfig","axisGrid","vscale","gridScale","tickPos","gridStart","gridEnd","flushExpr","axisLabels","flushOffset","labelAlign","labelBaseline","flushOn","tickSize","ifRight","offsetExpr","axisTitle","titlePos","autoY","autoX","autoLayout","parseAxis","axisBand","xyKeys","axisX","axisY","orientKeys","axisTop","axisBottom","axisLeft","axisRight","axisEncode","tickBand","ticksRef","axisTicks","pos0","pos1","axisDomain","buildAxisEncode","parseScope","preprocessed","addProjection","parseProjection","addScale","initScale","parseSignalUpdates","parseLambdas","parseView","signalObject","collectSignals","rootEncode","Scope","lambdas","_subid","_nextsub","_encode","_lookup","_markpath","Subscope","propertyLambda","arrayLambda","objectLambda","subtitlePadding","bandPosition","domainWidth","domainColor","gridColor","labelAngle","labelPadding","tickColor","tickOffset","tickRound","tickWidth","gridAlign","columnPadding","rowPadding","gradientStrokeColor","gradientStrokeWidth","labelOverlap","symbolLimit","symbolType","symbolSize","symbolStrokeWidth","titleLimit","titleOrient","heatmap","ramp","vref","annotate","isExpr$1","sig","hasOwnSignal","addScaleProj","projectionType","dataScope","pkg","vtx","geo","wordcloud","xf","Ops","Unary","EventFunctions","Visitors","interpret","RADIUS","THETA","isDateTime","dataSignals","channelDef","selCmpt","isConcatModel","getBinSignalName","hashes","scaleRange","markDef","darkTheme","subtitleColor","excelTheme","gridOpacity","tickExtra","labelFontSize","fiveThirtyEightTheme","labelColor","titleColor","titleFontSize","bar","binSpacing","ggplot2Theme","titleFontWeight","titleFont","colorSchemes","latimesTheme","labelFont","labelFontWeight","titleAlign","titleAngle","titleX","titleY","quartzTheme","voxTheme","gridDash","colorSchemes$1","urbanInstituteTheme","googlechartsTheme","version$1","editor","DEFAULT_ACTIONS","export","png","compiled","I18N","CLICK_TO_VIEW_ACTIONS","COMPILED_ACTION","EDITOR_ACTION","PNG_ACTION","SOURCE_ACTION","SVG_ACTION","NAMES","PREPROCESSOR","vgSpec","SVG_CIRCLES","isTooltipHandler","viewSource","providedMode","createLoader","embedOptionsFromUsermeta","parsedSpec","usermetaLoader","loadOpts","usermetaOpts","parsedOpts","mergedOpts","_embed","possibleRoot","rootContainer","i18n","downloadFileName","ID","guessMode","chartWrapper","updateSet","details","summary","documentClickHandler","ctrl","i18nExportAction","exportLink","viewSourceLink","compileLink","editorUrl","editorLink","updateMultipleDatasetsInView","updateSingleDatasetInView","getUniqueFieldNames","addSignalListenersToView","signalListeners","signalNames","removeSignalListenersFromView","combineSpecWithDimension","VegaEmbed","resultPromise","handleError","createView","fieldSet","clearView","specChanges","newSpec","oldSpec","isExpensive","computeSpecChanges","newSignalListeners","oldSignalListeners","areSignalListenersChanged","modifyView","onNewView","containerRef","finalSpec","vegaEmbed","Vega","handleNewView","DEFAULT_CONFIG","predictable","randomSeed","isBigNumber","isComplex","isFraction","isUnit","isMatrix","isCollection","isDenseMatrix","isSparseMatrix","isRange","isResultSet","isHelp","isAccessorNode","isArrayNode","isAssignmentNode","isBlockNode","isConditionalNode","isConstantNode","isFunctionAssignmentNode","isFunctionNode","isIndexNode","isObjectNode","isOperatorNode","isParenthesisNode","isRangeNode","isSymbolNode","isChain","mapObject","deepStrictEqual","MATRIX_OPTIONS","NUMBER_OPTIONS","formatNumberToBase","wordSize","notation","roundDigits","splitNumber","coefficients","newExp","missingZeros","expDiff","decimalIdx","decimals","decimalVal","toEngineering","lowerExp","upperExp","zeros","splitValue","pp","DBL_EPSILON","nearlyEqual","formatBigNumberToBase","big2","BigNumberCtor","valueWithoutExp","formatNumber","formatBigNumber","looksLikeFraction","syntax","DimensionError","relation","IndexError","arraySize","dimNext","validateIndex","oldLen","newLen","reshape","newLength","processSizesWildcard","tmpArray2","tmpArray","sizeIndex","_reshape","processedSizes","wildCardIndex","unsqueeze","_unsqueeze","getArrayDataType","itemType","assertAndCreate","pickShallow","stripOptionalNotation","isOptionalDependency","missingDependencies","assertDependencies","isFactory","isDimensionError","isIndexError","createComplexClass","mathjs","toPolar","strRe","strIm","fromPolar","hasBase","isClass","lruQueue","oldIndex","nuIndex","hasher","lru","BigNumber","createBigNumberPi","createBigNumberClass","createMatrixClass","Matrix","datatype","skipZeros","numberFactory","createFractionClass","createDenseMatrixClass","DenseMatrix","_datatype","preprocess","isScalar","_getSubmatrix","dimension","submatrix","sSize","iSize","_fit","_setSubmatrix","createDenseMatrix","getDataType","indexI","sizeArray","kSuper","kSub","swapRows","_swapRows","_createTyped2","typedFunction","createTyped","throwNoBignumber","throwNoComplex","throwNoFraction","throwNoMatrix","deepMap","createIsNumeric","isNegativeNumber","isPositiveNumber","isZeroNumber","isNaNNumber","createEqualScalar","bigNearlyEqual","complexEquals","equalBase","createNumber","boxMatch","Unit","valuelessUnit","absNumber","addNumber","multiplyNumber","unaryMinusNumber","unaryPlusNumber","cbrtNumber","ceilNumber","cubeNumber","expNumber","expm1Number","gcdNumber","lcmNumber","logNumber","log10Number","log2Number","modNumber","nthRootNumber","signNumber","squareNumber","xgcdNumber","lastx","lasty","powNumber","roundNumber","createMultiplyScalar","bitAndNumber","bitNotNumber","bitOrNumber","bitXorNumber","leftShiftNumber","rightArithShiftNumber","rightLogShiftNumber","notNumber","orNumber","xorNumber","andNumber","createFormat","acoshNumber","acotNumber","acothNumber","acscNumber","acschNumber","xInv","asecNumber","asechNumber","asinhNumber","atanhNumber","cotNumber","cothNumber","cscNumber","cschNumber","secNumber","sechNumber","sinhNumber","half","combinationsNumber","nMinusk","createFraction","createUnaryMinus","createAddScalar","fixPrefix","createConj","createSparseMatrixClass","equalScalar","SparseMatrix","_values","_ptr","_createFromArray","_createFromMatrix","_getsubset","mvalues","mindex","mptr","pv","_setsubset","_getValueIndex","ins","createSparseMatrix","colIndex","minRow","maxRow","minColumn","maxColumn","_i5","_k2","_i7","_forEachRow","createMatrix","createAlgorithm01","denseMatrix","sparseMatrix","inverse","adata","asize","adt","bvalues","bindex","bptr","bsize","bdt","createAlgorithm10","avalues","aindex","aptr","createAlgorithm13","bdata","csize","_iterate","createAlgorithm14","createAlgorithm03","createAlgorithm05","cvalues","cindex","cptr","wai","wbi","createAlgorithm11","createAlgorithm12","createAlgorithm07","_scatter","createIdentity","_identity","_identityVector","Big","noBignumber","noFraction","noMatrix","createSize","createZeros","_zeros","hasBigNumbers","NO_INT","createRound","algorithm11","algorithm12","algorithm14","roundNumberSignatures","createCompare","algorithm03","algorithm05","algorithm13","createSmaller","algorithm07","createLarger","createFibonacciHeapClass","larger","oneOverLogPhi","FibonacciHeap","_minimum","_cut","degree","isFibonacciHeap","extractMinimum","numberOfChildren","tempRight","numRoots","_linkNodes","_findMinimumNode","_cascadingCut","_decreaseKey","createDot","multiplyScalar","conj","_validateDim","aIsColumn","bIsColumn","_c2","_c3","xindex","xvalues","yindex","yvalues","xLen","yLen","xSize","ySize","createAbs","createFloor","createMultiply","_validateMatrixDimensions","size1","size2","_multiplyVectorMatrix","alength","bcolumns","_multiplyVectorDenseMatrix","_multiplyMatrixVector","arows","acolumns","brows","vbi","ka0","ka1","_multiplyMatrixMatrix","kb0","kb1","cij","vbij","xsize","ysize","_multiplyVectorVector","ArgumentsError","isArgumentsError","createPow","_pow","_powArray","_powMatrix","yFrac","yNum","gammaNumber","twoN","threeN","fourN","fiveN","gammaP","gammaG","createBignumber","twoPowSize","twoPowSizeSubOne","createNumeric","_number","bignumber","validInputTypes","validOutputTypes","outputType","inputType","createCeil","createSubtract","unaryMinus","algorithm01","algorithm10","checkEqualDimensions","createEqual","createFix","_Complex","createDivideScalar","createSpaClass","Spa","isSpa","nodei","nodej","createLup","divideScalar","_denseLUP","_sparseLUP","ldata","lsize","udata","usize","pabsv","vjj","absv","vij","lvalues","lindex","lptr","uvalues","uindex","uptr","pvCo","pvOc","_loop","spa","vkj","vik","swapIndeces","createDet","lup","decomp","evenCycles","_det","createInv","_inv","ABig","rBig","Br","createDivide","createUnitClass","_BigNumber","_Fraction","UNIT_NONE","PREFIXES","BASE_DIMENSIONS","skipAutomaticSimplification","skipWhitespace","revert","parseNumber","isDigitDot","tentativeNumber","tentativeIndex","parseUnit","unitName","isValidAlpha","firstC","parseCharacter","toFind","powerMultiplierCurrent","expectingUnit","powerMultiplierStack","powerMultiplierStackProduct","uStr","oldC","_findUnit","baseDim","UNIT_SYSTEMS","allowNoUnits","_isDerived","unitValue","unitOffset","unitPower","unitPrefixValue","_getNumberConverter","_denormalize","prefixValue","_unit","prefixLen","prefixName","_prefix","getNumericIfUnitless","BASE_UNITS","isValuelessUnit","inverted","valThis","valOther","toNumeric","formatUnits","matchingBase","matchingUnit","proposedUnitList","currentUnitSystem","missingBaseDim","toSI","strNum","strDen","nNum","nDen","simp","isImaginary","VAR","VA","_bestPrefix","unitStr","absValue","absUnitValue","bestPrefix","bestDiff","scientific","splitUnit","xNumeric","xRounded","testSum","deca","hecto","kilo","mega","giga","tera","peta","exa","zetta","yotta","deci","centi","milli","micro","nano","pico","femto","atto","zepto","yocto","SQUARED","CUBIC","BINARY_SHORT_SI","BINARY_SHORT_IEC","BINARY_LONG_SI","BINARY_LONG_IEC","kibi","mebi","gibi","tebi","pebi","exi","zebi","yobi","BTU","MM","SHORTLONG","BINARY_SHORT","BINARY_LONG","MASS","CURRENT","TEMPERATURE","LUMINOUS_INTENSITY","AMOUNT_OF_SUBSTANCE","FORCE","SURFACE","VOLUME","ENERGY","POWER","PRESSURE","ELECTRIC_CHARGE","ELECTRIC_CAPACITANCE","ELECTRIC_POTENTIAL","ELECTRIC_RESISTANCE","ELECTRIC_INDUCTANCE","ELECTRIC_CONDUCTANCE","MAGNETIC_FLUX","MAGNETIC_FLUX_DENSITY","FREQUENCY","ANGLE","BIT","meter","inch","foot","yard","mile","rod","chain","angstrom","mil","sqin","sqft","sqyd","sqmi","sqrd","sqch","sqmil","acre","hectare","m3","litre","cuin","cuft","cuyd","teaspoon","tablespoon","gtt","minim","fluiddram","fluidounce","gill","cup","pint","quart","gallon","beerbarrel","oilbarrel","hogshead","fldr","floz","gal","bbl","obl","gram","ton","tonne","grain","dram","ounce","poundmass","hundredweight","stick","stone","oz","lbm","cwt","sec","decade","century","millennium","hertz","Hz","radian","gradian","cycle","arcsec","arcmin","ampere","degC","degF","degR","kelvin","celsius","fahrenheit","rankine","mol","mole","candela","newton","dyn","dyne","lbf","poundforce","kip","kilogramforce","joule","erg","eV","electronvolt","watt","hp","psi","atm","torr","mmHg","mmH2O","cmH2O","coulomb","farad","volt","ohm","henry","siemens","weber","tesla","ALIASES","rods","chains","angstroms","litres","liter","liters","teaspoons","tablespoons","minims","fluiddrams","fluidounces","gills","cups","pints","quarts","gallons","beerbarrels","oilbarrels","hogsheads","gtts","grams","tons","tonnes","grains","drams","ounces","poundmasses","hundredweights","sticks","lbs","kips","kgf","hectares","sqfeet","sqyard","sqmile","sqmiles","mmhg","mmh2o","cmh2o","secs","hrs","weeks","years","decades","centuries","millennia","gradians","arcsecond","arcseconds","arcminute","arcminutes","BTUs","watts","joules","amperes","coulombs","volts","ohms","farads","webers","teslas","electronvolts","moles","calculateAngleValues","createPi","cgs","us","setUnitSystem","getUnitSystem","typeConverters","_name2","_unit2","createUnit","override","deleteUnit","aliases","lastUnit","_key5","createUnitSingle","assertUnitNameIsValid","baseName","defUnit","newUnit","_newBaseUnit","newBaseUnit","_i6","_i8","aliasName","_alias","_key6","createUnitFunction","ariaHidden","getPaddingRight","ariaHiddenSiblings","nodesToExclude","blacklistTagNames","findIndexOf","handleContainer","fixedNodes","restoreStyle","restorePaddings","disableScrollLock","isOverflowing","parentElement","scrollContainer","ModalManager","modals","containers","modalIndex","modalRef","hiddenSiblingNodes","hiddenSiblings","getHiddenSiblings","containerIndex","nextTop","Unstable_TrapFocus","_props$disableAutoFoc","disableAutoFocus","_props$disableEnforce","disableEnforceFocus","_props$disableRestore","disableRestoreFocus","getDoc","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","rootRef","prevOpenRef","contain","hasFocus","loopFocus","invisible","SimpleBackdrop","_props$invisible","defaultManager","Modal","inProps","_props$BackdropCompon","BackdropComponent","BackdropProps","_props$closeAfterTran","closeAfterTransition","_props$disableBackdro","disableBackdropClick","_props$disableEscapeK","disableEscapeKeyDown","_props$disableScrollL","_props$hideBackdrop","hideBackdrop","_props$manager","onBackdropClick","onClose","onEscapeKeyDown","mountNodeRef","hasTransition","getHasTransition","getModal","handleMounted","mount","resolvedContainer","isTopModal","handlePortalRef","inlineStyle","TrapFocus","Grow","autoTimeout","_getTransitionProps2","nodeOrNext","maybeNext","muiSupportAuto","getOffsetTop","getOffsetLeft","getTransformOriginValue","Popover","_props$anchorOrigin","anchorOrigin","anchorPosition","_props$anchorReferenc","anchorReference","containerProp","getContentAnchorEl","_props$marginThreshol","marginThreshold","_props$PaperProps","PaperProps","_props$transformOrigi","_props$transitionDura","transitionDurationProp","_props$TransitionProp","paperRef","getAnchorOffset","contentAnchorOffset","resolvedAnchorEl","anchorRect","anchorVertical","getContentAnchorOffset","contentAnchorEl","getTransformOrigin","elemRect","getPositioningStyle","elemTransformOrigin","containerWindow","heightThreshold","widthThreshold","_diff","_diff2","_diff3","setPositioningStyles","positioning","handlePaperRef","handleResize","RTL_ORIGIN","LTR_ORIGIN","_props$autoFocus","disableAutoFocusItem","_props$MenuListProps","MenuListProps","onEnteringProp","PopoverClasses","autoFocusItem","menuListActionsRef","contentAnchorRef","activeItemIndex","adjustStyleForScrollbar","MenuList","areEqualValues","SelectInput","displayEmpty","IconComponent","inputRefProp","inputRef","labelId","_props$MenuProps","MenuProps","onOpen","openProp","renderValue","_props$SelectDisplayP","SelectDisplayProps","tabIndexProp","valueProp","_useControlled","_useControlled2","displayNode","setDisplayNode","isOpenControlled","menuMinWidthState","setMenuMinWidthState","openState","setOpenState","displaySingle","childrenArray","handleItemClick","itemIndex","displayMultiple","computeDisplay","menuMinWidth","buttonId","selectMenu","nativeInput","iconOpen","disableListWrap","getStyleValue","TextareaAutosize","rowsMax","rowsMinProp","rowsMin","maxRowsProp","_props$minRows","minRows","minRowsProp","shadowRef","renders","syncHeight","inputShallow","singleRowHeight","outerHeightStyle","InputBase","ariaDescribedby","autoComplete","endAdornment","_props$inputComponent","inputComponent","_props$inputProps","inputProps","inputPropsProp","_props$multiline","renderSuffix","handleInputRefWarning","handleInputPropsRefProp","handleInputRefProp","handleInputRef","fcs","checkDirty","InputComponent","formControl","adornedEnd","onAnimationStart","inputMultiline","inputHiddenLabel","inputAdornedStart","inputAdornedEnd","inputTypeSearch","inputMarginDense","placeholderHidden","placeholderVisible","disableUnderline","bottomLineColor","borderBottomStyle","NativeSelectInput","iconFilled","iconOutlined","defaultInput","NativeSelect","_props$IconComponent","ArrowDropDownIcon","_props$input","FilledInput","borderTopLeftRadius","borderTopRightRadius","WebkitTextFillColor","caretColor","NotchedOutline","labelWidthProp","labelWidth","notched","legendLabelled","legendNotched","OutlinedInput","_props$labelWidth","notchedOutline","nativeSelectStyles","Select","_props$autoWidth","_props$displayEmpty","_props$multiple","_props$native","native","variantProps","baseUrl","binChunk","TYPES","ARRAY_CONSTRUCTOR_TO_WEBGL_CONSTANT","ARRAY_TO_COMPONENT_TYPE","ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE","getAccessorTypeFromSize","getComponentTypeFromArray","getAccessorArrayTypeAndLength","bytesPerComponent","DEFAULT_GLTF_JSON","isExtension","getUsedExtensions","getRequiredExtensions","extensionsRequired","extensionsUsed","bufferIndex","getBufferView","getAccessor","extensionData","nodeIndices","nodeData","meshIndex","glTFMesh","_addAttributes","indicesAccessor","_addIndices","meshes","mimeTypeOpt","glTFImage","addBufferView","images","glTFBufferView","bufferViews","glTFAccessor","bufferViewIndex","minMax","_getAccessorMinMax","accessorDefaults","addAccessor","glTFTexture","imageIndex","materials","totalByteLength","targetArray","dstByteOffset","attributeData","_getGltfAttributeName","addBinaryBuffer","initValues","componentIndex","getGLTFAccessors","getGLTFAccessor","convertTypedArrays","getAccessorData","makeMeshPrimitiveIterator","decompressPrimitive","gltfData","compressMesh","dracoExtension","bufferCopy","decodedData","decodedAttributes","accessorIndex","decodedAttribute","checkPrimitive","compressedData","fauxAccessors","gltfScenegraph","nodeExtension","techniques","resolveTechniques","materialExtension","resolveValues","programs","technique","KHR_draco_mesh_compression","KHR_materials_unlit","KHR_lights_punctual","KHR_techniques_webgl","excludes","GLTF_ARRAYS","skins","GLTF_KEYS","skin","KHR_binary_glTF","objectMap","_convertIdToIndex","arrayName","idToIndexMap","baseColorFactor","textureId","textureIndex","normalizeGLTFV1","COMPONENTS","BYTES","GL_SAMPLER","SAMPLER_PARAMETER_GLTF_TO_GL","magFilter","minFilter","wrapS","wrapT","DEFAULT_SAMPLER","baseUri","getMesh","accum","getCamera","getSkin","normalTexture","occlustionTexture","emmisiveTexture","baseColorTexture","metallicRoughnessTexture","cutBufffer","getSampler","_enumSamplerParameter","preloadedImage","postProcessGLTF","isGLB","magic1","parseGLBV1","glb","GLB_FILE_HEADER_SIZE","contentFormat","parseJSONChunk","parseBINChunk","parseGLBV2","chunkLength","chunkFormat","parseGLBChunksSync","jsonChunk","jsonText","parseGLTFContainerSync","arrayBufferOrString","loadBuffers","loadImages","decodeExtensions","hasBinChunk","binChunks","parseGLBSync","getTypedArrayForBufferView","parsedImage","GLTFLoader","decompressMeshes","postProcess","fetchImages","createImages","parseGLTF","omit","styleFunctionSx","styleFunction","newStyleFunction","filterProps","_options$cssProperty","cssProperty","themeKey","themeMapping","propValueFinal","getBorder","borders","flexbox","sizing","styled","componentCreator","StyledComponent","spread","FinalComponent","styledWithoutDefault","Box","validateWorkerVersion","coreVersion","workerVersion","textEncoder","chunkByteLength","chunkArray","_AwaitValue","_awaitAsyncGenerator","AsyncGenerator","front","wrappedAwait","settle","_wrapAsyncGenerator","makeStreamIterator","makeBrowserStreamIterator","makeNodeStreamIterator","currentBatchPromise","nextBatchPromise","makeIterator","makeStringIterator","makeArrayBufferIterator","makeBlobIterator","ERR_DATA","getArrayBufferOrStringFromDataSync","isArrayBuffer","checkResponse","concatenateArrayBuffersAsync","getLoaderContext","previousContext","resolvedContext","getLoadersFromContext","candidateLoaders","contextLoaders","EXT_PATTERN","validHTTPResponse","selectLoaderSync","getNoValidLoaderMessage","normalizeLoaders","selectLoaderInternal","testUrl","findLoaderByMIMEType","loaderExtension","findLoaderByExtension","findLoaderByUrl","testDataAgainstText","testDataAgainstBinary","findLoaderByInitialBytes","testBinary","selectLoader","parseWithLoader","getArrayBufferOrStringFromData","parseWithWorker","Quadtree","leaf_copy","treeProto","cover","quads","Quad","retainer","removeAll","fnValuesNs","fnRuleNs","functionPlugin","fnValues","styleRule","fnRule","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","jssGlobal","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","parentRegExp","jssNested","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","getOptions","prevOptions","nestingLevel","isNested","isNestedConditional","uppercasePattern","msPattern","toHyphenLower","hyphenateStyleName","hName","convertCase","converted","hyphenate","camelCase","hyphenatedProp","addCamelCasedVersion","regExp","inset","iterate","innerProp","_innerProp","defaultUnit","camelCasedOptions","appearence","noPrefill","supportedProperty","toUpper","camelize","pascalize","textOrientation","writingMode","breakPropsOld","inlineLogicalOld","unprefixed","pascalized","scrollSnap","overscrollBehavior","propMap","flex2012","propMap$1","propKeys","prefixCss","propertyDetectors","key$1","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","prefixedValue","supportedValue","jssVendorPrefixer","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","jssPropsSort","prop0","prop1","jssPreset","vendorPrefixer","propsSort","injectFirstNode","StylesProvider","_props$injectFirst","injectFirst","_props$disableGenerat","localOptions","outerOptions","createComment","_parseImageNode","IMAGE_SUPPORTED","IMAGE_BITMAP_SUPPORTED","NODE_IMAGE_SUPPORTED","DATA_SUPPORTED","getImageType","getImageTypeOrNull","SVG_DATA_URL_PATTERN","SVG_URL_PATTERN","isSVG","getBlobOrSVGDataUrl","xmlText","blobOrDataUrl","objectUrl","loadToImage","EMPTY_OBJECT","imagebitmapOptionsSupported","parseToImage","imagebitmapOptions","safeCreateImageBitmap","createImageBitmap","parseToNodeImage","imageOptions","loadType","getLoadableImageType","parseToImageBitmap","getDefaultImageType","isImageTypeSupported","ImageLoader","cachedType","detectScrollType","dummy","getNormalizedScrollLeft","easeInOutSin","ScrollbarSize","scrollbarHeight","setMeasurements","TabIndicator","KeyboardArrowLeft","KeyboardArrowRight","TabScrollButton","Tabs","ariaLabelledBy","_props$centered","centered","childrenProp","_props$indicatorColor","indicatorColor","_props$orientation","_props$ScrollButtonCo","ScrollButtonComponent","_props$scrollButtons","scrollButtons","_props$TabIndicatorPr","TabIndicatorProps","TabScrollButtonProps","scrollable","isRtl","scrollStart","clientSize","setMounted","indicatorStyle","setIndicatorStyle","displayScroll","setDisplayScroll","_React$useState4","scrollerStyle","setScrollerStyle","valueToIndex","tabsRef","tabListRef","getTabsMeta","tabsMeta","tabMeta","tabsNode","scrollLeftNormalized","_children","tab","updateIndicatorState","_newIndicatorStyle","_getTabsMeta","newIndicatorStyle","dStart","dSize","scrollValue","_options$ease","ease","animate","moveTabsScroll","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollSelectedIntoView","_getTabsMeta2","nextScrollStart","_nextScrollStart","updateScrollButtonState","showStartScroll","showEndScroll","_tabsRef$current","handleTabsScroll","updateIndicator","updateScrollButtons","childIndex","childValue","conditionalElements","scrollbarSizeListener","scrollButtonsActive","showScrollButtons","scrollButtonStart","scrollButtonsDesktop","scrollButtonEnd","getConditionalElements","scroller","fixed","flexContainer","flexContainerVertical","newFocusTarget","previousItemKey","nextItemKey","previousElementSibling","nextElementSibling","UNIFORM_SETTERS","getArraySetter","getSamplerSetter","FLOAT_ARRAY","INT_ARRAY","UINT_ARRAY","uniformLength","toFloatArray","toUIntArray","getUniformSetter","parseUniformName","checkUniformValues","uniformMap","checkUniformValue","checkLength","checkUniformArray","copyUniform","uniformSetter","cacheLength","setVectorUniform","setMatrixUniform","defaultName","SHADER_NAME_REGEXP","parseGLSLCompilerError","errLog","shaderType","shaderName","errorStrings","warnings","shaderDescription","getShaderTypeName","errorString","maxDigits","padLeft","addLineNumbers","formatErrors","Shader","getShaderParameter","getShaderSource","compileStatus","infoLog","getShaderInfoLog","getSource","createShader","attributeInfosByLocation","attributeInfosByName","varyingInfos","varyingInfosByName","varying","V6_DEPRECATED_METHODS","_uniformSetters","textureUpdate","_textureUniforms","texturesRenderable","shaderHandles","getAttachedShaders","shaderHandle","programName","getActiveUniform","getActiveUniforms","getUniformBlockIndex","getActiveUniformBlockParameter","FS100","FS_GLES","FS300","getQualifierDetails","qualifiers","getPassthroughFS","outputValue","convertToVec4","typeToChannelCount","variable","varyingName","feedbackName","feedbackMap","sourceName","bufferOrRef","_createNewBuffer","bufferName","_getFeedbackBuffers","_updateBinding","_swapBuffers","dstName","getShaderVersion","updateForTextures","targetTexture","sourceCount","targetTextureType","samplerTextureMap","updatedVs","finalInject","vsLines","updateVsLines","textureMap","getAttributeDefinition","updatedLine","textureName","samplerName","sizeName","uniformDeclerations","getSamplerDeclerations","typeToChannelSuffix","sampleInstruction","processAttributeDefinition","targetTextureVarying","qualaiferDetails","getVaryingType","getSizeUniforms","sourceTextureMap","SRC_TEX_PARAMETER_OVERRIDES","updatedModelProps","_processVertexShader","hasSourceTextures","sourceTextures","sizeUniforms","packed","channelCount","packedPixels","packCount","_swapTexture","textureOrReference","_createNewTexture","_sourceTextures","_targetTexture","_createTargetTexture","elementIds","_swapTextures","combinedInject","textureTransform","bufferTransform","updatedOpts","_updateDrawOptions","swapped","resourceTransforms","resourceTransform","_updateModelProps","setupResources","updatedProps","canCreateBufferTransform","canCreateTextureTransform","inheritsFrom","ParentType","wrapInView","MAP_STYLE","evaluateChildren","componentProps","isReactMap","needsDeckGLViewProps","CANVAS_ONLY_STYLES","mixBlendMode","redrawDeck","thisRef","DeckGL","canvasRef","jsxProps","reactChildren","jsxLayers","jsxViews","reactElement","ElementType","reactProps","createLayer","extractJSXLayers","inRender","handleViewStateChange","handleInteractionStateChange","deckProps","_customRender","createDeckInstance","interactionStateUpdateRequested","getRefHandles","currentViewports","canvasStyle","extractStyles","childrenUnderViews","defaultViewId","viewId","viewChildren","viewElement","positionChildrenUnderViews","SwitchBase","checkedProp","checkedIcon","disabledProp","setCheckedState","hasLabelFor","newChecked","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","Checkbox","_props$checkedIcon","_props$icon","iconProp","_props$indeterminate","_props$indeterminateI","indeterminateIcon","indeterminateIconProp","Collapse","collapsedHeight","_props$collapsedSize","collapsedSize","collapsedSizeProp","wrapperRef","autoTransitionDuration","wrapperHeight","duration2","wrapperInner","Accordion","_props$defaultExpande","defaultExpanded","expandedProp","setExpandedState","_React$Children$toArr","_React$Children$toArr2","borderBottomLeftRadius","borderBottomRightRadius","hasTimerQuery","begin","conservative","resultAvailable","Query","statIdCounter","onAddHTML","onFinalize","createFramebuffer","_onMousemove","_onMouseleave","_getPageLoadPromise","appContext","offScreen","_requestAnimationFrame","renderFrame","tock","_timeline","_animationLoop","_mousePosition","wrapperDiv","drawingBufferHeight","_gpuTimeQuery","filterRange","filterEnabled","filterTransformSize","filterTransformColor","filterSoftRange","filter_min","filter_softMin","filter_softMax","filter_max","shaderModule64","min64High","max64High","DATA_TYPE_FROM_SIZE","filterSize","countItems","DATAFILTER_TYPE","DATAFILTER_DOUBLE","filterValues","instanceFilterValues","useFloatTarget","aggregator","filterIndices","filterPrevIndices","filterFBO","filterModel","shaderOptions","filterNeedsUpdate","onFilteredItemsChange","DataFilterExtension","getFilterValue","pbr","directions","marginX","marginY","paddingX","paddingY","getCssProperties","_prop$split","_prop$split2","spacingKeys","getStyleFromPropValue","cssProperties","transformed","ListItem","_props$button","componentProp","_props$ContainerCompo","ContainerComponent","_props$ContainerProps","ContainerProps","ContainerClassName","_props$dense","_props$disableGutters","disableGutters","_props$divider","listItemRef","hasSecondaryAction","alignItemsFlexStart","secondaryAction","backgroundClip","MenuItem","ListItemClasses","_props$role","thumb","valueLabelDisplay","asc","findClosest","trackFinger","touchId","valueToPercent","roundValueToStep","nearest","matissaDecimalPart","decimalPart","getDecimalPrecision","setValueIndex","focusThumb","sliderRef","activeIndex","setActive","axisProps","leap","Identity","ariaLabelledby","ariaValuetext","getAriaLabel","getAriaValueText","_props$marks","marksProp","_props$max","_props$min","onChangeCommitted","_props$scale","_props$step","_props$ThumbComponent","ThumbComponent","_props$track","_props$ValueLabelComp","ValueLabelComponent","ValueLabel","_props$valueLabelDisp","_props$valueLabelForm","valueLabelFormat","setOpen","valueDerived","setValueState","handleFocusRef","tenPercents","marksValues","marksIndex","increaseKey","decreaseKey","getFingerNewValue","finger","_ref3$move","values2","_slider$getBoundingCl","percentToValue","_getFingerNewValue","_getFingerNewValue3","_getFingerNewValue4","trackOffset","trackLeap","trackStyle","marked","trackFalse","trackInverted","rail","markActive","markLabel","markLabelActive","valueLabel","thumbColorPrimary","thumbColorSecondary","_props$disablePadding","disablePadding","subheader","listStyle","nextItem","previousItem","textCriteriaMatches","nextFocus","textCriteria","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","_props$autoFocusItem","_props$disabledItemsF","_props$disableListWra","listRef","textCriteriaRef","previousKeyMatched","noExplicitWidth","criteria","lowerKey","currTime","keepFocusOnCurrent","FormLabel","asterisk","InputLabel","_props$disableAnimati","disableAnimation","shrinkProp","shrink","animated"],"mappings":"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AG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG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AAI,CACFrzG,KAAM,GACNnB,MAAO,EACPqurB,YAAY,GAEdK,KAAM,CACJvtrB,KAAM,OACNnB,MAAO,GACPqurB,YAAY,GAEdM,MAAO,CACLxtrB,KAAM,QACNnB,MAAO,IACPqurB,YAAY,GAEdO,KAAM,CACJztrB,KAAM,OACNnB,MAAO,IACPqurB,YAAY,GAEdQ,KAAM,CACJ1trB,KAAM,OACNnB,MAAO,IACPqurB,YAAY,GAEdS,KAAM,CACJ3trB,KAAM,OACNnB,MAAO,IACPqurB,YAAY,GAEdU,KAAM,CACJ5trB,KAAM,OACNnB,MAAO,KACPqurB,YAAY,GAEdW,KAAM,CACJ7trB,KAAM,OACNnB,MAAO,KACPqurB,YAAY,GAEdY,IAAK,CACH9trB,KAAM,MACNnB,MAAO,KACPqurB,YAAY,GAEda,MAAO,CACL/trB,KAAM,QACNnB,MAAO,KACPqurB,YAAY,GAEdc,MAAO,CACLhurB,KAAM,QACNnB,MAAO,KACPqurB,YAAY,GAEde,KAAM,CACJjurB,KAAM,OACNnB,MAAO,GACPqurB,YAAY,GAEdgB,MAAO,CACLlurB,KAAM,QACNnB,MAAO,IACPqurB,YAAY,GAEdiB,MAAO,CACLnurB,KAAM,QACNnB,MAAO,KACPqurB,YAAY,GAEdkB,MAAO,CACLpurB,KAAM,QACNnB,MAAO,KACPqurB,YAAY,GAEdmB,KAAM,CACJrurB,KAAM,OACNnB,MAAO,KACPqurB,YAAY,GAEdoB,KAAM,CACJturB,KAAM,OACNnB,MAAO,MACPqurB,YAAY,GAEdqB,MAAO,CACLvurB,KAAM,QACNnB,MAAO,MACPqurB,YAAY,GAEdsB,KAAM,CACJxurB,KAAM,OACNnB,MAAO,MACPqurB,YAAY,GAEduB,MAAO,CACLzurB,KAAM,QACNnB,MAAO,MACPqurB,YAAY,GAEdwB,MAAO,CACL1urB,KAAM,QACNnB,MAAO,MACPqurB,YAAY,IAGhByB,QAAS,CACP,GAAI,CACF3urB,KAAM,GACNnB,MAAO,EACPqurB,YAAY,GAEdvmrB,GAAI,CACF3G,KAAM,KACNnB,MAAO,IACPqurB,YAAY,GAEdrsmB,EAAG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L,aACAU,eACAjmd,YACAlmL,SACA0yoB,eACArnoB,UACAk7U,WAMS3lS,GAAyB42lB,GAAc,CAChDrL,eACAnsoB,SACAqL,UACAk7U,WAESqxT,GAAwBF,GAAa,CAC9CvL,eACAnsoB,SACAqL,UACAk7U,WAaSuxT,GAA+BH,GAAyB,CACjEC,UACAh3lB,aA+BSjjD,GAAqBg7oB,GAAU,CACxC/viB,aACAiwiB,QACAD,kBACA33qB,QACAslX,WAcS9pX,GAAqBk9qB,GAAU,CACxCpzT,WAEStnU,GAAuB26nB,GAAY,CAC5C55oB,SACA0yoB,eACArnoB,UACAnL,SACAqmV,WAES1vV,GAA0BgjpB,GAAe,CAClDjxiB,aACAjrG,OACA+0oB,eACArnoB,UACAutoB,kBACAryT,WA2BS3pX,GAAqB0+qB,GAAU,CACxCllhB,WACAp2H,SACAsylB,YACAz5nB,YACAwyC,UACAxU,YACAo8G,UACAszO,WAgGSi2T,GAA2BL,GAAgB,CACpD1Q,aACAllT,WAsBSjR,GAAyBgnU,GAAc,CAChDE,aACAlqD,YACAr/e,YAgESvuI,GAAsBm4qB,GAAW,CAC1C78oB,SACA0yoB,eACArnoB,UACAnL,SACAqmV,WAES59O,GAA0Bm0iB,GAAe,CAClD3Q,eACAvjiB,aACA8piB,eACArnoB,UACAk7U,SACAw2T,gBA8BShlf,GAAuBolf,GAAY,CAC5ChR,eACAuG,eACArnoB,UACAk7U,WAwBS2iM,GAAqBk0H,GAAU,CACxChnhB,WACA1xJ,QACAu6C,SACA5T,UACAk7U,WAmCSs3T,GAA8BP,GAAmB,CAC1DhoU,WACAiR,WA0BSi3T,GAAqBD,GAAe,CAC7CzF,iBACAlviB,aACA8piB,iBAWS4M,GAAqB1B,GAAU,CACxCzR,eACAqR,OACA7K,gBACAl2qB,OACAmsI,aACAi1iB,gBACAnL,eACAkF,UACAvsoB,UACAutoB,kBACAjwiB,YACA49O,SACAw2T,gBAcSpmpB,GAAqB0opB,GAAU,CACxCC,OACAj0oB,UACAxU,YACA8xG,YACA49O,SACAw2T,gBAwFS92nB,GAAqBy5nB,GAAU,CACxCjjrB,OACAms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","file":"static/js/2.eb2fd6ea.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","module.exports = require(\"regenerator-runtime\");\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","function accessor (fn, fields, name) {\n fn.fields = fields || [];\n fn.fname = name;\n return fn;\n}\nfunction accessorName(fn) {\n return fn == null ? null : fn.fname;\n}\nfunction accessorFields(fn) {\n return fn == null ? null : fn.fields;\n}\n\nfunction getter (path) {\n return path.length === 1 ? get1(path[0]) : getN(path);\n}\n\nconst get1 = field => function (obj) {\n return obj[field];\n};\n\nconst getN = path => {\n const len = path.length;\n return function (obj) {\n for (let i = 0; i < len; ++i) {\n obj = obj[path[i]];\n }\n\n return obj;\n };\n};\n\nfunction error (message) {\n throw Error(message);\n}\n\nfunction splitAccessPath (p) {\n const path = [],\n n = p.length;\n let q = null,\n b = 0,\n s = '',\n i,\n j,\n c;\n p = p + '';\n\n function push() {\n path.push(s + p.substring(i, j));\n s = '';\n i = j + 1;\n }\n\n for (i = j = 0; j < n; ++j) {\n c = p[j];\n\n if (c === '\\\\') {\n s += p.substring(i, j);\n s += p.substring(++j, ++j);\n i = j;\n } else if (c === q) {\n push();\n q = null;\n b = -1;\n } else if (q) {\n continue;\n } else if (i === b && c === '\"') {\n i = j + 1;\n q = c;\n } else if (i === b && c === \"'\") {\n i = j + 1;\n q = c;\n } else if (c === '.' && !b) {\n if (j > i) {\n push();\n } else {\n i = j + 1;\n }\n } else if (c === '[') {\n if (j > i) push();\n b = i = j + 1;\n } else if (c === ']') {\n if (!b) error('Access path missing open bracket: ' + p);\n if (b > 0) push();\n b = 0;\n i = j + 1;\n }\n }\n\n if (b) error('Access path missing closing bracket: ' + p);\n if (q) error('Access path missing closing quote: ' + p);\n\n if (j > i) {\n j++;\n push();\n }\n\n return path;\n}\n\nfunction field (field, name, opt) {\n const path = splitAccessPath(field);\n field = path.length === 1 ? path[0] : field;\n return accessor((opt && opt.get || getter)(path), [field], name || field);\n}\n\nconst id = field('id');\nconst identity = accessor(_ => _, [], 'identity');\nconst zero = accessor(() => 0, [], 'zero');\nconst one = accessor(() => 1, [], 'one');\nconst truthy = accessor(() => true, [], 'true');\nconst falsy = accessor(() => false, [], 'false');\n\nfunction log$1(method, level, input) {\n const args = [level].concat([].slice.call(input));\n console[method].apply(console, args); // eslint-disable-line no-console\n}\n\nconst None = 0;\nconst Error$1 = 1;\nconst Warn = 2;\nconst Info = 3;\nconst Debug = 4;\nfunction logger (_, method, handler = log$1) {\n let level = _ || None;\n return {\n level(_) {\n if (arguments.length) {\n level = +_;\n return this;\n } else {\n return level;\n }\n },\n\n error() {\n if (level >= Error$1) handler(method || 'error', 'ERROR', arguments);\n return this;\n },\n\n warn() {\n if (level >= Warn) handler(method || 'warn', 'WARN', arguments);\n return this;\n },\n\n info() {\n if (level >= Info) handler(method || 'log', 'INFO', arguments);\n return this;\n },\n\n debug() {\n if (level >= Debug) handler(method || 'log', 'DEBUG', arguments);\n return this;\n }\n\n };\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (_) {\n return _ === Object(_);\n}\n\nconst isLegalKey = key => key !== '__proto__';\n\nfunction mergeConfig(...configs) {\n return configs.reduce((out, source) => {\n for (const key in source) {\n if (key === 'signals') {\n // for signals, we merge the signals arrays\n // source signals take precedence over\n // existing signals with the same name\n out.signals = mergeNamed(out.signals, source.signals);\n } else {\n // otherwise, merge objects subject to recursion constraints\n // for legend block, recurse for the layout entry only\n // for style block, recurse for all properties\n // otherwise, no recursion: objects overwrite, no merging\n const r = key === 'legend' ? {\n layout: 1\n } : key === 'style' ? true : null;\n writeConfig(out, key, source[key], r);\n }\n }\n\n return out;\n }, {});\n}\nfunction writeConfig(output, key, value, recurse) {\n if (!isLegalKey(key)) return;\n let k, o;\n\n if (isObject(value) && !isArray(value)) {\n o = isObject(output[key]) ? output[key] : output[key] = {};\n\n for (k in value) {\n if (recurse && (recurse === true || recurse[k])) {\n writeConfig(o, k, value[k]);\n } else if (isLegalKey(k)) {\n o[k] = value[k];\n }\n }\n } else {\n output[key] = value;\n }\n}\n\nfunction mergeNamed(a, b) {\n if (a == null) return b;\n const map = {},\n out = [];\n\n function add(_) {\n if (!map[_.name]) {\n map[_.name] = 1;\n out.push(_);\n }\n }\n\n b.forEach(add);\n a.forEach(add);\n return out;\n}\n\nfunction peek (array) {\n return array[array.length - 1];\n}\n\nfunction toNumber (_) {\n return _ == null || _ === '' ? null : +_;\n}\n\nconst exp = sign => x => sign * Math.exp(x);\n\nconst log = sign => x => Math.log(sign * x);\n\nconst symlog = c => x => Math.sign(x) * Math.log1p(Math.abs(x / c));\n\nconst symexp = c => x => Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n\nconst pow = exponent => x => x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n\nfunction pan(domain, delta, lift, ground) {\n const d0 = lift(domain[0]),\n d1 = lift(peek(domain)),\n dd = (d1 - d0) * delta;\n return [ground(d0 - dd), ground(d1 - dd)];\n}\n\nfunction panLinear(domain, delta) {\n return pan(domain, delta, toNumber, identity);\n}\nfunction panLog(domain, delta) {\n var sign = Math.sign(domain[0]);\n return pan(domain, delta, log(sign), exp(sign));\n}\nfunction panPow(domain, delta, exponent) {\n return pan(domain, delta, pow(exponent), pow(1 / exponent));\n}\nfunction panSymlog(domain, delta, constant) {\n return pan(domain, delta, symlog(constant), symexp(constant));\n}\n\nfunction zoom(domain, anchor, scale, lift, ground) {\n const d0 = lift(domain[0]),\n d1 = lift(peek(domain)),\n da = anchor != null ? lift(anchor) : (d0 + d1) / 2;\n return [ground(da + (d0 - da) * scale), ground(da + (d1 - da) * scale)];\n}\n\nfunction zoomLinear(domain, anchor, scale) {\n return zoom(domain, anchor, scale, toNumber, identity);\n}\nfunction zoomLog(domain, anchor, scale) {\n const sign = Math.sign(domain[0]);\n return zoom(domain, anchor, scale, log(sign), exp(sign));\n}\nfunction zoomPow(domain, anchor, scale, exponent) {\n return zoom(domain, anchor, scale, pow(exponent), pow(1 / exponent));\n}\nfunction zoomSymlog(domain, anchor, scale, constant) {\n return zoom(domain, anchor, scale, symlog(constant), symexp(constant));\n}\n\nfunction quarter(date) {\n return 1 + ~~(new Date(date).getMonth() / 3);\n}\nfunction utcquarter(date) {\n return 1 + ~~(new Date(date).getUTCMonth() / 3);\n}\n\nfunction array (_) {\n return _ != null ? isArray(_) ? _ : [_] : [];\n}\n\n/**\n * Span-preserving range clamp. If the span of the input range is less\n * than (max - min) and an endpoint exceeds either the min or max value,\n * the range is translated such that the span is preserved and one\n * endpoint touches the boundary of the min/max range.\n * If the span exceeds (max - min), the range [min, max] is returned.\n */\nfunction clampRange (range, min, max) {\n let lo = range[0],\n hi = range[1],\n span;\n\n if (hi < lo) {\n span = hi;\n hi = lo;\n lo = span;\n }\n\n span = hi - lo;\n return span >= max - min ? [min, max] : [lo = Math.min(Math.max(lo, min), max - span), lo + span];\n}\n\nfunction isFunction (_) {\n return typeof _ === 'function';\n}\n\nconst DESCENDING = 'descending';\nfunction compare (fields, orders, opt) {\n opt = opt || {};\n orders = array(orders) || [];\n const ord = [],\n get = [],\n fmap = {},\n gen = opt.comparator || comparator;\n array(fields).forEach((f, i) => {\n if (f == null) return;\n ord.push(orders[i] === DESCENDING ? -1 : 1);\n get.push(f = isFunction(f) ? f : field(f, null, opt));\n (accessorFields(f) || []).forEach(_ => fmap[_] = 1);\n });\n return get.length === 0 ? null : accessor(gen(get, ord), Object.keys(fmap));\n}\nconst ascending = (u, v) => (u < v || u == null) && v != null ? -1 : (u > v || v == null) && u != null ? 1 : (v = v instanceof Date ? +v : v, u = u instanceof Date ? +u : u) !== u && v === v ? -1 : v !== v && u === u ? 1 : 0;\n\nconst comparator = (fields, orders) => fields.length === 1 ? compare1(fields[0], orders[0]) : compareN(fields, orders, fields.length);\n\nconst compare1 = (field, order) => function (a, b) {\n return ascending(field(a), field(b)) * order;\n};\n\nconst compareN = (fields, orders, n) => {\n orders.push(0); // pad zero for convenient lookup\n\n return function (a, b) {\n let f,\n c = 0,\n i = -1;\n\n while (c === 0 && ++i < n) {\n f = fields[i];\n c = ascending(f(a), f(b));\n }\n\n return c * orders[i];\n };\n};\n\nfunction constant (_) {\n return isFunction(_) ? _ : () => _;\n}\n\nfunction debounce (delay, handler) {\n let tid;\n return e => {\n if (tid) clearTimeout(tid);\n tid = setTimeout(() => (handler(e), tid = null), delay);\n };\n}\n\nfunction extend (_) {\n for (let x, k, i = 1, len = arguments.length; i < len; ++i) {\n x = arguments[i];\n\n for (k in x) {\n _[k] = x[k];\n }\n }\n\n return _;\n}\n\n/**\n * Return an array with minimum and maximum values, in the\n * form [min, max]. Ignores null, undefined, and NaN values.\n */\nfunction extent (array, f) {\n let i = 0,\n n,\n v,\n min,\n max;\n\n if (array && (n = array.length)) {\n if (f == null) {\n // find first valid value\n for (v = array[i]; i < n && (v == null || v !== v); v = array[++i]);\n\n min = max = v; // visit all other values\n\n for (; i < n; ++i) {\n v = array[i]; // skip null/undefined; NaN will fail all comparisons\n\n if (v != null) {\n if (v < min) min = v;\n if (v > max) max = v;\n }\n }\n } else {\n // find first valid value\n for (v = f(array[i]); i < n && (v == null || v !== v); v = f(array[++i]));\n\n min = max = v; // visit all other values\n\n for (; i < n; ++i) {\n v = f(array[i]); // skip null/undefined; NaN will fail all comparisons\n\n if (v != null) {\n if (v < min) min = v;\n if (v > max) max = v;\n }\n }\n }\n }\n\n return [min, max];\n}\n\nfunction extentIndex (array, f) {\n const n = array.length;\n let i = -1,\n a,\n b,\n c,\n u,\n v;\n\n if (f == null) {\n while (++i < n) {\n b = array[i];\n\n if (b != null && b >= b) {\n a = c = b;\n break;\n }\n }\n\n if (i === n) return [-1, -1];\n u = v = i;\n\n while (++i < n) {\n b = array[i];\n\n if (b != null) {\n if (a > b) {\n a = b;\n u = i;\n }\n\n if (c < b) {\n c = b;\n v = i;\n }\n }\n }\n } else {\n while (++i < n) {\n b = f(array[i], i, array);\n\n if (b != null && b >= b) {\n a = c = b;\n break;\n }\n }\n\n if (i === n) return [-1, -1];\n u = v = i;\n\n while (++i < n) {\n b = f(array[i], i, array);\n\n if (b != null) {\n if (a > b) {\n a = b;\n u = i;\n }\n\n if (c < b) {\n c = b;\n v = i;\n }\n }\n }\n }\n\n return [u, v];\n}\n\nconst hop = Object.prototype.hasOwnProperty;\nfunction has (object, property) {\n return hop.call(object, property);\n}\n\nconst NULL = {};\nfunction fastmap (input) {\n let obj = {},\n test;\n\n function has$1(key) {\n return has(obj, key) && obj[key] !== NULL;\n }\n\n const map = {\n size: 0,\n empty: 0,\n object: obj,\n has: has$1,\n\n get(key) {\n return has$1(key) ? obj[key] : undefined;\n },\n\n set(key, value) {\n if (!has$1(key)) {\n ++map.size;\n if (obj[key] === NULL) --map.empty;\n }\n\n obj[key] = value;\n return this;\n },\n\n delete(key) {\n if (has$1(key)) {\n --map.size;\n ++map.empty;\n obj[key] = NULL;\n }\n\n return this;\n },\n\n clear() {\n map.size = map.empty = 0;\n map.object = obj = {};\n },\n\n test(_) {\n if (arguments.length) {\n test = _;\n return map;\n } else {\n return test;\n }\n },\n\n clean() {\n const next = {};\n let size = 0;\n\n for (const key in obj) {\n const value = obj[key];\n\n if (value !== NULL && (!test || !test(value))) {\n next[key] = value;\n ++size;\n }\n }\n\n map.size = size;\n map.empty = 0;\n map.object = obj = next;\n }\n\n };\n if (input) Object.keys(input).forEach(key => {\n map.set(key, input[key]);\n });\n return map;\n}\n\nfunction flush (range, value, threshold, left, right, center) {\n if (!threshold && threshold !== 0) return center;\n const t = +threshold;\n let a = range[0],\n b = peek(range),\n l; // swap endpoints if range is reversed\n\n if (b < a) {\n l = a;\n a = b;\n b = l;\n } // compare value to endpoints\n\n\n l = Math.abs(value - a);\n const r = Math.abs(b - value); // adjust if value is within threshold distance of endpoint\n\n return l < r && l <= t ? left : r <= t ? right : center;\n}\n\nfunction inherits (child, parent, members) {\n const proto = child.prototype = Object.create(parent.prototype);\n Object.defineProperty(proto, 'constructor', {\n value: child,\n writable: true,\n enumerable: true,\n configurable: true\n });\n return extend(proto, members);\n}\n\n/**\n * Predicate that returns true if the value lies within the span\n * of the given range. The left and right flags control the use\n * of inclusive (true) or exclusive (false) comparisons.\n */\nfunction inrange (value, range, left, right) {\n let r0 = range[0],\n r1 = range[range.length - 1],\n t;\n\n if (r0 > r1) {\n t = r0;\n r0 = r1;\n r1 = t;\n }\n\n left = left === undefined || left;\n right = right === undefined || right;\n return (left ? r0 <= value : r0 < value) && (right ? value <= r1 : value < r1);\n}\n\nfunction isBoolean (_) {\n return typeof _ === 'boolean';\n}\n\nfunction isDate (_) {\n return Object.prototype.toString.call(_) === '[object Date]';\n}\n\nfunction isIterable (_) {\n return _ && isFunction(_[Symbol.iterator]);\n}\n\nfunction isNumber (_) {\n return typeof _ === 'number';\n}\n\nfunction isRegExp (_) {\n return Object.prototype.toString.call(_) === '[object RegExp]';\n}\n\nfunction isString (_) {\n return typeof _ === 'string';\n}\n\nfunction key (fields, flat, opt) {\n if (fields) {\n fields = flat ? array(fields).map(f => f.replace(/\\\\(.)/g, '$1')) : array(fields);\n }\n\n const len = fields && fields.length,\n gen = opt && opt.get || getter,\n map = f => gen(flat ? [f] : splitAccessPath(f));\n\n let fn;\n\n if (!len) {\n fn = function () {\n return '';\n };\n } else if (len === 1) {\n const get = map(fields[0]);\n\n fn = function (_) {\n return '' + get(_);\n };\n } else {\n const get = fields.map(map);\n\n fn = function (_) {\n let s = '' + get[0](_),\n i = 0;\n\n while (++i < len) s += '|' + get[i](_);\n\n return s;\n };\n }\n\n return accessor(fn, fields, 'key');\n}\n\nfunction lerp (array, frac) {\n const lo = array[0],\n hi = peek(array),\n f = +frac;\n return !f ? lo : f === 1 ? hi : lo + f * (hi - lo);\n}\n\nconst DEFAULT_MAX_SIZE = 10000; // adapted from https://github.com/dominictarr/hashlru/ (MIT License)\n\nfunction lruCache (maxsize) {\n maxsize = +maxsize || DEFAULT_MAX_SIZE;\n let curr, prev, size;\n\n const clear = () => {\n curr = {};\n prev = {};\n size = 0;\n };\n\n const update = (key, value) => {\n if (++size > maxsize) {\n prev = curr;\n curr = {};\n size = 1;\n }\n\n return curr[key] = value;\n };\n\n clear();\n return {\n clear,\n has: key => has(curr, key) || has(prev, key),\n get: key => has(curr, key) ? curr[key] : has(prev, key) ? update(key, prev[key]) : undefined,\n set: (key, value) => has(curr, key) ? curr[key] = value : update(key, value)\n };\n}\n\nfunction merge (compare, array0, array1, output) {\n const n0 = array0.length,\n n1 = array1.length;\n if (!n1) return array0;\n if (!n0) return array1;\n const merged = output || new array0.constructor(n0 + n1);\n let i0 = 0,\n i1 = 0,\n i = 0;\n\n for (; i0 < n0 && i1 < n1; ++i) {\n merged[i] = compare(array0[i0], array1[i1]) > 0 ? array1[i1++] : array0[i0++];\n }\n\n for (; i0 < n0; ++i0, ++i) {\n merged[i] = array0[i0];\n }\n\n for (; i1 < n1; ++i1, ++i) {\n merged[i] = array1[i1];\n }\n\n return merged;\n}\n\nfunction repeat (str, reps) {\n let s = '';\n\n while (--reps >= 0) s += str;\n\n return s;\n}\n\nfunction pad (str, length, padchar, align) {\n const c = padchar || ' ',\n s = str + '',\n n = length - s.length;\n return n <= 0 ? s : align === 'left' ? repeat(c, n) + s : align === 'center' ? repeat(c, ~~(n / 2)) + s + repeat(c, Math.ceil(n / 2)) : s + repeat(c, n);\n}\n\n/**\n * Return the numerical span of an array: the difference between\n * the last and first values.\n */\n\nfunction span (array) {\n return array && peek(array) - array[0] || 0;\n}\n\nfunction $(x) {\n return isArray(x) ? '[' + x.map($) + ']' : isObject(x) || isString(x) ? // Output valid JSON and JS source strings.\n // See http://timelessrepo.com/json-isnt-a-javascript-subset\n JSON.stringify(x).replace('\\u2028', '\\\\u2028').replace('\\u2029', '\\\\u2029') : x;\n}\n\nfunction toBoolean (_) {\n return _ == null || _ === '' ? null : !_ || _ === 'false' || _ === '0' ? false : !!_;\n}\n\nconst defaultParser = _ => isNumber(_) ? _ : isDate(_) ? _ : Date.parse(_);\n\nfunction toDate (_, parser) {\n parser = parser || defaultParser;\n return _ == null || _ === '' ? null : parser(_);\n}\n\nfunction toString (_) {\n return _ == null || _ === '' ? null : _ + '';\n}\n\nfunction toSet (_) {\n const s = {},\n n = _.length;\n\n for (let i = 0; i < n; ++i) s[_[i]] = true;\n\n return s;\n}\n\nfunction truncate (str, length, align, ellipsis) {\n const e = ellipsis != null ? ellipsis : '\\u2026',\n s = str + '',\n n = s.length,\n l = Math.max(0, length - e.length);\n return n <= length ? s : align === 'left' ? e + s.slice(n - l) : align === 'center' ? s.slice(0, Math.ceil(l / 2)) + e + s.slice(n - ~~(l / 2)) : s.slice(0, l) + e;\n}\n\nfunction visitArray (array, filter, visitor) {\n if (array) {\n if (filter) {\n const n = array.length;\n\n for (let i = 0; i < n; ++i) {\n const t = filter(array[i]);\n if (t) visitor(t, i, array);\n }\n } else {\n array.forEach(visitor);\n }\n }\n}\n\nexport { Debug, Error$1 as Error, Info, None, Warn, accessor, accessorFields, accessorName, array, ascending, clampRange, compare, constant, debounce, error, extend, extent, extentIndex, falsy, fastmap, field, flush, has as hasOwnProperty, id, identity, inherits, inrange, isArray, isBoolean, isDate, isFunction, isIterable, isNumber, isObject, isRegExp, isString, key, lerp, logger, lruCache, merge, mergeConfig, one, pad, panLinear, panLog, panPow, panSymlog, peek, quarter, repeat, span, splitAccessPath, $ as stringValue, toBoolean, toDate, toNumber, toSet, toString, truncate, truthy, utcquarter, visitArray, writeConfig, zero, zoomLinear, zoomLog, zoomPow, zoomSymlog };\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import {Log} from 'probe.gl';\n\nexport default new Log({id: 'deck'});\n","/** @typedef {import('./device-pixels')} types */\n\n/**\n * Returns multiplier need to convert CSS size to Device size\n * @type {types['cssToDeviceRatio']}\n */\nexport function cssToDeviceRatio(gl) {\n // @ts-ignore\n const {luma} = gl;\n\n if (gl.canvas && luma) {\n // For headless gl we might have used custom width and height\n // hence use cached clientWidth\n const {clientWidth} = luma.canvasSizeInfo;\n return clientWidth ? gl.drawingBufferWidth / clientWidth : 1;\n }\n // use default device pixel ratio\n return 1;\n}\n\n/**\n * Maps CSS pixel position to device pixel position\n * @type {types['cssToDevicePixels']}\n */\nexport function cssToDevicePixels(gl, cssPixel, yInvert = true) {\n const ratio = cssToDeviceRatio(gl);\n const width = gl.drawingBufferWidth;\n const height = gl.drawingBufferHeight;\n return scalePixels(cssPixel, ratio, width, height, yInvert);\n}\n\n// HELPER METHOD\n\n/**\n * Calulates device pixel ratio, used during context creation\n * @type {types['getDevicePixelRatio']}\n */\nexport function getDevicePixelRatio(useDevicePixels) {\n const windowRatio = typeof window === 'undefined' ? 1 : window.devicePixelRatio || 1;\n if (Number.isFinite(useDevicePixels)) {\n // @ts-ignore Can no longer be boolean after previous line\n return useDevicePixels <= 0 ? 1 : useDevicePixels;\n }\n return useDevicePixels ? windowRatio : 1;\n}\n\n// PRIVATE\n\nfunction scalePixels(pixel, ratio, width, height, yInvert) {\n const x = scaleX(pixel[0], ratio, width);\n let y = scaleY(pixel[1], ratio, height, yInvert);\n\n // Find boundaries of next pixel to provide valid range of device pixel locaitons\n\n let t = scaleX(pixel[0] + 1, ratio, width);\n // If next pixel's position is clamped to boundary, use it as is, otherwise subtract 1 for current pixel boundary\n const xHigh = t === width - 1 ? t : t - 1;\n\n t = scaleY(pixel[1] + 1, ratio, height, yInvert);\n let yHigh;\n if (yInvert) {\n // If next pixel's position is clamped to boundary, use it as is, otherwise clamp it to valid range\n t = t === 0 ? t : t + 1;\n // swap y and yHigh\n yHigh = y;\n y = t;\n } else {\n // If next pixel's position is clamped to boundary, use it as is, otherwise clamp it to valid range\n yHigh = t === height - 1 ? t : t - 1;\n // y remains same\n }\n return {\n x,\n y,\n // when ratio < 1, current css pixel and next css pixel may point to same device pixel, set width/height to 1 in those cases.\n width: Math.max(xHigh - x + 1, 1),\n height: Math.max(yHigh - y + 1, 1)\n };\n}\n\nfunction scaleX(x, ratio, width) {\n // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit\n const r = Math.min(Math.round(x * ratio), width - 1);\n return r;\n}\n\nfunction scaleY(y, ratio, height, yInvert) {\n // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit\n return yInvert\n ? Math.max(0, height - 1 - Math.round(y * ratio))\n : Math.min(Math.round(y * ratio), height - 1);\n}\n","// WebGLRenderingContext related methods\n\n/** @typedef {import('./context')} types */\n\n/* eslint-disable quotes */\nimport GL from '@luma.gl/constants';\nimport {global, isBrowser as getIsBrowser} from 'probe.gl/env';\nimport {trackContextState} from '../state-tracker/track-context-state';\n\nimport {log} from '../utils/log';\nimport {assert} from '../utils/assert';\nimport {getDevicePixelRatio} from '../utils/device-pixels';\nimport {isWebGL2} from '../utils/webgl-checks';\n\nconst isBrowser = getIsBrowser();\nconst isPage = isBrowser && typeof document !== 'undefined';\n\nconst CONTEXT_DEFAULTS = {\n // COMMON CONTEXT PARAMETERS\n // Attempt to allocate WebGL2 context\n webgl2: true, // Attempt to create a WebGL2 context (false to force webgl1)\n webgl1: true, // Attempt to create a WebGL1 context (false to fail if webgl2 not available)\n throwOnError: true,\n manageState: true,\n // BROWSER CONTEXT PARAMETERS\n canvas: null, // A canvas element or a canvas string id\n debug: false, // Instrument context (at the expense of performance)\n // HEADLESS CONTEXT PARAMETERS\n width: 800, // width are height are only used by headless gl\n height: 600\n // WEBGL/HEADLESS CONTEXT PARAMETERS\n // Remaining options are passed through to context creator\n};\n\n/**\n * Creates a context giving access to the WebGL API\n * @type {types['createGLContext']}\n */\n/* eslint-disable complexity, max-statements */\nexport function createGLContext(options = {}) {\n assert(\n isBrowser,\n \"createGLContext only available in the browser.\\nCreate your own headless context or use 'createHeadlessContext' from @luma.gl/test-utils\"\n );\n\n options = Object.assign({}, CONTEXT_DEFAULTS, options);\n const {width, height} = options;\n\n // Error reporting function, enables exceptions to be disabled\n function onError(message) {\n if (options.throwOnError) {\n throw new Error(message);\n }\n // eslint-disable-next-line\n console.error(message);\n return null;\n }\n options.onError = onError;\n\n let gl;\n // Get or create a canvas\n const {canvas} = options;\n const targetCanvas = getCanvas({canvas, width, height, onError});\n // Create a WebGL context in the canvas\n gl = createBrowserContext(targetCanvas, options);\n\n if (!gl) {\n return null;\n }\n\n gl = instrumentGLContext(gl, options);\n\n // Log some debug info about the newly created context\n logInfo(gl);\n\n // Add to seer integration\n return gl;\n}\n\n/**\n * Creates a context giving access to the WebGL API\n * @type {types['instrumentGLContext']}\n */\nexport function instrumentGLContext(gl, options = {}) {\n // Avoid multiple instrumentations\n // @ts-ignore\n if (!gl || gl._instrumented) {\n return gl;\n }\n\n // @ts-ignore\n gl._version = gl._version || getVersion(gl);\n\n // Cache canvas size information to avoid setting it on every frame.\n // @ts-ignore\n gl.luma = gl.luma || {};\n // @ts-ignore\n gl.luma.canvasSizeInfo = gl.luma.canvasSizeInfo || {};\n\n options = Object.assign({}, CONTEXT_DEFAULTS, options);\n const {manageState, debug} = options;\n\n // Install context state tracking\n if (manageState) {\n trackContextState(gl, {\n copyState: false,\n log: (...args) => log.log(1, ...args)()\n });\n }\n\n // Add debug instrumentation to the context\n if (isBrowser && debug) {\n // @ts-ignore\n if (!global.makeDebugContext) {\n log.warn('WebGL debug mode not activated. import \"@luma.gl/debug\" to enable.')();\n } else {\n // @ts-ignore\n gl = global.makeDebugContext(gl, options);\n // Debug forces log level to at least 1\n log.level = Math.max(log.level, 1);\n }\n }\n\n // @ts-ignore\n gl._instrumented = true;\n\n return gl;\n}\n\n/**\n * Provides strings identifying the GPU vendor and driver.\n * @type {types['getContextDebugInfo']}\n */\nexport function getContextDebugInfo(gl) {\n const vendorMasked = gl.getParameter(GL.VENDOR);\n const rendererMasked = gl.getParameter(GL.RENDERER);\n const ext = gl.getExtension('WEBGL_debug_renderer_info');\n const vendorUnmasked = ext && gl.getParameter(ext.UNMASKED_VENDOR_WEBGL || GL.VENDOR);\n const rendererUnmasked = ext && gl.getParameter(ext.UNMASKED_RENDERER_WEBGL || GL.RENDERER);\n return {\n vendor: vendorUnmasked || vendorMasked,\n renderer: rendererUnmasked || rendererMasked,\n vendorMasked,\n rendererMasked,\n version: gl.getParameter(GL.VERSION),\n shadingLanguageVersion: gl.getParameter(GL.SHADING_LANGUAGE_VERSION)\n };\n}\n\n/**\n * Resize the canvas' drawing buffer.\n * @type {types['resizeGLContext']}\n */\nexport function resizeGLContext(gl, options = {}) {\n // Resize browser context\n if (gl.canvas) {\n const devicePixelRatio = getDevicePixelRatio(options.useDevicePixels);\n setDevicePixelRatio(gl, devicePixelRatio, options);\n return;\n }\n\n // Resize headless gl context\n const ext = gl.getExtension('STACKGL_resize_drawingbuffer');\n if (ext && `width` in options && `height` in options) {\n ext.resize(options.width, options.height);\n }\n}\n\n// HELPER METHODS\n\n/**\n * Create a WebGL context for a canvas\n * Note calling this multiple time on the same canvas does return the same context\n */\n\nfunction createBrowserContext(canvas, options) {\n const {onError} = options;\n\n // Try to extract any extra information about why context creation failed\n let errorMessage = null;\n const onCreateError = error => (errorMessage = error.statusMessage || errorMessage);\n canvas.addEventListener('webglcontextcreationerror', onCreateError, false);\n\n const {webgl1 = true, webgl2 = true} = options;\n let gl = null;\n // Prefer webgl2 over webgl1, prefer conformant over experimental\n if (webgl2) {\n gl = gl || canvas.getContext('webgl2', options);\n gl = gl || canvas.getContext('experimental-webgl2', options);\n }\n if (webgl1) {\n gl = gl || canvas.getContext('webgl', options);\n gl = gl || canvas.getContext('experimental-webgl', options);\n }\n\n canvas.removeEventListener('webglcontextcreationerror', onCreateError, false);\n\n if (!gl) {\n return onError(\n `Failed to create ${webgl2 && !webgl1 ? 'WebGL2' : 'WebGL'} context: ${errorMessage ||\n 'Unknown error'}`\n );\n }\n\n if (options.onContextLost) {\n canvas.addEventListener('webglcontextlost', options.onContextLost, false);\n }\n\n if (options.onContextRestored) {\n canvas.addEventListener('webglcontextrestored', options.onContextRestored, false);\n }\n\n return gl;\n}\n\nfunction getCanvas({canvas, width = 800, height = 600, onError}) {\n let targetCanvas;\n if (typeof canvas === 'string') {\n const isPageLoaded = isPage && document.readyState === 'complete';\n if (!isPageLoaded) {\n onError(`createGLContext called on canvas '${canvas}' before page was loaded`);\n }\n targetCanvas = document.getElementById(canvas);\n } else if (canvas) {\n targetCanvas = canvas;\n } else {\n targetCanvas = document.createElement('canvas');\n targetCanvas.id = 'lumagl-canvas';\n targetCanvas.style.width = Number.isFinite(width) ? `${width}px` : '100%';\n targetCanvas.style.height = Number.isFinite(height) ? `${height}px` : '100%';\n document.body.insertBefore(targetCanvas, document.body.firstChild);\n }\n\n return targetCanvas;\n}\n\nfunction logInfo(gl) {\n const webGL = isWebGL2(gl) ? 'WebGL2' : 'WebGL1';\n const info = getContextDebugInfo(gl);\n const driver = info ? `(${info.vendor},${info.renderer})` : '';\n const debug = gl.debug ? ' debug' : '';\n log.info(1, `${webGL}${debug} context ${driver}`)();\n}\n\nfunction getVersion(gl) {\n if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {\n // WebGL2 context.\n return 2;\n }\n // Must be a WebGL1 context.\n return 1;\n}\n\n// use devicePixelRatio to set canvas width and height\nfunction setDevicePixelRatio(gl, devicePixelRatio, options) {\n // NOTE: if options.width and options.height not used remove in v8\n let clientWidth = 'width' in options ? options.width : gl.canvas.clientWidth;\n let clientHeight = 'height' in options ? options.height : gl.canvas.clientHeight;\n\n if (!clientWidth || !clientHeight) {\n log.log(1, 'Canvas clientWidth/clientHeight is 0')();\n // by forcing devicePixel ratio to 1, we do not scale gl.canvas.width and height in each frame.\n devicePixelRatio = 1;\n clientWidth = gl.canvas.width || 1;\n clientHeight = gl.canvas.height || 1;\n }\n\n gl.luma = gl.luma || {};\n gl.luma.canvasSizeInfo = gl.luma.canvasSizeInfo || {};\n const cachedSize = gl.luma.canvasSizeInfo;\n // Check if canvas needs to be resized\n if (\n cachedSize.clientWidth !== clientWidth ||\n cachedSize.clientHeight !== clientHeight ||\n cachedSize.devicePixelRatio !== devicePixelRatio\n ) {\n let clampedPixelRatio = devicePixelRatio;\n\n const canvasWidth = Math.floor(clientWidth * clampedPixelRatio);\n const canvasHeight = Math.floor(clientHeight * clampedPixelRatio);\n gl.canvas.width = canvasWidth;\n gl.canvas.height = canvasHeight;\n\n // Note: when devicePixelRatio is too high, it is possible we might hit system limit for\n // drawing buffer width and hight, in those cases they get clamped and resulting aspect ration may not be maintained\n // for those cases, reduce devicePixelRatio.\n if (gl.drawingBufferWidth !== canvasWidth || gl.drawingBufferHeight !== canvasHeight) {\n log.warn(`Device pixel ratio clamped`)();\n clampedPixelRatio = Math.min(\n gl.drawingBufferWidth / clientWidth,\n gl.drawingBufferHeight / clientHeight\n );\n\n gl.canvas.width = Math.floor(clientWidth * clampedPixelRatio);\n gl.canvas.height = Math.floor(clientHeight * clampedPixelRatio);\n }\n\n Object.assign(gl.luma.canvasSizeInfo, {clientWidth, clientHeight, devicePixelRatio});\n }\n}\n","// STATS (PERFORMANCE PROFILING)\nexport {default as Stats} from './lib/stats';\nexport {default as Stat} from './lib/stat';\n\n// UTILITIES\nexport {default as _getHiResTimestamp} from './utils/hi-res-timestamp';\n","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function assert(condition, message) {\n if (!condition) {\n throw new Error(message || 'Assertion failed');\n }\n}\n","import * as glMatrix from \"./common.js\";\n/**\r\n * 4x4 Matrix<br>Format: column-major, when typed out it looks like row-major<br>The matrices are being post multiplied.\r\n * @module mat4\r\n */\n\n/**\r\n * Creates a new identity mat4\r\n *\r\n * @returns {mat4} a new 4x4 matrix\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(16);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a new mat4 initialized with values from an existing matrix\r\n *\r\n * @param {mat4} a matrix to clone\r\n * @returns {mat4} a new 4x4 matrix\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\r\n * Copy the values from one mat4 to another\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\r\n * Create a new mat4 with the given values\r\n *\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\r\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\r\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\r\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\r\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\r\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\r\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\r\n * @returns {mat4} A new mat4\r\n */\n\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\r\n * Set the components of a mat4 to the given values\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\r\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\r\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\r\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\r\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\r\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\r\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\r\n * @returns {mat4} out\r\n */\n\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\r\n * Set a mat4 to the identity matrix\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @returns {mat4} out\r\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Transpose the values of a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a12 = a[6],\n a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\r\n * Inverts a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\n/**\r\n * Calculates the adjugate of a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\n/**\r\n * Calculates the determinant of a mat4\r\n *\r\n * @param {mat4} a the source matrix\r\n * @returns {Number} determinant of a\r\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\r\n * Multiplies two mat4s\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the first operand\r\n * @param {mat4} b the second operand\r\n * @returns {mat4} out\r\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15]; // Cache only the current line of the second matrix\n\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n/**\r\n * Translate a mat4 by the given vector\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to translate\r\n * @param {vec3} v vector to translate by\r\n * @returns {mat4} out\r\n */\n\nexport function translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n}\n/**\r\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to scale\r\n * @param {vec3} v the vec3 to scale the matrix by\r\n * @returns {mat4} out\r\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\r\n * Rotates a mat4 by the given angle around the given axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @param {vec3} axis the axis to rotate around\r\n * @returns {mat4} out\r\n */\n\nexport function rotate(out, a, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\r\n * Rotates a matrix by the given angle around the X axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\n/**\r\n * Rotates a matrix by the given angle around the Y axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function rotateY(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\n/**\r\n * Rotates a matrix by the given angle around the Z axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\n/**\r\n * Creates a matrix from a vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, dest, vec);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {vec3} v Translation vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a vector scaling\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.scale(dest, dest, vec);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {vec3} v Scaling vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a given angle around a given axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotate(dest, dest, rad, axis);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @param {vec3} axis the axis to rotate around\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotation(out, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from the given angle around the X axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateX(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function fromXRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from the given angle around the Y axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateY(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function fromYRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from the given angle around the Z axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateZ(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function fromZRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a quaternion rotation and vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {vec3} v Translation vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotationTranslation(out, q, v) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a new mat4 from a dual quat.\r\n *\r\n * @param {mat4} out Matrix\r\n * @param {quat2} a Dual Quaternion\r\n * @returns {mat4} mat4 receiving operation result\r\n */\n\nexport function fromQuat2(out, a) {\n var translation = new glMatrix.ARRAY_TYPE(3);\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n\n fromRotationTranslation(out, a, translation);\n return out;\n}\n/**\r\n * Returns the translation vector component of a transformation\r\n * matrix. If a matrix is built with fromRotationTranslation,\r\n * the returned vector will be the same as the translation vector\r\n * originally supplied.\r\n * @param {vec3} out Vector to receive translation component\r\n * @param {mat4} mat Matrix to be decomposed (input)\r\n * @return {vec3} out\r\n */\n\nexport function getTranslation(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\n/**\r\n * Returns the scaling factor component of a transformation\r\n * matrix. If a matrix is built with fromRotationTranslationScale\r\n * with a normalized Quaternion paramter, the returned vector will be\r\n * the same as the scaling vector\r\n * originally supplied.\r\n * @param {vec3} out Vector to receive scaling factor component\r\n * @param {mat4} mat Matrix to be decomposed (input)\r\n * @return {vec3} out\r\n */\n\nexport function getScaling(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\n/**\r\n * Returns a quaternion representing the rotational component\r\n * of a transformation matrix. If a matrix is built with\r\n * fromRotationTranslation, the returned quaternion will be the\r\n * same as the quaternion originally supplied.\r\n * @param {quat} out Quaternion to receive the rotation component\r\n * @param {mat4} mat Matrix to be decomposed (input)\r\n * @return {quat} out\r\n */\n\nexport function getRotation(out, mat) {\n var scaling = new glMatrix.ARRAY_TYPE(3);\n getScaling(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n\n return out;\n}\n/**\r\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n * mat4.scale(dest, scale)\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {vec3} v Translation vector\r\n * @param {vec3} s Scaling vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotationTranslationScale(out, q, v, s) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * mat4.translate(dest, origin);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n * mat4.scale(dest, scale)\r\n * mat4.translate(dest, negativeOrigin);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {vec3} v Translation vector\r\n * @param {vec3} s Scaling vector\r\n * @param {vec3} o The origin vector around which to scale and rotate\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\n/**\r\n * Calculates a 4x4 matrix from the given quaternion\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat} q Quaternion to create matrix from\r\n *\r\n * @returns {mat4} out\r\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Generates a frustum matrix with the given bounds\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {Number} left Left bound of the frustum\r\n * @param {Number} right Right bound of the frustum\r\n * @param {Number} bottom Bottom bound of the frustum\r\n * @param {Number} top Top bound of the frustum\r\n * @param {Number} near Near bound of the frustum\r\n * @param {Number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\n\nexport function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\n/**\r\n * Generates a perspective projection matrix with the given bounds.\r\n * Passing null/undefined/no value for far will generate infinite projection matrix.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {number} fovy Vertical field of view in radians\r\n * @param {number} aspect Aspect ratio. typically viewport width/height\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum, can be null or Infinity\r\n * @returns {mat4} out\r\n */\n\nexport function perspective(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n\n return out;\n}\n/**\r\n * Generates a perspective projection matrix with the given field of view.\r\n * This is primarily useful for generating projection matrices to be used\r\n * with the still experiemental WebVR API.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\n\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\n/**\r\n * Generates a orthogonal projection matrix with the given bounds\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {number} left Left bound of the frustum\r\n * @param {number} right Right bound of the frustum\r\n * @param {number} bottom Bottom bound of the frustum\r\n * @param {number} top Top bound of the frustum\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\n\nexport function ortho(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n/**\r\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\r\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {vec3} eye Position of the viewer\r\n * @param {vec3} center Point the viewer is looking at\r\n * @param {vec3} up vec3 pointing up\r\n * @returns {mat4} out\r\n */\n\nexport function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n return identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n/**\r\n * Generates a matrix that makes something look at something else.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {vec3} eye Position of the viewer\r\n * @param {vec3} center Point the viewer is looking at\r\n * @param {vec3} up vec3 pointing up\r\n * @returns {mat4} out\r\n */\n\nexport function targetTo(out, eye, target, up) {\n var eyex = eye[0],\n eyey = eye[1],\n eyez = eye[2],\n upx = up[0],\n upy = up[1],\n upz = up[2];\n var z0 = eyex - target[0],\n z1 = eyey - target[1],\n z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n var x0 = upy * z2 - upz * z1,\n x1 = upz * z0 - upx * z2,\n x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n/**\r\n * Returns a string representation of a mat4\r\n *\r\n * @param {mat4} a matrix to represent as a string\r\n * @returns {String} string representation of the matrix\r\n */\n\nexport function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\r\n * Returns Frobenius norm of a mat4\r\n *\r\n * @param {mat4} a the matrix to calculate Frobenius norm of\r\n * @returns {Number} Frobenius norm\r\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\r\n * Adds two mat4's\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the first operand\r\n * @param {mat4} b the second operand\r\n * @returns {mat4} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\n/**\r\n * Subtracts matrix b from matrix a\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the first operand\r\n * @param {mat4} b the second operand\r\n * @returns {mat4} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\n/**\r\n * Multiply each element of the matrix by a scalar.\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {mat4} a the matrix to scale\r\n * @param {Number} b amount to scale the matrix's elements by\r\n * @returns {mat4} out\r\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\n/**\r\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\r\n *\r\n * @param {mat4} out the receiving vector\r\n * @param {mat4} a the first operand\r\n * @param {mat4} b the second operand\r\n * @param {Number} scale the amount to scale b's elements by before adding\r\n * @returns {mat4} out\r\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\n/**\r\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {mat4} a The first matrix.\r\n * @param {mat4} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\r\n * Returns whether or not the matrices have approximately the same elements in the same position.\r\n *\r\n * @param {mat4} a The first matrix.\r\n * @param {mat4} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var a8 = a[8],\n a9 = a[9],\n a10 = a[10],\n a11 = a[11];\n var a12 = a[12],\n a13 = a[13],\n a14 = a[14],\n a15 = a[15];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n var b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n var b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11];\n var b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\r\n * Alias for {@link mat4.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link mat4.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport makeStyles from '../makeStyles';\nimport getThemeProps from '../getThemeProps';\nimport useTheme from '../useTheme'; // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var useStyles = makeStyles(stylesOrCreator, _extends({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = /*#__PURE__*/React.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n\n var classes = useStyles(_extends({}, Component.defaultProps, props));\n var theme;\n var more = other;\n\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = useTheme() || defaultTheme;\n\n if (name) {\n more = getThemeProps({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n process.env.NODE_ENV !== \"production\" ? WithStyles.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * Use that prop to pass a ref to the decorated component.\n * @deprecated\n */\n innerRef: chainPropTypes(PropTypes.oneOfType([PropTypes.func, PropTypes.object]), function (props) {\n if (props.innerRef == null) {\n return null;\n }\n\n return null; // return new Error(\n // 'Material-UI: The `innerRef` prop is deprecated and will be removed in v5. ' +\n // 'Refs are now automatically forwarded to the inner component.',\n // );\n })\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat(getDisplayName(Component), \")\");\n }\n\n hoistNonReactStatics(WithStyles, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n\n return WithStyles;\n };\n};\n\nexport default withStyles;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withStyles as withStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction withStyles(stylesOrCreator, options) {\n return withStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default withStyles;","import * as glMatrix from \"./common.js\";\n/**\r\n * 3 Dimensional Vector\r\n * @module vec3\r\n */\n\n/**\r\n * Creates a new, empty vec3\r\n *\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec3 initialized with values from an existing vector\r\n *\r\n * @param {vec3} a vector to clone\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Calculates the length of a vec3\r\n *\r\n * @param {vec3} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Creates a new vec3 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Copy the values from one vec3 to another\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the source vector\r\n * @returns {vec3} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Set the components of a vec3 to the given values\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} out\r\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Adds two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\r\n * Multiplies two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\r\n * Divides two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to ceil\r\n * @returns {vec3} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to floor\r\n * @returns {vec3} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\r\n * Math.round the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to round\r\n * @returns {vec3} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\r\n * Scales a vec3 by a scalar number\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec3} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\r\n * Adds two vec3's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec3} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec3's\r\n *\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec3's\r\n *\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Calculates the squared length of a vec3\r\n *\r\n * @param {vec3} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Negates the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to negate\r\n * @returns {vec3} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to invert\r\n * @returns {vec3} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\r\n * Normalize a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to normalize\r\n * @returns {vec3} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec3's\r\n *\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\r\n * Computes the cross product of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\r\n * Performs a hermite interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {vec3} c the third operand\r\n * @param {vec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Performs a bezier interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {vec3} c the third operand\r\n * @param {vec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec3} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat4.\r\n * 4th vector component is implicitly '1'\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to transform\r\n * @param {mat4} m matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat3.\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to transform\r\n * @param {mat3} m the 3x3 matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\r\n * Transforms the vec3 with a quat\r\n * Can also be used for dual quaternions. (Multiply it with the real part)\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to transform\r\n * @param {quat} q quaternion to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\r\n * Rotate a 3D vector around the x-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {vec3} a The vec3 point to rotate\r\n * @param {vec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the y-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {vec3} a The vec3 point to rotate\r\n * @param {vec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the z-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {vec3} a The vec3 point to rotate\r\n * @param {vec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Get the angle between two 3D vectors\r\n * @param {vec3} a The first operand\r\n * @param {vec3} b The second operand\r\n * @returns {Number} The angle in radians\r\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\r\n * Set the components of a vec3 to zero\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @returns {vec3} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {vec3} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {vec3} a The first vector.\r\n * @param {vec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {vec3} a The first vector.\r\n * @param {vec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\r\n * Alias for {@link vec3.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec3.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec3.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec3.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec3.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec3.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec3.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec3s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","/**\r\n * Common utilities\r\n * @module glMatrix\r\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\r\n * Sets the type of array used when creating new vectors and matrices\r\n *\r\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\r\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\r\n * Convert Degree To Radian\r\n *\r\n * @param {Number} a Angle in Degrees\r\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\r\n * Tests whether or not the arguments have approximately the same value, within an absolute\r\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\r\n * than or equal to 1.0, and a relative tolerance is used for larger values)\r\n *\r\n * @param {Number} a The first number to test.\r\n * @param {Number} b The second number to test.\r\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","/**\r\n * Common utilities\r\n * @module glMatrix\r\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\r\n * Sets the type of array used when creating new vectors and matrices\r\n *\r\n * @param {Type} type Array type, such as Float32Array or Array\r\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\r\n * Convert Degree To Radian\r\n *\r\n * @param {Number} a Angle in Degrees\r\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\r\n * Tests whether or not the arguments have approximately the same value, within an absolute\r\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\r\n * than or equal to 1.0, and a relative tolerance is used for larger values)\r\n *\r\n * @param {Number} a The first number to test.\r\n * @param {Number} b The second number to test.\r\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport assert from './assert';\n\nconst RADIANS_TO_DEGREES = (1 / Math.PI) * 180;\nconst DEGREES_TO_RADIANS = (1 / 180) * Math.PI;\n\n// TODO - remove\n/* eslint-disable no-shadow */\nconst config = {};\nconfig.EPSILON = 1e-12;\nconfig.debug = false;\nconfig.precision = 4;\nconfig.printTypes = false;\nconfig.printDegrees = false;\nconfig.printRowMajor = true;\n\nexport {config};\n\nexport function configure(options = {}) {\n // Only copy existing keys\n for (const key in options) {\n assert(key in config);\n config[key] = options[key];\n }\n return config;\n}\n\nfunction round(value) {\n return Math.round(value / config.EPSILON) * config.EPSILON;\n}\n\nexport function formatValue(value, {precision = config.precision || 4} = {}) {\n value = round(value);\n // get rid of trailing zeros\n return `${parseFloat(value.toPrecision(precision))}`;\n}\n\n// Returns true if value is either an array or a typed array\n// Note: does not return true for ArrayBuffers and DataViews\nexport function isArray(value) {\n return Array.isArray(value) || (ArrayBuffer.isView(value) && !(value instanceof DataView));\n}\n\n// If the array has a clone function, calls it, otherwise returns a copy\nfunction duplicateArray(array) {\n return array.clone ? array.clone() : new Array(array.length);\n}\n\nexport function clone(array) {\n return array.clone ? array.clone() : new Array(...array);\n}\n\n// If the argument value is an array, applies the func element wise,\n// otherwise applies func to the argument value\nfunction map(value, func, result) {\n if (isArray(value)) {\n result = result || duplicateArray(value);\n for (let i = 0; i < result.length && i < value.length; ++i) {\n result[i] = func(value[i], i, result);\n }\n return result;\n }\n return func(value);\n}\n\nexport function toRadians(degrees) {\n return radians(degrees);\n}\n\nexport function toDegrees(radians) {\n return degrees(radians);\n}\n\n//\n// GLSL math function equivalents\n// Works on both single values and vectors\n//\n\nexport function radians(degrees, result) {\n return map(degrees, (degrees) => degrees * DEGREES_TO_RADIANS, result);\n}\n\nexport function degrees(radians, result) {\n return map(radians, (radians) => radians * RADIANS_TO_DEGREES, result);\n}\n\n// GLSL equivalent: Works on single values and vectors\nexport function sin(radians) {\n return map(radians, (angle) => Math.sin(angle));\n}\n\n// GLSL equivalent: Works on single values and vectors\nexport function cos(radians) {\n return map(radians, (angle) => Math.cos(angle));\n}\n\n// GLSL equivalent: Works on single values and vectors\nexport function tan(radians) {\n return map(radians, (angle) => Math.tan(angle));\n}\n\n// GLSL equivalent: Works on single values and vectors\nexport function asin(radians) {\n return map(radians, (angle) => Math.asin(angle));\n}\n\n// GLSL equivalent: Works on single values and vectors\nexport function acos(radians) {\n return map(radians, (angle) => Math.acos(angle));\n}\n\n// GLSL equivalent: Works on single values and vectors\nexport function atan(radians) {\n return map(radians, (angle) => Math.atan(angle));\n}\n\nexport function clamp(value, min, max) {\n return map(value, (value) => Math.max(min, Math.min(max, value)));\n}\n\n// Interpolate between two numbers or two arrays\nexport function lerp(a, b, t) {\n if (isArray(a)) {\n return a.map((ai, i) => lerp(ai, b[i], t));\n }\n return t * b + (1 - t) * a;\n}\n\n// eslint-disable-next-line complexity\nexport function equals(a, b, epsilon) {\n const oldEpsilon = config.EPSILON;\n if (epsilon) {\n config.EPSILON = epsilon;\n }\n try {\n if (a === b) {\n return true;\n }\n if (isArray(a) && isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; ++i) {\n // eslint-disable-next-line max-depth\n if (!equals(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n if (a && a.equals) {\n return a.equals(b);\n }\n if (b && b.equals) {\n return b.equals(a);\n }\n if (Number.isFinite(a) && Number.isFinite(b)) {\n return Math.abs(a - b) <= config.EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n }\n return false;\n } finally {\n config.EPSILON = oldEpsilon;\n }\n}\n\n// eslint-disable-next-line complexity\nexport function exactEquals(a, b) {\n if (a === b) {\n return true;\n }\n if (a && typeof a === 'object' && b && typeof b === 'object') {\n if (a.constructor !== b.constructor) {\n return false;\n }\n if (a.exactEquals) {\n return a.exactEquals(b);\n }\n }\n if (isArray(a) && isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; ++i) {\n if (!exactEquals(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n\nexport function withEpsilon(EPSILON, func) {\n const oldPrecision = config.EPSILON;\n config.EPSILON = EPSILON;\n let value;\n try {\n value = func();\n } finally {\n config.EPSILON = oldPrecision;\n }\n return value;\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {config} from './common';\n\nexport function validateVector(v, length) {\n if (v.length !== length) {\n return false;\n }\n // Could be arguments \"array\" (v.every not availasble)\n for (let i = 0; i < v.length; ++i) {\n if (!Number.isFinite(v[i])) {\n return false;\n }\n }\n return true;\n}\n\nexport function checkNumber(value) {\n if (!Number.isFinite(value)) {\n throw new Error(`Invalid number ${value}`);\n }\n return value;\n}\n\nexport function checkVector(v, length, callerName = '') {\n if (config.debug && !validateVector(v, length)) {\n throw new Error(`math.gl: ${callerName} some fields set to invalid numbers'`);\n }\n return v;\n}\n\nconst map = {};\n\nexport function deprecated(method, version) {\n if (!map[method]) {\n map[method] = true;\n // eslint-disable-next-line\n console.warn(\n `${method} has been removed in version ${version}, see upgrade guide for more information`\n );\n }\n}\n","import * as glMatrix from \"./common.js\";\nimport * as mat3 from \"./mat3.js\";\nimport * as vec3 from \"./vec3.js\";\nimport * as vec4 from \"./vec4.js\";\n/**\r\n * Quaternion\r\n * @module quat\r\n */\n\n/**\r\n * Creates a new identity quat\r\n *\r\n * @returns {quat} a new quaternion\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(4);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n out[3] = 1;\n return out;\n}\n/**\r\n * Set a quat to the identity quaternion\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @returns {quat} out\r\n */\n\nexport function identity(out) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n}\n/**\r\n * Sets a quat from the given angle and rotation axis,\r\n * then returns it.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {vec3} axis the axis around which to rotate\r\n * @param {Number} rad the angle in radians\r\n * @returns {quat} out\r\n **/\n\nexport function setAxisAngle(out, axis, rad) {\n rad = rad * 0.5;\n var s = Math.sin(rad);\n out[0] = s * axis[0];\n out[1] = s * axis[1];\n out[2] = s * axis[2];\n out[3] = Math.cos(rad);\n return out;\n}\n/**\r\n * Gets the rotation axis and angle for a given\r\n * quaternion. If a quaternion is created with\r\n * setAxisAngle, this method will return the same\r\n * values as providied in the original parameter list\r\n * OR functionally equivalent values.\r\n * Example: The quaternion formed by axis [0, 0, 1] and\r\n * angle -90 is the same as the quaternion formed by\r\n * [0, 0, 1] and 270. This method favors the latter.\r\n * @param {vec3} out_axis Vector receiving the axis of rotation\r\n * @param {quat} q Quaternion to be decomposed\r\n * @return {Number} Angle, in radians, of the rotation\r\n */\n\nexport function getAxisAngle(out_axis, q) {\n var rad = Math.acos(q[3]) * 2.0;\n var s = Math.sin(rad / 2.0);\n\n if (s > glMatrix.EPSILON) {\n out_axis[0] = q[0] / s;\n out_axis[1] = q[1] / s;\n out_axis[2] = q[2] / s;\n } else {\n // If s is zero, return any axis (no rotation - axis does not matter)\n out_axis[0] = 1;\n out_axis[1] = 0;\n out_axis[2] = 0;\n }\n\n return rad;\n}\n/**\r\n * Gets the angular distance between two unit quaternions\r\n *\r\n * @param {quat} a Origin unit quaternion\r\n * @param {quat} b Destination unit quaternion\r\n * @return {Number} Angle, in radians, between the two quaternions\r\n */\n\nexport function getAngle(a, b) {\n var dotproduct = dot(a, b);\n return Math.acos(2 * dotproduct * dotproduct - 1);\n}\n/**\r\n * Multiplies two quat's\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @returns {quat} out\r\n */\n\nexport function multiply(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = b[0],\n by = b[1],\n bz = b[2],\n bw = b[3];\n out[0] = ax * bw + aw * bx + ay * bz - az * by;\n out[1] = ay * bw + aw * by + az * bx - ax * bz;\n out[2] = az * bw + aw * bz + ax * by - ay * bx;\n out[3] = aw * bw - ax * bx - ay * by - az * bz;\n return out;\n}\n/**\r\n * Rotates a quaternion by the given angle about the X axis\r\n *\r\n * @param {quat} out quat receiving operation result\r\n * @param {quat} a quat to rotate\r\n * @param {number} rad angle (in radians) to rotate\r\n * @returns {quat} out\r\n */\n\nexport function rotateX(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw + aw * bx;\n out[1] = ay * bw + az * bx;\n out[2] = az * bw - ay * bx;\n out[3] = aw * bw - ax * bx;\n return out;\n}\n/**\r\n * Rotates a quaternion by the given angle about the Y axis\r\n *\r\n * @param {quat} out quat receiving operation result\r\n * @param {quat} a quat to rotate\r\n * @param {number} rad angle (in radians) to rotate\r\n * @returns {quat} out\r\n */\n\nexport function rotateY(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var by = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw - az * by;\n out[1] = ay * bw + aw * by;\n out[2] = az * bw + ax * by;\n out[3] = aw * bw - ay * by;\n return out;\n}\n/**\r\n * Rotates a quaternion by the given angle about the Z axis\r\n *\r\n * @param {quat} out quat receiving operation result\r\n * @param {quat} a quat to rotate\r\n * @param {number} rad angle (in radians) to rotate\r\n * @returns {quat} out\r\n */\n\nexport function rotateZ(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bz = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw + ay * bz;\n out[1] = ay * bw - ax * bz;\n out[2] = az * bw + aw * bz;\n out[3] = aw * bw - az * bz;\n return out;\n}\n/**\r\n * Calculates the W component of a quat from the X, Y, and Z components.\r\n * Assumes that quaternion is 1 unit in length.\r\n * Any existing W component will be ignored.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a quat to calculate W component of\r\n * @returns {quat} out\r\n */\n\nexport function calculateW(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z));\n return out;\n}\n/**\r\n * Calculate the exponential of a unit quaternion.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a quat to calculate the exponential of\r\n * @returns {quat} out\r\n */\n\nexport function exp(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n var r = Math.sqrt(x * x + y * y + z * z);\n var et = Math.exp(w);\n var s = r > 0 ? et * Math.sin(r) / r : 0;\n out[0] = x * s;\n out[1] = y * s;\n out[2] = z * s;\n out[3] = et * Math.cos(r);\n return out;\n}\n/**\r\n * Calculate the natural logarithm of a unit quaternion.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a quat to calculate the exponential of\r\n * @returns {quat} out\r\n */\n\nexport function ln(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n var r = Math.sqrt(x * x + y * y + z * z);\n var t = r > 0 ? Math.atan2(r, w) / r : 0;\n out[0] = x * t;\n out[1] = y * t;\n out[2] = z * t;\n out[3] = 0.5 * Math.log(x * x + y * y + z * z + w * w);\n return out;\n}\n/**\r\n * Calculate the scalar power of a unit quaternion.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a quat to calculate the exponential of\r\n * @param {Number} b amount to scale the quaternion by\r\n * @returns {quat} out\r\n */\n\nexport function pow(out, a, b) {\n ln(out, a);\n scale(out, out, b);\n exp(out, out);\n return out;\n}\n/**\r\n * Performs a spherical linear interpolation between two quat\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {quat} out\r\n */\n\nexport function slerp(out, a, b, t) {\n // benchmarks:\n // http://jsperf.com/quaternion-slerp-implementations\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = b[0],\n by = b[1],\n bz = b[2],\n bw = b[3];\n var omega, cosom, sinom, scale0, scale1; // calc cosine\n\n cosom = ax * bx + ay * by + az * bz + aw * bw; // adjust signs (if necessary)\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n } // calculate coefficients\n\n\n if (1.0 - cosom > glMatrix.EPSILON) {\n // standard case (slerp)\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n // \"from\" and \"to\" quaternions are very close\n // ... so we can do a linear interpolation\n scale0 = 1.0 - t;\n scale1 = t;\n } // calculate final values\n\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n}\n/**\r\n * Generates a random unit quaternion\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @returns {quat} out\r\n */\n\nexport function random(out) {\n // Implementation of http://planning.cs.uiuc.edu/node198.html\n // TODO: Calling random 3 times is probably not the fastest solution\n var u1 = glMatrix.RANDOM();\n var u2 = glMatrix.RANDOM();\n var u3 = glMatrix.RANDOM();\n var sqrt1MinusU1 = Math.sqrt(1 - u1);\n var sqrtU1 = Math.sqrt(u1);\n out[0] = sqrt1MinusU1 * Math.sin(2.0 * Math.PI * u2);\n out[1] = sqrt1MinusU1 * Math.cos(2.0 * Math.PI * u2);\n out[2] = sqrtU1 * Math.sin(2.0 * Math.PI * u3);\n out[3] = sqrtU1 * Math.cos(2.0 * Math.PI * u3);\n return out;\n}\n/**\r\n * Calculates the inverse of a quat\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a quat to calculate inverse of\r\n * @returns {quat} out\r\n */\n\nexport function invert(out, a) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var dot = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3;\n var invDot = dot ? 1.0 / dot : 0; // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0\n\n out[0] = -a0 * invDot;\n out[1] = -a1 * invDot;\n out[2] = -a2 * invDot;\n out[3] = a3 * invDot;\n return out;\n}\n/**\r\n * Calculates the conjugate of a quat\r\n * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a quat to calculate conjugate of\r\n * @returns {quat} out\r\n */\n\nexport function conjugate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = a[3];\n return out;\n}\n/**\r\n * Creates a quaternion from the given 3x3 rotation matrix.\r\n *\r\n * NOTE: The resultant quaternion is not normalized, so you should be sure\r\n * to renormalize the quaternion yourself where necessary.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {mat3} m rotation matrix\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport function fromMat3(out, m) {\n // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes\n // article \"Quaternion Calculus and Fast Animation\".\n var fTrace = m[0] + m[4] + m[8];\n var fRoot;\n\n if (fTrace > 0.0) {\n // |w| > 1/2, may as well choose w > 1/2\n fRoot = Math.sqrt(fTrace + 1.0); // 2w\n\n out[3] = 0.5 * fRoot;\n fRoot = 0.5 / fRoot; // 1/(4w)\n\n out[0] = (m[5] - m[7]) * fRoot;\n out[1] = (m[6] - m[2]) * fRoot;\n out[2] = (m[1] - m[3]) * fRoot;\n } else {\n // |w| <= 1/2\n var i = 0;\n if (m[4] > m[0]) i = 1;\n if (m[8] > m[i * 3 + i]) i = 2;\n var j = (i + 1) % 3;\n var k = (i + 2) % 3;\n fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1.0);\n out[i] = 0.5 * fRoot;\n fRoot = 0.5 / fRoot;\n out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot;\n out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot;\n out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot;\n }\n\n return out;\n}\n/**\r\n * Creates a quaternion from the given euler angle x, y, z.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {x} Angle to rotate around X axis in degrees.\r\n * @param {y} Angle to rotate around Y axis in degrees.\r\n * @param {z} Angle to rotate around Z axis in degrees.\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport function fromEuler(out, x, y, z) {\n var halfToRad = 0.5 * Math.PI / 180.0;\n x *= halfToRad;\n y *= halfToRad;\n z *= halfToRad;\n var sx = Math.sin(x);\n var cx = Math.cos(x);\n var sy = Math.sin(y);\n var cy = Math.cos(y);\n var sz = Math.sin(z);\n var cz = Math.cos(z);\n out[0] = sx * cy * cz - cx * sy * sz;\n out[1] = cx * sy * cz + sx * cy * sz;\n out[2] = cx * cy * sz - sx * sy * cz;\n out[3] = cx * cy * cz + sx * sy * sz;\n return out;\n}\n/**\r\n * Returns a string representation of a quatenion\r\n *\r\n * @param {quat} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"quat(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\r\n * Creates a new quat initialized with values from an existing quaternion\r\n *\r\n * @param {quat} a quaternion to clone\r\n * @returns {quat} a new quaternion\r\n * @function\r\n */\n\nexport var clone = vec4.clone;\n/**\r\n * Creates a new quat initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {quat} a new quaternion\r\n * @function\r\n */\n\nexport var fromValues = vec4.fromValues;\n/**\r\n * Copy the values from one quat to another\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the source quaternion\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var copy = vec4.copy;\n/**\r\n * Set the components of a quat to the given values\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var set = vec4.set;\n/**\r\n * Adds two quat's\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var add = vec4.add;\n/**\r\n * Alias for {@link quat.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Scales a quat by a scalar number\r\n *\r\n * @param {quat} out the receiving vector\r\n * @param {quat} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var scale = vec4.scale;\n/**\r\n * Calculates the dot product of two quat's\r\n *\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @returns {Number} dot product of a and b\r\n * @function\r\n */\n\nexport var dot = vec4.dot;\n/**\r\n * Performs a linear interpolation between two quat's\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var lerp = vec4.lerp;\n/**\r\n * Calculates the length of a quat\r\n *\r\n * @param {quat} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport var length = vec4.length;\n/**\r\n * Alias for {@link quat.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Calculates the squared length of a quat\r\n *\r\n * @param {quat} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n * @function\r\n */\n\nexport var squaredLength = vec4.squaredLength;\n/**\r\n * Alias for {@link quat.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Normalize a quat\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a quaternion to normalize\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var normalize = vec4.normalize;\n/**\r\n * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {quat} a The first quaternion.\r\n * @param {quat} b The second quaternion.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport var exactEquals = vec4.exactEquals;\n/**\r\n * Returns whether or not the quaternions have approximately the same elements in the same position.\r\n *\r\n * @param {quat} a The first vector.\r\n * @param {quat} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport var equals = vec4.equals;\n/**\r\n * Sets a quaternion to represent the shortest rotation from one\r\n * vector to another.\r\n *\r\n * Both vectors are assumed to be unit length.\r\n *\r\n * @param {quat} out the receiving quaternion.\r\n * @param {vec3} a the initial vector\r\n * @param {vec3} b the destination vector\r\n * @returns {quat} out\r\n */\n\nexport var rotationTo = function () {\n var tmpvec3 = vec3.create();\n var xUnitVec3 = vec3.fromValues(1, 0, 0);\n var yUnitVec3 = vec3.fromValues(0, 1, 0);\n return function (out, a, b) {\n var dot = vec3.dot(a, b);\n\n if (dot < -0.999999) {\n vec3.cross(tmpvec3, xUnitVec3, a);\n if (vec3.len(tmpvec3) < 0.000001) vec3.cross(tmpvec3, yUnitVec3, a);\n vec3.normalize(tmpvec3, tmpvec3);\n setAxisAngle(out, tmpvec3, Math.PI);\n return out;\n } else if (dot > 0.999999) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n } else {\n vec3.cross(tmpvec3, a, b);\n out[0] = tmpvec3[0];\n out[1] = tmpvec3[1];\n out[2] = tmpvec3[2];\n out[3] = 1 + dot;\n return normalize(out, out);\n }\n };\n}();\n/**\r\n * Performs a spherical linear interpolation with two control points\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {quat} a the first operand\r\n * @param {quat} b the second operand\r\n * @param {quat} c the third operand\r\n * @param {quat} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {quat} out\r\n */\n\nexport var sqlerp = function () {\n var temp1 = create();\n var temp2 = create();\n return function (out, a, b, c, d, t) {\n slerp(temp1, a, d, t);\n slerp(temp2, b, c, t);\n slerp(out, temp1, temp2, 2 * t * (1 - t));\n return out;\n };\n}();\n/**\r\n * Sets the specified quaternion with values corresponding to the given\r\n * axes. Each axis is a vec3 and is expected to be unit length and\r\n * perpendicular to all other specified axes.\r\n *\r\n * @param {vec3} view the vector representing the viewing direction\r\n * @param {vec3} right the vector representing the local \"right\" direction\r\n * @param {vec3} up the vector representing the local \"up\" direction\r\n * @returns {quat} out\r\n */\n\nexport var setAxes = function () {\n var matr = mat3.create();\n return function (out, view, right, up) {\n matr[0] = right[0];\n matr[3] = right[1];\n matr[6] = right[2];\n matr[1] = up[0];\n matr[4] = up[1];\n matr[7] = up[2];\n matr[2] = -view[0];\n matr[5] = -view[1];\n matr[8] = -view[2];\n return normalize(out, fromMat3(out, matr));\n };\n}();","import {projectPosition} from '../../shaderlib/project/project-functions';\nimport {COORDINATE_SYSTEM} from '../../lib';\n\nconst DEFAULT_LIGHT_COLOR = [255, 255, 255];\nconst DEFAULT_LIGHT_INTENSITY = 1.0;\nconst DEFAULT_ATTENUATION = [0, 0, 1];\nconst DEFAULT_LIGHT_POSITION = [0.0, 0.0, 1.0];\n\nlet idCount = 0;\n\nexport class PointLight {\n constructor(props = {}) {\n const {color = DEFAULT_LIGHT_COLOR} = props;\n const {intensity = DEFAULT_LIGHT_INTENSITY} = props;\n const {position = DEFAULT_LIGHT_POSITION} = props;\n\n this.id = props.id || `point-${idCount++}`;\n this.color = color;\n this.intensity = intensity;\n this.type = 'point';\n this.position = position;\n this.attenuation = getAttenuation(props);\n this.projectedLight = {...this};\n }\n\n getProjectedLight({layer}) {\n const {projectedLight} = this;\n const viewport = layer.context.viewport;\n const {coordinateSystem, coordinateOrigin} = layer.props;\n const position = projectPosition(this.position, {\n viewport,\n coordinateSystem,\n coordinateOrigin,\n fromCoordinateSystem: viewport.isGeospatial\n ? COORDINATE_SYSTEM.LNGLAT\n : COORDINATE_SYSTEM.CARTESIAN,\n fromCoordinateOrigin: [0, 0, 0]\n });\n projectedLight.color = this.color;\n projectedLight.intensity = this.intensity;\n projectedLight.position = position;\n return projectedLight;\n }\n}\n\nfunction getAttenuation(props) {\n if ('attenuation' in props) {\n return props.attenuation;\n }\n if ('intensity' in props) {\n return [0, 0, props.intensity];\n }\n return DEFAULT_ATTENUATION;\n}\n","import {PointLight} from './point-light';\nimport {getUniformsFromViewport} from '../../shaderlib/project/viewport-uniforms';\n\nexport default class CameraLight extends PointLight {\n getProjectedLight({layer}) {\n const {projectedLight} = this;\n const viewport = layer.context.viewport;\n const {coordinateSystem, coordinateOrigin, modelMatrix} = layer.props;\n const {project_uCameraPosition} = getUniformsFromViewport({\n viewport,\n modelMatrix,\n coordinateSystem,\n coordinateOrigin\n });\n projectedLight.color = this.color;\n projectedLight.intensity = this.intensity;\n projectedLight.position = project_uCameraPosition;\n return projectedLight;\n }\n}\n","// sun position calculations are based on http://aa.quae.nl/en/reken/zonpositie.html formulas\n// and inspired by https://github.com/mourner/suncalc/blob/master/suncalc.js\nconst DEGREES_TO_RADIANS = Math.PI / 180;\n\nconst DAY_IN_MS = 1000 * 60 * 60 * 24;\nconst JD1970 = 2440588; // Julian Day year 1970\nconst JD2000 = 2451545; // Julian Day year 2000\n\n// This angle ε [epsilon] is called the obliquity of the ecliptic and its value at the beginning of 2000 was 23.4397°\nconst e = DEGREES_TO_RADIANS * 23.4397; // obliquity of the Earth\n\n// Refer https://www.aa.quae.nl/en/reken/zonpositie.html\n// \"The Mean Anomaly\" section for explanation\nconst M0 = 357.5291; // Earth mean anomaly on start day\nconst M1 = 0.98560028; // Earth angle traverses on average per day seen from the sun\n\nconst THETA0 = 280.147; // The sidereal time (in degrees) at longitude 0° at the instant defined by JD2000\nconst THETA1 = 360.9856235; // The rate of change of the sidereal time, in degrees per day.\n\nexport function getSolarPosition(timestamp, latitude, longitude) {\n const longitudeWestInRadians = DEGREES_TO_RADIANS * -longitude;\n const phi = DEGREES_TO_RADIANS * latitude;\n const d = toDays(timestamp);\n\n const c = getSunCoords(d);\n // hour angle\n const H = getSiderealTime(d, longitudeWestInRadians) - c.rightAscension;\n\n // https://www.aa.quae.nl/en/reken/zonpositie.html\n // The altitude is 0° at the horizon, +90° in the zenith (straight over your head), and −90° in the nadir (straight down).\n // The azimuth is the direction along the horizon, which we measure from south to west.\n // South has azimuth 0°, west +90°, north +180°, and east +270° (or −90°, that's the same thing).\n return {\n azimuth: getAzimuth(H, phi, c.declination),\n altitude: getAltitude(H, phi, c.declination)\n };\n}\n\nexport function getSunlightDirection(timestamp, latitude, longitude) {\n const {azimuth, altitude} = getSolarPosition(timestamp, latitude, longitude);\n\n // solar position to light direction\n return [\n Math.sin(azimuth) * Math.cos(altitude),\n Math.cos(azimuth) * Math.cos(altitude),\n -Math.sin(altitude)\n ];\n}\n\nfunction toJulianDay(timestamp) {\n return timestamp / DAY_IN_MS - 0.5 + JD1970;\n}\n\nfunction toDays(timestamp) {\n return toJulianDay(timestamp) - JD2000;\n}\n\nfunction getRightAscension(eclipticLongitude, b) {\n const lambda = eclipticLongitude;\n return Math.atan2(Math.sin(lambda) * Math.cos(e) - Math.tan(b) * Math.sin(e), Math.cos(lambda));\n}\n\nfunction getDeclination(eclipticLongitude, b) {\n const lambda = eclipticLongitude;\n return Math.asin(Math.sin(b) * Math.cos(e) + Math.cos(b) * Math.sin(e) * Math.sin(lambda));\n}\n\nfunction getAzimuth(hourAngle, latitudeInRadians, declination) {\n const H = hourAngle;\n const phi = latitudeInRadians;\n const delta = declination;\n return Math.atan2(Math.sin(H), Math.cos(H) * Math.sin(phi) - Math.tan(delta) * Math.cos(phi));\n}\n\nfunction getAltitude(hourAngle, latitudeInRadians, declination) {\n const H = hourAngle;\n const phi = latitudeInRadians;\n const delta = declination;\n return Math.asin(Math.sin(phi) * Math.sin(delta) + Math.cos(phi) * Math.cos(delta) * Math.cos(H));\n}\n\n// https://www.aa.quae.nl/en/reken/zonpositie.html\n// \"The Observer section\"\nfunction getSiderealTime(dates, longitudeWestInRadians) {\n return DEGREES_TO_RADIANS * (THETA0 + THETA1 * dates) - longitudeWestInRadians;\n}\n\nfunction getSolarMeanAnomaly(days) {\n return DEGREES_TO_RADIANS * (M0 + M1 * days);\n}\n\nfunction getEclipticLongitude(meanAnomaly) {\n const M = meanAnomaly;\n // equation of center\n const C =\n DEGREES_TO_RADIANS * (1.9148 * Math.sin(M) + 0.02 * Math.sin(2 * M) + 0.0003 * Math.sin(3 * M));\n // perihelion of the Earth\n const P = DEGREES_TO_RADIANS * 102.9372;\n\n return M + C + P + Math.PI;\n}\n\nfunction getSunCoords(dates) {\n const M = getSolarMeanAnomaly(dates);\n const L = getEclipticLongitude(M);\n\n return {\n declination: getDeclination(L, 0),\n rightAscension: getRightAscension(L, 0)\n };\n}\n","import {DirectionalLight} from './directional-light';\nimport {getSunlightDirection} from './suncalc';\n\nexport default class SunLight extends DirectionalLight {\n constructor({timestamp, ...others}) {\n super(others);\n\n this.timestamp = timestamp;\n }\n\n getProjectedLight({layer}) {\n const {viewport} = layer.context;\n const isGlobe = viewport.resolution > 0;\n\n if (isGlobe) {\n // Rotate vector to align with the direction of the globe projection (up at lon:0,lat:0 is [0, -1, 0])\n const [x, y, z] = getSunlightDirection(this.timestamp, 0, 0);\n this.direction = [x, -z, y];\n } else {\n const {latitude, longitude} = viewport;\n this.direction = getSunlightDirection(this.timestamp, latitude, longitude);\n }\n\n return this;\n }\n}\n","//\n// A base render pass.\n//\n// Attribution: This class and the multipass system were inspired by\n// the THREE.js EffectComposer and *Pass classes\n\nimport {ClipSpace, setParameters, withParameters, clear} from '@luma.gl/core';\nimport Pass from './pass';\n\nexport default class ScreenPass extends Pass {\n constructor(gl, props = {}) {\n super(gl, props);\n const {module, fs, id} = props;\n this.model = new ClipSpace(gl, {id, fs, modules: [module]});\n }\n\n render(params) {\n const gl = this.gl;\n\n setParameters(gl, {viewport: [0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight]});\n\n withParameters(gl, {framebuffer: params.outputBuffer, clearColor: [0, 0, 0, 0]}, () =>\n this._renderPass(gl, params)\n );\n }\n\n delete() {\n this.model.delete();\n this.model = null;\n }\n\n // Private methods\n\n /**\n * Renders the pass.\n * This is an abstract method that should be overridden.\n * @param {Framebuffer} inputBuffer - Frame buffer that contains the result of the previous pass\n * @param {Framebuffer} outputBuffer - Frame buffer that serves as the output render target\n */\n _renderPass(gl, {inputBuffer, outputBuffer}) {\n clear(gl, {color: true});\n this.model.draw({\n moduleSettings: this.props.moduleSettings,\n uniforms: {\n texture: inputBuffer,\n texSize: [inputBuffer.width, inputBuffer.height]\n },\n parameters: {\n depthWrite: false,\n depthTest: false\n }\n });\n }\n}\n","import Effect from '../lib/effect';\nimport ScreenPass from '../passes/screen-pass';\nimport {normalizeShaderModule} from '@luma.gl/core';\n\nexport default class PostProcessEffect extends Effect {\n constructor(module, props = {}) {\n super(props);\n this.id = `${module.name}-pass`;\n normalizeShaderModule(module);\n this.module = module;\n }\n\n postRender(gl, params) {\n if (!this.passes) {\n this.passes = createPasses(gl, this.module, this.id, this.props);\n }\n\n const {target} = params;\n let inputBuffer = params.inputBuffer;\n let outputBuffer = params.swapBuffer;\n\n for (let index = 0; index < this.passes.length; index++) {\n if (target && index === this.passes.length - 1) {\n outputBuffer = target;\n }\n this.passes[index].render({inputBuffer, outputBuffer});\n const switchBuffer = outputBuffer;\n outputBuffer = inputBuffer;\n inputBuffer = switchBuffer;\n }\n return inputBuffer;\n }\n\n cleanup() {\n if (this.passes) {\n for (const pass of this.passes) {\n pass.delete();\n }\n this.passes = null;\n }\n }\n}\n\nfunction createPasses(gl, module, id, moduleSettings) {\n if (module.filter || module.sampler) {\n const fs = getFragmentShaderForRenderPass(module);\n const pass = new ScreenPass(gl, {\n id,\n module,\n fs,\n moduleSettings\n });\n return [pass];\n }\n\n const passes = module.passes || [];\n return passes.map((pass, index) => {\n const fs = getFragmentShaderForRenderPass(module, pass);\n const idn = `${id}-${index}`;\n\n return new ScreenPass(gl, {\n id: idn,\n module,\n fs,\n moduleSettings\n });\n });\n}\n\nconst FILTER_FS_TEMPLATE = func => `\\\nuniform sampler2D texture;\nuniform vec2 texSize;\n\nvarying vec2 position;\nvarying vec2 coordinate;\nvarying vec2 uv;\n\nvoid main() {\n vec2 texCoord = coordinate;\n\n gl_FragColor = texture2D(texture, texCoord);\n gl_FragColor = ${func}(gl_FragColor, texSize, texCoord);\n}\n`;\n\nconst SAMPLER_FS_TEMPLATE = func => `\\\nuniform sampler2D texture;\nuniform vec2 texSize;\n\nvarying vec2 position;\nvarying vec2 coordinate;\nvarying vec2 uv;\n\nvoid main() {\n vec2 texCoord = coordinate;\n\n gl_FragColor = ${func}(texture, texSize, texCoord);\n}\n`;\n\nfunction getFragmentShaderForRenderPass(module, pass = module) {\n if (pass.filter) {\n const func = typeof pass.filter === 'string' ? pass.filter : `${module.name}_filterColor`;\n return FILTER_FS_TEMPLATE(func);\n }\n\n if (pass.sampler) {\n const func = typeof pass.sampler === 'string' ? pass.sampler : `${module.name}_sampleColor`;\n return SAMPLER_FS_TEMPLATE(func);\n }\n\n // console.error(`${module.name} no fragment shader generated`);\n return null;\n}\n","import {Matrix4} from 'math.gl';\nimport Viewport from './viewport';\nimport {PROJECTION_MODE} from '../lib/constants';\n\nimport * as vec3 from 'gl-matrix/vec3';\nimport * as vec4 from 'gl-matrix/vec4';\n\nconst DEGREES_TO_RADIANS = Math.PI / 180;\nconst RADIANS_TO_DEGREES = 180 / Math.PI;\nconst EARTH_RADIUS = 6370972;\nconst GLOBE_RADIUS = 256;\n\nfunction getDistanceScales() {\n const unitsPerMeter = GLOBE_RADIUS / EARTH_RADIUS;\n const unitsPerDegree = (Math.PI / 180) * GLOBE_RADIUS;\n\n return {\n unitsPerMeter: [unitsPerMeter, unitsPerMeter, unitsPerMeter],\n unitsPerMeter2: [0, 0, 0],\n metersPerUnit: [1 / unitsPerMeter, 1 / unitsPerMeter, 1 / unitsPerMeter],\n unitsPerDegree: [unitsPerDegree, unitsPerDegree, unitsPerMeter],\n unitsPerDegree2: [0, 0, 0],\n degreesPerUnit: [1 / unitsPerDegree, 1 / unitsPerDegree, 1 / unitsPerMeter]\n };\n}\n\nexport default class GlobeViewport extends Viewport {\n constructor(opts = {}) {\n const {\n latitude = 0,\n longitude = 0,\n zoom = 11,\n nearZMultiplier = 0.1,\n farZMultiplier = 2,\n resolution = 10\n } = opts;\n\n let {width, height, altitude = 1.5} = opts;\n\n width = width || 1;\n height = height || 1;\n altitude = Math.max(0.75, altitude);\n\n // Calculate view matrix\n const viewMatrix = new Matrix4().lookAt({eye: [0, -altitude, 0], up: [0, 0, 1]});\n const scale = Math.pow(2, zoom);\n viewMatrix.rotateX(latitude * DEGREES_TO_RADIANS);\n viewMatrix.rotateZ(-longitude * DEGREES_TO_RADIANS);\n viewMatrix.scale(scale / height);\n\n const halfFov = Math.atan(0.5 / altitude);\n const relativeScale = (GLOBE_RADIUS * 2 * scale) / height;\n\n super({\n ...opts,\n // x, y,\n width,\n height,\n\n // view matrix\n viewMatrix,\n longitude,\n latitude,\n zoom,\n\n // projection matrix parameters\n fovyRadians: halfFov * 2,\n aspect: width / height,\n focalDistance: altitude,\n near: nearZMultiplier,\n far: Math.min(2, 1 / relativeScale + 1) * altitude * farZMultiplier\n });\n\n this.resolution = resolution;\n this.distanceScales = getDistanceScales();\n }\n\n get projectionMode() {\n return PROJECTION_MODE.GLOBE;\n }\n\n getDistanceScales() {\n return this.distanceScales;\n }\n\n getBounds(options = {}) {\n const unprojectOption = {targetZ: options.z || 0};\n\n const left = this.unproject([0, this.height / 2], unprojectOption);\n const top = this.unproject([this.width / 2, 0], unprojectOption);\n const right = this.unproject([this.width, this.height / 2], unprojectOption);\n const bottom = this.unproject([this.width / 2, this.height], unprojectOption);\n\n if (right[0] < this.longitude) right[0] += 360;\n if (left[0] > this.longitude) left[0] -= 360;\n\n return [\n Math.min(left[0], right[0], top[0], bottom[0]),\n Math.min(left[1], right[1], top[1], bottom[1]),\n Math.max(left[0], right[0], top[0], bottom[0]),\n Math.max(left[1], right[1], top[1], bottom[1])\n ];\n }\n\n unproject(xyz, {topLeft = true, targetZ} = {}) {\n const [x, y, z] = xyz;\n\n const y2 = topLeft ? y : this.height - y;\n const {pixelUnprojectionMatrix} = this;\n\n let coord;\n if (Number.isFinite(z)) {\n // Has depth component\n coord = transformVector(pixelUnprojectionMatrix, [x, y2, z, 1]);\n } else {\n // since we don't know the correct projected z value for the point,\n // unproject two points to get a line and then find the point on that line that intersects with the sphere\n const coord0 = transformVector(pixelUnprojectionMatrix, [x, y2, -1, 1]);\n const coord1 = transformVector(pixelUnprojectionMatrix, [x, y2, 1, 1]);\n\n const lt = ((targetZ || 0) / EARTH_RADIUS + 1) * GLOBE_RADIUS;\n const lSqr = vec3.sqrLen(vec3.sub([], coord0, coord1));\n const l0Sqr = vec3.sqrLen(coord0);\n const l1Sqr = vec3.sqrLen(coord1);\n const sSqr = (4 * l0Sqr * l1Sqr - (lSqr - l0Sqr - l1Sqr) ** 2) / 16;\n const dSqr = (4 * sSqr) / lSqr;\n const r0 = Math.sqrt(l0Sqr - dSqr);\n const dr = Math.sqrt(Math.max(0, lt * lt - dSqr));\n const t = (r0 - dr) / Math.sqrt(lSqr);\n\n coord = vec3.lerp([], coord0, coord1, t);\n }\n const [X, Y, Z] = this.unprojectPosition(coord);\n\n if (Number.isFinite(z)) {\n return [X, Y, Z];\n }\n return Number.isFinite(targetZ) ? [X, Y, targetZ] : [X, Y];\n }\n\n projectPosition(xyz) {\n const [lng, lat, Z = 0] = xyz;\n const lambda = lng * DEGREES_TO_RADIANS;\n const phi = lat * DEGREES_TO_RADIANS;\n const cosPhi = Math.cos(phi);\n const D = (Z / EARTH_RADIUS + 1) * GLOBE_RADIUS;\n\n return [Math.sin(lambda) * cosPhi * D, -Math.cos(lambda) * cosPhi * D, Math.sin(phi) * D];\n }\n\n unprojectPosition(xyz) {\n const [x, y, z] = xyz;\n const D = vec3.len(xyz);\n const phi = Math.asin(z / D);\n const lambda = Math.atan2(x, -y);\n\n const lng = lambda * RADIANS_TO_DEGREES;\n const lat = phi * RADIANS_TO_DEGREES;\n const Z = (D / GLOBE_RADIUS - 1) * EARTH_RADIUS;\n return [lng, lat, Z];\n }\n\n projectFlat(xyz) {\n return xyz;\n }\n\n unprojectFlat(xyz) {\n return xyz;\n }\n\n panByPosition(coords, pixel) {\n const fromPosition = this.unproject(pixel);\n return {\n longitude: coords[0] - fromPosition[0] + this.longitude,\n latitude: coords[1] - fromPosition[1] + this.latitude\n };\n }\n}\n\nfunction transformVector(matrix, vector) {\n const result = vec4.transformMat4([], vector, matrix);\n vec4.scale(result, result, 1 / result[3]);\n return result;\n}\n","import Controller from './controller';\nimport ViewState from './view-state';\nimport {mod} from '../utils/math-utils';\n\nimport {Vector3, _SphericalCoordinates as SphericalCoordinates, clamp} from 'math.gl';\n\nconst MOVEMENT_SPEED = 20;\nconst DEFAULT_STATE = {\n position: [0, 0, 0],\n pitch: 0,\n bearing: 0,\n maxPitch: 90,\n minPitch: -90\n};\n\nclass FirstPersonState extends ViewState {\n constructor({\n /* Viewport arguments */\n width, // Width of viewport\n height, // Height of viewport\n\n // Position and orientation\n position = DEFAULT_STATE.position, // typically in meters from anchor point\n\n bearing = DEFAULT_STATE.bearing, // Rotation around y axis\n pitch = DEFAULT_STATE.pitch, // Rotation around x axis\n\n // Geospatial anchor\n longitude,\n latitude,\n\n maxPitch = DEFAULT_STATE.maxPitch,\n minPitch = DEFAULT_STATE.minPitch,\n\n // Model state when the rotate operation first started\n startRotatePos,\n startBearing,\n startPitch,\n startZoomPosition,\n startZoom\n }) {\n super({\n width,\n height,\n position,\n bearing,\n pitch,\n longitude,\n latitude,\n maxPitch,\n minPitch\n });\n\n this._state = {\n startRotatePos,\n startBearing,\n startPitch,\n startZoomPosition,\n startZoom\n };\n }\n\n /* Public API */\n\n getDirection(use2D = false) {\n const spherical = new SphericalCoordinates({\n bearing: this._viewportProps.bearing,\n pitch: use2D ? 90 : 90 + this._viewportProps.pitch\n });\n const direction = spherical.toVector3().normalize();\n return direction;\n }\n\n /**\n * Start panning\n * @param {[Number, Number]} pos - position on screen where the pointer grabs\n */\n panStart() {\n return this;\n }\n\n /**\n * Pan\n * @param {[Number, Number]} pos - position on screen where the pointer is\n */\n pan() {\n return this;\n }\n\n /**\n * End panning\n * Must call if `panStart()` was called\n */\n panEnd() {\n return this;\n }\n\n /**\n * Start rotating\n * @param {[Number, Number]} pos - position on screen where the pointer grabs\n */\n rotateStart({pos}) {\n return this._getUpdatedState({\n startRotatePos: pos,\n startBearing: this._viewportProps.bearing,\n startPitch: this._viewportProps.pitch\n });\n }\n\n /**\n * Rotate\n * @param {[Number, Number]} pos - position on screen where the pointer is\n */\n rotate({pos, deltaAngleX = 0, deltaAngleY = 0}) {\n const {startRotatePos, startBearing, startPitch} = this._state;\n const {width, height} = this._viewportProps;\n\n if (!startRotatePos || !Number.isFinite(startBearing) || !Number.isFinite(startPitch)) {\n return this;\n }\n\n let newRotation;\n if (pos) {\n const deltaScaleX = (pos[0] - startRotatePos[0]) / width;\n const deltaScaleY = (pos[1] - startRotatePos[1]) / height;\n newRotation = {\n bearing: startBearing - deltaScaleX * 180,\n pitch: startPitch - deltaScaleY * 90\n };\n } else {\n newRotation = {\n bearing: startBearing - deltaAngleX,\n pitch: startPitch - deltaAngleY\n };\n }\n\n return this._getUpdatedState(newRotation);\n }\n\n /**\n * End rotating\n * Must call if `rotateStart()` was called\n */\n rotateEnd() {\n return this._getUpdatedState({\n startRotatePos: null,\n startBearing: null,\n startPitch: null\n });\n }\n\n /**\n * Start zooming\n * @param {[Number, Number]} pos - position on screen where the pointer grabs\n */\n zoomStart() {\n return this._getUpdatedState({\n startZoomPosition: this._viewportProps.position,\n startZoom: this._viewportProps.zoom\n });\n }\n\n /**\n * Zoom\n * @param {[Number, Number]} pos - position on screen where the current center is\n * @param {[Number, Number]} startPos - the center position at\n * the start of the operation. Must be supplied of `zoomStart()` was not called\n * @param {Number} scale - a number between [0, 1] specifying the accumulated\n * relative scale.\n */\n zoom({scale}) {\n let {startZoomPosition} = this._state;\n if (!startZoomPosition) {\n startZoomPosition = this._viewportProps.position;\n }\n\n const direction = this.getDirection();\n return this._move(direction, Math.log2(scale) * MOVEMENT_SPEED, startZoomPosition);\n }\n\n /**\n * End zooming\n * Must call if `zoomStart()` was called\n */\n zoomEnd() {\n return this._getUpdatedState({\n startZoomPosition: null,\n startZoom: null\n });\n }\n\n moveLeft(speed = MOVEMENT_SPEED) {\n const direction = this.getDirection(true);\n return this._move(direction.rotateZ({radians: Math.PI / 2}), speed);\n }\n\n moveRight(speed = MOVEMENT_SPEED) {\n const direction = this.getDirection(true);\n return this._move(direction.rotateZ({radians: -Math.PI / 2}), speed);\n }\n\n // forward\n moveUp(speed = MOVEMENT_SPEED) {\n const direction = this.getDirection(true);\n return this._move(direction, speed);\n }\n\n // backward\n moveDown(speed = MOVEMENT_SPEED) {\n const direction = this.getDirection(true);\n return this._move(direction.negate(), speed);\n }\n\n rotateLeft(speed = 15) {\n return this._getUpdatedState({\n bearing: this._viewportProps.bearing - speed\n });\n }\n\n rotateRight(speed = 15) {\n return this._getUpdatedState({\n bearing: this._viewportProps.bearing + speed\n });\n }\n\n rotateUp(speed = 10) {\n return this._getUpdatedState({\n pitch: this._viewportProps.pitch + speed\n });\n }\n\n rotateDown(speed = 10) {\n return this._getUpdatedState({\n pitch: this._viewportProps.pitch - speed\n });\n }\n\n zoomIn(speed = 2) {\n return this.zoom({scale: speed});\n }\n\n zoomOut(speed = 2) {\n return this.zoom({scale: 1 / speed});\n }\n\n // shortest path between two view states\n shortestPathFrom(viewState) {\n const fromProps = viewState.getViewportProps();\n const props = {...this._viewportProps};\n const {bearing, longitude} = props;\n\n if (Math.abs(bearing - fromProps.bearing) > 180) {\n props.bearing = bearing < 0 ? bearing + 360 : bearing - 360;\n }\n if (Math.abs(longitude - fromProps.longitude) > 180) {\n props.longitude = longitude < 0 ? longitude + 360 : longitude - 360;\n }\n return props;\n }\n\n /* Private methods */\n _move(direction, speed, fromPosition = this._viewportProps.position) {\n const delta = direction.scale(speed);\n return this._getUpdatedState({\n position: new Vector3(fromPosition).add(delta)\n });\n }\n\n _getUpdatedState(newProps) {\n // Update _viewportProps\n return new FirstPersonState({...this._viewportProps, ...this._state, ...newProps});\n }\n\n // Apply any constraints (mathematical or defined by _viewportProps) to map state\n _applyConstraints(props) {\n // Ensure pitch and zoom are within specified range\n const {pitch, maxPitch, minPitch, longitude, bearing} = props;\n props.pitch = clamp(pitch, minPitch, maxPitch);\n\n // Normalize degrees\n if (longitude < -180 || longitude > 180) {\n props.longitude = mod(longitude + 180, 360) - 180;\n }\n if (bearing < -180 || bearing > 180) {\n props.bearing = mod(bearing + 180, 360) - 180;\n }\n\n return props;\n }\n}\n\nexport default class FirstPersonController extends Controller {\n constructor(props) {\n super(FirstPersonState, props);\n }\n\n get linearTransitionProps() {\n return ['position', 'pitch', 'bearing'];\n }\n}\n","import View from './view';\nimport Viewport from '../viewports/viewport';\nimport {getMeterZoom} from '@math.gl/web-mercator';\nimport {Matrix4, _SphericalCoordinates as SphericalCoordinates} from 'math.gl';\nimport FirstPersonController from '../controllers/first-person-controller';\n\nfunction getDirectionFromBearingAndPitch({bearing, pitch}) {\n const spherical = new SphericalCoordinates({bearing, pitch});\n const direction = spherical.toVector3().normalize();\n return direction;\n}\n\nclass FirstPersonViewport extends Viewport {\n constructor(props) {\n // TODO - push direction handling into Matrix4.lookAt\n const {\n // view matrix arguments\n modelMatrix = null,\n bearing = 0,\n pitch = 0,\n up = [0, 0, 1] // Defines up direction, default positive z axis,\n } = props;\n\n // Always calculate direction from bearing and pitch\n const dir = getDirectionFromBearingAndPitch({\n bearing,\n // Avoid \"pixel project matrix not invertible\" error\n pitch: pitch === -90 ? 0.0001 : 90 + pitch\n });\n\n // Direction is relative to model coordinates, of course\n const center = modelMatrix ? modelMatrix.transformDirection(dir) : dir;\n\n // Just the direction. All the positioning is done in viewport.js\n const zoom = getMeterZoom(props);\n const scale = Math.pow(2, zoom);\n const viewMatrix = new Matrix4().lookAt({eye: [0, 0, 0], center, up}).scale(scale);\n\n super({\n ...props,\n zoom,\n viewMatrix\n });\n }\n}\n\nexport default class FirstPersonView extends View {\n constructor(props) {\n super({\n ...props,\n type: FirstPersonViewport\n });\n }\n\n get controller() {\n return this._getControllerProps({\n type: FirstPersonController\n });\n }\n}\n\nFirstPersonView.displayName = 'FirstPersonView';\n","import {clamp} from 'math.gl';\nimport Controller from './controller';\n\nimport {MapState} from './map-controller';\nimport {mod} from '../utils/math-utils';\n\nclass GlobeState extends MapState {\n // Apply any constraints (mathematical or defined by _viewportProps) to map state\n _applyConstraints(props) {\n // Ensure zoom is within specified range\n const {maxZoom, minZoom, zoom} = props;\n props.zoom = clamp(zoom, minZoom, maxZoom);\n\n const {longitude, latitude} = props;\n if (longitude < -180 || longitude > 180) {\n props.longitude = mod(longitude + 180, 360) - 180;\n }\n props.latitude = clamp(latitude, -89, 89);\n\n return props;\n }\n}\n\nexport default class GlobeController extends Controller {\n constructor(props) {\n props.dragMode = props.dragMode || 'pan';\n super(GlobeState, props);\n }\n\n setProps(props) {\n super.setProps(props);\n\n // TODO - support pitching?\n this.dragRotate = false;\n this.touchRotate = false;\n }\n\n get linearTransitionProps() {\n return ['longitude', 'latitude', 'zoom'];\n }\n}\n","import View from './view';\nimport GlobeViewport from '../viewports/globe-viewport';\nimport GlobeController from '../controllers/globe-controller';\n\nexport default class GlobeView extends View {\n constructor(props) {\n super({...props, type: GlobeViewport});\n }\n\n get controller() {\n return this._getControllerProps({\n type: GlobeController\n });\n }\n}\n\nGlobeView.displayName = 'GlobeView';\n","import TransitionInterpolator from './transition-interpolator';\nimport {lerp} from 'math.gl';\n\nimport {flyToViewport, getFlyToDuration} from '@math.gl/web-mercator';\n\nconst LINEARLY_INTERPOLATED_PROPS = ['bearing', 'pitch'];\nconst DEFAULT_OPTS = {\n speed: 1.2,\n curve: 1.414\n // screenSpeed and maxDuration are used only if specified\n};\n\n/**\n * This class adapts mapbox-gl-js Map#flyTo animation so it can be used in\n * react/redux architecture.\n * mapbox-gl-js flyTo : https://www.mapbox.com/mapbox-gl-js/api/#map#flyto.\n * It implements “Smooth and efficient zooming and panning.” algorithm by\n * \"Jarke J. van Wijk and Wim A.A. Nuij\"\n */\nexport default class FlyToInterpolator extends TransitionInterpolator {\n /**\n * @param props {Object}\n - `props.curve` (Number, optional, default: 1.414) - The zooming \"curve\" that will occur along the flight path.\n - `props.speed` (Number, optional, default: 1.2) - The average speed of the animation defined in relation to `options.curve`, it linearly affects the duration, higher speed returns smaller durations and vice versa.\n - `props.screenSpeed` (Number, optional) - The average speed of the animation measured in screenfuls per second. Similar to `opts.speed` it linearly affects the duration, when specified `opts.speed` is ignored.\n - `props.maxDuration` (Number, optional) - Maximum duration in milliseconds, if calculated duration exceeds this value, `0` is returned.\n */\n constructor(props = {}) {\n super({\n compare: ['longitude', 'latitude', 'zoom', 'bearing', 'pitch'],\n extract: ['width', 'height', 'longitude', 'latitude', 'zoom', 'bearing', 'pitch'],\n required: ['width', 'height', 'latitude', 'longitude', 'zoom']\n });\n this.props = {...DEFAULT_OPTS, ...props};\n }\n\n interpolateProps(startProps, endProps, t) {\n const viewport = flyToViewport(startProps, endProps, t, this.props);\n\n // Linearly interpolate 'bearing' and 'pitch'.\n // If pitch/bearing are not supplied, they are interpreted as zeros in viewport calculation\n // (fallback defined in WebMercatorViewport)\n // Because there is no guarantee that the current controller's ViewState normalizes\n // these props, safe guard is needed to avoid generating NaNs\n for (const key of LINEARLY_INTERPOLATED_PROPS) {\n viewport[key] = lerp(startProps[key] || 0, endProps[key] || 0, t);\n }\n\n return viewport;\n }\n\n // computes the transition duration\n getDuration(startProps, endProps) {\n let {transitionDuration} = endProps;\n if (transitionDuration === 'auto') {\n // auto calculate duration based on start and end props\n transitionDuration = getFlyToDuration(startProps, endProps, this.props);\n }\n return transitionDuration;\n }\n}\n","// TILE TYPES\n\nexport const TILE3D_TYPE = {\n COMPOSITE: 'cmpt',\n POINT_CLOUD: 'pnts',\n BATCHED_3D_MODEL: 'b3dm',\n INSTANCED_3D_MODEL: 'i3dm',\n GEOMETRY: 'geom',\n VECTOR: 'vect'\n};\n\nexport const TILE3D_TYPES = Object.keys(TILE3D_TYPE);\n\nexport const MAGIC_ARRAY = {\n BATCHED_MODEL: [98, 51, 100, 109],\n INSTANCED_MODEL: [105, 51, 100, 109],\n POINT_CLOUD: [112, 110, 116, 115],\n COMPOSITE: [99, 109, 112, 116]\n};\n\n// TILE CONSTANTS\nexport const TILE3D_OPTIMIZATION_HINT = {\n NOT_COMPUTED: -1,\n USE_OPTIMIZATION: 1,\n SKIP_OPTIMIZATION: 0\n};\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: capitalize(string) expects a string argument.\" : _formatMuiErrorMessage(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","/**\r\n * Common utilities\r\n * @module glMatrix\r\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\r\n * Sets the type of array used when creating new vectors and matrices\r\n *\r\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\r\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\r\n * Convert Degree To Radian\r\n *\r\n * @param {Number} a Angle in Degrees\r\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\r\n * Tests whether or not the arguments have approximately the same value, within an absolute\r\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\r\n * than or equal to 1.0, and a relative tolerance is used for larger values)\r\n *\r\n * @param {Number} a The first number to test.\r\n * @param {Number} b The second number to test.\r\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\r\n * 4 Dimensional Vector\r\n * @module vec4\r\n */\n\n/**\r\n * Creates a new, empty vec4\r\n *\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(4);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec4 initialized with values from an existing vector\r\n *\r\n * @param {ReadonlyVec4} a vector to clone\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\r\n * Creates a new vec4 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function fromValues(x, y, z, w) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\r\n * Copy the values from one vec4 to another\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the source vector\r\n * @returns {vec4} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\r\n * Set the components of a vec4 to the given values\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {vec4} out\r\n */\n\nexport function set(out, x, y, z, w) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\r\n * Adds two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n}\n/**\r\n * Multiplies two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n out[3] = a[3] * b[3];\n return out;\n}\n/**\r\n * Divides two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n out[3] = a[3] / b[3];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to ceil\r\n * @returns {vec4} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n out[3] = Math.ceil(a[3]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to floor\r\n * @returns {vec4} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n out[3] = Math.floor(a[3]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n out[3] = Math.min(a[3], b[3]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n out[3] = Math.max(a[3], b[3]);\n return out;\n}\n/**\r\n * Math.round the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to round\r\n * @returns {vec4} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n out[3] = Math.round(a[3]);\n return out;\n}\n/**\r\n * Scales a vec4 by a scalar number\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec4} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n}\n/**\r\n * Adds two vec4's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec4} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec4's\r\n *\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec4's\r\n *\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\r\n * Calculates the length of a vec4\r\n *\r\n * @param {ReadonlyVec4} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\r\n * Calculates the squared length of a vec4\r\n *\r\n * @param {ReadonlyVec4} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\r\n * Negates the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to negate\r\n * @returns {vec4} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = -a[3];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to invert\r\n * @returns {vec4} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n out[3] = 1.0 / a[3];\n return out;\n}\n/**\r\n * Normalize a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to normalize\r\n * @returns {vec4} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n var len = x * x + y * y + z * z + w * w;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n out[3] = w * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec4's\r\n *\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n/**\r\n * Returns the cross-product of three vectors in a 4-dimensional space\r\n *\r\n * @param {ReadonlyVec4} result the receiving vector\r\n * @param {ReadonlyVec4} U the first vector\r\n * @param {ReadonlyVec4} V the second vector\r\n * @param {ReadonlyVec4} W the third vector\r\n * @returns {vec4} result\r\n */\n\nexport function cross(out, u, v, w) {\n var A = v[0] * w[1] - v[1] * w[0],\n B = v[0] * w[2] - v[2] * w[0],\n C = v[0] * w[3] - v[3] * w[0],\n D = v[1] * w[2] - v[2] * w[1],\n E = v[1] * w[3] - v[3] * w[1],\n F = v[2] * w[3] - v[3] * w[2];\n var G = u[0];\n var H = u[1];\n var I = u[2];\n var J = u[3];\n out[0] = H * F - I * E + J * D;\n out[1] = -(G * F) + I * C - J * B;\n out[2] = G * E - H * C + J * A;\n out[3] = -(G * D) + H * B - I * A;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec4} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n out[3] = aw + t * (b[3] - aw);\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec4} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0; // Marsaglia, George. Choosing a Point from the Surface of a\n // Sphere. Ann. Math. Statist. 43 (1972), no. 2, 645--646.\n // http://projecteuclid.org/euclid.aoms/1177692644;\n\n var v1, v2, v3, v4;\n var s1, s2;\n\n do {\n v1 = glMatrix.RANDOM() * 2 - 1;\n v2 = glMatrix.RANDOM() * 2 - 1;\n s1 = v1 * v1 + v2 * v2;\n } while (s1 >= 1);\n\n do {\n v3 = glMatrix.RANDOM() * 2 - 1;\n v4 = glMatrix.RANDOM() * 2 - 1;\n s2 = v3 * v3 + v4 * v4;\n } while (s2 >= 1);\n\n var d = Math.sqrt((1 - s1) / s2);\n out[0] = scale * v1;\n out[1] = scale * v2;\n out[2] = scale * v3 * d;\n out[3] = scale * v4 * d;\n return out;\n}\n/**\r\n * Transforms the vec4 with a mat4.\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the vector to transform\r\n * @param {ReadonlyMat4} m matrix to transform with\r\n * @returns {vec4} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n}\n/**\r\n * Transforms the vec4 with a quat\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the vector to transform\r\n * @param {ReadonlyQuat} q quaternion to transform with\r\n * @returns {vec4} out\r\n */\n\nexport function transformQuat(out, a, q) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3]; // calculate quat * vec\n\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n out[3] = a[3];\n return out;\n}\n/**\r\n * Set the components of a vec4 to zero\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @returns {vec4} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {ReadonlyVec4} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyVec4} a The first vector.\r\n * @param {ReadonlyVec4} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyVec4} a The first vector.\r\n * @param {ReadonlyVec4} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3));\n}\n/**\r\n * Alias for {@link vec4.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec4.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec4.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec4.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec4.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec4.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec4.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec4s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 4;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n vec[3] = a[i + 3];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n a[i + 3] = vec[3];\n }\n\n return a;\n };\n}();","import * as vec4 from 'gl-matrix/vec4';\n\n// Helper, avoids low-precision 32 bit matrices from gl-matrix mat4.create()\nexport function createMat4() {\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n}\n\n// Transforms a vec4 with a projection matrix\nexport function transformVector(matrix, vector) {\n const result = vec4.transformMat4([], vector, matrix);\n vec4.scale(result, result, 1 / result[3]);\n return result;\n}\n\nexport function mod(value, divisor) {\n const modulus = value % divisor;\n return modulus < 0 ? divisor + modulus : modulus;\n}\n\nexport function lerp(start, end, step) {\n return step * end + (1 - step) * start;\n}\n\nfunction ieLog2(x) {\n return Math.log(x) * Math.LOG2E;\n}\n// Handle missing log2 in IE 11\nexport const log2 = Math.log2 || ieLog2;\n","import * as glMatrix from \"./common.js\";\n/**\r\n * 4x4 Matrix<br>Format: column-major, when typed out it looks like row-major<br>The matrices are being post multiplied.\r\n * @module mat4\r\n */\n\n/**\r\n * Creates a new identity mat4\r\n *\r\n * @returns {mat4} a new 4x4 matrix\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(16);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a new mat4 initialized with values from an existing matrix\r\n *\r\n * @param {ReadonlyMat4} a matrix to clone\r\n * @returns {mat4} a new 4x4 matrix\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\r\n * Copy the values from one mat4 to another\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\r\n * Create a new mat4 with the given values\r\n *\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\r\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\r\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\r\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\r\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\r\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\r\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\r\n * @returns {mat4} A new mat4\r\n */\n\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\r\n * Set the components of a mat4 to the given values\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\r\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\r\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\r\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\r\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\r\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\r\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\r\n * @returns {mat4} out\r\n */\n\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\r\n * Set a mat4 to the identity matrix\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @returns {mat4} out\r\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Transpose the values of a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a12 = a[6],\n a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\r\n * Inverts a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\n/**\r\n * Calculates the adjugate of a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\n/**\r\n * Calculates the determinant of a mat4\r\n *\r\n * @param {ReadonlyMat4} a the source matrix\r\n * @returns {Number} determinant of a\r\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\r\n * Multiplies two mat4s\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the first operand\r\n * @param {ReadonlyMat4} b the second operand\r\n * @returns {mat4} out\r\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15]; // Cache only the current line of the second matrix\n\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n/**\r\n * Translate a mat4 by the given vector\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to translate\r\n * @param {ReadonlyVec3} v vector to translate by\r\n * @returns {mat4} out\r\n */\n\nexport function translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n}\n/**\r\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to scale\r\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\r\n * @returns {mat4} out\r\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\r\n * Rotates a mat4 by the given angle around the given axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @param {ReadonlyVec3} axis the axis to rotate around\r\n * @returns {mat4} out\r\n */\n\nexport function rotate(out, a, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\r\n * Rotates a matrix by the given angle around the X axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\n/**\r\n * Rotates a matrix by the given angle around the Y axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function rotateY(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\n/**\r\n * Rotates a matrix by the given angle around the Z axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\n/**\r\n * Creates a matrix from a vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, dest, vec);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {ReadonlyVec3} v Translation vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a vector scaling\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.scale(dest, dest, vec);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {ReadonlyVec3} v Scaling vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a given angle around a given axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotate(dest, dest, rad, axis);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @param {ReadonlyVec3} axis the axis to rotate around\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotation(out, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from the given angle around the X axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateX(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function fromXRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from the given angle around the Y axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateY(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function fromYRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from the given angle around the Z axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateZ(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function fromZRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a quaternion rotation and vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {ReadonlyVec3} v Translation vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotationTranslation(out, q, v) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a new mat4 from a dual quat.\r\n *\r\n * @param {mat4} out Matrix\r\n * @param {ReadonlyQuat2} a Dual Quaternion\r\n * @returns {mat4} mat4 receiving operation result\r\n */\n\nexport function fromQuat2(out, a) {\n var translation = new glMatrix.ARRAY_TYPE(3);\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n\n fromRotationTranslation(out, a, translation);\n return out;\n}\n/**\r\n * Returns the translation vector component of a transformation\r\n * matrix. If a matrix is built with fromRotationTranslation,\r\n * the returned vector will be the same as the translation vector\r\n * originally supplied.\r\n * @param {vec3} out Vector to receive translation component\r\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\r\n * @return {vec3} out\r\n */\n\nexport function getTranslation(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\n/**\r\n * Returns the scaling factor component of a transformation\r\n * matrix. If a matrix is built with fromRotationTranslationScale\r\n * with a normalized Quaternion paramter, the returned vector will be\r\n * the same as the scaling vector\r\n * originally supplied.\r\n * @param {vec3} out Vector to receive scaling factor component\r\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\r\n * @return {vec3} out\r\n */\n\nexport function getScaling(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\n/**\r\n * Returns a quaternion representing the rotational component\r\n * of a transformation matrix. If a matrix is built with\r\n * fromRotationTranslation, the returned quaternion will be the\r\n * same as the quaternion originally supplied.\r\n * @param {quat} out Quaternion to receive the rotation component\r\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\r\n * @return {quat} out\r\n */\n\nexport function getRotation(out, mat) {\n var scaling = new glMatrix.ARRAY_TYPE(3);\n getScaling(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n\n return out;\n}\n/**\r\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n * mat4.scale(dest, scale)\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {ReadonlyVec3} v Translation vector\r\n * @param {ReadonlyVec3} s Scaling vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotationTranslationScale(out, q, v, s) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * mat4.translate(dest, origin);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n * mat4.scale(dest, scale)\r\n * mat4.translate(dest, negativeOrigin);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {ReadonlyVec3} v Translation vector\r\n * @param {ReadonlyVec3} s Scaling vector\r\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\n/**\r\n * Calculates a 4x4 matrix from the given quaternion\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {ReadonlyQuat} q Quaternion to create matrix from\r\n *\r\n * @returns {mat4} out\r\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Generates a frustum matrix with the given bounds\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {Number} left Left bound of the frustum\r\n * @param {Number} right Right bound of the frustum\r\n * @param {Number} bottom Bottom bound of the frustum\r\n * @param {Number} top Top bound of the frustum\r\n * @param {Number} near Near bound of the frustum\r\n * @param {Number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\n\nexport function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\n/**\r\n * Generates a perspective projection matrix with the given bounds.\r\n * Passing null/undefined/no value for far will generate infinite projection matrix.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {number} fovy Vertical field of view in radians\r\n * @param {number} aspect Aspect ratio. typically viewport width/height\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum, can be null or Infinity\r\n * @returns {mat4} out\r\n */\n\nexport function perspective(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n\n return out;\n}\n/**\r\n * Generates a perspective projection matrix with the given field of view.\r\n * This is primarily useful for generating projection matrices to be used\r\n * with the still experiemental WebVR API.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\n\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\n/**\r\n * Generates a orthogonal projection matrix with the given bounds\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {number} left Left bound of the frustum\r\n * @param {number} right Right bound of the frustum\r\n * @param {number} bottom Bottom bound of the frustum\r\n * @param {number} top Top bound of the frustum\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\n\nexport function ortho(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n/**\r\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\r\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {ReadonlyVec3} eye Position of the viewer\r\n * @param {ReadonlyVec3} center Point the viewer is looking at\r\n * @param {ReadonlyVec3} up vec3 pointing up\r\n * @returns {mat4} out\r\n */\n\nexport function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n return identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n/**\r\n * Generates a matrix that makes something look at something else.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {ReadonlyVec3} eye Position of the viewer\r\n * @param {ReadonlyVec3} center Point the viewer is looking at\r\n * @param {ReadonlyVec3} up vec3 pointing up\r\n * @returns {mat4} out\r\n */\n\nexport function targetTo(out, eye, target, up) {\n var eyex = eye[0],\n eyey = eye[1],\n eyez = eye[2],\n upx = up[0],\n upy = up[1],\n upz = up[2];\n var z0 = eyex - target[0],\n z1 = eyey - target[1],\n z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n var x0 = upy * z2 - upz * z1,\n x1 = upz * z0 - upx * z2,\n x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n/**\r\n * Returns a string representation of a mat4\r\n *\r\n * @param {ReadonlyMat4} a matrix to represent as a string\r\n * @returns {String} string representation of the matrix\r\n */\n\nexport function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\r\n * Returns Frobenius norm of a mat4\r\n *\r\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\r\n * @returns {Number} Frobenius norm\r\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\r\n * Adds two mat4's\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the first operand\r\n * @param {ReadonlyMat4} b the second operand\r\n * @returns {mat4} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\n/**\r\n * Subtracts matrix b from matrix a\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the first operand\r\n * @param {ReadonlyMat4} b the second operand\r\n * @returns {mat4} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\n/**\r\n * Multiply each element of the matrix by a scalar.\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to scale\r\n * @param {Number} b amount to scale the matrix's elements by\r\n * @returns {mat4} out\r\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\n/**\r\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\r\n *\r\n * @param {mat4} out the receiving vector\r\n * @param {ReadonlyMat4} a the first operand\r\n * @param {ReadonlyMat4} b the second operand\r\n * @param {Number} scale the amount to scale b's elements by before adding\r\n * @returns {mat4} out\r\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\n/**\r\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyMat4} a The first matrix.\r\n * @param {ReadonlyMat4} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\r\n * Returns whether or not the matrices have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyMat4} a The first matrix.\r\n * @param {ReadonlyMat4} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var a8 = a[8],\n a9 = a[9],\n a10 = a[10],\n a11 = a[11];\n var a12 = a[12],\n a13 = a[13],\n a14 = a[14],\n a15 = a[15];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n var b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n var b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11];\n var b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\r\n * Alias for {@link mat4.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link mat4.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n/**\r\n * 2 Dimensional Vector\r\n * @module vec2\r\n */\n\n/**\r\n * Creates a new, empty vec2\r\n *\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(2);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec2 initialized with values from an existing vector\r\n *\r\n * @param {ReadonlyVec2} a vector to clone\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\r\n * Creates a new vec2 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function fromValues(x, y) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\r\n * Copy the values from one vec2 to another\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the source vector\r\n * @returns {vec2} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\r\n * Set the components of a vec2 to the given values\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @returns {vec2} out\r\n */\n\nexport function set(out, x, y) {\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\r\n * Adds two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n return out;\n}\n/**\r\n * Multiplies two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n return out;\n}\n/**\r\n * Divides two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to ceil\r\n * @returns {vec2} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to floor\r\n * @returns {vec2} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n return out;\n}\n/**\r\n * Math.round the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to round\r\n * @returns {vec2} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n return out;\n}\n/**\r\n * Scales a vec2 by a scalar number\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec2} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n return out;\n}\n/**\r\n * Adds two vec2's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec2} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec2's\r\n *\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return Math.hypot(x, y);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec2's\r\n *\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return x * x + y * y;\n}\n/**\r\n * Calculates the length of a vec2\r\n *\r\n * @param {ReadonlyVec2} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0],\n y = a[1];\n return Math.hypot(x, y);\n}\n/**\r\n * Calculates the squared length of a vec2\r\n *\r\n * @param {ReadonlyVec2} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0],\n y = a[1];\n return x * x + y * y;\n}\n/**\r\n * Negates the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to negate\r\n * @returns {vec2} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to invert\r\n * @returns {vec2} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n return out;\n}\n/**\r\n * Normalize a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to normalize\r\n * @returns {vec2} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0],\n y = a[1];\n var len = x * x + y * y;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec2's\r\n *\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n}\n/**\r\n * Computes the cross product of two vec2's\r\n * Note that the cross product must by definition produce a 3D vector\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function cross(out, a, b) {\n var z = a[0] * b[1] - a[1] * b[0];\n out[0] = out[1] = 0;\n out[2] = z;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec2} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0],\n ay = a[1];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec2} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n out[0] = Math.cos(r) * scale;\n out[1] = Math.sin(r) * scale;\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat2} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat2(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat2d\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat2d} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat2d(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat3\r\n * 3rd vector component is implicitly '1'\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat3} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[3] * y + m[6];\n out[1] = m[1] * x + m[4] * y + m[7];\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat4\r\n * 3rd vector component is implicitly '0'\r\n * 4th vector component is implicitly '1'\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat4} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0];\n var y = a[1];\n out[0] = m[0] * x + m[4] * y + m[12];\n out[1] = m[1] * x + m[5] * y + m[13];\n return out;\n}\n/**\r\n * Rotate a 2D vector\r\n * @param {vec2} out The receiving vec2\r\n * @param {ReadonlyVec2} a The vec2 point to rotate\r\n * @param {ReadonlyVec2} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec2} out\r\n */\n\nexport function rotate(out, a, b, rad) {\n //Translate point to the origin\n var p0 = a[0] - b[0],\n p1 = a[1] - b[1],\n sinC = Math.sin(rad),\n cosC = Math.cos(rad); //perform rotation and translate to correct position\n\n out[0] = p0 * cosC - p1 * sinC + b[0];\n out[1] = p0 * sinC + p1 * cosC + b[1];\n return out;\n}\n/**\r\n * Get the angle between two 2D vectors\r\n * @param {ReadonlyVec2} a The first operand\r\n * @param {ReadonlyVec2} b The second operand\r\n * @returns {Number} The angle in radians\r\n */\n\nexport function angle(a, b) {\n var x1 = a[0],\n y1 = a[1],\n x2 = b[0],\n y2 = b[1],\n // mag is the product of the magnitudes of a and b\n mag = Math.sqrt(x1 * x1 + y1 * y1) * Math.sqrt(x2 * x2 + y2 * y2),\n // mag &&.. short circuits if mag == 0\n cosine = mag && (x1 * x2 + y1 * y2) / mag; // Math.min(Math.max(cosine, -1), 1) clamps the cosine between -1 and 1\n\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\r\n * Set the components of a vec2 to zero\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @returns {vec2} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {ReadonlyVec2} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec2(\" + a[0] + \", \" + a[1] + \")\";\n}\n/**\r\n * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyVec2} a The first vector.\r\n * @param {ReadonlyVec2} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyVec2} a The first vector.\r\n * @param {ReadonlyVec2} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1];\n var b0 = b[0],\n b1 = b[1];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1));\n}\n/**\r\n * Alias for {@link vec2.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec2.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec2.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec2.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec2.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec2.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec2.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec2s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 2;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n }\n\n return a;\n };\n}();","import * as glMatrix from \"./common.js\";\n/**\r\n * 3 Dimensional Vector\r\n * @module vec3\r\n */\n\n/**\r\n * Creates a new, empty vec3\r\n *\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec3 initialized with values from an existing vector\r\n *\r\n * @param {ReadonlyVec3} a vector to clone\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Calculates the length of a vec3\r\n *\r\n * @param {ReadonlyVec3} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Creates a new vec3 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Copy the values from one vec3 to another\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the source vector\r\n * @returns {vec3} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Set the components of a vec3 to the given values\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} out\r\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Adds two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\r\n * Multiplies two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\r\n * Divides two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to ceil\r\n * @returns {vec3} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to floor\r\n * @returns {vec3} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\r\n * Math.round the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to round\r\n * @returns {vec3} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\r\n * Scales a vec3 by a scalar number\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec3} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\r\n * Adds two vec3's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec3} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Calculates the squared length of a vec3\r\n *\r\n * @param {ReadonlyVec3} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Negates the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to negate\r\n * @returns {vec3} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to invert\r\n * @returns {vec3} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\r\n * Normalize a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to normalize\r\n * @returns {vec3} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\r\n * Computes the cross product of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\r\n * Performs a hermite interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {ReadonlyVec3} c the third operand\r\n * @param {ReadonlyVec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Performs a bezier interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {ReadonlyVec3} c the third operand\r\n * @param {ReadonlyVec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec3} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat4.\r\n * 4th vector component is implicitly '1'\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyMat4} m matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat3.\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\r\n * Transforms the vec3 with a quat\r\n * Can also be used for dual quaternions. (Multiply it with the real part)\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyQuat} q quaternion to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\r\n * Rotate a 3D vector around the x-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the y-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the z-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Get the angle between two 3D vectors\r\n * @param {ReadonlyVec3} a The first operand\r\n * @param {ReadonlyVec3} b The second operand\r\n * @returns {Number} The angle in radians\r\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\r\n * Set the components of a vec3 to zero\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @returns {vec3} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {ReadonlyVec3} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyVec3} a The first vector.\r\n * @param {ReadonlyVec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyVec3} a The first vector.\r\n * @param {ReadonlyVec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\r\n * Alias for {@link vec3.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec3.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec3.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec3.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec3.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec3.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec3.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec3s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\nexport default function assert(condition, message) {\n if (!condition) {\n throw new Error(message || '@math.gl/web-mercator: assertion failed.');\n }\n}\n","// TODO - THE UTILITIES IN THIS FILE SHOULD BE IMPORTED FROM WEB-MERCATOR-VIEWPORT MODULE\n\nimport {createMat4, transformVector, log2} from './math-utils';\n\nimport * as mat4 from 'gl-matrix/mat4';\nimport * as vec2 from 'gl-matrix/vec2';\nimport * as vec3 from 'gl-matrix/vec3';\nimport assert from './assert';\n\n// CONSTANTS\nconst PI = Math.PI;\nconst PI_4 = PI / 4;\nconst DEGREES_TO_RADIANS = PI / 180;\nconst RADIANS_TO_DEGREES = 180 / PI;\nconst TILE_SIZE = 512;\n// Average circumference (40075 km equatorial, 40007 km meridional)\nconst EARTH_CIRCUMFERENCE = 40.03e6;\n\n// Mapbox default altitude\nexport const DEFAULT_ALTITUDE = 1.5;\n\n/** Util functions **/\nexport function zoomToScale(zoom) {\n return Math.pow(2, zoom);\n}\n\nexport function scaleToZoom(scale) {\n return log2(scale);\n}\n\n/**\n * Project [lng,lat] on sphere onto [x,y] on 512*512 Mercator Zoom 0 tile.\n * Performs the nonlinear part of the web mercator projection.\n * Remaining projection is done with 4x4 matrices which also handles\n * perspective.\n *\n * @param lngLat - [lng, lat] coordinates\n * Specifies a point on the sphere to project onto the map.\n * @return [x,y] coordinates.\n */\nexport function lngLatToWorld([lng, lat]) {\n assert(Number.isFinite(lng));\n assert(Number.isFinite(lat) && lat >= -90 && lat <= 90, 'invalid latitude');\n\n const lambda2 = lng * DEGREES_TO_RADIANS;\n const phi2 = lat * DEGREES_TO_RADIANS;\n const x = (TILE_SIZE * (lambda2 + PI)) / (2 * PI);\n const y = (TILE_SIZE * (PI + Math.log(Math.tan(PI_4 + phi2 * 0.5)))) / (2 * PI);\n return [x, y];\n}\n\n// Unproject world point [x,y] on map onto {lat, lon} on sphere\nexport function worldToLngLat([x, y]) {\n const lambda2 = (x / TILE_SIZE) * (2 * PI) - PI;\n const phi2 = 2 * (Math.atan(Math.exp((y / TILE_SIZE) * (2 * PI) - PI)) - PI_4);\n return [lambda2 * RADIANS_TO_DEGREES, phi2 * RADIANS_TO_DEGREES];\n}\n\n// Returns the zoom level that gives a 1 meter pixel at a certain latitude\n// 1 = C*cos(y)/2^z/TILE_SIZE = C*cos(y)/2^(z+9)\nexport function getMeterZoom({latitude}) {\n assert(Number.isFinite(latitude));\n const latCosine = Math.cos(latitude * DEGREES_TO_RADIANS);\n return scaleToZoom(EARTH_CIRCUMFERENCE * latCosine) - 9;\n}\n\n/**\n * Calculate distance scales in meters around current lat/lon, both for\n * degrees and pixels.\n * In mercator projection mode, the distance scales vary significantly\n * with latitude.\n */\n\nexport function getDistanceScales({latitude, longitude, highPrecision = false}) {\n assert(Number.isFinite(latitude) && Number.isFinite(longitude));\n\n const result = {};\n const worldSize = TILE_SIZE;\n const latCosine = Math.cos(latitude * DEGREES_TO_RADIANS);\n\n /**\n * Number of pixels occupied by one degree longitude around current lat/lon:\n unitsPerDegreeX = d(lngLatToWorld([lng, lat])[0])/d(lng)\n = scale * TILE_SIZE * DEGREES_TO_RADIANS / (2 * PI)\n unitsPerDegreeY = d(lngLatToWorld([lng, lat])[1])/d(lat)\n = -scale * TILE_SIZE * DEGREES_TO_RADIANS / cos(lat * DEGREES_TO_RADIANS) / (2 * PI)\n */\n const unitsPerDegreeX = worldSize / 360;\n const unitsPerDegreeY = unitsPerDegreeX / latCosine;\n\n /**\n * Number of pixels occupied by one meter around current lat/lon:\n */\n const altUnitsPerMeter = worldSize / EARTH_CIRCUMFERENCE / latCosine;\n\n /**\n * LngLat: longitude -> east and latitude -> north (bottom left)\n * UTM meter offset: x -> east and y -> north (bottom left)\n * World space: x -> east and y -> south (top left)\n *\n * Y needs to be flipped when converting delta degree/meter to delta pixels\n */\n result.unitsPerMeter = [altUnitsPerMeter, altUnitsPerMeter, altUnitsPerMeter];\n result.metersPerUnit = [1 / altUnitsPerMeter, 1 / altUnitsPerMeter, 1 / altUnitsPerMeter];\n\n result.unitsPerDegree = [unitsPerDegreeX, unitsPerDegreeY, altUnitsPerMeter];\n result.degreesPerUnit = [1 / unitsPerDegreeX, 1 / unitsPerDegreeY, 1 / altUnitsPerMeter];\n\n /**\n * Taylor series 2nd order for 1/latCosine\n f'(a) * (x - a)\n = d(1/cos(lat * DEGREES_TO_RADIANS))/d(lat) * dLat\n = DEGREES_TO_RADIANS * tan(lat * DEGREES_TO_RADIANS) / cos(lat * DEGREES_TO_RADIANS) * dLat\n */\n if (highPrecision) {\n const latCosine2 = (DEGREES_TO_RADIANS * Math.tan(latitude * DEGREES_TO_RADIANS)) / latCosine;\n const unitsPerDegreeY2 = (unitsPerDegreeX * latCosine2) / 2;\n const altUnitsPerDegree2 = (worldSize / EARTH_CIRCUMFERENCE) * latCosine2;\n const altUnitsPerMeter2 = (altUnitsPerDegree2 / unitsPerDegreeY) * altUnitsPerMeter;\n\n result.unitsPerDegree2 = [0, unitsPerDegreeY2, altUnitsPerDegree2];\n result.unitsPerMeter2 = [altUnitsPerMeter2, 0, altUnitsPerMeter2];\n }\n\n // Main results, used for converting meters to latlng deltas and scaling offsets\n return result;\n}\n\n/**\n * Offset a lng/lat position by meterOffset (northing, easting)\n */\nexport function addMetersToLngLat(lngLatZ, xyz) {\n const [longitude, latitude, z0] = lngLatZ;\n const [x, y, z] = xyz;\n\n const {unitsPerMeter, unitsPerMeter2} = getDistanceScales({\n longitude,\n latitude,\n highPrecision: true\n });\n\n const worldspace = lngLatToWorld(lngLatZ);\n worldspace[0] += x * (unitsPerMeter[0] + unitsPerMeter2[0] * y);\n worldspace[1] += y * (unitsPerMeter[1] + unitsPerMeter2[1] * y);\n\n // @ts-ignore\n const newLngLat = worldToLngLat(worldspace);\n const newZ = (z0 || 0) + (z || 0);\n\n return Number.isFinite(z0) || Number.isFinite(z) ? [newLngLat[0], newLngLat[1], newZ] : newLngLat;\n}\n\n// ATTRIBUTION:\n// view and projection matrix creation is intentionally kept compatible with\n// mapbox-gl's implementation to ensure that seamless interoperation\n// with mapbox and react-map-gl. See: https://github.com/mapbox/mapbox-gl-js\n\nexport function getViewMatrix({\n // Viewport props\n height,\n pitch,\n bearing,\n altitude,\n // Pre-calculated parameters\n scale,\n center = null\n}) {\n // VIEW MATRIX: PROJECTS MERCATOR WORLD COORDINATES\n // Note that mercator world coordinates typically need to be flipped\n //\n // Note: As usual, matrix operation orders should be read in reverse\n // since vectors will be multiplied from the right during transformation\n const vm = createMat4();\n\n // Move camera to altitude (along the pitch & bearing direction)\n mat4.translate(vm, vm, [0, 0, -altitude]);\n\n // Rotate by bearing, and then by pitch (which tilts the view)\n mat4.rotateX(vm, vm, -pitch * DEGREES_TO_RADIANS);\n mat4.rotateZ(vm, vm, bearing * DEGREES_TO_RADIANS);\n\n scale /= height;\n mat4.scale(vm, vm, [scale, scale, scale]);\n\n if (center) {\n mat4.translate(vm, vm, vec3.negate([], center));\n }\n\n return vm;\n}\n\n// PROJECTION MATRIX PARAMETERS\n// Variable fov (in radians)\nexport function getProjectionParameters({\n width,\n height,\n fovy = altitudeToFovy(DEFAULT_ALTITUDE),\n altitude,\n pitch = 0,\n nearZMultiplier = 1,\n farZMultiplier = 1\n}) {\n // For back-compatibility allow field of view to be\n // derived from altitude\n if (altitude !== undefined) {\n fovy = altitudeToFovy(altitude);\n }\n const halfFov = 0.5 * fovy * DEGREES_TO_RADIANS;\n const focalDistance = fovyToAltitude(fovy);\n\n // Find the distance from the center point to the center top\n // in focal distance units using law of sines.\n const pitchRadians = pitch * DEGREES_TO_RADIANS;\n const topHalfSurfaceDistance =\n (Math.sin(halfFov) * focalDistance) /\n Math.sin(Math.min(Math.max(Math.PI / 2 - pitchRadians - halfFov, 0.01), Math.PI - 0.01));\n\n // Calculate z value of the farthest fragment that should be rendered.\n const farZ = Math.sin(pitchRadians) * topHalfSurfaceDistance + focalDistance;\n\n return {\n fov: 2 * halfFov,\n aspect: width / height,\n focalDistance,\n near: nearZMultiplier,\n far: farZ * farZMultiplier\n };\n}\n\n// PROJECTION MATRIX: PROJECTS FROM CAMERA (VIEW) SPACE TO CLIPSPACE\n// To match mapbox's z buffer:\n// <= 0.28 - nearZMultiplier: 0.1, farZmultiplier: 1\n// >= 0.29 - nearZMultiplier: 1 / height, farZMultiplier: 1.01\nexport function getProjectionMatrix({\n width,\n height,\n pitch,\n altitude,\n fovy,\n nearZMultiplier,\n farZMultiplier\n}) {\n const {fov, aspect, near, far} = getProjectionParameters({\n width,\n height,\n altitude,\n fovy,\n pitch,\n nearZMultiplier,\n farZMultiplier\n });\n\n const projectionMatrix = mat4.perspective(\n [],\n fov, // fov in radians\n aspect, // aspect ratio\n near, // near plane\n far // far plane\n );\n\n return projectionMatrix;\n}\n\n// Utility function to calculate the field of view such that\n// the focal distance is equal to the ground distance. This\n// is how mapbox's z fov is calculated\nexport function altitudeToFovy(altitude) {\n return 2 * Math.atan(0.5 / altitude) * RADIANS_TO_DEGREES;\n}\n\nexport function fovyToAltitude(fovy) {\n return 0.5 / Math.tan(0.5 * fovy * DEGREES_TO_RADIANS);\n}\n\n// Project flat coordinates to pixels on screen.\nexport function worldToPixels(xyz, pixelProjectionMatrix) {\n const [x, y, z = 0] = xyz;\n assert(Number.isFinite(x) && Number.isFinite(y) && Number.isFinite(z));\n\n return transformVector(pixelProjectionMatrix, [x, y, z, 1]);\n}\n\n// Unproject pixels on screen to flat coordinates.\nexport function pixelsToWorld(xyz, pixelUnprojectionMatrix, targetZ = 0) {\n const [x, y, z] = xyz;\n assert(Number.isFinite(x) && Number.isFinite(y), 'invalid pixel coordinate');\n\n if (Number.isFinite(z)) {\n // Has depth component\n const coord = transformVector(pixelUnprojectionMatrix, [x, y, z, 1]);\n return coord;\n }\n\n // since we don't know the correct projected z value for the point,\n // unproject two points to get a line and then find the point on that line with z=0\n const coord0 = transformVector(pixelUnprojectionMatrix, [x, y, 0, 1]);\n const coord1 = transformVector(pixelUnprojectionMatrix, [x, y, 1, 1]);\n\n const z0 = coord0[2];\n const z1 = coord1[2];\n\n const t = z0 === z1 ? 0 : ((targetZ || 0) - z0) / (z1 - z0);\n return vec2.lerp([], coord0, coord1, t);\n}\n","// @ts-nocheck TODO padding\nimport WebMercatorViewport from './web-mercator-viewport';\nimport assert from './assert';\nimport {log2} from './math-utils';\n\n// Returns map settings {latitude, longitude, zoom}\n// that will contain the provided corners within the provided width.\n// Only supports non-perspective mode.\n\nexport default function fitBounds({\n width,\n height,\n bounds,\n minExtent = 0, // 0.01 would be about 1000 meters (degree is ~110KM)\n maxZoom = 24, // ~x4,000,000 => About 10 meter extents\n // options\n padding = 0,\n offset = [0, 0]\n}) {\n const [[west, south], [east, north]] = bounds;\n\n if (Number.isFinite(padding)) {\n const p = padding;\n padding = {\n top: p,\n bottom: p,\n left: p,\n right: p\n };\n } else {\n // Make sure all the required properties are set\n assert(\n Number.isFinite(padding.top) &&\n Number.isFinite(padding.bottom) &&\n Number.isFinite(padding.left) &&\n Number.isFinite(padding.right)\n );\n }\n\n const viewport = new WebMercatorViewport({\n width,\n height,\n longitude: 0,\n latitude: 0,\n zoom: 0\n });\n\n const nw = viewport.project([west, north]);\n const se = viewport.project([east, south]);\n\n // width/height on the Web Mercator plane\n const size = [\n Math.max(Math.abs(se[0] - nw[0]), minExtent),\n Math.max(Math.abs(se[1] - nw[1]), minExtent)\n ];\n\n const targetSize = [\n width - padding.left - padding.right - Math.abs(offset[0]) * 2,\n height - padding.top - padding.bottom - Math.abs(offset[1]) * 2\n ];\n\n assert(targetSize[0] > 0 && targetSize[1] > 0);\n\n // scale = screen pixels per unit on the Web Mercator plane\n const scaleX = targetSize[0] / size[0];\n const scaleY = targetSize[1] / size[1];\n\n // Find how much we need to shift the center\n const offsetX = (padding.right - padding.left) / 2 / scaleX;\n const offsetY = (padding.bottom - padding.top) / 2 / scaleY;\n\n const center = [(se[0] + nw[0]) / 2 + offsetX, (se[1] + nw[1]) / 2 + offsetY];\n\n const centerLngLat = viewport.unproject(center);\n const zoom = Math.min(maxZoom, viewport.zoom + log2(Math.abs(Math.min(scaleX, scaleY))));\n\n assert(Number.isFinite(zoom));\n\n return {\n longitude: centerLngLat[0],\n latitude: centerLngLat[1],\n zoom\n };\n}\n","import {worldToLngLat} from './web-mercator-utils';\nimport * as vec2 from 'gl-matrix/vec2';\nimport {transformVector} from './math-utils';\n\nconst DEGREES_TO_RADIANS = Math.PI / 180;\n\n/*\n * Returns the quad at the intersection of the frustum and the given z plane\n * @param {WebMercatorViewport} viewport\n * @param {Number} z - elevation in meters\n */\nexport default function getBounds(viewport, z = 0) {\n const {width, height, unproject} = viewport;\n const unprojectOps = {targetZ: z};\n const bottomLeft = unproject([0, height], unprojectOps);\n const bottomRight = unproject([width, height], unprojectOps);\n let topLeft;\n let topRight;\n\n const halfFov = viewport.fovy\n ? 0.5 * viewport.fovy * DEGREES_TO_RADIANS\n : Math.atan(0.5 / viewport.altitude);\n const angleToGround = (90 - viewport.pitch) * DEGREES_TO_RADIANS;\n // The top plane is parallel to the ground if halfFov == angleToGround\n if (halfFov > angleToGround - 0.01) {\n // intersect with the far plane\n topLeft = unprojectOnFarPlane(viewport, 0, z);\n topRight = unprojectOnFarPlane(viewport, width, z);\n } else {\n // intersect with the top plane\n topLeft = unproject([0, 0], unprojectOps);\n topRight = unproject([width, 0], unprojectOps);\n }\n\n return [bottomLeft, bottomRight, topRight, topLeft];\n}\n\n/*\n * Find a point on the far clipping plane of the viewport\n * @param {WebMercatorViewport} viewport\n * @param {Number} x - projected x in screen space\n * @param {Number} targetZ - the elevation of the point in meters\n */\nfunction unprojectOnFarPlane(viewport, x, targetZ) {\n const {pixelUnprojectionMatrix} = viewport;\n const coord0 = transformVector(pixelUnprojectionMatrix, [x, 0, 1, 1]);\n const coord1 = transformVector(pixelUnprojectionMatrix, [x, viewport.height, 1, 1]);\n\n const z = targetZ * viewport.distanceScales.unitsPerMeter[2];\n const t = (z - coord0[2]) / (coord1[2] - coord0[2]);\n const coord = vec2.lerp([], coord0, coord1, t);\n\n const result = worldToLngLat(coord);\n result[2] = targetZ;\n return result;\n}\n","// View and Projection Matrix calculations for mapbox-js style map view properties\nimport {createMat4} from './math-utils';\n\nimport {\n zoomToScale,\n pixelsToWorld,\n lngLatToWorld,\n worldToLngLat,\n worldToPixels,\n altitudeToFovy,\n fovyToAltitude,\n DEFAULT_ALTITUDE,\n getProjectionMatrix,\n getDistanceScales,\n getViewMatrix\n} from './web-mercator-utils';\nimport fitBounds from './fit-bounds';\nimport getBounds from './get-bounds';\n\nimport * as mat4 from 'gl-matrix/mat4';\nimport * as vec2 from 'gl-matrix/vec2';\nimport * as vec3 from 'gl-matrix/vec3';\n\nexport default class WebMercatorViewport {\n // eslint-disable-next-line max-statements\n constructor(\n {\n // Map state\n width,\n height,\n latitude = 0,\n longitude = 0,\n zoom = 0,\n pitch = 0,\n bearing = 0,\n altitude = null,\n fovy = null,\n position = null,\n nearZMultiplier = 0.02,\n farZMultiplier = 1.01\n } = {width: 1, height: 1}\n ) {\n // Silently allow apps to send in 0,0 to facilitate isomorphic render etc\n width = width || 1;\n height = height || 1;\n\n // `fovy` & `altitude` are independent parameters, one for the\n // projection and the latter for the view matrix. In the past,\n // the `fovy` was always derived from the `altitude`\n if (fovy === null && altitude === null) {\n altitude = DEFAULT_ALTITUDE;\n fovy = altitudeToFovy(altitude);\n } else if (fovy === null) {\n fovy = altitudeToFovy(altitude);\n } else if (altitude === null) {\n altitude = fovyToAltitude(fovy);\n }\n\n const scale = zoomToScale(zoom);\n // Altitude - prevent division by 0\n // TODO - just throw an Error instead?\n altitude = Math.max(0.75, altitude);\n\n const distanceScales = getDistanceScales({longitude, latitude});\n\n const center = lngLatToWorld([longitude, latitude]);\n center[2] = 0;\n\n if (position) {\n vec3.add(center, center, vec3.mul([], position, distanceScales.unitsPerMeter));\n }\n\n this.projectionMatrix = getProjectionMatrix({\n width,\n height,\n pitch,\n fovy,\n nearZMultiplier,\n farZMultiplier\n });\n\n this.viewMatrix = getViewMatrix({\n height,\n scale,\n center,\n pitch,\n bearing,\n altitude\n });\n\n // Save parameters\n this.width = width;\n this.height = height;\n this.scale = scale;\n\n this.latitude = latitude;\n this.longitude = longitude;\n this.zoom = zoom;\n this.pitch = pitch;\n this.bearing = bearing;\n this.altitude = altitude;\n this.fovy = fovy;\n this.center = center;\n this.meterOffset = position || [0, 0, 0];\n\n this.distanceScales = distanceScales;\n\n this._initMatrices();\n\n // Bind methods for easy access\n this.equals = this.equals.bind(this);\n this.project = this.project.bind(this);\n this.unproject = this.unproject.bind(this);\n this.projectPosition = this.projectPosition.bind(this);\n this.unprojectPosition = this.unprojectPosition.bind(this);\n\n Object.freeze(this);\n }\n\n _initMatrices() {\n const {width, height, projectionMatrix, viewMatrix} = this;\n\n // Note: As usual, matrix operations should be applied in \"reverse\" order\n // since vectors will be multiplied in from the right during transformation\n const vpm = createMat4();\n mat4.multiply(vpm, vpm, projectionMatrix);\n mat4.multiply(vpm, vpm, viewMatrix);\n this.viewProjectionMatrix = vpm;\n\n // Calculate matrices and scales needed for projection\n /**\n * Builds matrices that converts preprojected lngLats to screen pixels\n * and vice versa.\n * Note: Currently returns bottom-left coordinates!\n * Note: Starts with the GL projection matrix and adds steps to the\n * scale and translate that matrix onto the window.\n * Note: WebGL controls clip space to screen projection with gl.viewport\n * and does not need this step.\n */\n const m = createMat4();\n\n // matrix for conversion from location to screen coordinates\n mat4.scale(m, m, [width / 2, -height / 2, 1]);\n mat4.translate(m, m, [1, -1, 0]);\n mat4.multiply(m, m, vpm);\n\n const mInverse = mat4.invert(createMat4(), m);\n if (!mInverse) {\n throw new Error('Pixel project matrix not invertible');\n }\n\n this.pixelProjectionMatrix = m;\n this.pixelUnprojectionMatrix = mInverse;\n }\n\n // Two viewports are equal if width and height are identical, and if\n // their view and projection matrices are (approximately) equal.\n equals(viewport) {\n if (!(viewport instanceof WebMercatorViewport)) {\n return false;\n }\n\n return (\n viewport.width === this.width &&\n viewport.height === this.height &&\n mat4.equals(viewport.projectionMatrix, this.projectionMatrix) &&\n mat4.equals(viewport.viewMatrix, this.viewMatrix)\n );\n }\n\n // Projects xyz (possibly latitude and longitude) to pixel coordinates in window\n // using viewport projection parameters\n project(xyz, {topLeft = true} = {}) {\n const worldPosition = this.projectPosition(xyz);\n const coord = worldToPixels(worldPosition, this.pixelProjectionMatrix);\n\n const [x, y] = coord;\n const y2 = topLeft ? y : this.height - y;\n return xyz.length === 2 ? [x, y2] : [x, y2, coord[2]];\n }\n\n // Unproject pixel coordinates on screen onto world coordinates,\n // (possibly [lon, lat]) on map.\n unproject(xyz, {topLeft = true, targetZ = undefined} = {}) {\n const [x, y, z] = xyz;\n\n const y2 = topLeft ? y : this.height - y;\n const targetZWorld = targetZ && targetZ * this.distanceScales.unitsPerMeter[2];\n const coord = pixelsToWorld([x, y2, z], this.pixelUnprojectionMatrix, targetZWorld);\n const [X, Y, Z] = this.unprojectPosition(coord);\n\n if (Number.isFinite(z)) {\n return [X, Y, Z];\n }\n return Number.isFinite(targetZ) ? [X, Y, targetZ] : [X, Y];\n }\n\n // NON_LINEAR PROJECTION HOOKS\n // Used for web meractor projection\n\n projectPosition(xyz) {\n const [X, Y] = lngLatToWorld(xyz);\n const Z = (xyz[2] || 0) * this.distanceScales.unitsPerMeter[2];\n return [X, Y, Z];\n }\n\n unprojectPosition(xyz) {\n const [X, Y] = worldToLngLat(xyz);\n const Z = (xyz[2] || 0) * this.distanceScales.metersPerUnit[2];\n return [X, Y, Z];\n }\n\n // Project [lng,lat] on sphere onto [x,y] on 512*512 Mercator Zoom 0 tile.\n projectFlat(lngLat) {\n return lngLatToWorld(lngLat);\n }\n\n // Unproject world point [x,y] on map onto {lat, lon} on sphere\n unprojectFlat(xy) {\n return worldToLngLat(xy);\n }\n\n // Get the map center that place a given [lng, lat] coordinate at screen point [x, y]\n getMapCenterByLngLatPosition({lngLat, pos}) {\n const fromLocation = pixelsToWorld(pos, this.pixelUnprojectionMatrix);\n const toLocation = lngLatToWorld(lngLat);\n\n const translate = vec2.add([], toLocation, vec2.negate([], fromLocation));\n const newCenter = vec2.add([], this.center, translate);\n\n return worldToLngLat(newCenter);\n }\n\n // Legacy method name\n getLocationAtPoint({lngLat, pos}) {\n return this.getMapCenterByLngLatPosition({lngLat, pos});\n }\n\n // Returns a new viewport that fit around the given rectangle.\n fitBounds(bounds, options = {}) {\n const {width, height} = this;\n const {longitude, latitude, zoom} = fitBounds(Object.assign({width, height, bounds}, options));\n return new WebMercatorViewport({width, height, longitude, latitude, zoom});\n }\n\n getBounds(options) {\n const corners = this.getBoundingRegion(options);\n\n const west = Math.min(...corners.map((p) => p[0]));\n const east = Math.max(...corners.map((p) => p[0]));\n const south = Math.min(...corners.map((p) => p[1]));\n const north = Math.max(...corners.map((p) => p[1]));\n return [\n [west, south],\n [east, north]\n ];\n }\n\n getBoundingRegion(options = {}) {\n return getBounds(this, options.z || 0);\n }\n}\n","import {worldToLngLat} from './web-mercator-utils';\nimport {mod, log2} from './math-utils';\n\n// defined by mapbox-gl\nconst TILE_SIZE = 512;\n\n// Apply mathematical constraints to viewport props\n// eslint-disable-next-line complexity\nexport default function normalizeViewportProps({\n width,\n height,\n longitude,\n latitude,\n zoom,\n pitch = 0,\n bearing = 0\n}) {\n // Normalize degrees\n if (longitude < -180 || longitude > 180) {\n longitude = mod(longitude + 180, 360) - 180;\n }\n if (bearing < -180 || bearing > 180) {\n bearing = mod(bearing + 180, 360) - 180;\n }\n\n // Constrain zoom and shift center at low zoom levels\n const minZoom = log2(height / TILE_SIZE);\n if (zoom <= minZoom) {\n zoom = minZoom;\n latitude = 0;\n } else {\n // Eliminate white space above and below the map\n const halfHeightPixels = height / 2 / Math.pow(2, zoom);\n const minLatitude = worldToLngLat([0, halfHeightPixels])[1];\n if (latitude < minLatitude) {\n latitude = minLatitude;\n } else {\n const maxLatitude = worldToLngLat([0, TILE_SIZE - halfHeightPixels])[1];\n if (latitude > maxLatitude) {\n latitude = maxLatitude;\n }\n }\n }\n\n return {width, height, longitude, latitude, zoom, pitch, bearing};\n}\n","import {lerp} from './math-utils';\nimport {scaleToZoom, zoomToScale, lngLatToWorld, worldToLngLat} from './web-mercator-utils';\nimport * as vec2 from 'gl-matrix/vec2';\n\nconst EPSILON = 0.01;\nconst VIEWPORT_TRANSITION_PROPS = ['longitude', 'latitude', 'zoom'];\nconst DEFAULT_OPTS = {\n curve: 1.414,\n speed: 1.2\n // screenSpeed and maxDuration are used only if specified\n};\n\n/**\n * mapbox-gl-js flyTo : https://www.mapbox.com/mapbox-gl-js/api/#map#flyto.\n * It implements “Smooth and efficient zooming and panning.” algorithm by\n * \"Jarke J. van Wijk and Wim A.A. Nuij\"\n */\nexport default function flyToViewport(startProps, endProps, t, opts = {}) {\n // Equations from above paper are referred where needed.\n\n const viewport = {};\n\n const {startZoom, startCenterXY, uDelta, w0, u1, S, rho, rho2, r0} = getFlyToTransitionParams(\n startProps,\n endProps,\n opts\n );\n\n // If change in center is too small, do linear interpolaiton.\n if (u1 < EPSILON) {\n for (const key of VIEWPORT_TRANSITION_PROPS) {\n const startValue = startProps[key];\n const endValue = endProps[key];\n viewport[key] = lerp(startValue, endValue, t);\n }\n return viewport;\n }\n\n const s = t * S;\n\n const w = Math.cosh(r0) / Math.cosh(r0 + rho * s);\n const u = (w0 * ((Math.cosh(r0) * Math.tanh(r0 + rho * s) - Math.sinh(r0)) / rho2)) / u1;\n\n const scaleIncrement = 1 / w; // Using w method for scaling.\n const newZoom = startZoom + scaleToZoom(scaleIncrement);\n\n const newCenterWorld = vec2.scale([], uDelta, u);\n vec2.add(newCenterWorld, newCenterWorld, startCenterXY);\n\n const newCenter = worldToLngLat(newCenterWorld);\n viewport.longitude = newCenter[0];\n viewport.latitude = newCenter[1];\n viewport.zoom = newZoom;\n return viewport;\n}\n\n// returns transition duration in milliseconds\nexport function getFlyToDuration(startProps, endProps, opts = {}) {\n opts = Object.assign({}, DEFAULT_OPTS, opts);\n const {screenSpeed, speed, maxDuration} = opts;\n const {S, rho} = getFlyToTransitionParams(startProps, endProps, opts);\n const length = 1000 * S;\n let duration;\n if (Number.isFinite(screenSpeed)) {\n duration = length / (screenSpeed / rho);\n } else {\n duration = length / speed;\n }\n\n return Number.isFinite(maxDuration) && duration > maxDuration ? 0 : duration;\n}\n\n// Private Methods\n\n// Calculate all parameters that are static for given startProps and endProps\nfunction getFlyToTransitionParams(startProps, endProps, opts) {\n opts = Object.assign({}, DEFAULT_OPTS, opts);\n const rho = opts.curve;\n const startZoom = startProps.zoom;\n const startCenter = [startProps.longitude, startProps.latitude];\n const startScale = zoomToScale(startZoom);\n const endZoom = endProps.zoom;\n const endCenter = [endProps.longitude, endProps.latitude];\n const scale = zoomToScale(endZoom - startZoom);\n\n const startCenterXY = lngLatToWorld(startCenter);\n const endCenterXY = lngLatToWorld(endCenter);\n const uDelta = vec2.sub([], endCenterXY, startCenterXY);\n\n const w0 = Math.max(startProps.width, startProps.height);\n const w1 = w0 / scale;\n const u1 = vec2.length(uDelta) * startScale;\n // u0 is treated as '0' in Eq (9).\n\n // If u1 is too small, will generate invalid number\n const _u1 = Math.max(u1, EPSILON);\n\n // Implement Equation (9) from above algorithm.\n const rho2 = rho * rho;\n const b0 = (w1 * w1 - w0 * w0 + rho2 * rho2 * _u1 * _u1) / (2 * w0 * rho2 * _u1);\n const b1 = (w1 * w1 - w0 * w0 - rho2 * rho2 * _u1 * _u1) / (2 * w1 * rho2 * _u1);\n const r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0);\n const r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n const S = (r1 - r0) / rho;\n\n return {startZoom, startCenterXY, uDelta, w0, u1, S, rho, rho2, r0, r1};\n}\n","import Geometry from '../geometry/geometry';\nimport {uid} from '@luma.gl/webgl';\n\nconst INDEX_OFFSETS = {\n x: [2, 0, 1],\n y: [0, 1, 2],\n z: [1, 2, 0]\n};\n\nexport default class TruncatedConeGeometry extends Geometry {\n constructor(props = {}) {\n const {id = uid('truncated-code-geometry')} = props;\n const {indices, attributes} = tesselateTruncatedCone(props);\n super({\n ...props,\n id,\n indices,\n attributes: {...attributes, ...props.attributes}\n });\n }\n}\n\n// Primitives inspired by TDL http://code.google.com/p/webglsamples/,\n// copyright 2011 Google Inc. new BSD License\n// (http://www.opensource.org/licenses/bsd-license.php).\n/* eslint-disable max-statements, complexity */\nfunction tesselateTruncatedCone(props) {\n const {\n bottomRadius = 0,\n topRadius = 0,\n height = 1,\n nradial = 10,\n nvertical = 10,\n verticalAxis = 'y',\n topCap = false,\n bottomCap = false\n } = props;\n\n const extra = (topCap ? 2 : 0) + (bottomCap ? 2 : 0);\n const numVertices = (nradial + 1) * (nvertical + 1 + extra);\n\n const slant = Math.atan2(bottomRadius - topRadius, height);\n const msin = Math.sin;\n const mcos = Math.cos;\n const mpi = Math.PI;\n const cosSlant = mcos(slant);\n const sinSlant = msin(slant);\n const start = topCap ? -2 : 0;\n const end = nvertical + (bottomCap ? 2 : 0);\n const vertsAroundEdge = nradial + 1;\n\n const indices = new Uint16Array(nradial * (nvertical + extra) * 6);\n const indexOffset = INDEX_OFFSETS[verticalAxis];\n\n const positions = new Float32Array(numVertices * 3);\n const normals = new Float32Array(numVertices * 3);\n const texCoords = new Float32Array(numVertices * 2);\n\n let i3 = 0;\n let i2 = 0;\n for (let i = start; i <= end; i++) {\n let v = i / nvertical;\n let y = height * v;\n let ringRadius;\n\n if (i < 0) {\n y = 0;\n v = 1;\n ringRadius = bottomRadius;\n } else if (i > nvertical) {\n y = height;\n v = 1;\n ringRadius = topRadius;\n } else {\n ringRadius = bottomRadius + (topRadius - bottomRadius) * (i / nvertical);\n }\n if (i === -2 || i === nvertical + 2) {\n ringRadius = 0;\n v = 0;\n }\n y -= height / 2;\n for (let j = 0; j < vertsAroundEdge; j++) {\n const sin = msin((j * mpi * 2) / nradial);\n const cos = mcos((j * mpi * 2) / nradial);\n\n positions[i3 + indexOffset[0]] = sin * ringRadius;\n positions[i3 + indexOffset[1]] = y;\n positions[i3 + indexOffset[2]] = cos * ringRadius;\n\n normals[i3 + indexOffset[0]] = i < 0 || i > nvertical ? 0 : sin * cosSlant;\n normals[i3 + indexOffset[1]] = i < 0 ? -1 : i > nvertical ? 1 : sinSlant;\n normals[i3 + indexOffset[2]] = i < 0 || i > nvertical ? 0 : cos * cosSlant;\n\n texCoords[i2 + 0] = j / nradial;\n texCoords[i2 + 1] = v;\n\n i2 += 2;\n i3 += 3;\n }\n }\n\n for (let i = 0; i < nvertical + extra; i++) {\n for (let j = 0; j < nradial; j++) {\n const index = (i * nradial + j) * 6;\n indices[index + 0] = vertsAroundEdge * (i + 0) + 0 + j;\n indices[index + 1] = vertsAroundEdge * (i + 0) + 1 + j;\n indices[index + 2] = vertsAroundEdge * (i + 1) + 1 + j;\n indices[index + 3] = vertsAroundEdge * (i + 0) + 0 + j;\n indices[index + 4] = vertsAroundEdge * (i + 1) + 1 + j;\n indices[index + 5] = vertsAroundEdge * (i + 1) + 0 + j;\n }\n }\n\n return {\n indices,\n attributes: {\n POSITION: {size: 3, value: positions},\n NORMAL: {size: 3, value: normals},\n TEXCOORD_0: {size: 2, value: texCoords}\n }\n };\n}\n","import TruncatedConeGeometry from './truncated-cone-geometry';\nimport {uid} from '@luma.gl/webgl';\n\nexport default class ConeGeometry extends TruncatedConeGeometry {\n constructor(props = {}) {\n const {id = uid('cone-geometry'), radius = 1, cap = true} = props;\n super({\n ...props,\n id,\n topRadius: 0,\n topCap: Boolean(cap),\n bottomCap: Boolean(cap),\n bottomRadius: radius\n });\n }\n}\n","import TruncatedConeGeometry from './truncated-cone-geometry';\nimport {uid} from '@luma.gl/webgl';\n\nexport default class CylinderGeometry extends TruncatedConeGeometry {\n constructor(props = {}) {\n const {id = uid('cylinder-geometry'), radius = 1} = props;\n super({\n ...props,\n id,\n bottomRadius: radius,\n topRadius: radius\n });\n }\n}\n","import {Vector3} from '@math.gl/core';\nimport Geometry from '../geometry/geometry';\nimport {uid} from '@luma.gl/webgl';\n\n/* eslint-disable comma-spacing, max-statements, complexity */\n\nconst ICO_POSITIONS = [-1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0, 1, 0, 0];\nconst ICO_INDICES = [3, 4, 5, 3, 5, 1, 3, 1, 0, 3, 0, 4, 4, 0, 2, 4, 2, 5, 2, 0, 1, 5, 2, 1];\n\nexport default class IcoSphereGeometry extends Geometry {\n constructor(props = {}) {\n const {id = uid('ico-sphere-geometry')} = props;\n const {indices, attributes} = tesselateIcosaHedron(props);\n super({\n ...props,\n id,\n indices,\n attributes: {...attributes, ...props.attributes}\n });\n }\n}\n\nfunction tesselateIcosaHedron(props) {\n const {iterations = 0} = props;\n\n const PI = Math.PI;\n const PI2 = PI * 2;\n\n const positions = [...ICO_POSITIONS];\n let indices = [...ICO_INDICES];\n\n positions.push();\n indices.push();\n\n const getMiddlePoint = (() => {\n const pointMemo = {};\n\n return (i1, i2) => {\n i1 *= 3;\n i2 *= 3;\n const mini = i1 < i2 ? i1 : i2;\n const maxi = i1 > i2 ? i1 : i2;\n const key = `${mini}|${maxi}`;\n\n if (key in pointMemo) {\n return pointMemo[key];\n }\n\n const x1 = positions[i1];\n const y1 = positions[i1 + 1];\n const z1 = positions[i1 + 2];\n const x2 = positions[i2];\n const y2 = positions[i2 + 1];\n const z2 = positions[i2 + 2];\n let xm = (x1 + x2) / 2;\n let ym = (y1 + y2) / 2;\n let zm = (z1 + z2) / 2;\n const len = Math.sqrt(xm * xm + ym * ym + zm * zm);\n\n xm /= len;\n ym /= len;\n zm /= len;\n\n positions.push(xm, ym, zm);\n\n return (pointMemo[key] = positions.length / 3 - 1);\n };\n })();\n\n for (let i = 0; i < iterations; i++) {\n const indices2 = [];\n for (let j = 0; j < indices.length; j += 3) {\n const a = getMiddlePoint(indices[j + 0], indices[j + 1]);\n const b = getMiddlePoint(indices[j + 1], indices[j + 2]);\n const c = getMiddlePoint(indices[j + 2], indices[j + 0]);\n\n indices2.push(c, indices[j + 0], a, a, indices[j + 1], b, b, indices[j + 2], c, a, b, c);\n }\n indices = indices2;\n }\n\n // Calculate texCoords and normals\n const normals = new Array(positions.length);\n const texCoords = new Array((positions.length / 3) * 2);\n\n const l = indices.length;\n for (let i = l - 3; i >= 0; i -= 3) {\n const i1 = indices[i + 0];\n const i2 = indices[i + 1];\n const i3 = indices[i + 2];\n const in1 = i1 * 3;\n const in2 = i2 * 3;\n const in3 = i3 * 3;\n const iu1 = i1 * 2;\n const iu2 = i2 * 2;\n const iu3 = i3 * 2;\n const x1 = positions[in1 + 0];\n const y1 = positions[in1 + 1];\n const z1 = positions[in1 + 2];\n const theta1 = Math.acos(z1 / Math.sqrt(x1 * x1 + y1 * y1 + z1 * z1));\n const phi1 = Math.atan2(y1, x1) + PI;\n const v1 = theta1 / PI;\n const u1 = 1 - phi1 / PI2;\n const x2 = positions[in2 + 0];\n const y2 = positions[in2 + 1];\n const z2 = positions[in2 + 2];\n const theta2 = Math.acos(z2 / Math.sqrt(x2 * x2 + y2 * y2 + z2 * z2));\n const phi2 = Math.atan2(y2, x2) + PI;\n const v2 = theta2 / PI;\n const u2 = 1 - phi2 / PI2;\n const x3 = positions[in3 + 0];\n const y3 = positions[in3 + 1];\n const z3 = positions[in3 + 2];\n const theta3 = Math.acos(z3 / Math.sqrt(x3 * x3 + y3 * y3 + z3 * z3));\n const phi3 = Math.atan2(y3, x3) + PI;\n const v3 = theta3 / PI;\n const u3 = 1 - phi3 / PI2;\n const vec1 = [x3 - x2, y3 - y2, z3 - z2];\n const vec2 = [x1 - x2, y1 - y2, z1 - z2];\n const normal = new Vector3(vec1).cross(vec2).normalize();\n let newIndex;\n\n if (\n (u1 === 0 || u2 === 0 || u3 === 0) &&\n (u1 === 0 || u1 > 0.5) &&\n (u2 === 0 || u2 > 0.5) &&\n (u3 === 0 || u3 > 0.5)\n ) {\n positions.push(positions[in1 + 0], positions[in1 + 1], positions[in1 + 2]);\n newIndex = positions.length / 3 - 1;\n indices.push(newIndex);\n texCoords[newIndex * 2 + 0] = 1;\n texCoords[newIndex * 2 + 1] = v1;\n normals[newIndex * 3 + 0] = normal.x;\n normals[newIndex * 3 + 1] = normal.y;\n normals[newIndex * 3 + 2] = normal.z;\n\n positions.push(positions[in2 + 0], positions[in2 + 1], positions[in2 + 2]);\n newIndex = positions.length / 3 - 1;\n indices.push(newIndex);\n texCoords[newIndex * 2 + 0] = 1;\n texCoords[newIndex * 2 + 1] = v2;\n normals[newIndex * 3 + 0] = normal.x;\n normals[newIndex * 3 + 1] = normal.y;\n normals[newIndex * 3 + 2] = normal.z;\n\n positions.push(positions[in3 + 0], positions[in3 + 1], positions[in3 + 2]);\n newIndex = positions.length / 3 - 1;\n indices.push(newIndex);\n texCoords[newIndex * 2 + 0] = 1;\n texCoords[newIndex * 2 + 1] = v3;\n normals[newIndex * 3 + 0] = normal.x;\n normals[newIndex * 3 + 1] = normal.y;\n normals[newIndex * 3 + 2] = normal.z;\n }\n\n normals[in1 + 0] = normals[in2 + 0] = normals[in3 + 0] = normal.x;\n normals[in1 + 1] = normals[in2 + 1] = normals[in3 + 1] = normal.y;\n normals[in1 + 2] = normals[in2 + 2] = normals[in3 + 2] = normal.z;\n\n texCoords[iu1 + 0] = u1;\n texCoords[iu1 + 1] = v1;\n\n texCoords[iu2 + 0] = u2;\n texCoords[iu2 + 1] = v2;\n\n texCoords[iu3 + 0] = u3;\n texCoords[iu3 + 1] = v3;\n }\n\n return {\n indices: {size: 1, value: new Uint16Array(indices)},\n attributes: {\n POSITION: {size: 3, value: new Float32Array(positions)},\n NORMAL: {size: 3, value: new Float32Array(normals)},\n TEXCOORD_0: {size: 2, value: new Float32Array(texCoords)}\n }\n };\n}\n","import Geometry from '../geometry/geometry';\nimport {unpackIndexedGeometry} from '../geometry/geometry-utils';\nimport {uid} from '@luma.gl/webgl';\n\nexport default class PlaneGeometry extends Geometry {\n constructor(props = {}) {\n const {id = uid('plane-geometry')} = props;\n\n const {indices, attributes} = tesselatePlane(props);\n super({\n ...props,\n id,\n indices,\n attributes: {...attributes, ...props.attributes}\n });\n }\n}\n\n// Primitives inspired by TDL http://code.google.com/p/webglsamples/,\n// copyright 2011 Google Inc. new BSD License\n// (http://www.opensource.org/licenses/bsd-license.php).\n/* eslint-disable max-statements, complexity */\n/* eslint-disable complexity, max-statements */\nfunction tesselatePlane(props) {\n const {type = 'x,y', offset = 0, flipCull = false, unpack = false} = props;\n\n const coords = type.split(',');\n // width, height\n let c1len = props[`${coords[0]}len`] || 1;\n const c2len = props[`${coords[1]}len`] || 1;\n // subdivisionsWidth, subdivisionsDepth\n const subdivisions1 = props[`n${coords[0]}`] || 1;\n const subdivisions2 = props[`n${coords[1]}`] || 1;\n const numVertices = (subdivisions1 + 1) * (subdivisions2 + 1);\n\n const positions = new Float32Array(numVertices * 3);\n const normals = new Float32Array(numVertices * 3);\n const texCoords = new Float32Array(numVertices * 2);\n\n if (flipCull) {\n c1len = -c1len;\n }\n\n let i2 = 0;\n let i3 = 0;\n for (let z = 0; z <= subdivisions2; z++) {\n for (let x = 0; x <= subdivisions1; x++) {\n const u = x / subdivisions1;\n const v = z / subdivisions2;\n texCoords[i2 + 0] = flipCull ? 1 - u : u;\n texCoords[i2 + 1] = v;\n\n switch (type) {\n case 'x,y':\n positions[i3 + 0] = c1len * u - c1len * 0.5;\n positions[i3 + 1] = c2len * v - c2len * 0.5;\n positions[i3 + 2] = offset;\n\n normals[i3 + 0] = 0;\n normals[i3 + 1] = 0;\n normals[i3 + 2] = flipCull ? 1 : -1;\n break;\n\n case 'x,z':\n positions[i3 + 0] = c1len * u - c1len * 0.5;\n positions[i3 + 1] = offset;\n positions[i3 + 2] = c2len * v - c2len * 0.5;\n\n normals[i3 + 0] = 0;\n normals[i3 + 1] = flipCull ? 1 : -1;\n normals[i3 + 2] = 0;\n break;\n\n case 'y,z':\n positions[i3 + 0] = offset;\n positions[i3 + 1] = c1len * u - c1len * 0.5;\n positions[i3 + 2] = c2len * v - c2len * 0.5;\n\n normals[i3 + 0] = flipCull ? 1 : -1;\n normals[i3 + 1] = 0;\n normals[i3 + 2] = 0;\n break;\n\n default:\n throw new Error('PlaneGeometry: unknown type');\n }\n\n i2 += 2;\n i3 += 3;\n }\n }\n\n const numVertsAcross = subdivisions1 + 1;\n const indices = new Uint16Array(subdivisions1 * subdivisions2 * 6);\n\n for (let z = 0; z < subdivisions2; z++) {\n for (let x = 0; x < subdivisions1; x++) {\n const index = (z * subdivisions1 + x) * 6;\n // Make triangle 1 of quad.\n indices[index + 0] = (z + 0) * numVertsAcross + x;\n indices[index + 1] = (z + 1) * numVertsAcross + x;\n indices[index + 2] = (z + 0) * numVertsAcross + x + 1;\n\n // Make triangle 2 of quad.\n indices[index + 3] = (z + 1) * numVertsAcross + x;\n indices[index + 4] = (z + 1) * numVertsAcross + x + 1;\n indices[index + 5] = (z + 0) * numVertsAcross + x + 1;\n }\n }\n\n const geometry = {\n indices: {size: 1, value: indices},\n attributes: {\n POSITION: {size: 3, value: positions},\n NORMAL: {size: 3, value: normals},\n TEXCOORD_0: {size: 2, value: texCoords}\n }\n };\n\n // Optionally, unpack indexed geometry\n return unpack ? unpackIndexedGeometry(geometry) : geometry;\n}\n","export function unpackIndexedGeometry(geometry) {\n const {indices, attributes} = geometry;\n if (!indices) {\n return geometry;\n }\n\n const vertexCount = indices.value.length;\n const unpackedAttributes = {};\n\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n const {constant, value, size} = attribute;\n if (constant || !size) {\n continue; // eslint-disable-line\n }\n const unpackedValue = new value.constructor(vertexCount * size);\n for (let x = 0; x < vertexCount; ++x) {\n const index = indices.value[x];\n for (let i = 0; i < size; i++) {\n unpackedValue[x * size + i] = value[index * size + i];\n }\n }\n unpackedAttributes[attributeName] = {size, value: unpackedValue};\n }\n\n return {\n attributes: Object.assign({}, attributes, unpackedAttributes)\n };\n}\n","import Geometry from '../geometry/geometry';\nimport {uid} from '@luma.gl/webgl';\n\nexport default class SphereGeometry extends Geometry {\n constructor(props = {}) {\n const {id = uid('sphere-geometry')} = props;\n const {indices, attributes} = tesselateSphere(props);\n super({\n ...props,\n id,\n indices,\n attributes: {...attributes, ...props.attributes}\n });\n }\n}\n\n// Primitives inspired by TDL http://code.google.com/p/webglsamples/,\n// copyright 2011 Google Inc. new BSD License\n// (http://www.opensource.org/licenses/bsd-license.php).\n/* eslint-disable max-statements, complexity */\nfunction tesselateSphere(props) {\n const {nlat = 10, nlong = 10} = props;\n let {radius = 1} = props;\n\n const startLat = 0;\n const endLat = Math.PI;\n const latRange = endLat - startLat;\n const startLong = 0;\n const endLong = 2 * Math.PI;\n const longRange = endLong - startLong;\n const numVertices = (nlat + 1) * (nlong + 1);\n\n if (typeof radius === 'number') {\n const value = radius;\n radius = (n1, n2, n3, u, v) => value;\n }\n\n const positions = new Float32Array(numVertices * 3);\n const normals = new Float32Array(numVertices * 3);\n const texCoords = new Float32Array(numVertices * 2);\n\n const IndexType = numVertices > 0xffff ? Uint32Array : Uint16Array;\n const indices = new IndexType(nlat * nlong * 6);\n\n // Create positions, normals and texCoords\n for (let y = 0; y <= nlat; y++) {\n for (let x = 0; x <= nlong; x++) {\n const u = x / nlong;\n const v = y / nlat;\n\n const index = x + y * (nlong + 1);\n const i2 = index * 2;\n const i3 = index * 3;\n\n const theta = longRange * u;\n const phi = latRange * v;\n const sinTheta = Math.sin(theta);\n const cosTheta = Math.cos(theta);\n const sinPhi = Math.sin(phi);\n const cosPhi = Math.cos(phi);\n const ux = cosTheta * sinPhi;\n const uy = cosPhi;\n const uz = sinTheta * sinPhi;\n\n const r = radius(ux, uy, uz, u, v);\n\n positions[i3 + 0] = r * ux;\n positions[i3 + 1] = r * uy;\n positions[i3 + 2] = r * uz;\n\n normals[i3 + 0] = ux;\n normals[i3 + 1] = uy;\n normals[i3 + 2] = uz;\n\n texCoords[i2 + 0] = u;\n texCoords[i2 + 1] = 1 - v;\n }\n }\n\n // Create indices\n const numVertsAround = nlong + 1;\n for (let x = 0; x < nlong; x++) {\n for (let y = 0; y < nlat; y++) {\n const index = (x * nlat + y) * 6;\n\n indices[index + 0] = y * numVertsAround + x;\n indices[index + 1] = y * numVertsAround + x + 1;\n indices[index + 2] = (y + 1) * numVertsAround + x;\n\n indices[index + 3] = (y + 1) * numVertsAround + x;\n indices[index + 4] = y * numVertsAround + x + 1;\n indices[index + 5] = (y + 1) * numVertsAround + x + 1;\n }\n }\n\n return {\n indices: {size: 1, value: indices},\n attributes: {\n POSITION: {size: 3, value: positions},\n NORMAL: {size: 3, value: normals},\n TEXCOORD_0: {size: 2, value: texCoords}\n }\n };\n}\n","/** @typedef {import('./fp64-utils')} types */\n\n/**\n * Calculate WebGL 64 bit float\n * @type {types['fp64ify']}\n */\nexport function fp64ify(a, out = [], startIndex = 0) {\n const hiPart = Math.fround(a);\n const loPart = a - hiPart;\n out[startIndex] = hiPart;\n out[startIndex + 1] = loPart;\n return out;\n}\n\n/** @type {types['fp64LowPart']} */\nexport function fp64LowPart(a) {\n return a - Math.fround(a);\n}\n\n/**\n * Calculate WebGL 64 bit matrix (transposed \"Float64Array\")\n * @type {types['fp64ifyMatrix4']}\n * */\nexport function fp64ifyMatrix4(matrix) {\n // Transpose the projection matrix to column major for GLSL.\n const matrixFP64 = new Float32Array(32);\n for (let i = 0; i < 4; ++i) {\n for (let j = 0; j < 4; ++j) {\n const index = i * 4 + j;\n fp64ify(matrix[j * 4 + i], matrixFP64, index * 2);\n }\n }\n return matrixFP64;\n}\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nexport default `\\\nuniform float ONE;\n\n/*\nAbout LUMA_FP64_CODE_ELIMINATION_WORKAROUND\n\nThe purpose of this workaround is to prevent shader compilers from\noptimizing away necessary arithmetic operations by swapping their sequences\nor transform the equation to some 'equivalent' from.\n\nThe method is to multiply an artifical variable, ONE, which will be known to\nthe compiler to be 1 only at runtime. The whole expression is then represented\nas a polynomial with respective to ONE. In the coefficients of all terms, only one a\nand one b should appear\n\nerr = (a + b) * ONE^6 - a * ONE^5 - (a + b) * ONE^4 + a * ONE^3 - b - (a + b) * ONE^2 + a * ONE\n*/\n\n// Divide float number to high and low floats to extend fraction bits\nvec2 split(float a) {\n const float SPLIT = 4097.0;\n float t = a * SPLIT;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float a_hi = t * ONE - (t - a);\n float a_lo = a * ONE - a_hi;\n#else\n float a_hi = t - (t - a);\n float a_lo = a - a_hi;\n#endif\n return vec2(a_hi, a_lo);\n}\n\n// Divide float number again when high float uses too many fraction bits\nvec2 split2(vec2 a) {\n vec2 b = split(a.x);\n b.y += a.y;\n return b;\n}\n\n// Special sum operation when a > b\nvec2 quickTwoSum(float a, float b) {\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float sum = (a + b) * ONE;\n float err = b - (sum - a) * ONE;\n#else\n float sum = a + b;\n float err = b - (sum - a);\n#endif\n return vec2(sum, err);\n}\n\n// General sum operation\nvec2 twoSum(float a, float b) {\n float s = (a + b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);\n#else\n float v = s - a;\n float err = (a - (s - v)) + (b - v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSub(float a, float b) {\n float s = (a - b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);\n#else\n float v = s - a;\n float err = (a - (s - v)) - (b + v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSqr(float a) {\n float prod = a * a;\n vec2 a_fp64 = split(a);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *\n a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;\n#else\n float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;\n#endif\n return vec2(prod, err);\n}\n\nvec2 twoProd(float a, float b) {\n float prod = a * b;\n vec2 a_fp64 = split(a);\n vec2 b_fp64 = split(b);\n float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +\n a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;\n return vec2(prod, err);\n}\n\nvec2 sum_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSum(a.x, b.x);\n t = twoSum(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 sub_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSub(a.x, b.x);\n t = twoSub(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 mul_fp64(vec2 a, vec2 b) {\n vec2 prod = twoProd(a.x, b.x);\n // y component is for the error\n prod.y += a.x * b.y;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n prod.y += a.y * b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n return prod;\n}\n\nvec2 div_fp64(vec2 a, vec2 b) {\n float xn = 1.0 / b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n vec2 yn = mul_fp64(a, vec2(xn, 0));\n#else\n vec2 yn = a * xn;\n#endif\n float diff = (sub_fp64(a, mul_fp64(b, yn))).x;\n vec2 prod = twoProd(xn, diff);\n return sum_fp64(yn, prod);\n}\n\nvec2 sqrt_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n\n float x = 1.0 / sqrt(a.x);\n float yn = a.x * x;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n vec2 yn_sqr = twoSqr(yn) * ONE;\n#else\n vec2 yn_sqr = twoSqr(yn);\n#endif\n float diff = sub_fp64(a, yn_sqr).x;\n vec2 prod = twoProd(x * 0.5, diff);\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n return sum_fp64(split(yn), prod);\n#else\n return sum_fp64(vec2(yn, 0.0), prod);\n#endif\n}\n`;\n","/** @typedef {import('../../types').ShaderModule} ShaderModule */\n\nimport {fp64ify, fp64LowPart, fp64ifyMatrix4} from './fp64-utils';\n\nimport fp64arithmeticShader from './fp64-arithmetic.glsl';\nimport fp64functionShader from './fp64-functions.glsl';\n\nconst CONST_UNIFORMS = {\n // Used in LUMA_FP64_CODE_ELIMINATION_WORKAROUND\n ONE: 1.0\n};\nexport {fp64ify, fp64LowPart, fp64ifyMatrix4};\n\nfunction getUniforms() {\n return CONST_UNIFORMS;\n}\n\n// Arithmetic only\nexport const fp64arithmetic = {\n name: 'fp64-arithmetic',\n vs: fp64arithmeticShader,\n fs: null,\n getUniforms,\n fp64ify,\n fp64LowPart,\n fp64ifyMatrix4\n};\n\n// Full fp64 shader\nexport const fp64 = {\n name: 'fp64',\n vs: fp64functionShader,\n fs: null,\n dependencies: [fp64arithmetic],\n fp64ify,\n fp64LowPart,\n fp64ifyMatrix4\n};\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nexport default `\\\nconst vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);\nconst vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);\nconst vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);\nconst vec2 TWO_PI_FP64 = vec2(6.2831854820251465, -1.7484556025237907e-7);\nconst vec2 PI_2_FP64 = vec2(1.5707963705062866, -4.371139006309477e-8);\nconst vec2 PI_4_FP64 = vec2(0.7853981852531433, -2.1855695031547384e-8);\nconst vec2 PI_16_FP64 = vec2(0.19634954631328583, -5.463923757886846e-9);\nconst vec2 PI_16_2_FP64 = vec2(0.39269909262657166, -1.0927847515773692e-8);\nconst vec2 PI_16_3_FP64 = vec2(0.5890486240386963, -1.4906100798128818e-9);\nconst vec2 PI_180_FP64 = vec2(0.01745329238474369, 1.3519960498364902e-10);\n\nconst vec2 SIN_TABLE_0_FP64 = vec2(0.19509032368659973, -1.6704714833615242e-9);\nconst vec2 SIN_TABLE_1_FP64 = vec2(0.3826834261417389, 6.22335089017767e-9);\nconst vec2 SIN_TABLE_2_FP64 = vec2(0.5555702447891235, -1.1769521357507529e-8);\nconst vec2 SIN_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617041793133e-8);\n\nconst vec2 COS_TABLE_0_FP64 = vec2(0.9807852506637573, 2.9739473106360492e-8);\nconst vec2 COS_TABLE_1_FP64 = vec2(0.9238795042037964, 2.8307490351764386e-8);\nconst vec2 COS_TABLE_2_FP64 = vec2(0.8314695954322815, 1.6870263741530778e-8);\nconst vec2 COS_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617152815436e-8);\n\nconst vec2 INVERSE_FACTORIAL_3_FP64 = vec2(1.666666716337204e-01, -4.967053879312289e-09); // 1/3!\nconst vec2 INVERSE_FACTORIAL_4_FP64 = vec2(4.16666679084301e-02, -1.2417634698280722e-09); // 1/4!\nconst vec2 INVERSE_FACTORIAL_5_FP64 = vec2(8.333333767950535e-03, -4.34617203337595e-10); // 1/5!\nconst vec2 INVERSE_FACTORIAL_6_FP64 = vec2(1.3888889225199819e-03, -3.3631094437103215e-11); // 1/6!\nconst vec2 INVERSE_FACTORIAL_7_FP64 = vec2(1.9841270113829523e-04, -2.725596874933456e-12); // 1/7!\nconst vec2 INVERSE_FACTORIAL_8_FP64 = vec2(2.4801587642286904e-05, -3.406996025904184e-13); // 1/8!\nconst vec2 INVERSE_FACTORIAL_9_FP64 = vec2(2.75573188446287533e-06, 3.7935713937038186e-14); // 1/9!\nconst vec2 INVERSE_FACTORIAL_10_FP64 = vec2(2.755731998149713e-07, -7.575112367869873e-15); // 1/10!\n\nfloat nint(float d) {\n if (d == floor(d)) return d;\n return floor(d + 0.5);\n}\n\nvec2 nint_fp64(vec2 a) {\n float hi = nint(a.x);\n float lo;\n vec2 tmp;\n if (hi == a.x) {\n lo = nint(a.y);\n tmp = quickTwoSum(hi, lo);\n } else {\n lo = 0.0;\n if (abs(hi - a.x) == 0.5 && a.y < 0.0) {\n hi -= 1.0;\n }\n tmp = vec2(hi, lo);\n }\n return tmp;\n}\n\n/* k_power controls how much range reduction we would like to have\nRange reduction uses the following method:\nassume a = k_power * r + m * log(2), k and m being integers.\nSet k_power = 4 (we can choose other k to trade accuracy with performance.\nwe only need to calculate exp(r) and using exp(a) = 2^m * exp(r)^k_power;\n*/\n\nvec2 exp_fp64(vec2 a) {\n // We need to make sure these two numbers match\n // as bit-wise shift is not available in GLSL 1.0\n const int k_power = 4;\n const float k = 16.0;\n\n const float inv_k = 1.0 / k;\n\n if (a.x <= -88.0) return vec2(0.0, 0.0);\n if (a.x >= 88.0) return vec2(1.0 / 0.0, 1.0 / 0.0);\n if (a.x == 0.0 && a.y == 0.0) return vec2(1.0, 0.0);\n if (a.x == 1.0 && a.y == 0.0) return E_FP64;\n\n float m = floor(a.x / LOG2_FP64.x + 0.5);\n vec2 r = sub_fp64(a, mul_fp64(LOG2_FP64, vec2(m, 0.0))) * inv_k;\n vec2 s, t, p;\n\n p = mul_fp64(r, r);\n s = sum_fp64(r, p * 0.5);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_3_FP64);\n\n s = sum_fp64(s, t);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_4_FP64);\n\n s = sum_fp64(s, t);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_5_FP64);\n\n // s = sum_fp64(s, t);\n // p = mul_fp64(p, r);\n // t = mul_fp64(p, INVERSE_FACTORIAL_6_FP64);\n\n // s = sum_fp64(s, t);\n // p = mul_fp64(p, r);\n // t = mul_fp64(p, INVERSE_FACTORIAL_7_FP64);\n\n s = sum_fp64(s, t);\n\n\n // At this point, s = exp(r) - 1; but after following 4 recursions, we will get exp(r) ^ 512 - 1.\n for (int i = 0; i < k_power; i++) {\n s = sum_fp64(s * 2.0, mul_fp64(s, s));\n }\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n s = sum_fp64(s, vec2(ONE, 0.0));\n#else\n s = sum_fp64(s, vec2(1.0, 0.0));\n#endif\n\n return s * pow(2.0, m);\n// return r;\n}\n\nvec2 log_fp64(vec2 a)\n{\n if (a.x == 1.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x <= 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n vec2 x = vec2(log(a.x), 0.0);\n vec2 s;\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n s = vec2(ONE, 0.0);\n#else\n s = vec2(1.0, 0.0);\n#endif\n\n x = sub_fp64(sum_fp64(x, mul_fp64(a, exp_fp64(-x))), s);\n return x;\n}\n\nvec2 sin_taylor_fp64(vec2 a) {\n vec2 r, s, t, x;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n\n x = -mul_fp64(a, a);\n s = a;\n r = a;\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_3_FP64);\n s = sum_fp64(s, t);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_5_FP64);\n s = sum_fp64(s, t);\n\n /* keep the following commented code in case we need them\n for extra accuracy from the Taylor expansion*/\n\n // r = mul_fp64(r, x);\n // t = mul_fp64(r, INVERSE_FACTORIAL_7_FP64);\n // s = sum_fp64(s, t);\n\n // r = mul_fp64(r, x);\n // t = mul_fp64(r, INVERSE_FACTORIAL_9_FP64);\n // s = sum_fp64(s, t);\n\n return s;\n}\n\nvec2 cos_taylor_fp64(vec2 a) {\n vec2 r, s, t, x;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(1.0, 0.0);\n }\n\n x = -mul_fp64(a, a);\n r = x;\n s = sum_fp64(vec2(1.0, 0.0), r * 0.5);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_4_FP64);\n s = sum_fp64(s, t);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_6_FP64);\n s = sum_fp64(s, t);\n\n /* keep the following commented code in case we need them\n for extra accuracy from the Taylor expansion*/\n\n // r = mul_fp64(r, x);\n // t = mul_fp64(r, INVERSE_FACTORIAL_8_FP64);\n // s = sum_fp64(s, t);\n\n // r = mul_fp64(r, x);\n // t = mul_fp64(r, INVERSE_FACTORIAL_10_FP64);\n // s = sum_fp64(s, t);\n\n return s;\n}\n\nvoid sincos_taylor_fp64(vec2 a, out vec2 sin_t, out vec2 cos_t) {\n if (a.x == 0.0 && a.y == 0.0) {\n sin_t = vec2(0.0, 0.0);\n cos_t = vec2(1.0, 0.0);\n }\n\n sin_t = sin_taylor_fp64(a);\n cos_t = sqrt_fp64(sub_fp64(vec2(1.0, 0.0), mul_fp64(sin_t, sin_t)));\n}\n\nvec2 sin_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n\n // 2pi range reduction\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n\n if (k == 0) {\n if (j == 0) {\n return sin_taylor_fp64(t);\n } else if (j == 1) {\n return cos_taylor_fp64(t);\n } else if (j == -1) {\n return -cos_taylor_fp64(t);\n } else {\n return -sin_taylor_fp64(t);\n }\n }\n\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n\n vec2 sin_t, cos_t;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n\n\n vec2 result = vec2(0.0, 0.0);\n if (j == 0) {\n if (k > 0) {\n result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n }\n } else if (j == 1) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n } else if (j == -1) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n } else {\n result = -sum_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n }\n } else {\n if (k > 0) {\n result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));\n }\n }\n\n return result;\n}\n\nvec2 cos_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(1.0, 0.0);\n }\n\n // 2pi range reduction\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n\n if (k == 0) {\n if (j == 0) {\n return cos_taylor_fp64(t);\n } else if (j == 1) {\n return -sin_taylor_fp64(t);\n } else if (j == -1) {\n return sin_taylor_fp64(t);\n } else {\n return -cos_taylor_fp64(t);\n }\n }\n\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n\n vec2 sin_t, cos_t;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n vec2 result = vec2(0.0, 0.0);\n if (j == 0) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n } else if (j == 1) {\n if (k > 0) {\n result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));\n }\n } else if (j == -1) {\n if (k > 0) {\n result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n }\n } else {\n if (k > 0) {\n result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n } else {\n result = -sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n }\n\n return result;\n}\n\nvec2 tan_fp64(vec2 a) {\n vec2 sin_a;\n vec2 cos_a;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n\n // 2pi range reduction\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n int abs_k = int(abs(float(k)));\n\n // We just can't get PI/16 * 3.0 very accurately.\n // so let's just store it\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n vec2 sin_t, cos_t;\n vec2 s, c;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n if (k == 0) {\n s = sin_t;\n c = cos_t;\n } else {\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n if (k > 0) {\n s = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n c = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n s = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n c = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n }\n\n if (j == 0) {\n sin_a = s;\n cos_a = c;\n } else if (j == 1) {\n sin_a = c;\n cos_a = -s;\n } else if (j == -1) {\n sin_a = -c;\n cos_a = s;\n } else {\n sin_a = -s;\n cos_a = -c;\n }\n return div_fp64(sin_a, cos_a);\n}\n\nvec2 radians_fp64(vec2 degree) {\n return mul_fp64(degree, PI_180_FP64);\n}\n\nvec2 mix_fp64(vec2 a, vec2 b, float x) {\n vec2 range = sub_fp64(b, a);\n return sum_fp64(a, mul_fp64(range, vec2(x, 0.0)));\n}\n\n// Vector functions\n// vec2 functions\nvoid vec2_sum_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = sum_fp64(a[0], b[0]);\n out_val[1] = sum_fp64(a[1], b[1]);\n}\n\nvoid vec2_sub_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = sub_fp64(a[0], b[0]);\n out_val[1] = sub_fp64(a[1], b[1]);\n}\n\nvoid vec2_mul_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = mul_fp64(a[0], b[0]);\n out_val[1] = mul_fp64(a[1], b[1]);\n}\n\nvoid vec2_div_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = div_fp64(a[0], b[0]);\n out_val[1] = div_fp64(a[1], b[1]);\n}\n\nvoid vec2_mix_fp64(vec2 x[2], vec2 y[2], float a, out vec2 out_val[2]) {\n vec2 range[2];\n vec2_sub_fp64(y, x, range);\n vec2 portion[2];\n portion[0] = range[0] * a;\n portion[1] = range[1] * a;\n vec2_sum_fp64(x, portion, out_val);\n}\n\nvec2 vec2_length_fp64(vec2 x[2]) {\n return sqrt_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])));\n}\n\nvoid vec2_normalize_fp64(vec2 x[2], out vec2 out_val[2]) {\n vec2 length = vec2_length_fp64(x);\n vec2 length_vec2[2];\n length_vec2[0] = length;\n length_vec2[1] = length;\n\n vec2_div_fp64(x, length_vec2, out_val);\n}\n\nvec2 vec2_distance_fp64(vec2 x[2], vec2 y[2]) {\n vec2 diff[2];\n vec2_sub_fp64(x, y, diff);\n return vec2_length_fp64(diff);\n}\n\nvec2 vec2_dot_fp64(vec2 a[2], vec2 b[2]) {\n vec2 v[2];\n\n v[0] = mul_fp64(a[0], b[0]);\n v[1] = mul_fp64(a[1], b[1]);\n\n return sum_fp64(v[0], v[1]);\n}\n\n// vec3 functions\nvoid vec3_sub_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {\n for (int i = 0; i < 3; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvoid vec3_sum_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {\n for (int i = 0; i < 3; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvec2 vec3_length_fp64(vec2 x[3]) {\n return sqrt_fp64(sum_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])),\n mul_fp64(x[2], x[2])));\n}\n\nvec2 vec3_distance_fp64(vec2 x[3], vec2 y[3]) {\n vec2 diff[3];\n vec3_sub_fp64(x, y, diff);\n return vec3_length_fp64(diff);\n}\n\n// vec4 functions\nvoid vec4_fp64(vec4 a, out vec2 out_val[4]) {\n out_val[0].x = a[0];\n out_val[0].y = 0.0;\n\n out_val[1].x = a[1];\n out_val[1].y = 0.0;\n\n out_val[2].x = a[2];\n out_val[2].y = 0.0;\n\n out_val[3].x = a[3];\n out_val[3].y = 0.0;\n}\n\nvoid vec4_scalar_mul_fp64(vec2 a[4], vec2 b, out vec2 out_val[4]) {\n out_val[0] = mul_fp64(a[0], b);\n out_val[1] = mul_fp64(a[1], b);\n out_val[2] = mul_fp64(a[2], b);\n out_val[3] = mul_fp64(a[3], b);\n}\n\nvoid vec4_sum_fp64(vec2 a[4], vec2 b[4], out vec2 out_val[4]) {\n for (int i = 0; i < 4; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvoid vec4_dot_fp64(vec2 a[4], vec2 b[4], out vec2 out_val) {\n vec2 v[4];\n\n v[0] = mul_fp64(a[0], b[0]);\n v[1] = mul_fp64(a[1], b[1]);\n v[2] = mul_fp64(a[2], b[2]);\n v[3] = mul_fp64(a[3], b[3]);\n\n out_val = sum_fp64(sum_fp64(v[0], v[1]), sum_fp64(v[2], v[3]));\n}\n\nvoid mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {\n vec2 tmp[4];\n\n for (int i = 0; i < 4; i++)\n {\n for (int j = 0; j < 4; j++)\n {\n tmp[j] = b[j + i * 4];\n }\n vec4_dot_fp64(a, tmp, out_val[i]);\n }\n}\n`;\n","/** @typedef {import('../../types').ShaderModule} ShaderModule */\n\nimport {Matrix4} from '@math.gl/core';\n\nconst IDENTITY_MATRIX = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n\nconst DEFAULT_MODULE_OPTIONS = {\n modelMatrix: IDENTITY_MATRIX,\n viewMatrix: IDENTITY_MATRIX,\n projectionMatrix: IDENTITY_MATRIX,\n cameraPositionWorld: [0, 0, 0]\n};\n\nfunction getUniforms(opts = DEFAULT_MODULE_OPTIONS, prevUniforms = {}) {\n // const viewProjectionInverse = viewProjection.invert();\n // viewInverseMatrix: view.invert(),\n // viewProjectionInverseMatrix: viewProjectionInverse\n\n const uniforms = {};\n if (opts.modelMatrix !== undefined) {\n uniforms.modelMatrix = opts.modelMatrix;\n }\n if (opts.viewMatrix !== undefined) {\n uniforms.viewMatrix = opts.viewMatrix;\n }\n if (opts.projectionMatrix !== undefined) {\n uniforms.projectionMatrix = opts.projectionMatrix;\n }\n if (opts.cameraPositionWorld !== undefined) {\n uniforms.cameraPositionWorld = opts.cameraPositionWorld;\n }\n\n // COMPOSITE UNIFORMS\n if (opts.projectionMatrix !== undefined || opts.viewMatrix !== undefined) {\n uniforms.viewProjectionMatrix = new Matrix4(opts.projectionMatrix).multiplyRight(\n opts.viewMatrix\n );\n }\n\n return uniforms;\n}\n\nconst common = `\\\nvarying vec4 project_vPositionWorld;\nvarying vec3 project_vNormalWorld;\n\nvec4 project_getPosition_World() {\n return project_vPositionWorld;\n}\n\nvec3 project_getNormal_World() {\n return project_vNormalWorld;\n}\n`;\n\nconst vs = `\\\n${common}\n\n// Unprefixed uniforms\nuniform mat4 modelMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewProjectionMatrix;\nuniform vec3 cameraPositionWorld;\n\nstruct World {\n vec3 position;\n vec3 normal;\n};\n\nWorld world;\n\nvoid project_setPosition(vec4 position) {\n project_vPositionWorld = position;\n}\n\nvoid project_setNormal(vec3 normal) {\n project_vNormalWorld = normal;\n}\n\nvoid project_setPositionAndNormal_World(vec3 position, vec3 normal) {\n world.position = position;\n world.normal = normal;\n}\n\nvoid project_setPositionAndNormal_Model(vec3 position, vec3 normal) {\n world.position = (modelMatrix * vec4(position, 1.)).xyz;\n world.normal = mat3(modelMatrix) * normal;\n}\n\nvec4 project_model_to_clipspace(vec4 position) {\n return viewProjectionMatrix * modelMatrix * position;\n}\n\nvec4 project_model_to_clipspace(vec3 position) {\n return viewProjectionMatrix * modelMatrix * vec4(position, 1.);\n}\n\nvec4 project_world_to_clipspace(vec3 position) {\n return viewProjectionMatrix * vec4(position, 1.);\n}\n\nvec4 project_view_to_clipspace(vec3 position) {\n return projectionMatrix * vec4(position, 1.);\n}\n\nvec4 project_to_clipspace(vec3 position) {\n return viewProjectionMatrix * vec4(position, 1.);\n}\n`;\n\nconst fs = `\n${common}\\\n`;\n\n/** @type {ShaderModule} */\nexport const project = {\n name: 'project',\n getUniforms,\n vs,\n fs\n};\n","/** @typedef {import('../../types').ShaderModule} ShaderModule */\n\n// Cheap lighting - single directional light, single dot product, one uniform\n\nimport {project} from '../project/project';\n\n/* eslint-disable camelcase */\nconst DEFAULT_LIGHT_DIRECTION = new Float32Array([1, 1, 2]);\n\nconst DEFAULT_MODULE_OPTIONS = {\n lightDirection: DEFAULT_LIGHT_DIRECTION\n};\n\nfunction getUniforms(opts = DEFAULT_MODULE_OPTIONS) {\n const uniforms = {};\n if (opts.lightDirection) {\n uniforms.dirlight_uLightDirection = opts.lightDirection;\n }\n return uniforms;\n}\n\n// TODO - reuse normal from geometry module\nconst vs = null;\n\nconst fs = `\\\nuniform vec3 dirlight_uLightDirection;\n\n/*\n * Returns color attenuated by angle from light source\n */\nvec4 dirlight_filterColor(vec4 color) {\n vec3 normal = project_getNormal_World();\n float d = abs(dot(normalize(normal), normalize(dirlight_uLightDirection)));\n return vec4(color.rgb * d, color.a);\n}\n`;\n\nexport const dirlight = {\n name: 'dirlight',\n vs,\n fs,\n getUniforms,\n dependencies: [project]\n};\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import { array, error, hasOwnProperty, extend, peek, toSet, constant, zero, one, span } from 'vega-util';\nimport { timeDay, timeWeek, utcDay, utcWeek, timeYear, timeMonth, timeHour, timeMinute, timeSecond, timeMillisecond, utcYear, utcMonth, utcHour, utcMinute, utcSecond, utcMillisecond } from 'd3-time';\nimport { bisector, tickStep } from 'd3-array';\n\nconst YEAR = 'year';\nconst QUARTER = 'quarter';\nconst MONTH = 'month';\nconst WEEK = 'week';\nconst DATE = 'date';\nconst DAY = 'day';\nconst DAYOFYEAR = 'dayofyear';\nconst HOURS = 'hours';\nconst MINUTES = 'minutes';\nconst SECONDS = 'seconds';\nconst MILLISECONDS = 'milliseconds';\nconst TIME_UNITS = [YEAR, QUARTER, MONTH, WEEK, DATE, DAY, DAYOFYEAR, HOURS, MINUTES, SECONDS, MILLISECONDS];\nconst UNITS = TIME_UNITS.reduce((o, u, i) => (o[u] = 1 + i, o), {});\nfunction timeUnits(units) {\n const u = array(units).slice(),\n m = {}; // check validity\n\n if (!u.length) error('Missing time unit.');\n u.forEach(unit => {\n if (hasOwnProperty(UNITS, unit)) {\n m[unit] = 1;\n } else {\n error(\"Invalid time unit: \".concat(unit, \".\"));\n }\n });\n const numTypes = (m[WEEK] || m[DAY] ? 1 : 0) + (m[QUARTER] || m[MONTH] || m[DATE] ? 1 : 0) + (m[DAYOFYEAR] ? 1 : 0);\n\n if (numTypes > 1) {\n error(\"Incompatible time units: \".concat(units));\n } // ensure proper sort order\n\n\n u.sort((a, b) => UNITS[a] - UNITS[b]);\n return u;\n}\nconst defaultSpecifiers = {\n [YEAR]: '%Y ',\n [QUARTER]: 'Q%q ',\n [MONTH]: '%b ',\n [DATE]: '%d ',\n [WEEK]: 'W%U ',\n [DAY]: '%a ',\n [DAYOFYEAR]: '%j ',\n [HOURS]: '%H:00',\n [MINUTES]: '00:%M',\n [SECONDS]: ':%S',\n [MILLISECONDS]: '.%L',\n [\"\".concat(YEAR, \"-\").concat(MONTH)]: '%Y-%m ',\n [\"\".concat(YEAR, \"-\").concat(MONTH, \"-\").concat(DATE)]: '%Y-%m-%d ',\n [\"\".concat(HOURS, \"-\").concat(MINUTES)]: '%H:%M'\n};\nfunction timeUnitSpecifier(units, specifiers) {\n const s = extend({}, defaultSpecifiers, specifiers),\n u = timeUnits(units),\n n = u.length;\n let fmt = '',\n start = 0,\n end,\n key;\n\n for (start = 0; start < n;) {\n for (end = u.length; end > start; --end) {\n key = u.slice(start, end).join('-');\n\n if (s[key] != null) {\n fmt += s[key];\n start = end;\n break;\n }\n }\n }\n\n return fmt.trim();\n}\n\nconst t0 = new Date();\n\nfunction localYear(y) {\n t0.setFullYear(y);\n t0.setMonth(0);\n t0.setDate(1);\n t0.setHours(0, 0, 0, 0);\n return t0;\n}\n\nfunction dayofyear(d) {\n return localDayOfYear(new Date(d));\n}\nfunction week(d) {\n return localWeekNum(new Date(d));\n}\nfunction localDayOfYear(d) {\n return timeDay.count(localYear(d.getFullYear()) - 1, d);\n}\nfunction localWeekNum(d) {\n return timeWeek.count(localYear(d.getFullYear()) - 1, d);\n}\nfunction localFirst(y) {\n return localYear(y).getDay();\n}\nfunction localDate(y, m, d, H, M, S, L) {\n if (0 <= y && y < 100) {\n const date = new Date(-1, m, d, H, M, S, L);\n date.setFullYear(y);\n return date;\n }\n\n return new Date(y, m, d, H, M, S, L);\n}\nfunction utcdayofyear(d) {\n return utcDayOfYear(new Date(d));\n}\nfunction utcweek(d) {\n return utcWeekNum(new Date(d));\n}\nfunction utcDayOfYear(d) {\n const y = Date.UTC(d.getUTCFullYear(), 0, 1);\n return utcDay.count(y - 1, d);\n}\nfunction utcWeekNum(d) {\n const y = Date.UTC(d.getUTCFullYear(), 0, 1);\n return utcWeek.count(y - 1, d);\n}\nfunction utcFirst(y) {\n t0.setTime(Date.UTC(y, 0, 1));\n return t0.getUTCDay();\n}\nfunction utcDate(y, m, d, H, M, S, L) {\n if (0 <= y && y < 100) {\n const date = new Date(Date.UTC(-1, m, d, H, M, S, L));\n date.setUTCFullYear(d.y);\n return date;\n }\n\n return new Date(Date.UTC(y, m, d, H, M, S, L));\n}\n\nfunction floor(units, step, get, inv, newDate) {\n const s = step || 1,\n b = peek(units),\n _ = (unit, p, key) => {\n key = key || unit;\n return getUnit(get[key], inv[key], unit === b && s, p);\n };\n\n const t = new Date(),\n u = toSet(units),\n y = u[YEAR] ? _(YEAR) : constant(2012),\n m = u[MONTH] ? _(MONTH) : u[QUARTER] ? _(QUARTER) : zero,\n d = u[WEEK] && u[DAY] ? _(DAY, 1, WEEK + DAY) : u[WEEK] ? _(WEEK, 1) : u[DAY] ? _(DAY, 1) : u[DATE] ? _(DATE, 1) : u[DAYOFYEAR] ? _(DAYOFYEAR, 1) : one,\n H = u[HOURS] ? _(HOURS) : zero,\n M = u[MINUTES] ? _(MINUTES) : zero,\n S = u[SECONDS] ? _(SECONDS) : zero,\n L = u[MILLISECONDS] ? _(MILLISECONDS) : zero;\n return function (v) {\n t.setTime(+v);\n const year = y(t);\n return newDate(year, m(t), d(t, year), H(t), M(t), S(t), L(t));\n };\n}\n\nfunction getUnit(f, inv, step, phase) {\n const u = step <= 1 ? f : phase ? (d, y) => phase + step * Math.floor((f(d, y) - phase) / step) : (d, y) => step * Math.floor(f(d, y) / step);\n return inv ? (d, y) => inv(u(d, y), y) : u;\n} // returns the day of the year based on week number, day of week,\n// and the day of the week for the first day of the year\n\n\nfunction weekday(week, day, firstDay) {\n return day + week * 7 - (firstDay + 6) % 7;\n} // -- LOCAL TIME --\n\n\nconst localGet = {\n [YEAR]: d => d.getFullYear(),\n [QUARTER]: d => Math.floor(d.getMonth() / 3),\n [MONTH]: d => d.getMonth(),\n [DATE]: d => d.getDate(),\n [HOURS]: d => d.getHours(),\n [MINUTES]: d => d.getMinutes(),\n [SECONDS]: d => d.getSeconds(),\n [MILLISECONDS]: d => d.getMilliseconds(),\n [DAYOFYEAR]: d => localDayOfYear(d),\n [WEEK]: d => localWeekNum(d),\n [WEEK + DAY]: (d, y) => weekday(localWeekNum(d), d.getDay(), localFirst(y)),\n [DAY]: (d, y) => weekday(1, d.getDay(), localFirst(y))\n};\nconst localInv = {\n [QUARTER]: q => 3 * q,\n [WEEK]: (w, y) => weekday(w, 0, localFirst(y))\n};\nfunction timeFloor(units, step) {\n return floor(units, step || 1, localGet, localInv, localDate);\n} // -- UTC TIME --\n\nconst utcGet = {\n [YEAR]: d => d.getUTCFullYear(),\n [QUARTER]: d => Math.floor(d.getUTCMonth() / 3),\n [MONTH]: d => d.getUTCMonth(),\n [DATE]: d => d.getUTCDate(),\n [HOURS]: d => d.getUTCHours(),\n [MINUTES]: d => d.getUTCMinutes(),\n [SECONDS]: d => d.getUTCSeconds(),\n [MILLISECONDS]: d => d.getUTCMilliseconds(),\n [DAYOFYEAR]: d => utcDayOfYear(d),\n [WEEK]: d => utcWeekNum(d),\n [DAY]: (d, y) => weekday(1, d.getUTCDay(), utcFirst(y)),\n [WEEK + DAY]: (d, y) => weekday(utcWeekNum(d), d.getUTCDay(), utcFirst(y))\n};\nconst utcInv = {\n [QUARTER]: q => 3 * q,\n [WEEK]: (w, y) => weekday(w, 0, utcFirst(y))\n};\nfunction utcFloor(units, step) {\n return floor(units, step || 1, utcGet, utcInv, utcDate);\n}\n\nconst timeIntervals = {\n [YEAR]: timeYear,\n [QUARTER]: timeMonth.every(3),\n [MONTH]: timeMonth,\n [WEEK]: timeWeek,\n [DATE]: timeDay,\n [DAY]: timeDay,\n [DAYOFYEAR]: timeDay,\n [HOURS]: timeHour,\n [MINUTES]: timeMinute,\n [SECONDS]: timeSecond,\n [MILLISECONDS]: timeMillisecond\n};\nconst utcIntervals = {\n [YEAR]: utcYear,\n [QUARTER]: utcMonth.every(3),\n [MONTH]: utcMonth,\n [WEEK]: utcWeek,\n [DATE]: utcDay,\n [DAY]: utcDay,\n [DAYOFYEAR]: utcDay,\n [HOURS]: utcHour,\n [MINUTES]: utcMinute,\n [SECONDS]: utcSecond,\n [MILLISECONDS]: utcMillisecond\n};\nfunction timeInterval(unit) {\n return timeIntervals[unit];\n}\nfunction utcInterval(unit) {\n return utcIntervals[unit];\n}\n\nfunction offset(ival, date, step) {\n return ival ? ival.offset(date, step) : undefined;\n}\n\nfunction timeOffset(unit, date, step) {\n return offset(timeInterval(unit), date, step);\n}\nfunction utcOffset(unit, date, step) {\n return offset(utcInterval(unit), date, step);\n}\n\nfunction sequence(ival, start, stop, step) {\n return ival ? ival.range(start, stop, step) : undefined;\n}\n\nfunction timeSequence(unit, start, stop, step) {\n return sequence(timeInterval(unit), start, stop, step);\n}\nfunction utcSequence(unit, start, stop, step) {\n return sequence(utcInterval(unit), start, stop, step);\n}\n\nconst durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\nconst Milli = [YEAR, MONTH, DATE, HOURS, MINUTES, SECONDS, MILLISECONDS],\n Seconds = Milli.slice(0, -1),\n Minutes = Seconds.slice(0, -1),\n Hours = Minutes.slice(0, -1),\n Day = Hours.slice(0, -1),\n Week = [YEAR, WEEK],\n Month = [YEAR, MONTH],\n Year = [YEAR];\nconst intervals = [[Seconds, 1, durationSecond], [Seconds, 5, 5 * durationSecond], [Seconds, 15, 15 * durationSecond], [Seconds, 30, 30 * durationSecond], [Minutes, 1, durationMinute], [Minutes, 5, 5 * durationMinute], [Minutes, 15, 15 * durationMinute], [Minutes, 30, 30 * durationMinute], [Hours, 1, durationHour], [Hours, 3, 3 * durationHour], [Hours, 6, 6 * durationHour], [Hours, 12, 12 * durationHour], [Day, 1, durationDay], [Week, 1, durationWeek], [Month, 1, durationMonth], [Month, 3, 3 * durationMonth], [Year, 1, durationYear]];\nfunction bin (opt) {\n const ext = opt.extent,\n max = opt.maxbins || 40,\n target = Math.abs(span(ext)) / max;\n let i = bisector(i => i[2]).right(intervals, target),\n units,\n step;\n\n if (i === intervals.length) {\n units = Year, step = tickStep(ext[0] / durationYear, ext[1] / durationYear, max);\n } else if (i) {\n i = intervals[target / intervals[i - 1][2] < intervals[i][2] / target ? i - 1 : i];\n units = i[0];\n step = i[1];\n } else {\n units = Milli;\n step = Math.max(tickStep(ext[0], ext[1], max), 1);\n }\n\n return {\n units,\n step\n };\n}\n\nexport { DATE, DAY, DAYOFYEAR, HOURS, MILLISECONDS, MINUTES, MONTH, QUARTER, SECONDS, TIME_UNITS, WEEK, YEAR, dayofyear, bin as timeBin, timeFloor, timeInterval, timeOffset, timeSequence, timeUnitSpecifier, timeUnits, utcFloor, utcInterval, utcOffset, utcSequence, utcdayofyear, utcweek, week };\n","import { TooManyIndicesError, BoundsCheckError, NegativeStepError } from '../errors';\nimport { ZarrArray } from './index';\nimport { Slice, ArraySelection, ChunkDimProjection, Indexer, DimIndexer, ChunkProjection, NormalizedArraySelection, SliceIndices, DimensionArraySelection } from './types';\nimport { sliceIndices, slice } from \"./slice\";\n\nfunction ensureArray(selection: ArraySelection): DimensionArraySelection[] {\n if (!Array.isArray(selection)) {\n return [selection];\n }\n return selection;\n}\n\nfunction checkSelectionLength(selection: DimensionArraySelection[], shape: number[]) {\n if (selection.length > shape.length) {\n throw new TooManyIndicesError(selection, shape);\n }\n}\n\n/**\n * Returns both the sliceIndices per dimension and the output shape after slicing.\n */\nexport function selectionToSliceIndices(selection: NormalizedArraySelection, shape: number[]): [(number | SliceIndices)[], number[]] {\n const sliceIndicesResult = [];\n const outShape = [];\n\n for (let i = 0; i < selection.length; i++) {\n const s = selection[i];\n if (typeof s === \"number\") {\n sliceIndicesResult.push(s);\n } else {\n const x = sliceIndices(s, shape[i]);\n const dimLength = x[3];\n\n outShape.push(dimLength);\n sliceIndicesResult.push(x);\n }\n }\n\n return [sliceIndicesResult, outShape];\n}\n\n/**\n * This translates \"...\", \":\", null into a list of slices or non-negative integer selections of length shape\n */\nexport function normalizeArraySelection(selection: ArraySelection | number, shape: number[], convertIntegerSelectionToSlices = false): NormalizedArraySelection {\n selection = replaceEllipsis(selection, shape);\n\n for (let i = 0; i < selection.length; i++) {\n const dimSelection = selection[i];\n\n if (typeof dimSelection === \"number\") {\n if (convertIntegerSelectionToSlices) {\n selection[i] = slice(dimSelection, dimSelection + 1, 1);\n } else {\n selection[i] = normalizeIntegerSelection(dimSelection, shape[i]);\n }\n } else if (isIntegerArray(dimSelection)) {\n throw new TypeError(\"Integer array selections are not supported (yet)\");\n } else if (dimSelection === \":\" || dimSelection === null) {\n selection[i] = slice(null, null, 1);\n }\n }\n\n return selection as NormalizedArraySelection;\n}\n\nexport function replaceEllipsis(selection: ArraySelection | number, shape: number[]) {\n selection = ensureArray(selection);\n\n let ellipsisIndex = -1;\n let numEllipsis = 0;\n for (let i = 0; i < selection.length; i++) {\n if (selection[i] === \"...\") {\n ellipsisIndex = i;\n numEllipsis += 1;\n }\n }\n\n if (numEllipsis > 1) {\n throw new RangeError(\"an index can only have a single ellipsis ('...')\");\n }\n if (numEllipsis === 1) {\n // count how many items to left and right of ellipsis\n const numItemsLeft = ellipsisIndex;\n const numItemsRight = selection.length - (numItemsLeft + 1);\n const numItems = selection.length - 1; // All non-ellipsis items\n if (numItems >= shape.length) {\n // Ellipsis does nothing, just remove it\n selection = selection.filter((x) => x !== \"...\");\n } else {\n // Replace ellipsis with as many slices are needed for number of dims\n const numNewItems = shape.length - numItems;\n let newItem = selection.slice(0, numItemsLeft).concat(new Array(numNewItems).fill(null));\n if (numItemsRight > 0) {\n newItem = newItem.concat(selection.slice(selection.length - numItemsRight));\n }\n selection = newItem;\n }\n }\n // Fill out selection if not completely specified\n if (selection.length < shape.length) {\n const numMissing = shape.length - selection.length;\n selection = selection.concat(new Array(numMissing).fill(null));\n }\n\n checkSelectionLength(selection, shape);\n return selection;\n}\n\nexport function normalizeIntegerSelection(dimSelection: number, dimLength: number): number {\n // Note: Maybe we should convert to integer or warn if dimSelection is not an integer\n\n // handle wraparound\n if (dimSelection < 0) {\n dimSelection = dimLength + dimSelection;\n }\n\n // handle out of bounds\n if (dimSelection >= dimLength || dimSelection < 0) {\n throw new BoundsCheckError(`index out of bounds for dimension with length ${dimLength}`);\n }\n\n return dimSelection;\n}\n\nfunction isInteger(s: any) {\n return typeof s === \"number\";\n}\n\nexport function isIntegerArray(s: any) {\n if (!Array.isArray(s)) {\n return false;\n }\n for (const e of s) {\n if (typeof e !== \"number\") {\n return false;\n }\n }\n return true;\n}\n\nexport function isSlice(s: (Slice | number | number[] | \"...\" | \":\" | null)): boolean {\n if (s !== null && (s as any)[\"_slice\"] === true) {\n return true;\n }\n return false;\n}\n\nfunction isContiguousSlice(s: (Slice | number | number[] | \"...\" | \":\" | null)): boolean {\n return isSlice(s) && ((s as Slice).step === null || (s as Slice).step === 1);\n}\n\nfunction isPositiveSlice(s: (Slice | number | number[] | \"...\" | \":\" | null)): boolean {\n return isSlice(s) && ((s as Slice).step === null || ((s as Slice).step as number) >= 1);\n}\n\nexport function isContiguousSelection(selection: ArraySelection) {\n selection = ensureArray(selection);\n\n for (let i = 0; i < selection.length; i++) {\n const s = selection[i];\n if (!(isIntegerArray(s) || isContiguousSlice(s) || s === \"...\")) {\n return false;\n }\n }\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction isBasicSelection(selection: ArraySelection): boolean {\n selection = ensureArray(selection);\n\n for (let i = 0; i < selection.length; i++) {\n const s = selection[i];\n if (!(isInteger(s) || isPositiveSlice(s))) {\n return false;\n }\n }\n return true;\n}\nfunction* product<T>(...iterables: (() => IterableIterator<T>)[]): IterableIterator<T[]> {\n if (iterables.length === 0) { return; }\n // make a list of iterators from the iterables\n const iterators = iterables.map(it => it());\n const results = iterators.map(it => it.next());\n\n // Disabled to allow empty inputs\n // if (results.some(r => r.done)) {\n // throw new Error(\"Input contains an empty iterator.\");\n // }\n\n for (let i = 0; ;) {\n if (results[i].done) {\n // reset the current iterator\n iterators[i] = iterables[i]();\n results[i] = iterators[i].next();\n // advance, and exit if we've reached the end\n if (++i >= iterators.length) { return; }\n } else {\n yield results.map(({ value }) => value);\n i = 0;\n }\n results[i] = iterators[i].next();\n }\n}\n\nexport class BasicIndexer implements Indexer {\n dimIndexers: DimIndexer[];\n shape: number[];\n dropAxes: null;\n\n constructor(selection: ArraySelection, array: ZarrArray) {\n selection = normalizeArraySelection(selection, array.shape);\n\n // Setup per-dimension indexers\n this.dimIndexers = [];\n const arrayShape = array.shape;\n for (let i = 0; i < arrayShape.length; i++) {\n let dimSelection = selection[i];\n const dimLength = arrayShape[i];\n const dimChunkLength = array.chunks[i];\n\n if (dimSelection === null) {\n dimSelection = slice(null);\n }\n\n\n if (isInteger(dimSelection)) {\n this.dimIndexers.push(new IntDimIndexer(dimSelection as number, dimLength, dimChunkLength));\n } else if (isSlice(dimSelection)) {\n this.dimIndexers.push(new SliceDimIndexer(dimSelection as Slice, dimLength, dimChunkLength));\n } else {\n throw new RangeError(`Unspported selection item for basic indexing; expected integer or slice, got ${dimSelection}`);\n }\n }\n\n this.shape = [];\n for (const d of this.dimIndexers) {\n if (d instanceof SliceDimIndexer) {\n this.shape.push(d.numItems);\n }\n }\n this.dropAxes = null;\n }\n\n * iter() {\n const dimIndexerIterables = this.dimIndexers.map(x => (() => x.iter()));\n const dimIndexerProduct = product(...dimIndexerIterables);\n\n for (const dimProjections of dimIndexerProduct) {\n // TODO fix this, I think the product outputs too many combinations\n const chunkCoords = [];\n const chunkSelection = [];\n const outSelection = [];\n\n for (const p of dimProjections) {\n chunkCoords.push((p).dimChunkIndex);\n chunkSelection.push((p).dimChunkSelection);\n if ((p).dimOutSelection !== null) {\n outSelection.push((p).dimOutSelection);\n }\n }\n\n yield ({\n chunkCoords,\n chunkSelection,\n outSelection,\n } as ChunkProjection);\n }\n\n }\n}\n\nclass IntDimIndexer implements DimIndexer {\n dimSelection: number;\n dimLength: number;\n dimChunkLength: number;\n numItems: number;\n\n constructor(dimSelection: number, dimLength: number, dimChunkLength: number) {\n dimSelection = normalizeIntegerSelection(dimSelection, dimLength);\n this.dimSelection = dimSelection;\n this.dimLength = dimLength;\n this.dimChunkLength = dimChunkLength;\n this.numItems = 1;\n }\n\n * iter() {\n const dimChunkIndex = Math.floor(this.dimSelection / this.dimChunkLength);\n const dimOffset = dimChunkIndex * this.dimChunkLength;\n const dimChunkSelection = this.dimSelection - dimOffset;\n const dimOutSelection = null;\n yield {\n dimChunkIndex,\n dimChunkSelection,\n dimOutSelection,\n } as ChunkDimProjection;\n }\n}\n\nclass SliceDimIndexer implements DimIndexer {\n dimLength: number;\n dimChunkLength: number;\n numItems: number;\n numChunks: number;\n\n start: number;\n stop: number;\n step: number;\n\n constructor(dimSelection: Slice, dimLength: number, dimChunkLength: number) {\n // Normalize\n const [start, stop, step] = sliceIndices(dimSelection, dimLength);\n this.start = start;\n this.stop = stop;\n this.step = step;\n if (this.step < 1) {\n throw new NegativeStepError();\n }\n\n this.dimLength = dimLength;\n this.dimChunkLength = dimChunkLength;\n this.numItems = Math.max(0, Math.ceil((this.stop - this.start) / this.step));\n this.numChunks = Math.ceil(this.dimLength / this.dimChunkLength);\n }\n\n *iter() {\n const dimChunkIndexFrom = Math.floor(this.start / this.dimChunkLength);\n const dimChunkIndexTo = Math.ceil(this.stop / this.dimChunkLength);\n\n // Iterate over chunks in range\n for (let dimChunkIndex = dimChunkIndexFrom; dimChunkIndex < dimChunkIndexTo; dimChunkIndex++) {\n\n // Compute offsets for chunk within overall array\n const dimOffset = dimChunkIndex * this.dimChunkLength;\n const dimLimit = Math.min(this.dimLength, (dimChunkIndex + 1) * this.dimChunkLength);\n\n // Determine chunk length, accounting for trailing chunk\n const dimChunkLength = dimLimit - dimOffset;\n\n let dimChunkSelStart: number;\n let dimChunkSelStop: number;\n let dimOutOffset: number;\n\n if (this.start < dimOffset) {\n // Selection starts before current chunk\n\n dimChunkSelStart = 0;\n const remainder = (dimOffset - this.start) % this.step;\n if (remainder > 0) {\n dimChunkSelStart += this.step - remainder;\n }\n // Compute number of previous items, provides offset into output array\n dimOutOffset = Math.ceil((dimOffset - this.start) / this.step);\n } else {\n // Selection starts within current chunk\n dimChunkSelStart = this.start - dimOffset;\n dimOutOffset = 0;\n }\n\n if (this.stop > dimLimit) {\n // Selection ends after current chunk\n dimChunkSelStop = dimChunkLength;\n } else {\n // Selection ends within current chunk\n dimChunkSelStop = this.stop - dimOffset;\n }\n\n const dimChunkSelection = slice(dimChunkSelStart, dimChunkSelStop, this.step);\n const dimChunkNumItems = Math.ceil((dimChunkSelStop - dimChunkSelStart) / this.step);\n const dimOutSelection = slice(dimOutOffset, dimOutOffset + dimChunkNumItems);\n yield {\n dimChunkIndex,\n dimChunkSelection,\n dimOutSelection,\n } as ChunkDimProjection;\n }\n\n }\n\n}\n","import type { Codec, CompressorConfig } from 'numcodecs';\n\n// TODO: This interface is tied to compressors in numcodecs..\n// might be better to just use 'any' or have numcodecs export complete \n// (optional) config? \ninterface Options {\n level?: number;\n cname?: string;\n blocksize?: number;\n clevel?: number;\n shuffle?: number;\n}\n\ntype CodecConstructor = { fromConfig(config: Options & CompressorConfig): Codec };\ntype CodecImporter = () => CodecConstructor | Promise<CodecConstructor>;\n\nconst registry: Map<string, CodecImporter> = new Map();\n\nexport function addCodec(id: string, importFn: CodecImporter) {\n registry.set(id, importFn);\n}\n\nexport async function getCodec<T extends Codec>(config: Options & CompressorConfig): Promise<T> {\n if (!registry.has(config.id)) {\n throw new Error(`Compression codec ${config.id} is not supported by Zarr.js yet.`);\n }\n const codec = await (registry.get(config.id) as CodecImporter)();\n return codec.fromConfig(config) as T;\n}\n","/**\n * Closely resembles the functions on the MutableMapping type in Python.\n */\nexport interface MutableMapping<T, O=any> {\n getItem(item: string, opts?: O): T;\n setItem(item: string, value: T): boolean;\n deleteItem(item: string): boolean;\n containsItem(item: string): boolean;\n\n proxy(): MutableMappingProxy<T>;\n\n // length(): number;\n}\n\n/**\n * Closely resembles the functions on the MutableMapping type in Python.\n */\nexport interface AsyncMutableMapping<T, O=any> {\n getItem(item: string, opts?: O): Promise<T>;\n setItem(item: string, value: T): Promise<boolean>;\n deleteItem(item: string): Promise<boolean>;\n containsItem(item: string): Promise<boolean>;\n // length(): number;\n}\n\nexport interface MutableMappingProxy<T> {\n [key: string]: T;\n}\n\nexport interface AsyncMutableMappingProxy<T> {\n [key: string]: T | Promise<T>;\n}\n\n\n/**\n * A proxy allows for accessing, setting and deleting the keys in the mutable mapping using\n * m[\"a\"] or even m.a notation.\n */\nexport function createProxy<S, T>(mapping: S & MutableMapping<T>): (S & MutableMappingProxy<T>);\nexport function createProxy<S, T>(mapping: S & AsyncMutableMapping<T>): (S & AsyncMutableMappingProxy<T>);\nexport function createProxy<S, T>(mapping: (S & MutableMapping<T>) | (S & AsyncMutableMapping<T>)): (S & MutableMappingProxy<T>) | (S & AsyncMutableMappingProxy<T>) {\n return new Proxy(mapping as any, {\n set(target, key, value, _receiver) {\n return target.setItem(key as string, value);\n },\n get(target, key, _receiver) {\n return target.getItem(key as string);\n },\n deleteProperty(target, key) {\n return target.deleteItem(key as string);\n },\n has(target, key) {\n return target.containsItem(key as string);\n }\n });\n}","export interface ZarrError {\n __zarr__: string;\n}\n\nfunction isZarrError(err: unknown): err is ZarrError {\n return typeof err === 'object' && err !== null && '__zarr__' in err;\n}\n\nexport function isKeyError(o: unknown) {\n return isZarrError(o) && o.__zarr__ === 'KeyError';\n}\n\n// Custom error messages, note we have to patch the prototype of the\n// errors to fix `instanceof` calls, see:\n// https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\nexport class ContainsArrayError extends Error implements ZarrError {\n __zarr__ = 'ContainsArrayError';\n constructor(path: string) {\n super(`path ${path} contains an array`);\n Object.setPrototypeOf(this, ContainsArrayError.prototype);\n }\n}\n\nexport class ContainsGroupError extends Error implements ZarrError {\n __zarr__ = 'ContainsGroupError';\n constructor(path: string) {\n super(`path ${path} contains a group`);\n Object.setPrototypeOf(this, ContainsGroupError.prototype);\n }\n}\n\nexport class ArrayNotFoundError extends Error implements ZarrError {\n __zarr__ = 'ArrayNotFoundError';\n constructor(path: string) {\n super(`array not found at path ${path}`);\n Object.setPrototypeOf(this, ArrayNotFoundError.prototype);\n }\n}\n\nexport class GroupNotFoundError extends Error implements ZarrError {\n __zarr__ = 'GroupNotFoundError';\n constructor(path: string) {\n super(`ground not found at path ${path}`);\n Object.setPrototypeOf(this, GroupNotFoundError.prototype);\n }\n}\n\nexport class PathNotFoundError extends Error implements ZarrError {\n __zarr__ = 'PathNotFoundError';\n constructor(path: string) {\n super(`nothing not found at path ${path}`);\n Object.setPrototypeOf(this, PathNotFoundError.prototype);\n }\n}\n\nexport class PermissionError extends Error implements ZarrError {\n __zarr__ = 'PermissionError';\n constructor(message: string) {\n super(message);\n Object.setPrototypeOf(this, PermissionError.prototype);\n }\n}\n\nexport class KeyError extends Error implements ZarrError {\n __zarr__ = 'KeyError';\n constructor(key: string) {\n super(`key ${key} not present`);\n Object.setPrototypeOf(this, KeyError.prototype);\n }\n}\n\nexport class TooManyIndicesError extends RangeError implements ZarrError {\n __zarr__ = 'TooManyIndicesError';\n constructor(selection: any[], shape: number[]) {\n super(`too many indices for array; expected ${shape.length}, got ${selection.length}`);\n Object.setPrototypeOf(this, TooManyIndicesError.prototype);\n }\n}\n\nexport class BoundsCheckError extends RangeError implements ZarrError {\n __zarr__ = 'BoundsCheckError';\n constructor(message: string) {\n super(message);\n Object.setPrototypeOf(this, BoundsCheckError.prototype);\n }\n}\n\nexport class InvalidSliceError extends RangeError implements ZarrError {\n __zarr__ = 'InvalidSliceError';\n constructor(from: any, to: any, stepSize: any, reason: any) {\n super(`slice arguments slice(${from}, ${to}, ${stepSize}) invalid: ${reason}`);\n Object.setPrototypeOf(this, InvalidSliceError.prototype);\n }\n}\n\nexport class NegativeStepError extends Error implements ZarrError {\n __zarr__ = 'NegativeStepError';\n constructor() {\n super(`Negative step size is not supported when indexing.`);\n Object.setPrototypeOf(this, NegativeStepError.prototype);\n }\n}\n\nexport class ValueError extends Error implements ZarrError {\n __zarr__ = 'ValueError';\n constructor(message: string) {\n super(message);\n Object.setPrototypeOf(this, ValueError.prototype);\n }\n}\n\nexport class HTTPError extends Error implements ZarrError {\n __zarr__ = 'HTTPError';\n constructor(code: string) {\n super(code);\n Object.setPrototypeOf(this, HTTPError.prototype);\n }\n}\n","\nimport { InvalidSliceError } from '../errors';\nimport { Slice, SliceArgument, SliceIndices } from \"./types\";\n\nexport function slice(start: SliceArgument, stop: SliceArgument | undefined = undefined, step: number | null = null): Slice {\n // tslint:disable-next-line: strict-type-predicates\n if (start === undefined) { // Not possible in typescript\n throw new InvalidSliceError(start, stop, step, \"The first argument must not be undefined\");\n }\n\n if ((typeof start === \"string\" && start !== \":\") || (typeof stop === \"string\" && stop !== \":\")) { // Note in typescript this will never happen with type checking.\n throw new InvalidSliceError(start, stop, step, \"Arguments can only be integers, \\\":\\\" or null\");\n }\n\n // slice(5) === slice(null, 5)\n if (stop === undefined) {\n stop = start;\n start = null;\n }\n\n // if (start !== null && stop !== null && start > stop) {\n // throw new InvalidSliceError(start, stop, step, \"to is higher than from\");\n // }\n\n return {\n start: start === \":\" ? null : start,\n stop: stop === \":\" ? null : stop,\n step,\n _slice: true,\n };\n}\n\n\n/**\n * Port of adjustIndices\n * https://github.com/python/cpython/blob/master/Objects/sliceobject.c#L243\n */\nfunction adjustIndices(start: number, stop: number, step: number, length: number) {\n if (start < 0) {\n start += length;\n if (start < 0) {\n start = (step < 0) ? -1 : 0;\n }\n } else if (start >= length) {\n start = (step < 0) ? length - 1 : length;\n }\n\n if (stop < 0) {\n stop += length;\n if (stop < 0) {\n stop = (step < 0) ? -1 : 0;\n }\n } else if (stop >= length) {\n stop = (step < 0) ? length - 1 : length;\n }\n\n if (step < 0) {\n if (stop < start) {\n const length = Math.floor((start - stop - 1) / (-step) + 1);\n return [start, stop, step, length];\n }\n } else {\n if (start < stop) {\n const length = Math.floor((stop - start - 1) / step + 1);\n return [start, stop, step, length];\n }\n }\n return [start, stop, step, 0];\n}\n\n/**\n * Port of slice.indices(n) and PySlice_Unpack\n * https://github.com/python/cpython/blob/master/Objects/sliceobject.c#L166\n * https://github.com/python/cpython/blob/master/Objects/sliceobject.c#L198 \n * \n * Behaviour might be slightly different as it's a weird hybrid implementation.\n */\nexport function sliceIndices(slice: Slice, length: number): SliceIndices {\n let start: number;\n let stop: number;\n let step: number;\n\n if (slice.step === null) {\n step = 1;\n } else {\n step = slice.step;\n }\n\n if (slice.start === null) {\n start = step < 0 ? Number.MAX_SAFE_INTEGER : 0;\n } else {\n start = slice.start;\n if (start < 0) {\n start += length;\n }\n }\n\n if (slice.stop === null) {\n stop = step < 0 ? -Number.MAX_SAFE_INTEGER : Number.MAX_SAFE_INTEGER;\n } else {\n stop = slice.stop;\n if (stop < 0) {\n stop += length;\n }\n }\n\n // This clips out of bounds slices\n const s = adjustIndices(start, stop, step, length);\n start = s[0];\n stop = s[1];\n step = s[2];\n // The output length\n length = s[3];\n\n\n // With out of bounds slicing these two assertions are not useful.\n // if (stop > length) throw new Error(\"Stop greater than length\");\n // if (start >= length) throw new Error(\"Start greater than or equal to length\");\n\n if (step === 0) throw new Error(\"Step size 0 is invalid\");\n\n return [start, stop, step, length];\n}","import {writeConfig} from 'vega';\n\n// polyfill for IE\nif (!String.prototype.startsWith) {\n // eslint-disable-next-line no-extend-native,func-names\n String.prototype.startsWith = function (search, pos) {\n return this.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n };\n}\n\nexport function isURL(s: string): boolean {\n return s.startsWith('http://') || s.startsWith('https://') || s.startsWith('//');\n}\n\nexport type DeepPartial<T> = {[P in keyof T]?: P extends unknown ? unknown : DeepPartial<T[P]>};\n\nexport function mergeDeep<T>(dest: T, ...src: readonly DeepPartial<T>[]): T {\n for (const s of src) {\n deepMerge_(dest, s);\n }\n return dest;\n}\n\nfunction deepMerge_(dest: any, src: any) {\n for (const property of Object.keys(src)) {\n writeConfig(dest, property, src[property], true);\n }\n}\n","import { normalizeStoragePath, normalizeChunks, normalizeDtype, normalizeShape, normalizeOrder, normalizeFillValue } from '../util';\nimport { Store } from './types';\nimport { ARRAY_META_KEY, GROUP_META_KEY } from '../names';\nimport { FillType, Order, Filter, CompressorConfig, ZarrGroupMetadata, ChunksArgument, DtypeString, ZarrArrayMetadata, FillTypeSerialized } from '../types';\nimport { ContainsArrayError, ContainsGroupError } from '../errors';\n\n\n/**\n * Return true if the store contains an array at the given logical path.\n */\nexport async function containsArray(store: Store, path: string | null = null) {\n path = normalizeStoragePath(path);\n const prefix = pathToPrefix(path);\n const key = prefix + ARRAY_META_KEY;\n return store.containsItem(key);\n}\n\n/**\n * Return true if the store contains a group at the given logical path.\n */\nexport async function containsGroup<T>(store: Store, path: string | null = null) {\n path = normalizeStoragePath(path);\n const prefix = pathToPrefix(path);\n const key = prefix + GROUP_META_KEY;\n return store.containsItem(key);\n}\n\n\nexport function pathToPrefix(path: string): string {\n // assume path already normalized\n if (path.length > 0) {\n return path + '/';\n }\n return '';\n}\n\nasync function listDirFromKeys(store: Store, path: string) {\n // assume path already normalized\n const prefix = pathToPrefix(path);\n const children = new Set<string>();\n\n for (const key in await store.keys()) {\n if (key.startsWith(prefix) && key.length > prefix.length) {\n const suffix = key.slice(prefix.length);\n const child = suffix.split('/')[0];\n children.add(child);\n }\n }\n return Array.from(children).sort();\n}\n\nasync function requireParentGroup(store: Store, path: string, chunkStore: Store | null, overwrite: boolean) {\n // Assume path is normalized\n if (path.length === 0) {\n return;\n }\n\n const segments = path.split(\"/\");\n let p = \"\";\n for (const s of segments.slice(0, segments.length - 1)) {\n p += s;\n if (await containsArray(store, p)) {\n await initGroupMetadata(store, p, overwrite);\n } else if (!await containsGroup(store, p)) {\n await initGroupMetadata(store, p);\n }\n p += \"/\";\n }\n}\n\n/**\n * Obtain a directory listing for the given path. If `store` provides a `listDir`\n * method, this will be called, otherwise will fall back to implementation via the\n * `MutableMapping` interface.\n * @param store \n */\nexport async function listDir(store: Store, path: string | null = null) {\n path = normalizeStoragePath(path);\n if (store.listDir) {\n return store.listDir(path);\n } else {\n return listDirFromKeys(store, path);\n }\n}\n\nasync function initGroupMetadata(store: Store, path: string | null = null,overwrite = false) {\n path = normalizeStoragePath(path);\n\n // Guard conditions\n if (overwrite) {\n throw Error(\"Group overwriting not implemented yet :(\");\n } else if (await containsArray(store, path)) {\n throw new ContainsArrayError(path);\n } else if (await containsGroup(store, path)) {\n throw new ContainsGroupError(path);\n }\n\n const metadata: ZarrGroupMetadata = { zarr_format: 2 };\n const key = pathToPrefix(path) + GROUP_META_KEY;\n await store.setItem(key, JSON.stringify(metadata));\n}\n/**\n * Initialize a group store. Note that this is a low-level function and there should be no\n * need to call this directly from user code.\n */\nexport async function initGroup(store: Store, path: string | null = null, chunkStore: null | Store = null, overwrite = false) {\n path = normalizeStoragePath(path);\n await requireParentGroup(store, path, chunkStore, overwrite);\n await initGroupMetadata(store, path, overwrite);\n}\n\nasync function initArrayMetadata(\n store: Store,\n shape: number | number[],\n chunks: ChunksArgument,\n dtype: DtypeString,\n path: string,\n compressor: null | CompressorConfig,\n fillValue: FillType,\n order: Order,\n overwrite: boolean,\n chunkStore: null | Store,\n filters: null | Filter[]\n) {\n // Guard conditions\n if (overwrite) {\n throw Error(\"Array overwriting not implemented yet :(\");\n } else if (await containsArray(store, path)) {\n throw new ContainsArrayError(path);\n } else if (await containsGroup(store, path)) {\n throw new ContainsGroupError(path);\n }\n\n // Normalize metadata, does type checking too.\n dtype = normalizeDtype(dtype);\n shape = normalizeShape(shape);\n chunks = normalizeChunks(chunks, shape);\n order = normalizeOrder(order);\n fillValue = normalizeFillValue(fillValue);\n\n if (filters !== null && filters.length > 0) {\n throw Error(\"Filters are not supported yet\");\n }\n\n let serializedFillValue: FillTypeSerialized = fillValue;\n\n if (typeof fillValue === \"number\") {\n if (Number.isNaN(fillValue)) serializedFillValue = \"NaN\";\n if (Number.POSITIVE_INFINITY === fillValue) serializedFillValue = \"Infinity\";\n if (Number.NEGATIVE_INFINITY === fillValue) serializedFillValue = \"-Infinity\";\n }\n\n filters = null;\n\n const metadata: ZarrArrayMetadata = {\n zarr_format: 2,\n\n shape: shape,\n chunks: chunks as number[],\n\n dtype: dtype,\n fill_value: serializedFillValue,\n order: order,\n compressor: compressor,\n filters: filters,\n };\n const metaKey = pathToPrefix(path) + ARRAY_META_KEY;\n await store.setItem(metaKey, JSON.stringify(metadata));\n}\n\n/**\n * \n * Initialize an array store with the given configuration. Note that this is a low-level\n * function and there should be no need to call this directly from user code\n */\nexport async function initArray(\n store: Store,\n shape: number | number[],\n chunks: ChunksArgument,\n dtype: DtypeString,\n path: string | null = null,\n compressor: null | CompressorConfig = null,\n fillValue: FillType = null,\n order: Order = \"C\",\n overwrite = false,\n chunkStore: null | Store = null,\n filters: null | Filter[] = null\n) {\n\n path = normalizeStoragePath(path);\n await requireParentGroup(store, path, chunkStore, overwrite);\n await initArrayMetadata(store, shape, chunks, dtype, path, compressor, fillValue, order, overwrite, chunkStore, filters);\n}\n","export const ARRAY_META_KEY = \".zarray\";\nexport const GROUP_META_KEY = \".zgroup\";\nexport const ATTRS_META_KEY = \".zattrs\";\n","import { ZarrMetadataType, UserAttributes } from './types';\nimport { ValidStoreType } from './storage/types';\nimport { IS_NODE } from './util';\n\nexport function parseMetadata(\n s: ValidStoreType | ZarrMetadataType\n): ZarrMetadataType | UserAttributes {\n // Here we allow that a store may return an already-parsed metadata object,\n // or a string of JSON that we will parse here. We allow for an already-parsed\n // object to accommodate a consolidated metadata store, where all the metadata for\n // all groups and arrays will already have been parsed from JSON.\n if (typeof s !== 'string') {\n // tslint:disable-next-line: strict-type-predicates\n if (IS_NODE && Buffer.isBuffer(s)) {\n return JSON.parse(s.toString());\n } else if (s instanceof ArrayBuffer) {\n const utf8Decoder = new TextDecoder();\n const bytes = new Uint8Array(s);\n return JSON.parse(utf8Decoder.decode(bytes));\n } else {\n return s;\n }\n }\n return JSON.parse(s);\n}\n","import { createProxy, AsyncMutableMapping, AsyncMutableMappingProxy } from './mutableMapping';\nimport { Store } from './storage/types';\nimport { parseMetadata } from './metadata';\nimport { UserAttributes } from './types';\nimport { PermissionError } from './errors';\n\n/**\n * Class providing access to user attributes on an array or group. Should not be\n * instantiated directly, will be available via the `.attrs` property of an array or\n * group.\n */\nexport class Attributes<M extends UserAttributes> implements AsyncMutableMapping<any> {\n store: Store;\n key: string;\n readOnly: boolean;\n cache: boolean;\n private cachedValue: M | null;\n\n constructor(store: Store, key: string, readOnly: boolean, cache = true) {\n this.store = store;\n this.key = key;\n this.readOnly = readOnly;\n this.cache = cache;\n this.cachedValue = null;\n }\n\n /**\n * Retrieve all attributes as a JSON object.\n */\n public async asObject() {\n if (this.cache && this.cachedValue !== null) {\n return this.cachedValue;\n }\n const o = await this.getNoSync();\n if (this.cache) {\n this.cachedValue = o;\n }\n return o;\n }\n\n private async getNoSync(): Promise<M> {\n try {\n const data = await this.store.getItem(this.key);\n // TODO fix typing?\n return parseMetadata(data) as M;\n } catch (error) {\n return {} as M;\n }\n }\n\n private async setNoSync(key: string, value: any) {\n const d = await this.getNoSync();\n (d as any)[key] = value;\n await this.putNoSync(d);\n return true;\n }\n\n private async putNoSync(m: M) {\n await this.store.setItem(this.key, JSON.stringify(m));\n if (this.cache) {\n this.cachedValue = m;\n }\n }\n\n private async delNoSync(key: string): Promise<boolean> {\n const d = await this.getNoSync();\n delete (d as any)[key];\n await this.putNoSync(d);\n return true;\n }\n\n /**\n * Overwrite all attributes with the provided object in a single operation\n */\n async put(d: M) {\n if (this.readOnly) {\n throw new PermissionError(\"attributes are read-only\");\n }\n return this.putNoSync(d);\n }\n\n async setItem(key: string, value: any): Promise<boolean> {\n if (this.readOnly) {\n throw new PermissionError(\"attributes are read-only\");\n }\n return this.setNoSync(key, value);\n }\n\n async getItem(key: string) {\n return ((await this.asObject()) as any)[key];\n }\n\n async deleteItem(key: string) {\n if (this.readOnly) {\n throw new PermissionError(\"attributes are read-only\");\n }\n return this.delNoSync(key);\n }\n\n async containsItem(key: string) {\n return ((await this.asObject()) as any)[key] !== undefined;\n }\n\n proxy(): AsyncMutableMappingProxy<any> {\n return createProxy(this);\n }\n}","import { DtypeString } from '../types';\nimport { ValueError } from '../errors';\n\nexport type NestedArrayData = TypedArray | NDNestedArrayData;\nexport type NDNestedArrayData =\n | TypedArray[]\n | TypedArray[][]\n | TypedArray[][][]\n | TypedArray[][][][]\n | TypedArray[][][][][]\n | TypedArray[][][][][][];\n\nexport type TypedArray =\n | Uint8Array\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array\n | Float64Array;\n\n// ArrayLike<any> & {\n// BYTES_PER_ELEMENT: number;\n// set(array: ArrayLike<number>, offset?: number): void;\n// slice(start?: number, end?: number): TypedArray;\n// subarray(start?: number, end?: number): TypedArray;\n// buffer: Buffer | ArrayBuffer;\n// constructor: TypedArrayConstructor<TypedArray>;\n// };\nexport type TypedArrayConstructor<TypedArray> = {\n new(): TypedArray;\n // tslint:disable-next-line: unified-signatures\n new(size: number): TypedArray;\n // tslint:disable-next-line: unified-signatures\n new(buffer: ArrayBuffer): TypedArray;\n BYTES_PER_ELEMENT: number;\n};\n\nexport const DTYPE_TYPEDARRAY_MAPPING: { [A in DtypeString]: TypedArrayConstructor<TypedArray> } = {\n '|b': Int8Array,\n '|B': Uint8Array,\n '|u1': Uint8Array,\n '|i1': Int8Array,\n '<b': Int8Array,\n '<B': Uint8Array,\n '<u1': Uint8Array,\n '<i1': Int8Array,\n '<u2': Uint16Array,\n '<i2': Int16Array,\n '<u4': Uint32Array,\n '<i4': Int32Array,\n '<f4': Float32Array,\n '<f8': Float64Array,\n '>b': Int8Array,\n '>B': Uint8Array,\n '>u1': Uint8Array,\n '>i1': Int8Array,\n '>u2': Uint16Array,\n '>i2': Int16Array,\n '>u4': Uint32Array,\n '>i4': Int32Array,\n '>f4': Float32Array,\n '>f8': Float64Array\n};\n\n/*\n * Called by NestedArray and RawArray constructors only.\n * We byte-swap the buffer of a store after decoding\n * since TypedArray views are little endian only.\n *\n * This means NestedArrays and RawArrays will always be little endian,\n * unless a numpy-like library comes around and can handle endianess\n * for buffer views.\n */\nexport function getTypedArrayDtypeString(t: TypedArray): DtypeString {\n // Favour the types below instead of small and big B\n if (t instanceof Uint8Array) return '|u1';\n if (t instanceof Int8Array) return '|i1';\n if (t instanceof Uint16Array) return '<u2';\n if (t instanceof Int16Array) return '<i2';\n if (t instanceof Uint32Array) return '<u4';\n if (t instanceof Int32Array) return '<i4';\n if (t instanceof Float32Array) return '<f4';\n if (t instanceof Float64Array) return '<f8';\n throw new ValueError('Mapping for TypedArray to Dtypestring not known');\n}\n","import { ArraySelection, SliceIndices } from '../core/types';\nimport { ValueError } from '../errors';\nimport { TypedArray, TypedArrayConstructor, NestedArrayData, NDNestedArrayData } from './types';\nimport { normalizeArraySelection, selectionToSliceIndices } from '../core/indexing';\n\n/**\n * Digs down into the dimensions of given array to find the TypedArray and returns its constructor.\n * Better to use sparingly.\n */\nexport function getNestedArrayConstructor<T extends TypedArray>(arr: any): TypedArrayConstructor<T> {\n // TODO fix typing\n // tslint:disable-next-line: strict-type-predicates\n if ((arr as TypedArray).byteLength !== undefined) {\n return (arr).constructor;\n }\n return getNestedArrayConstructor(arr[0]);\n}\n\n/**\n * Returns both the slice result and new output shape\n * @param arr NestedArray to slice\n * @param shape The shape of the NestedArray\n * @param selection\n */\nexport function sliceNestedArray<T extends TypedArray>(arr: NestedArrayData, shape: number[], selection: number | ArraySelection): [NestedArrayData | number, number[]] {\n // This translates \"...\", \":\", null into a list of slices or integer selections\n const normalizedSelection = normalizeArraySelection(selection, shape);\n const [sliceIndices, outShape] = selectionToSliceIndices(normalizedSelection, shape);\n const outArray = _sliceNestedArray(arr, shape, sliceIndices);\n return [outArray, outShape];\n}\n\nfunction _sliceNestedArray<T extends TypedArray>(arr: NestedArrayData, shape: number[], selection: (SliceIndices | number)[]): NestedArrayData | number {\n const currentSlice = selection[0];\n\n // Is this necessary?\n // // This is possible when a slice list is passed shorter than the amount of dimensions\n // // tslint:disable-next-line: strict-type-predicates\n // if (currentSlice === undefined) {\n // return arr.slice();\n // }\n\n // When a number is passed that dimension is squeezed\n if (typeof currentSlice === \"number\") {\n // Assume already normalized integer selection here.\n if (shape.length === 1) {\n return arr[currentSlice];\n } else {\n return _sliceNestedArray(arr[currentSlice] as NestedArrayData, shape.slice(1), selection.slice(1));\n }\n }\n const [from, to, step, outputSize] = currentSlice;\n\n if (outputSize === 0) {\n return new (getNestedArrayConstructor(arr))(0);\n }\n\n if (shape.length === 1) {\n if (step === 1) {\n return (arr as TypedArray).slice(from, to);\n }\n\n const newArrData = new (arr.constructor as TypedArrayConstructor<T>)(outputSize);\n for (let i = 0; i < outputSize; i++) {\n newArrData[i] = (arr as TypedArray)[from + i * step];\n }\n return newArrData;\n }\n\n let newArr = new Array(outputSize);\n\n for (let i = 0; i < outputSize; i++) {\n newArr[i] = _sliceNestedArray(arr[from + i * step] as NestedArrayData, shape.slice(1), selection.slice(1));\n }\n\n // This is necessary to ensure that the return value is a NestedArray if the last dimension is squeezed\n // e.g. shape [2,1] with slice [:, 0] would otherwise result in a list of numbers instead of a valid NestedArray\n if (outputSize > 0 && typeof newArr[0] === \"number\") {\n const typedArrayConstructor = (arr[0] as TypedArray).constructor;\n newArr = (typedArrayConstructor as any).from(newArr);\n }\n\n return newArr;\n}\n\n\n\n\nexport function setNestedArrayToScalar<T extends TypedArray>(dstArr: NestedArrayData, value: number, destShape: number[], selection: number | ArraySelection) {\n // This translates \"...\", \":\", null, etc into a list of slices.\n const normalizedSelection = normalizeArraySelection(selection, destShape, true);\n\n // Above we force the results to be SliceIndicesIndices only, without integer selections making this cast is safe.\n const [sliceIndices, _outShape] = selectionToSliceIndices(normalizedSelection, destShape) as [SliceIndices[], number[]];\n _setNestedArrayToScalar(dstArr, value, destShape, sliceIndices);\n}\n\nexport function setNestedArray<T extends TypedArray>(dstArr: NestedArrayData, sourceArr: NestedArrayData, destShape: number[], sourceShape: number[], selection: number | ArraySelection) {\n // This translates \"...\", \":\", null, etc into a list of slices.\n const normalizedSelection = normalizeArraySelection(selection, destShape, false);\n const [sliceIndices, outShape] = selectionToSliceIndices(normalizedSelection, destShape);\n\n // TODO: replace with non stringify equality check\n if (JSON.stringify(outShape) !== JSON.stringify(sourceShape)) {\n throw new ValueError(`Shape mismatch in target and source NestedArray: ${outShape} and ${sourceShape}`);\n }\n\n _setNestedArray(dstArr, sourceArr, destShape, sliceIndices);\n}\n\n\nfunction _setNestedArray<T extends TypedArray>(dstArr: NestedArrayData, sourceArr: NestedArrayData | number, shape: number[], selection: (SliceIndices | number)[]) {\n\n const currentSlice = selection[0];\n\n if (typeof sourceArr === \"number\") {\n _setNestedArrayToScalar(dstArr, sourceArr, shape, selection.map(x => typeof x === \"number\" ? [x, x + 1, 1, 1] : x));\n return;\n }\n\n // This dimension is squeezed.\n if (typeof currentSlice === \"number\") {\n _setNestedArray((dstArr as NDNestedArrayData)[currentSlice], sourceArr, shape.slice(1), selection.slice(1));\n return;\n }\n\n const [from, _to, step, outputSize] = currentSlice;\n\n if (shape.length === 1) {\n if (step === 1) {\n (dstArr as TypedArray).set(sourceArr as TypedArray, from);\n } else {\n for (let i = 0; i < outputSize; i++) {\n dstArr[from + i * step] = (sourceArr)[i];\n }\n }\n return;\n }\n\n for (let i = 0; i < outputSize; i++) {\n _setNestedArray((dstArr as NDNestedArrayData)[from + i * step], (sourceArr as NDNestedArrayData)[i], shape.slice(1), selection.slice(1));\n }\n}\n\nfunction _setNestedArrayToScalar<T extends TypedArray>(dstArr: NestedArrayData, value: number, shape: number[], selection: SliceIndices[]) {\n const currentSlice = selection[0];\n\n const [from, to, step, outputSize] = currentSlice;\n\n if (shape.length === 1) {\n if (step === 1) {\n (dstArr as TypedArray).fill(value, from, to);\n } else {\n for (let i = 0; i < outputSize; i++) {\n dstArr[from + i * step] = value;\n }\n }\n return;\n }\n\n for (let i = 0; i < outputSize; i++) {\n _setNestedArrayToScalar((dstArr as NDNestedArrayData)[from + i * step], value, shape.slice(1), selection.slice(1));\n }\n}\n\nexport function flattenNestedArray(arr: NestedArrayData, shape: number[], constr?: TypedArrayConstructor<TypedArray>): TypedArray {\n if (constr === undefined) {\n constr = getNestedArrayConstructor(arr);\n }\n const size = shape.reduce((x, y) => x * y, 1);\n const outArr = new constr(size);\n\n _flattenNestedArray(arr, shape, outArr, 0);\n\n return outArr;\n}\n\nfunction _flattenNestedArray(arr: NestedArrayData, shape: number[], outArr: TypedArray, offset: number) {\n if (shape.length === 1) {\n // This is only ever reached if called with rank 1 shape, never reached through recursion.\n // We just slice set the array directly from one level above to save some function calls.\n outArr.set((arr as TypedArray), offset);\n return;\n }\n\n if (shape.length === 2) {\n for (let i = 0; i < shape[0]; i++) {\n outArr.set((arr as TypedArray[])[i], offset + shape[1] * i);\n }\n return arr;\n }\n\n const nextShape = shape.slice(1);\n // Small optimization possible here: this can be precomputed for different levels of depth and passed on.\n const mult = nextShape.reduce((x, y) => x * y, 1);\n\n for (let i = 0; i < shape[0]; i++) {\n _flattenNestedArray((arr as NDNestedArrayData)[i], nextShape, outArr, offset + mult * i);\n }\n return arr;\n}\n","import { DtypeString } from '../types';\nimport { NestedArrayData, TypedArray, TypedArrayConstructor, DTYPE_TYPEDARRAY_MAPPING, getTypedArrayDtypeString } from './types';\nimport { ArraySelection, Slice } from '../core/types';\nimport { slice } from '../core/slice';\nimport { ValueError } from '../errors';\nimport { normalizeShape, IS_NODE } from '../util';\nimport { setNestedArray, setNestedArrayToScalar, flattenNestedArray, sliceNestedArray } from './ops';\n\nexport class NestedArray<T extends TypedArray> {\n dtype: DtypeString;\n shape: number[];\n data: NestedArrayData;\n\n constructor(data: TypedArray, shape?: number | number[], dtype?: DtypeString)\n constructor(data: Buffer | ArrayBuffer | NestedArrayData | null, shape: number | number[], dtype: DtypeString)\n constructor(data: Buffer | ArrayBuffer | NestedArrayData | TypedArray | null, shape?: number | number[], dtype?: DtypeString) {\n const dataIsTypedArray = data !== null && !!(data as TypedArray).BYTES_PER_ELEMENT;\n\n if (shape === undefined) {\n if (!dataIsTypedArray) {\n throw new ValueError(\"Shape argument is required unless you pass in a TypedArray\");\n }\n shape = [(data as TypedArray).length];\n }\n\n if (dtype === undefined) {\n if (!dataIsTypedArray) {\n throw new ValueError(\"Dtype argument is required unless you pass in a TypedArray\");\n }\n dtype = getTypedArrayDtypeString(data as TypedArray);\n }\n\n shape = normalizeShape(shape);\n this.shape = shape;\n this.dtype = dtype;\n\n if (dataIsTypedArray && shape.length !== 1) {\n data = (data as TypedArray).buffer;\n }\n\n // Zero dimension array.. they are a bit weirdly represented now, they will only ever occur internally\n if (this.shape.length === 0) {\n this.data = new DTYPE_TYPEDARRAY_MAPPING[dtype](1);\n }\n else if (\n // tslint:disable-next-line: strict-type-predicates\n (IS_NODE && Buffer.isBuffer(data))\n || data instanceof ArrayBuffer\n || data === null\n || data.toString().startsWith(\"[object ArrayBuffer]\") // Necessary for Node.js for some reason..\n ) {\n // Create from ArrayBuffer or Buffer\n const numShapeElements = shape.reduce((x, y) => x * y, 1);\n\n if (data === null) {\n data = new ArrayBuffer(numShapeElements * parseInt(dtype[dtype.length - 1], 10));\n }\n\n const numDataElements = (data as ArrayBuffer).byteLength / parseInt(dtype[dtype.length - 1], 10);\n if (numShapeElements !== numDataElements) {\n throw new Error(`Buffer has ${numDataElements} of dtype ${dtype}, shape is too large or small ${shape} (flat=${numShapeElements})`);\n }\n const typeConstructor: TypedArrayConstructor<TypedArray> = DTYPE_TYPEDARRAY_MAPPING[dtype];\n this.data = createNestedArray((data as ArrayBuffer), typeConstructor, shape);\n } else {\n this.data = data;\n }\n }\n\n public get(selection: Slice | \":\" | \"...\" | null | (Slice | null | \":\" | \"...\")[]): NestedArray<T>;\n public get(selection: ArraySelection): NestedArray<T> | number;\n public get(selection: ArraySelection): NestedArray<T> | number {\n const [sliceResult, outShape] = sliceNestedArray(this.data, this.shape, selection);\n if (outShape.length === 0) {\n return sliceResult as number;\n } else {\n return new NestedArray(sliceResult as NestedArrayData, outShape, this.dtype);\n }\n }\n\n public set(selection: ArraySelection = null, value: NestedArray<T> | number) {\n if (selection === null) {\n selection = [slice(null)];\n }\n if (typeof value === \"number\") {\n if (this.shape.length === 0) {\n // Zero dimension array..\n this.data[0] = value;\n } else {\n setNestedArrayToScalar(this.data, value, this.shape, selection);\n }\n } else {\n setNestedArray(this.data, value.data, this.shape, value.shape, selection);\n }\n }\n\n public flatten(): T {\n if (this.shape.length === 1) {\n return this.data as T;\n }\n return flattenNestedArray(this.data, this.shape, DTYPE_TYPEDARRAY_MAPPING[this.dtype]) as T;\n }\n\n /**\n * Currently only supports a single integer as the size, TODO: support start, stop, step.\n */\n public static arange(size: number, dtype: DtypeString = \"<i4\"): NestedArray<TypedArray> {\n const constr = DTYPE_TYPEDARRAY_MAPPING[dtype];\n const data = rangeTypedArray([size], constr);\n return new NestedArray(data, [size], dtype);\n }\n}\n\n\n\n/**\n * Creates a TypedArray with values 0 through N where N is the product of the shape.\n */\nexport function rangeTypedArray<T extends TypedArray>(shape: number[], tContructor: TypedArrayConstructor<T>) {\n const size = shape.reduce((x, y) => x * y, 1);\n const data = new tContructor(size);\n data.set([...Array(size).keys()]); // Sets range 0,1,2,3,4,5\n return data;\n}\n\n/**\n * Creates multi-dimensional (rank > 1) array given input data and shape recursively.\n * What it does is create a Array<Array<...<Array<Uint8Array>>> or some other typed array.\n * This is for internal use, there should be no need to call this from user code.\n * @param data a buffer containing the data for this array.\n * @param t constructor for the datatype of choice\n * @param shape list of numbers describing the size in each dimension\n * @param offset in bytes for this dimension\n */\nexport function createNestedArray<T extends TypedArray>(data: Buffer | ArrayBuffer, t: TypedArrayConstructor<T>, shape: number[], offset = 0): NestedArrayData {\n if (shape.length === 1) {\n // This is only ever reached if called with rank 1 shape, never reached through recursion.\n // We just slice set the array directly from one level above to save some function calls.\n return new t(data.slice(offset, offset + shape[0] * t.BYTES_PER_ELEMENT));\n }\n\n const arr = new Array<any>(shape[0]);\n if (shape.length === 2) {\n for (let i = 0; i < shape[0]; i++) {\n arr[i] = new t(data.slice(offset + shape[1] * i * t.BYTES_PER_ELEMENT, offset + shape[1] * (i + 1) * t.BYTES_PER_ELEMENT));\n }\n return arr;\n }\n\n const nextShape = shape.slice(1);\n // Small optimization possible here: this can be precomputed for different levels of depth and passed on.\n const mult = nextShape.reduce((x, y) => x * y, 1);\n\n for (let i = 0; i < shape[0]; i++) {\n arr[i] = createNestedArray(data, t, nextShape, offset + mult * i * t.BYTES_PER_ELEMENT);\n }\n return arr;\n}\n","import { ArraySelection, SliceIndices } from '../core/types';\nimport { normalizeArraySelection, selectionToSliceIndices } from '../core/indexing';\nimport { ValueError } from '../errors';\nimport { TypedArray } from '../nestedArray/types';\n\nexport function setRawArrayToScalar(dstArr: TypedArray, dstStrides: number[], dstShape: number[], dstSelection: number | ArraySelection, value: number) {\n // This translates \"...\", \":\", null, etc into a list of slices.\n const normalizedSelection = normalizeArraySelection(dstSelection, dstShape, true);\n const [sliceIndices] = selectionToSliceIndices(normalizedSelection, dstShape);\n // Above we force the results to be SliceIndicesIndices only, without integer selections making this cast is safe.\n _setRawArrayToScalar(value, dstArr, dstStrides, sliceIndices as SliceIndices[]);\n}\n\nexport function setRawArray(dstArr: TypedArray, dstStrides: number[], dstShape: number[], dstSelection: number | ArraySelection, sourceArr: TypedArray, sourceStrides: number[], sourceShape: number[]): void {\n // This translates \"...\", \":\", null, etc into a list of slices.\n const normalizedDstSelection = normalizeArraySelection(dstSelection, dstShape, false);\n const [dstSliceIndices, outShape] = selectionToSliceIndices(normalizedDstSelection, dstShape);\n\n // TODO: replace with non stringify equality check\n if (JSON.stringify(outShape) !== JSON.stringify(sourceShape)) {\n throw new ValueError(`Shape mismatch in target and source RawArray: ${outShape} and ${sourceShape}`);\n }\n\n _setRawArray(dstArr, dstStrides, dstSliceIndices, sourceArr, sourceStrides);\n}\n\nexport function setRawArrayFromChunkItem(dstArr: TypedArray, dstStrides: number[], dstShape: number[], dstSelection: number | ArraySelection, sourceArr: TypedArray, sourceStrides: number[], sourceShape: number[], sourceSelection: number | ArraySelection) {\n // This translates \"...\", \":\", null, etc into a list of slices.\n const normalizedDstSelection = normalizeArraySelection(dstSelection, dstShape, true);\n // Above we force the results to be dstSliceIndices only, without integer selections making this cast is safe.\n const [dstSliceIndices] = selectionToSliceIndices(normalizedDstSelection, dstShape);\n\n const normalizedSourceSelection = normalizeArraySelection(sourceSelection, sourceShape, false);\n const [sourceSliceIndicies] = selectionToSliceIndices(normalizedSourceSelection, sourceShape);\n\n // TODO check to ensure chunk and dest selection are same shape?\n // As is, this only gets called in ZarrArray.getRaw where this condition should be ensured, and check might hinder performance.\n\n _setRawArrayFromChunkItem(dstArr, dstStrides, dstSliceIndices as SliceIndices[], sourceArr, sourceStrides, sourceSliceIndicies);\n}\n\nfunction _setRawArrayToScalar(value: number, dstArr: TypedArray, dstStrides: number[], dstSliceIndices: SliceIndices[]) {\n const [currentDstSlice, ...nextDstSliceIndices] = dstSliceIndices;\n const [currentDstStride, ...nextDstStrides] = dstStrides;\n\n const [from, _to, step, outputSize] = currentDstSlice;\n\n if (dstStrides.length === 1) {\n if (step === 1 && currentDstStride === 1) {\n dstArr.fill(value, from, from + outputSize);\n } else {\n for (let i = 0; i < outputSize; i++) {\n dstArr[currentDstStride * (from + (step * i))] = value;\n }\n }\n return;\n }\n\n for (let i = 0; i < outputSize; i++) {\n _setRawArrayToScalar(\n value,\n dstArr.subarray(currentDstStride * (from + (step * i))),\n nextDstStrides,\n nextDstSliceIndices,\n );\n }\n}\n\nfunction _setRawArray(dstArr: TypedArray, dstStrides: number[], dstSliceIndices: (number | SliceIndices)[], sourceArr: TypedArray, sourceStrides: number[]) {\n if (dstSliceIndices.length === 0) {\n dstArr.set(sourceArr);\n return;\n }\n\n const [currentDstSlice, ...nextDstSliceIndices] = dstSliceIndices;\n const [currentDstStride, ...nextDstStrides] = dstStrides;\n\n // This dimension is squeezed.\n if (typeof currentDstSlice === \"number\") {\n _setRawArray(\n dstArr.subarray(currentDstSlice * currentDstStride),\n nextDstStrides,\n nextDstSliceIndices,\n sourceArr,\n sourceStrides\n );\n return;\n }\n\n const [currentSourceStride, ...nextSourceStrides] = sourceStrides;\n const [from, _to, step, outputSize] = currentDstSlice;\n\n if (dstStrides.length === 1) {\n if (step === 1 && currentDstStride === 1 && currentSourceStride === 1) {\n dstArr.set(sourceArr.subarray(0, outputSize), from);\n } else {\n for (let i = 0; i < outputSize; i++) {\n dstArr[currentDstStride * (from + (step * i))] = sourceArr[currentSourceStride * i];\n }\n }\n return;\n }\n\n for (let i = 0; i < outputSize; i++) {\n // Apply strides as above, using both destination and source-specific strides.\n _setRawArray(\n dstArr.subarray(currentDstStride * (from + (i * step))),\n nextDstStrides,\n nextDstSliceIndices,\n sourceArr.subarray(currentSourceStride * i),\n nextSourceStrides\n );\n }\n}\n\nfunction _setRawArrayFromChunkItem(dstArr: TypedArray, dstStrides: number[], dstSliceIndices: SliceIndices[], sourceArr: TypedArray, sourceStrides: number[], sourceSliceIndices: (SliceIndices | number)[]) {\n if (sourceSliceIndices.length === 0) {\n // Case when last source dimension is squeezed\n dstArr.set(sourceArr.subarray(0, dstArr.length));\n return;\n }\n\n // Get current indicies and strides for both destination and source arrays\n const [currentDstSlice, ...nextDstSliceIndices] = dstSliceIndices;\n const [currentSourceSlice, ...nextSourceSliceIndices] = sourceSliceIndices;\n\n const [currentDstStride, ...nextDstStrides] = dstStrides;\n const [currentSourceStride, ...nextSourceStrides] = sourceStrides;\n\n // This source dimension is squeezed\n if (typeof currentSourceSlice === \"number\") {\n /*\n Sets dimension offset for squeezed dimension.\n\n Ex. if 0th dimension is squeezed to 2nd index (numpy : arr[2,i])\n\n sourceArr[stride[0]* 2 + i] --> sourceArr.subarray(stride[0] * 2)[i] (sourceArr[i] in next call)\n\n Thus, subsequent squeezed dims are appended to the source offset.\n */\n _setRawArrayFromChunkItem(\n // Don't update destination offset/slices, just source\n dstArr, dstStrides, dstSliceIndices,\n sourceArr.subarray(currentSourceStride * currentSourceSlice),\n nextSourceStrides,\n nextSourceSliceIndices,\n );\n return;\n }\n\n const [from, _to, step, outputSize] = currentDstSlice; // just need start and size\n const [sfrom, _sto, sstep, _soutputSize] = currentSourceSlice; // Will always be subset of dst, so don't need output size just start\n\n if (dstStrides.length === 1 && sourceStrides.length === 1) {\n if (step === 1 && currentDstStride === 1 && sstep === 1 && currentSourceStride === 1) {\n dstArr.set(sourceArr.subarray(sfrom, sfrom + outputSize), from);\n } else {\n for (let i = 0; i < outputSize; i++) {\n dstArr[currentDstStride * (from + (step * i))] = sourceArr[currentSourceStride * (sfrom + (sstep * i))];\n }\n }\n return;\n }\n\n for (let i = 0; i < outputSize; i++) {\n // Apply strides as above, using both destination and source-specific strides.\n _setRawArrayFromChunkItem(\n dstArr.subarray(currentDstStride * (from + (i * step))),\n nextDstStrides,\n nextDstSliceIndices,\n sourceArr.subarray(currentSourceStride * (sfrom + (i * sstep))),\n nextSourceStrides,\n nextSourceSliceIndices,\n );\n }\n}\n","import { DtypeString } from '../types';\nimport { ArraySelection } from '../core/types';\nimport { slice } from '../core/slice';\nimport { ValueError } from '../errors';\nimport { normalizeShape, IS_NODE, getStrides } from '../util';\nimport { TypedArray, DTYPE_TYPEDARRAY_MAPPING, getTypedArrayDtypeString, TypedArrayConstructor } from '../nestedArray/types';\nimport { setRawArrayFromChunkItem, setRawArrayToScalar, setRawArray } from './ops';\n\nexport class RawArray {\n dtype: DtypeString;\n shape: number[];\n strides: number[];\n data: TypedArray;\n\n constructor(data: TypedArray, shape?: number | number[], dtype?: DtypeString, strides?: number[])\n constructor(data: Buffer | ArrayBuffer | null, shape?: number | number[], dtype?: DtypeString, strides?: number[])\n constructor(data: Buffer | ArrayBuffer | TypedArray | null, shape?: number | number[], dtype?: DtypeString, strides?: number[]) {\n const dataIsTypedArray = data !== null && !!(data as TypedArray).BYTES_PER_ELEMENT;\n\n if (shape === undefined) {\n if (!dataIsTypedArray) {\n throw new ValueError(\"Shape argument is required unless you pass in a TypedArray\");\n }\n shape = [(data as TypedArray).length];\n }\n shape = normalizeShape(shape);\n\n if (dtype === undefined) {\n if (!dataIsTypedArray) {\n throw new ValueError(\"Dtype argument is required unless you pass in a TypedArray\");\n }\n dtype = getTypedArrayDtypeString(data as TypedArray);\n }\n\n if (strides === undefined) {\n strides = getStrides(shape);\n }\n\n this.shape = shape;\n this.dtype = dtype;\n this.strides = strides;\n\n if (dataIsTypedArray && shape.length !== 1) {\n data = (data as TypedArray).buffer;\n }\n\n // Zero dimension array.. they are a bit weirdly represented now, they will only ever occur internally\n if (this.shape.length === 0) {\n this.data = new DTYPE_TYPEDARRAY_MAPPING[dtype](1);\n } else if (\n // tslint:disable-next-line: strict-type-predicates\n (IS_NODE && Buffer.isBuffer(data))\n || data instanceof ArrayBuffer\n || data === null\n || data.toString().startsWith(\"[object ArrayBuffer]\") // Necessary for Node.js for some reason..\n ) {\n // Create from ArrayBuffer or Buffer\n const numShapeElements = shape.reduce((x, y) => x * y, 1);\n\n if (data === null) {\n data = new ArrayBuffer(numShapeElements * parseInt(dtype[dtype.length - 1], 10));\n }\n\n const numDataElements = (data as ArrayBuffer).byteLength / parseInt(dtype[dtype.length - 1], 10);\n if (numShapeElements !== numDataElements) {\n throw new Error(`Buffer has ${numDataElements} of dtype ${dtype}, shape is too large or small ${shape} (flat=${numShapeElements})`);\n }\n const typeConstructor: TypedArrayConstructor<TypedArray> = DTYPE_TYPEDARRAY_MAPPING[dtype];\n this.data = new typeConstructor(data as ArrayBuffer);\n } else {\n this.data = data;\n }\n }\n\n public set(selection: ArraySelection, value: RawArray | number): void;\n public set(selection: ArraySelection, chunk: RawArray, chunkSelection: ArraySelection): void;\n public set(selection: ArraySelection = null, value: RawArray | number, chunkSelection?: ArraySelection) {\n if (selection === null) {\n selection = [slice(null)];\n }\n if (typeof value === \"number\") {\n if (this.shape.length === 0) {\n // Zero dimension array..\n this.data[0] = value;\n } else {\n setRawArrayToScalar(this.data, this.strides, this.shape, selection, value);\n }\n } else if (value instanceof RawArray && chunkSelection) {\n // Copy directly from decoded chunk to destination array\n setRawArrayFromChunkItem(this.data, this.strides, this.shape, selection, value.data, value.strides, value.shape, chunkSelection);\n } else {\n setRawArray(this.data, this.strides, this.shape, selection, value.data, value.strides, value.shape);\n }\n }\n}\n\n\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\nconst pFinally = require('p-finally');\n\nclass TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\nconst pTimeout = (promise, milliseconds, fallback) => new Promise((resolve, reject) => {\n\tif (typeof milliseconds !== 'number' || milliseconds < 0) {\n\t\tthrow new TypeError('Expected `milliseconds` to be a positive number');\n\t}\n\n\tif (milliseconds === Infinity) {\n\t\tresolve(promise);\n\t\treturn;\n\t}\n\n\tconst timer = setTimeout(() => {\n\t\tif (typeof fallback === 'function') {\n\t\t\ttry {\n\t\t\t\tresolve(fallback());\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst message = typeof fallback === 'string' ? fallback : `Promise timed out after ${milliseconds} milliseconds`;\n\t\tconst timeoutError = fallback instanceof Error ? fallback : new TimeoutError(message);\n\n\t\tif (typeof promise.cancel === 'function') {\n\t\t\tpromise.cancel();\n\t\t}\n\n\t\treject(timeoutError);\n\t}, milliseconds);\n\n\t// TODO: Use native `finally` keyword when targeting Node.js 10\n\tpFinally(\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\tpromise.then(resolve, reject),\n\t\t() => {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t);\n});\n\nmodule.exports = pTimeout;\n// TODO: Remove this for the next major release\nmodule.exports.default = pTimeout;\n\nmodule.exports.TimeoutError = TimeoutError;\n","'use strict';\nmodule.exports = (promise, onFinally) => {\n\tonFinally = onFinally || (() => {});\n\n\treturn promise.then(\n\t\tval => new Promise(resolve => {\n\t\t\tresolve(onFinally());\n\t\t}).then(() => val),\n\t\terr => new Promise(resolve => {\n\t\t\tresolve(onFinally());\n\t\t}).then(() => {\n\t\t\tthrow err;\n\t\t})\n\t);\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Port of lower_bound from http://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nfunction lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = (count / 2) | 0;\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\nexports.default = lowerBound;\n","import { ValidStoreType, AsyncStore } from './types';\nimport { IS_NODE, joinUrlParts } from '../util';\nimport { KeyError, HTTPError } from '../errors';\n\nenum HTTPMethod {\n HEAD = 'HEAD',\n GET = 'GET',\n PUT = 'PUT',\n}\n\nconst DEFAULT_METHODS = [HTTPMethod.HEAD, HTTPMethod.GET, HTTPMethod.PUT];\n\ninterface HTTPStoreOptions {\n fetchOptions?: RequestInit;\n supportedMethods?: HTTPMethod[];\n}\n\nexport class HTTPStore implements AsyncStore<ArrayBuffer> {\n listDir?: undefined;\n rmDir?: undefined;\n getSize?: undefined;\n rename?: undefined;\n\n public url: string;\n public fetchOptions: RequestInit;\n private supportedMethods: Set<HTTPMethod>;\n\n constructor(url: string, options: HTTPStoreOptions = {}) {\n this.url = url;\n const { fetchOptions = {}, supportedMethods = DEFAULT_METHODS } = options;\n this.fetchOptions = fetchOptions;\n this.supportedMethods = new Set(supportedMethods);\n }\n\n keys(): Promise<string[]> {\n throw new Error('Method not implemented.');\n }\n\n async getItem(item: string, opts?: RequestInit) {\n const url = joinUrlParts(this.url, item);\n const value = await fetch(url, { ...this.fetchOptions, ...opts });\n\n if (value.status === 404) {\n // Item is not found\n throw new KeyError(item);\n } else if (value.status !== 200) {\n throw new HTTPError(String(value.status));\n }\n\n // only decode if 200\n if (IS_NODE) {\n return Buffer.from(await value.arrayBuffer());\n } else {\n return value.arrayBuffer(); // Browser\n }\n }\n\n async setItem(item: string, value: ValidStoreType): Promise<boolean> {\n if (!this.supportedMethods.has(HTTPMethod.PUT)) {\n throw new Error('HTTP PUT no a supported method for store.');\n }\n const url = joinUrlParts(this.url, item);\n if (typeof value === 'string') {\n value = new TextEncoder().encode(value).buffer;\n }\n const set = await fetch(url, { ...this.fetchOptions, method: HTTPMethod.PUT, body: value });\n return set.status.toString()[0] === '2';\n }\n\n deleteItem(_item: string): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n\n async containsItem(item: string): Promise<boolean> {\n const url = joinUrlParts(this.url, item);\n // Just check headers if HEAD method supported\n const method = this.supportedMethods.has(HTTPMethod.HEAD) ? HTTPMethod.HEAD : HTTPMethod.GET;\n const value = await fetch(url, { ...this.fetchOptions, method });\n return value.status === 200;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst lower_bound_1 = require(\"./lower-bound\");\nclass PriorityQueue {\n constructor() {\n this._queue = [];\n }\n enqueue(run, options) {\n options = Object.assign({ priority: 0 }, options);\n const element = {\n priority: options.priority,\n run\n };\n if (this.size && this._queue[this.size - 1].priority >= options.priority) {\n this._queue.push(element);\n return;\n }\n const index = lower_bound_1.default(this._queue, element, (a, b) => b.priority - a.priority);\n this._queue.splice(index, 0, element);\n }\n dequeue() {\n const item = this._queue.shift();\n return item && item.run;\n }\n get size() {\n return this._queue.length;\n }\n}\nexports.default = PriorityQueue;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst EventEmitter = require(\"eventemitter3\");\nconst p_timeout_1 = require(\"p-timeout\");\nconst priority_queue_1 = require(\"./priority-queue\");\nconst empty = () => { };\nconst timeoutError = new p_timeout_1.default.TimeoutError();\n/**\nPromise queue with concurrency control.\n*/\nclass PQueue extends EventEmitter {\n constructor(options) {\n super();\n this._intervalCount = 0;\n this._intervalEnd = 0;\n this._pendingCount = 0;\n this._resolveEmpty = empty;\n this._resolveIdle = empty;\n // eslint-disable-next-line @typescript-eslint/no-object-literal-type-assertion\n options = Object.assign({ carryoverConcurrencyCount: false, intervalCap: Infinity, interval: 0, concurrency: Infinity, autoStart: true, queueClass: priority_queue_1.default }, options\n // TODO: Remove this `as`.\n );\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval}\\` (${typeof options.interval})`);\n }\n this._carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n this._isIntervalIgnored = options.intervalCap === Infinity || options.interval === 0;\n this._intervalCap = options.intervalCap;\n this._interval = options.interval;\n this._queue = new options.queueClass();\n this._queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n this._timeout = options.timeout;\n this._throwOnTimeout = options.throwOnTimeout === true;\n this._isPaused = options.autoStart === false;\n }\n get _doesIntervalAllowAnother() {\n return this._isIntervalIgnored || this._intervalCount < this._intervalCap;\n }\n get _doesConcurrentAllowAnother() {\n return this._pendingCount < this._concurrency;\n }\n _next() {\n this._pendingCount--;\n this._tryToStartAnother();\n }\n _resolvePromises() {\n this._resolveEmpty();\n this._resolveEmpty = empty;\n if (this._pendingCount === 0) {\n this._resolveIdle();\n this._resolveIdle = empty;\n }\n }\n _onResumeInterval() {\n this._onInterval();\n this._initializeIntervalIfNeeded();\n this._timeoutId = undefined;\n }\n _isIntervalPaused() {\n const now = Date.now();\n if (this._intervalId === undefined) {\n const delay = this._intervalEnd - now;\n if (delay < 0) {\n // Act as the interval was done\n // We don't need to resume it here because it will be resumed on line 160\n this._intervalCount = (this._carryoverConcurrencyCount) ? this._pendingCount : 0;\n }\n else {\n // Act as the interval is pending\n if (this._timeoutId === undefined) {\n this._timeoutId = setTimeout(() => {\n this._onResumeInterval();\n }, delay);\n }\n return true;\n }\n }\n return false;\n }\n _tryToStartAnother() {\n if (this._queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n if (this._intervalId) {\n clearInterval(this._intervalId);\n }\n this._intervalId = undefined;\n this._resolvePromises();\n return false;\n }\n if (!this._isPaused) {\n const canInitializeInterval = !this._isIntervalPaused();\n if (this._doesIntervalAllowAnother && this._doesConcurrentAllowAnother) {\n this.emit('active');\n this._queue.dequeue()();\n if (canInitializeInterval) {\n this._initializeIntervalIfNeeded();\n }\n return true;\n }\n }\n return false;\n }\n _initializeIntervalIfNeeded() {\n if (this._isIntervalIgnored || this._intervalId !== undefined) {\n return;\n }\n this._intervalId = setInterval(() => {\n this._onInterval();\n }, this._interval);\n this._intervalEnd = Date.now() + this._interval;\n }\n _onInterval() {\n if (this._intervalCount === 0 && this._pendingCount === 0 && this._intervalId) {\n clearInterval(this._intervalId);\n this._intervalId = undefined;\n }\n this._intervalCount = this._carryoverConcurrencyCount ? this._pendingCount : 0;\n this._processQueue();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n _processQueue() {\n // eslint-disable-next-line no-empty\n while (this._tryToStartAnother()) { }\n }\n get concurrency() {\n return this._concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this._concurrency = newConcurrency;\n this._processQueue();\n }\n /**\n Adds a sync or async task to the queue. Always returns a promise.\n */\n async add(fn, options = {}) {\n return new Promise((resolve, reject) => {\n const run = async () => {\n this._pendingCount++;\n this._intervalCount++;\n try {\n const operation = (this._timeout === undefined && options.timeout === undefined) ? fn() : p_timeout_1.default(Promise.resolve(fn()), (options.timeout === undefined ? this._timeout : options.timeout), () => {\n if (options.throwOnTimeout === undefined ? this._throwOnTimeout : options.throwOnTimeout) {\n reject(timeoutError);\n }\n return undefined;\n });\n resolve(await operation);\n }\n catch (error) {\n reject(error);\n }\n this._next();\n };\n this._queue.enqueue(run, options);\n this._tryToStartAnother();\n });\n }\n /**\n Same as `.add()`, but accepts an array of sync or async functions.\n\n @returns A promise that resolves when all functions are resolved.\n */\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this._isPaused) {\n return this;\n }\n this._isPaused = false;\n this._processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this._isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this._queue = new this._queueClass();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this._queue.size === 0) {\n return;\n }\n return new Promise(resolve => {\n const existingResolve = this._resolveEmpty;\n this._resolveEmpty = () => {\n existingResolve();\n resolve();\n };\n });\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this._pendingCount === 0 && this._queue.size === 0) {\n return;\n }\n return new Promise(resolve => {\n const existingResolve = this._resolveIdle;\n this._resolveIdle = () => {\n existingResolve();\n resolve();\n };\n });\n }\n /**\n Size of the queue.\n */\n get size() {\n return this._queue.size;\n }\n /**\n Number of pending promises.\n */\n get pending() {\n return this._pendingCount;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this._isPaused;\n }\n /**\n Set the timeout for future operations.\n */\n set timeout(milliseconds) {\n this._timeout = milliseconds;\n }\n get timeout() {\n return this._timeout;\n }\n}\nexports.default = PQueue;\n","import { Store, ValidStoreType } from \"../storage/types\";\n\nimport { containsGroup, pathToPrefix } from '../storage/index';\nimport { normalizeStoragePath, isTotalSlice, arrayEquals1D, byteSwap, byteSwapInplace } from '../util';\nimport { ZarrArrayMetadata, UserAttributes, FillType } from '../types';\nimport { ARRAY_META_KEY, ATTRS_META_KEY } from '../names';\nimport { Attributes } from \"../attributes\";\nimport { parseMetadata } from \"../metadata\";\nimport { ArraySelection, DimensionSelection, Indexer, Slice, ChunkProjection } from \"./types\";\nimport { BasicIndexer, isContiguousSelection, normalizeIntegerSelection } from './indexing';\nimport { NestedArray } from \"../nestedArray\";\nimport { RawArray } from \"../rawArray\";\nimport { TypedArray, DTYPE_TYPEDARRAY_MAPPING } from '../nestedArray/types';\nimport { ValueError, PermissionError, BoundsCheckError, ContainsGroupError, isKeyError } from '../errors';\nimport { getCodec } from \"../compression/registry\";\n\n\nimport type { Codec } from 'numcodecs';\nimport PQueue from 'p-queue';\n\nexport interface GetOptions {\n concurrencyLimit?: number;\n progressCallback?: (progressUpdate: {\n progress: number;\n queueSize: number;\n }) => void;\n}\n\nexport interface SetOptions {\n concurrencyLimit?: number;\n progressCallback?: (progressUpdate: {\n progress: number;\n queueSize: number;\n }) => void;\n}\n\nexport interface GetRawChunkOptions<O> {\n storeOptions: O;\n}\n\nexport class ZarrArray {\n\n public store: Store;\n private compressor: Promise<Codec> | null;\n\n private _chunkStore: Store | null;\n /**\n * A `Store` providing the underlying storage for array chunks.\n */\n public get chunkStore(): Store {\n if (this._chunkStore) {\n return this._chunkStore;\n }\n return this.store;\n }\n public path: string;\n public keyPrefix: string;\n public readOnly: boolean;\n public cacheMetadata: boolean;\n public cacheAttrs: boolean;\n public meta: ZarrArrayMetadata;\n public attrs: Attributes<UserAttributes>;\n\n /**\n * Array name following h5py convention.\n */\n public get name(): string | null {\n if (this.path.length > 0) {\n if (this.path[0] !== \"/\") {\n return \"/\" + this.path;\n }\n return this.path;\n }\n return null;\n }\n\n /**\n * Final component of name.\n */\n public get basename(): string | null {\n const name = this.name;\n if (name === null) {\n return null;\n }\n const parts = name.split(\"/\");\n return parts[parts.length - 1];\n }\n\n /**\n * \"A list of integers describing the length of each dimension of the array.\n */\n public get shape(): number[] {\n // this.refreshMetadata();\n return this.meta.shape;\n }\n\n /**\n * A list of integers describing the length of each dimension of a chunk of the array.\n */\n public get chunks(): number[] {\n return this.meta.chunks;\n }\n\n /**\n * Integer describing how many element a chunk contains\n */\n private get chunkSize(): number {\n return this.chunks.reduce((x, y) => x * y, 1);\n }\n\n /**\n * The NumPy data type.\n */\n public get dtype() {\n return this.meta.dtype;\n }\n\n /**\n * A value used for uninitialized portions of the array.\n */\n public get fillValue(): FillType {\n\n const fillTypeValue = this.meta.fill_value;\n\n // TODO extract into function\n if (fillTypeValue === \"NaN\") {\n return NaN;\n } else if (fillTypeValue === \"Infinity\") {\n return Infinity;\n } else if (fillTypeValue === \"-Infinity\") {\n return -Infinity;\n }\n\n return this.meta.fill_value as FillType;\n }\n\n /**\n * Number of dimensions.\n */\n public get nDims() {\n return this.meta.shape.length;\n }\n\n /**\n * The total number of elements in the array.\n */\n public get size() {\n // this.refreshMetadata()\n return this.meta.shape.reduce((x, y) => x * y, 1);\n }\n\n public get length() {\n return this.shape[0];\n }\n\n\n private get _chunkDataShape() {\n if (this.shape === []) {\n return [1];\n } else {\n const s = [];\n for (let i = 0; i < this.shape.length; i++) {\n s[i] = Math.ceil(this.shape[i] / this.chunks[i]);\n }\n return s;\n }\n }\n /**\n * A tuple of integers describing the number of chunks along each\n * dimension of the array.\n */\n public get chunkDataShape() {\n // this.refreshMetadata();\n return this._chunkDataShape;\n }\n\n /**\n * Total number of chunks.\n */\n public get numChunks() {\n // this.refreshMetadata();\n return this.chunkDataShape.reduce((x, y) => x * y, 1);\n }\n\n /**\n * Instantiate an array from an initialized store.\n * @param store Array store, already initialized.\n * @param path Storage path.\n * @param readOnly True if array should be protected against modification.\n * @param chunkStore Separate storage for chunks. If not provided, `store` will be used for storage of both chunks and metadata.\n * @param cacheMetadata If true (default), array configuration metadata will be cached for the lifetime of the object.\n * If false, array metadata will be reloaded prior to all data access and modification operations (may incur overhead depending on storage and data access pattern).\n * @param cacheAttrs If true (default), user attributes will be cached for attribute read operations.\n * If false, user attributes are reloaded from the store prior to all attribute read operations.\n */\n public static async create(store: Store, path: null | string = null, readOnly = false, chunkStore: Store | null = null, cacheMetadata = true, cacheAttrs = true) {\n const metadata = await this.loadMetadataForConstructor(store, path);\n return new ZarrArray(store, path, metadata as ZarrArrayMetadata, readOnly, chunkStore, cacheMetadata, cacheAttrs);\n }\n\n private static async loadMetadataForConstructor(store: Store, path: null | string) {\n try {\n path = normalizeStoragePath(path);\n const keyPrefix = pathToPrefix(path);\n const metaStoreValue = await store.getItem(keyPrefix + ARRAY_META_KEY);\n return parseMetadata(metaStoreValue);\n } catch (error) {\n if (await containsGroup(store, path)) {\n throw new ContainsGroupError(path ?? '');\n }\n throw new Error(\"Failed to load metadata for ZarrArray:\" + error.toString());\n }\n }\n\n /**\n * Instantiate an array from an initialized store.\n * @param store Array store, already initialized.\n * @param path Storage path.\n * @param metadata The initial value for the metadata\n * @param readOnly True if array should be protected against modification.\n * @param chunkStore Separate storage for chunks. If not provided, `store` will be used for storage of both chunks and metadata.\n * @param cacheMetadata If true (default), array configuration metadata will be cached for the lifetime of the object.\n * If false, array metadata will be reloaded prior to all data access and modification operations (may incur overhead depending on storage and data access pattern).\n * @param cacheAttrs If true (default), user attributes will be cached for attribute read operations.\n * If false, user attributes are reloaded from the store prior to all attribute read operations.\n */\n private constructor(store: Store, path: null | string = null, metadata: ZarrArrayMetadata, readOnly = false, chunkStore: Store | null = null, cacheMetadata = true, cacheAttrs = true) {\n // N.B., expect at this point store is fully initialized with all\n // configuration metadata fully specified and normalized\n\n this.store = store;\n this._chunkStore = chunkStore;\n this.path = normalizeStoragePath(path);\n this.keyPrefix = pathToPrefix(this.path);\n this.readOnly = readOnly;\n this.cacheMetadata = cacheMetadata;\n this.cacheAttrs = cacheAttrs;\n this.meta = metadata;\n if (this.meta.compressor !== null) {\n this.compressor = getCodec(this.meta.compressor);\n } else {\n this.compressor = null;\n }\n\n\n const attrKey = this.keyPrefix + ATTRS_META_KEY;\n this.attrs = new Attributes<UserAttributes>(this.store, attrKey, this.readOnly, cacheAttrs);\n }\n\n /**\n * (Re)load metadata from store\n */\n public async reloadMetadata() {\n const metaKey = this.keyPrefix + ARRAY_META_KEY;\n const metaStoreValue = this.store.getItem(metaKey);\n this.meta = parseMetadata(await metaStoreValue) as ZarrArrayMetadata;\n return this.meta;\n }\n\n private async refreshMetadata() {\n if (!this.cacheMetadata) {\n await this.reloadMetadata();\n }\n }\n\n public get(selection?: undefined | Slice | \":\" | \"...\" | null | (Slice | null | \":\" | \"...\")[], opts?: GetOptions): Promise<NestedArray<TypedArray> | number>;\n public get(selection?: ArraySelection, opts?: GetOptions): Promise<NestedArray<TypedArray> | number>;\n public get(selection: ArraySelection = null, opts: GetOptions = {}): Promise<NestedArray<TypedArray> | number> {\n return this.getBasicSelection(selection, false, opts);\n }\n\n public getRaw(selection?: undefined | Slice | \":\" | \"...\" | null | (Slice | null | \":\" | \"...\")[], opts?: GetOptions): Promise<RawArray | number>;\n public getRaw(selection?: ArraySelection, opts?: GetOptions): Promise<RawArray | number>;\n public getRaw(selection: ArraySelection = null, opts: GetOptions = {}): Promise<RawArray | number> {\n return this.getBasicSelection(selection, true, opts);\n }\n\n // asRaw = false\n public async getBasicSelection(selection: Slice | \":\" | \"...\" | null | (Slice | null | \":\" | \"...\")[], asRaw?: false, opts?: GetOptions): Promise<NestedArray<TypedArray> | number>;\n public async getBasicSelection(selection: ArraySelection, asRaw?: false, opts?: GetOptions): Promise<NestedArray<TypedArray> | number>;\n // asRaw = true\n public async getBasicSelection(selection: Slice | \":\" | \"...\" | null | (Slice | null | \":\" | \"...\")[], asRaw?: true, opts?: GetOptions): Promise<RawArray | number>;\n public async getBasicSelection(selection: ArraySelection, asRaw?: true, opts?: GetOptions): Promise<RawArray | number>;\n\n public async getBasicSelection(selection: ArraySelection, asRaw = false, { concurrencyLimit = 10, progressCallback }: GetOptions = {}): Promise<NestedArray<TypedArray> | RawArray | number> {\n // Refresh metadata\n if (!this.cacheMetadata) {\n await this.reloadMetadata();\n }\n\n // Check fields (TODO?)\n if (this.shape === []) {\n throw new Error(\"Shape [] indexing is not supported yet\");\n } else {\n return this.getBasicSelectionND(selection, asRaw, concurrencyLimit, progressCallback);\n }\n }\n\n private getBasicSelectionND(selection: ArraySelection, asRaw: boolean, concurrencyLimit: number, progressCallback?: (progressUpdate: { progress: number; queueSize: number }) => void): Promise<number | NestedArray<TypedArray> | RawArray> {\n const indexer = new BasicIndexer(selection, this);\n return this.getSelection(indexer, asRaw, concurrencyLimit, progressCallback);\n }\n\n private async getSelection(indexer: BasicIndexer, asRaw: boolean, concurrencyLimit: number, progressCallback?: (progressUpdate: { progress: number; queueSize: number }) => void): Promise<number | NestedArray<TypedArray> | RawArray> {\n // We iterate over all chunks which overlap the selection and thus contain data\n // that needs to be extracted. Each chunk is processed in turn, extracting the\n // necessary data and storing into the correct location in the output array.\n\n // N.B., it is an important optimisation that we only visit chunks which overlap\n // the selection. This minimises the number of iterations in the main for loop.\n\n // check fields are sensible (TODO?)\n\n const outDtype = this.dtype;\n const outShape = indexer.shape;\n const outSize = indexer.shape.reduce((x, y) => x * y, 1);\n\n if (asRaw && (outSize === this.chunkSize)) {\n // Optimization: if output strided array _is_ chunk exactly,\n // decode directly as new TypedArray and return\n const itr = indexer.iter();\n const proj = itr.next(); // ensure there is only one projection\n if (proj.done === false && itr.next().done === true) {\n const chunkProjection = proj.value as ChunkProjection;\n const out = await this.decodeDirectToRawArray(chunkProjection, outShape, outSize);\n return out;\n }\n }\n\n const out = asRaw\n ? new RawArray(null, outShape, outDtype)\n : new NestedArray(null, outShape, outDtype);\n\n if (outSize === 0) {\n return out;\n }\n\n // create promise queue with concurrency control\n const queue = new PQueue({ concurrency: concurrencyLimit });\n\n if (progressCallback) {\n\n let progress = 0;\n let queueSize = 0;\n for (const _ of indexer.iter()) queueSize += 1;\n progressCallback({ progress: 0, queueSize: queueSize });\n for (const proj of indexer.iter()) {\n (async () => {\n await queue.add(() => this.chunkGetItem(proj.chunkCoords, proj.chunkSelection, out, proj.outSelection, indexer.dropAxes));\n progress += 1;\n progressCallback({ progress: progress, queueSize: queueSize });\n })();\n }\n\n } else {\n for (const proj of indexer.iter()) {\n queue.add(() => this.chunkGetItem(proj.chunkCoords, proj.chunkSelection, out, proj.outSelection, indexer.dropAxes));\n }\n }\n\n // guarantees that all work on queue has finished\n await queue.onIdle();\n\n // Return scalar instead of zero-dimensional array.\n if (out.shape.length === 0) {\n return out.data[0] as number;\n }\n\n return out;\n }\n\n /**\n * Obtain part or whole of a chunk.\n * @param chunkCoords Indices of the chunk.\n * @param chunkSelection Location of region within the chunk to extract.\n * @param out Array to store result in.\n * @param outSelection Location of region within output array to store results in.\n * @param dropAxes Axes to squeeze out of the chunk.\n */\n private async chunkGetItem<T extends TypedArray>(chunkCoords: number[], chunkSelection: DimensionSelection[], out: NestedArray<T> | RawArray, outSelection: DimensionSelection[], dropAxes: null | number[]) {\n if (chunkCoords.length !== this._chunkDataShape.length) {\n throw new ValueError(`Inconsistent shapes: chunkCoordsLength: ${chunkCoords.length}, cDataShapeLength: ${this.chunkDataShape.length}`);\n }\n\n const cKey = this.chunkKey(chunkCoords);\n try {\n const cdata = await this.chunkStore.getItem(cKey);\n const decodedChunk = await this.decodeChunk(cdata);\n\n if (out instanceof NestedArray) {\n\n if (isContiguousSelection(outSelection) && isTotalSlice(chunkSelection, this.chunks) && !this.meta.filters) {\n // Optimization: we want the whole chunk, and the destination is\n // contiguous, so we can decompress directly from the chunk\n // into the destination array\n\n // TODO check order\n // TODO filters..\n out.set(outSelection, this.toNestedArray<T>(decodedChunk));\n return;\n }\n\n // Decode chunk\n const chunk = this.toNestedArray(decodedChunk);\n const tmp = chunk.get(chunkSelection);\n\n if (dropAxes !== null) {\n throw new Error(\"Drop axes is not supported yet\");\n }\n\n out.set(outSelection, tmp as NestedArray<T>);\n\n } else {\n /* RawArray\n Copies chunk by index directly into output. Doesn't matter if selection is contiguous\n since store/output are different shapes/strides.\n */\n out.set(outSelection, this.chunkBufferToRawArray(decodedChunk), chunkSelection);\n }\n\n } catch (error) {\n if (isKeyError(error)) {\n // fill with scalar if cKey doesn't exist in store\n if (this.fillValue !== null) {\n out.set(outSelection, this.fillValue);\n }\n } else {\n // Different type of error - rethrow\n throw error;\n }\n }\n }\n\n public async getRawChunk<O>(chunkCoords: number[], opts?: GetRawChunkOptions<O>): Promise<RawArray> {\n if (chunkCoords.length !== this.shape.length) {\n throw new Error(`Chunk coordinates ${chunkCoords.join(\".\")} do not correspond to shape ${this.shape}.`);\n }\n try {\n for (let i = 0; i < chunkCoords.length; i++) {\n const dimLength = Math.ceil(this.shape[i] / this.chunks[i]);\n chunkCoords[i] = normalizeIntegerSelection(chunkCoords[i], dimLength);\n }\n } catch (error) {\n if (error instanceof BoundsCheckError) {\n throw new BoundsCheckError(`index ${chunkCoords.join(\".\")} is out of bounds for shape: ${this.shape} and chunks ${this.chunks}`);\n } else {\n throw error;\n }\n }\n const cKey = this.chunkKey(chunkCoords);\n const cdata = this.chunkStore.getItem(cKey, opts?.storeOptions);\n const buffer = await this.decodeChunk(await cdata);\n const outShape = this.chunks.filter(d => d !== 1); // squeeze chunk dim if 1\n return new RawArray(buffer, outShape, this.dtype);\n }\n\n private chunkKey(chunkCoords: number[]) {\n return this.keyPrefix + chunkCoords.join(\".\");\n }\n\n private ensureByteArray(chunkData: ValidStoreType): Uint8Array {\n if (typeof chunkData === \"string\") {\n return new Uint8Array(Buffer.from(chunkData).buffer);\n }\n return new Uint8Array(chunkData);\n }\n\n private toTypedArray(buffer: Buffer | ArrayBuffer) {\n return new DTYPE_TYPEDARRAY_MAPPING[this.dtype](buffer);\n }\n\n private toNestedArray<T extends TypedArray>(data: ValidStoreType) {\n const buffer = this.ensureByteArray(data).buffer;\n\n return new NestedArray<T>(buffer, this.chunks, this.dtype);\n }\n\n private async decodeChunk(chunkData: ValidStoreType) {\n let bytes = this.ensureByteArray(chunkData);\n\n if (this.compressor !== null) {\n bytes = await (await this.compressor).decode(bytes);\n }\n\n if (this.dtype.includes('>')) {\n // Need to flip bytes for Javascript TypedArrays\n // We flip bytes in-place to avoid creating an extra copy of the decoded buffer.\n byteSwapInplace(this.toTypedArray(bytes.buffer));\n }\n\n // TODO filtering etc\n return bytes.buffer;\n }\n\n private chunkBufferToRawArray(buffer: Buffer | ArrayBuffer) {\n return new RawArray(buffer, this.chunks, this.dtype);\n }\n\n private async decodeDirectToRawArray({ chunkCoords }: ChunkProjection, outShape: number[], outSize: number): Promise<RawArray> {\n const cKey = this.chunkKey(chunkCoords);\n try {\n const cdata = await this.chunkStore.getItem(cKey);\n return new RawArray(await this.decodeChunk(cdata), outShape, this.dtype);\n } catch (error) {\n if (isKeyError(error)) {\n // fill with scalar if item doesn't exist\n const data = new DTYPE_TYPEDARRAY_MAPPING[this.dtype](outSize);\n return new RawArray(data.fill(this.fillValue as number), outShape);\n } else {\n // Different type of error - rethrow\n throw error;\n }\n }\n }\n\n public async set(selection: ArraySelection = null, value: any, opts: SetOptions = {}) {\n await this.setBasicSelection(selection, value, opts);\n }\n\n public async setBasicSelection(selection: ArraySelection, value: any, { concurrencyLimit = 10, progressCallback }: SetOptions = {}) {\n if (this.readOnly) {\n throw new PermissionError(\"Object is read only\");\n }\n\n if (!this.cacheMetadata) {\n await this.reloadMetadata();\n }\n\n if (this.shape === []) {\n throw new Error(\"Shape [] indexing is not supported yet\");\n } else {\n await this.setBasicSelectionND(selection, value, concurrencyLimit, progressCallback);\n }\n }\n\n private async setBasicSelectionND(selection: ArraySelection, value: any, concurrencyLimit: number, progressCallback?: (progressUpdate: { progress: number; queueSize: number }) => void) {\n const indexer = new BasicIndexer(selection, this);\n await this.setSelection(indexer, value, concurrencyLimit, progressCallback);\n }\n\n private getChunkValue(proj: ChunkProjection, indexer: Indexer, value: number | NestedArray<TypedArray>, selectionShape: number[]): number | NestedArray<TypedArray> {\n let chunkValue: number | NestedArray<TypedArray>;\n if (selectionShape === []) {\n chunkValue = value;\n } else if (typeof value === \"number\") {\n chunkValue = value;\n } else {\n chunkValue = value.get(proj.outSelection);\n // tslint:disable-next-line: strict-type-predicates\n if (indexer.dropAxes !== null) {\n throw new Error(\"Handling drop axes not supported yet\");\n }\n }\n return chunkValue;\n }\n\n private async setSelection(indexer: Indexer, value: number | NestedArray<TypedArray>, concurrencyLimit: number, progressCallback?: (progressUpdate: { progress: number; queueSize: number }) => void) {\n // We iterate over all chunks which overlap the selection and thus contain data\n // that needs to be replaced. Each chunk is processed in turn, extracting the\n // necessary data from the value array and storing into the chunk array.\n\n // N.B., it is an important optimisation that we only visit chunks which overlap\n // the selection. This minimises the number of iterations in the main for loop.\n\n // TODO? check fields are sensible\n\n // Determine indices of chunks overlapping the selection\n const selectionShape = indexer.shape;\n\n // Check value shape\n if (selectionShape === []) {\n // Setting a single value\n } else if (typeof value === \"number\") {\n // Setting a scalar value\n } else if (value instanceof NestedArray) {\n // TODO: non stringify equality check\n if (!arrayEquals1D(value.shape, selectionShape)) {\n throw new ValueError(`Shape mismatch in source NestedArray and set selection: ${value.shape} and ${selectionShape}`);\n }\n } else {\n // TODO support TypedArrays, buffers, etc\n throw new Error(\"Unknown data type for setting :(\");\n }\n\n const queue = new PQueue({ concurrency: concurrencyLimit });\n\n if (progressCallback) {\n\n let queueSize = 0;\n for (const _ of indexer.iter()) queueSize += 1;\n\n let progress = 0;\n progressCallback({ progress: 0, queueSize: queueSize });\n for (const proj of indexer.iter()) {\n const chunkValue = this.getChunkValue(proj, indexer, value, selectionShape);\n (async () => {\n await queue.add(() => this.chunkSetItem(proj.chunkCoords, proj.chunkSelection, chunkValue));\n progress += 1;\n progressCallback({ progress: progress, queueSize: queueSize });\n })();\n }\n\n } else {\n\n for (const proj of indexer.iter()) {\n const chunkValue = this.getChunkValue(proj, indexer, value, selectionShape);\n queue.add(() => this.chunkSetItem(proj.chunkCoords, proj.chunkSelection, chunkValue));\n }\n\n }\n\n // guarantees that all work on queue has finished\n await queue.onIdle();\n }\n\n private async chunkSetItem<T extends TypedArray>(chunkCoords: number[], chunkSelection: DimensionSelection[], value: number | NestedArray<TypedArray>) {\n // Obtain key for chunk storage\n const chunkKey = this.chunkKey(chunkCoords);\n\n let chunk: null | TypedArray = null;\n\n const dtypeConstr = DTYPE_TYPEDARRAY_MAPPING[this.dtype];\n const chunkSize = this.chunkSize;\n\n if (isTotalSlice(chunkSelection, this.chunks)) {\n // Totally replace chunk\n\n // Optimization: we are completely replacing the chunk, so no need\n // to access the existing chunk data\n\n if (typeof value === \"number\") {\n // TODO get the right type here\n chunk = new dtypeConstr(chunkSize);\n chunk.fill(value);\n } else {\n chunk = value.flatten();\n }\n } else {\n\n // partially replace the contents of this chunk\n\n // Existing chunk data\n let chunkData: TypedArray;\n\n try {\n // Chunk is initialized if this does not error\n const chunkStoreData = await this.chunkStore.getItem(chunkKey);\n const dBytes = await this.decodeChunk(chunkStoreData);\n chunkData = this.toTypedArray(dBytes);\n } catch (error) {\n if (isKeyError(error)) {\n // Chunk is not initialized\n chunkData = new dtypeConstr(chunkSize);\n if (this.fillValue !== null) {\n chunkData.fill(this.fillValue);\n }\n } else {\n // Different type of error - rethrow\n throw error;\n }\n }\n\n const chunkNestedArray = new NestedArray(\n chunkData,\n this.chunks,\n this.dtype,\n );\n chunkNestedArray.set(chunkSelection, value);\n chunk = chunkNestedArray.flatten();\n }\n const chunkData = await this.encodeChunk(chunk);\n this.chunkStore.setItem(chunkKey, chunkData);\n }\n\n private async encodeChunk(chunk: TypedArray) {\n if (this.dtype.includes('>')) {\n /*\n * If big endian, flip bytes before applying compression and setting store.\n *\n * Here we create a copy (not in-place byteswapping) to avoid flipping the\n * bytes in the buffers of user-created Raw- and NestedArrays.\n */\n chunk = byteSwap(chunk);\n }\n\n if (this.compressor !== null) {\n const bytes = new Uint8Array(chunk.buffer);\n const cbytes = await (await this.compressor).encode(bytes);\n return cbytes.buffer;\n }\n\n // TODO: filters, etc\n return chunk.buffer;\n }\n}","import { SyncStore, ValidStoreType } from \"./types\";\nimport { createProxy, MutableMappingProxy } from \"../mutableMapping\";\nimport { KeyError } from \"../errors\";\n\nexport class MemoryStore<T extends ValidStoreType> implements SyncStore<T> {\n listDir?: undefined;\n rmDir?: undefined;\n getSize?: undefined;\n rename?: undefined;\n\n root: { [key: string]: any };\n\n constructor(root = {}) {\n this.root = root;\n }\n\n public proxy(): MutableMappingProxy<T> {\n return createProxy(this);\n }\n\n private getParent(item: string): [any, string] {\n let parent = this.root;\n const segments = item.split('/');\n // find the parent container\n for (const k of segments.slice(0, segments.length - 1)) {\n parent = parent[k];\n if (!parent) {\n throw Error(item);\n }\n // if not isinstance(parent, self.cls):\n // raise KeyError(item)\n }\n return [parent, segments[segments.length - 1]];\n }\n\n private requireParent(item: string): [any, string] {\n let parent = this.root;\n const segments = item.split('/');\n\n // require the parent container\n for (const k of segments.slice(0, segments.length - 1)) {\n // TODO: verify correct implementation\n if (parent[k] === undefined) {\n parent[k] = {};\n }\n parent = parent[k];\n }\n\n return [parent, segments[segments.length - 1]];\n }\n\n getItem(item: string) {\n const [parent, key] = this.getParent(item);\n const value = parent[key];\n if (value === undefined) {\n throw new KeyError(item);\n }\n return value;\n }\n\n setItem(item: string, value: any): boolean {\n const [parent, key] = this.requireParent(item);\n parent[key] = value;\n return true;\n }\n\n deleteItem(item: string): boolean {\n const [parent, key] = this.getParent(item);\n return delete parent[key];\n }\n\n containsItem(item: string): boolean {\n // TODO: more sane implementation\n try {\n return this.getItem(item) !== undefined;\n } catch (e) {\n return false;\n }\n }\n\n keys(): string[] {\n throw new Error(\"Method not implemented.\");\n }\n\n\n}","import { ChunksArgument, DtypeString, CompressorConfig, Order, Filter, FillType, PersistenceMode } from './types';\nimport { Store } from './storage/types';\nimport { ZarrArray } from './core/index';\nimport { MemoryStore } from './storage/memoryStore';\nimport { initArray, containsArray, containsGroup } from './storage/index';\nimport { TypedArray } from './nestedArray/types';\nimport { NestedArray } from './nestedArray/index';\nimport { normalizeStoragePath } from './util';\nimport { ContainsArrayError, ValueError, ArrayNotFoundError, ContainsGroupError } from './errors';\nimport { HTTPStore } from './storage/httpStore';\n\n/**\n * See `create` function for type signature of these values\n */\nexport interface CreateArrayOptionsWithoutShape {\n chunks?: ChunksArgument;\n dtype?: DtypeString;\n compressor?: CompressorConfig | null;\n fillValue?: FillType;\n order?: Order;\n store?: Store;\n overwrite?: boolean;\n path?: string;\n chunkStore?: Store;\n filters?: Filter[];\n cacheMetadata?: boolean;\n cacheAttrs?: boolean;\n readOnly?: boolean;\n}\n\nexport type CreateArrayOptions = {\n shape: number | number[];\n chunks?: ChunksArgument;\n dtype?: DtypeString;\n compressor?: CompressorConfig | null;\n fillValue?: FillType;\n order?: Order;\n store?: Store;\n overwrite?: boolean;\n path?: string;\n chunkStore?: Store;\n filters?: Filter[];\n cacheMetadata?: boolean;\n cacheAttrs?: boolean;\n readOnly?: boolean;\n};\n\n/**\n * \n * @param shape Array shape.\n * @param chunks Chunk shape. If `true`, will be guessed from `shape` and `dtype`. If\n * `false`, will be set to `shape`, i.e., single chunk for the whole array.\n * If an int, the chunk size in each dimension will be given by the value\n * of `chunks`. Default is `true`.\n * @param dtype NumPy dtype.\n * @param compressor Primary compressor.\n * @param fillValue Default value to use for uninitialized portions of the array.\n * @param order Memory layout to be used within each chunk.\n * @param store Store or path to directory in file system or name of zip file.\n * @param overwrite If True, delete all pre-existing data in `store` at `path` before creating the array.\n * @param path Path under which array is stored.\n * @param chunkStore Separate storage for chunks. If not provided, `store` will be used for storage of both chunks and metadata.\n * @param filters Sequence of filters to use to encode chunk data prior to compression.\n * @param cacheMetadata If `true` (default), array configuration metadata will be cached for the\n * lifetime of the object. If `false`, array metadata will be reloaded\n * prior to all data access and modification operations (may incur\n * overhead depending on storage and data access pattern).\n * @param cacheAttrs If `true` (default), user attributes will be cached for attribute read\n * operations. If `false`, user attributes are reloaded from the store prior\n * to all attribute read operations.\n * @param readOnly `true` if array should be protected against modification, defaults to `false`.\n */\nexport async function create(\n { shape, chunks = true, dtype = \"<i4\", compressor = null, fillValue = null, order = \"C\", store, overwrite = false, path, chunkStore, filters, cacheMetadata = true, cacheAttrs = true, readOnly = false }: CreateArrayOptions,\n): Promise<ZarrArray> {\n\n store = normalizeStoreArgument(store);\n\n await initArray(store, shape, chunks, dtype, path, compressor, fillValue, order, overwrite, chunkStore, filters);\n const z = await ZarrArray.create(store, path, readOnly, chunkStore, cacheMetadata, cacheAttrs);\n\n return z;\n}\n\n\n/**\n * Create an empty array.\n */\nexport async function empty(shape: number | number[], opts: CreateArrayOptionsWithoutShape = {}) {\n opts.fillValue = null;\n return create({ shape, ...opts });\n}\n\n/**\n * Create an array, with zero being used as the default value for\n * uninitialized portions of the array.\n */\nexport async function zeros(shape: number | number[], opts: CreateArrayOptionsWithoutShape = {}) {\n opts.fillValue = 0;\n return create({ shape, ...opts });\n}\n\n/**\n * Create an array, with one being used as the default value for\n * uninitialized portions of the array.\n */\nexport async function ones(shape: number | number[], opts: CreateArrayOptionsWithoutShape = {}) {\n opts.fillValue = 1;\n return create({ shape, ...opts });\n}\n\n/**\n * Create an array, with `fill_value` being used as the default value for\n * uninitialized portions of the array\n */\nexport async function full(shape: number | number[], fillValue: FillType, opts: CreateArrayOptionsWithoutShape = {}) {\n opts.fillValue = fillValue;\n return create({ shape, ...opts });\n}\n\nexport async function array(data: Buffer | ArrayBuffer | NestedArray<TypedArray>, opts: CreateArrayOptionsWithoutShape = {}) {\n // TODO: infer chunks?\n\n let shape = null;\n if (data instanceof NestedArray) {\n shape = data.shape;\n opts.dtype = opts.dtype === undefined ? data.dtype : opts.dtype;\n } else {\n shape = data.byteLength;\n // TODO: infer datatype\n }\n // TODO: support TypedArray\n\n const wasReadOnly = opts.readOnly === undefined ? false : opts.readOnly;\n opts.readOnly = false;\n\n const z = await create({ shape, ...opts });\n await z.set(null, data);\n z.readOnly = wasReadOnly;\n\n return z;\n}\n\nexport async function openArray(\n { shape, mode = \"a\", chunks = true, dtype = \"<i4\", compressor = null, fillValue = null, order = \"C\", store, overwrite = false, path = null, chunkStore, filters, cacheMetadata = true, cacheAttrs = true }: { shape?: number | number[]; mode?: PersistenceMode; chunks?: ChunksArgument; dtype?: DtypeString; compressor?: CompressorConfig | null; fillValue?: FillType; order?: Order; store?: Store; overwrite?: boolean; path?: string | null; chunkStore?: Store; filters?: Filter[]; cacheMetadata?: boolean; cacheAttrs?: boolean } = {},\n) {\n store = normalizeStoreArgument(store);\n if (chunkStore === undefined) {\n chunkStore = normalizeStoreArgument(store);\n }\n path = normalizeStoragePath(path);\n\n if (mode === \"r\" || mode === \"r+\") {\n if (!await containsArray(store, path)) {\n if (await containsGroup(store, path)) {\n throw new ContainsGroupError(path);\n }\n throw new ArrayNotFoundError(path);\n }\n } else if (mode === \"w\") {\n\n if (shape === undefined) {\n throw new ValueError(\"Shape can not be undefined when creating a new array\");\n }\n await initArray(store, shape, chunks, dtype, path, compressor, fillValue, order, overwrite, chunkStore, filters);\n\n } else if (mode === \"a\") {\n if (!await containsArray(store, path)) {\n if (await containsGroup(store, path)) {\n throw new ContainsGroupError(path);\n }\n if (shape === undefined) {\n throw new ValueError(\"Shape can not be undefined when creating a new array\");\n }\n await initArray(store, shape, chunks, dtype, path, compressor, fillValue, order, overwrite, chunkStore, filters);\n }\n } else if (mode === \"w-\" || (mode as any) === \"x\") {\n if (await containsArray(store, path)) {\n throw new ContainsArrayError(path);\n } else if (await containsGroup(store, path)) {\n throw new ContainsGroupError(path);\n } else {\n if (shape === undefined) {\n throw new ValueError(\"Shape can not be undefined when creating a new array\");\n }\n await initArray(store, shape, chunks, dtype, path, compressor, fillValue, order, overwrite, chunkStore, filters);\n }\n } else {\n throw new ValueError(`Invalid mode argument: ${mode}`);\n }\n\n const readOnly = mode === \"r\";\n return ZarrArray.create(store, path, readOnly, chunkStore, cacheMetadata, cacheAttrs);\n}\n\n\nexport function normalizeStoreArgument(store?: Store | string): Store {\n if (store === undefined) {\n return new MemoryStore();\n } else if (typeof store === \"string\") {\n return new HTTPStore(store);\n }\n return store;\n}","import { createProxy, AsyncMutableMapping, AsyncMutableMappingProxy } from './mutableMapping';\nimport { Store, } from './storage/types';\nimport { normalizeStoragePath } from './util';\nimport { containsArray, pathToPrefix, containsGroup, initGroup } from './storage/index';\nimport { ContainsArrayError, GroupNotFoundError, PermissionError, KeyError, ValueError, ContainsGroupError } from './errors';\nimport { ZarrGroupMetadata, UserAttributes, PersistenceMode } from './types';\nimport { GROUP_META_KEY, ATTRS_META_KEY } from './names';\nimport { parseMetadata } from './metadata';\nimport { Attributes } from './attributes';\nimport { array, empty, zeros, ones, full, create, normalizeStoreArgument, CreateArrayOptionsWithoutShape } from './creation';\nimport { NestedArray } from './nestedArray';\nimport { TypedArray } from './nestedArray/types';\nimport { ZarrArray } from './core';\n\n\nexport class Group implements AsyncMutableMapping<Group | ZarrArray> {\n /**\n * A `Store` providing the underlying storage for the group.\n */\n public store: Store;\n\n /**\n * Storage path.\n */\n public path: string;\n\n /**\n * Group name following h5py convention.\n */\n public get name(): string {\n if (this.path.length > 0) {\n if (this.path[0] !== \"/\") {\n return \"/\" + this.path;\n }\n return this.path;\n }\n return \"/\";\n }\n\n /**\n * Final component of name.\n */\n public get basename(): string {\n const parts = this.name.split(\"/\");\n return parts[parts.length - 1];\n }\n\n /**\n * An object containing user-defined attributes. Note that\n * attribute values are stored as a JSON string in a store.\n */\n public attrs: Attributes<UserAttributes>;\n\n\n private _chunkStore: Store | null;\n /**\n * A `Store` providing the underlying storage for array chunks.\n */\n public get chunkStore(): Store {\n if (this._chunkStore) {\n return this._chunkStore;\n }\n return this.store;\n }\n\n private keyPrefix: string;\n public readOnly: boolean;\n private meta: ZarrGroupMetadata;\n\n public static async create(store: Store, path: string | null = null, readOnly = false, chunkStore: Store | null = null, cacheAttrs = true) {\n const metadata = await this.loadMetadataForConstructor(store, path);\n return new Group(store, path, metadata as ZarrGroupMetadata, readOnly, chunkStore, cacheAttrs);\n }\n\n private static async loadMetadataForConstructor(store: Store, path: null | string) {\n path = normalizeStoragePath(path);\n const keyPrefix = pathToPrefix(path);\n try {\n const metaStoreValue = await store.getItem(keyPrefix + GROUP_META_KEY);\n return parseMetadata(metaStoreValue);\n } catch (error) {\n if (await containsArray(store, path)) {\n throw new ContainsArrayError(path);\n }\n throw new GroupNotFoundError(path);\n }\n }\n\n private constructor(store: Store, path: string | null = null, metadata: ZarrGroupMetadata, readOnly = false, chunkStore: Store | null = null, cacheAttrs = true) {\n this.store = store;\n this._chunkStore = chunkStore;\n this.path = normalizeStoragePath(path);\n this.keyPrefix = pathToPrefix(this.path);\n this.readOnly = readOnly;\n this.meta = metadata;\n\n // Initialize attributes\n const attrKey = this.keyPrefix + ATTRS_META_KEY;\n this.attrs = new Attributes<UserAttributes>(this.store, attrKey, this.readOnly, cacheAttrs);\n }\n\n private itemPath(item: string | null) {\n const absolute = typeof item === \"string\" && item.length > 0 && item[0] === '/';\n const path = normalizeStoragePath(item);\n // Absolute path\n if (!absolute && this.path.length > 0) {\n return this.keyPrefix + path;\n }\n return path;\n }\n\n /**\n * Create a sub-group.\n */\n public async createGroup(name: string, overwrite = false) {\n if (this.readOnly) {\n throw new PermissionError(\"group is read only\");\n }\n const path = this.itemPath(name);\n await initGroup(this.store, path, this._chunkStore, overwrite);\n return Group.create(this.store, path, this.readOnly, this._chunkStore, this.attrs.cache);\n }\n\n /**\n * Obtain a sub-group, creating one if it doesn't exist.\n */\n public async requireGroup(name: string, overwrite = false) {\n if (this.readOnly) {\n throw new PermissionError(\"group is read only\");\n }\n const path = this.itemPath(name);\n if (!await containsGroup(this.store, path)) {\n await initGroup(this.store, path, this._chunkStore, overwrite);\n }\n return Group.create(this.store, path, this.readOnly, this._chunkStore, this.attrs.cache);\n }\n\n private getOptsForArrayCreation(name: string, opts: CreateArrayOptionsWithoutShape = {}) {\n const path = this.itemPath(name);\n opts.path = path;\n\n if (opts.cacheAttrs === undefined) {\n opts.cacheAttrs = this.attrs.cache;\n }\n opts.store = this.store;\n opts.chunkStore = this.chunkStore;\n return opts;\n }\n\n /**\n * Creates an array\n */\n public array(name: string, data: Buffer | ArrayBuffer | NestedArray<TypedArray>, opts?: CreateArrayOptionsWithoutShape, overwrite?: boolean) {\n if (this.readOnly) {\n throw new PermissionError(\"group is read only\");\n }\n opts = this.getOptsForArrayCreation(name, opts);\n opts.overwrite = overwrite === undefined ? opts.overwrite : overwrite;\n\n return array(data, opts);\n }\n\n public empty(name: string, shape: number | number[], opts: CreateArrayOptionsWithoutShape = {}) {\n if (this.readOnly) {\n throw new PermissionError(\"group is read only\");\n }\n opts = this.getOptsForArrayCreation(name, opts);\n\n return empty(shape, opts);\n }\n\n public zeros(name: string, shape: number | number[], opts: CreateArrayOptionsWithoutShape = {}) {\n if (this.readOnly) {\n throw new PermissionError(\"group is read only\");\n }\n opts = this.getOptsForArrayCreation(name, opts);\n\n return zeros(shape, opts);\n }\n\n public ones(name: string, shape: number | number[], opts: CreateArrayOptionsWithoutShape = {}) {\n if (this.readOnly) {\n throw new PermissionError(\"group is read only\");\n }\n opts = this.getOptsForArrayCreation(name, opts);\n\n return ones(shape, opts);\n }\n\n public full(name: string, shape: number | number[], fillValue: number | null, opts: CreateArrayOptionsWithoutShape = {}) {\n if (this.readOnly) {\n throw new PermissionError(\"group is read only\");\n }\n opts = this.getOptsForArrayCreation(name, opts);\n\n return full(shape, fillValue, opts);\n }\n\n public createDataset(name: string, shape?: number | number[], data?: Buffer | ArrayBuffer | NestedArray<TypedArray>, opts?: CreateArrayOptionsWithoutShape) {\n if (this.readOnly) {\n throw new PermissionError(\"group is read only\");\n }\n opts = this.getOptsForArrayCreation(name, opts);\n\n let z: Promise<ZarrArray>;\n if (data === undefined) {\n if (shape === undefined) {\n throw new ValueError(\"Shape must be set if no data is passed to CreateDataset\");\n }\n z = create({ shape, ...opts });\n } else {\n z = array(data, opts);\n }\n return z;\n }\n\n async getItem(item: string) {\n const path = this.itemPath(item);\n if (await containsArray(this.store, path)) {\n return ZarrArray.create(this.store, path, this.readOnly, this.chunkStore, undefined, this.attrs.cache);\n } else if (await containsGroup(this.store, path)) {\n return Group.create(this.store, path, this.readOnly, this._chunkStore, this.attrs.cache);\n }\n throw new KeyError(item);\n }\n\n async setItem(item: string, value: any) {\n await this.array(item, value, {}, true);\n return true;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async deleteItem(_item: string): Promise<boolean> {\n if (this.readOnly) {\n throw new PermissionError(\"group is read only\");\n }\n throw new Error(\"Method not implemented.\");\n }\n\n async containsItem(item: string) {\n const path = this.itemPath(item);\n return await containsArray(this.store, path) || containsGroup(this.store, path);\n }\n\n proxy(): AsyncMutableMappingProxy<Group> {\n return createProxy(this);\n }\n}\n\n/**\n * Create a group.\n * @param store Store or path to directory in file system.\n * @param path Group path within store.\n * @param chunkStore Separate storage for chunks. If not provided, `store` will be used for storage of both chunks and metadata.\n * @param overwrite If `true`, delete any pre-existing data in `store` at `path` before creating the group.\n * @param cacheAttrs If `true` (default), user attributes will be cached for attribute read operations.\n * If `false`, user attributes are reloaded from the store prior to all attribute read operations.\n */\nexport async function group(store?: Store | string, path: string | null = null, chunkStore?: Store, overwrite = false, cacheAttrs = true) {\n store = normalizeStoreArgument(store);\n path = normalizeStoragePath(path);\n\n if (overwrite || await containsGroup(store)) {\n await initGroup(store, path, chunkStore, overwrite);\n }\n\n return Group.create(store, path, false, chunkStore, cacheAttrs);\n}\n\n/**\n * Open a group using file-mode-like semantics.\n * @param store Store or path to directory in file system or name of zip file.\n * @param path Group path within store.\n * @param mode Persistence mode, see `PersistenceMode` type.\n * @param chunkStore Store or path to directory in file system or name of zip file.\n * @param cacheAttrs If `true` (default), user attributes will be cached for attribute read operations\n * If False, user attributes are reloaded from the store prior to all attribute read operations.\n *\n */\nexport async function openGroup(store?: Store | string, path: string | null = null, mode: PersistenceMode = \"a\", chunkStore?: Store, cacheAttrs = true) {\n store = normalizeStoreArgument(store);\n if (chunkStore !== undefined) {\n chunkStore = normalizeStoreArgument(store);\n }\n path = normalizeStoragePath(path);\n\n if (mode === \"r\" || mode === \"r+\") {\n if (!await containsGroup(store, path)) {\n if (await containsArray(store, path)) {\n throw new ContainsArrayError(path);\n }\n throw new GroupNotFoundError(path);\n }\n } else if (mode === \"w\") {\n await initGroup(store, path, chunkStore, true);\n } else if (mode === \"a\") {\n if (!await containsGroup(store, path)) {\n if (await containsArray(store, path)) {\n throw new ContainsArrayError(path);\n }\n await initGroup(store, path, chunkStore);\n }\n } else if (mode === \"w-\" || (mode as any) === \"x\") {\n if (await containsArray(store, path)) {\n throw new ContainsArrayError(path);\n } else if (await containsGroup(store, path)) {\n throw new ContainsGroupError(path);\n } else {\n await initGroup(store, path, chunkStore);\n }\n } else {\n throw new ValueError(`Invalid mode argument: ${mode}`);\n }\n\n const readOnly = mode === \"r\";\n return Group.create(store, path, readOnly, chunkStore, cacheAttrs);\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","import * as React from 'react';\nimport setRef from './setRef';\nexport default function useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return React.useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (refValue) {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport React, { Children } from 'react';\nimport toArray from 'rc-util/es/Children/toArray';\nimport warning from 'warning';\nimport TreeNode from './TreeNode';\n\nvar DRAG_SIDE_RANGE = 0.25;\nvar DRAG_MIN_GAP = 2;\n\nvar onlyTreeNodeWarned = false;\n\nexport function warnOnlyTreeNode() {\n if (onlyTreeNodeWarned) return;\n\n onlyTreeNodeWarned = true;\n warning(false, 'Tree only accept TreeNode as children.');\n}\n\nexport function arrDel(list, value) {\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\n\nexport function arrAdd(list, value) {\n var clone = list.slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\n\nexport function posToArr(pos) {\n return pos.split('-');\n}\n\nexport function getPosition(level, index) {\n return level + '-' + index;\n}\n\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\n\nexport function getNodeChildren(children) {\n return toArray(children).filter(isTreeNode);\n}\n\nexport function isCheckDisabled(node) {\n var _ref = node.props || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox;\n\n return !!(disabled || disableCheckbox);\n}\n\nexport function traverseTreeNodes(treeNodes, callback) {\n function processNode(node, index, parent) {\n var children = node ? node.props.children : treeNodes;\n var pos = node ? getPosition(parent.pos, index) : 0;\n\n // Filter children\n var childList = getNodeChildren(children);\n\n // Process node if is not root\n if (node) {\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: node.key || pos,\n parentPos: parent.node ? parent.pos : null\n };\n\n callback(data);\n }\n\n // Process children node\n Children.forEach(childList, function (subNode, subIndex) {\n processNode(subNode, subIndex, { node: node, pos: pos });\n });\n }\n\n processNode(null);\n}\n\n/**\n * Use `rc-util` `toArray` to get the children list which keeps the key.\n * And return single node if children is only one(This can avoid `key` missing check).\n */\nexport function mapChildren(children, func) {\n var list = toArray(children).map(func);\n if (list.length === 1) {\n return list[0];\n }\n return list;\n}\n\nexport function getDragNodesKeys(treeNodes, node) {\n var _node$props = node.props,\n eventKey = _node$props.eventKey,\n pos = _node$props.pos;\n\n var dragNodesKeys = [];\n\n traverseTreeNodes(treeNodes, function (_ref2) {\n var key = _ref2.key;\n\n dragNodesKeys.push(key);\n });\n dragNodesKeys.push(eventKey || pos);\n return dragNodesKeys;\n}\n\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, treeNode) {\n var clientY = event.clientY;\n\n var _treeNode$selectHandl = treeNode.selectHandle.getBoundingClientRect(),\n top = _treeNode$selectHandl.top,\n bottom = _treeNode$selectHandl.bottom,\n height = _treeNode$selectHandl.height;\n\n var des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP);\n\n if (clientY <= top + des) {\n return -1;\n } else if (clientY >= bottom - des) {\n return 1;\n }\n\n return 0;\n}\n\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n\n var multiple = props.multiple;\n\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\n\n/**\n * Since React internal will convert key to string,\n * we need do this to avoid `checkStrictly` use number match\n */\nfunction keyListToString(keyList) {\n if (!keyList) return keyList;\n return keyList.map(function (key) {\n return String(key);\n });\n}\n\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\nexport function convertDataToTree(treeData, processer) {\n if (!treeData) return [];\n\n var _ref3 = processer || {},\n _ref3$processProps = _ref3.processProps,\n processProps = _ref3$processProps === undefined ? internalProcessProps : _ref3$processProps;\n\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref4) {\n var children = _ref4.children,\n props = _objectWithoutProperties(_ref4, ['children']);\n\n var childrenNodes = convertDataToTree(children, processer);\n\n return React.createElement(\n TreeNode,\n processProps(props),\n childrenNodes\n );\n });\n}\n\n// TODO: ========================= NEW LOGIC =========================\n/**\n * Calculate treeNodes entities. `processTreeEntity` is used for `rc-tree-select`\n * @param treeNodes\n * @param processTreeEntity User can customize the entity\n */\nexport function convertTreeToEntities(treeNodes) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref5.initWrapper,\n processEntity = _ref5.processEntity,\n onProcessFinished = _ref5.onProcessFinished;\n\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseTreeNodes(treeNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos;\n\n var entity = { node: node, index: index, key: key, pos: pos };\n\n posEntities[pos] = entity;\n keyEntities[key] = entity;\n\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n });\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n\n // Convert keys to object format\n var keyProps = void 0;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (typeof keys === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n keyProps.checkedKeys = keyListToString(keyProps.checkedKeys);\n keyProps.halfCheckedKeys = keyListToString(keyProps.halfCheckedKeys);\n\n return keyProps;\n}\n\n/**\n * Conduct check state by the keyList. It will conduct up & from the provided key.\n * If the conduct path reach the disabled or already checked / unchecked node will stop conduct.\n * @param keyList list of keys\n * @param isCheck is check the node or not\n * @param keyEntities parsed by `convertTreeToEntities` function in Tree\n * @param checkStatus Can pass current checked status for process (usually for uncheck operation)\n * @returns {{checkedKeys: [], halfCheckedKeys: []}}\n */\nexport function conductCheck(keyList, isCheck, keyEntities) {\n var checkStatus = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var checkedKeys = {};\n var halfCheckedKeys = {}; // Record the key has some child checked (include child half checked)\n\n (checkStatus.checkedKeys || []).forEach(function (key) {\n checkedKeys[key] = true;\n });\n\n (checkStatus.halfCheckedKeys || []).forEach(function (key) {\n halfCheckedKeys[key] = true;\n });\n\n // Conduct up\n function conductUp(key) {\n if (checkedKeys[key] === isCheck) return;\n\n var entity = keyEntities[key];\n if (!entity) return;\n\n var children = entity.children,\n parent = entity.parent,\n node = entity.node;\n\n\n if (isCheckDisabled(node)) return;\n\n // Check child node checked status\n var everyChildChecked = true;\n var someChildChecked = false; // Child checked or half checked\n\n (children || []).filter(function (child) {\n return !isCheckDisabled(child.node);\n }).forEach(function (_ref6) {\n var childKey = _ref6.key;\n\n var childChecked = checkedKeys[childKey];\n var childHalfChecked = halfCheckedKeys[childKey];\n\n if (childChecked || childHalfChecked) someChildChecked = true;\n if (!childChecked) everyChildChecked = false;\n });\n\n // Update checked status\n if (isCheck) {\n checkedKeys[key] = everyChildChecked;\n } else {\n checkedKeys[key] = false;\n }\n halfCheckedKeys[key] = someChildChecked;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n // Conduct down\n function conductDown(key) {\n if (checkedKeys[key] === isCheck) return;\n\n var entity = keyEntities[key];\n if (!entity) return;\n\n var children = entity.children,\n node = entity.node;\n\n\n if (isCheckDisabled(node)) return;\n\n checkedKeys[key] = isCheck;\n\n (children || []).forEach(function (child) {\n conductDown(child.key);\n });\n }\n\n function conduct(key) {\n var entity = keyEntities[key];\n\n if (!entity) {\n warning(false, '\\'' + key + '\\' does not exist in the tree.');\n return;\n }\n\n var children = entity.children,\n parent = entity.parent,\n node = entity.node;\n\n checkedKeys[key] = isCheck;\n\n if (isCheckDisabled(node)) return;\n\n // Conduct down\n (children || []).filter(function (child) {\n return !isCheckDisabled(child.node);\n }).forEach(function (child) {\n conductDown(child.key);\n });\n\n // Conduct up\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conduct(key);\n });\n\n var checkedKeyList = [];\n var halfCheckedKeyList = [];\n\n // Fill checked list\n Object.keys(checkedKeys).forEach(function (key) {\n if (checkedKeys[key]) {\n checkedKeyList.push(key);\n }\n });\n\n // Fill half checked list\n Object.keys(halfCheckedKeys).forEach(function (key) {\n if (!checkedKeys[key] && halfCheckedKeys[key]) {\n halfCheckedKeyList.push(key);\n }\n });\n\n return {\n checkedKeys: checkedKeyList,\n halfCheckedKeys: halfCheckedKeyList\n };\n}\n\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = {};\n\n function conductUp(key) {\n if (expandedKeys[key]) return;\n\n var entity = keyEntities[key];\n if (!entity) return;\n\n expandedKeys[key] = true;\n\n var parent = entity.parent,\n node = entity.node;\n\n\n if (isCheckDisabled(node)) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n\n return Object.keys(expandedKeys);\n}\n\n/**\n * Returns only the data- and aria- key/value pairs\n * @param {object} props \n */\nexport function getDataAndAria(props) {\n return Object.keys(props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-') {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}","\nexport default function quickselect(arr, k, left, right, compare) {\n quickselectStep(arr, k, left || 0, right || (arr.length - 1), compare || defaultCompare);\n}\n\nfunction quickselectStep(arr, k, left, right, compare) {\n\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselectStep(arr, k, newLeft, newRight, compare);\n }\n\n var t = arr[k];\n var i = left;\n var j = right;\n\n swap(arr, left, k);\n if (compare(arr[right], t) > 0) swap(arr, left, right);\n\n while (i < j) {\n swap(arr, i, j);\n i++;\n j--;\n while (compare(arr[i], t) < 0) i++;\n while (compare(arr[j], t) > 0) j--;\n }\n\n if (compare(arr[left], t) === 0) swap(arr, left, j);\n else {\n j++;\n swap(arr, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\nfunction swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultCompare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n","import { ToInteger } from \"./spec\";\n\n\nexport { default as isArrayBuffer } from \"lodash-es/isArrayBuffer\";\n\nexport function isDataView(view) {\n return view instanceof DataView;\n}\n\nexport function isStringNumberKey(key) {\n return typeof key === \"string\" && key === ToInteger(key) + \"\";\n}\n","// algorithm: ftp://ftp.fox-toolkit.org/pub/fasthalffloatconversion.pdf\n\nconst buffer = new ArrayBuffer(4);\nconst floatView = new Float32Array(buffer);\nconst uint32View = new Uint32Array(buffer);\n\n\nconst baseTable = new Uint32Array(512);\nconst shiftTable = new Uint32Array(512);\n\nfor(let i = 0; i < 256; ++i) {\n const e = i - 127;\n\n // very small number (0, -0)\n if(e < -27) {\n baseTable[i | 0x000] = 0x0000;\n baseTable[i | 0x100] = 0x8000;\n shiftTable[i | 0x000] = 24;\n shiftTable[i | 0x100] = 24;\n\n // small number (denorm)\n } else if(e < -14) {\n baseTable[i | 0x000] = 0x0400 >> (-e - 14);\n baseTable[i | 0x100] = (0x0400 >> (-e - 14)) | 0x8000;\n shiftTable[i | 0x000] = -e - 1;\n shiftTable[i | 0x100] = -e - 1;\n\n // normal number\n } else if(e <= 15) {\n baseTable[i | 0x000] = (e + 15) << 10;\n baseTable[i | 0x100] = ((e + 15) << 10) | 0x8000;\n shiftTable[i | 0x000] = 13;\n shiftTable[i | 0x100] = 13;\n\n // large number (Infinity, -Infinity)\n } else if(e < 128) {\n baseTable[i | 0x000] = 0x7c00;\n baseTable[i | 0x100] = 0xfc00;\n shiftTable[i | 0x000] = 24;\n shiftTable[i | 0x100] = 24;\n\n // stay (NaN, Infinity, -Infinity)\n } else {\n baseTable[i | 0x000] = 0x7c00;\n baseTable[i | 0x100] = 0xfc00;\n shiftTable[i | 0x000] = 13;\n shiftTable[i | 0x100] = 13;\n }\n}\n\n/**\n * round a number to a half float number bits.\n * @param {number} num\n */\nexport function roundToFloat16Bits(num) {\n floatView[0] = num;\n\n const f = uint32View[0];\n const e = (f >> 23) & 0x1ff;\n return baseTable[e] + ((f & 0x007fffff) >> shiftTable[e]);\n}\n\n\nconst mantissaTable = new Uint32Array(2048);\nconst exponentTable = new Uint32Array(64);\nconst offsetTable = new Uint32Array(64);\n\nmantissaTable[0] = 0;\nfor(let i = 1; i < 1024; ++i) {\n let m = i << 13; // zero pad mantissa bits\n let e = 0; // zero exponent\n\n // normalized\n while((m & 0x00800000) === 0) {\n e -= 0x00800000; // decrement exponent\n m <<= 1;\n }\n\n m &= ~0x00800000; // clear leading 1 bit\n e += 0x38800000; // adjust bias\n\n mantissaTable[i] = m | e;\n}\nfor(let i = 1024; i < 2048; ++i) {\n mantissaTable[i] = 0x38000000 + ((i - 1024) << 13);\n}\n\nexponentTable[0] = 0;\nfor(let i = 1; i < 31; ++i) {\n exponentTable[i] = i << 23;\n}\nexponentTable[31] = 0x47800000;\nexponentTable[32] = 0x80000000;\nfor(let i = 33; i < 63; ++i) {\n exponentTable[i] = 0x80000000 + ((i - 32) << 23);\n}\nexponentTable[63] = 0xc7800000;\n\noffsetTable[0] = 0;\nfor(let i = 1; i < 64; ++i) {\n if(i === 32) {\n offsetTable[i] = 0;\n } else {\n offsetTable[i] = 1024;\n }\n}\n\n/**\n * convert a half float number bits to a number.\n * @param {number} float16bits - half float number bits\n */\nexport function convertToNumber(float16bits) {\n const m = float16bits >> 10;\n uint32View[0] = mantissaTable[offsetTable[m] + (float16bits & 0x3ff)] + exponentTable[m];\n return floatView[0];\n}\n","import { isDataView } from \"./is\";\nimport { roundToFloat16Bits, convertToNumber } from \"./lib\";\n\n/**\n * returns an unsigned 16-bit float at the specified byte offset from the start of the DataView.\n * @param {DataView} dataView\n * @param {nunmber} byteOffset\n * @param {*} opts\n */\nexport function getFloat16(dataView, byteOffset, ...opts) {\n if(!isDataView(dataView))\n throw new TypeError(\"First argument to getFloat16 function must be a DataView\");\n\n return convertToNumber( dataView.getUint16(byteOffset, ...opts) );\n}\n\n/**\n * stores an unsigned 16-bit float value at the specified byte offset from the start of the DataView.\n * @param {DataView} dataView\n * @param {number} byteOffset\n * @param {number} value\n * @param {*} opts\n */\nexport function setFloat16(dataView, byteOffset, value, ...opts) {\n if(!isDataView(dataView))\n throw new TypeError(\"First argument to setFloat16 function must be a DataView\");\n\n dataView.setUint16(byteOffset, roundToFloat16Bits(value), ...opts);\n}\n","// ==ClosureCompiler==\n// @output_file_name default.js\n// @compilation_level SIMPLE_OPTIMIZATIONS\n// ==/ClosureCompiler==\n// module.exports = {\n// parse: parse,\n// simplify: simplify,\n// simplifyLostLess: simplifyLostLess,\n// filter: filter,\n// stringify: stringify,\n// toContentString: toContentString,\n// getElementById: getElementById,\n// getElementsByClassName: getElementsByClassName,\n// transformStream: transformStream,\n// };\n\n/**\n * @author: Tobias Nickel\n * @created: 06.04.2015\n * I needed a small xmlparser chat can be used in a worker.\n */\n\n/**\n * @typedef tNode \n * @property {string} tagName \n * @property {object} attributes\n * @property {(tNode|string)[]} children \n **/\n\n/**\n * @typedef TParseOptions\n * @property {number} [pos]\n * @property {string[]} [noChildNodes]\n * @property {boolean} [setPos]\n * @property {boolean} [keepComments] \n * @property {boolean} [keepWhitespace]\n * @property {boolean} [simplify]\n * @property {(a: tNode, b: tNode) => boolean} [filter]\n */\n\n/**\n * parseXML / html into a DOM Object. with no validation and some failur tolerance\n * @param {string} S your XML to parse\n * @param {TParseOptions} [options] all other options:\n * @return {(tNode | string)[]}\n */\nfunction parse(S, options) {\n \"txml\";\n options = options || {};\n\n var pos = options.pos || 0;\n var keepComments = !!options.keepComments;\n var keepWhitespace = !!options.keepWhitespace;\n\n var openBracket = \"<\";\n var openBracketCC = \"<\".charCodeAt(0);\n var closeBracket = \">\";\n var closeBracketCC = \">\".charCodeAt(0);\n var minusCC = \"-\".charCodeAt(0);\n var slashCC = \"/\".charCodeAt(0);\n var exclamationCC = '!'.charCodeAt(0);\n var singleQuoteCC = \"'\".charCodeAt(0);\n var doubleQuoteCC = '\"'.charCodeAt(0);\n var openCornerBracketCC = '['.charCodeAt(0);\n var closeCornerBracketCC = ']'.charCodeAt(0);\n\n\n /**\n * parsing a list of entries\n */\n function parseChildren(tagName) {\n var children = [];\n while (S[pos]) {\n if (S.charCodeAt(pos) == openBracketCC) {\n if (S.charCodeAt(pos + 1) === slashCC) {\n var closeStart = pos + 2;\n pos = S.indexOf(closeBracket, pos);\n\n var closeTag = S.substring(closeStart, pos);\n if (closeTag.indexOf(tagName) == -1) {\n var parsedText = S.substring(0, pos).split('\\n');\n throw new Error(\n 'Unexpected close tag\\nLine: ' + (parsedText.length - 1) +\n '\\nColumn: ' + (parsedText[parsedText.length - 1].length + 1) +\n '\\nChar: ' + S[pos]\n );\n }\n\n if (pos + 1) pos += 1;\n\n return children;\n } else if (S.charCodeAt(pos + 1) === exclamationCC) {\n if (S.charCodeAt(pos + 2) == minusCC) {\n //comment support\n const startCommentPos = pos;\n while (pos !== -1 && !(S.charCodeAt(pos) === closeBracketCC && S.charCodeAt(pos - 1) == minusCC && S.charCodeAt(pos - 2) == minusCC && pos != -1)) {\n pos = S.indexOf(closeBracket, pos + 1);\n }\n if (pos === -1) {\n pos = S.length;\n }\n if (keepComments) {\n children.push(S.substring(startCommentPos, pos + 1));\n }\n } else if (\n S.charCodeAt(pos + 2) === openCornerBracketCC &&\n S.charCodeAt(pos + 8) === openCornerBracketCC &&\n S.substr(pos + 3, 5).toLowerCase() === 'cdata'\n ) {\n // cdata\n var cdataEndIndex = S.indexOf(']]>', pos);\n if (cdataEndIndex == -1) {\n children.push(S.substr(pos + 9));\n pos = S.length;\n } else {\n children.push(S.substring(pos + 9, cdataEndIndex));\n pos = cdataEndIndex + 3;\n }\n continue;\n } else {\n // doctypesupport\n const startDoctype = pos + 1;\n pos += 2;\n var encapsuled = false;\n while ((S.charCodeAt(pos) !== closeBracketCC || encapsuled === true) && S[pos]) {\n if (S.charCodeAt(pos) === openCornerBracketCC) {\n encapsuled = true;\n } else if (encapsuled === true && S.charCodeAt(pos) === closeCornerBracketCC) {\n encapsuled = false;\n }\n pos++;\n }\n children.push(S.substring(startDoctype, pos));\n }\n pos++;\n continue;\n }\n var node = parseNode();\n children.push(node);\n if (node.tagName[0] === '?') {\n children.push(...node.children);\n node.children = [];\n }\n } else {\n var text = parseText();\n if (keepWhitespace) {\n if (text.length > 0) {\n children.push(text);\n }\n } else {\n var trimmed = text.trim();\n if (trimmed.length > 0) {\n children.push(trimmed);\n }\n }\n pos++;\n }\n }\n return children;\n }\n\n /**\n * returns the text outside of texts until the first '<'\n */\n function parseText() {\n var start = pos;\n pos = S.indexOf(openBracket, pos) - 1;\n if (pos === -2)\n pos = S.length;\n return S.slice(start, pos + 1);\n }\n /**\n * returns text until the first nonAlphabetic letter\n */\n var nameSpacer = '\\r\\n\\t>/= ';\n\n function parseName() {\n var start = pos;\n while (nameSpacer.indexOf(S[pos]) === -1 && S[pos]) {\n pos++;\n }\n return S.slice(start, pos);\n }\n /**\n * is parsing a node, including tagName, Attributes and its children,\n * to parse children it uses the parseChildren again, that makes the parsing recursive\n */\n var NoChildNodes = options.noChildNodes || ['img', 'br', 'input', 'meta', 'link', 'hr'];\n\n function parseNode() {\n pos++;\n const tagName = parseName();\n const attributes = {};\n let children = [];\n\n // parsing attributes\n while (S.charCodeAt(pos) !== closeBracketCC && S[pos]) {\n var c = S.charCodeAt(pos);\n if ((c > 64 && c < 91) || (c > 96 && c < 123)) {\n //if('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.indexOf(S[pos])!==-1 ){\n var name = parseName();\n // search beginning of the string\n var code = S.charCodeAt(pos);\n while (code && code !== singleQuoteCC && code !== doubleQuoteCC && !((code > 64 && code < 91) || (code > 96 && code < 123)) && code !== closeBracketCC) {\n pos++;\n code = S.charCodeAt(pos);\n }\n if (code === singleQuoteCC || code === doubleQuoteCC) {\n var value = parseString();\n if (pos === -1) {\n return {\n tagName,\n attributes,\n children,\n };\n }\n } else {\n value = null;\n pos--;\n }\n attributes[name] = value;\n }\n pos++;\n }\n // optional parsing of children\n if (S.charCodeAt(pos - 1) !== slashCC) {\n if (tagName == \"script\") {\n var start = pos + 1;\n pos = S.indexOf('</script>', pos);\n children = [S.slice(start, pos)];\n pos += 9;\n } else if (tagName == \"style\") {\n var start = pos + 1;\n pos = S.indexOf('</style>', pos);\n children = [S.slice(start, pos)];\n pos += 8;\n } else if (NoChildNodes.indexOf(tagName) === -1) {\n pos++;\n children = parseChildren(tagName);\n } else {\n pos++;\n }\n } else {\n pos++;\n }\n return {\n tagName,\n attributes,\n children,\n };\n }\n\n /**\n * is parsing a string, that starts with a char and with the same usually ' or \"\n */\n\n function parseString() {\n var startChar = S[pos];\n var startpos = pos + 1;\n pos = S.indexOf(startChar, startpos);\n return S.slice(startpos, pos);\n }\n\n /**\n *\n */\n function findElements() {\n var r = new RegExp('\\\\s' + options.attrName + '\\\\s*=[\\'\"]' + options.attrValue + '[\\'\"]').exec(S);\n if (r) {\n return r.index;\n } else {\n return -1;\n }\n }\n\n var out = null;\n if (options.attrValue !== undefined) {\n options.attrName = options.attrName || 'id';\n var out = [];\n\n while ((pos = findElements()) !== -1) {\n pos = S.lastIndexOf('<', pos);\n if (pos !== -1) {\n out.push(parseNode());\n }\n S = S.substr(pos);\n pos = 0;\n }\n } else if (options.parseNode) {\n out = parseNode();\n } else {\n out = parseChildren('');\n }\n\n if (options.filter) {\n out = filter(out, options.filter);\n }\n\n if (options.simplify) {\n return simplify(Array.isArray(out) ? out : [out]);\n }\n\n if (options.setPos) {\n out.pos = pos;\n }\n\n return out;\n}\n\n/**\n * transform the DomObject to an object that is like the object of PHP`s simple_xmp_load_*() methods.\n * this format helps you to write that is more likely to keep your program working, even if there a small changes in the XML schema.\n * be aware, that it is not possible to reproduce the original xml from a simplified version, because the order of elements is not saved.\n * therefore your program will be more flexible and easier to read.\n *\n * @param {tNode[]} children the childrenList\n */\nfunction simplify(children) {\n var out = {};\n if (!children.length) {\n return '';\n }\n\n if (children.length === 1 && typeof children[0] == 'string') {\n return children[0];\n }\n // map each object\n children.forEach(function(child) {\n if (typeof child !== 'object') {\n return;\n }\n if (!out[child.tagName])\n out[child.tagName] = [];\n var kids = simplify(child.children);\n out[child.tagName].push(kids);\n if (Object.keys(child.attributes).length && typeof kids !== 'string') {\n kids._attributes = child.attributes;\n }\n });\n\n for (var i in out) {\n if (out[i].length == 1) {\n out[i] = out[i][0];\n }\n }\n\n return out;\n}\n\n/**\n * similar to simplify, but lost less\n *\n * @param {tNode[]} children the childrenList\n */\nfunction simplifyLostLess(children, parentAttributes = {}) {\n var out = {};\n if (!children.length) {\n return out;\n }\n\n if (children.length === 1 && typeof children[0] == 'string') {\n return Object.keys(parentAttributes).length ? {\n _attributes: parentAttributes,\n value: children[0]\n } : children[0];\n }\n // map each object\n children.forEach(function(child) {\n if (typeof child !== 'object') {\n return;\n }\n if (!out[child.tagName])\n out[child.tagName] = [];\n var kids = simplifyLostLess(child.children || [], child.attributes);\n out[child.tagName].push(kids);\n if (Object.keys(child.attributes).length) {\n kids._attributes = child.attributes;\n }\n });\n\n return out;\n}\n/**\n * behaves the same way as Array.filter, if the filter method return true, the element is in the resultList\n * @params children{Array} the children of a node\n * @param f{function} the filter method\n */\nfunction filter(children, f, dept = 0, path = '') {\n var out = [];\n children.forEach(function(child, i) {\n if (typeof(child) === 'object' && f(child, i, dept, path)) out.push(child);\n if (child.children) {\n var kids = filter(child.children, f, dept + 1, (path ? path + '.' : '') + i + '.' + child.tagName);\n out = out.concat(kids);\n }\n });\n return out;\n}\n/**\n * stringify a previously parsed string object.\n * this is useful,\n * 1. to remove whitespace\n * 2. to recreate xml data, with some changed data.\n * @param {tNode} O the object to Stringify\n */\nfunction stringify(O) {\n var out = '';\n\n function writeChildren(O) {\n if (O) {\n for (var i = 0; i < O.length; i++) {\n if (typeof O[i] == 'string') {\n out += O[i].trim();\n } else {\n writeNode(O[i]);\n }\n }\n }\n }\n\n function writeNode(N) {\n out += \"<\" + N.tagName;\n for (var i in N.attributes) {\n if (N.attributes[i] === null) {\n out += ' ' + i;\n } else if (N.attributes[i].indexOf('\"') === -1) {\n out += ' ' + i + '=\"' + N.attributes[i].trim() + '\"';\n } else {\n out += ' ' + i + \"='\" + N.attributes[i].trim() + \"'\";\n }\n }\n if (N.tagName[0] === '?') {\n out += '?>';\n return;\n }\n out += '>';\n writeChildren(N.children);\n out += '</' + N.tagName + '>';\n }\n writeChildren(O);\n\n return out;\n}\n\n/**\n * use this method to read the text content, of some node.\n * It is great if you have mixed content like:\n * this text has some <b>big</b> text and a <a href=''>link</a>\n * @return {string}\n */\nfunction toContentString(tDom) {\n if (Array.isArray(tDom)) {\n var out = '';\n tDom.forEach(function(e) {\n out += ' ' + toContentString(e);\n out = out.trim();\n });\n return out;\n } else if (typeof tDom === 'object') {\n return toContentString(tDom.children)\n } else {\n return ' ' + tDom;\n }\n}\nfunction getElementById(S, id, simplified) {\n var out = parse(S, {\n attrValue: id\n });\n return simplified ? tXml.simplify(out) : out[0];\n}\nfunction getElementsByClassName(S, classname, simplified) {\n const out = parse(S, {\n attrName: 'class',\n attrValue: '[a-zA-Z0-9- ]*' + classname + '[a-zA-Z0-9- ]*'\n });\n return simplified ? tXml.simplify(out) : out;\n}\n\nexport { filter, getElementById, getElementsByClassName, parse, simplify, simplifyLostLess, stringify, toContentString };\n","export const fieldTagNames = {\n // TIFF Baseline\n 0x013B: 'Artist',\n 0x0102: 'BitsPerSample',\n 0x0109: 'CellLength',\n 0x0108: 'CellWidth',\n 0x0140: 'ColorMap',\n 0x0103: 'Compression',\n 0x8298: 'Copyright',\n 0x0132: 'DateTime',\n 0x0152: 'ExtraSamples',\n 0x010A: 'FillOrder',\n 0x0121: 'FreeByteCounts',\n 0x0120: 'FreeOffsets',\n 0x0123: 'GrayResponseCurve',\n 0x0122: 'GrayResponseUnit',\n 0x013C: 'HostComputer',\n 0x010E: 'ImageDescription',\n 0x0101: 'ImageLength',\n 0x0100: 'ImageWidth',\n 0x010F: 'Make',\n 0x0119: 'MaxSampleValue',\n 0x0118: 'MinSampleValue',\n 0x0110: 'Model',\n 0x00FE: 'NewSubfileType',\n 0x0112: 'Orientation',\n 0x0106: 'PhotometricInterpretation',\n 0x011C: 'PlanarConfiguration',\n 0x0128: 'ResolutionUnit',\n 0x0116: 'RowsPerStrip',\n 0x0115: 'SamplesPerPixel',\n 0x0131: 'Software',\n 0x0117: 'StripByteCounts',\n 0x0111: 'StripOffsets',\n 0x00FF: 'SubfileType',\n 0x0107: 'Threshholding',\n 0x011A: 'XResolution',\n 0x011B: 'YResolution',\n\n // TIFF Extended\n 0x0146: 'BadFaxLines',\n 0x0147: 'CleanFaxData',\n 0x0157: 'ClipPath',\n 0x0148: 'ConsecutiveBadFaxLines',\n 0x01B1: 'Decode',\n 0x01B2: 'DefaultImageColor',\n 0x010D: 'DocumentName',\n 0x0150: 'DotRange',\n 0x0141: 'HalftoneHints',\n 0x015A: 'Indexed',\n 0x015B: 'JPEGTables',\n 0x011D: 'PageName',\n 0x0129: 'PageNumber',\n 0x013D: 'Predictor',\n 0x013F: 'PrimaryChromaticities',\n 0x0214: 'ReferenceBlackWhite',\n 0x0153: 'SampleFormat',\n 0x0154: 'SMinSampleValue',\n 0x0155: 'SMaxSampleValue',\n 0x022F: 'StripRowCounts',\n 0x014A: 'SubIFDs',\n 0x0124: 'T4Options',\n 0x0125: 'T6Options',\n 0x0145: 'TileByteCounts',\n 0x0143: 'TileLength',\n 0x0144: 'TileOffsets',\n 0x0142: 'TileWidth',\n 0x012D: 'TransferFunction',\n 0x013E: 'WhitePoint',\n 0x0158: 'XClipPathUnits',\n 0x011E: 'XPosition',\n 0x0211: 'YCbCrCoefficients',\n 0x0213: 'YCbCrPositioning',\n 0x0212: 'YCbCrSubSampling',\n 0x0159: 'YClipPathUnits',\n 0x011F: 'YPosition',\n\n // EXIF\n 0x9202: 'ApertureValue',\n 0xA001: 'ColorSpace',\n 0x9004: 'DateTimeDigitized',\n 0x9003: 'DateTimeOriginal',\n 0x8769: 'Exif IFD',\n 0x9000: 'ExifVersion',\n 0x829A: 'ExposureTime',\n 0xA300: 'FileSource',\n 0x9209: 'Flash',\n 0xA000: 'FlashpixVersion',\n 0x829D: 'FNumber',\n 0xA420: 'ImageUniqueID',\n 0x9208: 'LightSource',\n 0x927C: 'MakerNote',\n 0x9201: 'ShutterSpeedValue',\n 0x9286: 'UserComment',\n\n // IPTC\n 0x83BB: 'IPTC',\n\n // ICC\n 0x8773: 'ICC Profile',\n\n // XMP\n 0x02BC: 'XMP',\n\n // GDAL\n 0xA480: 'GDAL_METADATA',\n 0xA481: 'GDAL_NODATA',\n\n // Photoshop\n 0x8649: 'Photoshop',\n\n // GeoTiff\n 0x830E: 'ModelPixelScale',\n 0x8482: 'ModelTiepoint',\n 0x85D8: 'ModelTransformation',\n 0x87AF: 'GeoKeyDirectory',\n 0x87B0: 'GeoDoubleParams',\n 0x87B1: 'GeoAsciiParams',\n\n // LERC\n 0xC5F2: 'LercParameters',\n};\n\nexport const fieldTags = {};\nfor (const key in fieldTagNames) {\n if (fieldTagNames.hasOwnProperty(key)) {\n fieldTags[fieldTagNames[key]] = parseInt(key, 10);\n }\n}\n\nexport const fieldTagTypes = {\n 256: 'SHORT',\n 257: 'SHORT',\n 258: 'SHORT',\n 259: 'SHORT',\n 262: 'SHORT',\n 273: 'LONG',\n 274: 'SHORT',\n 277: 'SHORT',\n 278: 'LONG',\n 279: 'LONG',\n 282: 'RATIONAL',\n 283: 'RATIONAL',\n 284: 'SHORT',\n 286: 'SHORT',\n 287: 'RATIONAL',\n 296: 'SHORT',\n 305: 'ASCII',\n 306: 'ASCII',\n 338: 'SHORT',\n 339: 'SHORT',\n 513: 'LONG',\n 514: 'LONG',\n 1024: 'SHORT',\n 1025: 'SHORT',\n 2048: 'SHORT',\n 2049: 'ASCII',\n 33550: 'DOUBLE',\n 33922: 'DOUBLE',\n 34665: 'LONG',\n 34735: 'SHORT',\n 34737: 'ASCII',\n 42113: 'ASCII',\n};\n\nexport const arrayFields = [\n fieldTags.BitsPerSample,\n fieldTags.ExtraSamples,\n fieldTags.SampleFormat,\n fieldTags.StripByteCounts,\n fieldTags.StripOffsets,\n fieldTags.StripRowCounts,\n fieldTags.TileByteCounts,\n fieldTags.TileOffsets,\n fieldTags.SubIFDs,\n];\n\nexport const fieldTypeNames = {\n 0x0001: 'BYTE',\n 0x0002: 'ASCII',\n 0x0003: 'SHORT',\n 0x0004: 'LONG',\n 0x0005: 'RATIONAL',\n 0x0006: 'SBYTE',\n 0x0007: 'UNDEFINED',\n 0x0008: 'SSHORT',\n 0x0009: 'SLONG',\n 0x000A: 'SRATIONAL',\n 0x000B: 'FLOAT',\n 0x000C: 'DOUBLE',\n // IFD offset, suggested by https://owl.phy.queensu.ca/~phil/exiftool/standards.html\n 0x000D: 'IFD',\n // introduced by BigTIFF\n 0x0010: 'LONG8',\n 0x0011: 'SLONG8',\n 0x0012: 'IFD8',\n};\n\nexport const fieldTypes = {};\nfor (const key in fieldTypeNames) {\n if (fieldTypeNames.hasOwnProperty(key)) {\n fieldTypes[fieldTypeNames[key]] = parseInt(key, 10);\n }\n}\n\nexport const photometricInterpretations = {\n WhiteIsZero: 0,\n BlackIsZero: 1,\n RGB: 2,\n Palette: 3,\n TransparencyMask: 4,\n CMYK: 5,\n YCbCr: 6,\n\n CIELab: 8,\n ICCLab: 9,\n};\n\nexport const ExtraSamplesValues = {\n Unspecified: 0,\n Assocalpha: 1,\n Unassalpha: 2,\n};\n\nexport const LercParameters = {\n Version: 0,\n AddCompression: 1,\n};\n\nexport const LercAddCompression = {\n None: 0,\n Deflate: 1,\n};\n\n\nexport const geoKeyNames = {\n 1024: 'GTModelTypeGeoKey',\n 1025: 'GTRasterTypeGeoKey',\n 1026: 'GTCitationGeoKey',\n 2048: 'GeographicTypeGeoKey',\n 2049: 'GeogCitationGeoKey',\n 2050: 'GeogGeodeticDatumGeoKey',\n 2051: 'GeogPrimeMeridianGeoKey',\n 2052: 'GeogLinearUnitsGeoKey',\n 2053: 'GeogLinearUnitSizeGeoKey',\n 2054: 'GeogAngularUnitsGeoKey',\n 2055: 'GeogAngularUnitSizeGeoKey',\n 2056: 'GeogEllipsoidGeoKey',\n 2057: 'GeogSemiMajorAxisGeoKey',\n 2058: 'GeogSemiMinorAxisGeoKey',\n 2059: 'GeogInvFlatteningGeoKey',\n 2060: 'GeogAzimuthUnitsGeoKey',\n 2061: 'GeogPrimeMeridianLongGeoKey',\n 2062: 'GeogTOWGS84GeoKey',\n 3072: 'ProjectedCSTypeGeoKey',\n 3073: 'PCSCitationGeoKey',\n 3074: 'ProjectionGeoKey',\n 3075: 'ProjCoordTransGeoKey',\n 3076: 'ProjLinearUnitsGeoKey',\n 3077: 'ProjLinearUnitSizeGeoKey',\n 3078: 'ProjStdParallel1GeoKey',\n 3079: 'ProjStdParallel2GeoKey',\n 3080: 'ProjNatOriginLongGeoKey',\n 3081: 'ProjNatOriginLatGeoKey',\n 3082: 'ProjFalseEastingGeoKey',\n 3083: 'ProjFalseNorthingGeoKey',\n 3084: 'ProjFalseOriginLongGeoKey',\n 3085: 'ProjFalseOriginLatGeoKey',\n 3086: 'ProjFalseOriginEastingGeoKey',\n 3087: 'ProjFalseOriginNorthingGeoKey',\n 3088: 'ProjCenterLongGeoKey',\n 3089: 'ProjCenterLatGeoKey',\n 3090: 'ProjCenterEastingGeoKey',\n 3091: 'ProjCenterNorthingGeoKey',\n 3092: 'ProjScaleAtNatOriginGeoKey',\n 3093: 'ProjScaleAtCenterGeoKey',\n 3094: 'ProjAzimuthAngleGeoKey',\n 3095: 'ProjStraightVertPoleLongGeoKey',\n 3096: 'ProjRectifiedGridAngleGeoKey',\n 4096: 'VerticalCSTypeGeoKey',\n 4097: 'VerticalCitationGeoKey',\n 4098: 'VerticalDatumGeoKey',\n 4099: 'VerticalUnitsGeoKey',\n};\n\nexport const geoKeys = {};\nfor (const key in geoKeyNames) {\n if (geoKeyNames.hasOwnProperty(key)) {\n geoKeys[geoKeyNames[key]] = parseInt(key, 10);\n }\n}\n","export function fromWhiteIsZero(raster, max) {\n const { width, height } = raster;\n const rgbRaster = new Uint8Array(width * height * 3);\n let value;\n for (let i = 0, j = 0; i < raster.length; ++i, j += 3) {\n value = 256 - (raster[i] / max * 256);\n rgbRaster[j] = value;\n rgbRaster[j + 1] = value;\n rgbRaster[j + 2] = value;\n }\n return rgbRaster;\n}\n\nexport function fromBlackIsZero(raster, max) {\n const { width, height } = raster;\n const rgbRaster = new Uint8Array(width * height * 3);\n let value;\n for (let i = 0, j = 0; i < raster.length; ++i, j += 3) {\n value = raster[i] / max * 256;\n rgbRaster[j] = value;\n rgbRaster[j + 1] = value;\n rgbRaster[j + 2] = value;\n }\n return rgbRaster;\n}\n\nexport function fromPalette(raster, colorMap) {\n const { width, height } = raster;\n const rgbRaster = new Uint8Array(width * height * 3);\n const greenOffset = colorMap.length / 3;\n const blueOffset = colorMap.length / 3 * 2;\n for (let i = 0, j = 0; i < raster.length; ++i, j += 3) {\n const mapIndex = raster[i];\n rgbRaster[j] = colorMap[mapIndex] / 65536 * 256;\n rgbRaster[j + 1] = colorMap[mapIndex + greenOffset] / 65536 * 256;\n rgbRaster[j + 2] = colorMap[mapIndex + blueOffset] / 65536 * 256;\n }\n return rgbRaster;\n}\n\nexport function fromCMYK(cmykRaster) {\n const { width, height } = cmykRaster;\n const rgbRaster = new Uint8Array(width * height * 3);\n for (let i = 0, j = 0; i < cmykRaster.length; i += 4, j += 3) {\n const c = cmykRaster[i];\n const m = cmykRaster[i + 1];\n const y = cmykRaster[i + 2];\n const k = cmykRaster[i + 3];\n\n rgbRaster[j] = 255 * ((255 - c) / 256) * ((255 - k) / 256);\n rgbRaster[j + 1] = 255 * ((255 - m) / 256) * ((255 - k) / 256);\n rgbRaster[j + 2] = 255 * ((255 - y) / 256) * ((255 - k) / 256);\n }\n return rgbRaster;\n}\n\nexport function fromYCbCr(yCbCrRaster) {\n const { width, height } = yCbCrRaster;\n const rgbRaster = new Uint8ClampedArray(width * height * 3);\n for (let i = 0, j = 0; i < yCbCrRaster.length; i += 3, j += 3) {\n const y = yCbCrRaster[i];\n const cb = yCbCrRaster[i + 1];\n const cr = yCbCrRaster[i + 2];\n\n rgbRaster[j] = (y + (1.40200 * (cr - 0x80)));\n rgbRaster[j + 1] = (y - (0.34414 * (cb - 0x80)) - (0.71414 * (cr - 0x80)));\n rgbRaster[j + 2] = (y + (1.77200 * (cb - 0x80)));\n }\n return rgbRaster;\n}\n\nconst Xn = 0.95047;\nconst Yn = 1.00000;\nconst Zn = 1.08883;\n\n// from https://github.com/antimatter15/rgb-lab/blob/master/color.js\n\nexport function fromCIELab(cieLabRaster) {\n const { width, height } = cieLabRaster;\n const rgbRaster = new Uint8Array(width * height * 3);\n\n for (let i = 0, j = 0; i < cieLabRaster.length; i += 3, j += 3) {\n const L = cieLabRaster[i + 0];\n const a_ = cieLabRaster[i + 1] << 24 >> 24; // conversion from uint8 to int8\n const b_ = cieLabRaster[i + 2] << 24 >> 24; // same\n\n let y = (L + 16) / 116;\n let x = (a_ / 500) + y;\n let z = y - (b_ / 200);\n let r;\n let g;\n let b;\n\n x = Xn * ((x * x * x > 0.008856) ? x * x * x : (x - (16 / 116)) / 7.787);\n y = Yn * ((y * y * y > 0.008856) ? y * y * y : (y - (16 / 116)) / 7.787);\n z = Zn * ((z * z * z > 0.008856) ? z * z * z : (z - (16 / 116)) / 7.787);\n\n r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n r = (r > 0.0031308) ? ((1.055 * (r ** (1 / 2.4))) - 0.055) : 12.92 * r;\n g = (g > 0.0031308) ? ((1.055 * (g ** (1 / 2.4))) - 0.055) : 12.92 * g;\n b = (b > 0.0031308) ? ((1.055 * (b ** (1 / 2.4))) - 0.055) : 12.92 * b;\n\n rgbRaster[j] = Math.max(0, Math.min(1, r)) * 255;\n rgbRaster[j + 1] = Math.max(0, Math.min(1, g)) * 255;\n rgbRaster[j + 2] = Math.max(0, Math.min(1, b)) * 255;\n }\n return rgbRaster;\n}\n","\nfunction decodeRowAcc(row, stride) {\n let length = row.length - stride;\n let offset = 0;\n do {\n for (let i = stride; i > 0; i--) {\n row[offset + stride] += row[offset];\n offset++;\n }\n\n length -= stride;\n } while (length > 0);\n}\n\nfunction decodeRowFloatingPoint(row, stride, bytesPerSample) {\n let index = 0;\n let count = row.length;\n const wc = count / bytesPerSample;\n\n while (count > stride) {\n for (let i = stride; i > 0; --i) {\n row[index + stride] += row[index];\n ++index;\n }\n count -= stride;\n }\n\n const copy = row.slice();\n for (let i = 0; i < wc; ++i) {\n for (let b = 0; b < bytesPerSample; ++b) {\n row[(bytesPerSample * i) + b] = copy[((bytesPerSample - b - 1) * wc) + i];\n }\n }\n}\n\nexport function applyPredictor(block, predictor, width, height, bitsPerSample,\n planarConfiguration) {\n if (!predictor || predictor === 1) {\n return block;\n }\n\n for (let i = 0; i < bitsPerSample.length; ++i) {\n if (bitsPerSample[i] % 8 !== 0) {\n throw new Error('When decoding with predictor, only multiple of 8 bits are supported.');\n }\n if (bitsPerSample[i] !== bitsPerSample[0]) {\n throw new Error('When decoding with predictor, all samples must have the same size.');\n }\n }\n\n const bytesPerSample = bitsPerSample[0] / 8;\n const stride = planarConfiguration === 2 ? 1 : bitsPerSample.length;\n\n for (let i = 0; i < height; ++i) {\n // Last strip will be truncated if height % stripHeight != 0\n if (i * stride * width * bytesPerSample >= block.byteLength) {\n break;\n }\n let row;\n if (predictor === 2) { // horizontal prediction\n switch (bitsPerSample[0]) {\n case 8:\n row = new Uint8Array(\n block, i * stride * width * bytesPerSample, stride * width * bytesPerSample,\n );\n break;\n case 16:\n row = new Uint16Array(\n block, i * stride * width * bytesPerSample, stride * width * bytesPerSample / 2,\n );\n break;\n case 32:\n row = new Uint32Array(\n block, i * stride * width * bytesPerSample, stride * width * bytesPerSample / 4,\n );\n break;\n default:\n throw new Error(`Predictor 2 not allowed with ${bitsPerSample[0]} bits per sample.`);\n }\n decodeRowAcc(row, stride, bytesPerSample);\n } else if (predictor === 3) { // horizontal floating point\n row = new Uint8Array(\n block, i * stride * width * bytesPerSample, stride * width * bytesPerSample,\n );\n decodeRowFloatingPoint(row, stride, bytesPerSample);\n }\n }\n return block;\n}\n","let A,I=null;function g(){return null!==I&&I.buffer===A.memory.buffer||(I=new Uint8Array(A.memory.buffer)),I}let B=0;let Q=null;function C(){return null!==Q&&Q.buffer===A.memory.buffer||(Q=new Int32Array(A.memory.buffer)),Q}async function E(I){void 0===I&&(I=\"\".replace(/\\.js$/,\"_bg.wasm\"));(\"string\"==typeof I||\"function\"==typeof Request&&I instanceof Request||\"function\"==typeof URL&&I instanceof URL)&&(I=fetch(I));const{instance:g,module:B}=await async function(A,I){if(\"function\"==typeof Response&&A instanceof Response){if(\"function\"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(A,I)}catch(I){if(\"application/wasm\"==A.headers.get(\"Content-Type\"))throw I;console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\",I)}const g=await A.arrayBuffer();return await WebAssembly.instantiate(g,I)}{const g=await WebAssembly.instantiate(A,I);return g instanceof WebAssembly.Instance?{instance:g,module:A}:g}}(await I,{});return A=g.exports,E.__wbindgen_wasm_module=B,A}var D=Object.freeze({__proto__:null,decompress:function(I,Q){try{const F=A.__wbindgen_add_to_stack_pointer(-16);var E=function(A,I){const Q=I(1*A.length);return g().set(A,Q/1),B=A.length,Q}(I,A.__wbindgen_malloc),D=B;A.decompress(F,E,D,Q);var i=C()[F/4+0],w=C()[F/4+1],G=(o=i,N=w,g().subarray(o/1,o/1+N)).slice();return A.__wbindgen_free(i,1*w),G}finally{A.__wbindgen_add_to_stack_pointer(16)}var o,N},default:E});const i=[62,0,0,0,63,52,53,54,55,56,57,58,59,60,61,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,0,0,0,0,0,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];function w(A){return i[A-43]}const G=function(A){let I,g=A.endsWith(\"==\")?2:A.endsWith(\"=\")?1:0,B=A.length,Q=new Uint8Array(B/4*3);for(let g=0,C=0;g<B;g+=4,C+=3)I=w(A.charCodeAt(g))<<18|w(A.charCodeAt(g+1))<<12|w(A.charCodeAt(g+2))<<6|w(A.charCodeAt(g+3)),Q[C]=I>>16,Q[C+1]=I>>8&255,Q[C+2]=255&I;return Q.subarray(0,Q.length-g)}(\"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NwMAIANBEGokAA8LIARBCEHYhcAAEDcACyACQQhByIXAABA3AAuqAgEDfyMAQYABayIEJAACQAJAAn8CQCABKAIAIgNBEHFFBEAgACgCACECIANBIHENASACrSABEBUMAgsgACgCACECQQAhAANAIAAgBGpB/wBqIAJBD3EiA0EwciADQdcAaiADQQpJGzoAACAAQX9qIQAgAkEEdiICDQALIABBgAFqIgJBgQFPDQIgAUGkjsAAQQIgACAEakGAAWpBACAAaxAIDAELQQAhAANAIAAgBGpB/wBqIAJBD3EiA0EwciADQTdqIANBCkkbOgAAIABBf2ohACACQQR2IgINAAsgAEGAAWoiAkGBAU8NAiABQaSOwABBAiAAIARqQYABakEAIABrEAgLIARBgAFqJAAPCyACQYABQZSOwAAQOQALIAJBgAFBlI7AABA5AAuxAgEEfyMAQUBqIgIkACABKAIEIgNFBEAgAUEEaiEDIAEoAgAhBCACQQA2AiAgAkIBNwMYIAIgAkEYajYCJCACQThqIARBEGopAgA3AwAgAkEwaiAEQQhqKQIANwMAIAIgBCkCADcDKCACQSRqQdiJwAAgAkEoahAJGiACQRBqIgQgAigCIDYCACACIAIpAxg3AwgCQCABKAIEIgVFDQAgAUEIaigCAEUNACAFEAQLIAMgAikDCDcCACADQQhqIAQoAgA2AgAgAygCACEDCyABQQE2AgQgAUEMaigCACEEIAFBCGoiASgCACEFIAFCADcCAEEMQQQQWSIBRQRAQQxBBBBjAAsgASAENgIIIAEgBTYCBCABIAM2AgAgAEGQi8AANgIEIAAgATYCACACQUBrJAAL/AEBAn8jAEEQayICJAAgACgCACACQQA2AgwCfwJAAkAgAUGAAU8EQCABQYAQSQ0BIAJBDGohACABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAIgAToADCACQQxqIQBBAQwCCyACIAFBP3FBgAFyOgANIAIgAUEGdkHAAXI6AAwgAkEMaiEAQQIMAQsgAiABQT9xQYABcjoADyACIAFBEnZB8AFyOgAMIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADUEECyEBIAAgARALIAJBEGokAAv5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QSxqQQI2AgAgAUE8akEhNgIAIAFCAjcCHCABQayMwAA2AhggAUEdNgI0IAEgAUEwajYCKCABIAFBEGo2AjggASABQQhqNgIwIAFBGGpB8IDAABBRAAtxAQN/IwBBIGsiAiQAAkAgACABEBkNACABQRxqKAIAIQMgASgCGCACQRxqQQA2AgAgAkHwi8AANgIYIAJCATcCDCACQfSLwAA2AgggAyACQQhqEAkNACAAQQRqIAEQGSACQSBqJAAPCyACQSBqJABBAQswAQF/AkACQEGAwABBAhBZIgENAQwAC0GAwABBAhBjAAsgACABNgIAIABBgCA2AgQLewECfwJAAkAgACgCBCIBBEAgACgCDCICIAFPDQEgACgCACIBIAJqIAEtAAA6AAAgAEEANgIIIAAgACgCDEEBajYCDCAAKAIERQ0CIAAoAgAtAAAPC0EAQQBBiIbAABA2AAsgAiABQZiGwAAQNgALQQBBAEGohsAAEDYAC2gBAn8gACAALQBGIgFBAWoiAjoACiAAQQEgAUEPcXRBAmoiATsBQCAAQX8gAkEPcXRBf3M7AQggAEEYaigCACABQf//A3EiAU8EQCAAIAE2AhgLIABBJGooAgAgAU8EQCAAIAE2AiQLC1ABAX8gAEEUaigCACIBRSABQQJ0RXJFBEAgACgCEBAECyAAQSBqKAIAIgFFIAFBAXRFckUEQCAAKAIcEAQLIABBLGooAgAEQCAAKAIoEAQLC2wBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEcNgIAIANCAjcCDCADQYCNwAA2AgggA0EcNgIkIAMgA0EgajYCGCADIAM2AiggAyADQQRqNgIgIANBCGogAhBRAAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBHDYCACADQgI3AgwgA0HMkcAANgIIIANBHDYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIAIQUQALbAEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQRw2AgAgA0ICNwIMIANBgJLAADYCCCADQRw2AiQgAyADQSBqNgIYIAMgA0EEajYCKCADIAM2AiAgA0EIaiACEFEAC2wBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEcNgIAIANCAjcCDCADQayRwAA2AgggA0EcNgIkIAMgA0EgajYCGCADIANBBGo2AiggAyADNgIgIANBCGogAhBRAAtcAQF/IwBBEGsiAyQAAkAgACgCBCABayACTwRAIANBADYCAAwBCyADIAAgASACEBYgAygCAEEBRw0AIANBCGooAgAiAARAIAMoAgQgABBjAAsQXQALIANBEGokAAtaAQF/IwBBEGsiAiQAAkAgACgCBCABa0EBTwRAIAJBADYCAAwBCyACIAAgARAeIAIoAgBBAUcNACACQQhqKAIAIgAEQCACKAIEIAAQYwALEF0ACyACQRBqJAALWgEBfyMAQRBrIgIkAAJAIAAoAgQgAWtBAU8EQCACQQA2AgAMAQsgAiAAIAEQHSACKAIAQQFHDQAgAkEIaigCACIABEAgAigCBCAAEGMACxBdAAsgAkEQaiQAC1kBAX8jAEEgayICJAAgAiAAKAIANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpB2InAACACQQhqEAkgAkEgaiQAC0YAAkBBCCACSQRAAn9BCCACSQRAIAIgAxAQDAELIAMQAAsiAg0BQQAPCyAAIAMQCg8LIAIgACADIAEgASADSxsQSyAAEAQLWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHwj8AAIAJBCGoQCSACQSBqJAALWQACQAJAAkAgAUF/SgRAAkAgAgRAIAENAQwECyABRQ0DIAFBARBZIgINBAwCCyABEEciAkUNAQwDCxBdAAsgAUEBEGMAC0EBIQILIAAgATYCBCAAIAI2AgALVgEBfyMAQSBrIgIkACACIAA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHwj8AAIAJBCGoQCSACQSBqJAALWQEDfwJAIAEoAgwiAiABKAIIIgNPBEAgASgCBCIEIAJJDQEgASgCACEBIAAgAiADazYCBCAAIAEgA2o2AgAPCyADIAJB2IbAABA4AAsgAiAEQdiGwAAQNwALVQEBfyAAQRBqIAAt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\");let o;async function N(A,I){o||(o=await(async()=>(await E(G),D))());const g=o.decompress(A,I);if(0===g.length)throw Error(\"Failed to decode with LZW decoder.\");return g}export{N as decompress};\n","import { applyPredictor } from '../predictor';\n\nexport default class BaseDecoder {\n async decode(fileDirectory, buffer) {\n const decoded = await this.decodeBlock(buffer);\n const predictor = fileDirectory.Predictor || 1;\n if (predictor !== 1) {\n const isTiled = !fileDirectory.StripOffsets;\n const tileWidth = isTiled ? fileDirectory.TileWidth : fileDirectory.ImageWidth;\n const tileHeight = isTiled ? fileDirectory.TileLength : (\n fileDirectory.RowsPerStrip || fileDirectory.ImageLength\n );\n return applyPredictor(\n decoded, predictor, tileWidth, tileHeight, fileDirectory.BitsPerSample,\n fileDirectory.PlanarConfiguration,\n );\n }\n return decoded;\n }\n}\n","import BaseDecoder from './basedecoder';\n\n\nexport default class RawDecoder extends BaseDecoder {\n decodeBlock(buffer) {\n return buffer;\n }\n}\n","import { decompress } from 'lzw-tiff-decoder';\n\nimport BaseDecoder from './basedecoder';\n\nexport default class LZWDecoder extends BaseDecoder {\n constructor(fileDirectory) {\n super();\n const width = fileDirectory.TileWidth || fileDirectory.ImageWidth;\n const height = fileDirectory.TileLength || fileDirectory.ImageLength;\n const nbytes = fileDirectory.BitsPerSample[0] / 8;\n this.maxUncompressedSize = width * height * nbytes;\n }\n\n async decodeBlock(buffer) {\n const bytes = new Uint8Array(buffer);\n const decoded = await decompress(bytes, this.maxUncompressedSize);\n return decoded.buffer;\n }\n}\n\n","import BaseDecoder from './basedecoder';\n\n/* -*- tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/*\n Copyright 2011 notmasteryet\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\n// - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n// (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n// - The JFIF specification can be found in the JPEG File Interchange Format\n// (www.w3.org/Graphics/JPEG/jfif3.pdf)\n// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters\n// in PostScript Level 2, Technical Note #5116\n// (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n\n\nconst dctZigZag = new Int32Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63,\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896;// sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0;\n const code = [];\n let length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n --length;\n }\n code.push({ children: [], index: 0 });\n\n let p = code[0];\n let q;\n for (let i = 0; i < length; i++) {\n for (let j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\n\nfunction decodeScan(data, initialOffset,\n frame, components, resetInterval,\n spectralStart, spectralEnd,\n successivePrev, successive) {\n const { mcusPerLine, progressive } = frame;\n\n const startOffset = initialOffset;\n let offset = initialOffset;\n let bitsData = 0;\n let bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xFF) {\n const nextByte = data[offset++];\n if (nextByte) {\n throw new Error(`unexpected marker: ${((bitsData << 8) | nextByte).toString(16)}`);\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n let node = tree;\n let bit;\n while ((bit = readBit()) !== null) { // eslint-disable-line no-cond-assign\n node = node[bit];\n if (typeof node === 'number') {\n return node;\n }\n if (typeof node !== 'object') {\n throw new Error('invalid huffman sequence');\n }\n }\n return null;\n }\n function receive(initialLength) {\n let length = initialLength;\n let n = 0;\n while (length > 0) {\n const bit = readBit();\n if (bit === null) {\n return undefined;\n }\n n = (n << 1) | bit;\n --length;\n }\n return n;\n }\n function receiveAndExtend(length) {\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n function decodeBaseline(component, zz) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t);\n component.pred += diff;\n zz[0] = component.pred;\n let k = 1;\n while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15;\n const r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n } else {\n k += r;\n const z = dctZigZag[k];\n zz[z] = receiveAndExtend(s);\n k++;\n }\n }\n }\n function decodeDCFirst(component, zz) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : (receiveAndExtend(t) << successive);\n component.pred += diff;\n zz[0] = component.pred;\n }\n function decodeDCSuccessive(component, zz) {\n zz[0] |= readBit() << successive;\n }\n let eobrun = 0;\n function decodeACFirst(component, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15;\n const r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n } else {\n k += r;\n const z = dctZigZag[k];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n }\n let successiveACState = 0;\n let successiveACNextValue;\n function decodeACSuccessive(component, zz) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n while (k <= e) {\n const z = dctZigZag[k];\n const direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: { // initial state\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new Error('invalid ACn encoding');\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue; // eslint-disable-line no-continue\n }\n case 1: // skipping r zero items\n case 2:\n if (zz[z]) {\n zz[z] += (readBit() << successive) * direction;\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (zz[z]) {\n zz[z] += (readBit() << successive) * direction;\n } else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (zz[z]) {\n zz[z] += (readBit() << successive) * direction;\n }\n break;\n default:\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n function decodeMcu(component, decodeFunction, mcu, row, col) {\n const mcuRow = (mcu / mcusPerLine) | 0;\n const mcuCol = mcu % mcusPerLine;\n const blockRow = (mcuRow * component.v) + row;\n const blockCol = (mcuCol * component.h) + col;\n decodeFunction(component, component.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component, decodeFunction, mcu) {\n const blockRow = (mcu / component.blocksPerLine) | 0;\n const blockCol = mcu % component.blocksPerLine;\n decodeFunction(component, component.blocks[blockRow][blockCol]);\n }\n\n const componentsLength = components.length;\n let component;\n let i;\n let j;\n let k;\n let n;\n let decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n let mcu = 0;\n let marker;\n let mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n\n const usedResetInterval = resetInterval || mcuExpected;\n\n while (mcu < mcuExpected) {\n // reset interval stuff\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < usedResetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < usedResetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n const { h, v } = component;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n\n // If we've reached our expected MCU's, stop decoding\n if (mcu === mcuExpected) {\n break;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n marker = (data[offset] << 8) | data[offset + 1];\n if (marker < 0xFF00) {\n throw new Error('marker was not found');\n }\n\n if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\nfunction buildComponentData(frame, component) {\n const lines = [];\n const { blocksPerLine, blocksPerColumn } = component;\n const samplesPerLine = blocksPerLine << 3;\n const R = new Int32Array(64);\n const r = new Uint8Array(64);\n\n // A port of poppler's IDCT method which in turn is taken from:\n // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n // \"Practical Fast 1-D DCT Algorithms with 11 Multiplications\",\n // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n // 988-991.\n function quantizeAndInverse(zz, dataOut, dataIn) {\n const qt = component.quantizationTable;\n let v0;\n let v1;\n let v2;\n let v3;\n let v4;\n let v5;\n let v6;\n let v7;\n let t;\n const p = dataIn;\n let i;\n\n // dequant\n for (i = 0; i < 64; i++) {\n p[i] = zz[i] * qt[i];\n }\n\n // inverse DCT on rows\n for (i = 0; i < 8; ++i) {\n const row = 8 * i;\n\n // check for all-zero AC coefficients\n if (p[1 + row] === 0 && p[2 + row] === 0 && p[3 + row] === 0\n && p[4 + row] === 0 && p[5 + row] === 0 && p[6 + row] === 0\n && p[7 + row] === 0) {\n t = ((dctSqrt2 * p[0 + row]) + 512) >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue; // eslint-disable-line no-continue\n }\n\n // stage 4\n v0 = ((dctSqrt2 * p[0 + row]) + 128) >> 8;\n v1 = ((dctSqrt2 * p[4 + row]) + 128) >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = ((dctSqrt1d2 * (p[1 + row] - p[7 + row])) + 128) >> 8;\n v7 = ((dctSqrt1d2 * (p[1 + row] + p[7 + row])) + 128) >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = ((v2 * dctSin6) + (v3 * dctCos6) + 128) >> 8;\n v2 = ((v2 * dctCos6) - (v3 * dctSin6) + 128) >> 8;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = ((v4 * dctSin3) + (v7 * dctCos3) + 2048) >> 12;\n v4 = ((v4 * dctCos3) - (v7 * dctSin3) + 2048) >> 12;\n v7 = t;\n t = ((v5 * dctSin1) + (v6 * dctCos1) + 2048) >> 12;\n v5 = ((v5 * dctCos1) - (v6 * dctSin1) + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (i = 0; i < 8; ++i) {\n const col = i;\n\n // check for all-zero AC coefficients\n if (p[(1 * 8) + col] === 0 && p[(2 * 8) + col] === 0 && p[(3 * 8) + col] === 0\n && p[(4 * 8) + col] === 0 && p[(5 * 8) + col] === 0 && p[(6 * 8) + col] === 0\n && p[(7 * 8) + col] === 0) {\n t = ((dctSqrt2 * dataIn[i + 0]) + 8192) >> 14;\n p[(0 * 8) + col] = t;\n p[(1 * 8) + col] = t;\n p[(2 * 8) + col] = t;\n p[(3 * 8) + col] = t;\n p[(4 * 8) + col] = t;\n p[(5 * 8) + col] = t;\n p[(6 * 8) + col] = t;\n p[(7 * 8) + col] = t;\n continue; // eslint-disable-line no-continue\n }\n\n // stage 4\n v0 = ((dctSqrt2 * p[(0 * 8) + col]) + 2048) >> 12;\n v1 = ((dctSqrt2 * p[(4 * 8) + col]) + 2048) >> 12;\n v2 = p[(2 * 8) + col];\n v3 = p[(6 * 8) + col];\n v4 = ((dctSqrt1d2 * (p[(1 * 8) + col] - p[(7 * 8) + col])) + 2048) >> 12;\n v7 = ((dctSqrt1d2 * (p[(1 * 8) + col] + p[(7 * 8) + col])) + 2048) >> 12;\n v5 = p[(3 * 8) + col];\n v6 = p[(5 * 8) + col];\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = ((v2 * dctSin6) + (v3 * dctCos6) + 2048) >> 12;\n v2 = ((v2 * dctCos6) - (v3 * dctSin6) + 2048) >> 12;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = ((v4 * dctSin3) + (v7 * dctCos3) + 2048) >> 12;\n v4 = ((v4 * dctCos3) - (v7 * dctSin3) + 2048) >> 12;\n v7 = t;\n t = ((v5 * dctSin1) + (v6 * dctCos1) + 2048) >> 12;\n v5 = ((v5 * dctCos1) - (v6 * dctSin1) + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[(0 * 8) + col] = v0 + v7;\n p[(7 * 8) + col] = v0 - v7;\n p[(1 * 8) + col] = v1 + v6;\n p[(6 * 8) + col] = v1 - v6;\n p[(2 * 8) + col] = v2 + v5;\n p[(5 * 8) + col] = v2 - v5;\n p[(3 * 8) + col] = v3 + v4;\n p[(4 * 8) + col] = v3 - v4;\n }\n\n // convert to 8-bit integers\n for (i = 0; i < 64; ++i) {\n const sample = 128 + ((p[i] + 8) >> 4);\n if (sample < 0) {\n dataOut[i] = 0;\n } else if (sample > 0XFF) {\n dataOut[i] = 0xFF;\n } else {\n dataOut[i] = sample;\n }\n }\n }\n\n for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n const scanLine = blockRow << 3;\n for (let i = 0; i < 8; i++) {\n lines.push(new Uint8Array(samplesPerLine));\n }\n for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n\n let offset = 0;\n const sample = blockCol << 3;\n for (let j = 0; j < 8; j++) {\n const line = lines[scanLine + j];\n for (let i = 0; i < 8; i++) {\n line[sample + i] = r[offset++];\n }\n }\n }\n }\n return lines;\n}\n\nclass JpegStreamReader {\n constructor() {\n this.jfif = null;\n this.adobe = null;\n\n this.quantizationTables = [];\n this.huffmanTablesAC = [];\n this.huffmanTablesDC = [];\n this.resetFrames();\n }\n\n resetFrames() {\n this.frames = [];\n }\n\n parse(data) {\n let offset = 0;\n // const { length } = data;\n function readUint16() {\n const value = (data[offset] << 8) | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame) {\n let maxH = 0;\n let maxV = 0;\n let component;\n let componentId;\n for (componentId in frame.components) {\n if (frame.components.hasOwnProperty(componentId)) {\n component = frame.components[componentId];\n if (maxH < component.h) {\n maxH = component.h;\n }\n if (maxV < component.v) {\n maxV = component.v;\n }\n }\n }\n const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(frame.scanLines / 8 / maxV);\n for (componentId in frame.components) {\n if (frame.components.hasOwnProperty(componentId)) {\n component = frame.components[componentId];\n const blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n const blocks = [];\n for (let i = 0; i < blocksPerColumnForMcu; i++) {\n const row = [];\n for (let j = 0; j < blocksPerLineForMcu; j++) {\n row.push(new Int32Array(64));\n }\n blocks.push(row);\n }\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n component.blocks = blocks;\n }\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n let fileMarker = readUint16();\n if (fileMarker !== 0xFFD8) { // SOI (Start of Image)\n throw new Error('SOI not found');\n }\n\n fileMarker = readUint16();\n while (fileMarker !== 0xFFD9) { // EOI (End of image)\n switch (fileMarker) {\n case 0xFF00: break;\n case 0xFFE0: // APP0 (Application Specific)\n case 0xFFE1: // APP1\n case 0xFFE2: // APP2\n case 0xFFE3: // APP3\n case 0xFFE4: // APP4\n case 0xFFE5: // APP5\n case 0xFFE6: // APP6\n case 0xFFE7: // APP7\n case 0xFFE8: // APP8\n case 0xFFE9: // APP9\n case 0xFFEA: // APP10\n case 0xFFEB: // APP11\n case 0xFFEC: // APP12\n case 0xFFED: // APP13\n case 0xFFEE: // APP14\n case 0xFFEF: // APP15\n case 0xFFFE: { // COM (Comment)\n const appData = readDataBlock();\n\n if (fileMarker === 0xFFE0) {\n if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49\n && appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\\x00'\n this.jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + (3 * appData[12] * appData[13])),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xFFEE) {\n if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F\n && appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\\x00'\n this.adobe = {\n version: appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n }\n\n case 0xFFDB: { // DQT (Define Quantization Tables)\n const quantizationTablesLength = readUint16();\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Int32Array(64);\n if ((quantizationTableSpec >> 4) === 0) { // 8 bit values\n for (let j = 0; j < 64; j++) {\n const z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if ((quantizationTableSpec >> 4) === 1) { // 16 bit\n for (let j = 0; j < 64; j++) {\n const z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else {\n throw new Error('DQT: invalid table spec');\n }\n this.quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n }\n\n case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xFFC1: // SOF1 (Start of Frame, Extended DCT)\n case 0xFFC2: { // SOF2 (Start of Frame, Progressive DCT)\n readUint16(); // skip data length\n const frame = {\n extended: (fileMarker === 0xFFC1),\n progressive: (fileMarker === 0xFFC2),\n precision: data[offset++],\n scanLines: readUint16(),\n samplesPerLine: readUint16(),\n components: {},\n componentsOrder: [],\n };\n\n const componentsCount = data[offset++];\n let componentId;\n // let maxH = 0;\n // let maxV = 0;\n for (let i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n const qId = data[offset + 2];\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId,\n };\n offset += 3;\n }\n prepareComponents(frame);\n this.frames.push(frame);\n break;\n }\n\n case 0xFFC4: { // DHT (Define Huffman Tables)\n const huffmanLength = readUint16();\n for (let i = 2; i < huffmanLength;) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (let j = 0; j < 16; j++, offset++) {\n codeLengths[j] = data[offset];\n codeLengthSum += codeLengths[j];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (let j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n if ((huffmanTableSpec >> 4) === 0) {\n this.huffmanTablesDC[huffmanTableSpec & 15] = buildHuffmanTable(\n codeLengths, huffmanValues,\n );\n } else {\n this.huffmanTablesAC[huffmanTableSpec & 15] = buildHuffmanTable(\n codeLengths, huffmanValues,\n );\n }\n }\n break;\n }\n\n case 0xFFDD: // DRI (Define Restart Interval)\n readUint16(); // skip data length\n this.resetInterval = readUint16();\n break;\n\n case 0xFFDA: { // SOS (Start of Scan)\n readUint16(); // skip length\n const selectorsCount = data[offset++];\n const components = [];\n const frame = this.frames[0];\n for (let i = 0; i < selectorsCount; i++) {\n const component = frame.components[data[offset++]];\n const tableSpec = data[offset++];\n component.huffmanTableDC = this.huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = this.huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset,\n frame, components, this.resetInterval,\n spectralStart, spectralEnd,\n successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n break;\n }\n\n case 0xFFFF: // Fill bytes\n if (data[offset] !== 0xFF) { // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n if (data[offset - 3] === 0xFF\n && data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n // could be incorrect encoding -- last 0xFF byte of the previous\n // block was eaten by the encoder\n offset -= 3;\n break;\n }\n throw new Error(`unknown JPEG marker ${fileMarker.toString(16)}`);\n }\n fileMarker = readUint16();\n }\n }\n\n getResult() {\n const { frames } = this;\n if (this.frames.length === 0) {\n throw new Error('no frames were decoded');\n } else if (this.frames.length > 1) {\n console.warn('more than one frame is not supported');\n }\n\n // set each frame's components quantization table\n for (let i = 0; i < this.frames.length; i++) {\n const cp = this.frames[i].components;\n for (const j of Object.keys(cp)) {\n cp[j].quantizationTable = this.quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n\n const frame = frames[0];\n const { components, componentsOrder } = frame;\n const outComponents = [];\n const width = frame.samplesPerLine;\n const height = frame.scanLines;\n\n for (let i = 0; i < componentsOrder.length; i++) {\n const component = components[componentsOrder[i]];\n outComponents.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n });\n }\n\n const out = new Uint8Array(width * height * outComponents.length);\n let oi = 0;\n for (let y = 0; y < height; ++y) {\n for (let x = 0; x < width; ++x) {\n for (let i = 0; i < outComponents.length; ++i) {\n const component = outComponents[i];\n out[oi] = component.lines[0 | y * component.scaleY][0 | x * component.scaleX];\n ++oi;\n }\n }\n }\n return out;\n }\n}\n\nexport default class JpegDecoder extends BaseDecoder {\n constructor(fileDirectory) {\n super();\n this.reader = new JpegStreamReader();\n if (fileDirectory.JPEGTables) {\n this.reader.parse(fileDirectory.JPEGTables);\n }\n }\n\n decodeBlock(buffer) {\n this.reader.resetFrames();\n this.reader.parse(new Uint8Array(buffer));\n return this.reader.getResult().buffer;\n }\n}\n","\n/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,\n // \"inconsistent bit counts\");\n //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n for (n = 0; n <= max_code; n++) {\n let len = tree[n * 2 + 1]/*.Len*/;\n if (len === 0) { continue; }\n /* Now reverse the bits */\n tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n // n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n }\n};\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nconst tr_static_init = () => {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","import { inflate } from 'pako';\nimport BaseDecoder from './basedecoder';\n\nexport default class DeflateDecoder extends BaseDecoder {\n decodeBlock(buffer) {\n return inflate(new Uint8Array(buffer)).buffer;\n }\n}\n","import BaseDecoder from './basedecoder';\n\n\nexport default class PackbitsDecoder extends BaseDecoder {\n decodeBlock(buffer) {\n const dataView = new DataView(buffer);\n const out = [];\n\n for (let i = 0; i < buffer.byteLength; ++i) {\n let header = dataView.getInt8(i);\n if (header < 0) {\n const next = dataView.getUint8(i + 1);\n header = -header;\n for (let j = 0; j <= header; ++j) {\n out.push(next);\n }\n i += 1;\n } else {\n for (let j = 0; j <= header; ++j) {\n out.push(dataView.getUint8(i + j + 1));\n }\n i += header + 1;\n }\n }\n return new Uint8Array(out).buffer;\n }\n}\n","import { inflate } from 'pako';\nimport Lerc from 'lerc';\nimport BaseDecoder from './basedecoder';\nimport { LercParameters, LercAddCompression } from '../globals';\n\nexport default class LercDecoder extends BaseDecoder {\n constructor(fileDirectory) {\n super();\n\n this.planarConfiguration = typeof fileDirectory.PlanarConfiguration !== 'undefined' ? fileDirectory.PlanarConfiguration : 1;\n this.samplesPerPixel = typeof fileDirectory.SamplesPerPixel !== 'undefined' ? fileDirectory.SamplesPerPixel : 1;\n\n this.addCompression = fileDirectory.LercParameters[LercParameters.AddCompression];\n }\n\n interleavePixels(bandInterleavedData) {\n const pixelInterleavedData = new bandInterleavedData.constructor(bandInterleavedData.length);\n const lengthPerSample = bandInterleavedData.length / this.samplesPerPixel;\n for (let i = 0; i < lengthPerSample; i++) {\n for (let j = 0; j < this.samplesPerPixel; j++) {\n pixelInterleavedData[i * this.samplesPerPixel + j] = bandInterleavedData[i + j * lengthPerSample];\n }\n }\n return pixelInterleavedData;\n }\n\n decodeBlock(buffer) {\n switch (this.addCompression) {\n case LercAddCompression.None:\n break;\n case LercAddCompression.Deflate:\n buffer = inflate(new Uint8Array(buffer)).buffer;\n break;\n default:\n throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`);\n }\n\n const lercResult = Lerc.decode(buffer);\n const lercData = lercResult.pixels[0]; // always band-interleaved\n const decodedData = this.planarConfiguration === 1 ? this.interleavePixels(lercData) : lercData; // transform to pixel-interleaved if expected\n return decodedData.buffer;\n }\n}\n","import RawDecoder from './raw';\nimport LZWDecoder from './lzw';\nimport JpegDecoder from './jpeg';\nimport DeflateDecoder from './deflate';\nimport PackbitsDecoder from './packbits';\nimport LercDecoder from './lerc';\n\nexport function getDecoder(fileDirectory) {\n switch (fileDirectory.Compression) {\n case undefined:\n case 1: // no compression\n return new RawDecoder();\n case 5: // LZW\n return new LZWDecoder(fileDirectory);\n case 6: // JPEG\n throw new Error('old style JPEG compression is not supported.');\n case 7: // JPEG\n return new JpegDecoder(fileDirectory);\n case 8: // Deflate as recognized by Adobe\n case 32946: // Deflate GDAL default\n return new DeflateDecoder();\n case 32773: // packbits\n return new PackbitsDecoder();\n case 34887: // LERC\n return new LercDecoder(fileDirectory);\n default:\n throw new Error(`Unknown compression method identifier: ${fileDirectory.Compression}`);\n }\n}\n","/**\n * @module resample\n */\n\nfunction copyNewSize(array, width, height, samplesPerPixel = 1) {\n return new (Object.getPrototypeOf(array).constructor)(width * height * samplesPerPixel);\n}\n\n/**\n * Resample the input arrays using nearest neighbor value selection.\n * @param {TypedArray[]} valueArrays The input arrays to resample\n * @param {number} inWidth The width of the input rasters\n * @param {number} inHeight The height of the input rasters\n * @param {number} outWidth The desired width of the output rasters\n * @param {number} outHeight The desired height of the output rasters\n * @returns {TypedArray[]} The resampled rasters\n */\nexport function resampleNearest(valueArrays, inWidth, inHeight, outWidth, outHeight) {\n const relX = inWidth / outWidth;\n const relY = inHeight / outHeight;\n return valueArrays.map((array) => {\n const newArray = copyNewSize(array, outWidth, outHeight);\n for (let y = 0; y < outHeight; ++y) {\n const cy = Math.min(Math.round(relY * y), inHeight - 1);\n for (let x = 0; x < outWidth; ++x) {\n const cx = Math.min(Math.round(relX * x), inWidth - 1);\n const value = array[(cy * inWidth) + cx];\n newArray[(y * outWidth) + x] = value;\n }\n }\n return newArray;\n });\n}\n\n// simple linear interpolation, code from:\n// https://en.wikipedia.org/wiki/Linear_interpolation#Programming_language_support\nfunction lerp(v0, v1, t) {\n return ((1 - t) * v0) + (t * v1);\n}\n\n/**\n * Resample the input arrays using bilinear interpolation.\n * @param {TypedArray[]} valueArrays The input arrays to resample\n * @param {number} inWidth The width of the input rasters\n * @param {number} inHeight The height of the input rasters\n * @param {number} outWidth The desired width of the output rasters\n * @param {number} outHeight The desired height of the output rasters\n * @returns {TypedArray[]} The resampled rasters\n */\nexport function resampleBilinear(valueArrays, inWidth, inHeight, outWidth, outHeight) {\n const relX = inWidth / outWidth;\n const relY = inHeight / outHeight;\n\n return valueArrays.map((array) => {\n const newArray = copyNewSize(array, outWidth, outHeight);\n for (let y = 0; y < outHeight; ++y) {\n const rawY = relY * y;\n\n const yl = Math.floor(rawY);\n const yh = Math.min(Math.ceil(rawY), (inHeight - 1));\n\n for (let x = 0; x < outWidth; ++x) {\n const rawX = relX * x;\n const tx = rawX % 1;\n\n const xl = Math.floor(rawX);\n const xh = Math.min(Math.ceil(rawX), (inWidth - 1));\n\n const ll = array[(yl * inWidth) + xl];\n const hl = array[(yl * inWidth) + xh];\n const lh = array[(yh * inWidth) + xl];\n const hh = array[(yh * inWidth) + xh];\n\n const value = lerp(\n lerp(ll, hl, tx),\n lerp(lh, hh, tx),\n rawY % 1,\n );\n newArray[(y * outWidth) + x] = value;\n }\n }\n return newArray;\n });\n}\n\n/**\n * Resample the input arrays using the selected resampling method.\n * @param {TypedArray[]} valueArrays The input arrays to resample\n * @param {number} inWidth The width of the input rasters\n * @param {number} inHeight The height of the input rasters\n * @param {number} outWidth The desired width of the output rasters\n * @param {number} outHeight The desired height of the output rasters\n * @param {string} [method = 'nearest'] The desired resampling method\n * @returns {TypedArray[]} The resampled rasters\n */\nexport function resample(valueArrays, inWidth, inHeight, outWidth, outHeight, method = 'nearest') {\n switch (method.toLowerCase()) {\n case 'nearest':\n return resampleNearest(valueArrays, inWidth, inHeight, outWidth, outHeight);\n case 'bilinear':\n case 'linear':\n return resampleBilinear(valueArrays, inWidth, inHeight, outWidth, outHeight);\n default:\n throw new Error(`Unsupported resampling method: '${method}'`);\n }\n}\n\n/**\n * Resample the pixel interleaved input array using nearest neighbor value selection.\n * @param {TypedArray} valueArrays The input arrays to resample\n * @param {number} inWidth The width of the input rasters\n * @param {number} inHeight The height of the input rasters\n * @param {number} outWidth The desired width of the output rasters\n * @param {number} outHeight The desired height of the output rasters\n * @param {number} samples The number of samples per pixel for pixel\n * interleaved data\n * @returns {TypedArray} The resampled raster\n */\nexport function resampleNearestInterleaved(\n valueArray, inWidth, inHeight, outWidth, outHeight, samples) {\n const relX = inWidth / outWidth;\n const relY = inHeight / outHeight;\n\n const newArray = copyNewSize(valueArray, outWidth, outHeight, samples);\n for (let y = 0; y < outHeight; ++y) {\n const cy = Math.min(Math.round(relY * y), inHeight - 1);\n for (let x = 0; x < outWidth; ++x) {\n const cx = Math.min(Math.round(relX * x), inWidth - 1);\n for (let i = 0; i < samples; ++i) {\n const value = valueArray[(cy * inWidth * samples) + (cx * samples) + i];\n newArray[(y * outWidth * samples) + (x * samples) + i] = value;\n }\n }\n }\n return newArray;\n}\n\n/**\n * Resample the pixel interleaved input array using bilinear interpolation.\n * @param {TypedArray} valueArrays The input arrays to resample\n * @param {number} inWidth The width of the input rasters\n * @param {number} inHeight The height of the input rasters\n * @param {number} outWidth The desired width of the output rasters\n * @param {number} outHeight The desired height of the output rasters\n * @param {number} samples The number of samples per pixel for pixel\n * interleaved data\n * @returns {TypedArray} The resampled raster\n */\nexport function resampleBilinearInterleaved(\n valueArray, inWidth, inHeight, outWidth, outHeight, samples) {\n const relX = inWidth / outWidth;\n const relY = inHeight / outHeight;\n const newArray = copyNewSize(valueArray, outWidth, outHeight, samples);\n for (let y = 0; y < outHeight; ++y) {\n const rawY = relY * y;\n\n const yl = Math.floor(rawY);\n const yh = Math.min(Math.ceil(rawY), (inHeight - 1));\n\n for (let x = 0; x < outWidth; ++x) {\n const rawX = relX * x;\n const tx = rawX % 1;\n\n const xl = Math.floor(rawX);\n const xh = Math.min(Math.ceil(rawX), (inWidth - 1));\n\n for (let i = 0; i < samples; ++i) {\n const ll = valueArray[(yl * inWidth * samples) + (xl * samples) + i];\n const hl = valueArray[(yl * inWidth * samples) + (xh * samples) + i];\n const lh = valueArray[(yh * inWidth * samples) + (xl * samples) + i];\n const hh = valueArray[(yh * inWidth * samples) + (xh * samples) + i];\n\n const value = lerp(\n lerp(ll, hl, tx),\n lerp(lh, hh, tx),\n rawY % 1,\n );\n newArray[(y * outWidth * samples) + (x * samples) + i] = value;\n }\n }\n }\n return newArray;\n}\n\n/**\n * Resample the pixel interleaved input array using the selected resampling method.\n * @param {TypedArray} valueArray The input array to resample\n * @param {number} inWidth The width of the input rasters\n * @param {number} inHeight The height of the input rasters\n * @param {number} outWidth The desired width of the output rasters\n * @param {number} outHeight The desired height of the output rasters\n * @param {number} samples The number of samples per pixel for pixel\n * interleaved data\n * @param {string} [method = 'nearest'] The desired resampling method\n * @returns {TypedArray} The resampled rasters\n */\nexport function resampleInterleaved(valueArray, inWidth, inHeight, outWidth, outHeight, samples, method = 'nearest') {\n switch (method.toLowerCase()) {\n case 'nearest':\n return resampleNearestInterleaved(\n valueArray, inWidth, inHeight, outWidth, outHeight, samples,\n );\n case 'bilinear':\n case 'linear':\n return resampleBilinearInterleaved(\n valueArray, inWidth, inHeight, outWidth, outHeight, samples,\n );\n default:\n throw new Error(`Unsupported resampling method: '${method}'`);\n }\n}\n","/* eslint max-len: [\"error\", { \"code\": 120 }] */\n\nimport { getFloat16 } from '@petamoriken/float16';\nimport { parse } from 'txml/txml';\n\nimport { photometricInterpretations, ExtraSamplesValues } from './globals';\nimport { fromWhiteIsZero, fromBlackIsZero, fromPalette, fromCMYK, fromYCbCr, fromCIELab } from './rgb';\nimport { getDecoder } from './compression';\nimport { resample, resampleInterleaved } from './resample';\n\nfunction sum(array, start, end) {\n let s = 0;\n for (let i = start; i < end; ++i) {\n s += array[i];\n }\n return s;\n}\n\nfunction arrayForType(format, bitsPerSample, size) {\n switch (format) {\n case 1: // unsigned integer data\n if (bitsPerSample <= 8) {\n return new Uint8Array(size);\n } else if (bitsPerSample <= 16) {\n return new Uint16Array(size);\n } else if (bitsPerSample <= 32) {\n return new Uint32Array(size);\n }\n break;\n case 2: // twos complement signed integer data\n if (bitsPerSample === 8) {\n return new Int8Array(size);\n } else if (bitsPerSample === 16) {\n return new Int16Array(size);\n } else if (bitsPerSample === 32) {\n return new Int32Array(size);\n }\n break;\n case 3: // floating point data\n switch (bitsPerSample) {\n case 16:\n case 32:\n return new Float32Array(size);\n case 64:\n return new Float64Array(size);\n default:\n break;\n }\n break;\n default:\n break;\n }\n throw Error('Unsupported data format/bitsPerSample');\n}\n\nfunction needsNormalization(format, bitsPerSample) {\n if ((format === 1 || format === 2) && bitsPerSample <= 32 && bitsPerSample % 8 === 0) {\n return false;\n } else if (format === 3 && (bitsPerSample === 16 || bitsPerSample === 32 || bitsPerSample === 64)) {\n return false;\n }\n return true;\n}\n\nfunction normalizeArray(inBuffer, format, planarConfiguration, samplesPerPixel, bitsPerSample, tileWidth, tileHeight) {\n // const inByteArray = new Uint8Array(inBuffer);\n const view = new DataView(inBuffer);\n const outSize = planarConfiguration === 2\n ? tileHeight * tileWidth\n : tileHeight * tileWidth * samplesPerPixel;\n const samplesToTransfer = planarConfiguration === 2\n ? 1 : samplesPerPixel;\n const outArray = arrayForType(format, bitsPerSample, outSize);\n // let pixel = 0;\n\n const bitMask = parseInt('1'.repeat(bitsPerSample), 2);\n\n if (format === 1) { // unsigned integer\n // translation of https://github.com/OSGeo/gdal/blob/master/gdal/frmts/gtiff/geotiff.cpp#L7337\n let pixelBitSkip;\n // let sampleBitOffset = 0;\n if (planarConfiguration === 1) {\n pixelBitSkip = samplesPerPixel * bitsPerSample;\n // sampleBitOffset = (samplesPerPixel - 1) * bitsPerSample;\n } else {\n pixelBitSkip = bitsPerSample;\n }\n\n // Bits per line rounds up to next byte boundary.\n let bitsPerLine = tileWidth * pixelBitSkip;\n if ((bitsPerLine & 7) !== 0) {\n bitsPerLine = (bitsPerLine + 7) & (~7);\n }\n\n for (let y = 0; y < tileHeight; ++y) {\n const lineBitOffset = y * bitsPerLine;\n for (let x = 0; x < tileWidth; ++x) {\n const pixelBitOffset = lineBitOffset + (x * samplesToTransfer * bitsPerSample);\n for (let i = 0; i < samplesToTransfer; ++i) {\n const bitOffset = pixelBitOffset + (i * bitsPerSample);\n const outIndex = (((y * tileWidth) + x) * samplesToTransfer) + i;\n\n const byteOffset = Math.floor(bitOffset / 8);\n const innerBitOffset = bitOffset % 8;\n if (innerBitOffset + bitsPerSample <= 8) {\n outArray[outIndex] = (view.getUint8(byteOffset) >> (8 - bitsPerSample) - innerBitOffset) & bitMask;\n } else if (innerBitOffset + bitsPerSample <= 16) {\n outArray[outIndex] = (view.getUint16(byteOffset) >> (16 - bitsPerSample) - innerBitOffset) & bitMask;\n } else if (innerBitOffset + bitsPerSample <= 24) {\n const raw = (view.getUint16(byteOffset) << 8) | (view.getUint8(byteOffset + 2));\n outArray[outIndex] = (raw >> (24 - bitsPerSample) - innerBitOffset) & bitMask;\n } else {\n outArray[outIndex] = (view.getUint32(byteOffset) >> (32 - bitsPerSample) - innerBitOffset) & bitMask;\n }\n\n\n // let outWord = 0;\n // for (let bit = 0; bit < bitsPerSample; ++bit) {\n // if (inByteArray[bitOffset >> 3]\n // & (0x80 >> (bitOffset & 7))) {\n // outWord |= (1 << (bitsPerSample - 1 - bit));\n // }\n // ++bitOffset;\n // }\n\n // outArray[outIndex] = outWord;\n // outArray[pixel] = outWord;\n // pixel += 1;\n }\n // bitOffset = bitOffset + pixelBitSkip - bitsPerSample;\n }\n }\n } else if (format === 3) { // floating point\n // Float16 is handled elsewhere\n // normalize 16/24 bit floats to 32 bit floats in the array\n // console.time();\n // if (bitsPerSample === 16) {\n // for (let byte = 0, outIndex = 0; byte < inBuffer.byteLength; byte += 2, ++outIndex) {\n // outArray[outIndex] = getFloat16(view, byte);\n // }\n // }\n // console.timeEnd()\n }\n\n return outArray.buffer;\n}\n\n/**\n * GeoTIFF sub-file image.\n */\nclass GeoTIFFImage {\n /**\n * @constructor\n * @param {Object} fileDirectory The parsed file directory\n * @param {Object} geoKeys The parsed geo-keys\n * @param {DataView} dataView The DataView for the underlying file.\n * @param {Boolean} littleEndian Whether the file is encoded in little or big endian\n * @param {Boolean} cache Whether or not decoded tiles shall be cached\n * @param {Source} source The datasource to read from\n */\n constructor(fileDirectory, geoKeys, dataView, littleEndian, cache, source) {\n this.fileDirectory = fileDirectory;\n this.geoKeys = geoKeys;\n this.dataView = dataView;\n this.littleEndian = littleEndian;\n this.tiles = cache ? {} : null;\n this.isTiled = !fileDirectory.StripOffsets;\n const planarConfiguration = fileDirectory.PlanarConfiguration;\n this.planarConfiguration = (typeof planarConfiguration === 'undefined') ? 1 : planarConfiguration;\n if (this.planarConfiguration !== 1 && this.planarConfiguration !== 2) {\n throw new Error('Invalid planar configuration.');\n }\n\n this.source = source;\n }\n\n /**\n * Returns the associated parsed file directory.\n * @returns {Object} the parsed file directory\n */\n getFileDirectory() {\n return this.fileDirectory;\n }\n\n /**\n * Returns the associated parsed geo keys.\n * @returns {Object} the parsed geo keys\n */\n getGeoKeys() {\n return this.geoKeys;\n }\n\n /**\n * Returns the width of the image.\n * @returns {Number} the width of the image\n */\n getWidth() {\n return this.fileDirectory.ImageWidth;\n }\n\n /**\n * Returns the height of the image.\n * @returns {Number} the height of the image\n */\n getHeight() {\n return this.fileDirectory.ImageLength;\n }\n\n /**\n * Returns the number of samples per pixel.\n * @returns {Number} the number of samples per pixel\n */\n getSamplesPerPixel() {\n return typeof this.fileDirectory.SamplesPerPixel !== 'undefined'\n ? this.fileDirectory.SamplesPerPixel : 1;\n }\n\n /**\n * Returns the width of each tile.\n * @returns {Number} the width of each tile\n */\n getTileWidth() {\n return this.isTiled ? this.fileDirectory.TileWidth : this.getWidth();\n }\n\n /**\n * Returns the height of each tile.\n * @returns {Number} the height of each tile\n */\n getTileHeight() {\n if (this.isTiled) {\n return this.fileDirectory.TileLength;\n }\n if (typeof this.fileDirectory.RowsPerStrip !== 'undefined') {\n return Math.min(this.fileDirectory.RowsPerStrip, this.getHeight());\n }\n return this.getHeight();\n }\n\n getBlockWidth() {\n return this.getTileWidth();\n }\n\n getBlockHeight(y) {\n if (this.isTiled || (y + 1) * this.getTileHeight() <= this.getHeight()) {\n return this.getTileHeight();\n } else {\n return this.getHeight() - (y * this.getTileHeight());\n }\n }\n\n /**\n * Calculates the number of bytes for each pixel across all samples. Only full\n * bytes are supported, an exception is thrown when this is not the case.\n * @returns {Number} the bytes per pixel\n */\n getBytesPerPixel() {\n let bytes = 0;\n for (let i = 0; i < this.fileDirectory.BitsPerSample.length; ++i) {\n bytes += this.getSampleByteSize(i);\n }\n return bytes;\n }\n\n getSampleByteSize(i) {\n if (i >= this.fileDirectory.BitsPerSample.length) {\n throw new RangeError(`Sample index ${i} is out of range.`);\n }\n return Math.ceil(this.fileDirectory.BitsPerSample[i] / 8);\n }\n\n getReaderForSample(sampleIndex) {\n const format = this.fileDirectory.SampleFormat\n ? this.fileDirectory.SampleFormat[sampleIndex] : 1;\n const bitsPerSample = this.fileDirectory.BitsPerSample[sampleIndex];\n switch (format) {\n case 1: // unsigned integer data\n if (bitsPerSample <= 8) {\n return DataView.prototype.getUint8;\n } else if (bitsPerSample <= 16) {\n return DataView.prototype.getUint16;\n } else if (bitsPerSample <= 32) {\n return DataView.prototype.getUint32;\n }\n break;\n case 2: // twos complement signed integer data\n if (bitsPerSample <= 8) {\n return DataView.prototype.getInt8;\n } else if (bitsPerSample <= 16) {\n return DataView.prototype.getInt16;\n } else if (bitsPerSample <= 32) {\n return DataView.prototype.getInt32;\n }\n break;\n case 3:\n switch (bitsPerSample) {\n case 16:\n return function (offset, littleEndian) {\n return getFloat16(this, offset, littleEndian);\n };\n case 32:\n return DataView.prototype.getFloat32;\n case 64:\n return DataView.prototype.getFloat64;\n default:\n break;\n }\n break;\n default:\n break;\n }\n throw Error('Unsupported data format/bitsPerSample');\n }\n\n getSampleFormat(sampleIndex = 0) {\n return this.fileDirectory.SampleFormat\n ? this.fileDirectory.SampleFormat[sampleIndex] : 1;\n }\n\n getBitsPerSample(sampleIndex = 0) {\n return this.fileDirectory.BitsPerSample[sampleIndex];\n }\n\n getArrayForSample(sampleIndex, size) {\n const format = this.getSampleFormat(sampleIndex);\n const bitsPerSample = this.getBitsPerSample(sampleIndex);\n return arrayForType(format, bitsPerSample, size);\n }\n\n /**\n * Returns the decoded strip or tile.\n * @param {Number} x the strip or tile x-offset\n * @param {Number} y the tile y-offset (0 for stripped images)\n * @param {Number} sample the sample to get for separated samples\n * @param {Pool|AbstractDecoder} poolOrDecoder the decoder or decoder pool\n * @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is\n * to be aborted\n * @returns {Promise.<ArrayBuffer>}\n */\n async getTileOrStrip(x, y, sample, poolOrDecoder, signal) {\n const numTilesPerRow = Math.ceil(this.getWidth() / this.getTileWidth());\n const numTilesPerCol = Math.ceil(this.getHeight() / this.getTileHeight());\n let index;\n const { tiles } = this;\n if (this.planarConfiguration === 1) {\n index = (y * numTilesPerRow) + x;\n } else if (this.planarConfiguration === 2) {\n index = (sample * numTilesPerRow * numTilesPerCol) + (y * numTilesPerRow) + x;\n }\n\n let offset;\n let byteCount;\n if (this.isTiled) {\n offset = this.fileDirectory.TileOffsets[index];\n byteCount = this.fileDirectory.TileByteCounts[index];\n } else {\n offset = this.fileDirectory.StripOffsets[index];\n byteCount = this.fileDirectory.StripByteCounts[index];\n }\n const slice = (await this.source.fetch([{ offset, length: byteCount }], signal))[0];\n\n let request;\n if (tiles === null || !tiles[index]) {\n // resolve each request by potentially applying array normalization\n request = (async () => {\n let data = await poolOrDecoder.decode(this.fileDirectory, slice);\n const sampleFormat = this.getSampleFormat();\n const bitsPerSample = this.getBitsPerSample();\n if (needsNormalization(sampleFormat, bitsPerSample)) {\n data = normalizeArray(\n data,\n sampleFormat,\n this.planarConfiguration,\n this.getSamplesPerPixel(),\n bitsPerSample,\n this.getTileWidth(),\n this.getBlockHeight(y),\n );\n }\n return data;\n })();\n\n // set the cache\n if (tiles !== null) {\n tiles[index] = request;\n }\n } else {\n // get from the cache\n request = tiles[index];\n }\n\n // cache the tile request\n return { x, y, sample, data: await request };\n }\n\n /**\n * Internal read function.\n * @private\n * @param {Array} imageWindow The image window in pixel coordinates\n * @param {Array} samples The selected samples (0-based indices)\n * @param {TypedArray[]|TypedArray} valueArrays The array(s) to write into\n * @param {Boolean} interleave Whether or not to write in an interleaved manner\n * @param {Pool|AbstractDecoder} poolOrDecoder the decoder or decoder pool\n * @param {number} width the width of window to be read into\n * @param {number} height the height of window to be read into\n * @param {number} resampleMethod the resampling method to be used when interpolating\n * @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is\n * to be aborted\n * @returns {Promise<TypedArray[]>|Promise<TypedArray>}\n */\n async _readRaster(imageWindow, samples, valueArrays, interleave, poolOrDecoder, width, height, resampleMethod, signal) {\n const tileWidth = this.getTileWidth();\n const tileHeight = this.getTileHeight();\n\n const minXTile = Math.max(Math.floor(imageWindow[0] / tileWidth), 0);\n const maxXTile = Math.min(\n Math.ceil(imageWindow[2] / tileWidth),\n Math.ceil(this.getWidth() / this.getTileWidth()),\n );\n const minYTile = Math.max(Math.floor(imageWindow[1] / tileHeight), 0);\n const maxYTile = Math.min(\n Math.ceil(imageWindow[3] / tileHeight),\n Math.ceil(this.getHeight() / this.getTileHeight()),\n );\n const windowWidth = imageWindow[2] - imageWindow[0];\n\n let bytesPerPixel = this.getBytesPerPixel();\n\n const srcSampleOffsets = [];\n const sampleReaders = [];\n for (let i = 0; i < samples.length; ++i) {\n if (this.planarConfiguration === 1) {\n srcSampleOffsets.push(sum(this.fileDirectory.BitsPerSample, 0, samples[i]) / 8);\n } else {\n srcSampleOffsets.push(0);\n }\n sampleReaders.push(this.getReaderForSample(samples[i]));\n }\n\n const promises = [];\n const { littleEndian } = this;\n\n for (let yTile = minYTile; yTile < maxYTile; ++yTile) {\n for (let xTile = minXTile; xTile < maxXTile; ++xTile) {\n for (let sampleIndex = 0; sampleIndex < samples.length; ++sampleIndex) {\n const si = sampleIndex;\n const sample = samples[sampleIndex];\n if (this.planarConfiguration === 2) {\n bytesPerPixel = this.getSampleByteSize(sampleIndex);\n }\n const promise = this.getTileOrStrip(xTile, yTile, sample, poolOrDecoder, signal).then((tile) => {\n const buffer = tile.data;\n const dataView = new DataView(buffer);\n const blockHeight = this.getBlockHeight(tile.y);\n const firstLine = tile.y * tileHeight;\n const firstCol = tile.x * tileWidth;\n const lastLine = firstLine + blockHeight;\n const lastCol = (tile.x + 1) * tileWidth;\n const reader = sampleReaders[si];\n\n const ymax = Math.min(blockHeight, blockHeight - (lastLine - imageWindow[3]));\n const xmax = Math.min(tileWidth, tileWidth - (lastCol - imageWindow[2]));\n\n for (let y = Math.max(0, imageWindow[1] - firstLine); y < ymax; ++y) {\n for (let x = Math.max(0, imageWindow[0] - firstCol); x < xmax; ++x) {\n const pixelOffset = ((y * tileWidth) + x) * bytesPerPixel;\n const value = reader.call(\n dataView, pixelOffset + srcSampleOffsets[si], littleEndian,\n );\n let windowCoordinate;\n if (interleave) {\n windowCoordinate = ((y + firstLine - imageWindow[1]) * windowWidth * samples.length)\n + ((x + firstCol - imageWindow[0]) * samples.length)\n + si;\n valueArrays[windowCoordinate] = value;\n } else {\n windowCoordinate = (\n (y + firstLine - imageWindow[1]) * windowWidth\n ) + x + firstCol - imageWindow[0];\n valueArrays[si][windowCoordinate] = value;\n }\n }\n }\n });\n promises.push(promise);\n }\n }\n }\n await Promise.all(promises);\n\n if ((width && (imageWindow[2] - imageWindow[0]) !== width)\n || (height && (imageWindow[3] - imageWindow[1]) !== height)) {\n let resampled;\n if (interleave) {\n resampled = resampleInterleaved(\n valueArrays,\n imageWindow[2] - imageWindow[0],\n imageWindow[3] - imageWindow[1],\n width, height,\n samples.length,\n resampleMethod,\n );\n } else {\n resampled = resample(\n valueArrays,\n imageWindow[2] - imageWindow[0],\n imageWindow[3] - imageWindow[1],\n width, height,\n resampleMethod,\n );\n }\n resampled.width = width;\n resampled.height = height;\n return resampled;\n }\n\n valueArrays.width = width || imageWindow[2] - imageWindow[0];\n valueArrays.height = height || imageWindow[3] - imageWindow[1];\n\n return valueArrays;\n }\n\n /**\n * Reads raster data from the image. This function reads all selected samples\n * into separate arrays of the correct type for that sample or into a single\n * combined array when `interleave` is set. When provided, only a subset\n * of the raster is read for each sample.\n *\n * @param {Object} [options={}] optional parameters\n * @param {Array} [options.window=whole image] the subset to read data from.\n * @param {Array} [options.samples=all samples] the selection of samples to read from.\n * @param {Boolean} [options.interleave=false] whether the data shall be read\n * in one single array or separate\n * arrays.\n * @param {Number} [options.pool=null] The optional decoder pool to use.\n * @param {number} [options.width] The desired width of the output. When the width is\n * not the same as the images, resampling will be\n * performed.\n * @param {number} [options.height] The desired height of the output. When the width\n * is not the same as the images, resampling will\n * be performed.\n * @param {string} [options.resampleMethod='nearest'] The desired resampling method.\n * @param {number|number[]} [options.fillValue] The value to use for parts of the image\n * outside of the images extent. When\n * multiple samples are requested, an\n * array of fill values can be passed.\n * @param {AbortSignal} [options.signal] An AbortSignal that may be signalled if the request is\n * to be aborted\n * @returns {Promise.<(TypedArray|TypedArray[])>} the decoded arrays as a promise\n */\n async readRasters({\n window: wnd, samples = [], interleave, pool = null,\n width, height, resampleMethod, fillValue, signal,\n } = {}) {\n const imageWindow = wnd || [0, 0, this.getWidth(), this.getHeight()];\n\n // check parameters\n if (imageWindow[0] > imageWindow[2] || imageWindow[1] > imageWindow[3]) {\n throw new Error('Invalid subsets');\n }\n\n const imageWindowWidth = imageWindow[2] - imageWindow[0];\n const imageWindowHeight = imageWindow[3] - imageWindow[1];\n const numPixels = imageWindowWidth * imageWindowHeight;\n const samplesPerPixel = this.getSamplesPerPixel();\n\n if (!samples || !samples.length) {\n for (let i = 0; i < samplesPerPixel; ++i) {\n samples.push(i);\n }\n } else {\n for (let i = 0; i < samples.length; ++i) {\n if (samples[i] >= samplesPerPixel) {\n return Promise.reject(new RangeError(`Invalid sample index '${samples[i]}'.`));\n }\n }\n }\n let valueArrays;\n if (interleave) {\n const format = this.fileDirectory.SampleFormat\n ? Math.max.apply(null, this.fileDirectory.SampleFormat) : 1;\n const bitsPerSample = Math.max.apply(null, this.fileDirectory.BitsPerSample);\n valueArrays = arrayForType(format, bitsPerSample, numPixels * samples.length);\n if (fillValue) {\n valueArrays.fill(fillValue);\n }\n } else {\n valueArrays = [];\n for (let i = 0; i < samples.length; ++i) {\n const valueArray = this.getArrayForSample(samples[i], numPixels);\n if (Array.isArray(fillValue) && i < fillValue.length) {\n valueArray.fill(fillValue[i]);\n } else if (fillValue && !Array.isArray(fillValue)) {\n valueArray.fill(fillValue);\n }\n valueArrays.push(valueArray);\n }\n }\n\n const poolOrDecoder = pool || getDecoder(this.fileDirectory);\n\n const result = await this._readRaster(\n imageWindow, samples, valueArrays, interleave, poolOrDecoder, width, height, resampleMethod, signal,\n );\n return result;\n }\n\n /**\n * Reads raster data from the image as RGB. The result is always an\n * interleaved typed array.\n * Colorspaces other than RGB will be transformed to RGB, color maps expanded.\n * When no other method is applicable, the first sample is used to produce a\n * greayscale image.\n * When provided, only a subset of the raster is read for each sample.\n *\n * @param {Object} [options] optional parameters\n * @param {Array} [options.window=whole image] the subset to read data from.\n * @param {Number} [options.pool=null] The optional decoder pool to use.\n * @param {number} [options.width] The desired width of the output. When the width is no the\n * same as the images, resampling will be performed.\n * @param {number} [options.height] The desired height of the output. When the width is no the\n * same as the images, resampling will be performed.\n * @param {string} [options.resampleMethod='nearest'] The desired resampling method.\n * @param {bool} [options.enableAlpha=false] Enable reading alpha channel if present.\n * @param {AbortSignal} [options.signal] An AbortSignal that may be signalled if the request is\n * to be aborted\n * @returns {Promise.<TypedArray|TypedArray[]>} the RGB array as a Promise\n */\n async readRGB({ window, pool = null, width, height, resampleMethod, enableAlpha = false, signal } = {}) {\n const imageWindow = window || [0, 0, this.getWidth(), this.getHeight()];\n\n // check parameters\n if (imageWindow[0] > imageWindow[2] || imageWindow[1] > imageWindow[3]) {\n throw new Error('Invalid subsets');\n }\n\n const pi = this.fileDirectory.PhotometricInterpretation;\n\n if (pi === photometricInterpretations.RGB) {\n let s = [0, 1, 2];\n if ((!(this.fileDirectory.ExtraSamples === ExtraSamplesValues.Unspecified)) && enableAlpha) {\n s = [];\n for (let i = 0; i < this.fileDirectory.BitsPerSample.length; i += 1) {\n s.push(i);\n }\n }\n return this.readRasters({\n window,\n interleave: true,\n samples: s,\n pool,\n width,\n height,\n resampleMethod,\n signal,\n });\n }\n\n let samples;\n switch (pi) {\n case photometricInterpretations.WhiteIsZero:\n case photometricInterpretations.BlackIsZero:\n case photometricInterpretations.Palette:\n samples = [0];\n break;\n case photometricInterpretations.CMYK:\n samples = [0, 1, 2, 3];\n break;\n case photometricInterpretations.YCbCr:\n case photometricInterpretations.CIELab:\n samples = [0, 1, 2];\n break;\n default:\n throw new Error('Invalid or unsupported photometric interpretation.');\n }\n\n const subOptions = {\n window: imageWindow,\n interleave: true,\n samples,\n pool,\n width,\n height,\n resampleMethod,\n signal,\n };\n const { fileDirectory } = this;\n const raster = await this.readRasters(subOptions);\n\n const max = 2 ** this.fileDirectory.BitsPerSample[0];\n let data;\n switch (pi) {\n case photometricInterpretations.WhiteIsZero:\n data = fromWhiteIsZero(raster, max);\n break;\n case photometricInterpretations.BlackIsZero:\n data = fromBlackIsZero(raster, max);\n break;\n case photometricInterpretations.Palette:\n data = fromPalette(raster, fileDirectory.ColorMap);\n break;\n case photometricInterpretations.CMYK:\n data = fromCMYK(raster);\n break;\n case photometricInterpretations.YCbCr:\n data = fromYCbCr(raster);\n break;\n case photometricInterpretations.CIELab:\n data = fromCIELab(raster);\n break;\n default:\n throw new Error('Unsupported photometric interpretation.');\n }\n data.width = raster.width;\n data.height = raster.height;\n return data;\n }\n\n /**\n * Returns an array of tiepoints.\n * @returns {Object[]}\n */\n getTiePoints() {\n if (!this.fileDirectory.ModelTiepoint) {\n return [];\n }\n\n const tiePoints = [];\n for (let i = 0; i < this.fileDirectory.ModelTiepoint.length; i += 6) {\n tiePoints.push({\n i: this.fileDirectory.ModelTiepoint[i],\n j: this.fileDirectory.ModelTiepoint[i + 1],\n k: this.fileDirectory.ModelTiepoint[i + 2],\n x: this.fileDirectory.ModelTiepoint[i + 3],\n y: this.fileDirectory.ModelTiepoint[i + 4],\n z: this.fileDirectory.ModelTiepoint[i + 5],\n });\n }\n return tiePoints;\n }\n\n /**\n * Returns the parsed GDAL metadata items.\n *\n * If sample is passed to null, dataset-level metadata will be returned.\n * Otherwise only metadata specific to the provided sample will be returned.\n *\n * @param {Number} [sample=null] The sample index.\n * @returns {Object}\n */\n getGDALMetadata(sample = null) {\n const metadata = {};\n if (!this.fileDirectory.GDAL_METADATA) {\n return null;\n }\n const string = this.fileDirectory.GDAL_METADATA;\n const xmlDom = parse(string.substring(0, string.length - 1));\n\n if (!xmlDom[0].tagName) {\n throw new Error('Failed to parse GDAL metadata XML.');\n }\n\n const root = xmlDom[0];\n if (root.tagName !== 'GDALMetadata') {\n throw new Error('Unexpected GDAL metadata XML tag.');\n }\n\n let items = root.children\n .filter((child) => child.tagName === 'Item');\n\n if (sample !== null) {\n items = items.filter((item) => Number(item.attributes.sample) === sample);\n }\n\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n metadata[item.attributes.name] = item.children[0];\n }\n return metadata;\n }\n\n /**\n * Returns the GDAL nodata value\n * @returns {Number} or null\n */\n getGDALNoData() {\n if (!this.fileDirectory.GDAL_NODATA) {\n return null;\n }\n const string = this.fileDirectory.GDAL_NODATA;\n return Number(string.substring(0, string.length - 1));\n }\n\n /**\n * Returns the image origin as a XYZ-vector. When the image has no affine\n * transformation, then an exception is thrown.\n * @returns {Array} The origin as a vector\n */\n getOrigin() {\n const tiePoints = this.fileDirectory.ModelTiepoint;\n const modelTransformation = this.fileDirectory.ModelTransformation;\n if (tiePoints && tiePoints.length === 6) {\n return [\n tiePoints[3],\n tiePoints[4],\n tiePoints[5],\n ];\n }\n if (modelTransformation) {\n return [\n modelTransformation[3],\n modelTransformation[7],\n modelTransformation[11],\n ];\n }\n throw new Error('The image does not have an affine transformation.');\n }\n\n /**\n * Returns the image resolution as a XYZ-vector. When the image has no affine\n * transformation, then an exception is thrown.\n * @param {GeoTIFFImage} [referenceImage=null] A reference image to calculate the resolution from\n * in cases when the current image does not have the\n * required tags on its own.\n * @returns {Array} The resolution as a vector\n */\n getResolution(referenceImage = null) {\n const modelPixelScale = this.fileDirectory.ModelPixelScale;\n const modelTransformation = this.fileDirectory.ModelTransformation;\n\n if (modelPixelScale) {\n return [\n modelPixelScale[0],\n -modelPixelScale[1],\n modelPixelScale[2],\n ];\n }\n if (modelTransformation) {\n return [\n modelTransformation[0],\n modelTransformation[5],\n modelTransformation[10],\n ];\n }\n\n if (referenceImage) {\n const [refResX, refResY, refResZ] = referenceImage.getResolution();\n return [\n refResX * referenceImage.getWidth() / this.getWidth(),\n refResY * referenceImage.getHeight() / this.getHeight(),\n refResZ * referenceImage.getWidth() / this.getWidth(),\n ];\n }\n\n throw new Error('The image does not have an affine transformation.');\n }\n\n /**\n * Returns whether or not the pixels of the image depict an area (or point).\n * @returns {Boolean} Whether the pixels are a point\n */\n pixelIsArea() {\n return this.geoKeys.GTRasterTypeGeoKey === 1;\n }\n\n /**\n * Returns the image bounding box as an array of 4 values: min-x, min-y,\n * max-x and max-y. When the image has no affine transformation, then an\n * exception is thrown.\n * @returns {Array} The bounding box\n */\n getBoundingBox() {\n const origin = this.getOrigin();\n const resolution = this.getResolution();\n\n const x1 = origin[0];\n const y1 = origin[1];\n\n const x2 = x1 + (resolution[0] * this.getWidth());\n const y2 = y1 + (resolution[1] * this.getHeight());\n\n return [\n Math.min(x1, x2),\n Math.min(y1, y2),\n Math.max(x1, x2),\n Math.max(y1, y2),\n ];\n }\n}\n\nexport default GeoTIFFImage;\n","import { getFloat16 } from '@petamoriken/float16';\n\nexport default class DataView64 {\n constructor(arrayBuffer) {\n this._dataView = new DataView(arrayBuffer);\n }\n\n get buffer() {\n return this._dataView.buffer;\n }\n\n getUint64(offset, littleEndian) {\n const left = this.getUint32(offset, littleEndian);\n const right = this.getUint32(offset + 4, littleEndian);\n let combined;\n if (littleEndian) {\n combined = left + 2 ** 32 * right;\n if (!Number.isSafeInteger(combined)) {\n throw new Error(\n `${combined} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`\n );\n }\n return combined;\n }\n combined = 2 ** 32 * left + right;\n if (!Number.isSafeInteger(combined)) {\n throw new Error(\n `${combined} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`\n );\n }\n\n return combined;\n }\n\n // adapted from https://stackoverflow.com/a/55338384/8060591\n getInt64(offset, littleEndian) {\n let value = 0;\n const isNegative =\n (this._dataView.getUint8(offset + (littleEndian ? 7 : 0)) & 0x80) > 0;\n let carrying = true;\n for (let i = 0; i < 8; i++) {\n let byte = this._dataView.getUint8(offset + (littleEndian ? i : 7 - i));\n if (isNegative) {\n if (carrying) {\n if (byte !== 0x00) {\n byte = ~(byte - 1) & 0xff;\n carrying = false;\n }\n } else {\n byte = ~byte & 0xff;\n }\n }\n value += byte * 256 ** i;\n }\n if (isNegative) {\n value = -value;\n }\n return value;\n }\n\n getUint8(offset, littleEndian) {\n return this._dataView.getUint8(offset, littleEndian);\n }\n\n getInt8(offset, littleEndian) {\n return this._dataView.getInt8(offset, littleEndian);\n }\n\n getUint16(offset, littleEndian) {\n return this._dataView.getUint16(offset, littleEndian);\n }\n\n getInt16(offset, littleEndian) {\n return this._dataView.getInt16(offset, littleEndian);\n }\n\n getUint32(offset, littleEndian) {\n return this._dataView.getUint32(offset, littleEndian);\n }\n\n getInt32(offset, littleEndian) {\n return this._dataView.getInt32(offset, littleEndian);\n }\n\n getFloat16(offset, littleEndian) {\n return getFloat16(this._dataView, littleEndian);\n }\n\n getFloat32(offset, littleEndian) {\n return this._dataView.getFloat32(offset, littleEndian);\n }\n\n getFloat64(offset, littleEndian) {\n return this._dataView.getFloat64(offset, littleEndian);\n }\n}\n","export default class DataSlice {\n constructor(arrayBuffer, sliceOffset, littleEndian, bigTiff) {\n this._dataView = new DataView(arrayBuffer);\n this._sliceOffset = sliceOffset;\n this._littleEndian = littleEndian;\n this._bigTiff = bigTiff;\n }\n\n get sliceOffset() {\n return this._sliceOffset;\n }\n\n get sliceTop() {\n return this._sliceOffset + this.buffer.byteLength;\n }\n\n get littleEndian() {\n return this._littleEndian;\n }\n\n get bigTiff() {\n return this._bigTiff;\n }\n\n get buffer() {\n return this._dataView.buffer;\n }\n\n covers(offset, length) {\n return this.sliceOffset <= offset && this.sliceTop >= offset + length;\n }\n\n readUint8(offset) {\n return this._dataView.getUint8(\n offset - this._sliceOffset, this._littleEndian,\n );\n }\n\n readInt8(offset) {\n return this._dataView.getInt8(\n offset - this._sliceOffset, this._littleEndian,\n );\n }\n\n readUint16(offset) {\n return this._dataView.getUint16(\n offset - this._sliceOffset, this._littleEndian,\n );\n }\n\n readInt16(offset) {\n return this._dataView.getInt16(\n offset - this._sliceOffset, this._littleEndian,\n );\n }\n\n readUint32(offset) {\n return this._dataView.getUint32(\n offset - this._sliceOffset, this._littleEndian,\n );\n }\n\n readInt32(offset) {\n return this._dataView.getInt32(\n offset - this._sliceOffset, this._littleEndian,\n );\n }\n\n readFloat32(offset) {\n return this._dataView.getFloat32(\n offset - this._sliceOffset, this._littleEndian,\n );\n }\n\n readFloat64(offset) {\n return this._dataView.getFloat64(\n offset - this._sliceOffset, this._littleEndian,\n );\n }\n\n readUint64(offset) {\n const left = this.readUint32(offset);\n const right = this.readUint32(offset + 4);\n let combined;\n if (this._littleEndian) {\n combined = left + 2 ** 32 * right;\n if (!Number.isSafeInteger(combined)) {\n throw new Error(\n `${combined} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`,\n );\n }\n return combined;\n }\n combined = 2 ** 32 * left + right;\n if (!Number.isSafeInteger(combined)) {\n throw new Error(\n `${combined} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`,\n );\n }\n\n return combined;\n }\n\n // adapted from https://stackoverflow.com/a/55338384/8060591\n readInt64(offset) {\n let value = 0;\n const isNegative =\n (this._dataView.getUint8(offset + (this._littleEndian ? 7 : 0)) & 0x80) >\n 0;\n let carrying = true;\n for (let i = 0; i < 8; i++) {\n let byte = this._dataView.getUint8(\n offset + (this._littleEndian ? i : 7 - i)\n );\n if (isNegative) {\n if (carrying) {\n if (byte !== 0x00) {\n byte = ~(byte - 1) & 0xff;\n carrying = false;\n }\n } else {\n byte = ~byte & 0xff;\n }\n }\n value += byte * 256 ** i;\n }\n if (isNegative) {\n value = -value;\n }\n return value\n }\n\n readOffset(offset) {\n if (this._bigTiff) {\n return this.readUint64(offset);\n }\n return this.readUint32(offset);\n }\n}\n","\nconst CRLFCRLF = '\\r\\n\\r\\n';\n\n/*\n * Shim for 'Object.fromEntries'\n */\nfunction itemsToObject(items) {\n if (typeof Object.fromEntries !== 'undefined') {\n return Object.fromEntries(items);\n }\n const obj = {};\n for (const [key, value] of items) {\n obj[key.toLowerCase()] = value;\n }\n return obj;\n}\n\n/**\n * Parse HTTP headers from a given string.\n * @param {String} text the text to parse the headers from\n * @returns {Object} the parsed headers with lowercase keys\n */\nfunction parseHeaders(text) {\n const items = text\n .split('\\r\\n')\n .map(line => {\n const kv = line.split(':').map(str => str.trim());\n kv[0] = kv[0].toLowerCase();\n return kv\n });\n\n return itemsToObject(items);\n}\n\n/**\n * Parse a 'Content-Type' header value to the content-type and parameters\n * @param {String} rawContentType the raw string to parse from\n * @returns {Object} the parsed content type with the fields: type and params\n */\nexport function parseContentType(rawContentType) {\n const [type, ...rawParams] = rawContentType.split(';').map((s) => s.trim());\n const paramsItems = rawParams.map((param) => param.split('='));\n return { type, params: itemsToObject(paramsItems) };\n}\n\n/**\n * Parse a 'Content-Range' header value to its start, end, and total parts\n * @param {String} rawContentRange the raw string to parse from\n * @returns {Object} the parsed parts\n */\nexport function parseContentRange(rawContentRange) {\n let start;\n let end;\n let total;\n\n if (rawContentRange) {\n [, start, end, total] = rawContentRange.match(/bytes (\\d+)-(\\d+)\\/(\\d+)/);\n start = parseInt(start, 10);\n end = parseInt(end, 10);\n total = parseInt(total, 10);\n }\n\n return { start, end, total };\n}\n\n/**\n * Parses a list of byteranges from the given 'multipart/byteranges' HTTP response.\n * Each item in the list has the following properties:\n * - headers: the HTTP headers\n * - data: the sliced ArrayBuffer for that specific part\n * - offset: the offset of the byterange within its originating file\n * - length: the length of the byterange\n * @param {ArrayBuffer} responseArrayBuffer the response to be parsed and split\n * @param {String} boundary the boundary string used to split the sections\n * @returns {Object[]} the parsed byteranges\n */\nexport function parseByteRanges(responseArrayBuffer, boundary) {\n let offset = null;\n const decoder = new TextDecoder('ascii');\n const out = [];\n\n const startBoundary = `--${boundary}`;\n const endBoundary = `${startBoundary}--`;\n\n // search for the initial boundary, may be offset by some bytes\n // TODO: more efficient to check for `--` in bytes directly\n for (let i = 0; i < 10; ++i) {\n const text = decoder.decode(\n new Uint8Array(responseArrayBuffer, i, startBoundary.length)\n );\n if (text === startBoundary) {\n offset = i;\n }\n }\n\n if (offset === null) {\n throw new Error(\"Could not find initial boundary\");\n }\n\n while (offset < responseArrayBuffer.byteLength) {\n const text = decoder.decode(\n new Uint8Array(responseArrayBuffer, offset,\n Math.min(startBoundary.length + 1024, responseArrayBuffer.byteLength - offset),\n ),\n );\n\n // break if we arrived at the end\n if (text.length === 0 || text.startsWith(endBoundary)) {\n break;\n }\n\n // assert that we are actually dealing with a byterange and are at the correct offset\n if (!text.startsWith(startBoundary)) {\n throw new Error('Part does not start with boundary');\n }\n\n // get a substring from where we read the headers\n const innerText = text.substr(startBoundary.length + 2);\n\n if (innerText.length === 0) {\n break;\n }\n\n // find the double linebreak that denotes the end of the headers\n const endOfHeaders = innerText.indexOf(CRLFCRLF);\n\n // parse the headers to get the content range size\n const headers = parseHeaders(innerText.substr(0, endOfHeaders));\n const { start, end, total } = parseContentRange(headers['content-range']);\n\n // calculate the length of the slice and the next offset\n const startOfData = offset + startBoundary.length + endOfHeaders + CRLFCRLF.length;\n const length = parseInt(end, 10) + 1 - parseInt(start, 10);\n out.push({\n headers,\n data: responseArrayBuffer.slice(startOfData, startOfData + length),\n offset: start,\n length,\n fileSize: total,\n });\n\n offset = startOfData + length + 4;\n }\n\n return out;\n}\n","import LRUCache from 'lru-cache';\nimport { BaseSource } from './basesource';\nimport { AbortError, AggregateError, wait, zip } from '../utils';\n\nclass Block {\n /**\n *\n * @param {number} offset\n * @param {number} length\n * @param {ArrayBuffer} [data]\n */\n constructor(offset, length, data = null) {\n this.offset = offset;\n this.length = length;\n this.data = data;\n }\n\n /**\n * @returns {number} the top byte border\n */\n get top() {\n return this.offset + this.length;\n }\n}\n\n\nclass BlockGroup {\n /**\n *\n * @param {number} offset\n * @param {number} length\n * @param {number[]} blockIds\n */\n constructor(offset, length, blockIds) {\n this.offset = offset;\n this.length = length;\n this.blockIds = blockIds;\n }\n}\n\n\nexport class BlockedSource extends BaseSource {\n /**\n *\n * @param {Source} source The underlying source that shall be blocked and cached\n * @param {object} options\n */\n constructor(source, { blockSize = 65536, cacheSize = 100 } = {}) {\n super();\n this.source = source;\n this.blockSize = blockSize;\n\n this.blockCache = new LRUCache({ max: cacheSize });\n\n // mapping blockId -> Block instance\n this.blockRequests = new Map();\n\n // set of blockIds missing for the current requests\n this.blockIdsToFetch = new Set();\n\n this.abortedBlockIds = new Set();\n }\n\n get fileSize() {\n return this.source.fileSize;\n }\n\n /**\n *\n * @param {basesource/Slice[]} slices\n */\n async fetch(slices, signal) {\n const blockRequests = [];\n const missingBlockIds = [];\n const allBlockIds = []\n\n for (const { offset, length } of slices) {\n let top = offset + length;\n\n const { fileSize } = this;\n if (fileSize !== null) {\n top = Math.min(top, fileSize);\n }\n\n const firstBlockOffset = Math.floor(offset / this.blockSize) * this.blockSize;\n\n for (let current = firstBlockOffset; current < top; current += this.blockSize) {\n const blockId = Math.floor(current / this.blockSize);\n if (!this.blockCache.has(blockId) && !this.blockRequests.has(blockId)) {\n this.blockIdsToFetch.add(blockId);\n missingBlockIds.push(blockId);\n }\n if (this.blockRequests.has(blockId)) {\n blockRequests.push(this.blockRequests.get(blockId));\n }\n allBlockIds.push(blockId);\n }\n }\n\n // allow additional block requests to accumulate\n await wait();\n this.fetchBlocks(signal);\n\n // Gather all of the new requests that this fetch call is contributing to `fetch`.\n const missingRequests = [];\n for (const blockId of missingBlockIds) {\n // The requested missing block could already be in the cache\n // instead of having its request still be outstanding.\n if (this.blockRequests.has(blockId)) {\n missingRequests.push(this.blockRequests.get(blockId));\n }\n }\n\n // Actually await all pending requests that are needed for this `fetch`.\n await Promise.allSettled(blockRequests.values());\n await Promise.allSettled(missingRequests.values());\n\n // Perform retries if a block was interrupted by a previous signal\n const abortedBlockRequests = [];\n const abortedBlockIds = allBlockIds\n .filter(id => this.abortedBlockIds.has(id) || !this.blockCache.has(id));\n abortedBlockIds.forEach(id => this.blockIdsToFetch.add(id));\n // start the retry of some blocks if required\n if (abortedBlockIds.length > 0 && signal && !signal.aborted) {\n this.fetchBlocks(null);\n for (const blockId of abortedBlockIds) {\n const block = this.blockRequests.get(blockId);\n if (!block) {\n throw new Error(`Block ${blockId} is not in the block requests`);\n }\n abortedBlockRequests.push(block);\n }\n await Promise.allSettled(Array.from(abortedBlockRequests.values()));\n }\n\n // throw an abort error\n if (signal && signal.aborted) {\n throw new AbortError('Request was aborted');\n }\n\n const blocks = allBlockIds.map((id) => this.blockCache.get(id));\n const failedBlocks = blocks.filter((i) => !i);\n if (failedBlocks.length) {\n throw new AggregateError(failedBlocks, 'Request failed');\n }\n\n // create a final Map, with all required blocks for this request to satisfy\n const requiredBlocks = new Map(zip(allBlockIds, blocks));\n\n // TODO: satisfy each slice\n return this.readSliceData(slices, requiredBlocks);\n }\n\n /**\n *\n * @param {AbortSignal} signal\n */\n fetchBlocks(signal) {\n // check if we still need to\n if (this.blockIdsToFetch.size > 0) {\n const groups = this.groupBlocks(this.blockIdsToFetch);\n\n // start requesting slices of data\n const groupRequests = this.source.fetch(groups, signal);\n\n for (let groupIndex = 0; groupIndex < groups.length; ++groupIndex) {\n const group = groups[groupIndex];\n\n for (const blockId of group.blockIds) {\n // make an async IIFE for each block\n this.blockRequests.set(blockId, (async () => {\n try {\n const response = (await groupRequests)[groupIndex];\n const blockOffset = blockId * this.blockSize;\n const o = blockOffset - response.offset;\n const t = Math.min(o + this.blockSize, response.data.byteLength);\n const data = response.data.slice(o, t);\n const block = new Block(\n blockOffset,\n data.byteLength,\n data,\n blockId,\n );\n this.blockCache.set(blockId, block);\n this.abortedBlockIds.delete(blockId);\n } catch (err) {\n if (err.name === 'AbortError') {\n // store the signal here, we need it to determine later if an\n // error was caused by this signal\n err.signal = signal;\n this.blockCache.del(blockId);\n this.abortedBlockIds.add(blockId);\n } else {\n throw err;\n }\n } finally {\n this.blockRequests.delete(blockId);\n }\n })());\n }\n }\n this.blockIdsToFetch.clear();\n }\n }\n\n /**\n *\n * @param {Set} blockIds\n * @returns {BlockGroup[]}\n */\n groupBlocks(blockIds) {\n const sortedBlockIds = Array.from(blockIds).sort((a, b) => a - b);\n if (sortedBlockIds.length === 0) {\n return [];\n }\n let current = [];\n let lastBlockId = null;\n const groups = [];\n\n for (const blockId of sortedBlockIds) {\n if (lastBlockId === null || lastBlockId + 1 === blockId) {\n current.push(blockId);\n lastBlockId = blockId;\n } else {\n groups.push(new BlockGroup(\n current[0] * this.blockSize,\n current.length * this.blockSize,\n current,\n ));\n current = [blockId];\n lastBlockId = blockId;\n }\n }\n\n groups.push(new BlockGroup(\n current[0] * this.blockSize,\n current.length * this.blockSize,\n current,\n ));\n\n return groups;\n }\n\n /**\n *\n * @param {Slice[]} slices\n * @param {Map} blocks\n */\n readSliceData(slices, blocks) {\n return slices.map((slice) => {\n const top = slice.offset + slice.length;\n const blockIdLow = Math.floor(slice.offset / this.blockSize);\n const blockIdHigh = Math.floor((slice.offset + slice.length) / this.blockSize);\n const sliceData = new ArrayBuffer(slice.length);\n const sliceView = new Uint8Array(sliceData);\n\n for (let blockId = blockIdLow; blockId <= blockIdHigh; ++blockId) {\n const block = blocks.get(blockId);\n const delta = block.offset - slice.offset;\n const topDelta = block.top - top;\n let blockInnerOffset = 0;\n let rangeInnerOffset = 0;\n let usedBlockLength;\n\n if (delta < 0) {\n blockInnerOffset = -delta;\n } else if (delta > 0) {\n rangeInnerOffset = delta;\n }\n\n if (topDelta < 0) {\n usedBlockLength = block.length - blockInnerOffset;\n } else {\n usedBlockLength = top - block.offset - blockInnerOffset;\n }\n\n const blockView = new Uint8Array(block.data, blockInnerOffset, usedBlockLength);\n sliceView.set(blockView, rangeInnerOffset);\n }\n\n return sliceData;\n });\n }\n}\n","import { BaseClient, BaseResponse } from './base';\n\n\nclass FetchResponse extends BaseResponse {\n /**\n * BaseResponse facade for fetch API Response\n * @param {Response} response\n */\n constructor(response) {\n super();\n this.response = response;\n }\n\n get status() {\n return this.response.status;\n }\n\n getHeader(name) {\n return this.response.headers.get(name);\n }\n\n async getData() {\n const data = this.response.arrayBuffer\n ? await this.response.arrayBuffer()\n : (await this.response.buffer()).buffer;\n return data;\n }\n}\n\nexport class FetchClient extends BaseClient {\n constructor(url, credentials) {\n super(url);\n this.credentials = credentials;\n }\n\n async request({ headers, credentials, signal } = {}) {\n const response = await fetch(this.url, {\n headers, credentials, signal,\n });\n return new FetchResponse(response);\n }\n}\n","import { BaseClient, BaseResponse } from './base';\nimport { AbortError } from '../../utils';\n\n\nclass XHRResponse extends BaseResponse {\n /**\n * BaseResponse facade for XMLHttpRequest\n * @param {XMLHttpRequest} xhr\n * @param {ArrayBuffer} data\n */\n constructor(xhr, data) {\n super();\n this.xhr = xhr;\n this.data = data;\n }\n\n get status() {\n return this.xhr.status;\n }\n\n getHeader(name) {\n return this.xhr.getResponseHeader(name);\n }\n\n async getData() {\n return this.data;\n }\n}\n\nexport class XHRClient extends BaseClient {\n constructRequest(headers, signal) {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', this.url);\n xhr.responseType = 'arraybuffer';\n for (const [key, value] of Object.entries(headers)) {\n xhr.setRequestHeader(key, value);\n }\n\n // hook signals\n xhr.onload = () => {\n const data = xhr.response;\n resolve(new XHRResponse(xhr, data));\n };\n xhr.onerror = reject;\n xhr.onabort = () => reject(new AbortError('Request aborted'));\n xhr.send();\n\n if (signal) {\n if (signal.aborted) {\n xhr.abort();\n }\n signal.addEventListener('abort', () => xhr.abort());\n }\n });\n }\n\n async request({ headers, signal } = {}) {\n const response = await this.constructRequest(headers, signal);\n return response;\n }\n}\n","import { parseByteRanges, parseContentRange, parseContentType } from './httputils';\nimport { BaseSource } from './basesource';\nimport { BlockedSource } from './blockedsource';\n\nimport { FetchClient } from './client/fetch';\nimport { XHRClient } from './client/xhr';\nimport { HttpClient } from './client/http';\n\n\nclass RemoteSource extends BaseSource {\n /**\n *\n * @param {BaseClient} client\n * @param {object} headers\n * @param {numbers} maxRanges\n * @param {boolean} allowFullFile\n */\n constructor(client, headers, maxRanges, allowFullFile) {\n super();\n this.client = client;\n this.headers = headers;\n this.maxRanges = maxRanges;\n this.allowFullFile = allowFullFile;\n this._fileSize = null;\n }\n\n /**\n *\n * @param {Slice[]} slices\n */\n async fetch(slices, signal) {\n // if we allow multi-ranges, split the incoming request into that many sub-requests\n // and join them afterwards\n if (this.maxRanges >= slices.length) {\n return this.fetchSlices(slices, signal);\n } else if (this.maxRanges > 0 && slices.length > 1) {\n // TODO: split into multiple multi-range requests\n\n // const subSlicesRequests = [];\n // for (let i = 0; i < slices.length; i += this.maxRanges) {\n // subSlicesRequests.push(\n // this.fetchSlices(slices.slice(i, i + this.maxRanges), signal),\n // );\n // }\n // return (await Promise.all(subSlicesRequests)).flat();\n }\n\n // otherwise make a single request for each slice\n return await Promise.all(\n slices.map((slice) => this.fetchSlice(slice, signal)),\n );\n }\n\n async fetchSlices(slices, signal) {\n const response = await this.client.request({\n headers: {\n ...this.headers,\n Range: `bytes=${slices\n .map(({ offset, length }) => `${offset}-${offset + length}`)\n .join(',')\n }`,\n },\n signal,\n });\n\n if (!response.ok) {\n throw new Error('Error fetching data.');\n } else if (response.status === 206) {\n const { type, params } = parseContentType(response.getHeader('content-type'));\n if (type === 'multipart/byteranges') {\n const byteRanges = parseByteRanges(await response.getData(), params.boundary);\n this._fileSize = byteRanges[0].fileSize || null;\n return byteRanges;\n }\n\n const data = await response.getData();\n\n const { start, end, total } = parseContentRange(response.getHeader('content-range'));\n this._fileSize = total || null;\n const first = [{\n data,\n offset: start,\n length: end - start,\n }];\n\n if (slices.length > 1) {\n // we requested more than one slice, but got only the first\n // unfortunately, some HTTP Servers don't support multi-ranges\n // and return onyl the first\n\n // get the rest of the slices and fetch them iteratetively\n const others = await Promise.all(slices.slice(1).map((slice) => this.fetchSlice(slice, signal)));\n return first.concat(others);\n }\n return first;\n } else {\n if (!this.allowFullFile) {\n throw new Error('Server responded with full file');\n }\n const data = await response.getData();\n this._fileSize = data.byteLength;\n return [{\n data,\n offset: 0,\n length: data.byteLength,\n }];\n }\n }\n\n async fetchSlice(slice, signal) {\n const { offset, length } = slice;\n const response = await this.client.request({\n headers: {\n ...this.headers,\n Range: `bytes=${offset}-${offset + length}`,\n },\n signal,\n });\n\n // check the response was okay and if the server actually understands range requests\n if (!response.ok) {\n throw new Error('Error fetching data.');\n } else if (response.status === 206) {\n const data = await response.getData();\n\n const { total } = parseContentRange(response.getHeader('content-range'));\n this._fileSize = total || null;\n return {\n data,\n offset,\n length,\n };\n } else {\n if (!this.allowFullFile) {\n throw new Error('Server responded with full file');\n }\n\n const data = await response.getData();\n\n this._fileSize = data.byteLength;\n return {\n data,\n offset: 0,\n length: data.byteLength,\n };\n }\n }\n\n get fileSize() {\n return this._fileSize;\n }\n}\n\n\nfunction maybeWrapInBlockedSource(source, { blockSize, cacheSize }) {\n if (blockSize === null) {\n return source;\n }\n return new BlockedSource(source, { blockSize, cacheSize });\n}\n\nexport function makeFetchSource(url, { headers = {}, credentials, maxRanges = 0, allowFullFile = false, ...blockOptions } = {}) {\n const client = new FetchClient(url, credentials);\n const source = new RemoteSource(client, headers, maxRanges, allowFullFile);\n return maybeWrapInBlockedSource(source, blockOptions);\n}\n\nexport function makeXHRSource(url, { headers = {}, maxRanges = 0, allowFullFile = false, ...blockOptions } = {}) {\n const client = new XHRClient(url);\n const source = new RemoteSource(client, headers, maxRanges, allowFullFile);\n return maybeWrapInBlockedSource(source, blockOptions);\n}\n\nexport function makeHttpSource(url, { headers = {}, maxRanges = 0, allowFullFile = false, ...blockOptions } = {}) {\n const client = new HttpClient(url);\n const source = new RemoteSource(client, headers, maxRanges, allowFullFile);\n return maybeWrapInBlockedSource(source, blockOptions);\n}\n\n/**\n *\n * @param {string} url\n * @param {object} options\n */\nexport function makeRemoteSource(url, { forceXHR = false, ...clientOptions } = {}) {\n\n if (typeof fetch === 'function' && !forceXHR) {\n return makeFetchSource(url, clientOptions);\n }\n if (typeof XMLHttpRequest !== 'undefined') {\n return makeXHRSource(url, clientOptions);\n }\n return makeHttpSource(url, clientOptions);\n}\n","import { BaseSource } from './basesource';\nimport { AbortError } from '../utils';\n\n\nclass ArrayBufferSource extends BaseSource {\n constructor(arrayBuffer) {\n super();\n this.arrayBuffer = arrayBuffer;\n }\n\n fetchSlice(slice, signal) {\n if (signal && signal.aborted) {\n throw new AbortError('Request aborted');\n }\n return this.arrayBuffer.slice(slice.offset, slice.offset + slice.length);\n }\n}\n\nexport function makeBufferSource(arrayBuffer) {\n return new ArrayBufferSource(arrayBuffer);\n}\n","import { BaseSource } from './basesource';\n\n\nclass FileReaderSource extends BaseSource {\n constructor(file) {\n super();\n this.file = file;\n }\n\n async fetchSlice(slice, signal) {\n return new Promise((resolve, reject) => {\n const blob = this.file.slice(slice.offset, slice.offset + slice.length);\n const reader = new FileReader();\n reader.onload = (event) => resolve(event.target.result);\n reader.onerror = reject;\n reader.onabort = reject;\n reader.readAsArrayBuffer(blob);\n\n if (signal) {\n signal.addEventListener('abort', () => reader.abort());\n }\n });\n }\n}\n\n/**\n * Create a new source from a given file/blob.\n * @param {Blob} file The file or blob to read from.\n * @returns The constructed source\n */\nexport function makeFileReaderSource(file) {\n return new FileReaderSource(file);\n}\n","/*\n Some parts of this file are based on UTIF.js,\n which was released under the MIT License.\n You can view that here:\n https://github.com/photopea/UTIF.js/blob/master/LICENSE\n*/\nimport { fieldTagNames, fieldTagTypes, fieldTypeNames, geoKeyNames } from './globals';\nimport { assign, endsWith, forEach, invert, times } from './utils';\n\nconst tagName2Code = invert(fieldTagNames);\nconst geoKeyName2Code = invert(geoKeyNames);\nconst name2code = {};\nassign(name2code, tagName2Code);\nassign(name2code, geoKeyName2Code);\nconst typeName2byte = invert(fieldTypeNames);\n\n// config variables\nconst numBytesInIfd = 1000;\n\nconst _binBE = {\n nextZero: (data, o) => {\n let oincr = o;\n while (data[oincr] !== 0) {\n oincr++;\n }\n return oincr;\n },\n readUshort: (buff, p) => {\n return (buff[p] << 8) | buff[p + 1];\n },\n readShort: (buff, p) => {\n const a = _binBE.ui8;\n a[0] = buff[p + 1];\n a[1] = buff[p + 0];\n return _binBE.i16[0];\n },\n readInt: (buff, p) => {\n const a = _binBE.ui8;\n a[0] = buff[p + 3];\n a[1] = buff[p + 2];\n a[2] = buff[p + 1];\n a[3] = buff[p + 0];\n return _binBE.i32[0];\n },\n readUint: (buff, p) => {\n const a = _binBE.ui8;\n a[0] = buff[p + 3];\n a[1] = buff[p + 2];\n a[2] = buff[p + 1];\n a[3] = buff[p + 0];\n return _binBE.ui32[0];\n },\n readASCII: (buff, p, l) => {\n return l.map((i) => String.fromCharCode(buff[p + i])).join('');\n },\n readFloat: (buff, p) => {\n const a = _binBE.ui8;\n times(4, (i) => {\n a[i] = buff[p + 3 - i];\n });\n return _binBE.fl32[0];\n },\n readDouble: (buff, p) => {\n const a = _binBE.ui8;\n times(8, (i) => {\n a[i] = buff[p + 7 - i];\n });\n return _binBE.fl64[0];\n },\n writeUshort: (buff, p, n) => {\n buff[p] = (n >> 8) & 255;\n buff[p + 1] = n & 255;\n },\n writeUint: (buff, p, n) => {\n buff[p] = (n >> 24) & 255;\n buff[p + 1] = (n >> 16) & 255;\n buff[p + 2] = (n >> 8) & 255;\n buff[p + 3] = (n >> 0) & 255;\n },\n writeASCII: (buff, p, s) => {\n times(s.length, (i) => {\n buff[p + i] = s.charCodeAt(i);\n });\n },\n ui8: new Uint8Array(8),\n};\n\n_binBE.fl64 = new Float64Array(_binBE.ui8.buffer);\n\n_binBE.writeDouble = (buff, p, n) => {\n _binBE.fl64[0] = n;\n times(8, (i) => {\n buff[p + i] = _binBE.ui8[7 - i];\n });\n};\n\n\nconst _writeIFD = (bin, data, _offset, ifd) => {\n let offset = _offset;\n\n const keys = Object.keys(ifd).filter((key) => {\n return key !== undefined && key !== null && key !== 'undefined';\n });\n\n bin.writeUshort(data, offset, keys.length);\n offset += 2;\n\n let eoff = offset + (12 * keys.length) + 4;\n\n for (const key of keys) {\n let tag = null;\n if (typeof key === 'number') {\n tag = key;\n } else if (typeof key === 'string') {\n tag = parseInt(key, 10);\n }\n\n const typeName = fieldTagTypes[tag];\n const typeNum = typeName2byte[typeName];\n\n if (typeName == null || typeName === undefined || typeof typeName === 'undefined') {\n throw new Error(`unknown type of tag: ${tag}`);\n }\n\n let val = ifd[key];\n\n if (typeof val === 'undefined') {\n throw new Error(`failed to get value for key ${key}`);\n }\n\n // ASCIIZ format with trailing 0 character\n // http://www.fileformat.info/format/tiff/corion.htm\n // https://stackoverflow.com/questions/7783044/whats-the-difference-between-asciiz-vs-ascii\n if (typeName === 'ASCII' && typeof val === 'string' && endsWith(val, '\\u0000') === false) {\n val += '\\u0000';\n }\n\n const num = val.length;\n\n bin.writeUshort(data, offset, tag);\n offset += 2;\n\n bin.writeUshort(data, offset, typeNum);\n offset += 2;\n\n bin.writeUint(data, offset, num);\n offset += 4;\n\n let dlen = [-1, 1, 1, 2, 4, 8, 0, 0, 0, 0, 0, 0, 8][typeNum] * num;\n let toff = offset;\n\n if (dlen > 4) {\n bin.writeUint(data, offset, eoff);\n toff = eoff;\n }\n\n if (typeName === 'ASCII') {\n bin.writeASCII(data, toff, val);\n } else if (typeName === 'SHORT') {\n times(num, (i) => {\n bin.writeUshort(data, toff + (2 * i), val[i]);\n });\n } else if (typeName === 'LONG') {\n times(num, (i) => {\n bin.writeUint(data, toff + (4 * i), val[i]);\n });\n } else if (typeName === 'RATIONAL') {\n times(num, (i) => {\n bin.writeUint(data, toff + (8 * i), Math.round(val[i] * 10000));\n bin.writeUint(data, toff + (8 * i) + 4, 10000);\n });\n } else if (typeName === 'DOUBLE') {\n times(num, (i) => {\n bin.writeDouble(data, toff + (8 * i), val[i]);\n });\n }\n\n if (dlen > 4) {\n dlen += (dlen & 1);\n eoff += dlen;\n }\n\n offset += 4;\n }\n\n return [offset, eoff];\n};\n\nconst encodeIfds = (ifds) => {\n const data = new Uint8Array(numBytesInIfd);\n let offset = 4;\n const bin = _binBE;\n\n // set big-endian byte-order\n // https://en.wikipedia.org/wiki/TIFF#Byte_order\n data[0] = 77;\n data[1] = 77;\n\n // set format-version number\n // https://en.wikipedia.org/wiki/TIFF#Byte_order\n data[3] = 42;\n\n let ifdo = 8;\n\n bin.writeUint(data, offset, ifdo);\n\n offset += 4;\n\n ifds.forEach((ifd, i) => {\n const noffs = _writeIFD(bin, data, ifdo, ifd);\n ifdo = noffs[1];\n if (i < ifds.length - 1) {\n bin.writeUint(data, noffs[0], ifdo);\n }\n });\n\n if (data.slice) {\n return data.slice(0, ifdo).buffer;\n }\n\n // node hasn't implemented slice on Uint8Array yet\n const result = new Uint8Array(ifdo);\n for (let i = 0; i < ifdo; i++) {\n result[i] = data[i];\n }\n return result.buffer;\n};\n\nconst encodeImage = (values, width, height, metadata) => {\n if (height === undefined || height === null) {\n throw new Error(`you passed into encodeImage a width of type ${height}`);\n }\n\n if (width === undefined || width === null) {\n throw new Error(`you passed into encodeImage a width of type ${width}`);\n }\n\n const ifd = {\n 256: [width], // ImageWidth\n 257: [height], // ImageLength\n 273: [numBytesInIfd], // strips offset\n 278: [height], // RowsPerStrip\n 305: 'geotiff.js', // no array for ASCII(Z)\n };\n\n if (metadata) {\n for (const i in metadata) {\n if (metadata.hasOwnProperty(i)) {\n ifd[i] = metadata[i];\n }\n }\n }\n\n const prfx = new Uint8Array(encodeIfds([ifd]));\n\n const img = new Uint8Array(values);\n\n const samplesPerPixel = ifd[277];\n\n const data = new Uint8Array(numBytesInIfd + (width * height * samplesPerPixel));\n times(prfx.length, (i) => {\n data[i] = prfx[i];\n });\n forEach(img, (value, i) => {\n data[numBytesInIfd + i] = value;\n });\n\n return data.buffer;\n};\n\nconst convertToTids = (input) => {\n const result = {};\n for (const key in input) {\n if (key !== 'StripOffsets') {\n if (!name2code[key]) {\n console.error(key, 'not in name2code:', Object.keys(name2code));\n }\n result[name2code[key]] = input[key];\n }\n }\n return result;\n};\n\nconst toArray = (input) => {\n if (Array.isArray(input)) {\n return input;\n }\n return [input];\n};\n\nconst metadataDefaults = [\n ['Compression', 1], // no compression\n ['PlanarConfiguration', 1],\n ['XPosition', 0],\n ['YPosition', 0],\n ['ResolutionUnit', 1], // Code 1 for actual pixel count or 2 for pixels per inch.\n ['ExtraSamples', 0], // should this be an array??\n ['GeoAsciiParams', 'WGS 84\\u0000'],\n ['ModelTiepoint', [0, 0, 0, -180, 90, 0]], // raster fits whole globe\n ['GTModelTypeGeoKey', 2],\n ['GTRasterTypeGeoKey', 1],\n ['GeographicTypeGeoKey', 4326],\n ['GeogCitationGeoKey', 'WGS 84'],\n];\n\nexport function writeGeotiff(data, metadata) {\n const isFlattened = typeof data[0] === 'number';\n\n let height;\n let numBands;\n let width;\n let flattenedValues;\n\n if (isFlattened) {\n height = metadata.height || metadata.ImageLength;\n width = metadata.width || metadata.ImageWidth;\n numBands = data.length / (height * width);\n flattenedValues = data;\n } else {\n numBands = data.length;\n height = data[0].length;\n width = data[0][0].length;\n flattenedValues = [];\n times(height, (rowIndex) => {\n times(width, (columnIndex) => {\n times(numBands, (bandIndex) => {\n flattenedValues.push(data[bandIndex][rowIndex][columnIndex]);\n });\n });\n });\n }\n\n metadata.ImageLength = height;\n delete metadata.height;\n metadata.ImageWidth = width;\n delete metadata.width;\n\n // consult https://www.loc.gov/preservation/digital/formats/content/tiff_tags.shtml\n\n if (!metadata.BitsPerSample) {\n metadata.BitsPerSample = times(numBands, () => 8);\n }\n\n metadataDefaults.forEach((tag) => {\n const key = tag[0];\n if (!metadata[key]) {\n const value = tag[1];\n metadata[key] = value;\n }\n });\n\n // The color space of the image data.\n // 1=black is zero and 2=RGB.\n if (!metadata.PhotometricInterpretation) {\n metadata.PhotometricInterpretation = metadata.BitsPerSample.length === 3 ? 2 : 1;\n }\n\n // The number of components per pixel.\n if (!metadata.SamplesPerPixel) {\n metadata.SamplesPerPixel = [numBands];\n }\n\n if (!metadata.StripByteCounts) {\n // we are only writing one strip\n metadata.StripByteCounts = [numBands * height * width];\n }\n\n if (!metadata.ModelPixelScale) {\n // assumes raster takes up exactly the whole globe\n metadata.ModelPixelScale = [360 / width, 180 / height, 0];\n }\n\n if (!metadata.SampleFormat) {\n metadata.SampleFormat = times(numBands, () => 1);\n }\n\n\n const geoKeys = Object.keys(metadata)\n .filter((key) => endsWith(key, 'GeoKey'))\n .sort((a, b) => name2code[a] - name2code[b]);\n\n if (!metadata.GeoKeyDirectory) {\n const NumberOfKeys = geoKeys.length;\n\n const GeoKeyDirectory = [1, 1, 0, NumberOfKeys];\n geoKeys.forEach((geoKey) => {\n const KeyID = Number(name2code[geoKey]);\n GeoKeyDirectory.push(KeyID);\n\n let Count;\n let TIFFTagLocation;\n let valueOffset;\n if (fieldTagTypes[KeyID] === 'SHORT') {\n Count = 1;\n TIFFTagLocation = 0;\n valueOffset = metadata[geoKey];\n } else if (geoKey === 'GeogCitationGeoKey') {\n Count = metadata.GeoAsciiParams.length;\n TIFFTagLocation = Number(name2code.GeoAsciiParams);\n valueOffset = 0;\n } else {\n console.log(`[geotiff.js] couldn't get TIFFTagLocation for ${geoKey}`);\n }\n GeoKeyDirectory.push(TIFFTagLocation);\n GeoKeyDirectory.push(Count);\n GeoKeyDirectory.push(valueOffset);\n });\n metadata.GeoKeyDirectory = GeoKeyDirectory;\n }\n\n // delete GeoKeys from metadata, because stored in GeoKeyDirectory tag\n for (const geoKey in geoKeys) {\n if (geoKeys.hasOwnProperty(geoKey)) {\n delete metadata[geoKey];\n }\n }\n\n [\n 'Compression',\n 'ExtraSamples',\n 'GeographicTypeGeoKey',\n 'GTModelTypeGeoKey',\n 'GTRasterTypeGeoKey',\n 'ImageLength', // synonym of ImageHeight\n 'ImageWidth',\n 'PhotometricInterpretation',\n 'PlanarConfiguration',\n 'ResolutionUnit',\n 'SamplesPerPixel',\n 'XPosition',\n 'YPosition',\n ].forEach((name) => {\n if (metadata[name]) {\n metadata[name] = toArray(metadata[name]);\n }\n });\n\n\n const encodedMetadata = convertToTids(metadata);\n\n const outputImage = encodeImage(flattenedValues, width, height, encodedMetadata);\n\n return outputImage;\n}\n","import GeoTIFFImage from './geotiffimage';\nimport DataView64 from './dataview64';\nimport DataSlice from './dataslice';\nimport Pool from './pool';\n\nimport { makeRemoteSource } from './source/remote';\nimport { makeBufferSource } from './source/arraybuffer';\nimport { makeFileReaderSource } from './source/filereader';\nimport { makeFileSource } from './source/file';\n\nimport { fieldTypes, fieldTagNames, arrayFields, geoKeyNames } from './globals';\nimport { writeGeotiff } from './geotiffwriter';\nimport * as globals from './globals';\nimport * as rgb from './rgb';\nimport { getDecoder } from './compression';\nimport { setLogger } from './logging';\n\nexport { globals };\nexport { rgb };\nexport { getDecoder };\nexport { setLogger };\n\nfunction getFieldTypeLength(fieldType) {\n switch (fieldType) {\n case fieldTypes.BYTE: case fieldTypes.ASCII: case fieldTypes.SBYTE: case fieldTypes.UNDEFINED:\n return 1;\n case fieldTypes.SHORT: case fieldTypes.SSHORT:\n return 2;\n case fieldTypes.LONG: case fieldTypes.SLONG: case fieldTypes.FLOAT: case fieldTypes.IFD:\n return 4;\n case fieldTypes.RATIONAL: case fieldTypes.SRATIONAL: case fieldTypes.DOUBLE:\n case fieldTypes.LONG8: case fieldTypes.SLONG8: case fieldTypes.IFD8:\n return 8;\n default:\n throw new RangeError(`Invalid field type: ${fieldType}`);\n }\n}\n\nfunction parseGeoKeyDirectory(fileDirectory) {\n const rawGeoKeyDirectory = fileDirectory.GeoKeyDirectory;\n if (!rawGeoKeyDirectory) {\n return null;\n }\n\n const geoKeyDirectory = {};\n for (let i = 4; i <= rawGeoKeyDirectory[3] * 4; i += 4) {\n const key = geoKeyNames[rawGeoKeyDirectory[i]];\n const location = (rawGeoKeyDirectory[i + 1])\n ? (fieldTagNames[rawGeoKeyDirectory[i + 1]]) : null;\n const count = rawGeoKeyDirectory[i + 2];\n const offset = rawGeoKeyDirectory[i + 3];\n\n let value = null;\n if (!location) {\n value = offset;\n } else {\n value = fileDirectory[location];\n if (typeof value === 'undefined' || value === null) {\n throw new Error(`Could not get value of geoKey '${key}'.`);\n } else if (typeof value === 'string') {\n value = value.substring(offset, offset + count - 1);\n } else if (value.subarray) {\n value = value.subarray(offset, offset + count);\n if (count === 1) {\n value = value[0];\n }\n }\n }\n geoKeyDirectory[key] = value;\n }\n return geoKeyDirectory;\n}\n\nfunction getValues(dataSlice, fieldType, count, offset) {\n let values = null;\n let readMethod = null;\n const fieldTypeLength = getFieldTypeLength(fieldType);\n\n switch (fieldType) {\n case fieldTypes.BYTE: case fieldTypes.ASCII: case fieldTypes.UNDEFINED:\n values = new Uint8Array(count); readMethod = dataSlice.readUint8;\n break;\n case fieldTypes.SBYTE:\n values = new Int8Array(count); readMethod = dataSlice.readInt8;\n break;\n case fieldTypes.SHORT:\n values = new Uint16Array(count); readMethod = dataSlice.readUint16;\n break;\n case fieldTypes.SSHORT:\n values = new Int16Array(count); readMethod = dataSlice.readInt16;\n break;\n case fieldTypes.LONG: case fieldTypes.IFD:\n values = new Uint32Array(count); readMethod = dataSlice.readUint32;\n break;\n case fieldTypes.SLONG:\n values = new Int32Array(count); readMethod = dataSlice.readInt32;\n break;\n case fieldTypes.LONG8: case fieldTypes.IFD8:\n values = new Array(count); readMethod = dataSlice.readUint64;\n break;\n case fieldTypes.SLONG8:\n values = new Array(count); readMethod = dataSlice.readInt64;\n break;\n case fieldTypes.RATIONAL:\n values = new Uint32Array(count * 2); readMethod = dataSlice.readUint32;\n break;\n case fieldTypes.SRATIONAL:\n values = new Int32Array(count * 2); readMethod = dataSlice.readInt32;\n break;\n case fieldTypes.FLOAT:\n values = new Float32Array(count); readMethod = dataSlice.readFloat32;\n break;\n case fieldTypes.DOUBLE:\n values = new Float64Array(count); readMethod = dataSlice.readFloat64;\n break;\n default:\n throw new RangeError(`Invalid field type: ${fieldType}`);\n }\n\n // normal fields\n if (!(fieldType === fieldTypes.RATIONAL || fieldType === fieldTypes.SRATIONAL)) {\n for (let i = 0; i < count; ++i) {\n values[i] = readMethod.call(\n dataSlice, offset + (i * fieldTypeLength),\n );\n }\n } else { // RATIONAL or SRATIONAL\n for (let i = 0; i < count; i += 2) {\n values[i] = readMethod.call(\n dataSlice, offset + (i * fieldTypeLength),\n );\n values[i + 1] = readMethod.call(\n dataSlice, offset + ((i * fieldTypeLength) + 4),\n );\n }\n }\n\n if (fieldType === fieldTypes.ASCII) {\n return new TextDecoder('utf-8').decode(values);\n }\n return values;\n}\n\n/**\n * Data class to store the parsed file directory, geo key directory and\n * offset to the next IFD\n */\nclass ImageFileDirectory {\n constructor(fileDirectory, geoKeyDirectory, nextIFDByteOffset) {\n this.fileDirectory = fileDirectory;\n this.geoKeyDirectory = geoKeyDirectory;\n this.nextIFDByteOffset = nextIFDByteOffset;\n }\n}\n\n/**\n * Error class for cases when an IFD index was requested, that does not exist\n * in the file.\n */\nclass GeoTIFFImageIndexError extends Error {\n constructor(index) {\n super(`No image at index ${index}`);\n this.index = index;\n }\n}\n\n\nclass GeoTIFFBase {\n /**\n * (experimental) Reads raster data from the best fitting image. This function uses\n * the image with the lowest resolution that is still a higher resolution than the\n * requested resolution.\n * When specified, the `bbox` option is translated to the `window` option and the\n * `resX` and `resY` to `width` and `height` respectively.\n * Then, the [readRasters]{@link GeoTIFFImage#readRasters} method of the selected\n * image is called and the result returned.\n * @see GeoTIFFImage.readRasters\n * @param {Object} [options={}] optional parameters\n * @param {Array} [options.window=whole image] the subset to read data from.\n * @param {Array} [options.bbox=whole image] the subset to read data from in\n * geographical coordinates.\n * @param {Array} [options.samples=all samples] the selection of samples to read from.\n * @param {Boolean} [options.interleave=false] whether the data shall be read\n * in one single array or separate\n * arrays.\n * @param {Number} [options.pool=null] The optional decoder pool to use.\n * @param {Number} [options.width] The desired width of the output. When the width is not the\n * same as the images, resampling will be performed.\n * @param {Number} [options.height] The desired height of the output. When the width is not the\n * same as the images, resampling will be performed.\n * @param {String} [options.resampleMethod='nearest'] The desired resampling method.\n * @param {AbortSignal} [options.signal] An AbortSignal that may be signalled if the request is\n * to be aborted\n * @param {Number|Number[]} [options.fillValue] The value to use for parts of the image\n * outside of the images extent. When multiple\n * samples are requested, an array of fill values\n * can be passed.\n * @returns {Promise.<(TypedArray|TypedArray[])>} the decoded arrays as a promise\n */\n async readRasters(options = {}) {\n const { window: imageWindow, width, height } = options;\n let { resX, resY, bbox } = options;\n\n const firstImage = await this.getImage();\n let usedImage = firstImage;\n const imageCount = await this.getImageCount();\n const imgBBox = firstImage.getBoundingBox();\n\n if (imageWindow && bbox) {\n throw new Error('Both \"bbox\" and \"window\" passed.');\n }\n\n // if width/height is passed, transform it to resolution\n if (width || height) {\n // if we have an image window (pixel coordinates), transform it to a BBox\n // using the origin/resolution of the first image.\n if (imageWindow) {\n const [oX, oY] = firstImage.getOrigin();\n const [rX, rY] = firstImage.getResolution();\n\n bbox = [\n oX + (imageWindow[0] * rX),\n oY + (imageWindow[1] * rY),\n oX + (imageWindow[2] * rX),\n oY + (imageWindow[3] * rY),\n ];\n }\n\n // if we have a bbox (or calculated one)\n\n const usedBBox = bbox || imgBBox;\n\n if (width) {\n if (resX) {\n throw new Error('Both width and resX passed');\n }\n resX = (usedBBox[2] - usedBBox[0]) / width;\n }\n if (height) {\n if (resY) {\n throw new Error('Both width and resY passed');\n }\n resY = (usedBBox[3] - usedBBox[1]) / height;\n }\n }\n\n // if resolution is set or calculated, try to get the image with the worst acceptable resolution\n if (resX || resY) {\n const allImages = [];\n for (let i = 0; i < imageCount; ++i) {\n const image = await this.getImage(i);\n const { SubfileType: subfileType, NewSubfileType: newSubfileType } = image.fileDirectory;\n if (i === 0 || subfileType === 2 || newSubfileType & 1) {\n allImages.push(image);\n }\n }\n\n allImages.sort((a, b) => a.getWidth() - b.getWidth());\n for (let i = 0; i < allImages.length; ++i) {\n const image = allImages[i];\n const imgResX = (imgBBox[2] - imgBBox[0]) / image.getWidth();\n const imgResY = (imgBBox[3] - imgBBox[1]) / image.getHeight();\n\n usedImage = image;\n if ((resX && resX > imgResX) || (resY && resY > imgResY)) {\n break;\n }\n }\n }\n\n let wnd = imageWindow;\n if (bbox) {\n const [oX, oY] = firstImage.getOrigin();\n const [imageResX, imageResY] = usedImage.getResolution(firstImage);\n\n wnd = [\n Math.round((bbox[0] - oX) / imageResX),\n Math.round((bbox[1] - oY) / imageResY),\n Math.round((bbox[2] - oX) / imageResX),\n Math.round((bbox[3] - oY) / imageResY),\n ];\n wnd = [\n Math.min(wnd[0], wnd[2]),\n Math.min(wnd[1], wnd[3]),\n Math.max(wnd[0], wnd[2]),\n Math.max(wnd[1], wnd[3]),\n ];\n }\n\n return usedImage.readRasters({ ...options, window: wnd });\n }\n}\n\n\n/**\n * The abstraction for a whole GeoTIFF file.\n * @augments GeoTIFFBase\n */\nclass GeoTIFF extends GeoTIFFBase {\n /**\n * @constructor\n * @param {Source} source The datasource to read from.\n * @param {Boolean} littleEndian Whether the image uses little endian.\n * @param {Boolean} bigTiff Whether the image uses bigTIFF conventions.\n * @param {Number} firstIFDOffset The numeric byte-offset from the start of the image\n * to the first IFD.\n * @param {Object} [options] further options.\n * @param {Boolean} [options.cache=false] whether or not decoded tiles shall be cached.\n */\n constructor(source, littleEndian, bigTiff, firstIFDOffset, options = {}) {\n super();\n this.source = source;\n this.littleEndian = littleEndian;\n this.bigTiff = bigTiff;\n this.firstIFDOffset = firstIFDOffset;\n this.cache = options.cache || false;\n this.ifdRequests = [];\n this.ghostValues = null;\n }\n\n async getSlice(offset, size) {\n const fallbackSize = this.bigTiff ? 4048 : 1024;\n return new DataSlice(\n (await this.source.fetch([{\n offset,\n length: typeof size !== 'undefined' ? size : fallbackSize,\n }]))[0],\n offset,\n this.littleEndian,\n this.bigTiff,\n );\n }\n\n /**\n * Instructs to parse an image file directory at the given file offset.\n * As there is no way to ensure that a location is indeed the start of an IFD,\n * this function must be called with caution (e.g only using the IFD offsets from\n * the headers or other IFDs).\n * @param {number} offset the offset to parse the IFD at\n * @returns {ImageFileDirectory} the parsed IFD\n */\n async parseFileDirectoryAt(offset) {\n const entrySize = this.bigTiff ? 20 : 12;\n const offsetSize = this.bigTiff ? 8 : 2;\n\n let dataSlice = await this.getSlice(offset);\n const numDirEntries = this.bigTiff ?\n dataSlice.readUint64(offset) :\n dataSlice.readUint16(offset);\n\n // if the slice does not cover the whole IFD, request a bigger slice, where the\n // whole IFD fits: num of entries + n x tag length + offset to next IFD\n const byteSize = (numDirEntries * entrySize) + (this.bigTiff ? 16 : 6);\n if (!dataSlice.covers(offset, byteSize)) {\n dataSlice = await this.getSlice(offset, byteSize);\n }\n\n const fileDirectory = {};\n\n // loop over the IFD and create a file directory object\n let i = offset + (this.bigTiff ? 8 : 2);\n for (let entryCount = 0; entryCount < numDirEntries; i += entrySize, ++entryCount) {\n const fieldTag = dataSlice.readUint16(i);\n const fieldType = dataSlice.readUint16(i + 2);\n const typeCount = this.bigTiff ?\n dataSlice.readUint64(i + 4) :\n dataSlice.readUint32(i + 4);\n\n let fieldValues;\n let value;\n const fieldTypeLength = getFieldTypeLength(fieldType);\n const valueOffset = i + (this.bigTiff ? 12 : 8);\n\n // check whether the value is directly encoded in the tag or refers to a\n // different external byte range\n if (fieldTypeLength * typeCount <= (this.bigTiff ? 8 : 4)) {\n fieldValues = getValues(dataSlice, fieldType, typeCount, valueOffset);\n } else {\n // resolve the reference to the actual byte range\n const actualOffset = dataSlice.readOffset(valueOffset);\n const length = getFieldTypeLength(fieldType) * typeCount;\n\n // check, whether we actually cover the referenced byte range; if not,\n // request a new slice of bytes to read from it\n if (dataSlice.covers(actualOffset, length)) {\n fieldValues = getValues(dataSlice, fieldType, typeCount, actualOffset);\n } else {\n const fieldDataSlice = await this.getSlice(actualOffset, length);\n fieldValues = getValues(fieldDataSlice, fieldType, typeCount, actualOffset);\n }\n }\n\n // unpack single values from the array\n if (typeCount === 1 && arrayFields.indexOf(fieldTag) === -1 &&\n !(fieldType === fieldTypes.RATIONAL || fieldType === fieldTypes.SRATIONAL)) {\n value = fieldValues[0];\n } else {\n value = fieldValues;\n }\n\n // write the tags value to the file directly\n fileDirectory[fieldTagNames[fieldTag]] = value;\n }\n const geoKeyDirectory = parseGeoKeyDirectory(fileDirectory);\n const nextIFDByteOffset = dataSlice.readOffset(\n offset + offsetSize + (entrySize * numDirEntries),\n );\n\n return new ImageFileDirectory(\n fileDirectory,\n geoKeyDirectory,\n nextIFDByteOffset,\n );\n }\n\n async requestIFD(index) {\n // see if we already have that IFD index requested.\n if (this.ifdRequests[index]) {\n // attach to an already requested IFD\n return this.ifdRequests[index];\n } else if (index === 0) {\n // special case for index 0\n this.ifdRequests[index] = this.parseFileDirectoryAt(this.firstIFDOffset);\n return this.ifdRequests[index];\n } else if (!this.ifdRequests[index - 1]) {\n // if the previous IFD was not yet loaded, load that one first\n // this is the recursive call.\n try {\n this.ifdRequests[index - 1] = this.requestIFD(index - 1);\n } catch (e) {\n // if the previous one already was an index error, rethrow\n // with the current index\n if (e instanceof GeoTIFFImageIndexError) {\n throw new GeoTIFFImageIndexError(index);\n }\n // rethrow anything else\n throw e;\n }\n }\n // if the previous IFD was loaded, we can finally fetch the one we are interested in.\n // we need to wrap this in an IIFE, otherwise this.ifdRequests[index] would be delayed\n this.ifdRequests[index] = (async () => {\n const previousIfd = await this.ifdRequests[index - 1];\n if (previousIfd.nextIFDByteOffset === 0) {\n throw new GeoTIFFImageIndexError(index);\n }\n return this.parseFileDirectoryAt(previousIfd.nextIFDByteOffset);\n })();\n return this.ifdRequests[index];\n }\n\n /**\n * Get the n-th internal subfile of an image. By default, the first is returned.\n *\n * @param {Number} [index=0] the index of the image to return.\n * @returns {GeoTIFFImage} the image at the given index\n */\n async getImage(index = 0) {\n const ifd = await this.requestIFD(index);\n return new GeoTIFFImage(\n ifd.fileDirectory, ifd.geoKeyDirectory,\n this.dataView, this.littleEndian, this.cache, this.source,\n );\n }\n\n /**\n * Returns the count of the internal subfiles.\n *\n * @returns {Number} the number of internal subfile images\n */\n async getImageCount() {\n let index = 0;\n // loop until we run out of IFDs\n let hasNext = true;\n while (hasNext) {\n try {\n await this.requestIFD(index);\n ++index;\n } catch (e) {\n if (e instanceof GeoTIFFImageIndexError) {\n hasNext = false;\n } else {\n throw e;\n }\n }\n }\n return index;\n }\n\n /**\n * Get the values of the COG ghost area as a parsed map.\n * See https://gdal.org/drivers/raster/cog.html#header-ghost-area for reference\n * @returns {Object} the parsed ghost area or null, if no such area was found\n */\n async getGhostValues() {\n const offset = this.bigTiff ? 16 : 8;\n if (this.ghostValues) {\n return this.ghostValues;\n }\n const detectionString = 'GDAL_STRUCTURAL_METADATA_SIZE=';\n const heuristicAreaSize = detectionString.length + 100;\n let slice = await this.getSlice(offset, heuristicAreaSize);\n if (detectionString === getValues(slice, fieldTypes.ASCII, detectionString.length, offset)) {\n const valuesString = getValues(slice, fieldTypes.ASCII, heuristicAreaSize, offset);\n const firstLine = valuesString.split('\\n')[0];\n const metadataSize = Number(firstLine.split('=')[1].split(' ')[0]) + firstLine.length;\n if (metadataSize > heuristicAreaSize) {\n slice = await this.getSlice(offset, metadataSize);\n }\n const fullString = getValues(slice, fieldTypes.ASCII, metadataSize, offset);\n this.ghostValues = {};\n fullString\n .split('\\n')\n .filter(line => line.length > 0)\n .map(line => line.split('='))\n .forEach(([key, value]) => {\n this.ghostValues[key] = value;\n });\n }\n return this.ghostValues;\n }\n\n /**\n * Parse a (Geo)TIFF file from the given source.\n *\n * @param {source~Source} source The source of data to parse from.\n * @param {object} options Additional options.\n * @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is\n * to be aborted\n */\n static async fromSource(source, options, signal) {\n const headerData = (await source.fetch([{ offset: 0, length: 1024 }], signal))[0];\n const dataView = new DataView64(headerData);\n\n const BOM = dataView.getUint16(0, 0);\n let littleEndian;\n if (BOM === 0x4949) {\n littleEndian = true;\n } else if (BOM === 0x4D4D) {\n littleEndian = false;\n } else {\n throw new TypeError('Invalid byte order value.');\n }\n\n const magicNumber = dataView.getUint16(2, littleEndian);\n let bigTiff;\n if (magicNumber === 42) {\n bigTiff = false;\n } else if (magicNumber === 43) {\n bigTiff = true;\n const offsetByteSize = dataView.getUint16(4, littleEndian);\n if (offsetByteSize !== 8) {\n throw new Error('Unsupported offset byte-size.');\n }\n } else {\n throw new TypeError('Invalid magic number.');\n }\n\n const firstIFDOffset = bigTiff\n ? dataView.getUint64(8, littleEndian)\n : dataView.getUint32(4, littleEndian);\n return new GeoTIFF(source, littleEndian, bigTiff, firstIFDOffset, options);\n }\n\n /**\n * Closes the underlying file buffer\n * N.B. After the GeoTIFF has been completely processed it needs\n * to be closed but only if it has been constructed from a file.\n */\n close() {\n if (typeof this.source.close === 'function') {\n return this.source.close();\n }\n return false;\n }\n}\n\nexport { GeoTIFF };\nexport default GeoTIFF;\n\n/**\n * Wrapper for GeoTIFF files that have external overviews.\n * @augments GeoTIFFBase\n */\nclass MultiGeoTIFF extends GeoTIFFBase {\n /**\n * Construct a new MultiGeoTIFF from a main and several overview files.\n * @param {GeoTIFF} mainFile The main GeoTIFF file.\n * @param {GeoTIFF[]} overviewFiles An array of overview files.\n */\n constructor(mainFile, overviewFiles) {\n super();\n this.mainFile = mainFile;\n this.overviewFiles = overviewFiles;\n this.imageFiles = [mainFile].concat(overviewFiles);\n\n this.fileDirectoriesPerFile = null;\n this.fileDirectoriesPerFileParsing = null;\n this.imageCount = null;\n }\n\n async parseFileDirectoriesPerFile() {\n const requests = [this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)]\n .concat(this.overviewFiles.map((file) => file.parseFileDirectoryAt(file.firstIFDOffset)));\n\n this.fileDirectoriesPerFile = await Promise.all(requests);\n return this.fileDirectoriesPerFile;\n }\n\n /**\n * Get the n-th internal subfile of an image. By default, the first is returned.\n *\n * @param {Number} [index=0] the index of the image to return.\n * @returns {GeoTIFFImage} the image at the given index\n */\n async getImage(index = 0) {\n await this.getImageCount();\n await this.parseFileDirectoriesPerFile();\n let visited = 0;\n let relativeIndex = 0;\n for (let i = 0; i < this.imageFiles.length; i++) {\n const imageFile = this.imageFiles[i];\n for (let ii = 0; ii < this.imageCounts[i]; ii++) {\n if (index === visited) {\n const ifd = await imageFile.requestIFD(relativeIndex);\n return new GeoTIFFImage(\n ifd.fileDirectory, ifd.geoKeyDirectory,\n imageFile.dataView, imageFile.littleEndian, imageFile.cache, imageFile.source,\n );\n }\n visited++;\n relativeIndex++;\n }\n relativeIndex = 0;\n }\n\n throw new RangeError('Invalid image index');\n }\n\n /**\n * Returns the count of the internal subfiles.\n *\n * @returns {Number} the number of internal subfile images\n */\n async getImageCount() {\n if (this.imageCount !== null) {\n return this.imageCount;\n }\n const requests = [this.mainFile.getImageCount()]\n .concat(this.overviewFiles.map((file) => file.getImageCount()));\n this.imageCounts = await Promise.all(requests);\n this.imageCount = this.imageCounts.reduce((count, ifds) => count + ifds, 0);\n return this.imageCount;\n }\n}\n\nexport { MultiGeoTIFF };\n\n/**\n * Creates a new GeoTIFF from a remote URL.\n * @param {string} url The URL to access the image from\n * @param {object} [options] Additional options to pass to the source.\n * See {@link makeRemoteSource} for details.\n * @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is\n * to be aborted\n * @returns {Promise.<GeoTIFF>} The resulting GeoTIFF file.\n */\nexport async function fromUrl(url, options = {}, signal) {\n return GeoTIFF.fromSource(makeRemoteSource(url, options), signal);\n}\n\n/**\n * Construct a new GeoTIFF from an\n * [ArrayBuffer]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer}.\n * @param {ArrayBuffer} arrayBuffer The data to read the file from.\n * @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is\n * to be aborted\n * @returns {Promise.<GeoTIFF>} The resulting GeoTIFF file.\n */\nexport async function fromArrayBuffer(arrayBuffer, signal) {\n return GeoTIFF.fromSource(makeBufferSource(arrayBuffer), signal);\n}\n\n/**\n * Construct a GeoTIFF from a local file path. This uses the node\n * [filesystem API]{@link https://nodejs.org/api/fs.html} and is\n * not available on browsers.\n *\n * N.B. After the GeoTIFF has been completely processed it needs\n * to be closed but only if it has been constructed from a file.\n * @param {string} path The file path to read from.\n * @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is\n * to be aborted\n * @returns {Promise.<GeoTIFF>} The resulting GeoTIFF file.\n */\nexport async function fromFile(path, signal) {\n return GeoTIFF.fromSource(makeFileSource(path), signal);\n}\n\n/**\n * Construct a GeoTIFF from an HTML\n * [Blob]{@link https://developer.mozilla.org/en-US/docs/Web/API/Blob} or\n * [File]{@link https://developer.mozilla.org/en-US/docs/Web/API/File}\n * object.\n * @param {Blob|File} blob The Blob or File object to read from.\n * @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is\n * to be aborted\n * @returns {Promise.<GeoTIFF>} The resulting GeoTIFF file.\n */\nexport async function fromBlob(blob, signal) {\n return GeoTIFF.fromSource(makeFileReaderSource(blob), signal);\n}\n\n/**\n * Construct a MultiGeoTIFF from the given URLs.\n * @param {string} mainUrl The URL for the main file.\n * @param {string[]} overviewUrls An array of URLs for the overview images.\n * @param {object} [options] Additional options to pass to the source.\n * See [makeRemoteSource]{@link module:source.makeRemoteSource}\n * for details.\n * @param {AbortSignal} [signal] An AbortSignal that may be signalled if the request is\n * to be aborted\n * @returns {Promise.<MultiGeoTIFF>} The resulting MultiGeoTIFF file.\n */\nexport async function fromUrls(mainUrl, overviewUrls = [], options = {}, signal) {\n const mainFile = await GeoTIFF.fromSource(makeRemoteSource(mainUrl, options), signal);\n const overviewFiles = await Promise.all(\n overviewUrls.map((url) => GeoTIFF.fromSource(makeRemoteSource(url, options))),\n );\n\n return new MultiGeoTIFF(mainFile, overviewFiles);\n}\n\n/**\n * Main creating function for GeoTIFF files.\n * @param {(Array)} array of pixel values\n * @returns {metadata} metadata\n */\nexport async function writeArrayBuffer(values, metadata) {\n return writeGeotiff(values, metadata);\n}\n\nexport { Pool };\n","import { COORDINATE_SYSTEM, Layer, project32, picking, CompositeLayer, LayerExtension, OrthographicView, Controller, OrbitView } from '@deck.gl/core';\nimport { Matrix4 } from 'math.gl';\nimport GL from '@luma.gl/constants';\nimport { TileLayer } from '@deck.gl/geo-layers';\nimport { Model, Geometry, Texture2D, isWebGL2, Texture3D } from '@luma.gl/core';\nimport { ProgramManager } from '@luma.gl/engine';\nimport { hasFeature, FEATURES } from '@luma.gl/webgl';\nimport { BitmapLayer as BitmapLayer$1, PolygonLayer, LineLayer, TextLayer } from '@deck.gl/layers';\nimport quickselect from 'quickselect';\nimport { Plane } from '@math.gl/culling';\nimport { PureComponent, useMemo } from 'react';\nimport DeckGL from '@deck.gl/react';\nimport equal from 'fast-deep-equal';\nimport { jsxDEV } from 'react/jsx-dev-runtime';\nimport { fromUrl, fromBlob } from 'geotiff';\nimport parser from 'fast-xml-parser';\nimport { KeyError, openGroup, BoundsCheckError, slice, HTTPStore } from 'zarr';\n\nvar fs$6 = \"#define SHADER_NAME xr-layer-fragment-shader\\nprecision highp float;precision highp int;precision highp SAMPLER_TYPE;\\n#define GLSLIFY 1\\nuniform SAMPLER_TYPE channel0;uniform SAMPLER_TYPE channel1;uniform SAMPLER_TYPE channel2;uniform SAMPLER_TYPE channel3;uniform SAMPLER_TYPE channel4;uniform SAMPLER_TYPE channel5;in vec2 vTexCoord;uniform vec2 contrastLimits[6];void main(){float intensity0=float(texture(channel0,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity0,contrastLimits[0],0);float intensity1=float(texture(channel1,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity1,contrastLimits[1],1);float intensity2=float(texture(channel2,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity2,contrastLimits[2],2);float intensity3=float(texture(channel3,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity3,contrastLimits[3],3);float intensity4=float(texture(channel4,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity4,contrastLimits[4],4);float intensity5=float(texture(channel5,vTexCoord).r);DECKGL_PROCESS_INTENSITY(intensity5,contrastLimits[5],5);DECKGL_MUTATE_COLOR(gl_FragColor,intensity0,intensity1,intensity2,intensity3,intensity4,intensity5,vTexCoord);geometry.uv=vTexCoord;DECKGL_FILTER_COLOR(gl_FragColor,geometry);}\"; // eslint-disable-line\n\nvar vs$1 = \"#define GLSLIFY 1\\n#define SHADER_NAME xr-layer-vertex-shader\\nattribute vec2 texCoords;attribute vec3 positions;attribute vec3 positions64Low;attribute vec3 instancePickingColors;varying vec2 vTexCoord;void main(void){geometry.worldPosition=positions;geometry.uv=texCoords;geometry.pickingColor=instancePickingColors;gl_Position=project_position_to_clipspace(positions,positions64Low,vec3(0.),geometry.position);DECKGL_FILTER_GL_POSITION(gl_Position,geometry);vTexCoord=texCoords;vec4 color=vec4(0.);DECKGL_FILTER_COLOR(color,geometry);}\"; // eslint-disable-line\n\nvar fs$5 = \"#define GLSLIFY 1\\nfloat apply_contrast_limits(float intensity,vec2 contrastLimits){return max(0.,(intensity-contrastLimits[0])/max(0.0005,(contrastLimits[1]-contrastLimits[0])));}\"; // eslint-disable-line\n\nvar channels$1 = {\n name: 'channel-intensity-module',\n defines: {\n SAMPLER_TYPE: 'usampler2D',\n COLORMAP_FUNCTION: ''\n },\n fs: fs$5\n};\n\nconst MAX_COLOR_INTENSITY = 255;\nconst DEFAULT_COLOR_OFF = [0, 0, 0];\nconst MAX_CHANNELS = 6;\nconst DEFAULT_FONT_FAMILY = \"-apple-system, 'Helvetica Neue', Arial, sans-serif\";\nconst DTYPE_VALUES = {\n Uint8: {\n format: GL.R8UI,\n dataFormat: GL.RED_INTEGER,\n type: GL.UNSIGNED_BYTE,\n max: 2 ** 8 - 1,\n sampler: \"usampler2D\"\n },\n Uint16: {\n format: GL.R16UI,\n dataFormat: GL.RED_INTEGER,\n type: GL.UNSIGNED_SHORT,\n max: 2 ** 16 - 1,\n sampler: \"usampler2D\"\n },\n Uint32: {\n format: GL.R32UI,\n dataFormat: GL.RED_INTEGER,\n type: GL.UNSIGNED_INT,\n max: 2 ** 32 - 1,\n sampler: \"usampler2D\"\n },\n Float32: {\n format: GL.R32F,\n dataFormat: GL.RED,\n type: GL.FLOAT,\n max: 3.4 * 10 ** 38,\n sampler: \"sampler2D\"\n },\n Int8: {\n format: GL.R8I,\n dataFormat: GL.RED_INTEGER,\n type: GL.BYTE,\n max: 2 ** (8 - 1) - 1,\n sampler: \"isampler2D\"\n },\n Int16: {\n format: GL.R16I,\n dataFormat: GL.RED_INTEGER,\n type: GL.SHORT,\n max: 2 ** (16 - 1) - 1,\n sampler: \"isampler2D\"\n },\n Int32: {\n format: GL.R32I,\n dataFormat: GL.RED_INTEGER,\n type: GL.INT,\n max: 2 ** (32 - 1) - 1,\n sampler: \"isampler2D\"\n },\n Float64: {\n format: GL.R32F,\n dataFormat: GL.RED,\n type: GL.FLOAT,\n max: 3.4 * 10 ** 38,\n sampler: \"sampler2D\",\n cast: (data) => new Float32Array(data)\n }\n};\nconst COLORMAPS = [\"jet\", \"hsv\", \"hot\", \"cool\", \"spring\", \"summer\", \"autumn\", \"winter\", \"bone\", \"copper\", \"greys\", \"yignbu\", \"greens\", \"yiorrd\", \"bluered\", \"rdbu\", \"picnic\", \"rainbow\", \"portland\", \"blackbody\", \"earth\", \"electric\", \"alpha\", \"viridis\", \"inferno\", \"magma\", \"plasma\", \"warm\", \"rainbow-soft\", \"bathymetry\", \"cdom\", \"chlorophyll\", \"density\", \"freesurface-blue\", \"freesurface-red\", \"oxygen\", \"par\", \"phase\", \"salinity\", \"temperature\", \"turbidity\", \"velocity-blue\", \"velocity-green\", \"cubehelix\"];\nvar RENDERING_MODES;\n(function(RENDERING_MODES2) {\n RENDERING_MODES2[\"MAX_INTENSITY_PROJECTION\"] = \"Maximum Intensity Projection\";\n RENDERING_MODES2[\"MIN_INTENSITY_PROJECTION\"] = \"Minimum Intensity Projection\";\n RENDERING_MODES2[\"ADDITIVE\"] = \"Additive\";\n})(RENDERING_MODES || (RENDERING_MODES = {}));\n\nfunction range(len) {\n return [...Array(len).keys()];\n}\nfunction padWithDefault(arr, defaultValue, padWidth) {\n for (let i = 0; i < padWidth; i += 1) {\n arr.push(defaultValue);\n }\n\n return arr;\n}\n/**\n * (Safely) get GL values for associated dtype.\n * @param {keyof typeof import('../constants').DTYPE_VALUES} dtype\n */\n\nfunction getDtypeValues(dtype) {\n const values = DTYPE_VALUES[dtype];\n\n if (!values) {\n const valid = Object.keys(DTYPE_VALUES);\n throw Error(`Dtype not supported, got ${dtype}. Must be one of ${valid}.`);\n }\n\n return values;\n}\nfunction padContrastLimits({\n contrastLimits = [],\n channelsVisible,\n domain,\n dtype\n}) {\n const maxSliderValue = domain && domain[1] || getDtypeValues(dtype).max;\n const newContrastLimits = contrastLimits.map((slider, i) => channelsVisible[i] ? slider : [maxSliderValue, maxSliderValue]); // Need to pad contrastLimits and colors with default values (required by shader)\n\n const padSize = MAX_CHANNELS - newContrastLimits.length;\n\n if (padSize < 0) {\n throw Error(`${newContrastLimits.lengths} channels passed in, but only 6 are allowed.`);\n }\n\n const paddedContrastLimits = padWithDefault(newContrastLimits, [maxSliderValue, maxSliderValue], padSize).reduce((acc, val) => acc.concat(val), []);\n return paddedContrastLimits;\n}\n/**\n * Get physical size scaling Matrix4\n * @param {Object} loader PixelSource\n */\n\nfunction getPhysicalSizeScalingMatrix(loader) {\n const {\n x,\n y,\n z\n } = loader?.meta?.physicalSizes ?? {};\n\n if (x?.size && y?.size && z?.size) {\n const min = Math.min(z.size, x.size, y.size);\n const ratio = [x.size / min, y.size / min, z.size / min];\n return new Matrix4().scale(ratio);\n }\n\n return new Matrix4().identity();\n}\n\n/* eslint-disable prefer-destructuring */\nconst coreShaderModule = {\n fs: fs$6,\n vs: vs$1\n};\n\nfunction validateWebGL2Filter(gl, interpolation) {\n const canShowFloat = hasFeature(gl, FEATURES.TEXTURE_FLOAT);\n const canShowLinear = hasFeature(gl, FEATURES.TEXTURE_FILTER_LINEAR_FLOAT);\n\n if (!canShowFloat) {\n throw new Error('WebGL1 context does not support floating point textures. Unable to display raster data.');\n }\n\n if (!canShowLinear && interpolation === GL.LINEAR) {\n console.warn('LINEAR filtering not supported in WebGL1 context. Falling back to NEAREST.');\n return GL.NEAREST;\n }\n\n return interpolation;\n}\n\nfunction getRenderingAttrs$1(dtype, gl, interpolation) {\n if (!isWebGL2(gl)) {\n return {\n format: GL.LUMINANCE,\n dataFormat: GL.LUMINANCE,\n type: GL.FLOAT,\n sampler: 'sampler2D',\n shaderModule: coreShaderModule,\n filter: validateWebGL2Filter(gl, interpolation),\n cast: data => new Float32Array(data)\n };\n } // Linear filtering only works when the data type is cast to Float32.\n\n\n const isLinear = interpolation === GL.LINEAR; // Need to add es version tag so that shaders work in WebGL2 since the tag is needed for using usampler2d with WebGL2.\n // Very cursed!\n\n const upgradedShaderModule = { ...coreShaderModule\n };\n const version300str = '#version 300 es\\n';\n upgradedShaderModule.fs = version300str.concat(upgradedShaderModule.fs);\n upgradedShaderModule.vs = version300str.concat(upgradedShaderModule.vs);\n const values = getDtypeValues(isLinear ? 'Float32' : dtype);\n return { ...values,\n shaderModule: upgradedShaderModule,\n filter: interpolation,\n cast: isLinear ? data => new Float32Array(data) : data => data\n };\n}\n\nconst defaultProps$b = {\n pickable: {\n type: 'boolean',\n value: true,\n compare: true\n },\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n channelData: {\n type: 'object',\n value: {},\n compare: true\n },\n bounds: {\n type: 'array',\n value: [0, 0, 1, 1],\n compare: true\n },\n contrastLimits: {\n type: 'array',\n value: [],\n compare: true\n },\n channelsVisible: {\n type: 'array',\n value: [],\n compare: true\n },\n dtype: {\n type: 'string',\n value: 'Uint16',\n compare: true\n },\n interpolation: {\n type: 'number',\n value: GL.NEAREST,\n compare: true\n }\n};\n/**\n * @typedef LayerProps\n * @type {object}\n * @property {Array.<Array.<number>>} contrastLimits List of [begin, end] values to control each channel's ramp function.\n * @property {Array.<boolean>} channelsVisible List of boolean values for each channel for whether or not it is visible.\n * @property {string} dtype Dtype for the layer.\n * @property {Array.<number>=} domain Override for the possible max/min values (i.e something different than 65535 for uint16/'<u2').\n * @property {String=} id Unique identifier for this layer.\n * @property {function=} onHover Hook function from deck.gl to handle hover objects.\n * @property {function=} onClick Hook function from deck.gl to handle clicked-on objects.\n * @property {Object=} modelMatrix Math.gl Matrix4 object containing an affine transformation to be applied to the image.\n * Thus setting this to a truthy value (with a colormap set) indicates that the shader should make that color transparent.\n * @property {number=} interpolation The TEXTURE_MIN_FILTER and TEXTURE_MAG_FILTER for WebGL rendering (see https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texParameter) - default is GL.NEAREST\n */\n\n/**\n * @type {{ new (...props: import('../../types').Viv<LayerProps>[]) }}\n * @ignore\n */\n\nconst XRLayer = class extends Layer {\n /**\n * This function replaces `usampler` with `sampler` if the data is not an unsigned integer\n * and adds a standard ramp function default for DECKGL_PROCESS_INTENSITY.\n */\n getShaders() {\n const {\n dtype,\n interpolation\n } = this.props;\n const {\n shaderModule,\n sampler\n } = getRenderingAttrs$1(dtype, this.context.gl, interpolation);\n\n const extensionDefinesDeckglProcessIntensity = this._isHookDefinedByExtensions('fs:DECKGL_PROCESS_INTENSITY');\n\n const newChannelsModule = { ...channels$1,\n inject: {}\n };\n\n if (!extensionDefinesDeckglProcessIntensity) {\n newChannelsModule.inject['fs:DECKGL_PROCESS_INTENSITY'] = `\n intensity = apply_contrast_limits(intensity, contrastLimits);\n `;\n }\n\n return super.getShaders({ ...shaderModule,\n defines: {\n SAMPLER_TYPE: sampler\n },\n modules: [project32, picking, newChannelsModule]\n });\n }\n\n _isHookDefinedByExtensions(hookName) {\n const {\n extensions\n } = this.props;\n return extensions?.some(e => {\n const shaders = e.getShaders();\n const {\n inject = {},\n modules = []\n } = shaders;\n const definesInjection = inject[hookName];\n const moduleDefinesInjection = modules.some(m => m?.inject[hookName]);\n return definesInjection || moduleDefinesInjection;\n });\n }\n /**\n * This function initializes the internal state.\n */\n\n\n initializeState() {\n const {\n gl\n } = this.context; // This tells WebGL how to read row data from the texture. For example, the default here is 4 (i.e for RGBA, one byte per channel) so\n // each row of data is expected to be a multiple of 4. This setting (i.e 1) allows us to have non-multiple-of-4 row sizes. For example, for 2 byte (16 bit data),\n // we could use 2 as the value and it would still work, but 1 also works fine (and is more flexible for 8 bit - 1 byte - textures as well).\n // https://stackoverflow.com/questions/42789896/webgl-error-arraybuffer-not-big-enough-for-request-in-case-of-gl-luminance\n\n gl.pixelStorei(GL.UNPACK_ALIGNMENT, 1);\n gl.pixelStorei(GL.PACK_ALIGNMENT, 1);\n const attributeManager = this.getAttributeManager();\n attributeManager.add({\n positions: {\n size: 3,\n type: GL.DOUBLE,\n fp64: this.use64bitPositions(),\n update: this.calculatePositions,\n noAlloc: true\n }\n });\n this.setState({\n numInstances: 1,\n positions: new Float64Array(12)\n });\n const programManager = ProgramManager.getDefaultProgramManager(gl);\n const mutateStr = 'fs:DECKGL_MUTATE_COLOR(inout vec4 rgba, float intensity0, float intensity1, float intensity2, float intensity3, float intensity4, float intensity5, vec2 vTexCoord)';\n const processStr = `fs:DECKGL_PROCESS_INTENSITY(inout float intensity, vec2 contrastLimits, int channelIndex)`; // Only initialize shader hook functions _once globally_\n // Since the program manager is shared across all layers, but many layers\n // might be created, this solves the performance issue of always adding new\n // hook functions.\n // See https://github.com/kylebarron/deck.gl-raster/blob/2eb91626f0836558f0be4cd201ea18980d7f7f2d/src/deckgl/raster-layer/raster-layer.js#L21-L40\n\n if (!programManager._hookFunctions.includes(mutateStr)) {\n programManager.addShaderHook(mutateStr);\n }\n\n if (!programManager._hookFunctions.includes(processStr)) {\n programManager.addShaderHook(processStr);\n }\n }\n /**\n * This function finalizes state by clearing all textures from the WebGL context\n */\n\n\n finalizeState() {\n super.finalizeState();\n\n if (this.state.textures) {\n Object.values(this.state.textures).forEach(tex => tex && tex.delete());\n }\n }\n /**\n * This function updates state by retriggering model creation (shader compilation and attribute binding)\n * and loading any textures that need be loading.\n */\n\n\n updateState({\n props,\n oldProps,\n changeFlags,\n ...rest\n }) {\n super.updateState({\n props,\n oldProps,\n changeFlags,\n ...rest\n }); // setup model first\n\n if (changeFlags.extensionsChanged || props.interpolation !== oldProps.interpolation) {\n const {\n gl\n } = this.context;\n\n if (this.state.model) {\n this.state.model.delete();\n }\n\n this.setState({\n model: this._getModel(gl)\n });\n this.getAttributeManager().invalidateAll();\n }\n\n if (props.channelData !== oldProps.channelData && props.channelData?.data !== oldProps.channelData?.data || props.interpolation !== oldProps.interpolation) {\n this.loadChannelTextures(props.channelData);\n }\n\n const attributeManager = this.getAttributeManager();\n\n if (props.bounds !== oldProps.bounds) {\n attributeManager.invalidate('positions');\n }\n }\n /**\n * This function creates the luma.gl model.\n */\n\n\n _getModel(gl) {\n if (!gl) {\n return null;\n }\n /*\n 0,0 --- 1,0\n | |\n 0,1 --- 1,1\n */\n\n\n return new Model(gl, { ...this.getShaders(),\n id: this.props.id,\n geometry: new Geometry({\n drawMode: GL.TRIANGLE_FAN,\n vertexCount: 4,\n attributes: {\n texCoords: new Float32Array([0, 1, 0, 0, 1, 0, 1, 1])\n }\n }),\n isInstanced: false\n });\n }\n /**\n * This function generates view positions for use as a vec3 in the shader\n */\n\n\n calculatePositions(attributes) {\n const {\n positions\n } = this.state;\n const {\n bounds\n } = this.props; // bounds as [minX, minY, maxX, maxY]\n\n /*\n (minX0, maxY3) ---- (maxX2, maxY3)\n | |\n | |\n | |\n (minX0, minY1) ---- (maxX2, minY1)\n */\n\n positions[0] = bounds[0];\n positions[1] = bounds[1];\n positions[2] = 0;\n positions[3] = bounds[0];\n positions[4] = bounds[3];\n positions[5] = 0;\n positions[6] = bounds[2];\n positions[7] = bounds[3];\n positions[8] = 0;\n positions[9] = bounds[2];\n positions[10] = bounds[1];\n positions[11] = 0; // eslint-disable-next-line no-param-reassign\n\n attributes.value = positions;\n }\n /**\n * This function runs the shaders and draws to the canvas\n */\n\n\n draw({\n uniforms\n }) {\n const {\n textures,\n model\n } = this.state;\n\n if (textures && model) {\n const {\n contrastLimits,\n domain,\n dtype,\n channelsVisible\n } = this.props; // Check number of textures not null.\n\n const numTextures = Object.values(textures).filter(t => t).length; // Slider values and color values can come in before textures since their data is async.\n // Thus we pad based on the number of textures bound.\n\n const paddedContrastLimits = padContrastLimits({\n contrastLimits: contrastLimits.slice(0, numTextures),\n channelsVisible: channelsVisible.slice(0, numTextures),\n domain,\n dtype\n });\n model.setUniforms({ ...uniforms,\n contrastLimits: paddedContrastLimits,\n ...textures\n }).draw();\n }\n }\n /**\n * This function loads all channel textures from incoming resolved promises/data from the loaders by calling `dataToTexture`\n */\n\n\n loadChannelTextures(channelData) {\n const textures = {\n channel0: null,\n channel1: null,\n channel2: null,\n channel3: null,\n channel4: null,\n channel5: null\n };\n\n if (this.state.textures) {\n Object.values(this.state.textures).forEach(tex => tex && tex.delete());\n }\n\n if (channelData && Object.keys(channelData).length > 0 && channelData.data) {\n channelData.data.forEach((d, i) => {\n textures[`channel${i}`] = this.dataToTexture(d, channelData.width, channelData.height);\n }, this);\n this.setState({\n textures\n });\n }\n }\n /**\n * This function creates textures from the data\n */\n\n\n dataToTexture(data, width, height) {\n const {\n interpolation\n } = this.props;\n const attrs = getRenderingAttrs$1(this.props.dtype, this.context.gl, interpolation);\n return new Texture2D(this.context.gl, {\n width,\n height,\n data: attrs.cast?.(data) ?? data,\n // we don't want or need mimaps\n mipmaps: false,\n parameters: {\n // NEAREST for integer data\n [GL.TEXTURE_MIN_FILTER]: attrs.filter,\n [GL.TEXTURE_MAG_FILTER]: attrs.filter,\n // CLAMP_TO_EDGE to remove tile artifacts\n [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n },\n format: attrs.format,\n dataFormat: attrs.dataFormat,\n type: attrs.type\n });\n }\n\n};\nXRLayer.layerName = 'XRLayer';\nXRLayer.defaultProps = defaultProps$b;\n\n// eslint-disable-next-line max-classes-per-file\nconst PHOTOMETRIC_INTERPRETATIONS = {\n WhiteIsZero: 0,\n BlackIsZero: 1,\n RGB: 2,\n Palette: 3,\n TransparencyMask: 4,\n CMYK: 5,\n YCbCr: 6,\n CIELab: 8,\n ICCLab: 9\n};\nconst defaultProps$a = { ...BitmapLayer$1.defaultProps,\n pickable: {\n type: 'boolean',\n value: true,\n compare: true\n },\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN\n};\n\nconst getPhotometricInterpretationShader = (photometricInterpretation, transparentColorInHook) => {\n const useTransparentColor = transparentColorInHook ? 'true' : 'false';\n const transparentColorVector = `vec3(${(transparentColorInHook || [0, 0, 0]).map(i => String(i / 255)).join(',')})`;\n\n switch (photometricInterpretation) {\n case PHOTOMETRIC_INTERPRETATIONS.RGB:\n return `color[3] = (${useTransparentColor} && (color.rgb == ${transparentColorVector})) ? 0.0 : color.a;`;\n\n case PHOTOMETRIC_INTERPRETATIONS.WhiteIsZero:\n return `\\\n float value = 1.0 - (color.r / 256.0);\n color = vec4(value, value, value, (${useTransparentColor} && vec3(value, value, value) == ${transparentColorVector}) ? 0.0 : color.a);\n `;\n\n case PHOTOMETRIC_INTERPRETATIONS.BlackIsZero:\n return `\\\n float value = (color.r / 256.0);\n color = vec4(value, value, value, (${useTransparentColor} && vec3(value, value, value) == ${transparentColorVector}) ? 0.0 : color.a);\n `;\n\n case PHOTOMETRIC_INTERPRETATIONS.YCbCr:\n // We need to use an epsilon because the conversion to RGB is not perfect.\n return `\\\n float y = color[0];\n float cb = color[1];\n float cr = color[2];\n color[0] = (y + (1.40200 * (cr - .5)));\n color[1] = (y - (0.34414 * (cb - .5)) - (0.71414 * (cr - .5)));\n color[2] = (y + (1.77200 * (cb - .5)));\n color[3] = (${useTransparentColor} && distance(color.rgb, ${transparentColorVector}) < 0.01) ? 0.0 : color.a;\n `;\n\n default:\n console.error('Unsupported photometric interpretation or none provided. No transformation will be done to image data');\n return '';\n }\n};\n\nconst getTransparentColor = photometricInterpretation => {\n switch (photometricInterpretation) {\n case PHOTOMETRIC_INTERPRETATIONS.RGB:\n return [0, 0, 0, 0];\n\n case PHOTOMETRIC_INTERPRETATIONS.WhiteIsZero:\n return [255, 255, 255, 0];\n\n case PHOTOMETRIC_INTERPRETATIONS.BlackIsZero:\n return [0, 0, 0, 0];\n\n case PHOTOMETRIC_INTERPRETATIONS.YCbCr:\n return [16, 128, 128, 0];\n\n default:\n console.error('Unsupported photometric interpretation or none provided. No transformation will be done to image data');\n return [0, 0, 0, 0];\n }\n};\n\nclass BitmapLayerWrapper extends BitmapLayer$1 {\n _getModel(gl) {\n const {\n photometricInterpretation,\n transparentColorInHook\n } = this.props; // This is a port to the GPU of a subset of https://github.com/geotiffjs/geotiff.js/blob/master/src/rgb.js\n // Safari was too slow doing this off of the GPU and it is noticably faster on other browsers as well.\n\n const photometricInterpretationShader = getPhotometricInterpretationShader(photometricInterpretation, transparentColorInHook);\n\n if (!gl) {\n return null;\n }\n /*\n 0,0 --- 1,0\n | |\n 0,1 --- 1,1\n */\n\n\n return new Model(gl, { ...this.getShaders(),\n id: this.props.id,\n geometry: new Geometry({\n drawMode: GL.TRIANGLES,\n vertexCount: 6\n }),\n isInstanced: false,\n inject: {\n 'fs:DECKGL_FILTER_COLOR': photometricInterpretationShader\n }\n });\n }\n\n}\n/**\n * @typedef LayerProps\n * @type {object}\n * @property {number=} opacity Opacity of the layer.\n * @property {function=} onClick Hook function from deck.gl to handle clicked-on objects.\n * @property {Object=} modelMatrix Math.gl Matrix4 object containing an affine transformation to be applied to the image.\n * @property {number=} photometricInterpretation One of WhiteIsZero BlackIsZero YCbCr or RGB (default)\n * @property {Array.<number>=} transparentColor An RGB (0-255 range) color to be considered \"transparent\" if provided.\n * In other words, any fragment shader output equal transparentColor (before applying opacity) will have opacity 0.\n * This parameter only needs to be a truthy value when using colormaps because each colormap has its own transparent color that is calculated on the shader.\n * Thus setting this to a truthy value (with a colormap set) indicates that the shader should make that color transparent.\n * @property {String=} id Unique identifier for this layer.\n */\n\n/**\n * @type {{ new (...props: import('../types').Viv<LayerProps>[]) }}\n * @ignore\n */\n\n\nconst BitmapLayer = class extends CompositeLayer {\n initializeState(args) {\n const {\n gl\n } = this.context; // This tells WebGL how to read row data from the texture. For example, the default here is 4 (i.e for RGBA, one byte per channel) so\n // each row of data is expected to be a multiple of 4. This setting (i.e 1) allows us to have non-multiple-of-4 row sizes. For example, for 2 byte (16 bit data),\n // we could use 2 as the value and it would still work, but 1 also works fine (and is more flexible for 8 bit - 1 byte - textures as well).\n // https://stackoverflow.com/questions/42789896/webgl-error-arraybuffer-not-big-enough-for-request-in-case-of-gl-luminance\n // This needs to be called here and not in the BitmapLayerWrapper because the `image` prop is converted to a texture outside of the layer, as controlled by the `image` type.\n // See: https://github.com/visgl/deck.gl/pull/5197\n\n gl.pixelStorei(GL.UNPACK_ALIGNMENT, 1);\n gl.pixelStorei(GL.PACK_ALIGNMENT, 1);\n super.initializeState(args);\n }\n\n renderLayers() {\n const {\n photometricInterpretation,\n transparentColor: transparentColorInHook\n } = this.props;\n const transparentColor = getTransparentColor(photometricInterpretation);\n return new BitmapLayerWrapper(this.props, {\n // transparentColor is a prop applied to the original image data by deck.gl's\n // BitmapLayer and needs to be in the original colorspace. It is used to determine\n // what color is \"transparent\" in the original color space (i.e what shows when opacity is 0).\n transparentColor,\n // This is our transparentColor props which needs to be applied in the hook that converts to the RGB space.\n transparentColorInHook,\n id: `${this.props.id}-wrapped`\n });\n }\n\n};\nBitmapLayer.layerName = 'BitmapLayer'; // From https://github.com/geotiffjs/geotiff.js/blob/8ef472f41b51d18074aece2300b6a8ad91a21ae1/src/globals.js#L202-L213\n\nBitmapLayer.PHOTOMETRIC_INTERPRETATIONS = PHOTOMETRIC_INTERPRETATIONS;\nBitmapLayer.defaultProps = { ...defaultProps$a,\n // We don't want this layer to bind the texture so the type should not be `image`.\n image: {\n type: 'object',\n value: {},\n compare: true\n },\n transparentColor: {\n type: 'array',\n value: [0, 0, 0],\n compare: true\n },\n photometricInterpretation: {\n type: 'number',\n value: 2,\n compare: true\n }\n};\nBitmapLayerWrapper.defaultProps = defaultProps$a;\nBitmapLayerWrapper.layerName = 'BitmapLayerWrapper';\n\nfunction getChannelStats(arr) {\n let len = arr.length;\n let min = Infinity;\n let max = -Infinity;\n let total = 0;\n while (len--) {\n if (arr[len] < min) {\n min = arr[len];\n }\n if (arr[len] > max) {\n max = arr[len];\n }\n total += arr[len];\n }\n const mean = total / arr.length;\n len = arr.length;\n let sumSquared = 0;\n while (len--) {\n sumSquared += (arr[len] - mean) ** 2;\n }\n const sd = (sumSquared / arr.length) ** 0.5;\n const mid = Math.floor(arr.length / 2);\n const firstQuartileLocation = Math.floor(arr.length / 4);\n const thirdQuartileLocation = 3 * Math.floor(arr.length / 4);\n quickselect(arr, mid);\n const median = arr[mid];\n quickselect(arr, firstQuartileLocation, 0, mid);\n const q1 = arr[firstQuartileLocation];\n quickselect(arr, thirdQuartileLocation, mid, arr.length - 1);\n const q3 = arr[thirdQuartileLocation];\n const cutoffArr = arr.filter((i) => i > 0);\n const cutoffPercentile = 5e-4;\n const topCutoffLocation = Math.floor(cutoffArr.length * (1 - cutoffPercentile));\n const bottomCutoffLocation = Math.floor(cutoffArr.length * cutoffPercentile);\n quickselect(cutoffArr, topCutoffLocation);\n quickselect(cutoffArr, bottomCutoffLocation, 0, topCutoffLocation);\n const contrastLimits = [cutoffArr[bottomCutoffLocation] || 0, cutoffArr[topCutoffLocation] || 0];\n return {\n mean,\n sd,\n q1,\n q3,\n median,\n domain: [min, max],\n contrastLimits\n };\n}\nfunction ensureArray(x) {\n return Array.isArray(x) ? x : [x];\n}\nfunction intToRgba(int) {\n if (!Number.isInteger(int)) {\n throw Error(\"Not an integer.\");\n }\n const buffer = new ArrayBuffer(4);\n const view = new DataView(buffer);\n view.setInt32(0, int, false);\n const bytes = new Uint8Array(buffer);\n return Array.from(bytes);\n}\nfunction isInterleaved(shape) {\n const lastDimSize = shape[shape.length - 1];\n return lastDimSize === 3 || lastDimSize === 4;\n}\nfunction getLabels(dimOrder) {\n return dimOrder.toLowerCase().split(\"\").reverse();\n}\nfunction getDims(labels) {\n const lookup = new Map(labels.map((name, i) => [name, i]));\n if (lookup.size !== labels.length) {\n throw Error(\"Labels must be unique, found duplicated label.\");\n }\n return (name) => {\n const index = lookup.get(name);\n if (index === void 0) {\n throw Error(\"Invalid dimension.\");\n }\n return index;\n };\n}\nfunction getImageSize(source) {\n const interleaved = isInterleaved(source.shape);\n const [height, width] = source.shape.slice(interleaved ? -3 : -2);\n return {\n height,\n width\n };\n}\nfunction prevPowerOf2(x) {\n return 2 ** Math.floor(Math.log2(x));\n}\nconst SIGNAL_ABORTED = \"__vivSignalAborted\";\n\nfunction renderSubLayers(props) {\n const {\n bbox: {\n left,\n top,\n right,\n bottom\n },\n x,\n y,\n z\n } = props.tile;\n const {\n data,\n id,\n loader,\n maxZoom\n } = props; // Only render in positive coorinate system\n\n if ([left, bottom, right, top].some(v => v < 0) || !data) {\n return null;\n }\n\n const base = loader[0];\n const {\n height,\n width\n } = getImageSize(base); // Tiles are exactly fitted to have height and width such that their bounds match that of the actual image (not some padded version).\n // Thus the right/bottom given by deck.gl are incorrect since they assume tiles are of uniform sizes, which is not the case for us.\n\n const bounds = [left, data.height < base.tileSize ? height : bottom, data.width < base.tileSize ? width : right, top];\n\n if (isInterleaved(base.shape)) {\n const {\n photometricInterpretation = 2\n } = base.meta;\n return new BitmapLayer(props, {\n image: data,\n photometricInterpretation,\n // Shared props with XRLayer:\n bounds,\n id: `tile-sub-layer-${bounds}-${id}`,\n tileId: {\n x,\n y,\n z\n }\n });\n }\n\n return new XRLayer(props, {\n channelData: data,\n // Uncomment to help debugging - shades the tile being hovered over.\n // autoHighlight: true,\n // highlightColor: [80, 80, 80, 50],\n // Shared props with BitmapLayer:\n bounds,\n id: `tile-sub-layer-${bounds}-${id}`,\n tileId: {\n x,\n y,\n z\n },\n // The auto setting is NEAREST at the highest resolution but LINEAR otherwise.\n interpolation: z === maxZoom ? GL.NEAREST : GL.LINEAR\n });\n}\n\nconst defaultProps$9 = {\n pickable: {\n type: 'boolean',\n value: true,\n compare: true\n },\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n contrastLimits: {\n type: 'array',\n value: [],\n compare: true\n },\n channelsVisible: {\n type: 'array',\n value: [],\n compare: true\n },\n renderSubLayers: {\n type: 'function',\n value: renderSubLayers,\n compare: false\n },\n dtype: {\n type: 'string',\n value: 'Uint16',\n compare: true\n },\n domain: {\n type: 'array',\n value: [],\n compare: true\n },\n viewportId: {\n type: 'string',\n value: '',\n compare: true\n },\n interpolation: {\n type: 'number',\n value: null,\n compare: true\n }\n};\n/**\n * This layer serves as a proxy of sorts to the rendering done in renderSubLayers, reacting to viewport changes in a custom manner.\n */\n\nclass MultiscaleImageLayerBase extends TileLayer {\n /**\n * This function allows us to controls which viewport gets to update the Tileset2D.\n * This is a uniquely TileLayer issue since it updates based on viewport updates thanks\n * to its ability to handle zoom-pan loading. Essentially, with a picture-in-picture,\n * this prevents it from detecting the update of some other viewport that is unwanted.\n */\n _updateTileset() {\n if (!this.props.viewportId) {\n super._updateTileset();\n }\n\n if (this.props.viewportId && this.context.viewport.id === this.props.viewportId || // I don't know why, but DeckGL doesn't recognize multiple views on the first pass\n // so we force update on the first pass by checking if there is a viewport in the tileset.\n !this.state.tileset._viewport) {\n super._updateTileset();\n }\n }\n\n}\nMultiscaleImageLayerBase.layerName = 'MultiscaleImageLayerBase';\nMultiscaleImageLayerBase.defaultProps = defaultProps$9;\n\nvar fs$4 = \"#define GLSLIFY 1\\nuniform float majorLensAxis;uniform float minorLensAxis;uniform vec2 lensCenter;uniform bool lensEnabled;uniform int lensSelection;uniform vec3 lensBorderColor;uniform float lensBorderRadius;uniform vec3 colors[6];bool frag_in_lens_bounds(vec2 vTexCoord){return pow((lensCenter.x-vTexCoord.x)/majorLensAxis,2.)+pow((lensCenter.y-vTexCoord.y)/minorLensAxis,2.)<(1.-lensBorderRadius);}bool frag_on_lens_bounds(vec2 vTexCoord){float ellipseDistance=pow((lensCenter.x-vTexCoord.x)/majorLensAxis,2.)+pow((lensCenter.y-vTexCoord.y)/minorLensAxis,2.);return ellipseDistance<=1.&&ellipseDistance>=(1.-lensBorderRadius);}float get_use_color_float(vec2 vTexCoord,int channelIndex){bool isFragInLensBounds=frag_in_lens_bounds(vTexCoord);bool inLensAndUseLens=lensEnabled&&isFragInLensBounds;return float(int((inLensAndUseLens&&channelIndex==lensSelection)||(!inLensAndUseLens)));}void mutate_color(inout vec3 rgb,float intensity0,float intensity1,float intensity2,float intensity3,float intensity4,float intensity5,vec2 vTexCoord){float useColorValue=0.;useColorValue=get_use_color_float(vTexCoord,0);rgb+=max(0.,min(1.,intensity0))*max(vec3(colors[0]),(1.-useColorValue)*vec3(1.,1.,1.));useColorValue=get_use_color_float(vTexCoord,1);rgb+=max(0.,min(1.,intensity1))*max(vec3(colors[1]),(1.-useColorValue)*vec3(1.,1.,1.));useColorValue=get_use_color_float(vTexCoord,2);rgb+=max(0.,min(1.,intensity2))*max(vec3(colors[2]),(1.-useColorValue)*vec3(1.,1.,1.));useColorValue=get_use_color_float(vTexCoord,3);rgb+=max(0.,min(1.,intensity3))*max(vec3(colors[3]),(1.-useColorValue)*vec3(1.,1.,1.));useColorValue=get_use_color_float(vTexCoord,4);rgb+=max(0.,min(1.,intensity4))*max(vec3(colors[4]),(1.-useColorValue)*vec3(1.,1.,1.));useColorValue=get_use_color_float(vTexCoord,5);rgb+=max(0.,min(1.,intensity5))*max(vec3(colors[5]),(1.-useColorValue)*vec3(1.,1.,1.));}\"; // eslint-disable-line\n\nvar lens = {\n name: 'lens-module',\n fs: fs$4,\n inject: {\n 'fs:DECKGL_MUTATE_COLOR': `\n vec3 rgb = rgba.rgb;\n mutate_color(rgb, intensity0, intensity1, intensity2, intensity3, intensity4, intensity5, vTexCoord);\n rgba = vec4(rgb, 1.);\n `,\n 'fs:#main-end': `\n bool isFragOnLensBounds = frag_on_lens_bounds(vTexCoord);\n gl_FragColor = (lensEnabled && isFragOnLensBounds) ? vec4(lensBorderColor, 1.) : gl_FragColor;\n `\n }\n};\n\nconst COLOR_PALETTE = [[0, 0, 255], // blue\n[0, 255, 0], // green\n[255, 0, 255], // magenta\n[255, 255, 0], // yellow\n[255, 128, 0], // orange\n[0, 255, 255], // cyan\n[255, 255, 255], // white\n[255, 0, 0] // red\n];\nfunction getDefaultPalette(n) {\n if (n > COLOR_PALETTE.length) {\n throw new Error('Too many colors');\n }\n\n return COLOR_PALETTE.slice(0, n);\n}\nfunction padColors({\n colors,\n channelsVisible\n}) {\n const newColors = colors.map((color, i) => channelsVisible[i] ? color.map(c => c / MAX_COLOR_INTENSITY) : DEFAULT_COLOR_OFF);\n const padSize = MAX_CHANNELS - newColors.length;\n const paddedColors = padWithDefault(newColors, DEFAULT_COLOR_OFF, padSize).reduce((acc, val) => acc.concat(val), []);\n return paddedColors;\n}\n\nconst defaultProps$8 = {\n lensEnabled: {\n type: 'boolean',\n value: false,\n compare: true\n },\n lensSelection: {\n type: 'number',\n value: 0,\n compare: true\n },\n lensRadius: {\n type: 'number',\n value: 100,\n compare: true\n },\n lensBorderColor: {\n type: 'array',\n value: [255, 255, 255],\n compare: true\n },\n lensBorderRadius: {\n type: 'number',\n value: 0.02,\n compare: true\n },\n colors: {\n type: 'array',\n value: null,\n compare: true\n }\n};\n/**\n * This deck.gl extension allows for a lens that selectively shows one channel in its chosen color and then the others in white.\n * @typedef LayerProps\n * @type {Object}\n * @property {boolean=} lensEnabled Whether or not to use the lens.\n * @property {number=} lensSelection Numeric index of the channel to be focused on by the lens.\n * @property {number=} lensRadius Pixel radius of the lens (default: 100).\n * @property {Array.<number>=} lensBorderColor RGB color of the border of the lens (default [255, 255, 255]).\n * @property {number=} lensBorderRadius Percentage of the radius of the lens for a border (default 0.02).\n * @property {Array<Array.<number>>=} colors Color palette to pseudo-color channels as.\n * */\n\nconst LensExtension = class extends LayerExtension {\n getShaders() {\n return { ...super.getShaders(),\n modules: [lens]\n };\n }\n\n initializeState() {\n const layer = this.getCurrentLayer(); // No need to run this on layers that don't have a `draw` call.\n\n if (layer.isComposite) {\n return;\n }\n\n const onMouseMove = () => {\n const {\n viewportId\n } = layer.props;\n const {\n lensRadius = defaultProps$8.lensRadius.value\n } = this.props; // If there is no viewportId, don't try to do anything.\n\n if (!viewportId) {\n layer.setState({\n unprojectLensBounds: [0, 0, 0, 0]\n });\n return;\n }\n\n const {\n mousePosition\n } = layer.context;\n const layerView = layer.context.deck.viewManager.views.filter(view => view.id === viewportId)[0];\n const viewState = layer.context.deck.viewManager.viewState[viewportId];\n const viewport = layerView.makeViewport({ ...viewState,\n viewState\n }); // If the mouse is in the viewport and the mousePosition exists, set\n // the state with the bounding box of the circle that will render as a lens.\n\n if (mousePosition && viewport.containsPixel(mousePosition)) {\n const offsetMousePosition = {\n x: mousePosition.x - viewport.x,\n y: mousePosition.y - viewport.y\n };\n const mousePositionBounds = [// left\n [offsetMousePosition.x - lensRadius, offsetMousePosition.y], // bottom\n [offsetMousePosition.x, offsetMousePosition.y + lensRadius], // right\n [offsetMousePosition.x + lensRadius, offsetMousePosition.y], // top\n [offsetMousePosition.x, offsetMousePosition.y - lensRadius]]; // Unproject from screen to world coordinates.\n\n const unprojectLensBounds = mousePositionBounds.map((bounds, i) => viewport.unproject(bounds)[i % 2]);\n layer.setState({\n unprojectLensBounds\n });\n } else {\n layer.setState({\n unprojectLensBounds: [0, 0, 0, 0]\n });\n }\n };\n\n if (this.context.deck) {\n this.context.deck.eventManager.on({\n pointermove: onMouseMove,\n pointerleave: onMouseMove,\n wheel: onMouseMove\n });\n }\n\n this.setState({\n onMouseMove,\n unprojectLensBounds: [0, 0, 0, 0]\n });\n }\n\n draw() {\n const {\n unprojectLensBounds = [0, 0, 0, 0]\n } = this.state;\n const {\n bounds,\n lensEnabled = defaultProps$8.lensEnabled.value,\n lensSelection = defaultProps$8.lensSelection.value,\n lensBorderColor = defaultProps$8.lensBorderColor.value,\n lensBorderRadius = defaultProps$8.lensBorderRadius.value,\n colors,\n channelsVisible\n } = this.props; // Creating a unit-square scaled intersection box for rendering the lens.\n // It is ok if these coordinates are outside the unit square since\n // we check membership in or out of the lens on the fragment shader.\n\n const [leftMouseBound, bottomMouseBound, rightMouseBound, topMouseBound] = unprojectLensBounds;\n const [left, bottom, right, top] = bounds;\n const leftMouseBoundScaled = (leftMouseBound - left) / (right - left);\n const bottomMouseBoundScaled = (bottomMouseBound - top) / (bottom - top);\n const rightMouseBoundScaled = (rightMouseBound - left) / (right - left);\n const topMouseBoundScaled = (topMouseBound - top) / (bottom - top);\n const paddedColors = padColors({\n channelsVisible: channelsVisible || this.selections.map(() => true),\n colors: colors || getDefaultPalette(this.props.selections.length)\n });\n const uniforms = {\n majorLensAxis: (rightMouseBoundScaled - leftMouseBoundScaled) / 2,\n minorLensAxis: (bottomMouseBoundScaled - topMouseBoundScaled) / 2,\n lensCenter: [(rightMouseBoundScaled + leftMouseBoundScaled) / 2, (bottomMouseBoundScaled + topMouseBoundScaled) / 2],\n lensEnabled,\n lensSelection,\n lensBorderColor,\n lensBorderRadius,\n colors: paddedColors\n }; // eslint-disable-next-line no-unused-expressions\n\n this.state.model?.setUniforms(uniforms);\n }\n\n finalizeState() {\n // Remove event listeners\n if (this.context.deck) {\n this.context.deck.eventManager.off({\n pointermove: this.state?.onMouseMove,\n pointerleave: this.state?.onMouseMove,\n wheel: this.state?.onMouseMove\n });\n }\n }\n\n};\nLensExtension.extensionName = 'LensExtension';\nLensExtension.defaultProps = defaultProps$8;\n\nvar fs$3 = \"#define GLSLIFY 1\\nvec4 apply_transparent_color_1540259130(vec3 color,vec3 transparentColor,bool useTransparentColor,float opacity){return vec4(color,(color==transparentColor&&useTransparentColor)? 0. : opacity);}uniform vec3 transparentColor;uniform bool useTransparentColor;uniform float opacity;uniform vec3 colors[6];void mutate_color(inout vec3 rgb,float intensity0,float intensity1,float intensity2,float intensity3,float intensity4,float intensity5){rgb+=max(0.0,min(1.0,intensity0))*vec3(colors[0]);rgb+=max(0.0,min(1.0,intensity1))*vec3(colors[1]);rgb+=max(0.0,min(1.0,intensity2))*vec3(colors[2]);rgb+=max(0.0,min(1.0,intensity3))*vec3(colors[3]);rgb+=max(0.0,min(1.0,intensity4))*vec3(colors[4]);rgb+=max(0.0,min(1.0,intensity5))*vec3(colors[5]);}vec4 apply_opacity(vec3 rgb){return vec4(apply_transparent_color_1540259130(rgb,transparentColor,useTransparentColor,opacity));}\"; // eslint-disable-line\n\nvar colorPalette = {\n name: 'color-palette-module',\n fs: fs$3,\n inject: {\n 'fs:DECKGL_MUTATE_COLOR': `\n vec3 rgb = rgba.rgb;\n mutate_color(rgb, intensity0, intensity1, intensity2, intensity3, intensity4, intensity5);\n rgba = apply_opacity(rgb);\n `\n }\n};\n\nconst defaultProps$7 = {\n colors: {\n type: 'array',\n value: null,\n compare: true\n },\n opacity: {\n type: 'number',\n value: 1.0,\n compare: true\n },\n transparentColor: {\n type: 'array',\n value: null,\n compare: true\n },\n useTransparentColor: {\n type: 'boolean',\n value: false,\n compare: true\n }\n};\n/**\n * This deck.gl extension allows for a color palette to be used for pseudo-coloring channels.\n * @typedef LayerProps\n * @type {object}\n * @property {Array<Array<number>>=} colors Array of colors to map channels to (RGB).\n * @property {number=} opacity Opacity of the layer.\n * @property {Array.<number>=} transparentColor An RGB (0-255 range) color to be considered \"transparent\" if provided.\n * In other words, any fragment shader output equal transparentColor (before applying opacity) will have opacity 0.\n * @property {Boolean=} useTransparentColor Whether or not to use the value provided to transparentColor.\n * */\n\nconst ColorPaletteExtension = class extends LayerExtension {\n getShaders() {\n return { ...super.getShaders(),\n modules: [colorPalette]\n };\n }\n\n draw() {\n const {\n colors,\n channelsVisible,\n opacity = defaultProps$7.opacity.value,\n transparentColor = defaultProps$7.transparentColor.value,\n useTransparentColor = defaultProps$7.useTransparentColor.value\n } = this.props;\n const paddedColors = padColors({\n channelsVisible: channelsVisible || this.selections.map(() => true),\n colors: colors || getDefaultPalette(this.props.selections.length)\n });\n const uniforms = {\n colors: paddedColors,\n opacity,\n transparentColor: (transparentColor || [0, 0, 0]).map(i => i / 255),\n useTransparentColor: Boolean(useTransparentColor)\n }; // eslint-disable-next-line no-unused-expressions\n\n this.state.model?.setUniforms(uniforms);\n }\n\n};\nColorPaletteExtension.extensionName = 'ColorPaletteExtension';\nColorPaletteExtension.defaultProps = defaultProps$7;\n\nvar fs$2 = \"#define GLSLIFY 1\\nvec4 jet(float x_17){const float e0=0.0;const vec4 v0=vec4(0,0,0.5137254901960784,1);const float e1=0.125;const vec4 v1=vec4(0,0.23529411764705882,0.6666666666666666,1);const float e2=0.375;const vec4 v2=vec4(0.0196078431372549,1,1,1);const float e3=0.625;const vec4 v3=vec4(1,1,0,1);const float e4=0.875;const vec4 v4=vec4(0.9803921568627451,0,0,1);const float e5=1.0;const vec4 v5=vec4(0.5019607843137255,0,0,1);float a0=smoothstep(e0,e1,x_17);float a1=smoothstep(e1,e2,x_17);float a2=smoothstep(e2,e3,x_17);float a3=smoothstep(e3,e4,x_17);float a4=smoothstep(e4,e5,x_17);return max(mix(v0,v1,a0)*step(e0,x_17)*step(x_17,e1),max(mix(v1,v2,a1)*step(e1,x_17)*step(x_17,e2),max(mix(v2,v3,a2)*step(e2,x_17)*step(x_17,e3),max(mix(v3,v4,a3)*step(e3,x_17)*step(x_17,e4),mix(v4,v5,a4)*step(e4,x_17)*step(x_17,e5)))));}vec4 hsv(float x_18){const float e0=0.0;const vec4 v0=vec4(1,0,0,1);const float e1=0.169;const vec4 v1=vec4(0.9921568627450981,1,0.00784313725490196,1);const float e2=0.173;const vec4 v2=vec4(0.9686274509803922,1,0.00784313725490196,1);const float e3=0.337;const vec4 v3=vec4(0,0.9882352941176471,0.01568627450980392,1);const float e4=0.341;const vec4 v4=vec4(0,0.9882352941176471,0.0392156862745098,1);const float e5=0.506;const vec4 v5=vec4(0.00392156862745098,0.9764705882352941,1,1);const float e6=0.671;const vec4 v6=vec4(0.00784313725490196,0,0.9921568627450981,1);const float e7=0.675;const vec4 v7=vec4(0.03137254901960784,0,0.9921568627450981,1);const float e8=0.839;const vec4 v8=vec4(1,0,0.984313725490196,1);const float e9=0.843;const vec4 v9=vec4(1,0,0.9607843137254902,1);const float e10=1.0;const vec4 v10=vec4(1,0,0.023529411764705882,1);float a0=smoothstep(e0,e1,x_18);float a1=smoothstep(e1,e2,x_18);float a2=smoothstep(e2,e3,x_18);float a3=smoothstep(e3,e4,x_18);float a4=smoothstep(e4,e5,x_18);float a5=smoothstep(e5,e6,x_18);float a6=smoothstep(e6,e7,x_18);float a7=smoothstep(e7,e8,x_18);float a8=smoothstep(e8,e9,x_18);float a9=smoothstep(e9,e10,x_18);return max(mix(v0,v1,a0)*step(e0,x_18)*step(x_18,e1),max(mix(v1,v2,a1)*step(e1,x_18)*step(x_18,e2),max(mix(v2,v3,a2)*step(e2,x_18)*step(x_18,e3),max(mix(v3,v4,a3)*step(e3,x_18)*step(x_18,e4),max(mix(v4,v5,a4)*step(e4,x_18)*step(x_18,e5),max(mix(v5,v6,a5)*step(e5,x_18)*step(x_18,e6),max(mix(v6,v7,a6)*step(e6,x_18)*step(x_18,e7),max(mix(v7,v8,a7)*step(e7,x_18)*step(x_18,e8),max(mix(v8,v9,a8)*step(e8,x_18)*step(x_18,e9),mix(v9,v10,a9)*step(e9,x_18)*step(x_18,e10))))))))));}vec4 hot(float x_13){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.3;const vec4 v1=vec4(0.9019607843137255,0,0,1);const float e2=0.6;const vec4 v2=vec4(1,0.8235294117647058,0,1);const float e3=1.0;const vec4 v3=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_13);float a1=smoothstep(e1,e2,x_13);float a2=smoothstep(e2,e3,x_13);return max(mix(v0,v1,a0)*step(e0,x_13)*step(x_13,e1),max(mix(v1,v2,a1)*step(e1,x_13)*step(x_13,e2),mix(v2,v3,a2)*step(e2,x_13)*step(x_13,e3)));}vec4 cool(float x_24){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.13;const vec4 v1=vec4(0.4549019607843137,0,0.8549019607843137,1);const float e2=0.25;const vec4 v2=vec4(0.3843137254901961,0.2901960784313726,0.9294117647058824,1);const float e3=0.38;const vec4 v3=vec4(0.26666666666666666,0.5725490196078431,0.9058823529411765,1);const float e4=0.5;const vec4 v4=vec4(0,0.8,0.7725490196078432,1);const float e5=0.63;const vec4 v5=vec4(0,0.9686274509803922,0.5725490196078431,1);const float e6=0.75;const vec4 v6=vec4(0,1,0.34509803921568627,1);const float e7=0.88;const vec4 v7=vec4(0.1568627450980392,1,0.03137254901960784,1);const float e8=1.0;const vec4 v8=vec4(0.5764705882352941,1,0,1);float a0=smoothstep(e0,e1,x_24);float a1=smoothstep(e1,e2,x_24);float a2=smoothstep(e2,e3,x_24);float a3=smoothstep(e3,e4,x_24);float a4=smoothstep(e4,e5,x_24);float a5=smoothstep(e5,e6,x_24);float a6=smoothstep(e6,e7,x_24);float a7=smoothstep(e7,e8,x_24);return max(mix(v0,v1,a0)*step(e0,x_24)*step(x_24,e1),max(mix(v1,v2,a1)*step(e1,x_24)*step(x_24,e2),max(mix(v2,v3,a2)*step(e2,x_24)*step(x_24,e3),max(mix(v3,v4,a3)*step(e3,x_24)*step(x_24,e4),max(mix(v4,v5,a4)*step(e4,x_24)*step(x_24,e5),max(mix(v5,v6,a5)*step(e5,x_24)*step(x_24,e6),max(mix(v6,v7,a6)*step(e6,x_24)*step(x_24,e7),mix(v7,v8,a7)*step(e7,x_24)*step(x_24,e8))))))));}vec4 spring(float x_5){const float e0=0.0;const vec4 v0=vec4(1,0,1,1);const float e1=1.0;const vec4 v1=vec4(1,1,0,1);float a0=smoothstep(e0,e1,x_5);return mix(v0,v1,a0)*step(e0,x_5)*step(x_5,e1);}vec4 summer(float x_12){const float e0=0.0;const vec4 v0=vec4(0,0.5019607843137255,0.4,1);const float e1=1.0;const vec4 v1=vec4(1,1,0.4,1);float a0=smoothstep(e0,e1,x_12);return mix(v0,v1,a0)*step(e0,x_12)*step(x_12,e1);}vec4 autumn(float x_25){const float e0=0.0;const vec4 v0=vec4(1,0,0,1);const float e1=1.0;const vec4 v1=vec4(1,1,0,1);float a0=smoothstep(e0,e1,x_25);return mix(v0,v1,a0)*step(e0,x_25)*step(x_25,e1);}vec4 winter(float x_16){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=1.0;const vec4 v1=vec4(0,1,0.5019607843137255,1);float a0=smoothstep(e0,e1,x_16);return mix(v0,v1,a0)*step(e0,x_16)*step(x_16,e1);}vec4 bone(float x_15){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.376;const vec4 v1=vec4(0.32941176470588235,0.32941176470588235,0.4549019607843137,1);const float e2=0.753;const vec4 v2=vec4(0.6627450980392157,0.7843137254901961,0.7843137254901961,1);const float e3=1.0;const vec4 v3=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_15);float a1=smoothstep(e1,e2,x_15);float a2=smoothstep(e2,e3,x_15);return max(mix(v0,v1,a0)*step(e0,x_15)*step(x_15,e1),max(mix(v1,v2,a1)*step(e1,x_15)*step(x_15,e2),mix(v2,v3,a2)*step(e2,x_15)*step(x_15,e3)));}vec4 copper(float x_10){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.804;const vec4 v1=vec4(1,0.6274509803921569,0.4,1);const float e2=1.0;const vec4 v2=vec4(1,0.7803921568627451,0.4980392156862745,1);float a0=smoothstep(e0,e1,x_10);float a1=smoothstep(e1,e2,x_10);return max(mix(v0,v1,a0)*step(e0,x_10)*step(x_10,e1),mix(v1,v2,a1)*step(e1,x_10)*step(x_10,e2));}vec4 greys(float x_4){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=1.0;const vec4 v1=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_4);return mix(v0,v1,a0)*step(e0,x_4)*step(x_4,e1);}vec4 yignbu(float x_32){const float e0=0.0;const vec4 v0=vec4(0.03137254901960784,0.11372549019607843,0.34509803921568627,1);const float e1=0.125;const vec4 v1=vec4(0.1450980392156863,0.20392156862745098,0.5803921568627451,1);const float e2=0.25;const vec4 v2=vec4(0.13333333333333333,0.3686274509803922,0.6588235294117647,1);const float e3=0.375;const vec4 v3=vec4(0.11372549019607843,0.5686274509803921,0.7529411764705882,1);const float e4=0.5;const vec4 v4=vec4(0.2549019607843137,0.7137254901960784,0.7686274509803922,1);const float e5=0.625;const vec4 v5=vec4(0.4980392156862745,0.803921568627451,0.7333333333333333,1);const float e6=0.75;const vec4 v6=vec4(0.7803921568627451,0.9137254901960784,0.7058823529411765,1);const float e7=0.875;const vec4 v7=vec4(0.9294117647058824,0.9725490196078431,0.8509803921568627,1);const float e8=1.0;const vec4 v8=vec4(1,1,0.8509803921568627,1);float a0=smoothstep(e0,e1,x_32);float a1=smoothstep(e1,e2,x_32);float a2=smoothstep(e2,e3,x_32);float a3=smoothstep(e3,e4,x_32);float a4=smoothstep(e4,e5,x_32);float a5=smoothstep(e5,e6,x_32);float a6=smoothstep(e6,e7,x_32);float a7=smoothstep(e7,e8,x_32);return max(mix(v0,v1,a0)*step(e0,x_32)*step(x_32,e1),max(mix(v1,v2,a1)*step(e1,x_32)*step(x_32,e2),max(mix(v2,v3,a2)*step(e2,x_32)*step(x_32,e3),max(mix(v3,v4,a3)*step(e3,x_32)*step(x_32,e4),max(mix(v4,v5,a4)*step(e4,x_32)*step(x_32,e5),max(mix(v5,v6,a5)*step(e5,x_32)*step(x_32,e6),max(mix(v6,v7,a6)*step(e6,x_32)*step(x_32,e7),mix(v7,v8,a7)*step(e7,x_32)*step(x_32,e8))))))));}vec4 greens(float x_34){const float e0=0.0;const vec4 v0=vec4(0,0.26666666666666666,0.10588235294117647,1);const float e1=0.125;const vec4 v1=vec4(0,0.42745098039215684,0.17254901960784313,1);const float e2=0.25;const vec4 v2=vec4(0.13725490196078433,0.5450980392156862,0.27058823529411763,1);const float e3=0.375;const vec4 v3=vec4(0.2549019607843137,0.6705882352941176,0.36470588235294116,1);const float e4=0.5;const vec4 v4=vec4(0.4549019607843137,0.7686274509803922,0.4627450980392157,1);const float e5=0.625;const vec4 v5=vec4(0.6313725490196078,0.8509803921568627,0.6078431372549019,1);const float e6=0.75;const vec4 v6=vec4(0.7803921568627451,0.9137254901960784,0.7529411764705882,1);const float e7=0.875;const vec4 v7=vec4(0.8980392156862745,0.9607843137254902,0.8784313725490196,1);const float e8=1.0;const vec4 v8=vec4(0.9686274509803922,0.9882352941176471,0.9607843137254902,1);float a0=smoothstep(e0,e1,x_34);float a1=smoothstep(e1,e2,x_34);float a2=smoothstep(e2,e3,x_34);float a3=smoothstep(e3,e4,x_34);float a4=smoothstep(e4,e5,x_34);float a5=smoothstep(e5,e6,x_34);float a6=smoothstep(e6,e7,x_34);float a7=smoothstep(e7,e8,x_34);return max(mix(v0,v1,a0)*step(e0,x_34)*step(x_34,e1),max(mix(v1,v2,a1)*step(e1,x_34)*step(x_34,e2),max(mix(v2,v3,a2)*step(e2,x_34)*step(x_34,e3),max(mix(v3,v4,a3)*step(e3,x_34)*step(x_34,e4),max(mix(v4,v5,a4)*step(e4,x_34)*step(x_34,e5),max(mix(v5,v6,a5)*step(e5,x_34)*step(x_34,e6),max(mix(v6,v7,a6)*step(e6,x_34)*step(x_34,e7),mix(v7,v8,a7)*step(e7,x_34)*step(x_34,e8))))))));}vec4 yiorrd(float x_41){const float e0=0.0;const vec4 v0=vec4(0.5019607843137255,0,0.14901960784313725,1);const float e1=0.125;const vec4 v1=vec4(0.7411764705882353,0,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.8901960784313725,0.10196078431372549,0.10980392156862745,1);const float e3=0.375;const vec4 v3=vec4(0.9882352941176471,0.3058823529411765,0.16470588235294117,1);const float e4=0.5;const vec4 v4=vec4(0.9921568627450981,0.5529411764705883,0.23529411764705882,1);const float e5=0.625;const vec4 v5=vec4(0.996078431372549,0.6980392156862745,0.2980392156862745,1);const float e6=0.75;const vec4 v6=vec4(0.996078431372549,0.8509803921568627,0.4627450980392157,1);const float e7=0.875;const vec4 v7=vec4(1,0.9294117647058824,0.6274509803921569,1);const float e8=1.0;const vec4 v8=vec4(1,1,0.8,1);float a0=smoothstep(e0,e1,x_41);float a1=smoothstep(e1,e2,x_41);float a2=smoothstep(e2,e3,x_41);float a3=smoothstep(e3,e4,x_41);float a4=smoothstep(e4,e5,x_41);float a5=smoothstep(e5,e6,x_41);float a6=smoothstep(e6,e7,x_41);float a7=smoothstep(e7,e8,x_41);return max(mix(v0,v1,a0)*step(e0,x_41)*step(x_41,e1),max(mix(v1,v2,a1)*step(e1,x_41)*step(x_41,e2),max(mix(v2,v3,a2)*step(e2,x_41)*step(x_41,e3),max(mix(v3,v4,a3)*step(e3,x_41)*step(x_41,e4),max(mix(v4,v5,a4)*step(e4,x_41)*step(x_41,e5),max(mix(v5,v6,a5)*step(e5,x_41)*step(x_41,e6),max(mix(v6,v7,a6)*step(e6,x_41)*step(x_41,e7),mix(v7,v8,a7)*step(e7,x_41)*step(x_41,e8))))))));}vec4 bluered(float x_23){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=1.0;const vec4 v1=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_23);return mix(v0,v1,a0)*step(e0,x_23)*step(x_23,e1);}vec4 rdbu(float x_1){const float e0=0.0;const vec4 v0=vec4(0.0196078431372549,0.0392156862745098,0.6745098039215687,1);const float e1=0.35;const vec4 v1=vec4(0.41568627450980394,0.5372549019607843,0.9686274509803922,1);const float e2=0.5;const vec4 v2=vec4(0.7450980392156863,0.7450980392156863,0.7450980392156863,1);const float e3=0.6;const vec4 v3=vec4(0.8627450980392157,0.6666666666666666,0.5176470588235295,1);const float e4=0.7;const vec4 v4=vec4(0.9019607843137255,0.5686274509803921,0.35294117647058826,1);const float e5=1.0;const vec4 v5=vec4(0.6980392156862745,0.0392156862745098,0.10980392156862745,1);float a0=smoothstep(e0,e1,x_1);float a1=smoothstep(e1,e2,x_1);float a2=smoothstep(e2,e3,x_1);float a3=smoothstep(e3,e4,x_1);float a4=smoothstep(e4,e5,x_1);return max(mix(v0,v1,a0)*step(e0,x_1)*step(x_1,e1),max(mix(v1,v2,a1)*step(e1,x_1)*step(x_1,e2),max(mix(v2,v3,a2)*step(e2,x_1)*step(x_1,e3),max(mix(v3,v4,a3)*step(e3,x_1)*step(x_1,e4),mix(v4,v5,a4)*step(e4,x_1)*step(x_1,e5)))));}vec4 picnic(float x_42){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=0.1;const vec4 v1=vec4(0.2,0.6,1,1);const float e2=0.2;const vec4 v2=vec4(0.4,0.8,1,1);const float e3=0.3;const vec4 v3=vec4(0.6,0.8,1,1);const float e4=0.4;const vec4 v4=vec4(0.8,0.8,1,1);const float e5=0.5;const vec4 v5=vec4(1,1,1,1);const float e6=0.6;const vec4 v6=vec4(1,0.8,1,1);const float e7=0.7;const vec4 v7=vec4(1,0.6,1,1);const float e8=0.8;const vec4 v8=vec4(1,0.4,0.8,1);const float e9=0.9;const vec4 v9=vec4(1,0.4,0.4,1);const float e10=1.0;const vec4 v10=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_42);float a1=smoothstep(e1,e2,x_42);float a2=smoothstep(e2,e3,x_42);float a3=smoothstep(e3,e4,x_42);float a4=smoothstep(e4,e5,x_42);float a5=smoothstep(e5,e6,x_42);float a6=smoothstep(e6,e7,x_42);float a7=smoothstep(e7,e8,x_42);float a8=smoothstep(e8,e9,x_42);float a9=smoothstep(e9,e10,x_42);return max(mix(v0,v1,a0)*step(e0,x_42)*step(x_42,e1),max(mix(v1,v2,a1)*step(e1,x_42)*step(x_42,e2),max(mix(v2,v3,a2)*step(e2,x_42)*step(x_42,e3),max(mix(v3,v4,a3)*step(e3,x_42)*step(x_42,e4),max(mix(v4,v5,a4)*step(e4,x_42)*step(x_42,e5),max(mix(v5,v6,a5)*step(e5,x_42)*step(x_42,e6),max(mix(v6,v7,a6)*step(e6,x_42)*step(x_42,e7),max(mix(v7,v8,a7)*step(e7,x_42)*step(x_42,e8),max(mix(v8,v9,a8)*step(e8,x_42)*step(x_42,e9),mix(v9,v10,a9)*step(e9,x_42)*step(x_42,e10))))))))));}vec4 rainbow(float x_31){const float e0=0.0;const vec4 v0=vec4(0.5882352941176471,0,0.35294117647058826,1);const float e1=0.125;const vec4 v1=vec4(0,0,0.7843137254901961,1);const float e2=0.25;const vec4 v2=vec4(0,0.09803921568627451,1,1);const float e3=0.375;const vec4 v3=vec4(0,0.596078431372549,1,1);const float e4=0.5;const vec4 v4=vec4(0.17254901960784313,1,0.5882352941176471,1);const float e5=0.625;const vec4 v5=vec4(0.592156862745098,1,0,1);const float e6=0.75;const vec4 v6=vec4(1,0.9176470588235294,0,1);const float e7=0.875;const vec4 v7=vec4(1,0.43529411764705883,0,1);const float e8=1.0;const vec4 v8=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_31);float a1=smoothstep(e1,e2,x_31);float a2=smoothstep(e2,e3,x_31);float a3=smoothstep(e3,e4,x_31);float a4=smoothstep(e4,e5,x_31);float a5=smoothstep(e5,e6,x_31);float a6=smoothstep(e6,e7,x_31);float a7=smoothstep(e7,e8,x_31);return max(mix(v0,v1,a0)*step(e0,x_31)*step(x_31,e1),max(mix(v1,v2,a1)*step(e1,x_31)*step(x_31,e2),max(mix(v2,v3,a2)*step(e2,x_31)*step(x_31,e3),max(mix(v3,v4,a3)*step(e3,x_31)*step(x_31,e4),max(mix(v4,v5,a4)*step(e4,x_31)*step(x_31,e5),max(mix(v5,v6,a5)*step(e5,x_31)*step(x_31,e6),max(mix(v6,v7,a6)*step(e6,x_31)*step(x_31,e7),mix(v7,v8,a7)*step(e7,x_31)*step(x_31,e8))))))));}vec4 portland(float x_21){const float e0=0.0;const vec4 v0=vec4(0.047058823529411764,0.2,0.5137254901960784,1);const float e1=0.25;const vec4 v1=vec4(0.0392156862745098,0.5333333333333333,0.7294117647058823,1);const float e2=0.5;const vec4 v2=vec4(0.9490196078431372,0.8274509803921568,0.2196078431372549,1);const float e3=0.75;const vec4 v3=vec4(0.9490196078431372,0.5607843137254902,0.2196078431372549,1);const float e4=1.0;const vec4 v4=vec4(0.8509803921568627,0.11764705882352941,0.11764705882352941,1);float a0=smoothstep(e0,e1,x_21);float a1=smoothstep(e1,e2,x_21);float a2=smoothstep(e2,e3,x_21);float a3=smoothstep(e3,e4,x_21);return max(mix(v0,v1,a0)*step(e0,x_21)*step(x_21,e1),max(mix(v1,v2,a1)*step(e1,x_21)*step(x_21,e2),max(mix(v2,v3,a2)*step(e2,x_21)*step(x_21,e3),mix(v3,v4,a3)*step(e3,x_21)*step(x_21,e4))));}vec4 blackbody(float x_38){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.2;const vec4 v1=vec4(0.9019607843137255,0,0,1);const float e2=0.4;const vec4 v2=vec4(0.9019607843137255,0.8235294117647058,0,1);const float e3=0.7;const vec4 v3=vec4(1,1,1,1);const float e4=1.0;const vec4 v4=vec4(0.6274509803921569,0.7843137254901961,1,1);float a0=smoothstep(e0,e1,x_38);float a1=smoothstep(e1,e2,x_38);float a2=smoothstep(e2,e3,x_38);float a3=smoothstep(e3,e4,x_38);return max(mix(v0,v1,a0)*step(e0,x_38)*step(x_38,e1),max(mix(v1,v2,a1)*step(e1,x_38)*step(x_38,e2),max(mix(v2,v3,a2)*step(e2,x_38)*step(x_38,e3),mix(v3,v4,a3)*step(e3,x_38)*step(x_38,e4))));}vec4 earth(float x_29){const float e0=0.0;const vec4 v0=vec4(0,0,0.5098039215686274,1);const float e1=0.1;const vec4 v1=vec4(0,0.7058823529411765,0.7058823529411765,1);const float e2=0.2;const vec4 v2=vec4(0.1568627450980392,0.8235294117647058,0.1568627450980392,1);const float e3=0.4;const vec4 v3=vec4(0.9019607843137255,0.9019607843137255,0.19607843137254902,1);const float e4=0.6;const vec4 v4=vec4(0.47058823529411764,0.27450980392156865,0.0784313725490196,1);const float e5=1.0;const vec4 v5=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_29);float a1=smoothstep(e1,e2,x_29);float a2=smoothstep(e2,e3,x_29);float a3=smoothstep(e3,e4,x_29);float a4=smoothstep(e4,e5,x_29);return max(mix(v0,v1,a0)*step(e0,x_29)*step(x_29,e1),max(mix(v1,v2,a1)*step(e1,x_29)*step(x_29,e2),max(mix(v2,v3,a2)*step(e2,x_29)*step(x_29,e3),max(mix(v3,v4,a3)*step(e3,x_29)*step(x_29,e4),mix(v4,v5,a4)*step(e4,x_29)*step(x_29,e5)))));}vec4 electric(float x_9){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.15;const vec4 v1=vec4(0.11764705882352941,0,0.39215686274509803,1);const float e2=0.4;const vec4 v2=vec4(0.47058823529411764,0,0.39215686274509803,1);const float e3=0.6;const vec4 v3=vec4(0.6274509803921569,0.35294117647058826,0,1);const float e4=0.8;const vec4 v4=vec4(0.9019607843137255,0.7843137254901961,0,1);const float e5=1.0;const vec4 v5=vec4(1,0.9803921568627451,0.8627450980392157,1);float a0=smoothstep(e0,e1,x_9);float a1=smoothstep(e1,e2,x_9);float a2=smoothstep(e2,e3,x_9);float a3=smoothstep(e3,e4,x_9);float a4=smoothstep(e4,e5,x_9);return max(mix(v0,v1,a0)*step(e0,x_9)*step(x_9,e1),max(mix(v1,v2,a1)*step(e1,x_9)*step(x_9,e2),max(mix(v2,v3,a2)*step(e2,x_9)*step(x_9,e3),max(mix(v3,v4,a3)*step(e3,x_9)*step(x_9,e4),mix(v4,v5,a4)*step(e4,x_9)*step(x_9,e5)))));}vec4 alpha(float x_0){const float e0=0.0;const vec4 v0=vec4(1,1,1,0);const float e1=1.0;const vec4 v1=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_0);return mix(v0,v1,a0)*step(e0,x_0)*step(x_0,e1);}vec4 viridis(float x_22){const float e0=0.0;const vec4 v0=vec4(0.26666666666666666,0.00392156862745098,0.32941176470588235,1);const float e1=0.13;const vec4 v1=vec4(0.2784313725490196,0.17254901960784313,0.47843137254901963,1);const float e2=0.25;const vec4 v2=vec4(0.23137254901960785,0.3176470588235294,0.5450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.17254901960784313,0.44313725490196076,0.5568627450980392,1);const float e4=0.5;const vec4 v4=vec4(0.12941176470588237,0.5647058823529412,0.5529411764705883,1);const float e5=0.63;const vec4 v5=vec4(0.15294117647058825,0.6784313725490196,0.5058823529411764,1);const float e6=0.75;const vec4 v6=vec4(0.3607843137254902,0.7843137254901961,0.38823529411764707,1);const float e7=0.88;const vec4 v7=vec4(0.6666666666666666,0.8627450980392157,0.19607843137254902,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.9058823529411765,0.1450980392156863,1);float a0=smoothstep(e0,e1,x_22);float a1=smoothstep(e1,e2,x_22);float a2=smoothstep(e2,e3,x_22);float a3=smoothstep(e3,e4,x_22);float a4=smoothstep(e4,e5,x_22);float a5=smoothstep(e5,e6,x_22);float a6=smoothstep(e6,e7,x_22);float a7=smoothstep(e7,e8,x_22);return max(mix(v0,v1,a0)*step(e0,x_22)*step(x_22,e1),max(mix(v1,v2,a1)*step(e1,x_22)*step(x_22,e2),max(mix(v2,v3,a2)*step(e2,x_22)*step(x_22,e3),max(mix(v3,v4,a3)*step(e3,x_22)*step(x_22,e4),max(mix(v4,v5,a4)*step(e4,x_22)*step(x_22,e5),max(mix(v5,v6,a5)*step(e5,x_22)*step(x_22,e6),max(mix(v6,v7,a6)*step(e6,x_22)*step(x_22,e7),mix(v7,v8,a7)*step(e7,x_22)*step(x_22,e8))))))));}vec4 inferno(float x_30){const float e0=0.0;const vec4 v0=vec4(0,0,0.01568627450980392,1);const float e1=0.13;const vec4 v1=vec4(0.12156862745098039,0.047058823529411764,0.2823529411764706,1);const float e2=0.25;const vec4 v2=vec4(0.3333333333333333,0.058823529411764705,0.42745098039215684,1);const float e3=0.38;const vec4 v3=vec4(0.5333333333333333,0.13333333333333333,0.41568627450980394,1);const float e4=0.5;const vec4 v4=vec4(0.7294117647058823,0.21176470588235294,0.3333333333333333,1);const float e5=0.63;const vec4 v5=vec4(0.8901960784313725,0.34901960784313724,0.2,1);const float e6=0.75;const vec4 v6=vec4(0.9764705882352941,0.5490196078431373,0.0392156862745098,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.788235294117647,0.19607843137254902,1);const float e8=1.0;const vec4 v8=vec4(0.9882352941176471,1,0.6431372549019608,1);float a0=smoothstep(e0,e1,x_30);float a1=smoothstep(e1,e2,x_30);float a2=smoothstep(e2,e3,x_30);float a3=smoothstep(e3,e4,x_30);float a4=smoothstep(e4,e5,x_30);float a5=smoothstep(e5,e6,x_30);float a6=smoothstep(e6,e7,x_30);float a7=smoothstep(e7,e8,x_30);return max(mix(v0,v1,a0)*step(e0,x_30)*step(x_30,e1),max(mix(v1,v2,a1)*step(e1,x_30)*step(x_30,e2),max(mix(v2,v3,a2)*step(e2,x_30)*step(x_30,e3),max(mix(v3,v4,a3)*step(e3,x_30)*step(x_30,e4),max(mix(v4,v5,a4)*step(e4,x_30)*step(x_30,e5),max(mix(v5,v6,a5)*step(e5,x_30)*step(x_30,e6),max(mix(v6,v7,a6)*step(e6,x_30)*step(x_30,e7),mix(v7,v8,a7)*step(e7,x_30)*step(x_30,e8))))))));}vec4 magma(float x_33){const float e0=0.0;const vec4 v0=vec4(0,0,0.01568627450980392,1);const float e1=0.13;const vec4 v1=vec4(0.10980392156862745,0.06274509803921569,0.26666666666666666,1);const float e2=0.25;const vec4 v2=vec4(0.30980392156862746,0.07058823529411765,0.4823529411764706,1);const float e3=0.38;const vec4 v3=vec4(0.5058823529411764,0.1450980392156863,0.5058823529411764,1);const float e4=0.5;const vec4 v4=vec4(0.7098039215686275,0.21176470588235294,0.47843137254901963,1);const float e5=0.63;const vec4 v5=vec4(0.8980392156862745,0.3137254901960784,0.39215686274509803,1);const float e6=0.75;const vec4 v6=vec4(0.984313725490196,0.5294117647058824,0.3803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.996078431372549,0.7607843137254902,0.5294117647058824,1);const float e8=1.0;const vec4 v8=vec4(0.9882352941176471,0.9921568627450981,0.7490196078431373,1);float a0=smoothstep(e0,e1,x_33);float a1=smoothstep(e1,e2,x_33);float a2=smoothstep(e2,e3,x_33);float a3=smoothstep(e3,e4,x_33);float a4=smoothstep(e4,e5,x_33);float a5=smoothstep(e5,e6,x_33);float a6=smoothstep(e6,e7,x_33);float a7=smoothstep(e7,e8,x_33);return max(mix(v0,v1,a0)*step(e0,x_33)*step(x_33,e1),max(mix(v1,v2,a1)*step(e1,x_33)*step(x_33,e2),max(mix(v2,v3,a2)*step(e2,x_33)*step(x_33,e3),max(mix(v3,v4,a3)*step(e3,x_33)*step(x_33,e4),max(mix(v4,v5,a4)*step(e4,x_33)*step(x_33,e5),max(mix(v5,v6,a5)*step(e5,x_33)*step(x_33,e6),max(mix(v6,v7,a6)*step(e6,x_33)*step(x_33,e7),mix(v7,v8,a7)*step(e7,x_33)*step(x_33,e8))))))));}vec4 plasma(float x_3){const float e0=0.0;const vec4 v0=vec4(0.050980392156862744,0.03137254901960784,0.5294117647058824,1);const float e1=0.13;const vec4 v1=vec4(0.29411764705882354,0.011764705882352941,0.6313725490196078,1);const float e2=0.25;const vec4 v2=vec4(0.49019607843137253,0.011764705882352941,0.6588235294117647,1);const float e3=0.38;const vec4 v3=vec4(0.6588235294117647,0.13333333333333333,0.5882352941176471,1);const float e4=0.5;const vec4 v4=vec4(0.796078431372549,0.27450980392156865,0.4745098039215686,1);const float e5=0.63;const vec4 v5=vec4(0.8980392156862745,0.4196078431372549,0.36470588235294116,1);const float e6=0.75;const vec4 v6=vec4(0.9725490196078431,0.5803921568627451,0.2549019607843137,1);const float e7=0.88;const vec4 v7=vec4(0.9921568627450981,0.7647058823529411,0.1568627450980392,1);const float e8=1.0;const vec4 v8=vec4(0.9411764705882353,0.9764705882352941,0.12941176470588237,1);float a0=smoothstep(e0,e1,x_3);float a1=smoothstep(e1,e2,x_3);float a2=smoothstep(e2,e3,x_3);float a3=smoothstep(e3,e4,x_3);float a4=smoothstep(e4,e5,x_3);float a5=smoothstep(e5,e6,x_3);float a6=smoothstep(e6,e7,x_3);float a7=smoothstep(e7,e8,x_3);return max(mix(v0,v1,a0)*step(e0,x_3)*step(x_3,e1),max(mix(v1,v2,a1)*step(e1,x_3)*step(x_3,e2),max(mix(v2,v3,a2)*step(e2,x_3)*step(x_3,e3),max(mix(v3,v4,a3)*step(e3,x_3)*step(x_3,e4),max(mix(v4,v5,a4)*step(e4,x_3)*step(x_3,e5),max(mix(v5,v6,a5)*step(e5,x_3)*step(x_3,e6),max(mix(v6,v7,a6)*step(e6,x_3)*step(x_3,e7),mix(v7,v8,a7)*step(e7,x_3)*step(x_3,e8))))))));}vec4 warm(float x_43){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.13;const vec4 v1=vec4(0.6745098039215687,0,0.7333333333333333,1);const float e2=0.25;const vec4 v2=vec4(0.8588235294117647,0,0.6666666666666666,1);const float e3=0.38;const vec4 v3=vec4(1,0,0.5098039215686274,1);const float e4=0.5;const vec4 v4=vec4(1,0.24705882352941178,0.2901960784313726,1);const float e5=0.63;const vec4 v5=vec4(1,0.4823529411764706,0,1);const float e6=0.75;const vec4 v6=vec4(0.9176470588235294,0.6901960784313725,0,1);const float e7=0.88;const vec4 v7=vec4(0.7450980392156863,0.8941176470588236,0,1);const float e8=1.0;const vec4 v8=vec4(0.5764705882352941,1,0,1);float a0=smoothstep(e0,e1,x_43);float a1=smoothstep(e1,e2,x_43);float a2=smoothstep(e2,e3,x_43);float a3=smoothstep(e3,e4,x_43);float a4=smoothstep(e4,e5,x_43);float a5=smoothstep(e5,e6,x_43);float a6=smoothstep(e6,e7,x_43);float a7=smoothstep(e7,e8,x_43);return max(mix(v0,v1,a0)*step(e0,x_43)*step(x_43,e1),max(mix(v1,v2,a1)*step(e1,x_43)*step(x_43,e2),max(mix(v2,v3,a2)*step(e2,x_43)*step(x_43,e3),max(mix(v3,v4,a3)*step(e3,x_43)*step(x_43,e4),max(mix(v4,v5,a4)*step(e4,x_43)*step(x_43,e5),max(mix(v5,v6,a5)*step(e5,x_43)*step(x_43,e6),max(mix(v6,v7,a6)*step(e6,x_43)*step(x_43,e7),mix(v7,v8,a7)*step(e7,x_43)*step(x_43,e8))))))));}vec4 rainbow_soft_1310269270(float x_14){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.1;const vec4 v1=vec4(0.7803921568627451,0,0.7058823529411765,1);const float e2=0.2;const vec4 v2=vec4(1,0,0.4745098039215686,1);const float e3=0.3;const vec4 v3=vec4(1,0.4235294117647059,0,1);const float e4=0.4;const vec4 v4=vec4(0.8705882352941177,0.7607843137254902,0,1);const float e5=0.5;const vec4 v5=vec4(0.5882352941176471,1,0,1);const float e6=0.6;const vec4 v6=vec4(0,1,0.21568627450980393,1);const float e7=0.7;const vec4 v7=vec4(0,0.9647058823529412,0.5882352941176471,1);const float e8=0.8;const vec4 v8=vec4(0.19607843137254902,0.6549019607843137,0.8705882352941177,1);const float e9=0.9;const vec4 v9=vec4(0.403921568627451,0.2,0.9215686274509803,1);const float e10=1.0;const vec4 v10=vec4(0.48627450980392156,0,0.7294117647058823,1);float a0=smoothstep(e0,e1,x_14);float a1=smoothstep(e1,e2,x_14);float a2=smoothstep(e2,e3,x_14);float a3=smoothstep(e3,e4,x_14);float a4=smoothstep(e4,e5,x_14);float a5=smoothstep(e5,e6,x_14);float a6=smoothstep(e6,e7,x_14);float a7=smoothstep(e7,e8,x_14);float a8=smoothstep(e8,e9,x_14);float a9=smoothstep(e9,e10,x_14);return max(mix(v0,v1,a0)*step(e0,x_14)*step(x_14,e1),max(mix(v1,v2,a1)*step(e1,x_14)*step(x_14,e2),max(mix(v2,v3,a2)*step(e2,x_14)*step(x_14,e3),max(mix(v3,v4,a3)*step(e3,x_14)*step(x_14,e4),max(mix(v4,v5,a4)*step(e4,x_14)*step(x_14,e5),max(mix(v5,v6,a5)*step(e5,x_14)*step(x_14,e6),max(mix(v6,v7,a6)*step(e6,x_14)*step(x_14,e7),max(mix(v7,v8,a7)*step(e7,x_14)*step(x_14,e8),max(mix(v8,v9,a8)*step(e8,x_14)*step(x_14,e9),mix(v9,v10,a9)*step(e9,x_14)*step(x_14,e10))))))))));}vec4 bathymetry(float x_36){const float e0=0.0;const vec4 v0=vec4(0.1568627450980392,0.10196078431372549,0.17254901960784313,1);const float e1=0.13;const vec4 v1=vec4(0.23137254901960785,0.19215686274509805,0.35294117647058826,1);const float e2=0.25;const vec4 v2=vec4(0.25098039215686274,0.2980392156862745,0.5450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.24705882352941178,0.43137254901960786,0.592156862745098,1);const float e4=0.5;const vec4 v4=vec4(0.2823529411764706,0.5568627450980392,0.6196078431372549,1);const float e5=0.63;const vec4 v5=vec4(0.3333333333333333,0.6823529411764706,0.6392156862745098,1);const float e6=0.75;const vec4 v6=vec4(0.47058823529411764,0.807843137254902,0.6392156862745098,1);const float e7=0.88;const vec4 v7=vec4(0.7333333333333333,0.9019607843137255,0.6745098039215687,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.996078431372549,0.8,1);float a0=smoothstep(e0,e1,x_36);float a1=smoothstep(e1,e2,x_36);float a2=smoothstep(e2,e3,x_36);float a3=smoothstep(e3,e4,x_36);float a4=smoothstep(e4,e5,x_36);float a5=smoothstep(e5,e6,x_36);float a6=smoothstep(e6,e7,x_36);float a7=smoothstep(e7,e8,x_36);return max(mix(v0,v1,a0)*step(e0,x_36)*step(x_36,e1),max(mix(v1,v2,a1)*step(e1,x_36)*step(x_36,e2),max(mix(v2,v3,a2)*step(e2,x_36)*step(x_36,e3),max(mix(v3,v4,a3)*step(e3,x_36)*step(x_36,e4),max(mix(v4,v5,a4)*step(e4,x_36)*step(x_36,e5),max(mix(v5,v6,a5)*step(e5,x_36)*step(x_36,e6),max(mix(v6,v7,a6)*step(e6,x_36)*step(x_36,e7),mix(v7,v8,a7)*step(e7,x_36)*step(x_36,e8))))))));}vec4 cdom(float x_7){const float e0=0.0;const vec4 v0=vec4(0.1843137254901961,0.058823529411764705,0.24313725490196078,1);const float e1=0.13;const vec4 v1=vec4(0.3411764705882353,0.09019607843137255,0.33725490196078434,1);const float e2=0.25;const vec4 v2=vec4(0.5098039215686274,0.10980392156862745,0.38823529411764707,1);const float e3=0.38;const vec4 v3=vec4(0.6705882352941176,0.1607843137254902,0.3764705882352941,1);const float e4=0.5;const vec4 v4=vec4(0.807843137254902,0.2627450980392157,0.33725490196078434,1);const float e5=0.63;const vec4 v5=vec4(0.9019607843137255,0.41568627450980394,0.32941176470588235,1);const float e6=0.75;const vec4 v6=vec4(0.9490196078431372,0.5843137254901961,0.403921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.7568627450980392,0.5294117647058824,1);const float e8=1.0;const vec4 v8=vec4(0.996078431372549,0.9294117647058824,0.6901960784313725,1);float a0=smoothstep(e0,e1,x_7);float a1=smoothstep(e1,e2,x_7);float a2=smoothstep(e2,e3,x_7);float a3=smoothstep(e3,e4,x_7);float a4=smoothstep(e4,e5,x_7);float a5=smoothstep(e5,e6,x_7);float a6=smoothstep(e6,e7,x_7);float a7=smoothstep(e7,e8,x_7);return max(mix(v0,v1,a0)*step(e0,x_7)*step(x_7,e1),max(mix(v1,v2,a1)*step(e1,x_7)*step(x_7,e2),max(mix(v2,v3,a2)*step(e2,x_7)*step(x_7,e3),max(mix(v3,v4,a3)*step(e3,x_7)*step(x_7,e4),max(mix(v4,v5,a4)*step(e4,x_7)*step(x_7,e5),max(mix(v5,v6,a5)*step(e5,x_7)*step(x_7,e6),max(mix(v6,v7,a6)*step(e6,x_7)*step(x_7,e7),mix(v7,v8,a7)*step(e7,x_7)*step(x_7,e8))))))));}vec4 chlorophyll(float x_6){const float e0=0.0;const vec4 v0=vec4(0.07058823529411765,0.1411764705882353,0.0784313725490196,1);const float e1=0.13;const vec4 v1=vec4(0.09803921568627451,0.24705882352941178,0.1607843137254902,1);const float e2=0.25;const vec4 v2=vec4(0.09411764705882353,0.3568627450980392,0.23137254901960785,1);const float e3=0.38;const vec4 v3=vec4(0.050980392156862744,0.4666666666666667,0.2823529411764706,1);const float e4=0.5;const vec4 v4=vec4(0.07058823529411765,0.5803921568627451,0.3137254901960784,1);const float e5=0.63;const vec4 v5=vec4(0.3137254901960784,0.6784313725490196,0.34901960784313724,1);const float e6=0.75;const vec4 v6=vec4(0.5176470588235295,0.7686274509803922,0.47843137254901963,1);const float e7=0.88;const vec4 v7=vec4(0.6862745098039216,0.8666666666666667,0.6352941176470588,1);const float e8=1.0;const vec4 v8=vec4(0.8431372549019608,0.9764705882352941,0.8156862745098039,1);float a0=smoothstep(e0,e1,x_6);float a1=smoothstep(e1,e2,x_6);float a2=smoothstep(e2,e3,x_6);float a3=smoothstep(e3,e4,x_6);float a4=smoothstep(e4,e5,x_6);float a5=smoothstep(e5,e6,x_6);float a6=smoothstep(e6,e7,x_6);float a7=smoothstep(e7,e8,x_6);return max(mix(v0,v1,a0)*step(e0,x_6)*step(x_6,e1),max(mix(v1,v2,a1)*step(e1,x_6)*step(x_6,e2),max(mix(v2,v3,a2)*step(e2,x_6)*step(x_6,e3),max(mix(v3,v4,a3)*step(e3,x_6)*step(x_6,e4),max(mix(v4,v5,a4)*step(e4,x_6)*step(x_6,e5),max(mix(v5,v6,a5)*step(e5,x_6)*step(x_6,e6),max(mix(v6,v7,a6)*step(e6,x_6)*step(x_6,e7),mix(v7,v8,a7)*step(e7,x_6)*step(x_6,e8))))))));}vec4 density(float x_19){const float e0=0.0;const vec4 v0=vec4(0.21176470588235294,0.054901960784313725,0.1411764705882353,1);const float e1=0.13;const vec4 v1=vec4(0.34901960784313724,0.09019607843137255,0.3137254901960784,1);const float e2=0.25;const vec4 v2=vec4(0.43137254901960786,0.17647058823529413,0.5176470588235295,1);const float e3=0.38;const vec4 v3=vec4(0.47058823529411764,0.30196078431372547,0.6980392156862745,1);const float e4=0.5;const vec4 v4=vec4(0.47058823529411764,0.44313725490196076,0.8352941176470589,1);const float e5=0.63;const vec4 v5=vec4(0.45098039215686275,0.592156862745098,0.8941176470588236,1);const float e6=0.75;const vec4 v6=vec4(0.5254901960784314,0.7254901960784313,0.8901960784313725,1);const float e7=0.88;const vec4 v7=vec4(0.6941176470588235,0.8392156862745098,0.8901960784313725,1);const float e8=1.0;const vec4 v8=vec4(0.9019607843137255,0.9450980392156862,0.9450980392156862,1);float a0=smoothstep(e0,e1,x_19);float a1=smoothstep(e1,e2,x_19);float a2=smoothstep(e2,e3,x_19);float a3=smoothstep(e3,e4,x_19);float a4=smoothstep(e4,e5,x_19);float a5=smoothstep(e5,e6,x_19);float a6=smoothstep(e6,e7,x_19);float a7=smoothstep(e7,e8,x_19);return max(mix(v0,v1,a0)*step(e0,x_19)*step(x_19,e1),max(mix(v1,v2,a1)*step(e1,x_19)*step(x_19,e2),max(mix(v2,v3,a2)*step(e2,x_19)*step(x_19,e3),max(mix(v3,v4,a3)*step(e3,x_19)*step(x_19,e4),max(mix(v4,v5,a4)*step(e4,x_19)*step(x_19,e5),max(mix(v5,v6,a5)*step(e5,x_19)*step(x_19,e6),max(mix(v6,v7,a6)*step(e6,x_19)*step(x_19,e7),mix(v7,v8,a7)*step(e7,x_19)*step(x_19,e8))))))));}vec4 freesurface_blue_3154355989(float x_35){const float e0=0.0;const vec4 v0=vec4(0.11764705882352941,0.01568627450980392,0.43137254901960786,1);const float e1=0.13;const vec4 v1=vec4(0.1843137254901961,0.054901960784313725,0.6901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.1607843137254902,0.17647058823529413,0.9254901960784314,1);const float e3=0.38;const vec4 v3=vec4(0.09803921568627451,0.38823529411764707,0.8313725490196079,1);const float e4=0.5;const vec4 v4=vec4(0.26666666666666666,0.5137254901960784,0.7843137254901961,1);const float e5=0.63;const vec4 v5=vec4(0.4470588235294118,0.611764705882353,0.7725490196078432,1);const float e6=0.75;const vec4 v6=vec4(0.615686274509804,0.7098039215686275,0.796078431372549,1);const float e7=0.88;const vec4 v7=vec4(0.7843137254901961,0.8156862745098039,0.8470588235294118,1);const float e8=1.0;const vec4 v8=vec4(0.9450980392156862,0.9294117647058824,0.9254901960784314,1);float a0=smoothstep(e0,e1,x_35);float a1=smoothstep(e1,e2,x_35);float a2=smoothstep(e2,e3,x_35);float a3=smoothstep(e3,e4,x_35);float a4=smoothstep(e4,e5,x_35);float a5=smoothstep(e5,e6,x_35);float a6=smoothstep(e6,e7,x_35);float a7=smoothstep(e7,e8,x_35);return max(mix(v0,v1,a0)*step(e0,x_35)*step(x_35,e1),max(mix(v1,v2,a1)*step(e1,x_35)*step(x_35,e2),max(mix(v2,v3,a2)*step(e2,x_35)*step(x_35,e3),max(mix(v3,v4,a3)*step(e3,x_35)*step(x_35,e4),max(mix(v4,v5,a4)*step(e4,x_35)*step(x_35,e5),max(mix(v5,v6,a5)*step(e5,x_35)*step(x_35,e6),max(mix(v6,v7,a6)*step(e6,x_35)*step(x_35,e7),mix(v7,v8,a7)*step(e7,x_35)*step(x_35,e8))))))));}vec4 freesurface_red_1679163293(float x_20){const float e0=0.0;const vec4 v0=vec4(0.23529411764705882,0.03529411764705882,0.07058823529411765,1);const float e1=0.13;const vec4 v1=vec4(0.39215686274509803,0.06666666666666667,0.10588235294117647,1);const float e2=0.25;const vec4 v2=vec4(0.5568627450980392,0.0784313725490196,0.11372549019607843,1);const float e3=0.38;const vec4 v3=vec4(0.6941176470588235,0.16862745098039217,0.10588235294117647,1);const float e4=0.5;const vec4 v4=vec4(0.7529411764705882,0.3411764705882353,0.24705882352941178,1);const float e5=0.63;const vec4 v5=vec4(0.803921568627451,0.49019607843137253,0.4117647058823529,1);const float e6=0.75;const vec4 v6=vec4(0.8470588235294118,0.6352941176470588,0.5803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.8901960784313725,0.7803921568627451,0.7568627450980392,1);const float e8=1.0;const vec4 v8=vec4(0.9450980392156862,0.9294117647058824,0.9254901960784314,1);float a0=smoothstep(e0,e1,x_20);float a1=smoothstep(e1,e2,x_20);float a2=smoothstep(e2,e3,x_20);float a3=smoothstep(e3,e4,x_20);float a4=smoothstep(e4,e5,x_20);float a5=smoothstep(e5,e6,x_20);float a6=smoothstep(e6,e7,x_20);float a7=smoothstep(e7,e8,x_20);return max(mix(v0,v1,a0)*step(e0,x_20)*step(x_20,e1),max(mix(v1,v2,a1)*step(e1,x_20)*step(x_20,e2),max(mix(v2,v3,a2)*step(e2,x_20)*step(x_20,e3),max(mix(v3,v4,a3)*step(e3,x_20)*step(x_20,e4),max(mix(v4,v5,a4)*step(e4,x_20)*step(x_20,e5),max(mix(v5,v6,a5)*step(e5,x_20)*step(x_20,e6),max(mix(v6,v7,a6)*step(e6,x_20)*step(x_20,e7),mix(v7,v8,a7)*step(e7,x_20)*step(x_20,e8))))))));}vec4 oxygen(float x_11){const float e0=0.0;const vec4 v0=vec4(0.25098039215686274,0.0196078431372549,0.0196078431372549,1);const float e1=0.13;const vec4 v1=vec4(0.41568627450980394,0.023529411764705882,0.058823529411764705,1);const float e2=0.25;const vec4 v2=vec4(0.5647058823529412,0.10196078431372549,0.027450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.6588235294117647,0.25098039215686274,0.011764705882352941,1);const float e4=0.5;const vec4 v4=vec4(0.7372549019607844,0.39215686274509803,0.01568627450980392,1);const float e5=0.63;const vec4 v5=vec4(0.807843137254902,0.5333333333333333,0.043137254901960784,1);const float e6=0.75;const vec4 v6=vec4(0.8627450980392157,0.6823529411764706,0.09803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.9058823529411765,0.8431372549019608,0.17254901960784313,1);const float e8=1.0;const vec4 v8=vec4(0.9725490196078431,0.996078431372549,0.4117647058823529,1);float a0=smoothstep(e0,e1,x_11);float a1=smoothstep(e1,e2,x_11);float a2=smoothstep(e2,e3,x_11);float a3=smoothstep(e3,e4,x_11);float a4=smoothstep(e4,e5,x_11);float a5=smoothstep(e5,e6,x_11);float a6=smoothstep(e6,e7,x_11);float a7=smoothstep(e7,e8,x_11);return max(mix(v0,v1,a0)*step(e0,x_11)*step(x_11,e1),max(mix(v1,v2,a1)*step(e1,x_11)*step(x_11,e2),max(mix(v2,v3,a2)*step(e2,x_11)*step(x_11,e3),max(mix(v3,v4,a3)*step(e3,x_11)*step(x_11,e4),max(mix(v4,v5,a4)*step(e4,x_11)*step(x_11,e5),max(mix(v5,v6,a5)*step(e5,x_11)*step(x_11,e6),max(mix(v6,v7,a6)*step(e6,x_11)*step(x_11,e7),mix(v7,v8,a7)*step(e7,x_11)*step(x_11,e8))))))));}vec4 par(float x_28){const float e0=0.0;const vec4 v0=vec4(0.2,0.0784313725490196,0.09411764705882353,1);const float e1=0.13;const vec4 v1=vec4(0.35294117647058826,0.12549019607843137,0.13725490196078433,1);const float e2=0.25;const vec4 v2=vec4(0.5058823529411764,0.17254901960784313,0.13333333333333333,1);const float e3=0.38;const vec4 v3=vec4(0.6235294117647059,0.26666666666666666,0.09803921568627451,1);const float e4=0.5;const vec4 v4=vec4(0.7137254901960784,0.38823529411764707,0.07450980392156863,1);const float e5=0.63;const vec4 v5=vec4(0.7803921568627451,0.5254901960784314,0.08627450980392157,1);const float e6=0.75;const vec4 v6=vec4(0.8313725490196079,0.6705882352941176,0.13725490196078433,1);const float e7=0.88;const vec4 v7=vec4(0.8666666666666667,0.8235294117647058,0.21176470588235294,1);const float e8=1.0;const vec4 v8=vec4(0.8823529411764706,0.9921568627450981,0.29411764705882354,1);float a0=smoothstep(e0,e1,x_28);float a1=smoothstep(e1,e2,x_28);float a2=smoothstep(e2,e3,x_28);float a3=smoothstep(e3,e4,x_28);float a4=smoothstep(e4,e5,x_28);float a5=smoothstep(e5,e6,x_28);float a6=smoothstep(e6,e7,x_28);float a7=smoothstep(e7,e8,x_28);return max(mix(v0,v1,a0)*step(e0,x_28)*step(x_28,e1),max(mix(v1,v2,a1)*step(e1,x_28)*step(x_28,e2),max(mix(v2,v3,a2)*step(e2,x_28)*step(x_28,e3),max(mix(v3,v4,a3)*step(e3,x_28)*step(x_28,e4),max(mix(v4,v5,a4)*step(e4,x_28)*step(x_28,e5),max(mix(v5,v6,a5)*step(e5,x_28)*step(x_28,e6),max(mix(v6,v7,a6)*step(e6,x_28)*step(x_28,e7),mix(v7,v8,a7)*step(e7,x_28)*step(x_28,e8))))))));}vec4 phase(float x_39){const float e0=0.0;const vec4 v0=vec4(0.5686274509803921,0.4117647058823529,0.07058823529411765,1);const float e1=0.13;const vec4 v1=vec4(0.7215686274509804,0.2784313725490196,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.7294117647058823,0.22745098039215686,0.45098039215686275,1);const float e3=0.38;const vec4 v3=vec4(0.6274509803921569,0.2784313725490196,0.7254901960784313,1);const float e4=0.5;const vec4 v4=vec4(0.43137254901960786,0.3803921568627451,0.8549019607843137,1);const float e5=0.63;const vec4 v5=vec4(0.19607843137254902,0.4823529411764706,0.6431372549019608,1);const float e6=0.75;const vec4 v6=vec4(0.12156862745098039,0.5137254901960784,0.43137254901960786,1);const float e7=0.88;const vec4 v7=vec4(0.30196078431372547,0.5058823529411764,0.13333333333333333,1);const float e8=1.0;const vec4 v8=vec4(0.5686274509803921,0.4117647058823529,0.07058823529411765,1);float a0=smoothstep(e0,e1,x_39);float a1=smoothstep(e1,e2,x_39);float a2=smoothstep(e2,e3,x_39);float a3=smoothstep(e3,e4,x_39);float a4=smoothstep(e4,e5,x_39);float a5=smoothstep(e5,e6,x_39);float a6=smoothstep(e6,e7,x_39);float a7=smoothstep(e7,e8,x_39);return max(mix(v0,v1,a0)*step(e0,x_39)*step(x_39,e1),max(mix(v1,v2,a1)*step(e1,x_39)*step(x_39,e2),max(mix(v2,v3,a2)*step(e2,x_39)*step(x_39,e3),max(mix(v3,v4,a3)*step(e3,x_39)*step(x_39,e4),max(mix(v4,v5,a4)*step(e4,x_39)*step(x_39,e5),max(mix(v5,v6,a5)*step(e5,x_39)*step(x_39,e6),max(mix(v6,v7,a6)*step(e6,x_39)*step(x_39,e7),mix(v7,v8,a7)*step(e7,x_39)*step(x_39,e8))))))));}vec4 salinity(float x_26){const float e0=0.0;const vec4 v0=vec4(0.16470588235294117,0.09411764705882353,0.4235294117647059,1);const float e1=0.13;const vec4 v1=vec4(0.12941176470588237,0.19607843137254902,0.6352941176470588,1);const float e2=0.25;const vec4 v2=vec4(0.058823529411764705,0.35294117647058826,0.5686274509803921,1);const float e3=0.38;const vec4 v3=vec4(0.1568627450980392,0.4627450980392157,0.5372549019607843,1);const float e4=0.5;const vec4 v4=vec4(0.23137254901960785,0.5725490196078431,0.5294117647058824,1);const float e5=0.63;const vec4 v5=vec4(0.30980392156862746,0.6862745098039216,0.49411764705882355,1);const float e6=0.75;const vec4 v6=vec4(0.47058823529411764,0.796078431372549,0.40784313725490196,1);const float e7=0.88;const vec4 v7=vec4(0.7568627450980392,0.8666666666666667,0.39215686274509803,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.9372549019607843,0.6039215686274509,1);float a0=smoothstep(e0,e1,x_26);float a1=smoothstep(e1,e2,x_26);float a2=smoothstep(e2,e3,x_26);float a3=smoothstep(e3,e4,x_26);float a4=smoothstep(e4,e5,x_26);float a5=smoothstep(e5,e6,x_26);float a6=smoothstep(e6,e7,x_26);float a7=smoothstep(e7,e8,x_26);return max(mix(v0,v1,a0)*step(e0,x_26)*step(x_26,e1),max(mix(v1,v2,a1)*step(e1,x_26)*step(x_26,e2),max(mix(v2,v3,a2)*step(e2,x_26)*step(x_26,e3),max(mix(v3,v4,a3)*step(e3,x_26)*step(x_26,e4),max(mix(v4,v5,a4)*step(e4,x_26)*step(x_26,e5),max(mix(v5,v6,a5)*step(e5,x_26)*step(x_26,e6),max(mix(v6,v7,a6)*step(e6,x_26)*step(x_26,e7),mix(v7,v8,a7)*step(e7,x_26)*step(x_26,e8))))))));}vec4 temperature(float x_8){const float e0=0.0;const vec4 v0=vec4(0.01568627450980392,0.13725490196078433,0.2,1);const float e1=0.13;const vec4 v1=vec4(0.09019607843137255,0.2,0.47843137254901963,1);const float e2=0.25;const vec4 v2=vec4(0.3333333333333333,0.23137254901960785,0.615686274509804,1);const float e3=0.38;const vec4 v3=vec4(0.5058823529411764,0.30980392156862746,0.5607843137254902,1);const float e4=0.5;const vec4 v4=vec4(0.6862745098039216,0.37254901960784315,0.5098039215686274,1);const float e5=0.63;const vec4 v5=vec4(0.8705882352941177,0.4392156862745098,0.396078431372549,1);const float e6=0.75;const vec4 v6=vec4(0.9764705882352941,0.5725490196078431,0.25882352941176473,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.7686274509803922,0.2549019607843137,1);const float e8=1.0;const vec4 v8=vec4(0.9098039215686274,0.9803921568627451,0.3568627450980392,1);float a0=smoothstep(e0,e1,x_8);float a1=smoothstep(e1,e2,x_8);float a2=smoothstep(e2,e3,x_8);float a3=smoothstep(e3,e4,x_8);float a4=smoothstep(e4,e5,x_8);float a5=smoothstep(e5,e6,x_8);float a6=smoothstep(e6,e7,x_8);float a7=smoothstep(e7,e8,x_8);return max(mix(v0,v1,a0)*step(e0,x_8)*step(x_8,e1),max(mix(v1,v2,a1)*step(e1,x_8)*step(x_8,e2),max(mix(v2,v3,a2)*step(e2,x_8)*step(x_8,e3),max(mix(v3,v4,a3)*step(e3,x_8)*step(x_8,e4),max(mix(v4,v5,a4)*step(e4,x_8)*step(x_8,e5),max(mix(v5,v6,a5)*step(e5,x_8)*step(x_8,e6),max(mix(v6,v7,a6)*step(e6,x_8)*step(x_8,e7),mix(v7,v8,a7)*step(e7,x_8)*step(x_8,e8))))))));}vec4 turbidity(float x_40){const float e0=0.0;const vec4 v0=vec4(0.13333333333333333,0.12156862745098039,0.10588235294117647,1);const float e1=0.13;const vec4 v1=vec4(0.2549019607843137,0.19607843137254902,0.1607843137254902,1);const float e2=0.25;const vec4 v2=vec4(0.3843137254901961,0.27058823529411763,0.20392156862745098,1);const float e3=0.38;const vec4 v3=vec4(0.5137254901960784,0.34901960784313724,0.2235294117647059,1);const float e4=0.5;const vec4 v4=vec4(0.6313725490196078,0.4392156862745098,0.23137254901960785,1);const float e5=0.63;const vec4 v5=vec4(0.7254901960784313,0.5490196078431373,0.25882352941176473,1);const float e6=0.75;const vec4 v6=vec4(0.792156862745098,0.6823529411764706,0.34509803921568627,1);const float e7=0.88;const vec4 v7=vec4(0.8470588235294118,0.8196078431372549,0.49411764705882355,1);const float e8=1.0;const vec4 v8=vec4(0.9137254901960784,0.9647058823529412,0.6705882352941176,1);float a0=smoothstep(e0,e1,x_40);float a1=smoothstep(e1,e2,x_40);float a2=smoothstep(e2,e3,x_40);float a3=smoothstep(e3,e4,x_40);float a4=smoothstep(e4,e5,x_40);float a5=smoothstep(e5,e6,x_40);float a6=smoothstep(e6,e7,x_40);float a7=smoothstep(e7,e8,x_40);return max(mix(v0,v1,a0)*step(e0,x_40)*step(x_40,e1),max(mix(v1,v2,a1)*step(e1,x_40)*step(x_40,e2),max(mix(v2,v3,a2)*step(e2,x_40)*step(x_40,e3),max(mix(v3,v4,a3)*step(e3,x_40)*step(x_40,e4),max(mix(v4,v5,a4)*step(e4,x_40)*step(x_40,e5),max(mix(v5,v6,a5)*step(e5,x_40)*step(x_40,e6),max(mix(v6,v7,a6)*step(e6,x_40)*step(x_40,e7),mix(v7,v8,a7)*step(e7,x_40)*step(x_40,e8))))))));}vec4 velocity_blue_297387650(float x_2){const float e0=0.0;const vec4 v0=vec4(0.06666666666666667,0.12549019607843137,0.25098039215686274,1);const float e1=0.13;const vec4 v1=vec4(0.13725490196078433,0.20392156862745098,0.4549019607843137,1);const float e2=0.25;const vec4 v2=vec4(0.11372549019607843,0.3176470588235294,0.611764705882353,1);const float e3=0.38;const vec4 v3=vec4(0.12156862745098039,0.44313725490196076,0.6352941176470588,1);const float e4=0.5;const vec4 v4=vec4(0.19607843137254902,0.5647058823529412,0.6627450980392157,1);const float e5=0.63;const vec4 v5=vec4(0.3411764705882353,0.6784313725490196,0.6901960784313725,1);const float e6=0.75;const vec4 v6=vec4(0.5843137254901961,0.7686274509803922,0.7411764705882353,1);const float e7=0.88;const vec4 v7=vec4(0.796078431372549,0.8666666666666667,0.8274509803921568,1);const float e8=1.0;const vec4 v8=vec4(0.996078431372549,0.984313725490196,0.9019607843137255,1);float a0=smoothstep(e0,e1,x_2);float a1=smoothstep(e1,e2,x_2);float a2=smoothstep(e2,e3,x_2);float a3=smoothstep(e3,e4,x_2);float a4=smoothstep(e4,e5,x_2);float a5=smoothstep(e5,e6,x_2);float a6=smoothstep(e6,e7,x_2);float a7=smoothstep(e7,e8,x_2);return max(mix(v0,v1,a0)*step(e0,x_2)*step(x_2,e1),max(mix(v1,v2,a1)*step(e1,x_2)*step(x_2,e2),max(mix(v2,v3,a2)*step(e2,x_2)*step(x_2,e3),max(mix(v3,v4,a3)*step(e3,x_2)*step(x_2,e4),max(mix(v4,v5,a4)*step(e4,x_2)*step(x_2,e5),max(mix(v5,v6,a5)*step(e5,x_2)*step(x_2,e6),max(mix(v6,v7,a6)*step(e6,x_2)*step(x_2,e7),mix(v7,v8,a7)*step(e7,x_2)*step(x_2,e8))))))));}vec4 velocity_green_2558432129(float x_27){const float e0=0.0;const vec4 v0=vec4(0.09019607843137255,0.13725490196078433,0.07450980392156863,1);const float e1=0.13;const vec4 v1=vec4(0.09411764705882353,0.25098039215686274,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.043137254901960784,0.37254901960784315,0.17647058823529413,1);const float e3=0.38;const vec4 v3=vec4(0.15294117647058825,0.4823529411764706,0.13725490196078433,1);const float e4=0.5;const vec4 v4=vec4(0.37254901960784315,0.5725490196078431,0.047058823529411764,1);const float e5=0.63;const vec4 v5=vec4(0.596078431372549,0.6470588235294118,0.07058823529411765,1);const float e6=0.75;const vec4 v6=vec4(0.788235294117647,0.7294117647058823,0.27058823529411763,1);const float e7=0.88;const vec4 v7=vec4(0.9137254901960784,0.8470588235294118,0.5372549019607843,1);const float e8=1.0;const vec4 v8=vec4(1,0.9921568627450981,0.803921568627451,1);float a0=smoothstep(e0,e1,x_27);float a1=smoothstep(e1,e2,x_27);float a2=smoothstep(e2,e3,x_27);float a3=smoothstep(e3,e4,x_27);float a4=smoothstep(e4,e5,x_27);float a5=smoothstep(e5,e6,x_27);float a6=smoothstep(e6,e7,x_27);float a7=smoothstep(e7,e8,x_27);return max(mix(v0,v1,a0)*step(e0,x_27)*step(x_27,e1),max(mix(v1,v2,a1)*step(e1,x_27)*step(x_27,e2),max(mix(v2,v3,a2)*step(e2,x_27)*step(x_27,e3),max(mix(v3,v4,a3)*step(e3,x_27)*step(x_27,e4),max(mix(v4,v5,a4)*step(e4,x_27)*step(x_27,e5),max(mix(v5,v6,a5)*step(e5,x_27)*step(x_27,e6),max(mix(v6,v7,a6)*step(e6,x_27)*step(x_27,e7),mix(v7,v8,a7)*step(e7,x_27)*step(x_27,e8))))))));}vec4 cubehelix(float x_37){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.07;const vec4 v1=vec4(0.08627450980392157,0.0196078431372549,0.23137254901960785,1);const float e2=0.13;const vec4 v2=vec4(0.23529411764705882,0.01568627450980392,0.4117647058823529,1);const float e3=0.2;const vec4 v3=vec4(0.42745098039215684,0.00392156862745098,0.5294117647058824,1);const float e4=0.27;const vec4 v4=vec4(0.6313725490196078,0,0.5764705882352941,1);const float e5=0.33;const vec4 v5=vec4(0.8235294117647058,0.00784313725490196,0.5568627450980392,1);const float e6=0.4;const vec4 v6=vec4(0.984313725490196,0.043137254901960784,0.4823529411764706,1);const float e7=0.47;const vec4 v7=vec4(1,0.11372549019607843,0.3803921568627451,1);const float e8=0.53;const vec4 v8=vec4(1,0.21176470588235294,0.27058823529411763,1);const float e9=0.6;const vec4 v9=vec4(1,0.3333333333333333,0.1803921568627451,1);const float e10=0.67;const vec4 v10=vec4(1,0.47058823529411764,0.13333333333333333,1);const float e11=0.73;const vec4 v11=vec4(1,0.615686274509804,0.1450980392156863,1);const float e12=0.8;const vec4 v12=vec4(0.9450980392156862,0.7490196078431373,0.2235294117647059,1);const float e13=0.87;const vec4 v13=vec4(0.8784313725490196,0.8627450980392157,0.36470588235294116,1);const float e14=0.93;const vec4 v14=vec4(0.8549019607843137,0.9450980392156862,0.5568627450980392,1);const float e15=1.0;const vec4 v15=vec4(0.8901960784313725,0.9921568627450981,0.7764705882352941,1);float a0=smoothstep(e0,e1,x_37);float a1=smoothstep(e1,e2,x_37);float a2=smoothstep(e2,e3,x_37);float a3=smoothstep(e3,e4,x_37);float a4=smoothstep(e4,e5,x_37);float a5=smoothstep(e5,e6,x_37);float a6=smoothstep(e6,e7,x_37);float a7=smoothstep(e7,e8,x_37);float a8=smoothstep(e8,e9,x_37);float a9=smoothstep(e9,e10,x_37);float a10=smoothstep(e10,e11,x_37);float a11=smoothstep(e11,e12,x_37);float a12=smoothstep(e12,e13,x_37);float a13=smoothstep(e13,e14,x_37);float a14=smoothstep(e14,e15,x_37);return max(mix(v0,v1,a0)*step(e0,x_37)*step(x_37,e1),max(mix(v1,v2,a1)*step(e1,x_37)*step(x_37,e2),max(mix(v2,v3,a2)*step(e2,x_37)*step(x_37,e3),max(mix(v3,v4,a3)*step(e3,x_37)*step(x_37,e4),max(mix(v4,v5,a4)*step(e4,x_37)*step(x_37,e5),max(mix(v5,v6,a5)*step(e5,x_37)*step(x_37,e6),max(mix(v6,v7,a6)*step(e6,x_37)*step(x_37,e7),max(mix(v7,v8,a7)*step(e7,x_37)*step(x_37,e8),max(mix(v8,v9,a8)*step(e8,x_37)*step(x_37,e9),max(mix(v9,v10,a9)*step(e9,x_37)*step(x_37,e10),max(mix(v10,v11,a10)*step(e10,x_37)*step(x_37,e11),max(mix(v11,v12,a11)*step(e11,x_37)*step(x_37,e12),max(mix(v12,v13,a12)*step(e12,x_37)*step(x_37,e13),max(mix(v13,v14,a13)*step(e13,x_37)*step(x_37,e14),mix(v14,v15,a14)*step(e14,x_37)*step(x_37,e15)))))))))))))));}vec4 apply_transparent_color_452471729(vec3 color,vec3 transparentColor,bool useTransparentColor,float opacity){return vec4(color,(color==transparentColor&&useTransparentColor)? 0. : opacity);}uniform float opacity;uniform bool useTransparentColor;vec4 colormap(float intensity){return vec4(apply_transparent_color_452471729(COLORMAP_FUNCTION(min(1.,intensity)).xyz,COLORMAP_FUNCTION(0.).xyz,useTransparentColor,opacity));}\"; // eslint-disable-line\n\nvar additiveColormap = {\n name: 'additive-colormap',\n fs: fs$2,\n inject: {\n 'fs:DECKGL_MUTATE_COLOR': `\n float intensityCombo = 0.;\n intensityCombo += max(0.,intensity0);\n intensityCombo += max(0.,intensity1);\n intensityCombo += max(0.,intensity2);\n intensityCombo += max(0.,intensity3);\n intensityCombo += max(0.,intensity4);\n intensityCombo += max(0.,intensity5);\n rgba = colormap(intensityCombo);\n`\n }\n};\n\nconst defaultProps$6 = {\n colormap: {\n type: 'string',\n value: 'viridis',\n compare: true\n },\n opacity: {\n type: 'number',\n value: 1.0,\n compare: true\n },\n useTransparentColor: {\n type: 'boolean',\n value: false,\n compare: true\n }\n};\n/**\n * This deck.gl extension allows for a color palette to be used for pseudo-coloring channels.\n * @typedef LayerProps\n * @type {object}\n * @property {number=} opacity Opacity of the layer.\n * @property {string=} colormap String indicating a colormap (default: ''). The full list of options is here: https://github.com/glslify/glsl-colormap#glsl-colormap\n * @property {boolean=} useTransparentColor Indicates whether the shader should make the output of colormap_function(0) color transparent\n * */\n\nconst AdditiveColormapExtension = class extends LayerExtension {\n getShaders() {\n return {\n defines: {\n COLORMAP_FUNCTION: this?.props?.colormap || defaultProps$6.colormap.value\n },\n modules: [additiveColormap]\n };\n }\n\n updateState({\n props,\n oldProps,\n changeFlags,\n ...rest\n }) {\n super.updateState({\n props,\n oldProps,\n changeFlags,\n ...rest\n });\n\n if (props.colormap !== oldProps.colormap) {\n const {\n gl\n } = this.context;\n\n if (this.state.model) {\n this.state.model.delete();\n this.setState({\n model: this._getModel(gl)\n });\n }\n }\n }\n\n draw() {\n const {\n useTransparentColor = defaultProps$6.useTransparentColor.value,\n opacity = defaultProps$6.opacity.value\n } = this.props;\n const uniforms = {\n opacity,\n useTransparentColor\n }; // eslint-disable-next-line no-unused-expressions\n\n this.state.model?.setUniforms(uniforms);\n }\n\n};\nAdditiveColormapExtension.extensionName = 'AdditiveColormapExtension';\nAdditiveColormapExtension.defaultProps = defaultProps$6;\n\nconst defaultProps$5 = {\n pickable: {\n type: 'boolean',\n value: true,\n compare: true\n },\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n contrastLimits: {\n type: 'array',\n value: [],\n compare: true\n },\n channelsVisible: {\n type: 'array',\n value: [],\n compare: true\n },\n selections: {\n type: 'array',\n value: [],\n compare: true\n },\n domain: {\n type: 'array',\n value: [],\n compare: true\n },\n viewportId: {\n type: 'string',\n value: '',\n compare: true\n },\n loader: {\n type: 'object',\n value: {\n getRaster: async () => ({\n data: [],\n height: 0,\n width: 0\n }),\n dtype: 'Uint16'\n },\n compare: true\n },\n onClick: {\n type: 'function',\n value: null,\n compare: true\n },\n onViewportLoad: {\n type: 'function',\n value: null,\n compare: true\n },\n interpolation: {\n type: 'number',\n value: GL.NEAREST,\n compare: true\n },\n extensions: {\n type: 'array',\n value: [new ColorPaletteExtension()],\n compare: true\n }\n};\n/**\n * @typedef LayerProps\n * @type {Object}\n * @property {Array.<Array.<number>>} contrastLimits List of [begin, end] values to control each channel's ramp function.\n * @property {Array.<boolean>} channelsVisible List of boolean values for each channel for whether or not it is visible.\n * @property {Object} loader PixelSource. Represents an N-dimensional image.\n * @property {Array} selections Selection to be used for fetching data.\n * @property {Array.<Array.<number>>=} domain Override for the possible max/min values (i.e something different than 65535 for uint16/'<u2').\n * @property {string=} viewportId Id for the current view. This needs to match the viewState id in deck.gl and is necessary for the lens.\n * @property {function=} onHover Hook function from deck.gl to handle hover objects.\n * @property {function=} onClick Hook function from deck.gl to handle clicked-on objects.\n * @property {Object=} modelMatrix Math.gl Matrix4 object containing an affine transformation to be applied to the image.\n * @property {function=} onViewportLoad Function that gets called when the data in the viewport loads.\n * @property {String=} id Unique identifier for this layer.\n * @property {Array=} extensions [deck.gl extensions](https://deck.gl/docs/developer-guide/custom-layers/layer-extensions) to add to the layers.\n */\n\n/**\n * @type {{ new <S extends string[]>(...props: import('../types').Viv<LayerProps, S>[]) }}\n * @ignore\n */\n\nconst ImageLayer = class extends CompositeLayer {\n finalizeState() {\n this.state.abortController.abort();\n }\n\n updateState({\n props,\n oldProps\n }) {\n const loaderChanged = props.loader !== oldProps.loader;\n const selectionsChanged = props.selections !== oldProps.selections;\n\n if (loaderChanged || selectionsChanged) {\n // Only fetch new data to render if loader has changed\n const {\n loader,\n selections = [],\n onViewportLoad\n } = this.props;\n const abortController = new AbortController();\n this.setState({\n abortController\n });\n const {\n signal\n } = abortController;\n\n const getRaster = selection => loader.getRaster({\n selection,\n signal\n });\n\n const dataPromises = selections.map(getRaster);\n Promise.all(dataPromises).then(rasters => {\n const raster = {\n data: rasters.map(d => d.data),\n width: rasters[0].width,\n height: rasters[0].height\n };\n\n if (isInterleaved(loader.shape)) {\n // data is for BitmapLayer and needs to be of form { data: Uint8Array, width, height };\n // eslint-disable-next-line prefer-destructuring\n raster.data = raster.data[0];\n\n if (raster.data.length === raster.width * raster.height * 3) {\n // data is RGB (not RGBA) and need to update texture formats\n raster.format = GL.RGB;\n raster.dataFormat = GL.RGB;\n }\n }\n\n if (onViewportLoad) {\n onViewportLoad(raster);\n }\n\n this.setState({ ...raster\n });\n }).catch(e => {\n if (e !== SIGNAL_ABORTED) {\n throw e; // re-throws error if not our signal\n }\n });\n }\n } // eslint-disable-next-line class-methods-use-this\n\n\n getPickingInfo({\n info,\n sourceLayer\n }) {\n // eslint-disable-next-line no-param-reassign\n info.sourceLayer = sourceLayer; // eslint-disable-next-line no-param-reassign\n\n info.tile = sourceLayer.props.tile;\n return info;\n }\n\n renderLayers() {\n const {\n loader,\n id\n } = this.props;\n const {\n dtype\n } = loader;\n const {\n width,\n height,\n data\n } = this.state;\n if (!(width && height)) return null;\n const bounds = [0, height, width, 0];\n\n if (isInterleaved(loader.shape)) {\n const {\n photometricInterpretation = 2\n } = loader.meta;\n return new BitmapLayer(this.props, {\n image: this.state,\n photometricInterpretation,\n // Shared props with XRLayer:\n bounds,\n id: `image-sub-layer-${bounds}-${id}`\n });\n }\n\n return new XRLayer(this.props, {\n channelData: {\n data,\n height,\n width\n },\n // Shared props with BitmapLayer:\n bounds,\n id: `image-sub-layer-${bounds}-${id}`,\n dtype\n });\n }\n\n};\nImageLayer.layerName = 'ImageLayer';\nImageLayer.defaultProps = defaultProps$5;\n\nconst defaultProps$4 = {\n pickable: {\n type: 'boolean',\n value: true,\n compare: true\n },\n onHover: {\n type: 'function',\n value: null,\n compare: false\n },\n contrastLimits: {\n type: 'array',\n value: [],\n compare: true\n },\n channelsVisible: {\n type: 'array',\n value: [],\n compare: true\n },\n domain: {\n type: 'array',\n value: [],\n compare: true\n },\n viewportId: {\n type: 'string',\n value: '',\n compare: true\n },\n maxRequests: {\n type: 'number',\n value: 10,\n compare: true\n },\n onClick: {\n type: 'function',\n value: null,\n compare: true\n },\n refinementStrategy: {\n type: 'string',\n value: null,\n compare: true\n },\n excludeBackground: {\n type: 'boolean',\n value: false,\n compare: true\n },\n extensions: {\n type: 'array',\n value: [new ColorPaletteExtension()],\n compare: true\n }\n};\n/**\n * @typedef LayerProps\n * @type {object}\n * @property {Array.<Array.<number>>} contrastLimits List of [begin, end] values to control each channel's ramp function.\n * @property {Array.<boolean>} channelsVisible List of boolean values for each channel for whether or not it is visible.\n * @property {Array} loader Image pyramid. PixelSource[], where each PixelSource is decreasing in shape.\n * @property {Array} selections Selection to be used for fetching data.\n * @property {Array.<Array.<number>>=} domain Override for the possible max/min values (i.e something different than 65535 for uint16/'<u2').\n * @property {string=} viewportId Id for the current view. This needs to match the viewState id in deck.gl and is necessary for the lens.\n * @property {String=} id Unique identifier for this layer.\n * @property {function=} onTileError Custom override for handle tile fetching errors.\n * @property {function=} onHover Hook function from deck.gl to handle hover objects.\n * @property {number=} maxRequests Maximum parallel ongoing requests allowed before aborting.\n * @property {function=} onClick Hook function from deck.gl to handle clicked-on objects.\n * @property {Object=} modelMatrix Math.gl Matrix4 object containing an affine transformation to be applied to the image.\n * @property {string=} refinementStrategy 'best-available' | 'no-overlap' | 'never' will be passed to TileLayer. A default will be chosen based on opacity.\n * @property {boolean=} excludeBackground Whether to exclude the background image. The background image is also excluded for opacity!=1.\n * @property {Array=} extensions [deck.gl extensions](https://deck.gl/docs/developer-guide/custom-layers/layer-extensions) to add to the layers.\n */\n\n/**\n * @type {{ new <S extends string[]>(...props: import('../../types').Viv<LayerProps, S>[]) }}\n * @ignore\n */\n\nconst MultiscaleImageLayer = class extends CompositeLayer {\n renderLayers() {\n const {\n loader,\n selections,\n opacity,\n viewportId,\n onTileError,\n onHover,\n id,\n onClick,\n modelMatrix,\n excludeBackground,\n refinementStrategy\n } = this.props; // Get properties from highest resolution\n\n const {\n tileSize,\n dtype\n } = loader[0]; // This is basically to invert:\n // https://github.com/visgl/deck.gl/pull/4616/files#diff-4d6a2e500c0e79e12e562c4f1217dc80R128\n // The z level can be wrong for showing the correct scales because of the calculation deck.gl does\n // so we need to invert it for fetching tiles and minZoom/maxZoom.\n\n const getTileData = async ({\n x,\n y,\n z,\n signal\n }) => {\n // Early return if no selections\n if (!selections || selections.length === 0) {\n return null;\n } // I don't fully undertstand why this works, but I have a sense.\n // It's basically to cancel out:\n // https://github.com/visgl/deck.gl/pull/4616/files#diff-4d6a2e500c0e79e12e562c4f1217dc80R128,\n // which felt odd to me to beign with.\n // The image-tile example works without, this but I have a feeling there is something\n // going on with our pyramids and/or rendering that is different.\n\n\n const resolution = Math.round(-z);\n\n const getTile = selection => {\n const config = {\n x,\n y,\n selection,\n signal\n };\n return loader[resolution].getTile(config);\n };\n\n try {\n /*\n * Try to request the tile data. The pixels sources can throw\n * special SIGNAL_ABORTED string that we pick up in the catch\n * block to return null to deck.gl.\n *\n * This means that our pixels sources _always_ have the same\n * return type, and optional throw for performance.\n */\n const tiles = await Promise.all(selections.map(getTile));\n const tile = {\n data: tiles.map(d => d.data),\n width: tiles[0].width,\n height: tiles[0].height\n };\n\n if (isInterleaved(loader[resolution].shape)) {\n // eslint-disable-next-line prefer-destructuring\n tile.data = tile.data[0];\n\n if (tile.data.length === tile.width * tile.height * 3) {\n tile.format = GL.RGB;\n tile.dataFormat = GL.RGB; // is this not properly inferred?\n } // can just return early, no need to check for webgl2\n\n\n return tile;\n }\n\n return tile;\n } catch (err) {\n /*\n * Signal is aborted. We handle the custom value thrown\n * by our pixel sources here and return falsy to deck.gl.\n */\n if (err === SIGNAL_ABORTED) {\n return null;\n } // We should propagate all other thrown values/errors\n\n\n throw err;\n }\n };\n\n const {\n height,\n width\n } = getImageSize(loader[0]);\n const tiledLayer = new MultiscaleImageLayerBase(this.props, {\n id: `Tiled-Image-${id}`,\n getTileData,\n dtype,\n tileSize,\n // If you scale a matrix up or down, that is like zooming in or out. zoomOffset controls\n // how the zoom level you fetch tiles at is offset, allowing us to fetch higher resolution tiles\n // while at a lower \"absolute\" zoom level. If you didn't use this prop, an image that is scaled\n // up would always look \"low resolution\" no matter the level of the image pyramid you are looking at.\n zoomOffset: Math.round(Math.log2(modelMatrix ? modelMatrix.getScale()[0] : 1)),\n extent: [0, 0, width, height],\n // See the above note within for why the use of zoomOffset and the rounding necessary.\n minZoom: Math.round(-(loader.length - 1)),\n maxZoom: 0,\n // We want a no-overlap caching strategy with an opacity < 1 to prevent\n // multiple rendered sublayers (some of which have been cached) from overlapping\n refinementStrategy: refinementStrategy || (opacity === 1 ? 'best-available' : 'no-overlap'),\n // TileLayer checks `changeFlags.updateTriggersChanged.getTileData` to see if tile cache\n // needs to be re-created. We want to trigger this behavior if the loader changes.\n // https://github.com/uber/deck.gl/blob/3f67ea6dfd09a4d74122f93903cb6b819dd88d52/modules/geo-layers/src/tile-layer/tile-layer.js#L50\n updateTriggers: {\n getTileData: [loader, selections]\n },\n onTileError: onTileError || loader[0].onTileError\n }); // This gives us a background image and also solves the current\n // minZoom funny business. We don't use it for the background if we have an opacity\n // paramteter set to anything but 1, but we always use it for situations where\n // we are zoomed out too far.\n\n const lowestResolution = loader[loader.length - 1];\n const implementsGetRaster = typeof lowestResolution.getRaster === 'function';\n const layerModelMatrix = modelMatrix ? modelMatrix.clone() : new Matrix4();\n const baseLayer = implementsGetRaster && !excludeBackground && new ImageLayer(this.props, {\n id: `Background-Image-${id}`,\n loader: lowestResolution,\n modelMatrix: layerModelMatrix.scale(2 ** (loader.length - 1)),\n visible: !viewportId || this.context.viewport.id === viewportId,\n onHover,\n onClick,\n // Background image is nicest when LINEAR in my opinion.\n interpolation: GL.LINEAR,\n onViewportLoad: null\n });\n const layers = [baseLayer, tiledLayer];\n return layers;\n }\n\n};\nMultiscaleImageLayer.layerName = 'MultiscaleImageLayer';\nMultiscaleImageLayer.defaultProps = defaultProps$4;\n\nconst defaultProps$3 = {\n pickable: {\n type: 'boolean',\n value: true,\n compare: true\n },\n loader: {\n type: 'object',\n value: {\n getRaster: async () => ({\n data: [],\n height: 0,\n width: 0\n }),\n getRasterSize: () => ({\n height: 0,\n width: 0\n }),\n dtype: '<u2'\n },\n compare: true\n },\n id: {\n type: 'string',\n value: '',\n compare: true\n },\n boundingBox: {\n type: 'array',\n value: [[0, 0], [0, 1], [1, 1], [1, 0]],\n compare: true\n },\n boundingBoxColor: {\n type: 'array',\n value: [255, 0, 0],\n compare: true\n },\n boundingBoxOutlineWidth: {\n type: 'number',\n value: 1,\n compare: true\n },\n viewportOutlineColor: {\n type: 'array',\n value: [255, 190, 0],\n compare: true\n },\n viewportOutlineWidth: {\n type: 'number',\n value: 2,\n compare: true\n },\n overviewScale: {\n type: 'number',\n value: 1,\n compare: true\n },\n zoom: {\n type: 'number',\n value: 1,\n compare: true\n }\n};\n/**\n * @typedef LayerProps\n * @type {Object}\n * @property {Array.<Array.<number>>} contrastLimits List of [begin, end] values to control each channel's ramp function.\n * @property {Array.<Array.<number>>} colors List of [r, g, b] values for each channel.\n * @property {Array.<boolean>} channelsVisible List of boolean values for each channel for whether or not it is visible.\n * @property {Array} loader PixelSource[]. Assumes multiscale if loader.length > 1.\n * @property {Array} selections Selection to be used for fetching data.\n * @property {number=} opacity Opacity of the layer.\n * @property {string=} colormap String indicating a colormap (default: ''). The full list of options is here: https://github.com/glslify/glsl-colormap#glsl-colormap\n * @property {Array.<Array.<number>>=} domain Override for the possible max/min values (i.e something different than 65535 for uint16/'<u2').\n * @property {Array.<number>=} boundingBoxColor [r, g, b] color of the bounding box (default: [255, 0, 0]).\n * @property {number=} boundingBoxOutlineWidth Width of the bounding box in px (default: 1).\n * @property {Array.<number>=} viewportOutlineColor [r, g, b] color of the outline (default: [255, 190, 0]).\n * @property {number=} viewportOutlineWidth Viewport outline width in px (default: 2).\n * @property {String=} id Unique identifier for this layer.\n */\n\n/**\n * @type {{ new <S extends string[]>(...props: import('../types').Viv<LayerProps, S>[]) }}\n * @ignore\n */\n\nconst OverviewLayer = class extends CompositeLayer {\n renderLayers() {\n const {\n loader,\n id,\n zoom,\n boundingBox,\n boundingBoxColor,\n boundingBoxOutlineWidth,\n viewportOutlineColor,\n viewportOutlineWidth,\n overviewScale\n } = this.props;\n const {\n width,\n height\n } = getImageSize(loader[0]);\n const z = loader.length - 1;\n const lowestResolution = loader[z];\n const overview = new ImageLayer(this.props, {\n id: `viewport-${id}`,\n modelMatrix: new Matrix4().scale(2 ** z * overviewScale),\n loader: lowestResolution\n });\n const boundingBoxOutline = new PolygonLayer({\n id: `bounding-box-overview-${id}`,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n data: [boundingBox],\n getPolygon: f => f,\n filled: false,\n stroked: true,\n getLineColor: boundingBoxColor,\n getLineWidth: boundingBoxOutlineWidth * 2 ** zoom\n });\n const viewportOutline = new PolygonLayer({\n id: `viewport-outline-${id}`,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n data: [[[0, 0], [width * overviewScale, 0], [width * overviewScale, height * overviewScale], [0, height * overviewScale]]],\n getPolygon: f => f,\n filled: false,\n stroked: true,\n getLineColor: viewportOutlineColor,\n getLineWidth: viewportOutlineWidth * 2 ** zoom\n });\n const layers = [overview, boundingBoxOutline, viewportOutline];\n return layers;\n }\n\n};\nOverviewLayer.layerName = 'OverviewLayer';\nOverviewLayer.defaultProps = defaultProps$3;\n\nfunction getVivId(id) {\n return `-#${id}#`;\n}\n/**\n * Create a boudning box from a viewport based on passed-in viewState.\n * @param {viewState} Object The viewState for a certain viewport.\n * @returns {View} The DeckGL View for this viewport.\n */\n\nfunction makeBoundingBox(viewState) {\n const viewport = new OrthographicView().makeViewport({\n // From the current `detail` viewState, we need its projection matrix (actually the inverse).\n viewState,\n height: viewState.height,\n width: viewState.width\n }); // Use the inverse of the projection matrix to map screen to the view space.\n\n return [viewport.unproject([0, 0]), viewport.unproject([viewport.width, 0]), viewport.unproject([viewport.width, viewport.height]), viewport.unproject([0, viewport.height])];\n}\n/**\n * Create an initial view state that centers the image in the viewport at the zoom level that fills the dimensions in `viewSize`.\n * @param {Object} loader (PixelSource[] | PixelSource)\n * @param {Object} viewSize { height, width } object giving dimensions of the viewport for deducing the right zoom level to center the image.\n * @param {Object=} zoomBackOff A positive number which controls how far zoomed out the view state is from filling the entire viewport (default is 0 so the image fully fills the view).\n * SideBySideViewer and PictureInPictureViewer use .5 when setting viewState automatically in their default behavior, so the viewport is slightly zoomed out from the image\n * filling the whole screen. 1 unit of zoomBackOff (so a passed-in value of 1) corresponds to a 2x zooming out.\n * @param {Boolean=} use3d Whether or not to return a view state that can be used with the 3d viewer\n * @param {Boolean=} modelMatrix If using a transformation matrix, passing it in here will allow this function to properly center the volume.\n * @returns {Object} A default initial view state that centers the image within the view: { target: [x, y, 0], zoom: -zoom }.\n */\n\nfunction getDefaultInitialViewState(loader, viewSize, zoomBackOff = 0, use3d = false, modelMatrix) {\n const source = Array.isArray(loader) ? loader[0] : loader;\n const {\n width,\n height\n } = getImageSize(source);\n const depth = source.shape[source.labels.indexOf('z')];\n const zoom = Math.log2(Math.min(viewSize.width / width, viewSize.height / height)) - zoomBackOff;\n const physicalSizeScalingMatrix = getPhysicalSizeScalingMatrix(source);\n const loaderInitialViewState = {\n target: (modelMatrix || new Matrix4()).transformPoint((use3d ? physicalSizeScalingMatrix : new Matrix4()).transformPoint([width / 2, height / 2, use3d ? depth / 2 : 0])),\n zoom\n };\n return loaderInitialViewState;\n}\n/**\n * Creates the layers for viewing an image in detail.\n * @param {String} id The identifier of the view.\n * @param {Object} props The layer properties.\n * @returns {Array} An array of layers.\n */\n\nfunction getImageLayer(id, props) {\n const {\n loader\n } = props; // Grab name of PixelSource if a class instance (works for Tiff & Zarr).\n\n const sourceName = loader[0]?.constructor?.name; // Create at least one layer even without selections so that the tests pass.\n\n const Layer = loader.length > 1 ? MultiscaleImageLayer : ImageLayer;\n const layerLoader = loader.length > 1 ? loader : loader[0];\n return new Layer({ ...props,\n id: `${sourceName}${getVivId(id)}`,\n viewportId: id,\n loader: layerLoader\n });\n}\n\nfunction getPosition(boundingBox, position, length) {\n const viewLength = boundingBox[2][0] - boundingBox[0][0];\n\n switch (position) {\n case 'bottom-right':\n {\n const yCoord = boundingBox[2][1] - (boundingBox[2][1] - boundingBox[0][1]) * length;\n const xLeftCoord = boundingBox[2][0] - viewLength * length;\n return [yCoord, xLeftCoord];\n }\n\n case 'top-right':\n {\n const yCoord = (boundingBox[2][1] - boundingBox[0][1]) * length;\n const xLeftCoord = boundingBox[2][0] - viewLength * length;\n return [yCoord, xLeftCoord];\n }\n\n case 'top-left':\n {\n const yCoord = (boundingBox[2][1] - boundingBox[0][1]) * length;\n const xLeftCoord = viewLength * length;\n return [yCoord, xLeftCoord];\n }\n\n case 'bottom-left':\n {\n const yCoord = boundingBox[2][1] - (boundingBox[2][1] - boundingBox[0][1]) * length;\n const xLeftCoord = viewLength * length;\n return [yCoord, xLeftCoord];\n }\n\n default:\n {\n throw new Error(`Position ${position} not found`);\n }\n }\n}\n\nconst defaultProps$2 = {\n pickable: {\n type: 'boolean',\n value: true,\n compare: true\n },\n viewState: {\n type: 'object',\n value: {\n zoom: 0,\n target: [0, 0, 0]\n },\n compare: true\n },\n unit: {\n type: 'string',\n value: '',\n compare: true\n },\n size: {\n type: 'number',\n value: 1,\n compare: true\n },\n position: {\n type: 'string',\n value: 'bottom-right',\n compare: true\n },\n length: {\n type: 'number',\n value: 0.085,\n compare: true\n }\n};\n/**\n * @typedef LayerProps\n * @type {Object}\n * @property {String} unit Physical unit size per pixel at full resolution.\n * @property {Number} size Physical size of a pixel.\n * @property {Object} viewState The current viewState for the desired view. We cannot internally use this.context.viewport because it is one frame behind:\n * https://github.com/visgl/deck.gl/issues/4504\n * @property {Array=} boundingBox Boudning box of the view in which this should render.\n * @property {string=} id Id from the parent layer.\n * @property {number=} length Value from 0 to 1 representing the portion of the view to be used for the length part of the scale bar.\n */\n\n/**\n * @type {{ new(...props: LayerProps[]) }}\n * @ignore\n */\n\nconst ScaleBarLayer = class extends CompositeLayer {\n renderLayers() {\n const {\n id,\n unit,\n size,\n position,\n viewState,\n length\n } = this.props;\n const boundingBox = makeBoundingBox(viewState);\n const {\n zoom\n } = viewState;\n const viewLength = boundingBox[2][0] - boundingBox[0][0];\n const barLength = viewLength * 0.05; // This is a good heuristic for stopping the bar tick marks from getting too small\n // and/or the text squishing up into the bar.\n\n const barHeight = Math.max(2 ** (-zoom + 1.5), (boundingBox[2][1] - boundingBox[0][1]) * 0.007);\n const numUnits = barLength * size;\n const [yCoord, xLeftCoord] = getPosition(boundingBox, position, length);\n const lengthBar = new LineLayer({\n id: `scale-bar-length-${id}`,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n data: [[[xLeftCoord, yCoord], [xLeftCoord + barLength, yCoord]]],\n getSourcePosition: d => d[0],\n getTargetPosition: d => d[1],\n getWidth: 2,\n getColor: [220, 220, 220]\n });\n const tickBoundsLeft = new LineLayer({\n id: `scale-bar-height-left-${id}`,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n data: [[[xLeftCoord, yCoord - barHeight], [xLeftCoord, yCoord + barHeight]]],\n getSourcePosition: d => d[0],\n getTargetPosition: d => d[1],\n getWidth: 2,\n getColor: [220, 220, 220]\n });\n const tickBoundsRight = new LineLayer({\n id: `scale-bar-height-right-${id}`,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n data: [[[xLeftCoord + barLength, yCoord - barHeight], [xLeftCoord + barLength, yCoord + barHeight]]],\n getSourcePosition: d => d[0],\n getTargetPosition: d => d[1],\n getWidth: 2,\n getColor: [220, 220, 220]\n });\n const textLayer = new TextLayer({\n id: `units-label-layer-${id}`,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n data: [{\n text: String(numUnits).slice(0, 5).replace(/\\.$/, '') + unit,\n position: [xLeftCoord + barLength * 0.5, yCoord + barHeight * 4]\n }],\n getColor: [220, 220, 220, 255],\n getSize: 12,\n fontFamily: DEFAULT_FONT_FAMILY,\n sizeUnits: 'meters',\n sizeScale: 2 ** -zoom,\n characterSet: [...unit.split(''), ...range(10).map(i => String(i)), '.']\n });\n return [lengthBar, tickBoundsLeft, tickBoundsRight, textLayer];\n }\n\n};\nScaleBarLayer.layerName = 'ScaleBarLayer';\nScaleBarLayer.defaultProps = defaultProps$2;\n\nvar vs = \"#version 300 es\\n#define GLSLIFY 1\\n#define SHADER_NAME xr-layer-vertex-shader\\nin vec3 positions;uniform vec3 eye_pos;uniform mat4 proj;uniform mat4 model;uniform mat4 view;uniform mat4 scale;uniform mat4 resolution;out vec3 vray_dir;flat out vec3 transformed_eye;void main(){gl_Position=proj*view*model*scale*resolution*vec4(positions,1.);/*This first diagram is a skewed volume(i.e a \\\"shear\\\" model matrix applied)top down with the eye marked as #,all in world space^___|__\\\\|\\\\\\\\|\\\\|____|||\\n#\\nThis next diagram shows the volume after the inverse model matrix has placed it back in model coordinates,but the eye still in world space.^___|___|||||||__|__||||\\n#\\nFinally,we apply the inverse model matrix transformation to the eye as well to bring it too into world space.Notice that the ray here matches the \\\"voxels\\\" through which the first ray also passes,as desired.^____/__|/||/||/____|///\\n#\\n*/transformed_eye=(inverse(resolution)*inverse(scale)*inverse(model)*(vec4(eye_pos,1.))).xyz;vray_dir=positions-transformed_eye;}\"; // eslint-disable-line\n\nvar fs$1 = \"#version 300 es\\nprecision highp int;precision highp float;precision highp SAMPLER_TYPE;\\n#define GLSLIFY 1\\nuniform highp SAMPLER_TYPE volume0;uniform highp SAMPLER_TYPE volume1;uniform highp SAMPLER_TYPE volume2;uniform highp SAMPLER_TYPE volume3;uniform highp SAMPLER_TYPE volume4;uniform highp SAMPLER_TYPE volume5;uniform vec3 scaledDimensions;uniform mat4 scale;uniform vec3 normals[NUM_PLANES];uniform float distances[NUM_PLANES];uniform vec3 colors[6];uniform vec2 xSlice;uniform vec2 ySlice;uniform vec2 zSlice;uniform vec2 contrastLimits[6];in vec3 vray_dir;flat in vec3 transformed_eye;out vec4 color;vec2 intersect_box(vec3 orig,vec3 dir){vec3 box_min=vec3(xSlice[0],ySlice[0],zSlice[0]);vec3 box_max=vec3(xSlice[1],ySlice[1],zSlice[1]);vec3 inv_dir=1./dir;vec3 tmin_tmp=(box_min-orig)*inv_dir;vec3 tmax_tmp=(box_max-orig)*inv_dir;vec3 tmin=min(tmin_tmp,tmax_tmp);vec3 tmax=max(tmin_tmp,tmax_tmp);float t0=max(tmin.x,max(tmin.y,tmin.z));float t1=min(tmax.x,min(tmax.y,tmax.z));vec2 val=vec2(t0,t1);return val;}float linear_to_srgb(float x){if(x<=0.0031308f){return 12.92f*x;}return 1.055f*pow(x,1.f/2.4f)-0.055f;}float wang_hash(int seed){seed=(seed ^ 61)^(seed>>16);seed*=9;seed=seed ^(seed>>4);seed*=0x27d4eb2d;seed=seed ^(seed>>15);return float(seed % 2147483647)/float(2147483647);}void main(void){vec3 ray_dir=normalize(vray_dir);vec2 t_hit=intersect_box(transformed_eye,ray_dir);if(t_hit.x>t_hit.y){discard;}t_hit.x=max(t_hit.x,0.);vec3 dt_vec=1./(scale*vec4(abs(ray_dir),1.)).xyz;float dt=1.*min(dt_vec.x,min(dt_vec.y,dt_vec.z));float offset=wang_hash(int(gl_FragCoord.x+640.*gl_FragCoord.y));vec3 p=transformed_eye+(t_hit.x+offset*dt)*ray_dir;_BEFORE_RENDERfor(float t=t_hit.x;t<t_hit.y;t+=dt){float canShow=1.;for(int i=0;i<NUM_PLANES;i+=1){canShow*=max(0.,sign(dot(normals[i],p)+distances[i]));}float canShowXCoordinate=max(p.x-0.,0.)*max(1.-p.x,0.);float canShowYCoordinate=max(p.y-0.,0.)*max(1.-p.y,0.);float canShowZCoordinate=max(p.z-0.,0.)*max(1.-p.z,0.);float canShowCoordinate=float(ceil(canShowXCoordinate*canShowYCoordinate*canShowZCoordinate));canShow=canShowCoordinate*canShow;float intensityValue0=float(texture(volume0,p).r);DECKGL_PROCESS_INTENSITY(intensityValue0,contrastLimits[0],0);intensityValue0=canShow*intensityValue0;float intensityValue1=float(texture(volume1,p).r);DECKGL_PROCESS_INTENSITY(intensityValue1,contrastLimits[1],1);intensityValue1=canShow*intensityValue1;float intensityValue2=float(texture(volume2,p).r);DECKGL_PROCESS_INTENSITY(intensityValue2,contrastLimits[2],2);intensityValue2=canShow*intensityValue2;float intensityValue3=float(texture(volume3,p).r);DECKGL_PROCESS_INTENSITY(intensityValue3,contrastLimits[3],3);intensityValue3=canShow*intensityValue3;float intensityValue4=float(texture(volume4,p).r);DECKGL_PROCESS_INTENSITY(intensityValue4,contrastLimits[4],4);intensityValue4=canShow*intensityValue4;float intensityValue5=float(texture(volume5,p).r);DECKGL_PROCESS_INTENSITY(intensityValue5,contrastLimits[5],5);intensityValue5=canShow*intensityValue5;_RENDERp+=ray_dir*dt;}_AFTER_RENDERcolor.r=linear_to_srgb(color.r);color.g=linear_to_srgb(color.g);color.b=linear_to_srgb(color.b);}\"; // eslint-disable-line\n\nvar fs = \"#define GLSLIFY 1\\nvec4 jet(float x_17){const float e0=0.0;const vec4 v0=vec4(0,0,0.5137254901960784,1);const float e1=0.125;const vec4 v1=vec4(0,0.23529411764705882,0.6666666666666666,1);const float e2=0.375;const vec4 v2=vec4(0.0196078431372549,1,1,1);const float e3=0.625;const vec4 v3=vec4(1,1,0,1);const float e4=0.875;const vec4 v4=vec4(0.9803921568627451,0,0,1);const float e5=1.0;const vec4 v5=vec4(0.5019607843137255,0,0,1);float a0=smoothstep(e0,e1,x_17);float a1=smoothstep(e1,e2,x_17);float a2=smoothstep(e2,e3,x_17);float a3=smoothstep(e3,e4,x_17);float a4=smoothstep(e4,e5,x_17);return max(mix(v0,v1,a0)*step(e0,x_17)*step(x_17,e1),max(mix(v1,v2,a1)*step(e1,x_17)*step(x_17,e2),max(mix(v2,v3,a2)*step(e2,x_17)*step(x_17,e3),max(mix(v3,v4,a3)*step(e3,x_17)*step(x_17,e4),mix(v4,v5,a4)*step(e4,x_17)*step(x_17,e5)))));}vec4 hsv(float x_18){const float e0=0.0;const vec4 v0=vec4(1,0,0,1);const float e1=0.169;const vec4 v1=vec4(0.9921568627450981,1,0.00784313725490196,1);const float e2=0.173;const vec4 v2=vec4(0.9686274509803922,1,0.00784313725490196,1);const float e3=0.337;const vec4 v3=vec4(0,0.9882352941176471,0.01568627450980392,1);const float e4=0.341;const vec4 v4=vec4(0,0.9882352941176471,0.0392156862745098,1);const float e5=0.506;const vec4 v5=vec4(0.00392156862745098,0.9764705882352941,1,1);const float e6=0.671;const vec4 v6=vec4(0.00784313725490196,0,0.9921568627450981,1);const float e7=0.675;const vec4 v7=vec4(0.03137254901960784,0,0.9921568627450981,1);const float e8=0.839;const vec4 v8=vec4(1,0,0.984313725490196,1);const float e9=0.843;const vec4 v9=vec4(1,0,0.9607843137254902,1);const float e10=1.0;const vec4 v10=vec4(1,0,0.023529411764705882,1);float a0=smoothstep(e0,e1,x_18);float a1=smoothstep(e1,e2,x_18);float a2=smoothstep(e2,e3,x_18);float a3=smoothstep(e3,e4,x_18);float a4=smoothstep(e4,e5,x_18);float a5=smoothstep(e5,e6,x_18);float a6=smoothstep(e6,e7,x_18);float a7=smoothstep(e7,e8,x_18);float a8=smoothstep(e8,e9,x_18);float a9=smoothstep(e9,e10,x_18);return max(mix(v0,v1,a0)*step(e0,x_18)*step(x_18,e1),max(mix(v1,v2,a1)*step(e1,x_18)*step(x_18,e2),max(mix(v2,v3,a2)*step(e2,x_18)*step(x_18,e3),max(mix(v3,v4,a3)*step(e3,x_18)*step(x_18,e4),max(mix(v4,v5,a4)*step(e4,x_18)*step(x_18,e5),max(mix(v5,v6,a5)*step(e5,x_18)*step(x_18,e6),max(mix(v6,v7,a6)*step(e6,x_18)*step(x_18,e7),max(mix(v7,v8,a7)*step(e7,x_18)*step(x_18,e8),max(mix(v8,v9,a8)*step(e8,x_18)*step(x_18,e9),mix(v9,v10,a9)*step(e9,x_18)*step(x_18,e10))))))))));}vec4 hot(float x_13){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.3;const vec4 v1=vec4(0.9019607843137255,0,0,1);const float e2=0.6;const vec4 v2=vec4(1,0.8235294117647058,0,1);const float e3=1.0;const vec4 v3=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_13);float a1=smoothstep(e1,e2,x_13);float a2=smoothstep(e2,e3,x_13);return max(mix(v0,v1,a0)*step(e0,x_13)*step(x_13,e1),max(mix(v1,v2,a1)*step(e1,x_13)*step(x_13,e2),mix(v2,v3,a2)*step(e2,x_13)*step(x_13,e3)));}vec4 cool(float x_24){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.13;const vec4 v1=vec4(0.4549019607843137,0,0.8549019607843137,1);const float e2=0.25;const vec4 v2=vec4(0.3843137254901961,0.2901960784313726,0.9294117647058824,1);const float e3=0.38;const vec4 v3=vec4(0.26666666666666666,0.5725490196078431,0.9058823529411765,1);const float e4=0.5;const vec4 v4=vec4(0,0.8,0.7725490196078432,1);const float e5=0.63;const vec4 v5=vec4(0,0.9686274509803922,0.5725490196078431,1);const float e6=0.75;const vec4 v6=vec4(0,1,0.34509803921568627,1);const float e7=0.88;const vec4 v7=vec4(0.1568627450980392,1,0.03137254901960784,1);const float e8=1.0;const vec4 v8=vec4(0.5764705882352941,1,0,1);float a0=smoothstep(e0,e1,x_24);float a1=smoothstep(e1,e2,x_24);float a2=smoothstep(e2,e3,x_24);float a3=smoothstep(e3,e4,x_24);float a4=smoothstep(e4,e5,x_24);float a5=smoothstep(e5,e6,x_24);float a6=smoothstep(e6,e7,x_24);float a7=smoothstep(e7,e8,x_24);return max(mix(v0,v1,a0)*step(e0,x_24)*step(x_24,e1),max(mix(v1,v2,a1)*step(e1,x_24)*step(x_24,e2),max(mix(v2,v3,a2)*step(e2,x_24)*step(x_24,e3),max(mix(v3,v4,a3)*step(e3,x_24)*step(x_24,e4),max(mix(v4,v5,a4)*step(e4,x_24)*step(x_24,e5),max(mix(v5,v6,a5)*step(e5,x_24)*step(x_24,e6),max(mix(v6,v7,a6)*step(e6,x_24)*step(x_24,e7),mix(v7,v8,a7)*step(e7,x_24)*step(x_24,e8))))))));}vec4 spring(float x_5){const float e0=0.0;const vec4 v0=vec4(1,0,1,1);const float e1=1.0;const vec4 v1=vec4(1,1,0,1);float a0=smoothstep(e0,e1,x_5);return mix(v0,v1,a0)*step(e0,x_5)*step(x_5,e1);}vec4 summer(float x_12){const float e0=0.0;const vec4 v0=vec4(0,0.5019607843137255,0.4,1);const float e1=1.0;const vec4 v1=vec4(1,1,0.4,1);float a0=smoothstep(e0,e1,x_12);return mix(v0,v1,a0)*step(e0,x_12)*step(x_12,e1);}vec4 autumn(float x_25){const float e0=0.0;const vec4 v0=vec4(1,0,0,1);const float e1=1.0;const vec4 v1=vec4(1,1,0,1);float a0=smoothstep(e0,e1,x_25);return mix(v0,v1,a0)*step(e0,x_25)*step(x_25,e1);}vec4 winter(float x_16){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=1.0;const vec4 v1=vec4(0,1,0.5019607843137255,1);float a0=smoothstep(e0,e1,x_16);return mix(v0,v1,a0)*step(e0,x_16)*step(x_16,e1);}vec4 bone(float x_15){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.376;const vec4 v1=vec4(0.32941176470588235,0.32941176470588235,0.4549019607843137,1);const float e2=0.753;const vec4 v2=vec4(0.6627450980392157,0.7843137254901961,0.7843137254901961,1);const float e3=1.0;const vec4 v3=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_15);float a1=smoothstep(e1,e2,x_15);float a2=smoothstep(e2,e3,x_15);return max(mix(v0,v1,a0)*step(e0,x_15)*step(x_15,e1),max(mix(v1,v2,a1)*step(e1,x_15)*step(x_15,e2),mix(v2,v3,a2)*step(e2,x_15)*step(x_15,e3)));}vec4 copper(float x_10){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.804;const vec4 v1=vec4(1,0.6274509803921569,0.4,1);const float e2=1.0;const vec4 v2=vec4(1,0.7803921568627451,0.4980392156862745,1);float a0=smoothstep(e0,e1,x_10);float a1=smoothstep(e1,e2,x_10);return max(mix(v0,v1,a0)*step(e0,x_10)*step(x_10,e1),mix(v1,v2,a1)*step(e1,x_10)*step(x_10,e2));}vec4 greys(float x_4){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=1.0;const vec4 v1=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_4);return mix(v0,v1,a0)*step(e0,x_4)*step(x_4,e1);}vec4 yignbu(float x_32){const float e0=0.0;const vec4 v0=vec4(0.03137254901960784,0.11372549019607843,0.34509803921568627,1);const float e1=0.125;const vec4 v1=vec4(0.1450980392156863,0.20392156862745098,0.5803921568627451,1);const float e2=0.25;const vec4 v2=vec4(0.13333333333333333,0.3686274509803922,0.6588235294117647,1);const float e3=0.375;const vec4 v3=vec4(0.11372549019607843,0.5686274509803921,0.7529411764705882,1);const float e4=0.5;const vec4 v4=vec4(0.2549019607843137,0.7137254901960784,0.7686274509803922,1);const float e5=0.625;const vec4 v5=vec4(0.4980392156862745,0.803921568627451,0.7333333333333333,1);const float e6=0.75;const vec4 v6=vec4(0.7803921568627451,0.9137254901960784,0.7058823529411765,1);const float e7=0.875;const vec4 v7=vec4(0.9294117647058824,0.9725490196078431,0.8509803921568627,1);const float e8=1.0;const vec4 v8=vec4(1,1,0.8509803921568627,1);float a0=smoothstep(e0,e1,x_32);float a1=smoothstep(e1,e2,x_32);float a2=smoothstep(e2,e3,x_32);float a3=smoothstep(e3,e4,x_32);float a4=smoothstep(e4,e5,x_32);float a5=smoothstep(e5,e6,x_32);float a6=smoothstep(e6,e7,x_32);float a7=smoothstep(e7,e8,x_32);return max(mix(v0,v1,a0)*step(e0,x_32)*step(x_32,e1),max(mix(v1,v2,a1)*step(e1,x_32)*step(x_32,e2),max(mix(v2,v3,a2)*step(e2,x_32)*step(x_32,e3),max(mix(v3,v4,a3)*step(e3,x_32)*step(x_32,e4),max(mix(v4,v5,a4)*step(e4,x_32)*step(x_32,e5),max(mix(v5,v6,a5)*step(e5,x_32)*step(x_32,e6),max(mix(v6,v7,a6)*step(e6,x_32)*step(x_32,e7),mix(v7,v8,a7)*step(e7,x_32)*step(x_32,e8))))))));}vec4 greens(float x_34){const float e0=0.0;const vec4 v0=vec4(0,0.26666666666666666,0.10588235294117647,1);const float e1=0.125;const vec4 v1=vec4(0,0.42745098039215684,0.17254901960784313,1);const float e2=0.25;const vec4 v2=vec4(0.13725490196078433,0.5450980392156862,0.27058823529411763,1);const float e3=0.375;const vec4 v3=vec4(0.2549019607843137,0.6705882352941176,0.36470588235294116,1);const float e4=0.5;const vec4 v4=vec4(0.4549019607843137,0.7686274509803922,0.4627450980392157,1);const float e5=0.625;const vec4 v5=vec4(0.6313725490196078,0.8509803921568627,0.6078431372549019,1);const float e6=0.75;const vec4 v6=vec4(0.7803921568627451,0.9137254901960784,0.7529411764705882,1);const float e7=0.875;const vec4 v7=vec4(0.8980392156862745,0.9607843137254902,0.8784313725490196,1);const float e8=1.0;const vec4 v8=vec4(0.9686274509803922,0.9882352941176471,0.9607843137254902,1);float a0=smoothstep(e0,e1,x_34);float a1=smoothstep(e1,e2,x_34);float a2=smoothstep(e2,e3,x_34);float a3=smoothstep(e3,e4,x_34);float a4=smoothstep(e4,e5,x_34);float a5=smoothstep(e5,e6,x_34);float a6=smoothstep(e6,e7,x_34);float a7=smoothstep(e7,e8,x_34);return max(mix(v0,v1,a0)*step(e0,x_34)*step(x_34,e1),max(mix(v1,v2,a1)*step(e1,x_34)*step(x_34,e2),max(mix(v2,v3,a2)*step(e2,x_34)*step(x_34,e3),max(mix(v3,v4,a3)*step(e3,x_34)*step(x_34,e4),max(mix(v4,v5,a4)*step(e4,x_34)*step(x_34,e5),max(mix(v5,v6,a5)*step(e5,x_34)*step(x_34,e6),max(mix(v6,v7,a6)*step(e6,x_34)*step(x_34,e7),mix(v7,v8,a7)*step(e7,x_34)*step(x_34,e8))))))));}vec4 yiorrd(float x_41){const float e0=0.0;const vec4 v0=vec4(0.5019607843137255,0,0.14901960784313725,1);const float e1=0.125;const vec4 v1=vec4(0.7411764705882353,0,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.8901960784313725,0.10196078431372549,0.10980392156862745,1);const float e3=0.375;const vec4 v3=vec4(0.9882352941176471,0.3058823529411765,0.16470588235294117,1);const float e4=0.5;const vec4 v4=vec4(0.9921568627450981,0.5529411764705883,0.23529411764705882,1);const float e5=0.625;const vec4 v5=vec4(0.996078431372549,0.6980392156862745,0.2980392156862745,1);const float e6=0.75;const vec4 v6=vec4(0.996078431372549,0.8509803921568627,0.4627450980392157,1);const float e7=0.875;const vec4 v7=vec4(1,0.9294117647058824,0.6274509803921569,1);const float e8=1.0;const vec4 v8=vec4(1,1,0.8,1);float a0=smoothstep(e0,e1,x_41);float a1=smoothstep(e1,e2,x_41);float a2=smoothstep(e2,e3,x_41);float a3=smoothstep(e3,e4,x_41);float a4=smoothstep(e4,e5,x_41);float a5=smoothstep(e5,e6,x_41);float a6=smoothstep(e6,e7,x_41);float a7=smoothstep(e7,e8,x_41);return max(mix(v0,v1,a0)*step(e0,x_41)*step(x_41,e1),max(mix(v1,v2,a1)*step(e1,x_41)*step(x_41,e2),max(mix(v2,v3,a2)*step(e2,x_41)*step(x_41,e3),max(mix(v3,v4,a3)*step(e3,x_41)*step(x_41,e4),max(mix(v4,v5,a4)*step(e4,x_41)*step(x_41,e5),max(mix(v5,v6,a5)*step(e5,x_41)*step(x_41,e6),max(mix(v6,v7,a6)*step(e6,x_41)*step(x_41,e7),mix(v7,v8,a7)*step(e7,x_41)*step(x_41,e8))))))));}vec4 bluered(float x_23){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=1.0;const vec4 v1=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_23);return mix(v0,v1,a0)*step(e0,x_23)*step(x_23,e1);}vec4 rdbu(float x_1){const float e0=0.0;const vec4 v0=vec4(0.0196078431372549,0.0392156862745098,0.6745098039215687,1);const float e1=0.35;const vec4 v1=vec4(0.41568627450980394,0.5372549019607843,0.9686274509803922,1);const float e2=0.5;const vec4 v2=vec4(0.7450980392156863,0.7450980392156863,0.7450980392156863,1);const float e3=0.6;const vec4 v3=vec4(0.8627450980392157,0.6666666666666666,0.5176470588235295,1);const float e4=0.7;const vec4 v4=vec4(0.9019607843137255,0.5686274509803921,0.35294117647058826,1);const float e5=1.0;const vec4 v5=vec4(0.6980392156862745,0.0392156862745098,0.10980392156862745,1);float a0=smoothstep(e0,e1,x_1);float a1=smoothstep(e1,e2,x_1);float a2=smoothstep(e2,e3,x_1);float a3=smoothstep(e3,e4,x_1);float a4=smoothstep(e4,e5,x_1);return max(mix(v0,v1,a0)*step(e0,x_1)*step(x_1,e1),max(mix(v1,v2,a1)*step(e1,x_1)*step(x_1,e2),max(mix(v2,v3,a2)*step(e2,x_1)*step(x_1,e3),max(mix(v3,v4,a3)*step(e3,x_1)*step(x_1,e4),mix(v4,v5,a4)*step(e4,x_1)*step(x_1,e5)))));}vec4 picnic(float x_42){const float e0=0.0;const vec4 v0=vec4(0,0,1,1);const float e1=0.1;const vec4 v1=vec4(0.2,0.6,1,1);const float e2=0.2;const vec4 v2=vec4(0.4,0.8,1,1);const float e3=0.3;const vec4 v3=vec4(0.6,0.8,1,1);const float e4=0.4;const vec4 v4=vec4(0.8,0.8,1,1);const float e5=0.5;const vec4 v5=vec4(1,1,1,1);const float e6=0.6;const vec4 v6=vec4(1,0.8,1,1);const float e7=0.7;const vec4 v7=vec4(1,0.6,1,1);const float e8=0.8;const vec4 v8=vec4(1,0.4,0.8,1);const float e9=0.9;const vec4 v9=vec4(1,0.4,0.4,1);const float e10=1.0;const vec4 v10=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_42);float a1=smoothstep(e1,e2,x_42);float a2=smoothstep(e2,e3,x_42);float a3=smoothstep(e3,e4,x_42);float a4=smoothstep(e4,e5,x_42);float a5=smoothstep(e5,e6,x_42);float a6=smoothstep(e6,e7,x_42);float a7=smoothstep(e7,e8,x_42);float a8=smoothstep(e8,e9,x_42);float a9=smoothstep(e9,e10,x_42);return max(mix(v0,v1,a0)*step(e0,x_42)*step(x_42,e1),max(mix(v1,v2,a1)*step(e1,x_42)*step(x_42,e2),max(mix(v2,v3,a2)*step(e2,x_42)*step(x_42,e3),max(mix(v3,v4,a3)*step(e3,x_42)*step(x_42,e4),max(mix(v4,v5,a4)*step(e4,x_42)*step(x_42,e5),max(mix(v5,v6,a5)*step(e5,x_42)*step(x_42,e6),max(mix(v6,v7,a6)*step(e6,x_42)*step(x_42,e7),max(mix(v7,v8,a7)*step(e7,x_42)*step(x_42,e8),max(mix(v8,v9,a8)*step(e8,x_42)*step(x_42,e9),mix(v9,v10,a9)*step(e9,x_42)*step(x_42,e10))))))))));}vec4 rainbow(float x_31){const float e0=0.0;const vec4 v0=vec4(0.5882352941176471,0,0.35294117647058826,1);const float e1=0.125;const vec4 v1=vec4(0,0,0.7843137254901961,1);const float e2=0.25;const vec4 v2=vec4(0,0.09803921568627451,1,1);const float e3=0.375;const vec4 v3=vec4(0,0.596078431372549,1,1);const float e4=0.5;const vec4 v4=vec4(0.17254901960784313,1,0.5882352941176471,1);const float e5=0.625;const vec4 v5=vec4(0.592156862745098,1,0,1);const float e6=0.75;const vec4 v6=vec4(1,0.9176470588235294,0,1);const float e7=0.875;const vec4 v7=vec4(1,0.43529411764705883,0,1);const float e8=1.0;const vec4 v8=vec4(1,0,0,1);float a0=smoothstep(e0,e1,x_31);float a1=smoothstep(e1,e2,x_31);float a2=smoothstep(e2,e3,x_31);float a3=smoothstep(e3,e4,x_31);float a4=smoothstep(e4,e5,x_31);float a5=smoothstep(e5,e6,x_31);float a6=smoothstep(e6,e7,x_31);float a7=smoothstep(e7,e8,x_31);return max(mix(v0,v1,a0)*step(e0,x_31)*step(x_31,e1),max(mix(v1,v2,a1)*step(e1,x_31)*step(x_31,e2),max(mix(v2,v3,a2)*step(e2,x_31)*step(x_31,e3),max(mix(v3,v4,a3)*step(e3,x_31)*step(x_31,e4),max(mix(v4,v5,a4)*step(e4,x_31)*step(x_31,e5),max(mix(v5,v6,a5)*step(e5,x_31)*step(x_31,e6),max(mix(v6,v7,a6)*step(e6,x_31)*step(x_31,e7),mix(v7,v8,a7)*step(e7,x_31)*step(x_31,e8))))))));}vec4 portland(float x_21){const float e0=0.0;const vec4 v0=vec4(0.047058823529411764,0.2,0.5137254901960784,1);const float e1=0.25;const vec4 v1=vec4(0.0392156862745098,0.5333333333333333,0.7294117647058823,1);const float e2=0.5;const vec4 v2=vec4(0.9490196078431372,0.8274509803921568,0.2196078431372549,1);const float e3=0.75;const vec4 v3=vec4(0.9490196078431372,0.5607843137254902,0.2196078431372549,1);const float e4=1.0;const vec4 v4=vec4(0.8509803921568627,0.11764705882352941,0.11764705882352941,1);float a0=smoothstep(e0,e1,x_21);float a1=smoothstep(e1,e2,x_21);float a2=smoothstep(e2,e3,x_21);float a3=smoothstep(e3,e4,x_21);return max(mix(v0,v1,a0)*step(e0,x_21)*step(x_21,e1),max(mix(v1,v2,a1)*step(e1,x_21)*step(x_21,e2),max(mix(v2,v3,a2)*step(e2,x_21)*step(x_21,e3),mix(v3,v4,a3)*step(e3,x_21)*step(x_21,e4))));}vec4 blackbody(float x_38){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.2;const vec4 v1=vec4(0.9019607843137255,0,0,1);const float e2=0.4;const vec4 v2=vec4(0.9019607843137255,0.8235294117647058,0,1);const float e3=0.7;const vec4 v3=vec4(1,1,1,1);const float e4=1.0;const vec4 v4=vec4(0.6274509803921569,0.7843137254901961,1,1);float a0=smoothstep(e0,e1,x_38);float a1=smoothstep(e1,e2,x_38);float a2=smoothstep(e2,e3,x_38);float a3=smoothstep(e3,e4,x_38);return max(mix(v0,v1,a0)*step(e0,x_38)*step(x_38,e1),max(mix(v1,v2,a1)*step(e1,x_38)*step(x_38,e2),max(mix(v2,v3,a2)*step(e2,x_38)*step(x_38,e3),mix(v3,v4,a3)*step(e3,x_38)*step(x_38,e4))));}vec4 earth(float x_29){const float e0=0.0;const vec4 v0=vec4(0,0,0.5098039215686274,1);const float e1=0.1;const vec4 v1=vec4(0,0.7058823529411765,0.7058823529411765,1);const float e2=0.2;const vec4 v2=vec4(0.1568627450980392,0.8235294117647058,0.1568627450980392,1);const float e3=0.4;const vec4 v3=vec4(0.9019607843137255,0.9019607843137255,0.19607843137254902,1);const float e4=0.6;const vec4 v4=vec4(0.47058823529411764,0.27450980392156865,0.0784313725490196,1);const float e5=1.0;const vec4 v5=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_29);float a1=smoothstep(e1,e2,x_29);float a2=smoothstep(e2,e3,x_29);float a3=smoothstep(e3,e4,x_29);float a4=smoothstep(e4,e5,x_29);return max(mix(v0,v1,a0)*step(e0,x_29)*step(x_29,e1),max(mix(v1,v2,a1)*step(e1,x_29)*step(x_29,e2),max(mix(v2,v3,a2)*step(e2,x_29)*step(x_29,e3),max(mix(v3,v4,a3)*step(e3,x_29)*step(x_29,e4),mix(v4,v5,a4)*step(e4,x_29)*step(x_29,e5)))));}vec4 electric(float x_9){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.15;const vec4 v1=vec4(0.11764705882352941,0,0.39215686274509803,1);const float e2=0.4;const vec4 v2=vec4(0.47058823529411764,0,0.39215686274509803,1);const float e3=0.6;const vec4 v3=vec4(0.6274509803921569,0.35294117647058826,0,1);const float e4=0.8;const vec4 v4=vec4(0.9019607843137255,0.7843137254901961,0,1);const float e5=1.0;const vec4 v5=vec4(1,0.9803921568627451,0.8627450980392157,1);float a0=smoothstep(e0,e1,x_9);float a1=smoothstep(e1,e2,x_9);float a2=smoothstep(e2,e3,x_9);float a3=smoothstep(e3,e4,x_9);float a4=smoothstep(e4,e5,x_9);return max(mix(v0,v1,a0)*step(e0,x_9)*step(x_9,e1),max(mix(v1,v2,a1)*step(e1,x_9)*step(x_9,e2),max(mix(v2,v3,a2)*step(e2,x_9)*step(x_9,e3),max(mix(v3,v4,a3)*step(e3,x_9)*step(x_9,e4),mix(v4,v5,a4)*step(e4,x_9)*step(x_9,e5)))));}vec4 alpha(float x_0){const float e0=0.0;const vec4 v0=vec4(1,1,1,0);const float e1=1.0;const vec4 v1=vec4(1,1,1,1);float a0=smoothstep(e0,e1,x_0);return mix(v0,v1,a0)*step(e0,x_0)*step(x_0,e1);}vec4 viridis(float x_22){const float e0=0.0;const vec4 v0=vec4(0.26666666666666666,0.00392156862745098,0.32941176470588235,1);const float e1=0.13;const vec4 v1=vec4(0.2784313725490196,0.17254901960784313,0.47843137254901963,1);const float e2=0.25;const vec4 v2=vec4(0.23137254901960785,0.3176470588235294,0.5450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.17254901960784313,0.44313725490196076,0.5568627450980392,1);const float e4=0.5;const vec4 v4=vec4(0.12941176470588237,0.5647058823529412,0.5529411764705883,1);const float e5=0.63;const vec4 v5=vec4(0.15294117647058825,0.6784313725490196,0.5058823529411764,1);const float e6=0.75;const vec4 v6=vec4(0.3607843137254902,0.7843137254901961,0.38823529411764707,1);const float e7=0.88;const vec4 v7=vec4(0.6666666666666666,0.8627450980392157,0.19607843137254902,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.9058823529411765,0.1450980392156863,1);float a0=smoothstep(e0,e1,x_22);float a1=smoothstep(e1,e2,x_22);float a2=smoothstep(e2,e3,x_22);float a3=smoothstep(e3,e4,x_22);float a4=smoothstep(e4,e5,x_22);float a5=smoothstep(e5,e6,x_22);float a6=smoothstep(e6,e7,x_22);float a7=smoothstep(e7,e8,x_22);return max(mix(v0,v1,a0)*step(e0,x_22)*step(x_22,e1),max(mix(v1,v2,a1)*step(e1,x_22)*step(x_22,e2),max(mix(v2,v3,a2)*step(e2,x_22)*step(x_22,e3),max(mix(v3,v4,a3)*step(e3,x_22)*step(x_22,e4),max(mix(v4,v5,a4)*step(e4,x_22)*step(x_22,e5),max(mix(v5,v6,a5)*step(e5,x_22)*step(x_22,e6),max(mix(v6,v7,a6)*step(e6,x_22)*step(x_22,e7),mix(v7,v8,a7)*step(e7,x_22)*step(x_22,e8))))))));}vec4 inferno(float x_30){const float e0=0.0;const vec4 v0=vec4(0,0,0.01568627450980392,1);const float e1=0.13;const vec4 v1=vec4(0.12156862745098039,0.047058823529411764,0.2823529411764706,1);const float e2=0.25;const vec4 v2=vec4(0.3333333333333333,0.058823529411764705,0.42745098039215684,1);const float e3=0.38;const vec4 v3=vec4(0.5333333333333333,0.13333333333333333,0.41568627450980394,1);const float e4=0.5;const vec4 v4=vec4(0.7294117647058823,0.21176470588235294,0.3333333333333333,1);const float e5=0.63;const vec4 v5=vec4(0.8901960784313725,0.34901960784313724,0.2,1);const float e6=0.75;const vec4 v6=vec4(0.9764705882352941,0.5490196078431373,0.0392156862745098,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.788235294117647,0.19607843137254902,1);const float e8=1.0;const vec4 v8=vec4(0.9882352941176471,1,0.6431372549019608,1);float a0=smoothstep(e0,e1,x_30);float a1=smoothstep(e1,e2,x_30);float a2=smoothstep(e2,e3,x_30);float a3=smoothstep(e3,e4,x_30);float a4=smoothstep(e4,e5,x_30);float a5=smoothstep(e5,e6,x_30);float a6=smoothstep(e6,e7,x_30);float a7=smoothstep(e7,e8,x_30);return max(mix(v0,v1,a0)*step(e0,x_30)*step(x_30,e1),max(mix(v1,v2,a1)*step(e1,x_30)*step(x_30,e2),max(mix(v2,v3,a2)*step(e2,x_30)*step(x_30,e3),max(mix(v3,v4,a3)*step(e3,x_30)*step(x_30,e4),max(mix(v4,v5,a4)*step(e4,x_30)*step(x_30,e5),max(mix(v5,v6,a5)*step(e5,x_30)*step(x_30,e6),max(mix(v6,v7,a6)*step(e6,x_30)*step(x_30,e7),mix(v7,v8,a7)*step(e7,x_30)*step(x_30,e8))))))));}vec4 magma(float x_33){const float e0=0.0;const vec4 v0=vec4(0,0,0.01568627450980392,1);const float e1=0.13;const vec4 v1=vec4(0.10980392156862745,0.06274509803921569,0.26666666666666666,1);const float e2=0.25;const vec4 v2=vec4(0.30980392156862746,0.07058823529411765,0.4823529411764706,1);const float e3=0.38;const vec4 v3=vec4(0.5058823529411764,0.1450980392156863,0.5058823529411764,1);const float e4=0.5;const vec4 v4=vec4(0.7098039215686275,0.21176470588235294,0.47843137254901963,1);const float e5=0.63;const vec4 v5=vec4(0.8980392156862745,0.3137254901960784,0.39215686274509803,1);const float e6=0.75;const vec4 v6=vec4(0.984313725490196,0.5294117647058824,0.3803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.996078431372549,0.7607843137254902,0.5294117647058824,1);const float e8=1.0;const vec4 v8=vec4(0.9882352941176471,0.9921568627450981,0.7490196078431373,1);float a0=smoothstep(e0,e1,x_33);float a1=smoothstep(e1,e2,x_33);float a2=smoothstep(e2,e3,x_33);float a3=smoothstep(e3,e4,x_33);float a4=smoothstep(e4,e5,x_33);float a5=smoothstep(e5,e6,x_33);float a6=smoothstep(e6,e7,x_33);float a7=smoothstep(e7,e8,x_33);return max(mix(v0,v1,a0)*step(e0,x_33)*step(x_33,e1),max(mix(v1,v2,a1)*step(e1,x_33)*step(x_33,e2),max(mix(v2,v3,a2)*step(e2,x_33)*step(x_33,e3),max(mix(v3,v4,a3)*step(e3,x_33)*step(x_33,e4),max(mix(v4,v5,a4)*step(e4,x_33)*step(x_33,e5),max(mix(v5,v6,a5)*step(e5,x_33)*step(x_33,e6),max(mix(v6,v7,a6)*step(e6,x_33)*step(x_33,e7),mix(v7,v8,a7)*step(e7,x_33)*step(x_33,e8))))))));}vec4 plasma(float x_3){const float e0=0.0;const vec4 v0=vec4(0.050980392156862744,0.03137254901960784,0.5294117647058824,1);const float e1=0.13;const vec4 v1=vec4(0.29411764705882354,0.011764705882352941,0.6313725490196078,1);const float e2=0.25;const vec4 v2=vec4(0.49019607843137253,0.011764705882352941,0.6588235294117647,1);const float e3=0.38;const vec4 v3=vec4(0.6588235294117647,0.13333333333333333,0.5882352941176471,1);const float e4=0.5;const vec4 v4=vec4(0.796078431372549,0.27450980392156865,0.4745098039215686,1);const float e5=0.63;const vec4 v5=vec4(0.8980392156862745,0.4196078431372549,0.36470588235294116,1);const float e6=0.75;const vec4 v6=vec4(0.9725490196078431,0.5803921568627451,0.2549019607843137,1);const float e7=0.88;const vec4 v7=vec4(0.9921568627450981,0.7647058823529411,0.1568627450980392,1);const float e8=1.0;const vec4 v8=vec4(0.9411764705882353,0.9764705882352941,0.12941176470588237,1);float a0=smoothstep(e0,e1,x_3);float a1=smoothstep(e1,e2,x_3);float a2=smoothstep(e2,e3,x_3);float a3=smoothstep(e3,e4,x_3);float a4=smoothstep(e4,e5,x_3);float a5=smoothstep(e5,e6,x_3);float a6=smoothstep(e6,e7,x_3);float a7=smoothstep(e7,e8,x_3);return max(mix(v0,v1,a0)*step(e0,x_3)*step(x_3,e1),max(mix(v1,v2,a1)*step(e1,x_3)*step(x_3,e2),max(mix(v2,v3,a2)*step(e2,x_3)*step(x_3,e3),max(mix(v3,v4,a3)*step(e3,x_3)*step(x_3,e4),max(mix(v4,v5,a4)*step(e4,x_3)*step(x_3,e5),max(mix(v5,v6,a5)*step(e5,x_3)*step(x_3,e6),max(mix(v6,v7,a6)*step(e6,x_3)*step(x_3,e7),mix(v7,v8,a7)*step(e7,x_3)*step(x_3,e8))))))));}vec4 warm(float x_43){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.13;const vec4 v1=vec4(0.6745098039215687,0,0.7333333333333333,1);const float e2=0.25;const vec4 v2=vec4(0.8588235294117647,0,0.6666666666666666,1);const float e3=0.38;const vec4 v3=vec4(1,0,0.5098039215686274,1);const float e4=0.5;const vec4 v4=vec4(1,0.24705882352941178,0.2901960784313726,1);const float e5=0.63;const vec4 v5=vec4(1,0.4823529411764706,0,1);const float e6=0.75;const vec4 v6=vec4(0.9176470588235294,0.6901960784313725,0,1);const float e7=0.88;const vec4 v7=vec4(0.7450980392156863,0.8941176470588236,0,1);const float e8=1.0;const vec4 v8=vec4(0.5764705882352941,1,0,1);float a0=smoothstep(e0,e1,x_43);float a1=smoothstep(e1,e2,x_43);float a2=smoothstep(e2,e3,x_43);float a3=smoothstep(e3,e4,x_43);float a4=smoothstep(e4,e5,x_43);float a5=smoothstep(e5,e6,x_43);float a6=smoothstep(e6,e7,x_43);float a7=smoothstep(e7,e8,x_43);return max(mix(v0,v1,a0)*step(e0,x_43)*step(x_43,e1),max(mix(v1,v2,a1)*step(e1,x_43)*step(x_43,e2),max(mix(v2,v3,a2)*step(e2,x_43)*step(x_43,e3),max(mix(v3,v4,a3)*step(e3,x_43)*step(x_43,e4),max(mix(v4,v5,a4)*step(e4,x_43)*step(x_43,e5),max(mix(v5,v6,a5)*step(e5,x_43)*step(x_43,e6),max(mix(v6,v7,a6)*step(e6,x_43)*step(x_43,e7),mix(v7,v8,a7)*step(e7,x_43)*step(x_43,e8))))))));}vec4 rainbow_soft_1310269270(float x_14){const float e0=0.0;const vec4 v0=vec4(0.49019607843137253,0,0.7019607843137254,1);const float e1=0.1;const vec4 v1=vec4(0.7803921568627451,0,0.7058823529411765,1);const float e2=0.2;const vec4 v2=vec4(1,0,0.4745098039215686,1);const float e3=0.3;const vec4 v3=vec4(1,0.4235294117647059,0,1);const float e4=0.4;const vec4 v4=vec4(0.8705882352941177,0.7607843137254902,0,1);const float e5=0.5;const vec4 v5=vec4(0.5882352941176471,1,0,1);const float e6=0.6;const vec4 v6=vec4(0,1,0.21568627450980393,1);const float e7=0.7;const vec4 v7=vec4(0,0.9647058823529412,0.5882352941176471,1);const float e8=0.8;const vec4 v8=vec4(0.19607843137254902,0.6549019607843137,0.8705882352941177,1);const float e9=0.9;const vec4 v9=vec4(0.403921568627451,0.2,0.9215686274509803,1);const float e10=1.0;const vec4 v10=vec4(0.48627450980392156,0,0.7294117647058823,1);float a0=smoothstep(e0,e1,x_14);float a1=smoothstep(e1,e2,x_14);float a2=smoothstep(e2,e3,x_14);float a3=smoothstep(e3,e4,x_14);float a4=smoothstep(e4,e5,x_14);float a5=smoothstep(e5,e6,x_14);float a6=smoothstep(e6,e7,x_14);float a7=smoothstep(e7,e8,x_14);float a8=smoothstep(e8,e9,x_14);float a9=smoothstep(e9,e10,x_14);return max(mix(v0,v1,a0)*step(e0,x_14)*step(x_14,e1),max(mix(v1,v2,a1)*step(e1,x_14)*step(x_14,e2),max(mix(v2,v3,a2)*step(e2,x_14)*step(x_14,e3),max(mix(v3,v4,a3)*step(e3,x_14)*step(x_14,e4),max(mix(v4,v5,a4)*step(e4,x_14)*step(x_14,e5),max(mix(v5,v6,a5)*step(e5,x_14)*step(x_14,e6),max(mix(v6,v7,a6)*step(e6,x_14)*step(x_14,e7),max(mix(v7,v8,a7)*step(e7,x_14)*step(x_14,e8),max(mix(v8,v9,a8)*step(e8,x_14)*step(x_14,e9),mix(v9,v10,a9)*step(e9,x_14)*step(x_14,e10))))))))));}vec4 bathymetry(float x_36){const float e0=0.0;const vec4 v0=vec4(0.1568627450980392,0.10196078431372549,0.17254901960784313,1);const float e1=0.13;const vec4 v1=vec4(0.23137254901960785,0.19215686274509805,0.35294117647058826,1);const float e2=0.25;const vec4 v2=vec4(0.25098039215686274,0.2980392156862745,0.5450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.24705882352941178,0.43137254901960786,0.592156862745098,1);const float e4=0.5;const vec4 v4=vec4(0.2823529411764706,0.5568627450980392,0.6196078431372549,1);const float e5=0.63;const vec4 v5=vec4(0.3333333333333333,0.6823529411764706,0.6392156862745098,1);const float e6=0.75;const vec4 v6=vec4(0.47058823529411764,0.807843137254902,0.6392156862745098,1);const float e7=0.88;const vec4 v7=vec4(0.7333333333333333,0.9019607843137255,0.6745098039215687,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.996078431372549,0.8,1);float a0=smoothstep(e0,e1,x_36);float a1=smoothstep(e1,e2,x_36);float a2=smoothstep(e2,e3,x_36);float a3=smoothstep(e3,e4,x_36);float a4=smoothstep(e4,e5,x_36);float a5=smoothstep(e5,e6,x_36);float a6=smoothstep(e6,e7,x_36);float a7=smoothstep(e7,e8,x_36);return max(mix(v0,v1,a0)*step(e0,x_36)*step(x_36,e1),max(mix(v1,v2,a1)*step(e1,x_36)*step(x_36,e2),max(mix(v2,v3,a2)*step(e2,x_36)*step(x_36,e3),max(mix(v3,v4,a3)*step(e3,x_36)*step(x_36,e4),max(mix(v4,v5,a4)*step(e4,x_36)*step(x_36,e5),max(mix(v5,v6,a5)*step(e5,x_36)*step(x_36,e6),max(mix(v6,v7,a6)*step(e6,x_36)*step(x_36,e7),mix(v7,v8,a7)*step(e7,x_36)*step(x_36,e8))))))));}vec4 cdom(float x_7){const float e0=0.0;const vec4 v0=vec4(0.1843137254901961,0.058823529411764705,0.24313725490196078,1);const float e1=0.13;const vec4 v1=vec4(0.3411764705882353,0.09019607843137255,0.33725490196078434,1);const float e2=0.25;const vec4 v2=vec4(0.5098039215686274,0.10980392156862745,0.38823529411764707,1);const float e3=0.38;const vec4 v3=vec4(0.6705882352941176,0.1607843137254902,0.3764705882352941,1);const float e4=0.5;const vec4 v4=vec4(0.807843137254902,0.2627450980392157,0.33725490196078434,1);const float e5=0.63;const vec4 v5=vec4(0.9019607843137255,0.41568627450980394,0.32941176470588235,1);const float e6=0.75;const vec4 v6=vec4(0.9490196078431372,0.5843137254901961,0.403921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.7568627450980392,0.5294117647058824,1);const float e8=1.0;const vec4 v8=vec4(0.996078431372549,0.9294117647058824,0.6901960784313725,1);float a0=smoothstep(e0,e1,x_7);float a1=smoothstep(e1,e2,x_7);float a2=smoothstep(e2,e3,x_7);float a3=smoothstep(e3,e4,x_7);float a4=smoothstep(e4,e5,x_7);float a5=smoothstep(e5,e6,x_7);float a6=smoothstep(e6,e7,x_7);float a7=smoothstep(e7,e8,x_7);return max(mix(v0,v1,a0)*step(e0,x_7)*step(x_7,e1),max(mix(v1,v2,a1)*step(e1,x_7)*step(x_7,e2),max(mix(v2,v3,a2)*step(e2,x_7)*step(x_7,e3),max(mix(v3,v4,a3)*step(e3,x_7)*step(x_7,e4),max(mix(v4,v5,a4)*step(e4,x_7)*step(x_7,e5),max(mix(v5,v6,a5)*step(e5,x_7)*step(x_7,e6),max(mix(v6,v7,a6)*step(e6,x_7)*step(x_7,e7),mix(v7,v8,a7)*step(e7,x_7)*step(x_7,e8))))))));}vec4 chlorophyll(float x_6){const float e0=0.0;const vec4 v0=vec4(0.07058823529411765,0.1411764705882353,0.0784313725490196,1);const float e1=0.13;const vec4 v1=vec4(0.09803921568627451,0.24705882352941178,0.1607843137254902,1);const float e2=0.25;const vec4 v2=vec4(0.09411764705882353,0.3568627450980392,0.23137254901960785,1);const float e3=0.38;const vec4 v3=vec4(0.050980392156862744,0.4666666666666667,0.2823529411764706,1);const float e4=0.5;const vec4 v4=vec4(0.07058823529411765,0.5803921568627451,0.3137254901960784,1);const float e5=0.63;const vec4 v5=vec4(0.3137254901960784,0.6784313725490196,0.34901960784313724,1);const float e6=0.75;const vec4 v6=vec4(0.5176470588235295,0.7686274509803922,0.47843137254901963,1);const float e7=0.88;const vec4 v7=vec4(0.6862745098039216,0.8666666666666667,0.6352941176470588,1);const float e8=1.0;const vec4 v8=vec4(0.8431372549019608,0.9764705882352941,0.8156862745098039,1);float a0=smoothstep(e0,e1,x_6);float a1=smoothstep(e1,e2,x_6);float a2=smoothstep(e2,e3,x_6);float a3=smoothstep(e3,e4,x_6);float a4=smoothstep(e4,e5,x_6);float a5=smoothstep(e5,e6,x_6);float a6=smoothstep(e6,e7,x_6);float a7=smoothstep(e7,e8,x_6);return max(mix(v0,v1,a0)*step(e0,x_6)*step(x_6,e1),max(mix(v1,v2,a1)*step(e1,x_6)*step(x_6,e2),max(mix(v2,v3,a2)*step(e2,x_6)*step(x_6,e3),max(mix(v3,v4,a3)*step(e3,x_6)*step(x_6,e4),max(mix(v4,v5,a4)*step(e4,x_6)*step(x_6,e5),max(mix(v5,v6,a5)*step(e5,x_6)*step(x_6,e6),max(mix(v6,v7,a6)*step(e6,x_6)*step(x_6,e7),mix(v7,v8,a7)*step(e7,x_6)*step(x_6,e8))))))));}vec4 density(float x_19){const float e0=0.0;const vec4 v0=vec4(0.21176470588235294,0.054901960784313725,0.1411764705882353,1);const float e1=0.13;const vec4 v1=vec4(0.34901960784313724,0.09019607843137255,0.3137254901960784,1);const float e2=0.25;const vec4 v2=vec4(0.43137254901960786,0.17647058823529413,0.5176470588235295,1);const float e3=0.38;const vec4 v3=vec4(0.47058823529411764,0.30196078431372547,0.6980392156862745,1);const float e4=0.5;const vec4 v4=vec4(0.47058823529411764,0.44313725490196076,0.8352941176470589,1);const float e5=0.63;const vec4 v5=vec4(0.45098039215686275,0.592156862745098,0.8941176470588236,1);const float e6=0.75;const vec4 v6=vec4(0.5254901960784314,0.7254901960784313,0.8901960784313725,1);const float e7=0.88;const vec4 v7=vec4(0.6941176470588235,0.8392156862745098,0.8901960784313725,1);const float e8=1.0;const vec4 v8=vec4(0.9019607843137255,0.9450980392156862,0.9450980392156862,1);float a0=smoothstep(e0,e1,x_19);float a1=smoothstep(e1,e2,x_19);float a2=smoothstep(e2,e3,x_19);float a3=smoothstep(e3,e4,x_19);float a4=smoothstep(e4,e5,x_19);float a5=smoothstep(e5,e6,x_19);float a6=smoothstep(e6,e7,x_19);float a7=smoothstep(e7,e8,x_19);return max(mix(v0,v1,a0)*step(e0,x_19)*step(x_19,e1),max(mix(v1,v2,a1)*step(e1,x_19)*step(x_19,e2),max(mix(v2,v3,a2)*step(e2,x_19)*step(x_19,e3),max(mix(v3,v4,a3)*step(e3,x_19)*step(x_19,e4),max(mix(v4,v5,a4)*step(e4,x_19)*step(x_19,e5),max(mix(v5,v6,a5)*step(e5,x_19)*step(x_19,e6),max(mix(v6,v7,a6)*step(e6,x_19)*step(x_19,e7),mix(v7,v8,a7)*step(e7,x_19)*step(x_19,e8))))))));}vec4 freesurface_blue_3154355989(float x_35){const float e0=0.0;const vec4 v0=vec4(0.11764705882352941,0.01568627450980392,0.43137254901960786,1);const float e1=0.13;const vec4 v1=vec4(0.1843137254901961,0.054901960784313725,0.6901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.1607843137254902,0.17647058823529413,0.9254901960784314,1);const float e3=0.38;const vec4 v3=vec4(0.09803921568627451,0.38823529411764707,0.8313725490196079,1);const float e4=0.5;const vec4 v4=vec4(0.26666666666666666,0.5137254901960784,0.7843137254901961,1);const float e5=0.63;const vec4 v5=vec4(0.4470588235294118,0.611764705882353,0.7725490196078432,1);const float e6=0.75;const vec4 v6=vec4(0.615686274509804,0.7098039215686275,0.796078431372549,1);const float e7=0.88;const vec4 v7=vec4(0.7843137254901961,0.8156862745098039,0.8470588235294118,1);const float e8=1.0;const vec4 v8=vec4(0.9450980392156862,0.9294117647058824,0.9254901960784314,1);float a0=smoothstep(e0,e1,x_35);float a1=smoothstep(e1,e2,x_35);float a2=smoothstep(e2,e3,x_35);float a3=smoothstep(e3,e4,x_35);float a4=smoothstep(e4,e5,x_35);float a5=smoothstep(e5,e6,x_35);float a6=smoothstep(e6,e7,x_35);float a7=smoothstep(e7,e8,x_35);return max(mix(v0,v1,a0)*step(e0,x_35)*step(x_35,e1),max(mix(v1,v2,a1)*step(e1,x_35)*step(x_35,e2),max(mix(v2,v3,a2)*step(e2,x_35)*step(x_35,e3),max(mix(v3,v4,a3)*step(e3,x_35)*step(x_35,e4),max(mix(v4,v5,a4)*step(e4,x_35)*step(x_35,e5),max(mix(v5,v6,a5)*step(e5,x_35)*step(x_35,e6),max(mix(v6,v7,a6)*step(e6,x_35)*step(x_35,e7),mix(v7,v8,a7)*step(e7,x_35)*step(x_35,e8))))))));}vec4 freesurface_red_1679163293(float x_20){const float e0=0.0;const vec4 v0=vec4(0.23529411764705882,0.03529411764705882,0.07058823529411765,1);const float e1=0.13;const vec4 v1=vec4(0.39215686274509803,0.06666666666666667,0.10588235294117647,1);const float e2=0.25;const vec4 v2=vec4(0.5568627450980392,0.0784313725490196,0.11372549019607843,1);const float e3=0.38;const vec4 v3=vec4(0.6941176470588235,0.16862745098039217,0.10588235294117647,1);const float e4=0.5;const vec4 v4=vec4(0.7529411764705882,0.3411764705882353,0.24705882352941178,1);const float e5=0.63;const vec4 v5=vec4(0.803921568627451,0.49019607843137253,0.4117647058823529,1);const float e6=0.75;const vec4 v6=vec4(0.8470588235294118,0.6352941176470588,0.5803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.8901960784313725,0.7803921568627451,0.7568627450980392,1);const float e8=1.0;const vec4 v8=vec4(0.9450980392156862,0.9294117647058824,0.9254901960784314,1);float a0=smoothstep(e0,e1,x_20);float a1=smoothstep(e1,e2,x_20);float a2=smoothstep(e2,e3,x_20);float a3=smoothstep(e3,e4,x_20);float a4=smoothstep(e4,e5,x_20);float a5=smoothstep(e5,e6,x_20);float a6=smoothstep(e6,e7,x_20);float a7=smoothstep(e7,e8,x_20);return max(mix(v0,v1,a0)*step(e0,x_20)*step(x_20,e1),max(mix(v1,v2,a1)*step(e1,x_20)*step(x_20,e2),max(mix(v2,v3,a2)*step(e2,x_20)*step(x_20,e3),max(mix(v3,v4,a3)*step(e3,x_20)*step(x_20,e4),max(mix(v4,v5,a4)*step(e4,x_20)*step(x_20,e5),max(mix(v5,v6,a5)*step(e5,x_20)*step(x_20,e6),max(mix(v6,v7,a6)*step(e6,x_20)*step(x_20,e7),mix(v7,v8,a7)*step(e7,x_20)*step(x_20,e8))))))));}vec4 oxygen(float x_11){const float e0=0.0;const vec4 v0=vec4(0.25098039215686274,0.0196078431372549,0.0196078431372549,1);const float e1=0.13;const vec4 v1=vec4(0.41568627450980394,0.023529411764705882,0.058823529411764705,1);const float e2=0.25;const vec4 v2=vec4(0.5647058823529412,0.10196078431372549,0.027450980392156862,1);const float e3=0.38;const vec4 v3=vec4(0.6588235294117647,0.25098039215686274,0.011764705882352941,1);const float e4=0.5;const vec4 v4=vec4(0.7372549019607844,0.39215686274509803,0.01568627450980392,1);const float e5=0.63;const vec4 v5=vec4(0.807843137254902,0.5333333333333333,0.043137254901960784,1);const float e6=0.75;const vec4 v6=vec4(0.8627450980392157,0.6823529411764706,0.09803921568627451,1);const float e7=0.88;const vec4 v7=vec4(0.9058823529411765,0.8431372549019608,0.17254901960784313,1);const float e8=1.0;const vec4 v8=vec4(0.9725490196078431,0.996078431372549,0.4117647058823529,1);float a0=smoothstep(e0,e1,x_11);float a1=smoothstep(e1,e2,x_11);float a2=smoothstep(e2,e3,x_11);float a3=smoothstep(e3,e4,x_11);float a4=smoothstep(e4,e5,x_11);float a5=smoothstep(e5,e6,x_11);float a6=smoothstep(e6,e7,x_11);float a7=smoothstep(e7,e8,x_11);return max(mix(v0,v1,a0)*step(e0,x_11)*step(x_11,e1),max(mix(v1,v2,a1)*step(e1,x_11)*step(x_11,e2),max(mix(v2,v3,a2)*step(e2,x_11)*step(x_11,e3),max(mix(v3,v4,a3)*step(e3,x_11)*step(x_11,e4),max(mix(v4,v5,a4)*step(e4,x_11)*step(x_11,e5),max(mix(v5,v6,a5)*step(e5,x_11)*step(x_11,e6),max(mix(v6,v7,a6)*step(e6,x_11)*step(x_11,e7),mix(v7,v8,a7)*step(e7,x_11)*step(x_11,e8))))))));}vec4 par(float x_28){const float e0=0.0;const vec4 v0=vec4(0.2,0.0784313725490196,0.09411764705882353,1);const float e1=0.13;const vec4 v1=vec4(0.35294117647058826,0.12549019607843137,0.13725490196078433,1);const float e2=0.25;const vec4 v2=vec4(0.5058823529411764,0.17254901960784313,0.13333333333333333,1);const float e3=0.38;const vec4 v3=vec4(0.6235294117647059,0.26666666666666666,0.09803921568627451,1);const float e4=0.5;const vec4 v4=vec4(0.7137254901960784,0.38823529411764707,0.07450980392156863,1);const float e5=0.63;const vec4 v5=vec4(0.7803921568627451,0.5254901960784314,0.08627450980392157,1);const float e6=0.75;const vec4 v6=vec4(0.8313725490196079,0.6705882352941176,0.13725490196078433,1);const float e7=0.88;const vec4 v7=vec4(0.8666666666666667,0.8235294117647058,0.21176470588235294,1);const float e8=1.0;const vec4 v8=vec4(0.8823529411764706,0.9921568627450981,0.29411764705882354,1);float a0=smoothstep(e0,e1,x_28);float a1=smoothstep(e1,e2,x_28);float a2=smoothstep(e2,e3,x_28);float a3=smoothstep(e3,e4,x_28);float a4=smoothstep(e4,e5,x_28);float a5=smoothstep(e5,e6,x_28);float a6=smoothstep(e6,e7,x_28);float a7=smoothstep(e7,e8,x_28);return max(mix(v0,v1,a0)*step(e0,x_28)*step(x_28,e1),max(mix(v1,v2,a1)*step(e1,x_28)*step(x_28,e2),max(mix(v2,v3,a2)*step(e2,x_28)*step(x_28,e3),max(mix(v3,v4,a3)*step(e3,x_28)*step(x_28,e4),max(mix(v4,v5,a4)*step(e4,x_28)*step(x_28,e5),max(mix(v5,v6,a5)*step(e5,x_28)*step(x_28,e6),max(mix(v6,v7,a6)*step(e6,x_28)*step(x_28,e7),mix(v7,v8,a7)*step(e7,x_28)*step(x_28,e8))))))));}vec4 phase(float x_39){const float e0=0.0;const vec4 v0=vec4(0.5686274509803921,0.4117647058823529,0.07058823529411765,1);const float e1=0.13;const vec4 v1=vec4(0.7215686274509804,0.2784313725490196,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.7294117647058823,0.22745098039215686,0.45098039215686275,1);const float e3=0.38;const vec4 v3=vec4(0.6274509803921569,0.2784313725490196,0.7254901960784313,1);const float e4=0.5;const vec4 v4=vec4(0.43137254901960786,0.3803921568627451,0.8549019607843137,1);const float e5=0.63;const vec4 v5=vec4(0.19607843137254902,0.4823529411764706,0.6431372549019608,1);const float e6=0.75;const vec4 v6=vec4(0.12156862745098039,0.5137254901960784,0.43137254901960786,1);const float e7=0.88;const vec4 v7=vec4(0.30196078431372547,0.5058823529411764,0.13333333333333333,1);const float e8=1.0;const vec4 v8=vec4(0.5686274509803921,0.4117647058823529,0.07058823529411765,1);float a0=smoothstep(e0,e1,x_39);float a1=smoothstep(e1,e2,x_39);float a2=smoothstep(e2,e3,x_39);float a3=smoothstep(e3,e4,x_39);float a4=smoothstep(e4,e5,x_39);float a5=smoothstep(e5,e6,x_39);float a6=smoothstep(e6,e7,x_39);float a7=smoothstep(e7,e8,x_39);return max(mix(v0,v1,a0)*step(e0,x_39)*step(x_39,e1),max(mix(v1,v2,a1)*step(e1,x_39)*step(x_39,e2),max(mix(v2,v3,a2)*step(e2,x_39)*step(x_39,e3),max(mix(v3,v4,a3)*step(e3,x_39)*step(x_39,e4),max(mix(v4,v5,a4)*step(e4,x_39)*step(x_39,e5),max(mix(v5,v6,a5)*step(e5,x_39)*step(x_39,e6),max(mix(v6,v7,a6)*step(e6,x_39)*step(x_39,e7),mix(v7,v8,a7)*step(e7,x_39)*step(x_39,e8))))))));}vec4 salinity(float x_26){const float e0=0.0;const vec4 v0=vec4(0.16470588235294117,0.09411764705882353,0.4235294117647059,1);const float e1=0.13;const vec4 v1=vec4(0.12941176470588237,0.19607843137254902,0.6352941176470588,1);const float e2=0.25;const vec4 v2=vec4(0.058823529411764705,0.35294117647058826,0.5686274509803921,1);const float e3=0.38;const vec4 v3=vec4(0.1568627450980392,0.4627450980392157,0.5372549019607843,1);const float e4=0.5;const vec4 v4=vec4(0.23137254901960785,0.5725490196078431,0.5294117647058824,1);const float e5=0.63;const vec4 v5=vec4(0.30980392156862746,0.6862745098039216,0.49411764705882355,1);const float e6=0.75;const vec4 v6=vec4(0.47058823529411764,0.796078431372549,0.40784313725490196,1);const float e7=0.88;const vec4 v7=vec4(0.7568627450980392,0.8666666666666667,0.39215686274509803,1);const float e8=1.0;const vec4 v8=vec4(0.9921568627450981,0.9372549019607843,0.6039215686274509,1);float a0=smoothstep(e0,e1,x_26);float a1=smoothstep(e1,e2,x_26);float a2=smoothstep(e2,e3,x_26);float a3=smoothstep(e3,e4,x_26);float a4=smoothstep(e4,e5,x_26);float a5=smoothstep(e5,e6,x_26);float a6=smoothstep(e6,e7,x_26);float a7=smoothstep(e7,e8,x_26);return max(mix(v0,v1,a0)*step(e0,x_26)*step(x_26,e1),max(mix(v1,v2,a1)*step(e1,x_26)*step(x_26,e2),max(mix(v2,v3,a2)*step(e2,x_26)*step(x_26,e3),max(mix(v3,v4,a3)*step(e3,x_26)*step(x_26,e4),max(mix(v4,v5,a4)*step(e4,x_26)*step(x_26,e5),max(mix(v5,v6,a5)*step(e5,x_26)*step(x_26,e6),max(mix(v6,v7,a6)*step(e6,x_26)*step(x_26,e7),mix(v7,v8,a7)*step(e7,x_26)*step(x_26,e8))))))));}vec4 temperature(float x_8){const float e0=0.0;const vec4 v0=vec4(0.01568627450980392,0.13725490196078433,0.2,1);const float e1=0.13;const vec4 v1=vec4(0.09019607843137255,0.2,0.47843137254901963,1);const float e2=0.25;const vec4 v2=vec4(0.3333333333333333,0.23137254901960785,0.615686274509804,1);const float e3=0.38;const vec4 v3=vec4(0.5058823529411764,0.30980392156862746,0.5607843137254902,1);const float e4=0.5;const vec4 v4=vec4(0.6862745098039216,0.37254901960784315,0.5098039215686274,1);const float e5=0.63;const vec4 v5=vec4(0.8705882352941177,0.4392156862745098,0.396078431372549,1);const float e6=0.75;const vec4 v6=vec4(0.9764705882352941,0.5725490196078431,0.25882352941176473,1);const float e7=0.88;const vec4 v7=vec4(0.9764705882352941,0.7686274509803922,0.2549019607843137,1);const float e8=1.0;const vec4 v8=vec4(0.9098039215686274,0.9803921568627451,0.3568627450980392,1);float a0=smoothstep(e0,e1,x_8);float a1=smoothstep(e1,e2,x_8);float a2=smoothstep(e2,e3,x_8);float a3=smoothstep(e3,e4,x_8);float a4=smoothstep(e4,e5,x_8);float a5=smoothstep(e5,e6,x_8);float a6=smoothstep(e6,e7,x_8);float a7=smoothstep(e7,e8,x_8);return max(mix(v0,v1,a0)*step(e0,x_8)*step(x_8,e1),max(mix(v1,v2,a1)*step(e1,x_8)*step(x_8,e2),max(mix(v2,v3,a2)*step(e2,x_8)*step(x_8,e3),max(mix(v3,v4,a3)*step(e3,x_8)*step(x_8,e4),max(mix(v4,v5,a4)*step(e4,x_8)*step(x_8,e5),max(mix(v5,v6,a5)*step(e5,x_8)*step(x_8,e6),max(mix(v6,v7,a6)*step(e6,x_8)*step(x_8,e7),mix(v7,v8,a7)*step(e7,x_8)*step(x_8,e8))))))));}vec4 turbidity(float x_40){const float e0=0.0;const vec4 v0=vec4(0.13333333333333333,0.12156862745098039,0.10588235294117647,1);const float e1=0.13;const vec4 v1=vec4(0.2549019607843137,0.19607843137254902,0.1607843137254902,1);const float e2=0.25;const vec4 v2=vec4(0.3843137254901961,0.27058823529411763,0.20392156862745098,1);const float e3=0.38;const vec4 v3=vec4(0.5137254901960784,0.34901960784313724,0.2235294117647059,1);const float e4=0.5;const vec4 v4=vec4(0.6313725490196078,0.4392156862745098,0.23137254901960785,1);const float e5=0.63;const vec4 v5=vec4(0.7254901960784313,0.5490196078431373,0.25882352941176473,1);const float e6=0.75;const vec4 v6=vec4(0.792156862745098,0.6823529411764706,0.34509803921568627,1);const float e7=0.88;const vec4 v7=vec4(0.8470588235294118,0.8196078431372549,0.49411764705882355,1);const float e8=1.0;const vec4 v8=vec4(0.9137254901960784,0.9647058823529412,0.6705882352941176,1);float a0=smoothstep(e0,e1,x_40);float a1=smoothstep(e1,e2,x_40);float a2=smoothstep(e2,e3,x_40);float a3=smoothstep(e3,e4,x_40);float a4=smoothstep(e4,e5,x_40);float a5=smoothstep(e5,e6,x_40);float a6=smoothstep(e6,e7,x_40);float a7=smoothstep(e7,e8,x_40);return max(mix(v0,v1,a0)*step(e0,x_40)*step(x_40,e1),max(mix(v1,v2,a1)*step(e1,x_40)*step(x_40,e2),max(mix(v2,v3,a2)*step(e2,x_40)*step(x_40,e3),max(mix(v3,v4,a3)*step(e3,x_40)*step(x_40,e4),max(mix(v4,v5,a4)*step(e4,x_40)*step(x_40,e5),max(mix(v5,v6,a5)*step(e5,x_40)*step(x_40,e6),max(mix(v6,v7,a6)*step(e6,x_40)*step(x_40,e7),mix(v7,v8,a7)*step(e7,x_40)*step(x_40,e8))))))));}vec4 velocity_blue_297387650(float x_2){const float e0=0.0;const vec4 v0=vec4(0.06666666666666667,0.12549019607843137,0.25098039215686274,1);const float e1=0.13;const vec4 v1=vec4(0.13725490196078433,0.20392156862745098,0.4549019607843137,1);const float e2=0.25;const vec4 v2=vec4(0.11372549019607843,0.3176470588235294,0.611764705882353,1);const float e3=0.38;const vec4 v3=vec4(0.12156862745098039,0.44313725490196076,0.6352941176470588,1);const float e4=0.5;const vec4 v4=vec4(0.19607843137254902,0.5647058823529412,0.6627450980392157,1);const float e5=0.63;const vec4 v5=vec4(0.3411764705882353,0.6784313725490196,0.6901960784313725,1);const float e6=0.75;const vec4 v6=vec4(0.5843137254901961,0.7686274509803922,0.7411764705882353,1);const float e7=0.88;const vec4 v7=vec4(0.796078431372549,0.8666666666666667,0.8274509803921568,1);const float e8=1.0;const vec4 v8=vec4(0.996078431372549,0.984313725490196,0.9019607843137255,1);float a0=smoothstep(e0,e1,x_2);float a1=smoothstep(e1,e2,x_2);float a2=smoothstep(e2,e3,x_2);float a3=smoothstep(e3,e4,x_2);float a4=smoothstep(e4,e5,x_2);float a5=smoothstep(e5,e6,x_2);float a6=smoothstep(e6,e7,x_2);float a7=smoothstep(e7,e8,x_2);return max(mix(v0,v1,a0)*step(e0,x_2)*step(x_2,e1),max(mix(v1,v2,a1)*step(e1,x_2)*step(x_2,e2),max(mix(v2,v3,a2)*step(e2,x_2)*step(x_2,e3),max(mix(v3,v4,a3)*step(e3,x_2)*step(x_2,e4),max(mix(v4,v5,a4)*step(e4,x_2)*step(x_2,e5),max(mix(v5,v6,a5)*step(e5,x_2)*step(x_2,e6),max(mix(v6,v7,a6)*step(e6,x_2)*step(x_2,e7),mix(v7,v8,a7)*step(e7,x_2)*step(x_2,e8))))))));}vec4 velocity_green_2558432129(float x_27){const float e0=0.0;const vec4 v0=vec4(0.09019607843137255,0.13725490196078433,0.07450980392156863,1);const float e1=0.13;const vec4 v1=vec4(0.09411764705882353,0.25098039215686274,0.14901960784313725,1);const float e2=0.25;const vec4 v2=vec4(0.043137254901960784,0.37254901960784315,0.17647058823529413,1);const float e3=0.38;const vec4 v3=vec4(0.15294117647058825,0.4823529411764706,0.13725490196078433,1);const float e4=0.5;const vec4 v4=vec4(0.37254901960784315,0.5725490196078431,0.047058823529411764,1);const float e5=0.63;const vec4 v5=vec4(0.596078431372549,0.6470588235294118,0.07058823529411765,1);const float e6=0.75;const vec4 v6=vec4(0.788235294117647,0.7294117647058823,0.27058823529411763,1);const float e7=0.88;const vec4 v7=vec4(0.9137254901960784,0.8470588235294118,0.5372549019607843,1);const float e8=1.0;const vec4 v8=vec4(1,0.9921568627450981,0.803921568627451,1);float a0=smoothstep(e0,e1,x_27);float a1=smoothstep(e1,e2,x_27);float a2=smoothstep(e2,e3,x_27);float a3=smoothstep(e3,e4,x_27);float a4=smoothstep(e4,e5,x_27);float a5=smoothstep(e5,e6,x_27);float a6=smoothstep(e6,e7,x_27);float a7=smoothstep(e7,e8,x_27);return max(mix(v0,v1,a0)*step(e0,x_27)*step(x_27,e1),max(mix(v1,v2,a1)*step(e1,x_27)*step(x_27,e2),max(mix(v2,v3,a2)*step(e2,x_27)*step(x_27,e3),max(mix(v3,v4,a3)*step(e3,x_27)*step(x_27,e4),max(mix(v4,v5,a4)*step(e4,x_27)*step(x_27,e5),max(mix(v5,v6,a5)*step(e5,x_27)*step(x_27,e6),max(mix(v6,v7,a6)*step(e6,x_27)*step(x_27,e7),mix(v7,v8,a7)*step(e7,x_27)*step(x_27,e8))))))));}vec4 cubehelix(float x_37){const float e0=0.0;const vec4 v0=vec4(0,0,0,1);const float e1=0.07;const vec4 v1=vec4(0.08627450980392157,0.0196078431372549,0.23137254901960785,1);const float e2=0.13;const vec4 v2=vec4(0.23529411764705882,0.01568627450980392,0.4117647058823529,1);const float e3=0.2;const vec4 v3=vec4(0.42745098039215684,0.00392156862745098,0.5294117647058824,1);const float e4=0.27;const vec4 v4=vec4(0.6313725490196078,0,0.5764705882352941,1);const float e5=0.33;const vec4 v5=vec4(0.8235294117647058,0.00784313725490196,0.5568627450980392,1);const float e6=0.4;const vec4 v6=vec4(0.984313725490196,0.043137254901960784,0.4823529411764706,1);const float e7=0.47;const vec4 v7=vec4(1,0.11372549019607843,0.3803921568627451,1);const float e8=0.53;const vec4 v8=vec4(1,0.21176470588235294,0.27058823529411763,1);const float e9=0.6;const vec4 v9=vec4(1,0.3333333333333333,0.1803921568627451,1);const float e10=0.67;const vec4 v10=vec4(1,0.47058823529411764,0.13333333333333333,1);const float e11=0.73;const vec4 v11=vec4(1,0.615686274509804,0.1450980392156863,1);const float e12=0.8;const vec4 v12=vec4(0.9450980392156862,0.7490196078431373,0.2235294117647059,1);const float e13=0.87;const vec4 v13=vec4(0.8784313725490196,0.8627450980392157,0.36470588235294116,1);const float e14=0.93;const vec4 v14=vec4(0.8549019607843137,0.9450980392156862,0.5568627450980392,1);const float e15=1.0;const vec4 v15=vec4(0.8901960784313725,0.9921568627450981,0.7764705882352941,1);float a0=smoothstep(e0,e1,x_37);float a1=smoothstep(e1,e2,x_37);float a2=smoothstep(e2,e3,x_37);float a3=smoothstep(e3,e4,x_37);float a4=smoothstep(e4,e5,x_37);float a5=smoothstep(e5,e6,x_37);float a6=smoothstep(e6,e7,x_37);float a7=smoothstep(e7,e8,x_37);float a8=smoothstep(e8,e9,x_37);float a9=smoothstep(e9,e10,x_37);float a10=smoothstep(e10,e11,x_37);float a11=smoothstep(e11,e12,x_37);float a12=smoothstep(e12,e13,x_37);float a13=smoothstep(e13,e14,x_37);float a14=smoothstep(e14,e15,x_37);return max(mix(v0,v1,a0)*step(e0,x_37)*step(x_37,e1),max(mix(v1,v2,a1)*step(e1,x_37)*step(x_37,e2),max(mix(v2,v3,a2)*step(e2,x_37)*step(x_37,e3),max(mix(v3,v4,a3)*step(e3,x_37)*step(x_37,e4),max(mix(v4,v5,a4)*step(e4,x_37)*step(x_37,e5),max(mix(v5,v6,a5)*step(e5,x_37)*step(x_37,e6),max(mix(v6,v7,a6)*step(e6,x_37)*step(x_37,e7),max(mix(v7,v8,a7)*step(e7,x_37)*step(x_37,e8),max(mix(v8,v9,a8)*step(e8,x_37)*step(x_37,e9),max(mix(v9,v10,a9)*step(e9,x_37)*step(x_37,e10),max(mix(v10,v11,a10)*step(e10,x_37)*step(x_37,e11),max(mix(v11,v12,a11)*step(e11,x_37)*step(x_37,e12),max(mix(v12,v13,a12)*step(e12,x_37)*step(x_37,e13),max(mix(v13,v14,a13)*step(e13,x_37)*step(x_37,e14),mix(v14,v15,a14)*step(e14,x_37)*step(x_37,e15)))))))))))))));}float apply_contrast_limits(float intensity,vec2 contrastLimits){float contrastLimitsAppliedToIntensity=(intensity-contrastLimits[0])/max(0.0005,(contrastLimits[1]-contrastLimits[0]));return max(0.,contrastLimitsAppliedToIntensity);}vec4 colormap(float intensity,float opacity){return vec4(COLORMAP_FUNCTION(min(1.,intensity)).xyz,opacity);}\"; // eslint-disable-line\n\nvar channels = {\n name: 'channel-intensity-module',\n fs\n};\n\nconst RENDERING_MODES_BLEND = {\n [RENDERING_MODES.MAX_INTENSITY_PROJECTION]: {\n _BEFORE_RENDER: `\\\n float maxVals[6] = float[6](-1.0, -1.0, -1.0, -1.0, -1.0, -1.0);\n `,\n _RENDER: `\\\n \n float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n\n for(int i = 0; i < 6; i++) {\n if(intensityArray[i] > maxVals[i]) {\n maxVals[i] = intensityArray[i];\n }\n }\n `,\n _AFTER_RENDER: `\\\n vec3 rgbCombo = vec3(0.0);\n for(int i = 0; i < 6; i++) {\n rgbCombo += max(0.0, min(1.0, maxVals[i])) * vec3(colors[i]);\n }\n color = vec4(rgbCombo, 1.0);\n `\n },\n [RENDERING_MODES.MIN_INTENSITY_PROJECTION]: {\n _BEFORE_RENDER: `\\\n float minVals[6] = float[6](1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0.);\n `,\n _RENDER: `\\\n \n float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n\n for(int i = 0; i < 6; i++) {\n if(intensityArray[i] < minVals[i]) {\n minVals[i] = intensityArray[i];\n }\n }\n `,\n _AFTER_RENDER: `\\\n vec3 rgbCombo = vec3(0.0);\n for(int i = 0; i < 6; i++) {\n rgbCombo += max(0.0, min(1.0, minVals[i])) * vec3(colors[i]);\n }\n color = vec4(rgbCombo, 1.0);\n `\n },\n [RENDERING_MODES.ADDITIVE]: {\n _BEFORE_RENDER: ``,\n _RENDER: `\\\n vec3 rgbCombo = vec3(0.0);\n vec3 hsvCombo = vec3(0.0);\n float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n float total = 0.0;\n for(int i = 0; i < 6; i++) {\n float intensityValue = intensityArray[i];\n rgbCombo += max(0.0, min(1.0, intensityValue)) * colors[i];\n total += intensityValue;\n }\n // Do not go past 1 in opacity.\n total = min(total, 1.0);\n vec4 val_color = vec4(rgbCombo, total);\n // Opacity correction\n val_color.a = 1.0 - pow(1.0 - val_color.a, 1.0);\n color.rgb += (1.0 - color.a) * val_color.a * val_color.rgb;\n color.a += (1.0 - color.a) * val_color.a;\n if (color.a >= 0.95) {\n break;\n }\n `,\n _AFTER_RENDER: ``\n }\n};\nconst RENDERING_MODES_COLORMAP = {\n [RENDERING_MODES.MAX_INTENSITY_PROJECTION]: {\n _BEFORE_RENDER: `\\\n float maxVals[6] = float[6](-1.0, -1.0, -1.0, -1.0, -1.0, -1.0);\n `,\n _RENDER: `\\\n \n float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n\n for(int i = 0; i < 6; i++) {\n if(intensityArray[i] > maxVals[i]) {\n maxVals[i] = intensityArray[i];\n }\n }\n `,\n _AFTER_RENDER: `\\\n float total = 0.0;\n for(int i = 0; i < 6; i++) {\n total += maxVals[i];\n }\n // Do not go past 1 in opacity/colormap value.\n total = min(total, 1.0);\n color = colormap(total, total);\n `\n },\n [RENDERING_MODES.MIN_INTENSITY_PROJECTION]: {\n _BEFORE_RENDER: `\\\n float minVals[6] = float[6](1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0.);\n `,\n _RENDER: `\\\n \n float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n\n for(int i = 0; i < 6; i++) {\n if(intensityArray[i] < minVals[i]) {\n minVals[i] = intensityArray[i];\n }\n }\n `,\n _AFTER_RENDER: `\\\n float total = 0.0;\n for(int i = 0; i < 6; i++) {\n total += minVals[i];\n }\n // Do not go past 1 in opacity/colormap value.\n total = min(total, 1.0);\n color = colormap(total, total);\n `\n },\n [RENDERING_MODES.ADDITIVE]: {\n _BEFORE_RENDER: ``,\n _RENDER: `\\\n float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5);\n\t\tfloat total = 0.0;\n\n\t\tfor(int i = 0; i < 6; i++) {\n\t\t\ttotal += intensityArray[i];\n\t\t}\n\t\t// Do not go past 1 in opacity/colormap value.\n\t\ttotal = min(total, 1.0);\n\n\t\tvec4 val_color = colormap(total, total);\n\n\t\t// Opacity correction\n\t\tval_color.a = 1.0 - pow(1.0 - val_color.a, 1.0);\n\t\tcolor.rgb += (1.0 - color.a) * val_color.a * val_color.rgb;\n\t\tcolor.a += (1.0 - color.a) * val_color.a;\n\t\tif (color.a >= 0.95) {\n\t\t\tbreak;\n\t\t}\n p += ray_dir * dt;\n `,\n _AFTER_RENDER: ``\n }\n};\n\n/* This is largely an adaptation of Will Usher's excellent blog post/code:\nhttps://github.com/Twinklebear/webgl-volume-raycaster\nWithout his app, this would have been exponentially more difficult to do, so we thank him dearly.\n\nThe major changes are:\n\n- Code has been adapted to the luma.gl/deck.gl framework instead of more-or-less pure WebGL.\n\n- We use a coordinate system that will allow overlays/other figures on our vertex shader/javascript via the `uniform mat4 scale` that matches raw pixel size multiplied by\nthe ratio of physical sizes (if present) to the world space, just like our 2D layers. Will implements everything in a unit cube (I think?) centered at the origin.\n\n- We use an OrbitView which is a similar camera to what Will has, but stops gimbal lock from happening\nby stopping full rotations whereas Will implements a camera that allows for full rotations without gimbal lock via quaternions.\nWe have an open issue for implementing this deck.gl: https://github.com/visgl/deck.gl/issues/5364\n\n- We have a multi-channel use case and have a few tweaks in the fragment shader to handle that.\n\n- We convert all of our data to Float32Array so we can use LINEAR sampling while also maintaing the dynamic range and integrity of the data.\n\n- Will uses a colormap via a sampled texture, which is a very good idea, but not something we are geared up for in 2D, so not something we will do in 3D either: \nhttps://github.com/visgl/luma.gl/issues/1415\n\n- We allow for multiple rendering settings (Max/Min Int. Proj., Additive, etc.)\n\n- We allow for arbtirary affine transformations via deck.gl's modelMatrix prop and have updated the vertex shader accordingly.\nMore information about that is detailed in the comments there.\n*/\n\nconst CUBE_STRIP = [1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0];\nconst NUM_PLANES_DEFAULT = 1;\nconst defaultProps$1 = {\n pickable: false,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n channelData: {\n type: 'object',\n value: {},\n compare: true\n },\n colors: {\n type: 'array',\n value: [],\n compare: true\n },\n contrastLimits: {\n type: 'array',\n value: [],\n compare: true\n },\n dtype: {\n type: 'string',\n value: 'Uint8',\n compare: true\n },\n colormap: {\n type: 'string',\n value: '',\n compare: true\n },\n xSlice: {\n type: 'array',\n value: null,\n compare: true\n },\n ySlice: {\n type: 'array',\n value: null,\n compare: true\n },\n zSlice: {\n type: 'array',\n value: null,\n compare: true\n },\n clippingPlanes: {\n type: 'array',\n value: [],\n compare: true\n },\n renderingMode: {\n type: 'string',\n value: RENDERING_MODES.ADDITIVE,\n compare: true\n },\n resolutionMatrix: {\n type: 'object',\n value: new Matrix4(),\n compare: true\n }\n};\n\nfunction getRenderingAttrs() {\n const values = getDtypeValues('Float32');\n return { ...values,\n sampler: values.sampler.replace('2D', '3D'),\n cast: data => new Float32Array(data)\n };\n}\n\nfunction removeExtraColormapFunctionsFromShader(colormap) {\n // Always include viridis so shaders compile,\n // but otherwise we discard all other colormaps via a regex.\n // With all the colormaps, the shaders were too large\n // and crashed our computers when we loaded volumes too large.\n const discardColormaps = COLORMAPS.filter(i => i !== (colormap || 'viridis')).map(i => i.replace(/-/g, '_'));\n const discardRegex = new RegExp(`vec4 (${discardColormaps.join('(_([0-9]*))?|')})\\\\(float x_[0-9]+\\\\){([^}]+)}`, 'g');\n const channelsModules = { ...channels,\n fs: channels.fs.replace(discardRegex, ''),\n defines: {\n COLORMAP_FUNCTION: colormap || 'viridis'\n }\n };\n return channelsModules;\n}\n/**\n * @typedef LayerProps\n * @type {Object}\n * @property {Array.<Array.<number>>} contrastLimits List of [begin, end] values to control each channel's ramp function.\n * @property {Array.<Array.<number>>} colors List of [r, g, b] values for each channel.\n * @property {Array.<boolean>} channelsVisible List of boolean values for each channel for whether or not it is visible.\n * @property {string} dtype Dtype for the layer.\n * @property {string=} colormap String indicating a colormap (default: ''). The full list of options is here: https://github.com/glslify/glsl-colormap#glsl-colormap\n * @property {Array.<Array.<number>>=} domain Override for the possible max/min values (i.e something different than 65535 for uint16/'<u2').\n * @property {string=} renderingMode One of Maximum Intensity Projection, Minimum Intensity Projection, or Additive\n * @property {Object=} modelMatrix A column major affine transformation to be applied to the volume.\n * @property {Array.<number>=} xSlice 0-width (physical coordinates) interval on which to slice the volume.\n * @property {Array.<number>=} ySlice 0-height (physical coordinates) interval on which to slice the volume.\n * @property {Array.<number>=} zSlice 0-depth (physical coordinates) interval on which to slice the volume.\n * @property {Array.<Object>=} clippingPlanes List of math.gl [Plane](https://math.gl/modules/culling/docs/api-reference/plane) objects.\n * @property {Object=} resolutionMatrix Matrix for scaling the volume based on the (downsampled) resolution being displayed.\n */\n\n/**\n * @type {{ new <S extends string[]>(...props: import('../../../types').Viv<LayerProps>[]) }}\n * @ignore\n */\n\n\nconst XR3DLayer = class extends Layer {\n initializeState() {\n const {\n gl\n } = this.context; // This tells WebGL how to read row data from the texture. For example, the default here is 4 (i.e for RGBA, one byte per channel) so\n // each row of data is expected to be a multiple of 4. This setting (i.e 1) allows us to have non-multiple-of-4 row sizes. For example, for 2 byte (16 bit data),\n // we could use 2 as the value and it would still work, but 1 also works fine (and is more flexible for 8 bit - 1 byte - textures as well).\n // https://stackoverflow.com/questions/42789896/webgl-error-arraybuffer-not-big-enough-for-request-in-case-of-gl-luminance\n\n gl.pixelStorei(GL.UNPACK_ALIGNMENT, 1);\n gl.pixelStorei(GL.PACK_ALIGNMENT, 1);\n const programManager = ProgramManager.getDefaultProgramManager(gl);\n const processStr = `fs:DECKGL_PROCESS_INTENSITY(inout float intensity, vec2 contrastLimits, int channelIndex)`;\n\n if (!programManager._hookFunctions.includes(processStr)) {\n programManager.addShaderHook(processStr);\n }\n }\n\n _isHookDefinedByExtensions(hookName) {\n const {\n extensions\n } = this.props;\n return extensions?.some(e => {\n const shaders = e.getShaders();\n const {\n inject = {},\n modules = []\n } = shaders;\n const definesInjection = inject[hookName];\n const moduleDefinesInjection = modules.some(m => m?.inject[hookName]);\n return definesInjection || moduleDefinesInjection;\n });\n }\n /**\n * This function compiles the shaders and the projection module.\n */\n\n\n getShaders() {\n const {\n colormap,\n renderingMode,\n clippingPlanes\n } = this.props;\n const {\n sampler\n } = getRenderingAttrs();\n const {\n _BEFORE_RENDER,\n _RENDER,\n _AFTER_RENDER\n } = colormap ? RENDERING_MODES_COLORMAP[renderingMode] : RENDERING_MODES_BLEND[renderingMode];\n const channelsModules = removeExtraColormapFunctionsFromShader(colormap);\n\n const extensionDefinesDeckglProcessIntensity = this._isHookDefinedByExtensions('fs:DECKGL_PROCESS_INTENSITY');\n\n const newChannelsModule = { ...channelsModules,\n inject: {}\n };\n\n if (!extensionDefinesDeckglProcessIntensity) {\n newChannelsModule.inject['fs:DECKGL_PROCESS_INTENSITY'] = `\n intensity = apply_contrast_limits(intensity, contrastLimits);\n `;\n }\n\n return super.getShaders({\n vs,\n fs: fs$1.replace('_BEFORE_RENDER', _BEFORE_RENDER).replace('_RENDER', _RENDER).replace('_AFTER_RENDER', _AFTER_RENDER),\n defines: {\n SAMPLER_TYPE: sampler,\n COLORMAP_FUNCTION: colormap || 'viridis',\n NUM_PLANES: String(clippingPlanes.length || NUM_PLANES_DEFAULT)\n },\n modules: [newChannelsModule]\n });\n }\n /**\n * This function finalizes state by clearing all textures from the WebGL context\n */\n\n\n finalizeState() {\n super.finalizeState();\n\n if (this.state.textures) {\n Object.values(this.state.textures).forEach(tex => tex && tex.delete());\n }\n }\n /**\n * This function updates state by retriggering model creation (shader compilation and attribute binding)\n * and loading any textures that need be loading.\n */\n\n\n updateState({\n props,\n oldProps,\n changeFlags\n }) {\n // setup model first\n if (changeFlags.extensionsChanged || props.colormap !== oldProps.colormap || props.renderingMode !== oldProps.renderingMode || props.clippingPlanes.length !== oldProps.clippingPlanes.length) {\n const {\n gl\n } = this.context;\n\n if (this.state.model) {\n this.state.model.delete();\n }\n\n this.setState({\n model: this._getModel(gl)\n });\n }\n\n if (props.channelData && props?.channelData?.data !== oldProps?.channelData?.data) {\n this.loadTexture(props.channelData);\n }\n }\n /**\n * This function creates the luma.gl model.\n */\n\n\n _getModel(gl) {\n if (!gl) {\n return null;\n }\n\n return new Model(gl, { ...this.getShaders(),\n geometry: new Geometry({\n drawMode: gl.TRIANGLE_STRIP,\n attributes: {\n positions: new Float32Array(CUBE_STRIP)\n }\n })\n });\n }\n /**\n * This function runs the shaders and draws to the canvas\n */\n\n\n draw({\n uniforms\n }) {\n const {\n textures,\n model,\n scaleMatrix\n } = this.state;\n const {\n contrastLimits,\n colors,\n xSlice,\n ySlice,\n zSlice,\n modelMatrix,\n channelsVisible,\n domain,\n dtype,\n clippingPlanes,\n resolutionMatrix\n } = this.props;\n const {\n viewMatrix,\n viewMatrixInverse,\n projectionMatrix\n } = this.context.viewport;\n\n if (textures && model && scaleMatrix) {\n const paddedContrastLimits = padContrastLimits({\n contrastLimits,\n channelsVisible,\n domain,\n dtype\n });\n const paddedColors = padColors({\n colors,\n channelsVisible\n });\n const invertedScaleMatrix = scaleMatrix.clone().invert();\n const invertedResolutionMatrix = resolutionMatrix.clone().invert();\n const paddedClippingPlanes = padWithDefault(clippingPlanes.map(p => p.clone().transform(invertedScaleMatrix).transform(invertedResolutionMatrix)), new Plane([1, 0, 0]), clippingPlanes.length || NUM_PLANES_DEFAULT); // Need to flatten for shaders.\n\n const normals = paddedClippingPlanes.map(plane => plane.normal).flat();\n const distances = paddedClippingPlanes.map(plane => plane.distance);\n model.setUniforms({ ...uniforms,\n ...textures,\n contrastLimits: paddedContrastLimits,\n colors: paddedColors,\n xSlice: new Float32Array(xSlice ? xSlice.map(i => i / scaleMatrix[0] / resolutionMatrix[0]) : [0, 1]),\n ySlice: new Float32Array(ySlice ? ySlice.map(i => i / scaleMatrix[5] / resolutionMatrix[5]) : [0, 1]),\n zSlice: new Float32Array(zSlice ? zSlice.map(i => i / scaleMatrix[10] / resolutionMatrix[10]) : [0, 1]),\n eye_pos: new Float32Array([viewMatrixInverse[12], viewMatrixInverse[13], viewMatrixInverse[14]]),\n view: viewMatrix,\n proj: projectionMatrix,\n scale: scaleMatrix,\n resolution: resolutionMatrix,\n model: modelMatrix || new Matrix4(),\n normals,\n distances\n }).draw();\n }\n }\n /**\n * This function loads all textures from incoming resolved promises/data from the loaders by calling `dataToTexture`\n */\n\n\n loadTexture(channelData) {\n const textures = {\n volume0: null,\n volume1: null,\n volume2: null,\n volume3: null,\n volume4: null,\n volume5: null\n };\n\n if (this.state.textures) {\n Object.values(this.state.textures).forEach(tex => tex && tex.delete());\n }\n\n if (channelData && Object.keys(channelData).length > 0 && channelData.data) {\n const {\n height,\n width,\n depth\n } = channelData;\n channelData.data.forEach((d, i) => {\n textures[`volume${i}`] = this.dataToTexture(d, width, height, depth);\n }, this);\n this.setState({\n textures,\n scaleMatrix: new Matrix4().scale(this.props.physicalSizeScalingMatrix.transformPoint([width, height, depth]))\n });\n }\n }\n /**\n * This function creates textures from the data\n */\n\n\n dataToTexture(data, width, height, depth) {\n const attrs = getRenderingAttrs();\n const texture = new Texture3D(this.context.gl, {\n width,\n height,\n depth,\n data: attrs.cast?.(data) ?? data,\n // ? Seems to be a luma.gl bug. Looks like Texture2D is wrong or this is but these are flipped somewhere.\n format: attrs.dataFormat,\n dataFormat: attrs.format,\n type: attrs.type,\n mipmaps: false,\n parameters: {\n [GL.TEXTURE_MIN_FILTER]: GL.LINEAR,\n [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,\n [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_R]: GL.CLAMP_TO_EDGE\n }\n });\n return texture;\n }\n\n};\nXR3DLayer.layerName = 'XR3DLayer';\nXR3DLayer.defaultProps = defaultProps$1;\n\n/* global globalThis */\n/**\n * Creates a single continguous TypedArray that can visualized as a volume in 3D space where the y-axis going up is positive,\n * the x-axis going right is positive, and the z-axis coming out of the screen is positive.\n * To do this, and keep the orientation, we must anti-diagonally transpose each slice of raster data so that the (0, 0) data point is transformed\n * to the top right. If you start the camera looking at the 0th slice (or rotate from looking at the final slice) in 3D, this becomes more apparent.\n * Of note here is that in 2D rendering, the y-axis is positive in the downward direction.\n *\n * @param {object} props\n * @param {object} props.source PixelSource\n * @param {object} props.selection A single selection for the PixelSource\n * @param {object} props.onUpdate A callback for progress that is called twice during the loading of each plane, once when the promsie resolves and once when it is loaded into the final contiguous buffer.\n * @param {object} props.downsampleDepth This is the number by which to downsample on the z direction, usually `2 ** resolution` where `resolution` is that of the `PixelSource` in the image pyramid.\n * The idea here is to get every `downsampleDepth` raster slice so that proper scaling is maintained (just liek a 2D image pyramid).\n * @return {TypedArray}\n * @ignore\n */\n\nasync function getVolume({\n source,\n selection,\n onUpdate = () => {},\n downsampleDepth = 1,\n signal\n}) {\n const {\n shape,\n labels,\n dtype\n } = source;\n const {\n height,\n width\n } = getImageSize(source);\n const depth = shape[labels.indexOf('z')];\n const depthDownsampled = Math.max(1, Math.floor(depth / downsampleDepth));\n const rasterSize = height * width;\n const name = `${dtype}Array`;\n const TypedArray = globalThis[name];\n const volumeData = new TypedArray(rasterSize * depthDownsampled);\n await Promise.all(new Array(depthDownsampled).fill(0).map(async (_, z) => {\n const depthSelection = { ...selection,\n z: z * downsampleDepth\n };\n const {\n data: rasterData\n } = await source.getRaster({\n selection: depthSelection,\n signal\n });\n let r = 0;\n onUpdate(); // For now this process fills in each raster plane anti-diagonally transposed.\n // This is to ensure that the image looks right in three dimensional space.\n\n while (r < rasterSize) {\n const volIndex = z * rasterSize + (rasterSize - r - 1);\n const rasterIndex = (width - r - 1) % width + width * Math.floor(r / width);\n volumeData[volIndex] = rasterData[rasterIndex];\n r += 1;\n }\n\n onUpdate();\n }));\n return {\n data: volumeData,\n height,\n width,\n depth: depthDownsampled\n };\n}\nconst getTextLayer = (text, viewport, id) => {\n return new TextLayer({\n id: `text-${id}`,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n data: [{\n text,\n position: viewport.position\n }],\n getColor: [220, 220, 220, 255],\n getSize: 25,\n sizeUnits: 'meters',\n sizeScale: 2 ** -viewport.zoom,\n fontFamily: 'Helvetica'\n });\n};\n\nconst defaultProps = {\n pickable: false,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n contrastLimits: {\n type: 'array',\n value: [],\n compare: true\n },\n channelsVisible: {\n type: 'array',\n value: [],\n compare: true\n },\n colors: {\n type: 'array',\n value: [],\n compare: true\n },\n colormap: {\n type: 'string',\n value: '',\n compare: true\n },\n selections: {\n type: 'array',\n value: [],\n compare: true\n },\n resolution: {\n type: 'number',\n value: 0,\n compare: true\n },\n domain: {\n type: 'array',\n value: [],\n compare: true\n },\n loader: {\n type: 'object',\n value: [{\n getRaster: async () => ({\n data: [],\n height: 0,\n width: 0\n }),\n dtype: 'Uint16',\n shape: [1],\n labels: ['z']\n }],\n compare: true\n },\n xSlice: {\n type: 'array',\n value: null,\n compare: true\n },\n ySlice: {\n type: 'array',\n value: null,\n compare: true\n },\n zSlice: {\n type: 'array',\n value: null,\n compare: true\n },\n clippingPlanes: {\n type: 'array',\n value: [],\n compare: true\n },\n renderingMode: {\n type: 'string',\n value: RENDERING_MODES.MAX_INTENSITY_PROJECTION,\n compare: true\n },\n onUpdate: {\n type: 'function',\n value: () => {},\n compare: true\n },\n useProgressIndicator: {\n type: 'boolean',\n value: true,\n compare: true\n },\n useWebGL1Warning: {\n type: 'boolean',\n value: true,\n compare: true\n }\n};\n/**\n * @typedef LayerProps\n * @type {Object}\n * @property {Array.<Array.<number>>} contrastLimits List of [begin, end] values to control each channel's ramp function.\n * @property {Array.<Array.<number>>} colors List of [r, g, b] values for each channel.\n * @property {Array.<boolean>} channelsVisible List of boolean values for each channel for whether or not it is visible.\n * @property {Array} loader PixelSource[]. Represents an N-dimensional image.\n * @property {Array} selections Selection to be used for fetching data.\n * @property {string=} colormap String indicating a colormap (default: ''). The full list of options is here: https://github.com/glslify/glsl-colormap#glsl-colormap\n * @property {Array.<Array.<number>>=} domain Override for the possible max/min values (i.e something different than 65535 for uint16/'<u2').\n * @property {number=} resolution Resolution at which you would like to see the volume and load it into memory (0 highest, loader.length -1 the lowest default 0)\n * @property {string=} renderingMode One of Maximum Intensity Projection, Minimum Intensity Projection, or Additive\n * @property {Object=} modelMatrix A column major affine transformation to be applied to the volume.\n * @property {Array.<number>=} xSlice 0-width (physical coordinates) interval on which to slice the volume.\n * @property {Array.<number>=} ySlice 0-height (physical coordinates) interval on which to slice the volume.\n * @property {Array.<number>=} zSlice 0-depth (physical coordinates) interval on which to slice the volume.\n * @property {function=} onViewportLoad Function that gets called when the data in the viewport loads.\n * @property {Array.<Object>=} clippingPlanes List of math.gl [Plane](https://math.gl/modules/culling/docs/api-reference/plane) objects.\n * @property {boolean=} useProgressIndicator Whether or not to use the default progress text + indicator (default is true)\n * @property {boolean=} useWebGL1Warning Whether or not to use the default WebGL1 warning (default is true)\n * @property {function=} onUpdate A callback to be used for getting updates of the progress, ({ progress }) => {}\n */\n\n/**\n * @type {{ new <S extends string[]>(...props: import('../../types').Viv<LayerProps, S>[]) }}\n * @ignore\n */\n\nconst VolumeLayer = class extends CompositeLayer {\n clearState() {\n this.setState({\n height: null,\n width: null,\n depth: null,\n data: null,\n physicalSizeScalingMatrix: null,\n resolutionMatrix: null,\n progress: 0,\n abortController: null\n });\n }\n\n finalizeState() {\n this.state.abortController.abort();\n }\n\n updateState({\n oldProps,\n props\n }) {\n const loaderChanged = props.loader !== oldProps.loader;\n const resolutionChanged = props.resolution !== oldProps.resolution;\n const selectionsChanged = props.selections !== oldProps.selections; // Only fetch new data to render if loader has changed\n\n if (resolutionChanged) {\n // Clear last volume.\n this.clearState();\n }\n\n if (loaderChanged || selectionsChanged || resolutionChanged) {\n const {\n loader,\n selections = [],\n resolution,\n onViewportLoad\n } = this.props;\n const source = loader[resolution];\n let progress = 0;\n const totalRequests = // eslint-disable-next-line no-bitwise\n (source.shape[source.labels.indexOf('z')] >> resolution) * selections.length;\n\n const onUpdate = () => {\n progress += 0.5 / totalRequests;\n\n if (this.props.onUpdate) {\n this.props.onUpdate({\n progress\n });\n }\n\n this.setState({\n progress\n });\n };\n\n const abortController = new AbortController();\n this.setState({\n abortController\n });\n const {\n signal\n } = abortController;\n const volumePromises = selections.map(selection => getVolume({\n selection,\n source,\n onUpdate,\n downsampleDepth: 2 ** resolution,\n signal\n }));\n const physicalSizeScalingMatrix = getPhysicalSizeScalingMatrix(loader[resolution]);\n Promise.all(volumePromises).then(volumes => {\n if (onViewportLoad) {\n onViewportLoad(volumes);\n }\n\n const volume = {\n data: volumes.map(d => d.data),\n width: volumes[0].width,\n height: volumes[0].height,\n depth: volumes[0].depth\n };\n this.setState({ ...volume,\n physicalSizeScalingMatrix,\n resolutionMatrix: new Matrix4().scale(2 ** resolution)\n });\n });\n }\n }\n\n renderLayers() {\n const {\n loader,\n id,\n resolution,\n useProgressIndicator,\n useWebGL1Warning\n } = this.props;\n const {\n dtype\n } = loader[resolution];\n const {\n data,\n width,\n height,\n depth,\n progress,\n physicalSizeScalingMatrix,\n resolutionMatrix\n } = this.state;\n const {\n gl\n } = this.context;\n\n if (!isWebGL2(gl) && useWebGL1Warning) {\n const {\n viewport\n } = this.context;\n return getTextLayer(['Volume rendering is only available on browsers that support WebGL2. If you', 'are using Safari, you can turn on WebGL2 by navigating in the top menubar', 'to check Develop > Experimental Features > WebGL 2.0 and then refreshing', 'the page.'].join('\\n'), viewport, id);\n }\n\n if (!(width && height) && useProgressIndicator) {\n const {\n viewport\n } = this.context;\n return getTextLayer(`Loading Volume ${String((progress || 0) * 100).slice(0, 5)}%...`, viewport, id);\n }\n\n return new XR3DLayer(this.props, {\n channelData: {\n data,\n width,\n height,\n depth\n },\n id: `XR3DLayer-${0}-${height}-${width}-${0}-${resolution}-${id}`,\n physicalSizeScalingMatrix,\n parameters: {\n [GL.CULL_FACE]: true,\n [GL.CULL_FACE_MODE]: GL.FRONT,\n [GL.DEPTH_TEST]: false,\n blendFunc: [GL.SRC_ALPHA, GL.ONE],\n blend: true\n },\n resolutionMatrix,\n dtype\n });\n }\n\n};\nVolumeLayer.layerName = 'VolumeLayer';\nVolumeLayer.defaultProps = defaultProps;\n\nvar _jsxFileName$3 = \"/Users/ilangold/Projects/Gehlenborg/viv/src/viewers/VivViewer.jsx\";\nconst areViewStatesEqual = (viewState, otherViewState) => {\n return otherViewState === viewState || viewState?.zoom === otherViewState?.zoom && viewState?.rotationX === otherViewState?.rotationX && viewState?.rotationOrbit === otherViewState?.rotationOrbit && equal(viewState?.target, otherViewState?.target);\n};\nclass VivViewerWrapper extends PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n viewStates: {}\n };\n const {\n viewStates\n } = this.state;\n const {\n views,\n viewStates: initialViewStates\n } = this.props;\n views.forEach((view) => {\n viewStates[view.id] = view.filterViewState({\n viewState: initialViewStates.find((v) => v.id === view.id)\n });\n });\n this._onViewStateChange = this._onViewStateChange.bind(this);\n this.layerFilter = this.layerFilter.bind(this);\n this.onHover = this.onHover.bind(this);\n }\n layerFilter({\n layer,\n viewport\n }) {\n return layer.id.includes(getVivId(viewport.id));\n }\n _onViewStateChange({\n viewId,\n viewState,\n interactionState,\n oldViewState\n }) {\n const {\n views,\n onViewStateChange\n } = this.props;\n viewState = onViewStateChange && onViewStateChange({\n viewId,\n viewState,\n interactionState,\n oldViewState\n }) || viewState;\n this.setState((prevState) => {\n const viewStates = {};\n views.forEach((view) => {\n const currentViewState = prevState.viewStates[view.id];\n viewStates[view.id] = view.filterViewState({\n viewState: {\n ...viewState,\n id: viewId\n },\n oldViewState,\n currentViewState\n });\n });\n return {\n viewStates\n };\n });\n return viewState;\n }\n componentDidUpdate(prevProps) {\n const {\n props\n } = this;\n const {\n views\n } = props;\n const viewStates = {\n ...this.state.viewStates\n };\n let anyChanged = false;\n views.forEach((view) => {\n const currViewState = props.viewStates?.find((viewState) => viewState.id === view.id);\n if (!currViewState) {\n return;\n }\n const prevViewState = prevProps.viewStates?.find((viewState) => viewState.id === view.id);\n if (areViewStatesEqual(currViewState, prevViewState)) {\n return;\n }\n anyChanged = true;\n const {\n height,\n width\n } = view;\n viewStates[view.id] = view.filterViewState({\n viewState: {\n ...currViewState,\n height,\n width,\n id: view.id\n }\n });\n });\n if (anyChanged) {\n this.setState({\n viewStates\n });\n }\n }\n static getDerivedStateFromProps(props, prevState) {\n const {\n views,\n viewStates: viewStatesProps\n } = props;\n if (views.some((view) => !prevState.viewStates[view.id] || view.height !== prevState.viewStates[view.id].height || view.width !== prevState.viewStates[view.id].width)) {\n const viewStates = {};\n views.forEach((view) => {\n const {\n height,\n width\n } = view;\n const currentViewState = prevState.viewStates[view.id];\n viewStates[view.id] = view.filterViewState({\n viewState: {\n ...currentViewState || viewStatesProps.find((v) => v.id === view.id),\n height,\n width,\n id: view.id\n }\n });\n });\n return {\n viewStates\n };\n }\n return prevState;\n }\n onHover(info, event) {\n const {\n tile,\n coordinate,\n sourceLayer: layer\n } = info;\n const {\n onHover,\n hoverHooks\n } = this.props;\n if (onHover) {\n onHover(info, event);\n }\n if (!hoverHooks || !coordinate || !layer) {\n return null;\n }\n const {\n handleValue = () => {\n },\n handleCoordnate = () => {\n }\n } = hoverHooks;\n let hoverData;\n if (layer.id.includes(\"Tiled\")) {\n if (!tile?.content) {\n return null;\n }\n const {\n content,\n bbox,\n z\n } = tile;\n if (!content.data || !bbox) {\n return null;\n }\n const {\n data,\n width,\n height\n } = content;\n const {\n left,\n right,\n top,\n bottom\n } = bbox;\n const bounds = [left, data.height < layer.tileSize ? height : bottom, data.width < layer.tileSize ? width : right, top];\n if (!data) {\n return null;\n }\n const layerZoomScale = Math.max(1, 2 ** Math.round(-z));\n const dataCoords = [Math.floor((coordinate[0] - bounds[0]) / layerZoomScale), Math.floor((coordinate[1] - bounds[3]) / layerZoomScale)];\n const coords = dataCoords[1] * width + dataCoords[0];\n hoverData = data.map((d) => d[coords]);\n } else {\n const {\n channelData\n } = layer.props;\n if (!channelData) {\n return null;\n }\n const {\n data,\n width,\n height\n } = channelData;\n if (!data || !width || !height) {\n return null;\n }\n const bounds = [0, height, width, 0];\n const {\n zoom\n } = layer.context.viewport;\n const layerZoomScale = Math.max(1, 2 ** Math.floor(-zoom));\n const dataCoords = [Math.floor((coordinate[0] - bounds[0]) / layerZoomScale), Math.floor((coordinate[1] - bounds[3]) / layerZoomScale)];\n const coords = dataCoords[1] * width + dataCoords[0];\n hoverData = data.map((d) => d[coords]);\n }\n handleValue(hoverData);\n handleCoordnate(coordinate);\n }\n _renderLayers() {\n const {\n onHover\n } = this;\n const {\n viewStates\n } = this.state;\n const {\n views,\n layerProps\n } = this.props;\n return views.map((view, i) => view.getLayers({\n viewStates,\n props: {\n ...layerProps[i],\n onHover\n }\n }));\n }\n render() {\n const {\n views,\n randomize,\n useDevicePixels = true,\n deckProps\n } = this.props;\n const {\n viewStates\n } = this.state;\n const deckGLViews = views.map((view) => view.getDeckGlView());\n if (randomize) {\n const random = Math.random();\n const holdFirstElement = deckGLViews[0];\n const randomWieghted = random * 1.49;\n const randomizedIndex = Math.round(randomWieghted * (views.length - 1));\n deckGLViews[0] = deckGLViews[randomizedIndex];\n deckGLViews[randomizedIndex] = holdFirstElement;\n }\n return /* @__PURE__ */ jsxDEV(DeckGL, {\n ...deckProps ?? {},\n layerFilter: this.layerFilter,\n layers: this._renderLayers(),\n onViewStateChange: this._onViewStateChange,\n views: deckGLViews,\n viewState: viewStates,\n useDevicePixels,\n getCursor: ({\n isDragging\n }) => {\n return isDragging ? \"grabbing\" : \"crosshair\";\n }\n }, void 0, false, {\n fileName: _jsxFileName$3,\n lineNumber: 301,\n columnNumber: 7\n }, this);\n }\n}\nconst VivViewer = (props) => /* @__PURE__ */ jsxDEV(VivViewerWrapper, {\n ...props\n}, void 0, false, {\n fileName: _jsxFileName$3,\n lineNumber: 333,\n columnNumber: 28\n}, undefined);\n\n/**\n * This class generates a layer and a view for use in the VivViewer\n * @param {Object} args\n * @param {string} args.id id for this VivView.\n * @param {Object} args.height Width of the view.\n * @param {Object} args.width Height of the view.\n * @param {string} args.id Id for the current view\n * @param {number=} args.x X (top-left) location on the screen for the current view\n * @param {number=} args.y Y (top-left) location on the screen for the current view\n */\n\nclass VivView {\n constructor({\n id,\n x = 0,\n y = 0,\n height,\n width\n }) {\n this.width = width;\n this.height = height;\n this.id = id;\n this.x = x;\n this.y = y;\n }\n /**\n * Create a DeckGL view based on this class.\n * @returns {View} The DeckGL View for this class.\n */\n\n\n getDeckGlView() {\n return new OrthographicView({\n controller: true,\n id: this.id,\n height: this.height,\n width: this.width,\n x: this.x,\n y: this.y\n });\n }\n /**\n * Create a viewState for this class, checking the id to make sure this class and veiwState match.\n * @param {Object} args\n * @param {object} [args.viewState] incoming ViewState object from deck.gl update.\n * @param {object} [args.oldViewState] old ViewState object from deck.gl.\n * @param {object} [args.currentViewState] current ViewState object in react state.\n * @returns {?object} ViewState for this class (or null by default if the ids do not match).\n */\n\n\n filterViewState({\n viewState\n }) {\n const {\n id,\n height,\n width\n } = this;\n return viewState.id === id ? {\n height,\n width,\n ...viewState\n } : null;\n }\n /**\n * Create a layer for this instance.\n * @param {Object} args\n * @param {Object<string,Object>} args.viewStates ViewStates for all current views.\n * @param {Object} args.props Props for this instance.\n * @returns {Layer} Instance of a layer.\n */\n // eslint-disable-next-line class-methods-use-this,no-unused-vars\n\n\n getLayers({\n viewStates,\n props\n }) {}\n\n}\n\n/* eslint-disable max-classes-per-file */\nconst OVERVIEW_VIEW_ID = 'overview';\n\nclass OverviewState {}\n\nclass OverviewController extends Controller {\n constructor(props) {\n super(OverviewState, props);\n this.events = ['click'];\n }\n\n handleEvent(event) {\n if (event.type !== 'click') {\n return;\n }\n\n let [x, y] = this.getCenter(event);\n const {\n width,\n height,\n zoom,\n scale\n } = this.controllerStateProps;\n\n if (x < 0 || y < 0 || x > width || y > height) {\n return;\n }\n\n const scaleFactor = 1 / (2 ** zoom * scale);\n x *= scaleFactor;\n y *= scaleFactor;\n\n if (this.onViewStateChange) {\n this.onViewStateChange({\n viewState: {\n target: [x, y, 0]\n }\n });\n }\n }\n\n}\n/**\n * This class generates a OverviewLayer and a view for use in the VivViewer as an overview to a Detailview (they must be used in conjection).\n * From the base class VivView, only the initialViewState argument is used. This class uses private methods to position its x and y from the\n * additional arguments:\n * @param {Object} args\n * @param {Object} args.id for thie VivView\n * @param {Object} args.loader PixelSource[], where each PixelSource is decreasing in shape. If length == 1, not multiscale.\n * @param {number} args.detailHeight Height of the detail view.\n * @param {number} args.detailWidth Width of the detail view.\n * @param {number} [args.scale] Scale of this viewport relative to the detail. Default is .2.\n * @param {number} [args.margin] Margin to be offset from the the corner of the other viewport. Default is 25.\n * @param {string} [args.position] Location of the viewport - one of \"bottom-right\", \"top-right\", \"top-left\", \"bottom-left.\" Default is 'bottom-right'.\n * @param {number} [args.minimumWidth] Absolute lower bound for how small the viewport should scale. Default is 150.\n * @param {number} [args.maximumWidth] Absolute upper bound for how large the viewport should scale. Default is 350.\n * @param {number} [args.minimumHeight] Absolute lower bound for how small the viewport should scale. Default is 150.\n * @param {number} [args.maximumHeight] Absolute upper bound for how large the viewport should scale. Default is 350.\n * @param {Boolean} [args.clickCenter] Click to center the default view. Default is true.\n * */\n\n\nclass OverviewView extends VivView {\n constructor({\n id,\n loader,\n detailHeight,\n detailWidth,\n scale = 0.2,\n margin = 25,\n position = 'bottom-right',\n minimumWidth = 150,\n maximumWidth = 350,\n minimumHeight = 150,\n maximumHeight = 350,\n clickCenter = true\n }) {\n super({\n id\n });\n this.margin = margin;\n this.loader = loader;\n this.position = position;\n this.detailHeight = detailHeight;\n this.detailWidth = detailWidth;\n\n this._setHeightWidthScale({\n detailWidth,\n detailHeight,\n scale,\n minimumWidth,\n maximumWidth,\n minimumHeight,\n maximumHeight\n });\n\n this._setXY();\n\n this.clickCenter = clickCenter;\n }\n /**\n * Set the image-pixel scale and height and width based on detail view.\n */\n\n\n _setHeightWidthScale({\n detailWidth,\n detailHeight,\n scale,\n minimumWidth,\n maximumWidth,\n minimumHeight,\n maximumHeight\n }) {\n const numLevels = this.loader.length;\n const {\n width: rasterWidth,\n height: rasterHeight\n } = getImageSize(this.loader[0]);\n this._imageWidth = rasterWidth;\n this._imageHeight = rasterHeight;\n\n if (rasterWidth > rasterHeight) {\n const heightWidthRatio = rasterHeight / rasterWidth;\n this.width = Math.min(maximumWidth, Math.max(detailWidth * scale, minimumWidth));\n this.height = this.width * heightWidthRatio;\n this.scale = 2 ** (numLevels - 1) / rasterWidth * this.width;\n } else {\n const widthHeightRatio = rasterWidth / rasterHeight;\n this.height = Math.min(maximumHeight, Math.max(detailHeight * scale, minimumHeight));\n this.width = this.height * widthHeightRatio;\n this.scale = 2 ** (numLevels - 1) / rasterHeight * this.height;\n }\n }\n /**\n * Set the x and y (top left corner) of this overview relative to the detail.\n */\n\n\n _setXY() {\n const {\n height,\n width,\n margin,\n position,\n detailWidth,\n detailHeight\n } = this;\n\n switch (position) {\n case 'bottom-right':\n {\n this.x = detailWidth - width - margin;\n this.y = detailHeight - height - margin;\n break;\n }\n\n case 'top-right':\n {\n this.x = detailWidth - width - margin;\n this.y = margin;\n break;\n }\n\n case 'top-left':\n {\n this.x = margin;\n this.y = margin;\n break;\n }\n\n case 'bottom-left':\n {\n this.x = margin;\n this.y = detailHeight - height - margin;\n break;\n }\n\n default:\n {\n throw new Error(`overviewLocation prop needs to be one of ['bottom-right', 'top-right', 'top-left', 'bottom-left']`);\n }\n }\n }\n\n getDeckGlView() {\n const {\n scale,\n clickCenter\n } = this;\n const controller = clickCenter && {\n type: OverviewController,\n scale\n };\n return new OrthographicView({\n controller,\n id: this.id,\n height: this.height,\n width: this.width,\n x: this.x,\n y: this.y,\n clear: true\n });\n }\n\n filterViewState({\n viewState\n }) {\n // Scale the view as the overviewScale changes with screen resizing - basically, do not react to any view state changes.\n const {\n _imageWidth,\n _imageHeight,\n scale\n } = this;\n return { ...viewState,\n height: this.height,\n width: this.width,\n id: this.id,\n target: [_imageWidth * scale / 2, _imageHeight * scale / 2, 0],\n zoom: -(this.loader.length - 1)\n };\n }\n\n getLayers({\n viewStates,\n props\n }) {\n const {\n detail,\n overview\n } = viewStates;\n\n if (!detail) {\n throw new Error('Overview requires a viewState with id detail');\n } // Scale the bounding box.\n\n\n const boundingBox = makeBoundingBox(detail).map(coords => coords.map(e => e * this.scale));\n const overviewLayer = new OverviewLayer(props, {\n id: getVivId(this.id),\n boundingBox,\n overviewScale: this.scale,\n zoom: -overview.zoom\n });\n return [overviewLayer];\n }\n\n}\n\nconst DETAIL_VIEW_ID = 'detail';\n/**\n * This class generates a MultiscaleImageLayer and a view for use in the VivViewer as a detailed view.\n * It takes the same arguments for its constructor as its base class VivView.\n * */\n\nclass DetailView extends VivView {\n getLayers({\n props,\n viewStates\n }) {\n const {\n loader\n } = props;\n const {\n id,\n height,\n width\n } = this;\n const layerViewState = viewStates[id];\n const layers = [getImageLayer(id, props)]; // Inspect the first pixel source for physical sizes\n\n if (loader[0]?.meta?.physicalSizes?.x) {\n const {\n size,\n unit\n } = loader[0].meta.physicalSizes.x;\n layers.push(new ScaleBarLayer({\n id: getVivId(id),\n loader,\n unit,\n size,\n viewState: { ...layerViewState,\n height,\n width\n }\n }));\n }\n\n return layers;\n }\n\n filterViewState({\n viewState,\n currentViewState\n }) {\n if (viewState.id === OVERVIEW_VIEW_ID) {\n const {\n target\n } = viewState;\n\n if (target) {\n return { ...currentViewState,\n target\n };\n }\n }\n\n return super.filterViewState({\n viewState\n });\n }\n\n}\n\n/**\n * This class generates a MultiscaleImageLayer and a view for use in the SideBySideViewer.\n * It is linked with its other views as controlled by `linkedIds`, `zoomLock`, and `panLock` parameters.\n * It takes the same arguments for its constructor as its base class VivView plus the following:\n * @param {Object} args\n * @param {Array<String>} args.linkedIds Ids of the other views to which this could be locked via zoom/pan.\n * @param {Boolean} args.panLock Whether or not we lock pan.\n * @param {Boolean} args.zoomLock Whether or not we lock zoom.\n * @param {Array=} args.viewportOutlineColor Outline color of the border (default [255, 255, 255])\n * @param {number=} args.viewportOutlineWidth Default outline width (default 10)\n * @param {number=} args.x X (top-left) location on the screen for the current view\n * @param {number=} args.y Y (top-left) location on the screen for the current view\n * @param {number} args.height Width of the view.\n * @param {number} args.width Height of the view.\n * @param {string} args.id id of the View\n * */\n\nclass SideBySideView extends VivView {\n constructor({\n id,\n x = 0,\n y = 0,\n height,\n width,\n linkedIds = [],\n panLock = true,\n zoomLock = true,\n viewportOutlineColor = [255, 255, 255],\n viewportOutlineWidth = 10\n }) {\n super({\n id,\n x,\n y,\n height,\n width\n });\n this.linkedIds = linkedIds;\n this.panLock = panLock;\n this.zoomLock = zoomLock;\n this.viewportOutlineColor = viewportOutlineColor;\n this.viewportOutlineWidth = viewportOutlineWidth;\n }\n\n filterViewState({\n viewState,\n oldViewState,\n currentViewState\n }) {\n const {\n id: viewStateId\n } = viewState;\n const {\n id,\n linkedIds,\n panLock,\n zoomLock\n } = this;\n\n if (oldViewState && linkedIds.indexOf(viewStateId) !== -1 && (zoomLock || panLock)) {\n const thisViewState = {\n height: currentViewState.height,\n width: currentViewState.width,\n target: [],\n zoom: null\n };\n const [currentX, currentY] = currentViewState.target;\n\n if (zoomLock) {\n const dZoom = viewState.zoom - oldViewState.zoom;\n thisViewState.zoom = currentViewState.zoom + dZoom;\n } else {\n thisViewState.zoom = currentViewState.zoom;\n }\n\n if (panLock) {\n const [oldX, oldY] = oldViewState.target;\n const [newX, newY] = viewState.target;\n const dx = newX - oldX;\n const dy = newY - oldY;\n thisViewState.target.push(currentX + dx);\n thisViewState.target.push(currentY + dy);\n } else {\n thisViewState.target.push(currentX);\n thisViewState.target.push(currentY);\n }\n\n return {\n id,\n target: thisViewState.target,\n zoom: thisViewState.zoom,\n height: thisViewState.height,\n width: thisViewState.width\n };\n }\n\n return viewState.id === id ? {\n id,\n target: viewState.target,\n zoom: viewState.zoom,\n height: viewState.height,\n width: viewState.width\n } : {\n id,\n target: currentViewState.target,\n zoom: currentViewState.zoom,\n height: currentViewState.height,\n width: currentViewState.width\n };\n }\n\n getLayers({\n props,\n viewStates\n }) {\n const {\n loader\n } = props;\n const {\n id,\n viewportOutlineColor,\n viewportOutlineWidth,\n height,\n width\n } = this;\n const layerViewState = viewStates[id];\n const boundingBox = makeBoundingBox({ ...layerViewState,\n height,\n width\n });\n const layers = [getImageLayer(id, props)];\n const border = new PolygonLayer({\n id: `viewport-outline-${getVivId(id)}`,\n coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,\n data: [boundingBox],\n getPolygon: f => f,\n filled: false,\n stroked: true,\n getLineColor: viewportOutlineColor,\n getLineWidth: viewportOutlineWidth * 2 ** -layerViewState.zoom\n });\n layers.push(border);\n\n if (loader[0]?.meta?.physicalSizes?.x) {\n const {\n size,\n unit\n } = loader[0].meta.physicalSizes.x;\n layers.push(new ScaleBarLayer({\n id: getVivId(id),\n loader,\n unit,\n size,\n viewState: { ...layerViewState,\n height,\n width\n }\n }));\n }\n\n return layers;\n }\n\n}\n\n/**\n * This class generates a VolumeLayer and a view for use in the VivViewer as volumetric rendering.\n * @param {Object} args\n * @param {Array<number>} args.target Centered target for the camera (used if useFixedAxis is true)\n * @param {Boolean} args.useFixedAxis Whether or not to fix the axis of the camera.\n * */\n\nclass VolumeView extends VivView {\n constructor({\n target,\n useFixedAxis,\n ...args\n }) {\n super(args);\n this.target = target;\n this.useFixedAxis = useFixedAxis;\n }\n\n getDeckGlView() {\n const {\n height,\n width,\n id,\n x,\n y\n } = this;\n return new OrbitView({\n id,\n controller: true,\n height,\n width,\n x,\n y,\n orbitAxis: 'Y'\n });\n }\n\n filterViewState({\n viewState\n }) {\n const {\n id,\n target,\n useFixedAxis\n } = this;\n return viewState.id === id ? { ...viewState,\n // fix the center of the camera if desired\n target: useFixedAxis ? target : viewState.target\n } : null;\n }\n\n getLayers({\n props\n }) {\n const {\n loader\n } = props;\n const {\n id\n } = this;\n const layers = [new VolumeLayer(props, {\n id: `${loader.type}${getVivId(id)}`\n })];\n return layers;\n }\n\n}\n\nvar _jsxFileName$2 = \"/Users/ilangold/Projects/Gehlenborg/viv/src/viewers/PictureInPictureViewer.jsx\";\nconst PictureInPictureViewer = (props) => {\n const {\n loader,\n contrastLimits,\n colors,\n channelsVisible,\n viewStates: viewStatesProp,\n colormap,\n overview,\n overviewOn,\n selections,\n hoverHooks = {\n handleValue: () => {\n },\n handleCoordinate: () => {\n }\n },\n height,\n width,\n lensEnabled = false,\n lensSelection = 0,\n lensRadius = 100,\n lensBorderColor = [255, 255, 255],\n lensBorderRadius = 0.02,\n clickCenter = true,\n transparentColor,\n onViewStateChange,\n onHover,\n onViewportLoad,\n extensions = [new ColorPaletteExtension()],\n deckProps\n } = props;\n const detailViewState = viewStatesProp?.find((v) => v.id === DETAIL_VIEW_ID);\n const baseViewState = useMemo(() => {\n return detailViewState || getDefaultInitialViewState(loader, {\n height,\n width\n }, 0.5);\n }, [loader, detailViewState]);\n const detailView = new DetailView({\n id: DETAIL_VIEW_ID,\n height,\n width\n });\n const layerConfig = {\n loader,\n contrastLimits,\n colors,\n channelsVisible,\n selections,\n onViewportLoad,\n colormap,\n lensEnabled,\n lensSelection,\n lensRadius,\n lensBorderColor,\n lensBorderRadius,\n extensions,\n transparentColor\n };\n const views = [detailView];\n const layerProps = [layerConfig];\n const viewStates = [{\n ...baseViewState,\n id: DETAIL_VIEW_ID\n }];\n if (overviewOn && loader) {\n const overviewViewState = viewStatesProp?.find((v) => v.id === OVERVIEW_VIEW_ID) || {\n ...baseViewState,\n id: OVERVIEW_VIEW_ID\n };\n const overviewView = new OverviewView({\n id: OVERVIEW_VIEW_ID,\n loader,\n detailHeight: height,\n detailWidth: width,\n clickCenter,\n ...overview\n });\n views.push(overviewView);\n layerProps.push({\n ...layerConfig,\n lensEnabled: false\n });\n viewStates.push(overviewViewState);\n }\n if (!loader)\n return null;\n return /* @__PURE__ */ jsxDEV(VivViewer, {\n layerProps,\n views,\n viewStates,\n hoverHooks,\n onViewStateChange,\n onHover,\n deckProps\n }, void 0, false, {\n fileName: _jsxFileName$2,\n lineNumber: 127,\n columnNumber: 5\n }, undefined);\n};\n\nvar _jsxFileName$1 = \"/Users/ilangold/Projects/Gehlenborg/viv/src/viewers/SideBySideViewer.jsx\";\nconst SideBySideViewer = (props) => {\n const {\n loader,\n contrastLimits,\n colors,\n channelsVisible,\n viewStates: viewStatesProp,\n colormap,\n panLock,\n selections,\n zoomLock,\n height,\n width,\n lensEnabled = false,\n lensSelection = 0,\n lensRadius = 100,\n lensBorderColor = [255, 255, 255],\n lensBorderRadius = 0.02,\n transparentColor,\n onViewStateChange,\n onHover,\n onViewportLoad,\n extensions = [new ColorPaletteExtension()],\n deckProps\n } = props;\n const leftViewState = viewStatesProp?.find((v) => v.id === \"left\");\n const rightViewState = viewStatesProp?.find((v) => v.id === \"right\");\n const viewStates = useMemo(() => {\n if (leftViewState && rightViewState) {\n return viewStatesProp;\n }\n const defaultViewState = getDefaultInitialViewState(loader, {\n height,\n width: width / 2\n }, 0.5);\n return [leftViewState || {\n ...defaultViewState,\n id: \"left\"\n }, rightViewState || {\n ...defaultViewState,\n id: \"right\"\n }];\n }, [loader, leftViewState, rightViewState]);\n const detailViewLeft = new SideBySideView({\n id: \"left\",\n linkedIds: [\"right\"],\n panLock,\n zoomLock,\n height,\n width: width / 2\n });\n const detailViewRight = new SideBySideView({\n id: \"right\",\n x: width / 2,\n linkedIds: [\"left\"],\n panLock,\n zoomLock,\n height,\n width: width / 2\n });\n const layerConfig = {\n loader,\n contrastLimits,\n colors,\n channelsVisible,\n selections,\n onViewportLoad,\n colormap,\n lensEnabled,\n lensSelection,\n lensRadius,\n lensBorderColor,\n lensBorderRadius,\n extensions,\n transparentColor\n };\n const views = [detailViewRight, detailViewLeft];\n const layerProps = [layerConfig, layerConfig];\n return loader ? /* @__PURE__ */ jsxDEV(VivViewer, {\n layerProps,\n views,\n randomize: true,\n onViewStateChange,\n onHover,\n viewStates,\n deckProps\n }, void 0, false, {\n fileName: _jsxFileName$1,\n lineNumber: 115,\n columnNumber: 5\n }, undefined) : null;\n};\n\nvar _jsxFileName = \"/Users/ilangold/Projects/Gehlenborg/viv/src/viewers/VolumeViewer.jsx\";\nconst VolumeViewer = (props) => {\n const {\n loader,\n contrastLimits,\n colors,\n channelsVisible,\n selections,\n colormap,\n resolution = Math.max(0, loader.length - 1),\n modelMatrix,\n onViewStateChange,\n renderingMode = RENDERING_MODES.ADDITIVE,\n xSlice = null,\n ySlice = null,\n zSlice = null,\n onViewportLoad,\n height: screenHeight,\n width: screenWidth,\n viewStates: viewStatesProp,\n clippingPlanes = [],\n useFixedAxis = true\n } = props;\n const volumeViewState = viewStatesProp?.find((state) => state?.id === \"3d\");\n const initialViewState = useMemo(() => {\n if (volumeViewState) {\n return volumeViewState;\n }\n const viewState = getDefaultInitialViewState(loader, {\n height: screenHeight,\n width: screenWidth\n }, 1, true, modelMatrix);\n return {\n ...viewState,\n rotationX: 0,\n rotationOrbit: 0\n };\n }, [loader, resolution, modelMatrix]);\n const viewStates = [volumeViewState || {\n ...initialViewState,\n id: \"3d\"\n }];\n const volumeView = new VolumeView({\n id: \"3d\",\n target: viewStates[0].target,\n useFixedAxis\n });\n const layerConfig = {\n loader,\n contrastLimits,\n colors,\n channelsVisible,\n selections,\n colormap,\n xSlice,\n ySlice,\n zSlice,\n resolution,\n renderingMode,\n modelMatrix,\n onViewportLoad: () => setTimeout(onViewportLoad, 0),\n clippingPlanes\n };\n const views = [volumeView];\n const layerProps = [layerConfig];\n return loader ? /* @__PURE__ */ jsxDEV(VivViewer, {\n layerProps,\n views,\n viewStates,\n onViewStateChange,\n useDevicePixels: false\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 5\n }, undefined) : null;\n};\n\nconst VIV_PROXY_KEY = \"__viv\";\nconst OFFSETS_PROXY_KEY = `${VIV_PROXY_KEY}-offsets`;\nfunction checkProxies(tiff) {\n if (!isProxy(tiff, OFFSETS_PROXY_KEY)) {\n console.warn(\"GeoTIFF source is missing offsets proxy.\");\n }\n}\nfunction isProxy(tiff, proxyFlag) {\n return tiff[proxyFlag];\n}\nfunction createOffsetsProxy(tiff, offsets) {\n const get = (target, key) => {\n if (key === \"getImage\") {\n return (index) => {\n if (!(index in target.ifdRequests) && index in offsets) {\n const offset = offsets[index];\n target.ifdRequests[index] = target.parseFileDirectoryAt(offset);\n }\n return target.getImage(index);\n };\n }\n if (key === OFFSETS_PROXY_KEY) {\n return true;\n }\n return Reflect.get(target, key);\n };\n return new Proxy(tiff, {\n get\n });\n}\n\nconst encodedJs = \"KGZ1bmN0aW9uICgpIHsKICAndXNlIHN0cmljdCc7CgogIGZ1bmN0aW9uIGRlY29kZVJvd0FjYyhyb3csIHN0cmlkZSkgewogICAgbGV0IGxlbmd0aCA9IHJvdy5sZW5ndGggLSBzdHJpZGU7CiAgICBsZXQgb2Zmc2V0ID0gMDsKICAgIGRvIHsKICAgICAgZm9yIChsZXQgaSA9IHN0cmlkZTsgaSA+IDA7IGktLSkgewogICAgICAgIHJvd1tvZmZzZXQgKyBzdHJpZGVdICs9IHJvd1tvZmZzZXRdOwogICAgICAgIG9mZnNldCsrOwogICAgICB9CgogICAgICBsZW5ndGggLT0gc3RyaWRlOwogICAgfSB3aGlsZSAobGVuZ3RoID4gMCk7CiAgfQoKICBmdW5jdGlvbiBkZWNvZGVSb3dGbG9hdGluZ1BvaW50KHJvdywgc3RyaWRlLCBieXRlc1BlclNhbXBsZSkgewogICAgbGV0IGluZGV4ID0gMDsKICAgIGxldCBjb3VudCA9IHJvdy5sZW5ndGg7CiAgICBjb25zdCB3YyA9IGNvdW50IC8gYnl0ZXNQZXJTYW1wbGU7CgogICAgd2hpbGUgKGNvdW50ID4gc3RyaWRlKSB7CiAgICAgIGZvciAobGV0IGkgPSBzdHJpZGU7IGkgPiAwOyAtLWkpIHsKICAgICAgICByb3dbaW5kZXggKyBzdHJpZGVdICs9IHJvd1tpbmRleF07CiAgICAgICAgKytpbmRleDsKICAgICAgfQogICAgICBjb3VudCAtPSBzdHJpZGU7CiAgICB9CgogICAgY29uc3QgY29weSA9IHJvdy5zbGljZSgpOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3YzsgKytpKSB7CiAgICAgIGZvciAobGV0IGIgPSAwOyBiIDwgYnl0ZXNQZXJTYW1wbGU7ICsrYikgewogICAgICAgIHJvd1soYnl0ZXNQZXJTYW1wbGUgKiBpKSArIGJdID0gY29weVsoKGJ5dGVzUGVyU2FtcGxlIC0gYiAtIDEpICogd2MpICsgaV07CiAgICAgIH0KICAgIH0KICB9CgogIGZ1bmN0aW9uIGFwcGx5UHJlZGljdG9yKGJsb2NrLCBwcmVkaWN0b3IsIHdpZHRoLCBoZWlnaHQsIGJpdHNQZXJTYW1wbGUsCiAgICBwbGFuYXJDb25maWd1cmF0aW9uKSB7CiAgICBpZiAoIXByZWRpY3RvciB8fCBwcmVkaWN0b3IgPT09IDEpIHsKICAgICAgcmV0dXJuIGJsb2NrOwogICAgfQoKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYml0c1BlclNhbXBsZS5sZW5ndGg7ICsraSkgewogICAgICBpZiAoYml0c1BlclNhbXBsZVtpXSAlIDggIT09IDApIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1doZW4gZGVjb2Rpbmcgd2l0aCBwcmVkaWN0b3IsIG9ubHkgbXVsdGlwbGUgb2YgOCBiaXRzIGFyZSBzdXBwb3J0ZWQuJyk7CiAgICAgIH0KICAgICAgaWYgKGJpdHNQZXJTYW1wbGVbaV0gIT09IGJpdHNQZXJTYW1wbGVbMF0pIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1doZW4gZGVjb2Rpbmcgd2l0aCBwcmVkaWN0b3IsIGFsbCBzYW1wbGVzIG11c3QgaGF2ZSB0aGUgc2FtZSBzaXplLicpOwogICAgICB9CiAgICB9CgogICAgY29uc3QgYnl0ZXNQZXJTYW1wbGUgPSBiaXRzUGVyU2FtcGxlWzBdIC8gODsKICAgIGNvbnN0IHN0cmlkZSA9IHBsYW5hckNvbmZpZ3VyYXRpb24gPT09IDIgPyAxIDogYml0c1BlclNhbXBsZS5sZW5ndGg7CgogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWlnaHQ7ICsraSkgewogICAgICAvLyBMYXN0IHN0cmlwIHdpbGwgYmUgdHJ1bmNhdGVkIGlmIGhlaWdodCAlIHN0cmlwSGVpZ2h0ICE9IDAKICAgICAgaWYgKGkgKiBzdHJpZGUgKiB3aWR0aCAqIGJ5dGVzUGVyU2FtcGxlID49IGJsb2NrLmJ5dGVMZW5ndGgpIHsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBsZXQgcm93OwogICAgICBpZiAocHJlZGljdG9yID09PSAyKSB7IC8vIGhvcml6b250YWwgcHJlZGljdGlvbgogICAgICAgIHN3aXRjaCAoYml0c1BlclNhbXBsZVswXSkgewogICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICByb3cgPSBuZXcgVWludDhBcnJheSgKICAgICAgICAgICAgICBibG9jaywgaSAqIHN0cmlkZSAqIHdpZHRoICogYnl0ZXNQZXJTYW1wbGUsIHN0cmlkZSAqIHdpZHRoICogYnl0ZXNQZXJTYW1wbGUsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgcm93ID0gbmV3IFVpbnQxNkFycmF5KAogICAgICAgICAgICAgIGJsb2NrLCBpICogc3RyaWRlICogd2lkdGggKiBieXRlc1BlclNhbXBsZSwgc3RyaWRlICogd2lkdGggKiBieXRlc1BlclNhbXBsZSAvIDIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAzMjoKICAgICAgICAgICAgcm93ID0gbmV3IFVpbnQzMkFycmF5KAogICAgICAgICAgICAgIGJsb2NrLCBpICogc3RyaWRlICogd2lkdGggKiBieXRlc1BlclNhbXBsZSwgc3RyaWRlICogd2lkdGggKiBieXRlc1BlclNhbXBsZSAvIDQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcmVkaWN0b3IgMiBub3QgYWxsb3dlZCB3aXRoICR7Yml0c1BlclNhbXBsZVswXX0gYml0cyBwZXIgc2FtcGxlLmApOwogICAgICAgIH0KICAgICAgICBkZWNvZGVSb3dBY2Mocm93LCBzdHJpZGUpOwogICAgICB9IGVsc2UgaWYgKHByZWRpY3RvciA9PT0gMykgeyAvLyBob3Jpem9udGFsIGZsb2F0aW5nIHBvaW50CiAgICAgICAgcm93ID0gbmV3IFVpbnQ4QXJyYXkoCiAgICAgICAgICBibG9jaywgaSAqIHN0cmlkZSAqIHdpZHRoICogYnl0ZXNQZXJTYW1wbGUsIHN0cmlkZSAqIHdpZHRoICogYnl0ZXNQZXJTYW1wbGUsCiAgICAgICAgKTsKICAgICAgICBkZWNvZGVSb3dGbG9hdGluZ1BvaW50KHJvdywgc3RyaWRlLCBieXRlc1BlclNhbXBsZSk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBibG9jazsKICB9CgogIGNsYXNzIEJhc2VEZWNvZGVyIHsKICAgIGFzeW5jIGRlY29kZShmaWxlRGlyZWN0b3J5LCBidWZmZXIpIHsKICAgICAgY29uc3QgZGVjb2RlZCA9IGF3YWl0IHRoaXMuZGVjb2RlQmxvY2soYnVmZmVyKTsKICAgICAgY29uc3QgcHJlZGljdG9yID0gZmlsZURpcmVjdG9yeS5QcmVkaWN0b3IgfHwgMTsKICAgICAgaWYgKHByZWRpY3RvciAhPT0gMSkgewogICAgICAgIGNvbnN0IGlzVGlsZWQgPSAhZmlsZURpcmVjdG9yeS5TdHJpcE9mZnNldHM7CiAgICAgICAgY29uc3QgdGlsZVdpZHRoID0gaXNUaWxlZCA/IGZpbGVEaXJlY3RvcnkuVGlsZVdpZHRoIDogZmlsZURpcmVjdG9yeS5JbWFnZVdpZHRoOwogICAgICAgIGNvbnN0IHRpbGVIZWlnaHQgPSBpc1RpbGVkID8gZmlsZURpcmVjdG9yeS5UaWxlTGVuZ3RoIDogKAogICAgICAgICAgZmlsZURpcmVjdG9yeS5Sb3dzUGVyU3RyaXAgfHwgZmlsZURpcmVjdG9yeS5JbWFnZUxlbmd0aAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIGFwcGx5UHJlZGljdG9yKAogICAgICAgICAgZGVjb2RlZCwgcHJlZGljdG9yLCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQsIGZpbGVEaXJlY3RvcnkuQml0c1BlclNhbXBsZSwKICAgICAgICAgIGZpbGVEaXJlY3RvcnkuUGxhbmFyQ29uZmlndXJhdGlvbiwKICAgICAgICApOwogICAgICB9CiAgICAgIHJldHVybiBkZWNvZGVkOwogICAgfQogIH0KCiAgY2xhc3MgUmF3RGVjb2RlciBleHRlbmRzIEJhc2VEZWNvZGVyIHsKICAgIGRlY29kZUJsb2NrKGJ1ZmZlcikgewogICAgICByZXR1cm4gYnVmZmVyOwogICAgfQogIH0KCiAgbGV0IEEsST1udWxsO2Z1bmN0aW9uIGcoKXtyZXR1cm4gbnVsbCE9PUkmJkkuYnVmZmVyPT09QS5tZW1vcnkuYnVmZmVyfHwoST1uZXcgVWludDhBcnJheShBLm1lbW9yeS5idWZmZXIpKSxJfWxldCBCPTA7bGV0IFE9bnVsbDtmdW5jdGlvbiBDKCl7cmV0dXJuIG51bGwhPT1RJiZRLmJ1ZmZlcj09PUEubWVtb3J5LmJ1ZmZlcnx8KFE9bmV3IEludDMyQXJyYXkoQS5tZW1vcnkuYnVmZmVyKSksUX1hc3luYyBmdW5jdGlvbiBFKEkpe3ZvaWQgMD09PUkmJihJPSIiLnJlcGxhY2UoL1wuanMkLywiX2JnLndhc20iKSk7KCJzdHJpbmciPT10eXBlb2YgSXx8ImZ1bmN0aW9uIj09dHlwZW9mIFJlcXVlc3QmJkkgaW5zdGFuY2VvZiBSZXF1ZXN0fHwiZnVuY3Rpb24iPT10eXBlb2YgVVJMJiZJIGluc3RhbmNlb2YgVVJMKSYmKEk9ZmV0Y2goSSkpO2NvbnN0e2luc3RhbmNlOmcsbW9kdWxlOkJ9PWF3YWl0IGFzeW5jIGZ1bmN0aW9uKEEsSSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFJlc3BvbnNlJiZBIGluc3RhbmNlb2YgUmVzcG9uc2Upe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyl0cnl7cmV0dXJuIGF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKEEsSSl9Y2F0Y2goSSl7aWYoImFwcGxpY2F0aW9uL3dhc20iPT1BLmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKSl0aHJvdyBJO2NvbnNvbGUud2FybigiYFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nYCBmYWlsZWQgYmVjYXVzZSB5b3VyIHNlcnZlciBkb2VzIG5vdCBzZXJ2ZSB3YXNtIHdpdGggYGFwcGxpY2F0aW9uL3dhc21gIE1JTUUgdHlwZS4gRmFsbGluZyBiYWNrIHRvIGBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZWAgd2hpY2ggaXMgc2xvd2VyLiBPcmlnaW5hbCBlcnJvcjpcbiIsSSk7fWNvbnN0IGc9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3JldHVybiBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShnLEkpfXtjb25zdCBnPWF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEEsSSk7cmV0dXJuIGcgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5JbnN0YW5jZT97aW5zdGFuY2U6Zyxtb2R1bGU6QX06Z319KGF3YWl0IEkse30pO3JldHVybiBBPWcuZXhwb3J0cyxFLl9fd2JpbmRnZW5fd2FzbV9tb2R1bGU9QixBfXZhciBEPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGRlY29tcHJlc3M6ZnVuY3Rpb24oSSxRKXt0cnl7Y29uc3QgRj1BLl9fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIoLTE2KTt2YXIgRT1mdW5jdGlvbihBLEkpe2NvbnN0IFE9SSgxKkEubGVuZ3RoKTtyZXR1cm4gZygpLnNldChBLFEvMSksQj1BLmxlbmd0aCxRfShJLEEuX193YmluZGdlbl9tYWxsb2MpLEQ9QjtBLmRlY29tcHJlc3MoRixFLEQsUSk7dmFyIGk9QygpW0YvNCswXSx3PUMoKVtGLzQrMV0sRz0obz1pLE49dyxnKCkuc3ViYXJyYXkoby8xLG8vMStOKSkuc2xpY2UoKTtyZXR1cm4gQS5fX3diaW5kZ2VuX2ZyZWUoaSwxKncpLEd9ZmluYWxseXtBLl9fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIoMTYpO312YXIgbyxOO30sZGVmYXVsdDpFfSk7Y29uc3QgaT1bNjIsMCwwLDAsNjMsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsMCwwLDAsMCwwLDAsMCwwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDAsMCwwLDAsMCwwLDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxXTtmdW5jdGlvbiB3KEEpe3JldHVybiBpW0EtNDNdfWNvbnN0IEc9ZnVuY3Rpb24oQSl7bGV0IEksZz1BLmVuZHNXaXRoKCI9PSIpPzI6QS5lbmRzV2l0aCgiPSIpPzE6MCxCPUEubGVuZ3RoLFE9bmV3IFVpbnQ4QXJyYXkoQi80KjMpO2ZvcihsZXQgZz0wLEM9MDtnPEI7Zys9NCxDKz0zKUk9dyhBLmNoYXJDb2RlQXQoZykpPDwxOHx3KEEuY2hhckNvZGVBdChnKzEpKTw8MTJ8dyhBLmNoYXJDb2RlQXQoZysyKSk8PDZ8dyhBLmNoYXJDb2RlQXQoZyszKSksUVtDXT1JPj4xNixRW0MrMV09ST4+OCYyNTUsUVtDKzJdPTI1NSZJO3JldHVybiBRLnN1YmFycmF5KDAsUS5sZW5ndGgtZyl9KCJBR0Z6YlFFQUFBQUJXUTVnQW45L0FYOWdBMzkvZndGL1lBSi9md0JnQVg4QVlBTi9mMzhBWUFGL0FYOWdCSDkvZjM4QVlBUi9mMzkvQVg5Z0JuOS9mMzkvZndCZ0FYOEJmbUFBQUdBRmYzOS9mMzhBWUFWL2YzOS9md0YvWUFKK2Z3Ri9BMjFzQlFnSUN3TUJBZ1VNQVFBQkFBSUFCUUFDQWdZR0RRWURBZ0FDQUFBRUJBUUNBZ1lHQUFZQkJnSUhBd1FEQkFRREF3QURCUU1EQkFRRUJBUUNBZ0FIQUFRQUFnTUJBZ2NGQkFJREFRVUNBZ0lEQWdJREF3Y0NBUUFBQkFJQUNnQUFBUUFGQWdBREJRa0pDUU1DQkFVQmNBRXJLd1VEQVFBUkJna0Jmd0ZCZ0lEQUFBc0hYd1VHYldWdGIzSjVBZ0FLWkdWamIyMXdjbVZ6Y3dBbkgxOWZkMkpwYm1SblpXNWZZV1JrWDNSdlgzTjBZV05yWDNCdmFXNTBaWElBWWhGZlgzZGlhVzVrWjJWdVgyMWhiR3h2WXdCTUQxOWZkMkpwYm1SblpXNWZabkpsWlFCV0NUQUJBRUVCQ3lwcUpEVUNabVZETlFGbVpVTmhhMnBYREQxcFZCb2hTVnRUYUdkZlhERU9YbGhxYVFzY1FXQWJQMlFLc3VnQmJOTXFBZ2gvQVg0Q1FBSkFBa0FDUUNBQVFmVUJUd1JBSUFCQnpmOTdUdzBDSUFCQkMyb2lBRUY0Y1NFR1FaQ253QUFvQWdBaUNFVU5BVUVBSUFacklRUUNRQUpBQW45QkFDQUFRUWgySWdCRkRRQWFRUjhnQmtILy8vOEhTdzBBR2lBR1FRWWdBR2NpQUd0QkgzRjJRUUZ4SUFCQkFYUnJRVDVxQ3lJSFFRSjBRWnlwd0FCcUtBSUFJZ0FFUUNBR1FRQkJHU0FIUVFGMmEwRWZjU0FIUVI5R0czUWhBZ05BQWtBZ0FFRUVhaWdDQUVGNGNTSUZJQVpKRFFBZ0JTQUdheUlGSUFSUERRQWdBQ0VESUFVaUJBMEFRUUFoQkF3REN5QUFRUlJxS0FJQUlnVWdBU0FGSUFBZ0FrRWRka0VFY1dwQkVHb29BZ0FpQUVjYklBRWdCUnNoQVNBQ1FRRjBJUUlnQUEwQUN5QUJCRUFnQVNFQURBSUxJQU1OQWd0QkFDRURRUUlnQjBFZmNYUWlBRUVBSUFCcmNpQUljU0lBUlEwRElBQkJBQ0FBYTNGb1FRSjBRWnlwd0FCcUtBSUFJZ0JGRFFNTEEwQWdBQ0FESUFCQkJHb29BZ0JCZUhFaUFpQUdUeUFDSUFacklnSWdCRWx4SWdFYklRTWdBaUFFSUFFYklRUWdBQ2dDRUNJQ0JIOGdBZ1VnQUVFVWFpZ0NBQXNpQUEwQUN5QURSUTBDQzBHY3FzQUFLQUlBSWdBZ0JrOUJBQ0FFSUFBZ0JtdFBHdzBCSUFNb0FoZ2hCd0pBQWtBZ0F5QURLQUlNSWdGR0JFQWdBMEVVUVJBZ0EwRVVhaUlDS0FJQUlnRWJhaWdDQUNJQURRRkJBQ0VCREFJTElBTW9BZ2dpQUNBQk5nSU1JQUVnQURZQ0NBd0JDeUFDSUFOQkVHb2dBUnNoQWdOQUlBSWhCU0FBSWdGQkZHb2lBaWdDQUNJQVJRUkFJQUZCRUdvaEFpQUJLQUlRSVFBTElBQU5BQXNnQlVFQU5nSUFDd0pBSUFkRkRRQUNRQ0FESUFNb0FoeEJBblJCbktuQUFHb2lBQ2dDQUVjRVFDQUhRUkJCRkNBSEtBSVFJQU5HRzJvZ0FUWUNBQ0FCUlEwQ0RBRUxJQUFnQVRZQ0FDQUJEUUJCa0tmQUFFR1FwOEFBS0FJQVFYNGdBeWdDSEhkeE5nSUFEQUVMSUFFZ0J6WUNHQ0FES0FJUUlnQUVRQ0FCSUFBMkFoQWdBQ0FCTmdJWUN5QURRUlJxS0FJQUlnQkZEUUFnQVVFVWFpQUFOZ0lBSUFBZ0FUWUNHQXNDUUNBRVFSQlBCRUFnQXlBR1FRTnlOZ0lFSUFNZ0Jtb2lCU0FFUVFGeU5nSUVJQVFnQldvZ0JEWUNBQ0FFUVlBQ1R3UkFJQVZDQURjQ0VDQUZBbjlCQUNBRVFRaDJJZ0JGRFFBYVFSOGdCRUgvLy84SFN3MEFHaUFFUVFZZ0FHY2lBR3RCSDNGMlFRRnhJQUJCQVhSclFUNXFDeUlBTmdJY0lBQkJBblJCbktuQUFHb2hBZ0pBQWtBQ1FBSkFRWkNud0FBb0FnQWlBVUVCSUFCQkgzRjBJZ1p4QkVBZ0FpZ0NBQ0lDUVFScUtBSUFRWGh4SUFSSERRRWdBaUVBREFJTFFaQ253QUFnQVNBR2NqWUNBQ0FDSUFVMkFnQU1Bd3NnQkVFQVFSa2dBRUVCZG10QkgzRWdBRUVmUmh0MElRRURRQ0FDSUFGQkhYWkJCSEZxUVJCcUlnWW9BZ0FpQUVVTkFpQUJRUUYwSVFFZ0FDRUNJQUJCQkdvb0FnQkJlSEVnQkVjTkFBc0xJQUFvQWdnaUFpQUZOZ0lNSUFBZ0JUWUNDQ0FGUVFBMkFoZ2dCU0FBTmdJTUlBVWdBallDQ0F3RUN5QUdJQVUyQWdBTElBVWdBallDR0NBRklBVTJBZ3dnQlNBRk5nSUlEQUlMSUFSQkEzWWlBa0VEZEVHVXA4QUFhaUVBQW45QmpLZkFBQ2dDQUNJQlFRRWdBblFpQW5FRVFDQUFLQUlJREFFTFFZeW53QUFnQVNBQ2NqWUNBQ0FBQ3lFQ0lBQWdCVFlDQ0NBQ0lBVTJBZ3dnQlNBQU5nSU1JQVVnQWpZQ0NBd0JDeUFESUFRZ0Jtb2lBRUVEY2pZQ0JDQUFJQU5xSWdBZ0FDZ0NCRUVCY2pZQ0JBc2dBMEVJYWc4TEFrQUNRRUdNcDhBQUtBSUFJZ0ZCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1pCQTNZaUFIWWlBa0VEY1VVRVFDQUdRWnlxd0FBb0FnQk5EUU1nQWcwQlFaQ253QUFvQWdBaUFFVU5BeUFBUVFBZ0FHdHhhRUVDZEVHY3FjQUFhaWdDQUNJQlFRUnFLQUlBUVhoeElBWnJJUVFnQVNFQ0EwQWdBU2dDRUNJQVJRUkFJQUZCRkdvb0FnQWlBRVVOQkFzZ0FFRUVhaWdDQUVGNGNTQUdheUlCSUFRZ0FTQUVTU0lCR3lFRUlBQWdBaUFCR3lFQ0lBQWhBUXdBQ3dBTEFrQWdBa0YvYzBFQmNTQUFhaUlBUVFOMFFZeW53QUJxSWdOQkVHb29BZ0FpQWtFSWFpSUZLQUlBSWdRZ0EwRUlhaUlEUndSQUlBUWdBellDRENBRElBUTJBZ2dNQVF0QmpLZkFBQ0FCUVg0Z0FIZHhOZ0lBQ3lBQ0lBQkJBM1FpQUVFRGNqWUNCQ0FBSUFKcUlnQWdBQ2dDQkVFQmNqWUNCQ0FGRHdzQ1FFRUNJQUIwSWdSQkFDQUVhM0lnQWlBQWRIRWlBRUVBSUFCcmNXZ2lBa0VEZEVHTXA4QUFhaUlEUVJCcUtBSUFJZ0JCQ0dvaUJTZ0NBQ0lFSUFOQkNHb2lBMGNFUUNBRUlBTTJBZ3dnQXlBRU5nSUlEQUVMUVl5bndBQWdBVUYrSUFKM2NUWUNBQXNnQUNBR1FRTnlOZ0lFSUFBZ0Jtb2lBeUFDUVFOMElnSWdCbXNpQVVFQmNqWUNCQ0FBSUFKcUlBRTJBZ0JCbktyQUFDZ0NBQ0lBQkVBZ0FFRURkaUlFUVFOMFFaU253QUJxSVFCQnBLckFBQ2dDQUNFQ0FuOUJqS2ZBQUNnQ0FDSUdRUUVnQkVFZmNYUWlCSEVFUUNBQUtBSUlEQUVMUVl5bndBQWdCQ0FHY2pZQ0FDQUFDeUVFSUFBZ0FqWUNDQ0FFSUFJMkFnd2dBaUFBTmdJTUlBSWdCRFlDQ0F0QnBLckFBQ0FETmdJQVFaeXF3QUFnQVRZQ0FDQUZEd3NnQWlnQ0dDRUhBa0FDUUNBQ0lBSW9BZ3dpQVVZRVFDQUNRUlJCRUNBQ1FSUnFJZ0VvQWdBaUF4dHFLQUlBSWdBTkFVRUFJUUVNQWdzZ0FpZ0NDQ0lBSUFFMkFnd2dBU0FBTmdJSURBRUxJQUVnQWtFUWFpQURHeUVEQTBBZ0F5RUZJQUFpQVVFVWFpSURLQUlBSWdCRkJFQWdBVUVRYWlFRElBRW9BaEFoQUFzZ0FBMEFDeUFGUVFBMkFnQUxJQWRGRFFNZ0FpQUNLQUljUVFKMFFaeXB3QUJxSWdBb0FnQkhCRUFnQjBFUVFSUWdCeWdDRUNBQ1JodHFJQUUyQWdBZ0FVVU5CQXdEQ3lBQUlBRTJBZ0FnQVEwQ1FaQ253QUJCa0tmQUFDZ0NBRUYrSUFJb0FoeDNjVFlDQUF3REN3SkFBa0FDUUFKQUFrQkJuS3JBQUNnQ0FDSUFJQVpKQkVCQm9LckFBQ2dDQUNJQUlBWkxEUU5CQUNFQ0lBWkJyNEFFYWlJQVFSQjJRQUFpQVVGL1JnMEdJQUZCRUhRaUJVVU5Ca0dzcXNBQUlBQkJnSUI4Y1NJRVFheXF3QUFvQWdCcUlnQTJBZ0JCc0tyQUFFR3dxc0FBS0FJQUlnRWdBQ0FCSUFCTEd6WUNBRUdvcXNBQUtBSUFJZ05GRFFGQnRLckFBQ0VBQTBBZ0FDZ0NBQ0lCSUFBb0FnUWlCMm9nQlVZTkF5QUFLQUlJSWdBTkFBc01CQXRCcEtyQUFDZ0NBQ0VDQW44Z0FDQUdheUlCUVE5TkJFQkJwS3JBQUVFQU5nSUFRWnlxd0FCQkFEWUNBQ0FDSUFCQkEzSTJBZ1FnQUNBQ2FpSUJRUVJxSVFBZ0FTZ0NCRUVCY2d3QkMwR2Nxc0FBSUFFMkFnQkJwS3JBQUNBQ0lBWnFJZ1EyQWdBZ0JDQUJRUUZ5TmdJRUlBQWdBbW9nQVRZQ0FDQUNRUVJxSVFBZ0JrRURjZ3NoQVNBQUlBRTJBZ0FnQWtFSWFnOExRY2lxd0FBb0FnQWlBRUVBSUFBZ0JVMGJSUVJBUWNpcXdBQWdCVFlDQUF0QnpLckFBRUgvSHpZQ0FFRzBxc0FBSUFVMkFnQkJ3S3JBQUVFQU5nSUFRYmlxd0FBZ0JEWUNBRUdncDhBQVFaU253QUEyQWdCQnFLZkFBRUdjcDhBQU5nSUFRWnlud0FCQmxLZkFBRFlDQUVHd3A4QUFRYVNud0FBMkFnQkJwS2ZBQUVHY3A4QUFOZ0lBUWJpbndBQkJyS2ZBQURZQ0FFR3NwOEFBUWFTbndBQTJBZ0JCd0tmQUFFRzBwOEFBTmdJQVFiU253QUJCcktmQUFEWUNBRUhJcDhBQVFieW53QUEyQWdCQnZLZkFBRUcwcDhBQU5nSUFRZENud0FCQnhLZkFBRFlDQUVIRXA4QUFRYnlud0FBMkFnQkIyS2ZBQUVITXA4QUFOZ0lBUWN5bndBQkJ4S2ZBQURZQ0FFSGdwOEFBUWRTbndBQTJBZ0JCMUtmQUFFSE1wOEFBTmdJQVFkeW53QUJCMUtmQUFEWUNBRUhvcDhBQVFkeW53QUEyQWdCQjVLZkFBRUhjcDhBQU5nSUFRZkNud0FCQjVLZkFBRFlDQUVIc3A4QUFRZVNud0FBMkFnQkIrS2ZBQUVIc3A4QUFOZ0lBUWZTbndBQkI3S2ZBQURZQ0FFR0FxTUFBUWZTbndBQTJBZ0JCL0tmQUFFSDBwOEFBTmdJQVFZaW93QUJCL0tmQUFEWUNBRUdFcU1BQVFmeW53QUEyQWdCQmtLakFBRUdFcU1BQU5nSUFRWXlvd0FCQmhLakFBRFlDQUVHWXFNQUFRWXlvd0FBMkFnQkJsS2pBQUVHTXFNQUFOZ0lBUWFDb3dBQkJsS2pBQURZQ0FFR29xTUFBUVp5b3dBQTJBZ0JCbktqQUFFR1VxTUFBTmdJQVFiQ293QUJCcEtqQUFEWUNBRUdrcU1BQVFaeW93QUEyQWdCQnVLakFBRUdzcU1BQU5nSUFRYXlvd0FCQnBLakFBRFlDQUVIQXFNQUFRYlNvd0FBMkFnQkJ0S2pBQUVHc3FNQUFOZ0lBUWNpb3dBQkJ2S2pBQURZQ0FFRzhxTUFBUWJTb3dBQTJBZ0JCMEtqQUFFSEVxTUFBTmdJQVFjU293QUJCdktqQUFEWUNBRUhZcU1BQVFjeW93QUEyQWdCQnpLakFBRUhFcU1BQU5nSUFRZUNvd0FCQjFLakFBRFlDQUVIVXFNQUFRY3lvd0FBMkFnQkI2S2pBQUVIY3FNQUFOZ0lBUWR5b3dBQkIxS2pBQURZQ0FFSHdxTUFBUWVTb3dBQTJBZ0JCNUtqQUFFSGNxTUFBTmdJQVFmaW93QUJCN0tqQUFEWUNBRUhzcU1BQVFlU293QUEyQWdCQmdLbkFBRUgwcU1BQU5nSUFRZlNvd0FCQjdLakFBRFlDQUVHSXFjQUFRZnlvd0FBMkFnQkIvS2pBQUVIMHFNQUFOZ0lBUVpDcHdBQkJoS25BQURZQ0FFR0VxY0FBUWZ5b3dBQTJBZ0JCbUtuQUFFR01xY0FBTmdJQVFZeXB3QUJCaEtuQUFEWUNBRUdvcXNBQUlBVTJBZ0JCbEtuQUFFR01xY0FBTmdJQVFhQ3F3QUFnQkVGWWFpSUFOZ0lBSUFVZ0FFRUJjallDQkNBQUlBVnFRU2cyQWdSQnhLckFBRUdBZ0lBQk5nSUFEQU1MSUFCQkRHb29BZ0FnQlNBRFRYSWdBU0FEUzNJTkFTQUFJQVFnQjJvMkFnUkJxS3JBQUVHb3FzQUFLQUlBSWdCQkQycEJlSEVpQVVGNGFqWUNBRUdncXNBQVFhQ3F3QUFvQWdBZ0JHb2lCQ0FBSUFGcmFrRUlhaUlETmdJQUlBRkJmR29nQTBFQmNqWUNBQ0FBSUFScVFTZzJBZ1JCeEtyQUFFR0FnSUFCTmdJQURBSUxRYUNxd0FBZ0FDQUdheUlDTmdJQVFhaXF3QUJCcUtyQUFDZ0NBQ0lBSUFacUlnRTJBZ0FnQVNBQ1FRRnlOZ0lFSUFBZ0JrRURjallDQkNBQVFRaHFJUUlNQWd0QnlLckFBRUhJcXNBQUtBSUFJZ0FnQlNBQUlBVkpHellDQUNBRUlBVnFJUUZCdEtyQUFDRUFBa0FEUUNBQklBQW9BZ0JIQkVBZ0FDZ0NDQ0lBRFFFTUFnc0xJQUJCREdvb0FnQU5BQ0FBSUFVMkFnQWdBQ0FBS0FJRUlBUnFOZ0lFSUFVZ0JrRURjallDQkNBRklBWnFJUUFnQVNBRmF5QUdheUVHQWtBQ1FDQUJRYWlxd0FBb0FnQkhCRUJCcEtyQUFDZ0NBQ0FCUmcwQklBRkJCR29vQWdBaUFrRURjVUVCUmdSQUlBRWdBa0Y0Y1NJQ0VCRWdBaUFHYWlFR0lBRWdBbW9oQVFzZ0FTQUJLQUlFUVg1eE5nSUVJQUFnQmtFQmNqWUNCQ0FBSUFacUlBWTJBZ0FnQmtHQUFrOEVRQ0FBUWdBM0FoQWdBQUovUVFBZ0JrRUlkaUlDUlEwQUdrRWZJQVpCLy8vL0Iwc05BQm9nQmtFR0lBSm5JZ0pyUVI5eGRrRUJjU0FDUVFGMGEwRSthZ3NpQVRZQ0hDQUJRUUowUVp5cHdBQnFJUUlDUUFKQUFrQUNRRUdRcDhBQUtBSUFJZ1JCQVNBQlFSOXhkQ0lEY1FSQUlBSW9BZ0FpQWtFRWFpZ0NBRUY0Y1NBR1J3MEJJQUloQkF3Q0MwR1FwOEFBSUFNZ0JISTJBZ0FnQWlBQU5nSUFEQU1MSUFaQkFFRVpJQUZCQVhaclFSOXhJQUZCSDBZYmRDRUJBMEFnQWlBQlFSMTJRUVJ4YWtFUWFpSURLQUlBSWdSRkRRSWdBVUVCZENFQklBUWlBa0VFYWlnQ0FFRjRjU0FHUncwQUN3c2dCQ2dDQ0NJQ0lBQTJBZ3dnQkNBQU5nSUlJQUJCQURZQ0dDQUFJQVEyQWd3Z0FDQUNOZ0lJREFVTElBTWdBRFlDQUFzZ0FDQUNOZ0lZSUFBZ0FEWUNEQ0FBSUFBMkFnZ01Bd3NnQmtFRGRpSUJRUU4wUVpTbndBQnFJUUlDZjBHTXA4QUFLQUlBSWdSQkFTQUJkQ0lCY1FSQUlBSW9BZ2dNQVF0QmpLZkFBQ0FCSUFSeU5nSUFJQUlMSVFFZ0FpQUFOZ0lJSUFFZ0FEWUNEQ0FBSUFJMkFnd2dBQ0FCTmdJSURBSUxRYWlxd0FBZ0FEWUNBRUdncXNBQVFhQ3F3QUFvQWdBZ0Jtb2lBallDQUNBQUlBSkJBWEkyQWdRTUFRdEJwS3JBQUNBQU5nSUFRWnlxd0FCQm5LckFBQ2dDQUNBR2FpSUNOZ0lBSUFBZ0FrRUJjallDQkNBQUlBSnFJQUkyQWdBTElBVkJDR29QQzBHMHFzQUFJUUFEUUFKQUlBQW9BZ0FpQVNBRFRRUkFJQUVnQUNnQ0JHb2lCeUFEU3cwQkN5QUFLQUlJSVFBTUFRc0xRYWlxd0FBZ0JUWUNBRUdncXNBQUlBUkJXR29pQURZQ0FDQUZJQUJCQVhJMkFnUWdBQ0FGYWtFb05nSUVRY1Nxd0FCQmdJQ0FBVFlDQUNBRElBZEJZR3BCZUhGQmVHb2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUkJ0S3JBQUNrQ0FDRUpJQUZCRUdwQnZLckFBQ2tDQURjQ0FDQUJJQWszQWdoQndLckFBRUVBTmdJQVFiaXF3QUFnQkRZQ0FFRzBxc0FBSUFVMkFnQkJ2S3JBQUNBQlFRaHFOZ0lBSUFGQkhHb2hBQU5BSUFCQkJ6WUNBQ0FISUFCQkJHb2lBRXNOQUFzZ0FTQURSZzBBSUFFZ0FTZ0NCRUYrY1RZQ0JDQURJQUVnQTJzaUJVRUJjallDQkNBQklBVTJBZ0FnQlVHQUFrOEVRQ0FEUWdBM0FoQWdBMEVjYWdKL1FRQWdCVUVJZGlJQVJRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRUdJQUJuSWdCclFSOXhka0VCY1NBQVFRRjBhMEUrYWdzaUFEWUNBQ0FBUVFKMFFaeXB3QUJxSVFFQ1FBSkFBa0FDUUVHUXA4QUFLQUlBSWdSQkFTQUFRUjl4ZENJSGNRUkFJQUVvQWdBaUJFRUVhaWdDQUVGNGNTQUZSdzBCSUFRaEFBd0NDMEdRcDhBQUlBUWdCM0kyQWdBZ0FTQUROZ0lBSUFOQkdHb2dBVFlDQUF3REN5QUZRUUJCR1NBQVFRRjJhMEVmY1NBQVFSOUdHM1FoQVFOQUlBUWdBVUVkZGtFRWNXcEJFR29pQnlnQ0FDSUFSUTBDSUFGQkFYUWhBU0FBSVFRZ0FFRUVhaWdDQUVGNGNTQUZSdzBBQ3dzZ0FDZ0NDQ0lCSUFNMkFnd2dBQ0FETmdJSUlBTkJHR3BCQURZQ0FDQURJQUEyQWd3Z0F5QUJOZ0lJREFNTElBY2dBellDQUNBRFFSaHFJQVEyQWdBTElBTWdBellDRENBRElBTTJBZ2dNQVFzZ0JVRURkaUlCUVFOMFFaU253QUJxSVFBQ2YwR01wOEFBS0FJQUlnUkJBU0FCZENJQmNRUkFJQUFvQWdnTUFRdEJqS2ZBQUNBQklBUnlOZ0lBSUFBTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlDMEdncXNBQUtBSUFJZ0FnQmswTkFFR2dxc0FBSUFBZ0Jtc2lBallDQUVHb3FzQUFRYWlxd0FBb0FnQWlBQ0FHYWlJQk5nSUFJQUVnQWtFQmNqWUNCQ0FBSUFaQkEzSTJBZ1FnQUVFSWFnOExJQUlQQ3lBQklBYzJBaGdnQWlnQ0VDSUFCRUFnQVNBQU5nSVFJQUFnQVRZQ0dBc2dBa0VVYWlnQ0FDSUFSUTBBSUFGQkZHb2dBRFlDQUNBQUlBRTJBaGdMQWtBZ0JFRVFUd1JBSUFJZ0JrRURjallDQkNBQ0lBWnFJZ01nQkVFQmNqWUNCQ0FESUFScUlBUTJBZ0JCbktyQUFDZ0NBQ0lBQkVBZ0FFRURkaUlGUVFOMFFaU253QUJxSVFCQnBLckFBQ2dDQUNFQkFuOUJqS2ZBQUNnQ0FDSUdRUUVnQlVFZmNYUWlCWEVFUUNBQUtBSUlEQUVMUVl5bndBQWdCU0FHY2pZQ0FDQUFDeUVGSUFBZ0FUWUNDQ0FGSUFFMkFnd2dBU0FBTmdJTUlBRWdCVFlDQ0F0QnBLckFBQ0FETmdJQVFaeXF3QUFnQkRZQ0FBd0JDeUFDSUFRZ0Jtb2lBRUVEY2pZQ0JDQUFJQUpxSWdBZ0FDZ0NCRUVCY2pZQ0JBc2dBa0VJYWd2aEVBSVNmd0orSXdCQmdBRnJJZ1lrQUNBR0lBTTJBaXdnQmlBQ05nSW9Ba0FDZndKQUFrQUNRQUpBSUFFdEFFZEZCRUFnQVNrRE9DRVlJQUZDQURjRE9BSi9JQmhDLy84RGcxQkZCRUFnR0VJd2lLY2hFU0FZUWhDSXB5RU1JQmhDSUlpbkRBRUxJQVpCSUdvZ0FTQUdRU2hxRUNzZ0JpOEJJRVVFUUVFQklRME1CZ3RCQXlFTklBWXZBU0lpRENJQ0lBRXZBVUJQRFFVZ0FpQUJMd0ZDUmcwQ0lBRXZBVVFnREVILy93TnhSZzBESUFGQkdHb29BZ0JGRFFVZ0FVRW9haUFCUVJCcUlnY2dEQkFtR2lBQktBSVlJZ0lnREVILy93TnhJZ3BORFFRZ0J5Z0NBQ0FLUVFKMGFpSUNMUUFDSVJFZ0FpOEJBQXNoRXlBR1FSaHFJQUZCS0dvUVFpQUdLQUlZSVFJQ1FDQUdLQUljSWdjZ0JVMEVRQ0FIRFFGQkFTRVNRUUVoRFNBRklRZEJBUXdIQ3lBRlJRUkFRUUVoRFVFQUlRZEJBUXdIQ3lBRUlBSWdCUkJMR2lBQlFUQnFJZ0lnQWlnQ0FDQUZhallDQUVHSWc4QUFJUVJCQUNFTlFRQWhCMEVCREFZTElBUWdBaUFIRUVzZ0FVRXdhaUlDSUFJb0FnQWdCMm8yQWdBZ0Iyb2hCQ0FGSUFkcklRZEJBQ0VOUVFFTUJRc2dBRUVDT2dBSUlBQkNBRGNDQUF3RkN5QUJJQUV0QUVZaUIwRUJhaUlDT2dBS0lBRkJBU0FIUVE5eGRFRUNhanNCUUNBQlFYOGdBa0VQY1hSQmYzTTdBUWdnQVVFUWFpQUhFQTFCQUNFTVFRQWhEU0FGSVFkQkFBd0RDeUFCUVFFNkFFZEJBaUVOREFFTElBb2dBa0hvaHNBQUVEWUFDMEVBSVF3Z0JTRUhRUUFMSVFJZ0JrRTRha0VBTmdJQUlBWkNBRGNETUNBR1FjZ0Fha0VBTmdJQUlBWkNBRGNEUUNBR1Fmd0Fha0VBTmdJQUlBWkI5QUJxUVFBMkFnQWdCa0hzQUdwQkFEWUNBQ0FHUWVRQWFrRUFOZ0lBSUFaQjNBQnFRUUEyQWdBZ0JrSFlpY0FBTmdKNElBWkIySW5BQURZQ2NDQUdRZGlKd0FBMkFtZ2dCa0hZaWNBQU5nSmdJQVpCMkluQUFEWUNXQ0FHUVFBMkFsUWdCa0hZaWNBQU5nSlFBa0FDZndKQUlBSkZEUUFnQVVFUWFpRVVJQUZCS0dvaEZTQUdRY2dBYWlFWElBWkJQbW9oRmdKQUFrQUNRQUpBQWtBQ1FBSkFBa0FEUUFKQUFrQWdCdzBBSUFaQkVHb2dGUkJDSUFZb0FoUkZEUUJCQUNFSERBRUxJQUVnQmtFb2FoQVlRUUFoQ3lBWElSQkJBQ0VPQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQTBBZ0FTMEFDeUlDSUFFdEFBb2lDRWtOQVNBQklBSWdDR3M2QUFzZ0JrRXdhaUFMYWlJS0lBRXZBUWdpQWlBQktRTUFJQWl0aVNJWXAzRTdBUUFnQVNBWUlBS3RRbitGUW9DQWZJU0ROd01BSUE0RVFDQU9RWDlxUVFWTERRVWdCeUFMSUJacUx3RUFJZ0pKRFFZZ0VDQUVOZ0lBSUJCQkJHb2dBallDQUNBSElBSnJJUWNnQWlBRWFpRUVDeUFCTHdGQUlnSWdEbXBCLy84RGNTQUJMd0VJSUFFdEFFaHJRZi8vQTNGR0RRSWdDaThCQUNJS0lBRXZBVUpHSUFvZ0FrOXlEUUlnQ2lBQkx3RkVSZzBDSUFFb0FpUWlBaUFLVFEwR0lBY2dBU2dDSENBS1FRRjBhaThCQUNJQ1NRMENJQTVCQVdvaERpQUxJQlpxUVFKcUlBSTdBUUFnRUVFSWFpRVFJQXRCQW1vaUMwRU1SdzBBQzBFR0lRNUJCU0VRSUFZdkFUb2hDQXdIQ3lBT0RRRkJBU0FOSUJJYklRME1DQXNnRGtFQmFpRU9DeUFPUVFkUERRTWdCa0V3YWlBT1FYOXFJaEJCQVhScUx3RUFJUWdnRUEwRUlBd2hDZ3dGQ3lBT1FYOXFRUVpCbUlUQUFCQTJBQXRCNklIQUFFRWpRZmlDd0FBUVNBQUxJQW9nQWtHb2hNQUFFRFlBQ3lBT1FRWkJ1SVRBQUJBM0FBc2dCa0hRQUdvaEFpQUdRVEJxSVFzRFFDQUdRUWhxSUJRZ0ZDQUxMd0VBSWdvZ0FpZ0NBQ0FDUVFScUtBSUFFQ2tnREJBaklBWXRBQW9oRVNBR0x3RUlJUk1nQVNBQkx3RkFRUUZxT3dGQUlBdEJBbW9oQ3lBQ1FRaHFJUUlnQ2lFTUlCQkJmMm9pRUEwQUN5QU9RUU4wSUFacVFVQnJJZ0lvQWdRaENTQUNRUUEyQWdRZ0FpZ0NBQ0VQSUFKQmlJUEFBRFlDQUFzZ0NDSU1JQUV2QVVKR0RRTUNRQ0FCTHdGRUlBaEhCRUFnQ0NBQkx3RkFJZ0pORFFGQkF5RU5RUUFNRFFzZ0FVRUJPZ0JIUVFJaERVRUFEQXdMQW44Z0J3Si9Ba0FDUUNBQ0lBaEhCRUFnQVNnQ0pDSUNJQWhMRFFFZ0NDQUNRZGlFd0FBUU5nQUxJQUVvQWlRaUFpQUtRZi8vQTNFaUNFME5DQ0FISUFFb0Fod2dDRUVCZEdvdkFRQkJBV3BCLy84RGNTSUNUdzBCSUE4RVFDQUJLQUlzSWdJZ0NVa05DaUFCS0FJb0lBOGdDUkJMR2lBQklBazJBakFnQVNBSk5nSTBDMEVBSVE4Z0ZSQXpJUXRCQVF3REN5QUhJQUVvQWh3Z0NFRUJkR292QVFBaUFra0VRRUVBSVE4Z0ZTQVVJQXdRSmlFTFFRRU1Bd3NnRkNBTUlBUWdBaEFwSVFzZ0Fnd0JDeUFQUlFSQUlBRW9BaXdpQ0NBQktBSTBJZ2xKRFFrZ0ZTZ0NBQ0VQQ3lBSlJRMEVJQWtnQWtzTkNTQVBMUUFBSVFzZ0JDQVBJQWtRU3lBQ0lBbEdEUW9nQ1dvZ0N6b0FBQ0FDQ3lJSmF5RUhJQWtnQkNJUGFpRUVRUUFMSUFFb0FoaEIveDlOQkVBZ0JpQVVJQXNnQ2hBaklBRXZBVUFoRUNBR0xRQUNJUkVnQmk4QkFDRVRBa0FnQVMwQUNpSUlRUXRMRFFBZ0VDQUJMd0VJSWdvZ0FTMEFTR3RCLy84RGNVY05BQ0FCSUFoQkFXbzZBQW9nQVNBS1FRRjBRUUZ5T3dFSUN5QUJJQkJCQVdvN0FVQUxRUUFoRWtVTkFRc0xRZ0VoR1NBUFJRMEtJQUVvQWl3aUFpQUpTUTBISUFFb0FpZ2dEeUFKRUVzYUlBRWdDVFlDTUNBQklBazJBalFNQ2d0QkFFRUFRWWlGd0FBUU5nQUxJQUVRTkF3R0N5QUlJQUpCeUlUQUFCQTJBQXNnQ1NBQ1FlaUV3QUFRTndBTElBa2dDRUg0aE1BQUVEY0FDeUFKSUFKQm1JWEFBQkEzQUF0QkFFRUFRYWlGd0FBUU5nQUxJQWtnQWtHNGhjQUFFRGNBQzBFQUN5RU1RUUFoRTBFQUlSRUxJQUFnQlNBSGF6WUNCQ0FBSUFNZ0JpZ0NMQ0lDYXpZQ0FDQUFRUUFnRFNBRElBSkxHeUFOSUExQkFVWWJPZ0FJSUFFZ0RLMUMvLzhEZzBJUWhpQVpoQ0FUclVMLy93T0RRaUNHaENBUnJVTC9BWU5DTUlhRU53TTRDeUFHUVlBQmFpUUFDOVlRQWhGL0FuNGpBRUdBQVdzaUJpUUFJQVlnQXpZQ0xDQUdJQUkyQWlnQ1FBSi9Ba0FDUUFKQUFrQWdBUzBBUjBVRVFDQUJLUU00SVJjZ0FVSUFOd000QW44Z0YwTC8vd09EVUVVRVFDQVhRakNJcHlFUklCZENFSWluSVF3Z0YwSWdpS2NNQVFzZ0JrRWdhaUFCSUFaQktHb1FMaUFHTHdFZ1JRUkFRUUVoRFF3R0MwRURJUTBnQmk4QklpSU1JZ0lnQVM4QlFFOE5CU0FDSUFFdkFVSkdEUUlnQVM4QlJDQU1RZi8vQTNGR0RRTWdBVUVZYWlnQ0FFVU5CU0FCUVNocUlBRkJFR29pQnlBTUVDWWFJQUVvQWhnaUFpQU1RZi8vQTNFaUNVME5CQ0FIS0FJQUlBbEJBblJxSWdJdEFBSWhFU0FDTHdFQUN5RVNJQVpCR0dvZ0FVRW9haEJDSUFZb0FoZ2hBZ0pBSUFZb0Fod2lCeUFGVFFSQUlBY05BVUVCSVFoQkFTRU5JQVVoQjBFQkRBY0xJQVZGQkVCQkFTRU5RUUFoQjBFQkRBY0xJQVFnQWlBRkVFc2FJQUZCTUdvaUFpQUNLQUlBSUFWcU5nSUFRWWlEd0FBaEJFRUFJUTFCQUNFSFFRRU1CZ3NnQkNBQ0lBY1FTeUFCUVRCcUlnSWdBaWdDQUNBSGFqWUNBQ0FIYWlFRUlBVWdCMnNoQjBFQUlRMUJBUXdGQ3lBQVFRSTZBQWdnQUVJQU53SUFEQVVMSUFFZ0FTMEFSaUlIUVFGcUlnSTZBQW9nQVVFQklBZEJEM0YwUVFKcU93RkFJQUZCZnlBQ1FROXhkRUYvY3pzQkNDQUJRUkJxSUFjUURVRUFJUXhCQUNFTklBVWhCMEVBREFNTElBRkJBVG9BUjBFQ0lRME1BUXNnQ1NBQ1FlaUd3QUFRTmdBTFFRQWhEQ0FGSVFkQkFBc2hBaUFHUVRocVFRQTJBZ0FnQmtJQU53TXdJQVpCeUFCcVFRQTJBZ0FnQmtJQU53TkFJQVpCL0FCcVFRQTJBZ0FnQmtIMEFHcEJBRFlDQUNBR1Fld0Fha0VBTmdJQUlBWkI1QUJxUVFBMkFnQWdCa0hjQUdwQkFEWUNBQ0FHUWRpSndBQTJBbmdnQmtIWWljQUFOZ0p3SUFaQjJJbkFBRFlDYUNBR1FkaUp3QUEyQW1BZ0JrSFlpY0FBTmdKWUlBWkJBRFlDVkNBR1FkaUp3QUEyQWxBQ1FBSi9Ba0FnQWtVTkFDQUJRUkJxSVJNZ0FVRW9haUVVSUFaQnlBQnFJUllnQmtFK2FpRVZBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBTkFBa0FDUUNBSERRQWdCa0VRYWlBVUVFSWdCaWdDRkVVTkFFRUFJUWNNQVFzZ0FTQUdRU2hxRUNCQkFDRUxJQlloRUVFQUlRNENRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQURRQ0FCTFFBTElnSWdBUzBBQ2lJSlNRMEJJQUVnQWlBSmF6b0FDeUFCSUFFcEF3QWlGeUFKclVJL2c0ZzNBd0FnQmtFd2FpQUxhaUlKSUFFdkFRZ2dGNmR4T3dFQUlBNEVRQ0FPUVg5cVFRVkxEUVVnQnlBTElCVnFMd0VBSWdKSkRRWWdFQ0FFTmdJQUlCQkJCR29nQWpZQ0FDQUhJQUpySVFjZ0FpQUVhaUVFQ3lBQkx3RkFJZ0lnRG1wQi8vOERjU0FCTHdFSUlBRXRBRWhyUWYvL0EzRkdEUUlnQ1M4QkFDSUpJQUV2QVVKR0lBa2dBazl5RFFJZ0NTQUJMd0ZFUmcwQ0lBRW9BaVFpQWlBSlRRMEdJQWNnQVNnQ0hDQUpRUUYwYWk4QkFDSUNTUTBDSUE1QkFXb2hEaUFMSUJWcVFRSnFJQUk3QVFBZ0VFRUlhaUVRSUF0QkFtb2lDMEVNUncwQUMwRUdJUTVCQlNFUUlBWXZBVG9oQ0F3SEN5QU9EUUZCQVNBTklBZ2JJUTBNQ0FzZ0RrRUJhaUVPQ3lBT1FRZFBEUU1nQmtFd2FpQU9RWDlxSWhCQkFYUnFMd0VBSVFnZ0VBMEVJQXdoQ1F3RkN5QU9RWDlxUVFaQm1JVEFBQkEyQUF0QjZJSEFBRUVqUWZpQ3dBQVFTQUFMSUFrZ0FrR29oTUFBRURZQUN5QU9RUVpCdUlUQUFCQTNBQXNnQmtIUUFHb2hBaUFHUVRCcUlRc0RRQ0FHUVFocUlCTWdFeUFMTHdFQUlna2dBaWdDQUNBQ1FRUnFLQUlBRUNrZ0RCQWpJQVl0QUFvaEVTQUdMd0VJSVJJZ0FTQUJMd0ZBUVFGcU93RkFJQXRCQW1vaEN5QUNRUWhxSVFJZ0NTRU1JQkJCZjJvaUVBMEFDeUFPUVFOMElBWnFRVUJySWdJb0FnUWhDaUFDUVFBMkFnUWdBaWdDQUNFUElBSkJpSVBBQURZQ0FBc2dDQ0lNSUFFdkFVSkdEUU1DUUNBQkx3RkVJQWhIQkVBZ0NDQUJMd0ZBSWdKTkRRRkJBeUVOUVFBTURRc2dBVUVCT2dCSFFRSWhEVUVBREF3TEFuOGdCd0ovQWtBQ1FDQUNJQWhIQkVBZ0FTZ0NKQ0lDSUFoTERRRWdDQ0FDUWRpRXdBQVFOZ0FMSUFFb0FpUWlBaUFKUWYvL0EzRWlDRTBOQ0NBSElBRW9BaHdnQ0VFQmRHb3ZBUUJCQVdwQi8vOERjU0lDVHcwQklBOEVRQ0FCS0FJc0lnSWdDa2tOQ2lBQktBSW9JQThnQ2hCTEdpQUJJQW8yQWpBZ0FTQUtOZ0kwQzBFQUlROGdGQkF6SVF0QkFRd0RDeUFISUFFb0Fod2dDRUVCZEdvdkFRQWlBa2tFUUVFQUlROGdGQ0FUSUF3UUppRUxRUUVNQXdzZ0V5QU1JQVFnQWhBcElRc2dBZ3dCQ3lBUFJRUkFJQUVvQWl3aUNDQUJLQUkwSWdwSkRRa2dGQ2dDQUNFUEN5QUtSUTBFSUFvZ0Frc05DU0FQTFFBQUlRc2dCQ0FQSUFvUVN5QUNJQXBHRFFvZ0Ntb2dDem9BQUNBQ0N5SUtheUVISUFvZ0JDSVBhaUVFUVFBTElBRW9BaGhCL3g5TkJFQWdCaUFUSUFzZ0NSQWpJQUV2QVVBaEVDQUdMUUFDSVJFZ0JpOEJBQ0VTQWtBZ0FTMEFDaUlJUVF0TERRQWdFQ0FCTHdFSUlna2dBUzBBU0d0Qi8vOERjVWNOQUNBQklBaEJBV282QUFvZ0FTQUpRUUYwUVFGeU93RUlDeUFCSUJCQkFXbzdBVUFMUVFBaENFVU5BUXNMUWdFaEdDQVBSUTBLSUFFb0Fpd2lBaUFLU1EwSElBRW9BaWdnRHlBS0VFc2FJQUVnQ2pZQ01DQUJJQW8yQWpRTUNndEJBRUVBUVlpRndBQVFOZ0FMSUFFUU5Bd0dDeUFJSUFKQnlJVEFBQkEyQUFzZ0NpQUNRZWlFd0FBUU53QUxJQW9nQ0VINGhNQUFFRGNBQ3lBS0lBSkJtSVhBQUJBM0FBdEJBRUVBUWFpRndBQVFOZ0FMSUFvZ0FrRzRoY0FBRURjQUMwRUFDeUVNUVFBaEVrRUFJUkVMSUFBZ0JTQUhhellDQkNBQUlBTWdCaWdDTENJQ2F6WUNBQ0FBUVFBZ0RTQURJQUpMR3lBTklBMUJBVVliT2dBSUlBRWdESzFDLy84RGcwSVFoaUFZaENBU3JVTC8vd09EUWlDR2hDQVJyVUwvQVlOQ01JYUVOd000Q3lBR1FZQUJhaVFBQzZvSUFRWi9Jd0JCOEFCcklnVWtBQ0FGSUFNMkFnd2dCU0FDTmdJSVFRRWhCeUFCSVFZQ1FDQUJRWUVDU1EwQVFRQWdBV3NoQ1VHQUFpRUlBMEFDUUNBSUlBRlBEUUJCQUNFSElBQWdDR29zQUFCQnYzOU1EUUFnQ0NFR0RBSUxJQWhCZjJvaEJrRUFJUWNnQ0VFQlJnMEJJQWdnQ1dvZ0JpRUlRUUZIRFFBTEN5QUZJQVkyQWhRZ0JTQUFOZ0lRSUFWQkFFRUZJQWNiTmdJY0lBVkI4SXZBQUVIQWtzQUFJQWNiTmdJWUFrQUNmd0pBQWtBZ0FpQUJTeUlISUFNZ0FVdHlSUVJBSUFJZ0Ewc05BUUpBSUFKRklBRWdBa1p5UlFSQUlBRWdBazBOQVNBQUlBSnFMQUFBUVVCSURRRUxJQU1oQWdzZ0JTQUNOZ0lnSUFKQkFDQUJJQUpIRzBVRVFDQUNJUWNNQXdzZ0FVRUJhaUVEQTBBQ1FDQUNJQUZQRFFBZ0FDQUNhaXdBQUVGQVNBMEFJQUloQnlBRlFTUnFEQVVMSUFKQmYyb2hCeUFDUVFGR0RRTWdBaUFEUmlBSElRSkZEUUFMREFJTElBVWdBaUFESUFjYk5nSW9JQVZCeEFCcVFRTTJBZ0FnQlVIY0FHcEJIVFlDQUNBRlFkUUFha0VkTmdJQUlBVkNBemNDTkNBRlFlaVN3QUEyQWpBZ0JVRWNOZ0pNSUFVZ0JVSElBR28yQWtBZ0JTQUZRUmhxTmdKWUlBVWdCVUVRYWpZQ1VDQUZJQVZCS0dvMkFrZ01Bd3NnQlVIa0FHcEJIVFlDQUNBRlFkd0Fha0VkTmdJQUlBVkIxQUJxUVJ3MkFnQWdCVUhFQUdwQkJEWUNBQ0FGUWdRM0FqUWdCVUdrazhBQU5nSXdJQVZCSERZQ1RDQUZJQVZCeUFCcU5nSkFJQVVnQlVFWWFqWUNZQ0FGSUFWQkVHbzJBbGdnQlNBRlFReHFOZ0pRSUFVZ0JVRUlhallDU0F3Q0N5QUZRU1JxQ3lFSUFrQWdBU0FIUmcwQVFRRWhBd0pBQWtBQ1FDQUFJQWRxSWdZc0FBQWlBa0YvVEFSQVFRQWhBeUFBSUFGcUlnRWhBQ0FCSUFaQkFXcEhCRUFnQmkwQUFVRS9jU0VESUFaQkFtb2hBQXNnQWtFZmNTRUpJQUpCL3dGeFFkOEJTdzBCSUFNZ0NVRUdkSEloQWd3Q0N5QUZJQUpCL3dGeE5nSWtJQVZCS0dvaEFRd0NDMEVBSVFvZ0FTRUdJQUFnQVVjRVFDQUFMUUFBUVQ5eElRb2dBRUVCYWlFR0N5QUtJQU5CQm5SeUlRQWdBa0gvQVhGQjhBRkpCRUFnQUNBSlFReDBjaUVDREFFTFFRQWhBaUFCSUFaSEJIOGdCaTBBQUVFL2NRVkJBQXNnQ1VFU2RFR0FnUEFBY1NBQVFRWjBjbklpQWtHQWdNUUFSZzBDQ3lBRklBSTJBaVJCQVNFRElBVkJLR29oQVNBQ1FZQUJTUTBBUVFJaEF5QUNRWUFRU1EwQVFRTkJCQ0FDUVlDQUJFa2JJUU1MSUFVZ0J6WUNLQ0FGSUFNZ0IybzJBaXdnQlVIRUFHcEJCVFlDQUNBRlFld0Fha0VkTmdJQUlBVkI1QUJxUVIwMkFnQWdCVUhjQUdwQkhqWUNBQ0FGUWRRQWFrRWZOZ0lBSUFWQ0JUY0NOQ0FGUWZpVHdBQTJBakFnQlNBQk5nSllJQVVnQ0RZQ1VDQUZRUncyQWt3Z0JTQUZRY2dBYWpZQ1FDQUZJQVZCR0dvMkFtZ2dCU0FGUVJCcU5nSmdJQVVnQlVFZ2FqWUNTQXdCQzBIOGk4QUFRU3NnQkJCSUFBc2dCVUV3YWlBRUVGRUFDOUlJQVFWL0lBQkJlR29pQVNBQVFYeHFLQUlBSWdOQmVIRWlBR29oQWdKQUFrQWdBMEVCY1EwQUlBTkJBM0ZGRFFFZ0FTZ0NBQ0lESUFCcUlRQWdBU0FEYXlJQlFhU3F3QUFvQWdCR0JFQWdBaWdDQkVFRGNVRURSdzBCUVp5cXdBQWdBRFlDQUNBQ0lBSW9BZ1JCZm5FMkFnUWdBU0FBUVFGeU5nSUVJQUFnQVdvZ0FEWUNBQThMSUFFZ0F4QVJDd0pBSUFKQkJHb2lCQ2dDQUNJRFFRSnhCRUFnQkNBRFFYNXhOZ0lBSUFFZ0FFRUJjallDQkNBQUlBRnFJQUEyQWdBTUFRc0NRQ0FDUWFpcXdBQW9BZ0JIQkVCQnBLckFBQ2dDQUNBQ1JnMEJJQUlnQTBGNGNTSUNFQkVnQVNBQUlBSnFJZ0JCQVhJMkFnUWdBQ0FCYWlBQU5nSUFJQUZCcEtyQUFDZ0NBRWNOQWtHY3FzQUFJQUEyQWdBUEMwR29xc0FBSUFFMkFnQkJvS3JBQUVHZ3FzQUFLQUlBSUFCcUlnQTJBZ0FnQVNBQVFRRnlOZ0lFUWFTcXdBQW9BZ0FnQVVZRVFFR2Nxc0FBUVFBMkFnQkJwS3JBQUVFQU5nSUFDMEhFcXNBQUtBSUFJZ0lnQUU4TkFrR29xc0FBS0FJQUlnQkZEUUlDUUVHZ3FzQUFLQUlBSWdOQktVa05BRUcwcXNBQUlRRURRQ0FCS0FJQUlnUWdBRTBFUUNBRUlBRW9BZ1JxSUFCTERRSUxJQUVvQWdnaUFRMEFDd3RCektyQUFBSi9RZjhmUWJ5cXdBQW9BZ0FpQUVVTkFCcEJBQ0VCQTBBZ0FVRUJhaUVCSUFBb0FnZ2lBQTBBQ3lBQlFmOGZJQUZCL3g5TEd3czJBZ0FnQXlBQ1RRMENRY1Nxd0FCQmZ6WUNBQThMUWFTcXdBQWdBVFlDQUVHY3FzQUFRWnlxd0FBb0FnQWdBR29pQURZQ0FDQUJJQUJCQVhJMkFnUWdBQ0FCYWlBQU5nSUFEd3RCektyQUFBSi9Ba0FnQUVHQUFrOEVRQ0FCUWdBM0FoQWdBVUVjYWdKL1FRQWdBRUVJZGlJQ1JRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FFRUdJQUpuSWdKclFSOXhka0VCY1NBQ1FRRjBhMEUrYWdzaUF6WUNBQ0FEUVFKMFFaeXB3QUJxSVFJQ1FBSkFBa0FDUUFKQVFaQ253QUFvQWdBaUJFRUJJQU5CSDNGMElnVnhCRUFnQWlnQ0FDSUNRUVJxS0FJQVFYaHhJQUJIRFFFZ0FpRUREQUlMUVpDbndBQWdCQ0FGY2pZQ0FDQUNJQUUyQWdBTUF3c2dBRUVBUVJrZ0EwRUJkbXRCSDNFZ0EwRWZSaHQwSVFRRFFDQUNJQVJCSFhaQkJIRnFRUkJxSWdVb0FnQWlBMFVOQWlBRVFRRjBJUVFnQXlJQ1FRUnFLQUlBUVhoeElBQkhEUUFMQ3lBREtBSUlJZ0FnQVRZQ0RDQURJQUUyQWdnZ0FVRVlha0VBTmdJQUlBRWdBellDRENBQklBQTJBZ2dNQWdzZ0JTQUJOZ0lBQ3lBQlFSaHFJQUkyQWdBZ0FTQUJOZ0lNSUFFZ0FUWUNDQXRCektyQUFFSE1xc0FBS0FJQVFYOXFJZ0EyQWdBZ0FBMERRYnlxd0FBb0FnQWlBQTBCUWY4ZkRBSUxJQUJCQTNZaUFrRURkRUdVcDhBQWFpRUFBbjlCaktmQUFDZ0NBQ0lEUVFFZ0FuUWlBbkVFUUNBQUtBSUlEQUVMUVl5bndBQWdBaUFEY2pZQ0FDQUFDeUVDSUFBZ0FUWUNDQ0FDSUFFMkFnd2dBU0FBTmdJTUlBRWdBallDQ0E4TFFRQWhBUU5BSUFGQkFXb2hBU0FBS0FJSUlnQU5BQXNnQVVIL0h5QUJRZjhmU3hzTE5nSUFDd3VXQndFS2Z5QUFLQUlRSVFNQ1FBSkFBa0FnQUNnQ0NDSU1RUUZIQkVBZ0EwRUJSZzBCREFNTElBTkJBVWNOQVFzZ0FTQUNhaUVEQWtBQ1FDQUFRUlJxS0FJQUlnaEZCRUFnQVNFRURBRUxJQUVoQkFOQUlBTWdCQ0lIUmcwQ0lBZEJBV29oQkFKQUlBY3NBQUFpQmtGL1NnMEFJQVpCL3dGeElRa0NmeUFESUFSR0JFQkJBQ0VLSUFNTUFRc2dCeTBBQVVFL2NTRUtJQWRCQW1vaUJBc2hCaUFKUWVBQlNRMEFBbjhnQXlBR1JnUkFRUUFoQ3lBRERBRUxJQVl0QUFCQlAzRWhDeUFHUVFGcUlnUUxJUVlnQ1VId0FVa05BQ0FESUFaR0JIOUJBQVVnQmtFQmFpRUVJQVl0QUFCQlAzRUxJQWxCRW5SQmdJRHdBSEVnQ2tFTWRISWdDMEVHZEhKeVFZQ0F4QUJHRFFNTElBUWdCMnNnQldvaEJTQUlRWDlxSWdnTkFBc0xJQU1nQkVZTkFBSkFJQVFzQUFBaUIwRi9TZzBBQW44Z0F5QUVRUUZxUmdSQUlBTWhDRUVBREFFTElBUkJBbW9oQ0NBRUxRQUJRVDl4UVFaMEN5QUhRZjhCY1VIZ0FVa05BQUovSUFNZ0NFWUVRQ0FESVFaQkFBd0JDeUFJUVFGcUlRWWdDQzBBQUVFL2NRc2dCMEgvQVhGQjhBRkpEUUFnQjBIL0FYRWhCM0loQkNBRElBWkdCSDlCQUFVZ0JpMEFBRUUvY1FzZ0IwRVNkRUdBZ1BBQWNTQUVRUVowY25KQmdJREVBRVlOQVFzQ1FDQUZSU0FDSUFWR2NrVUVRRUVBSVFNZ0JTQUNUdzBCSUFFZ0JXb3NBQUJCUUVnTkFRc2dBU0VEQ3lBRklBSWdBeHNoQWlBRElBRWdBeHNoQVFzZ0RFRUJSZzBBREFFTEFrQWdBZ1JBUVFBaEJDQUNJUVVnQVNFREEwQWdCQ0FETFFBQVFjQUJjVUdBQVVacUlRUWdBMEVCYWlFRElBVkJmMm9pQlEwQUN5QUNJQVJySUFBb0Fnd2lCazhOQWtFQUlRUWdBaUVGSUFFaEF3TkFJQVFnQXkwQUFFSEFBWEZCZ0FGR2FpRUVJQU5CQVdvaEF5QUZRWDlxSWdVTkFBc01BUXRCQUNFRUlBQW9BZ3dpQmcwQURBRUxRUUFoQXlBRUlBSnJJQVpxSWdRaEJRSkFBa0FDUUVFQUlBQXRBQ0FpQmlBR1FRTkdHMEVEY1VFQmF3NERBUUFCQWdzZ0JFRUJkaUVESUFSQkFXcEJBWFloQlF3QkMwRUFJUVVnQkNFREN5QURRUUZxSVFNQ1FBTkFJQU5CZjJvaUF3UkFJQUFvQWhnZ0FDZ0NCQ0FBS0FJY0tBSVFFUUFBUlEwQkRBSUxDeUFBS0FJRUlRUWdBQ2dDR0NBQklBSWdBQ2dDSENnQ0RCRUJBQTBBSUFWQkFXb2hBeUFBS0FJY0lRRWdBQ2dDR0NFQUEwQWdBMEYvYWlJRFJRUkFRUUFQQ3lBQUlBUWdBU2dDRUJFQUFFVU5BQXNMUVFFUEN5QUFLQUlZSUFFZ0FpQUFRUnhxS0FJQUtBSU1FUUVBQzdzR0FRUi9JQUFnQVdvaEFnSkFBa0FnQUVFRWFpZ0NBQ0lEUVFGeERRQWdBMEVEY1VVTkFTQUFLQUlBSWdNZ0FXb2hBU0FBSUFOcklnQkJwS3JBQUNnQ0FFWUVRQ0FDS0FJRVFRTnhRUU5IRFFGQm5LckFBQ0FCTmdJQUlBSWdBaWdDQkVGK2NUWUNCQ0FBSUFGQkFYSTJBZ1FnQWlBQk5nSUFEd3NnQUNBREVCRUxBa0FnQWtFRWFpZ0NBQ0lEUVFKeEJFQWdBa0VFYWlBRFFYNXhOZ0lBSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBTUFRc0NRQ0FDUWFpcXdBQW9BZ0JIQkVCQnBLckFBQ2dDQUNBQ1JnMEJJQUlnQTBGNGNTSUNFQkVnQUNBQklBSnFJZ0ZCQVhJMkFnUWdBQ0FCYWlBQk5nSUFJQUJCcEtyQUFDZ0NBRWNOQWtHY3FzQUFJQUUyQWdBUEMwR29xc0FBSUFBMkFnQkJvS3JBQUVHZ3FzQUFLQUlBSUFGcUlnRTJBZ0FnQUNBQlFRRnlOZ0lFSUFCQnBLckFBQ2dDQUVjTkFrR2Nxc0FBUVFBMkFnQkJwS3JBQUVFQU5nSUFEd3RCcEtyQUFDQUFOZ0lBUVp5cXdBQkJuS3JBQUNnQ0FDQUJhaUlCTmdJQUlBQWdBVUVCY2pZQ0JDQUFJQUZxSUFFMkFnQVBDeUFCUVlBQ1R3UkFJQUJDQURjQ0VDQUFRUnhxQW45QkFDQUJRUWgySWdKRkRRQWFRUjhnQVVILy8vOEhTdzBBR2lBQlFRWWdBbWNpQW10QkgzRjJRUUZ4SUFKQkFYUnJRVDVxQ3lJRE5nSUFJQU5CQW5SQm5LbkFBR29oQWdKQUFrQUNRQUpBUVpDbndBQW9BZ0FpQkVFQklBTkJIM0YwSWdWeEJFQWdBaWdDQUNJQ1FRUnFLQUlBUVhoeElBRkhEUUVnQWlFRERBSUxRWkNud0FBZ0JDQUZjallDQUNBQ0lBQTJBZ0FNQXdzZ0FVRUFRUmtnQTBFQmRtdEJIM0VnQTBFZlJodDBJUVFEUUNBQ0lBUkJIWFpCQkhGcVFSQnFJZ1VvQWdBaUEwVU5BaUFFUVFGMElRUWdBeUlDUVFScUtBSUFRWGh4SUFGSERRQUxDeUFES0FJSUlnRWdBRFlDRENBRElBQTJBZ2dnQUVFWWFrRUFOZ0lBSUFBZ0F6WUNEQ0FBSUFFMkFnZ1BDeUFGSUFBMkFnQUxJQUJCR0dvZ0FqWUNBQ0FBSUFBMkFnd2dBQ0FBTmdJSUR3c2dBVUVEZGlJQ1FRTjBRWlNud0FCcUlRRUNmMEdNcDhBQUtBSUFJZ05CQVNBQ2RDSUNjUVJBSUFFb0FnZ01BUXRCaktmQUFDQUNJQU55TmdJQUlBRUxJUUlnQVNBQU5nSUlJQUlnQURZQ0RDQUFJQUUyQWd3Z0FDQUNOZ0lJQ3d1cUJnRUhmd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBRUdBZ0FSUEJFQWdBRUdBZ0FoSkRRRWdBRUcxMlhOcVFiWGJLMGtnQUVIaWkzUnFRZUlMU1hJZ0FFR2ZxSFJxUVo4WVNTQUFRZDdpZEdwQkRrbHljaUFBUWY3Ly93QnhRWjd3Q2tZZ0FFR2lzblZxUVNKSmNpQUFRY3VSZFdwQkMwbHljZzBDSUFCQjhJTTRTUThMSUFCQmdQNERjVUVJZGlFR1FlaVV3QUFoQVNBQVFmOEJjU0VIQTBBQ1FDQUJRUUpxSVFVZ0FpQUJMUUFCSWdScUlRTWdCaUFCTFFBQUlnRkhCRUFnQVNBR1N3MEJJQU1oQWlBRklnRkJ1cFhBQUVjTkFnd0JDeUFESUFKSkRRUWdBMEdpQWtzTkJTQUNRYnFWd0FCcUlRRUNRQU5BSUFSRkRRRWdCRUYvYWlFRUlBRXRBQUFnQVVFQmFpRUJJQWRIRFFBTFFRQWhCQXdFQ3lBRElRSWdCU0lCUWJxVndBQkhEUUVMQ3lBQVFmLy9BM0VoQTBIY2w4QUFJUUZCQVNFRUEwQWdBVUVCYWlFQUFuOGdBQ0FCTFFBQUlnSkJHSFJCR0hVaUJVRUFUZzBBR2lBQVFaR2F3QUJHRFFZZ0FTMEFBU0FGUWY4QWNVRUlkSEloQWlBQlFRSnFDeUVCSUFNZ0Ftc2lBMEVBU0EwQ0lBUkJBWE1oQkNBQlFaR2F3QUJIRFFBTERBRUxJQUJCZ1A0RGNVRUlkaUVHUVpHYXdBQWhBU0FBUWY4QmNTRUhBMEFDUUNBQlFRSnFJUVVnQWlBQkxRQUJJZ1JxSVFNZ0JpQUJMUUFBSWdGSEJFQWdBU0FHU3cwQklBTWhBaUFGSWdGQjNackFBRWNOQWd3QkN5QURJQUpKRFFZZ0EwR3ZBVXNOQnlBQ1FkMmF3QUJxSVFFQ1FBTkFJQVJGRFFFZ0JFRi9haUVFSUFFdEFBQWdBVUVCYWlFQklBZEhEUUFMUVFBaEJBd0RDeUFESVFJZ0JTSUJRZDJhd0FCSERRRUxDeUFBUWYvL0EzRWhBMEdNbk1BQUlRRkJBU0VFQTBBZ0FVRUJhaUVBQW44Z0FDQUJMUUFBSWdKQkdIUkJHSFVpQlVFQVRnMEFHaUFBUWErZndBQkdEUWdnQVMwQUFTQUZRZjhBY1VFSWRISWhBaUFCUVFKcUN5RUJJQU1nQW1zaUEwRUFTQTBCSUFSQkFYTWhCQ0FCUWErZndBQkhEUUFMQ3lBRVFRRnhEd3NnQWlBRFFjaVV3QUFRT0FBTElBTkJvZ0pCeUpUQUFCQTNBQXRCL0l2QUFFRXJRZGlVd0FBUVNBQUxJQUlnQTBISWxNQUFFRGdBQ3lBRFFhOEJRY2lVd0FBUU53QUxRZnlMd0FCQkswSFlsTUFBRUVnQUM3RUZBUWQvUVN0QmdJREVBQ0FBS0FJQUlnbEJBWEVpQlJzaENpQUVJQVZxSVFnQ1FDQUpRUVJ4UlFSQVFRQWhBUXdCQ3lBQ0JFQWdBaUVHSUFFaEJRTkFJQWNnQlMwQUFFSEFBWEZCZ0FGR2FpRUhJQVZCQVdvaEJTQUdRWDlxSWdZTkFBc0xJQUlnQ0dvZ0Iyc2hDQXNDUUFKQUlBQW9BZ2hCQVVjRVFDQUFJQW9nQVNBQ0VFWU5BUXdDQ3lBQVFReHFLQUlBSWdZZ0NFMEVRQ0FBSUFvZ0FTQUNFRVlOQVF3Q0N3SkFBa0FDUUFKQUlBbEJDSEVFUUNBQUtBSUVJUWtnQUVFd05nSUVJQUF0QUNBaEN5QUFRUUU2QUNBZ0FDQUtJQUVnQWhCR0RRVkJBQ0VGSUFZZ0NHc2lBU0VDUVFFZ0FDMEFJQ0lHSUFaQkEwWWJRUU54UVFGckRnTUNBUUlEQzBFQUlRVWdCaUFJYXlJR0lRZ0NRQUpBQWtCQkFTQUFMUUFnSWdjZ0IwRURSaHRCQTNGQkFXc09Bd0VBQVFJTElBWkJBWFloQlNBR1FRRnFRUUYySVFnTUFRdEJBQ0VJSUFZaEJRc2dCVUVCYWlFRkEwQWdCVUYvYWlJRlJRMEVJQUFvQWhnZ0FDZ0NCQ0FBS0FJY0tBSVFFUUFBUlEwQUMwRUJEd3NnQVVFQmRpRUZJQUZCQVdwQkFYWWhBZ3dCQzBFQUlRSWdBU0VGQ3lBRlFRRnFJUVVDUUFOQUlBVkJmMm9pQlVVTkFTQUFLQUlZSUFBb0FnUWdBQ2dDSENnQ0VCRUFBRVVOQUF0QkFROExJQUFvQWdRaEFTQUFLQUlZSUFNZ0JDQUFLQUljS0FJTUVRRUFEUUVnQWtFQmFpRUhJQUFvQWh3aEFpQUFLQUlZSVFNRFFDQUhRWDlxSWdjRVFDQURJQUVnQWlnQ0VCRUFBRVVOQVF3REN3c2dBQ0FMT2dBZ0lBQWdDVFlDQkVFQUR3c2dBQ2dDQkNFRklBQWdDaUFCSUFJUVJnMEFJQUFvQWhnZ0F5QUVJQUFvQWh3b0Fnd1JBUUFOQUNBSVFRRnFJUWNnQUNnQ0hDRUJJQUFvQWhnaEFBTkFJQWRCZjJvaUIwVUVRRUVBRHdzZ0FDQUZJQUVvQWhBUkFBQkZEUUFMQzBFQkR3c2dBQ2dDR0NBRElBUWdBRUVjYWlnQ0FDZ0NEQkVCQUF2MEJRRUtmeU1BUVRCcklnTWtBQ0FEUVNScUlBRTJBZ0FnQTBFRE9nQW9JQU5DZ0lDQWdJQUVOd01JSUFNZ0FEWUNJQ0FEUVFBMkFoZ2dBMEVBTmdJUUFuOENRQUpBQWtBZ0FpZ0NDQ0lFQkVBZ0FpZ0NBQ0VHSUFJb0FnUWlDQ0FDUVF4cUtBSUFJZ1VnQlNBSVN4c2lCVVVOQVNBQUlBWW9BZ0FnQmlnQ0JDQUJLQUlNRVFFQURRTWdCa0VNYWlFQUlBSW9BaFFoQnlBQ0tBSVFJUW9nQlNFSkEwQWdBeUFFUVJ4cUxRQUFPZ0FvSUFNZ0JFRUVhaWtDQUVJZ2lUY0RDQ0FFUVJocUtBSUFJUUpCQUNFTFFRQWhBUUpBQWtBQ1FDQUVRUlJxS0FJQVFRRnJEZ0lBQWdFTElBSWdCMDhFUUNBQ0lBZEJ0SkRBQUJBMkFBc2dBa0VEZENBS2FpSU1LQUlFUVNCSERRRWdEQ2dDQUNnQ0FDRUNDMEVCSVFFTElBTWdBallDRkNBRElBRTJBaEFnQkVFUWFpZ0NBQ0VDQWtBQ1FBSkFJQVJCREdvb0FnQkJBV3NPQWdBQ0FRc2dBaUFIVHdSQUlBSWdCMEcwa01BQUVEWUFDeUFDUVFOMElBcHFJZ0VvQWdSQklFY05BU0FCS0FJQUtBSUFJUUlMUVFFaEN3c2dBeUFDTmdJY0lBTWdDellDR0NBRUtBSUFJZ0VnQjBrRVFDQUtJQUZCQTNScUlnRW9BZ0FnQTBFSWFpQUJLQUlFRVFBQURRVWdDVUYvYWlJSlJRMEVJQVJCSUdvaEJDQUFRWHhxSVFFZ0FDZ0NBQ0VDSUFCQkNHb2hBQ0FES0FJZ0lBRW9BZ0FnQWlBREtBSWtLQUlNRVFFQVJRMEJEQVVMQ3lBQklBZEJwSkRBQUJBMkFBc2dBaWdDQUNFR0lBSW9BZ1FpQ0NBQ1FSUnFLQUlBSWdVZ0JTQUlTeHNpQlVVTkFDQUNLQUlRSVFRZ0FDQUdLQUlBSUFZb0FnUWdBU2dDREJFQkFBMENJQVpCREdvaEFDQUZJUUlEUUNBRUtBSUFJQU5CQ0dvZ0JFRUVhaWdDQUJFQUFBMERJQUpCZjJvaUFrVU5BaUFFUVFocUlRUWdBRUY4YWlFQklBQW9BZ0FoQ1NBQVFRaHFJUUFnQXlnQ0lDQUJLQUlBSUFrZ0F5Z0NKQ2dDREJFQkFFVU5BQXNNQWd0QkFDRUZDeUFJSUFWTEJFQWdBeWdDSUNBR0lBVkJBM1JxSWdBb0FnQWdBQ2dDQkNBREtBSWtLQUlNRVFFQURRRUxRUUFNQVF0QkFRc2dBMEV3YWlRQUM0MEZBUWQvQWtBZ0FVSE0vM3RMRFFCQkVDQUJRUXRxUVhoeElBRkJDMGtiSVFJZ0FFRjhhaUlGS0FJQUlnWkJlSEVoQXdKQUFrQUNRQUpBQWtBQ1FDQUdRUU54QkVBZ0FFRjRhaUlISUFOcUlRZ2dBeUFDVHcwQlFhaXF3QUFvQWdBZ0NFWU5Ba0drcXNBQUtBSUFJQWhHRFFNZ0NFRUVhaWdDQUNJR1FRSnhEUVlnQmtGNGNTSUdJQU5xSWdNZ0FrOE5CQXdHQ3lBQ1FZQUNTU0FESUFKQkJISkpjaUFESUFKclFZR0FDRTl5RFFVTUJBc2dBeUFDYXlJQlFSQkpEUU1nQlNBQ0lBWkJBWEZ5UVFKeU5nSUFJQUlnQjJvaUJDQUJRUU55TmdJRUlBZ2dDQ2dDQkVFQmNqWUNCQ0FFSUFFUUJnd0RDMEdncXNBQUtBSUFJQU5xSWdNZ0FrME5BeUFGSUFJZ0JrRUJjWEpCQW5JMkFnQWdBaUFIYWlJQklBTWdBbXNpQkVFQmNqWUNCRUdncXNBQUlBUTJBZ0JCcUtyQUFDQUJOZ0lBREFJTFFaeXF3QUFvQWdBZ0Eyb2lBeUFDU1EwQ0FrQWdBeUFDYXlJQlFROU5CRUFnQlNBR1FRRnhJQU55UVFKeU5nSUFJQU1nQjJvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQVF3QkN5QUZJQUlnQmtFQmNYSkJBbkkyQWdBZ0FpQUhhaUlFSUFGQkFYSTJBZ1FnQXlBSGFpSUNJQUUyQWdBZ0FpQUNLQUlFUVg1eE5nSUVDMEdrcXNBQUlBUTJBZ0JCbktyQUFDQUJOZ0lBREFFTElBZ2dCaEFSSUFNZ0Ftc2lBVUVRVHdSQUlBVWdBaUFGS0FJQVFRRnhja0VDY2pZQ0FDQUNJQWRxSWdRZ0FVRURjallDQkNBRElBZHFJZ0lnQWlnQ0JFRUJjallDQkNBRUlBRVFCZ3dCQ3lBRklBTWdCU2dDQUVFQmNYSkJBbkkyQWdBZ0F5QUhhaUlCSUFFb0FnUkJBWEkyQWdRTElBQWhCQXdCQ3lBQkVBQWlBa1VOQUNBQ0lBQWdBVUY4UVhnZ0JTZ0NBQ0lFUVFOeEd5QUVRWGh4YWlJRUlBUWdBVXNiRUVzZ0FCQUVEd3NnQkF2MEJBRUpmeU1BUVRCcklnUWtBQUpBQW44Z0FnUkFJQVJCS0dvaENRTkFBa0FnQUNnQ0NDMEFBRVVOQUNBQUtBSUFRY2lOd0FCQkJDQUFLQUlFS0FJTUVRRUFSUTBBUVFFTUF3c2dCRUVLTmdJb0lBUkNpb0NBZ0JBM0F5QWdCQ0FDTmdJY1FRQWhCU0FFUVFBMkFoZ2dCQ0FDTmdJVUlBUWdBVFlDRUVFQklRY2dBU0VHSUFJaUF5RUlBbjhDUUFKQUEwQWdCU0FHYWlFR0lBUWdCMnBCSjJvdEFBQWhDZ0pBQWtBQ1FDQURRUWROQkVBZ0EwVU5BU0FJSUFWcklRdEJBQ0VEQTBBZ0F5QUdhaTBBQUNBS1JnMEVJQXNnQTBFQmFpSURSdzBBQ3d3QkN5QUVRUWhxSUFvZ0JpQURFQlFnQkNnQ0NFRUJSZzBCSUFRb0Fod2hDQXNnQkNBSU5nSVlEQVFMSUFRb0Fnd2hBeUFFS0FJa0lRY2dCQ2dDR0NFRkN5QUVJQU1nQldwQkFXb2lCVFlDR0FKQUFrQWdCU0FIU1FSQUlBUW9BaFFoQXd3QkN5QUVLQUlVSWdNZ0JVa05BQ0FIUVFWUERRTWdCU0FIYXlJR0lBUW9BaEJxSWdnZ0NVWU5BU0FJSUFrZ0J4QkVSUTBCQ3lBRUtBSWNJZ2dnQlVrZ0F5QUlTWElOQXlBSUlBVnJJUU1nQkNnQ0VDRUdEQUVMQ3lBQUtBSUlRUUU2QUFBZ0JrRUJhZ3dDQ3lBSFFRUkJzSkxBQUJBM0FBc2dBQ2dDQ0VFQU9nQUFJQUlMSVFNZ0FDZ0NCQ0VHSUFBb0FnQWhCUUpBQWtBZ0EwVWdBaUFEUm5KRkJFQWdBaUFEU3dSQUlBRWdBMm9pQnl3QUFFRy9mMG9OQWdzZ0FTQUNRUUFnQTBITWpjQUFFQU1BQ3lBRklBRWdBeUFHS0FJTUVRRUFSUTBCUVFFTUJBdEJBU0FGSUFFZ0F5QUdLQUlNRVFFQURRTWFJQWNzQUFCQnYzOU1EUVFMSUFFZ0Eyb2hBU0FDSUFOcklnSU5BQXNMUVFBTElBUkJNR29rQUE4TElBRWdBaUFESUFKQjNJM0FBQkFEQUF1NkF3RUVmeU1BUVJCcklnSWtBQ0FBS0FJQUlRUUNRQUpBQWtBQ2Z3SkFBa0FnQVVHQUFVOEVRQ0FDUVFBMkFnd2dBVUdBRUVrTkFTQUNRUXhxSVFBZ0FVR0FnQVJKQkVBZ0FpQUJRVDl4UVlBQmNqb0FEaUFDSUFGQkRIWkI0QUZ5T2dBTUlBSWdBVUVHZGtFL2NVR0FBWEk2QUExQkF5RUJEQVlMSUFJZ0FVRS9jVUdBQVhJNkFBOGdBaUFCUVJKMlFmQUJjam9BRENBQ0lBRkJCblpCUDNGQmdBRnlPZ0FPSUFJZ0FVRU1ka0UvY1VHQUFYSTZBQTFCQkNFQkRBVUxJQVFvQWdnaUFDQUVRUVJxS0FJQVJ3UkFJQVFvQWdBaEJRd0VDd0pBSUFCQkFXb2lBeUFBU1EwQUlBQkJBWFFpQlNBRElBVWdBMHNiSWdOQkNDQURRUWhMR3lFRElBQUVRQ0FEUVFCSURRRWdCQ2dDQUNJRlJRMERJQVVnQUVFQklBTVFWUXdFQ3lBRFFRQk9EUUlMRUYwQUN5QUNJQUZCUDNGQmdBRnlPZ0FOSUFJZ0FVRUdka0hBQVhJNkFBd2dBa0VNYWlFQVFRSWhBUXdEQ3lBRFFRRVFXUXNpQlFSQUlBUWdCVFlDQUNBRVFRUnFJQU0yQWdBZ0JDZ0NDQ0VBREFFTElBTkJBUkJqQUFzZ0FDQUZhaUFCT2dBQUlBUWdCQ2dDQ0VFQmFqWUNDQXdCQ3lBRUlBQWdBQ0FCYWhBZkN5QUNRUkJxSkFCQkFBdTBBd0VFZnlBQVFRQTJBZ2dnQUVFVWFrRUFOZ0lBSUFGQkQzRWhCQ0FBUVF4cUlRSkJBQ0VCQTBBZ0FDZ0NCQ0FCUmdSQUlBQWdBUkE4SUFBb0FnZ2hBUXNnQUNnQ0FDQUJRUUowYWlJQklBTTZBQUlnQVVFQU93RUFJQUFnQUNnQ0NFRUJhallDQ0NBQUtBSVVJZ0VnQUNnQ0VFWUVRQ0FDSUFFUU95QUFLQUlVSVFFTElBQW9BZ3dnQVVFQmRHcEJBVHNCQUNBQUlBQW9BaFJCQVdvMkFoUWdBQ2dDQ0NFQklBTkJBV29pQlNFRElBVkIvLzhEY1NBRWRrVU5BQXNnQUNnQ0JDQUJSZ1JBSUFBZ0FSQThJQUFvQWdnaEFRc2dBQ2dDQUNBQlFRSjBhaUlCUVFBNkFBSWdBVUVBT3dFQUlBQWdBQ2dDQ0VFQmFqWUNDQ0FBS0FJVUlnRWdBQ2dDRUVZRVFDQUNJQUVRT3lBQUtBSVVJUUVMSUFBb0Fnd2dBVUVCZEdwQkFEc0JBQ0FBSUFBb0FoUkJBV28yQWhRZ0FDZ0NDQ0lCSUFBb0FnUkdCRUFnQUNBQkVEd2dBQ2dDQ0NFQkN5QUFLQUlBSUFGQkFuUnFJZ0ZCQURvQUFpQUJRUUE3QVFBZ0FDQUFLQUlJUVFGcU5nSUlJQUFvQWhRaUFTQUFLQUlRUmdSQUlBSWdBUkE3SUFBb0FoUWhBUXNnQUNnQ0RDQUJRUUYwYWtFQU93RUFJQUFnQUNnQ0ZFRUJhallDRkF2K0F3SURmd0YrSUFFb0FoaEJKeUFCUVJ4cUtBSUFLQUlRRVFBQVJRUkFRZlFBSVFOQkFpRUNBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlBRUYzYWc0ZkJRRURBd0FEQXdNREF3TURBd01EQXdNREF3TURBd01EQXdRREF3TURCQUlMUWZJQUlRTU1CQXRCN2dBaEF3d0RDeUFBUWR3QVJnMEJDd0ovQW40Q1FDQUFFQTlGQkVBZ0FCQUhSUTBCUVFFTUF3c2dBRUVCY21kQkFuWkJCM090UW9DQWdJRFFBSVFNQVFzZ0FFRUJjbWRCQW5aQkIzT3RRb0NBZ0lEUUFJUUxJUVZCQXdzaEFpQUFJUU1NQVFzZ0FDRURDd05BSUFJaEJFSGNBQ0VBUVFFaEFnSkFBbjRDUUFKQUFrQUNRQ0FFUVFGckRnTUJCUUFDQ3dKQUFrQUNRQUpBSUFWQ0lJaW5RZjhCY1VFQmF3NEZBd0lCQUFZRkMwSDFBQ0VBSUFWQy8vLy8vNDlnZzBLQWdJQ0FNSVFNQmd0Qit3QWhBQ0FGUXYvLy8vK1BZSU5DZ0lDQWdDQ0VEQVVMUVRCQjF3QWdBeUFGcHlJRVFRSjBRUnh4ZGtFUGNTSUFRUXBKR3lBQWFpRUFJQVZDZjN4Qy8vLy8vdytESUFWQ2dJQ0FnSENEaENBRURRUWFJQVZDLy8vLy80OWdnMEtBZ0lDQUVJUU1CQXRCL1FBaEFDQUZRdi8vLy8rUFlJTU1Bd3RCQUNFQ0lBTWhBQXdEQ3lBQktBSVlRU2NnQVNnQ0hDZ0NFQkVBQUE4TElBVkMvLy8vLzQ5Z2cwS0FnSUNBd0FDRUN5RUZRUU1oQWdzZ0FTZ0NHQ0FBSUFFb0Fod29BaEFSQUFCRkRRQUxDMEVCQzZBREFRVi9Ba0FDUUVFQVFROGdBRUdrbWdSSkd5SUJJQUZCQ0dvaUFTQUJRUUowUVppZ3dBQnFLQUlBUVF0MElBQkJDM1FpQWtzYklnRWdBVUVFYWlJQklBRkJBblJCbUtEQUFHb29BZ0JCQzNRZ0Frc2JJZ0VnQVVFQ2FpSUJJQUZCQW5SQm1LREFBR29vQWdCQkMzUWdBa3NiSWdFZ0FVRUJhaUlCSUFGQkFuUkJtS0RBQUdvb0FnQkJDM1FnQWtzYklnTkJBblJCbUtEQUFHb29BZ0JCQzNRaUFTQUNSaUFCSUFKSmFpQURhaUlDUVI1TkJFQkJzUVVoQkNBQ1FSNUhCRUFnQWtFQ2RFR2NvTUFBYWlnQ0FFRVZkaUVFQzBFQUlRRWdBa0YvYWlJRElBSk5CRUFnQTBFZlR3MERJQU5CQW5SQm1LREFBR29vQWdCQi8vLy9BSEVoQVFzQ1FDQUVJQUpCQW5SQm1LREFBR29vQWdCQkZYWWlBMEVCYWtZTkFDQUFJQUZySVFJZ0EwR3hCU0FEUWJFRlN4c2hCU0FFUVg5cUlRRkJBQ0VBQTBBZ0F5QUZSZzBESUFBZ0EwR1VvY0FBYWkwQUFHb2lBQ0FDU3cwQklBRWdBMEVCYWlJRFJ3MEFDeUFCSVFNTElBTkJBWEVQQ3lBQ1FSOUIySi9BQUJBMkFBc2dCVUd4QlVIb244QUFFRFlBQ3lBRFFSOUIrSi9BQUJBMkFBdm9BZ0VGZndKQVFjMy9leUFBUVJBZ0FFRVFTeHNpQUdzZ0FVME5BQ0FBUVJBZ0FVRUxha0Y0Y1NBQlFRdEpHeUlFYWtFTWFoQUFJZ0pGRFFBZ0FrRjRhaUVCQWtBZ0FFRi9haUlESUFKeFJRUkFJQUVoQUF3QkN5QUNRWHhxSWdVb0FnQWlCa0Y0Y1NBQ0lBTnFRUUFnQUd0eFFYaHFJZ0lnQUNBQ2FpQUNJQUZyUVJCTEd5SUFJQUZySWdKcklRTWdCa0VEY1FSQUlBQWdBeUFBS0FJRVFRRnhja0VDY2pZQ0JDQUFJQU5xSWdNZ0F5Z0NCRUVCY2pZQ0JDQUZJQUlnQlNnQ0FFRUJjWEpCQW5JMkFnQWdBQ0FBS0FJRVFRRnlOZ0lFSUFFZ0FoQUdEQUVMSUFFb0FnQWhBU0FBSUFNMkFnUWdBQ0FCSUFKcU5nSUFDd0pBSUFCQkJHb29BZ0FpQVVFRGNVVU5BQ0FCUVhoeElnSWdCRUVRYWswTkFDQUFRUVJxSUFRZ0FVRUJjWEpCQW5JMkFnQWdBQ0FFYWlJQklBSWdCR3NpQkVFRGNqWUNCQ0FBSUFKcUlnSWdBaWdDQkVFQmNqWUNCQ0FCSUFRUUJnc2dBRUVJYWlFREN5QURDNFVEQVFSL0FrQUNRQ0FCUVlBQ1R3UkFJQUJCR0dvb0FnQWhCQUpBQWtBZ0FDQUFLQUlNSWdKR0JFQWdBRUVVUVJBZ0FFRVVhaUlDS0FJQUlnTWJhaWdDQUNJQkRRRkJBQ0VDREFJTElBQW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0JDeUFDSUFCQkVHb2dBeHNoQXdOQUlBTWhCU0FCSWdKQkZHb2lBeWdDQUNJQlJRUkFJQUpCRUdvaEF5QUNLQUlRSVFFTElBRU5BQXNnQlVFQU5nSUFDeUFFUlEwQ0lBQWdBRUVjYWlnQ0FFRUNkRUdjcWNBQWFpSUJLQUlBUndSQUlBUkJFRUVVSUFRb0FoQWdBRVliYWlBQ05nSUFJQUpGRFFNTUFnc2dBU0FDTmdJQUlBSU5BVUdRcDhBQVFaQ253QUFvQWdCQmZpQUFLQUljZDNFMkFnQVBDeUFBUVF4cUtBSUFJZ0lnQUVFSWFpZ0NBQ0lBUndSQUlBQWdBallDRENBQ0lBQTJBZ2dQQzBHTXA4QUFRWXlud0FBb0FnQkJmaUFCUVFOMmQzRTJBZ0FNQVFzZ0FpQUVOZ0lZSUFBb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQUJCRkdvb0FnQWlBRVVOQUNBQ1FSUnFJQUEyQWdBZ0FDQUNOZ0lZQ3d1akF3SUVmd0orSXdCQlFHb2lBaVFBUVFFaEJBSkFJQUF0QUFRTkFDQUFMUUFGSVFVZ0FDZ0NBQ0lETFFBQVFRUnhSUVJBSUFNb0FoaEI4WTNBQUVIempjQUFJQVViUVFKQkF5QUZHeUFEUVJ4cUtBSUFLQUlNRVFFQURRRWdBQ2dDQUNJREtBSVlRYzZtd0FCQkJ5QURRUnhxS0FJQUtBSU1FUUVBRFFFZ0FDZ0NBQ0lES0FJWVFhZU13QUJCQWlBRFFSeHFLQUlBS0FJTUVRRUFEUUVnQVNBQUtBSUFRWlNnd0FBb0FnQVJBQUFoQkF3QkN5QUZSUVJBSUFNb0FoaEI3STNBQUVFRElBTkJIR29vQWdBb0Fnd1JBUUFOQVNBQUtBSUFJUU1MSUFKQkFUb0FGeUFDUVRScVFiQ053QUEyQWdBZ0FpQURLUUlZTndNSUlBSWdBa0VYYWpZQ0VDQURLUUlJSVFZZ0F5a0NFQ0VISUFJZ0F5MEFJRG9BT0NBQ0lBYzNBeWdnQWlBR053TWdJQUlnQXlrQ0FEY0RHQ0FDSUFKQkNHbzJBakFnQWtFSWFrSE9wc0FBUVFjUUN3MEFJQUpCQ0dwQnA0ekFBRUVDRUFzTkFDQUJJQUpCR0dwQmxLREFBQ2dDQUJFQUFBMEFJQUlvQWpCQjc0M0FBRUVDSUFJb0FqUW9BZ3dSQVFBaEJBc2dBRUVCT2dBRklBQWdCRG9BQkNBQ1FVQnJKQUFMNWdJQ0JuOEJmaU1BUVRCcklnUWtBQ0FFUVJCcUVDb2dCQ0FFS0FJVUlnVTJBaHdnQkNBRUtBSVFJZ1kyQWhnZ0JFRUlhaUFEUVFBUVFDQUVLUU1JSVFvZ0FFRUFOZ0lJSUFBZ0NqY0NBQUpBQWtBZ0F3UkFRUUFoQmtFQUlRVURRQ0FBSUFWQmdDQVFPaUFBSUFNZ0FDZ0NCQ0lISUFjZ0Ewc2JFRThnQmlBQ1N3MENJQUFvQWdBaENDQUFLQUlJSWdjZ0JVa05BeUFFUVNCcUlBUkJHR29pQ1NnQ0FDQUJJQVpxSUFJZ0Jtc2dCU0FJYWlBSElBVnJJQWtvQWdRb0Fnd1JDQUFnQkNnQ0pDQUZhaUVISUFRb0FpQWhDQ0FBS0FJSUlnVWdCMDhFUUNBQUtBSUFHaUFBSUFjMkFnZ2dCeUVGQ3lBRUxRQW9RUUpIQkVBZ0JpQUlhaUVHSUFVZ0Ewa05BUXNMSUFRb0FoZ2hCaUFFS0FJY0lRVUxJQVlnQlNnQ0FCRURBQ0FFS0FJY0lnQW9BZ2dhSUFRb0FoZ2hBU0FBS0FJRUJFQWdBUkFFQ3lBRVFUQnFKQUFQQ3lBR0lBSkJ5SUhBQUJBNUFBc2dCU0FIUWRpQndBQVFPUUFMMkFJQkJYOENRQUpBQWtBQ1FBSkFJQUpCQTJwQmZIRWdBbXNpQkVVTkFDQURJQVFnQkNBRFN4c2lCVVVOQUVFQUlRUWdBVUgvQVhFaEJnSkFBMEFnQWlBRWFpMEFBQ0FHUmcwQklBVWdCRUVCYWlJRVJ3MEFDeUFGSUFOQmVHb2lCRTBOQWd3REMwRUJJUWNNQXdzZ0EwRjRhaUVFUVFBaEJRc2dBVUgvQVhGQmdZS0VDR3doQmdOQUlBSWdCV29pQjBFRWFpZ0NBQ0FHY3lJSVFYOXpJQWhCLy8zN2QycHhJQWNvQWdBZ0JuTWlCMEYvY3lBSFFmLzkrM2RxY1hKQmdJR0NoSGh4UlFSQUlBVkJDR29pQlNBRVRRMEJDd3NnQlNBRFN3MENDMEVBSVFZQ2YwRUFJQU1nQlVZTkFCb2dBaUFGYWlFQ0lBTWdCV3NoQmtFQUlRUWdBVUgvQVhFaEFRSkFBMEFnQWlBRWFpMEFBQ0FCUmcwQklBWWdCRUVCYWlJRVJ3MEFDMEVBREFFTElBUWhCa0VCQ3lFSElBVWdCbW9oQkFzZ0FDQUVOZ0lFSUFBZ0J6WUNBQThMSUFVZ0EwSG9rTUFBRURrQUM3NENBZ1YvQVg0akFFRXdheUlFSkFCQkp5RUNBa0FnQUVLUXpnQlVCRUFnQUNFSERBRUxBMEFnQkVFSmFpQUNhaUlEUVh4cUlBQWdBRUtRemdDQUlnZENrTTRBZm4ybklnVkIvLzhEY1VIa0FHNGlCa0VCZEVHbWpzQUFhaThBQURzQUFDQURRWDVxSUFVZ0JrSGtBR3hyUWYvL0EzRkJBWFJCcG83QUFHb3ZBQUE3QUFBZ0FrRjhhaUVDSUFCQy84SFhMMVlnQnlFQURRQUxDeUFIcHlJRFFlTUFTZ1JBSUFKQmZtb2lBaUFFUVFscWFpQUhweUlESUFOQi8vOERjVUhrQUc0aUEwSGtBR3hyUWYvL0EzRkJBWFJCcG83QUFHb3ZBQUE3QUFBTEFrQWdBMEVLVGdSQUlBSkJmbW9pQWlBRVFRbHFhaUFEUVFGMFFhYU93QUJxTHdBQU93QUFEQUVMSUFKQmYyb2lBaUFFUVFscWFpQURRVEJxT2dBQUN5QUJRZkNMd0FCQkFDQUVRUWxxSUFKcVFTY2dBbXNRQ0NBRVFUQnFKQUFMb3dJQ0JIOEJmaU1BUVVCcUlnUWtBQUpBQWtBQ1FDQUNJQU5xSWdNZ0FrOEVRQ0FCS0FJRUlRVWdCRUVZYWtLQmdJQ0FFRGNEQUNBRUtBSWNJZ0pCZjJvaUJpQUVLQUlZYWtFQUlBSnJJZ2R4clNBRlFRRjBJZ1VnQXlBRklBTkxHeUlEUVFnZ0EwRUlTeHV0ZmlJSVFpQ0lweUFDUlhJTkFTQUNhVUVCUmdSQUlBaW5JQVpxSUFkeElRTU1Bd3NnQkVFd2FoQXdBQXNnQkVFSWFpQURRUUFRV2lBQUlBUXBBd2czQWdSQkFTRUNEQUlMUVFBaEFnc2dCRUV3YWlBQkVFMGdCRUVnYWlBRElBSWdCRUV3YWhBbFFRRWhBaUFFUVNocUtBSUFJUU1nQkNnQ0pDRUZJQVFvQWlCQkFVY0VRQ0FCSUFVZ0F4QmFRUUFoQWd3QkN5QUVRUkJxSUFVZ0F4QmFJQUFnQkNrREVEY0NCQXNnQUNBQ05nSUFJQVJCUUdza0FBdXVBZ0VJZnlNQVFUQnJJZ0VrQUVHQUlDRUNJQUZCR0dvUUx5QUJLQUljSVFRZ0FTZ0NHQ0VGSUFGQkVHb1FNaUFCS0FJVUlRWWdBU2dDRUNFSElBRkJDR3BCZ0NCQkFSQkFJQUZCZ0NBMkFpZ2dBU0FCS0FJTUlnZzJBaVFnQVNBQktBSUlJZ00yQWlBZ0NFR0JJRThFUUNBQlFTQnFRWUFnRUVVZ0FTZ0NJQ0VESUFFb0FpZ2hBZ3NnQUVFQU93QkhJQUJCQURzQk9DQUFJQU0yQWlnZ0FDQUZOZ0lRSUFCQkNEb0FSaUFBUVFBNkFBc2dBRUlBTndNQUlBQkJNR3BDQURjREFDQUFRU3hxSUFJMkFnQWdBRUVrYWtFQU5nSUFJQUJCSUdvZ0JqWUNBQ0FBUVJ4cUlBYzJBZ0FnQUVFWWFrRUFOZ0lBSUFCQkZHb2dCRFlDQUNBQVFRazZBQW9nQUVHQUFqc0JRaUFBUVlFQ093RkVJQUJCZ2dJN0FVQWdBRUgvQXpzQkNDQUJRVEJxSkFBTHh3SUNCWDhCZmlNQVFSQnJJZ01rQUNBQUxRQUxJUUlnQTBJQU53TUlJQUVvQWdBaEJRSkFBa0FnQUFKL0lBRW9BZ1FpQkVIQUFDQUNheUlHUWZnQmNVRURkaUlDU1FSQUlBUkJDVThOQWlBRFFRaHFJQVVnQkJCTEdpQUJRUUEyQWdRZ0FVR0lnOEFBTmdJQUlBUkJBM1FNQVFzZ0JrSC9BWEZCeUFCUERRSWdBMEVJYWlBRklBSVFTeG9nQVNBRUlBSnJOZ0lFSUFFZ0FpQUZhallDQUNBR1FmZ0JjUXNnQUMwQUN5SUJham9BQ3lBQUlBQXBBd0FnQXlrRENDSUhRamlHSUFkQ0tJWkNnSUNBZ0lDQXdQOEFnNFFnQjBJWWhrS0FnSUNBZ09BL2d5QUhRZ2lHUW9DQWdJRHdINE9FaENBSFFnaUlRb0NBZ1BnUGd5QUhRaGlJUW9DQS9BZURoQ0FIUWlpSVFvRCtBNE1nQjBJNGlJU0VoQ0FCUVQ5eHJZaUVOd01BSUFOQkVHb2tBQThMSUFSQkNFSFloY0FBRURjQUN5QUNRUWhCeUlYQUFCQTNBQXVxQWdFRGZ5TUFRWUFCYXlJRUpBQUNRQUpBQW44Q1FDQUJLQUlBSWdOQkVIRkZCRUFnQUNnQ0FDRUNJQU5CSUhFTkFTQUNyU0FCRUJVTUFnc2dBQ2dDQUNFQ1FRQWhBQU5BSUFBZ0JHcEIvd0JxSUFKQkQzRWlBMEV3Y2lBRFFkY0FhaUFEUVFwSkd6b0FBQ0FBUVg5cUlRQWdBa0VFZGlJQ0RRQUxJQUJCZ0FGcUlnSkJnUUZQRFFJZ0FVR2tqc0FBUVFJZ0FDQUVha0dBQVdwQkFDQUFheEFJREFFTFFRQWhBQU5BSUFBZ0JHcEIvd0JxSUFKQkQzRWlBMEV3Y2lBRFFUZHFJQU5CQ2trYk9nQUFJQUJCZjJvaEFDQUNRUVIySWdJTkFBc2dBRUdBQVdvaUFrR0JBVThOQWlBQlFhU093QUJCQWlBQUlBUnFRWUFCYWtFQUlBQnJFQWdMSUFSQmdBRnFKQUFQQ3lBQ1FZQUJRWlNPd0FBUU9RQUxJQUpCZ0FGQmxJN0FBQkE1QUF1eEFnRUVmeU1BUVVCcUlnSWtBQ0FCS0FJRUlnTkZCRUFnQVVFRWFpRURJQUVvQWdBaEJDQUNRUUEyQWlBZ0FrSUJOd01ZSUFJZ0FrRVlhallDSkNBQ1FUaHFJQVJCRUdvcEFnQTNBd0FnQWtFd2FpQUVRUWhxS1FJQU53TUFJQUlnQkNrQ0FEY0RLQ0FDUVNScVFkaUp3QUFnQWtFb2FoQUpHaUFDUVJCcUlnUWdBaWdDSURZQ0FDQUNJQUlwQXhnM0F3Z0NRQ0FCS0FJRUlnVkZEUUFnQVVFSWFpZ0NBRVVOQUNBRkVBUUxJQU1nQWlrRENEY0NBQ0FEUVFocUlBUW9BZ0EyQWdBZ0F5Z0NBQ0VEQ3lBQlFRRTJBZ1FnQVVFTWFpZ0NBQ0VFSUFGQkNHb2lBU2dDQUNFRklBRkNBRGNDQUVFTVFRUVFXU0lCUlFSQVFReEJCQkJqQUFzZ0FTQUVOZ0lJSUFFZ0JUWUNCQ0FCSUFNMkFnQWdBRUdRaThBQU5nSUVJQUFnQVRZQ0FDQUNRVUJySkFBTC9BRUJBbjhqQUVFUWF5SUNKQUFnQUNnQ0FDQUNRUUEyQWd3Q2Z3SkFBa0FnQVVHQUFVOEVRQ0FCUVlBUVNRMEJJQUpCREdvaEFDQUJRWUNBQkU4TkFpQUNJQUZCUDNGQmdBRnlPZ0FPSUFJZ0FVRU1ka0hnQVhJNkFBd2dBaUFCUVFaMlFUOXhRWUFCY2pvQURVRUREQU1MSUFJZ0FUb0FEQ0FDUVF4cUlRQkJBUXdDQ3lBQ0lBRkJQM0ZCZ0FGeU9nQU5JQUlnQVVFR2RrSEFBWEk2QUF3Z0FrRU1haUVBUVFJTUFRc2dBaUFCUVQ5eFFZQUJjam9BRHlBQ0lBRkJFblpCOEFGeU9nQU1JQUlnQVVFR2RrRS9jVUdBQVhJNkFBNGdBaUFCUVF4MlFUOXhRWUFCY2pvQURVRUVDeUVCSUFBZ0FSQUxJQUpCRUdva0FBdjVBUUVDZnlNQVFSQnJJZ0lrQUNBQ1FRQTJBZ3dDZndKQUFrQWdBVUdBQVU4RVFDQUJRWUFRU1EwQklBSkJER29oQXlBQlFZQ0FCRThOQWlBQ0lBRkJQM0ZCZ0FGeU9nQU9JQUlnQVVFTWRrSGdBWEk2QUF3Z0FpQUJRUVoyUVQ5eFFZQUJjam9BRFVFRERBTUxJQUlnQVRvQURDQUNRUXhxSVFOQkFRd0NDeUFDSUFGQlAzRkJnQUZ5T2dBTklBSWdBVUVHZGtIQUFYSTZBQXdnQWtFTWFpRURRUUlNQVFzZ0FpQUJRVDl4UVlBQmNqb0FEeUFDSUFGQkVuWkI4QUZ5T2dBTUlBSWdBVUVHZGtFL2NVR0FBWEk2QUE0Z0FpQUJRUXgyUVQ5eFFZQUJjam9BRFVFRUN5RUJJQUFnQXlBQkVBc2dBa0VRYWlRQUMvd0JBUU4vSXdCQklHc2lCQ1FBQWtBZ0FrRUJhaUlESUFKUEJFQWdBU2dDQkNJQ1FRRjBJZ1VnQXlBRklBTkxHeUlEUVFRZ0EwRUVTeHNpQTBILy8vLy9BM0VnQTBaQkFYUWhCU0FEUVFKMElRTUNRQ0FDQkVBZ0JFRVlha0VDTmdJQUlBUWdBa0VDZERZQ0ZDQUVJQUVvQWdBMkFoQU1BUXNnQkVFQU5nSVFDeUFFSUFNZ0JTQUVRUkJxRUNWQkFTRUNJQVJCQ0dvb0FnQWhBeUFFS0FJRUlRVWdCQ2dDQUVFQlJ3UkFJQUVnQlRZQ0FDQUJJQU5CQW5ZMkFnUkJBQ0VDREFJTElBQWdCVFlDQkNBQVFRaHFJQU0yQWdBTUFRc2dBQ0FETmdJRUlBQkJDR3BCQURZQ0FFRUJJUUlMSUFBZ0FqWUNBQ0FFUVNCcUpBQUw4QUVCQkg4akFFRWdheUlFSkFBQ1FDQUNRUUZxSWdNZ0FrOEVRQ0FCS0FJRUlnVkJBWFFpQWlBRElBSWdBMHNiSWdOQkJDQURRUVJMR3lJRElBTnFJZ1lnQTA5QkFYUWhBd0pBSUFVRVFDQUVRUmhxUVFJMkFnQWdCQ0FDTmdJVUlBUWdBU2dDQURZQ0VBd0JDeUFFUVFBMkFoQUxJQVFnQmlBRElBUkJFR29RSlVFQklRSWdCRUVJYWlnQ0FDRURJQVFvQWdRaEJTQUVLQUlBUVFGSEJFQWdBU0FGTmdJQUlBRWdBMEVCZGpZQ0JFRUFJUUlNQWdzZ0FDQUZOZ0lFSUFCQkNHb2dBellDQUF3QkN5QUFJQU0yQWdRZ0FFRUlha0VBTmdJQVFRRWhBZ3NnQUNBQ05nSUFJQVJCSUdva0FBdlpBUUVEZndKQUlBQkJCR29vQWdBaUJDQUFRUWhxS0FJQUlnTnJJQUlnQVdzaUJVOEVRQ0FBS0FJQUlRUU1BUXNDZndKQUFrQWdBeUFGYWlJQ0lBTkpEUUFnQkVFQmRDSURJQUlnQXlBQ1N4c2lBa0VJSUFKQkNFc2JJUUlnQkFSQUlBSkJBRWdOQVNBQUtBSUFJZ05GRFFJZ0F5QUVRUUVnQWhCVkRBTUxJQUpCQUU0TkFRc1FYUUFMSUFKQkFSQlpDeUlFQkVBZ0FDQUVOZ0lBSUFCQkJHb2dBallDQUNBQVFRaHFLQUlBSVFNTUFRc2dBa0VCRUdNQUN5QURJQVJxSUFFZ0JSQkxHaUFBUVFocUlnQWdBQ2dDQUNBRmFqWUNBQXZvQVFFRmZ5TUFRUkJySWdNa0FDQUFMUUFMSVFJZ0EwSUFOd01JSUFFb0FnQWhCUUpBQWtBZ0FBSi9JQUVvQWdRaUJFSEFBQ0FDYXlJR1FmZ0JjVUVEZGlJQ1NRUkFJQVJCQ1U4TkFpQURRUWhxSUFVZ0JCQkxHaUFCUVFBMkFnUWdBVUdJZzhBQU5nSUFJQVJCQTNRTUFRc2dCa0gvQVhGQnlBQlBEUUlnQTBFSWFpQUZJQUlRU3hvZ0FTQUVJQUpyTmdJRUlBRWdBaUFGYWpZQ0FDQUdRZmdCY1FzZ0FDMEFDeUlCYWpvQUN5QUFJQUFwQXdBZ0F5a0RDQ0FCUVQ5eHJZYUVOd01BSUFOQkVHb2tBQThMSUFSQkNFSDRoY0FBRURjQUN5QUNRUWhCNklYQUFCQTNBQXZjQVFFRWZ5TUFRVUJxSWdJa0FDQUJRUVJxSVFRZ0FTZ0NCRVVFUUNBQktBSUFJUU1nQWtFQU5nSWdJQUpDQVRjREdDQUNJQUpCR0dvMkFpUWdBa0U0YWlBRFFSQnFLUUlBTndNQUlBSkJNR29nQTBFSWFpa0NBRGNEQUNBQ0lBTXBBZ0EzQXlnZ0FrRWtha0hZaWNBQUlBSkJLR29RQ1JvZ0FrRVFhaUlESUFJb0FpQTJBZ0FnQWlBQ0tRTVlOd01JQWtBZ0FTZ0NCQ0lGUlEwQUlBRkJDR29vQWdCRkRRQWdCUkFFQ3lBRUlBSXBBd2czQWdBZ0JFRUlhaUFES0FJQU5nSUFDeUFBUVpDTHdBQTJBZ1FnQUNBRU5nSUFJQUpCUUdza0FBdVlBZ0VDZnlNQVFTQnJJZ1FrQUVFQklRVkJpS2ZBQUVHSXA4QUFLQUlBUVFGcU5nSUFBa0FDUUFKQVFkQ3F3QUFvQWdCQkFVY0VRRUhRcXNBQVFvR0FnSUFRTndNQURBRUxRZFNxd0FCQjFLckFBQ2dDQUVFQmFpSUZOZ0lBSUFWQkFrc05BUXNnQkNBRE5nSWNJQVFnQWpZQ0dDQUVRZkNKd0FBMkFoUWdCRUh3aWNBQU5nSVFRZnltd0FBb0FnQWlBa0YvVEEwQVFmeW13QUFnQWtFQmFpSUNOZ0lBUWZ5bXdBQkJoS2ZBQUNnQ0FDSURCSDlCZ0tmQUFDZ0NBQ0FFUVFocUlBQWdBU2dDRUJFQ0FDQUVJQVFwQXdnM0F4QWdCRUVRYWlBREtBSU1FUUlBUWZ5bXdBQW9BZ0FGSUFJTFFYOXFOZ0lBSUFWQkFVME5BUXNBQ3lNQVFSQnJJZ0lrQUNBQ0lBRTJBZ3dnQWlBQU5nSUlBQXZNQVFFQ2Z5QUJRUlJxS0FJQUlnVWdBMEgvL3dOeElnUkxCRUFnQVNnQ0RDQUVRUUYwYWk4QkFDRUZJQUVvQWdnaUJDQUJLQUlFUmdSQUlBRWdCQkE4SUFFb0FnZ2hCQXNnQVNnQ0FDQUVRUUowYWlJRUlBSTZBQUlnQkNBRE93RUFJQUVnQVNnQ0NFRUJhallDQ0NBQktBSVVJZ1FnQVVFUWFpZ0NBRVlFUUNBQlFReHFJQVFRT3lBQktBSVVJUVFMSUFFb0Fnd2dCRUVCZEdvZ0JVRUJhanNCQUNBQklBRW9BaFJCQVdvMkFoUWdBQ0FDT2dBQ0lBQWdBenNCQUE4TElBUWdCVUg0aHNBQUVEWUFDOFFCQVFKL0l3QkJFR3NpQWlRQUlBSWdBYTFDZ0lDQWdCQkNBQ0FCS0FJWVFjV213QUJCQ1NBQlFSeHFLQUlBS0FJTUVRRUFHNFEzQXdBZ0FpQUFOZ0lNSUFJZ0FrRU1haEFTSUFJdEFBUWhBU0FDTFFBRkJFQWdBVUgvQVhFaEFDQUNBbjlCQVNBQURRQWFJQUlvQWdBaUFFRWNhaWdDQUNnQ0RDRUJJQUFvQWhnaEF5QUFMUUFBUVFSeFJRUkFJQU5COTQzQUFFRUNJQUVSQVFBTUFRc2dBMEgyamNBQVFRRWdBUkVCQUFzaUFUb0FCQXNnQWtFUWFpUUFJQUZCL3dGeFFRQkhDNm9CQVFKL0FrQUNRQUpBSUFJRVFFRUJJUVFnQVVFQVRnMEJEQUlMSUFBZ0FUWUNCRUVCSVFRTUFRc0NRQUpBQWtBQ1FBSkFJQU1vQWdBaUJVVUVRQ0FCUlEwQkRBTUxJQU1vQWdRaUF3MEJJQUVOQWdzZ0FpRUREQU1MSUFVZ0F5QUNJQUVRVlNJRFJRMEJEQUlMSUFFZ0FoQlpJZ01OQVFzZ0FDQUJOZ0lFSUFJaEFRd0NDeUFBSUFNMkFnUkJBQ0VFREFFTFFRQWhBUXNnQUNBRU5nSUFJQUJCQ0dvZ0FUWUNBQXVmQVFFRGZ5QUFRZ0EzQWdnQ1FDQUJRUlJxS0FJQUlnUWdBa0gvL3dOeElnTkxCRUFnQVNnQ0RDQURRUUYwYWk4QkFDRURJQUFvQWdRaEJDQUFRUUEyQWdRZ0FDZ0NBQ0VGSUFCQkFUWUNBQ0FFSUFOSkRRRWdBU0FDSUFVZ0F4QXBJQUFvQWdRRVFDQUFLQUlBRUFRTElBQWdBellDRENBQUlBUTJBZ1FnQUNBRk5nSUFEd3NnQXlBRVFiaUd3QUFRTmdBTElBTWdCRUhJaHNBQUVEY0FDNGNCQVFKL0l3QkJNR3NpQkNRQUlBUkJJR29pQlNBQ05nSUlJQVVnQWpZQ0JDQUZJQUUyQWdBZ0JFRUlhaUFFUVNCcUVFNGdCRUVRYWlBRUtBSUlJZ0VnQkNnQ0RDSUNJQU1RRXlBQ0JFQWdBUkFFQ3lBRVFTaHFJQVJCR0dvb0FnQTJBZ0FnQkNBRUtRTVFOd01nSUFRZ0JFRWdhaEJPSUFBZ0JDa0RBRGNEQUNBRVFUQnFKQUFMZ2dFQkJuOGpBRUVRYXlJREpBQWdBQ0FBS0FJSUlBRVFPaUFBS0FJQUlRVWdBQ2dDQ0NFQ0lBTkJDR3BCQVNBQkVGb2dBaUFGYWlFRUlBTW9BZ3dpQmlBREtBSUlJZ2RMQkVBZ0JDQUdJQWRyRUZJZ0JTQUNJQVpxSUFkcklnSnFJUVFMSUFBZ0FRUi9JQVJCQURvQUFDQUNRUUZxQlNBQ0N6WUNDQ0FEUVJCcUpBQUxqZ0VCQTM4Z0FDZ0NDQ0lFSUFGQi8vOERjU0lGU3dSQUlBTUVRQ0FBS0FJQUlRUWdBa0YvYWlFRklBRWhBQU5BSUFRZ0FFSC8vd054UVFKMGFpSUdMd0VBSVFBZ0F5QUZhaUFHTFFBQ09nQUFJQUFnQVNBQUlBRkIvLzhEY1VrYklRQWdBMEYvYWlJRERRQUxJQUl0QUFBUEMwRUFRUUJCbUlmQUFCQTJBQXNnQlVFQmFpQUVRWWlId0FBUU53QUxhQUVDZnlNQVFkQUFheUlDSkFBakFFRXdheUlCSkFBZ0FVRUlPZ0FQSUFGQk1Hb2tBQ0FDRUJkQjBBQkJDQkJaSWdFRVFDQUJJQUpCMEFBUVN4b2dBVUVCT2dCSUlBQkJwSVBBQURZQ0JDQUFJQUUyQWdBZ0FrSFFBR29rQUE4TFFkQUFRUWdRWXdBTGdBRUNBbjhCZmlBQkxRQUxJZ1FnQVMwQUNpSURTUVJBSUFFZ0FoQVlJQUV0QUFzaEJDQUJMUUFLSVFNTElBUWdBMEgvQVhGSkJIOUJBQVVnQVNBRUlBTnJPZ0FMSUFFZ0FTa0RBQ0FEcllraUJTQUJMd0VJSWdHdFFuK0ZRb0NBZklTRE53TUFJQUVnQmFkeElRTkJBUXNoQVNBQUlBTTdBUUlnQUNBQk93RUFDNklCQVFOL0l3QkJFR3NpQVNRQUlBQW9BZ0FpQWtFVWFpZ0NBQ0VEQWtBQ2Z3SkFBa0FnQWlnQ0JBNENBQUVEQ3lBRERRSkJBQ0VDUWZDSndBQU1BUXNnQXcwQklBSW9BZ0FpQXlnQ0JDRUNJQU1vQWdBTElRTWdBU0FDTmdJRUlBRWdBellDQUNBQlFmeUt3QUFnQUNnQ0JDZ0NDQ0FBS0FJSUVDSUFDeUFCUVFBMkFnUWdBU0FDTmdJQUlBRkI2SXJBQUNBQUtBSUVLQUlJSUFBb0FnZ1FJZ0FMZ1FFQkEzOGdBU2dDQkNJRElBSlBCRUFDUUNBRFJRMEFJQUVvQWdBaEJBSkFBa0FnQWtVRVFFRUJJUU1nQkJBRURBRUxJQVFnQTBFQklBSVFWU0lEUlEwQkN5QUJJQUkyQWdRZ0FTQUROZ0lBREFFTElBQWdBallDQkNBQVFRaHFRUUUyQWdCQkFTRUZDeUFBSUFVMkFnQVBDMEdVaU1BQVFTUkJ1SWpBQUJCSUFBdDFBZ0ovQVg0Z0FTMEFDeUlFSUFFdEFBb2lBMGtFUUNBQklBSVFJQ0FCTFFBTElRUWdBUzBBQ2lFREN5QUVJQU5CL3dGeFNRUi9RUUFGSUFFZ0JDQURhem9BQ3lBQklBRXBBd0FpQlNBRHJVSS9nNGczQXdBZ0FTOEJDQ0FGcDNFaEEwRUJDeUVCSUFBZ0F6c0JBaUFBSUFFN0FRQUxNQUVCZndKQUFrQkJnSUFCUVFJUVdTSUJEUUVNQUF0QmdJQUJRUUlRWXdBTElBQWdBVFlDQUNBQVFZQWdOZ0lFQzRZQkFRRi9Jd0JCUUdvaUFTUUFJQUZCS3pZQ0RDQUJRWUNCd0FBMkFnZ2dBVUdzZ2NBQU5nSVVJQUVnQURZQ0VDQUJRU3hxUVFJMkFnQWdBVUU4YWtFaE5nSUFJQUZDQWpjQ0hDQUJRYXlNd0FBMkFoZ2dBVUVkTmdJMElBRWdBVUV3YWpZQ0tDQUJJQUZCRUdvMkFqZ2dBU0FCUVFocU5nSXdJQUZCR0dwQjhJREFBQkJSQUF0eEFRTi9Jd0JCSUdzaUFpUUFBa0FnQUNBQkVCa05BQ0FCUVJ4cUtBSUFJUU1nQVNnQ0dDQUNRUnhxUVFBMkFnQWdBa0h3aThBQU5nSVlJQUpDQVRjQ0RDQUNRZlNMd0FBMkFnZ2dBeUFDUVFocUVBa05BQ0FBUVFScUlBRVFHU0FDUVNCcUpBQVBDeUFDUVNCcUpBQkJBUXN3QVFGL0FrQUNRRUdBd0FCQkFoQlpJZ0VOQVF3QUMwR0F3QUJCQWhCakFBc2dBQ0FCTmdJQUlBQkJnQ0EyQWdRTGV3RUNmd0pBQWtBZ0FDZ0NCQ0lCQkVBZ0FDZ0NEQ0lDSUFGUERRRWdBQ2dDQUNJQklBSnFJQUV0QUFBNkFBQWdBRUVBTmdJSUlBQWdBQ2dDREVFQmFqWUNEQ0FBS0FJRVJRMENJQUFvQWdBdEFBQVBDMEVBUVFCQmlJYkFBQkEyQUFzZ0FpQUJRWmlHd0FBUU5nQUxRUUJCQUVHb2hzQUFFRFlBQzJnQkFuOGdBQ0FBTFFCR0lnRkJBV29pQWpvQUNpQUFRUUVnQVVFUGNYUkJBbW9pQVRzQlFDQUFRWDhnQWtFUGNYUkJmM003QVFnZ0FFRVlhaWdDQUNBQlFmLy9BM0VpQVU4RVFDQUFJQUUyQWhnTElBQkJKR29vQWdBZ0FVOEVRQ0FBSUFFMkFpUUxDMUFCQVg4Z0FFRVVhaWdDQUNJQlJTQUJRUUowUlhKRkJFQWdBQ2dDRUJBRUN5QUFRU0JxS0FJQUlnRkZJQUZCQVhSRmNrVUVRQ0FBS0FJY0VBUUxJQUJCTEdvb0FnQUVRQ0FBS0FJb0VBUUxDMndCQVg4akFFRXdheUlESkFBZ0F5QUJOZ0lFSUFNZ0FEWUNBQ0FEUVJ4cVFRSTJBZ0FnQTBFc2FrRWNOZ0lBSUFOQ0FqY0NEQ0FEUVlDTndBQTJBZ2dnQTBFY05nSWtJQU1nQTBFZ2FqWUNHQ0FESUFNMkFpZ2dBeUFEUVFScU5nSWdJQU5CQ0dvZ0FoQlJBQXRzQVFGL0l3QkJNR3NpQXlRQUlBTWdBVFlDQkNBRElBQTJBZ0FnQTBFY2FrRUNOZ0lBSUFOQkxHcEJIRFlDQUNBRFFnSTNBZ3dnQTBITWtjQUFOZ0lJSUFOQkhEWUNKQ0FESUFOQklHbzJBaGdnQXlBRFFRUnFOZ0lvSUFNZ0F6WUNJQ0FEUVFocUlBSVFVUUFMYkFFQmZ5TUFRVEJySWdNa0FDQURJQUUyQWdRZ0F5QUFOZ0lBSUFOQkhHcEJBallDQUNBRFFTeHFRUncyQWdBZ0EwSUNOd0lNSUFOQmdKTEFBRFlDQ0NBRFFSdzJBaVFnQXlBRFFTQnFOZ0lZSUFNZ0EwRUVhallDS0NBRElBTTJBaUFnQTBFSWFpQUNFRkVBQzJ3QkFYOGpBRUV3YXlJREpBQWdBeUFCTmdJRUlBTWdBRFlDQUNBRFFSeHFRUUkyQWdBZ0EwRXNha0VjTmdJQUlBTkNBamNDRENBRFFheVJ3QUEyQWdnZ0EwRWNOZ0lrSUFNZ0EwRWdhallDR0NBRElBTkJCR28yQWlnZ0F5QUROZ0lnSUFOQkNHb2dBaEJSQUF0Y0FRRi9Jd0JCRUdzaUF5UUFBa0FnQUNnQ0JDQUJheUFDVHdSQUlBTkJBRFlDQUF3QkN5QURJQUFnQVNBQ0VCWWdBeWdDQUVFQlJ3MEFJQU5CQ0dvb0FnQWlBQVJBSUFNb0FnUWdBQkJqQUFzUVhRQUxJQU5CRUdva0FBdGFBUUYvSXdCQkVHc2lBaVFBQWtBZ0FDZ0NCQ0FCYTBFQlR3UkFJQUpCQURZQ0FBd0JDeUFDSUFBZ0FSQWVJQUlvQWdCQkFVY05BQ0FDUVFocUtBSUFJZ0FFUUNBQ0tBSUVJQUFRWXdBTEVGMEFDeUFDUVJCcUpBQUxXZ0VCZnlNQVFSQnJJZ0lrQUFKQUlBQW9BZ1FnQVd0QkFVOEVRQ0FDUVFBMkFnQU1BUXNnQWlBQUlBRVFIU0FDS0FJQVFRRkhEUUFnQWtFSWFpZ0NBQ0lBQkVBZ0FpZ0NCQ0FBRUdNQUN4QmRBQXNnQWtFUWFpUUFDMWtCQVg4akFFRWdheUlDSkFBZ0FpQUFLQUlBTmdJRUlBSkJHR29nQVVFUWFpa0NBRGNEQUNBQ1FSQnFJQUZCQ0dvcEFnQTNBd0FnQWlBQktRSUFOd01JSUFKQkJHcEIySW5BQUNBQ1FRaHFFQWtnQWtFZ2FpUUFDMFlBQWtCQkNDQUNTUVJBQW45QkNDQUNTUVJBSUFJZ0F4QVFEQUVMSUFNUUFBc2lBZzBCUVFBUEN5QUFJQU1RQ2c4TElBSWdBQ0FESUFFZ0FTQURTeHNRU3lBQUVBUUxXUUVCZnlNQVFTQnJJZ0lrQUNBQ0lBQW9BZ0EyQWdRZ0FrRVlhaUFCUVJCcUtRSUFOd01BSUFKQkVHb2dBVUVJYWlrQ0FEY0RBQ0FDSUFFcEFnQTNBd2dnQWtFRWFrSHdqOEFBSUFKQkNHb1FDU0FDUVNCcUpBQUxXUUFDUUFKQUFrQWdBVUYvU2dSQUFrQWdBZ1JBSUFFTkFRd0VDeUFCUlEwRElBRkJBUkJaSWdJTkJBd0NDeUFCRUVjaUFrVU5BUXdEQ3hCZEFBc2dBVUVCRUdNQUMwRUJJUUlMSUFBZ0FUWUNCQ0FBSUFJMkFnQUxWZ0VCZnlNQVFTQnJJZ0lrQUNBQ0lBQTJBZ1FnQWtFWWFpQUJRUkJxS1FJQU53TUFJQUpCRUdvZ0FVRUlhaWtDQURjREFDQUNJQUVwQWdBM0F3Z2dBa0VFYWtId2o4QUFJQUpCQ0dvUUNTQUNRU0JxSkFBTFdRRURmd0pBSUFFb0Fnd2lBaUFCS0FJSUlnTlBCRUFnQVNnQ0JDSUVJQUpKRFFFZ0FTZ0NBQ0VCSUFBZ0FpQURhellDQkNBQUlBRWdBMm8yQWdBUEN5QURJQUpCMkliQUFCQTRBQXNnQWlBRVFkaUd3QUFRTndBTFZRRUJmeUFBUVJCcUlBQXRBRVlRRFNBQVFRQTZBRWNnQUVFQU93RTRJQUJCTUdwQ0FEY0RBQ0FBUVFBNkFBc2dBRUlBTndNQUlBQWdBQzBBUmtFQmFpSUJPZ0FLSUFCQmZ5QUJRUTl4ZEVGL2N6c0JDQXREQVFOL0FrQWdBa1VOQUFOQUlBQXRBQUFpQkNBQkxRQUFJZ1ZHQkVBZ0FFRUJhaUVBSUFGQkFXb2hBU0FDUVg5cUlnSU5BUXdDQ3dzZ0JDQUZheUVEQ3lBREMwVUJBWDhqQUVFUWF5SUNKQUFnQWlBQUlBRVFMUUpBSUFJb0FnQkJBVVlFUUNBQ1FRaHFLQUlBSWdCRkRRRWdBaWdDQkNBQUVHTUFDeUFDUVJCcUpBQVBDeEJkQUF0S0FBSi9JQUZCZ0lERUFFY0VRRUVCSUFBb0FoZ2dBU0FBUVJ4cUtBSUFLQUlRRVFBQURRRWFDeUFDUlFSQVFRQVBDeUFBS0FJWUlBSWdBeUFBUVJ4cUtBSUFLQUlNRVFFQUN3c21BUUYvQWtBZ0FCQUFJZ0ZGRFFBZ0FVRjhhaTBBQUVFRGNVVU5BQ0FCSUFBUVVnc2dBUXRIQVFGL0l3QkJJR3NpQXlRQUlBTkJGR3BCQURZQ0FDQURRZkNMd0FBMkFoQWdBMElCTndJRUlBTWdBVFlDSENBRElBQTJBaGdnQXlBRFFSaHFOZ0lBSUFNZ0FoQlJBQXRFQVFKL0lBRW9BZ1FoQWlBQktBSUFJUU5CQ0VFRUVGa2lBVVVFUUVFSVFRUVFZd0FMSUFFZ0FqWUNCQ0FCSUFNMkFnQWdBRUdnaThBQU5nSUVJQUFnQVRZQ0FBdGJBUU4vSXdCQkVHc2lBU1FBSUFBb0Fnd2lBa1VFUUVHQWlzQUFRU3RCeUlyQUFCQklBQXNnQUNnQ0NDSURSUVJBUVlDS3dBQkJLMEhZaXNBQUVFZ0FDeUFCSUFJMkFnZ2dBU0FBTmdJRUlBRWdBellDQUNBQkVGQUFDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQUJRUUZxSVFFZ0EwRUJhaUVESUFKQmYyb2lBZzBBQ3dzZ0FBc3NBQUpBSUFCQmZFMEVRQ0FBUlFSQVFRUWhBQXdDQ3lBQUlBQkJmVWxCQW5RUVdTSUFEUUVMQUFzZ0FBc3hBUUYvSUFFb0FnUWlBZ1JBSUFBZ0FqWUNCQ0FBUVFocVFRRTJBZ0FnQUNBQktBSUFOZ0lBRHdzZ0FFRUFOZ0lBQ3pFQkFYOGdBQ0FCS0FJRUlBRW9BZ2dpQWtzRWZ5QUJJQUlRUlNBQktBSUlCU0FDQ3pZQ0JDQUFJQUVvQWdBMkFnQUxLQUVCZnlBQUtBSUlJZ0lnQVU4RVFDQUFLQUlBR2lBQUlBRTJBZ2dQQ3lBQUlBRWdBbXNRS0Fzc0FRRi9Jd0JCRUdzaUFTUUFJQUZCQ0dvZ0FFRUlhaWdDQURZQ0FDQUJJQUFwQWdBM0F3QWdBUkFzQUFzMEFRRi9Jd0JCRUdzaUFpUUFJQUlnQVRZQ0RDQUNJQUEyQWdnZ0FrRzhqTUFBTmdJRUlBSkI4SXZBQURZQ0FDQUNFRW9BQ3lFQUlBRUVRQU5BSUFCQkFEb0FBQ0FBUVFGcUlRQWdBVUYvYWlJQkRRQUxDd3NnQVFGL0FrQWdBQ2dDQUNJQlJRMEFJQUJCQkdvb0FnQkZEUUFnQVJBRUN3c2dBUUYvQWtBZ0FDZ0NCQ0lCUlEwQUlBQkJDR29vQWdCRkRRQWdBUkFFQ3dzTUFDQUFJQUVnQWlBREVENExDd0FnQVFSQUlBQVFCQXNMRWdBZ0FDZ0NBQ0FCSUFFZ0Ftb1FIMEVBQ3hRQUlBQW9BZ0FnQVNBQUtBSUVLQUlNRVFBQUN4a0FBbjlCQ0NBQlNRUkFJQUVnQUJBUURBRUxJQUFRQUFzTEVBQWdBQ0FDTmdJRUlBQWdBVFlDQUFzVEFDQUFRYUNMd0FBMkFnUWdBQ0FCTmdJQUN4QUFJQUVnQUNnQ0FDQUFLQUlFRUFVTEVRQkJ6SXZBQUVFUlFlQ0x3QUFRU0FBTERnQWdBQ2dDQUJvRFFBd0FDd0FMQ3dBZ0FEVUNBQ0FCRUJVTERRQWdBQ2dDQUNBQklBSVFDd3NMQUNBQU1RQUFJQUVRRlFzTEFDQUFJd0JxSkFBakFBc1pBQ0FBSUFGQitLYkFBQ2dDQUNJQVFRNGdBQnNSQWdBQUN3MEFJQUZCeEpEQUFFRUNFQVVMQ1FBZ0FFRUFPZ0JIQ3djQUlBQXRBRWNMRFFCQzlQbWU1dTZqcXZuK0FBc05BRUwzdU83NnFzelY3dVVBQ3d3QVF1blFvdHZNb3VxN1Jnc0RBQUVMQXdBQkN3dmZKZ0VBUVlDQXdBQUwxU1l2VlhObGNuTXZabTA0TVRNdkxuSjFjM1IxY0M5MGIyOXNZMmhoYVc1ekwzTjBZV0pzWlMxNE9EWmZOalF0WVhCd2JHVXRaR0Z5ZDJsdUwyeHBZaTl5ZFhOMGJHbGlMM055WXk5eWRYTjBMMnhwWW5KaGNua3ZZMjl5WlM5emNtTXZZV3hzYjJNdmJHRjViM1YwTG5KekFBQVFBSEFBQUFBTEFRQUFPUUFBQUdOaGJHeGxaQ0JnVW1WemRXeDBPanAxYm5keVlYQW9LV0FnYjI0Z1lXNGdZRVZ5Y21BZ2RtRnNkV1VBQVFBQUFBQUFBQUFCQUFBQUFnQUFBSE55WXk5c2FXSXVjbk1BQUx3QUVBQUtBQUFBR3dBQUFBNEFBQUM4QUJBQUNnQUFBQndBQUFBU0FBQUFZWE56WlhKMGFXOXVJR1poYVd4bFpEb2diV2xrSUR3OUlITmxiR1l1YkdWdUtDa3ZWWE5sY25NdlptMDRNVE12TG5KMWMzUjFjQzkwYjI5c1kyaGhhVzV6TDNOMFlXSnNaUzE0T0RaZk5qUXRZWEJ3YkdVdFpHRnlkMmx1TDJ4cFlpOXlkWE4wYkdsaUwzTnlZeTl5ZFhOMEwyeHBZbkpoY25rdlkyOXlaUzl6Y21NdmMyeHBZMlV2Ylc5a0xuSnpDd0VRQUcwQUFBRDlCQUFBQ1FBQUFBTUFBQUJRQUFBQUNBQUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBVUFBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFMMVZ6WlhKekwyWnRPREV6THk1allYSm5ieTl5WldkcGMzUnllUzl6Y21NdloybDBhSFZpTG1OdmJTMHhaV05qTmpJNU9XUmlPV1ZqT0RJekwzZGxaWHBzTFRBdU1TNDBMM055WXk5a1pXTnZaR1V1Y25NQUFNQUJFQUJXQUFBQVdnSUFBQjhBQUFEQUFSQUFWZ0FBQUcwQ0FBQWJBQUFBd0FFUUFGWUFBQUNDQWdBQUpnQUFBTUFCRUFCV0FBQUFxd0lBQUJFQUFBREFBUkFBVmdBQUFLMENBQUFSQUFBQXdBRVFBRllBQUFDNUFnQUFHUUFBQU1BQkVBQldBQUFBelFJQUFDSUFBQURBQVJBQVZnQUFBTThDQUFBYkFBQUF3QUVRQUZZQUFBRFFBZ0FBRlFBQUFNQUJFQUJXQUFBQTBRSUFBQlVBQUFEQUFSQUFWZ0FBQVBvQ0FBQU5BQUFBd0FFUUFGWUFBQUJGQXdBQUVRQUFBTUFCRUFCV0FBQUFTd01BQUJFQUFBREFBUkFBVmdBQUFJb0RBQUFSQUFBQXdBRVFBRllBQUFDUUF3QUFFUUFBQU1BQkVBQldBQUFBdkFNQUFDY0FBQURBQVJBQVZnQUFBTHdEQUFBSkFBQUF3QUVRQUZZQUFBQy9Bd0FBQ1FBQUFNQUJFQUJXQUFBQXhnTUFBQlVBQUFEQUFSQUFWZ0FBQU1rREFBQVlBQUFBd0FFUUFGWUFBQURTQXdBQUNnQUFBTUFCRUFCV0FBQUErQU1BQUFvQUFBREFBUkFBVmdBQUFBVUVBQUFWQUFBQXdBRVFBRllBQUFBTkJBQUFGZ0FBQU1BQkVBQldBQUFBR0FRQUFBa0FBQUF2VlhObGNuTXZabTA0TVRNdkxuSjFjM1IxY0M5MGIyOXNZMmhoYVc1ekwzTjBZV0pzWlMxNE9EWmZOalF0WVhCd2JHVXRaR0Z5ZDJsdUwyeHBZaTl5ZFhOMGJHbGlMM055WXk5eWRYTjBMMnhwWW5KaGNua3ZZV3hzYjJNdmMzSmpMM0poZDE5MlpXTXVjbk5VY21sbFpDQjBieUJ6YUhKcGJtc2dkRzhnWVNCc1lYSm5aWElnWTJGd1lXTnBkSG1vQXhBQWJBQUFBTVVCQUFBSkFBQUFUV0Y0YVcxMWJTQmpiMlJsSUhOcGVtVWdNVElnY21WeGRXbHlaV1FzSUdkdmRDQUFTQVFRQUNNQUFBQXZWWE5sY25NdlptMDRNVE12TG1OaGNtZHZMM0psWjJsemRISjVMM055WXk5bmFYUm9kV0l1WTI5dExURmxZMk0yTWprNVpHSTVaV000TWpNdmQyVmxlbXd0TUM0eExqUXZjM0pqTDJ4cFlpNXljd0IwQkJBQVV3QUFBRTBBQUFBRkFBQUFEd0FBQUFRQUFBQUVBQUFBRUFBQUFCRUFBQUFTQUFBQUR3QUFBQUFBQUFBQkFBQUFFd0FBQUdOaGJHeGxaQ0JnVDNCMGFXOXVPanAxYm5keVlYQW9LV0FnYjI0Z1lTQmdUbTl1WldBZ2RtRnNkV1ZzYVdKeVlYSjVMM04wWkM5emNtTXZjR0Z1YVdOcmFXNW5Mbkp6QUNzRkVBQWNBQUFBN1FFQUFCOEFBQUFyQlJBQUhBQUFBTzRCQUFBZUFBQUFGQUFBQUJBQUFBQUVBQUFBRlFBQUFCWUFBQUFQQUFBQUNBQUFBQVFBQUFBWEFBQUFHQUFBQUJrQUFBQU1BQUFBQkFBQUFCb0FBQUFQQUFBQUNBQUFBQVFBQUFBYkFBQUFiR2xpY21GeWVTOWhiR3h2WXk5emNtTXZjbUYzWDNabFl5NXljMk5oY0dGamFYUjVJRzkyWlhKbWJHOTNBQUFBc0FVUUFCd0FBQUFlQWdBQUJRQUFBR0F1TGdEeEJSQUFBZ0FBQUdOaGJHeGxaQ0JnVDNCMGFXOXVPanAxYm5keVlYQW9LV0FnYjI0Z1lTQmdUbTl1WldBZ2RtRnNkV1U2SUFBQUFQQUZFQUFBQUFBQUp3WVFBQUlBQUFBaUFBQUFBQUFBQUFFQUFBQWpBQUFBYVc1a1pYZ2diM1YwSUc5bUlHSnZkVzVrY3pvZ2RHaGxJR3hsYmlCcGN5QWdZblYwSUhSb1pTQnBibVJsZUNCcGN5QUFBRXdHRUFBZ0FBQUFiQVlRQUJJQUFBQnNhV0p5WVhKNUwyTnZjbVV2YzNKakwyWnRkQzlpZFdsc1pHVnljeTV5Y3lJQUFBQU1BQUFBQkFBQUFDUUFBQUFsQUFBQUpnQUFBQ0FnSUNDUUJoQUFJQUFBQURJQUFBQWhBQUFBa0FZUUFDQUFBQUF6QUFBQUVnQUFBQ0I3Q2l3S0xDQWdleUI5SUgxc2FXSnlZWEo1TDJOdmNtVXZjM0pqTDJadGRDOXVkVzB1Y25QNUJoQUFHd0FBQUdVQUFBQVVBQUFBTUhnd01EQXhNREl3TXpBME1EVXdOakEzTURnd09URXdNVEV4TWpFek1UUXhOVEUyTVRjeE9ERTVNakF5TVRJeU1qTXlOREkxTWpZeU56STRNamt6TURNeE16SXpNek0wTXpVek5qTTNNemd6T1RRd05ERTBNalF6TkRRME5UUTJORGMwT0RRNU5UQTFNVFV5TlRNMU5EVTFOVFkxTnpVNE5UazJNRFl4TmpJMk16WTBOalUyTmpZM05qZzJPVGN3TnpFM01qY3pOelEzTlRjMk56YzNPRGM1T0RBNE1UZ3lPRE00TkRnMU9EWTROemc0T0RrNU1Ea3hPVEk1TXprME9UVTVOamszT1RnNU9RQUFJZ0FBQUFRQUFBQUVBQUFBSndBQUFDZ0FBQUFwQUFBQWJHbGljbUZ5ZVM5amIzSmxMM055WXk5bWJYUXZiVzlrTG5KekFBZ0lFQUFiQUFBQVZRUUFBQkVBQUFBSUNCQUFHd0FBQUY4RUFBQWtBQUFBS0Nsc2FXSnlZWEo1TDJOdmNtVXZjM0pqTDNOc2FXTmxMMjFsYldOb2NpNXljd0FBUmdnUUFDQUFBQUJhQUFBQUJRQUFBSEpoYm1kbElITjBZWEowSUdsdVpHVjRJQ0J2ZFhRZ2IyWWdjbUZ1WjJVZ1ptOXlJSE5zYVdObElHOW1JR3hsYm1kMGFDQjRDQkFBRWdBQUFJb0lFQUFpQUFBQWNtRnVaMlVnWlc1a0lHbHVaR1Y0SUx3SUVBQVFBQUFBaWdnUUFDSUFBQUJ6YkdsalpTQnBibVJsZUNCemRHRnlkSE1nWVhRZ0lHSjFkQ0JsYm1SeklHRjBJQURjQ0JBQUZnQUFBUElJRUFBTkFBQUFiR2xpY21GeWVTOWpiM0psTDNOeVl5OXpkSEl2Y0dGMGRHVnliaTV5Y3dBUUNSQUFId0FBQUxBQkFBQW1BQUFBV3k0dUxsMWllWFJsSUdsdVpHVjRJQ0JwY3lCdmRYUWdiMllnWW05MWJtUnpJRzltSUdBQUFFVUpFQUFMQUFBQVVBa1FBQllBQUFEd0JSQUFBUUFBQUdKbFoybHVJRHc5SUdWdVpDQW9JRHc5SUNrZ2QyaGxiaUJ6YkdsamFXNW5JR0FBQUlBSkVBQU9BQUFBamdrUUFBUUFBQUNTQ1JBQUVBQUFBUEFGRUFBQkFBQUFJR2x6SUc1dmRDQmhJR05vWVhJZ1ltOTFibVJoY25rN0lHbDBJR2x6SUdsdWMybGtaU0FnS0dKNWRHVnpJQ2tnYjJZZ1lFVUpFQUFMQUFBQXhBa1FBQ1lBQUFEcUNSQUFDQUFBQVBJSkVBQUdBQUFBOEFVUUFBRUFBQUJzYVdKeVlYSjVMMk52Y21VdmMzSmpMM1Z1YVdOdlpHVXZjSEpwYm5SaFlteGxMbkp6QUFBQUlBb1FBQ1VBQUFBS0FBQUFIQUFBQUNBS0VBQWxBQUFBR2dBQUFEWUFBQUFBQVFNRkJRWUdBd2NHQ0FnSkVRb2NDeGtNRkEwUURnMFBCQkFERWhJVENSWUJGd1VZQWhrREdnY2NBaDBCSHhZZ0F5c0RMQUl0Q3k0Qk1BTXhBaklCcHdLcEFxb0Vxd2o2QXZzRi9RVCtBLzhKclhoNWk0MmlNRmRZaTR5UUhCM2REZzlMVFB2OExpOC9YRjFmdGVLRWpZNlJrcW14dXJ2RnhzbkszdVRsL3dBRUVSSXBNVFEzT2pzOVNVcGRoSTZTcWJHMHVydkd5czdQNU9VQUJBME9FUklwTVRRNk8wVkdTVXBlWkdXRWtadWR5YzdQRFJFcFJVbFhaR1dOa2FtMHVydkZ5ZC9rNWZBTkVVVkpaR1dBaExLOHZyL1YxL0R4ZzRXTHBLYSt2OFhIenMvYTIwaVl2YzNHenM5SlRrOVhXVjVmaVk2UHNiYTN2OEhHeDljUkZoZGJYUGIzL3YrQURXMXgzdDhPRHg5dWJ4d2RYMzErcnErN3ZQb1dGeDRmUmtkT1QxaGFYRjUrZjdYRjFOWGM4UEgxY25PUGRIV1dMMThtTGkrbnI3ZS94OC9YMzVwQWw1Z3dqeC9Bd2M3L1RrOWFXd2NJRHhBbkwrN3ZibTgzUFQ5Q1JaQ1IvdjlUWjNYSXlkRFIyTm5uL3Y4QUlGOGlndDhFZ2tRSUd3UUdFWUdzRG9Dck5TZ0xnT0FER1FnQkJDOEVOQVFIQXdFSEJnY1JDbEFQRWdkVkJ3TUVIQW9KQXdnREJ3TUNBd01EREFRRkF3c0dBUTRWQlRvREVRY0dCUkFIVndjQ0J4VU5VQVJEQXkwREFRUVJCZzhNT2dRZEpWOGdiUVJxSllESUJZS3dBeG9HZ3YwRFdRY1ZDeGNKRkF3VURHb0dDZ1lhQmxrSEt3VkdDaXdFREFRQkF6RUxMQVFhQmdzRGdLd0dDZ1loUDB3RUxRTjBDRHdERHdNOEJ6Z0lLd1dDL3hFWUNDOFJMUU1nRUNFUGdJd0VncGNaQ3hXSWxBVXZCVHNIQWc0WUNZQ3pMWFFNZ05ZYURBV0Evd1dBM3d6dURRT0VqUU0zQ1lGY0ZJQzRDSURMS2pnRENnWTRDRVlJREFaMEN4NERXZ1JaQ1lDREdCd0tGZ2xNQklDS0JxdWtEQmNFTWFFRWdkb21Cd3dGQllDbEVZRnRFSGdvS2daTUJJQ05CSUMrQXhzRER3MEFCZ0VCQXdFRUFnZ0lDUUlLQlFzQ0RnUVFBUkVDRWdVVEVSUUJGUUlYQWhrTkhBVWRDQ1FCYWdOckFyd0MwUUxVRE5VSjFnTFhBdG9CNEFYaEF1Z0M3aUR3QlBnQytRTDZBdnNCRENjN1BrNVBqNTZlbndZSENUWTlQbGJ6ME5FRUZCZzJOMVpYZjZxdXI3MDE0QktIaVk2ZUJBME9FUklwTVRRNlJVWkpTazVQWkdWY3RyY2JIQWNJQ2dzVUZ6WTVPcWlwMk5rSk41Q1JxQWNLT3o1bWFZK1NiMS91NzFwaW1wc25LRldkb0tHanBLZW9yYnE4eEFZTERCVWRPajlGVWFhbnpNMmdCeGthSWlVK1A4WEdCQ0FqSlNZb016ZzZTRXBNVUZOVlZsaGFYRjVnWTJWbWEzTjRmWCtLcEtxdnNNRFFycTk1ekc1dmsxNGlld1VEQkMwRFpnTUJMeTZBZ2gwRE1ROGNCQ1FKSGdVckJVUUVEaXFBcWdZa0JDUUVLQWcwQ3dHQWtJRTNDUllLQ0lDWU9RTmpDQWt3RmdVaEF4c0ZBVUE0QkVzRkx3UUtCd2tIUUNBbkJBd0pOZ002QlJvSEJBd0hVRWszTXcwekJ5NElDb0VtVWs0b0NDcFdIQlFYQ1U0RUhnOUREaGtIQ2daSUNDY0pkUXMvUVNvR093VUtCbEVHQVFVUUF3V0FpMkllU0FnS2dLWmVJa1VMQ2dZTkV6a0hDallzQkJDQXdEeGtVd3hJQ1FwR1JSdElDRk1kT1lFSFJnb2RBMGRKTndNT0NBb0dPUWNLZ1RZWmdMY0JEeklOZzV0bWRRdUF4SXE4aEMrUDBZSkhvYm1DT1FjcUJBSmdKZ3BHQ2lnRkU0S3dXMlZMQkRrSEVVQUZDd0lPbC9nSWhOWXFDYUwzZ1I4eEF4RUVDSUdNaVFSckJRMERDUWNRazJDQTlncHpDRzRYUm9DYUZBeFhDUm1BaDRGSEE0VkNEeFdGVUN1QTFTMERHZ1FDZ1hBNkJRR0ZBSURYS1V3RUNnUUNneEZFVEQyQXdqd0dBUVJWQlJzMEFvRU9MQVJrREZZS2dLNDRIUTBzQkFrSEFnNEdnSnFEMkFnTkF3MERkQXhaQnd3VURBUTRDQW9HS0FnaVRvRlVEQlVEQXdVSENSa0hCd2tERFFjcGdNc2xDb1FHYkdsaWNtRnllUzlqYjNKbEwzTnlZeTkxYm1samIyUmxMM1Z1YVdOdlpHVmZaR0YwWVM1eWN3Q3ZEeEFBS0FBQUFFc0FBQUFvQUFBQXJ3OFFBQ2dBQUFCWEFBQUFGZ0FBQUs4UEVBQW9BQUFBVWdBQUFENEFBQUFpQUFBQUJBQUFBQVFBQUFBcUFBQUFBQU1BQUlNRUlBQ1JCV0FBWFJPZ0FCSVhvQjRNSU9BZTd5d2dLeW93b0N0dnBtQXNBcWpnTEI3NzRDMEEvcUExbnYvZ05mMEJZVFlCQ3FFMkpBMWhONnNPNFRndkdDRTVNQnhoUnZNZW9VcndhbUZPVDIraFRwMjhJVTlsMGVGUEFOb2hVQURnNFZFdzRXRlQ3T0toVk5EbzRWUWdBQzVWOEFHL1ZRQndBQWNBTFFFQkFRSUJBZ0VCU0Fzd0ZSQUJaUWNDQmdJQ0FRUWpBUjRiV3dzNkNRa0JHQVFCQ1FFREFRVXJBM2NQQVNBM0FRRUJCQWdFQVFNSENnSWRBVG9CQVFFQ0JBZ0JDUUVLQWhvQkFnSTVBUVFDQkFJQ0F3TUJIZ0lEQVFzQ09RRUVCUUVDQkFFVUFoWUdBUUU2QVFFQ0FRUUlBUWNEQ2dJZUFUc0JBUUVNQVFrQktBRURBVGtEQlFNQkJBY0NDd0lkQVRvQkFnRUNBUU1CQlFJSEFnc0NIQUk1QWdFQkFnUUlBUWtCQ2dJZEFVZ0JCQUVDQXdFQkNBRlJBUUlIREFoaUFRSUpDd1pLQWhzQkFRRUJBVGNPQVFVQkFnVUxBU1FKQVdZRUFRWUJBZ0lDR1FJRUF4QUVEUUVDQWdZQkR3RUFBd0FESFFNZEFoNENRQUlCQndnQkFnc0pBUzBEZHdJaUFYWURCQUlKQVFZRDJ3SUNBVG9CQVFjQkFRRUJBZ2dHQ2dJQk1CRS9CREFIQVFFRkFTZ0pEQUlnQkFJQ0FRTTRBUUVDQXdFQkF6b0lBZ0tZQXdFTkFRY0VBUVlCQXdMR09nRUZBQUhESVFBRGpRRmdJQUFHYVFJQUJBRUtJQUpRQWdBQkF3RUVBUmtDQlFHWEFob1NEUUVtQ0JrTExnTXdBUUlFQWdJbkFVTUdBZ0lDQWd3QkNBRXZBVE1CQVFNQ0FnVUNBUUVxQWdnQjdnRUNBUVFCQUFFQUVCQVFBQUlBQWVJQmxRVUFBd0VDQlFRb0F3UUJwUUlBQkFBQ21RdXdBVFlQT0FNeEJBSUNSUU1rQlFFSVBnRU1BalFKQ2dRQ0FWOERBZ0VCQWdZQm9BRURDQlVDT1FJQkFRRUJGZ0VPQndNRnd3Z0NBd0VCRndGUkFRSUdBUUVDQVFFQ0FRTHJBUUlFQmdJQkFoc0NWUWdDQVFFQ2FnRUJBUUlHQVFGbEF3SUVBUVVBQ1FFQzlRRUtBZ0VCQkFHUUJBSUNCQUVnQ2lnR0FnUUlBUWtHQWdNdURRRUNBQWNCQmdFQlVoWUNCd0VDQVFKNkJnTUJBUUlCQndFQlNBSURBUUVCQUFJQUJUc0hBQUUvQkZFQkFBSUFBUUVEQkFVSUNBSUhIZ1NVQXdBM0JESUlBUTRCRmdVQkR3QUhBUkVDQndFQ0FRVUFCd0FFQUFkdEJ3QmdnUEFBVEdGNWIzVjBSWEp5Y0hKcGRtRjBaUUI3Q1hCeWIyUjFZMlZ5Y3dJSWJHRnVaM1ZoWjJVQkJGSjFjM1FBREhCeWIyTmxjM05sWkMxaWVRTUZjblZ6ZEdNZE1TNDBPUzR3SUNobE1UZzROR0U0WlRNZ01qQXlNQzB4TWkweU9Ta0dkMkZzY25WekJqQXVNVGd1TUF4M1lYTnRMV0pwYm1SblpXNFNNQzR5TGpjd0lDaGlOak0xTldNeU56QXAiKTtsZXQgbzthc3luYyBmdW5jdGlvbiBOKEEsSSl7b3x8KG89YXdhaXQoYXN5bmMoKT0+KGF3YWl0IEUoRyksRCkpKCkpO2NvbnN0IGc9by5kZWNvbXByZXNzKEEsSSk7aWYoMD09PWcubGVuZ3RoKXRocm93IEVycm9yKCJGYWlsZWQgdG8gZGVjb2RlIHdpdGggTFpXIGRlY29kZXIuIik7cmV0dXJuIGd9CgogIGNsYXNzIExaV0RlY29kZXIgZXh0ZW5kcyBCYXNlRGVjb2RlciB7CiAgICBjb25zdHJ1Y3RvcihmaWxlRGlyZWN0b3J5KSB7CiAgICAgIHN1cGVyKCk7CiAgICAgIGNvbnN0IHdpZHRoID0gZmlsZURpcmVjdG9yeS5UaWxlV2lkdGggfHwgZmlsZURpcmVjdG9yeS5JbWFnZVdpZHRoOwogICAgICBjb25zdCBoZWlnaHQgPSBmaWxlRGlyZWN0b3J5LlRpbGVMZW5ndGggfHwgZmlsZURpcmVjdG9yeS5JbWFnZUxlbmd0aDsKICAgICAgY29uc3QgbmJ5dGVzID0gZmlsZURpcmVjdG9yeS5CaXRzUGVyU2FtcGxlWzBdIC8gODsKICAgICAgdGhpcy5tYXhVbmNvbXByZXNzZWRTaXplID0gd2lkdGggKiBoZWlnaHQgKiBuYnl0ZXM7CiAgICB9CgogICAgYXN5bmMgZGVjb2RlQmxvY2soYnVmZmVyKSB7CiAgICAgIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKICAgICAgY29uc3QgZGVjb2RlZCA9IGF3YWl0IE4oYnl0ZXMsIHRoaXMubWF4VW5jb21wcmVzc2VkU2l6ZSk7CiAgICAgIHJldHVybiBkZWNvZGVkLmJ1ZmZlcjsKICAgIH0KICB9CgogIC8qIC0qLSB0YWItd2lkdGg6IDI7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotIC8KICAvKiB2aW06IHNldCBzaGlmdHdpZHRoPTIgdGFic3RvcD0yIGF1dG9pbmRlbnQgY2luZGVudCBleHBhbmR0YWI6ICovCiAgLyoKICAgICBDb3B5cmlnaHQgMjAxMSBub3RtYXN0ZXJ5ZXQKICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAqLwoKICAvLyAtIFRoZSBKUEVHIHNwZWNpZmljYXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBJVFUgQ0NJVFQgUmVjb21tZW5kYXRpb24gVC44MQogIC8vICAgKHd3dy53My5vcmcvR3JhcGhpY3MvSlBFRy9pdHUtdDgxLnBkZikKICAvLyAtIFRoZSBKRklGIHNwZWNpZmljYXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBKUEVHIEZpbGUgSW50ZXJjaGFuZ2UgRm9ybWF0CiAgLy8gICAod3d3LnczLm9yZy9HcmFwaGljcy9KUEVHL2pmaWYzLnBkZikKICAvLyAtIFRoZSBBZG9iZSBBcHBsaWNhdGlvbi1TcGVjaWZpYyBKUEVHIG1hcmtlcnMgaW4gdGhlIFN1cHBvcnRpbmcgdGhlIERDVCBGaWx0ZXJzCiAgLy8gICBpbiBQb3N0U2NyaXB0IExldmVsIDIsIFRlY2huaWNhbCBOb3RlICM1MTE2CiAgLy8gICAocGFydG5lcnMuYWRvYmUuY29tL3B1YmxpYy9kZXZlbG9wZXIvZW4vcHMvc2RrLzUxMTYuRENUX0ZpbHRlci5wZGYpCgoKICBjb25zdCBkY3RaaWdaYWcgPSBuZXcgSW50MzJBcnJheShbCiAgICAwLAogICAgMSwgOCwKICAgIDE2LCA5LCAyLAogICAgMywgMTAsIDE3LCAyNCwKICAgIDMyLCAyNSwgMTgsIDExLCA0LAogICAgNSwgMTIsIDE5LCAyNiwgMzMsIDQwLAogICAgNDgsIDQxLCAzNCwgMjcsIDIwLCAxMywgNiwKICAgIDcsIDE0LCAyMSwgMjgsIDM1LCA0MiwgNDksIDU2LAogICAgNTcsIDUwLCA0MywgMzYsIDI5LCAyMiwgMTUsCiAgICAyMywgMzAsIDM3LCA0NCwgNTEsIDU4LAogICAgNTksIDUyLCA0NSwgMzgsIDMxLAogICAgMzksIDQ2LCA1MywgNjAsCiAgICA2MSwgNTQsIDQ3LAogICAgNTUsIDYyLAogICAgNjMsCiAgXSk7CgogIGNvbnN0IGRjdENvczEgPSA0MDE3OyAvLyBjb3MocGkvMTYpCiAgY29uc3QgZGN0U2luMSA9IDc5OTsgLy8gc2luKHBpLzE2KQogIGNvbnN0IGRjdENvczMgPSAzNDA2OyAvLyBjb3MoMypwaS8xNikKICBjb25zdCBkY3RTaW4zID0gMjI3NjsgLy8gc2luKDMqcGkvMTYpCiAgY29uc3QgZGN0Q29zNiA9IDE1Njc7IC8vIGNvcyg2KnBpLzE2KQogIGNvbnN0IGRjdFNpbjYgPSAzNzg0OyAvLyBzaW4oNipwaS8xNikKICBjb25zdCBkY3RTcXJ0MiA9IDU3OTM7IC8vIHNxcnQoMikKICBjb25zdCBkY3RTcXJ0MWQyID0gMjg5NjsvLyBzcXJ0KDIpIC8gMgoKICBmdW5jdGlvbiBidWlsZEh1ZmZtYW5UYWJsZShjb2RlTGVuZ3RocywgdmFsdWVzKSB7CiAgICBsZXQgayA9IDA7CiAgICBjb25zdCBjb2RlID0gW107CiAgICBsZXQgbGVuZ3RoID0gMTY7CiAgICB3aGlsZSAobGVuZ3RoID4gMCAmJiAhY29kZUxlbmd0aHNbbGVuZ3RoIC0gMV0pIHsKICAgICAgLS1sZW5ndGg7CiAgICB9CiAgICBjb2RlLnB1c2goeyBjaGlsZHJlbjogW10sIGluZGV4OiAwIH0pOwoKICAgIGxldCBwID0gY29kZVswXTsKICAgIGxldCBxOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvZGVMZW5ndGhzW2ldOyBqKyspIHsKICAgICAgICBwID0gY29kZS5wb3AoKTsKICAgICAgICBwLmNoaWxkcmVuW3AuaW5kZXhdID0gdmFsdWVzW2tdOwogICAgICAgIHdoaWxlIChwLmluZGV4ID4gMCkgewogICAgICAgICAgcCA9IGNvZGUucG9wKCk7CiAgICAgICAgfQogICAgICAgIHAuaW5kZXgrKzsKICAgICAgICBjb2RlLnB1c2gocCk7CiAgICAgICAgd2hpbGUgKGNvZGUubGVuZ3RoIDw9IGkpIHsKICAgICAgICAgIGNvZGUucHVzaChxID0geyBjaGlsZHJlbjogW10sIGluZGV4OiAwIH0pOwogICAgICAgICAgcC5jaGlsZHJlbltwLmluZGV4XSA9IHEuY2hpbGRyZW47CiAgICAgICAgICBwID0gcTsKICAgICAgICB9CiAgICAgICAgaysrOwogICAgICB9CiAgICAgIGlmIChpICsgMSA8IGxlbmd0aCkgewogICAgICAgIC8vIHAgaGVyZSBwb2ludHMgdG8gbGFzdCBjb2RlCiAgICAgICAgY29kZS5wdXNoKHEgPSB7IGNoaWxkcmVuOiBbXSwgaW5kZXg6IDAgfSk7CiAgICAgICAgcC5jaGlsZHJlbltwLmluZGV4XSA9IHEuY2hpbGRyZW47CiAgICAgICAgcCA9IHE7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBjb2RlWzBdLmNoaWxkcmVuOwogIH0KCiAgZnVuY3Rpb24gZGVjb2RlU2NhbihkYXRhLCBpbml0aWFsT2Zmc2V0LAogICAgZnJhbWUsIGNvbXBvbmVudHMsIHJlc2V0SW50ZXJ2YWwsCiAgICBzcGVjdHJhbFN0YXJ0LCBzcGVjdHJhbEVuZCwKICAgIHN1Y2Nlc3NpdmVQcmV2LCBzdWNjZXNzaXZlKSB7CiAgICBjb25zdCB7IG1jdXNQZXJMaW5lLCBwcm9ncmVzc2l2ZSB9ID0gZnJhbWU7CgogICAgY29uc3Qgc3RhcnRPZmZzZXQgPSBpbml0aWFsT2Zmc2V0OwogICAgbGV0IG9mZnNldCA9IGluaXRpYWxPZmZzZXQ7CiAgICBsZXQgYml0c0RhdGEgPSAwOwogICAgbGV0IGJpdHNDb3VudCA9IDA7CiAgICBmdW5jdGlvbiByZWFkQml0KCkgewogICAgICBpZiAoYml0c0NvdW50ID4gMCkgewogICAgICAgIGJpdHNDb3VudC0tOwogICAgICAgIHJldHVybiAoYml0c0RhdGEgPj4gYml0c0NvdW50KSAmIDE7CiAgICAgIH0KICAgICAgYml0c0RhdGEgPSBkYXRhW29mZnNldCsrXTsKICAgICAgaWYgKGJpdHNEYXRhID09PSAweEZGKSB7CiAgICAgICAgY29uc3QgbmV4dEJ5dGUgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICBpZiAobmV4dEJ5dGUpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBtYXJrZXI6ICR7KChiaXRzRGF0YSA8PCA4KSB8IG5leHRCeXRlKS50b1N0cmluZygxNil9YCk7CiAgICAgICAgfQogICAgICAgIC8vIHVuc3R1ZmYgMAogICAgICB9CiAgICAgIGJpdHNDb3VudCA9IDc7CiAgICAgIHJldHVybiBiaXRzRGF0YSA+Pj4gNzsKICAgIH0KICAgIGZ1bmN0aW9uIGRlY29kZUh1ZmZtYW4odHJlZSkgewogICAgICBsZXQgbm9kZSA9IHRyZWU7CiAgICAgIGxldCBiaXQ7CiAgICAgIHdoaWxlICgoYml0ID0gcmVhZEJpdCgpKSAhPT0gbnVsbCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbmQtYXNzaWduCiAgICAgICAgbm9kZSA9IG5vZGVbYml0XTsKICAgICAgICBpZiAodHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7CiAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiBub2RlICE9PSAnb2JqZWN0JykgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGh1ZmZtYW4gc2VxdWVuY2UnKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICBmdW5jdGlvbiByZWNlaXZlKGluaXRpYWxMZW5ndGgpIHsKICAgICAgbGV0IGxlbmd0aCA9IGluaXRpYWxMZW5ndGg7CiAgICAgIGxldCBuID0gMDsKICAgICAgd2hpbGUgKGxlbmd0aCA+IDApIHsKICAgICAgICBjb25zdCBiaXQgPSByZWFkQml0KCk7CiAgICAgICAgaWYgKGJpdCA9PT0gbnVsbCkgewogICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgICAgICB9CiAgICAgICAgbiA9IChuIDw8IDEpIHwgYml0OwogICAgICAgIC0tbGVuZ3RoOwogICAgICB9CiAgICAgIHJldHVybiBuOwogICAgfQogICAgZnVuY3Rpb24gcmVjZWl2ZUFuZEV4dGVuZChsZW5ndGgpIHsKICAgICAgY29uc3QgbiA9IHJlY2VpdmUobGVuZ3RoKTsKICAgICAgaWYgKG4gPj0gMSA8PCAobGVuZ3RoIC0gMSkpIHsKICAgICAgICByZXR1cm4gbjsKICAgICAgfQogICAgICByZXR1cm4gbiArICgtMSA8PCBsZW5ndGgpICsgMTsKICAgIH0KICAgIGZ1bmN0aW9uIGRlY29kZUJhc2VsaW5lKGNvbXBvbmVudCwgenopIHsKICAgICAgY29uc3QgdCA9IGRlY29kZUh1ZmZtYW4oY29tcG9uZW50Lmh1ZmZtYW5UYWJsZURDKTsKICAgICAgY29uc3QgZGlmZiA9IHQgPT09IDAgPyAwIDogcmVjZWl2ZUFuZEV4dGVuZCh0KTsKICAgICAgY29tcG9uZW50LnByZWQgKz0gZGlmZjsKICAgICAgenpbMF0gPSBjb21wb25lbnQucHJlZDsKICAgICAgbGV0IGsgPSAxOwogICAgICB3aGlsZSAoayA8IDY0KSB7CiAgICAgICAgY29uc3QgcnMgPSBkZWNvZGVIdWZmbWFuKGNvbXBvbmVudC5odWZmbWFuVGFibGVBQyk7CiAgICAgICAgY29uc3QgcyA9IHJzICYgMTU7CiAgICAgICAgY29uc3QgciA9IHJzID4+IDQ7CiAgICAgICAgaWYgKHMgPT09IDApIHsKICAgICAgICAgIGlmIChyIDwgMTUpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBrICs9IDE2OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBrICs9IHI7CiAgICAgICAgICBjb25zdCB6ID0gZGN0WmlnWmFnW2tdOwogICAgICAgICAgenpbel0gPSByZWNlaXZlQW5kRXh0ZW5kKHMpOwogICAgICAgICAgaysrOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gZGVjb2RlRENGaXJzdChjb21wb25lbnQsIHp6KSB7CiAgICAgIGNvbnN0IHQgPSBkZWNvZGVIdWZmbWFuKGNvbXBvbmVudC5odWZmbWFuVGFibGVEQyk7CiAgICAgIGNvbnN0IGRpZmYgPSB0ID09PSAwID8gMCA6IChyZWNlaXZlQW5kRXh0ZW5kKHQpIDw8IHN1Y2Nlc3NpdmUpOwogICAgICBjb21wb25lbnQucHJlZCArPSBkaWZmOwogICAgICB6elswXSA9IGNvbXBvbmVudC5wcmVkOwogICAgfQogICAgZnVuY3Rpb24gZGVjb2RlRENTdWNjZXNzaXZlKGNvbXBvbmVudCwgenopIHsKICAgICAgenpbMF0gfD0gcmVhZEJpdCgpIDw8IHN1Y2Nlc3NpdmU7CiAgICB9CiAgICBsZXQgZW9icnVuID0gMDsKICAgIGZ1bmN0aW9uIGRlY29kZUFDRmlyc3QoY29tcG9uZW50LCB6eikgewogICAgICBpZiAoZW9icnVuID4gMCkgewogICAgICAgIGVvYnJ1bi0tOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBsZXQgayA9IHNwZWN0cmFsU3RhcnQ7CiAgICAgIGNvbnN0IGUgPSBzcGVjdHJhbEVuZDsKICAgICAgd2hpbGUgKGsgPD0gZSkgewogICAgICAgIGNvbnN0IHJzID0gZGVjb2RlSHVmZm1hbihjb21wb25lbnQuaHVmZm1hblRhYmxlQUMpOwogICAgICAgIGNvbnN0IHMgPSBycyAmIDE1OwogICAgICAgIGNvbnN0IHIgPSBycyA+PiA0OwogICAgICAgIGlmIChzID09PSAwKSB7CiAgICAgICAgICBpZiAociA8IDE1KSB7CiAgICAgICAgICAgIGVvYnJ1biA9IHJlY2VpdmUocikgKyAoMSA8PCByKSAtIDE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgayArPSAxNjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgayArPSByOwogICAgICAgICAgY29uc3QgeiA9IGRjdFppZ1phZ1trXTsKICAgICAgICAgIHp6W3pdID0gcmVjZWl2ZUFuZEV4dGVuZChzKSAqICgxIDw8IHN1Y2Nlc3NpdmUpOwogICAgICAgICAgaysrOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgbGV0IHN1Y2Nlc3NpdmVBQ1N0YXRlID0gMDsKICAgIGxldCBzdWNjZXNzaXZlQUNOZXh0VmFsdWU7CiAgICBmdW5jdGlvbiBkZWNvZGVBQ1N1Y2Nlc3NpdmUoY29tcG9uZW50LCB6eikgewogICAgICBsZXQgayA9IHNwZWN0cmFsU3RhcnQ7CiAgICAgIGNvbnN0IGUgPSBzcGVjdHJhbEVuZDsKICAgICAgbGV0IHIgPSAwOwogICAgICB3aGlsZSAoayA8PSBlKSB7CiAgICAgICAgY29uc3QgeiA9IGRjdFppZ1phZ1trXTsKICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSB6elt6XSA8IDAgPyAtMSA6IDE7CiAgICAgICAgc3dpdGNoIChzdWNjZXNzaXZlQUNTdGF0ZSkgewogICAgICAgICAgY2FzZSAwOiB7IC8vIGluaXRpYWwgc3RhdGUKICAgICAgICAgICAgY29uc3QgcnMgPSBkZWNvZGVIdWZmbWFuKGNvbXBvbmVudC5odWZmbWFuVGFibGVBQyk7CiAgICAgICAgICAgIGNvbnN0IHMgPSBycyAmIDE1OwogICAgICAgICAgICByID0gcnMgPj4gNDsKICAgICAgICAgICAgaWYgKHMgPT09IDApIHsKICAgICAgICAgICAgICBpZiAociA8IDE1KSB7CiAgICAgICAgICAgICAgICBlb2JydW4gPSByZWNlaXZlKHIpICsgKDEgPDwgcik7CiAgICAgICAgICAgICAgICBzdWNjZXNzaXZlQUNTdGF0ZSA9IDQ7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHIgPSAxNjsKICAgICAgICAgICAgICAgIHN1Y2Nlc3NpdmVBQ1N0YXRlID0gMTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgaWYgKHMgIT09IDEpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBBQ24gZW5jb2RpbmcnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgc3VjY2Vzc2l2ZUFDTmV4dFZhbHVlID0gcmVjZWl2ZUFuZEV4dGVuZChzKTsKICAgICAgICAgICAgICBzdWNjZXNzaXZlQUNTdGF0ZSA9IHIgPyAyIDogMzsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250aW51ZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250aW51ZQogICAgICAgICAgfQogICAgICAgICAgY2FzZSAxOiAvLyBza2lwcGluZyByIHplcm8gaXRlbXMKICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgaWYgKHp6W3pdKSB7CiAgICAgICAgICAgICAgenpbel0gKz0gKHJlYWRCaXQoKSA8PCBzdWNjZXNzaXZlKSAqIGRpcmVjdGlvbjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByLS07CiAgICAgICAgICAgICAgaWYgKHIgPT09IDApIHsKICAgICAgICAgICAgICAgIHN1Y2Nlc3NpdmVBQ1N0YXRlID0gc3VjY2Vzc2l2ZUFDU3RhdGUgPT09IDIgPyAzIDogMDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIDM6IC8vIHNldCB2YWx1ZSBmb3IgYSB6ZXJvIGl0ZW0KICAgICAgICAgICAgaWYgKHp6W3pdKSB7CiAgICAgICAgICAgICAgenpbel0gKz0gKHJlYWRCaXQoKSA8PCBzdWNjZXNzaXZlKSAqIGRpcmVjdGlvbjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB6elt6XSA9IHN1Y2Nlc3NpdmVBQ05leHRWYWx1ZSA8PCBzdWNjZXNzaXZlOwogICAgICAgICAgICAgIHN1Y2Nlc3NpdmVBQ1N0YXRlID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgNDogLy8gZW9iCiAgICAgICAgICAgIGlmICh6elt6XSkgewogICAgICAgICAgICAgIHp6W3pdICs9IChyZWFkQml0KCkgPDwgc3VjY2Vzc2l2ZSkgKiBkaXJlY3Rpb247CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGsrKzsKICAgICAgfQogICAgICBpZiAoc3VjY2Vzc2l2ZUFDU3RhdGUgPT09IDQpIHsKICAgICAgICBlb2JydW4tLTsKICAgICAgICBpZiAoZW9icnVuID09PSAwKSB7CiAgICAgICAgICBzdWNjZXNzaXZlQUNTdGF0ZSA9IDA7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBkZWNvZGVNY3UoY29tcG9uZW50LCBkZWNvZGVGdW5jdGlvbiwgbWN1LCByb3csIGNvbCkgewogICAgICBjb25zdCBtY3VSb3cgPSAobWN1IC8gbWN1c1BlckxpbmUpIHwgMDsKICAgICAgY29uc3QgbWN1Q29sID0gbWN1ICUgbWN1c1BlckxpbmU7CiAgICAgIGNvbnN0IGJsb2NrUm93ID0gKG1jdVJvdyAqIGNvbXBvbmVudC52KSArIHJvdzsKICAgICAgY29uc3QgYmxvY2tDb2wgPSAobWN1Q29sICogY29tcG9uZW50LmgpICsgY29sOwogICAgICBkZWNvZGVGdW5jdGlvbihjb21wb25lbnQsIGNvbXBvbmVudC5ibG9ja3NbYmxvY2tSb3ddW2Jsb2NrQ29sXSk7CiAgICB9CiAgICBmdW5jdGlvbiBkZWNvZGVCbG9jayhjb21wb25lbnQsIGRlY29kZUZ1bmN0aW9uLCBtY3UpIHsKICAgICAgY29uc3QgYmxvY2tSb3cgPSAobWN1IC8gY29tcG9uZW50LmJsb2Nrc1BlckxpbmUpIHwgMDsKICAgICAgY29uc3QgYmxvY2tDb2wgPSBtY3UgJSBjb21wb25lbnQuYmxvY2tzUGVyTGluZTsKICAgICAgZGVjb2RlRnVuY3Rpb24oY29tcG9uZW50LCBjb21wb25lbnQuYmxvY2tzW2Jsb2NrUm93XVtibG9ja0NvbF0pOwogICAgfQoKICAgIGNvbnN0IGNvbXBvbmVudHNMZW5ndGggPSBjb21wb25lbnRzLmxlbmd0aDsKICAgIGxldCBjb21wb25lbnQ7CiAgICBsZXQgaTsKICAgIGxldCBqOwogICAgbGV0IGs7CiAgICBsZXQgbjsKICAgIGxldCBkZWNvZGVGbjsKICAgIGlmIChwcm9ncmVzc2l2ZSkgewogICAgICBpZiAoc3BlY3RyYWxTdGFydCA9PT0gMCkgewogICAgICAgIGRlY29kZUZuID0gc3VjY2Vzc2l2ZVByZXYgPT09IDAgPyBkZWNvZGVEQ0ZpcnN0IDogZGVjb2RlRENTdWNjZXNzaXZlOwogICAgICB9IGVsc2UgewogICAgICAgIGRlY29kZUZuID0gc3VjY2Vzc2l2ZVByZXYgPT09IDAgPyBkZWNvZGVBQ0ZpcnN0IDogZGVjb2RlQUNTdWNjZXNzaXZlOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBkZWNvZGVGbiA9IGRlY29kZUJhc2VsaW5lOwogICAgfQoKICAgIGxldCBtY3UgPSAwOwogICAgbGV0IG1hcmtlcjsKICAgIGxldCBtY3VFeHBlY3RlZDsKICAgIGlmIChjb21wb25lbnRzTGVuZ3RoID09PSAxKSB7CiAgICAgIG1jdUV4cGVjdGVkID0gY29tcG9uZW50c1swXS5ibG9ja3NQZXJMaW5lICogY29tcG9uZW50c1swXS5ibG9ja3NQZXJDb2x1bW47CiAgICB9IGVsc2UgewogICAgICBtY3VFeHBlY3RlZCA9IG1jdXNQZXJMaW5lICogZnJhbWUubWN1c1BlckNvbHVtbjsKICAgIH0KCiAgICBjb25zdCB1c2VkUmVzZXRJbnRlcnZhbCA9IHJlc2V0SW50ZXJ2YWwgfHwgbWN1RXhwZWN0ZWQ7CgogICAgd2hpbGUgKG1jdSA8IG1jdUV4cGVjdGVkKSB7CiAgICAgIC8vIHJlc2V0IGludGVydmFsIHN0dWZmCiAgICAgIGZvciAoaSA9IDA7IGkgPCBjb21wb25lbnRzTGVuZ3RoOyBpKyspIHsKICAgICAgICBjb21wb25lbnRzW2ldLnByZWQgPSAwOwogICAgICB9CiAgICAgIGVvYnJ1biA9IDA7CgogICAgICBpZiAoY29tcG9uZW50c0xlbmd0aCA9PT0gMSkgewogICAgICAgIGNvbXBvbmVudCA9IGNvbXBvbmVudHNbMF07CiAgICAgICAgZm9yIChuID0gMDsgbiA8IHVzZWRSZXNldEludGVydmFsOyBuKyspIHsKICAgICAgICAgIGRlY29kZUJsb2NrKGNvbXBvbmVudCwgZGVjb2RlRm4sIG1jdSk7CiAgICAgICAgICBtY3UrKzsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChuID0gMDsgbiA8IHVzZWRSZXNldEludGVydmFsOyBuKyspIHsKICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb21wb25lbnRzTGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgY29tcG9uZW50ID0gY29tcG9uZW50c1tpXTsKICAgICAgICAgICAgY29uc3QgeyBoLCB2IH0gPSBjb21wb25lbnQ7CiAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCB2OyBqKyspIHsKICAgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgaDsgaysrKSB7CiAgICAgICAgICAgICAgICBkZWNvZGVNY3UoY29tcG9uZW50LCBkZWNvZGVGbiwgbWN1LCBqLCBrKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIG1jdSsrOwoKICAgICAgICAgIC8vIElmIHdlJ3ZlIHJlYWNoZWQgb3VyIGV4cGVjdGVkIE1DVSdzLCBzdG9wIGRlY29kaW5nCiAgICAgICAgICBpZiAobWN1ID09PSBtY3VFeHBlY3RlZCkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIGZpbmQgbWFya2VyCiAgICAgIGJpdHNDb3VudCA9IDA7CiAgICAgIG1hcmtlciA9IChkYXRhW29mZnNldF0gPDwgOCkgfCBkYXRhW29mZnNldCArIDFdOwogICAgICBpZiAobWFya2VyIDwgMHhGRjAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYXJrZXIgd2FzIG5vdCBmb3VuZCcpOwogICAgICB9CgogICAgICBpZiAobWFya2VyID49IDB4RkZEMCAmJiBtYXJrZXIgPD0gMHhGRkQ3KSB7IC8vIFJTVHgKICAgICAgICBvZmZzZXQgKz0gMjsKICAgICAgfSBlbHNlIHsKICAgICAgICBicmVhazsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBvZmZzZXQgLSBzdGFydE9mZnNldDsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkQ29tcG9uZW50RGF0YShmcmFtZSwgY29tcG9uZW50KSB7CiAgICBjb25zdCBsaW5lcyA9IFtdOwogICAgY29uc3QgeyBibG9ja3NQZXJMaW5lLCBibG9ja3NQZXJDb2x1bW4gfSA9IGNvbXBvbmVudDsKICAgIGNvbnN0IHNhbXBsZXNQZXJMaW5lID0gYmxvY2tzUGVyTGluZSA8PCAzOwogICAgY29uc3QgUiA9IG5ldyBJbnQzMkFycmF5KDY0KTsKICAgIGNvbnN0IHIgPSBuZXcgVWludDhBcnJheSg2NCk7CgogICAgLy8gQSBwb3J0IG9mIHBvcHBsZXIncyBJRENUIG1ldGhvZCB3aGljaCBpbiB0dXJuIGlzIHRha2VuIGZyb206CiAgICAvLyAgIENocmlzdG9waCBMb2VmZmxlciwgQWRyaWFhbiBMaWd0ZW5iZXJnLCBHZW9yZ2UgUy4gTW9zY2h5dHosCiAgICAvLyAgICJQcmFjdGljYWwgRmFzdCAxLUQgRENUIEFsZ29yaXRobXMgd2l0aCAxMSBNdWx0aXBsaWNhdGlvbnMiLAogICAgLy8gICBJRUVFIEludGwuIENvbmYuIG9uIEFjb3VzdGljcywgU3BlZWNoICYgU2lnbmFsIFByb2Nlc3NpbmcsIDE5ODksCiAgICAvLyAgIDk4OC05OTEuCiAgICBmdW5jdGlvbiBxdWFudGl6ZUFuZEludmVyc2UoenosIGRhdGFPdXQsIGRhdGFJbikgewogICAgICBjb25zdCBxdCA9IGNvbXBvbmVudC5xdWFudGl6YXRpb25UYWJsZTsKICAgICAgbGV0IHYwOwogICAgICBsZXQgdjE7CiAgICAgIGxldCB2MjsKICAgICAgbGV0IHYzOwogICAgICBsZXQgdjQ7CiAgICAgIGxldCB2NTsKICAgICAgbGV0IHY2OwogICAgICBsZXQgdjc7CiAgICAgIGxldCB0OwogICAgICBjb25zdCBwID0gZGF0YUluOwogICAgICBsZXQgaTsKCiAgICAgIC8vIGRlcXVhbnQKICAgICAgZm9yIChpID0gMDsgaSA8IDY0OyBpKyspIHsKICAgICAgICBwW2ldID0genpbaV0gKiBxdFtpXTsKICAgICAgfQoKICAgICAgLy8gaW52ZXJzZSBEQ1Qgb24gcm93cwogICAgICBmb3IgKGkgPSAwOyBpIDwgODsgKytpKSB7CiAgICAgICAgY29uc3Qgcm93ID0gOCAqIGk7CgogICAgICAgIC8vIGNoZWNrIGZvciBhbGwtemVybyBBQyBjb2VmZmljaWVudHMKICAgICAgICBpZiAocFsxICsgcm93XSA9PT0gMCAmJiBwWzIgKyByb3ddID09PSAwICYmIHBbMyArIHJvd10gPT09IDAKICAgICAgICAgICYmIHBbNCArIHJvd10gPT09IDAgJiYgcFs1ICsgcm93XSA9PT0gMCAmJiBwWzYgKyByb3ddID09PSAwCiAgICAgICAgICAmJiBwWzcgKyByb3ddID09PSAwKSB7CiAgICAgICAgICB0ID0gKChkY3RTcXJ0MiAqIHBbMCArIHJvd10pICsgNTEyKSA+PiAxMDsKICAgICAgICAgIHBbMCArIHJvd10gPSB0OwogICAgICAgICAgcFsxICsgcm93XSA9IHQ7CiAgICAgICAgICBwWzIgKyByb3ddID0gdDsKICAgICAgICAgIHBbMyArIHJvd10gPSB0OwogICAgICAgICAgcFs0ICsgcm93XSA9IHQ7CiAgICAgICAgICBwWzUgKyByb3ddID0gdDsKICAgICAgICAgIHBbNiArIHJvd10gPSB0OwogICAgICAgICAgcFs3ICsgcm93XSA9IHQ7CiAgICAgICAgICBjb250aW51ZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250aW51ZQogICAgICAgIH0KCiAgICAgICAgLy8gc3RhZ2UgNAogICAgICAgIHYwID0gKChkY3RTcXJ0MiAqIHBbMCArIHJvd10pICsgMTI4KSA+PiA4OwogICAgICAgIHYxID0gKChkY3RTcXJ0MiAqIHBbNCArIHJvd10pICsgMTI4KSA+PiA4OwogICAgICAgIHYyID0gcFsyICsgcm93XTsKICAgICAgICB2MyA9IHBbNiArIHJvd107CiAgICAgICAgdjQgPSAoKGRjdFNxcnQxZDIgKiAocFsxICsgcm93XSAtIHBbNyArIHJvd10pKSArIDEyOCkgPj4gODsKICAgICAgICB2NyA9ICgoZGN0U3FydDFkMiAqIChwWzEgKyByb3ddICsgcFs3ICsgcm93XSkpICsgMTI4KSA+PiA4OwogICAgICAgIHY1ID0gcFszICsgcm93XSA8PCA0OwogICAgICAgIHY2ID0gcFs1ICsgcm93XSA8PCA0OwoKICAgICAgICAvLyBzdGFnZSAzCiAgICAgICAgdCA9ICh2MCAtIHYxICsgMSkgPj4gMTsKICAgICAgICB2MCA9ICh2MCArIHYxICsgMSkgPj4gMTsKICAgICAgICB2MSA9IHQ7CiAgICAgICAgdCA9ICgodjIgKiBkY3RTaW42KSArICh2MyAqIGRjdENvczYpICsgMTI4KSA+PiA4OwogICAgICAgIHYyID0gKCh2MiAqIGRjdENvczYpIC0gKHYzICogZGN0U2luNikgKyAxMjgpID4+IDg7CiAgICAgICAgdjMgPSB0OwogICAgICAgIHQgPSAodjQgLSB2NiArIDEpID4+IDE7CiAgICAgICAgdjQgPSAodjQgKyB2NiArIDEpID4+IDE7CiAgICAgICAgdjYgPSB0OwogICAgICAgIHQgPSAodjcgKyB2NSArIDEpID4+IDE7CiAgICAgICAgdjUgPSAodjcgLSB2NSArIDEpID4+IDE7CiAgICAgICAgdjcgPSB0OwoKICAgICAgICAvLyBzdGFnZSAyCiAgICAgICAgdCA9ICh2MCAtIHYzICsgMSkgPj4gMTsKICAgICAgICB2MCA9ICh2MCArIHYzICsgMSkgPj4gMTsKICAgICAgICB2MyA9IHQ7CiAgICAgICAgdCA9ICh2MSAtIHYyICsgMSkgPj4gMTsKICAgICAgICB2MSA9ICh2MSArIHYyICsgMSkgPj4gMTsKICAgICAgICB2MiA9IHQ7CiAgICAgICAgdCA9ICgodjQgKiBkY3RTaW4zKSArICh2NyAqIGRjdENvczMpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjQgPSAoKHY0ICogZGN0Q29zMykgLSAodjcgKiBkY3RTaW4zKSArIDIwNDgpID4+IDEyOwogICAgICAgIHY3ID0gdDsKICAgICAgICB0ID0gKCh2NSAqIGRjdFNpbjEpICsgKHY2ICogZGN0Q29zMSkgKyAyMDQ4KSA+PiAxMjsKICAgICAgICB2NSA9ICgodjUgKiBkY3RDb3MxKSAtICh2NiAqIGRjdFNpbjEpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjYgPSB0OwoKICAgICAgICAvLyBzdGFnZSAxCiAgICAgICAgcFswICsgcm93XSA9IHYwICsgdjc7CiAgICAgICAgcFs3ICsgcm93XSA9IHYwIC0gdjc7CiAgICAgICAgcFsxICsgcm93XSA9IHYxICsgdjY7CiAgICAgICAgcFs2ICsgcm93XSA9IHYxIC0gdjY7CiAgICAgICAgcFsyICsgcm93XSA9IHYyICsgdjU7CiAgICAgICAgcFs1ICsgcm93XSA9IHYyIC0gdjU7CiAgICAgICAgcFszICsgcm93XSA9IHYzICsgdjQ7CiAgICAgICAgcFs0ICsgcm93XSA9IHYzIC0gdjQ7CiAgICAgIH0KCiAgICAgIC8vIGludmVyc2UgRENUIG9uIGNvbHVtbnMKICAgICAgZm9yIChpID0gMDsgaSA8IDg7ICsraSkgewogICAgICAgIGNvbnN0IGNvbCA9IGk7CgogICAgICAgIC8vIGNoZWNrIGZvciBhbGwtemVybyBBQyBjb2VmZmljaWVudHMKICAgICAgICBpZiAocFsoMSAqIDgpICsgY29sXSA9PT0gMCAmJiBwWygyICogOCkgKyBjb2xdID09PSAwICYmIHBbKDMgKiA4KSArIGNvbF0gPT09IDAKICAgICAgICAgICYmIHBbKDQgKiA4KSArIGNvbF0gPT09IDAgJiYgcFsoNSAqIDgpICsgY29sXSA9PT0gMCAmJiBwWyg2ICogOCkgKyBjb2xdID09PSAwCiAgICAgICAgICAmJiBwWyg3ICogOCkgKyBjb2xdID09PSAwKSB7CiAgICAgICAgICB0ID0gKChkY3RTcXJ0MiAqIGRhdGFJbltpICsgMF0pICsgODE5MikgPj4gMTQ7CiAgICAgICAgICBwWygwICogOCkgKyBjb2xdID0gdDsKICAgICAgICAgIHBbKDEgKiA4KSArIGNvbF0gPSB0OwogICAgICAgICAgcFsoMiAqIDgpICsgY29sXSA9IHQ7CiAgICAgICAgICBwWygzICogOCkgKyBjb2xdID0gdDsKICAgICAgICAgIHBbKDQgKiA4KSArIGNvbF0gPSB0OwogICAgICAgICAgcFsoNSAqIDgpICsgY29sXSA9IHQ7CiAgICAgICAgICBwWyg2ICogOCkgKyBjb2xdID0gdDsKICAgICAgICAgIHBbKDcgKiA4KSArIGNvbF0gPSB0OwogICAgICAgICAgY29udGludWU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29udGludWUKICAgICAgICB9CgogICAgICAgIC8vIHN0YWdlIDQKICAgICAgICB2MCA9ICgoZGN0U3FydDIgKiBwWygwICogOCkgKyBjb2xdKSArIDIwNDgpID4+IDEyOwogICAgICAgIHYxID0gKChkY3RTcXJ0MiAqIHBbKDQgKiA4KSArIGNvbF0pICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjIgPSBwWygyICogOCkgKyBjb2xdOwogICAgICAgIHYzID0gcFsoNiAqIDgpICsgY29sXTsKICAgICAgICB2NCA9ICgoZGN0U3FydDFkMiAqIChwWygxICogOCkgKyBjb2xdIC0gcFsoNyAqIDgpICsgY29sXSkpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjcgPSAoKGRjdFNxcnQxZDIgKiAocFsoMSAqIDgpICsgY29sXSArIHBbKDcgKiA4KSArIGNvbF0pKSArIDIwNDgpID4+IDEyOwogICAgICAgIHY1ID0gcFsoMyAqIDgpICsgY29sXTsKICAgICAgICB2NiA9IHBbKDUgKiA4KSArIGNvbF07CgogICAgICAgIC8vIHN0YWdlIDMKICAgICAgICB0ID0gKHYwIC0gdjEgKyAxKSA+PiAxOwogICAgICAgIHYwID0gKHYwICsgdjEgKyAxKSA+PiAxOwogICAgICAgIHYxID0gdDsKICAgICAgICB0ID0gKCh2MiAqIGRjdFNpbjYpICsgKHYzICogZGN0Q29zNikgKyAyMDQ4KSA+PiAxMjsKICAgICAgICB2MiA9ICgodjIgKiBkY3RDb3M2KSAtICh2MyAqIGRjdFNpbjYpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjMgPSB0OwogICAgICAgIHQgPSAodjQgLSB2NiArIDEpID4+IDE7CiAgICAgICAgdjQgPSAodjQgKyB2NiArIDEpID4+IDE7CiAgICAgICAgdjYgPSB0OwogICAgICAgIHQgPSAodjcgKyB2NSArIDEpID4+IDE7CiAgICAgICAgdjUgPSAodjcgLSB2NSArIDEpID4+IDE7CiAgICAgICAgdjcgPSB0OwoKICAgICAgICAvLyBzdGFnZSAyCiAgICAgICAgdCA9ICh2MCAtIHYzICsgMSkgPj4gMTsKICAgICAgICB2MCA9ICh2MCArIHYzICsgMSkgPj4gMTsKICAgICAgICB2MyA9IHQ7CiAgICAgICAgdCA9ICh2MSAtIHYyICsgMSkgPj4gMTsKICAgICAgICB2MSA9ICh2MSArIHYyICsgMSkgPj4gMTsKICAgICAgICB2MiA9IHQ7CiAgICAgICAgdCA9ICgodjQgKiBkY3RTaW4zKSArICh2NyAqIGRjdENvczMpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjQgPSAoKHY0ICogZGN0Q29zMykgLSAodjcgKiBkY3RTaW4zKSArIDIwNDgpID4+IDEyOwogICAgICAgIHY3ID0gdDsKICAgICAgICB0ID0gKCh2NSAqIGRjdFNpbjEpICsgKHY2ICogZGN0Q29zMSkgKyAyMDQ4KSA+PiAxMjsKICAgICAgICB2NSA9ICgodjUgKiBkY3RDb3MxKSAtICh2NiAqIGRjdFNpbjEpICsgMjA0OCkgPj4gMTI7CiAgICAgICAgdjYgPSB0OwoKICAgICAgICAvLyBzdGFnZSAxCiAgICAgICAgcFsoMCAqIDgpICsgY29sXSA9IHYwICsgdjc7CiAgICAgICAgcFsoNyAqIDgpICsgY29sXSA9IHYwIC0gdjc7CiAgICAgICAgcFsoMSAqIDgpICsgY29sXSA9IHYxICsgdjY7CiAgICAgICAgcFsoNiAqIDgpICsgY29sXSA9IHYxIC0gdjY7CiAgICAgICAgcFsoMiAqIDgpICsgY29sXSA9IHYyICsgdjU7CiAgICAgICAgcFsoNSAqIDgpICsgY29sXSA9IHYyIC0gdjU7CiAgICAgICAgcFsoMyAqIDgpICsgY29sXSA9IHYzICsgdjQ7CiAgICAgICAgcFsoNCAqIDgpICsgY29sXSA9IHYzIC0gdjQ7CiAgICAgIH0KCiAgICAgIC8vIGNvbnZlcnQgdG8gOC1iaXQgaW50ZWdlcnMKICAgICAgZm9yIChpID0gMDsgaSA8IDY0OyArK2kpIHsKICAgICAgICBjb25zdCBzYW1wbGUgPSAxMjggKyAoKHBbaV0gKyA4KSA+PiA0KTsKICAgICAgICBpZiAoc2FtcGxlIDwgMCkgewogICAgICAgICAgZGF0YU91dFtpXSA9IDA7CiAgICAgICAgfSBlbHNlIGlmIChzYW1wbGUgPiAwWEZGKSB7CiAgICAgICAgICBkYXRhT3V0W2ldID0gMHhGRjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZGF0YU91dFtpXSA9IHNhbXBsZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICBmb3IgKGxldCBibG9ja1JvdyA9IDA7IGJsb2NrUm93IDwgYmxvY2tzUGVyQ29sdW1uOyBibG9ja1JvdysrKSB7CiAgICAgIGNvbnN0IHNjYW5MaW5lID0gYmxvY2tSb3cgPDwgMzsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHsKICAgICAgICBsaW5lcy5wdXNoKG5ldyBVaW50OEFycmF5KHNhbXBsZXNQZXJMaW5lKSk7CiAgICAgIH0KICAgICAgZm9yIChsZXQgYmxvY2tDb2wgPSAwOyBibG9ja0NvbCA8IGJsb2Nrc1BlckxpbmU7IGJsb2NrQ29sKyspIHsKICAgICAgICBxdWFudGl6ZUFuZEludmVyc2UoY29tcG9uZW50LmJsb2Nrc1tibG9ja1Jvd11bYmxvY2tDb2xdLCByLCBSKTsKCiAgICAgICAgbGV0IG9mZnNldCA9IDA7CiAgICAgICAgY29uc3Qgc2FtcGxlID0gYmxvY2tDb2wgPDwgMzsKICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDg7IGorKykgewogICAgICAgICAgY29uc3QgbGluZSA9IGxpbmVzW3NjYW5MaW5lICsgal07CiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDg7IGkrKykgewogICAgICAgICAgICBsaW5lW3NhbXBsZSArIGldID0gcltvZmZzZXQrK107CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gbGluZXM7CiAgfQoKICBjbGFzcyBKcGVnU3RyZWFtUmVhZGVyIHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICB0aGlzLmpmaWYgPSBudWxsOwogICAgICB0aGlzLmFkb2JlID0gbnVsbDsKCiAgICAgIHRoaXMucXVhbnRpemF0aW9uVGFibGVzID0gW107CiAgICAgIHRoaXMuaHVmZm1hblRhYmxlc0FDID0gW107CiAgICAgIHRoaXMuaHVmZm1hblRhYmxlc0RDID0gW107CiAgICAgIHRoaXMucmVzZXRGcmFtZXMoKTsKICAgIH0KCiAgICByZXNldEZyYW1lcygpIHsKICAgICAgdGhpcy5mcmFtZXMgPSBbXTsKICAgIH0KCiAgICBwYXJzZShkYXRhKSB7CiAgICAgIGxldCBvZmZzZXQgPSAwOwogICAgICAvLyBjb25zdCB7IGxlbmd0aCB9ID0gZGF0YTsKICAgICAgZnVuY3Rpb24gcmVhZFVpbnQxNigpIHsKICAgICAgICBjb25zdCB2YWx1ZSA9IChkYXRhW29mZnNldF0gPDwgOCkgfCBkYXRhW29mZnNldCArIDFdOwogICAgICAgIG9mZnNldCArPSAyOwogICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgICBmdW5jdGlvbiByZWFkRGF0YUJsb2NrKCkgewogICAgICAgIGNvbnN0IGxlbmd0aCA9IHJlYWRVaW50MTYoKTsKICAgICAgICBjb25zdCBhcnJheSA9IGRhdGEuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBsZW5ndGggLSAyKTsKICAgICAgICBvZmZzZXQgKz0gYXJyYXkubGVuZ3RoOwogICAgICAgIHJldHVybiBhcnJheTsKICAgICAgfQogICAgICBmdW5jdGlvbiBwcmVwYXJlQ29tcG9uZW50cyhmcmFtZSkgewogICAgICAgIGxldCBtYXhIID0gMDsKICAgICAgICBsZXQgbWF4ViA9IDA7CiAgICAgICAgbGV0IGNvbXBvbmVudDsKICAgICAgICBsZXQgY29tcG9uZW50SWQ7CiAgICAgICAgZm9yIChjb21wb25lbnRJZCBpbiBmcmFtZS5jb21wb25lbnRzKSB7CiAgICAgICAgICBpZiAoZnJhbWUuY29tcG9uZW50cy5oYXNPd25Qcm9wZXJ0eShjb21wb25lbnRJZCkpIHsKICAgICAgICAgICAgY29tcG9uZW50ID0gZnJhbWUuY29tcG9uZW50c1tjb21wb25lbnRJZF07CiAgICAgICAgICAgIGlmIChtYXhIIDwgY29tcG9uZW50LmgpIHsKICAgICAgICAgICAgICBtYXhIID0gY29tcG9uZW50Lmg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKG1heFYgPCBjb21wb25lbnQudikgewogICAgICAgICAgICAgIG1heFYgPSBjb21wb25lbnQudjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCBtY3VzUGVyTGluZSA9IE1hdGguY2VpbChmcmFtZS5zYW1wbGVzUGVyTGluZSAvIDggLyBtYXhIKTsKICAgICAgICBjb25zdCBtY3VzUGVyQ29sdW1uID0gTWF0aC5jZWlsKGZyYW1lLnNjYW5MaW5lcyAvIDggLyBtYXhWKTsKICAgICAgICBmb3IgKGNvbXBvbmVudElkIGluIGZyYW1lLmNvbXBvbmVudHMpIHsKICAgICAgICAgIGlmIChmcmFtZS5jb21wb25lbnRzLmhhc093blByb3BlcnR5KGNvbXBvbmVudElkKSkgewogICAgICAgICAgICBjb21wb25lbnQgPSBmcmFtZS5jb21wb25lbnRzW2NvbXBvbmVudElkXTsKICAgICAgICAgICAgY29uc3QgYmxvY2tzUGVyTGluZSA9IE1hdGguY2VpbChNYXRoLmNlaWwoZnJhbWUuc2FtcGxlc1BlckxpbmUgLyA4KSAqIGNvbXBvbmVudC5oIC8gbWF4SCk7CiAgICAgICAgICAgIGNvbnN0IGJsb2Nrc1BlckNvbHVtbiA9IE1hdGguY2VpbChNYXRoLmNlaWwoZnJhbWUuc2NhbkxpbmVzIC8gOCkgKiBjb21wb25lbnQudiAvIG1heFYpOwogICAgICAgICAgICBjb25zdCBibG9ja3NQZXJMaW5lRm9yTWN1ID0gbWN1c1BlckxpbmUgKiBjb21wb25lbnQuaDsKICAgICAgICAgICAgY29uc3QgYmxvY2tzUGVyQ29sdW1uRm9yTWN1ID0gbWN1c1BlckNvbHVtbiAqIGNvbXBvbmVudC52OwogICAgICAgICAgICBjb25zdCBibG9ja3MgPSBbXTsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBibG9ja3NQZXJDb2x1bW5Gb3JNY3U7IGkrKykgewogICAgICAgICAgICAgIGNvbnN0IHJvdyA9IFtdOwogICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgYmxvY2tzUGVyTGluZUZvck1jdTsgaisrKSB7CiAgICAgICAgICAgICAgICByb3cucHVzaChuZXcgSW50MzJBcnJheSg2NCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBibG9ja3MucHVzaChyb3cpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbXBvbmVudC5ibG9ja3NQZXJMaW5lID0gYmxvY2tzUGVyTGluZTsKICAgICAgICAgICAgY29tcG9uZW50LmJsb2Nrc1BlckNvbHVtbiA9IGJsb2Nrc1BlckNvbHVtbjsKICAgICAgICAgICAgY29tcG9uZW50LmJsb2NrcyA9IGJsb2NrczsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnJhbWUubWF4SCA9IG1heEg7CiAgICAgICAgZnJhbWUubWF4ViA9IG1heFY7CiAgICAgICAgZnJhbWUubWN1c1BlckxpbmUgPSBtY3VzUGVyTGluZTsKICAgICAgICBmcmFtZS5tY3VzUGVyQ29sdW1uID0gbWN1c1BlckNvbHVtbjsKICAgICAgfQoKICAgICAgbGV0IGZpbGVNYXJrZXIgPSByZWFkVWludDE2KCk7CiAgICAgIGlmIChmaWxlTWFya2VyICE9PSAweEZGRDgpIHsgLy8gU09JIChTdGFydCBvZiBJbWFnZSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NPSSBub3QgZm91bmQnKTsKICAgICAgfQoKICAgICAgZmlsZU1hcmtlciA9IHJlYWRVaW50MTYoKTsKICAgICAgd2hpbGUgKGZpbGVNYXJrZXIgIT09IDB4RkZEOSkgeyAvLyBFT0kgKEVuZCBvZiBpbWFnZSkKICAgICAgICBzd2l0Y2ggKGZpbGVNYXJrZXIpIHsKICAgICAgICAgIGNhc2UgMHhGRjAwOiBicmVhazsKICAgICAgICAgIGNhc2UgMHhGRkUwOiAvLyBBUFAwIChBcHBsaWNhdGlvbiBTcGVjaWZpYykKICAgICAgICAgIGNhc2UgMHhGRkUxOiAvLyBBUFAxCiAgICAgICAgICBjYXNlIDB4RkZFMjogLy8gQVBQMgogICAgICAgICAgY2FzZSAweEZGRTM6IC8vIEFQUDMKICAgICAgICAgIGNhc2UgMHhGRkU0OiAvLyBBUFA0CiAgICAgICAgICBjYXNlIDB4RkZFNTogLy8gQVBQNQogICAgICAgICAgY2FzZSAweEZGRTY6IC8vIEFQUDYKICAgICAgICAgIGNhc2UgMHhGRkU3OiAvLyBBUFA3CiAgICAgICAgICBjYXNlIDB4RkZFODogLy8gQVBQOAogICAgICAgICAgY2FzZSAweEZGRTk6IC8vIEFQUDkKICAgICAgICAgIGNhc2UgMHhGRkVBOiAvLyBBUFAxMAogICAgICAgICAgY2FzZSAweEZGRUI6IC8vIEFQUDExCiAgICAgICAgICBjYXNlIDB4RkZFQzogLy8gQVBQMTIKICAgICAgICAgIGNhc2UgMHhGRkVEOiAvLyBBUFAxMwogICAgICAgICAgY2FzZSAweEZGRUU6IC8vIEFQUDE0CiAgICAgICAgICBjYXNlIDB4RkZFRjogLy8gQVBQMTUKICAgICAgICAgIGNhc2UgMHhGRkZFOiB7IC8vIENPTSAoQ29tbWVudCkKICAgICAgICAgICAgY29uc3QgYXBwRGF0YSA9IHJlYWREYXRhQmxvY2soKTsKCiAgICAgICAgICAgIGlmIChmaWxlTWFya2VyID09PSAweEZGRTApIHsKICAgICAgICAgICAgICBpZiAoYXBwRGF0YVswXSA9PT0gMHg0QSAmJiBhcHBEYXRhWzFdID09PSAweDQ2ICYmIGFwcERhdGFbMl0gPT09IDB4NDkKICAgICAgICAgICAgICAgICYmIGFwcERhdGFbM10gPT09IDB4NDYgJiYgYXBwRGF0YVs0XSA9PT0gMCkgeyAvLyAnSkZJRlx4MDAnCiAgICAgICAgICAgICAgICB0aGlzLmpmaWYgPSB7CiAgICAgICAgICAgICAgICAgIHZlcnNpb246IHsgbWFqb3I6IGFwcERhdGFbNV0sIG1pbm9yOiBhcHBEYXRhWzZdIH0sCiAgICAgICAgICAgICAgICAgIGRlbnNpdHlVbml0czogYXBwRGF0YVs3XSwKICAgICAgICAgICAgICAgICAgeERlbnNpdHk6IChhcHBEYXRhWzhdIDw8IDgpIHwgYXBwRGF0YVs5XSwKICAgICAgICAgICAgICAgICAgeURlbnNpdHk6IChhcHBEYXRhWzEwXSA8PCA4KSB8IGFwcERhdGFbMTFdLAogICAgICAgICAgICAgICAgICB0aHVtYldpZHRoOiBhcHBEYXRhWzEyXSwKICAgICAgICAgICAgICAgICAgdGh1bWJIZWlnaHQ6IGFwcERhdGFbMTNdLAogICAgICAgICAgICAgICAgICB0aHVtYkRhdGE6IGFwcERhdGEuc3ViYXJyYXkoMTQsIDE0ICsgKDMgKiBhcHBEYXRhWzEyXSAqIGFwcERhdGFbMTNdKSksCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBUT0RPIEFQUDEgLSBFeGlmCiAgICAgICAgICAgIGlmIChmaWxlTWFya2VyID09PSAweEZGRUUpIHsKICAgICAgICAgICAgICBpZiAoYXBwRGF0YVswXSA9PT0gMHg0MSAmJiBhcHBEYXRhWzFdID09PSAweDY0ICYmIGFwcERhdGFbMl0gPT09IDB4NkYKICAgICAgICAgICAgICAgICYmIGFwcERhdGFbM10gPT09IDB4NjIgJiYgYXBwRGF0YVs0XSA9PT0gMHg2NSAmJiBhcHBEYXRhWzVdID09PSAwKSB7IC8vICdBZG9iZVx4MDAnCiAgICAgICAgICAgICAgICB0aGlzLmFkb2JlID0gewogICAgICAgICAgICAgICAgICB2ZXJzaW9uOiBhcHBEYXRhWzZdLAogICAgICAgICAgICAgICAgICBmbGFnczA6IChhcHBEYXRhWzddIDw8IDgpIHwgYXBwRGF0YVs4XSwKICAgICAgICAgICAgICAgICAgZmxhZ3MxOiAoYXBwRGF0YVs5XSA8PCA4KSB8IGFwcERhdGFbMTBdLAogICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1Db2RlOiBhcHBEYXRhWzExXSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQoKICAgICAgICAgIGNhc2UgMHhGRkRCOiB7IC8vIERRVCAoRGVmaW5lIFF1YW50aXphdGlvbiBUYWJsZXMpCiAgICAgICAgICAgIGNvbnN0IHF1YW50aXphdGlvblRhYmxlc0xlbmd0aCA9IHJlYWRVaW50MTYoKTsKICAgICAgICAgICAgY29uc3QgcXVhbnRpemF0aW9uVGFibGVzRW5kID0gcXVhbnRpemF0aW9uVGFibGVzTGVuZ3RoICsgb2Zmc2V0IC0gMjsKICAgICAgICAgICAgd2hpbGUgKG9mZnNldCA8IHF1YW50aXphdGlvblRhYmxlc0VuZCkgewogICAgICAgICAgICAgIGNvbnN0IHF1YW50aXphdGlvblRhYmxlU3BlYyA9IGRhdGFbb2Zmc2V0KytdOwogICAgICAgICAgICAgIGNvbnN0IHRhYmxlRGF0YSA9IG5ldyBJbnQzMkFycmF5KDY0KTsKICAgICAgICAgICAgICBpZiAoKHF1YW50aXphdGlvblRhYmxlU3BlYyA+PiA0KSA9PT0gMCkgeyAvLyA4IGJpdCB2YWx1ZXMKICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgNjQ7IGorKykgewogICAgICAgICAgICAgICAgICBjb25zdCB6ID0gZGN0WmlnWmFnW2pdOwogICAgICAgICAgICAgICAgICB0YWJsZURhdGFbel0gPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGVsc2UgaWYgKChxdWFudGl6YXRpb25UYWJsZVNwZWMgPj4gNCkgPT09IDEpIHsgLy8gMTYgYml0CiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDY0OyBqKyspIHsKICAgICAgICAgICAgICAgICAgY29uc3QgeiA9IGRjdFppZ1phZ1tqXTsKICAgICAgICAgICAgICAgICAgdGFibGVEYXRhW3pdID0gcmVhZFVpbnQxNigpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RRVDogaW52YWxpZCB0YWJsZSBzcGVjJyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRoaXMucXVhbnRpemF0aW9uVGFibGVzW3F1YW50aXphdGlvblRhYmxlU3BlYyAmIDE1XSA9IHRhYmxlRGF0YTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KCiAgICAgICAgICBjYXNlIDB4RkZDMDogLy8gU09GMCAoU3RhcnQgb2YgRnJhbWUsIEJhc2VsaW5lIERDVCkKICAgICAgICAgIGNhc2UgMHhGRkMxOiAvLyBTT0YxIChTdGFydCBvZiBGcmFtZSwgRXh0ZW5kZWQgRENUKQogICAgICAgICAgY2FzZSAweEZGQzI6IHsgLy8gU09GMiAoU3RhcnQgb2YgRnJhbWUsIFByb2dyZXNzaXZlIERDVCkKICAgICAgICAgICAgcmVhZFVpbnQxNigpOyAvLyBza2lwIGRhdGEgbGVuZ3RoCiAgICAgICAgICAgIGNvbnN0IGZyYW1lID0gewogICAgICAgICAgICAgIGV4dGVuZGVkOiAoZmlsZU1hcmtlciA9PT0gMHhGRkMxKSwKICAgICAgICAgICAgICBwcm9ncmVzc2l2ZTogKGZpbGVNYXJrZXIgPT09IDB4RkZDMiksCiAgICAgICAgICAgICAgcHJlY2lzaW9uOiBkYXRhW29mZnNldCsrXSwKICAgICAgICAgICAgICBzY2FuTGluZXM6IHJlYWRVaW50MTYoKSwKICAgICAgICAgICAgICBzYW1wbGVzUGVyTGluZTogcmVhZFVpbnQxNigpLAogICAgICAgICAgICAgIGNvbXBvbmVudHM6IHt9LAogICAgICAgICAgICAgIGNvbXBvbmVudHNPcmRlcjogW10sCiAgICAgICAgICAgIH07CgogICAgICAgICAgICBjb25zdCBjb21wb25lbnRzQ291bnQgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgbGV0IGNvbXBvbmVudElkOwogICAgICAgICAgICAvLyBsZXQgbWF4SCA9IDA7CiAgICAgICAgICAgIC8vIGxldCBtYXhWID0gMDsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21wb25lbnRzQ291bnQ7IGkrKykgewogICAgICAgICAgICAgIGNvbXBvbmVudElkID0gZGF0YVtvZmZzZXRdOwogICAgICAgICAgICAgIGNvbnN0IGggPSBkYXRhW29mZnNldCArIDFdID4+IDQ7CiAgICAgICAgICAgICAgY29uc3QgdiA9IGRhdGFbb2Zmc2V0ICsgMV0gJiAxNTsKICAgICAgICAgICAgICBjb25zdCBxSWQgPSBkYXRhW29mZnNldCArIDJdOwogICAgICAgICAgICAgIGZyYW1lLmNvbXBvbmVudHNPcmRlci5wdXNoKGNvbXBvbmVudElkKTsKICAgICAgICAgICAgICBmcmFtZS5jb21wb25lbnRzW2NvbXBvbmVudElkXSA9IHsKICAgICAgICAgICAgICAgIGgsCiAgICAgICAgICAgICAgICB2LAogICAgICAgICAgICAgICAgcXVhbnRpemF0aW9uSWR4OiBxSWQsCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBvZmZzZXQgKz0gMzsKICAgICAgICAgICAgfQogICAgICAgICAgICBwcmVwYXJlQ29tcG9uZW50cyhmcmFtZSk7CiAgICAgICAgICAgIHRoaXMuZnJhbWVzLnB1c2goZnJhbWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KCiAgICAgICAgICBjYXNlIDB4RkZDNDogeyAvLyBESFQgKERlZmluZSBIdWZmbWFuIFRhYmxlcykKICAgICAgICAgICAgY29uc3QgaHVmZm1hbkxlbmd0aCA9IHJlYWRVaW50MTYoKTsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPCBodWZmbWFuTGVuZ3RoOykgewogICAgICAgICAgICAgIGNvbnN0IGh1ZmZtYW5UYWJsZVNwZWMgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgICBjb25zdCBjb2RlTGVuZ3RocyA9IG5ldyBVaW50OEFycmF5KDE2KTsKICAgICAgICAgICAgICBsZXQgY29kZUxlbmd0aFN1bSA9IDA7CiAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCAxNjsgaisrLCBvZmZzZXQrKykgewogICAgICAgICAgICAgICAgY29kZUxlbmd0aHNbal0gPSBkYXRhW29mZnNldF07CiAgICAgICAgICAgICAgICBjb2RlTGVuZ3RoU3VtICs9IGNvZGVMZW5ndGhzW2pdOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb25zdCBodWZmbWFuVmFsdWVzID0gbmV3IFVpbnQ4QXJyYXkoY29kZUxlbmd0aFN1bSk7CiAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjb2RlTGVuZ3RoU3VtOyBqKyssIG9mZnNldCsrKSB7CiAgICAgICAgICAgICAgICBodWZmbWFuVmFsdWVzW2pdID0gZGF0YVtvZmZzZXRdOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpICs9IDE3ICsgY29kZUxlbmd0aFN1bTsKCiAgICAgICAgICAgICAgaWYgKChodWZmbWFuVGFibGVTcGVjID4+IDQpID09PSAwKSB7CiAgICAgICAgICAgICAgICB0aGlzLmh1ZmZtYW5UYWJsZXNEQ1todWZmbWFuVGFibGVTcGVjICYgMTVdID0gYnVpbGRIdWZmbWFuVGFibGUoCiAgICAgICAgICAgICAgICAgIGNvZGVMZW5ndGhzLCBodWZmbWFuVmFsdWVzLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5odWZmbWFuVGFibGVzQUNbaHVmZm1hblRhYmxlU3BlYyAmIDE1XSA9IGJ1aWxkSHVmZm1hblRhYmxlKAogICAgICAgICAgICAgICAgICBjb2RlTGVuZ3RocywgaHVmZm1hblZhbHVlcywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQoKICAgICAgICAgIGNhc2UgMHhGRkREOiAvLyBEUkkgKERlZmluZSBSZXN0YXJ0IEludGVydmFsKQogICAgICAgICAgICByZWFkVWludDE2KCk7IC8vIHNraXAgZGF0YSBsZW5ndGgKICAgICAgICAgICAgdGhpcy5yZXNldEludGVydmFsID0gcmVhZFVpbnQxNigpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICBjYXNlIDB4RkZEQTogeyAvLyBTT1MgKFN0YXJ0IG9mIFNjYW4pCiAgICAgICAgICAgIHJlYWRVaW50MTYoKTsgLy8gc2tpcCBsZW5ndGgKICAgICAgICAgICAgY29uc3Qgc2VsZWN0b3JzQ291bnQgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IFtdOwogICAgICAgICAgICBjb25zdCBmcmFtZSA9IHRoaXMuZnJhbWVzWzBdOwogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdG9yc0NvdW50OyBpKyspIHsKICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBmcmFtZS5jb21wb25lbnRzW2RhdGFbb2Zmc2V0KytdXTsKICAgICAgICAgICAgICBjb25zdCB0YWJsZVNwZWMgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgICBjb21wb25lbnQuaHVmZm1hblRhYmxlREMgPSB0aGlzLmh1ZmZtYW5UYWJsZXNEQ1t0YWJsZVNwZWMgPj4gNF07CiAgICAgICAgICAgICAgY29tcG9uZW50Lmh1ZmZtYW5UYWJsZUFDID0gdGhpcy5odWZmbWFuVGFibGVzQUNbdGFibGVTcGVjICYgMTVdOwogICAgICAgICAgICAgIGNvbXBvbmVudHMucHVzaChjb21wb25lbnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHNwZWN0cmFsU3RhcnQgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgY29uc3Qgc3BlY3RyYWxFbmQgPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgY29uc3Qgc3VjY2Vzc2l2ZUFwcHJveGltYXRpb24gPSBkYXRhW29mZnNldCsrXTsKICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkID0gZGVjb2RlU2NhbihkYXRhLCBvZmZzZXQsCiAgICAgICAgICAgICAgZnJhbWUsIGNvbXBvbmVudHMsIHRoaXMucmVzZXRJbnRlcnZhbCwKICAgICAgICAgICAgICBzcGVjdHJhbFN0YXJ0LCBzcGVjdHJhbEVuZCwKICAgICAgICAgICAgICBzdWNjZXNzaXZlQXBwcm94aW1hdGlvbiA+PiA0LCBzdWNjZXNzaXZlQXBwcm94aW1hdGlvbiAmIDE1KTsKICAgICAgICAgICAgb2Zmc2V0ICs9IHByb2Nlc3NlZDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CgogICAgICAgICAgY2FzZSAweEZGRkY6IC8vIEZpbGwgYnl0ZXMKICAgICAgICAgICAgaWYgKGRhdGFbb2Zmc2V0XSAhPT0gMHhGRikgeyAvLyBBdm9pZCBza2lwcGluZyBhIHZhbGlkIG1hcmtlci4KICAgICAgICAgICAgICBvZmZzZXQtLTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZiAoZGF0YVtvZmZzZXQgLSAzXSA9PT0gMHhGRgogICAgICAgICAgICAgICYmIGRhdGFbb2Zmc2V0IC0gMl0gPj0gMHhDMCAmJiBkYXRhW29mZnNldCAtIDJdIDw9IDB4RkUpIHsKICAgICAgICAgICAgICAvLyBjb3VsZCBiZSBpbmNvcnJlY3QgZW5jb2RpbmcgLS0gbGFzdCAweEZGIGJ5dGUgb2YgdGhlIHByZXZpb3VzCiAgICAgICAgICAgICAgLy8gYmxvY2sgd2FzIGVhdGVuIGJ5IHRoZSBlbmNvZGVyCiAgICAgICAgICAgICAgb2Zmc2V0IC09IDM7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIEpQRUcgbWFya2VyICR7ZmlsZU1hcmtlci50b1N0cmluZygxNil9YCk7CiAgICAgICAgfQogICAgICAgIGZpbGVNYXJrZXIgPSByZWFkVWludDE2KCk7CiAgICAgIH0KICAgIH0KCiAgICBnZXRSZXN1bHQoKSB7CiAgICAgIGNvbnN0IHsgZnJhbWVzIH0gPSB0aGlzOwogICAgICBpZiAodGhpcy5mcmFtZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBmcmFtZXMgd2VyZSBkZWNvZGVkJyk7CiAgICAgIH0gZWxzZSBpZiAodGhpcy5mcmFtZXMubGVuZ3RoID4gMSkgewogICAgICAgIGNvbnNvbGUud2FybignbW9yZSB0aGFuIG9uZSBmcmFtZSBpcyBub3Qgc3VwcG9ydGVkJyk7CiAgICAgIH0KCiAgICAgIC8vIHNldCBlYWNoIGZyYW1lJ3MgY29tcG9uZW50cyBxdWFudGl6YXRpb24gdGFibGUKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZyYW1lcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNvbnN0IGNwID0gdGhpcy5mcmFtZXNbaV0uY29tcG9uZW50czsKICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMoY3ApKSB7CiAgICAgICAgICBjcFtqXS5xdWFudGl6YXRpb25UYWJsZSA9IHRoaXMucXVhbnRpemF0aW9uVGFibGVzW2NwW2pdLnF1YW50aXphdGlvbklkeF07CiAgICAgICAgICBkZWxldGUgY3Bbal0ucXVhbnRpemF0aW9uSWR4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgY29uc3QgZnJhbWUgPSBmcmFtZXNbMF07CiAgICAgIGNvbnN0IHsgY29tcG9uZW50cywgY29tcG9uZW50c09yZGVyIH0gPSBmcmFtZTsKICAgICAgY29uc3Qgb3V0Q29tcG9uZW50cyA9IFtdOwogICAgICBjb25zdCB3aWR0aCA9IGZyYW1lLnNhbXBsZXNQZXJMaW5lOwogICAgICBjb25zdCBoZWlnaHQgPSBmcmFtZS5zY2FuTGluZXM7CgogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbXBvbmVudHNPcmRlci5sZW5ndGg7IGkrKykgewogICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGNvbXBvbmVudHNbY29tcG9uZW50c09yZGVyW2ldXTsKICAgICAgICBvdXRDb21wb25lbnRzLnB1c2goewogICAgICAgICAgbGluZXM6IGJ1aWxkQ29tcG9uZW50RGF0YShmcmFtZSwgY29tcG9uZW50KSwKICAgICAgICAgIHNjYWxlWDogY29tcG9uZW50LmggLyBmcmFtZS5tYXhILAogICAgICAgICAgc2NhbGVZOiBjb21wb25lbnQudiAvIGZyYW1lLm1heFYsCiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIGNvbnN0IG91dCA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogb3V0Q29tcG9uZW50cy5sZW5ndGgpOwogICAgICBsZXQgb2kgPSAwOwogICAgICBmb3IgKGxldCB5ID0gMDsgeSA8IGhlaWdodDsgKyt5KSB7CiAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCB3aWR0aDsgKyt4KSB7CiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG91dENvbXBvbmVudHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gb3V0Q29tcG9uZW50c1tpXTsKICAgICAgICAgICAgb3V0W29pXSA9IGNvbXBvbmVudC5saW5lc1swIHwgeSAqIGNvbXBvbmVudC5zY2FsZVldWzAgfCB4ICogY29tcG9uZW50LnNjYWxlWF07CiAgICAgICAgICAgICsrb2k7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBvdXQ7CiAgICB9CiAgfQoKICBjbGFzcyBKcGVnRGVjb2RlciBleHRlbmRzIEJhc2VEZWNvZGVyIHsKICAgIGNvbnN0cnVjdG9yKGZpbGVEaXJlY3RvcnkpIHsKICAgICAgc3VwZXIoKTsKICAgICAgdGhpcy5yZWFkZXIgPSBuZXcgSnBlZ1N0cmVhbVJlYWRlcigpOwogICAgICBpZiAoZmlsZURpcmVjdG9yeS5KUEVHVGFibGVzKSB7CiAgICAgICAgdGhpcy5yZWFkZXIucGFyc2UoZmlsZURpcmVjdG9yeS5KUEVHVGFibGVzKTsKICAgICAgfQogICAgfQoKICAgIGRlY29kZUJsb2NrKGJ1ZmZlcikgewogICAgICB0aGlzLnJlYWRlci5yZXNldEZyYW1lcygpOwogICAgICB0aGlzLnJlYWRlci5wYXJzZShuZXcgVWludDhBcnJheShidWZmZXIpKTsKICAgICAgcmV0dXJuIHRoaXMucmVhZGVyLmdldFJlc3VsdCgpLmJ1ZmZlcjsKICAgIH0KICB9CgogIC8qISBwYWtvIDIuMC40IGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2EvcGFrbyBAbGljZW5zZSAoTUlUIEFORCBabGliKSAqLwogIC8vIChDKSAxOTk1LTIwMTMgSmVhbi1sb3VwIEdhaWxseSBhbmQgTWFyayBBZGxlcgogIC8vIChDKSAyMDE0LTIwMTcgVml0YWx5IFB1enJpbiBhbmQgQW5kcmV5IFR1cGl0c2luCiAgLy8KICAvLyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAogIC8vIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogIC8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAgLy8KICAvLyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAvLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0CiAgLy8gZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgogIC8vCiAgLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKICAvLyAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgLy8gICBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291bGQgYmUKICAvLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCiAgLy8gMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCBhbmQgbXVzdCBub3QgYmUKICAvLyAgIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KICAvLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKICAvKiBlc2xpbnQtZGlzYWJsZSBzcGFjZS11bmFyeS1vcHMgKi8KCiAgLyogUHVibGljIGNvbnN0YW50cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCiAgLy9jb25zdCBaX0ZJTFRFUkVEICAgICAgICAgID0gMTsKICAvL2NvbnN0IFpfSFVGRk1BTl9PTkxZICAgICAgPSAyOwogIC8vY29uc3QgWl9STEUgICAgICAgICAgICAgICA9IDM7CiAgY29uc3QgWl9GSVhFRCQxICAgICAgICAgICAgICAgPSA0OwogIC8vY29uc3QgWl9ERUZBVUxUX1NUUkFURUdZICA9IDA7CgogIC8qIFBvc3NpYmxlIHZhbHVlcyBvZiB0aGUgZGF0YV90eXBlIGZpZWxkICh0aG91Z2ggc2VlIGluZmxhdGUoKSkgKi8KICBjb25zdCBaX0JJTkFSWSAgICAgICAgICAgICAgPSAwOwogIGNvbnN0IFpfVEVYVCAgICAgICAgICAgICAgICA9IDE7CiAgLy9jb25zdCBaX0FTQ0lJICAgICAgICAgICAgID0gMTsgLy8gPSBaX1RFWFQKICBjb25zdCBaX1VOS05PV04kMSAgICAgICAgICAgICA9IDI7CgogIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgoKICBmdW5jdGlvbiB6ZXJvJDEoYnVmKSB7IGxldCBsZW4gPSBidWYubGVuZ3RoOyB3aGlsZSAoLS1sZW4gPj0gMCkgeyBidWZbbGVuXSA9IDA7IH0gfQoKICAvLyBGcm9tIHp1dGlsLmgKCiAgY29uc3QgU1RPUkVEX0JMT0NLID0gMDsKICBjb25zdCBTVEFUSUNfVFJFRVMgPSAxOwogIGNvbnN0IERZTl9UUkVFUyAgICA9IDI7CiAgLyogVGhlIHRocmVlIGtpbmRzIG9mIGJsb2NrIHR5cGUgKi8KCiAgY29uc3QgTUlOX01BVENIJDEgICAgPSAzOwogIGNvbnN0IE1BWF9NQVRDSCQxICAgID0gMjU4OwogIC8qIFRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIG1hdGNoIGxlbmd0aHMgKi8KCiAgLy8gRnJvbSBkZWZsYXRlLmgKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBJbnRlcm5hbCBjb21wcmVzc2lvbiBzdGF0ZS4KICAgKi8KCiAgY29uc3QgTEVOR1RIX0NPREVTJDEgID0gMjk7CiAgLyogbnVtYmVyIG9mIGxlbmd0aCBjb2Rlcywgbm90IGNvdW50aW5nIHRoZSBzcGVjaWFsIEVORF9CTE9DSyBjb2RlICovCgogIGNvbnN0IExJVEVSQUxTJDEgICAgICA9IDI1NjsKICAvKiBudW1iZXIgb2YgbGl0ZXJhbCBieXRlcyAwLi4yNTUgKi8KCiAgY29uc3QgTF9DT0RFUyQxICAgICAgID0gTElURVJBTFMkMSArIDEgKyBMRU5HVEhfQ09ERVMkMTsKICAvKiBudW1iZXIgb2YgTGl0ZXJhbCBvciBMZW5ndGggY29kZXMsIGluY2x1ZGluZyB0aGUgRU5EX0JMT0NLIGNvZGUgKi8KCiAgY29uc3QgRF9DT0RFUyQxICAgICAgID0gMzA7CiAgLyogbnVtYmVyIG9mIGRpc3RhbmNlIGNvZGVzICovCgogIGNvbnN0IEJMX0NPREVTJDEgICAgICA9IDE5OwogIC8qIG51bWJlciBvZiBjb2RlcyB1c2VkIHRvIHRyYW5zZmVyIHRoZSBiaXQgbGVuZ3RocyAqLwoKICBjb25zdCBIRUFQX1NJWkUkMSAgICAgPSAyICogTF9DT0RFUyQxICsgMTsKICAvKiBtYXhpbXVtIGhlYXAgc2l6ZSAqLwoKICBjb25zdCBNQVhfQklUUyQxICAgICAgPSAxNTsKICAvKiBBbGwgY29kZXMgbXVzdCBub3QgZXhjZWVkIE1BWF9CSVRTIGJpdHMgKi8KCiAgY29uc3QgQnVmX3NpemUgICAgICA9IDE2OwogIC8qIHNpemUgb2YgYml0IGJ1ZmZlciBpbiBiaV9idWYgKi8KCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIENvbnN0YW50cwogICAqLwoKICBjb25zdCBNQVhfQkxfQklUUyA9IDc7CiAgLyogQml0IGxlbmd0aCBjb2RlcyBtdXN0IG5vdCBleGNlZWQgTUFYX0JMX0JJVFMgYml0cyAqLwoKICBjb25zdCBFTkRfQkxPQ0sgICA9IDI1NjsKICAvKiBlbmQgb2YgYmxvY2sgbGl0ZXJhbCBjb2RlICovCgogIGNvbnN0IFJFUF8zXzYgICAgID0gMTY7CiAgLyogcmVwZWF0IHByZXZpb3VzIGJpdCBsZW5ndGggMy02IHRpbWVzICgyIGJpdHMgb2YgcmVwZWF0IGNvdW50KSAqLwoKICBjb25zdCBSRVBaXzNfMTAgICA9IDE3OwogIC8qIHJlcGVhdCBhIHplcm8gbGVuZ3RoIDMtMTAgdGltZXMgICgzIGJpdHMgb2YgcmVwZWF0IGNvdW50KSAqLwoKICBjb25zdCBSRVBaXzExXzEzOCA9IDE4OwogIC8qIHJlcGVhdCBhIHplcm8gbGVuZ3RoIDExLTEzOCB0aW1lcyAgKDcgYml0cyBvZiByZXBlYXQgY291bnQpICovCgogIC8qIGVzbGludC1kaXNhYmxlIGNvbW1hLXNwYWNpbmcsYXJyYXktYnJhY2tldC1zcGFjaW5nICovCiAgY29uc3QgZXh0cmFfbGJpdHMgPSAgIC8qIGV4dHJhIGJpdHMgZm9yIGVhY2ggbGVuZ3RoIGNvZGUgKi8KICAgIG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDBdKTsKCiAgY29uc3QgZXh0cmFfZGJpdHMgPSAgIC8qIGV4dHJhIGJpdHMgZm9yIGVhY2ggZGlzdGFuY2UgY29kZSAqLwogICAgbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTNdKTsKCiAgY29uc3QgZXh0cmFfYmxiaXRzID0gIC8qIGV4dHJhIGJpdHMgZm9yIGVhY2ggYml0IGxlbmd0aCBjb2RlICovCiAgICBuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDMsN10pOwoKICBjb25zdCBibF9vcmRlciA9CiAgICBuZXcgVWludDhBcnJheShbMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0pOwogIC8qIGVzbGludC1lbmFibGUgY29tbWEtc3BhY2luZyxhcnJheS1icmFja2V0LXNwYWNpbmcgKi8KCiAgLyogVGhlIGxlbmd0aHMgb2YgdGhlIGJpdCBsZW5ndGggY29kZXMgYXJlIHNlbnQgaW4gb3JkZXIgb2YgZGVjcmVhc2luZwogICAqIHByb2JhYmlsaXR5LCB0byBhdm9pZCB0cmFuc21pdHRpbmcgdGhlIGxlbmd0aHMgZm9yIHVudXNlZCBiaXQgbGVuZ3RoIGNvZGVzLgogICAqLwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBMb2NhbCBkYXRhLiBUaGVzZSBhcmUgaW5pdGlhbGl6ZWQgb25seSBvbmNlLgogICAqLwoKICAvLyBXZSBwcmUtZmlsbCBhcnJheXMgd2l0aCAwIHRvIGF2b2lkIHVuaW5pdGlhbGl6ZWQgZ2FwcwoKICBjb25zdCBESVNUX0NPREVfTEVOID0gNTEyOyAvKiBzZWUgZGVmaW5pdGlvbiBvZiBhcnJheSBkaXN0X2NvZGUgYmVsb3cgKi8KCiAgLy8gISEhISBVc2UgZmxhdCBhcnJheSBpbnN0ZWFkIG9mIHN0cnVjdHVyZSwgRnJlcSA9IGkqMiwgTGVuID0gaSoyKzEKICBjb25zdCBzdGF0aWNfbHRyZWUgID0gbmV3IEFycmF5KChMX0NPREVTJDEgKyAyKSAqIDIpOwogIHplcm8kMShzdGF0aWNfbHRyZWUpOwogIC8qIFRoZSBzdGF0aWMgbGl0ZXJhbCB0cmVlLiBTaW5jZSB0aGUgYml0IGxlbmd0aHMgYXJlIGltcG9zZWQsIHRoZXJlIGlzIG5vCiAgICogbmVlZCBmb3IgdGhlIExfQ09ERVMgZXh0cmEgY29kZXMgdXNlZCBkdXJpbmcgaGVhcCBjb25zdHJ1Y3Rpb24uIEhvd2V2ZXIKICAgKiBUaGUgY29kZXMgMjg2IGFuZCAyODcgYXJlIG5lZWRlZCB0byBidWlsZCBhIGNhbm9uaWNhbCB0cmVlIChzZWUgX3RyX2luaXQKICAgKiBiZWxvdykuCiAgICovCgogIGNvbnN0IHN0YXRpY19kdHJlZSAgPSBuZXcgQXJyYXkoRF9DT0RFUyQxICogMik7CiAgemVybyQxKHN0YXRpY19kdHJlZSk7CiAgLyogVGhlIHN0YXRpYyBkaXN0YW5jZSB0cmVlLiAoQWN0dWFsbHkgYSB0cml2aWFsIHRyZWUgc2luY2UgYWxsIGNvZGVzIHVzZQogICAqIDUgYml0cy4pCiAgICovCgogIGNvbnN0IF9kaXN0X2NvZGUgICAgPSBuZXcgQXJyYXkoRElTVF9DT0RFX0xFTik7CiAgemVybyQxKF9kaXN0X2NvZGUpOwogIC8qIERpc3RhbmNlIGNvZGVzLiBUaGUgZmlyc3QgMjU2IHZhbHVlcyBjb3JyZXNwb25kIHRvIHRoZSBkaXN0YW5jZXMKICAgKiAzIC4uIDI1OCwgdGhlIGxhc3QgMjU2IHZhbHVlcyBjb3JyZXNwb25kIHRvIHRoZSB0b3AgOCBiaXRzIG9mCiAgICogdGhlIDE1IGJpdCBkaXN0YW5jZXMuCiAgICovCgogIGNvbnN0IF9sZW5ndGhfY29kZSAgPSBuZXcgQXJyYXkoTUFYX01BVENIJDEgLSBNSU5fTUFUQ0gkMSArIDEpOwogIHplcm8kMShfbGVuZ3RoX2NvZGUpOwogIC8qIGxlbmd0aCBjb2RlIGZvciBlYWNoIG5vcm1hbGl6ZWQgbWF0Y2ggbGVuZ3RoICgwID09IE1JTl9NQVRDSCkgKi8KCiAgY29uc3QgYmFzZV9sZW5ndGggICA9IG5ldyBBcnJheShMRU5HVEhfQ09ERVMkMSk7CiAgemVybyQxKGJhc2VfbGVuZ3RoKTsKICAvKiBGaXJzdCBub3JtYWxpemVkIGxlbmd0aCBmb3IgZWFjaCBjb2RlICgwID0gTUlOX01BVENIKSAqLwoKICBjb25zdCBiYXNlX2Rpc3QgICAgID0gbmV3IEFycmF5KERfQ09ERVMkMSk7CiAgemVybyQxKGJhc2VfZGlzdCk7CiAgLyogRmlyc3Qgbm9ybWFsaXplZCBkaXN0YW5jZSBmb3IgZWFjaCBjb2RlICgwID0gZGlzdGFuY2Ugb2YgMSkgKi8KCgogIGZ1bmN0aW9uIFN0YXRpY1RyZWVEZXNjKHN0YXRpY190cmVlLCBleHRyYV9iaXRzLCBleHRyYV9iYXNlLCBlbGVtcywgbWF4X2xlbmd0aCkgewoKICAgIHRoaXMuc3RhdGljX3RyZWUgID0gc3RhdGljX3RyZWU7ICAvKiBzdGF0aWMgdHJlZSBvciBOVUxMICovCiAgICB0aGlzLmV4dHJhX2JpdHMgICA9IGV4dHJhX2JpdHM7ICAgLyogZXh0cmEgYml0cyBmb3IgZWFjaCBjb2RlIG9yIE5VTEwgKi8KICAgIHRoaXMuZXh0cmFfYmFzZSAgID0gZXh0cmFfYmFzZTsgICAvKiBiYXNlIGluZGV4IGZvciBleHRyYV9iaXRzICovCiAgICB0aGlzLmVsZW1zICAgICAgICA9IGVsZW1zOyAgICAgICAgLyogbWF4IG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgdHJlZSAqLwogICAgdGhpcy5tYXhfbGVuZ3RoICAgPSBtYXhfbGVuZ3RoOyAgIC8qIG1heCBiaXQgbGVuZ3RoIGZvciB0aGUgY29kZXMgKi8KCiAgICAvLyBzaG93IGlmIGBzdGF0aWNfdHJlZWAgaGFzIGRhdGEgb3IgZHVtbXkgLSBuZWVkZWQgZm9yIG1vbm9tb3JwaGljIG9iamVjdHMKICAgIHRoaXMuaGFzX3N0cmVlICAgID0gc3RhdGljX3RyZWUgJiYgc3RhdGljX3RyZWUubGVuZ3RoOwogIH0KCgogIGxldCBzdGF0aWNfbF9kZXNjOwogIGxldCBzdGF0aWNfZF9kZXNjOwogIGxldCBzdGF0aWNfYmxfZGVzYzsKCgogIGZ1bmN0aW9uIFRyZWVEZXNjKGR5bl90cmVlLCBzdGF0X2Rlc2MpIHsKICAgIHRoaXMuZHluX3RyZWUgPSBkeW5fdHJlZTsgICAgIC8qIHRoZSBkeW5hbWljIHRyZWUgKi8KICAgIHRoaXMubWF4X2NvZGUgPSAwOyAgICAgICAgICAgIC8qIGxhcmdlc3QgY29kZSB3aXRoIG5vbiB6ZXJvIGZyZXF1ZW5jeSAqLwogICAgdGhpcy5zdGF0X2Rlc2MgPSBzdGF0X2Rlc2M7ICAgLyogdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGljIHRyZWUgKi8KICB9CgoKCiAgY29uc3QgZF9jb2RlID0gKGRpc3QpID0+IHsKCiAgICByZXR1cm4gZGlzdCA8IDI1NiA/IF9kaXN0X2NvZGVbZGlzdF0gOiBfZGlzdF9jb2RlWzI1NiArIChkaXN0ID4+PiA3KV07CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIE91dHB1dCBhIHNob3J0IExTQiBmaXJzdCBvbiB0aGUgc3RyZWFtLgogICAqIElOIGFzc2VydGlvbjogdGhlcmUgaXMgZW5vdWdoIHJvb20gaW4gcGVuZGluZ0J1Zi4KICAgKi8KICBjb25zdCBwdXRfc2hvcnQgPSAocywgdykgPT4gewogIC8vICAgIHB1dF9ieXRlKHMsICh1Y2gpKCh3KSAmIDB4ZmYpKTsKICAvLyAgICBwdXRfYnl0ZShzLCAodWNoKSgodXNoKSh3KSA+PiA4KSk7CiAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9ICh3KSAmIDB4ZmY7CiAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9ICh3ID4+PiA4KSAmIDB4ZmY7CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIFNlbmQgYSB2YWx1ZSBvbiBhIGdpdmVuIG51bWJlciBvZiBiaXRzLgogICAqIElOIGFzc2VydGlvbjogbGVuZ3RoIDw9IDE2IGFuZCB2YWx1ZSBmaXRzIGluIGxlbmd0aCBiaXRzLgogICAqLwogIGNvbnN0IHNlbmRfYml0cyA9IChzLCB2YWx1ZSwgbGVuZ3RoKSA9PiB7CgogICAgaWYgKHMuYmlfdmFsaWQgPiAoQnVmX3NpemUgLSBsZW5ndGgpKSB7CiAgICAgIHMuYmlfYnVmIHw9ICh2YWx1ZSA8PCBzLmJpX3ZhbGlkKSAmIDB4ZmZmZjsKICAgICAgcHV0X3Nob3J0KHMsIHMuYmlfYnVmKTsKICAgICAgcy5iaV9idWYgPSB2YWx1ZSA+PiAoQnVmX3NpemUgLSBzLmJpX3ZhbGlkKTsKICAgICAgcy5iaV92YWxpZCArPSBsZW5ndGggLSBCdWZfc2l6ZTsKICAgIH0gZWxzZSB7CiAgICAgIHMuYmlfYnVmIHw9ICh2YWx1ZSA8PCBzLmJpX3ZhbGlkKSAmIDB4ZmZmZjsKICAgICAgcy5iaV92YWxpZCArPSBsZW5ndGg7CiAgICB9CiAgfTsKCgogIGNvbnN0IHNlbmRfY29kZSA9IChzLCBjLCB0cmVlKSA9PiB7CgogICAgc2VuZF9iaXRzKHMsIHRyZWVbYyAqIDJdLyouQ29kZSovLCB0cmVlW2MgKiAyICsgMV0vKi5MZW4qLyk7CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIFJldmVyc2UgdGhlIGZpcnN0IGxlbiBiaXRzIG9mIGEgY29kZSwgdXNpbmcgc3RyYWlnaHRmb3J3YXJkIGNvZGUgKGEgZmFzdGVyCiAgICogbWV0aG9kIHdvdWxkIHVzZSBhIHRhYmxlKQogICAqIElOIGFzc2VydGlvbjogMSA8PSBsZW4gPD0gMTUKICAgKi8KICBjb25zdCBiaV9yZXZlcnNlID0gKGNvZGUsIGxlbikgPT4gewoKICAgIGxldCByZXMgPSAwOwogICAgZG8gewogICAgICByZXMgfD0gY29kZSAmIDE7CiAgICAgIGNvZGUgPj4+PSAxOwogICAgICByZXMgPDw9IDE7CiAgICB9IHdoaWxlICgtLWxlbiA+IDApOwogICAgcmV0dXJuIHJlcyA+Pj4gMTsKICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogRmx1c2ggdGhlIGJpdCBidWZmZXIsIGtlZXBpbmcgYXQgbW9zdCA3IGJpdHMgaW4gaXQuCiAgICovCiAgY29uc3QgYmlfZmx1c2ggPSAocykgPT4gewoKICAgIGlmIChzLmJpX3ZhbGlkID09PSAxNikgewogICAgICBwdXRfc2hvcnQocywgcy5iaV9idWYpOwogICAgICBzLmJpX2J1ZiA9IDA7CiAgICAgIHMuYmlfdmFsaWQgPSAwOwoKICAgIH0gZWxzZSBpZiAocy5iaV92YWxpZCA+PSA4KSB7CiAgICAgIHMucGVuZGluZ19idWZbcy5wZW5kaW5nKytdID0gcy5iaV9idWYgJiAweGZmOwogICAgICBzLmJpX2J1ZiA+Pj0gODsKICAgICAgcy5iaV92YWxpZCAtPSA4OwogICAgfQogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBDb21wdXRlIHRoZSBvcHRpbWFsIGJpdCBsZW5ndGhzIGZvciBhIHRyZWUgYW5kIHVwZGF0ZSB0aGUgdG90YWwgYml0IGxlbmd0aAogICAqIGZvciB0aGUgY3VycmVudCBibG9jay4KICAgKiBJTiBhc3NlcnRpb246IHRoZSBmaWVsZHMgZnJlcSBhbmQgZGFkIGFyZSBzZXQsIGhlYXBbaGVhcF9tYXhdIGFuZAogICAqICAgIGFib3ZlIGFyZSB0aGUgdHJlZSBub2RlcyBzb3J0ZWQgYnkgaW5jcmVhc2luZyBmcmVxdWVuY3kuCiAgICogT1VUIGFzc2VydGlvbnM6IHRoZSBmaWVsZCBsZW4gaXMgc2V0IHRvIHRoZSBvcHRpbWFsIGJpdCBsZW5ndGgsIHRoZQogICAqICAgICBhcnJheSBibF9jb3VudCBjb250YWlucyB0aGUgZnJlcXVlbmNpZXMgZm9yIGVhY2ggYml0IGxlbmd0aC4KICAgKiAgICAgVGhlIGxlbmd0aCBvcHRfbGVuIGlzIHVwZGF0ZWQ7IHN0YXRpY19sZW4gaXMgYWxzbyB1cGRhdGVkIGlmIHN0cmVlIGlzCiAgICogICAgIG5vdCBudWxsLgogICAqLwogIGNvbnN0IGdlbl9iaXRsZW4gPSAocywgZGVzYykgPT4KICAvLyAgICBkZWZsYXRlX3N0YXRlICpzOwogIC8vICAgIHRyZWVfZGVzYyAqZGVzYzsgICAgLyogdGhlIHRyZWUgZGVzY3JpcHRvciAqLwogIHsKICAgIGNvbnN0IHRyZWUgICAgICAgICAgICA9IGRlc2MuZHluX3RyZWU7CiAgICBjb25zdCBtYXhfY29kZSAgICAgICAgPSBkZXNjLm1heF9jb2RlOwogICAgY29uc3Qgc3RyZWUgICAgICAgICAgID0gZGVzYy5zdGF0X2Rlc2Muc3RhdGljX3RyZWU7CiAgICBjb25zdCBoYXNfc3RyZWUgICAgICAgPSBkZXNjLnN0YXRfZGVzYy5oYXNfc3RyZWU7CiAgICBjb25zdCBleHRyYSAgICAgICAgICAgPSBkZXNjLnN0YXRfZGVzYy5leHRyYV9iaXRzOwogICAgY29uc3QgYmFzZSAgICAgICAgICAgID0gZGVzYy5zdGF0X2Rlc2MuZXh0cmFfYmFzZTsKICAgIGNvbnN0IG1heF9sZW5ndGggICAgICA9IGRlc2Muc3RhdF9kZXNjLm1heF9sZW5ndGg7CiAgICBsZXQgaDsgICAgICAgICAgICAgIC8qIGhlYXAgaW5kZXggKi8KICAgIGxldCBuLCBtOyAgICAgICAgICAgLyogaXRlcmF0ZSBvdmVyIHRoZSB0cmVlIGVsZW1lbnRzICovCiAgICBsZXQgYml0czsgICAgICAgICAgIC8qIGJpdCBsZW5ndGggKi8KICAgIGxldCB4Yml0czsgICAgICAgICAgLyogZXh0cmEgYml0cyAqLwogICAgbGV0IGY7ICAgICAgICAgICAgICAvKiBmcmVxdWVuY3kgKi8KICAgIGxldCBvdmVyZmxvdyA9IDA7ICAgLyogbnVtYmVyIG9mIGVsZW1lbnRzIHdpdGggYml0IGxlbmd0aCB0b28gbGFyZ2UgKi8KCiAgICBmb3IgKGJpdHMgPSAwOyBiaXRzIDw9IE1BWF9CSVRTJDE7IGJpdHMrKykgewogICAgICBzLmJsX2NvdW50W2JpdHNdID0gMDsKICAgIH0KCiAgICAvKiBJbiBhIGZpcnN0IHBhc3MsIGNvbXB1dGUgdGhlIG9wdGltYWwgYml0IGxlbmd0aHMgKHdoaWNoIG1heQogICAgICogb3ZlcmZsb3cgaW4gdGhlIGNhc2Ugb2YgdGhlIGJpdCBsZW5ndGggdHJlZSkuCiAgICAgKi8KICAgIHRyZWVbcy5oZWFwW3MuaGVhcF9tYXhdICogMiArIDFdLyouTGVuKi8gPSAwOyAvKiByb290IG9mIHRoZSBoZWFwICovCgogICAgZm9yIChoID0gcy5oZWFwX21heCArIDE7IGggPCBIRUFQX1NJWkUkMTsgaCsrKSB7CiAgICAgIG4gPSBzLmhlYXBbaF07CiAgICAgIGJpdHMgPSB0cmVlW3RyZWVbbiAqIDIgKyAxXS8qLkRhZCovICogMiArIDFdLyouTGVuKi8gKyAxOwogICAgICBpZiAoYml0cyA+IG1heF9sZW5ndGgpIHsKICAgICAgICBiaXRzID0gbWF4X2xlbmd0aDsKICAgICAgICBvdmVyZmxvdysrOwogICAgICB9CiAgICAgIHRyZWVbbiAqIDIgKyAxXS8qLkxlbiovID0gYml0czsKICAgICAgLyogV2Ugb3ZlcndyaXRlIHRyZWVbbl0uRGFkIHdoaWNoIGlzIG5vIGxvbmdlciBuZWVkZWQgKi8KCiAgICAgIGlmIChuID4gbWF4X2NvZGUpIHsgY29udGludWU7IH0gLyogbm90IGEgbGVhZiBub2RlICovCgogICAgICBzLmJsX2NvdW50W2JpdHNdKys7CiAgICAgIHhiaXRzID0gMDsKICAgICAgaWYgKG4gPj0gYmFzZSkgewogICAgICAgIHhiaXRzID0gZXh0cmFbbiAtIGJhc2VdOwogICAgICB9CiAgICAgIGYgPSB0cmVlW24gKiAyXS8qLkZyZXEqLzsKICAgICAgcy5vcHRfbGVuICs9IGYgKiAoYml0cyArIHhiaXRzKTsKICAgICAgaWYgKGhhc19zdHJlZSkgewogICAgICAgIHMuc3RhdGljX2xlbiArPSBmICogKHN0cmVlW24gKiAyICsgMV0vKi5MZW4qLyArIHhiaXRzKTsKICAgICAgfQogICAgfQogICAgaWYgKG92ZXJmbG93ID09PSAwKSB7IHJldHVybjsgfQoKICAgIC8vIFRyYWNlKChzdGRlcnIsIlxuYml0IGxlbmd0aCBvdmVyZmxvd1xuIikpOwogICAgLyogVGhpcyBoYXBwZW5zIGZvciBleGFtcGxlIG9uIG9iajIgYW5kIHBpYyBvZiB0aGUgQ2FsZ2FyeSBjb3JwdXMgKi8KCiAgICAvKiBGaW5kIHRoZSBmaXJzdCBiaXQgbGVuZ3RoIHdoaWNoIGNvdWxkIGluY3JlYXNlOiAqLwogICAgZG8gewogICAgICBiaXRzID0gbWF4X2xlbmd0aCAtIDE7CiAgICAgIHdoaWxlIChzLmJsX2NvdW50W2JpdHNdID09PSAwKSB7IGJpdHMtLTsgfQogICAgICBzLmJsX2NvdW50W2JpdHNdLS07ICAgICAgLyogbW92ZSBvbmUgbGVhZiBkb3duIHRoZSB0cmVlICovCiAgICAgIHMuYmxfY291bnRbYml0cyArIDFdICs9IDI7IC8qIG1vdmUgb25lIG92ZXJmbG93IGl0ZW0gYXMgaXRzIGJyb3RoZXIgKi8KICAgICAgcy5ibF9jb3VudFttYXhfbGVuZ3RoXS0tOwogICAgICAvKiBUaGUgYnJvdGhlciBvZiB0aGUgb3ZlcmZsb3cgaXRlbSBhbHNvIG1vdmVzIG9uZSBzdGVwIHVwLAogICAgICAgKiBidXQgdGhpcyBkb2VzIG5vdCBhZmZlY3QgYmxfY291bnRbbWF4X2xlbmd0aF0KICAgICAgICovCiAgICAgIG92ZXJmbG93IC09IDI7CiAgICB9IHdoaWxlIChvdmVyZmxvdyA+IDApOwoKICAgIC8qIE5vdyByZWNvbXB1dGUgYWxsIGJpdCBsZW5ndGhzLCBzY2FubmluZyBpbiBpbmNyZWFzaW5nIGZyZXF1ZW5jeS4KICAgICAqIGggaXMgc3RpbGwgZXF1YWwgdG8gSEVBUF9TSVpFLiAoSXQgaXMgc2ltcGxlciB0byByZWNvbnN0cnVjdCBhbGwKICAgICAqIGxlbmd0aHMgaW5zdGVhZCBvZiBmaXhpbmcgb25seSB0aGUgd3Jvbmcgb25lcy4gVGhpcyBpZGVhIGlzIHRha2VuCiAgICAgKiBmcm9tICdhcicgd3JpdHRlbiBieSBIYXJ1aGlrbyBPa3VtdXJhLikKICAgICAqLwogICAgZm9yIChiaXRzID0gbWF4X2xlbmd0aDsgYml0cyAhPT0gMDsgYml0cy0tKSB7CiAgICAgIG4gPSBzLmJsX2NvdW50W2JpdHNdOwogICAgICB3aGlsZSAobiAhPT0gMCkgewogICAgICAgIG0gPSBzLmhlYXBbLS1oXTsKICAgICAgICBpZiAobSA+IG1heF9jb2RlKSB7IGNvbnRpbnVlOyB9CiAgICAgICAgaWYgKHRyZWVbbSAqIDIgKyAxXS8qLkxlbiovICE9PSBiaXRzKSB7CiAgICAgICAgICAvLyBUcmFjZSgoc3RkZXJyLCJjb2RlICVkIGJpdHMgJWQtPiVkXG4iLCBtLCB0cmVlW21dLkxlbiwgYml0cykpOwogICAgICAgICAgcy5vcHRfbGVuICs9IChiaXRzIC0gdHJlZVttICogMiArIDFdLyouTGVuKi8pICogdHJlZVttICogMl0vKi5GcmVxKi87CiAgICAgICAgICB0cmVlW20gKiAyICsgMV0vKi5MZW4qLyA9IGJpdHM7CiAgICAgICAgfQogICAgICAgIG4tLTsKICAgICAgfQogICAgfQogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBHZW5lcmF0ZSB0aGUgY29kZXMgZm9yIGEgZ2l2ZW4gdHJlZSBhbmQgYml0IGNvdW50cyAod2hpY2ggbmVlZCBub3QgYmUKICAgKiBvcHRpbWFsKS4KICAgKiBJTiBhc3NlcnRpb246IHRoZSBhcnJheSBibF9jb3VudCBjb250YWlucyB0aGUgYml0IGxlbmd0aCBzdGF0aXN0aWNzIGZvcgogICAqIHRoZSBnaXZlbiB0cmVlIGFuZCB0aGUgZmllbGQgbGVuIGlzIHNldCBmb3IgYWxsIHRyZWUgZWxlbWVudHMuCiAgICogT1VUIGFzc2VydGlvbjogdGhlIGZpZWxkIGNvZGUgaXMgc2V0IGZvciBhbGwgdHJlZSBlbGVtZW50cyBvZiBub24KICAgKiAgICAgemVybyBjb2RlIGxlbmd0aC4KICAgKi8KICBjb25zdCBnZW5fY29kZXMgPSAodHJlZSwgbWF4X2NvZGUsIGJsX2NvdW50KSA9PgogIC8vICAgIGN0X2RhdGEgKnRyZWU7ICAgICAgICAgICAgIC8qIHRoZSB0cmVlIHRvIGRlY29yYXRlICovCiAgLy8gICAgaW50IG1heF9jb2RlOyAgICAgICAgICAgICAgLyogbGFyZ2VzdCBjb2RlIHdpdGggbm9uIHplcm8gZnJlcXVlbmN5ICovCiAgLy8gICAgdXNoZiAqYmxfY291bnQ7ICAgICAgICAgICAgLyogbnVtYmVyIG9mIGNvZGVzIGF0IGVhY2ggYml0IGxlbmd0aCAqLwogIHsKICAgIGNvbnN0IG5leHRfY29kZSA9IG5ldyBBcnJheShNQVhfQklUUyQxICsgMSk7IC8qIG5leHQgY29kZSB2YWx1ZSBmb3IgZWFjaCBiaXQgbGVuZ3RoICovCiAgICBsZXQgY29kZSA9IDA7ICAgICAgICAgICAgICAvKiBydW5uaW5nIGNvZGUgdmFsdWUgKi8KICAgIGxldCBiaXRzOyAgICAgICAgICAgICAgICAgIC8qIGJpdCBpbmRleCAqLwogICAgbGV0IG47ICAgICAgICAgICAgICAgICAgICAgLyogY29kZSBpbmRleCAqLwoKICAgIC8qIFRoZSBkaXN0cmlidXRpb24gY291bnRzIGFyZSBmaXJzdCB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjb2RlIHZhbHVlcwogICAgICogd2l0aG91dCBiaXQgcmV2ZXJzYWwuCiAgICAgKi8KICAgIGZvciAoYml0cyA9IDE7IGJpdHMgPD0gTUFYX0JJVFMkMTsgYml0cysrKSB7CiAgICAgIG5leHRfY29kZVtiaXRzXSA9IGNvZGUgPSAoY29kZSArIGJsX2NvdW50W2JpdHMgLSAxXSkgPDwgMTsKICAgIH0KICAgIC8qIENoZWNrIHRoYXQgdGhlIGJpdCBjb3VudHMgaW4gYmxfY291bnQgYXJlIGNvbnNpc3RlbnQuIFRoZSBsYXN0IGNvZGUKICAgICAqIG11c3QgYmUgYWxsIG9uZXMuCiAgICAgKi8KICAgIC8vQXNzZXJ0IChjb2RlICsgYmxfY291bnRbTUFYX0JJVFNdLTEgPT0gKDE8PE1BWF9CSVRTKS0xLAogICAgLy8gICAgICAgICJpbmNvbnNpc3RlbnQgYml0IGNvdW50cyIpOwogICAgLy9UcmFjZXYoKHN0ZGVyciwiXG5nZW5fY29kZXM6IG1heF9jb2RlICVkICIsIG1heF9jb2RlKSk7CgogICAgZm9yIChuID0gMDsgIG4gPD0gbWF4X2NvZGU7IG4rKykgewogICAgICBsZXQgbGVuID0gdHJlZVtuICogMiArIDFdLyouTGVuKi87CiAgICAgIGlmIChsZW4gPT09IDApIHsgY29udGludWU7IH0KICAgICAgLyogTm93IHJldmVyc2UgdGhlIGJpdHMgKi8KICAgICAgdHJlZVtuICogMl0vKi5Db2RlKi8gPSBiaV9yZXZlcnNlKG5leHRfY29kZVtsZW5dKyssIGxlbik7CgogICAgICAvL1RyYWNlY3YodHJlZSAhPSBzdGF0aWNfbHRyZWUsIChzdGRlcnIsIlxubiAlM2QgJWMgbCAlMmQgYyAlNHggKCV4KSAiLAogICAgICAvLyAgICAgbiwgKGlzZ3JhcGgobikgPyBuIDogJyAnKSwgbGVuLCB0cmVlW25dLkNvZGUsIG5leHRfY29kZVtsZW5dLTEpKTsKICAgIH0KICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogSW5pdGlhbGl6ZSB0aGUgdmFyaW91cyAnY29uc3RhbnQnIHRhYmxlcy4KICAgKi8KICBjb25zdCB0cl9zdGF0aWNfaW5pdCA9ICgpID0+IHsKCiAgICBsZXQgbjsgICAgICAgIC8qIGl0ZXJhdGVzIG92ZXIgdHJlZSBlbGVtZW50cyAqLwogICAgbGV0IGJpdHM7ICAgICAvKiBiaXQgY291bnRlciAqLwogICAgbGV0IGxlbmd0aDsgICAvKiBsZW5ndGggdmFsdWUgKi8KICAgIGxldCBjb2RlOyAgICAgLyogY29kZSB2YWx1ZSAqLwogICAgbGV0IGRpc3Q7ICAgICAvKiBkaXN0YW5jZSBpbmRleCAqLwogICAgY29uc3QgYmxfY291bnQgPSBuZXcgQXJyYXkoTUFYX0JJVFMkMSArIDEpOwogICAgLyogbnVtYmVyIG9mIGNvZGVzIGF0IGVhY2ggYml0IGxlbmd0aCBmb3IgYW4gb3B0aW1hbCB0cmVlICovCgogICAgLy8gZG8gY2hlY2sgaW4gX3RyX2luaXQoKQogICAgLy9pZiAoc3RhdGljX2luaXRfZG9uZSkgcmV0dXJuOwoKICAgIC8qIEZvciBzb21lIGVtYmVkZGVkIHRhcmdldHMsIGdsb2JhbCB2YXJpYWJsZXMgYXJlIG5vdCBpbml0aWFsaXplZDogKi8KICAvKiNpZmRlZiBOT19JTklUX0dMT0JBTF9QT0lOVEVSUwogICAgc3RhdGljX2xfZGVzYy5zdGF0aWNfdHJlZSA9IHN0YXRpY19sdHJlZTsKICAgIHN0YXRpY19sX2Rlc2MuZXh0cmFfYml0cyA9IGV4dHJhX2xiaXRzOwogICAgc3RhdGljX2RfZGVzYy5zdGF0aWNfdHJlZSA9IHN0YXRpY19kdHJlZTsKICAgIHN0YXRpY19kX2Rlc2MuZXh0cmFfYml0cyA9IGV4dHJhX2RiaXRzOwogICAgc3RhdGljX2JsX2Rlc2MuZXh0cmFfYml0cyA9IGV4dHJhX2JsYml0czsKICAjZW5kaWYqLwoKICAgIC8qIEluaXRpYWxpemUgdGhlIG1hcHBpbmcgbGVuZ3RoICgwLi4yNTUpIC0+IGxlbmd0aCBjb2RlICgwLi4yOCkgKi8KICAgIGxlbmd0aCA9IDA7CiAgICBmb3IgKGNvZGUgPSAwOyBjb2RlIDwgTEVOR1RIX0NPREVTJDEgLSAxOyBjb2RlKyspIHsKICAgICAgYmFzZV9sZW5ndGhbY29kZV0gPSBsZW5ndGg7CiAgICAgIGZvciAobiA9IDA7IG4gPCAoMSA8PCBleHRyYV9sYml0c1tjb2RlXSk7IG4rKykgewogICAgICAgIF9sZW5ndGhfY29kZVtsZW5ndGgrK10gPSBjb2RlOwogICAgICB9CiAgICB9CiAgICAvL0Fzc2VydCAobGVuZ3RoID09IDI1NiwgInRyX3N0YXRpY19pbml0OiBsZW5ndGggIT0gMjU2Iik7CiAgICAvKiBOb3RlIHRoYXQgdGhlIGxlbmd0aCAyNTUgKG1hdGNoIGxlbmd0aCAyNTgpIGNhbiBiZSByZXByZXNlbnRlZAogICAgICogaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBjb2RlIDI4NCArIDUgYml0cyBvciBjb2RlIDI4NSwgc28gd2UKICAgICAqIG92ZXJ3cml0ZSBsZW5ndGhfY29kZVsyNTVdIHRvIHVzZSB0aGUgYmVzdCBlbmNvZGluZzoKICAgICAqLwogICAgX2xlbmd0aF9jb2RlW2xlbmd0aCAtIDFdID0gY29kZTsKCiAgICAvKiBJbml0aWFsaXplIHRoZSBtYXBwaW5nIGRpc3QgKDAuLjMySykgLT4gZGlzdCBjb2RlICgwLi4yOSkgKi8KICAgIGRpc3QgPSAwOwogICAgZm9yIChjb2RlID0gMDsgY29kZSA8IDE2OyBjb2RlKyspIHsKICAgICAgYmFzZV9kaXN0W2NvZGVdID0gZGlzdDsKICAgICAgZm9yIChuID0gMDsgbiA8ICgxIDw8IGV4dHJhX2RiaXRzW2NvZGVdKTsgbisrKSB7CiAgICAgICAgX2Rpc3RfY29kZVtkaXN0KytdID0gY29kZTsKICAgICAgfQogICAgfQogICAgLy9Bc3NlcnQgKGRpc3QgPT0gMjU2LCAidHJfc3RhdGljX2luaXQ6IGRpc3QgIT0gMjU2Iik7CiAgICBkaXN0ID4+PSA3OyAvKiBmcm9tIG5vdyBvbiwgYWxsIGRpc3RhbmNlcyBhcmUgZGl2aWRlZCBieSAxMjggKi8KICAgIGZvciAoOyBjb2RlIDwgRF9DT0RFUyQxOyBjb2RlKyspIHsKICAgICAgYmFzZV9kaXN0W2NvZGVdID0gZGlzdCA8PCA3OwogICAgICBmb3IgKG4gPSAwOyBuIDwgKDEgPDwgKGV4dHJhX2RiaXRzW2NvZGVdIC0gNykpOyBuKyspIHsKICAgICAgICBfZGlzdF9jb2RlWzI1NiArIGRpc3QrK10gPSBjb2RlOwogICAgICB9CiAgICB9CiAgICAvL0Fzc2VydCAoZGlzdCA9PSAyNTYsICJ0cl9zdGF0aWNfaW5pdDogMjU2K2Rpc3QgIT0gNTEyIik7CgogICAgLyogQ29uc3RydWN0IHRoZSBjb2RlcyBvZiB0aGUgc3RhdGljIGxpdGVyYWwgdHJlZSAqLwogICAgZm9yIChiaXRzID0gMDsgYml0cyA8PSBNQVhfQklUUyQxOyBiaXRzKyspIHsKICAgICAgYmxfY291bnRbYml0c10gPSAwOwogICAgfQoKICAgIG4gPSAwOwogICAgd2hpbGUgKG4gPD0gMTQzKSB7CiAgICAgIHN0YXRpY19sdHJlZVtuICogMiArIDFdLyouTGVuKi8gPSA4OwogICAgICBuKys7CiAgICAgIGJsX2NvdW50WzhdKys7CiAgICB9CiAgICB3aGlsZSAobiA8PSAyNTUpIHsKICAgICAgc3RhdGljX2x0cmVlW24gKiAyICsgMV0vKi5MZW4qLyA9IDk7CiAgICAgIG4rKzsKICAgICAgYmxfY291bnRbOV0rKzsKICAgIH0KICAgIHdoaWxlIChuIDw9IDI3OSkgewogICAgICBzdGF0aWNfbHRyZWVbbiAqIDIgKyAxXS8qLkxlbiovID0gNzsKICAgICAgbisrOwogICAgICBibF9jb3VudFs3XSsrOwogICAgfQogICAgd2hpbGUgKG4gPD0gMjg3KSB7CiAgICAgIHN0YXRpY19sdHJlZVtuICogMiArIDFdLyouTGVuKi8gPSA4OwogICAgICBuKys7CiAgICAgIGJsX2NvdW50WzhdKys7CiAgICB9CiAgICAvKiBDb2RlcyAyODYgYW5kIDI4NyBkbyBub3QgZXhpc3QsIGJ1dCB3ZSBtdXN0IGluY2x1ZGUgdGhlbSBpbiB0aGUKICAgICAqIHRyZWUgY29uc3RydWN0aW9uIHRvIGdldCBhIGNhbm9uaWNhbCBIdWZmbWFuIHRyZWUgKGxvbmdlc3QgY29kZQogICAgICogYWxsIG9uZXMpCiAgICAgKi8KICAgIGdlbl9jb2RlcyhzdGF0aWNfbHRyZWUsIExfQ09ERVMkMSArIDEsIGJsX2NvdW50KTsKCiAgICAvKiBUaGUgc3RhdGljIGRpc3RhbmNlIHRyZWUgaXMgdHJpdmlhbDogKi8KICAgIGZvciAobiA9IDA7IG4gPCBEX0NPREVTJDE7IG4rKykgewogICAgICBzdGF0aWNfZHRyZWVbbiAqIDIgKyAxXS8qLkxlbiovID0gNTsKICAgICAgc3RhdGljX2R0cmVlW24gKiAyXS8qLkNvZGUqLyA9IGJpX3JldmVyc2UobiwgNSk7CiAgICB9CgogICAgLy8gTm93IGRhdGEgcmVhZHkgYW5kIHdlIGNhbiBpbml0IHN0YXRpYyB0cmVlcwogICAgc3RhdGljX2xfZGVzYyA9IG5ldyBTdGF0aWNUcmVlRGVzYyhzdGF0aWNfbHRyZWUsIGV4dHJhX2xiaXRzLCBMSVRFUkFMUyQxICsgMSwgTF9DT0RFUyQxLCBNQVhfQklUUyQxKTsKICAgIHN0YXRpY19kX2Rlc2MgPSBuZXcgU3RhdGljVHJlZURlc2Moc3RhdGljX2R0cmVlLCBleHRyYV9kYml0cywgMCwgICAgICAgICAgRF9DT0RFUyQxLCBNQVhfQklUUyQxKTsKICAgIHN0YXRpY19ibF9kZXNjID0gbmV3IFN0YXRpY1RyZWVEZXNjKG5ldyBBcnJheSgwKSwgZXh0cmFfYmxiaXRzLCAwLCAgICAgICAgIEJMX0NPREVTJDEsIE1BWF9CTF9CSVRTKTsKCiAgICAvL3N0YXRpY19pbml0X2RvbmUgPSB0cnVlOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBJbml0aWFsaXplIGEgbmV3IGJsb2NrLgogICAqLwogIGNvbnN0IGluaXRfYmxvY2sgPSAocykgPT4gewoKICAgIGxldCBuOyAvKiBpdGVyYXRlcyBvdmVyIHRyZWUgZWxlbWVudHMgKi8KCiAgICAvKiBJbml0aWFsaXplIHRoZSB0cmVlcy4gKi8KICAgIGZvciAobiA9IDA7IG4gPCBMX0NPREVTJDE7ICBuKyspIHsgcy5keW5fbHRyZWVbbiAqIDJdLyouRnJlcSovID0gMDsgfQogICAgZm9yIChuID0gMDsgbiA8IERfQ09ERVMkMTsgIG4rKykgeyBzLmR5bl9kdHJlZVtuICogMl0vKi5GcmVxKi8gPSAwOyB9CiAgICBmb3IgKG4gPSAwOyBuIDwgQkxfQ09ERVMkMTsgbisrKSB7IHMuYmxfdHJlZVtuICogMl0vKi5GcmVxKi8gPSAwOyB9CgogICAgcy5keW5fbHRyZWVbRU5EX0JMT0NLICogMl0vKi5GcmVxKi8gPSAxOwogICAgcy5vcHRfbGVuID0gcy5zdGF0aWNfbGVuID0gMDsKICAgIHMubGFzdF9saXQgPSBzLm1hdGNoZXMgPSAwOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBGbHVzaCB0aGUgYml0IGJ1ZmZlciBhbmQgYWxpZ24gdGhlIG91dHB1dCBvbiBhIGJ5dGUgYm91bmRhcnkKICAgKi8KICBjb25zdCBiaV93aW5kdXAgPSAocykgPT4KICB7CiAgICBpZiAocy5iaV92YWxpZCA+IDgpIHsKICAgICAgcHV0X3Nob3J0KHMsIHMuYmlfYnVmKTsKICAgIH0gZWxzZSBpZiAocy5iaV92YWxpZCA+IDApIHsKICAgICAgLy9wdXRfYnl0ZShzLCAoQnl0ZSlzLT5iaV9idWYpOwogICAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9IHMuYmlfYnVmOwogICAgfQogICAgcy5iaV9idWYgPSAwOwogICAgcy5iaV92YWxpZCA9IDA7CiAgfTsKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogQ29weSBhIHN0b3JlZCBibG9jaywgc3RvcmluZyBmaXJzdCB0aGUgbGVuZ3RoIGFuZCBpdHMKICAgKiBvbmUncyBjb21wbGVtZW50IGlmIHJlcXVlc3RlZC4KICAgKi8KICBjb25zdCBjb3B5X2Jsb2NrID0gKHMsIGJ1ZiwgbGVuLCBoZWFkZXIpID0+CiAgLy9EZWZsYXRlU3RhdGUgKnM7CiAgLy9jaGFyZiAgICAqYnVmOyAgICAvKiB0aGUgaW5wdXQgZGF0YSAqLwogIC8vdW5zaWduZWQgbGVuOyAgICAgLyogaXRzIGxlbmd0aCAqLwogIC8vaW50ICAgICAgaGVhZGVyOyAgLyogdHJ1ZSBpZiBibG9jayBoZWFkZXIgbXVzdCBiZSB3cml0dGVuICovCiAgewogICAgYmlfd2luZHVwKHMpOyAgICAgICAgLyogYWxpZ24gb24gYnl0ZSBib3VuZGFyeSAqLwoKICAgIGlmIChoZWFkZXIpIHsKICAgICAgcHV0X3Nob3J0KHMsIGxlbik7CiAgICAgIHB1dF9zaG9ydChzLCB+bGVuKTsKICAgIH0KICAvLyAgd2hpbGUgKGxlbi0tKSB7CiAgLy8gICAgcHV0X2J5dGUocywgKmJ1ZisrKTsKICAvLyAgfQogICAgcy5wZW5kaW5nX2J1Zi5zZXQocy53aW5kb3cuc3ViYXJyYXkoYnVmLCBidWYgKyBsZW4pLCBzLnBlbmRpbmcpOwogICAgcy5wZW5kaW5nICs9IGxlbjsKICB9OwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBDb21wYXJlcyB0byBzdWJ0cmVlcywgdXNpbmcgdGhlIHRyZWUgZGVwdGggYXMgdGllIGJyZWFrZXIgd2hlbgogICAqIHRoZSBzdWJ0cmVlcyBoYXZlIGVxdWFsIGZyZXF1ZW5jeS4gVGhpcyBtaW5pbWl6ZXMgdGhlIHdvcnN0IGNhc2UgbGVuZ3RoLgogICAqLwogIGNvbnN0IHNtYWxsZXIgPSAodHJlZSwgbiwgbSwgZGVwdGgpID0+IHsKCiAgICBjb25zdCBfbjIgPSBuICogMjsKICAgIGNvbnN0IF9tMiA9IG0gKiAyOwogICAgcmV0dXJuICh0cmVlW19uMl0vKi5GcmVxKi8gPCB0cmVlW19tMl0vKi5GcmVxKi8gfHwKICAgICAgICAgICAodHJlZVtfbjJdLyouRnJlcSovID09PSB0cmVlW19tMl0vKi5GcmVxKi8gJiYgZGVwdGhbbl0gPD0gZGVwdGhbbV0pKTsKICB9OwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBSZXN0b3JlIHRoZSBoZWFwIHByb3BlcnR5IGJ5IG1vdmluZyBkb3duIHRoZSB0cmVlIHN0YXJ0aW5nIGF0IG5vZGUgaywKICAgKiBleGNoYW5naW5nIGEgbm9kZSB3aXRoIHRoZSBzbWFsbGVzdCBvZiBpdHMgdHdvIHNvbnMgaWYgbmVjZXNzYXJ5LCBzdG9wcGluZwogICAqIHdoZW4gdGhlIGhlYXAgcHJvcGVydHkgaXMgcmUtZXN0YWJsaXNoZWQgKGVhY2ggZmF0aGVyIHNtYWxsZXIgdGhhbiBpdHMKICAgKiB0d28gc29ucykuCiAgICovCiAgY29uc3QgcHFkb3duaGVhcCA9IChzLCB0cmVlLCBrKSA9PgogIC8vICAgIGRlZmxhdGVfc3RhdGUgKnM7CiAgLy8gICAgY3RfZGF0YSAqdHJlZTsgIC8qIHRoZSB0cmVlIHRvIHJlc3RvcmUgKi8KICAvLyAgICBpbnQgazsgICAgICAgICAgICAgICAvKiBub2RlIHRvIG1vdmUgZG93biAqLwogIHsKICAgIGNvbnN0IHYgPSBzLmhlYXBba107CiAgICBsZXQgaiA9IGsgPDwgMTsgIC8qIGxlZnQgc29uIG9mIGsgKi8KICAgIHdoaWxlIChqIDw9IHMuaGVhcF9sZW4pIHsKICAgICAgLyogU2V0IGogdG8gdGhlIHNtYWxsZXN0IG9mIHRoZSB0d28gc29uczogKi8KICAgICAgaWYgKGogPCBzLmhlYXBfbGVuICYmCiAgICAgICAgc21hbGxlcih0cmVlLCBzLmhlYXBbaiArIDFdLCBzLmhlYXBbal0sIHMuZGVwdGgpKSB7CiAgICAgICAgaisrOwogICAgICB9CiAgICAgIC8qIEV4aXQgaWYgdiBpcyBzbWFsbGVyIHRoYW4gYm90aCBzb25zICovCiAgICAgIGlmIChzbWFsbGVyKHRyZWUsIHYsIHMuaGVhcFtqXSwgcy5kZXB0aCkpIHsgYnJlYWs7IH0KCiAgICAgIC8qIEV4Y2hhbmdlIHYgd2l0aCB0aGUgc21hbGxlc3Qgc29uICovCiAgICAgIHMuaGVhcFtrXSA9IHMuaGVhcFtqXTsKICAgICAgayA9IGo7CgogICAgICAvKiBBbmQgY29udGludWUgZG93biB0aGUgdHJlZSwgc2V0dGluZyBqIHRvIHRoZSBsZWZ0IHNvbiBvZiBrICovCiAgICAgIGogPDw9IDE7CiAgICB9CiAgICBzLmhlYXBba10gPSB2OwogIH07CgoKICAvLyBpbmxpbmVkIG1hbnVhbGx5CiAgLy8gY29uc3QgU01BTExFU1QgPSAxOwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBTZW5kIHRoZSBibG9jayBkYXRhIGNvbXByZXNzZWQgdXNpbmcgdGhlIGdpdmVuIEh1ZmZtYW4gdHJlZXMKICAgKi8KICBjb25zdCBjb21wcmVzc19ibG9jayA9IChzLCBsdHJlZSwgZHRyZWUpID0+CiAgLy8gICAgZGVmbGF0ZV9zdGF0ZSAqczsKICAvLyAgICBjb25zdCBjdF9kYXRhICpsdHJlZTsgLyogbGl0ZXJhbCB0cmVlICovCiAgLy8gICAgY29uc3QgY3RfZGF0YSAqZHRyZWU7IC8qIGRpc3RhbmNlIHRyZWUgKi8KICB7CiAgICBsZXQgZGlzdDsgICAgICAgICAgIC8qIGRpc3RhbmNlIG9mIG1hdGNoZWQgc3RyaW5nICovCiAgICBsZXQgbGM7ICAgICAgICAgICAgIC8qIG1hdGNoIGxlbmd0aCBvciB1bm1hdGNoZWQgY2hhciAoaWYgZGlzdCA9PSAwKSAqLwogICAgbGV0IGx4ID0gMDsgICAgICAgICAvKiBydW5uaW5nIGluZGV4IGluIGxfYnVmICovCiAgICBsZXQgY29kZTsgICAgICAgICAgIC8qIHRoZSBjb2RlIHRvIHNlbmQgKi8KICAgIGxldCBleHRyYTsgICAgICAgICAgLyogbnVtYmVyIG9mIGV4dHJhIGJpdHMgdG8gc2VuZCAqLwoKICAgIGlmIChzLmxhc3RfbGl0ICE9PSAwKSB7CiAgICAgIGRvIHsKICAgICAgICBkaXN0ID0gKHMucGVuZGluZ19idWZbcy5kX2J1ZiArIGx4ICogMl0gPDwgOCkgfCAocy5wZW5kaW5nX2J1ZltzLmRfYnVmICsgbHggKiAyICsgMV0pOwogICAgICAgIGxjID0gcy5wZW5kaW5nX2J1ZltzLmxfYnVmICsgbHhdOwogICAgICAgIGx4Kys7CgogICAgICAgIGlmIChkaXN0ID09PSAwKSB7CiAgICAgICAgICBzZW5kX2NvZGUocywgbGMsIGx0cmVlKTsgLyogc2VuZCBhIGxpdGVyYWwgYnl0ZSAqLwogICAgICAgICAgLy9UcmFjZWN2KGlzZ3JhcGgobGMpLCAoc3RkZXJyLCIgJyVjJyAiLCBsYykpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvKiBIZXJlLCBsYyBpcyB0aGUgbWF0Y2ggbGVuZ3RoIC0gTUlOX01BVENIICovCiAgICAgICAgICBjb2RlID0gX2xlbmd0aF9jb2RlW2xjXTsKICAgICAgICAgIHNlbmRfY29kZShzLCBjb2RlICsgTElURVJBTFMkMSArIDEsIGx0cmVlKTsgLyogc2VuZCB0aGUgbGVuZ3RoIGNvZGUgKi8KICAgICAgICAgIGV4dHJhID0gZXh0cmFfbGJpdHNbY29kZV07CiAgICAgICAgICBpZiAoZXh0cmEgIT09IDApIHsKICAgICAgICAgICAgbGMgLT0gYmFzZV9sZW5ndGhbY29kZV07CiAgICAgICAgICAgIHNlbmRfYml0cyhzLCBsYywgZXh0cmEpOyAgICAgICAvKiBzZW5kIHRoZSBleHRyYSBsZW5ndGggYml0cyAqLwogICAgICAgICAgfQogICAgICAgICAgZGlzdC0tOyAvKiBkaXN0IGlzIG5vdyB0aGUgbWF0Y2ggZGlzdGFuY2UgLSAxICovCiAgICAgICAgICBjb2RlID0gZF9jb2RlKGRpc3QpOwogICAgICAgICAgLy9Bc3NlcnQgKGNvZGUgPCBEX0NPREVTLCAiYmFkIGRfY29kZSIpOwoKICAgICAgICAgIHNlbmRfY29kZShzLCBjb2RlLCBkdHJlZSk7ICAgICAgIC8qIHNlbmQgdGhlIGRpc3RhbmNlIGNvZGUgKi8KICAgICAgICAgIGV4dHJhID0gZXh0cmFfZGJpdHNbY29kZV07CiAgICAgICAgICBpZiAoZXh0cmEgIT09IDApIHsKICAgICAgICAgICAgZGlzdCAtPSBiYXNlX2Rpc3RbY29kZV07CiAgICAgICAgICAgIHNlbmRfYml0cyhzLCBkaXN0LCBleHRyYSk7ICAgLyogc2VuZCB0aGUgZXh0cmEgZGlzdGFuY2UgYml0cyAqLwogICAgICAgICAgfQogICAgICAgIH0gLyogbGl0ZXJhbCBvciBtYXRjaCBwYWlyID8gKi8KCiAgICAgICAgLyogQ2hlY2sgdGhhdCB0aGUgb3ZlcmxheSBiZXR3ZWVuIHBlbmRpbmdfYnVmIGFuZCBkX2J1ZitsX2J1ZiBpcyBvazogKi8KICAgICAgICAvL0Fzc2VydCgodUludCkocy0+cGVuZGluZykgPCBzLT5saXRfYnVmc2l6ZSArIDIqbHgsCiAgICAgICAgLy8gICAgICAgInBlbmRpbmdCdWYgb3ZlcmZsb3ciKTsKCiAgICAgIH0gd2hpbGUgKGx4IDwgcy5sYXN0X2xpdCk7CiAgICB9CgogICAgc2VuZF9jb2RlKHMsIEVORF9CTE9DSywgbHRyZWUpOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBDb25zdHJ1Y3Qgb25lIEh1ZmZtYW4gdHJlZSBhbmQgYXNzaWducyB0aGUgY29kZSBiaXQgc3RyaW5ncyBhbmQgbGVuZ3Rocy4KICAgKiBVcGRhdGUgdGhlIHRvdGFsIGJpdCBsZW5ndGggZm9yIHRoZSBjdXJyZW50IGJsb2NrLgogICAqIElOIGFzc2VydGlvbjogdGhlIGZpZWxkIGZyZXEgaXMgc2V0IGZvciBhbGwgdHJlZSBlbGVtZW50cy4KICAgKiBPVVQgYXNzZXJ0aW9uczogdGhlIGZpZWxkcyBsZW4gYW5kIGNvZGUgYXJlIHNldCB0byB0aGUgb3B0aW1hbCBiaXQgbGVuZ3RoCiAgICogICAgIGFuZCBjb3JyZXNwb25kaW5nIGNvZGUuIFRoZSBsZW5ndGggb3B0X2xlbiBpcyB1cGRhdGVkOyBzdGF0aWNfbGVuIGlzCiAgICogICAgIGFsc28gdXBkYXRlZCBpZiBzdHJlZSBpcyBub3QgbnVsbC4gVGhlIGZpZWxkIG1heF9jb2RlIGlzIHNldC4KICAgKi8KICBjb25zdCBidWlsZF90cmVlID0gKHMsIGRlc2MpID0+CiAgLy8gICAgZGVmbGF0ZV9zdGF0ZSAqczsKICAvLyAgICB0cmVlX2Rlc2MgKmRlc2M7IC8qIHRoZSB0cmVlIGRlc2NyaXB0b3IgKi8KICB7CiAgICBjb25zdCB0cmVlICAgICA9IGRlc2MuZHluX3RyZWU7CiAgICBjb25zdCBzdHJlZSAgICA9IGRlc2Muc3RhdF9kZXNjLnN0YXRpY190cmVlOwogICAgY29uc3QgaGFzX3N0cmVlID0gZGVzYy5zdGF0X2Rlc2MuaGFzX3N0cmVlOwogICAgY29uc3QgZWxlbXMgICAgPSBkZXNjLnN0YXRfZGVzYy5lbGVtczsKICAgIGxldCBuLCBtOyAgICAgICAgICAvKiBpdGVyYXRlIG92ZXIgaGVhcCBlbGVtZW50cyAqLwogICAgbGV0IG1heF9jb2RlID0gLTE7IC8qIGxhcmdlc3QgY29kZSB3aXRoIG5vbiB6ZXJvIGZyZXF1ZW5jeSAqLwogICAgbGV0IG5vZGU7ICAgICAgICAgIC8qIG5ldyBub2RlIGJlaW5nIGNyZWF0ZWQgKi8KCiAgICAvKiBDb25zdHJ1Y3QgdGhlIGluaXRpYWwgaGVhcCwgd2l0aCBsZWFzdCBmcmVxdWVudCBlbGVtZW50IGluCiAgICAgKiBoZWFwW1NNQUxMRVNUXS4gVGhlIHNvbnMgb2YgaGVhcFtuXSBhcmUgaGVhcFsyKm5dIGFuZCBoZWFwWzIqbisxXS4KICAgICAqIGhlYXBbMF0gaXMgbm90IHVzZWQuCiAgICAgKi8KICAgIHMuaGVhcF9sZW4gPSAwOwogICAgcy5oZWFwX21heCA9IEhFQVBfU0laRSQxOwoKICAgIGZvciAobiA9IDA7IG4gPCBlbGVtczsgbisrKSB7CiAgICAgIGlmICh0cmVlW24gKiAyXS8qLkZyZXEqLyAhPT0gMCkgewogICAgICAgIHMuaGVhcFsrK3MuaGVhcF9sZW5dID0gbWF4X2NvZGUgPSBuOwogICAgICAgIHMuZGVwdGhbbl0gPSAwOwoKICAgICAgfSBlbHNlIHsKICAgICAgICB0cmVlW24gKiAyICsgMV0vKi5MZW4qLyA9IDA7CiAgICAgIH0KICAgIH0KCiAgICAvKiBUaGUgcGt6aXAgZm9ybWF0IHJlcXVpcmVzIHRoYXQgYXQgbGVhc3Qgb25lIGRpc3RhbmNlIGNvZGUgZXhpc3RzLAogICAgICogYW5kIHRoYXQgYXQgbGVhc3Qgb25lIGJpdCBzaG91bGQgYmUgc2VudCBldmVuIGlmIHRoZXJlIGlzIG9ubHkgb25lCiAgICAgKiBwb3NzaWJsZSBjb2RlLiBTbyB0byBhdm9pZCBzcGVjaWFsIGNoZWNrcyBsYXRlciBvbiB3ZSBmb3JjZSBhdCBsZWFzdAogICAgICogdHdvIGNvZGVzIG9mIG5vbiB6ZXJvIGZyZXF1ZW5jeS4KICAgICAqLwogICAgd2hpbGUgKHMuaGVhcF9sZW4gPCAyKSB7CiAgICAgIG5vZGUgPSBzLmhlYXBbKytzLmhlYXBfbGVuXSA9IChtYXhfY29kZSA8IDIgPyArK21heF9jb2RlIDogMCk7CiAgICAgIHRyZWVbbm9kZSAqIDJdLyouRnJlcSovID0gMTsKICAgICAgcy5kZXB0aFtub2RlXSA9IDA7CiAgICAgIHMub3B0X2xlbi0tOwoKICAgICAgaWYgKGhhc19zdHJlZSkgewogICAgICAgIHMuc3RhdGljX2xlbiAtPSBzdHJlZVtub2RlICogMiArIDFdLyouTGVuKi87CiAgICAgIH0KICAgICAgLyogbm9kZSBpcyAwIG9yIDEgc28gaXQgZG9lcyBub3QgaGF2ZSBleHRyYSBiaXRzICovCiAgICB9CiAgICBkZXNjLm1heF9jb2RlID0gbWF4X2NvZGU7CgogICAgLyogVGhlIGVsZW1lbnRzIGhlYXBbaGVhcF9sZW4vMisxIC4uIGhlYXBfbGVuXSBhcmUgbGVhdmVzIG9mIHRoZSB0cmVlLAogICAgICogZXN0YWJsaXNoIHN1Yi1oZWFwcyBvZiBpbmNyZWFzaW5nIGxlbmd0aHM6CiAgICAgKi8KICAgIGZvciAobiA9IChzLmhlYXBfbGVuID4+IDEvKmludCAvMiovKTsgbiA+PSAxOyBuLS0pIHsgcHFkb3duaGVhcChzLCB0cmVlLCBuKTsgfQoKICAgIC8qIENvbnN0cnVjdCB0aGUgSHVmZm1hbiB0cmVlIGJ5IHJlcGVhdGVkbHkgY29tYmluaW5nIHRoZSBsZWFzdCB0d28KICAgICAqIGZyZXF1ZW50IG5vZGVzLgogICAgICovCiAgICBub2RlID0gZWxlbXM7ICAgICAgICAgICAgICAvKiBuZXh0IGludGVybmFsIG5vZGUgb2YgdGhlIHRyZWUgKi8KICAgIGRvIHsKICAgICAgLy9wcXJlbW92ZShzLCB0cmVlLCBuKTsgIC8qIG4gPSBub2RlIG9mIGxlYXN0IGZyZXF1ZW5jeSAqLwogICAgICAvKioqIHBxcmVtb3ZlICoqKi8KICAgICAgbiA9IHMuaGVhcFsxLypTTUFMTEVTVCovXTsKICAgICAgcy5oZWFwWzEvKlNNQUxMRVNUKi9dID0gcy5oZWFwW3MuaGVhcF9sZW4tLV07CiAgICAgIHBxZG93bmhlYXAocywgdHJlZSwgMS8qU01BTExFU1QqLyk7CiAgICAgIC8qKiovCgogICAgICBtID0gcy5oZWFwWzEvKlNNQUxMRVNUKi9dOyAvKiBtID0gbm9kZSBvZiBuZXh0IGxlYXN0IGZyZXF1ZW5jeSAqLwoKICAgICAgcy5oZWFwWy0tcy5oZWFwX21heF0gPSBuOyAvKiBrZWVwIHRoZSBub2RlcyBzb3J0ZWQgYnkgZnJlcXVlbmN5ICovCiAgICAgIHMuaGVhcFstLXMuaGVhcF9tYXhdID0gbTsKCiAgICAgIC8qIENyZWF0ZSBhIG5ldyBub2RlIGZhdGhlciBvZiBuIGFuZCBtICovCiAgICAgIHRyZWVbbm9kZSAqIDJdLyouRnJlcSovID0gdHJlZVtuICogMl0vKi5GcmVxKi8gKyB0cmVlW20gKiAyXS8qLkZyZXEqLzsKICAgICAgcy5kZXB0aFtub2RlXSA9IChzLmRlcHRoW25dID49IHMuZGVwdGhbbV0gPyBzLmRlcHRoW25dIDogcy5kZXB0aFttXSkgKyAxOwogICAgICB0cmVlW24gKiAyICsgMV0vKi5EYWQqLyA9IHRyZWVbbSAqIDIgKyAxXS8qLkRhZCovID0gbm9kZTsKCiAgICAgIC8qIGFuZCBpbnNlcnQgdGhlIG5ldyBub2RlIGluIHRoZSBoZWFwICovCiAgICAgIHMuaGVhcFsxLypTTUFMTEVTVCovXSA9IG5vZGUrKzsKICAgICAgcHFkb3duaGVhcChzLCB0cmVlLCAxLypTTUFMTEVTVCovKTsKCiAgICB9IHdoaWxlIChzLmhlYXBfbGVuID49IDIpOwoKICAgIHMuaGVhcFstLXMuaGVhcF9tYXhdID0gcy5oZWFwWzEvKlNNQUxMRVNUKi9dOwoKICAgIC8qIEF0IHRoaXMgcG9pbnQsIHRoZSBmaWVsZHMgZnJlcSBhbmQgZGFkIGFyZSBzZXQuIFdlIGNhbiBub3cKICAgICAqIGdlbmVyYXRlIHRoZSBiaXQgbGVuZ3Rocy4KICAgICAqLwogICAgZ2VuX2JpdGxlbihzLCBkZXNjKTsKCiAgICAvKiBUaGUgZmllbGQgbGVuIGlzIG5vdyBzZXQsIHdlIGNhbiBnZW5lcmF0ZSB0aGUgYml0IGNvZGVzICovCiAgICBnZW5fY29kZXModHJlZSwgbWF4X2NvZGUsIHMuYmxfY291bnQpOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBTY2FuIGEgbGl0ZXJhbCBvciBkaXN0YW5jZSB0cmVlIHRvIGRldGVybWluZSB0aGUgZnJlcXVlbmNpZXMgb2YgdGhlIGNvZGVzCiAgICogaW4gdGhlIGJpdCBsZW5ndGggdHJlZS4KICAgKi8KICBjb25zdCBzY2FuX3RyZWUgPSAocywgdHJlZSwgbWF4X2NvZGUpID0+CiAgLy8gICAgZGVmbGF0ZV9zdGF0ZSAqczsKICAvLyAgICBjdF9kYXRhICp0cmVlOyAgIC8qIHRoZSB0cmVlIHRvIGJlIHNjYW5uZWQgKi8KICAvLyAgICBpbnQgbWF4X2NvZGU7ICAgIC8qIGFuZCBpdHMgbGFyZ2VzdCBjb2RlIG9mIG5vbiB6ZXJvIGZyZXF1ZW5jeSAqLwogIHsKICAgIGxldCBuOyAgICAgICAgICAgICAgICAgICAgIC8qIGl0ZXJhdGVzIG92ZXIgYWxsIHRyZWUgZWxlbWVudHMgKi8KICAgIGxldCBwcmV2bGVuID0gLTE7ICAgICAgICAgIC8qIGxhc3QgZW1pdHRlZCBsZW5ndGggKi8KICAgIGxldCBjdXJsZW47ICAgICAgICAgICAgICAgIC8qIGxlbmd0aCBvZiBjdXJyZW50IGNvZGUgKi8KCiAgICBsZXQgbmV4dGxlbiA9IHRyZWVbMCAqIDIgKyAxXS8qLkxlbiovOyAvKiBsZW5ndGggb2YgbmV4dCBjb2RlICovCgogICAgbGV0IGNvdW50ID0gMDsgICAgICAgICAgICAgLyogcmVwZWF0IGNvdW50IG9mIHRoZSBjdXJyZW50IGNvZGUgKi8KICAgIGxldCBtYXhfY291bnQgPSA3OyAgICAgICAgIC8qIG1heCByZXBlYXQgY291bnQgKi8KICAgIGxldCBtaW5fY291bnQgPSA0OyAgICAgICAgIC8qIG1pbiByZXBlYXQgY291bnQgKi8KCiAgICBpZiAobmV4dGxlbiA9PT0gMCkgewogICAgICBtYXhfY291bnQgPSAxMzg7CiAgICAgIG1pbl9jb3VudCA9IDM7CiAgICB9CiAgICB0cmVlWyhtYXhfY29kZSArIDEpICogMiArIDFdLyouTGVuKi8gPSAweGZmZmY7IC8qIGd1YXJkICovCgogICAgZm9yIChuID0gMDsgbiA8PSBtYXhfY29kZTsgbisrKSB7CiAgICAgIGN1cmxlbiA9IG5leHRsZW47CiAgICAgIG5leHRsZW4gPSB0cmVlWyhuICsgMSkgKiAyICsgMV0vKi5MZW4qLzsKCiAgICAgIGlmICgrK2NvdW50IDwgbWF4X2NvdW50ICYmIGN1cmxlbiA9PT0gbmV4dGxlbikgewogICAgICAgIGNvbnRpbnVlOwoKICAgICAgfSBlbHNlIGlmIChjb3VudCA8IG1pbl9jb3VudCkgewogICAgICAgIHMuYmxfdHJlZVtjdXJsZW4gKiAyXS8qLkZyZXEqLyArPSBjb3VudDsKCiAgICAgIH0gZWxzZSBpZiAoY3VybGVuICE9PSAwKSB7CgogICAgICAgIGlmIChjdXJsZW4gIT09IHByZXZsZW4pIHsgcy5ibF90cmVlW2N1cmxlbiAqIDJdLyouRnJlcSovKys7IH0KICAgICAgICBzLmJsX3RyZWVbUkVQXzNfNiAqIDJdLyouRnJlcSovKys7CgogICAgICB9IGVsc2UgaWYgKGNvdW50IDw9IDEwKSB7CiAgICAgICAgcy5ibF90cmVlW1JFUFpfM18xMCAqIDJdLyouRnJlcSovKys7CgogICAgICB9IGVsc2UgewogICAgICAgIHMuYmxfdHJlZVtSRVBaXzExXzEzOCAqIDJdLyouRnJlcSovKys7CiAgICAgIH0KCiAgICAgIGNvdW50ID0gMDsKICAgICAgcHJldmxlbiA9IGN1cmxlbjsKCiAgICAgIGlmIChuZXh0bGVuID09PSAwKSB7CiAgICAgICAgbWF4X2NvdW50ID0gMTM4OwogICAgICAgIG1pbl9jb3VudCA9IDM7CgogICAgICB9IGVsc2UgaWYgKGN1cmxlbiA9PT0gbmV4dGxlbikgewogICAgICAgIG1heF9jb3VudCA9IDY7CiAgICAgICAgbWluX2NvdW50ID0gMzsKCiAgICAgIH0gZWxzZSB7CiAgICAgICAgbWF4X2NvdW50ID0gNzsKICAgICAgICBtaW5fY291bnQgPSA0OwogICAgICB9CiAgICB9CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIFNlbmQgYSBsaXRlcmFsIG9yIGRpc3RhbmNlIHRyZWUgaW4gY29tcHJlc3NlZCBmb3JtLCB1c2luZyB0aGUgY29kZXMgaW4KICAgKiBibF90cmVlLgogICAqLwogIGNvbnN0IHNlbmRfdHJlZSA9IChzLCB0cmVlLCBtYXhfY29kZSkgPT4KICAvLyAgICBkZWZsYXRlX3N0YXRlICpzOwogIC8vICAgIGN0X2RhdGEgKnRyZWU7IC8qIHRoZSB0cmVlIHRvIGJlIHNjYW5uZWQgKi8KICAvLyAgICBpbnQgbWF4X2NvZGU7ICAgICAgIC8qIGFuZCBpdHMgbGFyZ2VzdCBjb2RlIG9mIG5vbiB6ZXJvIGZyZXF1ZW5jeSAqLwogIHsKICAgIGxldCBuOyAgICAgICAgICAgICAgICAgICAgIC8qIGl0ZXJhdGVzIG92ZXIgYWxsIHRyZWUgZWxlbWVudHMgKi8KICAgIGxldCBwcmV2bGVuID0gLTE7ICAgICAgICAgIC8qIGxhc3QgZW1pdHRlZCBsZW5ndGggKi8KICAgIGxldCBjdXJsZW47ICAgICAgICAgICAgICAgIC8qIGxlbmd0aCBvZiBjdXJyZW50IGNvZGUgKi8KCiAgICBsZXQgbmV4dGxlbiA9IHRyZWVbMCAqIDIgKyAxXS8qLkxlbiovOyAvKiBsZW5ndGggb2YgbmV4dCBjb2RlICovCgogICAgbGV0IGNvdW50ID0gMDsgICAgICAgICAgICAgLyogcmVwZWF0IGNvdW50IG9mIHRoZSBjdXJyZW50IGNvZGUgKi8KICAgIGxldCBtYXhfY291bnQgPSA3OyAgICAgICAgIC8qIG1heCByZXBlYXQgY291bnQgKi8KICAgIGxldCBtaW5fY291bnQgPSA0OyAgICAgICAgIC8qIG1pbiByZXBlYXQgY291bnQgKi8KCiAgICAvKiB0cmVlW21heF9jb2RlKzFdLkxlbiA9IC0xOyAqLyAgLyogZ3VhcmQgYWxyZWFkeSBzZXQgKi8KICAgIGlmIChuZXh0bGVuID09PSAwKSB7CiAgICAgIG1heF9jb3VudCA9IDEzODsKICAgICAgbWluX2NvdW50ID0gMzsKICAgIH0KCiAgICBmb3IgKG4gPSAwOyBuIDw9IG1heF9jb2RlOyBuKyspIHsKICAgICAgY3VybGVuID0gbmV4dGxlbjsKICAgICAgbmV4dGxlbiA9IHRyZWVbKG4gKyAxKSAqIDIgKyAxXS8qLkxlbiovOwoKICAgICAgaWYgKCsrY291bnQgPCBtYXhfY291bnQgJiYgY3VybGVuID09PSBuZXh0bGVuKSB7CiAgICAgICAgY29udGludWU7CgogICAgICB9IGVsc2UgaWYgKGNvdW50IDwgbWluX2NvdW50KSB7CiAgICAgICAgZG8geyBzZW5kX2NvZGUocywgY3VybGVuLCBzLmJsX3RyZWUpOyB9IHdoaWxlICgtLWNvdW50ICE9PSAwKTsKCiAgICAgIH0gZWxzZSBpZiAoY3VybGVuICE9PSAwKSB7CiAgICAgICAgaWYgKGN1cmxlbiAhPT0gcHJldmxlbikgewogICAgICAgICAgc2VuZF9jb2RlKHMsIGN1cmxlbiwgcy5ibF90cmVlKTsKICAgICAgICAgIGNvdW50LS07CiAgICAgICAgfQogICAgICAgIC8vQXNzZXJ0KGNvdW50ID49IDMgJiYgY291bnQgPD0gNiwgIiAzXzY/Iik7CiAgICAgICAgc2VuZF9jb2RlKHMsIFJFUF8zXzYsIHMuYmxfdHJlZSk7CiAgICAgICAgc2VuZF9iaXRzKHMsIGNvdW50IC0gMywgMik7CgogICAgICB9IGVsc2UgaWYgKGNvdW50IDw9IDEwKSB7CiAgICAgICAgc2VuZF9jb2RlKHMsIFJFUFpfM18xMCwgcy5ibF90cmVlKTsKICAgICAgICBzZW5kX2JpdHMocywgY291bnQgLSAzLCAzKTsKCiAgICAgIH0gZWxzZSB7CiAgICAgICAgc2VuZF9jb2RlKHMsIFJFUFpfMTFfMTM4LCBzLmJsX3RyZWUpOwogICAgICAgIHNlbmRfYml0cyhzLCBjb3VudCAtIDExLCA3KTsKICAgICAgfQoKICAgICAgY291bnQgPSAwOwogICAgICBwcmV2bGVuID0gY3VybGVuOwogICAgICBpZiAobmV4dGxlbiA9PT0gMCkgewogICAgICAgIG1heF9jb3VudCA9IDEzODsKICAgICAgICBtaW5fY291bnQgPSAzOwoKICAgICAgfSBlbHNlIGlmIChjdXJsZW4gPT09IG5leHRsZW4pIHsKICAgICAgICBtYXhfY291bnQgPSA2OwogICAgICAgIG1pbl9jb3VudCA9IDM7CgogICAgICB9IGVsc2UgewogICAgICAgIG1heF9jb3VudCA9IDc7CiAgICAgICAgbWluX2NvdW50ID0gNDsKICAgICAgfQogICAgfQogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBDb25zdHJ1Y3QgdGhlIEh1ZmZtYW4gdHJlZSBmb3IgdGhlIGJpdCBsZW5ndGhzIGFuZCByZXR1cm4gdGhlIGluZGV4IGluCiAgICogYmxfb3JkZXIgb2YgdGhlIGxhc3QgYml0IGxlbmd0aCBjb2RlIHRvIHNlbmQuCiAgICovCiAgY29uc3QgYnVpbGRfYmxfdHJlZSA9IChzKSA9PiB7CgogICAgbGV0IG1heF9ibGluZGV4OyAgLyogaW5kZXggb2YgbGFzdCBiaXQgbGVuZ3RoIGNvZGUgb2Ygbm9uIHplcm8gZnJlcSAqLwoKICAgIC8qIERldGVybWluZSB0aGUgYml0IGxlbmd0aCBmcmVxdWVuY2llcyBmb3IgbGl0ZXJhbCBhbmQgZGlzdGFuY2UgdHJlZXMgKi8KICAgIHNjYW5fdHJlZShzLCBzLmR5bl9sdHJlZSwgcy5sX2Rlc2MubWF4X2NvZGUpOwogICAgc2Nhbl90cmVlKHMsIHMuZHluX2R0cmVlLCBzLmRfZGVzYy5tYXhfY29kZSk7CgogICAgLyogQnVpbGQgdGhlIGJpdCBsZW5ndGggdHJlZTogKi8KICAgIGJ1aWxkX3RyZWUocywgcy5ibF9kZXNjKTsKICAgIC8qIG9wdF9sZW4gbm93IGluY2x1ZGVzIHRoZSBsZW5ndGggb2YgdGhlIHRyZWUgcmVwcmVzZW50YXRpb25zLCBleGNlcHQKICAgICAqIHRoZSBsZW5ndGhzIG9mIHRoZSBiaXQgbGVuZ3RocyBjb2RlcyBhbmQgdGhlIDUrNSs0IGJpdHMgZm9yIHRoZSBjb3VudHMuCiAgICAgKi8KCiAgICAvKiBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBiaXQgbGVuZ3RoIGNvZGVzIHRvIHNlbmQuIFRoZSBwa3ppcCBmb3JtYXQKICAgICAqIHJlcXVpcmVzIHRoYXQgYXQgbGVhc3QgNCBiaXQgbGVuZ3RoIGNvZGVzIGJlIHNlbnQuIChhcHBub3RlLnR4dCBzYXlzCiAgICAgKiAzIGJ1dCB0aGUgYWN0dWFsIHZhbHVlIHVzZWQgaXMgNC4pCiAgICAgKi8KICAgIGZvciAobWF4X2JsaW5kZXggPSBCTF9DT0RFUyQxIC0gMTsgbWF4X2JsaW5kZXggPj0gMzsgbWF4X2JsaW5kZXgtLSkgewogICAgICBpZiAocy5ibF90cmVlW2JsX29yZGVyW21heF9ibGluZGV4XSAqIDIgKyAxXS8qLkxlbiovICE9PSAwKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIC8qIFVwZGF0ZSBvcHRfbGVuIHRvIGluY2x1ZGUgdGhlIGJpdCBsZW5ndGggdHJlZSBhbmQgY291bnRzICovCiAgICBzLm9wdF9sZW4gKz0gMyAqIChtYXhfYmxpbmRleCArIDEpICsgNSArIDUgKyA0OwogICAgLy9UcmFjZXYoKHN0ZGVyciwgIlxuZHluIHRyZWVzOiBkeW4gJWxkLCBzdGF0ICVsZCIsCiAgICAvLyAgICAgICAgcy0+b3B0X2xlbiwgcy0+c3RhdGljX2xlbikpOwoKICAgIHJldHVybiBtYXhfYmxpbmRleDsKICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogU2VuZCB0aGUgaGVhZGVyIGZvciBhIGJsb2NrIHVzaW5nIGR5bmFtaWMgSHVmZm1hbiB0cmVlczogdGhlIGNvdW50cywgdGhlCiAgICogbGVuZ3RocyBvZiB0aGUgYml0IGxlbmd0aCBjb2RlcywgdGhlIGxpdGVyYWwgdHJlZSBhbmQgdGhlIGRpc3RhbmNlIHRyZWUuCiAgICogSU4gYXNzZXJ0aW9uOiBsY29kZXMgPj0gMjU3LCBkY29kZXMgPj0gMSwgYmxjb2RlcyA+PSA0LgogICAqLwogIGNvbnN0IHNlbmRfYWxsX3RyZWVzID0gKHMsIGxjb2RlcywgZGNvZGVzLCBibGNvZGVzKSA9PgogIC8vICAgIGRlZmxhdGVfc3RhdGUgKnM7CiAgLy8gICAgaW50IGxjb2RlcywgZGNvZGVzLCBibGNvZGVzOyAvKiBudW1iZXIgb2YgY29kZXMgZm9yIGVhY2ggdHJlZSAqLwogIHsKICAgIGxldCByYW5rOyAgICAgICAgICAgICAgICAgICAgLyogaW5kZXggaW4gYmxfb3JkZXIgKi8KCiAgICAvL0Fzc2VydCAobGNvZGVzID49IDI1NyAmJiBkY29kZXMgPj0gMSAmJiBibGNvZGVzID49IDQsICJub3QgZW5vdWdoIGNvZGVzIik7CiAgICAvL0Fzc2VydCAobGNvZGVzIDw9IExfQ09ERVMgJiYgZGNvZGVzIDw9IERfQ09ERVMgJiYgYmxjb2RlcyA8PSBCTF9DT0RFUywKICAgIC8vICAgICAgICAidG9vIG1hbnkgY29kZXMiKTsKICAgIC8vVHJhY2V2KChzdGRlcnIsICJcbmJsIGNvdW50czogIikpOwogICAgc2VuZF9iaXRzKHMsIGxjb2RlcyAtIDI1NywgNSk7IC8qIG5vdCArMjU1IGFzIHN0YXRlZCBpbiBhcHBub3RlLnR4dCAqLwogICAgc2VuZF9iaXRzKHMsIGRjb2RlcyAtIDEsICAgNSk7CiAgICBzZW5kX2JpdHMocywgYmxjb2RlcyAtIDQsICA0KTsgLyogbm90IC0zIGFzIHN0YXRlZCBpbiBhcHBub3RlLnR4dCAqLwogICAgZm9yIChyYW5rID0gMDsgcmFuayA8IGJsY29kZXM7IHJhbmsrKykgewogICAgICAvL1RyYWNldigoc3RkZXJyLCAiXG5ibCBjb2RlICUyZCAiLCBibF9vcmRlcltyYW5rXSkpOwogICAgICBzZW5kX2JpdHMocywgcy5ibF90cmVlW2JsX29yZGVyW3JhbmtdICogMiArIDFdLyouTGVuKi8sIDMpOwogICAgfQogICAgLy9UcmFjZXYoKHN0ZGVyciwgIlxuYmwgdHJlZTogc2VudCAlbGQiLCBzLT5iaXRzX3NlbnQpKTsKCiAgICBzZW5kX3RyZWUocywgcy5keW5fbHRyZWUsIGxjb2RlcyAtIDEpOyAvKiBsaXRlcmFsIHRyZWUgKi8KICAgIC8vVHJhY2V2KChzdGRlcnIsICJcbmxpdCB0cmVlOiBzZW50ICVsZCIsIHMtPmJpdHNfc2VudCkpOwoKICAgIHNlbmRfdHJlZShzLCBzLmR5bl9kdHJlZSwgZGNvZGVzIC0gMSk7IC8qIGRpc3RhbmNlIHRyZWUgKi8KICAgIC8vVHJhY2V2KChzdGRlcnIsICJcbmRpc3QgdHJlZTogc2VudCAlbGQiLCBzLT5iaXRzX3NlbnQpKTsKICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogQ2hlY2sgaWYgdGhlIGRhdGEgdHlwZSBpcyBURVhUIG9yIEJJTkFSWSwgdXNpbmcgdGhlIGZvbGxvd2luZyBhbGdvcml0aG06CiAgICogLSBURVhUIGlmIHRoZSB0d28gY29uZGl0aW9ucyBiZWxvdyBhcmUgc2F0aXNmaWVkOgogICAqICAgIGEpIFRoZXJlIGFyZSBubyBub24tcG9ydGFibGUgY29udHJvbCBjaGFyYWN0ZXJzIGJlbG9uZ2luZyB0byB0aGUKICAgKiAgICAgICAiYmxhY2sgbGlzdCIgKDAuLjYsIDE0Li4yNSwgMjguLjMxKS4KICAgKiAgICBiKSBUaGVyZSBpcyBhdCBsZWFzdCBvbmUgcHJpbnRhYmxlIGNoYXJhY3RlciBiZWxvbmdpbmcgdG8gdGhlCiAgICogICAgICAgIndoaXRlIGxpc3QiICg5IHtUQUJ9LCAxMCB7TEZ9LCAxMyB7Q1J9LCAzMi4uMjU1KS4KICAgKiAtIEJJTkFSWSBvdGhlcndpc2UuCiAgICogLSBUaGUgZm9sbG93aW5nIHBhcnRpYWxseS1wb3J0YWJsZSBjb250cm9sIGNoYXJhY3RlcnMgZm9ybSBhCiAgICogICAiZ3JheSBsaXN0IiB0aGF0IGlzIGlnbm9yZWQgaW4gdGhpcyBkZXRlY3Rpb24gYWxnb3JpdGhtOgogICAqICAgKDcge0JFTH0sIDgge0JTfSwgMTEge1ZUfSwgMTIge0ZGfSwgMjYge1NVQn0sIDI3IHtFU0N9KS4KICAgKiBJTiBhc3NlcnRpb246IHRoZSBmaWVsZHMgRnJlcSBvZiBkeW5fbHRyZWUgYXJlIHNldC4KICAgKi8KICBjb25zdCBkZXRlY3RfZGF0YV90eXBlID0gKHMpID0+IHsKICAgIC8qIGJsYWNrX21hc2sgaXMgdGhlIGJpdCBtYXNrIG9mIGJsYWNrLWxpc3RlZCBieXRlcwogICAgICogc2V0IGJpdHMgMC4uNiwgMTQuLjI1LCBhbmQgMjguLjMxCiAgICAgKiAweGYzZmZjMDdmID0gYmluYXJ5IDExMTEwMDExMTExMTExMTExMTAwMDAwMDAxMTExMTExCiAgICAgKi8KICAgIGxldCBibGFja19tYXNrID0gMHhmM2ZmYzA3ZjsKICAgIGxldCBuOwoKICAgIC8qIENoZWNrIGZvciBub24tdGV4dHVhbCAoImJsYWNrLWxpc3RlZCIpIGJ5dGVzLiAqLwogICAgZm9yIChuID0gMDsgbiA8PSAzMTsgbisrLCBibGFja19tYXNrID4+Pj0gMSkgewogICAgICBpZiAoKGJsYWNrX21hc2sgJiAxKSAmJiAocy5keW5fbHRyZWVbbiAqIDJdLyouRnJlcSovICE9PSAwKSkgewogICAgICAgIHJldHVybiBaX0JJTkFSWTsKICAgICAgfQogICAgfQoKICAgIC8qIENoZWNrIGZvciB0ZXh0dWFsICgid2hpdGUtbGlzdGVkIikgYnl0ZXMuICovCiAgICBpZiAocy5keW5fbHRyZWVbOSAqIDJdLyouRnJlcSovICE9PSAwIHx8IHMuZHluX2x0cmVlWzEwICogMl0vKi5GcmVxKi8gIT09IDAgfHwKICAgICAgICBzLmR5bl9sdHJlZVsxMyAqIDJdLyouRnJlcSovICE9PSAwKSB7CiAgICAgIHJldHVybiBaX1RFWFQ7CiAgICB9CiAgICBmb3IgKG4gPSAzMjsgbiA8IExJVEVSQUxTJDE7IG4rKykgewogICAgICBpZiAocy5keW5fbHRyZWVbbiAqIDJdLyouRnJlcSovICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIFpfVEVYVDsKICAgICAgfQogICAgfQoKICAgIC8qIFRoZXJlIGFyZSBubyAiYmxhY2stbGlzdGVkIiBvciAid2hpdGUtbGlzdGVkIiBieXRlczoKICAgICAqIHRoaXMgc3RyZWFtIGVpdGhlciBpcyBlbXB0eSBvciBoYXMgdG9sZXJhdGVkICgiZ3JheS1saXN0ZWQiKSBieXRlcyBvbmx5LgogICAgICovCiAgICByZXR1cm4gWl9CSU5BUlk7CiAgfTsKCgogIGxldCBzdGF0aWNfaW5pdF9kb25lID0gZmFsc2U7CgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIEluaXRpYWxpemUgdGhlIHRyZWUgZGF0YSBzdHJ1Y3R1cmVzIGZvciBhIG5ldyB6bGliIHN0cmVhbS4KICAgKi8KICBjb25zdCBfdHJfaW5pdCQxID0gKHMpID0+CiAgewoKICAgIGlmICghc3RhdGljX2luaXRfZG9uZSkgewogICAgICB0cl9zdGF0aWNfaW5pdCgpOwogICAgICBzdGF0aWNfaW5pdF9kb25lID0gdHJ1ZTsKICAgIH0KCiAgICBzLmxfZGVzYyAgPSBuZXcgVHJlZURlc2Mocy5keW5fbHRyZWUsIHN0YXRpY19sX2Rlc2MpOwogICAgcy5kX2Rlc2MgID0gbmV3IFRyZWVEZXNjKHMuZHluX2R0cmVlLCBzdGF0aWNfZF9kZXNjKTsKICAgIHMuYmxfZGVzYyA9IG5ldyBUcmVlRGVzYyhzLmJsX3RyZWUsIHN0YXRpY19ibF9kZXNjKTsKCiAgICBzLmJpX2J1ZiA9IDA7CiAgICBzLmJpX3ZhbGlkID0gMDsKCiAgICAvKiBJbml0aWFsaXplIHRoZSBmaXJzdCBibG9jayBvZiB0aGUgZmlyc3QgZmlsZTogKi8KICAgIGluaXRfYmxvY2socyk7CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIFNlbmQgYSBzdG9yZWQgYmxvY2sKICAgKi8KICBjb25zdCBfdHJfc3RvcmVkX2Jsb2NrJDEgPSAocywgYnVmLCBzdG9yZWRfbGVuLCBsYXN0KSA9PgogIC8vRGVmbGF0ZVN0YXRlICpzOwogIC8vY2hhcmYgKmJ1ZjsgICAgICAgLyogaW5wdXQgYmxvY2sgKi8KICAvL3VsZyBzdG9yZWRfbGVuOyAgIC8qIGxlbmd0aCBvZiBpbnB1dCBibG9jayAqLwogIC8vaW50IGxhc3Q7ICAgICAgICAgLyogb25lIGlmIHRoaXMgaXMgdGhlIGxhc3QgYmxvY2sgZm9yIGEgZmlsZSAqLwogIHsKICAgIHNlbmRfYml0cyhzLCAoU1RPUkVEX0JMT0NLIDw8IDEpICsgKGxhc3QgPyAxIDogMCksIDMpOyAgICAvKiBzZW5kIGJsb2NrIHR5cGUgKi8KICAgIGNvcHlfYmxvY2socywgYnVmLCBzdG9yZWRfbGVuLCB0cnVlKTsgLyogd2l0aCBoZWFkZXIgKi8KICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogU2VuZCBvbmUgZW1wdHkgc3RhdGljIGJsb2NrIHRvIGdpdmUgZW5vdWdoIGxvb2thaGVhZCBmb3IgaW5mbGF0ZS4KICAgKiBUaGlzIHRha2VzIDEwIGJpdHMsIG9mIHdoaWNoIDcgbWF5IHJlbWFpbiBpbiB0aGUgYml0IGJ1ZmZlci4KICAgKi8KICBjb25zdCBfdHJfYWxpZ24kMSA9IChzKSA9PiB7CiAgICBzZW5kX2JpdHMocywgU1RBVElDX1RSRUVTIDw8IDEsIDMpOwogICAgc2VuZF9jb2RlKHMsIEVORF9CTE9DSywgc3RhdGljX2x0cmVlKTsKICAgIGJpX2ZsdXNoKHMpOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBEZXRlcm1pbmUgdGhlIGJlc3QgZW5jb2RpbmcgZm9yIHRoZSBjdXJyZW50IGJsb2NrOiBkeW5hbWljIHRyZWVzLCBzdGF0aWMKICAgKiB0cmVlcyBvciBzdG9yZSwgYW5kIG91dHB1dCB0aGUgZW5jb2RlZCBibG9jayB0byB0aGUgemlwIGZpbGUuCiAgICovCiAgY29uc3QgX3RyX2ZsdXNoX2Jsb2NrJDEgPSAocywgYnVmLCBzdG9yZWRfbGVuLCBsYXN0KSA9PgogIC8vRGVmbGF0ZVN0YXRlICpzOwogIC8vY2hhcmYgKmJ1ZjsgICAgICAgLyogaW5wdXQgYmxvY2ssIG9yIE5VTEwgaWYgdG9vIG9sZCAqLwogIC8vdWxnIHN0b3JlZF9sZW47ICAgLyogbGVuZ3RoIG9mIGlucHV0IGJsb2NrICovCiAgLy9pbnQgbGFzdDsgICAgICAgICAvKiBvbmUgaWYgdGhpcyBpcyB0aGUgbGFzdCBibG9jayBmb3IgYSBmaWxlICovCiAgewogICAgbGV0IG9wdF9sZW5iLCBzdGF0aWNfbGVuYjsgIC8qIG9wdF9sZW4gYW5kIHN0YXRpY19sZW4gaW4gYnl0ZXMgKi8KICAgIGxldCBtYXhfYmxpbmRleCA9IDA7ICAgICAgICAvKiBpbmRleCBvZiBsYXN0IGJpdCBsZW5ndGggY29kZSBvZiBub24gemVybyBmcmVxICovCgogICAgLyogQnVpbGQgdGhlIEh1ZmZtYW4gdHJlZXMgdW5sZXNzIGEgc3RvcmVkIGJsb2NrIGlzIGZvcmNlZCAqLwogICAgaWYgKHMubGV2ZWwgPiAwKSB7CgogICAgICAvKiBDaGVjayBpZiB0aGUgZmlsZSBpcyBiaW5hcnkgb3IgdGV4dCAqLwogICAgICBpZiAocy5zdHJtLmRhdGFfdHlwZSA9PT0gWl9VTktOT1dOJDEpIHsKICAgICAgICBzLnN0cm0uZGF0YV90eXBlID0gZGV0ZWN0X2RhdGFfdHlwZShzKTsKICAgICAgfQoKICAgICAgLyogQ29uc3RydWN0IHRoZSBsaXRlcmFsIGFuZCBkaXN0YW5jZSB0cmVlcyAqLwogICAgICBidWlsZF90cmVlKHMsIHMubF9kZXNjKTsKICAgICAgLy8gVHJhY2V2KChzdGRlcnIsICJcbmxpdCBkYXRhOiBkeW4gJWxkLCBzdGF0ICVsZCIsIHMtPm9wdF9sZW4sCiAgICAgIC8vICAgICAgICBzLT5zdGF0aWNfbGVuKSk7CgogICAgICBidWlsZF90cmVlKHMsIHMuZF9kZXNjKTsKICAgICAgLy8gVHJhY2V2KChzdGRlcnIsICJcbmRpc3QgZGF0YTogZHluICVsZCwgc3RhdCAlbGQiLCBzLT5vcHRfbGVuLAogICAgICAvLyAgICAgICAgcy0+c3RhdGljX2xlbikpOwogICAgICAvKiBBdCB0aGlzIHBvaW50LCBvcHRfbGVuIGFuZCBzdGF0aWNfbGVuIGFyZSB0aGUgdG90YWwgYml0IGxlbmd0aHMgb2YKICAgICAgICogdGhlIGNvbXByZXNzZWQgYmxvY2sgZGF0YSwgZXhjbHVkaW5nIHRoZSB0cmVlIHJlcHJlc2VudGF0aW9ucy4KICAgICAgICovCgogICAgICAvKiBCdWlsZCB0aGUgYml0IGxlbmd0aCB0cmVlIGZvciB0aGUgYWJvdmUgdHdvIHRyZWVzLCBhbmQgZ2V0IHRoZSBpbmRleAogICAgICAgKiBpbiBibF9vcmRlciBvZiB0aGUgbGFzdCBiaXQgbGVuZ3RoIGNvZGUgdG8gc2VuZC4KICAgICAgICovCiAgICAgIG1heF9ibGluZGV4ID0gYnVpbGRfYmxfdHJlZShzKTsKCiAgICAgIC8qIERldGVybWluZSB0aGUgYmVzdCBlbmNvZGluZy4gQ29tcHV0ZSB0aGUgYmxvY2sgbGVuZ3RocyBpbiBieXRlcy4gKi8KICAgICAgb3B0X2xlbmIgPSAocy5vcHRfbGVuICsgMyArIDcpID4+PiAzOwogICAgICBzdGF0aWNfbGVuYiA9IChzLnN0YXRpY19sZW4gKyAzICsgNykgPj4+IDM7CgogICAgICAvLyBUcmFjZXYoKHN0ZGVyciwgIlxub3B0ICVsdSglbHUpIHN0YXQgJWx1KCVsdSkgc3RvcmVkICVsdSBsaXQgJXUgIiwKICAgICAgLy8gICAgICAgIG9wdF9sZW5iLCBzLT5vcHRfbGVuLCBzdGF0aWNfbGVuYiwgcy0+c3RhdGljX2xlbiwgc3RvcmVkX2xlbiwKICAgICAgLy8gICAgICAgIHMtPmxhc3RfbGl0KSk7CgogICAgICBpZiAoc3RhdGljX2xlbmIgPD0gb3B0X2xlbmIpIHsgb3B0X2xlbmIgPSBzdGF0aWNfbGVuYjsgfQoKICAgIH0gZWxzZSB7CiAgICAgIC8vIEFzc2VydChidWYgIT0gKGNoYXIqKTAsICJsb3N0IGJ1ZiIpOwogICAgICBvcHRfbGVuYiA9IHN0YXRpY19sZW5iID0gc3RvcmVkX2xlbiArIDU7IC8qIGZvcmNlIGEgc3RvcmVkIGJsb2NrICovCiAgICB9CgogICAgaWYgKChzdG9yZWRfbGVuICsgNCA8PSBvcHRfbGVuYikgJiYgKGJ1ZiAhPT0gLTEpKSB7CiAgICAgIC8qIDQ6IHR3byB3b3JkcyBmb3IgdGhlIGxlbmd0aHMgKi8KCiAgICAgIC8qIFRoZSB0ZXN0IGJ1ZiAhPSBOVUxMIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIExJVF9CVUZTSVpFID4gV1NJWkUuCiAgICAgICAqIE90aGVyd2lzZSB3ZSBjYW4ndCBoYXZlIHByb2Nlc3NlZCBtb3JlIHRoYW4gV1NJWkUgaW5wdXQgYnl0ZXMgc2luY2UKICAgICAgICogdGhlIGxhc3QgYmxvY2sgZmx1c2gsIGJlY2F1c2UgY29tcHJlc3Npb24gd291bGQgaGF2ZSBiZWVuCiAgICAgICAqIHN1Y2Nlc3NmdWwuIElmIExJVF9CVUZTSVpFIDw9IFdTSVpFLCBpdCBpcyBuZXZlciB0b28gbGF0ZSB0bwogICAgICAgKiB0cmFuc2Zvcm0gYSBibG9jayBpbnRvIGEgc3RvcmVkIGJsb2NrLgogICAgICAgKi8KICAgICAgX3RyX3N0b3JlZF9ibG9jayQxKHMsIGJ1Ziwgc3RvcmVkX2xlbiwgbGFzdCk7CgogICAgfSBlbHNlIGlmIChzLnN0cmF0ZWd5ID09PSBaX0ZJWEVEJDEgfHwgc3RhdGljX2xlbmIgPT09IG9wdF9sZW5iKSB7CgogICAgICBzZW5kX2JpdHMocywgKFNUQVRJQ19UUkVFUyA8PCAxKSArIChsYXN0ID8gMSA6IDApLCAzKTsKICAgICAgY29tcHJlc3NfYmxvY2socywgc3RhdGljX2x0cmVlLCBzdGF0aWNfZHRyZWUpOwoKICAgIH0gZWxzZSB7CiAgICAgIHNlbmRfYml0cyhzLCAoRFlOX1RSRUVTIDw8IDEpICsgKGxhc3QgPyAxIDogMCksIDMpOwogICAgICBzZW5kX2FsbF90cmVlcyhzLCBzLmxfZGVzYy5tYXhfY29kZSArIDEsIHMuZF9kZXNjLm1heF9jb2RlICsgMSwgbWF4X2JsaW5kZXggKyAxKTsKICAgICAgY29tcHJlc3NfYmxvY2socywgcy5keW5fbHRyZWUsIHMuZHluX2R0cmVlKTsKICAgIH0KICAgIC8vIEFzc2VydCAocy0+Y29tcHJlc3NlZF9sZW4gPT0gcy0+Yml0c19zZW50LCAiYmFkIGNvbXByZXNzZWQgc2l6ZSIpOwogICAgLyogVGhlIGFib3ZlIGNoZWNrIGlzIG1hZGUgbW9kIDJeMzIsIGZvciBmaWxlcyBsYXJnZXIgdGhhbiA1MTIgTUIKICAgICAqIGFuZCB1TG9uZyBpbXBsZW1lbnRlZCBvbiAzMiBiaXRzLgogICAgICovCiAgICBpbml0X2Jsb2NrKHMpOwoKICAgIGlmIChsYXN0KSB7CiAgICAgIGJpX3dpbmR1cChzKTsKICAgIH0KICAgIC8vIFRyYWNldigoc3RkZXJyLCJcbmNvbXBybGVuICVsdSglbHUpICIsIHMtPmNvbXByZXNzZWRfbGVuPj4zLAogICAgLy8gICAgICAgcy0+Y29tcHJlc3NlZF9sZW4tNypsYXN0KSk7CiAgfTsKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogU2F2ZSB0aGUgbWF0Y2ggaW5mbyBhbmQgdGFsbHkgdGhlIGZyZXF1ZW5jeSBjb3VudHMuIFJldHVybiB0cnVlIGlmCiAgICogdGhlIGN1cnJlbnQgYmxvY2sgbXVzdCBiZSBmbHVzaGVkLgogICAqLwogIGNvbnN0IF90cl90YWxseSQxID0gKHMsIGRpc3QsIGxjKSA9PgogIC8vICAgIGRlZmxhdGVfc3RhdGUgKnM7CiAgLy8gICAgdW5zaWduZWQgZGlzdDsgIC8qIGRpc3RhbmNlIG9mIG1hdGNoZWQgc3RyaW5nICovCiAgLy8gICAgdW5zaWduZWQgbGM7ICAgIC8qIG1hdGNoIGxlbmd0aC1NSU5fTUFUQ0ggb3IgdW5tYXRjaGVkIGNoYXIgKGlmIGRpc3Q9PTApICovCiAgewogICAgLy9sZXQgb3V0X2xlbmd0aCwgaW5fbGVuZ3RoLCBkY29kZTsKCiAgICBzLnBlbmRpbmdfYnVmW3MuZF9idWYgKyBzLmxhc3RfbGl0ICogMl0gICAgID0gKGRpc3QgPj4+IDgpICYgMHhmZjsKICAgIHMucGVuZGluZ19idWZbcy5kX2J1ZiArIHMubGFzdF9saXQgKiAyICsgMV0gPSBkaXN0ICYgMHhmZjsKCiAgICBzLnBlbmRpbmdfYnVmW3MubF9idWYgKyBzLmxhc3RfbGl0XSA9IGxjICYgMHhmZjsKICAgIHMubGFzdF9saXQrKzsKCiAgICBpZiAoZGlzdCA9PT0gMCkgewogICAgICAvKiBsYyBpcyB0aGUgdW5tYXRjaGVkIGNoYXIgKi8KICAgICAgcy5keW5fbHRyZWVbbGMgKiAyXS8qLkZyZXEqLysrOwogICAgfSBlbHNlIHsKICAgICAgcy5tYXRjaGVzKys7CiAgICAgIC8qIEhlcmUsIGxjIGlzIHRoZSBtYXRjaCBsZW5ndGggLSBNSU5fTUFUQ0ggKi8KICAgICAgZGlzdC0tOyAgICAgICAgICAgICAvKiBkaXN0ID0gbWF0Y2ggZGlzdGFuY2UgLSAxICovCiAgICAgIC8vQXNzZXJ0KCh1c2gpZGlzdCA8ICh1c2gpTUFYX0RJU1QocykgJiYKICAgICAgLy8gICAgICAgKHVzaClsYyA8PSAodXNoKShNQVhfTUFUQ0gtTUlOX01BVENIKSAmJgogICAgICAvLyAgICAgICAodXNoKWRfY29kZShkaXN0KSA8ICh1c2gpRF9DT0RFUywgICJfdHJfdGFsbHk6IGJhZCBtYXRjaCIpOwoKICAgICAgcy5keW5fbHRyZWVbKF9sZW5ndGhfY29kZVtsY10gKyBMSVRFUkFMUyQxICsgMSkgKiAyXS8qLkZyZXEqLysrOwogICAgICBzLmR5bl9kdHJlZVtkX2NvZGUoZGlzdCkgKiAyXS8qLkZyZXEqLysrOwogICAgfQoKICAvLyAoISkgVGhpcyBibG9jayBpcyBkaXNhYmxlZCBpbiB6bGliIGRlZmF1bHRzLAogIC8vIGRvbid0IGVuYWJsZSBpdCBmb3IgYmluYXJ5IGNvbXBhdGliaWxpdHkKCiAgLy8jaWZkZWYgVFJVTkNBVEVfQkxPQ0sKICAvLyAgLyogVHJ5IHRvIGd1ZXNzIGlmIGl0IGlzIHByb2ZpdGFibGUgdG8gc3RvcCB0aGUgY3VycmVudCBibG9jayBoZXJlICovCiAgLy8gIGlmICgocy5sYXN0X2xpdCAmIDB4MWZmZikgPT09IDAgJiYgcy5sZXZlbCA+IDIpIHsKICAvLyAgICAvKiBDb21wdXRlIGFuIHVwcGVyIGJvdW5kIGZvciB0aGUgY29tcHJlc3NlZCBsZW5ndGggKi8KICAvLyAgICBvdXRfbGVuZ3RoID0gcy5sYXN0X2xpdCo4OwogIC8vICAgIGluX2xlbmd0aCA9IHMuc3Ryc3RhcnQgLSBzLmJsb2NrX3N0YXJ0OwogIC8vCiAgLy8gICAgZm9yIChkY29kZSA9IDA7IGRjb2RlIDwgRF9DT0RFUzsgZGNvZGUrKykgewogIC8vICAgICAgb3V0X2xlbmd0aCArPSBzLmR5bl9kdHJlZVtkY29kZSoyXS8qLkZyZXEqLyAqICg1ICsgZXh0cmFfZGJpdHNbZGNvZGVdKTsKICAvLyAgICB9CiAgLy8gICAgb3V0X2xlbmd0aCA+Pj49IDM7CiAgLy8gICAgLy9UcmFjZXYoKHN0ZGVyciwiXG5sYXN0X2xpdCAldSwgaW4gJWxkLCBvdXQgfiVsZCglbGQlJSkgIiwKICAvLyAgICAvLyAgICAgICBzLT5sYXN0X2xpdCwgaW5fbGVuZ3RoLCBvdXRfbGVuZ3RoLAogIC8vICAgIC8vICAgICAgIDEwMEwgLSBvdXRfbGVuZ3RoKjEwMEwvaW5fbGVuZ3RoKSk7CiAgLy8gICAgaWYgKHMubWF0Y2hlcyA8IChzLmxhc3RfbGl0Pj4xKS8qaW50IC8yKi8gJiYgb3V0X2xlbmd0aCA8IChpbl9sZW5ndGg+PjEpLyppbnQgLzIqLykgewogIC8vICAgICAgcmV0dXJuIHRydWU7CiAgLy8gICAgfQogIC8vICB9CiAgLy8jZW5kaWYKCiAgICByZXR1cm4gKHMubGFzdF9saXQgPT09IHMubGl0X2J1ZnNpemUgLSAxKTsKICAgIC8qIFdlIGF2b2lkIGVxdWFsaXR5IHdpdGggbGl0X2J1ZnNpemUgYmVjYXVzZSBvZiB3cmFwYXJvdW5kIGF0IDY0SwogICAgICogb24gMTYgYml0IG1hY2hpbmVzIGFuZCBiZWNhdXNlIHN0b3JlZCBibG9ja3MgYXJlIHJlc3RyaWN0ZWQgdG8KICAgICAqIDY0Sy0xIGJ5dGVzLgogICAgICovCiAgfTsKCiAgdmFyIF90cl9pbml0XzEgID0gX3RyX2luaXQkMTsKICB2YXIgX3RyX3N0b3JlZF9ibG9ja18xID0gX3RyX3N0b3JlZF9ibG9jayQxOwogIHZhciBfdHJfZmx1c2hfYmxvY2tfMSAgPSBfdHJfZmx1c2hfYmxvY2skMTsKICB2YXIgX3RyX3RhbGx5XzEgPSBfdHJfdGFsbHkkMTsKICB2YXIgX3RyX2FsaWduXzEgPSBfdHJfYWxpZ24kMTsKCiAgdmFyIHRyZWVzID0gewogIAlfdHJfaW5pdDogX3RyX2luaXRfMSwKICAJX3RyX3N0b3JlZF9ibG9jazogX3RyX3N0b3JlZF9ibG9ja18xLAogIAlfdHJfZmx1c2hfYmxvY2s6IF90cl9mbHVzaF9ibG9ja18xLAogIAlfdHJfdGFsbHk6IF90cl90YWxseV8xLAogIAlfdHJfYWxpZ246IF90cl9hbGlnbl8xCiAgfTsKCiAgLy8gTm90ZTogYWRsZXIzMiB0YWtlcyAxMiUgZm9yIGxldmVsIDAgYW5kIDIlIGZvciBsZXZlbCA2LgogIC8vIEl0IGlzbid0IHdvcnRoIGl0IHRvIG1ha2UgYWRkaXRpb25hbCBvcHRpbWl6YXRpb25zIGFzIGluIG9yaWdpbmFsLgogIC8vIFNtYWxsIHNpemUgaXMgcHJlZmVyYWJsZS4KCiAgLy8gKEMpIDE5OTUtMjAxMyBKZWFuLWxvdXAgR2FpbGx5IGFuZCBNYXJrIEFkbGVyCiAgLy8gKEMpIDIwMTQtMjAxNyBWaXRhbHkgUHV6cmluIGFuZCBBbmRyZXkgVHVwaXRzaW4KICAvLwogIC8vIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkCiAgLy8gd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCiAgLy8gYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KICAvLwogIC8vIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAogIC8vIGluY2x1ZGluZyBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucywgYW5kIHRvIGFsdGVyIGl0IGFuZCByZWRpc3RyaWJ1dGUgaXQKICAvLyBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6CiAgLy8KICAvLyAxLiBUaGUgb3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUgbWlzcmVwcmVzZW50ZWQ7IHlvdSBtdXN0IG5vdAogIC8vICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKICAvLyAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQogIC8vICAgYXBwcmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4KICAvLyAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQogIC8vICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgogIC8vIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCgogIGNvbnN0IGFkbGVyMzIgPSAoYWRsZXIsIGJ1ZiwgbGVuLCBwb3MpID0+IHsKICAgIGxldCBzMSA9IChhZGxlciAmIDB4ZmZmZikgfDAsCiAgICAgICAgczIgPSAoKGFkbGVyID4+PiAxNikgJiAweGZmZmYpIHwwLAogICAgICAgIG4gPSAwOwoKICAgIHdoaWxlIChsZW4gIT09IDApIHsKICAgICAgLy8gU2V0IGxpbWl0IH4gdHdpY2UgbGVzcyB0aGFuIDU1NTIsIHRvIGtlZXAKICAgICAgLy8gczIgaW4gMzEtYml0cywgYmVjYXVzZSB3ZSBmb3JjZSBzaWduZWQgaW50cy4KICAgICAgLy8gaW4gb3RoZXIgY2FzZSAlPSB3aWxsIGZhaWwuCiAgICAgIG4gPSBsZW4gPiAyMDAwID8gMjAwMCA6IGxlbjsKICAgICAgbGVuIC09IG47CgogICAgICBkbyB7CiAgICAgICAgczEgPSAoczEgKyBidWZbcG9zKytdKSB8MDsKICAgICAgICBzMiA9IChzMiArIHMxKSB8MDsKICAgICAgfSB3aGlsZSAoLS1uKTsKCiAgICAgIHMxICU9IDY1NTIxOwogICAgICBzMiAlPSA2NTUyMTsKICAgIH0KCiAgICByZXR1cm4gKHMxIHwgKHMyIDw8IDE2KSkgfDA7CiAgfTsKCgogIHZhciBhZGxlcjMyXzEgPSBhZGxlcjMyOwoKICAvLyBOb3RlOiB3ZSBjYW4ndCBnZXQgc2lnbmlmaWNhbnQgc3BlZWQgYm9vc3QgaGVyZS4KICAvLyBTbyB3cml0ZSBjb2RlIHRvIG1pbmltaXplIHNpemUgLSBubyBwcmVnZW5lcmF0ZWQgdGFibGVzCiAgLy8gYW5kIGFycmF5IHRvb2xzIGRlcGVuZGVuY2llcy4KCiAgLy8gKEMpIDE5OTUtMjAxMyBKZWFuLWxvdXAgR2FpbGx5IGFuZCBNYXJrIEFkbGVyCiAgLy8gKEMpIDIwMTQtMjAxNyBWaXRhbHkgUHV6cmluIGFuZCBBbmRyZXkgVHVwaXRzaW4KICAvLwogIC8vIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkCiAgLy8gd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCiAgLy8gYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KICAvLwogIC8vIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAogIC8vIGluY2x1ZGluZyBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucywgYW5kIHRvIGFsdGVyIGl0IGFuZCByZWRpc3RyaWJ1dGUgaXQKICAvLyBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6CiAgLy8KICAvLyAxLiBUaGUgb3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUgbWlzcmVwcmVzZW50ZWQ7IHlvdSBtdXN0IG5vdAogIC8vICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKICAvLyAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQogIC8vICAgYXBwcmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4KICAvLyAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQogIC8vICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgogIC8vIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCgogIC8vIFVzZSBvcmRpbmFyeSBhcnJheSwgc2luY2UgdW50eXBlZCBtYWtlcyBubyBib29zdCBoZXJlCiAgY29uc3QgbWFrZVRhYmxlID0gKCkgPT4gewogICAgbGV0IGMsIHRhYmxlID0gW107CgogICAgZm9yICh2YXIgbiA9IDA7IG4gPCAyNTY7IG4rKykgewogICAgICBjID0gbjsKICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCA4OyBrKyspIHsKICAgICAgICBjID0gKChjICYgMSkgPyAoMHhFREI4ODMyMCBeIChjID4+PiAxKSkgOiAoYyA+Pj4gMSkpOwogICAgICB9CiAgICAgIHRhYmxlW25dID0gYzsKICAgIH0KCiAgICByZXR1cm4gdGFibGU7CiAgfTsKCiAgLy8gQ3JlYXRlIHRhYmxlIG9uIGxvYWQuIEp1c3QgMjU1IHNpZ25lZCBsb25ncy4gTm90IGEgcHJvYmxlbS4KICBjb25zdCBjcmNUYWJsZSA9IG5ldyBVaW50MzJBcnJheShtYWtlVGFibGUoKSk7CgoKICBjb25zdCBjcmMzMiA9IChjcmMsIGJ1ZiwgbGVuLCBwb3MpID0+IHsKICAgIGNvbnN0IHQgPSBjcmNUYWJsZTsKICAgIGNvbnN0IGVuZCA9IHBvcyArIGxlbjsKCiAgICBjcmMgXj0gLTE7CgogICAgZm9yIChsZXQgaSA9IHBvczsgaSA8IGVuZDsgaSsrKSB7CiAgICAgIGNyYyA9IChjcmMgPj4+IDgpIF4gdFsoY3JjIF4gYnVmW2ldKSAmIDB4RkZdOwogICAgfQoKICAgIHJldHVybiAoY3JjIF4gKC0xKSk7IC8vID4+PiAwOwogIH07CgoKICB2YXIgY3JjMzJfMSA9IGNyYzMyOwoKICAvLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAvLyAoQykgMjAxNC0yMDE3IFZpdGFseSBQdXpyaW4gYW5kIEFuZHJleSBUdXBpdHNpbgogIC8vCiAgLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAvLyB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKICAvLyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogIC8vCiAgLy8gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCiAgLy8gaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogIC8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKICAvLwogIC8vIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQogIC8vICAgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpbiB0aGUgcHJvZHVjdCBkb2N1bWVudGF0aW9uIHdvdWxkIGJlCiAgLy8gICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogIC8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCiAgLy8gICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgLy8gMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KCiAgdmFyIG1lc3NhZ2VzID0gewogICAgMjogICAgICAnbmVlZCBkaWN0aW9uYXJ5JywgICAgIC8qIFpfTkVFRF9ESUNUICAgICAgIDIgICovCiAgICAxOiAgICAgICdzdHJlYW0gZW5kJywgICAgICAgICAgLyogWl9TVFJFQU1fRU5EICAgICAgMSAgKi8KICAgIDA6ICAgICAgJycsICAgICAgICAgICAgICAgICAgICAvKiBaX09LICAgICAgICAgICAgICAwICAqLwogICAgJy0xJzogICAnZmlsZSBlcnJvcicsICAgICAgICAgIC8qIFpfRVJSTk8gICAgICAgICAoLTEpICovCiAgICAnLTInOiAgICdzdHJlYW0gZXJyb3InLCAgICAgICAgLyogWl9TVFJFQU1fRVJST1IgICgtMikgKi8KICAgICctMyc6ICAgJ2RhdGEgZXJyb3InLCAgICAgICAgICAvKiBaX0RBVEFfRVJST1IgICAgKC0zKSAqLwogICAgJy00JzogICAnaW5zdWZmaWNpZW50IG1lbW9yeScsIC8qIFpfTUVNX0VSUk9SICAgICAoLTQpICovCiAgICAnLTUnOiAgICdidWZmZXIgZXJyb3InLCAgICAgICAgLyogWl9CVUZfRVJST1IgICAgICgtNSkgKi8KICAgICctNic6ICAgJ2luY29tcGF0aWJsZSB2ZXJzaW9uJyAvKiBaX1ZFUlNJT05fRVJST1IgKC02KSAqLwogIH07CgogIC8vIChDKSAxOTk1LTIwMTMgSmVhbi1sb3VwIEdhaWxseSBhbmQgTWFyayBBZGxlcgogIC8vIChDKSAyMDE0LTIwMTcgVml0YWx5IFB1enJpbiBhbmQgQW5kcmV5IFR1cGl0c2luCiAgLy8KICAvLyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAogIC8vIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogIC8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAgLy8KICAvLyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAvLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0CiAgLy8gZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgogIC8vCiAgLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKICAvLyAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgLy8gICBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291bGQgYmUKICAvLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCiAgLy8gMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCBhbmQgbXVzdCBub3QgYmUKICAvLyAgIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KICAvLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKICB2YXIgY29uc3RhbnRzJDIgPSB7CgogICAgLyogQWxsb3dlZCBmbHVzaCB2YWx1ZXM7IHNlZSBkZWZsYXRlKCkgYW5kIGluZmxhdGUoKSBiZWxvdyBmb3IgZGV0YWlscyAqLwogICAgWl9OT19GTFVTSDogICAgICAgICAwLAogICAgWl9QQVJUSUFMX0ZMVVNIOiAgICAxLAogICAgWl9TWU5DX0ZMVVNIOiAgICAgICAyLAogICAgWl9GVUxMX0ZMVVNIOiAgICAgICAzLAogICAgWl9GSU5JU0g6ICAgICAgICAgICA0LAogICAgWl9CTE9DSzogICAgICAgICAgICA1LAogICAgWl9UUkVFUzogICAgICAgICAgICA2LAoKICAgIC8qIFJldHVybiBjb2RlcyBmb3IgdGhlIGNvbXByZXNzaW9uL2RlY29tcHJlc3Npb24gZnVuY3Rpb25zLiBOZWdhdGl2ZSB2YWx1ZXMKICAgICogYXJlIGVycm9ycywgcG9zaXRpdmUgdmFsdWVzIGFyZSB1c2VkIGZvciBzcGVjaWFsIGJ1dCBub3JtYWwgZXZlbnRzLgogICAgKi8KICAgIFpfT0s6ICAgICAgICAgICAgICAgMCwKICAgIFpfU1RSRUFNX0VORDogICAgICAgMSwKICAgIFpfTkVFRF9ESUNUOiAgICAgICAgMiwKICAgIFpfRVJSTk86ICAgICAgICAgICAtMSwKICAgIFpfU1RSRUFNX0VSUk9SOiAgICAtMiwKICAgIFpfREFUQV9FUlJPUjogICAgICAtMywKICAgIFpfTUVNX0VSUk9SOiAgICAgICAtNCwKICAgIFpfQlVGX0VSUk9SOiAgICAgICAtNSwKICAgIC8vWl9WRVJTSU9OX0VSUk9SOiAtNiwKCiAgICAvKiBjb21wcmVzc2lvbiBsZXZlbHMgKi8KICAgIFpfTk9fQ09NUFJFU1NJT046ICAgICAgICAgMCwKICAgIFpfQkVTVF9TUEVFRDogICAgICAgICAgICAgMSwKICAgIFpfQkVTVF9DT01QUkVTU0lPTjogICAgICAgOSwKICAgIFpfREVGQVVMVF9DT01QUkVTU0lPTjogICAtMSwKCgogICAgWl9GSUxURVJFRDogICAgICAgICAgICAgICAxLAogICAgWl9IVUZGTUFOX09OTFk6ICAgICAgICAgICAyLAogICAgWl9STEU6ICAgICAgICAgICAgICAgICAgICAzLAogICAgWl9GSVhFRDogICAgICAgICAgICAgICAgICA0LAogICAgWl9ERUZBVUxUX1NUUkFURUdZOiAgICAgICAwLAoKICAgIC8qIFBvc3NpYmxlIHZhbHVlcyBvZiB0aGUgZGF0YV90eXBlIGZpZWxkICh0aG91Z2ggc2VlIGluZmxhdGUoKSkgKi8KICAgIFpfQklOQVJZOiAgICAgICAgICAgICAgICAgMCwKICAgIFpfVEVYVDogICAgICAgICAgICAgICAgICAgMSwKICAgIC8vWl9BU0NJSTogICAgICAgICAgICAgICAgMSwgLy8gPSBaX1RFWFQgKGRlcHJlY2F0ZWQpCiAgICBaX1VOS05PV046ICAgICAgICAgICAgICAgIDIsCgogICAgLyogVGhlIGRlZmxhdGUgY29tcHJlc3Npb24gbWV0aG9kICovCiAgICBaX0RFRkxBVEVEOiAgICAgICAgICAgICAgIDgKICAgIC8vWl9OVUxMOiAgICAgICAgICAgICAgICAgbnVsbCAvLyBVc2UgLTEgb3IgbnVsbCBpbmxpbmUsIGRlcGVuZGluZyBvbiB2YXIgdHlwZQogIH07CgogIC8vIChDKSAxOTk1LTIwMTMgSmVhbi1sb3VwIEdhaWxseSBhbmQgTWFyayBBZGxlcgogIC8vIChDKSAyMDE0LTIwMTcgVml0YWx5IFB1enJpbiBhbmQgQW5kcmV5IFR1cGl0c2luCiAgLy8KICAvLyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAogIC8vIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogIC8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAgLy8KICAvLyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAvLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0CiAgLy8gZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgogIC8vCiAgLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKICAvLyAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgLy8gICBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291bGQgYmUKICAvLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCiAgLy8gMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCBhbmQgbXVzdCBub3QgYmUKICAvLyAgIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KICAvLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKICBjb25zdCB7IF90cl9pbml0LCBfdHJfc3RvcmVkX2Jsb2NrLCBfdHJfZmx1c2hfYmxvY2ssIF90cl90YWxseSwgX3RyX2FsaWduIH0gPSB0cmVlczsKCgoKCiAgLyogUHVibGljIGNvbnN0YW50cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKICBjb25zdCB7CiAgICBaX05PX0ZMVVNIOiBaX05PX0ZMVVNIJDIsIFpfUEFSVElBTF9GTFVTSCwgWl9GVUxMX0ZMVVNIOiBaX0ZVTExfRkxVU0gkMSwgWl9GSU5JU0g6IFpfRklOSVNIJDMsIFpfQkxPQ0s6IFpfQkxPQ0skMSwKICAgIFpfT0s6IFpfT0skMywgWl9TVFJFQU1fRU5EOiBaX1NUUkVBTV9FTkQkMywgWl9TVFJFQU1fRVJST1I6IFpfU1RSRUFNX0VSUk9SJDIsIFpfREFUQV9FUlJPUjogWl9EQVRBX0VSUk9SJDIsIFpfQlVGX0VSUk9SOiBaX0JVRl9FUlJPUiQxLAogICAgWl9ERUZBVUxUX0NPTVBSRVNTSU9OOiBaX0RFRkFVTFRfQ09NUFJFU1NJT04kMSwKICAgIFpfRklMVEVSRUQsIFpfSFVGRk1BTl9PTkxZLCBaX1JMRSwgWl9GSVhFRCwgWl9ERUZBVUxUX1NUUkFURUdZOiBaX0RFRkFVTFRfU1RSQVRFR1kkMSwKICAgIFpfVU5LTk9XTiwKICAgIFpfREVGTEFURUQ6IFpfREVGTEFURUQkMgogIH0gPSBjb25zdGFudHMkMjsKCiAgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCgogIGNvbnN0IE1BWF9NRU1fTEVWRUwgPSA5OwogIC8qIE1heGltdW0gdmFsdWUgZm9yIG1lbUxldmVsIGluIGRlZmxhdGVJbml0MiAqLwogIGNvbnN0IE1BWF9XQklUUyQxID0gMTU7CiAgLyogMzJLIExaNzcgd2luZG93ICovCiAgY29uc3QgREVGX01FTV9MRVZFTCA9IDg7CgoKICBjb25zdCBMRU5HVEhfQ09ERVMgID0gMjk7CiAgLyogbnVtYmVyIG9mIGxlbmd0aCBjb2Rlcywgbm90IGNvdW50aW5nIHRoZSBzcGVjaWFsIEVORF9CTE9DSyBjb2RlICovCiAgY29uc3QgTElURVJBTFMgICAgICA9IDI1NjsKICAvKiBudW1iZXIgb2YgbGl0ZXJhbCBieXRlcyAwLi4yNTUgKi8KICBjb25zdCBMX0NPREVTICAgICAgID0gTElURVJBTFMgKyAxICsgTEVOR1RIX0NPREVTOwogIC8qIG51bWJlciBvZiBMaXRlcmFsIG9yIExlbmd0aCBjb2RlcywgaW5jbHVkaW5nIHRoZSBFTkRfQkxPQ0sgY29kZSAqLwogIGNvbnN0IERfQ09ERVMgICAgICAgPSAzMDsKICAvKiBudW1iZXIgb2YgZGlzdGFuY2UgY29kZXMgKi8KICBjb25zdCBCTF9DT0RFUyAgICAgID0gMTk7CiAgLyogbnVtYmVyIG9mIGNvZGVzIHVzZWQgdG8gdHJhbnNmZXIgdGhlIGJpdCBsZW5ndGhzICovCiAgY29uc3QgSEVBUF9TSVpFICAgICA9IDIgKiBMX0NPREVTICsgMTsKICAvKiBtYXhpbXVtIGhlYXAgc2l6ZSAqLwogIGNvbnN0IE1BWF9CSVRTICA9IDE1OwogIC8qIEFsbCBjb2RlcyBtdXN0IG5vdCBleGNlZWQgTUFYX0JJVFMgYml0cyAqLwoKICBjb25zdCBNSU5fTUFUQ0ggPSAzOwogIGNvbnN0IE1BWF9NQVRDSCA9IDI1ODsKICBjb25zdCBNSU5fTE9PS0FIRUFEID0gKE1BWF9NQVRDSCArIE1JTl9NQVRDSCArIDEpOwoKICBjb25zdCBQUkVTRVRfRElDVCA9IDB4MjA7CgogIGNvbnN0IElOSVRfU1RBVEUgPSA0MjsKICBjb25zdCBFWFRSQV9TVEFURSA9IDY5OwogIGNvbnN0IE5BTUVfU1RBVEUgPSA3MzsKICBjb25zdCBDT01NRU5UX1NUQVRFID0gOTE7CiAgY29uc3QgSENSQ19TVEFURSA9IDEwMzsKICBjb25zdCBCVVNZX1NUQVRFID0gMTEzOwogIGNvbnN0IEZJTklTSF9TVEFURSA9IDY2NjsKCiAgY29uc3QgQlNfTkVFRF9NT1JFICAgICAgPSAxOyAvKiBibG9jayBub3QgY29tcGxldGVkLCBuZWVkIG1vcmUgaW5wdXQgb3IgbW9yZSBvdXRwdXQgKi8KICBjb25zdCBCU19CTE9DS19ET05FICAgICA9IDI7IC8qIGJsb2NrIGZsdXNoIHBlcmZvcm1lZCAqLwogIGNvbnN0IEJTX0ZJTklTSF9TVEFSVEVEID0gMzsgLyogZmluaXNoIHN0YXJ0ZWQsIG5lZWQgb25seSBtb3JlIG91dHB1dCBhdCBuZXh0IGRlZmxhdGUgKi8KICBjb25zdCBCU19GSU5JU0hfRE9ORSAgICA9IDQ7IC8qIGZpbmlzaCBkb25lLCBhY2NlcHQgbm8gbW9yZSBpbnB1dCBvciBvdXRwdXQgKi8KCiAgY29uc3QgT1NfQ09ERSA9IDB4MDM7IC8vIFVuaXggOikgLiBEb24ndCBkZXRlY3QsIHVzZSB0aGlzIGRlZmF1bHQuCgogIGNvbnN0IGVyciA9IChzdHJtLCBlcnJvckNvZGUpID0+IHsKICAgIHN0cm0ubXNnID0gbWVzc2FnZXNbZXJyb3JDb2RlXTsKICAgIHJldHVybiBlcnJvckNvZGU7CiAgfTsKCiAgY29uc3QgcmFuayA9IChmKSA9PiB7CiAgICByZXR1cm4gKChmKSA8PCAxKSAtICgoZikgPiA0ID8gOSA6IDApOwogIH07CgogIGNvbnN0IHplcm8gPSAoYnVmKSA9PiB7CiAgICBsZXQgbGVuID0gYnVmLmxlbmd0aDsgd2hpbGUgKC0tbGVuID49IDApIHsgYnVmW2xlbl0gPSAwOyB9CiAgfTsKCgogIC8qIGVzbGludC1kaXNhYmxlIG5ldy1jYXAgKi8KICBsZXQgSEFTSF9aTElCID0gKHMsIHByZXYsIGRhdGEpID0+ICgocHJldiA8PCBzLmhhc2hfc2hpZnQpIF4gZGF0YSkgJiBzLmhhc2hfbWFzazsKICAvLyBUaGlzIGhhc2ggY2F1c2VzIGxlc3MgY29sbGlzaW9ucywgaHR0cHM6Ly9naXRodWIuY29tL25vZGVjYS9wYWtvL2lzc3Vlcy8xMzUKICAvLyBCdXQgYnJlYWtzIGJpbmFyeSBjb21wYXRpYmlsaXR5CiAgLy9sZXQgSEFTSF9GQVNUID0gKHMsIHByZXYsIGRhdGEpID0+ICgocHJldiA8PCA4KSArIChwcmV2ID4+IDgpICsgKGRhdGEgPDwgNCkpICYgcy5oYXNoX21hc2s7CiAgbGV0IEhBU0ggPSBIQVNIX1pMSUI7CgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBGbHVzaCBhcyBtdWNoIHBlbmRpbmcgb3V0cHV0IGFzIHBvc3NpYmxlLiBBbGwgZGVmbGF0ZSgpIG91dHB1dCBnb2VzCiAgICogdGhyb3VnaCB0aGlzIGZ1bmN0aW9uIHNvIHNvbWUgYXBwbGljYXRpb25zIG1heSB3aXNoIHRvIG1vZGlmeSBpdAogICAqIHRvIGF2b2lkIGFsbG9jYXRpbmcgYSBsYXJnZSBzdHJtLT5vdXRwdXQgYnVmZmVyIGFuZCBjb3B5aW5nIGludG8gaXQuCiAgICogKFNlZSBhbHNvIHJlYWRfYnVmKCkpLgogICAqLwogIGNvbnN0IGZsdXNoX3BlbmRpbmcgPSAoc3RybSkgPT4gewogICAgY29uc3QgcyA9IHN0cm0uc3RhdGU7CgogICAgLy9fdHJfZmx1c2hfYml0cyhzKTsKICAgIGxldCBsZW4gPSBzLnBlbmRpbmc7CiAgICBpZiAobGVuID4gc3RybS5hdmFpbF9vdXQpIHsKICAgICAgbGVuID0gc3RybS5hdmFpbF9vdXQ7CiAgICB9CiAgICBpZiAobGVuID09PSAwKSB7IHJldHVybjsgfQoKICAgIHN0cm0ub3V0cHV0LnNldChzLnBlbmRpbmdfYnVmLnN1YmFycmF5KHMucGVuZGluZ19vdXQsIHMucGVuZGluZ19vdXQgKyBsZW4pLCBzdHJtLm5leHRfb3V0KTsKICAgIHN0cm0ubmV4dF9vdXQgKz0gbGVuOwogICAgcy5wZW5kaW5nX291dCArPSBsZW47CiAgICBzdHJtLnRvdGFsX291dCArPSBsZW47CiAgICBzdHJtLmF2YWlsX291dCAtPSBsZW47CiAgICBzLnBlbmRpbmcgLT0gbGVuOwogICAgaWYgKHMucGVuZGluZyA9PT0gMCkgewogICAgICBzLnBlbmRpbmdfb3V0ID0gMDsKICAgIH0KICB9OwoKCiAgY29uc3QgZmx1c2hfYmxvY2tfb25seSA9IChzLCBsYXN0KSA9PiB7CiAgICBfdHJfZmx1c2hfYmxvY2socywgKHMuYmxvY2tfc3RhcnQgPj0gMCA/IHMuYmxvY2tfc3RhcnQgOiAtMSksIHMuc3Ryc3RhcnQgLSBzLmJsb2NrX3N0YXJ0LCBsYXN0KTsKICAgIHMuYmxvY2tfc3RhcnQgPSBzLnN0cnN0YXJ0OwogICAgZmx1c2hfcGVuZGluZyhzLnN0cm0pOwogIH07CgoKICBjb25zdCBwdXRfYnl0ZSA9IChzLCBiKSA9PiB7CiAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9IGI7CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBQdXQgYSBzaG9ydCBpbiB0aGUgcGVuZGluZyBidWZmZXIuIFRoZSAxNi1iaXQgdmFsdWUgaXMgcHV0IGluIE1TQiBvcmRlci4KICAgKiBJTiBhc3NlcnRpb246IHRoZSBzdHJlYW0gc3RhdGUgaXMgY29ycmVjdCBhbmQgdGhlcmUgaXMgZW5vdWdoIHJvb20gaW4KICAgKiBwZW5kaW5nX2J1Zi4KICAgKi8KICBjb25zdCBwdXRTaG9ydE1TQiA9IChzLCBiKSA9PiB7CgogICAgLy8gIHB1dF9ieXRlKHMsIChCeXRlKShiID4+IDgpKTsKICAvLyAgcHV0X2J5dGUocywgKEJ5dGUpKGIgJiAweGZmKSk7CiAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9IChiID4+PiA4KSAmIDB4ZmY7CiAgICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9IGIgJiAweGZmOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBSZWFkIGEgbmV3IGJ1ZmZlciBmcm9tIHRoZSBjdXJyZW50IGlucHV0IHN0cmVhbSwgdXBkYXRlIHRoZSBhZGxlcjMyCiAgICogYW5kIHRvdGFsIG51bWJlciBvZiBieXRlcyByZWFkLiAgQWxsIGRlZmxhdGUoKSBpbnB1dCBnb2VzIHRocm91Z2gKICAgKiB0aGlzIGZ1bmN0aW9uIHNvIHNvbWUgYXBwbGljYXRpb25zIG1heSB3aXNoIHRvIG1vZGlmeSBpdCB0byBhdm9pZAogICAqIGFsbG9jYXRpbmcgYSBsYXJnZSBzdHJtLT5pbnB1dCBidWZmZXIgYW5kIGNvcHlpbmcgZnJvbSBpdC4KICAgKiAoU2VlIGFsc28gZmx1c2hfcGVuZGluZygpKS4KICAgKi8KICBjb25zdCByZWFkX2J1ZiA9IChzdHJtLCBidWYsIHN0YXJ0LCBzaXplKSA9PiB7CgogICAgbGV0IGxlbiA9IHN0cm0uYXZhaWxfaW47CgogICAgaWYgKGxlbiA+IHNpemUpIHsgbGVuID0gc2l6ZTsgfQogICAgaWYgKGxlbiA9PT0gMCkgeyByZXR1cm4gMDsgfQoKICAgIHN0cm0uYXZhaWxfaW4gLT0gbGVuOwoKICAgIC8vIHptZW1jcHkoYnVmLCBzdHJtLT5uZXh0X2luLCBsZW4pOwogICAgYnVmLnNldChzdHJtLmlucHV0LnN1YmFycmF5KHN0cm0ubmV4dF9pbiwgc3RybS5uZXh0X2luICsgbGVuKSwgc3RhcnQpOwogICAgaWYgKHN0cm0uc3RhdGUud3JhcCA9PT0gMSkgewogICAgICBzdHJtLmFkbGVyID0gYWRsZXIzMl8xKHN0cm0uYWRsZXIsIGJ1ZiwgbGVuLCBzdGFydCk7CiAgICB9CgogICAgZWxzZSBpZiAoc3RybS5zdGF0ZS53cmFwID09PSAyKSB7CiAgICAgIHN0cm0uYWRsZXIgPSBjcmMzMl8xKHN0cm0uYWRsZXIsIGJ1ZiwgbGVuLCBzdGFydCk7CiAgICB9CgogICAgc3RybS5uZXh0X2luICs9IGxlbjsKICAgIHN0cm0udG90YWxfaW4gKz0gbGVuOwoKICAgIHJldHVybiBsZW47CiAgfTsKCgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIFNldCBtYXRjaF9zdGFydCB0byB0aGUgbG9uZ2VzdCBtYXRjaCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gc3RyaW5nIGFuZAogICAqIHJldHVybiBpdHMgbGVuZ3RoLiBNYXRjaGVzIHNob3J0ZXIgb3IgZXF1YWwgdG8gcHJldl9sZW5ndGggYXJlIGRpc2NhcmRlZCwKICAgKiBpbiB3aGljaCBjYXNlIHRoZSByZXN1bHQgaXMgZXF1YWwgdG8gcHJldl9sZW5ndGggYW5kIG1hdGNoX3N0YXJ0IGlzCiAgICogZ2FyYmFnZS4KICAgKiBJTiBhc3NlcnRpb25zOiBjdXJfbWF0Y2ggaXMgdGhlIGhlYWQgb2YgdGhlIGhhc2ggY2hhaW4gZm9yIHRoZSBjdXJyZW50CiAgICogICBzdHJpbmcgKHN0cnN0YXJ0KSBhbmQgaXRzIGRpc3RhbmNlIGlzIDw9IE1BWF9ESVNULCBhbmQgcHJldl9sZW5ndGggPj0gMQogICAqIE9VVCBhc3NlcnRpb246IHRoZSBtYXRjaCBsZW5ndGggaXMgbm90IGdyZWF0ZXIgdGhhbiBzLT5sb29rYWhlYWQuCiAgICovCiAgY29uc3QgbG9uZ2VzdF9tYXRjaCA9IChzLCBjdXJfbWF0Y2gpID0+IHsKCiAgICBsZXQgY2hhaW5fbGVuZ3RoID0gcy5tYXhfY2hhaW5fbGVuZ3RoOyAgICAgIC8qIG1heCBoYXNoIGNoYWluIGxlbmd0aCAqLwogICAgbGV0IHNjYW4gPSBzLnN0cnN0YXJ0OyAvKiBjdXJyZW50IHN0cmluZyAqLwogICAgbGV0IG1hdGNoOyAgICAgICAgICAgICAgICAgICAgICAgLyogbWF0Y2hlZCBzdHJpbmcgKi8KICAgIGxldCBsZW47ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbGVuZ3RoIG9mIGN1cnJlbnQgbWF0Y2ggKi8KICAgIGxldCBiZXN0X2xlbiA9IHMucHJldl9sZW5ndGg7ICAgICAgICAgICAgICAvKiBiZXN0IG1hdGNoIGxlbmd0aCBzbyBmYXIgKi8KICAgIGxldCBuaWNlX21hdGNoID0gcy5uaWNlX21hdGNoOyAgICAgICAgICAgICAvKiBzdG9wIGlmIG1hdGNoIGxvbmcgZW5vdWdoICovCiAgICBjb25zdCBsaW1pdCA9IChzLnN0cnN0YXJ0ID4gKHMud19zaXplIC0gTUlOX0xPT0tBSEVBRCkpID8KICAgICAgICBzLnN0cnN0YXJ0IC0gKHMud19zaXplIC0gTUlOX0xPT0tBSEVBRCkgOiAwLypOSUwqLzsKCiAgICBjb25zdCBfd2luID0gcy53aW5kb3c7IC8vIHNob3J0Y3V0CgogICAgY29uc3Qgd21hc2sgPSBzLndfbWFzazsKICAgIGNvbnN0IHByZXYgID0gcy5wcmV2OwoKICAgIC8qIFN0b3Agd2hlbiBjdXJfbWF0Y2ggYmVjb21lcyA8PSBsaW1pdC4gVG8gc2ltcGxpZnkgdGhlIGNvZGUsCiAgICAgKiB3ZSBwcmV2ZW50IG1hdGNoZXMgd2l0aCB0aGUgc3RyaW5nIG9mIHdpbmRvdyBpbmRleCAwLgogICAgICovCgogICAgY29uc3Qgc3RyZW5kID0gcy5zdHJzdGFydCArIE1BWF9NQVRDSDsKICAgIGxldCBzY2FuX2VuZDEgID0gX3dpbltzY2FuICsgYmVzdF9sZW4gLSAxXTsKICAgIGxldCBzY2FuX2VuZCAgID0gX3dpbltzY2FuICsgYmVzdF9sZW5dOwoKICAgIC8qIFRoZSBjb2RlIGlzIG9wdGltaXplZCBmb3IgSEFTSF9CSVRTID49IDggYW5kIE1BWF9NQVRDSC0yIG11bHRpcGxlIG9mIDE2LgogICAgICogSXQgaXMgZWFzeSB0byBnZXQgcmlkIG9mIHRoaXMgb3B0aW1pemF0aW9uIGlmIG5lY2Vzc2FyeS4KICAgICAqLwogICAgLy8gQXNzZXJ0KHMtPmhhc2hfYml0cyA+PSA4ICYmIE1BWF9NQVRDSCA9PSAyNTgsICJDb2RlIHRvbyBjbGV2ZXIiKTsKCiAgICAvKiBEbyBub3Qgd2FzdGUgdG9vIG11Y2ggdGltZSBpZiB3ZSBhbHJlYWR5IGhhdmUgYSBnb29kIG1hdGNoOiAqLwogICAgaWYgKHMucHJldl9sZW5ndGggPj0gcy5nb29kX21hdGNoKSB7CiAgICAgIGNoYWluX2xlbmd0aCA+Pj0gMjsKICAgIH0KICAgIC8qIERvIG5vdCBsb29rIGZvciBtYXRjaGVzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBpbnB1dC4gVGhpcyBpcyBuZWNlc3NhcnkKICAgICAqIHRvIG1ha2UgZGVmbGF0ZSBkZXRlcm1pbmlzdGljLgogICAgICovCiAgICBpZiAobmljZV9tYXRjaCA+IHMubG9va2FoZWFkKSB7IG5pY2VfbWF0Y2ggPSBzLmxvb2thaGVhZDsgfQoKICAgIC8vIEFzc2VydCgodWxnKXMtPnN0cnN0YXJ0IDw9IHMtPndpbmRvd19zaXplLU1JTl9MT09LQUhFQUQsICJuZWVkIGxvb2thaGVhZCIpOwoKICAgIGRvIHsKICAgICAgLy8gQXNzZXJ0KGN1cl9tYXRjaCA8IHMtPnN0cnN0YXJ0LCAibm8gZnV0dXJlIik7CiAgICAgIG1hdGNoID0gY3VyX21hdGNoOwoKICAgICAgLyogU2tpcCB0byBuZXh0IG1hdGNoIGlmIHRoZSBtYXRjaCBsZW5ndGggY2Fubm90IGluY3JlYXNlCiAgICAgICAqIG9yIGlmIHRoZSBtYXRjaCBsZW5ndGggaXMgbGVzcyB0aGFuIDIuICBOb3RlIHRoYXQgdGhlIGNoZWNrcyBiZWxvdwogICAgICAgKiBmb3IgaW5zdWZmaWNpZW50IGxvb2thaGVhZCBvbmx5IG9jY3VyIG9jY2FzaW9uYWxseSBmb3IgcGVyZm9ybWFuY2UKICAgICAgICogcmVhc29ucy4gIFRoZXJlZm9yZSB1bmluaXRpYWxpemVkIG1lbW9yeSB3aWxsIGJlIGFjY2Vzc2VkLCBhbmQKICAgICAgICogY29uZGl0aW9uYWwganVtcHMgd2lsbCBiZSBtYWRlIHRoYXQgZGVwZW5kIG9uIHRob3NlIHZhbHVlcy4KICAgICAgICogSG93ZXZlciB0aGUgbGVuZ3RoIG9mIHRoZSBtYXRjaCBpcyBsaW1pdGVkIHRvIHRoZSBsb29rYWhlYWQsIHNvCiAgICAgICAqIHRoZSBvdXRwdXQgb2YgZGVmbGF0ZSBpcyBub3QgYWZmZWN0ZWQgYnkgdGhlIHVuaW5pdGlhbGl6ZWQgdmFsdWVzLgogICAgICAgKi8KCiAgICAgIGlmIChfd2luW21hdGNoICsgYmVzdF9sZW5dICAgICAhPT0gc2Nhbl9lbmQgIHx8CiAgICAgICAgICBfd2luW21hdGNoICsgYmVzdF9sZW4gLSAxXSAhPT0gc2Nhbl9lbmQxIHx8CiAgICAgICAgICBfd2luW21hdGNoXSAgICAgICAgICAgICAgICAhPT0gX3dpbltzY2FuXSB8fAogICAgICAgICAgX3dpblsrK21hdGNoXSAgICAgICAgICAgICAgIT09IF93aW5bc2NhbiArIDFdKSB7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIC8qIFRoZSBjaGVjayBhdCBiZXN0X2xlbi0xIGNhbiBiZSByZW1vdmVkIGJlY2F1c2UgaXQgd2lsbCBiZSBtYWRlCiAgICAgICAqIGFnYWluIGxhdGVyLiAoVGhpcyBoZXVyaXN0aWMgaXMgbm90IGFsd2F5cyBhIHdpbi4pCiAgICAgICAqIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY29tcGFyZSBzY2FuWzJdIGFuZCBtYXRjaFsyXSBzaW5jZSB0aGV5CiAgICAgICAqIGFyZSBhbHdheXMgZXF1YWwgd2hlbiB0aGUgb3RoZXIgYnl0ZXMgbWF0Y2gsIGdpdmVuIHRoYXQKICAgICAgICogdGhlIGhhc2gga2V5cyBhcmUgZXF1YWwgYW5kIHRoYXQgSEFTSF9CSVRTID49IDguCiAgICAgICAqLwogICAgICBzY2FuICs9IDI7CiAgICAgIG1hdGNoKys7CiAgICAgIC8vIEFzc2VydCgqc2NhbiA9PSAqbWF0Y2gsICJtYXRjaFsyXT8iKTsKCiAgICAgIC8qIFdlIGNoZWNrIGZvciBpbnN1ZmZpY2llbnQgbG9va2FoZWFkIG9ubHkgZXZlcnkgOHRoIGNvbXBhcmlzb247CiAgICAgICAqIHRoZSAyNTZ0aCBjaGVjayB3aWxsIGJlIG1hZGUgYXQgc3Ryc3RhcnQrMjU4LgogICAgICAgKi8KICAgICAgZG8gewogICAgICAgIC8qanNoaW50IG5vZW1wdHk6ZmFsc2UqLwogICAgICB9IHdoaWxlIChfd2luWysrc2Nhbl0gPT09IF93aW5bKyttYXRjaF0gJiYgX3dpblsrK3NjYW5dID09PSBfd2luWysrbWF0Y2hdICYmCiAgICAgICAgICAgICAgIF93aW5bKytzY2FuXSA9PT0gX3dpblsrK21hdGNoXSAmJiBfd2luWysrc2Nhbl0gPT09IF93aW5bKyttYXRjaF0gJiYKICAgICAgICAgICAgICAgX3dpblsrK3NjYW5dID09PSBfd2luWysrbWF0Y2hdICYmIF93aW5bKytzY2FuXSA9PT0gX3dpblsrK21hdGNoXSAmJgogICAgICAgICAgICAgICBfd2luWysrc2Nhbl0gPT09IF93aW5bKyttYXRjaF0gJiYgX3dpblsrK3NjYW5dID09PSBfd2luWysrbWF0Y2hdICYmCiAgICAgICAgICAgICAgIHNjYW4gPCBzdHJlbmQpOwoKICAgICAgLy8gQXNzZXJ0KHNjYW4gPD0gcy0+d2luZG93Kyh1bnNpZ25lZCkocy0+d2luZG93X3NpemUtMSksICJ3aWxkIHNjYW4iKTsKCiAgICAgIGxlbiA9IE1BWF9NQVRDSCAtIChzdHJlbmQgLSBzY2FuKTsKICAgICAgc2NhbiA9IHN0cmVuZCAtIE1BWF9NQVRDSDsKCiAgICAgIGlmIChsZW4gPiBiZXN0X2xlbikgewogICAgICAgIHMubWF0Y2hfc3RhcnQgPSBjdXJfbWF0Y2g7CiAgICAgICAgYmVzdF9sZW4gPSBsZW47CiAgICAgICAgaWYgKGxlbiA+PSBuaWNlX21hdGNoKSB7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgc2Nhbl9lbmQxICA9IF93aW5bc2NhbiArIGJlc3RfbGVuIC0gMV07CiAgICAgICAgc2Nhbl9lbmQgICA9IF93aW5bc2NhbiArIGJlc3RfbGVuXTsKICAgICAgfQogICAgfSB3aGlsZSAoKGN1cl9tYXRjaCA9IHByZXZbY3VyX21hdGNoICYgd21hc2tdKSA+IGxpbWl0ICYmIC0tY2hhaW5fbGVuZ3RoICE9PSAwKTsKCiAgICBpZiAoYmVzdF9sZW4gPD0gcy5sb29rYWhlYWQpIHsKICAgICAgcmV0dXJuIGJlc3RfbGVuOwogICAgfQogICAgcmV0dXJuIHMubG9va2FoZWFkOwogIH07CgoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBGaWxsIHRoZSB3aW5kb3cgd2hlbiB0aGUgbG9va2FoZWFkIGJlY29tZXMgaW5zdWZmaWNpZW50LgogICAqIFVwZGF0ZXMgc3Ryc3RhcnQgYW5kIGxvb2thaGVhZC4KICAgKgogICAqIElOIGFzc2VydGlvbjogbG9va2FoZWFkIDwgTUlOX0xPT0tBSEVBRAogICAqIE9VVCBhc3NlcnRpb25zOiBzdHJzdGFydCA8PSB3aW5kb3dfc2l6ZS1NSU5fTE9PS0FIRUFECiAgICogICAgQXQgbGVhc3Qgb25lIGJ5dGUgaGFzIGJlZW4gcmVhZCwgb3IgYXZhaWxfaW4gPT0gMDsgcmVhZHMgYXJlCiAgICogICAgcGVyZm9ybWVkIGZvciBhdCBsZWFzdCB0d28gYnl0ZXMgKHJlcXVpcmVkIGZvciB0aGUgemlwIHRyYW5zbGF0ZV9lb2wKICAgKiAgICBvcHRpb24gLS0gbm90IHN1cHBvcnRlZCBoZXJlKS4KICAgKi8KICBjb25zdCBmaWxsX3dpbmRvdyA9IChzKSA9PiB7CgogICAgY29uc3QgX3dfc2l6ZSA9IHMud19zaXplOwogICAgbGV0IHAsIG4sIG0sIG1vcmUsIHN0cjsKCiAgICAvL0Fzc2VydChzLT5sb29rYWhlYWQgPCBNSU5fTE9PS0FIRUFELCAiYWxyZWFkeSBlbm91Z2ggbG9va2FoZWFkIik7CgogICAgZG8gewogICAgICBtb3JlID0gcy53aW5kb3dfc2l6ZSAtIHMubG9va2FoZWFkIC0gcy5zdHJzdGFydDsKCiAgICAgIC8vIEpTIGludHMgaGF2ZSAzMiBiaXQsIGJsb2NrIGJlbG93IG5vdCBuZWVkZWQKICAgICAgLyogRGVhbCB3aXRoICFAIyQlIDY0SyBsaW1pdDogKi8KICAgICAgLy9pZiAoc2l6ZW9mKGludCkgPD0gMikgewogICAgICAvLyAgICBpZiAobW9yZSA9PSAwICYmIHMtPnN0cnN0YXJ0ID09IDAgJiYgcy0+bG9va2FoZWFkID09IDApIHsKICAgICAgLy8gICAgICAgIG1vcmUgPSB3c2l6ZTsKICAgICAgLy8KICAgICAgLy8gIH0gZWxzZSBpZiAobW9yZSA9PSAodW5zaWduZWQpKC0xKSkgewogICAgICAvLyAgICAgICAgLyogVmVyeSB1bmxpa2VseSwgYnV0IHBvc3NpYmxlIG9uIDE2IGJpdCBtYWNoaW5lIGlmCiAgICAgIC8vICAgICAgICAgKiBzdHJzdGFydCA9PSAwICYmIGxvb2thaGVhZCA9PSAxIChpbnB1dCBkb25lIGEgYnl0ZSBhdCB0aW1lKQogICAgICAvLyAgICAgICAgICovCiAgICAgIC8vICAgICAgICBtb3JlLS07CiAgICAgIC8vICAgIH0KICAgICAgLy99CgoKICAgICAgLyogSWYgdGhlIHdpbmRvdyBpcyBhbG1vc3QgZnVsbCBhbmQgdGhlcmUgaXMgaW5zdWZmaWNpZW50IGxvb2thaGVhZCwKICAgICAgICogbW92ZSB0aGUgdXBwZXIgaGFsZiB0byB0aGUgbG93ZXIgb25lIHRvIG1ha2Ugcm9vbSBpbiB0aGUgdXBwZXIgaGFsZi4KICAgICAgICovCiAgICAgIGlmIChzLnN0cnN0YXJ0ID49IF93X3NpemUgKyAoX3dfc2l6ZSAtIE1JTl9MT09LQUhFQUQpKSB7CgogICAgICAgIHMud2luZG93LnNldChzLndpbmRvdy5zdWJhcnJheShfd19zaXplLCBfd19zaXplICsgX3dfc2l6ZSksIDApOwogICAgICAgIHMubWF0Y2hfc3RhcnQgLT0gX3dfc2l6ZTsKICAgICAgICBzLnN0cnN0YXJ0IC09IF93X3NpemU7CiAgICAgICAgLyogd2Ugbm93IGhhdmUgc3Ryc3RhcnQgPj0gTUFYX0RJU1QgKi8KICAgICAgICBzLmJsb2NrX3N0YXJ0IC09IF93X3NpemU7CgogICAgICAgIC8qIFNsaWRlIHRoZSBoYXNoIHRhYmxlIChjb3VsZCBiZSBhdm9pZGVkIHdpdGggMzIgYml0IHZhbHVlcwogICAgICAgICBhdCB0aGUgZXhwZW5zZSBvZiBtZW1vcnkgdXNhZ2UpLiBXZSBzbGlkZSBldmVuIHdoZW4gbGV2ZWwgPT0gMAogICAgICAgICB0byBrZWVwIHRoZSBoYXNoIHRhYmxlIGNvbnNpc3RlbnQgaWYgd2Ugc3dpdGNoIGJhY2sgdG8gbGV2ZWwgPiAwCiAgICAgICAgIGxhdGVyLiAoVXNpbmcgbGV2ZWwgMCBwZXJtYW5lbnRseSBpcyBub3QgYW4gb3B0aW1hbCB1c2FnZSBvZgogICAgICAgICB6bGliLCBzbyB3ZSBkb24ndCBjYXJlIGFib3V0IHRoaXMgcGF0aG9sb2dpY2FsIGNhc2UuKQogICAgICAgICAqLwoKICAgICAgICBuID0gcy5oYXNoX3NpemU7CiAgICAgICAgcCA9IG47CgogICAgICAgIGRvIHsKICAgICAgICAgIG0gPSBzLmhlYWRbLS1wXTsKICAgICAgICAgIHMuaGVhZFtwXSA9IChtID49IF93X3NpemUgPyBtIC0gX3dfc2l6ZSA6IDApOwogICAgICAgIH0gd2hpbGUgKC0tbik7CgogICAgICAgIG4gPSBfd19zaXplOwogICAgICAgIHAgPSBuOwoKICAgICAgICBkbyB7CiAgICAgICAgICBtID0gcy5wcmV2Wy0tcF07CiAgICAgICAgICBzLnByZXZbcF0gPSAobSA+PSBfd19zaXplID8gbSAtIF93X3NpemUgOiAwKTsKICAgICAgICAgIC8qIElmIG4gaXMgbm90IG9uIGFueSBoYXNoIGNoYWluLCBwcmV2W25dIGlzIGdhcmJhZ2UgYnV0CiAgICAgICAgICAgKiBpdHMgdmFsdWUgd2lsbCBuZXZlciBiZSB1c2VkLgogICAgICAgICAgICovCiAgICAgICAgfSB3aGlsZSAoLS1uKTsKCiAgICAgICAgbW9yZSArPSBfd19zaXplOwogICAgICB9CiAgICAgIGlmIChzLnN0cm0uYXZhaWxfaW4gPT09IDApIHsKICAgICAgICBicmVhazsKICAgICAgfQoKICAgICAgLyogSWYgdGhlcmUgd2FzIG5vIHNsaWRpbmc6CiAgICAgICAqICAgIHN0cnN0YXJ0IDw9IFdTSVpFK01BWF9ESVNULTEgJiYgbG9va2FoZWFkIDw9IE1JTl9MT09LQUhFQUQgLSAxICYmCiAgICAgICAqICAgIG1vcmUgPT0gd2luZG93X3NpemUgLSBsb29rYWhlYWQgLSBzdHJzdGFydAogICAgICAgKiA9PiBtb3JlID49IHdpbmRvd19zaXplIC0gKE1JTl9MT09LQUhFQUQtMSArIFdTSVpFICsgTUFYX0RJU1QtMSkKICAgICAgICogPT4gbW9yZSA+PSB3aW5kb3dfc2l6ZSAtIDIqV1NJWkUgKyAyCiAgICAgICAqIEluIHRoZSBCSUdfTUVNIG9yIE1NQVAgY2FzZSAobm90IHlldCBzdXBwb3J0ZWQpLAogICAgICAgKiAgIHdpbmRvd19zaXplID09IGlucHV0X3NpemUgKyBNSU5fTE9PS0FIRUFEICAmJgogICAgICAgKiAgIHN0cnN0YXJ0ICsgcy0+bG9va2FoZWFkIDw9IGlucHV0X3NpemUgPT4gbW9yZSA+PSBNSU5fTE9PS0FIRUFELgogICAgICAgKiBPdGhlcndpc2UsIHdpbmRvd19zaXplID09IDIqV1NJWkUgc28gbW9yZSA+PSAyLgogICAgICAgKiBJZiB0aGVyZSB3YXMgc2xpZGluZywgbW9yZSA+PSBXU0laRS4gU28gaW4gYWxsIGNhc2VzLCBtb3JlID49IDIuCiAgICAgICAqLwogICAgICAvL0Fzc2VydChtb3JlID49IDIsICJtb3JlIDwgMiIpOwogICAgICBuID0gcmVhZF9idWYocy5zdHJtLCBzLndpbmRvdywgcy5zdHJzdGFydCArIHMubG9va2FoZWFkLCBtb3JlKTsKICAgICAgcy5sb29rYWhlYWQgKz0gbjsKCiAgICAgIC8qIEluaXRpYWxpemUgdGhlIGhhc2ggdmFsdWUgbm93IHRoYXQgd2UgaGF2ZSBzb21lIGlucHV0OiAqLwogICAgICBpZiAocy5sb29rYWhlYWQgKyBzLmluc2VydCA+PSBNSU5fTUFUQ0gpIHsKICAgICAgICBzdHIgPSBzLnN0cnN0YXJ0IC0gcy5pbnNlcnQ7CiAgICAgICAgcy5pbnNfaCA9IHMud2luZG93W3N0cl07CgogICAgICAgIC8qIFVQREFURV9IQVNIKHMsIHMtPmluc19oLCBzLT53aW5kb3dbc3RyICsgMV0pOyAqLwogICAgICAgIHMuaW5zX2ggPSBIQVNIKHMsIHMuaW5zX2gsIHMud2luZG93W3N0ciArIDFdKTsKICAvLyNpZiBNSU5fTUFUQ0ggIT0gMwogIC8vICAgICAgICBDYWxsIHVwZGF0ZV9oYXNoKCkgTUlOX01BVENILTMgbW9yZSB0aW1lcwogIC8vI2VuZGlmCiAgICAgICAgd2hpbGUgKHMuaW5zZXJ0KSB7CiAgICAgICAgICAvKiBVUERBVEVfSEFTSChzLCBzLT5pbnNfaCwgcy0+d2luZG93W3N0ciArIE1JTl9NQVRDSC0xXSk7ICovCiAgICAgICAgICBzLmluc19oID0gSEFTSChzLCBzLmluc19oLCBzLndpbmRvd1tzdHIgKyBNSU5fTUFUQ0ggLSAxXSk7CgogICAgICAgICAgcy5wcmV2W3N0ciAmIHMud19tYXNrXSA9IHMuaGVhZFtzLmluc19oXTsKICAgICAgICAgIHMuaGVhZFtzLmluc19oXSA9IHN0cjsKICAgICAgICAgIHN0cisrOwogICAgICAgICAgcy5pbnNlcnQtLTsKICAgICAgICAgIGlmIChzLmxvb2thaGVhZCArIHMuaW5zZXJ0IDwgTUlOX01BVENIKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICAvKiBJZiB0aGUgd2hvbGUgaW5wdXQgaGFzIGxlc3MgdGhhbiBNSU5fTUFUQ0ggYnl0ZXMsIGluc19oIGlzIGdhcmJhZ2UsCiAgICAgICAqIGJ1dCB0aGlzIGlzIG5vdCBpbXBvcnRhbnQgc2luY2Ugb25seSBsaXRlcmFsIGJ5dGVzIHdpbGwgYmUgZW1pdHRlZC4KICAgICAgICovCgogICAgfSB3aGlsZSAocy5sb29rYWhlYWQgPCBNSU5fTE9PS0FIRUFEICYmIHMuc3RybS5hdmFpbF9pbiAhPT0gMCk7CgogICAgLyogSWYgdGhlIFdJTl9JTklUIGJ5dGVzIGFmdGVyIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgZGF0YSBoYXZlIG5ldmVyIGJlZW4KICAgICAqIHdyaXR0ZW4sIHRoZW4gemVybyB0aG9zZSBieXRlcyBpbiBvcmRlciB0byBhdm9pZCBtZW1vcnkgY2hlY2sgcmVwb3J0cyBvZgogICAgICogdGhlIHVzZSBvZiB1bmluaXRpYWxpemVkIChvciB1bmluaXRpYWxpc2VkIGFzIEp1bGlhbiB3cml0ZXMpIGJ5dGVzIGJ5CiAgICAgKiB0aGUgbG9uZ2VzdCBtYXRjaCByb3V0aW5lcy4gIFVwZGF0ZSB0aGUgaGlnaCB3YXRlciBtYXJrIGZvciB0aGUgbmV4dAogICAgICogdGltZSB0aHJvdWdoIGhlcmUuICBXSU5fSU5JVCBpcyBzZXQgdG8gTUFYX01BVENIIHNpbmNlIHRoZSBsb25nZXN0IG1hdGNoCiAgICAgKiByb3V0aW5lcyBhbGxvdyBzY2FubmluZyB0byBzdHJzdGFydCArIE1BWF9NQVRDSCwgaWdub3JpbmcgbG9va2FoZWFkLgogICAgICovCiAgLy8gIGlmIChzLmhpZ2hfd2F0ZXIgPCBzLndpbmRvd19zaXplKSB7CiAgLy8gICAgY29uc3QgY3VyciA9IHMuc3Ryc3RhcnQgKyBzLmxvb2thaGVhZDsKICAvLyAgICBsZXQgaW5pdCA9IDA7CiAgLy8KICAvLyAgICBpZiAocy5oaWdoX3dhdGVyIDwgY3VycikgewogIC8vICAgICAgLyogUHJldmlvdXMgaGlnaCB3YXRlciBtYXJrIGJlbG93IGN1cnJlbnQgZGF0YSAtLSB6ZXJvIFdJTl9JTklUCiAgLy8gICAgICAgKiBieXRlcyBvciB1cCB0byBlbmQgb2Ygd2luZG93LCB3aGljaGV2ZXIgaXMgbGVzcy4KICAvLyAgICAgICAqLwogIC8vICAgICAgaW5pdCA9IHMud2luZG93X3NpemUgLSBjdXJyOwogIC8vICAgICAgaWYgKGluaXQgPiBXSU5fSU5JVCkKICAvLyAgICAgICAgaW5pdCA9IFdJTl9JTklUOwogIC8vICAgICAgem1lbXplcm8ocy0+d2luZG93ICsgY3VyciwgKHVuc2lnbmVkKWluaXQpOwogIC8vICAgICAgcy0+aGlnaF93YXRlciA9IGN1cnIgKyBpbml0OwogIC8vICAgIH0KICAvLyAgICBlbHNlIGlmIChzLT5oaWdoX3dhdGVyIDwgKHVsZyljdXJyICsgV0lOX0lOSVQpIHsKICAvLyAgICAgIC8qIEhpZ2ggd2F0ZXIgbWFyayBhdCBvciBhYm92ZSBjdXJyZW50IGRhdGEsIGJ1dCBiZWxvdyBjdXJyZW50IGRhdGEKICAvLyAgICAgICAqIHBsdXMgV0lOX0lOSVQgLS0gemVybyBvdXQgdG8gY3VycmVudCBkYXRhIHBsdXMgV0lOX0lOSVQsIG9yIHVwCiAgLy8gICAgICAgKiB0byBlbmQgb2Ygd2luZG93LCB3aGljaGV2ZXIgaXMgbGVzcy4KICAvLyAgICAgICAqLwogIC8vICAgICAgaW5pdCA9ICh1bGcpY3VyciArIFdJTl9JTklUIC0gcy0+aGlnaF93YXRlcjsKICAvLyAgICAgIGlmIChpbml0ID4gcy0+d2luZG93X3NpemUgLSBzLT5oaWdoX3dhdGVyKQogIC8vICAgICAgICBpbml0ID0gcy0+d2luZG93X3NpemUgLSBzLT5oaWdoX3dhdGVyOwogIC8vICAgICAgem1lbXplcm8ocy0+d2luZG93ICsgcy0+aGlnaF93YXRlciwgKHVuc2lnbmVkKWluaXQpOwogIC8vICAgICAgcy0+aGlnaF93YXRlciArPSBpbml0OwogIC8vICAgIH0KICAvLyAgfQogIC8vCiAgLy8gIEFzc2VydCgodWxnKXMtPnN0cnN0YXJ0IDw9IHMtPndpbmRvd19zaXplIC0gTUlOX0xPT0tBSEVBRCwKICAvLyAgICAibm90IGVub3VnaCByb29tIGZvciBzZWFyY2giKTsKICB9OwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBDb3B5IHdpdGhvdXQgY29tcHJlc3Npb24gYXMgbXVjaCBhcyBwb3NzaWJsZSBmcm9tIHRoZSBpbnB1dCBzdHJlYW0sIHJldHVybgogICAqIHRoZSBjdXJyZW50IGJsb2NrIHN0YXRlLgogICAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgaW5zZXJ0IG5ldyBzdHJpbmdzIGluIHRoZSBkaWN0aW9uYXJ5IHNpbmNlCiAgICogdW5jb21wcmVzc2libGUgZGF0YSBpcyBwcm9iYWJseSBub3QgdXNlZnVsLiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQKICAgKiBvbmx5IGZvciB0aGUgbGV2ZWw9MCBjb21wcmVzc2lvbiBvcHRpb24uCiAgICogTk9URTogdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgb3B0aW1pemVkIHRvIGF2b2lkIGV4dHJhIGNvcHlpbmcgZnJvbQogICAqIHdpbmRvdyB0byBwZW5kaW5nX2J1Zi4KICAgKi8KICBjb25zdCBkZWZsYXRlX3N0b3JlZCA9IChzLCBmbHVzaCkgPT4gewoKICAgIC8qIFN0b3JlZCBibG9ja3MgYXJlIGxpbWl0ZWQgdG8gMHhmZmZmIGJ5dGVzLCBwZW5kaW5nX2J1ZiBpcyBsaW1pdGVkCiAgICAgKiB0byBwZW5kaW5nX2J1Zl9zaXplLCBhbmQgZWFjaCBzdG9yZWQgYmxvY2sgaGFzIGEgNSBieXRlIGhlYWRlcjoKICAgICAqLwogICAgbGV0IG1heF9ibG9ja19zaXplID0gMHhmZmZmOwoKICAgIGlmIChtYXhfYmxvY2tfc2l6ZSA+IHMucGVuZGluZ19idWZfc2l6ZSAtIDUpIHsKICAgICAgbWF4X2Jsb2NrX3NpemUgPSBzLnBlbmRpbmdfYnVmX3NpemUgLSA1OwogICAgfQoKICAgIC8qIENvcHkgYXMgbXVjaCBhcyBwb3NzaWJsZSBmcm9tIGlucHV0IHRvIG91dHB1dDogKi8KICAgIGZvciAoOzspIHsKICAgICAgLyogRmlsbCB0aGUgd2luZG93IGFzIG11Y2ggYXMgcG9zc2libGU6ICovCiAgICAgIGlmIChzLmxvb2thaGVhZCA8PSAxKSB7CgogICAgICAgIC8vQXNzZXJ0KHMtPnN0cnN0YXJ0IDwgcy0+d19zaXplK01BWF9ESVNUKHMpIHx8CiAgICAgICAgLy8gIHMtPmJsb2NrX3N0YXJ0ID49IChsb25nKXMtPndfc2l6ZSwgInNsaWRlIHRvbyBsYXRlIik7CiAgLy8gICAgICBpZiAoIShzLnN0cnN0YXJ0IDwgcy53X3NpemUgKyAocy53X3NpemUgLSBNSU5fTE9PS0FIRUFEKSB8fAogIC8vICAgICAgICBzLmJsb2NrX3N0YXJ0ID49IHMud19zaXplKSkgewogIC8vICAgICAgICB0aHJvdyAgbmV3IEVycm9yKCJzbGlkZSB0b28gbGF0ZSIpOwogIC8vICAgICAgfQoKICAgICAgICBmaWxsX3dpbmRvdyhzKTsKICAgICAgICBpZiAocy5sb29rYWhlYWQgPT09IDAgJiYgZmx1c2ggPT09IFpfTk9fRkxVU0gkMikgewogICAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgICB9CgogICAgICAgIGlmIChzLmxvb2thaGVhZCA9PT0gMCkgewogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIC8qIGZsdXNoIHRoZSBjdXJyZW50IGJsb2NrICovCiAgICAgIH0KICAgICAgLy9Bc3NlcnQocy0+YmxvY2tfc3RhcnQgPj0gMEwsICJibG9jayBnb25lIik7CiAgLy8gICAgaWYgKHMuYmxvY2tfc3RhcnQgPCAwKSB0aHJvdyBuZXcgRXJyb3IoImJsb2NrIGdvbmUiKTsKCiAgICAgIHMuc3Ryc3RhcnQgKz0gcy5sb29rYWhlYWQ7CiAgICAgIHMubG9va2FoZWFkID0gMDsKCiAgICAgIC8qIEVtaXQgYSBzdG9yZWQgYmxvY2sgaWYgcGVuZGluZ19idWYgd2lsbCBiZSBmdWxsOiAqLwogICAgICBjb25zdCBtYXhfc3RhcnQgPSBzLmJsb2NrX3N0YXJ0ICsgbWF4X2Jsb2NrX3NpemU7CgogICAgICBpZiAocy5zdHJzdGFydCA9PT0gMCB8fCBzLnN0cnN0YXJ0ID49IG1heF9zdGFydCkgewogICAgICAgIC8qIHN0cnN0YXJ0ID09IDAgaXMgcG9zc2libGUgd2hlbiB3cmFwYXJvdW5kIG9uIDE2LWJpdCBtYWNoaW5lICovCiAgICAgICAgcy5sb29rYWhlYWQgPSBzLnN0cnN0YXJ0IC0gbWF4X3N0YXJ0OwogICAgICAgIHMuc3Ryc3RhcnQgPSBtYXhfc3RhcnQ7CiAgICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICAgIH0KICAgICAgICAvKioqLwoKCiAgICAgIH0KICAgICAgLyogRmx1c2ggaWYgd2UgbWF5IGhhdmUgdG8gc2xpZGUsIG90aGVyd2lzZSBibG9ja19zdGFydCBtYXkgYmVjb21lCiAgICAgICAqIG5lZ2F0aXZlIGFuZCB0aGUgZGF0YSB3aWxsIGJlIGdvbmU6CiAgICAgICAqLwogICAgICBpZiAocy5zdHJzdGFydCAtIHMuYmxvY2tfc3RhcnQgPj0gKHMud19zaXplIC0gTUlOX0xPT0tBSEVBRCkpIHsKICAgICAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDApOyAqKiovCiAgICAgICAgZmx1c2hfYmxvY2tfb25seShzLCBmYWxzZSk7CiAgICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgICAgfQogICAgICAgIC8qKiovCiAgICAgIH0KICAgIH0KCiAgICBzLmluc2VydCA9IDA7CgogICAgaWYgKGZsdXNoID09PSBaX0ZJTklTSCQzKSB7CiAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMSk7ICoqKi8KICAgICAgZmx1c2hfYmxvY2tfb25seShzLCB0cnVlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfRklOSVNIX1NUQVJURUQ7CiAgICAgIH0KICAgICAgLyoqKi8KICAgICAgcmV0dXJuIEJTX0ZJTklTSF9ET05FOwogICAgfQoKICAgIGlmIChzLnN0cnN0YXJ0ID4gcy5ibG9ja19zdGFydCkgewogICAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDApOyAqKiovCiAgICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgIH0KICAgICAgLyoqKi8KICAgIH0KCiAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogIH07CgogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIENvbXByZXNzIGFzIG11Y2ggYXMgcG9zc2libGUgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLCByZXR1cm4gdGhlIGN1cnJlbnQKICAgKiBibG9jayBzdGF0ZS4KICAgKiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHBlcmZvcm0gbGF6eSBldmFsdWF0aW9uIG9mIG1hdGNoZXMgYW5kIGluc2VydHMKICAgKiBuZXcgc3RyaW5ncyBpbiB0aGUgZGljdGlvbmFyeSBvbmx5IGZvciB1bm1hdGNoZWQgc3RyaW5ncyBvciBmb3Igc2hvcnQKICAgKiBtYXRjaGVzLiBJdCBpcyB1c2VkIG9ubHkgZm9yIHRoZSBmYXN0IGNvbXByZXNzaW9uIG9wdGlvbnMuCiAgICovCiAgY29uc3QgZGVmbGF0ZV9mYXN0ID0gKHMsIGZsdXNoKSA9PiB7CgogICAgbGV0IGhhc2hfaGVhZDsgICAgICAgIC8qIGhlYWQgb2YgdGhlIGhhc2ggY2hhaW4gKi8KICAgIGxldCBiZmx1c2g7ICAgICAgICAgICAvKiBzZXQgaWYgY3VycmVudCBibG9jayBtdXN0IGJlIGZsdXNoZWQgKi8KCiAgICBmb3IgKDs7KSB7CiAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGFsd2F5cyBoYXZlIGVub3VnaCBsb29rYWhlYWQsIGV4Y2VwdAogICAgICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCBmaWxlLiBXZSBuZWVkIE1BWF9NQVRDSCBieXRlcwogICAgICAgKiBmb3IgdGhlIG5leHQgbWF0Y2gsIHBsdXMgTUlOX01BVENIIGJ5dGVzIHRvIGluc2VydCB0aGUKICAgICAgICogc3RyaW5nIGZvbGxvd2luZyB0aGUgbmV4dCBtYXRjaC4KICAgICAgICovCiAgICAgIGlmIChzLmxvb2thaGVhZCA8IE1JTl9MT09LQUhFQUQpIHsKICAgICAgICBmaWxsX3dpbmRvdyhzKTsKICAgICAgICBpZiAocy5sb29rYWhlYWQgPCBNSU5fTE9PS0FIRUFEICYmIGZsdXNoID09PSBaX05PX0ZMVVNIJDIpIHsKICAgICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgICAgfQogICAgICAgIGlmIChzLmxvb2thaGVhZCA9PT0gMCkgewogICAgICAgICAgYnJlYWs7IC8qIGZsdXNoIHRoZSBjdXJyZW50IGJsb2NrICovCiAgICAgICAgfQogICAgICB9CgogICAgICAvKiBJbnNlcnQgdGhlIHN0cmluZyB3aW5kb3dbc3Ryc3RhcnQgLi4gc3Ryc3RhcnQrMl0gaW4gdGhlCiAgICAgICAqIGRpY3Rpb25hcnksIGFuZCBzZXQgaGFzaF9oZWFkIHRvIHRoZSBoZWFkIG9mIHRoZSBoYXNoIGNoYWluOgogICAgICAgKi8KICAgICAgaGFzaF9oZWFkID0gMC8qTklMKi87CiAgICAgIGlmIChzLmxvb2thaGVhZCA+PSBNSU5fTUFUQ0gpIHsKICAgICAgICAvKioqIElOU0VSVF9TVFJJTkcocywgcy5zdHJzdGFydCwgaGFzaF9oZWFkKTsgKioqLwogICAgICAgIHMuaW5zX2ggPSBIQVNIKHMsIHMuaW5zX2gsIHMud2luZG93W3Muc3Ryc3RhcnQgKyBNSU5fTUFUQ0ggLSAxXSk7CiAgICAgICAgaGFzaF9oZWFkID0gcy5wcmV2W3Muc3Ryc3RhcnQgJiBzLndfbWFza10gPSBzLmhlYWRbcy5pbnNfaF07CiAgICAgICAgcy5oZWFkW3MuaW5zX2hdID0gcy5zdHJzdGFydDsKICAgICAgICAvKioqLwogICAgICB9CgogICAgICAvKiBGaW5kIHRoZSBsb25nZXN0IG1hdGNoLCBkaXNjYXJkaW5nIHRob3NlIDw9IHByZXZfbGVuZ3RoLgogICAgICAgKiBBdCB0aGlzIHBvaW50IHdlIGhhdmUgYWx3YXlzIG1hdGNoX2xlbmd0aCA8IE1JTl9NQVRDSAogICAgICAgKi8KICAgICAgaWYgKGhhc2hfaGVhZCAhPT0gMC8qTklMKi8gJiYgKChzLnN0cnN0YXJ0IC0gaGFzaF9oZWFkKSA8PSAocy53X3NpemUgLSBNSU5fTE9PS0FIRUFEKSkpIHsKICAgICAgICAvKiBUbyBzaW1wbGlmeSB0aGUgY29kZSwgd2UgcHJldmVudCBtYXRjaGVzIHdpdGggdGhlIHN0cmluZwogICAgICAgICAqIG9mIHdpbmRvdyBpbmRleCAwIChpbiBwYXJ0aWN1bGFyIHdlIGhhdmUgdG8gYXZvaWQgYSBtYXRjaAogICAgICAgICAqIG9mIHRoZSBzdHJpbmcgd2l0aCBpdHNlbGYgYXQgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCBmaWxlKS4KICAgICAgICAgKi8KICAgICAgICBzLm1hdGNoX2xlbmd0aCA9IGxvbmdlc3RfbWF0Y2gocywgaGFzaF9oZWFkKTsKICAgICAgICAvKiBsb25nZXN0X21hdGNoKCkgc2V0cyBtYXRjaF9zdGFydCAqLwogICAgICB9CiAgICAgIGlmIChzLm1hdGNoX2xlbmd0aCA+PSBNSU5fTUFUQ0gpIHsKICAgICAgICAvLyBjaGVja19tYXRjaChzLCBzLnN0cnN0YXJ0LCBzLm1hdGNoX3N0YXJ0LCBzLm1hdGNoX2xlbmd0aCk7IC8vIGZvciBkZWJ1ZyBvbmx5CgogICAgICAgIC8qKiogX3RyX3RhbGx5X2Rpc3Qocywgcy5zdHJzdGFydCAtIHMubWF0Y2hfc3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgcy5tYXRjaF9sZW5ndGggLSBNSU5fTUFUQ0gsIGJmbHVzaCk7ICoqKi8KICAgICAgICBiZmx1c2ggPSBfdHJfdGFsbHkocywgcy5zdHJzdGFydCAtIHMubWF0Y2hfc3RhcnQsIHMubWF0Y2hfbGVuZ3RoIC0gTUlOX01BVENIKTsKCiAgICAgICAgcy5sb29rYWhlYWQgLT0gcy5tYXRjaF9sZW5ndGg7CgogICAgICAgIC8qIEluc2VydCBuZXcgc3RyaW5ncyBpbiB0aGUgaGFzaCB0YWJsZSBvbmx5IGlmIHRoZSBtYXRjaCBsZW5ndGgKICAgICAgICAgKiBpcyBub3QgdG9vIGxhcmdlLiBUaGlzIHNhdmVzIHRpbWUgYnV0IGRlZ3JhZGVzIGNvbXByZXNzaW9uLgogICAgICAgICAqLwogICAgICAgIGlmIChzLm1hdGNoX2xlbmd0aCA8PSBzLm1heF9sYXp5X21hdGNoLyptYXhfaW5zZXJ0X2xlbmd0aCovICYmIHMubG9va2FoZWFkID49IE1JTl9NQVRDSCkgewogICAgICAgICAgcy5tYXRjaF9sZW5ndGgtLTsgLyogc3RyaW5nIGF0IHN0cnN0YXJ0IGFscmVhZHkgaW4gdGFibGUgKi8KICAgICAgICAgIGRvIHsKICAgICAgICAgICAgcy5zdHJzdGFydCsrOwogICAgICAgICAgICAvKioqIElOU0VSVF9TVFJJTkcocywgcy5zdHJzdGFydCwgaGFzaF9oZWFkKTsgKioqLwogICAgICAgICAgICBzLmluc19oID0gSEFTSChzLCBzLmluc19oLCBzLndpbmRvd1tzLnN0cnN0YXJ0ICsgTUlOX01BVENIIC0gMV0pOwogICAgICAgICAgICBoYXNoX2hlYWQgPSBzLnByZXZbcy5zdHJzdGFydCAmIHMud19tYXNrXSA9IHMuaGVhZFtzLmluc19oXTsKICAgICAgICAgICAgcy5oZWFkW3MuaW5zX2hdID0gcy5zdHJzdGFydDsKICAgICAgICAgICAgLyoqKi8KICAgICAgICAgICAgLyogc3Ryc3RhcnQgbmV2ZXIgZXhjZWVkcyBXU0laRS1NQVhfTUFUQ0gsIHNvIHRoZXJlIGFyZQogICAgICAgICAgICAgKiBhbHdheXMgTUlOX01BVENIIGJ5dGVzIGFoZWFkLgogICAgICAgICAgICAgKi8KICAgICAgICAgIH0gd2hpbGUgKC0tcy5tYXRjaF9sZW5ndGggIT09IDApOwogICAgICAgICAgcy5zdHJzdGFydCsrOwogICAgICAgIH0gZWxzZQogICAgICAgIHsKICAgICAgICAgIHMuc3Ryc3RhcnQgKz0gcy5tYXRjaF9sZW5ndGg7CiAgICAgICAgICBzLm1hdGNoX2xlbmd0aCA9IDA7CiAgICAgICAgICBzLmluc19oID0gcy53aW5kb3dbcy5zdHJzdGFydF07CiAgICAgICAgICAvKiBVUERBVEVfSEFTSChzLCBzLmluc19oLCBzLndpbmRvd1tzLnN0cnN0YXJ0KzFdKTsgKi8KICAgICAgICAgIHMuaW5zX2ggPSBIQVNIKHMsIHMuaW5zX2gsIHMud2luZG93W3Muc3Ryc3RhcnQgKyAxXSk7CgogIC8vI2lmIE1JTl9NQVRDSCAhPSAzCiAgLy8gICAgICAgICAgICAgICAgQ2FsbCBVUERBVEVfSEFTSCgpIE1JTl9NQVRDSC0zIG1vcmUgdGltZXMKICAvLyNlbmRpZgogICAgICAgICAgLyogSWYgbG9va2FoZWFkIDwgTUlOX01BVENILCBpbnNfaCBpcyBnYXJiYWdlLCBidXQgaXQgZG9lcyBub3QKICAgICAgICAgICAqIG1hdHRlciBzaW5jZSBpdCB3aWxsIGJlIHJlY29tcHV0ZWQgYXQgbmV4dCBkZWZsYXRlIGNhbGwuCiAgICAgICAgICAgKi8KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLyogTm8gbWF0Y2gsIG91dHB1dCBhIGxpdGVyYWwgYnl0ZSAqLwogICAgICAgIC8vVHJhY2V2digoc3RkZXJyLCIlYyIsIHMud2luZG93W3Muc3Ryc3RhcnRdKSk7CiAgICAgICAgLyoqKiBfdHJfdGFsbHlfbGl0KHMsIHMud2luZG93W3Muc3Ryc3RhcnRdLCBiZmx1c2gpOyAqKiovCiAgICAgICAgYmZsdXNoID0gX3RyX3RhbGx5KHMsIDAsIHMud2luZG93W3Muc3Ryc3RhcnRdKTsKCiAgICAgICAgcy5sb29rYWhlYWQtLTsKICAgICAgICBzLnN0cnN0YXJ0Kys7CiAgICAgIH0KICAgICAgaWYgKGJmbHVzaCkgewogICAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMCk7ICoqKi8KICAgICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgICB9CiAgICAgICAgLyoqKi8KICAgICAgfQogICAgfQogICAgcy5pbnNlcnQgPSAoKHMuc3Ryc3RhcnQgPCAoTUlOX01BVENIIC0gMSkpID8gcy5zdHJzdGFydCA6IE1JTl9NQVRDSCAtIDEpOwogICAgaWYgKGZsdXNoID09PSBaX0ZJTklTSCQzKSB7CiAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMSk7ICoqKi8KICAgICAgZmx1c2hfYmxvY2tfb25seShzLCB0cnVlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfRklOSVNIX1NUQVJURUQ7CiAgICAgIH0KICAgICAgLyoqKi8KICAgICAgcmV0dXJuIEJTX0ZJTklTSF9ET05FOwogICAgfQogICAgaWYgKHMubGFzdF9saXQpIHsKICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICB9CiAgICAgIC8qKiovCiAgICB9CiAgICByZXR1cm4gQlNfQkxPQ0tfRE9ORTsKICB9OwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBTYW1lIGFzIGFib3ZlLCBidXQgYWNoaWV2ZXMgYmV0dGVyIGNvbXByZXNzaW9uLiBXZSB1c2UgYSBsYXp5CiAgICogZXZhbHVhdGlvbiBmb3IgbWF0Y2hlczogYSBtYXRjaCBpcyBmaW5hbGx5IGFkb3B0ZWQgb25seSBpZiB0aGVyZSBpcwogICAqIG5vIGJldHRlciBtYXRjaCBhdCB0aGUgbmV4dCB3aW5kb3cgcG9zaXRpb24uCiAgICovCiAgY29uc3QgZGVmbGF0ZV9zbG93ID0gKHMsIGZsdXNoKSA9PiB7CgogICAgbGV0IGhhc2hfaGVhZDsgICAgICAgICAgLyogaGVhZCBvZiBoYXNoIGNoYWluICovCiAgICBsZXQgYmZsdXNoOyAgICAgICAgICAgICAgLyogc2V0IGlmIGN1cnJlbnQgYmxvY2sgbXVzdCBiZSBmbHVzaGVkICovCgogICAgbGV0IG1heF9pbnNlcnQ7CgogICAgLyogUHJvY2VzcyB0aGUgaW5wdXQgYmxvY2suICovCiAgICBmb3IgKDs7KSB7CiAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGFsd2F5cyBoYXZlIGVub3VnaCBsb29rYWhlYWQsIGV4Y2VwdAogICAgICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCBmaWxlLiBXZSBuZWVkIE1BWF9NQVRDSCBieXRlcwogICAgICAgKiBmb3IgdGhlIG5leHQgbWF0Y2gsIHBsdXMgTUlOX01BVENIIGJ5dGVzIHRvIGluc2VydCB0aGUKICAgICAgICogc3RyaW5nIGZvbGxvd2luZyB0aGUgbmV4dCBtYXRjaC4KICAgICAgICovCiAgICAgIGlmIChzLmxvb2thaGVhZCA8IE1JTl9MT09LQUhFQUQpIHsKICAgICAgICBmaWxsX3dpbmRvdyhzKTsKICAgICAgICBpZiAocy5sb29rYWhlYWQgPCBNSU5fTE9PS0FIRUFEICYmIGZsdXNoID09PSBaX05PX0ZMVVNIJDIpIHsKICAgICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgICAgfQogICAgICAgIGlmIChzLmxvb2thaGVhZCA9PT0gMCkgeyBicmVhazsgfSAvKiBmbHVzaCB0aGUgY3VycmVudCBibG9jayAqLwogICAgICB9CgogICAgICAvKiBJbnNlcnQgdGhlIHN0cmluZyB3aW5kb3dbc3Ryc3RhcnQgLi4gc3Ryc3RhcnQrMl0gaW4gdGhlCiAgICAgICAqIGRpY3Rpb25hcnksIGFuZCBzZXQgaGFzaF9oZWFkIHRvIHRoZSBoZWFkIG9mIHRoZSBoYXNoIGNoYWluOgogICAgICAgKi8KICAgICAgaGFzaF9oZWFkID0gMC8qTklMKi87CiAgICAgIGlmIChzLmxvb2thaGVhZCA+PSBNSU5fTUFUQ0gpIHsKICAgICAgICAvKioqIElOU0VSVF9TVFJJTkcocywgcy5zdHJzdGFydCwgaGFzaF9oZWFkKTsgKioqLwogICAgICAgIHMuaW5zX2ggPSBIQVNIKHMsIHMuaW5zX2gsIHMud2luZG93W3Muc3Ryc3RhcnQgKyBNSU5fTUFUQ0ggLSAxXSk7CiAgICAgICAgaGFzaF9oZWFkID0gcy5wcmV2W3Muc3Ryc3RhcnQgJiBzLndfbWFza10gPSBzLmhlYWRbcy5pbnNfaF07CiAgICAgICAgcy5oZWFkW3MuaW5zX2hdID0gcy5zdHJzdGFydDsKICAgICAgICAvKioqLwogICAgICB9CgogICAgICAvKiBGaW5kIHRoZSBsb25nZXN0IG1hdGNoLCBkaXNjYXJkaW5nIHRob3NlIDw9IHByZXZfbGVuZ3RoLgogICAgICAgKi8KICAgICAgcy5wcmV2X2xlbmd0aCA9IHMubWF0Y2hfbGVuZ3RoOwogICAgICBzLnByZXZfbWF0Y2ggPSBzLm1hdGNoX3N0YXJ0OwogICAgICBzLm1hdGNoX2xlbmd0aCA9IE1JTl9NQVRDSCAtIDE7CgogICAgICBpZiAoaGFzaF9oZWFkICE9PSAwLypOSUwqLyAmJiBzLnByZXZfbGVuZ3RoIDwgcy5tYXhfbGF6eV9tYXRjaCAmJgogICAgICAgICAgcy5zdHJzdGFydCAtIGhhc2hfaGVhZCA8PSAocy53X3NpemUgLSBNSU5fTE9PS0FIRUFEKS8qTUFYX0RJU1QocykqLykgewogICAgICAgIC8qIFRvIHNpbXBsaWZ5IHRoZSBjb2RlLCB3ZSBwcmV2ZW50IG1hdGNoZXMgd2l0aCB0aGUgc3RyaW5nCiAgICAgICAgICogb2Ygd2luZG93IGluZGV4IDAgKGluIHBhcnRpY3VsYXIgd2UgaGF2ZSB0byBhdm9pZCBhIG1hdGNoCiAgICAgICAgICogb2YgdGhlIHN0cmluZyB3aXRoIGl0c2VsZiBhdCB0aGUgc3RhcnQgb2YgdGhlIGlucHV0IGZpbGUpLgogICAgICAgICAqLwogICAgICAgIHMubWF0Y2hfbGVuZ3RoID0gbG9uZ2VzdF9tYXRjaChzLCBoYXNoX2hlYWQpOwogICAgICAgIC8qIGxvbmdlc3RfbWF0Y2goKSBzZXRzIG1hdGNoX3N0YXJ0ICovCgogICAgICAgIGlmIChzLm1hdGNoX2xlbmd0aCA8PSA1ICYmCiAgICAgICAgICAgKHMuc3RyYXRlZ3kgPT09IFpfRklMVEVSRUQgfHwgKHMubWF0Y2hfbGVuZ3RoID09PSBNSU5fTUFUQ0ggJiYgcy5zdHJzdGFydCAtIHMubWF0Y2hfc3RhcnQgPiA0MDk2LypUT09fRkFSKi8pKSkgewoKICAgICAgICAgIC8qIElmIHByZXZfbWF0Y2ggaXMgYWxzbyBNSU5fTUFUQ0gsIG1hdGNoX3N0YXJ0IGlzIGdhcmJhZ2UKICAgICAgICAgICAqIGJ1dCB3ZSB3aWxsIGlnbm9yZSB0aGUgY3VycmVudCBtYXRjaCBhbnl3YXkuCiAgICAgICAgICAgKi8KICAgICAgICAgIHMubWF0Y2hfbGVuZ3RoID0gTUlOX01BVENIIC0gMTsKICAgICAgICB9CiAgICAgIH0KICAgICAgLyogSWYgdGhlcmUgd2FzIGEgbWF0Y2ggYXQgdGhlIHByZXZpb3VzIHN0ZXAgYW5kIHRoZSBjdXJyZW50CiAgICAgICAqIG1hdGNoIGlzIG5vdCBiZXR0ZXIsIG91dHB1dCB0aGUgcHJldmlvdXMgbWF0Y2g6CiAgICAgICAqLwogICAgICBpZiAocy5wcmV2X2xlbmd0aCA+PSBNSU5fTUFUQ0ggJiYgcy5tYXRjaF9sZW5ndGggPD0gcy5wcmV2X2xlbmd0aCkgewogICAgICAgIG1heF9pbnNlcnQgPSBzLnN0cnN0YXJ0ICsgcy5sb29rYWhlYWQgLSBNSU5fTUFUQ0g7CiAgICAgICAgLyogRG8gbm90IGluc2VydCBzdHJpbmdzIGluIGhhc2ggdGFibGUgYmV5b25kIHRoaXMuICovCgogICAgICAgIC8vY2hlY2tfbWF0Y2gocywgcy5zdHJzdGFydC0xLCBzLnByZXZfbWF0Y2gsIHMucHJldl9sZW5ndGgpOwoKICAgICAgICAvKioqX3RyX3RhbGx5X2Rpc3Qocywgcy5zdHJzdGFydCAtIDEgLSBzLnByZXZfbWF0Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgcy5wcmV2X2xlbmd0aCAtIE1JTl9NQVRDSCwgYmZsdXNoKTsqKiovCiAgICAgICAgYmZsdXNoID0gX3RyX3RhbGx5KHMsIHMuc3Ryc3RhcnQgLSAxIC0gcy5wcmV2X21hdGNoLCBzLnByZXZfbGVuZ3RoIC0gTUlOX01BVENIKTsKICAgICAgICAvKiBJbnNlcnQgaW4gaGFzaCB0YWJsZSBhbGwgc3RyaW5ncyB1cCB0byB0aGUgZW5kIG9mIHRoZSBtYXRjaC4KICAgICAgICAgKiBzdHJzdGFydC0xIGFuZCBzdHJzdGFydCBhcmUgYWxyZWFkeSBpbnNlcnRlZC4gSWYgdGhlcmUgaXMgbm90CiAgICAgICAgICogZW5vdWdoIGxvb2thaGVhZCwgdGhlIGxhc3QgdHdvIHN0cmluZ3MgYXJlIG5vdCBpbnNlcnRlZCBpbgogICAgICAgICAqIHRoZSBoYXNoIHRhYmxlLgogICAgICAgICAqLwogICAgICAgIHMubG9va2FoZWFkIC09IHMucHJldl9sZW5ndGggLSAxOwogICAgICAgIHMucHJldl9sZW5ndGggLT0gMjsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoKytzLnN0cnN0YXJ0IDw9IG1heF9pbnNlcnQpIHsKICAgICAgICAgICAgLyoqKiBJTlNFUlRfU1RSSU5HKHMsIHMuc3Ryc3RhcnQsIGhhc2hfaGVhZCk7ICoqKi8KICAgICAgICAgICAgcy5pbnNfaCA9IEhBU0gocywgcy5pbnNfaCwgcy53aW5kb3dbcy5zdHJzdGFydCArIE1JTl9NQVRDSCAtIDFdKTsKICAgICAgICAgICAgaGFzaF9oZWFkID0gcy5wcmV2W3Muc3Ryc3RhcnQgJiBzLndfbWFza10gPSBzLmhlYWRbcy5pbnNfaF07CiAgICAgICAgICAgIHMuaGVhZFtzLmluc19oXSA9IHMuc3Ryc3RhcnQ7CiAgICAgICAgICAgIC8qKiovCiAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoLS1zLnByZXZfbGVuZ3RoICE9PSAwKTsKICAgICAgICBzLm1hdGNoX2F2YWlsYWJsZSA9IDA7CiAgICAgICAgcy5tYXRjaF9sZW5ndGggPSBNSU5fTUFUQ0ggLSAxOwogICAgICAgIHMuc3Ryc3RhcnQrKzsKCiAgICAgICAgaWYgKGJmbHVzaCkgewogICAgICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICAgICAgZmx1c2hfYmxvY2tfb25seShzLCBmYWxzZSk7CiAgICAgICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICAgICAgfQogICAgICAgICAgLyoqKi8KICAgICAgICB9CgogICAgICB9IGVsc2UgaWYgKHMubWF0Y2hfYXZhaWxhYmxlKSB7CiAgICAgICAgLyogSWYgdGhlcmUgd2FzIG5vIG1hdGNoIGF0IHRoZSBwcmV2aW91cyBwb3NpdGlvbiwgb3V0cHV0IGEKICAgICAgICAgKiBzaW5nbGUgbGl0ZXJhbC4gSWYgdGhlcmUgd2FzIGEgbWF0Y2ggYnV0IHRoZSBjdXJyZW50IG1hdGNoCiAgICAgICAgICogaXMgbG9uZ2VyLCB0cnVuY2F0ZSB0aGUgcHJldmlvdXMgbWF0Y2ggdG8gYSBzaW5nbGUgbGl0ZXJhbC4KICAgICAgICAgKi8KICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwiJWMiLCBzLT53aW5kb3dbcy0+c3Ryc3RhcnQtMV0pKTsKICAgICAgICAvKioqIF90cl90YWxseV9saXQocywgcy53aW5kb3dbcy5zdHJzdGFydC0xXSwgYmZsdXNoKTsgKioqLwogICAgICAgIGJmbHVzaCA9IF90cl90YWxseShzLCAwLCBzLndpbmRvd1tzLnN0cnN0YXJ0IC0gMV0pOwoKICAgICAgICBpZiAoYmZsdXNoKSB7CiAgICAgICAgICAvKioqIEZMVVNIX0JMT0NLX09OTFkocywgMCkgKioqLwogICAgICAgICAgZmx1c2hfYmxvY2tfb25seShzLCBmYWxzZSk7CiAgICAgICAgICAvKioqLwogICAgICAgIH0KICAgICAgICBzLnN0cnN0YXJ0Kys7CiAgICAgICAgcy5sb29rYWhlYWQtLTsKICAgICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLyogVGhlcmUgaXMgbm8gcHJldmlvdXMgbWF0Y2ggdG8gY29tcGFyZSB3aXRoLCB3YWl0IGZvcgogICAgICAgICAqIHRoZSBuZXh0IHN0ZXAgdG8gZGVjaWRlLgogICAgICAgICAqLwogICAgICAgIHMubWF0Y2hfYXZhaWxhYmxlID0gMTsKICAgICAgICBzLnN0cnN0YXJ0Kys7CiAgICAgICAgcy5sb29rYWhlYWQtLTsKICAgICAgfQogICAgfQogICAgLy9Bc3NlcnQgKGZsdXNoICE9IFpfTk9fRkxVU0gsICJubyBmbHVzaD8iKTsKICAgIGlmIChzLm1hdGNoX2F2YWlsYWJsZSkgewogICAgICAvL1RyYWNldnYoKHN0ZGVyciwiJWMiLCBzLT53aW5kb3dbcy0+c3Ryc3RhcnQtMV0pKTsKICAgICAgLyoqKiBfdHJfdGFsbHlfbGl0KHMsIHMud2luZG93W3Muc3Ryc3RhcnQtMV0sIGJmbHVzaCk7ICoqKi8KICAgICAgYmZsdXNoID0gX3RyX3RhbGx5KHMsIDAsIHMud2luZG93W3Muc3Ryc3RhcnQgLSAxXSk7CgogICAgICBzLm1hdGNoX2F2YWlsYWJsZSA9IDA7CiAgICB9CiAgICBzLmluc2VydCA9IHMuc3Ryc3RhcnQgPCBNSU5fTUFUQ0ggLSAxID8gcy5zdHJzdGFydCA6IE1JTl9NQVRDSCAtIDE7CiAgICBpZiAoZmx1c2ggPT09IFpfRklOSVNIJDMpIHsKICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAxKTsgKioqLwogICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIHRydWUpOwogICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHJldHVybiBCU19GSU5JU0hfU1RBUlRFRDsKICAgICAgfQogICAgICAvKioqLwogICAgICByZXR1cm4gQlNfRklOSVNIX0RPTkU7CiAgICB9CiAgICBpZiAocy5sYXN0X2xpdCkgewogICAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDApOyAqKiovCiAgICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgIH0KICAgICAgLyoqKi8KICAgIH0KCiAgICByZXR1cm4gQlNfQkxPQ0tfRE9ORTsKICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogRm9yIFpfUkxFLCBzaW1wbHkgbG9vayBmb3IgcnVucyBvZiBieXRlcywgZ2VuZXJhdGUgbWF0Y2hlcyBvbmx5IG9mIGRpc3RhbmNlCiAgICogb25lLiAgRG8gbm90IG1haW50YWluIGEgaGFzaCB0YWJsZS4gIChJdCB3aWxsIGJlIHJlZ2VuZXJhdGVkIGlmIHRoaXMgcnVuIG9mCiAgICogZGVmbGF0ZSBzd2l0Y2hlcyBhd2F5IGZyb20gWl9STEUuKQogICAqLwogIGNvbnN0IGRlZmxhdGVfcmxlID0gKHMsIGZsdXNoKSA9PiB7CgogICAgbGV0IGJmbHVzaDsgICAgICAgICAgICAvKiBzZXQgaWYgY3VycmVudCBibG9jayBtdXN0IGJlIGZsdXNoZWQgKi8KICAgIGxldCBwcmV2OyAgICAgICAgICAgICAgLyogYnl0ZSBhdCBkaXN0YW5jZSBvbmUgdG8gbWF0Y2ggKi8KICAgIGxldCBzY2FuLCBzdHJlbmQ7ICAgICAgLyogc2NhbiBnb2VzIHVwIHRvIHN0cmVuZCBmb3IgbGVuZ3RoIG9mIHJ1biAqLwoKICAgIGNvbnN0IF93aW4gPSBzLndpbmRvdzsKCiAgICBmb3IgKDs7KSB7CiAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGFsd2F5cyBoYXZlIGVub3VnaCBsb29rYWhlYWQsIGV4Y2VwdAogICAgICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCBmaWxlLiBXZSBuZWVkIE1BWF9NQVRDSCBieXRlcwogICAgICAgKiBmb3IgdGhlIGxvbmdlc3QgcnVuLCBwbHVzIG9uZSBmb3IgdGhlIHVucm9sbGVkIGxvb3AuCiAgICAgICAqLwogICAgICBpZiAocy5sb29rYWhlYWQgPD0gTUFYX01BVENIKSB7CiAgICAgICAgZmlsbF93aW5kb3cocyk7CiAgICAgICAgaWYgKHMubG9va2FoZWFkIDw9IE1BWF9NQVRDSCAmJiBmbHVzaCA9PT0gWl9OT19GTFVTSCQyKSB7CiAgICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICAgIH0KICAgICAgICBpZiAocy5sb29rYWhlYWQgPT09IDApIHsgYnJlYWs7IH0gLyogZmx1c2ggdGhlIGN1cnJlbnQgYmxvY2sgKi8KICAgICAgfQoKICAgICAgLyogU2VlIGhvdyBtYW55IHRpbWVzIHRoZSBwcmV2aW91cyBieXRlIHJlcGVhdHMgKi8KICAgICAgcy5tYXRjaF9sZW5ndGggPSAwOwogICAgICBpZiAocy5sb29rYWhlYWQgPj0gTUlOX01BVENIICYmIHMuc3Ryc3RhcnQgPiAwKSB7CiAgICAgICAgc2NhbiA9IHMuc3Ryc3RhcnQgLSAxOwogICAgICAgIHByZXYgPSBfd2luW3NjYW5dOwogICAgICAgIGlmIChwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmIHByZXYgPT09IF93aW5bKytzY2FuXSkgewogICAgICAgICAgc3RyZW5kID0gcy5zdHJzdGFydCArIE1BWF9NQVRDSDsKICAgICAgICAgIGRvIHsKICAgICAgICAgICAgLypqc2hpbnQgbm9lbXB0eTpmYWxzZSovCiAgICAgICAgICB9IHdoaWxlIChwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmCiAgICAgICAgICAgICAgICAgICBwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmCiAgICAgICAgICAgICAgICAgICBwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmCiAgICAgICAgICAgICAgICAgICBwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmCiAgICAgICAgICAgICAgICAgICBzY2FuIDwgc3RyZW5kKTsKICAgICAgICAgIHMubWF0Y2hfbGVuZ3RoID0gTUFYX01BVENIIC0gKHN0cmVuZCAtIHNjYW4pOwogICAgICAgICAgaWYgKHMubWF0Y2hfbGVuZ3RoID4gcy5sb29rYWhlYWQpIHsKICAgICAgICAgICAgcy5tYXRjaF9sZW5ndGggPSBzLmxvb2thaGVhZDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy9Bc3NlcnQoc2NhbiA8PSBzLT53aW5kb3crKHVJbnQpKHMtPndpbmRvd19zaXplLTEpLCAid2lsZCBzY2FuIik7CiAgICAgIH0KCiAgICAgIC8qIEVtaXQgbWF0Y2ggaWYgaGF2ZSBydW4gb2YgTUlOX01BVENIIG9yIGxvbmdlciwgZWxzZSBlbWl0IGxpdGVyYWwgKi8KICAgICAgaWYgKHMubWF0Y2hfbGVuZ3RoID49IE1JTl9NQVRDSCkgewogICAgICAgIC8vY2hlY2tfbWF0Y2gocywgcy5zdHJzdGFydCwgcy5zdHJzdGFydCAtIDEsIHMubWF0Y2hfbGVuZ3RoKTsKCiAgICAgICAgLyoqKiBfdHJfdGFsbHlfZGlzdChzLCAxLCBzLm1hdGNoX2xlbmd0aCAtIE1JTl9NQVRDSCwgYmZsdXNoKTsgKioqLwogICAgICAgIGJmbHVzaCA9IF90cl90YWxseShzLCAxLCBzLm1hdGNoX2xlbmd0aCAtIE1JTl9NQVRDSCk7CgogICAgICAgIHMubG9va2FoZWFkIC09IHMubWF0Y2hfbGVuZ3RoOwogICAgICAgIHMuc3Ryc3RhcnQgKz0gcy5tYXRjaF9sZW5ndGg7CiAgICAgICAgcy5tYXRjaF9sZW5ndGggPSAwOwogICAgICB9IGVsc2UgewogICAgICAgIC8qIE5vIG1hdGNoLCBvdXRwdXQgYSBsaXRlcmFsIGJ5dGUgKi8KICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwiJWMiLCBzLT53aW5kb3dbcy0+c3Ryc3RhcnRdKSk7CiAgICAgICAgLyoqKiBfdHJfdGFsbHlfbGl0KHMsIHMud2luZG93W3Muc3Ryc3RhcnRdLCBiZmx1c2gpOyAqKiovCiAgICAgICAgYmZsdXNoID0gX3RyX3RhbGx5KHMsIDAsIHMud2luZG93W3Muc3Ryc3RhcnRdKTsKCiAgICAgICAgcy5sb29rYWhlYWQtLTsKICAgICAgICBzLnN0cnN0YXJ0Kys7CiAgICAgIH0KICAgICAgaWYgKGJmbHVzaCkgewogICAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMCk7ICoqKi8KICAgICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgICB9CiAgICAgICAgLyoqKi8KICAgICAgfQogICAgfQogICAgcy5pbnNlcnQgPSAwOwogICAgaWYgKGZsdXNoID09PSBaX0ZJTklTSCQzKSB7CiAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMSk7ICoqKi8KICAgICAgZmx1c2hfYmxvY2tfb25seShzLCB0cnVlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfRklOSVNIX1NUQVJURUQ7CiAgICAgIH0KICAgICAgLyoqKi8KICAgICAgcmV0dXJuIEJTX0ZJTklTSF9ET05FOwogICAgfQogICAgaWYgKHMubGFzdF9saXQpIHsKICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICB9CiAgICAgIC8qKiovCiAgICB9CiAgICByZXR1cm4gQlNfQkxPQ0tfRE9ORTsKICB9OwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKiBGb3IgWl9IVUZGTUFOX09OTFksIGRvIG5vdCBsb29rIGZvciBtYXRjaGVzLiAgRG8gbm90IG1haW50YWluIGEgaGFzaCB0YWJsZS4KICAgKiAoSXQgd2lsbCBiZSByZWdlbmVyYXRlZCBpZiB0aGlzIHJ1biBvZiBkZWZsYXRlIHN3aXRjaGVzIGF3YXkgZnJvbSBIdWZmbWFuLikKICAgKi8KICBjb25zdCBkZWZsYXRlX2h1ZmYgPSAocywgZmx1c2gpID0+IHsKCiAgICBsZXQgYmZsdXNoOyAgICAgICAgICAgICAvKiBzZXQgaWYgY3VycmVudCBibG9jayBtdXN0IGJlIGZsdXNoZWQgKi8KCiAgICBmb3IgKDs7KSB7CiAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGhhdmUgYSBsaXRlcmFsIHRvIHdyaXRlLiAqLwogICAgICBpZiAocy5sb29rYWhlYWQgPT09IDApIHsKICAgICAgICBmaWxsX3dpbmRvdyhzKTsKICAgICAgICBpZiAocy5sb29rYWhlYWQgPT09IDApIHsKICAgICAgICAgIGlmIChmbHVzaCA9PT0gWl9OT19GTFVTSCQyKSB7CiAgICAgICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsgICAgICAvKiBmbHVzaCB0aGUgY3VycmVudCBibG9jayAqLwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogT3V0cHV0IGEgbGl0ZXJhbCBieXRlICovCiAgICAgIHMubWF0Y2hfbGVuZ3RoID0gMDsKICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsIiVjIiwgcy0+d2luZG93W3MtPnN0cnN0YXJ0XSkpOwogICAgICAvKioqIF90cl90YWxseV9saXQocywgcy53aW5kb3dbcy5zdHJzdGFydF0sIGJmbHVzaCk7ICoqKi8KICAgICAgYmZsdXNoID0gX3RyX3RhbGx5KHMsIDAsIHMud2luZG93W3Muc3Ryc3RhcnRdKTsKICAgICAgcy5sb29rYWhlYWQtLTsKICAgICAgcy5zdHJzdGFydCsrOwogICAgICBpZiAoYmZsdXNoKSB7CiAgICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICAgIH0KICAgICAgICAvKioqLwogICAgICB9CiAgICB9CiAgICBzLmluc2VydCA9IDA7CiAgICBpZiAoZmx1c2ggPT09IFpfRklOSVNIJDMpIHsKICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAxKTsgKioqLwogICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIHRydWUpOwogICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHJldHVybiBCU19GSU5JU0hfU1RBUlRFRDsKICAgICAgfQogICAgICAvKioqLwogICAgICByZXR1cm4gQlNfRklOSVNIX0RPTkU7CiAgICB9CiAgICBpZiAocy5sYXN0X2xpdCkgewogICAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDApOyAqKiovCiAgICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgIH0KICAgICAgLyoqKi8KICAgIH0KICAgIHJldHVybiBCU19CTE9DS19ET05FOwogIH07CgogIC8qIFZhbHVlcyBmb3IgbWF4X2xhenlfbWF0Y2gsIGdvb2RfbWF0Y2ggYW5kIG1heF9jaGFpbl9sZW5ndGgsIGRlcGVuZGluZyBvbgogICAqIHRoZSBkZXNpcmVkIHBhY2sgbGV2ZWwgKDAuLjkpLiBUaGUgdmFsdWVzIGdpdmVuIGJlbG93IGhhdmUgYmVlbiB0dW5lZCB0bwogICAqIGV4Y2x1ZGUgd29yc3QgY2FzZSBwZXJmb3JtYW5jZSBmb3IgcGF0aG9sb2dpY2FsIGZpbGVzLiBCZXR0ZXIgdmFsdWVzIG1heSBiZQogICAqIGZvdW5kIGZvciBzcGVjaWZpYyBmaWxlcy4KICAgKi8KICBmdW5jdGlvbiBDb25maWcoZ29vZF9sZW5ndGgsIG1heF9sYXp5LCBuaWNlX2xlbmd0aCwgbWF4X2NoYWluLCBmdW5jKSB7CgogICAgdGhpcy5nb29kX2xlbmd0aCA9IGdvb2RfbGVuZ3RoOwogICAgdGhpcy5tYXhfbGF6eSA9IG1heF9sYXp5OwogICAgdGhpcy5uaWNlX2xlbmd0aCA9IG5pY2VfbGVuZ3RoOwogICAgdGhpcy5tYXhfY2hhaW4gPSBtYXhfY2hhaW47CiAgICB0aGlzLmZ1bmMgPSBmdW5jOwogIH0KCiAgY29uc3QgY29uZmlndXJhdGlvbl90YWJsZSA9IFsKICAgIC8qICAgICAgZ29vZCBsYXp5IG5pY2UgY2hhaW4gKi8KICAgIG5ldyBDb25maWcoMCwgMCwgMCwgMCwgZGVmbGF0ZV9zdG9yZWQpLCAgICAgICAgICAvKiAwIHN0b3JlIG9ubHkgKi8KICAgIG5ldyBDb25maWcoNCwgNCwgOCwgNCwgZGVmbGF0ZV9mYXN0KSwgICAgICAgICAgICAvKiAxIG1heCBzcGVlZCwgbm8gbGF6eSBtYXRjaGVzICovCiAgICBuZXcgQ29uZmlnKDQsIDUsIDE2LCA4LCBkZWZsYXRlX2Zhc3QpLCAgICAgICAgICAgLyogMiAqLwogICAgbmV3IENvbmZpZyg0LCA2LCAzMiwgMzIsIGRlZmxhdGVfZmFzdCksICAgICAgICAgIC8qIDMgKi8KCiAgICBuZXcgQ29uZmlnKDQsIDQsIDE2LCAxNiwgZGVmbGF0ZV9zbG93KSwgICAgICAgICAgLyogNCBsYXp5IG1hdGNoZXMgKi8KICAgIG5ldyBDb25maWcoOCwgMTYsIDMyLCAzMiwgZGVmbGF0ZV9zbG93KSwgICAgICAgICAvKiA1ICovCiAgICBuZXcgQ29uZmlnKDgsIDE2LCAxMjgsIDEyOCwgZGVmbGF0ZV9zbG93KSwgICAgICAgLyogNiAqLwogICAgbmV3IENvbmZpZyg4LCAzMiwgMTI4LCAyNTYsIGRlZmxhdGVfc2xvdyksICAgICAgIC8qIDcgKi8KICAgIG5ldyBDb25maWcoMzIsIDEyOCwgMjU4LCAxMDI0LCBkZWZsYXRlX3Nsb3cpLCAgICAvKiA4ICovCiAgICBuZXcgQ29uZmlnKDMyLCAyNTgsIDI1OCwgNDA5NiwgZGVmbGF0ZV9zbG93KSAgICAgLyogOSBtYXggY29tcHJlc3Npb24gKi8KICBdOwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICogSW5pdGlhbGl6ZSB0aGUgImxvbmdlc3QgbWF0Y2giIHJvdXRpbmVzIGZvciBhIG5ldyB6bGliIHN0cmVhbQogICAqLwogIGNvbnN0IGxtX2luaXQgPSAocykgPT4gewoKICAgIHMud2luZG93X3NpemUgPSAyICogcy53X3NpemU7CgogICAgLyoqKiBDTEVBUl9IQVNIKHMpOyAqKiovCiAgICB6ZXJvKHMuaGVhZCk7IC8vIEZpbGwgd2l0aCBOSUwgKD0gMCk7CgogICAgLyogU2V0IHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyczoKICAgICAqLwogICAgcy5tYXhfbGF6eV9tYXRjaCA9IGNvbmZpZ3VyYXRpb25fdGFibGVbcy5sZXZlbF0ubWF4X2xhenk7CiAgICBzLmdvb2RfbWF0Y2ggPSBjb25maWd1cmF0aW9uX3RhYmxlW3MubGV2ZWxdLmdvb2RfbGVuZ3RoOwogICAgcy5uaWNlX21hdGNoID0gY29uZmlndXJhdGlvbl90YWJsZVtzLmxldmVsXS5uaWNlX2xlbmd0aDsKICAgIHMubWF4X2NoYWluX2xlbmd0aCA9IGNvbmZpZ3VyYXRpb25fdGFibGVbcy5sZXZlbF0ubWF4X2NoYWluOwoKICAgIHMuc3Ryc3RhcnQgPSAwOwogICAgcy5ibG9ja19zdGFydCA9IDA7CiAgICBzLmxvb2thaGVhZCA9IDA7CiAgICBzLmluc2VydCA9IDA7CiAgICBzLm1hdGNoX2xlbmd0aCA9IHMucHJldl9sZW5ndGggPSBNSU5fTUFUQ0ggLSAxOwogICAgcy5tYXRjaF9hdmFpbGFibGUgPSAwOwogICAgcy5pbnNfaCA9IDA7CiAgfTsKCgogIGZ1bmN0aW9uIERlZmxhdGVTdGF0ZSgpIHsKICAgIHRoaXMuc3RybSA9IG51bGw7ICAgICAgICAgICAgLyogcG9pbnRlciBiYWNrIHRvIHRoaXMgemxpYiBzdHJlYW0gKi8KICAgIHRoaXMuc3RhdHVzID0gMDsgICAgICAgICAgICAvKiBhcyB0aGUgbmFtZSBpbXBsaWVzICovCiAgICB0aGlzLnBlbmRpbmdfYnVmID0gbnVsbDsgICAgICAvKiBvdXRwdXQgc3RpbGwgcGVuZGluZyAqLwogICAgdGhpcy5wZW5kaW5nX2J1Zl9zaXplID0gMDsgIC8qIHNpemUgb2YgcGVuZGluZ19idWYgKi8KICAgIHRoaXMucGVuZGluZ19vdXQgPSAwOyAgICAgICAvKiBuZXh0IHBlbmRpbmcgYnl0ZSB0byBvdXRwdXQgdG8gdGhlIHN0cmVhbSAqLwogICAgdGhpcy5wZW5kaW5nID0gMDsgICAgICAgICAgIC8qIG5iIG9mIGJ5dGVzIGluIHRoZSBwZW5kaW5nIGJ1ZmZlciAqLwogICAgdGhpcy53cmFwID0gMDsgICAgICAgICAgICAgIC8qIGJpdCAwIHRydWUgZm9yIHpsaWIsIGJpdCAxIHRydWUgZm9yIGd6aXAgKi8KICAgIHRoaXMuZ3poZWFkID0gbnVsbDsgICAgICAgICAvKiBnemlwIGhlYWRlciBpbmZvcm1hdGlvbiB0byB3cml0ZSAqLwogICAgdGhpcy5nemluZGV4ID0gMDsgICAgICAgICAgIC8qIHdoZXJlIGluIGV4dHJhLCBuYW1lLCBvciBjb21tZW50ICovCiAgICB0aGlzLm1ldGhvZCA9IFpfREVGTEFURUQkMjsgLyogY2FuIG9ubHkgYmUgREVGTEFURUQgKi8KICAgIHRoaXMubGFzdF9mbHVzaCA9IC0xOyAgIC8qIHZhbHVlIG9mIGZsdXNoIHBhcmFtIGZvciBwcmV2aW91cyBkZWZsYXRlIGNhbGwgKi8KCiAgICB0aGlzLndfc2l6ZSA9IDA7ICAvKiBMWjc3IHdpbmRvdyBzaXplICgzMksgYnkgZGVmYXVsdCkgKi8KICAgIHRoaXMud19iaXRzID0gMDsgIC8qIGxvZzIod19zaXplKSAgKDguLjE2KSAqLwogICAgdGhpcy53X21hc2sgPSAwOyAgLyogd19zaXplIC0gMSAqLwoKICAgIHRoaXMud2luZG93ID0gbnVsbDsKICAgIC8qIFNsaWRpbmcgd2luZG93LiBJbnB1dCBieXRlcyBhcmUgcmVhZCBpbnRvIHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgd2luZG93LAogICAgICogYW5kIG1vdmUgdG8gdGhlIGZpcnN0IGhhbGYgbGF0ZXIgdG8ga2VlcCBhIGRpY3Rpb25hcnkgb2YgYXQgbGVhc3Qgd1NpemUKICAgICAqIGJ5dGVzLiBXaXRoIHRoaXMgb3JnYW5pemF0aW9uLCBtYXRjaGVzIGFyZSBsaW1pdGVkIHRvIGEgZGlzdGFuY2Ugb2YKICAgICAqIHdTaXplLU1BWF9NQVRDSCBieXRlcywgYnV0IHRoaXMgZW5zdXJlcyB0aGF0IElPIGlzIGFsd2F5cwogICAgICogcGVyZm9ybWVkIHdpdGggYSBsZW5ndGggbXVsdGlwbGUgb2YgdGhlIGJsb2NrIHNpemUuCiAgICAgKi8KCiAgICB0aGlzLndpbmRvd19zaXplID0gMDsKICAgIC8qIEFjdHVhbCBzaXplIG9mIHdpbmRvdzogMip3U2l6ZSwgZXhjZXB0IHdoZW4gdGhlIHVzZXIgaW5wdXQgYnVmZmVyCiAgICAgKiBpcyBkaXJlY3RseSB1c2VkIGFzIHNsaWRpbmcgd2luZG93LgogICAgICovCgogICAgdGhpcy5wcmV2ID0gbnVsbDsKICAgIC8qIExpbmsgdG8gb2xkZXIgc3RyaW5nIHdpdGggc2FtZSBoYXNoIGluZGV4LiBUbyBsaW1pdCB0aGUgc2l6ZSBvZiB0aGlzCiAgICAgKiBhcnJheSB0byA2NEssIHRoaXMgbGluayBpcyBtYWludGFpbmVkIG9ubHkgZm9yIHRoZSBsYXN0IDMySyBzdHJpbmdzLgogICAgICogQW4gaW5kZXggaW4gdGhpcyBhcnJheSBpcyB0aHVzIGEgd2luZG93IGluZGV4IG1vZHVsbyAzMksuCiAgICAgKi8KCiAgICB0aGlzLmhlYWQgPSBudWxsOyAgIC8qIEhlYWRzIG9mIHRoZSBoYXNoIGNoYWlucyBvciBOSUwuICovCgogICAgdGhpcy5pbnNfaCA9IDA7ICAgICAgIC8qIGhhc2ggaW5kZXggb2Ygc3RyaW5nIHRvIGJlIGluc2VydGVkICovCiAgICB0aGlzLmhhc2hfc2l6ZSA9IDA7ICAgLyogbnVtYmVyIG9mIGVsZW1lbnRzIGluIGhhc2ggdGFibGUgKi8KICAgIHRoaXMuaGFzaF9iaXRzID0gMDsgICAvKiBsb2cyKGhhc2hfc2l6ZSkgKi8KICAgIHRoaXMuaGFzaF9tYXNrID0gMDsgICAvKiBoYXNoX3NpemUtMSAqLwoKICAgIHRoaXMuaGFzaF9zaGlmdCA9IDA7CiAgICAvKiBOdW1iZXIgb2YgYml0cyBieSB3aGljaCBpbnNfaCBtdXN0IGJlIHNoaWZ0ZWQgYXQgZWFjaCBpbnB1dAogICAgICogc3RlcC4gSXQgbXVzdCBiZSBzdWNoIHRoYXQgYWZ0ZXIgTUlOX01BVENIIHN0ZXBzLCB0aGUgb2xkZXN0CiAgICAgKiBieXRlIG5vIGxvbmdlciB0YWtlcyBwYXJ0IGluIHRoZSBoYXNoIGtleSwgdGhhdCBpczoKICAgICAqICAgaGFzaF9zaGlmdCAqIE1JTl9NQVRDSCA+PSBoYXNoX2JpdHMKICAgICAqLwoKICAgIHRoaXMuYmxvY2tfc3RhcnQgPSAwOwogICAgLyogV2luZG93IHBvc2l0aW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgb3V0cHV0IGJsb2NrLiBHZXRzCiAgICAgKiBuZWdhdGl2ZSB3aGVuIHRoZSB3aW5kb3cgaXMgbW92ZWQgYmFja3dhcmRzLgogICAgICovCgogICAgdGhpcy5tYXRjaF9sZW5ndGggPSAwOyAgICAgIC8qIGxlbmd0aCBvZiBiZXN0IG1hdGNoICovCiAgICB0aGlzLnByZXZfbWF0Y2ggPSAwOyAgICAgICAgLyogcHJldmlvdXMgbWF0Y2ggKi8KICAgIHRoaXMubWF0Y2hfYXZhaWxhYmxlID0gMDsgICAvKiBzZXQgaWYgcHJldmlvdXMgbWF0Y2ggZXhpc3RzICovCiAgICB0aGlzLnN0cnN0YXJ0ID0gMDsgICAgICAgICAgLyogc3RhcnQgb2Ygc3RyaW5nIHRvIGluc2VydCAqLwogICAgdGhpcy5tYXRjaF9zdGFydCA9IDA7ICAgICAgIC8qIHN0YXJ0IG9mIG1hdGNoaW5nIHN0cmluZyAqLwogICAgdGhpcy5sb29rYWhlYWQgPSAwOyAgICAgICAgIC8qIG51bWJlciBvZiB2YWxpZCBieXRlcyBhaGVhZCBpbiB3aW5kb3cgKi8KCiAgICB0aGlzLnByZXZfbGVuZ3RoID0gMDsKICAgIC8qIExlbmd0aCBvZiB0aGUgYmVzdCBtYXRjaCBhdCBwcmV2aW91cyBzdGVwLiBNYXRjaGVzIG5vdCBncmVhdGVyIHRoYW4gdGhpcwogICAgICogYXJlIGRpc2NhcmRlZC4gVGhpcyBpcyB1c2VkIGluIHRoZSBsYXp5IG1hdGNoIGV2YWx1YXRpb24uCiAgICAgKi8KCiAgICB0aGlzLm1heF9jaGFpbl9sZW5ndGggPSAwOwogICAgLyogVG8gc3BlZWQgdXAgZGVmbGF0aW9uLCBoYXNoIGNoYWlucyBhcmUgbmV2ZXIgc2VhcmNoZWQgYmV5b25kIHRoaXMKICAgICAqIGxlbmd0aC4gIEEgaGlnaGVyIGxpbWl0IGltcHJvdmVzIGNvbXByZXNzaW9uIHJhdGlvIGJ1dCBkZWdyYWRlcyB0aGUKICAgICAqIHNwZWVkLgogICAgICovCgogICAgdGhpcy5tYXhfbGF6eV9tYXRjaCA9IDA7CiAgICAvKiBBdHRlbXB0IHRvIGZpbmQgYSBiZXR0ZXIgbWF0Y2ggb25seSB3aGVuIHRoZSBjdXJyZW50IG1hdGNoIGlzIHN0cmljdGx5CiAgICAgKiBzbWFsbGVyIHRoYW4gdGhpcyB2YWx1ZS4gVGhpcyBtZWNoYW5pc20gaXMgdXNlZCBvbmx5IGZvciBjb21wcmVzc2lvbgogICAgICogbGV2ZWxzID49IDQuCiAgICAgKi8KICAgIC8vIFRoYXQncyBhbGlhcyB0byBtYXhfbGF6eV9tYXRjaCwgZG9uJ3QgdXNlIGRpcmVjdGx5CiAgICAvL3RoaXMubWF4X2luc2VydF9sZW5ndGggPSAwOwogICAgLyogSW5zZXJ0IG5ldyBzdHJpbmdzIGluIHRoZSBoYXNoIHRhYmxlIG9ubHkgaWYgdGhlIG1hdGNoIGxlbmd0aCBpcyBub3QKICAgICAqIGdyZWF0ZXIgdGhhbiB0aGlzIGxlbmd0aC4gVGhpcyBzYXZlcyB0aW1lIGJ1dCBkZWdyYWRlcyBjb21wcmVzc2lvbi4KICAgICAqIG1heF9pbnNlcnRfbGVuZ3RoIGlzIHVzZWQgb25seSBmb3IgY29tcHJlc3Npb24gbGV2ZWxzIDw9IDMuCiAgICAgKi8KCiAgICB0aGlzLmxldmVsID0gMDsgICAgIC8qIGNvbXByZXNzaW9uIGxldmVsICgxLi45KSAqLwogICAgdGhpcy5zdHJhdGVneSA9IDA7ICAvKiBmYXZvciBvciBmb3JjZSBIdWZmbWFuIGNvZGluZyovCgogICAgdGhpcy5nb29kX21hdGNoID0gMDsKICAgIC8qIFVzZSBhIGZhc3RlciBzZWFyY2ggd2hlbiB0aGUgcHJldmlvdXMgbWF0Y2ggaXMgbG9uZ2VyIHRoYW4gdGhpcyAqLwoKICAgIHRoaXMubmljZV9tYXRjaCA9IDA7IC8qIFN0b3Agc2VhcmNoaW5nIHdoZW4gY3VycmVudCBtYXRjaCBleGNlZWRzIHRoaXMgKi8KCiAgICAgICAgICAgICAgICAvKiB1c2VkIGJ5IHRyZWVzLmM6ICovCgogICAgLyogRGlkbid0IHVzZSBjdF9kYXRhIHR5cGVkZWYgYmVsb3cgdG8gc3VwcHJlc3MgY29tcGlsZXIgd2FybmluZyAqLwoKICAgIC8vIHN0cnVjdCBjdF9kYXRhX3MgZHluX2x0cmVlW0hFQVBfU0laRV07ICAgLyogbGl0ZXJhbCBhbmQgbGVuZ3RoIHRyZWUgKi8KICAgIC8vIHN0cnVjdCBjdF9kYXRhX3MgZHluX2R0cmVlWzIqRF9DT0RFUysxXTsgLyogZGlzdGFuY2UgdHJlZSAqLwogICAgLy8gc3RydWN0IGN0X2RhdGFfcyBibF90cmVlWzIqQkxfQ09ERVMrMV07ICAvKiBIdWZmbWFuIHRyZWUgZm9yIGJpdCBsZW5ndGhzICovCgogICAgLy8gVXNlIGZsYXQgYXJyYXkgb2YgRE9VQkxFIHNpemUsIHdpdGggaW50ZXJsZWF2ZWQgZmF0YSwKICAgIC8vIGJlY2F1c2UgSlMgZG9lcyBub3Qgc3VwcG9ydCBlZmZlY3RpdmUKICAgIHRoaXMuZHluX2x0cmVlICA9IG5ldyBVaW50MTZBcnJheShIRUFQX1NJWkUgKiAyKTsKICAgIHRoaXMuZHluX2R0cmVlICA9IG5ldyBVaW50MTZBcnJheSgoMiAqIERfQ09ERVMgKyAxKSAqIDIpOwogICAgdGhpcy5ibF90cmVlICAgID0gbmV3IFVpbnQxNkFycmF5KCgyICogQkxfQ09ERVMgKyAxKSAqIDIpOwogICAgemVybyh0aGlzLmR5bl9sdHJlZSk7CiAgICB6ZXJvKHRoaXMuZHluX2R0cmVlKTsKICAgIHplcm8odGhpcy5ibF90cmVlKTsKCiAgICB0aGlzLmxfZGVzYyAgID0gbnVsbDsgICAgICAgICAvKiBkZXNjLiBmb3IgbGl0ZXJhbCB0cmVlICovCiAgICB0aGlzLmRfZGVzYyAgID0gbnVsbDsgICAgICAgICAvKiBkZXNjLiBmb3IgZGlzdGFuY2UgdHJlZSAqLwogICAgdGhpcy5ibF9kZXNjICA9IG51bGw7ICAgICAgICAgLyogZGVzYy4gZm9yIGJpdCBsZW5ndGggdHJlZSAqLwoKICAgIC8vdXNoIGJsX2NvdW50W01BWF9CSVRTKzFdOwogICAgdGhpcy5ibF9jb3VudCA9IG5ldyBVaW50MTZBcnJheShNQVhfQklUUyArIDEpOwogICAgLyogbnVtYmVyIG9mIGNvZGVzIGF0IGVhY2ggYml0IGxlbmd0aCBmb3IgYW4gb3B0aW1hbCB0cmVlICovCgogICAgLy9pbnQgaGVhcFsyKkxfQ09ERVMrMV07ICAgICAgLyogaGVhcCB1c2VkIHRvIGJ1aWxkIHRoZSBIdWZmbWFuIHRyZWVzICovCiAgICB0aGlzLmhlYXAgPSBuZXcgVWludDE2QXJyYXkoMiAqIExfQ09ERVMgKyAxKTsgIC8qIGhlYXAgdXNlZCB0byBidWlsZCB0aGUgSHVmZm1hbiB0cmVlcyAqLwogICAgemVybyh0aGlzLmhlYXApOwoKICAgIHRoaXMuaGVhcF9sZW4gPSAwOyAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgaGVhcCAqLwogICAgdGhpcy5oZWFwX21heCA9IDA7ICAgICAgICAgICAgICAgLyogZWxlbWVudCBvZiBsYXJnZXN0IGZyZXF1ZW5jeSAqLwogICAgLyogVGhlIHNvbnMgb2YgaGVhcFtuXSBhcmUgaGVhcFsyKm5dIGFuZCBoZWFwWzIqbisxXS4gaGVhcFswXSBpcyBub3QgdXNlZC4KICAgICAqIFRoZSBzYW1lIGhlYXAgYXJyYXkgaXMgdXNlZCB0byBidWlsZCBhbGwgdHJlZXMuCiAgICAgKi8KCiAgICB0aGlzLmRlcHRoID0gbmV3IFVpbnQxNkFycmF5KDIgKiBMX0NPREVTICsgMSk7IC8vdWNoIGRlcHRoWzIqTF9DT0RFUysxXTsKICAgIHplcm8odGhpcy5kZXB0aCk7CiAgICAvKiBEZXB0aCBvZiBlYWNoIHN1YnRyZWUgdXNlZCBhcyB0aWUgYnJlYWtlciBmb3IgdHJlZXMgb2YgZXF1YWwgZnJlcXVlbmN5CiAgICAgKi8KCiAgICB0aGlzLmxfYnVmID0gMDsgICAgICAgICAgLyogYnVmZmVyIGluZGV4IGZvciBsaXRlcmFscyBvciBsZW5ndGhzICovCgogICAgdGhpcy5saXRfYnVmc2l6ZSA9IDA7CiAgICAvKiBTaXplIG9mIG1hdGNoIGJ1ZmZlciBmb3IgbGl0ZXJhbHMvbGVuZ3Rocy4gIFRoZXJlIGFyZSA0IHJlYXNvbnMgZm9yCiAgICAgKiBsaW1pdGluZyBsaXRfYnVmc2l6ZSB0byA2NEs6CiAgICAgKiAgIC0gZnJlcXVlbmNpZXMgY2FuIGJlIGtlcHQgaW4gMTYgYml0IGNvdW50ZXJzCiAgICAgKiAgIC0gaWYgY29tcHJlc3Npb24gaXMgbm90IHN1Y2Nlc3NmdWwgZm9yIHRoZSBmaXJzdCBibG9jaywgYWxsIGlucHV0CiAgICAgKiAgICAgZGF0YSBpcyBzdGlsbCBpbiB0aGUgd2luZG93IHNvIHdlIGNhbiBzdGlsbCBlbWl0IGEgc3RvcmVkIGJsb2NrIGV2ZW4KICAgICAqICAgICB3aGVuIGlucHV0IGNvbWVzIGZyb20gc3RhbmRhcmQgaW5wdXQuICAoVGhpcyBjYW4gYWxzbyBiZSBkb25lIGZvcgogICAgICogICAgIGFsbCBibG9ja3MgaWYgbGl0X2J1ZnNpemUgaXMgbm90IGdyZWF0ZXIgdGhhbiAzMksuKQogICAgICogICAtIGlmIGNvbXByZXNzaW9uIGlzIG5vdCBzdWNjZXNzZnVsIGZvciBhIGZpbGUgc21hbGxlciB0aGFuIDY0Sywgd2UgY2FuCiAgICAgKiAgICAgZXZlbiBlbWl0IGEgc3RvcmVkIGZpbGUgaW5zdGVhZCBvZiBhIHN0b3JlZCBibG9jayAoc2F2aW5nIDUgYnl0ZXMpLgogICAgICogICAgIFRoaXMgaXMgYXBwbGljYWJsZSBvbmx5IGZvciB6aXAgKG5vdCBnemlwIG9yIHpsaWIpLgogICAgICogICAtIGNyZWF0aW5nIG5ldyBIdWZmbWFuIHRyZWVzIGxlc3MgZnJlcXVlbnRseSBtYXkgbm90IHByb3ZpZGUgZmFzdAogICAgICogICAgIGFkYXB0YXRpb24gdG8gY2hhbmdlcyBpbiB0aGUgaW5wdXQgZGF0YSBzdGF0aXN0aWNzLiAoVGFrZSBmb3IKICAgICAqICAgICBleGFtcGxlIGEgYmluYXJ5IGZpbGUgd2l0aCBwb29ybHkgY29tcHJlc3NpYmxlIGNvZGUgZm9sbG93ZWQgYnkKICAgICAqICAgICBhIGhpZ2hseSBjb21wcmVzc2libGUgc3RyaW5nIHRhYmxlLikgU21hbGxlciBidWZmZXIgc2l6ZXMgZ2l2ZQogICAgICogICAgIGZhc3QgYWRhcHRhdGlvbiBidXQgaGF2ZSBvZiBjb3Vyc2UgdGhlIG92ZXJoZWFkIG9mIHRyYW5zbWl0dGluZwogICAgICogICAgIHRyZWVzIG1vcmUgZnJlcXVlbnRseS4KICAgICAqICAgLSBJIGNhbid0IGNvdW50IGFib3ZlIDQKICAgICAqLwoKICAgIHRoaXMubGFzdF9saXQgPSAwOyAgICAgIC8qIHJ1bm5pbmcgaW5kZXggaW4gbF9idWYgKi8KCiAgICB0aGlzLmRfYnVmID0gMDsKICAgIC8qIEJ1ZmZlciBpbmRleCBmb3IgZGlzdGFuY2VzLiBUbyBzaW1wbGlmeSB0aGUgY29kZSwgZF9idWYgYW5kIGxfYnVmIGhhdmUKICAgICAqIHRoZSBzYW1lIG51bWJlciBvZiBlbGVtZW50cy4gVG8gdXNlIGRpZmZlcmVudCBsZW5ndGhzLCBhbiBleHRyYSBmbGFnCiAgICAgKiBhcnJheSB3b3VsZCBiZSBuZWNlc3NhcnkuCiAgICAgKi8KCiAgICB0aGlzLm9wdF9sZW4gPSAwOyAgICAgICAvKiBiaXQgbGVuZ3RoIG9mIGN1cnJlbnQgYmxvY2sgd2l0aCBvcHRpbWFsIHRyZWVzICovCiAgICB0aGlzLnN0YXRpY19sZW4gPSAwOyAgICAvKiBiaXQgbGVuZ3RoIG9mIGN1cnJlbnQgYmxvY2sgd2l0aCBzdGF0aWMgdHJlZXMgKi8KICAgIHRoaXMubWF0Y2hlcyA9IDA7ICAgICAgIC8qIG51bWJlciBvZiBzdHJpbmcgbWF0Y2hlcyBpbiBjdXJyZW50IGJsb2NrICovCiAgICB0aGlzLmluc2VydCA9IDA7ICAgICAgICAvKiBieXRlcyBhdCBlbmQgb2Ygd2luZG93IGxlZnQgdG8gaW5zZXJ0ICovCgoKICAgIHRoaXMuYmlfYnVmID0gMDsKICAgIC8qIE91dHB1dCBidWZmZXIuIGJpdHMgYXJlIGluc2VydGVkIHN0YXJ0aW5nIGF0IHRoZSBib3R0b20gKGxlYXN0CiAgICAgKiBzaWduaWZpY2FudCBiaXRzKS4KICAgICAqLwogICAgdGhpcy5iaV92YWxpZCA9IDA7CiAgICAvKiBOdW1iZXIgb2YgdmFsaWQgYml0cyBpbiBiaV9idWYuICBBbGwgYml0cyBhYm92ZSB0aGUgbGFzdCB2YWxpZCBiaXQKICAgICAqIGFyZSBhbHdheXMgemVyby4KICAgICAqLwoKICAgIC8vIFVzZWQgZm9yIHdpbmRvdyBtZW1vcnkgaW5pdC4gV2Ugc2FmZWx5IGlnbm9yZSBpdCBmb3IgSlMuIFRoYXQgbWFrZXMKICAgIC8vIHNlbnNlIG9ubHkgZm9yIHBvaW50ZXJzIGFuZCBtZW1vcnkgY2hlY2sgdG9vbHMuCiAgICAvL3RoaXMuaGlnaF93YXRlciA9IDA7CiAgICAvKiBIaWdoIHdhdGVyIG1hcmsgb2Zmc2V0IGluIHdpbmRvdyBmb3IgaW5pdGlhbGl6ZWQgYnl0ZXMgLS0gYnl0ZXMgYWJvdmUKICAgICAqIHRoaXMgYXJlIHNldCB0byB6ZXJvIGluIG9yZGVyIHRvIGF2b2lkIG1lbW9yeSBjaGVjayB3YXJuaW5ncyB3aGVuCiAgICAgKiBsb25nZXN0IG1hdGNoIHJvdXRpbmVzIGFjY2VzcyBieXRlcyBwYXN0IHRoZSBpbnB1dC4gIFRoaXMgaXMgdGhlbgogICAgICogdXBkYXRlZCB0byB0aGUgbmV3IGhpZ2ggd2F0ZXIgbWFyay4KICAgICAqLwogIH0KCgogIGNvbnN0IGRlZmxhdGVSZXNldEtlZXAgPSAoc3RybSkgPT4gewoKICAgIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSkgewogICAgICByZXR1cm4gZXJyKHN0cm0sIFpfU1RSRUFNX0VSUk9SJDIpOwogICAgfQoKICAgIHN0cm0udG90YWxfaW4gPSBzdHJtLnRvdGFsX291dCA9IDA7CiAgICBzdHJtLmRhdGFfdHlwZSA9IFpfVU5LTk9XTjsKCiAgICBjb25zdCBzID0gc3RybS5zdGF0ZTsKICAgIHMucGVuZGluZyA9IDA7CiAgICBzLnBlbmRpbmdfb3V0ID0gMDsKCiAgICBpZiAocy53cmFwIDwgMCkgewogICAgICBzLndyYXAgPSAtcy53cmFwOwogICAgICAvKiB3YXMgbWFkZSBuZWdhdGl2ZSBieSBkZWZsYXRlKC4uLiwgWl9GSU5JU0gpOyAqLwogICAgfQogICAgcy5zdGF0dXMgPSAocy53cmFwID8gSU5JVF9TVEFURSA6IEJVU1lfU1RBVEUpOwogICAgc3RybS5hZGxlciA9IChzLndyYXAgPT09IDIpID8KICAgICAgMCAgLy8gY3JjMzIoMCwgWl9OVUxMLCAwKQogICAgOgogICAgICAxOyAvLyBhZGxlcjMyKDAsIFpfTlVMTCwgMCkKICAgIHMubGFzdF9mbHVzaCA9IFpfTk9fRkxVU0gkMjsKICAgIF90cl9pbml0KHMpOwogICAgcmV0dXJuIFpfT0skMzsKICB9OwoKCiAgY29uc3QgZGVmbGF0ZVJlc2V0ID0gKHN0cm0pID0+IHsKCiAgICBjb25zdCByZXQgPSBkZWZsYXRlUmVzZXRLZWVwKHN0cm0pOwogICAgaWYgKHJldCA9PT0gWl9PSyQzKSB7CiAgICAgIGxtX2luaXQoc3RybS5zdGF0ZSk7CiAgICB9CiAgICByZXR1cm4gcmV0OwogIH07CgoKICBjb25zdCBkZWZsYXRlU2V0SGVhZGVyID0gKHN0cm0sIGhlYWQpID0+IHsKCiAgICBpZiAoIXN0cm0gfHwgIXN0cm0uc3RhdGUpIHsgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDI7IH0KICAgIGlmIChzdHJtLnN0YXRlLndyYXAgIT09IDIpIHsgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDI7IH0KICAgIHN0cm0uc3RhdGUuZ3poZWFkID0gaGVhZDsKICAgIHJldHVybiBaX09LJDM7CiAgfTsKCgogIGNvbnN0IGRlZmxhdGVJbml0MiA9IChzdHJtLCBsZXZlbCwgbWV0aG9kLCB3aW5kb3dCaXRzLCBtZW1MZXZlbCwgc3RyYXRlZ3kpID0+IHsKCiAgICBpZiAoIXN0cm0pIHsgLy8gPT09IFpfTlVMTAogICAgICByZXR1cm4gWl9TVFJFQU1fRVJST1IkMjsKICAgIH0KICAgIGxldCB3cmFwID0gMTsKCiAgICBpZiAobGV2ZWwgPT09IFpfREVGQVVMVF9DT01QUkVTU0lPTiQxKSB7CiAgICAgIGxldmVsID0gNjsKICAgIH0KCiAgICBpZiAod2luZG93Qml0cyA8IDApIHsgLyogc3VwcHJlc3MgemxpYiB3cmFwcGVyICovCiAgICAgIHdyYXAgPSAwOwogICAgICB3aW5kb3dCaXRzID0gLXdpbmRvd0JpdHM7CiAgICB9CgogICAgZWxzZSBpZiAod2luZG93Qml0cyA+IDE1KSB7CiAgICAgIHdyYXAgPSAyOyAgICAgICAgICAgLyogd3JpdGUgZ3ppcCB3cmFwcGVyIGluc3RlYWQgKi8KICAgICAgd2luZG93Qml0cyAtPSAxNjsKICAgIH0KCgogICAgaWYgKG1lbUxldmVsIDwgMSB8fCBtZW1MZXZlbCA+IE1BWF9NRU1fTEVWRUwgfHwgbWV0aG9kICE9PSBaX0RFRkxBVEVEJDIgfHwKICAgICAgd2luZG93Qml0cyA8IDggfHwgd2luZG93Qml0cyA+IDE1IHx8IGxldmVsIDwgMCB8fCBsZXZlbCA+IDkgfHwKICAgICAgc3RyYXRlZ3kgPCAwIHx8IHN0cmF0ZWd5ID4gWl9GSVhFRCkgewogICAgICByZXR1cm4gZXJyKHN0cm0sIFpfU1RSRUFNX0VSUk9SJDIpOwogICAgfQoKCiAgICBpZiAod2luZG93Qml0cyA9PT0gOCkgewogICAgICB3aW5kb3dCaXRzID0gOTsKICAgIH0KICAgIC8qIHVudGlsIDI1Ni1ieXRlIHdpbmRvdyBidWcgZml4ZWQgKi8KCiAgICBjb25zdCBzID0gbmV3IERlZmxhdGVTdGF0ZSgpOwoKICAgIHN0cm0uc3RhdGUgPSBzOwogICAgcy5zdHJtID0gc3RybTsKCiAgICBzLndyYXAgPSB3cmFwOwogICAgcy5nemhlYWQgPSBudWxsOwogICAgcy53X2JpdHMgPSB3aW5kb3dCaXRzOwogICAgcy53X3NpemUgPSAxIDw8IHMud19iaXRzOwogICAgcy53X21hc2sgPSBzLndfc2l6ZSAtIDE7CgogICAgcy5oYXNoX2JpdHMgPSBtZW1MZXZlbCArIDc7CiAgICBzLmhhc2hfc2l6ZSA9IDEgPDwgcy5oYXNoX2JpdHM7CiAgICBzLmhhc2hfbWFzayA9IHMuaGFzaF9zaXplIC0gMTsKICAgIHMuaGFzaF9zaGlmdCA9IH5+KChzLmhhc2hfYml0cyArIE1JTl9NQVRDSCAtIDEpIC8gTUlOX01BVENIKTsKCiAgICBzLndpbmRvdyA9IG5ldyBVaW50OEFycmF5KHMud19zaXplICogMik7CiAgICBzLmhlYWQgPSBuZXcgVWludDE2QXJyYXkocy5oYXNoX3NpemUpOwogICAgcy5wcmV2ID0gbmV3IFVpbnQxNkFycmF5KHMud19zaXplKTsKCiAgICAvLyBEb24ndCBuZWVkIG1lbSBpbml0IG1hZ2ljIGZvciBKUy4KICAgIC8vcy5oaWdoX3dhdGVyID0gMDsgIC8qIG5vdGhpbmcgd3JpdHRlbiB0byBzLT53aW5kb3cgeWV0ICovCgogICAgcy5saXRfYnVmc2l6ZSA9IDEgPDwgKG1lbUxldmVsICsgNik7IC8qIDE2SyBlbGVtZW50cyBieSBkZWZhdWx0ICovCgogICAgcy5wZW5kaW5nX2J1Zl9zaXplID0gcy5saXRfYnVmc2l6ZSAqIDQ7CgogICAgLy9vdmVybGF5ID0gKHVzaGYgKikgWkFMTE9DKHN0cm0sIHMtPmxpdF9idWZzaXplLCBzaXplb2YodXNoKSsyKTsKICAgIC8vcy0+cGVuZGluZ19idWYgPSAodWNoZiAqKSBvdmVybGF5OwogICAgcy5wZW5kaW5nX2J1ZiA9IG5ldyBVaW50OEFycmF5KHMucGVuZGluZ19idWZfc2l6ZSk7CgogICAgLy8gSXQgaXMgb2Zmc2V0IGZyb20gYHMucGVuZGluZ19idWZgIChzaXplIGlzIGBzLmxpdF9idWZzaXplICogMmApCiAgICAvL3MtPmRfYnVmID0gb3ZlcmxheSArIHMtPmxpdF9idWZzaXplL3NpemVvZih1c2gpOwogICAgcy5kX2J1ZiA9IDEgKiBzLmxpdF9idWZzaXplOwoKICAgIC8vcy0+bF9idWYgPSBzLT5wZW5kaW5nX2J1ZiArICgxK3NpemVvZih1c2gpKSpzLT5saXRfYnVmc2l6ZTsKICAgIHMubF9idWYgPSAoMSArIDIpICogcy5saXRfYnVmc2l6ZTsKCiAgICBzLmxldmVsID0gbGV2ZWw7CiAgICBzLnN0cmF0ZWd5ID0gc3RyYXRlZ3k7CiAgICBzLm1ldGhvZCA9IG1ldGhvZDsKCiAgICByZXR1cm4gZGVmbGF0ZVJlc2V0KHN0cm0pOwogIH07CgogIGNvbnN0IGRlZmxhdGVJbml0ID0gKHN0cm0sIGxldmVsKSA9PiB7CgogICAgcmV0dXJuIGRlZmxhdGVJbml0MihzdHJtLCBsZXZlbCwgWl9ERUZMQVRFRCQyLCBNQVhfV0JJVFMkMSwgREVGX01FTV9MRVZFTCwgWl9ERUZBVUxUX1NUUkFURUdZJDEpOwogIH07CgoKICBjb25zdCBkZWZsYXRlJDIgPSAoc3RybSwgZmx1c2gpID0+IHsKCiAgICBsZXQgYmVnLCB2YWw7IC8vIGZvciBnemlwIGhlYWRlciB3cml0ZSBvbmx5CgogICAgaWYgKCFzdHJtIHx8ICFzdHJtLnN0YXRlIHx8CiAgICAgIGZsdXNoID4gWl9CTE9DSyQxIHx8IGZsdXNoIDwgMCkgewogICAgICByZXR1cm4gc3RybSA/IGVycihzdHJtLCBaX1NUUkVBTV9FUlJPUiQyKSA6IFpfU1RSRUFNX0VSUk9SJDI7CiAgICB9CgogICAgY29uc3QgcyA9IHN0cm0uc3RhdGU7CgogICAgaWYgKCFzdHJtLm91dHB1dCB8fAogICAgICAgICghc3RybS5pbnB1dCAmJiBzdHJtLmF2YWlsX2luICE9PSAwKSB8fAogICAgICAgIChzLnN0YXR1cyA9PT0gRklOSVNIX1NUQVRFICYmIGZsdXNoICE9PSBaX0ZJTklTSCQzKSkgewogICAgICByZXR1cm4gZXJyKHN0cm0sIChzdHJtLmF2YWlsX291dCA9PT0gMCkgPyBaX0JVRl9FUlJPUiQxIDogWl9TVFJFQU1fRVJST1IkMik7CiAgICB9CgogICAgcy5zdHJtID0gc3RybTsgLyoganVzdCBpbiBjYXNlICovCiAgICBjb25zdCBvbGRfZmx1c2ggPSBzLmxhc3RfZmx1c2g7CiAgICBzLmxhc3RfZmx1c2ggPSBmbHVzaDsKCiAgICAvKiBXcml0ZSB0aGUgaGVhZGVyICovCiAgICBpZiAocy5zdGF0dXMgPT09IElOSVRfU1RBVEUpIHsKCiAgICAgIGlmIChzLndyYXAgPT09IDIpIHsgLy8gR1pJUCBoZWFkZXIKICAgICAgICBzdHJtLmFkbGVyID0gMDsgIC8vY3JjMzIoMEwsIFpfTlVMTCwgMCk7CiAgICAgICAgcHV0X2J5dGUocywgMzEpOwogICAgICAgIHB1dF9ieXRlKHMsIDEzOSk7CiAgICAgICAgcHV0X2J5dGUocywgOCk7CiAgICAgICAgaWYgKCFzLmd6aGVhZCkgeyAvLyBzLT5nemhlYWQgPT0gWl9OVUxMCiAgICAgICAgICBwdXRfYnl0ZShzLCAwKTsKICAgICAgICAgIHB1dF9ieXRlKHMsIDApOwogICAgICAgICAgcHV0X2J5dGUocywgMCk7CiAgICAgICAgICBwdXRfYnl0ZShzLCAwKTsKICAgICAgICAgIHB1dF9ieXRlKHMsIDApOwogICAgICAgICAgcHV0X2J5dGUocywgcy5sZXZlbCA9PT0gOSA/IDIgOgogICAgICAgICAgICAgICAgICAgICAgKHMuc3RyYXRlZ3kgPj0gWl9IVUZGTUFOX09OTFkgfHwgcy5sZXZlbCA8IDIgPwogICAgICAgICAgICAgICAgICAgICAgIDQgOiAwKSk7CiAgICAgICAgICBwdXRfYnl0ZShzLCBPU19DT0RFKTsKICAgICAgICAgIHMuc3RhdHVzID0gQlVTWV9TVEFURTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBwdXRfYnl0ZShzLCAocy5nemhlYWQudGV4dCA/IDEgOiAwKSArCiAgICAgICAgICAgICAgICAgICAgICAocy5nemhlYWQuaGNyYyA/IDIgOiAwKSArCiAgICAgICAgICAgICAgICAgICAgICAoIXMuZ3poZWFkLmV4dHJhID8gMCA6IDQpICsKICAgICAgICAgICAgICAgICAgICAgICghcy5nemhlYWQubmFtZSA/IDAgOiA4KSArCiAgICAgICAgICAgICAgICAgICAgICAoIXMuZ3poZWFkLmNvbW1lbnQgPyAwIDogMTYpCiAgICAgICAgICApOwogICAgICAgICAgcHV0X2J5dGUocywgcy5nemhlYWQudGltZSAmIDB4ZmYpOwogICAgICAgICAgcHV0X2J5dGUocywgKHMuZ3poZWFkLnRpbWUgPj4gOCkgJiAweGZmKTsKICAgICAgICAgIHB1dF9ieXRlKHMsIChzLmd6aGVhZC50aW1lID4+IDE2KSAmIDB4ZmYpOwogICAgICAgICAgcHV0X2J5dGUocywgKHMuZ3poZWFkLnRpbWUgPj4gMjQpICYgMHhmZik7CiAgICAgICAgICBwdXRfYnl0ZShzLCBzLmxldmVsID09PSA5ID8gMiA6CiAgICAgICAgICAgICAgICAgICAgICAocy5zdHJhdGVneSA+PSBaX0hVRkZNQU5fT05MWSB8fCBzLmxldmVsIDwgMiA/CiAgICAgICAgICAgICAgICAgICAgICAgNCA6IDApKTsKICAgICAgICAgIHB1dF9ieXRlKHMsIHMuZ3poZWFkLm9zICYgMHhmZik7CiAgICAgICAgICBpZiAocy5nemhlYWQuZXh0cmEgJiYgcy5nemhlYWQuZXh0cmEubGVuZ3RoKSB7CiAgICAgICAgICAgIHB1dF9ieXRlKHMsIHMuZ3poZWFkLmV4dHJhLmxlbmd0aCAmIDB4ZmYpOwogICAgICAgICAgICBwdXRfYnl0ZShzLCAocy5nemhlYWQuZXh0cmEubGVuZ3RoID4+IDgpICYgMHhmZik7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocy5nemhlYWQuaGNyYykgewogICAgICAgICAgICBzdHJtLmFkbGVyID0gY3JjMzJfMShzdHJtLmFkbGVyLCBzLnBlbmRpbmdfYnVmLCBzLnBlbmRpbmcsIDApOwogICAgICAgICAgfQogICAgICAgICAgcy5nemluZGV4ID0gMDsKICAgICAgICAgIHMuc3RhdHVzID0gRVhUUkFfU1RBVEU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UgLy8gREVGTEFURSBoZWFkZXIKICAgICAgewogICAgICAgIGxldCBoZWFkZXIgPSAoWl9ERUZMQVRFRCQyICsgKChzLndfYml0cyAtIDgpIDw8IDQpKSA8PCA4OwogICAgICAgIGxldCBsZXZlbF9mbGFncyA9IC0xOwoKICAgICAgICBpZiAocy5zdHJhdGVneSA+PSBaX0hVRkZNQU5fT05MWSB8fCBzLmxldmVsIDwgMikgewogICAgICAgICAgbGV2ZWxfZmxhZ3MgPSAwOwogICAgICAgIH0gZWxzZSBpZiAocy5sZXZlbCA8IDYpIHsKICAgICAgICAgIGxldmVsX2ZsYWdzID0gMTsKICAgICAgICB9IGVsc2UgaWYgKHMubGV2ZWwgPT09IDYpIHsKICAgICAgICAgIGxldmVsX2ZsYWdzID0gMjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbGV2ZWxfZmxhZ3MgPSAzOwogICAgICAgIH0KICAgICAgICBoZWFkZXIgfD0gKGxldmVsX2ZsYWdzIDw8IDYpOwogICAgICAgIGlmIChzLnN0cnN0YXJ0ICE9PSAwKSB7IGhlYWRlciB8PSBQUkVTRVRfRElDVDsgfQogICAgICAgIGhlYWRlciArPSAzMSAtIChoZWFkZXIgJSAzMSk7CgogICAgICAgIHMuc3RhdHVzID0gQlVTWV9TVEFURTsKICAgICAgICBwdXRTaG9ydE1TQihzLCBoZWFkZXIpOwoKICAgICAgICAvKiBTYXZlIHRoZSBhZGxlcjMyIG9mIHRoZSBwcmVzZXQgZGljdGlvbmFyeTogKi8KICAgICAgICBpZiAocy5zdHJzdGFydCAhPT0gMCkgewogICAgICAgICAgcHV0U2hvcnRNU0Iocywgc3RybS5hZGxlciA+Pj4gMTYpOwogICAgICAgICAgcHV0U2hvcnRNU0Iocywgc3RybS5hZGxlciAmIDB4ZmZmZik7CiAgICAgICAgfQogICAgICAgIHN0cm0uYWRsZXIgPSAxOyAvLyBhZGxlcjMyKDBMLCBaX05VTEwsIDApOwogICAgICB9CiAgICB9CgogIC8vI2lmZGVmIEdaSVAKICAgIGlmIChzLnN0YXR1cyA9PT0gRVhUUkFfU1RBVEUpIHsKICAgICAgaWYgKHMuZ3poZWFkLmV4dHJhLyogIT0gWl9OVUxMKi8pIHsKICAgICAgICBiZWcgPSBzLnBlbmRpbmc7ICAvKiBzdGFydCBvZiBieXRlcyB0byB1cGRhdGUgY3JjICovCgogICAgICAgIHdoaWxlIChzLmd6aW5kZXggPCAocy5nemhlYWQuZXh0cmEubGVuZ3RoICYgMHhmZmZmKSkgewogICAgICAgICAgaWYgKHMucGVuZGluZyA9PT0gcy5wZW5kaW5nX2J1Zl9zaXplKSB7CiAgICAgICAgICAgIGlmIChzLmd6aGVhZC5oY3JjICYmIHMucGVuZGluZyA+IGJlZykgewogICAgICAgICAgICAgIHN0cm0uYWRsZXIgPSBjcmMzMl8xKHN0cm0uYWRsZXIsIHMucGVuZGluZ19idWYsIHMucGVuZGluZyAtIGJlZywgYmVnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmbHVzaF9wZW5kaW5nKHN0cm0pOwogICAgICAgICAgICBiZWcgPSBzLnBlbmRpbmc7CiAgICAgICAgICAgIGlmIChzLnBlbmRpbmcgPT09IHMucGVuZGluZ19idWZfc2l6ZSkgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBwdXRfYnl0ZShzLCBzLmd6aGVhZC5leHRyYVtzLmd6aW5kZXhdICYgMHhmZik7CiAgICAgICAgICBzLmd6aW5kZXgrKzsKICAgICAgICB9CiAgICAgICAgaWYgKHMuZ3poZWFkLmhjcmMgJiYgcy5wZW5kaW5nID4gYmVnKSB7CiAgICAgICAgICBzdHJtLmFkbGVyID0gY3JjMzJfMShzdHJtLmFkbGVyLCBzLnBlbmRpbmdfYnVmLCBzLnBlbmRpbmcgLSBiZWcsIGJlZyk7CiAgICAgICAgfQogICAgICAgIGlmIChzLmd6aW5kZXggPT09IHMuZ3poZWFkLmV4dHJhLmxlbmd0aCkgewogICAgICAgICAgcy5nemluZGV4ID0gMDsKICAgICAgICAgIHMuc3RhdHVzID0gTkFNRV9TVEFURTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgcy5zdGF0dXMgPSBOQU1FX1NUQVRFOwogICAgICB9CiAgICB9CiAgICBpZiAocy5zdGF0dXMgPT09IE5BTUVfU1RBVEUpIHsKICAgICAgaWYgKHMuZ3poZWFkLm5hbWUvKiAhPSBaX05VTEwqLykgewogICAgICAgIGJlZyA9IHMucGVuZGluZzsgIC8qIHN0YXJ0IG9mIGJ5dGVzIHRvIHVwZGF0ZSBjcmMgKi8KICAgICAgICAvL2ludCB2YWw7CgogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChzLnBlbmRpbmcgPT09IHMucGVuZGluZ19idWZfc2l6ZSkgewogICAgICAgICAgICBpZiAocy5nemhlYWQuaGNyYyAmJiBzLnBlbmRpbmcgPiBiZWcpIHsKICAgICAgICAgICAgICBzdHJtLmFkbGVyID0gY3JjMzJfMShzdHJtLmFkbGVyLCBzLnBlbmRpbmdfYnVmLCBzLnBlbmRpbmcgLSBiZWcsIGJlZyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZmx1c2hfcGVuZGluZyhzdHJtKTsKICAgICAgICAgICAgYmVnID0gcy5wZW5kaW5nOwogICAgICAgICAgICBpZiAocy5wZW5kaW5nID09PSBzLnBlbmRpbmdfYnVmX3NpemUpIHsKICAgICAgICAgICAgICB2YWwgPSAxOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICAvLyBKUyBzcGVjaWZpYzogbGl0dGxlIG1hZ2ljIHRvIGFkZCB6ZXJvIHRlcm1pbmF0b3IgdG8gZW5kIG9mIHN0cmluZwogICAgICAgICAgaWYgKHMuZ3ppbmRleCA8IHMuZ3poZWFkLm5hbWUubGVuZ3RoKSB7CiAgICAgICAgICAgIHZhbCA9IHMuZ3poZWFkLm5hbWUuY2hhckNvZGVBdChzLmd6aW5kZXgrKykgJiAweGZmOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFsID0gMDsKICAgICAgICAgIH0KICAgICAgICAgIHB1dF9ieXRlKHMsIHZhbCk7CiAgICAgICAgfSB3aGlsZSAodmFsICE9PSAwKTsKCiAgICAgICAgaWYgKHMuZ3poZWFkLmhjcmMgJiYgcy5wZW5kaW5nID4gYmVnKSB7CiAgICAgICAgICBzdHJtLmFkbGVyID0gY3JjMzJfMShzdHJtLmFkbGVyLCBzLnBlbmRpbmdfYnVmLCBzLnBlbmRpbmcgLSBiZWcsIGJlZyk7CiAgICAgICAgfQogICAgICAgIGlmICh2YWwgPT09IDApIHsKICAgICAgICAgIHMuZ3ppbmRleCA9IDA7CiAgICAgICAgICBzLnN0YXR1cyA9IENPTU1FTlRfU1RBVEU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHMuc3RhdHVzID0gQ09NTUVOVF9TVEFURTsKICAgICAgfQogICAgfQogICAgaWYgKHMuc3RhdHVzID09PSBDT01NRU5UX1NUQVRFKSB7CiAgICAgIGlmIChzLmd6aGVhZC5jb21tZW50LyogIT0gWl9OVUxMKi8pIHsKICAgICAgICBiZWcgPSBzLnBlbmRpbmc7ICAvKiBzdGFydCBvZiBieXRlcyB0byB1cGRhdGUgY3JjICovCiAgICAgICAgLy9pbnQgdmFsOwoKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAocy5wZW5kaW5nID09PSBzLnBlbmRpbmdfYnVmX3NpemUpIHsKICAgICAgICAgICAgaWYgKHMuZ3poZWFkLmhjcmMgJiYgcy5wZW5kaW5nID4gYmVnKSB7CiAgICAgICAgICAgICAgc3RybS5hZGxlciA9IGNyYzMyXzEoc3RybS5hZGxlciwgcy5wZW5kaW5nX2J1Ziwgcy5wZW5kaW5nIC0gYmVnLCBiZWcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZsdXNoX3BlbmRpbmcoc3RybSk7CiAgICAgICAgICAgIGJlZyA9IHMucGVuZGluZzsKICAgICAgICAgICAgaWYgKHMucGVuZGluZyA9PT0gcy5wZW5kaW5nX2J1Zl9zaXplKSB7CiAgICAgICAgICAgICAgdmFsID0gMTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgLy8gSlMgc3BlY2lmaWM6IGxpdHRsZSBtYWdpYyB0byBhZGQgemVybyB0ZXJtaW5hdG9yIHRvIGVuZCBvZiBzdHJpbmcKICAgICAgICAgIGlmIChzLmd6aW5kZXggPCBzLmd6aGVhZC5jb21tZW50Lmxlbmd0aCkgewogICAgICAgICAgICB2YWwgPSBzLmd6aGVhZC5jb21tZW50LmNoYXJDb2RlQXQocy5nemluZGV4KyspICYgMHhmZjsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZhbCA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICBwdXRfYnl0ZShzLCB2YWwpOwogICAgICAgIH0gd2hpbGUgKHZhbCAhPT0gMCk7CgogICAgICAgIGlmIChzLmd6aGVhZC5oY3JjICYmIHMucGVuZGluZyA+IGJlZykgewogICAgICAgICAgc3RybS5hZGxlciA9IGNyYzMyXzEoc3RybS5hZGxlciwgcy5wZW5kaW5nX2J1Ziwgcy5wZW5kaW5nIC0gYmVnLCBiZWcpOwogICAgICAgIH0KICAgICAgICBpZiAodmFsID09PSAwKSB7CiAgICAgICAgICBzLnN0YXR1cyA9IEhDUkNfU1RBVEU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHMuc3RhdHVzID0gSENSQ19TVEFURTsKICAgICAgfQogICAgfQogICAgaWYgKHMuc3RhdHVzID09PSBIQ1JDX1NUQVRFKSB7CiAgICAgIGlmIChzLmd6aGVhZC5oY3JjKSB7CiAgICAgICAgaWYgKHMucGVuZGluZyArIDIgPiBzLnBlbmRpbmdfYnVmX3NpemUpIHsKICAgICAgICAgIGZsdXNoX3BlbmRpbmcoc3RybSk7CiAgICAgICAgfQogICAgICAgIGlmIChzLnBlbmRpbmcgKyAyIDw9IHMucGVuZGluZ19idWZfc2l6ZSkgewogICAgICAgICAgcHV0X2J5dGUocywgc3RybS5hZGxlciAmIDB4ZmYpOwogICAgICAgICAgcHV0X2J5dGUocywgKHN0cm0uYWRsZXIgPj4gOCkgJiAweGZmKTsKICAgICAgICAgIHN0cm0uYWRsZXIgPSAwOyAvL2NyYzMyKDBMLCBaX05VTEwsIDApOwogICAgICAgICAgcy5zdGF0dXMgPSBCVVNZX1NUQVRFOwogICAgICAgIH0KICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICBzLnN0YXR1cyA9IEJVU1lfU1RBVEU7CiAgICAgIH0KICAgIH0KICAvLyNlbmRpZgoKICAgIC8qIEZsdXNoIGFzIG11Y2ggcGVuZGluZyBvdXRwdXQgYXMgcG9zc2libGUgKi8KICAgIGlmIChzLnBlbmRpbmcgIT09IDApIHsKICAgICAgZmx1c2hfcGVuZGluZyhzdHJtKTsKICAgICAgaWYgKHN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgLyogU2luY2UgYXZhaWxfb3V0IGlzIDAsIGRlZmxhdGUgd2lsbCBiZSBjYWxsZWQgYWdhaW4gd2l0aAogICAgICAgICAqIG1vcmUgb3V0cHV0IHNwYWNlLCBidXQgcG9zc2libHkgd2l0aCBib3RoIHBlbmRpbmcgYW5kCiAgICAgICAgICogYXZhaWxfaW4gZXF1YWwgdG8gemVyby4gVGhlcmUgd29uJ3QgYmUgYW55dGhpbmcgdG8gZG8sCiAgICAgICAgICogYnV0IHRoaXMgaXMgbm90IGFuIGVycm9yIHNpdHVhdGlvbiBzbyBtYWtlIHN1cmUgd2UKICAgICAgICAgKiByZXR1cm4gT0sgaW5zdGVhZCBvZiBCVUZfRVJST1IgYXQgbmV4dCBjYWxsIG9mIGRlZmxhdGU6CiAgICAgICAgICovCiAgICAgICAgcy5sYXN0X2ZsdXNoID0gLTE7CiAgICAgICAgcmV0dXJuIFpfT0skMzsKICAgICAgfQoKICAgICAgLyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWV0aGluZyB0byBkbyBhbmQgYXZvaWQgZHVwbGljYXRlIGNvbnNlY3V0aXZlCiAgICAgICAqIGZsdXNoZXMuIEZvciByZXBlYXRlZCBhbmQgdXNlbGVzcyBjYWxscyB3aXRoIFpfRklOSVNILCB3ZSBrZWVwCiAgICAgICAqIHJldHVybmluZyBaX1NUUkVBTV9FTkQgaW5zdGVhZCBvZiBaX0JVRl9FUlJPUi4KICAgICAgICovCiAgICB9IGVsc2UgaWYgKHN0cm0uYXZhaWxfaW4gPT09IDAgJiYgcmFuayhmbHVzaCkgPD0gcmFuayhvbGRfZmx1c2gpICYmCiAgICAgIGZsdXNoICE9PSBaX0ZJTklTSCQzKSB7CiAgICAgIHJldHVybiBlcnIoc3RybSwgWl9CVUZfRVJST1IkMSk7CiAgICB9CgogICAgLyogVXNlciBtdXN0IG5vdCBwcm92aWRlIG1vcmUgaW5wdXQgYWZ0ZXIgdGhlIGZpcnN0IEZJTklTSDogKi8KICAgIGlmIChzLnN0YXR1cyA9PT0gRklOSVNIX1NUQVRFICYmIHN0cm0uYXZhaWxfaW4gIT09IDApIHsKICAgICAgcmV0dXJuIGVycihzdHJtLCBaX0JVRl9FUlJPUiQxKTsKICAgIH0KCiAgICAvKiBTdGFydCBhIG5ldyBibG9jayBvciBjb250aW51ZSB0aGUgY3VycmVudCBvbmUuCiAgICAgKi8KICAgIGlmIChzdHJtLmF2YWlsX2luICE9PSAwIHx8IHMubG9va2FoZWFkICE9PSAwIHx8CiAgICAgIChmbHVzaCAhPT0gWl9OT19GTFVTSCQyICYmIHMuc3RhdHVzICE9PSBGSU5JU0hfU1RBVEUpKSB7CiAgICAgIGxldCBic3RhdGUgPSAocy5zdHJhdGVneSA9PT0gWl9IVUZGTUFOX09OTFkpID8gZGVmbGF0ZV9odWZmKHMsIGZsdXNoKSA6CiAgICAgICAgKHMuc3RyYXRlZ3kgPT09IFpfUkxFID8gZGVmbGF0ZV9ybGUocywgZmx1c2gpIDoKICAgICAgICAgIGNvbmZpZ3VyYXRpb25fdGFibGVbcy5sZXZlbF0uZnVuYyhzLCBmbHVzaCkpOwoKICAgICAgaWYgKGJzdGF0ZSA9PT0gQlNfRklOSVNIX1NUQVJURUQgfHwgYnN0YXRlID09PSBCU19GSU5JU0hfRE9ORSkgewogICAgICAgIHMuc3RhdHVzID0gRklOSVNIX1NUQVRFOwogICAgICB9CiAgICAgIGlmIChic3RhdGUgPT09IEJTX05FRURfTU9SRSB8fCBic3RhdGUgPT09IEJTX0ZJTklTSF9TVEFSVEVEKSB7CiAgICAgICAgaWYgKHN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgICBzLmxhc3RfZmx1c2ggPSAtMTsKICAgICAgICAgIC8qIGF2b2lkIEJVRl9FUlJPUiBuZXh0IGNhbGwsIHNlZSBhYm92ZSAqLwogICAgICAgIH0KICAgICAgICByZXR1cm4gWl9PSyQzOwogICAgICAgIC8qIElmIGZsdXNoICE9IFpfTk9fRkxVU0ggJiYgYXZhaWxfb3V0ID09IDAsIHRoZSBuZXh0IGNhbGwKICAgICAgICAgKiBvZiBkZWZsYXRlIHNob3VsZCB1c2UgdGhlIHNhbWUgZmx1c2ggcGFyYW1ldGVyIHRvIG1ha2Ugc3VyZQogICAgICAgICAqIHRoYXQgdGhlIGZsdXNoIGlzIGNvbXBsZXRlLiBTbyB3ZSBkb24ndCBoYXZlIHRvIG91dHB1dCBhbgogICAgICAgICAqIGVtcHR5IGJsb2NrIGhlcmUsIHRoaXMgd2lsbCBiZSBkb25lIGF0IG5leHQgY2FsbC4gVGhpcyBhbHNvCiAgICAgICAgICogZW5zdXJlcyB0aGF0IGZvciBhIHZlcnkgc21hbGwgb3V0cHV0IGJ1ZmZlciwgd2UgZW1pdCBhdCBtb3N0CiAgICAgICAgICogb25lIGVtcHR5IGJsb2NrLgogICAgICAgICAqLwogICAgICB9CiAgICAgIGlmIChic3RhdGUgPT09IEJTX0JMT0NLX0RPTkUpIHsKICAgICAgICBpZiAoZmx1c2ggPT09IFpfUEFSVElBTF9GTFVTSCkgewogICAgICAgICAgX3RyX2FsaWduKHMpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChmbHVzaCAhPT0gWl9CTE9DSyQxKSB7IC8qIEZVTExfRkxVU0ggb3IgU1lOQ19GTFVTSCAqLwoKICAgICAgICAgIF90cl9zdG9yZWRfYmxvY2socywgMCwgMCwgZmFsc2UpOwogICAgICAgICAgLyogRm9yIGEgZnVsbCBmbHVzaCwgdGhpcyBlbXB0eSBibG9jayB3aWxsIGJlIHJlY29nbml6ZWQKICAgICAgICAgICAqIGFzIGEgc3BlY2lhbCBtYXJrZXIgYnkgaW5mbGF0ZV9zeW5jKCkuCiAgICAgICAgICAgKi8KICAgICAgICAgIGlmIChmbHVzaCA9PT0gWl9GVUxMX0ZMVVNIJDEpIHsKICAgICAgICAgICAgLyoqKiBDTEVBUl9IQVNIKHMpOyAqKiovICAgICAgICAgICAgIC8qIGZvcmdldCBoaXN0b3J5ICovCiAgICAgICAgICAgIHplcm8ocy5oZWFkKTsgLy8gRmlsbCB3aXRoIE5JTCAoPSAwKTsKCiAgICAgICAgICAgIGlmIChzLmxvb2thaGVhZCA9PT0gMCkgewogICAgICAgICAgICAgIHMuc3Ryc3RhcnQgPSAwOwogICAgICAgICAgICAgIHMuYmxvY2tfc3RhcnQgPSAwOwogICAgICAgICAgICAgIHMuaW5zZXJ0ID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmbHVzaF9wZW5kaW5nKHN0cm0pOwogICAgICAgIGlmIChzdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgICAgcy5sYXN0X2ZsdXNoID0gLTE7IC8qIGF2b2lkIEJVRl9FUlJPUiBhdCBuZXh0IGNhbGwsIHNlZSBhYm92ZSAqLwogICAgICAgICAgcmV0dXJuIFpfT0skMzsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIC8vQXNzZXJ0KHN0cm0tPmF2YWlsX291dCA+IDAsICJidWcyIik7CiAgICAvL2lmIChzdHJtLmF2YWlsX291dCA8PSAwKSB7IHRocm93IG5ldyBFcnJvcigiYnVnMiIpO30KCiAgICBpZiAoZmx1c2ggIT09IFpfRklOSVNIJDMpIHsgcmV0dXJuIFpfT0skMzsgfQogICAgaWYgKHMud3JhcCA8PSAwKSB7IHJldHVybiBaX1NUUkVBTV9FTkQkMzsgfQoKICAgIC8qIFdyaXRlIHRoZSB0cmFpbGVyICovCiAgICBpZiAocy53cmFwID09PSAyKSB7CiAgICAgIHB1dF9ieXRlKHMsIHN0cm0uYWRsZXIgJiAweGZmKTsKICAgICAgcHV0X2J5dGUocywgKHN0cm0uYWRsZXIgPj4gOCkgJiAweGZmKTsKICAgICAgcHV0X2J5dGUocywgKHN0cm0uYWRsZXIgPj4gMTYpICYgMHhmZik7CiAgICAgIHB1dF9ieXRlKHMsIChzdHJtLmFkbGVyID4+IDI0KSAmIDB4ZmYpOwogICAgICBwdXRfYnl0ZShzLCBzdHJtLnRvdGFsX2luICYgMHhmZik7CiAgICAgIHB1dF9ieXRlKHMsIChzdHJtLnRvdGFsX2luID4+IDgpICYgMHhmZik7CiAgICAgIHB1dF9ieXRlKHMsIChzdHJtLnRvdGFsX2luID4+IDE2KSAmIDB4ZmYpOwogICAgICBwdXRfYnl0ZShzLCAoc3RybS50b3RhbF9pbiA+PiAyNCkgJiAweGZmKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgcHV0U2hvcnRNU0Iocywgc3RybS5hZGxlciA+Pj4gMTYpOwogICAgICBwdXRTaG9ydE1TQihzLCBzdHJtLmFkbGVyICYgMHhmZmZmKTsKICAgIH0KCiAgICBmbHVzaF9wZW5kaW5nKHN0cm0pOwogICAgLyogSWYgYXZhaWxfb3V0IGlzIHplcm8sIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGNhbGwgZGVmbGF0ZSBhZ2FpbgogICAgICogdG8gZmx1c2ggdGhlIHJlc3QuCiAgICAgKi8KICAgIGlmIChzLndyYXAgPiAwKSB7IHMud3JhcCA9IC1zLndyYXA7IH0KICAgIC8qIHdyaXRlIHRoZSB0cmFpbGVyIG9ubHkgb25jZSEgKi8KICAgIHJldHVybiBzLnBlbmRpbmcgIT09IDAgPyBaX09LJDMgOiBaX1NUUkVBTV9FTkQkMzsKICB9OwoKCiAgY29uc3QgZGVmbGF0ZUVuZCA9IChzdHJtKSA9PiB7CgogICAgaWYgKCFzdHJtLyo9PSBaX05VTEwqLyB8fCAhc3RybS5zdGF0ZS8qPT0gWl9OVUxMKi8pIHsKICAgICAgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDI7CiAgICB9CgogICAgY29uc3Qgc3RhdHVzID0gc3RybS5zdGF0ZS5zdGF0dXM7CiAgICBpZiAoc3RhdHVzICE9PSBJTklUX1NUQVRFICYmCiAgICAgIHN0YXR1cyAhPT0gRVhUUkFfU1RBVEUgJiYKICAgICAgc3RhdHVzICE9PSBOQU1FX1NUQVRFICYmCiAgICAgIHN0YXR1cyAhPT0gQ09NTUVOVF9TVEFURSAmJgogICAgICBzdGF0dXMgIT09IEhDUkNfU1RBVEUgJiYKICAgICAgc3RhdHVzICE9PSBCVVNZX1NUQVRFICYmCiAgICAgIHN0YXR1cyAhPT0gRklOSVNIX1NUQVRFCiAgICApIHsKICAgICAgcmV0dXJuIGVycihzdHJtLCBaX1NUUkVBTV9FUlJPUiQyKTsKICAgIH0KCiAgICBzdHJtLnN0YXRlID0gbnVsbDsKCiAgICByZXR1cm4gc3RhdHVzID09PSBCVVNZX1NUQVRFID8gZXJyKHN0cm0sIFpfREFUQV9FUlJPUiQyKSA6IFpfT0skMzsKICB9OwoKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAqIEluaXRpYWxpemVzIHRoZSBjb21wcmVzc2lvbiBkaWN0aW9uYXJ5IGZyb20gdGhlIGdpdmVuIGJ5dGUKICAgKiBzZXF1ZW5jZSB3aXRob3V0IHByb2R1Y2luZyBhbnkgY29tcHJlc3NlZCBvdXRwdXQuCiAgICovCiAgY29uc3QgZGVmbGF0ZVNldERpY3Rpb25hcnkgPSAoc3RybSwgZGljdGlvbmFyeSkgPT4gewoKICAgIGxldCBkaWN0TGVuZ3RoID0gZGljdGlvbmFyeS5sZW5ndGg7CgogICAgaWYgKCFzdHJtLyo9PSBaX05VTEwqLyB8fCAhc3RybS5zdGF0ZS8qPT0gWl9OVUxMKi8pIHsKICAgICAgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDI7CiAgICB9CgogICAgY29uc3QgcyA9IHN0cm0uc3RhdGU7CiAgICBjb25zdCB3cmFwID0gcy53cmFwOwoKICAgIGlmICh3cmFwID09PSAyIHx8ICh3cmFwID09PSAxICYmIHMuc3RhdHVzICE9PSBJTklUX1NUQVRFKSB8fCBzLmxvb2thaGVhZCkgewogICAgICByZXR1cm4gWl9TVFJFQU1fRVJST1IkMjsKICAgIH0KCiAgICAvKiB3aGVuIHVzaW5nIHpsaWIgd3JhcHBlcnMsIGNvbXB1dGUgQWRsZXItMzIgZm9yIHByb3ZpZGVkIGRpY3Rpb25hcnkgKi8KICAgIGlmICh3cmFwID09PSAxKSB7CiAgICAgIC8qIGFkbGVyMzIoc3RybS0+YWRsZXIsIGRpY3Rpb25hcnksIGRpY3RMZW5ndGgpOyAqLwogICAgICBzdHJtLmFkbGVyID0gYWRsZXIzMl8xKHN0cm0uYWRsZXIsIGRpY3Rpb25hcnksIGRpY3RMZW5ndGgsIDApOwogICAgfQoKICAgIHMud3JhcCA9IDA7ICAgLyogYXZvaWQgY29tcHV0aW5nIEFkbGVyLTMyIGluIHJlYWRfYnVmICovCgogICAgLyogaWYgZGljdGlvbmFyeSB3b3VsZCBmaWxsIHdpbmRvdywganVzdCByZXBsYWNlIHRoZSBoaXN0b3J5ICovCiAgICBpZiAoZGljdExlbmd0aCA+PSBzLndfc2l6ZSkgewogICAgICBpZiAod3JhcCA9PT0gMCkgeyAgICAgICAgICAgIC8qIGFscmVhZHkgZW1wdHkgb3RoZXJ3aXNlICovCiAgICAgICAgLyoqKiBDTEVBUl9IQVNIKHMpOyAqKiovCiAgICAgICAgemVybyhzLmhlYWQpOyAvLyBGaWxsIHdpdGggTklMICg9IDApOwogICAgICAgIHMuc3Ryc3RhcnQgPSAwOwogICAgICAgIHMuYmxvY2tfc3RhcnQgPSAwOwogICAgICAgIHMuaW5zZXJ0ID0gMDsKICAgICAgfQogICAgICAvKiB1c2UgdGhlIHRhaWwgKi8KICAgICAgLy8gZGljdGlvbmFyeSA9IGRpY3Rpb25hcnkuc2xpY2UoZGljdExlbmd0aCAtIHMud19zaXplKTsKICAgICAgbGV0IHRtcERpY3QgPSBuZXcgVWludDhBcnJheShzLndfc2l6ZSk7CiAgICAgIHRtcERpY3Quc2V0KGRpY3Rpb25hcnkuc3ViYXJyYXkoZGljdExlbmd0aCAtIHMud19zaXplLCBkaWN0TGVuZ3RoKSwgMCk7CiAgICAgIGRpY3Rpb25hcnkgPSB0bXBEaWN0OwogICAgICBkaWN0TGVuZ3RoID0gcy53X3NpemU7CiAgICB9CiAgICAvKiBpbnNlcnQgZGljdGlvbmFyeSBpbnRvIHdpbmRvdyBhbmQgaGFzaCAqLwogICAgY29uc3QgYXZhaWwgPSBzdHJtLmF2YWlsX2luOwogICAgY29uc3QgbmV4dCA9IHN0cm0ubmV4dF9pbjsKICAgIGNvbnN0IGlucHV0ID0gc3RybS5pbnB1dDsKICAgIHN0cm0uYXZhaWxfaW4gPSBkaWN0TGVuZ3RoOwogICAgc3RybS5uZXh0X2luID0gMDsKICAgIHN0cm0uaW5wdXQgPSBkaWN0aW9uYXJ5OwogICAgZmlsbF93aW5kb3cocyk7CiAgICB3aGlsZSAocy5sb29rYWhlYWQgPj0gTUlOX01BVENIKSB7CiAgICAgIGxldCBzdHIgPSBzLnN0cnN0YXJ0OwogICAgICBsZXQgbiA9IHMubG9va2FoZWFkIC0gKE1JTl9NQVRDSCAtIDEpOwogICAgICBkbyB7CiAgICAgICAgLyogVVBEQVRFX0hBU0gocywgcy0+aW5zX2gsIHMtPndpbmRvd1tzdHIgKyBNSU5fTUFUQ0gtMV0pOyAqLwogICAgICAgIHMuaW5zX2ggPSBIQVNIKHMsIHMuaW5zX2gsIHMud2luZG93W3N0ciArIE1JTl9NQVRDSCAtIDFdKTsKCiAgICAgICAgcy5wcmV2W3N0ciAmIHMud19tYXNrXSA9IHMuaGVhZFtzLmluc19oXTsKCiAgICAgICAgcy5oZWFkW3MuaW5zX2hdID0gc3RyOwogICAgICAgIHN0cisrOwogICAgICB9IHdoaWxlICgtLW4pOwogICAgICBzLnN0cnN0YXJ0ID0gc3RyOwogICAgICBzLmxvb2thaGVhZCA9IE1JTl9NQVRDSCAtIDE7CiAgICAgIGZpbGxfd2luZG93KHMpOwogICAgfQogICAgcy5zdHJzdGFydCArPSBzLmxvb2thaGVhZDsKICAgIHMuYmxvY2tfc3RhcnQgPSBzLnN0cnN0YXJ0OwogICAgcy5pbnNlcnQgPSBzLmxvb2thaGVhZDsKICAgIHMubG9va2FoZWFkID0gMDsKICAgIHMubWF0Y2hfbGVuZ3RoID0gcy5wcmV2X2xlbmd0aCA9IE1JTl9NQVRDSCAtIDE7CiAgICBzLm1hdGNoX2F2YWlsYWJsZSA9IDA7CiAgICBzdHJtLm5leHRfaW4gPSBuZXh0OwogICAgc3RybS5pbnB1dCA9IGlucHV0OwogICAgc3RybS5hdmFpbF9pbiA9IGF2YWlsOwogICAgcy53cmFwID0gd3JhcDsKICAgIHJldHVybiBaX09LJDM7CiAgfTsKCgogIHZhciBkZWZsYXRlSW5pdF8xID0gZGVmbGF0ZUluaXQ7CiAgdmFyIGRlZmxhdGVJbml0Ml8xID0gZGVmbGF0ZUluaXQyOwogIHZhciBkZWZsYXRlUmVzZXRfMSA9IGRlZmxhdGVSZXNldDsKICB2YXIgZGVmbGF0ZVJlc2V0S2VlcF8xID0gZGVmbGF0ZVJlc2V0S2VlcDsKICB2YXIgZGVmbGF0ZVNldEhlYWRlcl8xID0gZGVmbGF0ZVNldEhlYWRlcjsKICB2YXIgZGVmbGF0ZV8yJDEgPSBkZWZsYXRlJDI7CiAgdmFyIGRlZmxhdGVFbmRfMSA9IGRlZmxhdGVFbmQ7CiAgdmFyIGRlZmxhdGVTZXREaWN0aW9uYXJ5XzEgPSBkZWZsYXRlU2V0RGljdGlvbmFyeTsKICB2YXIgZGVmbGF0ZUluZm8gPSAncGFrbyBkZWZsYXRlIChmcm9tIE5vZGVjYSBwcm9qZWN0KSc7CgogIC8qIE5vdCBpbXBsZW1lbnRlZAogIG1vZHVsZS5leHBvcnRzLmRlZmxhdGVCb3VuZCA9IGRlZmxhdGVCb3VuZDsKICBtb2R1bGUuZXhwb3J0cy5kZWZsYXRlQ29weSA9IGRlZmxhdGVDb3B5OwogIG1vZHVsZS5leHBvcnRzLmRlZmxhdGVQYXJhbXMgPSBkZWZsYXRlUGFyYW1zOwogIG1vZHVsZS5leHBvcnRzLmRlZmxhdGVQZW5kaW5nID0gZGVmbGF0ZVBlbmRpbmc7CiAgbW9kdWxlLmV4cG9ydHMuZGVmbGF0ZVByaW1lID0gZGVmbGF0ZVByaW1lOwogIG1vZHVsZS5leHBvcnRzLmRlZmxhdGVUdW5lID0gZGVmbGF0ZVR1bmU7CiAgKi8KCiAgdmFyIGRlZmxhdGVfMSQyID0gewogIAlkZWZsYXRlSW5pdDogZGVmbGF0ZUluaXRfMSwKICAJZGVmbGF0ZUluaXQyOiBkZWZsYXRlSW5pdDJfMSwKICAJZGVmbGF0ZVJlc2V0OiBkZWZsYXRlUmVzZXRfMSwKICAJZGVmbGF0ZVJlc2V0S2VlcDogZGVmbGF0ZVJlc2V0S2VlcF8xLAogIAlkZWZsYXRlU2V0SGVhZGVyOiBkZWZsYXRlU2V0SGVhZGVyXzEsCiAgCWRlZmxhdGU6IGRlZmxhdGVfMiQxLAogIAlkZWZsYXRlRW5kOiBkZWZsYXRlRW5kXzEsCiAgCWRlZmxhdGVTZXREaWN0aW9uYXJ5OiBkZWZsYXRlU2V0RGljdGlvbmFyeV8xLAogIAlkZWZsYXRlSW5mbzogZGVmbGF0ZUluZm8KICB9OwoKICBjb25zdCBfaGFzID0gKG9iaiwga2V5KSA9PiB7CiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KTsKICB9OwoKICB2YXIgYXNzaWduID0gZnVuY3Rpb24gKG9iaiAvKmZyb20xLCBmcm9tMiwgZnJvbTMsIC4uLiovKSB7CiAgICBjb25zdCBzb3VyY2VzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTsKICAgIHdoaWxlIChzb3VyY2VzLmxlbmd0aCkgewogICAgICBjb25zdCBzb3VyY2UgPSBzb3VyY2VzLnNoaWZ0KCk7CiAgICAgIGlmICghc291cmNlKSB7IGNvbnRpbnVlOyB9CgogICAgICBpZiAodHlwZW9mIHNvdXJjZSAhPT0gJ29iamVjdCcpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHNvdXJjZSArICdtdXN0IGJlIG5vbi1vYmplY3QnKTsKICAgICAgfQoKICAgICAgZm9yIChjb25zdCBwIGluIHNvdXJjZSkgewogICAgICAgIGlmIChfaGFzKHNvdXJjZSwgcCkpIHsKICAgICAgICAgIG9ialtwXSA9IHNvdXJjZVtwXTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gb2JqOwogIH07CgoKICAvLyBKb2luIGFycmF5IG9mIGNodW5rcyB0byBzaW5nbGUgYXJyYXkuCiAgdmFyIGZsYXR0ZW5DaHVua3MgPSAoY2h1bmtzKSA9PiB7CiAgICAvLyBjYWxjdWxhdGUgZGF0YSBsZW5ndGgKICAgIGxldCBsZW4gPSAwOwoKICAgIGZvciAobGV0IGkgPSAwLCBsID0gY2h1bmtzLmxlbmd0aDsgaSA8IGw7IGkrKykgewogICAgICBsZW4gKz0gY2h1bmtzW2ldLmxlbmd0aDsKICAgIH0KCiAgICAvLyBqb2luIGNodW5rcwogICAgY29uc3QgcmVzdWx0ID0gbmV3IFVpbnQ4QXJyYXkobGVuKTsKCiAgICBmb3IgKGxldCBpID0gMCwgcG9zID0gMCwgbCA9IGNodW5rcy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAgICAgbGV0IGNodW5rID0gY2h1bmtzW2ldOwogICAgICByZXN1bHQuc2V0KGNodW5rLCBwb3MpOwogICAgICBwb3MgKz0gY2h1bmsubGVuZ3RoOwogICAgfQoKICAgIHJldHVybiByZXN1bHQ7CiAgfTsKCiAgdmFyIGNvbW1vbiA9IHsKICAJYXNzaWduOiBhc3NpZ24sCiAgCWZsYXR0ZW5DaHVua3M6IGZsYXR0ZW5DaHVua3MKICB9OwoKICAvLyBTdHJpbmcgZW5jb2RlL2RlY29kZSBoZWxwZXJzCgoKICAvLyBRdWljayBjaGVjayBpZiB3ZSBjYW4gdXNlIGZhc3QgYXJyYXkgdG8gYmluIHN0cmluZyBjb252ZXJzaW9uCiAgLy8KICAvLyAtIGFwcGx5KEFycmF5KSBjYW4gZmFpbCBvbiBBbmRyb2lkIDIuMgogIC8vIC0gYXBwbHkoVWludDhBcnJheSkgY2FuIGZhaWwgb24gaU9TIDUuMSBTYWZhcmkKICAvLwogIGxldCBTVFJfQVBQTFlfVUlBX09LID0gdHJ1ZTsKCiAgdHJ5IHsgU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDhBcnJheSgxKSk7IH0gY2F0Y2ggKF9fKSB7IFNUUl9BUFBMWV9VSUFfT0sgPSBmYWxzZTsgfQoKCiAgLy8gVGFibGUgd2l0aCB1dGY4IGxlbmd0aHMgKGNhbGN1bGF0ZWQgYnkgZmlyc3QgYnl0ZSBvZiBzZXF1ZW5jZSkKICAvLyBOb3RlLCB0aGF0IDUgJiA2LWJ5dGUgdmFsdWVzIGFuZCBzb21lIDQtYnl0ZSB2YWx1ZXMgY2FuIG5vdCBiZSByZXByZXNlbnRlZCBpbiBKUywKICAvLyBiZWNhdXNlIG1heCBwb3NzaWJsZSBjb2RlcG9pbnQgaXMgMHgxMGZmZmYKICBjb25zdCBfdXRmOGxlbiA9IG5ldyBVaW50OEFycmF5KDI1Nik7CiAgZm9yIChsZXQgcSA9IDA7IHEgPCAyNTY7IHErKykgewogICAgX3V0ZjhsZW5bcV0gPSAocSA+PSAyNTIgPyA2IDogcSA+PSAyNDggPyA1IDogcSA+PSAyNDAgPyA0IDogcSA+PSAyMjQgPyAzIDogcSA+PSAxOTIgPyAyIDogMSk7CiAgfQogIF91dGY4bGVuWzI1NF0gPSBfdXRmOGxlblsyNTRdID0gMTsgLy8gSW52YWxpZCBzZXF1ZW5jZSBzdGFydAoKCiAgLy8gY29udmVydCBzdHJpbmcgdG8gYXJyYXkgKHR5cGVkLCB3aGVuIHBvc3NpYmxlKQogIHZhciBzdHJpbmcyYnVmID0gKHN0cikgPT4gewogICAgaWYgKHR5cGVvZiBUZXh0RW5jb2RlciA9PT0gJ2Z1bmN0aW9uJyAmJiBUZXh0RW5jb2Rlci5wcm90b3R5cGUuZW5jb2RlKSB7CiAgICAgIHJldHVybiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoc3RyKTsKICAgIH0KCiAgICBsZXQgYnVmLCBjLCBjMiwgbV9wb3MsIGksIHN0cl9sZW4gPSBzdHIubGVuZ3RoLCBidWZfbGVuID0gMDsKCiAgICAvLyBjb3VudCBiaW5hcnkgc2l6ZQogICAgZm9yIChtX3BvcyA9IDA7IG1fcG9zIDwgc3RyX2xlbjsgbV9wb3MrKykgewogICAgICBjID0gc3RyLmNoYXJDb2RlQXQobV9wb3MpOwogICAgICBpZiAoKGMgJiAweGZjMDApID09PSAweGQ4MDAgJiYgKG1fcG9zICsgMSA8IHN0cl9sZW4pKSB7CiAgICAgICAgYzIgPSBzdHIuY2hhckNvZGVBdChtX3BvcyArIDEpOwogICAgICAgIGlmICgoYzIgJiAweGZjMDApID09PSAweGRjMDApIHsKICAgICAgICAgIGMgPSAweDEwMDAwICsgKChjIC0gMHhkODAwKSA8PCAxMCkgKyAoYzIgLSAweGRjMDApOwogICAgICAgICAgbV9wb3MrKzsKICAgICAgICB9CiAgICAgIH0KICAgICAgYnVmX2xlbiArPSBjIDwgMHg4MCA/IDEgOiBjIDwgMHg4MDAgPyAyIDogYyA8IDB4MTAwMDAgPyAzIDogNDsKICAgIH0KCiAgICAvLyBhbGxvY2F0ZSBidWZmZXIKICAgIGJ1ZiA9IG5ldyBVaW50OEFycmF5KGJ1Zl9sZW4pOwoKICAgIC8vIGNvbnZlcnQKICAgIGZvciAoaSA9IDAsIG1fcG9zID0gMDsgaSA8IGJ1Zl9sZW47IG1fcG9zKyspIHsKICAgICAgYyA9IHN0ci5jaGFyQ29kZUF0KG1fcG9zKTsKICAgICAgaWYgKChjICYgMHhmYzAwKSA9PT0gMHhkODAwICYmIChtX3BvcyArIDEgPCBzdHJfbGVuKSkgewogICAgICAgIGMyID0gc3RyLmNoYXJDb2RlQXQobV9wb3MgKyAxKTsKICAgICAgICBpZiAoKGMyICYgMHhmYzAwKSA9PT0gMHhkYzAwKSB7CiAgICAgICAgICBjID0gMHgxMDAwMCArICgoYyAtIDB4ZDgwMCkgPDwgMTApICsgKGMyIC0gMHhkYzAwKTsKICAgICAgICAgIG1fcG9zKys7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChjIDwgMHg4MCkgewogICAgICAgIC8qIG9uZSBieXRlICovCiAgICAgICAgYnVmW2krK10gPSBjOwogICAgICB9IGVsc2UgaWYgKGMgPCAweDgwMCkgewogICAgICAgIC8qIHR3byBieXRlcyAqLwogICAgICAgIGJ1ZltpKytdID0gMHhDMCB8IChjID4+PiA2KTsKICAgICAgICBidWZbaSsrXSA9IDB4ODAgfCAoYyAmIDB4M2YpOwogICAgICB9IGVsc2UgaWYgKGMgPCAweDEwMDAwKSB7CiAgICAgICAgLyogdGhyZWUgYnl0ZXMgKi8KICAgICAgICBidWZbaSsrXSA9IDB4RTAgfCAoYyA+Pj4gMTIpOwogICAgICAgIGJ1ZltpKytdID0gMHg4MCB8IChjID4+PiA2ICYgMHgzZik7CiAgICAgICAgYnVmW2krK10gPSAweDgwIHwgKGMgJiAweDNmKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAvKiBmb3VyIGJ5dGVzICovCiAgICAgICAgYnVmW2krK10gPSAweGYwIHwgKGMgPj4+IDE4KTsKICAgICAgICBidWZbaSsrXSA9IDB4ODAgfCAoYyA+Pj4gMTIgJiAweDNmKTsKICAgICAgICBidWZbaSsrXSA9IDB4ODAgfCAoYyA+Pj4gNiAmIDB4M2YpOwogICAgICAgIGJ1ZltpKytdID0gMHg4MCB8IChjICYgMHgzZik7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gYnVmOwogIH07CgogIC8vIEhlbHBlcgogIGNvbnN0IGJ1ZjJiaW5zdHJpbmcgPSAoYnVmLCBsZW4pID0+IHsKICAgIC8vIE9uIENocm9tZSwgdGhlIGFyZ3VtZW50cyBpbiBhIGZ1bmN0aW9uIGNhbGwgdGhhdCBhcmUgYWxsb3dlZCBpcyBgNjU1MzRgLgogICAgLy8gSWYgdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGlzIHNtYWxsZXIgdGhhbiB0aGF0LCB3ZSBjYW4gdXNlIHRoaXMgb3B0aW1pemF0aW9uLAogICAgLy8gb3RoZXJ3aXNlIHdlIHdpbGwgdGFrZSBhIHNsb3dlciBwYXRoLgogICAgaWYgKGxlbiA8IDY1NTM0KSB7CiAgICAgIGlmIChidWYuc3ViYXJyYXkgJiYgU1RSX0FQUExZX1VJQV9PSykgewogICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGJ1Zi5sZW5ndGggPT09IGxlbiA/IGJ1ZiA6IGJ1Zi5zdWJhcnJheSgwLCBsZW4pKTsKICAgICAgfQogICAgfQoKICAgIGxldCByZXN1bHQgPSAnJzsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgcmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKTsKICAgIH0KICAgIHJldHVybiByZXN1bHQ7CiAgfTsKCgogIC8vIGNvbnZlcnQgYXJyYXkgdG8gc3RyaW5nCiAgdmFyIGJ1ZjJzdHJpbmcgPSAoYnVmLCBtYXgpID0+IHsKICAgIGNvbnN0IGxlbiA9IG1heCB8fCBidWYubGVuZ3RoOwoKICAgIGlmICh0eXBlb2YgVGV4dERlY29kZXIgPT09ICdmdW5jdGlvbicgJiYgVGV4dERlY29kZXIucHJvdG90eXBlLmRlY29kZSkgewogICAgICByZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGJ1Zi5zdWJhcnJheSgwLCBtYXgpKTsKICAgIH0KCiAgICBsZXQgaSwgb3V0OwoKICAgIC8vIFJlc2VydmUgbWF4IHBvc3NpYmxlIGxlbmd0aCAoMiB3b3JkcyBwZXIgY2hhcikKICAgIC8vIE5COiBieSB1bmtub3duIHJlYXNvbnMsIEFycmF5IGlzIHNpZ25pZmljYW50bHkgZmFzdGVyIGZvcgogICAgLy8gICAgIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkgdGhhbiBVaW50MTZBcnJheS4KICAgIGNvbnN0IHV0ZjE2YnVmID0gbmV3IEFycmF5KGxlbiAqIDIpOwoKICAgIGZvciAob3V0ID0gMCwgaSA9IDA7IGkgPCBsZW47KSB7CiAgICAgIGxldCBjID0gYnVmW2krK107CiAgICAgIC8vIHF1aWNrIHByb2Nlc3MgYXNjaWkKICAgICAgaWYgKGMgPCAweDgwKSB7IHV0ZjE2YnVmW291dCsrXSA9IGM7IGNvbnRpbnVlOyB9CgogICAgICBsZXQgY19sZW4gPSBfdXRmOGxlbltjXTsKICAgICAgLy8gc2tpcCA1ICYgNiBieXRlIGNvZGVzCiAgICAgIGlmIChjX2xlbiA+IDQpIHsgdXRmMTZidWZbb3V0KytdID0gMHhmZmZkOyBpICs9IGNfbGVuIC0gMTsgY29udGludWU7IH0KCiAgICAgIC8vIGFwcGx5IG1hc2sgb24gZmlyc3QgYnl0ZQogICAgICBjICY9IGNfbGVuID09PSAyID8gMHgxZiA6IGNfbGVuID09PSAzID8gMHgwZiA6IDB4MDc7CiAgICAgIC8vIGpvaW4gdGhlIHJlc3QKICAgICAgd2hpbGUgKGNfbGVuID4gMSAmJiBpIDwgbGVuKSB7CiAgICAgICAgYyA9IChjIDw8IDYpIHwgKGJ1ZltpKytdICYgMHgzZik7CiAgICAgICAgY19sZW4tLTsKICAgICAgfQoKICAgICAgLy8gdGVybWluYXRlZCBieSBlbmQgb2Ygc3RyaW5nPwogICAgICBpZiAoY19sZW4gPiAxKSB7IHV0ZjE2YnVmW291dCsrXSA9IDB4ZmZmZDsgY29udGludWU7IH0KCiAgICAgIGlmIChjIDwgMHgxMDAwMCkgewogICAgICAgIHV0ZjE2YnVmW291dCsrXSA9IGM7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgYyAtPSAweDEwMDAwOwogICAgICAgIHV0ZjE2YnVmW291dCsrXSA9IDB4ZDgwMCB8ICgoYyA+PiAxMCkgJiAweDNmZik7CiAgICAgICAgdXRmMTZidWZbb3V0KytdID0gMHhkYzAwIHwgKGMgJiAweDNmZik7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gYnVmMmJpbnN0cmluZyh1dGYxNmJ1Ziwgb3V0KTsKICB9OwoKCiAgLy8gQ2FsY3VsYXRlIG1heCBwb3NzaWJsZSBwb3NpdGlvbiBpbiB1dGY4IGJ1ZmZlciwKICAvLyB0aGF0IHdpbGwgbm90IGJyZWFrIHNlcXVlbmNlLiBJZiB0aGF0J3Mgbm90IHBvc3NpYmxlCiAgLy8gLSAodmVyeSBzbWFsbCBsaW1pdHMpIHJldHVybiBtYXggc2l6ZSBhcyBpcy4KICAvLwogIC8vIGJ1ZltdIC0gdXRmOCBieXRlcyBhcnJheQogIC8vIG1heCAgIC0gbGVuZ3RoIGxpbWl0IChtYW5kYXRvcnkpOwogIHZhciB1dGY4Ym9yZGVyID0gKGJ1ZiwgbWF4KSA9PiB7CgogICAgbWF4ID0gbWF4IHx8IGJ1Zi5sZW5ndGg7CiAgICBpZiAobWF4ID4gYnVmLmxlbmd0aCkgeyBtYXggPSBidWYubGVuZ3RoOyB9CgogICAgLy8gZ28gYmFjayBmcm9tIGxhc3QgcG9zaXRpb24sIHVudGlsIHN0YXJ0IG9mIHNlcXVlbmNlIGZvdW5kCiAgICBsZXQgcG9zID0gbWF4IC0gMTsKICAgIHdoaWxlIChwb3MgPj0gMCAmJiAoYnVmW3Bvc10gJiAweEMwKSA9PT0gMHg4MCkgeyBwb3MtLTsgfQoKICAgIC8vIFZlcnkgc21hbGwgYW5kIGJyb2tlbiBzZXF1ZW5jZSwKICAgIC8vIHJldHVybiBtYXgsIGJlY2F1c2Ugd2Ugc2hvdWxkIHJldHVybiBzb21ldGhpbmcgYW55d2F5LgogICAgaWYgKHBvcyA8IDApIHsgcmV0dXJuIG1heDsgfQoKICAgIC8vIElmIHdlIGNhbWUgdG8gc3RhcnQgb2YgYnVmZmVyIC0gdGhhdCBtZWFucyBidWZmZXIgaXMgdG9vIHNtYWxsLAogICAgLy8gcmV0dXJuIG1heCB0b28uCiAgICBpZiAocG9zID09PSAwKSB7IHJldHVybiBtYXg7IH0KCiAgICByZXR1cm4gKHBvcyArIF91dGY4bGVuW2J1Zltwb3NdXSA+IG1heCkgPyBwb3MgOiBtYXg7CiAgfTsKCiAgdmFyIHN0cmluZ3MgPSB7CiAgCXN0cmluZzJidWY6IHN0cmluZzJidWYsCiAgCWJ1ZjJzdHJpbmc6IGJ1ZjJzdHJpbmcsCiAgCXV0Zjhib3JkZXI6IHV0Zjhib3JkZXIKICB9OwoKICAvLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAvLyAoQykgMjAxNC0yMDE3IFZpdGFseSBQdXpyaW4gYW5kIEFuZHJleSBUdXBpdHNpbgogIC8vCiAgLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAvLyB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKICAvLyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogIC8vCiAgLy8gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCiAgLy8gaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogIC8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKICAvLwogIC8vIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQogIC8vICAgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpbiB0aGUgcHJvZHVjdCBkb2N1bWVudGF0aW9uIHdvdWxkIGJlCiAgLy8gICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogIC8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCiAgLy8gICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgLy8gMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KCiAgZnVuY3Rpb24gWlN0cmVhbSgpIHsKICAgIC8qIG5leHQgaW5wdXQgYnl0ZSAqLwogICAgdGhpcy5pbnB1dCA9IG51bGw7IC8vIEpTIHNwZWNpZmljLCBiZWNhdXNlIHdlIGhhdmUgbm8gcG9pbnRlcnMKICAgIHRoaXMubmV4dF9pbiA9IDA7CiAgICAvKiBudW1iZXIgb2YgYnl0ZXMgYXZhaWxhYmxlIGF0IGlucHV0ICovCiAgICB0aGlzLmF2YWlsX2luID0gMDsKICAgIC8qIHRvdGFsIG51bWJlciBvZiBpbnB1dCBieXRlcyByZWFkIHNvIGZhciAqLwogICAgdGhpcy50b3RhbF9pbiA9IDA7CiAgICAvKiBuZXh0IG91dHB1dCBieXRlIHNob3VsZCBiZSBwdXQgdGhlcmUgKi8KICAgIHRoaXMub3V0cHV0ID0gbnVsbDsgLy8gSlMgc3BlY2lmaWMsIGJlY2F1c2Ugd2UgaGF2ZSBubyBwb2ludGVycwogICAgdGhpcy5uZXh0X291dCA9IDA7CiAgICAvKiByZW1haW5pbmcgZnJlZSBzcGFjZSBhdCBvdXRwdXQgKi8KICAgIHRoaXMuYXZhaWxfb3V0ID0gMDsKICAgIC8qIHRvdGFsIG51bWJlciBvZiBieXRlcyBvdXRwdXQgc28gZmFyICovCiAgICB0aGlzLnRvdGFsX291dCA9IDA7CiAgICAvKiBsYXN0IGVycm9yIG1lc3NhZ2UsIE5VTEwgaWYgbm8gZXJyb3IgKi8KICAgIHRoaXMubXNnID0gJycvKlpfTlVMTCovOwogICAgLyogbm90IHZpc2libGUgYnkgYXBwbGljYXRpb25zICovCiAgICB0aGlzLnN0YXRlID0gbnVsbDsKICAgIC8qIGJlc3QgZ3Vlc3MgYWJvdXQgdGhlIGRhdGEgdHlwZTogYmluYXJ5IG9yIHRleHQgKi8KICAgIHRoaXMuZGF0YV90eXBlID0gMi8qWl9VTktOT1dOKi87CiAgICAvKiBhZGxlcjMyIHZhbHVlIG9mIHRoZSB1bmNvbXByZXNzZWQgZGF0YSAqLwogICAgdGhpcy5hZGxlciA9IDA7CiAgfQoKICB2YXIgenN0cmVhbSA9IFpTdHJlYW07CgogIGNvbnN0IHRvU3RyaW5nJDEgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwoKICAvKiBQdWJsaWMgY29uc3RhbnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgogIGNvbnN0IHsKICAgIFpfTk9fRkxVU0g6IFpfTk9fRkxVU0gkMSwgWl9TWU5DX0ZMVVNILCBaX0ZVTExfRkxVU0gsIFpfRklOSVNIOiBaX0ZJTklTSCQyLAogICAgWl9PSzogWl9PSyQyLCBaX1NUUkVBTV9FTkQ6IFpfU1RSRUFNX0VORCQyLAogICAgWl9ERUZBVUxUX0NPTVBSRVNTSU9OLAogICAgWl9ERUZBVUxUX1NUUkFURUdZLAogICAgWl9ERUZMQVRFRDogWl9ERUZMQVRFRCQxCiAgfSA9IGNvbnN0YW50cyQyOwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCiAgLyoqCiAgICogY2xhc3MgRGVmbGF0ZQogICAqCiAgICogR2VuZXJpYyBKUy1zdHlsZSB3cmFwcGVyIGZvciB6bGliIGNhbGxzLiBJZiB5b3UgZG9uJ3QgbmVlZAogICAqIHN0cmVhbWluZyBiZWhhdmlvdXIgLSB1c2UgbW9yZSBzaW1wbGUgZnVuY3Rpb25zOiBbW2RlZmxhdGVdXSwKICAgKiBbW2RlZmxhdGVSYXddXSBhbmQgW1tnemlwXV0uCiAgICoqLwoKICAvKiBpbnRlcm5hbAogICAqIERlZmxhdGUuY2h1bmtzIC0+IEFycmF5CiAgICoKICAgKiBDaHVua3Mgb2Ygb3V0cHV0IGRhdGEsIGlmIFtbRGVmbGF0ZSNvbkRhdGFdXSBub3Qgb3ZlcnJpZGRlbi4KICAgKiovCgogIC8qKgogICAqIERlZmxhdGUucmVzdWx0IC0+IFVpbnQ4QXJyYXkKICAgKgogICAqIENvbXByZXNzZWQgcmVzdWx0LCBnZW5lcmF0ZWQgYnkgZGVmYXVsdCBbW0RlZmxhdGUjb25EYXRhXV0KICAgKiBhbmQgW1tEZWZsYXRlI29uRW5kXV0gaGFuZGxlcnMuIEZpbGxlZCBhZnRlciB5b3UgcHVzaCBsYXN0IGNodW5rCiAgICogKGNhbGwgW1tEZWZsYXRlI3B1c2hdXSB3aXRoIGBaX0ZJTklTSGAgLyBgdHJ1ZWAgcGFyYW0pLgogICAqKi8KCiAgLyoqCiAgICogRGVmbGF0ZS5lcnIgLT4gTnVtYmVyCiAgICoKICAgKiBFcnJvciBjb2RlIGFmdGVyIGRlZmxhdGUgZmluaXNoZWQuIDAgKFpfT0spIG9uIHN1Y2Nlc3MuCiAgICogWW91IHdpbGwgbm90IG5lZWQgaXQgaW4gcmVhbCBsaWZlLCBiZWNhdXNlIGRlZmxhdGUgZXJyb3JzCiAgICogYXJlIHBvc3NpYmxlIG9ubHkgb24gd3Jvbmcgb3B0aW9ucyBvciBiYWQgYG9uRGF0YWAgLyBgb25FbmRgCiAgICogY3VzdG9tIGhhbmRsZXJzLgogICAqKi8KCiAgLyoqCiAgICogRGVmbGF0ZS5tc2cgLT4gU3RyaW5nCiAgICoKICAgKiBFcnJvciBtZXNzYWdlLCBpZiBbW0RlZmxhdGUuZXJyXV0gIT0gMAogICAqKi8KCgogIC8qKgogICAqIG5ldyBEZWZsYXRlKG9wdGlvbnMpCiAgICogLSBvcHRpb25zIChPYmplY3QpOiB6bGliIGRlZmxhdGUgb3B0aW9ucy4KICAgKgogICAqIENyZWF0ZXMgbmV3IGRlZmxhdG9yIGluc3RhbmNlIHdpdGggc3BlY2lmaWVkIHBhcmFtcy4gVGhyb3dzIGV4Y2VwdGlvbgogICAqIG9uIGJhZCBwYXJhbXMuIFN1cHBvcnRlZCBvcHRpb25zOgogICAqCiAgICogLSBgbGV2ZWxgCiAgICogLSBgd2luZG93Qml0c2AKICAgKiAtIGBtZW1MZXZlbGAKICAgKiAtIGBzdHJhdGVneWAKICAgKiAtIGBkaWN0aW9uYXJ5YAogICAqCiAgICogW2h0dHA6Ly96bGliLm5ldC9tYW51YWwuaHRtbCNBZHZhbmNlZF0oaHR0cDovL3psaWIubmV0L21hbnVhbC5odG1sI0FkdmFuY2VkKQogICAqIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZXNlLgogICAqCiAgICogQWRkaXRpb25hbCBvcHRpb25zLCBmb3IgaW50ZXJuYWwgbmVlZHM6CiAgICoKICAgKiAtIGBjaHVua1NpemVgIC0gc2l6ZSBvZiBnZW5lcmF0ZWQgZGF0YSBjaHVua3MgKDE2SyBieSBkZWZhdWx0KQogICAqIC0gYHJhd2AgKEJvb2xlYW4pIC0gZG8gcmF3IGRlZmxhdGUKICAgKiAtIGBnemlwYCAoQm9vbGVhbikgLSBjcmVhdGUgZ3ppcCB3cmFwcGVyCiAgICogLSBgaGVhZGVyYCAoT2JqZWN0KSAtIGN1c3RvbSBoZWFkZXIgZm9yIGd6aXAKICAgKiAgIC0gYHRleHRgIChCb29sZWFuKSAtIHRydWUgaWYgY29tcHJlc3NlZCBkYXRhIGJlbGlldmVkIHRvIGJlIHRleHQKICAgKiAgIC0gYHRpbWVgIChOdW1iZXIpIC0gbW9kaWZpY2F0aW9uIHRpbWUsIHVuaXggdGltZXN0YW1wCiAgICogICAtIGBvc2AgKE51bWJlcikgLSBvcGVyYXRpb24gc3lzdGVtIGNvZGUKICAgKiAgIC0gYGV4dHJhYCAoQXJyYXkpIC0gYXJyYXkgb2YgYnl0ZXMgd2l0aCBleHRyYSBkYXRhIChtYXggNjU1MzYpCiAgICogICAtIGBuYW1lYCAoU3RyaW5nKSAtIGZpbGUgbmFtZSAoYmluYXJ5IHN0cmluZykKICAgKiAgIC0gYGNvbW1lbnRgIChTdHJpbmcpIC0gY29tbWVudCAoYmluYXJ5IHN0cmluZykKICAgKiAgIC0gYGhjcmNgIChCb29sZWFuKSAtIHRydWUgaWYgaGVhZGVyIGNyYyBzaG91bGQgYmUgYWRkZWQKICAgKgogICAqICMjIyMjIEV4YW1wbGU6CiAgICoKICAgKiBgYGBqYXZhc2NyaXB0CiAgICogY29uc3QgcGFrbyA9IHJlcXVpcmUoJ3Bha28nKQogICAqICAgLCBjaHVuazEgPSBuZXcgVWludDhBcnJheShbMSwyLDMsNCw1LDYsNyw4LDldKQogICAqICAgLCBjaHVuazIgPSBuZXcgVWludDhBcnJheShbMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTldKTsKICAgKgogICAqIGNvbnN0IGRlZmxhdGUgPSBuZXcgcGFrby5EZWZsYXRlKHsgbGV2ZWw6IDN9KTsKICAgKgogICAqIGRlZmxhdGUucHVzaChjaHVuazEsIGZhbHNlKTsKICAgKiBkZWZsYXRlLnB1c2goY2h1bmsyLCB0cnVlKTsgIC8vIHRydWUgLT4gbGFzdCBjaHVuawogICAqCiAgICogaWYgKGRlZmxhdGUuZXJyKSB7IHRocm93IG5ldyBFcnJvcihkZWZsYXRlLmVycik7IH0KICAgKgogICAqIGNvbnNvbGUubG9nKGRlZmxhdGUucmVzdWx0KTsKICAgKiBgYGAKICAgKiovCiAgZnVuY3Rpb24gRGVmbGF0ZSQxKG9wdGlvbnMpIHsKICAgIHRoaXMub3B0aW9ucyA9IGNvbW1vbi5hc3NpZ24oewogICAgICBsZXZlbDogWl9ERUZBVUxUX0NPTVBSRVNTSU9OLAogICAgICBtZXRob2Q6IFpfREVGTEFURUQkMSwKICAgICAgY2h1bmtTaXplOiAxNjM4NCwKICAgICAgd2luZG93Qml0czogMTUsCiAgICAgIG1lbUxldmVsOiA4LAogICAgICBzdHJhdGVneTogWl9ERUZBVUxUX1NUUkFURUdZCiAgICB9LCBvcHRpb25zIHx8IHt9KTsKCiAgICBsZXQgb3B0ID0gdGhpcy5vcHRpb25zOwoKICAgIGlmIChvcHQucmF3ICYmIChvcHQud2luZG93Qml0cyA+IDApKSB7CiAgICAgIG9wdC53aW5kb3dCaXRzID0gLW9wdC53aW5kb3dCaXRzOwogICAgfQoKICAgIGVsc2UgaWYgKG9wdC5nemlwICYmIChvcHQud2luZG93Qml0cyA+IDApICYmIChvcHQud2luZG93Qml0cyA8IDE2KSkgewogICAgICBvcHQud2luZG93Qml0cyArPSAxNjsKICAgIH0KCiAgICB0aGlzLmVyciAgICA9IDA7ICAgICAgLy8gZXJyb3IgY29kZSwgaWYgaGFwcGVucyAoMCA9IFpfT0spCiAgICB0aGlzLm1zZyAgICA9ICcnOyAgICAgLy8gZXJyb3IgbWVzc2FnZQogICAgdGhpcy5lbmRlZCAgPSBmYWxzZTsgIC8vIHVzZWQgdG8gYXZvaWQgbXVsdGlwbGUgb25FbmQoKSBjYWxscwogICAgdGhpcy5jaHVua3MgPSBbXTsgICAgIC8vIGNodW5rcyBvZiBjb21wcmVzc2VkIGRhdGEKCiAgICB0aGlzLnN0cm0gPSBuZXcgenN0cmVhbSgpOwogICAgdGhpcy5zdHJtLmF2YWlsX291dCA9IDA7CgogICAgbGV0IHN0YXR1cyA9IGRlZmxhdGVfMSQyLmRlZmxhdGVJbml0MigKICAgICAgdGhpcy5zdHJtLAogICAgICBvcHQubGV2ZWwsCiAgICAgIG9wdC5tZXRob2QsCiAgICAgIG9wdC53aW5kb3dCaXRzLAogICAgICBvcHQubWVtTGV2ZWwsCiAgICAgIG9wdC5zdHJhdGVneQogICAgKTsKCiAgICBpZiAoc3RhdHVzICE9PSBaX09LJDIpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2VzW3N0YXR1c10pOwogICAgfQoKICAgIGlmIChvcHQuaGVhZGVyKSB7CiAgICAgIGRlZmxhdGVfMSQyLmRlZmxhdGVTZXRIZWFkZXIodGhpcy5zdHJtLCBvcHQuaGVhZGVyKTsKICAgIH0KCiAgICBpZiAob3B0LmRpY3Rpb25hcnkpIHsKICAgICAgbGV0IGRpY3Q7CiAgICAgIC8vIENvbnZlcnQgZGF0YSBpZiBuZWVkZWQKICAgICAgaWYgKHR5cGVvZiBvcHQuZGljdGlvbmFyeSA9PT0gJ3N0cmluZycpIHsKICAgICAgICAvLyBJZiB3ZSBuZWVkIHRvIGNvbXByZXNzIHRleHQsIGNoYW5nZSBlbmNvZGluZyB0byB1dGY4LgogICAgICAgIGRpY3QgPSBzdHJpbmdzLnN0cmluZzJidWYob3B0LmRpY3Rpb25hcnkpOwogICAgICB9IGVsc2UgaWYgKHRvU3RyaW5nJDEuY2FsbChvcHQuZGljdGlvbmFyeSkgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXScpIHsKICAgICAgICBkaWN0ID0gbmV3IFVpbnQ4QXJyYXkob3B0LmRpY3Rpb25hcnkpOwogICAgICB9IGVsc2UgewogICAgICAgIGRpY3QgPSBvcHQuZGljdGlvbmFyeTsKICAgICAgfQoKICAgICAgc3RhdHVzID0gZGVmbGF0ZV8xJDIuZGVmbGF0ZVNldERpY3Rpb25hcnkodGhpcy5zdHJtLCBkaWN0KTsKCiAgICAgIGlmIChzdGF0dXMgIT09IFpfT0skMikgewogICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlc1tzdGF0dXNdKTsKICAgICAgfQoKICAgICAgdGhpcy5fZGljdF9zZXQgPSB0cnVlOwogICAgfQogIH0KCiAgLyoqCiAgICogRGVmbGF0ZSNwdXNoKGRhdGFbLCBmbHVzaF9tb2RlXSkgLT4gQm9vbGVhbgogICAqIC0gZGF0YSAoVWludDhBcnJheXxBcnJheUJ1ZmZlcnxTdHJpbmcpOiBpbnB1dCBkYXRhLiBTdHJpbmdzIHdpbGwgYmUKICAgKiAgIGNvbnZlcnRlZCB0byB1dGY4IGJ5dGUgc2VxdWVuY2UuCiAgICogLSBmbHVzaF9tb2RlIChOdW1iZXJ8Qm9vbGVhbik6IDAuLjYgZm9yIGNvcnJlc3BvbmRpbmcgWl9OT19GTFVTSC4uWl9UUkVFIG1vZGVzLgogICAqICAgU2VlIGNvbnN0YW50cy4gU2tpcHBlZCBvciBgZmFsc2VgIG1lYW5zIFpfTk9fRkxVU0gsIGB0cnVlYCBtZWFucyBaX0ZJTklTSC4KICAgKgogICAqIFNlbmRzIGlucHV0IGRhdGEgdG8gZGVmbGF0ZSBwaXBlLCBnZW5lcmF0aW5nIFtbRGVmbGF0ZSNvbkRhdGFdXSBjYWxscyB3aXRoCiAgICogbmV3IGNvbXByZXNzZWQgY2h1bmtzLiBSZXR1cm5zIGB0cnVlYCBvbiBzdWNjZXNzLiBUaGUgbGFzdCBkYXRhIGJsb2NrIG11c3QKICAgKiBoYXZlIGBmbHVzaF9tb2RlYCBaX0ZJTklTSCAob3IgYHRydWVgKS4gVGhhdCB3aWxsIGZsdXNoIGludGVybmFsIHBlbmRpbmcKICAgKiBidWZmZXJzIGFuZCBjYWxsIFtbRGVmbGF0ZSNvbkVuZF1dLgogICAqCiAgICogT24gZmFpbCBjYWxsIFtbRGVmbGF0ZSNvbkVuZF1dIHdpdGggZXJyb3IgY29kZSBhbmQgcmV0dXJuIGZhbHNlLgogICAqCiAgICogIyMjIyMgRXhhbXBsZQogICAqCiAgICogYGBgamF2YXNjcmlwdAogICAqIHB1c2goY2h1bmssIGZhbHNlKTsgLy8gcHVzaCBvbmUgb2YgZGF0YSBjaHVua3MKICAgKiAuLi4KICAgKiBwdXNoKGNodW5rLCB0cnVlKTsgIC8vIHB1c2ggbGFzdCBjaHVuawogICAqIGBgYAogICAqKi8KICBEZWZsYXRlJDEucHJvdG90eXBlLnB1c2ggPSBmdW5jdGlvbiAoZGF0YSwgZmx1c2hfbW9kZSkgewogICAgY29uc3Qgc3RybSA9IHRoaXMuc3RybTsKICAgIGNvbnN0IGNodW5rU2l6ZSA9IHRoaXMub3B0aW9ucy5jaHVua1NpemU7CiAgICBsZXQgc3RhdHVzLCBfZmx1c2hfbW9kZTsKCiAgICBpZiAodGhpcy5lbmRlZCkgeyByZXR1cm4gZmFsc2U7IH0KCiAgICBpZiAoZmx1c2hfbW9kZSA9PT0gfn5mbHVzaF9tb2RlKSBfZmx1c2hfbW9kZSA9IGZsdXNoX21vZGU7CiAgICBlbHNlIF9mbHVzaF9tb2RlID0gZmx1c2hfbW9kZSA9PT0gdHJ1ZSA/IFpfRklOSVNIJDIgOiBaX05PX0ZMVVNIJDE7CgogICAgLy8gQ29udmVydCBkYXRhIGlmIG5lZWRlZAogICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykgewogICAgICAvLyBJZiB3ZSBuZWVkIHRvIGNvbXByZXNzIHRleHQsIGNoYW5nZSBlbmNvZGluZyB0byB1dGY4LgogICAgICBzdHJtLmlucHV0ID0gc3RyaW5ncy5zdHJpbmcyYnVmKGRhdGEpOwogICAgfSBlbHNlIGlmICh0b1N0cmluZyQxLmNhbGwoZGF0YSkgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXScpIHsKICAgICAgc3RybS5pbnB1dCA9IG5ldyBVaW50OEFycmF5KGRhdGEpOwogICAgfSBlbHNlIHsKICAgICAgc3RybS5pbnB1dCA9IGRhdGE7CiAgICB9CgogICAgc3RybS5uZXh0X2luID0gMDsKICAgIHN0cm0uYXZhaWxfaW4gPSBzdHJtLmlucHV0Lmxlbmd0aDsKCiAgICBmb3IgKDs7KSB7CiAgICAgIGlmIChzdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHN0cm0ub3V0cHV0ID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmtTaXplKTsKICAgICAgICBzdHJtLm5leHRfb3V0ID0gMDsKICAgICAgICBzdHJtLmF2YWlsX291dCA9IGNodW5rU2l6ZTsKICAgICAgfQoKICAgICAgLy8gTWFrZSBzdXJlIGF2YWlsX291dCA+IDYgdG8gYXZvaWQgcmVwZWF0aW5nIG1hcmtlcnMKICAgICAgaWYgKChfZmx1c2hfbW9kZSA9PT0gWl9TWU5DX0ZMVVNIIHx8IF9mbHVzaF9tb2RlID09PSBaX0ZVTExfRkxVU0gpICYmIHN0cm0uYXZhaWxfb3V0IDw9IDYpIHsKICAgICAgICB0aGlzLm9uRGF0YShzdHJtLm91dHB1dC5zdWJhcnJheSgwLCBzdHJtLm5leHRfb3V0KSk7CiAgICAgICAgc3RybS5hdmFpbF9vdXQgPSAwOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9CgogICAgICBzdGF0dXMgPSBkZWZsYXRlXzEkMi5kZWZsYXRlKHN0cm0sIF9mbHVzaF9tb2RlKTsKCiAgICAgIC8vIEVuZGVkID0+IGZsdXNoIGFuZCBmaW5pc2gKICAgICAgaWYgKHN0YXR1cyA9PT0gWl9TVFJFQU1fRU5EJDIpIHsKICAgICAgICBpZiAoc3RybS5uZXh0X291dCA+IDApIHsKICAgICAgICAgIHRoaXMub25EYXRhKHN0cm0ub3V0cHV0LnN1YmFycmF5KDAsIHN0cm0ubmV4dF9vdXQpKTsKICAgICAgICB9CiAgICAgICAgc3RhdHVzID0gZGVmbGF0ZV8xJDIuZGVmbGF0ZUVuZCh0aGlzLnN0cm0pOwogICAgICAgIHRoaXMub25FbmQoc3RhdHVzKTsKICAgICAgICB0aGlzLmVuZGVkID0gdHJ1ZTsKICAgICAgICByZXR1cm4gc3RhdHVzID09PSBaX09LJDI7CiAgICAgIH0KCiAgICAgIC8vIEZsdXNoIGlmIG91dCBidWZmZXIgZnVsbAogICAgICBpZiAoc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICB0aGlzLm9uRGF0YShzdHJtLm91dHB1dCk7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIC8vIEZsdXNoIGlmIHJlcXVlc3RlZCBhbmQgaGFzIGRhdGEKICAgICAgaWYgKF9mbHVzaF9tb2RlID4gMCAmJiBzdHJtLm5leHRfb3V0ID4gMCkgewogICAgICAgIHRoaXMub25EYXRhKHN0cm0ub3V0cHV0LnN1YmFycmF5KDAsIHN0cm0ubmV4dF9vdXQpKTsKICAgICAgICBzdHJtLmF2YWlsX291dCA9IDA7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIGlmIChzdHJtLmF2YWlsX2luID09PSAwKSBicmVhazsKICAgIH0KCiAgICByZXR1cm4gdHJ1ZTsKICB9OwoKCiAgLyoqCiAgICogRGVmbGF0ZSNvbkRhdGEoY2h1bmspIC0+IFZvaWQKICAgKiAtIGNodW5rIChVaW50OEFycmF5KTogb3V0cHV0IGRhdGEuCiAgICoKICAgKiBCeSBkZWZhdWx0LCBzdG9yZXMgZGF0YSBibG9ja3MgaW4gYGNodW5rc1tdYCBwcm9wZXJ0eSBhbmQgZ2x1ZQogICAqIHRob3NlIGluIGBvbkVuZGAuIE92ZXJyaWRlIHRoaXMgaGFuZGxlciwgaWYgeW91IG5lZWQgYW5vdGhlciBiZWhhdmlvdXIuCiAgICoqLwogIERlZmxhdGUkMS5wcm90b3R5cGUub25EYXRhID0gZnVuY3Rpb24gKGNodW5rKSB7CiAgICB0aGlzLmNodW5rcy5wdXNoKGNodW5rKTsKICB9OwoKCiAgLyoqCiAgICogRGVmbGF0ZSNvbkVuZChzdGF0dXMpIC0+IFZvaWQKICAgKiAtIHN0YXR1cyAoTnVtYmVyKTogZGVmbGF0ZSBzdGF0dXMuIDAgKFpfT0spIG9uIHN1Y2Nlc3MsCiAgICogICBvdGhlciBpZiBub3QuCiAgICoKICAgKiBDYWxsZWQgb25jZSBhZnRlciB5b3UgdGVsbCBkZWZsYXRlIHRoYXQgdGhlIGlucHV0IHN0cmVhbSBpcwogICAqIGNvbXBsZXRlIChaX0ZJTklTSCkuIEJ5IGRlZmF1bHQgLSBqb2luIGNvbGxlY3RlZCBjaHVua3MsCiAgICogZnJlZSBtZW1vcnkgYW5kIGZpbGwgYHJlc3VsdHNgIC8gYGVycmAgcHJvcGVydGllcy4KICAgKiovCiAgRGVmbGF0ZSQxLnByb3RvdHlwZS5vbkVuZCA9IGZ1bmN0aW9uIChzdGF0dXMpIHsKICAgIC8vIE9uIHN1Y2Nlc3MgLSBqb2luCiAgICBpZiAoc3RhdHVzID09PSBaX09LJDIpIHsKICAgICAgdGhpcy5yZXN1bHQgPSBjb21tb24uZmxhdHRlbkNodW5rcyh0aGlzLmNodW5rcyk7CiAgICB9CiAgICB0aGlzLmNodW5rcyA9IFtdOwogICAgdGhpcy5lcnIgPSBzdGF0dXM7CiAgICB0aGlzLm1zZyA9IHRoaXMuc3RybS5tc2c7CiAgfTsKCiAgLy8gKEMpIDE5OTUtMjAxMyBKZWFuLWxvdXAgR2FpbGx5IGFuZCBNYXJrIEFkbGVyCiAgLy8gKEMpIDIwMTQtMjAxNyBWaXRhbHkgUHV6cmluIGFuZCBBbmRyZXkgVHVwaXRzaW4KICAvLwogIC8vIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkCiAgLy8gd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCiAgLy8gYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KICAvLwogIC8vIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAogIC8vIGluY2x1ZGluZyBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucywgYW5kIHRvIGFsdGVyIGl0IGFuZCByZWRpc3RyaWJ1dGUgaXQKICAvLyBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6CiAgLy8KICAvLyAxLiBUaGUgb3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUgbWlzcmVwcmVzZW50ZWQ7IHlvdSBtdXN0IG5vdAogIC8vICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKICAvLyAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQogIC8vICAgYXBwcmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4KICAvLyAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQogIC8vICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgogIC8vIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCgogIC8vIFNlZSBzdGF0ZSBkZWZzIGZyb20gaW5mbGF0ZS5qcwogIGNvbnN0IEJBRCQxID0gMzA7ICAgICAgIC8qIGdvdCBhIGRhdGEgZXJyb3IgLS0gcmVtYWluIGhlcmUgdW50aWwgcmVzZXQgKi8KICBjb25zdCBUWVBFJDEgPSAxMjsgICAgICAvKiBpOiB3YWl0aW5nIGZvciB0eXBlIGJpdHMsIGluY2x1ZGluZyBsYXN0LWZsYWcgYml0ICovCgogIC8qCiAgICAgRGVjb2RlIGxpdGVyYWwsIGxlbmd0aCwgYW5kIGRpc3RhbmNlIGNvZGVzIGFuZCB3cml0ZSBvdXQgdGhlIHJlc3VsdGluZwogICAgIGxpdGVyYWwgYW5kIG1hdGNoIGJ5dGVzIHVudGlsIGVpdGhlciBub3QgZW5vdWdoIGlucHV0IG9yIG91dHB1dCBpcwogICAgIGF2YWlsYWJsZSwgYW4gZW5kLW9mLWJsb2NrIGlzIGVuY291bnRlcmVkLCBvciBhIGRhdGEgZXJyb3IgaXMgZW5jb3VudGVyZWQuCiAgICAgV2hlbiBsYXJnZSBlbm91Z2ggaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIGFyZSBzdXBwbGllZCB0byBpbmZsYXRlKCksIGZvcgogICAgIGV4YW1wbGUsIGEgMTZLIGlucHV0IGJ1ZmZlciBhbmQgYSA2NEsgb3V0cHV0IGJ1ZmZlciwgbW9yZSB0aGFuIDk1JSBvZiB0aGUKICAgICBpbmZsYXRlIGV4ZWN1dGlvbiB0aW1lIGlzIHNwZW50IGluIHRoaXMgcm91dGluZS4KCiAgICAgRW50cnkgYXNzdW1wdGlvbnM6CgogICAgICAgICAgc3RhdGUubW9kZSA9PT0gTEVOCiAgICAgICAgICBzdHJtLmF2YWlsX2luID49IDYKICAgICAgICAgIHN0cm0uYXZhaWxfb3V0ID49IDI1OAogICAgICAgICAgc3RhcnQgPj0gc3RybS5hdmFpbF9vdXQKICAgICAgICAgIHN0YXRlLmJpdHMgPCA4CgogICAgIE9uIHJldHVybiwgc3RhdGUubW9kZSBpcyBvbmUgb2Y6CgogICAgICAgICAgTEVOIC0tIHJhbiBvdXQgb2YgZW5vdWdoIG91dHB1dCBzcGFjZSBvciBlbm91Z2ggYXZhaWxhYmxlIGlucHV0CiAgICAgICAgICBUWVBFIC0tIHJlYWNoZWQgZW5kIG9mIGJsb2NrIGNvZGUsIGluZmxhdGUoKSB0byBpbnRlcnByZXQgbmV4dCBibG9jawogICAgICAgICAgQkFEIC0tIGVycm9yIGluIGJsb2NrIGRhdGEKCiAgICAgTm90ZXM6CgogICAgICAtIFRoZSBtYXhpbXVtIGlucHV0IGJpdHMgdXNlZCBieSBhIGxlbmd0aC9kaXN0YW5jZSBwYWlyIGlzIDE1IGJpdHMgZm9yIHRoZQogICAgICAgIGxlbmd0aCBjb2RlLCA1IGJpdHMgZm9yIHRoZSBsZW5ndGggZXh0cmEsIDE1IGJpdHMgZm9yIHRoZSBkaXN0YW5jZSBjb2RlLAogICAgICAgIGFuZCAxMyBiaXRzIGZvciB0aGUgZGlzdGFuY2UgZXh0cmEuICBUaGlzIHRvdGFscyA0OCBiaXRzLCBvciBzaXggYnl0ZXMuCiAgICAgICAgVGhlcmVmb3JlIGlmIHN0cm0uYXZhaWxfaW4gPj0gNiwgdGhlbiB0aGVyZSBpcyBlbm91Z2ggaW5wdXQgdG8gYXZvaWQKICAgICAgICBjaGVja2luZyBmb3IgYXZhaWxhYmxlIGlucHV0IHdoaWxlIGRlY29kaW5nLgoKICAgICAgLSBUaGUgbWF4aW11bSBieXRlcyB0aGF0IGEgc2luZ2xlIGxlbmd0aC9kaXN0YW5jZSBwYWlyIGNhbiBvdXRwdXQgaXMgMjU4CiAgICAgICAgYnl0ZXMsIHdoaWNoIGlzIHRoZSBtYXhpbXVtIGxlbmd0aCB0aGF0IGNhbiBiZSBjb2RlZC4gIGluZmxhdGVfZmFzdCgpCiAgICAgICAgcmVxdWlyZXMgc3RybS5hdmFpbF9vdXQgPj0gMjU4IGZvciBlYWNoIGxvb3AgdG8gYXZvaWQgY2hlY2tpbmcgZm9yCiAgICAgICAgb3V0cHV0IHNwYWNlLgogICAqLwogIHZhciBpbmZmYXN0ID0gZnVuY3Rpb24gaW5mbGF0ZV9mYXN0KHN0cm0sIHN0YXJ0KSB7CiAgICBsZXQgX2luOyAgICAgICAgICAgICAgICAgICAgLyogbG9jYWwgc3RybS5pbnB1dCAqLwogICAgbGV0IGxhc3Q7ICAgICAgICAgICAgICAgICAgIC8qIGhhdmUgZW5vdWdoIGlucHV0IHdoaWxlIGluIDwgbGFzdCAqLwogICAgbGV0IF9vdXQ7ICAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0ub3V0cHV0ICovCiAgICBsZXQgYmVnOyAgICAgICAgICAgICAgICAgICAgLyogaW5mbGF0ZSgpJ3MgaW5pdGlhbCBzdHJtLm91dHB1dCAqLwogICAgbGV0IGVuZDsgICAgICAgICAgICAgICAgICAgIC8qIHdoaWxlIG91dCA8IGVuZCwgZW5vdWdoIHNwYWNlIGF2YWlsYWJsZSAqLwogIC8vI2lmZGVmIElORkxBVEVfU1RSSUNUCiAgICBsZXQgZG1heDsgICAgICAgICAgICAgICAgICAgLyogbWF4aW11bSBkaXN0YW5jZSBmcm9tIHpsaWIgaGVhZGVyICovCiAgLy8jZW5kaWYKICAgIGxldCB3c2l6ZTsgICAgICAgICAgICAgICAgICAvKiB3aW5kb3cgc2l6ZSBvciB6ZXJvIGlmIG5vdCB1c2luZyB3aW5kb3cgKi8KICAgIGxldCB3aGF2ZTsgICAgICAgICAgICAgICAgICAvKiB2YWxpZCBieXRlcyBpbiB0aGUgd2luZG93ICovCiAgICBsZXQgd25leHQ7ICAgICAgICAgICAgICAgICAgLyogd2luZG93IHdyaXRlIGluZGV4ICovCiAgICAvLyBVc2UgYHNfd2luZG93YCBpbnN0ZWFkIGB3aW5kb3dgLCBhdm9pZCBjb25mbGljdCB3aXRoIGluc3RydW1lbnRhdGlvbiB0b29scwogICAgbGV0IHNfd2luZG93OyAgICAgICAgICAgICAgIC8qIGFsbG9jYXRlZCBzbGlkaW5nIHdpbmRvdywgaWYgd3NpemUgIT0gMCAqLwogICAgbGV0IGhvbGQ7ICAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0uaG9sZCAqLwogICAgbGV0IGJpdHM7ICAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0uYml0cyAqLwogICAgbGV0IGxjb2RlOyAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0ubGVuY29kZSAqLwogICAgbGV0IGRjb2RlOyAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0uZGlzdGNvZGUgKi8KICAgIGxldCBsbWFzazsgICAgICAgICAgICAgICAgICAvKiBtYXNrIGZvciBmaXJzdCBsZXZlbCBvZiBsZW5ndGggY29kZXMgKi8KICAgIGxldCBkbWFzazsgICAgICAgICAgICAgICAgICAvKiBtYXNrIGZvciBmaXJzdCBsZXZlbCBvZiBkaXN0YW5jZSBjb2RlcyAqLwogICAgbGV0IGhlcmU7ICAgICAgICAgICAgICAgICAgIC8qIHJldHJpZXZlZCB0YWJsZSBlbnRyeSAqLwogICAgbGV0IG9wOyAgICAgICAgICAgICAgICAgICAgIC8qIGNvZGUgYml0cywgb3BlcmF0aW9uLCBleHRyYSBiaXRzLCBvciAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICB3aW5kb3cgcG9zaXRpb24sIHdpbmRvdyBieXRlcyB0byBjb3B5ICovCiAgICBsZXQgbGVuOyAgICAgICAgICAgICAgICAgICAgLyogbWF0Y2ggbGVuZ3RoLCB1bnVzZWQgYnl0ZXMgKi8KICAgIGxldCBkaXN0OyAgICAgICAgICAgICAgICAgICAvKiBtYXRjaCBkaXN0YW5jZSAqLwogICAgbGV0IGZyb207ICAgICAgICAgICAgICAgICAgIC8qIHdoZXJlIHRvIGNvcHkgbWF0Y2ggZnJvbSAqLwogICAgbGV0IGZyb21fc291cmNlOwoKCiAgICBsZXQgaW5wdXQsIG91dHB1dDsgLy8gSlMgc3BlY2lmaWMsIGJlY2F1c2Ugd2UgaGF2ZSBubyBwb2ludGVycwoKICAgIC8qIGNvcHkgc3RhdGUgdG8gbG9jYWwgdmFyaWFibGVzICovCiAgICBjb25zdCBzdGF0ZSA9IHN0cm0uc3RhdGU7CiAgICAvL2hlcmUgPSBzdGF0ZS5oZXJlOwogICAgX2luID0gc3RybS5uZXh0X2luOwogICAgaW5wdXQgPSBzdHJtLmlucHV0OwogICAgbGFzdCA9IF9pbiArIChzdHJtLmF2YWlsX2luIC0gNSk7CiAgICBfb3V0ID0gc3RybS5uZXh0X291dDsKICAgIG91dHB1dCA9IHN0cm0ub3V0cHV0OwogICAgYmVnID0gX291dCAtIChzdGFydCAtIHN0cm0uYXZhaWxfb3V0KTsKICAgIGVuZCA9IF9vdXQgKyAoc3RybS5hdmFpbF9vdXQgLSAyNTcpOwogIC8vI2lmZGVmIElORkxBVEVfU1RSSUNUCiAgICBkbWF4ID0gc3RhdGUuZG1heDsKICAvLyNlbmRpZgogICAgd3NpemUgPSBzdGF0ZS53c2l6ZTsKICAgIHdoYXZlID0gc3RhdGUud2hhdmU7CiAgICB3bmV4dCA9IHN0YXRlLnduZXh0OwogICAgc193aW5kb3cgPSBzdGF0ZS53aW5kb3c7CiAgICBob2xkID0gc3RhdGUuaG9sZDsKICAgIGJpdHMgPSBzdGF0ZS5iaXRzOwogICAgbGNvZGUgPSBzdGF0ZS5sZW5jb2RlOwogICAgZGNvZGUgPSBzdGF0ZS5kaXN0Y29kZTsKICAgIGxtYXNrID0gKDEgPDwgc3RhdGUubGVuYml0cykgLSAxOwogICAgZG1hc2sgPSAoMSA8PCBzdGF0ZS5kaXN0Yml0cykgLSAxOwoKCiAgICAvKiBkZWNvZGUgbGl0ZXJhbHMgYW5kIGxlbmd0aC9kaXN0YW5jZXMgdW50aWwgZW5kLW9mLWJsb2NrIG9yIG5vdCBlbm91Z2gKICAgICAgIGlucHV0IGRhdGEgb3Igb3V0cHV0IHNwYWNlICovCgogICAgdG9wOgogICAgZG8gewogICAgICBpZiAoYml0cyA8IDE1KSB7CiAgICAgICAgaG9sZCArPSBpbnB1dFtfaW4rK10gPDwgYml0czsKICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgaG9sZCArPSBpbnB1dFtfaW4rK10gPDwgYml0czsKICAgICAgICBiaXRzICs9IDg7CiAgICAgIH0KCiAgICAgIGhlcmUgPSBsY29kZVtob2xkICYgbG1hc2tdOwoKICAgICAgZG9sZW46CiAgICAgIGZvciAoOzspIHsgLy8gR290byBlbXVsYXRpb24KICAgICAgICBvcCA9IGhlcmUgPj4+IDI0LypoZXJlLmJpdHMqLzsKICAgICAgICBob2xkID4+Pj0gb3A7CiAgICAgICAgYml0cyAtPSBvcDsKICAgICAgICBvcCA9IChoZXJlID4+PiAxNikgJiAweGZmLypoZXJlLm9wKi87CiAgICAgICAgaWYgKG9wID09PSAwKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBsaXRlcmFsICovCiAgICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwgaGVyZS52YWwgPj0gMHgyMCAmJiBoZXJlLnZhbCA8IDB4N2YgPwogICAgICAgICAgLy8gICAgICAgICJpbmZsYXRlOiAgICAgICAgIGxpdGVyYWwgJyVjJ1xuIiA6CiAgICAgICAgICAvLyAgICAgICAgImluZmxhdGU6ICAgICAgICAgbGl0ZXJhbCAweCUwMnhcbiIsIGhlcmUudmFsKSk7CiAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IGhlcmUgJiAweGZmZmYvKmhlcmUudmFsKi87CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKG9wICYgMTYpIHsgICAgICAgICAgICAgICAgICAgICAvKiBsZW5ndGggYmFzZSAqLwogICAgICAgICAgbGVuID0gaGVyZSAmIDB4ZmZmZi8qaGVyZS52YWwqLzsKICAgICAgICAgIG9wICY9IDE1OyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBleHRyYSBiaXRzICovCiAgICAgICAgICBpZiAob3ApIHsKICAgICAgICAgICAgaWYgKGJpdHMgPCBvcCkgewogICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbX2luKytdIDw8IGJpdHM7CiAgICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxlbiArPSBob2xkICYgKCgxIDw8IG9wKSAtIDEpOwogICAgICAgICAgICBob2xkID4+Pj0gb3A7CiAgICAgICAgICAgIGJpdHMgLT0gb3A7CiAgICAgICAgICB9CiAgICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwgImluZmxhdGU6ICAgICAgICAgbGVuZ3RoICV1XG4iLCBsZW4pKTsKICAgICAgICAgIGlmIChiaXRzIDwgMTUpIHsKICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtfaW4rK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICBob2xkICs9IGlucHV0W19pbisrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICB9CiAgICAgICAgICBoZXJlID0gZGNvZGVbaG9sZCAmIGRtYXNrXTsKCiAgICAgICAgICBkb2Rpc3Q6CiAgICAgICAgICBmb3IgKDs7KSB7IC8vIGdvdG8gZW11bGF0aW9uCiAgICAgICAgICAgIG9wID0gaGVyZSA+Pj4gMjQvKmhlcmUuYml0cyovOwogICAgICAgICAgICBob2xkID4+Pj0gb3A7CiAgICAgICAgICAgIGJpdHMgLT0gb3A7CiAgICAgICAgICAgIG9wID0gKGhlcmUgPj4+IDE2KSAmIDB4ZmYvKmhlcmUub3AqLzsKCiAgICAgICAgICAgIGlmIChvcCAmIDE2KSB7ICAgICAgICAgICAgICAgICAgICAgIC8qIGRpc3RhbmNlIGJhc2UgKi8KICAgICAgICAgICAgICBkaXN0ID0gaGVyZSAmIDB4ZmZmZi8qaGVyZS52YWwqLzsKICAgICAgICAgICAgICBvcCAmPSAxNTsgICAgICAgICAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBleHRyYSBiaXRzICovCiAgICAgICAgICAgICAgaWYgKGJpdHMgPCBvcCkgewogICAgICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtfaW4rK10gPDwgYml0czsKICAgICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICAgIGlmIChiaXRzIDwgb3ApIHsKICAgICAgICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtfaW4rK10gPDwgYml0czsKICAgICAgICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBkaXN0ICs9IGhvbGQgJiAoKDEgPDwgb3ApIC0gMSk7CiAgLy8jaWZkZWYgSU5GTEFURV9TVFJJQ1QKICAgICAgICAgICAgICBpZiAoZGlzdCA+IGRtYXgpIHsKICAgICAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrJzsKICAgICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQkMTsKICAgICAgICAgICAgICAgIGJyZWFrIHRvcDsKICAgICAgICAgICAgICB9CiAgLy8jZW5kaWYKICAgICAgICAgICAgICBob2xkID4+Pj0gb3A7CiAgICAgICAgICAgICAgYml0cyAtPSBvcDsKICAgICAgICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwgImluZmxhdGU6ICAgICAgICAgZGlzdGFuY2UgJXVcbiIsIGRpc3QpKTsKICAgICAgICAgICAgICBvcCA9IF9vdXQgLSBiZWc7ICAgICAgICAgICAgICAgIC8qIG1heCBkaXN0YW5jZSBpbiBvdXRwdXQgKi8KICAgICAgICAgICAgICBpZiAoZGlzdCA+IG9wKSB7ICAgICAgICAgICAgICAgIC8qIHNlZSBpZiBjb3B5IGZyb20gd2luZG93ICovCiAgICAgICAgICAgICAgICBvcCA9IGRpc3QgLSBvcDsgICAgICAgICAgICAgICAvKiBkaXN0YW5jZSBiYWNrIGluIHdpbmRvdyAqLwogICAgICAgICAgICAgICAgaWYgKG9wID4gd2hhdmUpIHsKICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLnNhbmUpIHsKICAgICAgICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayc7CiAgICAgICAgICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRCQxOwogICAgICAgICAgICAgICAgICAgIGJyZWFrIHRvcDsKICAgICAgICAgICAgICAgICAgfQoKICAvLyAoISkgVGhpcyBibG9jayBpcyBkaXNhYmxlZCBpbiB6bGliIGRlZmF1bHRzLAogIC8vIGRvbid0IGVuYWJsZSBpdCBmb3IgYmluYXJ5IGNvbXBhdGliaWxpdHkKICAvLyNpZmRlZiBJTkZMQVRFX0FMTE9XX0lOVkFMSURfRElTVEFOQ0VfVE9PRkFSX0FSUlIKICAvLyAgICAgICAgICAgICAgICBpZiAobGVuIDw9IG9wIC0gd2hhdmUpIHsKICAvLyAgICAgICAgICAgICAgICAgIGRvIHsKICAvLyAgICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSAwOwogIC8vICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoLS1sZW4pOwogIC8vICAgICAgICAgICAgICAgICAgY29udGludWUgdG9wOwogIC8vICAgICAgICAgICAgICAgIH0KICAvLyAgICAgICAgICAgICAgICBsZW4gLT0gb3AgLSB3aGF2ZTsKICAvLyAgICAgICAgICAgICAgICBkbyB7CiAgLy8gICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IDA7CiAgLy8gICAgICAgICAgICAgICAgfSB3aGlsZSAoLS1vcCA+IHdoYXZlKTsKICAvLyAgICAgICAgICAgICAgICBpZiAob3AgPT09IDApIHsKICAvLyAgICAgICAgICAgICAgICAgIGZyb20gPSBfb3V0IC0gZGlzdDsKICAvLyAgICAgICAgICAgICAgICAgIGRvIHsKICAvLyAgICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAvLyAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKC0tbGVuKTsKICAvLyAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIHRvcDsKICAvLyAgICAgICAgICAgICAgICB9CiAgLy8jZW5kaWYKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZyb20gPSAwOyAvLyB3aW5kb3cgaW5kZXgKICAgICAgICAgICAgICAgIGZyb21fc291cmNlID0gc193aW5kb3c7CiAgICAgICAgICAgICAgICBpZiAod25leHQgPT09IDApIHsgICAgICAgICAgIC8qIHZlcnkgY29tbW9uIGNhc2UgKi8KICAgICAgICAgICAgICAgICAgZnJvbSArPSB3c2l6ZSAtIG9wOwogICAgICAgICAgICAgICAgICBpZiAob3AgPCBsZW4pIHsgICAgICAgICAvKiBzb21lIGZyb20gd2luZG93ICovCiAgICAgICAgICAgICAgICAgICAgbGVuIC09IG9wOwogICAgICAgICAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICAgICAgIG91dHB1dFtfb3V0KytdID0gc193aW5kb3dbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgICB9IHdoaWxlICgtLW9wKTsKICAgICAgICAgICAgICAgICAgICBmcm9tID0gX291dCAtIGRpc3Q7ICAvKiByZXN0IGZyb20gb3V0cHV0ICovCiAgICAgICAgICAgICAgICAgICAgZnJvbV9zb3VyY2UgPSBvdXRwdXQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHduZXh0IDwgb3ApIHsgICAgICAvKiB3cmFwIGFyb3VuZCB3aW5kb3cgKi8KICAgICAgICAgICAgICAgICAgZnJvbSArPSB3c2l6ZSArIHduZXh0IC0gb3A7CiAgICAgICAgICAgICAgICAgIG9wIC09IHduZXh0OwogICAgICAgICAgICAgICAgICBpZiAob3AgPCBsZW4pIHsgICAgICAgICAvKiBzb21lIGZyb20gZW5kIG9mIHdpbmRvdyAqLwogICAgICAgICAgICAgICAgICAgIGxlbiAtPSBvcDsKICAgICAgICAgICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IHNfd2luZG93W2Zyb20rK107CiAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoLS1vcCk7CiAgICAgICAgICAgICAgICAgICAgZnJvbSA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYgKHduZXh0IDwgbGVuKSB7ICAvKiBzb21lIGZyb20gc3RhcnQgb2Ygd2luZG93ICovCiAgICAgICAgICAgICAgICAgICAgICBvcCA9IHduZXh0OwogICAgICAgICAgICAgICAgICAgICAgbGVuIC09IG9wOwogICAgICAgICAgICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IHNfd2luZG93W2Zyb20rK107CiAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlICgtLW9wKTsKICAgICAgICAgICAgICAgICAgICAgIGZyb20gPSBfb3V0IC0gZGlzdDsgICAgICAvKiByZXN0IGZyb20gb3V0cHV0ICovCiAgICAgICAgICAgICAgICAgICAgICBmcm9tX3NvdXJjZSA9IG91dHB1dDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAvKiBjb250aWd1b3VzIGluIHdpbmRvdyAqLwogICAgICAgICAgICAgICAgICBmcm9tICs9IHduZXh0IC0gb3A7CiAgICAgICAgICAgICAgICAgIGlmIChvcCA8IGxlbikgeyAgICAgICAgIC8qIHNvbWUgZnJvbSB3aW5kb3cgKi8KICAgICAgICAgICAgICAgICAgICBsZW4gLT0gb3A7CiAgICAgICAgICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBzX3dpbmRvd1tmcm9tKytdOwogICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKC0tb3ApOwogICAgICAgICAgICAgICAgICAgIGZyb20gPSBfb3V0IC0gZGlzdDsgIC8qIHJlc3QgZnJvbSBvdXRwdXQgKi8KICAgICAgICAgICAgICAgICAgICBmcm9tX3NvdXJjZSA9IG91dHB1dDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgd2hpbGUgKGxlbiA+IDIpIHsKICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBmcm9tX3NvdXJjZVtmcm9tKytdOwogICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IGZyb21fc291cmNlW2Zyb20rK107CiAgICAgICAgICAgICAgICAgIG91dHB1dFtfb3V0KytdID0gZnJvbV9zb3VyY2VbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgbGVuIC09IDM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAobGVuKSB7CiAgICAgICAgICAgICAgICAgIG91dHB1dFtfb3V0KytdID0gZnJvbV9zb3VyY2VbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgaWYgKGxlbiA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IGZyb21fc291cmNlW2Zyb20rK107CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBmcm9tID0gX291dCAtIGRpc3Q7ICAgICAgICAgIC8qIGNvcHkgZGlyZWN0IGZyb20gb3V0cHV0ICovCiAgICAgICAgICAgICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgLyogbWluaW11bSBsZW5ndGggaXMgdGhyZWUgKi8KICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgbGVuIC09IDM7CiAgICAgICAgICAgICAgICB9IHdoaWxlIChsZW4gPiAyKTsKICAgICAgICAgICAgICAgIGlmIChsZW4pIHsKICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgaWYgKGxlbiA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IG91dHB1dFtmcm9tKytdOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKChvcCAmIDY0KSA9PT0gMCkgeyAgICAgICAgICAvKiAybmQgbGV2ZWwgZGlzdGFuY2UgY29kZSAqLwogICAgICAgICAgICAgIGhlcmUgPSBkY29kZVsoaGVyZSAmIDB4ZmZmZikvKmhlcmUudmFsKi8gKyAoaG9sZCAmICgoMSA8PCBvcCkgLSAxKSldOwogICAgICAgICAgICAgIGNvbnRpbnVlIGRvZGlzdDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGRpc3RhbmNlIGNvZGUnOwogICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQkMTsKICAgICAgICAgICAgICBicmVhayB0b3A7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGJyZWFrOyAvLyBuZWVkIHRvIGVtdWxhdGUgZ290byB2aWEgImNvbnRpbnVlIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmICgob3AgJiA2NCkgPT09IDApIHsgICAgICAgICAgICAgIC8qIDJuZCBsZXZlbCBsZW5ndGggY29kZSAqLwogICAgICAgICAgaGVyZSA9IGxjb2RlWyhoZXJlICYgMHhmZmZmKS8qaGVyZS52YWwqLyArIChob2xkICYgKCgxIDw8IG9wKSAtIDEpKV07CiAgICAgICAgICBjb250aW51ZSBkb2xlbjsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAob3AgJiAzMikgeyAgICAgICAgICAgICAgICAgICAgIC8qIGVuZC1vZi1ibG9jayAqLwogICAgICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgICAgIGVuZCBvZiBibG9ja1xuIikpOwogICAgICAgICAgc3RhdGUubW9kZSA9IFRZUEUkMTsKICAgICAgICAgIGJyZWFrIHRvcDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUnOwogICAgICAgICAgc3RhdGUubW9kZSA9IEJBRCQxOwogICAgICAgICAgYnJlYWsgdG9wOwogICAgICAgIH0KCiAgICAgICAgYnJlYWs7IC8vIG5lZWQgdG8gZW11bGF0ZSBnb3RvIHZpYSAiY29udGludWUiCiAgICAgIH0KICAgIH0gd2hpbGUgKF9pbiA8IGxhc3QgJiYgX291dCA8IGVuZCk7CgogICAgLyogcmV0dXJuIHVudXNlZCBieXRlcyAob24gZW50cnksIGJpdHMgPCA4LCBzbyBpbiB3b24ndCBnbyB0b28gZmFyIGJhY2spICovCiAgICBsZW4gPSBiaXRzID4+IDM7CiAgICBfaW4gLT0gbGVuOwogICAgYml0cyAtPSBsZW4gPDwgMzsKICAgIGhvbGQgJj0gKDEgPDwgYml0cykgLSAxOwoKICAgIC8qIHVwZGF0ZSBzdGF0ZSBhbmQgcmV0dXJuICovCiAgICBzdHJtLm5leHRfaW4gPSBfaW47CiAgICBzdHJtLm5leHRfb3V0ID0gX291dDsKICAgIHN0cm0uYXZhaWxfaW4gPSAoX2luIDwgbGFzdCA/IDUgKyAobGFzdCAtIF9pbikgOiA1IC0gKF9pbiAtIGxhc3QpKTsKICAgIHN0cm0uYXZhaWxfb3V0ID0gKF9vdXQgPCBlbmQgPyAyNTcgKyAoZW5kIC0gX291dCkgOiAyNTcgLSAoX291dCAtIGVuZCkpOwogICAgc3RhdGUuaG9sZCA9IGhvbGQ7CiAgICBzdGF0ZS5iaXRzID0gYml0czsKICAgIHJldHVybjsKICB9OwoKICAvLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAvLyAoQykgMjAxNC0yMDE3IFZpdGFseSBQdXpyaW4gYW5kIEFuZHJleSBUdXBpdHNpbgogIC8vCiAgLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAvLyB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKICAvLyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogIC8vCiAgLy8gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCiAgLy8gaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogIC8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKICAvLwogIC8vIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQogIC8vICAgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpbiB0aGUgcHJvZHVjdCBkb2N1bWVudGF0aW9uIHdvdWxkIGJlCiAgLy8gICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogIC8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCiAgLy8gICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgLy8gMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KCiAgY29uc3QgTUFYQklUUyA9IDE1OwogIGNvbnN0IEVOT1VHSF9MRU5TJDEgPSA4NTI7CiAgY29uc3QgRU5PVUdIX0RJU1RTJDEgPSA1OTI7CiAgLy9jb25zdCBFTk9VR0ggPSAoRU5PVUdIX0xFTlMrRU5PVUdIX0RJU1RTKTsKCiAgY29uc3QgQ09ERVMkMSA9IDA7CiAgY29uc3QgTEVOUyQxID0gMTsKICBjb25zdCBESVNUUyQxID0gMjsKCiAgY29uc3QgbGJhc2UgPSBuZXcgVWludDE2QXJyYXkoWyAvKiBMZW5ndGggY29kZXMgMjU3Li4yODUgYmFzZSAqLwogICAgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMywgMTUsIDE3LCAxOSwgMjMsIDI3LCAzMSwKICAgIDM1LCA0MywgNTEsIDU5LCA2NywgODMsIDk5LCAxMTUsIDEzMSwgMTYzLCAxOTUsIDIyNywgMjU4LCAwLCAwCiAgXSk7CgogIGNvbnN0IGxleHQgPSBuZXcgVWludDhBcnJheShbIC8qIExlbmd0aCBjb2RlcyAyNTcuLjI4NSBleHRyYSAqLwogICAgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNywgMTcsIDE3LCAxNywgMTgsIDE4LCAxOCwgMTgsCiAgICAxOSwgMTksIDE5LCAxOSwgMjAsIDIwLCAyMCwgMjAsIDIxLCAyMSwgMjEsIDIxLCAxNiwgNzIsIDc4CiAgXSk7CgogIGNvbnN0IGRiYXNlID0gbmV3IFVpbnQxNkFycmF5KFsgLyogRGlzdGFuY2UgY29kZXMgMC4uMjkgYmFzZSAqLwogICAgMSwgMiwgMywgNCwgNSwgNywgOSwgMTMsIDE3LCAyNSwgMzMsIDQ5LCA2NSwgOTcsIDEyOSwgMTkzLAogICAgMjU3LCAzODUsIDUxMywgNzY5LCAxMDI1LCAxNTM3LCAyMDQ5LCAzMDczLCA0MDk3LCA2MTQ1LAogICAgODE5MywgMTIyODksIDE2Mzg1LCAyNDU3NywgMCwgMAogIF0pOwoKICBjb25zdCBkZXh0ID0gbmV3IFVpbnQ4QXJyYXkoWyAvKiBEaXN0YW5jZSBjb2RlcyAwLi4yOSBleHRyYSAqLwogICAgMTYsIDE2LCAxNiwgMTYsIDE3LCAxNywgMTgsIDE4LCAxOSwgMTksIDIwLCAyMCwgMjEsIDIxLCAyMiwgMjIsCiAgICAyMywgMjMsIDI0LCAyNCwgMjUsIDI1LCAyNiwgMjYsIDI3LCAyNywKICAgIDI4LCAyOCwgMjksIDI5LCA2NCwgNjQKICBdKTsKCiAgY29uc3QgaW5mbGF0ZV90YWJsZSA9ICh0eXBlLCBsZW5zLCBsZW5zX2luZGV4LCBjb2RlcywgdGFibGUsIHRhYmxlX2luZGV4LCB3b3JrLCBvcHRzKSA9PgogIHsKICAgIGNvbnN0IGJpdHMgPSBvcHRzLmJpdHM7CiAgICAgICAgLy9oZXJlID0gb3B0cy5oZXJlOyAvKiB0YWJsZSBlbnRyeSBmb3IgZHVwbGljYXRpb24gKi8KCiAgICBsZXQgbGVuID0gMDsgICAgICAgICAgICAgICAvKiBhIGNvZGUncyBsZW5ndGggaW4gYml0cyAqLwogICAgbGV0IHN5bSA9IDA7ICAgICAgICAgICAgICAgLyogaW5kZXggb2YgY29kZSBzeW1ib2xzICovCiAgICBsZXQgbWluID0gMCwgbWF4ID0gMDsgICAgICAgICAgLyogbWluaW11bSBhbmQgbWF4aW11bSBjb2RlIGxlbmd0aHMgKi8KICAgIGxldCByb290ID0gMDsgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBpbmRleCBiaXRzIGZvciByb290IHRhYmxlICovCiAgICBsZXQgY3VyciA9IDA7ICAgICAgICAgICAgICAvKiBudW1iZXIgb2YgaW5kZXggYml0cyBmb3IgY3VycmVudCB0YWJsZSAqLwogICAgbGV0IGRyb3AgPSAwOyAgICAgICAgICAgICAgLyogY29kZSBiaXRzIHRvIGRyb3AgZm9yIHN1Yi10YWJsZSAqLwogICAgbGV0IGxlZnQgPSAwOyAgICAgICAgICAgICAgICAgICAvKiBudW1iZXIgb2YgcHJlZml4IGNvZGVzIGF2YWlsYWJsZSAqLwogICAgbGV0IHVzZWQgPSAwOyAgICAgICAgICAgICAgLyogY29kZSBlbnRyaWVzIGluIHRhYmxlIHVzZWQgKi8KICAgIGxldCBodWZmID0gMDsgICAgICAgICAgICAgIC8qIEh1ZmZtYW4gY29kZSAqLwogICAgbGV0IGluY3I7ICAgICAgICAgICAgICAvKiBmb3IgaW5jcmVtZW50aW5nIGNvZGUsIGluZGV4ICovCiAgICBsZXQgZmlsbDsgICAgICAgICAgICAgIC8qIGluZGV4IGZvciByZXBsaWNhdGluZyBlbnRyaWVzICovCiAgICBsZXQgbG93OyAgICAgICAgICAgICAgIC8qIGxvdyBiaXRzIGZvciBjdXJyZW50IHJvb3QgZW50cnkgKi8KICAgIGxldCBtYXNrOyAgICAgICAgICAgICAgLyogbWFzayBmb3IgbG93IHJvb3QgYml0cyAqLwogICAgbGV0IG5leHQ7ICAgICAgICAgICAgIC8qIG5leHQgYXZhaWxhYmxlIHNwYWNlIGluIHRhYmxlICovCiAgICBsZXQgYmFzZSA9IG51bGw7ICAgICAvKiBiYXNlIHZhbHVlIHRhYmxlIHRvIHVzZSAqLwogICAgbGV0IGJhc2VfaW5kZXggPSAwOwogIC8vICBsZXQgc2hvZXh0cmE7ICAgIC8qIGV4dHJhIGJpdHMgdGFibGUgdG8gdXNlICovCiAgICBsZXQgZW5kOyAgICAgICAgICAgICAgICAgICAgLyogdXNlIGJhc2UgYW5kIGV4dHJhIGZvciBzeW1ib2wgPiBlbmQgKi8KICAgIGNvbnN0IGNvdW50ID0gbmV3IFVpbnQxNkFycmF5KE1BWEJJVFMgKyAxKTsgLy9bTUFYQklUUysxXTsgICAgLyogbnVtYmVyIG9mIGNvZGVzIG9mIGVhY2ggbGVuZ3RoICovCiAgICBjb25zdCBvZmZzID0gbmV3IFVpbnQxNkFycmF5KE1BWEJJVFMgKyAxKTsgLy9bTUFYQklUUysxXTsgICAgIC8qIG9mZnNldHMgaW4gdGFibGUgZm9yIGVhY2ggbGVuZ3RoICovCiAgICBsZXQgZXh0cmEgPSBudWxsOwogICAgbGV0IGV4dHJhX2luZGV4ID0gMDsKCiAgICBsZXQgaGVyZV9iaXRzLCBoZXJlX29wLCBoZXJlX3ZhbDsKCiAgICAvKgogICAgIFByb2Nlc3MgYSBzZXQgb2YgY29kZSBsZW5ndGhzIHRvIGNyZWF0ZSBhIGNhbm9uaWNhbCBIdWZmbWFuIGNvZGUuICBUaGUKICAgICBjb2RlIGxlbmd0aHMgYXJlIGxlbnNbMC4uY29kZXMtMV0uICBFYWNoIGxlbmd0aCBjb3JyZXNwb25kcyB0byB0aGUKICAgICBzeW1ib2xzIDAuLmNvZGVzLTEuICBUaGUgSHVmZm1hbiBjb2RlIGlzIGdlbmVyYXRlZCBieSBmaXJzdCBzb3J0aW5nIHRoZQogICAgIHN5bWJvbHMgYnkgbGVuZ3RoIGZyb20gc2hvcnQgdG8gbG9uZywgYW5kIHJldGFpbmluZyB0aGUgc3ltYm9sIG9yZGVyCiAgICAgZm9yIGNvZGVzIHdpdGggZXF1YWwgbGVuZ3Rocy4gIFRoZW4gdGhlIGNvZGUgc3RhcnRzIHdpdGggYWxsIHplcm8gYml0cwogICAgIGZvciB0aGUgZmlyc3QgY29kZSBvZiB0aGUgc2hvcnRlc3QgbGVuZ3RoLCBhbmQgdGhlIGNvZGVzIGFyZSBpbnRlZ2VyCiAgICAgaW5jcmVtZW50cyBmb3IgdGhlIHNhbWUgbGVuZ3RoLCBhbmQgemVyb3MgYXJlIGFwcGVuZGVkIGFzIHRoZSBsZW5ndGgKICAgICBpbmNyZWFzZXMuICBGb3IgdGhlIGRlZmxhdGUgZm9ybWF0LCB0aGVzZSBiaXRzIGFyZSBzdG9yZWQgYmFja3dhcmRzCiAgICAgZnJvbSB0aGVpciBtb3JlIG5hdHVyYWwgaW50ZWdlciBpbmNyZW1lbnQgb3JkZXJpbmcsIGFuZCBzbyB3aGVuIHRoZQogICAgIGRlY29kaW5nIHRhYmxlcyBhcmUgYnVpbHQgaW4gdGhlIGxhcmdlIGxvb3AgYmVsb3csIHRoZSBpbnRlZ2VyIGNvZGVzCiAgICAgYXJlIGluY3JlbWVudGVkIGJhY2t3YXJkcy4KCiAgICAgVGhpcyByb3V0aW5lIGFzc3VtZXMsIGJ1dCBkb2VzIG5vdCBjaGVjaywgdGhhdCBhbGwgb2YgdGhlIGVudHJpZXMgaW4KICAgICBsZW5zW10gYXJlIGluIHRoZSByYW5nZSAwLi5NQVhCSVRTLiAgVGhlIGNhbGxlciBtdXN0IGFzc3VyZSB0aGlzLgogICAgIDEuLk1BWEJJVFMgaXMgaW50ZXJwcmV0ZWQgYXMgdGhhdCBjb2RlIGxlbmd0aC4gIHplcm8gbWVhbnMgdGhhdCB0aGF0CiAgICAgc3ltYm9sIGRvZXMgbm90IG9jY3VyIGluIHRoaXMgY29kZS4KCiAgICAgVGhlIGNvZGVzIGFyZSBzb3J0ZWQgYnkgY29tcHV0aW5nIGEgY291bnQgb2YgY29kZXMgZm9yIGVhY2ggbGVuZ3RoLAogICAgIGNyZWF0aW5nIGZyb20gdGhhdCBhIHRhYmxlIG9mIHN0YXJ0aW5nIGluZGljZXMgZm9yIGVhY2ggbGVuZ3RoIGluIHRoZQogICAgIHNvcnRlZCB0YWJsZSwgYW5kIHRoZW4gZW50ZXJpbmcgdGhlIHN5bWJvbHMgaW4gb3JkZXIgaW4gdGhlIHNvcnRlZAogICAgIHRhYmxlLiAgVGhlIHNvcnRlZCB0YWJsZSBpcyB3b3JrW10sIHdpdGggdGhhdCBzcGFjZSBiZWluZyBwcm92aWRlZCBieQogICAgIHRoZSBjYWxsZXIuCgogICAgIFRoZSBsZW5ndGggY291bnRzIGFyZSB1c2VkIGZvciBvdGhlciBwdXJwb3NlcyBhcyB3ZWxsLCBpLmUuIGZpbmRpbmcKICAgICB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBsZW5ndGggY29kZXMsIGRldGVybWluaW5nIGlmIHRoZXJlIGFyZSBhbnkKICAgICBjb2RlcyBhdCBhbGwsIGNoZWNraW5nIGZvciBhIHZhbGlkIHNldCBvZiBsZW5ndGhzLCBhbmQgbG9va2luZyBhaGVhZAogICAgIGF0IGxlbmd0aCBjb3VudHMgdG8gZGV0ZXJtaW5lIHN1Yi10YWJsZSBzaXplcyB3aGVuIGJ1aWxkaW5nIHRoZQogICAgIGRlY29kaW5nIHRhYmxlcy4KICAgICAqLwoKICAgIC8qIGFjY3VtdWxhdGUgbGVuZ3RocyBmb3IgY29kZXMgKGFzc3VtZXMgbGVuc1tdIGFsbCBpbiAwLi5NQVhCSVRTKSAqLwogICAgZm9yIChsZW4gPSAwOyBsZW4gPD0gTUFYQklUUzsgbGVuKyspIHsKICAgICAgY291bnRbbGVuXSA9IDA7CiAgICB9CiAgICBmb3IgKHN5bSA9IDA7IHN5bSA8IGNvZGVzOyBzeW0rKykgewogICAgICBjb3VudFtsZW5zW2xlbnNfaW5kZXggKyBzeW1dXSsrOwogICAgfQoKICAgIC8qIGJvdW5kIGNvZGUgbGVuZ3RocywgZm9yY2Ugcm9vdCB0byBiZSB3aXRoaW4gY29kZSBsZW5ndGhzICovCiAgICByb290ID0gYml0czsKICAgIGZvciAobWF4ID0gTUFYQklUUzsgbWF4ID49IDE7IG1heC0tKSB7CiAgICAgIGlmIChjb3VudFttYXhdICE9PSAwKSB7IGJyZWFrOyB9CiAgICB9CiAgICBpZiAocm9vdCA+IG1heCkgewogICAgICByb290ID0gbWF4OwogICAgfQogICAgaWYgKG1heCA9PT0gMCkgeyAgICAgICAgICAgICAgICAgICAgIC8qIG5vIHN5bWJvbHMgdG8gY29kZSBhdCBhbGwgKi8KICAgICAgLy90YWJsZS5vcFtvcHRzLnRhYmxlX2luZGV4XSA9IDY0OyAgLy9oZXJlLm9wID0gKHZhciBjaGFyKTY0OyAgICAvKiBpbnZhbGlkIGNvZGUgbWFya2VyICovCiAgICAgIC8vdGFibGUuYml0c1tvcHRzLnRhYmxlX2luZGV4XSA9IDE7ICAgLy9oZXJlLmJpdHMgPSAodmFyIGNoYXIpMTsKICAgICAgLy90YWJsZS52YWxbb3B0cy50YWJsZV9pbmRleCsrXSA9IDA7ICAgLy9oZXJlLnZhbCA9ICh2YXIgc2hvcnQpMDsKICAgICAgdGFibGVbdGFibGVfaW5kZXgrK10gPSAoMSA8PCAyNCkgfCAoNjQgPDwgMTYpIHwgMDsKCgogICAgICAvL3RhYmxlLm9wW29wdHMudGFibGVfaW5kZXhdID0gNjQ7CiAgICAgIC8vdGFibGUuYml0c1tvcHRzLnRhYmxlX2luZGV4XSA9IDE7CiAgICAgIC8vdGFibGUudmFsW29wdHMudGFibGVfaW5kZXgrK10gPSAwOwogICAgICB0YWJsZVt0YWJsZV9pbmRleCsrXSA9ICgxIDw8IDI0KSB8ICg2NCA8PCAxNikgfCAwOwoKICAgICAgb3B0cy5iaXRzID0gMTsKICAgICAgcmV0dXJuIDA7ICAgICAvKiBubyBzeW1ib2xzLCBidXQgd2FpdCBmb3IgZGVjb2RpbmcgdG8gcmVwb3J0IGVycm9yICovCiAgICB9CiAgICBmb3IgKG1pbiA9IDE7IG1pbiA8IG1heDsgbWluKyspIHsKICAgICAgaWYgKGNvdW50W21pbl0gIT09IDApIHsgYnJlYWs7IH0KICAgIH0KICAgIGlmIChyb290IDwgbWluKSB7CiAgICAgIHJvb3QgPSBtaW47CiAgICB9CgogICAgLyogY2hlY2sgZm9yIGFuIG92ZXItc3Vic2NyaWJlZCBvciBpbmNvbXBsZXRlIHNldCBvZiBsZW5ndGhzICovCiAgICBsZWZ0ID0gMTsKICAgIGZvciAobGVuID0gMTsgbGVuIDw9IE1BWEJJVFM7IGxlbisrKSB7CiAgICAgIGxlZnQgPDw9IDE7CiAgICAgIGxlZnQgLT0gY291bnRbbGVuXTsKICAgICAgaWYgKGxlZnQgPCAwKSB7CiAgICAgICAgcmV0dXJuIC0xOwogICAgICB9ICAgICAgICAvKiBvdmVyLXN1YnNjcmliZWQgKi8KICAgIH0KICAgIGlmIChsZWZ0ID4gMCAmJiAodHlwZSA9PT0gQ09ERVMkMSB8fCBtYXggIT09IDEpKSB7CiAgICAgIHJldHVybiAtMTsgICAgICAgICAgICAgICAgICAgICAgLyogaW5jb21wbGV0ZSBzZXQgKi8KICAgIH0KCiAgICAvKiBnZW5lcmF0ZSBvZmZzZXRzIGludG8gc3ltYm9sIHRhYmxlIGZvciBlYWNoIGxlbmd0aCBmb3Igc29ydGluZyAqLwogICAgb2Zmc1sxXSA9IDA7CiAgICBmb3IgKGxlbiA9IDE7IGxlbiA8IE1BWEJJVFM7IGxlbisrKSB7CiAgICAgIG9mZnNbbGVuICsgMV0gPSBvZmZzW2xlbl0gKyBjb3VudFtsZW5dOwogICAgfQoKICAgIC8qIHNvcnQgc3ltYm9scyBieSBsZW5ndGgsIGJ5IHN5bWJvbCBvcmRlciB3aXRoaW4gZWFjaCBsZW5ndGggKi8KICAgIGZvciAoc3ltID0gMDsgc3ltIDwgY29kZXM7IHN5bSsrKSB7CiAgICAgIGlmIChsZW5zW2xlbnNfaW5kZXggKyBzeW1dICE9PSAwKSB7CiAgICAgICAgd29ya1tvZmZzW2xlbnNbbGVuc19pbmRleCArIHN5bV1dKytdID0gc3ltOwogICAgICB9CiAgICB9CgogICAgLyoKICAgICBDcmVhdGUgYW5kIGZpbGwgaW4gZGVjb2RpbmcgdGFibGVzLiAgSW4gdGhpcyBsb29wLCB0aGUgdGFibGUgYmVpbmcKICAgICBmaWxsZWQgaXMgYXQgbmV4dCBhbmQgaGFzIGN1cnIgaW5kZXggYml0cy4gIFRoZSBjb2RlIGJlaW5nIHVzZWQgaXMgaHVmZgogICAgIHdpdGggbGVuZ3RoIGxlbi4gIFRoYXQgY29kZSBpcyBjb252ZXJ0ZWQgdG8gYW4gaW5kZXggYnkgZHJvcHBpbmcgZHJvcAogICAgIGJpdHMgb2ZmIG9mIHRoZSBib3R0b20uICBGb3IgY29kZXMgd2hlcmUgbGVuIGlzIGxlc3MgdGhhbiBkcm9wICsgY3VyciwKICAgICB0aG9zZSB0b3AgZHJvcCArIGN1cnIgLSBsZW4gYml0cyBhcmUgaW5jcmVtZW50ZWQgdGhyb3VnaCBhbGwgdmFsdWVzIHRvCiAgICAgZmlsbCB0aGUgdGFibGUgd2l0aCByZXBsaWNhdGVkIGVudHJpZXMuCgogICAgIHJvb3QgaXMgdGhlIG51bWJlciBvZiBpbmRleCBiaXRzIGZvciB0aGUgcm9vdCB0YWJsZS4gIFdoZW4gbGVuIGV4Y2VlZHMKICAgICByb290LCBzdWItdGFibGVzIGFyZSBjcmVhdGVkIHBvaW50ZWQgdG8gYnkgdGhlIHJvb3QgZW50cnkgd2l0aCBhbiBpbmRleAogICAgIG9mIHRoZSBsb3cgcm9vdCBiaXRzIG9mIGh1ZmYuICBUaGlzIGlzIHNhdmVkIGluIGxvdyB0byBjaGVjayBmb3Igd2hlbiBhCiAgICAgbmV3IHN1Yi10YWJsZSBzaG91bGQgYmUgc3RhcnRlZC4gIGRyb3AgaXMgemVybyB3aGVuIHRoZSByb290IHRhYmxlIGlzCiAgICAgYmVpbmcgZmlsbGVkLCBhbmQgZHJvcCBpcyByb290IHdoZW4gc3ViLXRhYmxlcyBhcmUgYmVpbmcgZmlsbGVkLgoKICAgICBXaGVuIGEgbmV3IHN1Yi10YWJsZSBpcyBuZWVkZWQsIGl0IGlzIG5lY2Vzc2FyeSB0byBsb29rIGFoZWFkIGluIHRoZQogICAgIGNvZGUgbGVuZ3RocyB0byBkZXRlcm1pbmUgd2hhdCBzaXplIHN1Yi10YWJsZSBpcyBuZWVkZWQuICBUaGUgbGVuZ3RoCiAgICAgY291bnRzIGFyZSB1c2VkIGZvciB0aGlzLCBhbmQgc28gY291bnRbXSBpcyBkZWNyZW1lbnRlZCBhcyBjb2RlcyBhcmUKICAgICBlbnRlcmVkIGluIHRoZSB0YWJsZXMuCgogICAgIHVzZWQga2VlcHMgdHJhY2sgb2YgaG93IG1hbnkgdGFibGUgZW50cmllcyBoYXZlIGJlZW4gYWxsb2NhdGVkIGZyb20gdGhlCiAgICAgcHJvdmlkZWQgKnRhYmxlIHNwYWNlLiAgSXQgaXMgY2hlY2tlZCBmb3IgTEVOUyBhbmQgRElTVCB0YWJsZXMgYWdhaW5zdAogICAgIHRoZSBjb25zdGFudHMgRU5PVUdIX0xFTlMgYW5kIEVOT1VHSF9ESVNUUyB0byBndWFyZCBhZ2FpbnN0IGNoYW5nZXMgaW4KICAgICB0aGUgaW5pdGlhbCByb290IHRhYmxlIHNpemUgY29uc3RhbnRzLiAgU2VlIHRoZSBjb21tZW50cyBpbiBpbmZ0cmVlcy5oCiAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogICAgIHN5bSBpbmNyZW1lbnRzIHRocm91Z2ggYWxsIHN5bWJvbHMsIGFuZCB0aGUgbG9vcCB0ZXJtaW5hdGVzIHdoZW4KICAgICBhbGwgY29kZXMgb2YgbGVuZ3RoIG1heCwgaS5lLiBhbGwgY29kZXMsIGhhdmUgYmVlbiBwcm9jZXNzZWQuICBUaGlzCiAgICAgcm91dGluZSBwZXJtaXRzIGluY29tcGxldGUgY29kZXMsIHNvIGFub3RoZXIgbG9vcCBhZnRlciB0aGlzIG9uZSBmaWxscwogICAgIGluIHRoZSByZXN0IG9mIHRoZSBkZWNvZGluZyB0YWJsZXMgd2l0aCBpbnZhbGlkIGNvZGUgbWFya2Vycy4KICAgICAqLwoKICAgIC8qIHNldCB1cCBmb3IgY29kZSB0eXBlICovCiAgICAvLyBwb29yIG1hbiBvcHRpbWl6YXRpb24gLSB1c2UgaWYtZWxzZSBpbnN0ZWFkIG9mIHN3aXRjaCwKICAgIC8vIHRvIGF2b2lkIGRlb3B0cyBpbiBvbGQgdjgKICAgIGlmICh0eXBlID09PSBDT0RFUyQxKSB7CiAgICAgIGJhc2UgPSBleHRyYSA9IHdvcms7ICAgIC8qIGR1bW15IHZhbHVlLS1ub3QgdXNlZCAqLwogICAgICBlbmQgPSAxOTsKCiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IExFTlMkMSkgewogICAgICBiYXNlID0gbGJhc2U7CiAgICAgIGJhc2VfaW5kZXggLT0gMjU3OwogICAgICBleHRyYSA9IGxleHQ7CiAgICAgIGV4dHJhX2luZGV4IC09IDI1NzsKICAgICAgZW5kID0gMjU2OwoKICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAvKiBESVNUUyAqLwogICAgICBiYXNlID0gZGJhc2U7CiAgICAgIGV4dHJhID0gZGV4dDsKICAgICAgZW5kID0gLTE7CiAgICB9CgogICAgLyogaW5pdGlhbGl6ZSBvcHRzIGZvciBsb29wICovCiAgICBodWZmID0gMDsgICAgICAgICAgICAgICAgICAgLyogc3RhcnRpbmcgY29kZSAqLwogICAgc3ltID0gMDsgICAgICAgICAgICAgICAgICAgIC8qIHN0YXJ0aW5nIGNvZGUgc3ltYm9sICovCiAgICBsZW4gPSBtaW47ICAgICAgICAgICAgICAgICAgLyogc3RhcnRpbmcgY29kZSBsZW5ndGggKi8KICAgIG5leHQgPSB0YWJsZV9pbmRleDsgICAgICAgICAgICAgIC8qIGN1cnJlbnQgdGFibGUgdG8gZmlsbCBpbiAqLwogICAgY3VyciA9IHJvb3Q7ICAgICAgICAgICAgICAgIC8qIGN1cnJlbnQgdGFibGUgaW5kZXggYml0cyAqLwogICAgZHJvcCA9IDA7ICAgICAgICAgICAgICAgICAgIC8qIGN1cnJlbnQgYml0cyB0byBkcm9wIGZyb20gY29kZSBmb3IgaW5kZXggKi8KICAgIGxvdyA9IC0xOyAgICAgICAgICAgICAgICAgICAvKiB0cmlnZ2VyIG5ldyBzdWItdGFibGUgd2hlbiBsZW4gPiByb290ICovCiAgICB1c2VkID0gMSA8PCByb290OyAgICAgICAgICAvKiB1c2Ugcm9vdCB0YWJsZSBlbnRyaWVzICovCiAgICBtYXNrID0gdXNlZCAtIDE7ICAgICAgICAgICAgLyogbWFzayBmb3IgY29tcGFyaW5nIGxvdyAqLwoKICAgIC8qIGNoZWNrIGF2YWlsYWJsZSB0YWJsZSBzcGFjZSAqLwogICAgaWYgKCh0eXBlID09PSBMRU5TJDEgJiYgdXNlZCA+IEVOT1VHSF9MRU5TJDEpIHx8CiAgICAgICh0eXBlID09PSBESVNUUyQxICYmIHVzZWQgPiBFTk9VR0hfRElTVFMkMSkpIHsKICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgLyogcHJvY2VzcyBhbGwgY29kZXMgYW5kIG1ha2UgdGFibGUgZW50cmllcyAqLwogICAgZm9yICg7OykgewogICAgICAvKiBjcmVhdGUgdGFibGUgZW50cnkgKi8KICAgICAgaGVyZV9iaXRzID0gbGVuIC0gZHJvcDsKICAgICAgaWYgKHdvcmtbc3ltXSA8IGVuZCkgewogICAgICAgIGhlcmVfb3AgPSAwOwogICAgICAgIGhlcmVfdmFsID0gd29ya1tzeW1dOwogICAgICB9CiAgICAgIGVsc2UgaWYgKHdvcmtbc3ltXSA+IGVuZCkgewogICAgICAgIGhlcmVfb3AgPSBleHRyYVtleHRyYV9pbmRleCArIHdvcmtbc3ltXV07CiAgICAgICAgaGVyZV92YWwgPSBiYXNlW2Jhc2VfaW5kZXggKyB3b3JrW3N5bV1dOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIGhlcmVfb3AgPSAzMiArIDY0OyAgICAgICAgIC8qIGVuZCBvZiBibG9jayAqLwogICAgICAgIGhlcmVfdmFsID0gMDsKICAgICAgfQoKICAgICAgLyogcmVwbGljYXRlIGZvciB0aG9zZSBpbmRpY2VzIHdpdGggbG93IGxlbiBiaXRzIGVxdWFsIHRvIGh1ZmYgKi8KICAgICAgaW5jciA9IDEgPDwgKGxlbiAtIGRyb3ApOwogICAgICBmaWxsID0gMSA8PCBjdXJyOwogICAgICBtaW4gPSBmaWxsOyAgICAgICAgICAgICAgICAgLyogc2F2ZSBvZmZzZXQgdG8gbmV4dCB0YWJsZSAqLwogICAgICBkbyB7CiAgICAgICAgZmlsbCAtPSBpbmNyOwogICAgICAgIHRhYmxlW25leHQgKyAoaHVmZiA+PiBkcm9wKSArIGZpbGxdID0gKGhlcmVfYml0cyA8PCAyNCkgfCAoaGVyZV9vcCA8PCAxNikgfCBoZXJlX3ZhbCB8MDsKICAgICAgfSB3aGlsZSAoZmlsbCAhPT0gMCk7CgogICAgICAvKiBiYWNrd2FyZHMgaW5jcmVtZW50IHRoZSBsZW4tYml0IGNvZGUgaHVmZiAqLwogICAgICBpbmNyID0gMSA8PCAobGVuIC0gMSk7CiAgICAgIHdoaWxlIChodWZmICYgaW5jcikgewogICAgICAgIGluY3IgPj49IDE7CiAgICAgIH0KICAgICAgaWYgKGluY3IgIT09IDApIHsKICAgICAgICBodWZmICY9IGluY3IgLSAxOwogICAgICAgIGh1ZmYgKz0gaW5jcjsKICAgICAgfSBlbHNlIHsKICAgICAgICBodWZmID0gMDsKICAgICAgfQoKICAgICAgLyogZ28gdG8gbmV4dCBzeW1ib2wsIHVwZGF0ZSBjb3VudCwgbGVuICovCiAgICAgIHN5bSsrOwogICAgICBpZiAoLS1jb3VudFtsZW5dID09PSAwKSB7CiAgICAgICAgaWYgKGxlbiA9PT0gbWF4KSB7IGJyZWFrOyB9CiAgICAgICAgbGVuID0gbGVuc1tsZW5zX2luZGV4ICsgd29ya1tzeW1dXTsKICAgICAgfQoKICAgICAgLyogY3JlYXRlIG5ldyBzdWItdGFibGUgaWYgbmVlZGVkICovCiAgICAgIGlmIChsZW4gPiByb290ICYmIChodWZmICYgbWFzaykgIT09IGxvdykgewogICAgICAgIC8qIGlmIGZpcnN0IHRpbWUsIHRyYW5zaXRpb24gdG8gc3ViLXRhYmxlcyAqLwogICAgICAgIGlmIChkcm9wID09PSAwKSB7CiAgICAgICAgICBkcm9wID0gcm9vdDsKICAgICAgICB9CgogICAgICAgIC8qIGluY3JlbWVudCBwYXN0IGxhc3QgdGFibGUgKi8KICAgICAgICBuZXh0ICs9IG1pbjsgICAgICAgICAgICAvKiBoZXJlIG1pbiBpcyAxIDw8IGN1cnIgKi8KCiAgICAgICAgLyogZGV0ZXJtaW5lIGxlbmd0aCBvZiBuZXh0IHRhYmxlICovCiAgICAgICAgY3VyciA9IGxlbiAtIGRyb3A7CiAgICAgICAgbGVmdCA9IDEgPDwgY3VycjsKICAgICAgICB3aGlsZSAoY3VyciArIGRyb3AgPCBtYXgpIHsKICAgICAgICAgIGxlZnQgLT0gY291bnRbY3VyciArIGRyb3BdOwogICAgICAgICAgaWYgKGxlZnQgPD0gMCkgeyBicmVhazsgfQogICAgICAgICAgY3VycisrOwogICAgICAgICAgbGVmdCA8PD0gMTsKICAgICAgICB9CgogICAgICAgIC8qIGNoZWNrIGZvciBlbm91Z2ggc3BhY2UgKi8KICAgICAgICB1c2VkICs9IDEgPDwgY3VycjsKICAgICAgICBpZiAoKHR5cGUgPT09IExFTlMkMSAmJiB1c2VkID4gRU5PVUdIX0xFTlMkMSkgfHwKICAgICAgICAgICh0eXBlID09PSBESVNUUyQxICYmIHVzZWQgPiBFTk9VR0hfRElTVFMkMSkpIHsKICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KCiAgICAgICAgLyogcG9pbnQgZW50cnkgaW4gcm9vdCB0YWJsZSB0byBzdWItdGFibGUgKi8KICAgICAgICBsb3cgPSBodWZmICYgbWFzazsKICAgICAgICAvKnRhYmxlLm9wW2xvd10gPSBjdXJyOwogICAgICAgIHRhYmxlLmJpdHNbbG93XSA9IHJvb3Q7CiAgICAgICAgdGFibGUudmFsW2xvd10gPSBuZXh0IC0gb3B0cy50YWJsZV9pbmRleDsqLwogICAgICAgIHRhYmxlW2xvd10gPSAocm9vdCA8PCAyNCkgfCAoY3VyciA8PCAxNikgfCAobmV4dCAtIHRhYmxlX2luZGV4KSB8MDsKICAgICAgfQogICAgfQoKICAgIC8qIGZpbGwgaW4gcmVtYWluaW5nIHRhYmxlIGVudHJ5IGlmIGNvZGUgaXMgaW5jb21wbGV0ZSAoZ3VhcmFudGVlZCB0byBoYXZlCiAgICAgYXQgbW9zdCBvbmUgcmVtYWluaW5nIGVudHJ5LCBzaW5jZSBpZiB0aGUgY29kZSBpcyBpbmNvbXBsZXRlLCB0aGUKICAgICBtYXhpbXVtIGNvZGUgbGVuZ3RoIHRoYXQgd2FzIGFsbG93ZWQgdG8gZ2V0IHRoaXMgZmFyIGlzIG9uZSBiaXQpICovCiAgICBpZiAoaHVmZiAhPT0gMCkgewogICAgICAvL3RhYmxlLm9wW25leHQgKyBodWZmXSA9IDY0OyAgICAgICAgICAgIC8qIGludmFsaWQgY29kZSBtYXJrZXIgKi8KICAgICAgLy90YWJsZS5iaXRzW25leHQgKyBodWZmXSA9IGxlbiAtIGRyb3A7CiAgICAgIC8vdGFibGUudmFsW25leHQgKyBodWZmXSA9IDA7CiAgICAgIHRhYmxlW25leHQgKyBodWZmXSA9ICgobGVuIC0gZHJvcCkgPDwgMjQpIHwgKDY0IDw8IDE2KSB8MDsKICAgIH0KCiAgICAvKiBzZXQgcmV0dXJuIHBhcmFtZXRlcnMgKi8KICAgIC8vb3B0cy50YWJsZV9pbmRleCArPSB1c2VkOwogICAgb3B0cy5iaXRzID0gcm9vdDsKICAgIHJldHVybiAwOwogIH07CgoKICB2YXIgaW5mdHJlZXMgPSBpbmZsYXRlX3RhYmxlOwoKICAvLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAvLyAoQykgMjAxNC0yMDE3IFZpdGFseSBQdXpyaW4gYW5kIEFuZHJleSBUdXBpdHNpbgogIC8vCiAgLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAvLyB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKICAvLyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogIC8vCiAgLy8gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCiAgLy8gaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogIC8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKICAvLwogIC8vIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQogIC8vICAgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpbiB0aGUgcHJvZHVjdCBkb2N1bWVudGF0aW9uIHdvdWxkIGJlCiAgLy8gICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogIC8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCiAgLy8gICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgLy8gMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KCgoKCgoKICBjb25zdCBDT0RFUyA9IDA7CiAgY29uc3QgTEVOUyA9IDE7CiAgY29uc3QgRElTVFMgPSAyOwoKICAvKiBQdWJsaWMgY29uc3RhbnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgogIGNvbnN0IHsKICAgIFpfRklOSVNIOiBaX0ZJTklTSCQxLCBaX0JMT0NLLCBaX1RSRUVTLAogICAgWl9PSzogWl9PSyQxLCBaX1NUUkVBTV9FTkQ6IFpfU1RSRUFNX0VORCQxLCBaX05FRURfRElDVDogWl9ORUVEX0RJQ1QkMSwgWl9TVFJFQU1fRVJST1I6IFpfU1RSRUFNX0VSUk9SJDEsIFpfREFUQV9FUlJPUjogWl9EQVRBX0VSUk9SJDEsIFpfTUVNX0VSUk9SOiBaX01FTV9FUlJPUiQxLCBaX0JVRl9FUlJPUiwKICAgIFpfREVGTEFURUQKICB9ID0gY29uc3RhbnRzJDI7CgoKICAvKiBTVEFURVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgoKICBjb25zdCAgICBIRUFEID0gMTsgICAgICAgLyogaTogd2FpdGluZyBmb3IgbWFnaWMgaGVhZGVyICovCiAgY29uc3QgICAgRkxBR1MgPSAyOyAgICAgIC8qIGk6IHdhaXRpbmcgZm9yIG1ldGhvZCBhbmQgZmxhZ3MgKGd6aXApICovCiAgY29uc3QgICAgVElNRSA9IDM7ICAgICAgIC8qIGk6IHdhaXRpbmcgZm9yIG1vZGlmaWNhdGlvbiB0aW1lIChnemlwKSAqLwogIGNvbnN0ICAgIE9TID0gNDsgICAgICAgICAvKiBpOiB3YWl0aW5nIGZvciBleHRyYSBmbGFncyBhbmQgb3BlcmF0aW5nIHN5c3RlbSAoZ3ppcCkgKi8KICBjb25zdCAgICBFWExFTiA9IDU7ICAgICAgLyogaTogd2FpdGluZyBmb3IgZXh0cmEgbGVuZ3RoIChnemlwKSAqLwogIGNvbnN0ICAgIEVYVFJBID0gNjsgICAgICAvKiBpOiB3YWl0aW5nIGZvciBleHRyYSBieXRlcyAoZ3ppcCkgKi8KICBjb25zdCAgICBOQU1FID0gNzsgICAgICAgLyogaTogd2FpdGluZyBmb3IgZW5kIG9mIGZpbGUgbmFtZSAoZ3ppcCkgKi8KICBjb25zdCAgICBDT01NRU5UID0gODsgICAgLyogaTogd2FpdGluZyBmb3IgZW5kIG9mIGNvbW1lbnQgKGd6aXApICovCiAgY29uc3QgICAgSENSQyA9IDk7ICAgICAgIC8qIGk6IHdhaXRpbmcgZm9yIGhlYWRlciBjcmMgKGd6aXApICovCiAgY29uc3QgICAgRElDVElEID0gMTA7ICAgIC8qIGk6IHdhaXRpbmcgZm9yIGRpY3Rpb25hcnkgY2hlY2sgdmFsdWUgKi8KICBjb25zdCAgICBESUNUID0gMTE7ICAgICAgLyogd2FpdGluZyBmb3IgaW5mbGF0ZVNldERpY3Rpb25hcnkoKSBjYWxsICovCiAgY29uc3QgICAgICAgIFRZUEUgPSAxMjsgICAgICAvKiBpOiB3YWl0aW5nIGZvciB0eXBlIGJpdHMsIGluY2x1ZGluZyBsYXN0LWZsYWcgYml0ICovCiAgY29uc3QgICAgICAgIFRZUEVETyA9IDEzOyAgICAvKiBpOiBzYW1lLCBidXQgc2tpcCBjaGVjayB0byBleGl0IGluZmxhdGUgb24gbmV3IGJsb2NrICovCiAgY29uc3QgICAgICAgIFNUT1JFRCA9IDE0OyAgICAvKiBpOiB3YWl0aW5nIGZvciBzdG9yZWQgc2l6ZSAobGVuZ3RoIGFuZCBjb21wbGVtZW50KSAqLwogIGNvbnN0ICAgICAgICBDT1BZXyA9IDE1OyAgICAgLyogaS9vOiBzYW1lIGFzIENPUFkgYmVsb3csIGJ1dCBvbmx5IGZpcnN0IHRpbWUgaW4gKi8KICBjb25zdCAgICAgICAgQ09QWSA9IDE2OyAgICAgIC8qIGkvbzogd2FpdGluZyBmb3IgaW5wdXQgb3Igb3V0cHV0IHRvIGNvcHkgc3RvcmVkIGJsb2NrICovCiAgY29uc3QgICAgICAgIFRBQkxFID0gMTc7ICAgICAvKiBpOiB3YWl0aW5nIGZvciBkeW5hbWljIGJsb2NrIHRhYmxlIGxlbmd0aHMgKi8KICBjb25zdCAgICAgICAgTEVOTEVOUyA9IDE4OyAgIC8qIGk6IHdhaXRpbmcgZm9yIGNvZGUgbGVuZ3RoIGNvZGUgbGVuZ3RocyAqLwogIGNvbnN0ICAgICAgICBDT0RFTEVOUyA9IDE5OyAgLyogaTogd2FpdGluZyBmb3IgbGVuZ3RoL2xpdCBhbmQgZGlzdGFuY2UgY29kZSBsZW5ndGhzICovCiAgY29uc3QgICAgICAgICAgICBMRU5fID0gMjA7ICAgICAgLyogaTogc2FtZSBhcyBMRU4gYmVsb3csIGJ1dCBvbmx5IGZpcnN0IHRpbWUgaW4gKi8KICBjb25zdCAgICAgICAgICAgIExFTiA9IDIxOyAgICAgICAvKiBpOiB3YWl0aW5nIGZvciBsZW5ndGgvbGl0L2VvYiBjb2RlICovCiAgY29uc3QgICAgICAgICAgICBMRU5FWFQgPSAyMjsgICAgLyogaTogd2FpdGluZyBmb3IgbGVuZ3RoIGV4dHJhIGJpdHMgKi8KICBjb25zdCAgICAgICAgICAgIERJU1QgPSAyMzsgICAgICAvKiBpOiB3YWl0aW5nIGZvciBkaXN0YW5jZSBjb2RlICovCiAgY29uc3QgICAgICAgICAgICBESVNURVhUID0gMjQ7ICAgLyogaTogd2FpdGluZyBmb3IgZGlzdGFuY2UgZXh0cmEgYml0cyAqLwogIGNvbnN0ICAgICAgICAgICAgTUFUQ0ggPSAyNTsgICAgIC8qIG86IHdhaXRpbmcgZm9yIG91dHB1dCBzcGFjZSB0byBjb3B5IHN0cmluZyAqLwogIGNvbnN0ICAgICAgICAgICAgTElUID0gMjY7ICAgICAgIC8qIG86IHdhaXRpbmcgZm9yIG91dHB1dCBzcGFjZSB0byB3cml0ZSBsaXRlcmFsICovCiAgY29uc3QgICAgQ0hFQ0sgPSAyNzsgICAgIC8qIGk6IHdhaXRpbmcgZm9yIDMyLWJpdCBjaGVjayB2YWx1ZSAqLwogIGNvbnN0ICAgIExFTkdUSCA9IDI4OyAgICAvKiBpOiB3YWl0aW5nIGZvciAzMi1iaXQgbGVuZ3RoIChnemlwKSAqLwogIGNvbnN0ICAgIERPTkUgPSAyOTsgICAgICAvKiBmaW5pc2hlZCBjaGVjaywgZG9uZSAtLSByZW1haW4gaGVyZSB1bnRpbCByZXNldCAqLwogIGNvbnN0ICAgIEJBRCA9IDMwOyAgICAgICAvKiBnb3QgYSBkYXRhIGVycm9yIC0tIHJlbWFpbiBoZXJlIHVudGlsIHJlc2V0ICovCiAgY29uc3QgICAgTUVNID0gMzE7ICAgICAgIC8qIGdvdCBhbiBpbmZsYXRlKCkgbWVtb3J5IGVycm9yIC0tIHJlbWFpbiBoZXJlIHVudGlsIHJlc2V0ICovCiAgY29uc3QgICAgU1lOQyA9IDMyOyAgICAgIC8qIGxvb2tpbmcgZm9yIHN5bmNocm9uaXphdGlvbiBieXRlcyB0byByZXN0YXJ0IGluZmxhdGUoKSAqLwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCgogIGNvbnN0IEVOT1VHSF9MRU5TID0gODUyOwogIGNvbnN0IEVOT1VHSF9ESVNUUyA9IDU5MjsKICAvL2NvbnN0IEVOT1VHSCA9ICAoRU5PVUdIX0xFTlMrRU5PVUdIX0RJU1RTKTsKCiAgY29uc3QgTUFYX1dCSVRTID0gMTU7CiAgLyogMzJLIExaNzcgd2luZG93ICovCiAgY29uc3QgREVGX1dCSVRTID0gTUFYX1dCSVRTOwoKCiAgY29uc3QgenN3YXAzMiA9IChxKSA9PiB7CgogICAgcmV0dXJuICAoKChxID4+PiAyNCkgJiAweGZmKSArCiAgICAgICAgICAgICgocSA+Pj4gOCkgJiAweGZmMDApICsKICAgICAgICAgICAgKChxICYgMHhmZjAwKSA8PCA4KSArCiAgICAgICAgICAgICgocSAmIDB4ZmYpIDw8IDI0KSk7CiAgfTsKCgogIGZ1bmN0aW9uIEluZmxhdGVTdGF0ZSgpIHsKICAgIHRoaXMubW9kZSA9IDA7ICAgICAgICAgICAgIC8qIGN1cnJlbnQgaW5mbGF0ZSBtb2RlICovCiAgICB0aGlzLmxhc3QgPSBmYWxzZTsgICAgICAgICAgLyogdHJ1ZSBpZiBwcm9jZXNzaW5nIGxhc3QgYmxvY2sgKi8KICAgIHRoaXMud3JhcCA9IDA7ICAgICAgICAgICAgICAvKiBiaXQgMCB0cnVlIGZvciB6bGliLCBiaXQgMSB0cnVlIGZvciBnemlwICovCiAgICB0aGlzLmhhdmVkaWN0ID0gZmFsc2U7ICAgICAgLyogdHJ1ZSBpZiBkaWN0aW9uYXJ5IHByb3ZpZGVkICovCiAgICB0aGlzLmZsYWdzID0gMDsgICAgICAgICAgICAgLyogZ3ppcCBoZWFkZXIgbWV0aG9kIGFuZCBmbGFncyAoMCBpZiB6bGliKSAqLwogICAgdGhpcy5kbWF4ID0gMDsgICAgICAgICAgICAgIC8qIHpsaWIgaGVhZGVyIG1heCBkaXN0YW5jZSAoSU5GTEFURV9TVFJJQ1QpICovCiAgICB0aGlzLmNoZWNrID0gMDsgICAgICAgICAgICAgLyogcHJvdGVjdGVkIGNvcHkgb2YgY2hlY2sgdmFsdWUgKi8KICAgIHRoaXMudG90YWwgPSAwOyAgICAgICAgICAgICAvKiBwcm90ZWN0ZWQgY29weSBvZiBvdXRwdXQgY291bnQgKi8KICAgIC8vIFRPRE86IG1heSBiZSB7fQogICAgdGhpcy5oZWFkID0gbnVsbDsgICAgICAgICAgIC8qIHdoZXJlIHRvIHNhdmUgZ3ppcCBoZWFkZXIgaW5mb3JtYXRpb24gKi8KCiAgICAvKiBzbGlkaW5nIHdpbmRvdyAqLwogICAgdGhpcy53Yml0cyA9IDA7ICAgICAgICAgICAgIC8qIGxvZyBiYXNlIDIgb2YgcmVxdWVzdGVkIHdpbmRvdyBzaXplICovCiAgICB0aGlzLndzaXplID0gMDsgICAgICAgICAgICAgLyogd2luZG93IHNpemUgb3IgemVybyBpZiBub3QgdXNpbmcgd2luZG93ICovCiAgICB0aGlzLndoYXZlID0gMDsgICAgICAgICAgICAgLyogdmFsaWQgYnl0ZXMgaW4gdGhlIHdpbmRvdyAqLwogICAgdGhpcy53bmV4dCA9IDA7ICAgICAgICAgICAgIC8qIHdpbmRvdyB3cml0ZSBpbmRleCAqLwogICAgdGhpcy53aW5kb3cgPSBudWxsOyAgICAgICAgIC8qIGFsbG9jYXRlZCBzbGlkaW5nIHdpbmRvdywgaWYgbmVlZGVkICovCgogICAgLyogYml0IGFjY3VtdWxhdG9yICovCiAgICB0aGlzLmhvbGQgPSAwOyAgICAgICAgICAgICAgLyogaW5wdXQgYml0IGFjY3VtdWxhdG9yICovCiAgICB0aGlzLmJpdHMgPSAwOyAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGJpdHMgaW4gImluIiAqLwoKICAgIC8qIGZvciBzdHJpbmcgYW5kIHN0b3JlZCBibG9jayBjb3B5aW5nICovCiAgICB0aGlzLmxlbmd0aCA9IDA7ICAgICAgICAgICAgLyogbGl0ZXJhbCBvciBsZW5ndGggb2YgZGF0YSB0byBjb3B5ICovCiAgICB0aGlzLm9mZnNldCA9IDA7ICAgICAgICAgICAgLyogZGlzdGFuY2UgYmFjayB0byBjb3B5IHN0cmluZyBmcm9tICovCgogICAgLyogZm9yIHRhYmxlIGFuZCBjb2RlIGRlY29kaW5nICovCiAgICB0aGlzLmV4dHJhID0gMDsgICAgICAgICAgICAgLyogZXh0cmEgYml0cyBuZWVkZWQgKi8KCiAgICAvKiBmaXhlZCBhbmQgZHluYW1pYyBjb2RlIHRhYmxlcyAqLwogICAgdGhpcy5sZW5jb2RlID0gbnVsbDsgICAgICAgICAgLyogc3RhcnRpbmcgdGFibGUgZm9yIGxlbmd0aC9saXRlcmFsIGNvZGVzICovCiAgICB0aGlzLmRpc3Rjb2RlID0gbnVsbDsgICAgICAgICAvKiBzdGFydGluZyB0YWJsZSBmb3IgZGlzdGFuY2UgY29kZXMgKi8KICAgIHRoaXMubGVuYml0cyA9IDA7ICAgICAgICAgICAvKiBpbmRleCBiaXRzIGZvciBsZW5jb2RlICovCiAgICB0aGlzLmRpc3RiaXRzID0gMDsgICAgICAgICAgLyogaW5kZXggYml0cyBmb3IgZGlzdGNvZGUgKi8KCiAgICAvKiBkeW5hbWljIHRhYmxlIGJ1aWxkaW5nICovCiAgICB0aGlzLm5jb2RlID0gMDsgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGNvZGUgbGVuZ3RoIGNvZGUgbGVuZ3RocyAqLwogICAgdGhpcy5ubGVuID0gMDsgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBsZW5ndGggY29kZSBsZW5ndGhzICovCiAgICB0aGlzLm5kaXN0ID0gMDsgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGRpc3RhbmNlIGNvZGUgbGVuZ3RocyAqLwogICAgdGhpcy5oYXZlID0gMDsgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBjb2RlIGxlbmd0aHMgaW4gbGVuc1tdICovCiAgICB0aGlzLm5leHQgPSBudWxsOyAgICAgICAgICAgICAgLyogbmV4dCBhdmFpbGFibGUgc3BhY2UgaW4gY29kZXNbXSAqLwoKICAgIHRoaXMubGVucyA9IG5ldyBVaW50MTZBcnJheSgzMjApOyAvKiB0ZW1wb3Jhcnkgc3RvcmFnZSBmb3IgY29kZSBsZW5ndGhzICovCiAgICB0aGlzLndvcmsgPSBuZXcgVWludDE2QXJyYXkoMjg4KTsgLyogd29yayBhcmVhIGZvciBjb2RlIHRhYmxlIGJ1aWxkaW5nICovCgogICAgLyoKICAgICBiZWNhdXNlIHdlIGRvbid0IGhhdmUgcG9pbnRlcnMgaW4ganMsIHdlIHVzZSBsZW5jb2RlIGFuZCBkaXN0Y29kZSBkaXJlY3RseQogICAgIGFzIGJ1ZmZlcnMgc28gd2UgZG9uJ3QgbmVlZCBjb2RlcwogICAgKi8KICAgIC8vdGhpcy5jb2RlcyA9IG5ldyBJbnQzMkFycmF5KEVOT1VHSCk7ICAgICAgIC8qIHNwYWNlIGZvciBjb2RlIHRhYmxlcyAqLwogICAgdGhpcy5sZW5keW4gPSBudWxsOyAgICAgICAgICAgICAgLyogZHluYW1pYyB0YWJsZSBmb3IgbGVuZ3RoL2xpdGVyYWwgY29kZXMgKEpTIHNwZWNpZmljKSAqLwogICAgdGhpcy5kaXN0ZHluID0gbnVsbDsgICAgICAgICAgICAgLyogZHluYW1pYyB0YWJsZSBmb3IgZGlzdGFuY2UgY29kZXMgKEpTIHNwZWNpZmljKSAqLwogICAgdGhpcy5zYW5lID0gMDsgICAgICAgICAgICAgICAgICAgLyogaWYgZmFsc2UsIGFsbG93IGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciAqLwogICAgdGhpcy5iYWNrID0gMDsgICAgICAgICAgICAgICAgICAgLyogYml0cyBiYWNrIG9mIGxhc3QgdW5wcm9jZXNzZWQgbGVuZ3RoL2xpdCAqLwogICAgdGhpcy53YXMgPSAwOyAgICAgICAgICAgICAgICAgICAgLyogaW5pdGlhbCBsZW5ndGggb2YgbWF0Y2ggKi8KICB9CgoKICBjb25zdCBpbmZsYXRlUmVzZXRLZWVwID0gKHN0cm0pID0+IHsKCiAgICBpZiAoIXN0cm0gfHwgIXN0cm0uc3RhdGUpIHsgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDE7IH0KICAgIGNvbnN0IHN0YXRlID0gc3RybS5zdGF0ZTsKICAgIHN0cm0udG90YWxfaW4gPSBzdHJtLnRvdGFsX291dCA9IHN0YXRlLnRvdGFsID0gMDsKICAgIHN0cm0ubXNnID0gJyc7IC8qWl9OVUxMKi8KICAgIGlmIChzdGF0ZS53cmFwKSB7ICAgICAgIC8qIHRvIHN1cHBvcnQgaWxsLWNvbmNlaXZlZCBKYXZhIHRlc3Qgc3VpdGUgKi8KICAgICAgc3RybS5hZGxlciA9IHN0YXRlLndyYXAgJiAxOwogICAgfQogICAgc3RhdGUubW9kZSA9IEhFQUQ7CiAgICBzdGF0ZS5sYXN0ID0gMDsKICAgIHN0YXRlLmhhdmVkaWN0ID0gMDsKICAgIHN0YXRlLmRtYXggPSAzMjc2ODsKICAgIHN0YXRlLmhlYWQgPSBudWxsLypaX05VTEwqLzsKICAgIHN0YXRlLmhvbGQgPSAwOwogICAgc3RhdGUuYml0cyA9IDA7CiAgICAvL3N0YXRlLmxlbmNvZGUgPSBzdGF0ZS5kaXN0Y29kZSA9IHN0YXRlLm5leHQgPSBzdGF0ZS5jb2RlczsKICAgIHN0YXRlLmxlbmNvZGUgPSBzdGF0ZS5sZW5keW4gPSBuZXcgSW50MzJBcnJheShFTk9VR0hfTEVOUyk7CiAgICBzdGF0ZS5kaXN0Y29kZSA9IHN0YXRlLmRpc3RkeW4gPSBuZXcgSW50MzJBcnJheShFTk9VR0hfRElTVFMpOwoKICAgIHN0YXRlLnNhbmUgPSAxOwogICAgc3RhdGUuYmFjayA9IC0xOwogICAgLy9UcmFjZXYoKHN0ZGVyciwgImluZmxhdGU6IHJlc2V0XG4iKSk7CiAgICByZXR1cm4gWl9PSyQxOwogIH07CgoKICBjb25zdCBpbmZsYXRlUmVzZXQgPSAoc3RybSkgPT4gewoKICAgIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSkgeyByZXR1cm4gWl9TVFJFQU1fRVJST1IkMTsgfQogICAgY29uc3Qgc3RhdGUgPSBzdHJtLnN0YXRlOwogICAgc3RhdGUud3NpemUgPSAwOwogICAgc3RhdGUud2hhdmUgPSAwOwogICAgc3RhdGUud25leHQgPSAwOwogICAgcmV0dXJuIGluZmxhdGVSZXNldEtlZXAoc3RybSk7CgogIH07CgoKICBjb25zdCBpbmZsYXRlUmVzZXQyID0gKHN0cm0sIHdpbmRvd0JpdHMpID0+IHsKICAgIGxldCB3cmFwOwoKICAgIC8qIGdldCB0aGUgc3RhdGUgKi8KICAgIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSkgeyByZXR1cm4gWl9TVFJFQU1fRVJST1IkMTsgfQogICAgY29uc3Qgc3RhdGUgPSBzdHJtLnN0YXRlOwoKICAgIC8qIGV4dHJhY3Qgd3JhcCByZXF1ZXN0IGZyb20gd2luZG93Qml0cyBwYXJhbWV0ZXIgKi8KICAgIGlmICh3aW5kb3dCaXRzIDwgMCkgewogICAgICB3cmFwID0gMDsKICAgICAgd2luZG93Qml0cyA9IC13aW5kb3dCaXRzOwogICAgfQogICAgZWxzZSB7CiAgICAgIHdyYXAgPSAod2luZG93Qml0cyA+PiA0KSArIDE7CiAgICAgIGlmICh3aW5kb3dCaXRzIDwgNDgpIHsKICAgICAgICB3aW5kb3dCaXRzICY9IDE1OwogICAgICB9CiAgICB9CgogICAgLyogc2V0IG51bWJlciBvZiB3aW5kb3cgYml0cywgZnJlZSB3aW5kb3cgaWYgZGlmZmVyZW50ICovCiAgICBpZiAod2luZG93Qml0cyAmJiAod2luZG93Qml0cyA8IDggfHwgd2luZG93Qml0cyA+IDE1KSkgewogICAgICByZXR1cm4gWl9TVFJFQU1fRVJST1IkMTsKICAgIH0KICAgIGlmIChzdGF0ZS53aW5kb3cgIT09IG51bGwgJiYgc3RhdGUud2JpdHMgIT09IHdpbmRvd0JpdHMpIHsKICAgICAgc3RhdGUud2luZG93ID0gbnVsbDsKICAgIH0KCiAgICAvKiB1cGRhdGUgc3RhdGUgYW5kIHJlc2V0IHRoZSByZXN0IG9mIGl0ICovCiAgICBzdGF0ZS53cmFwID0gd3JhcDsKICAgIHN0YXRlLndiaXRzID0gd2luZG93Qml0czsKICAgIHJldHVybiBpbmZsYXRlUmVzZXQoc3RybSk7CiAgfTsKCgogIGNvbnN0IGluZmxhdGVJbml0MiA9IChzdHJtLCB3aW5kb3dCaXRzKSA9PiB7CgogICAgaWYgKCFzdHJtKSB7IHJldHVybiBaX1NUUkVBTV9FUlJPUiQxOyB9CiAgICAvL3N0cm0ubXNnID0gWl9OVUxMOyAgICAgICAgICAgICAgICAgLyogaW4gY2FzZSB3ZSByZXR1cm4gYW4gZXJyb3IgKi8KCiAgICBjb25zdCBzdGF0ZSA9IG5ldyBJbmZsYXRlU3RhdGUoKTsKCiAgICAvL2lmIChzdGF0ZSA9PT0gWl9OVUxMKSByZXR1cm4gWl9NRU1fRVJST1I7CiAgICAvL1RyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogYWxsb2NhdGVkXG4iKSk7CiAgICBzdHJtLnN0YXRlID0gc3RhdGU7CiAgICBzdGF0ZS53aW5kb3cgPSBudWxsLypaX05VTEwqLzsKICAgIGNvbnN0IHJldCA9IGluZmxhdGVSZXNldDIoc3RybSwgd2luZG93Qml0cyk7CiAgICBpZiAocmV0ICE9PSBaX09LJDEpIHsKICAgICAgc3RybS5zdGF0ZSA9IG51bGwvKlpfTlVMTCovOwogICAgfQogICAgcmV0dXJuIHJldDsKICB9OwoKCiAgY29uc3QgaW5mbGF0ZUluaXQgPSAoc3RybSkgPT4gewoKICAgIHJldHVybiBpbmZsYXRlSW5pdDIoc3RybSwgREVGX1dCSVRTKTsKICB9OwoKCiAgLyoKICAgUmV0dXJuIHN0YXRlIHdpdGggbGVuZ3RoIGFuZCBkaXN0YW5jZSBkZWNvZGluZyB0YWJsZXMgYW5kIGluZGV4IHNpemVzIHNldCB0bwogICBmaXhlZCBjb2RlIGRlY29kaW5nLiAgTm9ybWFsbHkgdGhpcyByZXR1cm5zIGZpeGVkIHRhYmxlcyBmcm9tIGluZmZpeGVkLmguCiAgIElmIEJVSUxERklYRUQgaXMgZGVmaW5lZCwgdGhlbiBpbnN0ZWFkIHRoaXMgcm91dGluZSBidWlsZHMgdGhlIHRhYmxlcyB0aGUKICAgZmlyc3QgdGltZSBpdCdzIGNhbGxlZCwgYW5kIHJldHVybnMgdGhvc2UgdGFibGVzIHRoZSBmaXJzdCB0aW1lIGFuZAogICB0aGVyZWFmdGVyLiAgVGhpcyByZWR1Y2VzIHRoZSBzaXplIG9mIHRoZSBjb2RlIGJ5IGFib3V0IDJLIGJ5dGVzLCBpbgogICBleGNoYW5nZSBmb3IgYSBsaXR0bGUgZXhlY3V0aW9uIHRpbWUuICBIb3dldmVyLCBCVUlMREZJWEVEIHNob3VsZCBub3QgYmUKICAgdXNlZCBmb3IgdGhyZWFkZWQgYXBwbGljYXRpb25zLCBzaW5jZSB0aGUgcmV3cml0aW5nIG9mIHRoZSB0YWJsZXMgYW5kIHZpcmdpbgogICBtYXkgbm90IGJlIHRocmVhZC1zYWZlLgogICAqLwogIGxldCB2aXJnaW4gPSB0cnVlOwoKICBsZXQgbGVuZml4LCBkaXN0Zml4OyAvLyBXZSBoYXZlIG5vIHBvaW50ZXJzIGluIEpTLCBzbyBrZWVwIHRhYmxlcyBzZXBhcmF0ZQoKCiAgY29uc3QgZml4ZWR0YWJsZXMgPSAoc3RhdGUpID0+IHsKCiAgICAvKiBidWlsZCBmaXhlZCBodWZmbWFuIHRhYmxlcyBpZiBmaXJzdCBjYWxsIChtYXkgbm90IGJlIHRocmVhZCBzYWZlKSAqLwogICAgaWYgKHZpcmdpbikgewogICAgICBsZW5maXggPSBuZXcgSW50MzJBcnJheSg1MTIpOwogICAgICBkaXN0Zml4ID0gbmV3IEludDMyQXJyYXkoMzIpOwoKICAgICAgLyogbGl0ZXJhbC9sZW5ndGggdGFibGUgKi8KICAgICAgbGV0IHN5bSA9IDA7CiAgICAgIHdoaWxlIChzeW0gPCAxNDQpIHsgc3RhdGUubGVuc1tzeW0rK10gPSA4OyB9CiAgICAgIHdoaWxlIChzeW0gPCAyNTYpIHsgc3RhdGUubGVuc1tzeW0rK10gPSA5OyB9CiAgICAgIHdoaWxlIChzeW0gPCAyODApIHsgc3RhdGUubGVuc1tzeW0rK10gPSA3OyB9CiAgICAgIHdoaWxlIChzeW0gPCAyODgpIHsgc3RhdGUubGVuc1tzeW0rK10gPSA4OyB9CgogICAgICBpbmZ0cmVlcyhMRU5TLCAgc3RhdGUubGVucywgMCwgMjg4LCBsZW5maXgsICAgMCwgc3RhdGUud29yaywgeyBiaXRzOiA5IH0pOwoKICAgICAgLyogZGlzdGFuY2UgdGFibGUgKi8KICAgICAgc3ltID0gMDsKICAgICAgd2hpbGUgKHN5bSA8IDMyKSB7IHN0YXRlLmxlbnNbc3ltKytdID0gNTsgfQoKICAgICAgaW5mdHJlZXMoRElTVFMsIHN0YXRlLmxlbnMsIDAsIDMyLCAgIGRpc3RmaXgsIDAsIHN0YXRlLndvcmssIHsgYml0czogNSB9KTsKCiAgICAgIC8qIGRvIHRoaXMganVzdCBvbmNlICovCiAgICAgIHZpcmdpbiA9IGZhbHNlOwogICAgfQoKICAgIHN0YXRlLmxlbmNvZGUgPSBsZW5maXg7CiAgICBzdGF0ZS5sZW5iaXRzID0gOTsKICAgIHN0YXRlLmRpc3Rjb2RlID0gZGlzdGZpeDsKICAgIHN0YXRlLmRpc3RiaXRzID0gNTsKICB9OwoKCiAgLyoKICAgVXBkYXRlIHRoZSB3aW5kb3cgd2l0aCB0aGUgbGFzdCB3c2l6ZSAobm9ybWFsbHkgMzJLKSBieXRlcyB3cml0dGVuIGJlZm9yZQogICByZXR1cm5pbmcuICBJZiB3aW5kb3cgZG9lcyBub3QgZXhpc3QgeWV0LCBjcmVhdGUgaXQuICBUaGlzIGlzIG9ubHkgY2FsbGVkCiAgIHdoZW4gYSB3aW5kb3cgaXMgYWxyZWFkeSBpbiB1c2UsIG9yIHdoZW4gb3V0cHV0IGhhcyBiZWVuIHdyaXR0ZW4gZHVyaW5nIHRoaXMKICAgaW5mbGF0ZSBjYWxsLCBidXQgdGhlIGVuZCBvZiB0aGUgZGVmbGF0ZSBzdHJlYW0gaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LgogICBJdCBpcyBhbHNvIGNhbGxlZCB0byBjcmVhdGUgYSB3aW5kb3cgZm9yIGRpY3Rpb25hcnkgZGF0YSB3aGVuIGEgZGljdGlvbmFyeQogICBpcyBsb2FkZWQuCgogICBQcm92aWRpbmcgb3V0cHV0IGJ1ZmZlcnMgbGFyZ2VyIHRoYW4gMzJLIHRvIGluZmxhdGUoKSBzaG91bGQgcHJvdmlkZSBhIHNwZWVkCiAgIGFkdmFudGFnZSwgc2luY2Ugb25seSB0aGUgbGFzdCAzMksgb2Ygb3V0cHV0IGlzIGNvcGllZCB0byB0aGUgc2xpZGluZyB3aW5kb3cKICAgdXBvbiByZXR1cm4gZnJvbSBpbmZsYXRlKCksIGFuZCBzaW5jZSBhbGwgZGlzdGFuY2VzIGFmdGVyIHRoZSBmaXJzdCAzMksgb2YKICAgb3V0cHV0IHdpbGwgZmFsbCBpbiB0aGUgb3V0cHV0IGRhdGEsIG1ha2luZyBtYXRjaCBjb3BpZXMgc2ltcGxlciBhbmQgZmFzdGVyLgogICBUaGUgYWR2YW50YWdlIG1heSBiZSBkZXBlbmRlbnQgb24gdGhlIHNpemUgb2YgdGhlIHByb2Nlc3NvcidzIGRhdGEgY2FjaGVzLgogICAqLwogIGNvbnN0IHVwZGF0ZXdpbmRvdyA9IChzdHJtLCBzcmMsIGVuZCwgY29weSkgPT4gewoKICAgIGxldCBkaXN0OwogICAgY29uc3Qgc3RhdGUgPSBzdHJtLnN0YXRlOwoKICAgIC8qIGlmIGl0IGhhc24ndCBiZWVuIGRvbmUgYWxyZWFkeSwgYWxsb2NhdGUgc3BhY2UgZm9yIHRoZSB3aW5kb3cgKi8KICAgIGlmIChzdGF0ZS53aW5kb3cgPT09IG51bGwpIHsKICAgICAgc3RhdGUud3NpemUgPSAxIDw8IHN0YXRlLndiaXRzOwogICAgICBzdGF0ZS53bmV4dCA9IDA7CiAgICAgIHN0YXRlLndoYXZlID0gMDsKCiAgICAgIHN0YXRlLndpbmRvdyA9IG5ldyBVaW50OEFycmF5KHN0YXRlLndzaXplKTsKICAgIH0KCiAgICAvKiBjb3B5IHN0YXRlLT53c2l6ZSBvciBsZXNzIG91dHB1dCBieXRlcyBpbnRvIHRoZSBjaXJjdWxhciB3aW5kb3cgKi8KICAgIGlmIChjb3B5ID49IHN0YXRlLndzaXplKSB7CiAgICAgIHN0YXRlLndpbmRvdy5zZXQoc3JjLnN1YmFycmF5KGVuZCAtIHN0YXRlLndzaXplLCBlbmQpLCAwKTsKICAgICAgc3RhdGUud25leHQgPSAwOwogICAgICBzdGF0ZS53aGF2ZSA9IHN0YXRlLndzaXplOwogICAgfQogICAgZWxzZSB7CiAgICAgIGRpc3QgPSBzdGF0ZS53c2l6ZSAtIHN0YXRlLnduZXh0OwogICAgICBpZiAoZGlzdCA+IGNvcHkpIHsKICAgICAgICBkaXN0ID0gY29weTsKICAgICAgfQogICAgICAvL3ptZW1jcHkoc3RhdGUtPndpbmRvdyArIHN0YXRlLT53bmV4dCwgZW5kIC0gY29weSwgZGlzdCk7CiAgICAgIHN0YXRlLndpbmRvdy5zZXQoc3JjLnN1YmFycmF5KGVuZCAtIGNvcHksIGVuZCAtIGNvcHkgKyBkaXN0KSwgc3RhdGUud25leHQpOwogICAgICBjb3B5IC09IGRpc3Q7CiAgICAgIGlmIChjb3B5KSB7CiAgICAgICAgLy96bWVtY3B5KHN0YXRlLT53aW5kb3csIGVuZCAtIGNvcHksIGNvcHkpOwogICAgICAgIHN0YXRlLndpbmRvdy5zZXQoc3JjLnN1YmFycmF5KGVuZCAtIGNvcHksIGVuZCksIDApOwogICAgICAgIHN0YXRlLnduZXh0ID0gY29weTsKICAgICAgICBzdGF0ZS53aGF2ZSA9IHN0YXRlLndzaXplOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHN0YXRlLnduZXh0ICs9IGRpc3Q7CiAgICAgICAgaWYgKHN0YXRlLnduZXh0ID09PSBzdGF0ZS53c2l6ZSkgeyBzdGF0ZS53bmV4dCA9IDA7IH0KICAgICAgICBpZiAoc3RhdGUud2hhdmUgPCBzdGF0ZS53c2l6ZSkgeyBzdGF0ZS53aGF2ZSArPSBkaXN0OyB9CiAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwogIH07CgoKICBjb25zdCBpbmZsYXRlJDIgPSAoc3RybSwgZmx1c2gpID0+IHsKCiAgICBsZXQgc3RhdGU7CiAgICBsZXQgaW5wdXQsIG91dHB1dDsgICAgICAgICAgLy8gaW5wdXQvb3V0cHV0IGJ1ZmZlcnMKICAgIGxldCBuZXh0OyAgICAgICAgICAgICAgICAgICAvKiBuZXh0IGlucHV0IElOREVYICovCiAgICBsZXQgcHV0OyAgICAgICAgICAgICAgICAgICAgLyogbmV4dCBvdXRwdXQgSU5ERVggKi8KICAgIGxldCBoYXZlLCBsZWZ0OyAgICAgICAgICAgICAvKiBhdmFpbGFibGUgaW5wdXQgYW5kIG91dHB1dCAqLwogICAgbGV0IGhvbGQ7ICAgICAgICAgICAgICAgICAgIC8qIGJpdCBidWZmZXIgKi8KICAgIGxldCBiaXRzOyAgICAgICAgICAgICAgICAgICAvKiBiaXRzIGluIGJpdCBidWZmZXIgKi8KICAgIGxldCBfaW4sIF9vdXQ7ICAgICAgICAgICAgICAvKiBzYXZlIHN0YXJ0aW5nIGF2YWlsYWJsZSBpbnB1dCBhbmQgb3V0cHV0ICovCiAgICBsZXQgY29weTsgICAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIHN0b3JlZCBvciBtYXRjaCBieXRlcyB0byBjb3B5ICovCiAgICBsZXQgZnJvbTsgICAgICAgICAgICAgICAgICAgLyogd2hlcmUgdG8gY29weSBtYXRjaCBieXRlcyBmcm9tICovCiAgICBsZXQgZnJvbV9zb3VyY2U7CiAgICBsZXQgaGVyZSA9IDA7ICAgICAgICAgICAgICAgLyogY3VycmVudCBkZWNvZGluZyB0YWJsZSBlbnRyeSAqLwogICAgbGV0IGhlcmVfYml0cywgaGVyZV9vcCwgaGVyZV92YWw7IC8vIHBha2VkICJoZXJlIiBkZW5vcm1hbGl6ZWQgKEpTIHNwZWNpZmljKQogICAgLy9sZXQgbGFzdDsgICAgICAgICAgICAgICAgICAgLyogcGFyZW50IHRhYmxlIGVudHJ5ICovCiAgICBsZXQgbGFzdF9iaXRzLCBsYXN0X29wLCBsYXN0X3ZhbDsgLy8gcGFrZWQgImxhc3QiIGRlbm9ybWFsaXplZCAoSlMgc3BlY2lmaWMpCiAgICBsZXQgbGVuOyAgICAgICAgICAgICAgICAgICAgLyogbGVuZ3RoIHRvIGNvcHkgZm9yIHJlcGVhdHMsIGJpdHMgdG8gZHJvcCAqLwogICAgbGV0IHJldDsgICAgICAgICAgICAgICAgICAgIC8qIHJldHVybiBjb2RlICovCiAgICBjb25zdCBoYnVmID0gbmV3IFVpbnQ4QXJyYXkoNCk7ICAgIC8qIGJ1ZmZlciBmb3IgZ3ppcCBoZWFkZXIgY3JjIGNhbGN1bGF0aW9uICovCiAgICBsZXQgb3B0czsKCiAgICBsZXQgbjsgLy8gdGVtcG9yYXJ5IHZhcmlhYmxlIGZvciBORUVEX0JJVFMKCiAgICBjb25zdCBvcmRlciA9IC8qIHBlcm11dGF0aW9uIG9mIGNvZGUgbGVuZ3RocyAqLwogICAgICBuZXcgVWludDhBcnJheShbIDE2LCAxNywgMTgsIDAsIDgsIDcsIDksIDYsIDEwLCA1LCAxMSwgNCwgMTIsIDMsIDEzLCAyLCAxNCwgMSwgMTUgXSk7CgoKICAgIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSB8fCAhc3RybS5vdXRwdXQgfHwKICAgICAgICAoIXN0cm0uaW5wdXQgJiYgc3RybS5hdmFpbF9pbiAhPT0gMCkpIHsKICAgICAgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDE7CiAgICB9CgogICAgc3RhdGUgPSBzdHJtLnN0YXRlOwogICAgaWYgKHN0YXRlLm1vZGUgPT09IFRZUEUpIHsgc3RhdGUubW9kZSA9IFRZUEVETzsgfSAgICAvKiBza2lwIGNoZWNrICovCgoKICAgIC8vLS0tIExPQUQoKSAtLS0KICAgIHB1dCA9IHN0cm0ubmV4dF9vdXQ7CiAgICBvdXRwdXQgPSBzdHJtLm91dHB1dDsKICAgIGxlZnQgPSBzdHJtLmF2YWlsX291dDsKICAgIG5leHQgPSBzdHJtLm5leHRfaW47CiAgICBpbnB1dCA9IHN0cm0uaW5wdXQ7CiAgICBoYXZlID0gc3RybS5hdmFpbF9pbjsKICAgIGhvbGQgPSBzdGF0ZS5ob2xkOwogICAgYml0cyA9IHN0YXRlLmJpdHM7CiAgICAvLy0tLQoKICAgIF9pbiA9IGhhdmU7CiAgICBfb3V0ID0gbGVmdDsKICAgIHJldCA9IFpfT0skMTsKCiAgICBpbmZfbGVhdmU6IC8vIGdvdG8gZW11bGF0aW9uCiAgICBmb3IgKDs7KSB7CiAgICAgIHN3aXRjaCAoc3RhdGUubW9kZSkgewogICAgICAgIGNhc2UgSEVBRDoKICAgICAgICAgIGlmIChzdGF0ZS53cmFwID09PSAwKSB7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBUWVBFRE87CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgLy89PT0gTkVFREJJVFMoMTYpOwogICAgICAgICAgd2hpbGUgKGJpdHMgPCAxNikgewogICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgfQogICAgICAgICAgLy89PT0vLwogICAgICAgICAgaWYgKChzdGF0ZS53cmFwICYgMikgJiYgaG9sZCA9PT0gMHg4YjFmKSB7ICAvKiBnemlwIGhlYWRlciAqLwogICAgICAgICAgICBzdGF0ZS5jaGVjayA9IDAvKmNyYzMyKDBMLCBaX05VTEwsIDApKi87CiAgICAgICAgICAgIC8vPT09IENSQzIoc3RhdGUuY2hlY2ssIGhvbGQpOwogICAgICAgICAgICBoYnVmWzBdID0gaG9sZCAmIDB4ZmY7CiAgICAgICAgICAgIGhidWZbMV0gPSAoaG9sZCA+Pj4gOCkgJiAweGZmOwogICAgICAgICAgICBzdGF0ZS5jaGVjayA9IGNyYzMyXzEoc3RhdGUuY2hlY2ssIGhidWYsIDIsIDApOwogICAgICAgICAgICAvLz09PS8vCgogICAgICAgICAgICAvLz09PSBJTklUQklUUygpOwogICAgICAgICAgICBob2xkID0gMDsKICAgICAgICAgICAgYml0cyA9IDA7CiAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgICAgc3RhdGUubW9kZSA9IEZMQUdTOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlLmZsYWdzID0gMDsgICAgICAgICAgIC8qIGV4cGVjdCB6bGliIGhlYWRlciAqLwogICAgICAgICAgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgc3RhdGUuaGVhZC5kb25lID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIShzdGF0ZS53cmFwICYgMSkgfHwgICAvKiBjaGVjayBpZiB6bGliIGhlYWRlciBhbGxvd2VkICovCiAgICAgICAgICAgICgoKGhvbGQgJiAweGZmKS8qQklUUyg4KSovIDw8IDgpICsgKGhvbGQgPj4gOCkpICUgMzEpIHsKICAgICAgICAgICAgc3RybS5tc2cgPSAnaW5jb3JyZWN0IGhlYWRlciBjaGVjayc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKChob2xkICYgMHgwZikvKkJJVFMoNCkqLyAhPT0gWl9ERUZMQVRFRCkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICd1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgLy8tLS0gRFJPUEJJVFMoNCkgLS0tLy8KICAgICAgICAgIGhvbGQgPj4+PSA0OwogICAgICAgICAgYml0cyAtPSA0OwogICAgICAgICAgLy8tLS0vLwogICAgICAgICAgbGVuID0gKGhvbGQgJiAweDBmKS8qQklUUyg0KSovICsgODsKICAgICAgICAgIGlmIChzdGF0ZS53Yml0cyA9PT0gMCkgewogICAgICAgICAgICBzdGF0ZS53Yml0cyA9IGxlbjsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKGxlbiA+IHN0YXRlLndiaXRzKSB7CiAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgd2luZG93IHNpemUnOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyAhISEgcGFrbyBwYXRjaC4gRm9yY2UgdXNlIGBvcHRpb25zLndpbmRvd0JpdHNgIGlmIHBhc3NlZC4KICAgICAgICAgIC8vIFJlcXVpcmVkIHRvIGFsd2F5cyB1c2UgbWF4IHdpbmRvdyBzaXplIGJ5IGRlZmF1bHQuCiAgICAgICAgICBzdGF0ZS5kbWF4ID0gMSA8PCBzdGF0ZS53Yml0czsKICAgICAgICAgIC8vc3RhdGUuZG1heCA9IDEgPDwgbGVuOwoKICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgIHpsaWIgaGVhZGVyIG9rXG4iKSk7CiAgICAgICAgICBzdHJtLmFkbGVyID0gc3RhdGUuY2hlY2sgPSAxLyphZGxlcjMyKDBMLCBaX05VTEwsIDApKi87CiAgICAgICAgICBzdGF0ZS5tb2RlID0gaG9sZCAmIDB4MjAwID8gRElDVElEIDogVFlQRTsKICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICBob2xkID0gMDsKICAgICAgICAgIGJpdHMgPSAwOwogICAgICAgICAgLy89PT0vLwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBGTEFHUzoKICAgICAgICAgIC8vPT09IE5FRURCSVRTKDE2KTsgKi8KICAgICAgICAgIHdoaWxlIChiaXRzIDwgMTYpIHsKICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgIH0KICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIHN0YXRlLmZsYWdzID0gaG9sZDsKICAgICAgICAgIGlmICgoc3RhdGUuZmxhZ3MgJiAweGZmKSAhPT0gWl9ERUZMQVRFRCkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICd1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHhlMDAwKSB7CiAgICAgICAgICAgIHN0cm0ubXNnID0gJ3Vua25vd24gaGVhZGVyIGZsYWdzIHNldCc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgc3RhdGUuaGVhZC50ZXh0ID0gKChob2xkID4+IDgpICYgMSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc3RhdGUuZmxhZ3MgJiAweDAyMDApIHsKICAgICAgICAgICAgLy89PT0gQ1JDMihzdGF0ZS5jaGVjaywgaG9sZCk7CiAgICAgICAgICAgIGhidWZbMF0gPSBob2xkICYgMHhmZjsKICAgICAgICAgICAgaGJ1ZlsxXSA9IChob2xkID4+PiA4KSAmIDB4ZmY7CiAgICAgICAgICAgIHN0YXRlLmNoZWNrID0gY3JjMzJfMShzdGF0ZS5jaGVjaywgaGJ1ZiwgMiwgMCk7CiAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIH0KICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICBob2xkID0gMDsKICAgICAgICAgIGJpdHMgPSAwOwogICAgICAgICAgLy89PT0vLwogICAgICAgICAgc3RhdGUubW9kZSA9IFRJTUU7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBUSU1FOgogICAgICAgICAgLy89PT0gTkVFREJJVFMoMzIpOyAqLwogICAgICAgICAgd2hpbGUgKGJpdHMgPCAzMikgewogICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgfQogICAgICAgICAgLy89PT0vLwogICAgICAgICAgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgc3RhdGUuaGVhZC50aW1lID0gaG9sZDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgICAvLz09PSBDUkM0KHN0YXRlLmNoZWNrLCBob2xkKQogICAgICAgICAgICBoYnVmWzBdID0gaG9sZCAmIDB4ZmY7CiAgICAgICAgICAgIGhidWZbMV0gPSAoaG9sZCA+Pj4gOCkgJiAweGZmOwogICAgICAgICAgICBoYnVmWzJdID0gKGhvbGQgPj4+IDE2KSAmIDB4ZmY7CiAgICAgICAgICAgIGhidWZbM10gPSAoaG9sZCA+Pj4gMjQpICYgMHhmZjsKICAgICAgICAgICAgc3RhdGUuY2hlY2sgPSBjcmMzMl8xKHN0YXRlLmNoZWNrLCBoYnVmLCA0LCAwKTsKICAgICAgICAgICAgLy89PT0KICAgICAgICAgIH0KICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICBob2xkID0gMDsKICAgICAgICAgIGJpdHMgPSAwOwogICAgICAgICAgLy89PT0vLwogICAgICAgICAgc3RhdGUubW9kZSA9IE9TOwogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgT1M6CiAgICAgICAgICAvLz09PSBORUVEQklUUygxNik7ICovCiAgICAgICAgICB3aGlsZSAoYml0cyA8IDE2KSB7CiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICB9CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBpZiAoc3RhdGUuaGVhZCkgewogICAgICAgICAgICBzdGF0ZS5oZWFkLnhmbGFncyA9IChob2xkICYgMHhmZik7CiAgICAgICAgICAgIHN0YXRlLmhlYWQub3MgPSAoaG9sZCA+PiA4KTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgICAvLz09PSBDUkMyKHN0YXRlLmNoZWNrLCBob2xkKTsKICAgICAgICAgICAgaGJ1ZlswXSA9IGhvbGQgJiAweGZmOwogICAgICAgICAgICBoYnVmWzFdID0gKGhvbGQgPj4+IDgpICYgMHhmZjsKICAgICAgICAgICAgc3RhdGUuY2hlY2sgPSBjcmMzMl8xKHN0YXRlLmNoZWNrLCBoYnVmLCAyLCAwKTsKICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgfQogICAgICAgICAgLy89PT0gSU5JVEJJVFMoKTsKICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgYml0cyA9IDA7CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBzdGF0ZS5tb2RlID0gRVhMRU47CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBFWExFTjoKICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDQwMCkgewogICAgICAgICAgICAvLz09PSBORUVEQklUUygxNik7ICovCiAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgMTYpIHsKICAgICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgICAgc3RhdGUubGVuZ3RoID0gaG9sZDsKICAgICAgICAgICAgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgICBzdGF0ZS5oZWFkLmV4dHJhX2xlbiA9IGhvbGQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHgwMjAwKSB7CiAgICAgICAgICAgICAgLy89PT0gQ1JDMihzdGF0ZS5jaGVjaywgaG9sZCk7CiAgICAgICAgICAgICAgaGJ1ZlswXSA9IGhvbGQgJiAweGZmOwogICAgICAgICAgICAgIGhidWZbMV0gPSAoaG9sZCA+Pj4gOCkgJiAweGZmOwogICAgICAgICAgICAgIHN0YXRlLmNoZWNrID0gY3JjMzJfMShzdGF0ZS5jaGVjaywgaGJ1ZiwgMiwgMCk7CiAgICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgICBiaXRzID0gMDsKICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAoc3RhdGUuaGVhZCkgewogICAgICAgICAgICBzdGF0ZS5oZWFkLmV4dHJhID0gbnVsbC8qWl9OVUxMKi87CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5tb2RlID0gRVhUUkE7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBFWFRSQToKICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDQwMCkgewogICAgICAgICAgICBjb3B5ID0gc3RhdGUubGVuZ3RoOwogICAgICAgICAgICBpZiAoY29weSA+IGhhdmUpIHsgY29weSA9IGhhdmU7IH0KICAgICAgICAgICAgaWYgKGNvcHkpIHsKICAgICAgICAgICAgICBpZiAoc3RhdGUuaGVhZCkgewogICAgICAgICAgICAgICAgbGVuID0gc3RhdGUuaGVhZC5leHRyYV9sZW4gLSBzdGF0ZS5sZW5ndGg7CiAgICAgICAgICAgICAgICBpZiAoIXN0YXRlLmhlYWQuZXh0cmEpIHsKICAgICAgICAgICAgICAgICAgLy8gVXNlIHVudHlwZWQgYXJyYXkgZm9yIG1vcmUgY29udmVuaWVudCBwcm9jZXNzaW5nIGxhdGVyCiAgICAgICAgICAgICAgICAgIHN0YXRlLmhlYWQuZXh0cmEgPSBuZXcgVWludDhBcnJheShzdGF0ZS5oZWFkLmV4dHJhX2xlbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzdGF0ZS5oZWFkLmV4dHJhLnNldCgKICAgICAgICAgICAgICAgICAgaW5wdXQuc3ViYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgbmV4dCwKICAgICAgICAgICAgICAgICAgICAvLyBleHRyYSBmaWVsZCBpcyBsaW1pdGVkIHRvIDY1NTM2IGJ5dGVzCiAgICAgICAgICAgICAgICAgICAgLy8gLSBubyBuZWVkIGZvciBhZGRpdGlvbmFsIHNpemUgY2hlY2sKICAgICAgICAgICAgICAgICAgICBuZXh0ICsgY29weQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAvKmxlbiArIGNvcHkgPiBzdGF0ZS5oZWFkLmV4dHJhX21heCAtIGxlbiA/IHN0YXRlLmhlYWQuZXh0cmFfbWF4IDogY29weSwqLwogICAgICAgICAgICAgICAgICBsZW4KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAvL3ptZW1jcHkoc3RhdGUuaGVhZC5leHRyYSArIGxlbiwgbmV4dCwKICAgICAgICAgICAgICAgIC8vICAgICAgICBsZW4gKyBjb3B5ID4gc3RhdGUuaGVhZC5leHRyYV9tYXggPwogICAgICAgICAgICAgICAgLy8gICAgICAgIHN0YXRlLmhlYWQuZXh0cmFfbWF4IC0gbGVuIDogY29weSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgICAgICAgc3RhdGUuY2hlY2sgPSBjcmMzMl8xKHN0YXRlLmNoZWNrLCBpbnB1dCwgY29weSwgbmV4dCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGhhdmUgLT0gY29weTsKICAgICAgICAgICAgICBuZXh0ICs9IGNvcHk7CiAgICAgICAgICAgICAgc3RhdGUubGVuZ3RoIC09IGNvcHk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHN0YXRlLmxlbmd0aCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlLmxlbmd0aCA9IDA7CiAgICAgICAgICBzdGF0ZS5tb2RlID0gTkFNRTsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIE5BTUU6CiAgICAgICAgICBpZiAoc3RhdGUuZmxhZ3MgJiAweDA4MDApIHsKICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIGNvcHkgPSAwOwogICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgLy8gVE9ETzogMiBvciAxIGJ5dGVzPwogICAgICAgICAgICAgIGxlbiA9IGlucHV0W25leHQgKyBjb3B5KytdOwogICAgICAgICAgICAgIC8qIHVzZSBjb25zdGFudCBsaW1pdCBiZWNhdXNlIGluIGpzIHdlIHNob3VsZCBub3QgcHJlYWxsb2NhdGUgbWVtb3J5ICovCiAgICAgICAgICAgICAgaWYgKHN0YXRlLmhlYWQgJiYgbGVuICYmCiAgICAgICAgICAgICAgICAgIChzdGF0ZS5sZW5ndGggPCA2NTUzNiAvKnN0YXRlLmhlYWQubmFtZV9tYXgqLykpIHsKICAgICAgICAgICAgICAgIHN0YXRlLmhlYWQubmFtZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGxlbik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IHdoaWxlIChsZW4gJiYgY29weSA8IGhhdmUpOwoKICAgICAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHgwMjAwKSB7CiAgICAgICAgICAgICAgc3RhdGUuY2hlY2sgPSBjcmMzMl8xKHN0YXRlLmNoZWNrLCBpbnB1dCwgY29weSwgbmV4dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaGF2ZSAtPSBjb3B5OwogICAgICAgICAgICBuZXh0ICs9IGNvcHk7CiAgICAgICAgICAgIGlmIChsZW4pIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmIChzdGF0ZS5oZWFkKSB7CiAgICAgICAgICAgIHN0YXRlLmhlYWQubmFtZSA9IG51bGw7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5sZW5ndGggPSAwOwogICAgICAgICAgc3RhdGUubW9kZSA9IENPTU1FTlQ7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBDT01NRU5UOgogICAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHgxMDAwKSB7CiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBjb3B5ID0gMDsKICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgIGxlbiA9IGlucHV0W25leHQgKyBjb3B5KytdOwogICAgICAgICAgICAgIC8qIHVzZSBjb25zdGFudCBsaW1pdCBiZWNhdXNlIGluIGpzIHdlIHNob3VsZCBub3QgcHJlYWxsb2NhdGUgbWVtb3J5ICovCiAgICAgICAgICAgICAgaWYgKHN0YXRlLmhlYWQgJiYgbGVuICYmCiAgICAgICAgICAgICAgICAgIChzdGF0ZS5sZW5ndGggPCA2NTUzNiAvKnN0YXRlLmhlYWQuY29tbV9tYXgqLykpIHsKICAgICAgICAgICAgICAgIHN0YXRlLmhlYWQuY29tbWVudCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGxlbik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IHdoaWxlIChsZW4gJiYgY29weSA8IGhhdmUpOwogICAgICAgICAgICBpZiAoc3RhdGUuZmxhZ3MgJiAweDAyMDApIHsKICAgICAgICAgICAgICBzdGF0ZS5jaGVjayA9IGNyYzMyXzEoc3RhdGUuY2hlY2ssIGlucHV0LCBjb3B5LCBuZXh0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBoYXZlIC09IGNvcHk7CiAgICAgICAgICAgIG5leHQgKz0gY29weTsKICAgICAgICAgICAgaWYgKGxlbikgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgc3RhdGUuaGVhZC5jb21tZW50ID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlLm1vZGUgPSBIQ1JDOwogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgSENSQzoKICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgICAvLz09PSBORUVEQklUUygxNik7ICovCiAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgMTYpIHsKICAgICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgICAgaWYgKGhvbGQgIT09IChzdGF0ZS5jaGVjayAmIDB4ZmZmZikpIHsKICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdoZWFkZXIgY3JjIG1pc21hdGNoJzsKICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgICBiaXRzID0gMDsKICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgfQogICAgICAgICAgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgICAgc3RhdGUuaGVhZC5oY3JjID0gKChzdGF0ZS5mbGFncyA+PiA5KSAmIDEpOwogICAgICAgICAgICBzdGF0ZS5oZWFkLmRvbmUgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgc3RybS5hZGxlciA9IHN0YXRlLmNoZWNrID0gMDsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBUWVBFOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBESUNUSUQ6CiAgICAgICAgICAvLz09PSBORUVEQklUUygzMik7ICovCiAgICAgICAgICB3aGlsZSAoYml0cyA8IDMyKSB7CiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICB9CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBzdHJtLmFkbGVyID0gc3RhdGUuY2hlY2sgPSB6c3dhcDMyKGhvbGQpOwogICAgICAgICAgLy89PT0gSU5JVEJJVFMoKTsKICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgYml0cyA9IDA7CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBzdGF0ZS5tb2RlID0gRElDVDsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIERJQ1Q6CiAgICAgICAgICBpZiAoc3RhdGUuaGF2ZWRpY3QgPT09IDApIHsKICAgICAgICAgICAgLy8tLS0gUkVTVE9SRSgpIC0tLQogICAgICAgICAgICBzdHJtLm5leHRfb3V0ID0gcHV0OwogICAgICAgICAgICBzdHJtLmF2YWlsX291dCA9IGxlZnQ7CiAgICAgICAgICAgIHN0cm0ubmV4dF9pbiA9IG5leHQ7CiAgICAgICAgICAgIHN0cm0uYXZhaWxfaW4gPSBoYXZlOwogICAgICAgICAgICBzdGF0ZS5ob2xkID0gaG9sZDsKICAgICAgICAgICAgc3RhdGUuYml0cyA9IGJpdHM7CiAgICAgICAgICAgIC8vLS0tCiAgICAgICAgICAgIHJldHVybiBaX05FRURfRElDVCQxOwogICAgICAgICAgfQogICAgICAgICAgc3RybS5hZGxlciA9IHN0YXRlLmNoZWNrID0gMS8qYWRsZXIzMigwTCwgWl9OVUxMLCAwKSovOwogICAgICAgICAgc3RhdGUubW9kZSA9IFRZUEU7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBUWVBFOgogICAgICAgICAgaWYgKGZsdXNoID09PSBaX0JMT0NLIHx8IGZsdXNoID09PSBaX1RSRUVTKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgVFlQRURPOgogICAgICAgICAgaWYgKHN0YXRlLmxhc3QpIHsKICAgICAgICAgICAgLy8tLS0gQllURUJJVFMoKSAtLS0vLwogICAgICAgICAgICBob2xkID4+Pj0gYml0cyAmIDc7CiAgICAgICAgICAgIGJpdHMgLT0gYml0cyAmIDc7CiAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgc3RhdGUubW9kZSA9IENIRUNLOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIC8vPT09IE5FRURCSVRTKDMpOyAqLwogICAgICAgICAgd2hpbGUgKGJpdHMgPCAzKSB7CiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICB9CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBzdGF0ZS5sYXN0ID0gKGhvbGQgJiAweDAxKS8qQklUUygxKSovOwogICAgICAgICAgLy8tLS0gRFJPUEJJVFMoMSkgLS0tLy8KICAgICAgICAgIGhvbGQgPj4+PSAxOwogICAgICAgICAgYml0cyAtPSAxOwogICAgICAgICAgLy8tLS0vLwoKICAgICAgICAgIHN3aXRjaCAoKGhvbGQgJiAweDAzKS8qQklUUygyKSovKSB7CiAgICAgICAgICAgIGNhc2UgMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0b3JlZCBibG9jayAqLwogICAgICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgc3RvcmVkIGJsb2NrJXNcbiIsCiAgICAgICAgICAgICAgLy8gICAgICAgIHN0YXRlLmxhc3QgPyAiIChsYXN0KSIgOiAiIikpOwogICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBTVE9SRUQ7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZpeGVkIGJsb2NrICovCiAgICAgICAgICAgICAgZml4ZWR0YWJsZXMoc3RhdGUpOwogICAgICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgZml4ZWQgY29kZXMgYmxvY2slc1xuIiwKICAgICAgICAgICAgICAvLyAgICAgICAgc3RhdGUubGFzdCA/ICIgKGxhc3QpIiA6ICIiKSk7CiAgICAgICAgICAgICAgc3RhdGUubW9kZSA9IExFTl87ICAgICAgICAgICAgIC8qIGRlY29kZSBjb2RlcyAqLwogICAgICAgICAgICAgIGlmIChmbHVzaCA9PT0gWl9UUkVFUykgewogICAgICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMoMikgLS0tLy8KICAgICAgICAgICAgICAgIGhvbGQgPj4+PSAyOwogICAgICAgICAgICAgICAgYml0cyAtPSAyOwogICAgICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICAgICAgYnJlYWsgaW5mX2xlYXZlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZHluYW1pYyBibG9jayAqLwogICAgICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgZHluYW1pYyBjb2RlcyBibG9jayVzXG4iLAogICAgICAgICAgICAgIC8vICAgICAgICBzdGF0ZS5sYXN0ID8gIiAobGFzdCkiIDogIiIpKTsKICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gVEFCTEU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGJsb2NrIHR5cGUnOwogICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICB9CiAgICAgICAgICAvLy0tLSBEUk9QQklUUygyKSAtLS0vLwogICAgICAgICAgaG9sZCA+Pj49IDI7CiAgICAgICAgICBiaXRzIC09IDI7CiAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIFNUT1JFRDoKICAgICAgICAgIC8vLS0tIEJZVEVCSVRTKCkgLS0tLy8gLyogZ28gdG8gYnl0ZSBib3VuZGFyeSAqLwogICAgICAgICAgaG9sZCA+Pj49IGJpdHMgJiA3OwogICAgICAgICAgYml0cyAtPSBiaXRzICYgNzsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIC8vPT09IE5FRURCSVRTKDMyKTsgKi8KICAgICAgICAgIHdoaWxlIChiaXRzIDwgMzIpIHsKICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgIH0KICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIGlmICgoaG9sZCAmIDB4ZmZmZikgIT09ICgoaG9sZCA+Pj4gMTYpIF4gMHhmZmZmKSkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzJzsKICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5sZW5ndGggPSBob2xkICYgMHhmZmZmOwogICAgICAgICAgLy9UcmFjZXYoKHN0ZGVyciwgImluZmxhdGU6ICAgICAgIHN0b3JlZCBsZW5ndGggJXVcbiIsCiAgICAgICAgICAvLyAgICAgICAgc3RhdGUubGVuZ3RoKSk7CiAgICAgICAgICAvLz09PSBJTklUQklUUygpOwogICAgICAgICAgaG9sZCA9IDA7CiAgICAgICAgICBiaXRzID0gMDsKICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIHN0YXRlLm1vZGUgPSBDT1BZXzsKICAgICAgICAgIGlmIChmbHVzaCA9PT0gWl9UUkVFUykgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIENPUFlfOgogICAgICAgICAgc3RhdGUubW9kZSA9IENPUFk7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBDT1BZOgogICAgICAgICAgY29weSA9IHN0YXRlLmxlbmd0aDsKICAgICAgICAgIGlmIChjb3B5KSB7CiAgICAgICAgICAgIGlmIChjb3B5ID4gaGF2ZSkgeyBjb3B5ID0gaGF2ZTsgfQogICAgICAgICAgICBpZiAoY29weSA+IGxlZnQpIHsgY29weSA9IGxlZnQ7IH0KICAgICAgICAgICAgaWYgKGNvcHkgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIC8vLS0tIHptZW1jcHkocHV0LCBuZXh0LCBjb3B5KTsgLS0tCiAgICAgICAgICAgIG91dHB1dC5zZXQoaW5wdXQuc3ViYXJyYXkobmV4dCwgbmV4dCArIGNvcHkpLCBwdXQpOwogICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgIGhhdmUgLT0gY29weTsKICAgICAgICAgICAgbmV4dCArPSBjb3B5OwogICAgICAgICAgICBsZWZ0IC09IGNvcHk7CiAgICAgICAgICAgIHB1dCArPSBjb3B5OwogICAgICAgICAgICBzdGF0ZS5sZW5ndGggLT0gY29weTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICAvL1RyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogICAgICAgc3RvcmVkIGVuZFxuIikpOwogICAgICAgICAgc3RhdGUubW9kZSA9IFRZUEU7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIFRBQkxFOgogICAgICAgICAgLy89PT0gTkVFREJJVFMoMTQpOyAqLwogICAgICAgICAgd2hpbGUgKGJpdHMgPCAxNCkgewogICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgfQogICAgICAgICAgLy89PT0vLwogICAgICAgICAgc3RhdGUubmxlbiA9IChob2xkICYgMHgxZikvKkJJVFMoNSkqLyArIDI1NzsKICAgICAgICAgIC8vLS0tIERST1BCSVRTKDUpIC0tLS8vCiAgICAgICAgICBob2xkID4+Pj0gNTsKICAgICAgICAgIGJpdHMgLT0gNTsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIHN0YXRlLm5kaXN0ID0gKGhvbGQgJiAweDFmKS8qQklUUyg1KSovICsgMTsKICAgICAgICAgIC8vLS0tIERST1BCSVRTKDUpIC0tLS8vCiAgICAgICAgICBob2xkID4+Pj0gNTsKICAgICAgICAgIGJpdHMgLT0gNTsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIHN0YXRlLm5jb2RlID0gKGhvbGQgJiAweDBmKS8qQklUUyg0KSovICsgNDsKICAgICAgICAgIC8vLS0tIERST1BCSVRTKDQpIC0tLS8vCiAgICAgICAgICBob2xkID4+Pj0gNDsKICAgICAgICAgIGJpdHMgLT0gNDsKICAgICAgICAgIC8vLS0tLy8KICAvLyNpZm5kZWYgUEtaSVBfQlVHX1dPUktBUk9VTkQKICAgICAgICAgIGlmIChzdGF0ZS5ubGVuID4gMjg2IHx8IHN0YXRlLm5kaXN0ID4gMzApIHsKICAgICAgICAgICAgc3RybS5tc2cgPSAndG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMnOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAvLyNlbmRpZgogICAgICAgICAgLy9UcmFjZXYoKHN0ZGVyciwgImluZmxhdGU6ICAgICAgIHRhYmxlIHNpemVzIG9rXG4iKSk7CiAgICAgICAgICBzdGF0ZS5oYXZlID0gMDsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBMRU5MRU5TOwogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgTEVOTEVOUzoKICAgICAgICAgIHdoaWxlIChzdGF0ZS5oYXZlIDwgc3RhdGUubmNvZGUpIHsKICAgICAgICAgICAgLy89PT0gTkVFREJJVFMoMyk7CiAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgMykgewogICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICBzdGF0ZS5sZW5zW29yZGVyW3N0YXRlLmhhdmUrK11dID0gKGhvbGQgJiAweDA3KTsvL0JJVFMoMyk7CiAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKDMpIC0tLS8vCiAgICAgICAgICAgIGhvbGQgPj4+PSAzOwogICAgICAgICAgICBiaXRzIC09IDM7CiAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIH0KICAgICAgICAgIHdoaWxlIChzdGF0ZS5oYXZlIDwgMTkpIHsKICAgICAgICAgICAgc3RhdGUubGVuc1tvcmRlcltzdGF0ZS5oYXZlKytdXSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICAvLyBXZSBoYXZlIHNlcGFyYXRlIHRhYmxlcyAmIG5vIHBvaW50ZXJzLiAyIGNvbW1lbnRlZCBsaW5lcyBiZWxvdyBub3QgbmVlZGVkLgogICAgICAgICAgLy9zdGF0ZS5uZXh0ID0gc3RhdGUuY29kZXM7CiAgICAgICAgICAvL3N0YXRlLmxlbmNvZGUgPSBzdGF0ZS5uZXh0OwogICAgICAgICAgLy8gU3dpdGNoIHRvIHVzZSBkeW5hbWljIHRhYmxlCiAgICAgICAgICBzdGF0ZS5sZW5jb2RlID0gc3RhdGUubGVuZHluOwogICAgICAgICAgc3RhdGUubGVuYml0cyA9IDc7CgogICAgICAgICAgb3B0cyA9IHsgYml0czogc3RhdGUubGVuYml0cyB9OwogICAgICAgICAgcmV0ID0gaW5mdHJlZXMoQ09ERVMsIHN0YXRlLmxlbnMsIDAsIDE5LCBzdGF0ZS5sZW5jb2RlLCAwLCBzdGF0ZS53b3JrLCBvcHRzKTsKICAgICAgICAgIHN0YXRlLmxlbmJpdHMgPSBvcHRzLmJpdHM7CgogICAgICAgICAgaWYgKHJldCkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQnOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgICBjb2RlIGxlbmd0aHMgb2tcbiIpKTsKICAgICAgICAgIHN0YXRlLmhhdmUgPSAwOwogICAgICAgICAgc3RhdGUubW9kZSA9IENPREVMRU5TOwogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgQ09ERUxFTlM6CiAgICAgICAgICB3aGlsZSAoc3RhdGUuaGF2ZSA8IHN0YXRlLm5sZW4gKyBzdGF0ZS5uZGlzdCkgewogICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgaGVyZSA9IHN0YXRlLmxlbmNvZGVbaG9sZCAmICgoMSA8PCBzdGF0ZS5sZW5iaXRzKSAtIDEpXTsvKkJJVFMoc3RhdGUubGVuYml0cykqLwogICAgICAgICAgICAgIGhlcmVfYml0cyA9IGhlcmUgPj4+IDI0OwogICAgICAgICAgICAgIGhlcmVfb3AgPSAoaGVyZSA+Pj4gMTYpICYgMHhmZjsKICAgICAgICAgICAgICBoZXJlX3ZhbCA9IGhlcmUgJiAweGZmZmY7CgogICAgICAgICAgICAgIGlmICgoaGVyZV9iaXRzKSA8PSBiaXRzKSB7IGJyZWFrOyB9CiAgICAgICAgICAgICAgLy8tLS0gUFVMTEJZVEUoKSAtLS0vLwogICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChoZXJlX3ZhbCA8IDE2KSB7CiAgICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMoaGVyZS5iaXRzKSAtLS0vLwogICAgICAgICAgICAgIGhvbGQgPj4+PSBoZXJlX2JpdHM7CiAgICAgICAgICAgICAgYml0cyAtPSBoZXJlX2JpdHM7CiAgICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICAgIHN0YXRlLmxlbnNbc3RhdGUuaGF2ZSsrXSA9IGhlcmVfdmFsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIGlmIChoZXJlX3ZhbCA9PT0gMTYpIHsKICAgICAgICAgICAgICAgIC8vPT09IE5FRURCSVRTKGhlcmUuYml0cyArIDIpOwogICAgICAgICAgICAgICAgbiA9IGhlcmVfYml0cyArIDI7CiAgICAgICAgICAgICAgICB3aGlsZSAoYml0cyA8IG4pIHsKICAgICAgICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICAgICAgICAgIGhvbGQgPj4+PSBoZXJlX2JpdHM7CiAgICAgICAgICAgICAgICBiaXRzIC09IGhlcmVfYml0czsKICAgICAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5oYXZlID09PSAwKSB7CiAgICAgICAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgYml0IGxlbmd0aCByZXBlYXQnOwogICAgICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGxlbiA9IHN0YXRlLmxlbnNbc3RhdGUuaGF2ZSAtIDFdOwogICAgICAgICAgICAgICAgY29weSA9IDMgKyAoaG9sZCAmIDB4MDMpOy8vQklUUygyKTsKICAgICAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKDIpIC0tLS8vCiAgICAgICAgICAgICAgICBob2xkID4+Pj0gMjsKICAgICAgICAgICAgICAgIGJpdHMgLT0gMjsKICAgICAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSBpZiAoaGVyZV92YWwgPT09IDE3KSB7CiAgICAgICAgICAgICAgICAvLz09PSBORUVEQklUUyhoZXJlLmJpdHMgKyAzKTsKICAgICAgICAgICAgICAgIG4gPSBoZXJlX2JpdHMgKyAzOwogICAgICAgICAgICAgICAgd2hpbGUgKGJpdHMgPCBuKSB7CiAgICAgICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLz09PS8vCiAgICAgICAgICAgICAgICAvLy0tLSBEUk9QQklUUyhoZXJlLmJpdHMpIC0tLS8vCiAgICAgICAgICAgICAgICBob2xkID4+Pj0gaGVyZV9iaXRzOwogICAgICAgICAgICAgICAgYml0cyAtPSBoZXJlX2JpdHM7CiAgICAgICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgICAgICBsZW4gPSAwOwogICAgICAgICAgICAgICAgY29weSA9IDMgKyAoaG9sZCAmIDB4MDcpOy8vQklUUygzKTsKICAgICAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKDMpIC0tLS8vCiAgICAgICAgICAgICAgICBob2xkID4+Pj0gMzsKICAgICAgICAgICAgICAgIGJpdHMgLT0gMzsKICAgICAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLz09PSBORUVEQklUUyhoZXJlLmJpdHMgKyA3KTsKICAgICAgICAgICAgICAgIG4gPSBoZXJlX2JpdHMgKyA3OwogICAgICAgICAgICAgICAgd2hpbGUgKGJpdHMgPCBuKSB7CiAgICAgICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLz09PS8vCiAgICAgICAgICAgICAgICAvLy0tLSBEUk9QQklUUyhoZXJlLmJpdHMpIC0tLS8vCiAgICAgICAgICAgICAgICBob2xkID4+Pj0gaGVyZV9iaXRzOwogICAgICAgICAgICAgICAgYml0cyAtPSBoZXJlX2JpdHM7CiAgICAgICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgICAgICBsZW4gPSAwOwogICAgICAgICAgICAgICAgY29weSA9IDExICsgKGhvbGQgJiAweDdmKTsvL0JJVFMoNyk7CiAgICAgICAgICAgICAgICAvLy0tLSBEUk9QQklUUyg3KSAtLS0vLwogICAgICAgICAgICAgICAgaG9sZCA+Pj49IDc7CiAgICAgICAgICAgICAgICBiaXRzIC09IDc7CiAgICAgICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChzdGF0ZS5oYXZlICsgY29weSA+IHN0YXRlLm5sZW4gKyBzdGF0ZS5uZGlzdCkgewogICAgICAgICAgICAgICAgc3RybS5tc2cgPSAnaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCc7CiAgICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHdoaWxlIChjb3B5LS0pIHsKICAgICAgICAgICAgICAgIHN0YXRlLmxlbnNbc3RhdGUuaGF2ZSsrXSA9IGxlbjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KCiAgICAgICAgICAvKiBoYW5kbGUgZXJyb3IgYnJlYWtzIGluIHdoaWxlICovCiAgICAgICAgICBpZiAoc3RhdGUubW9kZSA9PT0gQkFEKSB7IGJyZWFrOyB9CgogICAgICAgICAgLyogY2hlY2sgZm9yIGVuZC1vZi1ibG9jayBjb2RlIChiZXR0ZXIgaGF2ZSBvbmUpICovCiAgICAgICAgICBpZiAoc3RhdGUubGVuc1syNTZdID09PSAwKSB7CiAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jayc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQoKICAgICAgICAgIC8qIGJ1aWxkIGNvZGUgdGFibGVzIC0tIG5vdGU6IGRvIG5vdCBjaGFuZ2UgdGhlIGxlbmJpdHMgb3IgZGlzdGJpdHMKICAgICAgICAgICAgIHZhbHVlcyBoZXJlICg5IGFuZCA2KSB3aXRob3V0IHJlYWRpbmcgdGhlIGNvbW1lbnRzIGluIGluZnRyZWVzLmgKICAgICAgICAgICAgIGNvbmNlcm5pbmcgdGhlIEVOT1VHSCBjb25zdGFudHMsIHdoaWNoIGRlcGVuZCBvbiB0aG9zZSB2YWx1ZXMgKi8KICAgICAgICAgIHN0YXRlLmxlbmJpdHMgPSA5OwoKICAgICAgICAgIG9wdHMgPSB7IGJpdHM6IHN0YXRlLmxlbmJpdHMgfTsKICAgICAgICAgIHJldCA9IGluZnRyZWVzKExFTlMsIHN0YXRlLmxlbnMsIDAsIHN0YXRlLm5sZW4sIHN0YXRlLmxlbmNvZGUsIDAsIHN0YXRlLndvcmssIG9wdHMpOwogICAgICAgICAgLy8gV2UgaGF2ZSBzZXBhcmF0ZSB0YWJsZXMgJiBubyBwb2ludGVycy4gMiBjb21tZW50ZWQgbGluZXMgYmVsb3cgbm90IG5lZWRlZC4KICAgICAgICAgIC8vIHN0YXRlLm5leHRfaW5kZXggPSBvcHRzLnRhYmxlX2luZGV4OwogICAgICAgICAgc3RhdGUubGVuYml0cyA9IG9wdHMuYml0czsKICAgICAgICAgIC8vIHN0YXRlLmxlbmNvZGUgPSBzdGF0ZS5uZXh0OwoKICAgICAgICAgIGlmIChyZXQpIHsKICAgICAgICAgICAgc3RybS5tc2cgPSAnaW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0JzsKICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CgogICAgICAgICAgc3RhdGUuZGlzdGJpdHMgPSA2OwogICAgICAgICAgLy9zdGF0ZS5kaXN0Y29kZS5jb3B5KHN0YXRlLmNvZGVzKTsKICAgICAgICAgIC8vIFN3aXRjaCB0byB1c2UgZHluYW1pYyB0YWJsZQogICAgICAgICAgc3RhdGUuZGlzdGNvZGUgPSBzdGF0ZS5kaXN0ZHluOwogICAgICAgICAgb3B0cyA9IHsgYml0czogc3RhdGUuZGlzdGJpdHMgfTsKICAgICAgICAgIHJldCA9IGluZnRyZWVzKERJU1RTLCBzdGF0ZS5sZW5zLCBzdGF0ZS5ubGVuLCBzdGF0ZS5uZGlzdCwgc3RhdGUuZGlzdGNvZGUsIDAsIHN0YXRlLndvcmssIG9wdHMpOwogICAgICAgICAgLy8gV2UgaGF2ZSBzZXBhcmF0ZSB0YWJsZXMgJiBubyBwb2ludGVycy4gMiBjb21tZW50ZWQgbGluZXMgYmVsb3cgbm90IG5lZWRlZC4KICAgICAgICAgIC8vIHN0YXRlLm5leHRfaW5kZXggPSBvcHRzLnRhYmxlX2luZGV4OwogICAgICAgICAgc3RhdGUuZGlzdGJpdHMgPSBvcHRzLmJpdHM7CiAgICAgICAgICAvLyBzdGF0ZS5kaXN0Y29kZSA9IHN0YXRlLm5leHQ7CgogICAgICAgICAgaWYgKHJldCkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGRpc3RhbmNlcyBzZXQnOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICdpbmZsYXRlOiAgICAgICBjb2RlcyBva1xuJykpOwogICAgICAgICAgc3RhdGUubW9kZSA9IExFTl87CiAgICAgICAgICBpZiAoZmx1c2ggPT09IFpfVFJFRVMpIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBMRU5fOgogICAgICAgICAgc3RhdGUubW9kZSA9IExFTjsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIExFTjoKICAgICAgICAgIGlmIChoYXZlID49IDYgJiYgbGVmdCA+PSAyNTgpIHsKICAgICAgICAgICAgLy8tLS0gUkVTVE9SRSgpIC0tLQogICAgICAgICAgICBzdHJtLm5leHRfb3V0ID0gcHV0OwogICAgICAgICAgICBzdHJtLmF2YWlsX291dCA9IGxlZnQ7CiAgICAgICAgICAgIHN0cm0ubmV4dF9pbiA9IG5leHQ7CiAgICAgICAgICAgIHN0cm0uYXZhaWxfaW4gPSBoYXZlOwogICAgICAgICAgICBzdGF0ZS5ob2xkID0gaG9sZDsKICAgICAgICAgICAgc3RhdGUuYml0cyA9IGJpdHM7CiAgICAgICAgICAgIC8vLS0tCiAgICAgICAgICAgIGluZmZhc3Qoc3RybSwgX291dCk7CiAgICAgICAgICAgIC8vLS0tIExPQUQoKSAtLS0KICAgICAgICAgICAgcHV0ID0gc3RybS5uZXh0X291dDsKICAgICAgICAgICAgb3V0cHV0ID0gc3RybS5vdXRwdXQ7CiAgICAgICAgICAgIGxlZnQgPSBzdHJtLmF2YWlsX291dDsKICAgICAgICAgICAgbmV4dCA9IHN0cm0ubmV4dF9pbjsKICAgICAgICAgICAgaW5wdXQgPSBzdHJtLmlucHV0OwogICAgICAgICAgICBoYXZlID0gc3RybS5hdmFpbF9pbjsKICAgICAgICAgICAgaG9sZCA9IHN0YXRlLmhvbGQ7CiAgICAgICAgICAgIGJpdHMgPSBzdGF0ZS5iaXRzOwogICAgICAgICAgICAvLy0tLQoKICAgICAgICAgICAgaWYgKHN0YXRlLm1vZGUgPT09IFRZUEUpIHsKICAgICAgICAgICAgICBzdGF0ZS5iYWNrID0gLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5iYWNrID0gMDsKICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgaGVyZSA9IHN0YXRlLmxlbmNvZGVbaG9sZCAmICgoMSA8PCBzdGF0ZS5sZW5iaXRzKSAtIDEpXTsgIC8qQklUUyhzdGF0ZS5sZW5iaXRzKSovCiAgICAgICAgICAgIGhlcmVfYml0cyA9IGhlcmUgPj4+IDI0OwogICAgICAgICAgICBoZXJlX29wID0gKGhlcmUgPj4+IDE2KSAmIDB4ZmY7CiAgICAgICAgICAgIGhlcmVfdmFsID0gaGVyZSAmIDB4ZmZmZjsKCiAgICAgICAgICAgIGlmIChoZXJlX2JpdHMgPD0gYml0cykgeyBicmVhazsgfQogICAgICAgICAgICAvLy0tLSBQVUxMQllURSgpIC0tLS8vCiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIH0KICAgICAgICAgIGlmIChoZXJlX29wICYmIChoZXJlX29wICYgMHhmMCkgPT09IDApIHsKICAgICAgICAgICAgbGFzdF9iaXRzID0gaGVyZV9iaXRzOwogICAgICAgICAgICBsYXN0X29wID0gaGVyZV9vcDsKICAgICAgICAgICAgbGFzdF92YWwgPSBoZXJlX3ZhbDsKICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgIGhlcmUgPSBzdGF0ZS5sZW5jb2RlW2xhc3RfdmFsICsKICAgICAgICAgICAgICAgICAgICAgICgoaG9sZCAmICgoMSA8PCAobGFzdF9iaXRzICsgbGFzdF9vcCkpIC0gMSkpLypCSVRTKGxhc3QuYml0cyArIGxhc3Qub3ApKi8gPj4gbGFzdF9iaXRzKV07CiAgICAgICAgICAgICAgaGVyZV9iaXRzID0gaGVyZSA+Pj4gMjQ7CiAgICAgICAgICAgICAgaGVyZV9vcCA9IChoZXJlID4+PiAxNikgJiAweGZmOwogICAgICAgICAgICAgIGhlcmVfdmFsID0gaGVyZSAmIDB4ZmZmZjsKCiAgICAgICAgICAgICAgaWYgKChsYXN0X2JpdHMgKyBoZXJlX2JpdHMpIDw9IGJpdHMpIHsgYnJlYWs7IH0KICAgICAgICAgICAgICAvLy0tLSBQVUxMQllURSgpIC0tLS8vCiAgICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMobGFzdC5iaXRzKSAtLS0vLwogICAgICAgICAgICBob2xkID4+Pj0gbGFzdF9iaXRzOwogICAgICAgICAgICBiaXRzIC09IGxhc3RfYml0czsKICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICBzdGF0ZS5iYWNrICs9IGxhc3RfYml0czsKICAgICAgICAgIH0KICAgICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICAgIGhvbGQgPj4+PSBoZXJlX2JpdHM7CiAgICAgICAgICBiaXRzIC09IGhlcmVfYml0czsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIHN0YXRlLmJhY2sgKz0gaGVyZV9iaXRzOwogICAgICAgICAgc3RhdGUubGVuZ3RoID0gaGVyZV92YWw7CiAgICAgICAgICBpZiAoaGVyZV9vcCA9PT0gMCkgewogICAgICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwgaGVyZS52YWwgPj0gMHgyMCAmJiBoZXJlLnZhbCA8IDB4N2YgPwogICAgICAgICAgICAvLyAgICAgICAgImluZmxhdGU6ICAgICAgICAgbGl0ZXJhbCAnJWMnXG4iIDoKICAgICAgICAgICAgLy8gICAgICAgICJpbmZsYXRlOiAgICAgICAgIGxpdGVyYWwgMHglMDJ4XG4iLCBoZXJlLnZhbCkpOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gTElUOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChoZXJlX29wICYgMzIpIHsKICAgICAgICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgICAgIGVuZCBvZiBibG9ja1xuIikpOwogICAgICAgICAgICBzdGF0ZS5iYWNrID0gLTE7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBUWVBFOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChoZXJlX29wICYgNjQpIHsKICAgICAgICAgICAgc3RybS5tc2cgPSAnaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlJzsKICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5leHRyYSA9IGhlcmVfb3AgJiAxNTsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBMRU5FWFQ7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBMRU5FWFQ6CiAgICAgICAgICBpZiAoc3RhdGUuZXh0cmEpIHsKICAgICAgICAgICAgLy89PT0gTkVFREJJVFMoc3RhdGUuZXh0cmEpOwogICAgICAgICAgICBuID0gc3RhdGUuZXh0cmE7CiAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgbikgewogICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICBzdGF0ZS5sZW5ndGggKz0gaG9sZCAmICgoMSA8PCBzdGF0ZS5leHRyYSkgLSAxKS8qQklUUyhzdGF0ZS5leHRyYSkqLzsKICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMoc3RhdGUuZXh0cmEpIC0tLS8vCiAgICAgICAgICAgIGhvbGQgPj4+PSBzdGF0ZS5leHRyYTsKICAgICAgICAgICAgYml0cyAtPSBzdGF0ZS5leHRyYTsKICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICBzdGF0ZS5iYWNrICs9IHN0YXRlLmV4dHJhOwogICAgICAgICAgfQogICAgICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgICAgIGxlbmd0aCAldVxuIiwgc3RhdGUubGVuZ3RoKSk7CiAgICAgICAgICBzdGF0ZS53YXMgPSBzdGF0ZS5sZW5ndGg7CiAgICAgICAgICBzdGF0ZS5tb2RlID0gRElTVDsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIERJU1Q6CiAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgIGhlcmUgPSBzdGF0ZS5kaXN0Y29kZVtob2xkICYgKCgxIDw8IHN0YXRlLmRpc3RiaXRzKSAtIDEpXTsvKkJJVFMoc3RhdGUuZGlzdGJpdHMpKi8KICAgICAgICAgICAgaGVyZV9iaXRzID0gaGVyZSA+Pj4gMjQ7CiAgICAgICAgICAgIGhlcmVfb3AgPSAoaGVyZSA+Pj4gMTYpICYgMHhmZjsKICAgICAgICAgICAgaGVyZV92YWwgPSBoZXJlICYgMHhmZmZmOwoKICAgICAgICAgICAgaWYgKChoZXJlX2JpdHMpIDw9IGJpdHMpIHsgYnJlYWs7IH0KICAgICAgICAgICAgLy8tLS0gUFVMTEJZVEUoKSAtLS0vLwogICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICB9CiAgICAgICAgICBpZiAoKGhlcmVfb3AgJiAweGYwKSA9PT0gMCkgewogICAgICAgICAgICBsYXN0X2JpdHMgPSBoZXJlX2JpdHM7CiAgICAgICAgICAgIGxhc3Rfb3AgPSBoZXJlX29wOwogICAgICAgICAgICBsYXN0X3ZhbCA9IGhlcmVfdmFsOwogICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgaGVyZSA9IHN0YXRlLmRpc3Rjb2RlW2xhc3RfdmFsICsKICAgICAgICAgICAgICAgICAgICAgICgoaG9sZCAmICgoMSA8PCAobGFzdF9iaXRzICsgbGFzdF9vcCkpIC0gMSkpLypCSVRTKGxhc3QuYml0cyArIGxhc3Qub3ApKi8gPj4gbGFzdF9iaXRzKV07CiAgICAgICAgICAgICAgaGVyZV9iaXRzID0gaGVyZSA+Pj4gMjQ7CiAgICAgICAgICAgICAgaGVyZV9vcCA9IChoZXJlID4+PiAxNikgJiAweGZmOwogICAgICAgICAgICAgIGhlcmVfdmFsID0gaGVyZSAmIDB4ZmZmZjsKCiAgICAgICAgICAgICAgaWYgKChsYXN0X2JpdHMgKyBoZXJlX2JpdHMpIDw9IGJpdHMpIHsgYnJlYWs7IH0KICAgICAgICAgICAgICAvLy0tLSBQVUxMQllURSgpIC0tLS8vCiAgICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMobGFzdC5iaXRzKSAtLS0vLwogICAgICAgICAgICBob2xkID4+Pj0gbGFzdF9iaXRzOwogICAgICAgICAgICBiaXRzIC09IGxhc3RfYml0czsKICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICBzdGF0ZS5iYWNrICs9IGxhc3RfYml0czsKICAgICAgICAgIH0KICAgICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICAgIGhvbGQgPj4+PSBoZXJlX2JpdHM7CiAgICAgICAgICBiaXRzIC09IGhlcmVfYml0czsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIHN0YXRlLmJhY2sgKz0gaGVyZV9iaXRzOwogICAgICAgICAgaWYgKGhlcmVfb3AgJiA2NCkgewogICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGRpc3RhbmNlIGNvZGUnOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlLm9mZnNldCA9IGhlcmVfdmFsOwogICAgICAgICAgc3RhdGUuZXh0cmEgPSAoaGVyZV9vcCkgJiAxNTsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBESVNURVhUOwogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgRElTVEVYVDoKICAgICAgICAgIGlmIChzdGF0ZS5leHRyYSkgewogICAgICAgICAgICAvLz09PSBORUVEQklUUyhzdGF0ZS5leHRyYSk7CiAgICAgICAgICAgIG4gPSBzdGF0ZS5leHRyYTsKICAgICAgICAgICAgd2hpbGUgKGJpdHMgPCBuKSB7CiAgICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLz09PS8vCiAgICAgICAgICAgIHN0YXRlLm9mZnNldCArPSBob2xkICYgKCgxIDw8IHN0YXRlLmV4dHJhKSAtIDEpLypCSVRTKHN0YXRlLmV4dHJhKSovOwogICAgICAgICAgICAvLy0tLSBEUk9QQklUUyhzdGF0ZS5leHRyYSkgLS0tLy8KICAgICAgICAgICAgaG9sZCA+Pj49IHN0YXRlLmV4dHJhOwogICAgICAgICAgICBiaXRzIC09IHN0YXRlLmV4dHJhOwogICAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICAgIHN0YXRlLmJhY2sgKz0gc3RhdGUuZXh0cmE7CiAgICAgICAgICB9CiAgLy8jaWZkZWYgSU5GTEFURV9TVFJJQ1QKICAgICAgICAgIGlmIChzdGF0ZS5vZmZzZXQgPiBzdGF0ZS5kbWF4KSB7CiAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrJzsKICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgLy8jZW5kaWYKICAgICAgICAgIC8vVHJhY2V2digoc3RkZXJyLCAiaW5mbGF0ZTogICAgICAgICBkaXN0YW5jZSAldVxuIiwgc3RhdGUub2Zmc2V0KSk7CiAgICAgICAgICBzdGF0ZS5tb2RlID0gTUFUQ0g7CiAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgY2FzZSBNQVRDSDoKICAgICAgICAgIGlmIChsZWZ0ID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgY29weSA9IF9vdXQgLSBsZWZ0OwogICAgICAgICAgaWYgKHN0YXRlLm9mZnNldCA+IGNvcHkpIHsgICAgICAgICAvKiBjb3B5IGZyb20gd2luZG93ICovCiAgICAgICAgICAgIGNvcHkgPSBzdGF0ZS5vZmZzZXQgLSBjb3B5OwogICAgICAgICAgICBpZiAoY29weSA+IHN0YXRlLndoYXZlKSB7CiAgICAgICAgICAgICAgaWYgKHN0YXRlLnNhbmUpIHsKICAgICAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrJzsKICAgICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgLy8gKCEpIFRoaXMgYmxvY2sgaXMgZGlzYWJsZWQgaW4gemxpYiBkZWZhdWx0cywKICAvLyBkb24ndCBlbmFibGUgaXQgZm9yIGJpbmFyeSBjb21wYXRpYmlsaXR5CiAgLy8jaWZkZWYgSU5GTEFURV9BTExPV19JTlZBTElEX0RJU1RBTkNFX1RPT0ZBUl9BUlJSCiAgLy8gICAgICAgICAgVHJhY2UoKHN0ZGVyciwgImluZmxhdGUuYyB0b28gZmFyXG4iKSk7CiAgLy8gICAgICAgICAgY29weSAtPSBzdGF0ZS53aGF2ZTsKICAvLyAgICAgICAgICBpZiAoY29weSA+IHN0YXRlLmxlbmd0aCkgeyBjb3B5ID0gc3RhdGUubGVuZ3RoOyB9CiAgLy8gICAgICAgICAgaWYgKGNvcHkgPiBsZWZ0KSB7IGNvcHkgPSBsZWZ0OyB9CiAgLy8gICAgICAgICAgbGVmdCAtPSBjb3B5OwogIC8vICAgICAgICAgIHN0YXRlLmxlbmd0aCAtPSBjb3B5OwogIC8vICAgICAgICAgIGRvIHsKICAvLyAgICAgICAgICAgIG91dHB1dFtwdXQrK10gPSAwOwogIC8vICAgICAgICAgIH0gd2hpbGUgKC0tY29weSk7CiAgLy8gICAgICAgICAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCkgeyBzdGF0ZS5tb2RlID0gTEVOOyB9CiAgLy8gICAgICAgICAgYnJlYWs7CiAgLy8jZW5kaWYKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoY29weSA+IHN0YXRlLnduZXh0KSB7CiAgICAgICAgICAgICAgY29weSAtPSBzdGF0ZS53bmV4dDsKICAgICAgICAgICAgICBmcm9tID0gc3RhdGUud3NpemUgLSBjb3B5OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIGZyb20gPSBzdGF0ZS53bmV4dCAtIGNvcHk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvcHkgPiBzdGF0ZS5sZW5ndGgpIHsgY29weSA9IHN0YXRlLmxlbmd0aDsgfQogICAgICAgICAgICBmcm9tX3NvdXJjZSA9IHN0YXRlLndpbmRvdzsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvcHkgZnJvbSBvdXRwdXQgKi8KICAgICAgICAgICAgZnJvbV9zb3VyY2UgPSBvdXRwdXQ7CiAgICAgICAgICAgIGZyb20gPSBwdXQgLSBzdGF0ZS5vZmZzZXQ7CiAgICAgICAgICAgIGNvcHkgPSBzdGF0ZS5sZW5ndGg7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY29weSA+IGxlZnQpIHsgY29weSA9IGxlZnQ7IH0KICAgICAgICAgIGxlZnQgLT0gY29weTsKICAgICAgICAgIHN0YXRlLmxlbmd0aCAtPSBjb3B5OwogICAgICAgICAgZG8gewogICAgICAgICAgICBvdXRwdXRbcHV0KytdID0gZnJvbV9zb3VyY2VbZnJvbSsrXTsKICAgICAgICAgIH0gd2hpbGUgKC0tY29weSk7CiAgICAgICAgICBpZiAoc3RhdGUubGVuZ3RoID09PSAwKSB7IHN0YXRlLm1vZGUgPSBMRU47IH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgTElUOgogICAgICAgICAgaWYgKGxlZnQgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICBvdXRwdXRbcHV0KytdID0gc3RhdGUubGVuZ3RoOwogICAgICAgICAgbGVmdC0tOwogICAgICAgICAgc3RhdGUubW9kZSA9IExFTjsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgQ0hFQ0s6CiAgICAgICAgICBpZiAoc3RhdGUud3JhcCkgewogICAgICAgICAgICAvLz09PSBORUVEQklUUygzMik7CiAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgMzIpIHsKICAgICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgLy8gVXNlICd8JyBpbnN0ZWFkIG9mICcrJyB0byBtYWtlIHN1cmUgdGhhdCByZXN1bHQgaXMgc2lnbmVkCiAgICAgICAgICAgICAgaG9sZCB8PSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgICAgX291dCAtPSBsZWZ0OwogICAgICAgICAgICBzdHJtLnRvdGFsX291dCArPSBfb3V0OwogICAgICAgICAgICBzdGF0ZS50b3RhbCArPSBfb3V0OwogICAgICAgICAgICBpZiAoX291dCkgewogICAgICAgICAgICAgIHN0cm0uYWRsZXIgPSBzdGF0ZS5jaGVjayA9CiAgICAgICAgICAgICAgICAgIC8qVVBEQVRFKHN0YXRlLmNoZWNrLCBwdXQgLSBfb3V0LCBfb3V0KTsqLwogICAgICAgICAgICAgICAgICAoc3RhdGUuZmxhZ3MgPyBjcmMzMl8xKHN0YXRlLmNoZWNrLCBvdXRwdXQsIF9vdXQsIHB1dCAtIF9vdXQpIDogYWRsZXIzMl8xKHN0YXRlLmNoZWNrLCBvdXRwdXQsIF9vdXQsIHB1dCAtIF9vdXQpKTsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgX291dCA9IGxlZnQ7CiAgICAgICAgICAgIC8vIE5COiBjcmMzMiBzdG9yZWQgYXMgc2lnbmVkIDMyLWJpdCBpbnQsIHpzd2FwMzIgcmV0dXJucyBzaWduZWQgdG9vCiAgICAgICAgICAgIGlmICgoc3RhdGUuZmxhZ3MgPyBob2xkIDogenN3YXAzMihob2xkKSkgIT09IHN0YXRlLmNoZWNrKSB7CiAgICAgICAgICAgICAgc3RybS5tc2cgPSAnaW5jb3JyZWN0IGRhdGEgY2hlY2snOwogICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy89PT0gSU5JVEJJVFMoKTsKICAgICAgICAgICAgaG9sZCA9IDA7CiAgICAgICAgICAgIGJpdHMgPSAwOwogICAgICAgICAgICAvLz09PS8vCiAgICAgICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgIGNoZWNrIG1hdGNoZXMgdHJhaWxlclxuIikpOwogICAgICAgICAgfQogICAgICAgICAgc3RhdGUubW9kZSA9IExFTkdUSDsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIExFTkdUSDoKICAgICAgICAgIGlmIChzdGF0ZS53cmFwICYmIHN0YXRlLmZsYWdzKSB7CiAgICAgICAgICAgIC8vPT09IE5FRURCSVRTKDMyKTsKICAgICAgICAgICAgd2hpbGUgKGJpdHMgPCAzMikgewogICAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICBpZiAoaG9sZCAhPT0gKHN0YXRlLnRvdGFsICYgMHhmZmZmZmZmZikpIHsKICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrJzsKICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgICBiaXRzID0gMDsKICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICAvL1RyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogICBsZW5ndGggbWF0Y2hlcyB0cmFpbGVyXG4iKSk7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZS5tb2RlID0gRE9ORTsKICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlIERPTkU6CiAgICAgICAgICByZXQgPSBaX1NUUkVBTV9FTkQkMTsKICAgICAgICAgIGJyZWFrIGluZl9sZWF2ZTsKICAgICAgICBjYXNlIEJBRDoKICAgICAgICAgIHJldCA9IFpfREFUQV9FUlJPUiQxOwogICAgICAgICAgYnJlYWsgaW5mX2xlYXZlOwogICAgICAgIGNhc2UgTUVNOgogICAgICAgICAgcmV0dXJuIFpfTUVNX0VSUk9SJDE7CiAgICAgICAgY2FzZSBTWU5DOgogICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gWl9TVFJFQU1fRVJST1IkMTsKICAgICAgfQogICAgfQoKICAgIC8vIGluZl9sZWF2ZSA8LSBoZXJlIGlzIHJlYWwgcGxhY2UgZm9yICJnb3RvIGluZl9sZWF2ZSIsIGVtdWxhdGVkIHZpYSAiYnJlYWsgaW5mX2xlYXZlIgoKICAgIC8qCiAgICAgICBSZXR1cm4gZnJvbSBpbmZsYXRlKCksIHVwZGF0aW5nIHRoZSB0b3RhbCBjb3VudHMgYW5kIHRoZSBjaGVjayB2YWx1ZS4KICAgICAgIElmIHRoZXJlIHdhcyBubyBwcm9ncmVzcyBkdXJpbmcgdGhlIGluZmxhdGUoKSBjYWxsLCByZXR1cm4gYSBidWZmZXIKICAgICAgIGVycm9yLiAgQ2FsbCB1cGRhdGV3aW5kb3coKSB0byBjcmVhdGUgYW5kL29yIHVwZGF0ZSB0aGUgd2luZG93IHN0YXRlLgogICAgICAgTm90ZTogYSBtZW1vcnkgZXJyb3IgZnJvbSBpbmZsYXRlKCkgaXMgbm9uLXJlY292ZXJhYmxlLgogICAgICovCgogICAgLy8tLS0gUkVTVE9SRSgpIC0tLQogICAgc3RybS5uZXh0X291dCA9IHB1dDsKICAgIHN0cm0uYXZhaWxfb3V0ID0gbGVmdDsKICAgIHN0cm0ubmV4dF9pbiA9IG5leHQ7CiAgICBzdHJtLmF2YWlsX2luID0gaGF2ZTsKICAgIHN0YXRlLmhvbGQgPSBob2xkOwogICAgc3RhdGUuYml0cyA9IGJpdHM7CiAgICAvLy0tLQoKICAgIGlmIChzdGF0ZS53c2l6ZSB8fCAoX291dCAhPT0gc3RybS5hdmFpbF9vdXQgJiYgc3RhdGUubW9kZSA8IEJBRCAmJgogICAgICAgICAgICAgICAgICAgICAgICAoc3RhdGUubW9kZSA8IENIRUNLIHx8IGZsdXNoICE9PSBaX0ZJTklTSCQxKSkpIHsKICAgICAgaWYgKHVwZGF0ZXdpbmRvdyhzdHJtLCBzdHJtLm91dHB1dCwgc3RybS5uZXh0X291dCwgX291dCAtIHN0cm0uYXZhaWxfb3V0KSkgOwogICAgfQogICAgX2luIC09IHN0cm0uYXZhaWxfaW47CiAgICBfb3V0IC09IHN0cm0uYXZhaWxfb3V0OwogICAgc3RybS50b3RhbF9pbiArPSBfaW47CiAgICBzdHJtLnRvdGFsX291dCArPSBfb3V0OwogICAgc3RhdGUudG90YWwgKz0gX291dDsKICAgIGlmIChzdGF0ZS53cmFwICYmIF9vdXQpIHsKICAgICAgc3RybS5hZGxlciA9IHN0YXRlLmNoZWNrID0gLypVUERBVEUoc3RhdGUuY2hlY2ssIHN0cm0ubmV4dF9vdXQgLSBfb3V0LCBfb3V0KTsqLwogICAgICAgIChzdGF0ZS5mbGFncyA/IGNyYzMyXzEoc3RhdGUuY2hlY2ssIG91dHB1dCwgX291dCwgc3RybS5uZXh0X291dCAtIF9vdXQpIDogYWRsZXIzMl8xKHN0YXRlLmNoZWNrLCBvdXRwdXQsIF9vdXQsIHN0cm0ubmV4dF9vdXQgLSBfb3V0KSk7CiAgICB9CiAgICBzdHJtLmRhdGFfdHlwZSA9IHN0YXRlLmJpdHMgKyAoc3RhdGUubGFzdCA/IDY0IDogMCkgKwogICAgICAgICAgICAgICAgICAgICAgKHN0YXRlLm1vZGUgPT09IFRZUEUgPyAxMjggOiAwKSArCiAgICAgICAgICAgICAgICAgICAgICAoc3RhdGUubW9kZSA9PT0gTEVOXyB8fCBzdGF0ZS5tb2RlID09PSBDT1BZXyA/IDI1NiA6IDApOwogICAgaWYgKCgoX2luID09PSAwICYmIF9vdXQgPT09IDApIHx8IGZsdXNoID09PSBaX0ZJTklTSCQxKSAmJiByZXQgPT09IFpfT0skMSkgewogICAgICByZXQgPSBaX0JVRl9FUlJPUjsKICAgIH0KICAgIHJldHVybiByZXQ7CiAgfTsKCgogIGNvbnN0IGluZmxhdGVFbmQgPSAoc3RybSkgPT4gewoKICAgIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSAvKnx8IHN0cm0tPnpmcmVlID09IChmcmVlX2Z1bmMpMCovKSB7CiAgICAgIHJldHVybiBaX1NUUkVBTV9FUlJPUiQxOwogICAgfQoKICAgIGxldCBzdGF0ZSA9IHN0cm0uc3RhdGU7CiAgICBpZiAoc3RhdGUud2luZG93KSB7CiAgICAgIHN0YXRlLndpbmRvdyA9IG51bGw7CiAgICB9CiAgICBzdHJtLnN0YXRlID0gbnVsbDsKICAgIHJldHVybiBaX09LJDE7CiAgfTsKCgogIGNvbnN0IGluZmxhdGVHZXRIZWFkZXIgPSAoc3RybSwgaGVhZCkgPT4gewoKICAgIC8qIGNoZWNrIHN0YXRlICovCiAgICBpZiAoIXN0cm0gfHwgIXN0cm0uc3RhdGUpIHsgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDE7IH0KICAgIGNvbnN0IHN0YXRlID0gc3RybS5zdGF0ZTsKICAgIGlmICgoc3RhdGUud3JhcCAmIDIpID09PSAwKSB7IHJldHVybiBaX1NUUkVBTV9FUlJPUiQxOyB9CgogICAgLyogc2F2ZSBoZWFkZXIgc3RydWN0dXJlICovCiAgICBzdGF0ZS5oZWFkID0gaGVhZDsKICAgIGhlYWQuZG9uZSA9IGZhbHNlOwogICAgcmV0dXJuIFpfT0skMTsKICB9OwoKCiAgY29uc3QgaW5mbGF0ZVNldERpY3Rpb25hcnkgPSAoc3RybSwgZGljdGlvbmFyeSkgPT4gewogICAgY29uc3QgZGljdExlbmd0aCA9IGRpY3Rpb25hcnkubGVuZ3RoOwoKICAgIGxldCBzdGF0ZTsKICAgIGxldCBkaWN0aWQ7CiAgICBsZXQgcmV0OwoKICAgIC8qIGNoZWNrIHN0YXRlICovCiAgICBpZiAoIXN0cm0gLyogPT0gWl9OVUxMICovIHx8ICFzdHJtLnN0YXRlIC8qID09IFpfTlVMTCAqLykgeyByZXR1cm4gWl9TVFJFQU1fRVJST1IkMTsgfQogICAgc3RhdGUgPSBzdHJtLnN0YXRlOwoKICAgIGlmIChzdGF0ZS53cmFwICE9PSAwICYmIHN0YXRlLm1vZGUgIT09IERJQ1QpIHsKICAgICAgcmV0dXJuIFpfU1RSRUFNX0VSUk9SJDE7CiAgICB9CgogICAgLyogY2hlY2sgZm9yIGNvcnJlY3QgZGljdGlvbmFyeSBpZGVudGlmaWVyICovCiAgICBpZiAoc3RhdGUubW9kZSA9PT0gRElDVCkgewogICAgICBkaWN0aWQgPSAxOyAvKiBhZGxlcjMyKDAsIG51bGwsIDApKi8KICAgICAgLyogZGljdGlkID0gYWRsZXIzMihkaWN0aWQsIGRpY3Rpb25hcnksIGRpY3RMZW5ndGgpOyAqLwogICAgICBkaWN0aWQgPSBhZGxlcjMyXzEoZGljdGlkLCBkaWN0aW9uYXJ5LCBkaWN0TGVuZ3RoLCAwKTsKICAgICAgaWYgKGRpY3RpZCAhPT0gc3RhdGUuY2hlY2spIHsKICAgICAgICByZXR1cm4gWl9EQVRBX0VSUk9SJDE7CiAgICAgIH0KICAgIH0KICAgIC8qIGNvcHkgZGljdGlvbmFyeSB0byB3aW5kb3cgdXNpbmcgdXBkYXRld2luZG93KCksIHdoaWNoIHdpbGwgYW1lbmQgdGhlCiAgICAgZXhpc3RpbmcgZGljdGlvbmFyeSBpZiBhcHByb3ByaWF0ZSAqLwogICAgcmV0ID0gdXBkYXRld2luZG93KHN0cm0sIGRpY3Rpb25hcnksIGRpY3RMZW5ndGgsIGRpY3RMZW5ndGgpOwogICAgaWYgKHJldCkgewogICAgICBzdGF0ZS5tb2RlID0gTUVNOwogICAgICByZXR1cm4gWl9NRU1fRVJST1IkMTsKICAgIH0KICAgIHN0YXRlLmhhdmVkaWN0ID0gMTsKICAgIC8vIFRyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogICBkaWN0aW9uYXJ5IHNldFxuIikpOwogICAgcmV0dXJuIFpfT0skMTsKICB9OwoKCiAgdmFyIGluZmxhdGVSZXNldF8xID0gaW5mbGF0ZVJlc2V0OwogIHZhciBpbmZsYXRlUmVzZXQyXzEgPSBpbmZsYXRlUmVzZXQyOwogIHZhciBpbmZsYXRlUmVzZXRLZWVwXzEgPSBpbmZsYXRlUmVzZXRLZWVwOwogIHZhciBpbmZsYXRlSW5pdF8xID0gaW5mbGF0ZUluaXQ7CiAgdmFyIGluZmxhdGVJbml0Ml8xID0gaW5mbGF0ZUluaXQyOwogIHZhciBpbmZsYXRlXzIkMSA9IGluZmxhdGUkMjsKICB2YXIgaW5mbGF0ZUVuZF8xID0gaW5mbGF0ZUVuZDsKICB2YXIgaW5mbGF0ZUdldEhlYWRlcl8xID0gaW5mbGF0ZUdldEhlYWRlcjsKICB2YXIgaW5mbGF0ZVNldERpY3Rpb25hcnlfMSA9IGluZmxhdGVTZXREaWN0aW9uYXJ5OwogIHZhciBpbmZsYXRlSW5mbyA9ICdwYWtvIGluZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpJzsKCiAgLyogTm90IGltcGxlbWVudGVkCiAgbW9kdWxlLmV4cG9ydHMuaW5mbGF0ZUNvcHkgPSBpbmZsYXRlQ29weTsKICBtb2R1bGUuZXhwb3J0cy5pbmZsYXRlR2V0RGljdGlvbmFyeSA9IGluZmxhdGVHZXREaWN0aW9uYXJ5OwogIG1vZHVsZS5leHBvcnRzLmluZmxhdGVNYXJrID0gaW5mbGF0ZU1hcms7CiAgbW9kdWxlLmV4cG9ydHMuaW5mbGF0ZVByaW1lID0gaW5mbGF0ZVByaW1lOwogIG1vZHVsZS5leHBvcnRzLmluZmxhdGVTeW5jID0gaW5mbGF0ZVN5bmM7CiAgbW9kdWxlLmV4cG9ydHMuaW5mbGF0ZVN5bmNQb2ludCA9IGluZmxhdGVTeW5jUG9pbnQ7CiAgbW9kdWxlLmV4cG9ydHMuaW5mbGF0ZVVuZGVybWluZSA9IGluZmxhdGVVbmRlcm1pbmU7CiAgKi8KCiAgdmFyIGluZmxhdGVfMSQyID0gewogIAlpbmZsYXRlUmVzZXQ6IGluZmxhdGVSZXNldF8xLAogIAlpbmZsYXRlUmVzZXQyOiBpbmZsYXRlUmVzZXQyXzEsCiAgCWluZmxhdGVSZXNldEtlZXA6IGluZmxhdGVSZXNldEtlZXBfMSwKICAJaW5mbGF0ZUluaXQ6IGluZmxhdGVJbml0XzEsCiAgCWluZmxhdGVJbml0MjogaW5mbGF0ZUluaXQyXzEsCiAgCWluZmxhdGU6IGluZmxhdGVfMiQxLAogIAlpbmZsYXRlRW5kOiBpbmZsYXRlRW5kXzEsCiAgCWluZmxhdGVHZXRIZWFkZXI6IGluZmxhdGVHZXRIZWFkZXJfMSwKICAJaW5mbGF0ZVNldERpY3Rpb25hcnk6IGluZmxhdGVTZXREaWN0aW9uYXJ5XzEsCiAgCWluZmxhdGVJbmZvOiBpbmZsYXRlSW5mbwogIH07CgogIC8vIChDKSAxOTk1LTIwMTMgSmVhbi1sb3VwIEdhaWxseSBhbmQgTWFyayBBZGxlcgogIC8vIChDKSAyMDE0LTIwMTcgVml0YWx5IFB1enJpbiBhbmQgQW5kcmV5IFR1cGl0c2luCiAgLy8KICAvLyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAogIC8vIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogIC8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAgLy8KICAvLyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAvLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0CiAgLy8gZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgogIC8vCiAgLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKICAvLyAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgLy8gICBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291bGQgYmUKICAvLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCiAgLy8gMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCBhbmQgbXVzdCBub3QgYmUKICAvLyAgIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KICAvLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKICBmdW5jdGlvbiBHWmhlYWRlcigpIHsKICAgIC8qIHRydWUgaWYgY29tcHJlc3NlZCBkYXRhIGJlbGlldmVkIHRvIGJlIHRleHQgKi8KICAgIHRoaXMudGV4dCAgICAgICA9IDA7CiAgICAvKiBtb2RpZmljYXRpb24gdGltZSAqLwogICAgdGhpcy50aW1lICAgICAgID0gMDsKICAgIC8qIGV4dHJhIGZsYWdzIChub3QgdXNlZCB3aGVuIHdyaXRpbmcgYSBnemlwIGZpbGUpICovCiAgICB0aGlzLnhmbGFncyAgICAgPSAwOwogICAgLyogb3BlcmF0aW5nIHN5c3RlbSAqLwogICAgdGhpcy5vcyAgICAgICAgID0gMDsKICAgIC8qIHBvaW50ZXIgdG8gZXh0cmEgZmllbGQgb3IgWl9OVUxMIGlmIG5vbmUgKi8KICAgIHRoaXMuZXh0cmEgICAgICA9IG51bGw7CiAgICAvKiBleHRyYSBmaWVsZCBsZW5ndGggKHZhbGlkIGlmIGV4dHJhICE9IFpfTlVMTCkgKi8KICAgIHRoaXMuZXh0cmFfbGVuICA9IDA7IC8vIEFjdHVhbGx5LCB3ZSBkb24ndCBuZWVkIGl0IGluIEpTLAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnV0IGxlYXZlIGZvciBmZXcgY29kZSBtb2RpZmljYXRpb25zCgogICAgLy8KICAgIC8vIFNldHVwIGxpbWl0cyBpcyBub3QgbmVjZXNzYXJ5IGJlY2F1c2UgaW4ganMgd2Ugc2hvdWxkIG5vdCBwcmVhbGxvY2F0ZSBtZW1vcnkKICAgIC8vIGZvciBpbmZsYXRlIHVzZSBjb25zdGFudCBsaW1pdCBpbiA2NTUzNiBieXRlcwogICAgLy8KCiAgICAvKiBzcGFjZSBhdCBleHRyYSAob25seSB3aGVuIHJlYWRpbmcgaGVhZGVyKSAqLwogICAgLy8gdGhpcy5leHRyYV9tYXggID0gMDsKICAgIC8qIHBvaW50ZXIgdG8gemVyby10ZXJtaW5hdGVkIGZpbGUgbmFtZSBvciBaX05VTEwgKi8KICAgIHRoaXMubmFtZSAgICAgICA9ICcnOwogICAgLyogc3BhY2UgYXQgbmFtZSAob25seSB3aGVuIHJlYWRpbmcgaGVhZGVyKSAqLwogICAgLy8gdGhpcy5uYW1lX21heCAgID0gMDsKICAgIC8qIHBvaW50ZXIgdG8gemVyby10ZXJtaW5hdGVkIGNvbW1lbnQgb3IgWl9OVUxMICovCiAgICB0aGlzLmNvbW1lbnQgICAgPSAnJzsKICAgIC8qIHNwYWNlIGF0IGNvbW1lbnQgKG9ubHkgd2hlbiByZWFkaW5nIGhlYWRlcikgKi8KICAgIC8vIHRoaXMuY29tbV9tYXggICA9IDA7CiAgICAvKiB0cnVlIGlmIHRoZXJlIHdhcyBvciB3aWxsIGJlIGEgaGVhZGVyIGNyYyAqLwogICAgdGhpcy5oY3JjICAgICAgID0gMDsKICAgIC8qIHRydWUgd2hlbiBkb25lIHJlYWRpbmcgZ3ppcCBoZWFkZXIgKG5vdCB1c2VkIHdoZW4gd3JpdGluZyBhIGd6aXAgZmlsZSkgKi8KICAgIHRoaXMuZG9uZSAgICAgICA9IGZhbHNlOwogIH0KCiAgdmFyIGd6aGVhZGVyID0gR1poZWFkZXI7CgogIGNvbnN0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKCiAgLyogUHVibGljIGNvbnN0YW50cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKICBjb25zdCB7CiAgICBaX05PX0ZMVVNILCBaX0ZJTklTSCwKICAgIFpfT0ssIFpfU1RSRUFNX0VORCwgWl9ORUVEX0RJQ1QsIFpfU1RSRUFNX0VSUk9SLCBaX0RBVEFfRVJST1IsIFpfTUVNX0VSUk9SCiAgfSA9IGNvbnN0YW50cyQyOwoKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCiAgLyoqCiAgICogY2xhc3MgSW5mbGF0ZQogICAqCiAgICogR2VuZXJpYyBKUy1zdHlsZSB3cmFwcGVyIGZvciB6bGliIGNhbGxzLiBJZiB5b3UgZG9uJ3QgbmVlZAogICAqIHN0cmVhbWluZyBiZWhhdmlvdXIgLSB1c2UgbW9yZSBzaW1wbGUgZnVuY3Rpb25zOiBbW2luZmxhdGVdXQogICAqIGFuZCBbW2luZmxhdGVSYXddXS4KICAgKiovCgogIC8qIGludGVybmFsCiAgICogaW5mbGF0ZS5jaHVua3MgLT4gQXJyYXkKICAgKgogICAqIENodW5rcyBvZiBvdXRwdXQgZGF0YSwgaWYgW1tJbmZsYXRlI29uRGF0YV1dIG5vdCBvdmVycmlkZGVuLgogICAqKi8KCiAgLyoqCiAgICogSW5mbGF0ZS5yZXN1bHQgLT4gVWludDhBcnJheXxTdHJpbmcKICAgKgogICAqIFVuY29tcHJlc3NlZCByZXN1bHQsIGdlbmVyYXRlZCBieSBkZWZhdWx0IFtbSW5mbGF0ZSNvbkRhdGFdXQogICAqIGFuZCBbW0luZmxhdGUjb25FbmRdXSBoYW5kbGVycy4gRmlsbGVkIGFmdGVyIHlvdSBwdXNoIGxhc3QgY2h1bmsKICAgKiAoY2FsbCBbW0luZmxhdGUjcHVzaF1dIHdpdGggYFpfRklOSVNIYCAvIGB0cnVlYCBwYXJhbSkuCiAgICoqLwoKICAvKioKICAgKiBJbmZsYXRlLmVyciAtPiBOdW1iZXIKICAgKgogICAqIEVycm9yIGNvZGUgYWZ0ZXIgaW5mbGF0ZSBmaW5pc2hlZC4gMCAoWl9PSykgb24gc3VjY2Vzcy4KICAgKiBTaG91bGQgYmUgY2hlY2tlZCBpZiBicm9rZW4gZGF0YSBwb3NzaWJsZS4KICAgKiovCgogIC8qKgogICAqIEluZmxhdGUubXNnIC0+IFN0cmluZwogICAqCiAgICogRXJyb3IgbWVzc2FnZSwgaWYgW1tJbmZsYXRlLmVycl1dICE9IDAKICAgKiovCgoKICAvKioKICAgKiBuZXcgSW5mbGF0ZShvcHRpb25zKQogICAqIC0gb3B0aW9ucyAoT2JqZWN0KTogemxpYiBpbmZsYXRlIG9wdGlvbnMuCiAgICoKICAgKiBDcmVhdGVzIG5ldyBpbmZsYXRvciBpbnN0YW5jZSB3aXRoIHNwZWNpZmllZCBwYXJhbXMuIFRocm93cyBleGNlcHRpb24KICAgKiBvbiBiYWQgcGFyYW1zLiBTdXBwb3J0ZWQgb3B0aW9uczoKICAgKgogICAqIC0gYHdpbmRvd0JpdHNgCiAgICogLSBgZGljdGlvbmFyeWAKICAgKgogICAqIFtodHRwOi8vemxpYi5uZXQvbWFudWFsLmh0bWwjQWR2YW5jZWRdKGh0dHA6Ly96bGliLm5ldC9tYW51YWwuaHRtbCNBZHZhbmNlZCkKICAgKiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGVzZS4KICAgKgogICAqIEFkZGl0aW9uYWwgb3B0aW9ucywgZm9yIGludGVybmFsIG5lZWRzOgogICAqCiAgICogLSBgY2h1bmtTaXplYCAtIHNpemUgb2YgZ2VuZXJhdGVkIGRhdGEgY2h1bmtzICgxNksgYnkgZGVmYXVsdCkKICAgKiAtIGByYXdgIChCb29sZWFuKSAtIGRvIHJhdyBpbmZsYXRlCiAgICogLSBgdG9gIChTdHJpbmcpIC0gaWYgZXF1YWwgdG8gJ3N0cmluZycsIHRoZW4gcmVzdWx0IHdpbGwgYmUgY29udmVydGVkCiAgICogICBmcm9tIHV0ZjggdG8gdXRmMTYgKGphdmFzY3JpcHQpIHN0cmluZy4gV2hlbiBzdHJpbmcgb3V0cHV0IHJlcXVlc3RlZCwKICAgKiAgIGNodW5rIGxlbmd0aCBjYW4gZGlmZmVyIGZyb20gYGNodW5rU2l6ZWAsIGRlcGVuZGluZyBvbiBjb250ZW50LgogICAqCiAgICogQnkgZGVmYXVsdCwgd2hlbiBubyBvcHRpb25zIHNldCwgYXV0b2RldGVjdCBkZWZsYXRlL2d6aXAgZGF0YSBmb3JtYXQgdmlhCiAgICogd3JhcHBlciBoZWFkZXIuCiAgICoKICAgKiAjIyMjIyBFeGFtcGxlOgogICAqCiAgICogYGBgamF2YXNjcmlwdAogICAqIGNvbnN0IHBha28gPSByZXF1aXJlKCdwYWtvJykKICAgKiBjb25zdCBjaHVuazEgPSBuZXcgVWludDhBcnJheShbMSwyLDMsNCw1LDYsNyw4LDldKQogICAqIGNvbnN0IGNodW5rMiA9IG5ldyBVaW50OEFycmF5KFsxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOV0pOwogICAqCiAgICogY29uc3QgaW5mbGF0ZSA9IG5ldyBwYWtvLkluZmxhdGUoeyBsZXZlbDogM30pOwogICAqCiAgICogaW5mbGF0ZS5wdXNoKGNodW5rMSwgZmFsc2UpOwogICAqIGluZmxhdGUucHVzaChjaHVuazIsIHRydWUpOyAgLy8gdHJ1ZSAtPiBsYXN0IGNodW5rCiAgICoKICAgKiBpZiAoaW5mbGF0ZS5lcnIpIHsgdGhyb3cgbmV3IEVycm9yKGluZmxhdGUuZXJyKTsgfQogICAqCiAgICogY29uc29sZS5sb2coaW5mbGF0ZS5yZXN1bHQpOwogICAqIGBgYAogICAqKi8KICBmdW5jdGlvbiBJbmZsYXRlJDEob3B0aW9ucykgewogICAgdGhpcy5vcHRpb25zID0gY29tbW9uLmFzc2lnbih7CiAgICAgIGNodW5rU2l6ZTogMTAyNCAqIDY0LAogICAgICB3aW5kb3dCaXRzOiAxNSwKICAgICAgdG86ICcnCiAgICB9LCBvcHRpb25zIHx8IHt9KTsKCiAgICBjb25zdCBvcHQgPSB0aGlzLm9wdGlvbnM7CgogICAgLy8gRm9yY2Ugd2luZG93IHNpemUgZm9yIGByYXdgIGRhdGEsIGlmIG5vdCBzZXQgZGlyZWN0bHksCiAgICAvLyBiZWNhdXNlIHdlIGhhdmUgbm8gaGVhZGVyIGZvciBhdXRvZGV0ZWN0LgogICAgaWYgKG9wdC5yYXcgJiYgKG9wdC53aW5kb3dCaXRzID49IDApICYmIChvcHQud2luZG93Qml0cyA8IDE2KSkgewogICAgICBvcHQud2luZG93Qml0cyA9IC1vcHQud2luZG93Qml0czsKICAgICAgaWYgKG9wdC53aW5kb3dCaXRzID09PSAwKSB7IG9wdC53aW5kb3dCaXRzID0gLTE1OyB9CiAgICB9CgogICAgLy8gSWYgYHdpbmRvd0JpdHNgIG5vdCBkZWZpbmVkIChhbmQgbW9kZSBub3QgcmF3KSAtIHNldCBhdXRvZGV0ZWN0IGZsYWcgZm9yIGd6aXAvZGVmbGF0ZQogICAgaWYgKChvcHQud2luZG93Qml0cyA+PSAwKSAmJiAob3B0LndpbmRvd0JpdHMgPCAxNikgJiYKICAgICAgICAhKG9wdGlvbnMgJiYgb3B0aW9ucy53aW5kb3dCaXRzKSkgewogICAgICBvcHQud2luZG93Qml0cyArPSAzMjsKICAgIH0KCiAgICAvLyBHemlwIGhlYWRlciBoYXMgbm8gaW5mbyBhYm91dCB3aW5kb3dzIHNpemUsIHdlIGNhbiBkbyBhdXRvZGV0ZWN0IG9ubHkKICAgIC8vIGZvciBkZWZsYXRlLiBTbywgaWYgd2luZG93IHNpemUgbm90IHNldCwgZm9yY2UgaXQgdG8gbWF4IHdoZW4gZ3ppcCBwb3NzaWJsZQogICAgaWYgKChvcHQud2luZG93Qml0cyA+IDE1KSAmJiAob3B0LndpbmRvd0JpdHMgPCA0OCkpIHsKICAgICAgLy8gYml0IDMgKDE2KSAtPiBnemlwcGVkIGRhdGEKICAgICAgLy8gYml0IDQgKDMyKSAtPiBhdXRvZGV0ZWN0IGd6aXAvZGVmbGF0ZQogICAgICBpZiAoKG9wdC53aW5kb3dCaXRzICYgMTUpID09PSAwKSB7CiAgICAgICAgb3B0LndpbmRvd0JpdHMgfD0gMTU7CiAgICAgIH0KICAgIH0KCiAgICB0aGlzLmVyciAgICA9IDA7ICAgICAgLy8gZXJyb3IgY29kZSwgaWYgaGFwcGVucyAoMCA9IFpfT0spCiAgICB0aGlzLm1zZyAgICA9ICcnOyAgICAgLy8gZXJyb3IgbWVzc2FnZQogICAgdGhpcy5lbmRlZCAgPSBmYWxzZTsgIC8vIHVzZWQgdG8gYXZvaWQgbXVsdGlwbGUgb25FbmQoKSBjYWxscwogICAgdGhpcy5jaHVua3MgPSBbXTsgICAgIC8vIGNodW5rcyBvZiBjb21wcmVzc2VkIGRhdGEKCiAgICB0aGlzLnN0cm0gICA9IG5ldyB6c3RyZWFtKCk7CiAgICB0aGlzLnN0cm0uYXZhaWxfb3V0ID0gMDsKCiAgICBsZXQgc3RhdHVzICA9IGluZmxhdGVfMSQyLmluZmxhdGVJbml0MigKICAgICAgdGhpcy5zdHJtLAogICAgICBvcHQud2luZG93Qml0cwogICAgKTsKCiAgICBpZiAoc3RhdHVzICE9PSBaX09LKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlc1tzdGF0dXNdKTsKICAgIH0KCiAgICB0aGlzLmhlYWRlciA9IG5ldyBnemhlYWRlcigpOwoKICAgIGluZmxhdGVfMSQyLmluZmxhdGVHZXRIZWFkZXIodGhpcy5zdHJtLCB0aGlzLmhlYWRlcik7CgogICAgLy8gU2V0dXAgZGljdGlvbmFyeQogICAgaWYgKG9wdC5kaWN0aW9uYXJ5KSB7CiAgICAgIC8vIENvbnZlcnQgZGF0YSBpZiBuZWVkZWQKICAgICAgaWYgKHR5cGVvZiBvcHQuZGljdGlvbmFyeSA9PT0gJ3N0cmluZycpIHsKICAgICAgICBvcHQuZGljdGlvbmFyeSA9IHN0cmluZ3Muc3RyaW5nMmJ1ZihvcHQuZGljdGlvbmFyeSk7CiAgICAgIH0gZWxzZSBpZiAodG9TdHJpbmcuY2FsbChvcHQuZGljdGlvbmFyeSkgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXScpIHsKICAgICAgICBvcHQuZGljdGlvbmFyeSA9IG5ldyBVaW50OEFycmF5KG9wdC5kaWN0aW9uYXJ5KTsKICAgICAgfQogICAgICBpZiAob3B0LnJhdykgeyAvL0luIHJhdyBtb2RlIHdlIG5lZWQgdG8gc2V0IHRoZSBkaWN0aW9uYXJ5IGVhcmx5CiAgICAgICAgc3RhdHVzID0gaW5mbGF0ZV8xJDIuaW5mbGF0ZVNldERpY3Rpb25hcnkodGhpcy5zdHJtLCBvcHQuZGljdGlvbmFyeSk7CiAgICAgICAgaWYgKHN0YXR1cyAhPT0gWl9PSykgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2VzW3N0YXR1c10pOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KCiAgLyoqCiAgICogSW5mbGF0ZSNwdXNoKGRhdGFbLCBmbHVzaF9tb2RlXSkgLT4gQm9vbGVhbgogICAqIC0gZGF0YSAoVWludDhBcnJheXxBcnJheUJ1ZmZlcik6IGlucHV0IGRhdGEKICAgKiAtIGZsdXNoX21vZGUgKE51bWJlcnxCb29sZWFuKTogMC4uNiBmb3IgY29ycmVzcG9uZGluZyBaX05PX0ZMVVNILi5aX1RSRUUKICAgKiAgIGZsdXNoIG1vZGVzLiBTZWUgY29uc3RhbnRzLiBTa2lwcGVkIG9yIGBmYWxzZWAgbWVhbnMgWl9OT19GTFVTSCwKICAgKiAgIGB0cnVlYCBtZWFucyBaX0ZJTklTSC4KICAgKgogICAqIFNlbmRzIGlucHV0IGRhdGEgdG8gaW5mbGF0ZSBwaXBlLCBnZW5lcmF0aW5nIFtbSW5mbGF0ZSNvbkRhdGFdXSBjYWxscyB3aXRoCiAgICogbmV3IG91dHB1dCBjaHVua3MuIFJldHVybnMgYHRydWVgIG9uIHN1Y2Nlc3MuIElmIGVuZCBvZiBzdHJlYW0gZGV0ZWN0ZWQsCiAgICogW1tJbmZsYXRlI29uRW5kXV0gd2lsbCBiZSBjYWxsZWQuCiAgICoKICAgKiBgZmx1c2hfbW9kZWAgaXMgbm90IG5lZWRlZCBmb3Igbm9ybWFsIG9wZXJhdGlvbiwgYmVjYXVzZSBlbmQgb2Ygc3RyZWFtCiAgICogZGV0ZWN0ZWQgYXV0b21hdGljYWxseS4gWW91IG1heSB0cnkgdG8gdXNlIGl0IGZvciBhZHZhbmNlZCB0aGluZ3MsIGJ1dAogICAqIHRoaXMgZnVuY3Rpb25hbGl0eSB3YXMgbm90IHRlc3RlZC4KICAgKgogICAqIE9uIGZhaWwgY2FsbCBbW0luZmxhdGUjb25FbmRdXSB3aXRoIGVycm9yIGNvZGUgYW5kIHJldHVybiBmYWxzZS4KICAgKgogICAqICMjIyMjIEV4YW1wbGUKICAgKgogICAqIGBgYGphdmFzY3JpcHQKICAgKiBwdXNoKGNodW5rLCBmYWxzZSk7IC8vIHB1c2ggb25lIG9mIGRhdGEgY2h1bmtzCiAgICogLi4uCiAgICogcHVzaChjaHVuaywgdHJ1ZSk7ICAvLyBwdXNoIGxhc3QgY2h1bmsKICAgKiBgYGAKICAgKiovCiAgSW5mbGF0ZSQxLnByb3RvdHlwZS5wdXNoID0gZnVuY3Rpb24gKGRhdGEsIGZsdXNoX21vZGUpIHsKICAgIGNvbnN0IHN0cm0gPSB0aGlzLnN0cm07CiAgICBjb25zdCBjaHVua1NpemUgPSB0aGlzLm9wdGlvbnMuY2h1bmtTaXplOwogICAgY29uc3QgZGljdGlvbmFyeSA9IHRoaXMub3B0aW9ucy5kaWN0aW9uYXJ5OwogICAgbGV0IHN0YXR1cywgX2ZsdXNoX21vZGUsIGxhc3RfYXZhaWxfb3V0OwoKICAgIGlmICh0aGlzLmVuZGVkKSByZXR1cm4gZmFsc2U7CgogICAgaWYgKGZsdXNoX21vZGUgPT09IH5+Zmx1c2hfbW9kZSkgX2ZsdXNoX21vZGUgPSBmbHVzaF9tb2RlOwogICAgZWxzZSBfZmx1c2hfbW9kZSA9IGZsdXNoX21vZGUgPT09IHRydWUgPyBaX0ZJTklTSCA6IFpfTk9fRkxVU0g7CgogICAgLy8gQ29udmVydCBkYXRhIGlmIG5lZWRlZAogICAgaWYgKHRvU3RyaW5nLmNhbGwoZGF0YSkgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXScpIHsKICAgICAgc3RybS5pbnB1dCA9IG5ldyBVaW50OEFycmF5KGRhdGEpOwogICAgfSBlbHNlIHsKICAgICAgc3RybS5pbnB1dCA9IGRhdGE7CiAgICB9CgogICAgc3RybS5uZXh0X2luID0gMDsKICAgIHN0cm0uYXZhaWxfaW4gPSBzdHJtLmlucHV0Lmxlbmd0aDsKCiAgICBmb3IgKDs7KSB7CiAgICAgIGlmIChzdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHN0cm0ub3V0cHV0ID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmtTaXplKTsKICAgICAgICBzdHJtLm5leHRfb3V0ID0gMDsKICAgICAgICBzdHJtLmF2YWlsX291dCA9IGNodW5rU2l6ZTsKICAgICAgfQoKICAgICAgc3RhdHVzID0gaW5mbGF0ZV8xJDIuaW5mbGF0ZShzdHJtLCBfZmx1c2hfbW9kZSk7CgogICAgICBpZiAoc3RhdHVzID09PSBaX05FRURfRElDVCAmJiBkaWN0aW9uYXJ5KSB7CiAgICAgICAgc3RhdHVzID0gaW5mbGF0ZV8xJDIuaW5mbGF0ZVNldERpY3Rpb25hcnkoc3RybSwgZGljdGlvbmFyeSk7CgogICAgICAgIGlmIChzdGF0dXMgPT09IFpfT0spIHsKICAgICAgICAgIHN0YXR1cyA9IGluZmxhdGVfMSQyLmluZmxhdGUoc3RybSwgX2ZsdXNoX21vZGUpOwogICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSBaX0RBVEFfRVJST1IpIHsKICAgICAgICAgIC8vIFJlcGxhY2UgY29kZSB3aXRoIG1vcmUgdmVyYm9zZQogICAgICAgICAgc3RhdHVzID0gWl9ORUVEX0RJQ1Q7CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBTa2lwIHNueWMgbWFya2VycyBpZiBtb3JlIGRhdGEgZm9sbG93cyBhbmQgbm90IHJhdyBtb2RlCiAgICAgIHdoaWxlIChzdHJtLmF2YWlsX2luID4gMCAmJgogICAgICAgICAgICAgc3RhdHVzID09PSBaX1NUUkVBTV9FTkQgJiYKICAgICAgICAgICAgIHN0cm0uc3RhdGUud3JhcCA+IDAgJiYKICAgICAgICAgICAgIGRhdGFbc3RybS5uZXh0X2luXSAhPT0gMCkKICAgICAgewogICAgICAgIGluZmxhdGVfMSQyLmluZmxhdGVSZXNldChzdHJtKTsKICAgICAgICBzdGF0dXMgPSBpbmZsYXRlXzEkMi5pbmZsYXRlKHN0cm0sIF9mbHVzaF9tb2RlKTsKICAgICAgfQoKICAgICAgc3dpdGNoIChzdGF0dXMpIHsKICAgICAgICBjYXNlIFpfU1RSRUFNX0VSUk9SOgogICAgICAgIGNhc2UgWl9EQVRBX0VSUk9SOgogICAgICAgIGNhc2UgWl9ORUVEX0RJQ1Q6CiAgICAgICAgY2FzZSBaX01FTV9FUlJPUjoKICAgICAgICAgIHRoaXMub25FbmQoc3RhdHVzKTsKICAgICAgICAgIHRoaXMuZW5kZWQgPSB0cnVlOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CgogICAgICAvLyBSZW1lbWJlciByZWFsIGBhdmFpbF9vdXRgIHZhbHVlLCBiZWNhdXNlIHdlIG1heSBwYXRjaCBvdXQgYnVmZmVyIGNvbnRlbnQKICAgICAgLy8gdG8gYWxpZ24gdXRmOCBzdHJpbmdzIGJvdW5kYXJpZXMuCiAgICAgIGxhc3RfYXZhaWxfb3V0ID0gc3RybS5hdmFpbF9vdXQ7CgogICAgICBpZiAoc3RybS5uZXh0X291dCkgewogICAgICAgIGlmIChzdHJtLmF2YWlsX291dCA9PT0gMCB8fCBzdGF0dXMgPT09IFpfU1RSRUFNX0VORCkgewoKICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudG8gPT09ICdzdHJpbmcnKSB7CgogICAgICAgICAgICBsZXQgbmV4dF9vdXRfdXRmOCA9IHN0cmluZ3MudXRmOGJvcmRlcihzdHJtLm91dHB1dCwgc3RybS5uZXh0X291dCk7CgogICAgICAgICAgICBsZXQgdGFpbCA9IHN0cm0ubmV4dF9vdXQgLSBuZXh0X291dF91dGY4OwogICAgICAgICAgICBsZXQgdXRmOHN0ciA9IHN0cmluZ3MuYnVmMnN0cmluZyhzdHJtLm91dHB1dCwgbmV4dF9vdXRfdXRmOCk7CgogICAgICAgICAgICAvLyBtb3ZlIHRhaWwgJiByZWFsaWduIGNvdW50ZXJzCiAgICAgICAgICAgIHN0cm0ubmV4dF9vdXQgPSB0YWlsOwogICAgICAgICAgICBzdHJtLmF2YWlsX291dCA9IGNodW5rU2l6ZSAtIHRhaWw7CiAgICAgICAgICAgIGlmICh0YWlsKSBzdHJtLm91dHB1dC5zZXQoc3RybS5vdXRwdXQuc3ViYXJyYXkobmV4dF9vdXRfdXRmOCwgbmV4dF9vdXRfdXRmOCArIHRhaWwpLCAwKTsKCiAgICAgICAgICAgIHRoaXMub25EYXRhKHV0ZjhzdHIpOwoKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMub25EYXRhKHN0cm0ub3V0cHV0Lmxlbmd0aCA9PT0gc3RybS5uZXh0X291dCA/IHN0cm0ub3V0cHV0IDogc3RybS5vdXRwdXQuc3ViYXJyYXkoMCwgc3RybS5uZXh0X291dCkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gTXVzdCByZXBlYXQgaXRlcmF0aW9uIGlmIG91dCBidWZmZXIgaXMgZnVsbAogICAgICBpZiAoc3RhdHVzID09PSBaX09LICYmIGxhc3RfYXZhaWxfb3V0ID09PSAwKSBjb250aW51ZTsKCiAgICAgIC8vIEZpbmFsaXplIGlmIGVuZCBvZiBzdHJlYW0gcmVhY2hlZC4KICAgICAgaWYgKHN0YXR1cyA9PT0gWl9TVFJFQU1fRU5EKSB7CiAgICAgICAgc3RhdHVzID0gaW5mbGF0ZV8xJDIuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pOwogICAgICAgIHRoaXMub25FbmQoc3RhdHVzKTsKICAgICAgICB0aGlzLmVuZGVkID0gdHJ1ZTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQoKICAgICAgaWYgKHN0cm0uYXZhaWxfaW4gPT09IDApIGJyZWFrOwogICAgfQoKICAgIHJldHVybiB0cnVlOwogIH07CgoKICAvKioKICAgKiBJbmZsYXRlI29uRGF0YShjaHVuaykgLT4gVm9pZAogICAqIC0gY2h1bmsgKFVpbnQ4QXJyYXl8U3RyaW5nKTogb3V0cHV0IGRhdGEuIFdoZW4gc3RyaW5nIG91dHB1dCByZXF1ZXN0ZWQsCiAgICogICBlYWNoIGNodW5rIHdpbGwgYmUgc3RyaW5nLgogICAqCiAgICogQnkgZGVmYXVsdCwgc3RvcmVzIGRhdGEgYmxvY2tzIGluIGBjaHVua3NbXWAgcHJvcGVydHkgYW5kIGdsdWUKICAgKiB0aG9zZSBpbiBgb25FbmRgLiBPdmVycmlkZSB0aGlzIGhhbmRsZXIsIGlmIHlvdSBuZWVkIGFub3RoZXIgYmVoYXZpb3VyLgogICAqKi8KICBJbmZsYXRlJDEucHJvdG90eXBlLm9uRGF0YSA9IGZ1bmN0aW9uIChjaHVuaykgewogICAgdGhpcy5jaHVua3MucHVzaChjaHVuayk7CiAgfTsKCgogIC8qKgogICAqIEluZmxhdGUjb25FbmQoc3RhdHVzKSAtPiBWb2lkCiAgICogLSBzdGF0dXMgKE51bWJlcik6IGluZmxhdGUgc3RhdHVzLiAwIChaX09LKSBvbiBzdWNjZXNzLAogICAqICAgb3RoZXIgaWYgbm90LgogICAqCiAgICogQ2FsbGVkIGVpdGhlciBhZnRlciB5b3UgdGVsbCBpbmZsYXRlIHRoYXQgdGhlIGlucHV0IHN0cmVhbSBpcwogICAqIGNvbXBsZXRlIChaX0ZJTklTSCkuIEJ5IGRlZmF1bHQgLSBqb2luIGNvbGxlY3RlZCBjaHVua3MsCiAgICogZnJlZSBtZW1vcnkgYW5kIGZpbGwgYHJlc3VsdHNgIC8gYGVycmAgcHJvcGVydGllcy4KICAgKiovCiAgSW5mbGF0ZSQxLnByb3RvdHlwZS5vbkVuZCA9IGZ1bmN0aW9uIChzdGF0dXMpIHsKICAgIC8vIE9uIHN1Y2Nlc3MgLSBqb2luCiAgICBpZiAoc3RhdHVzID09PSBaX09LKSB7CiAgICAgIGlmICh0aGlzLm9wdGlvbnMudG8gPT09ICdzdHJpbmcnKSB7CiAgICAgICAgdGhpcy5yZXN1bHQgPSB0aGlzLmNodW5rcy5qb2luKCcnKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnJlc3VsdCA9IGNvbW1vbi5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKTsKICAgICAgfQogICAgfQogICAgdGhpcy5jaHVua3MgPSBbXTsKICAgIHRoaXMuZXJyID0gc3RhdHVzOwogICAgdGhpcy5tc2cgPSB0aGlzLnN0cm0ubXNnOwogIH07CgoKICAvKioKICAgKiBpbmZsYXRlKGRhdGFbLCBvcHRpb25zXSkgLT4gVWludDhBcnJheXxTdHJpbmcKICAgKiAtIGRhdGEgKFVpbnQ4QXJyYXkpOiBpbnB1dCBkYXRhIHRvIGRlY29tcHJlc3MuCiAgICogLSBvcHRpb25zIChPYmplY3QpOiB6bGliIGluZmxhdGUgb3B0aW9ucy4KICAgKgogICAqIERlY29tcHJlc3MgYGRhdGFgIHdpdGggaW5mbGF0ZS91bmd6aXAgYW5kIGBvcHRpb25zYC4gQXV0b2RldGVjdAogICAqIGZvcm1hdCB2aWEgd3JhcHBlciBoZWFkZXIgYnkgZGVmYXVsdC4gVGhhdCdzIHdoeSB3ZSBkb24ndCBwcm92aWRlCiAgICogc2VwYXJhdGUgYHVuZ3ppcGAgbWV0aG9kLgogICAqCiAgICogU3VwcG9ydGVkIG9wdGlvbnMgYXJlOgogICAqCiAgICogLSB3aW5kb3dCaXRzCiAgICoKICAgKiBbaHR0cDovL3psaWIubmV0L21hbnVhbC5odG1sI0FkdmFuY2VkXShodHRwOi8vemxpYi5uZXQvbWFudWFsLmh0bWwjQWR2YW5jZWQpCiAgICogZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICoKICAgKiBTdWdhciAob3B0aW9ucyk6CiAgICoKICAgKiAtIGByYXdgIChCb29sZWFuKSAtIHNheSB0aGF0IHdlIHdvcmsgd2l0aCByYXcgc3RyZWFtLCBpZiB5b3UgZG9uJ3Qgd2lzaCB0byBzcGVjaWZ5CiAgICogICBuZWdhdGl2ZSB3aW5kb3dCaXRzIGltcGxpY2l0bHkuCiAgICogLSBgdG9gIChTdHJpbmcpIC0gaWYgZXF1YWwgdG8gJ3N0cmluZycsIHRoZW4gcmVzdWx0IHdpbGwgYmUgY29udmVydGVkCiAgICogICBmcm9tIHV0ZjggdG8gdXRmMTYgKGphdmFzY3JpcHQpIHN0cmluZy4gV2hlbiBzdHJpbmcgb3V0cHV0IHJlcXVlc3RlZCwKICAgKiAgIGNodW5rIGxlbmd0aCBjYW4gZGlmZmVyIGZyb20gYGNodW5rU2l6ZWAsIGRlcGVuZGluZyBvbiBjb250ZW50LgogICAqCiAgICoKICAgKiAjIyMjIyBFeGFtcGxlOgogICAqCiAgICogYGBgamF2YXNjcmlwdAogICAqIGNvbnN0IHBha28gPSByZXF1aXJlKCdwYWtvJyk7CiAgICogY29uc3QgaW5wdXQgPSBwYWtvLmRlZmxhdGUobmV3IFVpbnQ4QXJyYXkoWzEsMiwzLDQsNSw2LDcsOCw5XSkpOwogICAqIGxldCBvdXRwdXQ7CiAgICoKICAgKiB0cnkgewogICAqICAgb3V0cHV0ID0gcGFrby5pbmZsYXRlKGlucHV0KTsKICAgKiB9IGNhdGNoIChlcnIpIHsKICAgKiAgIGNvbnNvbGUubG9nKGVycik7CiAgICogfQogICAqIGBgYAogICAqKi8KICBmdW5jdGlvbiBpbmZsYXRlJDEoaW5wdXQsIG9wdGlvbnMpIHsKICAgIGNvbnN0IGluZmxhdG9yID0gbmV3IEluZmxhdGUkMShvcHRpb25zKTsKCiAgICBpbmZsYXRvci5wdXNoKGlucHV0KTsKCiAgICAvLyBUaGF0IHdpbGwgbmV2ZXIgaGFwcGVucywgaWYgeW91IGRvbid0IGNoZWF0IHdpdGggb3B0aW9ucyA6KQogICAgaWYgKGluZmxhdG9yLmVycikgdGhyb3cgaW5mbGF0b3IubXNnIHx8IG1lc3NhZ2VzW2luZmxhdG9yLmVycl07CgogICAgcmV0dXJuIGluZmxhdG9yLnJlc3VsdDsKICB9CgoKICAvKioKICAgKiBpbmZsYXRlUmF3KGRhdGFbLCBvcHRpb25zXSkgLT4gVWludDhBcnJheXxTdHJpbmcKICAgKiAtIGRhdGEgKFVpbnQ4QXJyYXkpOiBpbnB1dCBkYXRhIHRvIGRlY29tcHJlc3MuCiAgICogLSBvcHRpb25zIChPYmplY3QpOiB6bGliIGluZmxhdGUgb3B0aW9ucy4KICAgKgogICAqIFRoZSBzYW1lIGFzIFtbaW5mbGF0ZV1dLCBidXQgY3JlYXRlcyByYXcgZGF0YSwgd2l0aG91dCB3cmFwcGVyCiAgICogKGhlYWRlciBhbmQgYWRsZXIzMiBjcmMpLgogICAqKi8KICBmdW5jdGlvbiBpbmZsYXRlUmF3JDEoaW5wdXQsIG9wdGlvbnMpIHsKICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgb3B0aW9ucy5yYXcgPSB0cnVlOwogICAgcmV0dXJuIGluZmxhdGUkMShpbnB1dCwgb3B0aW9ucyk7CiAgfQoKCiAgLyoqCiAgICogdW5nemlwKGRhdGFbLCBvcHRpb25zXSkgLT4gVWludDhBcnJheXxTdHJpbmcKICAgKiAtIGRhdGEgKFVpbnQ4QXJyYXkpOiBpbnB1dCBkYXRhIHRvIGRlY29tcHJlc3MuCiAgICogLSBvcHRpb25zIChPYmplY3QpOiB6bGliIGluZmxhdGUgb3B0aW9ucy4KICAgKgogICAqIEp1c3Qgc2hvcnRjdXQgdG8gW1tpbmZsYXRlXV0sIGJlY2F1c2UgaXQgYXV0b2RldGVjdHMgZm9ybWF0CiAgICogYnkgaGVhZGVyLmNvbnRlbnQuIERvbmUgZm9yIGNvbnZlbmllbmNlLgogICAqKi8KCgogIHZhciBJbmZsYXRlXzEkMSA9IEluZmxhdGUkMTsKICB2YXIgaW5mbGF0ZV8yID0gaW5mbGF0ZSQxOwogIHZhciBpbmZsYXRlUmF3XzEkMSA9IGluZmxhdGVSYXckMTsKICB2YXIgdW5nemlwJDEgPSBpbmZsYXRlJDE7CiAgdmFyIGNvbnN0YW50cyA9IGNvbnN0YW50cyQyOwoKICB2YXIgaW5mbGF0ZV8xJDEgPSB7CiAgCUluZmxhdGU6IEluZmxhdGVfMSQxLAogIAlpbmZsYXRlOiBpbmZsYXRlXzIsCiAgCWluZmxhdGVSYXc6IGluZmxhdGVSYXdfMSQxLAogIAl1bmd6aXA6IHVuZ3ppcCQxLAogIAljb25zdGFudHM6IGNvbnN0YW50cwogIH07CgogIGNvbnN0IHsgSW5mbGF0ZSwgaW5mbGF0ZSwgaW5mbGF0ZVJhdywgdW5nemlwIH0gPSBpbmZsYXRlXzEkMTsKICB2YXIgaW5mbGF0ZV8xID0gaW5mbGF0ZTsKCiAgY2xhc3MgRGVmbGF0ZURlY29kZXIgZXh0ZW5kcyBCYXNlRGVjb2RlciB7CiAgICBkZWNvZGVCbG9jayhidWZmZXIpIHsKICAgICAgcmV0dXJuIGluZmxhdGVfMShuZXcgVWludDhBcnJheShidWZmZXIpKS5idWZmZXI7CiAgICB9CiAgfQoKICBjbGFzcyBQYWNrYml0c0RlY29kZXIgZXh0ZW5kcyBCYXNlRGVjb2RlciB7CiAgICBkZWNvZGVCbG9jayhidWZmZXIpIHsKICAgICAgY29uc3QgZGF0YVZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyKTsKICAgICAgY29uc3Qgb3V0ID0gW107CgogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ1ZmZlci5ieXRlTGVuZ3RoOyArK2kpIHsKICAgICAgICBsZXQgaGVhZGVyID0gZGF0YVZpZXcuZ2V0SW50OChpKTsKICAgICAgICBpZiAoaGVhZGVyIDwgMCkgewogICAgICAgICAgY29uc3QgbmV4dCA9IGRhdGFWaWV3LmdldFVpbnQ4KGkgKyAxKTsKICAgICAgICAgIGhlYWRlciA9IC1oZWFkZXI7CiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8PSBoZWFkZXI7ICsraikgewogICAgICAgICAgICBvdXQucHVzaChuZXh0KTsKICAgICAgICAgIH0KICAgICAgICAgIGkgKz0gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPD0gaGVhZGVyOyArK2opIHsKICAgICAgICAgICAgb3V0LnB1c2goZGF0YVZpZXcuZ2V0VWludDgoaSArIGogKyAxKSk7CiAgICAgICAgICB9CiAgICAgICAgICBpICs9IGhlYWRlciArIDE7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShvdXQpLmJ1ZmZlcjsKICAgIH0KICB9CgogIHZhciBMZXJjRGVjb2RlID0ge2V4cG9ydHM6IHt9fTsKCiAgLyoganNoaW50IGZvcmluOiBmYWxzZSwgYml0d2lzZTogZmFsc2UgKi8KCiAgKGZ1bmN0aW9uIChtb2R1bGUpIHsKICAvKgogIENvcHlyaWdodCAyMDE1LTIwMTggRXNyaQoKICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgogIEEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYWRkaXRpb25hbCBub3RpY2VzIGFyZSBsb2NhdGVkIHdpdGggdGhlCiAgc291cmNlIGRpc3RyaWJ1dGlvbiBhdDoKCiAgaHR0cDovL2dpdGh1Yi5jb20vRXNyaS9sZXJjLwoKICBDb250cmlidXRvcnM6ICBKb2hhbm5lcyBTY2htaWQsIChMRVJDIHYxKQogICAgICAgICAgICAgICAgIENoYXlhbmlrYSBLaGF0dWEsIChMRVJDIHYxKQogICAgICAgICAgICAgICAgIFdlbnh1ZSBKdSAoTEVSQyB2MSwgdjIueCkKICAqLwoKICAvKiBDb3B5cmlnaHQgMjAxNS0yMDE4IEVzcmkuIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgQHByZXNlcnZlICovCgogIC8qKgogICAqIGEgbW9kdWxlIGZvciBkZWNvZGluZyBMRVJDIGJsb2JzCiAgICogQG1vZHVsZSBMZXJjCiAgICovCiAgKGZ1bmN0aW9uKCkgewogICAgLy90aGUgb3JpZ2luYWwgTGVyY0RlY29kZSBmb3IgVmVyc2lvbiAxCiAgICB2YXIgTGVyY0RlY29kZSA9IChmdW5jdGlvbigpIHsKCiAgICAgIC8vIFdBUk5JTkc6IFRoaXMgZGVjb2RlciB2ZXJzaW9uIGNhbiBvbmx5IHJlYWQgb2xkIHZlcnNpb24gMSBMZXJjIGJsb2JzLiBVc2Ugd2l0aCBjYXV0aW9uLgoKICAgICAgLy8gTm90ZTogY3VycmVudGx5LCB0aGlzIG1vZHVsZSBvbmx5IGhhcyBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgZGVjb2RpbmcgTEVSQyBkYXRhLCBub3QgZW5jb2RpbmcuIFRoZSBuYW1lIG9mCiAgICAgIC8vIHRoZSBjbGFzcyB3YXMgY2hvc2VuIHRvIGJlIGZ1dHVyZSBwcm9vZi4KCiAgICAgIHZhciBDbnRaSW1hZ2UgPSB7fTsKCiAgICAgIENudFpJbWFnZS5kZWZhdWx0Tm9EYXRhVmFsdWUgPSAtMy40MDI3OTk5Mzg3OTAxNDg0ZSszODsgLy8gc21hbGxlc3QgRmxvYXQzMiB2YWx1ZQoKICAgICAgLyoqCiAgICAgICAqIERlY29kZSBhIExFUkMgYnl0ZSBzdHJlYW0gYW5kIHJldHVybiBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcGl4ZWwgZGF0YSBhbmQgc29tZSByZXF1aXJlZCBhbmQgb3B0aW9uYWwKICAgICAgICogaW5mb3JtYXRpb24gYWJvdXQgaXQsIHN1Y2ggYXMgdGhlIGltYWdlJ3Mgd2lkdGggYW5kIGhlaWdodC4KICAgICAgICoKICAgICAgICogQHBhcmFtIHtBcnJheUJ1ZmZlcn0gaW5wdXQgVGhlIExFUkMgaW5wdXQgYnl0ZSBzdHJlYW0KICAgICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXSBEZWNvZGluZyBvcHRpb25zLCBjb250YWluaW5nIGFueSBvZiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqIEBjb25maWcge251bWJlcn0gW2lucHV0T2Zmc2V0ID0gMF0KICAgICAgICogICAgICAgIFNraXAgdGhlIGZpcnN0IGlucHV0T2Zmc2V0IGJ5dGVzIG9mIHRoZSBpbnB1dCBieXRlIHN0cmVhbS4gQSB2YWxpZCBMRVJDIGZpbGUgaXMgZXhwZWN0ZWQgYXQgdGhhdCBwb3NpdGlvbi4KICAgICAgICogQGNvbmZpZyB7VWludDhBcnJheX0gW2VuY29kZWRNYXNrID0gbnVsbF0KICAgICAgICogICAgICAgIElmIHNwZWNpZmllZCwgdGhlIGRlY29kZXIgd2lsbCBub3QgcmVhZCBtYXNrIGluZm9ybWF0aW9uIGZyb20gdGhlIGlucHV0IGFuZCB1c2UgdGhlIHNwZWNpZmllZCBlbmNvZGVkCiAgICAgICAqICAgICAgICBtYXNrIGRhdGEgaW5zdGVhZC4gTWFzayBoZWFkZXIvZGF0YSBtdXN0IG5vdCBiZSBwcmVzZW50IGluIHRoZSBMRVJDIGJ5dGUgc3RyZWFtIGluIHRoaXMgY2FzZS4KICAgICAgICogQGNvbmZpZyB7bnVtYmVyfSBbbm9EYXRhVmFsdWUgPSBMZXJjQ29kZS5kZWZhdWx0Tm9EYXRhVmFsdWVdCiAgICAgICAqICAgICAgICBQaXhlbCB2YWx1ZSB0byB1c2UgZm9yIG1hc2tlZCBwaXhlbHMuCiAgICAgICAqIEBjb25maWcge0FycmF5QnVmZmVyVmlld3xBcnJheX0gW3BpeGVsVHlwZSA9IEZsb2F0MzJBcnJheV0KICAgICAgICogICAgICAgIFRoZSBkZXNpcmVkIHR5cGUgb2YgdGhlIHBpeGVsRGF0YSBhcnJheSBpbiB0aGUgcmV0dXJuIHZhbHVlLiBOb3RlIHRoYXQgaXQgaXMgdGhlIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRvCiAgICAgICAqICAgICAgICBwcm92aWRlIGFuIGFwcHJvcHJpYXRlIG5vRGF0YVZhbHVlIGlmIHRoZSBkZWZhdWx0IHBpeGVsVHlwZSBpcyBvdmVycmlkZGVuLgogICAgICAgKiBAY29uZmlnIHtib29sZWFufSBbcmV0dXJuTWFzayA9IGZhbHNlXQogICAgICAgKiAgICAgICAgSWYgdHJ1ZSwgdGhlIHJldHVybiB2YWx1ZSB3aWxsIGNvbnRhaW4gYSBtYXNrRGF0YSBwcm9wZXJ0eSBvZiB0eXBlIFVpbnQ4QXJyYXkgd2hpY2ggaGFzIG9uZSBlbGVtZW50IHBlcgogICAgICAgKiAgICAgICAgcGl4ZWwsIHRoZSB2YWx1ZSBvZiB3aGljaCBpcyAxIG9yIDAgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhhdCBwaXhlbCdzIGRhdGEgaXMgcHJlc2VudCBvciBtYXNrZWQuIElmIHRoZQogICAgICAgKiAgICAgICAgaW5wdXQgTEVSQyBkYXRhIGRvZXMgbm90IGNvbnRhaW4gYSBtYXNrLCBtYXNrRGF0YSB3aWxsIG5vdCBiZSByZXR1cm5lZC4KICAgICAgICogQGNvbmZpZyB7Ym9vbGVhbn0gW3JldHVybkVuY29kZWRNYXNrID0gZmFsc2VdCiAgICAgICAqICAgICAgICBJZiB0cnVlLCB0aGUgcmV0dXJuIHZhbHVlIHdpbGwgY29udGFpbiBhIGVuY29kZWRNYXNrRGF0YSBwcm9wZXJ0eSwgd2hpY2ggY2FuIGJlIHBhc3NlZCBpbnRvIGVuY29kZSgpIGFzCiAgICAgICAqICAgICAgICBlbmNvZGVkTWFzay4KICAgICAgICogQGNvbmZpZyB7Ym9vbGVhbn0gW3JldHVybkZpbGVJbmZvID0gZmFsc2VdCiAgICAgICAqICAgICAgICBJZiB0cnVlLCB0aGUgcmV0dXJuIHZhbHVlIHdpbGwgaGF2ZSBhIGZpbGVJbmZvIHByb3BlcnR5IHRoYXQgY29udGFpbnMgbWV0YWRhdGEgb2J0YWluZWQgZnJvbSB0aGUKICAgICAgICogICAgICAgIExFUkMgaGVhZGVycyBhbmQgdGhlIGRlY29kaW5nIHByb2Nlc3MuCiAgICAgICAqIEBjb25maWcge2Jvb2xlYW59IFtjb21wdXRlVXNlZEJpdERlcHRocyA9IGZhbHNlXQogICAgICAgKiAgICAgICAgSWYgdHJ1ZSwgdGhlIGZpbGVJbmZvIHByb3BlcnR5IGluIHRoZSByZXR1cm4gdmFsdWUgd2lsbCBjb250YWluIHRoZSBzZXQgb2YgYWxsIGJsb2NrIGJpdCBkZXB0aHMKICAgICAgICogICAgICAgIGVuY291bnRlcmVkIGR1cmluZyBkZWNvZGluZy4gV2lsbCBvbmx5IGhhdmUgYW4gZWZmZWN0IGlmIHJldHVybkZpbGVJbmZvIG9wdGlvbiBpcyB0cnVlLgogICAgICAgKiBAcmV0dXJucyB7e3dpZHRoLCBoZWlnaHQsIHBpeGVsRGF0YSwgbWluVmFsdWUsIG1heFZhbHVlLCBub0RhdGFWYWx1ZSwgbWFza0RhdGEsIGVuY29kZWRNYXNrRGF0YSwgZmlsZUluZm99fQogICAgICAgKi8KICAgICAgQ250WkltYWdlLmRlY29kZSA9IGZ1bmN0aW9uKGlucHV0LCBvcHRpb25zKSB7CiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgogICAgICAgIHZhciBza2lwTWFzayA9IG9wdGlvbnMuZW5jb2RlZE1hc2tEYXRhIHx8IChvcHRpb25zLmVuY29kZWRNYXNrRGF0YSA9PT0gbnVsbCk7CiAgICAgICAgdmFyIHBhcnNlZERhdGEgPSBwYXJzZShpbnB1dCwgb3B0aW9ucy5pbnB1dE9mZnNldCB8fCAwLCBza2lwTWFzayk7CgogICAgICAgIHZhciBub0RhdGFWYWx1ZSA9IChvcHRpb25zLm5vRGF0YVZhbHVlICE9PSBudWxsKSA/IG9wdGlvbnMubm9EYXRhVmFsdWUgOiBDbnRaSW1hZ2UuZGVmYXVsdE5vRGF0YVZhbHVlOwoKICAgICAgICB2YXIgdW5jb21wcmVzc2VkRGF0YSA9IHVuY29tcHJlc3NQaXhlbFZhbHVlcyhwYXJzZWREYXRhLCBvcHRpb25zLnBpeGVsVHlwZSB8fCBGbG9hdDMyQXJyYXksCiAgICAgICAgICBvcHRpb25zLmVuY29kZWRNYXNrRGF0YSwgbm9EYXRhVmFsdWUsIG9wdGlvbnMucmV0dXJuTWFzayk7CgogICAgICAgIHZhciByZXN1bHQgPSB7CiAgICAgICAgICB3aWR0aDogcGFyc2VkRGF0YS53aWR0aCwKICAgICAgICAgIGhlaWdodDogcGFyc2VkRGF0YS5oZWlnaHQsCiAgICAgICAgICBwaXhlbERhdGE6IHVuY29tcHJlc3NlZERhdGEucmVzdWx0UGl4ZWxzLAogICAgICAgICAgbWluVmFsdWU6IHVuY29tcHJlc3NlZERhdGEubWluVmFsdWUsCiAgICAgICAgICBtYXhWYWx1ZTogcGFyc2VkRGF0YS5waXhlbHMubWF4VmFsdWUsCiAgICAgICAgICBub0RhdGFWYWx1ZTogbm9EYXRhVmFsdWUKICAgICAgICB9OwoKICAgICAgICBpZiAodW5jb21wcmVzc2VkRGF0YS5yZXN1bHRNYXNrKSB7CiAgICAgICAgICByZXN1bHQubWFza0RhdGEgPSB1bmNvbXByZXNzZWREYXRhLnJlc3VsdE1hc2s7CiAgICAgICAgfQoKICAgICAgICBpZiAob3B0aW9ucy5yZXR1cm5FbmNvZGVkTWFzayAmJiBwYXJzZWREYXRhLm1hc2spIHsKICAgICAgICAgIHJlc3VsdC5lbmNvZGVkTWFza0RhdGEgPSBwYXJzZWREYXRhLm1hc2suYml0c2V0ID8gcGFyc2VkRGF0YS5tYXNrLmJpdHNldCA6IG51bGw7CiAgICAgICAgfQoKICAgICAgICBpZiAob3B0aW9ucy5yZXR1cm5GaWxlSW5mbykgewogICAgICAgICAgcmVzdWx0LmZpbGVJbmZvID0gZm9ybWF0RmlsZUluZm8ocGFyc2VkRGF0YSk7CiAgICAgICAgICBpZiAob3B0aW9ucy5jb21wdXRlVXNlZEJpdERlcHRocykgewogICAgICAgICAgICByZXN1bHQuZmlsZUluZm8uYml0RGVwdGhzID0gY29tcHV0ZVVzZWRCaXREZXB0aHMocGFyc2VkRGF0YSk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9OwoKICAgICAgdmFyIHVuY29tcHJlc3NQaXhlbFZhbHVlcyA9IGZ1bmN0aW9uKGRhdGEsIFR5cGVkQXJyYXlDbGFzcywgbWFza0JpdHNldCwgbm9EYXRhVmFsdWUsIHN0b3JlRGVjb2RlZE1hc2spIHsKICAgICAgICB2YXIgYmxvY2tJZHggPSAwOwogICAgICAgIHZhciBudW1YID0gZGF0YS5waXhlbHMubnVtQmxvY2tzWDsKICAgICAgICB2YXIgbnVtWSA9IGRhdGEucGl4ZWxzLm51bUJsb2Nrc1k7CiAgICAgICAgdmFyIGJsb2NrV2lkdGggPSBNYXRoLmZsb29yKGRhdGEud2lkdGggLyBudW1YKTsKICAgICAgICB2YXIgYmxvY2tIZWlnaHQgPSBNYXRoLmZsb29yKGRhdGEuaGVpZ2h0IC8gbnVtWSk7CiAgICAgICAgdmFyIHNjYWxlID0gMiAqIGRhdGEubWF4WkVycm9yOwogICAgICAgIHZhciBtaW5WYWx1ZSA9IE51bWJlci5NQVhfVkFMVUUsIGN1cnJlbnRWYWx1ZTsKICAgICAgICBtYXNrQml0c2V0ID0gbWFza0JpdHNldCB8fCAoKGRhdGEubWFzaykgPyBkYXRhLm1hc2suYml0c2V0IDogbnVsbCk7CgogICAgICAgIHZhciByZXN1bHRQaXhlbHMsIHJlc3VsdE1hc2s7CiAgICAgICAgcmVzdWx0UGl4ZWxzID0gbmV3IFR5cGVkQXJyYXlDbGFzcyhkYXRhLndpZHRoICogZGF0YS5oZWlnaHQpOwogICAgICAgIGlmIChzdG9yZURlY29kZWRNYXNrICYmIG1hc2tCaXRzZXQpIHsKICAgICAgICAgIHJlc3VsdE1hc2sgPSBuZXcgVWludDhBcnJheShkYXRhLndpZHRoICogZGF0YS5oZWlnaHQpOwogICAgICAgIH0KICAgICAgICB2YXIgYmxvY2tEYXRhQnVmZmVyID0gbmV3IEZsb2F0MzJBcnJheShibG9ja1dpZHRoICogYmxvY2tIZWlnaHQpOwoKICAgICAgICB2YXIgeHgsIHl5OwogICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDw9IG51bVk7IHkrKykgewogICAgICAgICAgdmFyIHRoaXNCbG9ja0hlaWdodCA9ICh5ICE9PSBudW1ZKSA/IGJsb2NrSGVpZ2h0IDogKGRhdGEuaGVpZ2h0ICUgbnVtWSk7CiAgICAgICAgICBpZiAodGhpc0Jsb2NrSGVpZ2h0ID09PSAwKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgZm9yICh2YXIgeCA9IDA7IHggPD0gbnVtWDsgeCsrKSB7CiAgICAgICAgICAgIHZhciB0aGlzQmxvY2tXaWR0aCA9ICh4ICE9PSBudW1YKSA/IGJsb2NrV2lkdGggOiAoZGF0YS53aWR0aCAlIG51bVgpOwogICAgICAgICAgICBpZiAodGhpc0Jsb2NrV2lkdGggPT09IDApIHsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIG91dFB0ciA9IHkgKiBkYXRhLndpZHRoICogYmxvY2tIZWlnaHQgKyB4ICogYmxvY2tXaWR0aDsKICAgICAgICAgICAgdmFyIG91dFN0cmlkZSA9IGRhdGEud2lkdGggLSB0aGlzQmxvY2tXaWR0aDsKCiAgICAgICAgICAgIHZhciBibG9jayA9IGRhdGEucGl4ZWxzLmJsb2Nrc1tibG9ja0lkeF07CgogICAgICAgICAgICB2YXIgYmxvY2tEYXRhLCBibG9ja1B0ciwgY29uc3RWYWx1ZTsKICAgICAgICAgICAgaWYgKGJsb2NrLmVuY29kaW5nIDwgMikgewogICAgICAgICAgICAgIC8vIGJsb2NrIGlzIGVpdGhlciB1bmNvbXByZXNzZWQgb3IgYml0LXN0dWZmZWQgKGVuY29kaW5ncyAwIGFuZCAxKQogICAgICAgICAgICAgIGlmIChibG9jay5lbmNvZGluZyA9PT0gMCkgewogICAgICAgICAgICAgICAgLy8gYmxvY2sgaXMgdW5jb21wcmVzc2VkCiAgICAgICAgICAgICAgICBibG9ja0RhdGEgPSBibG9jay5yYXdEYXRhOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBibG9jayBpcyBiaXQtc3R1ZmZlZAogICAgICAgICAgICAgICAgdW5zdHVmZihibG9jay5zdHVmZmVkRGF0YSwgYmxvY2suYml0c1BlclBpeGVsLCBibG9jay5udW1WYWxpZFBpeGVscywgYmxvY2sub2Zmc2V0LCBzY2FsZSwgYmxvY2tEYXRhQnVmZmVyLCBkYXRhLnBpeGVscy5tYXhWYWx1ZSk7CiAgICAgICAgICAgICAgICBibG9ja0RhdGEgPSBibG9ja0RhdGFCdWZmZXI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJsb2NrUHRyID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChibG9jay5lbmNvZGluZyA9PT0gMikgewogICAgICAgICAgICAgIC8vIGJsb2NrIGlzIGFsbCAwCiAgICAgICAgICAgICAgY29uc3RWYWx1ZSA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgLy8gYmxvY2sgaGFzIGNvbnN0YW50IHZhbHVlIChlbmNvZGluZyA9PT0gMykKICAgICAgICAgICAgICBjb25zdFZhbHVlID0gYmxvY2sub2Zmc2V0OwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgbWFza0J5dGU7CiAgICAgICAgICAgIGlmIChtYXNrQml0c2V0KSB7CiAgICAgICAgICAgICAgZm9yICh5eSA9IDA7IHl5IDwgdGhpc0Jsb2NrSGVpZ2h0OyB5eSsrKSB7CiAgICAgICAgICAgICAgICBpZiAob3V0UHRyICYgNykgewogICAgICAgICAgICAgICAgICAvLwogICAgICAgICAgICAgICAgICBtYXNrQnl0ZSA9IG1hc2tCaXRzZXRbb3V0UHRyID4+IDNdOwogICAgICAgICAgICAgICAgICBtYXNrQnl0ZSA8PD0gb3V0UHRyICYgNzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZvciAoeHggPSAwOyB4eCA8IHRoaXNCbG9ja1dpZHRoOyB4eCsrKSB7CiAgICAgICAgICAgICAgICAgIGlmICghKG91dFB0ciAmIDcpKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gcmVhZCBuZXh0IGJ5dGUgZnJvbSBtYXNrCiAgICAgICAgICAgICAgICAgICAgbWFza0J5dGUgPSBtYXNrQml0c2V0W291dFB0ciA+PiAzXTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAobWFza0J5dGUgJiAxMjgpIHsKICAgICAgICAgICAgICAgICAgICAvLyBwaXhlbCBkYXRhIHByZXNlbnQKICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0TWFzaykgewogICAgICAgICAgICAgICAgICAgICAgcmVzdWx0TWFza1tvdXRQdHJdID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlID0gKGJsb2NrLmVuY29kaW5nIDwgMikgPyBibG9ja0RhdGFbYmxvY2tQdHIrK10gOiBjb25zdFZhbHVlOwogICAgICAgICAgICAgICAgICAgIG1pblZhbHVlID0gbWluVmFsdWUgPiBjdXJyZW50VmFsdWUgPyBjdXJyZW50VmFsdWUgOiBtaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICByZXN1bHRQaXhlbHNbb3V0UHRyKytdID0gY3VycmVudFZhbHVlOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIHBpeGVsIGRhdGEgbm90IHByZXNlbnQKICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0TWFzaykgewogICAgICAgICAgICAgICAgICAgICAgcmVzdWx0TWFza1tvdXRQdHJdID0gMDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0UGl4ZWxzW291dFB0cisrXSA9IG5vRGF0YVZhbHVlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIG1hc2tCeXRlIDw8PSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgb3V0UHRyICs9IG91dFN0cmlkZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgLy8gbWFzayBub3QgcHJlc2VudCwgc2ltcGx5IGNvcHkgYmxvY2sgb3ZlcgogICAgICAgICAgICAgIGlmIChibG9jay5lbmNvZGluZyA8IDIpIHsKICAgICAgICAgICAgICAgIC8vIGR1cGxpY2F0aW5nIHRoaXMgY29kZSBibG9jayBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucwogICAgICAgICAgICAgICAgLy8gYmxvY2tEYXRhIGNhc2U6CiAgICAgICAgICAgICAgICBmb3IgKHl5ID0gMDsgeXkgPCB0aGlzQmxvY2tIZWlnaHQ7IHl5KyspIHsKICAgICAgICAgICAgICAgICAgZm9yICh4eCA9IDA7IHh4IDwgdGhpc0Jsb2NrV2lkdGg7IHh4KyspIHsKICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUgPSBibG9ja0RhdGFbYmxvY2tQdHIrK107CiAgICAgICAgICAgICAgICAgICAgbWluVmFsdWUgPSBtaW5WYWx1ZSA+IGN1cnJlbnRWYWx1ZSA/IGN1cnJlbnRWYWx1ZSA6IG1pblZhbHVlOwogICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHIrK10gPSBjdXJyZW50VmFsdWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgb3V0UHRyICs9IG91dFN0cmlkZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBjb25zdFZhbHVlIGNhc2U6CiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IG1pblZhbHVlID4gY29uc3RWYWx1ZSA/IGNvbnN0VmFsdWUgOiBtaW5WYWx1ZTsKICAgICAgICAgICAgICAgIGZvciAoeXkgPSAwOyB5eSA8IHRoaXNCbG9ja0hlaWdodDsgeXkrKykgewogICAgICAgICAgICAgICAgICBmb3IgKHh4ID0gMDsgeHggPCB0aGlzQmxvY2tXaWR0aDsgeHgrKykgewogICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHIrK10gPSBjb25zdFZhbHVlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIG91dFB0ciArPSBvdXRTdHJpZGU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgoYmxvY2suZW5jb2RpbmcgPT09IDEpICYmIChibG9ja1B0ciAhPT0gYmxvY2subnVtVmFsaWRQaXhlbHMpKSB7CiAgICAgICAgICAgICAgdGhyb3cgIkJsb2NrIGFuZCBNYXNrIGRvIG5vdCBtYXRjaCI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYmxvY2tJZHgrKzsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICByZXN1bHRQaXhlbHM6IHJlc3VsdFBpeGVscywKICAgICAgICAgIHJlc3VsdE1hc2s6IHJlc3VsdE1hc2ssCiAgICAgICAgICBtaW5WYWx1ZTogbWluVmFsdWUKICAgICAgICB9OwogICAgICB9OwoKICAgICAgdmFyIGZvcm1hdEZpbGVJbmZvID0gZnVuY3Rpb24oZGF0YSkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAiZmlsZUlkZW50aWZpZXJTdHJpbmciOiBkYXRhLmZpbGVJZGVudGlmaWVyU3RyaW5nLAogICAgICAgICAgImZpbGVWZXJzaW9uIjogZGF0YS5maWxlVmVyc2lvbiwKICAgICAgICAgICJpbWFnZVR5cGUiOiBkYXRhLmltYWdlVHlwZSwKICAgICAgICAgICJoZWlnaHQiOiBkYXRhLmhlaWdodCwKICAgICAgICAgICJ3aWR0aCI6IGRhdGEud2lkdGgsCiAgICAgICAgICAibWF4WkVycm9yIjogZGF0YS5tYXhaRXJyb3IsCiAgICAgICAgICAiZW9mT2Zmc2V0IjogZGF0YS5lb2ZPZmZzZXQsCiAgICAgICAgICAibWFzayI6IGRhdGEubWFzayA/IHsKICAgICAgICAgICAgIm51bUJsb2Nrc1giOiBkYXRhLm1hc2subnVtQmxvY2tzWCwKICAgICAgICAgICAgIm51bUJsb2Nrc1kiOiBkYXRhLm1hc2subnVtQmxvY2tzWSwKICAgICAgICAgICAgIm51bUJ5dGVzIjogZGF0YS5tYXNrLm51bUJ5dGVzLAogICAgICAgICAgICAibWF4VmFsdWUiOiBkYXRhLm1hc2subWF4VmFsdWUKICAgICAgICAgIH0gOiBudWxsLAogICAgICAgICAgInBpeGVscyI6IHsKICAgICAgICAgICAgIm51bUJsb2Nrc1giOiBkYXRhLnBpeGVscy5udW1CbG9ja3NYLAogICAgICAgICAgICAibnVtQmxvY2tzWSI6IGRhdGEucGl4ZWxzLm51bUJsb2Nrc1ksCiAgICAgICAgICAgICJudW1CeXRlcyI6IGRhdGEucGl4ZWxzLm51bUJ5dGVzLAogICAgICAgICAgICAibWF4VmFsdWUiOiBkYXRhLnBpeGVscy5tYXhWYWx1ZSwKICAgICAgICAgICAgIm5vRGF0YVZhbHVlIjogZGF0YS5ub0RhdGFWYWx1ZQogICAgICAgICAgfQogICAgICAgIH07CiAgICAgIH07CgogICAgICB2YXIgY29tcHV0ZVVzZWRCaXREZXB0aHMgPSBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgdmFyIG51bUJsb2NrcyA9IGRhdGEucGl4ZWxzLm51bUJsb2Nrc1ggKiBkYXRhLnBpeGVscy5udW1CbG9ja3NZOwogICAgICAgIHZhciBiaXREZXB0aHMgPSB7fTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bUJsb2NrczsgaSsrKSB7CiAgICAgICAgICB2YXIgYmxvY2sgPSBkYXRhLnBpeGVscy5ibG9ja3NbaV07CiAgICAgICAgICBpZiAoYmxvY2suZW5jb2RpbmcgPT09IDApIHsKICAgICAgICAgICAgYml0RGVwdGhzLmZsb2F0MzIgPSB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmIChibG9jay5lbmNvZGluZyA9PT0gMSkgewogICAgICAgICAgICBiaXREZXB0aHNbYmxvY2suYml0c1BlclBpeGVsXSA9IHRydWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBiaXREZXB0aHNbMF0gPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGJpdERlcHRocyk7CiAgICAgIH07CgogICAgICB2YXIgcGFyc2UgPSBmdW5jdGlvbihpbnB1dCwgZnAsIHNraXBNYXNrKSB7CiAgICAgICAgdmFyIGRhdGEgPSB7fTsKCiAgICAgICAgLy8gRmlsZSBoZWFkZXIKICAgICAgICB2YXIgZmlsZUlkVmlldyA9IG5ldyBVaW50OEFycmF5KGlucHV0LCBmcCwgMTApOwogICAgICAgIGRhdGEuZmlsZUlkZW50aWZpZXJTdHJpbmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGZpbGVJZFZpZXcpOwogICAgICAgIGlmIChkYXRhLmZpbGVJZGVudGlmaWVyU3RyaW5nLnRyaW0oKSAhPT0gIkNudFpJbWFnZSIpIHsKICAgICAgICAgIHRocm93ICJVbmV4cGVjdGVkIGZpbGUgaWRlbnRpZmllciBzdHJpbmc6ICIgKyBkYXRhLmZpbGVJZGVudGlmaWVyU3RyaW5nOwogICAgICAgIH0KICAgICAgICBmcCArPSAxMDsKICAgICAgICB2YXIgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZnAsIDI0KTsKICAgICAgICBkYXRhLmZpbGVWZXJzaW9uID0gdmlldy5nZXRJbnQzMigwLCB0cnVlKTsKICAgICAgICBkYXRhLmltYWdlVHlwZSA9IHZpZXcuZ2V0SW50MzIoNCwgdHJ1ZSk7CiAgICAgICAgZGF0YS5oZWlnaHQgPSB2aWV3LmdldFVpbnQzMig4LCB0cnVlKTsKICAgICAgICBkYXRhLndpZHRoID0gdmlldy5nZXRVaW50MzIoMTIsIHRydWUpOwogICAgICAgIGRhdGEubWF4WkVycm9yID0gdmlldy5nZXRGbG9hdDY0KDE2LCB0cnVlKTsKICAgICAgICBmcCArPSAyNDsKCiAgICAgICAgLy8gTWFzayBIZWFkZXIKICAgICAgICBpZiAoIXNraXBNYXNrKSB7CiAgICAgICAgICB2aWV3ID0gbmV3IERhdGFWaWV3KGlucHV0LCBmcCwgMTYpOwogICAgICAgICAgZGF0YS5tYXNrID0ge307CiAgICAgICAgICBkYXRhLm1hc2subnVtQmxvY2tzWSA9IHZpZXcuZ2V0VWludDMyKDAsIHRydWUpOwogICAgICAgICAgZGF0YS5tYXNrLm51bUJsb2Nrc1ggPSB2aWV3LmdldFVpbnQzMig0LCB0cnVlKTsKICAgICAgICAgIGRhdGEubWFzay5udW1CeXRlcyA9IHZpZXcuZ2V0VWludDMyKDgsIHRydWUpOwogICAgICAgICAgZGF0YS5tYXNrLm1heFZhbHVlID0gdmlldy5nZXRGbG9hdDMyKDEyLCB0cnVlKTsKICAgICAgICAgIGZwICs9IDE2OwoKICAgICAgICAgIC8vIE1hc2sgRGF0YQogICAgICAgICAgaWYgKGRhdGEubWFzay5udW1CeXRlcyA+IDApIHsKICAgICAgICAgICAgdmFyIGJpdHNldCA9IG5ldyBVaW50OEFycmF5KE1hdGguY2VpbChkYXRhLndpZHRoICogZGF0YS5oZWlnaHQgLyA4KSk7CiAgICAgICAgICAgIHZpZXcgPSBuZXcgRGF0YVZpZXcoaW5wdXQsIGZwLCBkYXRhLm1hc2subnVtQnl0ZXMpOwogICAgICAgICAgICB2YXIgY250ID0gdmlldy5nZXRJbnQxNigwLCB0cnVlKTsKICAgICAgICAgICAgdmFyIGlwID0gMiwgb3AgPSAwOwogICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgaWYgKGNudCA+IDApIHsKICAgICAgICAgICAgICAgIHdoaWxlIChjbnQtLSkgeyBiaXRzZXRbb3ArK10gPSB2aWV3LmdldFVpbnQ4KGlwKyspOyB9CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciB2YWwgPSB2aWV3LmdldFVpbnQ4KGlwKyspOwogICAgICAgICAgICAgICAgY250ID0gLWNudDsKICAgICAgICAgICAgICAgIHdoaWxlIChjbnQtLSkgeyBiaXRzZXRbb3ArK10gPSB2YWw7IH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY250ID0gdmlldy5nZXRJbnQxNihpcCwgdHJ1ZSk7CiAgICAgICAgICAgICAgaXAgKz0gMjsKICAgICAgICAgICAgfSB3aGlsZSAoaXAgPCBkYXRhLm1hc2subnVtQnl0ZXMpOwogICAgICAgICAgICBpZiAoKGNudCAhPT0gLTMyNzY4KSB8fCAob3AgPCBiaXRzZXQubGVuZ3RoKSkgewogICAgICAgICAgICAgIHRocm93ICJVbmV4cGVjdGVkIGVuZCBvZiBtYXNrIFJMRSBlbmNvZGluZyI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YS5tYXNrLmJpdHNldCA9IGJpdHNldDsKICAgICAgICAgICAgZnAgKz0gZGF0YS5tYXNrLm51bUJ5dGVzOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAoKGRhdGEubWFzay5udW1CeXRlcyB8IGRhdGEubWFzay5udW1CbG9ja3NZIHwgZGF0YS5tYXNrLm1heFZhbHVlKSA9PT0gMCkgeyAgLy8gU3BlY2lhbCBjYXNlLCBhbGwgbm9kYXRhCiAgICAgICAgICAgIGRhdGEubWFzay5iaXRzZXQgPSBuZXcgVWludDhBcnJheShNYXRoLmNlaWwoZGF0YS53aWR0aCAqIGRhdGEuaGVpZ2h0IC8gOCkpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gUGl4ZWwgSGVhZGVyCiAgICAgICAgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZnAsIDE2KTsKICAgICAgICBkYXRhLnBpeGVscyA9IHt9OwogICAgICAgIGRhdGEucGl4ZWxzLm51bUJsb2Nrc1kgPSB2aWV3LmdldFVpbnQzMigwLCB0cnVlKTsKICAgICAgICBkYXRhLnBpeGVscy5udW1CbG9ja3NYID0gdmlldy5nZXRVaW50MzIoNCwgdHJ1ZSk7CiAgICAgICAgZGF0YS5waXhlbHMubnVtQnl0ZXMgPSB2aWV3LmdldFVpbnQzMig4LCB0cnVlKTsKICAgICAgICBkYXRhLnBpeGVscy5tYXhWYWx1ZSA9IHZpZXcuZ2V0RmxvYXQzMigxMiwgdHJ1ZSk7CiAgICAgICAgZnAgKz0gMTY7CgogICAgICAgIHZhciBudW1CbG9ja3NYID0gZGF0YS5waXhlbHMubnVtQmxvY2tzWDsKICAgICAgICB2YXIgbnVtQmxvY2tzWSA9IGRhdGEucGl4ZWxzLm51bUJsb2Nrc1k7CiAgICAgICAgLy8gdGhlIG51bWJlciBvZiBibG9ja3Mgc3BlY2lmaWVkIGluIHRoZSBoZWFkZXIgZG9lcyBub3QgdGFrZSBpbnRvIGFjY291bnQgdGhlIGJsb2NrcyBhdCB0aGUgZW5kIG9mCiAgICAgICAgLy8gZWFjaCByb3cvY29sdW1uIHdpdGggYSBzcGVjaWFsIHdpZHRoL2hlaWdodCB0aGF0IG1ha2UgdGhlIGltYWdlIGNvbXBsZXRlIGluIGNhc2UgdGhlIHdpZHRoIGlzIG5vdAogICAgICAgIC8vIGV2ZW5seSBkaXZpc2libGUgYnkgdGhlIG51bWJlciBvZiBibG9ja3MuCiAgICAgICAgdmFyIGFjdHVhbE51bUJsb2Nrc1ggPSBudW1CbG9ja3NYICsgKChkYXRhLndpZHRoICUgbnVtQmxvY2tzWCkgPiAwID8gMSA6IDApOwogICAgICAgIHZhciBhY3R1YWxOdW1CbG9ja3NZID0gbnVtQmxvY2tzWSArICgoZGF0YS5oZWlnaHQgJSBudW1CbG9ja3NZKSA+IDAgPyAxIDogMCk7CiAgICAgICAgZGF0YS5waXhlbHMuYmxvY2tzID0gbmV3IEFycmF5KGFjdHVhbE51bUJsb2Nrc1ggKiBhY3R1YWxOdW1CbG9ja3NZKTsKICAgICAgICB2YXIgYmxvY2tJID0gMDsKICAgICAgICBmb3IgKHZhciBibG9ja1kgPSAwOyBibG9ja1kgPCBhY3R1YWxOdW1CbG9ja3NZOyBibG9ja1krKykgewogICAgICAgICAgZm9yICh2YXIgYmxvY2tYID0gMDsgYmxvY2tYIDwgYWN0dWFsTnVtQmxvY2tzWDsgYmxvY2tYKyspIHsKCiAgICAgICAgICAgIC8vIEJsb2NrCiAgICAgICAgICAgIHZhciBzaXplID0gMDsKICAgICAgICAgICAgdmFyIGJ5dGVzTGVmdCA9IGlucHV0LmJ5dGVMZW5ndGggLSBmcDsKICAgICAgICAgICAgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZnAsIE1hdGgubWluKDEwLCBieXRlc0xlZnQpKTsKICAgICAgICAgICAgdmFyIGJsb2NrID0ge307CiAgICAgICAgICAgIGRhdGEucGl4ZWxzLmJsb2Nrc1tibG9ja0krK10gPSBibG9jazsKICAgICAgICAgICAgdmFyIGhlYWRlckJ5dGUgPSB2aWV3LmdldFVpbnQ4KDApOyBzaXplKys7CiAgICAgICAgICAgIGJsb2NrLmVuY29kaW5nID0gaGVhZGVyQnl0ZSAmIDYzOwogICAgICAgICAgICBpZiAoYmxvY2suZW5jb2RpbmcgPiAzKSB7CiAgICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgYmxvY2sgZW5jb2RpbmcgKCIgKyBibG9jay5lbmNvZGluZyArICIpIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoYmxvY2suZW5jb2RpbmcgPT09IDIpIHsKICAgICAgICAgICAgICBmcCsrOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgoaGVhZGVyQnl0ZSAhPT0gMCkgJiYgKGhlYWRlckJ5dGUgIT09IDIpKSB7CiAgICAgICAgICAgICAgaGVhZGVyQnl0ZSA+Pj0gNjsKICAgICAgICAgICAgICBibG9jay5vZmZzZXRUeXBlID0gaGVhZGVyQnl0ZTsKICAgICAgICAgICAgICBpZiAoaGVhZGVyQnl0ZSA9PT0gMikgewogICAgICAgICAgICAgICAgYmxvY2sub2Zmc2V0ID0gdmlldy5nZXRJbnQ4KDEpOyBzaXplKys7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChoZWFkZXJCeXRlID09PSAxKSB7CiAgICAgICAgICAgICAgICBibG9jay5vZmZzZXQgPSB2aWV3LmdldEludDE2KDEsIHRydWUpOyBzaXplICs9IDI7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChoZWFkZXJCeXRlID09PSAwKSB7CiAgICAgICAgICAgICAgICBibG9jay5vZmZzZXQgPSB2aWV3LmdldEZsb2F0MzIoMSwgdHJ1ZSk7IHNpemUgKz0gNDsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgYmxvY2sgb2Zmc2V0IHR5cGUiOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgaWYgKGJsb2NrLmVuY29kaW5nID09PSAxKSB7CiAgICAgICAgICAgICAgICBoZWFkZXJCeXRlID0gdmlldy5nZXRVaW50OChzaXplKTsgc2l6ZSsrOwogICAgICAgICAgICAgICAgYmxvY2suYml0c1BlclBpeGVsID0gaGVhZGVyQnl0ZSAmIDYzOwogICAgICAgICAgICAgICAgaGVhZGVyQnl0ZSA+Pj0gNjsKICAgICAgICAgICAgICAgIGJsb2NrLm51bVZhbGlkUGl4ZWxzVHlwZSA9IGhlYWRlckJ5dGU7CiAgICAgICAgICAgICAgICBpZiAoaGVhZGVyQnl0ZSA9PT0gMikgewogICAgICAgICAgICAgICAgICBibG9jay5udW1WYWxpZFBpeGVscyA9IHZpZXcuZ2V0VWludDgoc2l6ZSk7IHNpemUrKzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaGVhZGVyQnl0ZSA9PT0gMSkgewogICAgICAgICAgICAgICAgICBibG9jay5udW1WYWxpZFBpeGVscyA9IHZpZXcuZ2V0VWludDE2KHNpemUsIHRydWUpOyBzaXplICs9IDI7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhlYWRlckJ5dGUgPT09IDApIHsKICAgICAgICAgICAgICAgICAgYmxvY2subnVtVmFsaWRQaXhlbHMgPSB2aWV3LmdldFVpbnQzMihzaXplLCB0cnVlKTsgc2l6ZSArPSA0OwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgdmFsaWQgcGl4ZWwgY291bnQgdHlwZSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGZwICs9IHNpemU7CgogICAgICAgICAgICBpZiAoYmxvY2suZW5jb2RpbmcgPT09IDMpIHsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGFycmF5QnVmLCBzdG9yZTg7CiAgICAgICAgICAgIGlmIChibG9jay5lbmNvZGluZyA9PT0gMCkgewogICAgICAgICAgICAgIHZhciBudW1QaXhlbHMgPSAoZGF0YS5waXhlbHMubnVtQnl0ZXMgLSAxKSAvIDQ7CiAgICAgICAgICAgICAgaWYgKG51bVBpeGVscyAhPT0gTWF0aC5mbG9vcihudW1QaXhlbHMpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyAidW5jb21wcmVzc2VkIGJsb2NrIGhhcyBpbnZhbGlkIGxlbmd0aCI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGFycmF5QnVmID0gbmV3IEFycmF5QnVmZmVyKG51bVBpeGVscyAqIDQpOwogICAgICAgICAgICAgIHN0b3JlOCA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmKTsKICAgICAgICAgICAgICBzdG9yZTguc2V0KG5ldyBVaW50OEFycmF5KGlucHV0LCBmcCwgbnVtUGl4ZWxzICogNCkpOwogICAgICAgICAgICAgIHZhciByYXdEYXRhID0gbmV3IEZsb2F0MzJBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgICAgYmxvY2sucmF3RGF0YSA9IHJhd0RhdGE7CiAgICAgICAgICAgICAgZnAgKz0gbnVtUGl4ZWxzICogNDsKICAgICAgICAgICAgfSBlbHNlIGlmIChibG9jay5lbmNvZGluZyA9PT0gMSkgewogICAgICAgICAgICAgIHZhciBkYXRhQnl0ZXMgPSBNYXRoLmNlaWwoYmxvY2subnVtVmFsaWRQaXhlbHMgKiBibG9jay5iaXRzUGVyUGl4ZWwgLyA4KTsKICAgICAgICAgICAgICB2YXIgZGF0YVdvcmRzID0gTWF0aC5jZWlsKGRhdGFCeXRlcyAvIDQpOwogICAgICAgICAgICAgIGFycmF5QnVmID0gbmV3IEFycmF5QnVmZmVyKGRhdGFXb3JkcyAqIDQpOwogICAgICAgICAgICAgIHN0b3JlOCA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmKTsKICAgICAgICAgICAgICBzdG9yZTguc2V0KG5ldyBVaW50OEFycmF5KGlucHV0LCBmcCwgZGF0YUJ5dGVzKSk7CiAgICAgICAgICAgICAgYmxvY2suc3R1ZmZlZERhdGEgPSBuZXcgVWludDMyQXJyYXkoYXJyYXlCdWYpOwogICAgICAgICAgICAgIGZwICs9IGRhdGFCeXRlczsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBkYXRhLmVvZk9mZnNldCA9IGZwOwogICAgICAgIHJldHVybiBkYXRhOwogICAgICB9OwoKICAgICAgdmFyIHVuc3R1ZmYgPSBmdW5jdGlvbihzcmMsIGJpdHNQZXJQaXhlbCwgbnVtUGl4ZWxzLCBvZmZzZXQsIHNjYWxlLCBkZXN0LCBtYXhWYWx1ZSkgewogICAgICAgIHZhciBiaXRNYXNrID0gKDEgPDwgYml0c1BlclBpeGVsKSAtIDE7CiAgICAgICAgdmFyIGkgPSAwLCBvOwogICAgICAgIHZhciBiaXRzTGVmdCA9IDA7CiAgICAgICAgdmFyIG4sIGJ1ZmZlcjsKICAgICAgICB2YXIgbm1heCA9IE1hdGguY2VpbCgobWF4VmFsdWUgLSBvZmZzZXQpIC8gc2NhbGUpOwogICAgICAgIC8vIGdldCByaWQgb2YgdHJhaWxpbmcgYnl0ZXMgdGhhdCBhcmUgYWxyZWFkeSBwYXJ0IG9mIG5leHQgYmxvY2sKICAgICAgICB2YXIgbnVtSW52YWxpZFRhaWxCeXRlcyA9IHNyYy5sZW5ndGggKiA0IC0gTWF0aC5jZWlsKGJpdHNQZXJQaXhlbCAqIG51bVBpeGVscyAvIDgpOwogICAgICAgIHNyY1tzcmMubGVuZ3RoIC0gMV0gPDw9IDggKiBudW1JbnZhbGlkVGFpbEJ5dGVzOwoKICAgICAgICBmb3IgKG8gPSAwOyBvIDwgbnVtUGl4ZWxzOyBvKyspIHsKICAgICAgICAgIGlmIChiaXRzTGVmdCA9PT0gMCkgewogICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgYml0c0xlZnQgPSAzMjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChiaXRzTGVmdCA+PSBiaXRzUGVyUGl4ZWwpIHsKICAgICAgICAgICAgbiA9IChidWZmZXIgPj4+IChiaXRzTGVmdCAtIGJpdHNQZXJQaXhlbCkpICYgYml0TWFzazsKICAgICAgICAgICAgYml0c0xlZnQgLT0gYml0c1BlclBpeGVsOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIG1pc3NpbmdCaXRzID0gKGJpdHNQZXJQaXhlbCAtIGJpdHNMZWZ0KTsKICAgICAgICAgICAgbiA9ICgoYnVmZmVyICYgYml0TWFzaykgPDwgbWlzc2luZ0JpdHMpICYgYml0TWFzazsKICAgICAgICAgICAgYnVmZmVyID0gc3JjW2krK107CiAgICAgICAgICAgIGJpdHNMZWZ0ID0gMzIgLSBtaXNzaW5nQml0czsKICAgICAgICAgICAgbiArPSAoYnVmZmVyID4+PiBiaXRzTGVmdCk7CiAgICAgICAgICB9CiAgICAgICAgICAvL3BpeGVsIHZhbHVlcyBtYXkgZXhjZWVkIG1heCBkdWUgdG8gcXVhbnRpemF0aW9uCiAgICAgICAgICBkZXN0W29dID0gbiA8IG5tYXggPyBvZmZzZXQgKyBuICogc2NhbGUgOiBtYXhWYWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRlc3Q7CiAgICAgIH07CgogICAgICByZXR1cm4gQ250WkltYWdlOwogICAgfSkoKTsKCiAgICAvL3ZlcnNpb24gMi4gU3VwcG9ydHMgMi4xLCAyLjIsIDIuMwogICAgdmFyIExlcmMyRGVjb2RlID0gKGZ1bmN0aW9uKCkgewogICAgICAvLyBOb3RlOiBjdXJyZW50bHksIHRoaXMgbW9kdWxlIG9ubHkgaGFzIGFuIGltcGxlbWVudGF0aW9uIGZvciBkZWNvZGluZyBMRVJDIGRhdGEsIG5vdCBlbmNvZGluZy4gVGhlIG5hbWUgb2YKICAgICAgLy8gdGhlIGNsYXNzIHdhcyBjaG9zZW4gdG8gYmUgZnV0dXJlIHByb29mLCBmb2xsb3dpbmcgTGVyY0RlY29kZS4KCiAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAqIHByaXZhdGUgc3RhdGljIGNsYXNzIGJpdHN1dGZmZXIgdXNlZCBieSBMZXJjMkRlY29kZQogICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogICAgICB2YXIgQml0U3R1ZmZlciA9IHsKICAgICAgICAvL21ldGhvZHMgZW5kaW5nIHdpdGggMiBhcmUgZm9yIHRoZSBuZXcgYnl0ZSBvcmRlciB1c2VkIGJ5IExlcmMyLjMgYW5kIGFib3ZlLgogICAgICAgIC8vb3JpZ2luYWxVbnN0dWZmIGlzIHVzZWQgdG8gdW5wYWNrIEh1ZmZtYW4gY29kZSB0YWJsZS4gY29kZSBpcyBkdXBsaWNhdGVkIHRvIHVuc3R1ZmZ4IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgogICAgICAgIHVuc3R1ZmY6IGZ1bmN0aW9uKHNyYywgZGVzdCwgYml0c1BlclBpeGVsLCBudW1QaXhlbHMsIGx1dEFyciwgb2Zmc2V0LCBzY2FsZSwgbWF4VmFsdWUpIHsKICAgICAgICAgIHZhciBiaXRNYXNrID0gKDEgPDwgYml0c1BlclBpeGVsKSAtIDE7CiAgICAgICAgICB2YXIgaSA9IDAsIG87CiAgICAgICAgICB2YXIgYml0c0xlZnQgPSAwOwogICAgICAgICAgdmFyIG4sIGJ1ZmZlciwgbWlzc2luZ0JpdHMsIG5tYXg7CgogICAgICAgICAgLy8gZ2V0IHJpZCBvZiB0cmFpbGluZyBieXRlcyB0aGF0IGFyZSBhbHJlYWR5IHBhcnQgb2YgbmV4dCBibG9jawogICAgICAgICAgdmFyIG51bUludmFsaWRUYWlsQnl0ZXMgPSBzcmMubGVuZ3RoICogNCAtIE1hdGguY2VpbChiaXRzUGVyUGl4ZWwgKiBudW1QaXhlbHMgLyA4KTsKICAgICAgICAgIHNyY1tzcmMubGVuZ3RoIC0gMV0gPDw9IDggKiBudW1JbnZhbGlkVGFpbEJ5dGVzOwogICAgICAgICAgaWYgKGx1dEFycikgewogICAgICAgICAgICBmb3IgKG8gPSAwOyBvIDwgbnVtUGl4ZWxzOyBvKyspIHsKICAgICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID49IGJpdHNQZXJQaXhlbCkgewogICAgICAgICAgICAgICAgbiA9IChidWZmZXIgPj4+IChiaXRzTGVmdCAtIGJpdHNQZXJQaXhlbCkpICYgYml0TWFzazsKICAgICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBtaXNzaW5nQml0cyA9IChiaXRzUGVyUGl4ZWwgLSBiaXRzTGVmdCk7CiAgICAgICAgICAgICAgICBuID0gKChidWZmZXIgJiBiaXRNYXNrKSA8PCBtaXNzaW5nQml0cykgJiBiaXRNYXNrOwogICAgICAgICAgICAgICAgYnVmZmVyID0gc3JjW2krK107CiAgICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyIC0gbWlzc2luZ0JpdHM7CiAgICAgICAgICAgICAgICBuICs9IChidWZmZXIgPj4+IGJpdHNMZWZ0KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZGVzdFtvXSA9IGx1dEFycltuXTsvL29mZnNldCArIGx1dEFycltuXSAqIHNjYWxlOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbm1heCA9IE1hdGguY2VpbCgobWF4VmFsdWUgLSBvZmZzZXQpIC8gc2NhbGUpOwogICAgICAgICAgICBmb3IgKG8gPSAwOyBvIDwgbnVtUGl4ZWxzOyBvKyspIHsKICAgICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID49IGJpdHNQZXJQaXhlbCkgewogICAgICAgICAgICAgICAgbiA9IChidWZmZXIgPj4+IChiaXRzTGVmdCAtIGJpdHNQZXJQaXhlbCkpICYgYml0TWFzazsKICAgICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBtaXNzaW5nQml0cyA9IChiaXRzUGVyUGl4ZWwgLSBiaXRzTGVmdCk7CiAgICAgICAgICAgICAgICBuID0gKChidWZmZXIgJiBiaXRNYXNrKSA8PCBtaXNzaW5nQml0cykgJiBiaXRNYXNrOwogICAgICAgICAgICAgICAgYnVmZmVyID0gc3JjW2krK107CiAgICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyIC0gbWlzc2luZ0JpdHM7CiAgICAgICAgICAgICAgICBuICs9IChidWZmZXIgPj4+IGJpdHNMZWZ0KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy9waXhlbCB2YWx1ZXMgbWF5IGV4Y2VlZCBtYXggZHVlIHRvIHF1YW50aXphdGlvbgogICAgICAgICAgICAgIGRlc3Rbb10gPSBuIDwgbm1heCA/IG9mZnNldCArIG4gKiBzY2FsZSA6IG1heFZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgdW5zdHVmZkxVVDogZnVuY3Rpb24oc3JjLCBiaXRzUGVyUGl4ZWwsIG51bVBpeGVscywgb2Zmc2V0LCBzY2FsZSwgbWF4VmFsdWUpIHsKICAgICAgICAgIHZhciBiaXRNYXNrID0gKDEgPDwgYml0c1BlclBpeGVsKSAtIDE7CiAgICAgICAgICB2YXIgaSA9IDAsIG8gPSAwLCBtaXNzaW5nQml0cyA9IDAsIGJpdHNMZWZ0ID0gMCwgbiA9IDA7CiAgICAgICAgICB2YXIgYnVmZmVyOwogICAgICAgICAgdmFyIGRlc3QgPSBbXTsKCiAgICAgICAgICAvLyBnZXQgcmlkIG9mIHRyYWlsaW5nIGJ5dGVzIHRoYXQgYXJlIGFscmVhZHkgcGFydCBvZiBuZXh0IGJsb2NrCiAgICAgICAgICB2YXIgbnVtSW52YWxpZFRhaWxCeXRlcyA9IHNyYy5sZW5ndGggKiA0IC0gTWF0aC5jZWlsKGJpdHNQZXJQaXhlbCAqIG51bVBpeGVscyAvIDgpOwogICAgICAgICAgc3JjW3NyYy5sZW5ndGggLSAxXSA8PD0gOCAqIG51bUludmFsaWRUYWlsQnl0ZXM7CgogICAgICAgICAgdmFyIG5tYXggPSBNYXRoLmNlaWwoKG1heFZhbHVlIC0gb2Zmc2V0KSAvIHNjYWxlKTsKICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBudW1QaXhlbHM7IG8rKykgewogICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChiaXRzTGVmdCA+PSBiaXRzUGVyUGl4ZWwpIHsKICAgICAgICAgICAgICBuID0gKGJ1ZmZlciA+Pj4gKGJpdHNMZWZ0IC0gYml0c1BlclBpeGVsKSkgJiBiaXRNYXNrOwogICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBtaXNzaW5nQml0cyA9IChiaXRzUGVyUGl4ZWwgLSBiaXRzTGVmdCk7CiAgICAgICAgICAgICAgbiA9ICgoYnVmZmVyICYgYml0TWFzaykgPDwgbWlzc2luZ0JpdHMpICYgYml0TWFzazsKICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyIC0gbWlzc2luZ0JpdHM7CiAgICAgICAgICAgICAgbiArPSAoYnVmZmVyID4+PiBiaXRzTGVmdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy9kZXN0LnB1c2gobik7CiAgICAgICAgICAgIGRlc3Rbb10gPSBuIDwgbm1heCA/IG9mZnNldCArIG4gKiBzY2FsZSA6IG1heFZhbHVlOwogICAgICAgICAgfQogICAgICAgICAgZGVzdC51bnNoaWZ0KG9mZnNldCk7Ly8xc3Qgb25lCiAgICAgICAgICByZXR1cm4gZGVzdDsKICAgICAgICB9LAoKICAgICAgICB1bnN0dWZmMjogZnVuY3Rpb24oc3JjLCBkZXN0LCBiaXRzUGVyUGl4ZWwsIG51bVBpeGVscywgbHV0QXJyLCBvZmZzZXQsIHNjYWxlLCBtYXhWYWx1ZSkgewogICAgICAgICAgdmFyIGJpdE1hc2sgPSAoMSA8PCBiaXRzUGVyUGl4ZWwpIC0gMTsKICAgICAgICAgIHZhciBpID0gMCwgbzsKICAgICAgICAgIHZhciBiaXRzTGVmdCA9IDAsIGJpdFBvcyA9IDA7CiAgICAgICAgICB2YXIgbiwgYnVmZmVyLCBtaXNzaW5nQml0czsKICAgICAgICAgIGlmIChsdXRBcnIpIHsKICAgICAgICAgICAgZm9yIChvID0gMDsgbyA8IG51bVBpeGVsczsgbysrKSB7CiAgICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID09PSAwKSB7CiAgICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICAgIGJpdHNMZWZ0ID0gMzI7CiAgICAgICAgICAgICAgICBiaXRQb3MgPSAwOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoYml0c0xlZnQgPj0gYml0c1BlclBpeGVsKSB7CiAgICAgICAgICAgICAgICBuID0gKChidWZmZXIgPj4+IGJpdFBvcykgJiBiaXRNYXNrKTsKICAgICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgICAgIGJpdFBvcyArPSBiaXRzUGVyUGl4ZWw7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG1pc3NpbmdCaXRzID0gKGJpdHNQZXJQaXhlbCAtIGJpdHNMZWZ0KTsKICAgICAgICAgICAgICAgIG4gPSAoYnVmZmVyID4+PiBiaXRQb3MpICYgYml0TWFzazsKICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMiAtIG1pc3NpbmdCaXRzOwogICAgICAgICAgICAgICAgbiB8PSAoYnVmZmVyICYgKCgxIDw8IG1pc3NpbmdCaXRzKSAtIDEpKSA8PCAoYml0c1BlclBpeGVsIC0gbWlzc2luZ0JpdHMpOwogICAgICAgICAgICAgICAgYml0UG9zID0gbWlzc2luZ0JpdHM7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGRlc3Rbb10gPSBsdXRBcnJbbl07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICB2YXIgbm1heCA9IE1hdGguY2VpbCgobWF4VmFsdWUgLSBvZmZzZXQpIC8gc2NhbGUpOwogICAgICAgICAgICBmb3IgKG8gPSAwOyBvIDwgbnVtUGl4ZWxzOyBvKyspIHsKICAgICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMjsKICAgICAgICAgICAgICAgIGJpdFBvcyA9IDA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChiaXRzTGVmdCA+PSBiaXRzUGVyUGl4ZWwpIHsKICAgICAgICAgICAgICAgIC8vbm8gdW5zaWduZWQgbGVmdCBzaGlmdAogICAgICAgICAgICAgICAgbiA9ICgoYnVmZmVyID4+PiBiaXRQb3MpICYgYml0TWFzayk7CiAgICAgICAgICAgICAgICBiaXRzTGVmdCAtPSBiaXRzUGVyUGl4ZWw7CiAgICAgICAgICAgICAgICBiaXRQb3MgKz0gYml0c1BlclBpeGVsOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBtaXNzaW5nQml0cyA9IChiaXRzUGVyUGl4ZWwgLSBiaXRzTGVmdCk7CiAgICAgICAgICAgICAgICBuID0gKGJ1ZmZlciA+Pj4gYml0UG9zKSAmIGJpdE1hc2s7Ly8oKGJ1ZmZlciAmIGJpdE1hc2spIDw8IG1pc3NpbmdCaXRzKSAmIGJpdE1hc2s7CiAgICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICAgIGJpdHNMZWZ0ID0gMzIgLSBtaXNzaW5nQml0czsKICAgICAgICAgICAgICAgIG4gfD0gKGJ1ZmZlciAmICgoMSA8PCBtaXNzaW5nQml0cykgLSAxKSkgPDwgKGJpdHNQZXJQaXhlbCAtIG1pc3NpbmdCaXRzKTsKICAgICAgICAgICAgICAgIGJpdFBvcyA9IG1pc3NpbmdCaXRzOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvL3BpeGVsIHZhbHVlcyBtYXkgZXhjZWVkIG1heCBkdWUgdG8gcXVhbnRpemF0aW9uCiAgICAgICAgICAgICAgZGVzdFtvXSA9IG4gPCBubWF4ID8gb2Zmc2V0ICsgbiAqIHNjYWxlIDogbWF4VmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBkZXN0OwogICAgICAgIH0sCgogICAgICAgIHVuc3R1ZmZMVVQyOiBmdW5jdGlvbihzcmMsIGJpdHNQZXJQaXhlbCwgbnVtUGl4ZWxzLCBvZmZzZXQsIHNjYWxlLCBtYXhWYWx1ZSkgewogICAgICAgICAgdmFyIGJpdE1hc2sgPSAoMSA8PCBiaXRzUGVyUGl4ZWwpIC0gMTsKICAgICAgICAgIHZhciBpID0gMCwgbyA9IDAsIG1pc3NpbmdCaXRzID0gMCwgYml0c0xlZnQgPSAwLCBuID0gMCwgYml0UG9zID0gMDsKICAgICAgICAgIHZhciBidWZmZXI7CiAgICAgICAgICB2YXIgZGVzdCA9IFtdOwogICAgICAgICAgdmFyIG5tYXggPSBNYXRoLmNlaWwoKG1heFZhbHVlIC0gb2Zmc2V0KSAvIHNjYWxlKTsKICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBudW1QaXhlbHM7IG8rKykgewogICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyOwogICAgICAgICAgICAgIGJpdFBvcyA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID49IGJpdHNQZXJQaXhlbCkgewogICAgICAgICAgICAgIC8vbm8gdW5zaWduZWQgbGVmdCBzaGlmdAogICAgICAgICAgICAgIG4gPSAoKGJ1ZmZlciA+Pj4gYml0UG9zKSAmIGJpdE1hc2spOwogICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgICBiaXRQb3MgKz0gYml0c1BlclBpeGVsOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIG1pc3NpbmdCaXRzID0gKGJpdHNQZXJQaXhlbCAtIGJpdHNMZWZ0KTsKICAgICAgICAgICAgICBuID0gKGJ1ZmZlciA+Pj4gYml0UG9zKSAmIGJpdE1hc2s7Ly8oKGJ1ZmZlciAmIGJpdE1hc2spIDw8IG1pc3NpbmdCaXRzKSAmIGJpdE1hc2s7CiAgICAgICAgICAgICAgYnVmZmVyID0gc3JjW2krK107CiAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMiAtIG1pc3NpbmdCaXRzOwogICAgICAgICAgICAgIG4gfD0gKGJ1ZmZlciAmICgoMSA8PCBtaXNzaW5nQml0cykgLSAxKSkgPDwgKGJpdHNQZXJQaXhlbCAtIG1pc3NpbmdCaXRzKTsKICAgICAgICAgICAgICBiaXRQb3MgPSBtaXNzaW5nQml0czsKICAgICAgICAgICAgfQogICAgICAgICAgICAvL2Rlc3QucHVzaChuKTsKICAgICAgICAgICAgZGVzdFtvXSA9IG4gPCBubWF4ID8gb2Zmc2V0ICsgbiAqIHNjYWxlIDogbWF4VmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgICBkZXN0LnVuc2hpZnQob2Zmc2V0KTsKICAgICAgICAgIHJldHVybiBkZXN0OwogICAgICAgIH0sCgogICAgICAgIG9yaWdpbmFsVW5zdHVmZjogZnVuY3Rpb24oc3JjLCBkZXN0LCBiaXRzUGVyUGl4ZWwsIG51bVBpeGVscykgewogICAgICAgICAgdmFyIGJpdE1hc2sgPSAoMSA8PCBiaXRzUGVyUGl4ZWwpIC0gMTsKICAgICAgICAgIHZhciBpID0gMCwgbzsKICAgICAgICAgIHZhciBiaXRzTGVmdCA9IDA7CiAgICAgICAgICB2YXIgbiwgYnVmZmVyLCBtaXNzaW5nQml0czsKCiAgICAgICAgICAvLyBnZXQgcmlkIG9mIHRyYWlsaW5nIGJ5dGVzIHRoYXQgYXJlIGFscmVhZHkgcGFydCBvZiBuZXh0IGJsb2NrCiAgICAgICAgICB2YXIgbnVtSW52YWxpZFRhaWxCeXRlcyA9IHNyYy5sZW5ndGggKiA0IC0gTWF0aC5jZWlsKGJpdHNQZXJQaXhlbCAqIG51bVBpeGVscyAvIDgpOwogICAgICAgICAgc3JjW3NyYy5sZW5ndGggLSAxXSA8PD0gOCAqIG51bUludmFsaWRUYWlsQnl0ZXM7CgogICAgICAgICAgZm9yIChvID0gMDsgbyA8IG51bVBpeGVsczsgbysrKSB7CiAgICAgICAgICAgIGlmIChiaXRzTGVmdCA9PT0gMCkgewogICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgIGJpdHNMZWZ0ID0gMzI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID49IGJpdHNQZXJQaXhlbCkgewogICAgICAgICAgICAgIG4gPSAoYnVmZmVyID4+PiAoYml0c0xlZnQgLSBiaXRzUGVyUGl4ZWwpKSAmIGJpdE1hc2s7CiAgICAgICAgICAgICAgYml0c0xlZnQgLT0gYml0c1BlclBpeGVsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIG1pc3NpbmdCaXRzID0gKGJpdHNQZXJQaXhlbCAtIGJpdHNMZWZ0KTsKICAgICAgICAgICAgICBuID0gKChidWZmZXIgJiBiaXRNYXNrKSA8PCBtaXNzaW5nQml0cykgJiBiaXRNYXNrOwogICAgICAgICAgICAgIGJ1ZmZlciA9IHNyY1tpKytdOwogICAgICAgICAgICAgIGJpdHNMZWZ0ID0gMzIgLSBtaXNzaW5nQml0czsKICAgICAgICAgICAgICBuICs9IChidWZmZXIgPj4+IGJpdHNMZWZ0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkZXN0W29dID0gbjsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBkZXN0OwogICAgICAgIH0sCgogICAgICAgIG9yaWdpbmFsVW5zdHVmZjI6IGZ1bmN0aW9uKHNyYywgZGVzdCwgYml0c1BlclBpeGVsLCBudW1QaXhlbHMpIHsKICAgICAgICAgIHZhciBiaXRNYXNrID0gKDEgPDwgYml0c1BlclBpeGVsKSAtIDE7CiAgICAgICAgICB2YXIgaSA9IDAsIG87CiAgICAgICAgICB2YXIgYml0c0xlZnQgPSAwLCBiaXRQb3MgPSAwOwogICAgICAgICAgdmFyIG4sIGJ1ZmZlciwgbWlzc2luZ0JpdHM7CiAgICAgICAgICAvL21pY3JvLW9wdGltaXphdGlvbnMKICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBudW1QaXhlbHM7IG8rKykgewogICAgICAgICAgICBpZiAoYml0c0xlZnQgPT09IDApIHsKICAgICAgICAgICAgICBidWZmZXIgPSBzcmNbaSsrXTsKICAgICAgICAgICAgICBiaXRzTGVmdCA9IDMyOwogICAgICAgICAgICAgIGJpdFBvcyA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGJpdHNMZWZ0ID49IGJpdHNQZXJQaXhlbCkgewogICAgICAgICAgICAgIC8vbm8gdW5zaWduZWQgbGVmdCBzaGlmdAogICAgICAgICAgICAgIG4gPSAoKGJ1ZmZlciA+Pj4gYml0UG9zKSAmIGJpdE1hc2spOwogICAgICAgICAgICAgIGJpdHNMZWZ0IC09IGJpdHNQZXJQaXhlbDsKICAgICAgICAgICAgICBiaXRQb3MgKz0gYml0c1BlclBpeGVsOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIG1pc3NpbmdCaXRzID0gKGJpdHNQZXJQaXhlbCAtIGJpdHNMZWZ0KTsKICAgICAgICAgICAgICBuID0gKGJ1ZmZlciA+Pj4gYml0UG9zKSAmIGJpdE1hc2s7Ly8oKGJ1ZmZlciAmIGJpdE1hc2spIDw8IG1pc3NpbmdCaXRzKSAmIGJpdE1hc2s7CiAgICAgICAgICAgICAgYnVmZmVyID0gc3JjW2krK107CiAgICAgICAgICAgICAgYml0c0xlZnQgPSAzMiAtIG1pc3NpbmdCaXRzOwogICAgICAgICAgICAgIG4gfD0gKGJ1ZmZlciAmICgoMSA8PCBtaXNzaW5nQml0cykgLSAxKSkgPDwgKGJpdHNQZXJQaXhlbCAtIG1pc3NpbmdCaXRzKTsKICAgICAgICAgICAgICBiaXRQb3MgPSBtaXNzaW5nQml0czsKICAgICAgICAgICAgfQogICAgICAgICAgICBkZXN0W29dID0gbjsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBkZXN0OwogICAgICAgIH0KICAgICAgfTsKCiAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAqcHJpdmF0ZSBzdGF0aWMgY2xhc3MgdXNlZCBieSBMZXJjMkRlY29kZQogICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAgIHZhciBMZXJjMkhlbHBlcnMgPSB7CiAgICAgICAgSFVGRk1BTl9MVVRfQklUU19NQVg6IDEyLCAvL3VzZSAyXjEyIGx1dCwgdHJlYXQgaXQgbGlrZSBjb25zdGFudAogICAgICAgIGNvbXB1dGVDaGVja3N1bUZsZXRjaGVyMzI6IGZ1bmN0aW9uKGlucHV0KSB7CgogICAgICAgICAgdmFyIHN1bTEgPSAweGZmZmYsIHN1bTIgPSAweGZmZmY7CiAgICAgICAgICB2YXIgbGVuID0gaW5wdXQubGVuZ3RoOwogICAgICAgICAgdmFyIHdvcmRzID0gTWF0aC5mbG9vcihsZW4gLyAyKTsKICAgICAgICAgIHZhciBpID0gMDsKICAgICAgICAgIHdoaWxlICh3b3JkcykgewogICAgICAgICAgICB2YXIgdGxlbiA9ICh3b3JkcyA+PSAzNTkpID8gMzU5IDogd29yZHM7CiAgICAgICAgICAgIHdvcmRzIC09IHRsZW47CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICBzdW0xICs9IChpbnB1dFtpKytdIDw8IDgpOwogICAgICAgICAgICAgIHN1bTIgKz0gc3VtMSArPSBpbnB1dFtpKytdOwogICAgICAgICAgICB9IHdoaWxlICgtLXRsZW4pOwoKICAgICAgICAgICAgc3VtMSA9IChzdW0xICYgMHhmZmZmKSArIChzdW0xID4+PiAxNik7CiAgICAgICAgICAgIHN1bTIgPSAoc3VtMiAmIDB4ZmZmZikgKyAoc3VtMiA+Pj4gMTYpOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIGFkZCB0aGUgc3RyYWdnbGVyIGJ5dGUgaWYgaXQgZXhpc3RzCiAgICAgICAgICBpZiAobGVuICYgMSkgewogICAgICAgICAgICBzdW0yICs9IHN1bTEgKz0gKGlucHV0W2ldIDw8IDgpOwogICAgICAgICAgfQogICAgICAgICAgLy8gc2Vjb25kIHJlZHVjdGlvbiBzdGVwIHRvIHJlZHVjZSBzdW1zIHRvIDE2IGJpdHMKICAgICAgICAgIHN1bTEgPSAoc3VtMSAmIDB4ZmZmZikgKyAoc3VtMSA+Pj4gMTYpOwogICAgICAgICAgc3VtMiA9IChzdW0yICYgMHhmZmZmKSArIChzdW0yID4+PiAxNik7CgogICAgICAgICAgcmV0dXJuIChzdW0yIDw8IDE2IHwgc3VtMSkgPj4+IDA7CiAgICAgICAgfSwKCiAgICAgICAgcmVhZEhlYWRlckluZm86IGZ1bmN0aW9uKGlucHV0LCBkYXRhKSB7CiAgICAgICAgICB2YXIgcHRyID0gZGF0YS5wdHI7CiAgICAgICAgICB2YXIgZmlsZUlkVmlldyA9IG5ldyBVaW50OEFycmF5KGlucHV0LCBwdHIsIDYpOwogICAgICAgICAgdmFyIGhlYWRlckluZm8gPSB7fTsKICAgICAgICAgIGhlYWRlckluZm8uZmlsZUlkZW50aWZpZXJTdHJpbmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGZpbGVJZFZpZXcpOwogICAgICAgICAgaWYgKGhlYWRlckluZm8uZmlsZUlkZW50aWZpZXJTdHJpbmcubGFzdEluZGV4T2YoIkxlcmMyIiwgMCkgIT09IDApIHsKICAgICAgICAgICAgdGhyb3cgIlVuZXhwZWN0ZWQgZmlsZSBpZGVudGlmaWVyIHN0cmluZyAoZXhwZWN0IExlcmMyICk6ICIgKyBoZWFkZXJJbmZvLmZpbGVJZGVudGlmaWVyU3RyaW5nOwogICAgICAgICAgfQogICAgICAgICAgcHRyICs9IDY7CiAgICAgICAgICB2YXIgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgcHRyLCA4KTsKICAgICAgICAgIHZhciBmaWxlVmVyc2lvbiA9IHZpZXcuZ2V0SW50MzIoMCwgdHJ1ZSk7CiAgICAgICAgICBoZWFkZXJJbmZvLmZpbGVWZXJzaW9uID0gZmlsZVZlcnNpb247CiAgICAgICAgICBwdHIgKz0gNDsKICAgICAgICAgIGlmIChmaWxlVmVyc2lvbiA+PSAzKSB7CiAgICAgICAgICAgIGhlYWRlckluZm8uY2hlY2tzdW0gPSB2aWV3LmdldFVpbnQzMig0LCB0cnVlKTsgLy9ucm93cwogICAgICAgICAgICBwdHIgKz0gNDsKICAgICAgICAgIH0KCiAgICAgICAgICAvL2tleXMgc3RhcnQgZnJvbSBoZXJlCiAgICAgICAgICB2aWV3ID0gbmV3IERhdGFWaWV3KGlucHV0LCBwdHIsIDEyKTsKICAgICAgICAgIGhlYWRlckluZm8uaGVpZ2h0ID0gdmlldy5nZXRVaW50MzIoMCwgdHJ1ZSk7IC8vbnJvd3MKICAgICAgICAgIGhlYWRlckluZm8ud2lkdGggPSB2aWV3LmdldFVpbnQzMig0LCB0cnVlKTsgLy9uY29scwogICAgICAgICAgcHRyICs9IDg7CiAgICAgICAgICBpZiAoZmlsZVZlcnNpb24gPj0gNCkgewogICAgICAgICAgICBoZWFkZXJJbmZvLm51bURpbXMgPSB2aWV3LmdldFVpbnQzMig4LCB0cnVlKTsKICAgICAgICAgICAgcHRyICs9IDQ7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaGVhZGVySW5mby5udW1EaW1zID0gMTsKICAgICAgICAgIH0KCiAgICAgICAgICB2aWV3ID0gbmV3IERhdGFWaWV3KGlucHV0LCBwdHIsIDQwKTsKICAgICAgICAgIGhlYWRlckluZm8ubnVtVmFsaWRQaXhlbCA9IHZpZXcuZ2V0VWludDMyKDAsIHRydWUpOwogICAgICAgICAgaGVhZGVySW5mby5taWNyb0Jsb2NrU2l6ZSA9IHZpZXcuZ2V0SW50MzIoNCwgdHJ1ZSk7CiAgICAgICAgICBoZWFkZXJJbmZvLmJsb2JTaXplID0gdmlldy5nZXRJbnQzMig4LCB0cnVlKTsKICAgICAgICAgIGhlYWRlckluZm8uaW1hZ2VUeXBlID0gdmlldy5nZXRJbnQzMigxMiwgdHJ1ZSk7CgogICAgICAgICAgaGVhZGVySW5mby5tYXhaRXJyb3IgPSB2aWV3LmdldEZsb2F0NjQoMTYsIHRydWUpOwogICAgICAgICAgaGVhZGVySW5mby56TWluID0gdmlldy5nZXRGbG9hdDY0KDI0LCB0cnVlKTsKICAgICAgICAgIGhlYWRlckluZm8uek1heCA9IHZpZXcuZ2V0RmxvYXQ2NCgzMiwgdHJ1ZSk7CiAgICAgICAgICBwdHIgKz0gNDA7CiAgICAgICAgICBkYXRhLmhlYWRlckluZm8gPSBoZWFkZXJJbmZvOwogICAgICAgICAgZGF0YS5wdHIgPSBwdHI7CgogICAgICAgICAgdmFyIGNoZWNrc3VtLCBrZXlMZW5ndGg7CiAgICAgICAgICBpZiAoZmlsZVZlcnNpb24gPj0gMykgewogICAgICAgICAgICBrZXlMZW5ndGggPSBmaWxlVmVyc2lvbiA+PSA0ID8gNTIgOiA0ODsKICAgICAgICAgICAgY2hlY2tzdW0gPSB0aGlzLmNvbXB1dGVDaGVja3N1bUZsZXRjaGVyMzIobmV3IFVpbnQ4QXJyYXkoaW5wdXQsIHB0ciAtIGtleUxlbmd0aCwgaGVhZGVySW5mby5ibG9iU2l6ZSAtIDE0KSk7CiAgICAgICAgICAgIGlmIChjaGVja3N1bSAhPT0gaGVhZGVySW5mby5jaGVja3N1bSkgewogICAgICAgICAgICAgIHRocm93ICJDaGVja3N1bSBmYWlsZWQuIjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSwKCiAgICAgICAgY2hlY2tNaW5NYXhSYW5nZXM6IGZ1bmN0aW9uKGlucHV0LCBkYXRhKSB7CiAgICAgICAgICB2YXIgaGVhZGVySW5mbyA9IGRhdGEuaGVhZGVySW5mbzsKICAgICAgICAgIHZhciBPdXRQaXhlbFR5cGVBcnJheSA9IHRoaXMuZ2V0RGF0YVR5cGVBcnJheShoZWFkZXJJbmZvLmltYWdlVHlwZSk7CiAgICAgICAgICB2YXIgcmFuZ2VCeXRlcyA9IGhlYWRlckluZm8ubnVtRGltcyAqIHRoaXMuZ2V0RGF0YVR5cGVTaXplKGhlYWRlckluZm8uaW1hZ2VUeXBlKTsKICAgICAgICAgIHZhciBtaW5WYWx1ZXMgPSB0aGlzLnJlYWRTdWJBcnJheShpbnB1dCwgZGF0YS5wdHIsIE91dFBpeGVsVHlwZUFycmF5LCByYW5nZUJ5dGVzKTsKICAgICAgICAgIHZhciBtYXhWYWx1ZXMgPSB0aGlzLnJlYWRTdWJBcnJheShpbnB1dCwgZGF0YS5wdHIgKyByYW5nZUJ5dGVzLCBPdXRQaXhlbFR5cGVBcnJheSwgcmFuZ2VCeXRlcyk7CiAgICAgICAgICBkYXRhLnB0ciArPSAoMiAqIHJhbmdlQnl0ZXMpOwogICAgICAgICAgdmFyIGksIGVxdWFsID0gdHJ1ZTsKICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBoZWFkZXJJbmZvLm51bURpbXM7IGkrKykgewogICAgICAgICAgICBpZiAobWluVmFsdWVzW2ldICE9PSBtYXhWYWx1ZXNbaV0pIHsKICAgICAgICAgICAgICBlcXVhbCA9IGZhbHNlOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBoZWFkZXJJbmZvLm1pblZhbHVlcyA9IG1pblZhbHVlczsKICAgICAgICAgIGhlYWRlckluZm8ubWF4VmFsdWVzID0gbWF4VmFsdWVzOwogICAgICAgICAgcmV0dXJuIGVxdWFsOwogICAgICAgIH0sCgogICAgICAgIHJlYWRTdWJBcnJheTogZnVuY3Rpb24oaW5wdXQsIHB0ciwgT3V0UGl4ZWxUeXBlQXJyYXksIG51bUJ5dGVzKSB7CiAgICAgICAgICB2YXIgcmF3RGF0YTsKICAgICAgICAgIGlmIChPdXRQaXhlbFR5cGVBcnJheSA9PT0gVWludDhBcnJheSkgewogICAgICAgICAgICByYXdEYXRhID0gbmV3IFVpbnQ4QXJyYXkoaW5wdXQsIHB0ciwgbnVtQnl0ZXMpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHZhciBhcnJheUJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcihudW1CeXRlcyk7CiAgICAgICAgICAgIHZhciBzdG9yZTggPSBuZXcgVWludDhBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgIHN0b3JlOC5zZXQobmV3IFVpbnQ4QXJyYXkoaW5wdXQsIHB0ciwgbnVtQnl0ZXMpKTsKICAgICAgICAgICAgcmF3RGF0YSA9IG5ldyBPdXRQaXhlbFR5cGVBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gcmF3RGF0YTsKICAgICAgICB9LAoKICAgICAgICByZWFkTWFzazogZnVuY3Rpb24oaW5wdXQsIGRhdGEpIHsKICAgICAgICAgIHZhciBwdHIgPSBkYXRhLnB0cjsKICAgICAgICAgIHZhciBoZWFkZXJJbmZvID0gZGF0YS5oZWFkZXJJbmZvOwogICAgICAgICAgdmFyIG51bVBpeGVscyA9IGhlYWRlckluZm8ud2lkdGggKiBoZWFkZXJJbmZvLmhlaWdodDsKICAgICAgICAgIHZhciBudW1WYWxpZFBpeGVsID0gaGVhZGVySW5mby5udW1WYWxpZFBpeGVsOwoKICAgICAgICAgIHZhciB2aWV3ID0gbmV3IERhdGFWaWV3KGlucHV0LCBwdHIsIDQpOwogICAgICAgICAgdmFyIG1hc2sgPSB7fTsKICAgICAgICAgIG1hc2subnVtQnl0ZXMgPSB2aWV3LmdldFVpbnQzMigwLCB0cnVlKTsKICAgICAgICAgIHB0ciArPSA0OwoKICAgICAgICAgIC8vIE1hc2sgRGF0YQogICAgICAgICAgaWYgKCgwID09PSBudW1WYWxpZFBpeGVsIHx8IG51bVBpeGVscyA9PT0gbnVtVmFsaWRQaXhlbCkgJiYgMCAhPT0gbWFzay5udW1CeXRlcykgewogICAgICAgICAgICB0aHJvdyAoImludmFsaWQgbWFzayIpOwogICAgICAgICAgfQogICAgICAgICAgdmFyIGJpdHNldCwgcmVzdWx0TWFzazsKICAgICAgICAgIGlmIChudW1WYWxpZFBpeGVsID09PSAwKSB7CiAgICAgICAgICAgIGJpdHNldCA9IG5ldyBVaW50OEFycmF5KE1hdGguY2VpbChudW1QaXhlbHMgLyA4KSk7CiAgICAgICAgICAgIG1hc2suYml0c2V0ID0gYml0c2V0OwogICAgICAgICAgICByZXN1bHRNYXNrID0gbmV3IFVpbnQ4QXJyYXkobnVtUGl4ZWxzKTsKICAgICAgICAgICAgZGF0YS5waXhlbHMucmVzdWx0TWFzayA9IHJlc3VsdE1hc2s7CiAgICAgICAgICAgIHB0ciArPSBtYXNrLm51bUJ5dGVzOwogICAgICAgICAgfS8vID8/Pz8/IGVsc2UgaWYgKGRhdGEubWFzay5udW1CeXRlcyA+IDAgJiYgZGF0YS5tYXNrLm51bUJ5dGVzPCBkYXRhLm51bVZhbGlkUGl4ZWwpIHsKICAgICAgICAgIGVsc2UgaWYgKG1hc2subnVtQnl0ZXMgPiAwKSB7CiAgICAgICAgICAgIGJpdHNldCA9IG5ldyBVaW50OEFycmF5KE1hdGguY2VpbChudW1QaXhlbHMgLyA4KSk7CiAgICAgICAgICAgIHZpZXcgPSBuZXcgRGF0YVZpZXcoaW5wdXQsIHB0ciwgbWFzay5udW1CeXRlcyk7CiAgICAgICAgICAgIHZhciBjbnQgPSB2aWV3LmdldEludDE2KDAsIHRydWUpOwogICAgICAgICAgICB2YXIgaXAgPSAyLCBvcCA9IDAsIHZhbCA9IDA7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICBpZiAoY250ID4gMCkgewogICAgICAgICAgICAgICAgd2hpbGUgKGNudC0tKSB7IGJpdHNldFtvcCsrXSA9IHZpZXcuZ2V0VWludDgoaXArKyk7IH0KICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFsID0gdmlldy5nZXRVaW50OChpcCsrKTsKICAgICAgICAgICAgICAgIGNudCA9IC1jbnQ7CiAgICAgICAgICAgICAgICB3aGlsZSAoY250LS0pIHsgYml0c2V0W29wKytdID0gdmFsOyB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNudCA9IHZpZXcuZ2V0SW50MTYoaXAsIHRydWUpOwogICAgICAgICAgICAgIGlwICs9IDI7CiAgICAgICAgICAgIH0gd2hpbGUgKGlwIDwgbWFzay5udW1CeXRlcyk7CiAgICAgICAgICAgIGlmICgoY250ICE9PSAtMzI3NjgpIHx8IChvcCA8IGJpdHNldC5sZW5ndGgpKSB7CiAgICAgICAgICAgICAgdGhyb3cgIlVuZXhwZWN0ZWQgZW5kIG9mIG1hc2sgUkxFIGVuY29kaW5nIjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmVzdWx0TWFzayA9IG5ldyBVaW50OEFycmF5KG51bVBpeGVscyk7CiAgICAgICAgICAgIHZhciBtYiA9IDAsIGsgPSAwOwoKICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IG51bVBpeGVsczsgaysrKSB7CiAgICAgICAgICAgICAgaWYgKGsgJiA3KSB7CiAgICAgICAgICAgICAgICBtYiA9IGJpdHNldFtrID4+IDNdOwogICAgICAgICAgICAgICAgbWIgPDw9IGsgJiA3OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIG1iID0gYml0c2V0W2sgPj4gM107CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChtYiAmIDEyOCkgewogICAgICAgICAgICAgICAgcmVzdWx0TWFza1trXSA9IDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGEucGl4ZWxzLnJlc3VsdE1hc2sgPSByZXN1bHRNYXNrOwoKICAgICAgICAgICAgbWFzay5iaXRzZXQgPSBiaXRzZXQ7CiAgICAgICAgICAgIHB0ciArPSBtYXNrLm51bUJ5dGVzOwogICAgICAgICAgfQogICAgICAgICAgZGF0YS5wdHIgPSBwdHI7CiAgICAgICAgICBkYXRhLm1hc2sgPSBtYXNrOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSwKCiAgICAgICAgcmVhZERhdGFPbmVTd2VlcDogZnVuY3Rpb24oaW5wdXQsIGRhdGEsIE91dFBpeGVsVHlwZUFycmF5KSB7CiAgICAgICAgICB2YXIgcHRyID0gZGF0YS5wdHI7CiAgICAgICAgICB2YXIgaGVhZGVySW5mbyA9IGRhdGEuaGVhZGVySW5mbzsKICAgICAgICAgIHZhciBudW1EaW1zID0gaGVhZGVySW5mby5udW1EaW1zOwogICAgICAgICAgdmFyIG51bVBpeGVscyA9IGhlYWRlckluZm8ud2lkdGggKiBoZWFkZXJJbmZvLmhlaWdodDsKICAgICAgICAgIHZhciBpbWFnZVR5cGUgPSBoZWFkZXJJbmZvLmltYWdlVHlwZTsKICAgICAgICAgIHZhciBudW1CeXRlcyA9IGhlYWRlckluZm8ubnVtVmFsaWRQaXhlbCAqIExlcmMySGVscGVycy5nZXREYXRhVHlwZVNpemUoaW1hZ2VUeXBlKSAqIG51bURpbXM7CiAgICAgICAgICAvL2RhdGEucGl4ZWxzLm51bUJ5dGVzID0gbnVtQnl0ZXM7CiAgICAgICAgICB2YXIgcmF3RGF0YTsKICAgICAgICAgIHZhciBtYXNrID0gZGF0YS5waXhlbHMucmVzdWx0TWFzazsKICAgICAgICAgIGlmIChPdXRQaXhlbFR5cGVBcnJheSA9PT0gVWludDhBcnJheSkgewogICAgICAgICAgICByYXdEYXRhID0gbmV3IFVpbnQ4QXJyYXkoaW5wdXQsIHB0ciwgbnVtQnl0ZXMpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHZhciBhcnJheUJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcihudW1CeXRlcyk7CiAgICAgICAgICAgIHZhciBzdG9yZTggPSBuZXcgVWludDhBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgIHN0b3JlOC5zZXQobmV3IFVpbnQ4QXJyYXkoaW5wdXQsIHB0ciwgbnVtQnl0ZXMpKTsKICAgICAgICAgICAgcmF3RGF0YSA9IG5ldyBPdXRQaXhlbFR5cGVBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocmF3RGF0YS5sZW5ndGggPT09IG51bVBpeGVscyAqIG51bURpbXMpIHsKICAgICAgICAgICAgZGF0YS5waXhlbHMucmVzdWx0UGl4ZWxzID0gcmF3RGF0YTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgIC8vbWFzawogICAgICAgICAgewogICAgICAgICAgICBkYXRhLnBpeGVscy5yZXN1bHRQaXhlbHMgPSBuZXcgT3V0UGl4ZWxUeXBlQXJyYXkobnVtUGl4ZWxzICogbnVtRGltcyk7CiAgICAgICAgICAgIHZhciB6ID0gMCwgayA9IDAsIGkgPSAwLCBuU3RhcnQgPSAwOwogICAgICAgICAgICBpZiAobnVtRGltcyA+IDEpIHsKICAgICAgICAgICAgICBmb3IgKGk9MDsgaSA8IG51bURpbXM7IGkrKykgewogICAgICAgICAgICAgICAgblN0YXJ0ID0gaSAqIG51bVBpeGVsczsKICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBudW1QaXhlbHM7IGsrKykgewogICAgICAgICAgICAgICAgICBpZiAobWFza1trXSkgewogICAgICAgICAgICAgICAgICAgIGRhdGEucGl4ZWxzLnJlc3VsdFBpeGVsc1tuU3RhcnQgKyBrXSA9IHJhd0RhdGFbeisrXTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgbnVtUGl4ZWxzOyBrKyspIHsKICAgICAgICAgICAgICAgIGlmIChtYXNrW2tdKSB7CiAgICAgICAgICAgICAgICAgIGRhdGEucGl4ZWxzLnJlc3VsdFBpeGVsc1trXSA9IHJhd0RhdGFbeisrXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHB0ciArPSBudW1CeXRlczsKICAgICAgICAgIGRhdGEucHRyID0gcHRyOyAgICAgICAvL3JldHVybiBkYXRhOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSwKCiAgICAgICAgcmVhZEh1ZmZtYW5UcmVlOiBmdW5jdGlvbihpbnB1dCwgZGF0YSkgewogICAgICAgICAgdmFyIEJJVFNfTUFYID0gdGhpcy5IVUZGTUFOX0xVVF9CSVRTX01BWDsgLy84IGlzIHNsb3cgZm9yIHRoZSBsYXJnZSB0ZXN0IGltYWdlCiAgICAgICAgICAvL3ZhciBzaXplX21heCA9IDEgPDwgQklUU19NQVg7CiAgICAgICAgICAvKiAqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICAgICAqIHJlYWRpbmcgY29kZSB0YWJsZQogICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAgICAgICB2YXIgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZGF0YS5wdHIsIDE2KTsKICAgICAgICAgIGRhdGEucHRyICs9IDE2OwogICAgICAgICAgdmFyIHZlcnNpb24gPSB2aWV3LmdldEludDMyKDAsIHRydWUpOwogICAgICAgICAgaWYgKHZlcnNpb24gPCAyKSB7CiAgICAgICAgICAgIHRocm93ICJ1bnN1cHBvcnRlZCBIdWZmbWFuIHZlcnNpb24iOwogICAgICAgICAgfQogICAgICAgICAgdmFyIHNpemUgPSB2aWV3LmdldEludDMyKDQsIHRydWUpOwogICAgICAgICAgdmFyIGkwID0gdmlldy5nZXRJbnQzMig4LCB0cnVlKTsKICAgICAgICAgIHZhciBpMSA9IHZpZXcuZ2V0SW50MzIoMTIsIHRydWUpOwogICAgICAgICAgaWYgKGkwID49IGkxKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBibG9ja0RhdGFCdWZmZXIgPSBuZXcgVWludDMyQXJyYXkoaTEgLSBpMCk7CiAgICAgICAgICBMZXJjMkhlbHBlcnMuZGVjb2RlQml0cyhpbnB1dCwgZGF0YSwgYmxvY2tEYXRhQnVmZmVyKTsKICAgICAgICAgIHZhciBjb2RlVGFibGUgPSBbXTsgLy9zaXplCiAgICAgICAgICB2YXIgaSwgaiwgaywgbGVuOwoKICAgICAgICAgIGZvciAoaSA9IGkwOyBpIDwgaTE7IGkrKykgewogICAgICAgICAgICBqID0gaSAtIChpIDwgc2l6ZSA/IDAgOiBzaXplKTsvL3dyYXAgYXJvdW5kCiAgICAgICAgICAgIGNvZGVUYWJsZVtqXSA9IHsgZmlyc3Q6IGJsb2NrRGF0YUJ1ZmZlcltpIC0gaTBdLCBzZWNvbmQ6IG51bGwgfTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgZGF0YUJ5dGVzID0gaW5wdXQuYnl0ZUxlbmd0aCAtIGRhdGEucHRyOwogICAgICAgICAgdmFyIGRhdGFXb3JkcyA9IE1hdGguY2VpbChkYXRhQnl0ZXMgLyA0KTsKICAgICAgICAgIHZhciBhcnJheUJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcihkYXRhV29yZHMgKiA0KTsKICAgICAgICAgIHZhciBzdG9yZTggPSBuZXcgVWludDhBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICBzdG9yZTguc2V0KG5ldyBVaW50OEFycmF5KGlucHV0LCBkYXRhLnB0ciwgZGF0YUJ5dGVzKSk7CiAgICAgICAgICB2YXIgc3R1ZmZlZERhdGEgPSBuZXcgVWludDMyQXJyYXkoYXJyYXlCdWYpOyAvL211c3Qgc3RhcnQgZnJvbSB4KjQKICAgICAgICAgIHZhciBiaXRQb3MgPSAwLCB3b3JkLCBzcmNQdHIgPSAwOwogICAgICAgICAgd29yZCA9IHN0dWZmZWREYXRhWzBdOwogICAgICAgICAgZm9yIChpID0gaTA7IGkgPCBpMTsgaSsrKSB7CiAgICAgICAgICAgIGogPSBpIC0gKGkgPCBzaXplID8gMCA6IHNpemUpOy8vd3JhcCBhcm91bmQKICAgICAgICAgICAgbGVuID0gY29kZVRhYmxlW2pdLmZpcnN0OwogICAgICAgICAgICBpZiAobGVuID4gMCkgewogICAgICAgICAgICAgIGNvZGVUYWJsZVtqXS5zZWNvbmQgPSAod29yZCA8PCBiaXRQb3MpID4+PiAoMzIgLSBsZW4pOwoKICAgICAgICAgICAgICBpZiAoMzIgLSBiaXRQb3MgPj0gbGVuKSB7CiAgICAgICAgICAgICAgICBiaXRQb3MgKz0gbGVuOwogICAgICAgICAgICAgICAgaWYgKGJpdFBvcyA9PT0gMzIpIHsKICAgICAgICAgICAgICAgICAgYml0UG9zID0gMDsKICAgICAgICAgICAgICAgICAgc3JjUHRyKys7CiAgICAgICAgICAgICAgICAgIHdvcmQgPSBzdHVmZmVkRGF0YVtzcmNQdHJdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGJpdFBvcyArPSBsZW4gLSAzMjsKICAgICAgICAgICAgICAgIHNyY1B0cisrOwogICAgICAgICAgICAgICAgd29yZCA9IHN0dWZmZWREYXRhW3NyY1B0cl07CiAgICAgICAgICAgICAgICBjb2RlVGFibGVbal0uc2Vjb25kIHw9IHdvcmQgPj4+ICgzMiAtIGJpdFBvcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CgogICAgICAgICAgLy9maW5pc2hlZCByZWFkaW5nIGNvZGUgdGFibGUKCiAgICAgICAgICAvKiAqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICAgICAqIGJ1aWxkaW5nIGx1dAogICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAgICAgICB2YXIgbnVtQml0c0xVVCA9IDAsIG51bUJpdHNMVVRRaWNrID0gMDsKICAgICAgICAgIHZhciB0cmVlID0gbmV3IFRyZWVOb2RlKCk7CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY29kZVRhYmxlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChjb2RlVGFibGVbaV0gIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgIG51bUJpdHNMVVQgPSBNYXRoLm1heChudW1CaXRzTFVULCBjb2RlVGFibGVbaV0uZmlyc3QpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobnVtQml0c0xVVCA+PSBCSVRTX01BWCkgewogICAgICAgICAgICBudW1CaXRzTFVUUWljayA9IEJJVFNfTUFYOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG51bUJpdHNMVVRRaWNrID0gbnVtQml0c0xVVDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChudW1CaXRzTFVUID49IDMwKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJXQVJuaW5nLCBsYXJnZSBOVU0gTFVUIEJJVFMgSVMgIiArIG51bUJpdHNMVVQpOwogICAgICAgICAgfQogICAgICAgICAgdmFyIGRlY29kZUx1dCA9IFtdLCBlbnRyeSwgY29kZSwgbnVtRW50cmllcywgamosIGN1cnJlbnRCaXQsIG5vZGU7CiAgICAgICAgICBmb3IgKGkgPSBpMDsgaSA8IGkxOyBpKyspIHsKICAgICAgICAgICAgaiA9IGkgLSAoaSA8IHNpemUgPyAwIDogc2l6ZSk7Ly93cmFwIGFyb3VuZAogICAgICAgICAgICBsZW4gPSBjb2RlVGFibGVbal0uZmlyc3Q7CiAgICAgICAgICAgIGlmIChsZW4gPiAwKSB7CiAgICAgICAgICAgICAgZW50cnkgPSBbbGVuLCBqXTsKICAgICAgICAgICAgICBpZiAobGVuIDw9IG51bUJpdHNMVVRRaWNrKSB7CiAgICAgICAgICAgICAgICBjb2RlID0gY29kZVRhYmxlW2pdLnNlY29uZCA8PCAobnVtQml0c0xVVFFpY2sgLSBsZW4pOwogICAgICAgICAgICAgICAgbnVtRW50cmllcyA9IDEgPDwgKG51bUJpdHNMVVRRaWNrIC0gbGVuKTsKICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBudW1FbnRyaWVzOyBrKyspIHsKICAgICAgICAgICAgICAgICAgZGVjb2RlTHV0W2NvZGUgfCBrXSA9IGVudHJ5OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vYnVpbGQgdHJlZQogICAgICAgICAgICAgICAgY29kZSA9IGNvZGVUYWJsZVtqXS5zZWNvbmQ7CiAgICAgICAgICAgICAgICBub2RlID0gdHJlZTsKICAgICAgICAgICAgICAgIGZvciAoamogPSBsZW4gLSAxOyBqaiA+PSAwOyBqai0tKSB7CiAgICAgICAgICAgICAgICAgIGN1cnJlbnRCaXQgPSBjb2RlID4+PiBqaiAmIDE7IC8vbm8gbGVmdCBzaGlmdCBhcyBsZW5ndGggY291bGQgYmUgMzAsMzEKICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRCaXQpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIW5vZGUucmlnaHQpIHsKICAgICAgICAgICAgICAgICAgICAgIG5vZGUucmlnaHQgPSBuZXcgVHJlZU5vZGUoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUucmlnaHQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFub2RlLmxlZnQpIHsKICAgICAgICAgICAgICAgICAgICAgIG5vZGUubGVmdCA9IG5ldyBUcmVlTm9kZSgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5sZWZ0OwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmIChqaiA9PT0gMCAmJiAhbm9kZS52YWwpIHsKICAgICAgICAgICAgICAgICAgICBub2RlLnZhbCA9IGVudHJ5WzFdOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICBkZWNvZGVMdXQ6IGRlY29kZUx1dCwKICAgICAgICAgICAgbnVtQml0c0xVVFFpY2s6IG51bUJpdHNMVVRRaWNrLAogICAgICAgICAgICBudW1CaXRzTFVUOiBudW1CaXRzTFVULAogICAgICAgICAgICB0cmVlOiB0cmVlLAogICAgICAgICAgICBzdHVmZmVkRGF0YTogc3R1ZmZlZERhdGEsCiAgICAgICAgICAgIHNyY1B0cjogc3JjUHRyLAogICAgICAgICAgICBiaXRQb3M6IGJpdFBvcwogICAgICAgICAgfTsKICAgICAgICB9LAoKICAgICAgICByZWFkSHVmZm1hbjogZnVuY3Rpb24oaW5wdXQsIGRhdGEsIE91dFBpeGVsVHlwZUFycmF5KSB7CiAgICAgICAgICB2YXIgaGVhZGVySW5mbyA9IGRhdGEuaGVhZGVySW5mbzsKICAgICAgICAgIHZhciBudW1EaW1zID0gaGVhZGVySW5mby5udW1EaW1zOwogICAgICAgICAgdmFyIGhlaWdodCA9IGRhdGEuaGVhZGVySW5mby5oZWlnaHQ7CiAgICAgICAgICB2YXIgd2lkdGggPSBkYXRhLmhlYWRlckluZm8ud2lkdGg7CiAgICAgICAgICB2YXIgbnVtUGl4ZWxzID0gd2lkdGggKiBoZWlnaHQ7CiAgICAgICAgICAvL3ZhciBzaXplX21heCA9IDEgPDwgQklUU19NQVg7CiAgICAgICAgICAvKiAqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICAgICAqIHJlYWRpbmcgaHVmZm1hbiBzdHJ1Y3R1cmUgaW5mbwogICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAgICAgICB2YXIgaHVmZm1hbkluZm8gPSB0aGlzLnJlYWRIdWZmbWFuVHJlZShpbnB1dCwgZGF0YSk7CiAgICAgICAgICB2YXIgZGVjb2RlTHV0ID0gaHVmZm1hbkluZm8uZGVjb2RlTHV0OwogICAgICAgICAgdmFyIHRyZWUgPSBodWZmbWFuSW5mby50cmVlOwogICAgICAgICAgLy9zdHVmZmVkRGF0YSBpbmNsdWRlcyBodWZmbWFuIGhlYWRlcnMKICAgICAgICAgIHZhciBzdHVmZmVkRGF0YSA9IGh1ZmZtYW5JbmZvLnN0dWZmZWREYXRhOwogICAgICAgICAgdmFyIHNyY1B0ciA9IGh1ZmZtYW5JbmZvLnNyY1B0cjsKICAgICAgICAgIHZhciBiaXRQb3MgPSBodWZmbWFuSW5mby5iaXRQb3M7CiAgICAgICAgICB2YXIgbnVtQml0c0xVVFFpY2sgPSBodWZmbWFuSW5mby5udW1CaXRzTFVUUWljazsKICAgICAgICAgIHZhciBudW1CaXRzTFVUID0gaHVmZm1hbkluZm8ubnVtQml0c0xVVDsKICAgICAgICAgIHZhciBvZmZzZXQgPSBkYXRhLmhlYWRlckluZm8uaW1hZ2VUeXBlID09PSAwID8gMTI4IDogMDsKICAgICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgICAqICBkZWNvZGUKICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAgICAgICAgIHZhciBub2RlLCB2YWwsIGRlbHRhLCBtYXNrID0gZGF0YS5waXhlbHMucmVzdWx0TWFzaywgdmFsVG1wLCB2YWxUbXBRdWljaywgY3VycmVudEJpdDsKICAgICAgICAgIHZhciBpLCBqLCBrLCBpaTsKICAgICAgICAgIHZhciBwcmV2VmFsID0gMDsKICAgICAgICAgIGlmIChiaXRQb3MgPiAwKSB7CiAgICAgICAgICAgIHNyY1B0cisrOwogICAgICAgICAgICBiaXRQb3MgPSAwOwogICAgICAgICAgfQogICAgICAgICAgdmFyIHdvcmQgPSBzdHVmZmVkRGF0YVtzcmNQdHJdOwogICAgICAgICAgdmFyIGRlbHRhRW5jb2RlID0gZGF0YS5lbmNvZGVNb2RlID09PSAxOwogICAgICAgICAgdmFyIHJlc3VsdFBpeGVsc0FsbERpbSA9IG5ldyBPdXRQaXhlbFR5cGVBcnJheShudW1QaXhlbHMgKiBudW1EaW1zKTsKICAgICAgICAgIHZhciByZXN1bHRQaXhlbHMgPSByZXN1bHRQaXhlbHNBbGxEaW07CiAgICAgICAgICB2YXIgaURpbTsKICAgICAgICAgIGZvciAoaURpbSA9IDA7IGlEaW0gPCBoZWFkZXJJbmZvLm51bURpbXM7IGlEaW0rKykgewogICAgICAgICAgICBpZiAobnVtRGltcyA+IDEpIHsKICAgICAgICAgICAgICAvL2dldCB0aGUgbWVtIGJsb2NrIG9mIGN1cnJlbnQgZGltZW5zaW9uCiAgICAgICAgICAgICAgcmVzdWx0UGl4ZWxzID0gbmV3IE91dFBpeGVsVHlwZUFycmF5KHJlc3VsdFBpeGVsc0FsbERpbS5idWZmZXIsIG51bVBpeGVscyAqIGlEaW0sIG51bVBpeGVscyk7CiAgICAgICAgICAgICAgcHJldlZhbCA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGRhdGEuaGVhZGVySW5mby5udW1WYWxpZFBpeGVsID09PSB3aWR0aCAqIGhlaWdodCkgeyAvL2FsbCB2YWxpZAogICAgICAgICAgICAgIGZvciAoayA9IDAsIGkgPSAwOyBpIDwgaGVpZ2h0OyBpKyspIHsKICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCB3aWR0aDsgaisrLCBrKyspIHsKICAgICAgICAgICAgICAgICAgdmFsID0gMDsKICAgICAgICAgICAgICAgICAgdmFsVG1wID0gKHdvcmQgPDwgYml0UG9zKSA+Pj4gKDMyIC0gbnVtQml0c0xVVFFpY2spOwogICAgICAgICAgICAgICAgICB2YWxUbXBRdWljayA9IHZhbFRtcDsvLyA+Pj4gZGVsdGFCaXRzOwogICAgICAgICAgICAgICAgICBpZiAoMzIgLSBiaXRQb3MgPCBudW1CaXRzTFVUUWljaykgewogICAgICAgICAgICAgICAgICAgIHZhbFRtcCB8PSAoKHN0dWZmZWREYXRhW3NyY1B0ciArIDFdKSA+Pj4gKDY0IC0gYml0UG9zIC0gbnVtQml0c0xVVFFpY2spKTsKICAgICAgICAgICAgICAgICAgICB2YWxUbXBRdWljayA9IHZhbFRtcDsvLyA+Pj4gZGVsdGFCaXRzOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGlmIChkZWNvZGVMdXRbdmFsVG1wUXVpY2tdKSAgICAvLyBpZiB0aGVyZSwgbW92ZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgYml0cyBhbmQgZG9uZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdmFsID0gZGVjb2RlTHV0W3ZhbFRtcFF1aWNrXVsxXTsKICAgICAgICAgICAgICAgICAgICBiaXRQb3MgKz0gZGVjb2RlTHV0W3ZhbFRtcFF1aWNrXVswXTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YWxUbXAgPSAod29yZCA8PCBiaXRQb3MpID4+PiAoMzIgLSBudW1CaXRzTFVUKTsKICAgICAgICAgICAgICAgICAgICB2YWxUbXBRdWljayA9IHZhbFRtcDsvLyA+Pj4gZGVsdGFCaXRzOwogICAgICAgICAgICAgICAgICAgIGlmICgzMiAtIGJpdFBvcyA8IG51bUJpdHNMVVQpIHsKICAgICAgICAgICAgICAgICAgICAgIHZhbFRtcCB8PSAoKHN0dWZmZWREYXRhW3NyY1B0ciArIDFdKSA+Pj4gKDY0IC0gYml0UG9zIC0gbnVtQml0c0xVVCkpOwogICAgICAgICAgICAgICAgICAgICAgdmFsVG1wUXVpY2sgPSB2YWxUbXA7Ly8gPj4+IGRlbHRhQml0czsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IHRyZWU7CiAgICAgICAgICAgICAgICAgICAgZm9yIChpaSA9IDA7IGlpIDwgbnVtQml0c0xVVDsgaWkrKykgewogICAgICAgICAgICAgICAgICAgICAgY3VycmVudEJpdCA9IHZhbFRtcCA+Pj4gKG51bUJpdHNMVVQgLSBpaSAtIDEpICYgMTsKICAgICAgICAgICAgICAgICAgICAgIG5vZGUgPSBjdXJyZW50Qml0ID8gbm9kZS5yaWdodCA6IG5vZGUubGVmdDsKICAgICAgICAgICAgICAgICAgICAgIGlmICghKG5vZGUubGVmdCB8fCBub2RlLnJpZ2h0KSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBub2RlLnZhbDsKICAgICAgICAgICAgICAgICAgICAgICAgYml0UG9zID0gYml0UG9zICsgaWkgKyAxOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIGlmIChiaXRQb3MgPj0gMzIpIHsKICAgICAgICAgICAgICAgICAgICBiaXRQb3MgLT0gMzI7CiAgICAgICAgICAgICAgICAgICAgc3JjUHRyKys7CiAgICAgICAgICAgICAgICAgICAgd29yZCA9IHN0dWZmZWREYXRhW3NyY1B0cl07CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIGRlbHRhID0gdmFsIC0gb2Zmc2V0OwogICAgICAgICAgICAgICAgICBpZiAoZGVsdGFFbmNvZGUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaiA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgIGRlbHRhICs9IHByZXZWYWw7ICAgIC8vIHVzZSBvdmVyZmxvdwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgZGVsdGEgKz0gcmVzdWx0UGl4ZWxzW2sgLSB3aWR0aF07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgZGVsdGEgKz0gcHJldlZhbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGVsdGEgJj0gMHhGRjsgLy9vdmVyZmxvdwogICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1trXSA9IGRlbHRhOy8vb3ZlcmZsb3cKICAgICAgICAgICAgICAgICAgICBwcmV2VmFsID0gZGVsdGE7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0UGl4ZWxzW2tdID0gZGVsdGE7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7IC8vbm90IGFsbCB2YWxpZCwgdXNlIG1hc2sKICAgICAgICAgICAgICBmb3IgKGsgPSAwLCBpID0gMDsgaSA8IGhlaWdodDsgaSsrKSB7CiAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgd2lkdGg7IGorKywgaysrKSB7CiAgICAgICAgICAgICAgICAgIGlmIChtYXNrW2tdKSB7CiAgICAgICAgICAgICAgICAgICAgdmFsID0gMDsKICAgICAgICAgICAgICAgICAgICB2YWxUbXAgPSAod29yZCA8PCBiaXRQb3MpID4+PiAoMzIgLSBudW1CaXRzTFVUUWljayk7CiAgICAgICAgICAgICAgICAgICAgdmFsVG1wUXVpY2sgPSB2YWxUbXA7Ly8gPj4+IGRlbHRhQml0czsKICAgICAgICAgICAgICAgICAgICBpZiAoMzIgLSBiaXRQb3MgPCBudW1CaXRzTFVUUWljaykgewogICAgICAgICAgICAgICAgICAgICAgdmFsVG1wIHw9ICgoc3R1ZmZlZERhdGFbc3JjUHRyICsgMV0pID4+PiAoNjQgLSBiaXRQb3MgLSBudW1CaXRzTFVUUWljaykpOwogICAgICAgICAgICAgICAgICAgICAgdmFsVG1wUXVpY2sgPSB2YWxUbXA7Ly8gPj4+IGRlbHRhQml0czsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGRlY29kZUx1dFt2YWxUbXBRdWlja10pICAgIC8vIGlmIHRoZXJlLCBtb3ZlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBiaXRzIGFuZCBkb25lCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgdmFsID0gZGVjb2RlTHV0W3ZhbFRtcFF1aWNrXVsxXTsKICAgICAgICAgICAgICAgICAgICAgIGJpdFBvcyArPSBkZWNvZGVMdXRbdmFsVG1wUXVpY2tdWzBdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIHZhbFRtcCA9ICh3b3JkIDw8IGJpdFBvcykgPj4+ICgzMiAtIG51bUJpdHNMVVQpOwogICAgICAgICAgICAgICAgICAgICAgdmFsVG1wUXVpY2sgPSB2YWxUbXA7Ly8gPj4+IGRlbHRhQml0czsKICAgICAgICAgICAgICAgICAgICAgIGlmICgzMiAtIGJpdFBvcyA8IG51bUJpdHNMVVQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsVG1wIHw9ICgoc3R1ZmZlZERhdGFbc3JjUHRyICsgMV0pID4+PiAoNjQgLSBiaXRQb3MgLSBudW1CaXRzTFVUKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbFRtcFF1aWNrID0gdmFsVG1wOy8vID4+PiBkZWx0YUJpdHM7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBub2RlID0gdHJlZTsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IG51bUJpdHNMVVQ7IGlpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEJpdCA9IHZhbFRtcCA+Pj4gKG51bUJpdHNMVVQgLSBpaSAtIDEpICYgMTsKICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSA9IGN1cnJlbnRCaXQgPyBub2RlLnJpZ2h0IDogbm9kZS5sZWZ0OwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShub2RlLmxlZnQgfHwgbm9kZS5yaWdodCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBub2RlLnZhbDsKICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRQb3MgPSBiaXRQb3MgKyBpaSArIDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmIChiaXRQb3MgPj0gMzIpIHsKICAgICAgICAgICAgICAgICAgICAgIGJpdFBvcyAtPSAzMjsKICAgICAgICAgICAgICAgICAgICAgIHNyY1B0cisrOwogICAgICAgICAgICAgICAgICAgICAgd29yZCA9IHN0dWZmZWREYXRhW3NyY1B0cl07CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBkZWx0YSA9IHZhbCAtIG9mZnNldDsKICAgICAgICAgICAgICAgICAgICBpZiAoZGVsdGFFbmNvZGUpIHsKICAgICAgICAgICAgICAgICAgICAgIGlmIChqID4gMCAmJiBtYXNrW2sgLSAxXSkgewogICAgICAgICAgICAgICAgICAgICAgICBkZWx0YSArPSBwcmV2VmFsOyAgICAvLyB1c2Ugb3ZlcmZsb3cKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGkgPiAwICYmIG1hc2tbayAtIHdpZHRoXSkgewogICAgICAgICAgICAgICAgICAgICAgICBkZWx0YSArPSByZXN1bHRQaXhlbHNbayAtIHdpZHRoXTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBkZWx0YSArPSBwcmV2VmFsOwogICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgIGRlbHRhICY9IDB4RkY7IC8vb3ZlcmZsb3cKICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1trXSA9IGRlbHRhOy8vb3ZlcmZsb3cKICAgICAgICAgICAgICAgICAgICAgIHByZXZWYWwgPSBkZWx0YTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICByZXN1bHRQaXhlbHNba10gPSBkZWx0YTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YS5wdHIgPSBkYXRhLnB0ciArIChzcmNQdHIgKyAxKSAqIDQgKyAoYml0UG9zID4gMCA/IDQgOiAwKTsKICAgICAgICAgIH0KICAgICAgICAgIGRhdGEucGl4ZWxzLnJlc3VsdFBpeGVscyA9IHJlc3VsdFBpeGVsc0FsbERpbTsKICAgICAgICB9LAoKICAgICAgICBkZWNvZGVCaXRzOiBmdW5jdGlvbihpbnB1dCwgZGF0YSwgYmxvY2tEYXRhQnVmZmVyLCBvZmZzZXQsIGlEaW0pIHsKICAgICAgICAgIHsKICAgICAgICAgICAgLy9iaXRzdHVmZiBlbmNvZGluZyBpcyAzCiAgICAgICAgICAgIHZhciBoZWFkZXJJbmZvID0gZGF0YS5oZWFkZXJJbmZvOwogICAgICAgICAgICB2YXIgZmlsZVZlcnNpb24gPSBoZWFkZXJJbmZvLmZpbGVWZXJzaW9uOwogICAgICAgICAgICAvL3ZhciBibG9jayA9IHt9OwogICAgICAgICAgICB2YXIgYmxvY2tQdHIgPSAwOwogICAgICAgICAgICB2YXIgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZGF0YS5wdHIsIDUpOy8vdG8gZG8KICAgICAgICAgICAgdmFyIGhlYWRlckJ5dGUgPSB2aWV3LmdldFVpbnQ4KDApOwogICAgICAgICAgICBibG9ja1B0cisrOwogICAgICAgICAgICB2YXIgYml0czY3ID0gaGVhZGVyQnl0ZSA+PiA2OwogICAgICAgICAgICB2YXIgbiA9IChiaXRzNjcgPT09IDApID8gNCA6IDMgLSBiaXRzNjc7CiAgICAgICAgICAgIHZhciBkb0x1dCA9IChoZWFkZXJCeXRlICYgMzIpID4gMCA/IHRydWUgOiBmYWxzZTsvLzV0aCBiaXQKICAgICAgICAgICAgdmFyIG51bUJpdHMgPSBoZWFkZXJCeXRlICYgMzE7CiAgICAgICAgICAgIHZhciBudW1FbGVtZW50cyA9IDA7CiAgICAgICAgICAgIGlmIChuID09PSAxKSB7CiAgICAgICAgICAgICAgbnVtRWxlbWVudHMgPSB2aWV3LmdldFVpbnQ4KGJsb2NrUHRyKTsgYmxvY2tQdHIrKzsKICAgICAgICAgICAgfSBlbHNlIGlmIChuID09PSAyKSB7CiAgICAgICAgICAgICAgbnVtRWxlbWVudHMgPSB2aWV3LmdldFVpbnQxNihibG9ja1B0ciwgdHJ1ZSk7IGJsb2NrUHRyICs9IDI7CiAgICAgICAgICAgIH0gZWxzZSBpZiAobiA9PT0gNCkgewogICAgICAgICAgICAgIG51bUVsZW1lbnRzID0gdmlldy5nZXRVaW50MzIoYmxvY2tQdHIsIHRydWUpOyBibG9ja1B0ciArPSA0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRocm93ICJJbnZhbGlkIHZhbGlkIHBpeGVsIGNvdW50IHR5cGUiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vZml4OiBodWZmbWFuIGNvZGVzIGFyZSBiaXQgc3R1ZmZlZCwgYnV0IG5vdCBib3VuZCBieSBkYXRhJ3MgbWF4IHZhbHVlLCBzbyBuZWVkIHRvIHVzZSBvcmlnaW5hbFVuc3R1ZmYKICAgICAgICAgICAgLy9vZmZzZXQgPSBvZmZzZXQgfHwgMDsKICAgICAgICAgICAgdmFyIHNjYWxlID0gMiAqIGhlYWRlckluZm8ubWF4WkVycm9yOwogICAgICAgICAgICB2YXIgc3R1ZmZlZERhdGEsIGFycmF5QnVmLCBzdG9yZTgsIGRhdGFCeXRlcywgZGF0YVdvcmRzOwogICAgICAgICAgICB2YXIgbHV0QXJyLCBsdXREYXRhLCBsdXRCeXRlcywgYml0c1BlclBpeGVsOwogICAgICAgICAgICB2YXIgek1heCA9IGhlYWRlckluZm8ubnVtRGltcyA+IDEgPyBoZWFkZXJJbmZvLm1heFZhbHVlc1tpRGltXSA6IGhlYWRlckluZm8uek1heDsKICAgICAgICAgICAgaWYgKGRvTHV0KSB7CiAgICAgICAgICAgICAgZGF0YS5jb3VudGVyLmx1dCsrOwogICAgICAgICAgICAgIGx1dEJ5dGVzID0gdmlldy5nZXRVaW50OChibG9ja1B0cik7CiAgICAgICAgICAgICAgYmxvY2tQdHIrKzsKICAgICAgICAgICAgICBkYXRhQnl0ZXMgPSBNYXRoLmNlaWwoKGx1dEJ5dGVzIC0gMSkgKiBudW1CaXRzIC8gOCk7CiAgICAgICAgICAgICAgZGF0YVdvcmRzID0gTWF0aC5jZWlsKGRhdGFCeXRlcyAvIDQpOwogICAgICAgICAgICAgIGFycmF5QnVmID0gbmV3IEFycmF5QnVmZmVyKGRhdGFXb3JkcyAqIDQpOwogICAgICAgICAgICAgIHN0b3JlOCA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmKTsKCiAgICAgICAgICAgICAgZGF0YS5wdHIgKz0gYmxvY2tQdHI7CiAgICAgICAgICAgICAgc3RvcmU4LnNldChuZXcgVWludDhBcnJheShpbnB1dCwgZGF0YS5wdHIsIGRhdGFCeXRlcykpOwoKICAgICAgICAgICAgICBsdXREYXRhID0gbmV3IFVpbnQzMkFycmF5KGFycmF5QnVmKTsKICAgICAgICAgICAgICBkYXRhLnB0ciArPSBkYXRhQnl0ZXM7CgogICAgICAgICAgICAgIGJpdHNQZXJQaXhlbCA9IDA7CiAgICAgICAgICAgICAgd2hpbGUgKChsdXRCeXRlcyAtIDEpID4+PiBiaXRzUGVyUGl4ZWwpIHsKICAgICAgICAgICAgICAgIGJpdHNQZXJQaXhlbCsrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBkYXRhQnl0ZXMgPSBNYXRoLmNlaWwobnVtRWxlbWVudHMgKiBiaXRzUGVyUGl4ZWwgLyA4KTsKICAgICAgICAgICAgICBkYXRhV29yZHMgPSBNYXRoLmNlaWwoZGF0YUJ5dGVzIC8gNCk7CiAgICAgICAgICAgICAgYXJyYXlCdWYgPSBuZXcgQXJyYXlCdWZmZXIoZGF0YVdvcmRzICogNCk7CiAgICAgICAgICAgICAgc3RvcmU4ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWYpOwogICAgICAgICAgICAgIHN0b3JlOC5zZXQobmV3IFVpbnQ4QXJyYXkoaW5wdXQsIGRhdGEucHRyLCBkYXRhQnl0ZXMpKTsKICAgICAgICAgICAgICBzdHVmZmVkRGF0YSA9IG5ldyBVaW50MzJBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgICAgZGF0YS5wdHIgKz0gZGF0YUJ5dGVzOwogICAgICAgICAgICAgIGlmIChmaWxlVmVyc2lvbiA+PSAzKSB7CiAgICAgICAgICAgICAgICBsdXRBcnIgPSBCaXRTdHVmZmVyLnVuc3R1ZmZMVVQyKGx1dERhdGEsIG51bUJpdHMsIGx1dEJ5dGVzIC0gMSwgb2Zmc2V0LCBzY2FsZSwgek1heCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgbHV0QXJyID0gQml0U3R1ZmZlci51bnN0dWZmTFVUKGx1dERhdGEsIG51bUJpdHMsIGx1dEJ5dGVzIC0gMSwgb2Zmc2V0LCBzY2FsZSwgek1heCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIC8vbHV0QXJyLnVuc2hpZnQoMCk7CiAgICAgICAgICAgICAgaWYgKGZpbGVWZXJzaW9uID49IDMpIHsKICAgICAgICAgICAgICAgIC8vQml0U3R1ZmZlci51bnN0dWZmMihibG9jaywgYmxvY2tEYXRhQnVmZmVyLCBoZWFkZXJJbmZvLnpNYXgpOwogICAgICAgICAgICAgICAgQml0U3R1ZmZlci51bnN0dWZmMihzdHVmZmVkRGF0YSwgYmxvY2tEYXRhQnVmZmVyLCBiaXRzUGVyUGl4ZWwsIG51bUVsZW1lbnRzLCBsdXRBcnIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIEJpdFN0dWZmZXIudW5zdHVmZihzdHVmZmVkRGF0YSwgYmxvY2tEYXRhQnVmZmVyLCBiaXRzUGVyUGl4ZWwsIG51bUVsZW1lbnRzLCBsdXRBcnIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoImJpdHN0dWZmZXIiKTsKICAgICAgICAgICAgICBkYXRhLmNvdW50ZXIuYml0c3R1ZmZlcisrOwogICAgICAgICAgICAgIGJpdHNQZXJQaXhlbCA9IG51bUJpdHM7CiAgICAgICAgICAgICAgZGF0YS5wdHIgKz0gYmxvY2tQdHI7CiAgICAgICAgICAgICAgaWYgKGJpdHNQZXJQaXhlbCA+IDApIHsKICAgICAgICAgICAgICAgIGRhdGFCeXRlcyA9IE1hdGguY2VpbChudW1FbGVtZW50cyAqIGJpdHNQZXJQaXhlbCAvIDgpOwogICAgICAgICAgICAgICAgZGF0YVdvcmRzID0gTWF0aC5jZWlsKGRhdGFCeXRlcyAvIDQpOwogICAgICAgICAgICAgICAgYXJyYXlCdWYgPSBuZXcgQXJyYXlCdWZmZXIoZGF0YVdvcmRzICogNCk7CiAgICAgICAgICAgICAgICBzdG9yZTggPSBuZXcgVWludDhBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgICAgICBzdG9yZTguc2V0KG5ldyBVaW50OEFycmF5KGlucHV0LCBkYXRhLnB0ciwgZGF0YUJ5dGVzKSk7CiAgICAgICAgICAgICAgICBzdHVmZmVkRGF0YSA9IG5ldyBVaW50MzJBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgICAgICBkYXRhLnB0ciArPSBkYXRhQnl0ZXM7CiAgICAgICAgICAgICAgICBpZiAoZmlsZVZlcnNpb24gPj0gMykgewogICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBCaXRTdHVmZmVyLm9yaWdpbmFsVW5zdHVmZjIoc3R1ZmZlZERhdGEsIGJsb2NrRGF0YUJ1ZmZlciwgYml0c1BlclBpeGVsLCBudW1FbGVtZW50cyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgQml0U3R1ZmZlci51bnN0dWZmMihzdHVmZmVkRGF0YSwgYmxvY2tEYXRhQnVmZmVyLCBiaXRzUGVyUGl4ZWwsIG51bUVsZW1lbnRzLCBmYWxzZSwgb2Zmc2V0LCBzY2FsZSwgek1heCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBCaXRTdHVmZmVyLm9yaWdpbmFsVW5zdHVmZihzdHVmZmVkRGF0YSwgYmxvY2tEYXRhQnVmZmVyLCBiaXRzUGVyUGl4ZWwsIG51bUVsZW1lbnRzKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBCaXRTdHVmZmVyLnVuc3R1ZmYoc3R1ZmZlZERhdGEsIGJsb2NrRGF0YUJ1ZmZlciwgYml0c1BlclBpeGVsLCBudW1FbGVtZW50cywgZmFsc2UsIG9mZnNldCwgc2NhbGUsIHpNYXgpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CgogICAgICAgIH0sCgogICAgICAgIHJlYWRUaWxlczogZnVuY3Rpb24oaW5wdXQsIGRhdGEsIE91dFBpeGVsVHlwZUFycmF5KSB7CiAgICAgICAgICB2YXIgaGVhZGVySW5mbyA9IGRhdGEuaGVhZGVySW5mbzsKICAgICAgICAgIHZhciB3aWR0aCA9IGhlYWRlckluZm8ud2lkdGg7CiAgICAgICAgICB2YXIgaGVpZ2h0ID0gaGVhZGVySW5mby5oZWlnaHQ7CiAgICAgICAgICB2YXIgbWljcm9CbG9ja1NpemUgPSBoZWFkZXJJbmZvLm1pY3JvQmxvY2tTaXplOwogICAgICAgICAgdmFyIGltYWdlVHlwZSA9IGhlYWRlckluZm8uaW1hZ2VUeXBlOwogICAgICAgICAgdmFyIGRhdGFUeXBlU2l6ZSA9IExlcmMySGVscGVycy5nZXREYXRhVHlwZVNpemUoaW1hZ2VUeXBlKTsKICAgICAgICAgIHZhciBudW1CbG9ja3NYID0gTWF0aC5jZWlsKHdpZHRoIC8gbWljcm9CbG9ja1NpemUpOwogICAgICAgICAgdmFyIG51bUJsb2Nrc1kgPSBNYXRoLmNlaWwoaGVpZ2h0IC8gbWljcm9CbG9ja1NpemUpOwogICAgICAgICAgZGF0YS5waXhlbHMubnVtQmxvY2tzWSA9IG51bUJsb2Nrc1k7CiAgICAgICAgICBkYXRhLnBpeGVscy5udW1CbG9ja3NYID0gbnVtQmxvY2tzWDsKICAgICAgICAgIGRhdGEucGl4ZWxzLnB0ciA9IDA7CiAgICAgICAgICB2YXIgcm93ID0gMCwgY29sID0gMCwgYmxvY2tZID0gMCwgYmxvY2tYID0gMCwgdGhpc0Jsb2NrSGVpZ2h0ID0gMCwgdGhpc0Jsb2NrV2lkdGggPSAwLCBieXRlc0xlZnQgPSAwLCBoZWFkZXJCeXRlID0gMCwgYml0czY3ID0gMCwgdGVzdENvZGUgPSAwLCBvdXRQdHIgPSAwLCBvdXRTdHJpZGUgPSAwLCBudW1CeXRlcyA9IDAsIGJ5dGVzbGVmdCA9IDAsIHogPSAwLCBibG9ja1B0ciA9IDA7CiAgICAgICAgICB2YXIgdmlldywgYmxvY2ssIGFycmF5QnVmLCBzdG9yZTgsIHJhd0RhdGE7CiAgICAgICAgICB2YXIgYmxvY2tFbmNvZGluZzsKICAgICAgICAgIHZhciBibG9ja0RhdGFCdWZmZXIgPSBuZXcgT3V0UGl4ZWxUeXBlQXJyYXkobWljcm9CbG9ja1NpemUgKiBtaWNyb0Jsb2NrU2l6ZSk7CiAgICAgICAgICB2YXIgbGFzdEJsb2NrSGVpZ2h0ID0gKGhlaWdodCAlIG1pY3JvQmxvY2tTaXplKSB8fCBtaWNyb0Jsb2NrU2l6ZTsKICAgICAgICAgIHZhciBsYXN0QmxvY2tXaWR0aCA9ICh3aWR0aCAlIG1pY3JvQmxvY2tTaXplKSB8fCBtaWNyb0Jsb2NrU2l6ZTsKICAgICAgICAgIHZhciBvZmZzZXRUeXBlLCBvZmZzZXQ7CiAgICAgICAgICB2YXIgbnVtRGltcyA9IGhlYWRlckluZm8ubnVtRGltcywgaURpbTsKICAgICAgICAgIHZhciBtYXNrID0gZGF0YS5waXhlbHMucmVzdWx0TWFzazsKICAgICAgICAgIHZhciByZXN1bHRQaXhlbHMgPSBkYXRhLnBpeGVscy5yZXN1bHRQaXhlbHM7CiAgICAgICAgICBmb3IgKGJsb2NrWSA9IDA7IGJsb2NrWSA8IG51bUJsb2Nrc1k7IGJsb2NrWSsrKSB7CiAgICAgICAgICAgIHRoaXNCbG9ja0hlaWdodCA9IChibG9ja1kgIT09IG51bUJsb2Nrc1kgLSAxKSA/IG1pY3JvQmxvY2tTaXplIDogbGFzdEJsb2NrSGVpZ2h0OwogICAgICAgICAgICBmb3IgKGJsb2NrWCA9IDA7IGJsb2NrWCA8IG51bUJsb2Nrc1g7IGJsb2NrWCsrKSB7CiAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKCJ5IiArIGJsb2NrWSArICIgeCIgKyBibG9ja1gpOwogICAgICAgICAgICAgIHRoaXNCbG9ja1dpZHRoID0gKGJsb2NrWCAhPT0gbnVtQmxvY2tzWCAtIDEpID8gbWljcm9CbG9ja1NpemUgOiBsYXN0QmxvY2tXaWR0aDsKCiAgICAgICAgICAgICAgb3V0UHRyID0gYmxvY2tZICogd2lkdGggKiBtaWNyb0Jsb2NrU2l6ZSArIGJsb2NrWCAqIG1pY3JvQmxvY2tTaXplOwogICAgICAgICAgICAgIG91dFN0cmlkZSA9IHdpZHRoIC0gdGhpc0Jsb2NrV2lkdGg7CgoKICAgICAgICAgICAgICBmb3IgKGlEaW0gPSAwOyBpRGltIDwgbnVtRGltczsgaURpbSsrKSB7CiAgICAgICAgICAgICAgICBpZiAobnVtRGltcyA+IDEpIHsKICAgICAgICAgICAgICAgICAgcmVzdWx0UGl4ZWxzID0gbmV3IE91dFBpeGVsVHlwZUFycmF5KGRhdGEucGl4ZWxzLnJlc3VsdFBpeGVscy5idWZmZXIsIHdpZHRoICogaGVpZ2h0ICogaURpbSAqIGRhdGFUeXBlU2l6ZSwgd2lkdGggKiBoZWlnaHQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnl0ZXNMZWZ0ID0gaW5wdXQuYnl0ZUxlbmd0aCAtIGRhdGEucHRyOwogICAgICAgICAgICAgICAgdmlldyA9IG5ldyBEYXRhVmlldyhpbnB1dCwgZGF0YS5wdHIsIE1hdGgubWluKDEwLCBieXRlc0xlZnQpKTsKICAgICAgICAgICAgICAgIGJsb2NrID0ge307CiAgICAgICAgICAgICAgICBibG9ja1B0ciA9IDA7CiAgICAgICAgICAgICAgICBoZWFkZXJCeXRlID0gdmlldy5nZXRVaW50OCgwKTsKICAgICAgICAgICAgICAgIGJsb2NrUHRyKys7CiAgICAgICAgICAgICAgICBiaXRzNjcgPSAoaGVhZGVyQnl0ZSA+PiA2KSAmIDB4RkY7CiAgICAgICAgICAgICAgICB0ZXN0Q29kZSA9IChoZWFkZXJCeXRlID4+IDIpICYgMTU7ICAgIC8vIHVzZSBiaXRzIDIzNDUgZm9yIGludGVncml0eSBjaGVjawogICAgICAgICAgICAgICAgaWYgKHRlc3RDb2RlICE9PSAoKChibG9ja1ggKiBtaWNyb0Jsb2NrU2l6ZSkgPj4gMykgJiAxNSkpIHsKICAgICAgICAgICAgICAgICAgdGhyb3cgImludGVncml0eSBpc3N1ZSI7CiAgICAgICAgICAgICAgICAgIC8vcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGJsb2NrRW5jb2RpbmcgPSBoZWFkZXJCeXRlICYgMzsKICAgICAgICAgICAgICAgIGlmIChibG9ja0VuY29kaW5nID4gMykgewogICAgICAgICAgICAgICAgICBkYXRhLnB0ciArPSBibG9ja1B0cjsKICAgICAgICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgYmxvY2sgZW5jb2RpbmcgKCIgKyBibG9ja0VuY29kaW5nICsgIikiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2tFbmNvZGluZyA9PT0gMikgeyAvL2NvbnN0YW50IDAKICAgICAgICAgICAgICAgICAgZGF0YS5jb3VudGVyLmNvbnN0YW50Kys7CiAgICAgICAgICAgICAgICAgIGRhdGEucHRyICs9IGJsb2NrUHRyOwogICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrRW5jb2RpbmcgPT09IDApIHsgIC8vdW5jb21wcmVzc2VkCiAgICAgICAgICAgICAgICAgIGRhdGEuY291bnRlci51bmNvbXByZXNzZWQrKzsKICAgICAgICAgICAgICAgICAgZGF0YS5wdHIgKz0gYmxvY2tQdHI7CiAgICAgICAgICAgICAgICAgIG51bUJ5dGVzID0gdGhpc0Jsb2NrSGVpZ2h0ICogdGhpc0Jsb2NrV2lkdGggKiBkYXRhVHlwZVNpemU7CiAgICAgICAgICAgICAgICAgIGJ5dGVzbGVmdCA9IGlucHV0LmJ5dGVMZW5ndGggLSBkYXRhLnB0cjsKICAgICAgICAgICAgICAgICAgbnVtQnl0ZXMgPSBudW1CeXRlcyA8IGJ5dGVzbGVmdCA/IG51bUJ5dGVzIDogYnl0ZXNsZWZ0OwogICAgICAgICAgICAgICAgICAvL2JpdCBhbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgYXJyYXlCdWYgPSBuZXcgQXJyYXlCdWZmZXIoKG51bUJ5dGVzICUgZGF0YVR5cGVTaXplKSA9PT0gMCA/IG51bUJ5dGVzIDogKG51bUJ5dGVzICsgZGF0YVR5cGVTaXplIC0gbnVtQnl0ZXMgJSBkYXRhVHlwZVNpemUpKTsKICAgICAgICAgICAgICAgICAgc3RvcmU4ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWYpOwogICAgICAgICAgICAgICAgICBzdG9yZTguc2V0KG5ldyBVaW50OEFycmF5KGlucHV0LCBkYXRhLnB0ciwgbnVtQnl0ZXMpKTsKICAgICAgICAgICAgICAgICAgcmF3RGF0YSA9IG5ldyBPdXRQaXhlbFR5cGVBcnJheShhcnJheUJ1Zik7CiAgICAgICAgICAgICAgICAgIHogPSAwOwogICAgICAgICAgICAgICAgICBpZiAobWFzaykgewogICAgICAgICAgICAgICAgICAgIGZvciAocm93ID0gMDsgcm93IDwgdGhpc0Jsb2NrSGVpZ2h0OyByb3crKykgewogICAgICAgICAgICAgICAgICAgICAgZm9yIChjb2wgPSAwOyBjb2wgPCB0aGlzQmxvY2tXaWR0aDsgY29sKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hc2tbb3V0UHRyXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHJdID0gcmF3RGF0YVt6KytdOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIG91dFB0cisrOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgb3V0UHRyICs9IG91dFN0cmlkZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSB7Ly9hbGwgdmFsaWQKICAgICAgICAgICAgICAgICAgICBmb3IgKHJvdyA9IDA7IHJvdyA8IHRoaXNCbG9ja0hlaWdodDsgcm93KyspIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29sID0gMDsgY29sIDwgdGhpc0Jsb2NrV2lkdGg7IGNvbCsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHIrK10gPSByYXdEYXRhW3orK107CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBvdXRQdHIgKz0gb3V0U3RyaWRlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBkYXRhLnB0ciArPSB6ICogZGF0YVR5cGVTaXplOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7IC8vMSBvciAzCiAgICAgICAgICAgICAgICAgIG9mZnNldFR5cGUgPSBMZXJjMkhlbHBlcnMuZ2V0RGF0YVR5cGVVc2VkKGltYWdlVHlwZSwgYml0czY3KTsKICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gTGVyYzJIZWxwZXJzLmdldE9uZVBpeGVsKGJsb2NrLCBibG9ja1B0ciwgb2Zmc2V0VHlwZSwgdmlldyk7CiAgICAgICAgICAgICAgICAgIGJsb2NrUHRyICs9IExlcmMySGVscGVycy5nZXREYXRhVHlwZVNpemUob2Zmc2V0VHlwZSk7CiAgICAgICAgICAgICAgICAgIGlmIChibG9ja0VuY29kaW5nID09PSAzKSAvL2NvbnN0YW50IG9mZnNldCB2YWx1ZQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZGF0YS5wdHIgKz0gYmxvY2tQdHI7CiAgICAgICAgICAgICAgICAgICAgZGF0YS5jb3VudGVyLmNvbnN0YW50b2Zmc2V0Kys7CiAgICAgICAgICAgICAgICAgICAgLy95b3UgY2FuIGRlbGV0ZSB0aGUgZm9sbG93aW5nIHJlc3VsdE1hc2sgY2FzZSBpbiBmYXZvciBvZiBwZXJmb3JtYW5jZSBiZWNhdXNlIHZhbCBpcyBjb25zdGFudCBhbmQgdXNlcnMgdXNlIG5vZGF0YSBtYXNrLCBvdGhlcndpc2Ugbm9kYXRhdmFsdWUgcG9zdCBwcm9jZXNzaW5nIGhhbmRsZXMgaXQgdG9vLgogICAgICAgICAgICAgICAgICAgIC8vd2hpbGUgdGhlIGFib3ZlIHN0YXRlbWVudCBpcyB0cnVlLCB3ZSdyZSBub3QgZG9pbmcgaXQgYXMgd2Ugd2FudCB0byBrZWVwIGludmFsaWQgcGl4ZWwgdmFsdWUgYXQgMCByYXRoZXIgdGhhbiBhcmJpdHJhcnkgdmFsdWVzCiAgICAgICAgICAgICAgICAgICAgaWYgKG1hc2spIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAocm93ID0gMDsgcm93IDwgdGhpc0Jsb2NrSGVpZ2h0OyByb3crKykgewogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbCA9IDA7IGNvbCA8IHRoaXNCbG9ja1dpZHRoOyBjb2wrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXNrW291dFB0cl0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHJdID0gb2Zmc2V0OwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRQdHIrKzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBvdXRQdHIgKz0gb3V0U3RyaWRlOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAocm93ID0gMDsgcm93IDwgdGhpc0Jsb2NrSGVpZ2h0OyByb3crKykgewogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbCA9IDA7IGNvbCA8IHRoaXNCbG9ja1dpZHRoOyBjb2wrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFBpeGVsc1tvdXRQdHIrK10gPSBvZmZzZXQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgb3V0UHRyICs9IG91dFN0cmlkZTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vYml0c3R1ZmYgZW5jb2RpbmcgaXMgMwogICAgICAgICAgICAgICAgICAgIGRhdGEucHRyICs9IGJsb2NrUHRyOwogICAgICAgICAgICAgICAgICAgIC8vaGVhdnkgbGlmdGluZwogICAgICAgICAgICAgICAgICAgIExlcmMySGVscGVycy5kZWNvZGVCaXRzKGlucHV0LCBkYXRhLCBibG9ja0RhdGFCdWZmZXIsIG9mZnNldCwgaURpbSk7CiAgICAgICAgICAgICAgICAgICAgYmxvY2tQdHIgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmIChtYXNrKSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHJvdyA9IDA7IHJvdyA8IHRoaXNCbG9ja0hlaWdodDsgcm93KyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb2wgPSAwOyBjb2wgPCB0aGlzQmxvY2tXaWR0aDsgY29sKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFza1tvdXRQdHJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRQaXhlbHNbb3V0UHRyXSA9IGJsb2NrRGF0YUJ1ZmZlcltibG9ja1B0cisrXTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0UHRyKys7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgb3V0UHRyICs9IG91dFN0cmlkZTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHJvdyA9IDA7IHJvdyA8IHRoaXNCbG9ja0hlaWdodDsgcm93KyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb2wgPSAwOyBjb2wgPCB0aGlzQmxvY2tXaWR0aDsgY29sKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRQaXhlbHNbb3V0UHRyKytdID0gYmxvY2tEYXRhQnVmZmVyW2Jsb2NrUHRyKytdOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIG91dFB0ciArPSBvdXRTdHJpZGU7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgLyoqKioqKioqKioqKioqKioqCiAgICAgICAgKiAgcHJpdmF0ZSBtZXRob2RzIChoZWxwZXIgbWV0aG9kcykKICAgICAgICAqKioqKioqKioqKioqKioqKi8KCiAgICAgICAgZm9ybWF0RmlsZUluZm86IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICJmaWxlSWRlbnRpZmllclN0cmluZyI6IGRhdGEuaGVhZGVySW5mby5maWxlSWRlbnRpZmllclN0cmluZywKICAgICAgICAgICAgImZpbGVWZXJzaW9uIjogZGF0YS5oZWFkZXJJbmZvLmZpbGVWZXJzaW9uLAogICAgICAgICAgICAiaW1hZ2VUeXBlIjogZGF0YS5oZWFkZXJJbmZvLmltYWdlVHlwZSwKICAgICAgICAgICAgImhlaWdodCI6IGRhdGEuaGVhZGVySW5mby5oZWlnaHQsCiAgICAgICAgICAgICJ3aWR0aCI6IGRhdGEuaGVhZGVySW5mby53aWR0aCwKICAgICAgICAgICAgIm51bVZhbGlkUGl4ZWwiOiBkYXRhLmhlYWRlckluZm8ubnVtVmFsaWRQaXhlbCwKICAgICAgICAgICAgIm1pY3JvQmxvY2tTaXplIjogZGF0YS5oZWFkZXJJbmZvLm1pY3JvQmxvY2tTaXplLAogICAgICAgICAgICAiYmxvYlNpemUiOiBkYXRhLmhlYWRlckluZm8uYmxvYlNpemUsCiAgICAgICAgICAgICJtYXhaRXJyb3IiOiBkYXRhLmhlYWRlckluZm8ubWF4WkVycm9yLAogICAgICAgICAgICAicGl4ZWxUeXBlIjogTGVyYzJIZWxwZXJzLmdldFBpeGVsVHlwZShkYXRhLmhlYWRlckluZm8uaW1hZ2VUeXBlKSwKICAgICAgICAgICAgImVvZk9mZnNldCI6IGRhdGEuZW9mT2Zmc2V0LAogICAgICAgICAgICAibWFzayI6IGRhdGEubWFzayA/IHsKICAgICAgICAgICAgICAibnVtQnl0ZXMiOiBkYXRhLm1hc2subnVtQnl0ZXMKICAgICAgICAgICAgfSA6IG51bGwsCiAgICAgICAgICAgICJwaXhlbHMiOiB7CiAgICAgICAgICAgICAgIm51bUJsb2Nrc1giOiBkYXRhLnBpeGVscy5udW1CbG9ja3NYLAogICAgICAgICAgICAgICJudW1CbG9ja3NZIjogZGF0YS5waXhlbHMubnVtQmxvY2tzWSwKICAgICAgICAgICAgICAvLyJudW1CeXRlcyI6IGRhdGEucGl4ZWxzLm51bUJ5dGVzLAogICAgICAgICAgICAgICJtYXhWYWx1ZSI6IGRhdGEuaGVhZGVySW5mby56TWF4LAogICAgICAgICAgICAgICJtaW5WYWx1ZSI6IGRhdGEuaGVhZGVySW5mby56TWluLAogICAgICAgICAgICAgICJub0RhdGFWYWx1ZSI6IGRhdGEubm9EYXRhVmFsdWUKICAgICAgICAgICAgfQogICAgICAgICAgfTsKICAgICAgICB9LAoKICAgICAgICBjb25zdHJ1Y3RDb25zdGFudFN1cmZhY2U6IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgIHZhciB2YWwgPSBkYXRhLmhlYWRlckluZm8uek1heDsKICAgICAgICAgIHZhciBudW1EaW1zID0gIGRhdGEuaGVhZGVySW5mby5udW1EaW1zOwogICAgICAgICAgdmFyIG51bVBpeGVscyA9IGRhdGEuaGVhZGVySW5mby5oZWlnaHQgKiBkYXRhLmhlYWRlckluZm8ud2lkdGg7CiAgICAgICAgICB2YXIgbnVtUGl4ZWxBbGxEaW1zID0gbnVtUGl4ZWxzICogbnVtRGltczsKICAgICAgICAgIHZhciBpPTAsIGsgPSAwLCBuU3RhcnQ9MDsKICAgICAgICAgIHZhciBtYXNrID0gZGF0YS5waXhlbHMucmVzdWx0TWFzazsKICAgICAgICAgIGlmIChtYXNrKSB7CiAgICAgICAgICAgIGlmIChudW1EaW1zID4gMSkgewogICAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgbnVtRGltczsgaSsrKSB7CiAgICAgICAgICAgICAgICBuU3RhcnQgPSBpICogbnVtUGl4ZWxzOwogICAgICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IG51bVBpeGVsczsgaysrKSB7CiAgICAgICAgICAgICAgICAgIGlmIChtYXNrW2tdKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YS5waXhlbHMucmVzdWx0UGl4ZWxzW25TdGFydCArIGtdID0gdmFsOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBudW1QaXhlbHM7IGsrKykgewogICAgICAgICAgICAgICAgaWYgKG1hc2tba10pIHsKICAgICAgICAgICAgICAgICAgZGF0YS5waXhlbHMucmVzdWx0UGl4ZWxzW2tdID0gdmFsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmIChkYXRhLnBpeGVscy5yZXN1bHRQaXhlbHMuZmlsbCkgewogICAgICAgICAgICAgIGRhdGEucGl4ZWxzLnJlc3VsdFBpeGVscy5maWxsKHZhbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IG51bVBpeGVsQWxsRGltczsgaysrKSB7CiAgICAgICAgICAgICAgICBkYXRhLnBpeGVscy5yZXN1bHRQaXhlbHNba10gPSB2YWw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfSwKCiAgICAgICAgZ2V0RGF0YVR5cGVBcnJheTogZnVuY3Rpb24odCkgewogICAgICAgICAgdmFyIHRwOwogICAgICAgICAgc3dpdGNoICh0KSB7CiAgICAgICAgICAgIGNhc2UgMDogLy9jaGFyCiAgICAgICAgICAgICAgdHAgPSBJbnQ4QXJyYXk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTogLy9ieXRlCiAgICAgICAgICAgICAgdHAgPSBVaW50OEFycmF5OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDI6IC8vc2hvcnQKICAgICAgICAgICAgICB0cCA9IEludDE2QXJyYXk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzogLy91c2hvcnQKICAgICAgICAgICAgICB0cCA9IFVpbnQxNkFycmF5OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgdHAgPSBJbnQzMkFycmF5OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgdHAgPSBVaW50MzJBcnJheTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgIHRwID0gRmxvYXQzMkFycmF5OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgdHAgPSBGbG9hdDY0QXJyYXk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgdHAgPSBGbG9hdDMyQXJyYXk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHA7CiAgICAgICAgfSwKCiAgICAgICAgZ2V0UGl4ZWxUeXBlOiBmdW5jdGlvbih0KSB7CiAgICAgICAgICB2YXIgdHA7CiAgICAgICAgICBzd2l0Y2ggKHQpIHsKICAgICAgICAgICAgY2FzZSAwOiAvL2NoYXIKICAgICAgICAgICAgICB0cCA9ICJTOCI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTogLy9ieXRlCiAgICAgICAgICAgICAgdHAgPSAiVTgiOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDI6IC8vc2hvcnQKICAgICAgICAgICAgICB0cCA9ICJTMTYiOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM6IC8vdXNob3J0CiAgICAgICAgICAgICAgdHAgPSAiVTE2IjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIHRwID0gIlMzMiI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICB0cCA9ICJVMzIiOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgdHAgPSAiRjMyIjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIHRwID0gIkY2NCI7IC8vbm90IHN1cHBvcnRlZAogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHRwID0gIkYzMiI7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHA7CiAgICAgICAgfSwKCiAgICAgICAgaXNWYWxpZFBpeGVsVmFsdWU6IGZ1bmN0aW9uKHQsIHZhbCkgewogICAgICAgICAgaWYgKHZhbCA9PSBudWxsKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBpc1ZhbGlkOwogICAgICAgICAgc3dpdGNoICh0KSB7CiAgICAgICAgICAgIGNhc2UgMDogLy9jaGFyCiAgICAgICAgICAgICAgaXNWYWxpZCA9IHZhbCA+PSAtMTI4ICYmIHZhbCA8PSAxMjc7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTogLy9ieXRlICAodW5zaWduZWQgY2hhcikKICAgICAgICAgICAgICBpc1ZhbGlkID0gdmFsID49IDAgJiYgdmFsIDw9IDI1NTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOiAvL3Nob3J0CiAgICAgICAgICAgICAgaXNWYWxpZCA9IHZhbCA+PSAtMzI3NjggJiYgdmFsIDw9IDMyNzY3OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM6IC8vdXNob3J0CiAgICAgICAgICAgICAgaXNWYWxpZCA9IHZhbCA+PSAwICYmIHZhbCA8PSA2NTUzNjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OiAvL2ludCAzMgogICAgICAgICAgICAgIGlzVmFsaWQgPSB2YWwgPj0gLTIxNDc0ODM2NDggJiYgdmFsIDw9IDIxNDc0ODM2NDc7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNTogLy91aW5pdCAzMgogICAgICAgICAgICAgIGlzVmFsaWQgPSB2YWwgPj0gMCAmJiB2YWwgPD0gNDI5NDk2NzI5NjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgIGlzVmFsaWQgPSB2YWwgPj0gLTMuNDAyNzk5OTM4NzkwMTQ4NGUrMzggJiYgdmFsIDw9IDMuNDAyNzk5OTM4NzkwMTQ4NGUrMzg7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBpc1ZhbGlkID0gdmFsID49IDVlLTMyNCAmJiB2YWwgPD0gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDg7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaXNWYWxpZCA9IGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGlzVmFsaWQ7CiAgICAgICAgfSwKCiAgICAgICAgZ2V0RGF0YVR5cGVTaXplOiBmdW5jdGlvbih0KSB7CiAgICAgICAgICB2YXIgcyA9IDA7CiAgICAgICAgICBzd2l0Y2ggKHQpIHsKICAgICAgICAgICAgY2FzZSAwOiAvL3VieXRlCiAgICAgICAgICAgIGNhc2UgMTogLy9ieXRlCiAgICAgICAgICAgICAgcyA9IDE7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMjogLy9zaG9ydAogICAgICAgICAgICBjYXNlIDM6IC8vdXNob3J0CiAgICAgICAgICAgICAgcyA9IDI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgcyA9IDQ7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBzID0gODsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICBzID0gdDsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBzOwogICAgICAgIH0sCgogICAgICAgIGdldERhdGFUeXBlVXNlZDogZnVuY3Rpb24oZHQsIHRjKSB7CiAgICAgICAgICB2YXIgdCA9IGR0OwogICAgICAgICAgc3dpdGNoIChkdCkgewogICAgICAgICAgICBjYXNlIDI6IC8vc2hvcnQKICAgICAgICAgICAgY2FzZSA0OiAvL2xvbmcKICAgICAgICAgICAgICB0ID0gZHQgLSB0YzsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzOiAvL3VzaG9ydAogICAgICAgICAgICBjYXNlIDU6IC8vdWxvbmcKICAgICAgICAgICAgICB0ID0gZHQgLSAyICogdGM7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNjogLy9mbG9hdAogICAgICAgICAgICAgIGlmICgwID09PSB0YykgewogICAgICAgICAgICAgICAgdCA9IGR0OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIGlmICgxID09PSB0YykgewogICAgICAgICAgICAgICAgdCA9IDI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdCA9IDE7Ly9ieXRlCiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDc6IC8vZG91YmxlCiAgICAgICAgICAgICAgaWYgKDAgPT09IHRjKSB7CiAgICAgICAgICAgICAgICB0ID0gZHQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdCA9IGR0IC0gMiAqIHRjICsgMTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgdCA9IGR0OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgfSwKCiAgICAgICAgZ2V0T25lUGl4ZWw6IGZ1bmN0aW9uKGJsb2NrLCBibG9ja1B0ciwgb2Zmc2V0VHlwZSwgdmlldykgewogICAgICAgICAgdmFyIHRlbXAgPSAwOwogICAgICAgICAgc3dpdGNoIChvZmZzZXRUeXBlKSB7CiAgICAgICAgICAgIGNhc2UgMDogLy9jaGFyCiAgICAgICAgICAgICAgdGVtcCA9IHZpZXcuZ2V0SW50OChibG9ja1B0cik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTogLy9ieXRlCiAgICAgICAgICAgICAgdGVtcCA9IHZpZXcuZ2V0VWludDgoYmxvY2tQdHIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgdGVtcCA9IHZpZXcuZ2V0SW50MTYoYmxvY2tQdHIsIHRydWUpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgdGVtcCA9IHZpZXcuZ2V0VWludDE2KGJsb2NrUHRyLCB0cnVlKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIHRlbXAgPSB2aWV3LmdldEludDMyKGJsb2NrUHRyLCB0cnVlKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIHRlbXAgPSB2aWV3LmdldFVJbnQzMihibG9ja1B0ciwgdHJ1ZSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgICB0ZW1wID0gdmlldy5nZXRGbG9hdDMyKGJsb2NrUHRyLCB0cnVlKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIC8vdGVtcCA9IHZpZXcuZ2V0RmxvYXQ2NChibG9ja1B0ciwgdHJ1ZSk7CiAgICAgICAgICAgICAgLy9ibG9ja1B0ciArPSA4OwogICAgICAgICAgICAgIC8vbGVyYzIgZW5jb2RpbmcgZG9lc250IGhhbmRsZSBmbG9hdCA2NCwgZm9yY2UgdG8gZmxvYXQzMj8/PwogICAgICAgICAgICAgIHRlbXAgPSB2aWV3LmdldEZsb2F0NjQoYmxvY2tQdHIsIHRydWUpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHRocm93ICgidGhlIGRlY29kZXIgZG9lcyBub3QgdW5kZXJzdGFuZCB0aGlzIHBpeGVsIHR5cGUiKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0ZW1wOwogICAgICAgIH0KICAgICAgfTsKCiAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgKnByaXZhdGUgY2xhc3MgZm9yIGEgdHJlZSBub2RlLiBIdWZmbWFuIGNvZGUgaXMgaW4gTGVyYzJIZWxwZXJzCiAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAgICAgIHZhciBUcmVlTm9kZSA9IGZ1bmN0aW9uKHZhbCwgbGVmdCwgcmlnaHQpIHsKICAgICAgICB0aGlzLnZhbCA9IHZhbDsKICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0OwogICAgICAgIHRoaXMucmlnaHQgPSByaWdodDsKICAgICAgfTsKCiAgICAgIHZhciBMZXJjMkRlY29kZSA9IHsKICAgICAgICAvKgogICAgICAgICogKioqKioqKipyZW1vdmVkIG9wdGlvbnMgY29tcGFyZWQgdG8gTEVSQzEuIFdlIGNhbiBicmluZyBzb21lIG9mIHRoZW0gYmFjayBpZiBuZWVkZWQuCiAgICAgICAgICogcmVtb3ZlZCBwaXhlbCB0eXBlLiBMRVJDMiBpcyB0eXBlZCBhbmQgZG9lc24ndCByZXF1aXJlIHVzZXIgdG8gZ2l2ZSBwaXhlbCB0eXBlCiAgICAgICAgICogY2hhbmdlZCBlbmNvZGVkTWFza0RhdGEgdG8gbWFza0RhdGEuIExFUkMyICdzIGpzIHZlcnNpb24gbWFrZSBpdCBmYXN0ZXIgdG8gdXNlIG1hc2tEYXRhIGRpcmVjdGx5LgogICAgICAgICAqIHJlbW92ZWQgcmV0dXJuTWFzay4gbWFzayBpcyB1c2VkIGJ5IExFUkMyIGludGVybmFsbHkgYW5kIGlzIGNvc3QgZnJlZS4gSW4gY2FzZSBvZiB1c2VyIGlucHV0IG1hc2ssIGl0J3MgcmV0dXJuZWQgYXMgd2VsbCBhbmQgaGFzIG5lZ2xpYmxlIGNvc3QuCiAgICAgICAgICogcmVtb3ZlZCBub2RhdGF2YWx1ZS4gQmVjYXVzZSBMRVJDMiBwaXhlbHMgYXJlIHR5cGVkLCBub2RhdGF2YWx1ZSB3aWxsIHNhY3JpZnkgYSB1c2VmdWwgdmFsdWUgZm9yIG1hbnkgdHlwZXMgKDhiaXQsIDE2Yml0KSBldGMsCiAgICAgICAgICogICAgICAgdXNlciBoYXMgdG8gYmUga25vd2xlZGdhYmxlIGVub3VnaCBhYm91dCByYXN0ZXIgYW5kIHRoZWlyIGRhdGEgdG8gYXZvaWQgdXNhYmlsaXR5IGlzc3Vlcy4gc28gbm9kYXRhIHZhbHVlIGlzIHNpbXBseSByZW1vdmVkIG5vdy4KICAgICAgICAgKiAgICAgICBXZSBjYW4gYWRkIGl0IGJhY2sgbGF0ZXIgaWYgdGhlaXIncyBhIGNsZWFyIHJlcXVpcmVtZW50LgogICAgICAgICAqIHJlbW92ZWQgZW5jb2RlZE1hc2suIFRoaXMgb3B0aW9uIHdhcyBub3QgaW1wbGVtZW50ZWQgaW4gTGVyY0RlY29kZS4gSXQgY2FuIGJlIGRvbmUgYWZ0ZXIgZGVjb2RpbmcgKGxlc3MgZWZmaWNpZW50KQogICAgICAgICAqIHJlbW92ZWQgY29tcHV0ZVVzZWRCaXREZXB0aHMuCiAgICAgICAgICoKICAgICAgICAgKgogICAgICAgICAqIHJlc3BvbnNlIGNoYW5nZXMgY29tcGFyZWQgdG8gTEVSQzEKICAgICAgICAgKiAxLiBlbmNvZGVkTWFza0RhdGEgaXMgbm90IGF2YWlsYWJsZQogICAgICAgICAqIDIuIG5vRGF0YVZhbHVlIGlzIG9wdGlvbmFsIChyZXR1cm5zIG9ubHkgaWYgdXNlcidzIG5vRGF0YVZhbHVlIGlzIHdpdGggaW4gdGhlIHZhbGlkIGRhdGEgdHlwZSByYW5nZSkKICAgICAgICAgKiAzLiBtYXNrRGF0YSBpcyBhbHdheXMgYXZhaWxhYmxlCiAgICAgICAgKi8KICAgICAgICAvKioqKioqKioqKioqKioqKioKICAgICAgICAqICBwdWJsaWMgcHJvcGVydGllcwogICAgICAgICoqKioqKioqKioqKioqKioqKi8KICAgICAgICAvL0hVRkZNQU5fTFVUX0JJVFNfTUFYOiAxMiwgLy91c2UgMl4xMiBsdXQsIG5vdCBjb25maWd1cmFibGUKCiAgICAgICAgLyoqKioqKioqKioqKioqKioqCiAgICAgICAgKiAgcHVibGljIG1ldGhvZHMKICAgICAgICAqKioqKioqKioqKioqKioqKi8KCiAgICAgICAgLyoqCiAgICAgICAgICogRGVjb2RlIGEgTEVSQzIgYnl0ZSBzdHJlYW0gYW5kIHJldHVybiBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcGl4ZWwgZGF0YSBhbmQgb3B0aW9uYWwgbWV0YWRhdGEuCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBpbnB1dCBUaGUgTEVSQyBpbnB1dCBieXRlIHN0cmVhbQogICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gb3B0aW9ucyBEZWNvZGluZyBvcHRpb25zCiAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLmlucHV0T2Zmc2V0XSBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgaW4gdGhlIGlucHV0IGJ5dGUgc3RyZWFtLiBBIHZhbGlkIExFUkMgZmlsZSBpcyBleHBlY3RlZCBhdCB0aGF0IHBvc2l0aW9uCiAgICAgICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5yZXR1cm5GaWxlSW5mb10gSWYgdHJ1ZSwgdGhlIHJldHVybiB2YWx1ZSB3aWxsIGhhdmUgYSBmaWxlSW5mbyBwcm9wZXJ0eSB0aGF0IGNvbnRhaW5zIG1ldGFkYXRhIG9idGFpbmVkIGZyb20gdGhlIExFUkMgaGVhZGVycyBhbmQgdGhlIGRlY29kaW5nIHByb2Nlc3MKICAgICAgICAgKi8KICAgICAgICBkZWNvZGU6IGZ1bmN0aW9uKC8qYnl0ZSBhcnJheSovIGlucHV0LCAvKm9iamVjdCovIG9wdGlvbnMpIHsKICAgICAgICAgIC8vY3VycmVudGx5IHRoZXJlJ3MgYSBidWcgaW4gdGhlIHNwYXJzZSBhcnJheSwgc28gcGxlYXNlIGRvIG5vdCBzZXQgdG8gZmFsc2UKICAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgICAgdmFyIG5vRGF0YVZhbHVlID0gb3B0aW9ucy5ub0RhdGFWYWx1ZTsKCiAgICAgICAgICAvL2luaXRpYWxpemUKICAgICAgICAgIHZhciBpID0gMCwgZGF0YSA9IHt9OwogICAgICAgICAgZGF0YS5wdHIgPSBvcHRpb25zLmlucHV0T2Zmc2V0IHx8IDA7CiAgICAgICAgICBkYXRhLnBpeGVscyA9IHt9OwoKICAgICAgICAgIC8vIEZpbGUgaGVhZGVyCiAgICAgICAgICBpZiAoIUxlcmMySGVscGVycy5yZWFkSGVhZGVySW5mbyhpbnB1dCwgZGF0YSkpIDsKICAgICAgICAgIHZhciBoZWFkZXJJbmZvID0gZGF0YS5oZWFkZXJJbmZvOwogICAgICAgICAgdmFyIGZpbGVWZXJzaW9uID0gaGVhZGVySW5mby5maWxlVmVyc2lvbjsKICAgICAgICAgIHZhciBPdXRQaXhlbFR5cGVBcnJheSA9IExlcmMySGVscGVycy5nZXREYXRhVHlwZUFycmF5KGhlYWRlckluZm8uaW1hZ2VUeXBlKTsKCiAgICAgICAgICAvLyBNYXNrIEhlYWRlcgogICAgICAgICAgTGVyYzJIZWxwZXJzLnJlYWRNYXNrKGlucHV0LCBkYXRhKTsKICAgICAgICAgIGlmIChoZWFkZXJJbmZvLm51bVZhbGlkUGl4ZWwgIT09IGhlYWRlckluZm8ud2lkdGggKiBoZWFkZXJJbmZvLmhlaWdodCAmJiAhZGF0YS5waXhlbHMucmVzdWx0TWFzaykgewogICAgICAgICAgICBkYXRhLnBpeGVscy5yZXN1bHRNYXNrID0gb3B0aW9ucy5tYXNrRGF0YTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgbnVtUGl4ZWxzID0gaGVhZGVySW5mby53aWR0aCAqIGhlYWRlckluZm8uaGVpZ2h0OwogICAgICAgICAgZGF0YS5waXhlbHMucmVzdWx0UGl4ZWxzID0gbmV3IE91dFBpeGVsVHlwZUFycmF5KG51bVBpeGVscyAqIGhlYWRlckluZm8ubnVtRGltcyk7CgogICAgICAgICAgZGF0YS5jb3VudGVyID0gewogICAgICAgICAgICBvbmVzd2VlcDogMCwKICAgICAgICAgICAgdW5jb21wcmVzc2VkOiAwLAogICAgICAgICAgICBsdXQ6IDAsCiAgICAgICAgICAgIGJpdHN0dWZmZXI6IDAsCiAgICAgICAgICAgIGNvbnN0YW50OiAwLAogICAgICAgICAgICBjb25zdGFudG9mZnNldDogMAogICAgICAgICAgfTsKICAgICAgICAgIGlmIChoZWFkZXJJbmZvLm51bVZhbGlkUGl4ZWwgIT09IDApIHsKICAgICAgICAgICAgLy9ub3QgdGVzdGVkCiAgICAgICAgICAgIGlmIChoZWFkZXJJbmZvLnpNYXggPT09IGhlYWRlckluZm8uek1pbikgLy9jb25zdGFudCBzdXJmYWNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBMZXJjMkhlbHBlcnMuY29uc3RydWN0Q29uc3RhbnRTdXJmYWNlKGRhdGEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKGZpbGVWZXJzaW9uID49IDQgJiYgTGVyYzJIZWxwZXJzLmNoZWNrTWluTWF4UmFuZ2VzKGlucHV0LCBkYXRhKSkgewogICAgICAgICAgICAgIExlcmMySGVscGVycy5jb25zdHJ1Y3RDb25zdGFudFN1cmZhY2UoZGF0YSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgRGF0YVZpZXcoaW5wdXQsIGRhdGEucHRyLCAyKTsKICAgICAgICAgICAgICB2YXIgYlJlYWREYXRhT25lU3dlZXAgPSB2aWV3LmdldFVpbnQ4KDApOwogICAgICAgICAgICAgIGRhdGEucHRyKys7CiAgICAgICAgICAgICAgaWYgKGJSZWFkRGF0YU9uZVN3ZWVwKSB7CiAgICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoIk9uZVN3ZWVwIik7CiAgICAgICAgICAgICAgICBMZXJjMkhlbHBlcnMucmVhZERhdGFPbmVTd2VlcChpbnB1dCwgZGF0YSwgT3V0UGl4ZWxUeXBlQXJyYXkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vbGVyYzIuMTogLy9iaXRzdHVmZmluZyArIGx1dAogICAgICAgICAgICAgICAgLy9sZXJjMi4yOiAvL2JpdHN0dWZmaW5nICsgbHV0ICsgaHVmZm1hbgogICAgICAgICAgICAgICAgLy9sZXJjMi4zOiBuZXcgYml0c3R1ZmZlcgogICAgICAgICAgICAgICAgaWYgKGZpbGVWZXJzaW9uID4gMSAmJiBoZWFkZXJJbmZvLmltYWdlVHlwZSA8PSAxICYmIE1hdGguYWJzKGhlYWRlckluZm8ubWF4WkVycm9yIC0gMC41KSA8IDAuMDAwMDEpIHsKICAgICAgICAgICAgICAgICAgLy90aGlzIGlzIDIueCBwbHVzIDggYml0ICh1bnNpZ25lZCBhbmQgc2lnbmVkKSBkYXRhLCBwb3NzaWJsaXR5IG9mIEh1ZmZtYW4KICAgICAgICAgICAgICAgICAgdmFyIGZsYWdIdWZmbWFuID0gdmlldy5nZXRVaW50OCgxKTsKICAgICAgICAgICAgICAgICAgZGF0YS5wdHIrKzsKICAgICAgICAgICAgICAgICAgZGF0YS5lbmNvZGVNb2RlID0gZmxhZ0h1ZmZtYW47CiAgICAgICAgICAgICAgICAgIGlmIChmbGFnSHVmZm1hbiA+IDIgfHwgKGZpbGVWZXJzaW9uIDwgNCAmJiBmbGFnSHVmZm1hbiA+IDEpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgIkludmFsaWQgSHVmZm1hbiBmbGFnICIgKyBmbGFnSHVmZm1hbjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAoZmxhZ0h1ZmZtYW4pIHsvLzEgLSBkZWx0YSBIdWZmbWFuLCAyIC0gSHVmZm1hbgogICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coIkh1ZmZtYW4iKTsKICAgICAgICAgICAgICAgICAgICBMZXJjMkhlbHBlcnMucmVhZEh1ZmZtYW4oaW5wdXQsIGRhdGEsIE91dFBpeGVsVHlwZUFycmF5KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJUaWxlcyIpOwogICAgICAgICAgICAgICAgICAgIExlcmMySGVscGVycy5yZWFkVGlsZXMoaW5wdXQsIGRhdGEsIE91dFBpeGVsVHlwZUFycmF5KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7IC8vbGVyYzIueCBub24tOCBiaXQgZGF0YQogICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJUaWxlcyIpOwogICAgICAgICAgICAgICAgICBMZXJjMkhlbHBlcnMucmVhZFRpbGVzKGlucHV0LCBkYXRhLCBPdXRQaXhlbFR5cGVBcnJheSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CgogICAgICAgICAgZGF0YS5lb2ZPZmZzZXQgPSBkYXRhLnB0cjsKICAgICAgICAgIHZhciBkaWZmOwogICAgICAgICAgaWYgKG9wdGlvbnMuaW5wdXRPZmZzZXQpIHsKICAgICAgICAgICAgZGlmZiA9IGRhdGEuaGVhZGVySW5mby5ibG9iU2l6ZSArIG9wdGlvbnMuaW5wdXRPZmZzZXQgLSBkYXRhLnB0cjsKICAgICAgICAgICAgaWYgKE1hdGguYWJzKGRpZmYpID49IDEpIHsKICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoImluY29ycmVjdCBlb2Y6IGRhdGFwdHIgIiArIGRhdGEucHRyICsgIiBvZmZzZXQgIiArIG9wdGlvbnMuaW5wdXRPZmZzZXQgKyAiIGJsb2JzaXplICIgKyBkYXRhLmhlYWRlckluZm8uYmxvYlNpemUgKyAiIGRpZmY6ICIgKyBkaWZmKTsKICAgICAgICAgICAgICBkYXRhLmVvZk9mZnNldCA9IG9wdGlvbnMuaW5wdXRPZmZzZXQgKyBkYXRhLmhlYWRlckluZm8uYmxvYlNpemU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICBkaWZmID0gZGF0YS5oZWFkZXJJbmZvLmJsb2JTaXplIC0gZGF0YS5wdHI7CiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkaWZmKSA+PSAxKSB7CiAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKCJpbmNvcnJlY3QgZmlyc3QgYmFuZCBlb2Y6IGRhdGFwdHIgIiArIGRhdGEucHRyICsgIiBibG9ic2l6ZSAiICsgZGF0YS5oZWFkZXJJbmZvLmJsb2JTaXplICsgIiBkaWZmOiAiICsgZGlmZik7CiAgICAgICAgICAgICAgZGF0YS5lb2ZPZmZzZXQgPSBkYXRhLmhlYWRlckluZm8uYmxvYlNpemU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgcmVzdWx0ID0gewogICAgICAgICAgICB3aWR0aDogaGVhZGVySW5mby53aWR0aCwKICAgICAgICAgICAgaGVpZ2h0OiBoZWFkZXJJbmZvLmhlaWdodCwKICAgICAgICAgICAgcGl4ZWxEYXRhOiBkYXRhLnBpeGVscy5yZXN1bHRQaXhlbHMsCiAgICAgICAgICAgIG1pblZhbHVlOiBoZWFkZXJJbmZvLnpNaW4sCiAgICAgICAgICAgIG1heFZhbHVlOiBoZWFkZXJJbmZvLnpNYXgsCiAgICAgICAgICAgIHZhbGlkUGl4ZWxDb3VudDogaGVhZGVySW5mby5udW1WYWxpZFBpeGVsLAogICAgICAgICAgICBkaW1Db3VudDogaGVhZGVySW5mby5udW1EaW1zLAogICAgICAgICAgICBkaW1TdGF0czogewogICAgICAgICAgICAgIG1pblZhbHVlczogaGVhZGVySW5mby5taW5WYWx1ZXMsCiAgICAgICAgICAgICAgbWF4VmFsdWVzOiBoZWFkZXJJbmZvLm1heFZhbHVlcwogICAgICAgICAgICB9LAogICAgICAgICAgICBtYXNrRGF0YTogZGF0YS5waXhlbHMucmVzdWx0TWFzawogICAgICAgICAgICAvL25vRGF0YVZhbHVlOiBub0RhdGFWYWx1ZQogICAgICAgICAgfTsKCiAgICAgICAgICAvL3dlIHNob3VsZCByZW1vdmUgdGhpcyBpZiB0aGVyZSdzIG5vIGV4aXN0aW5nIGNsaWVudAogICAgICAgICAgLy9vcHRpb25hbCBub0RhdGFWYWx1ZSBwcm9jZXNzaW5nLCBpdCdzIHVzZXIncyByZXNwb25zaWJsaXR5CiAgICAgICAgICBpZiAoZGF0YS5waXhlbHMucmVzdWx0TWFzayAmJiBMZXJjMkhlbHBlcnMuaXNWYWxpZFBpeGVsVmFsdWUoaGVhZGVySW5mby5pbWFnZVR5cGUsIG5vRGF0YVZhbHVlKSkgewogICAgICAgICAgICB2YXIgbWFzayA9IGRhdGEucGl4ZWxzLnJlc3VsdE1hc2s7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1QaXhlbHM7IGkrKykgewogICAgICAgICAgICAgIGlmICghbWFza1tpXSkgewogICAgICAgICAgICAgICAgcmVzdWx0LnBpeGVsRGF0YVtpXSA9IG5vRGF0YVZhbHVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXN1bHQubm9EYXRhVmFsdWUgPSBub0RhdGFWYWx1ZTsKICAgICAgICAgIH0KICAgICAgICAgIGRhdGEubm9EYXRhVmFsdWUgPSBub0RhdGFWYWx1ZTsKICAgICAgICAgIGlmIChvcHRpb25zLnJldHVybkZpbGVJbmZvKSB7CiAgICAgICAgICAgIHJlc3VsdC5maWxlSW5mbyA9IExlcmMySGVscGVycy5mb3JtYXRGaWxlSW5mbyhkYXRhKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfSwKCiAgICAgICAgZ2V0QmFuZENvdW50OiBmdW5jdGlvbigvKmJ5dGUgYXJyYXkqLyBpbnB1dCkgewogICAgICAgICAgdmFyIGNvdW50ID0gMDsKICAgICAgICAgIHZhciBpID0gMDsKICAgICAgICAgIHZhciB0ZW1wID0ge307CiAgICAgICAgICB0ZW1wLnB0ciA9IDA7CiAgICAgICAgICB0ZW1wLnBpeGVscyA9IHt9OwogICAgICAgICAgd2hpbGUgKGkgPCBpbnB1dC5ieXRlTGVuZ3RoIC0gNTgpIHsKICAgICAgICAgICAgTGVyYzJIZWxwZXJzLnJlYWRIZWFkZXJJbmZvKGlucHV0LCB0ZW1wKTsKICAgICAgICAgICAgaSArPSB0ZW1wLmhlYWRlckluZm8uYmxvYlNpemU7CiAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgIHRlbXAucHRyID0gaTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBjb3VudDsKICAgICAgICB9CiAgICAgIH07CgogICAgICByZXR1cm4gTGVyYzJEZWNvZGU7CiAgICB9KSgpOwoKICAgIHZhciBpc1BsYXRmb3JtTGl0dGxlRW5kaWFuID0gKGZ1bmN0aW9uKCkgewogICAgICB2YXIgYSA9IG5ldyBBcnJheUJ1ZmZlcig0KTsKICAgICAgdmFyIGIgPSBuZXcgVWludDhBcnJheShhKTsKICAgICAgdmFyIGMgPSBuZXcgVWludDMyQXJyYXkoYSk7CiAgICAgIGNbMF0gPSAxOwogICAgICByZXR1cm4gYlswXSA9PT0gMTsKICAgIH0pKCk7CgogICAgdmFyIExlcmMgPSB7CiAgICAgIC8qKioqKioqKioqKip3cmFwcGVyKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICAgICAgLyoqCiAgICAgICAqIEEgd3JhcHBlciBmb3IgZGVjb2RpbmcgYm90aCBMRVJDMSBhbmQgTEVSQzIgYnl0ZSBzdHJlYW1zIGNhcGFibGUgb2YgaGFuZGxpbmcgbXVsdGliYW5kIHBpeGVsIGJsb2NrcyBmb3IgdmFyaW91cyBwaXhlbCB0eXBlcy4KICAgICAgICoKICAgICAgICogQGFsaWFzIG1vZHVsZTpMZXJjCiAgICAgICAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGlucHV0IFRoZSBMRVJDIGlucHV0IGJ5dGUgc3RyZWFtCiAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gVGhlIGRlY29kaW5nIG9wdGlvbnMgYmVsb3cgYXJlIG9wdGlvbmFsLgogICAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuaW5wdXRPZmZzZXRdIFRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gc2tpcCBpbiB0aGUgaW5wdXQgYnl0ZSBzdHJlYW0uIEEgdmFsaWQgTGVyYyBmaWxlIGlzIGV4cGVjdGVkIGF0IHRoYXQgcG9zaXRpb24uCiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5waXhlbFR5cGVdIChMRVJDMSBvbmx5KSBEZWZhdWx0IHZhbHVlIGlzIEYzMi4gVmFsaWQgcGl4ZWwgdHlwZXMgZm9yIGlucHV0IGFyZSBVOC9TOC9TMTYvVTE2L1MzMi9VMzIvRjMyLgogICAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubm9EYXRhVmFsdWVdIChMRVJDMSBvbmx5KS4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRoZSByZXR1cm5lZCBtYXNrIGluc3RlYWQgb2Ygc2V0dGluZyB0aGlzIHZhbHVlLgogICAgICAgKiBAcmV0dXJucyB7e3dpZHRoLCBoZWlnaHQsIHBpeGVscywgcGl4ZWxUeXBlLCBtYXNrLCBzdGF0aXN0aWNzfX0KICAgICAgICAgKiBAcHJvcGVydHkge251bWJlcn0gd2lkdGggV2lkdGggb2YgZGVjb2RlZCBpbWFnZS4KICAgICAgICAgKiBAcHJvcGVydHkge251bWJlcn0gaGVpZ2h0IEhlaWdodCBvZiBkZWNvZGVkIGltYWdlLgogICAgICAgICAqIEBwcm9wZXJ0eSB7YXJyYXl9IHBpeGVscyBbYmFuZDEsIGJhbmQyLCDigKZdIEVhY2ggYmFuZCBpcyBhIHR5cGVkIGFycmF5IG9mIHdpZHRoKmhlaWdodC4KICAgICAgICAgKiBAcHJvcGVydHkge3N0cmluZ30gcGl4ZWxUeXBlIFRoZSB0eXBlIG9mIHBpeGVscyByZXByZXNlbnRlZCBpbiB0aGUgb3V0cHV0LgogICAgICAgICAqIEBwcm9wZXJ0eSB7bWFza30gbWFzayBUeXBlZCBhcnJheSB3aXRoIGEgc2l6ZSBvZiB3aWR0aCpoZWlnaHQsIG9yIG51bGwgaWYgYWxsIHBpeGVscyBhcmUgdmFsaWQuCiAgICAgICAgICogQHByb3BlcnR5IHthcnJheX0gc3RhdGlzdGljcyBbc3RhdGlzdGljc19iYW5kMSwgc3RhdGlzdGljc19iYW5kMiwg4oCmXSBFYWNoIGVsZW1lbnQgaXMgYSBzdGF0aXN0aWNzIG9iamVjdCByZXByZXNlbnRpbmcgbWluIGFuZCBtYXggdmFsdWVzCiAgICAgICoqLwogICAgICBkZWNvZGU6IGZ1bmN0aW9uKGVuY29kZWREYXRhLCBvcHRpb25zKSB7CiAgICAgICAgaWYgKCFpc1BsYXRmb3JtTGl0dGxlRW5kaWFuKSB7CiAgICAgICAgICB0aHJvdyAiQmlnIGVuZGlhbiBzeXN0ZW0gaXMgbm90IHN1cHBvcnRlZC4iOwogICAgICAgIH0KICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKICAgICAgICB2YXIgaW5wdXRPZmZzZXQgPSBvcHRpb25zLmlucHV0T2Zmc2V0IHx8IDA7CiAgICAgICAgdmFyIGZpbGVJZFZpZXcgPSBuZXcgVWludDhBcnJheShlbmNvZGVkRGF0YSwgaW5wdXRPZmZzZXQsIDEwKTsKICAgICAgICB2YXIgZmlsZUlkZW50aWZpZXJTdHJpbmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGZpbGVJZFZpZXcpOwogICAgICAgIHZhciBsZXJjLCBtYWpvclZlcnNpb247CiAgICAgICAgaWYgKGZpbGVJZGVudGlmaWVyU3RyaW5nLnRyaW0oKSA9PT0gIkNudFpJbWFnZSIpIHsKICAgICAgICAgIGxlcmMgPSBMZXJjRGVjb2RlOwogICAgICAgICAgbWFqb3JWZXJzaW9uID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoZmlsZUlkZW50aWZpZXJTdHJpbmcuc3Vic3RyaW5nKDAsIDUpID09PSAiTGVyYzIiKSB7CiAgICAgICAgICBsZXJjID0gTGVyYzJEZWNvZGU7CiAgICAgICAgICBtYWpvclZlcnNpb24gPSAyOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgIHRocm93ICJVbmV4cGVjdGVkIGZpbGUgaWRlbnRpZmllciBzdHJpbmc6ICIgKyBmaWxlSWRlbnRpZmllclN0cmluZzsKICAgICAgICB9CgogICAgICAgIHZhciBpUGxhbmUgPSAwLCBlb2YgPSBlbmNvZGVkRGF0YS5ieXRlTGVuZ3RoIC0gMTAsIGVuY29kZWRNYXNrRGF0YSwgYmFuZE1hc2tzID0gW10sIGJhbmRNYXNrLCBtYXNrRGF0YTsKICAgICAgICB2YXIgZGVjb2RlZFBpeGVsQmxvY2sgPSB7CiAgICAgICAgICB3aWR0aDogMCwKICAgICAgICAgIGhlaWdodDogMCwKICAgICAgICAgIHBpeGVsczogW10sCiAgICAgICAgICBwaXhlbFR5cGU6IG9wdGlvbnMucGl4ZWxUeXBlLAogICAgICAgICAgbWFzazogbnVsbCwKICAgICAgICAgIHN0YXRpc3RpY3M6IFtdCiAgICAgICAgfTsKCiAgICAgICAgd2hpbGUgKGlucHV0T2Zmc2V0IDwgZW9mKSB7CiAgICAgICAgICB2YXIgcmVzdWx0ID0gbGVyYy5kZWNvZGUoZW5jb2RlZERhdGEsIHsKICAgICAgICAgICAgaW5wdXRPZmZzZXQ6IGlucHV0T2Zmc2V0LC8vZm9yIGJvdGggbGVyYzEgYW5kIGxlcmMyCiAgICAgICAgICAgIGVuY29kZWRNYXNrRGF0YTogZW5jb2RlZE1hc2tEYXRhLC8vbGVyYzEgb25seQogICAgICAgICAgICBtYXNrRGF0YTogbWFza0RhdGEsLy9sZXJjMiBvbmx5CiAgICAgICAgICAgIHJldHVybk1hc2s6IGlQbGFuZSA9PT0gMCA/IHRydWUgOiBmYWxzZSwvL2xlcmMxIG9ubHkKICAgICAgICAgICAgcmV0dXJuRW5jb2RlZE1hc2s6IGlQbGFuZSA9PT0gMCA/IHRydWUgOiBmYWxzZSwvL2xlcmMxIG9ubHkKICAgICAgICAgICAgcmV0dXJuRmlsZUluZm86IHRydWUsLy9mb3IgYm90aCBsZXJjMSBhbmQgbGVyYzIKICAgICAgICAgICAgcGl4ZWxUeXBlOiBvcHRpb25zLnBpeGVsVHlwZSB8fCBudWxsLC8vbGVyYzEgb25seQogICAgICAgICAgICBub0RhdGFWYWx1ZTogb3B0aW9ucy5ub0RhdGFWYWx1ZSB8fCBudWxsLy9sZXJjMSBvbmx5CiAgICAgICAgICB9KTsKCiAgICAgICAgICBpbnB1dE9mZnNldCA9IHJlc3VsdC5maWxlSW5mby5lb2ZPZmZzZXQ7CiAgICAgICAgICBpZiAoaVBsYW5lID09PSAwKSB7CiAgICAgICAgICAgIGVuY29kZWRNYXNrRGF0YSA9IHJlc3VsdC5lbmNvZGVkTWFza0RhdGE7Ly9sZXJjMQogICAgICAgICAgICBtYXNrRGF0YSA9IHJlc3VsdC5tYXNrRGF0YTsvL2xlcmMyCiAgICAgICAgICAgIGRlY29kZWRQaXhlbEJsb2NrLndpZHRoID0gcmVzdWx0LndpZHRoOwogICAgICAgICAgICBkZWNvZGVkUGl4ZWxCbG9jay5oZWlnaHQgPSByZXN1bHQuaGVpZ2h0OwogICAgICAgICAgICBkZWNvZGVkUGl4ZWxCbG9jay5kaW1Db3VudCA9IHJlc3VsdC5kaW1Db3VudCB8fCAxOwogICAgICAgICAgICAvL2RlY29kZWRQaXhlbEJsb2NrLmRpbVN0YXRzID0gZGVjb2RlZFBpeGVsQmxvY2suZGltU3RhdHM7CiAgICAgICAgICAgIGRlY29kZWRQaXhlbEJsb2NrLnBpeGVsVHlwZSA9IHJlc3VsdC5waXhlbFR5cGUgfHwgcmVzdWx0LmZpbGVJbmZvLnBpeGVsVHlwZTsKICAgICAgICAgICAgZGVjb2RlZFBpeGVsQmxvY2subWFzayA9IHJlc3VsdC5tYXNrRGF0YTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChtYWpvclZlcnNpb24gPjEgJiYgcmVzdWx0LmZpbGVJbmZvLm1hc2sgJiYgcmVzdWx0LmZpbGVJbmZvLm1hc2subnVtQnl0ZXMgPiAwKSB7CiAgICAgICAgICAgIGJhbmRNYXNrcy5wdXNoKHJlc3VsdC5tYXNrRGF0YSk7CiAgICAgICAgICB9CgogICAgICAgICAgaVBsYW5lKys7CiAgICAgICAgICBkZWNvZGVkUGl4ZWxCbG9jay5waXhlbHMucHVzaChyZXN1bHQucGl4ZWxEYXRhKTsKICAgICAgICAgIGRlY29kZWRQaXhlbEJsb2NrLnN0YXRpc3RpY3MucHVzaCh7CiAgICAgICAgICAgIG1pblZhbHVlOiByZXN1bHQubWluVmFsdWUsCiAgICAgICAgICAgIG1heFZhbHVlOiByZXN1bHQubWF4VmFsdWUsCiAgICAgICAgICAgIG5vRGF0YVZhbHVlOiByZXN1bHQubm9EYXRhVmFsdWUsCiAgICAgICAgICAgIGRpbVN0YXRzOiByZXN1bHQuZGltU3RhdHMKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICB2YXIgaSwgaiwgbnVtUGl4ZWxzOwogICAgICAgIGlmIChtYWpvclZlcnNpb24gPiAxICYmIGJhbmRNYXNrcy5sZW5ndGggPiAxKSB7CiAgICAgICAgICBudW1QaXhlbHMgPSBkZWNvZGVkUGl4ZWxCbG9jay53aWR0aCAqIGRlY29kZWRQaXhlbEJsb2NrLmhlaWdodDsKICAgICAgICAgIGRlY29kZWRQaXhlbEJsb2NrLmJhbmRNYXNrcyA9IGJhbmRNYXNrczsKICAgICAgICAgIG1hc2tEYXRhID0gbmV3IFVpbnQ4QXJyYXkobnVtUGl4ZWxzKTsKICAgICAgICAgIG1hc2tEYXRhLnNldChiYW5kTWFza3NbMF0pOwogICAgICAgICAgZm9yIChpID0gMTsgaSA8IGJhbmRNYXNrcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBiYW5kTWFzayA9IGJhbmRNYXNrc1tpXTsKICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IG51bVBpeGVsczsgaisrKSB7CiAgICAgICAgICAgICAgbWFza0RhdGFbal0gPSBtYXNrRGF0YVtqXSAmIGJhbmRNYXNrW2pdOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBkZWNvZGVkUGl4ZWxCbG9jay5tYXNrRGF0YSA9IG1hc2tEYXRhOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGRlY29kZWRQaXhlbEJsb2NrOwogICAgICB9CiAgICB9OwoKICAgIGlmIChtb2R1bGUuZXhwb3J0cykgey8qIGpzaGludCBpZ25vcmU6bGluZSAqLwogICAgICAvL2NvbW1vbkpTIG1vZHVsZSAxLjAvMS4xLzEuMS4xIHN5c3RlbXMsIHN1Y2ggYXMgbm9kZUpTCiAgICAgIC8vaHR0cDovL3dpa2kuY29tbW9uanMub3JnL3dpa2kvTW9kdWxlcwogICAgICBtb2R1bGUuZXhwb3J0cyA9IExlcmM7LyoganNoaW50IGlnbm9yZTpsaW5lICovCiAgICB9CiAgICBlbHNlIHsKICAgICAgLy9hc3NpZ24gdG8gdGhpcywgbW9zdCBsaWtlbHkgd2luZG93CiAgICAgIHRoaXMuTGVyYyA9IExlcmM7CiAgICB9CgogIH0pKCk7CiAgfShMZXJjRGVjb2RlKSk7CgogIHZhciBMZXJjID0gTGVyY0RlY29kZS5leHBvcnRzOwoKICBjb25zdCBmaWVsZFRhZ05hbWVzID0gewogICAgLy8gVElGRiBCYXNlbGluZQogICAgMHgwMTNCOiAnQXJ0aXN0JywKICAgIDB4MDEwMjogJ0JpdHNQZXJTYW1wbGUnLAogICAgMHgwMTA5OiAnQ2VsbExlbmd0aCcsCiAgICAweDAxMDg6ICdDZWxsV2lkdGgnLAogICAgMHgwMTQwOiAnQ29sb3JNYXAnLAogICAgMHgwMTAzOiAnQ29tcHJlc3Npb24nLAogICAgMHg4Mjk4OiAnQ29weXJpZ2h0JywKICAgIDB4MDEzMjogJ0RhdGVUaW1lJywKICAgIDB4MDE1MjogJ0V4dHJhU2FtcGxlcycsCiAgICAweDAxMEE6ICdGaWxsT3JkZXInLAogICAgMHgwMTIxOiAnRnJlZUJ5dGVDb3VudHMnLAogICAgMHgwMTIwOiAnRnJlZU9mZnNldHMnLAogICAgMHgwMTIzOiAnR3JheVJlc3BvbnNlQ3VydmUnLAogICAgMHgwMTIyOiAnR3JheVJlc3BvbnNlVW5pdCcsCiAgICAweDAxM0M6ICdIb3N0Q29tcHV0ZXInLAogICAgMHgwMTBFOiAnSW1hZ2VEZXNjcmlwdGlvbicsCiAgICAweDAxMDE6ICdJbWFnZUxlbmd0aCcsCiAgICAweDAxMDA6ICdJbWFnZVdpZHRoJywKICAgIDB4MDEwRjogJ01ha2UnLAogICAgMHgwMTE5OiAnTWF4U2FtcGxlVmFsdWUnLAogICAgMHgwMTE4OiAnTWluU2FtcGxlVmFsdWUnLAogICAgMHgwMTEwOiAnTW9kZWwnLAogICAgMHgwMEZFOiAnTmV3U3ViZmlsZVR5cGUnLAogICAgMHgwMTEyOiAnT3JpZW50YXRpb24nLAogICAgMHgwMTA2OiAnUGhvdG9tZXRyaWNJbnRlcnByZXRhdGlvbicsCiAgICAweDAxMUM6ICdQbGFuYXJDb25maWd1cmF0aW9uJywKICAgIDB4MDEyODogJ1Jlc29sdXRpb25Vbml0JywKICAgIDB4MDExNjogJ1Jvd3NQZXJTdHJpcCcsCiAgICAweDAxMTU6ICdTYW1wbGVzUGVyUGl4ZWwnLAogICAgMHgwMTMxOiAnU29mdHdhcmUnLAogICAgMHgwMTE3OiAnU3RyaXBCeXRlQ291bnRzJywKICAgIDB4MDExMTogJ1N0cmlwT2Zmc2V0cycsCiAgICAweDAwRkY6ICdTdWJmaWxlVHlwZScsCiAgICAweDAxMDc6ICdUaHJlc2hob2xkaW5nJywKICAgIDB4MDExQTogJ1hSZXNvbHV0aW9uJywKICAgIDB4MDExQjogJ1lSZXNvbHV0aW9uJywKCiAgICAvLyBUSUZGIEV4dGVuZGVkCiAgICAweDAxNDY6ICdCYWRGYXhMaW5lcycsCiAgICAweDAxNDc6ICdDbGVhbkZheERhdGEnLAogICAgMHgwMTU3OiAnQ2xpcFBhdGgnLAogICAgMHgwMTQ4OiAnQ29uc2VjdXRpdmVCYWRGYXhMaW5lcycsCiAgICAweDAxQjE6ICdEZWNvZGUnLAogICAgMHgwMUIyOiAnRGVmYXVsdEltYWdlQ29sb3InLAogICAgMHgwMTBEOiAnRG9jdW1lbnROYW1lJywKICAgIDB4MDE1MDogJ0RvdFJhbmdlJywKICAgIDB4MDE0MTogJ0hhbGZ0b25lSGludHMnLAogICAgMHgwMTVBOiAnSW5kZXhlZCcsCiAgICAweDAxNUI6ICdKUEVHVGFibGVzJywKICAgIDB4MDExRDogJ1BhZ2VOYW1lJywKICAgIDB4MDEyOTogJ1BhZ2VOdW1iZXInLAogICAgMHgwMTNEOiAnUHJlZGljdG9yJywKICAgIDB4MDEzRjogJ1ByaW1hcnlDaHJvbWF0aWNpdGllcycsCiAgICAweDAyMTQ6ICdSZWZlcmVuY2VCbGFja1doaXRlJywKICAgIDB4MDE1MzogJ1NhbXBsZUZvcm1hdCcsCiAgICAweDAxNTQ6ICdTTWluU2FtcGxlVmFsdWUnLAogICAgMHgwMTU1OiAnU01heFNhbXBsZVZhbHVlJywKICAgIDB4MDIyRjogJ1N0cmlwUm93Q291bnRzJywKICAgIDB4MDE0QTogJ1N1YklGRHMnLAogICAgMHgwMTI0OiAnVDRPcHRpb25zJywKICAgIDB4MDEyNTogJ1Q2T3B0aW9ucycsCiAgICAweDAxNDU6ICdUaWxlQnl0ZUNvdW50cycsCiAgICAweDAxNDM6ICdUaWxlTGVuZ3RoJywKICAgIDB4MDE0NDogJ1RpbGVPZmZzZXRzJywKICAgIDB4MDE0MjogJ1RpbGVXaWR0aCcsCiAgICAweDAxMkQ6ICdUcmFuc2ZlckZ1bmN0aW9uJywKICAgIDB4MDEzRTogJ1doaXRlUG9pbnQnLAogICAgMHgwMTU4OiAnWENsaXBQYXRoVW5pdHMnLAogICAgMHgwMTFFOiAnWFBvc2l0aW9uJywKICAgIDB4MDIxMTogJ1lDYkNyQ29lZmZpY2llbnRzJywKICAgIDB4MDIxMzogJ1lDYkNyUG9zaXRpb25pbmcnLAogICAgMHgwMjEyOiAnWUNiQ3JTdWJTYW1wbGluZycsCiAgICAweDAxNTk6ICdZQ2xpcFBhdGhVbml0cycsCiAgICAweDAxMUY6ICdZUG9zaXRpb24nLAoKICAgIC8vIEVYSUYKICAgIDB4OTIwMjogJ0FwZXJ0dXJlVmFsdWUnLAogICAgMHhBMDAxOiAnQ29sb3JTcGFjZScsCiAgICAweDkwMDQ6ICdEYXRlVGltZURpZ2l0aXplZCcsCiAgICAweDkwMDM6ICdEYXRlVGltZU9yaWdpbmFsJywKICAgIDB4ODc2OTogJ0V4aWYgSUZEJywKICAgIDB4OTAwMDogJ0V4aWZWZXJzaW9uJywKICAgIDB4ODI5QTogJ0V4cG9zdXJlVGltZScsCiAgICAweEEzMDA6ICdGaWxlU291cmNlJywKICAgIDB4OTIwOTogJ0ZsYXNoJywKICAgIDB4QTAwMDogJ0ZsYXNocGl4VmVyc2lvbicsCiAgICAweDgyOUQ6ICdGTnVtYmVyJywKICAgIDB4QTQyMDogJ0ltYWdlVW5pcXVlSUQnLAogICAgMHg5MjA4OiAnTGlnaHRTb3VyY2UnLAogICAgMHg5MjdDOiAnTWFrZXJOb3RlJywKICAgIDB4OTIwMTogJ1NodXR0ZXJTcGVlZFZhbHVlJywKICAgIDB4OTI4NjogJ1VzZXJDb21tZW50JywKCiAgICAvLyBJUFRDCiAgICAweDgzQkI6ICdJUFRDJywKCiAgICAvLyBJQ0MKICAgIDB4ODc3MzogJ0lDQyBQcm9maWxlJywKCiAgICAvLyBYTVAKICAgIDB4MDJCQzogJ1hNUCcsCgogICAgLy8gR0RBTAogICAgMHhBNDgwOiAnR0RBTF9NRVRBREFUQScsCiAgICAweEE0ODE6ICdHREFMX05PREFUQScsCgogICAgLy8gUGhvdG9zaG9wCiAgICAweDg2NDk6ICdQaG90b3Nob3AnLAoKICAgIC8vIEdlb1RpZmYKICAgIDB4ODMwRTogJ01vZGVsUGl4ZWxTY2FsZScsCiAgICAweDg0ODI6ICdNb2RlbFRpZXBvaW50JywKICAgIDB4ODVEODogJ01vZGVsVHJhbnNmb3JtYXRpb24nLAogICAgMHg4N0FGOiAnR2VvS2V5RGlyZWN0b3J5JywKICAgIDB4ODdCMDogJ0dlb0RvdWJsZVBhcmFtcycsCiAgICAweDg3QjE6ICdHZW9Bc2NpaVBhcmFtcycsCgogICAgLy8gTEVSQwogICAgMHhDNUYyOiAnTGVyY1BhcmFtZXRlcnMnLAogIH07CgogIGNvbnN0IGZpZWxkVGFncyA9IHt9OwogIGZvciAoY29uc3Qga2V5IGluIGZpZWxkVGFnTmFtZXMpIHsKICAgIGlmIChmaWVsZFRhZ05hbWVzLmhhc093blByb3BlcnR5KGtleSkpIHsKICAgICAgZmllbGRUYWdzW2ZpZWxkVGFnTmFtZXNba2V5XV0gPSBwYXJzZUludChrZXksIDEwKTsKICAgIH0KICB9CgogIFsKICAgIGZpZWxkVGFncy5CaXRzUGVyU2FtcGxlLAogICAgZmllbGRUYWdzLkV4dHJhU2FtcGxlcywKICAgIGZpZWxkVGFncy5TYW1wbGVGb3JtYXQsCiAgICBmaWVsZFRhZ3MuU3RyaXBCeXRlQ291bnRzLAogICAgZmllbGRUYWdzLlN0cmlwT2Zmc2V0cywKICAgIGZpZWxkVGFncy5TdHJpcFJvd0NvdW50cywKICAgIGZpZWxkVGFncy5UaWxlQnl0ZUNvdW50cywKICAgIGZpZWxkVGFncy5UaWxlT2Zmc2V0cywKICAgIGZpZWxkVGFncy5TdWJJRkRzLAogIF07CgogIGNvbnN0IGZpZWxkVHlwZU5hbWVzID0gewogICAgMHgwMDAxOiAnQllURScsCiAgICAweDAwMDI6ICdBU0NJSScsCiAgICAweDAwMDM6ICdTSE9SVCcsCiAgICAweDAwMDQ6ICdMT05HJywKICAgIDB4MDAwNTogJ1JBVElPTkFMJywKICAgIDB4MDAwNjogJ1NCWVRFJywKICAgIDB4MDAwNzogJ1VOREVGSU5FRCcsCiAgICAweDAwMDg6ICdTU0hPUlQnLAogICAgMHgwMDA5OiAnU0xPTkcnLAogICAgMHgwMDBBOiAnU1JBVElPTkFMJywKICAgIDB4MDAwQjogJ0ZMT0FUJywKICAgIDB4MDAwQzogJ0RPVUJMRScsCiAgICAvLyBJRkQgb2Zmc2V0LCBzdWdnZXN0ZWQgYnkgaHR0cHM6Ly9vd2wucGh5LnF1ZWVuc3UuY2EvfnBoaWwvZXhpZnRvb2wvc3RhbmRhcmRzLmh0bWwKICAgIDB4MDAwRDogJ0lGRCcsCiAgICAvLyBpbnRyb2R1Y2VkIGJ5IEJpZ1RJRkYKICAgIDB4MDAxMDogJ0xPTkc4JywKICAgIDB4MDAxMTogJ1NMT05HOCcsCiAgICAweDAwMTI6ICdJRkQ4JywKICB9OwoKICBjb25zdCBmaWVsZFR5cGVzID0ge307CiAgZm9yIChjb25zdCBrZXkgaW4gZmllbGRUeXBlTmFtZXMpIHsKICAgIGlmIChmaWVsZFR5cGVOYW1lcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7CiAgICAgIGZpZWxkVHlwZXNbZmllbGRUeXBlTmFtZXNba2V5XV0gPSBwYXJzZUludChrZXksIDEwKTsKICAgIH0KICB9CgogIGNvbnN0IExlcmNQYXJhbWV0ZXJzID0gewogICAgVmVyc2lvbjogMCwKICAgIEFkZENvbXByZXNzaW9uOiAxLAogIH07CgogIGNvbnN0IExlcmNBZGRDb21wcmVzc2lvbiA9IHsKICAgIE5vbmU6IDAsCiAgICBEZWZsYXRlOiAxLAogIH07CgoKICBjb25zdCBnZW9LZXlOYW1lcyA9IHsKICAgIDEwMjQ6ICdHVE1vZGVsVHlwZUdlb0tleScsCiAgICAxMDI1OiAnR1RSYXN0ZXJUeXBlR2VvS2V5JywKICAgIDEwMjY6ICdHVENpdGF0aW9uR2VvS2V5JywKICAgIDIwNDg6ICdHZW9ncmFwaGljVHlwZUdlb0tleScsCiAgICAyMDQ5OiAnR2VvZ0NpdGF0aW9uR2VvS2V5JywKICAgIDIwNTA6ICdHZW9nR2VvZGV0aWNEYXR1bUdlb0tleScsCiAgICAyMDUxOiAnR2VvZ1ByaW1lTWVyaWRpYW5HZW9LZXknLAogICAgMjA1MjogJ0dlb2dMaW5lYXJVbml0c0dlb0tleScsCiAgICAyMDUzOiAnR2VvZ0xpbmVhclVuaXRTaXplR2VvS2V5JywKICAgIDIwNTQ6ICdHZW9nQW5ndWxhclVuaXRzR2VvS2V5JywKICAgIDIwNTU6ICdHZW9nQW5ndWxhclVuaXRTaXplR2VvS2V5JywKICAgIDIwNTY6ICdHZW9nRWxsaXBzb2lkR2VvS2V5JywKICAgIDIwNTc6ICdHZW9nU2VtaU1ham9yQXhpc0dlb0tleScsCiAgICAyMDU4OiAnR2VvZ1NlbWlNaW5vckF4aXNHZW9LZXknLAogICAgMjA1OTogJ0dlb2dJbnZGbGF0dGVuaW5nR2VvS2V5JywKICAgIDIwNjA6ICdHZW9nQXppbXV0aFVuaXRzR2VvS2V5JywKICAgIDIwNjE6ICdHZW9nUHJpbWVNZXJpZGlhbkxvbmdHZW9LZXknLAogICAgMjA2MjogJ0dlb2dUT1dHUzg0R2VvS2V5JywKICAgIDMwNzI6ICdQcm9qZWN0ZWRDU1R5cGVHZW9LZXknLAogICAgMzA3MzogJ1BDU0NpdGF0aW9uR2VvS2V5JywKICAgIDMwNzQ6ICdQcm9qZWN0aW9uR2VvS2V5JywKICAgIDMwNzU6ICdQcm9qQ29vcmRUcmFuc0dlb0tleScsCiAgICAzMDc2OiAnUHJvakxpbmVhclVuaXRzR2VvS2V5JywKICAgIDMwNzc6ICdQcm9qTGluZWFyVW5pdFNpemVHZW9LZXknLAogICAgMzA3ODogJ1Byb2pTdGRQYXJhbGxlbDFHZW9LZXknLAogICAgMzA3OTogJ1Byb2pTdGRQYXJhbGxlbDJHZW9LZXknLAogICAgMzA4MDogJ1Byb2pOYXRPcmlnaW5Mb25nR2VvS2V5JywKICAgIDMwODE6ICdQcm9qTmF0T3JpZ2luTGF0R2VvS2V5JywKICAgIDMwODI6ICdQcm9qRmFsc2VFYXN0aW5nR2VvS2V5JywKICAgIDMwODM6ICdQcm9qRmFsc2VOb3J0aGluZ0dlb0tleScsCiAgICAzMDg0OiAnUHJvakZhbHNlT3JpZ2luTG9uZ0dlb0tleScsCiAgICAzMDg1OiAnUHJvakZhbHNlT3JpZ2luTGF0R2VvS2V5JywKICAgIDMwODY6ICdQcm9qRmFsc2VPcmlnaW5FYXN0aW5nR2VvS2V5JywKICAgIDMwODc6ICdQcm9qRmFsc2VPcmlnaW5Ob3J0aGluZ0dlb0tleScsCiAgICAzMDg4OiAnUHJvakNlbnRlckxvbmdHZW9LZXknLAogICAgMzA4OTogJ1Byb2pDZW50ZXJMYXRHZW9LZXknLAogICAgMzA5MDogJ1Byb2pDZW50ZXJFYXN0aW5nR2VvS2V5JywKICAgIDMwOTE6ICdQcm9qQ2VudGVyTm9ydGhpbmdHZW9LZXknLAogICAgMzA5MjogJ1Byb2pTY2FsZUF0TmF0T3JpZ2luR2VvS2V5JywKICAgIDMwOTM6ICdQcm9qU2NhbGVBdENlbnRlckdlb0tleScsCiAgICAzMDk0OiAnUHJvakF6aW11dGhBbmdsZUdlb0tleScsCiAgICAzMDk1OiAnUHJvalN0cmFpZ2h0VmVydFBvbGVMb25nR2VvS2V5JywKICAgIDMwOTY6ICdQcm9qUmVjdGlmaWVkR3JpZEFuZ2xlR2VvS2V5JywKICAgIDQwOTY6ICdWZXJ0aWNhbENTVHlwZUdlb0tleScsCiAgICA0MDk3OiAnVmVydGljYWxDaXRhdGlvbkdlb0tleScsCiAgICA0MDk4OiAnVmVydGljYWxEYXR1bUdlb0tleScsCiAgICA0MDk5OiAnVmVydGljYWxVbml0c0dlb0tleScsCiAgfTsKCiAgY29uc3QgZ2VvS2V5cyA9IHt9OwogIGZvciAoY29uc3Qga2V5IGluIGdlb0tleU5hbWVzKSB7CiAgICBpZiAoZ2VvS2V5TmFtZXMuaGFzT3duUHJvcGVydHkoa2V5KSkgewogICAgICBnZW9LZXlzW2dlb0tleU5hbWVzW2tleV1dID0gcGFyc2VJbnQoa2V5LCAxMCk7CiAgICB9CiAgfQoKICBjbGFzcyBMZXJjRGVjb2RlciBleHRlbmRzIEJhc2VEZWNvZGVyIHsKICAgIGNvbnN0cnVjdG9yKGZpbGVEaXJlY3RvcnkpIHsKICAgICAgc3VwZXIoKTsKCiAgICAgIHRoaXMucGxhbmFyQ29uZmlndXJhdGlvbiA9IHR5cGVvZiBmaWxlRGlyZWN0b3J5LlBsYW5hckNvbmZpZ3VyYXRpb24gIT09ICd1bmRlZmluZWQnID8gZmlsZURpcmVjdG9yeS5QbGFuYXJDb25maWd1cmF0aW9uIDogMTsKICAgICAgdGhpcy5zYW1wbGVzUGVyUGl4ZWwgPSB0eXBlb2YgZmlsZURpcmVjdG9yeS5TYW1wbGVzUGVyUGl4ZWwgIT09ICd1bmRlZmluZWQnID8gZmlsZURpcmVjdG9yeS5TYW1wbGVzUGVyUGl4ZWwgOiAxOwoKICAgICAgdGhpcy5hZGRDb21wcmVzc2lvbiA9IGZpbGVEaXJlY3RvcnkuTGVyY1BhcmFtZXRlcnNbTGVyY1BhcmFtZXRlcnMuQWRkQ29tcHJlc3Npb25dOwogICAgfQoKICAgIGludGVybGVhdmVQaXhlbHMoYmFuZEludGVybGVhdmVkRGF0YSkgewogICAgICBjb25zdCBwaXhlbEludGVybGVhdmVkRGF0YSA9IG5ldyBiYW5kSW50ZXJsZWF2ZWREYXRhLmNvbnN0cnVjdG9yKGJhbmRJbnRlcmxlYXZlZERhdGEubGVuZ3RoKTsKICAgICAgY29uc3QgbGVuZ3RoUGVyU2FtcGxlID0gYmFuZEludGVybGVhdmVkRGF0YS5sZW5ndGggLyB0aGlzLnNhbXBsZXNQZXJQaXhlbDsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGhQZXJTYW1wbGU7IGkrKykgewogICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5zYW1wbGVzUGVyUGl4ZWw7IGorKykgewogICAgICAgICAgcGl4ZWxJbnRlcmxlYXZlZERhdGFbaSAqIHRoaXMuc2FtcGxlc1BlclBpeGVsICsgal0gPSBiYW5kSW50ZXJsZWF2ZWREYXRhW2kgKyBqICogbGVuZ3RoUGVyU2FtcGxlXTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHBpeGVsSW50ZXJsZWF2ZWREYXRhOwogICAgfQoKICAgIGRlY29kZUJsb2NrKGJ1ZmZlcikgewogICAgICBzd2l0Y2ggKHRoaXMuYWRkQ29tcHJlc3Npb24pIHsKICAgICAgICBjYXNlIExlcmNBZGRDb21wcmVzc2lvbi5Ob25lOgogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBMZXJjQWRkQ29tcHJlc3Npb24uRGVmbGF0ZToKICAgICAgICAgIGJ1ZmZlciA9IGluZmxhdGVfMShuZXcgVWludDhBcnJheShidWZmZXIpKS5idWZmZXI7CiAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBMRVJDIGFkZGl0aW9uYWwgY29tcHJlc3Npb24gbWV0aG9kIGlkZW50aWZpZXI6ICR7dGhpcy5hZGRDb21wcmVzc2lvbn1gKTsKICAgICAgfQoKICAgICAgY29uc3QgbGVyY1Jlc3VsdCA9IExlcmMuZGVjb2RlKGJ1ZmZlcik7CiAgICAgIGNvbnN0IGxlcmNEYXRhID0gbGVyY1Jlc3VsdC5waXhlbHNbMF07IC8vIGFsd2F5cyBiYW5kLWludGVybGVhdmVkCiAgICAgIGNvbnN0IGRlY29kZWREYXRhID0gdGhpcy5wbGFuYXJDb25maWd1cmF0aW9uID09PSAxID8gdGhpcy5pbnRlcmxlYXZlUGl4ZWxzKGxlcmNEYXRhKSA6IGxlcmNEYXRhOyAvLyB0cmFuc2Zvcm0gdG8gcGl4ZWwtaW50ZXJsZWF2ZWQgaWYgZXhwZWN0ZWQKICAgICAgcmV0dXJuIGRlY29kZWREYXRhLmJ1ZmZlcjsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGdldERlY29kZXIoZmlsZURpcmVjdG9yeSkgewogICAgc3dpdGNoIChmaWxlRGlyZWN0b3J5LkNvbXByZXNzaW9uKSB7CiAgICAgIGNhc2UgdW5kZWZpbmVkOgogICAgICBjYXNlIDE6IC8vIG5vIGNvbXByZXNzaW9uCiAgICAgICAgcmV0dXJuIG5ldyBSYXdEZWNvZGVyKCk7CiAgICAgIGNhc2UgNTogLy8gTFpXCiAgICAgICAgcmV0dXJuIG5ldyBMWldEZWNvZGVyKGZpbGVEaXJlY3RvcnkpOwogICAgICBjYXNlIDY6IC8vIEpQRUcKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ29sZCBzdHlsZSBKUEVHIGNvbXByZXNzaW9uIGlzIG5vdCBzdXBwb3J0ZWQuJyk7CiAgICAgIGNhc2UgNzogLy8gSlBFRwogICAgICAgIHJldHVybiBuZXcgSnBlZ0RlY29kZXIoZmlsZURpcmVjdG9yeSk7CiAgICAgIGNhc2UgODogLy8gRGVmbGF0ZSBhcyByZWNvZ25pemVkIGJ5IEFkb2JlCiAgICAgIGNhc2UgMzI5NDY6IC8vIERlZmxhdGUgR0RBTCBkZWZhdWx0CiAgICAgICAgcmV0dXJuIG5ldyBEZWZsYXRlRGVjb2RlcigpOwogICAgICBjYXNlIDMyNzczOiAvLyBwYWNrYml0cwogICAgICAgIHJldHVybiBuZXcgUGFja2JpdHNEZWNvZGVyKCk7CiAgICAgIGNhc2UgMzQ4ODc6IC8vIExFUkMKICAgICAgICByZXR1cm4gbmV3IExlcmNEZWNvZGVyKGZpbGVEaXJlY3RvcnkpOwogICAgICBkZWZhdWx0OgogICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QgaWRlbnRpZmllcjogJHtmaWxlRGlyZWN0b3J5LkNvbXByZXNzaW9ufWApOwogICAgfQogIH0KCiAgYXN5bmMgZnVuY3Rpb24gZGVjb2RlKGZpbGVEaXJlY3RvcnksIGJ1ZmZlcikgewogICAgY29uc3QgZGVjb2RlciA9IGdldERlY29kZXIoZmlsZURpcmVjdG9yeSk7CiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWNvZGVyLmRlY29kZShmaWxlRGlyZWN0b3J5LCBidWZmZXIpOwogICAgc2VsZi5wb3N0TWVzc2FnZShyZXN1bHQsIFtyZXN1bHRdKTsKICB9CiAgaWYgKHR5cGVvZiBzZWxmICE9PSAidW5kZWZpbmVkIikgewogICAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CiAgICAgIGNvbnN0IFtuYW1lLCAuLi5hcmdzXSA9IGV2ZW50LmRhdGE7CiAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgIGNhc2UgImRlY29kZSI6CiAgICAgICAgICBkZWNvZGUoYXJnc1swXSwgYXJnc1sxXSk7CiAgICAgICAgICBicmVhazsKICAgICAgfQogICAgfSk7CiAgfQoKfSkoKTsK\";\n const blob = typeof window !== \"undefined\" && window.Blob && new Blob([atob(encodedJs)], { type: \"text/javascript;charset=utf-8\" });\n function WorkerWrapper() {\n const objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);\n try {\n return objURL ? new Worker(objURL) : new Worker(\"data:application/javascript;base64,\" + encodedJs, {type: \"module\"});\n } finally {\n objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);\n }\n }\n\nconst defaultPoolSize = globalThis?.navigator?.hardwareConcurrency ?? 4;\nclass Pool {\n workers;\n idleWorkers;\n waitQueue;\n decoder;\n constructor(size = defaultPoolSize) {\n this.workers = [];\n this.idleWorkers = [];\n this.waitQueue = [];\n this.decoder = null;\n for (let i = 0; i < size; ++i) {\n const w = new WorkerWrapper();\n this.workers.push(w);\n this.idleWorkers.push(w);\n }\n }\n async decode(fileDirectory, buffer) {\n const currentWorker = await this.waitForWorker();\n return new Promise((resolve, reject) => {\n currentWorker.onmessage = (event) => {\n this.finishTask(currentWorker);\n resolve(event.data);\n };\n currentWorker.onerror = (error) => {\n this.finishTask(currentWorker);\n reject(error);\n };\n currentWorker.postMessage([\"decode\", fileDirectory, buffer], [buffer]);\n });\n }\n async waitForWorker() {\n const idleWorker = this.idleWorkers.pop();\n if (idleWorker) {\n return idleWorker;\n }\n const waiter = {};\n const promise = new Promise((resolve) => {\n waiter.resolve = resolve;\n });\n this.waitQueue.push(waiter);\n return promise;\n }\n async finishTask(currentWorker) {\n const waiter = this.waitQueue.pop();\n if (waiter) {\n waiter.resolve(currentWorker);\n } else {\n this.idleWorkers.push(currentWorker);\n }\n }\n destroy() {\n for (let i = 0; i < this.workers.length; ++i) {\n this.workers[i].terminate();\n }\n }\n}\n\nconst PARSER_OPTIONS = {\n attributeNamePrefix: \"\",\n attrNodeName: \"attr\",\n parseNodeValue: true,\n parseAttributeValue: true,\n ignoreAttributes: false\n};\nconst parse = (str) => parser.parse(str, PARSER_OPTIONS);\nfunction fromString(str) {\n const res = parse(str);\n if (!res.OME) {\n throw Error(\"Failed to parse OME-XML metadata.\");\n }\n return ensureArray(res.OME.Image).map((img) => {\n const Channels = ensureArray(img.Pixels.Channel).map((c) => {\n if (\"Color\" in c.attr) {\n return {\n ...c.attr,\n Color: intToRgba(c.attr.Color)\n };\n }\n return {\n ...c.attr\n };\n });\n const {\n AquisitionDate = \"\",\n Description = \"\"\n } = img;\n const image = {\n ...img.attr,\n AquisitionDate,\n Description,\n Pixels: {\n ...img.Pixels.attr,\n Channels\n }\n };\n return {\n ...image,\n format() {\n const {\n Pixels\n } = image;\n const sizes = [\"X\", \"Y\", \"Z\"].map((name) => {\n const size = Pixels[`PhysicalSize${name}`];\n const unit = Pixels[`PhysicalSize${name}Unit`];\n return size && unit ? `${size} ${unit}` : \"-\";\n }).join(\" x \");\n return {\n \"Acquisition Date\": image.AquisitionDate,\n \"Dimensions (XY)\": `${Pixels.SizeX} x ${Pixels.SizeY}`,\n \"Pixels Type\": Pixels.Type,\n \"Pixels Size (XYZ)\": sizes,\n \"Z-sections/Timepoints\": `${Pixels.SizeZ} x ${Pixels.SizeT}`,\n Channels: Pixels.SizeC\n };\n }\n };\n });\n}\n\nclass TiffPixelSource {\n constructor(indexer, dtype, tileSize, shape, labels, meta, pool) {\n this.dtype = dtype;\n this.tileSize = tileSize;\n this.shape = shape;\n this.labels = labels;\n this.meta = meta;\n this.pool = pool;\n this._indexer = indexer;\n }\n _indexer;\n async getRaster({\n selection,\n signal\n }) {\n const image = await this._indexer(selection);\n return this._readRasters(image, {\n signal\n });\n }\n async getTile({\n x,\n y,\n selection,\n signal\n }) {\n const {\n height,\n width\n } = this._getTileExtent(x, y);\n const x0 = x * this.tileSize;\n const y0 = y * this.tileSize;\n const window = [x0, y0, x0 + width, y0 + height];\n const image = await this._indexer(selection);\n return this._readRasters(image, {\n window,\n width,\n height,\n signal\n });\n }\n async _readRasters(image, props) {\n const interleave = isInterleaved(this.shape);\n const raster = await image.readRasters({\n interleave,\n ...props,\n pool: this.pool\n });\n if (props?.signal?.aborted) {\n throw SIGNAL_ABORTED;\n }\n const data = interleave ? raster : raster[0];\n return {\n data,\n width: raster.width,\n height: raster.height\n };\n }\n _getTileExtent(x, y) {\n const {\n height: zoomLevelHeight,\n width: zoomLevelWidth\n } = getImageSize(this);\n let height = this.tileSize;\n let width = this.tileSize;\n const maxXTileCoord = Math.floor(zoomLevelWidth / this.tileSize);\n const maxYTileCoord = Math.floor(zoomLevelHeight / this.tileSize);\n if (x === maxXTileCoord) {\n width = zoomLevelWidth % this.tileSize;\n }\n if (y === maxYTileCoord) {\n height = zoomLevelHeight % this.tileSize;\n }\n return {\n height,\n width\n };\n }\n onTileError(err) {\n console.error(err);\n }\n}\n\nfunction getOmeLegacyIndexer(tiff, rootMeta) {\n const imgMeta = rootMeta[0];\n const {\n SizeT,\n SizeC,\n SizeZ\n } = imgMeta.Pixels;\n const ifdIndexer = getOmeIFDIndexer(imgMeta);\n return (sel, pyramidLevel) => {\n const index = ifdIndexer(sel);\n const pyramidIndex = pyramidLevel * SizeZ * SizeT * SizeC;\n return tiff.getImage(index + pyramidIndex);\n };\n}\nfunction getOmeSubIFDIndexer(tiff, rootMeta) {\n const imgMeta = rootMeta[0];\n const ifdIndexer = getOmeIFDIndexer(imgMeta);\n const ifdCache = new Map();\n return async (sel, pyramidLevel) => {\n const index = ifdIndexer(sel);\n const baseImage = await tiff.getImage(index);\n if (pyramidLevel === 0) {\n return baseImage;\n }\n const {\n SubIFDs\n } = baseImage.fileDirectory;\n if (!SubIFDs) {\n throw Error(\"Indexing Error: OME-TIFF is missing SubIFDs.\");\n }\n const key = `${sel.t}-${sel.c}-${sel.z}-${pyramidLevel}`;\n if (!ifdCache.has(key)) {\n const subIfdOffset = SubIFDs[pyramidLevel - 1];\n ifdCache.set(key, tiff.parseFileDirectoryAt(subIfdOffset));\n }\n const ifd = await ifdCache.get(key);\n return new baseImage.constructor(ifd.fileDirectory, ifd.geoKeyDirectory, tiff.dataView, tiff.littleEndian, tiff.cache, tiff.source);\n };\n}\nfunction getOmeIFDIndexer(imgMeta) {\n const {\n SizeC,\n SizeZ,\n SizeT,\n DimensionOrder\n } = imgMeta.Pixels;\n switch (DimensionOrder) {\n case \"XYZCT\": {\n return ({\n t,\n c,\n z\n }) => t * SizeZ * SizeC + c * SizeZ + z;\n }\n case \"XYZTC\": {\n return ({\n t,\n c,\n z\n }) => c * SizeZ * SizeT + t * SizeZ + z;\n }\n case \"XYCTZ\": {\n return ({\n t,\n c,\n z\n }) => z * SizeC * SizeT + t * SizeC + c;\n }\n case \"XYCZT\": {\n return ({\n t,\n c,\n z\n }) => t * SizeC * SizeZ + z * SizeC + c;\n }\n case \"XYTCZ\": {\n return ({\n t,\n c,\n z\n }) => z * SizeT * SizeC + c * SizeT + t;\n }\n case \"XYTZC\": {\n return ({\n t,\n c,\n z\n }) => c * SizeT * SizeZ + z * SizeT + t;\n }\n default: {\n throw new Error(`Invalid OME-XML DimensionOrder, got ${DimensionOrder}.`);\n }\n }\n}\n\nconst DTYPE_LOOKUP$1 = {\n uint8: \"Uint8\",\n uint16: \"Uint16\",\n uint32: \"Uint32\",\n float: \"Float32\",\n double: \"Float64\",\n int8: \"Int8\",\n int16: \"Int16\",\n int32: \"Int32\"\n};\nfunction getOmePixelSourceMeta({\n Pixels\n}) {\n const labels = getLabels(Pixels.DimensionOrder);\n const dims = getDims(labels);\n const shape = Array(labels.length).fill(0);\n shape[dims(\"t\")] = Pixels.SizeT;\n shape[dims(\"c\")] = Pixels.SizeC;\n shape[dims(\"z\")] = Pixels.SizeZ;\n if (Pixels.Interleaved) {\n labels.push(\"_c\");\n shape.push(3);\n }\n const getShape = (level) => {\n const s = [...shape];\n s[dims(\"x\")] = Pixels.SizeX >> level;\n s[dims(\"y\")] = Pixels.SizeY >> level;\n return s;\n };\n if (!(Pixels.Type in DTYPE_LOOKUP$1)) {\n throw Error(`Pixel type ${Pixels.Type} not supported.`);\n }\n const dtype = DTYPE_LOOKUP$1[Pixels.Type];\n if (Pixels.PhysicalSizeX && Pixels.PhysicalSizeY) {\n const physicalSizes = {\n x: {\n size: Pixels.PhysicalSizeX,\n unit: Pixels.PhysicalSizeXUnit\n },\n y: {\n size: Pixels.PhysicalSizeY,\n unit: Pixels.PhysicalSizeYUnit\n }\n };\n if (Pixels.PhysicalSizeZ) {\n physicalSizes.z = {\n size: Pixels.PhysicalSizeZ,\n unit: Pixels.PhysicalSizeZUnit\n };\n }\n return {\n labels,\n getShape,\n physicalSizes,\n dtype\n };\n }\n return {\n labels,\n getShape,\n dtype\n };\n}\nfunction guessTileSize$1(image) {\n const tileWidth = image.getTileWidth();\n const tileHeight = image.getTileHeight();\n const size = Math.min(tileWidth, tileHeight);\n return prevPowerOf2(size);\n}\n\nasync function load$2(tiff, pool) {\n const firstImage = await tiff.getImage(0);\n const {\n ImageDescription,\n SubIFDs,\n PhotometricInterpretation: photometricInterpretation\n } = firstImage.fileDirectory;\n const omexml = fromString(ImageDescription);\n let levels;\n let pyramidIndexer;\n if (SubIFDs) {\n levels = SubIFDs.length + 1;\n pyramidIndexer = getOmeSubIFDIndexer(tiff, omexml);\n } else {\n levels = omexml.length;\n pyramidIndexer = getOmeLegacyIndexer(tiff, omexml);\n }\n const imgMeta = omexml[0];\n const {\n labels,\n getShape,\n physicalSizes,\n dtype\n } = getOmePixelSourceMeta(imgMeta);\n const tileSize = guessTileSize$1(firstImage);\n const meta = {\n photometricInterpretation,\n physicalSizes\n };\n const data = Array.from({\n length: levels\n }).map((_, resolution) => {\n const shape = getShape(resolution);\n const indexer = (sel) => pyramidIndexer(sel, resolution);\n const source = new TiffPixelSource(indexer, dtype, tileSize, shape, labels, meta, pool);\n return source;\n });\n return {\n data,\n metadata: imgMeta\n };\n}\n\nasync function loadOmeTiff(source, opts = {}) {\n const {\n headers,\n offsets,\n pool = true\n } = opts;\n let tiff;\n if (typeof source === \"string\") {\n tiff = await fromUrl(source, {\n ...headers,\n cacheSize: Infinity\n });\n } else {\n tiff = await fromBlob(source);\n }\n if (offsets) {\n tiff = createOffsetsProxy(tiff, offsets);\n }\n checkProxies(tiff);\n return pool ? load$2(tiff, new Pool()) : load$2(tiff);\n}\n\nfunction joinUrlParts(...args) {\n return args.map((part, i) => {\n if (i === 0)\n return part.trim().replace(/[/]*$/g, \"\");\n return part.trim().replace(/(^[/]*|[/]*$)/g, \"\");\n }).filter((x) => x.length).join(\"/\");\n}\nclass ReadOnlyStore {\n async keys() {\n return [];\n }\n async deleteItem() {\n return false;\n }\n async setItem() {\n console.warn(\"Cannot write to read-only store.\");\n return false;\n }\n}\nclass FileStore extends ReadOnlyStore {\n _map;\n _rootPrefix;\n constructor(fileMap, rootPrefix = \"\") {\n super();\n this._map = fileMap;\n this._rootPrefix = rootPrefix;\n }\n _key(key) {\n return joinUrlParts(this._rootPrefix, key);\n }\n async getItem(key) {\n const file = this._map.get(this._key(key));\n if (!file) {\n throw new KeyError(key);\n }\n const buffer = await file.arrayBuffer();\n return buffer;\n }\n async containsItem(key) {\n const path = this._key(key);\n return this._map.has(path);\n }\n}\n\nfunction isOmeZarr(dataShape, Pixels) {\n const {\n SizeT,\n SizeC,\n SizeZ,\n SizeY,\n SizeX\n } = Pixels;\n const omeZarrShape = [SizeT, SizeC, SizeZ, SizeY, SizeX];\n return dataShape.every((size, i) => omeZarrShape[i] === size);\n}\nfunction guessBioformatsLabels({\n shape\n}, {\n Pixels\n}) {\n if (isOmeZarr(shape, Pixels)) {\n return getLabels(\"XYZCT\");\n }\n const labels = getLabels(Pixels.DimensionOrder);\n labels.forEach((lower, i) => {\n const label = lower.toUpperCase();\n const xmlSize = Pixels[`Size${label}`];\n if (!xmlSize) {\n throw Error(`Dimension ${label} is invalid for OME-XML.`);\n }\n if (shape[i] !== xmlSize) {\n throw Error(\"Dimension mismatch between zarr source and OME-XML.\");\n }\n });\n return labels;\n}\nfunction getRootPrefix(files, rootName) {\n const first = files.find((f) => f.path.indexOf(rootName) > 0);\n if (!first) {\n throw Error(\"Could not find root in store.\");\n }\n const prefixLength = first.path.indexOf(rootName) + rootName.length;\n return first.path.slice(0, prefixLength);\n}\nasync function loadMultiscales(store, path = \"\") {\n const grp = await openGroup(store, path);\n const rootAttrs = await grp.attrs.asObject();\n let paths = [\"0\"];\n let labels = [\"t\", \"c\", \"z\", \"y\", \"x\"];\n if (\"multiscales\" in rootAttrs) {\n const {\n datasets,\n axes\n } = rootAttrs.multiscales[0];\n paths = datasets.map((d) => d.path);\n if (axes) {\n labels = axes;\n }\n }\n const data = paths.map((path2) => grp.getItem(path2));\n return {\n data: await Promise.all(data),\n rootAttrs,\n labels\n };\n}\nfunction guessTileSize(arr) {\n const interleaved = isInterleaved(arr.shape);\n const [yChunk, xChunk] = arr.chunks.slice(interleaved ? -3 : -2);\n const size = Math.min(yChunk, xChunk);\n return prevPowerOf2(size);\n}\n\nfunction getIndexer(labels) {\n const size = labels.length;\n const dims = getDims(labels);\n return (sel) => {\n if (Array.isArray(sel)) {\n return [...sel];\n }\n const selection = Array(size).fill(0);\n for (const [key, value] of Object.entries(sel)) {\n selection[dims(key)] = value;\n }\n return selection;\n };\n}\n\nconst DTYPE_LOOKUP = {\n u1: \"Uint8\",\n u2: \"Uint16\",\n u4: \"Uint32\",\n f4: \"Float32\",\n f8: \"Float64\",\n i1: \"Int8\",\n i2: \"Int16\",\n i4: \"Int32\"\n};\nclass ZarrPixelSource {\n constructor(data, labels, tileSize) {\n this.labels = labels;\n this.tileSize = tileSize;\n this._indexer = getIndexer(labels);\n this._data = data;\n const xChunkSize = data.chunks[this._xIndex];\n const yChunkSize = data.chunks[this._xIndex - 1];\n this._readChunks = tileSize === xChunkSize && tileSize === yChunkSize;\n }\n _data;\n _indexer;\n _readChunks;\n get shape() {\n return this._data.shape;\n }\n get dtype() {\n const suffix = this._data.dtype.slice(1);\n if (!(suffix in DTYPE_LOOKUP)) {\n throw Error(`Zarr dtype not supported, got ${suffix}.`);\n }\n return DTYPE_LOOKUP[suffix];\n }\n get _xIndex() {\n const interleave = isInterleaved(this._data.shape);\n return this._data.shape.length - (interleave ? 2 : 1);\n }\n _chunkIndex(selection, x, y) {\n const sel = this._indexer(selection);\n sel[this._xIndex] = x;\n sel[this._xIndex - 1] = y;\n return sel;\n }\n _getSlices(x, y) {\n const {\n height,\n width\n } = getImageSize(this);\n const [xStart, xStop] = [x * this.tileSize, Math.min((x + 1) * this.tileSize, width)];\n const [yStart, yStop] = [y * this.tileSize, Math.min((y + 1) * this.tileSize, height)];\n if (xStart === xStop || yStart === yStop) {\n throw new BoundsCheckError(\"Tile slice is zero-sized.\");\n }\n return [slice(xStart, xStop), slice(yStart, yStop)];\n }\n async getRaster({\n selection\n }) {\n const sel = this._chunkIndex(selection, null, null);\n const {\n data,\n shape\n } = await this._data.getRaw(sel);\n const [height, width] = shape;\n return {\n data,\n width,\n height\n };\n }\n async getTile(props) {\n const {\n x,\n y,\n selection,\n signal\n } = props;\n let res;\n if (this._readChunks) {\n const sel = this._chunkIndex(selection, x, y);\n res = await this._data.getRawChunk(sel, {\n storeOptions: {\n signal\n }\n });\n } else {\n const [xSlice, ySlice] = this._getSlices(x, y);\n const sel = this._chunkIndex(selection, xSlice, ySlice);\n res = await this._data.getRaw(sel);\n }\n const {\n data,\n shape: [height, width]\n } = res;\n return {\n data,\n width,\n height\n };\n }\n onTileError(err) {\n if (!(err instanceof BoundsCheckError)) {\n throw err;\n }\n }\n}\n\nasync function load$1(root, xmlSource) {\n if (typeof xmlSource !== \"string\") {\n xmlSource = await xmlSource.text();\n }\n const imgMeta = fromString(xmlSource)[0];\n const {\n data\n } = await loadMultiscales(root, \"0\");\n const labels = guessBioformatsLabels(data[0], imgMeta);\n const tileSize = guessTileSize(data[0]);\n const pyramid = data.map((arr) => new ZarrPixelSource(arr, labels, tileSize));\n return {\n data: pyramid,\n metadata: imgMeta\n };\n}\n\nasync function load(store) {\n const {\n data,\n rootAttrs,\n labels\n } = await loadMultiscales(store);\n const tileSize = guessTileSize(data[0]);\n const pyramid = data.map((arr) => new ZarrPixelSource(arr, labels, tileSize));\n return {\n data: pyramid,\n metadata: rootAttrs\n };\n}\n\nasync function loadBioformatsZarr(source, options = {}) {\n const METADATA = \"METADATA.ome.xml\";\n const ZARR_DIR = \"data.zarr\";\n if (typeof source === \"string\") {\n const url = source.endsWith(\"/\") ? source.slice(0, -1) : source;\n const store2 = new HTTPStore(url + \"/\" + ZARR_DIR, options);\n const xmlSource = await fetch(url + \"/\" + METADATA, options.fetchOptions);\n return load$1(store2, xmlSource);\n }\n const fMap = new Map();\n let xmlFile;\n for (const file of source) {\n if (file.name === METADATA) {\n xmlFile = file;\n } else {\n fMap.set(file.path, file);\n }\n }\n if (!xmlFile) {\n throw Error(\"No OME-XML metadata found for store.\");\n }\n const store = new FileStore(fMap, getRootPrefix(source, ZARR_DIR));\n return load$1(store, xmlFile);\n}\nasync function loadOmeZarr(source, options = {}) {\n const store = new HTTPStore(source, options);\n if (options?.type !== \"multiscales\") {\n throw Error(\"Only multiscale OME-Zarr is supported.\");\n }\n return load(store);\n}\n\nexport { AdditiveColormapExtension, BitmapLayer, COLORMAPS, ColorPaletteExtension, DETAIL_VIEW_ID, DTYPE_VALUES, DetailView, ImageLayer, LensExtension, MAX_CHANNELS, MultiscaleImageLayer, OVERVIEW_VIEW_ID, OverviewLayer, OverviewView, PictureInPictureViewer, RENDERING_MODES, ScaleBarLayer, SideBySideView, SideBySideViewer, TiffPixelSource, VivView, VivViewer, VolumeLayer, VolumeView, VolumeViewer, XR3DLayer, XRLayer, ZarrPixelSource, getChannelStats, getDefaultInitialViewState, loadBioformatsZarr, loadOmeTiff, loadOmeZarr };\n","import getPrototypeOf from \"./getPrototypeOf\";\nimport setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeFunction from \"./isNativeFunction\";\nimport construct from \"./construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import type {Readable} from 'stream';\n\n/** A DOM or Node readable stream */\nexport type ReadableStreamType = ReadableStream | Readable;\n\nconst isBoolean: (x: any) => boolean = (x) => typeof x === 'boolean';\nconst isFunction: (x: any) => boolean = (x) => typeof x === 'function';\n\nexport const isObject: (x: any) => boolean = (x) => x !== null && typeof x === 'object';\nexport const isPureObject: (x: any) => boolean = (x) =>\n isObject(x) && x.constructor === {}.constructor;\nexport const isPromise: (x: any) => boolean = (x) => isObject(x) && isFunction(x.then);\n\nexport const isIterable: (x: any) => boolean = (x) => x && typeof x[Symbol.iterator] === 'function';\nexport const isAsyncIterable: (x: any) => boolean = (x) =>\n x && typeof x[Symbol.asyncIterator] === 'function';\nexport const isIterator: (x: any) => boolean = (x) => x && isFunction(x.next);\n\nexport const isResponse: (x: any) => boolean = (x) =>\n (typeof Response !== 'undefined' && x instanceof Response) ||\n (x && x.arrayBuffer && x.text && x.json);\n\nexport const isFile: (x: any) => boolean = (x) => typeof File !== 'undefined' && x instanceof File;\nexport const isBlob: (x: any) => boolean = (x) => typeof Blob !== 'undefined' && x instanceof Blob;\n\nexport const isWritableDOMStream: (x: any) => boolean = (x) =>\n isObject(x) && isFunction(x.abort) && isFunction(x.getWriter);\n\nexport const isReadableDOMStream: (x: any) => boolean = (x) =>\n (typeof ReadableStream !== 'undefined' && x instanceof ReadableStream) ||\n (isObject(x) && isFunction(x.tee) && isFunction(x.cancel) && isFunction(x.getReader));\n// Not implemented in Firefox: && isFunction(x.pipeTo)\n\n/** Check for Node.js `Buffer` without triggering bundler to include buffer polyfill */\nexport const isBuffer: (x: any) => boolean = (x) => x && typeof x === 'object' && x.isBuffer;\n\nexport const isWritableNodeStream: (x: any) => boolean = (x) =>\n isObject(x) && isFunction(x.end) && isFunction(x.write) && isBoolean(x.writable);\nexport const isReadableNodeStream: (x: any) => boolean = (x) =>\n isObject(x) && isFunction(x.read) && isFunction(x.pipe) && isBoolean(x.readable);\nexport const isReadableStream: (x: any) => boolean = (x) =>\n isReadableDOMStream(x) || isReadableNodeStream(x);\nexport const isWritableStream: (x: any) => boolean = (x) =>\n isWritableDOMStream(x) || isWritableNodeStream(x);\n","import * as glMatrix from \"./common.js\";\n/**\r\n * 4 Dimensional Vector\r\n * @module vec4\r\n */\n\n/**\r\n * Creates a new, empty vec4\r\n *\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(4);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec4 initialized with values from an existing vector\r\n *\r\n * @param {vec4} a vector to clone\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\r\n * Creates a new vec4 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function fromValues(x, y, z, w) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\r\n * Copy the values from one vec4 to another\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the source vector\r\n * @returns {vec4} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\r\n * Set the components of a vec4 to the given values\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {vec4} out\r\n */\n\nexport function set(out, x, y, z, w) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\r\n * Adds two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n}\n/**\r\n * Multiplies two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n out[3] = a[3] * b[3];\n return out;\n}\n/**\r\n * Divides two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n out[3] = a[3] / b[3];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to ceil\r\n * @returns {vec4} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n out[3] = Math.ceil(a[3]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to floor\r\n * @returns {vec4} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n out[3] = Math.floor(a[3]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n out[3] = Math.min(a[3], b[3]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n out[3] = Math.max(a[3], b[3]);\n return out;\n}\n/**\r\n * Math.round the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to round\r\n * @returns {vec4} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n out[3] = Math.round(a[3]);\n return out;\n}\n/**\r\n * Scales a vec4 by a scalar number\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec4} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n}\n/**\r\n * Adds two vec4's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec4} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec4's\r\n *\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec4's\r\n *\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\r\n * Calculates the length of a vec4\r\n *\r\n * @param {vec4} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\r\n * Calculates the squared length of a vec4\r\n *\r\n * @param {vec4} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\r\n * Negates the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to negate\r\n * @returns {vec4} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = -a[3];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to invert\r\n * @returns {vec4} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n out[3] = 1.0 / a[3];\n return out;\n}\n/**\r\n * Normalize a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a vector to normalize\r\n * @returns {vec4} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n var len = x * x + y * y + z * z + w * w;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n out[3] = w * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec4's\r\n *\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n/**\r\n * Returns the cross-product of three vectors in a 4-dimensional space\r\n *\r\n * @param {vec4} result the receiving vector\r\n * @param {vec4} U the first vector\r\n * @param {vec4} V the second vector\r\n * @param {vec4} W the third vector\r\n * @returns {vec4} result\r\n */\n\nexport function cross(out, u, v, w) {\n var A = v[0] * w[1] - v[1] * w[0],\n B = v[0] * w[2] - v[2] * w[0],\n C = v[0] * w[3] - v[3] * w[0],\n D = v[1] * w[2] - v[2] * w[1],\n E = v[1] * w[3] - v[3] * w[1],\n F = v[2] * w[3] - v[3] * w[2];\n var G = u[0];\n var H = u[1];\n var I = u[2];\n var J = u[3];\n out[0] = H * F - I * E + J * D;\n out[1] = -(G * F) + I * C - J * B;\n out[2] = G * E - H * C + J * A;\n out[3] = -(G * D) + H * B - I * A;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the first operand\r\n * @param {vec4} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec4} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n out[3] = aw + t * (b[3] - aw);\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec4} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0; // Marsaglia, George. Choosing a Point from the Surface of a\n // Sphere. Ann. Math. Statist. 43 (1972), no. 2, 645--646.\n // http://projecteuclid.org/euclid.aoms/1177692644;\n\n var v1, v2, v3, v4;\n var s1, s2;\n\n do {\n v1 = glMatrix.RANDOM() * 2 - 1;\n v2 = glMatrix.RANDOM() * 2 - 1;\n s1 = v1 * v1 + v2 * v2;\n } while (s1 >= 1);\n\n do {\n v3 = glMatrix.RANDOM() * 2 - 1;\n v4 = glMatrix.RANDOM() * 2 - 1;\n s2 = v3 * v3 + v4 * v4;\n } while (s2 >= 1);\n\n var d = Math.sqrt((1 - s1) / s2);\n out[0] = scale * v1;\n out[1] = scale * v2;\n out[2] = scale * v3 * d;\n out[3] = scale * v4 * d;\n return out;\n}\n/**\r\n * Transforms the vec4 with a mat4.\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the vector to transform\r\n * @param {mat4} m matrix to transform with\r\n * @returns {vec4} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n}\n/**\r\n * Transforms the vec4 with a quat\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {vec4} a the vector to transform\r\n * @param {quat} q quaternion to transform with\r\n * @returns {vec4} out\r\n */\n\nexport function transformQuat(out, a, q) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3]; // calculate quat * vec\n\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n out[3] = a[3];\n return out;\n}\n/**\r\n * Set the components of a vec4 to zero\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @returns {vec4} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {vec4} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {vec4} a The first vector.\r\n * @param {vec4} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {vec4} a The first vector.\r\n * @param {vec4} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3));\n}\n/**\r\n * Alias for {@link vec4.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec4.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec4.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec4.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec4.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec4.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec4.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec4s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 4;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n vec[3] = a[i + 3];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n a[i + 3] = vec[3];\n }\n\n return a;\n };\n}();","export function assign(target, source) {\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n}\n\nexport function chunk(iterable, length) {\n const results = [];\n const lengthOfIterable = iterable.length;\n for (let i = 0; i < lengthOfIterable; i += length) {\n const chunked = [];\n for (let ci = i; ci < i + length; ci++) {\n chunked.push(iterable[ci]);\n }\n results.push(chunked);\n }\n return results;\n}\n\nexport function endsWith(string, expectedEnding) {\n if (string.length < expectedEnding.length) {\n return false;\n }\n const actualEnding = string.substr(string.length - expectedEnding.length);\n return actualEnding === expectedEnding;\n}\n\nexport function forEach(iterable, func) {\n const { length } = iterable;\n for (let i = 0; i < length; i++) {\n func(iterable[i], i);\n }\n}\n\nexport function invert(oldObj) {\n const newObj = {};\n for (const key in oldObj) {\n if (oldObj.hasOwnProperty(key)) {\n const value = oldObj[key];\n newObj[value] = key;\n }\n }\n return newObj;\n}\n\nexport function range(n) {\n const results = [];\n for (let i = 0; i < n; i++) {\n results.push(i);\n }\n return results;\n}\n\nexport function times(numTimes, func) {\n const results = [];\n for (let i = 0; i < numTimes; i++) {\n results.push(func(i));\n }\n return results;\n}\n\nexport function toArray(iterable) {\n const results = [];\n const { length } = iterable;\n for (let i = 0; i < length; i++) {\n results.push(iterable[i]);\n }\n return results;\n}\n\nexport function toArrayRecursively(input) {\n if (input.length) {\n return toArray(input).map(toArrayRecursively);\n }\n return input;\n}\n\n// copied from https://github.com/academia-de-codigo/parse-content-range-header/blob/master/index.js\nexport function parseContentRange(headerValue) {\n if (!headerValue) {\n return null;\n }\n\n if (typeof headerValue !== 'string') {\n throw new Error('invalid argument');\n }\n\n const parseInt = (number) => Number.parseInt(number, 10);\n\n // Check for presence of unit\n let matches = headerValue.match(/^(\\w*) /);\n const unit = matches && matches[1];\n\n // check for start-end/size header format\n matches = headerValue.match(/(\\d+)-(\\d+)\\/(\\d+|\\*)/);\n if (matches) {\n return {\n unit,\n first: parseInt(matches[1]),\n last: parseInt(matches[2]),\n length: matches[3] === '*' ? null : parseInt(matches[3]),\n };\n }\n\n // check for size header format\n matches = headerValue.match(/(\\d+|\\*)/);\n if (matches) {\n return {\n unit,\n first: null,\n last: null,\n length: matches[1] === '*' ? null : parseInt(matches[1]),\n };\n }\n\n return null;\n}\n\n\n/*\n * Promisified wrapper around 'setTimeout' to allow 'await'\n */\nexport async function wait(milliseconds) {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n}\n\nexport function zip(a, b) {\n const A = Array.isArray(a) ? a : Array.from(a);\n const B = Array.isArray(b) ? b : Array.from(b);\n return A.map((k, i) => [k, B[i]]);\n}\n\n\n// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error\nexport class AbortError extends Error {\n constructor(params) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(params);\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, AbortError);\n }\n\n this.name = 'AbortError';\n }\n}\n\nexport class CustomAggregateError extends Error {\n constructor(errors, message) {\n super(message);\n this.errors = errors;\n this.message = message;\n this.name = 'AggregateError';\n }\n}\n\nexport const AggregateError = CustomAggregateError;\n","import * as glMatrix from \"./common.js\";\n/**\r\n * 3x3 Matrix\r\n * @module mat3\r\n */\n\n/**\r\n * Creates a new identity mat3\r\n *\r\n * @returns {mat3} a new 3x3 matrix\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(9);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n/**\r\n * Copies the upper-left 3x3 values into the given mat3.\r\n *\r\n * @param {mat3} out the receiving 3x3 matrix\r\n * @param {mat4} a the source 4x4 matrix\r\n * @returns {mat3} out\r\n */\n\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n/**\r\n * Creates a new mat3 initialized with values from an existing matrix\r\n *\r\n * @param {mat3} a matrix to clone\r\n * @returns {mat3} a new 3x3 matrix\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\r\n * Copy the values from one mat3 to another\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\r\n * Create a new mat3 with the given values\r\n *\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\r\n * @returns {mat3} A new mat3\r\n */\n\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\r\n * Set the components of a mat3 to the given values\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\r\n * @returns {mat3} out\r\n */\n\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\r\n * Set a mat3 to the identity matrix\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @returns {mat3} out\r\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\r\n * Transpose the values of a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n\n return out;\n}\n/**\r\n * Inverts a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b01 = a22 * a11 - a12 * a21;\n var b11 = -a22 * a10 + a12 * a20;\n var b21 = a21 * a10 - a11 * a20; // Calculate the determinant\n\n var det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n/**\r\n * Calculates the adjugate of a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n/**\r\n * Calculates the determinant of a mat3\r\n *\r\n * @param {mat3} a the source matrix\r\n * @returns {Number} determinant of a\r\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\n/**\r\n * Multiplies two mat3's\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the first operand\r\n * @param {mat3} b the second operand\r\n * @returns {mat3} out\r\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b00 = b[0],\n b01 = b[1],\n b02 = b[2];\n var b10 = b[3],\n b11 = b[4],\n b12 = b[5];\n var b20 = b[6],\n b21 = b[7],\n b22 = b[8];\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n/**\r\n * Translate a mat3 by the given vector\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the matrix to translate\r\n * @param {vec2} v vector to translate by\r\n * @returns {mat3} out\r\n */\n\nexport function translate(out, a, v) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n x = v[0],\n y = v[1];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n/**\r\n * Rotates a mat3 by the given angle\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat3} out\r\n */\n\nexport function rotate(out, a, rad) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n/**\r\n * Scales the mat3 by the dimensions in the given vec2\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the matrix to rotate\r\n * @param {vec2} v the vec2 to scale the matrix by\r\n * @returns {mat3} out\r\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1];\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\r\n * Creates a matrix from a vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.translate(dest, dest, vec);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {vec2} v Translation vector\r\n * @returns {mat3} out\r\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a given angle\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.rotate(dest, dest, rad);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat3} out\r\n */\n\nexport function fromRotation(out, rad) {\n var s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a vector scaling\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.scale(dest, dest, vec);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {vec2} v Scaling vector\r\n * @returns {mat3} out\r\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\r\n * Copies the values from a mat2d into a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat2d} a the matrix to copy\r\n * @returns {mat3} out\r\n **/\n\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n/**\r\n * Calculates a 3x3 matrix from the given quaternion\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {quat} q Quaternion to create matrix from\r\n *\r\n * @returns {mat3} out\r\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n return out;\n}\n/**\r\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {mat4} a Mat4 to derive the normal matrix from\r\n *\r\n * @returns {mat3} out\r\n */\n\nexport function normalFromMat4(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n return out;\n}\n/**\r\n * Generates a 2D projection matrix with the given bounds\r\n *\r\n * @param {mat3} out mat3 frustum matrix will be written into\r\n * @param {number} width Width of your gl context\r\n * @param {number} height Height of gl context\r\n * @returns {mat3} out\r\n */\n\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n/**\r\n * Returns a string representation of a mat3\r\n *\r\n * @param {mat3} a matrix to represent as a string\r\n * @returns {String} string representation of the matrix\r\n */\n\nexport function str(a) {\n return \"mat3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \")\";\n}\n/**\r\n * Returns Frobenius norm of a mat3\r\n *\r\n * @param {mat3} a the matrix to calculate Frobenius norm of\r\n * @returns {Number} Frobenius norm\r\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);\n}\n/**\r\n * Adds two mat3's\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the first operand\r\n * @param {mat3} b the second operand\r\n * @returns {mat3} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n/**\r\n * Subtracts matrix b from matrix a\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the first operand\r\n * @param {mat3} b the second operand\r\n * @returns {mat3} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n/**\r\n * Multiply each element of the matrix by a scalar.\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {mat3} a the matrix to scale\r\n * @param {Number} b amount to scale the matrix's elements by\r\n * @returns {mat3} out\r\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n/**\r\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\r\n *\r\n * @param {mat3} out the receiving vector\r\n * @param {mat3} a the first operand\r\n * @param {mat3} b the second operand\r\n * @param {Number} scale the amount to scale b's elements by before adding\r\n * @returns {mat3} out\r\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n return out;\n}\n/**\r\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {mat3} a The first matrix.\r\n * @param {mat3} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8];\n}\n/**\r\n * Returns whether or not the matrices have approximately the same elements in the same position.\r\n *\r\n * @param {mat3} a The first matrix.\r\n * @param {mat3} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7],\n a8 = a[8];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8));\n}\n/**\r\n * Alias for {@link mat3.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link mat3.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @module helpers\n */\n/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n *\n * @memberof helpers\n * @type {number}\n */\nexports.earthRadius = 6371008.8;\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.factors = {\n centimeters: exports.earthRadius * 100,\n centimetres: exports.earthRadius * 100,\n degrees: exports.earthRadius / 111325,\n feet: exports.earthRadius * 3.28084,\n inches: exports.earthRadius * 39.370,\n kilometers: exports.earthRadius / 1000,\n kilometres: exports.earthRadius / 1000,\n meters: exports.earthRadius,\n metres: exports.earthRadius,\n miles: exports.earthRadius / 1609.344,\n millimeters: exports.earthRadius * 1000,\n millimetres: exports.earthRadius * 1000,\n nauticalmiles: exports.earthRadius / 1852,\n radians: 1,\n yards: exports.earthRadius / 1.0936,\n};\n/**\n * Units of measurement factors based on 1 meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.unitsFactors = {\n centimeters: 100,\n centimetres: 100,\n degrees: 1 / 111325,\n feet: 3.28084,\n inches: 39.370,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n meters: 1,\n metres: 1,\n miles: 1 / 1609.344,\n millimeters: 1000,\n millimetres: 1000,\n nauticalmiles: 1 / 1852,\n radians: 1 / exports.earthRadius,\n yards: 1 / 1.0936,\n};\n/**\n * Area of measurement factors based on 1 square meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.areaFactors = {\n acres: 0.000247105,\n centimeters: 10000,\n centimetres: 10000,\n feet: 10.763910417,\n inches: 1550.003100006,\n kilometers: 0.000001,\n kilometres: 0.000001,\n meters: 1,\n metres: 1,\n miles: 3.86e-7,\n millimeters: 1000000,\n millimetres: 1000000,\n yards: 1.195990046,\n};\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nfunction feature(geom, properties, options) {\n if (options === void 0) { options = {}; }\n var feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\nexports.feature = feature;\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array<any>} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = \"Point\";\n * var coordinates = [110, 50];\n * var geometry = turf.geometry(type, coordinates);\n * // => geometry\n */\nfunction geometry(type, coordinates, options) {\n if (options === void 0) { options = {}; }\n switch (type) {\n case \"Point\": return point(coordinates).geometry;\n case \"LineString\": return lineString(coordinates).geometry;\n case \"Polygon\": return polygon(coordinates).geometry;\n case \"MultiPoint\": return multiPoint(coordinates).geometry;\n case \"MultiLineString\": return multiLineString(coordinates).geometry;\n case \"MultiPolygon\": return multiPolygon(coordinates).geometry;\n default: throw new Error(type + \" is invalid\");\n }\n}\nexports.geometry = geometry;\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Point>} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nfunction point(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"Point\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.point = point;\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array<Array<number>>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Point>} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nfunction points(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\nexports.points = points;\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Polygon>} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nfunction polygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {\n var ring = coordinates_1[_i];\n if (ring.length < 4) {\n throw new Error(\"Each LinearRing of a Polygon must have 4 or more Positions.\");\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n var geom = {\n type: \"Polygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.polygon = polygon;\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Polygon>} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nfunction polygons(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\nexports.polygons = polygons;\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<LineString>} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nfunction lineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n var geom = {\n type: \"LineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.lineString = lineString;\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<LineString>} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nfunction lineStrings(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\nexports.lineStrings = lineStrings;\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nfunction featureCollection(features, options) {\n if (options === void 0) { options = {}; }\n var fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\nexports.featureCollection = featureCollection;\n/**\n * Creates a {@link Feature<MultiLineString>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array<Array<Array<number>>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiLineString>} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nfunction multiLineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiLineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiLineString = multiLineString;\n/**\n * Creates a {@link Feature<MultiPoint>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPoint>} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nfunction multiPoint(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPoint\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiPoint = multiPoint;\n/**\n * Creates a {@link Feature<MultiPolygon>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPolygon>} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nfunction multiPolygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPolygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiPolygon = multiPolygon;\n/**\n * Creates a {@link Feature<GeometryCollection>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array<Geometry>} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<GeometryCollection>} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = turf.geometry(\"Point\", [100, 0]);\n * var line = turf.geometry(\"LineString\", [[101, 0], [102, 1]]);\n * var collection = turf.geometryCollection([pt, line]);\n *\n * // => collection\n */\nfunction geometryCollection(geometries, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"GeometryCollection\",\n geometries: geometries,\n };\n return feature(geom, properties, options);\n}\nexports.geometryCollection = geometryCollection;\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nfunction round(num, precision) {\n if (precision === void 0) { precision = 0; }\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\nexports.round = round;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, or kilometers inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} distance\n */\nfunction radiansToLength(radians, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = exports.factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\nexports.radiansToLength = radiansToLength;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, or kilometers inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} radians\n */\nfunction lengthToRadians(distance, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = exports.factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\nexports.lengthToRadians = lengthToRadians;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, or kilometers inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nfunction lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\nexports.lengthToDegrees = lengthToDegrees;\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nfunction bearingToAzimuth(bearing) {\n var angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\nexports.bearingToAzimuth = bearingToAzimuth;\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nfunction radiansToDegrees(radians) {\n var degrees = radians % (2 * Math.PI);\n return degrees * 180 / Math.PI;\n}\nexports.radiansToDegrees = radiansToDegrees;\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nfunction degreesToRadians(degrees) {\n var radians = degrees % 360;\n return radians * Math.PI / 180;\n}\nexports.degreesToRadians = degreesToRadians;\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {Units} [originalUnit=\"kilometers\"] of the length\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted length\n */\nfunction convertLength(length, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"kilometers\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\nexports.convertLength = convertLength;\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches\n * @param {number} area to be converted\n * @param {Units} [originalUnit=\"meters\"] of the distance\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted distance\n */\nfunction convertArea(area, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"meters\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n var startFactor = exports.areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n var finalFactor = exports.areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return (area / startFactor) * finalFactor;\n}\nexports.convertArea = convertArea;\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nfunction isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num) && !/^\\s*$/.test(num);\n}\nexports.isNumber = isNumber;\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nfunction isObject(input) {\n return (!!input) && (input.constructor === Object);\n}\nexports.isObject = isObject;\n/**\n * Validate BBox\n *\n * @private\n * @param {Array<number>} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nfunction validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach(function (num) {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\nexports.validateBBox = validateBBox;\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nfunction validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}\nexports.validateId = validateId;\n// Deprecated methods\nfunction radians2degrees() {\n throw new Error(\"method has been renamed to `radiansToDegrees`\");\n}\nexports.radians2degrees = radians2degrees;\nfunction degrees2radians() {\n throw new Error(\"method has been renamed to `degreesToRadians`\");\n}\nexports.degrees2radians = degrees2radians;\nfunction distanceToDegrees() {\n throw new Error(\"method has been renamed to `lengthToDegrees`\");\n}\nexports.distanceToDegrees = distanceToDegrees;\nfunction distanceToRadians() {\n throw new Error(\"method has been renamed to `lengthToRadians`\");\n}\nexports.distanceToRadians = distanceToRadians;\nfunction radiansToDistance() {\n throw new Error(\"method has been renamed to `radiansToLength`\");\n}\nexports.radiansToDistance = radiansToDistance;\nfunction bearingToAngle() {\n throw new Error(\"method has been renamed to `bearingToAzimuth`\");\n}\nexports.bearingToAngle = bearingToAngle;\nfunction convertDistance() {\n throw new Error(\"method has been renamed to `convertLength`\");\n}\nexports.convertDistance = convertDistance;\n","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : _formatMuiErrorMessage(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nexport function fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// This file enables: import 'probe.gl/bench'.\n// Note: Must be published using package.json \"files\" field\nmodule.exports = require('./dist/es5/env');\n","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","import * as React from 'react';\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nexport default function useEventCallback(fn) {\n var ref = React.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}","import * as glMatrix from \"./common.js\";\n/**\r\n * 3 Dimensional Vector\r\n * @module vec3\r\n */\n\n/**\r\n * Creates a new, empty vec3\r\n *\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec3 initialized with values from an existing vector\r\n *\r\n * @param {ReadonlyVec3} a vector to clone\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Calculates the length of a vec3\r\n *\r\n * @param {ReadonlyVec3} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Creates a new vec3 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Copy the values from one vec3 to another\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the source vector\r\n * @returns {vec3} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Set the components of a vec3 to the given values\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} out\r\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Adds two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\r\n * Multiplies two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\r\n * Divides two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to ceil\r\n * @returns {vec3} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to floor\r\n * @returns {vec3} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\r\n * Math.round the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to round\r\n * @returns {vec3} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\r\n * Scales a vec3 by a scalar number\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec3} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\r\n * Adds two vec3's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec3} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Calculates the squared length of a vec3\r\n *\r\n * @param {ReadonlyVec3} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Negates the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to negate\r\n * @returns {vec3} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to invert\r\n * @returns {vec3} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\r\n * Normalize a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to normalize\r\n * @returns {vec3} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\r\n * Computes the cross product of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\r\n * Performs a hermite interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {ReadonlyVec3} c the third operand\r\n * @param {ReadonlyVec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Performs a bezier interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {ReadonlyVec3} c the third operand\r\n * @param {ReadonlyVec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec3} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat4.\r\n * 4th vector component is implicitly '1'\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyMat4} m matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat3.\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\r\n * Transforms the vec3 with a quat\r\n * Can also be used for dual quaternions. (Multiply it with the real part)\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyQuat} q quaternion to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\r\n * Rotate a 3D vector around the x-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the y-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the z-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Get the angle between two 3D vectors\r\n * @param {ReadonlyVec3} a The first operand\r\n * @param {ReadonlyVec3} b The second operand\r\n * @returns {Number} The angle in radians\r\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\r\n * Set the components of a vec3 to zero\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @returns {vec3} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {ReadonlyVec3} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyVec3} a The first vector.\r\n * @param {ReadonlyVec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyVec3} a The first vector.\r\n * @param {ReadonlyVec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\r\n * Alias for {@link vec3.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec3.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec3.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec3.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec3.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec3.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec3.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec3s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import * as glMatrix from \"./common.js\";\n/**\r\n * 2 Dimensional Vector\r\n * @module vec2\r\n */\n\n/**\r\n * Creates a new, empty vec2\r\n *\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(2);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec2 initialized with values from an existing vector\r\n *\r\n * @param {vec2} a vector to clone\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\r\n * Creates a new vec2 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function fromValues(x, y) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\r\n * Copy the values from one vec2 to another\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the source vector\r\n * @returns {vec2} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\r\n * Set the components of a vec2 to the given values\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @returns {vec2} out\r\n */\n\nexport function set(out, x, y) {\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\r\n * Adds two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n return out;\n}\n/**\r\n * Multiplies two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n return out;\n}\n/**\r\n * Divides two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a vector to ceil\r\n * @returns {vec2} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a vector to floor\r\n * @returns {vec2} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n return out;\n}\n/**\r\n * Math.round the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a vector to round\r\n * @returns {vec2} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n return out;\n}\n/**\r\n * Scales a vec2 by a scalar number\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec2} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n return out;\n}\n/**\r\n * Adds two vec2's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec2} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec2's\r\n *\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return Math.hypot(x, y);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec2's\r\n *\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return x * x + y * y;\n}\n/**\r\n * Calculates the length of a vec2\r\n *\r\n * @param {vec2} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0],\n y = a[1];\n return Math.hypot(x, y);\n}\n/**\r\n * Calculates the squared length of a vec2\r\n *\r\n * @param {vec2} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0],\n y = a[1];\n return x * x + y * y;\n}\n/**\r\n * Negates the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a vector to negate\r\n * @returns {vec2} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a vector to invert\r\n * @returns {vec2} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n return out;\n}\n/**\r\n * Normalize a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a vector to normalize\r\n * @returns {vec2} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0],\n y = a[1];\n var len = x * x + y * y;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec2's\r\n *\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n}\n/**\r\n * Computes the cross product of two vec2's\r\n * Note that the cross product must by definition produce a 3D vector\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function cross(out, a, b) {\n var z = a[0] * b[1] - a[1] * b[0];\n out[0] = out[1] = 0;\n out[2] = z;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the first operand\r\n * @param {vec2} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec2} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0],\n ay = a[1];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec2} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n out[0] = Math.cos(r) * scale;\n out[1] = Math.sin(r) * scale;\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the vector to transform\r\n * @param {mat2} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat2(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat2d\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the vector to transform\r\n * @param {mat2d} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat2d(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat3\r\n * 3rd vector component is implicitly '1'\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the vector to transform\r\n * @param {mat3} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[3] * y + m[6];\n out[1] = m[1] * x + m[4] * y + m[7];\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat4\r\n * 3rd vector component is implicitly '0'\r\n * 4th vector component is implicitly '1'\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {vec2} a the vector to transform\r\n * @param {mat4} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0];\n var y = a[1];\n out[0] = m[0] * x + m[4] * y + m[12];\n out[1] = m[1] * x + m[5] * y + m[13];\n return out;\n}\n/**\r\n * Rotate a 2D vector\r\n * @param {vec2} out The receiving vec2\r\n * @param {vec2} a The vec2 point to rotate\r\n * @param {vec2} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec2} out\r\n */\n\nexport function rotate(out, a, b, rad) {\n //Translate point to the origin\n var p0 = a[0] - b[0],\n p1 = a[1] - b[1],\n sinC = Math.sin(rad),\n cosC = Math.cos(rad); //perform rotation and translate to correct position\n\n out[0] = p0 * cosC - p1 * sinC + b[0];\n out[1] = p0 * sinC + p1 * cosC + b[1];\n return out;\n}\n/**\r\n * Get the angle between two 2D vectors\r\n * @param {vec2} a The first operand\r\n * @param {vec2} b The second operand\r\n * @returns {Number} The angle in radians\r\n */\n\nexport function angle(a, b) {\n var x1 = a[0],\n y1 = a[1],\n x2 = b[0],\n y2 = b[1],\n // mag is the product of the magnitudes of a and b\n mag = Math.sqrt(x1 * x1 + y1 * y1) * Math.sqrt(x2 * x2 + y2 * y2),\n // mag &&.. short circuits if mag == 0\n cosine = mag && (x1 * x2 + y1 * y2) / mag; // Math.min(Math.max(cosine, -1), 1) clamps the cosine between -1 and 1\n\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\r\n * Set the components of a vec2 to zero\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @returns {vec2} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {vec2} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec2(\" + a[0] + \", \" + a[1] + \")\";\n}\n/**\r\n * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)\r\n *\r\n * @param {vec2} a The first vector.\r\n * @param {vec2} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {vec2} a The first vector.\r\n * @param {vec2} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1];\n var b0 = b[0],\n b1 = b[1];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1));\n}\n/**\r\n * Alias for {@link vec2.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec2.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec2.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec2.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec2.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec2.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec2.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec2s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 2;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n }\n\n return a;\n };\n}();","/*! pako 2.0.3 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES = 30;\n/* number of distance codes */\n\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,\n // \"inconsistent bit counts\");\n //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n for (n = 0; n <= max_code; n++) {\n let len = tree[n * 2 + 1]/*.Len*/;\n if (len === 0) { continue; }\n /* Now reverse the bits */\n tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n // n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n }\n};\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nconst tr_static_init = () => {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init;\nvar _tr_stored_block_1 = _tr_stored_block;\nvar _tr_flush_block_1 = _tr_flush_block;\nvar _tr_tally_1 = _tr_tally;\nvar _tr_align_1 = _tr_align;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init: _tr_init$1, _tr_stored_block: _tr_stored_block$1, _tr_flush_block: _tr_flush_block$1, _tr_tally: _tr_tally$1, _tr_align: _tr_align$1 } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_PARTIAL_FLUSH, Z_FULL_FLUSH, Z_FINISH, Z_BLOCK,\n Z_OK, Z_STREAM_END, Z_STREAM_ERROR, Z_DATA_ERROR, Z_BUF_ERROR,\n Z_DEFAULT_COMPRESSION,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED: Z_FIXED$1, Z_DEFAULT_STRATEGY,\n Z_UNKNOWN: Z_UNKNOWN$1,\n Z_DEFLATED\n} = constants;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES$1 = 30;\n/* number of distance codes */\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH$1 + MIN_MATCH$1 + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero$1 = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block$1(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH$1;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH$1 - (strend - scan);\n scan = strend - MAX_MATCH$1;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH$1) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH$1 - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH$1) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH$1) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH$1 - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH$1) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally$1(s, s.strstart - s.match_start, s.match_length - MIN_MATCH$1);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH$1) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH$1 - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally$1(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH$1 - 1)) ? s.strstart : MIN_MATCH$1 - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH$1) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH$1 - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH$1 - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH$1 && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH$1 - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH$1 && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH$1;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally$1(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH$1);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH$1 - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH$1 - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally$1(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally$1(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH$1 - 1 ? s.strstart : MIN_MATCH$1 - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH$1) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH$1 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH$1 && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH$1;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH$1 - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH$1) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally$1(s, 1, s.match_length - MIN_MATCH$1);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally$1(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally$1(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero$1(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH$1 - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE$1 * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES$1 + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES$1 + 1) * 2);\n zero$1(this.dyn_ltree);\n zero$1(this.dyn_dtree);\n zero$1(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES$1 + 1); /* heap used to build the Huffman trees */\n zero$1(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES$1 + 1); //uch depth[2*L_CODES+1];\n zero$1(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN$1;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n _tr_init$1(s);\n return Z_OK;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED$1) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH$1 - 1) / MIN_MATCH$1);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n};\n\n\nconst deflate = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align$1(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block$1(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero$1(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero$1(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH$1) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH$1 - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH$1 - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH$1 - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH$1 - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2 = deflate;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n let i, out;\n const len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$1,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION$1,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY$1\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$1) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$1) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$1 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH$1) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$1) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$1;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$1) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1 = Deflate;\nvar deflate_2$1 = deflate$1;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar constants$1 = constants;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_2$1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$2, Z_BLOCK: Z_BLOCK$1, Z_TREES,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2, Z_NEED_DICT, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS$1;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS$1);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS$1);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$2;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$2) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS$1, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS$1, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE$1) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$2;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD$1;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED$2) {\n strm.msg = 'unknown compression method';\n state.mode = BAD$1;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD$1;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE$1;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED$2) {\n strm.msg = 'unknown compression method';\n state.mode = BAD$1;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD$1;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD$1;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE$1;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE$1;\n /* falls through */\n case TYPE$1:\n if (flush === Z_BLOCK$1 || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD$1;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD$1;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE$1;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD$1;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES$1, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD$1;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD$1;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD$1;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD$1) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD$1;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS$1, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD$1;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS$1, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD$1;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE$1) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE$1;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD$1;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD$1;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$2;\n break inf_leave;\n case BAD$1:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD$1 &&\n (state.mode < CHECK || flush !== Z_FINISH$2))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE$1 ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$2) && ret === Z_OK$2) {\n ret = Z_BUF_ERROR$1;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$2;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$2;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$2;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2 = inflate;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_FINISH: Z_FINISH$3,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_MEM_ERROR: Z_MEM_ERROR$1\n} = constants;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK$3) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK$3) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$3 : Z_NO_FLUSH$2;\n\n // Convert data if needed\n if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT$1 && dictionary) {\n status = inflate_1.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK$3) {\n status = inflate_1.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR$2) {\n // Replace code with more verbose\n status = Z_NEED_DICT$1;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END$3 &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1.inflateReset(strm);\n status = inflate_1.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR$2:\n case Z_DATA_ERROR$2:\n case Z_NEED_DICT$1:\n case Z_MEM_ERROR$1:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END$3) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK$3 && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END$3) {\n status = inflate_1.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$3) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err)\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1 = Inflate;\nvar inflate_2$1 = inflate$1;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip = inflate$1;\nvar constants$2 = constants;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1,\n\tinflate: inflate_2$1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip,\n\tconstants: constants$2\n};\n\nconst { Deflate: Deflate$1, deflate: deflate$2, deflateRaw: deflateRaw$1, gzip: gzip$1 } = deflate_1$1;\n\nconst { Inflate: Inflate$1, inflate: inflate$2, inflateRaw: inflateRaw$1, ungzip: ungzip$1 } = inflate_1$1;\n\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_1$2 = deflate$2;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar Inflate_1$1 = Inflate$1;\nvar inflate_1$2 = inflate$2;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip_1 = ungzip$1;\nvar constants_1 = constants;\n\nvar pako = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_1$2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tInflate: Inflate_1$1,\n\tinflate: inflate_1$2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { pako as p };\n","import { p as pako } from './pako.esm-ef1fc3f4.mjs';\n\nclass GZip {\n constructor(level = 1) {\n if (level < 0 || level > 9) {\n throw new Error('Invalid gzip compression level, it should be between 0 and 9');\n }\n this.level = level;\n }\n static fromConfig({ level }) {\n return new GZip(level);\n }\n encode(data) {\n const gzipped = pako.gzip(data, { level: this.level });\n return gzipped;\n }\n decode(data, out) {\n const uncompressed = pako.ungzip(data);\n if (out !== undefined) {\n out.set(uncompressed);\n return out;\n }\n return uncompressed;\n }\n}\nGZip.codecId = 'gzip';\n\nexport default GZip;\n","import { p as pako } from './pako.esm-ef1fc3f4.mjs';\n\nclass Zlib {\n constructor(level = 1) {\n if (level < -1 || level > 9) {\n throw new Error('Invalid zlib compression level, it should be between -1 and 9');\n }\n this.level = level;\n }\n static fromConfig({ level }) {\n return new Zlib(level);\n }\n encode(data) {\n const gzipped = pako.deflate(data, { level: this.level });\n return gzipped;\n }\n decode(data, out) {\n const uncompressed = pako.inflate(data);\n if (out !== undefined) {\n out.set(uncompressed);\n return out;\n }\n return uncompressed;\n }\n}\nZlib.codecId = 'zlib';\n\nexport default Zlib;\n","const IS_NODE = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\n// This is for the \"binary\" loader (custom code is ~2x faster than \"atob\")\n// from: https://github.com/evanw/esbuild/blob/150a01844d47127c007c2b1973158d69c560ca21/internal/runtime/runtime.go#L185\nlet __toBinary = IS_NODE\n ? (base64) => new Uint8Array(Buffer.from(base64, 'base64'))\n : /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length;\n // @ts-ignore\n var bytes = new Uint8Array((((n - (base64[n - 1] == '=') - (base64[n - 2] == '=')) * 3) / 4) | 0);\n for (var i = 0, j = 0; i < n;) {\n var c0 = table[base64.charCodeAt(i++)], c1 = table[base64.charCodeAt(i++)];\n var c2 = table[base64.charCodeAt(i++)], c3 = table[base64.charCodeAt(i++)];\n bytes[j++] = (c0 << 2) | (c1 >> 4);\n bytes[j++] = (c1 << 4) | (c2 >> 2);\n bytes[j++] = (c2 << 6) | c3;\n }\n return bytes;\n };\n })();\nfunction initEmscriptenModule(moduleFactory, src) {\n const wasmBinary = __toBinary(src);\n return moduleFactory({ noInitialRun: true, wasmBinary });\n}\n\nexport { initEmscriptenModule as i };\n","import { i as initEmscriptenModule } from './utils-6b0080f1.mjs';\n\nvar blosc_codec = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n \n return (\nfunction(blosc_codec) {\n blosc_codec = blosc_codec || {};\n\n\nvar f;f||(f=typeof blosc_codec !== 'undefined' ? blosc_codec : {});var aa,ba;f.ready=new Promise(function(a,b){aa=a;ba=b;});var r={},t;for(t in f)f.hasOwnProperty(t)&&(r[t]=f[t]);var ca=\"./this.program\",da=f.print||console.log.bind(console),u=f.printErr||console.warn.bind(console);for(t in r)r.hasOwnProperty(t)&&(f[t]=r[t]);r=null;f.thisProgram&&(ca=f.thisProgram);var v;f.wasmBinary&&(v=f.wasmBinary);var noExitRuntime;f.noExitRuntime&&(noExitRuntime=f.noExitRuntime);\n\"object\"!==typeof WebAssembly&&w(\"no native wasm support detected\");var y,ea=!1,fa=\"undefined\"!==typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;\nfunction ha(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.subarray&&fa)return fa.decode(a.subarray(b,c));for(d=\"\";b<c;){var e=a[b++];if(e&128){var g=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|g);else {var k=a[b++]&63;e=224==(e&240)?(e&15)<<12|g<<6|k:(e&7)<<18|g<<12|k<<6|a[b++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023));}}else d+=String.fromCharCode(e);}return d}\nfunction ia(a,b,c){var d=z;if(0<c){c=b+c-1;for(var e=0;e<a.length;++e){var g=a.charCodeAt(e);if(55296<=g&&57343>=g){var k=a.charCodeAt(++e);g=65536+((g&1023)<<10)|k&1023;}if(127>=g){if(b>=c)break;d[b++]=g;}else {if(2047>=g){if(b+1>=c)break;d[b++]=192|g>>6;}else {if(65535>=g){if(b+2>=c)break;d[b++]=224|g>>12;}else {if(b+3>=c)break;d[b++]=240|g>>18;d[b++]=128|g>>12&63;}d[b++]=128|g>>6&63;}d[b++]=128|g&63;}}d[b]=0;}}var ja=\"undefined\"!==typeof TextDecoder?new TextDecoder(\"utf-16le\"):void 0;\nfunction ka(a,b){var c=a>>1;for(var d=c+b/2;!(c>=d)&&A[c];)++c;c<<=1;if(32<c-a&&ja)return ja.decode(z.subarray(a,c));c=0;for(d=\"\";;){var e=C[a+2*c>>1];if(0==e||c==b/2)return d;++c;d+=String.fromCharCode(e);}}function la(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)C[b>>1]=a.charCodeAt(e),b+=2;C[b>>1]=0;return b-d}function ma(a){return 2*a.length}\nfunction na(a,b){for(var c=0,d=\"\";!(c>=b/4);){var e=D[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e);}return d}function oa(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var g=a.charCodeAt(e);if(55296<=g&&57343>=g){var k=a.charCodeAt(++e);g=65536+((g&1023)<<10)|k&1023;}D[b>>2]=g;b+=4;if(b+4>c)break}D[b>>2]=0;return b-d}\nfunction pa(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4;}return b}var E,F,z,C,A,D,G,qa,ra;function sa(a){E=a;f.HEAP8=F=new Int8Array(a);f.HEAP16=C=new Int16Array(a);f.HEAP32=D=new Int32Array(a);f.HEAPU8=z=new Uint8Array(a);f.HEAPU16=A=new Uint16Array(a);f.HEAPU32=G=new Uint32Array(a);f.HEAPF32=qa=new Float32Array(a);f.HEAPF64=ra=new Float64Array(a);}var ta=f.INITIAL_MEMORY||16777216;f.wasmMemory?y=f.wasmMemory:y=new WebAssembly.Memory({initial:ta/65536,maximum:32768});\ny&&(E=y.buffer);ta=E.byteLength;sa(E);var I,ua=[],va=[],wa=[],xa=[];function ya(){var a=f.preRun.shift();ua.unshift(a);}var J=0,K=null;f.preloadedImages={};f.preloadedAudios={};function w(a){if(f.onAbort)f.onAbort(a);u(a);ea=!0;a=new WebAssembly.RuntimeError(\"abort(\"+a+\"). Build with -s ASSERTIONS=1 for more info.\");ba(a);throw a;}function Aa(a){var b=L;return String.prototype.startsWith?b.startsWith(a):0===b.indexOf(a)}function Ba(){return Aa(\"data:application/octet-stream;base64,\")}\nvar L=\"blosc_codec.wasm\";if(!Ba()){var Ca=L;L=f.locateFile?f.locateFile(Ca,\"\"):\"\"+Ca;}function Da(){try{if(v)return new Uint8Array(v);throw \"both async and sync fetching of the wasm failed\";}catch(a){w(a);}}function N(a){for(;0<a.length;){var b=a.shift();if(\"function\"==typeof b)b(f);else {var c=b.T;\"number\"===typeof c?void 0===b.O?I.get(c)():I.get(c)(b.O):c(void 0===b.O?null:b.O);}}}\nfunction Ea(a){this.N=a-16;this.$=function(b){D[this.N+8>>2]=b;};this.X=function(b){D[this.N+0>>2]=b;};this.Y=function(){D[this.N+4>>2]=0;};this.W=function(){F[this.N+12>>0]=0;};this.Z=function(){F[this.N+13>>0]=0;};this.V=function(b,c){this.$(b);this.X(c);this.Y();this.W();this.Z();};}function Fa(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+a);}}var Ga=void 0;\nfunction P(a){for(var b=\"\";z[a];)b+=Ga[z[a++]];return b}var Q={},R={},S={};function Ha(a){if(void 0===a)return \"_unknown\";a=a.replace(/[^a-zA-Z0-9_]/g,\"$\");var b=a.charCodeAt(0);return 48<=b&&57>=b?\"_\"+a:a}function Ia(a,b){a=Ha(a);return (new Function(\"body\",\"return function \"+a+'() {\\n \"use strict\"; return body.apply(this, arguments);\\n};\\n'))(b)}\nfunction Ja(a){var b=Error,c=Ia(a,function(d){this.name=a;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+\"\\n\"+d.replace(/^Error(:[^\\n]*)?\\n/,\"\"));});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+\": \"+this.message};return c}var Ka=void 0;function T(a){throw new Ka(a);}var La=void 0;\nfunction Ma(a,b){function c(h){h=b(h);if(h.length!==d.length)throw new La(\"Mismatched type converter count\");for(var l=0;l<d.length;++l)U(d[l],h[l]);}var d=[];d.forEach(function(h){S[h]=a;});var e=Array(a.length),g=[],k=0;a.forEach(function(h,l){R.hasOwnProperty(h)?e[l]=R[h]:(g.push(h),Q.hasOwnProperty(h)||(Q[h]=[]),Q[h].push(function(){e[l]=R[h];++k;k===g.length&&c(e);}));});0===g.length&&c(e);}\nfunction U(a,b,c){c=c||{};if(!(\"argPackAdvance\"in b))throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");var d=b.name;a||T('type \"'+d+'\" must have a positive integer typeid pointer');if(R.hasOwnProperty(a)){if(c.U)return;T(\"Cannot register type '\"+d+\"' twice\");}R[a]=b;delete S[a];Q.hasOwnProperty(a)&&(b=Q[a],delete Q[a],b.forEach(function(e){e();}));}var Na=[],V=[{},{value:void 0},{value:null},{value:!0},{value:!1}];\nfunction Qa(a){4<a&&0===--V[a].P&&(V[a]=void 0,Na.push(a));}function Ra(a){switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=Na.length?Na.pop():V.length;V[b]={P:1,value:a};return b}}function Sa(a){return this.fromWireType(G[a>>2])}function Ta(a){if(null===a)return \"null\";var b=typeof a;return \"object\"===b||\"array\"===b||\"function\"===b?a.toString():\"\"+a}\nfunction Ua(a,b){switch(b){case 2:return function(c){return this.fromWireType(qa[c>>2])};case 3:return function(c){return this.fromWireType(ra[c>>3])};default:throw new TypeError(\"Unknown float type: \"+a);}}function Va(a){var b=Function;if(!(b instanceof Function))throw new TypeError(\"new_ called with constructor type \"+typeof b+\" which is not a function\");var c=Ia(b.name||\"unknownFunctionName\",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c}\nfunction Wa(a){for(;a.length;){var b=a.pop();a.pop()(b);}}function Xa(a,b){var c=f;if(void 0===c[a].L){var d=c[a];c[a]=function(){c[a].L.hasOwnProperty(arguments.length)||T(\"Function '\"+b+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+c[a].L+\")!\");return c[a].L[arguments.length].apply(this,arguments)};c[a].L=[];c[a].L[d.S]=d;}}\nfunction Ya(a,b,c){f.hasOwnProperty(a)?((void 0===c||void 0!==f[a].L&&void 0!==f[a].L[c])&&T(\"Cannot register public name '\"+a+\"' twice\"),Xa(a,a),f.hasOwnProperty(c)&&T(\"Cannot register multiple overloads of a function with the same number of arguments (\"+c+\")!\"),f[a].L[c]=b):(f[a]=b,void 0!==c&&(f[a].ba=c));}function Za(a,b){for(var c=[],d=0;d<a;d++)c.push(D[(b>>2)+d]);return c}\nfunction $a(a,b){0<=a.indexOf(\"j\")||w(\"Assertion failed: getDynCaller should only be called with i64 sigs\");var c=[];return function(){c.length=arguments.length;for(var d=0;d<arguments.length;d++)c[d]=arguments[d];var e;-1!=a.indexOf(\"j\")?e=c&&c.length?f[\"dynCall_\"+a].apply(null,[b].concat(c)):f[\"dynCall_\"+a].call(null,b):e=I.get(b).apply(null,c);return e}}\nfunction ab(a,b){a=P(a);var c=-1!=a.indexOf(\"j\")?$a(a,b):I.get(b);\"function\"!==typeof c&&T(\"unknown function pointer with signature \"+a+\": \"+b);return c}var bb=void 0;function cb(a){a=db(a);var b=P(a);W(a);return b}function eb(a,b){function c(g){e[g]||R[g]||(S[g]?S[g].forEach(c):(d.push(g),e[g]=!0));}var d=[],e={};b.forEach(c);throw new bb(a+\": \"+d.map(cb).join([\", \"]));}\nfunction fb(a,b,c){switch(b){case 0:return c?function(d){return F[d]}:function(d){return z[d]};case 1:return c?function(d){return C[d>>1]}:function(d){return A[d>>1]};case 2:return c?function(d){return D[d>>2]}:function(d){return G[d>>2]};default:throw new TypeError(\"Unknown integer type: \"+a);}}var gb={};\nfunction hb(){if(!ib){var a={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:(\"object\"===typeof navigator&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\",_:ca||\"./this.program\"},b;for(b in gb)a[b]=gb[b];var c=[];for(b in a)c.push(b+\"=\"+a[b]);ib=c;}return ib}for(var ib,jb=[null,[],[]],kb=Array(256),X=0;256>X;++X)kb[X]=String.fromCharCode(X);Ga=kb;Ka=f.BindingError=Ja(\"BindingError\");La=f.InternalError=Ja(\"InternalError\");\nf.count_emval_handles=function(){for(var a=0,b=5;b<V.length;++b)void 0!==V[b]&&++a;return a};f.get_first_emval=function(){for(var a=5;a<V.length;++a)if(void 0!==V[a])return V[a];return null};bb=f.UnboundTypeError=Ja(\"UnboundTypeError\");va.push({T:function(){lb();}});\nvar mb={p:function(a){return Y(a+16)+16},o:function(a,b,c){(new Ea(a)).V(b,c);throw a;},z:function(a,b,c,d,e){var g=Fa(c);b=P(b);U(a,{name:b,fromWireType:function(k){return !!k},toWireType:function(k,h){return h?d:e},argPackAdvance:8,readValueFromPointer:function(k){if(1===c)var h=F;else if(2===c)h=C;else if(4===c)h=D;else throw new TypeError(\"Unknown boolean type size: \"+b);return this.fromWireType(h[k>>g])},M:null});},y:function(a,b){b=P(b);U(a,{name:b,fromWireType:function(c){var d=\nV[c].value;Qa(c);return d},toWireType:function(c,d){return Ra(d)},argPackAdvance:8,readValueFromPointer:Sa,M:null});},h:function(a,b,c){c=Fa(c);b=P(b);U(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,e){if(\"number\"!==typeof e&&\"boolean\"!==typeof e)throw new TypeError('Cannot convert \"'+Ta(e)+'\" to '+this.name);return e},argPackAdvance:8,readValueFromPointer:Ua(b,c),M:null});},e:function(a,b,c,d,e,g){var k=Za(b,c);a=P(a);e=ab(d,e);Ya(a,function(){eb(\"Cannot call \"+a+\" due to unbound types\",\nk);},b-1);Ma(k,function(h){var l=a,n=a;h=[h[0],null].concat(h.slice(1));var p=e,q=h.length;2>q&&T(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");for(var x=null!==h[1]&&!1,B=!1,m=1;m<h.length;++m)if(null!==h[m]&&void 0===h[m].M){B=!0;break}var Oa=\"void\"!==h[0].name,H=\"\",M=\"\";for(m=0;m<q-2;++m)H+=(0!==m?\", \":\"\")+\"arg\"+m,M+=(0!==m?\", \":\"\")+\"arg\"+m+\"Wired\";n=\"return function \"+Ha(n)+\"(\"+H+\") {\\nif (arguments.length !== \"+(q-2)+\") {\\nthrowBindingError('function \"+n+\" called with ' + arguments.length + ' arguments, expected \"+\n(q-2)+\" args!');\\n}\\n\";B&&(n+=\"var destructors = [];\\n\");var Pa=B?\"destructors\":\"null\";H=\"throwBindingError invoker fn runDestructors retType classParam\".split(\" \");p=[T,p,g,Wa,h[0],h[1]];x&&(n+=\"var thisWired = classParam.toWireType(\"+Pa+\", this);\\n\");for(m=0;m<q-2;++m)n+=\"var arg\"+m+\"Wired = argType\"+m+\".toWireType(\"+Pa+\", arg\"+m+\"); // \"+h[m+2].name+\"\\n\",H.push(\"argType\"+m),p.push(h[m+2]);x&&(M=\"thisWired\"+(0<M.length?\", \":\"\")+M);n+=(Oa?\"var rv = \":\"\")+\"invoker(fn\"+(0<M.length?\", \":\"\")+M+\");\\n\";\nif(B)n+=\"runDestructors(destructors);\\n\";else for(m=x?1:2;m<h.length;++m)q=1===m?\"thisWired\":\"arg\"+(m-2)+\"Wired\",null!==h[m].M&&(n+=q+\"_dtor(\"+q+\"); // \"+h[m].name+\"\\n\",H.push(q+\"_dtor\"),p.push(h[m].M));Oa&&(n+=\"var ret = retType.fromWireType(rv);\\nreturn ret;\\n\");H.push(n+\"}\\n\");h=Va(H).apply(null,p);m=b-1;if(!f.hasOwnProperty(l))throw new La(\"Replacing nonexistant public symbol\");void 0!==f[l].L&&void 0!==m?f[l].L[m]=h:(f[l]=h,f[l].S=m);return []});},c:function(a,b,c,d,e){function g(n){return n}b=\nP(b);-1===e&&(e=4294967295);var k=Fa(c);if(0===d){var h=32-8*c;g=function(n){return n<<h>>>h};}var l=-1!=b.indexOf(\"unsigned\");U(a,{name:b,fromWireType:g,toWireType:function(n,p){if(\"number\"!==typeof p&&\"boolean\"!==typeof p)throw new TypeError('Cannot convert \"'+Ta(p)+'\" to '+this.name);if(p<d||p>e)throw new TypeError('Passing a number \"'+Ta(p)+'\" from JS side to C/C++ side to an argument of type \"'+b+'\", which is outside the valid range ['+d+\", \"+e+\"]!\");return l?p>>>0:p|0},argPackAdvance:8,readValueFromPointer:fb(b,\nk,0!==d),M:null});},b:function(a,b,c){function d(g){g>>=2;var k=G;return new e(E,k[g+1],k[g])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=P(c);U(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{U:!0});},i:function(a,b){b=P(b);var c=\"std::string\"===b;U(a,{name:b,fromWireType:function(d){var e=G[d>>2];if(c)for(var g=d+4,k=0;k<=e;++k){var h=d+4+k;if(k==e||0==z[h]){g=g?ha(z,g,h-g):\"\";if(void 0===l)var l=g;else l+=String.fromCharCode(0),\nl+=g;g=h+1;}}else {l=Array(e);for(k=0;k<e;++k)l[k]=String.fromCharCode(z[d+4+k]);l=l.join(\"\");}W(d);return l},toWireType:function(d,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var g=\"string\"===typeof e;g||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||T(\"Cannot pass non-string to std::string\");var k=(c&&g?function(){for(var n=0,p=0;p<e.length;++p){var q=e.charCodeAt(p);55296<=q&&57343>=q&&(q=65536+((q&1023)<<10)|e.charCodeAt(++p)&1023);127>=q?++n:n=2047>=q?n+\n2:65535>=q?n+3:n+4;}return n}:function(){return e.length})(),h=Y(4+k+1);G[h>>2]=k;if(c&&g)ia(e,h+4,k+1);else if(g)for(g=0;g<k;++g){var l=e.charCodeAt(g);255<l&&(W(h),T(\"String has UTF-16 code units that do not fit in 8 bits\"));z[h+4+g]=l;}else for(g=0;g<k;++g)z[h+4+g]=e[g];null!==d&&d.push(W,h);return h},argPackAdvance:8,readValueFromPointer:Sa,M:function(d){W(d);}});},d:function(a,b,c){c=P(c);if(2===b){var d=ka;var e=la;var g=ma;var k=function(){return A};var h=1;}else 4===b&&(d=na,e=oa,g=pa,k=function(){return G},\nh=2);U(a,{name:c,fromWireType:function(l){for(var n=G[l>>2],p=k(),q,x=l+4,B=0;B<=n;++B){var m=l+4+B*b;if(B==n||0==p[m>>h])x=d(x,m-x),void 0===q?q=x:(q+=String.fromCharCode(0),q+=x),x=m+b;}W(l);return q},toWireType:function(l,n){\"string\"!==typeof n&&T(\"Cannot pass non-string to C++ string type \"+c);var p=g(n),q=Y(4+p+b);G[q>>2]=p>>h;e(n,q+4,p+b);null!==l&&l.push(W,q);return q},argPackAdvance:8,readValueFromPointer:Sa,M:function(l){W(l);}});},A:function(a,b){b=P(b);U(a,{aa:!0,name:b,argPackAdvance:0,fromWireType:function(){},\ntoWireType:function(){}});},n:Qa,x:function(a){4<a&&(V[a].P+=1);},C:function(a,b){var c=R[a];void 0===c&&T(\"_emval_take_value has unknown type \"+cb(a));a=c.readValueFromPointer(b);return Ra(a)},t:function(){w();},r:function(a,b,c){z.copyWithin(a,b,b+c);},s:function(a){a>>>=0;var b=z.length;if(2147483648<a)return !1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(16777216,a,d);0<d%65536&&(d+=65536-d%65536);a:{try{y.grow(Math.min(2147483648,d)-E.byteLength+65535>>>16);sa(y.buffer);\nvar e=1;break a}catch(g){}e=void 0;}if(e)return !0}return !1},u:function(a,b){var c=0;hb().forEach(function(d,e){var g=b+c;e=D[a+4*e>>2]=g;for(g=0;g<d.length;++g)F[e++>>0]=d.charCodeAt(g);F[e>>0]=0;c+=d.length+1;});return 0},v:function(a,b){var c=hb();D[a>>2]=c.length;var d=0;c.forEach(function(e){d+=e.length+1;});D[b>>2]=d;return 0},w:function(){return 0},q:function(){},g:function(a,b,c,d){for(var e=0,g=0;g<c;g++){for(var k=D[b+8*g>>2],h=D[b+(8*g+4)>>2],l=0;l<h;l++){var n=z[k+l],p=jb[a];0===n||10===n?\n((1===a?da:u)(ha(p,0)),p.length=0):p.push(n);}e+=h;}D[d>>2]=e;return 0},a:y,l:function(){return 0},k:function(){return 0},j:function(){},B:function(){return 6},m:function(){},f:function(){}};\n(function(){function a(e){f.asm=e.exports;I=f.asm.D;J--;f.monitorRunDependencies&&f.monitorRunDependencies(J);0==J&&(K&&(e=K,K=null,e()));}function b(e){a(e.instance);}function c(e){return Promise.resolve().then(Da).then(function(g){return WebAssembly.instantiate(g,d)}).then(e,function(g){u(\"failed to asynchronously prepare wasm: \"+g);w(g);})}var d={a:mb};J++;f.monitorRunDependencies&&f.monitorRunDependencies(J);if(f.instantiateWasm)try{return f.instantiateWasm(d,\na)}catch(e){return u(\"Module.instantiateWasm callback failed with error: \"+e),!1}(function(){return v||\"function\"!==typeof WebAssembly.instantiateStreaming||Ba()||Aa(\"file://\")||\"function\"!==typeof fetch?c(b):fetch(L,{credentials:\"same-origin\"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(g){u(\"wasm streaming compile failed: \"+g);u(\"falling back to ArrayBuffer instantiation\");return c(b)})})})().catch(ba);return {}})();\nvar lb=f.___wasm_call_ctors=function(){return (lb=f.___wasm_call_ctors=f.asm.E).apply(null,arguments)},Y=f._malloc=function(){return (Y=f._malloc=f.asm.F).apply(null,arguments)},W=f._free=function(){return (W=f._free=f.asm.G).apply(null,arguments)},db=f.___getTypeName=function(){return (db=f.___getTypeName=f.asm.H).apply(null,arguments)};f.___embind_register_native_and_builtin_types=function(){return (f.___embind_register_native_and_builtin_types=f.asm.I).apply(null,arguments)};\nf.dynCall_jiiiii=function(){return (f.dynCall_jiiiii=f.asm.J).apply(null,arguments)};f.dynCall_jiji=function(){return (f.dynCall_jiji=f.asm.K).apply(null,arguments)};var Z;K=function nb(){Z||ob();Z||(K=nb);};\nfunction ob(){function a(){if(!Z&&(Z=!0,f.calledRun=!0,!ea)){N(va);N(wa);aa(f);if(f.onRuntimeInitialized)f.onRuntimeInitialized();if(f.postRun)for(\"function\"==typeof f.postRun&&(f.postRun=[f.postRun]);f.postRun.length;){var b=f.postRun.shift();xa.unshift(b);}N(xa);}}if(!(0<J)){if(f.preRun)for(\"function\"==typeof f.preRun&&(f.preRun=[f.preRun]);f.preRun.length;)ya();N(ua);0<J||(f.setStatus?(f.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){f.setStatus(\"\");},1);a();},1)):a());}}\nf.run=ob;if(f.preInit)for(\"function\"==typeof f.preInit&&(f.preInit=[f.preInit]);0<f.preInit.length;)f.preInit.pop()();noExitRuntime=!0;ob();\n\n\n return blosc_codec.ready\n}\n);\n})();\n\nvar wasmSrc = \"AGFzbQEAAAABwAImYAF/AX9gA39/fwF/YAV/f39/fwF/YAJ/fwF/YAJ/fwBgAX8AYAN/f38AYAR/f39/AX9gBH9/f38AYAAAYAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAd/f39/f39/AX9gBH9/f38BfmAFf39/f38BfmAIf39/f39/f38Bf2AJf39/f39/f39/AX9gAn5/AX9gC39/f39/f39/f39/AX9gA39+fwF+YAN/f34AYAN/f34Bf2ADfn9/AX9gAn5+AX5gCH9/f39/f39/AGAJf39/f39/f39/AGAFf35/f38AYAABf2ANf39/f39/f39/f39/fwF/YA9/f39/f39/f39/f39/f38Bf2AFf39/fn8Bf2AGf3x/f39/AX9gAX8BfmACf38BfmAHf35/f39/fwF+YAF+AX5gBH5/f34BfgK0AR0BYQFiAAYBYQFjAAsBYQFkAAYBYQFlAAwBYQFmAAUBYQFnAAcBYQFoAAYBYQFpAAQBYQFqAAMBYQFrAAABYQFsAAABYQFtAAMBYQFuAAUBYQFvAAYBYQFwAAABYQFxAAIBYQFyAAEBYQFzAAABYQF0AAkBYQF1AAMBYQF2AAMBYQF3AAABYQF4AAUBYQF5AAQBYQF6AAsBYQFBAAQBYQFCAAcBYQFDAAMBYQFhAgGAAoCAAgOtBKsEBAEBAwIACAAAAAQHAQEBAAIBAAQDAQMBBAEFAwUFAAYAAwAIAgIDAQgBAwYBCwEBAAQYBAEEBwoGAwMLBwgBBggDCwUDAwMGCAEGBAYABwIGAAABAAIEBAYEBQMDAAsABgwDAAANBgIYAwkAAQwGBggAAgAAAAUQHQAEAQMbBwcHBwMDBh4TBAgBAgECCgcGCgYEAAQAARARAwAIAAYDBgAFBQUFBQUJCwUGAQAFBQICAgcHAwQEAAcSARIXJQQGAwMDAAUEAQABBQUDAAMGCgAFBQMBHwUDAwUFAREDBwoEAAUBAwcKCiEGBQEABgYGBQUIAxMNAAADAAkBBwcHBwcHBwcAAQgGBwMRAgICAgYCCAoCAgcCCAAFBAUFAAMAAAIKBBQACQwMCwMLCAgICwwAAQEFAAUABQkDAAMSEhcGAQAUAAAJCQkJBgAJCQkJCQkJCQkJCQkJDQ0ABgcBAQcHAgEBAgEEAwoABAcFBRwKCgoFAgoCAgMaGQUE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BCAGanQgAWohASACIARHIQwgBEEBaiEEIAwNAAsLIA1BAWoiDSACayIBIAcgAWtBAWoiCEkEQCAKQQJJIQYDQEEBIQQgBkUEQANAIARBAnQiCiADIAFBNGxqaiADIApqKAIAIAF2NgIAIAIgBEchCiAEQQFqIQQgCg0ACwsgAUEBaiIBIAhJDQALCyAAQQRqIAcgCyAJIANBpAVqIAMgAiANEJYDIAVBAToABSAFIAc6AAYgACAFKAIENgIACyAQIQQLIAVBEGokACAEC+ACAQl/IwBBEGsiBCQAIARBADYCDCAEQQA2AggCQCADQUBrIgkgAyAEQQhqIARBDGogASACEPsBIggQIQ0AIARBBGogACgCABA0QQEhASAEKAIMIgUgBC0ABEEBak0EQEEAIQIgBEEAOgAFIAQgBToABiAAIAQoAgQ2AgAgBUEBakEBSwRAA0AgAyABQQJ0aiIGKAIAIQcgBiACNgIAIAcgAUF/anQgAmohAiABIAVGIQYgAUEBaiEBIAZFDQALCyAEKAIIIgdFDQEgAEEEaiEKIAVBAWohC0EAIQADQCADIAAgCWotAAAiBUECdGoiBigCACIBIAFBASAFdEEBdSIMaiICSQRAIAsgBWshBQNAIAogAUEBdGoiAiAFOgABIAIgADoAACABQQFqIgEgBigCACAMaiICSQ0ACwsgBiACNgIAIABBAWoiACAHRw0ACwwBC0FUIQgLIARBEGokACAICxQAIAAoAABBgPqerQNsQSAgAWt2CygAAkACQAJAIAAoAowBQX9qDgIAAQILIAAgARDCAw8LIAAgARDHAwsLOgEBfyABIAAoAgRrIgEgACgCGCICQYAIaksEQCAAIAEgASACa0GAeGoiAEGABCAAQYAESRtrNgIYCwsVACAAEJEBBEAgACgCBA8LIAAtAAsLRQEBfwJAIAIgA00gACABTXINAANAIABBf2oiAC0AACACQX9qIgItAABHDQEgBEEBaiEEIAIgA00NASAAIAFLDQALCyAECwwAIABBICABa62IpwsQACAAIAEgAigCCHRBA3RqCxIAIABBwAAgAWutiKdBACABGwsvAEEgIAFrIgEgAkkEQCAAp0F/IAJ0QX9zcQ8LIAAgASACa62Ip0F/IAJ0QX9zcQsgACACrSAAIAGtQgp8IAN+fULjyJW9y5vvjU9+fEIK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nn9+QuPcypX8zvL1hX98IQYgBCIDIgFBCGoiBCACTQ0ACwsCQCADQQRqIgEgAksEQCADIQEMAQsgAygAAK1Ch5Wvr5i23puef34gBoVCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQYLIAEgAkkEQCAAIAVqQShqIQADQCABMQAAQsXP2bLx5brqJ34gBoVCC4lCh5Wvr5i23puef34hBiABQQFqIgEgAEcNAAsLIAZCIYggBoVCz9bTvtLHq9lCfiIGQh2IIAaFQvnz3fGZ9pmrFn4iBkIgiCAGhQv4AgICfwR+IAAgACkDACACrXw3AwACQAJAIAAoAkgiAyACakEfTQRAIAAgA2pBKGogASACEKsBIAAoAkggAmohAQwBCyABIAJqIQQCQAJ/IAMEQCAAQShqIgIgA2ogAUEgIANrEKsBIAAgACkDCCACKQAAEE43AwggACAAKQMQIAApADAQTjcDECAAIAApAxggACkAOBBONwMYIAAgACkDICAAQUBrKQAAEE43AyAgACgCSCECIABBADYCSCABIAJrQSBqIQELIAFBIGogBEsLBEAgASECDAELIARBYGohAyAAKQMgIQUgACkDGCEGIAApAxAhByAAKQMIIQgDQCAIIAEpAAAQTiEIIAcgASkACBBOIQcgBiABKQAQEE4hBiAFIAEpABgQTiEFIAFBIGoiAiEBIAIgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyACIARPDQEgAEEoaiACIAQgAmsiARCrAQsgACABNgJICwtlACAAQgA3AyggAEL56tDQ58mh5OEANwMgIABCADcDGCAAQs/W077Sx6vZQjcDECAAQtbrgu7q/Yn14AA3AwggAEIANwMAIABCADcDMCAAQgA3AzggAEFAa0IANwMAIABCADcDSAsVACABBEAgAiAAIAERAwAPCyAAEEwLYQEDf0F+IQECQCAARQ0AIAAoAhwiAkUNACAAKAIkIgNFDQAgAigCNCIBBEAgACgCKCABIAMRBAAgACgCJCEDIAAoAhwhAgsgACgCKCACIAMRBABBACEBIABBADYCHAsgAQudCwEMfyACQQBOBEBBBEEDIAEvAQIiCxshB0EHQYoBIAsbIQQgAEG5LWohCEF/IQYDQCALIQkCQCAJIAEgDCINQQFqIgxBAnRqLwECIgtH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AhQgCiAAKAIIaiADOgAAIAAgACgCFCIDQQFqNgIUIAMgACgCCGogAEG5LWotAAA6AAAgACABQRAgACgCvC0iAWt2OwG4LSAAIAEgAmpBcGo2ArwtDwsgACACIARqNgK8LQuXAQECfwJAAn8gACgCvC0iAUEJTgRAIAAgACgCFCIBQQFqNgIUIAEgACgCCGogAC0AuC06AAAgACAAKAIUIgFBAWo2AhQgAEG5LWotAAAhAiABIAAoAghqDAELIAFBAUgNASAAIAAoAhQiAUEBajYCFCAALQC4LSECIAEgACgCCGoLIAI6AAALIABBADYCvC0gAEEAOwG4LQvaBAEBfwNAIAAgAUECdGpBADsBlAEgAUEBaiIBQZ4CRw0ACyAAQQA7AfwUIABBADsBiBMgAEHEFWpBADsBACAAQcAVakEAOwEAIABBvBVqQQA7AQAgAEG4FWpBADsBACAAQbQVakEAOwEAIABBsBVqQQA7AQAgAEGsFWpBADsBACAAQagVakEAOwEAIABBpBVqQQA7AQAgAEGgFWpBADsBACAAQZwVakEAOwEAIABBmBVqQQA7AQAgAEGUFWpBADsBACAAQZAVakEAOwEAIABBjBVqQQA7AQAgAEGIFWpBADsBACAAQYQVakEAOwEAIABBgBVqQQA7AQAgAEH8E2pBADsBACAAQfgTakEAOwEAIABB9BNqQQA7AQAgAEHwE2pBADsBACAAQewTakEAOwEAIABB6BNqQQA7AQAgAEHkE2pBADsBACAAQeATakEAOwEAIABB3BNqQQA7AQAgAEHYE2pBADsBACAAQdQTakEAOwEAIABB0BNqQQA7AQAgAEHME2pBADsBACAAQcgTakEAOwEAIABBxBNqQQA7AQAgAEHAE2pBADsBACAAQbwTakEAOwEAIABBuBNqQQA7AQAgAEG0E2pBADsBACAAQbATakEAOwEAIABBrBNqQQA7AQAgAEGoE2pBADsBACAAQaQTakEAOwEAIABBoBNqQQA7AQAgAEGcE2pBADsBACAAQZgTakEAOwEAIABBlBNqQQA7AQAgAEGQE2pBADsBACAAQYwTakEAOwEAIABCADcCrC0gAEGUCWpBATsBACAAQQA2AqgtIABBADYCoC0LngEBAn8gACAALwG4LSADQf//A3EiBCAAKAK8LSIDdHIiBTsBuC0gAAJ/IANB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A0AgCSAFIARBAXRqIgotAAEiC0ECdGoiDCgCACEDIAlBPGogCi0AAEEIdCAIakH//wNxEC8gCUECOgA/IAkgByALayIKIAJqOgA+IANBASABIAprdGohCiAJKAI8IQsDQCAAIANBAnRqIAs2AQAgA0EBaiIDIApJDQALIAwgCjYCACAEQQFqIgQgBkcNAAsLIAlBQGskAAvdAgEJfyMAQdAAayIJJAAgCUFAayAFKAIwNgIAIAkgBSkCKDcDOCAJIAUpAiA3AzAgCSAFKQIYNwMoIAkgBSkCEDcDICAJIAUpAgA3AxAgCSAFKQIINwMYIAMEQCAHIAZrIQ8gByABayEQA0BBASABIAcgAiALQQF0aiIGLQABIgxrIghrIgp0IQ0gBi0AACEOIAlBEGogDEECdGoiDCgCACEGAkAgCiAPTwRAIAAgBkECdGogCiAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QlQMgBiANaiEIDAELIAlBDGogDhAvIAlBAToADyAJIAg6AA4gBiAGIA1qIghPDQAgCSgCDCEKA0AgACAGQQJ0aiAKNgEAIAZBAWoiBiAIRw0ACwsgDCAINgIAIAtBAWoiCyADRw0ACwsgCUHQAGokAAs+AQN/IAAEQCAAKAIAIABBvNABaigCACIBIABBwNABaigCACICIABBxNABaigCACIDEGQgACABIAIgAxBkCwvMAQEBfyAAIAEoArTQATYCmOIBIAAgASgCBCICNgLA4AEgACACNgK84AEgACACIAEoAghqIgI2ArjgASAAIAI2AsTgASABKAK40AEEQCAAQoGAgIAQNwOI4QEgACABQaTQAGo2AgwgACABQZQgajYCCCAAIAFBnDBqNgIEIAAgAUEMajYCACAAQazQAWogAUGo0AFqKAIANgIAIABBsNABaiABQazQAWooAgA2AgAgAEG00AFqIAFBsNABaigCADYCAA8LIABCADcDiOEBC6JIAS5/IwBB4ABrIhIkACAAKAKEASEGIAAoAgQhByAAKAKIASEFIAAoAgwhCCASIAAoAhg2AlwgACgCPCEbIABBQGsoAgAhHCAAQSxqIiYgAyAEQQIQWSADIAcgCGogA0ZqIg0gAyAEaiIMQXhqIi5JBEAgBUH/HyAFQf8fSRsh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AnRBsKcBaigCABBHIAtBOGoQOSALQThqIAAvAQYgAi0AAEECdEGQpAFqKAIAEEcgC0E4ahA5AkAgCgRAIAEtAAAiASABQRggAUEYSRsiAmsiAQRAIAtBOGogACgCACABEEcgC0E4ahA5CyALQThqIAAoAgAgAXYgAhBHDAELIAtBOGogACgCACABLQAAEEcLIAtBOGoQOSAJQQJPBEAgCUF+aiEMA0AgByAMai0AACECIAMgDGotAAAhBCALQThqIAtBGGogBSAMai0AACIAEGwgC0E4aiALQShqIAQQbCALQThqEDkgC0E4aiALQQhqIAIQbCALQThqEDkgC0E4aiAIIAxBA3RqIgEvAQQgAkECdEGwpwFqKAIAIgIQRyACIARBAnRBkKQBaigCACICakEZTwRAIAtBOGoQOQsgC0E4aiABLwEGIAIQRyALQThqEDkCQCAKBEAgACAAQRggAEEYSRsiAmsiAARAIAtBOGogASgCACAAEEcgC0E4ahA5CyALQThqIAEoAgAgAHYgAhBHDAELIAtBOGogASgCACAAEEcLIAtBOGoQOSAMQX9qIgwgCUkNAAsLIAtBOGogCygCKCALKAI0EHQgC0E4aiALKAIYIAsoAiQQdCALQThqIAsoAgggCygCFBB0IAtBOGoQ/QEiAEG6fyAAGyEMCyALQdAAaiQAIAwLLwAgACACQQN0aigCBCIAQRB2QQFqIgJBCHRBfyABdCAAayACQRB0akEIdCABdmsLTwEEfwNAIANBASAAIARBAnRqKAIAIgNBCHQiBSACbiIGIAUgAkkbIAYgAxtBAnRBkJwBaigCACADbGohAyAEQQFqIgQgAU0NAAsgA0EIdgtKAQF/IwBB8ARrIgQkACAEIAMgAiABEKcBIgMgACACIAEQpgEiAhAhRQRAIARB8ABqQYAEIAQgASADEKgBIQILIARB8ARqJAAgAguKAQEIfyMAQRBrIgMkACADIAAQc0F/IQUCQCAALwACIAJJDQAgAygCDCIHQQh0QYACaiEIIAMoAgghCUEAIQADQCAJIAcgABDJAyEGIAEgAEECdGooAgAiCgRAIAYgCE8NAiAGIApsIARqIQQLIABBAWoiACACTQ0ACyAEQQh2IQULIANBEGokACAFC18BAn9BCCABayEFQQAhAQNAIARBASAAIAFBAXRqLwEAIgQg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ASACEEUiARAhDQEgBEEQaiAEQRhqIAMQggEgBEEIaiAEQRhqIAMQggFBACEBAkAgBEEYahAjBEBBACEDDAELA0AgACABaiICIARBEGogBEEYahBiOgAAIAIgBEEIaiAEQRhqEGI6AAEgBEEYahAjBEAgAUECciEDDAILIAIgBEEQaiAEQRhqEGI6AAIgAiAEQQhqIARBGGoQYjoAAyABQQRqIQMgBEEYahAjIQIgAUH3AUsNASADIQEgAkUNAAsLAn8DQEG6fyEBIANB/QFLDQMgACADaiICIARBEGogBEEYahBiOgAAIAIiBkEBaiEFIARBGGoQI0EDRgRAQQIhAyAEQQhqDAILIANB/AFLDQMgBiAEQQhqIARBGGoQYjoAASADQQJqIQMgBEEYahAjQQNHDQALIAAgA2ohBUEDIQMgBEEQagshASAFIAEgBEEYahBiOgAAIAIgA2ogAGshAQwBCyAEQRhqIAEgAhBFIgEQIQ0AIARBEGogBEEYaiADEIIBIARBCGogBEEYaiADEIIBQQAhAQJAIARBGGoQIwRAQQAhAwwBCwNAIAAgAWoiAiAEQRBqIARBGGoQYToAACACIARBCGogBEEYahBhOgABIARBGGoQIwRAIAFBAnIhAwwCCyACIARBEGogBEEYahBhOgACIAIgBEEIaiAEQRhqEGE6AAMgAUEEaiEDIARBGGoQIyECIAFB9wFLDQEgAyEBIAJFDQALCwJ/A0BBun8hASADQf0BSw0CIAAgA2oiAiAEQRBqIARBGGoQYToAACACIgZBAWohBSAEQRhqECNBA0YEQEECIQMgBEEIagwCCyADQfwBSw0CIAYgBEEIaiAEQRhqEGE6AAEgA0ECaiEDIARBGGoQI0EDRw0ACyAAIANqIQVBAyEDIARBEGoLIQEgBSABIARBGGoQYToAACACIANqIABrIQELIARBMGokACABC68DAQp/IwBBgARrIgkkAEFSIQUCQCACQf8BSw0AIABBBGohCkGAgAQgA0F/anRBEHUhC0EBIAN0IghBf2oiDCEHQQEhBQNAAkAgASAEQQF0Ig1qLwEAIgZB//8DRgRAIAogB0ECdGogBDoAAiAHQX9qIQdBASEGDAELIAVBACALIAZBEHRBEHVKGyEFCyAJIA1qIAY7AQAgAiAERyEGIARBAWohBCAGDQALIAAgBTsB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IAIgASgCCGpBADoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQA6AABBAiECIAEoAoQBIgNBCUcEQEEEIAEoAogBQQFKQQJ0IANBAkgbIQILIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQM6AAAgAUHxADYCBAwNCyACKAIkIQMgAigCHCEEIAIoAhAhBSACKAIsIQYgAigCACEHIAEgASgCFCIIQQFqNgIUQQIhAiAIIAEoAghqIAZBAEdBAXQgB0EAR3IgBUEAR0ECdHIgBEEAR0EDdHIgA0EAR0EEdHI6AAAgASgCHCgCBCEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAIcKAIEIQMgASABKAIUIgRBAWo2AhQgBCABKAIIaiADQQh2OgAAIAEoAhwvAQYhAyABIAEoAhQiBEEBajYCFCAEIAEoAghqIAM6AAAgASgCHC0AByEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAKEASIDQQlHBEBBBCABKAKIAUEBSkECdCADQQJIGyECCyABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCDCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAAAJ/IAEoAhwiBCgCEARAIAQoAhQhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCFCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACABKAIcIQQLIAQoAiwLBEAgACAAKAIwIAEoAgggASgCFBA1NgIwCyABQcUANgIEIAFBADYCIAwCCyABKAIwQQx0QYCQfmohBEEAIQICQCABKAKIAUEBSg0AIAEoAoQBIgNBAkgNAEHAACECIANBBkgNAEGAAUHAASADQQZGGyECCyABQfEANgIEIAEgAiAEciICQSByIAIgASgCbBsiAkEfcCACckEfcxB1IAEoAmwEQCABIAAvATIQdSABIAAvATAQdQsgAEEAQQBBABBlNgIwIAEoAgQhAgsgAkHFAEcNASABKAIcIQQLAkAgBCgCEARAIAEoAhQhAiABKAIgIgUgBC8BFE8NASACIQMDQCABKAIMIAJGBEACQCACIANNDQAgBCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIcIQQgASgCFCICIAEoAgxGDQMgASgCICEFIAIhAwsgBCgCECAFai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgASABKAIgQQFqIgU2AiAgBSABKAIcIgQvARRPBEAgAyECDAMFIAEoAhQhAgwBCwALAAsgAUHJADYCBAwCCwJAIAQoAixFDQAgASgCFCIDIAJNDQAgACAAKAIwIAEoAgggAmogAyACaxA1NgIwCyABKAIgIAQoAhRGBEAgAUHJADYCBCABQQA2AiAMAgsgASgCBCECCyACQckARw0BIAEoAhwhBAsgBCgCHEUNAiABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIcIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB2wBHDQMgASgCHCEEDAILIAFBADYCIAsgAUHbADYCBAsgBCgCJEUNASABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIkIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB5wBHDQIgASgCHCEEDAELIAFB5wA2AgQLIAQoAiwEQCABKAIUIgVBAmoiAiABKAIMIgRLBH8gABA2IAEoAgwhBCABKAIUIgVBAmoFIAILIARLDQEgACgCMCECIAEgBUEBajYCFCABKAIIIAVqIAI6AAAgACgCMCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAAQQBBAEEAEDU2AjAgAUHxADYCBAwBCyABQfEANgIECwJAIAEoAhQEQCAAEDYgACgCEARAIAAoAgQhAgwCCwwECyAAKAIEIgINAEEAIQILAkACQAJAIAEoAgQiA0GaBUYEQCACRQ0BDAULIAINAQsgA0GaBUcNACABKAJ0RQ0BCwJ/AkACQAJAIAEoAogBQX5qDgIAAQILIAEQnQQMAgsgARCcBAwBCyABQQQgASgChAFBDGxBuNcAaigCABEDAAsiAkF+cUECRgRAIAFBmgU2AgQLIAJBfXFFBEBBACECIAAoAhANAgwECyACQQFHDQAgAUEAQQBBABCOAiAAEDYgACgCEA0ADAMLQQEhAiABKAIYIgNBAUgNACAAKAIwIQICQCADQQJGBEAgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAjAhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAJBCHY6AAAgAC8BMiECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACAALQAzIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAgghAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgACgCCCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAALwEKIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAtAAshAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAMAQsgASACQRB2EHUgASAALwEwEHULIAAQNiABKAIYIgBBAU4EQCABQQAgAGs2AhgLIAEoAhRFIQILIAIPCyAAQceEATYCGEF7DwsgAUF/NgIoQQAL3QEBBn8CQCAAKAKAgBAiBSAAKAKEgBAiAyAAKAKMgBAiBGpBBGpJDQAgACgClIAQIgIgBSADa0F9aiIGTw0AA0AgACACQf//A3FBAXRqQYCACGogAiAAIAIgA2oQOkECdGoiBCgCAGsiB0H//wMgB0H//wNJGzsBACAEIAI2AgAgAkEBaiICIAZJDQALIAAoAoyAECEECyAAIAQ2ApCAECAAIAM2AoiAECAAQQA2ApyAECAAIAE2AoCAECAAIAUgA2siAjYCjIAQIAAgAjYClIAQIAAgASACazYChIAQC9kDAQR/IwBBEGsiAyQAIAFBADYCACAAKAIAIgIgA0EMaiACKAIAKAIMEQMAIQICQCADKAIMRQ0AIAIsAAAhAiAAKAIAIgRBASAEKAIAKAIQEQQAIAEgASgCACACQf8AcXI2AgACQCACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQd0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQ50cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQRV0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACEFIAAoAgAiAEEBIAAoAgAoAhARBAAgASABKAIAIAVBHHRyNgIAIAVBf0oNAEEAIQUMAQtBASEFCyADQRBqJAAgBQvhSQE3fwJAIAAoAoCAECIJIAAoAoSAECILayAAKAKQgBBrIghBgIAETwRAIABBADYCnIAQDAELAkAgCA0AIAMoAgBBgSBIDQAgACAAKAKcgBBBoIAQECoiACABEKwEIAAgBTsBmIAQDAELAkAgBEEATEEAIAZBAkYbDQAgAygCACIIQYCAgPAHSw0AIAAgCCAJajYCgIAQQQkgBSAFQQFIGyIFQQwgBUEMSBsiG0EMbCIJQZQWaigCACEuAkACfyAbQQlNBEAgA0EANgIAIAIgBGoiOkF7aiA6IAZBAkYiOxshKSABIAhqITMgASEoIAIhCQJAIAhBDUgNACAzQXRqIjIgAUkNAEGANCAbdkEBcSE0IDNBe2oiGEF/aiEvIBhBfWohIkEAIRsDQCAAKAKUgBAhBCAAKAKIgBAhEyAAKAKcgBAhFCAoIQwDQCAAKAKQgBAiBSAMIAtrIh9BgYB8aiAFQYCABGogH0sbIRUgACgC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BEADQCADKAAAIAQoAABzIgkEQCAJECUgBGogAGsMBAsgA0EEaiEDIARBBGoiBCAUSQ0ACwsCQCAEIBhPDQAgAy8AACAELwAARw0AIANBAmohAyAEQQJqIQQLIAQgF0kEfyAEQQFqIAQgAy0AACAELQAARhsFIAQLIABrDAELIAMQJQsiAEHwAWpB/wFuakEIaiAPSw0EIAdBAmohAyAAIAZqQQRqIQYgBS0AACEEAn8gAEEPTwRAIAUgBEEPajoAACADQX8QNCAAQXFqIgRB/AdPBEADQCADQQRqIgNBfxA0IARBhHhqIgRB+wdLDQALCyADIARB//8DcUH/AW4iAGoiAyAAQYF+bCAEajoAACADQQFqDAELIAUgACAEajoAACADCyEFIAYgEU8NASAGQX5qIgAgACgAACALEDAgCCALIAwQSSAGKAAAIQACQAJAIBZFBEAgAEEBEDAiACAIEIUBIQQgBiAAIAhBASAMEEkgBEH//wNqIAZJDQEgBCgAACAGKAAARw0BDAILIAAgCxAwIgMgCCALEEghACAGIAxrIgQgAyAIIAsQXCAAQf//A2ogBEkNACAAIAxqIgQoAAAgBigAAEYNAQsgBkEBaiIDKAAAIAsQMCEEDAMLIAVBADoAACAFQQFqIQcMAAsACwtBACETIAUgECAGayIBaiABQfABakH/AW5qQQFqIA9LDQECQCABQQ9PBEAgBUHwAToAACAFQQFqIQAgAUFxaiIDQf8BSQRAIAAiBSADOgAADAILIABB/wEgAUHyfWoiAEH/AW5BAWoQKBogAEH/AW4iAyAFakECaiIFIANBgX5sIABqOgAADAELIAUgAUEEdDoAAAsgBUEBaiAGIAEQKiABaiACayETDAELIANBgICA8AdLDQAgASADaiIPQXVqIRAgD0F0aiEUIAgoAoCAASEAIAhBAUECIAFB//8DSxsiCzsBhoABIAggACADajYCgIABIAggCCgCkIABIANqNgKQgAEgASABKAAAIAsQMCAIIAsgASAAayIMEEkgD0F7aiITQX9qIRcgE0F9aiERIAZBBnQiCkEBciENIAFBAWoiAygAACALEDAhBCABQYCABEkhFSACIQUgASEGA0ACQCAVRQRAIAMgFEsNBCADQQFqIQ4gCiEJIA0hBwNAIAQgCBCFASEAIA4oAABBARAwIRIgAyAE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IAJBCE8EQANAIAMEQCADIAVsIQcgBUEHciIIIANsIQkgBUEGciIKIANsIQsgBUEFciIMIANsIQ0gBUEEciIOIANsIQ8gBUEDciIQIANsIREgBUECciISIANsIRMgBUEBciIUIANsIRVBACEEA0AgASAFIAIgBGwiBmpqIAAgBCAHamotAAA6AAAgASAGIBRqaiAAIAQgFWpqLQAAOgAAIAEgBiASamogACAEIBNqai0AADoAACABIAYgEGpqIAAgBCARamotAAA6AAAgASAGIA5qaiAAIAQgD2pqLQAAOgAAIAEgBiAMamogACAEIA1qai0AADoAACABIAYgCmpqIAAgBCALamotAAA6AAAgASAGIAhqaiAAIAQgCWpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEPaiEEIAVBCGohBSAEIAJJDQALCyACQXhxIgUgAk8NAANAIAMEQCADIAVsIQZBACEEA0AgASACIARsIAVqaiAAIAQgBmpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEBaiIFIAJHDQALCyACIANsrQuCAQEGfyABIAEgAG4iBiAAbGshByAAIAFNBEAgBkEBIAZBAUsbIQgDQCAABEAgACAEbCEJQQAhBQNAIAMgBSAJamogAiAFIAZsIARqai0AADoAACAFQQFqIgUgAEcNAAsLIARBAWoiBCAIRw0ACwsgAyABIAdrIgBqIAAgAmogBxAqGgsNACAAIAEgAiADEL0EC4IBAQZ/IAEgASAAbiIGIABsayEHIAAEQCAGQQEgBkEBSxshCANAIAAgAU0EQCAEIAZsIQlBACEFA0AgAyAFIAlqaiACIAAgBWwgBGpqLQAAOgAAIAVBAWoiBSAIRw0ACwsgBEEBaiIEIABHDQALCyADIAEgB2siAGogACACaiAHECoaC7gBAQN/AkAgAUEBSA0AIAAsAAAiBEH/AHEhAwJAIARBf0oNACABQQJIDQEgACwAASIEQQd0QYD/AHEgA3IhAyAEQX9KDQAgAUEDSA0BIAAsAAIiBEEOdEGAgP8AcSADciEDIARBf0oNACABQQRIDQEgACwAAyIEQRV0QYCAgP8AcSADciEDIARBf0oNACABQQVIDQEgAC0ABCIAQQ9LDQEgAEEcdCADciEDCyACIAM2AgBBASEFCyAFCw0AIAAgASACIAMQvwQLlAIBA38gACABEDcaIAJBA3YiBEH4////AXEhAyABIAJBB3EiBWohAiAAIAVqIQACQAJAAkACQAJAAkACQAJAIARBB3FBf2oOBwYFBAMCAQAHCyAAIAIQNyEAIAJBCGohAgsgACACEDchACACQQhqIQILIAAgAhA3IQAgAkEIaiECCyAAIAIQNyEAIAJBCGohAgsgACACEDchACACQQhqIQILIAAgAhA3IQAgAkEIaiECCyAAIAIQNyEAIAJBCGohAgsgAwRAA0AgACACEDcgAkEIahA3IAJBEGoQNyACQRhqEDcgAkEgahA3IAJBKGoQNyACQTBqEDcgAkE4ahA3IQAgAkFAayECIANBeGoiAw0ACwsgAAstACACBEADQCAAIAEtAAA6AAAgAEEBaiEAIAFBAWohASACQX9qIgINAAsLIAALvQUBA38gACABayIDQQlPBEAgACABIAIQUA8LAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIANBfmpBH3cOEAABDAIMDAwDBAUGBwgJCgsMCyACQQFNDQwDQCAAIAEQeCEAIAJBfmoiAkEBSw0ACwwMCyACQQNNDQsDQCAAIAEQdyEAIAJBfGoiAkEDSw0ACwwLCyACQQdNDQoDQCAAIAEQNyEAIAJBeGoiAkEHSw0ACwwKCyACQQ9NDQkDQCAAIAEQViEAIAJBcGoiAkEPSw0ACwwJCyACQRJJDQggAUEQaiEDA0AgACABEFYgAxB4IQAgAkFuaiICQRFLDQALDAgLIAJBFEkNByABQRBqIQMDQCAAIAEQViADEHchACACQWxqIgJBE0sNAAsMBwsgAkEWSQ0GIAFBFGohAyABQRBqIQQDQCAAIAEQViAEEHcgAxB4IQAgAkFqaiICQRVLDQALDAYLIAJBGEkNBSABQRBqIQMDQCAAIAEQViADEDchACACQWhqIgJBF0sNAAsMBQsgAkEaSQ0EIAFBGGohAyABQRBqIQQDQCAAIAEQViAEEDcgAxB4IQAgAkFmaiICQRlLDQALDAQLIAJBHEkNAyABQRhqIQMgAUEQaiEEA0AgACABEFYgBBA3IAMQdyEAIAJBZGoiAkEbSw0ACwwDCyACQR5JDQIgAUEcaiEDIAFBGGohBCABQRBqIQUDQCAAIAEQViAFEDcgBBB3IAMQeCEAIAJBYmoiAkEdSw0ACwwCCyACQR9NDQEDQCAAIAEQlAIhACACQWBqIgJBH0sNAAsMAQsgAkUNAQNAIAAgAS0AADoAACAAQQFqIQAgAUEBaiEBIAJBf2oiAg0ACwwBCyACRQ0AA0AgACABLQAAOgAAIABBAWohACABQQFqIQEgAkF/aiICDQALCyAAC7EBAgJ/An4gAEF/ai0AACEDAkACQCABQXhqIgQgAE0NACADrUL/AYNCgYKEiJCgwIABfiEFA0AgAikAACIGIAVRBEAgAkEIaiECIABBCGoiACAESQ0BDAILCyAGp0H/AXEgA0cNAQNAIABBAWohACACLQABIQEgAkEBaiECIAEgA0YNAAsMAQsgACABTw0AA0AgAi0AACADRw0BIAJBAWohAiAAQQFqIgAgAUkNAAsLIAALJgEBf0ECIQQgAygCACABEJUCTwR/IAAgASACIAMQlQRBAAUgBAsLC8zcATgAQYAIC4MGTjZzbmFwcHk0U2lua0UAABh0AAAABAAATjZzbmFwcHk2U291cmNlRQAAAAAYdAAAGAQAAAAAAABsBAAAAQAAAAIAAAADAAAABAAAAAUAAABONnNuYXBweTE1Qnl0ZUFycmF5U291cmNlRQAAjHIAAFAEAAAsBAAAAAAAALQEAAAGAAAABwAAAAgAAAAJAAAATjZzbmFwcHkyMlVuY2hlY2tlZEJ5dGVBcnJheVNpbmtFAAAAjHIAAJAEAAAQBAAAAQAECAEQASACAAUIAhACIAMABggDEAMgBAAHCAQQBCAFAAgIBRAFIAYACQgGEAYgBwAKCAcQByAIAAsICBAIIAkABAkJEAkgCgAFCQoQCiALAAYJCxALIAwABwkMEAwgDQAICQ0QDSAOAAkJDhAOIA8ACgkPEA8gEAALCRAQECARAAQKERARIBIABQoSEBIgEwAGChMQEyAUAAcKFBAUIBUACAoVEBUgFgAJChYQFiAXAAoKFxAXIBgACwoYEBggGQAECxkQGSAaAAULGhAaIBsABgsbEBsgHAAHCxwQHCAdAAgLHRAdIB4ACQseEB4gHwAKCx8QHyAgAAsLIBAgICEABAwhECEgIgAFDCIQIiAjAAYMIxAjICQABwwkECQgJQAIDCUQJSAmAAkMJhAmICcACgwnECcgKAALDCgQKCApAAQNKRApICoABQ0qECogKwAGDSsQKyAsAAcNLBAsIC0ACA0tEC0gLgAJDS4QLiAvAAoNLxAvIDAACw0wEDAgMQAEDjEQMSAyAAUOMhAyIDMABg4zEDMgNAAHDjQQNCA1AAgONRA1IDYACQ42EDYgNwAKDjcQNyA4AAsOOBA4IDkABA85EDkgOgAFDzoQOiA7AAYPOxA7IDwABw88EDwgAQgIDz0QPSABEAkPPhA+IAEYCg8/ED8gASALD0AQQCAAAAAA/wAAAP//AAD///8A/////2RlY29tcHJlc3MAY29tcHJlc3MAZnJlZV9yZXN1bHQAdmkAAHhzAABpaWlpaWlpAEGQDgvUBigHAAAwBwAAMAcAAMxzAADMcwAAzHMAABh0AAC2BwAAQHQAAEgHAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAABh0AACQBwAATlN0M19fMjIxX19iYXNpY19zdHJpbmdfY29tbW9uSUxiMUVFRQBOMTBlbXNjcmlwdGVuM3ZhbEUAAAAAGHQAANQHAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUAaWlpAAAoBwAAMAcAABgIAAAgCAAAJAgAACoIAAAxCAAANggAAGJsb3NjbHoAbHo0AGx6NGhjAHNuYXBweQB6bGliAHpzdGQARXJyb3IuICBudGhyZWFkcyBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gQkxPU0NfTUFYX1RIUkVBRFMgKCVkKQBFcnJvci4gIG50aHJlYWRzIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyAEVSUk9SOyByZXR1cm4gY29kZSBmcm9tIHB0aHJlYWRfY3JlYXRlKCkgaXMgJWQKAAlFcnJvciBkZXRhaWw6ICVzCgBCbG9zYyBoYXMgbm90IGJlZW4gY29tcGlsZWQgd2l0aCAnJXMnIABjb21wcmVzc2lvbiBzdXBwb3J0LiAgUGxlYXNlIHVzZSBvbmUgaGF2aW5nIGl0LgBFcnJvciBhbGxvY2F0aW5nIG1lbW9yeSEARVJST1I7IHJldHVybiBjb2RlIGZyb20gcHRocmVhZF9qb2luKCkgaXMgJWQKAElucHV0IGJ1ZmZlciBzaXplIGNhbm5vdCBleGNlZWQgJWQgYnl0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AAAIAAAACQAAAAkAAAAKAAAACgAAAAsAAAALAAAADAAAAAwAAAANAAAADQBBgNsAC/8IDAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBX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AAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgHAAAIhwAACEcAAAnvABAHCQAACF8AAAgfAAAJnwAUB2MAAAh/AAAIPwAACd8AEgcbAAAIbwAACC8AAAm/AAAIDwAACI8AAAhPAAAJ/wAQBQEAFwUBARMFEQAbBQEQEQUFABkFAQQVBUEAHQUBQBAFAwAYBQECFAUhABwFASASBQkAGgUBCBYFgQBABQAAEAUCABcFgQETBRkAGwUBGBEFBwAZBQEGFQVhAB0FAWAQBQQAGAUBAxQFMQAcBQEwEgUNABoFAQwWBcEAQAUAADEuMi44AHN0cmVhbSBlcnJvcgBpbnN1ZmZpY2llbnQgbWVtb3J5AGJ1ZmZlciBlcnJvcgBB5IQBC6EVazgHAA2yBwCc8gcAcGQIAGCuCgCwcQsAMKoMABMAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAATAAAADQAAAA4AAAABAAAABwAAAAAAAAABAAAAFAAAAA8AAAAQAAAAAQAAAAYAAAAAAAAAAQAAABUAAAAQAAAAEQAAAAEAAAAFAAAAAAAAAAIAAAAVAAAAEgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAgAAAAUAAAACAAAAAwAAABUAAAATAAAAEwAAAAMAAAAFAAAABAAAAAMAAAAVAAAAEwAAABMAAAADAAAABQAAAAgAAAAEAAAAFQAAABMAAAATAAAAAwAAAAUAAAAQAAAABQAAABUAAAATAAAAFAAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFAAAABUAAAAEAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABAAAAAUAAAAQAAAABQAAABYAAAAVAAAAFgAAAAUAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAIAAAAFAAAAAgAAAAMAAAASAAAAEgAAABIAAAADAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEQAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABEAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACAAAAACAAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAAKAAAAAwAAAAACAAAIAAAAEQAAABIAAAARAAAABQAAAAMAAAAAAQAACQAAABEAAAASAAAAEQAAAAcAAAADAAAAAAIAAAkAAAARAAAAEgAAABEAAAAJAAAAAwAAAAACAAAJAAAAEQAAABIAAAARAAAACwAAAAMAAADnAwAACQAAAA4AAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAAOAAAADgAAAA8AAAABAAAABQAAAAAAAAABAAAADgAAAA4AAAAPAAAAAQAAAAQAAAAAAAAAAQAAAA4AAAAOAAAADwAAAAIAAAAEAAAAAAAAAAIAAAAOAAAADgAAAA4AAAAEAAAABAAAAAIAAAADAAAADgAAAA4AAAAOAAAAAwAAAAQAAAAEAAAABAAAAA4AAAAOAAAADgAAAAQAAAAEAAAACAAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAgAAAAFAAAADgAAAA4AAAAOAAAACAAAAAQAAAAIAAAABQAAAA4AAAAPAAAADgAAAAUAAAAEAAAACAAAAAYAAAAOAAAADwAAAA4AAAAJAAAABAAAAAgAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAQAAAAMAAAABwAAAA4AAAAPAAAADgAAAAQAAAADAAAAGAAAAAcAAAAOAAAADwAAAA4AAAAFAAAAAwAAACAAAAAIAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAACAAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAFAAAAAwAAADAAAAAJAAAADgAAAA8AAAAPAAAABgAAAAMAAACAAAAACQAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAkAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAJAAAADgAAAA8AAAAPAAAACAAAAAMAAAAAAgAACQAAAA4AAAAPAAAADwAAAAkAAAADAAAAAAIAAAkAAAAOAAAADwAAAA8AAAAKAAAAAwAAAOcDAAAJAAAAIAAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADAAAAAxAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA4AEGQmgEL+gEEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AEGVnAEL+AcIAAAABwAAagYAAAAGAACtBQAAagUAADEFAAAABQAA1AQAAK0EAACKBAAAagQAAEwEAAAxBAAAFwQAAAAEAADpAwAA1AMAAMADAACtAwAAmwMAAIoDAAB5AwAAagMAAFsDAABMAwAAPgMAADEDAAAkAwAAFwMAAAsDAAAAAwAA9AIAAOkCAADeAgAA1AIAAMoCAADAAgAAtgIAAK0CAACkAgAAmwIAAJICAACKAgAAggIAAHkCAAByAgAAagIAAGICAABbAgAAUwIAAEwCAABFAgAAPgIAADcCAAAxAgAAKgIAACQCAAAeAgAAFwIAABECAAALAgAABQIAAAACAAD6AQAA9AEAAO8BAADpAQAA5AEAAN4BAADZAQAA1AEAAM8BAADKAQAAxQEAAMABAAC7AQAAtgEAALIBAACtAQAAqAEAAKQBAACfAQAAmwEAAJcBAACSAQAAjgEAAIoBAACGAQAAggEAAH4BAAB5AQAAdQEAAHIBAABuAQAAagEAAGYBAABiAQAAXgEAAFsBAABXAQAAUwEAAFABAABMAQAASQEAAEUBAABCAQAAPgEAADsBAAA3AQAANAEAADEBAAAuAQAAKgEAACcBAAAkAQAAIQEAAB4BAAAaAQAAFwEAABQBAAARAQAADgEAAAsBAAAIAQAABQEAAAIBAAAAAQAA/QAAAPoAAAD3AAAA9AAAAPEAAADvAAAA7AAAAOkAAADmAAAA5AAAAOEAAADeAAAA3AAAANkAAADXAAAA1AAAANEAAADPAAAAzAAAAMoAAADHAAAAxQAAAMIAAADAAAAAvgAAALsAAAC5AAAAtgAAALQAAACyAAAArwAAAK0AAACrAAAAqAAAAKYAAACkAAAAogAAAJ8AAACdAAAAmwAAAJkAAACXAAAAlQAAAJIA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AAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBsLIBC9YEAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAwAAAAMAAAAEAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBlLcBC4MEAQAAAAEAAAAFAAAADQAAAB0AAAA9AAAAfQAAAP0AAAD9AQAA/QMAAP0HAAD9DwAA/R8AAP0/AAD9fwAA/f8AAP3/AQD9/wMA/f8HAP3/DwD9/x8A/f8/AP3/fwD9//8A/f//Af3//wP9//8H/f//D/3//x/9//8//f//fwAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAAT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IGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AAAAGHQAAFBlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUAABh0AAB4ZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAAAYdAAAoGUAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQAAGHQAAMhlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAABh0AADwZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAAAYdAAAGGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQAAGHQAAEBmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAABh0AABoZgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAAAYdAAAkGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWFFRQAAGHQAALhmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAAEB0AADwZgAAAAAAAAEAAACIBwAAAAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAQHQAAExnAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAABAdAAAqGcAAAAAAAABAAAAiAcAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAQHQAAABoAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUAABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEGR0QELIQsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwBBy9EBCwEMAEHX0QELFQwAAAAADAAAAAAJDAAAAAAADAAADABBhdIBCwEOAEGR0gELFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBv9IBCwEQAEHL0gELHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBBgtMBCw4SAAAAEhISAAAAAAAACQBBs9MBCwELAEG/0wELFQoAAAAACgAAAAAJCwAAAAAACwAACwBB7dMBCwEMAEH50wELJwwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQBBsNQBC2cwMTIzNDU2Nzg5QUJDREVGGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGg1QEL9hNJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAYmFzaWNfc3RyaW5nAHN0ZDo6ZXhjZXB0aW9uAAAAAADccQAAPAAAAD0AAAA+AAAAGHQAAORxAABTdDlleGNlcHRpb24AAAAAAAAAAAhyAAAQAAAAPwAAAEAAAACMcgAAFHIAANxxAABTdDExbG9naWNfZXJyb3IAAAAAADhyAAAQAAAAQQAAAEAAAACMcgAARHIAAAhyAABTdDEybGVuZ3RoX2Vycm9yAFN0OXR5cGVfaW5mbwAAABh0AABVcgAAjHIAAAFzAABkcgAAjHIAAKxyAABscgAAAAAAANByAABCAAAAQwAAAEQAAABFAAAARgAAAEcAAABIAAAASQAAAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAIxyAADccgAAeHIAAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAAAAAABAcwAAQgAAAEoAAABEAAAARQAAAEsAAACMcgAATHMAAGxyAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgAAACxzAAB0cwAAYgAAACxzAACAcwAAYwAAACxzAACMcwAAaAAAACxzAACYcwAAYQAAACxzAACkcwAAcwAAACxzAACwcwAAdAAAACxzAAC8cwAAaQAAACxzAADIcwAAagAAACxzAADUcwAAbAAAACxzAADgcwAAbQAAACxzAADscwAAZgAAACxzAAD4cwAAZAAAACxzAAAEdAAAAAAAAHhyAABCAAAATAAAAEQAAABFAAAARgAAAE0AAABOAAAATwAAAAAAAABgdAAAQgAAAFAAAABEAAAARQAAAEYAAABRAAAAUgAAAFMAAACMcgAAbHQAAHhyAABOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9FAAAAcHUAQZjpAQtBgC0AAAAyAAABAQAAHgEAAA8AAACALAAAAC0AAAAAAAAeAAAADwAAAAAAAAAwLAAAAAAAABMAAAAHAAAAAAAAAAUAQeTpAQsBOQBB/OkBCwo6AAAAOwAAAC12AEGU6gELAQIAQaPqAQsF//////8AQejqAQsJoH5QAAAAAAAFAEH86gELAVQAQZTrAQsOOgAAAFUAAACYegAAAAQAQazrAQsBAQBBu+sBCwUK/////w==\";\n\nvar BloscShuffle;\n(function (BloscShuffle) {\n BloscShuffle[BloscShuffle[\"NOSHUFFLE\"] = 0] = \"NOSHUFFLE\";\n BloscShuffle[BloscShuffle[\"SHUFFLE\"] = 1] = \"SHUFFLE\";\n BloscShuffle[BloscShuffle[\"BITSHUFFLE\"] = 2] = \"BITSHUFFLE\";\n BloscShuffle[BloscShuffle[\"AUTOSHUFFLE\"] = -1] = \"AUTOSHUFFLE\";\n})(BloscShuffle || (BloscShuffle = {}));\nconst COMPRESSORS = new Set(['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']);\nlet emscriptenModule;\nclass Blosc {\n constructor(clevel = 5, cname = 'lz4', shuffle = BloscShuffle.SHUFFLE, blocksize = 0) {\n if (clevel < 0 || clevel > 9) {\n throw new Error(`Invalid compression level: '${clevel}'. It should be between 0 and 9`);\n }\n if (!COMPRESSORS.has(cname)) {\n throw new Error(`Invalid compressor '${cname}'. Valid compressors include\n 'blosclz', 'lz4', 'lz4hc','snappy', 'zlib', 'zstd'.`);\n }\n if (shuffle < -1 || shuffle > 2) {\n throw new Error(`Invalid shuffle ${shuffle}. Must be one of 0 (NOSHUFFLE),\n 1 (SHUFFLE), 2 (BITSHUFFLE), -1 (AUTOSHUFFLE).`);\n }\n this.blocksize = blocksize;\n this.clevel = clevel;\n this.cname = cname;\n this.shuffle = shuffle;\n }\n static fromConfig(config) {\n const { blocksize, clevel, cname, shuffle } = config;\n return new Blosc(clevel, cname, shuffle, blocksize);\n }\n async encode(data) {\n if (!emscriptenModule) {\n emscriptenModule = initEmscriptenModule(blosc_codec, wasmSrc);\n }\n const module = await emscriptenModule;\n const view = module.compress(data, this.cname, this.clevel, this.shuffle, this.blocksize);\n const result = new Uint8Array(view); // Copy view and free wasm memory\n module.free_result();\n return result;\n }\n async decode(data, out) {\n if (!emscriptenModule) {\n emscriptenModule = initEmscriptenModule(blosc_codec, wasmSrc);\n }\n const module = await emscriptenModule;\n const view = module.decompress(data);\n const result = new Uint8Array(view); // Copy view and free wasm memory\n module.free_result();\n if (out !== undefined) {\n out.set(result);\n return out;\n }\n return result;\n }\n}\nBlosc.codecId = 'blosc';\nBlosc.COMPRESSORS = [...COMPRESSORS];\nBlosc.NOSHUFFLE = BloscShuffle.NOSHUFFLE;\nBlosc.SHUFFLE = BloscShuffle.SHUFFLE;\nBlosc.BITSHUFFLE = BloscShuffle.BITSHUFFLE;\nBlosc.AUTOSHUFFLE = BloscShuffle.AUTOSHUFFLE;\n\nexport default Blosc;\n","import { Zlib, GZip, Blosc } from 'numcodecs';\nimport { addCodec } from './zarr-core';\n\naddCodec(Zlib.codecId, () => Zlib);\naddCodec(GZip.codecId, () => GZip);\naddCodec(Blosc.codecId, () => Blosc);\n\nexport * from './zarr-core';\n","import {assert} from './assert';\n\nconst ERR_CONTEXT = 'Invalid WebGLRenderingContext';\nexport const ERR_WEBGL = ERR_CONTEXT;\nexport const ERR_WEBGL2 = 'Requires WebGL2';\n\nexport function isWebGL(gl) {\n if (typeof WebGLRenderingContext !== 'undefined' && gl instanceof WebGLRenderingContext) {\n return true;\n }\n if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {\n return true;\n }\n // Look for debug contexts, headless gl etc\n return Boolean(gl && Number.isFinite(gl._version));\n}\n\nexport function isWebGL2(gl) {\n if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {\n return true;\n }\n // Look for debug contexts, headless gl etc\n return Boolean(gl && gl._version === 2);\n}\n\nexport function getWebGL2Context(gl) {\n return isWebGL2(gl) ? gl : null;\n}\n\nexport function assertWebGLContext(gl) {\n assert(isWebGL(gl), ERR_CONTEXT);\n return gl;\n}\n\nexport function assertWebGL2Context(gl) {\n assert(isWebGL2(gl), ERR_WEBGL2);\n return gl;\n}\n","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Alpha = require('./Alpha');\n\nObject.defineProperty(exports, 'Alpha', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Checkboard = require('./Checkboard');\n\nObject.defineProperty(exports, 'Checkboard', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Checkboard).default;\n }\n});\n\nvar _EditableInput = require('./EditableInput');\n\nObject.defineProperty(exports, 'EditableInput', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_EditableInput).default;\n }\n});\n\nvar _Hue = require('./Hue');\n\nObject.defineProperty(exports, 'Hue', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Raised = require('./Raised');\n\nObject.defineProperty(exports, 'Raised', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Raised).default;\n }\n});\n\nvar _Saturation = require('./Saturation');\n\nObject.defineProperty(exports, 'Saturation', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Saturation).default;\n }\n});\n\nvar _ColorWrap = require('./ColorWrap');\n\nObject.defineProperty(exports, 'ColorWrap', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Swatch = require('./Swatch');\n\nObject.defineProperty(exports, 'Swatch', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatch).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {CubeGeometry} from '@luma.gl/core';\nimport {UNIT} from '@deck.gl/core';\nimport ColumnLayer from './column-layer';\n\nconst defaultProps = {\n cellSize: {type: 'number', min: 0, value: 1000},\n offset: {type: 'array', min: 0, value: [1, 1]}\n};\n\nexport default class GridCellLayer extends ColumnLayer {\n getGeometry(diskResolution) {\n return new CubeGeometry();\n }\n\n draw({uniforms}) {\n const {elevationScale, extruded, offset, coverage, cellSize, angle, radiusUnits} = this.props;\n this.state.model\n .setUniforms(uniforms)\n .setUniforms({\n radius: cellSize / 2,\n radiusUnits: UNIT[radiusUnits],\n angle,\n offset,\n extruded,\n coverage,\n elevationScale,\n edgeDistance: 1,\n isWireframe: false\n })\n .draw();\n }\n}\n\nGridCellLayer.layerName = 'GridCellLayer';\nGridCellLayer.defaultProps = defaultProps;\n","// Beginning of a minimal implementation of the Node.js path API, that doesn't pull in big polyfills.\n\n/**\n * Replacement for Node.js path.dirname\n * @param url\n */\nexport function dirname(url: string): string {\n const slashIndex = url && url.lastIndexOf('/');\n return slashIndex >= 0 ? url.substr(0, slashIndex as number) : '';\n}\n\n/**\n * Replacement for Node.js path.join\n * @param parts\n */\nexport function join(...parts: string[]): string {\n const separator = '/';\n parts = parts.map((part, index) => {\n if (index) {\n part = part.replace(new RegExp(`^${separator}`), '');\n }\n if (index !== parts.length - 1) {\n part = part.replace(new RegExp(`${separator}$`), '');\n }\n return part;\n });\n return parts.join(separator);\n}\n","import pkg from '../package.json';\nexport const version = pkg.version;\nexport { compile } from './compile/compile';\nexport { normalize } from './normalize';\nexport * from './util';\n//# sourceMappingURL=index.js.map","import deckLog from '../utils/log';\nimport {getLoggers} from './loggers';\n\n/* debug utility */\n\nlet loggers = {};\n\n// Conditionally load default loggers in development mode\n// eslint-disable-next-line\nif (process.env.NODE_ENV !== 'production') {\n loggers = getLoggers(deckLog);\n}\n\nexport function register(handlers) {\n loggers = handlers;\n}\n\nexport default function debug(eventType) {\n if (deckLog.level > 0 && loggers[eventType]) {\n // Not using ...args to defeat perf hit from array construction\n loggers[eventType].call(...arguments);\n }\n}\n","export const LIFECYCLE = {\n NO_STATE: 'Awaiting state',\n MATCHED: 'Matched. State transferred from previous layer',\n INITIALIZED: 'Initialized',\n AWAITING_GC: 'Discarded. Awaiting garbage collection',\n AWAITING_FINALIZATION: 'No longer matched. Awaiting garbage collection',\n FINALIZED: 'Finalized! Awaiting garbage collection'\n};\n\n/* Secret props keys */\n// Symbols are non-enumerable by default, does not show in for...in or Object.keys\n// but are copied with Object.assign ¯\\_(ツ)_/¯\n// Supported everywhere except IE11, can be polyfilled with core-js\nexport const PROP_SYMBOLS = {\n COMPONENT: Symbol.for('component'),\n ASYNC_DEFAULTS: Symbol.for('asyncPropDefaults'),\n ASYNC_ORIGINAL: Symbol.for('asyncPropOriginal'),\n ASYNC_RESOLVED: Symbol.for('asyncPropResolved')\n};\n","import turfUnion from '@turf/union';\nimport turfDifference from '@turf/difference';\nimport turfIntersect from '@turf/intersect';\nimport rewind from '@turf/rewind';\n\nimport {\n EditAction,\n ClickEvent,\n PointerMoveEvent,\n StartDraggingEvent,\n StopDraggingEvent,\n DraggingEvent,\n Pick,\n Tooltip,\n ModeProps,\n GuideFeatureCollection,\n TentativeFeature,\n} from '../types';\nimport { FeatureCollection, Feature, Polygon, Geometry, Position } from '../geojson-types';\nimport { getPickedEditHandles, getNonGuidePicks } from '../utils';\nimport { EditMode } from './edit-mode';\nimport { ImmutableFeatureCollection } from './immutable-feature-collection';\n\nexport type GeoJsonEditAction = EditAction<FeatureCollection>;\n\nconst DEFAULT_GUIDES: GuideFeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n};\nconst DEFAULT_TOOLTIPS: Tooltip[] = [];\n\n// Main interface for `EditMode`s that edit GeoJSON\nexport type GeoJsonEditModeType = EditMode<FeatureCollection, FeatureCollection>;\n\nexport interface GeoJsonEditModeConstructor {\n new (): GeoJsonEditModeType;\n}\n\nexport class GeoJsonEditMode implements EditMode<FeatureCollection, GuideFeatureCollection> {\n _clickSequence: Position[] = [];\n\n getGuides(props: ModeProps<FeatureCollection>): GuideFeatureCollection {\n return DEFAULT_GUIDES;\n }\n\n getTooltips(props: ModeProps<FeatureCollection>): Tooltip[] {\n return DEFAULT_TOOLTIPS;\n }\n\n getSelectedFeature(props: ModeProps<FeatureCollection>): Feature | null | undefined {\n if (props.selectedIndexes.length === 1) {\n return props.data.features[props.selectedIndexes[0]];\n }\n return null;\n }\n\n getSelectedGeometry(props: ModeProps<FeatureCollection>): Geometry | null | undefined {\n const feature = this.getSelectedFeature(props);\n if (feature) {\n return feature.geometry;\n }\n return null;\n }\n\n getSelectedFeaturesAsFeatureCollection(props: ModeProps<FeatureCollection>): FeatureCollection {\n const { features } = props.data;\n const selectedFeatures = props.selectedIndexes.map((selectedIndex) => features[selectedIndex]);\n return {\n type: 'FeatureCollection',\n features: selectedFeatures,\n };\n }\n\n getClickSequence(): Position[] {\n return this._clickSequence;\n }\n\n addClickSequence({ mapCoords }: ClickEvent): void {\n this._clickSequence.push(mapCoords);\n }\n\n resetClickSequence(): void {\n this._clickSequence = [];\n }\n\n getTentativeGuide(props: ModeProps<FeatureCollection>): TentativeFeature | null | undefined {\n const guides = this.getGuides(props);\n\n // @ts-ignore\n return guides.features.find((f) => f.properties && f.properties.guideType === 'tentative');\n }\n\n isSelectionPicked(picks: Pick[], props: ModeProps<FeatureCollection>): boolean {\n if (!picks.length) return false;\n const pickedFeatures = getNonGuidePicks(picks).map(({ index }) => index);\n const pickedHandles = getPickedEditHandles(picks).map(\n ({ properties }) => properties.featureIndex\n );\n const pickedIndexes = new Set([...pickedFeatures, ...pickedHandles]);\n return props.selectedIndexes.some((index) => pickedIndexes.has(index));\n }\n\n rewindPolygon(feature: Feature): Feature {\n const { geometry } = feature;\n\n const isPolygonal = geometry.type === 'Polygon' || geometry.type === 'MultiPolygon';\n if (isPolygonal) {\n // @ts-ignore\n return rewind(feature);\n }\n\n return feature;\n }\n\n getAddFeatureAction(\n featureOrGeometry: Geometry | Feature,\n features: FeatureCollection\n ): GeoJsonEditAction {\n // Unsure why flow can't deal with Geometry type, but there I fixed it\n const featureOrGeometryAsAny: any = featureOrGeometry;\n\n const feature: any =\n featureOrGeometryAsAny.type === 'Feature'\n ? featureOrGeometryAsAny\n : {\n type: 'Feature',\n properties: {},\n geometry: featureOrGeometryAsAny,\n };\n\n const rewindFeature = this.rewindPolygon(feature);\n const updatedData = new ImmutableFeatureCollection(features)\n .addFeature(rewindFeature)\n .getObject();\n\n return {\n updatedData,\n editType: 'addFeature',\n editContext: {\n featureIndexes: [updatedData.features.length - 1],\n },\n };\n }\n\n getAddManyFeaturesAction(\n { features: featuresToAdd }: FeatureCollection,\n features: FeatureCollection\n ): GeoJsonEditAction {\n let updatedData = new ImmutableFeatureCollection(features);\n const initialIndex = updatedData.getObject().features.length;\n const updatedIndexes = [];\n for (const feature of featuresToAdd) {\n const { properties, geometry } = feature;\n const geometryAsAny: any = geometry;\n updatedData = updatedData.addFeature({\n type: 'Feature',\n properties,\n geometry: geometryAsAny,\n });\n updatedIndexes.push(initialIndex + updatedIndexes.length);\n }\n\n return {\n updatedData: updatedData.getObject(),\n editType: 'addFeature',\n editContext: {\n featureIndexes: updatedIndexes,\n },\n };\n }\n\n getAddFeatureOrBooleanPolygonAction(\n featureOrGeometry: Polygon | Feature,\n props: ModeProps<FeatureCollection>\n ): GeoJsonEditAction | null | undefined {\n const featureOrGeometryAsAny: any = featureOrGeometry;\n\n const selectedFeature = this.getSelectedFeature(props);\n const { modeConfig } = props;\n if (modeConfig && modeConfig.booleanOperation) {\n if (\n !selectedFeature ||\n (selectedFeature.geometry.type !== 'Polygon' &&\n selectedFeature.geometry.type !== 'MultiPolygon')\n ) {\n // eslint-disable-next-line no-console,no-undef\n console.warn(\n 'booleanOperation only supported for single Polygon or MultiPolygon selection'\n );\n return null;\n }\n\n const feature =\n featureOrGeometryAsAny.type === 'Feature'\n ? featureOrGeometryAsAny\n : {\n type: 'Feature',\n geometry: featureOrGeometryAsAny,\n };\n\n let updatedGeometry;\n if (modeConfig.booleanOperation === 'union') {\n updatedGeometry = turfUnion(selectedFeature, feature);\n } else if (modeConfig.booleanOperation === 'difference') {\n // @ts-ignore\n updatedGeometry = turfDifference(selectedFeature, feature);\n } else if (modeConfig.booleanOperation === 'intersection') {\n // @ts-ignore\n updatedGeometry = turfIntersect(selectedFeature, feature);\n } else {\n // eslint-disable-next-line no-console,no-undef\n console.warn(`Invalid booleanOperation ${modeConfig.booleanOperation}`);\n return null;\n }\n\n if (!updatedGeometry) {\n // eslint-disable-next-line no-console,no-undef\n console.warn('Canceling edit. Boolean operation erased entire polygon.');\n return null;\n }\n\n const featureIndex = props.selectedIndexes[0];\n\n const updatedData = new ImmutableFeatureCollection(props.data)\n .replaceGeometry(featureIndex, updatedGeometry.geometry)\n .getObject();\n\n const editAction: GeoJsonEditAction = {\n updatedData,\n editType: 'unionGeometry',\n editContext: {\n featureIndexes: [featureIndex],\n },\n };\n\n return editAction;\n }\n return this.getAddFeatureAction(featureOrGeometry, props.data);\n }\n\n createTentativeFeature(props: ModeProps<FeatureCollection>): TentativeFeature {\n return null;\n }\n\n handleClick(event: ClickEvent, props: ModeProps<FeatureCollection>): void {}\n handlePointerMove(event: PointerMoveEvent, props: ModeProps<FeatureCollection>): void {\n const tentativeFeature = this.createTentativeFeature(props);\n if (tentativeFeature) {\n props.onEdit({\n updatedData: props.data,\n editType: 'updateTentativeFeature',\n editContext: {\n feature: tentativeFeature,\n },\n });\n }\n }\n handleStartDragging(event: StartDraggingEvent, props: ModeProps<FeatureCollection>): void {}\n handleStopDragging(event: StopDraggingEvent, props: ModeProps<FeatureCollection>): void {}\n handleDragging(event: DraggingEvent, props: ModeProps<FeatureCollection>): void {}\n\n handleKeyUp(event: KeyboardEvent, props: ModeProps<FeatureCollection>): void {\n if (event.key === 'Escape') {\n this.resetClickSequence();\n props.onEdit({\n // Because the new drawing feature is dropped, so the data will keep as the same.\n updatedData: props.data,\n editType: 'cancelFeature',\n editContext: {},\n });\n }\n }\n}\n\nexport function getIntermediatePosition(position1: Position, position2: Position): Position {\n const intermediatePosition = [\n (position1[0] + position2[0]) / 2.0,\n (position1[1] + position2[1]) / 2.0,\n ];\n // @ts-ignore\n return intermediatePosition;\n}\n","import GL from '@luma.gl/constants';\nimport Resource from './resource';\nimport Accessor from './accessor';\nimport {getGLTypeFromTypedArray, getTypedArrayFromGLType} from '../webgl-utils/typed-array-utils';\nimport {assertWebGL2Context, log} from '@luma.gl/gltools';\nimport {assert} from '../utils/assert';\nimport {checkProps} from '../utils/check-props';\n\nconst DEBUG_DATA_LENGTH = 10;\n\n// Shared prop checks for constructor and setProps\nconst DEPRECATED_PROPS = {\n offset: 'accessor.offset',\n stride: 'accessor.stride',\n type: 'accessor.type',\n size: 'accessor.size',\n divisor: 'accessor.divisor',\n normalized: 'accessor.normalized',\n integer: 'accessor.integer',\n instanced: 'accessor.divisor',\n isInstanced: 'accessor.divisor'\n};\n\n// Prop checks for constructor\nconst PROP_CHECKS_INITIALIZE = {\n removedProps: {},\n replacedProps: {\n bytes: 'byteLength'\n },\n // new Buffer() with individual accessor props is still used in apps, emit warnings\n deprecatedProps: DEPRECATED_PROPS\n};\n\n// Prop checks for setProps\nconst PROP_CHECKS_SET_PROPS = {\n // Buffer.setProps() with individual accessor props is rare => emit errors\n removedProps: DEPRECATED_PROPS\n};\n\nexport default class Buffer extends Resource {\n constructor(gl, props = {}) {\n super(gl, props);\n\n this.stubRemovedMethods('Buffer', 'v6.0', ['layout', 'setLayout', 'getIndexedParameter']);\n // this.stubRemovedMethods('Buffer', 'v7.0', ['updateAccessor']);\n\n // In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers\n // otherwise buffer type will lock to generic (non-element) buffer\n // In WebGL2, we can use GL.COPY_READ_BUFFER which avoids locking the type here\n this.target = props.target || (this.gl.webgl2 ? GL.COPY_READ_BUFFER : GL.ARRAY_BUFFER);\n\n this.initialize(props);\n\n Object.seal(this);\n }\n\n // returns number of elements in the buffer (assuming that the full buffer is used)\n getElementCount(accessor = this.accessor) {\n return Math.round(this.byteLength / Accessor.getBytesPerElement(accessor));\n }\n\n // returns number of vertices in the buffer (assuming that the full buffer is used)\n getVertexCount(accessor = this.accessor) {\n return Math.round(this.byteLength / Accessor.getBytesPerVertex(accessor));\n }\n\n // Creates and initializes the buffer object's data store.\n // Signature: `new Buffer(gl, {data: new Float32Array(...)})`\n // Signature: `new Buffer(gl, new Float32Array(...))`\n // Signature: `new Buffer(gl, 100)`\n initialize(props = {}) {\n // Signature `new Buffer(gl, new Float32Array(...)`\n if (ArrayBuffer.isView(props)) {\n props = {data: props};\n }\n\n // Signature: `new Buffer(gl, 100)`\n if (Number.isFinite(props)) {\n props = {byteLength: props};\n }\n\n props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);\n\n // Initialize member fields\n this.usage = props.usage || GL.STATIC_DRAW;\n this.debugData = null;\n\n // Deprecated: Merge main props and accessor\n this.setAccessor(Object.assign({}, props, props.accessor));\n\n // Set data: (re)initializes the buffer\n if (props.data) {\n this._setData(props.data, props.offset, props.byteLength);\n } else {\n this._setByteLength(props.byteLength || 0);\n }\n\n return this;\n }\n\n setProps(props) {\n props = checkProps('Buffer', props, PROP_CHECKS_SET_PROPS);\n\n if ('accessor' in props) {\n this.setAccessor(props.accessor);\n }\n\n return this;\n }\n\n // Optionally stores an accessor with the buffer, makes it easier to use it as an attribute later\n // {type, size = 1, offset = 0, stride = 0, normalized = false, integer = false, divisor = 0}\n setAccessor(accessor) {\n // NOTE: From luma.gl v7.0, Accessors have an optional `buffer `field\n // (mainly to support \"interleaving\")\n // To avoid confusion, ensure `buffer.accessor` does not have a `buffer.accessor.buffer` field:\n accessor = Object.assign({}, accessor);\n delete accessor.buffer;\n\n // This new statement ensures that an \"accessor object\" is re-packaged as an Accessor instance\n this.accessor = new Accessor(accessor);\n return this;\n }\n\n // Allocate a bigger GPU buffer (if the current buffer is not big enough).\n // If a reallocation is triggered it clears the buffer\n // Returns:\n // `true`: buffer was reallocated, data was cleared\n // `false`: buffer was big enough, data is intact\n reallocate(byteLength) {\n if (byteLength > this.byteLength) {\n this._setByteLength(byteLength);\n return true;\n }\n this.bytesUsed = byteLength;\n return false;\n }\n\n // Update with new data. Reinitializes the buffer\n setData(props) {\n return this.initialize(props);\n }\n\n // Updates a subset of a buffer object's data store.\n // Data (Typed Array or ArrayBuffer), length is inferred unless provided\n // Offset into buffer\n // WebGL2 only: Offset into srcData\n // WebGL2 only: Number of bytes to be copied\n subData(props) {\n // Signature: buffer.subData(new Float32Array([...]))\n if (ArrayBuffer.isView(props)) {\n props = {data: props};\n }\n\n const {data, offset = 0, srcOffset = 0} = props;\n const byteLength = props.byteLength || props.length;\n\n assert(data);\n\n // Create the buffer - binding it here for the first time locks the type\n // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type\n const target = this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target;\n this.gl.bindBuffer(target, this.handle);\n // WebGL2: subData supports additional srcOffset and length parameters\n if (srcOffset !== 0 || byteLength !== undefined) {\n assertWebGL2Context(this.gl);\n this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);\n } else {\n this.gl.bufferSubData(target, offset, data);\n }\n this.gl.bindBuffer(target, null);\n\n // TODO - update local `data` if offsets are right\n this.debugData = null;\n\n this._inferType(data);\n\n return this;\n }\n\n // WEBGL2 ONLY: Copies part of the data of another buffer into this buffer\n copyData({sourceBuffer, readOffset = 0, writeOffset = 0, size}) {\n const {gl} = this;\n assertWebGL2Context(gl);\n\n // Use GL.COPY_READ_BUFFER+GL.COPY_WRITE_BUFFER avoid disturbing other targets and locking type\n gl.bindBuffer(GL.COPY_READ_BUFFER, sourceBuffer.handle);\n gl.bindBuffer(GL.COPY_WRITE_BUFFER, this.handle);\n gl.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, readOffset, writeOffset, size);\n gl.bindBuffer(GL.COPY_READ_BUFFER, null);\n gl.bindBuffer(GL.COPY_WRITE_BUFFER, null);\n\n // TODO - update local `data` if offsets are 0\n this.debugData = null;\n\n return this;\n }\n\n // WEBGL2 ONLY: Reads data from buffer into an ArrayBufferView or SharedArrayBuffer.\n getData({dstData = null, srcByteOffset = 0, dstOffset = 0, length = 0} = {}) {\n assertWebGL2Context(this.gl);\n\n const ArrayType = getTypedArrayFromGLType(this.accessor.type || GL.FLOAT, {clamped: false});\n const sourceAvailableElementCount = this._getAvailableElementCount(srcByteOffset);\n\n const dstElementOffset = dstOffset;\n\n let dstAvailableElementCount;\n let dstElementCount;\n if (dstData) {\n dstElementCount = dstData.length;\n dstAvailableElementCount = dstElementCount - dstElementOffset;\n } else {\n // Allocate ArrayBufferView with enough size to copy all eligible data.\n dstAvailableElementCount = Math.min(\n sourceAvailableElementCount,\n length || sourceAvailableElementCount\n );\n dstElementCount = dstElementOffset + dstAvailableElementCount;\n }\n\n const copyElementCount = Math.min(sourceAvailableElementCount, dstAvailableElementCount);\n length = length || copyElementCount;\n assert(length <= copyElementCount);\n dstData = dstData || new ArrayType(dstElementCount);\n\n // Use GL.COPY_READ_BUFFER to avoid disturbing other targets and locking type\n this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);\n this.gl.getBufferSubData(GL.COPY_READ_BUFFER, srcByteOffset, dstData, dstOffset, length);\n this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);\n\n // TODO - update local `data` if offsets are 0\n return dstData;\n }\n\n /**\n * Binds a buffer to a given binding point (target).\n * GL.TRANSFORM_FEEDBACK_BUFFER and GL.UNIFORM_BUFFER take an index, and optionally a range.\n * - GL.TRANSFORM_FEEDBACK_BUFFER and GL.UNIFORM_BUFFER need an index to affect state\n * - GL.UNIFORM_BUFFER: `offset` must be aligned to GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT.\n * - GL.UNIFORM_BUFFER: `size` must be a minimum of GL.UNIFORM_BLOCK_SIZE_DATA.\n */\n bind({\n target = this.target, // target for the bind operation\n index = this.accessor && this.accessor.index, // index = index of target (indexed bind point)\n offset = 0,\n size\n } = {}) {\n // NOTE: While GL.TRANSFORM_FEEDBACK_BUFFER and GL.UNIFORM_BUFFER could\n // be used as direct binding points, they will not affect transform feedback or\n // uniform buffer state. Instead indexed bindings need to be made.\n if (target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER) {\n if (size !== undefined) {\n this.gl.bindBufferRange(target, index, this.handle, offset, size);\n } else {\n assert(offset === 0); // Make sure offset wasn't supplied\n this.gl.bindBufferBase(target, index, this.handle);\n }\n } else {\n this.gl.bindBuffer(target, this.handle);\n }\n\n return this;\n }\n\n unbind({target = this.target, index = this.accessor && this.accessor.index} = {}) {\n const isIndexedBuffer = target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER;\n if (isIndexedBuffer) {\n this.gl.bindBufferBase(target, index, null);\n } else {\n this.gl.bindBuffer(target, null);\n }\n return this;\n }\n\n // PROTECTED METHODS (INTENDED FOR USE BY OTHER FRAMEWORK CODE ONLY)\n\n // Returns a short initial data array\n getDebugData() {\n if (!this.debugData) {\n this.debugData = this.getData({length: Math.min(DEBUG_DATA_LENGTH, this.byteLength)});\n return {data: this.debugData, changed: true};\n }\n return {data: this.debugData, changed: false};\n }\n\n invalidateDebugData() {\n this.debugData = null;\n }\n\n // PRIVATE METHODS\n\n // Allocate a new buffer and initialize to contents of typed array\n _setData(data, offset = 0, byteLength = data.byteLength + offset) {\n assert(ArrayBuffer.isView(data));\n\n this._trackDeallocatedMemory();\n\n const target = this._getTarget();\n this.gl.bindBuffer(target, this.handle);\n this.gl.bufferData(target, byteLength, this.usage);\n this.gl.bufferSubData(target, offset, data);\n this.gl.bindBuffer(target, null);\n\n this.debugData = data.slice(0, DEBUG_DATA_LENGTH);\n this.bytesUsed = byteLength;\n\n this._trackAllocatedMemory(byteLength);\n\n // infer GL type from supplied typed array\n const type = getGLTypeFromTypedArray(data);\n assert(type);\n this.setAccessor(new Accessor(this.accessor, {type}));\n return this;\n }\n\n // Allocate a GPU buffer of specified size.\n _setByteLength(byteLength, usage = this.usage) {\n assert(byteLength >= 0);\n\n this._trackDeallocatedMemory();\n\n // Workaround needed for Safari (#291):\n // gl.bufferData with size equal to 0 crashes. Instead create zero sized array.\n let data = byteLength;\n if (byteLength === 0) {\n data = new Float32Array(0);\n }\n\n const target = this._getTarget();\n this.gl.bindBuffer(target, this.handle);\n this.gl.bufferData(target, data, usage);\n this.gl.bindBuffer(target, null);\n\n this.usage = usage;\n this.debugData = null;\n this.bytesUsed = byteLength;\n\n this._trackAllocatedMemory(byteLength);\n\n return this;\n }\n\n // Binding a buffer for the first time locks the type\n // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type\n _getTarget() {\n return this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target;\n }\n\n _getAvailableElementCount(srcByteOffset) {\n const ArrayType = getTypedArrayFromGLType(this.accessor.type || GL.FLOAT, {clamped: false});\n const sourceElementOffset = srcByteOffset / ArrayType.BYTES_PER_ELEMENT;\n return this.getElementCount() - sourceElementOffset;\n }\n\n // Automatically infers type from typed array passed to setData\n // Note: No longer that useful, since type is now autodeduced from the compiled shaders\n _inferType(data) {\n if (!this.accessor.type) {\n this.setAccessor(new Accessor(this.accessor, {type: getGLTypeFromTypedArray(data)}));\n }\n }\n\n // RESOURCE METHODS\n\n _createHandle() {\n return this.gl.createBuffer();\n }\n\n _deleteHandle() {\n this.gl.deleteBuffer(this.handle);\n this._trackDeallocatedMemory();\n }\n\n _getParameter(pname) {\n this.gl.bindBuffer(this.target, this.handle);\n const value = this.gl.getBufferParameter(this.target, pname);\n this.gl.bindBuffer(this.target, null);\n return value;\n }\n\n // DEPRECATIONS - v7.0\n get type() {\n log.deprecated('Buffer.type', 'Buffer.accessor.type')();\n return this.accessor.type;\n }\n\n get bytes() {\n log.deprecated('Buffer.bytes', 'Buffer.byteLength')();\n return this.byteLength;\n }\n\n // DEPRECATIONS - v6.0\n // Deprecated in v6.x, but not warnings not properly implemented\n setByteLength(byteLength) {\n log.deprecated('setByteLength', 'reallocate')();\n return this.reallocate(byteLength);\n }\n\n // Deprecated in v6.x, but not warnings not properly implemented\n updateAccessor(opts) {\n log.deprecated('updateAccessor(...)', 'setAccessor(new Accessor(buffer.accessor, ...)')();\n this.accessor = new Accessor(this.accessor, opts);\n return this;\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport Hammer from './utils/hammer';\n\n// This module contains constants that must be conditionally required\n// due to `window`/`document` references downstream.\nexport const RECOGNIZERS = Hammer\n ? [\n [Hammer.Pan, {event: 'tripan', pointers: 3, threshold: 0, enable: false}],\n [Hammer.Rotate, {enable: false}],\n [Hammer.Pinch, {enable: false}],\n [Hammer.Swipe, {enable: false}],\n [Hammer.Pan, {threshold: 0, enable: false}],\n [Hammer.Press, {enable: false}],\n [Hammer.Tap, {event: 'doubletap', taps: 2, enable: false}],\n // TODO - rename to 'tap' and 'singletap' in the next major release\n [Hammer.Tap, {event: 'anytap', enable: false}],\n [Hammer.Tap, {enable: false}]\n ]\n : null;\n\n// Recognize the following gestures even if a given recognizer succeeds\nexport const RECOGNIZER_COMPATIBLE_MAP = {\n tripan: ['rotate', 'pinch', 'pan'],\n rotate: ['pinch'],\n pinch: ['pan'],\n pan: ['press', 'doubletap', 'anytap', 'tap'],\n doubletap: ['anytap'],\n anytap: ['tap']\n};\n\n// Recognize the folling gestures only if a given recognizer fails\nexport const RECOGNIZER_FALLBACK_MAP = {\n doubletap: ['tap']\n};\n\n/**\n * Only one set of basic input events will be fired by Hammer.js:\n * either pointer, touch, or mouse, depending on system support.\n * In order to enable an application to be agnostic of system support,\n * alias basic input events into \"classes\" of events: down, move, and up.\n * See `_onBasicInput()` for usage of these aliases.\n */\nexport const BASIC_EVENT_ALIASES = {\n pointerdown: 'pointerdown',\n pointermove: 'pointermove',\n pointerup: 'pointerup',\n touchstart: 'pointerdown',\n touchmove: 'pointermove',\n touchend: 'pointerup',\n mousedown: 'pointerdown',\n mousemove: 'pointermove',\n mouseup: 'pointerup'\n};\n\nexport const INPUT_EVENT_TYPES = {\n KEY_EVENTS: ['keydown', 'keyup'],\n MOUSE_EVENTS: ['mousedown', 'mousemove', 'mouseup', 'mouseover', 'mouseout', 'mouseleave'],\n WHEEL_EVENTS: [\n // Chrome, Safari\n 'wheel',\n // IE\n 'mousewheel'\n ]\n};\n\n/**\n * \"Gestural\" events are those that have semantic meaning beyond the basic input event,\n * e.g. a click or tap is a sequence of `down` and `up` events with no `move` event in between.\n * Hammer.js handles these with its Recognizer system;\n * this block maps event names to the Recognizers required to detect the events.\n */\nexport const EVENT_RECOGNIZER_MAP = {\n tap: 'tap',\n anytap: 'anytap',\n doubletap: 'doubletap',\n press: 'press',\n pinch: 'pinch',\n pinchin: 'pinch',\n pinchout: 'pinch',\n pinchstart: 'pinch',\n pinchmove: 'pinch',\n pinchend: 'pinch',\n pinchcancel: 'pinch',\n rotate: 'rotate',\n rotatestart: 'rotate',\n rotatemove: 'rotate',\n rotateend: 'rotate',\n rotatecancel: 'rotate',\n tripan: 'tripan',\n tripanstart: 'tripan',\n tripanmove: 'tripan',\n tripanup: 'tripan',\n tripandown: 'tripan',\n tripanleft: 'tripan',\n tripanright: 'tripan',\n tripanend: 'tripan',\n tripancancel: 'tripan',\n pan: 'pan',\n panstart: 'pan',\n panmove: 'pan',\n panup: 'pan',\n pandown: 'pan',\n panleft: 'pan',\n panright: 'pan',\n panend: 'pan',\n pancancel: 'pan',\n swipe: 'swipe',\n swipeleft: 'swipe',\n swiperight: 'swipe',\n swipeup: 'swipe',\n swipedown: 'swipe'\n};\n\n/**\n * Map gestural events typically provided by browsers\n * that are not reported in 'hammer.input' events\n * to corresponding Hammer.js gestures.\n */\nexport const GESTURE_EVENT_ALIASES = {\n click: 'tap',\n anyclick: 'anytap',\n dblclick: 'doubletap',\n mousedown: 'pointerdown',\n mousemove: 'pointermove',\n mouseup: 'pointerup',\n mouseover: 'pointerover',\n mouseout: 'pointerout',\n mouseleave: 'pointerleave'\n};\n","export default function assert(condition, message) {\n if (!condition) {\n throw new Error(`math.gl assertion ${message}`);\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {config, formatValue, equals, isArray} from '../../lib/common';\nimport assert from '../../lib/assert';\n\nexport default class MathArray extends Array {\n // Defined by derived class\n get ELEMENTS() {\n assert(false);\n return 0;\n }\n\n clone() {\n // @ts-ignore error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.\n return new this.constructor().copy(this);\n }\n\n from(arrayOrObject) {\n // @ts-ignore error TS2339: Property 'copy' does not exist on type 'MathArray'.\n return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);\n }\n\n fromArray(array, offset = 0) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = array[i + offset];\n }\n return this.check();\n }\n\n to(arrayOrObject) {\n if (arrayOrObject === this) {\n return this;\n }\n // @ts-ignore error TS2339: Property 'toObject' does not exist on type 'MathArray'.\n return isArray(arrayOrObject) ? this.toArray(arrayOrObject) : this.toObject(arrayOrObject);\n }\n\n toTarget(target) {\n return target ? this.to(target) : this;\n }\n\n toArray(array = [], offset = 0) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n array[offset + i] = this[i];\n }\n return array;\n }\n\n toFloat32Array() {\n return new Float32Array(this);\n }\n\n toString() {\n return this.formatString(config);\n }\n\n formatString(opts) {\n let string = '';\n for (let i = 0; i < this.ELEMENTS; ++i) {\n string += (i > 0 ? ', ' : '') + formatValue(this[i], opts);\n }\n return `${opts.printTypes ? this.constructor.name : ''}[${string}]`;\n }\n\n equals(array) {\n if (!array || this.length !== array.length) {\n return false;\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n if (!equals(this[i], array[i])) {\n return false;\n }\n }\n return true;\n }\n\n exactEquals(array) {\n if (!array || this.length !== array.length) {\n return false;\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n if (this[i] !== array[i]) {\n return false;\n }\n }\n return true;\n }\n\n // Modifiers\n\n negate() {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = -this[i];\n }\n return this.check();\n }\n\n lerp(a, b, t) {\n if (t === undefined) {\n t = b;\n b = a;\n a = this; // eslint-disable-line\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n const ai = a[i];\n this[i] = ai + t * (b[i] - ai);\n }\n return this.check();\n }\n\n min(vector) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(vector[i], this[i]);\n }\n return this.check();\n }\n\n max(vector) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.max(vector[i], this[i]);\n }\n return this.check();\n }\n\n clamp(minVector, maxVector) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(Math.max(this[i], minVector[i]), maxVector[i]);\n }\n return this.check();\n }\n\n add(...vectors) {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] += vector[i];\n }\n }\n return this.check();\n }\n\n subtract(...vectors) {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] -= vector[i];\n }\n }\n return this.check();\n }\n\n scale(scale) {\n if (Array.isArray(scale)) {\n // @ts-ignore error TS2339: Property 'multiply' does not exist on type 'MathArray'.\n return this.multiply(scale);\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scale;\n }\n return this.check();\n }\n\n // three.js compatibility\n\n sub(a) {\n return this.subtract(a);\n }\n\n setScalar(a) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = a;\n }\n return this.check();\n }\n\n addScalar(a) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] += a;\n }\n return this.check();\n }\n\n subScalar(a) {\n return this.addScalar(-a);\n }\n\n multiplyScalar(scalar) {\n // Multiplies all elements\n // `Matrix4.scale` only scales its 3x3 \"minor\"\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scalar;\n }\n return this.check();\n }\n\n divideScalar(a) {\n return this.scale(1 / a);\n }\n\n clampScalar(min, max) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(Math.max(this[i], min), max);\n }\n return this.check();\n }\n\n // Cesium compatibility\n\n multiplyByScalar(scalar) {\n return this.scale(scalar);\n }\n\n // THREE.js compatibility\n get elements() {\n return this;\n }\n\n // Debug checks\n\n check() {\n if (config.debug && !this.validate()) {\n throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);\n }\n return this;\n }\n\n validate() {\n let valid = this.length === this.ELEMENTS;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n valid = valid && Number.isFinite(this[i]);\n }\n return valid;\n }\n}\n","import MathArray from './math-array';\nimport {checkNumber} from '../../lib/validators';\nimport assert from '../../lib/assert';\n\nexport default class Vector extends MathArray {\n get ELEMENTS() {\n assert(false);\n return 0;\n }\n\n // VIRTUAL METHODS\n copy(vector) {\n assert(false);\n return this;\n }\n\n // ACCESSORS\n\n get x() {\n return this[0];\n }\n set x(value) {\n this[0] = checkNumber(value);\n }\n\n get y() {\n return this[1];\n }\n set y(value) {\n this[1] = checkNumber(value);\n }\n\n // NOTE: `length` is a reserved word for Arrays, so we can't use `v.length()`\n // Offer `len` and `magnitude`\n len() {\n return Math.sqrt(this.lengthSquared());\n }\n\n magnitude() {\n return this.len();\n }\n\n lengthSquared() {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n length += this[i] * this[i];\n }\n return length;\n }\n\n magnitudeSquared() {\n return this.lengthSquared();\n }\n\n distance(mathArray) {\n return Math.sqrt(this.distanceSquared(mathArray));\n }\n\n distanceSquared(mathArray) {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n const dist = this[i] - mathArray[i];\n length += dist * dist;\n }\n return checkNumber(length);\n }\n\n dot(mathArray) {\n let product = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n product += this[i] * mathArray[i];\n }\n return checkNumber(product);\n }\n\n // MODIFIERS\n\n normalize() {\n const length = this.magnitude();\n if (length !== 0) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= length;\n }\n }\n return this.check();\n }\n\n // negate() {\n // for (let i = 0; i < this.ELEMENTS; ++i) {\n // this[i] = -this[i];\n // }\n // return this.check();\n // }\n\n // inverse() {\n // for (let i = 0; i < this.ELEMENTS; ++i) {\n // this[i] = 1 / this[i];\n // }\n // return this.check();\n // }\n\n multiply(...vectors) {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= vector[i];\n }\n }\n return this.check();\n }\n\n divide(...vectors) {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= vector[i];\n }\n }\n return this.check();\n }\n\n // THREE.js compatibility\n lengthSq() {\n return this.lengthSquared();\n }\n\n distanceTo(vector) {\n return this.distance(vector);\n }\n\n distanceToSquared(vector) {\n return this.distanceSquared(vector);\n }\n\n getComponent(i) {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n return checkNumber(this[i]);\n }\n\n setComponent(i, value) {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n this[i] = value;\n return this.check();\n }\n\n addVectors(a, b) {\n return this.copy(a).add(b);\n }\n\n subVectors(a, b) {\n return this.copy(a).subtract(b);\n }\n\n multiplyVectors(a, b) {\n return this.copy(a).multiply(b);\n }\n\n addScaledVector(a, b) {\n // @ts-ignore error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.\n return this.add(new this.constructor(a).multiplyScalar(b));\n }\n}\n","/* eslint-disable camelcase */\n// vec2 additions\n\nexport function vec2_transformMat4AsVector(out, a, m) {\n const x = a[0];\n const y = a[1];\n const w = m[3] * x + m[7] * y || 1.0;\n out[0] = (m[0] * x + m[4] * y) / w;\n out[1] = (m[1] * x + m[5] * y) / w;\n return out;\n}\n\n// vec3 additions\n\n// Transform as vector, only uses 3x3 minor matrix\nexport function vec3_transformMat4AsVector(out, a, m) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n const w = m[3] * x + m[7] * y + m[11] * z || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z) / w;\n return out;\n}\n\nexport function vec3_transformMat2(out, a, m) {\n const x = a[0];\n const y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n out[2] = a[2];\n return out;\n}\n\n// vec4 additions\n\nexport function vec4_transformMat2(out, a, m) {\n const x = a[0];\n const y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n\nexport function vec4_transformMat3(out, a, m) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n out[0] = m[0] * x + m[3] * y + m[6] * z;\n out[1] = m[1] * x + m[4] * y + m[7] * z;\n out[2] = m[2] * x + m[5] * y + m[8] * z;\n out[3] = a[3];\n return out;\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport Vector from './base/vector';\nimport {config, isArray} from '../lib/common';\nimport {checkNumber} from '../lib/validators';\n\n// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.\nimport * as vec3 from 'gl-matrix/vec3';\n// eslint-disable-next-line camelcase\nimport {vec3_transformMat2, vec3_transformMat4AsVector} from '../lib/gl-matrix-extras';\n\nconst ORIGIN = [0, 0, 0];\nconst constants = {};\n\nexport default class Vector3 extends Vector {\n static get ZERO() {\n return (constants.ZERO = constants.ZERO || Object.freeze(new Vector3(0, 0, 0, 0)));\n }\n\n /**\n * @class\n * @param {Number | [Number, Number, Number]} x\n * @param {Number} y - rotation around X (latitude)\n * @param {Number} z - rotation around X (latitude)\n */\n constructor(x = 0, y = 0, z = 0) {\n // PERF NOTE: initialize elements as double precision numbers\n super(-0, -0, -0);\n if (arguments.length === 1 && isArray(x)) {\n this.copy(x);\n } else {\n // this.set(x, y, z);\n if (config.debug) {\n checkNumber(x);\n checkNumber(y);\n checkNumber(z);\n }\n // @ts-ignore TS2412: Property '0' of type 'number | [number, number, number]' is not assignable to numeric index type 'number'\n this[0] = x;\n this[1] = y;\n this[2] = z;\n }\n }\n\n set(x, y, z) {\n this[0] = x;\n this[1] = y;\n this[2] = z;\n return this.check();\n }\n\n copy(array) {\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n return this.check();\n }\n\n fromObject(object) {\n if (config.debug) {\n checkNumber(object.x);\n checkNumber(object.y);\n checkNumber(object.z);\n }\n this[0] = object.x;\n this[1] = object.y;\n this[2] = object.z;\n return this.check();\n }\n\n toObject(object) {\n object.x = this[0];\n object.y = this[1];\n object.z = this[2];\n return object;\n }\n\n // Getters/setters\n /* eslint-disable no-multi-spaces, brace-style, no-return-assign */\n get ELEMENTS() {\n return 3;\n }\n\n // x,y inherited from Vector\n\n get z() {\n return this[2];\n }\n set z(value) {\n this[2] = checkNumber(value);\n }\n /* eslint-enable no-multi-spaces, brace-style, no-return-assign */\n\n angle(vector) {\n return vec3.angle(this, vector);\n }\n\n // MODIFIERS\n\n cross(vector) {\n vec3.cross(this, this, vector);\n return this.check();\n }\n\n rotateX({radians, origin = ORIGIN}) {\n vec3.rotateX(this, this, origin, radians);\n return this.check();\n }\n\n rotateY({radians, origin = ORIGIN}) {\n vec3.rotateY(this, this, origin, radians);\n return this.check();\n }\n\n rotateZ({radians, origin = ORIGIN}) {\n vec3.rotateZ(this, this, origin, radians);\n return this.check();\n }\n\n // Transforms\n\n // transforms as point (4th component is implicitly 1)\n transform(matrix4) {\n return this.transformAsPoint(matrix4);\n }\n\n // transforms as point (4th component is implicitly 1)\n transformAsPoint(matrix4) {\n vec3.transformMat4(this, this, matrix4);\n return this.check();\n }\n\n // transforms as vector (4th component is implicitly 0, ignores translation. slightly faster)\n transformAsVector(matrix4) {\n vec3_transformMat4AsVector(this, this, matrix4);\n return this.check();\n }\n\n transformByMatrix3(matrix3) {\n vec3.transformMat3(this, this, matrix3);\n return this.check();\n }\n\n transformByMatrix2(matrix2) {\n vec3_transformMat2(this, this, matrix2);\n return this.check();\n }\n\n transformByQuaternion(quaternion) {\n vec3.transformQuat(this, this, quaternion);\n return this.check();\n }\n}\n","import {Vector3} from '@math.gl/core';\nimport {INTERSECTION} from '../../constants';\n\nconst scratchVector = new Vector3();\nconst scratchNormal = new Vector3();\n\nexport default class AxisAlignedBoundingBox {\n constructor(minimum = [0, 0, 0], maximum = [0, 0, 0], center = null) {\n // If center was not defined, compute it.\n center = center || scratchVector.copy(minimum).add(maximum).scale(0.5);\n this.center = new Vector3(center);\n this.halfDiagonal = new Vector3(maximum).subtract(this.center);\n\n /**\n * The minimum point defining the bounding box.\n * @type {Vector3}\n * @default {@link 0, 0, 0}\n */\n this.minimum = new Vector3(minimum);\n\n /**\n * The maximum point defining the bounding box.\n * @type {Vector3}\n * @default {@link 0, 0, 0}\n */\n this.maximum = new Vector3(maximum);\n }\n\n /**\n * Duplicates a AxisAlignedBoundingBox instance.\n *\n * @returns {AxisAlignedBoundingBox} A new AxisAlignedBoundingBox instance.\n */\n clone() {\n return new AxisAlignedBoundingBox(this.minimum, this.maximum, this.center);\n }\n\n /**\n * Compares the provided AxisAlignedBoundingBox componentwise and returns\n * <code>true</code> if they are equal, <code>false</code> otherwise.\n *\n * @param {AxisAlignedBoundingBox} [right] The second AxisAlignedBoundingBox to compare with.\n * @returns {Boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.\n */\n equals(right) {\n return (\n this === right ||\n (Boolean(right) && this.minimum.equals(right.minimum) && this.maximum.equals(right.maximum))\n );\n }\n\n transform(transformation) {\n this.center.transformAsPoint(transformation);\n // TODO - this.halfDiagonal.transformAsVector(transformation);\n this.halfDiagonal.transform(transformation);\n this.minimum.transform(transformation);\n this.maximum.transform(transformation);\n return this;\n }\n\n /**\n * Determines which side of a plane a box is located.\n */\n intersectPlane(plane) {\n const {halfDiagonal} = this;\n const normal = scratchNormal.from(plane.normal);\n const e =\n halfDiagonal.x * Math.abs(normal.x) +\n halfDiagonal.y * Math.abs(normal.y) +\n halfDiagonal.z * Math.abs(normal.z);\n const s = this.center.dot(normal) + plane.distance; // signed distance from center\n\n if (s - e > 0) {\n return INTERSECTION.INSIDE;\n }\n\n if (s + e < 0) {\n // Not in front because normals point inward\n return INTERSECTION.OUTSIDE;\n }\n\n return INTERSECTION.INTERSECTING;\n }\n\n // Computes the estimated distance from the closest point on a bounding box to a point.\n distanceTo(point) {\n return Math.sqrt(this.distanceSquaredTo(point));\n }\n\n // Computes the estimated distance squared from the closest point on a bounding box to a point.\n // A simplified version of OrientedBoundingBox.distanceSquaredTo\n distanceSquaredTo(point) {\n const offset = scratchVector.from(point).subtract(this.center);\n const {halfDiagonal} = this;\n\n let distanceSquared = 0.0;\n let d;\n\n d = Math.abs(offset.x) - halfDiagonal.x;\n if (d > 0) {\n distanceSquared += d * d;\n }\n\n d = Math.abs(offset.y) - halfDiagonal.y;\n if (d > 0) {\n distanceSquared += d * d;\n }\n\n d = Math.abs(offset.z) - halfDiagonal.z;\n if (d > 0) {\n distanceSquared += d * d;\n }\n\n return distanceSquared;\n }\n}\n","// This file is derived from the Cesium math library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {Vector3} from '@math.gl/core';\nimport * as mat4 from 'gl-matrix/mat4';\nimport {INTERSECTION} from '../../constants';\n\n// import Rectangle from './rectangle';\n\n// const defaultProjection = new GeographicProjection();\n// const fromRectangle2DLowerLeft = new Vector3();\n// const fromRectangle2DUpperRight = new Vector3();\n// const fromRectangle2DSouthwest = new Cartographic();\n// const fromRectangle2DNortheast = new Cartographic();\n\n// const fromRectangle3DScratch = [];\n\nconst scratchVector = new Vector3();\nconst scratchVector2 = new Vector3();\n\nexport default class BoundingSphere {\n constructor(center = [0, 0, 0], radius = 0.0) {\n this.radius = -0;\n this.center = new Vector3();\n this.fromCenterRadius(center, radius);\n }\n\n fromCenterRadius(center, radius) {\n this.center.from(center);\n this.radius = radius;\n return this;\n }\n\n fromCornerPoints(corner, oppositeCorner) {\n oppositeCorner = scratchVector.from(oppositeCorner);\n this.center = new Vector3().from(corner).add(oppositeCorner).scale(0.5);\n this.radius = this.center.distance(oppositeCorner);\n return this;\n }\n\n equals(right) {\n return (\n this === right ||\n (Boolean(right) && this.center.equals(right.center) && this.radius === right.radius)\n );\n }\n\n clone() {\n return new BoundingSphere(this.center, this.radius);\n }\n\n union(boundingSphere) {\n const leftCenter = this.center;\n const leftRadius = this.radius;\n const rightCenter = boundingSphere.center;\n const rightRadius = boundingSphere.radius;\n\n const toRightCenter = scratchVector.copy(rightCenter).subtract(leftCenter);\n const centerSeparation = toRightCenter.magnitude();\n\n if (leftRadius >= centerSeparation + rightRadius) {\n // Left sphere wins.\n return this.clone();\n }\n\n if (rightRadius >= centerSeparation + leftRadius) {\n // Right sphere wins.\n return boundingSphere.clone();\n }\n\n // There are two tangent points, one on far side of each sphere.\n const halfDistanceBetweenTangentPoints = (leftRadius + centerSeparation + rightRadius) * 0.5;\n\n // Compute the center point halfway between the two tangent points.\n scratchVector2\n .copy(toRightCenter)\n .scale((-leftRadius + halfDistanceBetweenTangentPoints) / centerSeparation)\n .add(leftCenter);\n\n this.center.copy(scratchVector2);\n this.radius = halfDistanceBetweenTangentPoints;\n\n return this;\n }\n\n expand(point) {\n point = scratchVector.from(point);\n const radius = point.subtract(this.center).magnitude();\n if (radius > this.radius) {\n this.radius = radius;\n }\n return this;\n }\n\n transform(transform) {\n this.center.transform(transform);\n const scale = mat4.getScaling(scratchVector, transform);\n this.radius = Math.max(scale[0], Math.max(scale[1], scale[2])) * this.radius;\n return this;\n }\n\n // Computes the estimated distance squared from the closest point on a bounding sphere to a point.\n distanceSquaredTo(point) {\n const d = this.distanceTo(point);\n return d * d;\n }\n\n distanceTo(point) {\n point = scratchVector.from(point);\n const delta = point.subtract(this.center);\n return Math.max(0, delta.len() - this.radius);\n }\n\n // Determines which side of a plane a sphere is located.\n intersectPlane(plane) {\n const center = this.center;\n const radius = this.radius;\n const normal = plane.normal;\n const distanceToPlane = normal.dot(center) + plane.distance;\n\n // The center point is negative side of the plane normal\n if (distanceToPlane < -radius) {\n return INTERSECTION.OUTSIDE;\n }\n // The center point is positive side of the plane, but radius extends beyond it; partial overlap\n if (distanceToPlane < radius) {\n return INTERSECTION.INTERSECTING;\n }\n // The center point and radius is positive side of the plane\n return INTERSECTION.INSIDE;\n }\n}\n","import MathArray from './math-array';\nimport {checkNumber} from '../../lib/validators';\nimport {config} from '../../lib/common';\nimport assert from '../../lib/assert';\n\nexport default class Matrix extends MathArray {\n // Defined by derived class\n get ELEMENTS() {\n assert(false);\n return 0;\n }\n\n get RANK() {\n assert(false);\n return 0;\n }\n\n // fromObject(object) {\n // const array = object.elements;\n // return this.fromRowMajor(array);\n // }\n\n // toObject(object) {\n // const array = object.elements;\n // this.toRowMajor(array);\n // return object;\n // }\n\n toString() {\n let string = '[';\n if (config.printRowMajor) {\n string += 'row-major:';\n for (let row = 0; row < this.RANK; ++row) {\n for (let col = 0; col < this.RANK; ++col) {\n string += ` ${this[col * this.RANK + row]}`;\n }\n }\n } else {\n string += 'column-major:';\n for (let i = 0; i < this.ELEMENTS; ++i) {\n string += ` ${this[i]}`;\n }\n }\n string += ']';\n return string;\n }\n\n getElementIndex(row, col) {\n return col * this.RANK + row;\n }\n\n // By default assumes row major indices\n getElement(row, col) {\n return this[col * this.RANK + row];\n }\n\n // By default assumes row major indices\n setElement(row, col, value) {\n this[col * this.RANK + row] = checkNumber(value);\n return this;\n }\n\n getColumn(columnIndex, result = new Array(this.RANK).fill(-0)) {\n const firstIndex = columnIndex * this.RANK;\n for (let i = 0; i < this.RANK; ++i) {\n result[i] = this[firstIndex + i];\n }\n return result;\n }\n\n setColumn(columnIndex, columnVector) {\n const firstIndex = columnIndex * this.RANK;\n for (let i = 0; i < this.RANK; ++i) {\n this[firstIndex + i] = columnVector[i];\n }\n return this;\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport Matrix from './base/matrix';\nimport {checkVector, deprecated} from '../lib/validators';\n// eslint-disable-next-line camelcase\nimport {vec4_transformMat3} from '../lib/gl-matrix-extras';\n\n// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.\nimport * as mat3 from 'gl-matrix/mat3';\n// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.\nimport * as vec2 from 'gl-matrix/vec2';\n// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.\nimport * as vec3 from 'gl-matrix/vec3';\n\nconst IDENTITY = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);\nconst ZERO = Object.freeze([0, 0, 0, 0, 0, 0, 0, 0, 0]);\n\nconst INDICES = Object.freeze({\n COL0ROW0: 0,\n COL0ROW1: 1,\n COL0ROW2: 2,\n COL1ROW0: 3,\n COL1ROW1: 4,\n COL1ROW2: 5,\n COL2ROW0: 6,\n COL2ROW1: 7,\n COL2ROW2: 8\n});\n\nconst constants = {};\n\nexport default class Matrix3 extends Matrix {\n static get IDENTITY() {\n constants.IDENTITY = constants.IDENTITY || Object.freeze(new Matrix3(IDENTITY));\n return constants.IDENTITY;\n }\n\n static get ZERO() {\n constants.ZERO = constants.ZERO || Object.freeze(new Matrix3(ZERO));\n return constants.ZERO;\n }\n\n get ELEMENTS() {\n return 9;\n }\n\n get RANK() {\n return 3;\n }\n\n get INDICES() {\n return INDICES;\n }\n\n constructor(array) {\n // PERF NOTE: initialize elements as double precision numbers\n super(-0, -0, -0, -0, -0, -0, -0, -0, -0);\n if (arguments.length === 1 && Array.isArray(array)) {\n this.copy(array);\n } else {\n this.identity();\n }\n }\n\n copy(array) {\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n this[3] = array[3];\n this[4] = array[4];\n this[5] = array[5];\n this[6] = array[6];\n this[7] = array[7];\n this[8] = array[8];\n return this.check();\n }\n\n // accepts column major order, stores in column major order\n // eslint-disable-next-line max-params\n set(m00, m10, m20, m01, m11, m21, m02, m12, m22) {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m01;\n this[4] = m11;\n this[5] = m21;\n this[6] = m02;\n this[7] = m12;\n this[8] = m22;\n return this.check();\n }\n\n // accepts row major order, stores as column major\n // eslint-disable-next-line max-params\n setRowMajor(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m01;\n this[4] = m11;\n this[5] = m21;\n this[6] = m02;\n this[7] = m12;\n this[8] = m22;\n return this.check();\n }\n\n // Accessors\n\n determinant() {\n return mat3.determinant(this);\n }\n\n // Constructors\n\n identity() {\n return this.copy(IDENTITY);\n }\n\n // Calculates a 3x3 matrix from the given quaternion\n // q quat Quaternion to create matrix from\n fromQuaternion(q) {\n mat3.fromQuat(this, q);\n return this.check();\n }\n\n // Modifiers\n\n transpose() {\n mat3.transpose(this, this);\n return this.check();\n }\n\n invert() {\n mat3.invert(this, this);\n return this.check();\n }\n\n // Operations\n\n multiplyLeft(a) {\n mat3.multiply(this, a, this);\n return this.check();\n }\n\n multiplyRight(a) {\n mat3.multiply(this, this, a);\n return this.check();\n }\n\n rotate(radians) {\n mat3.rotate(this, this, radians);\n return this.check();\n }\n\n scale(factor) {\n if (Array.isArray(factor)) {\n mat3.scale(this, this, factor);\n } else {\n mat3.scale(this, this, [factor, factor, factor]);\n }\n\n return this.check();\n }\n\n translate(vec) {\n mat3.translate(this, this, vec);\n return this.check();\n }\n\n // Transforms\n\n transform(vector, result) {\n switch (vector.length) {\n case 2:\n result = vec2.transformMat3(result || [-0, -0], vector, this);\n break;\n case 3:\n result = vec3.transformMat3(result || [-0, -0, -0], vector, this);\n break;\n case 4:\n result = vec4_transformMat3(result || [-0, -0, -0, -0], vector, this);\n break;\n default:\n throw new Error('Illegal vector');\n }\n checkVector(result, vector.length);\n return result;\n }\n\n // DEPRECATED IN 3.0\n\n transformVector(vector, result) {\n deprecated('Matrix3.transformVector');\n return this.transform(vector, result);\n }\n\n transformVector2(vector, result) {\n deprecated('Matrix3.transformVector');\n return this.transform(vector, result);\n }\n\n transformVector3(vector, result) {\n deprecated('Matrix3.transformVector');\n return this.transform(vector, result);\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport MathArray from './base/math-array';\nimport {checkNumber, checkVector} from '../lib/validators';\nimport assert from '../lib/assert';\n\n// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.\nimport * as quat from 'gl-matrix/quat';\n// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.\nimport * as vec4 from 'gl-matrix/vec4';\n\nconst IDENTITY_QUATERNION = [0, 0, 0, 1];\n\nexport default class Quaternion extends MathArray {\n constructor(x = 0, y = 0, z = 0, w = 1) {\n // PERF NOTE: initialize elements as double precision numbers\n super(-0, -0, -0, -0);\n // eslint-disable-next-line prefer-rest-params\n if (Array.isArray(x) && arguments.length === 1) {\n this.copy(x);\n } else {\n this.set(x, y, z, w);\n }\n }\n\n copy(array) {\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n this[3] = array[3];\n return this.check();\n }\n\n set(x, y, z, w) {\n this[0] = x;\n this[1] = y;\n this[2] = z;\n this[3] = w;\n return this.check();\n }\n\n // Creates a quaternion from the given 3x3 rotation matrix.\n // NOTE: The resultant quaternion is not normalized, so you should\n // be sure to renormalize the quaternion yourself where necessary.\n fromMatrix3(m) {\n quat.fromMat3(this, m);\n return this.check();\n }\n\n // Set a quat to the identity quaternion\n identity() {\n quat.identity(this);\n return this.check();\n }\n\n fromAxisRotation(axis, rad) {\n quat.setAxisAngle(this, axis, rad);\n return this.check();\n }\n\n // Set the components of a quat to the given values\n // set(i, j, k, l) {\n // quat.set(this, i, j, k, l);\n // return this.check();\n // }\n\n // Sets a quat from the given angle and rotation axis, then returns it.\n setAxisAngle(axis, rad) {\n return this.fromAxisRotation(axis, rad);\n }\n\n // Getters/setters\n /* eslint-disable no-multi-spaces, brace-style, no-return-assign */\n get ELEMENTS() {\n return 4;\n }\n\n get x() {\n return this[0];\n }\n\n set x(value) {\n this[0] = checkNumber(value);\n }\n\n get y() {\n return this[1];\n }\n\n set y(value) {\n this[1] = checkNumber(value);\n }\n\n get z() {\n return this[2];\n }\n\n set z(value) {\n this[2] = checkNumber(value);\n }\n\n get w() {\n return this[3];\n }\n\n set w(value) {\n this[3] = checkNumber(value);\n }\n\n /* eslint-enable no-multi-spaces, brace-style, no-return-assign */\n\n // Calculates the length of a quat\n len() {\n return quat.length(this);\n }\n\n // Calculates the squared length of a quat\n lengthSquared() {\n return quat.squaredLength(this);\n }\n\n // Calculates the dot product of two quat's\n // @return {Number}\n dot(a, b) {\n if (b !== undefined) {\n throw new Error('Quaternion.dot only takes one argument');\n }\n return quat.dot(this, a);\n }\n\n // Gets the rotation axis and angle for a given quaternion.\n // If a quaternion is created with setAxisAngle, this method will\n // return the same values as providied in the original parameter\n // list OR functionally equivalent values.\n // Example: The quaternion formed by axis [0, 0, 1] and angle -90\n // is the same as the quaternion formed by [0, 0, 1] and 270.\n // This method favors the latter.\n // @return {{[x,y,z], Number}}\n // getAxisAngle() {\n // const axis = [];\n // const angle = quat.getAxisAngle(axis, this);\n // return {axis, angle};\n // }\n\n // MODIFIERS\n\n // Sets a quaternion to represent the shortest rotation from one vector\n // to another. Both vectors are assumed to be unit length.\n rotationTo(vectorA, vectorB) {\n quat.rotationTo(this, vectorA, vectorB);\n return this.check();\n }\n\n // Sets the specified quaternion with values corresponding to the given axes.\n // Each axis is a vec3 and is expected to be unit length and perpendicular\n // to all other specified axes.\n // setAxes() {\n // Number\n // }\n\n // Performs a spherical linear interpolation with two control points\n // sqlerp() {\n // Number;\n // }\n\n // Adds two quat's\n add(a, b) {\n if (b !== undefined) {\n throw new Error('Quaternion.add only takes one argument');\n }\n quat.add(this, this, a);\n return this.check();\n }\n\n // Calculates the W component of a quat from the X, Y, and Z components.\n // Any existing W component will be ignored.\n calculateW() {\n quat.calculateW(this, this);\n return this.check();\n }\n\n // Calculates the conjugate of a quat If the quaternion is normalized,\n // this function is faster than quat.inverse and produces the same result.\n conjugate() {\n quat.conjugate(this, this);\n return this.check();\n }\n\n // Calculates the inverse of a quat\n invert() {\n quat.invert(this, this);\n return this.check();\n }\n\n // Performs a linear interpolation between two quat's\n lerp(a, b, t) {\n quat.lerp(this, a, b, t);\n return this.check();\n }\n\n // Multiplies two quat's\n multiplyRight(a, b) {\n assert(!b); // Quaternion.multiply only takes one argument\n quat.multiply(this, this, a);\n return this.check();\n }\n\n multiplyLeft(a, b) {\n assert(!b); // Quaternion.multiply only takes one argument\n quat.multiply(this, a, this);\n return this.check();\n }\n\n // Normalize a quat\n normalize() {\n // Handle 0 case\n const length = this.len();\n const l = length > 0 ? 1 / length : 0;\n this[0] = this[0] * l;\n this[1] = this[1] * l;\n this[2] = this[2] * l;\n this[3] = this[3] * l;\n // Set to [0, 0, 0, 1] if length is 0\n if (length === 0) {\n this[3] = 1;\n }\n return this.check();\n }\n\n // Rotates a quaternion by the given angle about the X axis\n rotateX(rad) {\n quat.rotateX(this, this, rad);\n return this.check();\n }\n\n // Rotates a quaternion by the given angle about the Y axis\n rotateY(rad) {\n quat.rotateY(this, this, rad);\n return this.check();\n }\n\n // Rotates a quaternion by the given angle about the Z axis\n rotateZ(rad) {\n quat.rotateZ(this, this, rad);\n return this.check();\n }\n\n // Scales a quat by a scalar number\n scale(b) {\n quat.scale(this, this, b);\n return this.check();\n }\n\n // Performs a spherical linear interpolation between two quat\n slerp(start, target, ratio) {\n // eslint-disable-next-line prefer-rest-params\n switch (arguments.length) {\n case 1: // Deprecated signature ({start, target, ratio})\n // eslint-disable-next-line prefer-rest-params\n ({start = IDENTITY_QUATERNION, target, ratio} = arguments[0]);\n break;\n case 2: // THREE.js compatibility signature (target, ration)\n // eslint-disable-next-line prefer-rest-params\n [target, ratio] = arguments;\n start = this; // eslint-disable-line\n break;\n default: // Default signature: (start, target, ratio)\n }\n quat.slerp(this, start, target, ratio);\n return this.check();\n }\n\n transformVector4(vector, result = vector) {\n vec4.transformQuat(result, vector, this);\n return checkVector(result, 4);\n }\n\n // THREE.js Math API compatibility\n lengthSq() {\n return this.lengthSquared();\n }\n\n setFromAxisAngle(axis, rad) {\n return this.setAxisAngle(axis, rad);\n }\n\n premultiply(a, b) {\n return this.multiplyLeft(a, b);\n }\n\n multiply(a, b) {\n return this.multiplyRight(a, b);\n }\n}\n","// This file is derived from the Cesium math library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {Vector3, Matrix3, Quaternion} from '@math.gl/core';\nimport BoundingSphere from './bounding-sphere';\nimport {INTERSECTION} from '../../constants';\n\nconst scratchVector3 = new Vector3();\nconst scratchOffset = new Vector3();\nconst scratchVectorU = new Vector3();\nconst scratchVectorV = new Vector3();\nconst scratchVectorW = new Vector3();\nconst scratchCorner = new Vector3();\nconst scratchToCenter = new Vector3();\n\nconst MATRIX3 = {\n COLUMN0ROW0: 0,\n COLUMN0ROW1: 1,\n COLUMN0ROW2: 2,\n COLUMN1ROW0: 3,\n COLUMN1ROW1: 4,\n COLUMN1ROW2: 5,\n COLUMN2ROW0: 6,\n COLUMN2ROW1: 7,\n COLUMN2ROW2: 8\n};\n\nexport default class OrientedBoundingBox {\n constructor(center = [0, 0, 0], halfAxes = [0, 0, 0, 0, 0, 0, 0, 0, 0]) {\n this.center = new Vector3().from(center);\n this.halfAxes = new Matrix3(halfAxes);\n }\n\n get halfSize() {\n const xAxis = this.halfAxes.getColumn(0);\n const yAxis = this.halfAxes.getColumn(1);\n const zAxis = this.halfAxes.getColumn(2);\n return [new Vector3(xAxis).len(), new Vector3(yAxis).len(), new Vector3(zAxis).len()];\n }\n\n get quaternion() {\n const xAxis = this.halfAxes.getColumn(0);\n const yAxis = this.halfAxes.getColumn(1);\n const zAxis = this.halfAxes.getColumn(2);\n const normXAxis = new Vector3(xAxis).normalize();\n const normYAxis = new Vector3(yAxis).normalize();\n const normZAxis = new Vector3(zAxis).normalize();\n return new Quaternion().fromMatrix3(new Matrix3([...normXAxis, ...normYAxis, ...normZAxis]));\n }\n\n fromCenterHalfSizeQuaternion(center, halfSize, quaternion) {\n const quaternionObject = new Quaternion(quaternion);\n const directionsMatrix = new Matrix3().fromQuaternion(quaternionObject);\n directionsMatrix[0] = directionsMatrix[0] * halfSize[0];\n directionsMatrix[1] = directionsMatrix[1] * halfSize[0];\n directionsMatrix[2] = directionsMatrix[2] * halfSize[0];\n directionsMatrix[3] = directionsMatrix[3] * halfSize[1];\n directionsMatrix[4] = directionsMatrix[4] * halfSize[1];\n directionsMatrix[5] = directionsMatrix[5] * halfSize[1];\n directionsMatrix[6] = directionsMatrix[6] * halfSize[2];\n directionsMatrix[7] = directionsMatrix[7] * halfSize[2];\n directionsMatrix[8] = directionsMatrix[8] * halfSize[2];\n this.center = new Vector3().from(center);\n this.halfAxes = directionsMatrix;\n return this;\n }\n\n clone() {\n return new OrientedBoundingBox(this.center, this.halfAxes);\n }\n\n equals(right) {\n return (\n this === right ||\n (Boolean(right) && this.center.equals(right.center) && this.halfAxes.equals(right.halfAxes))\n );\n }\n\n getBoundingSphere(result = new BoundingSphere()) {\n const halfAxes = this.halfAxes;\n const u = halfAxes.getColumn(0, scratchVectorU);\n const v = halfAxes.getColumn(1, scratchVectorV);\n const w = halfAxes.getColumn(2, scratchVectorW);\n\n // Calculate \"corner\" vector\n const cornerVector = scratchVector3.copy(u).add(v).add(w);\n\n result.center.copy(this.center);\n result.radius = cornerVector.magnitude();\n\n return result;\n }\n\n intersectPlane(plane) {\n const center = this.center;\n const normal = plane.normal;\n const halfAxes = this.halfAxes;\n\n const normalX = normal.x;\n const normalY = normal.y;\n const normalZ = normal.z;\n\n // Plane is used as if it is its normal; the first three components are assumed to be normalized\n const radEffective =\n Math.abs(\n normalX * halfAxes[MATRIX3.COLUMN0ROW0] +\n normalY * halfAxes[MATRIX3.COLUMN0ROW1] +\n normalZ * halfAxes[MATRIX3.COLUMN0ROW2]\n ) +\n Math.abs(\n normalX * halfAxes[MATRIX3.COLUMN1ROW0] +\n normalY * halfAxes[MATRIX3.COLUMN1ROW1] +\n normalZ * halfAxes[MATRIX3.COLUMN1ROW2]\n ) +\n Math.abs(\n normalX * halfAxes[MATRIX3.COLUMN2ROW0] +\n normalY * halfAxes[MATRIX3.COLUMN2ROW1] +\n normalZ * halfAxes[MATRIX3.COLUMN2ROW2]\n );\n const distanceToPlane = normal.dot(center) + plane.distance;\n\n if (distanceToPlane <= -radEffective) {\n // The entire box is on the negative side of the plane normal\n return INTERSECTION.OUTSIDE;\n } else if (distanceToPlane >= radEffective) {\n // The entire box is on the positive side of the plane normal\n return INTERSECTION.INSIDE;\n }\n return INTERSECTION.INTERSECTING;\n }\n\n distanceTo(point) {\n return Math.sqrt(this.distanceSquaredTo(point));\n }\n\n distanceSquaredTo(point) {\n // Computes the estimated distance squared from the\n // closest point on a bounding box to a point.\n // See Geometric Tools for Computer Graphics 10.4.2\n const offset = scratchOffset.from(point).subtract(this.center);\n\n const halfAxes = this.halfAxes;\n const u = halfAxes.getColumn(0, scratchVectorU);\n const v = halfAxes.getColumn(1, scratchVectorV);\n const w = halfAxes.getColumn(2, scratchVectorW);\n\n const uHalf = u.magnitude();\n const vHalf = v.magnitude();\n const wHalf = w.magnitude();\n\n u.normalize();\n v.normalize();\n w.normalize();\n\n let distanceSquared = 0.0;\n let d;\n\n d = Math.abs(offset.dot(u)) - uHalf;\n if (d > 0) {\n distanceSquared += d * d;\n }\n\n d = Math.abs(offset.dot(v)) - vHalf;\n if (d > 0) {\n distanceSquared += d * d;\n }\n\n d = Math.abs(offset.dot(w)) - wHalf;\n if (d > 0) {\n distanceSquared += d * d;\n }\n\n return distanceSquared;\n }\n\n // eslint-disable-next-line max-statements\n computePlaneDistances(position, direction, result = [-0, -0]) {\n let minDist = Number.POSITIVE_INFINITY;\n let maxDist = Number.NEGATIVE_INFINITY;\n\n const center = this.center;\n const halfAxes = this.halfAxes;\n\n const u = halfAxes.getColumn(0, scratchVectorU);\n const v = halfAxes.getColumn(1, scratchVectorV);\n const w = halfAxes.getColumn(2, scratchVectorW);\n\n // project first corner\n const corner = scratchCorner.copy(u).add(v).add(w).add(center);\n\n const toCenter = scratchToCenter.copy(corner).subtract(position);\n let mag = direction.dot(toCenter);\n\n minDist = Math.min(mag, minDist);\n maxDist = Math.max(mag, maxDist);\n\n // project second corner\n corner.copy(center).add(u).add(v).subtract(w);\n\n toCenter.copy(corner).subtract(position);\n mag = direction.dot(toCenter);\n\n minDist = Math.min(mag, minDist);\n maxDist = Math.max(mag, maxDist);\n\n // project third corner\n corner.copy(center).add(u).subtract(v).add(w);\n\n toCenter.copy(corner).subtract(position);\n mag = direction.dot(toCenter);\n\n minDist = Math.min(mag, minDist);\n maxDist = Math.max(mag, maxDist);\n\n // project fourth corner\n corner.copy(center).add(u).subtract(v).subtract(w);\n\n toCenter.copy(corner).subtract(position);\n mag = direction.dot(toCenter);\n\n minDist = Math.min(mag, minDist);\n maxDist = Math.max(mag, maxDist);\n\n // project fifth corner\n center.copy(corner).subtract(u).add(v).add(w);\n\n toCenter.copy(corner).subtract(position);\n mag = direction.dot(toCenter);\n\n minDist = Math.min(mag, minDist);\n maxDist = Math.max(mag, maxDist);\n\n // project sixth corner\n center.copy(corner).subtract(u).add(v).subtract(w);\n\n toCenter.copy(corner).subtract(position);\n mag = direction.dot(toCenter);\n\n minDist = Math.min(mag, minDist);\n maxDist = Math.max(mag, maxDist);\n\n // project seventh corner\n center.copy(corner).subtract(u).subtract(v).add(w);\n\n toCenter.copy(corner).subtract(position);\n mag = direction.dot(toCenter);\n\n minDist = Math.min(mag, minDist);\n maxDist = Math.max(mag, maxDist);\n\n // project eighth corner\n center.copy(corner).subtract(u).subtract(v).subtract(w);\n\n toCenter.copy(corner).subtract(position);\n mag = direction.dot(toCenter);\n\n minDist = Math.min(mag, minDist);\n maxDist = Math.max(mag, maxDist);\n\n result[0] = minDist;\n result[1] = maxDist;\n return result;\n }\n\n transform(transformation) {\n this.center.transformAsPoint(transformation);\n\n const xAxis = this.halfAxes.getColumn(0, scratchVectorU);\n xAxis.transformAsPoint(transformation);\n\n const yAxis = this.halfAxes.getColumn(1, scratchVectorV);\n yAxis.transformAsPoint(transformation);\n\n const zAxis = this.halfAxes.getColumn(2, scratchVectorW);\n zAxis.transformAsPoint(transformation);\n\n this.halfAxes = new Matrix3([...xAxis, ...yAxis, ...zAxis]);\n return this;\n }\n\n getTransform() {\n // const modelMatrix = Matrix4.fromRotationTranslation(this.boundingVolume.halfAxes, this.boundingVolume.center);\n // return modelMatrix;\n throw new Error('not implemented');\n }\n}\n","// This file is derived from the Cesium math library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\n/* eslint-disable */\nimport {Vector3, equals, assert} from '@math.gl/core';\n\nconst scratchPosition = new Vector3();\nconst scratchNormal = new Vector3();\n\n// A plane in Hessian Normal Form\nexport default class Plane {\n constructor(normal = [0, 0, 1], distance = 0) {\n this.normal = new Vector3();\n this.distance = -0;\n this.fromNormalDistance(normal, distance);\n }\n\n fromNormalDistance(normal, distance) {\n assert(Number.isFinite(distance));\n this.normal.from(normal).normalize();\n this.distance = distance;\n return this;\n }\n\n // Creates a plane from a normal and a point on the plane.\n fromPointNormal(point, normal) {\n point = scratchPosition.from(point);\n this.normal.from(normal).normalize();\n const distance = -this.normal.dot(point);\n this.distance = distance;\n\n return this;\n }\n\n // Creates a plane from the general equation\n fromCoefficients(a, b, c, d) {\n this.normal.set(a, b, c);\n assert(equals(this.normal.len(), 1));\n this.distance = d;\n return this;\n }\n\n // Duplicates a Plane instance.\n clone(plane) {\n return new Plane(this.normal, this.distance);\n }\n\n // Compares the provided Planes by normal and distance\n equals(right) {\n return equals(this.distance, right.distance) && equals(this.normal, right.normal);\n }\n\n // Computes the signed shortest distance of a point to a plane.\n // The sign of the distance determines which side of the plane the point is on.\n getPointDistance(point) {\n return this.normal.dot(point) + this.distance;\n }\n\n // Transforms the plane by the given transformation matrix.\n transform(matrix4) {\n const normal = scratchNormal.copy(this.normal).transformAsVector(matrix4).normalize();\n const point = this.normal.scale(-this.distance).transform(matrix4);\n return this.fromPointNormal(point, normal);\n }\n\n // Projects a point onto the plane.\n projectPointOntoPlane(point, result = [0, 0, 0]) {\n point = scratchPosition.from(point);\n // projectedPoint = point - (normal.point + scale) * normal\n const pointDistance = this.getPointDistance(point);\n const scaledNormal = scratchNormal.copy(this.normal).scale(pointDistance);\n\n return point.subtract(scaledNormal).to(result);\n }\n}\n","// This file is derived from the Cesium math library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\n/* eslint-disable */\nimport {Vector3, Vector4, assert} from '@math.gl/core';\nimport {INTERSECTION} from '../constants';\nimport Plane from './plane';\n\n// X, Y, Z Unit vectors\nconst faces = [new Vector3([1, 0, 0]), new Vector3([0, 1, 0]), new Vector3([0, 0, 1])];\n\nconst scratchPlaneCenter = new Vector3();\nconst scratchPlaneNormal = new Vector3();\nconst scratchPlane = new Plane(new Vector3(1.0, 0.0, 0.0), 0.0);\n\n// A culling volume defined by planes.\nexport default class CullingVolume {\n // For plane masks (as used in {@link CullingVolume#computeVisibilityWithPlaneMask}), this special value\n // represents the case where the object bounding volume is entirely outside the culling volume.\n static get MASK_OUTSIDE() {\n return 0xffffffff;\n }\n\n // For plane masks (as used in {@link CullingVolume.prototype.computeVisibilityWithPlaneMask}), this value\n // represents the case where the object bounding volume is entirely inside the culling volume.\n static get MASK_INSIDE() {\n return 0x00000000;\n }\n\n // For plane masks (as used in {@link CullingVolume.prototype.computeVisibilityWithPlaneMask}), this value\n // represents the case where the object bounding volume (may) intersect all planes of the culling volume.\n static get MASK_INDETERMINATE() {\n return 0x7fffffff;\n }\n\n constructor(planes = []) {\n // {Cartesian4[]} [planes] An array of clipping planes.\n this.planes = planes;\n assert(this.planes.every((plane) => plane instanceof Plane));\n }\n\n // Constructs a culling volume from a bounding sphere. Creates six planes that create a box containing the sphere.\n // The planes are aligned to the x, y, and z axes in world coordinates.\n fromBoundingSphere(boundingSphere) {\n this.planes.length = 2 * faces.length;\n\n const center = boundingSphere.center;\n const radius = boundingSphere.radius;\n\n let planeIndex = 0;\n\n for (const faceNormal of faces) {\n let plane0 = this.planes[planeIndex];\n let plane1 = this.planes[planeIndex + 1];\n\n if (!plane0) {\n plane0 = this.planes[planeIndex] = new Plane();\n }\n if (!plane1) {\n plane1 = this.planes[planeIndex + 1] = new Plane();\n }\n\n const plane0Center = scratchPlaneCenter.copy(faceNormal).scale(-radius).add(center);\n const plane0Distance = -faceNormal.dot(plane0Center);\n\n plane0.fromPointNormal(plane0Center, faceNormal);\n\n const plane1Center = scratchPlaneCenter.copy(faceNormal).scale(radius).add(center);\n\n const negatedFaceNormal = scratchPlaneNormal.copy(faceNormal).negate();\n\n const plane1Distance = -negatedFaceNormal.dot(plane1Center);\n\n plane1.fromPointNormal(plane1Center, negatedFaceNormal);\n\n planeIndex += 2;\n }\n\n return this;\n }\n\n // Determines whether a bounding volume intersects the culling volume.\n computeVisibility(boundingVolume) {\n assert(boundingVolume);\n // const planes = this.planes;\n let intersect = INTERSECTION.INSIDE;\n for (const plane of this.planes) {\n const result = boundingVolume.intersectPlane(plane);\n switch (result) {\n case INTERSECTION.OUTSIDE:\n // We are done\n return INTERSECTION.OUTSIDE;\n\n case INTERSECTION.INTERSECTING:\n // If no other intersection is outside, return INTERSECTING\n intersect = INTERSECTION.INTERSECTING;\n break;\n\n default:\n }\n }\n\n return intersect;\n }\n\n // Determines whether a bounding volume intersects the culling volume.\n /*\n * @param {Number} parentPlaneMask A bit mask from the boundingVolume's parent's check against the same culling\n * volume, such that if (planeMask & (1 << planeIndex) === 0), for k < 31, then\n * the parent (and therefore this) volume is completely inside plane[planeIndex]\n * and that plane check can be skipped.\n */\n computeVisibilityWithPlaneMask(boundingVolume, parentPlaneMask) {\n assert(boundingVolume, 'boundingVolume is required.');\n assert(Number.isFinite(parentPlaneMask), 'parentPlaneMask is required.');\n\n if (\n parentPlaneMask === CullingVolume.MASK_OUTSIDE ||\n parentPlaneMask === CullingVolume.MASK_INSIDE\n ) {\n // parent is completely outside or completely inside, so this child is as well.\n return parentPlaneMask;\n }\n\n // Start with MASK_INSIDE (all zeros) so that after the loop, the return value can be compared with MASK_INSIDE.\n // (Because if there are fewer than 31 planes, the upper bits wont be changed.)\n let mask = CullingVolume.MASK_INSIDE;\n\n const planes = this.planes;\n for (let k = 0; k < this.planes.length; ++k) {\n // For k greater than 31 (since 31 is the maximum number of INSIDE/INTERSECTING bits we can store), skip the optimization.\n const flag = k < 31 ? 1 << k : 0;\n if (k < 31 && (parentPlaneMask & flag) === 0) {\n // boundingVolume is known to be INSIDE this plane.\n continue;\n }\n\n const plane = planes[k];\n const result = boundingVolume.intersectPlane(plane);\n if (result === INTERSECTION.OUTSIDE) {\n return CullingVolume.MASK_OUTSIDE;\n } else if (result === INTERSECTION.INTERSECTING) {\n mask |= flag;\n }\n }\n\n return mask;\n }\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {checkVector, deprecated} from '../lib/validators';\nimport Matrix from './base/matrix';\n// eslint-disable-next-line camelcase\nimport {vec2_transformMat4AsVector, vec3_transformMat4AsVector} from '../lib/gl-matrix-extras';\n\n// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.\nimport * as mat4 from 'gl-matrix/mat4';\n// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.\nimport * as vec2 from 'gl-matrix/vec2';\n// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.\nimport * as vec3 from 'gl-matrix/vec3';\n// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.\nimport * as vec4 from 'gl-matrix/vec4';\n\nconst IDENTITY = Object.freeze([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);\nconst ZERO = Object.freeze([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n\nconst INDICES = Object.freeze({\n COL0ROW0: 0,\n COL0ROW1: 1,\n COL0ROW2: 2,\n COL0ROW3: 3,\n COL1ROW0: 4,\n COL1ROW1: 5,\n COL1ROW2: 6,\n COL1ROW3: 7,\n COL2ROW0: 8,\n COL2ROW1: 9,\n COL2ROW2: 10,\n COL2ROW3: 11,\n COL3ROW0: 12,\n COL3ROW1: 13,\n COL3ROW2: 14,\n COL3ROW3: 15\n});\n\nconst constants = {};\n\nexport default class Matrix4 extends Matrix {\n static get IDENTITY() {\n constants.IDENTITY = constants.IDENTITY || Object.freeze(new Matrix4(IDENTITY));\n return constants.IDENTITY;\n }\n\n static get ZERO() {\n constants.ZERO = constants.ZERO || Object.freeze(new Matrix4(ZERO));\n return constants.ZERO;\n }\n\n get INDICES() {\n return INDICES;\n }\n\n get ELEMENTS() {\n return 16;\n }\n\n get RANK() {\n return 4;\n }\n\n constructor(array) {\n // PERF NOTE: initialize elements as double precision numbers\n super(-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0);\n if (arguments.length === 1 && Array.isArray(array)) {\n this.copy(array);\n } else {\n this.identity();\n }\n }\n\n copy(array) {\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n this[3] = array[3];\n this[4] = array[4];\n this[5] = array[5];\n this[6] = array[6];\n this[7] = array[7];\n this[8] = array[8];\n this[9] = array[9];\n this[10] = array[10];\n this[11] = array[11];\n this[12] = array[12];\n this[13] = array[13];\n this[14] = array[14];\n this[15] = array[15];\n return this.check();\n }\n\n // eslint-disable-next-line max-params\n set(m00, m10, m20, m30, m01, m11, m21, m31, m02, m12, m22, m32, m03, m13, m23, m33) {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m30;\n this[4] = m01;\n this[5] = m11;\n this[6] = m21;\n this[7] = m31;\n this[8] = m02;\n this[9] = m12;\n this[10] = m22;\n this[11] = m32;\n this[12] = m03;\n this[13] = m13;\n this[14] = m23;\n this[15] = m33;\n return this.check();\n }\n\n // accepts row major order, stores as column major\n // eslint-disable-next-line max-params\n setRowMajor(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m30;\n this[4] = m01;\n this[5] = m11;\n this[6] = m21;\n this[7] = m31;\n this[8] = m02;\n this[9] = m12;\n this[10] = m22;\n this[11] = m32;\n this[12] = m03;\n this[13] = m13;\n this[14] = m23;\n this[15] = m33;\n return this.check();\n }\n\n toRowMajor(result) {\n result[0] = this[0];\n result[1] = this[4];\n result[2] = this[8];\n result[3] = this[12];\n result[4] = this[1];\n result[5] = this[5];\n result[6] = this[9];\n result[7] = this[13];\n result[8] = this[2];\n result[9] = this[6];\n result[10] = this[10];\n result[11] = this[14];\n result[12] = this[3];\n result[13] = this[7];\n result[14] = this[11];\n result[15] = this[15];\n return result;\n }\n\n // Constructors\n\n identity() {\n return this.copy(IDENTITY);\n }\n\n // Calculates a 4x4 matrix from the given quaternion\n // q quat Quaternion to create matrix from\n fromQuaternion(q) {\n mat4.fromQuat(this, q);\n return this.check();\n }\n\n // Generates a frustum matrix with the given bounds\n // left Number Left bound of the frustum\n // right Number Right bound of the frustum\n // bottom Number Bottom bound of the frustum\n // top Number Top bound of the frustum\n // near Number Near bound of the frustum\n // far Number Far bound of the frustum\n frustum({left, right, bottom, top, near, far}) {\n if (far === Infinity) {\n Matrix4._computeInfinitePerspectiveOffCenter(this, left, right, bottom, top, near);\n } else {\n mat4.frustum(this, left, right, bottom, top, near, far);\n }\n return this.check();\n }\n\n // eslint-disable-next-line max-params\n static _computeInfinitePerspectiveOffCenter(result, left, right, bottom, top, near) {\n const column0Row0 = (2.0 * near) / (right - left);\n const column1Row1 = (2.0 * near) / (top - bottom);\n const column2Row0 = (right + left) / (right - left);\n const column2Row1 = (top + bottom) / (top - bottom);\n const column2Row2 = -1.0;\n const column2Row3 = -1.0;\n const column3Row2 = -2.0 * near;\n\n result[0] = column0Row0;\n result[1] = 0.0;\n result[2] = 0.0;\n result[3] = 0.0;\n result[4] = 0.0;\n result[5] = column1Row1;\n result[6] = 0.0;\n result[7] = 0.0;\n result[8] = column2Row0;\n result[9] = column2Row1;\n result[10] = column2Row2;\n result[11] = column2Row3;\n result[12] = 0.0;\n result[13] = 0.0;\n result[14] = column3Row2;\n result[15] = 0.0;\n return result;\n }\n\n // Generates a look-at matrix with the given eye position, focal point,\n // and up axis\n // eye vec3 Position of the viewer\n // center vec3 Point the viewer is looking at\n // up vec3 vec3 pointing up\n lookAt(eye, center, up) {\n // Signature: lookAt({eye, center = [0, 0, 0], up = [0, 1, 0]}))\n if (arguments.length === 1) {\n ({eye, center, up} = eye);\n }\n\n center = center || [0, 0, 0];\n up = up || [0, 1, 0];\n\n mat4.lookAt(this, eye, center, up);\n return this.check();\n }\n\n // Generates a orthogonal projection matrix with the given bounds\n // from \"traditional\" view space parameters\n // left number Left bound of the frustum\n // right number Right bound of the frustum\n // bottom number Bottom bound of the frustum\n // top number Top bound of the frustum\n // near number Near bound of the frustum\n // far number Far bound of the frustum\n ortho({left, right, bottom, top, near = 0.1, far = 500}) {\n mat4.ortho(this, left, right, bottom, top, near, far);\n return this.check();\n }\n\n // Generates an orthogonal projection matrix with the same parameters\n // as a perspective matrix (plus focalDistance)\n // fovy number Vertical field of view in radians\n // aspect number Aspect ratio. typically viewport width/height\n // focalDistance distance in the view frustum used for extent calculations\n // near number Near bound of the frustum\n // far number Far bound of the frustum\n orthographic({\n fovy = (45 * Math.PI) / 180,\n aspect = 1,\n focalDistance = 1,\n near = 0.1,\n far = 500\n }) {\n if (fovy > Math.PI * 2) {\n throw Error('radians');\n }\n const halfY = fovy / 2;\n const top = focalDistance * Math.tan(halfY); // focus_plane is the distance from the camera\n const right = top * aspect;\n\n return new Matrix4().ortho({\n left: -right,\n right,\n bottom: -top,\n top,\n near,\n far\n });\n }\n\n // Generates a perspective projection matrix with the given bounds\n // fovy number Vertical field of view in radians\n // aspect number Aspect ratio. typically viewport width/height\n // near number Near bound of the frustum\n // far number Far bound of the frustum\n perspective({\n fovy = undefined,\n fov = (45 * Math.PI) / 180, // DEPRECATED\n aspect = 1,\n near = 0.1,\n far = 500\n } = {}) {\n fovy = fovy || fov;\n if (fovy > Math.PI * 2) {\n throw Error('radians');\n }\n mat4.perspective(this, fovy, aspect, near, far);\n return this.check();\n }\n\n // Accessors\n\n determinant() {\n return mat4.determinant(this);\n }\n\n // Extracts the non-uniform scale assuming the matrix is an affine transformation.\n // The scales are the \"lengths\" of the column vectors in the upper-left 3x3 matrix.\n getScale(result = [-0, -0, -0]) {\n // explicit is faster than hypot...\n result[0] = Math.sqrt(this[0] * this[0] + this[1] * this[1] + this[2] * this[2]);\n result[1] = Math.sqrt(this[4] * this[4] + this[5] * this[5] + this[6] * this[6]);\n result[2] = Math.sqrt(this[8] * this[8] + this[9] * this[9] + this[10] * this[10]);\n // result[0] = Math.hypot(this[0], this[1], this[2]);\n // result[1] = Math.hypot(this[4], this[5], this[6]);\n // result[2] = Math.hypot(this[8], this[9], this[10]);\n return result;\n }\n\n // Gets the translation portion, assuming the matrix is a affine transformation matrix.\n getTranslation(result = [-0, -0, -0]) {\n result[0] = this[12];\n result[1] = this[13];\n result[2] = this[14];\n return result;\n }\n\n // Gets upper left 3x3 pure rotation matrix (non-scaling), assume affine transformation matrix\n getRotation(\n result = [-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0],\n scaleResult = null\n ) {\n const scale = this.getScale(scaleResult || [-0, -0, -0]);\n\n const inverseScale0 = 1 / scale[0];\n const inverseScale1 = 1 / scale[1];\n const inverseScale2 = 1 / scale[2];\n\n result[0] = this[0] * inverseScale0;\n result[1] = this[1] * inverseScale1;\n result[2] = this[2] * inverseScale2;\n result[3] = 0;\n result[4] = this[4] * inverseScale0;\n result[5] = this[5] * inverseScale1;\n result[6] = this[6] * inverseScale2;\n result[7] = 0;\n result[8] = this[8] * inverseScale0;\n result[9] = this[9] * inverseScale1;\n result[10] = this[10] * inverseScale2;\n result[11] = 0;\n result[12] = 0;\n result[13] = 0;\n result[14] = 0;\n result[15] = 1;\n return result;\n }\n\n getRotationMatrix3(result = [-0, -0, -0, -0, -0, -0, -0, -0, -0], scaleResult = null) {\n const scale = this.getScale(scaleResult || [-0, -0, -0]);\n\n const inverseScale0 = 1 / scale[0];\n const inverseScale1 = 1 / scale[1];\n const inverseScale2 = 1 / scale[2];\n\n result[0] = this[0] * inverseScale0;\n result[1] = this[1] * inverseScale1;\n result[2] = this[2] * inverseScale2;\n result[3] = this[4] * inverseScale0;\n result[4] = this[5] * inverseScale1;\n result[5] = this[6] * inverseScale2;\n result[6] = this[8] * inverseScale0;\n result[7] = this[9] * inverseScale1;\n result[8] = this[10] * inverseScale2;\n return result;\n }\n\n // Modifiers\n\n transpose() {\n mat4.transpose(this, this);\n return this.check();\n }\n\n invert() {\n mat4.invert(this, this);\n return this.check();\n }\n\n // Operations\n\n multiplyLeft(a) {\n mat4.multiply(this, a, this);\n return this.check();\n }\n\n multiplyRight(a) {\n mat4.multiply(this, this, a);\n return this.check();\n }\n\n // Rotates a matrix by the given angle around the X axis\n rotateX(radians) {\n mat4.rotateX(this, this, radians);\n // mat4.rotate(this, this, radians, [1, 0, 0]);\n return this.check();\n }\n\n // Rotates a matrix by the given angle around the Y axis.\n rotateY(radians) {\n mat4.rotateY(this, this, radians);\n // mat4.rotate(this, this, radians, [0, 1, 0]);\n return this.check();\n }\n\n // Rotates a matrix by the given angle around the Z axis.\n rotateZ(radians) {\n mat4.rotateZ(this, this, radians);\n // mat4.rotate(this, this, radians, [0, 0, 1]);\n return this.check();\n }\n\n rotateXYZ([rx, ry, rz]) {\n return this.rotateX(rx).rotateY(ry).rotateZ(rz);\n }\n\n rotateAxis(radians, axis) {\n mat4.rotate(this, this, radians, axis);\n return this.check();\n }\n\n scale(factor) {\n if (Array.isArray(factor)) {\n mat4.scale(this, this, factor);\n } else {\n mat4.scale(this, this, [factor, factor, factor]);\n }\n\n return this.check();\n }\n\n translate(vec) {\n mat4.translate(this, this, vec);\n return this.check();\n }\n\n // Transforms\n\n // Transforms any 2, 3 or 4 element vector. 2 and 3 elements are treated as points\n transform(vector, result) {\n if (vector.length === 4) {\n result = vec4.transformMat4(result || [-0, -0, -0, -0], vector, this);\n checkVector(result, 4);\n return result;\n }\n return this.transformAsPoint(vector, result);\n }\n\n // Transforms any 2 or 3 element array as point (w implicitly 1)\n transformAsPoint(vector, result) {\n const {length} = vector;\n switch (length) {\n case 2:\n result = vec2.transformMat4(result || [-0, -0], vector, this);\n break;\n case 3:\n result = vec3.transformMat4(result || [-0, -0, -0], vector, this);\n break;\n default:\n throw new Error('Illegal vector');\n }\n checkVector(result, vector.length);\n return result;\n }\n\n // Transforms any 2 or 3 element array as vector (w implicitly 0)\n transformAsVector(vector, result) {\n switch (vector.length) {\n case 2:\n result = vec2_transformMat4AsVector(result || [-0, -0], vector, this);\n break;\n case 3:\n result = vec3_transformMat4AsVector(result || [-0, -0, -0], vector, this);\n break;\n default:\n throw new Error('Illegal vector');\n }\n checkVector(result, vector.length);\n return result;\n }\n\n // three.js math API compatibility\n makeRotationX(radians) {\n return this.identity().rotateX(radians);\n }\n\n makeTranslation(x, y, z) {\n return this.identity().translate([x, y, z]);\n }\n\n // DEPRECATED in 3.0\n\n transformPoint(vector, result) {\n deprecated('Matrix4.transformPoint', '3.0');\n return this.transformAsPoint(vector, result);\n }\n\n transformVector(vector, result) {\n deprecated('Matrix4.transformVector', '3.0');\n return this.transformAsPoint(vector, result);\n }\n\n transformDirection(vector, result) {\n deprecated('Matrix4.transformDirection', '3.0');\n return this.transformAsVector(vector, result);\n }\n}\n","// This file is derived from the Cesium math library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\n// Note: This class is still an experimental export, mainly used by other test cases\n// - It has not been fully adapted to math.gl conventions\n// - Documentation has not been ported\n\n// @ts-nocheck\n\nimport {Vector3, Matrix4, assert} from '@math.gl/core';\nimport CullingVolume from './culling-volume';\nimport Plane from './plane';\n\nconst scratchPlaneUpVector = new Vector3();\nconst scratchPlaneRightVector = new Vector3();\nconst scratchPlaneNearCenter = new Vector3();\nconst scratchPlaneFarCenter = new Vector3();\nconst scratchPlaneNormal = new Vector3();\n\nexport default class PerspectiveOffCenterFrustum {\n /**\n * The viewing frustum is defined by 6 planes.\n * Each plane is represented by a {@link Vector4} object, where the x, y, and z components\n * define the unit vector normal to the plane, and the w component is the distance of the\n * plane from the origin/camera position.\n *\n * @alias PerspectiveOffCenterFrustum\n * @constructor\n *\n * @param {Object} [options] An object with the following properties:\n * @param {Number} [options.left] The left clipping plane distance.\n * @param {Number} [options.right] The right clipping plane distance.\n * @param {Number} [options.top] The top clipping plane distance.\n * @param {Number} [options.bottom] The bottom clipping plane distance.\n * @param {Number} [options.near=1.0] The near clipping plane distance.\n * @param {Number} [options.far=500000000.0] The far clipping plane distance.\n *\n * @example\n * const frustum = new PerspectiveOffCenterFrustum({\n * left : -1.0,\n * right : 1.0,\n * top : 1.0,\n * bottom : -1.0,\n * near : 1.0,\n * far : 100.0\n * });\n *\n * @see PerspectiveFrustum\n */\n constructor(options = {}) {\n options = {near: 1.0, far: 500000000.0, ...options};\n\n /**\n * Defines the left clipping plane.\n * @type {Number}\n * @default undefined\n */\n this.left = options.left;\n this._left = undefined;\n\n /**\n * Defines the right clipping plane.\n * @type {Number}\n * @default undefined\n */\n this.right = options.right;\n this._right = undefined;\n\n /**\n * Defines the top clipping plane.\n * @type {Number}\n * @default undefined\n */\n this.top = options.top;\n this._top = undefined;\n\n /**\n * Defines the bottom clipping plane.\n * @type {Number}\n * @default undefined\n */\n this.bottom = options.bottom;\n this._bottom = undefined;\n\n /**\n * The distance of the near plane.\n * @type {Number}\n * @default 1.0\n */\n this.near = options.near;\n this._near = this.near;\n\n /**\n * The distance of the far plane.\n * @type {Number}\n * @default 500000000.0\n */\n this.far = options.far;\n this._far = this.far;\n\n this._cullingVolume = new CullingVolume([\n new Plane(),\n new Plane(),\n new Plane(),\n new Plane(),\n new Plane(),\n new Plane()\n ]);\n this._perspectiveMatrix = new Matrix4();\n this._infinitePerspective = new Matrix4();\n }\n\n /**\n * Returns a duplicate of a PerspectiveOffCenterFrustum instance.\n * @returns {PerspectiveOffCenterFrustum} A new PerspectiveFrustum instance.\n * */\n clone() {\n return new PerspectiveOffCenterFrustum({\n right: this.right,\n left: this.left,\n top: this.top,\n bottom: this.bottom,\n near: this.near,\n far: this.far\n });\n }\n\n /**\n * Compares the provided PerspectiveOffCenterFrustum componentwise and returns\n * <code>true</code> if they are equal, <code>false</code> otherwise.\n *\n * @param {PerspectiveOffCenterFrustum} [other] The right hand side PerspectiveOffCenterFrustum.\n * @returns {Boolean} <code>true</code> if they are equal, <code>false</code> otherwise.\n */\n equals(other) {\n return (\n other &&\n other instanceof PerspectiveOffCenterFrustum &&\n this.right === other.right &&\n this.left === other.left &&\n this.top === other.top &&\n this.bottom === other.bottom &&\n this.near === other.near &&\n this.far === other.far\n );\n }\n\n /**\n * Gets the perspective projection matrix computed from the view frustum.\n * @memberof PerspectiveOffCenterFrustum.prototype\n * @type {Matrix4}\n * @readonly\n *\n * @see PerspectiveOffCenterFrustum#infiniteProjectionMatrix\n */\n get projectionMatrix() {\n update(this);\n return this._perspectiveMatrix;\n }\n\n /**\n * Gets the perspective projection matrix computed from the view frustum with an infinite far plane.\n * @memberof PerspectiveOffCenterFrustum.prototype\n * @type {Matrix4}\n * @readonly\n *\n * @see PerspectiveOffCenterFrustum#projectionMatrix\n */\n get infiniteProjectionMatrix() {\n update(this);\n return this._infinitePerspective;\n }\n\n /**\n * Creates a culling volume for this frustum.\n *\n * @param {Vector3} position The eye position.\n * @param {Vector3} direction The view direction.\n * @param {Vector3} up The up direction.\n * @returns {CullingVolume} A culling volume at the given position and orientation.\n *\n * @example\n * // Check if a bounding volume intersects the frustum.\n * const cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp);\n * const intersect = cullingVolume.computeVisibility(boundingVolume);\n */\n // eslint-disable-next-line complexity, max-statements\n computeCullingVolume(position, direction, up) {\n assert(position, 'position is required.');\n assert(direction, 'direction is required.');\n assert(up, 'up is required.');\n\n const planes = this._cullingVolume.planes;\n\n up = scratchPlaneUpVector.copy(up).normalize();\n const right = scratchPlaneRightVector.copy(direction).cross(up).normalize();\n\n const nearCenter = scratchPlaneNearCenter\n .copy(direction)\n .multiplyByScalar(this.near)\n .add(position);\n\n const farCenter = scratchPlaneFarCenter\n .copy(direction)\n .multiplyByScalar(this.far)\n .add(position);\n\n let normal = scratchPlaneNormal;\n\n // Left plane computation\n normal.copy(right).multiplyByScalar(this.left).add(nearCenter).subtract(position).cross(up);\n\n planes[0].fromPointNormal(position, normal);\n\n // Right plane computation\n normal\n .copy(right)\n .multiplyByScalar(this.right)\n .add(nearCenter)\n .subtract(position)\n .cross(up)\n .negate();\n\n planes[1].fromPointNormal(position, normal);\n\n // Bottom plane computation\n normal\n .copy(up)\n .multiplyByScalar(this.bottom)\n .add(nearCenter)\n .subtract(position)\n .cross(right)\n .negate();\n\n planes[2].fromPointNormal(position, normal);\n\n // Top plane computation\n normal.copy(up).multiplyByScalar(this.top).add(nearCenter).subtract(position).cross(right);\n\n planes[3].fromPointNormal(position, normal);\n\n normal = new Vector3().copy(direction);\n\n // Near plane computation\n planes[4].fromPointNormal(nearCenter, normal);\n\n // Far plane computation\n normal.negate();\n\n planes[5].fromPointNormal(farCenter, normal);\n\n return this._cullingVolume;\n }\n\n /**\n * Returns the pixel's width and height in meters.\n *\n * @param {Number} drawingBufferWidth The width of the drawing buffer.\n * @param {Number} drawingBufferHeight The height of the drawing buffer.\n * @param {Number} distance The distance to the near plane in meters.\n * @param {Vector2} result The object onto which to store the result.\n * @returns {Vector2} The modified result parameter or a new instance of {@link Vector2} with the pixel's width and height in the x and y properties, respectively.\n *\n * @exception {DeveloperError} drawingBufferWidth must be greater than zero.\n * @exception {DeveloperError} drawingBufferHeight must be greater than zero.\n *\n * @example\n * // Example 1\n * // Get the width and height of a pixel.\n * const pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 1.0, new Vector2());\n *\n * @example\n * // Example 2\n * // Get the width and height of a pixel if the near plane was set to 'distance'.\n * // For example, get the size of a pixel of an image on a billboard.\n * const position = camera.position;\n * const direction = camera.direction;\n * const toCenter = Vector3.subtract(primitive.boundingVolume.center, position, new Vector3()); // vector from camera to a primitive\n * const toCenterProj = Vector3.multiplyByScalar(direction, Vector3.dot(direction, toCenter), new Vector3()); // project vector onto camera direction vector\n * const distance = Vector3.magnitude(toCenterProj);\n * const pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, distance, new Vector2());\n */\n getPixelDimensions(drawingBufferWidth, drawingBufferHeight, distance, result) {\n update(this);\n\n assert(Number.isFinite(drawingBufferWidth) && Number.isFinite(drawingBufferHeight));\n // 'Both drawingBufferWidth and drawingBufferHeight are required.'\n assert(drawingBufferWidth > 0);\n // 'drawingBufferWidth must be greater than zero.'\n assert(drawingBufferHeight > 0);\n // 'drawingBufferHeight must be greater than zero.'\n assert(distance > 0);\n // 'distance is required.');\n assert(result);\n // 'A result object is required.');\n\n const inverseNear = 1.0 / this.near;\n let tanTheta = this.top * inverseNear;\n const pixelHeight = (2.0 * distance * tanTheta) / drawingBufferHeight;\n tanTheta = this.right * inverseNear;\n const pixelWidth = (2.0 * distance * tanTheta) / drawingBufferWidth;\n\n result.x = pixelWidth;\n result.y = pixelHeight;\n return result;\n }\n}\n\n// eslint-disable-next-line complexity, max-statements\nfunction update(frustum) {\n assert(\n Number.isFinite(frustum.right) &&\n Number.isFinite(frustum.left) &&\n Number.isFinite(frustum.top) &&\n Number.isFinite(frustum.bottom) &&\n Number.isFinite(frustum.near) &&\n Number.isFinite(frustum.far)\n );\n // throw new DeveloperError('right, left, top, bottom, near, or far parameters are not set.');\n\n const {top, bottom, right, left, near, far} = frustum;\n\n if (\n top !== frustum._top ||\n bottom !== frustum._bottom ||\n left !== frustum._left ||\n right !== frustum._right ||\n near !== frustum._near ||\n far !== frustum._far\n ) {\n assert(\n frustum.near > 0 && frustum.near < frustum.far,\n 'near must be greater than zero and less than far.'\n );\n\n frustum._left = left;\n frustum._right = right;\n frustum._top = top;\n frustum._bottom = bottom;\n frustum._near = near;\n frustum._far = far;\n frustum._perspectiveMatrix = new Matrix4().frustum({\n left,\n right,\n bottom,\n top,\n near,\n far\n });\n frustum._infinitePerspective = new Matrix4().frustum({\n left,\n right,\n bottom,\n top,\n near,\n far: Infinity\n });\n }\n}\n","// This file is derived from the Cesium math library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {Vector3} from '@math.gl/core';\nimport BoundingSphere from '../bounding-volumes/bounding-sphere';\n\n/* eslint-disable */\nconst fromPointsXMin = new Vector3();\nconst fromPointsYMin = new Vector3();\nconst fromPointsZMin = new Vector3();\nconst fromPointsXMax = new Vector3();\nconst fromPointsYMax = new Vector3();\nconst fromPointsZMax = new Vector3();\nconst fromPointsCurrentPos = new Vector3();\nconst fromPointsScratch = new Vector3();\nconst fromPointsRitterCenter = new Vector3();\nconst fromPointsMinBoxPt = new Vector3();\nconst fromPointsMaxBoxPt = new Vector3();\nconst fromPointsNaiveCenterScratch = new Vector3();\nconst volumeConstant = (4.0 / 3.0) * Math.PI;\n\nexport default function makeBoundingSphereFromPoints(positions, result = new BoundingSphere()) {\n if (!positions || positions.length === 0) {\n return result.fromCenterRadius([0, 0, 0], 0);\n }\n\n const currentPos = fromPointsCurrentPos.copy(positions[0]);\n\n const xMin = fromPointsXMin.copy(currentPos);\n const yMin = fromPointsYMin.copy(currentPos);\n const zMin = fromPointsZMin.copy(currentPos);\n\n const xMax = fromPointsXMax.copy(currentPos);\n const yMax = fromPointsYMax.copy(currentPos);\n const zMax = fromPointsZMax.copy(currentPos);\n\n for (const position of positions) {\n currentPos.copy(position);\n\n const x = currentPos.x;\n const y = currentPos.y;\n const z = currentPos.z;\n\n // Store points containing the the smallest and largest components\n if (x < xMin.x) {\n xMin.copy(currentPos);\n }\n\n if (x > xMax.x) {\n xMax.copy(currentPos);\n }\n\n if (y < yMin.y) {\n yMin.copy(currentPos);\n }\n\n if (y > yMax.y) {\n yMax.copy(currentPos);\n }\n\n if (z < zMin.z) {\n zMin.copy(currentPos);\n }\n\n if (z > zMax.z) {\n zMax.copy(currentPos);\n }\n }\n\n // Compute x-, y-, and z-spans (Squared distances b/n each component's min. and max.).\n const xSpan = fromPointsScratch.copy(xMax).subtract(xMin).magnitudeSquared();\n const ySpan = fromPointsScratch.copy(yMax).subtract(yMin).magnitudeSquared();\n const zSpan = fromPointsScratch.copy(zMax).subtract(zMin).magnitudeSquared();\n\n // Set the diameter endpoints to the largest span.\n let diameter1 = xMin;\n let diameter2 = xMax;\n let maxSpan = xSpan;\n if (ySpan > maxSpan) {\n maxSpan = ySpan;\n diameter1 = yMin;\n diameter2 = yMax;\n }\n if (zSpan > maxSpan) {\n maxSpan = zSpan;\n diameter1 = zMin;\n diameter2 = zMax;\n }\n\n // Calculate the center of the initial sphere found by Ritter's algorithm\n const ritterCenter = fromPointsRitterCenter;\n ritterCenter.x = (diameter1.x + diameter2.x) * 0.5;\n ritterCenter.y = (diameter1.y + diameter2.y) * 0.5;\n ritterCenter.z = (diameter1.z + diameter2.z) * 0.5;\n\n // Calculate the radius of the initial sphere found by Ritter's algorithm\n let radiusSquared = fromPointsScratch.copy(diameter2).subtract(ritterCenter).magnitudeSquared();\n let ritterRadius = Math.sqrt(radiusSquared);\n\n // Find the center of the sphere found using the Naive method.\n const minBoxPt = fromPointsMinBoxPt;\n minBoxPt.x = xMin.x;\n minBoxPt.y = yMin.y;\n minBoxPt.z = zMin.z;\n\n const maxBoxPt = fromPointsMaxBoxPt;\n maxBoxPt.x = xMax.x;\n maxBoxPt.y = yMax.y;\n maxBoxPt.z = zMax.z;\n\n const naiveCenter = fromPointsNaiveCenterScratch\n .copy(minBoxPt)\n .add(maxBoxPt)\n .multiplyByScalar(0.5);\n\n // Begin 2nd pass to find naive radius and modify the ritter sphere.\n let naiveRadius = 0;\n for (const position of positions) {\n currentPos.copy(position);\n\n // Find the furthest point from the naive center to calculate the naive radius.\n const r = fromPointsScratch.copy(currentPos).subtract(naiveCenter).magnitude();\n if (r > naiveRadius) {\n naiveRadius = r;\n }\n\n // Make adjustments to the Ritter Sphere to include all points.\n const oldCenterToPointSquared = fromPointsScratch\n .copy(currentPos)\n .subtract(ritterCenter)\n .magnitudeSquared();\n\n if (oldCenterToPointSquared > radiusSquared) {\n const oldCenterToPoint = Math.sqrt(oldCenterToPointSquared);\n // Calculate new radius to include the point that lies outside\n ritterRadius = (ritterRadius + oldCenterToPoint) * 0.5;\n radiusSquared = ritterRadius * ritterRadius;\n // Calculate center of new Ritter sphere\n const oldToNew = oldCenterToPoint - ritterRadius;\n ritterCenter.x = (ritterRadius * ritterCenter.x + oldToNew * currentPos.x) / oldCenterToPoint;\n ritterCenter.y = (ritterRadius * ritterCenter.y + oldToNew * currentPos.y) / oldCenterToPoint;\n ritterCenter.z = (ritterRadius * ritterCenter.z + oldToNew * currentPos.z) / oldCenterToPoint;\n }\n }\n\n if (ritterRadius < naiveRadius) {\n ritterCenter.to(result.center);\n // @ts-ignore TS2540: Cannot assign to 'radius' because it is a read-only property.\n result.radius = ritterRadius;\n } else {\n naiveCenter.to(result.center);\n // @ts-ignore TS2540: Cannot assign to 'radius' because it is a read-only property.\n result.radius = naiveRadius;\n }\n\n return result;\n}\n","// NOTE: Added to make Cesium-derived test cases work\n// TODO: Determine if/how to keep\nexport default {\n EPSILON1: 1e-1,\n EPSILON2: 1e-2,\n EPSILON3: 1e-3,\n EPSILON4: 1e-4,\n EPSILON5: 1e-5,\n EPSILON6: 1e-6,\n EPSILON7: 1e-7,\n EPSILON8: 1e-8,\n EPSILON9: 1e-9,\n EPSILON10: 1e-10,\n EPSILON11: 1e-11,\n EPSILON12: 1e-12,\n EPSILON13: 1e-13,\n EPSILON14: 1e-14,\n EPSILON15: 1e-15,\n EPSILON16: 1e-16,\n EPSILON17: 1e-17,\n EPSILON18: 1e-18,\n EPSILON19: 1e-19,\n EPSILON20: 1e-20,\n\n PI_OVER_TWO: Math.PI / 2,\n PI_OVER_FOUR: Math.PI / 4,\n PI_OVER_SIX: Math.PI / 6,\n\n TWO_PI: Math.PI * 2\n};\n","// This file is derived from the Cesium math library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {Matrix3, _MathUtils} from '@math.gl/core';\n\nconst scratchMatrix = new Matrix3();\nconst scratchUnitary = new Matrix3();\nconst scratchDiagonal = new Matrix3();\n\nconst jMatrix = new Matrix3();\nconst jMatrixTranspose = new Matrix3();\n\nexport default function computeEigenDecomposition(matrix, result = {}) {\n const EIGEN_TOLERANCE = _MathUtils.EPSILON20;\n const EIGEN_MAX_SWEEPS = 10;\n\n let count = 0;\n let sweep = 0;\n\n const unitaryMatrix = scratchUnitary;\n const diagonalMatrix = scratchDiagonal;\n\n unitaryMatrix.identity();\n diagonalMatrix.copy(matrix);\n\n const epsilon = EIGEN_TOLERANCE * computeFrobeniusNorm(diagonalMatrix);\n\n while (sweep < EIGEN_MAX_SWEEPS && offDiagonalFrobeniusNorm(diagonalMatrix) > epsilon) {\n shurDecomposition(diagonalMatrix, jMatrix);\n\n jMatrixTranspose.copy(jMatrix).transpose();\n\n diagonalMatrix.multiplyRight(jMatrix);\n diagonalMatrix.multiplyLeft(jMatrixTranspose);\n unitaryMatrix.multiplyRight(jMatrix);\n\n if (++count > 2) {\n ++sweep;\n count = 0;\n }\n }\n\n result.unitary = unitaryMatrix.toTarget(result.unitary);\n result.diagonal = diagonalMatrix.toTarget(result.diagonal);\n\n return result;\n}\n\nfunction computeFrobeniusNorm(matrix) {\n let norm = 0.0;\n for (let i = 0; i < 9; ++i) {\n const temp = matrix[i];\n norm += temp * temp;\n }\n return Math.sqrt(norm);\n}\n\nconst rowVal = [1, 0, 0];\nconst colVal = [2, 2, 1];\n\n// Computes the \"off-diagonal\" Frobenius norm.\n// Assumes matrix is symmetric.\nfunction offDiagonalFrobeniusNorm(matrix) {\n let norm = 0.0;\n for (let i = 0; i < 3; ++i) {\n const temp = matrix[scratchMatrix.getElementIndex(colVal[i], rowVal[i])];\n norm += 2.0 * temp * temp;\n }\n return Math.sqrt(norm);\n}\n\n// The routine takes a matrix, which is assumed to be symmetric, and\n// finds the largest off-diagonal term, and then creates\n// a matrix (result) which can be used to help reduce it\n//\n// This routine was created based upon Matrix Computations, 3rd ed., by Golub and Van Loan,\n// section 8.4.2 The 2by2 Symmetric Schur Decomposition.\n//\n// eslint-disable-next-line max-statements\nfunction shurDecomposition(matrix, result) {\n const tolerance = _MathUtils.EPSILON15;\n\n let maxDiagonal = 0.0;\n let rotAxis = 1;\n\n // find pivot (rotAxis) based on max diagonal of matrix\n for (let i = 0; i < 3; ++i) {\n const temp = Math.abs(matrix[scratchMatrix.getElementIndex(colVal[i], rowVal[i])]);\n if (temp > maxDiagonal) {\n rotAxis = i;\n maxDiagonal = temp;\n }\n }\n\n const p = rowVal[rotAxis];\n const q = colVal[rotAxis];\n\n let c = 1.0;\n let s = 0.0;\n\n if (Math.abs(matrix[scratchMatrix.getElementIndex(q, p)]) > tolerance) {\n const qq = matrix[scratchMatrix.getElementIndex(q, q)];\n const pp = matrix[scratchMatrix.getElementIndex(p, p)];\n const qp = matrix[scratchMatrix.getElementIndex(q, p)];\n\n const tau = (qq - pp) / 2.0 / qp;\n let t;\n\n if (tau < 0.0) {\n t = -1.0 / (-tau + Math.sqrt(1.0 + tau * tau));\n } else {\n t = 1.0 / (tau + Math.sqrt(1.0 + tau * tau));\n }\n\n c = 1.0 / Math.sqrt(1.0 + t * t);\n s = t * c;\n }\n\n // Copy into result\n Matrix3.IDENTITY.to(result);\n result[scratchMatrix.getElementIndex(p, p)] = result[scratchMatrix.getElementIndex(q, q)] = c;\n result[scratchMatrix.getElementIndex(q, p)] = s;\n result[scratchMatrix.getElementIndex(p, q)] = -s;\n\n return result;\n}\n","// This file is derived from the Cesium math library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {Vector3, Matrix3} from '@math.gl/core';\nimport computeEigenDecomposition from './compute-eigen-decomposition';\nimport OrientedBoundingBox from '../bounding-volumes/oriented-bounding-box';\nimport AxisAlignedBoundingBox from '../bounding-volumes/axis-aligned-bounding-box';\n\nconst scratchVector2 = new Vector3();\n\nconst scratchVector3 = new Vector3();\n\nconst scratchVector4 = new Vector3();\n\nconst scratchVector5 = new Vector3();\n\nconst scratchVector6 = new Vector3();\n\nconst scratchCovarianceResult = new Matrix3();\n\nconst scratchEigenResult = {\n diagonal: new Matrix3(),\n unitary: new Matrix3()\n};\n\n/* eslint-disable max-statements */\nexport function makeOrientedBoundingBoxFromPoints(positions, result = new OrientedBoundingBox()) {\n if (!positions || positions.length === 0) {\n result.halfAxes = new Matrix3([0, 0, 0, 0, 0, 0, 0, 0, 0]);\n result.center = new Vector3();\n return result;\n }\n\n const length = positions.length;\n const meanPoint = new Vector3(0, 0, 0);\n for (const position of positions) {\n meanPoint.add(position);\n }\n const invLength = 1.0 / length;\n meanPoint.multiplyByScalar(invLength);\n\n let exx = 0.0;\n let exy = 0.0;\n let exz = 0.0;\n let eyy = 0.0;\n let eyz = 0.0;\n let ezz = 0.0;\n\n for (const position of positions) {\n const p = scratchVector2.copy(position).subtract(meanPoint);\n exx += p.x * p.x;\n exy += p.x * p.y;\n exz += p.x * p.z;\n eyy += p.y * p.y;\n eyz += p.y * p.z;\n ezz += p.z * p.z;\n }\n\n exx *= invLength;\n exy *= invLength;\n exz *= invLength;\n eyy *= invLength;\n eyz *= invLength;\n ezz *= invLength;\n\n const covarianceMatrix = scratchCovarianceResult;\n covarianceMatrix[0] = exx;\n covarianceMatrix[1] = exy;\n covarianceMatrix[2] = exz;\n covarianceMatrix[3] = exy;\n covarianceMatrix[4] = eyy;\n covarianceMatrix[5] = eyz;\n covarianceMatrix[6] = exz;\n covarianceMatrix[7] = eyz;\n covarianceMatrix[8] = ezz;\n\n const {unitary} = computeEigenDecomposition(covarianceMatrix, scratchEigenResult);\n const rotation = result.halfAxes.copy(unitary);\n\n let v1 = rotation.getColumn(0, scratchVector4);\n let v2 = rotation.getColumn(1, scratchVector5);\n let v3 = rotation.getColumn(2, scratchVector6);\n\n let u1 = -Number.MAX_VALUE;\n let u2 = -Number.MAX_VALUE;\n let u3 = -Number.MAX_VALUE;\n let l1 = Number.MAX_VALUE;\n let l2 = Number.MAX_VALUE;\n let l3 = Number.MAX_VALUE;\n\n for (const position of positions) {\n scratchVector2.copy(position);\n\n u1 = Math.max(scratchVector2.dot(v1), u1);\n u2 = Math.max(scratchVector2.dot(v2), u2);\n u3 = Math.max(scratchVector2.dot(v3), u3);\n\n l1 = Math.min(scratchVector2.dot(v1), l1);\n l2 = Math.min(scratchVector2.dot(v2), l2);\n l3 = Math.min(scratchVector2.dot(v3), l3);\n }\n\n v1 = v1.multiplyByScalar(0.5 * (l1 + u1));\n v2 = v2.multiplyByScalar(0.5 * (l2 + u2));\n v3 = v3.multiplyByScalar(0.5 * (l3 + u3));\n\n result.center.copy(v1).add(v2).add(v3);\n\n const scale = scratchVector3.set(u1 - l1, u2 - l2, u3 - l3).multiplyByScalar(0.5);\n const scaleMatrix = new Matrix3([scale[0], 0, 0, 0, scale[1], 0, 0, 0, scale[2]]);\n result.halfAxes.multiplyRight(scaleMatrix);\n\n return result;\n}\n\nexport function makeAxisAlignedBoundingBoxFromPoints(\n positions,\n result = new AxisAlignedBoundingBox()\n) {\n if (!positions || positions.length === 0) {\n result.minimum.set(0, 0, 0);\n result.maximum.set(0, 0, 0);\n result.center.set(0, 0, 0);\n result.halfDiagonal.set(0, 0, 0);\n return result;\n }\n\n let minimumX = positions[0][0];\n let minimumY = positions[0][1];\n let minimumZ = positions[0][2];\n\n let maximumX = positions[0][0];\n let maximumY = positions[0][1];\n let maximumZ = positions[0][2];\n\n for (const p of positions) {\n const x = p[0];\n const y = p[1];\n const z = p[2];\n\n minimumX = Math.min(x, minimumX);\n maximumX = Math.max(x, maximumX);\n minimumY = Math.min(y, minimumY);\n maximumY = Math.max(y, maximumY);\n minimumZ = Math.min(z, minimumZ);\n maximumZ = Math.max(z, maximumZ);\n }\n\n result.minimum.set(minimumX, minimumY, minimumZ);\n result.maximum.set(maximumX, maximumY, maximumZ);\n result.center.copy(result.minimum).add(result.maximum).scale(0.5);\n result.halfDiagonal.copy(result.maximum).subtract(result.center);\n\n return result;\n}\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// Extensions to math.gl library. Intended to be folded back.\nimport typedArrayManager from './typed-array-manager';\nimport {Vector3} from 'math.gl';\n\n// Helper, avoids low-precision 32 bit matrices from gl-matrix mat4.create()\nexport function createMat4() {\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n}\n\nexport function mod(value, divisor) {\n const modulus = value % divisor;\n return modulus < 0 ? divisor + modulus : modulus;\n}\n\n// Extract camera vectors (move to math library?)\nexport function getCameraPosition(viewMatrixInverse) {\n // Read the translation from the inverse view matrix\n return [viewMatrixInverse[12], viewMatrixInverse[13], viewMatrixInverse[14]];\n}\n\n// https://www.gamedevs.org/uploads/fast-extraction-viewing-frustum-planes-from-world-view-projection-matrix.pdf\nexport function getFrustumPlanes(viewProjectionMatrix) {\n const planes = {};\n\n planes.left = getFrustumPlane(\n viewProjectionMatrix[3] + viewProjectionMatrix[0],\n viewProjectionMatrix[7] + viewProjectionMatrix[4],\n viewProjectionMatrix[11] + viewProjectionMatrix[8],\n viewProjectionMatrix[15] + viewProjectionMatrix[12]\n );\n planes.right = getFrustumPlane(\n viewProjectionMatrix[3] - viewProjectionMatrix[0],\n viewProjectionMatrix[7] - viewProjectionMatrix[4],\n viewProjectionMatrix[11] - viewProjectionMatrix[8],\n viewProjectionMatrix[15] - viewProjectionMatrix[12]\n );\n planes.bottom = getFrustumPlane(\n viewProjectionMatrix[3] + viewProjectionMatrix[1],\n viewProjectionMatrix[7] + viewProjectionMatrix[5],\n viewProjectionMatrix[11] + viewProjectionMatrix[9],\n viewProjectionMatrix[15] + viewProjectionMatrix[13]\n );\n planes.top = getFrustumPlane(\n viewProjectionMatrix[3] - viewProjectionMatrix[1],\n viewProjectionMatrix[7] - viewProjectionMatrix[5],\n viewProjectionMatrix[11] - viewProjectionMatrix[9],\n viewProjectionMatrix[15] - viewProjectionMatrix[13]\n );\n planes.near = getFrustumPlane(\n viewProjectionMatrix[3] + viewProjectionMatrix[2],\n viewProjectionMatrix[7] + viewProjectionMatrix[6],\n viewProjectionMatrix[11] + viewProjectionMatrix[10],\n viewProjectionMatrix[15] + viewProjectionMatrix[14]\n );\n planes.far = getFrustumPlane(\n viewProjectionMatrix[3] - viewProjectionMatrix[2],\n viewProjectionMatrix[7] - viewProjectionMatrix[6],\n viewProjectionMatrix[11] - viewProjectionMatrix[10],\n viewProjectionMatrix[15] - viewProjectionMatrix[14]\n );\n\n return planes;\n}\n\nconst scratchVector = new Vector3();\n\nfunction getFrustumPlane(a, b, c, d) {\n scratchVector.set(a, b, c);\n const L = scratchVector.len();\n return {distance: d / L, normal: new Vector3(-a / L, -b / L, -c / L)};\n}\n\n/**\n * Calculate the low part of a WebGL 64 bit float\n * @param x {number} - the input float number\n * @returns {number} - the lower 32 bit of the number\n */\nexport function fp64LowPart(x) {\n return x - Math.fround(x);\n}\n\nlet scratchArray;\n\n/**\n * Split a Float64Array into a double-length Float32Array\n * @param typedArray {Float64Array}\n * @param size {Number} - per attribute size\n * @param [startIndex] {Number} - start index in the source array\n * @param [endIndex] {Number} - end index in the source array\n * @returns {Float32Array} - high part, low part for each attribute:\n [1xHi, 1yHi, 1zHi, 1xLow, 1yLow, 1zLow, 2xHi, ...]\n */\nexport function toDoublePrecisionArray(typedArray, {size = 1, startIndex = 0, endIndex}) {\n if (!Number.isFinite(endIndex)) {\n endIndex = typedArray.length;\n }\n const count = (endIndex - startIndex) / size;\n scratchArray = typedArrayManager.allocate(scratchArray, count, {\n type: Float32Array,\n size: size * 2\n });\n\n let sourceIndex = startIndex;\n let targetIndex = 0;\n while (sourceIndex < endIndex) {\n for (let j = 0; j < size; j++) {\n const value = typedArray[sourceIndex++];\n scratchArray[targetIndex + j] = value;\n scratchArray[targetIndex + j + size] = fp64LowPart(value);\n }\n targetIndex += size * 2;\n }\n\n return scratchArray.subarray(0, count * size * 2);\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var baseClamp = require('./_baseClamp'),\n toNumber = require('./toNumber');\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nmodule.exports = clamp;\n","/* eslint-disable max-statements, max-depth, complexity, no-unused-expressions */\n\nimport {equals} from '@math.gl/core';\n\n/** @type {typeof import('./polygon-utils').WINDING} */\nexport const WINDING = {\n CLOCKWISE: 1,\n COUNTER_CLOCKWISE: -1\n};\n\n/** @type {typeof import('./polygon-utils').modifyPolygonWindingDirection} */\nexport function modifyPolygonWindingDirection(points, direction, options = {}) {\n const windingDirection = getPolygonWindingDirection(points, options);\n if (windingDirection !== direction) {\n reversePolygon(points, options);\n return true;\n }\n return false;\n}\n\n/** @type {typeof import('./polygon-utils').getPolygonWindingDirection} */\nexport function getPolygonWindingDirection(points, options = {}) {\n return Math.sign(getPolygonSignedArea(points, options));\n}\n\n/** @type {typeof import('./polygon-utils').getPolygonSignedArea} */\nexport function getPolygonSignedArea(points, options = {}) {\n // https://en.wikipedia.org/wiki/Shoelace_formula\n const {start = 0, end = points.length} = options;\n const dim = options.size || 2;\n let area = 0;\n for (let i = start, j = end - dim; i < end; i += dim) {\n area += (points[i] - points[j]) * (points[i + 1] + points[j + 1]);\n j = i;\n }\n return area / 2;\n}\n\n/** @type {typeof import('./polygon-utils').forEachSegmentInPolygon} */\nexport function forEachSegmentInPolygon(points, visitor, options = {}) {\n const {start = 0, end = points.length, size = 2, isClosed} = options;\n\n const numPoints = (end - start) / size;\n for (let i = 0; i < numPoints - 1; ++i) {\n visitor(\n points[start + i * size],\n points[start + i * size + 1],\n points[start + (i + 1) * size],\n points[start + (i + 1) * size + 1],\n i,\n i + 1\n );\n }\n\n const endPointIndex = start + (numPoints - 1) * size;\n const isClosedEx =\n isClosed ||\n (equals(points[start], points[endPointIndex]) &&\n equals(points[start + 1], points[endPointIndex + 1]));\n\n if (!isClosedEx) {\n visitor(\n points[endPointIndex],\n points[endPointIndex + 1],\n points[start],\n points[start + 1],\n numPoints - 1,\n 0\n );\n }\n}\n\nfunction reversePolygon(points, options) {\n const {start = 0, end = points.length, size = 2} = options;\n\n const numPoints = (end - start) / size;\n const numSwaps = Math.floor(numPoints / 2);\n for (let i = 0; i < numSwaps; ++i) {\n const b1 = start + i * size;\n const b2 = start + (numPoints - 1 - i) * size;\n for (let j = 0; j < size; ++j) {\n const tmp = points[b1 + j];\n points[b1 + j] = points[b2 + j];\n points[b2 + j] = tmp;\n }\n }\n}\n\n/** @type {typeof import('./polygon-utils').modifyPolygonWindingDirectionPoints} */\nexport function modifyPolygonWindingDirectionPoints(points, direction, options = {}) {\n const currentDirection = getPolygonWindingDirectionPoints(points, options);\n if (currentDirection !== direction) {\n points.reverse();\n return true;\n }\n return false;\n}\n\n/** @type {typeof import('./polygon-utils').getPolygonWindingDirectionPoints} */\nexport function getPolygonWindingDirectionPoints(points, options = {}) {\n return Math.sign(getPolygonSignedAreaPoints(points, options));\n}\n\n/** @type {typeof import('./polygon-utils').getPolygonSignedAreaPoints} */\nexport function getPolygonSignedAreaPoints(points, options = {}) {\n // https://en.wikipedia.org/wiki/Shoelace_formula\n const {start = 0, end = points.length} = options;\n let area = 0;\n for (let i = start, j = end - 1; i < end; ++i) {\n area += (points[i][0] - points[j][0]) * (points[i][1] + points[j][1]);\n j = i;\n }\n return area / 2;\n}\n\n/** @type {typeof import('./polygon-utils').forEachSegmentInPolygonPoints} */\nexport function forEachSegmentInPolygonPoints(points, visitor, options = {}) {\n const {start = 0, end = points.length, isClosed} = options;\n for (let i = start; i < end - 1; ++i) {\n visitor(points[i], points[i + 1], i, i + 1);\n }\n\n const isClosedEx = isClosed || equals(points[end - 1], points[0]);\n if (!isClosedEx) {\n visitor(points[end - 1], points[0], end - 1, 0);\n }\n}\n","/*\n Adapted from https://github.com/mapbox/earcut to allow passing in\n of outline and hole areas using the `areas` parameter. As the\n areas are calcuted as part of classifying the polygon rings\n we can pass them in again to avoid recomputation\n\n ISC License\n\n Copyright (c) 2016, Mapbox\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n\n */\n\n/* eslint-disable complexity, max-params, max-statements, max-depth, no-continue, no-shadow */\n\nimport {getPolygonSignedArea} from './polygon-utils';\n\nexport function earcut(data, holeIndices, dim, areas) {\n dim = dim || 2;\n\n const hasHoles = holeIndices && holeIndices.length;\n const outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n let outerNode = linkedList(data, 0, outerLen, dim, true, areas && areas[0]);\n const triangles = [];\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n let invSize;\n let maxX;\n let maxY;\n let minX;\n let minY;\n let x;\n let y;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim, areas);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (let i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 1 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize);\n\n return triangles;\n}\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList(data, start, end, dim, clockwise, area) {\n let i;\n let last;\n if (area === undefined) {\n area = getPolygonSignedArea(data, {start, end, size: dim});\n }\n\n // Note that the signed area calculation in math.gl\n // has the opposite sign to that which was originally\n // present in earcut, thus the `< 0` is reversed\n if (clockwise === area < 0) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n let p = start;\n let again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n let stop = ear;\n let prev;\n let next;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar(ear) {\n const a = ear.prev;\n const b = ear;\n const c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n let p = ear.next.next;\n\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0)\n return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n const a = ear.prev;\n const b = ear;\n const c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // triangle bbox; min & max are calculated like this for speed\n const minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : b.x < c.x ? b.x : c.x;\n const minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : b.y < c.y ? b.y : c.y;\n const maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : b.x > c.x ? b.x : c.x;\n const maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : b.y > c.y ? b.y : c.y;\n\n // z-order range for the current triangle bbox;\n const minZ = zOrder(minTX, minTY, minX, minY, invSize);\n const maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n\n let p = ear.prevZ;\n let n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (\n p !== ear.prev &&\n p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0\n )\n return false;\n p = p.prevZ;\n\n if (\n n !== ear.prev &&\n n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0\n )\n return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (\n p !== ear.prev &&\n p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0\n )\n return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (\n n !== ear.prev &&\n n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0\n )\n return false;\n n = n.nextZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles, dim) {\n let p = start;\n do {\n const a = p.prev;\n const b = p.next.next;\n\n if (\n !equals(a, b) &&\n intersects(a, p, p.next, b) &&\n locallyInside(a, b) &&\n locallyInside(b, a)\n ) {\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n let a = start;\n do {\n let b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n let c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles(data, holeIndices, outerNode, dim, areas) {\n const queue = [];\n let i;\n let len;\n let start;\n let end;\n let list;\n\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false, areas && areas[i + 1]);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX);\n\n // process holes from left to right\n for (i = 0; i < queue.length; i++) {\n eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n\n return outerNode;\n}\n\nfunction compareX(a, b) {\n return a.x - b.x;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n outerNode = findHoleBridge(hole, outerNode);\n if (outerNode) {\n const b = splitPolygon(outerNode, hole);\n\n // filter collinear points around the cuts\n filterPoints(outerNode, outerNode.next);\n filterPoints(b, b.next);\n }\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n let p = outerNode;\n const hx = hole.x;\n const hy = hole.y;\n let qx = -Infinity;\n let m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n const x = p.x + ((hy - p.y) * (p.next.x - p.x)) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) return p;\n if (hy === p.next.y) return p.next;\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n if (hx === qx) return m; // hole touches outer segment; pick leftmost endpoint\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n const stop = m;\n const mx = m.x;\n const my = m.y;\n let tanMin = Infinity;\n let tan;\n\n p = m;\n\n do {\n if (\n hx >= p.x &&\n p.x >= mx &&\n hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)\n ) {\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (\n locallyInside(p, hole) &&\n (tan < tanMin ||\n (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))\n ) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve(start, minX, minY, invSize) {\n let p = start;\n do {\n if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked(list) {\n let e;\n let i;\n let inSize = 1;\n let numMerges;\n let p;\n let pSize;\n let q;\n let qSize;\n let tail;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n } while (numMerges > 1);\n\n return list;\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder(x, y, minX, minY, invSize) {\n // coords are transformed into non-negative 15-bit integer range\n x = 32767 * (x - minX) * invSize;\n y = 32767 * (y - minY) * invSize;\n\n x = (x | (x << 8)) & 0x00ff00ff;\n x = (x | (x << 4)) & 0x0f0f0f0f;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00ff00ff;\n y = (y | (y << 4)) & 0x0f0f0f0f;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n let p = start;\n let leftmost = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (\n (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&\n (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&\n (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0\n );\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal(a, b) {\n return (\n a.next.i !== b.i &&\n a.prev.i !== b.i &&\n !intersectsPolygon(a, b) && // dones't intersect other edges\n ((locallyInside(a, b) &&\n locallyInside(b, a) &&\n middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) || area(a, b.prev, b))) || // does not create opposite-facing sectors\n (equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0))\n ); // special zero-length case\n}\n\n// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nfunction intersects(p1, q1, p2, q2) {\n const o1 = sign(area(p1, q1, p2));\n const o2 = sign(area(p1, q1, q2));\n const o3 = sign(area(p2, q2, p1));\n const o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n return (\n q.x <= Math.max(p.x, r.x) &&\n q.x >= Math.min(p.x, r.x) &&\n q.y <= Math.max(p.y, r.y) &&\n q.y >= Math.min(p.y, r.y)\n );\n}\n\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n let p = a;\n do {\n if (\n p.i !== a.i &&\n p.next.i !== a.i &&\n p.i !== b.i &&\n p.next.i !== b.i &&\n intersects(p, p.next, a, b)\n )\n return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0\n ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0\n : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n let p = a;\n let inside = false;\n const px = (a.x + b.x) / 2;\n const py = (a.y + b.y) / 2;\n do {\n if (\n p.y > py !== p.next.y > py &&\n p.next.y !== p.y &&\n px < ((p.next.x - p.x) * (py - p.y)) / (p.next.y - p.y) + p.x\n )\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon(a, b) {\n const a2 = new Node(a.i, a.x, a.y);\n const b2 = new Node(b.i, b.x, b.y);\n const an = a.next;\n const bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode(i, x, y, last) {\n const p = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction Node(i, x, y) {\n // vertex index in coordinates array\n this.i = i;\n\n // vertex coordinates\n this.x = x;\n this.y = y;\n\n // previous and next vertex nodes in a polygon ring\n this.prev = null;\n this.next = null;\n\n // z-order curve value\n this.z = null;\n\n // previous and next nodes in z-order\n this.prevZ = null;\n this.nextZ = null;\n\n // indicates whether this is a steiner point\n this.steiner = false;\n}\n","import {\n setTransitionProperty,\n getTransitionProperty,\n getTransformXY,\n setTransformXY,\n getTransformName,\n} from './propertyUtils';\n\nconst RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nlet getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n const originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n let value = v;\n if (typeof name === 'object') {\n for (const i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = `${value}px`;\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n let box;\n let x;\n let y;\n const doc = elem.ownerDocument;\n const body = doc.body;\n const docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top;\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return {\n left: x,\n top: y,\n };\n}\n\nfunction getScroll(w, top) {\n let ret = w[`page${top ? 'Y' : 'X'}Offset`];\n const method = `scroll${top ? 'Top' : 'Left'}`;\n if (typeof ret !== 'number') {\n const d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n const pos = getClientPosition(el);\n const doc = el.ownerDocument;\n const w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n if (node.nodeType === 9) {\n return node;\n }\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n let computedStyle = cs;\n let val = '';\n const d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nconst _RE_NUM_NO_PX = new RegExp(`^(${RE_NUM})(?!px)[a-z%]+$`, 'i');\nconst RE_POS = /^(top|right|bottom|left)$/;\nconst CURRENT_STYLE = 'currentStyle';\nconst RUNTIME_STYLE = 'runtimeStyle';\nconst LEFT = 'left';\nconst PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n let ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n const style = elem.style;\n const left = style[LEFT];\n const rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle\n ? _getComputedStyle\n : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n let presetH = -999;\n let presetV = -999;\n const horizontalProperty = getOffsetDirection('left', option);\n const verticalProperty = getOffsetDirection('top', option);\n const oppositeHorizontalProperty = oppositeOffsetDirection(\n horizontalProperty,\n );\n const oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n let originalTransition = '';\n const originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = `${presetH}px`;\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = `${presetV}px`;\n }\n // force relayout\n forceRelayout(elem);\n const old = getOffset(elem);\n const originalStyle = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const preset = key === 'left' ? presetH : presetV;\n const off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n forceRelayout(elem);\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n const ret = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const off = offset[key] - originalOffset[key];\n if (key === dir) {\n ret[dir] = originalStyle[dir] + off;\n } else {\n ret[dir] = originalStyle[dir] - off;\n }\n }\n }\n css(elem, ret);\n}\n\nfunction setTransform(elem, offset) {\n const originalOffset = getOffset(elem);\n const originalXY = getTransformXY(elem);\n const resultXY = { x: originalXY.x, y: originalXY.y };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n const oriOffset = getOffset(elem);\n\n const oLeft = oriOffset.left.toFixed(0);\n const oTop = oriOffset.top.toFixed(0);\n const tLeft = offset.left.toFixed(0);\n const tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (\n option.useCssTransform &&\n getTransformName() in document.body.style\n ) {\n setTransform(elem, offset, option);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (let i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nconst BOX_MODELS = ['margin', 'border', 'padding'];\nconst CONTENT_INDEX = -1;\nconst PADDING_INDEX = 2;\nconst BORDER_INDEX = 1;\nconst MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n const old = {};\n const style = elem.style;\n let name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n let value = 0;\n let prop;\n let j;\n let i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n let cssProp;\n if (prop === 'border') {\n cssProp = `${prop}${which[i]}Width`;\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\nconst domUtils = {\n getParent(element) {\n let parent = element;\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n return parent;\n },\n};\n\neach(['Width', 'Height'], name => {\n domUtils[`doc${name}`] = refWin => {\n const d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[`scroll${name}`],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[`scroll${name}`],\n domUtils[`viewport${name}`](d),\n );\n };\n\n domUtils[`viewport${name}`] = win => {\n // pc browser includes scrollbar in window.innerWidth\n const prop = `client${name}`;\n const doc = win.document;\n const body = doc.body;\n const documentElement = doc.documentElement;\n const documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return (\n (doc.compatMode === 'CSS1Compat' && documentElementProp) ||\n (body && body[prop]) ||\n documentElementProp\n );\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n let extra = ex;\n if (isWindow(elem)) {\n return name === 'width'\n ? domUtils.viewportWidth(elem)\n : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width'\n ? domUtils.docWidth(elem)\n : domUtils.docHeight(elem);\n }\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n let borderBoxValue =\n name === 'width'\n ? elem.getBoundingClientRect().width\n : elem.getBoundingClientRect().height;\n const computedStyle = getComputedStyleX(elem);\n const isBorderBox = isBorderBoxFn(elem, computedStyle);\n let cssBoxValue = 0;\n if (\n borderBoxValue === null ||\n borderBoxValue === undefined ||\n borderBoxValue <= 0\n ) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (\n cssBoxValue === null ||\n cssBoxValue === undefined ||\n Number(cssBoxValue) < 0\n ) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n const borderBoxValueOrIsBorderBox =\n borderBoxValue !== undefined || isBorderBox;\n const val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return (\n val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle)\n );\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return (\n val +\n (extra === PADDING_INDEX\n ? -getPBMWidth(elem, ['border'], which, computedStyle)\n : getPBMWidth(elem, ['margin'], which, computedStyle))\n );\n }\n return (\n cssBoxValue +\n getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle)\n );\n}\n\nconst cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block',\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(...args) {\n let val;\n const elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, () => {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], name => {\n const first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[`outer${first}`] = (el, includeMargin) => {\n return (\n el &&\n getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX)\n );\n };\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = (elem, v) => {\n let val = v;\n if (val !== undefined) {\n if (elem) {\n const computedStyle = getComputedStyleX(elem);\n const isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (const i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\nconst utils = {\n getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n const doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument,\n offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow,\n each,\n css,\n clone(obj) {\n let i;\n const ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n const overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix,\n getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n utils.mix(ret, args[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0,\n};\n\nmix(utils, domUtils);\n\nexport default utils;\n","/*\n Adapted from https://github.com/mapbox/lineclip to work with flat arrays\n and 3d positions\n\n ISC License\n\n Copyright (c) 2015, Mapbox\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n\n */\n\n/* eslint-disable max-statements, max-depth */\n\nimport {push, copy, getPointAtIndex} from './utils';\n\n// Cohen-Sutherland line clipping algorithm, adapted to efficiently\n// handle polylines rather than just segments\nexport function clipPolyline(positions, bbox, options = {}) {\n const {size = 2, startIndex = 0, endIndex = positions.length} = options;\n const numPoints = (endIndex - startIndex) / size;\n const result = [];\n let part = [];\n let a;\n let b;\n let codeA = -1;\n let codeB;\n let lastCode;\n\n for (let i = 1; i < numPoints; i++) {\n a = getPointAtIndex(positions, i - 1, size, startIndex, a);\n b = getPointAtIndex(positions, i, size, startIndex, b);\n if (codeA < 0) {\n codeA = bitCode(a, bbox);\n }\n codeB = lastCode = bitCode(b, bbox);\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (!(codeA | codeB)) {\n // accept\n push(part, a);\n\n if (codeB !== lastCode) {\n // segment went outside\n push(part, b);\n\n if (i < numPoints - 1) {\n // start a new line\n result.push(part);\n part = [];\n }\n } else if (i === numPoints - 1) {\n push(part, b);\n }\n break;\n } else if (codeA & codeB) {\n // trivial reject\n break;\n } else if (codeA) {\n // a outside, intersect with clip edge\n intersect(a, b, codeA, bbox, a);\n codeA = bitCode(a, bbox);\n } else {\n // b outside\n intersect(a, b, codeB, bbox, b);\n codeB = bitCode(b, bbox);\n }\n }\n\n codeA = lastCode;\n }\n\n if (part.length) result.push(part);\n\n return result;\n}\n\n// Sutherland-Hodgeman polygon clipping algorithm\n// polygon must be closed (first vertex == last vertex)\nexport function clipPolygon(positions, bbox, options = {}) {\n const {size = 2, endIndex = positions.length} = options;\n let {startIndex = 0} = options;\n let numPoints = (endIndex - startIndex) / size;\n let result;\n let p;\n let prev;\n let inside;\n let prevInside;\n\n // clip against each side of the clip rectangle\n for (let edge = 1; edge <= 8; edge *= 2) {\n result = [];\n prev = getPointAtIndex(positions, numPoints - 1, size, startIndex, prev);\n prevInside = !(bitCode(prev, bbox) & edge);\n\n for (let i = 0; i < numPoints; i++) {\n p = getPointAtIndex(positions, i, size, startIndex, p);\n inside = !(bitCode(p, bbox) & edge);\n\n // if segment goes through the clip window, add an intersection\n if (inside !== prevInside) push(result, intersect(prev, p, edge, bbox));\n\n if (inside) push(result, p); // add a point if it's inside\n\n copy(prev, p);\n prevInside = inside;\n }\n\n // close loop\n positions = result;\n startIndex = 0;\n numPoints = result.length / size;\n\n if (!numPoints) break;\n }\n\n return result;\n}\n\n// intersect a segment against one of the 4 lines that make up the bbox\n\nexport function intersect(a, b, edge, bbox, out = []) {\n let t;\n // Forces out[snapI] to be on the bbox edge\n // Interpolation introduces precision issue which may cause lineclip to be\n // stuck in an infinite loop\n let snap;\n if (edge & 8) {\n // top\n t = (bbox[3] - a[1]) / (b[1] - a[1]);\n snap = 3;\n } else if (edge & 4) {\n // bottom\n t = (bbox[1] - a[1]) / (b[1] - a[1]);\n snap = 1;\n } else if (edge & 2) {\n // right\n t = (bbox[2] - a[0]) / (b[0] - a[0]);\n snap = 2;\n } else if (edge & 1) {\n // left\n t = (bbox[0] - a[0]) / (b[0] - a[0]);\n snap = 0;\n } else {\n return null;\n }\n for (let i = 0; i < a.length; i++) {\n out[i] = (snap & 1) === i ? bbox[snap] : t * (b[i] - a[i]) + a[i];\n }\n return out;\n}\n\n// bit code reflects the point position relative to the bbox:\n\n// left mid right\n// top 1001 1000 1010\n// mid 0001 0000 0010\n// bottom 0101 0100 0110\n\nexport function bitCode(p, bbox) {\n let code = 0;\n\n if (p[0] < bbox[0]) code |= 1;\n // left\n else if (p[0] > bbox[2]) code |= 2; // right\n\n if (p[1] < bbox[1]) code |= 4;\n // bottom\n else if (p[1] > bbox[3]) code |= 8; // top\n\n return code;\n}\n","/* eslint-disable max-statements, max-depth, complexity, no-unused-expressions */\nimport {bitCode, intersect} from './lineclip';\nimport {getPointAtIndex, copy, push} from './utils';\n\nexport function cutPolylineByGrid(positions, options = {}) {\n const {\n size = 2,\n broken = false,\n gridResolution = 10,\n gridOffset = [0, 0],\n startIndex = 0,\n endIndex = positions.length\n } = options;\n const numPoints = (endIndex - startIndex) / size;\n let part = [];\n const result = [part];\n const a = getPointAtIndex(positions, 0, size, startIndex);\n let b;\n let codeB;\n const cell = getGridCell(a, gridResolution, gridOffset, []);\n const scratchPoint = [];\n push(part, a);\n\n for (let i = 1; i < numPoints; i++) {\n b = getPointAtIndex(positions, i, size, startIndex, b);\n codeB = bitCode(b, cell);\n\n while (codeB) {\n // find the intersection with the current cell\n intersect(a, b, codeB, cell, scratchPoint);\n const codeAlt = bitCode(scratchPoint, cell);\n if (codeAlt) {\n intersect(a, scratchPoint, codeAlt, cell, scratchPoint);\n codeB = codeAlt;\n }\n push(part, scratchPoint);\n // move to the next cell\n copy(a, scratchPoint);\n\n moveToNeighborCell(cell, gridResolution, codeB);\n if (broken && part.length > size) {\n part = [];\n result.push(part);\n push(part, a);\n }\n\n codeB = bitCode(b, cell);\n }\n\n push(part, b);\n copy(a, b);\n }\n\n return broken ? result : result[0];\n}\n\nconst TYPE_INSIDE = 0;\nconst TYPE_BORDER = 1;\n\nfunction concatInPlace(arr1, arr2) {\n for (let i = 0; i < arr2.length; i++) {\n arr1.push(arr2[i]);\n }\n return arr1;\n}\n\nexport function cutPolygonByGrid(positions, holeIndices, options = {}) {\n if (!positions.length) {\n // input is empty\n return [];\n }\n const {size = 2, gridResolution = 10, gridOffset = [0, 0], edgeTypes = false} = options;\n const result = [];\n const queue = [\n {\n pos: positions,\n types: edgeTypes && new Array(positions.length / size).fill(TYPE_BORDER),\n holes: holeIndices || []\n }\n ];\n const bbox = [[], []];\n let cell = [];\n\n // Recursively bisect polygon until every part fit in a single grid cell\n while (queue.length) {\n const {pos, types, holes} = queue.shift();\n\n // Get the bounding box of the outer polygon\n getBoundingBox(pos, size, holes[0] || pos.length, bbox);\n cell = getGridCell(bbox[0], gridResolution, gridOffset, cell);\n const code = bitCode(bbox[1], cell);\n\n if (code) {\n // Split the outer ring at the boundary\n let parts = bisectPolygon(pos, types, size, 0, holes[0] || pos.length, cell, code);\n const polygonLow = {pos: parts[0].pos, types: parts[0].types, holes: []};\n const polygonHigh = {pos: parts[1].pos, types: parts[1].types, holes: []};\n queue.push(polygonLow, polygonHigh);\n\n // Split each hole at the boundary\n for (let i = 0; i < holes.length; i++) {\n parts = bisectPolygon(pos, types, size, holes[i], holes[i + 1] || pos.length, cell, code);\n\n if (parts[0]) {\n polygonLow.holes.push(polygonLow.pos.length);\n polygonLow.pos = concatInPlace(polygonLow.pos, parts[0].pos);\n if (edgeTypes) {\n polygonLow.types = concatInPlace(polygonLow.types, parts[0].types);\n }\n }\n if (parts[1]) {\n polygonHigh.holes.push(polygonHigh.pos.length);\n polygonHigh.pos = concatInPlace(polygonHigh.pos, parts[1].pos);\n if (edgeTypes) {\n polygonHigh.types = concatInPlace(polygonHigh.types, parts[1].types);\n }\n }\n }\n } else {\n // Polygon fits in a single cell, no more processing required\n const polygon = {positions: pos};\n if (edgeTypes) {\n polygon.edgeTypes = types;\n }\n if (holes.length) {\n polygon.holeIndices = holes;\n }\n\n result.push(polygon);\n }\n }\n return result;\n}\n\n// edgeTypes:\n// TYPE_BORDER - edge from the original polygon\n// TYPE_INSIDE - inside the original polygon\n// eslint-disable-next-line max-params\nfunction bisectPolygon(positions, edgeTypes, size, startIndex, endIndex, bbox, edge) {\n const numPoints = (endIndex - startIndex) / size;\n const resultLow = [];\n const resultHigh = [];\n const typesLow = [];\n const typesHigh = [];\n const scratchPoint = [];\n\n let p;\n let side;\n let type;\n const prev = getPointAtIndex(positions, numPoints - 1, size, startIndex);\n let prevSide = Math.sign(edge & 8 ? prev[1] - bbox[3] : prev[0] - bbox[2]);\n let prevType = edgeTypes && edgeTypes[numPoints - 1];\n let lowPointCount = 0;\n let highPointCount = 0;\n\n for (let i = 0; i < numPoints; i++) {\n p = getPointAtIndex(positions, i, size, startIndex, p);\n side = Math.sign(edge & 8 ? p[1] - bbox[3] : p[0] - bbox[2]);\n type = edgeTypes && edgeTypes[startIndex / size + i];\n\n // if segment goes through the boundary, add an intersection\n if (side && prevSide && prevSide !== side) {\n intersect(prev, p, edge, bbox, scratchPoint);\n push(resultLow, scratchPoint) && typesLow.push(prevType);\n push(resultHigh, scratchPoint) && typesHigh.push(prevType);\n }\n\n if (side <= 0) {\n push(resultLow, p) && typesLow.push(type);\n lowPointCount -= side;\n } else if (typesLow.length) {\n typesLow[typesLow.length - 1] = TYPE_INSIDE;\n }\n if (side >= 0) {\n push(resultHigh, p) && typesHigh.push(type);\n highPointCount += side;\n } else if (typesHigh.length) {\n typesHigh[typesHigh.length - 1] = TYPE_INSIDE;\n }\n\n copy(prev, p);\n prevSide = side;\n prevType = type;\n }\n\n return [\n lowPointCount ? {pos: resultLow, types: edgeTypes && typesLow} : null,\n highPointCount ? {pos: resultHigh, types: edgeTypes && typesHigh} : null\n ];\n}\n\nfunction getGridCell(p, gridResolution, gridOffset, out) {\n const left = Math.floor((p[0] - gridOffset[0]) / gridResolution) * gridResolution + gridOffset[0];\n const bottom =\n Math.floor((p[1] - gridOffset[1]) / gridResolution) * gridResolution + gridOffset[1];\n out[0] = left;\n out[1] = bottom;\n out[2] = left + gridResolution;\n out[3] = bottom + gridResolution;\n return out;\n}\n\nfunction moveToNeighborCell(cell, gridResolution, edge) {\n if (edge & 8) {\n // top\n cell[1] += gridResolution;\n cell[3] += gridResolution;\n } else if (edge & 4) {\n // bottom\n cell[1] -= gridResolution;\n cell[3] -= gridResolution;\n } else if (edge & 2) {\n // right\n cell[0] += gridResolution;\n cell[2] += gridResolution;\n } else if (edge & 1) {\n // left\n cell[0] -= gridResolution;\n cell[2] -= gridResolution;\n }\n}\n\nfunction getBoundingBox(positions, size, endIndex, out) {\n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n\n for (let i = 0; i < endIndex; i += size) {\n const x = positions[i];\n const y = positions[i + 1];\n minX = x < minX ? x : minX;\n maxX = x > maxX ? x : maxX;\n minY = y < minY ? y : minY;\n maxY = y > maxY ? y : maxY;\n }\n\n out[0][0] = minX;\n out[0][1] = minY;\n out[1][0] = maxX;\n out[1][1] = maxY;\n return out;\n}\n","import {cutPolylineByGrid, cutPolygonByGrid} from './cut-by-grid';\nimport {getPointAtIndex, push} from './utils';\n\n// https://en.wikipedia.org/wiki/Web_Mercator_projection\nconst DEFAULT_MAX_LATITUDE = 85.051129;\n\n// https://user-images.githubusercontent.com/2059298/78465769-938b7a00-76ae-11ea-9b95-1f4c26425ab9.png\nexport function cutPolylineByMercatorBounds(positions, options = {}) {\n const {size = 2, startIndex = 0, endIndex = positions.length, normalize = true} = options;\n\n // Remap longitudes so that each segment takes the shorter path\n const newPositions = positions.slice(startIndex, endIndex);\n wrapLongitudesForShortestPath(newPositions, size, 0, endIndex - startIndex);\n\n const parts = cutPolylineByGrid(newPositions, {\n size,\n broken: true,\n gridResolution: 360,\n gridOffset: [-180, -180]\n });\n\n if (normalize) {\n // Each part is guaranteed to be in a single copy of the world\n // Map longitudes back to [-180, 180]\n for (const part of parts) {\n shiftLongitudesIntoRange(part, size);\n }\n }\n return parts;\n}\n\n// https://user-images.githubusercontent.com/2059298/78465770-94241080-76ae-11ea-809a-6a8534dac1d9.png\nexport function cutPolygonByMercatorBounds(positions, holeIndices, options = {}) {\n const {size = 2, normalize = true, edgeTypes = false} = options;\n holeIndices = holeIndices || [];\n const newPositions = [];\n const newHoleIndices = [];\n let srcStartIndex = 0;\n let targetIndex = 0;\n\n for (let ringIndex = 0; ringIndex <= holeIndices.length; ringIndex++) {\n // srcStartIndex/srcEndIndex define the ring in the original positions\n const srcEndIndex = holeIndices[ringIndex] || positions.length;\n // targetStartIndex/targetIndex define the ring in newPositions\n const targetStartIndex = targetIndex;\n\n // In case the ring contains a pole (e.g. Antarctica), we'll have to insert vertices\n // The insertion point is defined by the vertex closest to the pole\n // Split the the ring by the insertion point when copying to newPositions\n const splitIndex = findSplitIndex(positions, size, srcStartIndex, srcEndIndex);\n for (let i = splitIndex; i < srcEndIndex; i++) {\n newPositions[targetIndex++] = positions[i];\n }\n for (let i = srcStartIndex; i < splitIndex; i++) {\n newPositions[targetIndex++] = positions[i];\n }\n\n // Remap longitudes so that each segment takes the shorter path\n wrapLongitudesForShortestPath(newPositions, size, targetStartIndex, targetIndex);\n\n // Handle the case when the ring contains a pole\n insertPoleVertices(newPositions, size, targetStartIndex, targetIndex, options.maxLatitude);\n\n srcStartIndex = srcEndIndex;\n newHoleIndices[ringIndex] = targetIndex;\n }\n newHoleIndices.pop();\n\n const parts = cutPolygonByGrid(newPositions, newHoleIndices, {\n size,\n gridResolution: 360,\n gridOffset: [-180, -180],\n edgeTypes\n });\n\n if (normalize) {\n // Each part is guaranteed to be in a single copy of the world\n // Map longitudes back to [-180, 180]\n for (const part of parts) {\n shiftLongitudesIntoRange(part.positions, size);\n }\n }\n return parts;\n}\n\n/* Helpers */\n\n// See comments for insertPoleVertices\nfunction findSplitIndex(positions, size, startIndex, endIndex) {\n let maxLat = -1;\n let pointIndex = -1;\n for (let i = startIndex + 1; i < endIndex; i += size) {\n const lat = Math.abs(positions[i]);\n if (lat > maxLat) {\n maxLat = lat;\n pointIndex = i - 1;\n }\n }\n return pointIndex;\n}\n\n// https://user-images.githubusercontent.com/2059298/78857483-5987e400-79de-11ea-98fc-0631287a8431.png\n//\n// If the polygon contains a pole, to tesselate it correctly, we need to insert the edge\n// of map into the polygon. This requires adding two vertices that represent the pole, by\n// drawing a perpendicular line to the Mercator map edge from a selected vertex on the ring.\n//\n// We select the insertion position carefully so that the inserted line segments do not\n// intersect with the ring itself. This is ensured by findSplitIndex, which returns the\n// vertex closest to the pole.\nfunction insertPoleVertices(\n positions,\n size,\n startIndex,\n endIndex,\n maxLatitude = DEFAULT_MAX_LATITUDE\n) {\n // Check if the ring contains a pole\n const firstLng = positions[startIndex];\n const lastLng = positions[endIndex - size];\n if (Math.abs(firstLng - lastLng) > 180) {\n // The ring does not make a round trip\n // Add the nearest pole to the vertices so that the polygon tesselates correctly\n const p = getPointAtIndex(positions, 0, size, startIndex);\n // Copy the first vertex to the world of the last vertex\n p[0] += Math.round((lastLng - firstLng) / 360) * 360;\n push(positions, p);\n // Project the copied vertex to the edge of the map\n p[1] = Math.sign(p[1]) * maxLatitude;\n push(positions, p);\n // Project the first vertex to the edge of the map\n p[0] = firstLng;\n push(positions, p);\n }\n}\n\nfunction wrapLongitudesForShortestPath(positions, size, startIndex, endIndex) {\n let prevLng = positions[0];\n let lng;\n for (let i = startIndex; i < endIndex; i += size) {\n lng = positions[i];\n const delta = lng - prevLng;\n if (delta > 180 || delta < -180) {\n lng -= Math.round(delta / 360) * 360;\n }\n positions[i] = prevLng = lng;\n }\n}\n\nfunction shiftLongitudesIntoRange(positions, size) {\n let refLng;\n const pointCount = positions.length / size;\n\n // Find a longitude that is not on the edge of a world\n // Which we will use to determine which world copy it is\n for (let i = 0; i < pointCount; i++) {\n refLng = positions[i * size];\n if ((refLng + 180) % 360 !== 0) {\n break;\n }\n }\n\n const delta = -Math.round(refLng / 360) * 360;\n if (delta === 0) {\n return;\n }\n for (let i = 0; i < pointCount; i++) {\n positions[i * size] += delta;\n }\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import {isWebGL2, assertWebGLContext} from '@luma.gl/gltools';\nimport {lumaStats} from '../init';\nimport {getKey, getKeyValue} from '../webgl-utils/constants-to-keys';\nimport {assert} from '../utils/assert';\nimport {uid} from '../utils/utils';\nimport {stubRemovedMethods} from '../utils/stub-methods';\n\nconst ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';\n\n// TODO - Handle context loss\n// function glGetContextLossCount(gl) {\n// return (gl.luma && gl.luma.glCount) || 0;\n// }\n\nexport default class Resource {\n constructor(gl, opts = {}) {\n assertWebGLContext(gl);\n\n const {id, userData = {}} = opts;\n this.gl = gl;\n // @ts-ignore\n this.gl2 = gl;\n // this.ext = polyfillContext(gl);\n this.id = id || uid(this.constructor.name);\n this.userData = userData;\n this._bound = false;\n\n // Set the handle\n // If handle was provided, use it, otherwise create a new handle\n\n // TODO - Stores the handle with context loss information\n // this.glCount = glGetContextLossCount(this.gl);\n\n // Default VertexArray needs to be created with null handle, so compare against undefined\n this._handle = opts.handle;\n if (this._handle === undefined) {\n this._handle = this._createHandle();\n }\n\n // Only meaningful for resources that allocate GPU memory\n this.byteLength = 0;\n\n this._addStats();\n }\n\n toString() {\n return `${this.constructor.name}(${this.id})`;\n }\n\n get handle() {\n // TODO - Add context loss handling\n // Will regenerate and reinitialize the handle if necessary\n // const glCount = glGetContextLossCount(this.gl);\n // if (this.glCount !== glCount) {\n // this._handle = this._createHandle(this.opts);\n // this._glCount = glCount;\n // // Reinitialize object\n // this.initialize(this.opts);\n // }\n return this._handle;\n }\n\n delete({deleteChildren = false} = {}) {\n // Delete this object, and get refs to any children\n // @ts-ignore\n const children = this._handle && this._deleteHandle(this._handle);\n if (this._handle) {\n this._removeStats();\n }\n this._handle = null;\n\n // Optionally, recursively delete the children\n // @ts-ignore\n if (children && deleteChildren) {\n // @ts-ignore\n children.filter(Boolean).forEach(child => child.delete());\n }\n\n return this;\n }\n\n bind(funcOrHandle = this.handle) {\n if (typeof funcOrHandle !== 'function') {\n this._bindHandle(funcOrHandle);\n return this;\n }\n\n let value;\n\n if (!this._bound) {\n this._bindHandle(this.handle);\n this._bound = true;\n\n value = funcOrHandle();\n\n this._bound = false;\n this._bindHandle(null);\n } else {\n value = funcOrHandle();\n }\n\n return value;\n }\n\n unbind() {\n this.bind(null);\n }\n\n /**\n * Query a Resource parameter\n *\n * @param {GLenum} pname\n * @return {GLint|GLfloat|GLenum} param\n */\n getParameter(pname, opts = {}) {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-ignore\n const parameters = this.constructor.PARAMETERS || {};\n\n // Use parameter definitions to handle unsupported parameters\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if we can query for this parameter\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n const webgl1Default = parameter.webgl1;\n const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;\n const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;\n return defaultValue;\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // Attempt to query for it and let WebGL report errors\n return this._getParameter(pname, opts);\n }\n\n // Many resources support a getParameter call -\n // getParameters will get all parameters - slow but useful for debugging\n // eslint-disable-next-line complexity\n getParameters(options = {}) {\n const {parameters, keys} = options;\n\n // Get parameter definitions for this Resource\n // @ts-ignore\n const PARAMETERS = this.constructor.PARAMETERS || {};\n\n const isWebgl2 = isWebGL2(this.gl);\n\n const values = {};\n\n // Query all parameters if no list provided\n const parameterKeys = parameters || Object.keys(PARAMETERS);\n\n // WEBGL limits\n for (const pname of parameterKeys) {\n const parameter = PARAMETERS[pname];\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n parameter &&\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (parameterAvailable) {\n const key = keys ? getKey(this.gl, pname) : pname;\n values[key] = this.getParameter(pname, options);\n if (keys && parameter.type === 'GLenum') {\n values[key] = getKey(this.gl, values[key]);\n }\n }\n }\n\n return values;\n }\n\n /**\n * Update a Resource setting\n *\n * @todo - cache parameter to avoid issuing WebGL calls?\n *\n * @param {string} pname - parameter (GL constant, value or key)\n * @param {GLint|GLfloat|GLenum} value\n * @return {Resource} returns self to enable chaining\n */\n setParameter(pname, value) {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-ignore\n const parameters = this.constructor.PARAMETERS || {};\n\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n throw new Error('Parameter not available on this platform');\n }\n\n // Handle string keys\n if (parameter.type === 'GLenum') {\n value = getKeyValue(value);\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // attempt to set it and let WebGL report errors\n this._setParameter(pname, value);\n return this;\n }\n\n /*\n * Batch update resource parameters\n * Assumes the subclass supports a setParameter call\n */\n setParameters(parameters) {\n for (const pname in parameters) {\n this.setParameter(pname, parameters[pname]);\n }\n return this;\n }\n\n // Install stubs for removed methods\n stubRemovedMethods(className, version, methodNames) {\n return stubRemovedMethods(this, className, version, methodNames);\n }\n\n // PUBLIC VIRTUAL METHODS\n initialize(opts) {}\n\n // PROTECTED METHODS - These must be overridden by subclass\n _createHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _deleteHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _bindHandle(handle) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getOptsFromHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n /** @returns {number} */\n _getParameter(pname, opts) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _setParameter(pname, value) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n // PRIVATE METHODS\n\n _context() {\n this.gl.luma = this.gl.luma || {};\n return this.gl.luma;\n }\n\n _addStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get('Resources Created').incrementCount();\n stats.get(`${name}s Created`).incrementCount();\n stats.get(`${name}s Active`).incrementCount();\n }\n\n _removeStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get(`${name}s Active`).decrementCount();\n }\n\n _trackAllocatedMemory(bytes, name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').addCount(bytes);\n stats.get(`${name} Memory`).addCount(bytes);\n this.byteLength = bytes;\n }\n\n _trackDeallocatedMemory(name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').subtractCount(this.byteLength);\n stats.get(`${name} Memory`).subtractCount(this.byteLength);\n this.byteLength = 0;\n }\n}\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","import * as glMatrix from \"./common.js\";\n/**\r\n * 4 Dimensional Vector\r\n * @module vec4\r\n */\n\n/**\r\n * Creates a new, empty vec4\r\n *\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(4);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec4 initialized with values from an existing vector\r\n *\r\n * @param {ReadonlyVec4} a vector to clone\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\r\n * Creates a new vec4 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function fromValues(x, y, z, w) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\r\n * Copy the values from one vec4 to another\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the source vector\r\n * @returns {vec4} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\r\n * Set the components of a vec4 to the given values\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {vec4} out\r\n */\n\nexport function set(out, x, y, z, w) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\r\n * Adds two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n}\n/**\r\n * Multiplies two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n out[3] = a[3] * b[3];\n return out;\n}\n/**\r\n * Divides two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n out[3] = a[3] / b[3];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to ceil\r\n * @returns {vec4} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n out[3] = Math.ceil(a[3]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to floor\r\n * @returns {vec4} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n out[3] = Math.floor(a[3]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n out[3] = Math.min(a[3], b[3]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n out[3] = Math.max(a[3], b[3]);\n return out;\n}\n/**\r\n * Math.round the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to round\r\n * @returns {vec4} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n out[3] = Math.round(a[3]);\n return out;\n}\n/**\r\n * Scales a vec4 by a scalar number\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec4} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n}\n/**\r\n * Adds two vec4's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec4} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec4's\r\n *\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec4's\r\n *\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\r\n * Calculates the length of a vec4\r\n *\r\n * @param {ReadonlyVec4} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\r\n * Calculates the squared length of a vec4\r\n *\r\n * @param {ReadonlyVec4} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\r\n * Negates the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to negate\r\n * @returns {vec4} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = -a[3];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to invert\r\n * @returns {vec4} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n out[3] = 1.0 / a[3];\n return out;\n}\n/**\r\n * Normalize a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to normalize\r\n * @returns {vec4} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n var len = x * x + y * y + z * z + w * w;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n out[3] = w * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec4's\r\n *\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n/**\r\n * Returns the cross-product of three vectors in a 4-dimensional space\r\n *\r\n * @param {ReadonlyVec4} result the receiving vector\r\n * @param {ReadonlyVec4} U the first vector\r\n * @param {ReadonlyVec4} V the second vector\r\n * @param {ReadonlyVec4} W the third vector\r\n * @returns {vec4} result\r\n */\n\nexport function cross(out, u, v, w) {\n var A = v[0] * w[1] - v[1] * w[0],\n B = v[0] * w[2] - v[2] * w[0],\n C = v[0] * w[3] - v[3] * w[0],\n D = v[1] * w[2] - v[2] * w[1],\n E = v[1] * w[3] - v[3] * w[1],\n F = v[2] * w[3] - v[3] * w[2];\n var G = u[0];\n var H = u[1];\n var I = u[2];\n var J = u[3];\n out[0] = H * F - I * E + J * D;\n out[1] = -(G * F) + I * C - J * B;\n out[2] = G * E - H * C + J * A;\n out[3] = -(G * D) + H * B - I * A;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec4} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n out[3] = aw + t * (b[3] - aw);\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec4} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0; // Marsaglia, George. Choosing a Point from the Surface of a\n // Sphere. Ann. Math. Statist. 43 (1972), no. 2, 645--646.\n // http://projecteuclid.org/euclid.aoms/1177692644;\n\n var v1, v2, v3, v4;\n var s1, s2;\n\n do {\n v1 = glMatrix.RANDOM() * 2 - 1;\n v2 = glMatrix.RANDOM() * 2 - 1;\n s1 = v1 * v1 + v2 * v2;\n } while (s1 >= 1);\n\n do {\n v3 = glMatrix.RANDOM() * 2 - 1;\n v4 = glMatrix.RANDOM() * 2 - 1;\n s2 = v3 * v3 + v4 * v4;\n } while (s2 >= 1);\n\n var d = Math.sqrt((1 - s1) / s2);\n out[0] = scale * v1;\n out[1] = scale * v2;\n out[2] = scale * v3 * d;\n out[3] = scale * v4 * d;\n return out;\n}\n/**\r\n * Transforms the vec4 with a mat4.\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the vector to transform\r\n * @param {ReadonlyMat4} m matrix to transform with\r\n * @returns {vec4} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n}\n/**\r\n * Transforms the vec4 with a quat\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the vector to transform\r\n * @param {ReadonlyQuat} q quaternion to transform with\r\n * @returns {vec4} out\r\n */\n\nexport function transformQuat(out, a, q) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3]; // calculate quat * vec\n\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n out[3] = a[3];\n return out;\n}\n/**\r\n * Set the components of a vec4 to zero\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @returns {vec4} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {ReadonlyVec4} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyVec4} a The first vector.\r\n * @param {ReadonlyVec4} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyVec4} a The first vector.\r\n * @param {ReadonlyVec4} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3));\n}\n/**\r\n * Alias for {@link vec4.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec4.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec4.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec4.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec4.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec4.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec4.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec4s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 4;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n vec[3] = a[i + 3];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n a[i + 3] = vec[3];\n }\n\n return a;\n };\n}();","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport log from '../utils/log';\nimport {createMat4, getCameraPosition, getFrustumPlanes} from '../utils/math-utils';\n\nimport {Matrix4, Vector3, equals} from 'math.gl';\nimport * as mat4 from 'gl-matrix/mat4';\n\nimport {\n getDistanceScales,\n getMeterZoom,\n lngLatToWorld,\n worldToLngLat,\n worldToPixels,\n pixelsToWorld\n} from '@math.gl/web-mercator';\n\nimport {PROJECTION_MODE} from '../lib/constants';\n\nconst DEGREES_TO_RADIANS = Math.PI / 180;\n\nconst IDENTITY = createMat4();\n\nconst ZERO_VECTOR = [0, 0, 0];\n\nconst DEFAULT_ZOOM = 0;\n\nconst DEFAULT_DISTANCE_SCALES = {\n unitsPerMeter: [1, 1, 1],\n metersPerUnit: [1, 1, 1]\n};\n\nexport default class Viewport {\n /**\n * @classdesc\n * Manages coordinate system transformations for deck.gl.\n *\n * Note: The Viewport is immutable in the sense that it only has accessors.\n * A new viewport instance should be created if any parameters have changed.\n */\n constructor(opts = {}) {\n const {\n id = null,\n // Window width/height in pixels (for pixel projection)\n x = 0,\n y = 0,\n width = 1,\n height = 1\n } = opts;\n\n this.id = id || this.constructor.displayName || 'viewport';\n\n this.x = x;\n this.y = y;\n // Silently allow apps to send in w,h = 0,0\n this.width = width || 1;\n this.height = height || 1;\n this._frustumPlanes = {};\n\n this._initViewMatrix(opts);\n this._initProjectionMatrix(opts);\n this._initPixelMatrices();\n\n // Bind methods for easy access\n this.equals = this.equals.bind(this);\n this.project = this.project.bind(this);\n this.unproject = this.unproject.bind(this);\n this.projectPosition = this.projectPosition.bind(this);\n this.unprojectPosition = this.unprojectPosition.bind(this);\n this.projectFlat = this.projectFlat.bind(this);\n this.unprojectFlat = this.unprojectFlat.bind(this);\n }\n\n get metersPerPixel() {\n return this.distanceScales.metersPerUnit[2] / this.scale;\n }\n\n get projectionMode() {\n if (this.isGeospatial) {\n return this.zoom < 12\n ? PROJECTION_MODE.WEB_MERCATOR\n : PROJECTION_MODE.WEB_MERCATOR_AUTO_OFFSET;\n }\n return PROJECTION_MODE.IDENTITY;\n }\n\n // Two viewports are equal if width and height are identical, and if\n // their view and projection matrices are (approximately) equal.\n equals(viewport) {\n if (!(viewport instanceof Viewport)) {\n return false;\n }\n if (this === viewport) {\n return true;\n }\n\n return (\n viewport.width === this.width &&\n viewport.height === this.height &&\n viewport.scale === this.scale &&\n equals(viewport.projectionMatrix, this.projectionMatrix) &&\n equals(viewport.viewMatrix, this.viewMatrix)\n );\n // TODO - check distance scales?\n }\n\n /**\n * Projects xyz (possibly latitude and longitude) to pixel coordinates in window\n * using viewport projection parameters\n * - [longitude, latitude] to [x, y]\n * - [longitude, latitude, Z] => [x, y, z]\n * Note: By default, returns top-left coordinates for canvas/SVG type render\n *\n * @param {Array} lngLatZ - [lng, lat] or [lng, lat, Z]\n * @param {Object} opts - options\n * @param {Object} opts.topLeft=true - Whether projected coords are top left\n * @return {Array} - [x, y] or [x, y, z] in top left coords\n */\n project(xyz, {topLeft = true} = {}) {\n const worldPosition = this.projectPosition(xyz);\n const coord = worldToPixels(worldPosition, this.pixelProjectionMatrix);\n\n const [x, y] = coord;\n const y2 = topLeft ? y : this.height - y;\n return xyz.length === 2 ? [x, y2] : [x, y2, coord[2]];\n }\n\n /**\n * Unproject pixel coordinates on screen onto world coordinates,\n * (possibly [lon, lat]) on map.\n * - [x, y] => [lng, lat]\n * - [x, y, z] => [lng, lat, Z]\n * @param {Array} xyz -\n * @param {Object} opts - options\n * @param {Object} opts.topLeft=true - Whether origin is top left\n * @return {Array|null} - [lng, lat, Z] or [X, Y, Z]\n */\n unproject(xyz, {topLeft = true, targetZ} = {}) {\n const [x, y, z] = xyz;\n\n const y2 = topLeft ? y : this.height - y;\n const targetZWorld = targetZ && targetZ * this.distanceScales.unitsPerMeter[2];\n const coord = pixelsToWorld([x, y2, z], this.pixelUnprojectionMatrix, targetZWorld);\n const [X, Y, Z] = this.unprojectPosition(coord);\n\n if (Number.isFinite(z)) {\n return [X, Y, Z];\n }\n return Number.isFinite(targetZ) ? [X, Y, targetZ] : [X, Y];\n }\n\n // NON_LINEAR PROJECTION HOOKS\n // Used for web meractor projection\n\n projectPosition(xyz) {\n const [X, Y] = this.projectFlat(xyz);\n const Z = (xyz[2] || 0) * this.distanceScales.unitsPerMeter[2];\n return [X, Y, Z];\n }\n\n unprojectPosition(xyz) {\n const [X, Y] = this.unprojectFlat(xyz);\n const Z = (xyz[2] || 0) * this.distanceScales.metersPerUnit[2];\n return [X, Y, Z];\n }\n\n /**\n * Project [lng,lat] on sphere onto [x,y] on 512*512 Mercator Zoom 0 tile.\n * Performs the nonlinear part of the web mercator projection.\n * Remaining projection is done with 4x4 matrices which also handles\n * perspective.\n * @param {Array} lngLat - [lng, lat] coordinates\n * Specifies a point on the sphere to project onto the map.\n * @return {Array} [x,y] coordinates.\n */\n projectFlat(xyz) {\n if (this.isGeospatial) {\n return lngLatToWorld(xyz);\n }\n return xyz;\n }\n\n /**\n * Unproject world point [x,y] on map onto {lat, lon} on sphere\n * @param {object|Vector} xy - object with {x,y} members\n * representing point on projected map plane\n * @return {GeoCoordinates} - object with {lat,lon} of point on sphere.\n * Has toArray method if you need a GeoJSON Array.\n * Per cartographic tradition, lat and lon are specified as degrees.\n */\n unprojectFlat(xyz) {\n if (this.isGeospatial) {\n return worldToLngLat(xyz);\n }\n return xyz;\n }\n\n getBounds(options = {}) {\n const unprojectOption = {targetZ: options.z || 0};\n\n const topLeft = this.unproject([0, 0], unprojectOption);\n const topRight = this.unproject([this.width, 0], unprojectOption);\n const bottomLeft = this.unproject([0, this.height], unprojectOption);\n const bottomRight = this.unproject([this.width, this.height], unprojectOption);\n\n return [\n Math.min(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]),\n Math.min(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]),\n Math.max(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]),\n Math.max(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1])\n ];\n }\n\n getDistanceScales(coordinateOrigin = null) {\n if (coordinateOrigin) {\n return getDistanceScales({\n longitude: coordinateOrigin[0],\n latitude: coordinateOrigin[1],\n highPrecision: true\n });\n }\n return this.distanceScales;\n }\n\n containsPixel({x, y, width = 1, height = 1}) {\n return (\n x < this.x + this.width &&\n this.x < x + width &&\n y < this.y + this.height &&\n this.y < y + height\n );\n }\n\n // Extract frustum planes in common space\n getFrustumPlanes() {\n if (this._frustumPlanes.near) {\n return this._frustumPlanes;\n }\n\n Object.assign(this._frustumPlanes, getFrustumPlanes(this.viewProjectionMatrix));\n\n return this._frustumPlanes;\n }\n\n // EXPERIMENTAL METHODS\n\n /**\n * Needed by panning and linear transition\n * Pan the viewport to place a given world coordinate at screen point [x, y]\n *\n * @param {Array} coords - world coordinates\n * @param {Array} pixel - [x,y] coordinates on screen\n * @return {Object} props of the new viewport\n */\n panByPosition(coords, pixel) {\n return null;\n }\n\n getCameraPosition() {\n return this.cameraPosition;\n }\n\n getCameraDirection() {\n return this.cameraDirection;\n }\n\n getCameraUp() {\n return this.cameraUp;\n }\n\n // INTERNAL METHODS\n\n _createProjectionMatrix({orthographic, fovyRadians, aspect, focalDistance, near, far}) {\n return orthographic\n ? new Matrix4().orthographic({fovy: fovyRadians, aspect, focalDistance, near, far})\n : new Matrix4().perspective({fovy: fovyRadians, aspect, near, far});\n }\n\n /* eslint-disable complexity, max-statements */\n _initViewMatrix(opts) {\n const {\n // view matrix\n viewMatrix = IDENTITY,\n\n longitude = null, // Anchor: lng lat zoom makes viewport work w/ geospatial coordinate systems\n latitude = null,\n zoom = null,\n\n position = null, // Anchor position offset (in meters for geospatial viewports)\n modelMatrix = null, // A model matrix to be applied to position, to match the layer props API\n focalDistance = 1, // Only needed for orthographic views\n\n distanceScales = null\n } = opts;\n\n // Check if we have a geospatial anchor\n this.isGeospatial = Number.isFinite(latitude) && Number.isFinite(longitude);\n\n this.zoom = zoom;\n if (!Number.isFinite(this.zoom)) {\n this.zoom = this.isGeospatial\n ? getMeterZoom({latitude}) + Math.log2(focalDistance)\n : DEFAULT_ZOOM;\n }\n const scale = Math.pow(2, this.zoom);\n this.scale = scale;\n\n // Calculate distance scales if lng/lat/zoom are provided\n this.distanceScales = this.isGeospatial\n ? getDistanceScales({latitude, longitude})\n : distanceScales || DEFAULT_DISTANCE_SCALES;\n\n this.focalDistance = focalDistance;\n\n this.distanceScales.metersPerUnit = new Vector3(this.distanceScales.metersPerUnit);\n this.distanceScales.unitsPerMeter = new Vector3(this.distanceScales.unitsPerMeter);\n\n this.position = ZERO_VECTOR;\n this.meterOffset = ZERO_VECTOR;\n if (position) {\n // Apply model matrix if supplied\n this.position = position;\n this.modelMatrix = modelMatrix;\n this.meterOffset = modelMatrix ? modelMatrix.transformVector(position) : position;\n }\n\n if (this.isGeospatial) {\n // Determine camera center\n this.longitude = longitude;\n this.latitude = latitude;\n this.center = this._getCenterInWorld({longitude, latitude});\n } else {\n this.center = position ? this.projectPosition(position) : [0, 0, 0];\n }\n this.viewMatrixUncentered = viewMatrix;\n // Make a centered version of the matrix for projection modes without an offset\n this.viewMatrix = new Matrix4()\n // Apply the uncentered view matrix\n .multiplyRight(this.viewMatrixUncentered)\n // And center it\n .translate(new Vector3(this.center || ZERO_VECTOR).negate());\n }\n /* eslint-enable complexity, max-statements */\n\n _getCenterInWorld({longitude, latitude}) {\n const {meterOffset, distanceScales} = this;\n\n // Make a centered version of the matrix for projection modes without an offset\n const center = new Vector3(this.projectPosition([longitude, latitude, 0]));\n\n if (meterOffset) {\n const commonPosition = new Vector3(meterOffset)\n // Convert to pixels in current zoom\n .scale(distanceScales.unitsPerMeter);\n center.add(commonPosition);\n }\n\n return center;\n }\n\n _initProjectionMatrix(opts) {\n const {\n // Projection matrix\n projectionMatrix = null,\n\n // Projection matrix parameters, used if projectionMatrix not supplied\n orthographic = false,\n fovyRadians,\n fovy = 75,\n near = 0.1, // Distance of near clipping plane\n far = 1000, // Distance of far clipping plane\n focalDistance = 1\n } = opts;\n\n this.projectionMatrix =\n projectionMatrix ||\n this._createProjectionMatrix({\n orthographic,\n fovyRadians: fovyRadians || fovy * DEGREES_TO_RADIANS,\n aspect: this.width / this.height,\n focalDistance,\n near,\n far\n });\n }\n\n _initPixelMatrices() {\n // Note: As usual, matrix operations should be applied in \"reverse\" order\n // since vectors will be multiplied in from the right during transformation\n const vpm = createMat4();\n mat4.multiply(vpm, vpm, this.projectionMatrix);\n mat4.multiply(vpm, vpm, this.viewMatrix);\n this.viewProjectionMatrix = vpm;\n\n // console.log('VPM', this.viewMatrix, this.projectionMatrix, this.viewProjectionMatrix);\n\n // Calculate inverse view matrix\n this.viewMatrixInverse = mat4.invert([], this.viewMatrix) || this.viewMatrix;\n\n // Decompose camera parameters\n this.cameraPosition = getCameraPosition(this.viewMatrixInverse);\n\n /*\n * Builds matrices that converts preprojected lngLats to screen pixels\n * and vice versa.\n * Note: Currently returns bottom-left coordinates!\n * Note: Starts with the GL projection matrix and adds steps to the\n * scale and translate that matrix onto the window.\n * Note: WebGL controls clip space to screen projection with gl.viewport\n * and does not need this step.\n */\n\n // matrix for conversion from world location to screen (pixel) coordinates\n const viewportMatrix = createMat4(); // matrix from NDC to viewport.\n const pixelProjectionMatrix = createMat4(); // matrix from world space to viewport.\n mat4.scale(viewportMatrix, viewportMatrix, [this.width / 2, -this.height / 2, 1]);\n mat4.translate(viewportMatrix, viewportMatrix, [1, -1, 0]);\n mat4.multiply(pixelProjectionMatrix, viewportMatrix, this.viewProjectionMatrix);\n this.pixelProjectionMatrix = pixelProjectionMatrix;\n this.viewportMatrix = viewportMatrix;\n\n this.pixelUnprojectionMatrix = mat4.invert(createMat4(), this.pixelProjectionMatrix);\n if (!this.pixelUnprojectionMatrix) {\n log.warn('Pixel project matrix not invertible')();\n // throw new Error('Pixel project matrix not invertible');\n }\n }\n}\n\nViewport.displayName = 'Viewport';\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};","import destination from '@turf/destination';\nimport bearing from '@turf/bearing';\nimport pointToLineDistance from '@turf/point-to-line-distance';\nimport { point } from '@turf/helpers';\nimport {\n Position,\n Point,\n LineString,\n FeatureOf,\n FeatureWithProps,\n Viewport,\n} from '@nebula.gl/edit-modes';\nimport WebMercatorViewport from 'viewport-mercator-project';\n\n// TODO edit-modes: delete and use edit-modes/utils instead\n\nexport type NearestPointType = FeatureWithProps<Point, { dist: number; index: number }>;\n\nexport function toDeckColor(\n color?: [number, number, number, number] | number,\n defaultColor: [number, number, number, number] = [255, 0, 0, 255]\n): [number, number, number, number] {\n if (!Array.isArray(color)) {\n return defaultColor;\n }\n return [color[0] * 255, color[1] * 255, color[2] * 255, color[3] * 255];\n}\n\n//\n// a GeoJSON helper function that calls the provided function with\n// an argument that is the most deeply-nested array having elements\n// that are arrays of primitives as an argument, e.g.\n//\n// {\n// \"type\": \"MultiPolygon\",\n// \"coordinates\": [\n// [\n// [[30, 20], [45, 40], [10, 40], [30, 20]]\n// ],\n// [\n// [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]\n// ]\n// ]\n// }\n//\n// the function would be called on:\n//\n// [[30, 20], [45, 40], [10, 40], [30, 20]]\n//\n// and\n//\n// [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]\n//\nexport function recursivelyTraverseNestedArrays(\n array: Array<any>,\n prefix: Array<number>,\n fn: Function\n) {\n if (!Array.isArray(array[0])) {\n return true;\n }\n for (let i = 0; i < array.length; i++) {\n if (recursivelyTraverseNestedArrays(array[i], [...prefix, i], fn)) {\n fn(array, prefix);\n break;\n }\n }\n return false;\n}\n\nexport function generatePointsParallelToLinePoints(\n p1: Position,\n p2: Position,\n groundCoords: Position\n): Position[] {\n const lineString: LineString = {\n type: 'LineString',\n coordinates: [p1, p2],\n };\n const pt = point(groundCoords);\n const ddistance = pointToLineDistance(pt, lineString);\n const lineBearing = bearing(p1, p2);\n\n // Check if current point is to the left or right of line\n // Line from A=(x1,y1) to B=(x2,y2) a point P=(x,y)\n // then (x−x1)(y2−y1)−(y−y1)(x2−x1)\n const isPointToLeftOfLine =\n (groundCoords[0] - p1[0]) * (p2[1] - p1[1]) - (groundCoords[1] - p1[1]) * (p2[0] - p1[0]);\n\n // Bearing to draw perpendicular to the line string\n const orthogonalBearing = isPointToLeftOfLine < 0 ? lineBearing - 90 : lineBearing - 270;\n\n // Get coordinates for the point p3 and p4 which are perpendicular to the lineString\n // Add the distance as the current position moves away from the lineString\n const p3 = destination(p2, ddistance, orthogonalBearing);\n const p4 = destination(p1, ddistance, orthogonalBearing);\n //@ts-ignore\n return [p3.geometry.coordinates, p4.geometry.coordinates];\n}\n\nexport function distance2d(x1: number, y1: number, x2: number, y2: number): number {\n const dx = x1 - x2;\n const dy = y1 - y2;\n return Math.sqrt(dx * dx + dy * dy);\n}\n\nexport function mix(a: number, b: number, ratio: number): number {\n return b * ratio + a * (1 - ratio);\n}\n\nexport function nearestPointOnProjectedLine(\n line: FeatureOf<LineString>,\n inPoint: FeatureOf<Point>,\n viewport: Viewport\n): NearestPointType {\n const wmViewport = new WebMercatorViewport(viewport);\n // Project the line to viewport, then find the nearest point\n const coordinates: Array<Array<number>> = line.geometry.coordinates as any;\n const projectedCoords = coordinates.map(([x, y, z = 0]) => wmViewport.project([x, y, z]));\n //@ts-ignore\n const [x, y] = wmViewport.project(inPoint.geometry.coordinates);\n // console.log('projectedCoords', JSON.stringify(projectedCoords));\n\n let minDistance = Infinity;\n let minPointInfo = {};\n\n projectedCoords.forEach(([x2, y2], index) => {\n if (index === 0) {\n return;\n }\n\n const [x1, y1] = projectedCoords[index - 1];\n\n // line from projectedCoords[index - 1] to projectedCoords[index]\n // convert to Ax + By + C = 0\n const A = y1 - y2;\n const B = x2 - x1;\n const C = x1 * y2 - x2 * y1;\n\n // https://en.wikipedia.org/wiki/Distance_from_a_point_to_a_line\n const div = A * A + B * B;\n const distance = Math.abs(A * x + B * y + C) / Math.sqrt(div);\n\n // TODO: Check if inside bounds\n\n if (distance < minDistance) {\n minDistance = distance;\n minPointInfo = {\n index,\n x0: (B * (B * x - A * y) - A * C) / div,\n y0: (A * (-B * x + A * y) - B * C) / div,\n };\n }\n });\n //@ts-ignore\n const { index, x0, y0 } = minPointInfo;\n const [x1, y1, z1 = 0] = projectedCoords[index - 1];\n const [x2, y2, z2 = 0] = projectedCoords[index];\n\n // calculate what ratio of the line we are on to find the proper z\n const lineLength = distance2d(x1, y1, x2, y2);\n const startToPointLength = distance2d(x1, y1, x0, y0);\n const ratio = startToPointLength / lineLength;\n const z0 = mix(z1, z2, ratio);\n\n return {\n type: 'Feature',\n geometry: {\n type: 'Point',\n coordinates: wmViewport.unproject([x0, y0, z0]),\n },\n properties: {\n // TODO: calculate the distance in proper units\n dist: minDistance,\n index: index - 1,\n },\n };\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport isInBrowser from 'is-in-browser';\nimport warning from 'tiny-warning';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n\n return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n\n return null;\n}\n\nvar join = function join(value, by) {\n var result = '';\n\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n\n return result;\n};\n/**\n * Converts JSS array value to a CSS string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\n\nvar toCssValue = function toCssValue(value, ignoreImportant) {\n if (ignoreImportant === void 0) {\n ignoreImportant = false;\n }\n\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n};\n\nfunction getWhitespaceSymbols(options) {\n if (options && options.format === false) {\n return {\n linebreak: '',\n space: ''\n };\n }\n\n return {\n linebreak: '\\n',\n space: ' '\n };\n}\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\n\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n\n if (options.format === false) {\n indent = -Infinity;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak,\n space = _getWhitespaceSymbols.space;\n\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += linebreak;\n result += indentStr(prop + \":\" + space + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += linebreak;\n result += indentStr(_prop + \":\" + space + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += linebreak;\n result += indentStr(_prop2 + \":\" + space + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\" + linebreak + result + linebreak;\n return indentStr(\"\" + selector + space + \"{\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = (function (str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n});\n\nvar BaseStyleRule =\n/*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.isProcessed = false;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = name in this.style; // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n\n return this;\n };\n\n return BaseStyleRule;\n}();\nvar StyleRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (key[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(key, style, options);\n }\n};\n\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule =\n/*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.isProcessed = false;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\" + linebreak + children + linebreak + \"}\" : '';\n };\n\n return ConditionalRule;\n}();\nvar keyRegExp = /@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\n\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule =\n/*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.isProcessed = false;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\" + linebreak + children + linebreak;\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar pluginKeyframesRule = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\n return _BaseStyleRule.apply(this, arguments) || this;\n }\n\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule =\n/*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += linebreak;\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule =\n/*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule =\n/*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.isProcessed = false;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\n\nvar plugins = [pluginStyleRule, pluginConditionalRule, pluginKeyframesRule, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\n\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList =\n/*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Get a rule.\n */\n ;\n\n _proto.get = function get(name) {\n return this.map[name];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0];\n data = arguments.length <= 1 ? undefined : arguments[1];\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0];\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.map[name], data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var style = rule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== rule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(rule.style, rule, sheet); // Update and add props.\n\n for (var prop in rule.style) {\n var nextValue = rule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n rule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = rule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n rule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += linebreak;\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name.\n */\n ;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n\n if (!rule || // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry =\n/*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = {};\n }\n\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access all instances in one place.\n */\n\nvar SheetsRegistry =\n/*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += linebreak;\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass(SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar sheets = new SheetsRegistry();\n\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\n\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\n\nvar maxRules = 1e10;\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n\n var generateId = function generateId(rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n\n return generateId;\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\n\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\n\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n/**\n * Set a style property.\n */\n\n\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value, true);\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important');\n return true;\n }\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n cssRule.style.setProperty(prop, cssValue);\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n};\n/**\n * Remove a style property.\n */\n\n\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n};\n/**\n * Set the selector.\n */\n\n\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n/**\n * Find a node before which we can insert the sheet.\n */\n\n\nfunction findPrevNode(options) {\n var registry = sheets.registry;\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n container.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n container.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n\n return index;\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer =\n/*#__PURE__*/\nfunction () {\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.hasInsertedRules = false;\n this.cssRules = [];\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n\n if (latestNativeParent === false) {\n return false;\n }\n\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules[index] = cssRule;\n }\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n *\n * Only used for some old browsers because they can't set a selector.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss =\n/*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.8.2\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n sheets.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style);\n }\n\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n\n var rule = createRule(name, style, ruleOptions);\n\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n\nvar createJss = function createJss(options) {\n return new Jss(options);\n};\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n * Used in react-jss.\n */\n\nvar SheetsManager =\n/*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n\n/**\n* Export a constant indicating if this browser has CSSTOM support.\n* https://developers.google.com/web/updates/2018/03/cssom\n*/\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\nvar index = createJss();\n\nexport default index;\nexport { RuleList, SheetsManager, SheetsRegistry, createJss as create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, sheets, toCssValue };\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/*\n * Helper function for padArray\n */\nfunction padArrayChunk({source, target, start = 0, end, size, getData}) {\n end = end || target.length;\n\n const sourceLength = source.length;\n const targetLength = end - start;\n\n if (sourceLength > targetLength) {\n target.set(source.subarray(0, targetLength), start);\n return;\n }\n\n target.set(source, start);\n\n if (!getData) {\n return;\n }\n\n // source is not large enough to fill target space, call `getData` to get filler data\n let i = sourceLength;\n while (i < targetLength) {\n const datum = getData(i, source);\n for (let j = 0; j < size; j++) {\n target[start + i] = datum[j] || 0;\n i++;\n }\n }\n}\n\n/*\n * The padArray function stretches a source array to the size of a target array.\n The arrays can have internal structures (like the attributes of PathLayer and\n SolidPolygonLayer), defined by the optional sourceStartIndices and targetStartIndices parameters.\n If the target array is larger, the getData callback is used to fill in the blanks.\n * @params {TypedArray} source - original data\n * @params {TypedArray} target - output data\n * @params {Number} size - length per datum\n * @params {Function} getData - callback to get new data when source is short\n * @params {Array<Number>} [sourceStartIndices] - subdivision of the original data in [object0StartIndex, object1StartIndex, ...]\n * @params {Array<Number>} [targetStartIndices] - subdivision of the output data in [object0StartIndex, object1StartIndex, ...]\n */\nexport function padArray({source, target, size, getData, sourceStartIndices, targetStartIndices}) {\n if (!Array.isArray(targetStartIndices)) {\n // Flat arrays\n padArrayChunk({\n source,\n target,\n size,\n getData\n });\n return target;\n }\n\n // Arrays have internal structure\n let sourceIndex = 0;\n let targetIndex = 0;\n const getChunkData = getData && ((i, chunk) => getData(i + targetIndex, chunk));\n\n const n = Math.min(sourceStartIndices.length, targetStartIndices.length);\n\n for (let i = 1; i < n; i++) {\n const nextSourceIndex = sourceStartIndices[i] * size;\n const nextTargetIndex = targetStartIndices[i] * size;\n\n padArrayChunk({\n source: source.subarray(sourceIndex, nextSourceIndex),\n target,\n start: targetIndex,\n end: nextTargetIndex,\n size,\n getData: getChunkData\n });\n\n sourceIndex = nextSourceIndex;\n targetIndex = nextTargetIndex;\n }\n\n if (targetIndex < target.length) {\n padArrayChunk({\n source: [],\n target,\n start: targetIndex,\n size,\n getData: getChunkData\n });\n }\n\n return target;\n}\n","import {padArray} from '../../utils/array-utils';\n\nconst DEFAULT_TRANSITION_SETTINGS = {\n interpolation: {\n duration: 0,\n easing: t => t\n },\n spring: {\n stiffness: 0.05,\n damping: 0.5\n }\n};\n\nexport function normalizeTransitionSettings(userSettings, layerSettings) {\n if (!userSettings) {\n return null;\n }\n if (Number.isFinite(userSettings)) {\n userSettings = {duration: userSettings};\n }\n userSettings.type = userSettings.type || 'interpolation';\n return {\n ...DEFAULT_TRANSITION_SETTINGS[userSettings.type],\n ...layerSettings,\n ...userSettings\n };\n}\n\n// NOTE: NOT COPYING OVER OFFSET OR STRIDE HERE BECAUSE:\n// (1) WE DON'T SUPPORT INTERLEAVED BUFFERS FOR TRANSITIONS\n// (2) BUFFERS WITH OFFSETS ALWAYS CONTAIN VALUES OF THE SAME SIZE\n// (3) THE OPERATIONS IN THE SHADER ARE PER-COMPONENT (addition and scaling)\nexport function getSourceBufferAttribute(gl, attribute) {\n // The Attribute we pass to Transform as a sourceBuffer must have {divisor: 0}\n // so we create a copy of the attribute (with divisor=0) to use when running\n // transform feedback\n const buffer = attribute.getBuffer();\n if (buffer) {\n return [\n attribute.getBuffer(),\n {\n divisor: 0,\n size: attribute.size,\n normalized: attribute.settings.normalized\n }\n ];\n }\n // constant\n // don't pass normalized here because the `value` from a normalized attribute is\n // already normalized\n return attribute.value;\n}\n\nexport function getAttributeTypeFromSize(size) {\n switch (size) {\n case 1:\n return 'float';\n case 2:\n return 'vec2';\n case 3:\n return 'vec3';\n case 4:\n return 'vec4';\n default:\n throw new Error(`No defined attribute type for size \"${size}\"`);\n }\n}\n\nexport function cycleBuffers(buffers) {\n buffers.push(buffers.shift());\n}\n\nexport function getAttributeBufferLength(attribute, numInstances) {\n const {doublePrecision, settings, value, size} = attribute;\n const multiplier = doublePrecision && value instanceof Float64Array ? 2 : 1;\n return (settings.noAlloc ? value.length : numInstances * size) * multiplier;\n}\n\n// This helper is used when transitioning attributes from a set of values in one buffer layout\n// to a set of values in a different buffer layout. (Buffer layouts are used when attribute values\n// within a buffer should be grouped for drawElements, like the Polygon layer.) For example, a\n// buffer layout of [3, 4] might have data [A1, A2, A3, B1, B2, B3, B4]. If it needs to transition\n// to a buffer layout of [4, 2], it should produce a buffer, using the transition setting's `enter`\n// function, that looks like this: [A1, A2, A3, A4 (user `enter` fn), B1, B2, 0]. Note: the final\n// 0 in this buffer is because we never shrink buffers, only grow them, for performance reasons.\nexport function padBuffer({\n buffer,\n numInstances,\n attribute,\n fromLength,\n fromStartIndices,\n getData = x => x\n}) {\n // TODO: move the precisionMultiplier logic to the attribute when retrieving\n // its `size` and `elementOffset`?\n const precisionMultiplier =\n attribute.doublePrecision && attribute.value instanceof Float64Array ? 2 : 1;\n const size = attribute.size * precisionMultiplier;\n const byteOffset = attribute.byteOffset;\n const toStartIndices = attribute.startIndices;\n const hasStartIndices = fromStartIndices && toStartIndices;\n const toLength = getAttributeBufferLength(attribute, numInstances);\n const isConstant = attribute.state.constant;\n\n // check if buffer needs to be padded\n if (!hasStartIndices && fromLength >= toLength) {\n return;\n }\n\n const toData = isConstant\n ? attribute.value\n : attribute.getBuffer().getData({srcByteOffset: byteOffset});\n if (attribute.settings.normalized && !isConstant) {\n const getter = getData;\n getData = (value, chunk) => attribute._normalizeConstant(getter(value, chunk));\n }\n\n const getMissingData = isConstant\n ? (i, chunk) => getData(toData, chunk)\n : (i, chunk) => getData(toData.subarray(i, i + size), chunk);\n\n const source = buffer.getData({length: fromLength});\n const data = new Float32Array(toLength);\n padArray({\n source,\n target: data,\n sourceStartIndices: fromStartIndices,\n targetStartIndices: toStartIndices,\n size,\n getData: getMissingData\n });\n\n // TODO: support offset in buffer.setData?\n if (buffer.byteLength < data.byteLength + byteOffset) {\n buffer.reallocate(data.byteLength + byteOffset);\n }\n buffer.subData({data, offset: byteOffset});\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar helpers_1 = require(\"@turf/helpers\");\r\n/**\r\n * Unwrap a coordinate from a Point Feature, Geometry or a single coordinate.\r\n *\r\n * @name getCoord\r\n * @param {Array<number>|Geometry<Point>|Feature<Point>} coord GeoJSON Point or an Array of numbers\r\n * @returns {Array<number>} coordinates\r\n * @example\r\n * var pt = turf.point([10, 10]);\r\n *\r\n * var coord = turf.getCoord(pt);\r\n * //= [10, 10]\r\n */\r\nfunction getCoord(coord) {\r\n if (!coord) {\r\n throw new Error(\"coord is required\");\r\n }\r\n if (!Array.isArray(coord)) {\r\n if (coord.type === \"Feature\" && coord.geometry !== null && coord.geometry.type === \"Point\") {\r\n return coord.geometry.coordinates;\r\n }\r\n if (coord.type === \"Point\") {\r\n return coord.coordinates;\r\n }\r\n }\r\n if (Array.isArray(coord) && coord.length >= 2 && !Array.isArray(coord[0]) && !Array.isArray(coord[1])) {\r\n return coord;\r\n }\r\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\r\n}\r\nexports.getCoord = getCoord;\r\n/**\r\n * Unwrap coordinates from a Feature, Geometry Object or an Array\r\n *\r\n * @name getCoords\r\n * @param {Array<any>|Geometry|Feature} coords Feature, Geometry Object or an Array\r\n * @returns {Array<any>} coordinates\r\n * @example\r\n * var poly = turf.polygon([[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]);\r\n *\r\n * var coords = turf.getCoords(poly);\r\n * //= [[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]\r\n */\r\nfunction getCoords(coords) {\r\n if (Array.isArray(coords)) {\r\n return coords;\r\n }\r\n // Feature\r\n if (coords.type === \"Feature\") {\r\n if (coords.geometry !== null) {\r\n return coords.geometry.coordinates;\r\n }\r\n }\r\n else {\r\n // Geometry\r\n if (coords.coordinates) {\r\n return coords.coordinates;\r\n }\r\n }\r\n throw new Error(\"coords must be GeoJSON Feature, Geometry Object or an Array\");\r\n}\r\nexports.getCoords = getCoords;\r\n/**\r\n * Checks if coordinates contains a number\r\n *\r\n * @name containsNumber\r\n * @param {Array<any>} coordinates GeoJSON Coordinates\r\n * @returns {boolean} true if Array contains a number\r\n */\r\nfunction containsNumber(coordinates) {\r\n if (coordinates.length > 1 && helpers_1.isNumber(coordinates[0]) && helpers_1.isNumber(coordinates[1])) {\r\n return true;\r\n }\r\n if (Array.isArray(coordinates[0]) && coordinates[0].length) {\r\n return containsNumber(coordinates[0]);\r\n }\r\n throw new Error(\"coordinates must only contain numbers\");\r\n}\r\nexports.containsNumber = containsNumber;\r\n/**\r\n * Enforce expectations about types of GeoJSON objects for Turf.\r\n *\r\n * @name geojsonType\r\n * @param {GeoJSON} value any GeoJSON object\r\n * @param {string} type expected GeoJSON type\r\n * @param {string} name name of calling function\r\n * @throws {Error} if value is not the expected type.\r\n */\r\nfunction geojsonType(value, type, name) {\r\n if (!type || !name) {\r\n throw new Error(\"type and name required\");\r\n }\r\n if (!value || value.type !== type) {\r\n throw new Error(\"Invalid input to \" + name + \": must be a \" + type + \", given \" + value.type);\r\n }\r\n}\r\nexports.geojsonType = geojsonType;\r\n/**\r\n * Enforce expectations about types of {@link Feature} inputs for Turf.\r\n * Internally this uses {@link geojsonType} to judge geometry types.\r\n *\r\n * @name featureOf\r\n * @param {Feature} feature a feature with an expected geometry type\r\n * @param {string} type expected GeoJSON type\r\n * @param {string} name name of calling function\r\n * @throws {Error} error if value is not the expected type.\r\n */\r\nfunction featureOf(feature, type, name) {\r\n if (!feature) {\r\n throw new Error(\"No feature passed\");\r\n }\r\n if (!name) {\r\n throw new Error(\".featureOf() requires a name\");\r\n }\r\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\r\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\r\n }\r\n if (!feature.geometry || feature.geometry.type !== type) {\r\n throw new Error(\"Invalid input to \" + name + \": must be a \" + type + \", given \" + feature.geometry.type);\r\n }\r\n}\r\nexports.featureOf = featureOf;\r\n/**\r\n * Enforce expectations about types of {@link FeatureCollection} inputs for Turf.\r\n * Internally this uses {@link geojsonType} to judge geometry types.\r\n *\r\n * @name collectionOf\r\n * @param {FeatureCollection} featureCollection a FeatureCollection for which features will be judged\r\n * @param {string} type expected GeoJSON type\r\n * @param {string} name name of calling function\r\n * @throws {Error} if value is not the expected type.\r\n */\r\nfunction collectionOf(featureCollection, type, name) {\r\n if (!featureCollection) {\r\n throw new Error(\"No featureCollection passed\");\r\n }\r\n if (!name) {\r\n throw new Error(\".collectionOf() requires a name\");\r\n }\r\n if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\r\n throw new Error(\"Invalid input to \" + name + \", FeatureCollection required\");\r\n }\r\n for (var _i = 0, _a = featureCollection.features; _i < _a.length; _i++) {\r\n var feature = _a[_i];\r\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\r\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\r\n }\r\n if (!feature.geometry || feature.geometry.type !== type) {\r\n throw new Error(\"Invalid input to \" + name + \": must be a \" + type + \", given \" + feature.geometry.type);\r\n }\r\n }\r\n}\r\nexports.collectionOf = collectionOf;\r\n/**\r\n * Get Geometry from Feature or Geometry Object\r\n *\r\n * @param {Feature|Geometry} geojson GeoJSON Feature or Geometry Object\r\n * @returns {Geometry|null} GeoJSON Geometry Object\r\n * @throws {Error} if geojson is not a Feature or Geometry Object\r\n * @example\r\n * var point = {\r\n * \"type\": \"Feature\",\r\n * \"properties\": {},\r\n * \"geometry\": {\r\n * \"type\": \"Point\",\r\n * \"coordinates\": [110, 40]\r\n * }\r\n * }\r\n * var geom = turf.getGeom(point)\r\n * //={\"type\": \"Point\", \"coordinates\": [110, 40]}\r\n */\r\nfunction getGeom(geojson) {\r\n if (geojson.type === \"Feature\") {\r\n return geojson.geometry;\r\n }\r\n return geojson;\r\n}\r\nexports.getGeom = getGeom;\r\n/**\r\n * Get GeoJSON object's type, Geometry type is prioritize.\r\n *\r\n * @param {GeoJSON} geojson GeoJSON object\r\n * @param {string} [name=\"geojson\"] name of the variable to display in error message\r\n * @returns {string} GeoJSON type\r\n * @example\r\n * var point = {\r\n * \"type\": \"Feature\",\r\n * \"properties\": {},\r\n * \"geometry\": {\r\n * \"type\": \"Point\",\r\n * \"coordinates\": [110, 40]\r\n * }\r\n * }\r\n * var geom = turf.getType(point)\r\n * //=\"Point\"\r\n */\r\nfunction getType(geojson, name) {\r\n if (geojson.type === \"FeatureCollection\") {\r\n return \"FeatureCollection\";\r\n }\r\n if (geojson.type === \"GeometryCollection\") {\r\n return \"GeometryCollection\";\r\n }\r\n if (geojson.type === \"Feature\" && geojson.geometry !== null) {\r\n return geojson.geometry.type;\r\n }\r\n return geojson.type;\r\n}\r\nexports.getType = getType;\r\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","// Returns true if given object is empty, false otherwise.\nexport function isObjectEmpty(object) {\n for (const key in object) {\n return false;\n }\n return true;\n}\n\nexport function deepArrayEqual(x, y) {\n if (x === y) {\n return true;\n }\n const isArrayX = Array.isArray(x) || ArrayBuffer.isView(x);\n const isArrayY = Array.isArray(y) || ArrayBuffer.isView(y);\n if (isArrayX && isArrayY && x.length === y.length) {\n for (let i = 0; i < x.length; ++i) {\n if (x[i] !== y[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n","import {assert} from '../utils/assert';\n\n// Resolve a WebGL enumeration name (returns itself if already a number)\nexport function getKeyValue(gl, name) {\n // If not a string, return (assume number)\n if (typeof name !== 'string') {\n return name;\n }\n\n // If string converts to number, return number\n const number = Number(name);\n if (!isNaN(number)) {\n return number;\n }\n\n // Look up string, after removing any 'GL.' or 'gl.' prefix\n name = name.replace(/^.*\\./, '');\n const value = gl[name];\n assert(value !== undefined, `Accessing undefined constant GL.${name}`);\n return value;\n}\n\nexport function getKey(gl, value) {\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n\nexport function getKeyType(gl, value) {\n assert(value !== undefined, 'undefined key');\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n","/**\n * @license Complex.js v2.0.11 11/02/2016\n *\n * Copyright (c) 2016, Robert Eisele (robert@xarg.org)\n * Dual licensed under the MIT or GPL Version 2 licenses.\n **/\n\n/**\n *\n * This class allows the manipulation of complex numbers.\n * You can pass a complex number in different formats. Either as object, double, string or two integer parameters.\n *\n * Object form\n * { re: <real>, im: <imaginary> }\n * { arg: <angle>, abs: <radius> }\n * { phi: <angle>, r: <radius> }\n *\n * Array / Vector form\n * [ real, imaginary ]\n *\n * Double form\n * 99.3 - Single double value\n *\n * String form\n * '23.1337' - Simple real number\n * '15+3i' - a simple complex number\n * '3-i' - a simple complex number\n *\n * Example:\n *\n * var c = new Complex('99.3+8i');\n * c.mul({r: 3, i: 9}).div(4.9).sub(3, 2);\n *\n */\n\n(function(root) {\n\n 'use strict';\n\n var cosh = function(x) {\n return (Math.exp(x) + Math.exp(-x)) * 0.5;\n };\n\n var sinh = function(x) {\n return (Math.exp(x) - Math.exp(-x)) * 0.5;\n };\n\n /**\n * Calculates cos(x) - 1 using Taylor series if x is small.\n *\n * @param {number} x\n * @returns {number} cos(x) - 1\n */\n\n var cosm1 = function(x) {\n var limit = Math.PI/4;\n if (x < -limit || x > limit) {\n return (Math.cos(x) - 1.0);\n }\n\n var xx = x * x;\n return xx *\n (-0.5 + xx *\n (1/24 + xx *\n (-1/720 + xx *\n (1/40320 + xx *\n (-1/3628800 + xx *\n (1/4790014600 + xx *\n (-1/87178291200 + xx *\n (1/20922789888000)\n )\n )\n )\n )\n )\n )\n )\n };\n\n var hypot = function(x, y) {\n\n var a = Math.abs(x);\n var b = Math.abs(y);\n\n if (a < 3000 && b < 3000) {\n return Math.sqrt(a * a + b * b);\n }\n\n if (a < b) {\n a = b;\n b = x / y;\n } else {\n b = y / x;\n }\n return a * Math.sqrt(1 + b * b);\n };\n\n var parser_exit = function() {\n throw SyntaxError('Invalid Param');\n };\n\n /**\n * Calculates log(sqrt(a^2+b^2)) in a way to avoid overflows\n *\n * @param {number} a\n * @param {number} b\n * @returns {number}\n */\n function logHypot(a, b) {\n\n var _a = Math.abs(a);\n var _b = Math.abs(b);\n\n if (a === 0) {\n return Math.log(_b);\n }\n\n if (b === 0) {\n return Math.log(_a);\n }\n\n if (_a < 3000 && _b < 3000) {\n return Math.log(a * a + b * b) * 0.5;\n }\n\n /* I got 4 ideas to compute this property without overflow:\n *\n * Testing 1000000 times with random samples for a,b ∈ [1, 1000000000] against a big decimal library to get an error estimate\n *\n * 1. Only eliminate the square root: (OVERALL ERROR: 3.9122483030951116e-11)\n\n Math.log(a * a + b * b) / 2\n\n *\n *\n * 2. Try to use the non-overflowing pythagoras: (OVERALL ERROR: 8.889760039210159e-10)\n\n var fn = function(a, b) {\n a = Math.abs(a);\n b = Math.abs(b);\n var t = Math.min(a, b);\n a = Math.max(a, b);\n t = t / a;\n\n return Math.log(a) + Math.log(1 + t * t) / 2;\n };\n\n * 3. Abuse the identity cos(atan(y/x) = x / sqrt(x^2+y^2): (OVERALL ERROR: 3.4780178737037204e-10)\n\n Math.log(a / Math.cos(Math.atan2(b, a)))\n\n * 4. Use 3. and apply log rules: (OVERALL ERROR: 1.2014087502620896e-9)\n\n Math.log(a) - Math.log(Math.cos(Math.atan2(b, a)))\n\n */\n\n return Math.log(a / Math.cos(Math.atan2(b, a)));\n }\n\n var parse = function(a, b) {\n\n var z = {'re': 0, 'im': 0};\n\n if (a === undefined || a === null) {\n z['re'] =\n z['im'] = 0;\n } else if (b !== undefined) {\n z['re'] = a;\n z['im'] = b;\n } else\n switch (typeof a) {\n\n case 'object':\n\n if ('im' in a && 're' in a) {\n z['re'] = a['re'];\n z['im'] = a['im'];\n } else if ('abs' in a && 'arg' in a) {\n if (!Number.isFinite(a['abs']) && Number.isFinite(a['arg'])) {\n return Complex['INFINITY'];\n }\n z['re'] = a['abs'] * Math.cos(a['arg']);\n z['im'] = a['abs'] * Math.sin(a['arg']);\n } else if ('r' in a && 'phi' in a) {\n if (!Number.isFinite(a['r']) && Number.isFinite(a['phi'])) {\n return Complex['INFINITY'];\n }\n z['re'] = a['r'] * Math.cos(a['phi']);\n z['im'] = a['r'] * Math.sin(a['phi']);\n } else if (a.length === 2) { // Quick array check\n z['re'] = a[0];\n z['im'] = a[1];\n } else {\n parser_exit();\n }\n break;\n\n case 'string':\n\n z['im'] = /* void */\n z['re'] = 0;\n\n var tokens = a.match(/\\d+\\.?\\d*e[+-]?\\d+|\\d+\\.?\\d*|\\.\\d+|./g);\n var plus = 1;\n var minus = 0;\n\n if (tokens === null) {\n parser_exit();\n }\n\n for (var i = 0; i < tokens.length; i++) {\n\n var c = tokens[i];\n\n if (c === ' ' || c === '\\t' || c === '\\n') {\n /* void */\n } else if (c === '+') {\n plus++;\n } else if (c === '-') {\n minus++;\n } else if (c === 'i' || c === 'I') {\n\n if (plus + minus === 0) {\n parser_exit();\n }\n\n if (tokens[i + 1] !== ' ' && !isNaN(tokens[i + 1])) {\n z['im'] += parseFloat((minus % 2 ? '-' : '') + tokens[i + 1]);\n i++;\n } else {\n z['im'] += parseFloat((minus % 2 ? '-' : '') + '1');\n }\n plus = minus = 0;\n\n } else {\n\n if (plus + minus === 0 || isNaN(c)) {\n parser_exit();\n }\n\n if (tokens[i + 1] === 'i' || tokens[i + 1] === 'I') {\n z['im'] += parseFloat((minus % 2 ? '-' : '') + c);\n i++;\n } else {\n z['re'] += parseFloat((minus % 2 ? '-' : '') + c);\n }\n plus = minus = 0;\n }\n }\n\n // Still something on the stack\n if (plus + minus > 0) {\n parser_exit();\n }\n break;\n\n case 'number':\n z['im'] = 0;\n z['re'] = a;\n break;\n\n default:\n parser_exit();\n }\n\n if (isNaN(z['re']) || isNaN(z['im'])) {\n // If a calculation is NaN, we treat it as NaN and don't throw\n //parser_exit();\n }\n\n return z;\n };\n\n /**\n * @constructor\n * @returns {Complex}\n */\n function Complex(a, b) {\n\n if (!(this instanceof Complex)) {\n return new Complex(a, b);\n }\n\n var z = parse(a, b);\n\n this['re'] = z['re'];\n this['im'] = z['im'];\n }\n\n Complex.prototype = {\n\n 're': 0,\n 'im': 0,\n\n /**\n * Calculates the sign of a complex number, which is a normalized complex\n *\n * @returns {Complex}\n */\n 'sign': function() {\n\n var abs = this['abs']();\n\n return new Complex(\n this['re'] / abs,\n this['im'] / abs);\n },\n\n /**\n * Adds two complex numbers\n *\n * @returns {Complex}\n */\n 'add': function(a, b) {\n\n var z = new Complex(a, b);\n\n // Infinity + Infinity = NaN\n if (this['isInfinite']() && z['isInfinite']()) {\n return Complex['NAN'];\n }\n\n // Infinity + z = Infinity { where z != Infinity }\n if (this['isInfinite']() || z['isInfinite']()) {\n return Complex['INFINITY'];\n }\n\n return new Complex(\n this['re'] + z['re'],\n this['im'] + z['im']);\n },\n\n /**\n * Subtracts two complex numbers\n *\n * @returns {Complex}\n */\n 'sub': function(a, b) {\n\n var z = new Complex(a, b);\n\n // Infinity - Infinity = NaN\n if (this['isInfinite']() && z['isInfinite']()) {\n return Complex['NAN'];\n }\n\n // Infinity - z = Infinity { where z != Infinity }\n if (this['isInfinite']() || z['isInfinite']()) {\n return Complex['INFINITY'];\n }\n\n return new Complex(\n this['re'] - z['re'],\n this['im'] - z['im']);\n },\n\n /**\n * Multiplies two complex numbers\n *\n * @returns {Complex}\n */\n 'mul': function(a, b) {\n\n var z = new Complex(a, b);\n\n // Infinity * 0 = NaN\n if ((this['isInfinite']() && z['isZero']()) || (this['isZero']() && z['isInfinite']())) {\n return Complex['NAN'];\n }\n\n // Infinity * z = Infinity { where z != 0 }\n if (this['isInfinite']() || z['isInfinite']()) {\n return Complex['INFINITY'];\n }\n\n // Short circuit for real values\n if (z['im'] === 0 && this['im'] === 0) {\n return new Complex(this['re'] * z['re'], 0);\n }\n\n return new Complex(\n this['re'] * z['re'] - this['im'] * z['im'],\n this['re'] * z['im'] + this['im'] * z['re']);\n },\n\n /**\n * Divides two complex numbers\n *\n * @returns {Complex}\n */\n 'div': function(a, b) {\n\n var z = new Complex(a, b);\n\n // 0 / 0 = NaN and Infinity / Infinity = NaN\n if ((this['isZero']() && z['isZero']()) || (this['isInfinite']() && z['isInfinite']())) {\n return Complex['NAN'];\n }\n\n // Infinity / 0 = Infinity\n if (this['isInfinite']() || z['isZero']()) {\n return Complex['INFINITY'];\n }\n\n // 0 / Infinity = 0\n if (this['isZero']() || z['isInfinite']()) {\n return Complex['ZERO'];\n }\n\n a = this['re'];\n b = this['im'];\n\n var c = z['re'];\n var d = z['im'];\n var t, x;\n\n if (0 === d) {\n // Divisor is real\n return new Complex(a / c, b / c);\n }\n\n if (Math.abs(c) < Math.abs(d)) {\n\n x = c / d;\n t = c * x + d;\n\n return new Complex(\n (a * x + b) / t,\n (b * x - a) / t);\n\n } else {\n\n x = d / c;\n t = d * x + c;\n\n return new Complex(\n (a + b * x) / t,\n (b - a * x) / t);\n }\n },\n\n /**\n * Calculate the power of two complex numbers\n *\n * @returns {Complex}\n */\n 'pow': function(a, b) {\n\n var z = new Complex(a, b);\n\n a = this['re'];\n b = this['im'];\n\n if (z['isZero']()) {\n return Complex['ONE'];\n }\n\n // If the exponent is real\n if (z['im'] === 0) {\n\n if (b === 0 && a >= 0) {\n\n return new Complex(Math.pow(a, z['re']), 0);\n\n } else if (a === 0) { // If base is fully imaginary\n\n switch ((z['re'] % 4 + 4) % 4) {\n case 0:\n return new Complex(Math.pow(b, z['re']), 0);\n case 1:\n return new Complex(0, Math.pow(b, z['re']));\n case 2:\n return new Complex(-Math.pow(b, z['re']), 0);\n case 3:\n return new Complex(0, -Math.pow(b, z['re']));\n }\n }\n }\n\n /* I couldn't find a good formula, so here is a derivation and optimization\n *\n * z_1^z_2 = (a + bi)^(c + di)\n * = exp((c + di) * log(a + bi)\n * = pow(a^2 + b^2, (c + di) / 2) * exp(i(c + di)atan2(b, a))\n * =>...\n * Re = (pow(a^2 + b^2, c / 2) * exp(-d * atan2(b, a))) * cos(d * log(a^2 + b^2) / 2 + c * atan2(b, a))\n * Im = (pow(a^2 + b^2, c / 2) * exp(-d * atan2(b, a))) * sin(d * log(a^2 + b^2) / 2 + c * atan2(b, a))\n *\n * =>...\n * Re = exp(c * log(sqrt(a^2 + b^2)) - d * atan2(b, a)) * cos(d * log(sqrt(a^2 + b^2)) + c * atan2(b, a))\n * Im = exp(c * log(sqrt(a^2 + b^2)) - d * atan2(b, a)) * sin(d * log(sqrt(a^2 + b^2)) + c * atan2(b, a))\n *\n * =>\n * Re = exp(c * logsq2 - d * arg(z_1)) * cos(d * logsq2 + c * arg(z_1))\n * Im = exp(c * logsq2 - d * arg(z_1)) * sin(d * logsq2 + c * arg(z_1))\n *\n */\n\n if (a === 0 && b === 0 && z['re'] > 0 && z['im'] >= 0) {\n return Complex['ZERO'];\n }\n\n var arg = Math.atan2(b, a);\n var loh = logHypot(a, b);\n\n a = Math.exp(z['re'] * loh - z['im'] * arg);\n b = z['im'] * loh + z['re'] * arg;\n return new Complex(\n a * Math.cos(b),\n a * Math.sin(b));\n },\n\n /**\n * Calculate the complex square root\n *\n * @returns {Complex}\n */\n 'sqrt': function() {\n\n var a = this['re'];\n var b = this['im'];\n var r = this['abs']();\n\n var re, im;\n\n if (a >= 0) {\n\n if (b === 0) {\n return new Complex(Math.sqrt(a), 0);\n }\n\n re = 0.5 * Math.sqrt(2.0 * (r + a));\n } else {\n re = Math.abs(b) / Math.sqrt(2 * (r - a));\n }\n\n if (a <= 0) {\n im = 0.5 * Math.sqrt(2.0 * (r - a));\n } else {\n im = Math.abs(b) / Math.sqrt(2 * (r + a));\n }\n\n return new Complex(re, b < 0 ? -im : im);\n },\n\n /**\n * Calculate the complex exponent\n *\n * @returns {Complex}\n */\n 'exp': function() {\n\n var tmp = Math.exp(this['re']);\n\n if (this['im'] === 0) {\n //return new Complex(tmp, 0);\n }\n return new Complex(\n tmp * Math.cos(this['im']),\n tmp * Math.sin(this['im']));\n },\n\n /**\n * Calculate the complex exponent and subtracts one.\n *\n * This may be more accurate than `Complex(x).exp().sub(1)` if\n * `x` is small.\n *\n * @returns {Complex}\n */\n 'expm1': function() {\n\n /**\n * exp(a + i*b) - 1\n = exp(a) * (cos(b) + j*sin(b)) - 1\n = expm1(a)*cos(b) + cosm1(b) + j*exp(a)*sin(b)\n */\n\n var a = this['re'];\n var b = this['im'];\n\n return new Complex(\n Math.expm1(a) * Math.cos(b) + cosm1(b),\n Math.exp(a) * Math.sin(b));\n },\n\n /**\n * Calculate the natural log\n *\n * @returns {Complex}\n */\n 'log': function() {\n\n var a = this['re'];\n var b = this['im'];\n\n if (b === 0 && a > 0) {\n //return new Complex(Math.log(a), 0);\n }\n\n return new Complex(\n logHypot(a, b),\n Math.atan2(b, a));\n },\n\n /**\n * Calculate the magnitude of the complex number\n *\n * @returns {number}\n */\n 'abs': function() {\n\n return hypot(this['re'], this['im']);\n },\n\n /**\n * Calculate the angle of the complex number\n *\n * @returns {number}\n */\n 'arg': function() {\n\n return Math.atan2(this['im'], this['re']);\n },\n\n /**\n * Calculate the sine of the complex number\n *\n * @returns {Complex}\n */\n 'sin': function() {\n\n // sin(c) = (e^b - e^(-b)) / (2i)\n\n var a = this['re'];\n var b = this['im'];\n\n return new Complex(\n Math.sin(a) * cosh(b),\n Math.cos(a) * sinh(b));\n },\n\n /**\n * Calculate the cosine\n *\n * @returns {Complex}\n */\n 'cos': function() {\n\n // cos(z) = (e^b + e^(-b)) / 2\n\n var a = this['re'];\n var b = this['im'];\n\n return new Complex(\n Math.cos(a) * cosh(b),\n -Math.sin(a) * sinh(b));\n },\n\n /**\n * Calculate the tangent\n *\n * @returns {Complex}\n */\n 'tan': function() {\n\n // tan(c) = (e^(ci) - e^(-ci)) / (i(e^(ci) + e^(-ci)))\n\n var a = 2 * this['re'];\n var b = 2 * this['im'];\n var d = Math.cos(a) + cosh(b);\n\n return new Complex(\n Math.sin(a) / d,\n sinh(b) / d);\n },\n\n /**\n * Calculate the cotangent\n *\n * @returns {Complex}\n */\n 'cot': function() {\n\n // cot(c) = i(e^(ci) + e^(-ci)) / (e^(ci) - e^(-ci))\n\n var a = 2 * this['re'];\n var b = 2 * this['im'];\n var d = Math.cos(a) - cosh(b);\n\n return new Complex(\n -Math.sin(a) / d,\n sinh(b) / d);\n },\n\n /**\n * Calculate the secant\n *\n * @returns {Complex}\n */\n 'sec': function() {\n\n // sec(c) = 2 / (e^(ci) + e^(-ci))\n\n var a = this['re'];\n var b = this['im'];\n var d = 0.5 * cosh(2 * b) + 0.5 * Math.cos(2 * a);\n\n return new Complex(\n Math.cos(a) * cosh(b) / d,\n Math.sin(a) * sinh(b) / d);\n },\n\n /**\n * Calculate the cosecans\n *\n * @returns {Complex}\n */\n 'csc': function() {\n\n // csc(c) = 2i / (e^(ci) - e^(-ci))\n\n var a = this['re'];\n var b = this['im'];\n var d = 0.5 * cosh(2 * b) - 0.5 * Math.cos(2 * a);\n\n return new Complex(\n Math.sin(a) * cosh(b) / d,\n -Math.cos(a) * sinh(b) / d);\n },\n\n /**\n * Calculate the complex arcus sinus\n *\n * @returns {Complex}\n */\n 'asin': function() {\n\n // asin(c) = -i * log(ci + sqrt(1 - c^2))\n\n var a = this['re'];\n var b = this['im'];\n\n var t1 = new Complex(\n b * b - a * a + 1,\n -2 * a * b)['sqrt']();\n\n var t2 = new Complex(\n t1['re'] - b,\n t1['im'] + a)['log']();\n\n return new Complex(t2['im'], -t2['re']);\n },\n\n /**\n * Calculate the complex arcus cosinus\n *\n * @returns {Complex}\n */\n 'acos': function() {\n\n // acos(c) = i * log(c - i * sqrt(1 - c^2))\n\n var a = this['re'];\n var b = this['im'];\n\n var t1 = new Complex(\n b * b - a * a + 1,\n -2 * a * b)['sqrt']();\n\n var t2 = new Complex(\n t1['re'] - b,\n t1['im'] + a)['log']();\n\n return new Complex(Math.PI / 2 - t2['im'], t2['re']);\n },\n\n /**\n * Calculate the complex arcus tangent\n *\n * @returns {Complex}\n */\n 'atan': function() {\n\n // atan(c) = i / 2 log((i + x) / (i - x))\n\n var a = this['re'];\n var b = this['im'];\n\n if (a === 0) {\n\n if (b === 1) {\n return new Complex(0, Infinity);\n }\n\n if (b === -1) {\n return new Complex(0, -Infinity);\n }\n }\n\n var d = a * a + (1.0 - b) * (1.0 - b);\n\n var t1 = new Complex(\n (1 - b * b - a * a) / d,\n -2 * a / d).log();\n\n return new Complex(-0.5 * t1['im'], 0.5 * t1['re']);\n },\n\n /**\n * Calculate the complex arcus cotangent\n *\n * @returns {Complex}\n */\n 'acot': function() {\n\n // acot(c) = i / 2 log((c - i) / (c + i))\n\n var a = this['re'];\n var b = this['im'];\n\n if (b === 0) {\n return new Complex(Math.atan2(1, a), 0);\n }\n\n var d = a * a + b * b;\n return (d !== 0)\n ? new Complex(\n a / d,\n -b / d).atan()\n : new Complex(\n (a !== 0) ? a / 0 : 0,\n (b !== 0) ? -b / 0 : 0).atan();\n },\n\n /**\n * Calculate the complex arcus secant\n *\n * @returns {Complex}\n */\n 'asec': function() {\n\n // asec(c) = -i * log(1 / c + sqrt(1 - i / c^2))\n\n var a = this['re'];\n var b = this['im'];\n\n if (a === 0 && b === 0) {\n return new Complex(0, Infinity);\n }\n\n var d = a * a + b * b;\n return (d !== 0)\n ? new Complex(\n a / d,\n -b / d).acos()\n : new Complex(\n (a !== 0) ? a / 0 : 0,\n (b !== 0) ? -b / 0 : 0).acos();\n },\n\n /**\n * Calculate the complex arcus cosecans\n *\n * @returns {Complex}\n */\n 'acsc': function() {\n\n // acsc(c) = -i * log(i / c + sqrt(1 - 1 / c^2))\n\n var a = this['re'];\n var b = this['im'];\n\n if (a === 0 && b === 0) {\n return new Complex(Math.PI / 2, Infinity);\n }\n\n var d = a * a + b * b;\n return (d !== 0)\n ? new Complex(\n a / d,\n -b / d).asin()\n : new Complex(\n (a !== 0) ? a / 0 : 0,\n (b !== 0) ? -b / 0 : 0).asin();\n },\n\n /**\n * Calculate the complex sinh\n *\n * @returns {Complex}\n */\n 'sinh': function() {\n\n // sinh(c) = (e^c - e^-c) / 2\n\n var a = this['re'];\n var b = this['im'];\n\n return new Complex(\n sinh(a) * Math.cos(b),\n cosh(a) * Math.sin(b));\n },\n\n /**\n * Calculate the complex cosh\n *\n * @returns {Complex}\n */\n 'cosh': function() {\n\n // cosh(c) = (e^c + e^-c) / 2\n\n var a = this['re'];\n var b = this['im'];\n\n return new Complex(\n cosh(a) * Math.cos(b),\n sinh(a) * Math.sin(b));\n },\n\n /**\n * Calculate the complex tanh\n *\n * @returns {Complex}\n */\n 'tanh': function() {\n\n // tanh(c) = (e^c - e^-c) / (e^c + e^-c)\n\n var a = 2 * this['re'];\n var b = 2 * this['im'];\n var d = cosh(a) + Math.cos(b);\n\n return new Complex(\n sinh(a) / d,\n Math.sin(b) / d);\n },\n\n /**\n * Calculate the complex coth\n *\n * @returns {Complex}\n */\n 'coth': function() {\n\n // coth(c) = (e^c + e^-c) / (e^c - e^-c)\n\n var a = 2 * this['re'];\n var b = 2 * this['im'];\n var d = cosh(a) - Math.cos(b);\n\n return new Complex(\n sinh(a) / d,\n -Math.sin(b) / d);\n },\n\n /**\n * Calculate the complex coth\n *\n * @returns {Complex}\n */\n 'csch': function() {\n\n // csch(c) = 2 / (e^c - e^-c)\n\n var a = this['re'];\n var b = this['im'];\n var d = Math.cos(2 * b) - cosh(2 * a);\n\n return new Complex(\n -2 * sinh(a) * Math.cos(b) / d,\n 2 * cosh(a) * Math.sin(b) / d);\n },\n\n /**\n * Calculate the complex sech\n *\n * @returns {Complex}\n */\n 'sech': function() {\n\n // sech(c) = 2 / (e^c + e^-c)\n\n var a = this['re'];\n var b = this['im'];\n var d = Math.cos(2 * b) + cosh(2 * a);\n\n return new Complex(\n 2 * cosh(a) * Math.cos(b) / d,\n -2 * sinh(a) * Math.sin(b) / d);\n },\n\n /**\n * Calculate the complex asinh\n *\n * @returns {Complex}\n */\n 'asinh': function() {\n\n // asinh(c) = log(c + sqrt(c^2 + 1))\n\n var tmp = this['im'];\n this['im'] = -this['re'];\n this['re'] = tmp;\n var res = this['asin']();\n\n this['re'] = -this['im'];\n this['im'] = tmp;\n tmp = res['re'];\n\n res['re'] = -res['im'];\n res['im'] = tmp;\n return res;\n },\n\n /**\n * Calculate the complex asinh\n *\n * @returns {Complex}\n */\n 'acosh': function() {\n\n // acosh(c) = log(c + sqrt(c^2 - 1))\n\n var res = this['acos']();\n if (res['im'] <= 0) {\n var tmp = res['re'];\n res['re'] = -res['im'];\n res['im'] = tmp;\n } else {\n var tmp = res['im'];\n res['im'] = -res['re'];\n res['re'] = tmp;\n }\n return res;\n },\n\n /**\n * Calculate the complex atanh\n *\n * @returns {Complex}\n */\n 'atanh': function() {\n\n // atanh(c) = log((1+c) / (1-c)) / 2\n\n var a = this['re'];\n var b = this['im'];\n\n var noIM = a > 1 && b === 0;\n var oneMinus = 1 - a;\n var onePlus = 1 + a;\n var d = oneMinus * oneMinus + b * b;\n\n var x = (d !== 0)\n ? new Complex(\n (onePlus * oneMinus - b * b) / d,\n (b * oneMinus + onePlus * b) / d)\n : new Complex(\n (a !== -1) ? (a / 0) : 0,\n (b !== 0) ? (b / 0) : 0);\n\n var temp = x['re'];\n x['re'] = logHypot(x['re'], x['im']) / 2;\n x['im'] = Math.atan2(x['im'], temp) / 2;\n if (noIM) {\n x['im'] = -x['im'];\n }\n return x;\n },\n\n /**\n * Calculate the complex acoth\n *\n * @returns {Complex}\n */\n 'acoth': function() {\n\n // acoth(c) = log((c+1) / (c-1)) / 2\n\n var a = this['re'];\n var b = this['im'];\n\n if (a === 0 && b === 0) {\n return new Complex(0, Math.PI / 2);\n }\n\n var d = a * a + b * b;\n return (d !== 0)\n ? new Complex(\n a / d,\n -b / d).atanh()\n : new Complex(\n (a !== 0) ? a / 0 : 0,\n (b !== 0) ? -b / 0 : 0).atanh();\n },\n\n /**\n * Calculate the complex acsch\n *\n * @returns {Complex}\n */\n 'acsch': function() {\n\n // acsch(c) = log((1+sqrt(1+c^2))/c)\n\n var a = this['re'];\n var b = this['im'];\n\n if (b === 0) {\n\n return new Complex(\n (a !== 0)\n ? Math.log(a + Math.sqrt(a * a + 1))\n : Infinity, 0);\n }\n\n var d = a * a + b * b;\n return (d !== 0)\n ? new Complex(\n a / d,\n -b / d).asinh()\n : new Complex(\n (a !== 0) ? a / 0 : 0,\n (b !== 0) ? -b / 0 : 0).asinh();\n },\n\n /**\n * Calculate the complex asech\n *\n * @returns {Complex}\n */\n 'asech': function() {\n\n // asech(c) = log((1+sqrt(1-c^2))/c)\n\n var a = this['re'];\n var b = this['im'];\n\n if (this['isZero']()) {\n return Complex['INFINITY'];\n }\n\n var d = a * a + b * b;\n return (d !== 0)\n ? new Complex(\n a / d,\n -b / d).acosh()\n : new Complex(\n (a !== 0) ? a / 0 : 0,\n (b !== 0) ? -b / 0 : 0).acosh();\n },\n\n /**\n * Calculate the complex inverse 1/z\n *\n * @returns {Complex}\n */\n 'inverse': function() {\n\n // 1 / 0 = Infinity and 1 / Infinity = 0\n if (this['isZero']()) {\n return Complex['INFINITY'];\n }\n\n if (this['isInfinite']()) {\n return Complex['ZERO'];\n }\n\n var a = this['re'];\n var b = this['im'];\n\n var d = a * a + b * b;\n\n return new Complex(a / d, -b / d);\n },\n\n /**\n * Returns the complex conjugate\n *\n * @returns {Complex}\n */\n 'conjugate': function() {\n\n return new Complex(this['re'], -this['im']);\n },\n\n /**\n * Gets the negated complex number\n *\n * @returns {Complex}\n */\n 'neg': function() {\n\n return new Complex(-this['re'], -this['im']);\n },\n\n /**\n * Ceils the actual complex number\n *\n * @returns {Complex}\n */\n 'ceil': function(places) {\n\n places = Math.pow(10, places || 0);\n\n return new Complex(\n Math.ceil(this['re'] * places) / places,\n Math.ceil(this['im'] * places) / places);\n },\n\n /**\n * Floors the actual complex number\n *\n * @returns {Complex}\n */\n 'floor': function(places) {\n\n places = Math.pow(10, places || 0);\n\n return new Complex(\n Math.floor(this['re'] * places) / places,\n Math.floor(this['im'] * places) / places);\n },\n\n /**\n * Ceils the actual complex number\n *\n * @returns {Complex}\n */\n 'round': function(places) {\n\n places = Math.pow(10, places || 0);\n\n return new Complex(\n Math.round(this['re'] * places) / places,\n Math.round(this['im'] * places) / places);\n },\n\n /**\n * Compares two complex numbers\n *\n * **Note:** new Complex(Infinity).equals(Infinity) === false\n *\n * @returns {boolean}\n */\n 'equals': function(a, b) {\n\n var z = new Complex(a, b);\n\n return Math.abs(z['re'] - this['re']) <= Complex['EPSILON'] &&\n Math.abs(z['im'] - this['im']) <= Complex['EPSILON'];\n },\n\n /**\n * Clones the actual object\n *\n * @returns {Complex}\n */\n 'clone': function() {\n\n return new Complex(this['re'], this['im']);\n },\n\n /**\n * Gets a string of the actual complex number\n *\n * @returns {string}\n */\n 'toString': function() {\n\n var a = this['re'];\n var b = this['im'];\n var ret = '';\n\n if (this['isNaN']()) {\n return 'NaN';\n }\n\n if (this['isZero']()) {\n return '0';\n }\n\n if (this['isInfinite']()) {\n return 'Infinity';\n }\n\n if (a !== 0) {\n ret += a;\n }\n\n if (b !== 0) {\n\n if (a !== 0) {\n ret += b < 0 ? ' - ' : ' + ';\n } else if (b < 0) {\n ret += '-';\n }\n\n b = Math.abs(b);\n\n if (1 !== b) {\n ret += b;\n }\n ret += 'i';\n }\n\n if (!ret)\n return '0';\n\n return ret;\n },\n\n /**\n * Returns the actual number as a vector\n *\n * @returns {Array}\n */\n 'toVector': function() {\n\n return [this['re'], this['im']];\n },\n\n /**\n * Returns the actual real value of the current object\n *\n * @returns {number|null}\n */\n 'valueOf': function() {\n\n if (this['im'] === 0) {\n return this['re'];\n }\n return null;\n },\n\n /**\n * Determines whether a complex number is not on the Riemann sphere.\n *\n * @returns {boolean}\n */\n 'isNaN': function() {\n return isNaN(this['re']) || isNaN(this['im']);\n },\n\n /**\n * Determines whether or not a complex number is at the zero pole of the\n * Riemann sphere.\n *\n * @returns {boolean}\n */\n 'isZero': function() {\n return (\n (this['re'] === 0 || this['re'] === -0) &&\n (this['im'] === 0 || this['im'] === -0)\n );\n },\n\n /**\n * Determines whether a complex number is not at the infinity pole of the\n * Riemann sphere.\n *\n * @returns {boolean}\n */\n 'isFinite': function() {\n return isFinite(this['re']) && isFinite(this['im']);\n },\n\n /**\n * Determines whether or not a complex number is at the infinity pole of the\n * Riemann sphere.\n *\n * @returns {boolean}\n */\n 'isInfinite': function() {\n return !(this['isNaN']() || this['isFinite']());\n }\n };\n\n Complex['ZERO'] = new Complex(0, 0);\n Complex['ONE'] = new Complex(1, 0);\n Complex['I'] = new Complex(0, 1);\n Complex['PI'] = new Complex(Math.PI, 0);\n Complex['E'] = new Complex(Math.E, 0);\n Complex['INFINITY'] = new Complex(Infinity, Infinity);\n Complex['NAN'] = new Complex(NaN, NaN);\n Complex['EPSILON'] = 1e-16;\n\n if (typeof define === 'function' && define['amd']) {\n define([], function() {\n return Complex;\n });\n } else if (typeof exports === 'object') {\n Object.defineProperty(exports, \"__esModule\", {'value': true});\n Complex['default'] = Complex;\n Complex['Complex'] = Complex;\n module['exports'] = Complex;\n } else {\n root['Complex'] = Complex;\n }\n\n})(this);\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar invariant_1 = require(\"@turf/invariant\");\nvar helpers_1 = require(\"@turf/helpers\");\n//http://en.wikipedia.org/wiki/Haversine_formula\n//http://www.movable-type.co.uk/scripts/latlong.html\n/**\n * Calculates the distance between two {@link Point|points} in degrees, radians, miles, or kilometers.\n * This uses the [Haversine formula](http://en.wikipedia.org/wiki/Haversine_formula) to account for global curvature.\n *\n * @name distance\n * @param {Coord} from origin point\n * @param {Coord} to destination point\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units='kilometers'] can be degrees, radians, miles, or kilometers\n * @returns {number} distance between the two points\n * @example\n * var from = turf.point([-75.343, 39.984]);\n * var to = turf.point([-75.534, 39.123]);\n * var options = {units: 'miles'};\n *\n * var distance = turf.distance(from, to, options);\n *\n * //addToMap\n * var addToMap = [from, to];\n * from.properties.distance = distance;\n * to.properties.distance = distance;\n */\nfunction distance(from, to, options) {\n if (options === void 0) { options = {}; }\n var coordinates1 = invariant_1.getCoord(from);\n var coordinates2 = invariant_1.getCoord(to);\n var dLat = helpers_1.degreesToRadians((coordinates2[1] - coordinates1[1]));\n var dLon = helpers_1.degreesToRadians((coordinates2[0] - coordinates1[0]));\n var lat1 = helpers_1.degreesToRadians(coordinates1[1]);\n var lat2 = helpers_1.degreesToRadians(coordinates2[1]);\n var a = Math.pow(Math.sin(dLat / 2), 2) +\n Math.pow(Math.sin(dLon / 2), 2) * Math.cos(lat1) * Math.cos(lat2);\n return helpers_1.radiansToLength(2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)), options.units);\n}\nexports.default = distance;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n fontSize: theme.typography.pxToRem(24),\n transition: theme.transitions.create('fill', {\n duration: theme.transitions.duration.shorter\n })\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main\n },\n\n /* Styles applied to the root element if `color=\"action\"`. */\n colorAction: {\n color: theme.palette.action.active\n },\n\n /* Styles applied to the root element if `color=\"error\"`. */\n colorError: {\n color: theme.palette.error.main\n },\n\n /* Styles applied to the root element if `color=\"disabled\"`. */\n colorDisabled: {\n color: theme.palette.action.disabled\n },\n\n /* Styles applied to the root element if `fontSize=\"inherit\"`. */\n fontSizeInherit: {\n fontSize: 'inherit'\n },\n\n /* Styles applied to the root element if `fontSize=\"small\"`. */\n fontSizeSmall: {\n fontSize: theme.typography.pxToRem(20)\n },\n\n /* Styles applied to the root element if `fontSize=\"large\"`. */\n fontSizeLarge: {\n fontSize: theme.typography.pxToRem(35)\n }\n };\n};\nvar SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'inherit' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'svg' : _props$component,\n _props$fontSize = props.fontSize,\n fontSize = _props$fontSize === void 0 ? 'medium' : _props$fontSize,\n htmlColor = props.htmlColor,\n titleAccess = props.titleAccess,\n _props$viewBox = props.viewBox,\n viewBox = _props$viewBox === void 0 ? '0 0 24 24' : _props$viewBox,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"titleAccess\", \"viewBox\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, color !== 'inherit' && classes[\"color\".concat(capitalize(color))], fontSize !== 'default' && fontSize !== 'medium' && classes[\"fontSize\".concat(capitalize(fontSize))]),\n focusable: \"false\",\n viewBox: viewBox,\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, other), children, titleAccess ? /*#__PURE__*/React.createElement(\"title\", null, titleAccess) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n */\n color: PropTypes.oneOf(['action', 'disabled', 'error', 'inherit', 'primary', 'secondary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n */\n fontSize: chainPropTypes(PropTypes.oneOf(['default', 'inherit', 'large', 'medium', 'small']), function (props) {\n var fontSize = props.fontSize;\n\n if (fontSize === 'default') {\n throw new Error('Material-UI: `fontSize=\"default\"` is deprecated. Use `fontSize=\"medium\"` instead.');\n }\n\n return null;\n }),\n\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this property.\n */\n shapeRendering: PropTypes.string,\n\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default withStyles(styles, {\n name: 'MuiSvgIcon'\n})(SvgIcon);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport SvgIcon from '../SvgIcon';\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nexport default function createSvgIcon(path, displayName) {\n var Component = function Component(props, ref) {\n return /*#__PURE__*/React.createElement(SvgIcon, _extends({\n ref: ref\n }, props), path);\n };\n\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = \"\".concat(displayName, \"Icon\");\n }\n\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","import { useTheme as useThemeWithoutDefault } from '@material-ui/styles';\nimport React from 'react';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n var theme = useThemeWithoutDefault() || defaultTheme;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","/**\n * Throws an `Error` with the optional `message` if `condition` is falsy\n * @note Replacement for the external assert method to reduce bundle size\n */\nexport function assert(condition: any, message?: string): void {\n if (!condition) {\n throw new Error(message || 'loader assertion failed.');\n }\n}\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nconst EMPTY_ARRAY = [];\nconst placeholderArray = [];\n\n/*\n * Create an Iterable\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols\n * and a \"context\" tracker from the given data\n */\nexport function createIterable(data, startRow = 0, endRow = Infinity) {\n let iterable = EMPTY_ARRAY;\n\n const objectInfo = {\n index: -1,\n data,\n // visitor can optionally utilize this to avoid constructing a new array for every object\n target: []\n };\n\n if (!data) {\n iterable = EMPTY_ARRAY;\n } else if (typeof data[Symbol.iterator] === 'function') {\n // data is already an iterable\n iterable = data;\n } else if (data.length > 0) {\n placeholderArray.length = data.length;\n iterable = placeholderArray;\n }\n\n if (startRow > 0 || Number.isFinite(endRow)) {\n iterable = (Array.isArray(iterable) ? iterable : Array.from(iterable)).slice(startRow, endRow);\n objectInfo.index = startRow - 1;\n }\n\n return {iterable, objectInfo};\n}\n\n/*\n * Returns true if data is an async iterable object\n */\nexport function isAsyncIterable(data) {\n return data && data[Symbol.asyncIterator];\n}\n\n/*\n * Create an accessor function from a flat buffer that yields the value at each object index\n */\nexport function getAccessorFromBuffer(typedArray, {size, stride, offset, startIndices, nested}) {\n const bytesPerElement = typedArray.BYTES_PER_ELEMENT;\n const elementStride = stride ? stride / bytesPerElement : size;\n const elementOffset = offset ? offset / bytesPerElement : 0;\n const vertexCount = Math.floor((typedArray.length - elementOffset) / elementStride);\n\n return (_, {index, target}) => {\n if (!startIndices) {\n const sourceIndex = index * elementStride + elementOffset;\n for (let j = 0; j < size; j++) {\n target[j] = typedArray[sourceIndex + j];\n }\n return target;\n }\n const startIndex = startIndices[index];\n const endIndex = startIndices[index + 1] || vertexCount;\n let result;\n\n if (nested) {\n result = new Array(endIndex - startIndex);\n for (let i = startIndex; i < endIndex; i++) {\n const sourceIndex = i * elementStride + elementOffset;\n target = new Array(size);\n for (let j = 0; j < size; j++) {\n target[j] = typedArray[sourceIndex + j];\n }\n result[i - startIndex] = target;\n }\n } else if (elementStride === size) {\n result = typedArray.subarray(\n startIndex * size + elementOffset,\n endIndex * size + elementOffset\n );\n } else {\n result = new typedArray.constructor((endIndex - startIndex) * size);\n let targetIndex = 0;\n for (let i = startIndex; i < endIndex; i++) {\n const sourceIndex = i * elementStride + elementOffset;\n for (let j = 0; j < size; j++) {\n result[targetIndex++] = typedArray[sourceIndex + j];\n }\n }\n }\n\n return result;\n };\n}\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import GL from '@luma.gl/constants';\n\nconst ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';\n\n// Converts TYPED ARRAYS to corresponding GL constant\n// Used to auto deduce gl parameter types\nexport function getGLTypeFromTypedArray(arrayOrType) {\n // If typed array, look up constructor\n const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n switch (type) {\n case Float32Array:\n return GL.FLOAT;\n case Uint16Array:\n return GL.UNSIGNED_SHORT;\n case Uint32Array:\n return GL.UNSIGNED_INT;\n case Uint8Array:\n return GL.UNSIGNED_BYTE;\n case Uint8ClampedArray:\n return GL.UNSIGNED_BYTE;\n case Int8Array:\n return GL.BYTE;\n case Int16Array:\n return GL.SHORT;\n case Int32Array:\n return GL.INT;\n default:\n throw new Error(ERR_TYPE_DEDUCTION);\n }\n}\n\n// Converts GL constant to corresponding TYPED ARRAY\n// Used to auto deduce gl parameter types\n\n/* eslint-disable complexity */\nexport function getTypedArrayFromGLType(glType, {clamped = true} = {}) {\n // Sorted in some order of likelihood to reduce amount of comparisons\n switch (glType) {\n case GL.FLOAT:\n return Float32Array;\n case GL.UNSIGNED_SHORT:\n case GL.UNSIGNED_SHORT_5_6_5:\n case GL.UNSIGNED_SHORT_4_4_4_4:\n case GL.UNSIGNED_SHORT_5_5_5_1:\n return Uint16Array;\n case GL.UNSIGNED_INT:\n return Uint32Array;\n case GL.UNSIGNED_BYTE:\n return clamped ? Uint8ClampedArray : Uint8Array;\n case GL.BYTE:\n return Int8Array;\n case GL.SHORT:\n return Int16Array;\n case GL.INT:\n return Int32Array;\n default:\n throw new Error('Failed to deduce typed array type from GL constant');\n }\n}\n/* eslint-enable complexity */\n\n// Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)\n// https://stackoverflow.com/questions/41969562/\n// how-can-i-flip-the-result-of-webglrenderingcontext-readpixels\nexport function flipRows({data, width, height, bytesPerPixel = 4, temp}) {\n const bytesPerRow = width * bytesPerPixel;\n\n // make a temp buffer to hold one row\n temp = temp || new Uint8Array(bytesPerRow);\n for (let y = 0; y < height / 2; ++y) {\n const topOffset = y * bytesPerRow;\n const bottomOffset = (height - y - 1) * bytesPerRow;\n // make copy of a row on the top half\n temp.set(data.subarray(topOffset, topOffset + bytesPerRow));\n // copy a row from the bottom half to the top\n data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);\n // copy the copy of the top half row to the bottom half\n data.set(temp, bottomOffset);\n }\n}\n\nexport function scalePixels({data, width, height}) {\n const newWidth = Math.round(width / 2);\n const newHeight = Math.round(height / 2);\n const newData = new Uint8Array(newWidth * newHeight * 4);\n for (let y = 0; y < newHeight; y++) {\n for (let x = 0; x < newWidth; x++) {\n for (let c = 0; c < 4; c++) {\n newData[(y * newWidth + x) * 4 + c] = data[(y * 2 * width + x * 2) * 4 + c];\n }\n }\n }\n return {data: newData, width: newWidth, height: newHeight};\n}\n","/* eslint-disable complexity */\nimport {\n CullingVolume,\n Plane,\n AxisAlignedBoundingBox,\n makeOrientedBoundingBoxFromPoints\n} from '@math.gl/culling';\nimport {lngLatToWorld} from '@math.gl/web-mercator';\nimport {osmTile2lngLat} from './utils';\n\nconst TILE_SIZE = 512;\n// number of world copies to check\nconst MAX_MAPS = 3;\n// for calculating bounding volume of a tile in a non-web-mercator viewport\nconst REF_POINTS_5 = [[0.5, 0.5], [0, 0], [0, 1], [1, 0], [1, 1]]; // 4 corners and center\nconst REF_POINTS_9 = REF_POINTS_5.concat([[0, 0.5], [0.5, 0], [1, 0.5], [0.5, 1]]); // 4 corners, center and 4 mid points\nconst REF_POINTS_11 = REF_POINTS_9.concat([[0.25, 0.5], [0.75, 0.5]]); // 2 additional points on equator for top tile\n\nclass OSMNode {\n constructor(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n\n get children() {\n if (!this._children) {\n const x = this.x * 2;\n const y = this.y * 2;\n const z = this.z + 1;\n this._children = [\n new OSMNode(x, y, z),\n new OSMNode(x, y + 1, z),\n new OSMNode(x + 1, y, z),\n new OSMNode(x + 1, y + 1, z)\n ];\n }\n return this._children;\n }\n\n update(params) {\n const {viewport, cullingVolume, elevationBounds, minZ, maxZ, bounds, offset, project} = params;\n const boundingVolume = this.getBoundingVolume(elevationBounds, offset, project);\n\n // First, check if this tile is visible\n if (bounds && !this.insideBounds(bounds)) {\n return false;\n }\n\n const isInside = cullingVolume.computeVisibility(boundingVolume);\n if (isInside < 0) {\n return false;\n }\n\n // Avoid loading overlapping tiles - if a descendant is requested, do not request the ancester\n if (!this.childVisible) {\n let {z} = this;\n if (z < maxZ && z >= minZ) {\n // Adjust LOD\n // If the tile is far enough from the camera, accept a lower zoom level\n const distance =\n (boundingVolume.distanceTo(viewport.cameraPosition) * viewport.scale) / viewport.height;\n z += Math.floor(Math.log2(distance));\n }\n if (z >= maxZ) {\n // LOD is acceptable\n this.selected = true;\n return true;\n }\n }\n\n // LOD is not enough, recursively test child tiles\n this.selected = false;\n this.childVisible = true;\n for (const child of this.children) {\n child.update(params);\n }\n return true;\n }\n\n getSelected(result = []) {\n if (this.selected) {\n result.push(this);\n }\n if (this._children) {\n for (const node of this._children) {\n node.getSelected(result);\n }\n }\n return result;\n }\n\n insideBounds([minX, minY, maxX, maxY]) {\n const scale = Math.pow(2, this.z);\n const extent = TILE_SIZE / scale;\n\n return (\n this.x * extent < maxX &&\n this.y * extent < maxY &&\n (this.x + 1) * extent > minX &&\n (this.y + 1) * extent > minY\n );\n }\n\n getBoundingVolume(zRange, worldOffset, project) {\n if (project) {\n // Custom projection\n // Estimate bounding box from sample points\n // At low zoom level we need more samples to calculate the bounding volume correctly\n const refPoints = this.z < 1 ? REF_POINTS_11 : this.z < 2 ? REF_POINTS_9 : REF_POINTS_5;\n\n // Convert from tile-relative coordinates to common space\n const refPointPositions = [];\n for (const p of refPoints) {\n const lngLat = osmTile2lngLat(this.x + p[0], this.y + p[1], this.z);\n lngLat[2] = zRange[0];\n refPointPositions.push(project(lngLat));\n\n if (zRange[0] !== zRange[1]) {\n // Account for the elevation volume\n lngLat[2] = zRange[1];\n refPointPositions.push(project(lngLat));\n }\n }\n\n return makeOrientedBoundingBoxFromPoints(refPointPositions);\n }\n\n // Use WebMercator projection\n const scale = Math.pow(2, this.z);\n const extent = TILE_SIZE / scale;\n const originX = this.x * extent + worldOffset * TILE_SIZE;\n // deck's common space is y-flipped\n const originY = TILE_SIZE - (this.y + 1) * extent;\n\n return new AxisAlignedBoundingBox(\n [originX, originY, zRange[0]],\n [originX + extent, originY + extent, zRange[1]]\n );\n }\n}\n\nexport function getOSMTileIndices(viewport, maxZ, zRange, bounds) {\n const project = viewport.resolution ? viewport.projectPosition : null;\n\n // Get the culling volume of the current camera\n const planes = Object.values(viewport.getFrustumPlanes()).map(\n ({normal, distance}) => new Plane(normal.clone().negate(), distance)\n );\n const cullingVolume = new CullingVolume(planes);\n\n // Project zRange from meters to common space\n const unitsPerMeter = viewport.distanceScales.unitsPerMeter[2];\n const elevationMin = (zRange && zRange[0] * unitsPerMeter) || 0;\n const elevationMax = (zRange && zRange[1] * unitsPerMeter) || 0;\n\n // Always load at the current zoom level if pitch is small\n const minZ = viewport.pitch <= 60 ? maxZ : 0;\n\n // Map extent to OSM position\n if (bounds) {\n const [minLng, minLat, maxLng, maxLat] = bounds;\n const topLeft = lngLatToWorld([minLng, maxLat]);\n const bottomRight = lngLatToWorld([maxLng, minLat]);\n bounds = [topLeft[0], TILE_SIZE - topLeft[1], bottomRight[0], TILE_SIZE - bottomRight[1]];\n }\n\n const root = new OSMNode(0, 0, 0);\n const traversalParams = {\n viewport,\n project,\n cullingVolume,\n elevationBounds: [elevationMin, elevationMax],\n minZ,\n maxZ,\n bounds,\n // num. of worlds from the center. For repeated maps\n offset: 0\n };\n\n root.update(traversalParams);\n\n if (viewport.subViewports && viewport.subViewports.length > 1) {\n // Check worlds in repeated maps\n traversalParams.offset = -1;\n while (root.update(traversalParams)) {\n if (--traversalParams.offset < -MAX_MAPS) {\n break;\n }\n }\n traversalParams.offset = 1;\n while (root.update(traversalParams)) {\n if (++traversalParams.offset > MAX_MAPS) {\n break;\n }\n }\n }\n\n return root.getSelected();\n}\n","import {getOSMTileIndices} from './tile-2d-traversal';\n\nconst TILE_SIZE = 512;\nconst DEFAULT_EXTENT = [-Infinity, -Infinity, Infinity, Infinity];\n\nexport const urlType = {\n type: 'url',\n value: null,\n validate: (value, propType) =>\n (propType.optional && value === null) ||\n typeof value === 'string' ||\n (Array.isArray(value) && value.every(url => typeof url === 'string')),\n equals: (value1, value2) => {\n if (value1 === value2) {\n return true;\n }\n if (!Array.isArray(value1) || !Array.isArray(value2)) {\n return false;\n }\n const len = value1.length;\n if (len !== value2.length) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (value1[i] !== value2[i]) {\n return false;\n }\n }\n return true;\n }\n};\n\nfunction transformBox(bbox, modelMatrix) {\n const transformedCoords = [\n // top-left\n modelMatrix.transformPoint([bbox[0], bbox[1]]),\n // top-right\n modelMatrix.transformPoint([bbox[2], bbox[1]]),\n // bottom-left\n modelMatrix.transformPoint([bbox[0], bbox[3]]),\n // bottom-right\n modelMatrix.transformPoint([bbox[2], bbox[3]])\n ];\n const transformedBox = [\n // Minimum x coord\n Math.min(...transformedCoords.map(i => i[0])),\n // Minimum y coord\n Math.min(...transformedCoords.map(i => i[1])),\n // Max x coord\n Math.max(...transformedCoords.map(i => i[0])),\n // Max y coord\n Math.max(...transformedCoords.map(i => i[1]))\n ];\n return transformedBox;\n}\n\nexport function getURLFromTemplate(template, properties) {\n if (!template || !template.length) {\n return null;\n }\n if (Array.isArray(template)) {\n const index = Math.abs(properties.x + properties.y) % template.length;\n template = template[index];\n }\n\n const {x, y, z} = properties;\n return template\n .replace('{x}', x)\n .replace('{y}', y)\n .replace('{z}', z)\n .replace('{-y}', Math.pow(2, z) - y - 1);\n}\n\n/**\n * gets the bounding box of a viewport\n */\nfunction getBoundingBox(viewport, zRange, extent) {\n let bounds;\n if (zRange && zRange.length === 2) {\n const [minZ, maxZ] = zRange;\n const bounds0 = viewport.getBounds({z: minZ});\n const bounds1 = viewport.getBounds({z: maxZ});\n bounds = [\n Math.min(bounds0[0], bounds1[0]),\n Math.min(bounds0[1], bounds1[1]),\n Math.max(bounds0[2], bounds1[2]),\n Math.max(bounds0[3], bounds1[3])\n ];\n } else {\n bounds = viewport.getBounds();\n }\n if (!viewport.isGeospatial) {\n return [\n // Top corner should not be more then bottom corner in either direction\n Math.max(Math.min(bounds[0], extent[2]), extent[0]),\n Math.max(Math.min(bounds[1], extent[3]), extent[1]),\n // Bottom corner should not be less then top corner in either direction\n Math.min(Math.max(bounds[2], extent[0]), extent[2]),\n Math.min(Math.max(bounds[3], extent[1]), extent[3])\n ];\n }\n return [\n Math.max(bounds[0], extent[0]),\n Math.max(bounds[1], extent[1]),\n Math.min(bounds[2], extent[2]),\n Math.min(bounds[3], extent[3])\n ];\n}\n\nfunction getIndexingCoords(bbox, scale, modelMatrixInverse) {\n if (modelMatrixInverse) {\n const transformedTileIndex = transformBox(bbox, modelMatrixInverse).map(\n i => (i * scale) / TILE_SIZE\n );\n return transformedTileIndex;\n }\n return bbox.map(i => (i * scale) / TILE_SIZE);\n}\n\nfunction getScale(z, tileSize) {\n return (Math.pow(2, z) * TILE_SIZE) / tileSize;\n}\n\n// https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Lon..2Flat._to_tile_numbers_2\nexport function osmTile2lngLat(x, y, z) {\n const scale = getScale(z, TILE_SIZE);\n const lng = (x / scale) * 360 - 180;\n const n = Math.PI - (2 * Math.PI * y) / scale;\n const lat = (180 / Math.PI) * Math.atan(0.5 * (Math.exp(n) - Math.exp(-n)));\n return [lng, lat];\n}\n\nfunction tile2XY(x, y, z, tileSize) {\n const scale = getScale(z, tileSize);\n return [(x / scale) * TILE_SIZE, (y / scale) * TILE_SIZE];\n}\nexport function tileToBoundingBox(viewport, x, y, z, tileSize = TILE_SIZE) {\n if (viewport.isGeospatial) {\n const [west, north] = osmTile2lngLat(x, y, z);\n const [east, south] = osmTile2lngLat(x + 1, y + 1, z);\n return {west, north, east, south};\n }\n const [left, top] = tile2XY(x, y, z, tileSize);\n const [right, bottom] = tile2XY(x + 1, y + 1, z, tileSize);\n return {left, top, right, bottom};\n}\n\nfunction getIdentityTileIndices(viewport, z, tileSize, extent, modelMatrixInverse) {\n const bbox = getBoundingBox(viewport, null, extent);\n const scale = getScale(z, tileSize);\n const [minX, minY, maxX, maxY] = getIndexingCoords(bbox, scale, modelMatrixInverse);\n const indices = [];\n\n /*\n | TILE | TILE | TILE |\n |(minX) |(maxX)\n */\n for (let x = Math.floor(minX); x < maxX; x++) {\n for (let y = Math.floor(minY); y < maxY; y++) {\n indices.push({x, y, z});\n }\n }\n return indices;\n}\n\n/**\n * Returns all tile indices in the current viewport. If the current zoom level is smaller\n * than minZoom, return an empty array. If the current zoom level is greater than maxZoom,\n * return tiles that are on maxZoom.\n */\n// eslint-disable-next-line complexity\nexport function getTileIndices({\n viewport,\n maxZoom,\n minZoom,\n zRange,\n extent,\n tileSize = TILE_SIZE,\n modelMatrix,\n modelMatrixInverse,\n zoomOffset = 0\n}) {\n let z = viewport.isGeospatial\n ? Math.round(viewport.zoom + Math.log2(TILE_SIZE / tileSize)) + zoomOffset\n : Math.ceil(viewport.zoom) + zoomOffset;\n if (Number.isFinite(minZoom) && z < minZoom) {\n if (!extent) {\n return [];\n }\n z = minZoom;\n }\n if (Number.isFinite(maxZoom) && z > maxZoom) {\n z = maxZoom;\n }\n let transformedExtent = extent;\n if (modelMatrix && modelMatrixInverse && extent && !viewport.isGeospatial) {\n transformedExtent = transformBox(extent, modelMatrix);\n }\n return viewport.isGeospatial\n ? getOSMTileIndices(viewport, z, zRange, extent)\n : getIdentityTileIndices(\n viewport,\n z,\n tileSize,\n transformedExtent || DEFAULT_EXTENT,\n modelMatrixInverse\n );\n}\n\n/**\n * Returns true if s is a valid URL template\n */\nexport function isURLTemplate(s) {\n return /(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(s);\n}\n","'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != 'string')\n throw new Error('schema id must be string');\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n}\n\n\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\nfunction addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n}\n\n\n/**\n * Validate schema\n * @this Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\nfunction validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != 'string')\n throw new Error('$schema must be a string');\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn('meta-schema not available');\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = 'schema is invalid: ' + this.errorsText();\n if (this._opts.validateSchema == 'log') this.logger.error(message);\n else throw new Error(message);\n }\n return valid;\n}\n\n\nfunction defaultMeta(self) {\n var meta = self._opts.meta;\n self._opts.defaultMeta = typeof meta == 'object'\n ? self._getId(meta) || meta\n : self.getSchema(META_SCHEMA_ID)\n ? META_SCHEMA_ID\n : undefined;\n return self._opts.defaultMeta;\n}\n\n\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this Ajv\n * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\nfunction getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case 'object': return schemaObj.validate || this._compile(schemaObj);\n case 'string': return this.getSchema(schemaObj);\n case 'undefined': return _getSchemaFragment(this, keyRef);\n }\n}\n\n\nfunction _getSchemaFragment(self, ref) {\n var res = resolve.schema.call(self, { schema: {} }, ref);\n if (res) {\n var schema = res.schema\n , root = res.root\n , baseId = res.baseId;\n var v = compileSchema.call(self, schema, root, undefined, baseId);\n self._fragments[ref] = new SchemaObject({\n ref: ref,\n fragment: true,\n schema: schema,\n root: root,\n baseId: baseId,\n validate: v\n });\n return v;\n }\n}\n\n\nfunction _getSchemaObj(self, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n\n\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this Ajv\n * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\nfunction removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case 'undefined':\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case 'string':\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj) this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case 'object':\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n}\n\n\nfunction _removeAllSchemas(self, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n}\n\n\n/* @this Ajv */\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != 'object' && typeof schema != 'boolean')\n throw new Error('schema should be object or boolean');\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached) return cached;\n\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema) checkUnique(this, id);\n\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n\n var localRefs = resolve.ids.call(this, schema);\n\n var schemaObj = new SchemaObject({\n id: id,\n schema: schema,\n localRefs: localRefs,\n cacheKey: cacheKey,\n meta: meta\n });\n\n if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n\n if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n return schemaObj;\n}\n\n\n/* @this Ajv */\nfunction _compile(schemaObj, root) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root ? root : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n\n var v;\n try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n catch(e) {\n delete schemaObj.validate;\n throw e;\n }\n finally {\n schemaObj.compiling = false;\n if (schemaObj.meta) this._opts = currentOpts;\n }\n\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n}\n\n\nfunction chooseGetId(opts) {\n switch (opts.schemaId) {\n case 'auto': return _get$IdOrId;\n case 'id': return _getId;\n default: return _get$Id;\n }\n}\n\n/* @this Ajv */\nfunction _getId(schema) {\n if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n return schema.id;\n}\n\n/* @this Ajv */\nfunction _get$Id(schema) {\n if (schema.id) this.logger.warn('schema id ignored', schema.id);\n return schema.$id;\n}\n\n\nfunction _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error('schema $id is different from id');\n return schema.$id || schema.id;\n}\n\n\n/**\n * Convert array of error message objects to string\n * @this Ajv\n * @param {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i<errors.length; i++) {\n var e = errors[i];\n if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n }\n return text.slice(0, -separator.length);\n}\n\n\n/**\n * Add custom format\n * @this Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\nfunction addFormat(name, format) {\n if (typeof format == 'string') format = new RegExp(format);\n this._formats[name] = format;\n return this;\n}\n\n\nfunction addDefaultMetaSchema(self) {\n var $dataSchema;\n if (self._opts.$data) {\n $dataSchema = require('./refs/data.json');\n self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self._opts.meta === false) return;\n var metaSchema = require('./refs/json-schema-draft-07.json');\n if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\n\nfunction addInitialSchemas(self) {\n var optsSchemas = self._opts.schemas;\n if (!optsSchemas) return;\n if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\n\nfunction addInitialFormats(self) {\n for (var name in self._opts.formats) {\n var format = self._opts.formats[name];\n self.addFormat(name, format);\n }\n}\n\n\nfunction addInitialKeywords(self) {\n for (var name in self._opts.keywords) {\n var keyword = self._opts.keywords[name];\n self.addKeyword(name, keyword);\n }\n}\n\n\nfunction checkUnique(self, id) {\n if (self._schemas[id] || self._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\n\nfunction getMetaSchemaOptions(self) {\n var metaOpts = util.copy(self._opts);\n for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n}\n\n\nfunction setLogger(self) {\n var logger = self._opts.logger;\n if (logger === false) {\n self.logger = {log: noop, warn: noop, error: noop};\n } else {\n if (logger === undefined) logger = console;\n if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))\n throw new Error('logger must implement log, warn and error methods');\n self.logger = logger;\n }\n}\n\n\nfunction noop() {}\n","\nvar libh3 = (\nfunction(libh3) {\n libh3 = libh3 || {};\n\nvar Module=typeof libh3!==\"undefined\"?libh3:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}read_=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case\"i1\":case\"i8\":return 1;case\"i16\":return 2;case\"i32\":return 4;case\"i64\":return 8;case\"float\":return 4;case\"double\":return 8;default:{if(type[type.length-1]===\"*\"){return 4}else if(type[0]===\"i\"){var bits=parseInt(type.substr(1));assert(bits%8===0,\"getNativeTypeSize invalid bits \"+bits+\", type \"+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module[\"dynCall_\"+sig].apply(null,[ptr].concat(args))}else{return Module[\"dynCall_\"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var GLOBAL_BASE=8;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];function setValue(ptr,value,type,noSafe){type=type||\"i8\";if(type.charAt(type.length-1)===\"*\")type=\"i32\";switch(type){case\"i1\":HEAP8[ptr>>0]=value;break;case\"i8\":HEAP8[ptr>>0]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;default:abort(\"invalid type for setValue: \"+type)}}function getValue(ptr,type,noSafe){type=type||\"i8\";if(type.charAt(type.length-1)===\"*\")type=\"i32\";switch(type){case\"i1\":return HEAP8[ptr>>0];case\"i8\":return HEAP8[ptr>>0];case\"i16\":return HEAP16[ptr>>1];case\"i32\":return HEAP32[ptr>>2];case\"i64\":return HEAP32[ptr>>2];case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];default:abort(\"invalid type for getValue: \"+type)}return null}var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}function cwrap(ident,returnType,argTypes,opts){argTypes=argTypes||[];var numericArgs=argTypes.every(function(type){return type===\"number\"});var numericRet=returnType!==\"string\";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}}var ALLOC_NONE=3;var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str=\"\";while(idx<endPtr){var u0=u8Array[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|u8Array[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=24048,DYNAMIC_BASE=5266928,DYNAMICTOP_PTR=24016;var INITIAL_TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||33554432;if(Module[\"buffer\"]){buffer=Module[\"buffer\"]}else{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var memoryInitializer=null;var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var tempDouble;var tempI64;memoryInitializer=\"data:application/octet-stream;base64,AAAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAABAAAAAMAAAAGAAAABQAAAAIAAAAAAAAAAgAAAAMAAAABAAAABAAAAAYAAAAAAAAABQAAAAMAAAAGAAAABAAAAAUAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAABAAAABQAAAAIAAAAAAAAAAQAAAAMAAAAGAAAABAAAAAYAAAAAAAAABQAAAAIAAAABAAAABAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABgAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAABgAAAAAAAAADAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAUAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAEAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAACAAAABAAAAAMAAAAIAAAA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AAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAQAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAADAAAABQAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAABQAAAAUAAAAAAAAAAAAAAP////8BAAAAAAAAAAMAAAAEAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAQAAAP//////////AQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAIAAAAAAAAAAAAAAAEAAAACAAAABgAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAoAAAACAAAAAAAAAAAAAAABAAAAAQAAAAUAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAAAAAAAAAAAAAEAAAADAAAABwAAAAYAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAJAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAAAAAAAAAAAAQAAAAQAAAAIAAAACgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAAAAAAAAAAABAAAACwAAAA8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAAAAAAAAAAABAAAADAAAABAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAEAAAAKAAAAEwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAAAAAAAAQAAAA0AAAARAAAADQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAAAAAAAAAAAAAEAAAAOAAAAEgAAAA8AAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAAAAAABAAAA//////////8TAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABIAAAAAAAAAGAAAAAAAAAAhAAAAAAAAAB4AAAAAAAAAIAAAAAMAAAAxAAAAAQAAADAAAAADAAAAMgAAAAMAAAAIAAAAAAAAAAUAAAAFAAAACgAAAAUAAAAWAAAAAAAAABAAAAAAAAAAEgAAAAAAAAApAAAAAQAAACEAAAAAAAAAHgAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAgAAAAUAAAAPAAAAAQAAAAgAAAAAAAAABQAAAAUAAAAfAAAAAQAAABYAAAAAAAAAEAAAAAAAAAACAAAAAAAAAAYAAAAAAAAADgAAAAAAAAAKAAAAAAAAAAsAAAAAAAAAEQAAAAMAAAAYAAAAAQAAABcAAAADAAAAGQAAAAMAAAAAAAAAAAAAAAEAAAAFAAAACQAAAAUAAAAFAAAAAAAAAAIAAAAAAAAABgAAAAAAAAASAAAAAQAAAAoAAAAAAAAACwAAAAAAAAAEAAAAAQAAAAMAAAAFAAAABwAAAAUAAAAIAAAAAQAAAAAAAAAAAAAAAQAAAAUAAAAQAAAAAQAAAAUAAAAAAAAAAgAAAAAAAAAHAAAAAAAAABUAAAAAAAAAJgAAAAAAAAAJAAAAAAAAABMAAAAAAAAAIgAAAAMAAAAOAAAAAQAAABQAAAADAAAAJAAAAAMAAAADAAAAAAAAAA0AAAAFAAAAHQAAAAUAAAABAAAAAAAAAAcAAAAAAAAAFQAAAAAAAAAGAAAA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74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAgAAAAAAAAACAAAAAQAAABMAAAACAAAAAgAAAAAAAAAFAAAACgAAAAAAAAACAAAAAgAAAAMAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABEAAAACAAAAAAAAAAIAAAABAAAADwAAAAIAAAACAAAAAAAAAAUAAAALAAAAAAAAAAIAAAACAAAAAwAAABEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAIAAAAAAAAAAgAAAAEAAAAQAAAAAgAAAAIAAAAAAAAABQAAAAwAAAAAAAAAAgAAAAIAAAADAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAACAAAAAQAAABEAAAACAAAAAgAAAAAAAAAFAAAADQAAAAAAAAACAAAAAgAAAAMAAAATAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAACAAAAAAAAAAIAAAABAAAAEgAAAAIAAAACAAAAAAAAAAUAAAAOAAAAAAAAAAIAAAACAAAAAwAAAAIAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAACAAAAAQAAAAAAAAABAAAAAgAAAAEAAAAAAAAAAgAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAAAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAUAAAAEAAAAAAAAAAUAAAAAAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAEAAAACAAAAAQAAAAAAAAACAAAAAgAAAAAAAAABAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAAAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAUAAAAEAAAAAAAAAAUAAAAFAAAAAAAAAAEAAAAAAAAAAAAAAMuhRbbsNlBBYqHW9OmHIkF9XBuqnS31QAK37uYhNMhAOSo3UUupm0DC+6pc6JxvQHV9eseEEEJAzURsCyqlFEB8BQ4NMJjnPyy3tBoS97o/xawXQznRjj89J2K2CZxhP6vX43RIIDQ/S8isgygEBz+LvFHQkmzaPjFFFO7wMq4+AADMLkTtjkIAAOgkJqxhQgAAU7B0MjRCAADwpBcVB0IAAACYP2HaQQAAAIn/Ja5BzczM4Eg6gUHNzMxMU7BTQTMzMzNfgCZBAAAAAEi3+UAAAAAAwGPNQDMzMzMzy6BAmpmZmZkxc0AzMzMzM/NFQDMzMzMzMxlAzczMzMzM7D+ygXSx2U6RQKimJOvQKnpA23hmONTHY0A/AGcxyudNQNb3K647mzZA+S56rrwWIUAm4kUQ+9UJQKre9hGzh/M/BLvoy9WG3T+LmqMf8VHGP2m3nYNV37A/gbFHcyeCmT+cBPWBckiDP61tZACjKW0/q2RbYVUYVj8uDypVyLNAP6jGS5cA5zBBwcqhBdCNGUEGEhQ/JVEDQT6WPnRbNO1AB/AWSJgT1kDfUWNCNLDAQNk+5C33OqlAchWL34QSk0DKvtDIrNV8QNF0G3kFzGVASSeWhBl6UED+/0mNGuk4QGjA/dm/1CJALPLPMql6DEDSHoDrwpP1P2jouzWST+A/egAAAAAAAABKAwAAAAAAAPoWAAAAAAAAyqAAAAAAAAB6ZQQAAAAAAErGHgAAAAAA+mvXAAAAAADK8+MFAAAAAHqqOykAAAAASqmhIAEAAAD6oGvkBwAAAMpm8T43AAAAes+ZuIIBAABKrDQMkwoAAPq1cFUFSgAAyvkUViUGAgAAAAAAAwAAAAYAAAACAAAABQAAAAEAAAAEAAAAAAAAAAAAAAAFAAAAAwAAAAEAAAAGAAAABAAAAAIAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAA/////wAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAP////8AAAAAAAAAAAEAAAABAAAAAAAAAAAAAAD/////AAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAA/////wUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAABAAEAAAEBAAAAAAABAAAAAQAAAAEAAQAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAHAAAABwAAAAEAAAACAAAABAAAAAMAAAAAAAAAAAAAAAcAAAADAAAAAQAAAAIAAAAFAAAABAAAAAAAAAAAAAAAYWxnb3MuYwBfcG9seWZpbGxJbnRlcm5hbABhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0dlb0JvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9HZW9Cb3VuZGFyeQBwb2x5Z29uLT5uZXh0ID09IE5VTEwAbGlua2VkR2VvLmMAYWRkTmV3TGlua2VkUG9seWdvbgBuZXh0ICE9IE5VTEwAbG9vcCAhPSBOVUxMAGFkZE5ld0xpbmtlZExvb3AAcG9seWdvbi0+Zmlyc3QgPT0gTlVMTABhZGRMaW5rZWRMb29wAGNvb3JkICE9IE5VTEwAYWRkTGlua2VkQ29vcmQAbG9vcC0+Zmlyc3QgPT0gTlVMTABpbm5lckxvb3BzICE9IE5VTEwAbm9ybWFsaXplTXVsdGlQb2x5Z29uAGJib3hlcyAhPSBOVUxMAGNhbmRpZGF0ZXMgIT0gTlVMTABmaW5kUG9seWdvbkZvckhvbGUAY2FuZGlkYXRlQkJveGVzICE9IE5VTEwAcmV2RGlyICE9IElOVkFMSURfRElHSVQAbG9jYWxpai5jAGgzVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAcGVudGFnb25Sb3RhdGlvbnMgPj0gMABkaXJlY3Rpb25Sb3RhdGlvbnMgPj0gMABiYXNlQ2VsbCA9PSBvcmlnaW5CYXNlQ2VsbABiYXNlQ2VsbCAhPSBJTlZBTElEX0JBU0VfQ0VMTABsb2NhbElqa1RvSDMAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAd2l0aGluUGVudGFnb25Sb3RhdGlvbnMgPj0gMABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl\";var tempDoublePtr=24032;function demangle(func){return func}function demangleAll(text){var regex=/\\b__Z[\\w\\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+\" [\"+x+\"]\"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return\"(no stack trace available)\"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module[\"extraStackTrace\"])js+=\"\\n\"+Module[\"extraStackTrace\"]();return demangleAll(js)}function ___assert_fail(condition,filename,line,func){abort(\"Assertion failed: \"+UTF8ToString(condition)+\", at: \"+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function _emscripten_get_heap_size(){return HEAP8.length}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort(\"OOM\")}function emscripten_realloc_buffer(size){try{var newBuffer=new ArrayBuffer(size);if(newBuffer.byteLength!=size)return;new Int8Array(newBuffer).set(HEAP8);_emscripten_replace_memory(newBuffer);updateGlobalBufferAndViews(newBuffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=16777216;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize<requestedSize){if(newSize<=536870912){newSize=alignUp(2*newSize,PAGE_MULTIPLE)}else{newSize=Math.min(alignUp((3*newSize+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=emscripten_realloc_buffer(newSize);if(!replacement){return false}return true}var ASSERTIONS=false;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,\"Character code \"+chr+\" (\"+String.fromCharCode(chr)+\") at offset \"+i+\" not in 0x00-0xFF.\")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join(\"\")}var decodeBase64=typeof atob===\"function\"?atob:function(input){var keyStr=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";var output=\"\";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error(\"Converting base64 string to bytes failed.\")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var asmGlobalArg={\"Math\":Math,\"Int8Array\":Int8Array,\"Int32Array\":Int32Array,\"Uint8Array\":Uint8Array,\"Float32Array\":Float32Array,\"Float64Array\":Float64Array};var asmLibraryArg={\"a\":abort,\"b\":setTempRet0,\"c\":getTempRet0,\"d\":___assert_fail,\"e\":___setErrNo,\"f\":_emscripten_get_heap_size,\"g\":_emscripten_memcpy_big,\"h\":_emscripten_resize_heap,\"i\":abortOnCannotGrowMemory,\"j\":demangle,\"k\":demangleAll,\"l\":emscripten_realloc_buffer,\"m\":jsStackTrace,\"n\":stackTrace,\"o\":tempDoublePtr,\"p\":DYNAMICTOP_PTR};// EMSCRIPTEN_START_ASM\nvar asm=(/** @suppress {uselessCode} */ function(global,env,buffer) {\n\"almost asm\";var a=new global.Int8Array(buffer),b=new global.Int32Array(buffer),c=new global.Uint8Array(buffer),d=new global.Float32Array(buffer),e=new global.Float64Array(buffer),f=env.o|0,g=env.p|0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=global.Math.floor,q=global.Math.abs,r=global.Math.sqrt,s=global.Math.pow,t=global.Math.cos,u=global.Math.sin,v=global.Math.tan,w=global.Math.acos,x=global.Math.asin,y=global.Math.atan,z=global.Math.atan2,A=global.Math.ceil,B=global.Math.imul,C=global.Math.min,D=global.Math.clz32,E=env.a,F=env.b,G=env.c,H=env.d,I=env.e,J=env.f,K=env.g,L=env.h,M=env.i,N=env.j,O=env.k,P=env.l,Q=env.m,R=env.n,S=24048,T=5266928,U=0.0;function V(newBuffer){a=new Int8Array(newBuffer);c=new Uint8Array(newBuffer);b=new Int32Array(newBuffer);d=new Float32Array(newBuffer);e=new Float64Array(newBuffer);buffer=newBuffer;return true}\n// EMSCRIPTEN_START_FUNCS\nfunction W(a){a=a|0;var b=0;b=S;S=S+a|0;S=S+15&-16;return b|0}function X(){return S|0}function Y(a){a=a|0;S=a}function Z(a,b){a=a|0;b=b|0;S=a;T=b}function _(a){a=a|0;return (B(a*3|0,a+1|0)|0)+1|0}function $(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;if(!(ba(a,b,c,d,0)|0))return;f=(B(c*3|0,c+1|0)|0)+1|0;gd(d|0,0,f<<3|0)|0;e=Xc(f,4)|0;if(!e)return;ca(a,b,c,d,e,f,0);Wc(e);return}function aa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;if(!(ba(a,b,c,d,e)|0))return;f=(B(c*3|0,c+1|0)|0)+1|0;gd(d|0,0,f<<3|0)|0;if(e|0){gd(e|0,0,f<<2|0)|0;ca(a,b,c,d,e,f,0);return}e=Xc(f,4)|0;if(!e)return;ca(a,b,c,d,e,f,0);Wc(e);return}function ba(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=S;S=S+16|0;n=o;g=e;b[g>>2]=a;b[g+4>>2]=c;g=(f|0)!=0;if(g)b[f>>2]=0;if(Eb(a,c)|0){n=1;S=o;return n|0}b[n>>2]=0;a:do if((d|0)>=1)if(g){k=0;l=1;m=1;h=0;g=a;while(1){if(!(h|k)){g=da(g,c,4,n)|0;c=G()|0;if((g|0)==0&(c|0)==0){g=2;break a}if(Eb(g,c)|0){g=1;break a}}g=da(g,c,b[16+(k<<2)>>2]|0,n)|0;c=G()|0;if((g|0)==0&(c|0)==0){g=2;break a}a=e+(m<<3)|0;b[a>>2]=g;b[a+4>>2]=c;b[f+(m<<2)>>2]=l;h=h+1|0;a=(h|0)==(l|0);i=k+1|0;j=(i|0)==6;if(Eb(g,c)|0){g=1;break a}l=l+(j&a&1)|0;if((l|0)>(d|0)){g=0;break}else{k=a?(j?0:i):k;m=m+1|0;h=a?0:h}}}else{k=0;l=1;m=1;h=0;g=a;while(1){if(!(h|k)){g=da(g,c,4,n)|0;c=G()|0;if((g|0)==0&(c|0)==0){g=2;break a}if(Eb(g,c)|0){g=1;break a}}g=da(g,c,b[16+(k<<2)>>2]|0,n)|0;c=G()|0;if((g|0)==0&(c|0)==0){g=2;break a}a=e+(m<<3)|0;b[a>>2]=g;b[a+4>>2]=c;h=h+1|0;a=(h|0)==(l|0);i=k+1|0;j=(i|0)==6;if(Eb(g,c)|0){g=1;break a}l=l+(j&a&1)|0;if((l|0)>(d|0)){g=0;break}else{k=a?(j?0:i):k;m=m+1|0;h=a?0:h}}}else g=0;while(0);n=g;S=o;return n|0}function ca(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=S;S=S+16|0;l=m;if((a|0)==0&(c|0)==0){S=m;return}i=ad(a|0,c|0,g|0,((g|0)<0)<<31>>31|0)|0;G()|0;j=e+(i<<3)|0;n=j;o=b[n>>2]|0;n=b[n+4>>2]|0;k=(o|0)==(a|0)&(n|0)==(c|0);if(!((o|0)==0&(n|0)==0|k))do{i=(i+1|0)%(g|0)|0;j=e+(i<<3)|0;o=j;n=b[o>>2]|0;o=b[o+4>>2]|0;k=(n|0)==(a|0)&(o|0)==(c|0)}while(!((n|0)==0&(o|0)==0|k));i=f+(i<<2)|0;if(k?(b[i>>2]|0)<=(h|0):0){S=m;return}o=j;b[o>>2]=a;b[o+4>>2]=c;b[i>>2]=h;if((h|0)>=(d|0)){S=m;return}o=h+1|0;b[l>>2]=0;n=da(a,c,2,l)|0;ca(n,G()|0,d,e,f,g,o);b[l>>2]=0;n=da(a,c,3,l)|0;ca(n,G()|0,d,e,f,g,o);b[l>>2]=0;n=da(a,c,1,l)|0;ca(n,G()|0,d,e,f,g,o);b[l>>2]=0;n=da(a,c,5,l)|0;ca(n,G()|0,d,e,f,g,o);b[l>>2]=0;n=da(a,c,4,l)|0;ca(n,G()|0,d,e,f,g,o);b[l>>2]=0;n=da(a,c,6,l)|0;ca(n,G()|0,d,e,f,g,o);S=m;return}function da(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((b[e>>2]|0)>0){f=0;do{d=Pa(d)|0;f=f+1|0}while((f|0)<(b[e>>2]|0))}i=bd(a|0,c|0,45)|0;G()|0;j=i&127;g=Kb(a,c)|0;f=bd(a|0,c|0,52)|0;G()|0;f=f&15;a:do if(!f)h=6;else while(1){m=(15-f|0)*3|0;n=bd(a|0,c|0,m|0)|0;G()|0;n=n&7;o=(Qb(f)|0)==0;f=f+-1|0;l=cd(7,0,m|0)|0;c=c&~(G()|0);m=cd(b[(o?464:48)+(n*28|0)+(d<<2)>>2]|0,0,m|0)|0;k=G()|0;d=b[(o?672:256)+(n*28|0)+(d<<2)>>2]|0;a=m|a&~l;c=k|c;if(!d){d=0;break a}if(!f){h=6;break}}while(0);if((h|0)==6){o=b[880+(j*28|0)+(d<<2)>>2]|0;n=cd(o|0,0,45)|0;a=n|a;c=G()|0|c&-1040385;d=b[4304+(j*28|0)+(d<<2)>>2]|0;if((o&127|0)==127){o=cd(b[880+(j*28|0)+20>>2]|0,0,45)|0;c=G()|0|c&-1040385;d=b[4304+(j*28|0)+20>>2]|0;a=Mb(o|a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+1}}h=bd(a|0,c|0,45)|0;G()|0;h=h&127;b:do if(!(la(h)|0)){if((d|0)>0){f=0;do{a=Mb(a,c)|0;c=G()|0;f=f+1|0}while((f|0)!=(d|0))}}else{c:do if((Kb(a,c)|0)==1){if((j|0)!=(h|0))if(ra(h,b[7728+(j*28|0)>>2]|0)|0){a=Ob(a,c)|0;g=1;c=G()|0;break}else{a=Mb(a,c)|0;g=1;c=G()|0;break}switch(g|0){case 5:{a=Ob(a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+5;g=0;break c}case 3:{a=Mb(a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+1;g=0;break c}default:{n=0;o=0;F(n|0);return o|0}}}else g=0;while(0);if((d|0)>0){f=0;do{a=Lb(a,c)|0;c=G()|0;f=f+1|0}while((f|0)!=(d|0))}if((j|0)!=(h|0)){if(!(ma(h)|0)){if((g|0)!=0|(Kb(a,c)|0)!=5)break;b[e>>2]=(b[e>>2]|0)+1;break}switch(i&127){case 8:case 118:break b;default:{}}if((Kb(a,c)|0)!=3)b[e>>2]=(b[e>>2]|0)+1}}while(0);b[e>>2]=((b[e>>2]|0)+d|0)%6|0;n=c;o=a;F(n|0);return o|0}function ea(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=S;S=S+16|0;l=m;if(!d){l=e;b[l>>2]=a;b[l+4>>2]=c;l=0;S=m;return l|0}b[l>>2]=0;a:do if(!(Eb(a,c)|0)){g=(d|0)>0;if(g){f=0;k=a;do{k=da(k,c,4,l)|0;c=G()|0;if((k|0)==0&(c|0)==0){a=2;break a}f=f+1|0;if(Eb(k,c)|0){a=1;break a}}while((f|0)<(d|0));j=e;b[j>>2]=k;b[j+4>>2]=c;j=d+-1|0;if(g){g=0;h=1;f=k;a=c;do{f=da(f,a,2,l)|0;a=G()|0;if((f|0)==0&(a|0)==0){a=2;break a}i=e+(h<<3)|0;b[i>>2]=f;b[i+4>>2]=a;h=h+1|0;if(Eb(f,a)|0){a=1;break a}g=g+1|0}while((g|0)<(d|0));i=0;g=h;do{f=da(f,a,3,l)|0;a=G()|0;if((f|0)==0&(a|0)==0){a=2;break a}h=e+(g<<3)|0;b[h>>2]=f;b[h+4>>2]=a;g=g+1|0;if(Eb(f,a)|0){a=1;break a}i=i+1|0}while((i|0)<(d|0));h=0;do{f=da(f,a,1,l)|0;a=G()|0;if((f|0)==0&(a|0)==0){a=2;break a}i=e+(g<<3)|0;b[i>>2]=f;b[i+4>>2]=a;g=g+1|0;if(Eb(f,a)|0){a=1;break a}h=h+1|0}while((h|0)<(d|0));h=0;do{f=da(f,a,5,l)|0;a=G()|0;if((f|0)==0&(a|0)==0){a=2;break a}i=e+(g<<3)|0;b[i>>2]=f;b[i+4>>2]=a;g=g+1|0;if(Eb(f,a)|0){a=1;break a}h=h+1|0}while((h|0)<(d|0));h=0;do{f=da(f,a,4,l)|0;a=G()|0;if((f|0)==0&(a|0)==0){a=2;break a}i=e+(g<<3)|0;b[i>>2]=f;b[i+4>>2]=a;g=g+1|0;if(Eb(f,a)|0){a=1;break a}h=h+1|0}while((h|0)<(d|0));h=0;while(1){f=da(f,a,6,l)|0;a=G()|0;if((f|0)==0&(a|0)==0){a=2;break a}if((h|0)!=(j|0)){i=e+(g<<3)|0;b[i>>2]=f;b[i+4>>2]=a;if(!(Eb(f,a)|0))g=g+1|0;else{a=1;break a}}h=h+1|0;if((h|0)>=(d|0)){h=k;g=c;break}}}else{h=k;f=k;g=c;a=c}}else{h=e;b[h>>2]=a;b[h+4>>2]=c;h=a;f=a;g=c;a=c}a=((h|0)!=(f|0)|(g|0)!=(a|0))&1}else a=1;while(0);l=a;S=m;return l|0}function fa(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=S;S=S+48|0;f=g+8|0;e=g;i=a;h=b[i+4>>2]|0;d=e;b[d>>2]=b[i>>2];b[d+4>>2]=h;uc(e,f);f=ya(f,c)|0;c=b[e>>2]|0;e=b[a+8>>2]|0;if((e|0)<=0){i=c;h=(f|0)<(i|0);i=h?i:f;i=i+12|0;S=g;return i|0}d=b[a+12>>2]|0;a=0;do{c=(b[d+(a<<3)>>2]|0)+c|0;a=a+1|0}while((a|0)<(e|0));i=(f|0)<(c|0);i=i?c:f;i=i+12|0;S=g;return i|0}function ga(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=S;S=S+48|0;e=i+8|0;f=i;if(!(ha(a,c,d)|0)){S=i;return}j=a;g=b[j+4>>2]|0;h=f;b[h>>2]=b[j>>2];b[h+4>>2]=g;uc(f,e);h=ya(e,c)|0;c=b[f>>2]|0;g=b[a+8>>2]|0;if((g|0)>0){f=b[a+12>>2]|0;e=0;do{c=(b[f+(e<<3)>>2]|0)+c|0;e=e+1|0}while((e|0)!=(g|0))}c=(h|0)<(c|0)?c:h;if((c|0)<=-12){S=i;return}j=c+11|0;gd(d|0,0,(((j|0)>0?j:0)<<3)+8|0)|0;S=i;return}function ha(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,I=0,J=0;J=S;S=S+112|0;D=J+80|0;j=J+72|0;E=J;F=J+56|0;k=a+8|0;I=Vc((b[k>>2]<<5)+32|0)|0;if(!I)H(22848,22448,800,22456);vc(a,I);g=a;e=b[g+4>>2]|0;i=j;b[i>>2]=b[g>>2];b[i+4>>2]=e;uc(j,D);i=ya(D,c)|0;e=b[j>>2]|0;g=b[k>>2]|0;if((g|0)>0){h=b[a+12>>2]|0;f=0;do{e=(b[h+(f<<3)>>2]|0)+e|0;f=f+1|0}while((f|0)!=(g|0))}i=(i|0)<(e|0)?e:i;C=i+12|0;f=Xc(C,8)|0;l=Xc(C,8)|0;b[D>>2]=0;A=a;B=b[A+4>>2]|0;e=j;b[e>>2]=b[A>>2];b[e+4>>2]=B;e=ia(j,C,c,D,f,l)|0;if(e|0){Wc(f);Wc(l);Wc(I);I=e;S=J;return I|0}a:do if((b[k>>2]|0)>0){g=a+12|0;e=0;while(1){h=ia((b[g>>2]|0)+(e<<3)|0,C,c,D,f,l)|0;e=e+1|0;if(h|0)break;if((e|0)>=(b[k>>2]|0))break a}Wc(f);Wc(l);Wc(I);I=h;S=J;return I|0}while(0);if((i|0)>-12)gd(l|0,0,((C|0)>1?C:1)<<3|0)|0;b:do if((b[D>>2]|0)>0){B=((C|0)<0)<<31>>31;v=f;w=l;x=f;y=f;z=l;A=f;e=f;r=f;s=l;t=l;u=l;f=l;c:while(1){q=b[D>>2]|0;o=0;p=0;g=0;while(1){h=E;i=h+56|0;do{b[h>>2]=0;h=h+4|0}while((h|0)<(i|0));c=v+(o<<3)|0;j=b[c>>2]|0;c=b[c+4>>2]|0;if(ba(j,c,1,E,0)|0){h=E;i=h+56|0;do{b[h>>2]=0;h=h+4|0}while((h|0)<(i|0));h=Xc(7,4)|0;if(h|0){ca(j,c,1,E,h,7,0);Wc(h)}}n=0;do{m=E+(n<<3)|0;l=b[m>>2]|0;m=b[m+4>>2]|0;d:do if(!((l|0)==0&(m|0)==0)){j=ad(l|0,m|0,C|0,B|0)|0;G()|0;h=d+(j<<3)|0;i=h;c=b[i>>2]|0;i=b[i+4>>2]|0;if(!((c|0)==0&(i|0)==0)){k=0;while(1){if((k|0)>(C|0))break c;if((c|0)==(l|0)&(i|0)==(m|0))break d;j=(j+1|0)%(C|0)|0;h=d+(j<<3)|0;i=h;c=b[i>>2]|0;i=b[i+4>>2]|0;if((c|0)==0&(i|0)==0)break;else k=k+1|0}}if(!((l|0)==0&(m|0)==0)){Ub(l,m,F);if(wc(a,I,F)|0){k=h;b[k>>2]=l;b[k+4>>2]=m;k=w+(g<<3)|0;b[k>>2]=l;b[k+4>>2]=m;g=g+1|0}}}while(0);n=n+1|0}while(n>>>0<7);p=p+1|0;if((p|0)>=(q|0))break;else o=o+1|0}if((q|0)>0)gd(x|0,0,q<<3|0)|0;b[D>>2]=g;if((g|0)>0){l=f;m=u;n=A;o=t;p=s;q=w;f=r;u=e;t=y;s=x;r=l;e=m;A=z;z=n;y=o;x=p;w=v;v=q}else break b}Wc(y);Wc(z);Wc(I);I=-1;S=J;return I|0}else e=l;while(0);Wc(I);Wc(f);Wc(e);I=0;S=J;return I|0}function ia(a,c,d,f,g,h){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0;C=S;S=S+48|0;y=C+32|0;z=C+16|0;A=C;i=b[a>>2]|0;if((i|0)<=0){B=0;S=C;return B|0}t=a+4|0;u=y+8|0;v=z+8|0;w=A+8|0;x=((c|0)<0)<<31>>31;s=0;a:while(1){j=b[t>>2]|0;q=j+(s<<4)|0;b[y>>2]=b[q>>2];b[y+4>>2]=b[q+4>>2];b[y+8>>2]=b[q+8>>2];b[y+12>>2]=b[q+12>>2];if((s|0)==(i+-1|0)){b[z>>2]=b[j>>2];b[z+4>>2]=b[j+4>>2];b[z+8>>2]=b[j+8>>2];b[z+12>>2]=b[j+12>>2]}else{q=j+(s+1<<4)|0;b[z>>2]=b[q>>2];b[z+4>>2]=b[q+4>>2];b[z+8>>2]=b[q+8>>2];b[z+12>>2]=b[q+12>>2]}q=za(y,z,d)|0;b:do if((q|0)>0){r=+(q|0);p=0;c:while(1){E=+(q-p|0);D=+(p|0);e[A>>3]=+e[y>>3]*E/r+ +e[z>>3]*D/r;e[w>>3]=+e[u>>3]*E/r+ +e[v>>3]*D/r;n=Rb(A,d)|0;o=G()|0;j=ad(n|0,o|0,c|0,x|0)|0;G()|0;i=h+(j<<3)|0;k=i;l=b[k>>2]|0;k=b[k+4>>2]|0;d:do if((l|0)==0&(k|0)==0)B=14;else{m=0;while(1){if((m|0)>(c|0)){i=1;break d}if((l|0)==(n|0)&(k|0)==(o|0)){i=7;break d}j=(j+1|0)%(c|0)|0;i=h+(j<<3)|0;k=i;l=b[k>>2]|0;k=b[k+4>>2]|0;if((l|0)==0&(k|0)==0){B=14;break}else m=m+1|0}}while(0);if((B|0)==14){B=0;if((n|0)==0&(o|0)==0)i=7;else{b[i>>2]=n;b[i+4>>2]=o;i=b[f>>2]|0;m=g+(i<<3)|0;b[m>>2]=n;b[m+4>>2]=o;b[f>>2]=i+1;i=0}}switch(i&7){case 7:case 0:break;default:break c}p=p+1|0;if((q|0)<=(p|0)){B=8;break b}}if(i|0){i=-1;B=20;break a}}else B=8;while(0);if((B|0)==8)B=0;s=s+1|0;i=b[a>>2]|0;if((s|0)>=(i|0)){i=0;B=20;break}}if((B|0)==20){S=C;return i|0}return 0}function ja(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=S;S=S+176|0;j=k;if((c|0)<1){Lc(d,0,0);S=k;return}h=a;h=bd(b[h>>2]|0,b[h+4>>2]|0,52)|0;G()|0;Lc(d,(c|0)>6?c:6,h&15);h=0;do{e=a+(h<<3)|0;Vb(b[e>>2]|0,b[e+4>>2]|0,j);e=b[j>>2]|0;if((e|0)>0){i=0;do{g=j+8+(i<<4)|0;i=i+1|0;e=j+8+(((i|0)%(e|0)|0)<<4)|0;f=Qc(d,e,g)|0;if(!f)Pc(d,g,e)|0;else Oc(d,f)|0;e=b[j>>2]|0}while((i|0)<(e|0))}h=h+1|0}while((h|0)!=(c|0));S=k;return}function ka(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;g=S;S=S+32|0;e=g;f=g+16|0;ja(a,c,f);b[d>>2]=0;b[d+4>>2]=0;b[d+8>>2]=0;a=Nc(f)|0;if(!a){jc(d)|0;Mc(f);S=g;return}do{c=gc(d)|0;do{hc(c,a)|0;h=a+16|0;b[e>>2]=b[h>>2];b[e+4>>2]=b[h+4>>2];b[e+8>>2]=b[h+8>>2];b[e+12>>2]=b[h+12>>2];Oc(f,a)|0;a=Rc(f,e)|0}while((a|0)!=0);a=Nc(f)|0}while((a|0)!=0);jc(d)|0;Mc(f);S=g;return}function la(a){a=a|0;return b[7728+(a*28|0)+16>>2]|0}function ma(a){a=a|0;return (a|0)==4|(a|0)==117|0}function na(a){a=a|0;return b[11152+((b[a>>2]|0)*216|0)+((b[a+4>>2]|0)*72|0)+((b[a+8>>2]|0)*24|0)+(b[a+12>>2]<<3)>>2]|0}function oa(a){a=a|0;return b[11152+((b[a>>2]|0)*216|0)+((b[a+4>>2]|0)*72|0)+((b[a+8>>2]|0)*24|0)+(b[a+12>>2]<<3)+4>>2]|0}function pa(a,c){a=a|0;c=c|0;a=7728+(a*28|0)|0;b[c>>2]=b[a>>2];b[c+4>>2]=b[a+4>>2];b[c+8>>2]=b[a+8>>2];b[c+12>>2]=b[a+12>>2];return}function qa(a,c){a=a|0;c=c|0;var d=0,e=0;if(c>>>0>20){c=-1;return c|0}do if((b[11152+(c*216|0)>>2]|0)!=(a|0))if((b[11152+(c*216|0)+8>>2]|0)!=(a|0))if((b[11152+(c*216|0)+16>>2]|0)!=(a|0))if((b[11152+(c*216|0)+24>>2]|0)!=(a|0))if((b[11152+(c*216|0)+32>>2]|0)!=(a|0))if((b[11152+(c*216|0)+40>>2]|0)!=(a|0))if((b[11152+(c*216|0)+48>>2]|0)!=(a|0))if((b[11152+(c*216|0)+56>>2]|0)!=(a|0))if((b[11152+(c*216|0)+64>>2]|0)!=(a|0))if((b[11152+(c*216|0)+72>>2]|0)!=(a|0))if((b[11152+(c*216|0)+80>>2]|0)!=(a|0))if((b[11152+(c*216|0)+88>>2]|0)!=(a|0))if((b[11152+(c*216|0)+96>>2]|0)!=(a|0))if((b[11152+(c*216|0)+104>>2]|0)!=(a|0))if((b[11152+(c*216|0)+112>>2]|0)!=(a|0))if((b[11152+(c*216|0)+120>>2]|0)!=(a|0))if((b[11152+(c*216|0)+128>>2]|0)!=(a|0))if((b[11152+(c*216|0)+136>>2]|0)==(a|0)){a=2;d=1;e=2}else{if((b[11152+(c*216|0)+144>>2]|0)==(a|0)){a=0;d=2;e=0;break}if((b[11152+(c*216|0)+152>>2]|0)==(a|0)){a=0;d=2;e=1;break}if((b[11152+(c*216|0)+160>>2]|0)==(a|0)){a=0;d=2;e=2;break}if((b[11152+(c*216|0)+168>>2]|0)==(a|0)){a=1;d=2;e=0;break}if((b[11152+(c*216|0)+176>>2]|0)==(a|0)){a=1;d=2;e=1;break}if((b[11152+(c*216|0)+184>>2]|0)==(a|0)){a=1;d=2;e=2;break}if((b[11152+(c*216|0)+192>>2]|0)==(a|0)){a=2;d=2;e=0;break}if((b[11152+(c*216|0)+200>>2]|0)==(a|0)){a=2;d=2;e=1;break}if((b[11152+(c*216|0)+208>>2]|0)==(a|0)){a=2;d=2;e=2;break}else a=-1;return a|0}else{a=2;d=1;e=1}else{a=2;d=1;e=0}else{a=1;d=1;e=2}else{a=1;d=1;e=1}else{a=1;d=1;e=0}else{a=0;d=1;e=2}else{a=0;d=1;e=1}else{a=0;d=1;e=0}else{a=2;d=0;e=2}else{a=2;d=0;e=1}else{a=2;d=0;e=0}else{a=1;d=0;e=2}else{a=1;d=0;e=1}else{a=1;d=0;e=0}else{a=0;d=0;e=2}else{a=0;d=0;e=1}else{a=0;d=0;e=0}while(0);c=b[11152+(c*216|0)+(d*72|0)+(a*24|0)+(e<<3)+4>>2]|0;return c|0}function ra(a,c){a=a|0;c=c|0;if((b[7728+(a*28|0)+20>>2]|0)==(c|0)){c=1;return c|0}c=(b[7728+(a*28|0)+24>>2]|0)==(c|0);return c|0}function sa(a,c){a=a|0;c=c|0;return b[880+(a*28|0)+(c<<2)>>2]|0}function ta(a,c){a=a|0;c=c|0;if((b[880+(a*28|0)>>2]|0)==(c|0)){c=0;return c|0}if((b[880+(a*28|0)+4>>2]|0)==(c|0)){c=1;return c|0}if((b[880+(a*28|0)+8>>2]|0)==(c|0)){c=2;return c|0}if((b[880+(a*28|0)+12>>2]|0)==(c|0)){c=3;return c|0}if((b[880+(a*28|0)+16>>2]|0)==(c|0)){c=4;return c|0}if((b[880+(a*28|0)+20>>2]|0)==(c|0)){c=5;return c|0}else return ((b[880+(a*28|0)+24>>2]|0)==(c|0)?6:7)|0;return 0}function ua(){return 122}function va(a){a=a|0;var c=0,d=0,e=0;c=0;do{cd(c|0,0,45)|0;e=G()|0|134225919;d=a+(c<<3)|0;b[d>>2]=-1;b[d+4>>2]=e;c=c+1|0}while((c|0)!=122);return}function wa(a){a=a|0;return +e[a+16>>3]<+e[a+24>>3]|0}function xa(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;c=+e[b>>3];if(!(c>=+e[a+8>>3])){b=0;return b|0}if(!(c<=+e[a>>3])){b=0;return b|0}d=+e[a+16>>3];c=+e[a+24>>3];f=+e[b+8>>3];b=f>=c;a=f<=d&1;if(d<c){if(b)a=1}else if(!b)a=0;b=(a|0)!=0;return b|0}function ya(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0.0,l=0.0;i=S;S=S+288|0;d=i+264|0;f=i+96|0;g=i;h=g;j=h+96|0;do{b[h>>2]=0;h=h+4|0}while((h|0)<(j|0));Zb(c,g);h=g;j=b[h>>2]|0;h=b[h+4>>2]|0;Ub(j,h,d);Vb(j,h,f);k=+jb(d,f+8|0);e[d>>3]=+e[a>>3];h=d+8|0;e[h>>3]=+e[a+16>>3];e[f>>3]=+e[a+8>>3];j=f+8|0;e[j>>3]=+e[a+24>>3];l=+jb(d,f);j=~~+A(+(l*l/+dd(+(+q(+((+e[h>>3]-+e[j>>3])/(+e[d>>3]-+e[f>>3])))),3.0)/(k*(k*2.59807621135)*.8)));S=i;return ((j|0)==0?1:j)|0}function za(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0.0;i=S;S=S+288|0;e=i+264|0;f=i+96|0;g=i;h=g;j=h+96|0;do{b[h>>2]=0;h=h+4|0}while((h|0)<(j|0));Zb(d,g);j=g;h=b[j>>2]|0;j=b[j+4>>2]|0;Ub(h,j,e);Vb(h,j,f);k=+jb(e,f+8|0);j=~~+A(+(+jb(a,c)/(k*2.0)));S=i;return ((j|0)==0?1:j)|0}function Aa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;b[a>>2]=c;b[a+4>>2]=d;b[a+8>>2]=e;return}function Ba(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0;n=c+8|0;b[n>>2]=0;k=+e[a>>3];i=+q(+k);l=+e[a+8>>3];j=+q(+l)/.8660254037844386;i=i+j*.5;d=~~i;a=~~j;i=i-+(d|0);j=j-+(a|0);do if(i<.5)if(i<.3333333333333333){b[c>>2]=d;if(j<(i+1.0)*.5){b[c+4>>2]=a;break}else{a=a+1|0;b[c+4>>2]=a;break}}else{o=1.0-i;a=(!(j<o)&1)+a|0;b[c+4>>2]=a;if(o<=j&j<i*2.0){d=d+1|0;b[c>>2]=d;break}else{b[c>>2]=d;break}}else{if(!(i<.6666666666666666)){d=d+1|0;b[c>>2]=d;if(j<i*.5){b[c+4>>2]=a;break}else{a=a+1|0;b[c+4>>2]=a;break}}if(j<1.0-i){b[c+4>>2]=a;if(i*2.0+-1.0<j){b[c>>2]=d;break}}else{a=a+1|0;b[c+4>>2]=a}d=d+1|0;b[c>>2]=d}while(0);do if(k<0.0)if(!(a&1)){m=(a|0)/2|0;m=Zc(d|0,((d|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;d=~~(+(d|0)-(+(m>>>0)+4294967296.0*+(G()|0))*2.0);b[c>>2]=d;break}else{m=(a+1|0)/2|0;m=Zc(d|0,((d|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;d=~~(+(d|0)-((+(m>>>0)+4294967296.0*+(G()|0))*2.0+1.0));b[c>>2]=d;break}while(0);m=c+4|0;if(l<0.0){d=d-((a<<1|1|0)/2|0)|0;b[c>>2]=d;a=0-a|0;b[m>>2]=a}f=a-d|0;if((d|0)<0){g=0-d|0;b[m>>2]=f;b[n>>2]=g;b[c>>2]=0;a=f;d=0}else g=0;if((a|0)<0){d=d-a|0;b[c>>2]=d;g=g-a|0;b[n>>2]=g;b[m>>2]=0;a=0}h=d-g|0;f=a-g|0;if((g|0)<0){b[c>>2]=h;b[m>>2]=f;b[n>>2]=0;a=f;d=h;g=0}f=(a|0)<(d|0)?a:d;f=(g|0)<(f|0)?g:f;if((f|0)<=0)return;b[c>>2]=d-f;b[m>>2]=a-f;b[n>>2]=g-f;return}function Ca(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;if((c|0)<0){d=d-c|0;b[h>>2]=d;g=a+8|0;b[g>>2]=(b[g>>2]|0)-c;b[a>>2]=0;c=0}if((d|0)<0){c=c-d|0;b[a>>2]=c;g=a+8|0;f=(b[g>>2]|0)-d|0;b[g>>2]=f;b[h>>2]=0;d=0}else{f=a+8|0;g=f;f=b[f>>2]|0}if((f|0)<0){c=c-f|0;b[a>>2]=c;d=d-f|0;b[h>>2]=d;b[g>>2]=0;f=0}e=(d|0)<(c|0)?d:c;e=(f|0)<(e|0)?f:e;if((e|0)<=0)return;b[a>>2]=c-e;b[h>>2]=d-e;b[g>>2]=f-e;return}function Da(a,c){a=a|0;c=c|0;var d=0.0,f=0;f=b[a+8>>2]|0;d=+((b[a+4>>2]|0)-f|0);e[c>>3]=+((b[a>>2]|0)-f|0)-d*.5;e[c+8>>3]=d*.8660254037844386;return}function Ea(a,c,d){a=a|0;c=c|0;d=d|0;b[d>>2]=(b[c>>2]|0)+(b[a>>2]|0);b[d+4>>2]=(b[c+4>>2]|0)+(b[a+4>>2]|0);b[d+8>>2]=(b[c+8>>2]|0)+(b[a+8>>2]|0);return}function Fa(a,c,d){a=a|0;c=c|0;d=d|0;b[d>>2]=(b[a>>2]|0)-(b[c>>2]|0);b[d+4>>2]=(b[a+4>>2]|0)-(b[c+4>>2]|0);b[d+8>>2]=(b[a+8>>2]|0)-(b[c+8>>2]|0);return}function Ga(a,c){a=a|0;c=c|0;var d=0,e=0;d=B(b[a>>2]|0,c)|0;b[a>>2]=d;d=a+4|0;e=B(b[d>>2]|0,c)|0;b[d>>2]=e;a=a+8|0;c=B(b[a>>2]|0,c)|0;b[a>>2]=c;return}function Ha(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=b[a>>2]|0;i=(h|0)<0;e=(b[a+4>>2]|0)-(i?h:0)|0;g=(e|0)<0;f=(g?0-e|0:0)+((b[a+8>>2]|0)-(i?h:0))|0;d=(f|0)<0;a=d?0:f;c=(g?0:e)-(d?f:0)|0;f=(i?0:h)-(g?e:0)-(d?f:0)|0;d=(c|0)<(f|0)?c:f;d=(a|0)<(d|0)?a:d;e=(d|0)>0;a=a-(e?d:0)|0;c=c-(e?d:0)|0;a:do switch(f-(e?d:0)|0){case 0:switch(c|0){case 0:{i=(a|0)==0?0:(a|0)==1?1:7;return i|0}case 1:{i=(a|0)==0?2:(a|0)==1?3:7;return i|0}default:break a}case 1:switch(c|0){case 0:{i=(a|0)==0?4:(a|0)==1?5:7;return i|0}case 1:{if(!a)a=6;else break a;return a|0}default:break a}default:{}}while(0);i=7;return i|0}function Ia(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;d=b[h>>2]|0;c=(b[a>>2]|0)-d|0;i=a+4|0;d=(b[i>>2]|0)-d|0;e=Uc(+((c*3|0)-d|0)/7.0)|0;b[a>>2]=e;c=Uc(+((d<<1)+c|0)/7.0)|0;b[i>>2]=c;b[h>>2]=0;d=c-e|0;if((e|0)<0){g=0-e|0;b[i>>2]=d;b[h>>2]=g;b[a>>2]=0;c=d;e=0;d=g}else d=0;if((c|0)<0){e=e-c|0;b[a>>2]=e;d=d-c|0;b[h>>2]=d;b[i>>2]=0;c=0}g=e-d|0;f=c-d|0;if((d|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;c=f;f=g;d=0}else f=e;e=(c|0)<(f|0)?c:f;e=(d|0)<(e|0)?d:e;if((e|0)<=0)return;b[a>>2]=f-e;b[i>>2]=c-e;b[h>>2]=d-e;return}function Ja(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;d=b[h>>2]|0;c=(b[a>>2]|0)-d|0;i=a+4|0;d=(b[i>>2]|0)-d|0;e=Uc(+((c<<1)+d|0)/7.0)|0;b[a>>2]=e;c=Uc(+((d*3|0)-c|0)/7.0)|0;b[i>>2]=c;b[h>>2]=0;d=c-e|0;if((e|0)<0){g=0-e|0;b[i>>2]=d;b[h>>2]=g;b[a>>2]=0;c=d;e=0;d=g}else d=0;if((c|0)<0){e=e-c|0;b[a>>2]=e;d=d-c|0;b[h>>2]=d;b[i>>2]=0;c=0}g=e-d|0;f=c-d|0;if((d|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;c=f;f=g;d=0}else f=e;e=(c|0)<(f|0)?c:f;e=(d|0)<(e|0)?d:e;if((e|0)<=0)return;b[a>>2]=f-e;b[i>>2]=c-e;b[h>>2]=d-e;return}function Ka(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;i=a+8|0;e=b[i>>2]|0;f=d+(c*3|0)|0;b[a>>2]=f;d=e+(d*3|0)|0;b[h>>2]=d;c=(e*3|0)+c|0;b[i>>2]=c;e=d-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=e;b[i>>2]=c;b[a>>2]=0;d=e;e=0}else e=f;if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function La(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=(c*3|0)+f|0;f=d+(f*3|0)|0;b[a>>2]=f;b[h>>2]=e;c=(d*3|0)+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;f=0}else d=e;if((d|0)<0){f=f-d|0;b[a>>2]=f;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=f-c|0;e=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=e;b[i>>2]=0;f=g;c=0}else e=d;d=(e|0)<(f|0)?e:f;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=f-d;b[h>>2]=e-d;b[i>>2]=c-d;return}function Ma(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;if((c+-1|0)>>>0>=6)return;f=(b[15472+(c*12|0)>>2]|0)+(b[a>>2]|0)|0;b[a>>2]=f;i=a+4|0;e=(b[15472+(c*12|0)+4>>2]|0)+(b[i>>2]|0)|0;b[i>>2]=e;h=a+8|0;c=(b[15472+(c*12|0)+8>>2]|0)+(b[h>>2]|0)|0;b[h>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[i>>2]=d;b[h>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[h>>2]=c;b[i>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[i>>2]=f-d;b[h>>2]=c-d;return}function Na(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=c+f|0;f=d+f|0;b[a>>2]=f;b[h>>2]=e;c=d+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function Oa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;e=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;f=e+c|0;b[a>>2]=f;e=d+e|0;b[h>>2]=e;c=d+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function Pa(a){a=a|0;switch(a|0){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}default:{}}return a|0}function Qa(a){a=a|0;switch(a|0){case 1:{a=3;break}case 3:{a=2;break}case 2:{a=6;break}case 6:{a=4;break}case 4:{a=5;break}case 5:{a=1;break}default:{}}return a|0}function Ra(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;i=a+8|0;e=b[i>>2]|0;f=d+(c<<1)|0;b[a>>2]=f;d=e+(d<<1)|0;b[h>>2]=d;c=(e<<1)+c|0;b[i>>2]=c;e=d-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=e;b[i>>2]=c;b[a>>2]=0;d=e;e=0}else e=f;if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function Sa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=(c<<1)+f|0;f=d+(f<<1)|0;b[a>>2]=f;b[h>>2]=e;c=(d<<1)+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;f=0}else d=e;if((d|0)<0){f=f-d|0;b[a>>2]=f;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=f-c|0;e=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=e;b[i>>2]=0;f=g;c=0}else e=d;d=(e|0)<(f|0)?e:f;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=f-d;b[h>>2]=e-d;b[i>>2]=c-d;return}function Ta(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=(b[a>>2]|0)-(b[c>>2]|0)|0;i=(h|0)<0;e=(b[a+4>>2]|0)-(b[c+4>>2]|0)-(i?h:0)|0;g=(e|0)<0;f=(i?0-h|0:0)+(b[a+8>>2]|0)-(b[c+8>>2]|0)+(g?0-e|0:0)|0;a=(f|0)<0;c=a?0:f;d=(g?0:e)-(a?f:0)|0;f=(i?0:h)-(g?e:0)-(a?f:0)|0;a=(d|0)<(f|0)?d:f;a=(c|0)<(a|0)?c:a;e=(a|0)>0;c=c-(e?a:0)|0;d=d-(e?a:0)|0;a=f-(e?a:0)|0;a=(a|0)>-1?a:0-a|0;d=(d|0)>-1?d:0-d|0;c=(c|0)>-1?c:0-c|0;c=(d|0)>(c|0)?d:c;return ((a|0)>(c|0)?a:c)|0}function Ua(a,c){a=a|0;c=c|0;var d=0;d=b[a+8>>2]|0;b[c>>2]=(b[a>>2]|0)-d;b[c+4>>2]=(b[a+4>>2]|0)-d;return}function Va(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=b[a>>2]|0;b[c>>2]=e;a=b[a+4>>2]|0;h=c+4|0;b[h>>2]=a;i=c+8|0;b[i>>2]=0;d=a-e|0;if((e|0)<0){a=0-e|0;b[h>>2]=d;b[i>>2]=a;b[c>>2]=0;e=0}else{d=a;a=0}if((d|0)<0){e=e-d|0;b[c>>2]=e;a=a-d|0;b[i>>2]=a;b[h>>2]=0;d=0}g=e-a|0;f=d-a|0;if((a|0)<0){b[c>>2]=g;b[h>>2]=f;b[i>>2]=0;d=f;f=g;a=0}else f=e;e=(d|0)<(f|0)?d:f;e=(a|0)<(e|0)?a:e;if((e|0)<=0)return;b[c>>2]=f-e;b[h>>2]=d-e;b[i>>2]=a-e;return}function Wa(a){a=a|0;var c=0,d=0,e=0,f=0;c=a+8|0;f=b[c>>2]|0;d=f-(b[a>>2]|0)|0;b[a>>2]=d;e=a+4|0;a=(b[e>>2]|0)-f|0;b[e>>2]=a;b[c>>2]=0-(a+d);return}function Xa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=b[a>>2]|0;c=0-d|0;b[a>>2]=c;h=a+8|0;b[h>>2]=0;i=a+4|0;e=b[i>>2]|0;f=e+d|0;if((d|0)>0){b[i>>2]=f;b[h>>2]=d;b[a>>2]=0;c=0;e=f}else d=0;if((e|0)<0){g=c-e|0;b[a>>2]=g;d=d-e|0;b[h>>2]=d;b[i>>2]=0;f=g-d|0;c=0-d|0;if((d|0)<0){b[a>>2]=f;b[i>>2]=c;b[h>>2]=0;e=c;d=0}else{e=0;f=g}}else f=c;c=(e|0)<(f|0)?e:f;c=(d|0)<(c|0)?d:c;if((c|0)<=0)return;b[a>>2]=f-c;b[i>>2]=e-c;b[h>>2]=d-c;return}function Ya(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=S;S=S+16|0;e=d;Za(a,b,c,e);Ba(e,c+4|0);S=d;return}function Za(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0.0,h=0,i=0.0,j=0.0,k=0;k=S;S=S+32|0;h=k;Ic(a,h);b[d>>2]=0;g=+Hc(15888,h);i=+Hc(15912,h);if(i<g){b[d>>2]=1;g=i}i=+Hc(15936,h);if(i<g){b[d>>2]=2;g=i}i=+Hc(15960,h);if(i<g){b[d>>2]=3;g=i}i=+Hc(15984,h);if(i<g){b[d>>2]=4;g=i}i=+Hc(16008,h);if(i<g){b[d>>2]=5;g=i}i=+Hc(16032,h);if(i<g){b[d>>2]=6;g=i}i=+Hc(16056,h);if(i<g){b[d>>2]=7;g=i}i=+Hc(16080,h);if(i<g){b[d>>2]=8;g=i}i=+Hc(16104,h);if(i<g){b[d>>2]=9;g=i}i=+Hc(16128,h);if(i<g){b[d>>2]=10;g=i}i=+Hc(16152,h);if(i<g){b[d>>2]=11;g=i}i=+Hc(16176,h);if(i<g){b[d>>2]=12;g=i}i=+Hc(16200,h);if(i<g){b[d>>2]=13;g=i}i=+Hc(16224,h);if(i<g){b[d>>2]=14;g=i}i=+Hc(16248,h);if(i<g){b[d>>2]=15;g=i}i=+Hc(16272,h);if(i<g){b[d>>2]=16;g=i}i=+Hc(16296,h);if(i<g){b[d>>2]=17;g=i}i=+Hc(16320,h);if(i<g){b[d>>2]=18;g=i}i=+Hc(16344,h);if(i<g){b[d>>2]=19;g=i}i=+w(+(1.0-g*.5));if(i<1.0e-16){b[f>>2]=0;b[f+4>>2]=0;b[f+8>>2]=0;b[f+12>>2]=0;S=k;return}d=b[d>>2]|0;g=+e[16368+(d*24|0)>>3];g=+gb(g-+gb(+lb(15568+(d<<4)|0,a)));if(!(Qb(c)|0))j=g;else j=+gb(g+-.3334731722518321);g=+v(+i)/.381966011250105;if((c|0)>0){h=0;do{g=g*2.6457513110645907;h=h+1|0}while((h|0)!=(c|0))}i=+t(+j)*g;e[f>>3]=i;j=+u(+j)*g;e[f+8>>3]=j;S=k;return}function _a(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0.0,i=0.0;h=+Ec(a);if(h<1.0e-16){c=15568+(c<<4)|0;b[g>>2]=b[c>>2];b[g+4>>2]=b[c+4>>2];b[g+8>>2]=b[c+8>>2];b[g+12>>2]=b[c+12>>2];return}i=+z(+(+e[a+8>>3]),+(+e[a>>3]));if((d|0)>0){a=0;do{h=h/2.6457513110645907;a=a+1|0}while((a|0)!=(d|0))}if(!f){h=+y(+(h*.381966011250105));if(Qb(d)|0)i=+gb(i+.3334731722518321)}else{h=h/3.0;d=(Qb(d)|0)==0;h=+y(+((d?h:h/2.6457513110645907)*.381966011250105))}mb(15568+(c<<4)|0,+gb(+e[16368+(c*24|0)>>3]-i),h,g);return}function $a(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;e=S;S=S+16|0;f=e;Da(a+4|0,f);_a(f,b[a>>2]|0,c,0,d);S=e;return}function ab(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0.0,J=0.0;G=S;S=S+272|0;h=G+256|0;u=G+240|0;D=G;E=G+224|0;F=G+208|0;v=G+176|0;w=G+160|0;x=G+192|0;y=G+144|0;z=G+128|0;A=G+112|0;B=G+96|0;C=G+80|0;b[h>>2]=c;b[u>>2]=b[a>>2];b[u+4>>2]=b[a+4>>2];b[u+8>>2]=b[a+8>>2];b[u+12>>2]=b[a+12>>2];bb(u,h,D);b[g>>2]=0;u=f+d+((f|0)==5&1)|0;if((u|0)<=(d|0)){S=G;return}k=b[h>>2]|0;l=E+4|0;m=v+4|0;n=d+5|0;o=16848+(k<<2)|0;p=16928+(k<<2)|0;q=z+8|0;r=A+8|0;s=B+8|0;t=F+4|0;j=d;a:while(1){i=D+(((j|0)%5|0)<<4)|0;b[F>>2]=b[i>>2];b[F+4>>2]=b[i+4>>2];b[F+8>>2]=b[i+8>>2];b[F+12>>2]=b[i+12>>2];do{}while((cb(F,k,0,1)|0)==2);if((j|0)>(d|0)&(Qb(c)|0)!=0){b[v>>2]=b[F>>2];b[v+4>>2]=b[F+4>>2];b[v+8>>2]=b[F+8>>2];b[v+12>>2]=b[F+12>>2];Da(l,w);f=b[v>>2]|0;h=b[17008+(f*80|0)+(b[E>>2]<<2)>>2]|0;b[v>>2]=b[18608+(f*80|0)+(h*20|0)>>2];i=b[18608+(f*80|0)+(h*20|0)+16>>2]|0;if((i|0)>0){a=0;do{Na(m);a=a+1|0}while((a|0)<(i|0))}i=18608+(f*80|0)+(h*20|0)+4|0;b[x>>2]=b[i>>2];b[x+4>>2]=b[i+4>>2];b[x+8>>2]=b[i+8>>2];Ga(x,(b[o>>2]|0)*3|0);Ea(m,x,m);Ca(m);Da(m,y);I=+(b[p>>2]|0);e[z>>3]=I*3.0;e[q>>3]=0.0;J=I*-1.5;e[A>>3]=J;e[r>>3]=I*2.598076211353316;e[B>>3]=J;e[s>>3]=I*-2.598076211353316;switch(b[17008+((b[v>>2]|0)*80|0)+(b[F>>2]<<2)>>2]|0){case 1:{a=A;f=z;break}case 3:{a=B;f=A;break}case 2:{a=z;f=B;break}default:{a=12;break a}}Fc(w,y,f,a,C);_a(C,b[v>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}if((j|0)<(n|0)){Da(t,v);_a(v,b[F>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1};b[E>>2]=b[F>>2];b[E+4>>2]=b[F+4>>2];b[E+8>>2]=b[F+8>>2];b[E+12>>2]=b[F+12>>2];j=j+1|0;if((j|0)>=(u|0)){a=3;break}}if((a|0)==3){S=G;return}else if((a|0)==12)H(22474,22521,581,22531)}function bb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=S;S=S+128|0;e=j+64|0;f=j;g=e;h=20208;i=g+60|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f;h=20272;i=g+60|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));i=(Qb(b[c>>2]|0)|0)==0;e=i?e:f;f=a+4|0;Ra(f);Sa(f);if(Qb(b[c>>2]|0)|0){La(f);b[c>>2]=(b[c>>2]|0)+1}b[d>>2]=b[a>>2];c=d+4|0;Ea(f,e,c);Ca(c);b[d+16>>2]=b[a>>2];c=d+20|0;Ea(f,e+12|0,c);Ca(c);b[d+32>>2]=b[a>>2];c=d+36|0;Ea(f,e+24|0,c);Ca(c);b[d+48>>2]=b[a>>2];c=d+52|0;Ea(f,e+36|0,c);Ca(c);b[d+64>>2]=b[a>>2];d=d+68|0;Ea(f,e+48|0,d);Ca(d);S=j;return}function cb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=S;S=S+32|0;n=p+12|0;i=p;o=a+4|0;m=b[16928+(c<<2)>>2]|0;l=(e|0)!=0;m=l?m*3|0:m;f=b[o>>2]|0;k=a+8|0;h=b[k>>2]|0;if(l){g=a+12|0;e=b[g>>2]|0;f=h+f+e|0;if((f|0)==(m|0)){o=1;S=p;return o|0}else j=g}else{j=a+12|0;e=b[j>>2]|0;f=h+f+e|0}if((f|0)<=(m|0)){o=0;S=p;return o|0}do if((e|0)>0){e=b[a>>2]|0;if((h|0)>0){g=18608+(e*80|0)+60|0;e=a;break}e=18608+(e*80|0)+40|0;if(!d){g=e;e=a}else{Aa(n,m,0,0);Fa(o,n,i);Oa(i);Ea(i,n,o);g=e;e=a}}else{g=18608+((b[a>>2]|0)*80|0)+20|0;e=a}while(0);b[e>>2]=b[g>>2];f=g+16|0;if((b[f>>2]|0)>0){e=0;do{Na(o);e=e+1|0}while((e|0)<(b[f>>2]|0))}a=g+4|0;b[n>>2]=b[a>>2];b[n+4>>2]=b[a+4>>2];b[n+8>>2]=b[a+8>>2];c=b[16848+(c<<2)>>2]|0;Ga(n,l?c*3|0:c);Ea(o,n,o);Ca(o);if(l)e=((b[k>>2]|0)+(b[o>>2]|0)+(b[j>>2]|0)|0)==(m|0)?1:2;else e=2;o=e;S=p;return o|0}function db(a,b){a=a|0;b=b|0;var c=0;do c=cb(a,b,0,1)|0;while((c|0)==2);return c|0}function eb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0;B=S;S=S+240|0;h=B+224|0;x=B+208|0;y=B;z=B+192|0;A=B+176|0;s=B+160|0;t=B+144|0;u=B+128|0;v=B+112|0;w=B+96|0;b[h>>2]=c;b[x>>2]=b[a>>2];b[x+4>>2]=b[a+4>>2];b[x+8>>2]=b[a+8>>2];b[x+12>>2]=b[a+12>>2];fb(x,h,y);b[g>>2]=0;r=f+d+((f|0)==6&1)|0;if((r|0)<=(d|0)){S=B;return}k=b[h>>2]|0;l=d+6|0;m=16928+(k<<2)|0;n=t+8|0;o=u+8|0;p=v+8|0;q=z+4|0;i=0;j=d;f=-1;a:while(1){h=(j|0)%6|0;a=y+(h<<4)|0;b[z>>2]=b[a>>2];b[z+4>>2]=b[a+4>>2];b[z+8>>2]=b[a+8>>2];b[z+12>>2]=b[a+12>>2];a=i;i=cb(z,k,0,1)|0;if((j|0)>(d|0)&(Qb(c)|0)!=0?((a|0)!=1?(b[z>>2]|0)!=(f|0):0):0){Da(y+(((h+5|0)%6|0)<<4)+4|0,A);Da(y+(h<<4)+4|0,s);C=+(b[m>>2]|0);e[t>>3]=C*3.0;e[n>>3]=0.0;D=C*-1.5;e[u>>3]=D;e[o>>3]=C*2.598076211353316;e[v>>3]=D;e[p>>3]=C*-2.598076211353316;h=b[x>>2]|0;switch(b[17008+(h*80|0)+(((f|0)==(h|0)?b[z>>2]|0:f)<<2)>>2]|0){case 1:{a=u;f=t;break}case 3:{a=v;f=u;break}case 2:{a=t;f=v;break}default:{a=8;break a}}Fc(A,s,f,a,w);if(!(Gc(A,w)|0)?!(Gc(s,w)|0):0){_a(w,b[x>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}}if((j|0)<(l|0)){Da(q,A);_a(A,b[z>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}j=j+1|0;if((j|0)>=(r|0)){a=3;break}else f=b[z>>2]|0}if((a|0)==3){S=B;return}else if((a|0)==8)H(22557,22521,746,22602)}function fb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=S;S=S+160|0;e=j+80|0;f=j;g=e;h=20336;i=g+72|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f;h=20416;i=g+72|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));i=(Qb(b[c>>2]|0)|0)==0;e=i?e:f;f=a+4|0;Ra(f);Sa(f);if(Qb(b[c>>2]|0)|0){La(f);b[c>>2]=(b[c>>2]|0)+1}b[d>>2]=b[a>>2];c=d+4|0;Ea(f,e,c);Ca(c);b[d+16>>2]=b[a>>2];c=d+20|0;Ea(f,e+12|0,c);Ca(c);b[d+32>>2]=b[a>>2];c=d+36|0;Ea(f,e+24|0,c);Ca(c);b[d+48>>2]=b[a>>2];c=d+52|0;Ea(f,e+36|0,c);Ca(c);b[d+64>>2]=b[a>>2];c=d+68|0;Ea(f,e+48|0,c);Ca(c);b[d+80>>2]=b[a>>2];d=d+84|0;Ea(f,e+60|0,d);Ca(d);S=j;return}function gb(a){a=+a;var b=0.0;b=a<0.0?a+6.283185307179586:a;return +(!(a>=6.283185307179586)?b:b+-6.283185307179586)}function hb(a,b){a=a|0;b=b|0;if(!(+q(+(+e[a>>3]-+e[b>>3]))<1.7453292519943298e-11)){b=0;return b|0}b=+q(+(+e[a+8>>3]-+e[b+8>>3]))<1.7453292519943298e-11;return b|0}function ib(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0)}function jb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0*6371.007180918475)}function kb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0*6371.007180918475*1.0e3)}function lb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0,h=0.0;g=+e[b>>3];d=+t(+g);f=+e[b+8>>3]-+e[a+8>>3];h=d*+u(+f);c=+e[a>>3];return +(+z(+h,+(+u(+g)*+t(+c)-+t(+f)*(d*+u(+c)))))}function mb(a,c,d,f){a=a|0;c=+c;d=+d;f=f|0;var g=0,h=0.0,i=0.0,j=0.0;if(d<1.0e-16){b[f>>2]=b[a>>2];b[f+4>>2]=b[a+4>>2];b[f+8>>2]=b[a+8>>2];b[f+12>>2]=b[a+12>>2];return}h=c<0.0?c+6.283185307179586:c;h=!(c>=6.283185307179586)?h:h+-6.283185307179586;do if(h<1.0e-16){c=+e[a>>3]+d;e[f>>3]=c;g=f}else{g=+q(+(h+-3.141592653589793))<1.0e-16;c=+e[a>>3];if(g){c=c-d;e[f>>3]=c;g=f;break}i=+t(+d);d=+u(+d);c=i*+u(+c)+ +t(+h)*(d*+t(+c));c=c>1.0?1.0:c;c=+x(+(c<-1.0?-1.0:c));e[f>>3]=c;if(+q(+(c+-1.5707963267948966))<1.0e-16){e[f>>3]=1.5707963267948966;e[f+8>>3]=0.0;return}if(+q(+(c+1.5707963267948966))<1.0e-16){e[f>>3]=-1.5707963267948966;e[f+8>>3]=0.0;return}j=+t(+c);h=d*+u(+h)/j;d=+e[a>>3];c=(i-+u(+c)*+u(+d))/+t(+d)/j;i=h>1.0?1.0:h;c=c>1.0?1.0:c;c=+e[a+8>>3]+ +z(+(i<-1.0?-1.0:i),+(c<-1.0?-1.0:c));if(c>3.141592653589793)do c=c+-6.283185307179586;while(c>3.141592653589793);if(c<-3.141592653589793)do c=c+6.283185307179586;while(c<-3.141592653589793);e[f+8>>3]=c;return}while(0);if(+q(+(c+-1.5707963267948966))<1.0e-16){e[g>>3]=1.5707963267948966;e[f+8>>3]=0.0;return}if(+q(+(c+1.5707963267948966))<1.0e-16){e[g>>3]=-1.5707963267948966;e[f+8>>3]=0.0;return}c=+e[a+8>>3];if(c>3.141592653589793)do c=c+-6.283185307179586;while(c>3.141592653589793);if(c<-3.141592653589793)do c=c+6.283185307179586;while(c<-3.141592653589793);e[f+8>>3]=c;return}function nb(a){a=a|0;return +(+e[20496+(a<<3)>>3])}function ob(a){a=a|0;return +(+e[20624+(a<<3)>>3])}function pb(a){a=a|0;return +(+e[20752+(a<<3)>>3])}function qb(a){a=a|0;return +(+e[20880+(a<<3)>>3])}function rb(a){a=a|0;var c=0;c=21008+(a<<3)|0;a=b[c>>2]|0;F(b[c+4>>2]|0);return a|0}function sb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;n=+e[b>>3];l=+e[a>>3];j=+u(+((n-l)*.5));g=+e[b+8>>3];k=+e[a+8>>3];h=+u(+((g-k)*.5));i=+t(+l);m=+t(+n);h=j*j+h*(m*i*h);h=+z(+(+r(+h)),+(+r(+(1.0-h))))*2.0;j=+e[c>>3];n=+u(+((j-n)*.5));d=+e[c+8>>3];g=+u(+((d-g)*.5));f=+t(+j);g=n*n+g*(m*f*g);g=+z(+(+r(+g)),+(+r(+(1.0-g))))*2.0;j=+u(+((l-j)*.5));d=+u(+((k-d)*.5));d=j*j+d*(i*f*d);d=+z(+(+r(+d)),+(+r(+(1.0-d))))*2.0;f=(h+g+d)*.5;return +(+y(+(+r(+(+v(+(f*.5))*+v(+((f-h)*.5))*+v(+((f-g)*.5))*+v(+((f-d)*.5))))))*4.0)}function tb(a,c){a=a|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;g=S;S=S+192|0;e=g+168|0;f=g;Ub(a,c,e);Vb(a,c,f);c=b[f>>2]|0;if((c|0)<=0){d=0.0;S=g;return +d}d=+sb(f+8|0,f+8+(((c|0)!=1&1)<<4)|0,e)+0.0;if((c|0)==1){S=g;return +d}a=1;do{h=a;a=a+1|0;d=d+ +sb(f+8+(h<<4)|0,f+8+(((a|0)%(c|0)|0)<<4)|0,e)}while((a|0)<(c|0));S=g;return +d}function ub(a,c){a=a|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;g=S;S=S+192|0;e=g+168|0;f=g;Ub(a,c,e);Vb(a,c,f);c=b[f>>2]|0;if((c|0)>0){d=+sb(f+8|0,f+8+(((c|0)!=1&1)<<4)|0,e)+0.0;if((c|0)!=1){a=1;do{h=a;a=a+1|0;d=d+ +sb(f+8+(h<<4)|0,f+8+(((a|0)%(c|0)|0)<<4)|0,e)}while((a|0)<(c|0))}}else d=0.0;S=g;return +(d*6371.007180918475*6371.007180918475)}function vb(a,c){a=a|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;g=S;S=S+192|0;e=g+168|0;f=g;Ub(a,c,e);Vb(a,c,f);c=b[f>>2]|0;if((c|0)>0){d=+sb(f+8|0,f+8+(((c|0)!=1&1)<<4)|0,e)+0.0;if((c|0)!=1){a=1;do{h=a;a=a+1|0;d=d+ +sb(f+8+(h<<4)|0,f+8+(((a|0)%(c|0)|0)<<4)|0,e)}while((a|0)<(c|0))}}else d=0.0;S=g;return +(d*6371.007180918475*6371.007180918475*1.0e3*1.0e3)}function wb(a,c){a=a|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0,i=0,j=0.0,k=0.0,l=0.0;i=S;S=S+176|0;h=i;fc(a,c,h);a=b[h>>2]|0;if((a|0)<=1){g=0.0;S=i;return +g}c=a+-1|0;a=0;d=0.0;f=+e[h+8>>3];g=+e[h+16>>3];do{a=a+1|0;k=f;f=+e[h+8+(a<<4)>>3];l=+u(+((f-k)*.5));j=g;g=+e[h+8+(a<<4)+8>>3];j=+u(+((g-j)*.5));j=l*l+j*(+t(+f)*+t(+k)*j);d=d+ +z(+(+r(+j)),+(+r(+(1.0-j))))*2.0}while((a|0)<(c|0));S=i;return +d}function xb(a,c){a=a|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0,i=0,j=0.0,k=0.0,l=0.0;i=S;S=S+176|0;h=i;fc(a,c,h);a=b[h>>2]|0;if((a|0)<=1){g=0.0;S=i;return +g}c=a+-1|0;a=0;d=0.0;f=+e[h+8>>3];g=+e[h+16>>3];do{a=a+1|0;k=f;f=+e[h+8+(a<<4)>>3];l=+u(+((f-k)*.5));j=g;g=+e[h+8+(a<<4)+8>>3];j=+u(+((g-j)*.5));j=l*l+j*(+t(+k)*+t(+f)*j);d=d+ +z(+(+r(+j)),+(+r(+(1.0-j))))*2.0}while((a|0)!=(c|0));l=d*6371.007180918475;S=i;return +l}function yb(a,c){a=a|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0,i=0,j=0.0,k=0.0,l=0.0;i=S;S=S+176|0;h=i;fc(a,c,h);a=b[h>>2]|0;if((a|0)<=1){g=0.0;S=i;return +g}c=a+-1|0;a=0;d=0.0;f=+e[h+8>>3];g=+e[h+16>>3];do{a=a+1|0;k=f;f=+e[h+8+(a<<4)>>3];l=+u(+((f-k)*.5));j=g;g=+e[h+8+(a<<4)+8>>3];j=+u(+((g-j)*.5));j=l*l+j*(+t(+k)*+t(+f)*j);d=d+ +z(+(+r(+j)),+(+r(+(1.0-j))))*2.0}while((a|0)!=(c|0));l=d*6371.007180918475*1.0e3;S=i;return +l}function zb(a,b){a=a|0;b=b|0;b=bd(a|0,b|0,45)|0;G()|0;return b&127|0}function Ab(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(!(0==0&(b&-16777216|0)==134217728)){b=0;return b|0}g=bd(a|0,b|0,45)|0;G()|0;g=g&127;if(g>>>0>121){b=0;return b|0}c=bd(a|0,b|0,52)|0;G()|0;c=c&15;do if(c|0){e=1;d=0;while(1){f=bd(a|0,b|0,(15-e|0)*3|0)|0;G()|0;f=f&7;if((f|0)!=0&(d^1))if((f|0)==1&(la(g)|0)!=0){h=0;d=13;break}else d=1;if((f|0)==7){h=0;d=13;break}if(e>>>0<c>>>0)e=e+1|0;else{d=9;break}}if((d|0)==9){if((c|0)==15)h=1;else break;return h|0}else if((d|0)==13)return h|0}while(0);while(1){h=bd(a|0,b|0,(14-c|0)*3|0)|0;G()|0;if(!((h&7|0)==7&0==0)){h=0;d=13;break}if(c>>>0<14)c=c+1|0;else{h=1;d=13;break}}if((d|0)==13)return h|0;return 0}function Bb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=bd(a|0,b|0,52)|0;G()|0;d=d&15;if((d|0)>=(c|0)){if((d|0)!=(c|0))if(c>>>0<=15){e=cd(c|0,0,52)|0;a=e|a;b=G()|0|b&-15728641;if((d|0)>(c|0))do{e=cd(7,0,(14-c|0)*3|0)|0;c=c+1|0;a=e|a;b=G()|0|b}while((c|0)<(d|0))}else{b=0;a=0}}else{b=0;a=0}F(b|0);return a|0}function Cb(a,b,c){a=a|0;b=b|0;c=c|0;a=bd(a|0,b|0,52)|0;G()|0;a=a&15;if(!((c|0)<16&(a|0)<=(c|0))){c=0;return c|0}c=sc(7,c-a|0)|0;return c|0}function Db(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=bd(a|0,c|0,52)|0;G()|0;h=h&15;if(!((d|0)<16&(h|0)<=(d|0)))return;if((h|0)==(d|0)){d=e;b[d>>2]=a;b[d+4>>2]=c;return}j=sc(7,d-h|0)|0;k=(j|0)/7|0;i=bd(a|0,c|0,45)|0;G()|0;if(!(la(i&127)|0))g=0;else{a:do if(!h)f=0;else{g=1;while(1){f=bd(a|0,c|0,(15-g|0)*3|0)|0;G()|0;f=f&7;if(f|0)break a;if(g>>>0<h>>>0)g=g+1|0;else{f=0;break}}}while(0);g=(f|0)==0}l=cd(h+1|0,0,52)|0;f=G()|0|c&-15728641;i=(14-h|0)*3|0;c=cd(7,0,i|0)|0;c=(l|a)&~c;h=f&~(G()|0);Db(c,h,d,e);f=e+(k<<3)|0;if(!g){l=cd(1,0,i|0)|0;Db(l|c,G()|0|h,d,f);l=f+(k<<3)|0;j=cd(2,0,i|0)|0;Db(j|c,G()|0|h,d,l);l=l+(k<<3)|0;j=cd(3,0,i|0)|0;Db(j|c,G()|0|h,d,l);l=l+(k<<3)|0;j=cd(4,0,i|0)|0;Db(j|c,G()|0|h,d,l);l=l+(k<<3)|0;j=cd(5,0,i|0)|0;Db(j|c,G()|0|h,d,l);j=cd(6,0,i|0)|0;Db(j|c,G()|0|h,d,l+(k<<3)|0);return}g=f+(k<<3)|0;if((j|0)>6){j=f+8|0;l=(g>>>0>j>>>0?g:j)+-1+(0-f)|0;gd(f|0,0,l+8&-8|0)|0;f=j+(l>>>3<<3)|0}l=cd(2,0,i|0)|0;Db(l|c,G()|0|h,d,f);l=f+(k<<3)|0;j=cd(3,0,i|0)|0;Db(j|c,G()|0|h,d,l);l=l+(k<<3)|0;j=cd(4,0,i|0)|0;Db(j|c,G()|0|h,d,l);l=l+(k<<3)|0;j=cd(5,0,i|0)|0;Db(j|c,G()|0|h,d,l);j=cd(6,0,i|0)|0;Db(j|c,G()|0|h,d,l+(k<<3)|0);return}function Eb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=bd(a|0,b|0,45)|0;G()|0;if(!(la(e&127)|0)){e=0;return e|0}e=bd(a|0,b|0,52)|0;G()|0;e=e&15;a:do if(!e)c=0;else{d=1;while(1){c=bd(a|0,b|0,(15-d|0)*3|0)|0;G()|0;c=c&7;if(c|0)break a;if(d>>>0<e>>>0)d=d+1|0;else{c=0;break}}}while(0);e=(c|0)==0&1;return e|0}function Fb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=bd(a|0,b|0,52)|0;G()|0;d=d&15;if((c|0)<16&(d|0)<=(c|0)){if((d|0)!=(c|0)){e=cd(c|0,0,52)|0;a=e|a;b=G()|0|b&-15728641;if((d|0)<(c|0))do{e=cd(7,0,(14-d|0)*3|0)|0;d=d+1|0;a=a&~e;b=b&~(G()|0)}while((d|0)<(c|0))}}else{b=0;a=0}F(b|0);return a|0}function Gb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if(!d){y=0;return y|0}f=a;e=b[f>>2]|0;f=b[f+4>>2]|0;if(0==0&(f&15728640|0)==0){if((d|0)<=0){y=0;return y|0}y=c;b[y>>2]=e;b[y+4>>2]=f;if((d|0)==1){y=0;return y|0}e=1;do{w=a+(e<<3)|0;x=b[w+4>>2]|0;y=c+(e<<3)|0;b[y>>2]=b[w>>2];b[y+4>>2]=x;e=e+1|0}while((e|0)!=(d|0));e=0;return e|0}w=d<<3;x=Vc(w)|0;if(!x){y=-3;return y|0}fd(x|0,a|0,w|0)|0;v=Xc(d,8)|0;if(!v){Wc(x);y=-3;return y|0}e=d;a:while(1){h=x;l=b[h>>2]|0;h=b[h+4>>2]|0;t=bd(l|0,h|0,52)|0;G()|0;t=t&15;u=t+-1|0;s=(e|0)>0;b:do if(s){r=((e|0)<0)<<31>>31;p=cd(u|0,0,52)|0;q=G()|0;if(u>>>0>15){f=0;a=l;d=h;while(1){if(!((a|0)==0&(d|0)==0)){g=bd(a|0,d|0,52)|0;G()|0;g=g&15;i=(g|0)<(u|0);g=(g|0)==(u|0);k=i?0:g?a:0;a=i?0:g?d:0;d=ad(k|0,a|0,e|0,r|0)|0;G()|0;g=v+(d<<3)|0;i=g;j=b[i>>2]|0;i=b[i+4>>2]|0;if((j|0)==0&(i|0)==0)d=k;else{p=0;o=d;n=i;d=k;while(1){if((p|0)>(e|0)){y=41;break a}if((j|0)==(d|0)&(n&-117440513|0)==(a|0)){k=bd(j|0,n|0,56)|0;G()|0;k=k&7;m=k+1|0;q=bd(j|0,n|0,45)|0;G()|0;c:do if(!(la(q&127)|0))i=7;else{j=bd(j|0,n|0,52)|0;G()|0;j=j&15;if(!j){i=6;break}i=1;while(1){q=cd(7,0,(15-i|0)*3|0)|0;if(!((q&d|0)==0&((G()|0)&a|0)==0)){i=7;break c}if(i>>>0<j>>>0)i=i+1|0;else{i=6;break}}}while(0);if((k+2|0)>>>0>i>>>0){y=51;break a}q=cd(m|0,0,56)|0;a=G()|0|a&-117440513;i=g;b[i>>2]=0;b[i+4>>2]=0;i=o;d=q|d}else i=(o+1|0)%(e|0)|0;g=v+(i<<3)|0;n=g;j=b[n>>2]|0;n=b[n+4>>2]|0;if((j|0)==0&(n|0)==0)break;else{p=p+1|0;o=i}}}q=g;b[q>>2]=d;b[q+4>>2]=a}f=f+1|0;if((f|0)>=(e|0))break b;d=x+(f<<3)|0;a=b[d>>2]|0;d=b[d+4>>2]|0}}f=0;a=l;d=h;while(1){if(!((a|0)==0&(d|0)==0)){i=bd(a|0,d|0,52)|0;G()|0;i=i&15;if((i|0)>=(u|0)){if((i|0)!=(u|0)){a=a|p;d=d&-15728641|q;if(i>>>0>=t>>>0){g=u;do{o=cd(7,0,(14-g|0)*3|0)|0;g=g+1|0;a=o|a;d=G()|0|d}while(g>>>0<i>>>0)}}}else{a=0;d=0}i=ad(a|0,d|0,e|0,r|0)|0;G()|0;g=v+(i<<3)|0;j=g;k=b[j>>2]|0;j=b[j+4>>2]|0;if(!((k|0)==0&(j|0)==0)){o=0;while(1){if((o|0)>(e|0)){y=41;break a}if((k|0)==(a|0)&(j&-117440513|0)==(d|0)){m=bd(k|0,j|0,56)|0;G()|0;m=m&7;n=m+1|0;z=bd(k|0,j|0,45)|0;G()|0;d:do if(!(la(z&127)|0))j=7;else{k=bd(k|0,j|0,52)|0;G()|0;k=k&15;if(!k){j=6;break}j=1;while(1){z=cd(7,0,(15-j|0)*3|0)|0;if(!((z&a|0)==0&((G()|0)&d|0)==0)){j=7;break d}if(j>>>0<k>>>0)j=j+1|0;else{j=6;break}}}while(0);if((m+2|0)>>>0>j>>>0){y=51;break a}z=cd(n|0,0,56)|0;d=G()|0|d&-117440513;n=g;b[n>>2]=0;b[n+4>>2]=0;a=z|a}else i=(i+1|0)%(e|0)|0;g=v+(i<<3)|0;j=g;k=b[j>>2]|0;j=b[j+4>>2]|0;if((k|0)==0&(j|0)==0)break;else o=o+1|0}}z=g;b[z>>2]=a;b[z+4>>2]=d}f=f+1|0;if((f|0)>=(e|0))break b;d=x+(f<<3)|0;a=b[d>>2]|0;d=b[d+4>>2]|0}}while(0);if((e+5|0)>>>0<11){y=99;break}q=Xc((e|0)/6|0,8)|0;if(!q){y=58;break}e:do if(s){o=0;n=0;do{i=v+(o<<3)|0;a=i;f=b[a>>2]|0;a=b[a+4>>2]|0;if(!((f|0)==0&(a|0)==0)){j=bd(f|0,a|0,56)|0;G()|0;j=j&7;d=j+1|0;k=a&-117440513;z=bd(f|0,a|0,45)|0;G()|0;f:do if(la(z&127)|0){m=bd(f|0,a|0,52)|0;G()|0;m=m&15;if(m|0){g=1;while(1){z=cd(7,0,(15-g|0)*3|0)|0;if(!((f&z|0)==0&(k&(G()|0)|0)==0))break f;if(g>>>0<m>>>0)g=g+1|0;else break}}a=cd(d|0,0,56)|0;f=a|f;a=G()|0|k;d=i;b[d>>2]=f;b[d+4>>2]=a;d=j+2|0}while(0);if((d|0)==7){z=q+(n<<3)|0;b[z>>2]=f;b[z+4>>2]=a&-117440513;n=n+1|0}}o=o+1|0}while((o|0)!=(e|0));if(s){p=((e|0)<0)<<31>>31;m=cd(u|0,0,52)|0;o=G()|0;if(u>>>0>15){a=0;f=0;while(1){do if(!((l|0)==0&(h|0)==0)){j=bd(l|0,h|0,52)|0;G()|0;j=j&15;g=(j|0)<(u|0);j=(j|0)==(u|0);i=g?0:j?l:0;j=g?0:j?h:0;g=ad(i|0,j|0,e|0,p|0)|0;G()|0;d=0;while(1){if((d|0)>(e|0)){y=98;break a}z=v+(g<<3)|0;k=b[z+4>>2]|0;if((k&-117440513|0)==(j|0)?(b[z>>2]|0)==(i|0):0){y=70;break}g=(g+1|0)%(e|0)|0;z=v+(g<<3)|0;if((b[z>>2]|0)==(i|0)?(b[z+4>>2]|0)==(j|0):0)break;else d=d+1|0}if((y|0)==70?(y=0,0==0&(k&117440512|0)==100663296):0)break;z=c+(f<<3)|0;b[z>>2]=l;b[z+4>>2]=h;f=f+1|0}while(0);a=a+1|0;if((a|0)>=(e|0)){e=n;break e}h=x+(a<<3)|0;l=b[h>>2]|0;h=b[h+4>>2]|0}}a=0;f=0;while(1){do if(!((l|0)==0&(h|0)==0)){j=bd(l|0,h|0,52)|0;G()|0;j=j&15;if((j|0)>=(u|0))if((j|0)!=(u|0)){d=l|m;g=h&-15728641|o;if(j>>>0<t>>>0)j=g;else{i=u;do{z=cd(7,0,(14-i|0)*3|0)|0;i=i+1|0;d=z|d;g=G()|0|g}while(i>>>0<j>>>0);j=g}}else{d=l;j=h}else{d=0;j=0}i=ad(d|0,j|0,e|0,p|0)|0;G()|0;g=0;while(1){if((g|0)>(e|0)){y=98;break a}z=v+(i<<3)|0;k=b[z+4>>2]|0;if((k&-117440513|0)==(j|0)?(b[z>>2]|0)==(d|0):0){y=93;break}i=(i+1|0)%(e|0)|0;z=v+(i<<3)|0;if((b[z>>2]|0)==(d|0)?(b[z+4>>2]|0)==(j|0):0)break;else g=g+1|0}if((y|0)==93?(y=0,0==0&(k&117440512|0)==100663296):0)break;z=c+(f<<3)|0;b[z>>2]=l;b[z+4>>2]=h;f=f+1|0}while(0);a=a+1|0;if((a|0)>=(e|0)){e=n;break e}h=x+(a<<3)|0;l=b[h>>2]|0;h=b[h+4>>2]|0}}else{f=0;e=n}}else{f=0;e=0}while(0);gd(v|0,0,w|0)|0;fd(x|0,q|0,e<<3|0)|0;Wc(q);if(!e)break;else c=c+(f<<3)|0}if((y|0)==41){Wc(x);Wc(v);z=-1;return z|0}else if((y|0)==51){Wc(x);Wc(v);z=-2;return z|0}else if((y|0)==58){Wc(x);Wc(v);z=-3;return z|0}else if((y|0)==98){Wc(q);Wc(x);Wc(v);z=-1;return z|0}else if((y|0)==99)fd(c|0,x|0,e<<3|0)|0;Wc(x);Wc(v);z=0;return z|0}function Hb(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;if((c|0)<=0){f=0;return f|0}if((f|0)>=16){g=0;while(1){l=a+(g<<3)|0;if(!((b[l>>2]|0)==0&(b[l+4>>2]|0)==0)){g=14;break}g=g+1|0;if((g|0)>=(c|0)){h=0;g=16;break}}if((g|0)==14)return ((e|0)>0?-2:-1)|0;else if((g|0)==16)return h|0}g=0;l=0;a:while(1){k=a+(l<<3)|0;i=k;h=b[i>>2]|0;i=b[i+4>>2]|0;do if(!((h|0)==0&(i|0)==0)){if((g|0)>=(e|0)){h=-1;g=16;break a}j=bd(h|0,i|0,52)|0;G()|0;j=j&15;if((j|0)>(f|0)){h=-2;g=16;break a}if((j|0)==(f|0)){k=d+(g<<3)|0;b[k>>2]=h;b[k+4>>2]=i;g=g+1|0;break}h=(sc(7,f-j|0)|0)+g|0;if((h|0)>(e|0)){h=-1;g=16;break a}Db(b[k>>2]|0,b[k+4>>2]|0,f,d+(g<<3)|0);g=h}while(0);l=l+1|0;if((l|0)>=(c|0)){h=0;g=16;break}}if((g|0)==16)return h|0;return 0}function Ib(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;if((c|0)<=0){d=0;return d|0}if((d|0)>=16){e=0;while(1){h=a+(e<<3)|0;if(!((b[h>>2]|0)==0&(b[h+4>>2]|0)==0)){e=-1;f=13;break}e=e+1|0;if((e|0)>=(c|0)){e=0;f=13;break}}if((f|0)==13)return e|0}e=0;h=0;a:while(1){f=a+(h<<3)|0;g=b[f>>2]|0;f=b[f+4>>2]|0;do if(!((g|0)==0&(f|0)==0)){f=bd(g|0,f|0,52)|0;G()|0;f=f&15;if((f|0)>(d|0)){e=-1;f=13;break a}if((f|0)==(d|0)){e=e+1|0;break}else{e=(sc(7,d-f|0)|0)+e|0;break}}while(0);h=h+1|0;if((h|0)>=(c|0)){f=13;break}}if((f|0)==13)return e|0;return 0}function Jb(a,b){a=a|0;b=b|0;b=bd(a|0,b|0,52)|0;G()|0;return b&1|0}function Kb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=bd(a|0,b|0,52)|0;G()|0;e=e&15;if(!e){e=0;return e|0}d=1;while(1){c=bd(a|0,b|0,(15-d|0)*3|0)|0;G()|0;c=c&7;if(c|0){d=5;break}if(d>>>0<e>>>0)d=d+1|0;else{c=0;d=5;break}}if((d|0)==5)return c|0;return 0}function Lb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=bd(a|0,b|0,52)|0;G()|0;i=i&15;if(!i){h=b;i=a;F(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=cd(7,0,f|0)|0;e=G()|0;g=bd(a|0,b|0,f|0)|0;G()|0;f=cd(Pa(g&7)|0,0,f|0)|0;g=G()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=bd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=bd(a|0,b|0,(15-c|0)*3|0)|0;G()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0<d>>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){g=(15-c|0)*3|0;e=bd(a|0,b|0,g|0)|0;G()|0;f=cd(7,0,g|0)|0;b=b&~(G()|0);g=cd(Pa(e&7)|0,0,g|0)|0;a=a&~f|g;b=b|(G()|0);if(c>>>0<d>>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0<i>>>0)h=h+1|0;else break}F(b|0);return a|0}function Mb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=bd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d){c=b;d=a;F(c|0);return d|0}c=1;while(1){f=(15-c|0)*3|0;g=bd(a|0,b|0,f|0)|0;G()|0;e=cd(7,0,f|0)|0;b=b&~(G()|0);f=cd(Pa(g&7)|0,0,f|0)|0;a=f|a&~e;b=G()|0|b;if(c>>>0<d>>>0)c=c+1|0;else break}F(b|0);return a|0}function Nb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=bd(a|0,b|0,52)|0;G()|0;i=i&15;if(!i){h=b;i=a;F(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=cd(7,0,f|0)|0;e=G()|0;g=bd(a|0,b|0,f|0)|0;G()|0;f=cd(Qa(g&7)|0,0,f|0)|0;g=G()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=bd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=bd(a|0,b|0,(15-c|0)*3|0)|0;G()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0<d>>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){e=(15-c|0)*3|0;f=cd(7,0,e|0)|0;g=b&~(G()|0);b=bd(a|0,b|0,e|0)|0;G()|0;b=cd(Qa(b&7)|0,0,e|0)|0;a=a&~f|b;b=g|(G()|0);if(c>>>0<d>>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0<i>>>0)h=h+1|0;else break}F(b|0);return a|0}function Ob(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=bd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d){c=b;d=a;F(c|0);return d|0}c=1;while(1){g=(15-c|0)*3|0;f=cd(7,0,g|0)|0;e=b&~(G()|0);b=bd(a|0,b|0,g|0)|0;G()|0;b=cd(Qa(b&7)|0,0,g|0)|0;a=b|a&~f;b=G()|0|e;if(c>>>0<d>>>0)c=c+1|0;else break}F(b|0);return a|0}function Pb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=S;S=S+64|0;i=j+40|0;e=j+24|0;f=j+12|0;g=j;cd(c|0,0,52)|0;d=G()|0|134225919;if(!c){if((b[a+4>>2]|0)>2){h=0;i=0;F(h|0);S=j;return i|0}if((b[a+8>>2]|0)>2){h=0;i=0;F(h|0);S=j;return i|0}if((b[a+12>>2]|0)>2){h=0;i=0;F(h|0);S=j;return i|0}cd(na(a)|0,0,45)|0;h=G()|0|d;i=-1;F(h|0);S=j;return i|0};b[i>>2]=b[a>>2];b[i+4>>2]=b[a+4>>2];b[i+8>>2]=b[a+8>>2];b[i+12>>2]=b[a+12>>2];h=i+4|0;if((c|0)>0){a=-1;while(1){b[e>>2]=b[h>>2];b[e+4>>2]=b[h+4>>2];b[e+8>>2]=b[h+8>>2];if(!(c&1)){Ja(h);b[f>>2]=b[h>>2];b[f+4>>2]=b[h+4>>2];b[f+8>>2]=b[h+8>>2];La(f)}else{Ia(h);b[f>>2]=b[h>>2];b[f+4>>2]=b[h+4>>2];b[f+8>>2]=b[h+8>>2];Ka(f)}Fa(e,f,g);Ca(g);l=(15-c|0)*3|0;k=cd(7,0,l|0)|0;d=d&~(G()|0);l=cd(Ha(g)|0,0,l|0)|0;a=l|a&~k;d=G()|0|d;if((c|0)>1)c=c+-1|0;else break}}else a=-1;a:do if(((b[h>>2]|0)<=2?(b[i+8>>2]|0)<=2:0)?(b[i+12>>2]|0)<=2:0){e=na(i)|0;c=cd(e|0,0,45)|0;c=c|a;a=G()|0|d&-1040385;g=oa(i)|0;if(!(la(e)|0)){if((g|0)<=0)break;f=0;while(1){e=bd(c|0,a|0,52)|0;G()|0;e=e&15;if(e){d=1;while(1){l=(15-d|0)*3|0;i=bd(c|0,a|0,l|0)|0;G()|0;k=cd(7,0,l|0)|0;a=a&~(G()|0);l=cd(Pa(i&7)|0,0,l|0)|0;c=c&~k|l;a=a|(G()|0);if(d>>>0<e>>>0)d=d+1|0;else break}}f=f+1|0;if((f|0)==(g|0))break a}}f=bd(c|0,a|0,52)|0;G()|0;f=f&15;b:do if(f){d=1;c:while(1){l=bd(c|0,a|0,(15-d|0)*3|0)|0;G()|0;switch(l&7){case 1:break c;case 0:break;default:break b}if(d>>>0<f>>>0)d=d+1|0;else break b}if(ra(e,b[i>>2]|0)|0){d=1;while(1){i=(15-d|0)*3|0;k=cd(7,0,i|0)|0;l=a&~(G()|0);a=bd(c|0,a|0,i|0)|0;G()|0;a=cd(Qa(a&7)|0,0,i|0)|0;c=c&~k|a;a=l|(G()|0);if(d>>>0<f>>>0)d=d+1|0;else break}}else{d=1;while(1){l=(15-d|0)*3|0;i=bd(c|0,a|0,l|0)|0;G()|0;k=cd(7,0,l|0)|0;a=a&~(G()|0);l=cd(Pa(i&7)|0,0,l|0)|0;c=c&~k|l;a=a|(G()|0);if(d>>>0<f>>>0)d=d+1|0;else break}}}while(0);if((g|0)>0){d=0;do{c=Lb(c,a)|0;a=G()|0;d=d+1|0}while((d|0)!=(g|0))}}else{c=0;a=0}while(0);k=a;l=c;F(k|0);S=j;return l|0}function Qb(a){a=a|0;return (a|0)%2|0|0}function Rb(a,c){a=a|0;c=c|0;var d=0,e=0;e=S;S=S+16|0;d=e;if((c>>>0<=15?!(0==0?(b[a+4>>2]&2146435072|0)==2146435072:0):0)?!(0==0?(b[a+8+4>>2]&2146435072|0)==2146435072:0):0){Ya(a,c,d);c=Pb(d,c)|0;a=G()|0}else{a=0;c=0}F(a|0);S=e;return c|0}function Sb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=d+4|0;g=bd(a|0,c|0,52)|0;G()|0;g=g&15;h=bd(a|0,c|0,45)|0;G()|0;e=(g|0)==0;if(!(la(h&127)|0)){if(e){h=0;return h|0}if((b[f>>2]|0)==0?(b[d+8>>2]|0)==0:0)e=(b[d+12>>2]|0)!=0&1;else e=1}else if(e){h=1;return h|0}else e=1;d=1;while(1){if(!(d&1))La(f);else Ka(f);h=bd(a|0,c|0,(15-d|0)*3|0)|0;G()|0;Ma(f,h&7);if(d>>>0<g>>>0)d=d+1|0;else break}return e|0}function Tb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=S;S=S+16|0;j=l;k=bd(a|0,c|0,45)|0;G()|0;k=k&127;a:do if((la(k)|0)!=0?(g=bd(a|0,c|0,52)|0,G()|0,g=g&15,(g|0)!=0):0){e=1;b:while(1){i=bd(a|0,c|0,(15-e|0)*3|0)|0;G()|0;switch(i&7){case 5:break b;case 0:break;default:{e=c;break a}}if(e>>>0<g>>>0)e=e+1|0;else{e=c;break a}}f=1;e=c;while(1){c=(15-f|0)*3|0;h=cd(7,0,c|0)|0;i=e&~(G()|0);e=bd(a|0,e|0,c|0)|0;G()|0;e=cd(Qa(e&7)|0,0,c|0)|0;a=a&~h|e;e=i|(G()|0);if(f>>>0<g>>>0)f=f+1|0;else break}}else e=c;while(0);i=7728+(k*28|0)|0;b[d>>2]=b[i>>2];b[d+4>>2]=b[i+4>>2];b[d+8>>2]=b[i+8>>2];b[d+12>>2]=b[i+12>>2];if(!(Sb(a,e,d)|0)){S=l;return}h=d+4|0;b[j>>2]=b[h>>2];b[j+4>>2]=b[h+4>>2];b[j+8>>2]=b[h+8>>2];g=bd(a|0,e|0,52)|0;G()|0;i=g&15;if(!(g&1))g=i;else{La(h);g=i+1|0}if(!(la(k)|0))e=0;else{c:do if(!i)e=0;else{c=1;while(1){f=bd(a|0,e|0,(15-c|0)*3|0)|0;G()|0;f=f&7;if(f|0){e=f;break c}if(c>>>0<i>>>0)c=c+1|0;else{e=0;break}}}while(0);e=(e|0)==4&1}if(!(cb(d,g,e,0)|0)){if((g|0)!=(i|0)){b[h>>2]=b[j>>2];b[h+4>>2]=b[j+4>>2];b[h+8>>2]=b[j+8>>2]}}else{if(la(k)|0)do{}while((cb(d,g,0,0)|0)!=0);if((g|0)!=(i|0))Ja(h)}S=l;return}function Ub(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=S;S=S+16|0;e=d;Tb(a,b,e);b=bd(a|0,b|0,52)|0;G()|0;$a(e,b&15,c);S=d;return}function Vb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;g=S;S=S+16|0;f=g;Tb(a,b,f);d=bd(a|0,b|0,45)|0;G()|0;d=(la(d&127)|0)==0;e=bd(a|0,b|0,52)|0;G()|0;e=e&15;a:do if(!d){if(e|0){d=1;while(1){h=cd(7,0,(15-d|0)*3|0)|0;if(!((h&a|0)==0&((G()|0)&b|0)==0))break a;if(d>>>0<e>>>0)d=d+1|0;else break}}ab(f,e,0,5,c);S=g;return}while(0);eb(f,e,0,6,c);S=g;return}function Wb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=bd(a|0,b|0,45)|0;G()|0;if(!(la(d&127)|0)){d=2;return d|0}d=bd(a|0,b|0,52)|0;G()|0;d=d&15;if(!d){d=5;return d|0}c=1;while(1){e=cd(7,0,(15-c|0)*3|0)|0;if(!((e&a|0)==0&((G()|0)&b|0)==0)){c=2;a=6;break}if(c>>>0<d>>>0)c=c+1|0;else{c=5;a=6;break}}if((a|0)==6)return c|0;return 0}function Xb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=S;S=S+128|0;k=m+112|0;g=m+96|0;l=m;f=bd(a|0,c|0,52)|0;G()|0;i=f&15;b[k>>2]=i;h=bd(a|0,c|0,45)|0;G()|0;h=h&127;a:do if(la(h)|0){if(i|0){e=1;while(1){j=cd(7,0,(15-e|0)*3|0)|0;if(!((j&a|0)==0&((G()|0)&c|0)==0)){f=0;break a}if(e>>>0<i>>>0)e=e+1|0;else break}}if(!(f&1)){j=cd(i+1|0,0,52)|0;l=G()|0|c&-15728641;k=cd(7,0,(14-i|0)*3|0)|0;Xb((j|a)&~k,l&~(G()|0),d);S=m;return}else f=1}else f=0;while(0);Tb(a,c,g);if(f){bb(g,k,l);j=5}else{fb(g,k,l);j=6}b:do if(la(h)|0)if(!i)e=20;else{e=1;while(1){h=cd(7,0,(15-e|0)*3|0)|0;if(!((h&a|0)==0&((G()|0)&c|0)==0)){e=8;break b}if(e>>>0<i>>>0)e=e+1|0;else{e=20;break}}}else e=8;while(0);gd(d|0,-1,e|0)|0;if(f){f=0;do{g=l+(f<<4)|0;db(g,b[k>>2]|0)|0;g=b[g>>2]|0;e=0;while(1){h=d+(e<<2)|0;i=b[h>>2]|0;if((i|0)==-1|(i|0)==(g|0))break;else e=e+1|0}b[h>>2]=g;f=f+1|0}while((f|0)!=(j|0))}else{f=0;do{g=l+(f<<4)|0;cb(g,b[k>>2]|0,0,1)|0;g=b[g>>2]|0;e=0;while(1){h=d+(e<<2)|0;i=b[h>>2]|0;if((i|0)==-1|(i|0)==(g|0))break;else e=e+1|0}b[h>>2]=g;f=f+1|0}while((f|0)!=(j|0))}S=m;return}function Yb(){return 12}function Zb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;cd(a|0,0,52)|0;i=G()|0|134225919;if((a|0)<1){e=0;d=0;do{if(la(e)|0){cd(e|0,0,45)|0;h=i|(G()|0);a=c+(d<<3)|0;b[a>>2]=-1;b[a+4>>2]=h;d=d+1|0}e=e+1|0}while((e|0)!=122);return}h=0;d=0;do{if(la(h)|0){cd(h|0,0,45)|0;e=1;f=-1;g=i|(G()|0);while(1){j=cd(7,0,(15-e|0)*3|0)|0;f=f&~j;g=g&~(G()|0);if((e|0)==(a|0))break;else e=e+1|0}j=c+(d<<3)|0;b[j>>2]=f;b[j+4>>2]=g;d=d+1|0}h=h+1|0}while((h|0)!=122);return}function _b(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=S;S=S+64|0;h=i;if((a|0)==(d|0)&(c|0)==(e|0)|(0!=0|(c&2013265920|0)!=134217728|(0!=0|(e&2013265920|0)!=134217728))){h=0;S=i;return h|0}f=bd(a|0,c|0,52)|0;G()|0;f=f&15;g=bd(d|0,e|0,52)|0;G()|0;if((f|0)!=(g&15|0)){h=0;S=i;return h|0}g=f+-1|0;if(f>>>0>1?(k=Bb(a,c,g)|0,j=G()|0,g=Bb(d,e,g)|0,(k|0)==(g|0)&(j|0)==(G()|0)):0){g=(f^15)*3|0;f=bd(a|0,c|0,g|0)|0;G()|0;f=f&7;g=bd(d|0,e|0,g|0)|0;G()|0;g=g&7;if((f|0)==0|(g|0)==0){k=1;S=i;return k|0}if((b[21136+(f<<2)>>2]|0)==(g|0)){k=1;S=i;return k|0}if((b[21168+(f<<2)>>2]|0)==(g|0)){k=1;S=i;return k|0}}f=h;g=f+56|0;do{b[f>>2]=0;f=f+4|0}while((f|0)<(g|0));$(a,c,1,h);k=h;if(((((!((b[k>>2]|0)==(d|0)?(b[k+4>>2]|0)==(e|0):0)?(k=h+8|0,!((b[k>>2]|0)==(d|0)?(b[k+4>>2]|0)==(e|0):0)):0)?(k=h+16|0,!((b[k>>2]|0)==(d|0)?(b[k+4>>2]|0)==(e|0):0)):0)?(k=h+24|0,!((b[k>>2]|0)==(d|0)?(b[k+4>>2]|0)==(e|0):0)):0)?(k=h+32|0,!((b[k>>2]|0)==(d|0)?(b[k+4>>2]|0)==(e|0):0)):0)?(k=h+40|0,!((b[k>>2]|0)==(d|0)?(b[k+4>>2]|0)==(e|0):0)):0){f=h+48|0;f=((b[f>>2]|0)==(d|0)?(b[f+4>>2]|0)==(e|0):0)&1}else f=1;k=f;S=i;return k|0}function $b(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=S;S=S+16|0;h=k;if(!(_b(a,c,d,e)|0)){i=0;j=0;F(i|0);S=k;return j|0}i=c&-2130706433;f=(Eb(a,c)|0)==0;f=f?1:2;while(1){b[h>>2]=0;l=da(a,c,f,h)|0;g=f+1|0;if((l|0)==(d|0)&(G()|0)==(e|0))break;if(g>>>0<7)f=g;else{f=0;a=0;j=6;break}}if((j|0)==6){F(f|0);S=k;return a|0}l=cd(f|0,0,56)|0;j=i|(G()|0)|268435456;l=a|l;F(j|0);S=k;return l|0}function ac(a,b){a=a|0;b=b|0;var c=0;c=0==0&(b&2013265920|0)==268435456;F((c?b&-2130706433|134217728:0)|0);return (c?a:0)|0}function bc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;e=S;S=S+16|0;d=e;if(!(0==0&(c&2013265920|0)==268435456)){c=0;d=0;F(c|0);S=e;return d|0}f=bd(a|0,c|0,56)|0;G()|0;b[d>>2]=0;d=da(a,c&-2130706433|134217728,f&7,d)|0;c=G()|0;F(c|0);S=e;return d|0}function cc(a,b){a=a|0;b=b|0;var c=0;if(!(0==0&(b&2013265920|0)==268435456)){c=0;return c|0}c=bd(a|0,b|0,56)|0;G()|0;switch(c&7){case 0:case 7:{c=0;return c|0}default:{}}c=b&-2130706433|134217728;if(0==0&(b&117440512|0)==16777216&(Eb(a,c)|0)!=0){c=0;return c|0}c=Ab(a,c)|0;return c|0}function dc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=S;S=S+16|0;e=g;h=0==0&(c&2013265920|0)==268435456;f=c&-2130706433|134217728;i=d;b[i>>2]=h?a:0;b[i+4>>2]=h?f:0;if(h){c=bd(a|0,c|0,56)|0;G()|0;b[e>>2]=0;a=da(a,f,c&7,e)|0;c=G()|0}else{a=0;c=0}i=d+8|0;b[i>>2]=a;b[i+4>>2]=c;S=g;return}function ec(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;f=(Eb(a,c)|0)==0;c=c&-2130706433;e=d;b[e>>2]=f?a:0;b[e+4>>2]=f?c|285212672:0;e=d+8|0;b[e>>2]=a;b[e+4>>2]=c|301989888;e=d+16|0;b[e>>2]=a;b[e+4>>2]=c|318767104;e=d+24|0;b[e>>2]=a;b[e+4>>2]=c|335544320;e=d+32|0;b[e>>2]=a;b[e+4>>2]=c|352321536;d=d+40|0;b[d>>2]=a;b[d+4>>2]=c|369098752;return}function fc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=S;S=S+16|0;g=h;e=bd(a|0,c|0,56)|0;G()|0;i=0==0&(c&2013265920|0)==268435456;f=i?a:0;a=i?c&-2130706433|134217728:0;c=Kc(f,a,e&7)|0;if((c|0)==-1){b[d>>2]=0;S=h;return}Tb(f,a,g);e=bd(f|0,a|0,52)|0;G()|0;e=e&15;if(!(Eb(f,a)|0))eb(g,e,c,2,d);else ab(g,e,c,2,d);S=h;return}function gc(a){a=a|0;var c=0,d=0,e=0;c=Xc(1,12)|0;if(!c)H(22691,22646,49,22704);d=a+4|0;e=b[d>>2]|0;if(e|0){e=e+8|0;b[e>>2]=c;b[d>>2]=c;return c|0}if(b[a>>2]|0)H(22721,22646,61,22744);e=a;b[e>>2]=c;b[d>>2]=c;return c|0}function hc(a,c){a=a|0;c=c|0;var d=0,e=0;e=Vc(24)|0;if(!e)H(22758,22646,78,22772);b[e>>2]=b[c>>2];b[e+4>>2]=b[c+4>>2];b[e+8>>2]=b[c+8>>2];b[e+12>>2]=b[c+12>>2];b[e+16>>2]=0;c=a+4|0;d=b[c>>2]|0;if(d|0){b[d+16>>2]=e;b[c>>2]=e;return e|0}if(b[a>>2]|0)H(22787,22646,82,22772);b[a>>2]=e;b[c>>2]=e;return e|0}function ic(a){a=a|0;var c=0,d=0,e=0,f=0;if(!a)return;e=1;while(1){c=b[a>>2]|0;if(c|0)do{d=b[c>>2]|0;if(d|0)do{f=d;d=b[d+16>>2]|0;Wc(f)}while((d|0)!=0);f=c;c=b[c+8>>2]|0;Wc(f)}while((c|0)!=0);c=a;a=b[a+8>>2]|0;if(!e)Wc(c);if(!a)break;else e=0}return}function jc(a){a=a|0;var c=0,d=0,f=0,g=0,h=0.0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0;g=a+8|0;if(b[g>>2]|0){K=1;return K|0}f=b[a>>2]|0;if(!f){K=0;return K|0}c=f;d=0;do{d=d+1|0;c=b[c+8>>2]|0}while((c|0)!=0);if(d>>>0<2){K=0;return K|0}I=Vc(d<<2)|0;if(!I)H(22807,22646,317,22826);G=Vc(d<<5)|0;if(!G)H(22848,22646,321,22826);b[a>>2]=0;z=a+4|0;b[z>>2]=0;b[g>>2]=0;d=0;F=0;y=0;n=0;a:while(1){m=b[f>>2]|0;if(m){h=0.0;i=m;do{k=+e[i+8>>3];c=i;i=b[i+16>>2]|0;l=(i|0)==0;g=l?m:i;j=+e[g+8>>3];if(+q(+(k-j))>3.141592653589793){K=14;break}h=h+(j-k)*(+e[c>>3]+ +e[g>>3])}while(!l);if((K|0)==14){K=0;h=0.0;c=m;do{x=+e[c+8>>3];E=c+16|0;D=b[E>>2]|0;D=(D|0)==0?m:D;w=+e[D+8>>3];h=h+(+e[c>>3]+ +e[D>>3])*((w<0.0?w+6.283185307179586:w)-(x<0.0?x+6.283185307179586:x));c=b[((c|0)==0?f:E)>>2]|0}while((c|0)!=0)}if(h>0.0){b[I+(F<<2)>>2]=f;F=F+1|0;g=y;c=n}else K=19}else K=19;if((K|0)==19){K=0;do if(!d)if(!n)if(!(b[a>>2]|0)){g=z;i=a;c=f;d=a;break}else{K=27;break a}else{g=z;i=n+8|0;c=f;d=a;break}else{c=d+8|0;if(b[c>>2]|0){K=21;break a}d=Xc(1,12)|0;if(!d){K=23;break a}b[c>>2]=d;g=d+4|0;i=d;c=n}while(0);b[i>>2]=f;b[g>>2]=f;i=G+(y<<5)|0;l=b[f>>2]|0;if(l){m=G+(y<<5)+8|0;e[m>>3]=1797693134862315708145274.0e284;n=G+(y<<5)+24|0;e[n>>3]=1797693134862315708145274.0e284;e[i>>3]=-1797693134862315708145274.0e284;o=G+(y<<5)+16|0;e[o>>3]=-1797693134862315708145274.0e284;u=1797693134862315708145274.0e284;v=-1797693134862315708145274.0e284;g=0;p=l;k=1797693134862315708145274.0e284;s=1797693134862315708145274.0e284;t=-1797693134862315708145274.0e284;j=-1797693134862315708145274.0e284;while(1){h=+e[p>>3];x=+e[p+8>>3];p=b[p+16>>2]|0;r=(p|0)==0;w=+e[(r?l:p)+8>>3];if(h<k){e[m>>3]=h;k=h}if(x<s){e[n>>3]=x;s=x}if(h>t)e[i>>3]=h;else h=t;if(x>j){e[o>>3]=x;j=x}u=x>0.0&x<u?x:u;v=x<0.0&x>v?x:v;g=g|+q(+(x-w))>3.141592653589793;if(r)break;else t=h}if(g){e[o>>3]=v;e[n>>3]=u}}else{b[i>>2]=0;b[i+4>>2]=0;b[i+8>>2]=0;b[i+12>>2]=0;b[i+16>>2]=0;b[i+20>>2]=0;b[i+24>>2]=0;b[i+28>>2]=0}g=y+1|0}E=f+8|0;f=b[E>>2]|0;b[E>>2]=0;if(!f){K=45;break}else{y=g;n=c}}if((K|0)==21)H(22624,22646,35,22658);else if((K|0)==23)H(22678,22646,37,22658);else if((K|0)==27)H(22721,22646,61,22744);else if((K|0)==45){b:do if((F|0)>0){E=(g|0)==0;C=g<<2;D=(a|0)==0;B=0;c=0;while(1){A=b[I+(B<<2)>>2]|0;if(!E){y=Vc(C)|0;if(!y){K=50;break}z=Vc(C)|0;if(!z){K=52;break}c:do if(!D){g=0;d=0;i=a;while(1){f=G+(g<<5)|0;if(kc(b[i>>2]|0,f,b[A>>2]|0)|0){b[y+(d<<2)>>2]=i;b[z+(d<<2)>>2]=f;r=d+1|0}else r=d;i=b[i+8>>2]|0;if(!i)break;else{g=g+1|0;d=r}}if((r|0)>0){f=b[y>>2]|0;if((r|0)==1)d=f;else{o=0;p=-1;d=f;n=f;while(1){l=b[n>>2]|0;f=0;i=0;while(1){g=b[b[y+(i<<2)>>2]>>2]|0;if((g|0)==(l|0))m=f;else m=f+((kc(g,b[z+(i<<2)>>2]|0,b[l>>2]|0)|0)&1)|0;i=i+1|0;if((i|0)==(r|0))break;else f=m}g=(m|0)>(p|0);d=g?n:d;f=o+1|0;if((f|0)==(r|0))break c;o=f;p=g?m:p;n=b[y+(f<<2)>>2]|0}}}else d=0}else d=0;while(0);Wc(y);Wc(z);if(d){g=d+4|0;f=b[g>>2]|0;if(!f){if(b[d>>2]|0){K=70;break}}else d=f+8|0;b[d>>2]=A;b[g>>2]=A}else K=73}else K=73;if((K|0)==73){K=0;c=b[A>>2]|0;if(c|0)do{z=c;c=b[c+16>>2]|0;Wc(z)}while((c|0)!=0);Wc(A);c=2}B=B+1|0;if((B|0)>=(F|0)){J=c;break b}}if((K|0)==50)H(22863,22646,249,22882);else if((K|0)==52)H(22901,22646,252,22882);else if((K|0)==70)H(22721,22646,61,22744)}else J=0;while(0);Wc(I);Wc(G);K=J;return K|0}return 0}function kc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0;if(!(xa(c,d)|0)){a=0;return a|0}c=wa(c)|0;l=+e[d>>3];f=+e[d+8>>3];f=c&f<0.0?f+6.283185307179586:f;a=b[a>>2]|0;if(!a){a=0;return a|0}if(c){c=0;d=a;a:while(1){while(1){i=+e[d>>3];k=+e[d+8>>3];d=d+16|0;m=b[d>>2]|0;m=(m|0)==0?a:m;h=+e[m>>3];g=+e[m+8>>3];if(i>h){j=i;i=k}else{j=h;h=i;i=g;g=k}if(!(l<h|l>j))break;d=b[d>>2]|0;if(!d){d=22;break a}}k=g<0.0?g+6.283185307179586:g;i=i<0.0?i+6.283185307179586:i;f=i==f|k==f?f+-2.220446049250313e-16:f;k=k+(l-h)/(j-h)*(i-k);if((k<0.0?k+6.283185307179586:k)>f)c=c^1;d=b[d>>2]|0;if(!d){d=22;break}}if((d|0)==22)return c|0}else{c=0;d=a;b:while(1){while(1){i=+e[d>>3];k=+e[d+8>>3];d=d+16|0;m=b[d>>2]|0;m=(m|0)==0?a:m;h=+e[m>>3];g=+e[m+8>>3];if(i>h){j=i;i=k}else{j=h;h=i;i=g;g=k}if(!(l<h|l>j))break;d=b[d>>2]|0;if(!d){d=22;break b}}f=i==f|g==f?f+-2.220446049250313e-16:f;if(g+(l-h)/(j-h)*(i-g)>f)c=c^1;d=b[d>>2]|0;if(!d){d=22;break}}if((d|0)==22)return c|0}return 0}function lc(c,d,e,f,g){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=S;S=S+32|0;t=u+16|0;s=u;h=bd(c|0,d|0,52)|0;G()|0;h=h&15;p=bd(e|0,f|0,52)|0;G()|0;if((h|0)!=(p&15|0)){t=1;S=u;return t|0}l=bd(c|0,d|0,45)|0;G()|0;l=l&127;m=bd(e|0,f|0,45)|0;G()|0;m=m&127;p=(l|0)!=(m|0);if(p){j=ta(l,m)|0;if((j|0)==7){t=2;S=u;return t|0}k=ta(m,l)|0;if((k|0)==7)H(22925,22949,151,22959);else{q=j;i=k}}else{q=0;i=0}n=la(l)|0;o=la(m)|0;b[t>>2]=0;b[t+4>>2]=0;b[t+8>>2]=0;b[t+12>>2]=0;do if(!q){Sb(e,f,t)|0;if((n|0)!=0&(o|0)!=0){if((m|0)!=(l|0))H(23077,22949,243,22959);i=Kb(c,d)|0;h=Kb(e,f)|0;if(!(a[22032+(i*7|0)+h>>0]|0)){i=b[21200+(i*28|0)+(h<<2)>>2]|0;if((i|0)>0){j=t+4|0;h=0;do{Oa(j);h=h+1|0}while((h|0)!=(i|0));r=50}else r=50}else h=5}else r=50}else{m=b[4304+(l*28|0)+(q<<2)>>2]|0;j=(m|0)>0;if(!o)if(j){l=0;k=e;j=f;do{k=Ob(k,j)|0;j=G()|0;i=Qa(i)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=e;k=f}else if(j){l=0;k=e;j=f;do{k=Nb(k,j)|0;j=G()|0;i=Qa(i)|0;if((i|0)==1)i=Qa(1)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=e;k=f}Sb(l,k,t)|0;if(!p)H(22972,22949,181,22959);j=(n|0)!=0;i=(o|0)!=0;if(j&i)H(22999,22949,182,22959);if(!j)if(i){i=Kb(l,k)|0;if(a[22032+(i*7|0)+m>>0]|0){h=4;break}l=0;k=b[21200+(m*28|0)+(i<<2)>>2]|0;r=26}else i=0;else{i=Kb(c,d)|0;if(a[22032+(i*7|0)+q>>0]|0){h=3;break}k=b[21200+(i*28|0)+(q<<2)>>2]|0;l=k;r=26}if((r|0)==26){if((k|0)<=-1)H(23030,22949,212,22959);if((l|0)<=-1)H(23053,22949,213,22959);if((k|0)>0){j=t+4|0;i=0;do{Oa(j);i=i+1|0}while((i|0)!=(k|0));i=l}else i=l};b[s>>2]=0;b[s+4>>2]=0;b[s+8>>2]=0;Ma(s,q);if(h|0)while(1){if(!(Qb(h)|0))La(s);else Ka(s);if((h|0)>1)h=h+-1|0;else break}if((i|0)>0){h=0;do{Oa(s);h=h+1|0}while((h|0)!=(i|0))}r=t+4|0;Ea(r,s,r);Ca(r);r=50}while(0);if((r|0)==50){h=t+4|0;b[g>>2]=b[h>>2];b[g+4>>2]=b[h+4>>2];b[g+8>>2]=b[h+8>>2];h=0}t=h;S=u;return t|0}function mc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=S;S=S+48|0;h=p+36|0;i=p+24|0;j=p+12|0;k=p;g=bd(a|0,c|0,52)|0;G()|0;g=g&15;n=bd(a|0,c|0,45)|0;G()|0;n=n&127;l=la(n)|0;cd(g|0,0,52)|0;r=G()|0|134225919;q=e;b[q>>2]=-1;b[q+4>>2]=r;if(!g){if((b[d>>2]|0)>1){r=1;S=p;return r|0}if((b[d+4>>2]|0)>1){r=1;S=p;return r|0}if((b[d+8>>2]|0)>1){r=1;S=p;return r|0}f=sa(n,Ha(d)|0)|0;if((f|0)==127){r=1;S=p;return r|0}o=cd(f|0,0,45)|0;q=G()|0;n=e;q=b[n+4>>2]&-1040385|q;r=e;b[r>>2]=b[n>>2]|o;b[r+4>>2]=q;r=0;S=p;return r|0};b[h>>2]=b[d>>2];b[h+4>>2]=b[d+4>>2];b[h+8>>2]=b[d+8>>2];while(1){b[i>>2]=b[h>>2];b[i+4>>2]=b[h+4>>2];b[i+8>>2]=b[h+8>>2];if(!(Qb(g)|0)){Ja(h);b[j>>2]=b[h>>2];b[j+4>>2]=b[h+4>>2];b[j+8>>2]=b[h+8>>2];La(j)}else{Ia(h);b[j>>2]=b[h>>2];b[j+4>>2]=b[h+4>>2];b[j+8>>2]=b[h+8>>2];Ka(j)}Fa(i,j,k);Ca(k);q=e;s=b[q>>2]|0;q=b[q+4>>2]|0;t=(15-g|0)*3|0;d=cd(7,0,t|0)|0;q=q&~(G()|0);t=cd(Ha(k)|0,0,t|0)|0;q=G()|0|q;r=e;b[r>>2]=t|s&~d;b[r+4>>2]=q;if((g|0)>1)g=g+-1|0;else break}a:do if(((b[h>>2]|0)<=1?(b[h+4>>2]|0)<=1:0)?(b[h+8>>2]|0)<=1:0){g=Ha(h)|0;i=sa(n,g)|0;if((i|0)==127)k=0;else k=la(i)|0;b:do if(!g)if((l|0)!=0&(k|0)!=0){t=Kb(a,c)|0;g=e;g=21408+(t*28|0)+((Kb(b[g>>2]|0,b[g+4>>2]|0)|0)<<2)|0;g=b[g>>2]|0;if((g|0)<=-1)H(23201,22949,433,23134);if(!g){f=i;g=55}else{h=e;f=0;d=b[h>>2]|0;h=b[h+4>>2]|0;do{d=Mb(d,h)|0;h=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=h;f=f+1|0}while((f|0)<(g|0));f=i;g=54}}else{f=i;g=54}else{if(l){h=21408+((Kb(a,c)|0)*28|0)+(g<<2)|0;h=b[h>>2]|0;if((h|0)>0){d=0;do{g=Pa(g)|0;d=d+1|0}while((d|0)!=(h|0))}if((g|0)==1){f=3;break a}d=sa(n,g)|0;if((d|0)==127)H(23104,22949,376,23134);if(!(la(d)|0)){o=h;m=g;f=d}else H(23147,22949,377,23134)}else{o=0;m=g;f=i}j=b[4304+(n*28|0)+(m<<2)>>2]|0;if((j|0)<=-1)H(23178,22949,384,23134);if(!k){if((o|0)<=-1)H(23030,22949,417,23134);if(o|0){h=e;g=0;d=b[h>>2]|0;h=b[h+4>>2]|0;do{d=Mb(d,h)|0;h=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=h;g=g+1|0}while((g|0)<(o|0))}if((j|0)<=0){g=54;break}h=e;g=0;d=b[h>>2]|0;h=b[h+4>>2]|0;while(1){d=Mb(d,h)|0;h=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=h;g=g+1|0;if((g|0)==(j|0)){g=54;break b}}}i=ta(f,n)|0;if((i|0)==7)H(22925,22949,393,23134);g=e;d=b[g>>2]|0;g=b[g+4>>2]|0;if((j|0)>0){h=0;do{d=Mb(d,g)|0;g=G()|0;t=e;b[t>>2]=d;b[t+4>>2]=g;h=h+1|0}while((h|0)!=(j|0))}d=Kb(d,g)|0;t=ma(f)|0;d=b[(t?21824:21616)+(i*28|0)+(d<<2)>>2]|0;if((d|0)<=-1)H(23030,22949,412,23134);if(!d)g=54;else{i=e;g=0;h=b[i>>2]|0;i=b[i+4>>2]|0;do{h=Lb(h,i)|0;i=G()|0;t=e;b[t>>2]=h;b[t+4>>2]=i;g=g+1|0}while((g|0)<(d|0));g=54}}while(0);if((g|0)==54)if(k)g=55;if((g|0)==55){t=e;if((Kb(b[t>>2]|0,b[t+4>>2]|0)|0)==1){f=4;break}}t=e;r=b[t>>2]|0;t=b[t+4>>2]&-1040385;s=cd(f|0,0,45)|0;t=t|(G()|0);f=e;b[f>>2]=r|s;b[f+4>>2]=t;f=0}else f=2;while(0);t=f;S=p;return t|0}function nc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=S;S=S+16|0;f=g;a=lc(a,b,c,d,f)|0;if(!a){Ua(f,e);a=0}S=g;return a|0}function oc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=S;S=S+16|0;f=e;Va(c,f);d=mc(a,b,f,d)|0;S=e;return d|0}function pc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=S;S=S+32|0;e=g+12|0;f=g;if((lc(a,b,a,b,e)|0)==0?(lc(a,b,c,d,f)|0)==0:0)a=Ta(e,f)|0;else a=-1;S=g;return a|0}function qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=S;S=S+32|0;e=g+12|0;f=g;if((lc(a,b,a,b,e)|0)==0?(lc(a,b,c,d,f)|0)==0:0)a=Ta(e,f)|0;else a=-1;S=g;return (a>>>31^1)+a|0}function rc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=S;S=S+48|0;g=x+24|0;h=x+12|0;w=x;if((lc(a,c,a,c,g)|0)==0?(lc(a,c,d,e,h)|0)==0:0){v=Ta(g,h)|0;if((v|0)<0){w=v;S=x;return w|0};b[g>>2]=0;b[g+4>>2]=0;b[g+8>>2]=0;b[h>>2]=0;b[h+4>>2]=0;b[h+8>>2]=0;lc(a,c,a,c,g)|0;lc(a,c,d,e,h)|0;Wa(g);Wa(h);if(!v){e=g+4|0;n=g+8|0;s=e;t=n;u=g;d=b[g>>2]|0;e=b[e>>2]|0;g=b[n>>2]|0;p=0.0;r=0.0;o=0.0}else{l=b[g>>2]|0;o=+(v|0);s=g+4|0;m=b[s>>2]|0;t=g+8|0;n=b[t>>2]|0;u=g;d=l;e=m;g=n;p=+((b[h>>2]|0)-l|0)/o;r=+((b[h+4>>2]|0)-m|0)/o;o=+((b[h+8>>2]|0)-n|0)/o}b[w>>2]=d;n=w+4|0;b[n>>2]=e;m=w+8|0;b[m>>2]=g;l=0;while(1){j=+(l|0);y=p*j+ +(d|0);i=r*j+ +(b[s>>2]|0);j=o*j+ +(b[t>>2]|0);e=~~+ed(+y);h=~~+ed(+i);d=~~+ed(+j);y=+q(+(+(e|0)-y));i=+q(+(+(h|0)-i));j=+q(+(+(d|0)-j));do if(!(y>i&y>j)){k=0-e|0;if(i>j){g=k-d|0;break}else{g=h;d=k-h|0;break}}else{e=0-(h+d)|0;g=h}while(0);b[w>>2]=e;b[n>>2]=g;b[m>>2]=d;Xa(w);mc(a,c,w,f+(l<<3)|0)|0;if((l|0)==(v|0))break;l=l+1|0;d=b[u>>2]|0}w=0;S=x;return w|0}w=-1;S=x;return w|0}function sc(a,b){a=a|0;b=b|0;var c=0;if(!b){c=1;return c|0}c=a;a=1;do{a=B((b&1|0)==0?1:c,a)|0;b=b>>1;c=B(c,c)|0}while((b|0)!=0);return a|0}function tc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0.0;if(!(xa(c,d)|0)){n=0;return n|0}c=wa(c)|0;o=+e[d>>3];f=+e[d+8>>3];f=c&f<0.0?f+6.283185307179586:f;n=b[a>>2]|0;if((n|0)<=0){n=0;return n|0}m=b[a+4>>2]|0;if(c){c=0;d=-1;a=0;a:while(1){l=a;while(1){i=+e[m+(l<<4)>>3];k=+e[m+(l<<4)+8>>3];a=(d+2|0)%(n|0)|0;h=+e[m+(a<<4)>>3];g=+e[m+(a<<4)+8>>3];if(i>h){j=i;i=k}else{j=h;h=i;i=g;g=k}if(!(o<h|o>j))break;d=l+1|0;if((d|0)<(n|0)){a=l;l=d;d=a}else{d=22;break a}}k=g<0.0?g+6.283185307179586:g;i=i<0.0?i+6.283185307179586:i;f=i==f|k==f?f+-2.220446049250313e-16:f;k=k+(o-h)/(j-h)*(i-k);if((k<0.0?k+6.283185307179586:k)>f)c=c^1;a=l+1|0;if((a|0)>=(n|0)){d=22;break}else d=l}if((d|0)==22)return c|0}else{c=0;d=-1;a=0;b:while(1){l=a;while(1){i=+e[m+(l<<4)>>3];k=+e[m+(l<<4)+8>>3];a=(d+2|0)%(n|0)|0;h=+e[m+(a<<4)>>3];g=+e[m+(a<<4)+8>>3];if(i>h){j=i;i=k}else{j=h;h=i;i=g;g=k}if(!(o<h|o>j))break;d=l+1|0;if((d|0)<(n|0)){a=l;l=d;d=a}else{d=22;break b}}f=i==f|g==f?f+-2.220446049250313e-16:f;if(g+(o-h)/(j-h)*(i-g)>f)c=c^1;a=l+1|0;if((a|0)>=(n|0)){d=22;break}else d=l}if((d|0)==22)return c|0}return 0}function uc(a,c){a=a|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,r=0,s=0,t=0,u=0,v=0;r=b[a>>2]|0;if(!r){b[c>>2]=0;b[c+4>>2]=0;b[c+8>>2]=0;b[c+12>>2]=0;b[c+16>>2]=0;b[c+20>>2]=0;b[c+24>>2]=0;b[c+28>>2]=0;return}s=c+8|0;e[s>>3]=1797693134862315708145274.0e284;t=c+24|0;e[t>>3]=1797693134862315708145274.0e284;e[c>>3]=-1797693134862315708145274.0e284;u=c+16|0;e[u>>3]=-1797693134862315708145274.0e284;if((r|0)<=0)return;o=b[a+4>>2]|0;l=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;n=0;a=-1;h=1797693134862315708145274.0e284;i=1797693134862315708145274.0e284;k=-1797693134862315708145274.0e284;f=-1797693134862315708145274.0e284;p=0;while(1){d=+e[o+(p<<4)>>3];j=+e[o+(p<<4)+8>>3];a=a+2|0;g=+e[o+(((a|0)==(r|0)?0:a)<<4)+8>>3];if(d<h){e[s>>3]=d;h=d}if(j<i){e[t>>3]=j;i=j}if(d>k)e[c>>3]=d;else d=k;if(j>f){e[u>>3]=j;f=j}l=j>0.0&j<l?j:l;m=j<0.0&j>m?j:m;n=n|+q(+(j-g))>3.141592653589793;a=p+1|0;if((a|0)==(r|0))break;else{v=p;k=d;p=a;a=v}}if(!n)return;e[u>>3]=m;e[t>>3]=l;return}function vc(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;r=b[a>>2]|0;if(r){s=c+8|0;e[s>>3]=1797693134862315708145274.0e284;t=c+24|0;e[t>>3]=1797693134862315708145274.0e284;e[c>>3]=-1797693134862315708145274.0e284;u=c+16|0;e[u>>3]=-1797693134862315708145274.0e284;if((r|0)>0){g=b[a+4>>2]|0;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;f=0;d=-1;k=1797693134862315708145274.0e284;l=1797693134862315708145274.0e284;n=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;v=0;while(1){h=+e[g+(v<<4)>>3];m=+e[g+(v<<4)+8>>3];z=d+2|0;j=+e[g+(((z|0)==(r|0)?0:z)<<4)+8>>3];if(h<k){e[s>>3]=h;k=h}if(m<l){e[t>>3]=m;l=m}if(h>n)e[c>>3]=h;else h=n;if(m>i){e[u>>3]=m;i=m}o=m>0.0&m<o?m:o;p=m<0.0&m>p?m:p;f=f|+q(+(m-j))>3.141592653589793;d=v+1|0;if((d|0)==(r|0))break;else{z=v;n=h;v=d;d=z}}if(f){e[u>>3]=p;e[t>>3]=o}}}else{b[c>>2]=0;b[c+4>>2]=0;b[c+8>>2]=0;b[c+12>>2]=0;b[c+16>>2]=0;b[c+20>>2]=0;b[c+24>>2]=0;b[c+28>>2]=0}z=a+8|0;d=b[z>>2]|0;if((d|0)<=0)return;y=a+12|0;x=0;do{g=b[y>>2]|0;f=x;x=x+1|0;t=c+(x<<5)|0;u=b[g+(f<<3)>>2]|0;if(u){v=c+(x<<5)+8|0;e[v>>3]=1797693134862315708145274.0e284;a=c+(x<<5)+24|0;e[a>>3]=1797693134862315708145274.0e284;e[t>>3]=-1797693134862315708145274.0e284;w=c+(x<<5)+16|0;e[w>>3]=-1797693134862315708145274.0e284;if((u|0)>0){r=b[g+(f<<3)+4>>2]|0;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;g=0;f=-1;s=0;k=1797693134862315708145274.0e284;l=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;while(1){h=+e[r+(s<<4)>>3];n=+e[r+(s<<4)+8>>3];f=f+2|0;j=+e[r+(((f|0)==(u|0)?0:f)<<4)+8>>3];if(h<k){e[v>>3]=h;k=h}if(n<l){e[a>>3]=n;l=n}if(h>m)e[t>>3]=h;else h=m;if(n>i){e[w>>3]=n;i=n}o=n>0.0&n<o?n:o;p=n<0.0&n>p?n:p;g=g|+q(+(n-j))>3.141592653589793;f=s+1|0;if((f|0)==(u|0))break;else{A=s;s=f;m=h;f=A}}if(g){e[w>>3]=p;e[a>>3]=o}}}else{b[t>>2]=0;b[t+4>>2]=0;b[t+8>>2]=0;b[t+12>>2]=0;b[t+16>>2]=0;b[t+20>>2]=0;b[t+24>>2]=0;b[t+28>>2]=0;d=b[z>>2]|0}}while((x|0)<(d|0));return}function wc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(!(tc(a,c,d)|0)){f=0;return f|0}f=a+8|0;if((b[f>>2]|0)<=0){f=1;return f|0}e=a+12|0;a=0;while(1){g=a;a=a+1|0;if(tc((b[e>>2]|0)+(g<<3)|0,c+(a<<5)|0,d)|0){a=0;e=6;break}if((a|0)>=(b[f>>2]|0)){a=1;e=6;break}}if((e|0)==6)return a|0;return 0}function xc(){return 8}function yc(){return 16}function zc(){return 168}function Ac(){return 8}function Bc(){return 16}function Cc(){return 12}function Dc(){return 8}function Ec(a){a=a|0;var b=0.0,c=0.0;c=+e[a>>3];b=+e[a+8>>3];return +(+r(+(c*c+b*b)))}function Fc(a,b,c,d,f){a=a|0;b=b|0;c=c|0;d=d|0;f=f|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;k=+e[a>>3];j=+e[b>>3]-k;i=+e[a+8>>3];h=+e[b+8>>3]-i;m=+e[c>>3];g=+e[d>>3]-m;n=+e[c+8>>3];l=+e[d+8>>3]-n;g=(g*(i-n)-(k-m)*l)/(j*l-h*g);e[f>>3]=k+j*g;e[f+8>>3]=i+h*g;return}function Gc(a,b){a=a|0;b=b|0;if(!(+e[a>>3]==+e[b>>3])){b=0;return b|0}b=+e[a+8>>3]==+e[b+8>>3];return b|0}function Hc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;f=+e[a>>3]-+e[b>>3];d=+e[a+8>>3]-+e[b+8>>3];c=+e[a+16>>3]-+e[b+16>>3];return +(f*f+d*d+c*c)}function Ic(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;c=+e[a>>3];d=+t(+c);c=+u(+c);e[b+16>>3]=c;c=+e[a+8>>3];f=d*+t(+c);e[b>>3]=f;c=d*+u(+c);e[b+8>>3]=c;return}function Jc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=S;S=S+32|0;f=k+16|0;g=k;Tb(a,c,f);h=zb(a,c)|0;j=Kb(a,c)|0;pa(h,g);c=qa(h,b[f>>2]|0)|0;if(!(la(h)|0)){j=c;S=k;return j|0}do switch(h|0){case 4:{a=0;d=14;break}case 14:{a=1;d=14;break}case 24:{a=2;d=14;break}case 38:{a=3;d=14;break}case 49:{a=4;d=14;break}case 58:{a=5;d=14;break}case 63:{a=6;d=14;break}case 72:{a=7;d=14;break}case 83:{a=8;d=14;break}case 97:{a=9;d=14;break}case 107:{a=10;d=14;break}case 117:{a=11;d=14;break}default:{i=0;e=0}}while(0);if((d|0)==14){i=b[22096+(a*24|0)+8>>2]|0;e=b[22096+(a*24|0)+16>>2]|0}a=b[f>>2]|0;if((a|0)!=(b[g>>2]|0)){h=ma(h)|0;a=b[f>>2]|0;if(h|(a|0)==(e|0))c=(c+1|0)%6|0}if((j|0)==3&(a|0)==(e|0)){j=(c+5|0)%6|0;S=k;return j|0}if(!((j|0)==5&(a|0)==(i|0))){j=c;S=k;return j|0}j=(c+1|0)%6|0;S=k;return j|0}function Kc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;e=Eb(a,c)|0;if((d+-1|0)>>>0>5){d=-1;return d|0}f=(e|0)!=0;if((d|0)==1&f){d=-1;return d|0}e=Jc(a,c)|0;if(f){d=(5-e+(b[22384+(d<<2)>>2]|0)|0)%5|0;return d|0}else{d=(6-e+(b[22416+(d<<2)>>2]|0)|0)%6|0;return d|0}return 0}function Lc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;if((c|0)>0){e=Xc(c,4)|0;b[a>>2]=e;if(!e)H(23230,23253,40,23267)}else b[a>>2]=0;b[a+4>>2]=c;b[a+8>>2]=0;b[a+12>>2]=d;return}function Mc(a){a=a|0;var c=0,d=0,f=0,g=0,h=0,i=0,j=0;g=a+4|0;h=a+12|0;i=a+8|0;a:while(1){d=b[g>>2]|0;c=0;while(1){if((c|0)>=(d|0))break a;f=b[a>>2]|0;j=b[f+(c<<2)>>2]|0;if(!j)c=c+1|0;else break}c=f+(~~(+q(+(+s(10.0,+(+(15-(b[h>>2]|0)|0)))*(+e[j>>3]+ +e[j+8>>3])))%+(d|0))>>>0<<2)|0;d=b[c>>2]|0;b:do if(d|0){f=j+32|0;if((d|0)==(j|0))b[c>>2]=b[f>>2];else{d=d+32|0;c=b[d>>2]|0;if(!c)break;while(1){if((c|0)==(j|0))break;d=c+32|0;c=b[d>>2]|0;if(!c)break b}b[d>>2]=b[f>>2]}Wc(j);b[i>>2]=(b[i>>2]|0)+-1}while(0)}Wc(b[a>>2]|0);return}function Nc(a){a=a|0;var c=0,d=0,e=0;e=b[a+4>>2]|0;d=0;while(1){if((d|0)>=(e|0)){c=0;d=4;break}c=b[(b[a>>2]|0)+(d<<2)>>2]|0;if(!c)d=d+1|0;else{d=4;break}}if((d|0)==4)return c|0;return 0}function Oc(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0;d=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;d=(b[a>>2]|0)+(d<<2)|0;f=b[d>>2]|0;if(!f){h=1;return h|0}h=c+32|0;do if((f|0)!=(c|0)){d=b[f+32>>2]|0;if(!d){h=1;return h|0}g=d;while(1){if((g|0)==(c|0)){g=8;break}d=b[g+32>>2]|0;if(!d){d=1;g=10;break}else{f=g;g=d}}if((g|0)==8){b[f+32>>2]=b[h>>2];break}else if((g|0)==10)return d|0}else b[d>>2]=b[h>>2];while(0);Wc(c);h=a+8|0;b[h>>2]=(b[h>>2]|0)+-1;h=0;return h|0}function Pc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0;h=Vc(40)|0;if(!h)H(23283,23253,98,23296);b[h>>2]=b[c>>2];b[h+4>>2]=b[c+4>>2];b[h+8>>2]=b[c+8>>2];b[h+12>>2]=b[c+12>>2];g=h+16|0;b[g>>2]=b[d>>2];b[g+4>>2]=b[d+4>>2];b[g+8>>2]=b[d+8>>2];b[g+12>>2]=b[d+12>>2];b[h+32>>2]=0;g=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;g=(b[a>>2]|0)+(g<<2)|0;f=b[g>>2]|0;do if(!f)b[g>>2]=h;else{while(1){if(hb(f,c)|0?hb(f+16|0,d)|0:0)break;g=b[f+32>>2]|0;f=(g|0)==0?f:g;if(!(b[f+32>>2]|0)){i=10;break}}if((i|0)==10){b[f+32>>2]=h;break}Wc(h);i=f;return i|0}while(0);i=a+8|0;b[i>>2]=(b[i>>2]|0)+1;i=h;return i|0}function Qc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0;g=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;g=b[(b[a>>2]|0)+(g<<2)>>2]|0;if(!g){d=0;return d|0}if(!d){a=g;while(1){if(hb(a,c)|0){f=10;break}a=b[a+32>>2]|0;if(!a){a=0;f=10;break}}if((f|0)==10)return a|0}a=g;while(1){if(hb(a,c)|0?hb(a+16|0,d)|0:0){f=10;break}a=b[a+32>>2]|0;if(!a){a=0;f=10;break}}if((f|0)==10)return a|0;return 0}function Rc(a,c){a=a|0;c=c|0;var d=0;d=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;a=b[(b[a>>2]|0)+(d<<2)>>2]|0;if(!a){d=0;return d|0}while(1){if(hb(a,c)|0){c=5;break}a=b[a+32>>2]|0;if(!a){a=0;c=5;break}}if((c|0)==5)return a|0;return 0}function Sc(){return 23312}function Tc(a){a=+a;return +(+hd(+a))}function Uc(a){a=+a;return ~~+Tc(a)|0}function Vc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=S;S=S+16|0;n=w;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=b[5829]|0;d=m>>>a;if(d&3|0){c=(d&1^1)+a|0;a=23356+(c<<1<<2)|0;d=a+8|0;e=b[d>>2]|0;f=e+8|0;g=b[f>>2]|0;if((g|0)==(a|0))b[5829]=m&~(1<<c);else{b[g+12>>2]=a;b[d>>2]=g}v=c<<3;b[e+4>>2]=v|3;v=e+v+4|0;b[v>>2]=b[v>>2]|1;v=f;S=w;return v|0}l=b[5831]|0;if(k>>>0>l>>>0){if(d|0){c=2<<a;c=d<<a&(c|0-c);c=(c&0-c)+-1|0;i=c>>>12&16;c=c>>>i;d=c>>>5&8;c=c>>>d;g=c>>>2&4;c=c>>>g;a=c>>>1&2;c=c>>>a;e=c>>>1&1;e=(d|i|g|a|e)+(c>>>e)|0;c=23356+(e<<1<<2)|0;a=c+8|0;g=b[a>>2]|0;i=g+8|0;d=b[i>>2]|0;if((d|0)==(c|0)){a=m&~(1<<e);b[5829]=a}else{b[d+12>>2]=c;b[a>>2]=d;a=m}v=e<<3;h=v-k|0;b[g+4>>2]=k|3;f=g+k|0;b[f+4>>2]=h|1;b[g+v>>2]=h;if(l|0){e=b[5834]|0;c=l>>>3;d=23356+(c<<1<<2)|0;c=1<<c;if(!(a&c)){b[5829]=a|c;c=d;a=d+8|0}else{a=d+8|0;c=b[a>>2]|0}b[a>>2]=e;b[c+12>>2]=e;b[e+8>>2]=c;b[e+12>>2]=d}b[5831]=h;b[5834]=f;v=i;S=w;return v|0}g=b[5830]|0;if(g){d=(g&0-g)+-1|0;f=d>>>12&16;d=d>>>f;e=d>>>5&8;d=d>>>e;h=d>>>2&4;d=d>>>h;i=d>>>1&2;d=d>>>i;j=d>>>1&1;j=b[23620+((e|f|h|i|j)+(d>>>j)<<2)>>2]|0;d=j;i=j;j=(b[j+4>>2]&-8)-k|0;while(1){a=b[d+16>>2]|0;if(!a){a=b[d+20>>2]|0;if(!a)break}h=(b[a+4>>2]&-8)-k|0;f=h>>>0<j>>>0;d=a;i=f?a:i;j=f?h:j}h=i+k|0;if(h>>>0>i>>>0){f=b[i+24>>2]|0;c=b[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;c=b[a>>2]|0;if(!c){a=i+16|0;c=b[a>>2]|0;if(!c){d=0;break}}while(1){e=c+20|0;d=b[e>>2]|0;if(!d){e=c+16|0;d=b[e>>2]|0;if(!d)break;else{c=d;a=e}}else{c=d;a=e}}b[a>>2]=0;d=c}else{d=b[i+8>>2]|0;b[d+12>>2]=c;b[c+8>>2]=d;d=c}while(0);do if(f|0){c=b[i+28>>2]|0;a=23620+(c<<2)|0;if((i|0)==(b[a>>2]|0)){b[a>>2]=d;if(!d){b[5830]=g&~(1<<c);break}}else{v=f+16|0;b[((b[v>>2]|0)==(i|0)?v:f+20|0)>>2]=d;if(!d)break}b[d+24>>2]=f;c=b[i+16>>2]|0;if(c|0){b[d+16>>2]=c;b[c+24>>2]=d}c=b[i+20>>2]|0;if(c|0){b[d+20>>2]=c;b[c+24>>2]=d}}while(0);if(j>>>0<16){v=j+k|0;b[i+4>>2]=v|3;v=i+v+4|0;b[v>>2]=b[v>>2]|1}else{b[i+4>>2]=k|3;b[h+4>>2]=j|1;b[h+j>>2]=j;if(l|0){e=b[5834]|0;c=l>>>3;d=23356+(c<<1<<2)|0;c=1<<c;if(!(c&m)){b[5829]=c|m;c=d;a=d+8|0}else{a=d+8|0;c=b[a>>2]|0}b[a>>2]=e;b[c+12>>2]=e;b[e+8>>2]=c;b[e+12>>2]=d}b[5831]=j;b[5834]=h}v=i+8|0;S=w;return v|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=b[5830]|0;if(e){f=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<<m;i=(q+520192|0)>>>16&4;q=q<<i;j=(q+245760|0)>>>16&2;j=14-(i|m|j)+(q<<j>>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;d=b[23620+(j<<2)>>2]|0;a:do if(!d){d=0;a=0;q=61}else{a=0;i=k<<((j|0)==31?0:25-(j>>>1)|0);g=0;while(1){h=(b[d+4>>2]&-8)-k|0;if(h>>>0<f>>>0)if(!h){a=d;f=0;q=65;break a}else{a=d;f=h}q=b[d+20>>2]|0;d=b[d+16+(i>>>31<<2)>>2]|0;g=(q|0)==0|(q|0)==(d|0)?g:q;if(!d){d=g;q=61;break}else i=i<<1}}while(0);if((q|0)==61){if((d|0)==0&(a|0)==0){a=2<<j;a=(a|0-a)&e;if(!a){m=k;break}m=(a&0-a)+-1|0;h=m>>>12&16;m=m>>>h;g=m>>>5&8;m=m>>>g;i=m>>>2&4;m=m>>>i;j=m>>>1&2;m=m>>>j;d=m>>>1&1;a=0;d=b[23620+((g|h|i|j|d)+(m>>>d)<<2)>>2]|0}if(!d){i=a;h=f}else q=65}if((q|0)==65){g=d;while(1){m=(b[g+4>>2]&-8)-k|0;d=m>>>0<f>>>0;f=d?m:f;a=d?g:a;d=b[g+16>>2]|0;if(!d)d=b[g+20>>2]|0;if(!d){i=a;h=f;break}else g=d}}if(((i|0)!=0?h>>>0<((b[5831]|0)-k|0)>>>0:0)?(l=i+k|0,l>>>0>i>>>0):0){g=b[i+24>>2]|0;c=b[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;c=b[a>>2]|0;if(!c){a=i+16|0;c=b[a>>2]|0;if(!c){c=0;break}}while(1){f=c+20|0;d=b[f>>2]|0;if(!d){f=c+16|0;d=b[f>>2]|0;if(!d)break;else{c=d;a=f}}else{c=d;a=f}}b[a>>2]=0}else{v=b[i+8>>2]|0;b[v+12>>2]=c;b[c+8>>2]=v}while(0);do if(g){a=b[i+28>>2]|0;d=23620+(a<<2)|0;if((i|0)==(b[d>>2]|0)){b[d>>2]=c;if(!c){e=e&~(1<<a);b[5830]=e;break}}else{v=g+16|0;b[((b[v>>2]|0)==(i|0)?v:g+20|0)>>2]=c;if(!c)break}b[c+24>>2]=g;a=b[i+16>>2]|0;if(a|0){b[c+16>>2]=a;b[a+24>>2]=c}a=b[i+20>>2]|0;if(a){b[c+20>>2]=a;b[a+24>>2]=c}}while(0);b:do if(h>>>0<16){v=h+k|0;b[i+4>>2]=v|3;v=i+v+4|0;b[v>>2]=b[v>>2]|1}else{b[i+4>>2]=k|3;b[l+4>>2]=h|1;b[l+h>>2]=h;c=h>>>3;if(h>>>0<256){d=23356+(c<<1<<2)|0;a=b[5829]|0;c=1<<c;if(!(a&c)){b[5829]=a|c;c=d;a=d+8|0}else{a=d+8|0;c=b[a>>2]|0}b[a>>2]=l;b[c+12>>2]=l;b[l+8>>2]=c;b[l+12>>2]=d;break}c=h>>>8;if(c)if(h>>>0>16777215)d=31;else{u=(c+1048320|0)>>>16&8;v=c<<u;t=(v+520192|0)>>>16&4;v=v<<t;d=(v+245760|0)>>>16&2;d=14-(t|u|d)+(v<<d>>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;c=23620+(d<<2)|0;b[l+28>>2]=d;a=l+16|0;b[a+4>>2]=0;b[a>>2]=0;a=1<<d;if(!(e&a)){b[5830]=e|a;b[c>>2]=l;b[l+24>>2]=c;b[l+12>>2]=l;b[l+8>>2]=l;break}c=b[c>>2]|0;c:do if((b[c+4>>2]&-8|0)!=(h|0)){e=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(h|0)){c=a;break c}else{e=e<<1;c=a}}b[d>>2]=l;b[l+24>>2]=c;b[l+12>>2]=l;b[l+8>>2]=l;break b}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=l;b[u>>2]=l;b[l+8>>2]=v;b[l+12>>2]=c;b[l+24>>2]=0}while(0);v=i+8|0;S=w;return v|0}else m=k}else m=k}else m=-1;while(0);d=b[5831]|0;if(d>>>0>=m>>>0){c=d-m|0;a=b[5834]|0;if(c>>>0>15){v=a+m|0;b[5834]=v;b[5831]=c;b[v+4>>2]=c|1;b[a+d>>2]=c;b[a+4>>2]=m|3}else{b[5831]=0;b[5834]=0;b[a+4>>2]=d|3;v=a+d+4|0;b[v>>2]=b[v>>2]|1}v=a+8|0;S=w;return v|0}h=b[5832]|0;if(h>>>0>m>>>0){t=h-m|0;b[5832]=t;v=b[5835]|0;u=v+m|0;b[5835]=u;b[u+4>>2]=t|1;b[v+4>>2]=m|3;v=v+8|0;S=w;return v|0}if(!(b[5947]|0)){b[5949]=4096;b[5948]=4096;b[5950]=-1;b[5951]=-1;b[5952]=0;b[5940]=0;b[5947]=n&-16^1431655768;a=4096}else a=b[5949]|0;i=m+48|0;j=m+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=m>>>0){v=0;S=w;return v|0}a=b[5939]|0;if(a|0?(l=b[5937]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){v=0;S=w;return v|0}d:do if(!(b[5940]&4)){d=b[5835]|0;e:do if(d){e=23764;while(1){n=b[e>>2]|0;if(n>>>0<=d>>>0?(n+(b[e+4>>2]|0)|0)>>>0>d>>>0:0)break;a=b[e+8>>2]|0;if(!a){q=128;break e}else e=a}c=g-h&f;if(c>>>0<2147483647){a=id(c|0)|0;if((a|0)==((b[e>>2]|0)+(b[e+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=c;g=a;q=145;break d}}else{e=a;q=136}}else c=0}else q=128;while(0);do if((q|0)==128){d=id(0)|0;if((d|0)!=(-1|0)?(c=d,o=b[5948]|0,p=o+-1|0,c=((p&c|0)==0?0:(p+c&0-o)-c|0)+k|0,o=b[5937]|0,p=c+o|0,c>>>0>m>>>0&c>>>0<2147483647):0){n=b[5939]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){c=0;break}a=id(c|0)|0;if((a|0)==(d|0)){h=c;g=d;q=145;break d}else{e=a;q=136}}else c=0}while(0);do if((q|0)==136){d=0-c|0;if(!(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){c=0;break}else{h=c;g=e;q=145;break d}a=b[5949]|0;a=j-c+a&0-a;if(a>>>0>=2147483647){h=c;g=e;q=145;break d}if((id(a|0)|0)==(-1|0)){id(d|0)|0;c=0;break}else{h=a+c|0;g=e;q=145;break d}}while(0);b[5940]=b[5940]|4;q=143}else{c=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(t=id(k|0)|0,p=id(0)|0,r=p-t|0,s=r>>>0>(m+40|0)>>>0,!((t|0)==(-1|0)|s^1|t>>>0<p>>>0&((t|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=s?r:c;g=t;q=145}if((q|0)==145){c=(b[5937]|0)+h|0;b[5937]=c;if(c>>>0>(b[5938]|0)>>>0)b[5938]=c;j=b[5835]|0;f:do if(j){c=23764;while(1){a=b[c>>2]|0;d=b[c+4>>2]|0;if((g|0)==(a+d|0)){q=154;break}e=b[c+8>>2]|0;if(!e)break;else c=e}if(((q|0)==154?(u=c+4|0,(b[c+12>>2]&8|0)==0):0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){b[u>>2]=d+h;v=(b[5832]|0)+h|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=v-t|0;b[5835]=u;b[5832]=t;b[u+4>>2]=t|1;b[j+v+4>>2]=40;b[5836]=b[5951];break}if(g>>>0<(b[5833]|0)>>>0)b[5833]=g;d=g+h|0;c=23764;while(1){if((b[c>>2]|0)==(d|0)){q=162;break}a=b[c+8>>2]|0;if(!a)break;else c=a}if((q|0)==162?(b[c+12>>2]&8|0)==0:0){b[c>>2]=g;l=c+4|0;b[l>>2]=(b[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;c=d+8|0;c=d+((c&7|0)==0?0:0-c&7)|0;k=l+m|0;i=c-l-m|0;b[l+4>>2]=m|3;g:do if((j|0)==(c|0)){v=(b[5832]|0)+i|0;b[5832]=v;b[5835]=k;b[k+4>>2]=v|1}else{if((b[5834]|0)==(c|0)){v=(b[5831]|0)+i|0;b[5831]=v;b[5834]=k;b[k+4>>2]=v|1;b[k+v>>2]=v;break}a=b[c+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=b[c+8>>2]|0;d=b[c+12>>2]|0;if((d|0)==(a|0)){b[5829]=b[5829]&~(1<<e);break}else{b[a+12>>2]=d;b[d+8>>2]=a;break}}else{g=b[c+24>>2]|0;a=b[c+12>>2]|0;do if((a|0)==(c|0)){d=c+16|0;e=d+4|0;a=b[e>>2]|0;if(!a){a=b[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=b[f>>2]|0;if(!e){f=a+16|0;e=b[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}b[d>>2]=0}else{v=b[c+8>>2]|0;b[v+12>>2]=a;b[a+8>>2]=v}while(0);if(!g)break;d=b[c+28>>2]|0;e=23620+(d<<2)|0;do if((b[e>>2]|0)!=(c|0)){v=g+16|0;b[((b[v>>2]|0)==(c|0)?v:g+20|0)>>2]=a;if(!a)break h}else{b[e>>2]=a;if(a|0)break;b[5830]=b[5830]&~(1<<d);break h}while(0);b[a+24>>2]=g;d=c+16|0;e=b[d>>2]|0;if(e|0){b[a+16>>2]=e;b[e+24>>2]=a}d=b[d+4>>2]|0;if(!d)break;b[a+20>>2]=d;b[d+24>>2]=a}while(0);c=c+h|0;f=h+i|0}else f=i;c=c+4|0;b[c>>2]=b[c>>2]&-2;b[k+4>>2]=f|1;b[k+f>>2]=f;c=f>>>3;if(f>>>0<256){d=23356+(c<<1<<2)|0;a=b[5829]|0;c=1<<c;if(!(a&c)){b[5829]=a|c;c=d;a=d+8|0}else{a=d+8|0;c=b[a>>2]|0}b[a>>2]=k;b[c+12>>2]=k;b[k+8>>2]=c;b[k+12>>2]=d;break}c=f>>>8;do if(!c)e=0;else{if(f>>>0>16777215){e=31;break}u=(c+1048320|0)>>>16&8;v=c<<u;t=(v+520192|0)>>>16&4;v=v<<t;e=(v+245760|0)>>>16&2;e=14-(t|u|e)+(v<<e>>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);c=23620+(e<<2)|0;b[k+28>>2]=e;a=k+16|0;b[a+4>>2]=0;b[a>>2]=0;a=b[5830]|0;d=1<<e;if(!(a&d)){b[5830]=a|d;b[c>>2]=k;b[k+24>>2]=c;b[k+12>>2]=k;b[k+8>>2]=k;break}c=b[c>>2]|0;i:do if((b[c+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(f|0)){c=a;break i}else{e=e<<1;c=a}}b[d>>2]=k;b[k+24>>2]=c;b[k+12>>2]=k;b[k+8>>2]=k;break g}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=k;b[u>>2]=k;b[k+8>>2]=v;b[k+12>>2]=c;b[k+24>>2]=0}while(0);v=l+8|0;S=w;return v|0}c=23764;while(1){a=b[c>>2]|0;if(a>>>0<=j>>>0?(v=a+(b[c+4>>2]|0)|0,v>>>0>j>>>0):0)break;c=b[c+8>>2]|0}f=v+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0<f>>>0?j:a;c=a+8|0;d=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=d-t|0;b[5835]=u;b[5832]=t;b[u+4>>2]=t|1;b[g+d+4>>2]=40;b[5836]=b[5951];d=a+4|0;b[d>>2]=27;b[c>>2]=b[5941];b[c+4>>2]=b[5942];b[c+8>>2]=b[5943];b[c+12>>2]=b[5944];b[5941]=g;b[5942]=h;b[5944]=0;b[5943]=c;c=a+24|0;do{u=c;c=c+4|0;b[c>>2]=7}while((u+8|0)>>>0<v>>>0);if((a|0)!=(j|0)){g=a-j|0;b[d>>2]=b[d>>2]&-2;b[j+4>>2]=g|1;b[a>>2]=g;c=g>>>3;if(g>>>0<256){d=23356+(c<<1<<2)|0;a=b[5829]|0;c=1<<c;if(!(a&c)){b[5829]=a|c;c=d;a=d+8|0}else{a=d+8|0;c=b[a>>2]|0}b[a>>2]=j;b[c+12>>2]=j;b[j+8>>2]=c;b[j+12>>2]=d;break}c=g>>>8;if(c)if(g>>>0>16777215)e=31;else{u=(c+1048320|0)>>>16&8;v=c<<u;t=(v+520192|0)>>>16&4;v=v<<t;e=(v+245760|0)>>>16&2;e=14-(t|u|e)+(v<<e>>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=23620+(e<<2)|0;b[j+28>>2]=e;b[j+20>>2]=0;b[f>>2]=0;c=b[5830]|0;a=1<<e;if(!(c&a)){b[5830]=c|a;b[d>>2]=j;b[j+24>>2]=d;b[j+12>>2]=j;b[j+8>>2]=j;break}c=b[d>>2]|0;j:do if((b[c+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(g|0)){c=a;break j}else{e=e<<1;c=a}}b[d>>2]=j;b[j+24>>2]=c;b[j+12>>2]=j;b[j+8>>2]=j;break f}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=j;b[u>>2]=j;b[j+8>>2]=v;b[j+12>>2]=c;b[j+24>>2]=0}}else{v=b[5833]|0;if((v|0)==0|g>>>0<v>>>0)b[5833]=g;b[5941]=g;b[5942]=h;b[5944]=0;b[5838]=b[5947];b[5837]=-1;b[5842]=23356;b[5841]=23356;b[5844]=23364;b[5843]=23364;b[5846]=23372;b[5845]=23372;b[5848]=23380;b[5847]=23380;b[5850]=23388;b[5849]=23388;b[5852]=23396;b[5851]=23396;b[5854]=23404;b[5853]=23404;b[5856]=23412;b[5855]=23412;b[5858]=23420;b[5857]=23420;b[5860]=23428;b[5859]=23428;b[5862]=23436;b[5861]=23436;b[5864]=23444;b[5863]=23444;b[5866]=23452;b[5865]=23452;b[5868]=23460;b[5867]=23460;b[5870]=23468;b[5869]=23468;b[5872]=23476;b[5871]=23476;b[5874]=23484;b[5873]=23484;b[5876]=23492;b[5875]=23492;b[5878]=23500;b[5877]=23500;b[5880]=23508;b[5879]=23508;b[5882]=23516;b[5881]=23516;b[5884]=23524;b[5883]=23524;b[5886]=23532;b[5885]=23532;b[5888]=23540;b[5887]=23540;b[5890]=23548;b[5889]=23548;b[5892]=23556;b[5891]=23556;b[5894]=23564;b[5893]=23564;b[5896]=23572;b[5895]=23572;b[5898]=23580;b[5897]=23580;b[5900]=23588;b[5899]=23588;b[5902]=23596;b[5901]=23596;b[5904]=23604;b[5903]=23604;v=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=v-t|0;b[5835]=u;b[5832]=t;b[u+4>>2]=t|1;b[g+v+4>>2]=40;b[5836]=b[5951]}while(0);c=b[5832]|0;if(c>>>0>m>>>0){t=c-m|0;b[5832]=t;v=b[5835]|0;u=v+m|0;b[5835]=u;b[u+4>>2]=t|1;b[v+4>>2]=m|3;v=v+8|0;S=w;return v|0}}v=Sc()|0;b[v>>2]=12;v=0;S=w;return v|0}function Wc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=a+-8|0;f=b[5833]|0;a=b[a+-4>>2]|0;c=a&-8;j=d+c|0;do if(!(a&1)){e=b[d>>2]|0;if(!(a&3))return;h=d+(0-e)|0;g=e+c|0;if(h>>>0<f>>>0)return;if((b[5834]|0)==(h|0)){a=j+4|0;c=b[a>>2]|0;if((c&3|0)!=3){i=h;c=g;break}b[5831]=g;b[a>>2]=c&-2;b[h+4>>2]=g|1;b[h+g>>2]=g;return}d=e>>>3;if(e>>>0<256){a=b[h+8>>2]|0;c=b[h+12>>2]|0;if((c|0)==(a|0)){b[5829]=b[5829]&~(1<<d);i=h;c=g;break}else{b[a+12>>2]=c;b[c+8>>2]=a;i=h;c=g;break}}f=b[h+24>>2]|0;a=b[h+12>>2]|0;do if((a|0)==(h|0)){c=h+16|0;d=c+4|0;a=b[d>>2]|0;if(!a){a=b[c>>2]|0;if(!a){a=0;break}}else c=d;while(1){e=a+20|0;d=b[e>>2]|0;if(!d){e=a+16|0;d=b[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}b[c>>2]=0}else{i=b[h+8>>2]|0;b[i+12>>2]=a;b[a+8>>2]=i}while(0);if(f){c=b[h+28>>2]|0;d=23620+(c<<2)|0;if((b[d>>2]|0)==(h|0)){b[d>>2]=a;if(!a){b[5830]=b[5830]&~(1<<c);i=h;c=g;break}}else{i=f+16|0;b[((b[i>>2]|0)==(h|0)?i:f+20|0)>>2]=a;if(!a){i=h;c=g;break}}b[a+24>>2]=f;c=h+16|0;d=b[c>>2]|0;if(d|0){b[a+16>>2]=d;b[d+24>>2]=a}c=b[c+4>>2]|0;if(c){b[a+20>>2]=c;b[c+24>>2]=a;i=h;c=g}else{i=h;c=g}}else{i=h;c=g}}else{i=d;h=d}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;e=b[a>>2]|0;if(!(e&1))return;if(!(e&2)){if((b[5835]|0)==(j|0)){j=(b[5832]|0)+c|0;b[5832]=j;b[5835]=i;b[i+4>>2]=j|1;if((i|0)!=(b[5834]|0))return;b[5834]=0;b[5831]=0;return}if((b[5834]|0)==(j|0)){j=(b[5831]|0)+c|0;b[5831]=j;b[5834]=h;b[i+4>>2]=j|1;b[h+j>>2]=j;return}f=(e&-8)+c|0;d=e>>>3;do if(e>>>0<256){c=b[j+8>>2]|0;a=b[j+12>>2]|0;if((a|0)==(c|0)){b[5829]=b[5829]&~(1<<d);break}else{b[c+12>>2]=a;b[a+8>>2]=c;break}}else{g=b[j+24>>2]|0;a=b[j+12>>2]|0;do if((a|0)==(j|0)){c=j+16|0;d=c+4|0;a=b[d>>2]|0;if(!a){a=b[c>>2]|0;if(!a){d=0;break}}else c=d;while(1){e=a+20|0;d=b[e>>2]|0;if(!d){e=a+16|0;d=b[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}b[c>>2]=0;d=a}else{d=b[j+8>>2]|0;b[d+12>>2]=a;b[a+8>>2]=d;d=a}while(0);if(g|0){a=b[j+28>>2]|0;c=23620+(a<<2)|0;if((b[c>>2]|0)==(j|0)){b[c>>2]=d;if(!d){b[5830]=b[5830]&~(1<<a);break}}else{e=g+16|0;b[((b[e>>2]|0)==(j|0)?e:g+20|0)>>2]=d;if(!d)break}b[d+24>>2]=g;a=j+16|0;c=b[a>>2]|0;if(c|0){b[d+16>>2]=c;b[c+24>>2]=d}a=b[a+4>>2]|0;if(a|0){b[d+20>>2]=a;b[a+24>>2]=d}}}while(0);b[i+4>>2]=f|1;b[h+f>>2]=f;if((i|0)==(b[5834]|0)){b[5831]=f;return}}else{b[a>>2]=e&-2;b[i+4>>2]=c|1;b[h+c>>2]=c;f=c}a=f>>>3;if(f>>>0<256){d=23356+(a<<1<<2)|0;c=b[5829]|0;a=1<<a;if(!(c&a)){b[5829]=c|a;a=d;c=d+8|0}else{c=d+8|0;a=b[c>>2]|0}b[c>>2]=i;b[a+12>>2]=i;b[i+8>>2]=a;b[i+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{h=(a+1048320|0)>>>16&8;j=a<<h;g=(j+520192|0)>>>16&4;j=j<<g;e=(j+245760|0)>>>16&2;e=14-(g|h|e)+(j<<e>>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;a=23620+(e<<2)|0;b[i+28>>2]=e;b[i+20>>2]=0;b[i+16>>2]=0;c=b[5830]|0;d=1<<e;a:do if(!(c&d)){b[5830]=c|d;b[a>>2]=i;b[i+24>>2]=a;b[i+12>>2]=i;b[i+8>>2]=i}else{a=b[a>>2]|0;b:do if((b[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;c=b[d>>2]|0;if(!c)break;if((b[c+4>>2]&-8|0)==(f|0)){a=c;break b}else{e=e<<1;a=c}}b[d>>2]=i;b[i+24>>2]=a;b[i+12>>2]=i;b[i+8>>2]=i;break a}while(0);h=a+8|0;j=b[h>>2]|0;b[j+12>>2]=i;b[h>>2]=i;b[i+8>>2]=j;b[i+12>>2]=a;b[i+24>>2]=0}while(0);j=(b[5837]|0)+-1|0;b[5837]=j;if(j|0)return;a=23772;while(1){a=b[a>>2]|0;if(!a)break;else a=a+8|0}b[5837]=-1;return}function Xc(a,c){a=a|0;c=c|0;var d=0;if(a){d=B(c,a)|0;if((c|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(c|0)?d:-1}else d=0;a=Vc(d)|0;if(!a)return a|0;if(!(b[a+-4>>2]&3))return a|0;gd(a|0,0,d|0)|0;return a|0}function Yc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (F(b+d+(c>>>0<a>>>0|0)>>>0|0),c|0)|0}function Zc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (F(d|0),a-c>>>0|0)|0}function _c(a){a=a|0;return (a?31-(D(a^a-1)|0)|0:32)|0}function $c(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=c;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){b[f>>2]=(l>>>0)%(h>>>0);b[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (F(n|0),f)|0}else{if(!g){n=0;f=0;return (F(n|0),f)|0}b[f>>2]=a|0;b[f+4>>2]=c&0;n=0;f=0;return (F(n|0),f)|0}}g=(i|0)==0;do if(h){if(!g){g=(D(i|0)|0)-(D(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;c=g-31>>31;h=m;a=l>>>(m>>>0)&c|k<<i;c=k>>>(m>>>0)&c;g=0;i=l<<i;break}if(!f){n=0;f=0;return (F(n|0),f)|0}b[f>>2]=a|0;b[f+4>>2]=j|c&0;n=0;f=0;return (F(n|0),f)|0}g=h-1|0;if(g&h|0){i=(D(h|0)|0)+33-(D(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;c=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&c;c=c&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f|0){b[f>>2]=g&l;b[f+4>>2]=0}if((h|0)==1){o=j|c&0;p=a|0|0;return (F(o|0),p)|0}else{p=_c(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (F(o|0),p)|0}}else{if(g){if(f|0){b[f>>2]=(k>>>0)%(h>>>0);b[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (F(o|0),p)|0}if(!l){if(f|0){b[f>>2]=0;b[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (F(o|0),p)|0}g=i-1|0;if(!(g&i)){if(f|0){b[f>>2]=a|0;b[f+4>>2]=g&k|c&0}o=0;p=k>>>((_c(i|0)|0)>>>0);return (F(o|0),p)|0}g=(D(i|0)|0)-(D(k|0)|0)|0;if(g>>>0<=30){c=g+1|0;i=31-g|0;h=c;a=k<<i|l>>>(c>>>0);c=k>>>(c>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return (F(o|0),p)|0}b[f>>2]=a|0;b[f+4>>2]=j|c&0;o=0;p=0;return (F(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=Yc(m|0,l|0,-1,-1)|0;d=G()|0;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|c<<1|0;Zc(k|0,d|0,e|0,n|0)|0;p=G()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=Zc(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;c=G()|0;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){b[f>>2]=a;b[f+4>>2]=c}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (F(o|0),p)|0}function ad(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=S;S=S+16|0;f=g|0;$c(a,c,d,e,f)|0;S=g;return (F(b[f+4>>2]|0),b[f>>2]|0)|0}function bd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b>>>c|0);return a>>>c|(b&(1<<c)-1)<<32-c}F(0);return b>>>c-32|0}function cd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b<<c|(a&(1<<c)-1<<32-c)>>>32-c|0);return a<<c}F(a<<c-32|0);return 0}function dd(a,b){a=+a;b=+b;if(a!=a)return +b;if(b!=b)return +a;return +C(+a,+b)}function ed(a){a=+a;return a>=0.0?+p(a+.5):+A(a-.5)}function fd(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){K(c|0,d|0,e|0)|0;return c|0}h=c|0;g=c+e|0;if((c&3)==(d&3)){while(c&3){if(!e)return h|0;a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((c|0)<=(f|0)){b[c>>2]=b[d>>2];b[c+4>>2]=b[d+4>>2];b[c+8>>2]=b[d+8>>2];b[c+12>>2]=b[d+12>>2];b[c+16>>2]=b[d+16>>2];b[c+20>>2]=b[d+20>>2];b[c+24>>2]=b[d+24>>2];b[c+28>>2]=b[d+28>>2];b[c+32>>2]=b[d+32>>2];b[c+36>>2]=b[d+36>>2];b[c+40>>2]=b[d+40>>2];b[c+44>>2]=b[d+44>>2];b[c+48>>2]=b[d+48>>2];b[c+52>>2]=b[d+52>>2];b[c+56>>2]=b[d+56>>2];b[c+60>>2]=b[d+60>>2];c=c+64|0;d=d+64|0}while((c|0)<(e|0)){b[c>>2]=b[d>>2];c=c+4|0;d=d+4|0}}else{e=g-4|0;while((c|0)<(e|0)){a[c>>0]=a[d>>0]|0;a[c+1>>0]=a[d+1>>0]|0;a[c+2>>0]=a[d+2>>0]|0;a[c+3>>0]=a[d+3>>0]|0;c=c+4|0;d=d+4|0}}while((c|0)<(g|0)){a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0}return h|0}function gd(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=c+e|0;d=d&255;if((e|0)>=67){while(c&3){a[c>>0]=d;c=c+1|0}f=h&-4|0;i=d|d<<8|d<<16|d<<24;g=f-64|0;while((c|0)<=(g|0)){b[c>>2]=i;b[c+4>>2]=i;b[c+8>>2]=i;b[c+12>>2]=i;b[c+16>>2]=i;b[c+20>>2]=i;b[c+24>>2]=i;b[c+28>>2]=i;b[c+32>>2]=i;b[c+36>>2]=i;b[c+40>>2]=i;b[c+44>>2]=i;b[c+48>>2]=i;b[c+52>>2]=i;b[c+56>>2]=i;b[c+60>>2]=i;c=c+64|0}while((c|0)<(f|0)){b[c>>2]=i;c=c+4|0}}while((c|0)<(h|0)){a[c>>0]=d;c=c+1|0}return h-e|0}function hd(a){a=+a;return a>=0.0?+p(a+.5):+A(a-.5)}function id(a){a=a|0;var c=0,d=0,e=0;e=J()|0;d=b[g>>2]|0;c=d+a|0;if((a|0)>0&(c|0)<(d|0)|(c|0)<0){M(c|0)|0;I(12);return -1}if((c|0)>(e|0))if(!(L(c|0)|0)){I(12);return -1}b[g>>2]=c;return d|0}\n\n// EMSCRIPTEN_END_FUNCS\nreturn{___uremdi3:ad,_bitshift64Lshr:bd,_bitshift64Shl:cd,_calloc:Xc,_cellAreaKm2:ub,_cellAreaM2:vb,_cellAreaRads2:tb,_compact:Gb,_destroyLinkedPolygon:ic,_edgeLengthKm:pb,_edgeLengthM:qb,_emscripten_replace_memory:V,_exactEdgeLengthKm:xb,_exactEdgeLengthM:yb,_exactEdgeLengthRads:wb,_experimentalH3ToLocalIj:nc,_experimentalLocalIjToH3:oc,_free:Wc,_geoToH3:Rb,_getDestinationH3IndexFromUnidirectionalEdge:bc,_getH3IndexesFromUnidirectionalEdge:dc,_getH3UnidirectionalEdge:$b,_getH3UnidirectionalEdgeBoundary:fc,_getH3UnidirectionalEdgesFromHexagon:ec,_getOriginH3IndexFromUnidirectionalEdge:ac,_getPentagonIndexes:Zb,_getRes0Indexes:va,_h3Distance:pc,_h3GetBaseCell:zb,_h3GetFaces:Xb,_h3IndexesAreNeighbors:_b,_h3IsPentagon:Eb,_h3IsResClassIII:Jb,_h3IsValid:Ab,_h3Line:rc,_h3LineSize:qc,_h3SetToLinkedGeo:ka,_h3ToCenterChild:Fb,_h3ToChildren:Db,_h3ToGeo:Ub,_h3ToGeoBoundary:Vb,_h3ToParent:Bb,_h3UnidirectionalEdgeIsValid:cc,_hexAreaKm2:nb,_hexAreaM2:ob,_hexRing:ea,_i64Subtract:Zc,_kRing:$,_kRingDistances:aa,_llvm_minnum_f64:dd,_llvm_round_f64:ed,_malloc:Vc,_maxFaceCount:Wb,_maxH3ToChildrenSize:Cb,_maxKringSize:_,_maxPolyfillSize:fa,_maxUncompactSize:Ib,_memcpy:fd,_memset:gd,_numHexagons:rb,_pentagonIndexCount:Yb,_pointDistKm:jb,_pointDistM:kb,_pointDistRads:ib,_polyfill:ga,_res0IndexCount:ua,_round:hd,_sbrk:id,_sizeOfCoordIJ:Dc,_sizeOfGeoBoundary:zc,_sizeOfGeoCoord:yc,_sizeOfGeoPolygon:Bc,_sizeOfGeofence:Ac,_sizeOfH3Index:xc,_sizeOfLinkedGeoPolygon:Cc,_uncompact:Hb,establishStackSpace:Z,stackAlloc:W,stackRestore:Y,stackSave:X}})\n\n\n// EMSCRIPTEN_END_ASM\n(asmGlobalArg,asmLibraryArg,buffer);var ___uremdi3=Module[\"___uremdi3\"]=asm[\"___uremdi3\"];var _bitshift64Lshr=Module[\"_bitshift64Lshr\"]=asm[\"_bitshift64Lshr\"];var _bitshift64Shl=Module[\"_bitshift64Shl\"]=asm[\"_bitshift64Shl\"];var _calloc=Module[\"_calloc\"]=asm[\"_calloc\"];var _cellAreaKm2=Module[\"_cellAreaKm2\"]=asm[\"_cellAreaKm2\"];var _cellAreaM2=Module[\"_cellAreaM2\"]=asm[\"_cellAreaM2\"];var _cellAreaRads2=Module[\"_cellAreaRads2\"]=asm[\"_cellAreaRads2\"];var _compact=Module[\"_compact\"]=asm[\"_compact\"];var _destroyLinkedPolygon=Module[\"_destroyLinkedPolygon\"]=asm[\"_destroyLinkedPolygon\"];var _edgeLengthKm=Module[\"_edgeLengthKm\"]=asm[\"_edgeLengthKm\"];var _edgeLengthM=Module[\"_edgeLengthM\"]=asm[\"_edgeLengthM\"];var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=asm[\"_emscripten_replace_memory\"];var _exactEdgeLengthKm=Module[\"_exactEdgeLengthKm\"]=asm[\"_exactEdgeLengthKm\"];var _exactEdgeLengthM=Module[\"_exactEdgeLengthM\"]=asm[\"_exactEdgeLengthM\"];var _exactEdgeLengthRads=Module[\"_exactEdgeLengthRads\"]=asm[\"_exactEdgeLengthRads\"];var _experimentalH3ToLocalIj=Module[\"_experimentalH3ToLocalIj\"]=asm[\"_experimentalH3ToLocalIj\"];var _experimentalLocalIjToH3=Module[\"_experimentalLocalIjToH3\"]=asm[\"_experimentalLocalIjToH3\"];var _free=Module[\"_free\"]=asm[\"_free\"];var _geoToH3=Module[\"_geoToH3\"]=asm[\"_geoToH3\"];var _getDestinationH3IndexFromUnidirectionalEdge=Module[\"_getDestinationH3IndexFromUnidirectionalEdge\"]=asm[\"_getDestinationH3IndexFromUnidirectionalEdge\"];var _getH3IndexesFromUnidirectionalEdge=Module[\"_getH3IndexesFromUnidirectionalEdge\"]=asm[\"_getH3IndexesFromUnidirectionalEdge\"];var _getH3UnidirectionalEdge=Module[\"_getH3UnidirectionalEdge\"]=asm[\"_getH3UnidirectionalEdge\"];var _getH3UnidirectionalEdgeBoundary=Module[\"_getH3UnidirectionalEdgeBoundary\"]=asm[\"_getH3UnidirectionalEdgeBoundary\"];var _getH3UnidirectionalEdgesFromHexagon=Module[\"_getH3UnidirectionalEdgesFromHexagon\"]=asm[\"_getH3UnidirectionalEdgesFromHexagon\"];var _getOriginH3IndexFromUnidirectionalEdge=Module[\"_getOriginH3IndexFromUnidirectionalEdge\"]=asm[\"_getOriginH3IndexFromUnidirectionalEdge\"];var _getPentagonIndexes=Module[\"_getPentagonIndexes\"]=asm[\"_getPentagonIndexes\"];var _getRes0Indexes=Module[\"_getRes0Indexes\"]=asm[\"_getRes0Indexes\"];var _h3Distance=Module[\"_h3Distance\"]=asm[\"_h3Distance\"];var _h3GetBaseCell=Module[\"_h3GetBaseCell\"]=asm[\"_h3GetBaseCell\"];var _h3GetFaces=Module[\"_h3GetFaces\"]=asm[\"_h3GetFaces\"];var _h3IndexesAreNeighbors=Module[\"_h3IndexesAreNeighbors\"]=asm[\"_h3IndexesAreNeighbors\"];var _h3IsPentagon=Module[\"_h3IsPentagon\"]=asm[\"_h3IsPentagon\"];var _h3IsResClassIII=Module[\"_h3IsResClassIII\"]=asm[\"_h3IsResClassIII\"];var _h3IsValid=Module[\"_h3IsValid\"]=asm[\"_h3IsValid\"];var _h3Line=Module[\"_h3Line\"]=asm[\"_h3Line\"];var _h3LineSize=Module[\"_h3LineSize\"]=asm[\"_h3LineSize\"];var _h3SetToLinkedGeo=Module[\"_h3SetToLinkedGeo\"]=asm[\"_h3SetToLinkedGeo\"];var _h3ToCenterChild=Module[\"_h3ToCenterChild\"]=asm[\"_h3ToCenterChild\"];var _h3ToChildren=Module[\"_h3ToChildren\"]=asm[\"_h3ToChildren\"];var _h3ToGeo=Module[\"_h3ToGeo\"]=asm[\"_h3ToGeo\"];var _h3ToGeoBoundary=Module[\"_h3ToGeoBoundary\"]=asm[\"_h3ToGeoBoundary\"];var _h3ToParent=Module[\"_h3ToParent\"]=asm[\"_h3ToParent\"];var _h3UnidirectionalEdgeIsValid=Module[\"_h3UnidirectionalEdgeIsValid\"]=asm[\"_h3UnidirectionalEdgeIsValid\"];var _hexAreaKm2=Module[\"_hexAreaKm2\"]=asm[\"_hexAreaKm2\"];var _hexAreaM2=Module[\"_hexAreaM2\"]=asm[\"_hexAreaM2\"];var _hexRing=Module[\"_hexRing\"]=asm[\"_hexRing\"];var _i64Subtract=Module[\"_i64Subtract\"]=asm[\"_i64Subtract\"];var _kRing=Module[\"_kRing\"]=asm[\"_kRing\"];var _kRingDistances=Module[\"_kRingDistances\"]=asm[\"_kRingDistances\"];var _llvm_minnum_f64=Module[\"_llvm_minnum_f64\"]=asm[\"_llvm_minnum_f64\"];var _llvm_round_f64=Module[\"_llvm_round_f64\"]=asm[\"_llvm_round_f64\"];var _malloc=Module[\"_malloc\"]=asm[\"_malloc\"];var _maxFaceCount=Module[\"_maxFaceCount\"]=asm[\"_maxFaceCount\"];var _maxH3ToChildrenSize=Module[\"_maxH3ToChildrenSize\"]=asm[\"_maxH3ToChildrenSize\"];var _maxKringSize=Module[\"_maxKringSize\"]=asm[\"_maxKringSize\"];var _maxPolyfillSize=Module[\"_maxPolyfillSize\"]=asm[\"_maxPolyfillSize\"];var _maxUncompactSize=Module[\"_maxUncompactSize\"]=asm[\"_maxUncompactSize\"];var _memcpy=Module[\"_memcpy\"]=asm[\"_memcpy\"];var _memset=Module[\"_memset\"]=asm[\"_memset\"];var _numHexagons=Module[\"_numHexagons\"]=asm[\"_numHexagons\"];var _pentagonIndexCount=Module[\"_pentagonIndexCount\"]=asm[\"_pentagonIndexCount\"];var _pointDistKm=Module[\"_pointDistKm\"]=asm[\"_pointDistKm\"];var _pointDistM=Module[\"_pointDistM\"]=asm[\"_pointDistM\"];var _pointDistRads=Module[\"_pointDistRads\"]=asm[\"_pointDistRads\"];var _polyfill=Module[\"_polyfill\"]=asm[\"_polyfill\"];var _res0IndexCount=Module[\"_res0IndexCount\"]=asm[\"_res0IndexCount\"];var _round=Module[\"_round\"]=asm[\"_round\"];var _sbrk=Module[\"_sbrk\"]=asm[\"_sbrk\"];var _sizeOfCoordIJ=Module[\"_sizeOfCoordIJ\"]=asm[\"_sizeOfCoordIJ\"];var _sizeOfGeoBoundary=Module[\"_sizeOfGeoBoundary\"]=asm[\"_sizeOfGeoBoundary\"];var _sizeOfGeoCoord=Module[\"_sizeOfGeoCoord\"]=asm[\"_sizeOfGeoCoord\"];var _sizeOfGeoPolygon=Module[\"_sizeOfGeoPolygon\"]=asm[\"_sizeOfGeoPolygon\"];var _sizeOfGeofence=Module[\"_sizeOfGeofence\"]=asm[\"_sizeOfGeofence\"];var _sizeOfH3Index=Module[\"_sizeOfH3Index\"]=asm[\"_sizeOfH3Index\"];var _sizeOfLinkedGeoPolygon=Module[\"_sizeOfLinkedGeoPolygon\"]=asm[\"_sizeOfLinkedGeoPolygon\"];var _uncompact=Module[\"_uncompact\"]=asm[\"_uncompact\"];var establishStackSpace=Module[\"establishStackSpace\"]=asm[\"establishStackSpace\"];var stackAlloc=Module[\"stackAlloc\"]=asm[\"stackAlloc\"];var stackRestore=Module[\"stackRestore\"]=asm[\"stackRestore\"];var stackSave=Module[\"stackSave\"]=asm[\"stackSave\"];Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"setValue\"]=setValue;Module[\"getValue\"]=getValue;Module[\"getTempRet0\"]=getTempRet0;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=readBinary(memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency(\"memory initializer\");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module[\"memoryInitializerRequest\"])delete Module[\"memoryInitializerRequest\"].response;removeRunDependency(\"memory initializer\")};var doBrowserLoad=function(){readAsync(memoryInitializer,applyMemoryInitializer,function(){throw\"could not load memory initializer \"+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module[\"memoryInitializerRequest\"]){var useRequest=function(){var request=Module[\"memoryInitializerRequest\"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module[\"memoryInitializerRequestURL\"]);if(data){response=data.buffer}else{console.warn(\"a problem seems to have happened with Module.memoryInitializerRequest, status: \"+request.status+\", retrying \"+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module[\"memoryInitializerRequest\"].response){setTimeout(useRequest,0)}else{Module[\"memoryInitializerRequest\"].addEventListener(\"load\",useRequest)}}else{doBrowserLoad()}}}var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}noExitRuntime=true;run();\n\n\n\n return libh3\n}\n)(typeof libh3 === 'object' ? libh3 : {});\nexport default libh3;","/*\n * Copyright 2018-2019 Uber Technologies, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Define the C bindings for the h3 library\n\n// Add some aliases to make the function definitions more intelligible\nconst NUMBER = 'number';\nconst BOOLEAN = NUMBER;\nconst H3_LOWER = NUMBER;\nconst H3_UPPER = NUMBER;\nconst RESOLUTION = NUMBER;\nconst POINTER = NUMBER;\n\n// Define the bindings to functions in the C lib. Functions are defined as\n// [name, return type, [arg types]]. You must run `npm run build-emscripten`\n// before new functions added here will be available.\nexport default [\n // The size functions are inserted via build/sizes.h\n ['sizeOfH3Index', NUMBER],\n ['sizeOfGeoCoord', NUMBER],\n ['sizeOfGeoBoundary', NUMBER],\n ['sizeOfGeoPolygon', NUMBER],\n ['sizeOfGeofence', NUMBER],\n ['sizeOfLinkedGeoPolygon', NUMBER],\n ['sizeOfCoordIJ', NUMBER],\n // The remaining functions are defined in the core lib in h3Api.h\n ['h3IsValid', BOOLEAN, [H3_LOWER, H3_UPPER]],\n ['geoToH3', H3_LOWER, [NUMBER, NUMBER, RESOLUTION]],\n ['h3ToGeo', null, [H3_LOWER, H3_UPPER, POINTER]],\n ['h3ToGeoBoundary', null, [H3_LOWER, H3_UPPER, POINTER]],\n ['maxKringSize', NUMBER, [NUMBER]],\n ['kRing', null, [H3_LOWER, H3_UPPER, NUMBER, POINTER]],\n ['kRingDistances', null, [H3_LOWER, H3_UPPER, NUMBER, POINTER, POINTER]],\n ['hexRing', null, [H3_LOWER, H3_UPPER, NUMBER, POINTER]],\n ['maxPolyfillSize', NUMBER, [POINTER, RESOLUTION]],\n ['polyfill', null, [POINTER, RESOLUTION, POINTER]],\n ['h3SetToLinkedGeo', null, [POINTER, NUMBER, POINTER]],\n ['destroyLinkedPolygon', null, [POINTER]],\n ['compact', NUMBER, [POINTER, POINTER, NUMBER]],\n ['uncompact', NUMBER, [POINTER, NUMBER, POINTER, NUMBER, RESOLUTION]],\n ['maxUncompactSize', NUMBER, [POINTER, NUMBER, RESOLUTION]],\n ['h3IsPentagon', BOOLEAN, [H3_LOWER, H3_UPPER]],\n ['h3IsResClassIII', BOOLEAN, [H3_LOWER, H3_UPPER]],\n ['h3GetBaseCell', NUMBER, [H3_LOWER, H3_UPPER]],\n ['maxFaceCount', NUMBER, [H3_LOWER, H3_UPPER]],\n ['h3GetFaces', null, [H3_LOWER, H3_UPPER, POINTER]],\n ['h3ToParent', H3_LOWER, [H3_LOWER, H3_UPPER, RESOLUTION]],\n ['h3ToChildren', null, [H3_LOWER, H3_UPPER, RESOLUTION, POINTER]],\n ['h3ToCenterChild', H3_LOWER, [H3_LOWER, H3_UPPER, RESOLUTION]],\n ['maxH3ToChildrenSize', NUMBER, [H3_LOWER, H3_UPPER, RESOLUTION]],\n ['h3IndexesAreNeighbors', BOOLEAN, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER]],\n ['getH3UnidirectionalEdge', H3_LOWER, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER]],\n ['getOriginH3IndexFromUnidirectionalEdge', H3_LOWER, [H3_LOWER, H3_UPPER]],\n ['getDestinationH3IndexFromUnidirectionalEdge', H3_LOWER, [H3_LOWER, H3_UPPER]],\n ['h3UnidirectionalEdgeIsValid', BOOLEAN, [H3_LOWER, H3_UPPER]],\n ['getH3IndexesFromUnidirectionalEdge', null, [H3_LOWER, H3_UPPER, POINTER]],\n ['getH3UnidirectionalEdgesFromHexagon', null, [H3_LOWER, H3_UPPER, POINTER]],\n ['getH3UnidirectionalEdgeBoundary', null, [H3_LOWER, H3_UPPER, POINTER]],\n ['h3Distance', NUMBER, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER]],\n ['h3Line', NUMBER, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER, POINTER]],\n ['h3LineSize', NUMBER, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER]],\n ['experimentalH3ToLocalIj', NUMBER, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER, POINTER]],\n ['experimentalLocalIjToH3', NUMBER, [H3_LOWER, H3_UPPER, POINTER, POINTER]],\n ['hexAreaM2', NUMBER, [RESOLUTION]],\n ['hexAreaKm2', NUMBER, [RESOLUTION]],\n ['edgeLengthM', NUMBER, [RESOLUTION]],\n ['edgeLengthKm', NUMBER, [RESOLUTION]],\n ['pointDistM', NUMBER, [POINTER, POINTER]],\n ['pointDistKm', NUMBER, [POINTER, POINTER]],\n ['pointDistRads', NUMBER, [POINTER, POINTER]],\n ['cellAreaM2', NUMBER, [H3_LOWER, H3_UPPER]],\n ['cellAreaKm2', NUMBER, [H3_LOWER, H3_UPPER]],\n ['cellAreaRads2', NUMBER, [H3_LOWER, H3_UPPER]],\n ['exactEdgeLengthM', NUMBER, [H3_LOWER, H3_UPPER]],\n ['exactEdgeLengthKm', NUMBER, [H3_LOWER, H3_UPPER]],\n ['exactEdgeLengthRads', NUMBER, [H3_LOWER, H3_UPPER]],\n ['numHexagons', NUMBER, [RESOLUTION]],\n ['getRes0Indexes', null, [POINTER]],\n ['res0IndexCount', NUMBER],\n ['getPentagonIndexes', null, [NUMBER, POINTER]],\n ['pentagonIndexCount', NUMBER]\n];\n","/*\n * Copyright 2018-2019 Uber Technologies, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @module h3\n */\n\nimport C from '../out/libh3';\nimport BINDINGS from './bindings';\n\nconst H3 = {};\n\n// Create the bound functions themselves\nBINDINGS.forEach(function bind(def) {\n H3[def[0]] = C.cwrap(...def);\n});\n\n// Alias the hexidecimal base for legibility\nconst BASE_16 = 16;\n\n// ----------------------------------------------------------------------------\n// Byte size imports\n\nconst SZ_INT = 4;\nconst SZ_PTR = 4;\nconst SZ_DBL = 8;\nconst SZ_H3INDEX = H3.sizeOfH3Index();\nconst SZ_GEOCOORD = H3.sizeOfGeoCoord();\nconst SZ_GEOBOUNDARY = H3.sizeOfGeoBoundary();\nconst SZ_GEOPOLYGON = H3.sizeOfGeoPolygon();\nconst SZ_GEOFENCE = H3.sizeOfGeofence();\nconst SZ_LINKED_GEOPOLYGON = H3.sizeOfLinkedGeoPolygon();\nconst SZ_COORDIJ = H3.sizeOfCoordIJ();\n\n// ----------------------------------------------------------------------------\n// Custom types\n\n/**\n * 64-bit hexidecimal string representation of an H3 index\n * @static\n * @typedef {string} H3Index\n */\n\n/**\n * 64-bit hexidecimal string representation of an H3 index,\n * or two 32-bit integers in little endian order in an array.\n * @static\n * @typedef {string | number[]} H3IndexInput\n */\n\n/**\n * Coordinates as an `{i, j}` pair\n * @static\n * @typedef CoordIJ\n * @type {Object}\n * @property {number} i\n * @property {number} j\n */\n\n// ----------------------------------------------------------------------------\n// Unit constants\n\n/**\n * Length/Area units\n * @static\n * @typedef UNITS\n * @type {Object}\n * @property {string} m\n * @property {string} m2\n * @property {string} km\n * @property {string} km2\n * @property {string} rads\n * @property {string} rads2\n */\nexport const UNITS = {\n m: 'm',\n m2: 'm2',\n km: 'km',\n km2: 'km2',\n rads: 'rads',\n rads2: 'rads2'\n};\n\n// ----------------------------------------------------------------------------\n// Utilities and helpers\n\n/**\n * Validate a resolution, throwing an error if invalid\n * @private\n * @param {mixed} res Value to validate\n * @throws {Error} Error if invalid\n */\nfunction validateRes(res) {\n if (typeof res !== 'number' || res < 0 || res > 15 || Math.floor(res) !== res) {\n throw new Error(`Invalid resolution: ${res}`);\n }\n}\n\nconst INVALID_HEXIDECIMAL_CHAR = /[^0-9a-fA-F]/;\n\n/**\n * Convert an H3 index (64-bit hexidecimal string) into a \"split long\" - a pair of 32-bit ints\n * @private\n * @param {H3IndexInput} h3Index H3 index to check\n * @return {number[]} A two-element array with 32 lower bits and 32 upper bits\n */\nfunction h3IndexToSplitLong(h3Index) {\n if (\n Array.isArray(h3Index) &&\n h3Index.length === 2 &&\n Number.isInteger(h3Index[0]) &&\n Number.isInteger(h3Index[1])\n ) {\n return h3Index;\n }\n if (typeof h3Index !== 'string' || INVALID_HEXIDECIMAL_CHAR.test(h3Index)) {\n return [0, 0];\n }\n const upper = parseInt(h3Index.substring(0, h3Index.length - 8), BASE_16);\n const lower = parseInt(h3Index.substring(h3Index.length - 8), BASE_16);\n return [lower, upper];\n}\n\n/**\n * Convert a 32-bit int to a hexdecimal string\n * @private\n * @param {number} num Integer to convert\n * @return {H3Index} Hexidecimal string\n */\nfunction hexFrom32Bit(num) {\n if (num >= 0) {\n return num.toString(BASE_16);\n }\n\n // Handle negative numbers\n num = num & 0x7fffffff;\n let tempStr = zeroPad(8, num.toString(BASE_16));\n const topNum = (parseInt(tempStr[0], BASE_16) + 8).toString(BASE_16);\n tempStr = topNum + tempStr.substring(1);\n return tempStr;\n}\n\n/**\n * Get a H3 index from a split long (pair of 32-bit ints)\n * @private\n * @param {number} lower Lower 32 bits\n * @param {number} upper Upper 32 bits\n * @return {H3Index} H3 index\n */\nfunction splitLongToh3Index(lower, upper) {\n return hexFrom32Bit(upper) + zeroPad(8, hexFrom32Bit(lower));\n}\n\n/**\n * Zero-pad a string to a given length\n * @private\n * @param {number} fullLen Target length\n * @param {string} numStr String to zero-pad\n * @return {string} Zero-padded string\n */\nfunction zeroPad(fullLen, numStr) {\n const numZeroes = fullLen - numStr.length;\n let outStr = '';\n for (let i = 0; i < numZeroes; i++) {\n outStr += '0';\n }\n outStr = outStr + numStr;\n return outStr;\n}\n\n/**\n * Populate a C-appropriate Geofence struct from a polygon array\n * @private\n * @param {Array[]} polygonArray Polygon, as an array of coordinate pairs\n * @param {number} geofence C pointer to a Geofence struct\n * @param {boolean} isGeoJson Whether coordinates are in [lng, lat] order per GeoJSON spec\n * @return {number} C pointer to populated Geofence struct\n */\nfunction polygonArrayToGeofence(polygonArray, geofence, isGeoJson) {\n const numVerts = polygonArray.length;\n const geoCoordArray = C._calloc(numVerts, SZ_GEOCOORD);\n // Support [lng, lat] pairs if GeoJSON is specified\n const latIndex = isGeoJson ? 1 : 0;\n const lngIndex = isGeoJson ? 0 : 1;\n for (let i = 0; i < numVerts * 2; i += 2) {\n C.HEAPF64.set(\n [polygonArray[i / 2][latIndex], polygonArray[i / 2][lngIndex]].map(degsToRads),\n geoCoordArray / SZ_DBL + i\n );\n }\n C.HEAPU32.set([numVerts, geoCoordArray], geofence / SZ_INT);\n return geofence;\n}\n\n/**\n * Create a C-appropriate GeoPolygon struct from an array of polygons\n * @private\n * @param {Array[]} coordinates Array of polygons, each an array of coordinate pairs\n * @param {boolean} isGeoJson Whether coordinates are in [lng, lat] order per GeoJSON spec\n * @return {number} C pointer to populated GeoPolygon struct\n */\nfunction coordinatesToGeoPolygon(coordinates, isGeoJson) {\n // Any loops beyond the first loop are holes\n const numHoles = coordinates.length - 1;\n const geoPolygon = C._calloc(SZ_GEOPOLYGON);\n // Byte positions within the struct\n const geofenceOffset = 0;\n const numHolesOffset = geofenceOffset + SZ_GEOFENCE;\n const holesOffset = numHolesOffset + SZ_INT;\n // geofence is first part of struct\n polygonArrayToGeofence(coordinates[0], geoPolygon + geofenceOffset, isGeoJson);\n let holes;\n if (numHoles > 0) {\n holes = C._calloc(numHoles, SZ_GEOFENCE);\n for (let i = 0; i < numHoles; i++) {\n polygonArrayToGeofence(coordinates[i + 1], holes + SZ_GEOFENCE * i, isGeoJson);\n }\n }\n C.setValue(geoPolygon + numHolesOffset, numHoles, 'i32');\n C.setValue(geoPolygon + holesOffset, holes, 'i32');\n return geoPolygon;\n}\n\n/**\n * Free memory allocated for a GeoPolygon struct. It is an error to access the struct\n * after passing it to this method.\n * @private\n * @return {number} geoPolygon C pointer to populated GeoPolygon struct\n */\nfunction destroyGeoPolygon(geoPolygon) {\n // Byte positions within the struct\n const geofenceOffset = 0;\n const numHolesOffset = geofenceOffset + SZ_GEOFENCE;\n const holesOffset = numHolesOffset + SZ_INT;\n // Free the outer loop\n C._free(C.getValue(geoPolygon + geofenceOffset, 'i8*'));\n // Free the holes, if any\n const numHoles = C.getValue(geoPolygon + numHolesOffset, 'i32');\n for (let i = 0; i < numHoles; i++) {\n C._free(C.getValue(geoPolygon + holesOffset + SZ_GEOFENCE * i, 'i8*'));\n }\n C._free(geoPolygon);\n}\n\n/**\n * Read a long value, returning the lower and upper portions as separate 32-bit integers.\n * Because the upper bits are returned via side effect, the argument to this function is\n * intended to be the invocation that caused the side effect, e.g. readLong(H3.getSomeLong())\n * @private\n * @param {number} invocation Invoked function returning a long value. The actual return\n * value of these functions is a 32-bit integer.\n * @return {number} Long value as a [lower, upper] pair\n */\nfunction readLong(invocation) {\n // Upper 32-bits of the long set via side-effect\n const upper = C.getTempRet0();\n return [invocation, upper];\n}\n\n/**\n * Read an H3 index from a C return value. As with readLong, the argument to this function\n * is intended to be an invocation, e.g. readH3Index(H3.getSomeAddress()), to help ensure that\n * the temp value storing the upper bits of the long is still set.\n * @private\n * @param {number} invocation Invoked function returning a single H3 index\n * @return {H3Index} H3 index, or null if index was invalid\n */\nfunction readH3Index(invocation) {\n const [lower, upper] = readLong(invocation);\n // The lower bits are allowed to be 0s, but if the upper bits are 0\n // this represents an invalid H3 index\n return upper ? splitLongToh3Index(lower, upper) : null;\n}\n\n/**\n * Read an H3 index from a pointer to C memory.\n * @private\n * @param {number} cAddress Pointer to allocated C memory\n * @param {number} offset Offset, in number of H3 indexes, in case we're\n * reading an array\n * @return {H3Index} H3 index, or null if index was invalid\n */\nfunction readH3IndexFromPointer(cAddress, offset = 0) {\n const lower = C.getValue(cAddress + SZ_INT * offset * 2, 'i32');\n const upper = C.getValue(cAddress + SZ_INT * (offset * 2 + 1), 'i32');\n // The lower bits are allowed to be 0s, but if the upper bits are 0\n // this represents an invalid H3 index\n return upper ? splitLongToh3Index(lower, upper) : null;\n}\n\n/**\n * Store an H3 index in C memory. Primarily used as an efficient way to\n * write sets of hexagons.\n * @private\n * @param {H3IndexInput} h3Index H3 index to store\n * @param {number} cAddress Pointer to allocated C memory\n * @param {number} offset Offset, in number of H3 indexes from beginning\n * of the current array\n */\nfunction storeH3Index(h3Index, cAddress, offset) {\n // HEAPU32 is a typed array projection on the index space\n // as unsigned 32-bit integers. This means the index needs\n // to be divided by SZ_INT (4) to access correctly. Also,\n // the H3 index is 64 bits, so we skip by twos as we're writing\n // to 32-bit integers in the proper order.\n C.HEAPU32.set(h3IndexToSplitLong(h3Index), cAddress / SZ_INT + 2 * offset);\n}\n\n/**\n * Read an array of 64-bit H3 indexes from C and convert to a JS array of\n * H3 index strings\n * @private\n * @param {number} cAddress Pointer to C ouput array\n * @param {number} maxCount Max number of hexagons in array. Hexagons with\n * the value 0 will be skipped, so this isn't\n * necessarily the length of the output array.\n * @return {H3Index[]} Array of H3 indexes\n */\nfunction readArrayOfHexagons(cAddress, maxCount) {\n const out = [];\n for (let i = 0; i < maxCount; i++) {\n const h3Index = readH3IndexFromPointer(cAddress, i);\n if (h3Index !== null) {\n out.push(h3Index);\n }\n }\n return out;\n}\n\n/**\n * Store an array of H3 index strings as a C array of 64-bit integers.\n * @private\n * @param {number} cAddress Pointer to C input array\n * @param {H3IndexInput[]} hexagons H3 indexes to pass to the C lib\n */\nfunction storeArrayOfHexagons(cAddress, hexagons) {\n // Assuming the cAddress points to an already appropriately\n // allocated space\n const count = hexagons.length;\n for (let i = 0; i < count; i++) {\n storeH3Index(hexagons[i], cAddress, i);\n }\n}\n\n/**\n * Populate a C-appropriate GeoCoord struct from a [lat, lng] array\n * @private\n * @param {number} lat Coordinate latitude\n * @param {number} lng Coordinate longitude\n * @return {number} C pointer to populated GeoCoord struct\n */\nfunction storeGeoCoord(lat, lng) {\n const geoCoord = C._calloc(1, SZ_GEOCOORD);\n C.HEAPF64.set([lat, lng].map(degsToRads), geoCoord / SZ_DBL);\n return geoCoord;\n}\n\nfunction readSingleCoord(cAddress) {\n return radsToDegs(C.getValue(cAddress, 'double'));\n}\n\n/**\n * Read a GeoCoord from C and return a [lat, lng] pair.\n * @private\n * @param {number} cAddress Pointer to C struct\n * @return {number[]} [lat, lng] pair\n */\nfunction readGeoCoord(cAddress) {\n return [readSingleCoord(cAddress), readSingleCoord(cAddress + SZ_DBL)];\n}\n\n/**\n * Read a GeoCoord from C and return a GeoJSON-style [lng, lat] pair.\n * @private\n * @param {number} cAddress Pointer to C struct\n * @return {number[]} [lng, lat] pair\n */\nfunction readGeoCoordGeoJson(cAddress) {\n return [readSingleCoord(cAddress + SZ_DBL), readSingleCoord(cAddress)];\n}\n\n/**\n * Read the GeoBoundary structure into a list of geo coordinate pairs\n * @private\n * @param {number} geoBoundary C pointer to GeoBoundary struct\n * @param {boolean} geoJsonCoords Whether to provide GeoJSON coordinate order: [lng, lat]\n * @param {boolean} closedLoop Whether to close the loop\n * @return {Array[]} Array of geo coordinate pairs\n */\nfunction readGeoBoundary(geoBoundary, geoJsonCoords, closedLoop) {\n const numVerts = C.getValue(geoBoundary, 'i32');\n // Note that though numVerts is an int, the coordinate doubles have to be\n // aligned to 8 bytes, hence the 8-byte offset here\n const vertsPos = geoBoundary + SZ_DBL;\n const out = [];\n // Support [lng, lat] pairs if GeoJSON is specified\n const readCoord = geoJsonCoords ? readGeoCoordGeoJson : readGeoCoord;\n for (let i = 0; i < numVerts * 2; i += 2) {\n out.push(readCoord(vertsPos + SZ_DBL * i));\n }\n if (closedLoop) {\n // Close loop if GeoJSON is specified\n out.push(out[0]);\n }\n return out;\n}\n\n/**\n * Read the LinkedGeoPolygon structure into a nested array of MultiPolygon coordinates\n * @private\n * @param {number} polygon C pointer to LinkedGeoPolygon struct\n * @param {boolean} formatAsGeoJson Whether to provide GeoJSON output: [lng, lat], closed loops\n * @return {number[][][][]} MultiPolygon-style output.\n */\nfunction readMultiPolygon(polygon, formatAsGeoJson) {\n const output = [];\n const readCoord = formatAsGeoJson ? readGeoCoordGeoJson : readGeoCoord;\n let loops;\n let loop;\n let coords;\n let coord;\n // Loop through the linked structure, building the output\n while (polygon) {\n output.push((loops = []));\n // Follow ->first pointer\n loop = C.getValue(polygon, 'i8*');\n while (loop) {\n loops.push((coords = []));\n // Follow ->first pointer\n coord = C.getValue(loop, 'i8*');\n while (coord) {\n coords.push(readCoord(coord));\n // Follow ->next pointer\n coord = C.getValue(coord + SZ_DBL * 2, 'i8*');\n }\n if (formatAsGeoJson) {\n // Close loop if GeoJSON is requested\n coords.push(coords[0]);\n }\n // Follow ->next pointer\n loop = C.getValue(loop + SZ_PTR * 2, 'i8*');\n }\n // Follow ->next pointer\n polygon = C.getValue(polygon + SZ_PTR * 2, 'i8*');\n }\n return output;\n}\n\n/**\n * Read a CoordIJ from C and return an {i, j} pair.\n * @private\n * @param {number} cAddress Pointer to C struct\n * @return {CoordIJ} {i, j} pair\n */\nfunction readCoordIJ(cAddress) {\n return {\n i: C.getValue(cAddress, 'i32'),\n j: C.getValue(cAddress + SZ_INT, 'i32')\n };\n}\n\n/**\n * Store an {i, j} pair to a C CoordIJ struct.\n * @private\n * @param {number} cAddress Pointer to C struct\n * @return {CoordIJ} {i, j} pair\n */\nfunction storeCoordIJ(cAddress, {i, j}) {\n C.setValue(cAddress, i, 'i32');\n C.setValue(cAddress + SZ_INT, j, 'i32');\n}\n\n/**\n * Read an array of positive integers array from C. Negative\n * values are considered invalid and ignored in output.\n * @private\n * @param {number} cAddress Pointer to C array\n * @param {number} count Length of C array\n * @return {number[]} Javascript integer array\n */\nfunction readArrayOfPositiveIntegers(cAddress, count) {\n const out = [];\n for (let i = 0; i < count; i++) {\n const int = C.getValue(cAddress + SZ_INT * i, 'i32');\n if (int >= 0) {\n out.push(int);\n }\n }\n return out;\n}\n\n// ----------------------------------------------------------------------------\n// Public API functions: Core\n\n/**\n * Whether a given string represents a valid H3 index\n * @static\n * @param {H3IndexInput} h3Index H3 index to check\n * @return {boolean} Whether the index is valid\n */\nexport function h3IsValid(h3Index) {\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n return Boolean(H3.h3IsValid(lower, upper));\n}\n\n/**\n * Whether the given H3 index is a pentagon\n * @static\n * @param {H3IndexInput} h3Index H3 index to check\n * @return {boolean} isPentagon\n */\nexport function h3IsPentagon(h3Index) {\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n return Boolean(H3.h3IsPentagon(lower, upper));\n}\n\n/**\n * Whether the given H3 index is in a Class III resolution (rotated versus\n * the icosahedron and subject to shape distortion adding extra points on\n * icosahedron edges, making them not true hexagons).\n * @static\n * @param {H3IndexInput} h3Index H3 index to check\n * @return {boolean} isResClassIII\n */\nexport function h3IsResClassIII(h3Index) {\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n return Boolean(H3.h3IsResClassIII(lower, upper));\n}\n\n/**\n * Get the number of the base cell for a given H3 index\n * @static\n * @param {H3IndexInput} h3Index H3 index to get the base cell for\n * @return {number} Index of the base cell (0-121)\n */\nexport function h3GetBaseCell(h3Index) {\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n return H3.h3GetBaseCell(lower, upper);\n}\n\n/**\n * Get the indices of all icosahedron faces intersected by a given H3 index\n * @static\n * @param {H3IndexInput} h3Index H3 index to get faces for\n * @return {number[]} Indices (0-19) of all intersected faces\n */\nexport function h3GetFaces(h3Index) {\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n const count = H3.maxFaceCount(lower, upper);\n const faces = C._malloc(SZ_INT * count);\n H3.h3GetFaces(lower, upper, faces);\n const out = readArrayOfPositiveIntegers(faces, count);\n C._free(faces);\n return out;\n}\n\n/**\n * Returns the resolution of an H3 index\n * @static\n * @param {H3IndexInput} h3Index H3 index to get resolution\n * @return {number} The number (0-15) resolution, or -1 if invalid\n */\nexport function h3GetResolution(h3Index) {\n if (typeof h3Index !== 'string') {\n return -1;\n }\n return parseInt(h3Index.charAt(1), BASE_16);\n}\n\n/**\n * Get the hexagon containing a lat,lon point\n * @static\n * @param {number} lat Latitude of point\n * @param {number} lng Longtitude of point\n * @param {number} res Resolution of hexagons to return\n * @return {H3Index} H3 index\n */\nexport function geoToH3(lat, lng, res) {\n const latlng = C._malloc(SZ_GEOCOORD);\n // Slightly more efficient way to set the memory\n C.HEAPF64.set([lat, lng].map(degsToRads), latlng / SZ_DBL);\n // Read value as a split long\n const h3Index = readH3Index(H3.geoToH3(latlng, res));\n C._free(latlng);\n return h3Index;\n}\n\n/**\n * Get the lat,lon center of a given hexagon\n * @static\n * @param {H3IndexInput} h3Index H3 index\n * @return {number[]} Point as a [lat, lng] pair\n */\nexport function h3ToGeo(h3Index) {\n const latlng = C._malloc(SZ_GEOCOORD);\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n H3.h3ToGeo(lower, upper, latlng);\n const out = readGeoCoord(latlng);\n C._free(latlng);\n return out;\n}\n\n/**\n * Get the vertices of a given hexagon (or pentagon), as an array of [lat, lng]\n * points. For pentagons and hexagons on the edge of an icosahedron face, this\n * function may return up to 10 vertices.\n * @static\n * @param {H3Index} h3Index H3 index\n * @param {boolean} [formatAsGeoJson] Whether to provide GeoJSON output: [lng, lat], closed loops\n * @return {number[][]} Array of [lat, lng] pairs\n */\nexport function h3ToGeoBoundary(h3Index, formatAsGeoJson) {\n const geoBoundary = C._malloc(SZ_GEOBOUNDARY);\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n H3.h3ToGeoBoundary(lower, upper, geoBoundary);\n const out = readGeoBoundary(geoBoundary, formatAsGeoJson, formatAsGeoJson);\n C._free(geoBoundary);\n return out;\n}\n\n// ----------------------------------------------------------------------------\n// Public API functions: Algorithms\n\n/**\n * Get the parent of the given hexagon at a particular resolution\n * @static\n * @param {H3IndexInput} h3Index H3 index to get parent for\n * @param {number} res Resolution of hexagon to return\n * @return {H3Index} H3 index of parent, or null for invalid input\n */\nexport function h3ToParent(h3Index, res) {\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n return readH3Index(H3.h3ToParent(lower, upper, res));\n}\n\n/**\n * Get the children/descendents of the given hexagon at a particular resolution\n * @static\n * @param {H3IndexInput} h3Index H3 index to get children for\n * @param {number} res Resolution of hexagons to return\n * @return {H3Index[]} H3 indexes of children, or empty array for invalid input\n */\nexport function h3ToChildren(h3Index, res) {\n // Bad input in this case can potentially result in high computation volume\n // using the current C algorithm. Validate and return an empty array on failure.\n if (!h3IsValid(h3Index)) {\n return [];\n }\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n const maxCount = H3.maxH3ToChildrenSize(lower, upper, res);\n const hexagons = C._calloc(maxCount, SZ_H3INDEX);\n H3.h3ToChildren(lower, upper, res, hexagons);\n const out = readArrayOfHexagons(hexagons, maxCount);\n C._free(hexagons);\n return out;\n}\n\n/**\n * Get the center child of the given hexagon at a particular resolution\n * @static\n * @param {H3IndexInput} h3Index H3 index to get center child for\n * @param {number} res Resolution of hexagon to return\n * @return {H3Index} H3 index of child, or null for invalid input\n */\nexport function h3ToCenterChild(h3Index, res) {\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n return readH3Index(H3.h3ToCenterChild(lower, upper, res));\n}\n\n/**\n * Get all hexagons in a k-ring around a given center. The order of the hexagons is undefined.\n * @static\n * @param {H3IndexInput} h3Index H3 index of center hexagon\n * @param {number} ringSize Radius of k-ring\n * @return {H3Index[]} H3 indexes for all hexagons in ring\n */\nexport function kRing(h3Index, ringSize) {\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n const maxCount = H3.maxKringSize(ringSize);\n const hexagons = C._calloc(maxCount, SZ_H3INDEX);\n H3.kRing(lower, upper, ringSize, hexagons);\n const out = readArrayOfHexagons(hexagons, maxCount);\n C._free(hexagons);\n return out;\n}\n\n/**\n * Get all hexagons in a k-ring around a given center, in an array of arrays\n * ordered by distance from the origin. The order of the hexagons within each ring is undefined.\n * @static\n * @param {H3IndexInput} h3Index H3 index of center hexagon\n * @param {number} ringSize Radius of k-ring\n * @return {H3Index[][]} Array of arrays with H3 indexes for all hexagons each ring\n */\nexport function kRingDistances(h3Index, ringSize) {\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n const maxCount = H3.maxKringSize(ringSize);\n const kRings = C._calloc(maxCount, SZ_H3INDEX);\n const distances = C._calloc(maxCount, SZ_INT);\n H3.kRingDistances(lower, upper, ringSize, kRings, distances);\n // Create an array of empty arrays to hold the output\n const out = [];\n for (let i = 0; i < ringSize + 1; i++) {\n out.push([]);\n }\n // Read the array of hexagons, putting them into the appropriate rings\n for (let i = 0; i < maxCount * 2; i += 2) {\n const hexLower = C.getValue(kRings + SZ_INT * i, 'i32');\n const hexUpper = C.getValue(kRings + SZ_INT * (i + 1), 'i32');\n const index = C.getValue(distances + SZ_INT * (i / 2), 'i32');\n if (hexLower !== 0 || hexUpper !== 0) {\n out[index].push(splitLongToh3Index(hexLower, hexUpper));\n }\n }\n C._free(kRings);\n C._free(distances);\n return out;\n}\n\n/**\n * Get all hexagons in a hollow hexagonal ring centered at origin with sides of a given length.\n * Unlike kRing, this function will throw an error if there is a pentagon anywhere in the ring.\n * @static\n * @param {H3IndexInput} h3Index H3 index of center hexagon\n * @param {number} ringSize Radius of ring\n * @return {H3Index[]} H3 indexes for all hexagons in ring\n * @throws {Error} If the algorithm could not calculate the ring\n */\nexport function hexRing(h3Index, ringSize) {\n const maxCount = ringSize === 0 ? 1 : 6 * ringSize;\n const hexagons = C._calloc(maxCount, SZ_H3INDEX);\n const retVal = H3.hexRing(...h3IndexToSplitLong(h3Index), ringSize, hexagons);\n if (retVal !== 0) {\n C._free(hexagons);\n throw new Error('Failed to get hexRing (encountered a pentagon?)');\n }\n const out = readArrayOfHexagons(hexagons, maxCount);\n C._free(hexagons);\n return out;\n}\n\n/**\n * Get all hexagons with centers contained in a given polygon. The polygon\n * is specified with GeoJson semantics as an array of loops. Each loop is\n * an array of [lat, lng] pairs (or [lng, lat] if isGeoJson is specified).\n * The first loop is the perimeter of the polygon, and subsequent loops are\n * expected to be holes.\n * @static\n * @param {number[][] | number[][][]} coordinates\n * Array of loops, or a single loop\n * @param {number} res Resolution of hexagons to return\n * @param {boolean} [isGeoJson] Whether to expect GeoJson-style [lng, lat]\n * pairs instead of [lat, lng]\n * @return {H3Index[]} H3 indexes for all hexagons in polygon\n */\nexport function polyfill(coordinates, res, isGeoJson) {\n validateRes(res);\n isGeoJson = Boolean(isGeoJson);\n // Guard against empty input\n if (coordinates.length === 0 || coordinates[0].length === 0) {\n return [];\n }\n // Wrap to expected format if a single loop is provided\n if (typeof coordinates[0][0] === 'number') {\n coordinates = [coordinates];\n }\n const geoPolygon = coordinatesToGeoPolygon(coordinates, isGeoJson);\n const arrayLen = H3.maxPolyfillSize(geoPolygon, res);\n const hexagons = C._calloc(arrayLen, SZ_H3INDEX);\n H3.polyfill(geoPolygon, res, hexagons);\n const out = readArrayOfHexagons(hexagons, arrayLen);\n C._free(hexagons);\n destroyGeoPolygon(geoPolygon);\n return out;\n}\n\n/**\n * Get the outlines of a set of H3 hexagons, returned in GeoJSON MultiPolygon\n * format (an array of polygons, each with an array of loops, each an array of\n * coordinates). Coordinates are returned as [lat, lng] pairs unless GeoJSON\n * is requested.\n *\n * It is the responsibility of the caller to ensure that all hexagons in the\n * set have the same resolution and that the set contains no duplicates. Behavior\n * is undefined if duplicates or multiple resolutions are present, and the\n * algorithm may produce unexpected or invalid polygons.\n *\n * @static\n * @param {H3IndexInput[]} h3Indexes H3 indexes to get outlines for\n * @param {boolean} [formatAsGeoJson] Whether to provide GeoJSON output:\n * [lng, lat], closed loops\n * @return {number[][][][]} MultiPolygon-style output.\n */\nexport function h3SetToMultiPolygon(h3Indexes, formatAsGeoJson) {\n // Early exit on empty input\n if (!h3Indexes || !h3Indexes.length) {\n return [];\n }\n // Set up input set\n const indexCount = h3Indexes.length;\n const set = C._calloc(indexCount, SZ_H3INDEX);\n storeArrayOfHexagons(set, h3Indexes);\n // Allocate memory for output linked polygon\n const polygon = C._calloc(SZ_LINKED_GEOPOLYGON);\n // Store a reference to the first polygon - that's the one we need for\n // memory deallocation\n const originalPolygon = polygon;\n H3.h3SetToLinkedGeo(set, indexCount, polygon);\n const multiPolygon = readMultiPolygon(polygon, formatAsGeoJson);\n // Clean up\n H3.destroyLinkedPolygon(originalPolygon);\n C._free(originalPolygon);\n C._free(set);\n return multiPolygon;\n}\n\n/**\n * Compact a set of hexagons of the same resolution into a set of hexagons across\n * multiple levels that represents the same area.\n * @static\n * @param {H3IndexInput[]} h3Set H3 indexes to compact\n * @return {H3Index[]} Compacted H3 indexes\n * @throws {Error} If the input is invalid (e.g. duplicate hexagons)\n */\nexport function compact(h3Set) {\n if (!h3Set || !h3Set.length) {\n return [];\n }\n // Set up input set\n const count = h3Set.length;\n const set = C._calloc(count, SZ_H3INDEX);\n storeArrayOfHexagons(set, h3Set);\n // Allocate memory for compacted hexagons, worst-case is no compaction\n const compactedSet = C._calloc(count, SZ_H3INDEX);\n const retVal = H3.compact(set, compactedSet, count);\n if (retVal !== 0) {\n C._free(set);\n C._free(compactedSet);\n throw new Error('Failed to compact, malformed input data (duplicate hexagons?)');\n }\n const out = readArrayOfHexagons(compactedSet, count);\n C._free(set);\n C._free(compactedSet);\n return out;\n}\n\n/**\n * Uncompact a compacted set of hexagons to hexagons of the same resolution\n * @static\n * @param {H3IndexInput[]} compactedSet H3 indexes to uncompact\n * @param {number} res The resolution to uncompact to\n * @return {H3Index[]} The uncompacted H3 indexes\n * @throws {Error} If the input is invalid (e.g. invalid resolution)\n */\nexport function uncompact(compactedSet, res) {\n validateRes(res);\n if (!compactedSet || !compactedSet.length) {\n return [];\n }\n // Set up input set\n const count = compactedSet.length;\n const set = C._calloc(count, SZ_H3INDEX);\n storeArrayOfHexagons(set, compactedSet);\n // Estimate how many hexagons we need (always overestimates if in error)\n const maxUncompactedNum = H3.maxUncompactSize(set, count, res);\n // Allocate memory for uncompacted hexagons\n const uncompactedSet = C._calloc(maxUncompactedNum, SZ_H3INDEX);\n const retVal = H3.uncompact(set, count, uncompactedSet, maxUncompactedNum, res);\n if (retVal !== 0) {\n C._free(set);\n C._free(uncompactedSet);\n throw new Error('Failed to uncompact (bad resolution?)');\n }\n const out = readArrayOfHexagons(uncompactedSet, maxUncompactedNum);\n C._free(set);\n C._free(uncompactedSet);\n return out;\n}\n\n// ----------------------------------------------------------------------------\n// Public API functions: Unidirectional edges\n\n/**\n * Whether two H3 indexes are neighbors (share an edge)\n * @static\n * @param {H3IndexInput} origin Origin hexagon index\n * @param {H3IndexInput} destination Destination hexagon index\n * @return {boolean} Whether the hexagons share an edge\n */\nexport function h3IndexesAreNeighbors(origin, destination) {\n const [oLower, oUpper] = h3IndexToSplitLong(origin);\n const [dLower, dUpper] = h3IndexToSplitLong(destination);\n return Boolean(H3.h3IndexesAreNeighbors(oLower, oUpper, dLower, dUpper));\n}\n\n/**\n * Get an H3 index representing a unidirectional edge for a given origin and destination\n * @static\n * @param {H3IndexInput} origin Origin hexagon index\n * @param {H3IndexInput} destination Destination hexagon index\n * @return {H3Index} H3 index of the edge, or null if no edge is shared\n */\nexport function getH3UnidirectionalEdge(origin, destination) {\n const [oLower, oUpper] = h3IndexToSplitLong(origin);\n const [dLower, dUpper] = h3IndexToSplitLong(destination);\n return readH3Index(H3.getH3UnidirectionalEdge(oLower, oUpper, dLower, dUpper));\n}\n\n/**\n * Get the origin hexagon from an H3 index representing a unidirectional edge\n * @static\n * @param {H3IndexInput} edgeIndex H3 index of the edge\n * @return {H3Index} H3 index of the edge origin\n */\nexport function getOriginH3IndexFromUnidirectionalEdge(edgeIndex) {\n const [lower, upper] = h3IndexToSplitLong(edgeIndex);\n return readH3Index(H3.getOriginH3IndexFromUnidirectionalEdge(lower, upper));\n}\n\n/**\n * Get the destination hexagon from an H3 index representing a unidirectional edge\n * @static\n * @param {H3IndexInput} edgeIndex H3 index of the edge\n * @return {H3Index} H3 index of the edge destination\n */\nexport function getDestinationH3IndexFromUnidirectionalEdge(edgeIndex) {\n const [lower, upper] = h3IndexToSplitLong(edgeIndex);\n return readH3Index(H3.getDestinationH3IndexFromUnidirectionalEdge(lower, upper));\n}\n\n/**\n * Whether the input is a valid unidirectional edge\n * @static\n * @param {H3IndexInput} edgeIndex H3 index of the edge\n * @return {boolean} Whether the index is valid\n */\nexport function h3UnidirectionalEdgeIsValid(edgeIndex) {\n const [lower, upper] = h3IndexToSplitLong(edgeIndex);\n return Boolean(H3.h3UnidirectionalEdgeIsValid(lower, upper));\n}\n\n/**\n * Get the [origin, destination] pair represented by a unidirectional edge\n * @static\n * @param {H3IndexInput} edgeIndex H3 index of the edge\n * @return {H3Index[]} [origin, destination] pair as H3 indexes\n */\nexport function getH3IndexesFromUnidirectionalEdge(edgeIndex) {\n const [lower, upper] = h3IndexToSplitLong(edgeIndex);\n const count = 2;\n const hexagons = C._calloc(count, SZ_H3INDEX);\n H3.getH3IndexesFromUnidirectionalEdge(lower, upper, hexagons);\n const out = readArrayOfHexagons(hexagons, count);\n C._free(hexagons);\n return out;\n}\n\n/**\n * Get all of the unidirectional edges with the given H3 index as the origin (i.e. an edge to\n * every neighbor)\n * @static\n * @param {H3IndexInput} h3Index H3 index of the origin hexagon\n * @return {H3Index[]} List of unidirectional edges\n */\nexport function getH3UnidirectionalEdgesFromHexagon(h3Index) {\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n const count = 6;\n const edges = C._calloc(count, SZ_H3INDEX);\n H3.getH3UnidirectionalEdgesFromHexagon(lower, upper, edges);\n const out = readArrayOfHexagons(edges, count);\n C._free(edges);\n return out;\n}\n\n/**\n * Get the vertices of a given edge as an array of [lat, lng] points. Note that for edges that\n * cross the edge of an icosahedron face, this may return 3 coordinates.\n * @static\n * @param {H3IndexInput} edgeIndex H3 index of the edge\n * @param {boolean} [formatAsGeoJson] Whether to provide GeoJSON output: [lng, lat]\n * @return {number[][]} Array of geo coordinate pairs\n */\nexport function getH3UnidirectionalEdgeBoundary(edgeIndex, formatAsGeoJson) {\n const geoBoundary = C._malloc(SZ_GEOBOUNDARY);\n const [lower, upper] = h3IndexToSplitLong(edgeIndex);\n H3.getH3UnidirectionalEdgeBoundary(lower, upper, geoBoundary);\n const out = readGeoBoundary(geoBoundary, formatAsGeoJson);\n C._free(geoBoundary);\n return out;\n}\n\n/**\n * Get the grid distance between two hex indexes. This function may fail\n * to find the distance between two indexes if they are very far apart or\n * on opposite sides of a pentagon.\n * @static\n * @param {H3IndexInput} origin Origin hexagon index\n * @param {H3IndexInput} destination Destination hexagon index\n * @return {number} Distance between hexagons, or a negative\n * number if the distance could not be computed\n */\nexport function h3Distance(origin, destination) {\n const [oLower, oUpper] = h3IndexToSplitLong(origin);\n const [dLower, dUpper] = h3IndexToSplitLong(destination);\n return H3.h3Distance(oLower, oUpper, dLower, dUpper);\n}\n\n/**\n * Given two H3 indexes, return the line of indexes between them (inclusive).\n *\n * This function may fail to find the line between two indexes, for\n * example if they are very far apart. It may also fail when finding\n * distances for indexes on opposite sides of a pentagon.\n *\n * Notes:\n *\n * - The specific output of this function should not be considered stable\n * across library versions. The only guarantees the library provides are\n * that the line length will be `h3Distance(start, end) + 1` and that\n * every index in the line will be a neighbor of the preceding index.\n * - Lines are drawn in grid space, and may not correspond exactly to either\n * Cartesian lines or great arcs.\n *\n * @static\n * @param {H3IndexInput} origin Origin hexagon index\n * @param {H3IndexInput} destination Destination hexagon index\n * @return {H3Index[]} H3 indexes connecting origin and destination\n * @throws {Error} If the line cannot be calculated\n */\nexport function h3Line(origin, destination) {\n const [oLower, oUpper] = h3IndexToSplitLong(origin);\n const [dLower, dUpper] = h3IndexToSplitLong(destination);\n const count = H3.h3LineSize(oLower, oUpper, dLower, dUpper);\n if (count < 0) {\n // We can't get the specific error code here - may be any of\n // the errors possible in experimentalH3ToLocalIj\n throw new Error('Line cannot be calculated');\n }\n const hexagons = C._calloc(count, SZ_H3INDEX);\n H3.h3Line(oLower, oUpper, dLower, dUpper, hexagons);\n const out = readArrayOfHexagons(hexagons, count);\n C._free(hexagons);\n return out;\n}\n\n/**\n * Produces IJ coordinates for an H3 index anchored by an origin.\n *\n * - The coordinate space used by this function may have deleted\n * regions or warping due to pentagonal distortion.\n * - Coordinates are only comparable if they come from the same\n * origin index.\n * - Failure may occur if the index is too far away from the origin\n * or if the index is on the other side of a pentagon.\n * - This function is experimental, and its output is not guaranteed\n * to be compatible across different versions of H3.\n * @static\n * @param {H3IndexInput} origin Origin H3 index\n * @param {H3IndexInput} destination H3 index for which to find relative coordinates\n * @return {CoordIJ} Coordinates as an `{i, j}` pair\n * @throws {Error} If the IJ coordinates cannot be calculated\n */\nexport function experimentalH3ToLocalIj(origin, destination) {\n const ij = C._malloc(SZ_COORDIJ);\n const retVal = H3.experimentalH3ToLocalIj(\n ...h3IndexToSplitLong(origin),\n ...h3IndexToSplitLong(destination),\n ij\n );\n const coords = readCoordIJ(ij);\n C._free(ij);\n // Return the pair, or throw if an error code was returned.\n // Switch statement and error codes cribbed from h3-java's implementation.\n switch (retVal) {\n case 0:\n return coords;\n case 1:\n throw new Error('Incompatible origin and index.');\n case 2:\n default:\n throw new Error(\n 'Local IJ coordinates undefined for this origin and index pair. ' +\n 'The index may be too far from the origin.'\n );\n case 3:\n case 4:\n case 5:\n throw new Error('Encountered possible pentagon distortion');\n }\n}\n\n/**\n * Produces an H3 index for IJ coordinates anchored by an origin.\n *\n * - The coordinate space used by this function may have deleted\n * regions or warping due to pentagonal distortion.\n * - Coordinates are only comparable if they come from the same\n * origin index.\n * - Failure may occur if the index is too far away from the origin\n * or if the index is on the other side of a pentagon.\n * - This function is experimental, and its output is not guaranteed\n * to be compatible across different versions of H3.\n * @static\n * @param {H3IndexInput} origin Origin H3 index\n * @param {CoordIJ} coords Coordinates as an `{i, j}` pair\n * @return {H3Index} H3 index at the relative coordinates\n * @throws {Error} If the H3 index cannot be calculated\n */\nexport function experimentalLocalIjToH3(origin, coords) {\n // Validate input coords\n if (!coords || typeof coords.i !== 'number' || typeof coords.j !== 'number') {\n throw new Error('Coordinates must be provided as an {i, j} object');\n }\n // Allocate memory for the CoordIJ struct and an H3 index to hold the return value\n const ij = C._malloc(SZ_COORDIJ);\n const out = C._malloc(SZ_H3INDEX);\n storeCoordIJ(ij, coords);\n const retVal = H3.experimentalLocalIjToH3(...h3IndexToSplitLong(origin), ij, out);\n const h3Index = readH3IndexFromPointer(out);\n C._free(ij);\n C._free(out);\n if (retVal !== 0) {\n throw new Error(\n 'Index not defined for this origin and IJ coordinates pair. ' +\n 'IJ coordinates may be too far from origin, or ' +\n 'a pentagon distortion was encountered.'\n );\n }\n return h3Index;\n}\n\n// ----------------------------------------------------------------------------\n// Public API functions: Distance/area utilities\n\n/**\n * Great circle distance between two geo points. This is not specific to H3,\n * but is implemented in the library and provided here as a convenience.\n * @static\n * @param {number[]} latlng1 Origin coordinate as [lat, lng]\n * @param {number[]} latlng2 Destination coordinate as [lat, lng]\n * @param {string} unit Distance unit (either UNITS.m or UNITS.km)\n * @return {number} Great circle distance\n * @throws {Error} If the unit is invalid\n */\nexport function pointDist(latlng1, latlng2, unit) {\n const coord1 = storeGeoCoord(latlng1[0], latlng1[1]);\n const coord2 = storeGeoCoord(latlng2[0], latlng2[1]);\n let result;\n switch (unit) {\n case UNITS.m:\n result = H3.pointDistM(coord1, coord2);\n break;\n case UNITS.km:\n result = H3.pointDistKm(coord1, coord2);\n break;\n case UNITS.rads:\n result = H3.pointDistRads(coord1, coord2);\n break;\n default:\n result = null;\n }\n C._free(coord1);\n C._free(coord2);\n if (result === null) {\n throw new Error(`Unknown unit: ${unit}`);\n }\n return result;\n}\n\n/**\n * Exact area of a given cell\n * @static\n * @param {H3Index} h3Index H3 index of the hexagon to measure\n * @param {string} unit Distance unit (either UNITS.m2 or UNITS.km2)\n * @return {number} Cell area\n * @throws {Error} If the unit is invalid\n */\nexport function cellArea(h3Index, unit) {\n const [lower, upper] = h3IndexToSplitLong(h3Index);\n switch (unit) {\n case UNITS.m2:\n return H3.cellAreaM2(lower, upper);\n case UNITS.km2:\n return H3.cellAreaKm2(lower, upper);\n case UNITS.rads2:\n return H3.cellAreaRads2(lower, upper);\n default:\n throw new Error(`Unknown unit: ${unit}`);\n }\n}\n\n/**\n * Exact length of a given unidirectional edge\n * @static\n * @param {H3Index} edge H3 index of the edge to measure\n * @param {string} unit Distance unit (either UNITS.m, UNITS.km, or UNITS.rads)\n * @return {number} Cell area\n * @throws {Error} If the unit is invalid\n */\nexport function exactEdgeLength(edge, unit) {\n const [lower, upper] = h3IndexToSplitLong(edge);\n switch (unit) {\n case UNITS.m:\n return H3.exactEdgeLengthM(lower, upper);\n case UNITS.km:\n return H3.exactEdgeLengthKm(lower, upper);\n case UNITS.rads:\n return H3.exactEdgeLengthRads(lower, upper);\n default:\n throw new Error(`Unknown unit: ${unit}`);\n }\n}\n\n/**\n * Average hexagon area at a given resolution\n * @static\n * @param {number} res Hexagon resolution\n * @param {string} unit Area unit (either UNITS.m2, UNITS.km2, or UNITS.rads2)\n * @return {number} Average area\n * @throws {Error} If the unit is invalid\n */\nexport function hexArea(res, unit) {\n validateRes(res);\n switch (unit) {\n case UNITS.m2:\n return H3.hexAreaM2(res);\n case UNITS.km2:\n return H3.hexAreaKm2(res);\n default:\n throw new Error(`Unknown unit: ${unit}`);\n }\n}\n\n/**\n * Average hexagon edge length at a given resolution\n * @static\n * @param {number} res Hexagon resolution\n * @param {string} unit Distance unit (either UNITS.m, UNITS.km, or UNITS.rads)\n * @return {number} Average edge length\n * @throws {Error} If the unit is invalid\n */\nexport function edgeLength(res, unit) {\n validateRes(res);\n switch (unit) {\n case UNITS.m:\n return H3.edgeLengthM(res);\n case UNITS.km:\n return H3.edgeLengthKm(res);\n default:\n throw new Error(`Unknown unit: ${unit}`);\n }\n}\n\n// ----------------------------------------------------------------------------\n// Public informational utilities\n\n/**\n * The total count of hexagons in the world at a given resolution. Note that above\n * resolution 8 the exact count cannot be represented in a JavaScript 32-bit number,\n * so consumers should use caution when applying further operations to the output.\n * @static\n * @param {number} res Hexagon resolution\n * @return {number} Count\n */\nexport function numHexagons(res) {\n validateRes(res);\n // Get number as a long value\n const [lower, upper] = readLong(H3.numHexagons(res));\n // If we're using <= 32 bits we can use normal JS numbers\n if (!upper) {\n return lower;\n }\n // Above 32 bit, make a JS number that's correct in order of magnitude\n return upper * Math.pow(2, 32) + lower;\n}\n\n/**\n * Get all H3 indexes at resolution 0. As every index at every resolution > 0 is\n * the descendant of a res 0 index, this can be used with h3ToChildren to iterate\n * over H3 indexes at any resolution.\n * @static\n * @return {H3Index[]} All H3 indexes at res 0\n */\nexport function getRes0Indexes() {\n const count = H3.res0IndexCount();\n const hexagons = C._malloc(SZ_H3INDEX * count);\n H3.getRes0Indexes(hexagons);\n const out = readArrayOfHexagons(hexagons, count);\n C._free(hexagons);\n return out;\n}\n\n/**\n * Get the twelve pentagon indexes at a given resolution.\n * @static\n * @param {number} res Hexagon resolution\n * @return {H3Index[]} All H3 pentagon indexes at res\n */\nexport function getPentagonIndexes(res) {\n validateRes(res);\n const count = H3.pentagonIndexCount();\n const hexagons = C._malloc(SZ_H3INDEX * count);\n H3.getPentagonIndexes(res, hexagons);\n const out = readArrayOfHexagons(hexagons, count);\n C._free(hexagons);\n return out;\n}\n\n/**\n * Convert degrees to radians\n * @static\n * @param {number} deg Value in degrees\n * @return {number} Value in radians\n */\nexport function degsToRads(deg) {\n return (deg * Math.PI) / 180;\n}\n\n/**\n * Convert radians to degrees\n * @static\n * @param {number} rad Value in radians\n * @return {number} Value in degrees\n */\nexport function radsToDegs(rad) {\n return (rad * 180) / Math.PI;\n}\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","import GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGL2Context, withParameters, log} from '@luma.gl/gltools';\nimport {global} from 'probe.gl/env';\n\nimport Resource from './resource';\nimport Buffer from './buffer';\nimport {\n TEXTURE_FORMATS,\n DATA_FORMAT_CHANNELS,\n TYPE_SIZES,\n isFormatSupported,\n isLinearFilteringSupported\n} from './texture-formats';\nimport {assert} from '../utils/assert';\nimport {uid, isPowerOfTwo} from '../utils/utils';\n\n// Supported min filters for NPOT texture.\nconst NPOT_MIN_FILTERS = [GL.LINEAR, GL.NEAREST];\n\n// Polyfill\n// Note (Tarek): Do we really need to support this API?\nconst WebGLBuffer = global.WebGLBuffer || function WebGLBuffer() {};\n\nexport default class Texture extends Resource {\n static isSupported(gl, opts = {}) {\n const {format, linearFiltering} = opts;\n let supported = true;\n if (format) {\n supported = supported && isFormatSupported(gl, format);\n supported = supported && (!linearFiltering || isLinearFilteringSupported(gl, format));\n }\n return supported;\n }\n\n // target cannot be modified by bind:\n // textures are special because when you first bind them to a target,\n // they get special information. When you first bind a texture as a\n // GL_TEXTURE_2D, you are actually setting special state in the texture.\n // You are saying that this texture is a 2D texture.\n // And it will always be a 2D texture; this state cannot be changed ever.\n // If you have a texture that was first bound as a GL_TEXTURE_2D,\n // you must always bind it as a GL_TEXTURE_2D;\n // attempting to bind it as GL_TEXTURE_1D will give rise to an error\n // (while run-time).\n constructor(gl, props) {\n const {\n id = uid('texture'),\n handle,\n target\n // , magFilter, minFilter, wrapS, wrapT\n } = props;\n\n super(gl, {id, handle});\n\n this.target = target;\n this.textureUnit = undefined;\n\n // Program.draw() checks the loaded flag of all textures to avoid\n // Textures that are still loading from promises\n // Set to true as soon as texture has been initialized with valid data\n this.loaded = false;\n\n this.width = undefined;\n this.height = undefined;\n this.depth = undefined;\n this.format = undefined;\n this.type = undefined;\n this.dataFormat = undefined;\n this.border = undefined;\n this.textureUnit = undefined;\n this.mipmaps = undefined;\n }\n\n toString() {\n return `Texture(${this.id},${this.width}x${this.height})`;\n }\n\n /* eslint-disable max-len, max-statements */\n initialize(props = {}) {\n let data = props.data;\n\n if (data instanceof Promise) {\n data.then(resolvedImageData =>\n this.initialize(\n Object.assign({}, props, {\n pixels: resolvedImageData,\n data: resolvedImageData\n })\n )\n );\n return this;\n }\n const isVideo = typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement;\n // @ts-ignore\n if (isVideo && data.readyState < HTMLVideoElement.HAVE_METADATA) {\n this._video = null; // Declare member before the object is sealed\n data.addEventListener('loadeddata', () => this.initialize(props));\n return this;\n }\n\n const {\n pixels = null,\n format = GL.RGBA,\n border = 0,\n recreate = false,\n parameters = {},\n pixelStore = {},\n textureUnit = undefined\n } = props;\n\n // pixels variable is for API compatibility purpose\n if (!data) {\n // TODO - This looks backwards? Commenting out for now until we decide\n // which prop to use\n // log.deprecated('data', 'pixels')();\n data = pixels;\n }\n\n let {width, height, dataFormat, type, compressed = false, mipmaps = true} = props;\n const {depth = 0} = props;\n\n // Deduce width and height\n ({width, height, compressed, dataFormat, type} = this._deduceParameters({\n format,\n type,\n dataFormat,\n compressed,\n data,\n width,\n height\n }));\n\n // Store opts for accessors\n this.width = width;\n this.height = height;\n this.depth = depth;\n this.format = format;\n this.type = type;\n this.dataFormat = dataFormat;\n this.border = border;\n this.textureUnit = textureUnit;\n\n if (Number.isFinite(this.textureUnit)) {\n this.gl.activeTexture(GL.TEXTURE0 + this.textureUnit);\n this.gl.bindTexture(this.target, this.handle);\n }\n\n if (mipmaps && this._isNPOT()) {\n log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)();\n mipmaps = false;\n\n this._updateForNPOT(parameters);\n }\n\n this.mipmaps = mipmaps;\n\n this.setImageData({\n data,\n width,\n height,\n depth,\n format,\n type,\n dataFormat,\n border,\n mipmaps,\n parameters: pixelStore,\n compressed\n });\n\n if (mipmaps) {\n this.generateMipmap();\n }\n\n // Set texture sampler parameters\n this.setParameters(parameters);\n\n // TODO - Store data to enable auto recreate on context loss\n if (recreate) {\n this.data = data;\n }\n if (isVideo) {\n this._video = {\n video: data,\n parameters,\n // @ts-ignore\n lastTime: data.readyState >= HTMLVideoElement.HAVE_CURRENT_DATA ? data.currentTime : -1\n };\n }\n\n return this;\n }\n\n update() {\n if (this._video) {\n const {video, parameters, lastTime} = this._video;\n // @ts-ignore\n if (lastTime === video.currentTime || video.readyState < HTMLVideoElement.HAVE_CURRENT_DATA) {\n return;\n }\n this.setSubImageData({\n data: video,\n parameters\n });\n if (this.mipmaps) {\n this.generateMipmap();\n }\n this._video.lastTime = video.currentTime;\n }\n }\n\n // If size has changed, reinitializes with current format\n // note clears image and mipmaps\n resize({height, width, mipmaps = false}) {\n if (width !== this.width || height !== this.height) {\n return this.initialize({\n width,\n height,\n format: this.format,\n type: this.type,\n dataFormat: this.dataFormat,\n border: this.border,\n mipmaps\n });\n }\n return this;\n }\n\n // Call to regenerate mipmaps after modifying texture(s)\n generateMipmap(params = {}) {\n if (this._isNPOT()) {\n log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)();\n return this;\n }\n\n this.mipmaps = true;\n\n this.gl.bindTexture(this.target, this.handle);\n withParameters(this.gl, params, () => {\n this.gl.generateMipmap(this.target);\n });\n this.gl.bindTexture(this.target, null);\n return this;\n }\n\n /*\n * Allocates storage\n * @param {*} pixels -\n * null - create empty texture of specified format\n * Typed array - init from image data in typed array\n * Buffer|WebGLBuffer - (WEBGL2) init from image data in WebGLBuffer\n * HTMLImageElement|Image - Inits with content of image. Auto width/height\n * HTMLCanvasElement - Inits with contents of canvas. Auto width/height\n * HTMLVideoElement - Creates video texture. Auto width/height\n *\n * @param {GLint} width -\n * @param {GLint} height -\n * @param {GLint} mipMapLevel -\n * @param {GLenum} format - format of image data.\n * @param {GLenum} type\n * - format of array (autodetect from type) or\n * - (WEBGL2) format of buffer\n * @param {Number} offset - (WEBGL2) offset from start of buffer\n * @param {GLint} border - must be 0.\n * @parameters - temporary settings to be applied, can be used to supply pixel store settings.\n */\n /* eslint-disable max-len, max-statements, complexity */\n setImageData(options) {\n this._trackDeallocatedMemory('Texture');\n\n const {\n target = this.target,\n pixels = null,\n level = 0,\n format = this.format,\n border = this.border,\n offset = 0,\n parameters = {}\n } = options;\n\n let {\n data = null,\n type = this.type,\n width = this.width,\n height = this.height,\n dataFormat = this.dataFormat,\n compressed = false\n } = options;\n\n // pixels variable is for API compatibility purpose\n if (!data) {\n data = pixels;\n }\n\n ({type, dataFormat, compressed, width, height} = this._deduceParameters({\n format,\n type,\n dataFormat,\n compressed,\n data,\n width,\n height\n }));\n\n const {gl} = this;\n gl.bindTexture(this.target, this.handle);\n\n let dataType = null;\n ({data, dataType} = this._getDataType({data, compressed}));\n\n let gl2;\n\n withParameters(this.gl, parameters, () => {\n switch (dataType) {\n case 'null':\n gl.texImage2D(target, level, format, width, height, border, dataFormat, type, data);\n break;\n case 'typed-array':\n // Looks like this assert is not necessary, as offset is ignored under WebGL1\n // assert((offset === 0 || isWebGL2(gl)), 'offset supported in WebGL2 only');\n // @ts-ignore\n gl.texImage2D(\n target,\n level,\n format,\n width,\n height,\n border,\n dataFormat,\n type,\n data,\n // @ts-ignore\n offset\n );\n break;\n case 'buffer':\n // WebGL2 enables creating textures directly from a WebGL buffer\n gl2 = assertWebGL2Context(gl);\n gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle || data);\n gl2.texImage2D(target, level, format, width, height, border, dataFormat, type, offset);\n gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);\n break;\n case 'browser-object':\n if (isWebGL2(gl)) {\n gl.texImage2D(target, level, format, width, height, border, dataFormat, type, data);\n } else {\n gl.texImage2D(target, level, format, dataFormat, type, data);\n }\n break;\n case 'compressed':\n for (const [levelIndex, levelData] of data.entries()) {\n gl.compressedTexImage2D(\n target,\n levelIndex,\n levelData.format,\n levelData.width,\n levelData.height,\n border,\n levelData.data\n );\n }\n\n break;\n default:\n assert(false, 'Unknown image data type');\n }\n });\n\n if (data && data.byteLength) {\n this._trackAllocatedMemory(data.byteLength, 'Texture');\n } else {\n // NOTE(Tarek): Default to RGBA bytes\n const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;\n const channelSize = TYPE_SIZES[this.type] || 1;\n\n this._trackAllocatedMemory(this.width * this.height * channels * channelSize, 'Texture');\n }\n\n this.loaded = true;\n\n return this;\n }\n /* eslint-enable max-len, max-statements, complexity */\n\n /**\n * Redefines an area of an existing texture\n * Note: does not allocate storage\n */\n /*\n * Redefines an area of an existing texture\n * @param {*} pixels, data -\n * null - create empty texture of specified format\n * Typed array - init from image data in typed array\n * Buffer|WebGLBuffer - (WEBGL2) init from image data in WebGLBuffer\n * HTMLImageElement|Image - Inits with content of image. Auto width/height\n * HTMLCanvasElement - Inits with contents of canvas. Auto width/height\n * HTMLVideoElement - Creates video texture. Auto width/height\n *\n * @param {GLint} x - xOffset from where texture to be updated\n * @param {GLint} y - yOffset from where texture to be updated\n * @param {GLint} width - width of the sub image to be updated\n * @param {GLint} height - height of the sub image to be updated\n * @param {GLint} level - mip level to be updated\n * @param {GLenum} format - internal format of image data.\n * @param {GLenum} type\n * - format of array (autodetect from type) or\n * - (WEBGL2) format of buffer or ArrayBufferView\n * @param {GLenum} dataFormat - format of image data.\n * @param {Number} offset - (WEBGL2) offset from start of buffer\n * @param {GLint} border - must be 0.\n * @parameters - temporary settings to be applied, can be used to supply pixel store settings.\n */\n setSubImageData({\n target = this.target,\n pixels = null,\n data = null,\n x = 0,\n y = 0,\n width = this.width,\n height = this.height,\n level = 0,\n format = this.format,\n type = this.type,\n dataFormat = this.dataFormat,\n compressed = false,\n offset = 0,\n border = this.border,\n parameters = {}\n }) {\n ({type, dataFormat, compressed, width, height} = this._deduceParameters({\n format,\n type,\n dataFormat,\n compressed,\n data,\n width,\n height\n }));\n\n assert(this.depth === 0, 'texSubImage not supported for 3D textures');\n\n // pixels variable is for API compatibility purpose\n if (!data) {\n data = pixels;\n }\n\n // Support ndarrays\n if (data && data.data) {\n const ndarray = data;\n data = ndarray.data;\n width = ndarray.shape[0];\n height = ndarray.shape[1];\n }\n\n // Support buffers\n if (data instanceof Buffer) {\n data = data.handle;\n }\n\n this.gl.bindTexture(this.target, this.handle);\n\n withParameters(this.gl, parameters, () => {\n // TODO - x,y parameters\n if (compressed) {\n this.gl.compressedTexSubImage2D(target, level, x, y, width, height, format, data);\n } else if (data === null) {\n this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);\n } else if (ArrayBuffer.isView(data)) {\n // const gl2 = assertWebGL2Context(this.gl);\n // @ts-ignore last offset parameter is ignored under WebGL1\n this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset);\n } else if (data instanceof WebGLBuffer) {\n // WebGL2 allows us to create texture directly from a WebGL buffer\n const gl2 = assertWebGL2Context(this.gl);\n // This texImage2D signature uses currently bound GL.PIXEL_UNPACK_BUFFER\n gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data);\n gl2.texSubImage2D(target, level, x, y, width, height, dataFormat, type, offset);\n gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);\n } else if (isWebGL2(this.gl)) {\n // Assume data is a browser supported object (ImageData, Canvas, ...)\n const gl2 = assertWebGL2Context(this.gl);\n gl2.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data);\n } else {\n this.gl.texSubImage2D(target, level, x, y, dataFormat, type, data);\n }\n });\n\n this.gl.bindTexture(this.target, null);\n }\n /* eslint-enable max-len, max-statements, complexity */\n\n /**\n * Defines a two-dimensional texture image or cube-map texture image with\n * pixels from the current framebuffer (rather than from client memory).\n * (gl.copyTexImage2D wrapper)\n *\n * Note that binding a texture into a Framebuffer's color buffer and\n * rendering can be faster.\n */\n copyFramebuffer(opts = {}) {\n log.error(\n 'Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})'\n )();\n return null;\n }\n\n getActiveUnit() {\n return this.gl.getParameter(GL.ACTIVE_TEXTURE) - GL.TEXTURE0;\n }\n\n // target cannot be modified by bind:\n // textures are special because when you first bind them to a target,\n // they get special information. When you first bind a texture as a\n // GL_TEXTURE_2D, you are actually setting special state in the texture.\n // You are saying that this texture is a 2D texture.\n // And it will always be a 2D texture; this state cannot be changed ever.\n // If you have a texture that was first bound as a GL_TEXTURE_2D,\n // you must always bind it as a GL_TEXTURE_2D;\n // attempting to bind it as GL_TEXTURE_1D will give rise to an error\n // (while run-time).\n\n bind(textureUnit = this.textureUnit) {\n const {gl} = this;\n\n if (textureUnit !== undefined) {\n this.textureUnit = textureUnit;\n gl.activeTexture(gl.TEXTURE0 + textureUnit);\n }\n\n gl.bindTexture(this.target, this.handle);\n return textureUnit;\n }\n\n unbind(textureUnit = this.textureUnit) {\n const {gl} = this;\n\n if (textureUnit !== undefined) {\n this.textureUnit = textureUnit;\n gl.activeTexture(gl.TEXTURE0 + textureUnit);\n }\n\n gl.bindTexture(this.target, null);\n return textureUnit;\n }\n\n // PRIVATE METHODS\n\n _getDataType({data, compressed = false}) {\n if (compressed) {\n return {data, dataType: 'compressed'};\n }\n if (data === null) {\n return {data, dataType: 'null'};\n }\n if (ArrayBuffer.isView(data)) {\n return {data, dataType: 'typed-array'};\n }\n if (data instanceof Buffer) {\n return {data: data.handle, dataType: 'buffer'};\n }\n if (data instanceof WebGLBuffer) {\n return {data, dataType: 'buffer'};\n }\n // Assume data is a browser supported object (ImageData, Canvas, ...)\n return {data, dataType: 'browser-object'};\n }\n\n /* Copied from texture-2d.js\n // WebGL2\n setPixels(opts = {}) {\n const {\n buffer,\n width = null,\n height = null,\n mipmapLevel = 0,\n format = GL.RGBA,\n type = GL.UNSIGNED_BYTE,\n border = 0\n } = opts;\n\n const {gl} = this;\n\n // This signature of texImage2D uses currently bound GL.PIXEL_UNPACK_BUFFER\n gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, buffer.target);\n // And as always, we must also bind the texture itself\n this.bind();\n\n gl.texImage2D(gl.TEXTURE_2D,\n mipmapLevel, format, width, height, border, format, type, buffer.target);\n\n this.unbind();\n gl.bindBuffer(GL.GL.PIXEL_UNPACK_BUFFER, null);\n return this;\n }\n\n setImageDataFromCompressedBuffer(opts) {\n const {\n buffer,\n // offset = 0,\n width = null,\n height = null,\n mipmapLevel = 0,\n internalFormat = GL.RGBA,\n // format = GL.RGBA,\n // type = GL.UNSIGNED_BYTE,\n border = 0\n } = opts;\n\n const {gl} = this;\n gl.compressedTexImage2D(this.target,\n mipmapLevel, internalFormat, width, height, border, buffer);\n // gl.compressedTexSubImage2D(target,\n // level, xoffset, yoffset, width, height, format, ArrayBufferView? pixels);\n return this;\n }\n\n copySubImage(opts) {\n const {\n // pixels,\n // offset = 0,\n // x,\n // y,\n // width,\n // height,\n // mipmapLevel = 0,\n // internalFormat = GL.RGBA,\n // type = GL.UNSIGNED_BYTE,\n // border = 0\n } = opts;\n\n // if (pixels instanceof ArrayBufferView) {\n // gl.texSubImage2D(target, level, x, y, width, height, format, type, pixels);\n // }\n // gl.texSubImage2D(target, level, x, y, format, type, ? pixels);\n // gl.texSubImage2D(target, level, x, y, format, type, HTMLImageElement pixels);\n // gl.texSubImage2D(target, level, x, y, format, type, HTMLCanvasElement pixels);\n // gl.texSubImage2D(target, level, x, y, format, type, HTMLVideoElement pixels);\n // // Additional signature in a WebGL 2 context:\n // gl.texSubImage2D(target, level, x, y, format, type, GLintptr offset);\n }\n */\n\n // HELPER METHODS\n\n _deduceParameters(opts) {\n const {format, data} = opts;\n let {width, height, dataFormat, type, compressed} = opts;\n\n // Deduce format and type from format\n const textureFormat = TEXTURE_FORMATS[format];\n dataFormat = dataFormat || (textureFormat && textureFormat.dataFormat);\n type = type || (textureFormat && textureFormat.types[0]);\n\n // Deduce compression from format\n compressed = compressed || (textureFormat && textureFormat.compressed);\n\n ({width, height} = this._deduceImageSize(data, width, height));\n\n return {dataFormat, type, compressed, width, height, format, data};\n }\n\n // eslint-disable-next-line complexity\n _deduceImageSize(data, width, height) {\n let size;\n\n if (typeof ImageData !== 'undefined' && data instanceof ImageData) {\n size = {width: data.width, height: data.height};\n } else if (typeof HTMLImageElement !== 'undefined' && data instanceof HTMLImageElement) {\n size = {width: data.naturalWidth, height: data.naturalHeight};\n } else if (typeof HTMLCanvasElement !== 'undefined' && data instanceof HTMLCanvasElement) {\n size = {width: data.width, height: data.height};\n } else if (typeof ImageBitmap !== 'undefined' && data instanceof ImageBitmap) {\n size = {width: data.width, height: data.height};\n } else if (typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement) {\n size = {width: data.videoWidth, height: data.videoHeight};\n } else if (!data) {\n size = {width: width >= 0 ? width : 1, height: height >= 0 ? height : 1};\n } else {\n size = {width, height};\n }\n\n assert(size, 'Could not deduced texture size');\n assert(\n width === undefined || size.width === width,\n 'Deduced texture width does not match supplied width'\n );\n assert(\n height === undefined || size.height === height,\n 'Deduced texture height does not match supplied height'\n );\n\n return size;\n }\n\n // RESOURCE METHODS\n\n _createHandle() {\n return this.gl.createTexture();\n }\n\n _deleteHandle() {\n this.gl.deleteTexture(this.handle);\n this._trackDeallocatedMemory('Texture');\n }\n\n _getParameter(pname) {\n switch (pname) {\n case GL.TEXTURE_WIDTH:\n return this.width;\n case GL.TEXTURE_HEIGHT:\n return this.height;\n default:\n this.gl.bindTexture(this.target, this.handle);\n const value = this.gl.getTexParameter(this.target, pname);\n this.gl.bindTexture(this.target, null);\n return value;\n }\n }\n\n _setParameter(pname, param) {\n this.gl.bindTexture(this.target, this.handle);\n\n // NOTE: Apply NPOT workaround\n param = this._getNPOTParam(pname, param);\n\n // Apparently there are some integer/float conversion rules that made\n // the WebGL committe expose two parameter setting functions in JavaScript.\n // For now, pick the float version for parameters specified as GLfloat.\n switch (pname) {\n case GL.TEXTURE_MIN_LOD:\n case GL.TEXTURE_MAX_LOD:\n this.gl.texParameterf(this.handle, pname, param);\n break;\n\n case GL.TEXTURE_WIDTH:\n case GL.TEXTURE_HEIGHT:\n assert(false);\n break;\n\n default:\n this.gl.texParameteri(this.target, pname, param);\n break;\n }\n\n this.gl.bindTexture(this.target, null);\n return this;\n }\n\n _isNPOT() {\n if (isWebGL2(this.gl)) {\n // NPOT restriction is only for WebGL1\n return false;\n }\n // Width and height not available, consider it is not NPOT texture\n if (!this.width || !this.height) {\n return false;\n }\n return !isPowerOfTwo(this.width) || !isPowerOfTwo(this.height);\n }\n\n // Update default settings which are not supported by NPOT textures.\n _updateForNPOT(parameters) {\n if (parameters[this.gl.TEXTURE_MIN_FILTER] === undefined) {\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_MIN_FILTER to LINEAR`)();\n parameters[this.gl.TEXTURE_MIN_FILTER] = this.gl.LINEAR;\n }\n if (parameters[this.gl.TEXTURE_WRAP_S] === undefined) {\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_WRAP_S to CLAMP_TO_EDGE`)();\n parameters[this.gl.TEXTURE_WRAP_S] = this.gl.CLAMP_TO_EDGE;\n }\n if (parameters[this.gl.TEXTURE_WRAP_T] === undefined) {\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_WRAP_T to CLAMP_TO_EDGE`)();\n parameters[this.gl.TEXTURE_WRAP_T] = this.gl.CLAMP_TO_EDGE;\n }\n }\n\n _getNPOTParam(pname, param) {\n if (this._isNPOT()) {\n switch (pname) {\n case GL.TEXTURE_MIN_FILTER:\n if (NPOT_MIN_FILTERS.indexOf(param) === -1) {\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_MIN_FILTER to LINEAR`)();\n param = GL.LINEAR;\n }\n break;\n case GL.TEXTURE_WRAP_S:\n case GL.TEXTURE_WRAP_T:\n if (param !== GL.CLAMP_TO_EDGE) {\n // log.warn(`texture: ${this} is Non-Power-Of-Two, ${getKey(this.gl, pname)} to CLAMP_TO_EDGE`)();\n param = GL.CLAMP_TO_EDGE;\n }\n break;\n default:\n break;\n }\n }\n return param;\n }\n}\n","import * as glMatrix from \"./common.js\";\n/**\r\n * 3x3 Matrix\r\n * @module mat3\r\n */\n\n/**\r\n * Creates a new identity mat3\r\n *\r\n * @returns {mat3} a new 3x3 matrix\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(9);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n/**\r\n * Copies the upper-left 3x3 values into the given mat3.\r\n *\r\n * @param {mat3} out the receiving 3x3 matrix\r\n * @param {ReadonlyMat4} a the source 4x4 matrix\r\n * @returns {mat3} out\r\n */\n\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n/**\r\n * Creates a new mat3 initialized with values from an existing matrix\r\n *\r\n * @param {ReadonlyMat3} a matrix to clone\r\n * @returns {mat3} a new 3x3 matrix\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\r\n * Copy the values from one mat3 to another\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\r\n * Create a new mat3 with the given values\r\n *\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\r\n * @returns {mat3} A new mat3\r\n */\n\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\r\n * Set the components of a mat3 to the given values\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\r\n * @returns {mat3} out\r\n */\n\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\r\n * Set a mat3 to the identity matrix\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @returns {mat3} out\r\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\r\n * Transpose the values of a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n\n return out;\n}\n/**\r\n * Inverts a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b01 = a22 * a11 - a12 * a21;\n var b11 = -a22 * a10 + a12 * a20;\n var b21 = a21 * a10 - a11 * a20; // Calculate the determinant\n\n var det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n/**\r\n * Calculates the adjugate of a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n/**\r\n * Calculates the determinant of a mat3\r\n *\r\n * @param {ReadonlyMat3} a the source matrix\r\n * @returns {Number} determinant of a\r\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\n/**\r\n * Multiplies two mat3's\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the first operand\r\n * @param {ReadonlyMat3} b the second operand\r\n * @returns {mat3} out\r\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b00 = b[0],\n b01 = b[1],\n b02 = b[2];\n var b10 = b[3],\n b11 = b[4],\n b12 = b[5];\n var b20 = b[6],\n b21 = b[7],\n b22 = b[8];\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n/**\r\n * Translate a mat3 by the given vector\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the matrix to translate\r\n * @param {ReadonlyVec2} v vector to translate by\r\n * @returns {mat3} out\r\n */\n\nexport function translate(out, a, v) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n x = v[0],\n y = v[1];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n/**\r\n * Rotates a mat3 by the given angle\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat3} out\r\n */\n\nexport function rotate(out, a, rad) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n/**\r\n * Scales the mat3 by the dimensions in the given vec2\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the matrix to rotate\r\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\r\n * @returns {mat3} out\r\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1];\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\r\n * Creates a matrix from a vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.translate(dest, dest, vec);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {ReadonlyVec2} v Translation vector\r\n * @returns {mat3} out\r\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a given angle\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.rotate(dest, dest, rad);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat3} out\r\n */\n\nexport function fromRotation(out, rad) {\n var s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a vector scaling\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.scale(dest, dest, vec);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {ReadonlyVec2} v Scaling vector\r\n * @returns {mat3} out\r\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\r\n * Copies the values from a mat2d into a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat2d} a the matrix to copy\r\n * @returns {mat3} out\r\n **/\n\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n/**\r\n * Calculates a 3x3 matrix from the given quaternion\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {ReadonlyQuat} q Quaternion to create matrix from\r\n *\r\n * @returns {mat3} out\r\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n return out;\n}\n/**\r\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\r\n *\r\n * @returns {mat3} out\r\n */\n\nexport function normalFromMat4(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n return out;\n}\n/**\r\n * Generates a 2D projection matrix with the given bounds\r\n *\r\n * @param {mat3} out mat3 frustum matrix will be written into\r\n * @param {number} width Width of your gl context\r\n * @param {number} height Height of gl context\r\n * @returns {mat3} out\r\n */\n\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n/**\r\n * Returns a string representation of a mat3\r\n *\r\n * @param {ReadonlyMat3} a matrix to represent as a string\r\n * @returns {String} string representation of the matrix\r\n */\n\nexport function str(a) {\n return \"mat3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \")\";\n}\n/**\r\n * Returns Frobenius norm of a mat3\r\n *\r\n * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of\r\n * @returns {Number} Frobenius norm\r\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);\n}\n/**\r\n * Adds two mat3's\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the first operand\r\n * @param {ReadonlyMat3} b the second operand\r\n * @returns {mat3} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n/**\r\n * Subtracts matrix b from matrix a\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the first operand\r\n * @param {ReadonlyMat3} b the second operand\r\n * @returns {mat3} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n/**\r\n * Multiply each element of the matrix by a scalar.\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the matrix to scale\r\n * @param {Number} b amount to scale the matrix's elements by\r\n * @returns {mat3} out\r\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n/**\r\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\r\n *\r\n * @param {mat3} out the receiving vector\r\n * @param {ReadonlyMat3} a the first operand\r\n * @param {ReadonlyMat3} b the second operand\r\n * @param {Number} scale the amount to scale b's elements by before adding\r\n * @returns {mat3} out\r\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n return out;\n}\n/**\r\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyMat3} a The first matrix.\r\n * @param {ReadonlyMat3} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8];\n}\n/**\r\n * Returns whether or not the matrices have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyMat3} a The first matrix.\r\n * @param {ReadonlyMat3} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7],\n a8 = a[8];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8));\n}\n/**\r\n * Alias for {@link mat3.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link mat3.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","var _typeof = require(\"../helpers/typeof\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@material-ui/core/utils\");","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import { tickStep } from 'd3-array';\nimport { formatSpecifier, precisionFixed, precisionRound, precisionPrefix, formatLocale, format, formatPrefix } from 'd3-format';\nimport { SECONDS, MINUTES, HOURS, DATE, WEEK, MONTH, QUARTER, YEAR, MILLISECONDS, DAY, timeInterval, utcInterval } from 'vega-time';\nimport { isString, isObject, error, extend } from 'vega-util';\nimport { timeFormat, timeParse, utcFormat, utcParse, timeFormatLocale as timeFormatLocale$1 } from 'd3-time-format';\n\nfunction memoize (method) {\n const cache = {};\n return spec => cache[spec] || (cache[spec] = method(spec));\n}\n\nfunction trimZeroes(numberFormat, decimalChar) {\n return x => {\n const str = numberFormat(x),\n dec = str.indexOf(decimalChar);\n if (dec < 0) return str;\n let idx = rightmostDigit(str, dec);\n const end = idx < str.length ? str.slice(idx) : '';\n\n while (--idx > dec) if (str[idx] !== '0') {\n ++idx;\n break;\n }\n\n return str.slice(0, idx) + end;\n };\n}\n\nfunction rightmostDigit(str, dec) {\n let i = str.lastIndexOf('e'),\n c;\n if (i > 0) return i;\n\n for (i = str.length; --i > dec;) {\n c = str.charCodeAt(i);\n if (c >= 48 && c <= 57) return i + 1; // is digit\n }\n}\n\nfunction numberLocale(locale) {\n const format = memoize(locale.format),\n formatPrefix = locale.formatPrefix;\n return {\n format,\n formatPrefix,\n\n formatFloat(spec) {\n const s = formatSpecifier(spec || ',');\n\n if (s.precision == null) {\n s.precision = 12;\n\n switch (s.type) {\n case '%':\n s.precision -= 2;\n break;\n\n case 'e':\n s.precision -= 1;\n break;\n }\n\n return trimZeroes(format(s), // number format\n format('.1f')(1)[1] // decimal point character\n );\n } else {\n return format(s);\n }\n },\n\n formatSpan(start, stop, count, specifier) {\n specifier = formatSpecifier(specifier == null ? ',f' : specifier);\n const step = tickStep(start, stop, count),\n value = Math.max(Math.abs(start), Math.abs(stop));\n let precision;\n\n if (specifier.precision == null) {\n switch (specifier.type) {\n case 's':\n {\n if (!isNaN(precision = precisionPrefix(step, value))) {\n specifier.precision = precision;\n }\n\n return formatPrefix(specifier, value);\n }\n\n case '':\n case 'e':\n case 'g':\n case 'p':\n case 'r':\n {\n if (!isNaN(precision = precisionRound(step, value))) {\n specifier.precision = precision - (specifier.type === 'e');\n }\n\n break;\n }\n\n case 'f':\n case '%':\n {\n if (!isNaN(precision = precisionFixed(step))) {\n specifier.precision = precision - (specifier.type === '%') * 2;\n }\n\n break;\n }\n }\n }\n\n return format(specifier);\n }\n\n };\n}\n\nlet defaultNumberLocale;\nresetNumberFormatDefaultLocale();\nfunction resetNumberFormatDefaultLocale() {\n return defaultNumberLocale = numberLocale({\n format: format,\n formatPrefix: formatPrefix\n });\n}\nfunction numberFormatLocale(definition) {\n return numberLocale(formatLocale(definition));\n}\nfunction numberFormatDefaultLocale(definition) {\n return arguments.length ? defaultNumberLocale = numberFormatLocale(definition) : defaultNumberLocale;\n}\n\nfunction timeMultiFormat(format, interval, spec) {\n spec = spec || {};\n\n if (!isObject(spec)) {\n error(\"Invalid time multi-format specifier: \".concat(spec));\n }\n\n const second = interval(SECONDS),\n minute = interval(MINUTES),\n hour = interval(HOURS),\n day = interval(DATE),\n week = interval(WEEK),\n month = interval(MONTH),\n quarter = interval(QUARTER),\n year = interval(YEAR),\n L = format(spec[MILLISECONDS] || '.%L'),\n S = format(spec[SECONDS] || ':%S'),\n M = format(spec[MINUTES] || '%I:%M'),\n H = format(spec[HOURS] || '%I %p'),\n d = format(spec[DATE] || spec[DAY] || '%a %d'),\n w = format(spec[WEEK] || '%b %d'),\n m = format(spec[MONTH] || '%B'),\n q = format(spec[QUARTER] || '%B'),\n y = format(spec[YEAR] || '%Y');\n return date => (second(date) < date ? L : minute(date) < date ? S : hour(date) < date ? M : day(date) < date ? H : month(date) < date ? week(date) < date ? d : w : year(date) < date ? quarter(date) < date ? m : q : y)(date);\n}\n\nfunction timeLocale(locale) {\n const timeFormat = memoize(locale.format),\n utcFormat = memoize(locale.utcFormat);\n return {\n timeFormat: spec => isString(spec) ? timeFormat(spec) : timeMultiFormat(timeFormat, timeInterval, spec),\n utcFormat: spec => isString(spec) ? utcFormat(spec) : timeMultiFormat(utcFormat, utcInterval, spec),\n timeParse: memoize(locale.parse),\n utcParse: memoize(locale.utcParse)\n };\n}\n\nlet defaultTimeLocale;\nresetTimeFormatDefaultLocale();\nfunction resetTimeFormatDefaultLocale() {\n return defaultTimeLocale = timeLocale({\n format: timeFormat,\n parse: timeParse,\n utcFormat: utcFormat,\n utcParse: utcParse\n });\n}\nfunction timeFormatLocale(definition) {\n return timeLocale(timeFormatLocale$1(definition));\n}\nfunction timeFormatDefaultLocale(definition) {\n return arguments.length ? defaultTimeLocale = timeFormatLocale(definition) : defaultTimeLocale;\n}\n\nconst createLocale = (number, time) => extend({}, number, time);\n\nfunction locale(numberSpec, timeSpec) {\n const number = numberSpec ? numberFormatLocale(numberSpec) : numberFormatDefaultLocale();\n const time = timeSpec ? timeFormatLocale(timeSpec) : timeFormatDefaultLocale();\n return createLocale(number, time);\n}\nfunction defaultLocale(numberSpec, timeSpec) {\n const args = arguments.length;\n\n if (args && args !== 2) {\n error('defaultLocale expects either zero or two arguments.');\n }\n\n return args ? createLocale(numberFormatDefaultLocale(numberSpec), timeFormatDefaultLocale(timeSpec)) : createLocale(numberFormatDefaultLocale(), timeFormatDefaultLocale());\n}\nfunction resetDefaultLocale() {\n resetNumberFormatDefaultLocale();\n resetTimeFormatDefaultLocale();\n return defaultLocale();\n}\n\nexport { defaultLocale, locale, numberFormatDefaultLocale, numberFormatLocale, resetDefaultLocale, resetNumberFormatDefaultLocale, resetTimeFormatDefaultLocale, timeFormatDefaultLocale, timeFormatLocale };\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","/* eslint-disable no-restricted-globals */\nconst globals = {\n self: typeof self !== 'undefined' && self,\n window: typeof window !== 'undefined' && window,\n global: typeof global !== 'undefined' && global,\n document: typeof document !== 'undefined' && document,\n process: typeof process === 'object' && process\n};\n\nconst self_ = globals.self || globals.window || globals.global;\nconst window_ = globals.window || globals.self || globals.global;\nconst global_ = globals.global || globals.self || globals.window;\nconst document_ = globals.document || {};\nconst process_ = globals.process || {};\nconst console_ = console;\n\nexport {\n self_ as self,\n window_ as window,\n global_ as global,\n document_ as document,\n process_ as process,\n console_ as console\n};\n","// Copyright (c) 2015 Uber Technologies, Inc.\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/* eslint-disable max-statements, complexity */\nimport TransitionManager, {TRANSITION_EVENTS} from './transition-manager';\nimport LinearInterpolator from '../transitions/linear-interpolator';\n\nconst NO_TRANSITION_PROPS = {\n transitionDuration: 0\n};\n\nconst LINEAR_TRANSITION_PROPS = {\n transitionDuration: 300,\n transitionEasing: t => t,\n transitionInterruption: TRANSITION_EVENTS.BREAK\n};\n\nconst DEFAULT_INERTIA = 300;\nconst INERTIA_EASING = t => 1 - (1 - t) * (1 - t);\n\nconst EVENT_TYPES = {\n WHEEL: ['wheel'],\n PAN: ['panstart', 'panmove', 'panend'],\n PINCH: ['pinchstart', 'pinchmove', 'pinchend'],\n TRIPLE_PAN: ['tripanstart', 'tripanmove', 'tripanend'],\n DOUBLE_TAP: ['doubletap'],\n KEYBOARD: ['keydown']\n};\n\nexport default class Controller {\n constructor(ControllerState, options = {}) {\n this.ControllerState = ControllerState;\n this.controllerState = null;\n this.controllerStateProps = null;\n this.eventManager = null;\n this.transitionManager = new TransitionManager(ControllerState, {\n ...options,\n onViewStateChange: this._onTransition.bind(this),\n onStateChange: this._setInteractionState.bind(this)\n });\n\n const linearTransitionProps = this.linearTransitionProps;\n this._transition = linearTransitionProps && {\n ...LINEAR_TRANSITION_PROPS,\n transitionInterpolator: new LinearInterpolator({\n transitionProps: linearTransitionProps\n })\n };\n\n this._events = null;\n this._interactionState = {\n isDragging: false\n };\n this._customEvents = [];\n this.onViewStateChange = null;\n this.onStateChange = null;\n\n this.handleEvent = this.handleEvent.bind(this);\n\n this.setProps(options);\n }\n\n get linearTransitionProps() {\n return null;\n }\n\n set events(customEvents) {\n this.toggleEvents(this._customEvents, false);\n this.toggleEvents(customEvents, true);\n this._customEvents = customEvents;\n // Make sure default events are not overwritten\n this.setProps(this.controllerStateProps);\n }\n\n finalize() {\n for (const eventName in this._events) {\n if (this._events[eventName]) {\n this.eventManager.off(eventName, this.handleEvent);\n }\n }\n this.transitionManager.finalize();\n }\n\n /**\n * Callback for events\n * @param {hammer.Event} event\n */\n handleEvent(event) {\n const {ControllerState} = this;\n this.controllerState = new ControllerState({\n makeViewport: this.makeViewport,\n ...this.controllerStateProps,\n ...this._state\n });\n const eventStartBlocked = this._eventStartBlocked;\n\n switch (event.type) {\n case 'panstart':\n return eventStartBlocked ? false : this._onPanStart(event);\n case 'panmove':\n return this._onPan(event);\n case 'panend':\n return this._onPanEnd(event);\n case 'pinchstart':\n return eventStartBlocked ? false : this._onPinchStart(event);\n case 'pinchmove':\n return this._onPinch(event);\n case 'pinchend':\n return this._onPinchEnd(event);\n case 'tripanstart':\n return eventStartBlocked ? false : this._onTriplePanStart(event);\n case 'tripanmove':\n return this._onTriplePan(event);\n case 'tripanend':\n return this._onTriplePanEnd(event);\n case 'doubletap':\n return this._onDoubleTap(event);\n case 'wheel':\n return this._onWheel(event);\n case 'keydown':\n return this._onKeyDown(event);\n default:\n return false;\n }\n }\n\n /* Event utils */\n // Event object: http://hammerjs.github.io/api/#event-object\n getCenter(event) {\n const {x, y} = this.controllerStateProps;\n const {offsetCenter} = event;\n return [offsetCenter.x - x, offsetCenter.y - y];\n }\n\n isPointInBounds(pos, event) {\n const {width, height} = this.controllerStateProps;\n if (event && event.handled) {\n return false;\n }\n\n const inside = pos[0] >= 0 && pos[0] <= width && pos[1] >= 0 && pos[1] <= height;\n if (inside && event) {\n event.stopPropagation();\n }\n return inside;\n }\n\n isFunctionKeyPressed(event) {\n const {srcEvent} = event;\n return Boolean(srcEvent.metaKey || srcEvent.altKey || srcEvent.ctrlKey || srcEvent.shiftKey);\n }\n\n isDragging() {\n return this._interactionState.isDragging;\n }\n\n // When a multi-touch event ends, e.g. pinch, not all pointers are lifted at the same time.\n // This triggers a brief `pan` event.\n // Calling this method will temporarily disable *start events to avoid conflicting transitions.\n blockEvents(timeout) {\n /* global setTimeout */\n const timer = setTimeout(() => {\n if (this._eventStartBlocked === timer) {\n this._eventStartBlocked = null;\n }\n }, timeout);\n this._eventStartBlocked = timer;\n }\n\n /**\n * Extract interactivity options\n */\n setProps(props) {\n if ('onViewStateChange' in props) {\n this.onViewStateChange = props.onViewStateChange;\n }\n if ('onStateChange' in props) {\n this.onStateChange = props.onStateChange;\n }\n if ('makeViewport' in props) {\n this.makeViewport = props.makeViewport;\n }\n if ('dragMode' in props) {\n this.dragMode = props.dragMode;\n }\n this.controllerStateProps = props;\n\n if ('eventManager' in props && this.eventManager !== props.eventManager) {\n // EventManager has changed\n this.eventManager = props.eventManager;\n this._events = {};\n this.toggleEvents(this._customEvents, true);\n }\n\n if (!('transitionInterpolator' in props)) {\n // Add default transition interpolator\n props.transitionInterpolator = this._getTransitionProps().transitionInterpolator;\n }\n\n this.transitionManager.processViewStateChange(props);\n\n let {inertia} = props;\n if (inertia === true) {\n inertia = DEFAULT_INERTIA;\n }\n this.inertia = inertia;\n\n // TODO - make sure these are not reset on every setProps\n const {\n scrollZoom = true,\n dragPan = true,\n dragRotate = true,\n doubleClickZoom = true,\n touchZoom = true,\n touchRotate = false,\n keyboard = true\n } = props;\n\n // Register/unregister events\n const isInteractive = Boolean(this.onViewStateChange);\n this.toggleEvents(EVENT_TYPES.WHEEL, isInteractive && scrollZoom);\n this.toggleEvents(EVENT_TYPES.PAN, isInteractive && (dragPan || dragRotate));\n this.toggleEvents(EVENT_TYPES.PINCH, isInteractive && (touchZoom || touchRotate));\n this.toggleEvents(EVENT_TYPES.TRIPLE_PAN, isInteractive && touchRotate);\n this.toggleEvents(EVENT_TYPES.DOUBLE_TAP, isInteractive && doubleClickZoom);\n this.toggleEvents(EVENT_TYPES.KEYBOARD, isInteractive && keyboard);\n\n // Interaction toggles\n this.scrollZoom = scrollZoom;\n this.dragPan = dragPan;\n this.dragRotate = dragRotate;\n this.doubleClickZoom = doubleClickZoom;\n this.touchZoom = touchZoom;\n this.touchRotate = touchRotate;\n this.keyboard = keyboard;\n }\n\n updateTransition() {\n this.transitionManager.updateTransition();\n }\n\n toggleEvents(eventNames, enabled) {\n if (this.eventManager) {\n eventNames.forEach(eventName => {\n if (this._events[eventName] !== enabled) {\n this._events[eventName] = enabled;\n if (enabled) {\n this.eventManager.on(eventName, this.handleEvent);\n } else {\n this.eventManager.off(eventName, this.handleEvent);\n }\n }\n });\n }\n }\n\n // Private Methods\n\n /* Callback util */\n // formats map state and invokes callback function\n updateViewport(newControllerState, extraProps = {}, interactionState = {}) {\n const viewState = {...newControllerState.getViewportProps(), ...extraProps};\n\n // TODO - to restore diffing, we need to include interactionState\n const changed = this.controllerState !== newControllerState;\n // const oldViewState = this.controllerState.getViewportProps();\n // const changed = Object.keys(viewState).some(key => oldViewState[key] !== viewState[key]);\n\n this._state = newControllerState.getState();\n this._setInteractionState(interactionState);\n\n if (changed) {\n const oldViewState = this.controllerState ? this.controllerState.getViewportProps() : null;\n if (this.onViewStateChange) {\n this.onViewStateChange({viewState, interactionState: this._interactionState, oldViewState});\n }\n }\n }\n\n _onTransition(params) {\n if (this.onViewStateChange) {\n params.interactionState = this._interactionState;\n this.onViewStateChange(params);\n }\n }\n\n _setInteractionState(newStates) {\n Object.assign(this._interactionState, newStates);\n if (this.onStateChange) {\n this.onStateChange(this._interactionState);\n }\n }\n\n /* Event handlers */\n // Default handler for the `panstart` event.\n _onPanStart(event) {\n const pos = this.getCenter(event);\n if (!this.isPointInBounds(pos, event)) {\n return false;\n }\n let alternateMode = this.isFunctionKeyPressed(event) || event.rightButton;\n if (this.invertPan || this.dragMode === 'pan') {\n // invertPan is replaced by props.dragMode, keeping for backward compatibility\n alternateMode = !alternateMode;\n }\n const newControllerState = this.controllerState[alternateMode ? 'panStart' : 'rotateStart']({\n pos\n });\n this._panMove = alternateMode;\n this.updateViewport(newControllerState, NO_TRANSITION_PROPS, {isDragging: true});\n return true;\n }\n\n // Default handler for the `panmove` and `panend` event.\n _onPan(event) {\n if (!this.isDragging()) {\n return false;\n }\n return this._panMove ? this._onPanMove(event) : this._onPanRotate(event);\n }\n\n _onPanEnd(event) {\n if (!this.isDragging()) {\n return false;\n }\n return this._panMove ? this._onPanMoveEnd(event) : this._onPanRotateEnd(event);\n }\n\n // Default handler for panning to move.\n // Called by `_onPan` when panning without function key pressed.\n _onPanMove(event) {\n if (!this.dragPan) {\n return false;\n }\n const pos = this.getCenter(event);\n const newControllerState = this.controllerState.pan({pos});\n this.updateViewport(newControllerState, NO_TRANSITION_PROPS, {\n isDragging: true,\n isPanning: true\n });\n return true;\n }\n\n _onPanMoveEnd(event) {\n const {inertia} = this;\n if (this.dragPan && inertia && event.velocity) {\n const pos = this.getCenter(event);\n const endPos = [\n pos[0] + (event.velocityX * inertia) / 2,\n pos[1] + (event.velocityY * inertia) / 2\n ];\n const newControllerState = this.controllerState.pan({pos: endPos}).panEnd();\n this.updateViewport(\n newControllerState,\n {\n ...this._getTransitionProps(),\n transitionDuration: inertia,\n transitionEasing: INERTIA_EASING\n },\n {\n isDragging: false,\n isPanning: true\n }\n );\n } else {\n const newControllerState = this.controllerState.panEnd();\n this.updateViewport(newControllerState, null, {\n isDragging: false,\n isPanning: false\n });\n }\n return true;\n }\n\n // Default handler for panning to rotate.\n // Called by `_onPan` when panning with function key pressed.\n _onPanRotate(event) {\n if (!this.dragRotate) {\n return false;\n }\n\n const pos = this.getCenter(event);\n const newControllerState = this.controllerState.rotate({pos});\n this.updateViewport(newControllerState, NO_TRANSITION_PROPS, {\n isDragging: true,\n isRotating: true\n });\n return true;\n }\n\n _onPanRotateEnd(event) {\n const {inertia} = this;\n if (this.dragRotate && inertia && event.velocity) {\n const pos = this.getCenter(event);\n const endPos = [\n pos[0] + (event.velocityX * inertia) / 2,\n pos[1] + (event.velocityY * inertia) / 2\n ];\n const newControllerState = this.controllerState.rotate({pos: endPos}).rotateEnd();\n this.updateViewport(\n newControllerState,\n {\n ...this._getTransitionProps(),\n transitionDuration: inertia,\n transitionEasing: INERTIA_EASING\n },\n {\n isDragging: false,\n isRotating: true\n }\n );\n } else {\n const newControllerState = this.controllerState.rotateEnd();\n this.updateViewport(newControllerState, null, {\n isDragging: false,\n isRotating: false\n });\n }\n return true;\n }\n\n // Default handler for the `wheel` event.\n _onWheel(event) {\n if (!this.scrollZoom) {\n return false;\n }\n event.preventDefault();\n\n const pos = this.getCenter(event);\n if (!this.isPointInBounds(pos, event)) {\n return false;\n }\n\n const {speed = 0.01, smooth = false} = this.scrollZoom;\n const {delta} = event;\n\n // Map wheel delta to relative scale\n let scale = 2 / (1 + Math.exp(-Math.abs(delta * speed)));\n if (delta < 0 && scale !== 0) {\n scale = 1 / scale;\n }\n\n const newControllerState = this.controllerState.zoom({pos, scale});\n this.updateViewport(\n newControllerState,\n {...this._getTransitionProps({around: pos}), transitionDuration: smooth ? 250 : 1},\n {\n isZooming: true,\n isPanning: true\n }\n );\n return true;\n }\n\n _onTriplePanStart(event) {\n const pos = this.getCenter(event);\n if (!this.isPointInBounds(pos, event)) {\n return false;\n }\n const newControllerState = this.controllerState.rotateStart({pos});\n this.updateViewport(newControllerState, NO_TRANSITION_PROPS, {isDragging: true});\n return true;\n }\n\n _onTriplePan(event) {\n if (!this.touchRotate) {\n return false;\n }\n if (!this.isDragging()) {\n return false;\n }\n\n const pos = this.getCenter(event);\n pos[0] -= event.deltaX;\n\n const newControllerState = this.controllerState.rotate({pos});\n this.updateViewport(newControllerState, NO_TRANSITION_PROPS, {\n isDragging: true,\n isRotating: true\n });\n return true;\n }\n\n _onTriplePanEnd(event) {\n if (!this.isDragging()) {\n return false;\n }\n const {inertia} = this;\n if (this.touchRotate && inertia && event.velocityY) {\n const pos = this.getCenter(event);\n const endPos = [pos[0], (pos[1] += (event.velocityY * inertia) / 2)];\n const newControllerState = this.controllerState.rotate({pos: endPos});\n this.updateViewport(\n newControllerState,\n {\n ...this._getTransitionProps(),\n transitionDuration: inertia,\n transitionEasing: INERTIA_EASING\n },\n {\n isDragging: false,\n isRotating: true\n }\n );\n this.blockEvents(inertia);\n } else {\n const newControllerState = this.controllerState.rotateEnd();\n this.updateViewport(newControllerState, null, {\n isDragging: false,\n isRotating: false\n });\n }\n return true;\n }\n\n // Default handler for the `pinchstart` event.\n _onPinchStart(event) {\n const pos = this.getCenter(event);\n if (!this.isPointInBounds(pos, event)) {\n return false;\n }\n\n const newControllerState = this.controllerState.zoomStart({pos}).rotateStart({pos});\n // hack - hammer's `rotation` field doesn't seem to produce the correct angle\n this._startPinchRotation = event.rotation;\n this._lastPinchEvent = event;\n this.updateViewport(newControllerState, NO_TRANSITION_PROPS, {isDragging: true});\n return true;\n }\n\n // Default handler for the `pinchmove` and `pinchend` events.\n _onPinch(event) {\n if (!this.touchZoom && !this.touchRotate) {\n return false;\n }\n if (!this.isDragging()) {\n return false;\n }\n\n let newControllerState = this.controllerState;\n if (this.touchZoom) {\n const {scale} = event;\n const pos = this.getCenter(event);\n newControllerState = newControllerState.zoom({pos, scale});\n }\n if (this.touchRotate) {\n const {rotation} = event;\n newControllerState = newControllerState.rotate({\n deltaAngleX: this._startPinchRotation - rotation\n });\n }\n\n this.updateViewport(newControllerState, NO_TRANSITION_PROPS, {\n isDragging: true,\n isPanning: this.touchZoom,\n isZooming: this.touchZoom,\n isRotating: this.touchRotate\n });\n this._lastPinchEvent = event;\n return true;\n }\n\n _onPinchEnd(event) {\n if (!this.isDragging()) {\n return false;\n }\n const {inertia, _lastPinchEvent} = this;\n if (this.touchZoom && inertia && _lastPinchEvent && event.scale !== _lastPinchEvent.scale) {\n const pos = this.getCenter(event);\n let newControllerState = this.controllerState.rotateEnd();\n const z = Math.log2(event.scale);\n const velocityZ =\n (z - Math.log2(_lastPinchEvent.scale)) / (event.deltaTime - _lastPinchEvent.deltaTime);\n const endScale = Math.pow(2, z + (velocityZ * inertia) / 2);\n newControllerState = newControllerState.zoom({pos, scale: endScale}).zoomEnd();\n\n this.updateViewport(\n newControllerState,\n {\n ...this._getTransitionProps({around: pos}),\n transitionDuration: inertia,\n transitionEasing: INERTIA_EASING\n },\n {\n isDragging: false,\n isPanning: this.touchZoom,\n isZooming: this.touchZoom,\n isRotating: false\n }\n );\n this.blockEvents(inertia);\n } else {\n const newControllerState = this.controllerState.zoomEnd().rotateEnd();\n this.updateViewport(newControllerState, null, {\n isDragging: false,\n isPanning: false,\n isZooming: false,\n isRotating: false\n });\n }\n this._startPinchRotation = null;\n this._lastPinchEvent = null;\n return true;\n }\n\n // Default handler for the `doubletap` event.\n _onDoubleTap(event) {\n if (!this.doubleClickZoom) {\n return false;\n }\n const pos = this.getCenter(event);\n if (!this.isPointInBounds(pos, event)) {\n return false;\n }\n\n const isZoomOut = this.isFunctionKeyPressed(event);\n\n const newControllerState = this.controllerState.zoom({pos, scale: isZoomOut ? 0.5 : 2});\n this.updateViewport(newControllerState, this._getTransitionProps({around: pos}), {\n isZooming: true,\n isPanning: true\n });\n this.blockEvents(100);\n return true;\n }\n\n // Default handler for the `keydown` event\n _onKeyDown(event) {\n if (!this.keyboard) {\n return false;\n }\n const funcKey = this.isFunctionKeyPressed(event);\n const {zoomSpeed, moveSpeed, rotateSpeedX, rotateSpeedY} = this.keyboard;\n const {controllerState} = this;\n let newControllerState;\n const interactionState = {};\n\n switch (event.srcEvent.code) {\n case 'Minus':\n newControllerState = funcKey\n ? controllerState.zoomOut(zoomSpeed).zoomOut(zoomSpeed)\n : controllerState.zoomOut(zoomSpeed);\n interactionState.isZooming = true;\n break;\n case 'Equal':\n newControllerState = funcKey\n ? controllerState.zoomIn(zoomSpeed).zoomIn(zoomSpeed)\n : controllerState.zoomIn(zoomSpeed);\n interactionState.isZooming = true;\n break;\n case 'ArrowLeft':\n if (funcKey) {\n newControllerState = controllerState.rotateLeft(rotateSpeedX);\n interactionState.isRotating = true;\n } else {\n newControllerState = controllerState.moveLeft(moveSpeed);\n interactionState.isPanning = true;\n }\n break;\n case 'ArrowRight':\n if (funcKey) {\n newControllerState = controllerState.rotateRight(rotateSpeedX);\n interactionState.isRotating = true;\n } else {\n newControllerState = controllerState.moveRight(moveSpeed);\n interactionState.isPanning = true;\n }\n break;\n case 'ArrowUp':\n if (funcKey) {\n newControllerState = controllerState.rotateUp(rotateSpeedY);\n interactionState.isRotating = true;\n } else {\n newControllerState = controllerState.moveUp(moveSpeed);\n interactionState.isPanning = true;\n }\n break;\n case 'ArrowDown':\n if (funcKey) {\n newControllerState = controllerState.rotateDown(rotateSpeedY);\n interactionState.isRotating = true;\n } else {\n newControllerState = controllerState.moveDown(moveSpeed);\n interactionState.isPanning = true;\n }\n break;\n default:\n return false;\n }\n this.updateViewport(newControllerState, this._getTransitionProps(), interactionState);\n return true;\n }\n\n _getTransitionProps(opts) {\n const {_transition} = this;\n\n if (!_transition) {\n return NO_TRANSITION_PROPS;\n }\n\n // Enables Transitions on double-tap and key-down events.\n return opts\n ? {\n ..._transition,\n transitionInterpolator: new LinearInterpolator({\n ...opts,\n transitionProps: this.linearTransitionProps,\n makeViewport: this.controllerState.makeViewport\n })\n }\n : _transition;\n }\n}\n","const PERCENT_OR_PIXELS_REGEX = /([0-9]+\\.?[0-9]*)(%|px)/;\n\n// Takes a number or a string of formats `50%`, `33.3%` or `200px`\nexport function parsePosition(value) {\n switch (typeof value) {\n case 'number':\n return {\n position: value,\n relative: false\n };\n\n case 'string':\n const match = value.match(PERCENT_OR_PIXELS_REGEX);\n if (match && match.length >= 3) {\n const relative = match[2] === '%';\n const position = parseFloat(match[1]);\n return {\n position: relative ? position / 100 : position,\n relative\n };\n }\n // fallthrough\n\n default:\n // eslint-disable-line\n throw new Error(`Could not parse position string ${value}`);\n }\n}\n\nexport function getPosition(position, extent) {\n return position.relative ? Math.round(position.position * extent) : position.position;\n}\n","import Viewport from '../viewports/viewport';\nimport {parsePosition, getPosition} from '../utils/positions';\nimport {deepEqual} from '../utils/deep-equal';\nimport assert from '../utils/assert';\n\nexport default class View {\n constructor(props = {}) {\n const {\n id = null,\n\n // Window width/height in pixels (for pixel projection)\n x = 0,\n y = 0,\n width = '100%',\n height = '100%',\n\n // A View can be a wrapper for a viewport instance\n viewportInstance,\n\n // Internal: Viewport Type\n type = Viewport // TODO - default to WebMercator?\n } = props;\n\n assert(!viewportInstance || viewportInstance instanceof Viewport);\n this.viewportInstance = viewportInstance;\n\n // Id\n this.id = id || this.constructor.displayName || 'view';\n this.type = type;\n\n this.props = {...props, id: this.id};\n\n // Extents\n this._parseDimensions({x, y, width, height});\n\n // Bind methods for easy access\n this.equals = this.equals.bind(this);\n\n Object.seal(this);\n }\n\n equals(view) {\n if (this === view) {\n return true;\n }\n\n // if `viewportInstance` is set, it is the only prop that is used\n // Delegate to `Viewport.equals`\n if (this.viewportInstance) {\n return view.viewportInstance && this.viewportInstance.equals(view.viewportInstance);\n }\n\n const viewChanged = deepEqual(this.props, view.props);\n\n return viewChanged;\n }\n\n // Build a `Viewport` from a view descriptor\n // TODO - add support for autosizing viewports using width and height\n makeViewport({width, height, viewState}) {\n if (this.viewportInstance) {\n return this.viewportInstance;\n }\n\n viewState = this.filterViewState(viewState);\n\n // Resolve relative viewport dimensions\n const viewportDimensions = this.getDimensions({width, height});\n return this._getViewport(viewState, viewportDimensions);\n }\n\n getViewStateId() {\n switch (typeof this.props.viewState) {\n case 'string':\n // if View.viewState is a string, return it\n return this.props.viewState;\n\n case 'object':\n // If it is an object, return its id component\n return this.props.viewState && this.props.viewState.id;\n\n default:\n return this.id;\n }\n }\n\n // Allows view to override (or completely define) viewState\n filterViewState(viewState) {\n if (this.props.viewState && typeof this.props.viewState === 'object') {\n // If we have specified an id, then intent is to override,\n // If not, completely specify the view state\n if (!this.props.viewState.id) {\n return this.props.viewState;\n }\n\n // Merge in all props from View's viewState, except id\n const newViewState = {...viewState};\n for (const key in this.props.viewState) {\n if (key !== 'id') {\n newViewState[key] = this.props.viewState[key];\n }\n }\n return newViewState;\n }\n\n return viewState;\n }\n\n // Resolve relative viewport dimensions into actual dimensions (y='50%', width=800 => y=400)\n getDimensions({width, height}) {\n return {\n x: getPosition(this._x, width),\n y: getPosition(this._y, height),\n width: getPosition(this._width, width),\n height: getPosition(this._height, height)\n };\n }\n\n // Used by sub classes to resolve controller props\n _getControllerProps(defaultOpts) {\n let opts = this.props.controller;\n\n if (!opts) {\n return null;\n }\n if (opts === true) {\n return defaultOpts;\n }\n if (typeof opts === 'function') {\n opts = {type: opts};\n }\n return {...defaultOpts, ...opts};\n }\n\n // Overridable method\n _getViewport(viewState, viewportDimensions) {\n // Get the type of the viewport\n const {type: ViewportType} = this;\n return new ViewportType({...viewState, ...this.props, ...viewportDimensions});\n }\n\n // Parse relative viewport dimension descriptors (e.g {y: '50%', height: '50%'})\n _parseDimensions({x, y, width, height}) {\n this._x = parsePosition(x);\n this._y = parsePosition(y);\n this._width = parsePosition(width);\n this._height = parsePosition(height);\n }\n}\n","import {uid, assert} from '@luma.gl/webgl';\n\n// Rendering primitives - specify how to extract primitives from vertices.\n// NOTE: These are numerically identical to the corresponding WebGL/OpenGL constants\nexport const DRAW_MODE = {\n POINTS: 0x0000, // draw single points.\n LINES: 0x0001, // draw lines. Each vertex connects to the one after it.\n LINE_LOOP: 0x0002, // draw lines. Each set of two vertices is treated as a separate line segment.\n LINE_STRIP: 0x0003, // draw a connected group of line segments from the first vertex to the last\n TRIANGLES: 0x0004, // draw triangles. Each set of three vertices creates a separate triangle.\n TRIANGLE_STRIP: 0x0005, // draw a connected group of triangles.\n TRIANGLE_FAN: 0x0006 // draw a connected group of triangles.\n // Each vertex connects to the previous and the first vertex in the fan.\n};\n\nexport default class Geometry {\n static get DRAW_MODE() {\n return DRAW_MODE;\n }\n\n constructor(props = {}) {\n const {\n id = uid('geometry'),\n drawMode = DRAW_MODE.TRIANGLES,\n attributes = {},\n indices = null,\n vertexCount = null\n } = props;\n\n this.id = id;\n this.drawMode = drawMode | 0;\n this.attributes = {};\n this.userData = {};\n\n this._setAttributes(attributes, indices);\n\n this.vertexCount = vertexCount || this._calculateVertexCount(this.attributes, this.indices);\n\n // stubRemovedMethods(this, [\n // 'setNeedsRedraw', 'needsRedraw', 'setAttributes'\n // ], 'Immutable');\n\n // stubRemovedMethods(this, [\n // 'hasAttribute', 'getAttribute', 'getArray'\n // ], 'Use geometry.attributes and geometry.indices');\n\n // deprecateMethods(this, ['getAttributes'])\n }\n\n get mode() {\n return this.drawMode;\n }\n\n getVertexCount() {\n return this.vertexCount;\n }\n\n // Return an object with all attributes plus indices added as a field.\n getAttributes() {\n return this.indices ? {indices: this.indices, ...this.attributes} : this.attributes;\n }\n\n // PRIVATE\n\n _print(attributeName) {\n return `Geometry ${this.id} attribute ${attributeName}`;\n }\n\n // Attribute\n // value: typed array\n // type: indices, vertices, uvs\n // size: elements per vertex\n // target: WebGL buffer type (string or constant)\n _setAttributes(attributes, indices) {\n if (indices) {\n this.indices = ArrayBuffer.isView(indices) ? {value: indices, size: 1} : indices;\n }\n\n for (const attributeName in attributes) {\n let attribute = attributes[attributeName];\n\n // Wrap \"unwrapped\" arrays and try to autodetect their type\n attribute = ArrayBuffer.isView(attribute) ? {value: attribute} : attribute;\n\n assert(\n ArrayBuffer.isView(attribute.value),\n `${this._print(attributeName)}: must be typed array or object with value as typed array`\n );\n\n if ((attributeName === 'POSITION' || attributeName === 'positions') && !attribute.size) {\n attribute.size = 3;\n }\n\n // Move indices to separate field\n if (attributeName === 'indices') {\n assert(!this.indices);\n this.indices = attribute;\n } else {\n this.attributes[attributeName] = attribute;\n }\n }\n\n if (this.indices && this.indices.isIndexed !== undefined) {\n this.indices = Object.assign({}, this.indices);\n delete this.indices.isIndexed;\n }\n\n return this;\n }\n\n _calculateVertexCount(attributes, indices) {\n if (indices) {\n return indices.value.length;\n }\n let vertexCount = Infinity;\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n const {value, size, constant} = attribute;\n if (!constant && value && size >= 1) {\n vertexCount = Math.min(vertexCount, value.length / size);\n }\n }\n\n assert(Number.isFinite(vertexCount));\n return vertexCount;\n }\n}\n","// TODO v5: consider to make it private\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","import GL from '@luma.gl/constants';\nimport {getTypedArrayFromGLType} from '../webgl-utils/typed-array-utils';\nimport {assert} from '../utils/assert';\nimport {checkProps} from '../utils/check-props';\n\nconst DEFAULT_ACCESSOR_VALUES = {\n offset: 0,\n stride: 0,\n type: GL.FLOAT,\n size: 1,\n divisor: 0,\n normalized: false,\n integer: false\n};\n\nconst PROP_CHECKS = {\n deprecatedProps: {\n instanced: 'divisor',\n isInstanced: 'divisor'\n }\n};\n\nexport default class Accessor {\n static getBytesPerElement(accessor) {\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT;\n }\n\n static getBytesPerVertex(accessor) {\n assert(accessor.size);\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT * accessor.size;\n }\n\n // Combines (merges) a list of accessors. On top of default values\n // Usually [programAccessor, bufferAccessor, appAccessor]\n // All props will be set in the returned object.\n // TODO check for conflicts between values in the supplied accessors\n static resolve(...accessors) {\n return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values\n }\n\n constructor(...accessors) {\n accessors.forEach(accessor => this._assign(accessor)); // Merge in sequence\n Object.freeze(this);\n }\n\n toString() {\n return JSON.stringify(this);\n }\n\n // ACCESSORS\n\n // TODO - remove>\n get BYTES_PER_ELEMENT() {\n return Accessor.getBytesPerElement(this);\n }\n\n get BYTES_PER_VERTEX() {\n return Accessor.getBytesPerVertex(this);\n }\n\n // PRIVATE\n\n // eslint-disable-next-line complexity, max-statements\n _assign(props = {}) {\n props = checkProps('Accessor', props, PROP_CHECKS);\n\n if (props.type !== undefined) {\n this.type = props.type;\n\n // Auto-deduce integer type?\n if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {\n this.integer = true;\n }\n }\n if (props.size !== undefined) {\n this.size = props.size;\n }\n if (props.offset !== undefined) {\n this.offset = props.offset;\n }\n if (props.stride !== undefined) {\n this.stride = props.stride;\n }\n if (props.normalized !== undefined) {\n this.normalized = props.normalized;\n }\n if (props.integer !== undefined) {\n this.integer = props.integer;\n }\n\n // INSTANCE DIVISOR\n if (props.divisor !== undefined) {\n this.divisor = props.divisor;\n }\n\n // Buffer is optional\n if (props.buffer !== undefined) {\n this.buffer = props.buffer;\n }\n\n // The binding index (for binding e.g. Transform feedbacks and Uniform buffers)\n // TODO - should this be part of accessor?\n if (props.index !== undefined) {\n if (typeof props.index === 'boolean') {\n this.index = props.index ? 1 : 0;\n } else {\n this.index = props.index;\n }\n }\n\n // DEPRECATED\n if (props.instanced !== undefined) {\n this.divisor = props.instanced ? 1 : 0;\n }\n if (props.isInstanced !== undefined) {\n this.divisor = props.isInstanced ? 1 : 0;\n }\n\n return this;\n }\n}\n\n// TEST EXPORTS\nexport {DEFAULT_ACCESSOR_VALUES};\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar helpers = require('@turf/helpers');\n\n/**\n * Callback for coordEach\n *\n * @callback coordEachCallback\n * @param {Array<number>} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\n *\n * @name coordEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n var j, k, l, geometry, stopG, coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection,\n type = geojson.type,\n isFeatureCollection = type === 'FeatureCollection',\n isFeature = type === 'Feature',\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = (isFeatureCollection ? geojson.features[featureIndex].geometry :\n (isFeature ? geojson.geometry : geojson));\n isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection ?\n geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection;\n\n // Handles null Geometry -- Skips this geometry\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n\n wrapShrink = (excludeWrapCoord && (geomType === 'Polygon' || geomType === 'MultiPolygon')) ? 1 : 0;\n\n switch (geomType) {\n case null:\n break;\n case 'Point':\n if (callback(coords, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case 'LineString':\n case 'MultiPoint':\n for (j = 0; j < coords.length; j++) {\n if (callback(coords[j], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n if (geomType === 'MultiPoint') multiFeatureIndex++;\n }\n if (geomType === 'LineString') multiFeatureIndex++;\n break;\n case 'Polygon':\n case 'MultiLineString':\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (callback(coords[j][k], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n if (geomType === 'MultiLineString') multiFeatureIndex++;\n if (geomType === 'Polygon') geometryIndex++;\n }\n if (geomType === 'Polygon') multiFeatureIndex++;\n break;\n case 'MultiPolygon':\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (callback(coords[j][k][l], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case 'GeometryCollection':\n for (j = 0; j < geometry.geometries.length; j++)\n if (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false) return false;\n break;\n default:\n throw new Error('Unknown Geometry Type');\n }\n }\n }\n}\n\n/**\n * Callback for coordReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback coordReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Array<number>} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Reduce coordinates in any GeoJSON object, similar to Array.reduce()\n *\n * @name coordReduce\n * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentCoord;\n * });\n */\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(geojson, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n if (coordIndex === 0 && initialValue === undefined) previousValue = currentCoord;\n else previousValue = callback(previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex);\n }, excludeWrapCoord);\n return previousValue;\n}\n\n/**\n * Callback for propEach\n *\n * @callback propEachCallback\n * @param {Object} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over properties in any GeoJSON object, similar to Array.forEach()\n *\n * @name propEach\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentProperties, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propEach(features, function (currentProperties, featureIndex) {\n * //=currentProperties\n * //=featureIndex\n * });\n */\nfunction propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case 'FeatureCollection':\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n break;\n case 'Feature':\n callback(geojson.properties, 0);\n break;\n }\n}\n\n\n/**\n * Callback for propReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback propReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {*} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce properties in any GeoJSON object into a single value,\n * similar to how Array.reduce works. However, in this case we lazily run\n * the reduction, so an array of all properties is unnecessary.\n *\n * @name propReduce\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {\n * //=previousValue\n * //=currentProperties\n * //=featureIndex\n * return currentProperties\n * });\n */\nfunction propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function (currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentProperties;\n else previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for featureEach\n *\n * @callback featureEachCallback\n * @param {Feature<any>} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name featureEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.featureEach(features, function (currentFeature, featureIndex) {\n * //=currentFeature\n * //=featureIndex\n * });\n */\nfunction featureEach(geojson, callback) {\n if (geojson.type === 'Feature') {\n callback(geojson, 0);\n } else if (geojson.type === 'FeatureCollection') {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n}\n\n/**\n * Callback for featureReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback featureReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name featureReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * return currentFeature\n * });\n */\nfunction featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function (currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Get all coordinates from any GeoJSON object.\n *\n * @name coordAll\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @returns {Array<Array<number>>} coordinate position array\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * var coords = turf.coordAll(features);\n * //= [[26, 37], [36, 53]]\n */\nfunction coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function (coord) {\n coords.push(coord);\n });\n return coords;\n}\n\n/**\n * Callback for geomEach\n *\n * @callback geomEachCallback\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array<number>} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()\n *\n * @name geomEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * });\n */\nfunction geomEach(geojson, callback) {\n var i, j, g, geometry, stopG,\n geometryMaybeCollection,\n isGeometryCollection,\n featureProperties,\n featureBBox,\n featureId,\n featureIndex = 0,\n isFeatureCollection = geojson.type === 'FeatureCollection',\n isFeature = geojson.type === 'Feature',\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (i = 0; i < stop; i++) {\n\n geometryMaybeCollection = (isFeatureCollection ? geojson.features[i].geometry :\n (isFeature ? geojson.geometry : geojson));\n featureProperties = (isFeatureCollection ? geojson.features[i].properties :\n (isFeature ? geojson.properties : {}));\n featureBBox = (isFeatureCollection ? geojson.features[i].bbox :\n (isFeature ? geojson.bbox : undefined));\n featureId = (isFeatureCollection ? geojson.features[i].id :\n (isFeature ? geojson.id : undefined));\n isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection ?\n geometryMaybeCollection.geometries[g] : geometryMaybeCollection;\n\n // Handle null Geometry\n if (geometry === null) {\n if (callback(null, featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n continue;\n }\n switch (geometry.type) {\n case 'Point':\n case 'LineString':\n case 'MultiPoint':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon': {\n if (callback(geometry, featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n break;\n }\n case 'GeometryCollection': {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (callback(geometry.geometries[j], featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n }\n break;\n }\n default:\n throw new Error('Unknown Geometry Type');\n }\n }\n // Only increase `featureIndex` per each feature\n featureIndex++;\n }\n}\n\n/**\n * Callback for geomReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback geomReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array<number>} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Reduce geometry in any GeoJSON object, similar to Array.reduce().\n *\n * @name geomReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=previousValue\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * return currentGeometry\n * });\n */\nfunction geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(geojson, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentGeometry;\n else previousValue = callback(previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId);\n });\n return previousValue;\n}\n\n/**\n * Callback for flattenEach\n *\n * @callback flattenEachCallback\n * @param {Feature} currentFeature The current flattened feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Iterate over flattened features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name flattenEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * });\n */\nfunction flattenEach(geojson, callback) {\n geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) {\n // Callback for single geometry\n var type = (geometry === null) ? null : geometry.type;\n switch (type) {\n case null:\n case 'Point':\n case 'LineString':\n case 'Polygon':\n if (callback(helpers.feature(geometry, properties, {bbox: bbox, id: id}), featureIndex, 0) === false) return false;\n return;\n }\n\n var geomType;\n\n // Callback for multi-geometry\n switch (type) {\n case 'MultiPoint':\n geomType = 'Point';\n break;\n case 'MultiLineString':\n geomType = 'LineString';\n break;\n case 'MultiPolygon':\n geomType = 'Polygon';\n break;\n }\n\n for (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate\n };\n if (callback(helpers.feature(geom, properties), featureIndex, multiFeatureIndex) === false) return false;\n }\n });\n}\n\n/**\n * Callback for flattenReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback flattenReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Reduce flattened features in any GeoJSON object, similar to Array.reduce().\n *\n * @name flattenReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * return currentFeature\n * });\n */\nfunction flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(geojson, function (currentFeature, featureIndex, multiFeatureIndex) {\n if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === undefined) previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex, multiFeatureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for segmentEach\n *\n * @callback segmentEachCallback\n * @param {Feature<LineString>} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n * @returns {void}\n */\n\n/**\n * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //=currentSegment\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * //=segmentIndex\n * });\n *\n * // Calculate the total number of segments\n * var total = 0;\n * turf.segmentEach(polygon, function () {\n * total++;\n * });\n */\nfunction segmentEach(geojson, callback) {\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n\n // Exclude null Geometries\n if (!feature.geometry) return;\n // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n var type = feature.geometry.type;\n if (type === 'Point' || type === 'MultiPoint') return;\n\n // Generate 2-vertex line segments\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (coordEach(feature, function (currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) {\n // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`\n if (previousCoords === undefined || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = helpers.lineString([previousCoords, currentCoord], feature.properties);\n if (callback(currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) === false) return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }) === false) return false;\n });\n}\n\n/**\n * Callback for segmentReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback segmentReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature<LineString>} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n */\n\n/**\n * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //= previousSegment\n * //= currentSegment\n * //= featureIndex\n * //= multiFeatureIndex\n * //= geometryIndex\n * //= segmentInex\n * return currentSegment\n * });\n *\n * // Calculate the total number of segments\n * var initialValue = 0\n * var total = turf.segmentReduce(polygon, function (previousValue) {\n * previousValue++;\n * return previousValue;\n * }, initialValue);\n */\nfunction segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(geojson, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n if (started === false && initialValue === undefined) previousValue = currentSegment;\n else previousValue = callback(previousValue, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex);\n started = true;\n });\n return previousValue;\n}\n\n/**\n * Callback for lineEach\n *\n * @callback lineEachCallback\n * @param {Feature<LineString>} currentLine The current LineString|LinearRing being processed\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries,\n * similar to Array.forEach.\n *\n * @name lineEach\n * @param {Geometry|Feature<LineString|Polygon|MultiLineString|MultiPolygon>} geojson object\n * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @example\n * var multiLine = turf.multiLineString([\n * [[26, 37], [35, 45]],\n * [[36, 53], [38, 50], [41, 55]]\n * ]);\n *\n * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction lineEach(geojson, callback) {\n // validation\n if (!geojson) throw new Error('geojson is required');\n\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n if (feature.geometry === null) return;\n var type = feature.geometry.type;\n var coords = feature.geometry.coordinates;\n switch (type) {\n case 'LineString':\n if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false) return false;\n break;\n case 'Polygon':\n for (var geometryIndex = 0; geometryIndex < coords.length; geometryIndex++) {\n if (callback(helpers.lineString(coords[geometryIndex], feature.properties), featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n }\n break;\n }\n });\n}\n\n/**\n * Callback for lineReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback lineReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature<LineString>} currentLine The current LineString|LinearRing being processed.\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name lineReduce\n * @param {Geometry|Feature<LineString|Polygon|MultiLineString|MultiPolygon>} geojson object\n * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var multiPoly = turf.multiPolygon([\n * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]),\n * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]])\n * ]);\n *\n * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentLine\n * });\n */\nfunction lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(geojson, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentLine;\n else previousValue = callback(previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex);\n });\n return previousValue;\n}\n\n/**\n * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n * Point & MultiPoint will always return null.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.segmentIndex=0] Segment Index\n * @param {Object} [options.properties={}] Translate Properties to output LineString\n * @param {BBox} [options.bbox={}] Translate BBox to output LineString\n * @param {number|string} [options.id={}] Translate Id to output LineString\n * @returns {Feature<LineString>} 2-vertex GeoJSON Feature LineString\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findSegment(multiLine);\n * // => Feature<LineString<[[10, 10], [50, 30]]>>\n *\n * // First Segment of 2nd Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: 1});\n * // => Feature<LineString<[[-10, -10], [-50, -30]]>>\n *\n * // Last Segment of Last Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1});\n * // => Feature<LineString<[[-50, -30], [-30, -40]]>>\n */\nfunction findSegment(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!helpers.isObject(options)) throw new Error('options is invalid');\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case 'FeatureCollection':\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case 'Feature':\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon':\n geometry = geojson;\n break;\n default:\n throw new Error('geojson is invalid');\n }\n\n // Find SegmentIndex\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n return helpers.lineString([coords[segmentIndex], coords[segmentIndex + 1]], properties, options);\n case 'Polygon':\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0) segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return helpers.lineString([coords[geometryIndex][segmentIndex], coords[geometryIndex][segmentIndex + 1]], properties, options);\n case 'MultiLineString':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return helpers.lineString([coords[multiFeatureIndex][segmentIndex], coords[multiFeatureIndex][segmentIndex + 1]], properties, options);\n case 'MultiPolygon':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return helpers.lineString([coords[multiFeatureIndex][geometryIndex][segmentIndex], coords[multiFeatureIndex][geometryIndex][segmentIndex + 1]], properties, options);\n }\n throw new Error('geojson is invalid');\n}\n\n/**\n * Finds a particular Point from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.coordIndex=0] Coord Index\n * @param {Object} [options.properties={}] Translate Properties to output Point\n * @param {BBox} [options.bbox={}] Translate BBox to output Point\n * @param {number|string} [options.id={}] Translate Id to output Point\n * @returns {Feature<Point>} 2-vertex GeoJSON Feature Point\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findPoint(multiLine);\n * // => Feature<Point<[10, 10]>>\n *\n * // First Segment of the 2nd Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: 1});\n * // => Feature<Point<[-10, -10]>>\n *\n * // Last Segment of last Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1});\n * // => Feature<Point<[-30, -40]>>\n */\nfunction findPoint(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!helpers.isObject(options)) throw new Error('options is invalid');\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case 'FeatureCollection':\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case 'Feature':\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon':\n geometry = geojson;\n break;\n default:\n throw new Error('geojson is invalid');\n }\n\n // Find Coord Index\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case 'Point':\n return helpers.point(coords, properties, options);\n case 'MultiPoint':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n return helpers.point(coords[multiFeatureIndex], properties, options);\n case 'LineString':\n if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n return helpers.point(coords[coordIndex], properties, options);\n case 'Polygon':\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0) coordIndex = coords[geometryIndex].length + coordIndex;\n return helpers.point(coords[geometryIndex][coordIndex], properties, options);\n case 'MultiLineString':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0) coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return helpers.point(coords[multiFeatureIndex][coordIndex], properties, options);\n case 'MultiPolygon':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0) coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return helpers.point(coords[multiFeatureIndex][geometryIndex][coordIndex], properties, options);\n }\n throw new Error('geojson is invalid');\n}\n\nexports.coordEach = coordEach;\nexports.coordReduce = coordReduce;\nexports.propEach = propEach;\nexports.propReduce = propReduce;\nexports.featureEach = featureEach;\nexports.featureReduce = featureReduce;\nexports.coordAll = coordAll;\nexports.geomEach = geomEach;\nexports.geomReduce = geomReduce;\nexports.flattenEach = flattenEach;\nexports.flattenReduce = flattenReduce;\nexports.segmentEach = segmentEach;\nexports.segmentReduce = segmentReduce;\nexports.lineEach = lineEach;\nexports.lineReduce = lineReduce;\nexports.findSegment = findSegment;\nexports.findPoint = findPoint;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.red = exports.getContrastingColor = exports.isValidHex = exports.toState = exports.simpleCheckForValidColor = undefined;\n\nvar _each = require('lodash/each');\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _tinycolor = require('tinycolor2');\n\nvar _tinycolor2 = _interopRequireDefault(_tinycolor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar simpleCheckForValidColor = exports.simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n (0, _each2.default)(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nvar toState = exports.toState = function toState(data, oldHue) {\n var color = data.hex ? (0, _tinycolor2.default)(data.hex) : (0, _tinycolor2.default)(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nvar isValidHex = exports.isValidHex = function isValidHex(hex) {\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && (0, _tinycolor2.default)(hex).isValid();\n};\n\nvar getContrastingColor = exports.getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nvar red = exports.red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nexports.default = exports;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar helpers_1 = require(\"@turf/helpers\");\nvar invariant_1 = require(\"@turf/invariant\");\n// http://en.wikipedia.org/wiki/Haversine_formula\n// http://www.movable-type.co.uk/scripts/latlong.html\n/**\n * Takes two {@link Point|points} and finds the geographic bearing between them,\n * i.e. the angle measured in degrees from the north line (0 degrees)\n *\n * @name bearing\n * @param {Coord} start starting Point\n * @param {Coord} end ending Point\n * @param {Object} [options={}] Optional parameters\n * @param {boolean} [options.final=false] calculates the final bearing if true\n * @returns {number} bearing in decimal degrees, between -180 and 180 degrees (positive clockwise)\n * @example\n * var point1 = turf.point([-75.343, 39.984]);\n * var point2 = turf.point([-75.534, 39.123]);\n *\n * var bearing = turf.bearing(point1, point2);\n *\n * //addToMap\n * var addToMap = [point1, point2]\n * point1.properties['marker-color'] = '#f00'\n * point2.properties['marker-color'] = '#0f0'\n * point1.properties.bearing = bearing\n */\nfunction bearing(start, end, options) {\n if (options === void 0) { options = {}; }\n // Reverse calculation\n if (options.final === true) {\n return calculateFinalBearing(start, end);\n }\n var coordinates1 = invariant_1.getCoord(start);\n var coordinates2 = invariant_1.getCoord(end);\n var lon1 = helpers_1.degreesToRadians(coordinates1[0]);\n var lon2 = helpers_1.degreesToRadians(coordinates2[0]);\n var lat1 = helpers_1.degreesToRadians(coordinates1[1]);\n var lat2 = helpers_1.degreesToRadians(coordinates2[1]);\n var a = Math.sin(lon2 - lon1) * Math.cos(lat2);\n var b = Math.cos(lat1) * Math.sin(lat2) -\n Math.sin(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1);\n return helpers_1.radiansToDegrees(Math.atan2(a, b));\n}\n/**\n * Calculates Final Bearing\n *\n * @private\n * @param {Coord} start starting Point\n * @param {Coord} end ending Point\n * @returns {number} bearing\n */\nfunction calculateFinalBearing(start, end) {\n // Swap start & end\n var bear = bearing(end, start);\n bear = (bear + 180) % 360;\n return bear;\n}\nexports.default = bearing;\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split(/\\s*\\|\\|\\s*/)\n // map the range to a 2d array of comparators\n .map(range => this.parseRange(range.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0)\n this.set = [first]\n else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached)\n return cached\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n // in loose mode, throw out any that are not valid comparators\n .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)\n .map(comp => new Comparator(comp, this.options))\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const l = rangeList.length\n const rangeMap = new Map()\n for (const comp of rangeList) {\n if (isNullSet(comp))\n return [comp]\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has(''))\n rangeMap.delete('')\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceTilde(comp, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceCaret(comp, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((comp) => {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<')\n pr = '-0'\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/**\n * Flattens a nested array into a single level array,\n * or a single value into an array with one value\n * @example flatten([[1, [2]], [3], 4]) => [1, 2, 3, 4]\n * @example flatten(1) => [1]\n * @param {Array} array The array to flatten.\n * @param {Function} filter= - Optional predicate called on each `value` to\n * determine if it should be included (pushed onto) the resulting array.\n * @param {Function} map= - Optional transform applied to each array elements.\n * @param {Array} result=[] - Optional array to push value into\n * @return {Array} Returns the new flattened array (new array or `result` if provided)\n */\nexport function flatten(array, filter = () => true) {\n // Wrap single object in array\n if (!Array.isArray(array)) {\n return filter(array) ? [array] : [];\n }\n // Deep flatten and filter the array\n return flattenArray(array, filter, []);\n}\n\n// Deep flattens an array. Helper to `flatten`, see its parameters\nfunction flattenArray(array, filter, result) {\n let index = -1;\n while (++index < array.length) {\n const value = array[index];\n if (Array.isArray(value)) {\n flattenArray(value, filter, result);\n } else if (filter(value)) {\n result.push(value);\n }\n }\n return result;\n}\n\n// Uses copyWithin to significantly speed up typed array value filling\nexport function fillArray({target, source, start = 0, count = 1}) {\n const length = source.length;\n const total = count * length;\n let copied = 0;\n for (let i = start; copied < length; copied++) {\n target[i++] = source[copied];\n }\n\n while (copied < total) {\n // If we have copied less than half, copy everything we got\n // else copy remaining in one operation\n if (copied < total - copied) {\n target.copyWithin(start + copied, start, start + copied);\n copied *= 2;\n } else {\n target.copyWithin(start + copied, start, start + total - copied);\n copied = total;\n }\n }\n\n return target;\n}\n","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 166;\n var timeout;\n\n function debounced() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // eslint-disable-next-line consistent-this\n var that = this;\n\n var later = function later() {\n func.apply(that, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = function () {\n clearTimeout(timeout);\n };\n\n return debounced;\n}","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","export class TypedArrayManager {\n constructor(props) {\n this._pool = [];\n this.props = {overAlloc: 2, poolSize: 100};\n this.setProps(props);\n }\n\n setProps(props) {\n Object.assign(this.props, props);\n }\n\n allocate(\n typedArray,\n count,\n {size = 1, type, padding = 0, copy = false, initialize = false, maxCount}\n ) {\n const Type = type || (typedArray && typedArray.constructor) || Float32Array;\n\n const newSize = count * size + padding;\n if (ArrayBuffer.isView(typedArray)) {\n if (newSize <= typedArray.length) {\n return typedArray;\n }\n if (newSize * typedArray.BYTES_PER_ELEMENT <= typedArray.buffer.byteLength) {\n return new Type(typedArray.buffer, 0, newSize);\n }\n }\n\n let maxSize;\n if (maxCount) {\n maxSize = maxCount * size + padding;\n }\n\n const newArray = this._allocate(Type, newSize, initialize, maxSize);\n\n if (typedArray && copy) {\n newArray.set(typedArray);\n } else if (!initialize) {\n // Hack - always initialize the first 4 elements. NaNs crash the Attribute validation\n newArray.fill(0, 0, 4);\n }\n\n this._release(typedArray);\n return newArray;\n }\n\n release(typedArray) {\n this._release(typedArray);\n }\n\n _allocate(Type, size, initialize, maxSize) {\n // Allocate at least one element to ensure a valid buffer\n let sizeToAllocate = Math.max(Math.ceil(size * this.props.overAlloc), 1);\n // Don't over allocate after certain specified number of elements\n if (sizeToAllocate > maxSize) {\n sizeToAllocate = maxSize;\n }\n\n // Check if available in pool\n const pool = this._pool;\n const byteLength = Type.BYTES_PER_ELEMENT * sizeToAllocate;\n const i = pool.findIndex(b => b.byteLength >= byteLength);\n if (i >= 0) {\n // Create a new array using an existing buffer\n const array = new Type(pool.splice(i, 1)[0], 0, sizeToAllocate);\n if (initialize) {\n // Viewing a buffer with a different type may create NaNs\n array.fill(0);\n }\n return array;\n }\n return new Type(sizeToAllocate);\n }\n\n _release(typedArray) {\n if (!ArrayBuffer.isView(typedArray)) {\n return;\n }\n const pool = this._pool;\n const {buffer} = typedArray;\n // Save the buffer of the released array into the pool\n // Sort buffers by size\n // TODO - implement binary search?\n const {byteLength} = buffer;\n const i = pool.findIndex(b => b.byteLength >= byteLength);\n if (i < 0) {\n pool.push(buffer);\n } else if (i > 0 || pool.length < this.props.poolSize) {\n pool.splice(i, 0, buffer);\n }\n if (pool.length > this.props.poolSize) {\n // Drop the smallest one\n pool.shift();\n }\n }\n}\n\nexport default new TypedArrayManager();\n","export var reflow = function reflow(node) {\n return node.scrollTop;\n};\nexport function getTransitionProps(props, options) {\n var timeout = props.timeout,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style;\n return {\n duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n delay: style.transitionDelay\n };\n}","// Tables describing WebGL parameters\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../utils/webgl-checks';\n\n// DEFAULT SETTINGS - FOR FAST CACHE INITIALIZATION AND CONTEXT RESETS\n\n/* eslint-disable no-shadow */\n\nexport const GL_PARAMETER_DEFAULTS = {\n [GL.BLEND]: false,\n [GL.BLEND_COLOR]: new Float32Array([0, 0, 0, 0]),\n [GL.BLEND_EQUATION_RGB]: GL.FUNC_ADD,\n [GL.BLEND_EQUATION_ALPHA]: GL.FUNC_ADD,\n [GL.BLEND_SRC_RGB]: GL.ONE,\n [GL.BLEND_DST_RGB]: GL.ZERO,\n [GL.BLEND_SRC_ALPHA]: GL.ONE,\n [GL.BLEND_DST_ALPHA]: GL.ZERO,\n [GL.COLOR_CLEAR_VALUE]: new Float32Array([0, 0, 0, 0]), // TBD\n [GL.COLOR_WRITEMASK]: [true, true, true, true],\n [GL.CULL_FACE]: false,\n [GL.CULL_FACE_MODE]: GL.BACK,\n [GL.DEPTH_TEST]: false,\n [GL.DEPTH_CLEAR_VALUE]: 1,\n [GL.DEPTH_FUNC]: GL.LESS,\n [GL.DEPTH_RANGE]: new Float32Array([0, 1]), // TBD\n [GL.DEPTH_WRITEMASK]: true,\n [GL.DITHER]: true,\n // FRAMEBUFFER_BINDING and DRAW_FRAMEBUFFER_BINDING(WebGL2) refer same state.\n [GL.FRAMEBUFFER_BINDING]: null,\n [GL.FRONT_FACE]: GL.CCW,\n [GL.GENERATE_MIPMAP_HINT]: GL.DONT_CARE,\n [GL.LINE_WIDTH]: 1,\n [GL.POLYGON_OFFSET_FILL]: false,\n [GL.POLYGON_OFFSET_FACTOR]: 0,\n [GL.POLYGON_OFFSET_UNITS]: 0,\n [GL.SAMPLE_COVERAGE_VALUE]: 1.0,\n [GL.SAMPLE_COVERAGE_INVERT]: false,\n [GL.SCISSOR_TEST]: false,\n // Note: Dynamic value. If scissor test enabled we expect users to set correct scissor box\n [GL.SCISSOR_BOX]: new Int32Array([0, 0, 1024, 1024]),\n [GL.STENCIL_TEST]: false,\n [GL.STENCIL_CLEAR_VALUE]: 0,\n [GL.STENCIL_WRITEMASK]: 0xffffffff,\n [GL.STENCIL_BACK_WRITEMASK]: 0xffffffff,\n [GL.STENCIL_FUNC]: GL.ALWAYS,\n [GL.STENCIL_REF]: 0,\n [GL.STENCIL_VALUE_MASK]: 0xffffffff,\n [GL.STENCIL_BACK_FUNC]: GL.ALWAYS,\n [GL.STENCIL_BACK_REF]: 0,\n [GL.STENCIL_BACK_VALUE_MASK]: 0xffffffff,\n [GL.STENCIL_FAIL]: GL.KEEP,\n [GL.STENCIL_PASS_DEPTH_FAIL]: GL.KEEP,\n [GL.STENCIL_PASS_DEPTH_PASS]: GL.KEEP,\n [GL.STENCIL_BACK_FAIL]: GL.KEEP,\n [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: GL.KEEP,\n [GL.STENCIL_BACK_PASS_DEPTH_PASS]: GL.KEEP,\n // Dynamic value: We use [0, 0, 1024, 1024] as default, but usually this is updated in each frame.\n [GL.VIEWPORT]: [0, 0, 1024, 1024],\n // WEBGL1 PIXEL PACK/UNPACK MODES\n [GL.PACK_ALIGNMENT]: 4,\n [GL.UNPACK_ALIGNMENT]: 4,\n [GL.UNPACK_FLIP_Y_WEBGL]: false,\n [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: false,\n [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: GL.BROWSER_DEFAULT_WEBGL,\n\n // WEBGL2 / EXTENSIONS\n // gl1: 'OES_standard_derivatives'\n [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: GL.DONT_CARE,\n [GL.READ_FRAMEBUFFER_BINDING]: null,\n [GL.RASTERIZER_DISCARD]: false,\n [GL.PACK_ROW_LENGTH]: 0,\n [GL.PACK_SKIP_PIXELS]: 0,\n [GL.PACK_SKIP_ROWS]: 0,\n [GL.UNPACK_ROW_LENGTH]: 0,\n [GL.UNPACK_IMAGE_HEIGHT]: 0,\n [GL.UNPACK_SKIP_PIXELS]: 0,\n [GL.UNPACK_SKIP_ROWS]: 0,\n [GL.UNPACK_SKIP_IMAGES]: 0\n};\n\n// SETTER TABLES - ENABLES SETTING ANY PARAMETER WITH A COMMON API\n\nconst enable = (gl, value, key) => (value ? gl.enable(key) : gl.disable(key));\nconst hint = (gl, value, key) => gl.hint(key, value);\nconst pixelStorei = (gl, value, key) => gl.pixelStorei(key, value);\n\nconst drawFramebuffer = (gl, value) => {\n const target = isWebGL2(gl) ? GL.DRAW_FRAMEBUFFER : GL.FRAMEBUFFER;\n return gl.bindFramebuffer(target, value);\n};\nconst readFramebuffer = (gl, value) => {\n return gl.bindFramebuffer(GL.READ_FRAMEBUFFER, value);\n};\n\n// Utility\nfunction isArray(array) {\n return Array.isArray(array) || ArrayBuffer.isView(array);\n}\n\n// Map from WebGL parameter names to corresponding WebGL setter functions\n// WegGL constants are read by parameter names, but set by function names\n// NOTE: When value type is a string, it will be handled by 'GL_COMPOSITE_PARAMETER_SETTERS'\nexport const GL_PARAMETER_SETTERS = {\n [GL.BLEND]: enable,\n [GL.BLEND_COLOR]: (gl, value) => gl.blendColor(...value),\n [GL.BLEND_EQUATION_RGB]: 'blendEquation',\n [GL.BLEND_EQUATION_ALPHA]: 'blendEquation',\n [GL.BLEND_SRC_RGB]: 'blendFunc',\n [GL.BLEND_DST_RGB]: 'blendFunc',\n [GL.BLEND_SRC_ALPHA]: 'blendFunc',\n [GL.BLEND_DST_ALPHA]: 'blendFunc',\n [GL.COLOR_CLEAR_VALUE]: (gl, value) => gl.clearColor(...value),\n [GL.COLOR_WRITEMASK]: (gl, value) => gl.colorMask(...value),\n [GL.CULL_FACE]: enable,\n [GL.CULL_FACE_MODE]: (gl, value) => gl.cullFace(value),\n [GL.DEPTH_TEST]: enable,\n [GL.DEPTH_CLEAR_VALUE]: (gl, value) => gl.clearDepth(value),\n [GL.DEPTH_FUNC]: (gl, value) => gl.depthFunc(value),\n [GL.DEPTH_RANGE]: (gl, value) => gl.depthRange(...value),\n [GL.DEPTH_WRITEMASK]: (gl, value) => gl.depthMask(value),\n [GL.DITHER]: enable,\n [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: hint,\n // NOTE: FRAMEBUFFER_BINDING and DRAW_FRAMEBUFFER_BINDING(WebGL2) refer same state.\n [GL.FRAMEBUFFER_BINDING]: drawFramebuffer,\n [GL.FRONT_FACE]: (gl, value) => gl.frontFace(value),\n [GL.GENERATE_MIPMAP_HINT]: hint,\n [GL.LINE_WIDTH]: (gl, value) => gl.lineWidth(value),\n [GL.POLYGON_OFFSET_FILL]: enable,\n [GL.POLYGON_OFFSET_FACTOR]: 'polygonOffset',\n [GL.POLYGON_OFFSET_UNITS]: 'polygonOffset',\n [GL.RASTERIZER_DISCARD]: enable,\n [GL.SAMPLE_COVERAGE_VALUE]: 'sampleCoverage',\n [GL.SAMPLE_COVERAGE_INVERT]: 'sampleCoverage',\n [GL.SCISSOR_TEST]: enable,\n [GL.SCISSOR_BOX]: (gl, value) => gl.scissor(...value),\n [GL.STENCIL_TEST]: enable,\n [GL.STENCIL_CLEAR_VALUE]: (gl, value) => gl.clearStencil(value),\n [GL.STENCIL_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.FRONT, value),\n [GL.STENCIL_BACK_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.BACK, value),\n [GL.STENCIL_FUNC]: 'stencilFuncFront',\n [GL.STENCIL_REF]: 'stencilFuncFront',\n [GL.STENCIL_VALUE_MASK]: 'stencilFuncFront',\n [GL.STENCIL_BACK_FUNC]: 'stencilFuncBack',\n [GL.STENCIL_BACK_REF]: 'stencilFuncBack',\n [GL.STENCIL_BACK_VALUE_MASK]: 'stencilFuncBack',\n [GL.STENCIL_FAIL]: 'stencilOpFront',\n [GL.STENCIL_PASS_DEPTH_FAIL]: 'stencilOpFront',\n [GL.STENCIL_PASS_DEPTH_PASS]: 'stencilOpFront',\n [GL.STENCIL_BACK_FAIL]: 'stencilOpBack',\n [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: 'stencilOpBack',\n [GL.STENCIL_BACK_PASS_DEPTH_PASS]: 'stencilOpBack',\n [GL.VIEWPORT]: (gl, value) => gl.viewport(...value),\n\n // WEBGL1 PIXEL PACK/UNPACK MODES\n [GL.PACK_ALIGNMENT]: pixelStorei,\n [GL.UNPACK_ALIGNMENT]: pixelStorei,\n [GL.UNPACK_FLIP_Y_WEBGL]: pixelStorei,\n [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: pixelStorei,\n [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: pixelStorei,\n\n // WEBGL2 PIXEL PACK/UNPACK MODES\n // RASTERIZER_DISCARD ...\n [GL.PACK_ROW_LENGTH]: pixelStorei,\n [GL.PACK_SKIP_PIXELS]: pixelStorei,\n [GL.PACK_SKIP_ROWS]: pixelStorei,\n [GL.READ_FRAMEBUFFER_BINDING]: readFramebuffer,\n [GL.UNPACK_ROW_LENGTH]: pixelStorei,\n [GL.UNPACK_IMAGE_HEIGHT]: pixelStorei,\n [GL.UNPACK_SKIP_PIXELS]: pixelStorei,\n [GL.UNPACK_SKIP_ROWS]: pixelStorei,\n [GL.UNPACK_SKIP_IMAGES]: pixelStorei,\n\n // Function-style setters\n framebuffer: (gl, framebuffer) => {\n // accepts 1) a WebGLFramebuffer 2) null (default framebuffer), or 3) luma.gl Framebuffer class\n // framebuffer is null when restoring to default framebuffer, otherwise use the WebGL handle.\n const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;\n return gl.bindFramebuffer(GL.FRAMEBUFFER, handle);\n },\n blend: (gl, value) => (value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND)),\n blendColor: (gl, value) => gl.blendColor(...value),\n blendEquation: (gl, args) => {\n args = isArray(args) ? args : [args, args];\n gl.blendEquationSeparate(...args);\n },\n blendFunc: (gl, args) => {\n args = isArray(args) && args.length === 2 ? [...args, ...args] : args;\n gl.blendFuncSeparate(...args);\n },\n\n clearColor: (gl, value) => gl.clearColor(...value),\n clearDepth: (gl, value) => gl.clearDepth(value),\n clearStencil: (gl, value) => gl.clearStencil(value),\n\n colorMask: (gl, value) => gl.colorMask(...value),\n\n cull: (gl, value) => (value ? gl.enable(GL.CULL_FACE) : gl.disable(GL.CULL_FACE)),\n cullFace: (gl, value) => gl.cullFace(value),\n\n depthTest: (gl, value) => (value ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST)),\n depthFunc: (gl, value) => gl.depthFunc(value),\n depthMask: (gl, value) => gl.depthMask(value),\n depthRange: (gl, value) => gl.depthRange(...value),\n\n dither: (gl, value) => (value ? gl.enable(GL.DITHER) : gl.disable(GL.DITHER)),\n\n derivativeHint: (gl, value) => {\n // gl1: 'OES_standard_derivatives'\n gl.hint(GL.FRAGMENT_SHADER_DERIVATIVE_HINT, value);\n },\n\n frontFace: (gl, value) => gl.frontFace(value),\n\n mipmapHint: (gl, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),\n\n lineWidth: (gl, value) => gl.lineWidth(value),\n\n polygonOffsetFill: (gl, value) =>\n value ? gl.enable(GL.POLYGON_OFFSET_FILL) : gl.disable(GL.POLYGON_OFFSET_FILL),\n polygonOffset: (gl, value) => gl.polygonOffset(...value),\n\n sampleCoverage: (gl, value) => gl.sampleCoverage(...value),\n\n scissorTest: (gl, value) => (value ? gl.enable(GL.SCISSOR_TEST) : gl.disable(GL.SCISSOR_TEST)),\n scissor: (gl, value) => gl.scissor(...value),\n\n stencilTest: (gl, value) => (value ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST)),\n stencilMask: (gl, value) => {\n value = isArray(value) ? value : [value, value];\n const [mask, backMask] = value;\n gl.stencilMaskSeparate(GL.FRONT, mask);\n gl.stencilMaskSeparate(GL.BACK, backMask);\n },\n stencilFunc: (gl, args) => {\n args = isArray(args) && args.length === 3 ? [...args, ...args] : args;\n const [func, ref, mask, backFunc, backRef, backMask] = args;\n gl.stencilFuncSeparate(GL.FRONT, func, ref, mask);\n gl.stencilFuncSeparate(GL.BACK, backFunc, backRef, backMask);\n },\n stencilOp: (gl, args) => {\n args = isArray(args) && args.length === 3 ? [...args, ...args] : args;\n const [sfail, dpfail, dppass, backSfail, backDpfail, backDppass] = args;\n gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);\n gl.stencilOpSeparate(GL.BACK, backSfail, backDpfail, backDppass);\n },\n\n viewport: (gl, value) => gl.viewport(...value)\n};\n\nfunction getValue(glEnum, values, cache) {\n return values[glEnum] !== undefined ? values[glEnum] : cache[glEnum];\n}\n\n// COMPOSITE_WEBGL_PARAMETER_\nexport const GL_COMPOSITE_PARAMETER_SETTERS = {\n blendEquation: (gl, values, cache) =>\n gl.blendEquationSeparate(\n getValue(GL.BLEND_EQUATION_RGB, values, cache),\n getValue(GL.BLEND_EQUATION_ALPHA, values, cache)\n ),\n blendFunc: (gl, values, cache) =>\n gl.blendFuncSeparate(\n getValue(GL.BLEND_SRC_RGB, values, cache),\n getValue(GL.BLEND_DST_RGB, values, cache),\n getValue(GL.BLEND_SRC_ALPHA, values, cache),\n getValue(GL.BLEND_DST_ALPHA, values, cache)\n ),\n polygonOffset: (gl, values, cache) =>\n gl.polygonOffset(\n getValue(GL.POLYGON_OFFSET_FACTOR, values, cache),\n getValue(GL.POLYGON_OFFSET_UNITS, values, cache)\n ),\n sampleCoverage: (gl, values, cache) =>\n gl.sampleCoverage(\n getValue(GL.SAMPLE_COVERAGE_VALUE, values, cache),\n getValue(GL.SAMPLE_COVERAGE_INVERT, values, cache)\n ),\n stencilFuncFront: (gl, values, cache) =>\n gl.stencilFuncSeparate(\n GL.FRONT,\n getValue(GL.STENCIL_FUNC, values, cache),\n getValue(GL.STENCIL_REF, values, cache),\n getValue(GL.STENCIL_VALUE_MASK, values, cache)\n ),\n stencilFuncBack: (gl, values, cache) =>\n gl.stencilFuncSeparate(\n GL.BACK,\n getValue(GL.STENCIL_BACK_FUNC, values, cache),\n getValue(GL.STENCIL_BACK_REF, values, cache),\n getValue(GL.STENCIL_BACK_VALUE_MASK, values, cache)\n ),\n stencilOpFront: (gl, values, cache) =>\n gl.stencilOpSeparate(\n GL.FRONT,\n getValue(GL.STENCIL_FAIL, values, cache),\n getValue(GL.STENCIL_PASS_DEPTH_FAIL, values, cache),\n getValue(GL.STENCIL_PASS_DEPTH_PASS, values, cache)\n ),\n stencilOpBack: (gl, values, cache) =>\n gl.stencilOpSeparate(\n GL.BACK,\n getValue(GL.STENCIL_BACK_FAIL, values, cache),\n getValue(GL.STENCIL_BACK_PASS_DEPTH_FAIL, values, cache),\n getValue(GL.STENCIL_BACK_PASS_DEPTH_PASS, values, cache)\n )\n};\n\n// Setter functions intercepted for cache updates\nexport const GL_HOOKED_SETTERS = {\n // GENERIC SETTERS\n\n enable: (update, capability) =>\n update({\n [capability]: true\n }),\n disable: (update, capability) =>\n update({\n [capability]: false\n }),\n pixelStorei: (update, pname, value) =>\n update({\n [pname]: value\n }),\n hint: (update, pname, hint) =>\n update({\n [pname]: hint\n }),\n\n // SPECIFIC SETTERS\n\n bindFramebuffer: (update, target, framebuffer) => {\n switch (target) {\n case GL.FRAMEBUFFER:\n return update({\n [GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer,\n [GL.READ_FRAMEBUFFER_BINDING]: framebuffer\n });\n case GL.DRAW_FRAMEBUFFER:\n return update({[GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer});\n case GL.READ_FRAMEBUFFER:\n return update({[GL.READ_FRAMEBUFFER_BINDING]: framebuffer});\n default:\n return null;\n }\n },\n blendColor: (update, r, g, b, a) =>\n update({\n [GL.BLEND_COLOR]: new Float32Array([r, g, b, a])\n }),\n\n blendEquation: (update, mode) =>\n update({\n [GL.BLEND_EQUATION_RGB]: mode,\n [GL.BLEND_EQUATION_ALPHA]: mode\n }),\n\n blendEquationSeparate: (update, modeRGB, modeAlpha) =>\n update({\n [GL.BLEND_EQUATION_RGB]: modeRGB,\n [GL.BLEND_EQUATION_ALPHA]: modeAlpha\n }),\n\n blendFunc: (update, src, dst) =>\n update({\n [GL.BLEND_SRC_RGB]: src,\n [GL.BLEND_DST_RGB]: dst,\n [GL.BLEND_SRC_ALPHA]: src,\n [GL.BLEND_DST_ALPHA]: dst\n }),\n\n blendFuncSeparate: (update, srcRGB, dstRGB, srcAlpha, dstAlpha) =>\n update({\n [GL.BLEND_SRC_RGB]: srcRGB,\n [GL.BLEND_DST_RGB]: dstRGB,\n [GL.BLEND_SRC_ALPHA]: srcAlpha,\n [GL.BLEND_DST_ALPHA]: dstAlpha\n }),\n\n clearColor: (update, r, g, b, a) =>\n update({\n [GL.COLOR_CLEAR_VALUE]: new Float32Array([r, g, b, a])\n }),\n\n clearDepth: (update, depth) =>\n update({\n [GL.DEPTH_CLEAR_VALUE]: depth\n }),\n\n clearStencil: (update, s) =>\n update({\n [GL.STENCIL_CLEAR_VALUE]: s\n }),\n\n colorMask: (update, r, g, b, a) =>\n update({\n [GL.COLOR_WRITEMASK]: [r, g, b, a]\n }),\n\n cullFace: (update, mode) =>\n update({\n [GL.CULL_FACE_MODE]: mode\n }),\n\n depthFunc: (update, func) =>\n update({\n [GL.DEPTH_FUNC]: func\n }),\n\n depthRange: (update, zNear, zFar) =>\n update({\n [GL.DEPTH_RANGE]: new Float32Array([zNear, zFar])\n }),\n\n depthMask: (update, mask) =>\n update({\n [GL.DEPTH_WRITEMASK]: mask\n }),\n\n frontFace: (update, face) =>\n update({\n [GL.FRONT_FACE]: face\n }),\n\n lineWidth: (update, width) =>\n update({\n [GL.LINE_WIDTH]: width\n }),\n\n polygonOffset: (update, factor, units) =>\n update({\n [GL.POLYGON_OFFSET_FACTOR]: factor,\n [GL.POLYGON_OFFSET_UNITS]: units\n }),\n\n sampleCoverage: (update, value, invert) =>\n update({\n [GL.SAMPLE_COVERAGE_VALUE]: value,\n [GL.SAMPLE_COVERAGE_INVERT]: invert\n }),\n\n scissor: (update, x, y, width, height) =>\n update({\n [GL.SCISSOR_BOX]: new Int32Array([x, y, width, height])\n }),\n\n stencilMask: (update, mask) =>\n update({\n [GL.STENCIL_WRITEMASK]: mask,\n [GL.STENCIL_BACK_WRITEMASK]: mask\n }),\n\n stencilMaskSeparate: (update, face, mask) =>\n update({\n [face === GL.FRONT ? GL.STENCIL_WRITEMASK : GL.STENCIL_BACK_WRITEMASK]: mask\n }),\n\n stencilFunc: (update, func, ref, mask) =>\n update({\n [GL.STENCIL_FUNC]: func,\n [GL.STENCIL_REF]: ref,\n [GL.STENCIL_VALUE_MASK]: mask,\n [GL.STENCIL_BACK_FUNC]: func,\n [GL.STENCIL_BACK_REF]: ref,\n [GL.STENCIL_BACK_VALUE_MASK]: mask\n }),\n\n stencilFuncSeparate: (update, face, func, ref, mask) =>\n update({\n [face === GL.FRONT ? GL.STENCIL_FUNC : GL.STENCIL_BACK_FUNC]: func,\n [face === GL.FRONT ? GL.STENCIL_REF : GL.STENCIL_BACK_REF]: ref,\n [face === GL.FRONT ? GL.STENCIL_VALUE_MASK : GL.STENCIL_BACK_VALUE_MASK]: mask\n }),\n\n stencilOp: (update, fail, zfail, zpass) =>\n update({\n [GL.STENCIL_FAIL]: fail,\n [GL.STENCIL_PASS_DEPTH_FAIL]: zfail,\n [GL.STENCIL_PASS_DEPTH_PASS]: zpass,\n [GL.STENCIL_BACK_FAIL]: fail,\n [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,\n [GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass\n }),\n\n stencilOpSeparate: (update, face, fail, zfail, zpass) =>\n update({\n [face === GL.FRONT ? GL.STENCIL_FAIL : GL.STENCIL_BACK_FAIL]: fail,\n [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_FAIL : GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,\n [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_PASS : GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass\n }),\n\n viewport: (update, x, y, width, height) =>\n update({\n [GL.VIEWPORT]: [x, y, width, height]\n })\n};\n\n// GETTER TABLE - FOR READING OUT AN ENTIRE CONTEXT\n\nconst isEnabled = (gl, key) => gl.isEnabled(key);\n\n// Exceptions for any keys that cannot be queried by gl.getParameters\nexport const GL_PARAMETER_GETTERS = {\n [GL.BLEND]: isEnabled,\n [GL.CULL_FACE]: isEnabled,\n [GL.DEPTH_TEST]: isEnabled,\n [GL.DITHER]: isEnabled,\n [GL.POLYGON_OFFSET_FILL]: isEnabled,\n [GL.SAMPLE_ALPHA_TO_COVERAGE]: isEnabled,\n [GL.SAMPLE_COVERAGE]: isEnabled,\n [GL.SCISSOR_TEST]: isEnabled,\n [GL.STENCIL_TEST]: isEnabled,\n\n // WebGL 2\n [GL.RASTERIZER_DISCARD]: isEnabled\n};\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n return function (props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<<anonymous>>';\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(\"The \".concat(location, \" `\").concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameSafe, \"` is deprecated. \").concat(reason));\n }\n\n return null;\n };\n}","import {\n Feature,\n FeatureCollection,\n Geometry,\n Polygon,\n MultiLineString,\n MultiPolygon,\n Position,\n PolygonCoordinates,\n} from '../geojson-types';\n\nexport class ImmutableFeatureCollection {\n featureCollection: FeatureCollection;\n\n constructor(featureCollection: FeatureCollection) {\n this.featureCollection = featureCollection;\n }\n\n getObject() {\n return this.featureCollection;\n }\n\n /**\n * Replaces the position deeply nested withing the given feature's geometry.\n * Works with Point, MultiPoint, LineString, MultiLineString, Polygon, and MultiPolygon.\n *\n * @param featureIndex The index of the feature to update\n * @param positionIndexes An array containing the indexes of the position to replace\n * @param updatedPosition The updated position to place in the result (i.e. [lng, lat])\n *\n * @returns A new `ImmutableFeatureCollection` with the given position replaced. Does not modify this `ImmutableFeatureCollection`.\n */\n replacePosition(\n featureIndex: number,\n positionIndexes: number[] | null | undefined,\n updatedPosition: Position\n ): ImmutableFeatureCollection {\n const geometry = this.featureCollection.features[featureIndex].geometry;\n\n const isPolygonal = geometry.type === 'Polygon' || geometry.type === 'MultiPolygon';\n const updatedGeometry: any = {\n ...geometry,\n coordinates: immutablyReplacePosition(\n geometry.coordinates,\n positionIndexes,\n updatedPosition,\n isPolygonal\n ),\n };\n\n return this.replaceGeometry(featureIndex, updatedGeometry);\n }\n\n /**\n * Removes a position deeply nested in a GeoJSON geometry coordinates array.\n * Works with MultiPoint, LineString, MultiLineString, Polygon, and MultiPolygon.\n *\n * @param featureIndex The index of the feature to update\n * @param positionIndexes An array containing the indexes of the postion to remove\n *\n * @returns A new `ImmutableFeatureCollection` with the given coordinate removed. Does not modify this `ImmutableFeatureCollection`.\n */\n removePosition(\n featureIndex: number,\n positionIndexes: number[] | null | undefined\n ): ImmutableFeatureCollection {\n const geometry = this.featureCollection.features[featureIndex].geometry;\n\n if (geometry.type === 'Point') {\n throw Error(`Can't remove a position from a Point or there'd be nothing left`);\n }\n if (\n geometry.type === 'MultiPoint' && // only 1 point left\n geometry.coordinates.length < 2\n ) {\n throw Error(`Can't remove the last point of a MultiPoint or there'd be nothing left`);\n }\n if (\n geometry.type === 'LineString' && // only 2 positions\n geometry.coordinates.length < 3\n ) {\n throw Error(`Can't remove position. LineString must have at least two positions`);\n }\n if (\n geometry.type === 'Polygon' && // outer ring is a triangle\n geometry.coordinates[0].length < 5 &&\n Array.isArray(positionIndexes) && // trying to remove from outer ring\n positionIndexes[0] === 0\n ) {\n throw Error(`Can't remove position. Polygon's outer ring must have at least four positions`);\n }\n if (\n geometry.type === 'MultiLineString' && // only 1 LineString left\n geometry.coordinates.length === 1 && // only 2 positions\n geometry.coordinates[0].length < 3\n ) {\n throw Error(`Can't remove position. MultiLineString must have at least two positions`);\n }\n if (\n geometry.type === 'MultiPolygon' && // only 1 polygon left\n geometry.coordinates.length === 1 && // outer ring is a triangle\n geometry.coordinates[0][0].length < 5 &&\n Array.isArray(positionIndexes) && // trying to remove from first polygon\n positionIndexes[0] === 0 && // trying to remove from outer ring\n positionIndexes[1] === 0\n ) {\n throw Error(\n `Can't remove position. MultiPolygon's outer ring must have at least four positions`\n );\n }\n\n const isPolygonal = geometry.type === 'Polygon' || geometry.type === 'MultiPolygon';\n const updatedGeometry: any = {\n ...geometry,\n coordinates: immutablyRemovePosition(geometry.coordinates, positionIndexes, isPolygonal),\n };\n\n // Handle cases where incomplete geometries need pruned (e.g. holes that were triangles)\n pruneGeometryIfNecessary(updatedGeometry);\n\n return this.replaceGeometry(featureIndex, updatedGeometry);\n }\n\n /**\n * Adds a position deeply nested in a GeoJSON geometry coordinates array.\n * Works with MultiPoint, LineString, MultiLineString, Polygon, and MultiPolygon.\n *\n * @param featureIndex The index of the feature to update\n * @param positionIndexes An array containing the indexes of the position that will proceed the new position\n * @param positionToAdd The new position to place in the result (i.e. [lng, lat])\n *\n * @returns A new `ImmutableFeatureCollection` with the given coordinate removed. Does not modify this `ImmutableFeatureCollection`.\n */\n addPosition(\n featureIndex: number,\n positionIndexes: number[] | null | undefined,\n positionToAdd: Position\n ): ImmutableFeatureCollection {\n const geometry = this.featureCollection.features[featureIndex].geometry;\n\n if (geometry.type === 'Point') {\n throw new Error('Unable to add a position to a Point feature');\n }\n\n const isPolygonal = geometry.type === 'Polygon' || geometry.type === 'MultiPolygon';\n const updatedGeometry: any = {\n ...geometry,\n coordinates: immutablyAddPosition(\n geometry.coordinates,\n positionIndexes,\n positionToAdd,\n isPolygonal\n ),\n };\n\n return this.replaceGeometry(featureIndex, updatedGeometry);\n }\n\n replaceGeometry(featureIndex: number, geometry: Geometry): ImmutableFeatureCollection {\n const updatedFeature: any = {\n ...this.featureCollection.features[featureIndex],\n geometry,\n };\n\n const updatedFeatureCollection = {\n ...this.featureCollection,\n features: [\n ...this.featureCollection.features.slice(0, featureIndex),\n updatedFeature,\n ...this.featureCollection.features.slice(featureIndex + 1),\n ],\n };\n\n return new ImmutableFeatureCollection(updatedFeatureCollection);\n }\n\n addFeature(feature: Feature): ImmutableFeatureCollection {\n return this.addFeatures([feature]);\n }\n\n addFeatures(features: Feature[]): ImmutableFeatureCollection {\n const updatedFeatureCollection = {\n ...this.featureCollection,\n features: [...this.featureCollection.features, ...features],\n };\n\n return new ImmutableFeatureCollection(updatedFeatureCollection);\n }\n\n deleteFeature(featureIndex: number) {\n return this.deleteFeatures([featureIndex]);\n }\n\n deleteFeatures(featureIndexes: number[]) {\n const features = [...this.featureCollection.features];\n featureIndexes.sort();\n for (let i = featureIndexes.length - 1; i >= 0; i--) {\n const featureIndex = featureIndexes[i];\n if (featureIndex >= 0 && featureIndex < features.length) {\n features.splice(featureIndex, 1);\n }\n }\n\n const updatedFeatureCollection = {\n ...this.featureCollection,\n features,\n };\n\n return new ImmutableFeatureCollection(updatedFeatureCollection);\n }\n}\n\nfunction getUpdatedPosition(updatedPosition: Position, previousPosition: Position): Position {\n // This function checks if the updatedPosition is missing elevation\n // and copies it from previousPosition\n if (updatedPosition.length === 2 && previousPosition.length === 3) {\n const elevation = (previousPosition as any)[2];\n return [updatedPosition[0], updatedPosition[1], elevation];\n }\n\n return updatedPosition;\n}\n\nfunction immutablyReplacePosition(\n coordinates: any,\n positionIndexes: number[] | null | undefined,\n updatedPosition: Position,\n isPolygonal: boolean\n): any {\n if (!positionIndexes) {\n return coordinates;\n }\n if (positionIndexes.length === 0) {\n return getUpdatedPosition(updatedPosition, coordinates);\n }\n if (positionIndexes.length === 1) {\n const updated = [\n ...coordinates.slice(0, positionIndexes[0]),\n getUpdatedPosition(updatedPosition, coordinates[positionIndexes[0]]),\n ...coordinates.slice(positionIndexes[0] + 1),\n ];\n\n if (\n isPolygonal &&\n (positionIndexes[0] === 0 || positionIndexes[0] === coordinates.length - 1)\n ) {\n // for polygons, the first point is repeated at the end of the array\n // so, update it on both ends of the array\n updated[0] = getUpdatedPosition(updatedPosition, coordinates[0]);\n updated[coordinates.length - 1] = getUpdatedPosition(updatedPosition, coordinates[0]);\n }\n return updated;\n }\n\n // recursively update inner array\n return [\n ...coordinates.slice(0, positionIndexes[0]),\n immutablyReplacePosition(\n coordinates[positionIndexes[0]],\n positionIndexes.slice(1, positionIndexes.length),\n updatedPosition,\n isPolygonal\n ),\n ...coordinates.slice(positionIndexes[0] + 1),\n ];\n}\n\nfunction immutablyRemovePosition(\n coordinates: any,\n positionIndexes: number[] | null | undefined,\n isPolygonal: boolean\n): any {\n if (!positionIndexes) {\n return coordinates;\n }\n if (positionIndexes.length === 0) {\n throw Error('Must specify the index of the position to remove');\n }\n if (positionIndexes.length === 1) {\n const updated = [\n ...coordinates.slice(0, positionIndexes[0]),\n ...coordinates.slice(positionIndexes[0] + 1),\n ];\n\n if (\n isPolygonal &&\n (positionIndexes[0] === 0 || positionIndexes[0] === coordinates.length - 1)\n ) {\n // for polygons, the first point is repeated at the end of the array\n // so, if the first/last coordinate is to be removed, coordinates[1] will be the new first/last coordinate\n if (positionIndexes[0] === 0) {\n // change the last to be the same as the first\n updated[updated.length - 1] = updated[0];\n } else if (positionIndexes[0] === coordinates.length - 1) {\n // change the first to be the same as the last\n updated[0] = updated[updated.length - 1];\n }\n }\n return updated;\n }\n\n // recursively update inner array\n return [\n ...coordinates.slice(0, positionIndexes[0]),\n immutablyRemovePosition(\n coordinates[positionIndexes[0]],\n positionIndexes.slice(1, positionIndexes.length),\n isPolygonal\n ),\n ...coordinates.slice(positionIndexes[0] + 1),\n ];\n}\n\nfunction immutablyAddPosition(\n coordinates: any,\n positionIndexes: number[] | null | undefined,\n positionToAdd: Position,\n isPolygonal: boolean\n): any {\n if (!positionIndexes) {\n return coordinates;\n }\n if (positionIndexes.length === 0) {\n throw Error('Must specify the index of the position to remove');\n }\n if (positionIndexes.length === 1) {\n const updated = [\n ...coordinates.slice(0, positionIndexes[0]),\n positionToAdd,\n ...coordinates.slice(positionIndexes[0]),\n ];\n return updated;\n }\n\n // recursively update inner array\n return [\n ...coordinates.slice(0, positionIndexes[0]),\n immutablyAddPosition(\n coordinates[positionIndexes[0]],\n positionIndexes.slice(1, positionIndexes.length),\n positionToAdd,\n isPolygonal\n ),\n ...coordinates.slice(positionIndexes[0] + 1),\n ];\n}\n\nfunction pruneGeometryIfNecessary(geometry: Geometry) {\n switch (geometry.type) {\n case 'Polygon':\n prunePolygonIfNecessary(geometry);\n break;\n case 'MultiLineString':\n pruneMultiLineStringIfNecessary(geometry);\n break;\n case 'MultiPolygon':\n pruneMultiPolygonIfNecessary(geometry);\n break;\n default:\n // Not downgradable\n break;\n }\n}\n\nfunction prunePolygonIfNecessary(geometry: Polygon) {\n const polygon = geometry.coordinates;\n\n // If any hole is no longer a polygon, remove the hole entirely\n for (let holeIndex = 1; holeIndex < polygon.length; holeIndex++) {\n if (removeHoleIfNecessary(polygon, holeIndex)) {\n // It was removed, so keep the index the same\n holeIndex--;\n }\n }\n}\n\nfunction pruneMultiLineStringIfNecessary(geometry: MultiLineString) {\n for (let lineStringIndex = 0; lineStringIndex < geometry.coordinates.length; lineStringIndex++) {\n const lineString = geometry.coordinates[lineStringIndex];\n if (lineString.length === 1) {\n // Only a single position left on this LineString, so remove it (can't have Point in MultiLineString)\n geometry.coordinates.splice(lineStringIndex, 1);\n // Keep the index the same\n lineStringIndex--;\n }\n }\n}\n\nfunction pruneMultiPolygonIfNecessary(geometry: MultiPolygon) {\n for (let polygonIndex = 0; polygonIndex < geometry.coordinates.length; polygonIndex++) {\n const polygon = geometry.coordinates[polygonIndex];\n const outerRing = polygon[0];\n\n // If the outer ring is no longer a polygon, remove the whole polygon\n if (outerRing.length <= 3) {\n geometry.coordinates.splice(polygonIndex, 1);\n // It was removed, so keep the index the same\n polygonIndex--;\n }\n\n for (let holeIndex = 1; holeIndex < polygon.length; holeIndex++) {\n if (removeHoleIfNecessary(polygon, holeIndex)) {\n // It was removed, so keep the index the same\n holeIndex--;\n }\n }\n }\n}\n\nfunction removeHoleIfNecessary(polygon: PolygonCoordinates, holeIndex: number) {\n const hole = polygon[holeIndex];\n if (hole.length <= 3) {\n polygon.splice(holeIndex, 1);\n return true;\n }\n return false;\n}\n","// Support for listening to context state changes and intercepting state queries\n// NOTE: this system does not handle buffer bindings\n/** @typedef {import('./track-context-state')} types */\n\nimport {GL_PARAMETER_DEFAULTS, GL_HOOKED_SETTERS} from './webgl-parameter-tables';\nimport {setParameters, getParameters} from './unified-parameter-api';\nimport {assert} from '../utils/assert';\nimport {deepArrayEqual} from '../utils/utils';\n\n// HELPER FUNCTIONS - INSTALL GET/SET INTERCEPTORS (SPYS) ON THE CONTEXT\n\n// Overrides a WebGLRenderingContext state \"getter\" function\n// to return values directly from cache\nfunction installGetterOverride(gl, functionName) {\n // Get the original function from the WebGLRenderingContext\n const originalGetterFunc = gl[functionName].bind(gl);\n\n // Wrap it with a spy so that we can update our state cache when it gets called\n gl[functionName] = function get(...params) {\n const pname = params[0];\n\n // WebGL limits are not prepopulated in the cache, it's neither undefined in GL_PARAMETER_DEFAULTS\n // nor intercepted by GL_HOOKED_SETTERS. Query the original getter.\n if (!(pname in gl.state.cache)) {\n return originalGetterFunc(...params);\n }\n\n // Optionally call the original function to do a \"hard\" query from the WebGLRenderingContext\n return gl.state.enable\n ? // Call the getter the params so that it can e.g. serve from a cache\n gl.state.cache[pname]\n : // Optionally call the original function to do a \"hard\" query from the WebGLRenderingContext\n originalGetterFunc(...params);\n };\n\n // Set the name of this anonymous function to help in debugging and profiling\n Object.defineProperty(gl[functionName], 'name', {\n value: `${functionName}-from-cache`,\n configurable: false\n });\n}\n\n// Overrides a WebGLRenderingContext state \"setter\" function\n// to call a setter spy before the actual setter. Allows us to keep a cache\n// updated with a copy of the WebGL context state.\nfunction installSetterSpy(gl, functionName, setter) {\n // Get the original function from the WebGLRenderingContext\n const originalSetterFunc = gl[functionName].bind(gl);\n\n // Wrap it with a spy so that we can update our state cache when it gets called\n gl[functionName] = function set(...params) {\n // Update the value\n // Call the setter with the state cache and the params so that it can store the parameters\n const {valueChanged, oldValue} = setter(gl.state._updateCache, ...params);\n\n // Call the original WebGLRenderingContext func to make sure the context actually gets updated\n if (valueChanged) {\n originalSetterFunc(...params);\n }\n\n // Note: if the original function fails to set the value, our state cache will be bad\n // No solution for this at the moment, but assuming that this is unlikely to be a real problem\n // We could call the setter after the originalSetterFunc. Concern is that this would\n // cause different behavior in debug mode, where originalSetterFunc can throw exceptions\n\n return oldValue;\n };\n\n // Set the name of this anonymous function to help in debugging and profiling\n Object.defineProperty(gl[functionName], 'name', {\n value: `${functionName}-to-cache`,\n configurable: false\n });\n}\n\nfunction installProgramSpy(gl) {\n const originalUseProgram = gl.useProgram.bind(gl);\n\n gl.useProgram = function useProgramLuma(handle) {\n if (gl.state.program !== handle) {\n originalUseProgram(handle);\n gl.state.program = handle;\n }\n };\n}\n\n// HELPER CLASS - GLState\n\n/* eslint-disable no-shadow */\nclass GLState {\n constructor(\n gl,\n {\n copyState = false, // Copy cache from params (slow) or initialize from WebGL defaults (fast)\n log = () => {} // Logging function, called when gl parameter change calls are actually issued\n } = {}\n ) {\n this.gl = gl;\n this.program = null;\n this.stateStack = [];\n this.enable = true;\n this.cache = copyState ? getParameters(gl) : Object.assign({}, GL_PARAMETER_DEFAULTS);\n this.log = log;\n\n this._updateCache = this._updateCache.bind(this);\n Object.seal(this);\n }\n\n push(values = {}) {\n this.stateStack.push({});\n }\n\n pop() {\n assert(this.stateStack.length > 0);\n // Use the saved values in the state stack to restore parameters\n const oldValues = this.stateStack[this.stateStack.length - 1];\n setParameters(this.gl, oldValues);\n // Don't pop until we have reset parameters (to make sure other \"stack frames\" are not affected)\n this.stateStack.pop();\n }\n\n // interceptor for context set functions - update our cache and our stack\n // values (Object) - the key values for this setter\n _updateCache(values) {\n let valueChanged = false;\n let oldValue; // = undefined\n\n const oldValues = this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1];\n\n for (const key in values) {\n assert(key !== undefined);\n const value = values[key];\n const cached = this.cache[key];\n // Check that value hasn't already been shadowed\n if (!deepArrayEqual(value, cached)) {\n valueChanged = true;\n oldValue = cached;\n\n // First, save current value being shadowed\n // If a state stack frame is active, save the current parameter values for pop\n // but first check that value hasn't already been shadowed and saved\n if (oldValues && !(key in oldValues)) {\n oldValues[key] = cached;\n }\n\n // Save current value being shadowed\n this.cache[key] = value;\n }\n }\n\n return {valueChanged, oldValue};\n }\n}\n\n// PUBLIC API\n\n/**\n * Initialize WebGL state caching on a context\n * @type {types['trackContextState']}\n */\n// After calling this function, context state will be cached\n// gl.state.push() and gl.state.pop() will be available for saving,\n// temporarily modifying, and then restoring state.\nexport function trackContextState(gl, options = {}) {\n const {enable = true, copyState} = options;\n assert(copyState !== undefined);\n // @ts-ignore\n if (!gl.state) {\n const global_ = typeof global !== 'undefined' ? global : window;\n // @ts-ignore\n const {polyfillContext} = global_;\n if (polyfillContext) {\n polyfillContext(gl);\n }\n\n // Create a state cache\n // @ts-ignore\n gl.state = new GLState(gl, {copyState});\n\n installProgramSpy(gl);\n\n // intercept all setter functions in the table\n for (const key in GL_HOOKED_SETTERS) {\n const setter = GL_HOOKED_SETTERS[key];\n installSetterSpy(gl, key, setter);\n }\n\n // intercept all getter functions in the table\n installGetterOverride(gl, 'getParameter');\n installGetterOverride(gl, 'isEnabled');\n }\n\n // @ts-ignore\n gl.state.enable = enable;\n\n return gl;\n}\n\n/**\n * Initialize WebGL state caching on a context\n * @type {types['pushContextState']}\n */\nexport function pushContextState(gl) {\n // @ts-ignore\n if (!gl.state) {\n trackContextState(gl, {copyState: false});\n }\n // @ts-ignore\n gl.state.push();\n}\n\n/**\n * Initialize WebGL state caching on a context\n * @type {types['popContextState']}\n */\nexport function popContextState(gl) {\n // @ts-ignore\n assert(gl.state);\n // @ts-ignore\n gl.state.pop();\n}\n","/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled(_ref) {\n var controlled = _ref.controlled,\n defaultProp = _ref.default,\n name = _ref.name,\n _ref$state = _ref.state,\n state = _ref$state === void 0 ? 'value' : _ref$state;\n\n var _React$useRef = React.useRef(controlled !== undefined),\n isControlled = _React$useRef.current;\n\n var _React$useState = React.useState(defaultProp),\n valueState = _React$useState[0],\n setValue = _React$useState[1];\n\n var value = isControlled ? controlled : valueState;\n\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(function () {\n if (isControlled !== (controlled !== undefined)) {\n console.error([\"Material-UI: A component is changing the \".concat(isControlled ? '' : 'un', \"controlled \").concat(state, \" state of \").concat(name, \" to be \").concat(isControlled ? 'un' : '', \"controlled.\"), 'Elements should not switch from uncontrolled to controlled (or vice versa).', \"Decide between using a controlled or uncontrolled \".concat(name, \" \") + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [controlled]);\n\n var _React$useRef2 = React.useRef(defaultProp),\n defaultValue = _React$useRef2.current;\n\n React.useEffect(function () {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([\"Material-UI: A component is changing the default \".concat(state, \" state of an uncontrolled \").concat(name, \" after being initialized. \") + \"To suppress this warning opt to use a controlled \".concat(name, \".\")].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n\n var setValueIfUncontrolled = React.useCallback(function (newValue) {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","import GL from '@luma.gl/constants';\nimport {getWebGL2Context, assertWebGL2Context, log} from '@luma.gl/gltools';\nimport Resource from './resource';\nimport Texture2D from './texture-2d';\nimport Renderbuffer from './renderbuffer';\nimport {clear, clearBuffer} from './clear';\nimport {copyToDataUrl} from './copy-and-blit.js';\n\nimport {getFeatures} from '../features';\nimport {getKey} from '../webgl-utils/constants-to-keys';\nimport {assert} from '../utils/assert';\n\nconst ERR_MULTIPLE_RENDERTARGETS = 'Multiple render targets not supported';\n\nexport default class Framebuffer extends Resource {\n static isSupported(gl, options = {}) {\n const {\n colorBufferFloat, // Whether floating point textures can be rendered and read\n colorBufferHalfFloat // Whether half float textures can be rendered and read\n } = options;\n let supported = true;\n\n if (colorBufferFloat) {\n supported = Boolean(\n // WebGL 2\n gl.getExtension('EXT_color_buffer_float') ||\n // WebGL 1, not exposed on all platforms\n gl.getExtension('WEBGL_color_buffer_float') ||\n // WebGL 1, implicitly enables float render targets https://www.khronos.org/registry/webgl/extensions/OES_texture_float/\n gl.getExtension('OES_texture_float')\n );\n }\n\n if (colorBufferHalfFloat) {\n supported =\n supported &&\n Boolean(\n // WebGL 2\n gl.getExtension('EXT_color_buffer_float') ||\n // WebGL 1\n gl.getExtension('EXT_color_buffer_half_float')\n );\n }\n\n return supported;\n }\n\n // Create a Framebuffer wrapper for the default framebuffer (target === null)\n static getDefaultFramebuffer(gl) {\n gl.luma = gl.luma || {};\n gl.luma.defaultFramebuffer =\n gl.luma.defaultFramebuffer ||\n new Framebuffer(gl, {\n id: 'default-framebuffer',\n handle: null,\n attachments: {}\n });\n // TODO - can we query for and get a handle to the GL.FRONT renderbuffer?\n return gl.luma.defaultFramebuffer;\n }\n\n get MAX_COLOR_ATTACHMENTS() {\n const gl2 = assertWebGL2Context(this.gl);\n return gl2.getParameter(gl2.MAX_COLOR_ATTACHMENTS);\n }\n\n get MAX_DRAW_BUFFERS() {\n const gl2 = assertWebGL2Context(this.gl);\n return gl2.getParameter(gl2.MAX_DRAW_BUFFERS);\n }\n\n constructor(gl, opts = {}) {\n super(gl, opts);\n\n // Public members\n this.width = null;\n this.height = null;\n this.attachments = {};\n this.readBuffer = GL.COLOR_ATTACHMENT0;\n this.drawBuffers = [GL.COLOR_ATTACHMENT0];\n this.ownResources = [];\n this.initialize(opts);\n\n Object.seal(this);\n }\n\n get color() {\n return this.attachments[GL.COLOR_ATTACHMENT0] || null;\n }\n\n get texture() {\n return this.attachments[GL.COLOR_ATTACHMENT0] || null;\n }\n\n get depth() {\n return (\n this.attachments[GL.DEPTH_ATTACHMENT] || this.attachments[GL.DEPTH_STENCIL_ATTACHMENT] || null\n );\n }\n\n get stencil() {\n return (\n this.attachments[GL.STENCIL_ATTACHMENT] ||\n this.attachments[GL.DEPTH_STENCIL_ATTACHMENT] ||\n null\n );\n }\n\n initialize({\n width = 1,\n height = 1,\n attachments = null,\n color = true,\n depth = true,\n stencil = false,\n check = true,\n readBuffer = undefined,\n drawBuffers = undefined\n }) {\n assert(width >= 0 && height >= 0, 'Width and height need to be integers');\n\n // Store actual width and height for diffing\n this.width = width;\n this.height = height;\n\n // Resize any provided attachments - note that resize only resizes if needed\n // Note: A framebuffer has no separate size, it is defined by its attachments (which must agree)\n if (attachments) {\n for (const attachment in attachments) {\n const target = attachments[attachment];\n const object = Array.isArray(target) ? target[0] : target;\n object.resize({width, height});\n }\n } else {\n // Create any requested default attachments\n attachments = this._createDefaultAttachments(color, depth, stencil, width, height);\n }\n\n this.update({clearAttachments: true, attachments, readBuffer, drawBuffers});\n\n // Checks that framebuffer was properly set up, if not, throws an explanatory error\n if (attachments && check) {\n this.checkStatus();\n }\n }\n\n delete() {\n for (const resource of this.ownResources) {\n resource.delete();\n }\n super.delete();\n return this;\n }\n\n update({\n attachments = {},\n readBuffer,\n drawBuffers,\n clearAttachments = false,\n resizeAttachments = true\n }) {\n this.attach(attachments, {clearAttachments, resizeAttachments});\n\n const {gl} = this;\n // Multiple render target support, set read buffer and draw buffers\n const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n if (readBuffer) {\n this._setReadBuffer(readBuffer);\n }\n if (drawBuffers) {\n this._setDrawBuffers(drawBuffers);\n }\n // @ts-ignore\n gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n\n return this;\n }\n\n // Attachment resize is expected to be a noop if size is same\n resize(options = {}) {\n let {width, height} = options;\n // for default framebuffer, just update the stored size\n if (this.handle === null) {\n assert(width === undefined && height === undefined);\n this.width = this.gl.drawingBufferWidth;\n this.height = this.gl.drawingBufferHeight;\n return this;\n }\n\n if (width === undefined) {\n width = this.gl.drawingBufferWidth;\n }\n if (height === undefined) {\n height = this.gl.drawingBufferHeight;\n }\n\n if (width !== this.width && height !== this.height) {\n log.log(2, `Resizing framebuffer ${this.id} to ${width}x${height}`)();\n }\n for (const attachmentPoint in this.attachments) {\n this.attachments[attachmentPoint].resize({width, height});\n }\n this.width = width;\n this.height = height;\n return this;\n }\n\n // Attach from a map of attachments\n attach(attachments, {clearAttachments = false, resizeAttachments = true} = {}) {\n const newAttachments = {};\n\n // Any current attachments need to be removed, add null values to map\n if (clearAttachments) {\n Object.keys(this.attachments).forEach(key => {\n newAttachments[key] = null;\n });\n }\n\n // Overlay the new attachments\n Object.assign(newAttachments, attachments);\n\n const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n\n // Walk the attachments\n for (const key in newAttachments) {\n // Ensure key is not undefined\n assert(key !== undefined, 'Misspelled framebuffer binding point?');\n\n const attachment = Number(key);\n\n const descriptor = newAttachments[attachment];\n let object = descriptor;\n if (!object) {\n this._unattach(attachment);\n } else if (object instanceof Renderbuffer) {\n this._attachRenderbuffer({attachment, renderbuffer: object});\n } else if (Array.isArray(descriptor)) {\n const [texture, layer = 0, level = 0] = descriptor;\n object = texture;\n this._attachTexture({attachment, texture, layer, level});\n } else {\n this._attachTexture({attachment, texture: object, layer: 0, level: 0});\n }\n\n // Resize objects\n if (resizeAttachments && object) {\n object.resize({width: this.width, height: this.height});\n }\n }\n\n // @ts-ignore\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n\n // Assign to attachments and remove any nulls to get a clean attachment map\n Object.assign(this.attachments, attachments);\n Object.keys(this.attachments)\n .filter(key => !this.attachments[key])\n .forEach(key => {\n delete this.attachments[key];\n });\n }\n\n checkStatus() {\n const {gl} = this;\n const status = this.getStatus();\n if (status !== gl.FRAMEBUFFER_COMPLETE) {\n throw new Error(_getFrameBufferStatus(status));\n }\n return this;\n }\n\n getStatus() {\n const {gl} = this;\n const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n const status = gl.checkFramebufferStatus(GL.FRAMEBUFFER);\n // @ts-ignore\n gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n return status;\n }\n\n clear(options = {}) {\n const {color, depth, stencil, drawBuffers = []} = options;\n\n // Bind framebuffer and delegate to global clear functions\n const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n\n if (color || depth || stencil) {\n clear(this.gl, {color, depth, stencil});\n }\n\n drawBuffers.forEach((value, drawBuffer) => {\n clearBuffer(this.gl, {drawBuffer, value});\n });\n\n // @ts-ignore\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n\n return this;\n }\n\n // NOTE: Slow requires roundtrip to GPU\n // App can provide pixelArray or have it auto allocated by this method\n // @returns {Uint8Array|Uint16Array|FloatArray} - pixel array,\n // newly allocated by this method unless provided by app.\n readPixels(opts = {}) {\n log.error(\n 'Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)'\n )();\n return null;\n }\n\n // Reads data into provided buffer object asynchronously\n // This function doesn't wait for copy to be complete, it programs GPU to perform a DMA transffer.\n readPixelsToBuffer(opts = {}) {\n log.error(\n 'Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)'\n )();\n return null;\n }\n\n // Reads pixels as a dataUrl\n copyToDataUrl(opts = {}) {\n log.error(\n 'Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)'\n )();\n return null;\n }\n\n // Reads pixels into an HTML Image\n copyToImage(opts = {}) {\n log.error('Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)')();\n return null;\n }\n\n // copyToFramebuffer({width, height}) {\n // const scaleX = width / this.width;\n // const scaleY = height / this.height;\n // const scale = Math.min(scaleX, scaleY);\n // width = width * scale;\n // height = height * scale;\n // const scaledFramebuffer = new Framebuffer(this.gl, {width, height});\n // this.blit();\n // }\n\n // Copy a rectangle from a framebuffer attachment into a texture (at an offset)\n // NOTE: assumes texture has enough storage allocated\n // eslint-disable-next-line complexity\n copyToTexture(opts = {}) {\n log.error(\n 'Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})'\n )();\n return null;\n }\n\n // WEBGL2 INTERFACE\n\n // Copies a rectangle of pixels between framebuffers\n // eslint-disable-next-line complexity\n blit(opts = {}) {\n log.error('Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)')();\n return null;\n }\n\n // signals to the GL that it need not preserve all pixels of a specified region of the framebuffer\n invalidate({attachments = [], x = 0, y = 0, width, height}) {\n const gl2 = assertWebGL2Context(this.gl);\n const prevHandle = gl2.bindFramebuffer(GL.READ_FRAMEBUFFER, this.handle);\n const invalidateAll = x === 0 && y === 0 && width === undefined && height === undefined;\n if (invalidateAll) {\n gl2.invalidateFramebuffer(GL.READ_FRAMEBUFFER, attachments);\n } else {\n // TODO - why does type checking fail on this line\n // @ts-ignore\n gl2.invalidateFramebuffer(GL.READ_FRAMEBUFFER, attachments, x, y, width, height);\n }\n // @ts-ignore\n gl2.bindFramebuffer(GL.READ_FRAMEBUFFER, prevHandle);\n return this;\n }\n\n // Return the value for `pname` of the specified attachment.\n // The type returned is the type of the requested pname\n getAttachmentParameter(attachment, pname, keys) {\n let value = this._getAttachmentParameterFallback(pname);\n if (value === null) {\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n value = this.gl.getFramebufferAttachmentParameter(GL.FRAMEBUFFER, attachment, pname);\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, null);\n }\n if (keys && value > 1000) {\n // @ts-ignore\n value = getKey(this.gl, value);\n }\n return value;\n }\n\n getAttachmentParameters(\n attachment = GL.COLOR_ATTACHMENT0,\n keys,\n // @ts-ignore\n parameters = this.constructor.ATTACHMENT_PARAMETERS || []\n ) {\n const values = {};\n for (const pname of parameters) {\n const key = keys ? getKey(this.gl, pname) : pname;\n values[key] = this.getAttachmentParameter(attachment, pname, keys);\n }\n return values;\n }\n\n getParameters(keys = true) {\n const attachments = Object.keys(this.attachments);\n // if (this === this.gl.luma.defaultFramebuffer) {\n // attachments = [GL.COLOR_ATTACHMENT0, GL.DEPTH_STENCIL_ATTACHMENT];\n // }\n const parameters = {};\n for (const attachmentName of attachments) {\n const attachment = Number(attachmentName);\n const key = keys ? getKey(this.gl, attachment) : attachment;\n parameters[key] = this.getAttachmentParameters(attachment, keys);\n }\n return parameters;\n }\n\n // DEBUG\n\n // Note: Will only work when called in an event handler\n show() {\n if (typeof window !== 'undefined') {\n window.open(copyToDataUrl(this), 'luma-debug-texture');\n }\n return this;\n }\n\n log(logLevel = 0, message = '') {\n if (logLevel > log.level || typeof window === 'undefined') {\n return this;\n }\n message = message || `Framebuffer ${this.id}`;\n const image = copyToDataUrl(this, {targetMaxHeight: 100});\n log.image({logLevel, message, image}, message)();\n return this;\n }\n\n // WEBGL INTERFACE\n bind({target = GL.FRAMEBUFFER} = {}) {\n this.gl.bindFramebuffer(target, this.handle);\n return this;\n }\n\n unbind({target = GL.FRAMEBUFFER} = {}) {\n this.gl.bindFramebuffer(target, null);\n return this;\n }\n\n // PRIVATE METHODS\n\n _createDefaultAttachments(color, depth, stencil, width, height) {\n let defaultAttachments = null;\n\n // Add a color buffer if requested and not supplied\n if (color) {\n defaultAttachments = defaultAttachments || {};\n defaultAttachments[GL.COLOR_ATTACHMENT0] = new Texture2D(this.gl, {\n id: `${this.id}-color0`,\n pixels: null, // reserves texture memory, but texels are undefined\n format: GL.RGBA,\n type: GL.UNSIGNED_BYTE,\n width,\n height,\n // Note: Mipmapping can be disabled by texture resource when we resize the texture\n // to a non-power-of-two dimenstion (NPOT texture) under WebGL1. To have consistant\n // behavior we always disable mipmaps.\n mipmaps: false,\n // Set MIN and MAG filtering parameters so mipmaps are not used in sampling.\n // Use LINEAR so subpixel algos like fxaa work.\n // Set WRAP modes that support NPOT textures too.\n parameters: {\n [GL.TEXTURE_MIN_FILTER]: GL.LINEAR,\n [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,\n [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n }\n });\n // track to delete later\n this.ownResources.push(defaultAttachments[GL.COLOR_ATTACHMENT0]);\n }\n\n if (depth && stencil) {\n // TODO - handle separate stencil\n defaultAttachments = defaultAttachments || {};\n defaultAttachments[GL.DEPTH_STENCIL_ATTACHMENT] = new Renderbuffer(this.gl, {\n id: `${this.id}-depth-stencil`,\n format: GL.DEPTH24_STENCIL8,\n width,\n height: 111\n });\n // track to delete later\n this.ownResources.push(defaultAttachments[GL.DEPTH_STENCIL_ATTACHMENT]);\n // TODO - optional texture\n // new Texture2D(this.gl, {\n // id: `${this.id}-depth-stencil`,\n // format: GL.DEPTH24_STENCIL8,\n // dataFormat: GL.DEPTH_STENCIL,\n // type: GL.UNSIGNED_INT_24_8,\n // width,\n // height,\n // mipmaps: false\n // });\n } else if (depth) {\n // Add a depth buffer if requested and not supplied\n defaultAttachments = defaultAttachments || {};\n defaultAttachments[GL.DEPTH_ATTACHMENT] = new Renderbuffer(this.gl, {\n id: `${this.id}-depth`,\n format: GL.DEPTH_COMPONENT16,\n width,\n height\n });\n // track to delete later\n this.ownResources.push(defaultAttachments[GL.DEPTH_ATTACHMENT]);\n } else if (stencil) {\n // TODO - handle separate stencil\n assert(false);\n }\n\n return defaultAttachments;\n }\n\n _unattach(attachment) {\n const oldAttachment = this.attachments[attachment];\n if (!oldAttachment) {\n return;\n }\n if (oldAttachment instanceof Renderbuffer) {\n // render buffer\n this.gl.framebufferRenderbuffer(GL.FRAMEBUFFER, attachment, GL.RENDERBUFFER, null);\n } else {\n // Must be a texture attachment\n this.gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, GL.TEXTURE_2D, null, 0);\n }\n delete this.attachments[attachment];\n }\n\n _attachRenderbuffer({attachment = GL.COLOR_ATTACHMENT0, renderbuffer}) {\n const {gl} = this;\n // TODO - is the bind needed?\n // gl.bindRenderbuffer(GL.RENDERBUFFER, renderbuffer.handle);\n gl.framebufferRenderbuffer(GL.FRAMEBUFFER, attachment, GL.RENDERBUFFER, renderbuffer.handle);\n // TODO - is the unbind needed?\n // gl.bindRenderbuffer(GL.RENDERBUFFER, null);\n\n this.attachments[attachment] = renderbuffer;\n }\n\n // layer = 0 - index into Texture2DArray and Texture3D or face for `TextureCubeMap`\n // level = 0 - mipmapLevel (must be 0 in WebGL1)\n _attachTexture({attachment = GL.COLOR_ATTACHMENT0, texture, layer, level}) {\n const {gl} = this;\n gl.bindTexture(texture.target, texture.handle);\n\n switch (texture.target) {\n case GL.TEXTURE_2D_ARRAY:\n case GL.TEXTURE_3D:\n const gl2 = assertWebGL2Context(gl);\n gl2.framebufferTextureLayer(GL.FRAMEBUFFER, attachment, texture.target, level, layer);\n break;\n\n case GL.TEXTURE_CUBE_MAP:\n // layer must be a cubemap face (or if index, converted to cube map face)\n const face = mapIndexToCubeMapFace(layer);\n gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, face, texture.handle, level);\n break;\n\n case GL.TEXTURE_2D:\n gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, GL.TEXTURE_2D, texture.handle, level);\n break;\n\n default:\n assert(false, 'Illegal texture type');\n }\n\n gl.bindTexture(texture.target, null);\n this.attachments[attachment] = texture;\n }\n\n // Expects framebuffer to be bound\n _setReadBuffer(readBuffer) {\n const gl2 = getWebGL2Context(this.gl);\n if (gl2) {\n gl2.readBuffer(readBuffer);\n } else {\n // Setting to color attachment 0 is a noop, so allow it in WebGL1\n assert(\n readBuffer === GL.COLOR_ATTACHMENT0 || readBuffer === GL.BACK,\n ERR_MULTIPLE_RENDERTARGETS\n );\n }\n this.readBuffer = readBuffer;\n }\n\n // Expects framebuffer to be bound\n _setDrawBuffers(drawBuffers) {\n const {gl} = this;\n const gl2 = assertWebGL2Context(gl);\n if (gl2) {\n gl2.drawBuffers(drawBuffers);\n } else {\n // TODO - is this not handled by polyfills?\n const ext = gl.getExtension('WEBGL_draw_buffers');\n if (ext) {\n ext.drawBuffersWEBGL(drawBuffers);\n } else {\n // Setting a single draw buffer to color attachment 0 is a noop, allow in WebGL1\n assert(\n drawBuffers.length === 1 &&\n (drawBuffers[0] === GL.COLOR_ATTACHMENT0 || drawBuffers[0] === GL.BACK),\n ERR_MULTIPLE_RENDERTARGETS\n );\n }\n }\n this.drawBuffers = drawBuffers;\n }\n\n // Attempt to provide workable defaults for WebGL2 symbols under WebGL1\n // null means OK to query\n // TODO - move to webgl1 polyfills\n /* eslint-disable complexity */\n _getAttachmentParameterFallback(pname) {\n const caps = getFeatures(this.gl);\n\n switch (pname) {\n case GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: // GLint\n return !caps.WEBGL2 ? 0 : null;\n case GL.FRAMEBUFFER_ATTACHMENT_RED_SIZE: // GLint\n case GL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: // GLint\n case GL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: // GLint\n case GL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: // GLint\n case GL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: // GLint\n case GL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: // GLint\n return !caps.WEBGL2 ? 8 : null;\n case GL.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: // GLenum\n return !caps.WEBGL2 ? GL.UNSIGNED_INT : null;\n case GL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:\n return !caps.WEBGL2 && !caps.EXT_sRGB ? GL.LINEAR : null;\n default:\n return null;\n }\n }\n /* eslint-enable complexity */\n\n // RESOURCE METHODS\n\n _createHandle() {\n return this.gl.createFramebuffer();\n }\n\n _deleteHandle() {\n this.gl.deleteFramebuffer(this.handle);\n }\n\n _bindHandle(handle) {\n return this.gl.bindFramebuffer(GL.FRAMEBUFFER, handle);\n }\n}\n\n// PUBLIC METHODS\n\n// Map an index to a cube map face constant\nfunction mapIndexToCubeMapFace(layer) {\n // TEXTURE_CUBE_MAP_POSITIVE_X is a big value (0x8515)\n // if smaller assume layer is index, otherwise assume it is already a cube map face constant\n return layer < GL.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + GL.TEXTURE_CUBE_MAP_POSITIVE_X : layer;\n}\n\n// Helper METHODS\n// Get a string describing the framebuffer error if installed\nfunction _getFrameBufferStatus(status) {\n // Use error mapping if installed\n // @ts-ignore\n const STATUS = Framebuffer.STATUS || {};\n return STATUS[status] || `Framebuffer error ${status}`;\n}\n\nexport const FRAMEBUFFER_ATTACHMENT_PARAMETERS = [\n GL.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, // WebGLRenderbuffer or WebGLTexture\n GL.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, // GL.RENDERBUFFER, GL.TEXTURE, GL.NONE\n // GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE, // GL.TEXTURE_CUBE_MAP_POSITIVE_X, etc.\n // GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL, // GLint\n // EXT_sRGB or WebGL2\n GL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING, // GL.LINEAR, GL.SRBG\n // WebGL2\n // GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_RED_SIZE, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE // GLint\n // GL.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE\n // GL.FLOAT, GL.INT, GL.UNSIGNED_INT, GL.SIGNED_NORMALIZED, OR GL.UNSIGNED_NORMALIZED.\n];\n\nFramebuffer.ATTACHMENT_PARAMETERS = FRAMEBUFFER_ATTACHMENT_PARAMETERS;\n","function noop() {}\n\nconst DEFAULT_SETTINGS = {\n onStart: noop,\n onUpdate: noop,\n onInterrupt: noop,\n onEnd: noop\n};\n\nexport default class Transition {\n /**\n * @params timeline {Timeline}\n */\n constructor(timeline) {\n this._inProgress = false;\n this._handle = null;\n this.timeline = timeline;\n\n // Defaults\n this.settings = {};\n }\n\n /* Public API */\n get inProgress() {\n return this._inProgress;\n }\n\n /**\n * (re)start this transition.\n * @params props {object} - optional overriding props. see constructor\n */\n start(props) {\n this.cancel();\n this.settings = {...DEFAULT_SETTINGS, ...props};\n this._inProgress = true;\n this.settings.onStart(this);\n }\n\n /**\n * end this transition if it is in progress.\n */\n end() {\n if (this._inProgress) {\n this.timeline.removeChannel(this._handle);\n this._handle = null;\n this._inProgress = false;\n this.settings.onEnd(this);\n }\n }\n\n /**\n * cancel this transition if it is in progress.\n */\n cancel() {\n if (this._inProgress) {\n this.settings.onInterrupt(this);\n this.timeline.removeChannel(this._handle);\n this._handle = null;\n this._inProgress = false;\n }\n }\n\n /**\n * update this transition. Returns `true` if updated.\n */\n update() {\n if (!this._inProgress) {\n return false;\n }\n\n // It is important to initialize the handle during `update` instead of `start`.\n // The CPU time that the `start` frame takes should not be counted towards the duration.\n // On the other hand, `update` always happens during a render cycle. The clock starts when the\n // transition is rendered for the first time.\n if (this._handle === null) {\n const {timeline, settings} = this;\n this._handle = timeline.addChannel({\n delay: timeline.getTime(),\n duration: settings.duration\n });\n }\n\n this.time = this.timeline.getTime(this._handle);\n // Call subclass method\n this._onUpdate();\n // Call user callback\n this.settings.onUpdate(this);\n\n // This only works if `settings.duration` is set\n // Spring transition must call `end` manually\n if (this.timeline.isFinished(this._handle)) {\n this.end();\n }\n return true;\n }\n\n /* Private API */\n\n _onUpdate() {\n // for subclass override\n }\n}\n","// Partial deep equal (only recursive on arrays)\nexport function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n for (const key in a) {\n const aValue = a[key];\n const bValue = b[key];\n const equals =\n aValue === bValue ||\n (Array.isArray(aValue) && Array.isArray(bValue) && deepEqual(aValue, bValue));\n if (!equals) {\n return false;\n }\n }\n return true;\n}\n","/**\n * @typedef Slice\n * @property {number} offset\n * @property {number} length\n */\n\nexport class BaseSource {\n /**\n *\n * @param {Slice[]} slices\n * @returns {ArrayBuffer[]}\n */\n async fetch(slices, signal = undefined) {\n return await Promise.all(\n slices.map((slice) => this.fetchSlice(slice, signal)),\n );\n }\n\n /**\n *\n * @param {Slice} slice\n * @returns {ArrayBuffer}\n */\n async fetchSlice(slice) {\n throw new Error(`fetching of slice ${slice} not possible, not implemented`);\n }\n\n /**\n * Returns the filesize if already determined and null otherwise\n */\n get fileSize() {\n return null;\n }\n\n async close() {\n // no-op by default\n }\n}\n","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.reduce(function (acc, func) {\n if (func == null) {\n return acc;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof func !== 'function') {\n console.error('Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n }\n\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, function () {});\n}","export default function formControlState(_ref) {\n var props = _ref.props,\n states = _ref.states,\n muiFormControl = _ref.muiFormControl;\n return states.reduce(function (acc, state) {\n acc[state] = props[state];\n\n if (muiFormControl) {\n if (typeof props[state] === 'undefined') {\n acc[state] = muiFormControl[state];\n }\n }\n\n return acc;\n }, {});\n}","import * as React from 'react';\nimport FormControlContext from './FormControlContext';\nexport default function useFormControl() {\n return React.useContext(FormControlContext);\n}","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","// Purpose: include this in your module to avoid\n// dependencies on micro modules like 'global' and 'is-browser';\n\n/* eslint-disable no-restricted-globals */\nconst globals = {\n self: typeof self !== 'undefined' && self,\n window: typeof window !== 'undefined' && window,\n global: typeof global !== 'undefined' && global,\n document: typeof document !== 'undefined' && document\n};\n\ntype obj = {[key: string]: any};\nconst self_: obj = globals.self || globals.window || globals.global || {};\nconst window_: obj = globals.window || globals.self || globals.global || {};\nconst global_: obj = globals.global || globals.self || globals.window || {};\nconst document_: obj = globals.document || {};\n\nexport {self_ as self, window_ as window, global_ as global, document_ as document};\n\n/** true if running in a browser */\nexport const isBrowser: boolean =\n // @ts-ignore process does not exist on browser\n typeof process !== 'object' || String(process) !== '[object process]' || process.browser;\n\n/** true if running in a worker thread */\nexport const isWorker: boolean = typeof importScripts === 'function';\n\n// Extract node major version\nconst matches =\n typeof process !== 'undefined' && process.version && /v([0-9]*)/.exec(process.version);\n/** Major Node version (as a number) */\nexport const nodeVersion: number = (matches && parseFloat(matches[1])) || 0;\n","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.buildOptions = function(options, defaultOptions, props) {\n let newOptions = {};\n if (!options) {\n return defaultOptions; //if there are not options\n }\n\n for (let i = 0; i < props.length; i++) {\n if (options[props[i]] !== undefined) {\n newOptions[props[i]] = options[props[i]];\n } else {\n newOptions[props[i]] = defaultOptions[props[i]];\n }\n }\n return newOptions;\n};\n\n/**\n * Check if a tag name should be treated as array\n *\n * @param tagName the node tagname\n * @param arrayMode the array mode option\n * @param parentTagName the parent tag name\n * @returns {boolean} true if node should be parsed as array\n */\nexports.isTagNameInArrayMode = function (tagName, arrayMode, parentTagName) {\n if (arrayMode === false) {\n return false;\n } else if (arrayMode instanceof RegExp) {\n return arrayMode.test(tagName);\n } else if (typeof arrayMode === 'function') {\n return !!arrayMode(tagName, parentTagName);\n }\n\n return arrayMode === \"strict\";\n}\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","function isEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (Array.isArray(a)) {\n // Special treatment for arrays: compare 1-level deep\n // This is to support equality of matrix/coordinate props\n const len = a.length;\n if (!b || b.length !== len) {\n return false;\n }\n\n for (let i = 0; i < len; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n\n/**\n * Speed up consecutive function calls by caching the result of calls with identical input\n * https://en.wikipedia.org/wiki/Memoization\n * @param {function} compute - the function to be memoized\n */\nexport default function memoize(compute) {\n let cachedArgs = {};\n let cachedResult;\n\n return args => {\n for (const key in args) {\n if (!isEqual(args[key], cachedArgs[key])) {\n cachedResult = compute(args);\n cachedArgs = args;\n break;\n }\n }\n return cachedResult;\n };\n}\n","import { deepmerge } from '@material-ui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","/* eslint-disable camelcase */\nimport {assert} from '../utils/assert';\n\nconst GL_BYTE = 0x1400;\nconst GL_UNSIGNED_BYTE = 0x1401;\nconst GL_SHORT = 0x1402;\nconst GL_UNSIGNED_SHORT = 0x1403;\n\nconst GL_POINTS = 0x0;\nconst GL_LINES = 0x1;\nconst GL_LINE_LOOP = 0x2;\nconst GL_LINE_STRIP = 0x3;\nconst GL_TRIANGLES = 0x4;\nconst GL_TRIANGLE_STRIP = 0x5;\nconst GL_TRIANGLE_FAN = 0x6;\n\n// Local constants - these will \"collapse\" during minification\nconst GL_FLOAT = 0x1406;\nconst GL_FLOAT_VEC2 = 0x8b50;\nconst GL_FLOAT_VEC3 = 0x8b51;\nconst GL_FLOAT_VEC4 = 0x8b52;\n\nconst GL_INT = 0x1404;\nconst GL_INT_VEC2 = 0x8b53;\nconst GL_INT_VEC3 = 0x8b54;\nconst GL_INT_VEC4 = 0x8b55;\n\nconst GL_UNSIGNED_INT = 0x1405;\nconst GL_UNSIGNED_INT_VEC2 = 0x8dc6;\nconst GL_UNSIGNED_INT_VEC3 = 0x8dc7;\nconst GL_UNSIGNED_INT_VEC4 = 0x8dc8;\n\nconst GL_BOOL = 0x8b56;\nconst GL_BOOL_VEC2 = 0x8b57;\nconst GL_BOOL_VEC3 = 0x8b58;\nconst GL_BOOL_VEC4 = 0x8b59;\n\nconst GL_FLOAT_MAT2 = 0x8b5a;\nconst GL_FLOAT_MAT3 = 0x8b5b;\nconst GL_FLOAT_MAT4 = 0x8b5c;\n\nconst GL_FLOAT_MAT2x3 = 0x8b65;\nconst GL_FLOAT_MAT2x4 = 0x8b66;\nconst GL_FLOAT_MAT3x2 = 0x8b67;\nconst GL_FLOAT_MAT3x4 = 0x8b68;\nconst GL_FLOAT_MAT4x2 = 0x8b69;\nconst GL_FLOAT_MAT4x3 = 0x8b6a;\n\n// Composite types table\nconst COMPOSITE_GL_TYPES = {\n [GL_FLOAT]: [GL_FLOAT, 1, 'float'],\n [GL_FLOAT_VEC2]: [GL_FLOAT, 2, 'vec2'],\n [GL_FLOAT_VEC3]: [GL_FLOAT, 3, 'vec3'],\n [GL_FLOAT_VEC4]: [GL_FLOAT, 4, 'vec4'],\n\n [GL_INT]: [GL_INT, 1, 'int'],\n [GL_INT_VEC2]: [GL_INT, 2, 'ivec2'],\n [GL_INT_VEC3]: [GL_INT, 3, 'ivec3'],\n [GL_INT_VEC4]: [GL_INT, 4, 'ivec4'],\n\n [GL_UNSIGNED_INT]: [GL_UNSIGNED_INT, 1, 'uint'],\n [GL_UNSIGNED_INT_VEC2]: [GL_UNSIGNED_INT, 2, 'uvec2'],\n [GL_UNSIGNED_INT_VEC3]: [GL_UNSIGNED_INT, 3, 'uvec3'],\n [GL_UNSIGNED_INT_VEC4]: [GL_UNSIGNED_INT, 4, 'uvec4'],\n\n [GL_BOOL]: [GL_FLOAT, 1, 'bool'],\n [GL_BOOL_VEC2]: [GL_FLOAT, 2, 'bvec2'],\n [GL_BOOL_VEC3]: [GL_FLOAT, 3, 'bvec3'],\n [GL_BOOL_VEC4]: [GL_FLOAT, 4, 'bvec4'],\n\n [GL_FLOAT_MAT2]: [GL_FLOAT, 8, 'mat2'], // 4\n [GL_FLOAT_MAT2x3]: [GL_FLOAT, 8, 'mat2x3'], // 6\n [GL_FLOAT_MAT2x4]: [GL_FLOAT, 8, 'mat2x4'], // 8\n\n [GL_FLOAT_MAT3]: [GL_FLOAT, 12, 'mat3'], // 9\n [GL_FLOAT_MAT3x2]: [GL_FLOAT, 12, 'mat3x2'], // 6\n [GL_FLOAT_MAT3x4]: [GL_FLOAT, 12, 'mat3x4'], // 12\n\n [GL_FLOAT_MAT4]: [GL_FLOAT, 16, 'mat4'], // 16\n [GL_FLOAT_MAT4x2]: [GL_FLOAT, 16, 'mat4x2'], // 8\n [GL_FLOAT_MAT4x3]: [GL_FLOAT, 16, 'mat4x3'] // 12\n};\n\n// Counts the number of complete primitives given a number of vertices and a drawMode\nexport function getPrimitiveDrawMode(drawMode) {\n switch (drawMode) {\n case GL_POINTS:\n return GL_POINTS;\n case GL_LINES:\n return GL_LINES;\n case GL_LINE_STRIP:\n return GL_LINES;\n case GL_LINE_LOOP:\n return GL_LINES;\n case GL_TRIANGLES:\n return GL_TRIANGLES;\n case GL_TRIANGLE_STRIP:\n return GL_TRIANGLES;\n case GL_TRIANGLE_FAN:\n return GL_TRIANGLES;\n default:\n assert(false);\n return 0;\n }\n}\n\n// Counts the number of complete \"primitives\" given a number of vertices and a drawMode\nexport function getPrimitiveCount({drawMode, vertexCount}) {\n switch (drawMode) {\n case GL_POINTS:\n case GL_LINE_LOOP:\n return vertexCount;\n case GL_LINES:\n return vertexCount / 2;\n case GL_LINE_STRIP:\n return vertexCount - 1;\n case GL_TRIANGLES:\n return vertexCount / 3;\n case GL_TRIANGLE_STRIP:\n case GL_TRIANGLE_FAN:\n return vertexCount - 2;\n default:\n assert(false);\n return 0;\n }\n}\n\n// Counts the number of vertices after splitting the vertex stream into separate \"primitives\"\nexport function getVertexCount({drawMode, vertexCount}) {\n const primitiveCount = getPrimitiveCount({drawMode, vertexCount});\n switch (getPrimitiveDrawMode(drawMode)) {\n case GL_POINTS:\n return primitiveCount;\n case GL_LINES:\n return primitiveCount * 2;\n case GL_TRIANGLES:\n return primitiveCount * 3;\n default:\n assert(false);\n return 0;\n }\n}\n\n// Decomposes a composite type GL.VEC3 into a basic type (GL.FLOAT) and components (3)\nexport function decomposeCompositeGLType(compositeGLType) {\n const typeAndSize = COMPOSITE_GL_TYPES[compositeGLType];\n if (!typeAndSize) {\n return null;\n }\n const [type, components] = typeAndSize;\n return {type, components};\n}\n\nexport function getCompositeGLType(type, components) {\n switch (type) {\n case GL_BYTE:\n case GL_UNSIGNED_BYTE:\n case GL_SHORT:\n case GL_UNSIGNED_SHORT:\n type = GL_FLOAT;\n break;\n default:\n }\n\n for (const glType in COMPOSITE_GL_TYPES) {\n const [compType, compComponents, name] = COMPOSITE_GL_TYPES[glType];\n if (compType === type && compComponents === components) {\n return {glType, name};\n }\n }\n return null;\n}\n","import type {Loader} from '@loaders.gl/loader-utils';\nimport {assert} from '@loaders.gl/loader-utils';\n\nexport function isLoaderObject(loader?: any): boolean {\n if (!loader) {\n return false;\n }\n\n if (Array.isArray(loader)) {\n loader = loader[0];\n }\n\n const hasExtensions = Array.isArray(loader?.extensions);\n\n /* Now handled by types and worker loaders do not have these\n let hasParser =\n loader.parseTextSync ||\n loader.parseSync ||\n loader.parse ||\n loader.parseStream || // TODO Remove, Replace with parseInBatches\n loader.parseInBatches;\n */\n\n return hasExtensions;\n}\n\nexport function normalizeLoader(loader: Loader): Loader {\n // This error is fairly easy to trigger by mixing up import statements etc\n // So we make an exception and add a developer error message for this case\n // To help new users from getting stuck here\n assert(loader, 'null loader');\n assert(isLoaderObject(loader), 'invalid loader');\n\n // NORMALIZE [LOADER, OPTIONS] => LOADER\n\n // If [loader, options], create a new loaders object with options merged in\n let options;\n if (Array.isArray(loader)) {\n options = loader[1];\n loader = loader[0];\n loader = {\n ...loader,\n options: {...loader.options, ...options}\n };\n }\n\n // NORMALIZE text and binary flags\n // Ensure at least one of text/binary flags are properly set\n\n // @ts-expect-error\n if (loader?.parseTextSync || loader?.parseText) {\n loader.text = true;\n }\n\n if (!loader.text) {\n loader.binary = true;\n }\n\n return loader;\n}\n","import { extend, error, isFunction, stringValue, toBoolean, toNumber, toDate, toString, identity, field, isObject, isArray, isIterable, hasOwnProperty } from 'vega-util';\nimport { dsvFormat } from 'd3-dsv';\nimport { feature, mesh } from 'topojson-client';\nimport { timeFormatDefaultLocale } from 'vega-format';\n\n// https://... file://... //...\n\nconst protocol_re = /^(data:|([A-Za-z]+:)?\\/\\/)/; // Matches allowed URIs. From https://github.com/cure53/DOMPurify/blob/master/src/regexp.js with added file://\n\nconst allowed_re = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i; // eslint-disable-line no-useless-escape\n\nconst whitespace_re = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g; // eslint-disable-line no-control-regex\n// Special treatment in node.js for the file: protocol\n\nconst fileProtocol = 'file://';\n/**\n * Factory for a loader constructor that provides methods for requesting\n * files from either the network or disk, and for sanitizing request URIs.\n * @param {function} fetch - The Fetch API for HTTP network requests.\n * If null or undefined, HTTP loading will be disabled.\n * @param {object} fs - The file system interface for file loading.\n * If null or undefined, local file loading will be disabled.\n * @return {function} A loader constructor with the following signature:\n * param {object} [options] - Optional default loading options to use.\n * return {object} - A new loader instance.\n */\n\nfunction loaderFactory (fetch, fs) {\n return options => ({\n options: options || {},\n sanitize: sanitize,\n load: load,\n fileAccess: !!fs,\n file: fileLoader(fs),\n http: httpLoader(fetch)\n });\n}\n/**\n * Load an external resource, typically either from the web or from the local\n * filesystem. This function uses {@link sanitize} to first sanitize the uri,\n * then calls either {@link http} (for web requests) or {@link file} (for\n * filesystem loading).\n * @param {string} uri - The resource indicator (e.g., URL or filename).\n * @param {object} [options] - Optional loading options. These options will\n * override any existing default options.\n * @return {Promise} - A promise that resolves to the loaded content.\n */\n\nasync function load(uri, options) {\n const opt = await this.sanitize(uri, options),\n url = opt.href;\n return opt.localFile ? this.file(url) : this.http(url, options);\n}\n/**\n * URI sanitizer function.\n * @param {string} uri - The uri (url or filename) to check.\n * @param {object} options - An options hash.\n * @return {Promise} - A promise that resolves to an object containing\n * sanitized uri data, or rejects it the input uri is deemed invalid.\n * The properties of the resolved object are assumed to be\n * valid attributes for an HTML 'a' tag. The sanitized uri *must* be\n * provided by the 'href' property of the returned object.\n */\n\n\nasync function sanitize(uri, options) {\n options = extend({}, this.options, options);\n const fileAccess = this.fileAccess,\n result = {\n href: null\n };\n let isFile, loadFile, base;\n const isAllowed = allowed_re.test(uri.replace(whitespace_re, ''));\n\n if (uri == null || typeof uri !== 'string' || !isAllowed) {\n error('Sanitize failure, invalid URI: ' + stringValue(uri));\n }\n\n const hasProtocol = protocol_re.test(uri); // if relative url (no protocol/host), prepend baseURL\n\n if ((base = options.baseURL) && !hasProtocol) {\n // Ensure that there is a slash between the baseURL (e.g. hostname) and url\n if (!uri.startsWith('/') && !base.endsWith('/')) {\n uri = '/' + uri;\n }\n\n uri = base + uri;\n } // should we load from file system?\n\n\n loadFile = (isFile = uri.startsWith(fileProtocol)) || options.mode === 'file' || options.mode !== 'http' && !hasProtocol && fileAccess;\n\n if (isFile) {\n // strip file protocol\n uri = uri.slice(fileProtocol.length);\n } else if (uri.startsWith('//')) {\n if (options.defaultProtocol === 'file') {\n // if is file, strip protocol and set loadFile flag\n uri = uri.slice(2);\n loadFile = true;\n } else {\n // if relative protocol (starts with '//'), prepend default protocol\n uri = (options.defaultProtocol || 'http') + ':' + uri;\n }\n } // set non-enumerable mode flag to indicate local file load\n\n\n Object.defineProperty(result, 'localFile', {\n value: !!loadFile\n }); // set uri\n\n result.href = uri; // set default result target, if specified\n\n if (options.target) {\n result.target = options.target + '';\n } // set default result rel, if specified (#1542)\n\n\n if (options.rel) {\n result.rel = options.rel + '';\n } // provide control over cross-origin image handling (#2238)\n // https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image\n\n\n if (options.context === 'image' && options.crossOrigin) {\n result.crossOrigin = options.crossOrigin + '';\n } // return\n\n\n return result;\n}\n/**\n * File system loader factory.\n * @param {object} fs - The file system interface.\n * @return {function} - A file loader with the following signature:\n * param {string} filename - The file system path to load.\n * param {string} filename - The file system path to load.\n * return {Promise} A promise that resolves to the file contents.\n */\n\n\nfunction fileLoader(fs) {\n return fs ? filename => new Promise((accept, reject) => {\n fs.readFile(filename, (error, data) => {\n if (error) reject(error);else accept(data);\n });\n }) : fileReject;\n}\n/**\n * Default file system loader that simply rejects.\n */\n\n\nasync function fileReject() {\n error('No file system access.');\n}\n/**\n * HTTP request handler factory.\n * @param {function} fetch - The Fetch API method.\n * @return {function} - An http loader with the following signature:\n * param {string} url - The url to request.\n * param {object} options - An options hash.\n * return {Promise} - A promise that resolves to the file contents.\n */\n\n\nfunction httpLoader(fetch) {\n return fetch ? async function (url, options) {\n const opt = extend({}, this.options.http, options),\n type = options && options.response,\n response = await fetch(url, opt);\n return !response.ok ? error(response.status + '' + response.statusText) : isFunction(response[type]) ? response[type]() : response.text();\n } : httpReject;\n}\n/**\n * Default http request handler that simply rejects.\n */\n\n\nasync function httpReject() {\n error('No HTTP fetch method available.');\n}\n\nconst isValid = _ => _ != null && _ === _;\n\nconst isBoolean = _ => _ === 'true' || _ === 'false' || _ === true || _ === false;\n\nconst isDate = _ => !Number.isNaN(Date.parse(_));\n\nconst isNumber = _ => !Number.isNaN(+_) && !(_ instanceof Date);\n\nconst isInteger = _ => isNumber(_) && Number.isInteger(+_);\n\nconst typeParsers = {\n boolean: toBoolean,\n integer: toNumber,\n number: toNumber,\n date: toDate,\n string: toString,\n unknown: identity\n};\nconst typeTests = [isBoolean, isInteger, isNumber, isDate];\nconst typeList = ['boolean', 'integer', 'number', 'date'];\nfunction inferType(values, field) {\n if (!values || !values.length) return 'unknown';\n const n = values.length,\n m = typeTests.length,\n a = typeTests.map((_, i) => i + 1);\n\n for (let i = 0, t = 0, j, value; i < n; ++i) {\n value = field ? values[i][field] : values[i];\n\n for (j = 0; j < m; ++j) {\n if (a[j] && isValid(value) && !typeTests[j](value)) {\n a[j] = 0;\n ++t;\n if (t === typeTests.length) return 'string';\n }\n }\n }\n\n return typeList[a.reduce((u, v) => u === 0 ? v : u, 0) - 1];\n}\nfunction inferTypes(data, fields) {\n return fields.reduce((types, field) => {\n types[field] = inferType(data, field);\n return types;\n }, {});\n}\n\nfunction delimitedFormat(delimiter) {\n const parse = function (data, format) {\n const delim = {\n delimiter: delimiter\n };\n return dsv(data, format ? extend(format, delim) : delim);\n };\n\n parse.responseType = 'text';\n return parse;\n}\nfunction dsv(data, format) {\n if (format.header) {\n data = format.header.map(stringValue).join(format.delimiter) + '\\n' + data;\n }\n\n return dsvFormat(format.delimiter).parse(data + '');\n}\ndsv.responseType = 'text';\n\nfunction isBuffer(_) {\n return typeof Buffer === 'function' && isFunction(Buffer.isBuffer) ? Buffer.isBuffer(_) : false;\n}\n\nfunction json(data, format) {\n const prop = format && format.property ? field(format.property) : identity;\n return isObject(data) && !isBuffer(data) ? parseJSON(prop(data), format) : prop(JSON.parse(data));\n}\njson.responseType = 'json';\n\nfunction parseJSON(data, format) {\n if (!isArray(data) && isIterable(data)) {\n data = [...data];\n }\n\n return format && format.copy ? JSON.parse(JSON.stringify(data)) : data;\n}\n\nconst filters = {\n interior: (a, b) => a !== b,\n exterior: (a, b) => a === b\n};\nfunction topojson(data, format) {\n let method, object, property, filter;\n data = json(data, format);\n\n if (format && format.feature) {\n method = feature;\n property = format.feature;\n } else if (format && format.mesh) {\n method = mesh;\n property = format.mesh;\n filter = filters[format.filter];\n } else {\n error('Missing TopoJSON feature or mesh parameter.');\n }\n\n object = (object = data.objects[property]) ? method(data, object, filter) : error('Invalid TopoJSON object: ' + property);\n return object && object.features || [object];\n}\ntopojson.responseType = 'json';\n\nconst format = {\n dsv: dsv,\n csv: delimitedFormat(','),\n tsv: delimitedFormat('\\t'),\n json: json,\n topojson: topojson\n};\nfunction formats(name, reader) {\n if (arguments.length > 1) {\n format[name] = reader;\n return this;\n } else {\n return hasOwnProperty(format, name) ? format[name] : null;\n }\n}\nfunction responseType(type) {\n const f = formats(type);\n return f && f.responseType || 'text';\n}\n\nfunction read (data, schema, timeParser, utcParser) {\n schema = schema || {};\n const reader = formats(schema.type || 'json');\n if (!reader) error('Unknown data format type: ' + schema.type);\n data = reader(data, schema);\n if (schema.parse) parse(data, schema.parse, timeParser, utcParser);\n if (hasOwnProperty(data, 'columns')) delete data.columns;\n return data;\n}\n\nfunction parse(data, types, timeParser, utcParser) {\n if (!data.length) return; // early exit for empty data\n\n const locale = timeFormatDefaultLocale();\n timeParser = timeParser || locale.timeParse;\n utcParser = utcParser || locale.utcParse;\n let fields = data.columns || Object.keys(data[0]),\n datum,\n field,\n i,\n j,\n n,\n m;\n if (types === 'auto') types = inferTypes(data, fields);\n fields = Object.keys(types);\n const parsers = fields.map(field => {\n const type = types[field];\n let parts, pattern;\n\n if (type && (type.startsWith('date:') || type.startsWith('utc:'))) {\n parts = type.split(/:(.+)?/, 2); // split on first :\n\n pattern = parts[1];\n\n if (pattern[0] === '\\'' && pattern[pattern.length - 1] === '\\'' || pattern[0] === '\"' && pattern[pattern.length - 1] === '\"') {\n pattern = pattern.slice(1, -1);\n }\n\n const parse = parts[0] === 'utc' ? utcParser : timeParser;\n return parse(pattern);\n }\n\n if (!typeParsers[type]) {\n throw Error('Illegal format pattern: ' + field + ':' + type);\n }\n\n return typeParsers[type];\n });\n\n for (i = 0, n = data.length, m = fields.length; i < n; ++i) {\n datum = data[i];\n\n for (j = 0; j < m; ++j) {\n field = fields[j];\n datum[field] = parsers[j](datum[field]);\n }\n }\n}\n\nconst loader = loaderFactory(typeof fetch !== 'undefined' && fetch, // use built-in fetch API\nnull // no file system access\n);\n\nexport { format, formats, inferType, inferTypes, loader, read, responseType, typeParsers };\n","import {resolvePath} from '@loaders.gl/loader-utils';\nimport {makeResponse} from '../utils/response-utils';\n// import {getErrorMessageFromResponse} from './fetch-error-message';\n\n/**\n * fetch compatible function\n * Reads file data from:\n * - http/http urls\n * - data urls\n * - File/Blob objects\n * Leverages `@loaders.gl/polyfills` for Node.js support\n * Respects pathPrefix and file aliases\n */\nexport async function fetchFile(\n url: string | Blob,\n options?: RequestInit & {fetch?: RequestInit | Function}\n): Promise<Response> {\n if (typeof url === 'string') {\n url = resolvePath(url);\n\n let fetchOptions: RequestInit = options as RequestInit;\n if (options?.fetch && typeof options?.fetch !== 'function') {\n fetchOptions = options.fetch;\n }\n\n return await fetch(url, fetchOptions);\n }\n\n return await makeResponse(url);\n}\n","// probe.gl Log compatible loggers\nimport {Log} from 'probe.gl';\n\nexport const probeLog = new Log({id: 'loaders.gl'});\n\n// Logs nothing\nexport class NullLog {\n log() {\n return () => {};\n }\n info() {\n return () => {};\n }\n warn() {\n return () => {};\n }\n error() {\n return () => {};\n }\n}\n\n// Logs to console\nexport class ConsoleLog {\n console;\n\n constructor() {\n this.console = console; // eslint-disable-line\n }\n log(...args) {\n return this.console.log.bind(this.console, ...args);\n }\n info(...args) {\n return this.console.info.bind(this.console, ...args);\n }\n warn(...args) {\n return this.console.warn.bind(this.console, ...args);\n }\n error(...args) {\n return this.console.error.bind(this.console, ...args);\n }\n}\n","import type {LoaderOptions} from '@loaders.gl/loader-utils';\nimport {ConsoleLog} from './loggers';\n\nexport const DEFAULT_LOADER_OPTIONS: LoaderOptions = {\n // baseUri\n fetch: null,\n mimeType: undefined,\n nothrow: false,\n log: new ConsoleLog(), // A probe.gl compatible (`log.log()()` syntax) that just logs to console\n\n CDN: 'https://unpkg.com/@loaders.gl',\n worker: true, // By default, use worker if provided by loader.\n maxConcurrency: 3, // How many worker instances should be created for each loader.\n maxMobileConcurrency: 1, // How many worker instances should be created for each loader on mobile devices.\n reuseWorkers: true, // By default reuse workers,\n _workerType: '', // 'test' to use locally generated workers\n\n limit: 0,\n _limitMB: 0,\n batchSize: 'auto',\n batchDebounceMs: 0,\n metadata: false, // TODO - currently only implemented for parseInBatches, adds initial metadata batch,\n transforms: []\n};\n\nexport const REMOVED_LOADER_OPTIONS = {\n throws: 'nothrow',\n dataType: '(no longer used)',\n uri: 'baseUri',\n // Warn if fetch options are used on top-level\n method: 'fetch.method',\n headers: 'fetch.headers',\n body: 'fetch.body',\n mode: 'fetch.mode',\n credentials: 'fetch.credentials',\n cache: 'fetch.cache',\n redirect: 'fetch.redirect',\n referrer: 'fetch.referrer',\n referrerPolicy: 'fetch.referrerPolicy',\n integrity: 'fetch.integrity',\n keepalive: 'fetch.keepalive',\n signal: 'fetch.signal'\n};\n","import type {Loader, LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {global} from '@loaders.gl/loader-utils';\nimport {isPureObject, isObject} from '../../javascript-utils/is-type';\nimport {fetchFile} from '../fetch/fetch-file';\nimport {probeLog, NullLog} from './loggers';\nimport {DEFAULT_LOADER_OPTIONS, REMOVED_LOADER_OPTIONS} from './option-defaults';\n/**\n * Global state for loaders.gl. Stored on `global.loaders._state`\n */\ntype GlobalLoaderState = {\n loaderRegistry: Loader[];\n globalOptions: {[key: string]: any};\n};\n\n/**\n * Helper for safely accessing global loaders.gl variables\n * Wraps initialization of global variable in function to defeat overly aggressive tree-shakers\n */\nexport function getGlobalLoaderState(): GlobalLoaderState {\n // @ts-ignore\n global.loaders = global.loaders || {};\n // @ts-ignore\n const {loaders} = global;\n\n // Add _state object to keep separate from modules added to global.loaders\n loaders._state = loaders._state || {};\n return loaders._state;\n}\n\n// Store global loader options on the global object to increase chances of cross loaders-version interoperability\n// NOTE: This use case is not reliable but can help when testing new versions of loaders.gl with existing frameworks\nconst getGlobalLoaderOptions = () => {\n const state = getGlobalLoaderState();\n // Ensure all default loader options from this library are mentioned\n state.globalOptions = state.globalOptions || {...DEFAULT_LOADER_OPTIONS};\n return state.globalOptions;\n};\n\n/**\n * Set global loader options\n * @param options\n */\nexport function setGlobalOptions(options: object): void {\n const state = getGlobalLoaderState();\n const globalOptions = getGlobalLoaderOptions();\n state.globalOptions = normalizeOptionsInternal(globalOptions, options);\n}\n\n/**\n * Merges options with global opts and loader defaults, also injects baseUri\n * @param options\n * @param loader\n * @param loaders\n * @param url\n */\nexport function normalizeOptions(\n options: object,\n loader: Loader,\n loaders?: Loader[],\n url?: string\n): object {\n loaders = loaders || [];\n loaders = Array.isArray(loaders) ? loaders : [loaders];\n\n validateOptions(options, loaders);\n return normalizeOptionsInternal(loader, options, url);\n}\n\n/**\n * Gets the current fetch function from options and context\n * @param options\n * @param context\n */\nexport function getFetchFunction(\n options?: LoaderOptions,\n context?: Omit<LoaderContext, 'fetch'> & Partial<Pick<LoaderContext, 'fetch'>>\n) {\n const globalOptions = getGlobalLoaderOptions();\n\n const fetchOptions = options || globalOptions;\n\n // options.fetch can be a function\n if (typeof fetchOptions.fetch === 'function') {\n return fetchOptions.fetch;\n }\n\n // options.fetch can be an options object\n if (isObject(fetchOptions.fetch)) {\n return (url) => fetchFile(url, fetchOptions);\n }\n\n // else refer to context (from parent loader) if available\n if (context?.fetch) {\n return context?.fetch;\n }\n\n // else return the default fetch function\n return fetchFile;\n}\n\n// VALIDATE OPTIONS\n\n/**\n * Warn for unsupported options\n * @param options\n * @param loaders\n */\nfunction validateOptions(options: LoaderOptions, loaders: Loader[]) {\n // Check top level options\n validateOptionsObject(options, null, DEFAULT_LOADER_OPTIONS, REMOVED_LOADER_OPTIONS, loaders);\n for (const loader of loaders) {\n // Get the scoped, loader specific options from the user supplied options\n const idOptions = (options && options[loader.id]) || {};\n\n // Get scoped, loader specific default and deprecated options from the selected loader\n const loaderOptions = (loader.options && loader.options[loader.id]) || {};\n const deprecatedOptions =\n (loader.deprecatedOptions && loader.deprecatedOptions[loader.id]) || {};\n\n // Validate loader specific options\n validateOptionsObject(idOptions, loader.id, loaderOptions, deprecatedOptions, loaders);\n }\n}\n\n// eslint-disable-next-line max-params, complexity\nfunction validateOptionsObject(\n options,\n id: string | null,\n defaultOptions,\n deprecatedOptions,\n loaders: Loader[]\n) {\n const loaderName = id || 'Top level';\n const prefix = id ? `${id}.` : '';\n\n for (const key in options) {\n // If top level option value is an object it could options for a loader, so ignore\n const isSubOptions = !id && isObject(options[key]);\n const isBaseUriOption = key === 'baseUri' && !id;\n const isWorkerUrlOption = key === 'workerUrl' && id;\n // <loader>.workerUrl requires special handling as it is now auto-generated and no longer specified as a default option.\n if (!(key in defaultOptions) && !isBaseUriOption && !isWorkerUrlOption) {\n // Issue deprecation warnings\n if (key in deprecatedOptions) {\n probeLog.warn(\n `${loaderName} loader option \\'${prefix}${key}\\' no longer supported, use \\'${deprecatedOptions[key]}\\'`\n )();\n } else if (!isSubOptions) {\n const suggestion = findSimilarOption(key, loaders);\n probeLog.warn(\n `${loaderName} loader option \\'${prefix}${key}\\' not recognized. ${suggestion}`\n )();\n }\n }\n }\n}\n\nfunction findSimilarOption(optionKey, loaders) {\n const lowerCaseOptionKey = optionKey.toLowerCase();\n let bestSuggestion = '';\n for (const loader of loaders) {\n for (const key in loader.options) {\n if (optionKey === key) {\n return `Did you mean \\'${loader.id}.${key}\\'?`;\n }\n const lowerCaseKey = key.toLowerCase();\n const isPartialMatch =\n lowerCaseOptionKey.startsWith(lowerCaseKey) || lowerCaseKey.startsWith(lowerCaseOptionKey);\n if (isPartialMatch) {\n bestSuggestion = bestSuggestion || `Did you mean \\'${loader.id}.${key}\\'?`;\n }\n }\n }\n return bestSuggestion;\n}\n\nfunction normalizeOptionsInternal(loader, options, url?: string) {\n const loaderDefaultOptions = loader.options || {};\n\n const mergedOptions = {...loaderDefaultOptions};\n\n addUrlOptions(mergedOptions, url);\n\n // LOGGING: options.log can be set to `null` to defeat logging\n if (mergedOptions.log === null) {\n mergedOptions.log = new NullLog();\n }\n\n mergeNestedFields(mergedOptions, getGlobalLoaderOptions());\n mergeNestedFields(mergedOptions, options);\n\n return mergedOptions;\n}\n\n// Merge nested options objects\nfunction mergeNestedFields(mergedOptions, options) {\n for (const key in options) {\n // Check for nested options\n // object in options => either no key in defaultOptions or object in defaultOptions\n if (key in options) {\n const value = options[key];\n if (isPureObject(value) && isPureObject(mergedOptions[key])) {\n mergedOptions[key] = {\n ...mergedOptions[key],\n ...options[key]\n };\n } else {\n mergedOptions[key] = options[key];\n }\n }\n // else: No need to merge nested opts, and the initial merge already copied over the nested options\n }\n}\n\n// Harvest information from the url\n// TODO - baseUri should be a directory, i.e. remove file component from baseUri\n// TODO - extract extension?\n// TODO - extract query parameters?\n// TODO - should these be injected on context instead of options?\nfunction addUrlOptions(options, url?: string) {\n if (url && !('baseUri' in options)) {\n options.baseUri = url;\n }\n}\n","/**\n * @module helpers\n */\n/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n *\n * @memberof helpers\n * @type {number}\n */\nexport var earthRadius = 6371008.8;\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var factors = {\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n degrees: earthRadius / 111325,\n feet: earthRadius * 3.28084,\n inches: earthRadius * 39.37,\n kilometers: earthRadius / 1000,\n kilometres: earthRadius / 1000,\n meters: earthRadius,\n metres: earthRadius,\n miles: earthRadius / 1609.344,\n millimeters: earthRadius * 1000,\n millimetres: earthRadius * 1000,\n nauticalmiles: earthRadius / 1852,\n radians: 1,\n yards: earthRadius * 1.0936,\n};\n/**\n * Units of measurement factors based on 1 meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var unitsFactors = {\n centimeters: 100,\n centimetres: 100,\n degrees: 1 / 111325,\n feet: 3.28084,\n inches: 39.37,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n meters: 1,\n metres: 1,\n miles: 1 / 1609.344,\n millimeters: 1000,\n millimetres: 1000,\n nauticalmiles: 1 / 1852,\n radians: 1 / earthRadius,\n yards: 1.0936133,\n};\n/**\n * Area of measurement factors based on 1 square meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var areaFactors = {\n acres: 0.000247105,\n centimeters: 10000,\n centimetres: 10000,\n feet: 10.763910417,\n hectares: 0.0001,\n inches: 1550.003100006,\n kilometers: 0.000001,\n kilometres: 0.000001,\n meters: 1,\n metres: 1,\n miles: 3.86e-7,\n millimeters: 1000000,\n millimetres: 1000000,\n yards: 1.195990046,\n};\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nexport function feature(geom, properties, options) {\n if (options === void 0) { options = {}; }\n var feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array<any>} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = \"Point\";\n * var coordinates = [110, 50];\n * var geometry = turf.geometry(type, coordinates);\n * // => geometry\n */\nexport function geometry(type, coordinates, _options) {\n if (_options === void 0) { _options = {}; }\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n}\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Point>} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nexport function point(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n var geom = {\n type: \"Point\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array<Array<number>>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Point>} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nexport function points(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Polygon>} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nexport function polygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {\n var ring = coordinates_1[_i];\n if (ring.length < 4) {\n throw new Error(\"Each LinearRing of a Polygon must have 4 or more Positions.\");\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n var geom = {\n type: \"Polygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Polygon>} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nexport function polygons(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<LineString>} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nexport function lineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n var geom = {\n type: \"LineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<LineString>} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nexport function lineStrings(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nexport function featureCollection(features, options) {\n if (options === void 0) { options = {}; }\n var fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\n/**\n * Creates a {@link Feature<MultiLineString>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array<Array<Array<number>>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiLineString>} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nexport function multiLineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiLineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<MultiPoint>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPoint>} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nexport function multiPoint(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPoint\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<MultiPolygon>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPolygon>} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nexport function multiPolygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPolygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<GeometryCollection>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array<Geometry>} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<GeometryCollection>} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = turf.geometry(\"Point\", [100, 0]);\n * var line = turf.geometry(\"LineString\", [[101, 0], [102, 1]]);\n * var collection = turf.geometryCollection([pt, line]);\n *\n * // => collection\n */\nexport function geometryCollection(geometries, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"GeometryCollection\",\n geometries: geometries,\n };\n return feature(geom, properties, options);\n}\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nexport function round(num, precision) {\n if (precision === void 0) { precision = 0; }\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} distance\n */\nexport function radiansToLength(radians, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} radians\n */\nexport function lengthToRadians(distance, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nexport function lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nexport function bearingToAzimuth(bearing) {\n var angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nexport function radiansToDegrees(radians) {\n var degrees = radians % (2 * Math.PI);\n return (degrees * 180) / Math.PI;\n}\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nexport function degreesToRadians(degrees) {\n var radians = degrees % 360;\n return (radians * Math.PI) / 180;\n}\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {Units} [originalUnit=\"kilometers\"] of the length\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted length\n */\nexport function convertLength(length, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"kilometers\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares\n * @param {number} area to be converted\n * @param {Units} [originalUnit=\"meters\"] of the distance\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted area\n */\nexport function convertArea(area, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"meters\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n var startFactor = areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n var finalFactor = areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return (area / startFactor) * finalFactor;\n}\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nexport function isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nexport function isObject(input) {\n return !!input && input.constructor === Object;\n}\n/**\n * Validate BBox\n *\n * @private\n * @param {Array<number>} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nexport function validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach(function (num) {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nexport function validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}\n","// https://en.wikipedia.org/wiki/Rhumb_line\nimport { convertLength, degreesToRadians, earthRadius, point, } from \"@turf/helpers\";\nimport { getCoord } from \"@turf/invariant\";\n/**\n * Returns the destination {@link Point} having travelled the given distance along a Rhumb line from the\n * origin Point with the (varant) given bearing.\n *\n * @name rhumbDestination\n * @param {Coord} origin starting point\n * @param {number} distance distance from the starting point\n * @param {number} bearing varant bearing angle ranging from -180 to 180 degrees from north\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units='kilometers'] can be degrees, radians, miles, or kilometers\n * @param {Object} [options.properties={}] translate properties to destination point\n * @returns {Feature<Point>} Destination point.\n * @example\n * var pt = turf.point([-75.343, 39.984], {\"marker-color\": \"F00\"});\n * var distance = 50;\n * var bearing = 90;\n * var options = {units: 'miles'};\n *\n * var destination = turf.rhumbDestination(pt, distance, bearing, options);\n *\n * //addToMap\n * var addToMap = [pt, destination]\n * destination.properties['marker-color'] = '#00F';\n */\nfunction rhumbDestination(origin, distance, bearing, options) {\n if (options === void 0) { options = {}; }\n var wasNegativeDistance = distance < 0;\n var distanceInMeters = convertLength(Math.abs(distance), options.units, \"meters\");\n if (wasNegativeDistance)\n distanceInMeters = -Math.abs(distanceInMeters);\n var coords = getCoord(origin);\n var destination = calculateRhumbDestination(coords, distanceInMeters, bearing);\n // compensate the crossing of the 180th meridian (https://macwright.org/2016/09/26/the-180th-meridian.html)\n // solution from https://github.com/mapbox/mapbox-gl-js/issues/3250#issuecomment-294887678\n destination[0] +=\n destination[0] - coords[0] > 180\n ? -360\n : coords[0] - destination[0] > 180\n ? 360\n : 0;\n return point(destination, options.properties);\n}\n/**\n * Returns the destination point having travelled along a rhumb line from origin point the given\n * distance on the given bearing.\n * Adapted from Geodesy: http://www.movable-type.co.uk/scripts/latlong.html#rhumblines\n *\n * @private\n * @param {Array<number>} origin - point\n * @param {number} distance - Distance travelled, in same units as earth radius (default: metres).\n * @param {number} bearing - Bearing in degrees from north.\n * @param {number} [radius=6371e3] - (Mean) radius of earth (defaults to radius in metres).\n * @returns {Array<number>} Destination point.\n */\nfunction calculateRhumbDestination(origin, distance, bearing, radius) {\n // φ => phi\n // λ => lambda\n // ψ => psi\n // Δ => Delta\n // δ => delta\n // θ => theta\n radius = radius === undefined ? earthRadius : Number(radius);\n var delta = distance / radius; // angular distance in radians\n var lambda1 = (origin[0] * Math.PI) / 180; // to radians, but without normalize to 𝜋\n var phi1 = degreesToRadians(origin[1]);\n var theta = degreesToRadians(bearing);\n var DeltaPhi = delta * Math.cos(theta);\n var phi2 = phi1 + DeltaPhi;\n // check for some daft bugger going past the pole, normalise latitude if so\n if (Math.abs(phi2) > Math.PI / 2) {\n phi2 = phi2 > 0 ? Math.PI - phi2 : -Math.PI - phi2;\n }\n var DeltaPsi = Math.log(Math.tan(phi2 / 2 + Math.PI / 4) / Math.tan(phi1 / 2 + Math.PI / 4));\n // E-W course becomes ill-conditioned with 0/0\n var q = Math.abs(DeltaPsi) > 10e-12 ? DeltaPhi / DeltaPsi : Math.cos(phi1);\n var DeltaLambda = (delta * Math.sin(theta)) / q;\n var lambda2 = lambda1 + DeltaLambda;\n return [\n (((lambda2 * 180) / Math.PI + 540) % 360) - 180,\n (phi2 * 180) / Math.PI,\n ]; // normalise to −180..+180°\n}\nexport default rhumbDestination;\n","import { isNumber, } from \"@turf/helpers\";\n/**\n * Unwrap a coordinate from a Point Feature, Geometry or a single coordinate.\n *\n * @name getCoord\n * @param {Array<number>|Geometry<Point>|Feature<Point>} coord GeoJSON Point or an Array of numbers\n * @returns {Array<number>} coordinates\n * @example\n * var pt = turf.point([10, 10]);\n *\n * var coord = turf.getCoord(pt);\n * //= [10, 10]\n */\nexport function getCoord(coord) {\n if (!coord) {\n throw new Error(\"coord is required\");\n }\n if (!Array.isArray(coord)) {\n if (coord.type === \"Feature\" &&\n coord.geometry !== null &&\n coord.geometry.type === \"Point\") {\n return coord.geometry.coordinates;\n }\n if (coord.type === \"Point\") {\n return coord.coordinates;\n }\n }\n if (Array.isArray(coord) &&\n coord.length >= 2 &&\n !Array.isArray(coord[0]) &&\n !Array.isArray(coord[1])) {\n return coord;\n }\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\n/**\n * Unwrap coordinates from a Feature, Geometry Object or an Array\n *\n * @name getCoords\n * @param {Array<any>|Geometry|Feature} coords Feature, Geometry Object or an Array\n * @returns {Array<any>} coordinates\n * @example\n * var poly = turf.polygon([[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]);\n *\n * var coords = turf.getCoords(poly);\n * //= [[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]\n */\nexport function getCoords(coords) {\n if (Array.isArray(coords)) {\n return coords;\n }\n // Feature\n if (coords.type === \"Feature\") {\n if (coords.geometry !== null) {\n return coords.geometry.coordinates;\n }\n }\n else {\n // Geometry\n if (coords.coordinates) {\n return coords.coordinates;\n }\n }\n throw new Error(\"coords must be GeoJSON Feature, Geometry Object or an Array\");\n}\n/**\n * Checks if coordinates contains a number\n *\n * @name containsNumber\n * @param {Array<any>} coordinates GeoJSON Coordinates\n * @returns {boolean} true if Array contains a number\n */\nexport function containsNumber(coordinates) {\n if (coordinates.length > 1 &&\n isNumber(coordinates[0]) &&\n isNumber(coordinates[1])) {\n return true;\n }\n if (Array.isArray(coordinates[0]) && coordinates[0].length) {\n return containsNumber(coordinates[0]);\n }\n throw new Error(\"coordinates must only contain numbers\");\n}\n/**\n * Enforce expectations about types of GeoJSON objects for Turf.\n *\n * @name geojsonType\n * @param {GeoJSON} value any GeoJSON object\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nexport function geojsonType(value, type, name) {\n if (!type || !name) {\n throw new Error(\"type and name required\");\n }\n if (!value || value.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n value.type);\n }\n}\n/**\n * Enforce expectations about types of {@link Feature} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name featureOf\n * @param {Feature} feature a feature with an expected geometry type\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} error if value is not the expected type.\n */\nexport function featureOf(feature, type, name) {\n if (!feature) {\n throw new Error(\"No feature passed\");\n }\n if (!name) {\n throw new Error(\".featureOf() requires a name\");\n }\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n}\n/**\n * Enforce expectations about types of {@link FeatureCollection} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name collectionOf\n * @param {FeatureCollection} featureCollection a FeatureCollection for which features will be judged\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nexport function collectionOf(featureCollection, type, name) {\n if (!featureCollection) {\n throw new Error(\"No featureCollection passed\");\n }\n if (!name) {\n throw new Error(\".collectionOf() requires a name\");\n }\n if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\n throw new Error(\"Invalid input to \" + name + \", FeatureCollection required\");\n }\n for (var _i = 0, _a = featureCollection.features; _i < _a.length; _i++) {\n var feature = _a[_i];\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n }\n}\n/**\n * Get Geometry from Feature or Geometry Object\n *\n * @param {Feature|Geometry} geojson GeoJSON Feature or Geometry Object\n * @returns {Geometry|null} GeoJSON Geometry Object\n * @throws {Error} if geojson is not a Feature or Geometry Object\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getGeom(point)\n * //={\"type\": \"Point\", \"coordinates\": [110, 40]}\n */\nexport function getGeom(geojson) {\n if (geojson.type === \"Feature\") {\n return geojson.geometry;\n }\n return geojson;\n}\n/**\n * Get GeoJSON object's type, Geometry type is prioritize.\n *\n * @param {GeoJSON} geojson GeoJSON object\n * @param {string} [name=\"geojson\"] name of the variable to display in error message (unused)\n * @returns {string} GeoJSON type\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getType(point)\n * //=\"Point\"\n */\nexport function getType(geojson, _name) {\n if (geojson.type === \"FeatureCollection\") {\n return \"FeatureCollection\";\n }\n if (geojson.type === \"GeometryCollection\") {\n return \"GeometryCollection\";\n }\n if (geojson.type === \"Feature\" && geojson.geometry !== null) {\n return geojson.geometry.type;\n }\n return geojson.type;\n}\n","import * as glMatrix from \"./common.js\";\n/**\r\n * 2 Dimensional Vector\r\n * @module vec2\r\n */\n\n/**\r\n * Creates a new, empty vec2\r\n *\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(2);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec2 initialized with values from an existing vector\r\n *\r\n * @param {ReadonlyVec2} a vector to clone\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\r\n * Creates a new vec2 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function fromValues(x, y) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\r\n * Copy the values from one vec2 to another\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the source vector\r\n * @returns {vec2} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\r\n * Set the components of a vec2 to the given values\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @returns {vec2} out\r\n */\n\nexport function set(out, x, y) {\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\r\n * Adds two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n return out;\n}\n/**\r\n * Multiplies two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n return out;\n}\n/**\r\n * Divides two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to ceil\r\n * @returns {vec2} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to floor\r\n * @returns {vec2} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n return out;\n}\n/**\r\n * Math.round the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to round\r\n * @returns {vec2} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n return out;\n}\n/**\r\n * Scales a vec2 by a scalar number\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec2} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n return out;\n}\n/**\r\n * Adds two vec2's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec2} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec2's\r\n *\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return Math.hypot(x, y);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec2's\r\n *\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return x * x + y * y;\n}\n/**\r\n * Calculates the length of a vec2\r\n *\r\n * @param {ReadonlyVec2} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0],\n y = a[1];\n return Math.hypot(x, y);\n}\n/**\r\n * Calculates the squared length of a vec2\r\n *\r\n * @param {ReadonlyVec2} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0],\n y = a[1];\n return x * x + y * y;\n}\n/**\r\n * Negates the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to negate\r\n * @returns {vec2} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to invert\r\n * @returns {vec2} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n return out;\n}\n/**\r\n * Normalize a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to normalize\r\n * @returns {vec2} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0],\n y = a[1];\n var len = x * x + y * y;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec2's\r\n *\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n}\n/**\r\n * Computes the cross product of two vec2's\r\n * Note that the cross product must by definition produce a 3D vector\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function cross(out, a, b) {\n var z = a[0] * b[1] - a[1] * b[0];\n out[0] = out[1] = 0;\n out[2] = z;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec2} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0],\n ay = a[1];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec2} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n out[0] = Math.cos(r) * scale;\n out[1] = Math.sin(r) * scale;\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat2} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat2(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat2d\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat2d} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat2d(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat3\r\n * 3rd vector component is implicitly '1'\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat3} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[3] * y + m[6];\n out[1] = m[1] * x + m[4] * y + m[7];\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat4\r\n * 3rd vector component is implicitly '0'\r\n * 4th vector component is implicitly '1'\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat4} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0];\n var y = a[1];\n out[0] = m[0] * x + m[4] * y + m[12];\n out[1] = m[1] * x + m[5] * y + m[13];\n return out;\n}\n/**\r\n * Rotate a 2D vector\r\n * @param {vec2} out The receiving vec2\r\n * @param {ReadonlyVec2} a The vec2 point to rotate\r\n * @param {ReadonlyVec2} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec2} out\r\n */\n\nexport function rotate(out, a, b, rad) {\n //Translate point to the origin\n var p0 = a[0] - b[0],\n p1 = a[1] - b[1],\n sinC = Math.sin(rad),\n cosC = Math.cos(rad); //perform rotation and translate to correct position\n\n out[0] = p0 * cosC - p1 * sinC + b[0];\n out[1] = p0 * sinC + p1 * cosC + b[1];\n return out;\n}\n/**\r\n * Get the angle between two 2D vectors\r\n * @param {ReadonlyVec2} a The first operand\r\n * @param {ReadonlyVec2} b The second operand\r\n * @returns {Number} The angle in radians\r\n */\n\nexport function angle(a, b) {\n var x1 = a[0],\n y1 = a[1],\n x2 = b[0],\n y2 = b[1],\n // mag is the product of the magnitudes of a and b\n mag = Math.sqrt(x1 * x1 + y1 * y1) * Math.sqrt(x2 * x2 + y2 * y2),\n // mag &&.. short circuits if mag == 0\n cosine = mag && (x1 * x2 + y1 * y2) / mag; // Math.min(Math.max(cosine, -1), 1) clamps the cosine between -1 and 1\n\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\r\n * Set the components of a vec2 to zero\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @returns {vec2} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {ReadonlyVec2} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec2(\" + a[0] + \", \" + a[1] + \")\";\n}\n/**\r\n * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyVec2} a The first vector.\r\n * @param {ReadonlyVec2} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyVec2} a The first vector.\r\n * @param {ReadonlyVec2} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1];\n var b0 = b[0],\n b1 = b[1];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1));\n}\n/**\r\n * Alias for {@link vec2.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec2.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec2.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec2.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec2.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec2.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec2.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec2s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 2;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n }\n\n return a;\n };\n}();","export class BaseResponse {\n /**\n * Returns whether the response has an ok'ish status code\n */\n get ok() {\n return this.status >= 200 && this.status <= 299;\n }\n\n /**\n * Returns the status code of the response\n */\n get status() {\n throw new Error('not implemented');\n }\n\n /**\n * Returns the value of the specified header\n * @param {string} headerName the header name\n * @returns {string} the header value\n */\n getHeader(headerName) {\n throw new Error('not implemented');\n }\n\n /**\n * @returns {ArrayBuffer} the response data of the request\n */\n async getData() {\n throw new Error('not implemented');\n }\n}\n\nexport class BaseClient {\n constructor(url) {\n this.url = url;\n }\n\n /**\n * Send a request with the options\n * @param {object} [options]\n */\n async request({ headers, credentials, signal } = {}) {\n throw new Error(`request is not implemented`);\n }\n}\n\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","import GL from '@luma.gl/constants';\nimport {isWebGL2} from '@luma.gl/gltools';\n\n// const S3TC = 'WEBGL_compressed_texture_s3tc';\n// const PVRTC = 'WEBGL_compressed_texture_pvrtc';\n// const ES3 = 'WEBGL_compressed_texture_es3';\n// const ETC1 = 'WEBGL_compressed_texture_etc1';\n// const SRGB = 'EXT_sRGB';\n// const DEPTH = 'WEBGL_depth_texture';\n\n// Legal combinations for internalFormat, format and type\nexport const TEXTURE_FORMATS = {\n // Unsized texture format - more performance\n [GL.RGB]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_6_5]},\n // TODO: format: GL.RGBA type: GL.FLOAT is supported in WebGL1 when 'OES_texure_float' is suported\n // we need to update this table structure to specify extensions (gl1: 'OES_texure_float', gl2: false) for each type.\n [GL.RGBA]: {\n dataFormat: GL.RGBA,\n types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_4_4_4_4, GL.UNSIGNED_SHORT_5_5_5_1]\n },\n [GL.ALPHA]: {dataFormat: GL.ALPHA, types: [GL.UNSIGNED_BYTE]},\n [GL.LUMINANCE]: {dataFormat: GL.LUMINANCE, types: [GL.UNSIGNED_BYTE]},\n [GL.LUMINANCE_ALPHA]: {dataFormat: GL.LUMINANCE_ALPHA, types: [GL.UNSIGNED_BYTE]},\n\n // 32 bit floats\n [GL.R32F]: {dataFormat: GL.RED, types: [GL.FLOAT], gl2: true},\n [GL.RG32F]: {dataFormat: GL.RG, types: [GL.FLOAT], gl2: true},\n [GL.RGB32F]: {dataFormat: GL.RGB, types: [GL.FLOAT], gl2: true},\n [GL.RGBA32F]: {dataFormat: GL.RGBA, types: [GL.FLOAT], gl2: true}\n\n // [GL.DEPTH_COMPONENT]: {types: [GL.UNSIGNED_SHORT, GL.UNSIGNED_INT, GL.UNSIGNED_INT_24_8], gl1: DEPTH},\n // [GL.DEPTH_STENCIL]: {gl1: DEPTH},\n\n // Sized texture format - more performance\n // R\n // [GL.R8]: {dataFormat: GL.RED, types: [GL.UNSIGNED_BYTE], gl2: true},\n // [GL.R16F]: {dataFormat: GL.RED, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.R8UI]: {dataFormat: GL.RED_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n // // RG\n // [GL.RG8]: {dataFormat: GL.RG, types: [GL.UNSIGNED_BYTE], gl2: true},\n // [GL.RG16F]: {dataFormat: GL.RG, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.RG8UI]: {dataFormat: GL.RG_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n // // RGB\n // [GL.RGB8]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.SRGB8]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.RGB565]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_6_5], gl2: true},\n // [GL.R11F_G11F_B10F]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_INT_10F_11F_11F_REV, GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.RGB9_E5]: {dataFormat: GL.RGB, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1: 'WEBGL_color_buffer_half_float'},\n // [GL.RGB16F]: {dataFormat: GL.RGB, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1: 'WEBGL_color_buffer_float'},\n // [GL.RGB8UI]: {dataFormat: GL.RGB_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n // // RGBA\n // [GL.RGBA8]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.SRGB8_ALPHA8]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.RGB5_A1]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_5_5_1], gl2: true},\n // [GL.RGBA4]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_4_4_4_4], gl2: true},\n // [GL.RGBA16F]: {dataFormat: GL.RGBA, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.RGBA8UI]: {dataFormat: GL.RGBA_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true}\n\n // Compressed formats\n\n // WEBGL_compressed_texture_s3tc\n\n // [GL.COMPRESSED_RGB_S3TC_DXT1_EXT]: {compressed: true, gl1: S3TC},\n // [GL.COMPRESSED_RGBA_S3TC_DXT1_EXT]: {compressed: true, gl1: S3TC},\n // [GL.COMPRESSED_RGBA_S3TC_DXT3_EXT]: {compressed: true, gl1: S3TC},\n // [GL.COMPRESSED_RGBA_S3TC_DXT5_EXT]: {compressed: true, gl1: S3TC},\n\n // WEBGL_compressed_texture_es3\n\n // [GL.COMPRESSED_R11_EAC]: {compressed: true, gl1: ES3}, // RED\n // [GL.COMPRESSED_SIGNED_R11_EAC]: {compressed: true, gl1: ES3}, // RED\n // [GL.COMPRESSED_RG11_EAC]: {compressed: true, gl1: ES3}, // RG\n // [GL.COMPRESSED_SIGNED_RG11_EAC]: {compressed: true, gl1: ES3}, // RG\n // [GL.COMPRESSED_RGB8_ETC2]: {compressed: true, gl1: ES3}, // RGB\n // [GL.COMPRESSED_RGBA8_ETC2_EAC]: {compressed: true, gl1: ES3}, // RBG\n // [GL.COMPRESSED_SRGB8_ETC2]: {compressed: true, gl1: ES3}, // RGB\n // [GL.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC]: {compressed: true, gl1: ES3}, // RGBA\n // [GL.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2]: {compressed: true, gl1: ES3}, // RGBA\n // [GL.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2]: {compressed: true, gl1: ES3}, // RGBA\n /* WebGL2 guaranteed availability compressed formats?\n COMPRESSED_R11_EAC RED\n COMPRESSED_SIGNED_R11_EAC RED\n COMPRESSED_RG11_EAC RG\n COMPRESSED_SIGNED_RG11_EAC RG\n COMPRESSED_RGB8_ETC2 RGB\n COMPRESSED_SRGB8_ETC2 RGB\n COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 RGBA\n COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 RGBA\n COMPRESSED_RGBA8_ETC2_EAC RGBA\n COMPRESSED_SRGB8_ALPHA8_ETC2_EAC\n */\n\n // WEBGL_compressed_texture_pvrtc\n\n // [GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n // [GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n // [GL.COMPRESSED_RGB_PVRTC_2BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n // [GL.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n\n // WEBGL_compressed_texture_etc1\n\n // [GL.COMPRESSED_RGB_ETC1_WEBGL]: {compressed: true, gl1: ETC1},\n\n // WEBGL_compressed_texture_atc\n\n // [GL.COMPRESSED_RGB_ATC_WEBGL]: {compressed: true, gl1: ETC1},\n // [GL.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL]: {compressed: true, gl1: ETC1},\n // [GL.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL]: {compressed: true, gl1: ETC1}\n};\n\nexport const DATA_FORMAT_CHANNELS = {\n [GL.RED]: 1,\n [GL.RED_INTEGER]: 1,\n [GL.RG]: 2,\n [GL.RG_INTEGER]: 2,\n [GL.RGB]: 3,\n [GL.RGB_INTEGER]: 3,\n [GL.RGBA]: 4,\n [GL.RGBA_INTEGER]: 4,\n [GL.DEPTH_COMPONENT]: 1,\n [GL.DEPTH_STENCIL]: 1,\n [GL.ALPHA]: 1,\n [GL.LUMINANCE]: 1,\n [GL.LUMINANCE_ALPHA]: 2\n};\n\nexport const TYPE_SIZES = {\n [GL.FLOAT]: 4,\n [GL.UNSIGNED_INT]: 4,\n [GL.INT]: 4,\n [GL.UNSIGNED_SHORT]: 2,\n [GL.SHORT]: 2,\n [GL.HALF_FLOAT]: 2,\n [GL.BYTE]: 1,\n [GL.UNSIGNED_BYTE]: 1\n};\n\nexport function isFormatSupported(gl, format) {\n const info = TEXTURE_FORMATS[format];\n if (!info) {\n return false;\n }\n if (info.gl1 === undefined && info.gl2 === undefined) {\n // No info - always supported\n return true;\n }\n const value = isWebGL2(gl) ? info.gl2 || info.gl1 : info.gl1;\n return typeof value === 'string' ? gl.getExtension(value) : value;\n}\n\nexport function isLinearFilteringSupported(gl, format) {\n const info = TEXTURE_FORMATS[format];\n switch (info && info.types[0]) {\n // Both WebGL1 and WebGL2?\n case GL.FLOAT:\n return gl.getExtension('OES_texture_float_linear');\n // Not in WebGL2?\n case GL.HALF_FLOAT:\n return gl.getExtension('OES_texture_half_float_linear');\n default:\n return true;\n }\n}\n","export { ArrowStyles, DEFAULT_ARROWS, MAX_ARROWS } from './style';\n\n// Layers\nexport { default as EditableGeoJsonLayer } from './layers/editable-geojson-layer';\nexport { default as EditableH3ClusterLayer } from './layers/editable-h3-cluster-layer';\nexport { default as SelectionLayer } from './layers/selection-layer';\nexport { default as ElevatedEditHandleLayer } from './layers/elevated-edit-handle-layer';\n\n// Layers moved from deck.gl\nexport { default as PathOutlineLayer } from './layers/path-outline-layer/path-outline-layer';\nexport { default as PathMarkerLayer } from './layers/path-marker-layer/path-marker-layer';\nexport { default as JunctionScatterplotLayer } from './layers/junction-scatterplot-layer';\n\n// Utils\nexport { toDeckColor } from './utils';\n\n// Types\nexport type { Color, Viewport } from './types';\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","import {TypedArray} from '../../types';\nimport * as node from './buffer-utils';\n\n/**\n * Convert an object to an array buffer\n */\nexport function toArrayBuffer(data: any): ArrayBuffer {\n // Note: Should be called first, Buffers can trigger other detections below\n if (node.isBuffer(data)) {\n // TODO - per docs we should just be able to call buffer.buffer, but there are issues\n data = node.bufferToArrayBuffer(data);\n }\n\n if (data instanceof ArrayBuffer) {\n return data;\n }\n\n // Careful - Node Buffers look like Uint8Arrays (keep after isBuffer)\n if (ArrayBuffer.isView(data)) {\n if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);\n }\n\n if (typeof data === 'string') {\n const text = data;\n const uint8Array = new TextEncoder().encode(text);\n return uint8Array.buffer;\n }\n\n // HACK to support Blob polyfill\n if (data && typeof data === 'object' && data._toArrayBuffer) {\n return data._toArrayBuffer();\n }\n\n throw new Error('toArrayBuffer');\n}\n\n/**\n * compare two binary arrays for equality\n * @param {ArrayBuffer} a\n * @param {ArrayBuffer} b\n * @param {number} byteLength\n */\nexport function compareArrayBuffers(\n arrayBuffer1: ArrayBuffer,\n arrayBuffer2: ArrayBuffer,\n byteLength?: number\n): boolean {\n byteLength = byteLength || arrayBuffer1.byteLength;\n if (arrayBuffer1.byteLength < byteLength || arrayBuffer2.byteLength < byteLength) {\n return false;\n }\n const array1 = new Uint8Array(arrayBuffer1);\n const array2 = new Uint8Array(arrayBuffer2);\n for (let i = 0; i < array1.length; ++i) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Concatenate a sequence of ArrayBuffers\n * @return A concatenated ArrayBuffer\n */\nexport function concatenateArrayBuffers(...sources: (ArrayBuffer | Uint8Array)[]): ArrayBuffer {\n // Make sure all inputs are wrapped in typed arrays\n const sourceArrays = sources.map((source2) =>\n source2 instanceof ArrayBuffer ? new Uint8Array(source2) : source2\n );\n\n // Get length of all inputs\n const byteLength = sourceArrays.reduce((length, typedArray) => length + typedArray.byteLength, 0);\n\n // Allocate array with space for all inputs\n const result = new Uint8Array(byteLength);\n\n // Copy the subarrays\n let offset = 0;\n for (const sourceArray of sourceArrays) {\n result.set(sourceArray, offset);\n offset += sourceArray.byteLength;\n }\n\n // We work with ArrayBuffers, discard the typed array wrapper\n return result.buffer;\n}\n\n/**\n * Concatenate arbitrary count of typed arrays\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays\n * @param {...*} arrays - list of arrays. All arrays should be the same type\n * @return A concatenated TypedArray\n */\nexport function concatenateTypedArrays<T>(...typedArrays: T[]): T {\n // @ts-ignore\n const arrays = typedArrays as TypedArray[];\n // @ts-ignore\n const TypedArrayConstructor = (arrays && arrays.length > 1 && arrays[0].constructor) || null;\n if (!TypedArrayConstructor) {\n throw new Error(\n '\"concatenateTypedArrays\" - incorrect quantity of arguments or arguments have incompatible data types'\n );\n }\n\n const sumLength = arrays.reduce((acc, value) => acc + value.length, 0);\n // @ts-ignore typescript does not like dynamic constructors\n const result = new TypedArrayConstructor(sumLength);\n let offset = 0;\n for (const array of arrays) {\n result.set(array, offset);\n offset += array.length;\n }\n return result;\n}\n\n/**\n * Copy a view of an ArrayBuffer into new ArrayBuffer with byteOffset = 0\n * @param arrayBuffer\n * @param byteOffset\n * @param byteLength\n */\nexport function sliceArrayBuffer(\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n byteLength?: number\n): ArrayBuffer {\n const subArray =\n byteLength !== undefined\n ? new Uint8Array(arrayBuffer).subarray(byteOffset, byteOffset + byteLength)\n : new Uint8Array(arrayBuffer).subarray(byteOffset);\n const arrayCopy = new Uint8Array(subArray);\n return arrayCopy.buffer;\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","// Provides a unified API for getting and setting any WebGL parameter\n// Also knows default values of all parameters, enabling fast cache initialization\n// Provides base functionality for the state caching.\nimport {\n GL_PARAMETER_DEFAULTS,\n GL_PARAMETER_SETTERS,\n GL_COMPOSITE_PARAMETER_SETTERS,\n GL_PARAMETER_GETTERS\n} from './webgl-parameter-tables';\n\nimport {pushContextState, popContextState} from './track-context-state';\nimport {assert} from '../utils/assert';\nimport {isWebGL} from '../utils/webgl-checks';\nimport {isObjectEmpty} from '../utils/utils';\n\n// Sets any GL parameter regardless of function (gl.blendMode, ...)\n// Note: requires a `cache` object to be set on the context (gl.state.cache)\n// This object is used to fill in any missing values for composite setter functions\nexport function setParameters(gl, values) {\n assert(isWebGL(gl), 'setParameters requires a WebGL context');\n\n if (isObjectEmpty(values)) {\n return;\n }\n\n const compositeSetters = {};\n\n // HANDLE PRIMITIVE SETTERS (and make note of any composite setters)\n\n for (const key in values) {\n const glConstant = Number(key);\n const setter = GL_PARAMETER_SETTERS[key];\n if (setter) {\n // Composite setters should only be called once, so save them\n if (typeof setter === 'string') {\n compositeSetters[setter] = true;\n } else {\n // if (gl[glConstant] !== undefined) {\n // TODO - added above check since this is being called on WebGL2 values in WebGL1...\n // TODO - deep equal on values? only call setter if value has changed?\n // NOTE - the setter will automatically update this.state\n setter(gl, values[key], glConstant);\n }\n }\n }\n\n // HANDLE COMPOSITE SETTERS\n\n // NOTE: any non-provided values needed by composite setters are filled in from state cache\n // The cache parameter is automatically retrieved from the context\n // This depends on `trackContextState`, which is technically a \"circular\" dependency.\n // But it is too inconvenient to always require a cache parameter here.\n // This is the ONLY external dependency in this module/\n const cache = gl.state && gl.state.cache;\n if (cache) {\n for (const key in compositeSetters) {\n // TODO - avoid calling composite setters if values have not changed.\n const compositeSetter = GL_COMPOSITE_PARAMETER_SETTERS[key];\n // Note - if `trackContextState` has been called,\n // the setter will automatically update this.state.cache\n compositeSetter(gl, values, cache);\n }\n }\n\n // Add a log for the else case?\n}\n\n// Copies the state from a context (gl.getParameter should not be overriden)\n// Reads the entire WebGL state from a context\n// Caveat: This generates a huge amount of synchronous driver roundtrips and should be\n// considered a very slow operation, to be used only if/when a context already manipulated\n// by external code needs to be synchronized for the first time\n// @return {Object} - a newly created map, with values keyed by GL parameters\nexport function getParameters(gl, parameters) {\n // default to querying all parameters\n parameters = parameters || GL_PARAMETER_DEFAULTS;\n // support both arrays of parameters and objects (keys represent parameters)\n\n if (typeof parameters === 'number') {\n // single GL enum\n const key = parameters;\n const getter = GL_PARAMETER_GETTERS[key];\n return getter ? getter(gl, key) : gl.getParameter(key);\n }\n\n const parameterKeys = Array.isArray(parameters) ? parameters : Object.keys(parameters);\n\n const state = {};\n for (const key of parameterKeys) {\n const getter = GL_PARAMETER_GETTERS[key];\n state[key] = getter ? getter(gl, Number(key)) : gl.getParameter(Number(key));\n }\n return state;\n}\n\n// Reset all parameters to a (almost) pure context state\n// NOTE: viewport and scissor will be set to the values in GL_PARAMETER_DEFAULTS,\n// NOT the canvas size dimensions, so they will have to be properly set after\n// calling this function.\nexport function resetParameters(gl) {\n setParameters(gl, GL_PARAMETER_DEFAULTS);\n}\n\n// Stores current \"global\" WebGL context settings, changes selected parameters,\n// executes function, restores parameters\nexport function withParameters(gl, parameters, func) {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(gl);\n }\n\n const {nocatch = true} = parameters;\n\n pushContextState(gl);\n setParameters(gl, parameters);\n\n // Setup is done, call the function\n let value;\n\n if (nocatch) {\n // Avoid try catch to minimize stack size impact for safe execution paths\n value = func(gl);\n popContextState(gl);\n } else {\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n try {\n value = func(gl);\n } finally {\n popContextState(gl);\n }\n }\n\n return value;\n}\n","// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport MathArray from './base/math-array';\nimport {clamp} from '../lib/common';\nimport {checkNumber} from '../lib/validators';\nimport Quaternion from './quaternion';\n\n// Internal constants\nconst ERR_UNKNOWN_ORDER = 'Unknown Euler angle order';\nconst ALMOST_ONE = 0.99999;\n\nfunction validateOrder(value) {\n return value >= 0 && value < 6;\n}\n\nfunction checkOrder(value) {\n if (value < 0 && value >= 6) {\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n return value;\n}\n\nexport default class Euler extends MathArray {\n // static XYZ = 0;\n // static YZX = 1;\n // static ZXY = 2;\n // static XZY = 3;\n // static YXZ = 4;\n // static ZYX = 5;\n // static RollPitchYaw = 0;\n // static DefaultOrder = 0;\n\n // Constants\n /* eslint-disable no-multi-spaces, brace-style, no-return-assign */\n static get ZYX() {\n return 0;\n }\n\n static get YXZ() {\n return 1;\n }\n\n static get XZY() {\n return 2;\n }\n\n static get ZXY() {\n return 3;\n }\n\n static get YZX() {\n return 4;\n }\n\n static get XYZ() {\n return 5;\n }\n\n static get RollPitchYaw() {\n return 0;\n }\n\n static get DefaultOrder() {\n return Euler.ZYX;\n }\n\n static get RotationOrders() {\n return ['ZYX', 'YXZ', 'XZY', 'ZXY', 'YZX', 'XYZ'];\n }\n\n static rotationOrder(order) {\n return Euler.RotationOrders[order];\n }\n\n get ELEMENTS() {\n return 4;\n }\n\n /* eslint-enable no-multi-spaces, brace-style, no-return-assign */\n\n /**\n * @class\n * @param {Number | Number[]} x\n * @param {Number=} [y]\n * @param {Number=} [z]\n * @param {Number=} [order]\n */\n constructor(x = 0, y = 0, z = 0, order = Euler.DefaultOrder) {\n // PERF NOTE: initialize elements as double precision numbers\n super(-0, -0, -0, -0);\n // eslint-disable-next-line prefer-rest-params\n if (arguments.length > 0 && Array.isArray(arguments[0])) {\n // eslint-disable-next-line prefer-rest-params\n this.fromVector3(...arguments);\n } else {\n // @ts-ignore error TS2345: Argument of type 'number | [number, number, number, number]' not assignable to 'number'\n this.set(x, y, z, order);\n }\n }\n\n fromQuaternion(quaternion) {\n const [x, y, z, w] = quaternion;\n const ysqr = y * y;\n const t0 = -2.0 * (ysqr + z * z) + 1.0;\n const t1 = +2.0 * (x * y + w * z);\n let t2 = -2.0 * (x * z - w * y);\n const t3 = +2.0 * (y * z + w * x);\n const t4 = -2.0 * (x * x + ysqr) + 1.0;\n\n t2 = t2 > 1.0 ? 1.0 : t2;\n t2 = t2 < -1.0 ? -1.0 : t2;\n\n const roll = Math.atan2(t3, t4);\n const pitch = Math.asin(t2);\n const yaw = Math.atan2(t1, t0);\n\n return new Euler(roll, pitch, yaw, Euler.RollPitchYaw);\n }\n\n // fromQuaternion(q, order) {\n // this._fromRotationMat[-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0];\n // return this.check();\n // }\n\n // If copied array does contain fourth element, preserves currently set order\n copy(array) {\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n this[3] = Number.isFinite(array[3]) || this.order;\n return this.check();\n }\n\n // Sets the three angles, and optionally sets the rotation order\n // If order is not specified, preserves currently set order\n set(x = 0, y = 0, z = 0, order) {\n this[0] = x;\n this[1] = y;\n this[2] = z;\n this[3] = Number.isFinite(order) ? order : this[3];\n return this.check();\n }\n\n validate() {\n return (\n validateOrder(this[3]) &&\n Number.isFinite(this[0]) &&\n Number.isFinite(this[1]) &&\n Number.isFinite(this[2])\n );\n }\n\n // Does not copy the orientation element\n toArray(array = [], offset = 0) {\n array[offset] = this[0];\n array[offset + 1] = this[1];\n array[offset + 2] = this[2];\n return array;\n }\n\n // Copies the orientation element\n toArray4(array = [], offset = 0) {\n array[offset] = this[0];\n array[offset + 1] = this[1];\n array[offset + 2] = this[2];\n array[offset + 3] = this[3];\n return array;\n }\n\n toVector3(result = [-0, -0, -0]) {\n result[0] = this[0];\n result[1] = this[1];\n result[2] = this[2];\n return result;\n }\n\n /* eslint-disable no-multi-spaces, brace-style, no-return-assign */\n\n // x, y, z angle notation (note: only corresponds to axis in XYZ orientation)\n /** @type {number} */\n get x() {\n return this[0];\n }\n\n set x(value) {\n this[0] = checkNumber(value);\n }\n\n /** @type {number} */\n get y() {\n return this[1];\n }\n\n set y(value) {\n this[1] = checkNumber(value);\n }\n\n /** @type {number} */\n get z() {\n return this[2];\n }\n\n set z(value) {\n this[2] = checkNumber(value);\n }\n\n // alpha, beta, gamma angle notation\n get alpha() {\n return this[0];\n }\n\n set alpha(value) {\n this[0] = checkNumber(value);\n }\n\n get beta() {\n return this[1];\n }\n\n set beta(value) {\n this[1] = checkNumber(value);\n }\n\n get gamma() {\n return this[2];\n }\n\n set gamma(value) {\n this[2] = checkNumber(value);\n }\n\n // phi, theta, psi angle notation\n get phi() {\n return this[0];\n }\n\n set phi(value) {\n this[0] = checkNumber(value);\n }\n\n get theta() {\n return this[1];\n }\n\n set theta(value) {\n this[1] = checkNumber(value);\n }\n\n get psi() {\n return this[2];\n }\n\n set psi(value) {\n this[2] = checkNumber(value);\n }\n\n // roll, pitch, yaw angle notation\n /** @type {number} */\n get roll() {\n return this[0];\n }\n\n set roll(value) {\n this[0] = checkNumber(value);\n }\n\n /** @type {number} */\n get pitch() {\n return this[1];\n }\n\n set pitch(value) {\n this[1] = checkNumber(value);\n }\n\n /** @type {number} */\n get yaw() {\n return this[2];\n }\n\n set yaw(value) {\n this[2] = checkNumber(value);\n }\n\n // rotation order, in all three angle notations\n get order() {\n return this[3];\n }\n\n set order(value) {\n this[3] = checkOrder(value);\n }\n\n /* eslint-disable no-multi-spaces, brace-style, no-return-assign */\n\n // Constructors\n fromVector3(v, order) {\n return this.set(v[0], v[1], v[2], Number.isFinite(order) ? order : this[3]);\n }\n\n // TODO - with and without 4th element\n fromArray(array, offset = 0) {\n this[0] = array[0 + offset];\n this[1] = array[1 + offset];\n this[2] = array[2 + offset];\n if (array[3] !== undefined) {\n this[3] = array[3];\n }\n return this.check();\n }\n\n // Common ZYX rotation order\n fromRollPitchYaw(roll, pitch, yaw) {\n return this.set(roll, pitch, yaw, Euler.ZYX);\n }\n\n fromRotationMatrix(m, order = Euler.DefaultOrder) {\n this._fromRotationMatrix(m, order);\n return this.check();\n }\n\n // ACCESSORS\n\n getRotationMatrix(m) {\n return this._getRotationMatrix(m);\n }\n\n // TODO - move to Quaternion\n getQuaternion() {\n const q = new Quaternion();\n switch (this[3]) {\n case Euler.XYZ:\n return q.rotateX(this[0]).rotateY(this[1]).rotateZ(this[2]);\n case Euler.YXZ:\n return q.rotateY(this[0]).rotateX(this[1]).rotateZ(this[2]);\n case Euler.ZXY:\n return q.rotateZ(this[0]).rotateX(this[1]).rotateY(this[2]);\n case Euler.ZYX:\n return q.rotateZ(this[0]).rotateY(this[1]).rotateX(this[2]);\n case Euler.YZX:\n return q.rotateY(this[0]).rotateZ(this[1]).rotateX(this[2]);\n case Euler.XZY:\n return q.rotateX(this[0]).rotateZ(this[1]).rotateY(this[2]);\n default:\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n }\n\n // INTERNAL METHODS\n\n // Concersion from Euler to rotation matrix and from matrix to Euler\n // Adapted from three.js under MIT license\n\n // // WARNING: this discards revolution information -bhouston\n // reorder(newOrder) {\n // const q = new Quaternion().setFromEuler(this);\n // return this.setFromQuaternion(q, newOrder);\n\n /* eslint-disable complexity, max-statements, one-var */\n _fromRotationMatrix(m, order = Euler.DefaultOrder) {\n // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n const te = m.elements;\n const m11 = te[0],\n m12 = te[4],\n m13 = te[8];\n const m21 = te[1],\n m22 = te[5],\n m23 = te[9];\n const m31 = te[2],\n m32 = te[6],\n m33 = te[10];\n\n order = order || this[3];\n\n switch (order) {\n case Euler.XYZ:\n this[1] = Math.asin(clamp(m13, -1, 1));\n\n if (Math.abs(m13) < ALMOST_ONE) {\n this[0] = Math.atan2(-m23, m33);\n this[2] = Math.atan2(-m12, m11);\n } else {\n this[0] = Math.atan2(m32, m22);\n this[2] = 0;\n }\n break;\n\n case Euler.YXZ:\n this[0] = Math.asin(-clamp(m23, -1, 1));\n\n if (Math.abs(m23) < ALMOST_ONE) {\n this[1] = Math.atan2(m13, m33);\n this[2] = Math.atan2(m21, m22);\n } else {\n this[1] = Math.atan2(-m31, m11);\n this[2] = 0;\n }\n break;\n\n case Euler.ZXY:\n this[0] = Math.asin(clamp(m32, -1, 1));\n\n if (Math.abs(m32) < ALMOST_ONE) {\n this[1] = Math.atan2(-m31, m33);\n this[2] = Math.atan2(-m12, m22);\n } else {\n this[1] = 0;\n this[2] = Math.atan2(m21, m11);\n }\n break;\n\n case Euler.ZYX:\n this[1] = Math.asin(-clamp(m31, -1, 1));\n\n if (Math.abs(m31) < ALMOST_ONE) {\n this[0] = Math.atan2(m32, m33);\n this[2] = Math.atan2(m21, m11);\n } else {\n this[0] = 0;\n this[2] = Math.atan2(-m12, m22);\n }\n break;\n\n case Euler.YZX:\n this[2] = Math.asin(clamp(m21, -1, 1));\n\n if (Math.abs(m21) < ALMOST_ONE) {\n this[0] = Math.atan2(-m23, m22);\n this[1] = Math.atan2(-m31, m11);\n } else {\n this[0] = 0;\n this[1] = Math.atan2(m13, m33);\n }\n break;\n\n case Euler.XZY:\n this[2] = Math.asin(-clamp(m12, -1, 1));\n\n if (Math.abs(m12) < ALMOST_ONE) {\n this[0] = Math.atan2(m32, m22);\n this[1] = Math.atan2(m13, m11);\n } else {\n this[0] = Math.atan2(-m23, m33);\n this[1] = 0;\n }\n break;\n\n default:\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n\n this[3] = order;\n\n return this;\n }\n\n _getRotationMatrix(result) {\n const te = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0];\n\n const x = this.x,\n y = this.y,\n z = this.z;\n const a = Math.cos(x);\n const c = Math.cos(y);\n const e = Math.cos(z);\n const b = Math.sin(x);\n const d = Math.sin(y);\n const f = Math.sin(z);\n\n switch (this[3]) {\n case Euler.XYZ: {\n const ae = a * e,\n af = a * f,\n be = b * e,\n bf = b * f;\n\n te[0] = c * e;\n te[4] = -c * f;\n te[8] = d;\n\n te[1] = af + be * d;\n te[5] = ae - bf * d;\n te[9] = -b * c;\n\n te[2] = bf - ae * d;\n te[6] = be + af * d;\n te[10] = a * c;\n break;\n }\n\n case Euler.YXZ: {\n const ce = c * e,\n cf = c * f,\n de = d * e,\n df = d * f;\n\n te[0] = ce + df * b;\n te[4] = de * b - cf;\n te[8] = a * d;\n\n te[1] = a * f;\n te[5] = a * e;\n te[9] = -b;\n\n te[2] = cf * b - de;\n te[6] = df + ce * b;\n te[10] = a * c;\n break;\n }\n\n case Euler.ZXY: {\n const ce = c * e,\n cf = c * f,\n de = d * e,\n df = d * f;\n\n te[0] = ce - df * b;\n te[4] = -a * f;\n te[8] = de + cf * b;\n\n te[1] = cf + de * b;\n te[5] = a * e;\n te[9] = df - ce * b;\n\n te[2] = -a * d;\n te[6] = b;\n te[10] = a * c;\n break;\n }\n\n case Euler.ZYX: {\n const ae = a * e,\n af = a * f,\n be = b * e,\n bf = b * f;\n\n te[0] = c * e;\n te[4] = be * d - af;\n te[8] = ae * d + bf;\n\n te[1] = c * f;\n te[5] = bf * d + ae;\n te[9] = af * d - be;\n\n te[2] = -d;\n te[6] = b * c;\n te[10] = a * c;\n break;\n }\n\n case Euler.YZX: {\n const ac = a * c,\n ad = a * d,\n bc = b * c,\n bd = b * d;\n\n te[0] = c * e;\n te[4] = bd - ac * f;\n te[8] = bc * f + ad;\n\n te[1] = f;\n te[5] = a * e;\n te[9] = -b * e;\n\n te[2] = -d * e;\n te[6] = ad * f + bc;\n te[10] = ac - bd * f;\n break;\n }\n\n case Euler.XZY: {\n const ac = a * c,\n ad = a * d,\n bc = b * c,\n bd = b * d;\n\n te[0] = c * e;\n te[4] = -f;\n te[8] = d * e;\n\n te[1] = ac * f + bd;\n te[5] = a * e;\n te[9] = ad * f - bc;\n\n te[2] = bc * f - ad;\n te[6] = b * e;\n te[10] = bd * f + ac;\n break;\n }\n\n default:\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n\n // last column\n te[3] = 0;\n te[7] = 0;\n te[11] = 0;\n\n // bottom row\n te[12] = 0;\n te[13] = 0;\n te[14] = 0;\n te[15] = 1;\n\n return te;\n }\n\n toQuaternion() {\n // Abbreviations for the various angular functions\n const cy = Math.cos(this.yaw * 0.5);\n const sy = Math.sin(this.yaw * 0.5);\n const cr = Math.cos(this.roll * 0.5);\n const sr = Math.sin(this.roll * 0.5);\n const cp = Math.cos(this.pitch * 0.5);\n const sp = Math.sin(this.pitch * 0.5);\n\n const w = cy * cr * cp + sy * sr * sp;\n const x = cy * sr * cp - sy * cr * sp;\n const y = cy * cr * sp + sy * sr * cp;\n const z = sy * cr * cp - cy * sr * sp;\n\n return new Quaternion(x, y, z, w);\n }\n}\n","export default class Effect {\n constructor(props = {}) {\n const {id = 'effect'} = props;\n this.id = id;\n this.props = {...props};\n }\n\n preRender() {}\n\n getModuleParameters() {}\n\n cleanup() {}\n}\n","import GL from '@luma.gl/constants';\nimport Pass from './pass';\nimport {clear, setParameters, withParameters, cssToDeviceRatio} from '@luma.gl/core';\n\nexport default class LayersPass extends Pass {\n render(props) {\n const gl = this.gl;\n\n setParameters(gl, {framebuffer: props.target});\n return this._drawLayers(props);\n }\n\n // PRIVATE\n // Draw a list of layers in a list of viewports\n _drawLayers(props) {\n const {viewports, views, onViewportActive, clearCanvas = true} = props;\n props.pass = props.pass || 'unknown';\n\n const gl = this.gl;\n if (clearCanvas) {\n clearGLCanvas(gl);\n }\n\n const renderStats = [];\n\n for (const viewportOrDescriptor of viewports) {\n // Get a viewport from a viewport descriptor (which can be a plain viewport)\n const viewport = viewportOrDescriptor.viewport || viewportOrDescriptor;\n const view = views && views[viewport.id];\n\n // Update context to point to this viewport\n onViewportActive(viewport);\n\n const drawLayerParams = this._getDrawLayerParams(viewport, props);\n\n props.view = view;\n\n // render this viewport\n const subViewports = viewport.subViewports || [viewport];\n for (const subViewport of subViewports) {\n props.viewport = subViewport;\n\n const stats = this._drawLayersInViewport(gl, props, drawLayerParams);\n renderStats.push(stats);\n }\n }\n return renderStats;\n }\n\n // Resolve the parameters needed to draw each layer\n // When a viewport contains multiple subviewports (e.g. repeated web mercator map),\n // this is only done once for the parent viewport\n _getDrawLayerParams(viewport, {layers, pass, layerFilter, effects, moduleParameters}) {\n const drawLayerParams = [];\n const indexResolver = layerIndexResolver();\n const drawContext = {\n viewport,\n isPicking: pass.startsWith('picking'),\n renderPass: pass\n };\n const layerFilterCache = {};\n for (let layerIndex = 0; layerIndex < layers.length; layerIndex++) {\n const layer = layers[layerIndex];\n // Check if we should draw layer\n const shouldDrawLayer = this._shouldDrawLayer(\n layer,\n drawContext,\n layerFilter,\n layerFilterCache\n );\n\n // This is the \"logical\" index for ordering this layer in the stack\n // used to calculate polygon offsets\n // It can be the same as another layer\n const layerRenderIndex = indexResolver(layer, shouldDrawLayer);\n\n const layerParam = {\n shouldDrawLayer,\n layerRenderIndex\n };\n\n if (shouldDrawLayer) {\n layerParam.moduleParameters = this._getModuleParameters(\n layer,\n effects,\n pass,\n moduleParameters\n );\n layerParam.layerParameters = this.getLayerParameters(layer, layerIndex, viewport);\n }\n drawLayerParams[layerIndex] = layerParam;\n }\n return drawLayerParams;\n }\n\n // Draws a list of layers in one viewport\n // TODO - when picking we could completely skip rendering viewports that dont\n // intersect with the picking rect\n /* eslint-disable max-depth, max-statements */\n _drawLayersInViewport(gl, {layers, pass, viewport, view}, drawLayerParams) {\n const glViewport = getGLViewport(gl, {viewport});\n\n if (view && view.props.clear) {\n const clearOpts = view.props.clear === true ? {color: true, depth: true} : view.props.clear;\n withParameters(\n gl,\n {\n scissorTest: true,\n scissor: glViewport\n },\n () => clear(gl, clearOpts)\n );\n }\n\n // render layers in normal colors\n const renderStatus = {\n totalCount: layers.length,\n visibleCount: 0,\n compositeCount: 0,\n pickableCount: 0\n };\n\n setParameters(gl, {viewport: glViewport});\n\n // render layers in normal colors\n for (let layerIndex = 0; layerIndex < layers.length; layerIndex++) {\n const layer = layers[layerIndex];\n const {\n shouldDrawLayer,\n layerRenderIndex,\n moduleParameters,\n layerParameters\n } = drawLayerParams[layerIndex];\n\n // Calculate stats\n if (shouldDrawLayer && layer.props.pickable) {\n renderStatus.pickableCount++;\n }\n if (layer.isComposite) {\n renderStatus.compositeCount++;\n } else if (shouldDrawLayer) {\n // Draw the layer\n renderStatus.visibleCount++;\n\n // overwrite layer.context.viewport with the sub viewport\n moduleParameters.viewport = viewport;\n\n try {\n layer.drawLayer({\n moduleParameters,\n uniforms: {layerIndex: layerRenderIndex},\n parameters: layerParameters\n });\n } catch (err) {\n layer.raiseError(err, `drawing ${layer} to ${pass}`);\n }\n }\n }\n\n return renderStatus;\n }\n /* eslint-enable max-depth, max-statements */\n\n /* Methods for subclass overrides */\n shouldDrawLayer(layer) {\n return true;\n }\n\n getModuleParameters(layer, effects) {\n return null;\n }\n\n getLayerParameters(layer, layerIndex) {\n return layer.props.parameters;\n }\n\n /* Private */\n _shouldDrawLayer(layer, drawContext, layerFilter, layerFilterCache) {\n const shouldDrawLayer = this.shouldDrawLayer(layer) && layer.props.visible;\n\n if (!shouldDrawLayer) {\n return false;\n }\n\n drawContext.layer = layer;\n\n let parent = layer.parent;\n while (parent) {\n if (!parent.props.visible || !parent.filterSubLayer(drawContext)) {\n return false;\n }\n drawContext.layer = parent;\n parent = parent.parent;\n }\n\n if (layerFilter) {\n const rootLayerId = drawContext.layer.id;\n if (!(rootLayerId in layerFilterCache)) {\n layerFilterCache[rootLayerId] = layerFilter(drawContext);\n }\n if (!layerFilterCache[rootLayerId]) {\n return false;\n }\n }\n\n // If a layer is drawn, update its viewportChanged flag\n layer.activateViewport(drawContext.viewport);\n\n return true;\n }\n\n _getModuleParameters(layer, effects, pass, overrides) {\n const moduleParameters = Object.assign(Object.create(layer.props), {\n autoWrapLongitude: layer.wrapLongitude,\n viewport: layer.context.viewport,\n mousePosition: layer.context.mousePosition,\n pickingActive: 0,\n devicePixelRatio: cssToDeviceRatio(this.gl)\n });\n\n if (effects) {\n for (const effect of effects) {\n Object.assign(moduleParameters, effect.getModuleParameters(layer));\n }\n }\n\n return Object.assign(moduleParameters, this.getModuleParameters(layer, effects), overrides);\n }\n}\n\n// If the _index prop is defined, return a layer index that's relative to its parent\n// Otherwise return the index of the layer among all rendered layers\n// This is done recursively, i.e. if the user overrides a layer's default index,\n// all its descendants will be resolved relative to that index.\n// This implementation assumes that parent layers always appear before its children\n// which is true if the layer array comes from the LayerManager\nexport function layerIndexResolver(startIndex = 0, layerIndices = {}) {\n const resolvers = {};\n\n const resolveLayerIndex = (layer, isDrawn) => {\n const indexOverride = layer.props._offset;\n const layerId = layer.id;\n const parentId = layer.parent && layer.parent.id;\n\n let index;\n\n if (parentId && !(parentId in layerIndices)) {\n // Populate layerIndices with the parent layer's index\n resolveLayerIndex(layer.parent, false);\n }\n\n if (parentId in resolvers) {\n const resolver = (resolvers[parentId] =\n resolvers[parentId] || layerIndexResolver(layerIndices[parentId], layerIndices));\n index = resolver(layer, isDrawn);\n resolvers[layerId] = resolver;\n } else if (Number.isFinite(indexOverride)) {\n index = indexOverride + (layerIndices[parentId] || 0);\n // Mark layer as needing its own resolver\n // We don't actually create it until it's used for the first time\n resolvers[layerId] = null;\n } else {\n index = startIndex;\n }\n\n if (isDrawn && index >= startIndex) {\n startIndex = index + 1;\n }\n\n layerIndices[layerId] = index;\n return index;\n };\n return resolveLayerIndex;\n}\n\n// Convert viewport top-left CSS coordinates to bottom up WebGL coordinates\nfunction getGLViewport(gl, {viewport}) {\n // TODO - dummy default for node\n // Fallback to width/height when clientWidth/clientHeight are 0 or undefined.\n const height = gl.canvas ? gl.canvas.clientHeight || gl.canvas.height : 100;\n // Convert viewport top-left CSS coordinates to bottom up WebGL coordinates\n const dimensions = viewport;\n const pixelRatio = cssToDeviceRatio(gl);\n return [\n dimensions.x * pixelRatio,\n (height - dimensions.y - dimensions.height) * pixelRatio,\n dimensions.width * pixelRatio,\n dimensions.height * pixelRatio\n ];\n}\n\nfunction clearGLCanvas(gl) {\n const width = gl.drawingBufferWidth;\n const height = gl.drawingBufferHeight;\n // clear depth and color buffers, restoring transparency\n setParameters(gl, {viewport: [0, 0, width, height]});\n gl.clear(GL.COLOR_BUFFER_BIT | GL.DEPTH_BUFFER_BIT);\n}\n","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n var type = node.type,\n tagName = node.tagName;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\n\n return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\n\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction isFocusVisible(event) {\n var target = event.target;\n\n try {\n return target.matches(':focus-visible');\n } catch (error) {} // browsers not implementing :focus-visible will throw a SyntaxError\n // we use our own heuristic for those browsers\n // rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n // no need for validFocusTarget check. the user does that by attaching it to\n // focusable events only\n\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\n\nfunction handleBlurVisible() {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n }, 100);\n}\n\nexport default function useIsFocusVisible() {\n var ref = React.useCallback(function (instance) {\n var node = ReactDOM.findDOMNode(instance);\n\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(isFocusVisible);\n }\n\n return {\n isFocusVisible: isFocusVisible,\n onBlurVisible: handleBlurVisible,\n ref: ref\n };\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import createTheme from './createTheme';\nvar defaultTheme = createTheme();\nexport default defaultTheme;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","/**\n * Returns a cloned copy of the passed GeoJSON Object, including possible 'Foreign Members'.\n * ~3-5x faster than the common JSON.parse + JSON.stringify combo method.\n *\n * @name clone\n * @param {GeoJSON} geojson GeoJSON Object\n * @returns {GeoJSON} cloned GeoJSON Object\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]], {color: 'red'});\n *\n * var lineCloned = turf.clone(line);\n */\nfunction clone(geojson) {\n if (!geojson) {\n throw new Error(\"geojson is required\");\n }\n switch (geojson.type) {\n case \"Feature\":\n return cloneFeature(geojson);\n case \"FeatureCollection\":\n return cloneFeatureCollection(geojson);\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n case \"MultiPoint\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n case \"GeometryCollection\":\n return cloneGeometry(geojson);\n default:\n throw new Error(\"unknown GeoJSON type\");\n }\n}\n/**\n * Clone Feature\n *\n * @private\n * @param {Feature<any>} geojson GeoJSON Feature\n * @returns {Feature<any>} cloned Feature\n */\nfunction cloneFeature(geojson) {\n var cloned = { type: \"Feature\" };\n // Preserve Foreign Members\n Object.keys(geojson).forEach(function (key) {\n switch (key) {\n case \"type\":\n case \"properties\":\n case \"geometry\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n // Add properties & geometry last\n cloned.properties = cloneProperties(geojson.properties);\n cloned.geometry = cloneGeometry(geojson.geometry);\n return cloned;\n}\n/**\n * Clone Properties\n *\n * @private\n * @param {Object} properties GeoJSON Properties\n * @returns {Object} cloned Properties\n */\nfunction cloneProperties(properties) {\n var cloned = {};\n if (!properties) {\n return cloned;\n }\n Object.keys(properties).forEach(function (key) {\n var value = properties[key];\n if (typeof value === \"object\") {\n if (value === null) {\n // handle null\n cloned[key] = null;\n }\n else if (Array.isArray(value)) {\n // handle Array\n cloned[key] = value.map(function (item) {\n return item;\n });\n }\n else {\n // handle generic Object\n cloned[key] = cloneProperties(value);\n }\n }\n else {\n cloned[key] = value;\n }\n });\n return cloned;\n}\n/**\n * Clone Feature Collection\n *\n * @private\n * @param {FeatureCollection<any>} geojson GeoJSON Feature Collection\n * @returns {FeatureCollection<any>} cloned Feature Collection\n */\nfunction cloneFeatureCollection(geojson) {\n var cloned = { type: \"FeatureCollection\" };\n // Preserve Foreign Members\n Object.keys(geojson).forEach(function (key) {\n switch (key) {\n case \"type\":\n case \"features\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n // Add features\n cloned.features = geojson.features.map(function (feature) {\n return cloneFeature(feature);\n });\n return cloned;\n}\n/**\n * Clone Geometry\n *\n * @private\n * @param {Geometry<any>} geometry GeoJSON Geometry\n * @returns {Geometry<any>} cloned Geometry\n */\nfunction cloneGeometry(geometry) {\n var geom = { type: geometry.type };\n if (geometry.bbox) {\n geom.bbox = geometry.bbox;\n }\n if (geometry.type === \"GeometryCollection\") {\n geom.geometries = geometry.geometries.map(function (g) {\n return cloneGeometry(g);\n });\n return geom;\n }\n geom.coordinates = deepSlice(geometry.coordinates);\n return geom;\n}\n/**\n * Deep Slice coordinates\n *\n * @private\n * @param {Coordinates} coords Coordinates\n * @returns {Coordinates} all coordinates sliced\n */\nfunction deepSlice(coords) {\n var cloned = coords;\n if (typeof cloned[0] !== \"object\") {\n return cloned.slice();\n }\n return cloned.map(function (coord) {\n return deepSlice(coord);\n });\n}\nexport default clone;\n","// TODO - build/integrate proper MIME type parsing\n// https://mimesniff.spec.whatwg.org/\n\nconst DATA_URL_PATTERN = /^data:([-\\w.]+\\/[-\\w.+]+)(;|,)/;\nconst MIME_TYPE_PATTERN = /^([-\\w.]+\\/[-\\w.+]+)/;\n\n/**\n * Remove extra data like `charset` from MIME types\n * @param mimeString\n * @returns A clean MIME type, or an empty string\n *\n * @todo - handle more advanced MIMETYpes, multiple types\n * @todo - extract charset etc\n */\nexport function parseMIMEType(mimeString: string): string {\n // If resource is a data url, extract any embedded mime type\n const matches = MIME_TYPE_PATTERN.exec(mimeString);\n if (matches) {\n return matches[1];\n }\n return mimeString;\n}\n\n/**\n * Extract MIME type from data URL\n *\n * @param mimeString\n * @returns A clean MIME type, or an empty string\n *\n * @todo - handle more advanced MIMETYpes, multiple types\n * @todo - extract charset etc\n */\nexport function parseMIMETypeFromURL(url: string): string {\n // If resource is a data URL, extract any embedded mime type\n const matches = DATA_URL_PATTERN.exec(url);\n if (matches) {\n return matches[1];\n }\n return '';\n}\n","import {isResponse, isBlob} from '../../javascript-utils/is-type';\nimport {parseMIMEType, parseMIMETypeFromURL} from './mime-type-utils';\n\nconst QUERY_STRING_PATTERN = /\\?.*/;\n\n/**\n * Returns an object with `url` and (MIME) `type` fields\n * If it cannot determine url or type, the corresponding value will be an empty string\n *\n * @param resource Any type, but only Responses, string URLs and data URLs are processed\n *\n * @todo string parameters are assumed to be URLs\n */\nexport function getResourceUrlAndType(resource: any): {url: string; type: string} {\n // If resource is a response, it contains the information directly\n if (isResponse(resource)) {\n const url = stripQueryString(resource.url || '');\n const contentTypeHeader = resource.headers.get('content-type') || '';\n return {\n url,\n type: parseMIMEType(contentTypeHeader) || parseMIMETypeFromURL(url)\n };\n }\n\n // If the resource is a Blob or a File (subclass of Blob)\n if (isBlob(resource)) {\n return {\n // File objects have a \"name\" property. Blob objects don't have any\n // url (name) information\n url: stripQueryString(resource.name || ''),\n type: resource.type || ''\n };\n }\n\n if (typeof resource === 'string') {\n return {\n // TODO this could mess up data URL but it doesn't matter as it is just used for inference\n url: stripQueryString(resource),\n // If a data url\n type: parseMIMETypeFromURL(resource)\n };\n }\n\n // Unknown\n return {\n url: '',\n type: ''\n };\n}\n\n/**\n * Returns (approximate) content length for a resource if it can be determined.\n * Returns -1 if content length cannot be determined.\n * @param resource\n\n * @note string parameters are NOT assumed to be URLs\n */\nexport function getResourceContentLength(resource: any): number {\n if (isResponse(resource)) {\n return resource.headers['content-length'] || -1;\n }\n if (isBlob(resource)) {\n return resource.size;\n }\n if (typeof resource === 'string') {\n // TODO - handle data URL?\n return resource.length;\n }\n if (resource instanceof ArrayBuffer) {\n return resource.byteLength;\n }\n if (ArrayBuffer.isView(resource)) {\n return resource.byteLength;\n }\n return -1;\n}\n\nfunction stripQueryString(url) {\n return url.replace(QUERY_STRING_PATTERN, '');\n}\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","import * as node from '../node/buffer';\n\n/**\n * Check for Node.js `Buffer` (without triggering bundler to include Buffer polyfill on browser)\n */\nexport function isBuffer(value: any): boolean {\n return value && typeof value === 'object' && value.isBuffer;\n}\n\n/**\n * Converts to Node.js `Buffer` (without triggering bundler to include Buffer polyfill on browser)\n * @todo better data type\n */\nexport function toBuffer(data: any): Buffer {\n return node.toBuffer ? node.toBuffer(data) : data;\n}\n\n/**\n * Converts Node.js `Buffer` to `ArrayBuffer` (without triggering bundler to include Buffer polyfill on browser)\n * @todo better data type\n */\nexport function bufferToArrayBuffer(data: any): ArrayBuffer {\n if (node.toArrayBuffer) {\n // TODO - per docs we should just be able to call buffer.buffer, but there are issues\n return node.toArrayBuffer(data);\n }\n return data;\n}\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import {Vector3} from 'math.gl';\n\nconst DEFAULT_LIGHT_COLOR = [255, 255, 255];\nconst DEFAULT_LIGHT_INTENSITY = 1.0;\nconst DEFAULT_LIGHT_DIRECTION = [0.0, 0.0, -1.0];\n\nlet idCount = 0;\n\nexport class DirectionalLight {\n constructor(props = {}) {\n const {color = DEFAULT_LIGHT_COLOR} = props;\n const {intensity = DEFAULT_LIGHT_INTENSITY} = props;\n const {direction = DEFAULT_LIGHT_DIRECTION} = props;\n const {_shadow = false} = props;\n\n this.id = props.id || `directional-${idCount++}`;\n this.color = color;\n this.intensity = intensity;\n this.type = 'directional';\n this.direction = new Vector3(direction).normalize().toArray();\n this.shadow = _shadow;\n }\n\n getProjectedLight() {\n return this;\n }\n}\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nconst vs = `\nstruct VertexGeometry {\n vec4 position;\n vec3 worldPosition;\n vec3 worldPositionAlt;\n vec3 normal;\n vec2 uv;\n vec3 pickingColor;\n} geometry = VertexGeometry(\n vec4(0.0),\n vec3(0.0),\n vec3(0.0),\n vec3(0.0),\n vec2(0.0),\n vec3(0.0)\n);\n`;\n\nconst fs = `\n#define SMOOTH_EDGE_RADIUS 0.5\n\nstruct FragmentGeometry {\n vec2 uv;\n} geometry;\n\nfloat smoothedge(float edge, float x) {\n return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x);\n}\n`;\n\nexport default {name: 'geometry', vs, fs};\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {COORDINATE_SYSTEM, PROJECTION_MODE, UNIT} from '../../lib/constants';\n\n// We are generating these from the js code in constants.js\nconst COORDINATE_SYSTEM_GLSL_CONSTANTS = Object.keys(COORDINATE_SYSTEM)\n .map(key => `const int COORDINATE_SYSTEM_${key} = ${COORDINATE_SYSTEM[key]};`)\n .join('');\nconst PROJECTION_MODE_GLSL_CONSTANTS = Object.keys(PROJECTION_MODE)\n .map(key => `const int PROJECTION_MODE_${key} = ${PROJECTION_MODE[key]};`)\n .join('');\nconst UNIT_GLSL_CONSTANTS = Object.keys(UNIT)\n .map(key => `const int UNIT_${key.toUpperCase()} = ${UNIT[key]};`)\n .join('');\n\nexport default `\\\n${COORDINATE_SYSTEM_GLSL_CONSTANTS}\n${PROJECTION_MODE_GLSL_CONSTANTS}\n${UNIT_GLSL_CONSTANTS}\n\nuniform int project_uCoordinateSystem;\nuniform int project_uProjectionMode;\nuniform float project_uScale;\nuniform bool project_uWrapLongitude;\nuniform vec3 project_uCommonUnitsPerMeter;\nuniform vec3 project_uCommonUnitsPerWorldUnit;\nuniform vec3 project_uCommonUnitsPerWorldUnit2;\nuniform vec4 project_uCenter;\nuniform mat4 project_uModelMatrix;\nuniform mat4 project_uViewProjectionMatrix;\nuniform vec2 project_uViewportSize;\nuniform float project_uDevicePixelRatio;\nuniform float project_uFocalDistance;\nuniform vec3 project_uCameraPosition;\nuniform vec3 project_uCoordinateOrigin;\nuniform vec3 project_uCommonOrigin;\nuniform bool project_uPseudoMeters;\n\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / (PI * 2.0);\nconst vec3 ZERO_64_LOW = vec3(0.0);\nconst float EARTH_RADIUS = 6370972.0; // meters\nconst float GLOBE_RADIUS = 256.0;\n\n// returns an adjustment factor for uCommonUnitsPerMeter\nfloat project_size() {\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR &&\n project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT &&\n project_uPseudoMeters == false) {\n\n // uCommonUnitsPerMeter in low-zoom Web Mercator is non-linear\n // Adjust by 1 / cos(latitude)\n // If geometry.position (vertex in common space) is populated, use it\n // Otherwise use geometry.worldPosition (anchor in world space)\n \n if (geometry.position.w == 0.0) {\n float y = clamp(geometry.worldPosition.y, -89.9, 89.9);\n return 1.0 / cos(radians(y));\n }\n\n // latitude from common y: 2.0 * (atan(exp(y / TILE_SIZE * 2.0 * PI - PI)) - PI / 4.0)\n // Taylor series of 1 / cos(latitude)\n // Max error < 0.003\n \n float y = geometry.position.y / TILE_SIZE * 2.0 - 1.0;\n float y2 = y * y;\n float y4 = y2 * y2;\n float y6 = y4 * y2;\n return 1.0 + 4.9348 * y2 + 4.0587 * y4 + 1.5642 * y6;\n }\n return 1.0;\n}\n//\n// Scaling offsets - scales meters to \"world distance\"\n// Note the scalar version of project_size is for scaling the z component only\n//\nfloat project_size(float meters) {\n return meters * project_uCommonUnitsPerMeter.z * project_size();\n}\n\nvec2 project_size(vec2 meters) {\n return meters * project_uCommonUnitsPerMeter.xy * project_size();\n}\n\nvec3 project_size(vec3 meters) {\n return meters * project_uCommonUnitsPerMeter * project_size();\n}\n\nvec4 project_size(vec4 meters) {\n return vec4(meters.xyz * project_uCommonUnitsPerMeter, meters.w);\n}\n\n//\n// Projecting normal - transform deltas from current coordinate system to\n// normals in the worldspace\n//\nvec3 project_normal(vec3 vector) {\n // Apply model matrix\n vec4 normal_modelspace = project_uModelMatrix * vec4(vector, 0.0);\n return normalize(normal_modelspace.xyz * project_uCommonUnitsPerMeter);\n}\n\nvec4 project_offset_(vec4 offset) {\n float dy = offset.y;\n vec3 commonUnitsPerWorldUnit = project_uCommonUnitsPerWorldUnit + project_uCommonUnitsPerWorldUnit2 * dy;\n return vec4(offset.xyz * commonUnitsPerWorldUnit, offset.w);\n}\n\n//\n// Projecting positions - non-linear projection: lnglats => unit tile [0-1, 0-1]\n//\nvec2 project_mercator_(vec2 lnglat) {\n float x = lnglat.x;\n if (project_uWrapLongitude) {\n x = mod(x + 180., 360.0) - 180.;\n }\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan_fp32(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\nvec3 project_globe_(vec3 lnglatz) {\n float lambda = radians(lnglatz.x);\n float phi = radians(lnglatz.y);\n float cosPhi = cos(phi);\n float D = (lnglatz.z / EARTH_RADIUS + 1.0) * GLOBE_RADIUS;\n\n return vec3(\n sin(lambda) * cosPhi,\n -cos(lambda) * cosPhi,\n sin(phi)\n ) * D;\n}\n\n//\n// Projects positions (defined by project_uCoordinateSystem) to common space (defined by project_uProjectionMode)\n//\nvec4 project_position(vec4 position, vec3 position64Low) {\n vec4 position_world = project_uModelMatrix * position;\n\n // Work around for a Mac+NVIDIA bug https://github.com/visgl/deck.gl/issues/4145\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4(\n project_mercator_(position_world.xy),\n project_size(position_world.z),\n position_world.w\n );\n }\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN) {\n position_world.xyz += project_uCoordinateOrigin;\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_GLOBE) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4(\n project_globe_(position_world.xyz),\n position_world.w\n );\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n if (abs(position_world.y - project_uCoordinateOrigin.y) > 0.25) {\n // Too far from the projection center for offset mode to be accurate\n // Only use high parts\n return vec4(\n project_mercator_(position_world.xy) - project_uCommonOrigin.xy,\n project_size(position_world.z),\n position_world.w\n );\n }\n }\n }\n if (project_uProjectionMode == PROJECTION_MODE_IDENTITY ||\n (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET &&\n (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN))) {\n // Subtract high part of 64 bit value. Convert remainder to float32, preserving precision.\n position_world.xyz -= project_uCoordinateOrigin;\n }\n\n // Translation is already added to the high parts\n return project_offset_(position_world + project_uModelMatrix * vec4(position64Low, 0.0));\n}\n\nvec4 project_position(vec4 position) {\n return project_position(position, ZERO_64_LOW);\n}\n\nvec3 project_position(vec3 position, vec3 position64Low) {\n vec4 projected_position = project_position(vec4(position, 1.0), position64Low);\n return projected_position.xyz;\n}\n\nvec3 project_position(vec3 position) {\n vec4 projected_position = project_position(vec4(position, 1.0), ZERO_64_LOW);\n return projected_position.xyz;\n}\n\nvec2 project_position(vec2 position) {\n vec4 projected_position = project_position(vec4(position, 0.0, 1.0), ZERO_64_LOW);\n return projected_position.xy;\n}\n\nvec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) {\n return viewProjectionMatrix * position + center;\n}\n\n//\n// Projects from common space coordinates to clip space.\n// Uses project_uViewProjectionMatrix\n//\nvec4 project_common_position_to_clipspace(vec4 position) {\n return project_common_position_to_clipspace(position, project_uViewProjectionMatrix, project_uCenter);\n}\n\n// Returns a clip space offset that corresponds to a given number of screen pixels\nvec2 project_pixel_size_to_clipspace(vec2 pixels) {\n vec2 offset = pixels / project_uViewportSize * project_uDevicePixelRatio * 2.0;\n return offset * project_uFocalDistance;\n}\n\nfloat project_size_to_pixel(float meters) {\n return project_size(meters) * project_uScale;\n}\nfloat project_size_to_pixel(float size, int unit) {\n if (unit == UNIT_METERS) return project_size_to_pixel(size);\n if (unit == UNIT_COMMON) return size * project_uScale;\n // UNIT_PIXELS\n return size;\n}\nfloat project_pixel_size(float pixels) {\n return pixels / project_uScale;\n}\nvec2 project_pixel_size(vec2 pixels) {\n return pixels / project_uScale;\n}\n\n// Get rotation matrix that aligns the z axis with the given up vector\n// Find 3 unit vectors ux, uy, uz that are perpendicular to each other and uz == up\nmat3 project_get_orientation_matrix(vec3 up) {\n vec3 uz = normalize(up);\n // Tangent on XY plane\n vec3 ux = abs(uz.z) == 1.0 ? vec3(1.0, 0.0, 0.0) : normalize(vec3(uz.y, -uz.x, 0));\n vec3 uy = cross(uz, ux);\n return mat3(ux, uy, uz);\n}\n\nbool project_needs_rotation(vec3 commonPosition, out mat3 transform) {\n if (project_uProjectionMode == PROJECTION_MODE_GLOBE) {\n transform = project_get_orientation_matrix(commonPosition);\n return true;\n }\n return false;\n}\n`;\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {fp32} from '@luma.gl/core';\nimport geometry from '../misc/geometry';\nimport projectShader from './project.glsl';\nimport {getUniformsFromViewport} from './viewport-uniforms';\n\nconst INITIAL_MODULE_OPTIONS = {};\n\nfunction getUniforms(opts = INITIAL_MODULE_OPTIONS) {\n if (opts.viewport) {\n return getUniformsFromViewport(opts);\n }\n return {};\n}\n\nexport default {\n name: 'project',\n dependencies: [fp32, geometry],\n vs: projectShader,\n getUniforms\n};\n","/* eslint-env browser */\nimport {log} from '@deck.gl/core';\n\nexport default class Tile2DHeader {\n constructor({x, y, z}) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.isVisible = false;\n this.isSelected = false;\n this.parent = null;\n this.children = [];\n\n this.content = null;\n\n this._loaderId = 0;\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n }\n\n get data() {\n return this.isLoading ? this._loader.then(() => this.data) : this.content;\n }\n\n get isLoaded() {\n return this._isLoaded && !this._needsReload;\n }\n\n get isLoading() {\n return Boolean(this._loader) && !this._isCancelled;\n }\n\n get needsReload() {\n return this._needsReload || this._isCancelled;\n }\n\n get byteLength() {\n const result = this.content ? this.content.byteLength : 0;\n if (!Number.isFinite(result)) {\n log.error('byteLength not defined in tile data')();\n }\n return result;\n }\n\n /* eslint-disable max-statements */\n async _loadData({getData, requestScheduler, onLoad, onError}) {\n const {x, y, z, bbox} = this;\n const loaderId = this._loaderId;\n\n this._abortController = new AbortController(); // eslint-disable-line no-undef\n const {signal} = this._abortController;\n\n const requestToken = await requestScheduler.scheduleRequest(this, tile => {\n return tile.isSelected ? 1 : -1;\n });\n\n if (!requestToken) {\n this._isCancelled = true;\n return;\n }\n // A tile can be cancelled while being scheduled\n if (this._isCancelled) {\n requestToken.done();\n return;\n }\n\n let tileData = null;\n let error;\n try {\n tileData = await getData({x, y, z, bbox, signal});\n } catch (err) {\n error = err || true;\n } finally {\n requestToken.done();\n }\n\n // If loadData has been called with a newer version, discard the result from this operation\n if (loaderId !== this._loaderId) {\n return;\n }\n // Clear the `isLoading` flag\n this._loader = undefined;\n // Rewrite tile content with the result of getTileData if successful, or `null` in case of\n // error or cancellation\n this.content = tileData;\n // If cancelled, do not invoke the callbacks\n // Consider it loaded if we tried to cancel but `getTileData` still returned data\n if (this._isCancelled && !tileData) {\n this._isLoaded = false;\n return;\n }\n this._isLoaded = true;\n this._isCancelled = false;\n\n if (error) {\n onError(error, this);\n } else {\n onLoad(this);\n }\n }\n /* eslint-enable max-statements */\n\n loadData(opts) {\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n this._loaderId++;\n this._loader = this._loadData(opts);\n return this._loader;\n }\n\n setNeedsReload() {\n if (this.isLoading) {\n this.abort();\n this._loader = undefined;\n }\n this._needsReload = true;\n }\n\n abort() {\n if (this.isLoaded) {\n return;\n }\n\n this._isCancelled = true;\n this._abortController.abort();\n }\n}\n","import Tile2DHeader from './tile-2d-header';\nimport {getTileIndices, tileToBoundingBox} from './utils';\nimport {RequestScheduler} from '@loaders.gl/loader-utils';\nimport {Matrix4} from 'math.gl';\n\nconst TILE_STATE_UNKNOWN = 0;\nconst TILE_STATE_VISIBLE = 1;\n/*\n show cached parent tile if children are loading\n +-----------+ +-----+ +-----+-----+\n | | | | | | |\n | | | | | | |\n | | --> +-----+-----+ -> +-----+-----+\n | | | | | | |\n | | | | | | |\n +-----------+ +-----+ +-----+-----+\n\n show cached children tiles when parent is loading\n +-------+---- +------------\n | | |\n | | |\n | | |\n +-------+---- --> |\n | | |\n */\nconst TILE_STATE_PLACEHOLDER = 3;\nconst TILE_STATE_HIDDEN = 4;\n// tiles that should be displayed in the current viewport\nconst TILE_STATE_SELECTED = 5;\n\nexport const STRATEGY_NEVER = 'never';\nexport const STRATEGY_REPLACE = 'no-overlap';\nexport const STRATEGY_DEFAULT = 'best-available';\n\nconst DEFAULT_CACHE_SCALE = 5;\n\n/**\n * Manages loading and purging of tiles data. This class caches recently visited tiles\n * and only create new tiles if they are present.\n */\n\nexport default class Tileset2D {\n /**\n * Takes in a function that returns tile data, a cache size, and a max and a min zoom level.\n * Cache size defaults to 5 * number of tiles in the current viewport\n */\n constructor(opts) {\n this.opts = opts;\n\n this.onTileLoad = tile => {\n this.opts.onTileLoad(tile);\n if (this.opts.maxCacheByteSize) {\n this._cacheByteSize += tile.byteLength;\n this._resizeCache();\n }\n };\n\n this._requestScheduler = new RequestScheduler({\n maxRequests: opts.maxRequests,\n throttleRequests: opts.maxRequests > 0\n });\n\n // Maps tile id in string {z}-{x}-{y} to a Tile object\n this._cache = new Map();\n this._tiles = [];\n this._dirty = false;\n this._cacheByteSize = 0;\n\n // Cache the last processed viewport\n this._viewport = null;\n this._selectedTiles = null;\n this._frameNumber = 0;\n\n this.setOptions(opts);\n }\n\n /* Public API */\n get tiles() {\n return this._tiles;\n }\n\n get selectedTiles() {\n return this._selectedTiles;\n }\n\n get isLoaded() {\n return this._selectedTiles.every(tile => tile.isLoaded);\n }\n\n setOptions(opts) {\n Object.assign(this.opts, opts);\n if (Number.isFinite(opts.maxZoom)) {\n this._maxZoom = Math.floor(opts.maxZoom);\n }\n if (Number.isFinite(opts.minZoom)) {\n this._minZoom = Math.ceil(opts.minZoom);\n }\n }\n\n // Clean up any outstanding tile requests.\n finalize() {\n for (const tile of this._cache.values()) {\n if (tile.isLoading) {\n tile.abort();\n }\n }\n this._cache.clear();\n this._tiles = [];\n this._selectedTiles = null;\n }\n\n reloadAll() {\n for (const tileId of this._cache.keys()) {\n const tile = this._cache.get(tileId);\n if (!this._selectedTiles.includes(tile)) {\n this._cache.delete(tileId);\n } else {\n tile.setNeedsReload();\n }\n }\n }\n\n /**\n * Update the cache with the given viewport and model matrix and triggers callback onUpdate.\n * @param {*} viewport\n * @param {*} onUpdate\n * @param {*} modelMatrix\n */\n update(viewport, {zRange, modelMatrix} = {}) {\n const modelMatrixAsMatrix4 = new Matrix4(modelMatrix);\n const isModelMatrixNew = !modelMatrixAsMatrix4.equals(this._modelMatrix);\n if (!viewport.equals(this._viewport) || isModelMatrixNew) {\n if (isModelMatrixNew) {\n this._modelMatrixInverse = modelMatrix && modelMatrixAsMatrix4.clone().invert();\n this._modelMatrix = modelMatrix && modelMatrixAsMatrix4;\n }\n this._viewport = viewport;\n const tileIndices = this.getTileIndices({\n viewport,\n maxZoom: this._maxZoom,\n minZoom: this._minZoom,\n zRange,\n modelMatrix: this._modelMatrix,\n modelMatrixInverse: this._modelMatrixInverse\n });\n this._selectedTiles = tileIndices.map(index => this._getTile(index, true));\n\n if (this._dirty) {\n // Some new tiles are added\n this._rebuildTree();\n }\n }\n\n // Update tile states\n const changed = this.updateTileStates();\n\n if (this._dirty) {\n // cache size is either the user defined maxSize or 5 * number of current tiles in the viewport.\n this._resizeCache();\n }\n\n if (changed) {\n this._frameNumber++;\n }\n\n return this._frameNumber;\n }\n\n /* Public interface for subclassing */\n\n // Returns array of {x, y, z}\n getTileIndices({viewport, maxZoom, minZoom, zRange, modelMatrix, modelMatrixInverse}) {\n const {tileSize, extent, zoomOffset} = this.opts;\n return getTileIndices({\n viewport,\n maxZoom,\n minZoom,\n zRange,\n tileSize,\n extent,\n modelMatrix,\n modelMatrixInverse,\n zoomOffset\n });\n }\n\n // Add custom metadata to tiles\n getTileMetadata({x, y, z}) {\n const {tileSize} = this.opts;\n return {bbox: tileToBoundingBox(this._viewport, x, y, z, tileSize)};\n }\n\n // Returns {x, y, z} of the parent tile\n getParentIndex(tileIndex) {\n // Perf: mutate the input object to avoid GC\n tileIndex.x = Math.floor(tileIndex.x / 2);\n tileIndex.y = Math.floor(tileIndex.y / 2);\n tileIndex.z -= 1;\n return tileIndex;\n }\n\n // Returns true if any tile's visibility changed\n updateTileStates() {\n this._updateTileStates(this.selectedTiles);\n\n const {maxRequests} = this.opts;\n\n const abortCandidates = [];\n let ongoingRequestCount = 0;\n let changed = false;\n for (const tile of this._cache.values()) {\n const isVisible = Boolean(tile.state & TILE_STATE_VISIBLE);\n if (tile.isVisible !== isVisible) {\n changed = true;\n tile.isVisible = isVisible;\n }\n\n // isSelected used in request scheduler\n tile.isSelected = tile.state === TILE_STATE_SELECTED;\n\n // Keep track of all the ongoing requests\n if (tile.isLoading) {\n ongoingRequestCount++;\n if (!tile.isSelected) {\n abortCandidates.push(tile);\n }\n }\n }\n\n if (maxRequests > 0) {\n while (ongoingRequestCount > maxRequests && abortCandidates.length > 0) {\n // There are too many ongoing requests, so abort some that are unselected\n const tile = abortCandidates.shift();\n tile.abort();\n ongoingRequestCount--;\n }\n }\n\n return changed;\n }\n\n /* Private methods */\n\n // This needs to be called every time some tiles have been added/removed from cache\n _rebuildTree() {\n const {_cache} = this;\n\n // Reset states\n for (const tile of _cache.values()) {\n tile.parent = null;\n tile.children.length = 0;\n }\n\n // Rebuild tree\n for (const tile of _cache.values()) {\n const parent = this._getNearestAncestor(tile.x, tile.y, tile.z);\n tile.parent = parent;\n if (parent) {\n parent.children.push(tile);\n }\n }\n }\n\n // A selected tile is always visible.\n // Never show two overlapping tiles.\n // If a selected tile is loading, try showing a cached ancester with the closest z\n // If a selected tile is loading, and no ancester is shown - try showing cached\n // descendants with the closest z\n _updateTileStates(selectedTiles) {\n const {_cache} = this;\n const refinementStrategy = this.opts.refinementStrategy || STRATEGY_DEFAULT;\n\n // Reset states\n for (const tile of _cache.values()) {\n tile.state = TILE_STATE_UNKNOWN;\n }\n\n // For all the selected && pending tiles:\n // - pick the closest ancestor as placeholder\n // - if no ancestor is visible, pick the closest children as placeholder\n for (const tile of selectedTiles) {\n tile.state = TILE_STATE_SELECTED;\n }\n\n if (refinementStrategy === STRATEGY_NEVER) {\n return;\n }\n for (const tile of selectedTiles) {\n getPlaceholderInAncestors(tile, refinementStrategy);\n }\n for (const tile of selectedTiles) {\n if (needsPlaceholder(tile)) {\n getPlaceholderInChildren(tile);\n }\n }\n }\n\n /**\n * Clear tiles that are not visible when the cache is full\n */\n /* eslint-disable complexity */\n _resizeCache() {\n const {_cache, opts} = this;\n\n const maxCacheSize =\n opts.maxCacheSize ||\n (opts.maxCacheByteSize ? Infinity : DEFAULT_CACHE_SCALE * this.selectedTiles.length);\n const maxCacheByteSize = opts.maxCacheByteSize || Infinity;\n\n const overflown = _cache.size > maxCacheSize || this._cacheByteSize > maxCacheByteSize;\n\n if (overflown) {\n for (const [tileId, tile] of _cache) {\n if (!tile.isVisible) {\n // delete tile\n this._cacheByteSize -= opts.maxCacheByteSize ? tile.byteLength : 0;\n _cache.delete(tileId);\n this.opts.onTileUnload(tile);\n }\n if (_cache.size <= maxCacheSize && this._cacheByteSize <= maxCacheByteSize) {\n break;\n }\n }\n this._rebuildTree();\n this._dirty = true;\n }\n if (this._dirty) {\n this._tiles = Array.from(this._cache.values())\n // sort by zoom level so that smaller tiles are displayed on top\n .sort((t1, t2) => t1.z - t2.z);\n\n this._dirty = false;\n }\n }\n /* eslint-enable complexity */\n\n _getTile({x, y, z}, create) {\n const tileId = `${x},${y},${z}`;\n let tile = this._cache.get(tileId);\n let needsReload = false;\n\n if (!tile && create) {\n tile = new Tile2DHeader({x, y, z});\n Object.assign(tile, this.getTileMetadata(tile));\n needsReload = true;\n this._cache.set(tileId, tile);\n this._dirty = true;\n } else if (tile && tile.needsReload) {\n needsReload = true;\n }\n if (needsReload) {\n tile.loadData({\n getData: this.opts.getTileData,\n requestScheduler: this._requestScheduler,\n onLoad: this.onTileLoad,\n onError: this.opts.onTileError\n });\n }\n\n return tile;\n }\n\n _getNearestAncestor(x, y, z) {\n const {_minZoom = 0} = this;\n let index = {x, y, z};\n\n while (index.z > _minZoom) {\n index = this.getParentIndex(index);\n const parent = this._getTile(index);\n if (parent) {\n return parent;\n }\n }\n return null;\n }\n}\n\n// A selected tile needs placeholder from its children if\n// - it is not loaded\n// - none of its ancestors is visible and loaded\nfunction needsPlaceholder(tile) {\n let t = tile;\n while (t) {\n if (t.state & (TILE_STATE_VISIBLE === 0)) {\n return true;\n }\n if (t.isLoaded) {\n return false;\n }\n t = t.parent;\n }\n return true;\n}\n\nfunction getPlaceholderInAncestors(tile, refinementStrategy) {\n let parent;\n let state = TILE_STATE_PLACEHOLDER;\n while ((parent = tile.parent)) {\n if (tile.isLoaded) {\n // If a tile is loaded, mark all its ancestors as hidden\n state = TILE_STATE_HIDDEN;\n if (refinementStrategy === STRATEGY_DEFAULT) {\n return;\n }\n }\n parent.state = Math.max(parent.state, state);\n tile = parent;\n }\n}\n\n// Recursively set children as placeholder\nfunction getPlaceholderInChildren(tile) {\n for (const child of tile.children) {\n child.state = Math.max(child.state, TILE_STATE_PLACEHOLDER);\n if (!child.isLoaded) {\n getPlaceholderInChildren(child);\n }\n }\n}\n","import {CompositeLayer, _flatten as flatten} from '@deck.gl/core';\nimport {GeoJsonLayer} from '@deck.gl/layers';\n\nimport Tileset2D, {STRATEGY_DEFAULT} from './tileset-2d';\nimport {urlType, getURLFromTemplate} from './utils';\n\nconst defaultProps = {\n data: [],\n dataComparator: urlType.equals,\n renderSubLayers: {type: 'function', value: props => new GeoJsonLayer(props), compare: false},\n getTileData: {type: 'function', optional: true, value: null, compare: false},\n // TODO - change to onViewportLoad to align with Tile3DLayer\n onViewportLoad: {type: 'function', optional: true, value: null, compare: false},\n onTileLoad: {type: 'function', value: tile => {}, compare: false},\n onTileUnload: {type: 'function', value: tile => {}, compare: false},\n // eslint-disable-next-line\n onTileError: {type: 'function', value: err => console.error(err), compare: false},\n extent: {type: 'array', optional: true, value: null, compare: true},\n tileSize: 512,\n maxZoom: null,\n minZoom: 0,\n maxCacheSize: null,\n maxCacheByteSize: null,\n refinementStrategy: STRATEGY_DEFAULT,\n zRange: null,\n maxRequests: 6,\n zoomOffset: 0\n};\n\nexport default class TileLayer extends CompositeLayer {\n initializeState() {\n this.state = {\n tileset: null,\n isLoaded: false\n };\n }\n\n finalizeState() {\n this.state.tileset?.finalize();\n }\n\n get isLoaded() {\n const {tileset} = this.state;\n return tileset.selectedTiles.every(\n tile => tile.isLoaded && tile.layers && tile.layers.every(layer => layer.isLoaded)\n );\n }\n\n shouldUpdateState({changeFlags}) {\n return changeFlags.somethingChanged;\n }\n\n updateState({props, changeFlags}) {\n let {tileset} = this.state;\n const propsChanged = changeFlags.propsOrDataChanged || changeFlags.updateTriggersChanged;\n const dataChanged =\n changeFlags.dataChanged ||\n (changeFlags.updateTriggersChanged &&\n (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getTileData));\n\n if (!tileset) {\n tileset = new Tileset2D(this._getTilesetOptions(props));\n this.setState({tileset});\n } else if (propsChanged) {\n tileset.setOptions(this._getTilesetOptions(props));\n\n if (dataChanged) {\n // reload all tiles\n // use cached layers until new content is loaded\n tileset.reloadAll();\n } else {\n // some render options changed, regenerate sub layers now\n this.state.tileset.tiles.forEach(tile => {\n tile.layers = null;\n });\n }\n }\n\n this._updateTileset();\n }\n\n _getTilesetOptions(props) {\n const {\n tileSize,\n maxCacheSize,\n maxCacheByteSize,\n refinementStrategy,\n extent,\n maxZoom,\n minZoom,\n maxRequests,\n zoomOffset\n } = props;\n\n return {\n maxCacheSize,\n maxCacheByteSize,\n maxZoom,\n minZoom,\n tileSize,\n refinementStrategy,\n extent,\n maxRequests,\n zoomOffset,\n\n getTileData: this.getTileData.bind(this),\n onTileLoad: this._onTileLoad.bind(this),\n onTileError: this._onTileError.bind(this),\n onTileUnload: this._onTileUnload.bind(this)\n };\n }\n\n _updateTileset() {\n const {tileset} = this.state;\n const {zRange, modelMatrix} = this.props;\n const frameNumber = tileset.update(this.context.viewport, {zRange, modelMatrix});\n const {isLoaded} = tileset;\n\n const loadingStateChanged = this.state.isLoaded !== isLoaded;\n const tilesetChanged = this.state.frameNumber !== frameNumber;\n\n if (isLoaded && (loadingStateChanged || tilesetChanged)) {\n this._onViewportLoad();\n }\n\n if (tilesetChanged) {\n // Save the tileset frame number - trigger a rerender\n this.setState({frameNumber});\n }\n // Save the loaded state - should not trigger a rerender\n this.state.isLoaded = isLoaded;\n }\n\n _onViewportLoad() {\n const {tileset} = this.state;\n const {onViewportLoad} = this.props;\n\n if (onViewportLoad) {\n onViewportLoad(tileset.selectedTiles);\n }\n }\n\n _onTileLoad(tile) {\n this.props.onTileLoad(tile);\n tile.layers = null;\n\n if (tile.isVisible) {\n this.setNeedsUpdate();\n }\n }\n\n _onTileError(error, tile) {\n this.props.onTileError(error);\n tile.layers = null;\n\n if (tile.isVisible) {\n this.setNeedsUpdate();\n }\n }\n\n _onTileUnload(tile) {\n this.props.onTileUnload(tile);\n }\n\n // Methods for subclass to override\n\n getTileData(tile) {\n const {data, getTileData, fetch} = this.props;\n const {signal} = tile;\n\n tile.url = getURLFromTemplate(data, tile);\n\n if (getTileData) {\n return getTileData(tile);\n }\n if (tile.url) {\n return fetch(tile.url, {propName: 'data', layer: this, signal});\n }\n return null;\n }\n\n renderSubLayers(props) {\n return this.props.renderSubLayers(props);\n }\n\n getHighlightedObjectIndex() {\n return -1;\n }\n\n getPickingInfo({info, sourceLayer}) {\n info.tile = sourceLayer.props.tile;\n return info;\n }\n\n _updateAutoHighlight(info) {\n if (info.sourceLayer) {\n info.sourceLayer.updateAutoHighlight(info);\n }\n }\n\n renderLayers() {\n return this.state.tileset.tiles.map(tile => {\n const highlightedObjectIndex = this.getHighlightedObjectIndex(tile);\n // cache the rendered layer in the tile\n if (!tile.isLoaded && !tile.content) {\n // nothing to show\n } else if (!tile.layers) {\n const layers = this.renderSubLayers({\n ...this.props,\n id: `${this.id}-${tile.x}-${tile.y}-${tile.z}`,\n data: tile.content,\n _offset: 0,\n tile\n });\n tile.layers = flatten(layers, Boolean).map(layer =>\n layer.clone({\n tile,\n highlightedObjectIndex\n })\n );\n } else if (\n tile.layers[0] &&\n tile.layers[0].props.highlightedObjectIndex !== highlightedObjectIndex\n ) {\n tile.layers = tile.layers.map(layer => layer.clone({highlightedObjectIndex}));\n }\n return tile.layers;\n });\n }\n\n filterSubLayer({layer}) {\n return layer.props.tile.isVisible;\n }\n}\n\nTileLayer.layerName = 'TileLayer';\nTileLayer.defaultProps = defaultProps;\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport var easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport var duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};","export default function _asyncIterator(iterable) {\n var method;\n\n if (typeof Symbol !== \"undefined\") {\n if (Symbol.asyncIterator) {\n method = iterable[Symbol.asyncIterator];\n if (method != null) return method.call(iterable);\n }\n\n if (Symbol.iterator) {\n method = iterable[Symbol.iterator];\n if (method != null) return method.call(iterable);\n }\n }\n\n throw new TypeError(\"Object is not async iterable\");\n}","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var ret = [];\n React.Children.forEach(children, function (child) {\n if (child === undefined || child === null) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar FormControlContext = React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\n\nexport function useFormControl() {\n return React.useContext(FormControlContext);\n}\nexport default FormControlContext;","// Supports determination of isControlled().\n// Controlled input accepts its current value as a prop.\n//\n// @see https://facebook.github.io/react/docs/forms.html#controlled-components\n// @param value\n// @returns {boolean} true if string (including '') or number (including zero)\nexport function hasValue(value) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n} // Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\n\nexport function isFilled(obj) {\n var SSR = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');\n} // Determine if an Input is adorned on start.\n// It's corresponding to the left with LTR.\n//\n// @param obj\n// @returns {boolean} False when no adornments.\n// True when adorned at the start.\n\nexport function isAdornedStart(obj) {\n return obj.startAdornment;\n}","import {assert} from '../utils/assert';\n\nlet pathPrefix = '';\n\n/*\n * Set a relative path prefix\n */\nexport function setPathPrefix(prefix) {\n pathPrefix = prefix;\n}\n\n// Reads raw file data from:\nexport function loadFile(url, options = {}) {\n assert(typeof url === 'string');\n url = pathPrefix + url;\n const dataType = options.dataType || 'text';\n return fetch(url, options).then(res => res[dataType]());\n}\n\n/*\n * Loads images asynchronously\n * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'\n * returns a promise tracking the load\n */\nexport function loadImage(url, opts) {\n assert(typeof url === 'string');\n url = pathPrefix + url;\n return new Promise((resolve, reject) => {\n try {\n const image = new Image();\n image.onload = () => resolve(image);\n image.onerror = () => reject(new Error(`Could not load image ${url}.`));\n image.crossOrigin = (opts && opts.crossOrigin) || 'anonymous';\n image.src = url;\n } catch (error) {\n reject(error);\n }\n });\n}\n","import GL from '@luma.gl/constants';\nimport {assertWebGLContext} from '@luma.gl/gltools';\nimport Texture from './texture';\nimport {loadImage} from '../utils/load-file';\n\nexport default class Texture2D extends Texture {\n static isSupported(gl, opts) {\n return Texture.isSupported(gl, opts);\n }\n\n constructor(gl, props = {}) {\n assertWebGLContext(gl);\n\n // Signature: new Texture2D(gl, url | Promise)\n if (props instanceof Promise || typeof props === 'string') {\n props = {data: props};\n }\n\n // Signature: new Texture2D(gl, {data: url})\n if (typeof props.data === 'string') {\n props = Object.assign({}, props, {data: loadImage(props.data)});\n }\n\n super(gl, Object.assign({}, props, {target: GL.TEXTURE_2D}));\n\n this.initialize(props);\n\n Object.seal(this);\n }\n}\n","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","import {isResponse} from '../../javascript-utils/is-type';\nimport {getResourceContentLength, getResourceUrlAndType} from './resource-utils';\n\n/**\n * Returns a Response object\n * Adds content-length header when possible\n *\n * @param resource\n */\nexport async function makeResponse(resource: any): Promise<Response> {\n if (isResponse(resource)) {\n return resource;\n }\n\n // Add content-length header if possible\n const headers: {[header: string]: string} = {};\n\n const contentLength = getResourceContentLength(resource);\n if (contentLength >= 0) {\n headers['content-length'] = String(contentLength);\n }\n\n // `new Response(File)` does not preserve content-type and URL\n // so we add them here\n const {url, type} = getResourceUrlAndType(resource);\n if (type) {\n headers['content-type'] = type;\n }\n\n // Add a custom header with initial bytes if available\n const initialDataUrl = await getInitialDataUrl(resource);\n if (initialDataUrl) {\n headers['x-first-bytes'] = initialDataUrl;\n }\n\n // TODO - is this the best way of handling strings?\n // Maybe package as data URL instead?\n if (typeof resource === 'string') {\n // Convert to ArrayBuffer to avoid Response treating it as a URL\n resource = new TextEncoder().encode(resource);\n }\n\n // Attempt to create a Response from the resource, adding headers and setting url\n const response = new Response(resource, {headers});\n // We can't control `Response.url` via constructor, use a property override to record URL.\n Object.defineProperty(response, 'url', {value: url});\n return response;\n}\n\n/**\n * Checks response status (async) and throws a helpful error message if status is not OK.\n * @param response\n */\nexport async function checkResponse(response: Response): Promise<void> {\n if (!response.ok) {\n const message = await getResponseError(response);\n throw new Error(message);\n }\n}\n\n/**\n * Checks response status (sync) and throws a helpful error message if status is not OK.\n * @param response\n */\nexport function checkResponseSync(response: Response): void {\n if (!response.ok) {\n let message = `${response.status} ${response.statusText}`;\n message = message.length > 60 ? `${message.slice(60)}...` : message;\n throw new Error(message);\n }\n}\n\n// HELPERS\n\nasync function getResponseError(response): Promise<string> {\n let message = `Failed to fetch resource ${response.url} (${response.status}): `;\n try {\n const contentType = response.headers.get('Content-Type');\n let text = response.statusText;\n if (contentType.includes('application/json')) {\n text += ` ${await response.text()}`;\n }\n message += text;\n message = message.length > 60 ? `${message.slice(60)}...` : message;\n } catch (error) {\n // eslint forbids return in a finally statement, so we just catch here\n }\n return message;\n}\n\nasync function getInitialDataUrl(resource): Promise<string | null> {\n const INITIAL_DATA_LENGTH = 5;\n if (typeof resource === 'string') {\n return `data:,${resource.slice(0, INITIAL_DATA_LENGTH)}`;\n }\n if (resource instanceof Blob) {\n const blobSlice = resource.slice(0, 5);\n return await new Promise((resolve) => {\n const reader = new FileReader();\n reader.onload = (event) => resolve(event?.target?.result as string);\n reader.readAsDataURL(blobSlice);\n });\n }\n if (resource instanceof ArrayBuffer) {\n const slice = resource.slice(0, INITIAL_DATA_LENGTH);\n const base64 = arrayBufferToBase64(slice);\n return `data:base64,${base64}`;\n }\n return null;\n}\n\n// https://stackoverflow.com/questions/9267899/arraybuffer-to-base64-encoded-string\nfunction arrayBufferToBase64(buffer) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n}\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","import GL from '@luma.gl/constants';\n\n// Define local extension strings to optimize minification\n// const SRGB = 'EXT_sRGB';\n// const EXT_FLOAT_WEBGL1 = 'WEBGL_color_buffer_float';\nconst EXT_FLOAT_WEBGL2 = 'EXT_color_buffer_float';\n// const EXT_HALF_FLOAT_WEBGL1 = 'EXT_color_buffer_half_float';\n\n// NOTE(Tarek): bpp === \"bytes per pixel\", used for\n// memory usage calculations.\nexport default {\n [GL.DEPTH_COMPONENT16]: {bpp: 2}, // 16 depth bits.\n [GL.DEPTH_COMPONENT24]: {gl2: true, bpp: 3},\n [GL.DEPTH_COMPONENT32F]: {gl2: true, bpp: 4},\n\n [GL.STENCIL_INDEX8]: {bpp: 1}, // 8 stencil bits.\n\n [GL.DEPTH_STENCIL]: {bpp: 4},\n [GL.DEPTH24_STENCIL8]: {gl2: true, bpp: 4},\n [GL.DEPTH32F_STENCIL8]: {gl2: true, bpp: 5},\n\n // When using a WebGL 1 context, color renderbuffer formats are limited\n [GL.RGBA4]: {bpp: 2},\n [GL.RGB565]: {bpp: 2},\n [GL.RGB5_A1]: {bpp: 2},\n\n // When using a WebGL 2 context, the following values are available additionally:\n [GL.R8]: {gl2: true, bpp: 1},\n [GL.R8UI]: {gl2: true, bpp: 1},\n [GL.R8I]: {gl2: true, bpp: 1},\n [GL.R16UI]: {gl2: true, bpp: 2},\n [GL.R16I]: {gl2: true, bpp: 2},\n [GL.R32UI]: {gl2: true, bpp: 4},\n [GL.R32I]: {gl2: true, bpp: 4},\n [GL.RG8]: {gl2: true, bpp: 2},\n [GL.RG8UI]: {gl2: true, bpp: 2},\n [GL.RG8I]: {gl2: true, bpp: 2},\n [GL.RG16UI]: {gl2: true, bpp: 4},\n [GL.RG16I]: {gl2: true, bpp: 4},\n [GL.RG32UI]: {gl2: true, bpp: 8},\n [GL.RG32I]: {gl2: true, bpp: 8},\n [GL.RGB8]: {gl2: true, bpp: 3},\n [GL.RGBA8]: {gl2: true, bpp: 4},\n // [GL.SRGB8_ALPHA8]: {gl2: true, gl1: SRGB}, // When using the EXT_sRGB WebGL1 extension\n [GL.RGB10_A2]: {gl2: true, bpp: 4},\n [GL.RGBA8UI]: {gl2: true, bpp: 4},\n [GL.RGBA8I]: {gl2: true, bpp: 4},\n [GL.RGB10_A2UI]: {gl2: true, bpp: 4},\n [GL.RGBA16UI]: {gl2: true, bpp: 8},\n [GL.RGBA16I]: {gl2: true, bpp: 8},\n [GL.RGBA32I]: {gl2: true, bpp: 16},\n [GL.RGBA32UI]: {gl2: true, bpp: 16},\n\n // When using a WebGL 2 context and the EXT_color_buffer_float WebGL2 extension\n [GL.R16F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 2},\n [GL.RG16F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RGBA16F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 8},\n [GL.R32F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RG32F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 8},\n // TODO - can't get WEBGL_color_buffer_float to work on renderbuffers\n [GL.RGBA32F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 16},\n // [GL.RGBA32F]: {gl2: EXT_FLOAT_WEBGL2, gl1: EXT_FLOAT_WEBGL1},\n [GL.R11F_G11F_B10F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 4}\n};\n","/* eslint-disable no-inline-comments */\nimport GL from '@luma.gl/constants';\nimport Resource from './resource';\nimport RENDERBUFFER_FORMATS from './renderbuffer-formats';\nimport {isWebGL2} from '@luma.gl/gltools';\nimport {assert} from '../utils/assert';\n\nfunction isFormatSupported(gl, format, formats) {\n const info = formats[format];\n if (!info) {\n return false;\n }\n const value = isWebGL2(gl) ? info.gl2 || info.gl1 : info.gl1;\n if (typeof value === 'string') {\n return gl.getExtension(value);\n }\n return value;\n}\n\nexport default class Renderbuffer extends Resource {\n static isSupported(gl, {format} = {format: null}) {\n return !format || isFormatSupported(gl, format, RENDERBUFFER_FORMATS);\n }\n\n static getSamplesForFormat(gl, {format}) {\n // Polyfilled to return [0] under WebGL1\n return gl.getInternalformatParameter(GL.RENDERBUFFER, format, GL.SAMPLES);\n }\n\n constructor(gl, opts = {}) {\n super(gl, opts);\n\n // @ts-ignore\n this.initialize(opts);\n\n Object.seal(this);\n }\n\n // Creates and initializes a renderbuffer object's data store\n initialize({format, width = 1, height = 1, samples = 0}) {\n assert(format, 'Needs format');\n\n this._trackDeallocatedMemory();\n\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);\n\n if (samples !== 0 && isWebGL2(this.gl)) {\n // @ts-ignore\n this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);\n } else {\n this.gl.renderbufferStorage(GL.RENDERBUFFER, format, width, height);\n }\n\n // this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);\n\n this.format = format;\n this.width = width;\n this.height = height;\n this.samples = samples;\n\n this._trackAllocatedMemory(\n this.width * this.height * (this.samples || 1) * RENDERBUFFER_FORMATS[this.format].bpp\n );\n\n return this;\n }\n\n resize({width, height}) {\n // Don't resize if width/height haven't changed\n if (width !== this.width || height !== this.height) {\n return this.initialize({width, height, format: this.format, samples: this.samples});\n }\n return this;\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createRenderbuffer();\n }\n\n _deleteHandle() {\n this.gl.deleteRenderbuffer(this.handle);\n this._trackDeallocatedMemory();\n }\n\n _bindHandle(handle) {\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);\n }\n\n _syncHandle(handle) {\n this.format = this.getParameter(GL.RENDERBUFFER_INTERNAL_FORMAT);\n this.width = this.getParameter(GL.RENDERBUFFER_WIDTH);\n this.height = this.getParameter(GL.RENDERBUFFER_HEIGHT);\n this.samples = this.getParameter(GL.RENDERBUFFER_SAMPLES);\n }\n\n // @param {Boolean} opt.autobind=true - method call will bind/unbind object\n // @returns {GLenum|GLint} - depends on pname\n _getParameter(pname) {\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);\n const value = this.gl.getRenderbufferParameter(GL.RENDERBUFFER, pname);\n // this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);\n return value;\n }\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar react = require('react');\n\nfunction create$1(createState) {\n var state;\n var listeners = new Set();\n\n var setState = function setState(partial, replace) {\n var nextState = typeof partial === 'function' ? partial(state) : partial;\n\n if (nextState !== state) {\n var _previousState = state;\n state = replace ? nextState : Object.assign({}, state, nextState);\n listeners.forEach(function (listener) {\n return listener(state, _previousState);\n });\n }\n };\n\n var getState = function getState() {\n return state;\n };\n\n var subscribeWithSelector = function subscribeWithSelector(listener, selector, equalityFn) {\n if (selector === void 0) {\n selector = getState;\n }\n\n if (equalityFn === void 0) {\n equalityFn = Object.is;\n }\n\n var currentSlice = selector(state);\n\n function listenerToAdd() {\n var nextSlice = selector(state);\n\n if (!equalityFn(currentSlice, nextSlice)) {\n var _previousSlice = currentSlice;\n listener(currentSlice = nextSlice, _previousSlice);\n }\n }\n\n listeners.add(listenerToAdd);\n return function () {\n return listeners.delete(listenerToAdd);\n };\n };\n\n var subscribe = function subscribe(listener, selector, equalityFn) {\n if (selector || equalityFn) {\n return subscribeWithSelector(listener, selector, equalityFn);\n }\n\n listeners.add(listener);\n return function () {\n return listeners.delete(listener);\n };\n };\n\n var destroy = function destroy() {\n return listeners.clear();\n };\n\n var api = {\n setState: setState,\n getState: getState,\n subscribe: subscribe,\n destroy: destroy\n };\n state = createState(setState, getState, api);\n return api;\n}\n\nvar isSSR = typeof window === 'undefined' || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\nvar useIsomorphicLayoutEffect = isSSR ? react.useEffect : react.useLayoutEffect;\nfunction create(createState) {\n var api = typeof createState === 'function' ? create$1(createState) : createState;\n\n var useStore = function useStore(selector, equalityFn) {\n if (selector === void 0) {\n selector = api.getState;\n }\n\n if (equalityFn === void 0) {\n equalityFn = Object.is;\n }\n\n var _ref = react.useReducer(function (c) {\n return c + 1;\n }, 0),\n forceUpdate = _ref[1];\n\n var state = api.getState();\n var stateRef = react.useRef(state);\n var selectorRef = react.useRef(selector);\n var equalityFnRef = react.useRef(equalityFn);\n var erroredRef = react.useRef(false);\n var currentSliceRef = react.useRef();\n\n if (currentSliceRef.current === undefined) {\n currentSliceRef.current = selector(state);\n }\n\n var newStateSlice;\n var hasNewStateSlice = false;\n\n if (stateRef.current !== state || selectorRef.current !== selector || equalityFnRef.current !== equalityFn || erroredRef.current) {\n newStateSlice = selector(state);\n hasNewStateSlice = !equalityFn(currentSliceRef.current, newStateSlice);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (hasNewStateSlice) {\n currentSliceRef.current = newStateSlice;\n }\n\n stateRef.current = state;\n selectorRef.current = selector;\n equalityFnRef.current = equalityFn;\n erroredRef.current = false;\n });\n var stateBeforeSubscriptionRef = react.useRef(state);\n useIsomorphicLayoutEffect(function () {\n var listener = function listener() {\n try {\n var nextState = api.getState();\n var nextStateSlice = selectorRef.current(nextState);\n\n if (!equalityFnRef.current(currentSliceRef.current, nextStateSlice)) {\n stateRef.current = nextState;\n currentSliceRef.current = nextStateSlice;\n forceUpdate();\n }\n } catch (error) {\n erroredRef.current = true;\n forceUpdate();\n }\n };\n\n var unsubscribe = api.subscribe(listener);\n\n if (api.getState() !== stateBeforeSubscriptionRef.current) {\n listener();\n }\n\n return unsubscribe;\n }, []);\n return hasNewStateSlice ? newStateSlice : currentSliceRef.current;\n };\n\n Object.assign(useStore, api);\n\n useStore[Symbol.iterator] = function () {\n console.warn('[useStore, api] = create() is deprecated and will be removed in v4');\n var items = [useStore, api];\n return {\n next: function next() {\n var done = items.length <= 0;\n return {\n value: items.shift(),\n done: done\n };\n }\n };\n };\n\n return useStore;\n}\n\nexports['default'] = create;\n","import checkIfBrowser from '../env/is-browser';\n\nexport {self, window, global, document, process, console} from '../env/globals';\n\n// Extract injected version from package.json (injected by babel plugin)\n/* global __VERSION__ */\n// @ts-ignore\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'untranspiled source';\n\nexport const isBrowser = checkIfBrowser();\n","/**\n * @license Fraction.js v4.0.12 09/09/2015\n * http://www.xarg.org/2014/03/rational-numbers-in-javascript/\n *\n * Copyright (c) 2015, Robert Eisele (robert@xarg.org)\n * Dual licensed under the MIT or GPL Version 2 licenses.\n **/\n\n\n/**\n *\n * This class offers the possibility to calculate fractions.\n * You can pass a fraction in different formats. Either as array, as double, as string or as an integer.\n *\n * Array/Object form\n * [ 0 => <nominator>, 1 => <denominator> ]\n * [ n => <nominator>, d => <denominator> ]\n *\n * Integer form\n * - Single integer value\n *\n * Double form\n * - Single double value\n *\n * String form\n * 123.456 - a simple double\n * 123/456 - a string fraction\n * 123.'456' - a double with repeating decimal places\n * 123.(456) - synonym\n * 123.45'6' - a double with repeating last place\n * 123.45(6) - synonym\n *\n * Example:\n *\n * var f = new Fraction(\"9.4'31'\");\n * f.mul([-4, 3]).div(4.9);\n *\n */\n\n(function(root) {\n\n \"use strict\";\n\n // Maximum search depth for cyclic rational numbers. 2000 should be more than enough.\n // Example: 1/7 = 0.(142857) has 6 repeating decimal places.\n // If MAX_CYCLE_LEN gets reduced, long cycles will not be detected and toString() only gets the first 10 digits\n var MAX_CYCLE_LEN = 2000;\n\n // Parsed data to avoid calling \"new\" all the time\n var P = {\n \"s\": 1,\n \"n\": 0,\n \"d\": 1\n };\n\n function createError(name) {\n\n function errorConstructor() {\n var temp = Error.apply(this, arguments);\n temp['name'] = this['name'] = name;\n this['stack'] = temp['stack'];\n this['message'] = temp['message'];\n }\n\n /**\n * Error constructor\n *\n * @constructor\n */\n function IntermediateInheritor() { }\n IntermediateInheritor.prototype = Error.prototype;\n errorConstructor.prototype = new IntermediateInheritor();\n\n return errorConstructor;\n }\n\n var DivisionByZero = Fraction['DivisionByZero'] = createError('DivisionByZero');\n var InvalidParameter = Fraction['InvalidParameter'] = createError('InvalidParameter');\n\n function assign(n, s) {\n\n if (isNaN(n = parseInt(n, 10))) {\n throwInvalidParam();\n }\n return n * s;\n }\n\n function throwInvalidParam() {\n throw new InvalidParameter();\n }\n\n var parse = function(p1, p2) {\n\n var n = 0, d = 1, s = 1;\n var v = 0, w = 0, x = 0, y = 1, z = 1;\n\n var A = 0, B = 1;\n var C = 1, D = 1;\n\n var N = 10000000;\n var M;\n\n if (p1 === undefined || p1 === null) {\n /* void */\n } else if (p2 !== undefined) {\n n = p1;\n d = p2;\n s = n * d;\n } else\n switch (typeof p1) {\n\n case \"object\":\n {\n if (\"d\" in p1 && \"n\" in p1) {\n n = p1[\"n\"];\n d = p1[\"d\"];\n if (\"s\" in p1)\n n *= p1[\"s\"];\n } else if (0 in p1) {\n n = p1[0];\n if (1 in p1)\n d = p1[1];\n } else {\n throwInvalidParam();\n }\n s = n * d;\n break;\n }\n case \"number\":\n {\n if (p1 < 0) {\n s = p1;\n p1 = -p1;\n }\n\n if (p1 % 1 === 0) {\n n = p1;\n } else if (p1 > 0) { // check for != 0, scale would become NaN (log(0)), which converges really slow\n\n if (p1 >= 1) {\n z = Math.pow(10, Math.floor(1 + Math.log(p1) / Math.LN10));\n p1 /= z;\n }\n\n // Using Farey Sequences\n // http://www.johndcook.com/blog/2010/10/20/best-rational-approximation/\n\n while (B <= N && D <= N) {\n M = (A + C) / (B + D);\n\n if (p1 === M) {\n if (B + D <= N) {\n n = A + C;\n d = B + D;\n } else if (D > B) {\n n = C;\n d = D;\n } else {\n n = A;\n d = B;\n }\n break;\n\n } else {\n\n if (p1 > M) {\n A += C;\n B += D;\n } else {\n C += A;\n D += B;\n }\n\n if (B > N) {\n n = C;\n d = D;\n } else {\n n = A;\n d = B;\n }\n }\n }\n n *= z;\n } else if (isNaN(p1) || isNaN(p2)) {\n d = n = NaN;\n }\n break;\n }\n case \"string\":\n {\n B = p1.match(/\\d+|./g);\n\n if (B === null)\n throwInvalidParam();\n\n if (B[A] === '-') {// Check for minus sign at the beginning\n s = -1;\n A++;\n } else if (B[A] === '+') {// Check for plus sign at the beginning\n A++;\n }\n\n if (B.length === A + 1) { // Check if it's just a simple number \"1234\"\n w = assign(B[A++], s);\n } else if (B[A + 1] === '.' || B[A] === '.') { // Check if it's a decimal number\n\n if (B[A] !== '.') { // Handle 0.5 and .5\n v = assign(B[A++], s);\n }\n A++;\n\n // Check for decimal places\n if (A + 1 === B.length || B[A + 1] === '(' && B[A + 3] === ')' || B[A + 1] === \"'\" && B[A + 3] === \"'\") {\n w = assign(B[A], s);\n y = Math.pow(10, B[A].length);\n A++;\n }\n\n // Check for repeating places\n if (B[A] === '(' && B[A + 2] === ')' || B[A] === \"'\" && B[A + 2] === \"'\") {\n x = assign(B[A + 1], s);\n z = Math.pow(10, B[A + 1].length) - 1;\n A += 3;\n }\n\n } else if (B[A + 1] === '/' || B[A + 1] === ':') { // Check for a simple fraction \"123/456\" or \"123:456\"\n w = assign(B[A], s);\n y = assign(B[A + 2], 1);\n A += 3;\n } else if (B[A + 3] === '/' && B[A + 1] === ' ') { // Check for a complex fraction \"123 1/2\"\n v = assign(B[A], s);\n w = assign(B[A + 2], s);\n y = assign(B[A + 4], 1);\n A += 5;\n }\n\n if (B.length <= A) { // Check for more tokens on the stack\n d = y * z;\n s = /* void */\n n = x + d * v + z * w;\n break;\n }\n\n /* Fall through on error */\n }\n default:\n throwInvalidParam();\n }\n\n if (d === 0) {\n throw new DivisionByZero();\n }\n\n P[\"s\"] = s < 0 ? -1 : 1;\n P[\"n\"] = Math.abs(n);\n P[\"d\"] = Math.abs(d);\n };\n\n function modpow(b, e, m) {\n\n var r = 1;\n for (; e > 0; b = (b * b) % m, e >>= 1) {\n\n if (e & 1) {\n r = (r * b) % m;\n }\n }\n return r;\n }\n\n\n function cycleLen(n, d) {\n\n for (; d % 2 === 0;\n d /= 2) {\n }\n\n for (; d % 5 === 0;\n d /= 5) {\n }\n\n if (d === 1) // Catch non-cyclic numbers\n return 0;\n\n // If we would like to compute really large numbers quicker, we could make use of Fermat's little theorem:\n // 10^(d-1) % d == 1\n // However, we don't need such large numbers and MAX_CYCLE_LEN should be the capstone,\n // as we want to translate the numbers to strings.\n\n var rem = 10 % d;\n var t = 1;\n\n for (; rem !== 1; t++) {\n rem = rem * 10 % d;\n\n if (t > MAX_CYCLE_LEN)\n return 0; // Returning 0 here means that we don't print it as a cyclic number. It's likely that the answer is `d-1`\n }\n return t;\n }\n\n\n function cycleStart(n, d, len) {\n\n var rem1 = 1;\n var rem2 = modpow(10, len, d);\n\n for (var t = 0; t < 300; t++) { // s < ~log10(Number.MAX_VALUE)\n // Solve 10^s == 10^(s+t) (mod d)\n\n if (rem1 === rem2)\n return t;\n\n rem1 = rem1 * 10 % d;\n rem2 = rem2 * 10 % d;\n }\n return 0;\n }\n\n function gcd(a, b) {\n\n if (!a)\n return b;\n if (!b)\n return a;\n\n while (1) {\n a %= b;\n if (!a)\n return b;\n b %= a;\n if (!b)\n return a;\n }\n };\n\n /**\n * Module constructor\n *\n * @constructor\n * @param {number|Fraction=} a\n * @param {number=} b\n */\n function Fraction(a, b) {\n\n if (!(this instanceof Fraction)) {\n return new Fraction(a, b);\n }\n\n parse(a, b);\n\n if (Fraction['REDUCE']) {\n a = gcd(P[\"d\"], P[\"n\"]); // Abuse a\n } else {\n a = 1;\n }\n\n this[\"s\"] = P[\"s\"];\n this[\"n\"] = P[\"n\"] / a;\n this[\"d\"] = P[\"d\"] / a;\n }\n\n /**\n * Boolean global variable to be able to disable automatic reduction of the fraction\n *\n */\n Fraction['REDUCE'] = 1;\n\n Fraction.prototype = {\n\n \"s\": 1,\n \"n\": 0,\n \"d\": 1,\n\n /**\n * Calculates the absolute value\n *\n * Ex: new Fraction(-4).abs() => 4\n **/\n \"abs\": function() {\n\n return new Fraction(this[\"n\"], this[\"d\"]);\n },\n\n /**\n * Inverts the sign of the current fraction\n *\n * Ex: new Fraction(-4).neg() => 4\n **/\n \"neg\": function() {\n\n return new Fraction(-this[\"s\"] * this[\"n\"], this[\"d\"]);\n },\n\n /**\n * Adds two rational numbers\n *\n * Ex: new Fraction({n: 2, d: 3}).add(\"14.9\") => 467 / 30\n **/\n \"add\": function(a, b) {\n\n parse(a, b);\n return new Fraction(\n this[\"s\"] * this[\"n\"] * P[\"d\"] + P[\"s\"] * this[\"d\"] * P[\"n\"],\n this[\"d\"] * P[\"d\"]\n );\n },\n\n /**\n * Subtracts two rational numbers\n *\n * Ex: new Fraction({n: 2, d: 3}).add(\"14.9\") => -427 / 30\n **/\n \"sub\": function(a, b) {\n\n parse(a, b);\n return new Fraction(\n this[\"s\"] * this[\"n\"] * P[\"d\"] - P[\"s\"] * this[\"d\"] * P[\"n\"],\n this[\"d\"] * P[\"d\"]\n );\n },\n\n /**\n * Multiplies two rational numbers\n *\n * Ex: new Fraction(\"-17.(345)\").mul(3) => 5776 / 111\n **/\n \"mul\": function(a, b) {\n\n parse(a, b);\n return new Fraction(\n this[\"s\"] * P[\"s\"] * this[\"n\"] * P[\"n\"],\n this[\"d\"] * P[\"d\"]\n );\n },\n\n /**\n * Divides two rational numbers\n *\n * Ex: new Fraction(\"-17.(345)\").inverse().div(3)\n **/\n \"div\": function(a, b) {\n\n parse(a, b);\n return new Fraction(\n this[\"s\"] * P[\"s\"] * this[\"n\"] * P[\"d\"],\n this[\"d\"] * P[\"n\"]\n );\n },\n\n /**\n * Clones the actual object\n *\n * Ex: new Fraction(\"-17.(345)\").clone()\n **/\n \"clone\": function() {\n return new Fraction(this);\n },\n\n /**\n * Calculates the modulo of two rational numbers - a more precise fmod\n *\n * Ex: new Fraction('4.(3)').mod([7, 8]) => (13/3) % (7/8) = (5/6)\n **/\n \"mod\": function(a, b) {\n\n if (isNaN(this['n']) || isNaN(this['d'])) {\n return new Fraction(NaN);\n }\n\n if (a === undefined) {\n return new Fraction(this[\"s\"] * this[\"n\"] % this[\"d\"], 1);\n }\n\n parse(a, b);\n if (0 === P[\"n\"] && 0 === this[\"d\"]) {\n Fraction(0, 0); // Throw DivisionByZero\n }\n\n /*\n * First silly attempt, kinda slow\n *\n return that[\"sub\"]({\n \"n\": num[\"n\"] * Math.floor((this.n / this.d) / (num.n / num.d)),\n \"d\": num[\"d\"],\n \"s\": this[\"s\"]\n });*/\n\n /*\n * New attempt: a1 / b1 = a2 / b2 * q + r\n * => b2 * a1 = a2 * b1 * q + b1 * b2 * r\n * => (b2 * a1 % a2 * b1) / (b1 * b2)\n */\n return new Fraction(\n this[\"s\"] * (P[\"d\"] * this[\"n\"]) % (P[\"n\"] * this[\"d\"]),\n P[\"d\"] * this[\"d\"]\n );\n },\n\n /**\n * Calculates the fractional gcd of two rational numbers\n *\n * Ex: new Fraction(5,8).gcd(3,7) => 1/56\n */\n \"gcd\": function(a, b) {\n\n parse(a, b);\n\n // gcd(a / b, c / d) = gcd(a, c) / lcm(b, d)\n\n return new Fraction(gcd(P[\"n\"], this[\"n\"]) * gcd(P[\"d\"], this[\"d\"]), P[\"d\"] * this[\"d\"]);\n },\n\n /**\n * Calculates the fractional lcm of two rational numbers\n *\n * Ex: new Fraction(5,8).lcm(3,7) => 15\n */\n \"lcm\": function(a, b) {\n\n parse(a, b);\n\n // lcm(a / b, c / d) = lcm(a, c) / gcd(b, d)\n\n if (P[\"n\"] === 0 && this[\"n\"] === 0) {\n return new Fraction;\n }\n return new Fraction(P[\"n\"] * this[\"n\"], gcd(P[\"n\"], this[\"n\"]) * gcd(P[\"d\"], this[\"d\"]));\n },\n\n /**\n * Calculates the ceil of a rational number\n *\n * Ex: new Fraction('4.(3)').ceil() => (5 / 1)\n **/\n \"ceil\": function(places) {\n\n places = Math.pow(10, places || 0);\n\n if (isNaN(this[\"n\"]) || isNaN(this[\"d\"])) {\n return new Fraction(NaN);\n }\n return new Fraction(Math.ceil(places * this[\"s\"] * this[\"n\"] / this[\"d\"]), places);\n },\n\n /**\n * Calculates the floor of a rational number\n *\n * Ex: new Fraction('4.(3)').floor() => (4 / 1)\n **/\n \"floor\": function(places) {\n\n places = Math.pow(10, places || 0);\n\n if (isNaN(this[\"n\"]) || isNaN(this[\"d\"])) {\n return new Fraction(NaN);\n }\n return new Fraction(Math.floor(places * this[\"s\"] * this[\"n\"] / this[\"d\"]), places);\n },\n\n /**\n * Rounds a rational numbers\n *\n * Ex: new Fraction('4.(3)').round() => (4 / 1)\n **/\n \"round\": function(places) {\n\n places = Math.pow(10, places || 0);\n\n if (isNaN(this[\"n\"]) || isNaN(this[\"d\"])) {\n return new Fraction(NaN);\n }\n return new Fraction(Math.round(places * this[\"s\"] * this[\"n\"] / this[\"d\"]), places);\n },\n\n /**\n * Gets the inverse of the fraction, means numerator and denominator are exchanged\n *\n * Ex: new Fraction([-3, 4]).inverse() => -4 / 3\n **/\n \"inverse\": function() {\n\n return new Fraction(this[\"s\"] * this[\"d\"], this[\"n\"]);\n },\n\n /**\n * Calculates the fraction to some integer exponent\n *\n * Ex: new Fraction(-1,2).pow(-3) => -8\n */\n \"pow\": function(m) {\n\n if (m < 0) {\n return new Fraction(Math.pow(this['s'] * this[\"d\"], -m), Math.pow(this[\"n\"], -m));\n } else {\n return new Fraction(Math.pow(this['s'] * this[\"n\"], m), Math.pow(this[\"d\"], m));\n }\n },\n\n /**\n * Check if two rational numbers are the same\n *\n * Ex: new Fraction(19.6).equals([98, 5]);\n **/\n \"equals\": function(a, b) {\n\n parse(a, b);\n return this[\"s\"] * this[\"n\"] * P[\"d\"] === P[\"s\"] * P[\"n\"] * this[\"d\"]; // Same as compare() === 0\n },\n\n /**\n * Check if two rational numbers are the same\n *\n * Ex: new Fraction(19.6).equals([98, 5]);\n **/\n \"compare\": function(a, b) {\n\n parse(a, b);\n var t = (this[\"s\"] * this[\"n\"] * P[\"d\"] - P[\"s\"] * P[\"n\"] * this[\"d\"]);\n return (0 < t) - (t < 0);\n },\n\n \"simplify\": function(eps) {\n\n // First naive implementation, needs improvement\n\n if (isNaN(this['n']) || isNaN(this['d'])) {\n return this;\n }\n\n var cont = this['abs']()['toContinued']();\n\n eps = eps || 0.001;\n\n function rec(a) {\n if (a.length === 1)\n return new Fraction(a[0]);\n return rec(a.slice(1))['inverse']()['add'](a[0]);\n }\n\n for (var i = 0; i < cont.length; i++) {\n var tmp = rec(cont.slice(0, i + 1));\n if (tmp['sub'](this['abs']())['abs']().valueOf() < eps) {\n return tmp['mul'](this['s']);\n }\n }\n return this;\n },\n\n /**\n * Check if two rational numbers are divisible\n *\n * Ex: new Fraction(19.6).divisible(1.5);\n */\n \"divisible\": function(a, b) {\n\n parse(a, b);\n return !(!(P[\"n\"] * this[\"d\"]) || ((this[\"n\"] * P[\"d\"]) % (P[\"n\"] * this[\"d\"])));\n },\n\n /**\n * Returns a decimal representation of the fraction\n *\n * Ex: new Fraction(\"100.'91823'\").valueOf() => 100.91823918239183\n **/\n 'valueOf': function() {\n\n return this[\"s\"] * this[\"n\"] / this[\"d\"];\n },\n\n /**\n * Returns a string-fraction representation of a Fraction object\n *\n * Ex: new Fraction(\"1.'3'\").toFraction() => \"4 1/3\"\n **/\n 'toFraction': function(excludeWhole) {\n\n var whole, str = \"\";\n var n = this[\"n\"];\n var d = this[\"d\"];\n if (this[\"s\"] < 0) {\n str += '-';\n }\n\n if (d === 1) {\n str += n;\n } else {\n\n if (excludeWhole && (whole = Math.floor(n / d)) > 0) {\n str += whole;\n str += \" \";\n n %= d;\n }\n\n str += n;\n str += '/';\n str += d;\n }\n return str;\n },\n\n /**\n * Returns a latex representation of a Fraction object\n *\n * Ex: new Fraction(\"1.'3'\").toLatex() => \"\\frac{4}{3}\"\n **/\n 'toLatex': function(excludeWhole) {\n\n var whole, str = \"\";\n var n = this[\"n\"];\n var d = this[\"d\"];\n if (this[\"s\"] < 0) {\n str += '-';\n }\n\n if (d === 1) {\n str += n;\n } else {\n\n if (excludeWhole && (whole = Math.floor(n / d)) > 0) {\n str += whole;\n n %= d;\n }\n\n str += \"\\\\frac{\";\n str += n;\n str += '}{';\n str += d;\n str += '}';\n }\n return str;\n },\n\n /**\n * Returns an array of continued fraction elements\n *\n * Ex: new Fraction(\"7/8\").toContinued() => [0,1,7]\n */\n 'toContinued': function() {\n\n var t;\n var a = this['n'];\n var b = this['d'];\n var res = [];\n\n if (isNaN(a) || isNaN(b)) {\n return res;\n }\n\n do {\n res.push(Math.floor(a / b));\n t = a % b;\n a = b;\n b = t;\n } while (a !== 1);\n\n return res;\n },\n\n /**\n * Creates a string representation of a fraction with all digits\n *\n * Ex: new Fraction(\"100.'91823'\").toString() => \"100.(91823)\"\n **/\n 'toString': function(dec) {\n\n var g;\n var N = this[\"n\"];\n var D = this[\"d\"];\n\n if (isNaN(N) || isNaN(D)) {\n return \"NaN\";\n }\n\n if (!Fraction['REDUCE']) {\n g = gcd(N, D);\n N /= g;\n D /= g;\n }\n\n dec = dec || 15; // 15 = decimal places when no repitation\n\n var cycLen = cycleLen(N, D); // Cycle length\n var cycOff = cycleStart(N, D, cycLen); // Cycle start\n\n var str = this['s'] === -1 ? \"-\" : \"\";\n\n str += N / D | 0;\n\n N %= D;\n N *= 10;\n\n if (N)\n str += \".\";\n\n if (cycLen) {\n\n for (var i = cycOff; i--;) {\n str += N / D | 0;\n N %= D;\n N *= 10;\n }\n str += \"(\";\n for (var i = cycLen; i--;) {\n str += N / D | 0;\n N %= D;\n N *= 10;\n }\n str += \")\";\n } else {\n for (var i = dec; N && i--;) {\n str += N / D | 0;\n N %= D;\n N *= 10;\n }\n }\n return str;\n }\n };\n\n if (typeof define === \"function\" && define[\"amd\"]) {\n define([], function() {\n return Fraction;\n });\n } else if (typeof exports === \"object\") {\n Object.defineProperty(Fraction, \"__esModule\", { 'value': true });\n Fraction['default'] = Fraction;\n Fraction['Fraction'] = Fraction;\n module['exports'] = Fraction;\n } else {\n root['Fraction'] = Fraction;\n }\n\n})(this);\n","/*\r\n * Natural Sort algorithm for Javascript - Version 0.7 - Released under MIT license\r\n * Author: Jim Palmer (based on chunking idea from Dave Koelle)\r\n */\r\n/*jshint unused:false */\r\nmodule.exports = function naturalSort (a, b) {\r\n\t\"use strict\";\r\n\tvar re = /(^([+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)?$|^0x[0-9a-f]+$|\\d+)/gi,\r\n\t\tsre = /(^[ ]*|[ ]*$)/g,\r\n\t\tdre = /(^([\\w ]+,?[\\w ]+)?[\\w ]+,?[\\w ]+\\d+:\\d+(:\\d+)?[\\w ]?|^\\d{1,4}[\\/\\-]\\d{1,4}[\\/\\-]\\d{1,4}|^\\w+, \\w+ \\d+, \\d{4})/,\r\n\t\thre = /^0x[0-9a-f]+$/i,\r\n\t\tore = /^0/,\r\n\t\ti = function(s) { return naturalSort.insensitive && ('' + s).toLowerCase() || '' + s; },\r\n\t\t// convert all to strings strip whitespace\r\n\t\tx = i(a).replace(sre, '') || '',\r\n\t\ty = i(b).replace(sre, '') || '',\r\n\t\t// chunk/tokenize\r\n\t\txN = x.replace(re, '\\0$1\\0').replace(/\\0$/,'').replace(/^\\0/,'').split('\\0'),\r\n\t\tyN = y.replace(re, '\\0$1\\0').replace(/\\0$/,'').replace(/^\\0/,'').split('\\0'),\r\n\t\t// numeric, hex or date detection\r\n\t\txD = parseInt(x.match(hre), 16) || (xN.length !== 1 && x.match(dre) && Date.parse(x)),\r\n\t\tyD = parseInt(y.match(hre), 16) || xD && y.match(dre) && Date.parse(y) || null,\r\n\t\toFxNcL, oFyNcL;\r\n\t// first try and sort Hex codes or Dates\r\n\tif (yD) {\r\n\t\tif ( xD < yD ) { return -1; }\r\n\t\telse if ( xD > yD ) { return 1; }\r\n\t}\r\n\t// natural sorting through split numeric strings and default strings\r\n\tfor(var cLoc=0, numS=Math.max(xN.length, yN.length); cLoc < numS; cLoc++) {\r\n\t\t// find floats not starting with '0', string or 0 if not defined (Clint Priest)\r\n\t\toFxNcL = !(xN[cLoc] || '').match(ore) && parseFloat(xN[cLoc]) || xN[cLoc] || 0;\r\n\t\toFyNcL = !(yN[cLoc] || '').match(ore) && parseFloat(yN[cLoc]) || yN[cLoc] || 0;\r\n\t\t// handle numeric vs string comparison - number < string - (Kyle Adams)\r\n\t\tif (isNaN(oFxNcL) !== isNaN(oFyNcL)) { return (isNaN(oFxNcL)) ? 1 : -1; }\r\n\t\t// rely on string comparison if different types - i.e. '02' < 2 != '02' < '2'\r\n\t\telse if (typeof oFxNcL !== typeof oFyNcL) {\r\n\t\t\toFxNcL += '';\r\n\t\t\toFyNcL += '';\r\n\t\t}\r\n\t\tif (oFxNcL < oFyNcL) { return -1; }\r\n\t\tif (oFxNcL > oFyNcL) { return 1; }\r\n\t}\r\n\treturn 0;\r\n};\r\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bottom = bottom;\nexports.cloneLayout = cloneLayout;\nexports.cloneLayoutItem = cloneLayoutItem;\nexports.childrenEqual = childrenEqual;\nexports.fastPositionEqual = fastPositionEqual;\nexports.collides = collides;\nexports.compact = compact;\nexports.compactItem = compactItem;\nexports.correctBounds = correctBounds;\nexports.getLayoutItem = getLayoutItem;\nexports.getFirstCollision = getFirstCollision;\nexports.getAllCollisions = getAllCollisions;\nexports.getStatics = getStatics;\nexports.moveElement = moveElement;\nexports.moveElementAwayFromCollision = moveElementAwayFromCollision;\nexports.perc = perc;\nexports.setTransform = setTransform;\nexports.setTopLeft = setTopLeft;\nexports.sortLayoutItems = sortLayoutItems;\nexports.sortLayoutItemsByRowCol = sortLayoutItemsByRowCol;\nexports.sortLayoutItemsByColRow = sortLayoutItemsByColRow;\nexports.synchronizeLayoutWithChildren = synchronizeLayoutWithChildren;\nexports.validateLayout = validateLayout;\nexports.compactType = compactType;\nexports.autoBindHandlers = autoBindHandlers;\nexports.noop = exports.fastRGLPropsEqual = void 0;\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar isProduction = process.env.NODE_ENV === \"production\";\nvar DEBUG = false;\n/**\n * Return the bottom coordinate of the layout.\n *\n * @param {Array} layout Layout array.\n * @return {Number} Bottom coordinate.\n */\n\nfunction bottom(layout\n/*: Layout*/\n)\n/*: number*/\n{\n var max = 0,\n bottomY;\n\n for (var i = 0, len = layout.length; i < len; i++) {\n bottomY = layout[i].y + layout[i].h;\n if (bottomY > max) max = bottomY;\n }\n\n return max;\n}\n\nfunction cloneLayout(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n var newLayout = Array(layout.length);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n newLayout[i] = cloneLayoutItem(layout[i]);\n }\n\n return newLayout;\n} // Fast path to cloning, since this is monomorphic\n\n\nfunction cloneLayoutItem(layoutItem\n/*: LayoutItem*/\n)\n/*: LayoutItem*/\n{\n return {\n w: layoutItem.w,\n h: layoutItem.h,\n x: layoutItem.x,\n y: layoutItem.y,\n i: layoutItem.i,\n minW: layoutItem.minW,\n maxW: layoutItem.maxW,\n minH: layoutItem.minH,\n maxH: layoutItem.maxH,\n moved: Boolean(layoutItem.moved),\n static: Boolean(layoutItem.static),\n // These can be null/undefined\n isDraggable: layoutItem.isDraggable,\n isResizable: layoutItem.isResizable,\n resizeHandles: layoutItem.resizeHandles,\n isBounded: layoutItem.isBounded\n };\n}\n/**\n * Comparing React `children` is a bit difficult. This is a good way to compare them.\n * This will catch differences in keys, order, and length.\n */\n\n\nfunction childrenEqual(a\n/*: ReactChildren*/\n, b\n/*: ReactChildren*/\n)\n/*: boolean*/\n{\n return (0, _lodash.default)(_react.default.Children.map(a, function (c) {\n return c.key;\n }), _react.default.Children.map(b, function (c) {\n return c.key;\n }));\n}\n/**\n * See `fastRGLPropsEqual.js`.\n * We want this to run as fast as possible - it is called often - and to be\n * resilient to new props that we add. So rather than call lodash.isEqual,\n * which isn't suited to comparing props very well, we use this specialized\n * function in conjunction with preval to generate the fastest possible comparison\n * function, tuned for exactly our props.\n */\n\n/*:: type FastRGLPropsEqual = (Object, Object, Function) => boolean;*/\n\n\nvar fastRGLPropsEqual\n/*: FastRGLPropsEqual*/\n= require(\"./fastRGLPropsEqual\"); // Like the above, but a lot simpler.\n\n\nexports.fastRGLPropsEqual = fastRGLPropsEqual;\n\nfunction fastPositionEqual(a\n/*: Position*/\n, b\n/*: Position*/\n) {\n return a.left === b.left && a.top === b.top && a.width === b.width && a.height === b.height;\n}\n/**\n * Given two layoutitems, check if they collide.\n */\n\n\nfunction collides(l1\n/*: LayoutItem*/\n, l2\n/*: LayoutItem*/\n)\n/*: boolean*/\n{\n if (l1.i === l2.i) return false; // same element\n\n if (l1.x + l1.w <= l2.x) return false; // l1 is left of l2\n\n if (l1.x >= l2.x + l2.w) return false; // l1 is right of l2\n\n if (l1.y + l1.h <= l2.y) return false; // l1 is above l2\n\n if (l1.y >= l2.y + l2.h) return false; // l1 is below l2\n\n return true; // boxes overlap\n}\n/**\n * Given a layout, compact it. This involves going down each y coordinate and removing gaps\n * between items.\n *\n * Does not modify layout items (clones). Creates a new layout array.\n *\n * @param {Array} layout Layout.\n * @param {Boolean} verticalCompact Whether or not to compact the layout\n * vertically.\n * @return {Array} Compacted Layout.\n */\n\n\nfunction compact(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n // Statics go in the compareWith array right away so items flow around them.\n var compareWith = getStatics(layout); // We go through the items by row and column.\n\n var sorted = sortLayoutItems(layout, compactType); // Holding for new items.\n\n var out = Array(layout.length);\n\n for (var i = 0, len = sorted.length; i < len; i++) {\n var l = cloneLayoutItem(sorted[i]); // Don't move static elements\n\n if (!l.static) {\n l = compactItem(compareWith, l, compactType, cols, sorted); // Add to comparison array. We only collide with items before this one.\n // Statics are already in this array.\n\n compareWith.push(l);\n } // Add to output array to make sure they still come out in the right order.\n\n\n out[layout.indexOf(sorted[i])] = l; // Clear moved flag, if it exists.\n\n l.moved = false;\n }\n\n return out;\n}\n\nvar heightWidth = {\n x: \"w\",\n y: \"h\"\n};\n/**\n * Before moving item down, it will check if the movement will cause collisions and move those items down before.\n */\n\nfunction resolveCompactionCollision(layout\n/*: Layout*/\n, item\n/*: LayoutItem*/\n, moveToCoord\n/*: number*/\n, axis\n/*: \"x\" | \"y\"*/\n) {\n var sizeProp = heightWidth[axis];\n item[axis] += 1;\n var itemIndex = layout.map(function (layoutItem) {\n return layoutItem.i;\n }).indexOf(item.i); // Go through each item we collide with.\n\n for (var i = itemIndex + 1; i < layout.length; i++) {\n var otherItem = layout[i]; // Ignore static items\n\n if (otherItem.static) continue; // Optimization: we can break early if we know we're past this el\n // We can do this b/c it's a sorted layout\n\n if (otherItem.y > item.y + item.h) break;\n\n if (collides(item, otherItem)) {\n resolveCompactionCollision(layout, otherItem, moveToCoord + item[sizeProp], axis);\n }\n }\n\n item[axis] = moveToCoord;\n}\n/**\n * Compact an item in the layout.\n *\n * Modifies item.\n *\n */\n\n\nfunction compactItem(compareWith\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n, fullLayout\n/*: Layout*/\n)\n/*: LayoutItem*/\n{\n var compactV = compactType === \"vertical\";\n var compactH = compactType === \"horizontal\";\n\n if (compactV) {\n // Bottom 'y' possible is the bottom of the layout.\n // This allows you to do nice stuff like specify {y: Infinity}\n // This is here because the layout must be sorted in order to get the correct bottom `y`.\n l.y = Math.min(bottom(compareWith), l.y); // Move the element up as far as it can go without colliding.\n\n while (l.y > 0 && !getFirstCollision(compareWith, l)) {\n l.y--;\n }\n } else if (compactH) {\n l.y = Math.min(bottom(compareWith), l.y); // Move the element left as far as it can go without colliding.\n\n while (l.x > 0 && !getFirstCollision(compareWith, l)) {\n l.x--;\n }\n } // Move it down, and keep moving it down if it's colliding.\n\n\n var collides;\n\n while (collides = getFirstCollision(compareWith, l)) {\n if (compactH) {\n resolveCompactionCollision(fullLayout, l, collides.x + collides.w, \"x\");\n } else {\n resolveCompactionCollision(fullLayout, l, collides.y + collides.h, \"y\");\n } // Since we can't grow without bounds horizontally, if we've overflown, let's move it down and try again.\n\n\n if (compactH && l.x + l.w > cols) {\n l.x = cols - l.w;\n l.y++;\n }\n }\n\n return l;\n}\n/**\n * Given a layout, make sure all elements fit within its bounds.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Layout array.\n * @param {Number} bounds Number of columns.\n */\n\n\nfunction correctBounds(layout\n/*: Layout*/\n, bounds\n/*: { cols: number }*/\n)\n/*: Layout*/\n{\n var collidesWith = getStatics(layout);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var l = layout[i]; // Overflows right\n\n if (l.x + l.w > bounds.cols) l.x = bounds.cols - l.w; // Overflows left\n\n if (l.x < 0) {\n l.x = 0;\n l.w = bounds.cols;\n }\n\n if (!l.static) collidesWith.push(l);else {\n // If this is static and collides with other statics, we must move it down.\n // We have to do something nicer than just letting them overlap.\n while (getFirstCollision(collidesWith, l)) {\n l.y++;\n }\n }\n }\n\n return layout;\n}\n/**\n * Get a layout item by ID. Used so we can override later on if necessary.\n *\n * @param {Array} layout Layout array.\n * @param {String} id ID\n * @return {LayoutItem} Item at ID.\n */\n\n\nfunction getLayoutItem(layout\n/*: Layout*/\n, id\n/*: string*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (layout[i].i === id) return layout[i];\n }\n}\n/**\n * Returns the first item this layout collides with.\n * It doesn't appear to matter which order we approach this from, although\n * perhaps that is the wrong thing to do.\n *\n * @param {Object} layoutItem Layout item.\n * @return {Object|undefined} A colliding layout item, or undefined.\n */\n\n\nfunction getFirstCollision(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (collides(layout[i], layoutItem)) return layout[i];\n }\n}\n\nfunction getAllCollisions(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: Array<LayoutItem>*/\n{\n return layout.filter(function (l) {\n return collides(l, layoutItem);\n });\n}\n/**\n * Get all static elements.\n * @param {Array} layout Array of layout objects.\n * @return {Array} Array of static layout items..\n */\n\n\nfunction getStatics(layout\n/*: Layout*/\n)\n/*: Array<LayoutItem>*/\n{\n return layout.filter(function (l) {\n return l.static;\n });\n}\n/**\n * Move an element. Responsible for doing cascading movements of other elements.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} l element to move.\n * @param {Number} [x] X position in grid units.\n * @param {Number} [y] Y position in grid units.\n */\n\n\nfunction moveElement(layout\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, x\n/*: ?number*/\n, y\n/*: ?number*/\n, isUserAction\n/*: ?boolean*/\n, preventCollision\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n // If this is static and not explicitly enabled as draggable,\n // no move is possible, so we can short-circuit this immediately.\n if (l.static && l.isDraggable !== true) return layout; // Short-circuit if nothing to do.\n\n if (l.y === y && l.x === x) return layout;\n log(\"Moving element \".concat(l.i, \" to [\").concat(String(x), \",\").concat(String(y), \"] from [\").concat(l.x, \",\").concat(l.y, \"]\"));\n var oldX = l.x;\n var oldY = l.y; // This is quite a bit faster than extending the object\n\n if (typeof x === \"number\") l.x = x;\n if (typeof y === \"number\") l.y = y;\n l.moved = true; // If this collides with anything, move it.\n // When doing this comparison, we have to sort the items we compare with\n // to ensure, in the case of multiple collisions, that we're getting the\n // nearest collision.\n\n var sorted = sortLayoutItems(layout, compactType);\n var movingUp = compactType === \"vertical\" && typeof y === \"number\" ? oldY >= y : compactType === \"horizontal\" && typeof x === \"number\" ? oldX >= x : false; // $FlowIgnore acceptable modification of read-only array as it was recently cloned\n\n if (movingUp) sorted = sorted.reverse();\n var collisions = getAllCollisions(sorted, l); // There was a collision; abort\n\n if (preventCollision && collisions.length) {\n log(\"Collision prevented on \".concat(l.i, \", reverting.\"));\n l.x = oldX;\n l.y = oldY;\n l.moved = false;\n return layout;\n } // Move each item that collides away from this element.\n\n\n for (var i = 0, len = collisions.length; i < len; i++) {\n var collision = collisions[i];\n log(\"Resolving collision between \".concat(l.i, \" at [\").concat(l.x, \",\").concat(l.y, \"] and \").concat(collision.i, \" at [\").concat(collision.x, \",\").concat(collision.y, \"]\")); // Short circuit so we can't infinite loop\n\n if (collision.moved) continue; // Don't move static items - we have to move *this* element away\n\n if (collision.static) {\n layout = moveElementAwayFromCollision(layout, collision, l, isUserAction, compactType, cols);\n } else {\n layout = moveElementAwayFromCollision(layout, l, collision, isUserAction, compactType, cols);\n }\n }\n\n return layout;\n}\n/**\n * This is where the magic needs to happen - given a collision, move an element away from the collision.\n * We attempt to move it up if there's room, otherwise it goes below.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} collidesWith Layout item we're colliding with.\n * @param {LayoutItem} itemToMove Layout item we're moving.\n */\n\n\nfunction moveElementAwayFromCollision(layout\n/*: Layout*/\n, collidesWith\n/*: LayoutItem*/\n, itemToMove\n/*: LayoutItem*/\n, isUserAction\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n var compactH = compactType === \"horizontal\"; // Compact vertically if not set to horizontal\n\n var compactV = compactType !== \"horizontal\";\n var preventCollision = collidesWith.static; // we're already colliding (not for static items)\n // If there is enough space above the collision to put this element, move it there.\n // We only do this on the main collision as this can get funky in cascades and cause\n // unwanted swapping behavior.\n\n if (isUserAction) {\n // Reset isUserAction flag because we're not in the main collision anymore.\n isUserAction = false; // Make a mock item so we don't modify the item here, only modify in moveElement.\n\n var fakeItem\n /*: LayoutItem*/\n = {\n x: compactH ? Math.max(collidesWith.x - itemToMove.w, 0) : itemToMove.x,\n y: compactV ? Math.max(collidesWith.y - itemToMove.h, 0) : itemToMove.y,\n w: itemToMove.w,\n h: itemToMove.h,\n i: \"-1\"\n }; // No collision? If so, we can go up there; otherwise, we'll end up moving down as normal\n\n if (!getFirstCollision(layout, fakeItem)) {\n log(\"Doing reverse collision on \".concat(itemToMove.i, \" up to [\").concat(fakeItem.x, \",\").concat(fakeItem.y, \"].\"));\n return moveElement(layout, itemToMove, compactH ? fakeItem.x : undefined, compactV ? fakeItem.y : undefined, isUserAction, preventCollision, compactType, cols);\n }\n }\n\n return moveElement(layout, itemToMove, compactH ? itemToMove.x + 1 : undefined, compactV ? itemToMove.y + 1 : undefined, isUserAction, preventCollision, compactType, cols);\n}\n/**\n * Helper to convert a number to a percentage string.\n *\n * @param {Number} num Any number\n * @return {String} That number as a percentage.\n */\n\n\nfunction perc(num\n/*: number*/\n)\n/*: string*/\n{\n return num * 100 + \"%\";\n}\n\nfunction setTransform(_ref)\n/*: Object*/\n{\n var top = _ref.top,\n left = _ref.left,\n width = _ref.width,\n height = _ref.height;\n // Replace unitless items with px\n var translate = \"translate(\".concat(left, \"px,\").concat(top, \"px)\");\n return {\n transform: translate,\n WebkitTransform: translate,\n MozTransform: translate,\n msTransform: translate,\n OTransform: translate,\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n\nfunction setTopLeft(_ref2)\n/*: Object*/\n{\n var top = _ref2.top,\n left = _ref2.left,\n width = _ref2.width,\n height = _ref2.height;\n return {\n top: \"\".concat(top, \"px\"),\n left: \"\".concat(left, \"px\"),\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n/**\n * Get layout items sorted from top left to right and down.\n *\n * @return {Array} Array of layout objects.\n * @return {Array} Layout, sorted static items first.\n */\n\n\nfunction sortLayoutItems(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n if (compactType === \"horizontal\") return sortLayoutItemsByColRow(layout);else return sortLayoutItemsByRowCol(layout);\n}\n/**\n * Sort layout items by row ascending and column ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByRowCol(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n // Slice to clone array as sort modifies\n return layout.slice(0).sort(function (a, b) {\n if (a.y > b.y || a.y === b.y && a.x > b.x) {\n return 1;\n } else if (a.y === b.y && a.x === b.x) {\n // Without this, we can get different sort results in IE vs. Chrome/FF\n return 0;\n }\n\n return -1;\n });\n}\n/**\n * Sort layout items by column ascending then row ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByColRow(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n return layout.slice(0).sort(function (a, b) {\n if (a.x > b.x || a.x === b.x && a.y > b.y) {\n return 1;\n }\n\n return -1;\n });\n}\n/**\n * Generate a layout using the initialLayout and children as a template.\n * Missing entries will be added, extraneous ones will be truncated.\n *\n * Does not modify initialLayout.\n *\n * @param {Array} initialLayout Layout passed in through props.\n * @param {String} breakpoint Current responsive breakpoint.\n * @param {?String} compact Compaction option.\n * @return {Array} Working layout.\n */\n\n\nfunction synchronizeLayoutWithChildren(initialLayout\n/*: Layout*/\n, children\n/*: ReactChildren*/\n, cols\n/*: number*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n initialLayout = initialLayout || []; // Generate one layout item per child.\n\n var layout\n /*: LayoutItem[]*/\n = [];\n\n _react.default.Children.forEach(children, function (child\n /*: ReactElement<any>*/\n , i\n /*: number*/\n ) {\n // Don't overwrite if it already exists.\n var exists = getLayoutItem(initialLayout, String(child.key));\n\n if (exists) {\n layout[i] = cloneLayoutItem(exists);\n } else {\n if (!isProduction && child.props._grid) {\n console.warn(\"`_grid` properties on children have been deprecated as of React 15.2. \" + // eslint-disable-line\n \"Please use `data-grid` or add your properties directly to the `layout`.\");\n }\n\n var g = child.props[\"data-grid\"] || child.props._grid; // Hey, this item has a data-grid property, use it.\n\n if (g) {\n if (!isProduction) {\n validateLayout([g], \"ReactGridLayout.children\");\n }\n\n layout[i] = cloneLayoutItem(_objectSpread(_objectSpread({}, g), {}, {\n i: child.key\n }));\n } else {\n // Nothing provided: ensure this is added to the bottom\n layout[i] = cloneLayoutItem({\n w: 1,\n h: 1,\n x: 0,\n y: bottom(layout),\n i: String(child.key)\n });\n }\n }\n }); // Correct the layout.\n\n\n var correctedLayout = correctBounds(layout, {\n cols: cols\n });\n return compact(correctedLayout, compactType, cols);\n}\n/**\n * Validate a layout. Throws errors.\n *\n * @param {Array} layout Array of layout items.\n * @param {String} [contextName] Context name for errors.\n * @throw {Error} Validation error.\n */\n\n\nfunction validateLayout(layout\n/*: Layout*/\n)\n/*: void*/\n{\n var contextName\n /*: string*/\n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Layout\";\n var subProps = [\"x\", \"y\", \"w\", \"h\"];\n if (!Array.isArray(layout)) throw new Error(contextName + \" must be an array!\");\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var item = layout[i];\n\n for (var j = 0; j < subProps.length; j++) {\n if (typeof item[subProps[j]] !== \"number\") {\n throw new Error(\"ReactGridLayout: \" + contextName + \"[\" + i + \"].\" + subProps[j] + \" must be a number!\");\n }\n }\n\n if (item.i && typeof item.i !== \"string\") {\n throw new Error(\"ReactGridLayout: \" + contextName + \"[\" + i + \"].i must be a string!\");\n }\n\n if (item.static !== undefined && typeof item.static !== \"boolean\") {\n throw new Error(\"ReactGridLayout: \" + contextName + \"[\" + i + \"].static must be a boolean!\");\n }\n }\n} // Legacy support for verticalCompact: false\n\n\nfunction compactType(props\n/*: ?{ verticalCompact: boolean, compactType: CompactType }*/\n)\n/*: CompactType*/\n{\n var _ref3 = props || {},\n verticalCompact = _ref3.verticalCompact,\n compactType = _ref3.compactType;\n\n return verticalCompact === false ? null : compactType;\n} // Flow can't really figure this out, so we just use Object\n\n\nfunction autoBindHandlers(el\n/*: Object*/\n, fns\n/*: Array<string>*/\n)\n/*: void*/\n{\n fns.forEach(function (key) {\n return el[key] = el[key].bind(el);\n });\n}\n\nfunction log() {\n var _console;\n\n if (!DEBUG) return; // eslint-disable-next-line no-console\n\n (_console = console).log.apply(_console, arguments);\n}\n\nvar noop = function noop() {};\n\nexports.noop = noop;","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n cleanUpCode: cleanUpCode,\n finalCleanUpCode: finalCleanUpCode,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i<dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t]) types[types.length] = t;\n else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n }\n if (types.length) return types;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n return ['array'];\n }\n}\n\n\nfunction toHash(arr) {\n var hash = {};\n for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n return hash;\n}\n\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\nfunction getProperty(key) {\n return typeof key == 'number'\n ? '[' + key + ']'\n : IDENTIFIER.test(key)\n ? '.' + key\n : \"['\" + escapeQuotes(key) + \"']\";\n}\n\n\nfunction escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, '\\\\$&')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\t/g, '\\\\t');\n}\n\n\nfunction varOccurences(str, dataVar) {\n dataVar += '[^0-9]';\n var matches = str.match(new RegExp(dataVar, 'g'));\n return matches ? matches.length : 0;\n}\n\n\nfunction varReplace(str, dataVar, expr) {\n dataVar += '([^0-9])';\n expr = expr.replace(/\\$/g, '$$$$');\n return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\n\nvar EMPTY_ELSE = /else\\s*{\\s*}/g\n , EMPTY_IF_NO_ELSE = /if\\s*\\([^)]+\\)\\s*\\{\\s*\\}(?!\\s*else)/g\n , EMPTY_IF_WITH_ELSE = /if\\s*\\(([^)]+)\\)\\s*\\{\\s*\\}\\s*else(?!\\s*if)/g;\nfunction cleanUpCode(out) {\n return out.replace(EMPTY_ELSE, '')\n .replace(EMPTY_IF_NO_ELSE, '')\n .replace(EMPTY_IF_WITH_ELSE, 'if (!($1))');\n}\n\n\nvar ERRORS_REGEXP = /[^v.]errors/g\n , REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g\n , REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g\n , RETURN_VALID = 'return errors === 0;'\n , RETURN_TRUE = 'validate.errors = null; return true;'\n , RETURN_ASYNC = /if \\(errors === 0\\) return data;\\s*else throw new ValidationError\\(vErrors\\);/\n , RETURN_DATA_ASYNC = 'return data;'\n , ROOTDATA_REGEXP = /[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g\n , REMOVE_ROOTDATA = /if \\(rootData === undefined\\) rootData = data;/;\n\nfunction finalCleanUpCode(out, async) {\n var matches = out.match(ERRORS_REGEXP);\n if (matches && matches.length == 2) {\n out = async\n ? out.replace(REMOVE_ERRORS_ASYNC, '')\n .replace(RETURN_ASYNC, RETURN_DATA_ASYNC)\n : out.replace(REMOVE_ERRORS, '')\n .replace(RETURN_VALID, RETURN_TRUE);\n }\n\n matches = out.match(ROOTDATA_REGEXP);\n if (!matches || matches.length !== 3) return out;\n return out.replace(REMOVE_ROOTDATA, '');\n}\n\n\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == 'boolean') return !schema;\n for (var key in schema) if (rules[key]) return true;\n}\n\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\n\nfunction schemaUnknownRules(schema, rules) {\n if (typeof schema == 'boolean') return;\n for (var key in schema) if (!rules[key]) return key;\n}\n\n\nfunction toQuotedString(str) {\n return '\\'' + escapeQuotes(str) + '\\'';\n}\n\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers // false by default\n ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n return joinPaths(currentPath, path);\n}\n\n\nfunction getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers // false by default\n ? toQuotedString('/' + escapeJsonPointer(prop))\n : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n}\n\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === '') return 'rootData';\n if ($data[0] == '/') {\n if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n jsonPointer = $data;\n data = 'rootData';\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == '#') {\n if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i<segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += ' && ' + data;\n }\n }\n return expr;\n}\n\n\nfunction joinPaths (a, b) {\n if (a == '\"\"') return b;\n return (a + ' + ' + b).replace(/' \\+ '/g, '');\n}\n\n\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\n\n\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\n\n\nfunction escapeJsonPointer(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","// Simple file alias mechanisms for tests.\n\nlet pathPrefix = '';\nconst fileAliases: {[aliasPath: string]: string} = {};\n\n/*\n * Set a relative path prefix\n */\nexport function setPathPrefix(prefix: string): void {\n pathPrefix = prefix;\n}\n\n/*\n * Get the relative path prefix\n */\nexport function getPathPrefix(): string {\n return pathPrefix;\n}\n\n/**\n *\n * @param aliases\n *\n * Note: addAliases are an experimental export, they are only for testing of loaders.gl loaders\n * not intended as a generic aliasing mechanism\n */\nexport function addAliases(aliases: {[aliasPath: string]: string}): void {\n Object.assign(fileAliases, aliases);\n}\n\n/**\n * Resolves aliases and adds path-prefix to paths\n */\nexport function resolvePath(filename: string): string {\n for (const alias in fileAliases) {\n if (filename.startsWith(alias)) {\n const replacement = fileAliases[alias];\n filename = filename.replace(alias, replacement);\n }\n }\n if (!filename.startsWith('http://') && !filename.startsWith('https://')) {\n filename = `${pathPrefix}${filename}`;\n }\n return filename;\n}\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar meta_1 = require(\"@turf/meta\");\n/**\n * Takes a set of features, calculates the bbox of all input features, and returns a bounding box.\n *\n * @name bbox\n * @param {GeoJSON} geojson any GeoJSON object\n * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);\n * var bbox = turf.bbox(line);\n * var bboxPolygon = turf.bboxPolygon(bbox);\n *\n * //addToMap\n * var addToMap = [line, bboxPolygon]\n */\nfunction bbox(geojson) {\n var result = [Infinity, Infinity, -Infinity, -Infinity];\n meta_1.coordEach(geojson, function (coord) {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n}\nexports.default = bbox;\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","const {MAX_LENGTH} = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","/**\n * @module helpers\n */\n/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n *\n * @memberof helpers\n * @type {number}\n */\nexport var earthRadius = 6371008.8;\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var factors = {\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n degrees: earthRadius / 111325,\n feet: earthRadius * 3.28084,\n inches: earthRadius * 39.37,\n kilometers: earthRadius / 1000,\n kilometres: earthRadius / 1000,\n meters: earthRadius,\n metres: earthRadius,\n miles: earthRadius / 1609.344,\n millimeters: earthRadius * 1000,\n millimetres: earthRadius * 1000,\n nauticalmiles: earthRadius / 1852,\n radians: 1,\n yards: earthRadius * 1.0936,\n};\n/**\n * Units of measurement factors based on 1 meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var unitsFactors = {\n centimeters: 100,\n centimetres: 100,\n degrees: 1 / 111325,\n feet: 3.28084,\n inches: 39.37,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n meters: 1,\n metres: 1,\n miles: 1 / 1609.344,\n millimeters: 1000,\n millimetres: 1000,\n nauticalmiles: 1 / 1852,\n radians: 1 / earthRadius,\n yards: 1.0936133,\n};\n/**\n * Area of measurement factors based on 1 square meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var areaFactors = {\n acres: 0.000247105,\n centimeters: 10000,\n centimetres: 10000,\n feet: 10.763910417,\n hectares: 0.0001,\n inches: 1550.003100006,\n kilometers: 0.000001,\n kilometres: 0.000001,\n meters: 1,\n metres: 1,\n miles: 3.86e-7,\n millimeters: 1000000,\n millimetres: 1000000,\n yards: 1.195990046,\n};\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nexport function feature(geom, properties, options) {\n if (options === void 0) { options = {}; }\n var feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array<any>} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = \"Point\";\n * var coordinates = [110, 50];\n * var geometry = turf.geometry(type, coordinates);\n * // => geometry\n */\nexport function geometry(type, coordinates, _options) {\n if (_options === void 0) { _options = {}; }\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n}\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Point>} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nexport function point(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n var geom = {\n type: \"Point\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array<Array<number>>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Point>} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nexport function points(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Polygon>} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nexport function polygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {\n var ring = coordinates_1[_i];\n if (ring.length < 4) {\n throw new Error(\"Each LinearRing of a Polygon must have 4 or more Positions.\");\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n var geom = {\n type: \"Polygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Polygon>} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nexport function polygons(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<LineString>} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nexport function lineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n var geom = {\n type: \"LineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<LineString>} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nexport function lineStrings(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nexport function featureCollection(features, options) {\n if (options === void 0) { options = {}; }\n var fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\n/**\n * Creates a {@link Feature<MultiLineString>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array<Array<Array<number>>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiLineString>} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nexport function multiLineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiLineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<MultiPoint>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPoint>} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nexport function multiPoint(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPoint\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<MultiPolygon>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPolygon>} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nexport function multiPolygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPolygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<GeometryCollection>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array<Geometry>} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<GeometryCollection>} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = turf.geometry(\"Point\", [100, 0]);\n * var line = turf.geometry(\"LineString\", [[101, 0], [102, 1]]);\n * var collection = turf.geometryCollection([pt, line]);\n *\n * // => collection\n */\nexport function geometryCollection(geometries, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"GeometryCollection\",\n geometries: geometries,\n };\n return feature(geom, properties, options);\n}\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nexport function round(num, precision) {\n if (precision === void 0) { precision = 0; }\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} distance\n */\nexport function radiansToLength(radians, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} radians\n */\nexport function lengthToRadians(distance, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nexport function lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nexport function bearingToAzimuth(bearing) {\n var angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nexport function radiansToDegrees(radians) {\n var degrees = radians % (2 * Math.PI);\n return (degrees * 180) / Math.PI;\n}\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nexport function degreesToRadians(degrees) {\n var radians = degrees % 360;\n return (radians * Math.PI) / 180;\n}\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {Units} [originalUnit=\"kilometers\"] of the length\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted length\n */\nexport function convertLength(length, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"kilometers\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares\n * @param {number} area to be converted\n * @param {Units} [originalUnit=\"meters\"] of the distance\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted area\n */\nexport function convertArea(area, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"meters\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n var startFactor = areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n var finalFactor = areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return (area / startFactor) * finalFactor;\n}\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nexport function isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nexport function isObject(input) {\n return !!input && input.constructor === Object;\n}\n/**\n * Validate BBox\n *\n * @private\n * @param {Array<number>} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nexport function validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach(function (num) {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nexport function validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}\n","import { polygon } from \"@turf/helpers\";\n/**\n * Takes a bbox and returns an equivalent {@link Polygon|polygon}.\n *\n * @name bboxPolygon\n * @param {BBox} bbox extent in [minX, minY, maxX, maxY] order\n * @param {Object} [options={}] Optional parameters\n * @param {Properties} [options.properties={}] Translate properties to Polygon\n * @param {string|number} [options.id={}] Translate Id to Polygon\n * @returns {Feature<Polygon>} a Polygon representation of the bounding box\n * @example\n * var bbox = [0, 0, 10, 10];\n *\n * var poly = turf.bboxPolygon(bbox);\n *\n * //addToMap\n * var addToMap = [poly]\n */\nexport default function bboxPolygon(bbox, options) {\n if (options === void 0) { options = {}; }\n // Convert BBox positions to Numbers\n // No performance loss for including Number()\n // https://github.com/Turfjs/turf/issues/1119\n var west = Number(bbox[0]);\n var south = Number(bbox[1]);\n var east = Number(bbox[2]);\n var north = Number(bbox[3]);\n if (bbox.length === 6) {\n throw new Error(\"@turf/bbox-polygon does not support BBox with 6 positions\");\n }\n var lowLeft = [west, south];\n var topLeft = [west, north];\n var topRight = [east, north];\n var lowRight = [east, south];\n return polygon([[lowLeft, lowRight, topRight, topLeft, lowLeft]], options.properties, { bbox: bbox, id: options.id });\n}\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n// View and Projection Matrix calculations for mapbox-js style\n// map view properties\nimport Viewport from './viewport';\n\nimport {\n pixelsToWorld,\n getViewMatrix,\n addMetersToLngLat,\n getProjectionParameters,\n altitudeToFovy,\n fovyToAltitude,\n fitBounds,\n getBounds\n} from '@math.gl/web-mercator';\n\n// TODO - import from math.gl\nimport * as vec2 from 'gl-matrix/vec2';\nimport {Matrix4} from 'math.gl';\n\nconst TILE_SIZE = 512;\nconst EARTH_CIRCUMFERENCE = 40.03e6;\nconst DEGREES_TO_RADIANS = Math.PI / 180;\n\nfunction unitsPerMeter(latitude) {\n const latCosine = Math.cos(latitude * DEGREES_TO_RADIANS);\n return TILE_SIZE / EARTH_CIRCUMFERENCE / latCosine;\n}\n\nexport default class WebMercatorViewport extends Viewport {\n /**\n * @classdesc\n * Creates view/projection matrices from mercator params\n * Note: The Viewport is immutable in the sense that it only has accessors.\n * A new viewport instance should be created if any parameters have changed.\n */\n /* eslint-disable complexity, max-statements */\n constructor(opts = {}) {\n const {\n latitude = 0,\n longitude = 0,\n zoom = 11,\n pitch = 0,\n bearing = 0,\n nearZMultiplier = 0.1,\n farZMultiplier = 1.01,\n orthographic = false,\n projectionMatrix,\n\n repeat = false,\n worldOffset = 0,\n\n // backward compatibility\n // TODO: remove in v9\n legacyMeterSizes = false\n } = opts;\n\n let {width, height, altitude = 1.5} = opts;\n const scale = Math.pow(2, zoom);\n\n // Silently allow apps to send in 0,0 to facilitate isomorphic render etc\n width = width || 1;\n height = height || 1;\n\n let fovy;\n let projectionParameters = null;\n if (projectionMatrix) {\n altitude = projectionMatrix[5] / 2;\n fovy = altitudeToFovy(altitude);\n } else {\n if (opts.fovy) {\n fovy = opts.fovy;\n altitude = fovyToAltitude(fovy);\n } else {\n fovy = altitudeToFovy(altitude);\n }\n projectionParameters = getProjectionParameters({\n width,\n height,\n pitch,\n fovy,\n nearZMultiplier,\n farZMultiplier\n });\n }\n\n // The uncentered matrix allows us two move the center addition to the\n // shader (cheap) which gives a coordinate system that has its center in\n // the layer's center position. This makes rotations and other modelMatrx\n // transforms much more useful.\n let viewMatrixUncentered = getViewMatrix({\n height,\n pitch,\n bearing,\n scale,\n altitude\n });\n\n if (worldOffset) {\n const viewOffset = new Matrix4().translate([512 * worldOffset, 0, 0]);\n viewMatrixUncentered = viewOffset.multiplyLeft(viewMatrixUncentered);\n }\n\n super({\n ...opts,\n // x, y,\n width,\n height,\n\n // view matrix\n viewMatrix: viewMatrixUncentered,\n longitude,\n latitude,\n zoom,\n\n // projection matrix parameters\n ...projectionParameters,\n fovy,\n focalDistance: altitude\n });\n\n // Save parameters\n this.latitude = latitude;\n this.longitude = longitude;\n this.zoom = zoom;\n this.pitch = pitch;\n this.bearing = bearing;\n this.altitude = altitude;\n this.fovy = fovy;\n\n this.orthographic = orthographic;\n\n this._subViewports = repeat ? [] : null;\n this._pseudoMeters = legacyMeterSizes;\n\n Object.freeze(this);\n }\n /* eslint-enable complexity, max-statements */\n\n get subViewports() {\n if (this._subViewports && !this._subViewports.length) {\n // Cache sub viewports so that we only calculate them once\n const bounds = this.getBounds();\n\n const minOffset = Math.floor((bounds[0] + 180) / 360);\n const maxOffset = Math.ceil((bounds[2] - 180) / 360);\n\n for (let x = minOffset; x <= maxOffset; x++) {\n const offsetViewport = x\n ? new WebMercatorViewport({\n ...this,\n worldOffset: x\n })\n : this;\n this._subViewports.push(offsetViewport);\n }\n }\n return this._subViewports;\n }\n\n projectPosition(xyz) {\n if (this._pseudoMeters) {\n // Backward compatibility\n return super.projectPosition(xyz);\n }\n const [X, Y] = this.projectFlat(xyz);\n const Z = (xyz[2] || 0) * unitsPerMeter(xyz[1]);\n return [X, Y, Z];\n }\n\n unprojectPosition(xyz) {\n if (this._pseudoMeters) {\n // Backward compatibility\n return super.unprojectPosition(xyz);\n }\n const [X, Y] = this.unprojectFlat(xyz);\n const Z = (xyz[2] || 0) / unitsPerMeter(Y);\n return [X, Y, Z];\n }\n\n /**\n * Add a meter delta to a base lnglat coordinate, returning a new lnglat array\n *\n * Note: Uses simple linear approximation around the viewport center\n * Error increases with size of offset (roughly 1% per 100km)\n *\n * @param {[Number,Number]|[Number,Number,Number]) lngLatZ - base coordinate\n * @param {[Number,Number]|[Number,Number,Number]) xyz - array of meter deltas\n * @return {[Number,Number]|[Number,Number,Number]) array of [lng,lat,z] deltas\n */\n addMetersToLngLat(lngLatZ, xyz) {\n return addMetersToLngLat(lngLatZ, xyz);\n }\n\n panByPosition(coords, pixel) {\n const fromLocation = pixelsToWorld(pixel, this.pixelUnprojectionMatrix);\n const toLocation = this.projectFlat(coords);\n\n const translate = vec2.add([], toLocation, vec2.negate([], fromLocation));\n const newCenter = vec2.add([], this.center, translate);\n\n const [longitude, latitude] = this.unprojectFlat(newCenter);\n return {longitude, latitude};\n }\n\n getBounds(options = {}) {\n const corners = getBounds(this, options.z || 0);\n\n return [\n Math.min(corners[0][0], corners[1][0], corners[2][0], corners[3][0]),\n Math.min(corners[0][1], corners[1][1], corners[2][1], corners[3][1]),\n Math.max(corners[0][0], corners[1][0], corners[2][0], corners[3][0]),\n Math.max(corners[0][1], corners[1][1], corners[2][1], corners[3][1])\n ];\n }\n\n /**\n * Returns a new viewport that fit around the given rectangle.\n * Only supports non-perspective mode.\n * @param {Array} bounds - [[lon, lat], [lon, lat]]\n * @param {Number} [options.padding] - The amount of padding in pixels to add to the given bounds.\n * @param {Array} [options.offset] - The center of the given bounds relative to the map's center,\n * [x, y] measured in pixels.\n * @returns {WebMercatorViewport}\n */\n fitBounds(bounds, options = {}) {\n const {width, height} = this;\n const {longitude, latitude, zoom} = fitBounds({width, height, bounds, ...options});\n return new WebMercatorViewport({width, height, longitude, latitude, zoom});\n }\n}\n\nWebMercatorViewport.displayName = 'WebMercatorViewport';\n","import {clamp} from 'math.gl';\nimport Controller from './controller';\nimport ViewState from './view-state';\nimport {mod} from '../utils/math-utils';\n\nconst DEFAULT_STATE = {\n rotationX: 0,\n rotationOrbit: 0,\n zoom: 0,\n target: [0, 0, 0],\n minRotationX: -90,\n maxRotationX: 90,\n minZoom: -Infinity,\n maxZoom: Infinity\n};\n\n/* Helpers */\n\nexport class OrbitState extends ViewState {\n constructor({\n makeViewport,\n\n /* Viewport arguments */\n width, // Width of viewport\n height, // Height of viewport\n rotationX = DEFAULT_STATE.rotationX, // Rotation around x axis\n rotationOrbit = DEFAULT_STATE.rotationOrbit, // Rotation around orbit axis\n target = DEFAULT_STATE.target,\n zoom = DEFAULT_STATE.zoom,\n\n /* Viewport constraints */\n minRotationX = DEFAULT_STATE.minRotationX,\n maxRotationX = DEFAULT_STATE.maxRotationX,\n minZoom = DEFAULT_STATE.minZoom,\n maxZoom = DEFAULT_STATE.maxZoom,\n\n /** Interaction states, required to calculate change during transform */\n // Model state when the pan operation first started\n startPanPosition,\n // Model state when the rotate operation first started\n startRotatePos,\n startRotationX,\n startRotationOrbit,\n // Model state when the zoom operation first started\n startZoomPosition,\n startZoom\n }) {\n super({\n width,\n height,\n rotationX,\n rotationOrbit,\n target,\n zoom,\n minRotationX,\n maxRotationX,\n minZoom,\n maxZoom\n });\n\n this._state = {\n startPanPosition,\n startRotatePos,\n startRotationX,\n startRotationOrbit,\n startZoomPosition,\n startZoom\n };\n\n this.makeViewport = makeViewport;\n }\n\n /**\n * Start panning\n * @param {[Number, Number]} pos - position on screen where the pointer grabs\n */\n panStart({pos}) {\n return this._getUpdatedState({\n startPanPosition: this._unproject(pos)\n });\n }\n\n /**\n * Pan\n * @param {[Number, Number]} pos - position on screen where the pointer is\n */\n pan({pos, startPosition}) {\n const startPanPosition = this._state.startPanPosition || startPosition;\n\n if (!startPanPosition) {\n return this;\n }\n\n const viewport = this.makeViewport(this._viewportProps);\n const newProps = viewport.panByPosition(startPanPosition, pos);\n\n return this._getUpdatedState(newProps);\n }\n\n /**\n * End panning\n * Must call if `panStart()` was called\n */\n panEnd() {\n return this._getUpdatedState({\n startPanPosition: null\n });\n }\n\n /**\n * Start rotating\n * @param {[Number, Number]} pos - position on screen where the pointer grabs\n */\n rotateStart({pos}) {\n return this._getUpdatedState({\n startRotatePos: pos,\n startRotationX: this._viewportProps.rotationX,\n startRotationOrbit: this._viewportProps.rotationOrbit\n });\n }\n\n /**\n * Rotate\n * @param {[Number, Number]} pos - position on screen where the pointer is\n */\n rotate({pos, deltaAngleX = 0, deltaAngleY = 0}) {\n const {startRotatePos, startRotationX, startRotationOrbit} = this._state;\n const {width, height} = this._viewportProps;\n\n if (\n !startRotatePos ||\n !Number.isFinite(startRotationX) ||\n !Number.isFinite(startRotationOrbit)\n ) {\n return this;\n }\n\n let newRotation;\n if (pos) {\n let deltaScaleX = (pos[0] - startRotatePos[0]) / width;\n const deltaScaleY = (pos[1] - startRotatePos[1]) / height;\n\n if (startRotationX < -90 || startRotationX > 90) {\n // When looking at the \"back\" side of the scene, invert horizontal drag\n // so that the camera movement follows user input\n deltaScaleX *= -1;\n }\n newRotation = {\n rotationX: startRotationX + deltaScaleY * 180,\n rotationOrbit: startRotationOrbit + deltaScaleX * 180\n };\n } else {\n newRotation = {\n rotationX: startRotationX + deltaAngleY,\n rotationOrbit: startRotationOrbit + deltaAngleX\n };\n }\n\n return this._getUpdatedState(newRotation);\n }\n\n /**\n * End rotating\n * Must call if `rotateStart()` was called\n */\n rotateEnd() {\n return this._getUpdatedState({\n startRotationX: null,\n startRotationOrbit: null\n });\n }\n\n // shortest path between two view states\n shortestPathFrom(viewState) {\n const fromProps = viewState.getViewportProps();\n const props = {...this._viewportProps};\n const {rotationOrbit} = props;\n\n if (Math.abs(rotationOrbit - fromProps.rotationOrbit) > 180) {\n props.rotationOrbit = rotationOrbit < 0 ? rotationOrbit + 360 : rotationOrbit - 360;\n }\n\n return props;\n }\n\n /**\n * Start zooming\n * @param {[Number, Number]} pos - position on screen where the pointer grabs\n */\n zoomStart({pos}) {\n return this._getUpdatedState({\n startZoomPosition: this._unproject(pos),\n startZoom: this._viewportProps.zoom\n });\n }\n\n /**\n * Zoom\n * @param {[Number, Number]} pos - position on screen where the current target is\n * @param {[Number, Number]} startPos - the target position at\n * the start of the operation. Must be supplied of `zoomStart()` was not called\n * @param {Number} scale - a number between [0, 1] specifying the accumulated\n * relative scale.\n */\n zoom({pos, startPos, scale}) {\n const {zoom} = this._viewportProps;\n let {startZoom, startZoomPosition} = this._state;\n if (!Number.isFinite(startZoom)) {\n // We have two modes of zoom:\n // scroll zoom that are discrete events (transform from the current zoom level),\n // and pinch zoom that are continuous events (transform from the zoom level when\n // pinch started).\n // If startZoom state is defined, then use the startZoom state;\n // otherwise assume discrete zooming\n startZoom = zoom;\n startZoomPosition = this._unproject(startPos) || this._unproject(pos);\n }\n\n const newZoom = this._calculateNewZoom({scale, startZoom});\n const zoomedViewport = this.makeViewport({...this._viewportProps, zoom: newZoom});\n\n return this._getUpdatedState({\n zoom: newZoom,\n ...zoomedViewport.panByPosition(startZoomPosition, pos)\n });\n }\n\n /**\n * End zooming\n * Must call if `zoomStart()` was called\n */\n zoomEnd() {\n return this._getUpdatedState({\n startZoomPosition: null,\n startZoom: null\n });\n }\n\n zoomIn(speed = 2) {\n return this._getUpdatedState({\n zoom: this._calculateNewZoom({scale: speed})\n });\n }\n\n zoomOut(speed = 2) {\n return this._getUpdatedState({\n zoom: this._calculateNewZoom({scale: 1 / speed})\n });\n }\n\n moveLeft(speed = 50) {\n return this._panFromCenter([-speed, 0]);\n }\n\n moveRight(speed = 50) {\n return this._panFromCenter([speed, 0]);\n }\n\n moveUp(speed = 50) {\n return this._panFromCenter([0, -speed]);\n }\n\n moveDown(speed = 50) {\n return this._panFromCenter([0, speed]);\n }\n\n rotateLeft(speed = 15) {\n return this._getUpdatedState({\n rotationOrbit: this._viewportProps.rotationOrbit - speed\n });\n }\n\n rotateRight(speed = 15) {\n return this._getUpdatedState({\n rotationOrbit: this._viewportProps.rotationOrbit + speed\n });\n }\n\n rotateUp(speed = 10) {\n return this._getUpdatedState({\n rotationX: this._viewportProps.rotationX - speed\n });\n }\n\n rotateDown(speed = 10) {\n return this._getUpdatedState({\n rotationX: this._viewportProps.rotationX + speed\n });\n }\n\n /* Private methods */\n\n _unproject(pos) {\n const viewport = this.makeViewport(this._viewportProps);\n return pos && viewport.unproject(pos);\n }\n\n // Calculates new zoom\n _calculateNewZoom({scale, startZoom}) {\n const {maxZoom, minZoom} = this._viewportProps;\n if (!Number.isFinite(startZoom)) {\n startZoom = this._viewportProps.zoom;\n }\n const zoom = startZoom + Math.log2(scale);\n return clamp(zoom, minZoom, maxZoom);\n }\n\n _panFromCenter(offset) {\n const {width, height, target} = this._viewportProps;\n return this.pan({\n startPosition: target,\n pos: [width / 2 + offset[0], height / 2 + offset[1]]\n });\n }\n\n _getUpdatedState(newProps) {\n // Update _viewportProps\n return new this.constructor({...this._viewportProps, ...this._state, ...newProps});\n }\n\n // Apply any constraints (mathematical or defined by _viewportProps) to map state\n _applyConstraints(props) {\n // Ensure zoom is within specified range\n const {maxZoom, minZoom, zoom, maxRotationX, minRotationX, rotationOrbit} = props;\n\n props.zoom = clamp(zoom, minZoom, maxZoom);\n props.rotationX = clamp(props.rotationX, minRotationX, maxRotationX);\n if (rotationOrbit < -180 || rotationOrbit > 180) {\n props.rotationOrbit = mod(rotationOrbit + 180, 360) - 180;\n }\n\n return props;\n }\n}\n\nexport default class OrbitController extends Controller {\n constructor(props) {\n super(OrbitState, props);\n }\n\n get linearTransitionProps() {\n return ['target', 'zoom', 'rotationX', 'rotationOrbit'];\n }\n}\n","import {equals} from 'math.gl';\nimport assert from '../utils/assert';\n\nexport default class TransitionInterpolator {\n /**\n * @param opts {array|object}\n * @param opts.compare {array} - prop names used in equality check\n * @param opts.extract {array} - prop names needed for interpolation\n * @param opts.required {array} - prop names that must be supplied\n * alternatively, supply one list of prop names as `opts` if all of the above are the same.\n */\n constructor(opts = {}) {\n if (Array.isArray(opts)) {\n opts = {\n compare: opts,\n extract: opts,\n required: opts\n };\n }\n const {compare, extract, required} = opts;\n\n this._propsToCompare = compare;\n this._propsToExtract = extract;\n this._requiredProps = required;\n }\n\n /**\n * Checks if two sets of props need transition in between\n * @param currentProps {object} - a list of viewport props\n * @param nextProps {object} - a list of viewport props\n * @returns {bool} - true if two props are equivalent\n */\n arePropsEqual(currentProps, nextProps) {\n for (const key of this._propsToCompare || Object.keys(nextProps)) {\n if (\n !(key in currentProps) ||\n !(key in nextProps) ||\n !equals(currentProps[key], nextProps[key])\n ) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Called before transition starts to validate/pre-process start and end props\n * @param startProps {object} - a list of starting viewport props\n * @param endProps {object} - a list of target viewport props\n * @returns {Object} {start, end} - start and end props to be passed\n * to `interpolateProps`\n */\n initializeProps(startProps, endProps) {\n let result;\n\n if (this._propsToExtract) {\n const startViewStateProps = {};\n const endViewStateProps = {};\n\n for (const key of this._propsToExtract) {\n startViewStateProps[key] = startProps[key];\n endViewStateProps[key] = endProps[key];\n }\n result = {start: startViewStateProps, end: endViewStateProps};\n } else {\n result = {start: startProps, end: endProps};\n }\n\n this._checkRequiredProps(result.start);\n this._checkRequiredProps(result.end);\n\n return result;\n }\n\n /**\n * Returns viewport props in transition\n * @param startProps {object} - a list of starting viewport props\n * @param endProps {object} - a list of target viewport props\n * @param t {number} - a time factor between [0, 1]\n * @returns {object} - a list of interpolated viewport props\n */\n interpolateProps(startProps, endProps, t) {\n return endProps;\n }\n\n /**\n * Returns transition duration\n * @param startProps {object} - a list of starting viewport props\n * @param endProps {object} - a list of target viewport props\n * @returns {Number} - transition duration in milliseconds\n */\n getDuration(startProps, endProps) {\n return endProps.transitionDuration;\n }\n\n _checkRequiredProps(props) {\n if (!this._requiredProps) {\n return;\n }\n\n this._requiredProps.forEach(propName => {\n const value = props[propName];\n assert(\n Number.isFinite(value) || Array.isArray(value),\n `${propName} is required for transition`\n );\n });\n }\n}\n","import {clamp} from 'math.gl';\nimport Controller from './controller';\nimport ViewState from './view-state';\nimport {normalizeViewportProps} from '@math.gl/web-mercator';\nimport assert from '../utils/assert';\n\nconst PITCH_MOUSE_THRESHOLD = 5;\nconst PITCH_ACCEL = 1.2;\n\nconst DEFAULT_STATE = {\n pitch: 0,\n bearing: 0,\n altitude: 1.5,\n minZoom: 0,\n maxZoom: 20,\n minPitch: 0,\n maxPitch: 60\n};\n\n/* Utils */\n\nexport class MapState extends ViewState {\n constructor({\n makeViewport,\n\n /** Mapbox viewport properties */\n /** The width of the viewport */\n width,\n /** The height of the viewport */\n height,\n /** The latitude at the center of the viewport */\n latitude,\n /** The longitude at the center of the viewport */\n longitude,\n /** The tile zoom level of the map. */\n zoom,\n /** The bearing of the viewport in degrees */\n bearing = DEFAULT_STATE.bearing,\n /** The pitch of the viewport in degrees */\n pitch = DEFAULT_STATE.pitch,\n /**\n * Specify the altitude of the viewport camera\n * Unit: map heights, default 1.5\n * Non-public API, see https://github.com/mapbox/mapbox-gl-js/issues/1137\n */\n altitude = DEFAULT_STATE.altitude,\n\n /** Viewport constraints */\n maxZoom = DEFAULT_STATE.maxZoom,\n minZoom = DEFAULT_STATE.minZoom,\n maxPitch = DEFAULT_STATE.maxPitch,\n minPitch = DEFAULT_STATE.minPitch,\n\n /** Interaction states, required to calculate change during transform */\n /* The point on map being grabbed when the operation first started */\n startPanLngLat,\n /* Center of the zoom when the operation first started */\n startZoomLngLat,\n /* Pointer position when rotation started */\n startRotatePos,\n /** Bearing when current perspective rotate operation started */\n startBearing,\n /** Pitch when current perspective rotate operation started */\n startPitch,\n /** Zoom when current zoom operation started */\n startZoom,\n\n /** Normalize viewport props to fit map height into viewport. Default `true` */\n normalize\n } = {}) {\n assert(Number.isFinite(longitude)); // `longitude` must be supplied\n assert(Number.isFinite(latitude)); // `latitude` must be supplied\n assert(Number.isFinite(zoom)); // `zoom` must be supplied\n\n super({\n width,\n height,\n latitude,\n longitude,\n zoom,\n bearing,\n pitch,\n altitude,\n maxZoom,\n minZoom,\n maxPitch,\n minPitch,\n normalize\n });\n\n this._state = {\n startPanLngLat,\n startZoomLngLat,\n startRotatePos,\n startBearing,\n startPitch,\n startZoom\n };\n\n this.makeViewport = makeViewport;\n }\n\n /**\n * Start panning\n * @param {[Number, Number]} pos - position on screen where the pointer grabs\n */\n panStart({pos}) {\n return this._getUpdatedState({\n startPanLngLat: this._unproject(pos)\n });\n }\n\n /**\n * Pan\n * @param {[Number, Number]} pos - position on screen where the pointer is\n * @param {[Number, Number], optional} startPos - where the pointer grabbed at\n * the start of the operation. Must be supplied of `panStart()` was not called\n */\n pan({pos, startPos}) {\n const startPanLngLat = this._state.startPanLngLat || this._unproject(startPos);\n\n if (!startPanLngLat) {\n return this;\n }\n\n const viewport = this.makeViewport(this._viewportProps);\n const newProps = viewport.panByPosition(startPanLngLat, pos);\n\n return this._getUpdatedState(newProps);\n }\n\n /**\n * End panning\n * Must call if `panStart()` was called\n */\n panEnd() {\n return this._getUpdatedState({\n startPanLngLat: null\n });\n }\n\n /**\n * Start rotating\n * @param {[Number, Number]} pos - position on screen where the center is\n */\n rotateStart({pos}) {\n return this._getUpdatedState({\n startRotatePos: pos,\n startBearing: this._viewportProps.bearing,\n startPitch: this._viewportProps.pitch\n });\n }\n\n /**\n * Rotate\n * @param {[Number, Number]} pos - position on screen where the center is\n */\n rotate({pos, deltaAngleX = 0, deltaAngleY = 0}) {\n const {startRotatePos, startBearing, startPitch} = this._state;\n\n if (!startRotatePos || !Number.isFinite(startBearing) || !Number.isFinite(startPitch)) {\n return this;\n }\n let newRotation;\n if (pos) {\n newRotation = this._calculateNewPitchAndBearing({\n ...this._getRotationParams(pos, startRotatePos),\n startBearing,\n startPitch\n });\n } else {\n newRotation = {\n bearing: startBearing + deltaAngleX,\n pitch: startPitch + deltaAngleY\n };\n }\n return this._getUpdatedState(newRotation);\n }\n\n /**\n * End rotating\n * Must call if `rotateStart()` was called\n */\n rotateEnd() {\n return this._getUpdatedState({\n startBearing: null,\n startPitch: null\n });\n }\n\n /**\n * Start zooming\n * @param {[Number, Number]} pos - position on screen where the center is\n */\n zoomStart({pos}) {\n return this._getUpdatedState({\n startZoomLngLat: this._unproject(pos),\n startZoom: this._viewportProps.zoom\n });\n }\n\n /**\n * Zoom\n * @param {[Number, Number]} pos - position on screen where the current center is\n * @param {[Number, Number]} startPos - the center position at\n * the start of the operation. Must be supplied of `zoomStart()` was not called\n * @param {Number} scale - a number between [0, 1] specifying the accumulated\n * relative scale.\n */\n zoom({pos, startPos, scale}) {\n // Make sure we zoom around the current mouse position rather than map center\n let {startZoom, startZoomLngLat} = this._state;\n\n if (!Number.isFinite(startZoom)) {\n // We have two modes of zoom:\n // scroll zoom that are discrete events (transform from the current zoom level),\n // and pinch zoom that are continuous events (transform from the zoom level when\n // pinch started).\n // If startZoom state is defined, then use the startZoom state;\n // otherwise assume discrete zooming\n startZoom = this._viewportProps.zoom;\n startZoomLngLat = this._unproject(startPos) || this._unproject(pos);\n }\n\n const zoom = this._calculateNewZoom({scale, startZoom});\n\n const zoomedViewport = this.makeViewport({...this._viewportProps, zoom});\n\n return this._getUpdatedState({\n zoom,\n ...zoomedViewport.panByPosition(startZoomLngLat, pos)\n });\n }\n\n /**\n * End zooming\n * Must call if `zoomStart()` was called\n */\n zoomEnd() {\n return this._getUpdatedState({\n startZoomLngLat: null,\n startZoom: null\n });\n }\n\n zoomIn(speed = 2) {\n return this._zoomFromCenter(speed);\n }\n\n zoomOut(speed = 2) {\n return this._zoomFromCenter(1 / speed);\n }\n\n moveLeft(speed = 100) {\n return this._panFromCenter([speed, 0]);\n }\n\n moveRight(speed = 100) {\n return this._panFromCenter([-speed, 0]);\n }\n\n moveUp(speed = 100) {\n return this._panFromCenter([0, speed]);\n }\n\n moveDown(speed = 100) {\n return this._panFromCenter([0, -speed]);\n }\n\n rotateLeft(speed = 15) {\n return this._getUpdatedState({\n bearing: this._viewportProps.bearing - speed\n });\n }\n\n rotateRight(speed = 15) {\n return this._getUpdatedState({\n bearing: this._viewportProps.bearing + speed\n });\n }\n\n rotateUp(speed = 10) {\n return this._getUpdatedState({\n pitch: this._viewportProps.pitch + speed\n });\n }\n\n rotateDown(speed = 10) {\n return this._getUpdatedState({\n pitch: this._viewportProps.pitch - speed\n });\n }\n\n shortestPathFrom(viewState) {\n // const endViewStateProps = new this.ControllerState(endProps).shortestPathFrom(startViewstate);\n const fromProps = viewState.getViewportProps();\n const props = {...this._viewportProps};\n const {bearing, longitude} = props;\n\n if (Math.abs(bearing - fromProps.bearing) > 180) {\n props.bearing = bearing < 0 ? bearing + 360 : bearing - 360;\n }\n if (Math.abs(longitude - fromProps.longitude) > 180) {\n props.longitude = longitude < 0 ? longitude + 360 : longitude - 360;\n }\n return props;\n }\n\n /* Private methods */\n\n _zoomFromCenter(scale) {\n const {width, height} = this._viewportProps;\n return this.zoom({\n pos: [width / 2, height / 2],\n scale\n });\n }\n\n _panFromCenter(offset) {\n const {width, height} = this._viewportProps;\n return this.pan({\n startPos: [width / 2, height / 2],\n pos: [width / 2 + offset[0], height / 2 + offset[1]]\n });\n }\n\n _getUpdatedState(newProps) {\n // Update _viewportProps\n return new this.constructor({\n makeViewport: this.makeViewport,\n ...this._viewportProps,\n ...this._state,\n ...newProps\n });\n }\n\n // Apply any constraints (mathematical or defined by _viewportProps) to map state\n _applyConstraints(props) {\n // Ensure zoom is within specified range\n const {maxZoom, minZoom, zoom} = props;\n props.zoom = clamp(zoom, minZoom, maxZoom);\n\n // Ensure pitch is within specified range\n const {maxPitch, minPitch, pitch} = props;\n props.pitch = clamp(pitch, minPitch, maxPitch);\n\n // Normalize viewport props to fit map height into viewport\n const {normalize = true} = props;\n if (normalize) {\n Object.assign(props, normalizeViewportProps(props));\n }\n\n return props;\n }\n\n _unproject(pos) {\n const viewport = this.makeViewport(this._viewportProps);\n return pos && viewport.unproject(pos);\n }\n\n // Calculates new zoom\n _calculateNewZoom({scale, startZoom}) {\n const {maxZoom, minZoom} = this._viewportProps;\n const zoom = startZoom + Math.log2(scale);\n return clamp(zoom, minZoom, maxZoom);\n }\n\n // Calculates a new pitch and bearing from a position (coming from an event)\n _calculateNewPitchAndBearing({deltaScaleX, deltaScaleY, startBearing, startPitch}) {\n // clamp deltaScaleY to [-1, 1] so that rotation is constrained between minPitch and maxPitch.\n // deltaScaleX does not need to be clamped as bearing does not have constraints.\n deltaScaleY = clamp(deltaScaleY, -1, 1);\n\n const {minPitch, maxPitch} = this._viewportProps;\n\n const bearing = startBearing + 180 * deltaScaleX;\n let pitch = startPitch;\n if (deltaScaleY > 0) {\n // Gradually increase pitch\n pitch = startPitch + deltaScaleY * (maxPitch - startPitch);\n } else if (deltaScaleY < 0) {\n // Gradually decrease pitch\n pitch = startPitch - deltaScaleY * (minPitch - startPitch);\n }\n\n return {\n pitch,\n bearing\n };\n }\n\n _getRotationParams(pos, startPos) {\n const deltaX = pos[0] - startPos[0];\n const deltaY = pos[1] - startPos[1];\n const centerY = pos[1];\n const startY = startPos[1];\n const {width, height} = this._viewportProps;\n\n const deltaScaleX = deltaX / width;\n let deltaScaleY = 0;\n\n if (deltaY > 0) {\n if (Math.abs(height - startY) > PITCH_MOUSE_THRESHOLD) {\n // Move from 0 to -1 as we drag upwards\n deltaScaleY = (deltaY / (startY - height)) * PITCH_ACCEL;\n }\n } else if (deltaY < 0) {\n if (startY > PITCH_MOUSE_THRESHOLD) {\n // Move from 0 to 1 as we drag upwards\n deltaScaleY = 1 - centerY / startY;\n }\n }\n deltaScaleY = Math.min(1, Math.max(-1, deltaScaleY));\n return {deltaScaleX, deltaScaleY};\n }\n}\n\nexport default class MapController extends Controller {\n constructor(props) {\n props.dragMode = props.dragMode || 'pan';\n super(MapState, props);\n }\n\n setProps(props) {\n const oldProps = this.controllerStateProps;\n\n super.setProps(props);\n\n const dimensionChanged = !oldProps || oldProps.height !== props.height;\n if (dimensionChanged) {\n // Dimensions changed, normalize the props\n this.updateViewport(\n new this.ControllerState({\n makeViewport: this.makeViewport,\n ...this.controllerStateProps,\n ...this._state\n })\n );\n }\n }\n\n get linearTransitionProps() {\n return ['longitude', 'latitude', 'zoom', 'bearing', 'pitch'];\n }\n}\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n// Handles tesselation of polygons with holes\n// - 2D surfaces\n// - 2D outlines\n// - 3D surfaces (top and sides only)\n// - 3D wireframes (not yet)\nimport * as Polygon from './polygon';\nimport {Tesselator} from '@deck.gl/core';\nimport {cutPolygonByGrid, cutPolygonByMercatorBounds} from '@math.gl/polygon';\n\n// This class is set up to allow querying one attribute at a time\n// the way the AttributeManager expects it\nexport default class PolygonTesselator extends Tesselator {\n constructor(opts) {\n const {fp64, IndexType = Uint32Array} = opts;\n super({\n ...opts,\n attributes: {\n positions: {size: 3, type: fp64 ? Float64Array : Float32Array},\n vertexValid: {type: Uint8ClampedArray, size: 1},\n indices: {type: IndexType, size: 1}\n }\n });\n }\n\n /* Getters */\n get(attributeName) {\n const {attributes} = this;\n if (attributeName === 'indices') {\n return attributes.indices && attributes.indices.subarray(0, this.vertexCount);\n }\n\n return attributes[attributeName];\n }\n\n /* Implement base Tesselator interface */\n updateGeometry(opts) {\n super.updateGeometry(opts);\n\n const externalIndices = this.buffers.indices;\n if (externalIndices) {\n this.vertexCount = (externalIndices.value || externalIndices).length;\n }\n }\n\n normalizeGeometry(polygon) {\n if (this.normalize) {\n polygon = Polygon.normalize(polygon, this.positionSize);\n if (this.opts.resolution) {\n return cutPolygonByGrid(polygon.positions || polygon, polygon.holeIndices, {\n size: this.positionSize,\n gridResolution: this.opts.resolution,\n edgeTypes: true\n });\n }\n if (this.opts.wrapLongitude) {\n return cutPolygonByMercatorBounds(polygon.positions || polygon, polygon.holeIndices, {\n size: this.positionSize,\n maxLatitude: 86,\n edgeTypes: true\n });\n }\n }\n return polygon;\n }\n\n getGeometrySize(polygon) {\n if (Array.isArray(polygon) && !Number.isFinite(polygon[0])) {\n let size = 0;\n for (const subPolygon of polygon) {\n size += this.getGeometrySize(subPolygon);\n }\n return size;\n }\n return (polygon.positions || polygon).length / this.positionSize;\n }\n\n getGeometryFromBuffer(buffer) {\n if (this.normalize || !this.buffers.indices) {\n return super.getGeometryFromBuffer(buffer);\n }\n // we don't need to read the positions if no normalization/tesselation\n return () => null;\n }\n\n updateGeometryAttributes(polygon, context) {\n if (Array.isArray(polygon) && !Number.isFinite(polygon[0])) {\n for (const subPolygon of polygon) {\n const geometrySize = this.getGeometrySize(subPolygon);\n context.geometrySize = geometrySize;\n this.updateGeometryAttributes(subPolygon, context);\n context.vertexStart += geometrySize;\n context.indexStart = this.indexStarts[context.geometryIndex + 1];\n }\n } else {\n this._updateIndices(polygon, context);\n this._updatePositions(polygon, context);\n this._updateVertexValid(polygon, context);\n }\n }\n\n // Flatten the indices array\n _updateIndices(polygon, {geometryIndex, vertexStart: offset, indexStart}) {\n const {attributes, indexStarts, typedArrayManager} = this;\n\n let target = attributes.indices;\n if (!target) {\n return;\n }\n let i = indexStart;\n\n // 1. get triangulated indices for the internal areas\n const indices = Polygon.getSurfaceIndices(polygon, this.positionSize, this.opts.preproject);\n\n // make sure the buffer is large enough\n target = typedArrayManager.allocate(target, indexStart + indices.length, {\n copy: true\n });\n\n // 2. offset each index by the number of indices in previous polygons\n for (let j = 0; j < indices.length; j++) {\n target[i++] = indices[j] + offset;\n }\n\n indexStarts[geometryIndex + 1] = indexStart + indices.length;\n attributes.indices = target;\n }\n\n // Flatten out all the vertices of all the sub subPolygons\n _updatePositions(polygon, {vertexStart, geometrySize}) {\n const {\n attributes: {positions},\n positionSize\n } = this;\n if (!positions) {\n return;\n }\n const polygonPositions = polygon.positions || polygon;\n\n for (let i = vertexStart, j = 0; j < geometrySize; i++, j++) {\n const x = polygonPositions[j * positionSize];\n const y = polygonPositions[j * positionSize + 1];\n const z = positionSize > 2 ? polygonPositions[j * positionSize + 2] : 0;\n\n positions[i * 3] = x;\n positions[i * 3 + 1] = y;\n positions[i * 3 + 2] = z;\n }\n }\n\n _updateVertexValid(polygon, {vertexStart, geometrySize}) {\n const {\n attributes: {vertexValid},\n positionSize\n } = this;\n const holeIndices = polygon && polygon.holeIndices;\n /* We are reusing the some buffer for `nextPositions` by offseting one vertex\n * to the left. As a result,\n * the last vertex of each ring overlaps with the first vertex of the next ring.\n * `vertexValid` is used to mark the end of each ring so we don't draw these\n * segments:\n positions A0 A1 A2 A3 A4 B0 B1 B2 C0 ...\n nextPositions A1 A2 A3 A4 B0 B1 B2 C0 C1 ...\n vertexValid 1 1 1 1 0 1 1 0 1 ...\n */\n if (polygon && polygon.edgeTypes) {\n vertexValid.set(polygon.edgeTypes, vertexStart);\n } else {\n vertexValid.fill(1, vertexStart, vertexStart + geometrySize);\n }\n if (holeIndices) {\n for (let j = 0; j < holeIndices.length; j++) {\n vertexValid[vertexStart + holeIndices[j] / positionSize - 1] = 0;\n }\n }\n vertexValid[vertexStart + geometrySize - 1] = 0;\n }\n}\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nexport default `\\\n\nattribute vec2 vertexPositions;\nattribute float vertexValid;\n\nuniform bool extruded;\nuniform bool isWireframe;\nuniform float elevationScale;\nuniform float opacity;\n\nvarying vec4 vColor;\n\nstruct PolygonProps {\n vec4 fillColors;\n vec4 lineColors;\n vec3 positions;\n vec3 nextPositions;\n vec3 pickingColors;\n vec3 positions64Low;\n vec3 nextPositions64Low;\n float elevations;\n};\n\nvec3 project_offset_normal(vec3 vector) {\n if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSETS) {\n // normals generated by the polygon tesselator are in lnglat offsets instead of meters\n return normalize(vector * project_uCommonUnitsPerWorldUnit);\n }\n return project_normal(vector);\n}\n\nvoid calculatePosition(PolygonProps props) {\n#ifdef IS_SIDE_VERTEX\n if(vertexValid < 0.5){\n gl_Position = vec4(0.);\n return;\n }\n#endif\n\n vec3 pos;\n vec3 pos64Low;\n vec3 normal;\n vec4 colors = isWireframe ? props.lineColors : props.fillColors;\n\n geometry.worldPosition = props.positions;\n geometry.worldPositionAlt = props.nextPositions;\n geometry.pickingColor = props.pickingColors;\n\n#ifdef IS_SIDE_VERTEX\n pos = mix(props.positions, props.nextPositions, vertexPositions.x);\n pos64Low = mix(props.positions64Low, props.nextPositions64Low, vertexPositions.x);\n#else\n pos = props.positions;\n pos64Low = props.positions64Low;\n#endif\n\n if (extruded) {\n pos.z += props.elevations * vertexPositions.y * elevationScale;\n\n#ifdef IS_SIDE_VERTEX\n normal = vec3(\n props.positions.y - props.nextPositions.y + (props.positions64Low.y - props.nextPositions64Low.y),\n props.nextPositions.x - props.positions.x + (props.nextPositions64Low.x - props.positions64Low.x),\n 0.0);\n normal = project_offset_normal(normal);\n#else\n normal = vec3(0.0, 0.0, 1.0);\n#endif\n geometry.normal = normal;\n }\n\n gl_Position = project_position_to_clipspace(pos, pos64Low, vec3(0.), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n if (extruded) {\n vec3 lightColor = lighting_getLightColor(colors.rgb, project_uCameraPosition, geometry.position.xyz, normal);\n vColor = vec4(lightColor, colors.a * opacity);\n } else {\n vColor = vec4(colors.rgb, colors.a * opacity);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport main from './solid-polygon-layer-vertex-main.glsl';\n\nexport default `\\\n#define SHADER_NAME solid-polygon-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec3 positions64Low;\nattribute float elevations;\nattribute vec4 fillColors;\nattribute vec4 lineColors;\nattribute vec3 pickingColors;\n\n${main}\n\nvoid main(void) {\n PolygonProps props;\n\n props.positions = positions;\n props.positions64Low = positions64Low;\n props.elevations = elevations;\n props.fillColors = fillColors;\n props.lineColors = lineColors;\n props.pickingColors = pickingColors;\n\n calculatePosition(props);\n}\n`;\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport main from './solid-polygon-layer-vertex-main.glsl';\n\nexport default `\\\n#define SHADER_NAME solid-polygon-layer-vertex-shader-side\n#define IS_SIDE_VERTEX\n\n\nattribute vec3 instancePositions;\nattribute vec3 nextPositions;\nattribute vec3 instancePositions64Low;\nattribute vec3 nextPositions64Low;\nattribute float instanceElevations;\nattribute vec4 instanceFillColors;\nattribute vec4 instanceLineColors;\nattribute vec3 instancePickingColors;\n\n${main}\n\nvoid main(void) {\n PolygonProps props;\n\n #if RING_WINDING_ORDER_CW == 1\n props.positions = instancePositions;\n props.positions64Low = instancePositions64Low;\n props.nextPositions = nextPositions;\n props.nextPositions64Low = nextPositions64Low;\n #else\n props.positions = nextPositions;\n props.positions64Low = nextPositions64Low;\n props.nextPositions = instancePositions;\n props.nextPositions64Low = instancePositions64Low;\n #endif\n props.elevations = instanceElevations;\n props.fillColors = instanceFillColors;\n props.lineColors = instanceLineColors;\n props.pickingColors = instancePickingColors;\n\n calculatePosition(props);\n}\n`;\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {Layer, project32, gouraudLighting, picking, COORDINATE_SYSTEM} from '@deck.gl/core';\nimport GL from '@luma.gl/constants';\nimport {Model, Geometry, hasFeatures, FEATURES} from '@luma.gl/core';\n\n// Polygon geometry generation is managed by the polygon tesselator\nimport PolygonTesselator from './polygon-tesselator';\n\nimport vsTop from './solid-polygon-layer-vertex-top.glsl';\nimport vsSide from './solid-polygon-layer-vertex-side.glsl';\nimport fs from './solid-polygon-layer-fragment.glsl';\n\nconst DEFAULT_COLOR = [0, 0, 0, 255];\n\nconst defaultProps = {\n filled: true,\n // Whether to extrude\n extruded: false,\n // Whether to draw a GL.LINES wireframe of the polygon\n wireframe: false,\n _normalize: true,\n _windingOrder: 'CW',\n\n // elevation multiplier\n elevationScale: {type: 'number', min: 0, value: 1},\n\n // Accessor for polygon geometry\n getPolygon: {type: 'accessor', value: f => f.polygon},\n // Accessor for extrusion height\n getElevation: {type: 'accessor', value: 1000},\n // Accessor for colors\n getFillColor: {type: 'accessor', value: DEFAULT_COLOR},\n getLineColor: {type: 'accessor', value: DEFAULT_COLOR},\n\n // Optional settings for 'lighting' shader module\n material: true\n};\n\nconst ATTRIBUTE_TRANSITION = {\n enter: (value, chunk) => {\n return chunk.length ? chunk.subarray(chunk.length - value.length) : value;\n }\n};\n\nexport default class SolidPolygonLayer extends Layer {\n getShaders(type) {\n return super.getShaders({\n vs: type === 'top' ? vsTop : vsSide,\n fs,\n defines: {\n RING_WINDING_ORDER_CW: !this.props._normalize && this.props._windingOrder === 'CCW' ? 0 : 1\n },\n modules: [project32, gouraudLighting, picking]\n });\n }\n\n get wrapLongitude() {\n return false;\n }\n\n initializeState() {\n const {gl, viewport} = this.context;\n let {coordinateSystem} = this.props;\n if (viewport.isGeospatial && coordinateSystem === COORDINATE_SYSTEM.DEFAULT) {\n coordinateSystem = COORDINATE_SYSTEM.LNGLAT;\n }\n\n this.setState({\n numInstances: 0,\n polygonTesselator: new PolygonTesselator({\n // Lnglat coordinates are usually projected non-linearly, which affects tesselation results\n // Provide a preproject function if the coordinates are in lnglat\n preproject: coordinateSystem === COORDINATE_SYSTEM.LNGLAT && viewport.projectFlat,\n fp64: this.use64bitPositions(),\n IndexType: !gl || hasFeatures(gl, FEATURES.ELEMENT_INDEX_UINT32) ? Uint32Array : Uint16Array\n })\n });\n\n const attributeManager = this.getAttributeManager();\n const noAlloc = true;\n\n attributeManager.remove(['instancePickingColors']);\n\n /* eslint-disable max-len */\n attributeManager.add({\n indices: {size: 1, isIndexed: true, update: this.calculateIndices, noAlloc},\n positions: {\n size: 3,\n type: GL.DOUBLE,\n fp64: this.use64bitPositions(),\n transition: ATTRIBUTE_TRANSITION,\n accessor: 'getPolygon',\n update: this.calculatePositions,\n noAlloc,\n shaderAttributes: {\n positions: {\n vertexOffset: 0,\n divisor: 0\n },\n instancePositions: {\n vertexOffset: 0,\n divisor: 1\n },\n nextPositions: {\n vertexOffset: 1,\n divisor: 1\n }\n }\n },\n vertexValid: {\n size: 1,\n divisor: 1,\n type: GL.UNSIGNED_BYTE,\n update: this.calculateVertexValid,\n noAlloc\n },\n elevations: {\n size: 1,\n transition: ATTRIBUTE_TRANSITION,\n accessor: 'getElevation',\n shaderAttributes: {\n elevations: {\n divisor: 0\n },\n instanceElevations: {\n divisor: 1\n }\n }\n },\n fillColors: {\n alias: 'colors',\n size: this.props.colorFormat.length,\n type: GL.UNSIGNED_BYTE,\n normalized: true,\n transition: ATTRIBUTE_TRANSITION,\n accessor: 'getFillColor',\n defaultValue: DEFAULT_COLOR,\n shaderAttributes: {\n fillColors: {\n divisor: 0\n },\n instanceFillColors: {\n divisor: 1\n }\n }\n },\n lineColors: {\n alias: 'colors',\n size: this.props.colorFormat.length,\n type: GL.UNSIGNED_BYTE,\n normalized: true,\n transition: ATTRIBUTE_TRANSITION,\n accessor: 'getLineColor',\n defaultValue: DEFAULT_COLOR,\n shaderAttributes: {\n lineColors: {\n divisor: 0\n },\n instanceLineColors: {\n divisor: 1\n }\n }\n },\n pickingColors: {\n size: 3,\n type: GL.UNSIGNED_BYTE,\n accessor: (object, {index, target: value}) =>\n this.encodePickingColor(object && object.__source ? object.__source.index : index, value),\n shaderAttributes: {\n pickingColors: {\n divisor: 0\n },\n instancePickingColors: {\n divisor: 1\n }\n }\n }\n });\n /* eslint-enable max-len */\n }\n\n getPickingInfo(params) {\n const info = super.getPickingInfo(params);\n const {index} = info;\n const {data} = this.props;\n\n // Check if data comes from a composite layer, wrapped with getSubLayerRow\n if (data[0] && data[0].__source) {\n // index decoded from picking color refers to the source index\n info.object = data.find(d => d.__source.index === index);\n }\n return info;\n }\n\n disablePickingIndex(objectIndex) {\n const {data} = this.props;\n\n // Check if data comes from a composite layer, wrapped with getSubLayerRow\n if (data[0] && data[0].__source) {\n // index decoded from picking color refers to the source index\n for (let i = 0; i < data.length; i++) {\n if (data[i].__source.index === objectIndex) {\n this._disablePickingIndex(i);\n }\n }\n } else {\n this._disablePickingIndex(objectIndex);\n }\n }\n\n draw({uniforms}) {\n const {extruded, filled, wireframe, elevationScale} = this.props;\n const {topModel, sideModel, polygonTesselator} = this.state;\n\n const renderUniforms = {\n ...uniforms,\n extruded: Boolean(extruded),\n elevationScale\n };\n\n // Note: the order is important\n if (sideModel) {\n sideModel.setInstanceCount(polygonTesselator.instanceCount - 1);\n sideModel.setUniforms(renderUniforms);\n if (wireframe) {\n sideModel.setDrawMode(GL.LINE_STRIP);\n sideModel.setUniforms({isWireframe: true}).draw();\n }\n if (filled) {\n sideModel.setDrawMode(GL.TRIANGLE_FAN);\n sideModel.setUniforms({isWireframe: false}).draw();\n }\n }\n\n if (topModel) {\n topModel.setVertexCount(polygonTesselator.vertexCount);\n topModel.setUniforms(renderUniforms).draw();\n }\n }\n\n updateState(updateParams) {\n super.updateState(updateParams);\n\n this.updateGeometry(updateParams);\n\n const {props, oldProps, changeFlags} = updateParams;\n const attributeManager = this.getAttributeManager();\n\n const regenerateModels =\n changeFlags.extensionsChanged ||\n props.filled !== oldProps.filled ||\n props.extruded !== oldProps.extruded;\n\n if (regenerateModels) {\n this.state.models?.forEach(model => model.delete());\n\n this.setState(this._getModels(this.context.gl));\n attributeManager.invalidateAll();\n }\n }\n\n updateGeometry({props, oldProps, changeFlags}) {\n const geometryConfigChanged =\n changeFlags.dataChanged ||\n (changeFlags.updateTriggersChanged &&\n (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getPolygon));\n\n // When the geometry config or the data is changed,\n // tessellator needs to be invoked\n if (geometryConfigChanged) {\n const {polygonTesselator} = this.state;\n const buffers = props.data.attributes || {};\n polygonTesselator.updateGeometry({\n data: props.data,\n normalize: props._normalize,\n geometryBuffer: buffers.getPolygon,\n buffers,\n getGeometry: props.getPolygon,\n positionFormat: props.positionFormat,\n wrapLongitude: props.wrapLongitude,\n // TODO - move the flag out of the viewport\n resolution: this.context.viewport.resolution,\n fp64: this.use64bitPositions(),\n dataChanged: changeFlags.dataChanged\n });\n\n this.setState({\n numInstances: polygonTesselator.instanceCount,\n startIndices: polygonTesselator.vertexStarts\n });\n\n if (!changeFlags.dataChanged) {\n // Base `layer.updateState` only invalidates all attributes on data change\n // Cover the rest of the scenarios here\n this.getAttributeManager().invalidateAll();\n }\n }\n }\n\n _getModels(gl) {\n const {id, filled, extruded} = this.props;\n\n let topModel;\n let sideModel;\n\n if (filled) {\n const shaders = this.getShaders('top');\n shaders.defines.NON_INSTANCED_MODEL = 1;\n\n topModel = new Model(gl, {\n ...shaders,\n id: `${id}-top`,\n drawMode: GL.TRIANGLES,\n attributes: {\n vertexPositions: new Float32Array([0, 1])\n },\n uniforms: {\n isWireframe: false,\n isSideVertex: false\n },\n vertexCount: 0,\n isIndexed: true\n });\n }\n if (extruded) {\n sideModel = new Model(gl, {\n ...this.getShaders('side'),\n id: `${id}-side`,\n geometry: new Geometry({\n drawMode: GL.LINES,\n vertexCount: 4,\n attributes: {\n // top right - top left - bootom left - bottom right\n vertexPositions: {\n size: 2,\n value: new Float32Array([1, 0, 0, 0, 0, 1, 1, 1])\n }\n }\n }),\n instanceCount: 0,\n isInstanced: 1\n });\n\n sideModel.userData.excludeAttributes = {indices: true};\n }\n\n return {\n models: [sideModel, topModel].filter(Boolean),\n topModel,\n sideModel\n };\n }\n\n calculateIndices(attribute) {\n const {polygonTesselator} = this.state;\n attribute.startIndices = polygonTesselator.indexStarts;\n attribute.value = polygonTesselator.get('indices');\n }\n\n calculatePositions(attribute) {\n const {polygonTesselator} = this.state;\n attribute.startIndices = polygonTesselator.vertexStarts;\n attribute.value = polygonTesselator.get('positions');\n }\n\n calculateVertexValid(attribute) {\n attribute.value = this.state.polygonTesselator.get('vertexValid');\n }\n}\n\nSolidPolygonLayer.layerName = 'SolidPolygonLayer';\nSolidPolygonLayer.defaultProps = defaultProps;\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nexport default `\\\n#define SHADER_NAME solid-polygon-layer-fragment-shader\n\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main(void) {\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport {Tesselator} from '@deck.gl/core';\nimport {normalizePath} from './path';\n\nconst START_CAP = 1;\nconst END_CAP = 2;\nconst INVALID = 4;\n\n// This class is set up to allow querying one attribute at a time\n// the way the AttributeManager expects it\nexport default class PathTesselator extends Tesselator {\n constructor(opts) {\n super({\n ...opts,\n attributes: {\n // Padding covers shaderAttributes for last segment in largest case fp64\n // additional vertex + hi & low parts, 3 * 6\n positions: {\n size: 3,\n padding: 18,\n initialize: true,\n type: opts.fp64 ? Float64Array : Float32Array\n },\n segmentTypes: {size: 1, type: Uint8ClampedArray}\n }\n });\n }\n\n getGeometryFromBuffer(buffer) {\n if (this.normalize) {\n return super.getGeometryFromBuffer(buffer);\n }\n // we don't need to read the positions if no normalization\n return () => null;\n }\n\n normalizeGeometry(path) {\n if (this.normalize) {\n return normalizePath(path, this.positionSize, this.opts.resolution, this.opts.wrapLongitude);\n }\n return path;\n }\n\n /* Getters */\n get(attributeName) {\n return this.attributes[attributeName];\n }\n\n /* Implement base Tesselator interface */\n getGeometrySize(path) {\n if (Array.isArray(path[0])) {\n let size = 0;\n for (const subPath of path) {\n size += this.getGeometrySize(subPath);\n }\n return size;\n }\n const numPoints = this.getPathLength(path);\n if (numPoints < 2) {\n // invalid path\n return 0;\n }\n if (this.isClosed(path)) {\n // minimum 3 vertices\n return numPoints < 3 ? 0 : numPoints + 2;\n }\n return numPoints;\n }\n\n updateGeometryAttributes(path, context) {\n if (context.geometrySize === 0) {\n return;\n }\n if (path && Array.isArray(path[0])) {\n for (const subPath of path) {\n const geometrySize = this.getGeometrySize(subPath);\n context.geometrySize = geometrySize;\n this.updateGeometryAttributes(subPath, context);\n context.vertexStart += geometrySize;\n }\n } else {\n this._updateSegmentTypes(path, context);\n this._updatePositions(path, context);\n }\n }\n\n _updateSegmentTypes(path, context) {\n const {segmentTypes} = this.attributes;\n const isPathClosed = this.isClosed(path);\n const {vertexStart, geometrySize} = context;\n\n // positions -- A0 A1 B0 B1 B2 B3 B0 B1 B2 --\n // segmentTypes 3 4 4 0 0 0 0 4 4\n segmentTypes.fill(0, vertexStart, vertexStart + geometrySize);\n if (isPathClosed) {\n segmentTypes[vertexStart] = INVALID;\n segmentTypes[vertexStart + geometrySize - 2] = INVALID;\n } else {\n segmentTypes[vertexStart] += START_CAP;\n segmentTypes[vertexStart + geometrySize - 2] += END_CAP;\n }\n segmentTypes[vertexStart + geometrySize - 1] = INVALID;\n }\n\n _updatePositions(path, context) {\n const {positions} = this.attributes;\n if (!positions) {\n return;\n }\n const {vertexStart, geometrySize} = context;\n const p = new Array(3);\n\n // positions -- A0 A1 B0 B1 B2 B3 B0 B1 B2 --\n // segmentTypes 3 4 4 0 0 0 0 4 4\n for (let i = vertexStart, ptIndex = 0; ptIndex < geometrySize; i++, ptIndex++) {\n this.getPointOnPath(path, ptIndex, p);\n positions[i * 3] = p[0];\n positions[i * 3 + 1] = p[1];\n positions[i * 3 + 2] = p[2];\n }\n }\n\n /* Utilities */\n // Returns the number of points in the path\n getPathLength(path) {\n return path.length / this.positionSize;\n }\n\n // Returns a point on the path at the specified index\n getPointOnPath(path, index, target = []) {\n const {positionSize} = this;\n if (index * positionSize >= path.length) {\n // loop\n index += 1 - path.length / positionSize;\n }\n const i = index * positionSize;\n target[0] = path[i];\n target[1] = path[i + 1];\n target[2] = (positionSize === 3 && path[i + 2]) || 0;\n return target;\n }\n\n // Returns true if the first and last points are identical\n isClosed(path) {\n if (!this.normalize) {\n return this.opts.loop;\n }\n const {positionSize} = this;\n const lastPointIndex = path.length - positionSize;\n return (\n path[0] === path[lastPointIndex] &&\n path[1] === path[lastPointIndex + 1] &&\n (positionSize === 2 || path[2] === path[lastPointIndex + 2])\n );\n }\n}\n","import {cutPolylineByGrid, cutPolylineByMercatorBounds} from '@math.gl/polygon';\n\n/** Returns a flat array of path positions\n * Flattens a nested path object\n * Cut the feature if needed (globe projection, wrap longitude, etc.)\n */\nexport function normalizePath(path, size, gridResolution, wrapLongitude) {\n let flatPath = path;\n if (Array.isArray(path[0])) {\n const length = path.length * size;\n flatPath = new Array(length);\n for (let i = 0; i < path.length; i++) {\n for (let j = 0; j < size; j++) {\n flatPath[i * size + j] = path[i][j] || 0;\n }\n }\n }\n if (gridResolution) {\n return cutPolylineByGrid(flatPath, {size, gridResolution});\n }\n if (wrapLongitude) {\n return cutPolylineByMercatorBounds(flatPath, {size});\n }\n return flatPath;\n}\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {Layer, project32, picking, log, UNIT} from '@deck.gl/core';\nimport GL from '@luma.gl/constants';\nimport {Model, Geometry} from '@luma.gl/core';\n\nimport PathTesselator from './path-tesselator';\n\nimport vs from './path-layer-vertex.glsl';\nimport fs from './path-layer-fragment.glsl';\n\nconst DEFAULT_COLOR = [0, 0, 0, 255];\n\nconst defaultProps = {\n widthUnits: 'meters',\n widthScale: {type: 'number', min: 0, value: 1}, // stroke width in meters\n widthMinPixels: {type: 'number', min: 0, value: 0}, // min stroke width in pixels\n widthMaxPixels: {type: 'number', min: 0, value: Number.MAX_SAFE_INTEGER}, // max stroke width in pixels\n jointRounded: false,\n capRounded: false,\n miterLimit: {type: 'number', min: 0, value: 4},\n billboard: false,\n // `loop` or `open`\n _pathType: null,\n\n getPath: {type: 'accessor', value: object => object.path},\n getColor: {type: 'accessor', value: DEFAULT_COLOR},\n getWidth: {type: 'accessor', value: 1},\n\n // deprecated props\n rounded: {deprecatedFor: ['jointRounded', 'capRounded']}\n};\n\nconst ATTRIBUTE_TRANSITION = {\n enter: (value, chunk) => {\n return chunk.length ? chunk.subarray(chunk.length - value.length) : value;\n }\n};\n\nexport default class PathLayer extends Layer {\n getShaders() {\n return super.getShaders({vs, fs, modules: [project32, picking]}); // 'project' module added by default.\n }\n\n get wrapLongitude() {\n return false;\n }\n\n initializeState() {\n const noAlloc = true;\n const attributeManager = this.getAttributeManager();\n /* eslint-disable max-len */\n attributeManager.addInstanced({\n positions: {\n size: 3,\n // Start filling buffer from 1 vertex in\n vertexOffset: 1,\n type: GL.DOUBLE,\n fp64: this.use64bitPositions(),\n transition: ATTRIBUTE_TRANSITION,\n accessor: 'getPath',\n update: this.calculatePositions,\n noAlloc,\n shaderAttributes: {\n instanceLeftPositions: {\n vertexOffset: 0\n },\n instanceStartPositions: {\n vertexOffset: 1\n },\n instanceEndPositions: {\n vertexOffset: 2\n },\n instanceRightPositions: {\n vertexOffset: 3\n }\n }\n },\n instanceTypes: {\n size: 1,\n type: GL.UNSIGNED_BYTE,\n update: this.calculateSegmentTypes,\n noAlloc\n },\n instanceStrokeWidths: {\n size: 1,\n accessor: 'getWidth',\n transition: ATTRIBUTE_TRANSITION,\n defaultValue: 1\n },\n instanceColors: {\n size: this.props.colorFormat.length,\n type: GL.UNSIGNED_BYTE,\n normalized: true,\n accessor: 'getColor',\n transition: ATTRIBUTE_TRANSITION,\n defaultValue: DEFAULT_COLOR\n },\n instancePickingColors: {\n size: 3,\n type: GL.UNSIGNED_BYTE,\n accessor: (object, {index, target: value}) =>\n this.encodePickingColor(object && object.__source ? object.__source.index : index, value)\n }\n });\n /* eslint-enable max-len */\n\n this.setState({\n pathTesselator: new PathTesselator({\n fp64: this.use64bitPositions()\n })\n });\n\n if (this.props.getDashArray && !this.props.extensions.length) {\n log.removed('getDashArray', 'PathStyleExtension')();\n }\n }\n\n updateState({oldProps, props, changeFlags}) {\n super.updateState({props, oldProps, changeFlags});\n\n const attributeManager = this.getAttributeManager();\n\n const geometryChanged =\n changeFlags.dataChanged ||\n (changeFlags.updateTriggersChanged &&\n (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getPath));\n\n if (geometryChanged) {\n const {pathTesselator} = this.state;\n const buffers = props.data.attributes || {};\n\n pathTesselator.updateGeometry({\n data: props.data,\n geometryBuffer: buffers.getPath,\n buffers,\n normalize: !props._pathType,\n loop: props._pathType === 'loop',\n getGeometry: props.getPath,\n positionFormat: props.positionFormat,\n wrapLongitude: props.wrapLongitude,\n // TODO - move the flag out of the viewport\n resolution: this.context.viewport.resolution,\n dataChanged: changeFlags.dataChanged\n });\n this.setState({\n numInstances: pathTesselator.instanceCount,\n startIndices: pathTesselator.vertexStarts\n });\n if (!changeFlags.dataChanged) {\n // Base `layer.updateState` only invalidates all attributes on data change\n // Cover the rest of the scenarios here\n attributeManager.invalidateAll();\n }\n }\n\n if (changeFlags.extensionsChanged) {\n const {gl} = this.context;\n this.state.model?.delete();\n this.state.model = this._getModel(gl);\n attributeManager.invalidateAll();\n }\n }\n\n getPickingInfo(params) {\n const info = super.getPickingInfo(params);\n const {index} = info;\n const {data} = this.props;\n\n // Check if data comes from a composite layer, wrapped with getSubLayerRow\n if (data[0] && data[0].__source) {\n // index decoded from picking color refers to the source index\n info.object = data.find(d => d.__source.index === index);\n }\n return info;\n }\n\n disablePickingIndex(objectIndex) {\n const {data} = this.props;\n\n // Check if data comes from a composite layer, wrapped with getSubLayerRow\n if (data[0] && data[0].__source) {\n // index decoded from picking color refers to the source index\n for (let i = 0; i < data.length; i++) {\n if (data[i].__source.index === objectIndex) {\n this._disablePickingIndex(i);\n }\n }\n } else {\n this._disablePickingIndex(objectIndex);\n }\n }\n\n draw({uniforms}) {\n const {\n jointRounded,\n capRounded,\n billboard,\n miterLimit,\n widthUnits,\n widthScale,\n widthMinPixels,\n widthMaxPixels\n } = this.props;\n\n this.state.model\n .setUniforms(uniforms)\n .setUniforms({\n jointType: Number(jointRounded),\n capType: Number(capRounded),\n billboard,\n widthUnits: UNIT[widthUnits],\n widthScale,\n miterLimit,\n widthMinPixels,\n widthMaxPixels\n })\n .draw();\n }\n\n _getModel(gl) {\n /*\n * _\n * \"-_ 1 3 5\n * _ \"o---------------------o-------------------_-o\n * - / \"\"--..__ '. _.-' /\n * _ \"@- - - - - \"\"--..__- - - - x - - - -_.@' /\n * \"-_ / \"\"--..__ '. _,-` : /\n * \"o----------------------------\"\"-o' : /\n * 0,2 4 / '. : /\n * / '.: /\n * / :'. /\n * / : ', /\n * / : o\n */\n\n // prettier-ignore\n const SEGMENT_INDICES = [\n // start corner\n 0, 1, 2,\n // body\n 1, 4, 2,\n 1, 3, 4,\n // end corner\n 3, 5, 4\n ];\n\n // [0] position on segment - 0: start, 1: end\n // [1] side of path - -1: left, 0: center (joint), 1: right\n // prettier-ignore\n const SEGMENT_POSITIONS = [\n // bevel start corner\n 0, 0,\n // start inner corner\n 0, -1,\n // start outer corner\n 0, 1,\n // end inner corner\n 1, -1,\n // end outer corner\n 1, 1,\n // bevel end corner\n 1, 0\n ];\n\n return new Model(gl, {\n ...this.getShaders(),\n id: this.props.id,\n geometry: new Geometry({\n drawMode: GL.TRIANGLES,\n attributes: {\n indices: new Uint16Array(SEGMENT_INDICES),\n positions: {value: new Float32Array(SEGMENT_POSITIONS), size: 2}\n }\n }),\n isInstanced: true\n });\n }\n\n calculatePositions(attribute) {\n const {pathTesselator} = this.state;\n\n attribute.startIndices = pathTesselator.vertexStarts;\n attribute.value = pathTesselator.get('positions');\n }\n\n calculateSegmentTypes(attribute) {\n const {pathTesselator} = this.state;\n\n attribute.startIndices = pathTesselator.vertexStarts;\n attribute.value = pathTesselator.get('segmentTypes');\n }\n}\n\nPathLayer.layerName = 'PathLayer';\nPathLayer.defaultProps = defaultProps;\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nexport default `\\\n#define SHADER_NAME path-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute float instanceTypes;\nattribute vec3 instanceStartPositions;\nattribute vec3 instanceEndPositions;\nattribute vec3 instanceLeftPositions;\nattribute vec3 instanceRightPositions;\nattribute vec3 instanceLeftPositions64Low;\nattribute vec3 instanceStartPositions64Low;\nattribute vec3 instanceEndPositions64Low;\nattribute vec3 instanceRightPositions64Low;\nattribute float instanceStrokeWidths;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\n\nuniform float widthScale;\nuniform float widthMinPixels;\nuniform float widthMaxPixels;\nuniform float jointType;\nuniform float capType;\nuniform float miterLimit;\nuniform bool billboard;\nuniform int widthUnits;\n\nuniform float opacity;\n\nvarying vec4 vColor;\nvarying vec2 vCornerOffset;\nvarying float vMiterLength;\nvarying vec2 vPathPosition;\nvarying float vPathLength;\nvarying float vJointType;\n\nconst float EPSILON = 0.001;\nconst vec3 ZERO_OFFSET = vec3(0.0);\n\nfloat flipIfTrue(bool flag) {\n return -(float(flag) * 2. - 1.);\n}\n\n// calculate line join positions\nvec3 lineJoin(\n vec3 prevPoint, vec3 currPoint, vec3 nextPoint,\n vec2 width\n) {\n bool isEnd = positions.x > 0.0;\n // side of the segment - -1: left, 0: center, 1: right\n float sideOfPath = positions.y;\n float isJoint = float(sideOfPath == 0.0);\n\n vec3 deltaA3 = (currPoint - prevPoint);\n vec3 deltaB3 = (nextPoint - currPoint);\n\n mat3 rotationMatrix;\n bool needsRotation = !billboard && project_needs_rotation(currPoint, rotationMatrix);\n if (needsRotation) {\n deltaA3 = deltaA3 * rotationMatrix;\n deltaB3 = deltaB3 * rotationMatrix;\n }\n vec2 deltaA = deltaA3.xy / width;\n vec2 deltaB = deltaB3.xy / width;\n\n float lenA = length(deltaA);\n float lenB = length(deltaB);\n\n vec2 dirA = lenA > 0. ? normalize(deltaA) : vec2(0.0, 0.0);\n vec2 dirB = lenB > 0. ? normalize(deltaB) : vec2(0.0, 0.0);\n\n vec2 perpA = vec2(-dirA.y, dirA.x);\n vec2 perpB = vec2(-dirB.y, dirB.x);\n\n // tangent of the corner\n vec2 tangent = dirA + dirB;\n tangent = length(tangent) > 0. ? normalize(tangent) : perpA;\n // direction of the corner\n vec2 miterVec = vec2(-tangent.y, tangent.x);\n // direction of the segment\n vec2 dir = isEnd ? dirA : dirB;\n // direction of the extrusion\n vec2 perp = isEnd ? perpA : perpB;\n // length of the segment\n float L = isEnd ? lenA : lenB;\n\n // A = angle of the corner\n float sinHalfA = abs(dot(miterVec, perp));\n float cosHalfA = abs(dot(dirA, miterVec));\n\n // -1: right, 1: left\n float turnDirection = flipIfTrue(dirA.x * dirB.y >= dirA.y * dirB.x);\n\n // relative position to the corner:\n // -1: inside (smaller side of the angle)\n // 0: center\n // 1: outside (bigger side of the angle)\n float cornerPosition = sideOfPath * turnDirection;\n\n float miterSize = 1.0 / max(sinHalfA, EPSILON);\n // trim if inside corner extends further than the line segment\n miterSize = mix(\n min(miterSize, max(lenA, lenB) / max(cosHalfA, EPSILON)),\n miterSize,\n step(0.0, cornerPosition)\n );\n\n vec2 offsetVec = mix(miterVec * miterSize, perp, step(0.5, cornerPosition))\n * (sideOfPath + isJoint * turnDirection);\n\n // special treatment for start cap and end cap\n bool isStartCap = lenA == 0.0 || (!isEnd && (instanceTypes == 1.0 || instanceTypes == 3.0));\n bool isEndCap = lenB == 0.0 || (isEnd && (instanceTypes == 2.0 || instanceTypes == 3.0));\n bool isCap = isStartCap || isEndCap;\n\n // extend out a triangle to envelope the round cap\n if (isCap) {\n offsetVec = mix(perp * sideOfPath, dir * capType * 4.0 * flipIfTrue(isStartCap), isJoint);\n vJointType = capType;\n } else {\n vJointType = jointType;\n }\n\n // Generate variables for fragment shader\n vPathLength = L;\n vCornerOffset = offsetVec;\n vMiterLength = dot(vCornerOffset, miterVec * turnDirection);\n vMiterLength = isCap ? isJoint : vMiterLength;\n\n vec2 offsetFromStartOfPath = vCornerOffset + deltaA * float(isEnd);\n vPathPosition = vec2(\n dot(offsetFromStartOfPath, perp),\n dot(offsetFromStartOfPath, dir)\n );\n geometry.uv = vPathPosition;\n\n float isValid = step(instanceTypes, 3.5);\n vec3 offset = vec3(offsetVec * width * isValid, 0.0);\n\n if (needsRotation) {\n offset = rotationMatrix * offset;\n }\n return currPoint + offset;\n}\n\n// In clipspace extrusion, if a line extends behind the camera, clip it to avoid visual artifacts\nvoid clipLine(inout vec4 position, vec4 refPosition) {\n if (position.w < EPSILON) {\n float r = (EPSILON - refPosition.w) / (position.w - refPosition.w);\n position = refPosition + (position - refPosition) * r;\n }\n}\n\nvoid main() {\n geometry.pickingColor = instancePickingColors;\n\n vColor = vec4(instanceColors.rgb, instanceColors.a * opacity);\n\n float isEnd = positions.x;\n\n vec3 prevPosition = mix(instanceLeftPositions, instanceStartPositions, isEnd);\n vec3 prevPosition64Low = mix(instanceLeftPositions64Low, instanceStartPositions64Low, isEnd);\n\n vec3 currPosition = mix(instanceStartPositions, instanceEndPositions, isEnd);\n vec3 currPosition64Low = mix(instanceStartPositions64Low, instanceEndPositions64Low, isEnd);\n\n vec3 nextPosition = mix(instanceEndPositions, instanceRightPositions, isEnd);\n vec3 nextPosition64Low = mix(instanceEndPositions64Low, instanceRightPositions64Low, isEnd);\n\n geometry.worldPosition = currPosition;\n vec2 widthPixels = vec2(clamp(\n project_size_to_pixel(instanceStrokeWidths * widthScale, widthUnits),\n widthMinPixels, widthMaxPixels) / 2.0);\n vec3 width;\n\n if (billboard) {\n // Extrude in clipspace\n vec4 prevPositionScreen = project_position_to_clipspace(prevPosition, prevPosition64Low, ZERO_OFFSET);\n vec4 currPositionScreen = project_position_to_clipspace(currPosition, currPosition64Low, ZERO_OFFSET, geometry.position);\n vec4 nextPositionScreen = project_position_to_clipspace(nextPosition, nextPosition64Low, ZERO_OFFSET);\n\n clipLine(prevPositionScreen, currPositionScreen);\n clipLine(nextPositionScreen, currPositionScreen);\n clipLine(currPositionScreen, mix(nextPositionScreen, prevPositionScreen, isEnd));\n\n width = vec3(widthPixels, 0.0);\n DECKGL_FILTER_SIZE(width, geometry);\n\n vec3 pos = lineJoin(\n prevPositionScreen.xyz / prevPositionScreen.w,\n currPositionScreen.xyz / currPositionScreen.w,\n nextPositionScreen.xyz / nextPositionScreen.w,\n project_pixel_size_to_clipspace(width.xy)\n );\n\n gl_Position = vec4(pos * currPositionScreen.w, currPositionScreen.w);\n } else {\n // Extrude in commonspace\n prevPosition = project_position(prevPosition, prevPosition64Low);\n currPosition = project_position(currPosition, currPosition64Low);\n nextPosition = project_position(nextPosition, nextPosition64Low);\n\n width = vec3(project_pixel_size(widthPixels), 0.0);\n DECKGL_FILTER_SIZE(width, geometry);\n\n vec4 pos = vec4(\n lineJoin(prevPosition, currPosition, nextPosition, width.xy),\n 1.0);\n geometry.position = pos;\n gl_Position = project_common_position_to_clipspace(pos);\n }\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n`;\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nexport default `\\\n#define SHADER_NAME path-layer-fragment-shader\n\nprecision highp float;\n\nuniform float miterLimit;\n\nvarying vec4 vColor;\nvarying vec2 vCornerOffset;\nvarying float vMiterLength;\n/*\n * vPathPosition represents the relative coordinates of the current fragment on the path segment.\n * vPathPosition.x - position along the width of the path, between [-1, 1]. 0 is the center line.\n * vPathPosition.y - position along the length of the path, between [0, L / width].\n */\nvarying vec2 vPathPosition;\nvarying float vPathLength;\nvarying float vJointType;\n\nvoid main(void) {\n geometry.uv = vPathPosition;\n\n if (vPathPosition.y < 0.0 || vPathPosition.y > vPathLength) {\n // if joint is rounded, test distance from the corner\n if (vJointType > 0.5 && length(vCornerOffset) > 1.0) {\n discard;\n }\n // trim miter\n if (vJointType < 0.5 && vMiterLength > miterLimit + 1.0) {\n discard;\n }\n }\n gl_FragColor = vColor;\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;\n","/* global document */\nimport GL from '@luma.gl/constants';\nimport {Texture2D, copyToTexture, cloneTextureFrom} from '@luma.gl/core';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {load} from '@loaders.gl/core';\nimport {createIterable} from '@deck.gl/core';\n\nconst DEFAULT_CANVAS_WIDTH = 1024;\nconst DEFAULT_BUFFER = 4;\n\nconst noop = () => {};\n\nconst DEFAULT_TEXTURE_PARAMETERS = {\n [GL.TEXTURE_MIN_FILTER]: GL.LINEAR_MIPMAP_LINEAR,\n // GL.LINEAR is the default value but explicitly set it here\n [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,\n // for texture boundary artifact\n [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n};\n\nfunction nextPowOfTwo(number) {\n return Math.pow(2, Math.ceil(Math.log2(number)));\n}\n\n// update comment to create a new texture and copy original data.\nfunction resizeImage(ctx, imageData, width, height) {\n if (width === imageData.width && height === imageData.height) {\n return imageData;\n }\n\n ctx.canvas.height = height;\n ctx.canvas.width = width;\n\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n\n // image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight\n ctx.drawImage(imageData, 0, 0, imageData.width, imageData.height, 0, 0, width, height);\n\n return ctx.canvas;\n}\n\nfunction getIconId(icon) {\n return icon && (icon.id || icon.url);\n}\n\n// resize texture without losing original data\nfunction resizeTexture(gl, texture, width, height) {\n const oldWidth = texture.width;\n const oldHeight = texture.height;\n\n const newTexture = cloneTextureFrom(texture, {width, height});\n copyToTexture(texture, newTexture, {\n targetY: 0,\n width: oldWidth,\n height: oldHeight\n });\n\n texture.delete();\n return newTexture;\n}\n\n// traverse icons in a row of icon atlas\n// extend each icon with left-top coordinates\nfunction buildRowMapping(mapping, columns, yOffset) {\n for (let i = 0; i < columns.length; i++) {\n const {icon, xOffset} = columns[i];\n const id = getIconId(icon);\n mapping[id] = {\n ...icon,\n x: xOffset,\n y: yOffset\n };\n }\n}\n\n/**\n * Generate coordinate mapping to retrieve icon left-top position from an icon atlas\n * @param icons {Array<Object>} list of icons, each icon requires url, width, height\n * @param buffer {Number} add buffer to the right and bottom side of the image\n * @param xOffset {Number} right position of last icon in old mapping\n * @param yOffset {Number} top position in last icon in old mapping\n * @param rowHeight {Number} rowHeight of the last icon's row\n * @param canvasWidth {Number} max width of canvas\n * @param mapping {object} old mapping\n * @returns {{mapping: {'/icon/1': {url, width, height, ...}},, canvasHeight: {Number}}}\n */\nexport function buildMapping({\n icons,\n buffer,\n mapping = {},\n xOffset = 0,\n yOffset = 0,\n rowHeight = 0,\n canvasWidth\n}) {\n let columns = [];\n // Strategy to layout all the icons into a texture:\n // traverse the icons sequentially, layout the icons from left to right, top to bottom\n // when the sum of the icons width is equal or larger than canvasWidth,\n // move to next row starting from total height so far plus max height of the icons in previous row\n // row width is equal to canvasWidth\n // row height is decided by the max height of the icons in that row\n // mapping coordinates of each icon is its left-top position in the texture\n for (let i = 0; i < icons.length; i++) {\n const icon = icons[i];\n const id = getIconId(icon);\n\n if (!mapping[id]) {\n const {height, width} = icon;\n\n // fill one row\n if (xOffset + width + buffer > canvasWidth) {\n buildRowMapping(mapping, columns, yOffset);\n\n xOffset = 0;\n yOffset = rowHeight + yOffset + buffer;\n rowHeight = 0;\n columns = [];\n }\n\n columns.push({\n icon,\n xOffset\n });\n\n xOffset = xOffset + width + buffer;\n rowHeight = Math.max(rowHeight, height);\n }\n }\n\n if (columns.length > 0) {\n buildRowMapping(mapping, columns, yOffset);\n }\n\n return {\n mapping,\n rowHeight,\n xOffset,\n yOffset,\n canvasWidth,\n canvasHeight: nextPowOfTwo(rowHeight + yOffset + buffer)\n };\n}\n\n// extract icons from data\n// return icons should be unique, and not cached or cached but url changed\nexport function getDiffIcons(data, getIcon, cachedIcons) {\n if (!data || !getIcon) {\n return null;\n }\n\n cachedIcons = cachedIcons || {};\n const icons = {};\n const {iterable, objectInfo} = createIterable(data);\n for (const object of iterable) {\n objectInfo.index++;\n const icon = getIcon(object, objectInfo);\n const id = getIconId(icon);\n\n if (!icon) {\n throw new Error('Icon is missing.');\n }\n\n if (!icon.url) {\n throw new Error('Icon url is missing.');\n }\n\n if (!icons[id] && (!cachedIcons[id] || icon.url !== cachedIcons[id].url)) {\n icons[id] = {...icon, source: object, sourceIndex: objectInfo.index};\n }\n }\n return icons;\n}\n\nexport default class IconManager {\n constructor(\n gl,\n {\n onUpdate = noop, // notify IconLayer when icon texture update\n onError = noop\n }\n ) {\n this.gl = gl;\n this.onUpdate = onUpdate;\n this.onError = onError;\n\n // load options used for loading images\n this._loadOptions = null;\n this._getIcon = null;\n\n this._texture = null;\n this._externalTexture = null;\n this._mapping = {};\n // count of pending requests to fetch icons\n this._pendingCount = 0;\n\n this._autoPacking = false;\n\n // internal props used when autoPacking applied\n // right position of last icon\n this._xOffset = 0;\n // top position of last icon\n this._yOffset = 0;\n this._rowHeight = 0;\n this._buffer = DEFAULT_BUFFER;\n this._canvasWidth = DEFAULT_CANVAS_WIDTH;\n this._canvasHeight = 0;\n this._canvas = null;\n }\n\n finalize() {\n this._texture?.delete();\n }\n\n getTexture() {\n return this._texture || this._externalTexture;\n }\n\n getIconMapping(icon) {\n const id = this._autoPacking ? getIconId(icon) : icon;\n return this._mapping[id] || {};\n }\n\n setProps({loadOptions, autoPacking, iconAtlas, iconMapping, data, getIcon}) {\n if (loadOptions) {\n this._loadOptions = loadOptions;\n }\n\n if (autoPacking !== undefined) {\n this._autoPacking = autoPacking;\n }\n\n if (getIcon) {\n this._getIcon = getIcon;\n }\n\n if (iconMapping) {\n this._mapping = iconMapping;\n }\n\n if (iconAtlas) {\n this._updateIconAtlas(iconAtlas);\n }\n\n if (this._autoPacking && (data || getIcon) && typeof document !== 'undefined') {\n this._canvas = this._canvas || document.createElement('canvas');\n\n this._updateAutoPacking(data);\n }\n }\n\n get isLoaded() {\n return this._pendingCount === 0;\n }\n\n _updateIconAtlas(iconAtlas) {\n this._texture?.delete();\n this._texture = null;\n this._externalTexture = iconAtlas;\n this.onUpdate();\n }\n\n _updateAutoPacking(data) {\n const icons = Object.values(getDiffIcons(data, this._getIcon, this._mapping) || {});\n\n if (icons.length > 0) {\n // generate icon mapping\n const {mapping, xOffset, yOffset, rowHeight, canvasHeight} = buildMapping({\n icons,\n buffer: this._buffer,\n canvasWidth: this._canvasWidth,\n mapping: this._mapping,\n rowHeight: this._rowHeight,\n xOffset: this._xOffset,\n yOffset: this._yOffset\n });\n\n this._rowHeight = rowHeight;\n this._mapping = mapping;\n this._xOffset = xOffset;\n this._yOffset = yOffset;\n this._canvasHeight = canvasHeight;\n\n // create new texture\n if (!this._texture) {\n this._texture = new Texture2D(this.gl, {\n width: this._canvasWidth,\n height: this._canvasHeight,\n parameters: DEFAULT_TEXTURE_PARAMETERS\n });\n }\n\n if (this._texture.height !== this._canvasHeight) {\n this._texture = resizeTexture(\n this.gl,\n this._texture,\n this._canvasWidth,\n this._canvasHeight\n );\n }\n\n this.onUpdate();\n\n // load images\n this._loadIcons(icons);\n }\n }\n\n _loadIcons(icons) {\n const ctx = this._canvas.getContext('2d');\n\n for (const icon of icons) {\n this._pendingCount++;\n load(icon.url, ImageLoader, this._loadOptions)\n .then(imageData => {\n const id = getIconId(icon);\n const {x, y, width, height} = this._mapping[id];\n\n const data = resizeImage(ctx, imageData, width, height);\n\n this._texture.setSubImageData({\n data,\n x,\n y,\n width,\n height\n });\n\n // Call to regenerate mipmaps after modifying texture(s)\n this._texture.generateMipmap();\n\n this.onUpdate();\n })\n .catch(error => {\n this.onError({\n url: icon.url,\n source: icon.source,\n sourceIndex: icon.sourceIndex,\n loadOptions: this._loadOptions,\n error\n });\n })\n .finally(() => {\n this._pendingCount--;\n });\n }\n }\n}\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\nimport {Layer, project32, picking, log, UNIT} from '@deck.gl/core';\nimport GL from '@luma.gl/constants';\nimport {Model, Geometry} from '@luma.gl/core';\n\nimport vs from './icon-layer-vertex.glsl';\nimport fs from './icon-layer-fragment.glsl';\nimport IconManager from './icon-manager';\n\nconst DEFAULT_COLOR = [0, 0, 0, 255];\n/*\n * @param {object} props\n * @param {Texture2D | string} props.iconAtlas - atlas image url or texture\n * @param {object} props.iconMapping - icon names mapped to icon definitions\n * @param {object} props.iconMapping[icon_name].x - x position of icon on the atlas image\n * @param {object} props.iconMapping[icon_name].y - y position of icon on the atlas image\n * @param {object} props.iconMapping[icon_name].width - width of icon on the atlas image\n * @param {object} props.iconMapping[icon_name].height - height of icon on the atlas image\n * @param {object} props.iconMapping[icon_name].anchorX - x anchor of icon on the atlas image,\n * default to width / 2\n * @param {object} props.iconMapping[icon_name].anchorY - y anchor of icon on the atlas image,\n * default to height / 2\n * @param {object} props.iconMapping[icon_name].mask - whether icon is treated as a transparency\n * mask. If true, user defined color is applied. If false, original color from the image is\n * applied. Default to false.\n * @param {number} props.size - icon size in pixels\n * @param {func} props.getPosition - returns anchor position of the icon, in [lng, lat, z]\n * @param {func} props.getIcon - returns icon name as a string\n * @param {func} props.getSize - returns icon size multiplier as a number\n * @param {func} props.getColor - returns color of the icon in [r, g, b, a]. Only works on icons\n * with mask: true.\n * @param {func} props.getAngle - returns rotating angle (in degree) of the icon.\n */\nconst defaultProps = {\n iconAtlas: {type: 'image', value: null, async: true},\n iconMapping: {type: 'object', value: {}, async: true},\n sizeScale: {type: 'number', value: 1, min: 0},\n billboard: true,\n sizeUnits: 'pixels',\n sizeMinPixels: {type: 'number', min: 0, value: 0}, // min point radius in pixels\n sizeMaxPixels: {type: 'number', min: 0, value: Number.MAX_SAFE_INTEGER}, // max point radius in pixels\n alphaCutoff: {type: 'number', value: 0.05, min: 0, max: 1},\n\n getPosition: {type: 'accessor', value: x => x.position},\n getIcon: {type: 'accessor', value: x => x.icon},\n getColor: {type: 'accessor', value: DEFAULT_COLOR},\n getSize: {type: 'accessor', value: 1},\n getAngle: {type: 'accessor', value: 0},\n getPixelOffset: {type: 'accessor', value: [0, 0]},\n\n onIconError: {type: 'function', value: null, compare: false, optional: true}\n};\n\nexport default class IconLayer extends Layer {\n getShaders() {\n return super.getShaders({vs, fs, modules: [project32, picking]});\n }\n\n initializeState() {\n this.state = {\n iconManager: new IconManager(this.context.gl, {\n onUpdate: this._onUpdate.bind(this),\n onError: this._onError.bind(this)\n })\n };\n\n const attributeManager = this.getAttributeManager();\n /* eslint-disable max-len */\n attributeManager.addInstanced({\n instancePositions: {\n size: 3,\n type: GL.DOUBLE,\n fp64: this.use64bitPositions(),\n transition: true,\n accessor: 'getPosition'\n },\n instanceSizes: {\n size: 1,\n transition: true,\n accessor: 'getSize',\n defaultValue: 1\n },\n instanceOffsets: {size: 2, accessor: 'getIcon', transform: this.getInstanceOffset},\n instanceIconFrames: {size: 4, accessor: 'getIcon', transform: this.getInstanceIconFrame},\n instanceColorModes: {\n size: 1,\n type: GL.UNSIGNED_BYTE,\n accessor: 'getIcon',\n transform: this.getInstanceColorMode\n },\n instanceColors: {\n size: this.props.colorFormat.length,\n type: GL.UNSIGNED_BYTE,\n normalized: true,\n transition: true,\n accessor: 'getColor',\n defaultValue: DEFAULT_COLOR\n },\n instanceAngles: {\n size: 1,\n transition: true,\n accessor: 'getAngle'\n },\n instancePixelOffset: {\n size: 2,\n transition: true,\n accessor: 'getPixelOffset'\n }\n });\n /* eslint-enable max-len */\n }\n\n /* eslint-disable max-statements, complexity */\n updateState({oldProps, props, changeFlags}) {\n super.updateState({props, oldProps, changeFlags});\n\n const attributeManager = this.getAttributeManager();\n const {iconAtlas, iconMapping, data, getIcon} = props;\n const {iconManager} = this.state;\n\n iconManager.setProps({loadOptions: props.loadOptions});\n\n let iconMappingChanged = false;\n const prePacked = iconAtlas || this.internalState.isAsyncPropLoading('iconAtlas');\n\n // prepacked iconAtlas from user\n if (prePacked) {\n if (oldProps.iconAtlas !== props.iconAtlas) {\n iconManager.setProps({iconAtlas, autoPacking: false});\n }\n\n if (oldProps.iconMapping !== props.iconMapping) {\n iconManager.setProps({iconMapping});\n iconMappingChanged = true;\n }\n } else {\n // otherwise, use autoPacking\n iconManager.setProps({autoPacking: true});\n }\n\n if (\n changeFlags.dataChanged ||\n (changeFlags.updateTriggersChanged &&\n (changeFlags.updateTriggersChanged.all || changeFlags.updateTriggersChanged.getIcon))\n ) {\n iconManager.setProps({data, getIcon});\n }\n\n if (iconMappingChanged) {\n attributeManager.invalidate('instanceOffsets');\n attributeManager.invalidate('instanceIconFrames');\n attributeManager.invalidate('instanceColorModes');\n }\n\n if (changeFlags.extensionsChanged) {\n const {gl} = this.context;\n this.state.model?.delete();\n this.state.model = this._getModel(gl);\n attributeManager.invalidateAll();\n }\n }\n /* eslint-enable max-statements, complexity */\n\n get isLoaded() {\n return super.isLoaded && this.state.iconManager.isLoaded;\n }\n\n finalizeState() {\n super.finalizeState();\n // Release resources held by the icon manager\n this.state.iconManager.finalize();\n }\n\n draw({uniforms}) {\n const {sizeScale, sizeMinPixels, sizeMaxPixels, sizeUnits, billboard, alphaCutoff} = this.props;\n const {iconManager} = this.state;\n\n const iconsTexture = iconManager.getTexture();\n if (iconsTexture) {\n this.state.model\n .setUniforms(uniforms)\n .setUniforms({\n iconsTexture,\n iconsTextureDim: [iconsTexture.width, iconsTexture.height],\n sizeUnits: UNIT[sizeUnits],\n sizeScale,\n sizeMinPixels,\n sizeMaxPixels,\n billboard,\n alphaCutoff\n })\n .draw();\n }\n }\n\n _getModel(gl) {\n // The icon-layer vertex shader uses 2d positions\n // specifed via: attribute vec2 positions;\n const positions = [-1, -1, -1, 1, 1, 1, 1, -1];\n\n return new Model(gl, {\n ...this.getShaders(),\n id: this.props.id,\n geometry: new Geometry({\n drawMode: GL.TRIANGLE_FAN,\n attributes: {\n // The size must be explicitly passed here otherwise luma.gl\n // will default to assuming that positions are 3D (x,y,z)\n positions: {\n size: 2,\n value: new Float32Array(positions)\n }\n }\n }),\n isInstanced: true\n });\n }\n\n _onUpdate() {\n this.setNeedsRedraw();\n }\n\n _onError(evt) {\n const {onIconError} = this.getCurrentLayer().props;\n if (onIconError) {\n onIconError(evt);\n } else {\n log.error(evt.error)();\n }\n }\n\n getInstanceOffset(icon) {\n const rect = this.state.iconManager.getIconMapping(icon);\n return [rect.width / 2 - rect.anchorX || 0, rect.height / 2 - rect.anchorY || 0];\n }\n\n getInstanceColorMode(icon) {\n const mapping = this.state.iconManager.getIconMapping(icon);\n return mapping.mask ? 1 : 0;\n }\n\n getInstanceIconFrame(icon) {\n const rect = this.state.iconManager.getIconMapping(icon);\n return [rect.x || 0, rect.y || 0, rect.width || 0, rect.height || 0];\n }\n}\n\nIconLayer.layerName = 'IconLayer';\nIconLayer.defaultProps = defaultProps;\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nexport default `\\\n#define SHADER_NAME icon-layer-vertex-shader\n\nattribute vec2 positions;\n\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute float instanceSizes;\nattribute float instanceAngles;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\nattribute vec4 instanceIconFrames;\nattribute float instanceColorModes;\nattribute vec2 instanceOffsets;\nattribute vec2 instancePixelOffset;\n\nuniform float sizeScale;\nuniform vec2 iconsTextureDim;\nuniform float sizeMinPixels;\nuniform float sizeMaxPixels;\nuniform bool billboard;\nuniform int sizeUnits;\n\nvarying float vColorMode;\nvarying vec4 vColor;\nvarying vec2 vTextureCoords;\nvarying vec2 uv;\n\nvec2 rotate_by_angle(vec2 vertex, float angle) {\n float angle_radian = angle * PI / 180.0;\n float cos_angle = cos(angle_radian);\n float sin_angle = sin(angle_radian);\n mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\n return rotationMatrix * vertex;\n}\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = positions;\n geometry.pickingColor = instancePickingColors;\n uv = positions;\n\n vec2 iconSize = instanceIconFrames.zw;\n // convert size in meters to pixels, then scaled and clamp\n \n // project meters to pixels and clamp to limits \n float sizePixels = clamp(\n project_size_to_pixel(instanceSizes * sizeScale, sizeUnits), \n sizeMinPixels, sizeMaxPixels\n );\n\n // scale icon height to match instanceSize\n float instanceScale = iconSize.y == 0.0 ? 0.0 : sizePixels / iconSize.y;\n\n // scale and rotate vertex in \"pixel\" value and convert back to fraction in clipspace\n vec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets;\n pixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale;\n pixelOffset += instancePixelOffset;\n pixelOffset.y *= -1.0;\n\n if (billboard) {\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n vec3 offset = vec3(pixelOffset, 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n gl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n\n } else {\n vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\n DECKGL_FILTER_SIZE(offset_common, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position); \n }\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vTextureCoords = mix(\n instanceIconFrames.xy,\n instanceIconFrames.xy + iconSize,\n (positions.xy + 1.0) / 2.0\n ) / iconsTextureDim;\n\n vColor = instanceColors;\n DECKGL_FILTER_COLOR(vColor, geometry);\n\n vColorMode = instanceColorModes;\n}\n`;\n","// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nexport default `\\\n#define SHADER_NAME icon-layer-fragment-shader\n\nprecision highp float;\n\nuniform float opacity;\nuniform sampler2D iconsTexture;\nuniform float alphaCutoff;\n\nvarying float vColorMode;\nvarying vec4 vColor;\nvarying vec2 vTextureCoords;\nvarying vec2 uv;\n\nvoid main(void) {\n geometry.uv = uv;\n\n vec4 texColor = texture2D(iconsTexture, vTextureCoords);\n\n // if colorMode == 0, use pixel color from the texture\n // if colorMode == 1 or rendering picking buffer, use texture as transparency mask\n vec3 color = mix(texColor.rgb, vColor.rgb, vColorMode);\n // Take the global opacity and the alpha from vColor into account for the alpha component\n float a = texColor.a * opacity * vColor.a;\n\n if (a < alphaCutoff) {\n discard;\n }\n\n gl_FragColor = vec4(color, a);\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n`;\n","/**\n * @module helpers\n */\n/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n *\n * @memberof helpers\n * @type {number}\n */\nexport var earthRadius = 6371008.8;\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var factors = {\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n degrees: earthRadius / 111325,\n feet: earthRadius * 3.28084,\n inches: earthRadius * 39.37,\n kilometers: earthRadius / 1000,\n kilometres: earthRadius / 1000,\n meters: earthRadius,\n metres: earthRadius,\n miles: earthRadius / 1609.344,\n millimeters: earthRadius * 1000,\n millimetres: earthRadius * 1000,\n nauticalmiles: earthRadius / 1852,\n radians: 1,\n yards: earthRadius * 1.0936,\n};\n/**\n * Units of measurement factors based on 1 meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var unitsFactors = {\n centimeters: 100,\n centimetres: 100,\n degrees: 1 / 111325,\n feet: 3.28084,\n inches: 39.37,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n meters: 1,\n metres: 1,\n miles: 1 / 1609.344,\n millimeters: 1000,\n millimetres: 1000,\n nauticalmiles: 1 / 1852,\n radians: 1 / earthRadius,\n yards: 1.0936133,\n};\n/**\n * Area of measurement factors based on 1 square meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var areaFactors = {\n acres: 0.000247105,\n centimeters: 10000,\n centimetres: 10000,\n feet: 10.763910417,\n hectares: 0.0001,\n inches: 1550.003100006,\n kilometers: 0.000001,\n kilometres: 0.000001,\n meters: 1,\n metres: 1,\n miles: 3.86e-7,\n millimeters: 1000000,\n millimetres: 1000000,\n yards: 1.195990046,\n};\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nexport function feature(geom, properties, options) {\n if (options === void 0) { options = {}; }\n var feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array<any>} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = \"Point\";\n * var coordinates = [110, 50];\n * var geometry = turf.geometry(type, coordinates);\n * // => geometry\n */\nexport function geometry(type, coordinates, _options) {\n if (_options === void 0) { _options = {}; }\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n}\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Point>} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nexport function point(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n var geom = {\n type: \"Point\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array<Array<number>>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Point>} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nexport function points(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Polygon>} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nexport function polygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {\n var ring = coordinates_1[_i];\n if (ring.length < 4) {\n throw new Error(\"Each LinearRing of a Polygon must have 4 or more Positions.\");\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n var geom = {\n type: \"Polygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Polygon>} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nexport function polygons(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<LineString>} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nexport function lineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n var geom = {\n type: \"LineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<LineString>} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nexport function lineStrings(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nexport function featureCollection(features, options) {\n if (options === void 0) { options = {}; }\n var fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\n/**\n * Creates a {@link Feature<MultiLineString>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array<Array<Array<number>>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiLineString>} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nexport function multiLineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiLineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<MultiPoint>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPoint>} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nexport function multiPoint(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPoint\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<MultiPolygon>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPolygon>} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nexport function multiPolygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPolygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<GeometryCollection>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array<Geometry>} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<GeometryCollection>} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = turf.geometry(\"Point\", [100, 0]);\n * var line = turf.geometry(\"LineString\", [[101, 0], [102, 1]]);\n * var collection = turf.geometryCollection([pt, line]);\n *\n * // => collection\n */\nexport function geometryCollection(geometries, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"GeometryCollection\",\n geometries: geometries,\n };\n return feature(geom, properties, options);\n}\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nexport function round(num, precision) {\n if (precision === void 0) { precision = 0; }\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} distance\n */\nexport function radiansToLength(radians, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} radians\n */\nexport function lengthToRadians(distance, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nexport function lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nexport function bearingToAzimuth(bearing) {\n var angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nexport function radiansToDegrees(radians) {\n var degrees = radians % (2 * Math.PI);\n return (degrees * 180) / Math.PI;\n}\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nexport function degreesToRadians(degrees) {\n var radians = degrees % 360;\n return (radians * Math.PI) / 180;\n}\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {Units} [originalUnit=\"kilometers\"] of the length\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted length\n */\nexport function convertLength(length, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"kilometers\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares\n * @param {number} area to be converted\n * @param {Units} [originalUnit=\"meters\"] of the distance\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted area\n */\nexport function convertArea(area, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"meters\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n var startFactor = areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n var finalFactor = areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return (area / startFactor) * finalFactor;\n}\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nexport function isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nexport function isObject(input) {\n return !!input && input.constructor === Object;\n}\n/**\n * Validate BBox\n *\n * @private\n * @param {Array<number>} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nexport function validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach(function (num) {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nexport function validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}\n","import { feature, lineString, isObject, point } from '@turf/helpers';\n\n/**\n * Callback for coordEach\n *\n * @callback coordEachCallback\n * @param {Array<number>} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\n *\n * @name coordEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n var j,\n k,\n l,\n geometry,\n stopG,\n coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection,\n type = geojson.type,\n isFeatureCollection = type === \"FeatureCollection\",\n isFeature = type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[featureIndex].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === \"GeometryCollection\"\n : false;\n stopG = isGeometryCollection\n ? geometryMaybeCollection.geometries.length\n : 1;\n\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[geomIndex]\n : geometryMaybeCollection;\n\n // Handles null Geometry -- Skips this geometry\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n\n wrapShrink =\n excludeWrapCoord &&\n (geomType === \"Polygon\" || geomType === \"MultiPolygon\")\n ? 1\n : 0;\n\n switch (geomType) {\n case null:\n break;\n case \"Point\":\n if (\n callback(\n coords,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case \"LineString\":\n case \"MultiPoint\":\n for (j = 0; j < coords.length; j++) {\n if (\n callback(\n coords[j],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n if (geomType === \"MultiPoint\") multiFeatureIndex++;\n }\n if (geomType === \"LineString\") multiFeatureIndex++;\n break;\n case \"Polygon\":\n case \"MultiLineString\":\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (\n callback(\n coords[j][k],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n if (geomType === \"MultiLineString\") multiFeatureIndex++;\n if (geomType === \"Polygon\") geometryIndex++;\n }\n if (geomType === \"Polygon\") multiFeatureIndex++;\n break;\n case \"MultiPolygon\":\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (\n callback(\n coords[j][k][l],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case \"GeometryCollection\":\n for (j = 0; j < geometry.geometries.length; j++)\n if (\n coordEach(geometry.geometries[j], callback, excludeWrapCoord) ===\n false\n )\n return false;\n break;\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n }\n}\n\n/**\n * Callback for coordReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback coordReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Array<number>} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Reduce coordinates in any GeoJSON object, similar to Array.reduce()\n *\n * @name coordReduce\n * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentCoord;\n * });\n */\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(\n geojson,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (coordIndex === 0 && initialValue === undefined)\n previousValue = currentCoord;\n else\n previousValue = callback(\n previousValue,\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n },\n excludeWrapCoord\n );\n return previousValue;\n}\n\n/**\n * Callback for propEach\n *\n * @callback propEachCallback\n * @param {Object} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over properties in any GeoJSON object, similar to Array.forEach()\n *\n * @name propEach\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentProperties, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propEach(features, function (currentProperties, featureIndex) {\n * //=currentProperties\n * //=featureIndex\n * });\n */\nfunction propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case \"FeatureCollection\":\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n break;\n case \"Feature\":\n callback(geojson.properties, 0);\n break;\n }\n}\n\n/**\n * Callback for propReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback propReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {*} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce properties in any GeoJSON object into a single value,\n * similar to how Array.reduce works. However, in this case we lazily run\n * the reduction, so an array of all properties is unnecessary.\n *\n * @name propReduce\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {\n * //=previousValue\n * //=currentProperties\n * //=featureIndex\n * return currentProperties\n * });\n */\nfunction propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function (currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentProperties;\n else\n previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for featureEach\n *\n * @callback featureEachCallback\n * @param {Feature<any>} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name featureEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.featureEach(features, function (currentFeature, featureIndex) {\n * //=currentFeature\n * //=featureIndex\n * });\n */\nfunction featureEach(geojson, callback) {\n if (geojson.type === \"Feature\") {\n callback(geojson, 0);\n } else if (geojson.type === \"FeatureCollection\") {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n}\n\n/**\n * Callback for featureReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback featureReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name featureReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * return currentFeature\n * });\n */\nfunction featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function (currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Get all coordinates from any GeoJSON object.\n *\n * @name coordAll\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @returns {Array<Array<number>>} coordinate position array\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * var coords = turf.coordAll(features);\n * //= [[26, 37], [36, 53]]\n */\nfunction coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function (coord) {\n coords.push(coord);\n });\n return coords;\n}\n\n/**\n * Callback for geomEach\n *\n * @callback geomEachCallback\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array<number>} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()\n *\n * @name geomEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * });\n */\nfunction geomEach(geojson, callback) {\n var i,\n j,\n g,\n geometry,\n stopG,\n geometryMaybeCollection,\n isGeometryCollection,\n featureProperties,\n featureBBox,\n featureId,\n featureIndex = 0,\n isFeatureCollection = geojson.type === \"FeatureCollection\",\n isFeature = geojson.type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (i = 0; i < stop; i++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[i].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n featureProperties = isFeatureCollection\n ? geojson.features[i].properties\n : isFeature\n ? geojson.properties\n : {};\n featureBBox = isFeatureCollection\n ? geojson.features[i].bbox\n : isFeature\n ? geojson.bbox\n : undefined;\n featureId = isFeatureCollection\n ? geojson.features[i].id\n : isFeature\n ? geojson.id\n : undefined;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === \"GeometryCollection\"\n : false;\n stopG = isGeometryCollection\n ? geometryMaybeCollection.geometries.length\n : 1;\n\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[g]\n : geometryMaybeCollection;\n\n // Handle null Geometry\n if (geometry === null) {\n if (\n callback(\n null,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n continue;\n }\n switch (geometry.type) {\n case \"Point\":\n case \"LineString\":\n case \"MultiPoint\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\": {\n if (\n callback(\n geometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n break;\n }\n case \"GeometryCollection\": {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (\n callback(\n geometry.geometries[j],\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n }\n break;\n }\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n // Only increase `featureIndex` per each feature\n featureIndex++;\n }\n}\n\n/**\n * Callback for geomReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback geomReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array<number>} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Reduce geometry in any GeoJSON object, similar to Array.reduce().\n *\n * @name geomReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=previousValue\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * return currentGeometry\n * });\n */\nfunction geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(\n geojson,\n function (\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentGeometry;\n else\n previousValue = callback(\n previousValue,\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for flattenEach\n *\n * @callback flattenEachCallback\n * @param {Feature} currentFeature The current flattened feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Iterate over flattened features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name flattenEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * });\n */\nfunction flattenEach(geojson, callback) {\n geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) {\n // Callback for single geometry\n var type = geometry === null ? null : geometry.type;\n switch (type) {\n case null:\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n if (\n callback(\n feature(geometry, properties, { bbox: bbox, id: id }),\n featureIndex,\n 0\n ) === false\n )\n return false;\n return;\n }\n\n var geomType;\n\n // Callback for multi-geometry\n switch (type) {\n case \"MultiPoint\":\n geomType = \"Point\";\n break;\n case \"MultiLineString\":\n geomType = \"LineString\";\n break;\n case \"MultiPolygon\":\n geomType = \"Polygon\";\n break;\n }\n\n for (\n var multiFeatureIndex = 0;\n multiFeatureIndex < geometry.coordinates.length;\n multiFeatureIndex++\n ) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate,\n };\n if (\n callback(feature(geom, properties), featureIndex, multiFeatureIndex) ===\n false\n )\n return false;\n }\n });\n}\n\n/**\n * Callback for flattenReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback flattenReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Reduce flattened features in any GeoJSON object, similar to Array.reduce().\n *\n * @name flattenReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * return currentFeature\n * });\n */\nfunction flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(\n geojson,\n function (currentFeature, featureIndex, multiFeatureIndex) {\n if (\n featureIndex === 0 &&\n multiFeatureIndex === 0 &&\n initialValue === undefined\n )\n previousValue = currentFeature;\n else\n previousValue = callback(\n previousValue,\n currentFeature,\n featureIndex,\n multiFeatureIndex\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for segmentEach\n *\n * @callback segmentEachCallback\n * @param {Feature<LineString>} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n * @returns {void}\n */\n\n/**\n * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //=currentSegment\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * //=segmentIndex\n * });\n *\n * // Calculate the total number of segments\n * var total = 0;\n * turf.segmentEach(polygon, function () {\n * total++;\n * });\n */\nfunction segmentEach(geojson, callback) {\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n\n // Exclude null Geometries\n if (!feature.geometry) return;\n // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n var type = feature.geometry.type;\n if (type === \"Point\" || type === \"MultiPoint\") return;\n\n // Generate 2-vertex line segments\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (\n coordEach(\n feature,\n function (\n currentCoord,\n coordIndex,\n featureIndexCoord,\n multiPartIndexCoord,\n geometryIndex\n ) {\n // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`\n if (\n previousCoords === undefined ||\n featureIndex > previousFeatureIndex ||\n multiPartIndexCoord > previousMultiIndex ||\n geometryIndex > prevGeomIndex\n ) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = lineString(\n [previousCoords, currentCoord],\n feature.properties\n );\n if (\n callback(\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) === false\n )\n return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }\n ) === false\n )\n return false;\n });\n}\n\n/**\n * Callback for segmentReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback segmentReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature<LineString>} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n */\n\n/**\n * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //= previousSegment\n * //= currentSegment\n * //= featureIndex\n * //= multiFeatureIndex\n * //= geometryIndex\n * //= segmentIndex\n * return currentSegment\n * });\n *\n * // Calculate the total number of segments\n * var initialValue = 0\n * var total = turf.segmentReduce(polygon, function (previousValue) {\n * previousValue++;\n * return previousValue;\n * }, initialValue);\n */\nfunction segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(\n geojson,\n function (\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) {\n if (started === false &&